From f7bac4cc6d147fcee457f9b8ccfce275e28eba66 Mon Sep 17 00:00:00 2001 From: Krzysztof kuhy Rudnicki Date: Thu, 6 Nov 2025 20:52:41 +0100 Subject: [PATCH] chore: added mcp server plugin to game --- .../Intermediate/CachedAssetRegistry_0.bin | Bin 36442461 -> 36442461 bytes .../Commands/UnrealMCPBlueprintCommands.cpp | 1160 +++++++++++++++++ .../UnrealMCPBlueprintNodeCommands.cpp | 924 +++++++++++++ .../Private/Commands/UnrealMCPCommonUtils.cpp | 709 ++++++++++ .../Commands/UnrealMCPEditorCommands.cpp | 600 +++++++++ .../Commands/UnrealMCPProjectCommands.cpp | 72 + .../Private/Commands/UnrealMCPUMGCommands.cpp | 544 ++++++++ .../UnrealMCP/Private/MCPServerRunnable.cpp | 321 +++++ .../UnrealMCP/Private/UnrealMCPBridge.cpp | 332 +++++ .../UnrealMCP/Private/UnrealMCPModule.cpp | 21 + .../Commands/UnrealMCPBlueprintCommands.h | 34 + .../Commands/UnrealMCPBlueprintNodeCommands.h | 27 + .../Public/Commands/UnrealMCPCommonUtils.h | 59 + .../Public/Commands/UnrealMCPEditorCommands.h | 34 + .../Commands/UnrealMCPProjectCommands.h | 20 + .../Public/Commands/UnrealMCPUMGCommands.h | 82 ++ .../UnrealMCP/Public/MCPServerRunnable.h | 34 + .../Source/UnrealMCP/Public/UnrealMCPBridge.h | 64 + .../Source/UnrealMCP/Public/UnrealMCPModule.h | 22 + .../Source/UnrealMCP/UnrealMCP.Build.cs | 78 ++ .../Plugins/UnrealMCP/UnrealMCP.uplugin | 35 + .../CrashReportClient.ini | 8 + .../EditorPerProjectUserSettings.ini | 2 +- 23 files changed, 5181 insertions(+), 1 deletion(-) create mode 100644 games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Private/Commands/UnrealMCPBlueprintCommands.cpp create mode 100644 games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Private/Commands/UnrealMCPBlueprintNodeCommands.cpp create mode 100644 games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Private/Commands/UnrealMCPCommonUtils.cpp create mode 100644 games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Private/Commands/UnrealMCPEditorCommands.cpp create mode 100644 games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Private/Commands/UnrealMCPProjectCommands.cpp create mode 100644 games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Private/Commands/UnrealMCPUMGCommands.cpp create mode 100644 games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Private/MCPServerRunnable.cpp create mode 100644 games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Private/UnrealMCPBridge.cpp create mode 100644 games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Private/UnrealMCPModule.cpp create mode 100644 games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Public/Commands/UnrealMCPBlueprintCommands.h create mode 100644 games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Public/Commands/UnrealMCPBlueprintNodeCommands.h create mode 100644 games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Public/Commands/UnrealMCPCommonUtils.h create mode 100644 games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Public/Commands/UnrealMCPEditorCommands.h create mode 100644 games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Public/Commands/UnrealMCPProjectCommands.h create mode 100644 games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Public/Commands/UnrealMCPUMGCommands.h create mode 100644 games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Public/MCPServerRunnable.h create mode 100644 games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Public/UnrealMCPBridge.h create mode 100644 games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Public/UnrealMCPModule.h create mode 100644 games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/UnrealMCP.Build.cs create mode 100644 games/unreal/magisterka/Plugins/UnrealMCP/UnrealMCP.uplugin create mode 100644 games/unreal/magisterka/Saved/Config/CrashReportClient/UECC-Linux-F30551E0B2E64120917325867FB1610D/CrashReportClient.ini diff --git a/games/unreal/magisterka/Intermediate/CachedAssetRegistry_0.bin b/games/unreal/magisterka/Intermediate/CachedAssetRegistry_0.bin index 8423566cde0cc6e1bd15de57b29b99538e0ddf41..4ce084c551a84b61dcd5d2966aace4ede288a789 100644 GIT binary patch delta 835501 zcmY(p2RxPU|37~2`y3pOaqMFs``E`OdsJ4Xj1)pB8dfS&(Uuf-r%PK}^d@u)l`_gM znJFn6dRw8b{eRu3_vib2{2%9W-}g0Mvs}K7mAF@zR& z#2%%%lK8<7U4C2bTkkDt$aWcZooL^gk=(sWW!Uv$sfzCXm`&H;${YIrds_PDNqkq8 z@rmpIdi5#JONhAnrsa9q$DqV}RS|N-_5uo;dmbGMQs4EpP(Up5>!#;p-9bTZC7o;O zS%>x2wkc3!B2~}5R5*R2euvdEu5HBS!e5s>8r36eONM8fQR{_;=dS*~w%u27?ir(! z1NPp9#oz3RaCcUE=N6|K9oxwDWkPmUDP8NVcOF?SnL4CUxHQG1Y-eUEZ|Tj~XS#9! zd$k92w(Srf$kADu(_Xf9ce8(Vsr}QRYv=L;H71<5+(fiLwE=EN<|$mMA(YzygtUg zZ*zIQPDxVCbpZuEe`{^UqbBt?Q_Gf?*qr$td2Aywvw+3*W>u{JmT2+kR@6RDPS>cx z@%wAe8h$sYbt%R8(rS)ys$|Z7nySt9t{>R3AUtrN9l>76P3P?S^vGk3y>3flt%BKt ztbdifd(}6lX>1PbJG^Ieal%L5!!3T6OF33ta5SZB+m*oOG8UI=P9^h9R>j%f^AEXH ze9h(JftK@L)f+5~qK%I_4O|%9Y`>rP z`;EmeW9L6{9g(}vxCV6YZTAo^SFSZNg>| zH+@#LqUhW6`CYWc9l82xmwFtIs?)w@pL}_F;rlW51*Na5cQ#%vQBBt>?(n;sS&;Hc zQE2|3o5i@*g^#IsW>yX)H%H`t-9BcxNnPdYHR&nJ$U*Yrv7lUaEPm)t}`u>J8*Ty ztV&X^QOusD|AfgspYEQCP~)6qd7Hb>x81hlS$f8UfwUj315?4spoD&UW(Js}`${UKmtlLp?>t{;Cgu}YNi!Xx2LM+n-Mc20FV^gN^Y~3>-tIuhNsYtZ^QXVB>D?kzwf#cUW?7YBcdy5b?{k&T zpCeZLs&k_>Yld!TJuePz7F3lTPc&J}hP;?HLf`|g+F^6U5U2Nvrp)gP)S1bJb zxt~nHm;35>mHcdpjHoBhCAVcxT*Qv#o4mmX7glZx^8VK3Ij`N2dh9N}B`r7DEWo&X z3ft4yRdD>{9_mG9_v(X9AM;!HwYE2Y)-<}htA~hj;js0b^X?wn&~oXwOY3d+98_|*wPNXC{^H>|g zF?uDvF(Y#4!u>=_ayb#cwS`x-tsJB0Bq=sVEX+MZ1f~13LlP@;`(}Hr_1Q~=p8AiJ zxZkv>fmn&CR6gBy@@-`+QJwyT&UQ@C%r5G^#mmiL<8+V92lMMMTP!5XcNVcrSKq2_ zu9HX&cE9;)mz=rUSsC;4;unniZ~aTYHyyobgj!x;Hgut&hdI)i$LV837>jARv24z` zU`}+D*MSSZe)gJ(GlV&_+K5Zv`jy$=&aGVEwX4@s^epZyU%O&XC}Iv{Ec&ardh!-a zBo86ZFvjt1;dc1xe^fmGYG?8@PR~KzdB@AH2TU85)(B7yZiMzPyK~ZyYj%X8`)qmo zSi;od95sJ3bwGEF5;1HTjLBF|R*p>BOnqp~oNkK75M`09TMg^JY6o$G85q zkBn^h?)glq&8gR)RJtydEx1+6U*{;@qw}@tK10RNk#e{b?dOGL@qM$3lU|qiK6pL( z;f95eSpAWi2^qufqOGMu1yg|w_M1L=P+%$iDHL&EVytxa?zQ{9F7fJQ&n9nwe{0t{ zPhHP>TT1mN1eJ^XHPf9$RBs#|&3Znzc%V2uFsFI^9OIqBSJSP+_lK*V6d!Ka@yL4D zKDOXvLG}4yjmP#0gF*K)s};xoGEcAUUS$vUTy%J`(agTx`#fVLF} z91HaZjoM@)+kcyW3=vtjK1_uop&IaTr4(;VLPl2EV=1P*NY9xdqd5gnbW8Q0n7t-m zU9Mld@zGNBJP#$j#5nX{Px=+q@BUd`mH!g+z_{rjOY!0bHea&c4xgXnH-Dc*cSw}n z<*3gy^4bpvDX-zjV&|A6>FQRbr}c!yiAE7D;{>P z{ph4SKm63tvL(yIw;?W2p>VkQCNz%f?A>r`q?jnjvp*oa&+FubCt{e7rya5V$xzoQP5%>?%iv+5`8eGAzzTrdZsvs z_iTfGyLYOs+}viZu9sW#N($5Gu0`AtjO}bZ*s$Dqo?IsTVpN^|vzMvJbx#LUFNiJO z(I0Vp&xMY}Ge5eKXzazM_z&ARoyONn$D8~o(%6*_IVv%G-#igM1}Zq_zN(K4&N)WC zHWzr_e|9YUQDnZQlHJSCfrWdD)JH=rEt+nWEFR6@g6iG?^_fl@Ma1Um zRHHt}hL}(#znGS*%}f4_D9`yo{jhVz&@UhPJDYN4lq)4?x1ey~PItjWoDwW7Ox%Xw z>=RL6(njFbv2(9J74O;ds5w>?{WvbK@9?R6pSf^m%E0rnlWv_KzSp=)E$UEdIV#^( ze#_S9mi6KO19dfN7U5_9$qfHFq4~J7;NY|hFLptX_%+HMVKuRu+#CB2{Ti|zUM98l z+6U>&^C|Z8zJGohvhY{-AR2m&38yPKXV3`|!$rc2%P-z9IUD=hrkTNwZ)vHh9#fmq ztnu5e{qAN?e;VD5JAA$L%ZhtOwwY$7eQx=*_4~`B zaM6J|y2j>elb_0@G!O2UnZ2gg(DvDIdq}FQNo>rc9hHk3R1DUuPf4CK4>lr3_XhEN z_a#t?maG_-iTbxKTbq=caP93Etak1)i$C{h@@7RL12Nx1{NpXQTkd?4dFInnEU0OG z^jSg68|(_lG(UZalEe&qwmK@YMdEE4ad1FsWKN=5u@ia=zG@`J)s2dkmvcHr{lzM8H-4{UQKx1;1aA# z4l#T)h%WZSPW0JBb9=((mM>lVZhxEwT~?pSycOw-O|iS=mZm z+cLfy_H5jsfnR@K@Z#=ziMmGdXW-cb``26M%qi0ki|h}%fAjF^-$4t?9uS>1T!Q|G}wHRW(eW&Dx7}8fMb2)Gq;T>dX+)1nHjCP)*-IN% za3zBnbQdLJVCJZl{P@qd1Z^VsU5u~K$myH6zsILW=Ufm@y7%Eqj`MCKk#@K_rcUg8zUg{9K^?aH(PxF6Lk{0$gva~SJFHXw38^jZ-I#iQ z@o6G+D#eK+kmd3%JrCaC{!KW8uyGY$ zvS})2M8&c8s^0P)jj<~m_ns!&v@FF{?#jJ9K86ZrS|zxZYunMtiUrw%vjE9Fv&Ip1}0)q4HY~X>2{WbeZISO1bsygD88- zt>Y-D7jvdB5OOcnPKut7@_VsN`u6WCH%$yyDu_~VfJ0eTNxr~Q0mB2QU%kI5fIJ>!!*t4u8I4MtBcq7ZkCpqrQd4OCfwQtN`zG(- z`*ZPe+fYW#vaFAi2YsB4|8+47>{Ccrmszgz^v}gNVZxd(pFMVLvON;17;%5^an-wD z7k=wdJFr)K`0QYBmoHB!MPWUfeUACEW$14j>Xh~{HZOGg^fkI-CM#`=X=-cR7S`rx+zRu^Aj_q$xjhXV3<7%u}6s1xS) zs_aYs4iUrd`Skke=o3p18xTawTu%5kd$*<-uO$h7x*zsW4fT#WZHs;ADwq5kv3HDm zZ??X1>V$3A&&QJ=#)GG~op^b>(Fw`@8k;)SKQd@*B3C+oKWxLZ-V4H;Zaq5?T*MX` zi(a%ysx;(Bjw(kp-CA*XojlPwmqS;5SzH;fpzcD<&duN`hv@mdjJkk-z#gh>8<6`X ze^$0x`6sqY`Nfn>g75eOZ@-QW%WW=X5xMiY&Z;K@FU|d0T6@@c%Ic<@kPxQQ;Lx2p zQZsR=@!B(Hk8iNkCr?qdA+7KJnAwNoT{m_VElWs{7VM&5cvY~*Ec`h!GmlF*b~2+p zIj$N(u;*8^MILJ|TC?g|_uw|M$ltxiZL1#inAKf2PW`nd>O!HP*K1;QehmHN)OOv5 zOQz2WUk@81*Mse=o_)*Y)3|3-tA6k0g?bIgx2)a5b)Aepv}gPpm-1=HqQf~eIf4(b zPYJmQq+`itM`Xi13vBQUPv-x-KmJA$ZDZEBdiYkwkTcDAbJTY4!C%C%hYdaIYx(6y zH|sY9%acPNDHjpGy5w3R;q2+mI<-+Om}UB>S?}iCDIMp@#vM)ND&K-Lml2ts?C_@* zcBgu71+Jo47TxUiJVj+4dzmliaCs`)$#dnY=Z3zYqTiN*VhKieImWZPmz{_hFE-ujY|U#8F=ska?!}_-T5<4@Y*6tzqQxtP z^(nBO7HSdyb3ihfLwuFj-;q<}m#*YiOeA;*(f58PY z8=+$!nq?jwSHxOB;{n;u_0snAYj z`mmXIXI`3`=I*q9xILikmaL^0QRMT4>2^)@--G#8@}aqUQ8vd8NDu`JY|>SJcL^_h zTewhv?3ae!Y6tcF<*nY&-QQcM(Y|MLwo2WPz2Y8cE8a`VExvP__vzL;Q8x$t_K497 zITz+ox~9K3i@B2WT{*-wP_)`hJ8Sc?>AOo(qD9QsHh3mwtDQ`{J$AuW&+Xg-kF$Ya z?_G)1FN(N#+oYuvOFl3CtZ81+Q2OP=bq6n63itPie*N(4d9h|mw69~>j*5U=nUx#d zJ}l^!YApLH#gQ6Y|3{zMc`vPLz~RQymh2ea$L~rPChpliTJIj9Jy`#KGMFvoUNyH> ze0Y1{R6~bUZ^Hg<{w}Me8m{%T=g>E;?>sX0nWKKmC$zuPLUGP=BpdL2ao=Hk_c_6@ z&RN8qc601IVxO6$`Y`n~gL0L(ey>qTbH(wEBg+FCrsi0U|4HFA=%;Mj{!`XF?}uvA zX4>gGDF#u#gzZ5Haqjnd1%51^*yOY9Vv_2gxvy7cb(H8V?LGa~;j+GVVsD71!;ZBd z=Fk(u?mmgrdS^Z&vUMA?co){xT=V;B{tvr64~O^z@acI8m+m{8%9M)fpG&a)xXykD zCzXgQg?mEhWdqgFS-0Ncy6R(@%+!hL_fIx*!lpPkre8&L zzJ(U?F`^H$I+g$C@RjPh%`{bE6Z^7c4z@?Y6R0|XriWpXAY4yxsqHtgBu->?ynmk>Fa#173W-3fI)I`>S{)5T|Lt}8gP9oi%FgSyoV&F&`Nl8Dkt z$RJW8IrNb0NA5B07P{c1&Ysao38^wuDYuGxv^=Q{r=)($DJYAj(D zWzV(pnVR1@-o>`_iKR@zhamV`$HpPqb!{6Nrose*q zkz6|=DRrmo4-uZqb=C|@@$RrqV6;rm>;Ck5iD{nJcO&c6YdS);g1fJ4Zwyu(UGOzt z?3Uj=bI$L{y06J2OVxP)WXhzATb=mWHqW}3C{J~!X9P|^yElJ#3U4MAHvgbqY>)Dx zD2J~rEK5(XSQ&m^HOgg^xdgqWf8ey^A*DBCuLqO4Z@tST+|u4;Zu}r+Xf?Y2P|C6X z$v=zZ9FAhO?h!GCL39hLmp&Ko{SYJS3R&qNi?4+%gwI{}J$~!1#xp*N zU1vj;bKk9L|gy9z$?%usj~%+y23)j@}4-c{AXeM$1TohwzBWBWj7E%*o&T z^?mOgKQHkZO+xs+i(^lcc2437Nn=4I8BJ)csUa#{!UC^fKnCH{Kgs8sZLAUs{ z)`G~oH+rO!#dEIo#pt`M&Uz{yIJ%0+tt#NzROez$^x|sR^1~0_?CdI8ev8fchnTrF zN(|p-6ZDz_dOLeoOexWC!;w2&dh5^rwXPG6l?3+=$5*LH3OnY^jJ{?P98@NuSF-<~ z)GrSY4TnZPZCu)LxRhOX;AO@5alH&?{qQPQ>0{4Q=h6N572b}enS3d7-6{4+E;RLG z_p0?qANykb3hwR>A~No<)7N3u$9@Q36N+J6jae-k*-kW&-+>*G%?myk>hC*h)bmnPQ@O9CQS^)HtxCP>m+Mzb zT>Q1>?9r!_V$7MM=ym5lB;4R0s<~w)+Z6IqVzV8k;znN1L}gv^+mFJJlhma+-M)So ztu8XGA1|L2{nKdJ+O;;6*M8~zi0P6fW6UR(S9EubDikevBBXR)G?CljOuv5W*HQH? zo5YFEhFRWBGZ&-(8U59KVtV8@!EP-gI$JxByn@dlZ=6|{!U?sL^@kSj4tOu7mmSkl zaxX3>S;gTWUjDx+IKi6W(w!VAm9hijO+@&F4c*TET8Xd(<2;c+;Y-inR6EWaOWjS( zOu+f+Ri}Zw-anfO`eXv@ALp;l$9hib40LLS)mFq^m^iv3dqwNi9fCC#j%F&cC#bU; z^I*MKTl?q2(L0~BpGi@<501wj7t9lxDnz_!S{FbBfBpuMbGpT;npnX z)SC^NHz?1pEB~uMR@?kkgebRmCTwhihV$jt#-IV-Z1ixlAdgp9XHMREp7F zLb+&>Z9YM_XA@j|52D;Yh&lJW?N`H1D?VS(ns0Rd`u92_#eq$Kak0gS@iXQIQSHDc zhG9S?`xh-BJJ5#UII@WtM;rPFs$c$r%%^2UwW9}J%vSE)gK&I;@OAQFONLyce!DV! zS7GN@{gOQ0ea)|PR!T0b={#FGCC#*X5kow20`1OR<_3*p^(W@=WIkL_U)Xjx&Wgx% zW^?)lonGAV?yj#44t!)OU6UFVx3B)(U~XV>_pIZyY)Q@@(-^*^kdnR9Sr+f>b-92s=iK0k%XcVjbk&#u^y(JJmd-5EZySY*RuqT17gd#Y=Ln%0>= zyNm}puPgI|uEs{aSaY#zTjekDZ=!;}r=mkMAMCr{vE%NY+a;@p*PO{B3If83;Xu}r zr5?=g4ezcBbJ{F_s5Ux@CJII#31P9jv)=dCZ*i2_@FDek+@!|!`1XzfqrSK>@t)ti zH_j=4Pt--Q*x$YDlD-Z6o^^K=I&`ByCNrpNAYEea#z*^?8dqvj-!|~7qcbsj#9oi> z7Ss8!21bUXS%2nrVObmPmFECG2}baoRrmc1QIBY18R^?_AmR;R7cZ zyq5LrT$+?U>KgJs&#~=Lbgi13YwprQ<}TA4xodVGTJ7ZZN^X0)d_Qj;vvQ}9|HwSC zwUL*uOvijqS!Dg^w&~vT+aW0u!U8sS_>T_e`+i>Ml}wD6Pztx%vP_J~tl$!}*KAm4 zFHr?<=*-jH>^xK>z4o)}4aW99*Y1BO2@hUAG0Ni*EqB6+mV4Di=6xHY<$e&4)5wI+ zKTRG)E?mP+946VFE^QAB7Y7k9>)lM{L&fZ*J7Bft9k% zgtII2YhHz3s0ijc)%)KeY&vIoHeCrgue@g%Cpb@nh|DJm*Pb#l?v7RGc08`Beql4c z;^O6+MnrM*NhpaN6pK>ZBo#DnF?Ye>nyh2@?>>!~(JrfLuX5qV49sFIyWa^Db-RBo z_14<;$7yli_MD=Fx3AOJixQcGF~sa(CXxBPn&8RaF6Bw)Oh zFDZ3Z^hS)19eaXts+^x-nRs}~xv*3EKhDJX&|)<^evGD8>|D`Oa!TBO>1{n@{~tMy zv?^-Sv*Zc!gE#LN@*JnFEmp~&+E$vs%|~suRmt9rO5KmiC8~>2p2p4lTlUHC+!k;$ zon7%#-!E>gwk1d~yAH#6CrxRci!@nK`WVGny+|o1^kA zu6{r9;nQk^lum2QGa-47F6~&8lX&o_n7A#SmpsnOmJA9qu%MCX_?IyzF|rc(Wxvx+ zch0MJeO#fL8er+CaAtepbgN>x(a%(3V7==4(&9Nw{O0vE{XWZ(KWo2IdqwL7foeB0K7U6t|O(eiG_Yh?3Az0jVSOhmGm)DZx zjB!5|_HXm{i(6EW2mV;_&?oyucWK@C(!{QxLH+q@8ciuG?FAW>=tVyj=Pm60mI$93qC`u-t|tk9*;E1py-u&J5|zvgBi# z%jRlotRkvmntL>tcyct8h{@yd^7DonM8>%o*1*sa=|cbTfBRDI9qs!y@^)vP+`SU- z6^+D`icX^Xnltl3$aUXj=U2`V6RU~^8qSOIav$eoD5ejqwvif_pGU;-PJfh1@~^%2 z(`faQKoPMA7Y+*EKmDQdymr{VK~<@=TbI5Rch%lIP~1cd#*&sQG>ax7)-#OF+_*N5 z@?$vb{Ckm3iNV`fU!j<1SO%JThB;RSy~Sp6IubQ>(sVuj8TpQ3GpwRmjeeh1=h-(l z87Ej}UFr4L&zZmOX&e((k7FLpV57mgiKps1)Xp@0mkrR>LoriW3iGGPuAr`y)jie{ z-AkBefu?A93S-lEhS0AiDP(g{=LE)OJv_OuL1Of*VqLP0(l5Gu!PZeR$wseNU5Gh} z`7$+|zCLXg-&$}a$$iAUX*JiN&R83E#;1ciSL9(^= zC$rk3*Hn#0*}J=$l;oS>Cqx`i_eO0-Gxjz1gQV6LEVv z<+jdV;aWK>5i1Wyr?iOF=I@j?p7Ixm6Ym($zAsg}@pPbWH+zK|u8+dUF<+E0i6x-? z3Cso!Phtg?(^!CjCxaqNaiy>*8WdTI5k-~4rg&29;VDU31S4FE9z~gANKvP#QLHI) z6dPzsQxt*10B9CdWGL?N<4}|+u2tEeupVl<21NqoC{j#-QXE=h6l0i|1zv56K1Ck5 zttgrlGYS(fHHsT(Fr+AeECzp;OHlz%Wk4gr=a2$gCg?JOS!0kV0X(V{9YCcBqslNV z!+*+vbUDzYkPZTrL8&=K3z*mx3z*Oa^T;;&lm#(rBq30dLdeSu#E>JT2pxb((i(!C z|IL$QBrnd=fh={36n}<z;ENb<#7fpC(CockXbl8XdGf+ojE`TF30HSiO_NQY@fJ`+hO#b@OLPLh;_M3S0< zdr7fM5PEWs6i137Z6@3QQ(+8ApvLzFX#jcsKYx)ul1>8x`ajc@K?+i!;}%AGpw9$) zq+bm{t`YnUK`$46c3_|d^hpXsXjvm4IchMoI6|Ca z`+qG9z@Pv#@?e`9MF(g$}+wR3jm-FqfD@e!>6zVFF3%c64)b4kwPJ>aldpjBNQog z2&4$$Gyp^Op>GRV$%?k8%!Pka*XLVChQ|&Bk##Ky9F9OkCWi1)O>?ssTL0;0sg81MUB07y^wX*slLy-vpeh#{jfaa7hEh0`P@A zFmV8cG>o$NwrGIM3@PHMoQcb$b|yY(LW&RpkEwxO1|U)oT&fBd>qGj{Ar~0%Q-V2l zkYGj8N1c+mrmzMGCf67vlpv3*VcpF!-1S-Y1t65s*YiMgWi~fEj{liyp3$POd&$0E85+4nUkClcWHY2(U|1oG3n! zJ!F6t0RRJxBMp{^mH;S`f}a758G>qUP-X~9$%T{LA(${C3w<(k$t6V$fRoU4VNQo>sK_nrIe>VdHF0}Q)SY5Q-09V2| zDA@p4mjrMyL*7aA3?W$x4RBA`b;m)HqzRzW1$S9NdXe+CNXHO&!MxEbL)-+7h2RM%ti(>LPGcNpioE z0~e6cNfHzE8-~&0NZiWK1{_0fCd~gXClE9bppc7`0VJOQED=gDaT)~xuD7ruxkS(doY|_GRWkW1)xg& zRZoK=ine~oJQ<`9$t@5ZiynW6jY{AL#*vr<=;+`hEeHZE`N-o3rm12H63yXa1F-|> zcZMDdbdyIhS#;EbaA8yeY+!;6W5@&29ws0sb4?sZq<~MBKSn-{@{)0Nb0cu-|0pa# z3wdf_f?rfYpCa@vKqd>eHu8++4c;)I=;z(VO@wqnq7214Zw6ONC+mmIIoP@RN%eOp z*8#1hG#MyKHs~PhmUJBCA_Q9ue5}P!L$V&o3?=8tQYDuT@{lRV&twa}3^J!lIupJx z^nii`mg)eVE=61e9Hzn#s1(FR0w&45T^3YY!l*u!k1i_0a5btalw&7`D`3WG5*~WS z;6FpK2v&Odkvotq*hwDd$iu86B%cDbwBbC$#&PR(6Oc_V%sSu_5zrtHZjy$cH5hIT zmVeA>udgvhcPIT1%68qYy#qq`7KjWt4J|MFNAPg6d;V-BNqlPgQ6LD z5NZ|0HPRjVt}q6&`GC0lL2~}wW&@`aTeBel61n#kcpEHDGA^gY_g$vvv zVlZn3vzGjH@P(cwWQrJ=Ap!H`ifRLpM4&GPAjSEY1r*amfG%Yp{qcLIu#P0#eC6T^lGw(RD@K4*gKV z6-`Z`49Km`0Hk_>$Vbb&hq+7j?%fPIc2!x^kl1(+IWuQDEhanXP>B#3|t9z~r; zS&FWy;C4cmfD)DxG^>K^g|b1lFqobL<~tBzZ!TSFp9fk%|U7aZ`S0Dl``!!oS^yc!f`G|0iv+L3!H1DqiZ#*^=zqA;lp z=|N_j4L`v}A=Ak1%oyn8A=AiLU}tcc9h!v`mH>H9cSl?G;iZTdf?LTefWe|bCcG*1bfq51 zwgN-U!Bn!%0i0yp98ieDlcco+Z;?H6tt0bY42qMKOz@F1BaG|f1N=trimq^x!4!pM<8MI2fiRzZ!-u#6OuvjA3BW;B!&51|DL&5G1+*d^sQ^-)0ws-LBwm zKWHlhEqS^Y15?Qbj|ql5K@8|51)^!fvOHH4KZRav;?)S##^sQLHm;1UwQ+X_DQyv0 z>IJ8^Tx~pEZ6N?&1i~c12+~5*4WeKlnLfg>!&vCxnrN90ZjAQp;H%I_9oz~T=;A&| zngg#(ejGfcD$fvC!k|yy!^pcL zFs*``Sq8-9-H3l*4L_{58-|A3aS`;Uh~bKIAK+rhyqF=6 zx?6EYbhiWk?9<+c=OVQ>TndF`?>QlB`g=)jdoVik0^84go-+CkO( zUYvzi+!GbA`p|(pdLUn4DjkL0rHY_`La3^UCqtsBa$N4M<*x6M*7DmZQOuvT&8Lx zCnnH?G(pk8=*Z;wB+od$6BxNvB^0~`l(6Ng0wTWg;2qC6*Z35){S*K`ae*pZsU3snh2gTDNt2G z4<1l;Q1}V>U|Y5pBwSt#KFS%S3L>rpL{9S|m5UlZsq!d)9rz-59n2P70G<5Xu7^|^ zwC*vLh1Oe9#SnT(J&j(b0cuACV-LGQKxjYQ+&h47!BZHsP6Sb)l8&qrsU|3=gX)T0 z>tL+B9aIi=0D`9-R3-{;rwSu|2Y^4l7ud!+0ItwJpp!TTaebEuPT`9m%>!b7OYadN zI3NsceDuS4(3Lp`^7ymB#ztWX70!(AC-s6MSOLtyDd9 zo19g50Og0e!M$e^K@lG~kw`U18l6Dm7Y=~Z7K6}u(#k{x&gXmWN-fm^sqO>bh)&SE zu@_odo#3_oomAPsDu;VOWlR#N3`+u^4xI-n3)cbM#4aFSu?_;98xGLwHEC=#o(2=2 zJE<~aeru!GMJGqB^Gk@>9ET3~gLH{5aISC{%jC z{u>RcyZ$v*2n{a-ZOgmCzQx_taMYC~&O!^eLQeC&d9xdc!?yxkUpJWcxEm~mjADuT z#cqlAi;P$oy&yg+8r?~x8lkUeVUpPc;-IC1n9HGVOvo;)2WD3bgAk>D$irnl0BSak zYJl3)ppyA|Vtc68=-5H9emF^75}iE;2Aw_lzeMKe*VP`duZZLotA*L`TcB0x2^{=< zxZz3FMJ7@(QN2N28qs=T-55R#D(jBJ;u_Ektp&Z*6vQ4DqoK}0F(tHhA5_Qxb3s!t zL=sX)9?`tO;XgfL*2V!;D))g2B7M-h{1|2-uu`bI6Iy4<7C-yi&q5@u`oP0{l>nEC z){$(`QXnfq0?l6z%ckRUNX!2Pkd7|(Q8)a}(uqV6rSO=lbnFn&LZJ$yp&>CL^db{7 z!zUdI#(6&k0&aBDNIA6RF|`#r2!X4#R&{8LZAdOxv|2wwk zFUh~l0LsuZ;Lv*lb;f=|J%mI^gC4B}+*hAKoQGBdg7su^7d^1Jh3srUdG1T7X4 z>j!0W1JIHm0GsEN)xZyXMi``w(*U)EOlEoXaR98J7y!tlsUU#w{+0t^M$R)3)qDV? zKua6lvZaYvsp-=csi>h(oP!RJ09^S+ke98ouy%#+1u-F+Ao}qxsv6BbDPlF+K?m)t z4**`5qoBz?2aGAp0pGXeQZ13mUdTqr+szpXLC#>qJ7fnM5U0O_I3kAkTZ-#n8>P~_# z5+;FWCW}_CfxU!ZUg+=w8VmWZpfRdcme5S)kd%s;Ci*iYE{y79XfkMr4d|p*Lx6K) zXmVANF|-T}sl?MnQ0Q9PRaBoyQ>eP0Nc&1d-SR>@s8$hFqyErKwb5r8EudUyY#|GzR)mMw70xDyMxBLUX?gFwsm7&P30$ zX;P@Xil$k$u$tzBqv`7mVN_8Cr=o!?3~8Ew^oHar`acX`3<*{+xG1QEaR}K}FpSa5 z5{7A&TPY(FL$MWbfN?BgD56VO8O}&zT2&uy=P@KuAdiuY60b3=&`TcUEh@goP(lZ< zF_cmBb%qftx&mG2YYa)GagE`H;>#H7f2D|*g8JQ+40}{p&JczFoKY1;0~HMUV{|n` zC47&bhfGp?6U-5=$JwpwaoSTf`yl^!Q5`YQP zy~&Ue@ZStEK#NJM)>ndLz6;{6G8pLN4KT9eo2n9t0C=mx7I10{s`#yHfgV)CESSbX z+p56kz;Yld_@F9}G^zl-`a4wzR9DG}K=!22m9wfw$mj+G)`%OR$c(FIkCbjR)*#p0 z3^=DRP*<)O$}6ELsO*t#l&x17Zsg!?68{h|8>xC zJ>wS5H-1AjdU*%rDmF9Vq|n3&MrRus0jNBX4Ow!J(T}q31I{z^)aB96`-~&#K@Ck3 zrJZJrp|EC}C@M`+QBJ6tAqY&0GYIV3>UPc9W2hxg4o2b z)D%I?y8p2nvL!^(Hc}7MN|S~>+Zo#EZ8JlaRG~wg7ayODUf!pvl6n-;?Pi(?U&Tzj zh5%A+2dDBe{k#KuDqBGX-+<{nb%DQJ5)B$6=uR6W1SQYxg zhCA9=3)PoUp~2)&{xxU)U7E!IGbh7JLl7-$W9a=AZepn+j5aj_VD|rw#aC$1QCl6r z96qJaKpR>a3P`&Zob^9A;wYg3ILiIiX~?Y=OoRzB^!gr614*|+8h{l>D7@+a7Qv-CYXBtrRFws8PXTaCbYnyUVh{-CY(~ys(Q~afk0e?cKfi z{hnuk*<@nJb8-?IZdr02*Sn=8RAOCXp&nwluXX5tJvd2KAO*do|8e@?Wsa+v^@d^H zQ~nF7Awx3;q_H&$rDNSsrg{s88YjbUN8B;dQfb>*7M|$@9Y2?y5o8V8J>}>D|V7vmK>#`GXq?*-yXHG zTs$#AGg|cs3yVme5RhtzIPapPblO6W(Q?c=$sq~1kBs-k#kUjN*XY50PV$89lf#)< zFTf!qj#8EeA6J)qie-Aa;ViW-@+6T>t`$ws=gJ@po>1$^q_dRuz>}Va`vfUi>0YkX zvaV-we@&kZp5HQ=?AFv`T2HG9-sa*z)vcDmgviML!7;Jn@nJ=RLSw>Wi`Og?+$A!L2)VkP)(;MM25!5H!s*QdbBp(BF8;e%gHWJXq>B0)c9K>ulH&-W&J<2Ky$@q zEvF)LUDFce+#A|-IWS2x%q`C~t~;TxwRCd)XElvk^re>0A~Ri4v#CL$QBm^Edo8`$ z_Lb&mk$pdEd1S%IYF0V$tr{Q~ebg$*8E_X`5AgU$kYDXHIdz+ZSy)&Fg1v!Kz&H$Yz(95^e8_1V<-Cb!`>eC#+bnVD7S- za~B&F9@YJyRIU}(onH(8yOpeV-yKmcVHhpf(XOaC>Esd=I+~$%szGzwHxaWj& z=nGpbJ-AUwa4+(X8%bI1xh=J9rD{I%`U~4(S^YT?$o5rBWzKzR>u-_v*S2c%*LTe& zmwd2|l}|s~0<=b9UBg3V;78kU^5jQbc3CCKmQVVAY}g++KeXrb4&jB-^PHmPp6J1x@7#qo=J+3m8K!=73;aM%~f;V&5AxcAm( zGaozbBQ3J?brP6ue9c}i`)iAIjAo1_B$eGqwleH5WxOwk7;s(l^Gq_C9lh*%RJo{w znoAz+MxIu0Z_6q#4z>E4vr^eNSmlE>_5fKojh#Mf8vA|O`J0QI)AhDMxu8dyK(j_# zdsBT{|q9Yez@LHxG~M@A>~f zIsKoqzN5Ro*CM0sT+M!3^*rWlt6tOLi7%G}hwkePDb}x8NS)a5u4V~c->%3_KDtY0 zi}cSR7yIa~&8cbhOcoiGonB3NR=tTl@PbR=hyURD3 zY=vb=ew$5R$isR2V|*&WmZ46D)R=G$lURvU%J^^#Tk z(fRglXtwLCKe5P=OVqgy7d3BL=aPR0vqpcm=S zXZ|4K^g4jdO8%|W5M4Jf4A%d$%2OR}MP!wZw4A;}^epD_q55pAeDhGvE!&UKo68pq zsIXri(#Ko(O7)hRis-47pomcETSQOi_|G6@nA~_;E9IG_GHyWt6t&|$o32q>%Ac{^H2-&x zE#4qTs6;dwA?V10Ud^L)5x(Klwq=H zKLRmysp9&5qY`P69}kdJ$)ntb7cySNBxP;NZ}T=0EZf?DHo2*(-fF|J*qD?+b0|%I z+oX(;wLC-W9K|I!)#NBsHlvR{$y6u$vmm0YTf*+Je%PTdsUJha0TspPTnboaqZ;er?r%n96XJzyi3_An-yovr&Czt!lg~#;(prkAY&nxZf|hd3un2jHzh|M#Ghgui_bzFSt@Es?sg$ zEC;M4nSTu@USkiDxIz1szH(S=?>zF*e&UtQ0n3^>yRw*VY#*)%uN0bDMr}i_}Ih-L<=ImzfV@k#3 zol~c*X*ZnHHy`d9cN)%F*wB_7)P&=djdH`uM9)vw8qsp)ab=s_(1UO%HyuGIl(sTz zB;!FrBMH>H6Uq!l{yI$x4nIS6WlooQgBg_i+>C7+1T!F(ykFL{%2Zip6us-DZ)AE`N;V zxAmhqRMc&v!d!mOCJr@uyg1b;3PhVxmBCyhcI`(o?`QCoJy9x!`N#X&x)~KNoF&Y z-!_LTWo6Gh1nqWLGG%R7Mfa}NI6SmFPj*6@hew7*$U~t#A-ESxf>j=ra;Thg`5mRZ zY?p^StIy#|I=xQygl^r!VjFsfV1jy(ArdyeHHH_15xl6cu z-63MWVI~14It`O{$&1a29FDnC za(^OgS)3{NMlp9Lf}&RAK52Y2f{ml^6DUh0r&tq3OUzsef`n67a^TGmDE50-C(j5%l6L+r2RQh z4wFYmo7^>Qvl7)TvfXon{O?cl&UJ6QX?vkOwaTQ=N*eP=k|MoiyI+c*Y5Y?1JLE;X zs+rsE>J42EO~Y_d!L-~S7fPe%H8Z7AqcrK8i7skTCN_GIQN5r_cYx|`mJd*4t+GgV zHI->(SGQZ`zE{LEFqc|UUMZrclZjmj`|#Xq4mmUz-THri^V4caM2E)9Ln`CD$-A)H zCeP<$Sm1IIHN9s)KU?xP#Ti-UX8qqi<-9jwX3F@)GQT77AilP43|50lina&dods3HbY z(k)ZDIj=W`RNOc@Wkn`=Y9ON=(+3iZAtThDa?B|Di0m66!=|VO<-Or_^3x6FP+JEx z#4f9 zcYn2z+}xi*#%zOBm#b0jYVq;0A;H1Hvf4iv|!*oQMzwPhIl z4V%iyj&mB}jUGaX<_sZTO&mUHWxZ)?m6VN>gEe!c+FE`Z$=ZF>RNb60P1P)(M9FNa zo01}nXOKxZr>ib={dBdNCUd;>FDQe&8Qa>wTkR*azhuai#oTi0ZoQ2(_LC$R_o#)n z1|c;7d%E62CSJ?_M`7v}@zA zF1?DEDxI=fUB)&%&+S+j9K*=Qzbgo0%Fq7{UgnqA4iVyehg6%waGh*(SY4{893*)t zPKF*)8_LB;2>hcXYQ20ZdnXT%{d>^l!L|Ra;6^hxI)YVl*w*ani>Cbg&meKi9-aV) zM|I_F|1Q_|gg4f+SDxc)E9q6sC%`ktnP2*zBtzf6V7xBdI4!*#FqYAi=x>_cGp?1v zY&({}ekYU0Ydi*1G(+APr*)Dg3TT;SlBVUBKkQl#&xSl#_0gQp+R+KIp3w$+4M}QA z&u=cd%_n7(oO-JuPtVcwNFsTCJK1p@LtS0QYqdS6&LwM2;;=hrX}+@YB<|%4&0+6> zbF}<&=oZas-kYOU*Jev@94~HGz04MiwCfCrtkKfSv`e(~vsY@WIe3Zo$Ylm?(Sj{9 z;}tbfYaAWUpoG^}?kx9g)z161Y{oD|d`PqC&e8GF4MStQhsnWH7>+ozP1`J^_Yyz< zJ)A1@ZtafM9C%5yTjYtWS_ir7PlC7Mil0-SxTY15`>qkZf&00K%=V1%RGq{f)z&|? zg7V!pt#Qf1$){y6?``M_#b8VDNddr?`Uu*XjIs2WqNQQpU za?087wZi7K_Zl~q9Y2$F7Yi}@kw|OX<}Ykj^GnlIlpFFEo%Wg_QKN&+jK@-NR~g<y$zSPhW#lhEn`XZ8v!$`frs-^DY{B7?F%e;=md5r?GpiP}`7-uBm+OUR zgux6dW9z1vj5EAu?Bt{^jr?)KwqAC;WOJC6FWGWhWT!tFeRy%*)G>tm4@A2L|s+k-<`qj)`f z&=>C7yx-X-dIlsa$W!kK!H##fTNe3jJB91nOvYLxXWGh1@2#FTehXtz>6&oFpo2Cq zqe#Q(sO}9zKYnY8+9n>;s%>+H@sTq9$%=pSWLUPf;w)LOCe?Tf@YJlI-^P#H~Hr?7gy4G ziZHIGo=q>pl{h*!#54NHSiPQI{tBW2pWlqJq^Ujpe9TVG^oFUV?7+aK?_A>kdJ&V! ztr?|ds40W_p^N_0F5k9ScFX56baI||;5m5meS0>~iz0_RD)F*-ce<%RL%7?jGK}Ab zgwi7l3{{58^4;lGr|Hb?)2)tlzkYV6<5aQ*eYzyi1N%~8%7&B`LEV*+GRugReH}8; zb5pRP8okI)L3GZ1!uMzcxs;=ph^4eQo&yyQFCotqVJb3{+Y-y-iVVC#dC zOgcs?F0)9a(%)jZG7Ol~KV zhYLamax20li@9l#GUY!3iFWhWN+&n>G1-T5w?+#2NPhE^uO4_gNq(GPBRV2FHhCf=C(yff zPvjoMHBq_ppNyJ7gp+>@o=l7;P4cUeJ*(ydThrwn^hM9X?c47|;CdzDI-l$-T&hm~+y=n%t9%<;C!5lRswXWsJ3 zQDT?%7js3QD!!)nRC#IPl?-qB%vM3oY#ywn23lmLx)hCrV>xQe@f3)HRn>f^tBP9EDo^*~Cd$7C z%iXJ~8LhHwSz<7>E_VlQ>#BXNa@$~fPLKPm+x6xlb;6>;c&9O>Zb~maV2EdYbs(3O zg9CXmNq4`s|Gyj64UOnVW$4eNpOEApO3`8=jpeRE>R`EQu)5KlI7DquZ?twubDmE| zgmU1Z*yx@zaG1(9Vko`wtD|{DlYFOe`wdr+kYSu`_b_$J|EyR(oLi@)(Il$RcmnJk zryjA&3uDyMve-m*Tv`s^iVk8(odh~#1R^#vG$Kwm^xVBnox>XfdFQB8<+J6CCi~6h z1(UyKss+q5bJepJd3XVLDNpCC3p{ft@w3`wY)5QPVXg`1!!gDxe1yspN-dw%diPr7Ef1`>s=Oh z8|GQe=dU%Ap_%EhtPP+8!Nw(I)Hl{9F9xOKaoNyQJi1Cdk!OO*a}E8pmU3q5fA(M# zA6aA~=g8*SWJY?eo!po4KWp_`UBl_w1ck=;h?7kNw1zS~c$9o70TUZ_8kjO$>TKRSVhj%3K9) z70rNxHdS#|j|d}|Jx^|As-m`va(_XdsckM|n_)?QKgmp8#kNxa_mRp2xwU~UwaIgp zQkt_NH#MQLJj#`Cit)Uo(=e;UY|+d%%P!}Sq;tZ=0WAId8Wuhq*JvR?HzwW}uDcZw2v0uN$4Rmojx4b8rva5g&V_|2&f!)>17lv-Gp+ z=DvP5N?+9(bgjxyw-vXVTW8whtY(O`-O%L0MU=;J3vB^1=Tqx{x(JyU@mMx*FB+X?mSx&v+rVCK8lp53&jI(FZpquZKU+yk+SG86W7}gSvyaK!h5wpbKWo9U;Cn_@kN}lN4 z9HH-*iKBSyV*wMh+$cRYkGyBm8_KnqmqKcdr^c}8lILdW4zCt1EwmS{ywJPGX0ApUqAP}w9|n0C)FywxIB1=)!ve)n7-3F z$&~y44tZ7*({GZ;aYGjokDUv7orll`%1tZivNm3&50r;{(UK2$aIxGQqv#5+Z^*!6 zcn{+I8=75|>+i9~X@qRDth3gurepAr{s;hTo|T4P&1mv?yJjH+0l!8?&LQ{Mm?e#9{P}`@=RfkvFs#n!+5_W zy*&I_T`7+|QLiO$Xa0DqzOzX07wUd_K1h`_(`%XJl6+c5Q_HQjQDnY6T48ffJ}raA zyq#Z5Xl*VTq3y8BOUJdUGMi^|*)utR%+E0SZH*$Aob<~mzn#|J%lR?XdS2$_)!zEH zQF3ZkTYB^6I9ncv%s5c@HzNk<7p(HjXzDW+!C(FwNr4WUNzraROD{fq8l}C{Y<<1# zAbH6$)pY({$^R+*KmOSwql}uXkC(m^b(eW?p1#{E*DvH*@4Nf{X=T)WDq+V5{w`U6 z5mlq|B7KMX_?+HH^KR}L!-#K|5Eak3dz{(fioVvu%hm*;-8Fr#Om#<3ovL<1R2R-_irp zcCHl_+BqVuMnrT%*Wh^mbx9-xNwUxly{|NG6TlL;_21;LYkEMh>b&t2*RV;=;IR03 zwux&L9UIdlC4h0kJwm%i_YLaNKQ6pWT(!8ku=wC!;Zd!^!n^l~r*qSdbH-JV^(=X+ zQ~iXfXgVeTzA)1;w0~G^TyvgHMr3Oq8``Cp%z9lftki5=O?JGlm(c%nT+i$Da`$z; zpl`#_xOh)v8S8mY8P7`#kN?zb*AEJh@6v;74iSzB4~uOX9gz?j_TOc?aJ*$16p=th z=03&q4@PSBqrna9S|c>ZlYrbI#Cj@wbXT+XRo!WkM{ekAWcok#FtgW9y^h7~aaTX> zW!hi!;;mWyg?`m)W_qW0DC3?QC`9AzLU`v8;t1ZOU``>zkRg{4mvI|!(I~eNEzubf z7>P-kj@ej%cNmsOh#6RjHQ0uWxQb%u}jEh0n`0*VUJ6TjmVG87YHDC!g!;v~+%S%Uphx+KRcEkq0kU^(HPQ+hZy&!LPCqV{rWWOpYw zdBn^n91j&DRcB(3CTND>F2oE+F+Yrg)J=$`P`a~i50V?fh`}oSj+{M-3|zg0NR4W6 z!#_fZKs1jeAm|6_W^xPVq9~bIjdd__9QmV#D1y>R!UufCPgr9p2RM#1xPU8AWBDDv zNR70}i9#5F6*!F3aF>cBPY@7KiAE7Tz!Pjt5Mno`_7P$ZI`-wD{RkAsV=hF0@^%2( zfrVIwoCB$%*n)4!I7o=>7=z_li`hdcfaJc|K^E*rrC}rsw&Qm!8BPtrLp(#N5mYfW zg%~M>fmBF?49JQ=2n>Wn&Q0`D1=2V_7t+=2T(lZObL zNh2{!hze+krTB>4vxOLfF_?y~l0t+!b2vHt=L@lC0R?X%skey0FClxDk`1^3WjWah z$4dT>?W+jXYEpL%S-6(`_g*K&KD6B+#E6ajxS5k~p|#s8MEh+*jNVR_`Avv?J7~?| zG|4-h+sXP}LUh?p8Q4RiLZi{%t%;^A& zaAmWIvZ#Wgm{H9lo}qYki~^ zV+DFnu!v2#jRy#v$T=TaM1{XBqNw|oMZ{nc*5U;Qe`8}*wOYk29Km@6C|2Ry-YTN8 z3vD}F#aK+iMGP8Z6<6?jq*Y`cWfj@c9cy-3#WyTF#CEuiJcq3!!e0^Yb4*I+R75%S z!?!MqXxvp1*TNN{_Edxm4RAh65rv`^(W|#2`rr^o#w+441octG5NyB}Jcnz#BHH2F zLXNXY5sU|lAVe?aSU9h{l+J-X%2g1QDe)5sR&e?y8BSI3KNvm>9Pv7R6}dcO1i# z{+cK_Koe!rw4Yt<#w|Gd+eK+qKyP%OWEY$85*4P~MKt;$-weAbj1nk~3aE@~XoR0o zXWE4hU!-+22|!NdLqQZnX_QA5)I}pSLkqM;M|4I6lvxB227Hkb{s=@a9lR$wExV<-0EFizkMF5wz(;5HuM5uV}g zEW2BLV&*HvY`f6lLTY3{RsADsEN90h-PSo_6S9HM4&hNU?7HK6vko_W?&8$Vma2}DC~2{a&*OV zH#o*Dmhk19Hr>i#+Iw&G-akzFnlj0Gz=Mlw4pJ*KrT8(Qlz$9KczGFS3gm zB%mK$i%C@+LiiH$KaR;5WLjz$m+=U;Wuywq;0j)0!Ey@C3Q9bpR@z1SRd#U_?$vg2 z43TSy*;>i~TCO8PSg_tMR$@JNVh@huG?Wdb><03GHZwQy7#}fiqg_mc!~!fuiA^Li zyf)j#26Ws)>Blc|!G3VDWF{|7vD7Vms>X zu!|-LMk{ncD6;)dAw+(ZMkUlh9W=lIaCap#Vn2@I6fR@ zBX*Gm+mLXS8g-0_-~ikWj+4A6h!Lt|H`<=GizKW&MM|8e@i{|sV<5D%Bq7G5%Q>ph zdAm4*!58de1OhKoF7O9#;uGdwq9wd+7k4o1id|&?!!Ath`-A-Ne3gQ8jYb9YQTV!D z)J9`$#~)boC$YXkDxu0vQVCUWQFE~DHZ|Z51sCJ*+C|=bG&D#^B$oF{G0b{EivC3n zgZVcF@1b2-AJK$Aa?^l3whPM>st)Eor3rpUil8p;V9Im5DD;8@Vew15ScTA61p2jI z>_S2kjmsMXi{5XkvhVETDtf=?SRW_@==YI7$XThS{k0gOtJuWco=fhaA5s1MvKbB5yRt6HK-^L?UKd9ipP*5d6z+F5F3!+;SeRU1G}*g4V?}Vgd|jRImC3lLRp=8EW$SIfsernPzW=y z6DM#1Z&1R^Ak!>iIYePUhls`& zd_m>Z4lx%`Fe44iX_?2kbOb29LmWd)28Zy?=n$(=FB8XuJ2S`kOg`W%a%JVO-uUz9 z?yx<;A%4eQJVtOfhv*HyXeWy1aEMx{hh9)~ad6bampl%kWIz$2{Ab&CTgHLh(jxQ>p zSP6&dj?K7^(2@?(7h~`Z`AU)hg-dZDM3*KXaT2~|_$!Afi|*Kg7noVrA&w)koI|uh z>GBTI1xIib%PTm<8Pu!f5Z21X9@Wtsvyh=G*@!*W9b!-ohuB!dP4d-rh)P(AEvQk; zA>vWCHU$yc>kv}ZL<2Oe>kuu`7QgBflZGreCPkV$#C!Zev1SAgoe+i|n1y**h7!S~ z9BR8;5JOCZ#DkU&VQamM8^<&j6>^KhnN~iRm8k_4vgJ6 zl;9B0@eYmpI>crCM5}%d(GC)m`#VI)K!=FHu|Z_tV5%W{lHyZ_ay*Ku#RMD-y66tMDFQ(0Vat0oj)jFjPQQ)ORzPgClr^SIDr`Au^*0nxQwYAoDVZ z@JD0xz)bAKJ)B)m65|)juV6o1Mxm9os#uNdxQFViI5w88CjT!p@mu2%*$}suWJ1vm z*huIQjFFg#KAWf=o7rhANxRJ#KvB!);rpgyXn`5&NiKD81hy+G7L?9;7{h z_aTQUfXNVtNk!ztq9YFR=?M9s>nM4PbjKW`ILhKIUgHy*9A`ZyVgnM9>IBPBPjbD$ zWc-E$sBwyYFbJ1UQ&!G6gpQ(U4dop3sDdkQCK=CjVZnCPyWkM97pWq6fZ~@NVmNG< z2|3zhC;YCEv^WCe53&k#@eJjz(jZ|omR_SwK)db`12G$Wkcg;1$;vfMenv0V~;s1(#P#L|j6z9?4HTfU(nv#sHNe(dt!|^xjy&=Ex)s(f*XNw|j}Nb{9s#}Hh_P2~MX zpl}tLzmufsk3|qasMi>dy|{~lKWQs44kzIC%ON^o9^S%_KX>Qu!K5$7V*~c$5^f?9 z5AX^ZEl!acoiP~0aR!f3*yf@EV!Z^0!7&7rn3-ozgkQBCNtQe1k~u6tyu4m+=bQ zGC0LcOv~sL=`!&Lu+a(K&<8tk0H5Ig#>77}Nr3_=gbG-UtN4WyS)8IBM&S{9`8&mG z?8RSrhtCKIAo zImJ{Qgd?|8w8ton!xT(|R~`x>8etaZ;x1mHabBlrhL#A!Xawe?oaA?tJo%mCH|)l( z;*`SD>Xf1cqXeeIUD_!|-~k?@b{VH|mUW6Nm{pF{Do;vOpmtz=MN*>@ zUpc7k6d$p(3I(yMQ`E0US#no*itAWVgIL#eik!8a;sv(UrqI+OE9w&CdISWs>N`c- z25i%i1EW$SKA+T>fT1ONVipb~xCyaC1Y+R|;_D_zgAB-mws22nG6#j45<8SdCA`2J ze83kd&75LCj^ZTFA~2W|jXgMkR?Uei;?M^}kh%pYL>A=0F6>9TmIS^f`M-;qeK>-X z=+KHr1{ZMyF|A1n41^maFb;ujC>Pj=!#IxiZJi<%VF*Vw9PKC@NQ<4=heJ4qbM46g z@b+woIP`@ZSvqh6Hpg7vdCEQ5y{rj8}MvPxys}ov8o#3N@7M z#8upMGr5ZuotMzhfd%N?m6IcX7}SO>rNOP__>-#wK*`>l8f@iQaJZ<9P7vNB(bQW;@1NVzEGHc26kE|`JSRZh1PT#OO{A*f9vVz?3T-mmUJ(Z!EJB{CRAY=qrfI|$ z4W|=Wd_kreoE&Wt0=GxSSyUTDqaViO7`~w6Z1NimaU3`C9T}xlRKs~Ro3c zFnk`{q0M~eaR&ELeE}!NdYnTNsx2h{J1lgHHE6qtx{GCa4zI3ymyiUSc!mL6mFbG&D}J+ zxQ}*wDE;^ecZR)$5-Z@p&na5q0_yE2sgQ`a2PhwS3j0BJ#zJH|L`lbVJjK_;G*U;L z;twPqrCm5ilZ&j!xi;Ve-XQl0IycyJg8VOXlGx!Wa-E{^pw($Yi=t;petbZ;vre%N zS_fX3PSF*S=z}yb$^WcOa$_HkqunbuLL~aYjZClUilJH(d5es1sBUQa zmO#RIM_wZ0J=gdTlx$4=NMZg&wZ-<&)Oj@iLLtR^jOHks^rYk8&5XxWp~wvbw|s)K*-g37+B=KHwWHs!Pm86U`->V=k7V zlg;fCU2QHAiA;8v2t;laKp8y7OT5D;2!~7T#6BFtF`UOpr%Q~-6wJf|G;_H`Yji*; zB9T?+OL54D!YJ-$@)GZ`(r}3l*n;iQ`LfMw)bw_V*BI;L5_x=GVm~^ja*2T!n2eImC>K~C zOscw>WNl8~U<`KS9BQ;6v^a;GsMV5_VsdMj_yV;JCq%AxF7dTJ|L;Jd#eBSny`xLq z2e-(gIy#_WCzq%MH%{S0DD(C%lz0rmUA)G;Fv>x93KK^4pgN&$xJ$Ibat!E2%HS)0 z!iaE*Xmp6;IQWKNcoV}(uq4(cw&5<`p>rJBfq(?^|7<^(xQCwoU1BumU^&tZaETc> z4*Nit$c)11gSq&H+JmWPXocQzV>}kSU1BfZpvh3O2P5zdABI!bM(_fVVH&aSd108hV)}uKaREnX~q*6T*mGR90&6zxx^V5Q>bRhfhuT> zz8H^b_!E!aOma_kiA8WsbBWYwfm!%_CN0-2mnet&7>U1TyTl{xl`i2wml)5Z&|>O* z0=a;KjGl{V-4?sVI@DO|5`&hxgt?rCZUtpwC9z(`@@kj(yoUW}uBR?TD*o zTU|UpcZpuxN!}d<;&+nGq#@Zw9`B~a?qSxnO%aaA7<`H5`!ZD%i}4uWQ1XgPJjZ*i{)3hkQCG8`nn9W(E+R5*|8n0AXiMx)y<(GvO{$^p*d8fM=m5NLakh70KuDe1U_M_6>9 zEPg;Mh@9@fT;c(qW9i>6(e9y3_&uV2V$@?&;0bm3DFqJ4aRC#bk>t-^;two&;S%4W zzGNM);WqAL(kp7yYqr7qB&r}x>_x{nv?p-)V$vJFZ%JPKgzX(|K4xJa7NPHZs?rBq zE@b^k$dMmKFafvm5Pd$89T<-EpQ$A%igGxOhY0&Z3M0=~^1skmVuJSHxDsOEck25O zsufE9B(Kp9U2q51Ulbg8K3o)xV`yX1#TzWL>S7f-DmvGHU3@}CRTmr4K-0x*bh7E< zB|6%55o&kqVmUKu9J(0f)WtUZsp}%6p^MqDd+DMH)*_3yF5K9UbUwNmhZo4?tBXl! zpGp@Op!?}!2;QJtY66F`_=4SObWtF!E@E*Ksym%7Mxai5UCh7*n+&y>RCb6YW71l*{>@TeI#quJ$n1{?oIXLuUy6B7dm{Oe2yp$mMa2Q)k5|~oDNWfcs zM7Pqq_zSJekZonjHoQSpIg%R%%9Ay?fT|UAaSzQZ>I}>2!oL#vf2NWyDp%G;f9%Dy zD!TXsHL6l3FdIJAba4VDs_P;Kw~()fE@r_}lat{dO4QQDVw^z1+PatvwGLT^p16U+ zb%`*}pp3hoF1p|%^!mE!hc{^7Ko={Ksv*hMNEhL_hW3q#3DP$qdEpa8>OgBs7T_Kl zHq*r@TtmiS*5eUcH79G)poK1$!mlOyUzEvGjA})4;zVn{Ce}t5L-7Wk+v?(qM>}HK zUKg9ux&r~ml8yv0g#5-!6z)Xqkv){cjF;%xSr@+}PZzQmrxDqea)!V#@;_IYE{;R( zMsngkDs-nR;w>ii&_&H~T};4jXg#S`7=T0Q+KYmO{1F@!Pf<8h7sb&RJMbM*(Yn}< z&k(&i2DbHf^PQ(yU2KXYH1Wg=RT8KkxP|Y1C>wn#cqrJ9&!}S#ZlZI4@^1ib1I7;2 z#aA2{M1wP!F8C)}qSq*Pgx6?3 z9f^f-jv=}62+hWFka4;ghOKyxJmX0L#NamSPT&~unn)gF32wuG5^Vu;Os00hy^4w7 z6rElP`Hvn`bd(=|2mHd+ zxzr-e!!m3@-Fcj69{InOnV%RqpV*Vx z5m@BkPs4;Oa92N|i*G1@ko-c|LtNdC5PR%Jfuq!KJjDx`$0+HDJWhVX>jY&6*WrJX z&$Hnws+^+SU?E;2-)WAGC3u0nXGpy>+*qe-H?)McS(b4kn6RBQ-GM8u`DPnSkrW5-X7APhGUd zX;^QNyjTXmn*@mhF6*!wY3^}6xDvT?Vl&<%!hN3w z6n#J$K)_#Ih>-tpVh8&}PKuHEgz}H5|Co*W*op55d`y1QATk{BWC6#;|gHBB=jkSd9qga&VP z@dWZM*@m^)gl#af=PmhvfSEJ6h(B-x5AYnj-|6BYPGatR3J)Sb5KvV4NZ;TS+hf&d zs_z%B?_UYvH=1Xx{!VT9K|BAG_TU#)6KnXmTY|+9)vbKwO)SyPpw>b>)H@4<9#E@Kkx-+*SGUPGDLu|`y2zNe1G|X>^j0Ftw2-^!9VrU^l zG%9R}OhpXw7{3)Y#IRz9Xk6S7nM)Y_YY0Q^C~1h{rT8>xX^xSlj3J)l_p*i6evLXDd7~(m0RyD+^YKCZ5-4Fpa4DkZHY8qm6ExyKD+Ys66 z7~&;%*EPhLdWL9T-w=Tf4F18PA@(#h#MnlLXwldZ*_#;RbrZua_68YZTvJ1|Y-WfY z!G=h}zUGD)-@*{BTJo{JR)%22`FvMFNXm5y#9SqT?qakvK7(8+_ z#KBI6m=tR8uVeU>c^5;x$Dyugz^cHIn-x4R)e;BXH^ObK@zqJ2+85nL!207h?#>85jw;Wg*n$ZoE&P1S;Gv`c{rb?b&oK_cbpn&h}okI(PgwD zijFbF51bxr@DIui(RDnZ$ev(`pExto5OXFOB5blDicc}bFPxofh`G}Y(QP`PMV(;? zG1Cy|FmIN@zk=ZN!_p9zIfgio`Ew1?V;-L?pKl230`mU?lLZS6{-J;&N-s9}_gjXz zh=ofH(Q}z0$}BhdcRGf+gheY2(Q6f-17B?jZH*x=WAR!;M6BbZ&g%_f+hB+*ShCR& zk(&%rezPI$TMY3BmTomf)HXv@*v^L>e>22YEZaf;NB_=uf=xp>cN)ANZ;0i)3=y;2 z5S8{A!nN1n%4LWZ`wY>0KVQ8)z$ds58sbl^JY#Kfdk)K5BG-1O1b!P-x@Hv_+=H9okZ$MT@(;7k77AS{5l@Ja}<;3tnt- zch|*T7Z$ru7Ix2`bN~15XTQIh$t0QB`%Iac1rahC@5(|iET#&tbM~V1A`=donC?xV+Z+4YkM8qF-ps0w6#Y8kME+S`) zh>!GJ2@#V@ifC4fJ&>0c@re$W5iz-}h}d%MbiKTYKj}~f5mPFPXkJM~p2{MBGc4k8 z6%kY8s)}e)jh&WP7x9IT)DXdLFVV6VJ07ns;wv4kBf_dHqE$Wih+AL8H#*ip#Po(D zS~n6A(OATHI^IOYjHV*mG!v08R^*B0B2LiE79!fV6cO1F%L!tw0-bqM$Wg&`sq{3@dB zP!UCjiAXtI#6?;-LPWO&5k*I`>-SM2F43aVBD#+eQEaRT|8XKN)8g?WdL)V{K7n1i zP84y4mP``SbFzq-DeUWfs)(z!bef3uG}vO-#M4Ct%@A>a2A5>ROm2o*A}Y@o5j;o4 z1KK!OM0^r^hn^?$%qS5LY10A`Ll&}g=0zgXEM^m;%}Yf5x|A(w8C%eDwjkQFf-Ptz zThJ=Dpw(C)tEfu?d}K6FS2tM0?J%37umTI?pC_flY|^USt!x z#3po^P3Q`n5be9l7Icj*=sH`_4YnZKf0Hff7F*D5wxBy~L3H3QThKkWpx@bo?z08m z=l=ig0h`c6HlassLXX*m=-?AJp{Hy@&)9^XvkB3m7i>Z=*@RxP3B6_$qQh_4gx<0R zy<-b{&lW^SKClJ-!4~w9E$9>FFqckchzJa;8Rkno+3 zyClr;lF-ImLOvgfCx1&gK{HcGXzM2-GNr^HA4)h$v-~Br3y_dsl;DyioTAyXg!YPr z0;&WrO~PrKqf6*uNGNDZ@ODc$LvsTqbPSRZ6&EbQC$)sLl$1t7r?e8H(@F64NH|CH zLL_t!Wq0%GC8Wq8;XKXHD4|Ox357HBq?;@fF3^Ik61rxSP$avAlsP0^q=h*pbju~7 zXl@Cq@<_Nui}Fh79wwn!IQ!C$koaLY%i??zdPGVno?k*h0SQ-VNkIucqa?&cvybFL z5>Ky?u(Ys*UPUC7D9WCbi%Gaf%Zf|r9V4M+2?=sZ3D;?PDG7Z_OFWZ;eZ!ZPaD!Hq zlhC)kgwhoxs1+sLq?MJVIP|N`{^6^z1Lvv|Zqcf068cw{cyS2{dQAzpX>~0L18Pes zS4VkC#w$h=h<|B|M{TLnVwDCZX1F385n-Jg4mm5)wvAs69$T`q2_z(2g+@ zMvj$GXPkr#<0ZVLorw}gO^{G`qJ)f-B)pFvBB9N4#7{aT#BP(2d%J``>Cg@dQ+7&dzDq)$-4Z_2;baL@_ef~5S3=%> z628!p{Su}fkkIls31J5%e5Ip@Bv^+fv^pXo{HTO)N4e>b9g{HqxP;axm;)!719bcp zbKo>{;0$x%EOX!-bAV=^XAWFo4qRjoTw)H;tjo-SE6jnb%za9C*qcpn1=j1J9WQ zFPH-_nFBQc6?5PVuaq)R$&(@Z z%eY3%0%Y_SWt5a;$g+&Gf>9LAQ}CF zWt2%RLu2Rhw`f&b8U54ADC?1-hsd~1t3zcBNH3#Y1{p?18Fy$+CK&@W%P5~khM85y zU0Rz>#-QvnD&&yi&MD&_t;;3jm)tTc=3(dbd1d@g>%-z?3=Wr3DMCh2J{k9EL!`_< zi)2(TAS1Y-j0dzaN=AINj4Fj>q%JJ;cfB$;6_GKdsEn$`WTYuB;}LC+k@0H@8P!V4 zNLxzAW7<+$#?Ue{s+X0KuAGb~WS5sQtb&XhaTR5FD#>_CTPw>LUPVUDsxm^V$#_QF zs>>KrLq@HdGD2&~cuw1E%Sfmrqjp`H7oCvtf_BuGF|vV-It^uHXe8q$?QAS#R1+C> zo65-8OvWqP6)R(Oa~bto$jH=^EBcyccPklVTFa>4Mn>kgGCy{gk=#zk*!D6SbdZsy zql~w-r<06von88SiLsHyPu*%V^X?Mz)?Z-qXHbG7@{sXxv9e_P#Pc(Effh zCiIulWPpqu17-X{2L^HfPy9tj)4?)w#>x0dzs1X#G(<+TUuEPPD&rF!942G(a2c^9 zWaLhe@h2S`DPzhg8O=w_$TLR9XF5Dq#?)~#T8x*GH&N!5Qe+&NAoH9r87(Kt2%9Y9 zD;=F8!&9nzdL)yCpL6FO}h1CgT*%UM{2k3K<1f$~@y;#%Y?fT1JO8G77Gh z`TgHI8E0tjdKn!z$cWk~!)KGs-}=c&+AQ<;eKMkL8NOR(oTGW$WOUvxqtFf+DR#;@ zPxE)l=(1Zz;ba+pdt_Xo1$$+5-6x~SeijT1GMx4bKoL#;1YA-GIM~I zU11JfWe!|p4qRsr(DED1ft$>MTg-vm%mG?)hdFSU`@i%(2Ep$#Zqmy8%z+2Yfrre2 zN6Z0Q^_V&EggNk(Iq-}*K&ziK2VO7-UNQ$>F$ZYPYv#Zk=D=I#z&qvut$oiN_`n?a zgE{b#IY8?^F$ex+4t!<~eBu88{R@NOD|6r*bKpC301EEY20=lbOF?BX1;O459?(V~ z1@XQLs-#em+E2kl+LThkkW>n)`YT8ipx_a078RasqM(|rAg!X{F>O&54Am4=*A=8Q z6g(k2&QvhWt)NDr0#A^Fr?fR#!SK`yYNk;Tl2*Yp+Llhi2#Df-F%A-qN0E1>*`SXjoW5)*=et(cYp8 z#uro2sJMb`F$&((z7h%&ODbqwN;OG72V?RnVlIf*j=)UjL)Kf&OsuG& zX(a_YD=YX&zg1B%sj7lz)fD8auHX|Ltf63XO$D*F6y&b0;7>YKN5Pc33Yynbkf*+a z&vdwff~gG^v}mLtZ)1hm1ygXOiGpcO6|`)oAS_nFS324}PJz`zL93Pu!dof$M#ow! zJXKaf>$VCa+9~)>$J;BI(Lq6*jtcU1Qg|&j1t(}`7X@v*Dv0c+K_7zt2PyFWMZp=GJ6J(SE>u*!0-qrY z&Qj8^3OWr{5IszR?{Ed@Xx<0~of8xk8mS<~CGhqC_07vKh;zPmuS&6g;z6CP;9ya{}~D{)8d&5ddyN#e71ss zISQ`OlDP_cCMi67Re?BP!BtwiKtZpC3Q8o?Uw^2cvO$xNl3U1M=EeiVE3d(L( zpl?%fn^tdEFkpv*ayu0myA<4^HMH3ZZZdMF$Zol2jcE92*|$69Jt3E z_?f^<^XMf!5nzW9C*bXc+DK39dDQe zZ*b1GMu4bKno=z(?l5C*}af?fR2J@LA!>gv^1j%mLc{jXCh0IRF)z1r={7 z*`;Evmx>17Dzf;fcuRYHRg6oaqM@IPtSMEzqrItAjQ3a3C_qIvQN?@OC#gu3RWw#q zWLH)Ga8<>AO~nLVt0X*pH2 z%%vhMcbtl^xm6s^qr%FoqE(oR@NgC1=vah`>G@Q&j#LqmU&VJiUO>f+f-2fXsmK?t z0)r{h@W zlvB~6yo!PqRCrfZafaqrQqi%pil{0oe5$HAOG(vKbgHf*x`qnhnkvrGyjm(c*H%%e zj*1j@Rh*~!^;C4JucB}R6@Cp>T%ZMwRG#FdqDT`JDVwUeNDG^(i0c-sqG)p!samMG zM2lLg{B4GcVy#v9w^4DK7PnQ=qn*l=h*Si0P;rHpbX3u^lZu$mD#R`-uF}%3Dz6=& z@~0Ilq#i1+(XyT@diPR!o{$Q;kBaNGyswHr{Zy3d&;73qP;rA+3{=r~kc!g3s89#1 zxJfIyd-}zzC^JNb_N$6pv}&k|{=-z19j-zjq2e~JPEavmq>6H*RQ@DW#T{BRM#aFf zD$0*jVUAaEm)0h#7&Jjeg^4QMlT_TB#1~jMS;a3?RQ|+LMc_0Qzteh4#o*~GD$P(4 zG*iWW+AxcoYqpBYb5sP+Rq=o}CaH*@r=rSy6{#1fcu1QTsu;3JMb*VB(kxN&h&C@( z@#``b)t0MByF$fd+Okr`(7079s;^d&ZjFj3WUo~*Y@Lc4>s5F*sCY_SH>w!ENkz@g zDnhoXct+c76(hE)sI^T+=yny)Y5NWp2|HEP-lZb_ZWS+RN3x2MdsNift0Kcb6)$P$ zeifq*sHpoJS198_6|ZR5Ar+$!tEhKGMW&-FUeoSlD#jdFQU3&U;3RW^l20)QPBRD2 zFbB>u2WZbZ=D>O8zy;>OMdkqQy~G^2%pADF9JtCHpncbv1J{`YH<$xAnFBYu|M%Zw z5ZqSL&K$VU9C*MSpx+)c2Ocp89y14?FbC-1Q|7=k=D>62zzgO8 z9eT+ec*Pue%^Y~c9H7H*nFH^b1MiswAD9Dl*2kk41+)kHO%pqYLe+NRX_J9Q0$zlM`E zD?md#QA2)7gG<(Mie@Vs+N&B0#AzD5bPcCzj-jE0siB}-gLj~YGc-3yL&snZQK>cf zq|tDelG1AElukpmM}u#OhI2G8R72k6wac-FRO+Nv>=;? zuGuvd$-%R~b83jY$g(h(hHkkv6wRX{RbCC3Xi=Dk?%^7WMQHHPr{OX!j?{P=Jq^VR zXb32%;R-E@($F(n<4^20h=ny=rKLqQ^eU>ML@^CgagA5K)vzo^L+=tAN|w|hm(p;Z zmY3Gz(5H-sQe`zL4&Jn{=RtT7!7d z{K6$1tl^OWrf7Icr>AoNub-x2lEr;ET|?~|JW6M3 zaL>~42VI`6VcQ%Y)pNNClQcA*$75u^#*2`!70~U48ul*YLA6-J&?OpLE#)p+rXkC6 z9)v42Jfb5jxl31R7_*uO?HUbL)@sPJj>o`y4X@U7|DV~QVZ%lZlQ;38*{q??7B&l8 zL*P~oAL+_Ajo*N<8ST(8Xs3oIyLeFU))11+X19m?nD*`ELA+1Hu>EYN2Y5{UrXlM= z9`%PbJf@?Ec?=!VF!m^0$uSL8k88+#g2&uRZsyk~*{n`!*mzpw4~lq{p4CwI9Gl^J z4M7()e4?utHC{G@?e?;UU#@6qdX=rxWj|+u7+&) z*vx*{@Pv-t=Rx~G!?=fRmX9=4d#v&LpHFy{Kh^Mt&OOtx>A8lfFEsRdsiEF0w)@u_ zg5PNPldiqhu=5>r;=P8!A2c-kgU#-vhV-8pEPraaM+ZK$nSRkQ;wyvb8;|<$8nQ!2 zDnZ9nI_}c3+DpfHZyjBIbi`Hn)e)XThvui_EuBxPV{-w;9v#o< zM2Lv8CoK}U^@IwCUZ&@=0JM;Ef_*pgL;l}$&#>^e`;*HI{^jx@P+e4!h; zb^dr*M^auL@nJfehwCUAp(A5H9o~^T?$g2iI+hmDF|weJ_E9=2M(g}7u#SMjI-b+X zB0AOR47w$EeymI@HlosjiM(^>m2!b-bWc zaSe2=Yp7#lBON^&>!{U4M`TkSW-}ch=u)hXt<81JXrW_3OC60`={)yaN4hpTzR|6= zI`*{FF~7ZzUpwe%*-=O7PC7Do*5TVl=NA?_4tLeDyqk{E-F0;Ap`&t79l3kyka}|$ zzGOMwN5}fUIwtkg(X+pf+5>dtAE?7UNXH*^`4=7A2J4u~tu-)SN8=$nivFs@GgQZS zx;;$C-r+hHjLNLOa+*gi|gtl2sS&C$_hu8v|!Izr~@ zyx_2oJG5_sj)e<#3|pk5^Ks;=f5$pq%lXWcGqht799c}jMD7RlnwgWm+{-)yz9XqIF)gc|@4(t3T{D_WfM|Ga* zszW`l;|-lVp<~lY9aB%~=yO^}y)!zZ&guw0r{hn$c3#KM3p(ap)G_#yj%Js2#9Yyl z{;JL|AavZL1J`vdzM*5pO&x7-=_r3&NA^3+fxFBBI)0Bi@H_Ya`1=fk2Rf=hWDY!H z4m@TK(D^6Kfv3!YXUu`;%z+ooftSpISIhyr{+c=PhB@$-GkM1&oI1Sc5&nTk_#ZsN zKk^8tQ=fQ%|H%XVGY{}DJix#50RP4V{5ucu@7({FU|_3YV1~;8`(j5UZv#bq45afl z@QrSzFtEqZ!2Fa3eobYdrN4pF0R}RQ2EUy(@Q@D62ES}DFj_UxQ8Q3kH+VLr0m(G* zl1{q~tPeCWDab(2U<0*N8_1u=fIDrRfj`n3xSYTf`OG44UDa1pmSvdRjU}tTh)M4 z&A@9qTiw9M8V07+GSADOSA&25bu&<}yMd@427-GU_>->nGO)9^fjNB)4DM^7Sw90Y{SBla zV8Audz&$!J$iU)X42&3T@UjgC%EueXKEyz(UkyB^<3kOs9%k^m?*_V#Fi<_g;APwm zXrm0grSqc=Y#zf2r;RnxcbtLx;|)Y78c03Cz-PKX(ZH@r2IfxYW}0H~>c|F4Of!(d zGT=4c!0+_i3{}FwkwGff|bpL@YL- zFEQ|rF2pT0uw|J6Yq^1bD-1MPX`s+518G(p_(C_<7}&kmK+-w`@#_sV-(aBRMgti) z8Svh0;65GPVqmFlVB}Tn+8hB18cNti_+rWfm1Ksx+sJYibzI_Ia z{ams4EEf+L{9U(!=?4w;KVZarcSJZ26&VGcZH4m@KHJZBEPU=F-w z4$$FO%z@X;fj7*7x6FZe%z^jJfe*|9I{gQ8;3IS36La8C=D=s}|NLJV1Yem0bom=| z;5%~wCI$*78oNvs^)lh{Hu0Tq`v`T5BOezyu{7s|?F!|ZPi6f$k z6_SZDvWZTLi7KkeYlfPTbrY}XjA3GfX=1Y5M6b9&6Lo@26bLpEnA*fgx{}7k_OvEu zr86ljiDIE9LeiV;N5RA$+LzJ9!b~QHWj4_|i;1#XO=Qhx!Y{jt$8zrY1%-GtoBIMET|>vbQjis-=mibi9>` z)vZm8Z)2isTNBmWnFw!hLhE4SZHG7$=R2C%+{whW&L;YHF;Ty(iRf-7Qg=7;nXdOR zc?C=pb9-@f^)?aP$3%&~CNlIh`B}b+-|4pjCYB5|*~5j2cE6aYFxW&6&f7oU#4|cE z#Kf9kO(YIA(QTNC8pBOQj4+|cC75_e7e<=cGRlNC+C;xGCK`-2QD~frG~-Qtp&N-N zc26*oG|@!-BooainHmyr-GCPX{d%OQ)L{Im1NznId`GLi1EiEni4 zh>1N%P0T-L;@9IQFG6ji^hpz$PnqyNZSs6z6Nk^3Sbo;T=yN7Io;OkXf{EN0O-Pqa zyrk2YO{~9SV$xOaqn_7H)V^*a{|yuFnD zjOZ4EnL;J0TpUX+YD6ulEp?*q)SLVsaREqr z%whD1YCU1Apb}4ca8j9P-1ijzoJTqNzhHBthm_$ZcLNQh9IvcY5x!!SxRF1aLF*;9W-ZS-R5WOYo0}n!)Li0ZI_@SM&pC*1{hJ0o?ed9t? z1Gv%C<%aF$##uV%+@(kKT6V)rapSn^##1%U&2J;zNTItSlG|`2EoC;{{8GXV z%k9PjIv3=|EAk3c$Q#UEPgp6kpSgF%-A6wi^ei zbzL`l(7F0f=WGe%$|a`@4~KAO{TM%zkm>G4+XaV`IDPH0!O%!o3@X1qts}w!5BAEj^h>@??z?1kjP_UA~)?MH?~ltscx*B=7u_*yKsgZ zyQ$@DH$KjBBl}!#@x|OSi}^xLd8ha)9yC;AqZ>o0>2@~;QSM!C)T7>%We;}=t=`8q zr-wBCH!dVCKJLbT>UGMENmS}A7w{YxfW}>QVVc4I1oFCmfw)2A z>+(L$YZ8dv)HOB`^Lg*Wa5&Z(Oi0TaF!cwNefhb9D z;{$pA?~p)tvBZINVRRsT#suQ-#6W11IFsp|$qde99@mUcF9>936oE)u9Eel2YE>YP z(!jNWm_Zdc1fm@UZw^Ey%C(a#N5%ICq6tX{d7na01fm8-oR8zCJI@!m6o`Ce+zdn+ z%5pytrRn{{KxBRt2-izKPsRsMME5=hBH+(J3k(F|s2GGt zG(!o(Fk{KGkg$gkF@nDeqIk)_h^A&?yLU z16dmP48j1)*(V51sMs$-=t|Xx1z`xa7!$}}5IcejLjFlXs72mWgOGvF zSwVPB3uXpk4|Siz`!sY>5av_OrMyqA)&yY+b>AF>#LYo*h}jy1rX=qOLJXzf7lh*U z>Oc_29Sp)sYJ7zEsmtjgBvJgOAk3v|SA)=*JU6%|H-j*Ts@~!A)cjEpzb^_x&zC`1 zM8iJ>VIkH2#QW3+!LSe)jD9JCam6o~7nlvkGXG%sh`}gGK}IktP>wXgXiP;j1fvlJ zWDdpx3d|CWcp6TlX*MZYgAqpgD4s@Z;k}Huv7+a`8 zfnd}w$oteVDj2DvgRzR@HnEf|6pYIBkY3Smr}v}H6$0ZbTCfQHEL5P*cWHY1S84{njKIs zZeKTc19X%?ydu2bWGh}-ZwN1B#-H@ZyZFUMNFYW(3&im@84(&2 ziG*tf5Wl)SyLYIJVMA(Rv)zGLVC#t{%X^_f+upeKravlw9e`n75-{}UWY|5Xq7--j z>NK;EZ}TGby}Aahlcm#slvdkxPkU5n4v*WqB}b&%uM;o70C z7_02Xf-*;tQ1${lue*rrTQ6hg_AAKv^$JSqS9#^#tJoED741u0%!1`W-h=dBIJL^1Y44@@)*r_zbR6&-somJhz+93FwmEn*79*(Ym`|&tSjU9Z;v3 zRWiMl-by`29AVwfB2}_ta*ETeu>4|n>tui=+0zZFekxZ~LHnggsx73Ch>SwH*1bZT zhxTaRrB&C?p?zAnWIy7e?YnSLOZJ0mC-;yfL668EfdU0lx_=jTo7%EMmu|g#*|A%t zhF;$Jqxc1k^g!}=d4=~2w}T!@6Gg9xNLYK@d1to{zmhUo>q%)(}HZZM_JPGuaLObXa#-?$opfw`W}w=eNTX& z_3o*ss}=j*)1Tc0d(vC-OHU4K@J9a>mi)%k&@TAe6DL^fw)iX7o^}2K*6kOb0BhYh zPXTM~caG>xVsjF9mb𝔥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

oQX50-ckfLXZ32%Ld9Q7O)Na-blTZC
kpyqGAn!lmq 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%0A5_3~@q4EGq8_z=hq0lAm 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

g*!c|XEH2v*W3--0 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 delta 835940 zcmZU52{=@5^zh7`F~&aju@A!7$3C)+C2LCdq7aG}i560pl!T;i^-7zHqKKM`c3Na9 zS<|Mp=tl~zBZ$)kt#m(JOlcB{H1JQV-pTVY zAn`~^i3u0|qG^@qnUV5%u{;~^kmu6p*5t}j?uF&!bOld5RDs3ls0;eoXu1B9aPrJ> z=ipu$eyM_|6rP#Pq=&CPU(`Fc7#>Gv|Dx6a$CcKPX+L+>xQ?7L&JqNA5y zjyG&zGxQVPX~(MmbIHnr4GNFsV-L;rAB>$a>m zn=tZc_VcL^E$y$gx9(joo%%}YMB}q8-^kz{cGe3ywo#`~%+y6G4A=`PX@}_^xB1Ai zyrMRh^!-i2^3Dwx-zysV{c{9Q+{B~1Ojl_MjolW;Yhl7(w`gqjy7%Mw_$EL4$v?t+ zpKM!va9$dRp8wEy&$je8<^04n7MWhZ_1?KE^^93~(Pj?gPU~|2pM|TZF6l2z@(5~V z;tiW?=~dU{O3KN5i}A!QrL4*ytFo%DPNy`Vl-^_Td2P?@Y)i``fGFXEz2_}_u+o&xvUD&#TOkom0EUI&cQXd50YQAK75ss z?Zi#rVK3%g-VllprN_~q#lCDh5!rKz@0Y|TSKyhMaZGWCvM5_|-M4ps z`@anB;>T9}(R_mSb<7uBY( zY9c%hxcXLBm*t&gzdtOC>B=25dutYa59eh0u{sWIZL^bEsH0h&yF;=6m9N2-c!}$? zSNAzbo?npjaxfF;cCzUmo1DgVZKGG?kudRYtczSW!)w8FJ6WMsYhHZm4A^WxJW~;2 zy0f?4;ZjI*L7d)WlIeCU0)x2zVgHyIysE=;L+RdGChgME#r>3I`;0x$2&P0 zDFf9<)~pXsSA0K+^%oVloYq{y*?rTdIQ-(?I}AIqn>W{9m5R|#%v^Ac>av6#->zmm zds~KKKy-4t<0-R;98QSKio3=>GOpzhs?RR7b=>S0r1PTj^T)8umddjiA^D&_)@=HQ z)g62P%z3*kuf0ll92qpS^hm_jzqAn))>u9>(?Nes` zqwkV)FOi;KRQ<3jf zT=hAgMh_=lf;w{A0%AtJtA- z3XHR^KZFu@l_zpl&i?x1y&3Dd+ zrLOy0BWJYwYD2@EtuHTLjM|~ByKIG!dP(r9ITO{laAEe{Uhm+qpDYGNH*aB7KF<%U zV2KXLqVWf0re9dMMy|>tXFkJVzD&W2oD*ruYVRhquB`rfATm6^|e;R8KItS=0Y?5mze z{xT}lhOW$1l5q~MS~1_Ym~`jVC!PHUd+^L&7M-n~VWYgQK@l(Q_2jPcy2?GZcyZV5 z-A2oqUfY|xt`}ImuCfl<<*EGU(58QkzR&WgJe@ziBj>xys%3X-g|nCJDwGecJdO|b zhGslW530E;Z{>Y+{I!``(N>!|Q??UE8(nCD@9@#0iN?;OAN9WUQ6Z@jW_Uw_TM zkznz9Z=Jl22NawcuQId)eU1fB+&L3%P_cO8%S?ZzcGYdKqymjYY1h<#cZw{0e_~!5 zbt;#=S>|q0<&7i!Z&z2{`fd6Cp#AUs4-Su3%Ty2G5s#%=nmNrS`7=`ARwOH^j+C_; zzbtPy7MqT{w6yp2DW#)xlJS(sEc$_)^yajpFmt^4F^m07!@Ad8`Q?i*OP1g3J+#hD zv|xrBR1nNvS6tRve?nO-$fRqOyuG&*Z+OgN9o1gS+!#}Ad2XuY%eUo*DZetD9v;5# zx)pagso#^h^*cWBn9D3Z_;ov_T-EIhC7?Jz_i2r}Po=q6yV5h9)#vF~OHDg{G-{U4 z;oLa+cP2_*nbEugiuuwPvtEDsIYqm{{CKq0hgNw#coVs~Vck9Yy@YdrJWYnv#wBbO zjz5URMq-`3mLBdm@{^D7D&=BjPw>P(PhQMK?df~2HtzystL>joubd+tev0z*%)m{h ztrG@S`}KC*f4h6B^up^M^}CwB7PstZId*wemce})*LLr_w(+^_Zv06fiyM{WnQl2& z{HDXk>S*|WN9Q(jlaplFw>ZDaREA7k-<%8fu1#^?{)vc{HRQ9==2F6@j#Hk; zJ`TGvHnt>Wk0IW2$NzSL^N>rj)`7;7*?hS#Wt#I^ZzfpJKL5w7of*T!xldRbFKA-q z(81U>CEd@L%-(zR4u;QF^mJV_d3YV)bXkJkoj#h=%S%38jhDlMA6dy>PYq4j(Rlph z^f#H3&bLwvA2@|vd3&@A3%pa6Z|`%W@~55bnd2iKb!nWX>L&X6gOBdBw|{%&Im}v> z&}1^#q|frqDPBO$vW7v4`L zi*sH(HOMMJ>8QrK?RECm0fp(oV=c;&#?#+|+o+2z*G!8()}Fs&+4HVc{Ml;t)zy`F z=~HHC8vC|r*%gBiT88}6D&^n0q3L$3yAu^3o_iX&AoHZO)^F#QlXImn&YtZb;NIQz z`&jsKYv=U-DL2bb0VYQmx-8k7Rhp_BAlah=7 zc=sy1Cti8i+#m5ZbnTt(j|xLIvnMi6god_Ob*!Z4sULr>bfly)>y+m`&8S;d1LOBm zOWC~R=YC&E_oK}@YCPLEZbssaM5KoydqQbdoc8tobv`lSz3*#;?dnoGSJ{N5c-Cyq zt>)j#*WHpO`E0lD(%o$}o44KP2WyS+w(OQt39(Ppo#nazxXOW@ZK-ji0SX+gCG$mN zwYKqwgXeTF5WyR=Soly@F`m1XO?TQ7|IkHY-CMk4E0YnC{Jf`3WW&|@^JS{Tf9+Ps z8QE-{mz~M{LVl>W<(a}a#bfgKRj0|zR9}wDCHj5v#fP#voIQS{)>mAGh4qdt*-56J zzwvZy?3lkG%X`OiJHV$62t)B5>i$wJAp32r` z54z18PMf6SaogkYC)>I7i=XBnvy~2M#Thv)PK!a$>3RCM4{rZ(fkXP1HGj|U@!hnC z7e|Gig)+$NYW8~kvvbX*3hMg251NsimBWwXnK@j%A%~5R=kVzISKg26@;=_fJ$JAe zB&&)mJzj??%mc5B6&y~F;*4jWtZy-EG)`$G+>q=o+qX3dx6wHG>HR-pj{P}WH}87a zJbRBf@8B>`^SdLJjU^I|?RJ|?>Ya8fx_GcPYm~PZXXLVYL40RUH`yXqT~gesr%TP# z>DcwRS`s{ZxpBH`?^^26>t|NZ;(_x|W_&IwVQZLm9jO28_V}Xf@ZK9M9$nvCaSad6 zP2oI~4rAjJiUx-}lQm`?{gZ9-g8lY#ap<}Dn3pTc>$Y5WR1u37IT^8HM)IdP&F^q5 zK9n2ESe*M{$Hn%nn>VgiEgM*IG!OUO8Oh?k6F!i#ajLyJmn**hqW5uI!-o%sxA|q~ zsc&U=&pp|M5AEdOtUMO(m-mFVwjw${y9%pty&(S2uHrhy#YOrt+ynVi+kzcGYVGOr zz`6Nc&xT@gmvH{B>I0m++|#Rdt8|q2nKoWYt$Ek*r^VTMeP>H;e*XKyLc4;;3s|{_l5|*(SU{3GLC@M|T9zc%QO8 z)m?S$cjmZ%L%e-4M=L+W$<^>k?E^pQ4SvE0mk*97?+dy~9#YMCq!Bf4O4&yT|Wx_m54j=-DJ!myYKevgwO&Kl_xe z<~Ro*Fyu00uWLqX2!HSv?N101S6CeUj#PMtRolzQ{fwA+q7j#!JUlb6>7}pM$-2{( z@sU^6)&=JLXgC}Fvb$i9gsH4oP~)cU$2vb^)q9OO%vFp2Y^}0dS#LfM&7qRj?PvXR z8@F5Q_6mwM7Fdo|NC zY?gvLSt1-e>`5k$4L$T)_?UvY*_>C$Hq+DYTjM#mgU#Tiv{K{%aiSDD( zgYyRyJL(KSx1?HVJUT})xYZVNDo?#sd7h}oq0a-o76a)u3d^v~k@Kzj^@W*ahLq@$ zomsy{?pG)7p{_p9h`@87MdE%%5bh!t-K5!Nx8MEdTX=C%DeIZ7yHT9%f>FD!;TfS< z_5+JBsgjXBJ02T(NA9%soH()fxhJ2yX9#0-C4V|6!fv(trGC#zd@U`S&)U~OW`@{D z=^cGE{HKm9qcg8&T)o%u^1;c?3cvUR`xz9euDs7Zjhh_hlE0)*C4AK4j}r?Por(giXeao-^^dL&c0KpN6EL&wfw3ISLnE>Wj2DH0i0%phswz<_UA0euRy4j||`)#!v7_(@1{v^IS3>+8>J7 z_dmf)Uvlw*myx*Vt2p{j`;6(Mw*D`0=FxGy_EiPH!L*jl&orY`@lvZuoPNx2uQiV! zdMuL6=UGRR@d}$-x@_MfqooJ-pT|Q7IPA>evFCR@wx!(5zs@M1GGLZW^y}-qFfp*d zinjSIid^X38nuwz(eoZJ9bo#YYHG zi|9~)b>}MDN8m+=$;S6~M?ThCSrYq;>gsTQ!-@Cu&iAUA6$Nvw=Wa2Nl=FYdFUAK3 z*!2Cgri^V;FX-a**Idtj-LuNKUa2nIo)%-&yjstEIw5$6v{V!!W?+u6Jd3slI z<7vxz!WG|D-B)V#8Oa^`z0<(&#;f|x!|qlQ&%F+{lx6?cRj_&&^Zk|nej}WBoQ207 zXEENsSrS{Vk@hsBCDgKWa^ybVaGc3Fqj})1wP<0%g7(j4+{*dIIQs;L-u%(M>)Ts@ zGd%GG6E8l&;}4wRKq|jsu^OpCIY!G)pVZDPGpX<~KJ#a2=6=c8;I$R8w36^@_gK9C zO(H!;=#D~Ox@8j1e#@d?JUp{cbJGS%-1Ds`b6edpFXjAw%aZ&?z7DMl3|4kl{p3;= z)rg03oAJ`OnS7RQEg63@+mB(u@)v#@I9TO&#qxT3@~|lGY4?QBwr63upJN5iC}U+L z-W$@*$(l@+>I#ohI34r-E%&|{XH9eS`TAjvaqa5?j)f}khTpze$9eBlBjuX*Zd*{= zikAm(<>#*dB4cDdw7M|mK;Oqd3ljP(r5JHz45t+<4%_;fU7EcGeaY}fY(gPV7D4z}%cozqZi zPsZ!ZJTtCbk-90rv)AwbqZ2la`wj^+uWSbv%7k19b|n3CXKMG;skRS7)dTG}cIfwt zT~hcx+p_6W)q-gub9X8`UA^UpM{;Crhb5_nhTB)JG zZK()n?a_fv=Q^L(P5ap7_$URMHd~XFW{K_jR&y^wdc+m?D3@m9SbhAQb5A8V4UWjB z?cP#4dwJikipH|#cw{-7sn)ztv9tE7EzkUqYJPm?qnHPYH3!e`F2ak-nHg_ZMw#!3 zjq2Flkmj;0XJG!a%f@?lU5ZF&1@7|~bucWjS<#kv$#UgC_{+FG`{gZok3OEt|DIgp z(NeQTL1&iJO_LY57n!&#$0K#$HzA}MD zdG=8E2Xp5g%;SO|Z^Nm=zG?Zk>w!4KgNG-2Fd4hH$xU9+xZS#1b5#1UMVK+pIK^be zJ<7T~|F)Xp`Yz!IMyaAdzZ<28r@ENNb2TiiIqQz!!5ch685v)zu}WX=kC`WZN}4zS zEax*l6Djn<=eKspSImvVbA95t-$KZtO&^AyV>;<&)?2g9OPk-3&#=vkGhUIB7!l8x zuQ~qcot;im<9n&kq|SpX_LG zDVO!YS?`#ve9EDNM(t)>^FNiv_8urjtVd)fy_*>?>b7#vI>dbh{39z51(Peq$EVh8 z&c1ha?pnFxaF$56M%b)xyZ)TuJ!GHBt=0_F=Wp#*%FvWsr1lggJ|eRjcXJM^-<+8D zbFjEUKbe6JpyEelF5~6R)lv=jB%fc|bL4lZZ_NYLLCCvpk`rhm&Wk}qkH|%IiC=c& z&mUUY*QIojdE^YGgj1^LodW99%?_2i^pmo`o#@-*6Ob^!5exq1`*3bSNmq5lRQ1}< z(pGK9{d4>Lr$hUS)3lmW)Y?ijNwM>%8OF%_7eR=qrJ7Z^&ZMCDumW`(-`i_6UivDzxMVPC|^#^{5To8^E zI~TWHJi6;^<%LM4$T5oU1DYQsWYgw8~mF-^ggTJSJn*Gca!57V{zY8=G*+a#mqx} z17h@+>AsaNBaW95?=?9NpPUPSKsgnfk)vN9I?+>)M;QG)lUl2~cDgJ3WSFEwM(44` zszskxjw)?CJTVYc;&tHF4flin2Ew;OY9UJKe@KvL}2b zzI!Qah3!38z^RESn3=PUG3#-UbjPd29ZyJ3W5qs2@)-m9hkW142Xura6~^AuaCIq? z4pHpmuVP%@Dr}Zhdo4UgN{FB7OUGDgi@q)W*1Fze+1s}*n-19bG;M76SM8Yo(bZ7m zR&uf324|dR(t8wYA|9XgJjiFC&Lz`@>g>lyeAhDY+KM7Yi49BbUvC@fjoGQSks@;O z$JpDHmYgXD-=mUDxiAQAoM%-c-caSqbPc=Rame^3Z(($vMC|O)HTKPun9rlgPMlHg z$XO|v1-g_)(zY3o*1d>TYdCosG_G5VQFo*T* z)n3^Xfsz08rrg=rJ2UuxYlFg_DxW3yvi$;oJeKSHjv8K*I~a2Gcefi*q90vlfxH^Rf4j=- z2u`o@WbXNPXy8Cr@wbe;St%<+x1IRDA~WzGjoTmaTt7BHvBr;#H`kWZ)mbbL<*k$r z{J8T)WadlBJTHyTAE(jFa}kU7Jb1UYvue>*me^Um)-M!iEbznQ7DUn)=M`Ms-?QK+ zPUjEN+ih%jB{xh3;^TZ4{e((D;1}aX@LlR+DZ8Y=P429aL~dQr%et$H((9N7DxF(0 zCyZ2EKj-gUZMA!LjX^|oU-(^|?$5#NFLLnli){AJv#CEG77i?qetIwD_MU21P5$fi z9}engDlASd?^?Fn__0*|V#{(=fyZ59v8xuC9d4go$GcVCvp)6Yf+IzCPiFR79I-vV zt*|vZuhF3=yZ==|KzD`300)my6jvUi4A?&po4B32AyJ zX*8y#bLC=w+o_X-X8uVgmS%q((7$sK9_&nC!O?4S#Rje;Li0|^ETh85U%j$ zJ6-Og;7V7W@W`u^ICrF;9(v32)yFGxUikP3mo8+Kf8@>Qav_}kF_b>yl4*d*k?;AL z9~or2&E$g^d(zc|c+n?Mx?TQfwrSi)_|^`S>*GV`FSJX}!dauW^f~P^mq$yL?D3A# zP=4q&qF=pUL0`WNtJ*LcH;8j@bnw|@4P?fH@QZ%ycyD-7Bg-mk#Q3H6a*p7wv-qqpiDY`;%^uI6%98u=qOXzkE*+^=l6%k8;p1QZ=%gj% zT9>(dhj89E7QJcB!1b!hwnjYi816bX_8*(ujZhAhTlwj=v~fcvBbtQ{K@Y)dbo=JNukYy zO*rpQF8x`DcEqjo31xWmpL)8Lq}ok|*9V6$WrD5@UtzZsI!Un}b@yI>X`JW!1u-%5 z6Z*)$B?U`bMsL)OV`OkW{U(Q*hLvqFs5km&a8*R7d9rKG+AX95iPwG}#v}bB@n-)_ zzFz>HjB{`D5Q|D4Vp@qL-ul>BIB#3fX9@j+xb~_$332Px9M0C!g~*9e)B^qJ&!yAq zW>of$;0=M1{GyvF7|sex#7l#icykbEZ!q*InxAKmdG;l}GM+VrcT5n|IjiK}GTT zD+jYF3r@3Vp1r^)8x!%+U@l%9%%MwvHvjXXyYw(V5X{^g!p1ovJUj)S6(Mn~*xh9! zNq4@S+0EN#Ec)HPLNWAd^IL6=7oNUcxdw@;Vm$M9B;)xBcA>*hIgt;28SOSHXT$Nx z&=kcNhNY{_(~n2R8{E1-t{a6iB}O^5rSEaYh5Ga%_fhhP+HM?=T-c0r7DeL4i|X;v zFdkkCUu8SO;&5JgCf*#*<*1ejM5W;McRcy@rQ_tiF&%sFGVzWW7N2<+Sd7Pn^11io;H|&OlWBT)S7^dP z;ebh(RqI}v{&M%~kgY*AUDU$WBM^W~vGgvOusCB?~#MTPlVUUKf#Mv6ycnek<29t3ZJj$GLCGW zI%AiXw?6-Ffze_7-7{;veq{rmxeC6TuWI1ew&haj!)tUZ_y7Lzl+SxKNyal*!>5h} z4qgn`cmkJU5#yRXwxuZkr|Mb9318L%+;dGFJvd`(vEt@JExcn54`(Lk;uVRWDCHd) zT$RXVY`!+Z*!`_TlWc12`k8mVMf9-Oilp1qW>xi^VO>`zpO_F3;p2 zXY=64j!m|Eqm`rDHS%+G29CWzllRGNX7N}?uCIytgvzpzIbi={_}IU)~3qNTX*s+o2X&rq!6Y1;z?)1BP|cEiJnApgV02K%Q%rq+jm}CzcPXJ zYas9BXVDI+7uU|caWYP2W{8ByXvJE=7pHiyrl6!h|oWiw=@Y*hMy%)uGSei<9* zIenXmJwKk8w#h6Z;z81%ZQCj%7Uuu>HhGwC`SV<4yK~>J6YEK(O3JGgbx)XOCzVy0 zNbUx$d#uEdVLZiKOJ*;QR=}L7(`Dyfc-&i3!58;1fo=6l8TZtZR~_^5JG7*FIeGk&tQ-1|a9Mh;(FeDI;) z!}r3W4|mIwJ&zczubKUUwmY^JKlQUumG#p+G}Z4@s&bb5!J3OfV@B22g(!xX7WXZD z^Il)k(qFo;nbRI%@KyQbx4n-=B5pE2lDyRe<28>8ZDRW*#~e{SzPjg+gZ_E%Zl%Q% zg^5)^hr1U~|M_+45-!YB%6PMN-E(&LF1_mIS8v^KkV^g8=Rei7uiUuW;EDNL{LSeH zZ$EyyWI0!&apn3)A*g?UOSN$6Xt3{2vnLNqtwg>pR=>1wD6fBbL1tdfV;P2`X!p@j zmSOU6Sv3LjQ$vt6X&3@2Icgm)9iS ze1R8kzm_00ShdP&slye?i=??jd7s*beZQ90pA6G_Y@hfd^iF1dfj77Plh`Mv3A4>2 zcL(a8RPJfh^?X(t8NB=chvV|c)}?>Gntj|$&&z#Nwf=}^*UFvVr}$9Scua=mj!ET@ z-luaK_l}Rq8KsNkoH8a};mqbgarPv$vetet)D-g7N7sW>lsQhNw{BG^hVeFQdrO-_ zE7skO`?<0hk%wO`^j{RY<;F|l`_7uGEqDbB_;I*zS`s7>g z<>imI?8Q6Wne>h?Q`cQ&=EEuL&ddn%2pF*2voHD3kk+fuPhQl1kv;7}vUi_?Z;bP1 z3SNA&jri{1nZu`zXg|JOx@%0WA#+!Nw;BFx$-|D7U!C+k`0>8ok{3ufL^LF>7hT#> zSZ3cdV>#z^$nndI0_VN++v|*lJ0)6Lnkw-!>A0xTeAj_@J47}8TjyT2+0&QbAaXs; zGV z*gt=rid?q0BhAwI>a4z~Yun4(@dh^*UgQR=-I$Dzm*(V!IQ_YCU{zwW#pMI$I13Qt zu1r>e>zXu!|F!tNAD=u) zot3k3`IgeU(D&p?422Gp$61vNZl$+c<`h)KYxT`tc9L~zgGr)w-kF|2gWVpho+dC* z+$XXh{p;YOMK>PKUxp$-kUcY|MYBUY57l?uNOk!$%!AEL&g(`vee5f{NT=Vv!JcLN zed-{6b~1Z)mD`Nw(bC^WwGN#<+!t+!mvkqePu2K3dcFG|&EMx>=%H?@H41#Yjay6i z*j@17qxL!av#!(b);aRG8V}{Q#;)jI^C35fR^U|k;e+MW+N5XxqraAJeX&6)qko>s ze*9X)>lbUYPQUA9RBsKZUr16aU?cV@nTz5^$Q%aO!1Tg&ZR^U5S>?}!HeN17wIgId z#=9M}#-pw+B3;wX5xJ#cEsE+tkrPqmD7n~5T%+TFRKZ!k`3Q@WAbn}pe^gZu4o!U(kPg^86m+nn+8=QOd?bl}w+gM99FayN+ zNX}#(B)8qFcaU&;fmm}Xbjy6rn2kGgD8NZmb_HaWxs{cSvLA((%>+%>mNXSNu zBu_FXsgqc6Nt5Qoj6>2Vsgk@%MkGy=2FZq`K;ptkmZVHF1eygTITD+sQg`$lxtk(v zPcnd2`sjri)+TFAas&o)Bncp9z#>CH)QV$#vME|Bf$4{tlPrOODM^RqO0tGAG4d9` z*d!ScYfPFAmpKSlAi0sW0iq0JW0D=vsgUeR?jTH#Gz<93gF%9F&jg^huq z9ig)%rb5<1t&*5;hAucp1Z0?!n84NuBU4S1W4e(T83b?K5$}Xz;bi2MHgaX z3}amq4W1G(69G~qaH9gSl@-kOKpY*|m;gglxSPS<3}^_I2pS6*i^J0ppf(`FT0l#1 zw*yyN3$O;Th6oc2=s19Pl>p65VW|zciO`m~jKCgA5NQfzdhpZ)hg!ojTX@RDQv+DK zfpd+(UMZ3_YSqScG6*enfSE4nPnf0;V`tEqDPSWBi}OkfFd*F%Z3FvScpV8;gcOF%9ff+7UU z0EF7W(*j^7U^5W_caX>d+hTwQ(P}3CD)(}u>lc=zk;A0K`<3I*k0-XY=pawil z0V4`>gkZfR;4}mr2rd>GfHVgo=3tklfVmZn36~p^#6S^IutOR|>i||xV6qsfXbp)c z3)J=iR}gr|2u3atBsK7{yFdjtq_Q%sWPnH|fEj^FdLYRdxJ!Unv_KJaQicrZuMdkX z1Q#L19$e3XWyHoa0`VNc$OGO6fx1?z|v zMB+*VA1y&3j6qc*X-o<38NlxEP9QQ^2gJ?-CS0)J4j5R%PZh-K!crx`h{6&>_!$9& z4c6$xNCK2o08c4`N3;b2A$F3IzfmJxIcfKh`PA&Loi1%SzeN=(2L{D_S}ct%79Y< zE-aYI0+ujO0|Kc6>JfLP|1MofAuWMUa=?%{tO!!#t^zCxja9&5il|Hmi!vl?kR8N| zC?;}HK$M}gd7R$QHMOH2QV%4Lmo3!vjHFd z&DsCbR1QQaf)BVr>!yI&qLou*YxHP}%tXUF*iv~15N-pxJ{x|-rWFGOy{zF*1sn zCNs6o051o6$$|{{)2v`bl$yVLnAmk<=z#*Z5bc;IhoaZhWTOl&gkKDl7K5HkRq%9& zg)R^>;^GNBMyM(d&6O752}*0oPEUvn0rde>hME*_AMftzU1{pqrL{Jm#Vo6Zi46>aL z@`-Im^h}V%g1ZX9iG$tzF)18~ z8L)_`q-?>AfJlKH;%WFl5MrhWY>4s~2HQ>oqT&fcbUeCeOroYk`0htG`1i^^Iv&tkdA~Tx**alu$!0>vIt4USPirwo^l{p8!lo@ z98v23!ihPXv=DZv9>`S^jEn_$0`}jvmb3_Lj{^uX((@KPh@lSb65_dm6hTUYy+k~9 z1b1RYT#3MBnc%J`xEl-Z%fY*WkP*w#?`TX%NE$S^Mp`kLwuC7Z2QHXJ+(qi<#b7@% z3XIW%7)%LSVHnHS8H^Qyi>PYau%(E%6bC`FY6DyhOy_}%)dVkoL=Bq@czJN97z)O) z?Gi)->jpj$1!6PQz{H}-3P?){v=9L@Ch}Cm8j%efTZ%-KF;#uyaFl?M%fZhE9HapK zt_-9a(I}~bR52J6r?)sNW@FLFR~efvqy_ZSXbR@?29Q!Jg5oj{81Z1=LEDX%Eyt|% zEMWr@XBP)@SPy5Uv z{8d3D1--;DQ&&>}OF{Y*eFo9+N^^f4ukzg<1iSQB~w|J_lhD)vjt9@aX61mfaB3s9(rIiY*{ zn2EFnuCQef?P|OD`BgVwj4pb#@#PRD7I3tv9 zfEg?Dz^*v}b_P{kftNd20T+6phWR2DbAD) zhS(gk6G}J47Q33mNu~%q#6e$ofsYn|`&=Mme$ed_)yfwzL|Gx|Bw*(eh1>}|MqC6P z7s(l6PGk=9H^PpPZPBO^b_LZe$CfFE5*`4X6@Zr%aFYQZ5~Mlkx-q6kwnI;hu{rWu z0;vwL3)xT&Wd)ZZVw+$YBC~*82@tlZ$^@n)ey$PZLWfpe~ng1JbsA(e!{9&L!V14#+}HpT3O zoB*hbxEyS;u^ucI1r|!+DH8xo0Hq}C6k-dAf@g#T7aj15BpNDF$BrQV=!5;G72-c{9ZN#gx7I@4W#&*D&XlzZv^G@(2Ucn`Sf|%Qa$B6GD zVjzR)1&n~JGhl2$H{vn_8lr1Zhr0vl1*O*wNX0-o;)ErNh7pkIK<*Gv6L2j9SQD=R zhJYhZRl+h^Om zbq=c0z^svlFs4POqea4?o)V}f4$>tc77TEXG)fW1wx9`N%u<5*Xu<+N5>Zq_(;Ao; z)KB7I)`um8N3@|yU_%vgV_{*2Y5*_-n~XrT1X#oXGDV0l@vaH|nc(_&jN<6n9Vz0y zn&@(f&tT&4vU-<=`I428j3#D>_>q_k^3{ZVG!(&Rqt%*N5{eeVxaf!oHcO3o0TqH+ z5Fa^+j^aNNM8TFp??f;&34(+ugi-_&>55`z=&dI9hHQ?Sw6F{mB8piD*@J6|u7|js zfRQ^y&kmeTz=>^P0XfEmR3KVJRme~^C}-kO1+@Of61^XhqsoH0C5&Munij>hrCH!g z!W~3MMx?1Jl8eJkMYMr4@y0ERcw+D#ktT*2DG?u76u}%SNYDpzd!X815E8Pe5kDTnkom0Ad3hzzFC)!F=Ky zi#_0(z#}9BjQvXx1V~dr*?Y?78BocUBFVJm-PY)BA%Kc z))L%A^e#j!RRnk~P*odXL|g*_Y6X$i0~}FxG{I~7U>;ikhwKgS&O#7#VNjVk{S1Jw zx4_6b;4R`Cfq}pveb9jDhh;%eVudhh>IfzZLu$?fDa02meSpB5BS=$+iXj9NM8R?Y z_xSHh4afi*xQ<91-V#vyFF+H3^nVxqT}o_9LeyWpGpO|!{+E*Y22GS;Z7_$ZUj$Pz z_z~}PMB_vh97$9VhuuQH@tD1^0z?eb5BaUY`Lqr4)Cd2><(X+&3niit4mMG!GS8qa7Ik?NioTz1z z042UnNP{He8x-9%FluFNGO9izu3Yzc1=bURa$7M5GHk<+BZD?f6tV7OR21<5n?jin zFlF?<4bwpDA7V0fVGrRuKibiXNfXo}=w&;$51BN>RICFtN12Z?Cc55%NuiaGG10o( z4$Q(6oveehHF^b;KzAdkUdVqnris>Uq|oamBB?DB=t2-x6OApWNTBXgni2Z4ks|YV zl-Z*wClzdNI)CYk*ywcu(NU{neNm^DkOKO&ni`At?ZPxg1EOOSVqMp)T9bsx3BWhp zi$X_UUoq9Xgaqn+QRG)dl|#l!@^rLQi6V>C8>#d?j@t}Q~(}U zqDZ2Z1^?;LmPKtuVOjwDWCBi@mG>{A?%-DHBo#fAph%%6eNgO04wZ>YcTn4qj{#7N zi%~>T9~JT8E(k6Pf}Vuv3&lkL-cXfCTv8JD>UzLz!Jv z8fq}2D53AYR4G)X{ojb7fhG!!d29k4rK~7&$jJ&^@=F@znHN&S&~tO(RcZydrMXmD zq@+ueMCFCl`{+!9JOgdv!ipL$ta!MaDpQxfn|c6429dzf>!qA3lG{rSLQm`|`hPu? zS%!(!ZQe`O#n5vbuu4w{gc|GuADHf^iq_rON2Lp)(Sx8YC?Q>&B*dbq0;&pXz-Yqg*Nl(|8krU< zK@!&>coJ$9HI$qKR{t;d$c#`P%DYCDM+rB8HSH?sc21Edg&1TS9Xb9MT8Fw2?6F(r zS`vt*45~t^NTQpj6dJ0s0c$2LL9HVXfGMqwDub3Dr7EC~qY$u>-$IJ0^S96vl%@kK zIHrX9x?l~AWKcLU6)a0@r%Irs?I3*RQ5cOM1?|uO7GfdyKSEh(M;lcS-EX66pd)QS zlJ@{e3QE8o0uuyEzWgIpjeZ#czhO&A%xZ;ywU-KvUmd#&;`Q$nEij=mQDl&!jL_d* zy+B)D2QlP?M4={7wUHEzplA6HDgs}l{u@)#fQ%3g(Qr&*KTBQ$4fKN={w6fV|7J9# z-%pi9Yec{;YVA}d6h>&9PUvk&s0T>DL+zKS%7WEc zu;pL39w5`Qkv9;by(a>B!{D%}pofu77P!PZ~l0s3dW0RtgrXxigsW?#NQ7w@+5cOH8pYTP^ z16b?&2qX&R2zDurLNg*G6>CVD0u4wMJqL*CG9HbE9O)3)O|oLrf49eSHYijG|AQ0y zJJN;PGKWpkLUTZ#GeBVs&$=v{W+6=!RYY zA2qA)x)3b@`_-+tB^Ah3n;8C6y^Zy z=h@TDk&``514Yg_?TFi zH7RI878JmmMsQd_DwI)ZE2L1|Ehr?=Z-}8|*MPCWVG+_adYys{O^u9%?@-kdD;vu1 zAd?17haBkaFH4hU1w<#sC$2Mfjf+~7Z2Ess=EX-XhcgSkZibkwYM~k;%@(R98f$?R zOKXLKGu{jeRJTAKh-ik?F>QuZ>0mPyvFs9P$OICyWoZehM2n(}2DBj2D|KM+32GWk zo~8(Om8Om?Oeh@G>HzJ5uN*B6H9F8VWId9iHpH(>bzhSd9sBPX4KRU3!1Sve%?Ih5 z!7j6rr_Dx*X3!@bk*ArWweqyA19EVvt(Oz?`b#_D0JX+x^WV)xMIX0AITCE|FY>h4 zXo3a-+T}oDKqCk3-M@{TA*7m(Ek&ZPUx7v^qZPei>#H6}LV7P%7ai-Rnxg6+syXuQ zf!M9;0a$x4#7NM-B=$lo&+nyji5m@R^ni>0w}{_RBu-pKni{HIBCm$h>LCrPm&mh- zk;nlWWLc&Xje%^LvqHvPe~j0?ARLtwQR*g}}v1upe$Xz@CH~ z@2?zy(a;|`F>$m~oFV3onUXq zo}?P1+HX`P!DjxCrzM(D28nl-X=do6GVSW$t}aqtQ4$%1DT<*_;!tU(H-WREVHHIV z%Ai@NGBni(RcOXY#u_r0RfLT@Bo8M6lt?)=CIfQ)HNnzPsvuXubcH6gtb)A_+g}`g zG6!NVQH6P(u#0YYLQXI01f92ZLfO>mq*@`VE^xRYYKbfehnX7f7!p>e=_6qtq=vjB zk+ zawMk>rNtduph$6dXmKkPiVi6S3KU9P+5*EC+=kl?40optIrv~hh721rT(&V7I&=(s z-f6e*@BduaUS}uC$$f6OgvOEna(qtBPxCh60r}|`1M=s{py~yh(djQntYxreZ1zdZ z^|X8M4>aegKILg5?aMPVrOnCHUPulyAF7CKZnyeao8gBu<_+HIcUlJ%w~CI_;jPFi zWvDXmg2>36B}jP95+vL&l1fRB|nS4Ocmo~hQ+{%4o7EsC40=b{fU0wAnXtqet`HyADhMeAoLEAdC z*1b9Db2=9^bI}=4gE;e7>2jdN?Y)yCXf znEISsD-@9aN?Ydo?N}(X6illFi?&g33+L71)Rw$j^Yn>z+5&G!KFaHHJ}swjL_%zQ zN|ShRbx0fF2QFbE%j7mhOyzJk}XjC_v3xPc7_W=$)*bL z&^M{KJM_8f56|w@U!(`mgf+kFViV1@yD`LjF&Tap8Kp*JvE=p^tmfz`_>}lWWH62-+B&QX7-I$cYF){IxanaqARrkXTCx;H} zscOaddZZovgFajPf1;dF@c$R(%f}dy|4UGSH!WFJ)p^usYaUgl(>#W&(Bt|-bvZv> zQ9yYbSpNbHkxL3_(W;=gkwgd5pDYVxR>T&=1T{WLE3Ev2Xsh>vv_w^^AQ#6Lq?N5J z$b^$VIj1UGi0N$iLWGxg-2(3-{Zt_u_LD*k9%-Fx*}_^yHLtMNQxym%WDab41QWn7 z!7M3*if~=8Vp@QsoeC>Mh&PJx67#IwYD5+8+^wi)sBJ}=9t5)1)x#5d#;6j-m=^yx zg`eh~FBed=i}T!p;vZm5>SHlKd!(? z#KJo3zpXevCYkN0@$dxm(`n{%^|Lt+Muw3aUbf*tH5@>LM#ak|R&BYk19lk|3vk5iSW{7Bb7=tm|6nNF}2>vn=(kwXUWe9u>9J3*Cu zdqQuT{tjk?h1Hpp^sOJgXOXAqopzmKP}p*cREBz2aL-QZIkI_6wZXsB%K9Ke3=~a)z25$_m(E+ax7cojpURc=$9O9!tSt>X)-L-|Xku zfXeP2!+W0Rh8zOa+Vk{|4Bz9_$qRbUc|X$>djG5^DBp{mwY^9pIQV;~ZyD4Q?-}#D zyxyrAck}K(F}Y*Q&3pFWlrF2P$o|G@>@?IZmtm=vCCr9)gk@aU)fX8IU$wLZm#6v}8SQF*Mv_z2F3H{VmNe_B zTmD97dq4jy+Nqug7>4TUeR5bfBcn>pY&2GrG8=i-kSvCu^3P%v_}{}aYU3Ri17))s zd%Vx(PQ*P^_d>O*4&__H4787xG}l<()13C9O6Ej| zs#)0#vR79zhv@d;nr5WK{->7N#i=+Jx3`9xxtyx*E1G0jb?R>71l?uF<}?QBYHD61 zpNgnw`r6OxnuDBn=DJ#lOC9N`1=*LHXyvo3i&0uudwe%-ltYE*GxFI!`HU_Om8rY7 zMa}F^Sp9+wKRY?UF~YFVb=N-Y>RybN$Ij75JL^=TC5<umQ8x84b+s>V8wRu=12O zvZ{$?jiPE~17?E>jaWXF>XyStHEhhow6nD9rWZ5vtGnHDFr_bM6jnUUr?f^aTDBJ@ zAJg9Zw4uosTS>z=OPi=h>>MY>_Gla(*NY|2kf_!wsI*bWr$s_+a!lEBQ7zQEqW|5} z`!+4AZavkhgi%BJHDnq!vXNO)70m7~tUebv%Kl&Ieo+nn7j#sEv>?^fMl3$lqR6#b zoZ)Tk=*DInhuYEF%&X3Y7`fH-mrg^SD{i<0!W%}lVLj*_N|Pdz68ffZYqLFWs@P$4 zXuY301I>u&cwSaPC5_5yZ=Khab^g6sW~eGN(=>H&=c}SClKlSyw^Y-nL^|ya7fVrP zIy5z>t0EVifm&p2Z#AkVE26Y(^ENYUrk^bdF`6q5zN&k6cXO3m($Lk5Vn!2Hu%r>5 zfoQf)7}&c{T1QT>4cy-C)wsCmFI)ELp`MpEI;qeyWFLVRS362lsA*@liyOtfXW=Tf zh~cswg^edp@2ROq7N%14Yi1sEDyMfNzwsw}`5qOGJl>ZXg<6=CRQEr4VeuGx`R6Un zZ0hensV3cCQyUV`J2UtarFzi=lT%`QsGuWMn+h$>e(G#dBS3vBVl42U?e-oDsBy)O zlB!II(bjvgvNQ}!NlA)|jEoHb-x)J^D$w1M##Pm^l;KvHOB*G;XW7)(rHwl3Tp8k; zQpV66_SUjSjG=n|)p%SWY6^+trMQd}hy7t`Nn10Ao!rK(>r@vK zwZeA(cx|{#1uQgm`_F+|FNc~th|zoGAl|xUFpGrDL+CbwzSIh8D)TTci#=hO_Qs{0 zW3+{NBZ>^w1P1vZlPmLW zHh-17s!>VxzwO5dR8`q+Ub&GQ@@j6ip&B*g`7#pezuT{fx=__uKM8}24B==GIs*#VIU(@Y0u4XtKDsOf6vdeB@O!;R8!~d%lS_zdJ z7LZwWtWI4$x{^4KtZrnOx0ZPRvqmeao@Wfmpk}xN3^!xyz_^&kvGKiQR9NwhWz?Zn ze4@eYe$MD5)o&A1yJfHZvZ$-oX-^ev(k7Ozr!g;F&*u%^FjeAOYI?aE#uD$Vg)vrOkn+8>c_R*o)@yJ z9yR%>%zH2`a3H zQG)bZ>iO?X#8%X#)5yE#-+WL@cKf+Are7Y}Ct+Y*PkN(rHH{DzaWIpwZ~6;lNl$ND zgS_eYv%DFU3!$*$b%$>y}%2i7A0uW!;;sKq(6W>ESTt&!@#g?u@)g>vRO zOEs=#gsG@nbe7NFWi(XD5?TG!q*@ds`E4o!aH)#5NcHqBJgmD-D`0=vqSbP!<2zWN zE?mT1tA8prC2=0*J1JGmV7E-wqF6hBoBnbZd&@y>n?wD1h!HCFFzI$2)>>x#cRwy7 zI+4iNSKAITm5w{i+;i_Ct&BbTu=W>~=X+{J-ygL4>P$O!cb>OrPwQqobDa0!Qd`=y zMaI=x)ZrhvRn;8s+IFrSZkIzX$mizcw#x1ts$33t9@RCEJC_R2={})$4`gBfydzr+ zJ)_+Lc3>{|F^$2X=hOC*@%zW-rDlEUdfeOj*o~wFaBR|V-Dj1-C z8$!3cr=YvI3e89OpYyv{tKW_?eeYYxT`>K*Wd+>V)TDbxPIsAxaR~`YQE3f>z`~S& zklV0#2fCj+)Qn8-d}?(;_jhV)huPJveD3UOMqPJS zH9FW`M=dMt)>V_j?#XIWJ@$QWbY`n!Qn0(K?GAQFJG@W&Y2MGmMg_Y=l_!jL``?*i zuP@?`bEvV`v{EYea6xvlO1SH)cEt#*Nl|8!-iLPX;_gklYC4!UaQTXsZQd^wT3Yy@ zO1Tr<3=b@s9zNjCqIqoExHZ&DD^gf_F$hTQ4Fy?8YRW5=x9jgfg(42z6JsSJid9oc~s%gdD+Y zYeTn7_4~qXtKQXjzg0)SU|a89V>aq}!ACu5;Qr@-7l){-9nF?%X(M+AyLuz{cmLH! zZ!n=v*u1RO$^61@-o$;;p%!%_9N#!MAAmG-huV3Xxhpu-td2anu(i9My3>FRE6|Z` zw#LofrS$Y$l#O6J>~$wI!5e{kDzvj{+6N=tgLPG;gLfyZGwpa@lu<^N>1t$Ac?)Fs z@jhp%zR~WIcAvKHj+$EFVm-0+Gkx+e8Ccnzh~$+g9o)Gc_NR{SuR5swL&%4PDLgy) zTlZe4KCpjuqPIn4x3eA5_=G*Jnx3m|1lf;j8SEb%s$+D^+Av{Yk~c$>+edhJXxhXi zrzER|VMb>))5T2^eRO{R6s{FtM@KB)Qp52 z1-;Mts_;67k9yUSPlH0gVB$gkx!nzV#W&I8(eKJ$}2^ZDPJmVN%yUAtj-CbW-n_|2~Uo5Z{~6XG?o8 zQngPoe#EsmwyMA$%)454XWqFXnq|a-XtTblwtPhrQ#%^j?6MtTj_r$no;UGzmQe+bTC zf86O_r>VnTSY>|d%6jwnuJi%bx=>(2$AWXIgL~Ys)cZvCz857jFPxBQ{-`<(pn8{Y ztklz{%QoRBt2L9@fVQ zV_T&a)1caq>FggobCyuI6O9RW*kx^`Lrwp=V76VqXiQw@Utz6P^QxAaZvZ%6>*KNoNd=AC-b^C z&pY&FRL#FMmZuLw&4w70RGy(mZ*^rT%ZZH-w0wN}o;r}$peke!P<4kH?bM+#@8@m9 zn98tT%%+yTV95XUC!_GGhfE05E}l^_yT58PoO-)$AWP8=1I-=|m45`C!0q8=^!g`S zF1o#iS2S^y#Up`HLSXkZv?-IS-zo7)$ zS-&#gXSG|*HnOu0ox|#z8T1oF^&QO0wd`Q?Apt-QN-Ml~>GCb0b_C?5@Mi zp$>KD3ZIcSX~)jQ^F?MM75bH#(Y`<2yzWrFhO;24!gME9f$(K%kUtyL|GmhvkmHWBV-?v3VQvc{U z_RMoNQ zp}K9R#+>k>K|X)RURG*#J%c@aoi_v9T;@I_JF>syx4}$O1y`9>RQ~nkg=d4=MOEEF zg?hY`>3+gaI{qo%L#`!85f!n~blZL#%|cfCBIn62<~*w|I!k(QRX}Yqa6^{wwqu9c&R^wNZj{NC(x*)Lz_{>=?JEBJKjrwrtYv@mgUOy)=rl8z zJ$awIsHOV<;4Wk@y=XRes?2+-Re@Ky^&gkbWWIuAQ(607HACz#u9{a3<==p6a<&tb z#{)H~5;b14rW?7J8q)nXk#b&f7Ey(6G08mLlHId&SLqjb-zIvQuNyi2Bcswk8fX|B z6W6m{g1Y;}ES>)5vUe$fv$y#Kzt0OAd-w|`*tO?T+Xx|p8hM>Tb=V!Vuv_i9MV;t% zgG0@gy!_QuhKbXUSQB6W#QRSA@kNac8QHR z?sKX^!`8Ls&TgvBNHiEi1eS8_~B+Nml#-N-rb1x+;aFEgL6jx?joePk2n=L93G zo%Grq@5-3AbJ&C-BRXziOtK2gO_#GJh`uXZO}&Ku{DWCeR|C4~X>G~fJR!b!^XQZ| z32ociK@Qiih6;R16{x+=_>Mo8$HaNhb*-IBv|Oh8?iS3m#n_1xvktwy?BL1_=|-Y!=)LzUlP^ihFXU4H6Z2AcA! z46ZJgT6&*ZgwOBV%S`3^MS8z%#I!Sl1xaMX4r=CoX7ly$YkSnP`}A2EH?o>~yuk>u z?`$yoS-bwwia1oAKX_%_LyC9$1Gb@GKhVCnuRYZGW=hvbT4hyx2a|=a+l_r065%)GrQRoh}vP?u?O!o206^;G4Z`q`lN64 zlzC6P3$~3ZY3;-I*=<~Pqz?p39%&O*tH;`ARq`40#TrkvUh3ErZLCUos(n;5pJ_|% z(C6N~`{ggKgdZPkq{KudB&VeHhe7*{a`wf&Mn8v&f1#DNkH64{IMG3JhhKW7g=jplf?kq4|##+nL~x?`k!`NLl4tcHy;}E+4ouw z+s{{@>s046=y&Z$etKnHHUCG;VtX>{Y-EILH1ZkQT*cL(Y_5jeM*{I_1)f z+Rbz6^)1^D(zk1BN)%6k%)vlUeQjMyq*Rt=_)Z1y^38m$|C_uFcBVUq2^~GvKRXxDwA>X#~hOXNE z%Iu;JD^@%3SEG3*^=c?H-79VNZ0bZOEx`WimGQ}?Ry5E9?PvA$db&z!!e?ZY8|zoq zn+EikGwL(QeA`67tuj_($Nf-qJ+J+_na-#3HN*81YFHC;C3IEREcTUf{fR?uYr#Zq zNGp1^(+wGB4>GJe>`bloQck;X8{O?t?~b_h+h>1pvt_)#J+tXaZS@fKTL;D(M>{5n z-skLucKXxwm+jph^?6Q}(phigllCbkdmJ&!@waaYwe79%4pq#Lud8s#uPz;Pmr(iM z`MT`>fBWVMP-VU@m_cb7+~rjPAJ#2*eYh~xmlfV!%Uw|=INXfXlM1ph|LDsn-pAdG zRC9wxaJS5S`73*7F8Oer1vF=!($D&MpL>>xZ+&d}k@fuiAKk0?sunlSeB9kZ^*g}= zH_&3W`FjQy+Bppt@VuH?-Slx+QPX_fp_L zXT0#)x41V5pL}iO2PZ`*wr!Wpw|H8|#Ir@yq<gIGlk@KCdjZ>+U zx!<^HT3fYmHrK75z$dcZzNVY+Ig#m4@MI>R|Gh2Gyykv>$}x>-5&AIiWi^y%3Re*6 zG3w)Fy7)_zwHa#J*VbT&6jZ12ZcLZ*>IPkX=I`~@lE zm^gtw3v(u)e%_lvES^kaKwLVD-M;Q~iA6#?KO>-iqo{@h<9np=sd`kyIJOkePvZ3+ zvxv=q5e!f>BH25AJBQRPoJ0DT%wh8QaW)g<+)Oe%hf*2H_@6ZI8Zm^!#byP^(tWtzNoHG}N;Az6#7L`8mmw^W;~ZmjYvt5z(d zf&`w=lu1?D#JZY8R;8^YBR{O?YoP}=GF{@~H|qI_OfJ51$%nWhi`i8CVgp;G?-pzP z+{y-a?e4AT9Zi?BQR}mmv!N>~u{ML8S%x=IHW zcFi49HnLxAeEXQ#-hEQoyz3Pk7n9sPIyuGLwWU8e`4M}EHN=|NP|{&nGPo=@r|PT zG0AD)>EsPzJ$okcT?cl=W7Mo)+&gO4P4dRv`>|PiB3loPPvI-@$^W(S)-kj8KfN7Y8Rrm;_sYnAf#Z0V%){MuPgef?M zKFvi&!84A-RpbfhhA4=lc#m8yMDn6Ix?%#pM$48Wg<4T3Pzuo)j}OS&TBJN8@D61n zd5pGg$h3AM?)D-@Pzs&fQ~sklY2Ja@btJY}iw*eJ`}hlyzwiogQK^&27wCd!oke=0 zHx}S3uHy+BbP*Yg2{_Z0ij7uLT#sY;4F$W2?C9p9TsS#{dC?;Mx{KuQA#x9edh!Nr z#tVeUP-C$KO?nY2Ea^>)=p%9s!(vHUUv7ZT{X{-vejJhRPdQ^FQgJc<262^)Fe`aZ}G)sYA*gjfv<@Kicg`=U>Rbk zQrqD_UF1g?Gej&@K_}drDKcUf_nAZIHkS?yC!x(FRsH6P48jm(P{b6D`66R59#8Qa z0SibeaxSE`AQ;7QW)T$(KP{mjSVp<7q?m9P+A1P~@~DF9=#4m}!0@c5M?=oFBGu3X zvDmSWz5u_W#|DwFFd8K{@}ud?h*;q!x!l1^(*Bc^gDr| zK015-LDP6Zd&Lj9^N`g2Ngn{`BPtX2J{DQ{gp?!CQ*sMU@%$M%^_(V)1AkFb5%P+J zyykW6#?ScbElnPSJ?}(p9L0|q@}72$WAOVxlfl;?>Hj~|JQ0uQ$Se;2Wx7NB9S%u_ zzvhtU=!*oTU@jUP4jBLsCg3=JM|R60ReX59EeD1DsNn06mS~IU3=a7cBe2xZA-OX; zq!`L#kiSDtp?H8p2I4GoWa38HjN@=-c8GxtsGG$hUtt`a*&MPSxA1LFheyukbjVYf zxg4?pyRa8oa+4bL$KMFfLm&vq=a71cM%MxkS%SDghs-PJkf30PltxW#E#i=i7*O0H zL-8_%NS1U+KJ-H(`jqnUVkw98D(#SaSXhRXmUT!0#FcZ%YOF`giVjJ}u}ThkjH;En zAy(iL9-wO#hxEh)yhgXG4jGB{)g6+x24SKPLTfoBTOIz7h8_;P;2-Lcg7|~S zg+orlQ>rC5Y(9r2Zw~?ZAXW!>f#U^b-Qvc5-|*q zQMQ{yn&BiqqIR@HS|bLVaSoNcQ~o1*IAjv0VI6kiFfPYXW+>LnA>%OxdlA%|)Wtfa z6S`s|Y`FV6q$2L(S{zy2-ytn9B7yf0AQ3o&8_<#*k{Q*KJ;W%*Avf_Cst=@GP#=5n zC!Qf_5El<7+i(Ei<0y`ONlu{35Qk(O=8#{JbvP{qV@Eh-Hjd#}VZ=xx z=HajdFEDeILynB5oS}_z$Xaa1ugEf%S`UR|IDw#XWHDM}8CF9d&+9mW+xQJnQFDSr zdSfzXVL!fu=X(xs@D4dA(i-qRULeCHYC1Y&3=$_hWCm8^7T#dc*A6+4U(jp{<&QDA zkC$jTjcc$AN04I%xqyqaFq`s!I-4v+u{l&4R74m`%%$C<;(UkrEO1CX=6^#jEF#4i ziDg)c@{6gI7>1R|zJ#6+Q?MR?A;(gOBsO|U_KC5|*t7{w*v6kkCUr=Km#fBeIYXkiRj^Gt`ZX~yG1^qTr={+3g z;VE9B#AdP)9;Bkg7E**eD7Dogk?4whc#1r!6w5Yp0vm7^Z?R%K=eUIeI~@g3QV_Sg=;L*y6^!gbgo z4KN44qvH4EAU0sp4-WYUiANmrHBxcu2<6}7C}o0;h(AV8hb+e#!G0umID;-H=-IFz zYfd_(`ziVY*r!R+PjuBtz$%2EaY#q>!i2MAHLl~sIY!9yv;y?Q20T3Pp|9qo#|6p) zO@4MrI}E^L9K}OqxyX(1ExKPK63{ObVa!C0D?}38exbEob4U_q;XZ0zr)lCG{zlFl zi3#%G%3v@*?hGR6wVg~l%0Q48Mj2D!DVNUvE63*cfqFz#I@HfILY+fNdE0mKKAfIFG@9^BNA~IQqS#J|P*Cu>f~r{6o|BaJUG^dpZ#$VFeE0 z2;O~Q#`2L)2NQAs6TR4HB8^Vyk2N@s7pNdk>42$Nf;0F7SsYHui$-XMMc4t4ztbtT z&<0Df3fB;#Ii&}NVFlK}sXHYH>Z1dCV-YstDxM*m;gp()#!MW*@8IumNe$B}w~^1~ zlwicVoE{m&`Zy&4S$v%`AJ=gY5AZjtxSbM)AsB&Wc$SfH{CN*@ zArFdUDt^Ed1O+&y36cXmPT9!Ge&owUN;5m<7G5HE7IFb)&<-6j4y$nlXHg(4S&F7e z!7?1dC+OLn@)NA=PHC9KDa&&@WgX7rG6HisrId$*f+M$6%3%n8!W;Yp$wRgy69!@^ zMxjPtr-Y&bnjjqQkSU*2vLiS0qh)@cMq!}?r{pQpY6b+|%@EU7da5Dt8bV^w$JdU8kwxS-P7WTo>nj*t2q_(E~_i&Ow z(kayuic)QzQm~y0O-RKq^yow` zBXehp2f6V(Hha2|qOMMvgwQBzZa1f##+qmlIC%x1WMYq(cnkj& zZj7E7hQ$NPp+Qa=i=#LJ-@#-h3Sj_t-~a}H$$Kyot^nlqNWo^1sE& zJ>17LY#c@kuoDL`d^oKE<1r1*M$oJfiRqa0l~dMZFZ>CwC+6TWUgI+^jHGuRMe5OM zG+|;j)_OQRLWMB|jyc%*wNpOAZ;Dgeqv%w6I@G{C%$&w`Sc*@0G@Xc}#SDr9-(uiQ zTGA|v4?eSLu9!E6o6n`wnn!}MT2cOe=R2k30y-QVTu3UvA%%;a60n$hf%!|E(ru|z z3NLfYLu_46>{mFY-bw;q#Q=l(s|k1wkw*TtydRTs2S2Q%p5P+Jt><}6#~i5jl>b6b z)}Z|c+C6$A7V-EJBQP2hFah|iWfUfD zq->^fG7IzY4VGdhwqhst;4qHiB!0rrxQd&&i${2lm-qnZCa1WN0hy2;xec9xIQKA4Bhy|w1_bV-oG@!Y9S_bNq>S+i+Yb>So_4OEoQ~MzgD5{5~7B!!d3;6vx6%s)&=|7PAih&4q-cS!P>~ESn zJoY~fzv%XX3WhVEoN@`J9hyvcYBC27Lz9eHX=<__z_1%r5^Ab}OqX-#UE)nr&XP4o(ygjLj}5zbZOugX@@WL{NGwxL}OO*Yol zBtvaY7T3{a54zUX4lh#N? zP%lkNU|kG7{y!;T(LyL6Q-%p6AgeRg-B*u(=Ux@6{w8%?=Y7avvc)6g|ZaQSpK% zz0l~YCNaoG~>2eZlTkCQZgWBpc2Ms#t(gRsL z>CzBIyX(>s)nj$(0G~L{ktbP~<|sAPqf4`)++esarAO%EKUSAe1bwYb9Xy|^OW-tJ zKF;CwxxBuJH{sS2{VE?tgc?E#*{phG-| z20sv44~MMBh%Ji##FKb)R+l2@bkVNxi$utFOP31x?GER6dHoOG^MJtq)a5lU{6$2u z{FN@>A@Qv)(@^Ih&e6(YNCE@*2_s)e0HX7tKNp z8ICUH44NB%p1GnSP4T|6A!Vx?(gL5W^9Rst7;>hTA&;>*)R29MtH(LMYHG+LgoksE zs5XX7M_eaECU-JCQlqOO9pM|zk4qqLA496+QC~wQ#u>5(?Grdh>>xuHV%P{n7NF@! zL;4`s7(<4RHDo@TOyG5No@U5Y#LqQkDMl_bWC>a>U0NC5i?w@CF~?xNOKgd;^~=hGfQiY{3rf#(sQ{ zFMgrC@doel8FR0aGgyKZS1JE>oP=F7q#;`1FTBA&_yqGh7h)YYAr-sP_69dV54?xm zqz+*fHXs!{uop?U3>g9s#$gJI-ljs|ru@rtQWckR9Tn~vQVZ5yLoy-@av%@x;x|0O zOKiPIWN;Yga25Bk?pH&$A@MhEjM4ZSbI{^<>J#$ar^R_V{E1b67_u3=F#G|r#56R0 zXh_0*pLQKD2}H@0yCZ&(&o7#IsY=~8>nb6s8=t^O}Ji> zBlrQMUXvq}In;VX_TwYWx4ekcnDsa1j1KRp<;e4oA%$@le`3{pB8_ezXqw3Xk!-~s zJjD7>hJ1_upQ*4Y&fg?1kLP%YZ4T2TeVnEYKo!lD*Z71Tx+(F7DZ!>GH!$C2N?VKH zRq-(;FRtPqmin4f&uz*b+{Yt4gC~P2V=)oeP~Xp#2U`h#;K?VGT3y9BTO76_u40W@Z(iGXU5-Ai!QT&Ws*|-LOWjEz-e1tQHDXXv% z+hC)eC#NYdP(PO`&2b6WaRRWMOcno_``c%z?8K}g{N;I0b)2R2boe6_0SmM=!onENg)cN2tx1|K4V)Uau54) z1SfG0F@;STiZPgqMOcl>!KSprdAtgy{Oc4UX7~+X7d0iQm?`t{8G3R4h&A$HI=13l ze1;Wb%3`dkREU_6oQKqaZ zZSWei%Mp9zC{OvJUIkN{AOe5jIsSoG(UfMmhG%$-E|s_;_9I7SiV=s=z6$U0a2QjS z*i|#701l#AbyFg74T&{O8H_*iWlbtkEowa~);8rA^smDoDG#NEpiCGw8sq9x^YIN_ z^|%?1!oNP@Vjpdw;8?!v#7 zDS>E$F7RLxj$lA*Q-+{iBq>IVHm00Gr?#d%z`%CgqrE9#;3}LQNMr}fKZ=v@aSbIp zk}4$PFm9sQ7rchMDA>uAewd2=Fglx32r2j)r|}TgyOb0tiGm<#(ZS%M-Eouuni^Rs1P`ad+6NXlv&6SZ%QWA#eUpI#{?pPhv=C|MMUcX zv>X&o;yK*HWAsWU7mzi@lxf(A;DJa;63EW4wVH6FXA$GVa6QGZvons+Z;sH8-MK0nSiaWzdDmi>dQNKp@LfY8~zj)!p1p|;~3YR{#ghcS z;1taikI?lrMe`Fa2Yc`V=g-je&N9YeKQ5!?Ic|R5lw^2PIpn!O3~>ozKXWq_xX1;# z4c8@8;&2u9FPky~8<6V?9Tcv?{R^E8RwCdkofvkb+%+PM-_hziz3UB%1=(-%{7uT= z{}$PgBWQV>W`+iLm{g#^U1l;kitP7j$M_LNex=64`i*WEchUNHatwEI^ga`fKZy7P zMok<-xrg+a$nqy1kw`py5Ama~ORBqF@)^T35Rf0Q(h<$p*B|?2;L{iJ&Yl znTmVJpVcLGun~6=p3Nl#a1%|kyW|dv5{|v3ng;7q&NB^6?t>JWFqb& zJdaDh!yV+!>yoZ`iyrx0au)Z|I=@R!qH+P3ti#Mem;403AeS`7a%3tOD3aIF;awcxQuJKhsT&$oEzaUObu~K{St%&tt2-@ zL@AfN#F5f2IfbY)W(g!Jry08HRgEtjVwH)N)BCOiPLbjUrsK6K~MF zl}l_CYfWz8F*-%M#B9U$ZK=4phGy+3|C$|KvKb%Hzay3L3zu}jkEqs(SmG(7I#c$j z*2N{Gu>}RXQv0zV9}y8nMTT^9Nf?rG4|}4COm`|OE}&5l7hiOw7(6`*7-ujc#wEuv zsuyh(EBcW7SjrDJoPAv~5MQERKbMThI~0kdCgT-)^e1(Ai0F7K8=jzef=h;AC!V8Z zBH_TZgTrNPAHe^SJ&Ce}mP|@96!#F4LNVYv@(*%J84Si|1P-P{!EXrpl89pu-k|sp zDmb2?(ooLv5cP(+WZy8#{{koe!(CDV8{r(`lCoHa`)K!-OQzu?N>f}*a2X9ol7%QT zin@Zgs4|)sfMKXOhKh{6c#8^S2@@s8(U%}-JjFGhfR1tEGlANRV`wzdC4ZyxB+3?H zlZhDee@&L+8)Tf~l2(YtW_*jY$TF4IgyHxT<))F%NX1(eo9>bXEX92UdS*~tF%)+& ze5OnI3q#Ui7PS`hX1gTE9GVpd%q4(%E{R8WMWBeDPm96Q1-xe=%@HNOp)O$-=3yCD zVLdiu4-Vo7c+PUTh-AR_sU1jWlIMqaQ*xQMd31o?+8w%74dZdZR5aF}4x`tidK6!v);J z^i(R;HgW+C5Q#YC`j)cC!0o)YgSvtSIF7nIDK^yFMHh|;bU;`1#6MvF)g?MCWCTA2 zBRPr!JHQa`w)HqK+v5&HI{v;Yh{M!6%`ahI&d z)E}wPScI%6$Za$|Nup0t8BbCEYfn>FxP+*msEF8phFX4>=5&t8;AadtPb3?zr0^d)p!a0e2YM-N`AC+2 zVhs4~O8XhNd;FB!R);0SotE$mW|CdElmP{yZ@kKLBg34O*6#L3qGO@fRZ7Wz( zu%gA*n#FdSC6g*!(yodng{oTe90#gdGP$}X?Q2+4xTYn4;b1LGzOHRahdTTiV5lW8 z@LiZCQ|ekwYCM({sc*?k9BN?6)P|OP(TLw0ZEVRa9ByLCw5FDHYGz5X=9aw1_xwQn z^cI$MZfQyJ2#X1aB|o&XWJYUCx|?F>kCVw zI$2V(vnB659FBFdWOi3ex<&Du?cFT-2gjo=nbX~p=pL4o?rF(;{1{`&++LP+@6GQC z_p#&yPQ+R=udgLN`dLyo&XSKf+20ZsZ%NMtOUfl$@(HH~STaA!l9*&m%BNWTn?g%Y z52XAT46>xxU`r}|Y4NX*Ecpowhg#Bmm?ag5TjCgD$r*g}l_h=1tx6*;agMU&EEbKn zBzBA?mB(75jkDw&7LT{2?*vP#OteIwWXX9fnQTeFuPv!M#bP(ak_%Wm&62q3lz+7u zmY6dw`5DV*S<-*DCDrHfyN7cvxrpWSEQwc^)R=FHwZM`~Sh3KOgl{aVxyTZq#g<&g z$|aU0F14iAGJeK!xg}SyYK0{OR$5Yfl_l=gmi&U%Yb;4x%kK-X_ zEeY6T{eOhr1$@-#-ah;*(-s;}$_OsSy)C7*xVyVMi$k%+DX>6siUuf9+}(l~clX5? zcX$0?*=6_HbDrn@yytVizhN?&naF)#ot;T?<2o(h7Kq;419=pEAk3YCxIrs+1)@)4 zAj<6KaE^Ndag$cY>({~Jl_kkGkfjRJz zIq-=&K-)eu2fi=|zA^{CF$ZY-cjmwk<^YGb3>HMZpdBs|qx?kF^%s$mL!ZB-ok>KD zPAZ~aAV(7wMZBV2l87;~i290%%&Lgjl&Hms7^{nDV2H?Kig-i2gGByUtcZqg5m`MV z-qIegi19uVjgpJVmO{ik+M80ugj6CLrxuYtjfnTOFRh5UbRwFh7m*`_h!3gf`L6ozL_(TVDh?tyHMDtuCa_1KDnGWRin%_pK|xQM*@MSP_r5hA7)5YZ}9L`al~Z*;Vv2&<5Y)`dAhd=U}f=~z(_ z(~F5{Q(Qz?2@x?rSdNzzF{6}-UrLL}S4QOdlOj&g%yJ^ymKS-Vxd@@6h?5jwN#x1n zBJx)e`IWthQ#7lZi1yVvrf>}rel zxKA5?6ES$0h$_QHq#PmQ0d0&Gd4jWus-r}t8ZF`>Z5ktD=va~8|BVxodc257w0VMv z-{M46pC}^DBoU9vo-AV66cIJ1iby+6#1q_R8lgHEys(ZN&fL8sY+&aelaWe=i5=h%bJvj<&Z54y-6M29c2 z2VG_l`knhQ?-h0-I&zg==o-7wb#|c}>_T+(CcDrrcA-Dmg>JJ8(Xl)1LU-AP?y(Eq z7x9CRKVT1f$R6~FJ?Jre&=d9`n)#GH=ox#^bM~MY>_HU&l0E1Zd(dn4pqMx8LNx0w zyU;s!q4(@UAJ~Ox_D6Q1PwYaU*@eEa3(=gf>_Xqzg}$>3{a_cO1di6*Nstibl90qt z!a17jFQIdQgn~&VBuy&eJk1M~&_$F`NRq%yN8tj+%vU6IRV5VGB#63%i?qOy5N%2* z62#$&lS#Nl3*8dGzmrhZD?#>2xJ-+ZOX!|LLa~$_xHy%B-)V7b2|dzCD4te=nohzM zT9RHu&kPbu1at7=j1sQW(o7P1WtL)4G7HBV&MM&=Ez2h1*X$BX<={xiIVD`D<+&vE z&Ml#I9*%jRSHcZi5h9^asDv_M5`s9Q@l9G8E}?IJ31uTBBr71{7Ojeu&@W0txq=c; z!Ikg_tu8E~e-R1gi%L8VH%7wkViMLAmoT7&gbF1kcuPsRLu*S*7+6L^#j+ftxtxT% zw645_K@}uaswg3OB?;)&uCjG39+3e)b1i7LstpUX?wJU zk=?l9b-GIk?jhj??dU0CR4)m2f0cMhy@Z#vvya5X<|WkY$HD0POL#@Q21pn)P(uAd z62HNc@R||_OBg#uLW7|aviv6D4ecH#Vcc*D4M#}G8Y|%~?HMUy{3r>HMoY*xhWr2B z7zumFN|-QC;xStivQLokp7zB_h?^*($s`FmCQCd=RKor#5++WS&~%!_Vech;qyy6> zOqwB~*-Qz!;w5~dgR>+|o-LvI90|D-Bz&erb0tifC!xiB33(Ps_(F#la>=JIlF)Lo zguF{6e5E5xB}`i;@v;jNLRLulMn_jluvSTEy;?%(8i@xgOE|Vx!t`|#4>*>1yqJU^ zbbOC*}trFU9lMudLg0MrvNs8Yo@e}nf3HcKxxOPi8MYHxu zXunrN#6Agr`z8J^B=PJ>2^|hfC~!!E|6vJdXwDG{9gj+gJSHLFxP-HmaDq8-k~wgS zIdGaeKy%M92hK7F&M^nhGY4qi1?Ip-=D;QH|G>)(0-FCjbKnYd;3{+A8gqaaTxSm4 zU=G}54%}i6(852M1Gkw2cbEfrnFF-w9&_M6bKn7U;30E>7C&MRJZ26&VGcZH4$zWk z%z@|3ffvkym&}2e-2Y2oF$i8uDEWpt@Rm71%ib{u-ZKY2Fb6&|2Wa^x=D=s>z!&Dg zSLOh%_{JRg&K&r`9N_rqH)*9HqpwRwSw9)c{AJvtRRJ>kC6Q4ssSJ0Z3|^BDt3?_8 zr5G9IWf>kt#%)@o${3)@sG!U68Zz$CT2scrAeqPd$nd#k+@*CM8H2nsD*0q2PcGvg ztxq8%CZ&wZsbr)`E#p3INF!r#S{YT+$w--A#sk`zLB^0^8C5fKZ26c>G9J>V%rb^% zkx?zHjMUj=Jfh9nW&D;yM)jOBk6e-QnC#p#hUJk_Bd?6KAu^uOmQWeP!(`OVCnH_B zjHk3Uzl;$PGHMl&kv>w!Gujp=R~dPtx&OaJ%Q)Ok#?;3wK}JNJ48MsoPSfm3GCE9_ zQDBM;|EV(0(41*9I$AO!r^^VKA>%A1%#_h7UPja`8A)c#I7f5m$mpCP^J`ogN$1Hp zPxIz;|94p+qtHSbfs15Zp!thsbX_9zCwUp-G8q?X!E%|W&&VjUQiilj#wA*~T1K}u zGK#L1A+M8hnHH^=(S3uAVjE>Bn`Hb>i#N;YVaq7KMTWXn#uZw!O-9e{GD_^={?~TO zxJpZR$>^0RqvUQG`W_kAXxUyFzwVP!YQGHQfQ;+3{Gg29hh&sKEW~elQ21Af2G#DQ$Hr7~!X&mcN4Z0Scbcwj>H- zlPWyRRzXY#QNeTCE-4r(E2yI=2v!xmpdFfmQM!VrGu6bN+{oTT`A3fk3IkiUTf zS3?D-XjUTy?HenIXrjQcse;oqyP1Lx%@q`Ap}@bTf-^Lym4c3~6-2gC5b%qFvy{+Q zL8o>KqS`AwA5_6Pn%hx9=S~U=c2SZw1kP6cp*JKsvl60=AeSdWFJy6 z?686wM--lDrr-%}Ii_IvaRoI`Fb7UD2Waal=D=y@z!~PiS>^z3JI4i#J@QOL`nmIsw-!KQ> zG6&u<2i`LWXx|6sz(?l5C+5Is<^b*g!W{U@9Qei@_|6=l13#DpP|-|Kk;|px6CLzZ zG1*^5^8gjOlc@NdBu2%dq$;Kas%Rmq$RnxvLWgA)Qxz30RTX(P6<_Iyu40;@qLry4 zBuK?KI+{#{oNGJ!+^ZUQ>lyOO3&mS}K;*R?)MLiV}5I zX!TTFrKR;%^lG4@WJ48tBNf+ZSz{HyHc?TksmjA>Ra~d#%~kYnp`vt46=o|HH)us` z6@A*MDD#VoptdS*(#m!!`nFe5wu8zu;Z@wCRh?o~^y{pmTo)DYt}6bZ)zK>YcT-Wm zy9!Sal}A6QSkqI*fLJg4moRg7GuqRwI!!An%UpdCw9 zj9R9m?s63wSExMWS;fwkD$fyCQE#=1OlwrUqFrlMj9I6m{(2ReH>h|`i5pdn-K3(y zW))d%6>n(w7ViIXTU9jNrXuTh6>n+J4i)2fs%W%JMYcp0?`ZFC6%+QTXuMZN_I)be z)4u&G;tr^2a!^H%Ln=Pd{=+IJ9#PTssEVA&RD7fZ$5l)^!5lcr95}@spo6EG180~6 zXJZ%y=NJTZ=sa`a0(0OZbKnwlfDT_~4*bp>xWXK`${e60*O&v>nFBYN12>ribo3T; z;1A}&ZRWro<^UbL%N)4J9JtRMc)%Q>;}4kwkC+3GnFCLl12In-1T^y*bKp61;01Hw zC3Aq{Uoi(>GY8%<2i`IVXx2OCz<^aw9#2om{9QeW<_{tohIp3HA-qs`GjH`#ueulDWRcSNev;T_y(mlyry$yG;A!Z zVQM)pPS}0PPeb|o8nQRwCT*zU2_0|51#GNgd=u`1rWy}2(-7L6Yt%x+8#>=o!=_dm zrnTl4XrrP2FWkp%HKc5(;R{`BuVH5g4Rbnje|OT*yfe3O7Y)H(dEYNu!(BSijr*j# zhS(k&+V#}nnVrX>E>pDKs6+_2%Q^%|z9Rri;XzJEc z%%dZ{SBKz>(Q(_SV_$L|3sdMAo>IpzsdSV}ts`3+9b#G?kLg%C9V^r87?(jumtY;$ zGU^D)q{Gat<29YjqGMxLomVy2`2&WIdO37N=G1x8nU2qNHMfo(d34Oqt7A}zj%J}c ziihdQ5R*@bD_qAN+Mi#?q6i%$3g~DXsiS<9j_d_>NQHDfq2q;htSX{od{G@;i|MFd zTt{dL9YG~^yrJ`@bZjcEV_F#4IOvsKusNsYw3ust)pEX9Tn>8$Wc${6_9j1r4tQwtZt}dLL(i~jdj#$ zq9d%Sj%3Yryrm1xb!={-!)mFcPb(b_TI(p-Mn|e&bbO`jZFTHwrz4@gj=>%D7_{i9 zqhu!?89VFn@1o-#9qg)ONwm&iD0H;%uJgJ;I&${Zq4d)6j86WlV@+=zaeZ`j>#L(? zKOOn{>%8=)j(2o%pbmSGj_ENv`VQ97aEQ(eR_jRpn~raEW0;P_;X3Ay;0!}zb+jC* zqtqxJnMUgf7^CAp9U7}+={Oyu#_Q-XK}V%H9l0jzJT*thb2>Fy$J!}6e~{48eVUG1 zmd=Y+>hR3ac{Lp!muBkN60c*%EFJx3>u5AbN8tn=Y3AzqPB-W2*c~%p$GinPhA!06 zYLSl8i*;mPq9e&t9S`X6G9Am7>lnR4=LI8mR9>Yc_i7#58XYg_^jaP3*6EnEUPq4& zI%;p!k$;m8?`9nz=(4S2>lU3qK*#buN0p;G@*LBlAJ_4c&YaM({-n;6)phhd zt)tEv9T8`B_|CC~lj}SiIPJf{27ZwZ{1O}ZWj65Nx&O0YVGF;?7EZ^nv4vk}3%|h@ zev>Wy7F+lqY~i=r!s+}Sw(z@b;rH0W@3VzJU<-f97XFAWoUT1)3xC2E{*-I>j4k}R z&L11tz+bX~zhVQY1FzY@->`wdWdnc5{a@idTlfdI@Q-Zabm9|R_-D58FKppo*}}iE zg@0!Y|G^ec7hqtsV8C)2=;LRgfxm%*0R~bfG4PeHCpEAu&_IG{V6bF>BlDu9Vj!bx z@C0N7_voN*V2NR1WQ=K`eUQN)7YyWd8&Et3p3zCKfi*q@amfvIOJSg9N(1>)8E~gI z@QyB~F<_@PFg=}tzUd7#%wV8Uuz}PW4Sb^;nG7UmHZV7ffgxE9w9ICpRCWWIau^86 zY2ZE`%4HyCX>J3f@)+ol*FdEZ1Gz#Cs9^@4)2Vz0)`lCHnBPG62!lT+7zmFv;E6Ku zo-P$Mu%(cJ8HEk>D`KEgQ3HjG8Awyyz<0V?!ocp52IiGAFtoIRR%Hy7E^8ojIRi<` z8+cIOh{53s29{McFuIa~j+G5mu3{i}RRdZz125=wbpz{a7`$GafgZIC)UItHe;otf zx&}Vb<$4CT);BP-fr0)F4gPjuph#l_X`2}MLARP3JS5-1{N@IJYhj>uO9N$E8OYMw zK+-lb1|GICaO4*Q%i9_l)6PJr_6DkSFp#IC0lkxfmvpAHf%RPsOzvu+XSBhqni+`b zZot>Wz(@MMr-5y~48;FxU_fsJP5Kxp+Sfq3eg>~%Z{QEwJHX%xi3WxZGWc78fwF@Q zWQ`eOAaJOGM|AWz11p9Z7(3iR=Me^~#u~^w(tt6_z$-dC+Q5b}2BwTP&}*E5y5kKL zm|!4zoPketWuk%YlMKw7Y+&FN15KwIC^pRi$J^lr?G4D2ftB+NjGJ%p%C`opEi`zQTLb1|1Fz}a5`!0~H!yXXfnS#!JU!1q zh*WCuH?=cX%*Fexd18?a3egm5h7?^g@;BNs2>K`@` zb;Ll*qXxdvwPOZ$9yc)O1lRDSf##2L+vj*P1#^H7#=K+@ykZc%W)8ez4!mU!ykic$ zXAaQG56pp&%z;nLfzQl=FU*0j%zZ+jC)2NSR8 zY)2CtI+>W#*+j1{ChB%IQ6Snx@@^(R(UtBdw)ZeGtEY*9y-YOy)kLx0CersYA@ntI zoA&iH`PDu5|L_4Oei>+@+#nO#xHZJVCLYtVAtqK1H8Jit6J3Uxs5ab0$Osc=tcllj zZlsBgqfAU4ZSor6CNETI^2`?#DaM=lOjjqE*b!%9_CyndCYfk9*+lUvCNfMl;hJXR z4(+$N{})X+F=B>^wlhtXk2jHhmI-OLi6?Y?j>+%pO^lywqU$^p)#sZCU0@<;p@}zi zevyeyi%m>hVxsp_6ZMywJa5=U$`vNQ(6yB&FHC1*&T6jd8WYXen!J{riQx4n{5F`l zyMb$bV55n}n@q%RHqp*DQDKXT99vDu+e|#A6WdL!-eF?GP7~3)Ow>r^8q#-KvYT6G z57%g~i8a)4AKS`)wg);)C#dHE6N704EugXo+2Co^AvW-s!zQnA&4zHq#5)>#l>7M@ z_dk_5&X!NZPOw){-jiHox=zujOpK&BdPm;V>>ad?_R(>=Kt0Z|A<}RfPr1&r*U)jg zKrtQ8aV8o-!)ZKaKW}0ejlN)_!9{L1%6^GGg1*zl%O)<;l;7Eft}p{=?Ir7D~8r<{+n9AVLN)u;G$aZOgy9awBWso znjg6TKXPk*jN#gUGLi8!TQrUNVxr<#KAG-O&Tl44(oX98ojrp-QR^QJ8G28jh<}LCZAAH~oxnnW{bHnmWK(3Uz;G!39qY7i<=Rf=iI@{Hcn zC;CQ$#-*kh8cw5W0?nY@dJytaB$c4DRFSGuZE8t5jUbeyid3EIP(unZgCJ5Z+Dbix zf;j#|P!N2{f{>arQg+HqhiITX2t(-*ou=^~t{ufwd2bM^QEh5KZOG#bLMqBYnJEw5 zrziA+-q2TCpF9X#XlL@6AnfHoj?&;1K^Q?}XadDkrIbOaLG`FHHK$am_y%;2uFwri zojM2`C_|bcUW$irLi5rFVF^8;A?bpUHGL32s&flw2*L&G861RkF&ViO)HqWRK2WvH zTv{5Lg_}8R5ROyFY(a2k55jyZm?H>hsa;NPwOm2yMyYahE6`n55le8%Af2u<>D1jEzQYu?82$c(R|5xWf>QQ5AP95kWy`|3-TZl_c zsSC4xP&UdXQ1TAaI_a+V0f$`aiFzLMM* z^onYi3c?AhUpff;C`TDC0PQ8IY!EWhQ7Ti8)2LK=wi$XwohooMldED7Qcwn(PiN=> z)vd%`Nj>Qv`B&yj#js4K)wGYot8j^FT-6|~qZQRSy*jr{%^)PJ6NHp?nE~{Yj@IL* zug~W;2*UJ+44Fnj_(;J`_&61B7KAL#gRrIrcTdY8{L-2YyA9jLFMO;mSGFDZztoRq-N>@SjoQ?Z;wkM~HwM!7^=|B@A2jr}8yBd_M?Rl6(x=)UG_2#n zo`xR0ptls&$b)_pJUBr;Ef40?GI|`tGHrtg&q&r% z%k4wEJU;ZKak*09J!Q(B0@Y|6i8b(1+Pd`HU$P+$!96$Vxp(=+)$n; zIx+)KXe%tDUo#$+Ka3|a@c3ba2fV60PSpz@OO}R*^yT9bTZMSMSz8`o*qH}C@}RgH zJh;vI@%)z%{_GpdpAc*D*VqR9t)UUWJYUF_ewvoY9A(At!TC^gS~#!h8Nrh-BamfR zBvRyzioyK(QMj)aL}ZzQFlrY>?rDWke_&yLa4CXykBeZ$_X^O`R^r(h)v$eSEtD%- z2mR01MZc1*c(_Mbq}vtE?=yN~UeaIj_WZA?@QLFa3|f5|6**|x=^Da)yXkDDO9pHI9wo}omZ%ghY84-xJhydmg?oWtXrEAP zZ#c)Yo!i7$+&;U~-OJxHFJ(?;H(%#&;_(j+2@AJ&9CXLIc)RW#M*%-|$Q@|+ION{q z=NB3tZgo55PHvYx=APv84-1ckwXP3GzJ7SZoz?BiA7N{^-LlISQNT`q*F9NqMTFbS z@3}X+T=^m_A*rvD9rDqgU9hUh`imUT-t7)|MTXnY(s-^1`Gtjt*+)V=YdCCqZjS0( zsh~Tx)wzJDy8TClC$G!0?r=2T3Ez}K_SOyFVX`Z-fEB8#nXUGNJ?|{zihH{Ke785L zl%!3cp1r!avELl^-tf1o-*9`Z>ves>R`E|tlofZwUC&CN$#dDN{?VJyO6cq{tm5;6 zQ(E7r2B)$2p7O2`lGcju)SiQ-+MUjL&-sb@BTE7b6l`6i)n?;!RNm1+%7rmSO{X!%E+;my3xl)p}*2}BjPOgZ2cB5-vjw!z2 zhWCzOe{%VXxa{C*!Epgma|yvs1-pmOXNaz-5bKrCm&%@<-q&8R!Zejz z%6XG!AKk&+S0BCM*6Hk?06Xu3;M@VW9_+j4vf5?xWw!b(4bCK%ZquqoClm;aw6;ch zmRR32`3n5CICDR{E$ihq?lxx;?aV)v`jS0ZRBH*=B}q+Z8Bw0)cJqRsdM-P$uxE?l z$`@w;TGZn&*aM4sy2wUY{xFp8+l3?EwyMx2x>ry8aYaw7K)X&YPiDm)+05gW?fjX2 z5lO9D4LljF>Tzs_t2%nt1=_89dfJ&*i7uY3RvKBoXB{8zd0~~R%>^#xw1+>N!k^2< zW)sTYmd84M+?&~o&g02#MPGL(wY?)f8~v<~xqKb1#0{R{l&HW#e!E9^?bM=YoAj00 zJX&-|?0N44F#eYXTlp1>vK z_NZ(bU)=SrxI2841rt5~8SJC$J#AgCurNDhlc$QG{Wg!Ulb=0si>Iw%H4pPuuMcC$YVX+Q84Mt@$!oiRFATR`EN|dd+qP+H>>y&Ssld(HCe{ zT&S3qxZl&t>fYE_(eA0MlFJ@ys&T3nm{P4|HBYDBwQBBHQdmV5HIEgSUVRx5(#J`M z42n0S)g)N;+50l6Sq1ibjy~Us-SO6HcTwBZ#HYBd_$(aqIoYMmDXf=y-9gscHohcw z&1SyV0a9oP@`pwutU##MalfaCH95+i!amj7H!Q$EG=CJVMPGd()^8nrQ|*=eJpn>c z{?IU#tX!sQ>1G_WxR|p&kjp{XQa25?=y3_3c)%v zkK=dWTHp+N{)*#R|Igj7H`QQ!%OTIuz<(yDuwJCs+(sd1lqTJ>9pryKvJ$sAF@L)dOYs`Sr)6d8r0uP;dNKFCMI{gtw*0U*~*pEo!**s)|1hi zmE0{_<%s8*-TSSnA?`O~WJq`j@`Z)uv!;i-?^%Px+?(vkeC|_%H7LLP zlI5E1i?9ZC@qM%EM7W<=vz7+uuqLLFeb(us0bY*cbY^L=$GWvNIEhmNtouuYvsr6< zCGlA=8^~g;x-6J7QYKqnmbqyPt9Su-S!>f1Pp3a$#g6Oh^Ar9WiacZyH}%p2?q94` zxzrR^!Ka=+0ihvmES5ga&48Qi_FAXLd6QZ-7rUDziHgdHu>AI>r=DR!0ijV52(wB| z@ujw^uU15Bu8f!B!}1g;5EWG*ioXbOqYXR9|<&dR)g{$$FgNO|jWx z6x#FlX0Ge6MItmZ3K4n2BKW@omN45_z-~XCfofT4yt^$e(p}!_Gv1rRicahO)!Gy3 zcH12y`B%=qpVr$zuvSL7M_cKOxPz_eg6_6fNTesFT|B)vlk6ASC(>$_)4R&jFL5OG zz(VfhR;%xx6!yzP?h=01-1=_Qnw{I5&B~d}d)6vj(Vflm=JrPWLZkABMC1!YR7gm^ zaO8`MU}p;piL_qj^cJ)Z?x;;Sgu>Ac>w_KrN>F@hCd%-u3s82`HG2?@;; z8j(9RJWu|RJo&@zJ|W(0{(m-OE50cIwvSHm?Gx;|;oje~+g0ZI(xz1LWvKJl7d_u5(toLTHqEBbeWUo1r`CBsEh)mw9 zw6!R|hkwPKy+5*tyS?3GK=Q(}wWNo4s#Uy@<=v$|b7_3F%F>(?gdr>bAQ0rrZ%-t?}& zV(@7dcY52d?5^!+>($+T1p8QjujXgR)^MkC`R5DE2dl(ezYO-VTJF>?JEE?;g!I>X z&zaBlnA6;SF!0Znvt!%4Kl#N*#wDi|l#)_WYDz0&^ z`@LpY8s{x5*q?j5r|Z_xN#0D(+j_0)L*26dG}ayD=d5LZyWkl2=0JPmcyC7~X=F&B zF#g|~xX7K^S{uQ?hm{5e&-Ax4&Ebc&=n?K@*4$a#wh{4Oe}8B7^4dwJxR3hV=cc>Q z2-cY}e~(=)!Mj_sCRK9#tc0Zgl9ltlpK70->2`_MsYZU1b@NVuXcu1Y-52=R_Q|`! zJKE`0{A<(*Gm^j1(2wYs%9zuMc{QJkNSzfJbjEu)N@&w12sJuIZowu;nH z3tCmHs~MbWDXoVE)!FvxNOgf=MORXjSyd~kL!3uKt(1{!L%U=FHHMGWQ*&5(>#K$p zRZksdH7lyN`)68dE3%YY+Ui^8uR= zj1;V6HPzI1vYKjbK4-jNz@Lj|bJ3Rl`5HqlqmmkGa}B5SK9|krvh{b_&C9C?UDn!i zY61IxS+(Dv^XmVzzBbo4L9hpuQu!&B^Lnk_CDp?A$r9>XVOnvupuM`7dQz}*6y@@z zDXONlo)uL!>q-%IxYfCwTIxR^7;Y7d2+*t_5dkTzCkH*p>>l;iBL%H530l^GQteu_ z?_zbFtcF>AT|quuKWDo0iZ$D}P5KIw7H zte@1%TEZx4U)g6)Nopl~tCq2nHq)~uE#JON>&k7~T7!f2>~?`JX01B0tx6bns}knI zTz39K#+v~9Mlz#bR{N-CqzJGJB{e1_wI}b<=a;ebHq%?Tw5tZ|TMOHXKeP$KcJN$n zWdkdtD=3*&Y=@r24*jf+53nzc(K5U3WZAX7E$#Ym)mFLwoWu5J(7q+LzdTU~1^hMP z^eeTL%kHpKy_w;!2@7wk^%SenWHr<(kzLDXC2ZmD+csIPkjd8g&w$v|Y7ix}Ppj?< zfp%N3d$IekXEw{}?&@zP&F}6V`}R&|%0gKw8)c^)l#_B%ZpuS>DTG2P%zk?(-{t;^ zB`*yZ0@qm8{lf!ek2eda{1jmyZ&qOajR~3RUJ_U?3yGQP{w|CkX%8wI*?eh0Kk$br zEA+SA$#%^dA!vfNJ5^RG@%GK%1taJ7!5v(w+gWStWC=`sEnN|wHvIF&Cls79P+%D( zBo>?zBjjmo?arFToiO)kjNrDauF4ab@KhZvq)vGGB}VWj+?Y04C}_RBanav8-6Ly~ z#I(X-A$qj2U>(Pt=jAg0$eX!%`lSSWcPllo?K$>6Cb<%yPY)?Wu8;!J7s}W7CL2-Qx-dAiBpz3Wtmf!J7tAaRyt*sQ&u}=jZ@Y-Wt~&jJ7t4Y zHacaKQ#L!rcFGo~Y<0>ur)+o14yWvN$}SnRW}=#;x5gj9a^h_R>CK zCx?IyFZa(*X?4|Q6#3eHR6_dFi9*xF;u8-EONE5pmG%q%6P{PtFR&bN%0Z_ba>`++ z9C6A~ryO(2ai^Sc%1Ni3a>{9^oN>xor<`-jd8b@(%0(gZd4)?tgfgLM+baUgRi|8Y z%5|sQaLP>~v1r>{LiC#n8xIc^SblTLFd=c{;o-t~ZNln?e+VqMopQ%1cb#(2DfgZ7 zz$p)%^2jNVo$|yfPo472DbJnq!YMDE^2#Z%o$|&hZ=LeaDes-~!6_e|^2sTmo$|#g zU!C&JDc^;})eV0LR~BuZ?t0ih_Qw54ilTx`Zrm?)>!0o3x2*K)3C7-yy>YNG6``W` zjf2GsMkSGtrLa?qIHjnNSb9$}!CfpNE~KK6CGlmJvO;CQgzDkh z1b@r;-d{?%vAr_8d9+!a6J8FQ7nsl~a}i;5!s-6yg!u_`XG95c6HW&d7g$O-rKD3z zIi<8y$~dL0Q_4A|yi+PTrJ_?RIi<3YcsihpFf@L``5UPOmefv3Ap~5e&gy{Zx1^W@jNVA@!>;AuciGY>2?E=sds@;*?OQ zggGUjkQm)RTsU85!sjC?1eTOS;^!l&ge&d|OPPx-rc;8PlFTV?r+A#=b&Ag^$(fJq zQwTME6W&MYLgM=fLs;K`LiJgykXU_|CM=#AJFV6i`byvEyFIPekM%1PUY@8cBv07A z+$GeUQ_UqLPmGQgggC*TbMVJqevOydSW4(p$zRA6KUfj`#|-utCXiEHPVsZfpVI=I zelLi9rrzPsSr>QrBEf`?H(StXL#J+;c@$h$L${;cVKwj!QpX- zhQ}Qq9(QDT+|l82$2P?sUwA(@bupW^&{o<;+i8cLy4cR1iLp82C({&~O4G=q=`@38 zQasI~*))d|XfDm8`Luu*(jr<+OK7Q`BYs(W&p#XS!?+Bu@;t6E#A?2M$?0kLyCsQD zzit^Vrxmo4R?%u&Lu+Xrt)~sNkv7@s*KPhfF1B&&@ic+rXd+Fr8@HZ(G9q^2x=z%Y zx=>e&rf$@odQea5MZZ#S>O+00AN8jJG>`__3)jUAtD0aW(}lG5+P*zg^3%`SmWma9 zJ7!X><{C^xXej+g!)Q2-pjaA7qi8gZp|Ld1)?DMOwv0``vkujzdQ_hpP(x}&jj0JW zrDk^eoz1tz{<9Se?rzm)X4dTothJY`gjgX3J7$XwDbs>lQY&grZRi(jOYNvVb)b%R zNSRJOJH^h*SlgbJvCgm=vC5+gRFNuCWvW6|sTx(M8dTF(9@UB~7~Atg2`WjYs5F(K zvQ&=B+dVH-n4WCH;#7?VmL^VV>Xc?qY3`I3PHE|sR!(W{lr~QJ#VKu_(#|REozlT6 z9i7t2DV?3t#VK8#677_3PU-HH9!}}$lwMBx)hWH5(#I)%ozl-K{e{HEsRjrmSNyp} z4;Z-+P|It6pE$&{ipPz~WrY+io>i!8QvkES+tBiO1oLjE( zf>fPD-!0`}j%B>@oRD^V?c1)GuK$>?={?tYmr!NR*c#f8~O!Xo}{%|ACLU%}=hb z8UC+_4|29Xoc)k<8$XXfz6gU8Chibig%YkU7F>nJf1Z@kEtB9X_doaJhkSLFi}~l_ zf4yZEzU4^XcNP@_kd^o2ct0C&oz0(}x6^q)2XE){HYaZ*IcqNGao#`0=N;zray$1q zf1aPWd4J9q!rSVcKePyn@~W&r*v|*@{k%QR7jR|>|9L+@Z=Dy4aBexhz|Y&r_;Fuc zrT%M`{?ESdt1j>|K^I!zMC(chHuc^4>;ni zJMSOm?P=Z~bKa1*$9a1ze%&`$I`JXzrsM1{*L`XUvLqeTW68_{Cs%ue?DvE&&hGKyYa1s=!6zJ zpFQ)3%lKzy=Kh@Jzm|IG|2=u_zbB_lv4wY?#rS*6{PTYQwXVB=KJD;-F5c;XzuNz7 z-^>4=oGhWROK>$7Z~c6$mkINDzn=Jz_nqGRGC}YY*bi?d%v&nB^8T;+{^@cF>o{LA z^CO>kkU z&Xcpo$6a(qis^qonC;I8%l)tW|MTQOk_ayAUu!rdso<(6g#7iQ|60QmfzF#mCS;JD zHT!3c*u65Tjcx&$NI<;oUc{D&*he93qHkIs>BhO@-}Gd+?|bvjM)Kd0wR7|TZ$p?<kZCCk!o>=|o6My!mzhAHU z->;Wos!r<|{PU$o{@44q`)9r(oUfV?mvDx+K4JQQ%{TJre0-eCpI4ZhP(yQGcj?d9 zUHf12&;9##|7!SuFV@okd-DHB@A~^$|GfGCBko6 z@Tztxy0(8lOG&0!Y?Z`Y7w; z)~7ZuL>w+*da)NYL3Iq}SDx`|hzhBP@%N6)C|;4PoeT@8D;`Ce6pyK=LA$;YXSxI+ zshVW^INGJLmQpJhQG02o%c!F$U*wOd7ydhDgb<^%%qITMsfUSeAiiLTrEa$U=ZJ~0 zm?9u)Q8LIy>$2JiLF?5D(^Z*Hnsv0j^lWl|jcMv?c!NPfa^F;qw+N?3DgsPlIc_G1)DCdR>~H- zUi8d3e0xbg>5*l*IY3=saZkafcfzsAvP%Z7$SxbQD=gde*)VP%{!bQW_bh^NBZOEb zg{mxE99&cPT@1&q)Vc8n3vIH2E%hYo*H>{bbHo5qs^iozb(ycHHZFm~1`g;m-c&L+ z2=0SB5pyw+k$SlL=^ET(QyG4xT#^7gWd!us2ap2&XQ>yle7H%~Fi{6EVL$yoi&j&Z zc4IT+T5q?k%32T_==+%;Vth=q;S!xX%pZ!2QM+hb)_$Z?807u^qyzt*cc-ly5 zkOYtL8TGWsSyxd=3u;`Z6e$z+rFlB-C?GNj;?tuxEHT8FL+vsyPumb5{!HG#x=#LxWnH>VsS}^J1hIN# zm)~0Rr_~D&U}}s4M|DAbH<1O6WEqhYLOm@>!s^klFIel_BTOF!q%F(bfJ^SJfz^f#ccwy42w#y6=!;Mjcyf;~aGyQMfMqfF{$om|l8H zZ0@j+Wc}U-9jVtbKP2u^$=^FWIBm19>W_c;K@sAQx03tJ+YBNJ@r7=pv$4GdC8_Dc?E;6=t4*G zN|WjKmQhc=S^;#EEA7YB%B!%N8t7Ry>P185solf+aT*OSr^cmDvtgtcHjfCJ%hf_^Z{ofuz~l{?dAitKY?1(eS-;HJ&Mu3 zzL(V0S6D%&m#`3Z*-eK?F42cre%PQF`5lBKEodS^b?O5&fSEo9NZk=P_=eHEf&m#8 z@+6a|4DvL}PW0I1Q54D98H21SUg70V7WIxdpIgWBYBguj%V5E&DD66D6WQumNHRNsq*IsqM0O8ll1(;J-}eD+Z^L$4 zz2VNM>*`Hx4xpao2LZK&idUaC!NUxBMDz+VUl@?|iZH*#u*8<=6yrPACd8>asE*saaw6Dzl54ve-+jWB(DObhT#G*HL!H z*^_pCgX=}@VK~|KyP6*Lnpyk)68;Do?Z{G>!_qlAG-xC&sT;{uX9%sYNoo^UbP;Y8 zer@h%JH|VPVnQ5KFBCDEub4ux8ls)4&D&*OlP2vfHm>cVo}AqWBxn1!kH&%+7XY3V z3jz*9YJ=E`4IiLz4WWX)vL29y4Kk7LkR3FYi5TRAKpRmaFKj_xbwmv|$?IYRzU|=H zz+*d(vfIuq0X+F8322WOKzqCZYU2ez#Kh}{5bwB!F~f{mX3UK;dh!*RugH7^wFXVT zYo)ys^OX(y3d%GRLU0guVijd)z&Sfe6v@sSAlX?5Bs&{`Bh8{rVq)sPKU%QD7K%GB?GV#lXHGJMEe}ws?9{e$bKYpJ2Zy&L&-OCA7(4(2;dFrXZ@>{!CQb5q9 zk_;}F&>>|&J^WFOM=O1vTKgrxb^S`lo8Z*TE$aqSeWHMzH^F0g2K}KFHF}WmDet59A3_Nve1(4{g2Hh~}(jnLSE}|#88q-N~ zm3b?Cu6p1{X$^&Xk}I31I@61~B3G8QBDcYGqNgPFh_k&uNY7qKZWDB*M+?vnLW58A zDLZ*@@QAL%^j(9#qK>w(##tlzdURDdnDNWGBi(;oE|Bs$5oDWi!d5BMO45oM<|>Ye=HoFmE}G{gK^=9ji|DBB6c35mVp z;sWs0ZjtFFgk%R&7BH<-Q&Nb0l%k@isEvBEzQ=rh=ELu` zj|8MxQ{Yny;v??{KxYTAK`-iYfbA9f5YvYZdKp+uzZ&6s>1CsSFV&OYQI;1oxgXdtI#dQFwv%7#~ zWY2?7R>P77`%F)desn7aL5<#_R24wI-Ai_GY{ap?vd4nKCPTdAEZ9}=r!3qLl!)#) z+pIisld>Ujla#O_C4w@!jHVntG@`)M7BvP)p=LhG3h-H=gsM0z4tkLTKJ{rlO<375 zsb!ZmpjP%te1`XS2?!x&lYqLXWS%zTI5kB{Nzy(XtCO+L&fq9%CGkN%N^`Rrqgk;{ z7JpgP+cqlu2`U=yFc=3YJS5Z&&HKwmKy*RtVC(4LVTGVYM_!&pTpfk)| zX>z@|A*vq6rL8>&2~WM%0;G1^h8)o^ge2kgjy=#qFbp!J~%)(-+<8u~{2= zL|9_-@@(W4Ca-#s%PL81|fz@rM7c(Ry zu$RPY{BEG#SsiYs%WOTP8Bwo+ghQdZ_=y z?x-1bqL(a14Lx?z;*tDOH~54OPZ{ka_*d8i6-4$x<;GeDQyXPUuCgHMs0Z=5e|;N$a$!Ff!AmFhE{#I8)GX=mzQrI68L&nNZ9$nmW@z6k)jk;_V;jLj*T7i2nV zHiR;n1s~F*xDBBT8+4HYoqZc(JJC^lA}4sZdg8Aatla}UqhO#;i?JXHLJ?GO7R!Sb zR-EY*OkYE0qI=6F_<rkP;X}{Wgp<69FOqI#&?0j*~fSlJ^H8g`w-?}Wi>)_L4 zN1TbL(fSRS29t^JL@cf&(-!g|ubrE$Mav+UhsNTo_Nsd9@93b9`8v$kWj@i~Lz|u_ znLQx(4R)L?*0<&uDREqZGboPf994IQDK`Kg|rVcU*fzC{lAJ?4rpEb21B~p0wk0?!n!@2=GK71=Qz$84Z$8nJn%}W^bU# zSENM(WaOhHvz36?rHfDbF4sVtlp#KiGHIOwBx4im7@o6)me7SHKD$F5!u6NK+XH+R zG{@}~cBqH&hR@-F;38LeDFQR;t-$3H)0IsD6+?hThdfzx-rEUNH|T~+HDcU;)31hl z(!9>%8U{T-c^kZ$)MUDrJKey(Hq(iHqMkUq?7W>cxHQ)>H#2iae4V#Mfy3sw@er z;MW6-UuPNwK%CV}0P1woVaAi+Db@_s8obrSZ~C#?1Fs}Kz48V0)}DJ0KyhQ(!>O`I%j+=&}G)DwNdpev$Gorj0-_8VbEbosXHY1>{xjoUn% z=B-rOkR*PqT&!OFHN>5Y{w($k=+%wKa4fcp4F&aP)!?dKtd8I{xx*^3!*A_X@5Tf9 z$O>pk*9IW*G%r@mKL?r>xscxCijq18{OcXw031e^M4ZI2+-51Ai`Bh&vUf=R{?A+1 z1^7zf1JG-~)#E=@5a{q)AJlG9;Jd^gw#yWCq)Xru_2S2&%UbXfF9xRpf5b_UYatK9 zfdU;U5XH+p^t#~PR{TPT-+AG3JDnDgFT#*Q?ME(A$Kj)E#79xa$3(99iFgfBnYCGliWgz1xtj9V4jgyiI3>hOrK%;xY~OP?>?Q(dhpYl z*bZzy6w86mj61Tt;K3iqT3egxHdu|KK^{gk6dqml`>$iqy&?-f(6M9p*@4)=C)Dr( zNGFQ6mr+etRhX=Li4#rswecEP*156)s0Wb@LOgz>OuD_v^ev`uqtg(YhnJvZV$MkH6iPOYGP>3+&GaSsh-eUe}e8fV*ncf_d@$=kRI z@~CfaW4R{)b!&NPuszBlkz`q^oyJ-x%@r9yT|gFPCpp?{k?ryjKF9Qho$7%{(SL(E zrN|W}PeJw!ycfxYhFBS7c5pGdj9H1Bz;-+N*smlLU6sYxgkGJjU}$ZZDY4G=4fq~< z?NY!0!h&_d3b4f8;@b93^*q=PFLxNxWpcYidO*5`gxKC^Cf~YayPX+He1H-8;JVXZ z2#~tFh|_7^tCBeAJVYP(VbHs_jPBFD6=AtiKwWMOW%Sm9FLb`M)QST^nkASa$qX{J zI!mof?Hi{lrb#o6WI0(3b(~k{t<1VJ{%xi#h^c`bGfDpqnd~LY;FO}kjTDVW#3O-# zdH|8VbK@S4?DukH-|rgP=h+=rf-pC?$?12Q8?CH6Lw0W!36r$0az)M1Mzojp-yph} ze%4XaV0w%ad-~px{%CTAdw&eSdeCCJHlW_oGOk0ssp&9XcbyyR0YMh_nNj*h#ucy0 zw)?^kT>y|GH5hgT3}QOOh`|64Go`l=Xjinuo*g1AJ<2>WK-~<{2D1a!K7;oj;!K`k za*5UoPhfaK!QOZUk@`vLBVWwC>ngt9(+4&a5z?KZtdD~(qE7}mz@XLbS4t8eq z%5mlnl}-ytPrAg{1(shF`E1wVf?1gfDoo&|w=>&1?>EHwcC0v2d@f2>S*F)> z1fh2pb34u?Luz3jNP~gF3Q1ZPhYyCeI{6u_F%N=_9NFYHTg=u5baM=Lct_|13lXO8 zFn!mcm+{Juv@h^cNA;M#?@do?g;7o9z740J#>6{evoV-O*`+e5hTFfBSm^)W574Y0 zfGmPRKs`5+N94OO)Mg0vy6GazIb7J0CwGNeuZTe_T_bl)61;wlf{xmbF^mK1I>gYV zu0sO#_BaC6b%Ffb?Af2rkMwyeWe7BlN_z+#8fUL22K|(ojXp0M+bq-P0Cj~$etBtB z-va0+IiNVLeP@B5x4*1Go-KiaV3}dXr2)O?s;Ji$_3F8rAxC%YD_?av&VWEbVbcI~ z>#~6dob~qLC?LcN3_{lVvdQ2Uv)N-_bf%{ay1}E-rEPl9?`oTHw6I6|DrDWRa@4s z5ZAeLTX)ihU zu5#ef%tW&FL40NnI_V%@p)FCfb_c7I{|)a&VDoxRA+!5;ITO`J4*WD;3Wgl<0v~l9 zlp75oBTtu@t!%JK{4~z7*V)@;r8%T`wg&rrcwLJUL4^fY4M8=ODG*CR=g4SD&LY^b zgHaYxX8{dBGNfq;5<{G6eTV&CM|h|G6(D%#Td<`C4*f%5?OkdgKI*gI>g-Z~fzRgc zwz|OJWaS?E!`_wel^6GV+-l!wwPHEyJ3+KQc=6JA>F9V8?PS>*Kt1_42uRk1E_M91 zT`Iy{5iu*G!wUOM>r7`@t9@7}>|c(t-1w!u{re0~^v@rl6O6v;wP^E$exHxvhZug8 z;l~+10!TSN37G^_4AX$b_bI0PRloXe9H)FdpWtDh0Rd?xSt1HT>SH;n2)XPp$r)Mj zku!1ze-QM<--WX$99i7qlS|752q1w)7FhBSDC-6{g($s>L1lEp=ddZ;M}*{x3Iw_h zeqpFG!;QjFo5D~xG!&P~L>|J~3J&mh=EWDo3U^IpVcLLTd$@1|G69Gjz60rb3?y<| z4*!lpr;31~BCKH>l+;^=$-OmjZih89qh%;~)IwPjbiqfK^+x&gKG95`@_O~ITp;SR zAg?I#a*?Ts@8uNs`C;78s)+bF00DYmiAO|^mm;*BwUY_)=i!o&t;y_)kR{Y`*n`ij zVdA5PBO2d@e(HPNhoKl4c7b~AcQJsr&s~up=NJzM(jltp;I4whM>?MY)x>ErgD;LU zsm|e-AB+r>F#$qynmpSwN0wLoO2bJHe%fpgvmL_8Eq=-3l!pMhq&Q81v`qhErl&H@^2!K}e39%y8rR0k1B|OEh{3AP>-7O$%U(i8d6WnCP%VT|hl1WM=I^u}QJjbL8ZGeHP@qY*bJH zW$GH;Gqg4c0#7gmXs!`Rv9KX$5Tvd#aM?&`A5-L8-)?u`O2Yxv>zyy@#l!M};ldwu=g-Uf!*%wTd`Ddtau+a_KMX$NkGS$< z+L>m7Jj#hefLjdA;t4lCJLb-Y>xT;P&O)MbIIt%7P0ZCaUGQZ7_$YtgH;YN+)5IvF z>u{jpN`lTUDkV5lBXVAg49vN0=o%-dr9A{mcxO;gzLqIturJMeFy??KOA3H);XUjE zXJJ3smkul3O_RM&ku@qA4ai=ntK~R17m0#phkwW5WK&!;RD`!4B3Y}jx70_ZVp>|R zpegc6l~u3p)=mZ7baY{`lauR&O=EhTVVd{dojgU3`gNqpmG8S2b@o?-{nZ52V(Gj= zG!Iu$&J4aXwr1QKUe>O|9`|q;4n3)3TdZh%R8e0CWtw;8D_iD5K<4cV%jvS5eD5>` z^;wW_&xq$-6{36+0G$?y`N3=>ngu~Xc_3s63}E^r3-!FB2^y0VW;v4$DJ)Yqc8boIakbmQIG0XS2@X76iO zAU{ofk^Nwbn`8$0p=9uR9K$$+lI$Tzl09WG(ypiiNP?<>`gW^k2$m4kcT9Q*>vBaN z`N@%^9{EGdTJuc)q|7+eFdU_EuhZShjSt4-D+kHnYir>xNS%TOJEvMu_i&q6KYBN4 z#`cB8I&BnNBiI^UW1)&5|FJ@&Wmt%yBD<#Kp^#V3HszFAPQ{QT9<~je^hl%2YlZBOWT-We0-D{ZWme0_4mwP^dk`!8n*^b)I_V%c@ z)ffr$Ci}R>{%W)4(&-(P?L$cQ!Y6QbHNxcG`N(_ok@r2wefvZidVgz&+J-B}+w!xX zlhOkm@<{+v^pKDotYZ7s|Fk8Y3opVf)w00;f?@}Adi;jYG{(BtmyC>l_Woj zL(w$Eu99ew6tG2C83rKdc!i}X5H|X1ngY53J zi$V@R`Z{X}kiOIvF+D?lX9k~1Pm0RS?MXjrf0=_~*`_*SLqb_;c zDN-6NrMb`JyjGf}mr|)STJFtFe40jlZEmPz@Jldo>ciX2JJn;Krc--8=7g$?m>gT< zXoEs7#rMz(wc6)aeR!Kn&sQ?H(KnMkaS~F+pQc^4>&FXu`nKYYW zhU}~iIc8|?_HdBoQE5ROQ~;yi)#4zpxmDy8!ACt);)ctka)u8Qywa8_sNybYFj>zh z2Z`R$Xp4g8mt&^@O7!F++CWqR$yL)V>@2yDuB~`#_;7xM;Ril~*J#BUeA*{k6(dNf3y?2I>PD9+a^B@s@th%D$D z0)@{j=uA)a!0+OTyiY7MrztPX`mBhoHiX|az>D8^h2Eubm6rgrK#z$47|FFkK(Zus z#gwW4-;RMUa6W)N*Us(IO+)Xf$563*yC4#X{6B_O;VU+u`7?Z$DSd{|_s=M20KWp5 zg%`B?r9r*A@8y2$^;-E!l-I4u6`PMeYwcW$!b^Vu{-j#Dz_MPM-wlt&fTQ0~j|1*O zxr8<%fYeoc0m~@w15BX)azN^VD*%%y{}K3_Sf5>qGSTm6c!24mLAV|Prz!U^u!{r!Y`ijkmzHD8e9~h}Qfegrio(#wW&SOAsJ_CNx&4Pge zS3?o^&FcWk88>WR(!nd!pG0NC|0eZUfUjBU<0e267*3DX%KOCW70xd%j{r*@4f_@J$4CQ_wu%n(t{f-M?jYcY4x(zP(^wYAamT6;^ls^MZA^KdF8b@S>$REy57Uj;pUy`JC5- zw+8xz4b@Zq1#91K`>YDcH*n=yfD}{P0LcqCI>Zmb`r|uoi9qfEvJU7ek^K15O03T) z5k2*)7x8O0ws#s}8g!@n3E2*WqQy^N~e*{R11e$7ZLgg|bwMZS*hF(U8 zJn+2*>(GjH2uZvR#Mh}``7XNJe?+~C;7(%hj4}IsbQ`*Rg?b(>?;8#j}PTSsk{DFlZ1 z1Toi74Tk?QuBiRnqX8&1%IqlW<*nZuk@FG%B6neMOpfENB^fBgNIcsTrjQ5IN|Hwx zh4Gh%EsjLs*MQf@MA%E1?&H563PWdKvH(raqzH^$sg9s<#8h{r#eXtd^s;$HY$o-; zXSaC9;-YoCKd$ZqTt~}40qDejR8#wnps!uQVWtbYaA7c%M>N_AyzYaTmoVK2yNAM{ z$w$tBCU(rm$CxEAjKu69>63MbNfsc*?3*0zm(N_Z_AQfB6A<|1nVUO1)`c66X^ude zPR>C+1^7)2Z&p7FzMEH*T(+|@36)4tUqwB+?z@1F>-0o6;<^D7gxxl@cEoij4A&*c ztml5vWAUD$FlcgiKr~5tG3%P#KV%-!YyX zK%-Zo-iepuxDY#|uZnMUv;J_X8HD`7K*&sHeQkt!*gGW;4Mq~)Uym>kTb?Q0zcs>a z4{m$XFORh>gWF}&|ECcl-#l9!SQ!)IG9{jg5qq7oy?=i2sN3bPU>p3PkF|H1TGXb7%Q{e~NM&_-6nMsQNR&4$5Bz zJc;tx0J|uEgCNQsK$??o0YB{npF_Ea`o93A@?UbsB z;r;5~3m2_D{{5TxesSzP;bs;8O?+i|H416^mNN>e!&8UL)!$w2x2{-=ahpLLw%I?F z4et|Ie7`z=tKT}YnlK1Lu#yN0>bYww=zTQFW_UgpH(FwU#q@z z&~JTlSfyV03LWDN8$9}77A&Po$05MV>{kz*;kVv==D)xh+5Mk?=xV=ppLj!zs391NQ$pS3Pp$-zgX=L-)XhPVAO^)x|E$CF2Kgrv3|v8?O1o5C~u z?K7JpH5vPh>ZfCV>y1OCdJg5gEk5Pa@DE;#9}5^)W%I%Bj2Py)HU7_jD?Ma3iA4RQ zuY~&fflJYsa*`%vpK?I~=HCif1bho%36O>$EgfkHmQmJ+UU)Cd@u14eVFN~?9=Gwce0#M%`@vkG6Rprn9R=^6KrEdHezjZ`?=I<@*YAW9Qf@R&P?)=1= z)&;9bx|cxjG!{dYj4|JFGTvN%-n!ljpQTRqEb9cZy@)^FEBrUPj3A17Jwy3#7%4l0 zB+Lm7-+?t!#)Fn+{rr-T>+x#`c6}FTk8}*(Q~m{?hmioIl;CtNu19ZfE zIG=z=Zi2iVLE0`1HTV2fyqKYX3hXV$1(Fcqo=f+cYWL1 zk3^@Z_g5;5<52PFtsoksL3!c<@Eg6A|lzUA5c%NF4E6?T;sPQpD+A?-zxjHLA>#L zzxB83H-3{oJdcJ)ho?OnPi${`RP1dT6>XGV*GHQVe-Wu7jIkZw-Z7YX(4W}bH7X`b zJD}o7FrmG@EihUA1L~pM@#{&Og)d>DWeeIKL`=9?f44t6P8%7gb<*9l_aNOxkQsDI zv)Hjc<q?vCcx36Y9kmELxYXcsBT_FGI(T*HRiiu{XFCOhaFi~?kx4d+M@N?=6AklZCmPL6-MEURQf~s!q2IH#q1D{+7!20k*GTU)H3!c z7vukhb7++og^mtXH!k5(q00ReeqUwPjC0DSj@TzrzeD}wyU##sj;bR&7Onf2;%ul- zZCpb8u%LPx_}e!Uf=7NQuO?B}1Jt40qp}w-T2U(%Rj2;K4{>Q>8x?0|&>j}dZ&P<( z60loe-nnQ!vONcKd&HveXud8$&Ni5`){+gITbS^VV;000SGQr?ZCS6g`e$w)`3hhy>TEa}=4;>>F2t}vL)mQ| z_8_{DHggTs&$uSOq-yZOi(!RwlRI zye$3JLboD2uKQsa9!hK3@zFOU$GD*JVDj_WIGluE@_-x5v~8>0x?nX_X=BlfEQ#ot zlf-`-go)j>ESI>3s&@XCY~KQcVy6=&-S1UDjgH)gUm1FC7tU%`5@|cYrE9D%hTx@( z)_b>)Gpi$@+&Ri;Dsu&RlX=;G>pj(j60~CeF!xj+Ww)O49UNUTQ~9l!;sb!Pr_kjF zfhV~Sv)s@@>=)bwhe4<>#i>k!BY+~9HY-t-^#&?f8B+tF;09u-{|3rl2N>alSQ3~G znF1;Hs3D3yH^oFDolh)%log4C-_6iY9vbTkP;l!mq;qnxOI=8E zlfcV%@Z~7KI|W1=mL(yOT$)B%Z!m-Mv%qHo$+eGj!#R}y9A$b*Nh~7|6@b?prt;T; zk8M8uC)Rqth@v=*nk%8KHz%95&v7$l)Qfoi=*cY!{4V6tfB%~y*;xU>$wgN6pt|?#%hoj%X~b6pq#0v6+wm*tcNmTKX5f4ATi{z0J|E9e!}iqL z8|gdOqSz`cHi^&{IZ&nUVL}6V`_yV+`KSrA^PReB7So&V?QIv+<(#a2K)v`oFnPHJ zhQEdHVY;o^hER^%?)0TIjjxlhW>aar^KHI)8nQJTbYFYS*B;#`>pQKVAN%IA)6b*b zFna{rx(`&D)WTN1^Wswr*8O~<_v1L%(~r7dcr&KX)d=#8EOls!(}6?&4~--B!r~eD z{X-PB;ppq3tS`id9dh57@FM}VBwtjYyagwS%YBfNMBgFxJP`X=0*9QK>(%K zH1J5TXAREW(}y;XKWpvQ7Ay8ii1%eO2%yB61=P3SbpA)j6m%Qzk5Es?ZPRYO9S405 za^yHfyBoIVE1<&O*unz3c%hlt$lZq z@92n;d{+gRoA18BzN?{LpEKz9MaXw`;Pt7A%9=*@Wx)n;^b zZ>Rj$U7j7+Va>YVU(NEqo}pSFWjZDCUFEnY0QmiL4Sv=+hz4}ugsxKe;=#br*c}vR zEh6)30Rzlio38N-I=ZA8HI#^5<=edDS?e-$plRjj?(kcAD}I$ab=LwOAu-HD5S@P~ z0O`Oz323i?&=5s)3S~W-Wexi@>M0YXQGYS`GJxMe*=sGEMZF%~Ih3j0yxy?ckO-zV zE-6C8#7&Sa8TI2^d6rfHpPs`z$RIn>Fr}_Pyw0aSdl!Bp)+%20`DgIQJ$RUPm3sbe zBw+iz7k}Jjl?}|1{2k!0K<=G@RX{4&xLgOk3uVesCjc8L-_0=1@H?=hIU`-mple@+ zT?q;7pn?Q;0ZCxbAT%59Go9~h9w>k(!B0ngqS)I|4g#;A0MncxsrK!tZ_-!T-hn@; zfp-E@ZoY@h?*b$Sxp{nu%Y5T_kc)o+Z?=<%GF<;|Kq}u07=i-XAa*l=@8Noi`6}d6 zs*dJCNL?Ob3!;Ex!M`I0lu2XC$d1O-6_!cDOEFR?&I;MD+uNfMijYQSXhsSpSfQkc zLgcBJK%ue6iEYW2)Ety!yewc2-%j_8Q=?#$AASF5Ljx(wed)Y^7Jyn?L_@*iuVSIp|Eu<%CY zkEr|+lRx6lAD>>GLF!{)_FFeYp~ui6pALdSUqR#1)%{pbolV!>X_06@lG;4_;>eS1 zdRTUOo=9kb$kT61s%eO$B%1;BN~)CmvZ&VwAdP&tj4)vU=Eri_EGZ#}hTU=$4M4Z0 zV*&JT0bNAL!heUR9Q1*B|BtOX3 z+RE8JQPGz_<#YKd)fN@4c`Ax&##|D4XzH#g1nY`6P^N`qlND_NPV#6w4+7n#9h7yK zQXkLx#*M3@UC7lH?V(JH=KJ`AqIz22`wovP8bDcBl%jqMistQ8H@)w>7msRMXH92S zG-xOqnyBaxj!rZ4^nDi3+jN)WN11U;=LXN+%giwWgY}RIPc&dme_TJo>eFjYG>fMr zXmFO0h#H=b*@|LB&9ZTx$J22L);&$HK2q?yh6KIdO2H^Qc}iSnOeAbghl)}v-$L+? z#cmRE^SY)fAV||RAh|RHI4K{Pie^DS=O|kq_Puj6A_p0^PB4;|KLwOYry}4i-E3z4 z(tJA29*^|V72SD(?Gw5g22AVavaRU%As*=i54xgs`{=adu`-`aXCC2I$Q_Bt8W5yu z9dMSukAhCmMGchajK};i9?>vuB4o{@=b|PA>n?4f?CH`O`o29-6#Xwd%a>w^cML_l ztY{C=)uZ&?Ry`N>L8!abcg@@`oynsTqIfM0zK@P*`qC*HgIrNG zPdPu%nkE2e>3cKhC%3L>-Z!c5Q<|ovsI2zVGb%cEmC#T$zKH&RDaL))P&9`!_5IXY zG>_Go+vcfYX!=qGsX2@0Wg3lmWvD6RzIb|yI^*9h=bH=Y61&uOSqE27o$n1romCx= z|I^v!nNKQW{5W7HMQQv8jhtUGG<~W1K4+|;s%XdF;cs;~)eJ@HcxBGf(dKCSCI(<)*k*;W)6`eVgj_vRbO}F4u*A-M3a&<*}tZ2TE zKW1^MIp5P-O<(J6ag#K@!%rFWJ+1wy@3*=r4H$|J`<}WU{ZETdc~~&dzB33$-K8Ov zr_T2DMe9;s(`h5zXM|&Yenn?HhH5~t-uF$zrPCBOQ&DT6DEeQn3%nFF zzSow-b6IL0Lzz+99%$+)dYV~(kn}t3(ZMlP_cUGFGZdXMNT(k|C0J8AFRSy6Ujp39 zxbKfBivFKbQy=&yo|%whdXP3)(f%Yw^{ttG$?^=^QSd z7^HE-qxl58G%`(7J}-+JIX`JAI_GHG!ZFkq_suCo(Uom_<<<|E5dRhNg46 z)J{}x2Ycqigw9axW2ojVnnF?YbSGmdI%TcrmZ02^p|TJx8H&a|9Z6Dx+Nz>CPen2Q zPv;nla=fmn9O}+|slYsjDj1r+R2NN(hDS>%lSlJYGZc^e2x3IvdXx=Cw-}`R#-8TT z{H(jQf`**C@JBDl2Q{tgwf4)M%QfKXD;xD|)!G`}YQENf-QeA6C`?~U&_CGwFDMf| z-7{+dQn_lB^?JAKTTRf@^|lPY5kYTj1k}SHwX8i>`aHGvOZbw{O3Rzz#Xi0~aSm}0 z-hF|#U$XY8XBFO?Tp_(^dGSMl9f)~aeG~7bT)e^(<&-WvM0YIV;0untnqtl0gC;BkcN0>g!^dg@i$p?LYgdxTZab_?Z zNC5BF05#;MP|~0m1E?LxV2oL^Ks54VNP$7OR6HY=lHm74P8yJ|qh|o$0+?ldj`0P? z7a3p5b48gegrUOtD&uQ_)Igo_4aN(7lkqJB-)4Nrz;_v+?-><+uJFCmu^<3Q4F>_q zvJm5?;V|PPj2HSS<6{PWobd?-aH z@J}DdLB@v+e3axJVL6)o38i!BsQxVp*N> zVpx;u8yY!9`^bLOB^^WJHodC+W()bT@ zg$NK$LyRX6kwRfE4-{a0#Gs2BbTO2PKW@+^s7(DY8ud7OlN#asQJ-P~X~v79;_3|J zMKS5hEaOFfofXb8o(#)V0|g*R!y;Em1A`!9yaZ91=_`z{0+O5>jPC(b1AWH(ZgBci@Bx%bPLS~-K%x&bKEimRk1{@XL!N_z8;Em7!eB@; zK4svuXoMP0GhT*ehUv467Z2qaUtoMM&kYy3qGT|X8D9|wrmr%-X3(ctp*rI;D3d1| zOy6X@cp~58indYFVSJbIVnL7beFN`{JDvytQi2ltAmc*@KJ4K0z6e){Mp0&n84Pj8 zCk*-|<5LEGn(-L}pJjZ`#^;Bc7Pz9w45Cnp@nyz~WfjI(4SbF9b;gUF2IHGLJ&pes zSF{a=4&%E9zQ_2!f%hHdE&v?q0>+0JFA9ZG&QtV8jEX2T#0-3#@d?I@Cz6a$8T4t! zXAJr@&wkmX82_YcmUDNG848A=BI8R2zRdWFfv+;Y#&}V*&iKZF9{o?lqsbL5gQ3m% zj)CtozGvY3jQ73TNKhz~r-KGQl;?^tSBRz&#zzf?7~|sxKEe2;flo0$&3KWYVSGMo zROGm#z<3FkBI8R2eVOqU17Br)jqxI<&iICd&kqtslPg-xAey!r-(kE6>N37((Dxbd zd(G%52%v0t0plGx=>IVKg(^Z^5yjsW6JchEj4)tr$M~3mk25~OcrhT!_>_T96Q0I@ zhAYIfEHmT`h63Y@27QU~WdmPfeAU3$7+(jp*Z-nvgDaW_LyPfk#tVIi@m&MoV|<_S zVwmr>j;8~FoS>Zbe~>FeTpcGpB1A2aCVj87Q&B;!*CKK)wsKlOcvE5x!a zGvo}00^^GYeTng917Bf$)xg&nU(a)eSlr->roqr+eA~cx7~eJUJ;wJLFYvS4bCR7@r+w@Z}g^ zFzAbnFB$kU<13681FAM2{a-UG>deq!yeQOUe9NHsvFF;1r)4#HuEX?QgTBZ3KH=^4 zKd%5N3SDz{|2d%6M6}$Cy5@(cA0)1Xm=vLM%=(K5gJLjL#bQ z9ODa&7e$MVFB$aZ*YWzlVpi}1p(=P@AJkY-o$=CuoR&2hFFT_oelI>!FdsD-rdbr5lRiF~{tnx9x(5;lLlWgl7Nj(K`r1w!WrCU4 z+gHzqUoN4KCEqaqHF9PDw%+zE*yvDQ&c_Q^JLlu{U?Yb*I&vxi4(?O|Psh{xm8v4@ z_2(KTl;^mm=JrhMn!#nztGU5f08+Re1~hN0mC+zQ->AG^J%djp-lQs_1uH&uf&C+M zcc?pmZ5clqUj;E)RRh$mBH_AKb=2!tHBdfHtH`KJ$DYUA^q={A-=?@A%TPuieo?a=NMALqe(I(2>wZin9oi_pm*&N z#ODDH8(P&SQJ!!)TD!&#LW-|28$u6bX@L+ynFd4@kQ9vp>WZ2JB4|9|kAvP-QOG~= zs?&H;I|0FV=&+(mkCItD>0Qs^^JX!{%5U2oB2)HUrs~c0(Di~a2 z;4~EtA^3DfYiP&5kx*w%8f5qnU9)cC^k!RbiZ-@0Q zo#7q=UDWG&xrg%UICeArZTyl>4_~9O-3VoA$oC;tA3?r1Odj%PcLzW}hgL`2Cc(iR zXwQA@#jz1&5BW$Q?UBAAK#I?>p|3fRBB&w5OHs1b^^HNWKH}qV zFee3P5=elK6i)(r4lI{&O`WFVtoQgNkit(n=mV>Tq^?IqdQL?%6BR|uB28wPuEso^ zg_}tMfpDf22lV10Mfg0AL4qlJ_!6IxuGA#x#7HmNue+VlOhqo{|Fd$ zQJ@HX40uu`4(P53h7<`*fM8xlNO00qup>7$O>Q0prt3tZSuG^`G~~=fpJDp^EH0!5 zvU4_ozMVxO?5sgZuFL_t_mSgDQefULBE<_66+!<~G)u5-#r4$3v$~!PE$W8SFr#6o z54X}5EG5BZU9gK>iV@R;`B}zsWs2aci{NQ;$_x->9GO->#J7k zYf7#2^mS^ABDG11(C`a@z)ZpR_=ezF6(M@+qFL#w%hQmbpOo>slQj2GoCIg4cqEH@ z?iy$QpEde(Qv?@=f@d66)c?@9I7M)2Zo!V+@)Wt1{1ydQrwFdiC^xT1KY5})MQ~$A z!KU1%yIjowyvb~BQE=N`@IY>7qFnU9+wdb#bf*aJO%&`cx39~k@jtfy--2K}U%Y9) z@gD&F#PJ^l!Sob5nnB5PA@EJgE8(Hs`Nn@_is0x_@O}ue`bo{?2LlV@t<>-I~@OoEebBW3m%Mr-$c0+#(!yw;POPl-s8Wb%XJ(7 zTTLugU9d}DsktaT)Be9cMR0Zt35)VX<4xHAO-dA7jfv(Ig~J0+p#N#fH0uJSHM8Iu z<yeml~9C>!@w6w9?4HFdo|k`P5Pkmy-w>?-@#kaN+^O5S8X`Fs>V+kLYZ zWKX|!!HW9dppLv7Uz*6Xm1#g4JQ=`A-H}DT{=6xNvTJuhxmk>~fBJ0XmJApv)(Q}; zcL)7axZWMbDTaE?f^$d9Rd=Mew zhXJ^4yHrEN_BT>CAO5m+%`kxI`t<9EMZSA0=GEskui<6hi~+=VF0?1>96(J7wgU)d z8YV52^#E$msc2`SqFBI?CUf0ZVnu2C&=pObtDgB~{B)$%y=n8_FIqd7jP$8K`D=db zx?^siq@hpDnA8FbFs)g_t8V1p3oRA)9x9+ge=-Lx}Fgh`uDS@p!6swYoRb#mzD+rMpHkWU%vr%|S06`y7d#imU@+4&SZ zXY@*teZ6WWCpw|`X#f@2rNx^)!t&^%^-gu|hZd}JRSZ54TG1=isf1IgvjM~J6Gp9w} z)3b;SGVT;}Ht87_^>0>3UR*|2PpTvM)Ybj@0G1yVT0ubSixA*EeGvxzY4nB5O?cKk z0>OG;&{s=I(I_h#o1$nO_4?8zf%3Sbw<7w`;4Ets8f0!klZ0Sh(NxlTJtdt~51ir0 zr?g1x42a0RS-^SRn{(BAE~R(Rq;;3yj7XzFQn2Ja zXU_|u)qg*o%HIZ_j$Q4a69@b*%0(BM^z-S|mX{ox&#`2C33OzMeBrQsOuhI!e!R?w zMdZGJz*MVhf9ba(+ba|3?yaJ4oV%N#Itf1&;6MF$rpcdg2cEQl7oeWH=@+pwd2r7#u>^G*ag8S0O?oP?O$y_X5TH(2VdrVu`&es z6$r|LE`t>G1NTg9LxO|R8W_Eis7e;5CWtNswmg4^!a|7;bVXi)V~OYNip(t6lL8r64c*7 zJq2|P^}45t?>YLMTLG5pE~c_ugi|b-4Up@p;Ykrre7Z;DpdWaYj^)Lr2~?0vlYo<4 znnFFfGz~~DC8)X7_N1FfGoUj)dWq@MyC6`;cF!4`D_Jn=V{`25qd9Ma$IiF#617q9 zHMolt=pNW@;X9`#gThedhTw#H%G~)k!#)|D6%bR8RssJEum(tZ@C6Q;I?86q(BLF~ z>hT8Z^~j;JDUTwA+F|;`V+^jJdj-QphqopW49uitML;1m z**|I~mGyx@^2khT$Ie0f@y3kq7h-TTv+HfezKf@Xjg#x;68V2cuk<19Gl0HZoXiyf z96yKGj^R;1??Y#5Cj>rfCwz-<^UuC)U1mjYan|)7&>vCv)#%y%bU_Wvx<-7#SlX^CZdcC8lY|5jarFN)iQGd-C1BF=1U~Hos zNRcI0Bn=n+iFLwC-Lm=opIB>~i*4)Wss?*fZ^(f4GPpAf=w^5hcp3{qhwMN^WwPt+K}J=r1SQ=2w=mb`v(miUv*KSX$VmD-@yr;rLoy^RrGhU ztX&d!2Gqv=e&G3AWe+RbAV}X^v%T@W>YytR;2qLceu@ zmT?b!8g5Zv0PEDttS9{HH~!IYU9chInJj|T_Yv*?J zNHcn?I`Z2K)`wL3?gi_U>Q4N>qON$I-?}qTKfChxkU{VTzyxCc{{Y6&=05-?QT`@D zwEZo>mzW+W+Gv1AP#g_@9~<&81mBA~eaqF_jzw!-I*iBmvTo9zcpO{wTNn8|>hah5txMJ4;X~~& z&u2hQrxRH~T3_b?_02I&+Ivx7Mr6`Y#1>G0IUub$t^h2ed>WhM*VuyGPOIom-D}W5 z6%ElAC%fjJk4v{YC*>-AtKSM)vpjo>gycm&^g@uGEDRsITU z!Re1;Gk5^-X~4Tz%U8J19vyWIk2w#h@NZ()7}#KU*k$(i2c1l64EV1aZPwxcfM(vK zpQCnLYU2-ZG-9=G{e{OY>r*QJGQSnms2=}1sP>H;;q(0gTBB5=-WT-l|Uhw%^*X(s$xX?%o!vXE(`t`rc!nKA;|@6peb6`ra}c zr2&*rBT6Yq-H)w<5UfXO=q>7rKf(Ove~UWuGRwMupXc&m+@c+P(So@dbCL&=Xk|rWGL>zy| z0)E}&;x{Z}ksbeGEa#TfT$#B|J$3V93ZV#Y8V}|R{1QvQ~;iq6h%NT2B5l*$S7JG34>=X)r-VlQG-ndON?vDKNfm#)Wd&~xv#=@)t9b~kvoKLc zgpo4jy~b_onV*4iestS1=929#Fo?E9(1v^8iB;Za_RCgat>e*57e2aY!MbU04+O;4 z_aOA$&g(7pDD1f5)no_J2Y`2TYLMwge^b5C?dsIIcm{o~>E$pONpQqNaFhin)uZoU z#N>CoZU5noxCeb=NKcCI62+4q^r_p`5%kyF@)8mR(;z08VVGr@V_0BVWLRQYW>{fZ zWmscaXV_p!AxP~sZ};6`|Iy-#Hp32}9;029sn>g$7AZ!1DBIo0?p-T!5DS4X#r>92 zFTRnMp_%|<45plZ8Dk7FW0)CNHAcPVhzOt-Ni|tIMp-~i2u#)DOpx#*5Z#kPU^bCr z327lPo5(Oh)+8W8vLeR>1tEwafXNDiIziFH4J8&(_NcFLeKocD{P(Qg{+{yx5Y|p( z?yfOi-BDzH6=l7nn_S-#MNL!NOweJ1<0e6u33`C$2&Ne91FwggctZNq_g0Riw|YcO zkO@LUAQET`MZOF(LFBDYESez|<@%T-z|#kDX}~lw!2*(A1Suv+Gr^dXB%(4PbaPS` zc-={+203n^U}`{wBk?2zrjtr6p)3Su6BQKMn(H&tP8JAVksK2g z906ADEcHCrGuKD8?IcxL|wTw0nTQUA)InE>r$VA8OJBKt* zGBS0Cdf=u-YyVPOsMN+!E#mg?9SUc)xYWt$>>bYf)Jn7JDtvqq%gfBLp4_$H%H5%k ze*}yW@W6)`twVNeCe?D0*-CfVUf#c4W<*608VfCq*GV1%_{R>#KN*i7N zV{eZI^gRUl?&7hp?)v})1W>fsYU;sbNOUUser$V|LW~XD*o#zLEn2HW8g-D5ybJ6W z+jb_|7Q0K`i*?{l{e?{*!<_&EXljnix@!bB0J4$6#l`&3HWmu ziq|YRs7yXD~{t3+e4e*`JT0H z)f{RP13gWZkiYM+oK2qgofzrFB^2#WJi+-ulntFw$1&_rEQgsQa>B`sIJZ&za+DAn z2v^$ljV0eGv&2rQBcMFsKjDP)a)K+8CwQ2q7?Eb-YxM)8lTwBWvW`0YZn9S^j4S|} zxKdo6an2-EdlSef7D zLZ1n61I(Ujmjh`YGihE5a5=`Z>7KwU^m?ldlAohUXNqdt@x4_`t7Qy< z!^?H9X|PpR6E*e%r{$=Mx;Kj!{3q38m>RBGVtfi^8XU`MMr0s?&g4LNFD7cdLE~tU zJE_**YvYIhFM{?y8fna1KIw$5RWX>WC!P4PYS0U*`Wi@g^5a<4vZy9F;L-idEk?9Y zI{mayk3mY$9T2#=qKhVI#jxCC3H_7y8f?{E-22|f2}T{mdO57V@DU5MPmr-8^)OcY z>toYNnCo$!0{%O&6y6uSaq1Q^(NGp6!B{gq(bvjcqr#BE`4aop>Ro%MxhywNvLz^)nE7SY^+_+Yn1t7FBaZsU*%c zR|1S|*e*M;)Z}u@FiwoXiU+RUv)x>m6{2jMIk$CKU|PM9z^&DhcQ3oBoAmU@{1Rpl z^nU~o(><~)VK6;^rQ0hFjZbE>!V>e zMbntb>0zp=sPFAwisB@1MonEW(GL`brJ|_42yj-bYA;q@JM4@adb@h&9)x=Us?gwy zsDr3G?=lLMC~$h9=#fgaF^Bd_qKz{xg4;Q%$LoePImw|)g5@XG$v4yJNe$XNN()zK zJ-3u*Y{rqSp2fq|^EX1czokC}4V^W5d!nPB+=s`RkGuz4#-%Ka$T=cxBMUGRn-;^! z14|{QE!(sQRLx%4rg26eTdko^pIs|Vi)+=k!s(AnrN5_TTmck0qh* z*pk;*%}K4x(t3_G&lH8#Dz&z1jw4yy`jr1IaHkb`hdsXSRc-Jcvc@?1BeYz<54*-a zs)ue}QNK)oTNv?wj6V+BPiMBBL4BD}M}axd?#m<#kiJZzth*wOGVx>_9^1v)cc>?j zMt74MCcL~X5CBQrthi50nOcgkSH9$K$Id-7lDOk1d461CZWB7Z0sl@`? zwt#VucDNqzi`X9Ny~CNim-<}cQ%_@x#DUmou?LnyTn>*=MHm}pYzsbG z5!SelRQKIZUXCJy;AQ)7I-A(0w*6nrirQPB6bnl;UmQmp17TTp6in-?gN0`hyRwzH zQmFygg_a7;SacYz(mT}?DfmbI2C6S%(iU1?71eP447NHusKz_hsUL85TVRuYOtzap(z7)Pk zGKU{^7pVdQE#Z%ty6{@$_q?3b+Tv^x*>TNT?&5K74;gvr6V&-eMY+@kd<|K2j! z1QCW*)5Hb1-vbPz>|F8S+Y!#^0o1d&W;Z5(SB0evE)gMljY_evdc9g*_gUP>S*wEF z?b>1O9{VEL*h{tBe#LJk?b)#oPP$Lg0Cbylj`5t+C3+0p%O zL>Ud}vt#sXe$VW~Xf=t-iEpc5NqjH|K&+2QQyTkM<2QbiLEQ-SVzcF`oB9>>#??3cSm$pKsn9G~|R( z9#uyV#+&zs4f-kV?utyMcWxxEMwxIpUK~XVYU8h$t($j|;re^rF@rw-F8gNHPE`YW zVsFA|H#s&ubh~c2))b#K_@~&ploERT9_XIsC~gu_^y5D0i+#WK|Fie*ae7qs9sl#p z2Hf4mvKtgO;kH~#HsQ8Wge4+G+e(ZU7Ep{->(UFX*vg_vBemVds*P4{=*>vfvsi0W zs&({=VP&oM)f&%+7A!lhEI||!%=gjw< zIdk4KXXbh4yc32RfVBhl2gQocE8?kh3OXDUHY+CF{{4D(+2e{Kj}*2rx5z;)tM}*i z?D+0TH~NpUtHQnC?#!-Sx~Y)OY{ib)Gl~Oq!rNTH$Ii?jX1wzFEpbKdP!+h{rfJJE zBObLVd-l@tk_>LQFG6)}Ype)Qvq$iLCqGr3uw`Z4*klX4BEOGfkGh>4_U`R$mNluu zTfc6bSh_PNYpj^MN_D%sShv#=Y&;(~WAk2^X=|0D(_ZsYn_CA{~)X~m4yB|L2jyC_+{qo5tv_5n;)v5EQ_Tl`& z|8u%*LuHlUW6RU?=3bkhTRAJjcxRR!9bSIKqU^DaBwev$`Ws2YZMMUnfBZlp%h~lU z^&PX!Yj3Tk@Y-8v(}ikp(AKA#+FhKKzT$+v}Pfwd<*^G$@_m-ty^Of(a>zb9XLb{Mov zyA3!0%0~9nYqvZSyHxcOc7>b#@^4vj9KSI}(i4uqdQo;t_>ob)`PD)H3yNp!%`?0- zXB!vEb1t6at+n*N<#qF{AB^iaX#LXSrPI(0H1yUn9Kn%1#N#?FjVjxzc;>BA+jAC! zF0rR=6Rnp%&C2vjnwclG#(HxDfG;ZHj3&$IJ>lw^)`f z5g%6_B#rGByAM2fv~Wv2zP81(%r;It>-NnzcHqvq1B+#Cte=SKi|YqsJh3jq$ZHm5 z&&)6XCv8n$%eu80E8(HPu}j6q-kyq?&UesHhg+=X>J>qwPSXBW9a+hd@ZbgsU3FR#WB+M zaHEY5oL%qIw4>*bv>STG&#_crT;HFsKO;<9>fSJByKGr|Ts5dw9UEG+(jZ9~vM}1i zCQH`eF&v4JnAy0k>kT7ztAAPjkHVVk?Xi!>0CFTJMA~=ZuC=wtdGTkryE9*RoQ~9v zshDCqMl%!V_oS3PmzNj6qp@~hq-%fNXpOt={)K(#&K^nWZjTFlf)?(z@sQbteOfq2 ziv2OsKwMwk0c+#>b#Z-hRIZRdOxXR**^O?9k?gQTYj)vqT$m4G)c;uba5^@|?TqDX z&j{mIE^9MpweE0_{W}hjgs!pK6|9AGp3qSs_yh&i+58a;X}5K z^WVDIzB9A5xN_!?HJI;WTz;b;2jefaZ`}1*p5D{?FV5v%-HRIg=i*m1_fK5d6Y_;~ z^6q_+@}3jXvT(7DV4dADc!hH93%A&&57$uf%6`i>y^5cEt(9J0J~5nY&lR7k!?!Gi z{2pINS4*tDdRifjSz#KT<7EEtwHMi*4G-sq%t!9RpgqOZ7l!`cm%qmTy(08lP4>;R z!Lb*`A~v?FrPNb^KwC+Df?_QkqC*d95% z!;|N^`OS;$P24-<(y189w9Tg$or&x1Jj9B3N;vl|i?Tlm6R+~VAsXCxW=~H!xgV}&+M?Y?bfa3a~(a`G`cm-_r>}CxPBncuZ{ET;{0HE*tUCk z{te}AX4w3T!L}~_MzMca+`s2>ylL3K=P_jKzirb!#{2JI_%PL_ao8z-m%QbBCG&mv ze1qi^`NIkc^ecI5hK)#DX1_&}UUnD1@#zC!e*H6YO;~gGqU;STHx@FOf8=AgePivS zZ0wq{k)9@f9NZdYkXuc>Fx3|%iS5Wf{{7*dR!s(cYUxy=nk?lmAGTOIJ!i!{J7AvS-8;W!eV|o^|JLE0pB(hx zOG)=u_nyMm+QUt6uph1T?<;nG&c5A|?X{|~pRXLU55sw59k%6Z zr)FQ9_k-=S4yU`QJSWjPHEZlfu3-k8Oc9f@ItMv@? zUrX`Uy3H~AV=e~8Z&+HyN5+;M^RV4ah;!7tgq?>%+vyA?lsWBH~v+H3P(qoaNH53=tEY!{?3aT?VQJ4c=sK0sDhmjRG`I31R_~K@WJi_!R>i#^uzP6!TNPJ-xSl;O|6c5n<>1fD49Dq+P5sBlyc>UyO*h)S zUlEPjwCsv#WxOKt^cAm&M(1SsVBFArmr&kl8o%wZ$u_vq32)6hpR}cKHompLs$L}`=-Iv}v_?>LY$?vslYDB-&QXXUTLv67X9olaHNVvi7pRNiI{h58itfSX1 zaqqO2VD}A9JT&VqZg1LhX%%+_Tttu&z{M?SY_UN?t|Hqtk=FL=%IKe-)u1)I~zlnrLP{t zyI?l=<+BB~z#sAg+q8Mkb$ZtG;&88B79Tt3@rhoGB5iklF{)n6piwiQ_YAk*^cDMA z`hC}i&JWrSeUhhX)MonumgFJ(rTZnbJGIYxxYnJz`xSQAZnlhhGkw#c*$NLa4S8U` zkmGq?zqOsNFkEPf&q?>o`ddqKUAJJaPYn0juLu<%_UiS0nugXM?)X$a zd*RkU`id2F-T|ICzVJ?K9*_VIKe0q5fraLrBL+FVczgeu{HZ_i$mO?cvEEt7pTF#xfmlv)Qk9yw8qTZ>{eS z@7ht%P93#We&kKqq7T?AFVF|$bke5YF7qSOrXRBTG2?Hysf+!?ar#S3@7_GY<~P~; zyazD8abWoA)aF8TjVkH%4XEKKb#hX8vjx}w|3$FHtBa3Vp&AxiwZ%&DQCl!>(~o)S zZMxm3RvSCw^bVU&yg01#r)>7KYYXk?@MGK^gZ6-wAD7d%Ct7+0(rhpPzffh3(`P?2 zw@&;tTXcw*EBT?pe8gd%27Br0|85mHX%*|)?67HifH#^=q1D8rwNZ7=wJitI(w#B4 z#_#*s(B$lIOluTmA)LaJ~^gu5u?uHGv<^Pq#EIhm>v#$=Ra(7<8bp`2J!NwPd%PoWRmhO!i zbQ$0o6n@h3^f}Mo?VCSA{v(v#FKKO7X@>vUmYrXJNj_e#m%elv+-TD2d9ok$>2IL* z7?++W_uBl&tu1?R+j_pN(`CQ7+t0Q3XzlTqfuH1hAM6>WuUqpB{9>!mHssf`KJO>f z{WhPU;M-NC2R>l)Y2cn;8hG(d4Qq{8z&09ifZyMl4fqKbkk^z4x-JIl^B(A640MA{ zOKaF)T9`&!d?nD(Y^0BDpp9XS(MF_=ag4?njfQQ*X_Xe+LNU;h80dsmz1OJkD)5ac z-5gk`4K%8@5%D7x@Wwn~+y50K&Kqkn;Is|Q7wDL6a84WWEBIp7ZZa@E%r?iWJ;3`f zEk{=x=(-DQwI`)RL|be_&$EDhL;ef;<2GM#GgVYc!cFyrsm0%c0+oJL)Q%rv0bCHaHL%UM^jaP4^Zu=({ezJM@92{e>0rDfdhA>$Nkx zH=642vKBwoxJMCgJjX^3Lhp0y+1hO2y8JZxxW>cIYb~?<)Hi<${Hko-b@`?JpPw@@ zPgsL->y5F1;w4{KSZzO>dStfYy7>F41J~)N+K05|le6h_!h?qV+tQ)KYqjHIWAQN! zyI{Tf`F3Z1n{3`IvDezf-0O#n)->wO8h$*PnuoXb>Dido;qBkHUz5$^eWzv- z{Y8)Gm+b1>+WZH)=QaT!E4!+!!e47Eu5acWyz174j`!N*My1#3_xUpqo3G1<1`E$T zJaOxDzhgfz`H(%5@YwD`4UJzHc74sBNXWKXE3k(Oj-7o0T{dBbyx*Eb_oSt1ZMgo6 zz4l!F13s)_t^8K|$Mq-dZ`ja(w#qI9pBl#O)>_woE(Z^4-}sHplf%$%`7FX=?c~7^e`my5VbFe)=OjI@wtTt}UgL2W z%dPX9-q@|xud#nTb@@zzZ1h=st_wFC@P^sORBVWP4QCSX>hJpRU&kmL8?;N&^*{9= zg#CqG&z)q~bF)vY=;cQ{-eX@oOftFi2T3N4LwUcQZ(ddVX@yS=abWD3t$WB{(&&#W zg^_Lcuvlj!aNDLo7<5_avM=@wRqidH@lb1TS-cJGeMN8gOXC?;;~P^i%@5%7I=XCy z2DtD16C2>}iCm*T8lCEN*ll(G{H*t-`7=tVhmr4D$Fj1~m>YP}9<4q5+4e1S`(^Pk zW&Oh+=*v2dxEgg~t;WBBcI81FXkpby?BS&S?jj!zEwO9ymAh&su~r&U_AHL09@e(= z>+6nzM!kjA)~w!`G&7w(tZl51%4oOw^x(Cop)b%)Sy=13*V$@+AYss^`2z{zj;)

;O*dpesE5lX~{-de7F|erZp``nz}kARBq9 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 z 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 D-GYDu diff --git a/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Private/Commands/UnrealMCPBlueprintCommands.cpp b/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Private/Commands/UnrealMCPBlueprintCommands.cpp new file mode 100644 index 0000000..de50bb0 --- /dev/null +++ b/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Private/Commands/UnrealMCPBlueprintCommands.cpp @@ -0,0 +1,1160 @@ +#include "Commands/UnrealMCPBlueprintCommands.h" +#include "Commands/UnrealMCPCommonUtils.h" +#include "Engine/Blueprint.h" +#include "Engine/BlueprintGeneratedClass.h" +#include "Factories/BlueprintFactory.h" +#include "EdGraphSchema_K2.h" +#include "K2Node_Event.h" +#include "K2Node_VariableGet.h" +#include "K2Node_VariableSet.h" +#include "Components/StaticMeshComponent.h" +#include "Components/BoxComponent.h" +#include "Components/SphereComponent.h" +#include "Kismet2/BlueprintEditorUtils.h" +#include "Kismet2/KismetEditorUtilities.h" +#include "Engine/SimpleConstructionScript.h" +#include "Engine/SCS_Node.h" +#include "UObject/Field.h" +#include "UObject/FieldPath.h" +#include "EditorAssetLibrary.h" +#include "AssetRegistry/AssetRegistryModule.h" +#include "GameFramework/Actor.h" +#include "GameFramework/Pawn.h" + +FUnrealMCPBlueprintCommands::FUnrealMCPBlueprintCommands() +{ +} + +TSharedPtr FUnrealMCPBlueprintCommands::HandleCommand(const FString& CommandType, const TSharedPtr& Params) +{ + if (CommandType == TEXT("create_blueprint")) + { + return HandleCreateBlueprint(Params); + } + else if (CommandType == TEXT("add_component_to_blueprint")) + { + return HandleAddComponentToBlueprint(Params); + } + else if (CommandType == TEXT("set_component_property")) + { + return HandleSetComponentProperty(Params); + } + else if (CommandType == TEXT("set_physics_properties")) + { + return HandleSetPhysicsProperties(Params); + } + else if (CommandType == TEXT("compile_blueprint")) + { + return HandleCompileBlueprint(Params); + } + else if (CommandType == TEXT("spawn_blueprint_actor")) + { + return HandleSpawnBlueprintActor(Params); + } + else if (CommandType == TEXT("set_blueprint_property")) + { + return HandleSetBlueprintProperty(Params); + } + else if (CommandType == TEXT("set_static_mesh_properties")) + { + return HandleSetStaticMeshProperties(Params); + } + else if (CommandType == TEXT("set_pawn_properties")) + { + return HandleSetPawnProperties(Params); + } + + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Unknown blueprint command: %s"), *CommandType)); +} + +TSharedPtr FUnrealMCPBlueprintCommands::HandleCreateBlueprint(const TSharedPtr& Params) +{ + // Get required parameters + FString BlueprintName; + if (!Params->TryGetStringField(TEXT("name"), BlueprintName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'name' parameter")); + } + + // Check if blueprint already exists + FString PackagePath = TEXT("/Game/Blueprints/"); + FString AssetName = BlueprintName; + if (UEditorAssetLibrary::DoesAssetExist(PackagePath + AssetName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Blueprint already exists: %s"), *BlueprintName)); + } + + // Create the blueprint factory + UBlueprintFactory* Factory = NewObject(); + + // Handle parent class + FString ParentClass; + Params->TryGetStringField(TEXT("parent_class"), ParentClass); + + // Default to Actor if no parent class specified + UClass* SelectedParentClass = AActor::StaticClass(); + + // Try to find the specified parent class + if (!ParentClass.IsEmpty()) + { + FString ClassName = ParentClass; + if (!ClassName.StartsWith(TEXT("A"))) + { + ClassName = TEXT("A") + ClassName; + } + + // First try direct StaticClass lookup for common classes + UClass* FoundClass = nullptr; + if (ClassName == TEXT("APawn")) + { + FoundClass = APawn::StaticClass(); + } + else if (ClassName == TEXT("AActor")) + { + FoundClass = AActor::StaticClass(); + } + else + { + // Try loading the class using LoadClass which is more reliable than FindObject + const FString ClassPath = FString::Printf(TEXT("/Script/Engine.%s"), *ClassName); + FoundClass = LoadClass(nullptr, *ClassPath); + + if (!FoundClass) + { + // Try alternate paths if not found + const FString GameClassPath = FString::Printf(TEXT("/Script/Game.%s"), *ClassName); + FoundClass = LoadClass(nullptr, *GameClassPath); + } + } + + if (FoundClass) + { + SelectedParentClass = FoundClass; + UE_LOG(LogTemp, Log, TEXT("Successfully set parent class to '%s'"), *ClassName); + } + else + { + UE_LOG(LogTemp, Warning, TEXT("Could not find specified parent class '%s' at paths: /Script/Engine.%s or /Script/Game.%s, defaulting to AActor"), + *ClassName, *ClassName, *ClassName); + } + } + + Factory->ParentClass = SelectedParentClass; + + // Create the blueprint + UPackage* Package = CreatePackage(*(PackagePath + AssetName)); + UBlueprint* NewBlueprint = Cast(Factory->FactoryCreateNew(UBlueprint::StaticClass(), Package, *AssetName, RF_Standalone | RF_Public, nullptr, GWarn)); + + if (NewBlueprint) + { + // Notify the asset registry + FAssetRegistryModule::AssetCreated(NewBlueprint); + + // Mark the package dirty + Package->MarkPackageDirty(); + + TSharedPtr ResultObj = MakeShared(); + ResultObj->SetStringField(TEXT("name"), AssetName); + ResultObj->SetStringField(TEXT("path"), PackagePath + AssetName); + return ResultObj; + } + + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Failed to create blueprint")); +} + +TSharedPtr FUnrealMCPBlueprintCommands::HandleAddComponentToBlueprint(const TSharedPtr& Params) +{ + // Get required parameters + FString BlueprintName; + if (!Params->TryGetStringField(TEXT("blueprint_name"), BlueprintName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'blueprint_name' parameter")); + } + + FString ComponentType; + if (!Params->TryGetStringField(TEXT("component_type"), ComponentType)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'type' parameter")); + } + + FString ComponentName; + if (!Params->TryGetStringField(TEXT("component_name"), ComponentName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'name' parameter")); + } + + // Find the blueprint + UBlueprint* Blueprint = FUnrealMCPCommonUtils::FindBlueprint(BlueprintName); + if (!Blueprint) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Blueprint not found: %s"), *BlueprintName)); + } + + // Create the component - dynamically find the component class by name + UClass* ComponentClass = nullptr; + + // Try to find the class with exact name first + ComponentClass = FindObject(ANY_PACKAGE, *ComponentType); + + // If not found, try with "Component" suffix + if (!ComponentClass && !ComponentType.EndsWith(TEXT("Component"))) + { + FString ComponentTypeWithSuffix = ComponentType + TEXT("Component"); + ComponentClass = FindObject(ANY_PACKAGE, *ComponentTypeWithSuffix); + } + + // If still not found, try with "U" prefix + if (!ComponentClass && !ComponentType.StartsWith(TEXT("U"))) + { + FString ComponentTypeWithPrefix = TEXT("U") + ComponentType; + ComponentClass = FindObject(ANY_PACKAGE, *ComponentTypeWithPrefix); + + // Try with both prefix and suffix + if (!ComponentClass && !ComponentType.EndsWith(TEXT("Component"))) + { + FString ComponentTypeWithBoth = TEXT("U") + ComponentType + TEXT("Component"); + ComponentClass = FindObject(ANY_PACKAGE, *ComponentTypeWithBoth); + } + } + + // Verify that the class is a valid component type + if (!ComponentClass || !ComponentClass->IsChildOf(UActorComponent::StaticClass())) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Unknown component type: %s"), *ComponentType)); + } + + // Add the component to the blueprint + USCS_Node* NewNode = Blueprint->SimpleConstructionScript->CreateNode(ComponentClass, *ComponentName); + if (NewNode) + { + // Set transform if provided + USceneComponent* SceneComponent = Cast(NewNode->ComponentTemplate); + if (SceneComponent) + { + if (Params->HasField(TEXT("location"))) + { + SceneComponent->SetRelativeLocation(FUnrealMCPCommonUtils::GetVectorFromJson(Params, TEXT("location"))); + } + if (Params->HasField(TEXT("rotation"))) + { + SceneComponent->SetRelativeRotation(FUnrealMCPCommonUtils::GetRotatorFromJson(Params, TEXT("rotation"))); + } + if (Params->HasField(TEXT("scale"))) + { + SceneComponent->SetRelativeScale3D(FUnrealMCPCommonUtils::GetVectorFromJson(Params, TEXT("scale"))); + } + } + + // Add to root if no parent specified + Blueprint->SimpleConstructionScript->AddNode(NewNode); + + // Compile the blueprint + FKismetEditorUtilities::CompileBlueprint(Blueprint); + + TSharedPtr ResultObj = MakeShared(); + ResultObj->SetStringField(TEXT("component_name"), ComponentName); + ResultObj->SetStringField(TEXT("component_type"), ComponentType); + return ResultObj; + } + + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Failed to add component to blueprint")); +} + +TSharedPtr FUnrealMCPBlueprintCommands::HandleSetComponentProperty(const TSharedPtr& Params) +{ + // Get required parameters + FString BlueprintName; + if (!Params->TryGetStringField(TEXT("blueprint_name"), BlueprintName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'blueprint_name' parameter")); + } + + FString ComponentName; + if (!Params->TryGetStringField(TEXT("component_name"), ComponentName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'component_name' parameter")); + } + + FString PropertyName; + if (!Params->TryGetStringField(TEXT("property_name"), PropertyName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'property_name' parameter")); + } + + // Log all input parameters for debugging + UE_LOG(LogTemp, Warning, TEXT("SetComponentProperty - Blueprint: %s, Component: %s, Property: %s"), + *BlueprintName, *ComponentName, *PropertyName); + + // Log property_value if available + if (Params->HasField(TEXT("property_value"))) + { + TSharedPtr JsonValue = Params->Values.FindRef(TEXT("property_value")); + FString ValueType; + + switch(JsonValue->Type) + { + case EJson::Boolean: ValueType = FString::Printf(TEXT("Boolean: %s"), JsonValue->AsBool() ? TEXT("true") : TEXT("false")); break; + case EJson::Number: ValueType = FString::Printf(TEXT("Number: %f"), JsonValue->AsNumber()); break; + case EJson::String: ValueType = FString::Printf(TEXT("String: %s"), *JsonValue->AsString()); break; + case EJson::Array: ValueType = TEXT("Array"); break; + case EJson::Object: ValueType = TEXT("Object"); break; + default: ValueType = TEXT("Unknown"); break; + } + + UE_LOG(LogTemp, Warning, TEXT("SetComponentProperty - Value Type: %s"), *ValueType); + } + else + { + UE_LOG(LogTemp, Warning, TEXT("SetComponentProperty - No property_value provided")); + } + + // Find the blueprint + UBlueprint* Blueprint = FUnrealMCPCommonUtils::FindBlueprint(BlueprintName); + if (!Blueprint) + { + UE_LOG(LogTemp, Error, TEXT("SetComponentProperty - Blueprint not found: %s"), *BlueprintName); + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Blueprint not found: %s"), *BlueprintName)); + } + else + { + UE_LOG(LogTemp, Log, TEXT("SetComponentProperty - Blueprint found: %s (Class: %s)"), + *BlueprintName, + Blueprint->GeneratedClass ? *Blueprint->GeneratedClass->GetName() : TEXT("NULL")); + } + + // Find the component + USCS_Node* ComponentNode = nullptr; + UE_LOG(LogTemp, Log, TEXT("SetComponentProperty - Searching for component %s in blueprint nodes"), *ComponentName); + + if (!Blueprint->SimpleConstructionScript) + { + UE_LOG(LogTemp, Error, TEXT("SetComponentProperty - SimpleConstructionScript is NULL for blueprint %s"), *BlueprintName); + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Invalid blueprint construction script")); + } + + for (USCS_Node* Node : Blueprint->SimpleConstructionScript->GetAllNodes()) + { + if (Node) + { + UE_LOG(LogTemp, Verbose, TEXT("SetComponentProperty - Found node: %s"), *Node->GetVariableName().ToString()); + if (Node->GetVariableName().ToString() == ComponentName) + { + ComponentNode = Node; + break; + } + } + else + { + UE_LOG(LogTemp, Warning, TEXT("SetComponentProperty - Found NULL node in blueprint")); + } + } + + if (!ComponentNode) + { + UE_LOG(LogTemp, Error, TEXT("SetComponentProperty - Component not found: %s"), *ComponentName); + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Component not found: %s"), *ComponentName)); + } + else + { + UE_LOG(LogTemp, Log, TEXT("SetComponentProperty - Component found: %s (Class: %s)"), + *ComponentName, + ComponentNode->ComponentTemplate ? *ComponentNode->ComponentTemplate->GetClass()->GetName() : TEXT("NULL")); + } + + // Get the component template + UObject* ComponentTemplate = ComponentNode->ComponentTemplate; + if (!ComponentTemplate) + { + UE_LOG(LogTemp, Error, TEXT("SetComponentProperty - Component template is NULL for %s"), *ComponentName); + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Invalid component template")); + } + + // Check if this is a Spring Arm component and log special debug info + if (ComponentTemplate->GetClass()->GetName().Contains(TEXT("SpringArm"))) + { + UE_LOG(LogTemp, Warning, TEXT("SetComponentProperty - SpringArm component detected! Class: %s"), + *ComponentTemplate->GetClass()->GetPathName()); + + // Log all properties of the SpringArm component class + UE_LOG(LogTemp, Warning, TEXT("SetComponentProperty - SpringArm properties:")); + for (TFieldIterator PropIt(ComponentTemplate->GetClass()); PropIt; ++PropIt) + { + FProperty* Prop = *PropIt; + UE_LOG(LogTemp, Warning, TEXT(" - %s (%s)"), *Prop->GetName(), *Prop->GetCPPType()); + } + + // Special handling for Spring Arm properties + if (Params->HasField(TEXT("property_value"))) + { + TSharedPtr JsonValue = Params->Values.FindRef(TEXT("property_value")); + + // Get the property using the new FField system + FProperty* Property = FindFProperty(ComponentTemplate->GetClass(), *PropertyName); + if (!Property) + { + UE_LOG(LogTemp, Error, TEXT("SetComponentProperty - Property %s not found on SpringArm component"), *PropertyName); + return FUnrealMCPCommonUtils::CreateErrorResponse( + FString::Printf(TEXT("Property %s not found on SpringArm component"), *PropertyName)); + } + + // Create a scope guard to ensure property cleanup + struct FScopeGuard + { + UObject* Object; + FScopeGuard(UObject* InObject) : Object(InObject) + { + if (Object) + { + Object->Modify(); + } + } + ~FScopeGuard() + { + if (Object) + { + Object->PostEditChange(); + } + } + } ScopeGuard(ComponentTemplate); + + bool bSuccess = false; + FString ErrorMessage; + + // Handle specific Spring Arm property types + if (FFloatProperty* FloatProp = CastField(Property)) + { + if (JsonValue->Type == EJson::Number) + { + const float Value = JsonValue->AsNumber(); + UE_LOG(LogTemp, Log, TEXT("SetComponentProperty - Setting float property %s to %f"), *PropertyName, Value); + FloatProp->SetPropertyValue_InContainer(ComponentTemplate, Value); + bSuccess = true; + } + } + else if (FBoolProperty* BoolProp = CastField(Property)) + { + if (JsonValue->Type == EJson::Boolean) + { + const bool Value = JsonValue->AsBool(); + UE_LOG(LogTemp, Log, TEXT("SetComponentProperty - Setting bool property %s to %d"), *PropertyName, Value); + BoolProp->SetPropertyValue_InContainer(ComponentTemplate, Value); + bSuccess = true; + } + } + else if (FStructProperty* StructProp = CastField(Property)) + { + UE_LOG(LogTemp, Log, TEXT("SetComponentProperty - Handling struct property %s of type %s"), + *PropertyName, *StructProp->Struct->GetName()); + + // Special handling for common Spring Arm struct properties + if (StructProp->Struct == TBaseStructure::Get()) + { + if (JsonValue->Type == EJson::Array) + { + const TArray>& Arr = JsonValue->AsArray(); + if (Arr.Num() == 3) + { + FVector Vec( + Arr[0]->AsNumber(), + Arr[1]->AsNumber(), + Arr[2]->AsNumber() + ); + void* PropertyAddr = StructProp->ContainerPtrToValuePtr(ComponentTemplate); + StructProp->CopySingleValue(PropertyAddr, &Vec); + bSuccess = true; + } + } + } + else if (StructProp->Struct == TBaseStructure::Get()) + { + if (JsonValue->Type == EJson::Array) + { + const TArray>& Arr = JsonValue->AsArray(); + if (Arr.Num() == 3) + { + FRotator Rot( + Arr[0]->AsNumber(), + Arr[1]->AsNumber(), + Arr[2]->AsNumber() + ); + void* PropertyAddr = StructProp->ContainerPtrToValuePtr(ComponentTemplate); + StructProp->CopySingleValue(PropertyAddr, &Rot); + bSuccess = true; + } + } + } + } + + if (bSuccess) + { + // Mark the blueprint as modified + UE_LOG(LogTemp, Log, TEXT("SetComponentProperty - Successfully set SpringArm property %s"), *PropertyName); + FBlueprintEditorUtils::MarkBlueprintAsModified(Blueprint); + + TSharedPtr ResultObj = MakeShared(); + ResultObj->SetStringField(TEXT("component"), ComponentName); + ResultObj->SetStringField(TEXT("property"), PropertyName); + ResultObj->SetBoolField(TEXT("success"), true); + return ResultObj; + } + else + { + UE_LOG(LogTemp, Error, TEXT("SetComponentProperty - Failed to set SpringArm property %s"), *PropertyName); + return FUnrealMCPCommonUtils::CreateErrorResponse( + FString::Printf(TEXT("Failed to set SpringArm property %s"), *PropertyName)); + } + } + } + + // Regular property handling for non-Spring Arm components continues... + + // Set the property value + if (Params->HasField(TEXT("property_value"))) + { + TSharedPtr JsonValue = Params->Values.FindRef(TEXT("property_value")); + + // Get the property + FProperty* Property = FindFProperty(ComponentTemplate->GetClass(), *PropertyName); + if (!Property) + { + UE_LOG(LogTemp, Error, TEXT("SetComponentProperty - Property %s not found on component %s"), + *PropertyName, *ComponentName); + + // List all available properties for this component + UE_LOG(LogTemp, Warning, TEXT("SetComponentProperty - Available properties for %s:"), *ComponentName); + for (TFieldIterator PropIt(ComponentTemplate->GetClass()); PropIt; ++PropIt) + { + FProperty* Prop = *PropIt; + UE_LOG(LogTemp, Warning, TEXT(" - %s (%s)"), *Prop->GetName(), *Prop->GetCPPType()); + } + + return FUnrealMCPCommonUtils::CreateErrorResponse( + FString::Printf(TEXT("Property %s not found on component %s"), *PropertyName, *ComponentName)); + } + else + { + UE_LOG(LogTemp, Log, TEXT("SetComponentProperty - Property found: %s (Type: %s)"), + *PropertyName, *Property->GetCPPType()); + } + + bool bSuccess = false; + FString ErrorMessage; + + // Handle different property types + UE_LOG(LogTemp, Log, TEXT("SetComponentProperty - Attempting to set property %s"), *PropertyName); + + // Add try-catch block to catch and log any crashes + try + { + if (FStructProperty* StructProp = CastField(Property)) + { + // Handle vector properties + UE_LOG(LogTemp, Log, TEXT("SetComponentProperty - Property is a struct: %s"), + StructProp->Struct ? *StructProp->Struct->GetName() : TEXT("NULL")); + + if (StructProp->Struct == TBaseStructure::Get()) + { + if (JsonValue->Type == EJson::Array) + { + // Handle array input [x, y, z] + const TArray>& Arr = JsonValue->AsArray(); + if (Arr.Num() == 3) + { + FVector Vec( + Arr[0]->AsNumber(), + Arr[1]->AsNumber(), + Arr[2]->AsNumber() + ); + void* PropertyAddr = StructProp->ContainerPtrToValuePtr(ComponentTemplate); + UE_LOG(LogTemp, Log, TEXT("SetComponentProperty - Setting Vector(%f, %f, %f)"), + Vec.X, Vec.Y, Vec.Z); + StructProp->CopySingleValue(PropertyAddr, &Vec); + bSuccess = true; + } + else + { + ErrorMessage = FString::Printf(TEXT("Vector property requires 3 values, got %d"), Arr.Num()); + UE_LOG(LogTemp, Error, TEXT("SetComponentProperty - %s"), *ErrorMessage); + } + } + else if (JsonValue->Type == EJson::Number) + { + // Handle scalar input (sets all components to same value) + float Value = JsonValue->AsNumber(); + FVector Vec(Value, Value, Value); + void* PropertyAddr = StructProp->ContainerPtrToValuePtr(ComponentTemplate); + UE_LOG(LogTemp, Log, TEXT("SetComponentProperty - Setting Vector(%f, %f, %f) from scalar"), + Vec.X, Vec.Y, Vec.Z); + StructProp->CopySingleValue(PropertyAddr, &Vec); + bSuccess = true; + } + else + { + ErrorMessage = TEXT("Vector property requires either a single number or array of 3 numbers"); + UE_LOG(LogTemp, Error, TEXT("SetComponentProperty - %s"), *ErrorMessage); + } + } + else + { + // Handle other struct properties using default handler + UE_LOG(LogTemp, Log, TEXT("SetComponentProperty - Using generic struct handler for %s"), + *PropertyName); + bSuccess = FUnrealMCPCommonUtils::SetObjectProperty(ComponentTemplate, PropertyName, JsonValue, ErrorMessage); + if (!bSuccess) + { + UE_LOG(LogTemp, Error, TEXT("SetComponentProperty - Failed to set struct property: %s"), *ErrorMessage); + } + } + } + else if (FEnumProperty* EnumProp = CastField(Property)) + { + // Handle enum properties + UE_LOG(LogTemp, Log, TEXT("SetComponentProperty - Property is an enum")); + if (JsonValue->Type == EJson::String) + { + FString EnumValueName = JsonValue->AsString(); + UEnum* Enum = EnumProp->GetEnum(); + UE_LOG(LogTemp, Log, TEXT("SetComponentProperty - Setting enum from string: %s"), *EnumValueName); + + if (Enum) + { + int64 EnumValue = Enum->GetValueByNameString(EnumValueName); + + if (EnumValue != INDEX_NONE) + { + UE_LOG(LogTemp, Log, TEXT("SetComponentProperty - Found enum value: %lld"), EnumValue); + EnumProp->GetUnderlyingProperty()->SetIntPropertyValue( + ComponentTemplate, + EnumValue + ); + bSuccess = true; + } + else + { + // List all possible enum values + UE_LOG(LogTemp, Warning, TEXT("SetComponentProperty - Available enum values for %s:"), + *Enum->GetName()); + for (int32 i = 0; i < Enum->NumEnums(); i++) + { + UE_LOG(LogTemp, Warning, TEXT(" - %s (%lld)"), + *Enum->GetNameStringByIndex(i), + Enum->GetValueByIndex(i)); + } + + ErrorMessage = FString::Printf(TEXT("Invalid enum value '%s' for property %s"), + *EnumValueName, *PropertyName); + UE_LOG(LogTemp, Error, TEXT("SetComponentProperty - %s"), *ErrorMessage); + } + } + else + { + ErrorMessage = TEXT("Enum object is NULL"); + UE_LOG(LogTemp, Error, TEXT("SetComponentProperty - %s"), *ErrorMessage); + } + } + else if (JsonValue->Type == EJson::Number) + { + // Allow setting enum by integer value + int64 EnumValue = JsonValue->AsNumber(); + UE_LOG(LogTemp, Log, TEXT("SetComponentProperty - Setting enum from number: %lld"), EnumValue); + EnumProp->GetUnderlyingProperty()->SetIntPropertyValue( + ComponentTemplate, + EnumValue + ); + bSuccess = true; + } + else + { + ErrorMessage = TEXT("Enum property requires either a string name or integer value"); + UE_LOG(LogTemp, Error, TEXT("SetComponentProperty - %s"), *ErrorMessage); + } + } + else if (FNumericProperty* NumericProp = CastField(Property)) + { + // Handle numeric properties + UE_LOG(LogTemp, Log, TEXT("SetComponentProperty - Property is numeric: IsInteger=%d, IsFloat=%d"), + NumericProp->IsInteger(), NumericProp->IsFloatingPoint()); + + if (JsonValue->Type == EJson::Number) + { + double Value = JsonValue->AsNumber(); + UE_LOG(LogTemp, Log, TEXT("SetComponentProperty - Setting numeric value: %f"), Value); + + if (NumericProp->IsInteger()) + { + NumericProp->SetIntPropertyValue(ComponentTemplate, (int64)Value); + UE_LOG(LogTemp, Log, TEXT("SetComponentProperty - Set integer value: %lld"), (int64)Value); + bSuccess = true; + } + else if (NumericProp->IsFloatingPoint()) + { + NumericProp->SetFloatingPointPropertyValue(ComponentTemplate, Value); + UE_LOG(LogTemp, Log, TEXT("SetComponentProperty - Set float value: %f"), Value); + bSuccess = true; + } + } + else + { + ErrorMessage = TEXT("Numeric property requires a number value"); + UE_LOG(LogTemp, Error, TEXT("SetComponentProperty - %s"), *ErrorMessage); + } + } + else + { + // Handle all other property types using default handler + UE_LOG(LogTemp, Log, TEXT("SetComponentProperty - Using generic property handler for %s (Type: %s)"), + *PropertyName, *Property->GetCPPType()); + bSuccess = FUnrealMCPCommonUtils::SetObjectProperty(ComponentTemplate, PropertyName, JsonValue, ErrorMessage); + if (!bSuccess) + { + UE_LOG(LogTemp, Error, TEXT("SetComponentProperty - Failed to set property: %s"), *ErrorMessage); + } + } + } + catch (const std::exception& Ex) + { + UE_LOG(LogTemp, Error, TEXT("SetComponentProperty - EXCEPTION: %s"), ANSI_TO_TCHAR(Ex.what())); + return FUnrealMCPCommonUtils::CreateErrorResponse( + FString::Printf(TEXT("Exception while setting property %s: %s"), *PropertyName, ANSI_TO_TCHAR(Ex.what()))); + } + catch (...) + { + UE_LOG(LogTemp, Error, TEXT("SetComponentProperty - UNKNOWN EXCEPTION occurred while setting property %s"), *PropertyName); + return FUnrealMCPCommonUtils::CreateErrorResponse( + FString::Printf(TEXT("Unknown exception while setting property %s"), *PropertyName)); + } + + if (bSuccess) + { + // Mark the blueprint as modified + UE_LOG(LogTemp, Log, TEXT("SetComponentProperty - Successfully set property %s on component %s"), + *PropertyName, *ComponentName); + FBlueprintEditorUtils::MarkBlueprintAsModified(Blueprint); + + TSharedPtr ResultObj = MakeShared(); + ResultObj->SetStringField(TEXT("component"), ComponentName); + ResultObj->SetStringField(TEXT("property"), PropertyName); + ResultObj->SetBoolField(TEXT("success"), true); + return ResultObj; + } + else + { + UE_LOG(LogTemp, Error, TEXT("SetComponentProperty - Failed to set property %s: %s"), + *PropertyName, *ErrorMessage); + return FUnrealMCPCommonUtils::CreateErrorResponse(ErrorMessage); + } + } + + UE_LOG(LogTemp, Error, TEXT("SetComponentProperty - Missing 'property_value' parameter")); + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'property_value' parameter")); +} + +TSharedPtr FUnrealMCPBlueprintCommands::HandleSetPhysicsProperties(const TSharedPtr& Params) +{ + // Get required parameters + FString BlueprintName; + if (!Params->TryGetStringField(TEXT("blueprint_name"), BlueprintName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'blueprint_name' parameter")); + } + + FString ComponentName; + if (!Params->TryGetStringField(TEXT("component_name"), ComponentName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'component_name' parameter")); + } + + // Find the blueprint + UBlueprint* Blueprint = FUnrealMCPCommonUtils::FindBlueprint(BlueprintName); + if (!Blueprint) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Blueprint not found: %s"), *BlueprintName)); + } + + // Find the component + USCS_Node* ComponentNode = nullptr; + for (USCS_Node* Node : Blueprint->SimpleConstructionScript->GetAllNodes()) + { + if (Node && Node->GetVariableName().ToString() == ComponentName) + { + ComponentNode = Node; + break; + } + } + + if (!ComponentNode) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Component not found: %s"), *ComponentName)); + } + + UPrimitiveComponent* PrimComponent = Cast(ComponentNode->ComponentTemplate); + if (!PrimComponent) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Component is not a primitive component")); + } + + // Set physics properties + if (Params->HasField(TEXT("simulate_physics"))) + { + PrimComponent->SetSimulatePhysics(Params->GetBoolField(TEXT("simulate_physics"))); + } + + if (Params->HasField(TEXT("mass"))) + { + float Mass = Params->GetNumberField(TEXT("mass")); + // In UE5.5, use proper overrideMass instead of just scaling + PrimComponent->SetMassOverrideInKg(NAME_None, Mass); + UE_LOG(LogTemp, Display, TEXT("Set mass for component %s to %f kg"), *ComponentName, Mass); + } + + if (Params->HasField(TEXT("linear_damping"))) + { + PrimComponent->SetLinearDamping(Params->GetNumberField(TEXT("linear_damping"))); + } + + if (Params->HasField(TEXT("angular_damping"))) + { + PrimComponent->SetAngularDamping(Params->GetNumberField(TEXT("angular_damping"))); + } + + // Mark the blueprint as modified + FBlueprintEditorUtils::MarkBlueprintAsModified(Blueprint); + + TSharedPtr ResultObj = MakeShared(); + ResultObj->SetStringField(TEXT("component"), ComponentName); + return ResultObj; +} + +TSharedPtr FUnrealMCPBlueprintCommands::HandleCompileBlueprint(const TSharedPtr& Params) +{ + // Get required parameters + FString BlueprintName; + if (!Params->TryGetStringField(TEXT("blueprint_name"), BlueprintName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'blueprint_name' parameter")); + } + + // Find the blueprint + UBlueprint* Blueprint = FUnrealMCPCommonUtils::FindBlueprint(BlueprintName); + if (!Blueprint) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Blueprint not found: %s"), *BlueprintName)); + } + + // Compile the blueprint + FKismetEditorUtilities::CompileBlueprint(Blueprint); + + TSharedPtr ResultObj = MakeShared(); + ResultObj->SetStringField(TEXT("name"), BlueprintName); + ResultObj->SetBoolField(TEXT("compiled"), true); + return ResultObj; +} + +TSharedPtr FUnrealMCPBlueprintCommands::HandleSpawnBlueprintActor(const TSharedPtr& Params) +{ + // Get required parameters + FString BlueprintName; + if (!Params->TryGetStringField(TEXT("blueprint_name"), BlueprintName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'blueprint_name' parameter")); + } + + FString ActorName; + if (!Params->TryGetStringField(TEXT("actor_name"), ActorName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'actor_name' parameter")); + } + + // Find the blueprint + UBlueprint* Blueprint = FUnrealMCPCommonUtils::FindBlueprint(BlueprintName); + if (!Blueprint) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Blueprint not found: %s"), *BlueprintName)); + } + + // Get transform parameters + FVector Location(0.0f, 0.0f, 0.0f); + FRotator Rotation(0.0f, 0.0f, 0.0f); + + if (Params->HasField(TEXT("location"))) + { + Location = FUnrealMCPCommonUtils::GetVectorFromJson(Params, TEXT("location")); + } + if (Params->HasField(TEXT("rotation"))) + { + Rotation = FUnrealMCPCommonUtils::GetRotatorFromJson(Params, TEXT("rotation")); + } + + // Spawn the actor + UWorld* World = GEditor->GetEditorWorldContext().World(); + if (!World) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Failed to get editor world")); + } + + FTransform SpawnTransform; + SpawnTransform.SetLocation(Location); + SpawnTransform.SetRotation(FQuat(Rotation)); + + AActor* NewActor = World->SpawnActor(Blueprint->GeneratedClass, SpawnTransform); + if (NewActor) + { + NewActor->SetActorLabel(*ActorName); + return FUnrealMCPCommonUtils::ActorToJsonObject(NewActor, true); + } + + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Failed to spawn blueprint actor")); +} + +TSharedPtr FUnrealMCPBlueprintCommands::HandleSetBlueprintProperty(const TSharedPtr& Params) +{ + // Get required parameters + FString BlueprintName; + if (!Params->TryGetStringField(TEXT("blueprint_name"), BlueprintName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'blueprint_name' parameter")); + } + + FString PropertyName; + if (!Params->TryGetStringField(TEXT("property_name"), PropertyName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'property_name' parameter")); + } + + // Find the blueprint + UBlueprint* Blueprint = FUnrealMCPCommonUtils::FindBlueprint(BlueprintName); + if (!Blueprint) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Blueprint not found: %s"), *BlueprintName)); + } + + // Get the default object + UObject* DefaultObject = Blueprint->GeneratedClass->GetDefaultObject(); + if (!DefaultObject) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Failed to get default object")); + } + + // Set the property value + if (Params->HasField(TEXT("property_value"))) + { + TSharedPtr JsonValue = Params->Values.FindRef(TEXT("property_value")); + + FString ErrorMessage; + if (FUnrealMCPCommonUtils::SetObjectProperty(DefaultObject, PropertyName, JsonValue, ErrorMessage)) + { + // Mark the blueprint as modified + FBlueprintEditorUtils::MarkBlueprintAsModified(Blueprint); + + TSharedPtr ResultObj = MakeShared(); + ResultObj->SetStringField(TEXT("property"), PropertyName); + ResultObj->SetBoolField(TEXT("success"), true); + return ResultObj; + } + else + { + return FUnrealMCPCommonUtils::CreateErrorResponse(ErrorMessage); + } + } + + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'property_value' parameter")); +} + +TSharedPtr FUnrealMCPBlueprintCommands::HandleSetStaticMeshProperties(const TSharedPtr& Params) +{ + // Get required parameters + FString BlueprintName; + if (!Params->TryGetStringField(TEXT("blueprint_name"), BlueprintName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'blueprint_name' parameter")); + } + + FString ComponentName; + if (!Params->TryGetStringField(TEXT("component_name"), ComponentName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'component_name' parameter")); + } + + // Find the blueprint + UBlueprint* Blueprint = FUnrealMCPCommonUtils::FindBlueprint(BlueprintName); + if (!Blueprint) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Blueprint not found: %s"), *BlueprintName)); + } + + // Find the component + USCS_Node* ComponentNode = nullptr; + for (USCS_Node* Node : Blueprint->SimpleConstructionScript->GetAllNodes()) + { + if (Node && Node->GetVariableName().ToString() == ComponentName) + { + ComponentNode = Node; + break; + } + } + + if (!ComponentNode) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Component not found: %s"), *ComponentName)); + } + + UStaticMeshComponent* MeshComponent = Cast(ComponentNode->ComponentTemplate); + if (!MeshComponent) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Component is not a static mesh component")); + } + + // Set static mesh properties + if (Params->HasField(TEXT("static_mesh"))) + { + FString MeshPath = Params->GetStringField(TEXT("static_mesh")); + UStaticMesh* Mesh = Cast(UEditorAssetLibrary::LoadAsset(MeshPath)); + if (Mesh) + { + MeshComponent->SetStaticMesh(Mesh); + } + } + + if (Params->HasField(TEXT("material"))) + { + FString MaterialPath = Params->GetStringField(TEXT("material")); + UMaterialInterface* Material = Cast(UEditorAssetLibrary::LoadAsset(MaterialPath)); + if (Material) + { + MeshComponent->SetMaterial(0, Material); + } + } + + // Mark the blueprint as modified + FBlueprintEditorUtils::MarkBlueprintAsModified(Blueprint); + + TSharedPtr ResultObj = MakeShared(); + ResultObj->SetStringField(TEXT("component"), ComponentName); + return ResultObj; +} + +TSharedPtr FUnrealMCPBlueprintCommands::HandleSetPawnProperties(const TSharedPtr& Params) +{ + // Get required parameters + FString BlueprintName; + if (!Params->TryGetStringField(TEXT("blueprint_name"), BlueprintName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'blueprint_name' parameter")); + } + + // Find the blueprint + UBlueprint* Blueprint = FUnrealMCPCommonUtils::FindBlueprint(BlueprintName); + if (!Blueprint) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Blueprint not found: %s"), *BlueprintName)); + } + + // Get the default object + UObject* DefaultObject = Blueprint->GeneratedClass->GetDefaultObject(); + if (!DefaultObject) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Failed to get default object")); + } + + // Track if any properties were set successfully + bool bAnyPropertiesSet = false; + TSharedPtr ResultsObj = MakeShared(); + + // Set auto possess player if specified + if (Params->HasField(TEXT("auto_possess_player"))) + { + TSharedPtr AutoPossessValue = Params->Values.FindRef(TEXT("auto_possess_player")); + + FString ErrorMessage; + if (FUnrealMCPCommonUtils::SetObjectProperty(DefaultObject, TEXT("AutoPossessPlayer"), AutoPossessValue, ErrorMessage)) + { + bAnyPropertiesSet = true; + TSharedPtr PropResultObj = MakeShared(); + PropResultObj->SetBoolField(TEXT("success"), true); + ResultsObj->SetObjectField(TEXT("AutoPossessPlayer"), PropResultObj); + } + else + { + TSharedPtr PropResultObj = MakeShared(); + PropResultObj->SetBoolField(TEXT("success"), false); + PropResultObj->SetStringField(TEXT("error"), ErrorMessage); + ResultsObj->SetObjectField(TEXT("AutoPossessPlayer"), PropResultObj); + } + } + + // Set controller rotation properties + const TCHAR* RotationProps[] = { + TEXT("bUseControllerRotationYaw"), + TEXT("bUseControllerRotationPitch"), + TEXT("bUseControllerRotationRoll") + }; + + const TCHAR* ParamNames[] = { + TEXT("use_controller_rotation_yaw"), + TEXT("use_controller_rotation_pitch"), + TEXT("use_controller_rotation_roll") + }; + + for (int32 i = 0; i < 3; i++) + { + if (Params->HasField(ParamNames[i])) + { + TSharedPtr Value = Params->Values.FindRef(ParamNames[i]); + + FString ErrorMessage; + if (FUnrealMCPCommonUtils::SetObjectProperty(DefaultObject, RotationProps[i], Value, ErrorMessage)) + { + bAnyPropertiesSet = true; + TSharedPtr PropResultObj = MakeShared(); + PropResultObj->SetBoolField(TEXT("success"), true); + ResultsObj->SetObjectField(RotationProps[i], PropResultObj); + } + else + { + TSharedPtr PropResultObj = MakeShared(); + PropResultObj->SetBoolField(TEXT("success"), false); + PropResultObj->SetStringField(TEXT("error"), ErrorMessage); + ResultsObj->SetObjectField(RotationProps[i], PropResultObj); + } + } + } + + // Set can be damaged property + if (Params->HasField(TEXT("can_be_damaged"))) + { + TSharedPtr Value = Params->Values.FindRef(TEXT("can_be_damaged")); + + FString ErrorMessage; + if (FUnrealMCPCommonUtils::SetObjectProperty(DefaultObject, TEXT("bCanBeDamaged"), Value, ErrorMessage)) + { + bAnyPropertiesSet = true; + TSharedPtr PropResultObj = MakeShared(); + PropResultObj->SetBoolField(TEXT("success"), true); + ResultsObj->SetObjectField(TEXT("bCanBeDamaged"), PropResultObj); + } + else + { + TSharedPtr PropResultObj = MakeShared(); + PropResultObj->SetBoolField(TEXT("success"), false); + PropResultObj->SetStringField(TEXT("error"), ErrorMessage); + ResultsObj->SetObjectField(TEXT("bCanBeDamaged"), PropResultObj); + } + } + + // Mark the blueprint as modified if any properties were set + if (bAnyPropertiesSet) + { + FBlueprintEditorUtils::MarkBlueprintAsModified(Blueprint); + } + else if (ResultsObj->Values.Num() == 0) + { + // No properties were specified + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("No properties specified to set")); + } + + TSharedPtr ResponseObj = MakeShared(); + ResponseObj->SetStringField(TEXT("blueprint"), BlueprintName); + ResponseObj->SetBoolField(TEXT("success"), bAnyPropertiesSet); + ResponseObj->SetObjectField(TEXT("results"), ResultsObj); + return ResponseObj; +} \ No newline at end of file diff --git a/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Private/Commands/UnrealMCPBlueprintNodeCommands.cpp b/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Private/Commands/UnrealMCPBlueprintNodeCommands.cpp new file mode 100644 index 0000000..c0be1f4 --- /dev/null +++ b/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Private/Commands/UnrealMCPBlueprintNodeCommands.cpp @@ -0,0 +1,924 @@ +#include "Commands/UnrealMCPBlueprintNodeCommands.h" +#include "Commands/UnrealMCPCommonUtils.h" +#include "Engine/Blueprint.h" +#include "Engine/BlueprintGeneratedClass.h" +#include "EdGraph/EdGraph.h" +#include "EdGraph/EdGraphNode.h" +#include "EdGraph/EdGraphPin.h" +#include "K2Node_Event.h" +#include "K2Node_CallFunction.h" +#include "K2Node_VariableGet.h" +#include "K2Node_InputAction.h" +#include "K2Node_Self.h" +#include "Kismet2/BlueprintEditorUtils.h" +#include "Kismet2/KismetEditorUtilities.h" +#include "GameFramework/InputSettings.h" +#include "Camera/CameraActor.h" +#include "Kismet/GameplayStatics.h" +#include "EdGraphSchema_K2.h" + +// Declare the log category +DEFINE_LOG_CATEGORY_STATIC(LogUnrealMCP, Log, All); + +FUnrealMCPBlueprintNodeCommands::FUnrealMCPBlueprintNodeCommands() +{ +} + +TSharedPtr FUnrealMCPBlueprintNodeCommands::HandleCommand(const FString& CommandType, const TSharedPtr& Params) +{ + if (CommandType == TEXT("connect_blueprint_nodes")) + { + return HandleConnectBlueprintNodes(Params); + } + else if (CommandType == TEXT("add_blueprint_get_self_component_reference")) + { + return HandleAddBlueprintGetSelfComponentReference(Params); + } + else if (CommandType == TEXT("add_blueprint_event_node")) + { + return HandleAddBlueprintEvent(Params); + } + else if (CommandType == TEXT("add_blueprint_function_node")) + { + return HandleAddBlueprintFunctionCall(Params); + } + else if (CommandType == TEXT("add_blueprint_variable")) + { + return HandleAddBlueprintVariable(Params); + } + else if (CommandType == TEXT("add_blueprint_input_action_node")) + { + return HandleAddBlueprintInputActionNode(Params); + } + else if (CommandType == TEXT("add_blueprint_self_reference")) + { + return HandleAddBlueprintSelfReference(Params); + } + else if (CommandType == TEXT("find_blueprint_nodes")) + { + return HandleFindBlueprintNodes(Params); + } + + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Unknown blueprint node command: %s"), *CommandType)); +} + +TSharedPtr FUnrealMCPBlueprintNodeCommands::HandleConnectBlueprintNodes(const TSharedPtr& Params) +{ + // Get required parameters + FString BlueprintName; + if (!Params->TryGetStringField(TEXT("blueprint_name"), BlueprintName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'blueprint_name' parameter")); + } + + FString SourceNodeId; + if (!Params->TryGetStringField(TEXT("source_node_id"), SourceNodeId)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'source_node_id' parameter")); + } + + FString TargetNodeId; + if (!Params->TryGetStringField(TEXT("target_node_id"), TargetNodeId)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'target_node_id' parameter")); + } + + FString SourcePinName; + if (!Params->TryGetStringField(TEXT("source_pin"), SourcePinName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'source_pin' parameter")); + } + + FString TargetPinName; + if (!Params->TryGetStringField(TEXT("target_pin"), TargetPinName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'target_pin' parameter")); + } + + // Find the blueprint + UBlueprint* Blueprint = FUnrealMCPCommonUtils::FindBlueprint(BlueprintName); + if (!Blueprint) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Blueprint not found: %s"), *BlueprintName)); + } + + // Get the event graph + UEdGraph* EventGraph = FUnrealMCPCommonUtils::FindOrCreateEventGraph(Blueprint); + if (!EventGraph) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Failed to get event graph")); + } + + // Find the nodes + UEdGraphNode* SourceNode = nullptr; + UEdGraphNode* TargetNode = nullptr; + for (UEdGraphNode* Node : EventGraph->Nodes) + { + if (Node->NodeGuid.ToString() == SourceNodeId) + { + SourceNode = Node; + } + else if (Node->NodeGuid.ToString() == TargetNodeId) + { + TargetNode = Node; + } + } + + if (!SourceNode || !TargetNode) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Source or target node not found")); + } + + // Connect the nodes + if (FUnrealMCPCommonUtils::ConnectGraphNodes(EventGraph, SourceNode, SourcePinName, TargetNode, TargetPinName)) + { + // Mark the blueprint as modified + FBlueprintEditorUtils::MarkBlueprintAsModified(Blueprint); + + TSharedPtr ResultObj = MakeShared(); + ResultObj->SetStringField(TEXT("source_node_id"), SourceNodeId); + ResultObj->SetStringField(TEXT("target_node_id"), TargetNodeId); + return ResultObj; + } + + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Failed to connect nodes")); +} + +TSharedPtr FUnrealMCPBlueprintNodeCommands::HandleAddBlueprintGetSelfComponentReference(const TSharedPtr& Params) +{ + // Get required parameters + FString BlueprintName; + if (!Params->TryGetStringField(TEXT("blueprint_name"), BlueprintName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'blueprint_name' parameter")); + } + + FString ComponentName; + if (!Params->TryGetStringField(TEXT("component_name"), ComponentName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'component_name' parameter")); + } + + // Get position parameters (optional) + FVector2D NodePosition(0.0f, 0.0f); + if (Params->HasField(TEXT("node_position"))) + { + NodePosition = FUnrealMCPCommonUtils::GetVector2DFromJson(Params, TEXT("node_position")); + } + + // Find the blueprint + UBlueprint* Blueprint = FUnrealMCPCommonUtils::FindBlueprint(BlueprintName); + if (!Blueprint) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Blueprint not found: %s"), *BlueprintName)); + } + + // Get the event graph + UEdGraph* EventGraph = FUnrealMCPCommonUtils::FindOrCreateEventGraph(Blueprint); + if (!EventGraph) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Failed to get event graph")); + } + + // We'll skip component verification since the GetAllNodes API may have changed in UE5.5 + + // Create the variable get node directly + UK2Node_VariableGet* GetComponentNode = NewObject(EventGraph); + if (!GetComponentNode) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Failed to create get component node")); + } + + // Set up the variable reference properly for UE5.5 + FMemberReference& VarRef = GetComponentNode->VariableReference; + VarRef.SetSelfMember(FName(*ComponentName)); + + // Set node position + GetComponentNode->NodePosX = NodePosition.X; + GetComponentNode->NodePosY = NodePosition.Y; + + // Add to graph + EventGraph->AddNode(GetComponentNode); + GetComponentNode->CreateNewGuid(); + GetComponentNode->PostPlacedNewNode(); + GetComponentNode->AllocateDefaultPins(); + + // Explicitly reconstruct node for UE5.5 + GetComponentNode->ReconstructNode(); + + // Mark the blueprint as modified + FBlueprintEditorUtils::MarkBlueprintAsModified(Blueprint); + + TSharedPtr ResultObj = MakeShared(); + ResultObj->SetStringField(TEXT("node_id"), GetComponentNode->NodeGuid.ToString()); + return ResultObj; +} + +TSharedPtr FUnrealMCPBlueprintNodeCommands::HandleAddBlueprintEvent(const TSharedPtr& Params) +{ + // Get required parameters + FString BlueprintName; + if (!Params->TryGetStringField(TEXT("blueprint_name"), BlueprintName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'blueprint_name' parameter")); + } + + FString EventName; + if (!Params->TryGetStringField(TEXT("event_name"), EventName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'event_name' parameter")); + } + + // Get position parameters (optional) + FVector2D NodePosition(0.0f, 0.0f); + if (Params->HasField(TEXT("node_position"))) + { + NodePosition = FUnrealMCPCommonUtils::GetVector2DFromJson(Params, TEXT("node_position")); + } + + // Find the blueprint + UBlueprint* Blueprint = FUnrealMCPCommonUtils::FindBlueprint(BlueprintName); + if (!Blueprint) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Blueprint not found: %s"), *BlueprintName)); + } + + // Get the event graph + UEdGraph* EventGraph = FUnrealMCPCommonUtils::FindOrCreateEventGraph(Blueprint); + if (!EventGraph) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Failed to get event graph")); + } + + // Create the event node + UK2Node_Event* EventNode = FUnrealMCPCommonUtils::CreateEventNode(EventGraph, EventName, NodePosition); + if (!EventNode) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Failed to create event node")); + } + + // Mark the blueprint as modified + FBlueprintEditorUtils::MarkBlueprintAsModified(Blueprint); + + TSharedPtr ResultObj = MakeShared(); + ResultObj->SetStringField(TEXT("node_id"), EventNode->NodeGuid.ToString()); + return ResultObj; +} + +TSharedPtr FUnrealMCPBlueprintNodeCommands::HandleAddBlueprintFunctionCall(const TSharedPtr& Params) +{ + // Get required parameters + FString BlueprintName; + if (!Params->TryGetStringField(TEXT("blueprint_name"), BlueprintName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'blueprint_name' parameter")); + } + + FString FunctionName; + if (!Params->TryGetStringField(TEXT("function_name"), FunctionName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'function_name' parameter")); + } + + // Get position parameters (optional) + FVector2D NodePosition(0.0f, 0.0f); + if (Params->HasField(TEXT("node_position"))) + { + NodePosition = FUnrealMCPCommonUtils::GetVector2DFromJson(Params, TEXT("node_position")); + } + + // Check for target parameter (optional) + FString Target; + Params->TryGetStringField(TEXT("target"), Target); + + // Find the blueprint + UBlueprint* Blueprint = FUnrealMCPCommonUtils::FindBlueprint(BlueprintName); + if (!Blueprint) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Blueprint not found: %s"), *BlueprintName)); + } + + // Get the event graph + UEdGraph* EventGraph = FUnrealMCPCommonUtils::FindOrCreateEventGraph(Blueprint); + if (!EventGraph) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Failed to get event graph")); + } + + // Find the function + UFunction* Function = nullptr; + UK2Node_CallFunction* FunctionNode = nullptr; + + // Add extensive logging for debugging + UE_LOG(LogTemp, Display, TEXT("Looking for function '%s' in target '%s'"), + *FunctionName, Target.IsEmpty() ? TEXT("Blueprint") : *Target); + + // Check if we have a target class specified + if (!Target.IsEmpty()) + { + // Try to find the target class + UClass* TargetClass = nullptr; + + // First try without a prefix + TargetClass = FindObject(ANY_PACKAGE, *Target); + UE_LOG(LogTemp, Display, TEXT("Tried to find class '%s': %s"), + *Target, TargetClass ? TEXT("Found") : TEXT("Not found")); + + // If not found, try with U prefix (common convention for UE classes) + if (!TargetClass && !Target.StartsWith(TEXT("U"))) + { + FString TargetWithPrefix = FString(TEXT("U")) + Target; + TargetClass = FindObject(ANY_PACKAGE, *TargetWithPrefix); + UE_LOG(LogTemp, Display, TEXT("Tried to find class '%s': %s"), + *TargetWithPrefix, TargetClass ? TEXT("Found") : TEXT("Not found")); + } + + // If still not found, try with common component names + if (!TargetClass) + { + // Try some common component class names + TArray PossibleClassNames; + PossibleClassNames.Add(FString(TEXT("U")) + Target + TEXT("Component")); + PossibleClassNames.Add(Target + TEXT("Component")); + + for (const FString& ClassName : PossibleClassNames) + { + TargetClass = FindObject(ANY_PACKAGE, *ClassName); + if (TargetClass) + { + UE_LOG(LogTemp, Display, TEXT("Found class using alternative name '%s'"), *ClassName); + break; + } + } + } + + // Special case handling for common classes like UGameplayStatics + if (!TargetClass && Target == TEXT("UGameplayStatics")) + { + // For UGameplayStatics, use a direct reference to known class + TargetClass = FindObject(ANY_PACKAGE, TEXT("UGameplayStatics")); + if (!TargetClass) + { + // Try loading it from its known package + TargetClass = LoadObject(nullptr, TEXT("/Script/Engine.GameplayStatics")); + UE_LOG(LogTemp, Display, TEXT("Explicitly loading GameplayStatics: %s"), + TargetClass ? TEXT("Success") : TEXT("Failed")); + } + } + + // If we found a target class, look for the function there + if (TargetClass) + { + UE_LOG(LogTemp, Display, TEXT("Looking for function '%s' in class '%s'"), + *FunctionName, *TargetClass->GetName()); + + // First try exact name + Function = TargetClass->FindFunctionByName(*FunctionName); + + // If not found, try class hierarchy + UClass* CurrentClass = TargetClass; + while (!Function && CurrentClass) + { + UE_LOG(LogTemp, Display, TEXT("Searching in class: %s"), *CurrentClass->GetName()); + + // Try exact match + Function = CurrentClass->FindFunctionByName(*FunctionName); + + // Try case-insensitive match + if (!Function) + { + for (TFieldIterator FuncIt(CurrentClass); FuncIt; ++FuncIt) + { + UFunction* AvailableFunc = *FuncIt; + UE_LOG(LogTemp, Display, TEXT(" - Available function: %s"), *AvailableFunc->GetName()); + + if (AvailableFunc->GetName().Equals(FunctionName, ESearchCase::IgnoreCase)) + { + UE_LOG(LogTemp, Display, TEXT(" - Found case-insensitive match: %s"), *AvailableFunc->GetName()); + Function = AvailableFunc; + break; + } + } + } + + // Move to parent class + CurrentClass = CurrentClass->GetSuperClass(); + } + + // Special handling for known functions + if (!Function) + { + if (TargetClass->GetName() == TEXT("GameplayStatics") && + (FunctionName == TEXT("GetActorOfClass") || FunctionName.Equals(TEXT("GetActorOfClass"), ESearchCase::IgnoreCase))) + { + UE_LOG(LogTemp, Display, TEXT("Using special case handling for GameplayStatics::GetActorOfClass")); + + // Create the function node directly + FunctionNode = NewObject(EventGraph); + if (FunctionNode) + { + // Direct setup for known function + FunctionNode->FunctionReference.SetExternalMember( + FName(TEXT("GetActorOfClass")), + TargetClass + ); + + FunctionNode->NodePosX = NodePosition.X; + FunctionNode->NodePosY = NodePosition.Y; + EventGraph->AddNode(FunctionNode); + FunctionNode->CreateNewGuid(); + FunctionNode->PostPlacedNewNode(); + FunctionNode->AllocateDefaultPins(); + + UE_LOG(LogTemp, Display, TEXT("Created GetActorOfClass node directly")); + + // List all pins + for (UEdGraphPin* Pin : FunctionNode->Pins) + { + UE_LOG(LogTemp, Display, TEXT(" - Pin: %s, Direction: %d, Category: %s"), + *Pin->PinName.ToString(), (int32)Pin->Direction, *Pin->PinType.PinCategory.ToString()); + } + } + } + } + } + } + + // If we still haven't found the function, try in the blueprint's class + if (!Function && !FunctionNode) + { + UE_LOG(LogTemp, Display, TEXT("Trying to find function in blueprint class")); + Function = Blueprint->GeneratedClass->FindFunctionByName(*FunctionName); + } + + // Create the function call node if we found the function + if (Function && !FunctionNode) + { + FunctionNode = FUnrealMCPCommonUtils::CreateFunctionCallNode(EventGraph, Function, NodePosition); + } + + if (!FunctionNode) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Function not found: %s in target %s"), *FunctionName, Target.IsEmpty() ? TEXT("Blueprint") : *Target)); + } + + // Set parameters if provided + if (Params->HasField(TEXT("params"))) + { + const TSharedPtr* ParamsObj; + if (Params->TryGetObjectField(TEXT("params"), ParamsObj)) + { + // Process parameters + for (const TPair>& Param : (*ParamsObj)->Values) + { + const FString& ParamName = Param.Key; + const TSharedPtr& ParamValue = Param.Value; + + // Find the parameter pin + UEdGraphPin* ParamPin = FUnrealMCPCommonUtils::FindPin(FunctionNode, ParamName, EGPD_Input); + if (ParamPin) + { + UE_LOG(LogTemp, Display, TEXT("Found parameter pin '%s' of category '%s'"), + *ParamName, *ParamPin->PinType.PinCategory.ToString()); + UE_LOG(LogTemp, Display, TEXT(" Current default value: '%s'"), *ParamPin->DefaultValue); + if (ParamPin->PinType.PinSubCategoryObject.IsValid()) + { + UE_LOG(LogTemp, Display, TEXT(" Pin subcategory: '%s'"), + *ParamPin->PinType.PinSubCategoryObject->GetName()); + } + + // Set parameter based on type + if (ParamValue->Type == EJson::String) + { + FString StringVal = ParamValue->AsString(); + UE_LOG(LogTemp, Display, TEXT(" Setting string parameter '%s' to: '%s'"), + *ParamName, *StringVal); + + // Handle class reference parameters (e.g., ActorClass in GetActorOfClass) + if (ParamPin->PinType.PinCategory == UEdGraphSchema_K2::PC_Class) + { + // For class references, we require the exact class name with proper prefix + // - Actor classes must start with 'A' (e.g., ACameraActor) + // - Non-actor classes must start with 'U' (e.g., UObject) + const FString& ClassName = StringVal; + + // TODO: This likely won't work in UE5.5+, so don't rely on it. + UClass* Class = FindObject(ANY_PACKAGE, *ClassName); + + if (!Class) + { + Class = LoadObject(nullptr, *ClassName); + UE_LOG(LogUnrealMCP, Display, TEXT("FindObject failed. Assuming soft path path: %s"), *ClassName); + } + + // If not found, try with Engine module path + if (!Class) + { + FString EngineClassName = FString::Printf(TEXT("/Script/Engine.%s"), *ClassName); + Class = LoadObject(nullptr, *EngineClassName); + UE_LOG(LogUnrealMCP, Display, TEXT("Trying Engine module path: %s"), *EngineClassName); + } + + if (!Class) + { + UE_LOG(LogUnrealMCP, Error, TEXT("Failed to find class '%s'. Make sure to use the exact class name with proper prefix (A for actors, U for non-actors)"), *ClassName); + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Failed to find class '%s'"), *ClassName)); + } + + const UEdGraphSchema_K2* K2Schema = Cast(EventGraph->GetSchema()); + if (!K2Schema) + { + UE_LOG(LogUnrealMCP, Error, TEXT("Failed to get K2Schema")); + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Failed to get K2Schema")); + } + + K2Schema->TrySetDefaultObject(*ParamPin, Class); + if (ParamPin->DefaultObject != Class) + { + UE_LOG(LogUnrealMCP, Error, TEXT("Failed to set class reference for pin '%s' to '%s'"), *ParamPin->PinName.ToString(), *ClassName); + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Failed to set class reference for pin '%s'"), *ParamPin->PinName.ToString())); + } + + UE_LOG(LogUnrealMCP, Log, TEXT("Successfully set class reference for pin '%s' to '%s'"), *ParamPin->PinName.ToString(), *ClassName); + continue; + } + else if (ParamPin->PinType.PinCategory == UEdGraphSchema_K2::PC_Int) + { + // Ensure we're using an integer value (no decimal) + int32 IntValue = FMath::RoundToInt(ParamValue->AsNumber()); + ParamPin->DefaultValue = FString::FromInt(IntValue); + UE_LOG(LogTemp, Display, TEXT(" Set integer parameter '%s' to: %d (string: '%s')"), + *ParamName, IntValue, *ParamPin->DefaultValue); + } + else if (ParamPin->PinType.PinCategory == UEdGraphSchema_K2::PC_Float) + { + // For other numeric types + float FloatValue = ParamValue->AsNumber(); + ParamPin->DefaultValue = FString::SanitizeFloat(FloatValue); + UE_LOG(LogTemp, Display, TEXT(" Set float parameter '%s' to: %f (string: '%s')"), + *ParamName, FloatValue, *ParamPin->DefaultValue); + } + else if (ParamPin->PinType.PinCategory == UEdGraphSchema_K2::PC_Boolean) + { + bool BoolValue = ParamValue->AsBool(); + ParamPin->DefaultValue = BoolValue ? TEXT("true") : TEXT("false"); + UE_LOG(LogTemp, Display, TEXT(" Set boolean parameter '%s' to: %s"), + *ParamName, *ParamPin->DefaultValue); + } + else if (ParamPin->PinType.PinCategory == UEdGraphSchema_K2::PC_Struct && ParamPin->PinType.PinSubCategoryObject == TBaseStructure::Get()) + { + // Handle array parameters - like Vector parameters + const TArray>* ArrayValue; + if (ParamValue->TryGetArray(ArrayValue)) + { + // Check if this could be a vector (array of 3 numbers) + if (ArrayValue->Num() == 3) + { + // Create a proper vector string: (X=0.0,Y=0.0,Z=1000.0) + float X = (*ArrayValue)[0]->AsNumber(); + float Y = (*ArrayValue)[1]->AsNumber(); + float Z = (*ArrayValue)[2]->AsNumber(); + + FString VectorString = FString::Printf(TEXT("(X=%f,Y=%f,Z=%f)"), X, Y, Z); + ParamPin->DefaultValue = VectorString; + + UE_LOG(LogTemp, Display, TEXT(" Set vector parameter '%s' to: %s"), + *ParamName, *VectorString); + UE_LOG(LogTemp, Display, TEXT(" Final pin value: '%s'"), + *ParamPin->DefaultValue); + } + else + { + UE_LOG(LogTemp, Warning, TEXT("Array parameter type not fully supported yet")); + } + } + } + } + else if (ParamValue->Type == EJson::Number) + { + // Handle integer vs float parameters correctly + if (ParamPin->PinType.PinCategory == UEdGraphSchema_K2::PC_Int) + { + // Ensure we're using an integer value (no decimal) + int32 IntValue = FMath::RoundToInt(ParamValue->AsNumber()); + ParamPin->DefaultValue = FString::FromInt(IntValue); + UE_LOG(LogTemp, Display, TEXT(" Set integer parameter '%s' to: %d (string: '%s')"), + *ParamName, IntValue, *ParamPin->DefaultValue); + } + else + { + // For other numeric types + float FloatValue = ParamValue->AsNumber(); + ParamPin->DefaultValue = FString::SanitizeFloat(FloatValue); + UE_LOG(LogTemp, Display, TEXT(" Set float parameter '%s' to: %f (string: '%s')"), + *ParamName, FloatValue, *ParamPin->DefaultValue); + } + } + else if (ParamValue->Type == EJson::Boolean) + { + bool BoolValue = ParamValue->AsBool(); + ParamPin->DefaultValue = BoolValue ? TEXT("true") : TEXT("false"); + UE_LOG(LogTemp, Display, TEXT(" Set boolean parameter '%s' to: %s"), + *ParamName, *ParamPin->DefaultValue); + } + else if (ParamValue->Type == EJson::Array) + { + UE_LOG(LogTemp, Display, TEXT(" Processing array parameter '%s'"), *ParamName); + // Handle array parameters - like Vector parameters + const TArray>* ArrayValue; + if (ParamValue->TryGetArray(ArrayValue)) + { + // Check if this could be a vector (array of 3 numbers) + if (ArrayValue->Num() == 3 && + (ParamPin->PinType.PinCategory == UEdGraphSchema_K2::PC_Struct) && + (ParamPin->PinType.PinSubCategoryObject == TBaseStructure::Get())) + { + // Create a proper vector string: (X=0.0,Y=0.0,Z=1000.0) + float X = (*ArrayValue)[0]->AsNumber(); + float Y = (*ArrayValue)[1]->AsNumber(); + float Z = (*ArrayValue)[2]->AsNumber(); + + FString VectorString = FString::Printf(TEXT("(X=%f,Y=%f,Z=%f)"), X, Y, Z); + ParamPin->DefaultValue = VectorString; + + UE_LOG(LogTemp, Display, TEXT(" Set vector parameter '%s' to: %s"), + *ParamName, *VectorString); + UE_LOG(LogTemp, Display, TEXT(" Final pin value: '%s'"), + *ParamPin->DefaultValue); + } + else + { + UE_LOG(LogTemp, Warning, TEXT("Array parameter type not fully supported yet")); + } + } + } + // Add handling for other types as needed + } + else + { + UE_LOG(LogTemp, Warning, TEXT("Parameter pin '%s' not found"), *ParamName); + } + } + } + } + + // Mark the blueprint as modified + FBlueprintEditorUtils::MarkBlueprintAsModified(Blueprint); + + TSharedPtr ResultObj = MakeShared(); + ResultObj->SetStringField(TEXT("node_id"), FunctionNode->NodeGuid.ToString()); + return ResultObj; +} + +TSharedPtr FUnrealMCPBlueprintNodeCommands::HandleAddBlueprintVariable(const TSharedPtr& Params) +{ + // Get required parameters + FString BlueprintName; + if (!Params->TryGetStringField(TEXT("blueprint_name"), BlueprintName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'blueprint_name' parameter")); + } + + FString VariableName; + if (!Params->TryGetStringField(TEXT("variable_name"), VariableName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'variable_name' parameter")); + } + + FString VariableType; + if (!Params->TryGetStringField(TEXT("variable_type"), VariableType)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'variable_type' parameter")); + } + + // Get optional parameters + bool IsExposed = false; + if (Params->HasField(TEXT("is_exposed"))) + { + IsExposed = Params->GetBoolField(TEXT("is_exposed")); + } + + // Find the blueprint + UBlueprint* Blueprint = FUnrealMCPCommonUtils::FindBlueprint(BlueprintName); + if (!Blueprint) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Blueprint not found: %s"), *BlueprintName)); + } + + // Create variable based on type + FEdGraphPinType PinType; + + // Set up pin type based on variable_type string + if (VariableType == TEXT("Boolean")) + { + PinType.PinCategory = UEdGraphSchema_K2::PC_Boolean; + } + else if (VariableType == TEXT("Integer") || VariableType == TEXT("Int")) + { + PinType.PinCategory = UEdGraphSchema_K2::PC_Int; + } + else if (VariableType == TEXT("Float")) + { + PinType.PinCategory = UEdGraphSchema_K2::PC_Float; + } + else if (VariableType == TEXT("String")) + { + PinType.PinCategory = UEdGraphSchema_K2::PC_String; + } + else if (VariableType == TEXT("Vector")) + { + PinType.PinCategory = UEdGraphSchema_K2::PC_Struct; + PinType.PinSubCategoryObject = TBaseStructure::Get(); + } + else + { + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Unsupported variable type: %s"), *VariableType)); + } + + // Create the variable + FBlueprintEditorUtils::AddMemberVariable(Blueprint, FName(*VariableName), PinType); + + // Set variable properties + FBPVariableDescription* NewVar = nullptr; + for (FBPVariableDescription& Variable : Blueprint->NewVariables) + { + if (Variable.VarName == FName(*VariableName)) + { + NewVar = &Variable; + break; + } + } + + if (NewVar) + { + // Set exposure in editor + if (IsExposed) + { + NewVar->PropertyFlags |= CPF_Edit; + } + } + + // Mark the blueprint as modified + FBlueprintEditorUtils::MarkBlueprintAsModified(Blueprint); + + TSharedPtr ResultObj = MakeShared(); + ResultObj->SetStringField(TEXT("variable_name"), VariableName); + ResultObj->SetStringField(TEXT("variable_type"), VariableType); + return ResultObj; +} + +TSharedPtr FUnrealMCPBlueprintNodeCommands::HandleAddBlueprintInputActionNode(const TSharedPtr& Params) +{ + // Get required parameters + FString BlueprintName; + if (!Params->TryGetStringField(TEXT("blueprint_name"), BlueprintName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'blueprint_name' parameter")); + } + + FString ActionName; + if (!Params->TryGetStringField(TEXT("action_name"), ActionName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'action_name' parameter")); + } + + // Get position parameters (optional) + FVector2D NodePosition(0.0f, 0.0f); + if (Params->HasField(TEXT("node_position"))) + { + NodePosition = FUnrealMCPCommonUtils::GetVector2DFromJson(Params, TEXT("node_position")); + } + + // Find the blueprint + UBlueprint* Blueprint = FUnrealMCPCommonUtils::FindBlueprint(BlueprintName); + if (!Blueprint) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Blueprint not found: %s"), *BlueprintName)); + } + + // Get the event graph + UEdGraph* EventGraph = FUnrealMCPCommonUtils::FindOrCreateEventGraph(Blueprint); + if (!EventGraph) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Failed to get event graph")); + } + + // Create the input action node + UK2Node_InputAction* InputActionNode = FUnrealMCPCommonUtils::CreateInputActionNode(EventGraph, ActionName, NodePosition); + if (!InputActionNode) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Failed to create input action node")); + } + + // Mark the blueprint as modified + FBlueprintEditorUtils::MarkBlueprintAsModified(Blueprint); + + TSharedPtr ResultObj = MakeShared(); + ResultObj->SetStringField(TEXT("node_id"), InputActionNode->NodeGuid.ToString()); + return ResultObj; +} + +TSharedPtr FUnrealMCPBlueprintNodeCommands::HandleAddBlueprintSelfReference(const TSharedPtr& Params) +{ + // Get required parameters + FString BlueprintName; + if (!Params->TryGetStringField(TEXT("blueprint_name"), BlueprintName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'blueprint_name' parameter")); + } + + // Get position parameters (optional) + FVector2D NodePosition(0.0f, 0.0f); + if (Params->HasField(TEXT("node_position"))) + { + NodePosition = FUnrealMCPCommonUtils::GetVector2DFromJson(Params, TEXT("node_position")); + } + + // Find the blueprint + UBlueprint* Blueprint = FUnrealMCPCommonUtils::FindBlueprint(BlueprintName); + if (!Blueprint) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Blueprint not found: %s"), *BlueprintName)); + } + + // Get the event graph + UEdGraph* EventGraph = FUnrealMCPCommonUtils::FindOrCreateEventGraph(Blueprint); + if (!EventGraph) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Failed to get event graph")); + } + + // Create the self node + UK2Node_Self* SelfNode = FUnrealMCPCommonUtils::CreateSelfReferenceNode(EventGraph, NodePosition); + if (!SelfNode) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Failed to create self node")); + } + + // Mark the blueprint as modified + FBlueprintEditorUtils::MarkBlueprintAsModified(Blueprint); + + TSharedPtr ResultObj = MakeShared(); + ResultObj->SetStringField(TEXT("node_id"), SelfNode->NodeGuid.ToString()); + return ResultObj; +} + +TSharedPtr FUnrealMCPBlueprintNodeCommands::HandleFindBlueprintNodes(const TSharedPtr& Params) +{ + // Get required parameters + FString BlueprintName; + if (!Params->TryGetStringField(TEXT("blueprint_name"), BlueprintName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'blueprint_name' parameter")); + } + + FString NodeType; + if (!Params->TryGetStringField(TEXT("node_type"), NodeType)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'node_type' parameter")); + } + + // Find the blueprint + UBlueprint* Blueprint = FUnrealMCPCommonUtils::FindBlueprint(BlueprintName); + if (!Blueprint) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Blueprint not found: %s"), *BlueprintName)); + } + + // Get the event graph + UEdGraph* EventGraph = FUnrealMCPCommonUtils::FindOrCreateEventGraph(Blueprint); + if (!EventGraph) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Failed to get event graph")); + } + + // Create a JSON array for the node GUIDs + TArray> NodeGuidArray; + + // Filter nodes by the exact requested type + if (NodeType == TEXT("Event")) + { + FString EventName; + if (!Params->TryGetStringField(TEXT("event_name"), EventName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'event_name' parameter for Event node search")); + } + + // Look for nodes with exact event name (e.g., ReceiveBeginPlay) + for (UEdGraphNode* Node : EventGraph->Nodes) + { + UK2Node_Event* EventNode = Cast(Node); + if (EventNode && EventNode->EventReference.GetMemberName() == FName(*EventName)) + { + UE_LOG(LogTemp, Display, TEXT("Found event node with name %s: %s"), *EventName, *EventNode->NodeGuid.ToString()); + NodeGuidArray.Add(MakeShared(EventNode->NodeGuid.ToString())); + } + } + } + // Add other node types as needed (InputAction, etc.) + + TSharedPtr ResultObj = MakeShared(); + ResultObj->SetArrayField(TEXT("node_guids"), NodeGuidArray); + + return ResultObj; +} \ No newline at end of file diff --git a/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Private/Commands/UnrealMCPCommonUtils.cpp b/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Private/Commands/UnrealMCPCommonUtils.cpp new file mode 100644 index 0000000..e5e2c00 --- /dev/null +++ b/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Private/Commands/UnrealMCPCommonUtils.cpp @@ -0,0 +1,709 @@ +#include "Commands/UnrealMCPCommonUtils.h" +#include "GameFramework/Actor.h" +#include "Engine/Blueprint.h" +#include "EdGraph/EdGraph.h" +#include "EdGraph/EdGraphNode.h" +#include "EdGraph/EdGraphPin.h" +#include "K2Node_Event.h" +#include "K2Node_CallFunction.h" +#include "K2Node_VariableGet.h" +#include "K2Node_VariableSet.h" +#include "K2Node_InputAction.h" +#include "K2Node_Self.h" +#include "EdGraphSchema_K2.h" +#include "Kismet2/BlueprintEditorUtils.h" +#include "Components/StaticMeshComponent.h" +#include "Components/LightComponent.h" +#include "Components/PrimitiveComponent.h" +#include "Components/SceneComponent.h" +#include "UObject/UObjectIterator.h" +#include "Engine/Selection.h" +#include "EditorAssetLibrary.h" +#include "AssetRegistry/AssetRegistryModule.h" +#include "Engine/BlueprintGeneratedClass.h" +#include "BlueprintNodeSpawner.h" +#include "BlueprintActionDatabase.h" +#include "Dom/JsonObject.h" +#include "Dom/JsonValue.h" + +// JSON Utilities +TSharedPtr FUnrealMCPCommonUtils::CreateErrorResponse(const FString& Message) +{ + TSharedPtr ResponseObject = MakeShared(); + ResponseObject->SetBoolField(TEXT("success"), false); + ResponseObject->SetStringField(TEXT("error"), Message); + return ResponseObject; +} + +TSharedPtr FUnrealMCPCommonUtils::CreateSuccessResponse(const TSharedPtr& Data) +{ + TSharedPtr ResponseObject = MakeShared(); + ResponseObject->SetBoolField(TEXT("success"), true); + + if (Data.IsValid()) + { + ResponseObject->SetObjectField(TEXT("data"), Data); + } + + return ResponseObject; +} + +void FUnrealMCPCommonUtils::GetIntArrayFromJson(const TSharedPtr& JsonObject, const FString& FieldName, TArray& OutArray) +{ + OutArray.Reset(); + + if (!JsonObject->HasField(FieldName)) + { + return; + } + + const TArray>* JsonArray; + if (JsonObject->TryGetArrayField(FieldName, JsonArray)) + { + for (const TSharedPtr& Value : *JsonArray) + { + OutArray.Add((int32)Value->AsNumber()); + } + } +} + +void FUnrealMCPCommonUtils::GetFloatArrayFromJson(const TSharedPtr& JsonObject, const FString& FieldName, TArray& OutArray) +{ + OutArray.Reset(); + + if (!JsonObject->HasField(FieldName)) + { + return; + } + + const TArray>* JsonArray; + if (JsonObject->TryGetArrayField(FieldName, JsonArray)) + { + for (const TSharedPtr& Value : *JsonArray) + { + OutArray.Add((float)Value->AsNumber()); + } + } +} + +FVector2D FUnrealMCPCommonUtils::GetVector2DFromJson(const TSharedPtr& JsonObject, const FString& FieldName) +{ + FVector2D Result(0.0f, 0.0f); + + if (!JsonObject->HasField(FieldName)) + { + return Result; + } + + const TArray>* JsonArray; + if (JsonObject->TryGetArrayField(FieldName, JsonArray) && JsonArray->Num() >= 2) + { + Result.X = (float)(*JsonArray)[0]->AsNumber(); + Result.Y = (float)(*JsonArray)[1]->AsNumber(); + } + + return Result; +} + +FVector FUnrealMCPCommonUtils::GetVectorFromJson(const TSharedPtr& JsonObject, const FString& FieldName) +{ + FVector Result(0.0f, 0.0f, 0.0f); + + if (!JsonObject->HasField(FieldName)) + { + return Result; + } + + const TArray>* JsonArray; + if (JsonObject->TryGetArrayField(FieldName, JsonArray) && JsonArray->Num() >= 3) + { + Result.X = (float)(*JsonArray)[0]->AsNumber(); + Result.Y = (float)(*JsonArray)[1]->AsNumber(); + Result.Z = (float)(*JsonArray)[2]->AsNumber(); + } + + return Result; +} + +FRotator FUnrealMCPCommonUtils::GetRotatorFromJson(const TSharedPtr& JsonObject, const FString& FieldName) +{ + FRotator Result(0.0f, 0.0f, 0.0f); + + if (!JsonObject->HasField(FieldName)) + { + return Result; + } + + const TArray>* JsonArray; + if (JsonObject->TryGetArrayField(FieldName, JsonArray) && JsonArray->Num() >= 3) + { + Result.Pitch = (float)(*JsonArray)[0]->AsNumber(); + Result.Yaw = (float)(*JsonArray)[1]->AsNumber(); + Result.Roll = (float)(*JsonArray)[2]->AsNumber(); + } + + return Result; +} + +// Blueprint Utilities +UBlueprint* FUnrealMCPCommonUtils::FindBlueprint(const FString& BlueprintName) +{ + return FindBlueprintByName(BlueprintName); +} + +UBlueprint* FUnrealMCPCommonUtils::FindBlueprintByName(const FString& BlueprintName) +{ + FString AssetPath = TEXT("/Game/Blueprints/") + BlueprintName; + return LoadObject(nullptr, *AssetPath); +} + +UEdGraph* FUnrealMCPCommonUtils::FindOrCreateEventGraph(UBlueprint* Blueprint) +{ + if (!Blueprint) + { + return nullptr; + } + + // Try to find the event graph + for (UEdGraph* Graph : Blueprint->UbergraphPages) + { + if (Graph->GetName().Contains(TEXT("EventGraph"))) + { + return Graph; + } + } + + // Create a new event graph if none exists + UEdGraph* NewGraph = FBlueprintEditorUtils::CreateNewGraph(Blueprint, FName(TEXT("EventGraph")), UEdGraph::StaticClass(), UEdGraphSchema_K2::StaticClass()); + FBlueprintEditorUtils::AddUbergraphPage(Blueprint, NewGraph); + return NewGraph; +} + +// Blueprint node utilities +UK2Node_Event* FUnrealMCPCommonUtils::CreateEventNode(UEdGraph* Graph, const FString& EventName, const FVector2D& Position) +{ + if (!Graph) + { + return nullptr; + } + + UBlueprint* Blueprint = FBlueprintEditorUtils::FindBlueprintForGraph(Graph); + if (!Blueprint) + { + return nullptr; + } + + // Check for existing event node with this exact name + for (UEdGraphNode* Node : Graph->Nodes) + { + UK2Node_Event* EventNode = Cast(Node); + if (EventNode && EventNode->EventReference.GetMemberName() == FName(*EventName)) + { + UE_LOG(LogTemp, Display, TEXT("Using existing event node with name %s (ID: %s)"), + *EventName, *EventNode->NodeGuid.ToString()); + return EventNode; + } + } + + // No existing node found, create a new one + UK2Node_Event* EventNode = nullptr; + + // Find the function to create the event + UClass* BlueprintClass = Blueprint->GeneratedClass; + UFunction* EventFunction = BlueprintClass->FindFunctionByName(FName(*EventName)); + + if (EventFunction) + { + EventNode = NewObject(Graph); + EventNode->EventReference.SetExternalMember(FName(*EventName), BlueprintClass); + EventNode->NodePosX = Position.X; + EventNode->NodePosY = Position.Y; + Graph->AddNode(EventNode, true); + EventNode->PostPlacedNewNode(); + EventNode->AllocateDefaultPins(); + UE_LOG(LogTemp, Display, TEXT("Created new event node with name %s (ID: %s)"), + *EventName, *EventNode->NodeGuid.ToString()); + } + else + { + UE_LOG(LogTemp, Error, TEXT("Failed to find function for event name: %s"), *EventName); + } + + return EventNode; +} + +UK2Node_CallFunction* FUnrealMCPCommonUtils::CreateFunctionCallNode(UEdGraph* Graph, UFunction* Function, const FVector2D& Position) +{ + if (!Graph || !Function) + { + return nullptr; + } + + UK2Node_CallFunction* FunctionNode = NewObject(Graph); + FunctionNode->SetFromFunction(Function); + FunctionNode->NodePosX = Position.X; + FunctionNode->NodePosY = Position.Y; + Graph->AddNode(FunctionNode, true); + FunctionNode->CreateNewGuid(); + FunctionNode->PostPlacedNewNode(); + FunctionNode->AllocateDefaultPins(); + + return FunctionNode; +} + +UK2Node_VariableGet* FUnrealMCPCommonUtils::CreateVariableGetNode(UEdGraph* Graph, UBlueprint* Blueprint, const FString& VariableName, const FVector2D& Position) +{ + if (!Graph || !Blueprint) + { + return nullptr; + } + + UK2Node_VariableGet* VariableGetNode = NewObject(Graph); + + FName VarName(*VariableName); + FProperty* Property = FindFProperty(Blueprint->GeneratedClass, VarName); + + if (Property) + { + VariableGetNode->VariableReference.SetFromField(Property, false); + VariableGetNode->NodePosX = Position.X; + VariableGetNode->NodePosY = Position.Y; + Graph->AddNode(VariableGetNode, true); + VariableGetNode->PostPlacedNewNode(); + VariableGetNode->AllocateDefaultPins(); + + return VariableGetNode; + } + + return nullptr; +} + +UK2Node_VariableSet* FUnrealMCPCommonUtils::CreateVariableSetNode(UEdGraph* Graph, UBlueprint* Blueprint, const FString& VariableName, const FVector2D& Position) +{ + if (!Graph || !Blueprint) + { + return nullptr; + } + + UK2Node_VariableSet* VariableSetNode = NewObject(Graph); + + FName VarName(*VariableName); + FProperty* Property = FindFProperty(Blueprint->GeneratedClass, VarName); + + if (Property) + { + VariableSetNode->VariableReference.SetFromField(Property, false); + VariableSetNode->NodePosX = Position.X; + VariableSetNode->NodePosY = Position.Y; + Graph->AddNode(VariableSetNode, true); + VariableSetNode->PostPlacedNewNode(); + VariableSetNode->AllocateDefaultPins(); + + return VariableSetNode; + } + + return nullptr; +} + +UK2Node_InputAction* FUnrealMCPCommonUtils::CreateInputActionNode(UEdGraph* Graph, const FString& ActionName, const FVector2D& Position) +{ + if (!Graph) + { + return nullptr; + } + + UK2Node_InputAction* InputActionNode = NewObject(Graph); + InputActionNode->InputActionName = FName(*ActionName); + InputActionNode->NodePosX = Position.X; + InputActionNode->NodePosY = Position.Y; + Graph->AddNode(InputActionNode, true); + InputActionNode->CreateNewGuid(); + InputActionNode->PostPlacedNewNode(); + InputActionNode->AllocateDefaultPins(); + + return InputActionNode; +} + +UK2Node_Self* FUnrealMCPCommonUtils::CreateSelfReferenceNode(UEdGraph* Graph, const FVector2D& Position) +{ + if (!Graph) + { + return nullptr; + } + + UK2Node_Self* SelfNode = NewObject(Graph); + SelfNode->NodePosX = Position.X; + SelfNode->NodePosY = Position.Y; + Graph->AddNode(SelfNode, true); + SelfNode->CreateNewGuid(); + SelfNode->PostPlacedNewNode(); + SelfNode->AllocateDefaultPins(); + + return SelfNode; +} + +bool FUnrealMCPCommonUtils::ConnectGraphNodes(UEdGraph* Graph, UEdGraphNode* SourceNode, const FString& SourcePinName, + UEdGraphNode* TargetNode, const FString& TargetPinName) +{ + if (!Graph || !SourceNode || !TargetNode) + { + return false; + } + + UEdGraphPin* SourcePin = FindPin(SourceNode, SourcePinName, EGPD_Output); + UEdGraphPin* TargetPin = FindPin(TargetNode, TargetPinName, EGPD_Input); + + if (SourcePin && TargetPin) + { + SourcePin->MakeLinkTo(TargetPin); + return true; + } + + return false; +} + +UEdGraphPin* FUnrealMCPCommonUtils::FindPin(UEdGraphNode* Node, const FString& PinName, EEdGraphPinDirection Direction) +{ + if (!Node) + { + return nullptr; + } + + // Log all pins for debugging + UE_LOG(LogTemp, Display, TEXT("FindPin: Looking for pin '%s' (Direction: %d) in node '%s'"), + *PinName, (int32)Direction, *Node->GetName()); + + for (UEdGraphPin* Pin : Node->Pins) + { + UE_LOG(LogTemp, Display, TEXT(" - Available pin: '%s', Direction: %d, Category: %s"), + *Pin->PinName.ToString(), (int32)Pin->Direction, *Pin->PinType.PinCategory.ToString()); + } + + // First try exact match + for (UEdGraphPin* Pin : Node->Pins) + { + if (Pin->PinName.ToString() == PinName && (Direction == EGPD_MAX || Pin->Direction == Direction)) + { + UE_LOG(LogTemp, Display, TEXT(" - Found exact matching pin: '%s'"), *Pin->PinName.ToString()); + return Pin; + } + } + + // If no exact match and we're looking for a component reference, try case-insensitive match + for (UEdGraphPin* Pin : Node->Pins) + { + if (Pin->PinName.ToString().Equals(PinName, ESearchCase::IgnoreCase) && + (Direction == EGPD_MAX || Pin->Direction == Direction)) + { + UE_LOG(LogTemp, Display, TEXT(" - Found case-insensitive matching pin: '%s'"), *Pin->PinName.ToString()); + return Pin; + } + } + + // If we're looking for a component output and didn't find it by name, try to find the first data output pin + if (Direction == EGPD_Output && Cast(Node) != nullptr) + { + for (UEdGraphPin* Pin : Node->Pins) + { + if (Pin->Direction == EGPD_Output && Pin->PinType.PinCategory != UEdGraphSchema_K2::PC_Exec) + { + UE_LOG(LogTemp, Display, TEXT(" - Found fallback data output pin: '%s'"), *Pin->PinName.ToString()); + return Pin; + } + } + } + + UE_LOG(LogTemp, Warning, TEXT(" - No matching pin found for '%s'"), *PinName); + return nullptr; +} + +// Actor utilities +TSharedPtr FUnrealMCPCommonUtils::ActorToJson(AActor* Actor) +{ + if (!Actor) + { + return MakeShared(); + } + + TSharedPtr ActorObject = MakeShared(); + ActorObject->SetStringField(TEXT("name"), Actor->GetName()); + ActorObject->SetStringField(TEXT("class"), Actor->GetClass()->GetName()); + + FVector Location = Actor->GetActorLocation(); + TArray> LocationArray; + LocationArray.Add(MakeShared(Location.X)); + LocationArray.Add(MakeShared(Location.Y)); + LocationArray.Add(MakeShared(Location.Z)); + ActorObject->SetArrayField(TEXT("location"), LocationArray); + + FRotator Rotation = Actor->GetActorRotation(); + TArray> RotationArray; + RotationArray.Add(MakeShared(Rotation.Pitch)); + RotationArray.Add(MakeShared(Rotation.Yaw)); + RotationArray.Add(MakeShared(Rotation.Roll)); + ActorObject->SetArrayField(TEXT("rotation"), RotationArray); + + FVector Scale = Actor->GetActorScale3D(); + TArray> ScaleArray; + ScaleArray.Add(MakeShared(Scale.X)); + ScaleArray.Add(MakeShared(Scale.Y)); + ScaleArray.Add(MakeShared(Scale.Z)); + ActorObject->SetArrayField(TEXT("scale"), ScaleArray); + + return MakeShared(ActorObject); +} + +TSharedPtr FUnrealMCPCommonUtils::ActorToJsonObject(AActor* Actor, bool bDetailed) +{ + if (!Actor) + { + return nullptr; + } + + TSharedPtr ActorObject = MakeShared(); + ActorObject->SetStringField(TEXT("name"), Actor->GetName()); + ActorObject->SetStringField(TEXT("class"), Actor->GetClass()->GetName()); + + FVector Location = Actor->GetActorLocation(); + TArray> LocationArray; + LocationArray.Add(MakeShared(Location.X)); + LocationArray.Add(MakeShared(Location.Y)); + LocationArray.Add(MakeShared(Location.Z)); + ActorObject->SetArrayField(TEXT("location"), LocationArray); + + FRotator Rotation = Actor->GetActorRotation(); + TArray> RotationArray; + RotationArray.Add(MakeShared(Rotation.Pitch)); + RotationArray.Add(MakeShared(Rotation.Yaw)); + RotationArray.Add(MakeShared(Rotation.Roll)); + ActorObject->SetArrayField(TEXT("rotation"), RotationArray); + + FVector Scale = Actor->GetActorScale3D(); + TArray> ScaleArray; + ScaleArray.Add(MakeShared(Scale.X)); + ScaleArray.Add(MakeShared(Scale.Y)); + ScaleArray.Add(MakeShared(Scale.Z)); + ActorObject->SetArrayField(TEXT("scale"), ScaleArray); + + return ActorObject; +} + +UK2Node_Event* FUnrealMCPCommonUtils::FindExistingEventNode(UEdGraph* Graph, const FString& EventName) +{ + if (!Graph) + { + return nullptr; + } + + // Look for existing event nodes + for (UEdGraphNode* Node : Graph->Nodes) + { + UK2Node_Event* EventNode = Cast(Node); + if (EventNode && EventNode->EventReference.GetMemberName() == FName(*EventName)) + { + UE_LOG(LogTemp, Display, TEXT("Found existing event node with name: %s"), *EventName); + return EventNode; + } + } + + return nullptr; +} + +bool FUnrealMCPCommonUtils::SetObjectProperty(UObject* Object, const FString& PropertyName, + const TSharedPtr& Value, FString& OutErrorMessage) +{ + if (!Object) + { + OutErrorMessage = TEXT("Invalid object"); + return false; + } + + FProperty* Property = Object->GetClass()->FindPropertyByName(*PropertyName); + if (!Property) + { + OutErrorMessage = FString::Printf(TEXT("Property not found: %s"), *PropertyName); + return false; + } + + void* PropertyAddr = Property->ContainerPtrToValuePtr(Object); + + // Handle different property types + if (Property->IsA()) + { + ((FBoolProperty*)Property)->SetPropertyValue(PropertyAddr, Value->AsBool()); + return true; + } + else if (Property->IsA()) + { + int32 IntValue = static_cast(Value->AsNumber()); + FIntProperty* IntProperty = CastField(Property); + if (IntProperty) + { + IntProperty->SetPropertyValue_InContainer(Object, IntValue); + return true; + } + } + else if (Property->IsA()) + { + ((FFloatProperty*)Property)->SetPropertyValue(PropertyAddr, Value->AsNumber()); + return true; + } + else if (Property->IsA()) + { + ((FStrProperty*)Property)->SetPropertyValue(PropertyAddr, Value->AsString()); + return true; + } + else if (Property->IsA()) + { + FByteProperty* ByteProp = CastField(Property); + UEnum* EnumDef = ByteProp ? ByteProp->GetIntPropertyEnum() : nullptr; + + // If this is a TEnumAsByte property (has associated enum) + if (EnumDef) + { + // Handle numeric value + if (Value->Type == EJson::Number) + { + uint8 ByteValue = static_cast(Value->AsNumber()); + ByteProp->SetPropertyValue(PropertyAddr, ByteValue); + + UE_LOG(LogTemp, Display, TEXT("Setting enum property %s to numeric value: %d"), + *PropertyName, ByteValue); + return true; + } + // Handle string enum value + else if (Value->Type == EJson::String) + { + FString EnumValueName = Value->AsString(); + + // Try to convert numeric string to number first + if (EnumValueName.IsNumeric()) + { + uint8 ByteValue = FCString::Atoi(*EnumValueName); + ByteProp->SetPropertyValue(PropertyAddr, ByteValue); + + UE_LOG(LogTemp, Display, TEXT("Setting enum property %s to numeric string value: %s -> %d"), + *PropertyName, *EnumValueName, ByteValue); + return true; + } + + // Handle qualified enum names (e.g., "Player0" or "EAutoReceiveInput::Player0") + if (EnumValueName.Contains(TEXT("::"))) + { + EnumValueName.Split(TEXT("::"), nullptr, &EnumValueName); + } + + int64 EnumValue = EnumDef->GetValueByNameString(EnumValueName); + if (EnumValue == INDEX_NONE) + { + // Try with full name as fallback + EnumValue = EnumDef->GetValueByNameString(Value->AsString()); + } + + if (EnumValue != INDEX_NONE) + { + ByteProp->SetPropertyValue(PropertyAddr, static_cast(EnumValue)); + + UE_LOG(LogTemp, Display, TEXT("Setting enum property %s to name value: %s -> %lld"), + *PropertyName, *EnumValueName, EnumValue); + return true; + } + else + { + // Log all possible enum values for debugging + UE_LOG(LogTemp, Warning, TEXT("Could not find enum value for '%s'. Available options:"), *EnumValueName); + for (int32 i = 0; i < EnumDef->NumEnums(); i++) + { + UE_LOG(LogTemp, Warning, TEXT(" - %s (value: %d)"), + *EnumDef->GetNameStringByIndex(i), EnumDef->GetValueByIndex(i)); + } + + OutErrorMessage = FString::Printf(TEXT("Could not find enum value for '%s'"), *EnumValueName); + return false; + } + } + } + else + { + // Regular byte property + uint8 ByteValue = static_cast(Value->AsNumber()); + ByteProp->SetPropertyValue(PropertyAddr, ByteValue); + return true; + } + } + else if (Property->IsA()) + { + FEnumProperty* EnumProp = CastField(Property); + UEnum* EnumDef = EnumProp ? EnumProp->GetEnum() : nullptr; + FNumericProperty* UnderlyingNumericProp = EnumProp ? EnumProp->GetUnderlyingProperty() : nullptr; + + if (EnumDef && UnderlyingNumericProp) + { + // Handle numeric value + if (Value->Type == EJson::Number) + { + int64 EnumValue = static_cast(Value->AsNumber()); + UnderlyingNumericProp->SetIntPropertyValue(PropertyAddr, EnumValue); + + UE_LOG(LogTemp, Display, TEXT("Setting enum property %s to numeric value: %lld"), + *PropertyName, EnumValue); + return true; + } + // Handle string enum value + else if (Value->Type == EJson::String) + { + FString EnumValueName = Value->AsString(); + + // Try to convert numeric string to number first + if (EnumValueName.IsNumeric()) + { + int64 EnumValue = FCString::Atoi64(*EnumValueName); + UnderlyingNumericProp->SetIntPropertyValue(PropertyAddr, EnumValue); + + UE_LOG(LogTemp, Display, TEXT("Setting enum property %s to numeric string value: %s -> %lld"), + *PropertyName, *EnumValueName, EnumValue); + return true; + } + + // Handle qualified enum names + if (EnumValueName.Contains(TEXT("::"))) + { + EnumValueName.Split(TEXT("::"), nullptr, &EnumValueName); + } + + int64 EnumValue = EnumDef->GetValueByNameString(EnumValueName); + if (EnumValue == INDEX_NONE) + { + // Try with full name as fallback + EnumValue = EnumDef->GetValueByNameString(Value->AsString()); + } + + if (EnumValue != INDEX_NONE) + { + UnderlyingNumericProp->SetIntPropertyValue(PropertyAddr, EnumValue); + + UE_LOG(LogTemp, Display, TEXT("Setting enum property %s to name value: %s -> %lld"), + *PropertyName, *EnumValueName, EnumValue); + return true; + } + else + { + // Log all possible enum values for debugging + UE_LOG(LogTemp, Warning, TEXT("Could not find enum value for '%s'. Available options:"), *EnumValueName); + for (int32 i = 0; i < EnumDef->NumEnums(); i++) + { + UE_LOG(LogTemp, Warning, TEXT(" - %s (value: %d)"), + *EnumDef->GetNameStringByIndex(i), EnumDef->GetValueByIndex(i)); + } + + OutErrorMessage = FString::Printf(TEXT("Could not find enum value for '%s'"), *EnumValueName); + return false; + } + } + } + } + + OutErrorMessage = FString::Printf(TEXT("Unsupported property type: %s for property %s"), + *Property->GetClass()->GetName(), *PropertyName); + return false; +} \ No newline at end of file diff --git a/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Private/Commands/UnrealMCPEditorCommands.cpp b/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Private/Commands/UnrealMCPEditorCommands.cpp new file mode 100644 index 0000000..235e7f1 --- /dev/null +++ b/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Private/Commands/UnrealMCPEditorCommands.cpp @@ -0,0 +1,600 @@ +#include "Commands/UnrealMCPEditorCommands.h" +#include "Commands/UnrealMCPCommonUtils.h" +#include "Editor.h" +#include "EditorViewportClient.h" +#include "LevelEditorViewport.h" +#include "ImageUtils.h" +#include "HighResScreenshot.h" +#include "Engine/GameViewportClient.h" +#include "Misc/FileHelper.h" +#include "GameFramework/Actor.h" +#include "Engine/Selection.h" +#include "Kismet/GameplayStatics.h" +#include "Engine/StaticMeshActor.h" +#include "Engine/DirectionalLight.h" +#include "Engine/PointLight.h" +#include "Engine/SpotLight.h" +#include "Camera/CameraActor.h" +#include "Components/StaticMeshComponent.h" +#include "EditorSubsystem.h" +#include "Subsystems/EditorActorSubsystem.h" +#include "Engine/Blueprint.h" +#include "Engine/BlueprintGeneratedClass.h" + +FUnrealMCPEditorCommands::FUnrealMCPEditorCommands() +{ +} + +TSharedPtr FUnrealMCPEditorCommands::HandleCommand(const FString& CommandType, const TSharedPtr& Params) +{ + // Actor manipulation commands + if (CommandType == TEXT("get_actors_in_level")) + { + return HandleGetActorsInLevel(Params); + } + else if (CommandType == TEXT("find_actors_by_name")) + { + return HandleFindActorsByName(Params); + } + else if (CommandType == TEXT("spawn_actor") || CommandType == TEXT("create_actor")) + { + if (CommandType == TEXT("create_actor")) + { + UE_LOG(LogTemp, Warning, TEXT("'create_actor' command is deprecated and will be removed in a future version. Please use 'spawn_actor' instead.")); + } + return HandleSpawnActor(Params); + } + else if (CommandType == TEXT("delete_actor")) + { + return HandleDeleteActor(Params); + } + else if (CommandType == TEXT("set_actor_transform")) + { + return HandleSetActorTransform(Params); + } + else if (CommandType == TEXT("get_actor_properties")) + { + return HandleGetActorProperties(Params); + } + else if (CommandType == TEXT("set_actor_property")) + { + return HandleSetActorProperty(Params); + } + // Blueprint actor spawning + else if (CommandType == TEXT("spawn_blueprint_actor")) + { + return HandleSpawnBlueprintActor(Params); + } + // Editor viewport commands + else if (CommandType == TEXT("focus_viewport")) + { + return HandleFocusViewport(Params); + } + else if (CommandType == TEXT("take_screenshot")) + { + return HandleTakeScreenshot(Params); + } + + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Unknown editor command: %s"), *CommandType)); +} + +TSharedPtr FUnrealMCPEditorCommands::HandleGetActorsInLevel(const TSharedPtr& Params) +{ + TArray AllActors; + UGameplayStatics::GetAllActorsOfClass(GWorld, AActor::StaticClass(), AllActors); + + TArray> ActorArray; + for (AActor* Actor : AllActors) + { + if (Actor) + { + ActorArray.Add(FUnrealMCPCommonUtils::ActorToJson(Actor)); + } + } + + TSharedPtr ResultObj = MakeShared(); + ResultObj->SetArrayField(TEXT("actors"), ActorArray); + + return ResultObj; +} + +TSharedPtr FUnrealMCPEditorCommands::HandleFindActorsByName(const TSharedPtr& Params) +{ + FString Pattern; + if (!Params->TryGetStringField(TEXT("pattern"), Pattern)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'pattern' parameter")); + } + + TArray AllActors; + UGameplayStatics::GetAllActorsOfClass(GWorld, AActor::StaticClass(), AllActors); + + TArray> MatchingActors; + for (AActor* Actor : AllActors) + { + if (Actor && Actor->GetName().Contains(Pattern)) + { + MatchingActors.Add(FUnrealMCPCommonUtils::ActorToJson(Actor)); + } + } + + TSharedPtr ResultObj = MakeShared(); + ResultObj->SetArrayField(TEXT("actors"), MatchingActors); + + return ResultObj; +} + +TSharedPtr FUnrealMCPEditorCommands::HandleSpawnActor(const TSharedPtr& Params) +{ + // Get required parameters + FString ActorType; + if (!Params->TryGetStringField(TEXT("type"), ActorType)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'type' parameter")); + } + + // Get actor name (required parameter) + FString ActorName; + if (!Params->TryGetStringField(TEXT("name"), ActorName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'name' parameter")); + } + + // Get optional transform parameters + FVector Location(0.0f, 0.0f, 0.0f); + FRotator Rotation(0.0f, 0.0f, 0.0f); + FVector Scale(1.0f, 1.0f, 1.0f); + + if (Params->HasField(TEXT("location"))) + { + Location = FUnrealMCPCommonUtils::GetVectorFromJson(Params, TEXT("location")); + } + if (Params->HasField(TEXT("rotation"))) + { + Rotation = FUnrealMCPCommonUtils::GetRotatorFromJson(Params, TEXT("rotation")); + } + if (Params->HasField(TEXT("scale"))) + { + Scale = FUnrealMCPCommonUtils::GetVectorFromJson(Params, TEXT("scale")); + } + + // Create the actor based on type + AActor* NewActor = nullptr; + UWorld* World = GEditor->GetEditorWorldContext().World(); + + if (!World) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Failed to get editor world")); + } + + // Check if an actor with this name already exists + TArray AllActors; + UGameplayStatics::GetAllActorsOfClass(World, AActor::StaticClass(), AllActors); + for (AActor* Actor : AllActors) + { + if (Actor && Actor->GetName() == ActorName) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Actor with name '%s' already exists"), *ActorName)); + } + } + + FActorSpawnParameters SpawnParams; + SpawnParams.Name = *ActorName; + + if (ActorType == TEXT("StaticMeshActor")) + { + NewActor = World->SpawnActor(AStaticMeshActor::StaticClass(), Location, Rotation, SpawnParams); + } + else if (ActorType == TEXT("PointLight")) + { + NewActor = World->SpawnActor(APointLight::StaticClass(), Location, Rotation, SpawnParams); + } + else if (ActorType == TEXT("SpotLight")) + { + NewActor = World->SpawnActor(ASpotLight::StaticClass(), Location, Rotation, SpawnParams); + } + else if (ActorType == TEXT("DirectionalLight")) + { + NewActor = World->SpawnActor(ADirectionalLight::StaticClass(), Location, Rotation, SpawnParams); + } + else if (ActorType == TEXT("CameraActor")) + { + NewActor = World->SpawnActor(ACameraActor::StaticClass(), Location, Rotation, SpawnParams); + } + else + { + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Unknown actor type: %s"), *ActorType)); + } + + if (NewActor) + { + // Set scale (since SpawnActor only takes location and rotation) + FTransform Transform = NewActor->GetTransform(); + Transform.SetScale3D(Scale); + NewActor->SetActorTransform(Transform); + + // Return the created actor's details + return FUnrealMCPCommonUtils::ActorToJsonObject(NewActor, true); + } + + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Failed to create actor")); +} + +TSharedPtr FUnrealMCPEditorCommands::HandleDeleteActor(const TSharedPtr& Params) +{ + FString ActorName; + if (!Params->TryGetStringField(TEXT("name"), ActorName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'name' parameter")); + } + + TArray AllActors; + UGameplayStatics::GetAllActorsOfClass(GWorld, AActor::StaticClass(), AllActors); + + for (AActor* Actor : AllActors) + { + if (Actor && Actor->GetName() == ActorName) + { + // Store actor info before deletion for the response + TSharedPtr ActorInfo = FUnrealMCPCommonUtils::ActorToJsonObject(Actor); + + // Delete the actor + Actor->Destroy(); + + TSharedPtr ResultObj = MakeShared(); + ResultObj->SetObjectField(TEXT("deleted_actor"), ActorInfo); + return ResultObj; + } + } + + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Actor not found: %s"), *ActorName)); +} + +TSharedPtr FUnrealMCPEditorCommands::HandleSetActorTransform(const TSharedPtr& Params) +{ + // Get actor name + FString ActorName; + if (!Params->TryGetStringField(TEXT("name"), ActorName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'name' parameter")); + } + + // Find the actor + AActor* TargetActor = nullptr; + TArray AllActors; + UGameplayStatics::GetAllActorsOfClass(GWorld, AActor::StaticClass(), AllActors); + + for (AActor* Actor : AllActors) + { + if (Actor && Actor->GetName() == ActorName) + { + TargetActor = Actor; + break; + } + } + + if (!TargetActor) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Actor not found: %s"), *ActorName)); + } + + // Get transform parameters + FTransform NewTransform = TargetActor->GetTransform(); + + if (Params->HasField(TEXT("location"))) + { + NewTransform.SetLocation(FUnrealMCPCommonUtils::GetVectorFromJson(Params, TEXT("location"))); + } + if (Params->HasField(TEXT("rotation"))) + { + NewTransform.SetRotation(FQuat(FUnrealMCPCommonUtils::GetRotatorFromJson(Params, TEXT("rotation")))); + } + if (Params->HasField(TEXT("scale"))) + { + NewTransform.SetScale3D(FUnrealMCPCommonUtils::GetVectorFromJson(Params, TEXT("scale"))); + } + + // Set the new transform + TargetActor->SetActorTransform(NewTransform); + + // Return updated actor info + return FUnrealMCPCommonUtils::ActorToJsonObject(TargetActor, true); +} + +TSharedPtr FUnrealMCPEditorCommands::HandleGetActorProperties(const TSharedPtr& Params) +{ + // Get actor name + FString ActorName; + if (!Params->TryGetStringField(TEXT("name"), ActorName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'name' parameter")); + } + + // Find the actor + AActor* TargetActor = nullptr; + TArray AllActors; + UGameplayStatics::GetAllActorsOfClass(GWorld, AActor::StaticClass(), AllActors); + + for (AActor* Actor : AllActors) + { + if (Actor && Actor->GetName() == ActorName) + { + TargetActor = Actor; + break; + } + } + + if (!TargetActor) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Actor not found: %s"), *ActorName)); + } + + // Always return detailed properties for this command + return FUnrealMCPCommonUtils::ActorToJsonObject(TargetActor, true); +} + +TSharedPtr FUnrealMCPEditorCommands::HandleSetActorProperty(const TSharedPtr& Params) +{ + // Get actor name + FString ActorName; + if (!Params->TryGetStringField(TEXT("name"), ActorName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'name' parameter")); + } + + // Find the actor + AActor* TargetActor = nullptr; + TArray AllActors; + UGameplayStatics::GetAllActorsOfClass(GWorld, AActor::StaticClass(), AllActors); + + for (AActor* Actor : AllActors) + { + if (Actor && Actor->GetName() == ActorName) + { + TargetActor = Actor; + break; + } + } + + if (!TargetActor) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Actor not found: %s"), *ActorName)); + } + + // Get property name + FString PropertyName; + if (!Params->TryGetStringField(TEXT("property_name"), PropertyName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'property_name' parameter")); + } + + // Get property value + if (!Params->HasField(TEXT("property_value"))) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'property_value' parameter")); + } + + TSharedPtr PropertyValue = Params->Values.FindRef(TEXT("property_value")); + + // Set the property using our utility function + FString ErrorMessage; + if (FUnrealMCPCommonUtils::SetObjectProperty(TargetActor, PropertyName, PropertyValue, ErrorMessage)) + { + // Property set successfully + TSharedPtr ResultObj = MakeShared(); + ResultObj->SetStringField(TEXT("actor"), ActorName); + ResultObj->SetStringField(TEXT("property"), PropertyName); + ResultObj->SetBoolField(TEXT("success"), true); + + // Also include the full actor details + ResultObj->SetObjectField(TEXT("actor_details"), FUnrealMCPCommonUtils::ActorToJsonObject(TargetActor, true)); + return ResultObj; + } + else + { + return FUnrealMCPCommonUtils::CreateErrorResponse(ErrorMessage); + } +} + +TSharedPtr FUnrealMCPEditorCommands::HandleSpawnBlueprintActor(const TSharedPtr& Params) +{ + // Get required parameters + FString BlueprintName; + if (!Params->TryGetStringField(TEXT("blueprint_name"), BlueprintName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'blueprint_name' parameter")); + } + + FString ActorName; + if (!Params->TryGetStringField(TEXT("actor_name"), ActorName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'actor_name' parameter")); + } + + // Find the blueprint + if (BlueprintName.IsEmpty()) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Blueprint name is empty")); + } + + FString Root = TEXT("/Game/Blueprints/"); + FString AssetPath = Root + BlueprintName; + + if (!FPackageName::DoesPackageExist(AssetPath)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Blueprint '%s' not found – it must reside under /Game/Blueprints"), *BlueprintName)); + } + + UBlueprint* Blueprint = LoadObject(nullptr, *AssetPath); + if (!Blueprint) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Blueprint not found: %s"), *BlueprintName)); + } + + // Get transform parameters + FVector Location(0.0f, 0.0f, 0.0f); + FRotator Rotation(0.0f, 0.0f, 0.0f); + FVector Scale(1.0f, 1.0f, 1.0f); + + if (Params->HasField(TEXT("location"))) + { + Location = FUnrealMCPCommonUtils::GetVectorFromJson(Params, TEXT("location")); + } + if (Params->HasField(TEXT("rotation"))) + { + Rotation = FUnrealMCPCommonUtils::GetRotatorFromJson(Params, TEXT("rotation")); + } + if (Params->HasField(TEXT("scale"))) + { + Scale = FUnrealMCPCommonUtils::GetVectorFromJson(Params, TEXT("scale")); + } + + // Spawn the actor + UWorld* World = GEditor->GetEditorWorldContext().World(); + if (!World) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Failed to get editor world")); + } + + FTransform SpawnTransform; + SpawnTransform.SetLocation(Location); + SpawnTransform.SetRotation(FQuat(Rotation)); + SpawnTransform.SetScale3D(Scale); + + FActorSpawnParameters SpawnParams; + SpawnParams.Name = *ActorName; + + AActor* NewActor = World->SpawnActor(Blueprint->GeneratedClass, SpawnTransform, SpawnParams); + if (NewActor) + { + return FUnrealMCPCommonUtils::ActorToJsonObject(NewActor, true); + } + + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Failed to spawn blueprint actor")); +} + +TSharedPtr FUnrealMCPEditorCommands::HandleFocusViewport(const TSharedPtr& Params) +{ + // Get target actor name if provided + FString TargetActorName; + bool HasTargetActor = Params->TryGetStringField(TEXT("target"), TargetActorName); + + // Get location if provided + FVector Location(0.0f, 0.0f, 0.0f); + bool HasLocation = false; + if (Params->HasField(TEXT("location"))) + { + Location = FUnrealMCPCommonUtils::GetVectorFromJson(Params, TEXT("location")); + HasLocation = true; + } + + // Get distance + float Distance = 1000.0f; + if (Params->HasField(TEXT("distance"))) + { + Distance = Params->GetNumberField(TEXT("distance")); + } + + // Get orientation if provided + FRotator Orientation(0.0f, 0.0f, 0.0f); + bool HasOrientation = false; + if (Params->HasField(TEXT("orientation"))) + { + Orientation = FUnrealMCPCommonUtils::GetRotatorFromJson(Params, TEXT("orientation")); + HasOrientation = true; + } + + // Get the active viewport + FLevelEditorViewportClient* ViewportClient = (FLevelEditorViewportClient*)GEditor->GetActiveViewport()->GetClient(); + if (!ViewportClient) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Failed to get active viewport")); + } + + // If we have a target actor, focus on it + if (HasTargetActor) + { + // Find the actor + AActor* TargetActor = nullptr; + TArray AllActors; + UGameplayStatics::GetAllActorsOfClass(GWorld, AActor::StaticClass(), AllActors); + + for (AActor* Actor : AllActors) + { + if (Actor && Actor->GetName() == TargetActorName) + { + TargetActor = Actor; + break; + } + } + + if (!TargetActor) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Actor not found: %s"), *TargetActorName)); + } + + // Focus on the actor + ViewportClient->SetViewLocation(TargetActor->GetActorLocation() - FVector(Distance, 0.0f, 0.0f)); + } + // Otherwise use the provided location + else if (HasLocation) + { + ViewportClient->SetViewLocation(Location - FVector(Distance, 0.0f, 0.0f)); + } + else + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Either 'target' or 'location' must be provided")); + } + + // Set orientation if provided + if (HasOrientation) + { + ViewportClient->SetViewRotation(Orientation); + } + + // Force viewport to redraw + ViewportClient->Invalidate(); + + TSharedPtr ResultObj = MakeShared(); + ResultObj->SetBoolField(TEXT("success"), true); + return ResultObj; +} + +TSharedPtr FUnrealMCPEditorCommands::HandleTakeScreenshot(const TSharedPtr& Params) +{ + // Get file path parameter + FString FilePath; + if (!Params->TryGetStringField(TEXT("filepath"), FilePath)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'filepath' parameter")); + } + + // Ensure the file path has a proper extension + if (!FilePath.EndsWith(TEXT(".png"))) + { + FilePath += TEXT(".png"); + } + + // Get the active viewport + if (GEditor && GEditor->GetActiveViewport()) + { + FViewport* Viewport = GEditor->GetActiveViewport(); + TArray Bitmap; + FIntRect ViewportRect(0, 0, Viewport->GetSizeXY().X, Viewport->GetSizeXY().Y); + + if (Viewport->ReadPixels(Bitmap, FReadSurfaceDataFlags(), ViewportRect)) + { + TArray CompressedBitmap; + FImageUtils::CompressImageArray(Viewport->GetSizeXY().X, Viewport->GetSizeXY().Y, Bitmap, CompressedBitmap); + + if (FFileHelper::SaveArrayToFile(CompressedBitmap, *FilePath)) + { + TSharedPtr ResultObj = MakeShared(); + ResultObj->SetStringField(TEXT("filepath"), FilePath); + return ResultObj; + } + } + } + + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Failed to take screenshot")); +} \ No newline at end of file diff --git a/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Private/Commands/UnrealMCPProjectCommands.cpp b/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Private/Commands/UnrealMCPProjectCommands.cpp new file mode 100644 index 0000000..bbf85af --- /dev/null +++ b/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Private/Commands/UnrealMCPProjectCommands.cpp @@ -0,0 +1,72 @@ +#include "Commands/UnrealMCPProjectCommands.h" +#include "Commands/UnrealMCPCommonUtils.h" +#include "GameFramework/InputSettings.h" + +FUnrealMCPProjectCommands::FUnrealMCPProjectCommands() +{ +} + +TSharedPtr FUnrealMCPProjectCommands::HandleCommand(const FString& CommandType, const TSharedPtr& Params) +{ + if (CommandType == TEXT("create_input_mapping")) + { + return HandleCreateInputMapping(Params); + } + + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Unknown project command: %s"), *CommandType)); +} + +TSharedPtr FUnrealMCPProjectCommands::HandleCreateInputMapping(const TSharedPtr& Params) +{ + // Get required parameters + FString ActionName; + if (!Params->TryGetStringField(TEXT("action_name"), ActionName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'action_name' parameter")); + } + + FString Key; + if (!Params->TryGetStringField(TEXT("key"), Key)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'key' parameter")); + } + + // Get the input settings + UInputSettings* InputSettings = GetMutableDefault(); + if (!InputSettings) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Failed to get input settings")); + } + + // Create the input action mapping + FInputActionKeyMapping ActionMapping; + ActionMapping.ActionName = FName(*ActionName); + ActionMapping.Key = FKey(*Key); + + // Add modifiers if provided + if (Params->HasField(TEXT("shift"))) + { + ActionMapping.bShift = Params->GetBoolField(TEXT("shift")); + } + if (Params->HasField(TEXT("ctrl"))) + { + ActionMapping.bCtrl = Params->GetBoolField(TEXT("ctrl")); + } + if (Params->HasField(TEXT("alt"))) + { + ActionMapping.bAlt = Params->GetBoolField(TEXT("alt")); + } + if (Params->HasField(TEXT("cmd"))) + { + ActionMapping.bCmd = Params->GetBoolField(TEXT("cmd")); + } + + // Add the mapping + InputSettings->AddActionMapping(ActionMapping); + InputSettings->SaveConfig(); + + TSharedPtr ResultObj = MakeShared(); + ResultObj->SetStringField(TEXT("action_name"), ActionName); + ResultObj->SetStringField(TEXT("key"), Key); + return ResultObj; +} \ No newline at end of file diff --git a/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Private/Commands/UnrealMCPUMGCommands.cpp b/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Private/Commands/UnrealMCPUMGCommands.cpp new file mode 100644 index 0000000..ceb4193 --- /dev/null +++ b/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Private/Commands/UnrealMCPUMGCommands.cpp @@ -0,0 +1,544 @@ +#include "Commands/UnrealMCPUMGCommands.h" +#include "Commands/UnrealMCPCommonUtils.h" +#include "Editor.h" +#include "EditorAssetLibrary.h" +#include "AssetRegistry/AssetRegistryModule.h" +#include "Blueprint/UserWidget.h" +#include "Components/TextBlock.h" +#include "WidgetBlueprint.h" +// We'll create widgets using regular Factory classes +#include "Factories/Factory.h" +// Remove problematic includes that don't exist in UE 5.5 +// #include "UMGEditorSubsystem.h" +// #include "WidgetBlueprintFactory.h" +#include "WidgetBlueprintEditor.h" +#include "Blueprint/WidgetTree.h" +#include "Components/CanvasPanel.h" +#include "Components/CanvasPanelSlot.h" +#include "JsonObjectConverter.h" +#include "Kismet2/BlueprintEditorUtils.h" +#include "Components/Button.h" +#include "K2Node_FunctionEntry.h" +#include "K2Node_CallFunction.h" +#include "K2Node_VariableGet.h" +#include "K2Node_VariableSet.h" +#include "Kismet/GameplayStatics.h" +#include "Kismet2/KismetEditorUtilities.h" +#include "K2Node_Event.h" + +FUnrealMCPUMGCommands::FUnrealMCPUMGCommands() +{ +} + +TSharedPtr FUnrealMCPUMGCommands::HandleCommand(const FString& CommandName, const TSharedPtr& Params) +{ + if (CommandName == TEXT("create_umg_widget_blueprint")) + { + return HandleCreateUMGWidgetBlueprint(Params); + } + else if (CommandName == TEXT("add_text_block_to_widget")) + { + return HandleAddTextBlockToWidget(Params); + } + else if (CommandName == TEXT("add_widget_to_viewport")) + { + return HandleAddWidgetToViewport(Params); + } + else if (CommandName == TEXT("add_button_to_widget")) + { + return HandleAddButtonToWidget(Params); + } + else if (CommandName == TEXT("bind_widget_event")) + { + return HandleBindWidgetEvent(Params); + } + else if (CommandName == TEXT("set_text_block_binding")) + { + return HandleSetTextBlockBinding(Params); + } + + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Unknown UMG command: %s"), *CommandName)); +} + +TSharedPtr FUnrealMCPUMGCommands::HandleCreateUMGWidgetBlueprint(const TSharedPtr& Params) +{ + // Get required parameters + FString BlueprintName; + if (!Params->TryGetStringField(TEXT("name"), BlueprintName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'name' parameter")); + } + + // Create the full asset path + FString PackagePath = TEXT("/Game/Widgets/"); + FString AssetName = BlueprintName; + FString FullPath = PackagePath + AssetName; + + // Check if asset already exists + if (UEditorAssetLibrary::DoesAssetExist(FullPath)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Widget Blueprint '%s' already exists"), *BlueprintName)); + } + + // Create package + UPackage* Package = CreatePackage(*FullPath); + if (!Package) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Failed to create package")); + } + + // Create Widget Blueprint using KismetEditorUtilities + UBlueprint* NewBlueprint = FKismetEditorUtilities::CreateBlueprint( + UUserWidget::StaticClass(), // Parent class + Package, // Outer package + FName(*AssetName), // Blueprint name + BPTYPE_Normal, // Blueprint type + UBlueprint::StaticClass(), // Blueprint class + UBlueprintGeneratedClass::StaticClass(), // Generated class + FName("CreateUMGWidget") // Creation method name + ); + + // Make sure the Blueprint was created successfully + UWidgetBlueprint* WidgetBlueprint = Cast(NewBlueprint); + if (!WidgetBlueprint) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Failed to create Widget Blueprint")); + } + + // Add a default Canvas Panel if one doesn't exist + if (!WidgetBlueprint->WidgetTree->RootWidget) + { + UCanvasPanel* RootCanvas = WidgetBlueprint->WidgetTree->ConstructWidget(UCanvasPanel::StaticClass()); + WidgetBlueprint->WidgetTree->RootWidget = RootCanvas; + } + + // Mark the package dirty and notify asset registry + Package->MarkPackageDirty(); + FAssetRegistryModule::AssetCreated(WidgetBlueprint); + + // Compile the blueprint + FKismetEditorUtilities::CompileBlueprint(WidgetBlueprint); + + // Create success response + TSharedPtr ResultObj = MakeShared(); + ResultObj->SetStringField(TEXT("name"), BlueprintName); + ResultObj->SetStringField(TEXT("path"), FullPath); + return ResultObj; +} + +TSharedPtr FUnrealMCPUMGCommands::HandleAddTextBlockToWidget(const TSharedPtr& Params) +{ + // Get required parameters + FString BlueprintName; + if (!Params->TryGetStringField(TEXT("blueprint_name"), BlueprintName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'blueprint_name' parameter")); + } + + FString WidgetName; + if (!Params->TryGetStringField(TEXT("widget_name"), WidgetName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'widget_name' parameter")); + } + + // Find the Widget Blueprint + FString FullPath = TEXT("/Game/Widgets/") + BlueprintName; + UWidgetBlueprint* WidgetBlueprint = Cast(UEditorAssetLibrary::LoadAsset(FullPath)); + if (!WidgetBlueprint) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Widget Blueprint '%s' not found"), *BlueprintName)); + } + + // Get optional parameters + FString InitialText = TEXT("New Text Block"); + Params->TryGetStringField(TEXT("text"), InitialText); + + FVector2D Position(0.0f, 0.0f); + if (Params->HasField(TEXT("position"))) + { + const TArray>* PosArray; + if (Params->TryGetArrayField(TEXT("position"), PosArray) && PosArray->Num() >= 2) + { + Position.X = (*PosArray)[0]->AsNumber(); + Position.Y = (*PosArray)[1]->AsNumber(); + } + } + + // Create Text Block widget + UTextBlock* TextBlock = WidgetBlueprint->WidgetTree->ConstructWidget(UTextBlock::StaticClass(), *WidgetName); + if (!TextBlock) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Failed to create Text Block widget")); + } + + // Set initial text + TextBlock->SetText(FText::FromString(InitialText)); + + // Add to canvas panel + UCanvasPanel* RootCanvas = Cast(WidgetBlueprint->WidgetTree->RootWidget); + if (!RootCanvas) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Root Canvas Panel not found")); + } + + UCanvasPanelSlot* PanelSlot = RootCanvas->AddChildToCanvas(TextBlock); + PanelSlot->SetPosition(Position); + + // Mark the package dirty and compile + WidgetBlueprint->MarkPackageDirty(); + FKismetEditorUtilities::CompileBlueprint(WidgetBlueprint); + + // Create success response + TSharedPtr ResultObj = MakeShared(); + ResultObj->SetStringField(TEXT("widget_name"), WidgetName); + ResultObj->SetStringField(TEXT("text"), InitialText); + return ResultObj; +} + +TSharedPtr FUnrealMCPUMGCommands::HandleAddWidgetToViewport(const TSharedPtr& Params) +{ + // Get required parameters + FString BlueprintName; + if (!Params->TryGetStringField(TEXT("blueprint_name"), BlueprintName)) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Missing 'blueprint_name' parameter")); + } + + // Find the Widget Blueprint + FString FullPath = TEXT("/Game/Widgets/") + BlueprintName; + UWidgetBlueprint* WidgetBlueprint = Cast(UEditorAssetLibrary::LoadAsset(FullPath)); + if (!WidgetBlueprint) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(FString::Printf(TEXT("Widget Blueprint '%s' not found"), *BlueprintName)); + } + + // Get optional Z-order parameter + int32 ZOrder = 0; + Params->TryGetNumberField(TEXT("z_order"), ZOrder); + + // Create widget instance + UClass* WidgetClass = WidgetBlueprint->GeneratedClass; + if (!WidgetClass) + { + return FUnrealMCPCommonUtils::CreateErrorResponse(TEXT("Failed to get widget class")); + } + + // Note: This creates the widget but doesn't add it to viewport + // The actual addition to viewport should be done through Blueprint nodes + // as it requires a game context + + // Create success response with instructions + TSharedPtr ResultObj = MakeShared(); + ResultObj->SetStringField(TEXT("blueprint_name"), BlueprintName); + ResultObj->SetStringField(TEXT("class_path"), WidgetClass->GetPathName()); + ResultObj->SetNumberField(TEXT("z_order"), ZOrder); + ResultObj->SetStringField(TEXT("note"), TEXT("Widget class ready. Use CreateWidget and AddToViewport nodes in Blueprint to display in game.")); + return ResultObj; +} + +TSharedPtr FUnrealMCPUMGCommands::HandleAddButtonToWidget(const TSharedPtr& Params) +{ + TSharedPtr Response = MakeShared(); + + // Get required parameters + FString BlueprintName; + if (!Params->TryGetStringField(TEXT("blueprint_name"), BlueprintName)) + { + Response->SetStringField(TEXT("error"), TEXT("Missing blueprint_name parameter")); + return Response; + } + + FString WidgetName; + if (!Params->TryGetStringField(TEXT("widget_name"), WidgetName)) + { + Response->SetStringField(TEXT("error"), TEXT("Missing widget_name parameter")); + return Response; + } + + FString ButtonText; + if (!Params->TryGetStringField(TEXT("text"), ButtonText)) + { + Response->SetStringField(TEXT("error"), TEXT("Missing text parameter")); + return Response; + } + + // Load the Widget Blueprint + const FString BlueprintPath = FString::Printf(TEXT("/Game/Widgets/%s.%s"), *BlueprintName, *BlueprintName); + UWidgetBlueprint* WidgetBlueprint = Cast(UEditorAssetLibrary::LoadAsset(BlueprintPath)); + if (!WidgetBlueprint) + { + Response->SetStringField(TEXT("error"), FString::Printf(TEXT("Failed to load Widget Blueprint: %s"), *BlueprintPath)); + return Response; + } + + // Create Button widget + UButton* Button = NewObject(WidgetBlueprint->GeneratedClass->GetDefaultObject(), UButton::StaticClass(), *WidgetName); + if (!Button) + { + Response->SetStringField(TEXT("error"), TEXT("Failed to create Button widget")); + return Response; + } + + // Set button text + UTextBlock* ButtonTextBlock = NewObject(Button, UTextBlock::StaticClass(), *(WidgetName + TEXT("_Text"))); + if (ButtonTextBlock) + { + ButtonTextBlock->SetText(FText::FromString(ButtonText)); + Button->AddChild(ButtonTextBlock); + } + + // Get canvas panel and add button + UCanvasPanel* RootCanvas = Cast(WidgetBlueprint->WidgetTree->RootWidget); + if (!RootCanvas) + { + Response->SetStringField(TEXT("error"), TEXT("Root widget is not a Canvas Panel")); + return Response; + } + + // Add to canvas and set position + UCanvasPanelSlot* ButtonSlot = RootCanvas->AddChildToCanvas(Button); + if (ButtonSlot) + { + const TArray>* Position; + if (Params->TryGetArrayField(TEXT("position"), Position) && Position->Num() >= 2) + { + FVector2D Pos( + (*Position)[0]->AsNumber(), + (*Position)[1]->AsNumber() + ); + ButtonSlot->SetPosition(Pos); + } + } + + // Save the Widget Blueprint + FKismetEditorUtilities::CompileBlueprint(WidgetBlueprint); + UEditorAssetLibrary::SaveAsset(BlueprintPath, false); + + Response->SetBoolField(TEXT("success"), true); + Response->SetStringField(TEXT("widget_name"), WidgetName); + return Response; +} + +TSharedPtr FUnrealMCPUMGCommands::HandleBindWidgetEvent(const TSharedPtr& Params) +{ + TSharedPtr Response = MakeShared(); + + // Get required parameters + FString BlueprintName; + if (!Params->TryGetStringField(TEXT("blueprint_name"), BlueprintName)) + { + Response->SetStringField(TEXT("error"), TEXT("Missing blueprint_name parameter")); + return Response; + } + + FString WidgetName; + if (!Params->TryGetStringField(TEXT("widget_name"), WidgetName)) + { + Response->SetStringField(TEXT("error"), TEXT("Missing widget_name parameter")); + return Response; + } + + FString EventName; + if (!Params->TryGetStringField(TEXT("event_name"), EventName)) + { + Response->SetStringField(TEXT("error"), TEXT("Missing event_name parameter")); + return Response; + } + + // Load the Widget Blueprint + const FString BlueprintPath = FString::Printf(TEXT("/Game/Widgets/%s.%s"), *BlueprintName, *BlueprintName); + UWidgetBlueprint* WidgetBlueprint = Cast(UEditorAssetLibrary::LoadAsset(BlueprintPath)); + if (!WidgetBlueprint) + { + Response->SetStringField(TEXT("error"), FString::Printf(TEXT("Failed to load Widget Blueprint: %s"), *BlueprintPath)); + return Response; + } + + // Create the event graph if it doesn't exist + UEdGraph* EventGraph = FBlueprintEditorUtils::FindEventGraph(WidgetBlueprint); + if (!EventGraph) + { + Response->SetStringField(TEXT("error"), TEXT("Failed to find or create event graph")); + return Response; + } + + // Find the widget in the blueprint + UWidget* Widget = WidgetBlueprint->WidgetTree->FindWidget(*WidgetName); + if (!Widget) + { + Response->SetStringField(TEXT("error"), FString::Printf(TEXT("Failed to find widget: %s"), *WidgetName)); + return Response; + } + + // Create the event node (e.g., OnClicked for buttons) + UK2Node_Event* EventNode = nullptr; + + // Find existing nodes first + TArray AllEventNodes; + FBlueprintEditorUtils::GetAllNodesOfClass(WidgetBlueprint, AllEventNodes); + + for (UK2Node_Event* Node : AllEventNodes) + { + if (Node->CustomFunctionName == FName(*EventName) && Node->EventReference.GetMemberParentClass() == Widget->GetClass()) + { + EventNode = Node; + break; + } + } + + // If no existing node, create a new one + if (!EventNode) + { + // Calculate position - place it below existing nodes + float MaxHeight = 0.0f; + for (UEdGraphNode* Node : EventGraph->Nodes) + { + MaxHeight = FMath::Max(MaxHeight, Node->NodePosY); + } + + const FVector2D NodePos(200, MaxHeight + 200); + + // Call CreateNewBoundEventForClass, which returns void, so we can't capture the return value directly + // We'll need to find the node after creating it + FKismetEditorUtilities::CreateNewBoundEventForClass( + Widget->GetClass(), + FName(*EventName), + WidgetBlueprint, + nullptr // We don't need a specific property binding + ); + + // Now find the newly created node + TArray UpdatedEventNodes; + FBlueprintEditorUtils::GetAllNodesOfClass(WidgetBlueprint, UpdatedEventNodes); + + for (UK2Node_Event* Node : UpdatedEventNodes) + { + if (Node->CustomFunctionName == FName(*EventName) && Node->EventReference.GetMemberParentClass() == Widget->GetClass()) + { + EventNode = Node; + + // Set position of the node + EventNode->NodePosX = NodePos.X; + EventNode->NodePosY = NodePos.Y; + + break; + } + } + } + + if (!EventNode) + { + Response->SetStringField(TEXT("error"), TEXT("Failed to create event node")); + return Response; + } + + // Save the Widget Blueprint + FKismetEditorUtilities::CompileBlueprint(WidgetBlueprint); + UEditorAssetLibrary::SaveAsset(BlueprintPath, false); + + Response->SetBoolField(TEXT("success"), true); + Response->SetStringField(TEXT("event_name"), EventName); + return Response; +} + +TSharedPtr FUnrealMCPUMGCommands::HandleSetTextBlockBinding(const TSharedPtr& Params) +{ + TSharedPtr Response = MakeShared(); + + // Get required parameters + FString BlueprintName; + if (!Params->TryGetStringField(TEXT("blueprint_name"), BlueprintName)) + { + Response->SetStringField(TEXT("error"), TEXT("Missing blueprint_name parameter")); + return Response; + } + + FString WidgetName; + if (!Params->TryGetStringField(TEXT("widget_name"), WidgetName)) + { + Response->SetStringField(TEXT("error"), TEXT("Missing widget_name parameter")); + return Response; + } + + FString BindingName; + if (!Params->TryGetStringField(TEXT("binding_name"), BindingName)) + { + Response->SetStringField(TEXT("error"), TEXT("Missing binding_name parameter")); + return Response; + } + + // Load the Widget Blueprint + const FString BlueprintPath = FString::Printf(TEXT("/Game/Widgets/%s.%s"), *BlueprintName, *BlueprintName); + UWidgetBlueprint* WidgetBlueprint = Cast(UEditorAssetLibrary::LoadAsset(BlueprintPath)); + if (!WidgetBlueprint) + { + Response->SetStringField(TEXT("error"), FString::Printf(TEXT("Failed to load Widget Blueprint: %s"), *BlueprintPath)); + return Response; + } + + // Create a variable for binding if it doesn't exist + FBlueprintEditorUtils::AddMemberVariable( + WidgetBlueprint, + FName(*BindingName), + FEdGraphPinType(UEdGraphSchema_K2::PC_Text, NAME_None, nullptr, EPinContainerType::None, false, FEdGraphTerminalType()) + ); + + // Find the TextBlock widget + UTextBlock* TextBlock = Cast(WidgetBlueprint->WidgetTree->FindWidget(FName(*WidgetName))); + if (!TextBlock) + { + Response->SetStringField(TEXT("error"), FString::Printf(TEXT("Failed to find TextBlock widget: %s"), *WidgetName)); + return Response; + } + + // Create binding function + const FString FunctionName = FString::Printf(TEXT("Get%s"), *BindingName); + UEdGraph* FuncGraph = FBlueprintEditorUtils::CreateNewGraph( + WidgetBlueprint, + FName(*FunctionName), + UEdGraph::StaticClass(), + UEdGraphSchema_K2::StaticClass() + ); + + if (FuncGraph) + { + // Add the function to the blueprint with proper template parameter + // Template requires null for last parameter when not using a signature-source + FBlueprintEditorUtils::AddFunctionGraph(WidgetBlueprint, FuncGraph, false, nullptr); + + // Create entry node + UK2Node_FunctionEntry* EntryNode = nullptr; + + // Create entry node - use the API that exists in UE 5.5 + EntryNode = NewObject(FuncGraph); + FuncGraph->AddNode(EntryNode, false, false); + EntryNode->NodePosX = 0; + EntryNode->NodePosY = 0; + EntryNode->FunctionReference.SetExternalMember(FName(*FunctionName), WidgetBlueprint->GeneratedClass); + EntryNode->AllocateDefaultPins(); + + // Create get variable node + UK2Node_VariableGet* GetVarNode = NewObject(FuncGraph); + GetVarNode->VariableReference.SetSelfMember(FName(*BindingName)); + FuncGraph->AddNode(GetVarNode, false, false); + GetVarNode->NodePosX = 200; + GetVarNode->NodePosY = 0; + GetVarNode->AllocateDefaultPins(); + + // Connect nodes + UEdGraphPin* EntryThenPin = EntryNode->FindPin(UEdGraphSchema_K2::PN_Then); + UEdGraphPin* GetVarOutPin = GetVarNode->FindPin(UEdGraphSchema_K2::PN_ReturnValue); + if (EntryThenPin && GetVarOutPin) + { + EntryThenPin->MakeLinkTo(GetVarOutPin); + } + } + + // Save the Widget Blueprint + FKismetEditorUtilities::CompileBlueprint(WidgetBlueprint); + UEditorAssetLibrary::SaveAsset(BlueprintPath, false); + + Response->SetBoolField(TEXT("success"), true); + Response->SetStringField(TEXT("binding_name"), BindingName); + return Response; +} \ No newline at end of file diff --git a/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Private/MCPServerRunnable.cpp b/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Private/MCPServerRunnable.cpp new file mode 100644 index 0000000..2fed46f --- /dev/null +++ b/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Private/MCPServerRunnable.cpp @@ -0,0 +1,321 @@ +#include "MCPServerRunnable.h" +#include "UnrealMCPBridge.h" +#include "Sockets.h" +#include "SocketSubsystem.h" +#include "Interfaces/IPv4/IPv4Address.h" +#include "Dom/JsonObject.h" +#include "Dom/JsonValue.h" +#include "Serialization/JsonSerializer.h" +#include "Serialization/JsonReader.h" +#include "JsonObjectConverter.h" +#include "Misc/ScopeLock.h" +#include "HAL/PlatformTime.h" + +// Buffer size for receiving data +const int32 BufferSize = 8192; + +FMCPServerRunnable::FMCPServerRunnable(UUnrealMCPBridge* InBridge, TSharedPtr InListenerSocket) + : Bridge(InBridge) + , ListenerSocket(InListenerSocket) + , bRunning(true) +{ + UE_LOG(LogTemp, Display, TEXT("MCPServerRunnable: Created server runnable")); +} + +FMCPServerRunnable::~FMCPServerRunnable() +{ + // Note: We don't delete the sockets here as they're owned by the bridge +} + +bool FMCPServerRunnable::Init() +{ + return true; +} + +uint32 FMCPServerRunnable::Run() +{ + UE_LOG(LogTemp, Display, TEXT("MCPServerRunnable: Server thread starting...")); + + while (bRunning) + { + // UE_LOG(LogTemp, Display, TEXT("MCPServerRunnable: Waiting for client connection...")); + + bool bPending = false; + if (ListenerSocket->HasPendingConnection(bPending) && bPending) + { + UE_LOG(LogTemp, Display, TEXT("MCPServerRunnable: Client connection pending, accepting...")); + + ClientSocket = MakeShareable(ListenerSocket->Accept(TEXT("MCPClient"))); + if (ClientSocket.IsValid()) + { + UE_LOG(LogTemp, Display, TEXT("MCPServerRunnable: Client connection accepted")); + + // Set socket options to improve connection stability + ClientSocket->SetNoDelay(true); + int32 SocketBufferSize = 65536; // 64KB buffer + ClientSocket->SetSendBufferSize(SocketBufferSize, SocketBufferSize); + ClientSocket->SetReceiveBufferSize(SocketBufferSize, SocketBufferSize); + + uint8 Buffer[8192]; + while (bRunning) + { + int32 BytesRead = 0; + if (ClientSocket->Recv(Buffer, sizeof(Buffer), BytesRead)) + { + if (BytesRead == 0) + { + UE_LOG(LogTemp, Display, TEXT("MCPServerRunnable: Client disconnected (zero bytes)")); + break; + } + + // Convert received data to string + Buffer[BytesRead] = '\0'; + FString ReceivedText = UTF8_TO_TCHAR(Buffer); + UE_LOG(LogTemp, Display, TEXT("MCPServerRunnable: Received: %s"), *ReceivedText); + + // Parse JSON + TSharedPtr JsonObject; + TSharedRef> Reader = TJsonReaderFactory<>::Create(ReceivedText); + + if (FJsonSerializer::Deserialize(Reader, JsonObject)) + { + // Get command type + FString CommandType; + if (JsonObject->TryGetStringField(TEXT("type"), CommandType)) + { + // Execute command + FString Response = Bridge->ExecuteCommand(CommandType, JsonObject->GetObjectField(TEXT("params"))); + + // Log response for debugging + UE_LOG(LogTemp, Display, TEXT("MCPServerRunnable: Sending response: %s"), *Response); + + // Send response + int32 BytesSent = 0; + if (!ClientSocket->Send((uint8*)TCHAR_TO_UTF8(*Response), Response.Len(), BytesSent)) + { + UE_LOG(LogTemp, Warning, TEXT("MCPServerRunnable: Failed to send response")); + } + else { + UE_LOG(LogTemp, Display, TEXT("MCPServerRunnable: Response sent successfully, bytes: %d"), BytesSent); + } + } + else + { + UE_LOG(LogTemp, Warning, TEXT("MCPServerRunnable: Missing 'type' field in command")); + } + } + else + { + UE_LOG(LogTemp, Warning, TEXT("MCPServerRunnable: Failed to parse JSON from: %s"), *ReceivedText); + } + } + else + { + int32 LastError = (int32)ISocketSubsystem::Get()->GetLastErrorCode(); + // Don't break the connection for WouldBlock error, which is normal for non-blocking sockets + bool bShouldBreak = true; + + // Check for "would block" error which isn't a real error for non-blocking sockets + if (LastError == SE_EWOULDBLOCK) + { + UE_LOG(LogTemp, Verbose, TEXT("MCPServerRunnable: Socket would block, continuing...")); + bShouldBreak = false; + // Small sleep to prevent tight loop when no data + FPlatformProcess::Sleep(0.01f); + } + // Check for other transient errors we might want to tolerate + else if (LastError == SE_EINTR) // Interrupted system call + { + UE_LOG(LogTemp, Warning, TEXT("MCPServerRunnable: Socket read interrupted, continuing...")); + bShouldBreak = false; + } + else + { + UE_LOG(LogTemp, Warning, TEXT("MCPServerRunnable: Client disconnected or error. Last error code: %d"), LastError); + } + + if (bShouldBreak) + { + break; + } + } + } + } + else + { + UE_LOG(LogTemp, Warning, TEXT("MCPServerRunnable: Failed to accept client connection")); + } + } + + // Small sleep to prevent tight loop + FPlatformProcess::Sleep(0.1f); + } + + UE_LOG(LogTemp, Display, TEXT("MCPServerRunnable: Server thread stopping")); + return 0; +} + +void FMCPServerRunnable::Stop() +{ + bRunning = false; +} + +void FMCPServerRunnable::Exit() +{ +} + +void FMCPServerRunnable::HandleClientConnection(TSharedPtr InClientSocket) +{ + if (!InClientSocket.IsValid()) + { + UE_LOG(LogTemp, Error, TEXT("MCPServerRunnable: Invalid client socket passed to HandleClientConnection")); + return; + } + + UE_LOG(LogTemp, Display, TEXT("MCPServerRunnable: Starting to handle client connection")); + + // Set socket options for better connection stability + InClientSocket->SetNonBlocking(false); + UE_LOG(LogTemp, Display, TEXT("MCPServerRunnable: Set socket to blocking mode")); + + // Properly read full message with timeout + const int32 MaxBufferSize = 4096; + uint8 Buffer[MaxBufferSize]; + FString MessageBuffer; + + UE_LOG(LogTemp, Display, TEXT("MCPServerRunnable: Starting message receive loop")); + + while (bRunning && InClientSocket.IsValid()) + { + // Log socket state + bool bIsConnected = InClientSocket->GetConnectionState() == SCS_Connected; + UE_LOG(LogTemp, Display, TEXT("MCPServerRunnable: Socket state - Connected: %s"), + bIsConnected ? TEXT("true") : TEXT("false")); + + // Log pending data status before receive + uint32 PendingDataSize = 0; + bool HasPendingData = InClientSocket->HasPendingData(PendingDataSize); + UE_LOG(LogTemp, Display, TEXT("MCPServerRunnable: Before Recv - HasPendingData=%s, Size=%d"), + HasPendingData ? TEXT("true") : TEXT("false"), PendingDataSize); + + // Try to receive data with timeout + int32 BytesRead = 0; + bool bReadSuccess = false; + + UE_LOG(LogTemp, Display, TEXT("MCPServerRunnable: Attempting to receive data...")); + bReadSuccess = InClientSocket->Recv(Buffer, MaxBufferSize, BytesRead, ESocketReceiveFlags::None); + + UE_LOG(LogTemp, Display, TEXT("MCPServerRunnable: Recv attempt complete - Success=%s, BytesRead=%d"), + bReadSuccess ? TEXT("true") : TEXT("false"), BytesRead); + + if (BytesRead > 0) + { + // Log raw data for debugging + FString HexData; + for (int32 i = 0; i < FMath::Min(BytesRead, 50); ++i) + { + HexData += FString::Printf(TEXT("%02X "), Buffer[i]); + } + UE_LOG(LogTemp, Display, TEXT("MCPServerRunnable: Raw data (first 50 bytes hex): %s%s"), + *HexData, BytesRead > 50 ? TEXT("...") : TEXT("")); + + // Convert and log received data + Buffer[BytesRead] = 0; // Null terminate + FString ReceivedData = UTF8_TO_TCHAR(Buffer); + UE_LOG(LogTemp, Display, TEXT("MCPServerRunnable: Received data as string: '%s'"), *ReceivedData); + + // Append to message buffer + MessageBuffer.Append(ReceivedData); + + // Process complete messages (messages are terminated with newline) + if (MessageBuffer.Contains(TEXT("\n"))) + { + UE_LOG(LogTemp, Display, TEXT("MCPServerRunnable: Newline detected in buffer, processing messages")); + + TArray Messages; + MessageBuffer.ParseIntoArray(Messages, TEXT("\n"), true); + + UE_LOG(LogTemp, Display, TEXT("MCPServerRunnable: Found %d message(s) in buffer"), Messages.Num()); + + // Process all complete messages + for (int32 i = 0; i < Messages.Num() - 1; ++i) + { + UE_LOG(LogTemp, Display, TEXT("MCPServerRunnable: Processing message %d: '%s'"), + i + 1, *Messages[i]); + ProcessMessage(InClientSocket, Messages[i]); + } + + // Keep any incomplete message in the buffer + MessageBuffer = Messages.Last(); + UE_LOG(LogTemp, Display, TEXT("MCPServerRunnable: Remaining buffer after processing: %s"), + *MessageBuffer); + } + else + { + UE_LOG(LogTemp, Display, TEXT("MCPServerRunnable: No complete message yet (no newline detected)")); + } + } + else if (!bReadSuccess) + { + UE_LOG(LogTemp, Warning, TEXT("MCPServerRunnable: Connection closed or error occurred - Last error: %d"), + (int32)ISocketSubsystem::Get()->GetLastErrorCode()); + break; + } + + // Small sleep to prevent tight loop + FPlatformProcess::Sleep(0.01f); + } + + UE_LOG(LogTemp, Display, TEXT("MCPServerRunnable: Exited message receive loop")); +} + +void FMCPServerRunnable::ProcessMessage(TSharedPtr Client, const FString& Message) +{ + UE_LOG(LogTemp, Display, TEXT("MCPServerRunnable: Processing message: %s"), *Message); + + // Parse message as JSON + TSharedPtr JsonMessage; + TSharedRef> Reader = TJsonReaderFactory<>::Create(Message); + + if (!FJsonSerializer::Deserialize(Reader, JsonMessage) || !JsonMessage.IsValid()) + { + UE_LOG(LogTemp, Warning, TEXT("MCPServerRunnable: Failed to parse message as JSON")); + return; + } + + // Extract command type and parameters using MCP protocol format + FString CommandType; + TSharedPtr Params = MakeShareable(new FJsonObject()); + + if (!JsonMessage->TryGetStringField(TEXT("command"), CommandType)) + { + UE_LOG(LogTemp, Warning, TEXT("MCPServerRunnable: Message missing 'command' field")); + return; + } + + // Parameters are optional in MCP protocol + if (JsonMessage->HasField(TEXT("params"))) + { + TSharedPtr ParamsValue = JsonMessage->TryGetField(TEXT("params")); + if (ParamsValue.IsValid() && ParamsValue->Type == EJson::Object) + { + Params = ParamsValue->AsObject(); + } + } + + UE_LOG(LogTemp, Display, TEXT("MCPServerRunnable: Executing command: %s"), *CommandType); + + // Execute command + FString Response = Bridge->ExecuteCommand(CommandType, Params); + + // Send response with newline terminator + Response += TEXT("\n"); + int32 BytesSent = 0; + + UE_LOG(LogTemp, Display, TEXT("MCPServerRunnable: Sending response: %s"), *Response); + + if (!Client->Send((uint8*)TCHAR_TO_UTF8(*Response), Response.Len(), BytesSent)) + { + UE_LOG(LogTemp, Error, TEXT("MCPServerRunnable: Failed to send response")); + } +} \ No newline at end of file diff --git a/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Private/UnrealMCPBridge.cpp b/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Private/UnrealMCPBridge.cpp new file mode 100644 index 0000000..e76c47b --- /dev/null +++ b/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Private/UnrealMCPBridge.cpp @@ -0,0 +1,332 @@ +#include "UnrealMCPBridge.h" +#include "MCPServerRunnable.h" +#include "Sockets.h" +#include "SocketSubsystem.h" +#include "HAL/RunnableThread.h" +#include "Interfaces/IPv4/IPv4Address.h" +#include "Interfaces/IPv4/IPv4Endpoint.h" +#include "Dom/JsonObject.h" +#include "Dom/JsonValue.h" +#include "Serialization/JsonSerializer.h" +#include "Serialization/JsonReader.h" +#include "Serialization/JsonWriter.h" +#include "Engine/StaticMeshActor.h" +#include "Engine/DirectionalLight.h" +#include "Engine/PointLight.h" +#include "Engine/SpotLight.h" +#include "Camera/CameraActor.h" +#include "EditorAssetLibrary.h" +#include "AssetRegistry/AssetRegistryModule.h" +#include "JsonObjectConverter.h" +#include "GameFramework/Actor.h" +#include "Engine/Selection.h" +#include "Kismet/GameplayStatics.h" +#include "Async/Async.h" +// Add Blueprint related includes +#include "Engine/Blueprint.h" +#include "Engine/BlueprintGeneratedClass.h" +#include "Factories/BlueprintFactory.h" +#include "EdGraphSchema_K2.h" +#include "K2Node_Event.h" +#include "K2Node_VariableGet.h" +#include "K2Node_VariableSet.h" +#include "Components/StaticMeshComponent.h" +#include "Components/BoxComponent.h" +#include "Components/SphereComponent.h" +#include "Kismet2/BlueprintEditorUtils.h" +#include "Kismet2/KismetEditorUtilities.h" +// UE5.5 correct includes +#include "Engine/SimpleConstructionScript.h" +#include "Engine/SCS_Node.h" +#include "UObject/Field.h" +#include "UObject/FieldPath.h" +// Blueprint Graph specific includes +#include "EdGraph/EdGraph.h" +#include "EdGraph/EdGraphNode.h" +#include "EdGraph/EdGraphPin.h" +#include "K2Node_CallFunction.h" +#include "K2Node_InputAction.h" +#include "K2Node_Self.h" +#include "GameFramework/InputSettings.h" +#include "EditorSubsystem.h" +#include "Subsystems/EditorActorSubsystem.h" +// Include our new command handler classes +#include "Commands/UnrealMCPEditorCommands.h" +#include "Commands/UnrealMCPBlueprintCommands.h" +#include "Commands/UnrealMCPBlueprintNodeCommands.h" +#include "Commands/UnrealMCPProjectCommands.h" +#include "Commands/UnrealMCPCommonUtils.h" +#include "Commands/UnrealMCPUMGCommands.h" + +// Default settings +#define MCP_SERVER_HOST "127.0.0.1" +#define MCP_SERVER_PORT 55557 + +UUnrealMCPBridge::UUnrealMCPBridge() +{ + EditorCommands = MakeShared(); + BlueprintCommands = MakeShared(); + BlueprintNodeCommands = MakeShared(); + ProjectCommands = MakeShared(); + UMGCommands = MakeShared(); +} + +UUnrealMCPBridge::~UUnrealMCPBridge() +{ + EditorCommands.Reset(); + BlueprintCommands.Reset(); + BlueprintNodeCommands.Reset(); + ProjectCommands.Reset(); + UMGCommands.Reset(); +} + +// Initialize subsystem +void UUnrealMCPBridge::Initialize(FSubsystemCollectionBase& Collection) +{ + UE_LOG(LogTemp, Display, TEXT("UnrealMCPBridge: Initializing")); + + bIsRunning = false; + ListenerSocket = nullptr; + ConnectionSocket = nullptr; + ServerThread = nullptr; + Port = MCP_SERVER_PORT; + FIPv4Address::Parse(MCP_SERVER_HOST, ServerAddress); + + // Start the server automatically + StartServer(); +} + +// Clean up resources when subsystem is destroyed +void UUnrealMCPBridge::Deinitialize() +{ + UE_LOG(LogTemp, Display, TEXT("UnrealMCPBridge: Shutting down")); + StopServer(); +} + +// Start the MCP server +void UUnrealMCPBridge::StartServer() +{ + if (bIsRunning) + { + UE_LOG(LogTemp, Warning, TEXT("UnrealMCPBridge: Server is already running")); + return; + } + + // Create socket subsystem + ISocketSubsystem* SocketSubsystem = ISocketSubsystem::Get(PLATFORM_SOCKETSUBSYSTEM); + if (!SocketSubsystem) + { + UE_LOG(LogTemp, Error, TEXT("UnrealMCPBridge: Failed to get socket subsystem")); + return; + } + + // Create listener socket + TSharedPtr NewListenerSocket = MakeShareable(SocketSubsystem->CreateSocket(NAME_Stream, TEXT("UnrealMCPListener"), false)); + if (!NewListenerSocket.IsValid()) + { + UE_LOG(LogTemp, Error, TEXT("UnrealMCPBridge: Failed to create listener socket")); + return; + } + + // Allow address reuse for quick restarts + NewListenerSocket->SetReuseAddr(true); + NewListenerSocket->SetNonBlocking(true); + + // Bind to address + FIPv4Endpoint Endpoint(ServerAddress, Port); + if (!NewListenerSocket->Bind(*Endpoint.ToInternetAddr())) + { + UE_LOG(LogTemp, Error, TEXT("UnrealMCPBridge: Failed to bind listener socket to %s:%d"), *ServerAddress.ToString(), Port); + return; + } + + // Start listening + if (!NewListenerSocket->Listen(5)) + { + UE_LOG(LogTemp, Error, TEXT("UnrealMCPBridge: Failed to start listening")); + return; + } + + ListenerSocket = NewListenerSocket; + bIsRunning = true; + UE_LOG(LogTemp, Display, TEXT("UnrealMCPBridge: Server started on %s:%d"), *ServerAddress.ToString(), Port); + + // Start server thread + ServerThread = FRunnableThread::Create( + new FMCPServerRunnable(this, ListenerSocket), + TEXT("UnrealMCPServerThread"), + 0, TPri_Normal + ); + + if (!ServerThread) + { + UE_LOG(LogTemp, Error, TEXT("UnrealMCPBridge: Failed to create server thread")); + StopServer(); + return; + } +} + +// Stop the MCP server +void UUnrealMCPBridge::StopServer() +{ + if (!bIsRunning) + { + return; + } + + bIsRunning = false; + + // Clean up thread + if (ServerThread) + { + ServerThread->Kill(true); + delete ServerThread; + ServerThread = nullptr; + } + + // Close sockets + if (ConnectionSocket.IsValid()) + { + ISocketSubsystem::Get(PLATFORM_SOCKETSUBSYSTEM)->DestroySocket(ConnectionSocket.Get()); + ConnectionSocket.Reset(); + } + + if (ListenerSocket.IsValid()) + { + ISocketSubsystem::Get(PLATFORM_SOCKETSUBSYSTEM)->DestroySocket(ListenerSocket.Get()); + ListenerSocket.Reset(); + } + + UE_LOG(LogTemp, Display, TEXT("UnrealMCPBridge: Server stopped")); +} + +// Execute a command received from a client +FString UUnrealMCPBridge::ExecuteCommand(const FString& CommandType, const TSharedPtr& Params) +{ + UE_LOG(LogTemp, Display, TEXT("UnrealMCPBridge: Executing command: %s"), *CommandType); + + // Create a promise to wait for the result + TPromise Promise; + TFuture Future = Promise.GetFuture(); + + // Queue execution on Game Thread + AsyncTask(ENamedThreads::GameThread, [this, CommandType, Params, Promise = MoveTemp(Promise)]() mutable + { + TSharedPtr ResponseJson = MakeShareable(new FJsonObject); + + try + { + TSharedPtr ResultJson; + + if (CommandType == TEXT("ping")) + { + ResultJson = MakeShareable(new FJsonObject); + ResultJson->SetStringField(TEXT("message"), TEXT("pong")); + } + // Editor Commands (including actor manipulation) + else if (CommandType == TEXT("get_actors_in_level") || + CommandType == TEXT("find_actors_by_name") || + CommandType == TEXT("spawn_actor") || + CommandType == TEXT("create_actor") || + CommandType == TEXT("delete_actor") || + CommandType == TEXT("set_actor_transform") || + CommandType == TEXT("get_actor_properties") || + CommandType == TEXT("set_actor_property") || + CommandType == TEXT("spawn_blueprint_actor") || + CommandType == TEXT("focus_viewport") || + CommandType == TEXT("take_screenshot")) + { + ResultJson = EditorCommands->HandleCommand(CommandType, Params); + } + // Blueprint Commands + else if (CommandType == TEXT("create_blueprint") || + CommandType == TEXT("add_component_to_blueprint") || + CommandType == TEXT("set_component_property") || + CommandType == TEXT("set_physics_properties") || + CommandType == TEXT("compile_blueprint") || + CommandType == TEXT("set_blueprint_property") || + CommandType == TEXT("set_static_mesh_properties") || + CommandType == TEXT("set_pawn_properties")) + { + ResultJson = BlueprintCommands->HandleCommand(CommandType, Params); + } + // Blueprint Node Commands + else if (CommandType == TEXT("connect_blueprint_nodes") || + CommandType == TEXT("add_blueprint_get_self_component_reference") || + CommandType == TEXT("add_blueprint_self_reference") || + CommandType == TEXT("find_blueprint_nodes") || + CommandType == TEXT("add_blueprint_event_node") || + CommandType == TEXT("add_blueprint_input_action_node") || + CommandType == TEXT("add_blueprint_function_node") || + CommandType == TEXT("add_blueprint_get_component_node") || + CommandType == TEXT("add_blueprint_variable")) + { + ResultJson = BlueprintNodeCommands->HandleCommand(CommandType, Params); + } + // Project Commands + else if (CommandType == TEXT("create_input_mapping")) + { + ResultJson = ProjectCommands->HandleCommand(CommandType, Params); + } + // UMG Commands + else if (CommandType == TEXT("create_umg_widget_blueprint") || + CommandType == TEXT("add_text_block_to_widget") || + CommandType == TEXT("add_button_to_widget") || + CommandType == TEXT("bind_widget_event") || + CommandType == TEXT("set_text_block_binding") || + CommandType == TEXT("add_widget_to_viewport")) + { + ResultJson = UMGCommands->HandleCommand(CommandType, Params); + } + else + { + ResponseJson->SetStringField(TEXT("status"), TEXT("error")); + ResponseJson->SetStringField(TEXT("error"), FString::Printf(TEXT("Unknown command: %s"), *CommandType)); + + FString ResultString; + TSharedRef> Writer = TJsonWriterFactory<>::Create(&ResultString); + FJsonSerializer::Serialize(ResponseJson.ToSharedRef(), Writer); + Promise.SetValue(ResultString); + return; + } + + // Check if the result contains an error + bool bSuccess = true; + FString ErrorMessage; + + if (ResultJson->HasField(TEXT("success"))) + { + bSuccess = ResultJson->GetBoolField(TEXT("success")); + if (!bSuccess && ResultJson->HasField(TEXT("error"))) + { + ErrorMessage = ResultJson->GetStringField(TEXT("error")); + } + } + + if (bSuccess) + { + // Set success status and include the result + ResponseJson->SetStringField(TEXT("status"), TEXT("success")); + ResponseJson->SetObjectField(TEXT("result"), ResultJson); + } + else + { + // Set error status and include the error message + ResponseJson->SetStringField(TEXT("status"), TEXT("error")); + ResponseJson->SetStringField(TEXT("error"), ErrorMessage); + } + } + catch (const std::exception& e) + { + ResponseJson->SetStringField(TEXT("status"), TEXT("error")); + ResponseJson->SetStringField(TEXT("error"), UTF8_TO_TCHAR(e.what())); + } + + FString ResultString; + TSharedRef> Writer = TJsonWriterFactory<>::Create(&ResultString); + FJsonSerializer::Serialize(ResponseJson.ToSharedRef(), Writer); + Promise.SetValue(ResultString); + }); + + return Future.Get(); +} \ No newline at end of file diff --git a/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Private/UnrealMCPModule.cpp b/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Private/UnrealMCPModule.cpp new file mode 100644 index 0000000..f53c55f --- /dev/null +++ b/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Private/UnrealMCPModule.cpp @@ -0,0 +1,21 @@ +#include "UnrealMCPModule.h" +#include "UnrealMCPBridge.h" +#include "Modules/ModuleManager.h" +#include "EditorSubsystem.h" +#include "Editor.h" + +#define LOCTEXT_NAMESPACE "FUnrealMCPModule" + +void FUnrealMCPModule::StartupModule() +{ + UE_LOG(LogTemp, Display, TEXT("Unreal MCP Module has started")); +} + +void FUnrealMCPModule::ShutdownModule() +{ + UE_LOG(LogTemp, Display, TEXT("Unreal MCP Module has shut down")); +} + +#undef LOCTEXT_NAMESPACE + +IMPLEMENT_MODULE(FUnrealMCPModule, UnrealMCP) \ No newline at end of file diff --git a/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Public/Commands/UnrealMCPBlueprintCommands.h b/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Public/Commands/UnrealMCPBlueprintCommands.h new file mode 100644 index 0000000..9c2c22a --- /dev/null +++ b/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Public/Commands/UnrealMCPBlueprintCommands.h @@ -0,0 +1,34 @@ +#pragma once + +#include "CoreMinimal.h" +#include "Json.h" + +/** + * Handler class for Blueprint-related MCP commands + */ +class UNREALMCP_API FUnrealMCPBlueprintCommands +{ +public: + FUnrealMCPBlueprintCommands(); + + // Handle blueprint commands + TSharedPtr HandleCommand(const FString& CommandType, const TSharedPtr& Params); + +private: + // Specific blueprint command handlers + TSharedPtr HandleCreateBlueprint(const TSharedPtr& Params); + TSharedPtr HandleAddComponentToBlueprint(const TSharedPtr& Params); + TSharedPtr HandleSetComponentProperty(const TSharedPtr& Params); + TSharedPtr HandleSetPhysicsProperties(const TSharedPtr& Params); + TSharedPtr HandleCompileBlueprint(const TSharedPtr& Params); + TSharedPtr HandleSpawnBlueprintActor(const TSharedPtr& Params); + TSharedPtr HandleSetBlueprintProperty(const TSharedPtr& Params); + TSharedPtr HandleSetStaticMeshProperties(const TSharedPtr& Params); + TSharedPtr HandleSetPawnProperties(const TSharedPtr& Params); + + // Helper functions + TSharedPtr AddComponentToBlueprint(const FString& BlueprintName, const FString& ComponentType, + const FString& ComponentName, const FString& MeshType, + const TArray& Location, const TArray& Rotation, + const TArray& Scale, const TSharedPtr& ComponentProperties); +}; \ No newline at end of file diff --git a/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Public/Commands/UnrealMCPBlueprintNodeCommands.h b/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Public/Commands/UnrealMCPBlueprintNodeCommands.h new file mode 100644 index 0000000..9146253 --- /dev/null +++ b/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Public/Commands/UnrealMCPBlueprintNodeCommands.h @@ -0,0 +1,27 @@ +#pragma once + +#include "CoreMinimal.h" +#include "Json.h" + +/** + * Handler class for Blueprint Node-related MCP commands + */ +class UNREALMCP_API FUnrealMCPBlueprintNodeCommands +{ +public: + FUnrealMCPBlueprintNodeCommands(); + + // Handle blueprint node commands + TSharedPtr HandleCommand(const FString& CommandType, const TSharedPtr& Params); + +private: + // Specific blueprint node command handlers + TSharedPtr HandleConnectBlueprintNodes(const TSharedPtr& Params); + TSharedPtr HandleAddBlueprintGetSelfComponentReference(const TSharedPtr& Params); + TSharedPtr HandleAddBlueprintEvent(const TSharedPtr& Params); + TSharedPtr HandleAddBlueprintFunctionCall(const TSharedPtr& Params); + TSharedPtr HandleAddBlueprintVariable(const TSharedPtr& Params); + TSharedPtr HandleAddBlueprintInputActionNode(const TSharedPtr& Params); + TSharedPtr HandleAddBlueprintSelfReference(const TSharedPtr& Params); + TSharedPtr HandleFindBlueprintNodes(const TSharedPtr& Params); +}; \ No newline at end of file diff --git a/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Public/Commands/UnrealMCPCommonUtils.h b/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Public/Commands/UnrealMCPCommonUtils.h new file mode 100644 index 0000000..bf528e3 --- /dev/null +++ b/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Public/Commands/UnrealMCPCommonUtils.h @@ -0,0 +1,59 @@ +#pragma once + +#include "CoreMinimal.h" +#include "Json.h" + +// Forward declarations +class AActor; +class UBlueprint; +class UEdGraph; +class UEdGraphNode; +class UEdGraphPin; +class UK2Node_Event; +class UK2Node_CallFunction; +class UK2Node_VariableGet; +class UK2Node_VariableSet; +class UK2Node_InputAction; +class UK2Node_Self; +class UFunction; + +/** + * Common utilities for UnrealMCP commands + */ +class UNREALMCP_API FUnrealMCPCommonUtils +{ +public: + // JSON utilities + static TSharedPtr CreateErrorResponse(const FString& Message); + static TSharedPtr CreateSuccessResponse(const TSharedPtr& Data = nullptr); + static void GetIntArrayFromJson(const TSharedPtr& JsonObject, const FString& FieldName, TArray& OutArray); + static void GetFloatArrayFromJson(const TSharedPtr& JsonObject, const FString& FieldName, TArray& OutArray); + static FVector2D GetVector2DFromJson(const TSharedPtr& JsonObject, const FString& FieldName); + static FVector GetVectorFromJson(const TSharedPtr& JsonObject, const FString& FieldName); + static FRotator GetRotatorFromJson(const TSharedPtr& JsonObject, const FString& FieldName); + + // Actor utilities + static TSharedPtr ActorToJson(AActor* Actor); + static TSharedPtr ActorToJsonObject(AActor* Actor, bool bDetailed = false); + + // Blueprint utilities + static UBlueprint* FindBlueprint(const FString& BlueprintName); + static UBlueprint* FindBlueprintByName(const FString& BlueprintName); + static UEdGraph* FindOrCreateEventGraph(UBlueprint* Blueprint); + + // Blueprint node utilities + static UK2Node_Event* CreateEventNode(UEdGraph* Graph, const FString& EventName, const FVector2D& Position); + static UK2Node_CallFunction* CreateFunctionCallNode(UEdGraph* Graph, UFunction* Function, const FVector2D& Position); + static UK2Node_VariableGet* CreateVariableGetNode(UEdGraph* Graph, UBlueprint* Blueprint, const FString& VariableName, const FVector2D& Position); + static UK2Node_VariableSet* CreateVariableSetNode(UEdGraph* Graph, UBlueprint* Blueprint, const FString& VariableName, const FVector2D& Position); + static UK2Node_InputAction* CreateInputActionNode(UEdGraph* Graph, const FString& ActionName, const FVector2D& Position); + static UK2Node_Self* CreateSelfReferenceNode(UEdGraph* Graph, const FVector2D& Position); + static bool ConnectGraphNodes(UEdGraph* Graph, UEdGraphNode* SourceNode, const FString& SourcePinName, + UEdGraphNode* TargetNode, const FString& TargetPinName); + static UEdGraphPin* FindPin(UEdGraphNode* Node, const FString& PinName, EEdGraphPinDirection Direction = EGPD_MAX); + static UK2Node_Event* FindExistingEventNode(UEdGraph* Graph, const FString& EventName); + + // Property utilities + static bool SetObjectProperty(UObject* Object, const FString& PropertyName, + const TSharedPtr& Value, FString& OutErrorMessage); +}; \ No newline at end of file diff --git a/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Public/Commands/UnrealMCPEditorCommands.h b/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Public/Commands/UnrealMCPEditorCommands.h new file mode 100644 index 0000000..ecb8530 --- /dev/null +++ b/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Public/Commands/UnrealMCPEditorCommands.h @@ -0,0 +1,34 @@ +#pragma once + +#include "CoreMinimal.h" +#include "Json.h" + +/** + * Handler class for Editor-related MCP commands + * Handles viewport control, actor manipulation, and level management + */ +class UNREALMCP_API FUnrealMCPEditorCommands +{ +public: + FUnrealMCPEditorCommands(); + + // Handle editor commands + TSharedPtr HandleCommand(const FString& CommandType, const TSharedPtr& Params); + +private: + // Actor manipulation commands + TSharedPtr HandleGetActorsInLevel(const TSharedPtr& Params); + TSharedPtr HandleFindActorsByName(const TSharedPtr& Params); + TSharedPtr HandleSpawnActor(const TSharedPtr& Params); + TSharedPtr HandleDeleteActor(const TSharedPtr& Params); + TSharedPtr HandleSetActorTransform(const TSharedPtr& Params); + TSharedPtr HandleGetActorProperties(const TSharedPtr& Params); + TSharedPtr HandleSetActorProperty(const TSharedPtr& Params); + + // Blueprint actor spawning + TSharedPtr HandleSpawnBlueprintActor(const TSharedPtr& Params); + + // Editor viewport commands + TSharedPtr HandleFocusViewport(const TSharedPtr& Params); + TSharedPtr HandleTakeScreenshot(const TSharedPtr& Params); +}; \ No newline at end of file diff --git a/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Public/Commands/UnrealMCPProjectCommands.h b/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Public/Commands/UnrealMCPProjectCommands.h new file mode 100644 index 0000000..58ea715 --- /dev/null +++ b/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Public/Commands/UnrealMCPProjectCommands.h @@ -0,0 +1,20 @@ +#pragma once + +#include "CoreMinimal.h" +#include "Json.h" + +/** + * Handler class for Project-wide MCP commands + */ +class UNREALMCP_API FUnrealMCPProjectCommands +{ +public: + FUnrealMCPProjectCommands(); + + // Handle project commands + TSharedPtr HandleCommand(const FString& CommandType, const TSharedPtr& Params); + +private: + // Specific project command handlers + TSharedPtr HandleCreateInputMapping(const TSharedPtr& Params); +}; \ No newline at end of file diff --git a/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Public/Commands/UnrealMCPUMGCommands.h b/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Public/Commands/UnrealMCPUMGCommands.h new file mode 100644 index 0000000..fb204ba --- /dev/null +++ b/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Public/Commands/UnrealMCPUMGCommands.h @@ -0,0 +1,82 @@ +#pragma once + +#include "CoreMinimal.h" +#include "Json.h" + +/** + * Handles UMG (Widget Blueprint) related MCP commands + * Responsible for creating and modifying UMG Widget Blueprints, + * adding widget components, and managing widget instances in the viewport. + */ +class UNREALMCP_API FUnrealMCPUMGCommands +{ +public: + FUnrealMCPUMGCommands(); + + /** + * Handle UMG-related commands + * @param CommandType - The type of command to handle + * @param Params - JSON parameters for the command + * @return JSON response with results or error + */ + TSharedPtr HandleCommand(const FString& CommandType, const TSharedPtr& Params); + +private: + /** + * Create a new UMG Widget Blueprint + * @param Params - Must include "name" for the blueprint name + * @return JSON response with the created blueprint details + */ + TSharedPtr HandleCreateUMGWidgetBlueprint(const TSharedPtr& Params); + + /** + * Add a Text Block widget to a UMG Widget Blueprint + * @param Params - Must include: + * "blueprint_name" - Name of the target Widget Blueprint + * "widget_name" - Name for the new Text Block + * "text" - Initial text content (optional) + * "position" - [X, Y] position in the canvas (optional) + * @return JSON response with the added widget details + */ + TSharedPtr HandleAddTextBlockToWidget(const TSharedPtr& Params); + + /** + * Add a widget instance to the game viewport + * @param Params - Must include: + * "blueprint_name" - Name of the Widget Blueprint to instantiate + * "z_order" - Z-order for widget display (optional) + * @return JSON response with the widget instance details + */ + TSharedPtr HandleAddWidgetToViewport(const TSharedPtr& Params); + + /** + * Add a Button widget to a UMG Widget Blueprint + * @param Params - Must include: + * "blueprint_name" - Name of the target Widget Blueprint + * "widget_name" - Name for the new Button + * "text" - Button text + * "position" - [X, Y] position in the canvas + * @return JSON response with the added widget details + */ + TSharedPtr HandleAddButtonToWidget(const TSharedPtr& Params); + + /** + * Bind an event to a widget (e.g. button click) + * @param Params - Must include: + * "blueprint_name" - Name of the target Widget Blueprint + * "widget_name" - Name of the widget to bind + * "event_name" - Name of the event to bind + * @return JSON response with the binding details + */ + TSharedPtr HandleBindWidgetEvent(const TSharedPtr& Params); + + /** + * Set up text block binding for dynamic updates + * @param Params - Must include: + * "blueprint_name" - Name of the target Widget Blueprint + * "widget_name" - Name of the widget to bind + * "binding_name" - Name of the binding to set up + * @return JSON response with the binding details + */ + TSharedPtr HandleSetTextBlockBinding(const TSharedPtr& Params); +}; \ No newline at end of file diff --git a/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Public/MCPServerRunnable.h b/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Public/MCPServerRunnable.h new file mode 100644 index 0000000..c0c7c70 --- /dev/null +++ b/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Public/MCPServerRunnable.h @@ -0,0 +1,34 @@ +#pragma once + +#include "CoreMinimal.h" +#include "HAL/Runnable.h" +#include "Sockets.h" +#include "Interfaces/IPv4/IPv4Address.h" + +class UUnrealMCPBridge; + +/** + * Runnable class for the MCP server thread + */ +class FMCPServerRunnable : public FRunnable +{ +public: + FMCPServerRunnable(UUnrealMCPBridge* InBridge, TSharedPtr InListenerSocket); + virtual ~FMCPServerRunnable(); + + // FRunnable interface + virtual bool Init() override; + virtual uint32 Run() override; + virtual void Stop() override; + virtual void Exit() override; + +protected: + void HandleClientConnection(TSharedPtr ClientSocket); + void ProcessMessage(TSharedPtr Client, const FString& Message); + +private: + UUnrealMCPBridge* Bridge; + TSharedPtr ListenerSocket; + TSharedPtr ClientSocket; + bool bRunning; +}; \ No newline at end of file diff --git a/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Public/UnrealMCPBridge.h b/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Public/UnrealMCPBridge.h new file mode 100644 index 0000000..9176d29 --- /dev/null +++ b/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Public/UnrealMCPBridge.h @@ -0,0 +1,64 @@ +#pragma once + +#include "CoreMinimal.h" +#include "EditorSubsystem.h" +#include "Sockets.h" +#include "SocketSubsystem.h" +#include "Http.h" +#include "Json.h" +#include "Interfaces/IPv4/IPv4Address.h" +#include "Interfaces/IPv4/IPv4Endpoint.h" +#include "Commands/UnrealMCPEditorCommands.h" +#include "Commands/UnrealMCPBlueprintCommands.h" +#include "Commands/UnrealMCPBlueprintNodeCommands.h" +#include "Commands/UnrealMCPProjectCommands.h" +#include "Commands/UnrealMCPUMGCommands.h" +#include "UnrealMCPBridge.generated.h" + +class FMCPServerRunnable; + +/** + * Editor subsystem for MCP Bridge + * Handles communication between external tools and the Unreal Editor + * through a TCP socket connection. Commands are received as JSON and + * routed to appropriate command handlers. + */ +UCLASS() +class UNREALMCP_API UUnrealMCPBridge : public UEditorSubsystem +{ + GENERATED_BODY() + +public: + UUnrealMCPBridge(); + virtual ~UUnrealMCPBridge(); + + // UEditorSubsystem implementation + virtual void Initialize(FSubsystemCollectionBase& Collection) override; + virtual void Deinitialize() override; + + // Server functions + void StartServer(); + void StopServer(); + bool IsRunning() const { return bIsRunning; } + + // Command execution + FString ExecuteCommand(const FString& CommandType, const TSharedPtr& Params); + +private: + // Server state + bool bIsRunning; + TSharedPtr ListenerSocket; + TSharedPtr ConnectionSocket; + FRunnableThread* ServerThread; + + // Server configuration + FIPv4Address ServerAddress; + uint16 Port; + + // Command handler instances + TSharedPtr EditorCommands; + TSharedPtr BlueprintCommands; + TSharedPtr BlueprintNodeCommands; + TSharedPtr ProjectCommands; + TSharedPtr UMGCommands; +}; \ No newline at end of file diff --git a/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Public/UnrealMCPModule.h b/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Public/UnrealMCPModule.h new file mode 100644 index 0000000..23af14c --- /dev/null +++ b/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/Public/UnrealMCPModule.h @@ -0,0 +1,22 @@ +#pragma once + +#include "CoreMinimal.h" +#include "Modules/ModuleManager.h" + +class FUnrealMCPModule : public IModuleInterface +{ +public: + /** IModuleInterface implementation */ + virtual void StartupModule() override; + virtual void ShutdownModule() override; + + static inline FUnrealMCPModule& Get() + { + return FModuleManager::LoadModuleChecked("UnrealMCP"); + } + + static inline bool IsAvailable() + { + return FModuleManager::Get().IsModuleLoaded("UnrealMCP"); + } +}; \ No newline at end of file diff --git a/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/UnrealMCP.Build.cs b/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/UnrealMCP.Build.cs new file mode 100644 index 0000000..2e1653d --- /dev/null +++ b/games/unreal/magisterka/Plugins/UnrealMCP/Source/UnrealMCP/UnrealMCP.Build.cs @@ -0,0 +1,78 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +using UnrealBuildTool; + +public class UnrealMCP : ModuleRules +{ + public UnrealMCP(ReadOnlyTargetRules Target) : base(Target) + { + PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs; + // Use IWYUSupport instead of the deprecated bEnforceIWYU in UE5.5 + IWYUSupport = IWYUSupport.Full; + + PublicIncludePaths.AddRange( + new string[] { + // ... add public include paths required here ... + } + ); + + PrivateIncludePaths.AddRange( + new string[] { + // ... add other private include paths required here ... + } + ); + + PublicDependencyModuleNames.AddRange( + new string[] + { + "Core", + "CoreUObject", + "Engine", + "InputCore", + "Networking", + "Sockets", + "HTTP", + "Json", + "JsonUtilities", + "DeveloperSettings" + } + ); + + PrivateDependencyModuleNames.AddRange( + new string[] + { + "UnrealEd", + "EditorScriptingUtilities", + "EditorSubsystem", + "Slate", + "SlateCore", + "UMG", + "Kismet", + "KismetCompiler", + "BlueprintGraph", + "Projects", + "AssetRegistry" + } + ); + + if (Target.bBuildEditor == true) + { + PrivateDependencyModuleNames.AddRange( + new string[] + { + "PropertyEditor", // For widget property editing + "ToolMenus", // For editor UI + "BlueprintEditorLibrary", // For Blueprint utilities + "UMGEditor" // For WidgetBlueprint.h and other UMG editor functionality + } + ); + } + + DynamicallyLoadedModuleNames.AddRange( + new string[] + { + // ... add any modules that your module loads dynamically here ... + } + ); + } +} \ No newline at end of file diff --git a/games/unreal/magisterka/Plugins/UnrealMCP/UnrealMCP.uplugin b/games/unreal/magisterka/Plugins/UnrealMCP/UnrealMCP.uplugin new file mode 100644 index 0000000..b2fcff9 --- /dev/null +++ b/games/unreal/magisterka/Plugins/UnrealMCP/UnrealMCP.uplugin @@ -0,0 +1,35 @@ +{ + "FileVersion": 3, + "Version": 1, + "VersionName": "1.0", + "FriendlyName": "UnrealMCP", + "Description": "Model Context Protocol implementation for Unreal Engine", + "Category": "Editor", + "CreatedBy": "Your Name", + "CreatedByURL": "", + "DocsURL": "", + "MarketplaceURL": "", + "SupportURL": "", + "CanContainContent": true, + "IsBetaVersion": false, + "IsExperimentalVersion": false, + "Installed": false, + "Modules": [ + { + "Name": "UnrealMCP", + "Type": "Editor", + "LoadingPhase": "Default", + "WhitelistPlatforms": [ + "Win64", + "Mac", + "Linux" + ] + } + ], + "Plugins": [ + { + "Name": "EditorScriptingUtilities", + "Enabled": true + } + ] +} \ No newline at end of file diff --git a/games/unreal/magisterka/Saved/Config/CrashReportClient/UECC-Linux-F30551E0B2E64120917325867FB1610D/CrashReportClient.ini b/games/unreal/magisterka/Saved/Config/CrashReportClient/UECC-Linux-F30551E0B2E64120917325867FB1610D/CrashReportClient.ini new file mode 100644 index 0000000..fb34d79 --- /dev/null +++ b/games/unreal/magisterka/Saved/Config/CrashReportClient/UECC-Linux-F30551E0B2E64120917325867FB1610D/CrashReportClient.ini @@ -0,0 +1,8 @@ +[CrashReportClient] +bHideLogFilesOption=false +bIsAllowedToCloseWithoutSending=true +CrashConfigPurgeDays=2 +Stall.RecordDump=false +Ensure.RecordDump=true +bAgreeToCrashUpload=false + diff --git a/games/unreal/magisterka/Saved/Config/LinuxEditor/EditorPerProjectUserSettings.ini b/games/unreal/magisterka/Saved/Config/LinuxEditor/EditorPerProjectUserSettings.ini index 9245633..3fa75dc 100644 --- a/games/unreal/magisterka/Saved/Config/LinuxEditor/EditorPerProjectUserSettings.ini +++ b/games/unreal/magisterka/Saved/Config/LinuxEditor/EditorPerProjectUserSettings.ini @@ -1349,7 +1349,7 @@ SlateFileDialogs.TimeStamp=2025.02.05-21.36.32 SlateFileDialogs.LastCompileMethod=Unknown [AssetEditorSubsystem] -CleanShutdown=True +CleanShutdown=False DebuggerAttached=False [PluginBrowser]