From e70d03fec56e4fa8e06192f5354b449a26a2312b Mon Sep 17 00:00:00 2001 From: eyakm1 Date: Mon, 22 May 2023 01:26:53 +0300 Subject: [PATCH] Started to implement GUI for session connections --- Content/BattleField/BattleFieldMap.umap | Bin 619099 -> 619099 bytes Content/MainMenu/BP_SessionListEntry.uasset | Bin 0 -> 20520 bytes Content/MainMenu/BP_SessionListMenu.uasset | Bin 0 -> 36409 bytes Content/MainMenu/MainMenu.uasset | Bin 60527 -> 66033 bytes Content/MainMenu/MainMenuLevel.umap | Bin 33331 -> 33607 bytes Source/TurnBasedTutorial/MyMainMenu.cpp | 29 +++++++++++++++ Source/TurnBasedTutorial/MyMainMenu.h | 31 ++++++++++++++++ .../TurnBasedTutorial/MySessionListWidget.cpp | 32 ++++++++++++++++ .../TurnBasedTutorial/MySessionListWidget.h | 35 ++++++++++++++++++ 9 files changed, 127 insertions(+) create mode 100644 Content/MainMenu/BP_SessionListEntry.uasset create mode 100644 Content/MainMenu/BP_SessionListMenu.uasset create mode 100644 Source/TurnBasedTutorial/MyMainMenu.cpp create mode 100644 Source/TurnBasedTutorial/MyMainMenu.h create mode 100644 Source/TurnBasedTutorial/MySessionListWidget.cpp create mode 100644 Source/TurnBasedTutorial/MySessionListWidget.h diff --git a/Content/BattleField/BattleFieldMap.umap b/Content/BattleField/BattleFieldMap.umap index 250219a7dde03bb77114863867e46deeec513e4a..9ad146dfc923aee1111ba981fd9d21e4db714875 100644 GIT binary patch delta 338 zcmccpMD_L))eUBh3Oj5T&HTCUmiwgGZ(4tZe)PJ#FP?ffGR$GydgeUF(z4T=!x$fH z3NbM-FmM2|0Sk}-0z?1F7v0q+b7~t1F$1|EDFKi;5F`eJq&DBwu3+U<2J#t!SY>jQ zp*|0Yb?X2B|3Hdi^Hjqw4lYAoBSSqy13g2F&6-xxf|L1tBqq=C<`FjW@L$jPdyUW9 zz3SQ>aW-;54U-MMFu=fby}oqT>X zZT9t7Vc{)>sR7ZG1)O9iJJ_*o?hEebn4F(5Z*oDbG!kt+`B-cnkbijdf%qcE$p_+h jHX9|j8znLVF%u9o12GE_vjQ<25VHd@$9AJcPEA1o_<&}< delta 320 zcmccpMD_L))eUBh3eyZg>I5>XZEAZrJNf)(n(Uq=u-VpMg=Mm^ zljLLvJC@CT!QC8;43i5I=1wk%l}2M(O+FS|2NpZD`9ORT+#ftU%1 YnSq!Eh*^P{4T#x+m}9$9BB!Px0KVpF-T(jq diff --git a/Content/MainMenu/BP_SessionListEntry.uasset b/Content/MainMenu/BP_SessionListEntry.uasset new file mode 100644 index 0000000000000000000000000000000000000000..a4ac92126c8e24248b66819618bdd6b44222bf54 GIT binary patch literal 20520 zcmeHP3ve98we7{`Cv0K}vCY>b$M|o_`dI!z!1`OZ^#MsX#u$6FJ1b4t-C6IfQlWUoKQtbDkfhN@~h_xDPF);kdPlFBtY;xr>A>%B<<>F z<4V1xRoa=kef!?qx9`1uduDo``nQFj{oCQghqp}ZWUF^O6!(9!J)c@*?kAK27&Yf{SV6XN)^5V;NyI()$ ze=6>+-QQF;AF#WY3UNG+ZBELS2Q&?RyWi) z)K;yiY+PDZSBIvmkmIbWLY#qPJ1)vk69P2Er*PbZ|NZ!%`_Ajr6T5ade){%FyZ&&` zrf+@2n?G-M_wQQ1{^)%bFWyo6bK;W@1(+<(7RQO1ADIz(FRm6X>TaxFbg7lFOxIdc zT~@hVA_#HqH;*rdfM&9!{~YP&N%`qQ%<1r9`WM4+nEii0>zmD_Ro-gasa7kMEwAg? z+G)A2?WES*uGg6IGC5(_ymZI%F`5?L#qu~S}i#!UB# zmk(asK=tYBdM9IbxA%O|ihAO&ElVzXPpGaj)oWw8ZeD#;3%V6F=}efO#df0F+;Pp6 zP)&Dhv#8nfCnJmvSYyogoQ!zr%9fW-1$J#FW9B+CPTIeEx{_Ownb*5E|5w6m5}+!6b?PJ7F5!z$l9I!v!m{GfKv zE{<!SLbEhlL) zQk}c8?i!kh>GHGLfpu1Hz{$j1QNN^ZFU@qliQqfP3|ukgyyKpwep{_%kCl<8_0d^h`6@a2 zpbiu2^~BDXue*?*5QFES1W=7v9=w3gjxpR|u|o3r&b@*zy>`9}{;eozBC9Cwq*G`(tZ z$cf>KC*Jw51jj_q#IH~K)>Mv{ngFbIuSPiV%Hnm1u08mbS0p&=rL!JGwDi6y$vax< zX&q+tDzn!TZu2egJ2!v5-iewCdk1>yq}U5LjUXjX_j0#TU8+%_ox2y`XR&L(R(*q; z`OEt^QwJRx^j1fpQ=XgCK?0p-zZKhHTLbO!xQnoI?SbDm1n|opCs~_xvKXJO(?9kM zyXZTJc3SLv<-{jRpc_Wk%Ne=@ zs&vI!@4vT-j>)*0PYtS`-&{^R2}RSXzqwAv#0{9holIqe=w6yQnR*x+Rokz8<}>FF zhY#`b{_lP6OmgsBcV#R~T(#h1Zz7A7Wu`j*87a+db-qR&3*oF91?P3pSv>}vmQiqC z1080PEXCycBXG9(C?n!rIR+ea3^+Zb;QRsdY%7AZUcq@#+50e=!#G;^L;D`aVXDtE z5)RFjWh5Mi5|)v0=pigaak_l4_!IhGq0TjqrmOYO@#1XBqH#3cZ4xR3b;yvzqH#1G zt^Zenqt7+YNq&>ym+2x4Wzuy_*~e4B=I~Jbw?Z(=zDOaE$3As_-%;T6PKXcfg?`6{ z4*8s-27Z%PIACKbh5A#75BZT#i!#F4vawLlDP?ED8K)Jf8;N9%Kwo{AwGW@!iRYP3q$Sq$qePkA!i+p59|>$uuyJSCu2AiV$ZN{}wbEgK#>g!Zy?JKXd}; zSQc1qiO*xDGWx_`d@1=b+J98VAo4E8r;tos=MdguV%d(H0(!X#kf8f8CInqCz{%&OfQsU)6Nb+D^MiHB2V{OaZ??XPf_ofg zgEF<*^A;=^ERD?bi>a3S7?Oxx2G9@-7>qG*^jk@V?hkFPpC>&hoM+Q|{2mSMkT1bJ z!EtUg{q+i0J$`;ZdOPNeZQ10dRytuvxsp@^XCuX>tt}NC>R>p+w=e)7QW;w0vy!n> z%F&cCVF5Itit3fsE2?T%$U3YCvFvJ3C31o(L6ezqE$QSk(A@MO;Ytvyb)JyID?P;@rno~JL>aER8!(c;w(9i+f50^R%C%tIy*>({9YvL2f8WV@{B z5;0+eLJE{3;#`HX2KwuP9&OPmakpaxdc+Q)sc#caVgRiiXgQCYABV!V#}AWeVxv7( z(P@MP9^|K0Y?tGmhC~r8=zU!jtJk{9kAiQNkph+$LEzPzO^5p04LeIiE3~rhz&J@^ zEr5H67BnWUuqI!!Rv{FL4CUpXaRW){81BBk2?xv2DR9M-Zxg zO8N0D71xSpc%uWov+wMywu+s=*50ITtr%_u)0CDnf(YcFZx9{uo~s}ksTa0Adi0qA zz6V@aTn0%j84a@H0>LN{7Y$N24|H6}OL`H^h&~@5qqHE7)|fs<#Kgu-+f;+}9S@eO z^%PN2FarMctHE_8O2*UFF|X6`nbvQ3G{at*=W(R{(DGfTRqY~>DaLbwzfmY^nC0H!*rY*S^gPH z{=Dq$$p_(GY4}-rXkOTcFt^*=fm?zZm?y zqpUyj?UWw-Sm>grR-(vN%#-u;(1#!$q%q%0q7*jhvBa*vs>mK~557L#2Zk+im zuTn)zukA!c&mnr|rTr#BgI23^o{>jfOB{tIaW079trl&&{_+27X0PM<2C1*1nSG(0 zKA&fEEiyRYpQE%kvbOb@RKxZwkb71k->g6;vkdWVC9+WFm`%ty8v$L8b7r8c@K+DK zIzU$8w@T)0=l_$8lGbP8QKE0eL;||dcASUI9oLAg!e~@O&yDJT8OEX#{|(S~ja)IT z1jY(LI1<%>u0kF0m*Kh+yylIGpN=zahhj$6030%tRvM8bsQq_+KS9i!EX?&MMRuYbxdWY}m_eSy!#Dm#OO-dA(Uu z(YVW1-3o=fQe9UlKIA|iJ}=#>BH&R0`=mU?(|jsm#TusRSHPAvO!KG=cvJ>FDpfBA zOIaE4_Moue<~>N;e030Eszcs4+9(f>4AmhY)m%9zYe_WM>cI2H zW=DSf&PVg>5Yey0v!>z?TStFT%SX$jKQ`mT@9{mtaPFUUY#7leTHFe$Dq6H@AVuh}WHL2^1)p6M2A_dWc2fgHb8v50e zdWEEWi>D2K(X9CZmSt$~BI10%LM%{6O=6z9MvCYczL&rwph7*q)X*=Z_o@4Z6 z?L^Fot9Rk?s;HMMLw@WR&1lrIdT#D7K2p7}tNo@QzxTuSzrNy-Rv5|9JXm;4-?ibd zH=FU6{RbZV$@OK6Cl!LNli2=G@VZ81mV$;U2Z$U*Jyrp5l#_ro@#qxVF$%S#oVR@H z)eq0_da`}@sRzFF_0;}%3c)so8V3v_OBA%A?5rzV5h52p4M-C>7TI4u^w@3FrhD~! zfA;MIPwbt3h_VlbtqgIH47jtQ#Wno*xedP1UBVp|mYEU}Z4pH!FIu6v@MVCwd>J5r zrUe*R_l{90I7#Np_f5$)o>R9vQwTOeN74f+d5z&`T#iIJBa`>M-MVvg`<;JT zbj4lk?w(Ny_K)aDl=I#l*MI!$KRR>$1FZ|Dx7_%N2jLhneVXp4k~+EM=hc_4z$&zIK7IsQ9#0EL+AOsdyG5%Qh%1w}oL=Fh1XSfu}ZxdBZ zAHLsg<4tA*)sTheve>Y_d9GUfkTM*IeKg@JRw7Zx3kg`baAWPIZ7prhN(pjJ1&6Y+ zJu(#o%`|)uyyhThV=gvwP8Q5lat-F1 zaZ)g&QS3BF$8x?}L6$G%N-13KV};Cd)ex&UmwP<>NMCk4=2&iOo@ZEBr?JsYF5fJ6 zmVNdIM!Jd5IcesMXvTE?K~&=wbQz8&hg0rlrJyc$@<|X~%)^jj^n3KKb@UnwOesUu z#E_#0infz7tbQ|*#cRn<3TClM_1Vj2Qe0@to`ts#hR~s3$&l@k7q!ZO=`J1F9=zS0-)LV>WA`bS_2DkRUv7q}A7c|grsf@(c1hT# zkG(w~6I(7hW=4GU4Op5ZgZCKX^K=CGA@SLaGm6r*vItO_M2<1SWh_y_mUn}qdb=*} z{1|YrG=drN;In3XPl&D(r04>dnVeKlWuFY_yI13FG3)Ua6(iedWnN+eaQfJ>n@3A zEXG9y3+!`POtFmiREs~o*gJS93$eQ#FZ23^vu&M)jsHdmzCbX6xDbJgRa|&iRr@Zf z^{A*+s&b4e!wW#xCdoZQnA`IiD2z>iWP>3b_K7X_F(b;aTUhR5+;jAhy$+Z;e{PmG zl9v1U4O@Sfz@JZo>1s9V&7@(p27B|3E~X9K&0aJUmUEA88TzDwVT_hh`qnl6>E#)y z<=s?AiSEt#^q^afO9#>%!V!wQxHzficf#uga)WOTI(eiA`_Tm-DUch>3^^YlACO>t z&LfF1fgI44AE02i={p8Ly<j0O#F4le5w^+1d0wl80qdN3asK8Dhzi6TKbEu+Ek#Bsw zv%hQOhBbQ*&8R*3z(?0;{v=b>m`hL@MhtJ}_xbz3(`Mc$-o~iURlpNNmErc(aQHfW J{uI6u_Me^s5h4zVn}%bN6QV?q&nQ`fEG+ z-JN@9&dfP;&Y3f3=1%TBdeNj?Kiacr&yoX#$QdGJIGBECJbK>r-7|L{{LaPVfi=q} zoqQmrT{8OkB^NgYw!Qq^(Rcmsm%E1NQQFwwHsAcyhLi8CIV5-EjtlSiPo}h;h0otR zyy3DFA6m10+m>0MmgZ2}>DDLP*H+!@du7Bm*T#(FM~$bnw>$6M`KEW{--iBA!IsKL zYNnk+X%m`+IEdoz>*6;@gX# z{MN=%-#PBd?Jrk-qxhs71JD2ID8Qp05OAP4RtyoNFCXRkGCfV6Jioel@;ozS`eWwQ z;%SA`C4dmC9y=%<02Py=_V??5g`0{=LX=#k()gFeum|lwi4yW^{at3>Tz@b;*9^z= zyp1hQW-Jzrgy#ffR(05l_KINX>l?=Q2a3|7r(kIhOOGDzq?bs`NFEI5sqwMBx=rYXg%L-v&4sWQ@`>hM_zTfBS>Ps4Ou$Pz|XpUQvXwV-LZ$3SG=P(Dv{JFKFbn$zJvp!0z z4g{%y*mhps>q7~;G88&180avqnE3hlkvGVsa9d|2TIIL=;-k*|6^8;!CdI@%fl%w= zc#cN>y^YaGw;8p1McuuB43bKT%H{rG$ln?=wLoH!h*-L{y9`ZjB~+1~D$)&$geCU8 zd-z+&AlVo4$71u$W$|FtjMe+C;BvD$*tS$WbzE@SNC^<>>N3NYH{MEBHwMFDGa!~t z8$SmqTYb*V1;JR5V8of@X3PNRTdP-e`@;bJ~`hzqR4Cif}S+}mx6VMlIwr3Zz=f$HT}OG~OQx70?w z{Azp0kb9^Zj)Mb z#NXGS1Eugb8d}K=D48MqW6`Z|Pl8hPZC*7@LW@s4@oLX{*r>j_vfxjydi-ovtJ9Vs zi^~0J^7@gm``&0g)+wg_-_Ze(-`Zq`+IfsUlO(-ewW z;RE9O`l{{`;;CbPd>cBLEjtzrE7&umtsvAq9Y9R1yX<8@7-~bX z!0O2ai<$qEd)A3Em%3z|)f^#~P;3UYWK{FTeK(!QT|RpU!c_%GgY6L?%5P=nEdk^2{;ar(Kbt<&uCQ}-4RKl;t#XbZ*#Gf)+2 zi^CMwh1(M*Q*pvfY$B_17L{}MWZ9?Bl_RK0;d zTn!fX0legl7v2YpQgSLPsC}|Vao^pa{RUk~cHYJatn&934n0XygZ`{!r&xZ8apEb8 zns^tpQk?nwTh0K-q^&X(58n9b#P7*UVZT(;;;o*=Fys=9473?F!)>Pc_Lf)ghFevw z@sN!UhGfbJ-Xw)dB;!A08)@mpdscA zvi#t^sJgJAS*0afxb?ZxS&)8RObzi8@Re6b&4L5K!m0M)5_y+g`W9L;hrB+2)E5bnOE$t6s{sNGXbXa7kMR7sVgq{ATz{0j zL-DuI=8u4`%=NDbcE!8I}QVpo#WcsD0BMq&%aFV4Aih$G=_5v_UK zgqom8O#JY(n?m5KoE81;fL{y;!y?MbHfP_k2anq4HfO)>ffj2+#@=h?3qRNewl=i4 z$KVEEKjgbNpMvKsy&M1boYBzghOqX7#M3W~A14vTt!@%Nj~c_eHp~U0Msl>E;j!9F zM`F~{&vPPe{!nlw@jMa+-(uZc(E>FTi9L^8Ayr2C-Pdk^;dYta zZMFs5gJk<;XZ>!)HP?dSM5wLcr#>1ThZbo!XJhX53uQ^!78@#G-24ehXolzbX!#jI zC=VXIp$JWT{-fu{KR_x-vCBMGVLgO0R;Nim{(aA`l@(x?bk%Y3dLY5j;ux3mR{gdM zE=J$vc{DAjNy5vgJ+(?ACB0Cs8MV5j5~|ruPI+^%TRgDqke^~*qdC$oK5n_;0boed zo)d!Cm0^5OB(slRzUQ^qxquwJ8cEw@V$4ZfiXe^oF*B-FX82pHrDL^#+{Q?>uu9C& z4;=;$>imyuwmuBiQI82vt>L^UZ-iHvl%6y^Eq{9RF+ixGnxm#EmQK9#W3&rls*1#) zXl=o(?^o*B4W=~jdL}B6j4+e3fH^Mtz{1US&xzOdspRp9yAc8W`4xmkEaNnI7(wx~M4CHw6^O z^*z>J2NDR)o@Ds{bEKh<7is{s<4%2l^M1f{jswqTeP7kAZ?cT~YY*&^TYGly2Rv@= zSvNn+hG;Oi_WaEupCJSX8DXU#@~NQapM7{_wyqxZ#NoG9K6#H#`pyG9K6` zH$0yW0-pCB@&OL$9LtAwqUtP496)fBj}s4YxZ$~N5b(U`Xb-$mjMv+LJSffxY2I%dF|XR5ooaf z+QWE~<#RYYYFVPo7EiK#Dq6BcFu?XC%cp(GzT^3j8p*X_42K`je$6vF<0(HwWEZ>f z?E?p%lc}1yx+>`PPxSo_t@95E;nve1XOF#D)WrK%Z4&Yg* zE8H*$c;0oi2lo0JT{rmlCEZU?2WR~OYv1v_PZ!d#gpCz`;6U9-`!ZcvkVgGnZw}pK8wASZ9(D6QV!p?#7~Dgj z497iiayoGEJ@zUfARoREUKL@{`&hch&;_}VN{T@<(m^Nc0UY2#6Jqd>%c4%eqF%(P z8)aT1{-WJ{kM<$}20TX$ej^625rfabaSC1V4S)x*unTxc2s)3Z3wp@#;1zhnyc+e-xS$Yn3ky+kuuk@?*M8kt&{b_@NO ziho(Vl)#(@iyJ{uDx^31X^R|f`=b}_a{CV@NhQR)oSGHNd?H4nC&+&ayJ<|gtxKz?8fSr`be~kwjRnx z^5)0HyGw$TQg>{yll$e`>BVLYnSCplFPhWv3yPiedIw7?8HF?<<4#fR?sD1G+2WfZ zd%g2TY6)SIuT&@SPS2Fxm(yI{f=`fULUDLdszYz7k9W;8yJ^E6X-7bdEJ)mhuI0%+)0E?^fKATnvlOECN-#_xV*TmsI*Mx(e?`35ZVw9^~#Q2 z;}6A5+5KyRUb%VTp11exIe7Tj!IWbrV;hWy=WSPz^PacmyiiX<5ue!=Wmhz_fQQ=6X=K zDO;VW+nL5xD6Agp{0YpQH%Amn8c~m%#Fp4n_K=ZQH6`SkD^`hG>WvZNJKB!6vR14i zXzop{Yw2J;G)^&<954Q~-_Oe`cyOlb|`WLsbb+C`P5 z&7yi@L@(;|(2%I`D2QBF80Hwq9&$!hse#!f)~PDlcP!FW=97mEr>fB{FGuGcspAAs zop;P%r!<|tGJ#`X+rjj(p3Nj~g4-T)YE>&zbJ!kdZo^nzzKY~fMX$-cq?rX`x+oE4 zB>NJw`^A*vqr4jWEfEz2;Ul;*N=Jz@`YWe6(c|~EtxUJmDkh|sIhQ4pxy?uEHrEgb z6PDA7ZwcAwB7$OF-Pbm;?U+e=xKi5mgza#qv7O6I|0qp=f_AjzeCl1@)X(x9 z)O1?-@sJa#^kiRK!W>CZ-As5_QoGt|9Bc2>!!yCK445uwzhe89&?#s868Jpi+YU~v zSgR5g!*X>=ekSa*d+rELL*|y`X{d>!i5AQYNlFEdzp12$ZmB-kRIf`aMmo0O`zm8D z4<3Z2j{+Yf;UOlc^9Yrh1M@Wp=95PQ-zS$wEj5zn>SyRM{l5l{KF}tUAmCvlUO_os z^ry?&u;=$1^_H@qFlqCGbL<)~?nK{V0jYM~xT87_TYI8f$-A=7;rDymPJTkK!_jdGT zYYGev}B|-Av523LlXE+PNFVX%%?jw^UBqA@!U>$cnsl@ z7uwlHbwF#`=gEwjDQ+W8!dT#;#V^)f75}q(_H54=NPZ=I_HI6X!k5Neq_4j}PIE0Y zw^=6T!S-xd7w>sg%%FLoz8P54n~&4mp%kTtd>p?4gQM@mD}s z4dr-f!C6U!DR#H8Y-j4p>gAF@)K0w)y&H2!*uhh>s)c9ReRXi6F3YxbZ%0I?(K$m- z%pVhDO}cz|Y52>`2_9=wc`!Mv^6aBy-H!c(IN3j^#hjvRO0}50CQu-KR1a;%&xYoN zorTv7PsAgp>5{5Eq@LhE%gH%+_Rwn(1*<&FWmFSZao~OW=pHK`Cg~KfdM%M7KwOT; z9@+O%dKGDD-!Z!HiezF1Z4Gf`BEhF(OJ4#KWS+5|%og9it+()u$tV3jc(V~&XKAEg zXrSut@PiZc735)krEf0#wb{2CbZ6FB_FrcbRX&nFEDu)autp63yIx9hIpx7;RkVAg zmko(!uABWcr=~1%k(rx@cxc&OX;fw$Jo?nqss^l^k1Sp}*)@zch4fS|uL`nguP=1)8LtfiKEc{TC#|+jb{>fm8XW@#`91o zWG?yb3N|+h8Y3nCGV_ILPv*UvbtSJWdgPi(|Ftr=D`-T)8WP5lGU6dd7W{#q;44;` zN{Q1o6jx9>I6a->GLlJ=99fF9Y6W|m&NcTusuwfLg!RTcb{73=2`{ah-a&ylq->~x)1reVwVbAiSK z48Wmqaj60uM*(RS=m8w#DIjg*G_D`Lh|?HHp^c-^#sT}M+UIN$`k$hq(8dQ3kkc3+ zRv$S{;cFLu8XICXPN4;bBstWcFILlYUkr)bxJ7OliX_ddu7P2|IyckC7>ZM!>~A|9YvBqsFC^2+)hZe$mU#utuz0YD70g5_zk)B$8XlkfAbsG2^MVcdJyEJ zN^%c!@1v~q#kPfkpT%YSlX73nQ0(ZVj1}*wxHj&$#dgoz8$Bwv`y}__I78_g@2@^n&5bet*x0k4quYXvPR&&Ca1Af;o-C9sF56Y zhdEv%^$MeDi9?&*rNCt}kBEEU+Y(gmFAVU&nHSu%oLHHUC3a6p^yd%4DeZCr~zx37rwmP4ZQVoEAUX*q$0T|47cCV&neMLor3LX2;h3(fE}XD6m zP!S+r89*I2pl(!;b_O<(%79IbU>rg+9uG~GRQRTju_sjqY*wX@rDXcv8Pf>(tmwo( z%(Qf3=W+IQVvny3*l?TXD@+5X56n$VA2zLKPv3s!BQ_zYr4zfgv!`>QeEd4qj==h7 zs~NUs7RxM`%(0Z=lt$WGuq`@mE#PTZwScI!wV-QfRSWul+FHgZ)sn3LBPbt%`Q*CM zKE0Tn1ZGt=s=}6P-mjls)g2&_!X_1o2XqW`>>AeSR4%YeKQDEKro>L2F<-~FzI;Fb zdhZ?SGUptBjPLSvnXwfwRlzzTq*VLy<>yo}^EghcZP=KfR>DBRH2~E=kXJ%%PR}d) zvavTUukKk>k)BtZ9+>6j7IM6Iyh69-8vfC|T6<_j`UuaJYXF{qVBh^B*g2?DT03V@<`;xlUj#dskyi(Ofq3-=uyYxCg^@m! zUj5t75rb?FrL}Vzd5r%Sbn-YKRZ_rQ3SqPSP1tQYmt~+$I&-OxVKiMsfljq_%*LGF z)2MJ-I)Jr0gFkMQQUm@q6M-ASG19KW4+VCiZP$_hU2+fq+da3GiDzJX%kKWqr1<|j zgygBP5a+54dys=Wjj&inslUMqd6v;Kq5eU!apaTF&VJZQyz|~!68{?tAN{;V=ha~9 zdOXJ8qZb`Gw25Myv2LX?(O*IrLY<22r3vJLJsWj;f}!#sQ>RjLy#(fhKz-h^muc{$ z7affMS3Pgh!SINQ7SCFpL(zDByGh3v>Ue{WQ=%<8g$ppwYf~U~!VO6UnDN1M1s4AD zzSH<}a~hZptPHm1K={ck9%C2_MC1O&Ri`-qnb?6z;y$utq2?Y7+ozu+I!=kYbV`aT zU}c0RA|!WEk8LD+6oB0uZ1JwAey}24<_>bam+MTXmNhMH7q{}BzWyf{i!;{$WzmfB z%a%Ov)C5d=5XR88;Gxmhvz4L;TQRN_G*fLTDmB2Ud{SA4wVp<%Oc{B+bWmh38!2$9b)fJ+W&Mf-$jj@Y_t?in}t zjH^1WclUO;v|AkolUnB4KP_W~*|cC-bjr8ZJ-A}dk9wc|{*PXqzXL5uPFt@llolAv zl7(SP<-CQ>R;fAa|FRAB8D%5!$#HuBt^!Mx{%KgUMkhNgw4IXqrcdci z?LJM{lhVW1>Wou$oMImF;mUpo`x(0QEjq5$v5H1eq>uh_{Nr_uwnovv(#u0bDiWU$ zhi}smHu!7e^{NVc0It!`X>E!6Z*Lb50bkBdYiPcvt7XZ+?jxicoD!8mdzn(zcvk?&i*x%&Rz;yD6rrR`Q)av)jDUkj#+1G^)qdnQvp2^Ayw_+pCY8@#8rm) zrjB{^r~g(Yi`W^A8DToBz@Rvw&o?pXR4Su~P6VMG%V;$X`t&~?q%tk1D(derBJJ%) zcQ70?tccMX4~7CpyZ*L19S~skP8;}ueejk?pPu}K-_+i>>Hc4@>v=lH3_IzvBjjKjJcKfP7I6r%5kF`*(-yQk$zuvWNcir`0eXa7`u|HejmbRC6 zf(5DN*Kaf+Wdxnp?^gYw;G+u~uDvOD-QD-Bn&+1GMYI#2Q%AZ@b9^5<(q=Mw|Kc5K z#~Z7E`tH14XKa~y=98~~Y0q}%CYZ|;bC{<3m)D&BXYbZo8?J3X>7^Zywz;M4Wk+H` zYI*h>4X7i5&fmXsb4m5;T{FLZ+o`wCzUr28x3pUwXl(@h$!TR&qsAM%iPkUTp`7hb|2l$?KSuWtQ@{E)M-U@)MZXibEj#@lba0k=pytP zH*(%0QNw~4*dq^G6`mV)#jF&skbC67)&Jn!2bdoEl+LF4Cw%v$o;8<~L*J7N85a2;MmHVhN-d5B=@31G&ULjY zxoxTNz!65^7ON-6Z`uqEgFcf#EnoH>#2g0H@>#mnY8`V&l%G7@m@X4gC=wrKAVV;OEA5j%-EjH<(A7W#qtCBi{;(dksCoZ%v)9H|uS42+Jh8BiJ5 z3>0_8fef&GGHxhf*%^mH8TLm3>EAh3cz`DMd6OpP9A->1d~#}JwDuaU5v!AWl4*3% z@nv!fg$Fu|kq(cVW*C(?UpQvOsY*F@ipIl6FdVe#aAbo{c8hoGo@fT6x+|&~7CyEZ zHM*nbayqn3qC~Z-L@+E7(n)jj^k9ipX?KS_3o#VxB>=x=#6XfN)21hT_*5gEX&f*p zn`l7?nPLR32{Ap}L(OC|&_+KQ2Qw6!h6kB2Y0_Dh^XlvBYc&((ERswJPIAM6#zr?; z8^R6S(iVx)@r%JWBi2gdW{GjP8u*M$3MlO!w3m^Sk5|Q{&v*h zZ=;Vf#;9Svimg;FJ}oGzh~Z#QqPblcr1@$LM?H3;e%b6m#EgX}ScbWRjz^>3P7_uW zjYXT4V5DJCn7jPFMqAV$Q$o~ovztt&MT!%Lb4q+MI!I0?!KhdyGLn8Pf4`7gO;c(~ zLz|yOPA$-NN5Y1=+#ibjagZLV#o4;ebQEzIQ)}5W=b3j7aN@7TsMjym)QXgY@Z-c? z@L%TRxJTkV)uK-fjY-kv(HB!xK<{Xbx6*eS6Q_dbB~Ct@)=A$;RN)d*_0L(wKUej( zRXfM2)1SXSe=fS5^SLSU;483HN7(%=?DNrN;FIjLza3T-szs+Un$b`%Y(xyUL>pVI zf3@)$(6rWNkSEbi#td-OXFDT3va~7^ktcYf2=#4cjHC-?O6veaVlSE*U34&XkdAPd zmWI~Y;&c}=`~g`r7TTgX%MxhX={QS?q%%n8*hbqrdu6vZ>Xd;C(|PS=Mlc|16FoIT zj?B~^I(2bsThxSIBx6DLX$r_P8p3sIcnPk=+8x>MJo=|Y6|ji!HR;$^qmhn%-V3|n zAr@=9uwPlbpV&GmES0Rx(q(v+fLSH+xnmmJ6FxU78y_VP6HfXWq(e%LHgZvE=$JyQ ztQPs}J^o%bHcK7pmZ#?$!7frQ9Eq*Q6MMKigYx}dhB4PZ5!Yyj+kjJB)B65$?BSA* zlZ_2}N0!-#R@yc2;pItU%l>3X4!34teBe?8;(=5LxR%TYxUqVawU4Ne<*65HG{ge* zB3Ve#M=EHuUulsyzofjZxS(Kqk*}<*rqWwfR8wA7SX@$BR#xZ}H)-HobbOwURdfU80g>07J_)4v0t&+Dr$D);&di%VH@nO{>-=97DFYRQ?S^L5jc zhd08>6BJBZWWcn^KGn9RAY(iJ(R{|+pf50=p)7mF=gm|QA^ELWgG#2(qi=54G0$%? zddUD0>u<#0qmxp!^c2dtBwZ#>x)`G~m+07@cjNW#w{_xh9YYofj7Ik2k(4k+CMS0B zjnL1Qj^zUN9Q}aqj?k_md+Xl|`gxO%W$g^aiQm$hJ_bsTt8@Yvz?&F^>s6Hc%kQbd zS9zMeJcipoZi?&SwtpwJ29+}XhC?44JN6>ql^P)BA3cO)v-sH>h&gGq9jgFL@(CI! z5gns%nJDhjeT_{5UYwir_>w<;a#OO+$12kWuGq_E*eqy^NE(F#9Lq0jo0xT1NM$>g7U7%_# qT@WlrLYr-LpBB?l%FGHA0MRiFxzT?ur_LUHM0+YbyGQStXI6Mu zZFr^ot*<}zd6(f-*7vpQYyMer#4YZ9GMBx$=x)ytD%+I(=Grb5=k~ep)b*>DkN-8l zBbAMg{IY(bYpwJBgD$!xoYDK>{#5p5!`e-o9m~G!^mf+r;&tv}1F5Y4S&Fh3dpQN|vvD8!(0od@R_*#!bXQ5HP0S26%< zCeows>mR|%VNT-T1{`{#Vb~7-!Rqi*Pop~A;fX~2s@tdfy~gu$Pm{9E(|exX0^l%1 zA80rEGyl-O(RSq?U!YtKG!J)F&ZttuVP7y%<_kwqq|D7)pM69kWL+>43=Q@8hGyHd zbL@HcY)ZMgO3NqB3wtC&GXmw}E04HDXN-%7^T{wiQ7)MD{=WwpItqB|)vDRe9+5D z`S~83IvXISl$R>`Cw!A}U~E~5*GCPMRVR-7ct5Hs_Ij&>Q+?{(reG+dJoD6Pg;2&~ z?;KB{R`pi;0xn;;$?s`VPCfWP`*cE;-+zqHTdzjK%H#dJT`r0OwGF|L%MDBdTJ5W9}8;x`w(B&UKL$ zL`Z9t?O*S=MFS)*t9Gy=glhxVHzK|N8=!y8|sMWsOlayzB`DR15 zH6`r|p67to8?6C6VQuThp&N%8h6!7><<`53$q^b7} z5ctc~dQWZ3M3sgwSlJvRT|7zkPgd)~$_1;B9|=o}YK$}3*hFqC5P?wYJrUL63wV8j zdSx&5-fW0A3R&9h^D682Ib;enFIrmF5{{^iQ`Hd6P&qxa?~s^A)h$h`()oak-#-bB z0^X82kr^}CY-WrP`T`XJKPezQhodY7d#?JqKha=pG+M32rSF# z@%!D)f!Z0)kV*AxRr6*K=`1z^}z%om^VlH`k zZ4gVBuO9|o;wqM;oX&(;iqHS8BXm9k8I3V_F&)s0%9VW_0~oYlAAS=SokcLHT#_^$Wp3$yf>j=949Q{KbB9v1qAme{IQ0 zP!AbE+-Gxrf>59Y&f74*hZXho&Y955gqjf}#`?ToHK4q4cl~3q=8`}p)KW=vLPWX! z*iMJTno9!Bjmp%=&k90TxL`pmlis*?4D6%?9=0;1)~O+tVhUx@fg@FnVo6mbq(*8R zlu^f>I|2gaf)OLCYCV3nI_UQK{YpuBsc>E;)#PTzlWzO!T9kR)ik}dS8wy8^a1z@z z%MaZ+XE6pzOi3A<*gyHH&+UQ(OjBCX2`gcx*XgC5Y;vm;}ShM%(;z5RftyP2N6Y#n&i;6Ow{g3lWqR-%Rd3!~)=m5yy}e zMBvfC9^ zqlCVB;9Tf47r>}UOccB*TVMZGs3KSC!e2SPzQ;2E&o~ zs7I+<{NiumC$HaLfQZ5lFLDqxDqkz;Y0h}gQYI)=G6o5?gpAD zFpQ4D%2)Eo1Fu=Mr94r2?sdQ$TPg5**DSmqBdS@2uaEym_z3f6R9DIN9ZTv2B-JKX0Tw+wYr0f2{uQ>LSd%;&dwMpF(|{&K4%LAs4c!`9eL3*h^UOz&l7TDnpF;RhTRYWf*!g#FWaFeV^|FKWHe^f)r)8bL!vVFv~q5 zT5>7h{Wj$wSXjAdp0AOd+`lHiUn}}o8_BrD9C2QsyY7YGD;GtT9&&II<BSf%i;oX-A1ipYk(Dmetd>HBSptsqt(oTR_)Cfo4)OU$T;MQl= z1)ftn12+hXYSN-_I*bPn_;_IgFRf~S8y8dt!^bL5PCuueq2M?r`;o|x$ARqRZ&+L#v<{uc5AK~ zh--@r1JC-7JuuQ00l9=wo`0u*Kg16eO=>`Bh@+({SQn9aBO&F?vgK0*$|h~~Wotie zC`KUOg?)9)Rpn3zF2{PZ>rvIu2`-u=O{AI}S#)l^xE#`@h=RNyt?^oDVp+3t!)L%# z>8U*lmL4uWryHUsd0iH)rPzDEutJPVm;yspIWW?44v3LJ=1{FFHRI&td)@=ujdA-;k-m$eW|MvO4H2c&_k;Y<=gGlfMEaJ_>LW#vQcxhHra;Pqr@wGT%cli{jm3?$-i#o1PZD|zBSa*7~Nb_75ZzRPHE($p?-oMA?|3gUAg8Lh(L7vXwew4BZLcwKS=vHH_g3rBZdkk(Kb(v zh};L~fI`|u$aX2e{W|6)^b%>HIQ8^9US0@H2$u}8*6;DXIF>$E-l1dq8H0mmr}I-!;iUvh{Gz$ zVT6@K4qu*wv7HiDLsIX%Y&m5P^mr<5{slwC(GWij|6Q8*f z@n~FmT!b{|`5Ss7YKw#76_st}EGOvEs;fh)s+=@v={6|iF~N}Et7M)qy*uV4aV6LK z(#r3ie3uP$POAuc$p=;cbxQ;IK+4xLyk7uuMx~p3oyehz+_v1$*}-4#{$g# z7GNH*0JGi#%-a@V-n9U;!2- z_H}=k<;dE}^HeantB8~e29q#SDj3F}3Wj-21;f0ifVfxsn-XWO5NnqHf;Ok0~z-*M|FA)r%GtJ*nnXFdI z=p-U9FlN`ubKH|{O`bXERmSax47YZoqSeJpW}E z;Cb4BXQez}_BVNAF-yl!IrU?v2Sw*tL?FSe;4#yKH+BIYGd*ZNx9#~c(}S*z+#)(F zax>F|TiO86*MywOw9yG-Bjg?E_>c~y@+Des^}iWEMm(5j%G4}Jfk__vxv@&pRH8L%@H499mM{Chb40vLs-kx;lcc4hUbnp z!1EsiKiFu&nvMB66(^L6FV%9Z|IPR@!vjAD-FrjgdH6D`7&JJmc=n6Ka~TID7SUP7 z(_P}ZTJqC)l|=*+%qkxEIiuV-C2#b`73*y?)^Dy9Q6ZURU3;Yw*PD^^jY44W4+tZntXZ@!;8P?qvd< zjGzPhhP0nNd26+HZS}vI-}%viXFPRuqU;Pj@p}GK4(=@?GQ;zW0T1};EBk^A<^7-g z*IGm%!K~mp+yu|}y8ur=6Fj+hv^_ulP4I+v0iHSoo_FLtx3&%Nd}YuB#8q?XK=;tM z`{_Vha+j7{{colRMm&hC%=ZhfA3q!rrJr{Z9-e=`!UBR) zJ#W%!mudf7g0b{zv?6%W>rz|#PPlyaWca;yKX;^Fzn2ZWTaenHEv z{Q41`t~=8=knJW!dh+>54s0GjOVboto6@O zR`IYNFrJlsBZfOllbhlBI8JV-Q6FqSuSh*Oa$}l~NT-09Uk~= zGd!n%me^OS5;Hts82CX<^#C2rk6U)ueRHZ_6YJ998A(md@EqR;c(xe$!T7L_!A>X3 z0bjlg@SH5gV8rv?=d#dZW+u0Ie$F-EaZ7&OUsyyS!K~m}W581^@tpT%+v9o0fM>eI z^TJnck7qq~8KeW_^O3|eaBJJ*ft{M^Tc>Z@9*>#6o$zhj<1y2>+rMjjJZAd#-~YBf z9y5K*|Do;inCaU^Kkhu9O$Psl-uRYZCpurm^V~Ka4^&;MyIyEGL!FsF_>2m_HQ+i& zw%M2REi$h9{ue_>X-<>j`NV(&>+OxQpMB|7;`~l;s zk9!YUf+Wq%@L&iq7Cq>|d1pF$$@4Ch_m=0_!|Ex|_ow_&dES-sKJxqk$`6<42U6Zo zp8u8d40(PK<$dKjWQ@H7;Keao<`}Lq@*JUEu{=lI?~vzvQ|^-I`%qpY&mkYg0q757 zUnMOghkSH#&Gf2j}2}%Rw)n zI}PWcoy(E)Ie5i6_U=X+&cPp-gAYC*XE+B>Tn@VV95O&ceJ<=on51_Ez)gu+xEf zHlL0HI{2Q&5IP4hW;y75krW7Z>nR7Wmnk1bIiDXz=YRt~;C+wkam~0l&^6=({GbCg zpbYJCj&huX9?*qz(2Vxz2YpVU1O4L~ec&4Ha1DNNjkdsp9A)Saw4*=Nzf0$oiT*+V z!SWpRW9$Kk@jX(WV_b&P0ointIqU@2uo2|259F{7;ZWu z9pIsijw9#*ofvn_(f#QdLdPIF2GcQ+jsbLxr=yS#;D8=7&FGKq3O2=dgZ{_R0ofGO z;iTi=Bnv!W1NvD9!7JMr^a{2GU4s2Uw_snOt&|SvBlFW6&M<)U3v{{J4Q~ zi$fcbIH0%(a4{r?H&X7VMhBdw;RhBWMeflIC58m$mGnkjB%(U$QFHMsE4qMK@JzEi zM6bcqyLBx>n8oy}ycp@&$DIYL=(}VXk=T0qI5b46y-lw`EBMK4`Br0CsGnV6jy{Sk zULgl9j>_ueDobWeq_^SedjwFTD2)C-1eJ=hG`x8)UXsW2)?rk}b}n9jiIEbNI8MkU z)cCQAg&3fH`GN-`@dFVvoCCz{Vtm~K7A9W27{H%#NciZ&u=3~&IRk|CXrkMhUf}yD zHq++>n&>@l8f~u}0v|~S8esiE>3rGZMr)S|O&HHog82o9yq1Y1Xs zPo=AEC)@5U4SUOerYg0Ps>BkOLtEjhAQ=P*n~h|zNl-6opTO6CvZRb86A|s2m1@PS z_^5{f^<<;KLF;8K$*+dw=p$DN*x57!HOhR2d!I=zb1tYdnHh`W24M2LQ9#cVO&O+=B6rZA0*Wc4g7eH1#$7Kxf>BTvebZ8GpWh4ie6qyjCQO%NR< z)F6@(sHmff%|^kO)>g-~V;plo=vx(B>wO!`m1oSkF|Z5WmgDH*_vrwp~D4QYXq9NK2aOJk}0%y*ZV_fufHe5LuRJTD@Vk^abyMh7NauM<5#?EQ=Ai!tbnT`f#6dw< zDdo9zokv_}(HUAesTcM6PAbVKYs`{5mLs5? zR8~YVBj~?dXk!*p!ai+hd1bndexJR%uFdAPJb$F-`9L|QZn6Mri2&v`tS zij8M6)>Q6sM}0iULz76$gXH1$Xi_iX*@LMt9|x|j6m!vR@jo*mIjT)(4Q$npW+Dlwi|#lbqf^k0`>viid$ z|EcB2x?V?qyN-Ic(Z(p-6X$H{Q%WPqGc`5qTEU4rG$%nNM@&m$|CB)i8g1T6wz2N9f-$<5l1CFeCq%-7()|p9)&7$prBQ z{#b_QzMpG(gdkaX$a>L>?kR`J-gwol*m(8G-j92*(JcWhn7Lgo`7ii18(D&tc1*E5 z>hsJg9%iXG_Os(@)(evSz&mSKGf4p@0V=`l0pE*#A>HS}Q?tz{N`}`9h$0%PHF&gJ zqDq&Iwj*RCAEL=d|Igmp>Wsqrz&6PHZ-~w{58x#lN7DQRTMN<*Qzv{vBl)NKw5QiZ z(rAvEy(S5H=zf@6W*XXJZw4cr8PigeXRMBaKHmM|F*es(_WSUnm>2LL>s)O@uIa%)GF2l zdvrdx6F(S1Z4V85F^J>nW5!9!vC}=9^wzwUR%;`fTA`h1k%-ifSl?P;sSoD=SYd6T z+(sj11v}3#4$?7DfCydlB}KA*qWsvlV9U4zV53>s3ND@>pamTB!2U;CYRz*G`;Z{{ z8=Eppw$&V874aIqzs0?;lnx zA@VIXWRbBu=nl!fH9OMoA84H89QO%EkUUCA7O<33x-KBeuoRqx4fQS|ty01TiQvx~ zK1d#SFS5u!u`1KnV%Ss0f%_F$gSqJswwz7Zpe>K!3+c*Dcw7=+qSs}AY@D^sB{q>f zQjnx)kGUhOOH`jFho^U@360)FC^}!YjBSJbgWgil_^G`h+qMytwymI zk9h=AF#hea_|z7kO;XIF19!-@duBzXRrz#<`(Y!5X5nrIVmizw&^W`E$_X$L`_GqRv_Utw)voe~zE->z*Oq4AXXBb{F z#LqCWOU8^9(IjPN9F0sNLt$l<9t!uAZL}lS8cw|AC$u}>Hu4%)T5>!yRoG%UZuBNu z>Vq{1adI=wtYI-O#yc95E%jp@=X5gEq*G<7U-l}M$~>YBi!3>;>{#ElIC-j{_q6OF+@QfQG(}I@WhwywKbSbDr+M865*y;;+B0B_Pntwg73lp zHul0%hW%}Az2qj}gxM~a>Je*TF9U5#$U`BnnQ93iOE(pV$5`r#*GJPycj@OENJ?R9 zcdTriXpvl!MG(hX!oa={IsnO^OndxxIz}kdl@n-Ru`fwRyFyL2IPXi+=qu`S<#nFC z&KK9yMK26nAnOVxY>~Xql6ZgtI5b?`3UdONF_tVEF)q_Ep)L21hy|3QjB#W~abT|2 z+G1^!$Ps2Qu4jD4Ho%O&5sxz*Fpr=y@z9e(7#(nsEvc~6E89oL$idiKY79E{=`fs- zfF(z83`$rUh~-#n+Q?%3AcOQ0$37mzrIL6KSqw{sap?SFy`)JGaVEo=j{?(*Sd1mE zmvKMXf#iPD$!OP)LM#TvhD=*39&*G8VGIxvX}sn}M-S`F)@WC5bd+_;Awp$JSaP}1 z5jA4fN3XS5(XXcW%qv!JT&82yWs(jm^(D6kkM?3pXl&lLsH$cN=!5RDV`*%`b2R%{J- z1Q;&WS~>OZguYhBdrMk>$#yIf{j6E+`e$A%7ewb_ebtKl%FH*<6$R1wTVGe;4h_S# zZiXt1+K`UbOmb!xj=N?%igm|h(AMk=B*sLAQ4MB2H`@~`H0ZCk4!};DuKPTfw{=W} zyX-8{J?jsi*V{(V^|dmOUZII~;ocmNKsrl;c4_;<`Yy2+hifmH^NaTM8=UxNMe0u^ z;0qAx-+IS4Eq3O;dhsC!@ynXxb@-T13gA-(CcnB#rET<5KR)si*uMRT?GNMqSM389 zkE44^K#s&8M!812)V{m{svnaDToL`E1%!qJ37_3CCfvEz((^LMM`T38Cjw%B#a90O zh&?kIKm`bkpi@L3(})ZybJBH?o!iN74%YQf=a8A(aQ zKv^e^)kl2tBkuP+TTK_ft&x;2e2vIDT^R%|67<0I_at|8T=6-Sq(tJ=NY;sjs6}c! zo4{97l2Ug#Rqh~lZDSMA-=x&_YZY~EZ4*%Bq@-oEinKPh348=8DP4VAMHjdbsWmq7 z5837gnLA{@MCJ+E8M35a=F#~=QEqVDovM=kMOXsaWzJL6Bza9wS!(H4nI}w5_{tN$ zScQ~OiO)YVDgf-39JV9ElX8d;TkZB7{v{QMWBwO7gk>ZhLwtm6w;w~q)=4>pC)w>e z#P{5ia_IVB;1Hi=OUfZWf4AF@A?BB)9O8q1yFG_kZYJdrpDNt#Im9;@lX5sVj>GuX zWd_wFaj1~?OQ^|%=t8Y0dQ4DD9J|bv*Yup0mW&d&L=Sc{u)H{&4#a&3mowZ?J9s}c`ZA#L36zjXB+KEq-a^L7OUivd_D5Vc~YFXm{ zcYAW5Zvh6FGXaIW*U>noP(0Lyura7^7!yD%$JS0TwdzgMe>vzSQt0a zV)PCSxYm$K<$TA66{E&Ipx;05uwE4Xu^SANeZS6>%X@=&{<4Cs_?{TCwSW%-&IX_|%$tnX| z`SUu`rytuhtd@th-EK3i8GGhO*qt?N{Y#o*{SsYKvK-AiH26Jh2`LB6nn~9Z_&J8% z!&mNEONjA|8db_+#V+ISF|2#m60I0kY|Et@);((pADTfu?#H=!C_2(VdJ!=V!kHul#hah*4VcoNqXvMH%tJgTJh;EVi z0hDR^!Z9HVJ<*Q0JvT&r#J7llmO6IRxlGu zQ7x8$JB|vsg^<#sifC}+*U502Ky+HJ`pX{DqPl&jQT2;M#VAqypseG&cF|CpezI-* z6|$05<;XbTR{a1Vwx^Kd@AxS6MG!5qvf<%Cq}f`Q`2UB-)7F;_ddPX%Kh8Mwxqe^u zG%{p7H@3u#hF#hdr=92?LV54eq|)7|weM6#7g24s+kfM0_SH761>pa_U7tX12XIuDVa#8$bU{!`tuyIvCtf z8E7c`5M}j!wBL|(cp?$M>h`IA?{LF;xufG4|ROvp?64p$vQMVPF$`An(4Rc z0-k!cYId{7Tc*xY{lnr5l6Jf|f-6!=+d_$wGRO;w?c+r4Qh8YB3E5m(!VP%1Qrx9| z#HA<~y6%(>6TAU_iIWHWv1CAS%nSsW-Gy#!1R3dubt19&@bn7O1zMK)|9n}LAhz#G zY)fS&8yXLWvPM=g>dWMHi_D|0_y*GJ%ac`ZrHV^sB@>+1f%?BKa~<;LvT-ZB^Olj3Frr5Akr{8=B<0-whn_)nGWLNp78aM+e{dRTk1u;jb|~}=gE=94V$iFK zajo`*>eYzxQ~+NkoA8)GZDo;`aYam_$pwCp7sWBHlQG5v1tz9Hz4Wb-KlO6oHu8i( z@Uq8WH7onjfKW#ePy05jv@?1`ui{kinl7!-K1(^a;Hpiti?4g*kbn4lo%{r7k1zX| z0gH|xp7#G*rQOh5%&Fcr6(^&eTY%1Yt{!>mx1LGvl^X|oBF=)oW@T%+0p&V^;j)xf zwZ3}LiL z)iQ7Oq;%w2laBrIlowp9`)(h3#>t!i#)`!skI9I1cjE2{mY^>6){lyh2_CU6HwbRSa{xm*H@NZ^5BD)P57F2NxSgJzV+Gt0$M=+HT*4 z&tBnr+N`W~6VxE;RhzatmUH|j zC_q~@B^~rAgm!|TjmKF`>tqsO$$?vC+qFl{J$Q-pAN8xBeDAG3o6X7+X0juw-7&$C z-<#nK1|sUbh-9r}dJccz`3~GXu=hFDAGubP-~Vi4JgVJvKt<`@2n0fj}|;tYu9}er^qa+05^az zZhvaSw&$9P9S?rC@vfPNmR)RCb`Uq9Tp*~Slj53i(BB+UJ34|vzv>Be?C7h@h=iI| z5=Df59Xy=j38@(&HLOOC%%CbU`^41MdO{(e>dgqwQ9~JZpO=y!4D3FRVLk`pgYAd|Pg_;sH{@A^maLrXuLaqrAI&zY6oC_6_c5FAY>6`C|U zRz*U-Kz+xKo{X?K%Lvv*r9t}B99A>xf}sp3RV3trR!x~)rYO(JK3SvWrJg0N&_QC( zEOY*6o9)+F;F2N##0{>6!3AGXhmZ;UeM*&ddA^digheJpm(JkP!!4(+&4w{LuYb&s+|-ma?6e(72e!CogyP}~XV zzqeiK3m?0J6K}Ln`~HDpl{cD|CCvZmXBW@>*oND8(cqqor}Uq==D!0Pzsb5RL!bp} zoFqx0KjZbOs|TFY(S6C^r+4cgSp2M6S?gwgf$Wc+(80v#KmB;;+gpDdd*@>hZoB5@ zZ5NuAB~0k1wEw(gU;6&-cW*1U;J-@f(hp1<7L%Q#~ZGLg(Ys9D(`F=Ii6;%6QZozAF0 z|I0>lVGH{Wy>Hk>|_Bf#Mx4EwCd$wF&^}#ijW@UebK^72guU~ohV;O74 zk6X7s|FW9Fcish}(j&wy^PLeiYnJG3LzPf71}Fb z|9Jct`L9;2y7ri5!7@*8&>mmb1_t?gn;0Y*Lc(A@_x7^o-@W;SW5tW_54xvok8+e- zVfeSN2S5I=p(mCtDgOJt&pcRkC>V|}`v{%M6df%3DHSalRhywip0q+j(T**BBT@U$ z4fXD+BpLl(sjlrD%^ec=PB$GolCCSp5I|Blw3RAb?S|Z&dyUF?^0u;j9-VxZ^63?4 zGxeYZjvFbLjt8@S@2-AwWBHl0=fC&OE&KmqR<=SwYyYBd-p1lK_8bMAKxfQ#v@p#{ zv}?enb2Okc{$UNXvIIvXI``r~B~#i{R)}Va{{-zqlc^53i{l@1L6dYm?IJVeCs-|- zVPS5z%blB3l$+s zL1+AiwOQF8VTM>6#&7h4|3AnK=L0t-i)NVRvbzfGG$9sd=h5_6RFIWzFK`t)OPnRH zlH7dv?mHXy)#R{)W@x7%`cl~g&-_?cAkEgY#Q*2y-!b`$%BAkJdu`tGTBocd%*-&K zn&qALbjjXZFC2UMaT^ZmnZ16HS=kPnA#rwU1VZZ1{P?szIms9Qedi z)vWA~Fhi_yzk6WQrL#_Xs(kI5(K*+w8MGWMr!&LL07R)p%k-G@5o(zvuU%_YkG&*%Gd9f164q>@{jLo-%!V3h(}@`L$L|%HmHiQFlTEb6 z@3C3s>89!ZCto|{yYj2Dj(GU^UQe9?p5n_OGfuj#0TPKdV28JR@TLJe(z~V$E8`Kr z9R!Nv%kDzYGDQ*C;_qrQ2@Dx!Dq4`{M05?BkuVNZ*`E@t7V>$u^JvCYvR|O^vX-p z8g9!u0K3qEr5Oe-lMW;}IPvTaE>c!p31%bn*c$STfpl@w=Z=M>uAMfQBQ;@5#ND+KRFU+9GT8MtvX-{a@>yMVs}YiZhoFad}av0Hj+^h@cRO41|Gzv-)zzndr00A zc|?{cWKYQwZoo@{vl1Xp3-oV@CLKrYI*yl(pO-llP9*4T>`$gt(}T7#_Ug5q@=*WL{mUYKkI zOh3Oino=)k?5Gs;O0r!gSy`^!qU@5KqO5}ABD>33T$G<@cjo8k=i0>!-FPYIPix}) znaB`w6=`4k&p)4&Qh-|IBU_1&L0fc{#rCWmM^RyMZc%PdR(8IV1z{d&B24xpdjbs-js+QFxe%|AUE~lbdjbuXgat_+WFpBufd&gOHvj)C(8wg_ zje*81QW(d`oI{ry7E-M|c~$1T$j8E8B*bGA>E+-#sT^U3b#sYrB2myiXR@ z%RCxCE6U91Ps0RdC5P`(pb1pbTUHK~xt{frr%V)2bV=_pFFbO~0h=X4u7pZggoG$5#d%^U;u! z84fTN8$z}LQ;P*UbA*V&3~#=*0k+#yV8ddbcRtzx)zc|Z^`bh{t%04uE76G?Ty^pS zn%-BQL-VnffCNi`DIvi!`iV2mQo8n7q2Mjc$+C^#A*!Mq@4(RmJbij~C(*fIc(D4^K#?XP@i|KIEVWcD}72OHY5)}Z% oeS@KN>`jM@4tR(XIy%xZmJV2$n+{lRDIMeJFjDd88H2C;e*j6}j{pDw literal 60527 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¨epPowod7~VzX)&)uS-orT#HX%}QWa@`(BPEKy2&0A#4S00hT!(_^HR4%XS?`E}QolLvQlmU7DE|@%; zD({s5TtUuNJ9nLkNvkhqI-9F78Kk-fm}bh+&IyuyOK zT(8sN@Otv>`FT$Ie^Tv7%&ldiU?8Mg@yHSVWWRQ>Vo#9Qcgr*-c~F*c0~VtBDUgN* ziJvA*JCB{Ip+h!)Or{Vxar~aXTmBMzB|TEqVqQ9oqec1oxrO<}%fdWYwym%rC*R|- zyBx&k!W^&N<`Nvmk4*p4IogGo)+$F^{!(^Ej{3B@kl$^PQD>1W-;r(e+VhGE-G$lC z+=5(NPNCE3@f5h+j)H9QOa{GMQmb0U%O<}>@$72AOjZIOKff%~s$9-&FBkJXIc`sO zw%cBmLB2b?(4Ona&U0oLx)fNM3VQr1s9MYEp-g(- z?3ZdR52TSMt2P{=I1Zz4!~YS;sNu6^4_eX&4bOJx(sp1$9@)$ySDwRJR6t&+(BaK> z<>onPw_f~Eor9j*^JyAR&$~u^F|~F9{b81Nuw%JKUf(0rlw_qW;RZ*^>yuL;Wx=H~ zt(R#$oY{{G*t0(^D^vD&`pb$tWt!59U)ReW5{Spf2EwG5RK_;Q4w8epsj^(DkeRe@ z6qCEo1D1p2(O-YKAdg18e{uD@Az#(a8y7n~D?qqSq*HEW0B1X)#KbNkbMQ7jo)bvN+ zbKNWf{*ctavT?)F@gIpt;EE$(c)Ap7%JSb*ejVw<|nvdRg(AJ@=CtvM< z?*EqLj~#AGXiBIXm+Xo$F!?-SF*ykT|11Hyg4rqF^wgt+wEd2NhtN5c&cSpJqH`FX z`_aiXJwtgM7R4%4DOXnQS||B$QkRT3Ab_=I7Rp0@owBSur7d@`iyF4u`q%;TNx##kig+{}Oi{sTd1=;m{b zfnq>ylMhO2P4r^(jRDonc)!OX=#W@#Fj$t|P8#G46b76X|k`I9foI!(R} zWL_wk%qW}2q+Se`Tra^fS)hz%@^)DXrm4k1MQKd`i-8K9CRfX;FzJ*{UMQEww5<%R z+go0R(P8q&9LdQSB>5))mp7PvTwZ{2F_MS_<7PN-y@brjDY%6tK!b`IB7g>^GGqYRr3}`SPg~1w-et+fOpI~bAmdb_#(6L#G2{UaDP+h6 zvZ@$DfW{>OaTd_!B|w91?KC$(vT+dSGSoFP(lapDGd9_*6Cxr%*{o#aWSin|lb@F? z7hs4=I^_6yt^W+;>Qe8Ms)>^g6Z9sZDfJPRIKA?B@_tT_WhHUTLw@dl21;L(KhTAN!Nhg)#~Sm^4{L*10EKqW$^ZZW delta 476 zcmX@!#EVG6arW8U>!;w%>c=g52irn_JFJc4I6O({Exx0sn!(F=X>O z#y~Nkw#f%2wI+K@*f6n%PW~w2H2JiI3KLrxkeSAm69$xYn>=4qfk`tQ$V_9JA3k}a zRM_NtDFLRtAZ8jq?3i%P*dz2#My zbjrX?X$6tV$K?f>`e9rZruh(Nvw{lK`6{3yt;rj*StegsuwYVZoGhrA#-!W?)+$iM zvU$Ja97ZPHkj=5mOPTo_U;h8k%)khS=NSYx3#xOoOpb7n+uWm_#5ehcuH5D%D=y~A zEA%ur*_nxR8R!}r>Y1ABnV4^O2o;f^EL>tc*{yWzzoEOQlUdm@7N^f~4T&2W372cS78FZ=bm9-m}1`;L~N^|C?>f%h-7s7!(dOFdRO@ Rz+mD!*`UFE^Vhl{763>jtc3so diff --git a/Source/TurnBasedTutorial/MyMainMenu.cpp b/Source/TurnBasedTutorial/MyMainMenu.cpp new file mode 100644 index 0000000..898b1f8 --- /dev/null +++ b/Source/TurnBasedTutorial/MyMainMenu.cpp @@ -0,0 +1,29 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "MyMainMenu.h" + +#include "Components/Button.h" +#include "Kismet/GameplayStatics.h" + +void UMyMainMenu::NativeConstruct() +{ + Super::NativeConstruct(); + + HostOnlineGameButton->OnClicked.AddDynamic(this, &ThisClass::UMyMainMenu::OnHostOnlineGameButtonClicked); +} + +void UMyMainMenu::OnHostOnlineGameButtonClicked() +{ + GetMyGameSubsystem()->CreateSession(2, true); + UGameplayStatics::OpenLevel(GetWorld(), FName(TEXT("BattleFieldMap"))); + this->RemoveFromParent(); +} + +UMyGameInstanceSubsystem* UMyMainMenu::GetMyGameSubsystem() const +{ + const UGameInstance* GameInstance = UGameplayStatics::GetGameInstance(GetWorld()); + UMyGameInstanceSubsystem* GameInstanceSubsystem = GameInstance->GetSubsystem(); + return GameInstanceSubsystem; +} + diff --git a/Source/TurnBasedTutorial/MyMainMenu.h b/Source/TurnBasedTutorial/MyMainMenu.h new file mode 100644 index 0000000..aa65ef3 --- /dev/null +++ b/Source/TurnBasedTutorial/MyMainMenu.h @@ -0,0 +1,31 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "Blueprint/UserWidget.h" +#include "MyGameInstanceSubsystem.h" + +#include "MyMainMenu.generated.h" + +/** + * + */ +UCLASS() +class TURNBASEDTUTORIAL_API UMyMainMenu : public UUserWidget +{ + GENERATED_BODY() + +public: + UPROPERTY(meta = (BindWidget)) + class UButton* HostOnlineGameButton; + + virtual void NativeConstruct() override; + +protected: + UFUNCTION() + void OnHostOnlineGameButtonClicked(); + +private: + UMyGameInstanceSubsystem* GetMyGameSubsystem() const; +}; diff --git a/Source/TurnBasedTutorial/MySessionListWidget.cpp b/Source/TurnBasedTutorial/MySessionListWidget.cpp new file mode 100644 index 0000000..6b5e3e3 --- /dev/null +++ b/Source/TurnBasedTutorial/MySessionListWidget.cpp @@ -0,0 +1,32 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "MySessionListWidget.h" + +#include "MyGameInstanceSubsystem.h" +#include "Kismet/GameplayStatics.h" + +void UMySessionListWidget::NativeConstruct() +{ + Super::NativeConstruct(); + + const auto MyGameInstanceSubsystem = GetMyGameSubsystem(); + MyGameInstanceSubsystem->OnFindSessionsCompleteEvent.AddUObject(this, &ThisClass::FillSessionListFromDelegate); + + + // Initiate search + MyGameInstanceSubsystem->FindSessions(10, true); +} + +void UMySessionListWidget::FillSessionListFromDelegate(const TArray& SessionResults, + bool bSuccessful) +{ + UE_LOG(LogTemp, Warning, TEXT("FIND SESSION DELEGATED %d %d"), bSuccessful, SessionResults.Num()); +} + +UMyGameInstanceSubsystem* UMySessionListWidget::GetMyGameSubsystem() const +{ + const UGameInstance* GameInstance = UGameplayStatics::GetGameInstance(GetWorld()); + UMyGameInstanceSubsystem* GameInstanceSubsystem = GameInstance->GetSubsystem(); + return GameInstanceSubsystem; +} diff --git a/Source/TurnBasedTutorial/MySessionListWidget.h b/Source/TurnBasedTutorial/MySessionListWidget.h new file mode 100644 index 0000000..7a0f57d --- /dev/null +++ b/Source/TurnBasedTutorial/MySessionListWidget.h @@ -0,0 +1,35 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "MyGameInstanceSubsystem.h" + +#include "Blueprint/UserWidget.h" +#include "MySessionListWidget.generated.h" + +/** + * + */ +UCLASS() +class TURNBASEDTUTORIAL_API UMySessionListWidget : public UUserWidget +{ + GENERATED_BODY() + +protected: + virtual void NativeConstruct() override; + + UPROPERTY(meta = (BindWidget)) + class UButton* ConnectToSelectedSessionButton; + + UPROPERTY(meta = (BindWidget)) + class UButton* GoBackToMainMenuButton; + + UPROPERTY(meta = (BindWidget)) + class UListView* AvailableSessionsList; + + void FillSessionListFromDelegate(const TArray& SessionResults, bool bSuccessful); + +private: + UMyGameInstanceSubsystem* GetMyGameSubsystem() const; +};