From bbf8a7061e1e0cacb6403b5fb2f15a09ed4cf59b Mon Sep 17 00:00:00 2001 From: OneOfEleven Date: Mon, 2 Oct 2023 01:19:14 +0100 Subject: [PATCH] Fixed CTCSS int overflow bug --- dcs.c | 2 +- dcs.h | 2 +- driver/bk4819.c | 2 +- firmware.bin | Bin 49932 -> 49928 bytes firmware.packed.bin | Bin 49950 -> 49946 bytes 5 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dcs.c b/dcs.c index 4d93c9a..4615dc5 100644 --- a/dcs.c +++ b/dcs.c @@ -91,7 +91,7 @@ uint8_t DCS_GetCdcssCode(uint32_t Code) return 0xFF; } -uint8_t DCS_GetCtcssCode(uint16_t Code) +uint8_t DCS_GetCtcssCode(int Code) { unsigned int i; uint8_t Result = 0xFF; diff --git a/dcs.h b/dcs.h index b8dfdc0..873ddb6 100644 --- a/dcs.h +++ b/dcs.h @@ -39,7 +39,7 @@ extern const uint16_t DCS_Options[104]; uint32_t DCS_GetGolayCodeWord(DCS_CodeType_t CodeType, uint8_t Option); uint8_t DCS_GetCdcssCode(uint32_t Code); -uint8_t DCS_GetCtcssCode(uint16_t Code); +uint8_t DCS_GetCtcssCode(int Code); #endif diff --git a/driver/bk4819.c b/driver/bk4819.c index 49ac4dc..384da6d 100644 --- a/driver/bk4819.c +++ b/driver/bk4819.c @@ -465,7 +465,7 @@ void BK4819_SetCTCSSFrequency(uint32_t FreqControlWord) // freq(Hz) * 20.64888 for XTAL 13M/26M or // freq(Hz) * 20.97152 for XTAL 12.8M/19.2M/25.6M/38.4M // - BK4819_WriteRegister(BK4819_REG_07, BK4819_REG_07_MODE_CTC1 | (((FreqControlWord * 2064888u) + 500000u) / 1000000u)); // with rounding + BK4819_WriteRegister(BK4819_REG_07, BK4819_REG_07_MODE_CTC1 | (((FreqControlWord * 206488u) + 50000u) / 100000u)); // with rounding } // freq_10Hz is CTCSS Hz * 10 diff --git a/firmware.bin b/firmware.bin index 005ff71ccce563e4d5b6057a0b612044168c655d..90d044b8efa8ca8518996ea70469634122c4e590 100644 GIT binary patch delta 4447 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 delta 4507 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 diff --git a/firmware.packed.bin b/firmware.packed.bin index 86396296e0da5d6f504d3153b6b69b2bdac67c6d..364f0ce8c8a72b90b35051e24dfdfc862bbdd279 100644 GIT binary patch delta 13743 zcmX|obyQT{_cxam0qO2$1f-N0y1S8~yE_C#Vx(1+x+C4)3=EQz(kiJSAkqkkK}ZVx zF3)$p?|-bt9oT1|PwjK=l~ zjPaT!qBHU?A7X1cEwLx#gAu|n?)fu2mqiy!Ele`;YXArWx$gwgzldoYcpH!!+8pc` z`ROGsK1Iu^X~GT$kO47wIDr6g?v5%Tfng?X2Y?Z9j!YS71{ulofHbh3+#RUEa8ev% zL(8D0F2X}P%fwP*x~K&KAQ${WW2^gRFqQ7g)WuHutn&@cwlS<4JNhLT<8xzlxRHr86zC>Im2PQ8Dxr1Co7D-qDZJcahUwe0wP$!NwPqDQ6C)F@9qCuEy+{?X3%N^ zy_i*6egOCclF*9*Z5T!R&o@1!Wh?+#!B)m~vHYmKbvqqH&Vn3RiVXUxN#^`h&W@-J9UDsGff-n=Yf_S=U4|M)<+2b*L@FUYZzyM5TUgR9Q+W6ZnLVQ1nF-GU! zXSN`YlN3(<>E7CKgjUN7Lx(_D%55;2MM6&c6v;_>^b*K*Ln@J|Ne~Do;moE~IZ+OrKdfK_30N%&?iMz)%k?IL z?yQc0Hu#ZMiU77hX=czyf+1le1PFAQBIegKFF&u;SmkTEzm)ha=N zFT}+@Em1vVoN@BI+A_+}G0@vj<)tG?&cP2*g0dX6Kt1LmM-KqZW2m`Q0bm%ktiW`o%I`%s)(+9h$eU})l;pHaR0xkVF zO<3qEX`--|WG(nkz*Sy(01v~?mj?h*U=J)Acnj*^)dv1ya_$1y^kYnAYumR#4u`K- zOmz%vJ9X*mJL4isEw{io0un$W_)|a^hy|quH30=MPLPxO!NS^T8}y8wm{Ln;9%*{i zxJ)Su(iq}wY^qyj=I|!?H7#?=RAMShg6{liTa=sR8@PObAD{rI9>@c~G34Uj z04ZHSFozu+5u{KSZQ#nUgn1>A1ppl&uar6<2>MF70}YsYsSp7AkfHPx?M!+%_lNbO zioF;kDh1)VDV_{@CPJ5SP)ddo$Oa$Eumgc$h)f_**uSyu4cN1Qpi5ylrHN5O~v?;s++maRU5cgPau6hTUVP>qf?ts$M?uP>$Q& z!V3#Y#A$+Obe`ea_Kx_16zbM3s9W4nM?+Rf)60ouVkfp%^&;zBw)lq8J(p!>ghh7w z#Pl&MB#k{RBgEnx9=9*8zP#WGqH+-53#-YsV(QVN<#`7B%WK|LC9ep42QTHNfC^AT zK@mWMp$e>k7?`E-09x~ef-f+Lkyn%kh+66>X7dvjJco+)z&IsVbI*F>i-N_qQEOB6 z(egh^>68Ve=@Y#&rKeCayuL0&ziQAu`n7%x{N(urQ5Kel6nQL?MYK`aFCYlXGj>?- zd0xdQiW)HOz9XL%`*S3)9T3r(yTgaT1}~M|fnT7jGAB_myY0F{xE;=9SSRMSGNfKd z;5!vXBHVgEl*}~lxjSVvNUF+9r0+XCiWWx_eD6*I6;+jq#vACCTJ01T-6_q$WK~9L z2NBf`&XMeW6*ZS~q4XzVW@XH?8DNj9CC~ygsy#&NK>vR3et0MA4?cw4Tv|=hTCdT= zGYyo~xZR?wj!wAni`m3J0qzyqNi19OT@&sAu?%euX!*L(UTB{E58W5Gq%DWHWMc1p zU)2*^cG)WQknWEEj)Z5;=kxNVS^7VRmj3}-zLSgvpS_P4*=2CrWfa=*W8fhj_*;z~ zpa;p-8vrA)Pn{7s0hiQOX&cfWaPnT{!7dv6km^!W!Y_$U;ZG9L2GFWO3`&LPx|$f~)uiYXc^#e)3t-{Ud=uzlhEfKE4nm+O$Neb!cJV zHBh2Oc8dq#D=i5?1RT`zCq=j~k21&7;O-$iZ5?U$K~-%j((*^X9IHmY2-PwX1806E z@Rhc#dE{UsT{kbIi@3iP4>P>xJFX}%iOn2%T=weW(6{)f-Nb?yVpKdPSM)Rdu^JKZWEY*tFJdX9k^x%WNu^^CBM+#^Kt##H# z((7He$RO-Irt*V#(B%{08(SI@rm{$$yF_7kL)ckLKd^TCITQZ`TH`ZljSZl`t|GOW zhVOt$%03fuY^CpauOJ(i*|O|Ha9CH7H8|hy(lyXsV{*!QlvT@$Y zO_?-FJ>xQjh4YX$CK8b^-n9<*Ry~LL2YOJV!DM}U*uZzq=64Z+lBaFPEDjCdJx}(O z%PH|j^rZiV=#?1iYlPeA2G*c+=K8=XeRd+6IsK+X!UwkmD}umFeO}0ExeZ`Q>;+~& zDphb#SZX`{sj%=v+b_>}3_4tXTp$WQD>ero=J7XBAl`dlctLg7S6_=5eO%<|4RE&6 zX#V10cj0QR6W$B~J;j4-rJ4>4>1b$z_ZOa_UF%D{So&pcG}Ksqln3H@I3&@1kmx9H ztm;uhqEiWpPJ*i+yqc;apBIs8>Hpi5h3+kcbTxSkzH4yRfR|`I)A>YM+ADmi;}J+{ z*aJv|GlqgdFa|KX0LX2q(h~KPdyT%m)<8+R+g;FLNK68;fhI7@^Z~GnX*E>_NGoeN zu0kz>Ja&w@U3HvBKti*3&;uXMlmUMXx%mYExMD~wS@8f(jG&z~01RQ=?JWTS1`ayR z1NSfmj?MtUgu!zr2O!&`b+N_<9%F*sgm3|Mu*^#uu)(Z)L6jQ8TzJ0%fcxNc--mz= zxa{i)JO-8h<^c(i+20j-go*P{1psG|HV_85fr^3Lz#7IikN_L-1$~1yWwX6DWYS)5 zYja%&@TKwRmtntJj_+N5%oLE);Z$34@^w}#m{7LkVI(i9lvIhNlXm2$7J;^@#-doY z{!494YVa#;D8;dceg;G_e?#A61LI&{cpsnv#zeRRxR@UiAvpYng&$(CY{J;t6}|4# zktP#Xa85~3(XP=^Y}5ZqKt8XN8oC#HRs1Sa9_PGv%Ifr zS_y{mZMrdEx{`~;qIq)o(t0iD?Mt&Sw=ni`5&$p&X2l}`b_{)jB0!pV(Z6g!oO;e@ zO_TI5I345uOc4N{fi=%Hfo|~cb5`y)EAADvI~H_-^ zUqe7afKo3wNu}^QZl|78Qy&jaHAQ);fSxZDp-f%(!k#)QM$&Dzx_GamQWy62sbsZE z-H)*{kTcO!emrIb`i+bV7nukTnRQRUO5OI@Zxl##XEN@6!qd?!HG0E40x}5OBl}4a zvoaQ*DLr^WE@O&^3`udU|JY~nV`4k70w%mv22kMpm;NNB5M0wBxRO_*d&V)EuM7b~ zy7->aho85{k}xGnb2yOYgr!|VunGnBflY7}WCz^AAD|-64`&~Y5ULRyzy?>-8L_{) zfLG~Clw_|Rx0;k%Tu#ay>4*)YX&6f&NzPCOJTX}rp#UK&;6eBU4PBTV$e86z=)&O< zX!U8n;}ZyG>65#aJ@T2kiuQ`%2*Lp(>w9^?!z^>#p@n>2Psk^CQ7n=Tvr!x+ke+YT zcUU*Qs(zEX@h~}nkCPxQtc2BlEaElA=>;RfY+bjP#YpIrBoCB5e`6ZMBm(#3@hk(I z%5GKjy@99(?a+wrv7cbe6_YV~7X{X2Ga~OCji>Su7P`4l5>(pk8m$)_r*CFI;h42J z-IXPvnND20ia{HEz~8LMOu-*E@z08IG?>U?dYwCd{ntH&kOwfvbDpP5TwoXu?DkC?S(HhY@?Dc`{r>LejKg^jn@6V7wqp#x;*YUqh$JmSx3i9ru+yGtFV!w% zvAwl+?Y}Z63x~_Z9pwntQ75`8Hb!)_yYpFay-sCT$N3XbTIk`8(X}JG#Idyfw)}}s zVw@+8c7{^Eb42OW4lC-9kLUGq^YfILYEu-Z$8+k)H))k?XcW%$bIQ9>@@NxTTG$zF zJ)A;Eix|!8q8}j)eesF;#W8*wcJcBv{^-p1aTn|Bt|(FiiK1zhJP9k3MMF)tKX-}f zoCw7WY8pR3t+GUDr=Z^y2pG{RS>5aU<>yvGxnY!5LfKwe!73(597uE9wsTr!i#mxp zc%kCCa?FdL`K=YvcS_TE{>k-cB8ypy)!SW<;$#Drf3q#q`7^_#DsbIM*fY*3E=!i} z*)y$kHZjd9djU+cBG}~(lr1ig(tO@C!Haq0EmV8p@?vkX?O*>?(RLio+P<+e3(NQbSke zzw-=ad;#*~hF&58SCWWMdDxtR@29jHY_?vb7F7*YkvbF%^>o5_wQ}1zow#P^JSng9 z)~O{fl+qQ^J?)G&3}2qV8wjsyU~_EwNLBi6ukrP`8oU4*Y3G}0(qidXG4na$Kj2PN^tN|ravETA!A@HN9@+`^gP%%aBx1ez}6iUuive#UMl|BbI} z&~^&sW5K`oxYZ~mE7+3(hU-9DpH{AT*ykR| zfyMC=-pmiK2p<0}z%?UGz0j@xEk6_=)m8E1=o~g{GORQilE(9g*Ghu3qqw`x)+m$S z&&gopJHK?H*NASdP*-`NQ(X^8AQ&9BAJPWIM4emkF0t_%@Z^m-YCq}rBiXntzr!&I(_BI)Hxt;=$^3r z{F5fTGltiCtixe#Z8TnO+Fn_6$n_Di`cXSAGM18BPRhqRD8Ep#!}r0wA9>eE0aM>< zC0=6>)9CqnTENE_?tH0d2|kf6SpG+L2J&Q218N!=EiV1jVs-E)aS%3}&kxlJU1EF? zy3K!$ku@kPm)Lt<0e;*Sas^rk*%jCQ3i{_pOnfDGGMO5s414?=opv(!N#jC=NZzzx zAcc;kc*?^0SbggDY%(V1r&zvb(iKt@a+by8dC1Zo9QBBNz3n@9Hs2BP7-9iyu7Qm9 zZHNVu2VOrg5jmXD6v6SgSWXRJea&`2o8Zl%vxZisDb*9g4?oDp<)3Ocaz3bzA@_do z7ftj4|6XJ16ON)4CdBhLcgKGr^2B%MkTC)qtlfRM{G^VNJ#2-`UqAW=WLn0mvr4N< zmmXRAeQ&|_kjTqci0Uk&cB%h5fYi}4b@ZfE>oGfd>$(uiFQ_OuSbX$iUDbX;)cTQ@ zoTFrAjF11g+)~bT8{6=Vh|U?oM6%68Zi*#@AiA5NvuqIP^$w)mnIF(9nK zH(QTKc0WXkS5X3YF`lNyLwvZ|%xDIo(X9B{?wX+vE@9?&l8CieXkbu%eA-u@L(w!SdKu13itIX}Q*a{3W$`uTb)iW}FV3mnW>o1AL!J23$w*f3 z1sNP%M$OnV>(S?(b<~x~K0J+SHT^)T#e6jO_zQE0(x3t*$vb|IOOz#(=d_;;t6y1T z$~c?h@OP{)_Dz=JtjN64@+;7_>87hoCQuQ(Z{Z!jrxh1PX>E;PDShM z8UOqZN)bEox96)s2sR!n6AmQW24OFq^V#uZ)A{0lv!6B+9e1q4O~p!HpbLpuB?p_D zbo82zjMk)b>$+JINYwE&kZU?idyTH*j3k={Pq-rTOBB(*ZA#{WE%0Vv3J1%mQ{US% zu_8rc#SHe2FG@Os&uG3*#C2l{Zf*QH$_#T6@Pa#3)Ox~VY4cv;oTiipIwLfk%CpTD zHw^i#=jUg`I;pwB#yy3^yR>T$DtlkQL+2l1wMdt|DAQZ3>EP@$MBY)2O!{lz7dZJP zw~CG{(#Je6MR{#60N#dnnG~z)N(Yzm><%tr(_+gS_Aww`ht<2Q@&)NOb6p2%t~Ua67=CaMkd#eKzc*SjAnGgpL)zD z_L?^v7|hdrD$UW&J}gCDG+&drH$Pw7>`g$7aWx_PUq7_{l>YNMoCeQnC0|-uO}tMN zyM4${guVmb$=kPTsD;6&Ph6Ny&*2~upGsHo``!AD`~HhJMgw*@?3<6Gk6VKHVHFZF zB{&asNk`T8S0XjzwOV8Bp5(as8_AvK%%O2=xhGTzu}s><3=4M1UU$5;VrXw1TR+}^ zq(In%+*jaeZ4>G^puaB|8nE(&^LV%v(eyNLC@FB4*`nYI52;wGlxF_%NH+>5DPV#7 zoTzwcIQH69{+segGG?;#!j<)wpd{~9;j{aQ2f8VRo`=hk#>sbEQBU0hNLqC@uSa{I6)g zvi!++-JP0BpKK*R6>EeJP19=3Q*qg;&Ob$`O(!AXbyF@naUeJovg4I`QY4+vFFEE5 zwBZzJ;{`~(@iB-~OjQPDe0sgCzRrB6_N;$hp}Plcl%3);sXcbWpfzgR8%MuR_kL_f z?gKQgE$M9pvd2fCzA)fz&PndemXZl#n+=p%!m}l_yXimv5Jwl*T>o+SqvH9Ok}osi z(0VueAN+7J#lo-EE@exySwODo(Pl8LoRZyR?So2sBNdhHE!3%WR)a2@tnL=$XK)qm|Xbmd$-*CsQvg%?!3fg z?L+SvE=-%uDi$Zh|A}a}*Y>d7eAd#lKgS_O$uo(v-NFR~Ft)+FVonL|=u!9g08)p# z^6X;t$mOL9N@B)mkWRpZ82;9K!_IH*iYNplCSp-=G-Z_Ix&AqiJQVeGs_I|1=)3GQ zli#t|4@dG+@Y$6pmbn7{UWa44ioD%^*jAxHvzHuL8l*JubKxBJw>H*ay1XEI9n)FQ zB}Opc>-@8rnssM8U2si^sjJVL`5v-&U466zXwq|Do0vRVd2iy~mr5uJ^DbNNM(4%V zT|6FtpLZ{n9JjbB|FuO6UNm7MDuSlB09JP~4iYtF3m_vSfErt+ivMGt3-r4asWLZpA-X6s0Xv4;tV z+vupbd(3xKW#0eG*K~DIK?}M*;CJ&YLv4r&-*mvx@TLRI6gM4!UEg#dB)MWDXdqfY zhZ#e!oFO2E^a-{T&z6{38qU zTOy4u(Kh?bw-re5nR75?RVHO_ge0W$7}K08GUM@xxXAwd6Xe#y*P&L0N;ezlJdd7G z(|9E5UNXH=q}xELO_Sgw94*gCe@*AosP!A>J7F+V@-TlYJe@&QJ4tr6)A!LP4;@M~Be3iHZXKfG)ST(y;ycz{J6>1*L7`@|JbAp=^?M1I z(tI*X@og*V1+v3Dbo@(#N>oeM>QO)vQSITG zRJ)7v#AqOgG%@Gv|9U+_;hp_%Lnh28>PMTz)*HA#?%eYZEPLTo_HXpL%6cAM5*@dN zvmf3x7Txx2>V1`VeT{)mA=$?AU(F)lDnAC?zc=>?c0m-DVsXLjPKDt3mund+8*H(I z*qg4g3m+n?@aleY>#l{^2-ocSe2z;@i3x0P*Ji#J8A6?ihD9dA6IxB$_f1LNyDBvsCngkI2H;tad}Z-4qZhp^>aXNqWS z`sQy8{Ex?p6tQ}0PE(~jeImQBY9H%1Uc9{g%_oF@RGUE1c`2XE8{tTrTC2rzWn@OB zf@-qU%TXxuuluMq)WW>^s@(odt(0^{p!X5{8IouY-#CXRAfk##4zc8%Y7~dfaH-yu zELK5_y%I*_BXo_q`?q}hyV0(=qG&LS^RP!#+xOn%pA5G-$NTug-vz3=Zf*>Hjy4bv znj!z|==Dn=XDj?!mFHA^vB%wytp$TdM4B4i3XK^u9_tJa59&T74iRmZV|YS#U_muk zF`Y=UTKz27P^xKWp1RMgY^wK!B!^Sz&)0=0sA*h!!+r?`ZEEhKd*Y`(;qVzaFT*U# z-=B(>Ui3=_7Dt8TUBiPA+YOOd@j-M2OoK6WbM$g+_o9BVwm-+(d{`VH`0_h(i4imM z0OcPQyZGC@HzIR>?fIl&)7r~5_3-}ndb~`eB+|{uW8~lu{aVXYTKvijG|mYRi{4zz z5A1n0+9c#{C4!hfqo-d>%QB_(=y`ZN4EO_7UzgKIf8Gb!|7r;*Ep}KB#B;_679=sv zw8nk%6}7*YFu2_w=z>IWIe`HbnNNUvmGxvxVvu4o_GJoKV=4NZv&~e{cA@_RH&R-HDo67oy&EI4u zm=*lY3QVQkrvJOlrZA)VP-Ws}vdZf&Y8h3;Y^?B+fJIY8r<_Bie_f+sUmR{Tx(&YXO zVTQ#E3*zPztF_TSQ}vyWQi?4O61?8Vc$pCs|57FqDYmLY-u>fe4Lsq0>GA`#a9B7y z`^^vs+2apg8w?`nP#r!dTd&qva_wbUJdm>u*q;Q~8FBO;o= z65d(#{p>~F$Tgct@Im7_$2^vL0WwL}a|d3py+q(}(a1lyQ!5YK`PD{x=xR%veljW( z%jjIlH=#-_XadLjz8d+{mGDAu;gg8Jey-j(1q=XAy++n}1T#mXcIo_uI^kcK zQU-+U+-r5x)sRv>WwdHLq0^pdnBGO>y{WT4heuN#`?90v_LMKKM==N|Py5vJbmwa5%oyrw77o;wpa`Fsa4P1V^XXA(OGgE7T5+LZ0c&83C z;peE_OB{u6FYD4ZP)g7xUnYl6cw2m6pD&xl`Uwtl`l(>;{^8u`*D*Z_!wUPmxf!V6}Rt$+D4Kxy>a%9g-Bc5D;jl#afZkr3` z>acz(MH%YvSh4>6-%ps~#F0RzGI!HqVltqc7I?mu~3x zv{D0^8HP44S7XzFzo}MCiF3~g?q6fU2EUwIy7g{FH)KoEtK&z^oZK(sGig-q@(_4z z;5Ido4C8G_cpCD)UT_d!(%IAxtJi6NuC;q_6KT0X8kV_1fPXHR>y_+{I31#Y^|9K( zYA^0DtTEhNA$5B~J4%H!TieS`YURRvxGk%gNOq7lpLean`XnS^+vm=`C~S^3XWQep zMOmt|)%ciP113+_-+T>_4un8DAg`&xXWeq}9|%>o$0;PXwwS>j2m|-4whdpYAfp7^ z?T|g|I`qF~$bX7g{)uU1SerWI;eEE4BJw;GVnGPu*CS3iD_R=DK%sYQdv8gw>L5!d zFM}~R>DkI=}OF*?}HB^8&Est{R;qHCrZ${P# zy|h*r7walKQ6-24iNbqG?gFtdSWp2bc&S5%KgG9S$m%*kI-v15dl5QNrLrT3XsGgd zsnB(#YbTopVnM~#CvwZh(BE`;H#DTm&kQgHqKp5dVW*Yz@O46To&i%J4s;6(bpW;( z(J3XwXUH`h|HhcpB?aa!rma;d~W|+Q@kAB7ZgYvoRAp}SMl3^)`Ix$M7AtqMvOPP zOg;0pJ%?0vD)6t0vw(s}bq1SjYS+1>b+jqhuhMxr#`e5T%x^JA9W0+J41R|9t&hx$ zwwee&uF0QAlGY!zIQW8pOyjU_lI0>?hgG(bN5%yf`C{daD!p-{9?^z-W*G0l*e3d= zmLhS<*|KqtSu+LUo#8X(&c}wAMmogyJ6|Yz+RA2$9xjFDn>h=mQA z`SL!u+jxxSZ>|3m4iChlnQRdLWWm0Hlb~R#B5m`l{x7>qd9X7-*XcN`RhiTq3cu3( z$dxYfJyC>_0bONe8ww7V6D zN$E{IT{@~U{Lo>$h_rb191Y7G!gUp;1|-o93N2Q2=CR~PmaOnLWpV=F`q)-qGC&~I zRqy!KOwrgZouS)t9r2#+=L8C3;Iog^r7RJ^^T?_MKRyP(RkJ=q5m4fKsfS1F>b`6 z&TU0!gjjYLO`=u??{GQfVXyq7vo+Lc}QJ{60yb5=Xgh!inm#S&h7yXXnZ!dZz_wqNOZWDQL@f2q zkF)qBlUr9B4Ck_Q71*p}kj{y&8557bakHAfFoECDkcNFwI#1TDyK(a>_8Ik!8Fkf| z2I$On#>s@?1=SI_NxN*>2CW|^A9E3PeD8i_%5aN22DK`M$s7^#Y_}l5B<-^BM|Z}D z_fTmI>pTP-CMLrU37k$f+8`gzUIuET0+byOHAa5C_;AKw;Q<9Y0KR1F3 zs1c~6o#8w3A;!(InTUIaN4cZAfSJ#Wf^?cw~b;2Ls6ptXN0!UAqd4$E_BM2c=jbdoaoJn_kz>Q!Gl!pD2^ zq%_K|;FmPA(_a7Qli5f3Z4nt!$kP?{^GV2Y%x?GZXFjV_EW}`z94n$X?&0QJZ_#``{G??=ooskI>g; zhql)71(C2p^JQK*1%n>?wLRI@K%tU#7lYeW&Y-Pb|G%?;`6g73;X)a|{NGUA>U`8B zE<{5U*gEq@l7CeD5xLLODGUkQ@mUj#nAh5Q?^o-*ti7rrpRnPnI)8i4WabI(VOi*A zU!#q}&SD|aAr}kjPRlcySO%_5HGWc;tyTVsp8g7d$!@xDt`?MxB8?gJEC;hiromMl ze7_2==&go^`iH+fX3|!Fm^LZ=;W6jdgHB~m4r{jAv1Q8Oe?}a}Iw_+_C>B#gJUqRf z-XgrmU0}7Z0-2Gg>JI#eV__t2!bg^^kL{+&x~n%&S{St%qpwHrr;v)~-BI^+SgZ7C z`;oS90FSd;aI`RX71{s9L3g#)CwlMF#jPkO-kR;#ulnI!D;-W_!Py@sg?3_1L9ZhJ z%Y;AwvtuTE1r+j)gVT&BRKWl2ko!i6Zrm`4y#Ko=+K2d}8n|)8(4CG6D@cg`3#9`; zW{bMt3%RWI1T`1V7h&~_W{~&XHMWjuujQfr+p>zy5s|Ht`mV*&b$Ba3MxgQ&5hiuE zP-sK;ah-Q3E3Nqd52e-!4J67i4Q5--^ z!9)L|I>Lf4f1q0T(fodX4$2Ib7zX8mdp`t2nn;veiwYZzX7f-8(Meq+BrlptYCDtP zciqZs#AyB{)Pbi0|Jwq>O?U>h1ztH&A{y;ev)t_1S8DlQ;9LHER3?s&?WZaK?=2U$ zU19m5qDOMwOxc_a%AVx@RFDn~W!>SrvZSk;5q-^ceA5AKfN&Fv_SvDie&$GhF4E8(~l~eT@fi8 zTY8IqqpHXHv{`@p2ExH#XTj3Q&@*&cWyv_yfdH&>-rG7V_GlE#DfamD+whMTLiz7% zbUf$rBXO7}HxhB~j6z-@=GGK}8J=Rh!9b3g>?9J(WE#1enQn{rmsVcGs=cq|2@P%;VA$$T!YhS)DB>=;TAI`KJ~<&0(IxiWm0L4$9XrqMIs;Ro*| zh#KD2Hg;Eh#KL+xp2{G2ZZzp`ELui2^eZd(B^1dHcfM6f5`PWpa;V`nM9|&6=Ycb^ zfJ7VVY9LT(WaJN8{(+;FC$k9x{~qic&ta)oFxE0pL0eGhPx+&9jRBesd&oPktjk06 z$+AdApwa9by`H3-$5pL2MqLg9q0&k|8=k(EcRh%2M`3FJ1b(R`p1#nf96l5eb)eD- z%7jB`p$!53>L9TbLo$TiNK`fg3IA$j-GI(*zZsAJ8GDUrm3#j2`X3FuSB#0E*UcQ; z(vP4Htj$kpn(b8Y=rp>kvqGU1Du8Dd%7p*1;5vR&_{q6hJ}y>8J0CtvA%}TqUAz<^q<{9yVw)8pDI$pn%46dT z)&rKo;45_fyrIT&{)?zUy4=}AY{VrS-_J#P>t93O@ie(ZOp`coW^W4{34Cjs>r8`X zA&{xFyovi9p+>8SB-CTOy2Xz5*WuV&4-#khKCBeaA0f5Y>+n{j^E^6zSWo+QVT6 z0QOq5t&hLi`)nXZD|mk^TlEOAXyWW-KMWwc@E<|2H$&`fAB3A&(AuG&QFkZbW>`7o7JO0yaUR}XpWh>H@)4-TSM*f|lk}gy z!W=$fouC^JGIp>x89?c2b#8R>A}$F%Ctr6^vHe^88?#JqAkS$Nb3s>*&ExR%^I%@&458SnI5FYnlY z&HsB#c&KNrf1H_#TgN&&`Ei%0e3Kb6k=P19fMWf7B5rUm4GXTuZ7csEa3;&UaVk2%`u!)gi&yb)FC_{k-Fa~&L|jI*F|0j_S2CBQKApj{uk@E^)H{| zVeedY-ANZ z`_jt62)xvA^N|L&JWQ4g?Sb8kd+eu2LCv@{1M(n3N+g3v&jJK8U#Fk!;mpc4v_ KJ?@nci~k2WJ-pHY delta 13747 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 C0Iehd