From ed26cee5c511cc87d2d2e5ab11b9bd59f4b12f2d Mon Sep 17 00:00:00 2001 From: Frank <123@emial.com> Date: Wed, 17 Jun 2026 15:32:42 +0800 Subject: [PATCH] 111 --- main.py | 52 +++++++++++++++++++++++++++++++++++++--------- sounds/box_co.wav | Bin 0 -> 25956 bytes 2 files changed, 42 insertions(+), 10 deletions(-) create mode 100644 sounds/box_co.wav diff --git a/main.py b/main.py index 80108cb..717df58 100644 --- a/main.py +++ b/main.py @@ -1,10 +1,18 @@ import pgzrun import random +#分数 +scorep1 = 0 +scorep2 = 0 +# 防重复加分标记 +hit_paddle1 = False +hit_paddle2 = False + #随机数生成 random_intX = random.randint(235, 1685) random_intY = random.randint(235, 845) + music.play('bgm') # 窗口参数 WIDTH = 1920 @@ -45,14 +53,18 @@ bottom = HEIGHT - half_h bg = Actor("bg") def draw(): + global scorep1, scorep2 screen.clear() bg.draw() paddle1.draw() paddle2.draw() ball.draw() - tbox.draw() + #分数 + screen.draw.text('Score_p1: ' + str(scorep1), (15,10), color=(255,255,255), fontsize=30) + screen.draw.text('Score_p2: ' + str(scorep2), (1750,10), color=(255,255,255), fontsize=30) + # 游戏结束提示 if game_state == "gameover": screen.draw.text(lose_text, center=(WIDTH//2, HEIGHT//2), fontsize=80, color="red") @@ -60,6 +72,13 @@ def draw(): def update(): global ball_speed_x, ball_speed_y, game_state, lose_text + global scorep1, scorep2, hit_paddle1, hit_paddle2 + global random_intX, random_intY + + # 每一帧重置碰撞标记,保证一次碰撞只加一次分 + hit_paddle1 = False + hit_paddle2 = False + if game_state != "playing": return @@ -83,13 +102,23 @@ def update(): ball_speed_y *= -1 sounds.bump.play() - # 球拍碰撞反弹 - if ball.colliderect(paddle1) or ball.colliderect(paddle2): + # 左球拍接住加分 + if ball.colliderect(paddle1) and not hit_paddle1: ball_speed_x *= -1 sounds.bump.play() + scorep1 += 1 + hit_paddle1 = True + + # 右球拍接住加分 + if ball.colliderect(paddle2) and not hit_paddle2: + ball_speed_x *= -1 + sounds.bump.play() + scorep2 += 1 + hit_paddle2 = True + #方块实现 if ball.colliderect(tbox): - sounds.bump.play() + sounds.box_co.play() # 判断撞方块左侧/右侧:翻转X速度 if ball.centerx < tbox.x: ball_speed_x = -abs(ball_speed_x) - 1 @@ -100,30 +129,33 @@ def update(): ball_speed_y = -abs(ball_speed_y) else: ball_speed_y = abs(ball_speed_y) - # 重新生成方块坐标(现在能修改全局变量) + # 重新生成方块坐标 random_intX = random.randint(235, 1685) random_intY = random.randint(235, 845) tbox.x = random_intX tbox.y = random_intY - - # 出左右边界直接失败 + # 出左右边界游戏结束,这里不再加分 if ball.left <= 0: game_state = "gameover" - lose_text = "player 1 win!" + lose_text = "player 2 win!" sounds.zhanbai.play() if ball.right >= WIDTH: game_state = "gameover" - lose_text = "player 2 win!" + lose_text = "player 1 win!" sounds.zhanbai.play() # 空格重新开局 def on_key_down(key): - global game_state, ball_speed_x, ball_speed_y + global game_state, ball_speed_x, ball_speed_y, scorep1, scorep2 if key == keys.SPACE and game_state == "gameover": game_state = "playing" ball.pos = (WIDTH//2, HEIGHT//2) ball_speed_x = 7 ball_speed_y = 7 + # 重启清空分数,不需要就注释掉下面两行 + scorep1 = 0 + scorep2 = 0 pgzrun.go() + diff --git a/sounds/box_co.wav b/sounds/box_co.wav new file mode 100644 index 0000000000000000000000000000000000000000..33ceac5c2b76089b1d5e8591136971ef10e16c7e GIT binary patch literal 25956 zcmeFYbx<8m6fZbj+}&LRLBhq|-QC^YgUiJUPH+h>fdIkXAwY0QAh-p03l4Yr-oD+f ztyf#MRr~LDRnK(y^mLzJpVQOl^qiKL;)Dg>f~&WdzO=?$0{$&>uyb%}$!l@EB^lnL z)<+KuS1M08YilbiS8r<%Dn=`7OKT@<4|6YjR~ITz*N-k%Oj>Hv;J3Ok|J4^)lK4N8 zlBz2IGbyR6to)YzuYGG5TR>b*UJ?L!{_Dfu+1%FpgWFpn&i|{ffKO^FvgjxzC~xng z%gagqNA~DjY)3+PyE-$tJ-*%GY{iwu0iZq!_1XNbPZW83Nl7(N4Os~)d1*-=Fh36u zD+k*f#d4p%X!_`--Vumw+*xDlNGx8|XF7!fG_=)7qgeXISf2s&2rL}2ACWOAI(Ycl zd2-rAVe=?*Ut+ck8QW~dV`B{Bw2k=AC|4_*gZ$4=PoMrgb?xWvKTr8hV?wZT7*h6% z9RPlfNFjkm$|O~}p`YCl5Wd_d92M5y_<$|^4*^$1JQ5ckOe`y;Q{YNy<|)= zGXRn;!7>3*@qqwI3fxIpDka!L_PO58N>jJUHaQreZ#;c6Q*n+HuPuFs#OLZ_bDMg5 zz^PusoRA6226=}jFEf`GS8g9xX$lPhNFHYUU-?9n_xE_%DL*LhlBck==Rrg`!^^6~5OyGBC`CjW;>22g0*i3X zb+9Cb*g0ERP5od#^!-g7qtIhFLIg9S`~jk_C}cSCQ6yY*YJnJRi^N5mDI~(|L^v9A zIj+x;QmVrkJaw8MqaLN8N(qM)V>#L@Ru4S>1S7G>j@akeE?IC|XoEWJZ_r1v z_OFyAvBQO)vtC@7#*mC+$61ml3Sme~amB3S!ACD3C^pd&G7HAAiC;1|ijS5y`=m$0 zFhXFttH-UA#BE8g$Lozx+Lv#BjzkBFgW#SZnM7a>IE5uA%jzlVNq(h2p>4wHK+;7H zj{pz6qe=a$+C=Y<^DyLVAyA*JCsWOEMomGTPjB)L1J^WFjt=AJ=N%OkYWidjc~p5v zxfMCqQq5A4IV}4;C5Gc<=b!64NDYu`s?3zuWXxpM&rd%GcUtiTe#C4mAs5qWl&0Y* za9fM+!j%90pj8QVfc*?8hR9Z_=ubZBe5fK0C5FTEAfYHrE>URnc1US z?0+~&vu(35vs|_H-rv3t#7`N+Nf$`hNe@onuhP=?)E1rht3uWKrj7Z{L?@_RM!Qk% zZzb|?f^YMcVkCx~SQIRr*QF0|(maW6Y3Dg9`9M+e5 z5(^$Wu*WQpS;`iM4G$+u-tbSP-X8*#G$lQ&Y^rTiY`*NdPr_gf*Kc0%FXbsrQBR>y z1+c=hin7)(IMmqG1lRB``!Dw_Tbz2F5}Y0{pMP}wBKC#l%Rd2UfxC~$9XuWC9g!U? zAE%E*epw#-9U}i5`-gG3HY@wj`KII_;nDfR`79+bI~Nj9GO-hw&+=j-+48_K%f4;) zB4X<+_PAX~%8*^jtbED4Hiolk+rQktgd#T8u4ER~T0ER)Xrp%BLtH>`35W<= zKTaLOiVTZ@3j7PAd&+xgHiUa+;oVESQpVY)*} zLK|TnVJYFV;mQ!X;S=CH5k8=a;7gz(qw7<8q`LMIUXeana<1C4pc$rig-!8b~(Bk23TkYVa;beJ|+XiW?Y76y^zL&nt#PPzVLq7eqGqgA){OPYJ zXx}M^GjAtHE5pmOc6YV7opA4PYCPXZNS|9jIgl?h3n#NdbT^zzLhS>Q>TZRLGCA&5 zL~f+2bWd?Yv3h-Ln}X2iy)QcHw|r}YL6VPlQK~W@hdGf|HJJTUh(EW}UMuTJEv#2h zFS#$V@~7pc<&|il+h;T}|6y-sY*n>kW==)l@!NAABTbDSyW63C@Vs8ZcZyV+EosuI zRl^`q`tX(6*O182w@t2F&fquahRy5I11)M8L11@somyL6<6@hy{^cf3uXHB?ZJZ{d z4;$E6qr=MA{$eg@+-|%f<3(*-Pec34!Ef~{Q6qe=tW1(QOqVOYGVSNMOYMz8yCuGP zx|R01L*~4pPRM)0bkl0L>aVr;buw*x+qx>I^MU{ToR^o^6y=RP%@XsKSgD&i@*_5TuLJg)On z^R2aKiD7x6cg-i@8Y7$>UvT|A?WC)j*;m)GTRP~U%iLMmS`vu`X-Dr~@LHR!kLr*7 zq=2#j#9Qg}V+Su+r`7Mhy$#6D8axRUasqC~;+fzaxlryDOWB(-I@6SEUFGq-vm`5Q^ul3e_&YSmUeP+{x z`k3b!$kF+)Y0zKMTXV7#vh%buvm8Y*z7$AWdBe#f5Q_BUR( zpA@I{o)<4rAL6EaYyB#(Joyt0Pv9=0FKN6 zKp+bM2;K5J)P>$2AiK%wdjbF|?tc*m$jKuD0A^}=DRC{|ywfi}tJcyfcfGhoVMElI zl5^DW4_Lym;qlbMiWzBQVq+N*q!#LA#EkHDOn*ybuW4g@%BYEp!~KSbjVUappFrEB z;p{^b++>&R4f&1!&g-K<&{TI)KuE##^=g2i*8JhGd1K=*<;0d*W?{%DSt1TF3|VG* zVD)5V1~;=}DqN+_J}GgAtiI4sVM^?wu(+F+Mm-f(lPbT$sN7+0HvgN=fUX);m7x`MuYp!HNCmCE5jp|`YF6H6w@xf z$JyxlHamD?bdTv5YB*SvMj@xAm%7Z2x z6T^a*e%)u)sf_%#r?5PPz}(LsL=bMsH6%fy((%gL4sW>as)-i?Jmw?()tK0#o#dY^ zgO=f{Qq#8P6r#7f+yn>%srZ9QmJ`{?F$klp5_a!y@ ziO2^RBR-SxTQdh*Wi@%1*ht$uQsZNvcQ5G_M@a`0C(?xcb0m&Ud~&KmH)zs2AMGNB z+kei7_)d)4$$;lZM{fHZA*YaDz&2DLk4biIq47YBP6u%vJOIg z($oHpI;YX(*>?ix6o}{S|h54n!hkn*0|dKXv({Gyygdwr;5;0r3M$%68bjWC{>GNp_Qo56A= zCIV~^Q)W{LXTw>pfGk!m86+FF3j~IJMI0oI*hAV1dEEybnUQ&Am2w$P(263uYjg?z}_ev5e5)Wh!0KpTqf)GO$1*m$VodGzm#6wxYgxx#@~UR+!gA&e>`3_JJjfuBPe1%67ZqHmWht8=*P| z5kmaB->v=Y(@crIwN+hC=zm5YtQkc+|Apet3-L=24FLu37BvdHdGIs-4ERV;oQ6n) z8&U!E!Z)f<*?=qQRZpFdU~7n!BuNT5Ltp$u3b-y5Wwdk~*`15xR*15-JRW|-h@hSz z7~xC&?)yeG=PMRQh_k3sE$VC&0i+3Na71MzlNB9+m522A z9)EiB^8$AY-)H&Z3_QBWvI%%L&|d?|f4D;g-JB84mSzs|6LCTs32w=T>WT~-YrC1< zm#sp1^+UWVv^sli#v`nkBlPs=;(ateC*%(Fhlb+Yo#lz*7XCmkP(huV znB!r#$=tWrZxhSB4mMMe?ZfIQNu>VGNFf{VP`{1cCwOD$3FF2^O|P#4M%ACu)9TWM z;HIDiQE*h=i_vc|^fiV`rqoXzQB3*3LQe?a>78K@%=0HDB-0Ku;#m=Hq9)#thYqsO zgQE!@saKTmm=JDFF8%v*141C}xb6=svN|^|dgDcZMK-C}<5&Y7dKC*Wl2W;Y`fLj) z#EDQpULY0S%CI7DG>26uoc#X95aA+WaItHmaGP&Q>9{P=LS}Y;F}Vgs0i2m zfg)!EQH2dK!`rpv@^xbS+R2t9mwhuNZpG!zs&&)y@trCr&K?3k8K1_dAUxvC)wI4B zH2-6->HE)}e>jf2Fk2w4rAo<`xy9ID}z%^XZSb|@liyYvjHm|e$-GJeR9Dz)c` z^&1k!Ggr5Lm-$eLf3{^|75-cEvX(&Q#>C#9b0MWPL#VR#aQsVaSdxJ;$sJWF<^}%_ z%R5rG;d;B7(3j+O$wBRIu3Xp;;0q%&A1ij(Q2mARYtBuAFGSdW$;N3*{yXwP9pL5awtBKR#bGVJEzYm0HNhgTc|q+Q^SE zE9@}w{~Rq1^fjWE#?Xh5rg<42=UWIJVK-9~?=6u9fFdj1X^Aw;Ao@#VxoP+BI3e%y z;geKwm*VV1t!v-bW&BnH$JLS2@^{6j;L)F>XMHGWqa3N{=phJyxrVeF%=xz`4YW2( zO1}B*{|mR-n^hWwB~r4VcE&SMOYSc@k7dEH-!j>BRuCb)g-!IS6G6ETcQmU~;X2em z62)Onv8fa4liQiG@6=D2aa;hLZ>cJZ3Zy(h4J98Cj>8|49L$Q`L}hwqk0w$rgz$M% z$%;}jvE{2@#K%o^yJ-`MFMI^u>=niH70>%3i$=pU-S{u&J@OJIayW@jHoxt5k@>pz zfExa!c^h_o-D{JKPoSa|_l7^j->)n)l@yAdFkVzN4k3J^u83dcSWN=UZj0b9OgoVs ziPxb$L?}1R8L%+FJJh@8fL%Ti&zJp}G=gOcdbNvl6MACV)WirLDW=4!Ah1fk;!dAt zk7Y%|`QgZgE-{hyfz`OvPEuS&V}KGtBunhvw~0JD>KwEYTh4dH&sKEK$2z0rIkJyW zCsNDZmhVSb!MvxF+&vqRG!1s^?NB4RcS$50u^)VC%gmNqao?)DBcGb?P;_GOe(Uz z!yq;vwO7G9rOe8UqNQ@M1#g|d*R)m`S&K8q;B)r(G*n3hcw(Xc#IKoCw7R8-e$H9Z zTij(ex(j_(B zA4#FVNafPwjU4M2Kqi$#L4q7}XG0S?&GP?YXu?5U*IGY5!0d z#cxe`xr1chQH;40SQnjFVK!;F6E*bxlNNRm9heL7ij+aoU`&)GHX_pxAD8~Nb$ZY} zB40lwvt0b>E)sP;B8EXeE3E%_|K9)Hb!U`YP86kXY5R|Qn_!uc?p|s~ggUK-mh*lz_y=X= zb{E{l+$i{P{UFoA;SO$C;B4G4y@2*@P9bcH@2JJnr;i3CkBf&VIx9C2ykwgsy=0aC z*=mnmlowc-n2cb!ruvnVpw5#=DEalS3z49Q(4E{(60KV-IN=Hb)6n>G(&R>alz&9_ zpNK1H3c*spV8K4zjk3Y)9}%sOJexR4+qXgDB*{2>yJD*AS;J>k+=KZf4E)8+#tMv# z&MOo8Ur9KdY;y#m1P^*bs`SJfnb{#dcf4h@Lqp4&$i3)o+@BYC`dXSpzi%R@G(mU} zFK&AVA1XVBo*$aMZnfmIw!kGF?Zyk&j8%vYy9hO(!i0>Gp?;v6?zD>lVv`jXyBaZ; zh*aNpZB0!eAw$Q{F*ehogp|NnW3^~jYiUThG!b0al*2g6nf~tnqu#B?x-Ii;CdQE* zDtc5w#>%Mj`bP7#0#9MFIQ4ySP8XW@3h7DfLvyc41Bs1 z`CGMt4;Vl5HtjztW-^=7QWOOxen?868viONkpWE0db{k+`e;7kr1){kk(Y|fBb!Q$ z;v?)f_@Xr|jb&^$@YR!{!5VDQbtG&zB5RD3Eq&gAIk7-LEUok_u71h^D6Z?EBs@#!b_tCw9FdH)y9t08f+mf zfvr-8^(8pLuE@Tsr&-BH133_6V@6%Ca#MaudlqP z@PN75o*)q$=9IXq<2cBAxihh+FhssZr$8Bz&H4CE0 zL+7o!JtmLh*EM7!xKn|>PL!tO)f0}dN*X3nsX2`UHva#V1HXy)C;lvRYW_3pBhC78 zI)#mb38h&3U_}C1i(* z*v*=2xY$b$2vZ*-X5_UY20hzuDvjfoV_!p4M-AT|{G=0EX|dRr`-1INNK z@IM(Oj^d8DBj1UnZTKZK1QG=CHh-um!_nlGoC3=&4h%g0V%5ZP!edEEG8bdclWJ8D z(MVpTy9P(=c$Rw5?$Jsr;o!3b(;zzJrG&8z6&oJ+ zo`1rOlHc!|zuk72@u)s}|Eo5$v^Wc46X0QL{+<8`(b!&xl2PEfPTuS5YhobBj17!}e_&((>J#!t7;i!$6zgKsJhrcJ1pp_XUw^sZod8>&MkB4?0OLY`)q@wqF7g@a2>-YW-b z{3*^vuccntYDEK48##Z=KN~CS{)EwgnBWGwQl;wO{7S!>!hS!AyNvXp?bK_X9b|fV zQ;c#^865wKH?6j~%a2;BvC8w=$Uv^T@X&XR$lj9gXXN`TAowY0cr9h7jVZC6y63LC z8nsd?0hgS~wyWsAo*zy~c3vN@A)<>+f5I6Q*K(;pws*FGbid75-zz#2dx)+(Cvqjh zs35w4FA&U>zX!DNd{P^5f{g}jfj?$#g!dwDLKjkjW7s=ev3Xw^ZT)bfFo9lJmyrwe zN1tzAn=y6xYfyMa=J2pI3ZH#9oOKHWxIO*0Ga)=2!>|XIZQ~~tH}=S1l;lP{S{4fV+y+Bg?yHK-4oI>-4_SH#nf9Q^i z&ALkBUD`-7xyq(_$Zvgb+puOupkU*Xz-vB-U!ho%Z?_4f^MoV;=Q933IP1vvGH2wP z4P?KRhEFVbr&Lj4(%@Sf#;vMS-*|s@Blm~XPyHyu@r{CK;b%lxpkk;gjBZ#vP8*6k z;8V+yara8VByU6W$4M0bQ20)Ab+||m^PVcJ6`+*yPwVy3?w?zVH=L%oYk2qKqi|0_ zosAm+HHEznwVYLvRIe@@+BQWo0=i%q*W|v10B#%?np(SVeedO%+~_r0pcrH@PO({P z6}bBg`RIXU#2!nWj)&{>ReGd2BhDSXpZ6M!wb>vwUwB2?G;z28bsMPA9VP&O^dXlivhhTz6R)tXWS98LU@(f43Xrx+a}P|M$*(p+W6M+=%`c&`uZE8Kw9(n z1?f;tH+&Q?b$&G#S-jFVMYy`^NOdd@4qkSl{HxR7Wiutt6y|vo-_w*J7+cUCv1Qcp z_leEj9yH6IdDP;9e!TT2;@?!7M4oq7xgL+^B0gPU1hilMLJLIRKw~=Ch9_#?|5=A< z!UE05Yyus@Q?NWIWONX1hk5q==XxBk%>|19x$LV*5VNu2s|2xJ{vpw|gylVu^={tk z{ZF34prTM+iwR*Jzww)zg26i*zgrFCgZ*#4tuWmhM)f^ty_miPVIKBlb4dOH(PJ8@V4i~u1AtJl4!K58?OFtY5O z;zm)9J5Rij>hQT+lgL1?Xc-xf)mIn$)sQlbV>zG?56b)tVd7X35o#cdVWghvf${Y!Od!tco; zAAAo~M=r3fc=z4Tq)&fVVH@0wV!XXzn&JmzNK8I2U$379cRjiK4SrvhhBUu2^U7qC zXp_HB0<)VIqKMS)K@HTwmaM$F783NrR|RR# z0<2dg*nXB{crcD?cqPp{R=Ny2*EGFtd+@()FaD-t56JtY?}3im81f72GqVelO7ohAgCQ!@4p27VE!L=V9Qr77L+7y zUF{)17LI~6Y2-?)qq0=`YL4P$&I}MPRAY!LcYuCh;VaLQdAF}K5L?ymNF?;61o2@b zdP>n)sm;~zH5E~{Qgv>;XQy)6Xsl;V)O66Ay1MwqvG83SPSD@IM$cZdS`6VVL}!~4 zHZb?-veLe$KTRwcK4stm>ro~@JmpM)cRKLU=z*mBIqPiZkLMEOa!2&2i55dJCWi-I z6}sRrS0IR>p)v?L?VJ5kpj`$tN`O` zR9^GHuiTkid^={nPDFoHDp=uR^zU!M^ezYuLe``YOV*e1lNxvSL@H8=$OiFb{=6&M zKcrdt*!f=f`4&-8ZNljK zT@CgRU-&9QrdAdV|J|>c>PFP+iMiqH074_FPbst9qNFIO3oXcJMP>98Y2)WzIjpLD zfn9VNuIby-@6B|Jg#0!1#I;L_a0*E@`89}XQX?E~Rf6iM!$y9~T=fUSFQ+lKLl)B@ z4uS^^_HU*J|6{VeaOvs}giqmLgU5ZVo+LJv6YrN_u3mN2J*|wfaKe#uRYkE52uMhgLXFb0L;e(@{oeCf)p-H7e+%sb0 z#gun{`zpvEFl2NxYs=`rHs~1q^noehockw=dyjU}W5!g2KjZt}X6~CV#yY2}d#V;q zSQvS#;;XDLZ8PTx0$*hRuMay*C|^iXlTqWG76IZJUa8|XOD+y3x%zpxCXELF8@J73fk>GA&}x+R zjy(%B!y^;^gC&UX7|%c3bU5wD$z0w#VN~199*6JaomlGdk)=<-h$*y zG9_C!v+>QZ7ow#n%fa=&aood1dI8;J>IsjX!UIYHoSG;W7op4x!9_yGEze^bIE`vL zRc_3x2jw@%pd#Hnt7h%3xzT*F2aQ6SsXiay_UL`S$^|5RxMa2`wH-P!!bB+-?=P-# z)p!Rqj&_xZ$fpZy-^Y4?uL*wFJP=npexsV?dgj`c9{uM+VnZWx z2Q3akH~dnuo2A@0ggJ+LQ-JbJJa{2{*)) zX5Tyr(5HGd9%XlT&~w;{bwW3lGPWhuRhO~%Xx<1P5?;ehhN<#rQc7BNkvk3`Y4}u; zMH7gIllZG2Z$#`DcBX9+w@PqAujZ<3hPxcscU_t>;~~^g*tyagrmfalm3!U^7?Iq` zej%E8f3&bN-`B9F{MwgUs_vhHSONDl6892iL%fKboLkltVr&dG7POzI(=NJXk7vq9qfBD; z>RyZ1W80Zt(lusJrhc6m-kMnLQRJhoy6btP?rZ!W@S+O#09&ggjns!m!O+&q`Y2Uu zT|-s*QYJYcmky}ZU4~Zs*(bE^Y3bfg4>KEd>l+0}{?R2!p6fR<6>P2gN95WcXB=PP zPjEDIGSUPYvGW7aEjJ1ua4aZR>KHiA^n1a%*oD%#%pJ+iM&>@XnC^U!4AqZfYajL! z749b;65C{QnGN@GajT1^J+aF&@$TB6` z^_pCtY}vC$L^r*z@@9<;SJ3hEblIff0|Kd`I13!89?tq zc=IJ%gy0&_W!YiX=pO0uFb60Q(~;3iw%z0AnBah@r27kP-($X=ScH$a!3GgNy2cEGPPNPL<*+XhmH?%DeAO> z%Yu$cj<)?+0Pk}@_d_cd9}4k|4uQx*8{GGU)7@2sC#y|by)TF`s@AGkNFF1xtmZ=$ z|8Oo((;G}+FVXT<%_&B9w-UDB>qVVl&983$3ia&&oo65H5z0(|zk8uTDT^LFr|h&}71#CS-_r@W`HJ_l?N+^)lL4$Qew; z4e!^0b2bnak;iMZhy+&sKxHne4+O_$c?~`kd$cRbwr~c<i~fbj--LJpOW^ykjw!Gqx}H29ra z(<%P|t54HUSh&?W&B(!Fc?sp@PjFFp)UEV}x6e{5JNjD&JnQIb49yL{*PJbu>LKgY zPU#KJHv(0<{XM*^b+iovEm^PXLq%?;=jZ07gocS(xJlw;0nR&gKN9M-hO5YAhQ+SY zpU3FE;dAyUBby#8m~OU(j%YuWdip-63Qa?omKQb)if%;y zlGY5yt(stbJ%l~M1BC|9r1Q?VkAvg8PT5Wdot_HAugTwT5X$i4PWt;>ZjVOW+hOc3 z3eC?--UV!bn^7861wODpeom(GmYqUt!}B%CG5nUXFSO%3U*>?K-}z78ic&Ek^B#f}$rT-fyK^hvhvtN>!aXAm{!LNVf?=PQ z8O9FjbA!v$$C#qNr@!!ec09R-dyP>-aC96q7~!K(vl-+-sY$Gnt&6eHegAibkGrr` zxv8v3U;k8WReNHr-JtwDsFRY9q%z`*FyHy=g(Uo839BMAOV=6sF8uT6g_zlP}49&!BW?W?w z=N^0%o=g$o%8SVK%*~sLrCrtZqpAWPQA&#`rp;hVqz^o1Y+}NEj$@Kk92?I%IigIb`_nZCC7bjfBy-sH~9DitpUC1Orc!6wmMr z9Dmt0&St(?z9W_6suAKH`b*=D#Rz1<62jc`aT0Op7i7dy2p8My1u(&mJ1wi@5L3-# zYsWVsp>ccPpu$q>vxo-9O*(t&K?Se5h~qUaUO4?$?8Tk4yd{K~%%$qDaO4$JRW^6m zXRwe=p{LoU`zNDhMlJ?~wQKpzXD{FR@r0$lH`wd%3}oay8t&OCWec-@HV0f9Vhu43 zBl32FQRYgz5|{glyv6-X%c+k?9vw$1z{Ahj`b-ysn*uv@nPvDO#n4t7;h%?np3g#x zS-+lEcxk3ZMm;IM(-XZ&nIrS0nnSX78G;y5EQ}Q3HK_L%EOu-MID8`GgcS@uI55Gx zzZYs{Z3QC@Pmca}VtXE2?U)_$rh0QsIK<>W{v3tD40^_QFJ*yi#PaLCgXkkXGtYg? zle7P+#7w)|ZJdIRU;3}?OqxY)z}RIa=I4M$Z)vtJCJs;ZX0!<(FYRBvmCG-kmbq=r zlBvev`YzW)ksY>yB-(u@N?4(!z3`n$|B&1Hu{A%re+bbL(N1(e#?c^7q8aASZ5J*z z{?QJ=R?)7QS^tZ;!)KF$h{!mEp{}K#(Qkbk>B3I6pVLSC(cWBkzMdo0%6pD5Ds^ba z(ukbKo;Ve=4>meplQ?R0<67|%5>{%#I&IKuG8~Z~80?~=vkWxe7*C33enuR_>)lzE zZ$moN-lK)xxC8Z4yAyaxwc+SXJ+SH)W5$B%p$hwLDW?c)%=vuN z0k23rmuhco{h-1>>)#Wp<-@XPxa$SWVRNr*MRVRhx_QTczt&=%;vsJ}0z2BaM`MMd zX!u2azz*T?kiH%g7KS$(2npp#i_x_)L3CfCQ6y?22&RmLvi@KxQ`LNSKDx}9_Bhgb zzDP^;kX|PMBR5SN+|tIPwR-IYbRqJu?>lyH3MAz5KLr`}z%Z?kqH z@XJ1+48d1_XxC*o_>iIDNtUoev*Q4HZ*pR(-k*bJ6rgSrc_q)_%+cA;o3DaR(OS*sIO#Qfx!!n%%Nlhkp5SHGQlJgDJ`&cs~@DgYh`Q87bao|WDt(UHE!AHa4 zZ!P?Eeq{-$nrXq}KPpv>@+dB(gp#1&J3ITElgOFC+3u`uVIO>#6hMa+1A#>(zyw)*=W!1Yr+g4=`D+Jb z>E8Mp)CLRU%;L=eE1+E>EhSIb@|l|hGTg~vU=!6$5N-S{oDdzWy2q4PCC9$!XJPm| zQ;9INBgvYxu=Qb=FcLeKwHa|aZaJ#3UmEz-%G^{&9|~xrW5fUe2`K_1MTdh7K;(qa zb9U%nS)orFLnsh*>g<#@d;r^#i?x&84M-iM7VRMfWT@cYJ(K+Ka5q=cL^8aiqxJCO zVw9rF6QOzik-yj_76XGIkpw-xGB1oHj2-B^_y&c(#*0!DOkn+mF^lnoLZMGYDt9Ic>Y-Tc7V?TBe4}a zX<6P1z0v0K!+=8XxY0=xQz*2c&}T{&zvA~XgJE5&r zSOZt>?H-8y0J^0Oqg ztvm+-76#I1CJH@}CMtLS>3UZ^VVf?qBt@RY`IvSeA*qGWAV&*iM#u;{Gh1H&^heC~tF2h}-#!{wC{4 z@H8`w_^8swGfZII0dW@3;K^thHB6F_zP2rxHYk)qY!I%o8{<_X-jd=SKjLsdk~mak zvU?mgCZ`NB(jw^Ie82wA&9{L;1E23 z3SVUT0D{28<2tv3KTEs;1^`f1hMGJm27Sj!n2U~FtVczAYXB*|_kFtPE|E2KD0xf= z`Z%w*0nJutw1qBQs3b~mqx`Po<|?yKI3`xUAu&%eoOpT?$=P) zf0@u@(fu)Oa4?6wOwe>eKL0hv5#yE2sbrKa@Ot+izf`1ay`EcF?7cxOOb+S2e$EHImk5;u&R9mDh#+>93k zPqm{!5CW|qMu)f16D5T!fWGpO7?QS!>5IO}d|xnqDwm5=XbuGU@L6UQ)`!uooWwke zaqCn(%C`z4C)vs#Wy}_Y_d?}xVOcG&6#rQr29zXS(V16b@vErmcp)a3C zMme|TNh}Web%>^L z5Nh{uDF#k{PSZdxD$S8bK3+F3J|uOtjiaWtJ?a}q+2>zrp=etmfbVaZrvehhU|Ay_YW7*KMF9=bvV&Km!R1}}TSX~4~#gPh>C#Sudo!Zsy z0T3}#9Augcpbd3(IfHDF`mkgYHAZ1FL0RNKKv)2VUv`2X0R-Egi`j?54OIREhM5hK zT^@SxImUz&8h|SbO#+Wbw1q*TKP6?joDnkRwTu6Np}T|SI~@t=1m^<$GGNFadFdQj zuB#XNIv(_-W`MBw17~(ZNH!Y@!ax3ZrVz<#hN{g04h8}N0AYvngI=s<=`df%AB{XU zQ=&8bkBLQtJ?AAk9?*kmrqYlX#3acyALtW<`qc5A-ze0f1HB$_~xaeK*3QJmfz>hye1yq$j=P&cWpi1(jD=6~!tUaR^ z5H)%ux{P(zPf(sJh)O+A8Z{vyVM1mkpda|hR<7&SXwPzbcx zuArEjCgf4D_l;1f@$@Pn3n2o|q0fWs6cnP@lpw0N!~bv~m^bc-vO)jsiQXudZCvB< z=}Yl_3faEkGIQ}oge*(_2M8B}VQn0uM+70JOtktdKm}kzci`j($?&nHV0shS$^=9Q zE2yJN4l z;+h($|K6k@GKrtjTH7X2aDW+INkp2Lyv_G23S zpDH>;j0y|$erh9t5ECZSp?0tX^ycFf8&GI8yC-rOZSqhiW9H<SS7bWx}NT`Nh1O!A4y(&S9peUhtq$or{q{&AW0Vyg<2_Q`c zq$$#i(z^&MdCB+Yy+7}rxijz0oxA=xlbJK;?ETv-d!4=3+Gm|us1r0%&hgskx_g)4 z3Oqk1{TwgW@)CGpOjJ&?Ect}0y?e#a+0Qa~3?TUw0Q>-Mw*Y_|)7fvFOpOcjgRELo&24J&I}9Kk7&exDxkAl7 z*aUGlIX4C3f=f8hD{g}jLxRF}IvlHQh-P76D6615Duzbm{QD_HG%26!J#c=COn*`y z0n9;6&78jg0gO6LZ*5cY^{vVK!wk(ao^+^(H#Hy+_U`ix;#wj%{y6BSm_TiIhka^X zb^_&e-E(AoJ{zwWqg+(X&Eeiho~ilI>H#p$gz=FeLb21N06&!88_08%3(1bs3anaL+~isqj-VnG;o z83(gYA3yd@PSUho3eZMGx>d;wJL$0fx}<~G!?B9 zAWT-tmz3M=^16kb7yQg>HOBD}AyMqe08# zY9#cZ*t*mzWT>RPJe&K?_5_!+Axbs$RXBvUBS4$^J^+1nj(S{-8|sVAzzZisu=3Md z8jxA@rC0&`C8_!pYBDt3A-u<^Z*pa{Ds=1a{sMJ6CSqoL`u8#v1mKY@t$+70&PYKC zvCIPD+i?GWEE`jFn?vZI3$+3Y`ZOsXaSRQD12{@avh9#?2(t!_mxRl25x1#+L_pIH z8W#}`$_2!Ja=LCc~_7&1Gn4%pGsVu^uk&s%JkVvi4 z_@ex02@;FG?h;|%eW6NbOWW@bNqMj$7=YM3jQXA*xSJ4ATkT^>EDRux2!gOQMty(`Vo4}sT7?e+Kd-FNOLH__seA#tN@Z^PBocC+ zSo9(PbZ=JN1_%}o*h>!BR`wQ8d&#~(dQ`~(AADw z9ZMv)SmbeUv|@%CK=uHea;dX?Td3J!+6BeXjR5i>5nDc&;$J%VXvr8SI@!Y&jI`; z1dt;DRGtIKP=;**fx`fz>4eLkaR0vlTm3r&q1|aqDbHz%?$ZF>iNbo19`Tdrqn?L_ zfw5>-29P_zy%rPP_zFN9NR(^vn}HzA;jc&ka6!ogRuH-E7FX<*E^uT<{Zc3dnga}A zks=%rbpd>*XdWS#87&w_js}PW5<%?&$J3P)LZ|!LI7;}UwY&05`cj0Phq82=X@4ct zWEAWThR+Z|*2JU$`{Xu(2s1NvwBEZe?v#B+%Iic(tv zeDEkXUIKQh=#yvjfa`<(P}&CVGHoz~3%EV$K(W*7>A<-hy>*qF%>r}hk&w?7KDID` zWFUklLA3e|8Q6x+!=9qVvwA<>%?LxDuBmx((rx^g&s~4rBHj2*P(+cN4hTW}Yd{~j z*m44hJY${|IZ$$SCX?wP!(1hI(AQ4Qu}g>~NYUeo=i-+5DV2l|53I`bO2E=>XOO`; zsgt0v$M?iz$zWB>0pt@ZMMOj6=39wZH@|)X`YY_>lwlAZ?01`85rI0*ny^ODO%J2E z&ns=QCu_xCJ+TtHR+XY4G8Q{jKsB?3ceaPUqDU{_QZ0!~pH8ajym;!Ln5W}03?Soh zSl?sm>JspLC<{T9+fn%j+FOsz6H`5T{(aDf zl1B0VZ**v=bR^>P#@)&NRh3u_stK7j1h9bjcwuH$pFfiGIZ&GJLV%f! zRL-5sB#BvHyA|A`*LbAMmn_n<5NpnBh>2xSJcNo@Cbadg_&~nmzYzDd{)APo+;DYP zj?OHCTg=q60kJ#_+e@j{3EjS$seavg+1aJpf*qhVY{A0mc;{BqRsn2;GR*+G3b5Ju zx%=;tW$kNa&Tz_VDXF=?*TO8yGf&4@x6ygwW~XU&})7#z&$-}c*+4@qDE=>agKapR_T z-~=Ypv9-z@_&xg=bFPd8YKbMz^1E_~tKK-b;_5M5?*L}GNOCe2EhGe8UyvCP!s%{No0K`r%w z!wEZ2L(9P08kaQ1;OOTeA!t`+do|A|%i-E!WNJzBstMpt%0VqMfUeNzPyj~S*~J{m zDXhPSO(|ENu$rj_dSRF-R=%#J_JR+{gLSE$eT_Kindb(3ne<9x854Ciz+=nI-8T+8 zOx2CoIH_U31pV{0U=a_TIqfy?$s6452yXkflB@gmx|QYFu@bg}(nXtj6&KAoqnzYp zlJ|5hg2HH!XaNuaA_Hu6pGHh1g;n%NV(ivw0jT#rZz}i6XJZ2xuZ|Z#%z#EE&QF}n z$ToIw7rqeRb61)t*Vi`?>Ta9A4Zs`?02qQcGcvgN-cPB*1u zcZcKp@Iicc)~##I!en}^2GE8i9o}P^hKzl+6x@U{4NMB$UG5ES)jR24zRbG&bnlzW zQRdPhg`{pb^rh4L{6N{1MaP4nC$2SzV>zMX&u3ynX@76NeNa#*w zHV=yT6@O>nObd9HLE9;f5=r(udO812n?H5HZNeeuZgO4bzYD6d1<$(&9W?lb4?USb z1WUEo1TqagtpeRM13mjelh_N)FwXY|l?{fg9TIjphKVL{E5rg$@S< zKM*zJ@F42(F?bc|pYaS&WBOy=21v>tv6ij!e#8zM8;I-B9(I0FPO_nN& zV>bD=Z{_TGmS>QOwOBgj5kG(EIBmHA1%Qx(6cAjd@Dkr+o$%lT1amBcFO}`dctpW= zqVmlwF4h4yTJTuUlL1aL!Q*@+IArQAdI$`+0yCynZLSOoy%CJ{c*_PU8 zsf}@t5>8asxiSF+5BJ+e)VFlOXV;fKe=V85ItD1U0K`1*MU`?Pk45$3=N)|k(V~tR zj8=+?(-Qpaxj?N*Ogkr1%jc!>pD4F4UJZ`(JL4w{-#?(;fAv+V6u1QtE#&peG`C%k zP@VQ4?>l$074zUpCcZen@$Dd|eOC(|O z&Kvq&FJA5|3P;n^2oq z1v(ByN0X*CS-}(RZ${EKhC*VJ7rZ{YO%BWW73uKchKdRwHSMncJ-62UHe!9Pu>OQ% z7js7^*OdT`Tl8q|Ii(wQoh^D!S`o<6ne>DQ2!vn&D3L4NKmPN(octx2Az6xbs!-L>@@Y!U@&al(GR$lhlj&Y9mjhDGD;m~+A6(1#mdf$L zIzUgWR|8kwsMDz}cpmo@RuV2mOZojgjW*f~O#PN70oYj&X0OmwrDHF$t;DvNd7L)c z+k?-t6?SDp9@?k&;F_>P8TZu_uRzs&%T~AM-p6;KlhsdMx=zjAosiz3?RPp2e%2l% zYEYS|>@2N2G@Tnc0YH75(FQh|I3w_EnfXc~iI+f~`n{6|O*(-ICiIa>x6&4Ak z$CjwO-1ogM8u5FYh<8V!ESM#sL&l`)JQl~4tYd#X6N*HWj3Iz8mWmx@B`wgb7p<%Vu|KA)1L6A`Q0r2H2-Tw zMyRNo`B=4oaeP8=6>VxIlx`6A3c7NnDb3r)SirH9I9^k;bAeS7XfkgUy7}yhQ=)OYQtYOpzM}yuH(eun*5% z%bi*CN%8RAIo9jOMswThGQQF1K|q+9SB+G0O4OUV&$m`u63xlZo@xY6XZrgjs9~5! ztM3t_`dMwlRXfLqB!UzFNoQ#29hv*al}k2v$e@$S1?=@W0BCJd_>e@!RIr)7E0@F# zl{_?v2KgGU|BA(~C?YB0?-taP-&4nUW7i}yT|d8OPhP+8b#O!*DHe?0^v-U6vvoi& zL=8Y3I`o`l`L5cZtBbjh-Z4rfY1d8ow-58t^r9c{EajHJ5SNOUT4VFHw5hpvp){=L zz~^w72xNEx#pV*ph_^dCBLOA{Si#n^;2SK($O2HEFd@o?}GcCI*s<`m?I zsZ7(SczVeSg>nKyIHHy0z0sYrCE3NV;+@vBpTe`>6t%0|!s)miduN()=vKpda4Fbh z;O6MQ^!aa&Uf#hq#q%&8!-)y@Qm+(<0Q$UK7*^Zsd9D0=bb3mcjFTJ`tzAZz3;#Os zA>=}zzM;H7G#%bf96BzR-j^X}AAEcK(aPG4M~vIMlD{9Nf7`ioPSzikVH!B`~>mcKDf{Zrpr#<8IZ{yEFxxaVxv+ z4^|%(NxV37F8xw(tGt&Uyfea~)%!@0k~=`1+nre0{pP_t*A_c9*3{d*I^H_8tY~y* zdgF!qb$X?qr(}Qy;S?vCN4QSNT$sCj<4-Yvz*f=+6ZS|98~_O$_o+T(|EBB8fmQ189xRZvPBpdLul}=b`Y@ny{Jiy@>~3r_LNQ$q_m?E?2XJ_ftZT>sYTl9Fetw0cU`f76O60{UX`^b z{o_Cx)GJXtf%`Ydx(SA>l?$7C2zRHT7Pr1p_5ybm=NkFe4P6~R9}Bk&`LpodLZIQv zpJ%dV+XTtecaFAuB`$y0j|%x368^OLcXn3NB`@?-x)J{?xAXkByfXr)exG`WeZ|5jwAwr+c4iB;L~tyeoMb|Vc5 zZBKc{#Wyz1=#u}62}+A%Qk`HTi9cromw5nyrr*_v4E*usa_H@!*jXD+{(0&!0Gj4uTVk`QQ?)CV-t^&+*}9VX*P zl`kq=&-OXw0bA!gY{?^$RlCuz?-KGuH)tCY&BZuQ1)lp{g6fZUB>5naA|dK4#5WD` z+*=%R9#OnTdYx7Dx(dS1P0q3_pUhqFIV1x*PLH%=7tmr}Yuis7Xh+SpzxRBt^V(1> z_WgOn44@@|ck@6m_#FUJO!nN5-h?3k82Aw$B!=+d#;|ZM>Cf`X8g)q_>9J2x76H`i zXWgbz3D+vJAKK{|onKHezk@G0sIq-HF5uTGH6j_M`2N%j@%Gd!DM40RwZQ|&Ooi%y za}?fgldAH3nP?n9g6m;$V_FgTH)PQk5Q}zu>BL2>nay(KQjLBt-atef&wt7~K`u?0 zYAm6eQ2mST(?3xZ$ACZi6U5Vr=pgfnfV1#R0cA%m6WP^9#0E62+J1?DG&iM_^4{?~ zM_VNWs1HJz_k|lzw}8+OgqRur4<({&|`G#&gb#-|r1!ONGaQ9j)tkQ3}rnKfqR=*8YRL-DLntgmWixnPP zEO$z}01%*6tdI{i>z8~Pj=m?%&j%^U7dk3|1dUJcA>coE9u-miZ^U%-EJn$*f;)4w zN|qPjEgD>erPnVL1XXU6sd-`MAKlAOHh~_o35~3M?pePnb;d9gQhDdt?w5(s;OL^vBC2XO|CPh?YBXcvp3I)kI&pG&O`># zD#TDY1|jX<(n>(uQch;ZyGu;YsD^ zmAd;N6XP(V!g1+w?vlxy+h3b$w5p@#W}lj>@n=8ji=U@*qqOTs@pq5Q7s=LeGk`WA zM)DB|(=9e6fjyqD%XTFjW++6QhM67H&Nm({c2$N;mLXTMJud;lZsZ zPmlqzIchroZHw$}+NQYLgy@LYe8Nl0=8p`;;O8z=#Z!y~0bTx0@GyS#IkcA{5j?+; ze}U6Ufh{d<1VAs0($Yl_a+?&#K7aL9_llK7!ACoyl&oHv(!kJtk?lNIE#dWrGBcyX z9B%*^5c~FI-PI=c)1@>T-3_KEKc{H)*fBldb~Hje=)*}^Q~CbY5ZNFn<~Re$hhtX% zuP_ndpu(+WwE4!)&4FKX`ndtEO5h9>B0F)|#6k8A-x=G|uC&Lx*-LP9>M5MNRz$*J zH}#Ie>zsYkV1WEV^P0o0f;SrUrs&c>jVGfjac~Y`s!x*(pCm*cheKbe_OY0OjQ}Kc zIxG*|?`w8`4eTkSANb+Qo@|foYBk@jqw0aw;ylqNpkbREmg0NREa9prOM|CnnHu5s)>!YHE_1U)G5{06i_ zD+z^fF-IN4%A(*c7#MKB3us}f2-fxJispvdAK5tV-|fBnaKTe}LE}nj{;1&lpy_>~ zz_eSdDsGhhM!)7?PH*@3KKebS>HX;0z5bcL4+E)r@iH_H0zkr}UdWVaJ7tW^$dw}H znDVaSgjwalNG_ZhfFwbLv$UHBV~1`l@kj~uG{@XMe2@OxknI1c?#iBI;6GC~w_mJY z6TJNJXQ|lt?YEBU?DZ=vduz1?earu9D8jHij!zn8(QW*|Def;S=xQi^Y_%+H;TSj- zWiD!5JO_o3ZzKsx8gmDJe52C2LCF&&l?qR))llpmWvn{2Wz8{G$Xa znA#=kIUW{K^2X%mjdDkuW6DvMy7?5R06D7=O9%^O}&zFmL8DzYaV zX5u0;Pubb+d|g3tcYEE=`vNZ40qJ}3p&wmpcWkVEgL{5WeBS36X?-rM`Y2stVj#{- zuDVwuURSU`Q5pR>C#Lk{{dXC4q4b7Vlu>91bWwiVjgN`Gspw2pB_IxQzyPuVkYGJ| zafjh8vm#XrQK&C{DqQkd)D$A^sUJTsu?3nFdHGENS zA`)+llIYr(+bb_*04;&xdmh53fPI`ir(3`TmWZLM(jGxkXX@P}lge>x`T8+==w+^K z`|x&nwDV-IL7sL?G&A?}te59}MSO{aGLlk*tnnT010Oe+%al%pa@jg+R$sA*eiAaF zKlItEX&kq3``zHrcP4>ZF}G=pPP;m}VxBq%nGce0elNR)Bu_JeLH7*Kuh3|{SYrdC z#{|{g;LV?&4{|bi)@j#*`8I?q2}MdHL-#dF;$cCU=%hO%MQOH`!XqjdXFAnb9*bW$ zXMO0Lc;Z;47(H@o*1j4Juf8nh< z?<1`1`f+AM_%`Ho2pALzH-Xjif%4HJP8XQ@$jXbUmoLTtD2fqpe?sVb`yGiOXqo>W z-T9!G)%@G2msyt{kg#yKR$}ivF0)thy6P9|1SI^MN@w3Sqaio_?dkbPoPT-EX^Vmp z_&hcldNnwPf)>E+D#oV9MTT4>r5;Hy^OpyP(vgEg+GTk57m8t)8kx@X-9a(RZ6SvW zZ$10^?w3Dr!Rzrt+sNr41(3#EKxpDuGDQ-nD$?~xl`TV!Elk_Cf554wgjb<4<8sB1 zM^lZN;dTFK@1@oMV_^V|104B=HhURlw58O7*m)xGUuyIJSC9Xb&M|-*A>H2OGPNx- x{a+(bKS2MJYyMlGW&mwMS^!WHod)|q0LW7F;(z>I5jy98Ss33+`HwHA{V)2s^#%X{ literal 0 HcmV?d00001