From fec546f77a613efead8f6bc3fb6042a339d3966d Mon Sep 17 00:00:00 2001 From: goyuken Date: Sat, 24 Nov 2012 22:14:05 +0000 Subject: [PATCH] gba: fix cartmem problem i caused that was exposed by recording movies. inputadapters: finish GBA mnemonic stuff, including power button. |P|UDLRsSBALR| mainform: show informative warning when starting recording a GBA movie --- BizHawk.MultiClient/Global.cs | 1 + BizHawk.MultiClient/MainForm.Movie.cs | 11 ++++++ BizHawk.MultiClient/movie/InputAdapters.cs | 36 +++++++++++++++++-- BizHawk.MultiClient/output/dll/libmeteor.dll | Bin 137216 -> 137216 bytes libmeteor/include/ameteor/memory.hpp | 6 +--- libmeteor/source/memory.cpp | 9 +++++ 6 files changed, 56 insertions(+), 7 deletions(-) diff --git a/BizHawk.MultiClient/Global.cs b/BizHawk.MultiClient/Global.cs index d02c18bb80..ecaf0cd5eb 100644 --- a/BizHawk.MultiClient/Global.cs +++ b/BizHawk.MultiClient/Global.cs @@ -149,6 +149,7 @@ namespace BizHawk.MultiClient { {"Atari 2600 Basic Controller", new Dictionary() {{"Reset", "r"}, {"Select", "s"}}}, {"Gameboy Controller", new Dictionary() {{"Power", "P"}}}, + {"GBA Controller", new Dictionary() {{"Power", "P"}}}, {"Genesis 3-Button Controller", new Dictionary() {{"Reset", "r"}}}, {"NES Controller", new Dictionary() {{"Reset", "r"}, {"Power", "P"}, {"FDS Eject", "E"}, {"FDS Insert 0", "0"}, {"FDS Insert 1", "1"}, {"VS Coin 1", "c"}, {"VS Coin 2", "C"}}}, {"SNES Controller", new Dictionary() {{"Power", "P"}, {"Reset", "r"}}}, diff --git a/BizHawk.MultiClient/MainForm.Movie.cs b/BizHawk.MultiClient/MainForm.Movie.cs index 5d95417fe0..db98538a62 100644 --- a/BizHawk.MultiClient/MainForm.Movie.cs +++ b/BizHawk.MultiClient/MainForm.Movie.cs @@ -85,6 +85,17 @@ namespace BizHawk.MultiClient public void RecordMovie() { + // put any BEETA quality cores here + if (Global.Emulator is Emulation.Consoles.Nintendo.GBA.GBA) + { + var result = MessageBox.Show + (this, "Thanks for using Bizhawk! The emulation core you have selected " + + "is currently BETA-status. We appreciate your help in testing Bizhawk. " + + "You can record a movie on this core if you'd like to, but expect to " + + "encounter bugs and sync problems. Continue?", "BizHawk", MessageBoxButtons.YesNo); + if (result != System.Windows.Forms.DialogResult.Yes) + return; + } RecordMovie r = new RecordMovie(); r.ShowDialog(); } diff --git a/BizHawk.MultiClient/movie/InputAdapters.cs b/BizHawk.MultiClient/movie/InputAdapters.cs index 982e62a5df..6cd237bc80 100644 --- a/BizHawk.MultiClient/movie/InputAdapters.cs +++ b/BizHawk.MultiClient/movie/InputAdapters.cs @@ -370,8 +370,15 @@ namespace BizHawk.MultiClient private string GetGBAControllersAsMnemonic() { StringBuilder input = new StringBuilder("|"); - // there's no power button for now - input.Append(".|"); + if (IsBasePressed("Power")) + { + input.Append(Global.COMMANDS[ControlType]["Power"]); + } + else + { + input.Append("."); + } + input.Append("|"); foreach (string button in Global.BUTTONS[ControlType].Keys) { input.Append(IsBasePressed(button) ? Global.BUTTONS[ControlType][button] : "."); @@ -715,6 +722,26 @@ namespace BizHawk.MultiClient } //Redundancy beats crazy if logic that makes new consoles annoying to add + + private void SetGBAControllersAsMnemonic(string mnemonic) + { + MnemonicChecker c = new MnemonicChecker(mnemonic); + MyBoolButtons.Clear(); + if (mnemonic.Length < 2) + { + return; + } + if (mnemonic[1] == 'P') + { + Force("Power", true); + } + int start = 3; + foreach (string button in Global.BUTTONS[ControlType].Keys) + { + Force(button, c[start++]); + } + } + private void SetSNESControllersAsMnemonic(string mnemonic) { MnemonicChecker c = new MnemonicChecker(mnemonic); @@ -800,6 +827,11 @@ namespace BizHawk.MultiClient SetC64ControllersAsMnemonic(mnemonic); return; } + else if (ControlType == "GBA Controller") + { + SetGBAControllersAsMnemonic(mnemonic); + return; + } MnemonicChecker c = new MnemonicChecker(mnemonic); diff --git a/BizHawk.MultiClient/output/dll/libmeteor.dll b/BizHawk.MultiClient/output/dll/libmeteor.dll index adb24f1a77f72d87fec516dda67ef9b2cf782e8f..18b0624d241c5b78e507271cef0f08f902c478db 100644 GIT binary patch delta 19756 zcma*O2XxfN_Xet2W3a)%g2CNjis?ntO1qL)t2M=hj%lW2(+xP_(EFNRY=}XC=rJX< zki=vG8$vOmCJ=B4p@g15*rg;SbO`u;(k{vG&&zq|`JB7o%$+-<(Vdw)_g+C}UQlLU zP+kx*ZEvcUCRNCJwJvFFdN@_>Nm>V|*Q2PsorH>6TrFBXNd%Ij64NK-s(ZaD(?ssO zs|ThMQcs;(k|$l%y(L?cUaF~-Y$`cJO(<2Fc-7=m99g4gm8u(&Go4WDlUyeAJ}QBt z>R;#-aC{h*y8=u;fub|*2b3xeuY zTOT*YWIhp?fq^Le%`O}hGK@+)T0qRjMKg~E9XYMKgW5!`Gf~vS<~7ZppTbbcuDKPW zM!l;V5j>nsQ)dO&BZJj1g9n8^97CwAJH7|vS;LCc($(6f?Ir4A2z5bdRdsghDsFe_ z0Aez&au<|2Q<8k8&aHTe^j1FzJ!Fbm;|{8Hoe+=vZe?c)LaVi-j+rXdR)3G$N(5Dl zPB8^(?ibMq33}zn-XPsotxAsRDXZ44>L6k2kgB%`r?!e~M3%WH#FZnYg*vyILc-n0 zt4$9kZPk|bZ!JcYKdL>YoQS4iuipV)d?pkz^JLYHdc|{JHQ6_tXVs;s6M;J8M>KkPwZJ~2 zTrKpNSy*D@RvWf(#`;@5_2Za-gJy$>iC~EH*tcYiq+RCZa zsr(+>JFqgLo)^_PYzPgWKjVc95Bej_{iQRiM8%wrl)1R(>{)=U#1~m-JR8(2%|=#g zx`v|eR~VcX;7MCeQG>HOn>>fqzRi;>?C{Cw>hdQbUZ5UpKCDt72>HZkuJVijtTs!m z7C$|SGC%1+nFD~7$z;MhVr7lLoWU652Ke{f^AoF*@LAoAnM?p=wR_Pq+4oM@)k7^N zMRZhg`rb8!XA!Gp6(eB()1JAP0lJlE*BY^mNc@kx@uV>miStLr~ViOkkJ z_&b~b?fj{x-fS5gvESD_&*=T=UGJoFYGI2gHLYbz#4+vP?ydB)@7dSY8!f9uT=Mlk zZS;QduJ`=1M(@V0QX<|i|F`!Hz3l59u5NCnn4cKE7kc#GXFLlks)t*Ls-;?YuhdYN zG}PaDnO~pV)zPh$^5*Wkk`|T#pvM8VuyuN+REYS5=PdOLUsDs>LDwTXderDzwKMJ)d9)s4{bu@mnT!^@}LON`;r6j9#_G? zqdshNBf{L?aALp5*PrbISY|5c59$v>)TxkPoej}32NbYB*ycTfCB zvyat}+DEI$+NDIK={@|b`e5-ty{D^k`zqlreVt{av*+EiG(hJ`k?VC~f5-TLJMPQT z9~&{y*R#9P^Y*)*gGw2*?%W|I^5>j?yZ6=0z6E{!v3jaQWSPhKI znGb@0?myaU^@52(`%2LJ{T`yNEhtrOlJsZTrW9SR%a#Hb6lI<8os!*Z%Z|-Wk3!W& z9UGEe>i&+e!~Ztq7C!LFCBE`}CpA8K4vD^vt(}9aXd7uNJWB-9CF!fp>$z82`EUB0=*qGZufX`4i zRFit7S1Ou=sTe2q*=+yeYo`|V7!&+>5M>?;8mqSJxg`8#n$f!eu%PRctmD2nE2Tc` z*_52u%CLYcVT3~aO0sn0RLlA$xBK-+#*uV?~@WSZpOb#eKq|brGBh7>g$R;@9Tc@ z|8~Fp+}Hg^-;{{A#>bX zYL9@g2KFUE-A5Tymes+7jz>=Xh%)a3eGmE>^cN@u0@c;T!D*#;jK+rS24k3`<`4ch z@;fwyfYlh(6x0=z23nx598$OR(J?;Z*<01qLrzEDK*M8DDA)q14`>Exle#nQPPIDY zD6{w0kHy8_Dd&re|M!aZ_PS3|-efg@Xf0RD1qf`{f8sCVC*cx)vM%Fi&lUVs_ys@d zzv1V(7e7sZ$4{R}___2~aq;%Cl=(~0F3^3@N|+KJ!A=lyn?infmKRMtw7(Gr6jEocINaT{0<*jBs{;^KGnjaaUFW{iM0)orHBgvzCvBlMSTIcpI~bYGk`mXHLs-5g%`s^>UJ zKlSjOctP$eaVtT)1C7Q~1nWytfH&m$Xh$2WeeRqh|QI(du(8(e!9Ks@2>nEB**1 z*WDe~O(oIKS7R%!fhAZ+nO}TDnRSQWw_-`|yPuRJrl4K!=eg@jlDX>gE&a;|e@>Z~ zenFY-d6fBAHE?SavP1n~>tfQ}eR->y5Q}tJ-L(B4S)_ja*&LGR4%<;V7z^)i zxO=pzY~2FN{28d>Udnvg{dqn^$Uygvf*U3*&!Mk-l^*z=ajv_6M`;l)2(R|o9~PA9 z5~f_kYP4~7PZeT#FA+H#|I7Ny;w zv;VaHjar!c>A~J)wQ4$)0QELIG^jMUi=wh#z@@#SesxGFGs^9+2Jcp%9_mR>s7Zx` z)Imq1-9?3GO=P^9dt^0vtjb60s=EuL)y$(E5iFcLIyxxrobfJQ)ON=<6TAB47|q@( zg7Nu*GFw1;c>!=6=p-lt;;Fz9pedlzsFyzHPCmYfL>Fwr93I^_S)OHeh{-y9*b_1H zMcMHoS>c{_?&1@3OCU&@d%7xl=H7BTk6?p#Khubizty>C2bEoQg)(mh?Evj|zdT!` z0(NNZt@ea*r{B6~B86(V+tW&KaTXU_u5|9~8K~a4U6VM~5_d+C`s(;QHj<`(d8ZZG zMIP6Ba0+p|c>1XO?hYpt+_gNlOyoPY-My;h8~2Cz zUI$hXpTMI5wR?)yc}AJfs1qM8AvN3~fA%CMYKxlo*A`MyH9w9uk>&2jkLwYls6C%7 zAsOz6Pwa%y?z+!lacFnX7aIu4Q{TL#NmaGcE3WFjCa{#H0`c&;1eD&CKr{RT-=+k#J{$8dLnOt6Wp0Flrb$$>bZAhh+p~b~nM|%CQ+-Yryi8M6@ zl-52oL1d!#+(eQ|2d#YoX+#pVsR3jx*{3}YAOpw+ty>B5C26FU3M31HvMVA|uDL8z zTNy~k1Z_2Hv)5>qOOjskJ1P+K5zu`Q?n_E1V*F(l*MX!HG(=lglJpMF2-SyKI51Sp zX-Dd4)k_gJI0U>Jpf*~cQlvdOnZKhH2_a<P27eSW_R#7Tn9RgLMDsH$zNNZJH{T?I{```Vj|gd@#0 zHk9lQ&WQJEE?yJrkS2)j0V-F1&%7PJ=1tmzXi}A|*Fs`Qe2LGxQIz&k7^bn0!0$u|+FR=wgH7L1%Zx$x zYMS;*45?c73rySSqJTO42kGnKZ&Bs?>RY`l-=>1n7t~7 z%sOQlgz|e{c^q9SYJQ0W>By-pY*WH#C+dQ?Pfti>okCNFo|gHogFZ;ndOi0txanY0 zSs%-jpk1p1HRNb-0Od0Dhx@vDW_8eV5=cbfVd&>QYYcVJutC9H^nuzHm(MSpUt*#D zSf5Hxc|LCcUyoR6Jh*T$2{dNENFVCRA!Dd=oweMmBqF@I(XnuFf?vp(q^G@h7U`4d zah);hp`!A85{u_on*G1e`&+{yu52pVL5qkZVl`AL1&C=JZVhK zWk9t-@AvEqULVkCZ8k1A;?a)PBy#w0X!CyStPn#HzQsNX?HQX_s~=CQ6Q|Zb9)}{G zHC{JWn;cJ^LGz5-vMGA4f%bbmi3r-{W3AB2)gn!sEMkaxIcNvy{h9m(-ZjwU|7fd* zQD{&bZE-DPB}LlFTI5B^E8ujoXy4T)QI*?Rh&dHB7Bm~Q9F(U$txcq$M^=4~3vX+- zIwZ|R*|ha_NaLUco6cPpmw%}a>5N-WYful?oz`~NBQ<)o=7_l;Xa?y0dAh-K@|cUC zx&a4(HiAZio})bgSRND&x{taASQ~ULzhQlnYzn?98dEwiYD#-zE1k0r_0K^^^S^IM zmXn~9cB6g2HoP%u5mt(u**BkQ!0b}+AKOYBILH`Pwr zVU~_)uk55L$;)@hL?Pv>3I7@mo-vGuV>nIeS?_mNqi?SxGjEnEzsGliI%S>m?6dyc zNrCYFe7{lgn627%2Z;(l3a(ewt&RV@x;g!TYnckp?48DX`J~UDH1XRePh(9{NYyG| z{?FJOA?S@nsPb-U$aC^Ke?x0>r$m`S z*WnY=SMk$EThf6{BUAD#BoT*+Jj(CTiL4~mm)1erJmdv2_w~-#iw|Jt`+BG8#nVP{ zv{t$cS=;ER+L&;DVc#Q$u;=(cRlS2J|DUSf$+I>8r!FLlkaqcxx{@S9WUWazTpKZ3 zKOO$ort5Gue||&@d2b~{@lJWbtGFmkwR*cA=(2SnranN$pO+=JDW(8^{SMrwas9~*Q^{hjpg(-c z&047eq-On&>BYr^v-*}U$es$BX1-cTL7raYeYJ80=k;1`EqMT$OB!p}2aw)jqo(Nn zx?C{z^**1h7fW2|>s_cN4J6G%BaOC_o+d^^GDI|O^FUI)ci$+4A5U zT>OpQ^=g8zl~5ad>s98T)>OS(-KfHW-Z)UNhN3$2XvEAj#T(P~x>u_?h|D0TwJn24 zEqLZ<29c<`#+NO8!ut2)*8M<(SANf_nJ)v&&)tLb4IBJm`Cw?it%fVOH6c30Xj=xu z)C|_D4MF)Yy&SEVlW;gk4IzVTFKk6s8U@D|6gnFIAaE+E7s~HGv+1Zk8bV&eRlApl zkRo5R4kb0P4SEhGa5GeE zftqRJ2vWV?Rzqmv8o#76Uk zc)!xV9!+vgw{B?d#*kX!)O2I)N0|g^)u1fjCoa!uZNV7QqU?Qe*MYtQ9o4RlA$2Rw z^T|&Ebn|~FnyE#NC602lk)X?QfX{#uv_WGD6B;qY7(E1#b*69DiC*6G+P1Mo4DAVF zTohQ?l4v`O9;daZV@Y!uA!!_m4|&rXv%P33Oz}Q$tqmVXj$y+v<6*lx<#!tow;ZNy z?F3Y#v?CK>i}JKS6H(iqKXW3H0?APA;4~akI=`I@_N{Eu5*U^pxED^8sJSkGZYG%& zh=|iPhYTfre)=3zfsl#$)8>+AgiO%J&L43r! zl)QU1+XB)sbe_>rl;kPzYbf%L)5hx!EschoNuIN}j2<_=*8Kbhx;=~6g0e~PkcjJV zi?b3R;S;5|otBYJYKC~O>6{>)6RYKBLpD4A&ulV+kl6gxMI_sVu=rsPSwl8z3l@`4 zN(4-JTdXB4C6%-$OUTxMX5-&#BbSiM8d1rF67F&D8W*b=V(RjxWR@%FivAi`z4Tu? z?()_#aKATB$95~cmwwXuYrJNIzaq(V(W6fuEeHKA&;Im{@Vg&>GjNypx`F8N>AN1; z{vJpDlKcOBD;p2rWiTFicNloyyUD=Y-ZciE_AWK>syExfquyBt?$$$A$Sw?21?DFP3(%)y7cbWwnmUl^Usq1}bo=%Ndl41rzVSHJ5oUt|dUe&1M`rQSO_ zGjWsmn$ft`X#BxwoQ)J!vGhNO)~JRx22A=C+LrI_?vix)x{X9uJ2K4M&$vP2sYrVH`I_w(>nzj zoi=$XgB1i;lIO`iL-hsdDMril0(-=b{6%sD*P@~rlZ$E?g#1QQ2>lI@R5%I2< z(~!*c+6+AHZEW<|Wb~-v>v7ts{PwF~4`mI>quxLRJ>EB1_JxT#(16#_z?8Qx{bllf z@*eMXqy4D&!aKRO?^=%PoU!w~KI7r>?lL4i-W`728UzzC37n&f#gPRw57Jk<7{0(b~V%n2S zrjV|S@yLv=$S{ENKt-TOAPW3AP$mezit#r%``_~RraO~#rk>A1hJfmhG)?#Igxb1~ zn0sqKtS3WU&9i*ssRuD+Rph)EAVdYxk@z+jO_{$!ISIG}xEYiSDnvaa7XRb|<)xrS zpuGKQLq)kS_2DbJXh; z%BkA54Wv!wykg3nGmFxs(1L&HPy8AFFUSWzL;}F`H3g zR9lF2#+$|*_6=M#momp`e|}181n15}aRKJ8#cn2zBU3*{mmCZYqQ3D-XD-F#@&|1u z`J{>dDhZ&x(|B{>O<>0ND4&7+S<1WuecqSJfn1R;i!U$%T|H@+KxAn*9 z+JiEw77#-@j)FIszilgg{#bpuM{_XjT<}1-C>Me<^s*MXoeUwt`5$g4kAqzkmk?^` zGD58Y6@omVh~_La1**HF60x5wv3i zp^`Qc>f~k&wuMlN7P}kKMykf|Ce26-ZQ^cH)%@+pK1D49ZUbqlyGfKzcl`BukrS^fcl(y?FV$@*ZSG1K>cBpfcnGc`1woxxCf{&S4p(J(54?ERikeD zo2Xo0*ASq-FcG=hutIGARBc%yY3$1Nv$y&&52!z(0I2^1qe7sr%#;3lksp5s;-fM3 z3s4{So*(}LmInV7unf?&-iIN;vZz-A>hdu@)CL?TiHSNR-QO_Ak5l|O3mAir*}z!f zQa^tkuqx`CfpNeuw1BD3b)}MxzKNCt>Pr_1 z)RkJz&u`>M5vVJ*2~byRD?dLOs4KM}upDrxkMAlThl0MJrUNSg=ldFpmjgplUk9uN z-0bJOfnlg01cn2T`}sctBT>H&L@tf`&Ch=f)EDJ7P+ydQO}-Z~1FKRsC@LC-I5gDo zH_*W9sM~>PrkZJGk7D;__?svAG1HIp{FnpO6}1AWAB&AZT~VI_bww2b^%Xw`3`YHX zpsuJ(KwVKcfg!+$Kwa(?P*;@cQ+(r~C>K>01zk~j z74;)fSJV|?P2jJC@f5S!6zZ`P?fxnR~*K%$X_Z4@9`Z-t9OO>vR}+!|x8ZEa!gZrx}7*?Plz z&l+NDW}9u>V>@QMX1i^BWD67G1&7dFND@W~GlVt522Ag^P)e*M%3`9JE{+v1hFDJ*6SiXvrllkoHK&q-Ro?y}G@Qy^-Bw7wisuQ+p?S4||IJ zL;HBU%bsmtV|Uy4+7H=}+fUnnv|qO0u>WR%Xn$;fX|E{9%MIlZ8hbADhR3>K+mC9(na(I z`Xx(Std`zfe{L4HlB>x(`R05F{zHBdzl}f4Kjh0<>sp&w2Uv$%M_R{PCu6~~tV^w{ zt(&adt;emGtzIj!Rj@_bs@v+@7@N)Ju(h^zvJJ6qux+!Qu${$n{%X5#bJY;)3r&T# zP+J$FyD(T7A2$UEh#)*QMAPyEsi1Wl8ag(@1EEG?QSH;`n z3z3o{q&P{C5~Rw|P>y}6eT6;GehzvGl55C{+(*uoH^>L%OY&p6oTH(mg=4&9xw2lN zoYh@UhqJqLv~!X3bLVO2eO(g?6x9+}J3dC!?dUXmCcTb6KwqU_)0LTMrXFKqM5ZOv zk?GA0W=1gM7#A~_$z~Qa%bC?oF7qj~o%xd4#q4DcGDnz`%=gSW<|1>IxyAg(+-Dv! z&zRQ?#Rjsa+45{9Hj;H!VQa8;*+#5|6<7z`l>LBh%XVaw*{i^u}PBqyPMs|9%7HO-?C@eAK6RnHTDMoOa8Txu^3 zm1arnq$AQT>Av(xdLsqcE7_y%_3Vi_Hv{Y=>@)0(>>F@q4&$_3!CCp;{>)C~QgV5@ znp{V2=#nk6L+&E?l!wSmu}La8>Nse}N7x|xfm!bO%yGbR#PPl3hU2LtTH%!DN`GaT zGFF+aY*uzCCzL13OQnR{GUkCDKwA ztG66RX}{&1<)-DWC7J8P4dG_uU~b`#aj|?&z7gM=PvuAO*|48wtktbnYjbP5^#|)E z>mSwt97NGJ!8XN~iN#uBTZ6^gWh=0qwiUT-=V4YKzKlAdaqI3GaePn<7w zwWm_l6sSFlu8u?8nI233N=Gr(nEFgxrV|eBWM&?YX+Cp^IpJb{WnMDHOthuCrGcfT zrLQI3GRkt>;;}riP+SQvhzsG&TqQ1oi{aw9np_>O0Y`HjCvY;CfF&5oP32bLhUm)= z!ue78_58Pd6{~~`EDh>kU|nL}Y~5omwwAP+ZE-e>E!8#=8vn!g%vNkGFH{#?9faXH z4Etg2jtZAx?{324l@=?C)uHfDVdeIS=R^-w{(VR9Y_DRkY2N`w@3No7 zJy2v1mLug>au0cwJW*aIua&pTpUeB@qw*>Fviz(3Kz=0$ILbM~95o$`Lv}QW^7}c` z9b+6bT-fDn9NQf`9p5-kIeu_l#!mM*9yy*liXEktvPu}1q^8nPu__KFS?Q}xP%@RJ z${HmP7wu`~yz)$Wt3){CoE(-Z36?b7ImSt4;EII>tw2Z6v2=a93H<@xhaNyrqi50c zX_a0Z?k`~&)K(Z zfTf}(94D!kg~7!pTbf&1Svt5Z-7LLv=MS@tw2ZY(woJFovE*2m!c?xoaoc3siUW7W za>sJd@)F0cBv+QJ%tc`*)W$wwIf-*}iCkN*Bg|MxThS&2lD0l%6tr8J)W2N1imHTneWLD<45x2`6c{jem{ST zKgVC>ukm+z&1^O`aBZ;ew;r?pW_@Li!Ij$5Hpn&{UeTwv&tZ12!ub${Ho|yematiH z3ulEZf>mrOE*GPuCelP{z4STu&3);)lx|;U-)FxBJNVij4GWkk_m|V;@z@_V95%-c zM-H|@k;AU^P(~@UlrNP-$~i1?pfg&(C&xMGI1j+K;ecgQ)B`{*TA(k{Jky`~gxSG- z&D6yLq~eMyVE<%au+f%kmPQuNve~l3ve$CRqH9do*H_TRG42#6@Cx6C@5rCv&-1mc zqP3T`pLGuIo6qs8e_CT)E|d8Fvzjr z@t32KVpm#YL;s}Q!n+1ItHNs>j)0eC(uh;MuzHwn4OoPNoOZlVQhyqhHXq znTE!;9mC9IE-_|Y;hF44b`P%NXKZO$6V}q**i#EEdn^Ynr!5aHwYgSYZ*DHPl-mQB z_deGP?(S^V> zzjQGoRl)KunVytiY)J}Yh5mxOXDtbzjA+a-|$cP0C?K%VL{hhzrdu**d&{4KK6P% ze8ogK5#xo=g%j8VFNGwrmpEEn2TOTFd@RaN|KH2^a{Nj?ZjR{!q zALZM)-V+?79R-e)j>nFwN=M~GWt(z9d8!cSGUq1e56(NzznxSeMTOw@XhwISN6BEOjkIEK4kTmR*(tT+TniRy5{#t{*p%JIGz; zu5(^4fDh&)`D%O}p2b1$%=h4j!q=L>&){=#Tb$tkN{`a!rR{D~DSDVpIa*AYJu z2O->8i1WW+WTfs=Zz)w8BTbN|NIB9{X@#^y%9D0UA@+9gi=NsAI6ouhWAbEWgK|*0 zqC`8JI{P{&JGVOz>C0F|QO)%fK#Xyjj>TGbh40J3UH!j?w>#S#XMZ5}evBpAGR3mo z{pt@*^PG9Z1Q@ozDjUx>U>R6{JFI^T*#6$|m($o0>=vn$$Hq|*(WefZ`mMAs6{tW^(|v8Q!T44k1S6uuPuRGd0h28*BnbY z83sI$JIg)bin($wSZh57(v9>-d?v5)Tlg>d1N;^K7EW(@M28k@TWf#BKpNIA58krJ zTG_T1*6UaMA27D13wt|f;lh!oG!tXW~#$rS(qNo6lMmqklDjD#3ClL?QmnxV?SnJLMypA zl0&&koQwO0JI|HptMk2aC#~Smx%j7iO)F!ySvy#dSiiUai1&MBeTKcs;dC~|WmIIl zV!LB|Xp0dV2-(77Azu6l=A#JK>sJ_NLHbadD(#dGOSh%+cG*72KFU79J|CuR72NX! z_HPlc-9^Cm7j}&azGFq~l3Fq&3vx5LEkat?Kx~?E@@9Frd>&EUYdOqO%hA=b+3|(r zJI6V=D{mc9N_E8oTRu*iqij`9DnG!3Ea?n$Qb?qDpcxjIRYy4C`E)0yCzHYqG(3)3 z2>h2Z>kW_NAiRyM2-F_J%P7rOU}M>uY&}+DTeIC=*j_`~$*}OVpsY1)F5HW6*q_-u z*icVdVhOU8vsA%tCtF$|cnvbwh0EX;A?5J};;xh2 zX|4!rzRNx2o^c_3C~x7L!9EP*7xTCIGFB(N$WN``VlUmcx;)kg*1xPTt##oN~--cc$DARPa#seZGVD=s0b&XlkIZnFa*(KkXTqK zuatAK3_Il$@>%(+*6{^#x&}JZ;7w*=`|fh=brj-G%~a+ot6@*_lziBfWANsGRUR6l zQjjymSirE=J(A)wvs9{2$KOPAZO2sc;}obP!#Uu8nIqfo@Cp zr$-`VGm~COFQIek?etgl*YvkYR0O%0@=O@)b3?|-v|!pX-IzYiFebx@%2y*I|BCT2 ze;9#PSvH!j&GIl9No*f>2&{MxyW9w;4RQH}|Y1=v8jjyyym z*ARo0R4OWwN>!z?5fb)P1}Wo}naan?azr1SmA%+hMaoq;Y;WMQRd!Z$)^*yPinFz| zBR19$=Z8rA&Bm76_HDL{8?5i%w1NNpf=rOo{vgsUp zDXivx`a2{Af2Qxze;_qTm=GokF-kqg#wbj4rajXgwqqnxKQoyHh*xr%&4^a^!M*tb zsh+#A9#0tp`w?c?kNU75Ens7NunzrpOoOr2ZO974hFnDA<{|rrEo+HIvc>_+k&IYm zICk6=%Ut+KE3oUfSiZ9CvlMFNZ&KOy!t%Efmd0Z1Ik^@HJ(9WM+;{{WIoy|UDsRG= zOv5Hy!GFr{;`j1iIMxlVtkrH!w6?R(f^)ggT4+6KErLnWEed5TVGFW_AULgLi$G#0 z&Q{Y_$JW3`!>kK7*>)IVY9%BESR`;-3Ef>nsxTSpxh=vTn3DadgI2I>a#%IfVkpeWYxN5~P$z5L;KFaWgbk+9JEq1^I>E$S@4ldc47Z zgrK(MydkArUgj@&7iO$lU3e9#>>zj&(~Vr)A@($!n%8jY!!1o<-n+uQPeqWp0}FG& z@*SMM2QUgxEWWj=fFwaf_|`JllxxYg=Q?vejKDAht2C9H!DVxcxiv8Vhhg~t_KMqKnUhWq8T=whppxw4SzJum;V-T-YlJ$SEg? z%@N|Yg~q#x-NoMj9Op@5CiGqaqkl%cDgGutfCK+Rd@BY>K~gmGHVtqWw~&&gE^rJd zOEcgSYSJ3Xl`CyRd~ptoaaVdQm9U$UM~krAjdR}J-rt^X&#;d%F6%?~6Nn)HfL|Sk zE7~fzhW|JMSHlvd&-TF2zApcU`u1nS`2!3%ew81*_;y^lADLGG;I6ziHjZb4+XapHrAj zWY6|62aqzm%Y?9IWK&soFguEMvz6hMcf%Q)hqLnqJoD3*8;IXuSP~JZCv&~HRJb@J zxY5Y&&xMP(mdl5;nt{&>2b~vn zj|MS1d>TLyU5Rc9{T*Znan}%Sx5xLbAvU*S`w0>M?=}fp@R@9BJ{&NQ$S5 mL&Q1a62p>yg>=Ucu%g$*`>><0kcllPu~Kq=lVFp(-2Vd)Uvwb= delta 19730 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