From f767bf8340d462d3f95926d4c52b896160c097aa Mon Sep 17 00:00:00 2001 From: eukara Date: Fri, 10 Nov 2017 16:50:18 -0600 Subject: [PATCH] A couple more video options before I get overrun by Phoronix readers! Aaa! --- Source/Menu/MenuConfiguration.c | 4 +++ Source/Menu/Objects.c | 46 +++++++++++++++++++++++++++++++- freecs/menu.dat | Bin 35886 -> 36750 bytes 3 files changed, 49 insertions(+), 1 deletion(-) diff --git a/Source/Menu/MenuConfiguration.c b/Source/Menu/MenuConfiguration.c index 9f0a8e18..f4f67d55 100755 --- a/Source/Menu/MenuConfiguration.c +++ b/Source/Menu/MenuConfiguration.c @@ -166,6 +166,10 @@ void Menu_Configuration_Video( void ) { Menu_ResetClipArea(); + Object_CvarToggle( '400 165', "Fullscreen", "vid_fullscreen_standalone" ); + Object_CvarToggle( '400 185', "Triple Buffering", "vid_triplebuffer" ); + Object_CvarToggle( '400 205', "Virtual Synchronisation", "vid_vsync" ); + Object_Button( '32 148', BTN_OK, Video_Apply, fButtonAlpha[0] ); Object_Button( '32 180', BTN_CANCEL, Menu_Configuration_ButtonCancel, fButtonAlpha[1] ); } diff --git a/Source/Menu/Objects.c b/Source/Menu/Objects.c index 3c0c96c7..ca62f693 100644 --- a/Source/Menu/Objects.c +++ b/Source/Menu/Objects.c @@ -213,6 +213,15 @@ void Object_Scrollbar( vector vPosition, int iHeight, __inout int iProgress ) { drawfill( [vPosition_x, vPosition_y + iProgress], [ 16, 16 ], autocvar_menu_fgcolor, 1.0f ); } +/* +================= +Object_ScrollbarH + +A scrollbar, for different types of purposes. +This is the horizontal version. +Note: Only have one at a time. +================= +*/ void Object_ScrollbarH( vector vPosition, int iWidth, __inout int iProgress ) { Object_Frame( vPosition, [ iWidth + 16, 16 ] ); @@ -239,5 +248,40 @@ void Object_ScrollbarH( vector vPosition, int iWidth, __inout int iProgress ) { iProgress = iWidth; } - drawfill( [vPosition_x + iProgress, vPosition_y ], [ 16, 16 ], autocvar_menu_fgcolor, 1.0f ); + drawfill( [ vPosition_x + iProgress, vPosition_y ], [ 16, 16 ], autocvar_menu_fgcolor, 1.0f ); +} + +/* +================= +Object_CvarToggle + +A nice way of toggling cvars. +================= +*/ +void Object_CvarToggle( vector vPosition, string sLabel, string sCvar ) { + float fAlpha = 0.8f; + int iWidth = stringwidth( sLabel, FALSE ); + vPosition += vMenuOffset; + + if ( Menu_InputCheckMouse( vPosition, [ iWidth, 8 ] ) == TRUE ) { + fAlpha = 1.0f; + if ( fMouseClick == TRUE ) { + if ( cvar( sCvar ) == 0 ) { + cvar_set( sCvar, "1" ); + } else { + cvar_set( sCvar, "0" ); + } + fMouseClick = FALSE; + } + } + + drawfill( vPosition + '-2 -2', [ iWidth + 36, 12 ], '0 0 0', 0.8f ); + + if ( cvar( sCvar ) == 0 ) { + drawstring( vPosition, sprintf( "[ ] %s", sLabel ), '8 8', autocvar_menu_fgcolor, fAlpha, 0 ); + } else { + drawstring( vPosition, sprintf( "[X] %s", sLabel ), '8 8', autocvar_menu_fgcolor, fAlpha, 0 ); + } + + } \ No newline at end of file diff --git a/freecs/menu.dat b/freecs/menu.dat index 62f8ee1055c1367549a9555e70aede725beae476..f37ce47afae487904ba857964b97f17dc85e6855 100755 GIT binary patch literal 36750 zcmeHwdwi6|_4j$6=(43!wO*)-CfroK03isdAcR~bl8}%D@V?z_c9WIOZrI%fklIE8 zi+5Tp3Zh~`0YOkyR0-NRp0M9Gtcg`lcB}8eLtV~kKco{ zXU>`LoS8W@bLNuW$38?fltl$MSt9eKg1qrfjOMEfE!Xeal7BNH&AgCO1zDO{Y54wg=3XD{a#_CB&ni&T18c@MC%)xYwD*pNqlBaWmUbz%4by8s2D2T+*n_$ z0G0LAR1;CHim6S_<&CPS%Bt#e6sth>Q}fDtX|JoVtWvP@%9#ba>l-U|(<-ZKtD03g zHPf1_8mCpMQfeA2DyEdHcy0MKDWzgYQ*(V?&AAHRG_|Hd#8qc&v!RG-RTU~vV^uY} zW{Lo+Yiglcsc5V!*Tq#xG-os}t+BqoPF1+Jrpd=ORh2hZC|ylejWeqn73i$`8db6C znrW&tl}=V8r7<8^fKtM&%FUVbiEQ2+$B~+8)v8lwG*o(3F0ZUq<%{;pnkIjX5pSxm zRkmScS50eXg8mfr%$lZ}=2`Ws!VQg8Gi$158s{+B$dph64Aairz@WAOBg9t z6-^_pQ=BjFWM;R7!jbIoL?%lW;bbzEE$M^{iI&(911TLv zL0zmQGdw%b$YLZ8qHu}8KvfQyfYCkncNkNMbq(Qn?SQ7Y!MmFjHk0*;Y3N(d>A{OO2#wN zYyoy>Af#?Iq9aP;DMEGSO+1~HtYm1cFHMckZ;2;c;h0gIcqcbktXS6t=gmDDO~Zz; zdJ^4)j_FH7hmSfXgU`~D_-q|9v=#BP3|&~J5+bRN5Y~ZgDw0Yh!yQpxFHWA`6`qYg zYXjdJPg4x-j%28lo5UE3$Y-*vqrIymoXo)I&r@Y{w3D*&j%Xs@5ziuLxJ||C8bUG- zLF>vJ2t;|^CW*2iM^34*LNw8oXt-5clke|#h(h7k?r<^^ZS{>5Po5HkWO}7^wZ>DX z5H`ZNvq-b)RHBy(bbUA*WrOs}At~ups-ss*S0=kRY5d||iegxQqiItK7l~%|s!&@h z-Ah9}8O<`j7kD;CO)8x3WwJy#X_l8rg?qs|cyO6OG`qF8HEecZS+6Q(!ri^<&oW#2 zna*g$+AhrCXs?ciup`yl+X#?*PD zUN)L!IYrZH>`_wKm`J1(Q#(s7igaWYjVO{#r8~k2?%eJKy9!Lg)co*V6$vM?$;nU} z{sO}yk&1*9k&af1bcfUO5z0if)T$K4vZ)Nk!Yvu<=2(Y?y6`VVi|bST3d#I@8fe7_ACnj772S(_ALih5QkWq}HwuOxtug5=DCzjm0Rc z>yk*J{gG%qK}oSnmNF^DB8gN6EoqBljK{Du*k zxznQ{;uJVr>AFs6h$myPtD;gI`*_nsgo5Rf^hL2G^kl>J#yes5*YZMW<2liRn zbWHMjez#>lye8TS_rZx-0Oz8`67A~5v{0V16;}z$S%ScIC9v2qDDK7Eu;`||UQ>*o zx)`aPlni&r+t`IG7K0j290O9Z;=N^6R6I8ETwTS$av`2lUFm2@FJZZa+`NmVBc)?h zWwY}!*)fCEz>CT z@sM^s9PLVKh9@^%VF=rEcs)+y(dzXG)(JUv$%@Dalyo+P=?|a7OJoQxO0zubd7(~V z$@Y3Ff3CnfK(aVuB(&j_#AxvXyoq2&mI7H1F;dYT++8quE()pi3M#>}>4An-{o#niV&9f?29iLYjO<?*A%yi(SVXE+uS=W-H+Q%Gvn|s*z1zD3Xj-GUYo$t#Q7C#5xmd#~}bj-8Uej z2fsHY)P-Vba#uEsg+X)GX&jS0rZ(Jy^+Bfy6Ka&Z04-|579){p!7kktOz|WYm_*HT ziK%MOcOWV@9rqq8R^h+sfEDa=RZm>@i4_X-s5IP#L{MK#`b;?vSrW?S0BlKUkQ)P= zE|jbe!o71TxbMax1Tfz>^iHV8unN^=qaD4HdI>@m=zBPKb?gsS@|urs25DhWsG=C2 z3HG$Dq0IbDs4bCd3FEBp@!C(<)YakgmT%9R8)sBeb$M-571dOQrdFL(SwCx#qoA`DuG^M_&xuU#cirnQ@)X$jKtP`56kXki; zMtLp8n%L1&47)mtmBZ8VUa1|kp68I9{UD~;WQsN5cm)4LF*RwrrQe!(wd!VT*T=BC z#%8_?mogYvp$?uku{K$Of#6BgfYmxC^I>Xqeg$t@a$I>+MNLhft>k$ZlT4URFl0=P zqVhy%d-%MO7ZmcP20zN+%M5`88JYd4N#6X0q!ZD zn|M=F*a+h;se?B_XlrdalWpdhz$sG~?yTh{ERINp7`__!v7x%EX*19T5aJlkip2tT z_#=m(4bKA$gT`ec>TblI9gd>AN#UC6I6WqAraQt2RN{UF|J#F)=yCx$-I*g`^|gl}uIt%V$P;r1%tdB^htP-)Y!!Q+$?OS7zAV zz}Lo;+O1*!@hz(%%3rJc6MXa5FBU(=A0h2uBwjTSUaB>Py?Qc}!0Zf-9Z7L?k1}!` zPFlsVUP3wEka>IFst01{P7dVUD)?GRpi2 zm3MX~=HmtxS3aRi<^2mXV9dkOC?gkCxs2 zqIDW(6Vr0FDd1=W-?A{3RRN#+u~jC2u$M zC11s07UX(WNxTlvae~Vsyw%FkJE2i+nk-qQl?8oqN?~7&DP+eMvg7hK zhWGHQ%TcvTg?K*32ta?FFLak11a={ULqqY|yMFlV5^VvN>3yJObg$$rra{EtRGCd7x*zdkw6hW= z#3?LvfqZjj9WA2qv<{l%6vHRcO^~lezBx3Is=%+tC#R1>=m+`5B4zuvK+i7M<5_<- z@SZ$Q%~Ar}_e9iWHqAi#arlnTT4>mXm?Pz7!Hq+hKp%Y06_3-`rGCZqpwz#Z9wII` zK~Z{uwn{tJ3oaq;ErFifIHU0#M%U8ADB)1h?X=rH199#z?w3P=J&dlSZIXT+?J&|0 zM0yFG={BG}OzS{{G{qfE)6wr|x@RFJ0Dh`F-Q{xXpqI;OKnebG0=k@Ol71a>7p6lk zY%>m@O!37f-_wVh+$9Jl2oFQfbUSFV=7ZFX`s~2?X>w;GB>;Ywy94PnUGDc{nkD^} zK#w%J&0Lf`CA0)~A?gFV6P77M&-kCdbdFmJyLfi$OXs@7G|%I?81vzKpc80+$;Rm$ zbvhRkM@_jUjJqC`(;qL$Ka_5T+?x-a{v%(0&d2G+kbg($dG2=wKNO#=?;IJ6Tt9B7 zzkWQ!icvb(kH_z7&AwxDZNKRs`QT5^-y}wb*~ltc`ko-Yyw6MKU{v9 z#(foh0R7I$0LBv|4+lR`rz?96ge2eI{@@ntbgo%3I8Hwt`OSQ)T;(_VBmMG%e3wI# zZ=W}QPQ+aIKXWj?z7Ij1((oWmGq5m^r#)y3mp@p~uU6#T4T*Z#eqKKAPtK?Ex6%*~ z1lpG_aEJKXTSiYws%LlD%7v*J&(Yl|cM!_-{MxtaS!%&NWgalpZ!$d( zItS8cLD^26zb{4?=i~9m^ZO8r$65ulxvl6LM-n?(P9 z^mAz5k+@JXSAW&JfNIfO=4Z+Vw$^v%~ z)}wjY6U>7iPyQ;n1vz{-UFHs_MX2|1J+2lN)c+!Sg}w#L_QB^8guCG_2LazjJ?=uR zQ^k_X_1SIYdj$Gk*Yjt$`$Oc}?JmN+StRp8&5uQxAB$u@2jQi9kiGys(L$H~(P}iQ zFTDIv$QZXj_->>z@8Q@EYMtO&rtpI`p8dr9z2MhEJ`gyrPZ4nJ#}=YwZ@pOq?lN6p zHr5>2iPKfP*-XGd}b^i$Y}_b!j?aS>fY z@1Vsc^n2~MJ-@M3)&alYxC)+O0&2hy=X>`HCH*ft{ia;{-)WMh-z4b+ zb^7vL`X_Xrq%SW>Uy)1yjLwks6$R-x=h7YLd`Z7q(%;wmSLV|9b0$jqN~C*F-d+O> z+V9DEpYbKfLvw$hDxaeb`>! z!~XEQ7|$0`0~I@`Al;$wfj7zi|6UQ-=nePjpPo%sL0!vvs z(iw*^fj*XVoVV|a)2UQ~_VGFMNT=|eIbbjHqanYDB2pt;Jr3AQJ=A!1=D5 zKWFlOb1?EPrK1bvSy*EnLjL?YUE0m|8Tend&rz_?QC9m5(snq?u+K3*J9zzOvj_Y2 zrF4vL*Y#*M_lMW6f9P|yY8RmLnDf`1Q~C$ zvD4h;4s*QyJo~{D9S7q?*_-*3gr7_&qdnd;fl4LHe)m??w+}6c-(C*A%eCKLVObAH zIDWs)_3`^_9-rT)Tilhf0N0oI33F(rdkgflfAr3M>io*1mgR3r`Ir0h@%}4FEA;-; ztB<)ae@V~(g);w(F&lXQ)`6Dqam$UE(|-yF1)=ePHG^6LU<6UYG=3beBTnM8c5lm%OG2Zb$TG(1b#I>dAxH!@k&*U zamMwUO~ax0CgA!)!tGuLz02Gz@Z%6X|58TxNE3=_s?PT&o#~u~dN<_wTBjcTj2u7R zX$F71@WohVc;B6%XK1EVi}Jm7XNXSE`_XeOe)MiSKQ}LU{_(nfA?oYk-|=YE0%`U6 zu-p001&|loIfQzguj}(T|6aYn$oy}|{9mKze_?x9 zVqM~Pc;n&U&41Q2+u`$pspse~q-TP76`oIDv|j72e&mbS%dTe*?C$qRLnz_gCjI)K zjcfK}DJPA2melj?HR^KaiyuoG^YLQm636Qg_JiMaE`=Z5OqV%}Az$LGLVf0A_fqKR zlFmGcI0P>uKkOdwm)LG?bol->G}QoQm0PR z)qee2ou1#XU+1w}zolej1*Oxg{C7t){-g7bC1*@~aTtK(L?uWu#diz==;QmlO zcLK+9?icna`Fvfp0{PhAuGae&_P5@>rp}IX2h%-J*oQX2ziq($+~95jUrZa_`-Bdp z`$74>af@5%-wuWnzkg$Y_iftjZYuC^o7~M>kAL5y{M+sDZ|Z#4pKiw(&+o(I^nGU& z^0D8u<@ftNuK(q}a!*G+f~dc`ck|k_tDrsXuXw%|Q}2Dx7MK0r2Kc=#ut%XCE+(!O z+qH|9Yx~{-`+D>4U-`i;m{F|vPUm0iy;bX7`vvu``d)t;d(jead@--~ zEtk-G=iYtt>t1{A`Zwj?jB?|2rmXio9yfe}c1^&Ejh`>l9~-Uu@9E|Lz54%W{jqnw z|8M(a@8$k?`ope&4(6GEoy+_2iH84G`<60zB!0?ho>1>2pRdqA-%WSt_M_^2Jelr; z<0`|=DnD`h2Hg+7m>$r6bgbV0&LuwMbNW`KUxby;!C!dH@_FBWH_{pRpy+Whj}`xr z=2vK*_3*s7S@RETex>HOY5o??|3LG%YJR)sZ`1q^&94$ZOJmR;b?>)X*6Eqf58(s7 z`yT(kz8>}P_VxGZcKg?-X_BtiCojK$eQJ_)wLaae^ZVDQ3nX2wPg``leSPxIEBSrN zCc)39{Jvxp+UNO0-iKW5JnH!Q$DCaS{BGyT0{$uI*@At`1MpMxX|u6!*|e8^%T{>V zt+H=<2>DjiL+)nypZvb%Ze8Cs&I9g4vTxz>5I~-j5VF9JLom;0=qh<8$X^e6T)ah( zLVq9Hfpv3-+=KJq54jvZ&+~e@!+pNsJizO-f4wXMKZka@&!K$ocRtVaddzw+r{|oV zdL8BSc#wXm*Rvh^{P9Kh@y|Oe@qGo>=k-JHbt?b&njOG->#`-EqyEnGsP?CY`A}7P z^7DI=;TQNc$oDU6(L%L9d0Ey6bsm&NeB|>N-oqBt&-M89&yRCt{HpuIU+8rI{7~m& zH9ua_>Hhhl?iYD}c=q9O`>OLxjKf#x4d*S)%OC4;^BVoe3CsTb$LKfUorlq1yw85u zdC!@TZ=u|UF_6DU__6bjb$`7Lm~Apnx63%)p8I|ZTj(PC3G{Bqo^Bh)xzpU! z_sOrkjyimi=W{%M{E_HN-V^w>d}d&VSumd(m=PAtKMl+{3+598bA|=;4+B%BF}VSR z`hRR->MVNxZeW@%n7uwXtkF!MCV-#;H1m~UD1{MEoLv0&ae zFxO~|--drNFv~1@-ZL<_STKJ!FyFUe{$ya*S}^Y#n2i?99}UdC7R(xq+$Cn0!wV{mj73)ENIb{HcM7Sju|Iz_eK~FB+KHma<+j zFmp7> zSTK(nm_J%DI}Oa=EcJQBz!c$+L+r==cK)G(`HIH)>%7Cj9H}w>F}B^n46dA zFxw2wc#ZMTorev~B#WMh3{0)Y_}lfMfoZg0wi=l8HO6nl2MkQyQlI+`OxA+A&%i9y z7=PREH89I8dhRhWH(M~94a_PFW|M*0Xu;fVU>>$$HX4{GG{)bq4F={#jq%%gy@C0q z1+&h;ykjZrP6P8d3+4_3!xP6m7pyTb2WpJJUHHAdYKE6Wrcm^qfRjxjLv zG{$e|qYX@tMb7{OvqWRm&6KLoQ3htIMbD82=4Oi?v)|WhjK43wYUtT)Da+Ke!=lH; zJhl&*J(jZG#G%@+>m>{3R|e*7OIdFim=83@-|xRPF#psTe_yg+Gga|hG{(PQ-DuQjr=>m{ z49rUw%v}cN9Sdf?f%!mV{5CXe?%1JqxDFzEFcS^TX_m4k7?^5}@!N2`foZhpInBU?G{!&QPc<+d7R)#Uv%rEG zYhV^?jDH-CF)&wajDI|zVqjKkjDL)dHZYqs#&4gK4a_4N<8S*(2IeV^@sFPq4b0Cp z#=q|P>&EdnHO4>2Ow5NC%rK*@ApY2Et{2A}n0^+_aR%nA7R<2*roYDc>paxJ9AeQk z#K0VF!3;Jq!z`FV24<|KJ_8NRBnzg*z%*ORDmE}73+5ODbCCrzz`)Gc82|V=%D^nL zV2&^_OD$!6&A{AZ!SpvU8#Kn>r-vJuZI=2RW?-JQU=B4fFIzB&7?|H`jDMb*^Wt-j z@z?pQhMt4*WkYk%f3Sh+uQC3z4l*zUHO8!ipD(rO@uzdV+=4mKD67GO`HF%0x&_nE zz;tSi-#!Nzn8h07ABSHuFe@y2Tm!SlQXj{_Y_?#?z-+f*KF1$o{dRmxWBhBuX9ng4 zi=Iyn%-a^sKMl->7R)CGrU)-WF!vJwFfa#cjDL*1YhVUyjK9DBU|@z?^!(nylv?z> zV_?qE7{3kI8kky3S$7(kSsLT-pF0dpi$%{G12e~>XSIRpv0%P$V6M>^zYT9UFv~6V zS!H0>SoGXxV76HF+-hJRwdlFUz`SJ9v(mu))}rTT1M{)Q_~){}UpW3H{J6{9C#*2^ z46tC98<-O{#;^Y-12a)${A27!12fZtS!Q55EM?tbU@p-Zf4_gvz+7w5bG?DN&7$YK z24;)K_~-I>49rs&%u)mMD@%Q@GcfO2>T`{O!I%7d_30G`rmx2M`)i4TIozV>QUfzc zWBhhzJB)|G>*te!;qPGaICLCkCHzSqZ;;BLx5isA*yhSxpgg-)YYg+AjK53ff0{MM zFFP6xzw61H2Vr1N^aBu|Xz=Y8%p_pWgdUzR{A7Tc2MQ4tY2{}l-UNYnR#;-eM1b)> z%QeO?YXfr*^msPhs4>jLhSL1o{TUG7Zqc*O!0fhQ?gr)pl;zp{;&d!46c>kSOE zCT8P4U^edqX3IWco;NUIOPyaZFwB~D{^>qo-Ufz$XRoIT%|=-Z4f_m1y8l^d!SHuP z{m*R{%<;hRZ*e{Kk61AL-BJI;O)%?o3NXtNys_$G)Hqa)zS_|93rksd8kqMj82)V% z|IW|5^Z4@Nz3aojPg;ZUuj+G@XJFm9<1Bgx7#OczetQ(}17^@ZV217k=JDMbQ;?AB#gzpC#wZ!12FiSggi|e!|LIGMD`LG{vCifHj)~na;VRrat7bSIk_zV z^NW4JytWURQK$%i@7t@-w=DH3L*fo#yefG0fe7tVwL05VpeyNN{B=HWA246v2h3sv zb0g}!${Uorz%2%5H87tT7hgXB<}ozFGt(xG;ktV=um1b>44?;)PCZA{HlfGRQ=o27 zF`bTce}GDe*DV*{M}L{+cze^^LI-Pp2)!fxP|Y8!>2aDKujw#NPtf#4O;6JFWKD-_ zIzrQtnwHX^rJPapvCuNY%h*t#(R7f|Q)qzDF?6iZu{04hi1){Ey#shZ$S7=%g8245 z^FjQ6RnhU9PSErWO($wPNz-zn0lY_rzc-8bY0`z55J9Tc@+#u*!3L>X^Jfx&pB3+O z)O-!`cUOaSmheHEs%fpJb(&7ov|ea{8i>EU7NF_G-%ktReJT7Mv>-L<^k(Akk_GVI zOa3lc5bw58?VUyZU914!kHO!!3eq`RelGEMqJnrwjcWh-nqHvOFC_lnP=G?j-`5Gy z*NMNA6QD5h_ih5zLj2vD07Zzu{}7;7;=i*6@ZL=R+f@MX_vF7l1@N9wzW)wTJMrCg z0Ke$s`{w|DIl*_#0h&#GkBs-Q5#JRD@J0*14-VjcOMK@Wzd|() zlz6Z0V)va9T)EpVbh0~NDBi~^^fH}qq0k_H5yEQ|7LcdGT3B8_P7y3Q=qtIpaH=#FDA8g*;o|~w@(B*WT&=oXR=*@Jd(3Lbx=q=PH z^j4Y+TGVqJEdmYpe4lO*x|(j6^fh#k&^u_G$nT^df%fTHOHT>Ej$V}X_4GPZ{K`hz zXM?62HN9KYO+o|sT@LT%1NeOe@7Du(uPpCj9Q+o8^E-Hdpwd(6{tkK_yxEZXAl~J= z6XVap+gcTFtELZX{6j*EdLE`fBVSR^cKQ@FfZu)b`JxCXjsx%l!y-D%JzQv=dyLQq zcc{=Nojy~i@6>wFaZf_Ji??x(6?&dKUg-JmnL;1exE~3{`+Md5;NYE?T+br>8ii>9 z@2})DgNqZwbmVhz3YaDIX`TKI@jkx@JAbZc5N~rl9~AS>je)v&KVqlIpQX8=Mf9BH zbMQ7vWsetx7U4aN3njhXy-M=EsO2wd`g5TH{Emvx3`ICaD7z%x?*Sjc@2vQoP=u2M z%N@$PD@0$Hq!;0|pyUg*{2MyoYsBY*BAgUd{V#KGN4_B5W4B)Nzpl&u74g}i2&V;w zTjJg)xGMw~pf`!n1w}Y1sB*5AavZ!BZ5wbd-loQOaPfOTZg&vxLF4=my)C>$zZP0V zztQ|Vn*Y7#-xV6bd%|`~zCUaJJ$ey*fc`@73Vol7aM&)w+rv~pex&K&HT^`>&op%$ zh1*YPfciLxAb$Yw*D3~e@HQ@$-dEFpnjR$7p+lTuQr@9j-d||22k*avJlJ!TGa0l` z&j6=Z=+VwBp~pB8PRFTW4k*7>YaXbJw@rOh_+qWUMALzq4iXx`dtUf_5TGFrp8HH^XdZMN$X?n8I0N%H=75F0T{8c}%l=&OPdxG{r z?&9r8&rA9U!Mij{Xc3iZI!35Nr#i0*?ldi*py?z{Z*c!8=@r7eR4p`!clxluz`PgU zp|dodDzu1dHD9l3gO*R%e6yxAw0x$f=LikrJvkqu+#p@xI7hMFFVy&u(@*%XYg|~U zOD)a-$OAZ?oB&#c6Ns|QT5Xqg+Aiz0T_QSPOzUYAT14$yK3mHZnszv6KyMK5C7CMv zQyQPvv`eT<^E7_GmR~H?p-Y^ZlJA?Ezto8ef0@QD)^wG&_Y&cQc&7;4Ie_~u@^<1y%GNEqIa_65&cY9Vi`{6}7ZqLomfkIb0{e|A* z3=(>)Gg9bn&RC(VoJyg$JJUe}cuxhNX@WTAw19W;whf+lc(07Z=a?d#Y?R$MX}fRM zcE3mL?$8~oK6Iy0ytQ2O>omV!^LJ@}gQgpW2Jvh51j-H4Cg&SMH#=8Kz3y>t5_+$5 zuh1>d)1X-IbpHD_eL&N#nm(xMLz+IU={8M&py_r^cL*(_A8P(l=Pi^|M2~5Hm-D{x zyEXr$L%7&0qNg;8IKb>nu{;9KC*?)NYK7ib)OgdW%o^?2e|JG?dLirjQ@&zu+RhDfkF>*ONAcnmJ9u= zJ6-4@Zi~=E-Hgz~+(kkUcW)5d-@Q}l*W3q%9^pPA^hoz*p+~uY5IVs9MCj4(0Ry@G zW89;K7Q4fRmbepz4s;tp1NdDlpNsMTOK`*BgEYjAgSz-VaTjP2er0^A&|&V?B0tIH z`R>xmnhw`=gwP`V?pUqEWkLh^eJ!7O|*=U+FOo3q!)yRY9X;QuON9ZdHVgkK;Wgg$SWydUbiKLY;^ zfbGu%WfnpULK{LC0>;22LM$KZ&a4DB_zP#n<5bd4s_X-OJ;LWdf{iFTT?kf6fOMmgO|ziH3kK)A4OSIk#n~mUH?O zIsRnm7$3@uASe?>go8j~xHft=$v%dJ1UR;3x>f;3HdKL9J5%hOb zpK~kzB=m-g4}?BY@iFLU2>JGtygPR|@{B+T1c(M9oPbb@Fb3gtgmQ$b2s07RMQBA( zV?d3Er0~z9uF5{$!hf9OFJZpt0N7NeFOhWBno^XDl7Llx6pO_sdSMjO$`Fz-57vWiFs(;DA4PZ-;V%dQIQL@^#vwE! zv?E-Ka3jKIgvSwHL--J(4+=X9VI)E|!np`3goOwZ5S3ez-AU1na!C2Bu3kwp6;23p6QwHo`FHd zaY1p3;06kc3ktX=#x>DsqVc__(P;F==aLv>G#Z!0J!*`SYs`*uxX@b~ije13nt z3pJh`^NC=pFKfavp_QolXQoA6661Mr1wWBgYb* z1o>?)7~i$e1wKYcBO~{9hZPSiu1IxuCz7$Y(&ML3E1NyFtZZu8v=gS3R<~3gTTyX% z=`p=srKK}VIgJ>O+}-I^duB=|9i=H#rq1t8B(sUG%#;r1>LS?=#42NP7SwblvQwhe z9$z^%(-BK1r)Ij7kxYkA(3#LR=9jdF6cvDsLqPnUa+tL)OsjsO& zTGA>S>Z@y1w6-BsnFBS47FV%AD+pC;UB@n}X%Si7qS}_4#@f)*swUy9Ld{E6LRDqW zqB@CI)>K#5Q~)R(tIX;53Y#uT6`}fys#=LQG`7?<)Hh3faZP1agTz9MDr-~>6>e#2 zs8xW@W4hRP}h3so*I(B05fshd_=Ra@1f z%BiVuscNdPQl->1Ra7hpsd#OuUP`H0)ZEfgSMyy3Z(dl_DB`N)wAoNZeN~0Z(^OTB zu2~>}>Y7?;Rw|mRLb|vLiRO&Pr8PA))Ts*B)-?OL=BiLrh0@hr)wH;(Nr8@Os8JQG zuBlg@sdTa$DUAWS0+bSFRc_9dPh|7vIF8iRSF280)L7|NIaFDx$`|dGHO>AOBi`Il zt8Bx@uBvZgg8mfr;+p1~mL(0U!i`N;i)*Tu)@0qLsmO)e2R#)GYSuQd5s1 zQR~-THD3zSmS+p9YE~8GYi>jrK}k-lU(igL!u_R~>YcH+L}Y3*(%Tj72)D($`lnA> z5$P+or)OeGOizud!?do$oX2EUGdP;+%A}I9V(RHlWQz&oqN<`f%#*FI`DkKzMXD>F zXzxu&vWXPu%e$22t>H*CJ0+RPQbnYzE0rznhQo-J+7M$Y9YaCAtRyofyVA&FB#xz( zR7!n`w(yEXTed@D9kE1vM^>UhXCrA;SLSILW10G(yE8^IUBh*uW**Z@Ryr|WObcWE zt%O#Po5HkWCo@5wk1-g5H`Yaut>A%RC17tXgU_j#@HZ(a!5)# zmFgUn(woWdOqy6VNKqV%U@UDa;UdwjK^1CGr3Yz9bj7la9|T^GQIm?K2bnAx=`zbp zrXqu2ojkZqAe!Aa*cvuFuxwD3GLgPP^=Fx_{7iQ&YHb%LR%}qmLfDyV8*Bu~z41|* zj;z2msm8djXf9nGOJ^{TWbjR!QWl|TM=ZKLwlW**VmZaqX>1fy*d0iuJDuptQmZ1J z8AYRtbfwarktBC+UozH3eVBx){>TayiF9G7k)d>?s|~{74V-p%!b*981_2Y3FTrcp*tOm zM$oD-##jt{FU@6Ay~rQMNNVft#I#LEqA|2r(RiFQ2lGG(u$x;SoM7c^m z>8x&$v^9;IwI?zd$I_}!*_5rMRw<}EwE~&C`(s_%M7E#escx7k9!;h)Xi0kvV?2)S z8Miad#si6>QJLOW#Mt$q{e3K5mFkKy?d_6SHnlv~#U_uW+xsYy$;8rqm`BlM0tH1; za#qLTYqRiO9q0!vB^YX|50n*9erKvT6YEB+5N8*LPdld1MdI+5+@R1=|9 z?ap}>fNO}aKoa^Z6N@d!U$J{@3Znq^!~axV`fqx)13l1@o(>VGz}ZUIbwfj)G+bWt)WiSa-ZN1Sfb)Xx<%2#J2 zt%`*!K)w2NJeMsvE?gq8MhtE8gz%QC1cy@0w5bt#FA~q z9MGvJj{JuBGU$^ zlApi2?J|y1m_srdI3h}TWy>t*=^cZ^gD>LXF1zg3-nbqH z66N8}B392uNisZM9173-grfO~=A|3Cktq=3O)$Et{n(o9)MB#|%;fOD3Xnq&|Tj zb&{BlVYQTHO<3j0^Sr1-9efaN3ykN%!WA8fXh%2J66#GS!rJw4w6{w$Jh|Zt!`Pm~ z>v0l~RZIzF~XSs@HxChhT)<#%cGtb>LiwIub1-Y3akSpiz7xtI}R_5 z7B9e?2xep{ko6EF72Uzz1%v0JkV>!MjKkGK@Uz(dB;z>w$%GYEaObQ#k;#dXC4Zta zJf19UC^Z8^c%B;g4md=al5jM=;^cA?&*pr%Q&yLiy&dix!`ClTNY9VLDWWMkHJy>n za#=?UC3HaQLQNxHgvV z4)G>7&#G8;Vr6A4iA|EgDw@;|w-cibXTZ*IrlU98mcq7`kKtjt30J{e>^k0XDPeOg zTLI@6V&^BQCN_DYNHSK*l)J9sdKIjx-!cB5S*P>=@F_Otv?9xra0##SO5uswo;^u>jRrv2Vpv`us z8|xgDG)NGxKu^P!t3!Ucl2>?iDo88)Jr%`ZOtN2X3upQ>;r3*zHG-45$7`=#Q&)%k zrF_GxrD;(WRflSutEi?bys&C%Wy6ws9bMGOk-COO%~iM=*%Hceq4~{(TZdJ+`GR}3 z&3r>Eyr7}Er6N?ZKyIH^G%Tub(FrY8NUb_{QK**U&3xyE;@HDcJOsbSJEIQFah@@9 z(u0`d^C{kl!w|d;#nlw)lYVRFwW*J--4MrK8e8{X+=78C4tMe#iMPvo3j|M*My$)XCc&w6!*p$+mDz;FPJ0 zbl38Nl|ZCI3}1~~py9fz`bFph2ytj;#bSXv{I1|Oj*WpqTQqOOt>s!b5~ReK9sTue?0uDnV{A?YZ0 zB~#V^@;9UWPhx?(FPLb=Pb2K6DX~QE8M1fL?h7-IZ*s!T`bGJ>n*IdejP;AfL-C)m z_AC;wS_%KumcpLAE0e^$49}iM33QAyZvxI(#jq|yIv?|#w{D15@_k5-1ETMWQbJ=} zVmQ_DiVo+FpLcNf)O`#rqH;So*5=D7Gb0@8?oRfTidQNxUyuQ#9WF+hx1h>p)W_q3 zO`H%PSO?oz@q!G~F-6fvo+vWDJTDm5#Ue3ZPsPYmz|jIl<%R4Ff~I`0=+0Aa z*_NU_xh!m+m=|#cS+*OwtCDXrXjWXbF`7~rZAQD0OLK`hH=l!DUPm+ zL&qiC*eLowZn6zaroNRMZOSMz=ZbTPIv6vU| zdYTo~@i5%>f*VV8iA&B!r-Z|~oo^m61)hO#eX!5bPK_B2+SImnN=(^>sV%1vdpYynOV&;vz}#UMa#^ZPB&{h-K^I{noc)sIvq9DJ*U;|AD{zV2VsBU4ndkPI|XSx9Spfc2jVZ&gWQAN?QQ_L?H2qfI>a47 z+6xFpP!t5e8etCMK@nUd5kEtxb3p-}eh8=l^q=nu-R1^?Jrlv9iTFFXe)u7Yeh4hn zJ3!0n2a>ad#t}amvYf*7Bg9M4&PgaCK@p)R%abZQ=qx&dc0hB2;`mE+Ipo`suZPCc zWbj+@m(!;s41;`?NZEd^(6i0;c-B7!cu$_7W+{Q~dkAW>oLZ260G^524h`E7bELd1 zxY-DE=z}l0;t4uQ>Q_Q{OZ`je9^!J76r(%oE@{V&f=fz!OQGj#&S+et=t8;|C5#09 z32k@hBF_EA{jwLZqi7x7C+X|xek1*xNH3+S?xAQ8)0v<_n&ytD!_e9s zbGe+E(97i&G*!1f_HRc>Hb!okObWEa&<#ReHyg()(>l zmELl#SLvDWUMTnqcOB>)j2OPSe4YzzpAp~#=yyg2FrFB>H~6tSUD<0aB>DD^2De71 zbInS?ar)lKZ{}0wD!(xr>1P+@I~$UG`@HdU2cRNB4uS-w;X#;YU|}9lkD@JH z{&+pV+K}@Xkf@98=jG%6PVlw2oc>c%J-e6FBR(|iSxnVvc!HLo z1TJ6sfi~#imU?)v9iEk+*C-0!t0cNzT@ z=qKn_lsgV(dVcL3`XwEMdCELss9%Vl0_}nHm!NDX&R>kt#re4Zd4BIj3v=aizH;y& zlK*K?Z#*)sL&}}>Ybj?4@?S&s?hv|}u0fpj??8G9;x`H%OE-a*LfR<&9nxQ=(8B(( zlp5VVg+7BisQT@#>9;_;DJAV3f|j!W-RL*?yTcud{5$Zk1m2VTpY_}I)w(u)C9neH zy=y2n!~V_g;PHeNz+H@T7Nay(zruE%FXiXQALDnxrY-Ig^aHPZ;}J?kI@m6(_hzm4 z7NKM5R?t!!tak^HdHXIg>^m5*>cO@5>cRGEDagnARQXHXT`50rucffpQrPPR@zY#i zwkPZ3{^W7O{fVCff%+a=q^?qG6Z~?dMBQ;%k50m#;3Vkr5pc2MgC&oYG{ukq|B z`gelg4*6K%xIRU|u^(HGlD+ljdT`5hec4z&uoI`NcC)?MD%|cud)dd;OUS=m`UR@w z>Z5MhoyW^$@{f16cc<996ZY=Z_D;jzoo)~0CDip#?3{+3(`Z-PXXiBRm)3T^5Sr4k zUmCUVG3=~x%FaEoa~@~6b6#&hblLFRA;-geQXkLGJt#SE=N`9P*B4^gsT=KNJKNj4 zbNlub*mn+bY0AI8A~E&Hlk@o6W|hy`iTtPnc?tbq`=t$fU3{EgqeU1G!)OEame3z` z`o>)P8+5p&Z`b^7JG^tWi9q+c%SV|Dr!x%7AGyOMrILHed#`g^b{m%phXeRD4T zL;9YiZ)RXi2_jjM1$L|+-yuFl$I=pTyrx&Qm z2{JE=!d`>`cL0)LLqhYT~UH_M1pR+LTiXkC7NARkhtoI)9tZx~eN(*GZhfo5KQ>C|r zzV$C@&%a8~9P}SwJWtO+w_b(Hu z#Tk%({hy6%_Df5g?_!=U*7NK|I>CvEUs`O;$5toic>TeCE$$@X*KVU_PABBu&grO6 zKlUnxervIFlGSgW0l#&I_^q>$Z!4YU@;)Z-w-)L847jJeXNlihg!%-KXA(jd_}K`i z-@=fT%i9O`&|%j7VGs7awtZs{9kCPnkvowW?mtT?WAQUb`}}5Br~Cb8m87fvcdt&* z@4r_%wUVy(-+ekgzyChjsgZQG|6ZZf^ZW1B&M}hC`)}`BMd!on>@QEIHL&|gcuQ}e ziUi!JQr9-%Snm0ge7;^f1NqqBp0D>I>~FpMXF5B|9ZwfQ;ZV8&{_O(H&kNj3z?abX z-AjdzrOQD1zSbpfp?@0=C4T?L{_Y%F@2)HGZ|mIkT91DpqWs&r@Nc{d5{;&FF~;-z z>I9wVtV2Hbd$#<3zsL1I+gI)p&=*Ag)%_i>J=+S}!~TlrYY7eB$6VsF-@5>Q?-JOf z&Kv$p3rw z|DW~8&h`Gk?T?+8`>*K_yZ#=`Gygi5_v83wN_tBD@%Am{_(hMea=cpUzw-GC{qwDK zS#Ce7&buMn498WDJ9vC0=oGpVdomVc^IJ84w&t(b{5hJxLGx>c&(ch^NBvH^ zQP%0X&Nlc!@BWQ{Utf=Uc>DUxb-VrRQ=O!%^~uZcU!R&JU9C@7==}cm=>$nv>(eHk zZeO3g^GAMPvO)06DZek-fcAO*koO_2&W(WdrSZ`lYhyHWNnS0LY3y29NE|C8UhT&C-LfwRHALiQ~@9sexe~vNvp%mM2Cq~3-vzb+=dH_w^WE>L-xIFW z{2&}6Q0HPbKYp&${qsZJFXZ{**@wsN!_K1^htJc$JC9*r-lNCOi}Zw3Bm3`r&~K&m zw6h8Q#ry1Mo#&i>Jne83#(;yM?hD-GJZ0TqZw6+wjMJ-RoL-fC4uUPTjP8Zrt8hl# z3_Y7MF0aD4ybAsDx!l+C=Amb=XJBRa%V&XNM-BWo;J3LO=|xy~clR9H-Q7cvCmwe^ z-iD#v9+4A%Z`mF9Fx2>kIJdvt8z|mK@%_$yB;PRc|I6ug8tG1f9*6!78Q`CC@=@+o zk$=;WAL#6j{ggw)4f)M9TI3@j9|~=25uQPP_?Pob=&#Q1GH!>9{`|N-Q~#bdUf<{G zKrXiX^|U|g8bE#UL<#K0vyt`g1HC&ediVXOdinm5D8Zln?~o<>`G*94>0Sf*gJS=D z{k;2H-u&pm6A?f3)WF`?VRag8?{Yd`F#OyJ|8Bo0bZ7gW{Jl5`{FeN z6R}|aXkfZE#y^)|H886!m_Hbp?`w?LCZ?|#m<<-p?+wfr3+815v)xjk-x-)2EtuaL znAxx`Y| z0|w@5OIi0DnC%wKPYleR7R-+g%+EB&Kj!Zso5T{NBKHSju|Yz^v35 zf4~3Ez?`lz{=WFFfjQ4opO*~G1`Fl|19P3m`1|5{19Q6t^Q?inPhbE z1M{Q>^OS*k!BW%+MIW&-Ci*(YYGq@iy9Msm}tVtcXR=(FP`|F@F108f`Pftf*EgMZnI#<8JPPm^%-kmeqq6s8kpxTWtAA1KUy$j z49s6FnEedQKQzWae)csm-@p(0yr%du-!d?xG{)cW`xuyU7R+b^GfiXs<8W^SGtW|= zQ3j^of*EOGPPAb5GBC?E#@{Y;?wqAD{yL8^^lY$Th8vhGEoJR#V76(DSqDFVw?&UX zo#T&MFyA!F`Y#LS-we!a7R)dM^O45*?X!o0DaON@<{0~ifho}#zaH1X9HcS+{&Eb= z3=4(~Ovr-y5-=gR90%m|I~+wfWgGe%?lWAz#XbC5;P)dps^Mb8!kQ*F_6m4R7m(Q~DN zS#Hs@*}$yU82>o*_Y21_w3M~U&~vQ?bA^HVfyVgtUv6L?(HQ?2+h|~3v|u(EnD;GZ zU1nhTV=CtP>rw-=m&W+(e2IaXV9|52ftjr_{_%5>foZT{)*G0Zr9SHnOx9AL?;DtN zEM=W*VAfg6T5Di7TlAc6V76Q8!*-Z}3Fr0m9l-E2Sv(FMM_CC!h2qOa`Mu1~EEsHw z*BHO-J76aH%6c7`L;L{5=NbGv7R*t=OoblL=ll(rm5@P1 zMS7AQhxic?cxQ!SBL`!m!1%8*8snF>g9$;8XTvg$VIDS==3nd2z<7(E9R_Bh1#>Gf zRVd4|X_Lk<@5z3Ic(o66yan?BFh>L9*(V7MKU>LlF4A>=2k~ZLJo~KD7>IH<2-B;H30*q=|14yS2bFT$+vVx*?bv*{me6M4) z>=XmTtcf{o7cgh+0*0R(_g}WM_!)Bl^{l1N{9L*Jvgz5e3mAS5nctDuQ-FSlvU&{r zd}8SN*n;`gz>L7BjZ8hC1H4nFl*`wLdPm!zk3)p#*_jcgZ^uwr7Ui@ z|7x>fP61{B!MmTa+JZS1>1zdMZ>=e-;mS-UBG+^3_s)T)#rUneK>IoFkThB`alFcLCF6 zV2bx9n&=HmUEpa3W^Z5yjGJ0(f!T^icxD=_Fh030i(4@iRdI3KKtz6QGlb zpSKB6g!q}70KW0a&&>oVO8jg?fZB+ELksY?7=^}(e^(0N+mn26J3t-$;5ul6_}+2= zZ%Od|;{d)E!}o{-lq9|n9KhEo_+D=S-?HNSxdD8ujPKb7@YOQDUl_n!4}2dXKxyK$ zZ~)()?5T88)c#DhA z7XiFe#%G8Co`L7RyNliP!!nL0x{nFn-~E-)1Kj6?t`CH+QfWJ)*bcHXS%Et=jc zG=O(+cz+(iI}f}E58xZ6ymxW%z6IOE!MEs?eJ8o!g+2#gEM-23?}Aoglk4ECc?x%z zrgv-nJwl5H?xhIw6%G7^xpvye+Dh0CnTSPFB2+zJT0^c z-}L)f(i`1>NWNcd`7@gSMrZ)O|<lk6{wDhNbBb`l z58&G}qd^@Sqw|$$TB_+-O~(lh(0FG&@I}~(EBl`+^D2mM?#zH3{>_~$=@SI+;@wHM z2mG7RB05OZNkSc(>eL8+nwFPqI!h?lU(NTq#|iFm;a!@e)BC0TB76}?**&D?l}-eB ztglWNDCUdE9Xi@sCHw-7s}btbG0wS=2e9kk2wH@ly=vcD-M({m`_9wtTd4EZYdsA@ zi>Oh{o3*?}(?!nB&>O_JJ?<6#OEmtwnw}ukrIR#1qUEhZ9f~;*OTM_~6V9)NU#4-L znx3xh)Ga*L38_EUJ?9nRvFEp&Ok~q+XXhL+}xu0A1mX5xU7a6cq1m>ikz~dX=VIG`(8WYc#!9)9W@(M_7a)j3i4+cf_}r&IVlG=Gp&6RC;E!$exU)pYkQyMd&v0}s6#)~@}D~|i=Kyd z`Hwmu2>2X>tftQi4dVS)u6HrsEp&0SF913WG)ONw<3Wq* zx6Yv=|E*IY^4~d2MgFqWCGwY@ev$v)Sts&Woa;sYigUZj|KR*WQ$+rzbB@UW>|7=Cx12jf z{+9EA$lrFJ5&1jL8zO(l`9S3FI^QT^yZ+S~BlJCIiqQ9+xk5j1>VK9xgA1>xcx!{?s-Cox|@Xt-CKly!+iiWfOkRpycxthyibA;(jM+_KwZ3( z`v=e>ys7)H(BbZ3Kz_ayk}&-Y>Zc#k8bd@}<_Dt^3;k5uw5HI6{U0Y@AO*y7^5 z;rwnl;hk#SGe?+)P=+uap&Vfb!YqW@2!|safp8?kTphT=UZtxLuR%BlVIe{-!U+g# z5Y9um0O1CN9SAof+=Os5!Yv55BHV^>JHn3wWP%eDQ~T@h5%pmn1$Kdifip-;=r?1sMmv20$M| z8GJ23{5X-f3QmS=NToGGzEaYN?)Jr1s{ijACEcPr9DFRNH7^sb84pl2fF+mGKU zfuD>p1>t<8ZAZ8r;ckSVAUuTdD8f?+FCx5*@Fs%lOVxiL2>&$ds_gN(@So;*`FP~O z9OYE$0u$L$vERRX)Jh52|5H6k2m22 zsMal}_%Gj5W<5Bj(iGIQ8sQ{_UWD@zwjw-$@EpQB2mv_c{Sam#EI^1L^dnq=a1Fv; z2#+JYjPM~s5S1uJI1Hg4A&#KNsMoiie?tWZUGJm4uOhsTa1F-W`Vb(Xe0egWncNUM k3iJCK;JPc$K^dD6{`dM{3+##o8W#@1$j)E;@P>*05627VmH+?%