From fa060a5f8bb9e5e72466fb8a0b871cac43fac952 Mon Sep 17 00:00:00 2001 From: akamfoad <41629832+akamfoad@users.noreply.github.com> Date: Fri, 15 May 2020 00:47:25 +0300 Subject: [PATCH 1/3] Bug fixes and improvement to the weather fragment added firebase crash report to the app. --- app/build.gradle | 18 ++- app/google-services.json | 40 ++++++ app/libs/YouTubeAndroidPlayerApi.jar | Bin 0 -> 106430 bytes .../ui/weather/WeatherFragment.java | 122 +++++++++++++++--- .../ui/weather/WeatherHttpClient.java | 25 +++- .../ic_signal_wifi_off_black_24dp.xml | 9 ++ app/src/main/res/layout/weather_fragment.xml | 17 +++ app/src/main/res/values-ar/strings.xml | 1 + app/src/main/res/values-ku/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + build.gradle | 3 +- 11 files changed, 216 insertions(+), 21 deletions(-) create mode 100644 app/google-services.json create mode 100644 app/libs/YouTubeAndroidPlayerApi.jar create mode 100644 app/src/main/res/drawable/ic_signal_wifi_off_black_24dp.xml diff --git a/app/build.gradle b/app/build.gradle index ad7857a..0fd6a97 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,4 +1,5 @@ apply plugin: 'com.android.application' +apply plugin: 'com.google.gms.google-services' android { compileSdkVersion 29 @@ -21,6 +22,13 @@ android { sourceCompatibility = 1.8 targetCompatibility = 1.8 } +// apply plugin: 'com.android.application' +// +// apply plugin: 'com.google.gms.google-services' // Google Services Gradle plugin + +// Apply the Crashlytics Gradle plugin + apply plugin: 'com.google.firebase.crashlytics' + } dependencies { @@ -52,5 +60,13 @@ dependencies { // GSON parser to json implementation 'com.google.code.gson:gson:2.8.6' // Youtube player api - implementation files('F:\\2019-2020\\Mobile Application - Dr. Moayad\\Assignement\\YouTubeAndroidPlayerApi-1.2.2\\libs\\YouTubeAndroidPlayerApi.jar') + implementation files('./libs/YouTubeAndroidPlayerApi.jar') + +// firebase crash reporter + // Recommended: Add the Firebase SDK for Google Analytics. + implementation 'com.google.firebase:firebase-analytics:17.4.1' + + // Add the Firebase Crashlytics SDK. + implementation 'com.google.firebase:firebase-crashlytics:17.0.0' + } diff --git a/app/google-services.json b/app/google-services.json new file mode 100644 index 0000000..71f4920 --- /dev/null +++ b/app/google-services.json @@ -0,0 +1,40 @@ +{ + "project_info": { + "project_number": "179828873900", + "firebase_url": "https://soran-travel.firebaseio.com", + "project_id": "soran-travel", + "storage_bucket": "soran-travel.appspot.com" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:179828873900:android:4a02e274f3660839c69d09", + "android_client_info": { + "package_name": "com.fanaye.sorantravel" + } + }, + "oauth_client": [ + { + "client_id": "179828873900-b1mrfe6lqnukq6j2k0fefl8s6aa94rdi.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyAN66mD1SebNN9UKNYY8GItNe_xUvRnjVg" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "179828873900-b1mrfe6lqnukq6j2k0fefl8s6aa94rdi.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/app/libs/YouTubeAndroidPlayerApi.jar b/app/libs/YouTubeAndroidPlayerApi.jar new file mode 100644 index 0000000000000000000000000000000000000000..0acbebde9d65136b7a4f43461eacf190725a0333 GIT binary patch literal 106430 zcmb??1#D!=wxrw4%-CjTW@ct)W@c(rnVF%@)MjR8<~B34-EK3kXa1Wft+ao%BaNkd zRZ?YERi-22#5pIgf;0#yDi9O6u?VbVH9O@Nk9}C zAmJK2(FU-o@DH#Y_4|L#P1_}=J_cCWb3a2w+Tj+5@-HcM+}P^!wRxRE=z3GSp8 z%`&hPP-cA_7Eo^;I;1*v%wee5wk&fgC(J2YqmPK{4EsX#0j967oc^xgSrpf6xe3(D zo`nZ;8m5Lj#J)NzLIX4C3{x&ov6SU_5B$g4SPMPuGd_R$=I8at+Mt1e{#@_>y)mGl z?;6|N(*N%xVE!}0+}_^Y#`JFnqWs?j4ed;v>@7|HW&+OtdxEFEtBb4A-+dF&-%oU~ zG4wQb`kODN{{Nb9Y3E|%KFF2M*v8P=IXQ+AK2QKvr5U}JD z7^B>|H(Cry4T}=8ivm!}3B|_19Q$#2?#^%Y&JPLu zyPyt=)O9>juVFN989F1dx8-39?P3JRB(%3ein5P3$DJz>pv;ZruFt!D!L@Zqnd%5g zC+urM2dsC4Wy?mHnrdKYc+=bmNo3VA7kVC<*rtdNyxuh61J(-L@XGBF1kM9a-74CA z^V>GgCA+R#-CVuhA2UUG0pVdMVHIL z=pI6;raRy|B?idDOiv-;Tp|`kp>7u7P3Y&3dF~*H?X^PF8Y*yKKz|c2u!f^W3~6R2 z6~)tQbjO+aO1(r`!bPvjn@ID=dBwV%a4Wr4ORz&)l*zY7X`p4MC{eI8@b_epRb#T2 z`%m<%up_rcu*MbQXpH-F#2l!;KJ`EQ-qfF2Ij0W5m@J?9u6e|+mqf+fH@=-OD)5Xu>hj;ZG>y_ zaLJ!*bmQVeU00o{5cK+6Yw|$K1784NmA3I#I=5ex@&U~M@kC%28H zvDx^km&zn91-mi%kz|p!D}=h(L941XgW4A}3x*v^g*%b8GWH>gwd<409XtJAL!nE3 z4nNR3QmXNP*IH8TL_F8LX{6B1qf(@z)0Ayl4fV6DBzu9%D(v2+&yuWiy06g)Hw_7g zn*w3|>GWg8M%zuCqb5<BqTaIdf(xt=X&c3oI3_%cM1`~ws^R_AZJb6E~7obaPyjvubCTYiDNd+0@n)H z64zP=%G{BunXg(nJ#!}Qw)mEFiMh|2XS#0=l@K*%vf317@xrUu?BE<=t^Ax~ZU6m; znIyqWIj+JlCJ!vwGCyUKdmexXrhx%P{>t8W;Yj5{3#{MSqkuNWdN z=d*)IRnN=xg$oUJ_KO^6FwWhj9M+-1U+xK$52isxF^wr+B+`)AUleco4|2;#MC!x? zrRIjLZo&T8OBbgp@AFSgw*2j0{zJjF`7dTwx185R5Z|ZNykaV521sos#$tuEZN^i^ zt`tIN*lYz=B)JFrqh5fVYpcb=iNG}J_Pe(m>95luZsN$zrAlO85|~~U(|9@WIfV5J zu`Vp#yEoe3?9A_`yZzt6wu#rL4LL*UIr)xSrWE%yc3XNK6Zg=Ep@(f_xN+TGO@39y zKIR*i-#VLAF0j>l@@@=|~NYafe-!>As_XokqWINk zt)!AZD;p5=+m}(cYSKm9{-;XkWw8g1jXtQYH*ZWwt}eG^T)}p%h%&O*Jqrt-GBuyd zcseQl^{(lhdS8mk%+>2$5_c^II39RE6fjohWBz=6p`GVinjwvNJM+GXIi`0aW*s=J<}l$RqwwN4LhF&Zg9ZO{JA2T+ z-x~@I3n#o-1F%c;`xe0)T%3!hx69T_MaeAeV+KV5`ef+UMKB74mN5;<@Rud!J@VQC z{G|q3;ITqh!HUgF4738SNa9!&7;A-joPyci81LV_vdJkz z)Pt}_`QSS>z5HJcEB#W{>a|909pu)kOYdx2Lx0;fh6?>W-?__coa>kA_XV4}clb$D z(~G1Y%b@HD^$zNF0QQJ~GtIEVfWUZ`Liyb1m`#j%s7%9fE@*5lS)b(k?CubKzEX4} zgy2jiutra>QdYl8sJBM&^O-t|FZoBrPT2q-EjGE5q%>^3FDf$33Pju!64@*k#Fep} zDM@3_b)sZ`BVS0C#NzOT28mq_pDu1IESmrYAHQTv(Tdnr$t|yZ1vaSm0@(>d(Yr90 z6RP~P{~z={P`lXG1pxxWf%rQq{D(p3lfM5YaPpQqia6?UcOngJ@F4QO_~2HhR3Dip zO+Iay>TJ_&DR0jYaeN;0xR1g&7>_|`tq9+lX1?24E3YfFAf%g_eUr=Y zt?q|YN8E|bPe)tbd_ZZvdwdg;>q#x7zbXeh25iH@!nu*Rq}P*M$Q`>0u(BqU_L)4C0!K!{g590~QflG(hM&c3XgoJSQ@lKp_6V;oOS7914w265G(;k1As(o{<>PpPrq61T=nxC3Gu2I4Vrbw-&1OifCh$4#alaYjf%gBFdPOSf9PU3jw`vqVDTS0LJmH{`M49uud zjv&V31BgG6ktNPkBg2)d+?JAq zv$AkrjTbWOqvS0(6{V=>`mE~ANQ$iZ6~^XU`RflBq+?;H^*tKH?t4KtZjv|ACT^1w z;d?*irl`Fr-#+f!#7*u$c9i@3EB4K&MXC8WEsFJj6;5SC4n+|4y*SB^GBQNy3*~!m z>6<<(T4R`0Kw&L1aWvFs+KF2!^*EhfGX(};Ai{Qt{8uuaip;k(jZy{w7as$ zIylONzoHE3Hcu%hu+>C4T16C_mm11!)n)T8Uf3_%wCQ1NH}*68W?{$CVg_YxldJHp z2#V9EeyN~@j(}lVgq#KLimcUAjv3&13vvO^158_(Vc$D+kzn(l*xNMR;nvC+OTosG z;lGrl&Oj~+aq5_jqCnkKeHG2b?t?3zv@a_Ws4<}V2V;?dVoYR%erx7{N2J_DfH zk7Uj2w zdFmR}YvxzqWVsZ$Jp>$qCP;)GEX2;=A7SZJX1&Oxg#OKW5z8ZAzLL7G}0S}PHeqU?e z(0UK{;q%u9Ok2c`L+Kf0yuDme1B`0QKQC=XQUc~ZQo_hKZCxOUMzIv`j0d)|^ zoAbquob&PO)6mXjOp9oMl)P$NwgTqhN(W8K0ybqpcta~dH{26{%z{5_`Hq73iQkSO zb$*2LZJ&&4aG~5?eQJpD6Fzql>gqV}M08#}Q(~g!Z>X79`qC)Q{DXXP7ck z#qUsE5HEm+K!3k=pM{Xi6AXR_`GYT50vn!FpNXgh*uUrrKKb$&V;YmSmFERehd*E} zQKSSeA@jd|Ym!aO{Wc=1f=R%oJcA@=?z2{G4V4ru2{O{0fHgQC)b*0LP;WVAO2K?B zP~v^Rf1dsOb1g2u9GS#`+*0kLdBzz>bSP# z*O#?L;Y*w9n+-U<3I(VktTwt!lj9BtTtF{#ZL`rZ!eBTMc(nRiYlTF=p@!QlUitaU zK}5~2%Gt~o%tJ)qYUQ;sl13FqM9&@?b$4xRv+`|=HsxbhSw*D5maBweOvG{{k=u6y zj9P2ab1x+C%-*)Cdq=Lf{X1k6Xlh26EWO#Y-4usD=e*TQMwc7_8ym<+?&58sK5VNr zuQd!P{r8hRY{;XTcdn#0MS+any$O(bv(CG{}y`EPi#?Z37I+Tf&fCn z0?97K+bT;IGKU-@gpsoX50uFt=j<+~(bX2bfv>K8LmM9Q7HZaaqeM$XA&MwpX8tU-sAln)0Sn`nI#6=b^1~EC+nPvA`*aR z1;57sRzg*kWu8Dr6dJ)&G!IWIm>~AommL(AY6+HT&%vn2;{8nF;TBR+l8G;*YK*yY zu$HTn62sv*P?iDVD=37WN+UKZA5NtGwaEDFMj0xoCd^S1VFTpRIx;0F&7vhK=Z$UV zi(U-K8wzk6w6j=5df?d|&>Edzt_#Y)HR1sAbAG`vzMc?u7)JBv#b%t2t4~e9n%j3r z;+E7Aj@K_B(e*jy|ASDL66pRHpM>fL|2snc!;o(ESG|E(8blEB`%h-;sZvXknx?R? zF$U>!l8%Uos5Eo3YR(y7^7IX@Td{dHU|#p%ho zZiXRTVxSPxb26m7R9hHb9fu{3X@}?pI=RdeUWzE)FVu0f&Krueu1RW2?8}3d@J>XC5g@SY@ ztrJ0S(nRx|^T$>?g8B-dea3R9e>0X_{iRIFDuT}QYKZUIv@eF*Q1IJ8PyxV}jyA(m z(wR!INhGoY3n6mXw{g-(qJA7wwxh(S_3l9kU0)&@tvenLEf6$&5u(Ymgr$O-AEmYlJ3ElOnq=&^rJgLFOkgI)HvdW@k7% zVC!SpXEuPB1iJe~s%^m5t)i;Od%e+i;7;Scad*m93YqnFxa(P0Q}%$h;>B>=D_V-+ zE>eKeJ~rP^EubJX8H&u?Qrv*l|JV|=tn-Kq&w2w+yG+-Ue{c$(oZ?`(tgcf50wJk@ z9Ejsp$xrBV_WA1K(we;R+4*S{mYjUKKq+BKXBy5PawPg9| z+K!usY!#uoP6ir)VF+l&4eSQGE4BSf5fI27L|g%!v1M^%o7^4P0j$IJ$v9nG7N0=!wJU_&)s3tL}TS3b^4K%L|eu`myFS zz|sw8T;~sJS9E`gyZcCDr*xsD^UQYF4t_VNz*>*rWjtm4f6=PX_bHHkms)VNWmBU zICFS=nE-% zE^i1Vt~}!)fTf%sG={5Yrj$-h32SJC8N^}oHFOU=f&#N8fD(lL=S>PzGo$S`yc}kl z_+n2Wle=SvArW^y#d_Hlr|P)1R*~m$rIde+VTb!({I#tnxi16v?_k04l!dtIlxL2+ zcq!&_*g+fflEcWM2xIn2PjU^E=+;5iUrHLTJBt-XJ?`tP>o;{&HT-K=F5K>1rrD*5 zR}<*s=SrlG8;;+%$r>BCRY`?UH?6hVfQOwkVZ}yWi@FssCW{LXy53vnqyuX7c@U%P zN*5@>P*faJ?Xbk$4-H1nk3)A1QtvgYJOj>gqX{W9E|$5Qn$=1@^(yIL93>3t;$L;Z87c+2gvXPeYVEO?@kOp-Z}s!^^BD31Jf-;eG#I%+#`p{XfJMWA`WyLMKNH}p&z0dc~Cr>R@mtZ|1P(X;=Y!UN^ zFOe9Xw+X!cg00+2znnVm5BP<2I=)R5GsuU9jTP;6i4ukI%MFQ~GOlR_)x}|M(`PW- zx{V1+nZT4b>d@bCVxbY8$y1rYhVTtvc!$LJw4Sz+{Rv*j8-aFisIjVusyMwZ9rG37 zh$lZO0^^;G#pudJfYE&Tl;hHcYSZEZ3m$o{eJ#sHcqHwWc1b}z=%I+Tyi zZrLe||Fxej-tO%9Dn{>Nk1)#a$Z!I%juoJ^ZARqqD0~JQJ&nptTWD@Y$e}z=&9k~= z$FsW6#Pa{(&Y5cE@C|!m>-32WvcdKKcoS-uO_T zuDU%zIOxR37sYs$f>3Zhh0p?V*5FWwK|6Y5?ew(c(n0|80`@xgIj7Y3RTFHw(@kLg)q!G!G*f>3a1^CVr znoMIe*OkFZqw!n)+o^KB+rUUBykZQ7QyB<*mty|1Ti(pz@Hoc|SkGzCoQD_UQ2%$| zH}-GVk9-lW6o;H<9G4D0la8szDFp+Lv3q>OATdnC!ZG$7RJhVX3J!vUKy>9{+X*B& zQa9-&>LilV35t0;9TA2;`9`2e#*oHD017&*M_^@ayWG+pwkj))o+E5@N8Ns6R2H8| zYwWTSD-AI{VK`2>EkmV#V;yr$3G*@7lDYJVodw>dvNJnn`e`jWT@O(}B8i7p2ZPI+ z1NL*>m8M()rUtLsNYVI)S}g1|s#`6D%G7I*1N{cINU>3ywO79@PSXtcjjVhBmIm5$ zo2?DBd^4`TM~vYadI;af8eEYx=?1Zj`?GYpe8@>+tp41a2y5iQ9`B>RggRF}j@$}89qiix1K0uAs&rj=Ji1&FkHj1h+E9<2R&?Q8aa#ZHz z?v7e3Q!xkR;>o-uO$gM_XtN+$1$_b`BHuu`P~|F#tKdk0zY(to48>A0!ruWYhk<*Q z1w%zNzZb$RB7wPy2TPuKrZxJEc5T3NOd#!>qQ8@2qyM$%X08=t*ME}iFED)=CQZC zmlp&eb4UGQ(->#mBThO8o&8b=87G~cmNCcZJ+9$szgy$#06tvST*GcAh$PO^i8Q9r zB+iNnBoOe5FNF+T-(c_4YaIIqK&R4Lf{n?F9o7dL`s}EjVMI}y6&V~MN@UhmheSsQ zc$2Wipa-##7V>ARISuC>OI~xy3ZVP14+n^mJnIBK$`pM1a?x}S#=x2(en9M_=P;hr z-C7k*tzh~owSP$M(is$WzI_nYurKZHKsyqU%63(=rSZP zNayA+k1gG$&#SWC#O1kX=iSUrZ&x4oRZzQ>8p)gMBQIus!M(X}3ksJW@1a#jtL}XH zD!P*NI-pJ~(hME&GQ5#O?767Nf`4i}7Migonoh|Hj#YP`wr56{6- z;K~SL@nU3W5i|a<%8e$Ybskm6Tu4+kU0c>!)?^$yNnsGUI9@7wzjo;@JT@;72@{@$ z-0|Iyp2LVr8q0~-4e)Y0H9K~4+Q)iwIYFr-Xg~Qp4r?s|vXP495*7=5}P z9h_EAFGTYlzzaJ*1Bu=A_>O*q&i}J7ZjiQeZ*I&~O|{~O%h2u*bT^uUZoGX}<7f}B zQyjOFUkh{E%SAF%yC!O8i+eZn89xQW+*yzd&QLW(yx@$Fk66g|FeNtm;G^|IEUgD# z$n*A;tqb)t=l$9^UGFUd4c|l(2STAG@c{FvN0Rj4F;OzwI$V`z9{;Q*(mvo6AAXiT zZvVEH_z%5^#eckrJfj?lAS`Yo@i^WWp?E+BFi9{>_BVIglmSiBYZ~4{w3G3XIqoV=wx!8r-nneA~p*D6L-tZ=I9%; z5jpQmKH36MKN6h}aX-6hS@jzdT#_cAt%`-C+QB})^R^Itv|wc8v+uGYJK2nh{1dbG zL#I8@V>JxTbrk%6wto^Sxr}B%&4=i}X+A9eD?G|u^79I)?{qF_6d}E+BE=M3uGHF* zeQQzSbZInL!7YOj`V+eDSU;VlR|9X@M}x@BNcbKh9>qDQZP}S%>1kTGT9208r&@Vm zem^YP18FZ$<(2J)$CPkopOl`|xN?9O*OYF@1X$8gYbZJ_37~_4HKVSp)tKyli6E1L zrfRY8Q)-3-%hX{0h5I1Wp>T@6h?z2;jGo%baP1|B$T`WLeI8yj#h_c&VZKbkPQLNN z;}W9ZJ+x5aV^Eq>?Z9eE(+6@H;dO?>e-JZmx@9?>NB-g}+NIL9neBTbN$)q9%Nm$% zz~I)^w##u3jK!EHODVd1?THGdbhOIo&VO~Y2Y>a9I?mC*D}r*uqi$OVh^~6_>?;m$8l}e2nzg~rlIrl@n^)-wgIj`R);X8qTSw1o+YT!*KZMA2A z7~S?(>~N+sSN1-Fc z!el8KD&}XBsWhCi$9lPZ^(^9&nE_ICy^nw96%v<)OPrrv2KzS;sC`27FK{-hXv_cE zNo%GZSF@Ck%-^lFvOiZ7)Mp`+@~}`!k|+qbpTE#RPgyZ@2YOOZpwPp=-5@B+&Z{&y z1|g|iaXy@IpL*(ASy_2|I$LuGg7HWao9w{@afe%HR$yna?_t}j~uLwc5(`<R2UQS3h3Pcy@iUko-OTuLTr&uTx54 zBg$iFaObB^>gO>SlK}(PBGjFP=>mxv7q3?klSNc_c6E>LNp3zxhN(Di&CxjCS}VYc z@iKKS8pSX7FR+&Q(O#ON6Q&-A;M#8VkX~Iip_TV~HI+@=eU~pj^1)5y$&jQE7l%|| zx-fnm;1Q}u0u!>Tf9J^h63U!F;KTs}Z$7Y7!MtovNk7}qKDC&uT^yq~H9iG!Kofq4 zw5ks6y)-!8K%)0reM2f zpqK^@4brFC#8)mjodaRGIOeOx`VXog+n++zj4-j*y3yc zJ8F4m*)f2ir~oD8CQA1u&qI<=3$}P+?=1LZn6*ec#uO@(XiFV;t3)(yz5W?*3bpAW z1U@mk@V6NKhw;YzukLxT6bK_C;A7do#v>vn}JtzeNY zp$-j4%m5e^^f7<|-jC`hSB)Z7QLB^NjC?D$1U+t3FuD(BzoFr9ErW(eSMABs!Yo>2 zjMp)O1aliC&L!`4(=2zs@K<5L_w*om&eOOZd%PIFC9tC?dy2aEKlu(B>k$9P(Z1Aw zGZdNs#r9-nS>?}A#ET%LEcAJH8tGL?adn35FfUT19 z4(cCht$AEL(c-W(M?kun*&rjxW^$OF>b=={wE1##b96PW4`jEai0$sO%!P|r&vkj4 zHt#qsfKdmF0q3#@+)oM^hfM@m!ZhU=XBcvbG0ZXy-029%EtWw=Nn>+FS(2q<9~8K> z^=qHL{ z=I%_y{pf}s%*-iyssas5Em@r_pln|s3e`zmO664|1gEY{>I1{zm(8UKAM4e#UBlPh z26TSapKkl$e!@K!k6qB?*)}Ywt#9S=6~*%bjfOpQO2l|N8uACXYy_Xl|y0; z5InF4by34h#0ls|m+B@gN8-#&Xx#5tydIv3UT~Um1o$#0gIXlI#J7K)5$2a-uXHJZ z`n?}L$Y-GSBB8xlV_|d+@mcl`pspjR|?CLM?6ZvpIddmUs zF~n(7z1P;`%@lpkjCJHgC>`(XTiZo@%7g;tXES|Jp)UP}}L6OT*rSK_Ft$0pe&WD2N6(0G4R=7>}X-v{v@=4(mg z3T9&<-?Qu6x3Yixnm>>v^85S012aUDq7?@Q2IdDQ0895q1r9@-p-oVFc!5BJD~B0M zv>Bd=6}A&^SU^)bS>En60UV<&(}oHG<}D>VtvX$CcK8phG+(O?kvsuALbYQXZC9MG z<1iIt)Wel9{_%##uR~l9wzDKWY7||jGcd_??Yg;Azj*s4@-hMYSX3&_PvUm0t!p)G zLR*eFv^=f*Epm?ugk9%9!Gx_25^3*+hMhscD|g%a^zClGA~xWj`+a+lj$7j{_pwi0 z$`I-05WY7e5k3_930q)Z!)~+$Gbs55mI{HZwL;8{xng;&l(4TdjCU~=BQia~QuV;zV9G#q0D;)TUH*seD!4I=( zRKCK+h5n+?kTDhah&!)DWbAIeR#{-^LvW@C=o$-1?uj5A8 zn*dvY`w-*vsNJcFxb=6kd>>ZDy@La7F})yI{qbh4Df;H|0}&Rc_|aN(Ld@_Ca_r2o#!eeB^z{0_fiKT<3L!BjewTXJ$z%lZoS9cV> zr&?xgfd&wTT<7t$(oRu`?+fm$2)~;cT0|F>Sf3cJ?VCjMKQNVfU6O#7W-M{I+MQEl zRLj1we`l+jZ!>AXX*d{Kd`SuD_)g99O8%ynf8R8gX^lIqk;cXuFh`*r>RjJGnb zfc{;8h}Mf}KmYTo6Ov)g&@^MBl<=HztMs(9-ao5GYKy>?f7FfL|IK)5_Lq_*E9=TH zeAbLoX;D-9fZM`o{BpxK>ehB2hVvDn$YkRX2{W#ZF5T#@U0X?Q1)p%ZY~?Vm>5qych~iKNB&s+ELDbN zad=WN3{)Kz2g+DJRJ15+juHc*UQe(@a2Xv&1=*dlz%y{W-3-CKu=dLBFJ^E&15p9k zbT}Fc>%x4Jk3MqwY6Y`|(cum@(Q z3;H*KV=YJ43Y2G)xYCEO7hsys%@A3%`z|9^ynE$3lriqzBCo<{?p0IwY1ec~^X10r zE}*gKUleHym8#xak47zUVi1l@zS2(mqt6N028wram88yJVr7UUM^vUu z*s0H^N0-X1uH%~Y75VHN8Fg&?M+S^P2F>dntLBEb&5u_xELy?J7ltI*D(j%MB{a)b zexNskz@C#^t3m1;=L+YPuF9%sx{X+JeGkeHra*H0&Mf#ab|LU}xi4b_`l%)QPVh&KbW%%;IqFj_e*Bw}^AqiV;r%lk{Pc&2?{b-J zd4*ErvaJ+ER$kHy*MX(XBiA$Ofl&-x{cDz9r2z>HmOxMB&oDm8|8r8TV1SnmDUJyQ z!KAMJ=zQg^i++uz+t2^wivjRFHVqmlnkO0<+8)(qSxbqL(4Yx~ic1Nic&tn3+?}Mm zXj?g@#fTdbzz?qgbIx$PDdq)p;g^6Nfz$)!l8cO?#;|b|!!1@Tw7YfJ(E?4iWpWO; zo$TX0Z09fndaHdT_`#moC0dYCk|_n|0h_3;(!n~kaQAGC)b1^IGHcglCAj<9qS7|E zoo}0HJ(2KD_#Rg;^Xjx0Yj0eJw{_%X&#!f|AU!wTooP0YdPYiz9e|-<&3S1Jx~Z&h z-R4?%Co={Ia_a!DzC$9M$})2e-A=(VBfx=FEuNtQ9e_3)im3+EAHh(e3jUkt!1(rh z@5nliRyVYJHu5y11_W@~zi@-IwPp#&exeF;Ib$=|wcSWuujFfZwOS_v<8#T@Ixyqr zLyl;w-X|)(Q|+Wp<9*gQ$kBO=jfrf+_#`*KB|?fb=sLDus7i2PjH>)Ze>{f4N8AYE zX{sqY96jQAH>)tS0O-Xpr{^^obKB)4~*jta2VV= zWcXId0CPf;P2OW_3&$gV+07RzAA;0E=td1_)g%cpO|6?N)qK^wqI?m8W{E-N0fZR@ z(GV{Y$O8u&3}SJo(4wgMJNQtqv%Jk8A9nz*#`=>E(fU}I`w`3Zl6mGb@H&#OlKTLn z?ia~~q~|}gP==Bfjh0Vtko}vH)by{aXRREtB4SoDc`Ub}twkv%3!_~xIc8+J3=PeB zig7EhXNUMDKDggxAHsD(lyqKgM0z6Ts(Vl^&VL8ip87DN8!BZzWpfl`}S~k_bW)f9BY&XM}r?A6z zAJ)?MJ;PB}I}Io_R#|#7q5Xn-5bgXG;J<4(Vmi(%u_w@UD%D}Jk+oDod;pCT06Uk8 zYA-I^YtZq$8|j8E!eq$6ODWoccSC}NDu-LR{?RhN7W&FTLbnIYEZk|b)RsNYWv+oa z)`?W2NL2-Ign2NU>lRVsGV)Tc&1myH`(r*LUyUNGE6f@Hdy)BYpJnK)&VXF*azbcK zGrjv%AHy$WLK9*MCBkHjWRi86KD^u6R0n1#_pdv1;ZwH9re48~YiOkjmW1*|UKx3j z*zr73tuie+Ovkm`vcTa_obXDu7;v3S9`wm?GPdbtPN1-!*yp&O*s^u86d6~8-z@cw z7Mjd8A(Xpw`M_ZwUMeJSB3O++&W%|{3QKG33(H*GrTM*Sx_^K>+pLOuI>%a*U20>{npv1`O>cYpG&5nJhY^5X+8j6L(bz z6X`tBjr=XfBUSkBf#BAg;%@qRmB2d2YWBE~^A!7$4ENjH(Xc$wl4J8XO&C)cG#FKw zY_P4qtdMf_s=NNa8aNPQt!OLO;-8e2a%&X1EZ=a4@MQL)KrmAAjIvxDgc0nmTw%=d z)`yaUxH+a74pYu_*i?~O-$?F)hU0CZS*IDiTy{Ct^TMFm*Kef3=iwTDvc0Ur0c*KRVRH`H5Vk{P(xQZ5CyncSfZLYMh( zP1-*!hnoCPAo`vt_~$YHtwjl%{9Fx%Fz6;Ds*ymC@;yO-@X!EWDPgPudOn7K1(ubJvR^soPmmCG^5U zkK9y(a0;TC*sLPD`ARBH->$gV!E|=To6Z=nw<)V~cD@HKNl9jF?2{7WFN6(~;a3PA z0D8!(sA}}QKAQIgllNCmV9;rm$O{EWtP|>mM{qQ1!sNps9wbAPmYFw*vdJW?P+}p< zNrvUBra8Jzh44{s!s5^(&l8@`k#>7QB0Gq)eT6s(A%a;(obiySy&WX^5uh}QN{kbU zTi9h4a9Zd#ze04QPyhHIr4*|FfrRi0x8%R|J^%1waFf4uvQr((Lq#3!-JWSQQwF>) zE-tP}Adewkl4*g;3K+65ZwN4mXq~ruZ+d9T#NbIULnfees%5)Tsa^ZCOtk>rIwAv- zA`m7`t=zRzi@mI|>Svp3<Cn=8%T{!?^(~4B!R!1~USF11|nXS|k6Jj)5W$5fgct-a%kH zx2L8j5>$`MA*g2@RFCc&IzSz&Lu*?sUqEX+FX zHB^8%Xbhx}(zY^i&iyX6M=S;k5i6n6A2&agUG_h2?(}?L9ZG;Q`3HwP9~M(_EdxV(Kc;CzN&4z19xM1z!KcFph?>z!W^^tf+y3uSg5LVYz`b>B8>i4 zP0X8v=fz_(pjDs7MN-N(>FvM3f!HyJX}4vc7Or-pdyshvt0}V}1G+b4P&3KoT@atw zk{zaHRu0>?oN8(-vg4%RH0apCVCW52H|DVavx`PqT7U3@*E>qVC}rrDNMTPYC($QL z?TE4ScUbrYad9=PCUAYZg;~6tgg`ZZ0&vyD;rG|#`ty4yRnxN?ZzUzS@2jL44edVd zA<#>rlNLrnfs2bjyMB0kV|cGt)DQw%^2jS%0!!WuMlj?0uvM4|UMbWsdVYweJG#P81Z{`fgxSYJ@bs?p6nr4eP13@_gLTrd(vq29rlJ zehB$aVNom;-nnDFsr9Al#j?y|b*q3i^QDc6-d#gcHq=;TB#O@Sp#9`gWtkk!x0FMZ zbr$#bk41vV*}-!Q?Gq#KU7Ms8u3a{uu){3&aq346mz5(iS;zNd_vSicS^aK>>FDx1aK=)kcSI?g zRfOu8p)}wrYSmJ^E(NEDkWT}kEOk<_HheHWg(3XI-!PUCw|999j{(s@TP5( z%i&?E2Sr`daZI54KdilTbLG+2{oAo^bZpz&v2EKe4&_^i6x~@CZrA?g(5OX zSn}{)#B9;AQ>Wz1+qi>sr575X*i&JBBlaE7tP;>BK0T^ke{=y=Z>(3Pr*8#we^0V6 z5(?~zPm(0;Aj)6IqLt!gzUg5mu{*=9$#tjdigJt*+#(zr-(H$BK4W`=JOgfpZ;MQ) zS^mH{Q->GE_`-ojUZo^*xN@!Z;2pF zJscTD(8U$ZP%w(dC))AdYQCb^ZRwIbvW5p)*%RNBxy2i)Jx8?sh0=Pv@@z9QJI@B` zUzyeQlXu9hdV;XrHD>RO+nY1HOvACObunfS$K~2nJ#1#2PGBZGcxKp@@Dn?eWxX2b za_aZstg5%AHDGu)et9Fe;c<=IJ1>cOJ_YA;y5clLNykFR%n)bd^^Jy&+CEx zIPPLIN)(p<_(-^&&p( zGb=hx5^PGda0=B$GX}%N6XFKzI&VGQK_RK;x(E8o@g5m0uS6^5hO!Nda9-Bj)wt!K zNlW*W599ARS2Giq220do-^w-y?FxvAT8+W4O7HWA+HmM(rh0wtA=7^SSX0wH8^4XJ zpKzk--iJ;t+sA62ZBT4#eQT28GIi{tSK{;!eK^tBWy^C=Xo$GGhm76lfoQM&Irn4L zU}JQ0#OY>l@i~ofm_3PxA{-lujzBJnEX|y-F_&6IYd-#Br<}smdFr~n#-PuioIJ_- zP-u>W8jAAvN!&rBbo+DqXK``jCqwq$X6Ny~l06<9!EtkexmVi-#~pp1g5sr5P~{1l zDmSfUw~p^iC#4pSR7!txUlI-p085*$old5P)-wlFVd9xDxI-l@k~?Jrb|XI#pb)vy z|0!a*MaTH7>j?vBJRkQcj^FSnqI33^d-@R*C=Vmw8rd3K(mCekkw@FI@uM>XhH-C7 z&V$*(t^ezLIM-kJuc>;a;j7k2aag+|bw@{yx%U+yvah;J^aY z2ZO|iV!W7Y8RS4V#xrrZ@rfvqvT3mzx~i?}k`%Rcvdrd?+9*!D_lw%dUHBW};`I`L z-$-^PvQZ{*?{H529;2=;6V;h|x~51tqcFeOowqaTU@lSr`HiC3@4kn zIk#I{c%qeY8>ix@uQP_pUae`a)iEBX&P)?U*P*S>k)BIm0lA=7l3gvE3C@`HxA_}$ z!U58l=yZ{LTot~<;-B&^edEUljkVzm9+em=eV)v6jAQnBwV0~u<$Bi4c2yd6*C8sa zb26+;IS+V{KYPmkHt?XYYbRR>)Pyn~tsETg8d@6lW@7Z_4s_dQo+c86O@Mp>d9tAE z+Ob``RJXa()+mk%^Q_#Eflp5n#tJd-RJX${u-Owe!&Fxta*QI?>FJbZ__W@GP3z0L zm$!bR9T8JuxDm7j4j&(PA`6YHjf9}$pvJq zsFltnr!=vP$3b(0VmTUD~(lM6Rq<&li#{*#?L`($b=NZqxslx zAzZJZy+HJMJvT9avatbkLqH+%65+TGsd|Rg*@BnCM&>GPnBgo{mTfVO5|s6O!H3jJ zaW!y$strf}lx6?L;-+in+&~*urDzzMWgZxy8jw#1Jqljomn{D2Q485Ag-nK7^`cyR zK4iF*7OeKg^q7Vv%!=iUBXHANQNOrGv(yGB_8=l`EJCC4+?O)Lr5c#+5nPaIu=HPcE?%4p2R$ zT5|O3O0uEPF`aFiR#=v-u3~yBT$UTYU8YP8S}nd4_vGX=n2p}i?J*f`&1kRR71Xxn zc}EJC?T_g#m-+^rc=}y~IVhy*-$VgW#cUWAUg&q3i4h1%@ZzlM73Lg+qf}o!Z zV{ruPIr8nWt_X3TI8cI(kvR4$BKmJ2IX^_(^`F4sSE%$9e!%EpOFamNkl72v+Zm;| zpsSqCl9Kg%kavZGNQ+QQ6HcwUkM$%;c53%EZKI~3(=B`nnyk`&nRB=lG#hRTmACk@yxG+YKFNLJpxaX?d=y*VKU#Sp<3u5m`)r+g98iZj{Mp>Y}j8hEKxQ#pgsa)0IL-hs7*m zwwuZD3IYG1-8b#m6*?()4Zzg}=;Zt{#(X5fJr91QrrVsnQmu_U#)+w6bEfe+A)FuS`2dote(?1Va!|TFS~)$ z;&uqvOFQF{ubiSE+zI{B4;jyO5l{cFTf+k>?4bzUexpX)g(A2;Dc0*|#>`lSh_EkM zLxb&{>|$Q<1%30v4v1xP{{jVfZyCkLsczBp${*|4ZeK(n%QFL?aqilp4MK@wr*s%M zWWG&kkEPFm@0P;>T?e#2-U21pzPtWxURlhz@Nf!qCnJ0+JvBHlKl=tAcXPx31n>6V z@I#olT7i5{->6(=?)eML3-q^sD=f_}qIe+oUo2x%EAmTFL3%1oeX99TX+3#&`f6ak zdr$jL5W0^~@z`c&$OLHmR7Qg z{fQbN>kfUQSXXYkv|QZ@$r%d8ou$gFHCj2m_B?Z7W8Ar6=OLBD&iV7AEbw*qf1Z{7 zN@2!#9!q>0Va6RGKLI{&3jWCcyEf(GSxl;e#pG&gA6+GUe+qmie^t2Q5y|E`4ifP#Bl5`Uc{ zUhzwEoN}YOe3E7|o8fxiO@IG5&v;>ZCs`B77X7(`c$jTD5*~~hw=$T0)Hkv$v7`Jh zVc<6_pFn7J1;y;Jr*%uJcV|*{#p?*%82Po>4dGzib2m_XCJWB#IKoVPI7wBOx_56r z_}rAfnZddh;n`aB{^u(Cld$cMRkwcAbKoWp=K+pXtA`B9KWJ`v!Z3Q*cGBoW+wDb) zc;`$Q^%|pHP*{PvvQPBGU&$CcT2EXZR%;PV~e-j4( zV~5P--&T!c$3Fw=0|`g5*Op&a4KTzJkbx-bq)bK@f6D27+&E{>xxPVkYlH6djWCo6 zB0jbMHkzFv=KbdRFXArl2xLrOVBhNQ>@JY0EuH=%>d4S!CXW1dRl$P8jr%!vq4zQ- zF6Z#X){ZF=Lu=dA+wNd<*roJ$0A-JSN;#wuX z5;g`-MP15fdP@fXI5syw!`PKC^G5Lh(!4SGkD5wRnfT(YqVq4bI-R%I%qAy(D^V2Q zCv&5YlS4@X3P~@i1I6i9^CMUhAl)gPb@K)L;$|UiwId)1dnJ^v2BlIWZLP;1Uvjx0 zH@^UO|LidG^)J9zQV^t5Wl&|6XE@4vU{ciPi%bi{M)A;{IqHR*eYe+?B>g$Sj`y?G zstCx-LDOny@|~80U_Uhm0o@iivE@cnCD$<2s6usnul{>Q{$)k(iU-PQGmrxZ(`t|O zbFwRbBDRH4BJct^nKRv#Ly*IGZV5A=p*a)F+hXjjk1+ zK0$EY-LJMYi$M7O6L@jGCWzpN+nPWh&BefE;ngi91n z4qfyqMSWVGsW<#H%0 YF#V#VEkT}(I5P;d_#CtHLLCO`Rpat5=%hCY4ESO8Elq2^@=bo-_BIvev*w zZY}oHIkF}Tyd`?cUtwSk^d>AftRdQbG7bT@iZtlC!Im?(D!2*6 z3!na=&PlcCiru zpizeRDUA{Z!hj_~PUEC=IBxfb!p~#R7(=UYm^-bBc*?a1jDe%QX&7(@yXH|`C0{ID6u6;&7VCtlZ zP^3b&yfOr}7fNF7`LhnOa9O|rxA#+lvt(rQcO#4aZih zaCKy zFT{+6<5y5sMkiNLFGvc9|4o(=_xIurbLHz1_Ap{a)1&sKs{(fkZXNV#ym%w}6lwTy z)4jVdT4HPyaJ_#t_VSb{m0jgC=lUpfJsv%C%i{Hiv#)|!^;MloE`!29QtiYp^ryq* zqvp&alRq-$kOf6eO5ZS^osZz^y_pmc85sT=JF~IiCLPU;`km9KImMt()l)o^#Vk40 z<|WZ<%jf=ZT&{3sI-mRz&+3`VYDV5|LKnfQq7Fq0In8D2{Sa(*gtdedCbELbMvH>k z`;lmK&y9K?=Pv%y;ba)>m{Y6y2kPuh5jS$`JW+dvP^#m&9B-u`meRi`gIlm zgM$8V#`%BH<^Lg({~IX&|A62||NcOAsr`#*EyJ+EQ;KZ4P^y@(NMxUwsr(C8I0zUn zjUilEsp_GX}%czb`5nUM%)ZvPlQkt0-U#b7zivjmOmm`Ru|>n&OE zjqOUxrKp%uc%Lqk2o5LM+?gZ~OCJ;Ov0&0lLB&dis^zU-Sf;$e{b>S0SG7dhN7ZRe z;}zJHv$xkv7aQ^S_eVBlf`MelB&>d4N}p%lMl$t;0{$dFEp47gmC@~dm4tYd<5Z~h zmqrDuc`q&eHY{d97EC%0NsC^!TF&;C+GzN17(yO8Tl{z~(D!+SUz z(*2ce3cD*Y4C~+14PqY1gKC3=xKDC!0^E07&XO{S)OE#CVh0DF%8-V8Zsv#kq{&a9TQsKq z-cjNcack+9SLCYkFU3ZXPrW5y9F;QS5VwFV7pp+O#1N(=b$vh|qIHD4pd1JDVHkE$ zqUk3@ytaNvZ;Mk3z0VgGP%`47a6lR*-!IIFYRF@93Y)xwp_uN`rGV{q_=k8*Rq3j~ z`4W!P|20tYzgEMBMmV^Gk;@>=3A5*Hhqu4zRnGkJh$oh5zy_{M|kRIKt)-HyaLjlxpg%wQ4NfA2=1!VMT!hmX3f=Me^j~;B~sP%98kw$XsWd*`i5{<7#9#|`~aKT4~Sm)+v zBB(Y5T1OUIycE#-^oW0VnCQ&lo@4o8r`1YBw}gEqaZYF4Il=VZj0R`YQiPDbFJf7d z9oJ8db5Jm(guPD0VcFZL5qp?Hb6L0vUp?q;?eq<$e*d+e=uK=T<;YoObV`PpjZXRl zjEssFg-XFvK}B+B=xB5nWAt3Am3Cv;%KdS6*#dhmDuYa(h2EynYW^jHb^lT&y!8d< z1#88-V~=5edF3htoL87-&N*Q4d=UiFFW=1n0ecv-MDN*;p^I1i_b~Cx<6Ia6S-hxw zP8=%4O-D#BStU0D@tW6c=FzGC-f3aaM^(DT((8FsVDrrBRt?;JeCyKg!C}t4_?1@M<%mhEglh=mvV4WP1SJn}203nSD;@g-;UE8y1j;UqzOOr% z>c8H(|KqFF>)*KzjVK*_4UA8O4yJ|)Ar28q&_H3d#9oFqJ4tK$xJDtOUwp!A2(1;7 z16Q@S^^>+1kf`TH>OY&8AAfRiEH7L89wT%?$Vh z-O8{V7Vrnw1JEl6(t~_01JZ+f?G3^R_XHJJ=D{~{5XF~!a6?XDaO@N@qT%6_GP2^~ zlQRMu=WzW*5$AB@kuXx@`4%?f;Q2Nkypiwa$UE&(izS7GxG#W|iDE={EcShSa+HkJ zNgP#w@qmm}Nqm|m@oymr3n?tAN_27OYB-Ge_OTe+mBnFow5)d>;X!ov-^3Ut@$Ew~ zIPp&CU3&dSHb|hS{=|OnvZ1PlaIm} z28rc188|U3rrQTb(jATjd;-~~-w*fD9gMpMpa>3E0nPYm_90mJ64Zj$(#%Nf zFc#JV6mCCtc^Z*=Y1KcwjvZj~8qu@m#+D6Uy3EiGWza=5=BLTI*5?^=C1|N(l@Gc+ zTYxf)LvHTm)Fo3Y<8x|usgYmDsmzF1$Br`TX9zW%1kD8C)h3%wH0o0<-%a3~EK$cye%EB|>TaHt z&G*!^;u!Pz;gZlmNjXF1v@k!vet|qVY#nP0)7?Dw*MX*KT{9ft3GY#=3C+(o_-;X+ zdL@T<(X>h9YBRIfI`D#I`+%q=6dhe|drN12H$MrI^zCz;CwZ`^?bm7Jubd>xg~$|l z_gebZVZdp0nTqu|-*7?Ig8sFerRt%+mKuA5l7?g!OBvhn5nEqUjN3XAZj9I%SxJ|+ z@LsQyp|PeKMi(bNUYN0?r7Ml7=-i3&jSq1%ZwMK;oaaL=UlF{Gc@M`=ikIn;l<16k z)mvU?A43v8{3Asa=CNvGZZxwSREsJHHdFy_*_Ok1d0g%c7Gg@&cPnnG>E-oUaFx`b z0Pbmc@R5GsgXAQ>1x4AU!5G8G(NV+J7G7ycir7c7j)CBW2uTArTmk`6F?Gr@LBw32!6N)-jAgkn?wQW*CP0JB>KWfXzWqk$)|vY;J0l&UdlyBiRWK}9 z24g!*4v3guZ-L*!YXy~zTO7KX)s&(0^$~X_NS;6!caoB7|HUZ%RhHWQ zGm2K3q+DrC)}bO#hRQ)*ZW#-mIm2{8b{H@_MxK^cwWYF^18q{nH&#_CO>t_~N_ipC zs-#zTT2XQd5#A-XeRj`BKa1Uha_s9~oXpRbQgYFjLJ%+9Dq=%^OgV*sr2Ot&YpMkrcnwmD1Q&a@0~ofUeyMJ*b`Wi8#1kIfFGJ@>etF&h-#+uy`$SqA0v1zD%b5*#hgQ>}^< z@kIjBAe~=AU5>NJd)&~fghpQ(n9@}D0w4J~1ZVCtzZSh4nDY^sELM~mY`$K?FfuBwH~)UMQp27H3Qh)9Te`CAM5e~7)#Kj>l+=?dt-0{;^~s=BYVvY{7S znmQcvzg8D?M0QwjYBjcWytCVDV2&7HUYW5iw$>1}M(Zu#!3s|x-%Sij=x&yz{Pr75 z5?e{4N-7rXQ8lXZjZ!`$(K>PrJS9l}m5*vqfWT+Xh4_Tzr4O)r?yY zdJ)PLV_RpyH)jA&k`lyxiowMB@`2Kp2Slajv)2aMVFsIiLJ&qQw8UPnqBuuYR9(N; z6!g$VkwzVC7TOKz)RF}06xdC}I(5f*>h$68))SQO4(WsIfkjtjwqP z1FO~@#{G#VFHpkSU9TUpnbv|A>vFs}@mG7Ou(o@Dm#{$uL-Ppjs{Rel53p+fC%=L> ze$zBhtq~UKPj_WI-e0@3`@IN_gT*YLYMpyxaCI@l-QJ8yl*gzJ~(?K?1Yd3npf7Zqb3O%7NXV1$Ex+Cy|sdvCE+SdV`Pp)o+^vx@X7OW;V zjf_0|5gGOzF}LOsQMq%)c7%v1X}_A5^T8AQ4?i;*_Vt=eY32uv4_tEE6q$~`U88>k z6#!j;#4mZP>oKo5$Ms@7sJ#XSWlmGYiD)CIMx{;hNzlw76F26=YKv|@p=S$M&}ws5 z`HOq4#nKi&d}p?}OJsKF(zv5wa6u?C^)F9bC!DL)#$6V z#}iOmZjO0icXVQTNkeW6)rS1s7D}Ut&L3yV7*-;(G}UUPVU~lf8|VYDrP-Z zIWGlZJ7KT@&~gghlL?D6Yb8hC?QccKU#ut4DK!BwcP6_K8|6WUG756lcrQP!i(S}6 z%pmXnvLDgO*&V9#msLg6oIrQ~6V;-%kWNhW^^BqZ5^Dedx$yr{qXmgUQgJe7TB7;=I5Nbz@LE0ai&y!8gyW>gI#DL4kcO8$rZT^Y(EteVolg(EG zzmvRI9zKGZ@8>f4Z^+4nfwv}#exTBXRPXutAV+2Soe<+QLeJb(J>QPf^5FwmpvP;3 zxM9aP^6|lrxTq+FxM9Y5^WSijRr28jZyBh1K#p4S-w=~`f^VS|KcL6+gq~Tc{6UU- zgq~@s{K1a?e?lJl3q4a(eS+?R6a*j>sUrUYbHW5R0HVR15P>d$PQpP?B7txF z!9>$gP9Q)yfN20W(mn|?R&Xo$Uy&G zAKXDSBJ<#Muze|Hg+LG7K~|z%h#P$13BU((&;sCtIH-%92UQR}3Yh@b57+-K0gePI z1StfDgfN6q^qVLMkO+tj6h>wYfDWz|S|uVOiWHgzyCDG@Ba;(#f7_2D>IUDRAnFD+ z762+En-Prz=)Ng|7!w0&klBf>0gHi};QQprjKP}l#xOt)p-xz1YM>cWYOp4VF*(o+ zxh7B(q7Y=z8o4G|6U>+%D30t9pb1q7Gw6lv5VZQum=q{S#1Xs-YD^2XBWez|gq#B{ z#27?G<^?ncu0j}d0{My70T&Q;NP~XJP(t|Nb0GW3z?z^ZTwqNwFz6I~4q_jVs2gTq zho~E2pO>f`Zr_`z8>tX)&JIFTRxJ|)qM(0%X|HLykK4SsM2@CG`_2!Id3 z26sXq+#re#mm1m+~^?pfZcc_`+vKUK=uc{u|WPr*v}*SfT)C0 zg-`{lggt*1;)h#w$_Fh!3GiYl{{!{FrzrUC916fsxCjTB`u2mb94pX^xjZe%3#U9S z*bAauBghM*TqD>Ep_~v@4eVhc-w%8-F35|%d?nC}znn9G2V@Zs&;_%Y1(*VVz*KAy z%7H$w&fkVSzs%nTIUf<~LR;(*dgm&44}O7B`~&i!ulNV-At`?w>AXzH_uHaWz5w*O zsbX2c3vxM9@C$Ug3LppayeMBD>IYJV*h3hQVviQ z$;S+O0WCLDq*t_4B+bVR40vxJA=y z7D|5Wn*DSRVEFF(MM_#Ly%5w``{k3uVBp;|UnM%D;+O9e#jqowa8JX35Z`MK9)ed!of}25$wg|wI8OmpnA@utcsEfxaxZ+C$-%MWJMj8_+gb3u-Ay?1g)LwX7$@(c z@UlS5`zpX{x&ByWMrq|`WZ}tWY(qQ+9e!V10O5*Iq4!&s-!RoM_!kD`y)h|1jHvA8 znxd&Z*~X|cA1mb%cDtE-YEf7~Mp02f0R*Xb!mlIoAnqq@*z?Sl(THv%8-4z8Y!}-G zAT}Ba&%)E7_dIq2lZ5Ka;i$BeXgQ9=OvEqS(p1uFBTQ}a72J*9*d}3-iG?oDuxby6 zJTfRWv`OY7-h&_pISy$r^&q!y5jaY1hU~-4A-fLMW*j4W$6$RRZsL!H_{+p9qjoel zU+l|%DJK>3b(T#I$df{;&C)7v#u@m~;NrG;_p_EM-5!EP3ZrnpEn|{2lb#l(N82KK}1hMG@ zK8SmAf+A*pe7C+Ba#lw3G?oS2Wu~ip;6(- zBqf{}@b!KkWddYG7_8Ik78*^39G|&`xY2o04zY0J@+j6Pwnr`~lm4!fBIhFOA)uO- zDU3-?HIbscIpCQ=II@D!tNu8(cbJ`A^l2A|o50&br{a*Feb?KS-4^$V%ZV7@thLgb zv-?Z+!jQ4JgaVUg#4kvmsfS4key0MqMT&$=A#bXgbqvW-1u~k2FcH((U>Z=*wouPL z0B?G(lH3(P)4pX!R8VNj%c&#^^YLh#h$zl-Pfer9Os;1L7E`g{<&4IQX@B zZGHDcZgFP!&LNFMkiTN{AE~t*YwyTEn`b&@^7eYml;u`w2yX zQ|q?=hzD#S$j!)|PBpQ-3)LcyTPngD&hp@vw$m&+AxkT2QDC;kr3ZC< z;bg9;t*jfplpYWxXhwhyc9&z8&d$iT2zhVD9CS^n*z=H{^r7#s$IK9#;J72lQ?s`q z13Hn9l)c7$ix5aaMhNYSEyrZO5!!~`GeYT>E^c$N?|yubiCZZa8{dnKMe{2+DaVDZ4eK$KXH zgfnL!4#<&Oq~GFaB1p0@N1>gXrbZ}*7{+wW?YQqe%T~`}gk3F6ha>nQZS>utL-3{$ zB%YnUo|e+0w7_32R4ip%-n;ATF~Rjt6A?(=mMUD$VRStNI-xx0o?Hc#s5&8k7k;&XuB+MOv;Tz2vCF-f!?t37?12rH<#Cu*_Lx)+?yK=xTAO~%5;u?4&bm5nY9m4>DQ40GP0$%LT<5*jcGHE< zJ&yU$c1;FXZNTl$oW@xFPDHTXo#&27LgnWXmEZRE0BLRWgnd$27^9Tk;S#cT>dmGQnhQ9>;Y^aF z#p82{d*~~(`HPMFplR44mk(0xi^QOV@Y3PsYiJp;*9e!|{{8xj*6;4Lk$AH7(bT-B zF`BJ>YMI5=n1>Rc22fdv9_bY2JOB(gQ($un(Ggn8+Bcfy9PIhK+^!%85Cn~>n z)yx*r;&OH5L?7EA>bBhGT;Z|(0j3P~IkX~b*!ep?{`@jnb5se%yfPV*>2fXnM7%wc zN%P2)Bo(I=h*LLYLQcRWFdNJ_78e3&s|hW6{Oi zaWALU`c64?*|TiFT;~UTkqJ(=j-T7TM`T@$exfp>e%~IiaV({He#@!3j@>sxWkyoE z@YoH`rL_t2KA_T@O;l9qrV$A8>t-MGd3%uo1vqUBuQCbxRs+{sXR+#>=Ich`3N7;C zo=6$vjqi~!`tkD7q@r>{e2l~Ft@UDZboLi4W~q(cMiI5JwT|l2s9R7g8lsW^;K(gU zKTCW-_Xpw>2#LB(TcMV*aWR3l1O{q?QKa*A#g9AUX9=>MSIC!!!AfmPz;>lGMmY`Q zUOo7xyXRSKIYA8YM57zt#CDmFOebEuMIVsiPj0d<5s0=BPkDjFT(Wt!x{8zOC}fFV z`O7j6=K})8#j#Hg2`A*7QDwZ;0U`47XKQP@mN1V6CUYaRe>U&(l2?QXy>%G}u|>kM zBSL}+@(3B>m@M|VV4dO=i%))o;9{S5K0CefPt6erWvpReqSe&h7h`E9TGmE;kvByv zP8e}TDJ^6lC<~@599WEM*`5@7T%~8A!G_oAN1;pNS$hFvxT49GCO!1^x#aPcBFR8o z|G<|>>T)y?C8r&Q#rgz`C{U0CB$SIAlo_R6LcE-!EfH+8Nb8y&eXQvx3+VLe@>5BKUa zk_a=yQAAdR^}TZmhL6%b+A61Ln=hs#g&Tg#PF&IauF79XoUjP3is$Si)uXm5xVR?( zE*2{Gx^Amxeps5s;_MZ{Oz633?}%v^57J2<sAHdMf%Nmd zSma^AP(`J>BgST{lQY`s(r#N1vQJpmymDYK3%m`Wrtv?6{mBJ zOiD1%y4U@p5oZM($ae{SJqsHt&@(>VRC9dK={F~oSSm|TUYFaH7~ZuKFO&b z9P9h#@u6ppkK=ah7{!(+sRP9}0@nph^1`$zUKa|USlXX^*DJwj~pE2xypH@tmEFSgTy~DF8{_62{*;9ajP@(nKU65+s^pxFR*2E&bOXd|FFI5D5R^88I}_{2a1@CCYaZ*yB-}X%1p?iw z`RkXNrRA0+#y93?*j#<`M7RKVGW$%+aI@ytIEPhyu)O#Vo}r4$t5J86mMSI>hz2;C=%n2w*?GTSPC4#VPC0mh(H!$eWmn0-)8SU_ zy0Dz!sRGdwQHP0P$GsB^P5wj23xv}rfc>nzOWkf&XixAw%PiGOeuCn!he zmAQ;VNtJZDDch-$w?ay^xMr}M1?kh#wnh-J`qmOli(Uk=x6rd38uNMgq{NG;%S==v zQCcThf7GxZmGa#c;QXUq=jMpLl)?zC{#k6{50L zx=L6Z^z=XWG1?O=!sF(MAUkG0kg^CQBOK<>`0&l!Z@Z#qy(l_x!ml(kA-C1?F|O^& zXFEDl7^4}e?%RqCZ1)+j7SjCdslD7nN_J11>t<}cjxb3M-|?!h=|`U-4D9*+UHop& zLWm=UQU94-D0{evbu5Yi`ZyjB0uG*0{u0upSV7(qs8KeDEJ{v=!!{O8I%n4tQTNj( z#x5-4&&|RvDOZk7x$|t*X<%&vD=w2Ac<9wB6I1MvvaR#$8A$fg6O_)J9H!lDqGjuK zVFwuVJVx|kw_$=o{M;CtVCRJM40uDjc)0PrmXijledVl^vedMZVYHWfHZIMub43Gt zSwjj1tIi*7w0sLTxm893?gap*c(NiVY@?^)dtqSdcQCo|`r3jZ z+)P}kWer5O>b?^*Fgg0$0@<5Q-pK5`MV8q`lpY7^1cK@nH{+5pelWQWmBXqKU0op6 z)F=t}%1Wtg+)905shtzMoZRT2`?~K##w=iRYMEqGbq^(6+JixIa0&eJ1OSM5$G*(wL9ph#=inb9gN(Jh5#rovZiRv}c|@-+D!)#x1ClxgFJ zjcfFDbXu32uT-qlgaFGMPysLtVoY%~BSMX17AhS5xDYn>8`rOOzo=O5TsdSZBh3oR zz~9r=gHC5PO4ho^IWV+} z`~vslz|U4exLs*wvQQIt_%ixL8{;bW4P58^7zAV_Cbqe>yZ0@hkBiJ|@PBIhceZoz zUp`efA57?=HcJ+=s}lZP^RBYzw%X2C6j`r{>Pp9Y7=sGkvkLaoA;wsSo%05G0x!x$XSATNfpTNO0Bi1svQE*SG zFs}O+l^}B3=1Q%|XCXuDc}5+LWsJJ!=`jXqp3GM48|+l1VlsoQ94e@jH&B0-qq z&~J3gKcgy@OL((AfM81y%d{%uPV-L|Tmg|lrVBEh@^$9m&lgXSxptOoCmLw;4CChx zd1ltF^4N|;V!b!i7o91Zj8d@L(@&OmtkvhMS_7f+SI1`KV+~HlB)AanRL* zC$11VJ{0t}&9&ZQ_ei$Jbd};Fu4aO8-UA?WQg&AJo<+*jvAo~rbIu(bM=H^(R8CaU z??$Y;54z#Yrk`>U7UJC7Qhn*!*+S9++L06aBj|3!_ z1Fv>luO05+8Op+z2QWnWbW8VU2;Knw!nX960<*s5-en>ce7Z3RQ_K`=Vk|1g3&K1| z-*e-prnah!2^{L8Zm+twbUNHkKE2Hj_IN6!d36~gUKNcXD*HB;2e4~6vxgP`Cb9UC zJd{9_Ebpui0NSdHJLtEE0H!1eh*w>ss=TaxS^oq~x@@M4?G>{YA-l7OlsS@C_JlQ@}O0 z!KaYtmzFv;wKfHKvH(r;xO^$~TSy)Pk_AMYEmJsh7(495!p>XWd4eML%pd5ktS-4% z7v>uVF7#G)${z5~b9Qt#8fq*Ao16A_f}cM1BKl;70=K%3y6(K!ZyaR)NF#V661($` zH{LUt)`b01F!DusAWO$NU>|L*X`z!LB|-&Zxj6a!m^SKN{=Nux?#&HY#7^KjkC!#$ z!c03NMU-*iw)$R?w8UTYmqD1Ho^-9Zt+6n*IhWtnTN2TR7$?qe%&VHe!|QLcT6{ou z#Y1;=BjO0YT~~=^5sRtjwob%M2kJMa(4ueNDtzpp0^PE<17*IZ(83)>EgTd}{hdS< zJoQ-lJBuHTL1(@>jSt<6I%_)KUY6#MbeCtR)xuuk%N>bi>({?5DBarNvL1(C9m*JZ zYh|n%Nz*Rq-C4t3C-unWCC`$}Eg=4eN+a(PxK^`tBZi^0_2_Lh)LS6kJYL{W9S~e< z$qmq_nFwE;!dQm$H;T`aOOKV6=u@u;_Vbo}FZM3FdXHeRB3-&`&mKT*gHPPm9g^e{ z?X)=&(TY6$9>QcrT$Gry2u!`w6Jx?6nhmz(EzYM{oYSERZ0yh%)b-QoKN&mFi(wOV z4xpcQO$anCUR`>HZF)$h&1H;*w^=#svn~+OgE}cFr=vz6dZ5TA{w=uWD=`D|)`3P` z73n#Ty=4%$MJbvsmIR$IrIgCr9ETt4ASAxRf2bU0)B-Ku9k8JpCa}l83k~=?d#ISdrE~#27Xlq+P2xuVXwf@;(3ulV=}JoguZWi#=r4 z%Ee@ez$Wg)pp_w3gOX^1SzQAyQNFeR8(W)Xbv? zZ&Vm4@pjim^zOIN6irU|d$w^LE}|NHZCug{&il^2VmVIfy#sqrWyM>P1r<#>TsK|? zj|$`YM5zfud%esgkyd%P!KrgmUha!7=MdgvFHMvSqq(Ft-skgxi;R*1qbva0#3xyosyI!crq1bdnmNt+sRi$?8C1!R7ehd5v=?8wdunRe-m81{>eajZd4@gDU!5;nj83v%&YO#|^oCP!?k+oey>Gp7pVtmP z^kseI2|NUwgJ?ND79godph(7D>+SD<;kzS3FjyB(WGY68>8cyH@gb~Yef;cMi392-QXYF`jXkfz8~$ezXF z+Y+Xc_N;YSQ|o&zpC0>3Ybjdg#&+UoeW@?)oAq2YomW{j*3)s_8~m%*vsPH!g+#BG zb7z`f$jLyy+g>3=74{=d?CK$;xLYQe;LU8!B_-n$+*9&TZ&3N7HOMv*>IFE~QPXvI#ME$2re=o}rzbx$#Xjx`c>g ze>GWb9PfZSV{+~uNX_O0i^Qc^gp5v(8yp9+I$Ou?mbw~qn@Ms>$o6m_2}Jkhd8jlT z$h3wb&V1S7jKpiz^!Ra->+iR$_p}4gkQ=TCp;phNY z@R><9X6rW_xw7;Wb)xxB?$8;`$@g{0%h72CcMlQGy|%YC8tMfzam)G2UcFz+^K3Pc z`&bn8~5wa}DcHhS&rpL*mIAzxG+B zI^wl0ss*8Y&tb&`wyG)qXZxzW891=$ezY27sWntfV z)vO;o1Kd3@@NlmX-yDB74x}sfO;AC|qegH{=<-fC~rM%a99MW+P`}^>)U2J zjaZ|IjR-e!VwbOC>r~J5;rpRM|}G-!65Pjt10gL4L=CpQD?G{62@Mc8XKJ$fBXj zt5NG#)uMu1zRIpqkF0fRv#hTwierGLMH@yRpi0&3VK<2z-p{lBW~q*%HyYPuOW@Gv1O%?@11;&~|D>gfm_= z`{g{|X`kiP)D;?M6U4L1S*vX7-OT%ovG~)U4v_b@6PGS}MhcgFtUMTc(2G_Tj)NO- z9#g0UE1jYpv&mad_?rSTqVEqk>q?odbG|dIveBKmNs~sma)hoMyk*vPDQ+sLbhz=4`(=3QC;IT$u7| zGl)2;JuwGHy+m8gPO<Q3=h*>kJ99AY~o(j2|V2&tE16j_J)p7r8%<}G(1oK42SP;8AYUD zP8Jd@H=+?rS}x+OWzn(Ux-E*~o$`J!6Ek=|^=on6nm%uHrn#)u3ox4=NYNeTg*yq~~gG-_}qj?^>G-)lDIZ#?pT6rzwrL zuH7DF;vH0Xz2l-dh zOxBb!WfSYA%4Mw!L~s4H8Stxe4X(O2YjdFh4wdDbv#TTJh>)`Dl_D!84$lMMZpY{Y z)t0ZqVEnHGj!ELZ>$a!r4PRTu7q3qu%?NQTGt%vQbxpF5+<6?^SolR;&skY`R-WO2 z&)nFotDXZ~J8LmUr;R3F>+PNF+hu33J#NpVoTqAc4Yc&t>zOf|w!Ck0>y=jCciyRP zjarMBkLiY;o(T;jt3$sdeK#PmT~F0q;;ka^49Rs8Kv|B50$pd3H{r*28Qt5>ZEV|} zwrdr2bDkYu)3wtUCD$2ewt2Z72Ww`=JI(i)HFu6I3{L07p#A?|MEA! z-}<{0cJ;9;>EwQ3RkmdaGV224esodqN2+6x|Ablg7u7rI6_#Jkm1Y>dM~f%REPhQQer*!H*UOdWTbSdXmH)^meoZBQ?H=8?VQy;2 z1}V;(nx8s0*+W&ajV=$HF>cRQ%Y~N-O6}d`8`(5=*TDSjFwf-A#Trn(DI3V@)41=HTwJVu@eec^;wAGvRprDD7%9M&iW^4FdEi1A2rZ z4e`J)E&i6DAh%#3x4=JItSAG_O^67LiL#7|C|Hpe0X=w-Bq4rWF@7nT7(GyNLT$r> zFTs8bBZ6+&q3bM2TG*kFfNzZ8)j@s-_Cj7vy`rd72YGrM3~A8Nm=3Tl2bj$f6o%bg zazdE0WKK?#BxiZo+FbjT%R5Z9VO>^N@TRB%i#zD1@wP1KZQWKiS&KVbBNWFvNSI^+ z4+P+s){t8+kXy@u9&SJn{$KJNHuxnoWZnpbeJpq$8|2m(aQjGkX>Jkw$Xu>5%EHJl zt}*?#(c*%HO}FJ$u)Q?Ix9i(K60ImVSl~F-+K+h_m2LjL&f)xsf6`Ba> zVF&a`VfL5|61lJ-(F1xYAoGI!QvL{9eGDBF(mpE^E>`IE#|etRM1djV7@TDW@tKoR zVX?tB`3Ad9NGLFwxBdCbHW1JU$B;oAmptUloc39k1F?hBt#}8 zYrr>1aC-sp*e*dj10w!jK{|UO^Fbn0W~5Ftq9T^RKyHNqdVKztdf1`hfF3;^Btlt8#bH4e7Nl_&q>sU_2lPz;Eu#QE ztbm>^q@g*dH*FpV?lQb zf`MNOK?<7?@gMj%F_7nzNqLS?#at_F?qicz-~K5{ypV|044cM})P(Wvi;Sb{W47A8 zj=Tzl+kY}nXJbi!$z0sw9ii|w;{c9YP4!yUq%H0!na0bR#!KrUagqg4nGxxl5#2E% zRk9*E1HSQscOm4m;9!Ne1A1sMdjb=}+#}^j%pQ71Hc_vE{LJ##VeaAbBdlJA1Y4-r zWZ5ay3>mob)>lB&c%s@t!c~X89QL8JiTFFMZts-Nj4>N>?+=7QR zgaE$;hcx^cRdC3>R6lb=qO^|-DV7-#=4Xa`=$W|)1OA~bij$XN&rXrzXGZrjEPd!v zX|iL9w^kamQW~*B(dVEx2Njj+6`^l zof(QfGKgQp)(*L*s@iO8=$e=|N2TsEL>p7r4(l-d+;q*ma;e>bOj0 zUpnu#oMZ@Wf47Q58OC8*AQt%ENx!Z3@nfLC+S<{j8=7L&ygFaw8>n`JFiZ4OfN@a# zeq16Z5wt|Rn|L3jc_CVXsD$FB(;itWOJ-QSq%`t5 zr`M#JuU{n{;S!bfaKg>NQ{&vPl{ogUxU7kg&-b zJdWL=|4@T3zZn?rlA%@&SFGZ+Q4s#s4cM#OMl~o+!*l6R*01VhpiLfCOVh$kJy=HL zVJFt>1G5+dBdHs2tl9hN1H|2?Esr=_RPwj^#AQb?*_bp7#*qb>Sqz z0=FAqok`Fiy`#?vqcOhPBEpQt5n+6|rOX&E>-&^@8JDPW{tTCPZw z;qZOcexS1r(5EU`;-Xv?|93pmdw@w*c51c3wW>1W@f6`8sY$bB>B^l9kZ9c$US*R_ z1UE_w!kbry1w!Z6yMU;NwYQ?CTt5znD$O>>{1X8^n?geI=mD&2ev3)m>Ve7ohN)U| zkOA~|+`0~IU)q779D;Z{c0O$0=pV$(y%V$afJ$~KJzIvSThshb*;O&K-;O*-tCE|l zkvpIBy@=773`ee2TZS^79fi8G(rj{=XYA%^q3195@y|2j>!Xw^RfSCHrOBF|#pXpR zYQYPfZY7mIaccyR@WKJVIt#f`7f+3^Ej=pt4#h|ub%!8urcvKs0n?~j2**iWf7zh( zFVh)NwxhwrMZhYR%ra<|?@v$s>adE^0@^eC8QlOI5w92p^?W2p@*t#dT;Q#tr+BzC zL>`Vp$?AAq(knO488in;?Ht^UQAzWSz`L^M@UmK6*IehMKJ{#+hra!|lZ||Z zK0We2(QBy=n%tzva~Iqb%ue>4(6V!d^|SV{{*-?%AC&8g>-`q45AAtK%>Q+ng<%jr zp^5!+R8fbDf0r=4GLg&|zE*D%AJOR-++_|~MO@u$U@;~K^S2uB%RkUzVv;OkAC$ZZ z$S7amd1pKweOTy0=`~8cJFFzvgW%vXa8{n$`WKUe?=$_(exH2Nv2NziC(bLiYNCC@ z-h&%tnP~JH$-tMLVvO6NjKk!ol^N`_@TsaBP5j_I0z}(|eu;M)qs)2)C{_OXJ#)-> zbSvF{e)wzdIN1ZjrBGK-u~PnM_u%6={^Ph;XQS?W7sS$fjt=H2?=Q!=1U0AwOzEoE zzxmIwaDpntK6t9L;s2MH{)g!0uKy1tNd5y1j2S88Yj-MMKWko2@ek?1ASxj?WC#@e z(6vEeNNhD}w#a~)qG;X*_ybiB&u1Ya5Jv6NYUQCv1$imWT^x7R0Q=F!N&MU=qxbKQo`f$lQRTXE*N)pVZA4DN9dm(KL)`em zYV{R1Fa^*7)xHT)_ffM-%{*?(!_C=!hZ4hKs*d;t_KHx&$>T;} z!}@qLh_>5)u_(ZfHjPa)jAP%o9WhS016iippPkREX%4^564F&Y$x>m%oef%nKWG2d zz^)tQkbd+5N@M&#@xlIKZDiyNA7Bj3r~Ssz9)@B*t5KR6qPSwof4y7txLrAO zZ1r5~e0w|P{xSTp)J2KF?^w070SD!3UA~}EZx0fi?NjHNv!1b9X|Sh6gxZI#x-|8x zYlI!x_WC56A=|qQ5xKqkSrS zeDi3Q>e94sVG~v7e2RD}R)Q}ik|}G*R=lUA7*ZG!4O1l7Lg_1|2_ziw)F^QA0kEm- z0Ij%V8=19!PIknO56a`)I<%QK3M2U=G!g}t&>#x(+rDlWN)&5i_SslfRsb{V04R;^ML0V`^%E>6o z4<#WzhQpMwJr*Px>vZpTm<|oSA*`uG!cI2ZJnx>R#?oTw`EENhpfyqO9 z%;(9;+&GM}?7*H18_gE}iDuFX{1!^wA%#=$44$=13{%|;0t&U)c}jXMHC@pP2aSx& zZwLALn<(%E>3bNf6;A#WErRc27u;f!Q=!C<)W9MO{M`DDuf5cjS6@&CNMDT)V$2=r z^QS;^le!UeFRWbf-PvpB0lFLtl~At`+}j*?Z-Lj~;cJ9;1V)DI&*-)q=H-O?M_}<$ zOV=y%O{&UN3ICuz=6Vm2*40iR>_$mCeD(jP)nlpL&@*y01&(1R?gP*T@PV@YuXRH@{b$A}%1Od@3nG_2qA4xS?d-gV`h)#FNWti3FnMcUT=$Ih_#q8MQgNlM zVPWC5?0vXDu=&s+X#2pxs?<|fPxPSrpd^1;U0`BF-&}`WVUvZ8F*!p6f4#j~f_nLE zKzq#|l}^R0hYv-hYu|un*&_ELbPv69_tt$ai>_L5{YBuez_rD*0QKXTa4mHYF}=y2 zh%lnJQ_c@0k^?-*3W@_BVYI%#F(SPm zwc2xStic4hA6W|to~7&lT=Sec#v~^|ETg;u zX~XXK*<+raz%SIME4=1v*O?QikfDU1UQ>&sB_RgZN{B&%5u+LTr?_+81^M9c{IqORdM{kN$nSLduG~6h* zQRyPQIY?&=OvSGa{Xi#dtLqVcmRZ~5h7@oclZ^e7|z~=i; zzF&fisR*EIDC0oP!yijD zie@(yH{PcCmJCI@GSO0b) z_T;H$arw?uK^79%edk)|XIXUh%0Jw1jSQpH*L~SwG(N96kD`aDsG(E@w0`wwq>nJ= zytJv29cCHzbz~FQ0xR3B+Oho&ErJH?$2U01rFeAg_f2WfvzBKW=qf9ijLN4~+VvpV zSp>{7diTH%p6OW5Ly{cQ<#e`#QO5AYB8$a{Jcn3GsGu5oI#M`Kk(_AD<*24Qs!cQk zY6t(ds2rU}K?G3~K8Ec_S=CRdtp_65#q7kVYce#V;0RbE4)L*Me7le=mCnj?T^z|) zS?&=b_-GT5w>PHEF?$#V#TC@th8iD9AMMY zz1)JrerfxX{Ziae!OPST{5-_MP8?;zIBhOv)E$ao2vhjuRJQa-RRy*X>FL5#nu9hA z>eK|DXXqM^;=+|$Sqf?r(q5{d1ulK`QuxELPkBEIU%}^ut<#;92H6 zH6HuDa+a5p&ey9H*(bAHxr>q#5DDVZo0rc}743!C<%0_iCWhE)lQ7|^r3cwQ$>1te z=QcFS@n0ii;?_j!ZB(WOs;Z8el3biQBU^HaQ$u3M5g)VUM6p_t#n9xB6p_gnER z3v5&Y2Q6^d`zF;jus3WmSqvrJ73K?WUu1b(5REpyt;V*5{lI6?%|)S1C#RDSnz2>Q zN?@VkYY9Z##gZuST>0F8Vz?qzl(jw~Woe}JS`da%V&X-k<7+BzbIrtpyJu)!aP96_ zH*MH|c8y&HZA-exF!C^e{gxH;;GV^~=mS4V$wX zp%$b4Vjo=kXpT%Df~&n$$WXy9zbsar)$>a{Cj*trp5S8prp&(Yl?&W5Bi<)tzr^05 zcXVmnVQFR5LsS)l>W4lzmB#0&O;bh%SB&9VLByvDtJb9!mm+!<&CB7wT#bl2S7_&xJ?j)c_Q4A)72!g zf^bVg-0Y7&2Q{Ox*#q3OTg&*;Ylz!len*#|FlVHlA?fuekn2tkNV*?^+S)KyMYe|~ zf09tDJ`r9*Ht_th!;n`7hrA@V)lUc4j_XyP{qf0b0(apIthL5199Cfi`m0UO=tA_1 zUb(Pu)M$SVZUY~l7n4H`22{3$52Q?Yzz zD$?$HXdU%JhZ@=itq+|5$Mu_0AbsF^2)vQeGR!$WS5Lg_*r_lcwKx*c9>$ zb1&3V{Y*R*$3p)%AwuS_J@K-84q}--%c$LPnWlsY13jzQHRnXhu{S zX}SPX*%DQ9=X5{HsJ(~PkGFBsP4RLnSIaEKFp4TD&Azl=*1+?z(WH7eRjSU9RNg8#46u(R!jj`A#Ot*pW}jq^a)JNFQ3dl`1McE%GFUUpxM;6o|}X`z(!rd-F4A z9eqt8+TRveO_r{s8>_vO{>B)}komUY^Uk4aA+{W8P?{$hMlhYw)=3-gkQJ{C*5_Saer3YW`ZK*I#t;hwIH{sZA0jBQDP;!&_qj*} zkhbcC&@CtIPja@wri?|*dx^xTq!jSTb~L{CV7e26ex^n%FCx|C4*U&EyNF_jQ1OA~ zB=J8%H~;Z;VEMo4u>66jh4fX+$mo0Bt*=~cv!8j9u3w(_gECGnOV1t?s}FUm{q=^;bc!-mYhb^&v_C<7e0 zNPq-!Wp5}(J_ZG|O>QUM2kaHhvY!+IJz#srA(Znw1A<0^3opLul07;m&% zFGi-Tue8IrbHuDjFY-~|pMYxXVZqVoHMM*CjqSSf@nv1^32Ov<_)v5YN;3)gGuPn1 zA)Pa0Jx}cen$t=`lpyl#ySKj|vTB6*|9Q?W{_vAfUp+DmNP*LUpx-ipk$g|l#<2~G z^61>Tcpt1%n3m?Ev-m&OjM$x0eU&HlXW1H-?yp$||X%Tp7$ zzJ6IKXlF6MR(fn(BmTiwfh_9ego2u5Rby%~|0J=WAq534R}Vhz{%w!oDN^C+0aJmJ zX$rXiX%Cey*mk5_FQrRQ=8#e54mZC0M%?}t3j_eNs;Gtkyta6ac;JKV4Hw(P|H}nJ zPXt`XeYil?f7b;v|KG}~Bma@G`HCM8BlAf}@nSiZ2&L#!aT`ub*nbkrD9<*4y~()2 z6rcHH)eM`2^8Fz&a275opf3w$}Y24|Il{`8+Dzf-h0 zrhEeic>GiV+ekVUiCLb%32K=Jb9I0}44ixLH|O)oRX!gR{3)nmff_8S@R0bxtsh=_@$q%q3=U9&u>h0` z1xCY9fC#oSg{+*EiqjY-t+E*X8QoY9v6-tnod<{{Xskq2OGYLdTZ!*j0c>=WB}S0I z&!0@Trb|jPBHMUucq&wHW;p-SXu3~-o!y5<*ZwEC^gn#^;P7940^Pl|Rngyc_sCsY z+=(r^opRwsEQX9(PAAkN;(kscFTs3J&cXi6&JG&PTv z>ZpxzN~WYB&;w|Z@4X8l>O(&pZgacpQpAr1>h(YMKcBVkXE~lNo;5SZQ_6q6qWWPH zz8W2Jf>pDfg1=s~E!nC>c7gAA4(lbq@%&i;=^^*e^k)I&hhKljzxXg*!1?LHzDRA% zf9^znsQ7dK#fR|%%1;3HMRH^O^E=u@@*nBXjBsrv7q))t5O2!iuqy*OtT#z{IO*6V z09#WD7Aup5v8sU0Q$QnATg0Xs)R#PfE02CZWUwo*LijS4jad`Ok7Z@#LJexDI%tz2 z_@3JiVeK$ybp2S6oP#+9L8Z&?=N^#=p@;wo48#%K$lM0{L}_EE&(n=CveO6zI3hc2 zcyVlh);|9eB*CQsvSn`yBkn^obAtnU4l&^h1>0fo>E{PS*&~AZgBdNj0>#OO*lXRKyUH_t)s*sAyxbm3`C0K6DV))21#iAP#R2leWaIi4)l@$ z+2c*xebzJ0Y23GC{NUx~8=vmnBE@+NZe@STOqH)Wk<|6}Ti4Z3^3^X6#~JN{Xl!DyTV5=F!m4=MxOQl$50gXhbJ$zCfWZtki#ks9mWa^&mrwNF&x`JA?Z| z0z=xMh=_9wn-M>smOuH4RP4qvtOK~7_uTDKFg_m}ni|`I=dfRtk{c4Lee(PCq&)e# zBC#op9jeBC*@F|e>&s=yH_9SSS0Y#EIC^?9zTfxNvB#^}9!yew;wbzAG0PexSf}^5 zqWRtiAkMM6uW2%5p785}8tXPaUSB7TDP_TtSq+X197D30@?%{{vjDYUBXp(RvyfIk zntZSq3>{8LJr!~H%&c??xP`KelDwnMVI&FoaP=l2VFKl{!KCoH^{CZ zBXEbH3~p(=o@G*{iUN2r7>IpW5!rilI%=9R-WMl)TmDLDOeM;RM#UPmtqc`t$uD0! zIGvgCh&3o&$=irIBj=2Q?zCefu&lN_Qk*F4qe$RE@WIN4GZyOT5D{ZD>j?@*Q(rxH z?>xrgVQhB_*WlditIXjLw@G44+40Ty7waTIh!^^;-@@GdT}O*E)c}NEEDRr`9QAX4 z*0yhZ1dC-Gd#%@L@Bu_YPIh)A--r5J7ld8_7x6`VGL*J@(9Rjce1kXAP1Tppm?~v; zW^HY*qicO`X=&#iQ1^RnVzD7N|ChJ*pY?)2lXdjw06V2E*gCLNwCj*tx0Rg3a_Vyk z2+S;@;lgEh-Xir$PmQ%+)*`xNbTd6A<%}2h#{>8v=lV5Bc_VL9YAx@%p@)VSUyGx} zwBJ@y6cjY()e+M4Wn&Ui-^*+$v~ly9OEKQLNa@M*YT`oIH(HSKb$oo4#Y6n35Na9o zDC3xE@~@%;3EF;%5+3Y;MApAuJ<*(7wzt$*v^odSu|TlvAR8_JP&r{SWL~l~qFXwb z67x7TtflGEk#>_HIh4F(MooeGgk$qz*h1=OHJc{H5- z9{WPa7V?f7_@sx zE4iU>)ysHmX9`PrBT4;+b6?0au0F)&d<7wdu=>qD?9KtNLI55u12uoHzPD-*ZLOvW z8O9{3-i?RuM%G}$Cb}uMDOj^bTX}mA!R9I+hg}Ck>&9-%eA~)Ol~ItL0gPQbAvfHY z8cboZlVn1pM*w|dY5VFG_Xe*&cI4%IkFViWTc|I~&+~D!Ny7a7f&%qRc?j$$MGxH` zgGV2!-{U{Rp)T#WBqpr{MpbZZuknOi_n9m`5ON)%BlsGK=}ep4{F?&zhl3Tfg+WX_ zcX=;NW9PqUcmg@`FK6J5W)(w;-6+1aWrb|qP6@;6tfCqd#(GCk42%&hwYfvr2N;L? zQ$lAd^i_Q>6|Db(ltRx0rJ(v|EgGFa$K@|?;`Pdg_o5uRyC{W&jzh}_(s0jtCR(u| z5{vuByf--cDY@Q^JiISdh5~w|RT#+|C+LkpdeysUIIhu61@^PMpe5tE1%GJ7UAN@4 zrjOK-lA8!@vI`9c7Y%<&Q@f4+kqN;WwV7tb~p*8F!yZ5aT-hkS1 zj(MDIC9eC}#lS=CQiu*uJrgDla=BZ56Qim#GGcIH->%Z+#B2DTC9cBrbMKMQ@>`?^ zbAq~pRQxvf{u#x56YOW>E1Xml6z!?$7c4~T8*S6?8N6nkrWZ~&u*cDc9Uy|M3`-zSaA5!$^#K_d_28j3M0g8T zMIl$R)DCNsp+K)c`Z)O|ZQ57o5axL0$+YgofYpKqW2~sv0G2paXfx*GdgZbjDk1CtcLo%L$3I0^njZ!6J^w}Lh3!ZBJD)^=x0Qzl*%?PhRz z4MQtGxny{@SF5hgKRL zMLM7VGkrWEWxTXGTaC=!ZJk6s2cjO=N4sFOn+(kMXV|`=dVNSV*-4R3X zD=Ai9EDP{e;vB}UH^LNf^>rk0Nwh}Evw7Ald6YOICt%YOC!$_IgyW?+wW-yl4AmXy zxxfa%?5Ta5rsRa4+v-K?o$-Q-ZC-!&QhjhQGRxFDp*vdkCyQS;^9>K*X$_C>BWCbTmuDu|5HIc${(-ICs&Kj#xJt%gd={K!E1q+ z+rSaghsriq^z2nokYH1E%_L=n{)<0T^%-lJUnfxbS zO^lP4{-`iKlkV7;Tm*o@r%U>2}ck9rqty2%rG z0UV0xJzgSZ*Er-e)jgxYGenCM-vJSA>=^TfxVr zdtiUjD{f>WZ3M`P)IlHymR?_L2Jq;oOdOdhPZA!rcRz~3u3I=j8Zb)e zVQ<5LbP`O5XL4927f>?f|I%(j9K*fW$6f^cf9^&8VMf7$%=o|BRhG4#7DV!1ZdzQh zkB}CDqqoipG^A8a3N=E4@~|k#A)ryLZenb8YIg>qY(eGsZk;%K74o@z?QO9@Cp z%C5g~N9aMQ&2;lRN%l&T#}Q_ZiDKIyQR3vgs87KXU%&pdTm9ZCg2DCfmvoc8v z9O%(JF&P{r5s|u80@}!jFVh`fiZ&S46&#?7(5I*;HKqHTBX75sm}giEL88I@zjB0? z46@W$9K+Ql@OT#}WKWbDL?2<@i&q~ZTfO1#X~WF|CdM&R8cSYx&FgLT*K-=|<`7lJ zBbuh$dzbLW@NR2cEra)s5lc{uck}&JuVmc{1mGB{D;4I8Oy2)avF=jeW9EEVz~H}Y z0srN1D^!(K|6tF0!!ZmFBqkfkYdVjI=xd^lz=_0x&w=s(A+JYiv3wN$C`5HJ^BrYrqECV%`I#aH`QWrXe zI{FAz({Fu_A8J;J`rvn8a`dwUUs39aU?BZ33_=1kQCuV!=nX0Z!BO&1wuBz4=|edH zkjUT4@c}UCq+GwZ*pz4(wtfbJP@*NV;_QTaP4E%~wQ9J^NJ2jg;F?KVtaJn=!Tc}-~rsqc+b zCHB)pak~T+&HY6$+`(-Pb1qJq^FMOc)1M!8i>#K>R!IDO7l@)1A=guMPyo3jJt{n$ z_8gwHnZvSsSTm6(FlHk=iQy#^uQnKzphM?urqf?wo^T-9ZftVifHl}bqyb!$h*s5* zyz_z9HaFW0Mwv^0NvC1HuNHmSEpuX{6Yr?3lxNGoB?M@~AwKv<(aq7Y#pV*Ro@(0y zMK(Q$45!M3yUISB{75ucV0qmVN=$bO(MV-51~#o{Uveu_^YrJe^c@? zsNhF|>~)cXbT6D0u~F;Yu_pWV{o&Vc9SMoAlcwlSF+w2dN}94IXsH`o4k;R?a8izN zRLkg++^KJ?gXd{o-;qvH{2qnJ5L_CXJ`Qiw<_MhPKY}c`abbu_u51j)1BKnn9YIzp3b~Y6slN|fa&EFU@@}>w9YgQW z{KnnjA^Oty15K+E=K*%^Nrmpr#Er3d5dT9bQdv+Z*lTkV2BPpw ziA-&AVTf&sl}b@<{YVHEAuY9ACR4Nfellb)_$Zn|I_b})@T>VUAG%f!hh{0lbE zCiR&`$wqZB4J?2<|1N7YYVrsw`@{eV@U?&MjR>&f_Z6mZvT1*zm>`=g_w*?i^=YLR zBv#=(BH-wW*PQjr19&Xhjn0DyX;QAbLtYDLyJ1)r9ZKyI5|{t2vBDyUEZ?@N-^g>we@3dv4@hLG~CR^$IoDdMa%& z;%FRQzF226dW0FsU>L&UC&u0YkT)Om8yzfEfpz9p4mB0}SOW46)rA|NHN~=Cj&I20 z7e;IqLU(EBj2LQtqHhwwSXd@t3Z@mkdz;`b$2VNHyAof=P? zF5gYkjsZP$|J$n^v9%ZMH#of>?q!b%{-%~eA6B!mkqmBDv%T$PPTNnB+cf>q{Z##2 z{lI8PynSv4JMEp6jTD(2_z-qHNuppsGOVX~rYd=m4?Gkbo)k&642mS)$u}q#iW)37 z;xs#L(9d84R3k2nEfl%brpSDXBDcsUx#ZLMtkK??qFvXs5C*HTT)l5(R?n zs>5()Kwo5|6>}93(s9n2-nTDSNFM@VmY3Q0^X-)?_&2YV8o}6Ly*tq5Mko%=w{${w z3xD`sb%6%gA{m?Fz048-Qv5A6ADzcfmXDK=4^fc!sLqoU9llRv(W)YH_k*SirRc#^ z&eK=L!l(CsF5UU?6~tSZbv0CWBQ~dA&<$PBoIhsvE8$FhYw2Ko>x-mg&+W9PblhV% zoYStJp*;T6u@G{VVXgq}u@y3n#x4|g&GsR0KXtcCpu#MkjZZlK7BmGn zMj~bRLxbl6HwqTojuPoX)%!b?@uHQ7_xvz!;g1%H|Npwie;myI_fbiq(x4Q$5R$jG zAx~I-wDgMlM|o@XR#yNn7ReXwKlVZnMpWl|Sp?=T=0WCO=22$l&mzr%cpgK>+^Gl7O#a~k_L1BvqS*o5O@QX!!ly<) zvjr_}OS~_4bKil>Q&XrEk>#-Mp6L`8${yDAXC^y3OE(Gnt0muHDhR&im2=11m&VHm zZ>i;=EAj#!OX0~yd`G`5^$pb_m^he-SeDpCMwV*!R7YaFyz3-9o6TB|-do5BAa{-C znrDX>6>aIj((t;S!vt0 zZB*K}Gb?S|RjHM>ZQHhO+qNs!xzE{O$L)@|JNlfyzgEQhIp66qo-tvvv+fCUV0Y`- z|AZtmqqk6@7weP6~TpARGyOaZ&$cahyHS>Hwft2AOd zlO9@r^`(AaAM}6!G5bAr5u5Z#ur%yF33U8N7D?HqO`M6(wXf6dxNw?PVHqqHGl{g&G;QZYa%$08Nms z?r#4**~Ax1CaU3#m(hJk)0eUUITWlk*eDI;>^b|?_W5J8f*9-SsyJx0l05tlT62P2?j>hm1vLXu#Z-1H5Swq-HlhcH{`NVHNHrzM)+xs%`tT; zYSD8Q8c%6C%r!Og4z4=zXgEu+QJC-@RFdahYEBgP6;~;=UjkaQV}GDL1hF)|SHlP8 zV;)68Th{kWbR>*cq;{nMthtO08=I-5bQ|5tH`)hS9rau%%QR(I;2owAU*o*&4z~q- z3QlcOMYR5~k&Ds}-P%CcOE-@x@~1iBXk=7RM8LKXPCGj#gY~J%iUUuYzNVWdE*4Hm zX6m3KpfKq}k)*vNinF}`0GY&F_M}Ke1K;~1FjlHTem7WVInk+oGxmg|a!D(`Lw2H(GGL5_gR^UvLTPq%HjRze zlpfq5Q2mkGcDB)YrJk}bD0b%MGj{;N`3B<$2qQ^L+AK|P$9&SfgtvtEd{S7aRZ#Zg z8|)59#bEJ@n1t@q>)G)vv&0R~kE-nRY@w-hLE7UPE?M?#4G?aQk}D!bw@4*t64&WY z*birWPx$3o63~%+U9l(p>H9AG+n@cKjk#L&)YsEb%I%`$NN+G8CK?Weg0*Q6%&_TE zdfZK6ZiGrhDM`GOofa0zrMx-8pwajeg9!0 zv-_VeEhA3Hc8&oB@Uu!|9q>(OMHP%1-;#Z{zIUS;X4gRId%mtOOTF$+g+d~wV=hTX zeO6$z8%`0Mtb z=;R-Y>^6m>NJniZ9oQ5|QS~N1f1iqJzrwtB+g7M|e4s4RD|o&lx3CMX?*9rqJjB@n z|L`bdABfSY&Q~ z4u4h2vVZL7*}lqzp{+H&sjaQ4l`*}(jgf<`xe>j)t+SJ}fibN1HHM8ld*%1 zz7_qKr;z;32})4>Hz#OK^otXOPT#Oe-;kudkt?ToBO(kUA}>F@)~I74xh|dx<&&tV z;&uJi^w_HgLj8&DPG@FL;T)&A`?&c7rU%Z7jQYg~Dh-iA)`IMhmLZ6Qgq_23z%q%| z6SqvBXGjR}jSm#rr$u2b(iiAU1vo>KW>D+v0tXtS&{*ju5b9QHGvOr2rGCKLzWS`i zX&0+*x6%4sJ@x7e-D=6LkNs|=iuXmr>!J;A-Ai}s&)CkCxAs8)39Yw9hnf@<4fMEvtnE~EX5~1^f2J`(`k;eR%Bf90m)q?G$`2g!UA8yvlD(!_t>z1 z65E^P+%%kz{}-m+{x1)gk|0Fe)hKaZgXCeap5p}q9CzObYH1$*b1gD}v7kSPKk9Am zzIhFi`%M*;*Z05N0B3G4G4IO_JpXZt_g}cd-@R|b-mb!MWhV;G8ch^e%9XHk<4K0@Kh|(QH@=s%>^c1J7WUr=4mdV9|eAX)f2= z4fP5^>!8m9W<9u%o8{g14dCHHMmIJ+eK#(})69{Alu$`LTu?kpJTOhjJ=kz?&*U^k zRzXg65(CIEG<$Rrd)%x@@!N>$c@+e3z+X5KdSglzbn5mF;SW zJ`S&-muX}_*xr5j%Ycwco96NLiOHwQRbR2HPtIo6)4(a%{+%{<3r{}OnN(A7P}SsU zcu%t1;=shNJaM9@ za15CGAmI&uvPncb9@Br!fT4C~X?!4iNnm?ezA6+<*& zr6?@azXZ>qfZv&Gvh{KCEvwze2gR^(v=tblvC>dg2WlcDCvEnj<^U=&vbqAh2_b$5 zlBOcZv4?-mY-H9EIhE8Gv}c@Q$|U=C=9m3~#-My;FGSAR0yS-H02ey!d}V8AEv43K zGAW*yb>_Cs*v2VkX$DGMoc?hdz2hy!MA^SMr$l&oh~7I#e_HPUqVOPco>s-_gjIvT zfsbA#NzGCeAiDS3;iFnsJi7;|FcvhKAyTvhkElnT>X6vCm^^YC50ei>xfM#cG<&@tUgxJX8KKyNFP62&wfD z@%A;wwwg~Lh*yS+*3uLtIOS7{2&tmR~NAFI67#J+MPz7OxBUh*&y}NJ9H&zpMgg#}_5iwghg^+wjo1mfcBZYG* z!dkiB*tP{juF-COowWBwC3(RT!vZ?=6cjIsWv~OvKOwG&OOydZV#VhS zD>>tCa{Gh>aPrvsi&f{l)~FLqwhCbg65NuRAWJiSa@>6HEQ|reoiUrDv637QAQ>q- z?a00F8g#^U5ivvi*g3@<_AFsD**tl43x%^7cQSvxlz6x7pttBm6TF=^P#%$V_ zCUyjoexlAe?Z*`LoS=u!b((FIKZWDZ2_=S^kDco^x5N>83An8iUkw^~f|txjkk$^J zuq+mnMP#mq#lZc1d-?an0OIU!T-~qCg%9&j9rAyey=?wQEmd{Yu#FLX8dr=YT2X3A zOHdU5__BelHZ&TbVnHb*kcPtMKC7^gSgK>W^j(5MS!i`N?`%Rx9WA%%KH*?-sJ;Vb z?p0mOxfz~~BbjA`UO2d!9A=mvdT*uZC-LEZ+;acEQ-@q9!*uH>0A)aGmQLl_?)$k} zb-QiPFCgG6f8FAj>xT(i=%)d?gc^@BPFanz3^fX+4VvjEi9w|cO$^v%*mXfBoT3h-@(`lPxop<128KY+9w%$8AkczF_d=Q0`;Ty zDg21tR0hD4^@f?+i->}vFe^)j4J8M7colZGOG81uiVYBLOPhV|QKc}HYQ|U5-LwXh z+{6ad$~S~X2WSCnZfXNdZa)Xula+61tGt841CU25?fa-W8a1Zx8V?}H=5TjT)dDTm z(%bD`Nu1{GsWLTYtCDS6jA)Dlj*{I?Kw@>2koNc0mzE0&sFQK-WPZlt5}i;(QFkt8 zdKp~lC$hKmMy^lE%!G7o_&kPrzPjp~PUm^Z3mFVD^oKzJyla_C5jr$c)|3Di`Uu5s-)zBh538 zAx+wi*y-%d4m34svOtUMoFGT)J5y8QhnMzdSri(*NLl$Jsfl$%vV0SSgaEZ?3)Io1b#2sa5KD=j9$9 zC(+HsH67jOTBAz|ZV@^Dk(52wCfqqDTbQc}kL7)`aynZ%9%BIo)o&?m5`NE~yS$7M zw8Z@7r!sr0ITl&oA{|-Cx!1ZplV5GUV1*@A8m6O(kfuF>x`_a55aVHp3b=@s0S%kp zEjFZi4$?F91B(MBvk@B3X4RX?VACXlvig3E9}71$Xr_uX6-h6Rr;zd~P2>Me&r`FF z=fwg)#+AL&oMrJDiG>l|ePY;Q(de2P5+-w}U!Zli-CpOC<>9w#^~5!0qP*Zor7y(W zW?0L3vS(=kHU=90Y>r|J zH9K4Uu3~3}ZG34mvf`mGF|8yr`!h_{J~bhewO)1R0Q`LO9Pc?~_F%JAr@)_%I)>-% zIbI9fD(0wZWXQrOV#K$|KBLI72^qYxh4xKjbzd?MLSDp|Z;j24W#P@Mr6`eD@7J}&XsU`_zph5!%QXRsL!M~3c<;38F96=T*LNic#`H6P0c zHL|`7t2a8Z&vu~9Q;ND7Dcb%rzK@?MKyG!Nypz~khyeFE0ojS?i&KB%#ifzj?z{Ki zPB*hu_2 z_`B?^9a|n`7LhbC&Vw-q>@!})eU~ILuh8?q#0#Dv6l?RoQXtnqE(!j_6lnc-3RKoo znv+NPm?eTFBv7t|A|hH=WFguNbE6Cuj47kYUYui@*AwR=bnfQcuVdEj1|K3fx$k<0 z$8nZJmd+6w3cB-tad}GLsH@}L^6~itqX(e@NeLN;geRUHTTQSN6EK9791sp7Bdpk8 z9L!C08PZI@8xmYZlo=wv#NRW3HNVFaL=l7${9 zKVrsT6%H}EunRFs)f`y{Wn-A!2Mg-T8E%hp#L%Ok+6NP)L4q>A6YJ-$t#FNygi7Nu zgcM{9H)XHHZ_AQspt@KSQC_-|Sf*8ZdVFRv+o&3@-J@TruLTLT0sf^Wf9BFNbMG8# zo|~-l7+M0l#IO)w!Kg&;$bqGWFpWsNmbKr$L)P3ze`?K|lAu(?RMsl`=n(fi)66|` zwmyzVPGO-BVBAdny)@QE6&-<+(_+#YhC1ola9zuKBYmts$!U~lEV*7u@4F^^ar)}* z)F$Ndo8=aT5Fn9EkH2ndKHd6AT4!UU)*O9ZP*m-XY;7KQAsZMcEai0dGtgEZKttOq z*Jg7QR`5Q}GIlg4eMe&OY;watRFlDS)zl-s$NIo_aZnUMUGKp1oihW@ zoM3$kJ4HJ04-|FszM6RaeL%f0BdXApzVuO;x1U#Uyj)7ulhCdzuSnPLs#0+`iJ-PQDnP-`L z>E64K932oTfgi)Rh;j&?a`!?Y{<`=Kj=Opw z>;=71^5K?mfn6l{>^JyiMn(x%8))QApe2C^WrRIqN3bRV`0gH`k1%XVa=`BrT@GnP zEzw>Q00g*y zV+f*PjIc8Q3v}QuS2W%pKTl*S3gCdv+JDo2zkhqXPgnL%j{V<30W_8}it(nvw0bka zvoMB6deTNl(}V(+Namwb7?>cnNMlG3j!1X25ASicig8lQzZ;ntfEke)IFdCmFqbja zF)+GWsN+q5M;ZQViohYR+HmV~zg9ntUt`|?F$m>vag#4mN3}1M-~$d)76K6nNCa`n z6C$9#p`lT|lt_~b1PUUzLnb!P$cQOUmJH&HrtWEd@lf*N+xcveQpr1i z`9r!Hvc8sr<}uT8vZ-sO$&uskXshcDY@5IbV*BCSCImlNHn^RDZ^337{4e~uiR}V&@9U5_U}METE3F)!@2$gQZ%}7v%Mz-e#elr*PLimbsXcn z5Mi=tVj4Jx_UQwVXd5)T`ZpE`gg8(J#JUg$$Z%i^{zd-F;il?NpbA0$3B}zKXhnh? zQM_oxG?M@ZINAW5U7E>ijxmGq0Zz0L1R4^-;W`aGQHZ!VmJvCnH>VJ5`Z_oG4npmn zmNJ@3eTo2jMx0(}JfDaUgihnbD@H1LbeofoY#B2~A!g>9kABb;CoT}LokT>nOk^{t zCkvC&#(QNNL(7-)Oq%}4Gg;X&SB7Hmg9FfUp~#9f%q2aR^|X42ns8%d7)&6Q ziyNo4Mq_x%3cZv{cyG%m{T1yics|_?V`$wjoM?#2z$8N5EVra~C*LL5vGJ#CLAR8^ zyD{$0onV_&*&=?&Bohp#f>eiD1y->H6Ul~Is#kOQJBag#Z|+*M$Er2m*?xH|lLpCM zW0DfSqo9Nk0Upv8opeIfC`JO?`yR$7&!5Xg-?`EDM-xw$i{}TyjWt(ir6o1-b*$fq zHMQ#ElAE4Tp(9iCrOQB1VB9oR=2|COthHy%eM1R<7+T2A6z<#NIMnaEWhLS-B7sFH z^=U}p6q+0-88wScNRV3=%-0*2rM7zc%$KXm(`!C9pQ>AoT9_tl4r_`Ki%22QKE$;4 zB!Z#(i?4y^_GxrfWBnAAtTT#1lAr9C8+sMn`|dX>mjh{~u@juX0P;=>3Rl&z{hfR< z?*s&Fsp|j)uA;&eWc6c1o*ma*>B2C6`#7!}Sx%Hs1U0u5%7P;Xjp8X))##YdNc2`I z(L&Z6p@$&}P;XxX_v(1H#vS1V$eme7Dv<65*7&qJC``of~u%7!RX zaZRF&A3p(K67;|t(RURmi2MEea2jiWvQ+hg2r6_OEMbW}#2=)zx#`p4x#x1Pt~0ph zU@Sm<7B9WRQ<$wRiG(7*oLn8UP7e1^CDd$5$K7FKz2ZcvG!kPf!^X2&9q`kJG_Qzw z{2RH=nn6Eq?qDZ`uE=P`)kJObZoo$0*}d7#DWXX=;BL@$?na-%4tKP+9d8<9%vme<;1}S1xw^-oD zfd_f`k%7GO%XE-Fajhci*<|us0^V#QE!v)1W$0#)h>B|RK;8`K(hYSvD(J4+8WRO? z?Zr{{Y+Q3~%2mg+Gss;gha}u9tH@fbKDakBk#thTig;z8E^&0m^VS-XHY(jM1sCIP zUL6xEo~X2Tu#`yHJC6C(5o?P;T6m8H<8Ozf!787kig)VSML|%b$sXxSIJxyEQX1V0 zALtSxV$d|hERwgok>a7(MRWD`n@V}E_0x4ce3-U}c#I=ML1gRUgYFTJ z@fMBoE6tp5Blxlqx3$)lTru7|=0iSk<>5o)qG#|8^=P&K<2tW$3s5v!uWSF;oCKDu^2vygRJz9UMs|RBs{sHF}O;QzYBRzsjP76+o%st0d~f z{Zmok`Tv9%XxKU{e*p-}X3o|IHu~mPs^-RjYyNhqSbsgONAO8Z#QQOt1}dWKB{2P{ z$w37L5o{n*A^6NM+JJ-Sn%@ES4F3lF0VfeqO5$_x&o|29NgF84pqtltGJZLE zH-0`Y>)Q4Ce2dx*qD#?Sq$k_s4f=&4Q@9oD3G@(ynuA868lmvO=RvCFHy8Tl$Q8^O zQ?}2*q6*xXnGLF-62gcx7U!Z0Rmj`@@U!pF50+xY>R}PhpU!W_?t!t9v?uoy;q)LH zP=aB;AKH~#pG3!Ht~$b5Lv1W8D%f;3#Z)w!;MDTyv4={Wj`H=CU7^Jm+-iKzq&Ow( z31e$=nhZe>9$3NvGdOBZI4rrFa28r&rSW?=8=2-_XBAwjKXNRW9JX5&RBhxIt-Zp1MI{i^;}b!K!rr3_bAqlOkoI4Isoi zjICS4+<20@&a@T!7ORoViy%_fu=zRGkxo^8bvHbKbt;#25_BkCJI)L;C#%a)9M;BJ zbCDXUV-Rd))muQTO9h!4`6APUF2E)_m4a<-rseE@`M|U_>Cl&}!!$YVd2Tl}jvi2E z+UO=QY&BvvO+Uo2qTYh>VUcn2$6^}SIOSf+0if^`y@~G$z}GBwbaln`AQfFCJu!Vd zTHg_>^rT2UZ{wPp{7|QN%=1EDfssZe_INy^=#qDQKD;OxnyDi?<%;Zmg7_eM9}o*S z_lLtKMtX)O^qa;v5vgh@t|vl1B!n`c){_&sXqy?N5q?k|^5ADm;c5Uzd3IjtaWC^R zt8nP1=ZWDyM2|DAhJcgCYXIH_0y@&jJ|P`mw#;jAL_1WP{tLKO*UKU~()^9X2aX9yfn4#$-&=i=!69ftl^Mre8iZ|rHS}dsap053` zCe!L4hcMp%I-33mv+YpT`HH76sft7!%CK8PqF_bD0{m`2g6}HIr4$kg!Vtn+g%==b zNjkHa7TfsG;BWY3x!e9XA>hAa;Rij>$3ze1ukoMS4v|L`xG8Z|2rhSU+xk zk{bCgnZPq9;~33~FOay{9+6HfW4WSyHTPjuG!;Q5ro85?lp!F|;Yd(5ImT6+9SYu# zKN**F^gzG7KvXQaNYgS}Y4-BW*D!xhwUu_Q+-vbT+w#s$wzuN^B8!z+uND!w-a6WL zvPT=TC-Z&hm5jD8oS$M3CH^L_DzppllAMupkFcQyBgH6mc4okbhNc|mP}m6e$aY0BZ15`+S~bh z8e4ZUNbxACWUAJV&)IR*(h%#OT#`Nj)m{YkD0v>gVJFUIRt{p3Mj1LMvAV_w)>o2% z9#K=dFN&WKnTDtHO0o${BkOnafQEFXm16f8C0pY3C^z50{}m?nlCR!vUtt3H$1qX+ z@54mSM#9G2$z0#c+{4&N+T78}*v9zpC-EKfKcxQR?IG`Fgg~+F;)^4e(SoGK`yp^Z zm_evdZonP^CMwT^V&7PxzvK-h*VRElKqYoin8%0Go=i6Rbho}~@6`7zgb0KX>N8hj zH7RB|W*`nUKFBs%TqsI66qEN^-kkOnxXT_znX70mn&cc9-@2~PpBAqi!-`#;X9O7S z?mGyGfAV+ssYGhs{A?#zvK-jLfD`z><7MKCR8Zj*9J>~9_TG>9*luwj7FkEiSI1<< z&03Z;E8H7cx7Fp5=1M}(=X9wwCk_Fc69jBku{1^BO&Gn$_@_mXq88tPTZkg8hx{)) zAKV3;9DiAn=F8Uq`-$(rOGnbS`bPg_(~4**x$le!zl&}us*8jD40t@c=kVH--53?% zNw68k89b=Zo8xI{&0Ry@Sm8gu{ff75B*Z{^;J1o)9IlzFEPzdM~eDfuYPDN~JT@t62}D z*~MmPS91aeW5cHFW4*ljxfLz2BZ8I2ux+S+b)CQxRqyHVSfa!waq$|yu>&F&AFW1L z#iB)O@6QMu0wYU9_RHyx!b>i1km*c=$dW*4UIa`TtyXP>nF9ol-%4QQ#%!Q=4+sSZ zTWT?J-9OjRd&K0hXcTXR%WB3{zQsZyQk^!j>tB=k`!rW4&(~Dm`j6j9{lAKbe}5+u zIh+5xE&JC$|F5X1kgt*LPOhYd5*5}raF7m8;=D;Qs@Y0dbm(DgRxR5e#Qi3(*!HcMBL2e zv*4CW&mV)nrT50)(``4IeF@CQBc%EqH+&EKCA8F$2)!b6aS%(NH?Y0+j1%~#u#G=c zjihvyYe==8MZfKc`!JIP;MU(5SFr6MKq5Hex77$OhuvUQ9D_J>hN}ybpZuFB!7fFE zdiP~ki+?n{)oS zskKTm8?Gh+%{T_X`yHwyX$hrM`#D&aKcdEGQ>0+|FA7Kf)3Zv9x$GT$gDI)XgNqcQum;E}U z(*8K8ui6?LU&qG`TyzXRO*jp|*Jo`nQtQrr32u=}U>iJf0=!c!GU}nk+eMofBfe0V z1>n2)AUW5d++HoW)iE;_J5gMGj(Mmu)1r9U9C-x8j+uW;B60q#lScT%xQF2ZqnRrvfc8NttlY$ntCYR6pXbX-XQSg1gTN8e! zwwZWO8M*P+{q(g57!5uAxc%jzD+eg5qX@FO-f}ERgm1=PeRy(uP+(j35cemY6DDg+ z93TNgag0kwx7QaLPmm`71s>CD7NC(*pm7ekH#I8~_X>3jHMu(dDMO=Jf?4tmiY`kS z!OF%<<#5_PY9yo;L-OX5^4c{vOueniXg&{_+dkXw4M$HxS1maghL0qFiB; z%ENkeyuSM^eE`2NJl=z7PMQBY=X}qzxUxd(M)H$%l)W5Z ze>rS(z3gCadwt^T`UKkMu%Sv;u@mvFBq-{ZXQ=ub%g&%S<*z&a=ux~%wy{CCD4%tE z;F)w2^hYR$tBpCB4vlC=o2m9#G4V&A#RrF&cw=r#!l#V9E`_KwAN9#IZ}UKp-XL}* z2q&R#!V#vRZqgAL`5Fzoqi~O(=0cC&-5`qImjjgq@1bVM`!V?*ArdvtgeR_$vM zaWRx*dV>+@A$ydQhf9a|auJlMDtACpmk`zLfgw?CiSl-7)75U+0LtxQ=ql|&`l$GN z$^&Z6H2q_O?YX;_Br0BEQb>XsI(_5A>V=6Rse#8DL&L{!@c|i@_l{UuQL+}IgXu*n z;twfbqOlq_xHu+Zg@#d#VFyqFk4`Q!&9PRbTxw{wUc9SWjSZX=x;(5rV~6U>rlM?I zHd?7M6}cJ>DQvK5*e)!GY(~4gXl8~rQb`u_ayEgjWR7pVDY#m5d3~Bam8c;h;A9&l zaC7jIULHSks}|u*KGlTM&MitE^I9r*>Qll@WSGnD%s`1xS0!%DbWOw7LuFHB{Q!(Y zb*zP!YAF>dqUq>3I(9!dqhEE|)z_YKCSIuj0L{?N)1==_T9Dh6F>)v;IA=&|3#$Bf zvc@UNjapb1{fYYKtwZ{bjno{tXscmmUnitKaiW>BzR)t*`@7_fhc@>ZEPJP3H0L62 z8<&Au+Yco!dl1H73z&-<#myIBNv{oQ+L+F|)ttzhe4%bc&tOw`pYU}xNslsP@FE0r zGiJw8oBeJbYc~wn+ytX=BW4#Dkavaz2NfVoc*;=3eOM2}ZkW=Gg)((;Ap!}`=9@6Q z3L?ot8(lNr`m$lr+3vAnwB0*AJ$$?`?!bVDAE9)f9DutpnHjKnIubKodpSd)@0k#U z-%@)+tkApT>7^?vpKO?BFofhm8S|q+_%VLzDIR&H?^YAOU~rgWgXK9nZE@7aV-WfM zM%et_AKfn?@2N&tIINw|eM;)%jHiIi+TNs1hF3>yCbQzRQfgVZs{A5vuGgKUtuQ|+6 zJU(`gX(hcxZM~J2>M=>osBgfLJ7mc~Q&K)mzPz3>&$W}Q8apg=f<#Dl-Ahf^4egCH11Kpi2dNVtL$)*#J*RZ<4^Ck#=FD>p*)`qPt2mJe9Qw4wP5`d=8*g zcb#Cj6}Fv2_0|CJ;oQ9KhiqJ}@Mz*NfE`u6^^Pqo-b|_NS?K31<>n*=o@SfpUFr!L zg+8OwH|61$>gQVvk9-|AmF6H!vl<{SZp%>{PArhswg-rA3ZB$6EY@WK>cL(|quk|3 zjQM$E7lzL66L9_xsS6K8)>oDYmwgE*%O88PRvsA;?(N#2kKrk4NF~tjKT`Wncq=|X zUulOJ1@bNu5Y#(%+{yX^{g?y-^kyc=?9z4t_Xj||vPx#fnzZbi6{qt9{Xxu{S}+-K z^)DQkvChFa^=l#5@Q({Q&i|wg{5$#oFWWdxNH3HH%+Jnqvbq&%0vbXR5?=wt#0?TH zVUk!o5<-3!$YkN!Y}(07xRG8HlMP}P+)hQ-n!%Eg*xDjw5|%O*mSWskFqn@`?b zPhUD8Cr=aOc=|!Zm8#DNpNAb!I#-@ouboc>Q*TdwQNZ1rUR@U`4RBTt+haIxoxn?6 zc4fexxX)DJc=p@epg0KEOhB&C92DDQpg2f&QNNR*-2#7CAzUYXzeK&31VRORg5;pt z4*pFD^aSn3-(CGX?|bQYi|?W!?ULQazZrq{zLSCAAlqqomw~1uTw?)UAzaG>ZINuJ zfqI4gwne?JR7{4yq6oxt%SJif@rS`Td?x8D!sH#h<^<3)c%|*M!E6~m^Y+1~Z~M_R zc}+k<@0`JG={*znMWxF_24Tj+%)v0j;G1ytTq6Ran0N-RF#%J|Z^=94Fnq?(pnX*t z@}NVQJ|_VdZo?92>wR{~I}m-I7@K1ZebAq z9gM!$Q9V!|B{1~vAdEr`UQz?%x43VJOSG-0f?h z7h4X`Q>WW)Q{QZBdBuBf3cfl(#q~Euw7Oi-foQl~*r>${x5&w+&n~eSiFoB|?%>+= zt7fuv;h+)|74%J}$4D45{-u6n&B_;Sr+}7&cGo~YuQ&OuE{^$hL6&`Upt=XFAhL22 zMLEMrD#?P5D8rBa0BgC*U@jFSXBOhtTlGw&?=Bef2TS#as{MnTi}hC#K8HcPfX(ox|fjF!5oH(tbkS;+6 z^)ECWuK4cWA-!tRE_GeTa=L3sBtc6pQ*OK~Pe~8&FWU;N})pU=0C9Dy}Yit;lL3#(3(VE_usE(Da*IX#jB5KUg))~5tD7do} zo@rYT_<+4?PDVb$q_Sz)nHH&seqQKL&<8b{`wEvE2FOOoPJXA!-tc}TXUmYdpEy@C z2&qOi0l!0tjoZ_0_P8Kbu(eZkA&x*ls+d`}9dpP-p`w|B@TR;krjNhEZ)7PmDL!(5WN?yNPT3(WQahf*2{s36(-y~ ztMQsZZw}BxgX;$~P@F&kd2L~hLv}WL?4a?74-D*V#(CJq*8_$x(h%V4B{&%gK#f#p=dT0y)$;k3WA-HFvET>9NU-EYnn)t% z{B4ADweoYp3@Iru9Hb@Uh8ZbQq9lO!YFC5-PG$n2UlMzX5a6ULVN#)^*o3gtUPPtG ztM8Khvi&F})@n&8s)O;>D4`Pi*4iPG_N}JkmUR4fHY!94xx`}#lWU{OngI}S6v$RT zq{!A5ggI!;6(let`pFUUC(YtL{)Cz(Iig4YzAw#KTHu~uSz24{XsWBSHO2Q^E||?Z zhZw6#MiNptdr{Xh)9@QO4@0GW13hF7xS&@IAhe=*vk{^%^2;Q4=t=jQFdKc+jYaoQ zr3cfjFH8K+}&e*GzIazV= zr(9K93naL=?J%Oxun3s_n69RBEGCS98an9q#p7h^CKOk0<9_|q=JKeBB0tHWlF8vf z6>B<#;umpVKqI(3xZ&_;I>J!GX);Oimuwy=5d%@>?CEKDX~oZSh_S3E)?j%?YC$3W z+J-;(IjAQGbi*O0l0~Lop>adBKjSnUW<6!5#LmFcds|Fzkn)yJ(xVt!&rsjQ^Kc*M z5i7W=jY@+AiRj#%xEIO;%5R$(T7t84sVEV{^b z@Ghp~egi1MzKWKP2S$7jPpghYo>l1gHwTwy4Jt9Xrlh7NxQo=BvE3hbr4 zU>~utd<-ia2GpR~F+g0X1rx_y6eq^;>FwSn9?s<;GLlZe3puW|s9 zdG3ft-(4AVVKAQ4vSKcq(c#0d*g-`wWS~x}!Yndn!=jEGAwh-fP=P5&4s)?-0CkMF z{(g2&+y@laB|s@)`n;glZ){qvLjTLV)g zumQR^x<2^Bd$YtRZ*bbfBSPcJh4XTG6Z~Mg{?}T=cFgo262Nz6H*A_r*2|~s{S2eA)H3}NJdfE z^-UmZ>3{<+gj~R?I14~07qOvI`jjNsBa%r1k_k|Zf{sIYT#jWp^X14`8^>hBAgdkCbzE-ZO~q=I<%i7r5Buy3V>NFZ-0m-&sbO}1qqF#RWebCnpP zE_SxmDQ7wq$@nwA(IaQ8{)T$jd(aCsKOwv0sJPumsmJgjhjA=x&dHM5#B|GpP1chV zRbbqfP%o+alT}!rfPyis)m!Ex`O{ensWNNe&X%dt?-#J1Y^Ivl^>bFx5i1%G_}32^ z_1ZBH1`q6^ySmY}vYk>|0QL`%k2xNN5j0J^)uQYTJ$mMqsoWPL_~Z2^xHor zhf}FWGf(BPYnQbJF|*n_U^Xy`iX@a}79G4o$P_kM?v09t<4OU!(RVWLp{4d%E+)gH zlft4SdF(=LS1?@Ih5AVXDk1Q_bs9&jm04#b6i-69rm5TVw$?gGE^b(H)e$~iaoMsS zR%|vVS0Tc+o4&Ax<<2N$I1^GZ8evWvY->cGI(7>7-VBgybx*%%6(Y>`h;&M0zv8s?qarJi2KBs`dnXW7wv^d$Qp%wZo20iZPXSrQ#} z67&NJCW|_zm-DB{cDx0Dv^;-AIEB+a&VqILBD>tdw4?g+VVQ2zQX-l(IG^RJrsT3k z6Y!qM6c)p}NLG4<)7>mCJN7RuJ04V!xx?oW>qthZaJZrR`#%~M-Yn(nDQepSEVF6~ zxXrk^BfAwHO`B$?dWc0K9&iB$uZ(Mqh1GlvVf%nN@%t;olZayf*f=}94{-UZ!^*g7 zmbsjIM~Dvt&AL@-hXm0Td-=K-1>(7m$C>j8RBD`fM=F^{P%zmr8(}x0C>(3T-F0qSNS1e$#Ci&r-CLq6`~h*u&9D&{xXS zT1yP9On>+9>8?<8b5-EN-bkfp<_;bQUMU8Ie&A2i#*3FjSkO!L_{>G{1_=XBQlYO1 zbhXKw$*G-i=$g_^g@v}_a#L({GIo}luU3AE6$J5Kx5s{b@NtddXP5sl!2NSO$uw@baSh6(hNv-LEflK?yiw6 z)cmnM%{GN9q%RDLdnaRO|E*WnZz4rI{52|TQ~wjh#r@xn%m1UCR3YE-m)6Gz+2ERR zo+zPhG?A(nh=4dHny)_y()UEqmYwD5%h4}_(N^zL%{7o0g?;QGnGBq1^5^Hv$IIJy zhQS6wxgEhB#U05Uxn}%=v+MFO1gN3a=XMyjr8W5>F2ncT@kFV2l+%LbyN-t1H?|fX zMBdbdLhL(>dgjjQFm=tJ(vjB8=`STsGgziuoO0HvD~>H&CF~Emyc|j@+K6D_%#cO_ zOn$r$OglF}T}Z>R+av9kvMnfFA3uF~$Jp8O35t9PRX#yQppx&)~UO@L7|n@r+0Hj>?Zv}M4*`|CUSqf zV=viBgi*7p+V>4&RjxMslVWSruMaQ@b!u|!6{~O)or{fL-Nn%Vya7h4=qj$SD0ks` zh=q^G0*U>s5o=+b1lV1L3xAusniwBp(ifPv+D8 zWGpEB#Edkf(Nx#MJKG7p;6&~V0p5OwCrNL6CvZ^+j{q&lx%f89q`!FVVNSz;e%;9b~_J~KEk(+(JF6hz3Js0-!*Qinda z_H2*|%RKXfd5PNeQlGf5=a`qtO=Xe!&rAi&=TQpNxEqyp0RC+JLkWEGE6ik8NfFB1 zBOT`9!oKlC2?Z>bUa1tr(2TJZp8y`G&Om;LtXYhFq-fcuo7^tQ(UxEn(mO`d5F2jo z@LaRXFYq&BlP&|=jFkzwuOrP7w;1fQH`pjciTHN1bBxO3vi{yfg}|Y@c+67~DG?rf zAOkE+eNZE$v)K3O6|oa6vxTlca};kNf1w@Jax;{`Uw$_Gk7&n#>uY~MSFcds`ipk< z(HL)2l|EZa@WGE*);Q2CY9Qz^C=3Bl!ivCxf#1|2qvLSN=ITj$&_y&O?ltZDNwJ4h z@Mjm;RiB=_j<55@#n!~d=l$aYxSMPB>w=3aC!PZfC!RgepTBNvJT2a4?<*{FJK@Qu!Q8n8t;BGSU& zH8MJ@N(LAsHK7AyX`MwUn=9ol=xZ@>DmYH?2jZdPslIMU2G(FNEiMz0GqPji_+`~) z$VJkkJPi#Y%hEC!B?Pbj6N>{cpRtAbkpMB2h|LL`NUwt>~em4coi5zTIqLXiwJs^;l+HTP`08@aeHh)~Re4zUhl&-VR~zjU3X zBEbXazo+Hgf6L_muO6L$t+;oqd~25ppnQT!rlyEQK$Ve`tI~jK)H%-WgHl@7&r(9n zwc5CmM^4x-*j7GY)Y5-KA`9#X_T28qGUhDMAQ?ql7_A<9J55ivUrwfT?D%=VK>Y|| z0fmObqjWFYtq&*)5CN4#DMF#9P>0QfO~n`xc&7hlA8!!0$2f@k*NSlnW&sQlOd-rl z;LU*`0u-SDh=cAh%!u-&M;^lvMhT{=%A}E?NWd{tTj4%n$v0tKQ3Q)k#dwuE5SucG zk^3MRHLB7*2GW1|*G)!WtGHxqbb%38hAz3e6URzb+LbJKvQtZQ*TEr8IWFY|yGd(S zvS$Cho3Vn|UXq%`q;j!+$%(SG5ZXaGO?QD+itTYTYODGB%ZN|$Wzjbq%QoGvIG$0e zrfKaqzglVjXrjenjQvaCdJbP%`bATVC=8zLtA!seGG3JFkMwyPa@-W>TWhjKXM_29 zN(xU2`y<0Jg+f+3=|LBYy6tq6Z@!bjvzbgqYbQ`okde554Jelx2T8>i$*C=8$j^+X zauDPcUCJ?}WK|zMphOuH(pja}L(p~j+GPIYh{|JKn$utv9xH_eL3DZNL49~)lW<2M z&A?kww9kplB4C@xVT3T2dW)tN8TH`PJ#3ppQRWg|OX)3C3@c$CX))R|EKvL}FohiR z#EOL`*ca07_*G^aO*q`{zSE18Nrg0h1zRrEF|D5tmWl!pAhSqN4)}oPMPPz9HOb~+ z3r(JpZN5#)W*r4Yo$`f+ohM;06TI~Hc3StLBj)bHi z7nvtgB%>7tQeK2MILs*lXQ0oCY)0x|;I4M{dO^3VvfNNEwLH&;_b$P!{*+@pU$dla zEwz$yoyBv!@pdthp19Tf`SJk|0Dh~4@ToHT{*jDwfU@EMhK8(P{8Qds(Cco=_KUV2U7jNB-wnKHSj7|; zZ-JmYRT-bm^`T)p_9gcT2T9cBp%DwR!?lOSx-C%_r)M0cjI#UcKTOU=g^Y}gXnMQ| z`|g1JMlw6^Ql_d?I;FnS&XuPMoWU8@qAT*XLUiUEd#u)re{XOamD((@!A^8hL}D)7 z6;Fkrm&P909}$tWvnu%T3?IPy=@#y1rtqF5a=k>*HO}LU)2)<4D(PO&fOFYK(Cv*E zzXVgxJw)}REj*e`+@OOYP&f1^)+kZ5!dNq;LbdUohkc{@ufwP_a@ zKS=d5FJ9ZK^2yrbtnvd(mk(%5V~1Ru%O+_wx=W;;=SC0jii;&76K4YENOW3Own%JR z#&i^XR15?}Cwc&3b@t2=fJscuMWh!J$Sb$nY@RN`3OmKt-XijTHXbn*v_sNSV2?`z3O>n_ z6^ zX&JPpGF*ec5zz_5g77eR- z2ou`M5uY`jBK(J<$=I$aL?(828to{#^#@}pFB)o@lZ%{1iF_c<4KS}IhV;)Jd0BFJ z%@`hJo5T4IjV@N99L1yyhqOWPDRH)iU-6d0YvV~+uEA@aD+v#h*~t(ZZd!FfBY1?p zI1N{9LijeyhTx%}mOTAiF0dbnDANZPvx@j|l@PwI10a>8_D}{b-i_>rB$Lei& z*`$@Ziz0FNqPLc-s)M>UXl5tH@&}IrP6&|WD7BsK$;ph|r2*w*SgfBg#o3a}szM3W zU2S#Nm*^LSiFJ;E>J-m6a%#L^`}%3inFF-WIni1 zHS?=7Ux)6vbN`et@S02HNgAlZnO&D|>FlDo5rMZRex>pEli9q)Oz^`B@1M5DOX?W~Q zH<+IEzHPYUj~|Q#r&74g^N)jVbyN zs6`jOO%?alK^bK1^qVe&mT8G_=Rmm&B%Fp3OuQ4ZM7$*b1GcZgOs`iay zWY3;%o{QfpKA-4wdO8pX*S*Z)v~qk^{j9x7kIi7w3UcPLrV8lBuB*73@YQ>O+>q!E zs=Jxl1xfJE1aTXH2%33PTF-Pa#f}p z;rdQ5+$cXr8L&gy)UcRLp>M6?i$zjQ)3lP$=!~h3>t^(2{i{<)SS!26<|nhq<&4>2 z+WD{8s<rHZM1q$QG0l_sfDv#9T4RgwsXKr^#l5c`696)jnF^q)VGsYYS8r3I^ zYyT>Jp`3Ywn!ih5o4+l6dH(%_^8W^N8>eqD_qEmRkmvx-07BFI!5<$75cvZLZ5By0 zs;DJF6NYYC#t{;FW2X#4u&) zvk%`842q-Zup^7GF@H-sGK4h3;4>Iw@S3uZ#zhjMFzrz zV!$!s7_g7qNA3B97=$Fk;0w=%x~X{k%VB1uN*2Ax zvvi!SK+9F6ePlT`w`*kL*-s^mVsvwoQ>4~)!n+sn=8ybH1D%U_ zVLOav3r;0-oWhwcpDi{K*ukQ9;kFX1I{cRO%9nMfscamMa#>p3`VHtFX?;^=v_k3c zUwx>!cSXWk^P2Hyl1vDZb+H+~kX6JJo{WpM`8yooh%&twN7#o2vGK)7;Aq2*6l%pJ z-l;2qcs9H37n-LmhVdK9m_;WssB3P#i^V$X>5$#8c6WtV>Wyf0kwi|Ul1b5Um)V@puic~C3XNjb3QDX z^1^Jg<5gDb$DDWOyV^@umy2{OSs!L5ENxOsfLoHk{exO%-~qHqD5r2LB;aQ*pfqY0 zHDe6HadSHaOlJcz@SRS6qVL~Dv(5L9V4tcVL_3$=igK>Zw&ghYjuKnU#5ILq-O;@R z#lHjX_qr$SE~rG-N6Xp)mh=4=eD-FIg}4aFYMJtR+B0*++xE` z7V@>*Z7Xff8HYaSEgK&H@@nxWe4%3P8B)M9q;rTP=>Wr8J&?g(O)rw*qg!as_is%! z#KXogoZ*3o5&ZMV4knRbta%yC!ZBnJTe<|TjwIa^k_8o-rS1~5V@*)YgGw+GLtjC_ zxc-!43We?wpMHxmElAL#G)o@O^X?-3gfMlPPTxF-yO?~ZRGW!jJO@QmVa1Jg_=$(S%>$E@KD9v!j~HtHb%dbJF&DN=9Ey6bY{A{QzyAKEqA=@FEoC~;8Iltis-uYTEkZQO28D~cx^tr($-rAFQ}W2B*WI) zsF-rBTxTA!=od0CLvn7ZPp9E-Y{XG+$g8Agu58{fT2k(xN*f@m8!TAg37GG1(fZ#a>i(0V^&d(2 zKf&~O4??!VG{L31Qbo&V{T10IIvBO6DPc8I5?YWypAceOda^F6s7!oY~A%b}#1ijNXnPfO;qyJrz9}Jzd=oc|>&-b=v*_E23Bh zq7iG>+*Je&2l{9SB2t{L0VSewxRjf$xF^*|$W+|}a^BlOb~wS`6J^Om9lvu&vzr!_ zKP|{-RQB^Pjp5?tJg{(2Z)lNehq2B2%3JUWc#T%Jfa6P|Ryz^_;?)>#_hG|6XTZmk3 zf*ZC}Z3aY-I)6xivQYUG=aTm0(=+ca6yD3Yr`A*Ch>4m8d+E;Hv_RM~)lqWmXnmb# z?ecQxXCKvbO4g4^iTu3AKkP7#z2R+$W9kh4nyzCRR*h-a(dibbUk`Qyy^Cge)xcLe z`Y^6{tz04RVc3T&)>?)CRnF@e6dNwelL{@%yyh0&NHo(SuXAbmoFnPp?^uG)J7WM7 za?>Ec9}s%eA^#5hk0-aFbU<45H#`gdEj+XQ`|$iP;uoOND`B1$HC8bmiNhqWqH@4R(V%Sy`p6x>JGW-YNheGzY&T_4APC2mNp4yb*pn{_8^NepsbchrGL7AP2=oDHcTl`ufVh9y$6Wo+(ef3104zI{$i?2t`(&+bt2*e++Mqw?}K zBed?sE!|&!w=A|mT;=`@tT+avnK^Z**>DV$)c2zGKX0sf=i#fv%4YTaS`W`?!FPw< zw4Sj72Z30wTE(#|#hN2Ffb^I0kR5e;Xqy^jE>d_VJC_-9nv%|AUPyK4Mn+qJBHI+y zFUO1&SWS!-;k$6kFl9)wo7J`3{DJ3<6kAc}S~D75?jtaW(V zYpO%78xC?A?L{qFk;%>FDVh$XwvLZGPu)LA^J~nZXmE~Kbds=%^@x@Pc(V{FAEQKOOU`t3rth#?6+nnwvT4 z+j(_!hYz7QmTPrvUin6Zo0y&K%ak9Ib&u-DP4N4%zj{C>@;l5QY-Df1msI2~fJ{)J z-T{xK0XINa<`fjo46O{l`FBL`g1Qn9nLDx@3d&5$myCTiv3I7!2cwtQ`mXA?XOROq zZTYt9`hwf`>E79AChw}7@)0m?ZoR?Z+N#3eMri++_UitL0L1c+cCHrxYp+he-*SK-C99OxstOhH6`ZH3l*b*> zks2@PXMiHPyT%lf>axz7HPC74!!G!JVMHe0WHEaG(=G$>V3&cfZ|@912?oOu3~-28 z2-(0R3s0D&J&pAA$~HwJ+37Z(hpkNw2|B5hs!3N%F`ZjNZc|zDL2kZGEIyG4=IHZR0rFyxI+WI-J0-isbdey?MTq6Y9w^bF)(=Mc%H?Sq97{Nhp^ zy)CrP6`bQWksvw`vrzXeBpy}}`6eW%0VH)qASnvs@Lyv7{=WbW7QeG##dog!-^Wkt z-_Mi8{|KY?_r9ly>vw1JKQDeJ%Q4sv$iw)MG85#ZQg;i0r+v;6{QxWaRt6Q1!Z#EN z=iO29Me1MTya(V>4pvgJhH<~~nt5#eox4+O2TbyW!a=da=42nQY%>IsW-JaQdx86k8AiQUDpCI89oeMq{rI}IXQ0E zUhRB-J|BR)40sjf6|1TWiu&ZMD)w^yAJoR$`*Fv0BL+HwK@(Uel~_rbD9)RGDKUh$ z=c`BZ`|=_Ag#lEYc>0M3TjW~c)A2@NvM1@?AHZ%1YMAq)FStU3$mcZYvh8Sk z!F&^fw&G7lahbSv8XC6wz~!~ZYh`03TkjecY&2oogXLf}Hl75@WJQx!QoFT}=#9Yy zP!iH#a#dlLNLbC(U*3kw4v5IaH@Cq%gyN&IW6kkUu!zg+`@sS7)H6m2V=FVgaoT`1 z(pCWmWeh1_?95SxWAd@ogR@V{1k_ zf1T_X?u=F2Fcpy#Cgx_oty$*PJJ>(+oGpFM{rmSZ)A-vVt=xa(s2Mn$2$>t$nwk9P zyIQQ!FZt~Q=`+_+-?FTEnePUFP5~azH!s3R;vx?G0xv zD_ZAE$jPzN*H*49cRBBYOQ7uzBn(lB(Y_0mE3_(+yG*Ie$Ju)RKwIrj%W_USC@lyW zmqTa*;9NdO(wW90bvT51j~C+l@3CwUlTTBhg-@TcsBV?fI^d7~o7H>z_*IB;hiCgh zqlZZIC7jmREf+Z0BDU$6QcP-k4_NCE!tV~|`B(~4`ag+&-r_WjG=}K0y3gt3BbwP0 z=z_EFjy;eOEhDjqukZZha~QGYks*D54&uM%XZ%;wrlEn6)&F1GjOO{?3`PjvK^Ps8 z_$hA>93gMh56e$MNHDBONPM#VIOJ&PO6|p_SR>jG$c|!oNlXH&G|A?7J@qtmjQ&$> zQ#6byiZBW?aBYx^AdM!*{hD6mTS3C9cq2t?Ku7UZsG@PpduF63soJEMv`m^;nLtsw zs%Z?H!pQ}}OlQ2}5y^Hjv#r@Kv4?2#tGw;&;Lf@7NmFGV#WLNNqcNyHjjVOeUMVBM zo`Q6)=64pt+k9u%DAm!H=Iiaaq>d9F5-mMH`ruFdXn>n8P6y9@5Q79l+0tKnR9E4C0nhF&Hf9UoF*Ld!UrWKQe06|g) zTyZiD&*opIe1Z_>Oa_DB$Qz0&AfQA+TPZx8jaJUwO&lQqB)SJ(24w~D1j-Bw4K%p4 zH96O|Qm5Q-FU96?qbPx#;3_=2_}wg(x`x~9@n&>w+F_vg(c`4=vN(R?h1%SBjFS+) zw1?XN0sY}+=F+Ht0b6C_XQ=!QYn?=I95`%3xP-^d2A6>$KT;0~vS>RO;DvC$9$14u zm8X)J$6Fkk(;aaky{3IX2Gi$BJw8dD;?FXK$RTi@>*Hio>!N{vxk6WR2qI`)A4Vic zO%zO$?^KiP{nf|h4VbNa`i{5N-=5@uYw!AB1(ckvsEf6=laZr|iS2*RDgQ~N&(#&| zA3A-aU}(|g|M2j^o9XIWBs|U<+TUL^6a_>4;%=SK%Gy6HSX|`Jo!n1Q&Z8y@^!;B3 zKE8&!k_x`25xyqA77`YU6}|$ph9;KrzQ(>55OLT5M+}T@ab-fFox?yH;U?j)9N`|P zub&bcwvq4}ZtYI=lDl<%15u?KUx_ zAS3}yC~&c^G{2&MUVcH}s?3UgcGvQT`I&-Q(LG5pZs35~@i~ZOreUmM*fI0BQp$`v zuNg(1cfVukZ>f|{YQ6f+34J&{GxK`~usfj_(nx%JzDUAJYDsFaNaHo5@&aqq#aG&}Kfj^@|&E(ecW+?V|7@MFWb-7;ye(gufRuB+@@Cy)}?*bgPV&)v3a#co=9g;P8+AWS09xyYCSUuSB1Ix7sw72e1rdl7&GQaywyV$NJ=Uit{G8Nwy%jB9r74Y>!fRe_pZ^7Y~-|#6xTI=op zz8A~>+Eq?ZHSj{<;9KCU5j7j;S~NW>zn(%>YcJ-{69g%k=O|b%=*n>Cap1bu+-JNs z-1ptr-3Jf9Cb?=jx7tiN5kVF|5c8J1ra`7jyh{#u_)yz)4{g^&DJ{3T?25%yQb>Q< zT()~Y!F3!=W4KB!!fE{J(BZ$heEHDY_Mi#MPIuOu#6&eGT3J#B8V?aOP;Z`5W$Kv zb%H6ff+BOi5K%*(vDg@)iemDBDWdkU#uq+nMD5Wp93?`R7FB-+s>DF+AwW6Ofo{$~ z>*X)2WM$0UDlM7_ZG4J>ZLIugWxT*p6K7&n6*o21cGlhhup*KC)c&a4gX7Gdcg;b4 zKKRc8q58+VWX|`4Q}%C-LI2MTJ^rQACh=|WV(aYmug;QsxE{(A>K7dJbX^Q}R0Nbc zYZw^1iBWX)2vr!dE$S^$gp5?kmH{Tyq_wM=z&tA{PeRM7k5McR&xL?iLJ4%Z%{-IE z!duVv{S{xF_xk#isoAyAhxb1C&SclY+w=~0h}q}UGcrKS-VPqb&*O{XNOY1eu>oKt zyrdfm$lPxgU;~8#BP6_3dx3#Oq#lwzOh~?@8zM-)lpAEo-sBrE$gj8?Imj=h+qkgU zu;;R{*zo7JuscFtg8fLs9^(CDLSKUYR6<{sSk+bO1l_8B_QW!D8usx+jKqyJ3~6an zv~R5k8wjSkG-=OzI65=O42jLiO8S9AG`e^8{zKwK0a77p-SI<|L^XO$lLE$YcL$aj zCQQ>mjHE`oO-}sh47(!WJ1)Dbq@0Nx>BK39z@)}q=(Waw&`7W29QdyE9mx_q)4D>& zc%-jP9CM@O4s;lg?Aeg_eZZI)c_Wz^j~rA-h@^A+GEKa3YZGr}LS9+7Ne{T(o1?Dx zE*X1bEin1?#rTFRjo-197<~tS^$v2ScWI5_-*{sB4PhIM3H)kjHwC91q)v3PVA08|7)u(6+vuTuC23c?^}0*m&Eix6Ew4lw zOAg+2CAQguz*|PH@+m8DO)gQr@2*Fwc9w0o_TrSP@DTY;D8}*NU%#N)Hc)4C)kU}o ztFq)&YHFm>&G@O7qJ&e?S2}P(JqVx7^TAV}mLIC3)jAo+VH;n2nQC+HI@C;+Dt%g~ zH0w1%p)29>q(i`einO5!mcMR+&;q62pvC6mRSPgTj3~chCBh82-NR%+GeROAM|sJ} zVVt4awIYuU8Lck4mV&21)=ZS*lbFm*qyYdpA-k%)?91Y+h|2__EpM^X?(cFg%fDrr z=F%y5|A2GNL!MXMhKkS}sS$$XNOm=|I}g4hAp;`D<-(qpBXts*KU* zpzlXeH!>y5?61W_8ZyiuLxmxnMzh;gM5YS$?lSrA;<4tcqRR>jtW_Jx!0G9h)8*N- zi|+1(M!94dQJ5)MV-Tu`kVu-`rFJLIOqM4`4lKNhl`2xJ85c2{s*AH7Obg6LB$tO6 z$u2%7`4cUrARv|IsBlNSbA!M<;2>4ihW%kH3EXKZ;7rK7SKxbY16Tk z%`fw$I8vL+(Yv_LB^K-!--|}hrS~EF_KJ}wmT|swkfSV1v^l{`7Pjpi_9DMc^-W}z zXZ`#%dm~Z8Fs;-4`=KIqJycNM4InJ>e0?Y8-xzB$@uf*Ef8*IKj#IqC*cFye!o?C3mA|^Om(}0BL;7Q*152fG)<(UI15AKc>YeGBNlXku;E$zMl{b zwk)+}@4gUuZ;TI-$d-#LVq=uTawYG4O)7QR?4!im)AN%!T$wAp8Krlhmj)Yaw)jck zWiq>M0gX(M%a9_+M4aJs=Bz~dxziFR#BhSxYjlXeVqx+u^j%C}=!jt2 z2o8)7f@n?#ye14nfU&|+OkgE!&^Ja`9Mz18&8yOn!&WiwE7ObW`$A9u7l zrfW-Y-bkZ_O`#QFl=06koCWbO!dFv*aPjI|F4|hA_h9vKW(uVUl)j!%&E0(P40}9O7SN z8-;7qPl;?b!)UVeV-uqsY!t2BL7X$2piNQa&Cn3`a*7a~cy_;vg>|e*yX=guyrLsl zG_A|4E+h?@crK=syn3WJG9=d@lc}96D}NK+<~X0d*u$IciE0nyu3d42Q&cCZ2#k8e zqqth@IgEOjSy5Onsx{s^ca*m{a8qcPR>_-N*2)=(S=g5|wo{U{^JWk89vRvhR!?9C zXdh%QM5DLe2J3ujr~kl`3V3$>{?Tju(Gv$tsKsZdoN^Q`=>)ZML>e9F3FVeZs|DMk z`qq&%(g1Caub@h^dqif@rdvfVwRgjj+L_Tl{7VOBE89YvQ+XW}mWttgbIvq0_3Q9= z$m*VL#1fpm&I(Y6BplE$!m2PeKO$IBLzh|zs;rETGuEu%AvMPTJsm9G+bC{H6}q1Wp9N z^p3yQY^6{MnCQy_%?nXmlMFaTI9CJU@b0Oi92wcz6oR z)8hg0_Sq3b+0byjBD}Oio!{_Qz5LaJ$J2$4todfP-k|>7i(Tm7c^>^w$v^{V3p-my z6DJqzf00{@)gZmF%@BQ8Qo5)_Bv9BK_E$MFIBTp&Rpu4R9WpdiQtO0MaH_2fK@hAw z3auM-+vmrL^Jg8KHW3^FU=PVbU`Y52P&O8uVAcE`KR`dheB9}oDw}T!7GCQwuCslP zGwn=!Uf`;?UuP<7f!$%g;=aou5y(_x?G$^F0TsvoMG?+qPYyRa}nG>T~%p6m4dK64+J`Y*? zEYn|1Q7`qd4164U1{=5kkihWXj3s5Y6&#B-9r{>R@J9rTG~oVOd%zJg!{{BnR|%-y z*9zSB%Rc;na@lK`Huc-aZjip6S@92;VDyZi5eJ0<+|suDBLO!}$Pcsu7M>jedI#13 zbWOHk25T{Ojofi(z;3|!w#=Ss1~Z?90sMwu06vH0{6>y}-Jx@#cj?@DfA%tdVC(8X z2mD-@&m_#FSVUW>iWl6*fV46)+6ya3zt9z8x@)He%q)LuVyy|5nHmp99xQ#R>Xxov z2OTuD`on&*>j21;--29k?aQ1saqLurmlNqgtJfek=;=PWIDHyyPgs6sthk~ZQo z#rj88kuF6#W&u+(OKX{R1ollkwSoQk#hHm}ZKkr(V`7QdO1B zNHqTSL2v~M5l@F;paCF)h)t?DTUZCy;FNoO#kK=)k)N^!XOk%&CMZ@7m4WV4v z#>R{Z)5A&k9XK)+_r(~?g+-GS10|Kw>IA||4~@BzCfH4ZT-$(|;y*vrkfMu{gt-eT z#rESD`4hlEP$D0L8^=8r`jo6{&g)6A4`#7=@JMqXmX=L?v}IvQ62y*8v9vuIL9MkL zKE{4kE0?G#5b-e7JdJQHd50gf_(W7F27_K?EWnIQBvZ9nFA2N+z)Dt8`6Oiv zB5U03C7kp9>I=^)z*dj^6K&VoJQ&)PQcQz|l}vncZm7xhm22s@Q_ZMwVFS7{2z7Ff;Cya;v2eo({A4_T(7Q0?>N zG@0J4m9e*3r+KtIw@InxS{#{zp42u;^GJ8Wh=B>{yL4x+xw_Pr9EyDW#xKk3!t0;j z@laefPf6C9M&d$lZsv*S3e~(mxMP)V3Xe!>VmN z|7KCsb^A@CrfdIOMNQZFH)=}%<$I1~yzujln>Q3tk3^L}vERE%lidF8+p7KO9j(%eLtBh<$~k|x7`iBchcZQQs;t};rkd6pL{6y@s4`YA0?+o<`E z05sk^!Q6;HlYK<43Vb!jxmVm#7U&f|)K&$hE=TZvWe5m$`08Auz-wBxsWWWbFc7RWY+o>N5y&0Hb5xg^y{^-N zy8~O{u$H60!Ma^%6trAd8VR&q*AmUlsG%xUk%=_nt|}>J)Le9qQ}&XGvt@%+ydvJC zIv_xDE_01nR~x~5z+1oWC_T~&x>R1RmJUQ(YVn^wa^)0yc(%=sJ;NDdI{~pJ{p8tC zHoDLL`pa;1n@^=5_q#U%kMMVBEb`w)L@F`zLbF{wBcm*#^%8Qh{VqX+`xG1lksg<#waPx|T@ z#xSTiulP}f(B|9h48V{_ilRKs4e(lm&3d_YALf0v%*cv6QS8 z-z$#*1l<^Ln6VF>Y7@=4RTh#uFUDP&Yj<`EBUpggob|t_Y7hB!^v3UlKr%Chxx5T| zD)kXyKuh-ynO&tQM!6~lW?R;kkuolqkn3G)nc1A6^`q+Mkjwz7QXmf~#9TL72Tb%# z19ZnNu#0S97FJ@Ua@g?XYaE0i5% zt*GE5GcHNU)dW86QUw!_#Hf5Ef3Dqj2GsQN@mq+45B9=6SzVt!FilwIflO~=8^_*5 zG8{)W;&>^8q-#Q#$DhI`Q>NUx)O2o<88_jWx%9DRe63gqCMM^I?T!_P0Iksz&Y*VB z8z>_`b=4CenkG22n6mpY%a~c0fU7Y&ae5rIgQ&EF&>*naxF6JmM4lzOe(})sy0J1# zZ&9--SsnO!90h5%HeY{nz<8jEm(sq+8km2}0sHS?g@5fS7AtPpF7PApWU@OTY12Q+ z(+0QjzZui+hi9%2{fH!`aLs^tAXs0mbe`C+_AXcU4Lc49LJ<4_;Dut)DnA1s(#&3C zDop3F`tI5L<^s6KgtDesZ?@j{jW{C1pu@0(p=Ffq8b;ct!nDEJ=3na1_1OSF*{}3N z(Q>H|tAw1bd)h}3g-kU+Y*nlK-I{97B;B}Y7;BPl$J0hSQg#6k#|j_$%>Rxvj~f?s zBIdCZvoAY5OHtcX=q{);o>xcwLA_H_4R z^t(NZ^ScCF7%OY*JFN|m)I$I{)ax~7$}}SpUsQmAUqj>87RGDh>{lCdP>C4L=_0Ozkm}I9*ny-vhR#^oNoJ<6aoGn}}oIU>8+|5?iQrb{O z_>7_Zg&_b)roB!q1I64TT~Lx#0x6+MTf(xsI7}O!T{79f%x)WfSZ~bup2K}e0zW2A z&vYq`e;1dV6gsbinTawaO*M0}!L$DHcyYzi_^0#Rh6B0}r-ewIN?k2Z;ifPkDRT}{muaXFVi#(VdJr}w6NYmT9i|ndCyEdv+JIKF$r#1J8%qSghS7V3ewcpH zKARxl5K)h5Q>lJr9ZOZkSYu+JE96?m`og7Qz*?|4OpJ~c|;5nxoUZ-ZZg9);Vm zYLO76K_lNMXe+sIRlQaq^n>syW-6IV)j1k1JXDGTr9QP)(EVmDL%y)}Enl{qBYn!wG%rn?&51*CStE?<5x3ktU@rYEF;n zNEZH4b`56rC13Wup2FC)&s+B4T2GsF8)_}SR$X{A@1##fx~ZlrGh9;{8a$;R4)8Nh zwld_phI4MUrpsC2O}Z_VAwToD@=IhE%xPDOZLnMTC*L&R&NrKguexSLVUBP$K6$9H zLEDu|jgj%NH?`$ZTbbjol3*3bCl3!EtFEMHq0& zL_#T3Gm&Yv>~UISxmu+zrkNc5&WUHW5z8$jDn2Xq% zbNvX~_i+}46C4VAZCgoD@kAx&7^cBIl?UfqoS@5#V~s0rnQU>mB_4+WG7=Mp{^|9D zGunMWUiQYBGnG7hHQgESp{#Lq@fOZ1EO>cD9UC9n=|pdGZVv+YLnpQn-##{HaxI5r z1STPZR1%yF4qN?Z_sMO_s_hGqZ}(5)&^5=Q!)PGBkwKk9(OesK9OmU)!d*o4c- z_rDBw+8i@$J-Wj@Ncc`{6DYwf0RVuLK1Qd@+e}rs@`Nq z8_rEF&_M5andh7gZwIX<2uRL4!bp=(*iNH^BNc+E(G-`4@RItvJfkc?XwpV;u-<()09^ zaX3rR_;K^4X6iVCRt9yAlGk{NC4}<}zitO(B)-(5gsDDo!3s7+C<6<+^FAhfidMV6BU{WB9^2SDNexIx5h+w!S;kZ^*P}hB;uy3 z5(v?uj*^LA#e2((eE%x+CpK%JjK0C@o2vFVM45lzjTML{9H~bVNG1p&*Q2jQ-3n#qkglGtM!Eq<6zqEo?f8LDw6j*H zFKLq5-bhqDZX@w9L_``BBF1MviC&<6#S8Lg_Hd@nLxjq+LQ!UvtGny#SRZw*YMXnS zOP_W=bH5&$0Qx}Q-$MI5Aud9914DQ5c|iQ$5#A3%e{=!eqW-GocK{uys_O>oq^j!$ z3Z;_Q@qdNNs_EFn^Y^>MatGP=gYAO*wbF;Z3$F*P2Y3LT zt_|TxumGLT15^vRkJtvr*M;zo_{_r31EdGGqm?b8HTd1`{pMG}UO|_xFDCYOU70HIefOz&Z%r-0 zHxKABofr3kt-O77*nUf`KDDhAgV$aj^VggBuzi&~Uqw#2tFQe4+D;~zIANO{c!381 z@4MIMP)|K14mkOxApY%QK&6ar`tc!2G`g$n+TMRs(xesIqFC@G!jV!KR>ezi)CpmP zEW?>b4(8_j>cs~eNN6ckg^bWFelbe16c%$aSmx%t*#>0BSV$9#*p{6fb@Q{Jp2wgU zPn?Lwj9Z;cpCV0fdFPswC}7gbKDJGX03B}$T2dfsZB3I{JpU@ozP&$;jSq?LE*2K8 zPBP3EcAWZCMRXMG){;RYA#?3cu`T|mp5QR^1+!ug_T#-=7K9e@TTRG0;C+oyL4VwJDm=*zrPrYK|Kp5kK&{e(;k!;uMnS+dGN7T&f# zt&PGz)yz6vY>jss$#kyI-OdT?d`ZTuQ%qG<7%e#2UYL=UgXc`Qz5qc|kNzB`GPL}7 z#zSK&hBC%dT52g2jLY3sdOGX22itDUd234U-hZcdltqVY)`2c{5Q`IzMK^QO-WFf| zR|PE_l{+BW?@4Ssea(6YC%ye;Q$t~L!xa~#rN|(>{r(!HJ;5XUU?(_RR>(l8!6sB% zEl7sa_Uf<<3~7DXB_}@xvKP@(@sav(R;$7|Cu6}2{a}T6bS@oO#U-R7D5Y`7}E1 zmGWjo5}GOp?T#wmB8(>1{pRilA&n3V0-ScZ)&z4Lvr0$sBQVO+v@kKAptypji%~OBK zMw4l&dA z_obaYj>`-nMU-a^B@zYhy72{3E!z<^Y)Z-+w}xM_^i~cFG#4%u2vb6;((4Pw$-IK5 z;{tzsy}iUq)wSFh@CWKF9TDTY4KS}qhGKBBkow{oXn~C`8+83DWixfqKV>8mho#X*q*vb8{s z_%r`Fd1(n%Jkf1lx233#cuF7&H=52fKBRmkGqWVDAYJgNi{~img#kbW0+OAl^G!hb#8X|-ur8(LwT=lM(pr3{ z2|jwkM5O!dP>R7B;a9IGvbw?>3?nR<-Qz(UlRp%ZN2)Wugtrz{32iBP2iTtLv!#f% zpF@H&jT@se?^!C+XlqMWSSB}%@AKtUPGksv4ZPRSoLrVdY2JVB^J{)_f?>{ z@&Iewq>Q zMfia6nagcfXY3b`{HFGCZ{3y870plh&Fxu)Dedqy#>IW~Gk6UsIWN}58$ zSHdYgeCUZhvC@2~@h;%UWwNApP<~4=%v6Z2y^;3%NU91`)O4UZU3ZY~;*4@JdrG}i zN`sx03f3!np4W;UX9LLw6%7{UdMlpbN{1JOU1}q*qA|W3XR>XM)S-C%Nxsjkhf`hh z>@jIS_Dh)xHCs`I(^JX!sKCov7jLLjM^bu+RcgdF*qfcF?n$EkzWl)@HhjCqU!A-* z$7TJh3}?6Oh0@2SX6i|a9Q{&U9YkwZCkTYB?e(?woi+3D9j)DxQ= zAE)&um_J?-uS_PW^7=V@X`MPk@kra82D#L$jAs&Rq+SmFaIUx$-=I1|UA`O>Av5 z`2yzjg;$0?q-~U?a5xFYQ-dgeA;bI9ip*_qCAqtB+@_LwE0yX3o&KEm?La zUa=QnQ>kq(7YWk$@KG@+b2%wGMRRF}gkDPznWywg*m93H^AD}(4l=v)e$8tO< zB3wxjg%r{hby2OF$UDpseYkETT*)p;qduMLCrLxwo#)}+jKXu1;dP1TD!Ly9@tD7zY9Z?73}fRgBW!%LL3yH4 zRQ-{sh?x2l_0#!$FAJPIJY7YVuK9wF*!p5Z&5>wWqmU1GI zIZ}X6AWGRV%eJaAlQ4&Rm7GM8T1~w5A+g%m#9OUm)0zrw153_0E}x~Yn6(x-#b+&u zrp3J#?jp?LC5s8aI4ERu=^>W`qfYWTS(}QpLorW;diSxDMeRIMv71RD6s!KK4fWe3 zccUMq5!H?NE*f>OZbu!=Y{;@sQm40LON^D!uPg|iBLBJbJjt(5a#>r^O@onWpl5E1 zx3PPHy>44@E4`aEY^tT#Ud?)Pc z1(Q06rCw#QQjJp^c`8H~+)aIxlVEY>otM1`l?TVyNi)Tl3HTeHK|d5maZfO__o?=? zawdP`DL0C4JFVSJtF?xm@0`pg^c%~TJY)>6V^lk; zTU-0;{2is%?;(Mun&G)W2faTkjYPEP8FU_>)k?Lnj5_{;;iNvBLHwk=V3SSB8@;l} z%$3jbGPA3vIQ>UxZ{O9Nic9vASBPfUC?7}Ii@aaC?|yy7L} zxpwA3fk8*yPa*?7^G`gB%!y8-lJuPGe^uvkG3numC`>*O&yaRS`&<`zIiCphS4Lq zQqkX*w>`p?--x`r$e)+{e7wUC4W=HoNM@Zo+o>u&$aTJm%ST^QQQ=p)Pp8F2br%!p zno$!|ty5nJ8=2%GX)1^g9^#SU@APe<6&vH}`Y}9+oo~|GPI!rb$dq(enI@@dcuFHd z^Y(}22Sq+aV;6}Vgd3wPXE|@Pw%(yIT%)s)$DZjapomY&@^nuux1yOVlFb@bl$g<7 zRQa4wA2CxFdd*`3NgxoD!1P|(S0yp*09^r@DaWLS8-b=$&gvbl(s{{`YBO4=6fS$E z@$~Z;3BKqW#Htoo?)mQ7V0VIAO9z`_(?u*bF9r)=>N5MBk~?F(hJ;e$6Zv!6F5h2s z^k8{tJow^B+s0nhdKxRACl7CWOH15pBHBVHc}B_3TyTP^aFAKFda%=9v`uR6XGdUU zhC;vM5YAiQZ*{plVIQO3kKi4MlBAXP_OKzDAn_yEb@;Hn(L_;N2?9DqhQ#-N3BnI&ZwG8kxLnczhp8U0dLtBzH>)P2~7X+HbKPee%qEAvC#JB4A*D-kJH zcEz(~*kzsa5>~v=aL#mGeQK`ovAx|zd86WHtc=`nx?H)G6osV@*^Ca6uw_#XZOTU%x)D!VnrUSfm2F$1 z8!R60JVO*0fBU;oonW7!-TN}W8FqhqQ}$MKDi5rOt(ghfCu0i??lTz*XMfLrdj3XT z%7DhOn9s0hX`#X^LAf%=xD4#Zereu^O_u}s4KuQa-Bi1fg}07B!DG^KI8VDK#4Or- z`E=@g-V@_F^)!X;fu=X~?_?iekd|w^u;JxKiLW1h3#%}P$EDKz&VW5W1^cq-Y#32q z$Hg?_xTg%wvkeG$xtL^QqS%hx^{Q+sZf~N) zKCN#feC=jQYMu4FhRVL>^x?b5(*@&^ubxVNJi1D~OV{T3P#Xf|`Db35z;}@8(KCC*Aci{|)Z7 zLrWq^A2(CPG?HVb9BDi+V3aw7@crI0S9b9$!vgh9iteP2utVJEl0}!JbLX;lGPn<1 zEtfe;nAL#)ZTse-rR}k~A2o=I&5em@!)Ma7ll3cziqANsZ_fwkJ*t?m7%L3)`!d;V z*vrOt^QJnMioqcH_2$c}Vy`TpttsY|ITEN!OjA=n|j9D_{rA> zQd1PfBl(j}lJ;7oLtnd=L-4;Jd!{`k^0WrG;($L5f(KFUR@(D!ZQ-Ui*V<$6h%O1g z3_nM#HJnH_3A@Ltoh!h7vib( zkWUu5Hx~{2)|w-qiDOrDZ+k3h&ZQs&9fqj_4p(jVkEi%Qr@P^?gS|CrcHSbd3k0kpYx_5+-|~LrCEv#KblhnU*lrzv=D#hm_;bBU zY7Bb}t9rSGvHFnVPp_SUr0++znsyF8yKc-f-PE0EhPa?LW%T6?RG(ZTl}Z z>s}{UbKV1`{*)efs6qOUcO8}wRsCAC{4E(=O{qt{;UuRf4I9OgY|JM_VAt#zaPXui^ogJ*r z{#5`KL_qBR0=yjDT-{9meI$$!LGAx8$PpAwFn9jffpI|O5dz2V8u6D&{?_d8f&G$a z4ZbdNwl}`^r(o33kQgH`i3b9A%Riij2-b!t*zK<;1$#q}USi;yE|6piT+auQuM8f- z!5FyP-%r-|5>|zkDY1c3Yr)U%7gzrrc-U|Wm>90k?LPBBa0y^Qt>gk8yui@n*YlLU zI!tMO`Dg&_K?S5ityB%N2#$PA8mLIIg>wM{10X=H`|m^5gP#a&1+*>{l ztaKmEN^1157}on+>140|tw%tIMzoBJVt^+flLnk?RGHHtmcD^#g~n103tR#wM)YZ6 zlP+K-Su`t+vcY0l?QbRdh4g+QpaT}#?0t+Ko_tIir0a9z`~e8>00C;H+%s?qm>9T` zj`w$G?|3vTDRaYOSnhA7o`%>5fk1}>G%F?Yz>|+j1NFA2!r6cjh?a5w=im}BF|_&) zJ{<>E@<6jvC~ypn+1p}&E4|gzI~NXg$U(DGs{lOtm^9$Y8q_HP1XeUFl?cNnU}6-O zF%C5XD^a3Z=^fY*!?4n?l1_Vf0`GeV-dq4Wtbw@+I(u)3!;_CmgI2wQ`rWe?Avy*avA`41{gQzUEQZ?q##geH$TmmLWcBH!k17KJIZ-B`T<)AZ!#W2QTra1M=7t6o}?I7i#fX7$i z0ZjJy!~Ij0q_sc;HZ%=ZOyB{2_3YX^Y3L{9YVU4jD#11znr@^PumIlsE1=u+fPo%Z z=rm9QDqq+hmi%9DK<^#Di0f)?D<=X0>e=s+U*-TyzUThqC#MX0DhIYrvuYr8|L5~ce z0V^g0`s{9j+_?)9+Mt?-sSARiaaLT_{6$^W|t;9kN#g*M$-K-k?5Lw)c*7bXEi zmbtAZ-X;e2ccI(sgD#*Nj3wb$k(a$1G#=4l?FIJfMVqc=Uc!^l%(uUn2TxcMJ_R`} z59SJ}jeLq>63*>U!0o)b90hdHMAIR(6ei(U&$zu-O7d@h=?Dm;Xd5K|a+ri)pX}@< zw7koeR6YVO+`#2BG}lxsVG*47w^4c&*P1WTfC5c}?PhrLnK5i4r%tb(d;|zBXoTSw zm;?+PuoeCoPAVY194(SY+h7tftjg(H2Ss+bkSEY0NxuUo0mHKF%b{}A2N0yd$^gxV zH((NhkLmT6nyhuw=qC?V$^Oag{joi@C(41yBz0sKH?)x8fE!D;_kJ)7D0 zEdcoW4ES0CDnAV`G*F`8(g7F;ffi6k+8AsG22V3Rs-ZCi^69|sTBs-bfb(H^!eM_;tl_G?NCWbP z(L5b94NJcL{_;bWKQGjPJQx7k1|5GqxEl&%{C4}xUo597Oa)oM3;Y0;|7ro2duCS}-^l+}Moz=Z&CbN$ z*!r55wK;~}>dT9pe&v7^3`pRf0?I+X@w+5U**CRvYxWZ$oB=#F6cXsku=U%lf2rZR zcP;80d?|~tWC-&k{E8m0L;V8$P(C_0gG#}UtM=cHyHL^E&KL}>b{Mn%dL#h3} zVALwBM><5;2H(-f72`o-~a#s literal 0 HcmV?d00001 diff --git a/app/src/main/java/com/fanaye/sorantravel/ui/weather/WeatherFragment.java b/app/src/main/java/com/fanaye/sorantravel/ui/weather/WeatherFragment.java index 1ca42a1..2cc9e2e 100644 --- a/app/src/main/java/com/fanaye/sorantravel/ui/weather/WeatherFragment.java +++ b/app/src/main/java/com/fanaye/sorantravel/ui/weather/WeatherFragment.java @@ -1,7 +1,10 @@ package com.fanaye.sorantravel.ui.weather; +import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; +import android.net.ConnectivityManager; +import android.net.NetworkInfo; import android.os.AsyncTask; import android.os.Bundle; import android.view.LayoutInflater; @@ -17,44 +20,80 @@ import com.fanaye.sorantravel.R; import com.fanaye.sorantravel.ui.weather.model.DATA; +import com.google.firebase.analytics.FirebaseAnalytics; import com.google.gson.Gson; import java.util.Locale; +import static androidx.core.content.ContextCompat.getSystemService; import static java.lang.String.format; public class WeatherFragment extends Fragment { + private final String cityID = "92002"; private ImageView condIcon; + JSONWeatherTask jsonWeatherTask; private ProgressBar progressBar; private TextView conditionDesc; private TextView temp; private TextView press; + private TextView internetErrorLabel; private TextView humidity; + private TextView pressLabel; private TextView windSpeed; private TextView windDeg; + private TextView humidityLabel; private byte[] imageData; + private TextView windLabel; + private FirebaseAnalytics crashAnalysis; @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View root = inflater.inflate(R.layout.weather_fragment, container, false); + crashAnalysis = FirebaseAnalytics.getInstance(getContext()); if (getResources().getConfiguration().getLocales().get(0).getLanguage().equalsIgnoreCase("ku")) { root.setLayoutDirection(View.LAYOUT_DIRECTION_RTL); } + internetErrorLabel = root.findViewById(R.id.internet_error_label); progressBar = root.findViewById(R.id.progressBar); progressBar.setIndeterminate(true); condIcon = root.findViewById(R.id.cond_icon); conditionDesc = root.findViewById(R.id.conditionDesc); temp = root.findViewById(R.id.temp); press = root.findViewById(R.id.pressure); + pressLabel = root.findViewById(R.id.pressure_label); humidity = root.findViewById(R.id.humidity); + humidityLabel = root.findViewById(R.id.humidity_label); windSpeed = root.findViewById(R.id.wind_speed); windDeg = root.findViewById(R.id.wind_deg); + windLabel = root.findViewById(R.id.wind_label); + + if (internetAvailable(getContext())) { + jsonWeatherTask = new JSONWeatherTask(); + jsonWeatherTask.execute(cityID); + } else { + condIcon.setImageResource(R.drawable.ic_signal_wifi_off_black_24dp); + conditionDesc.setVisibility(View.GONE); + progressBar.setVisibility(View.GONE); + temp.setVisibility(View.GONE); + press.setVisibility(View.GONE); + pressLabel.setVisibility(View.GONE); + humidityLabel.setVisibility(View.GONE); + windLabel.setVisibility(View.GONE); + humidity.setVisibility(View.GONE); + windSpeed.setVisibility(View.GONE); + windDeg.setVisibility(View.GONE); + internetErrorLabel.setVisibility(View.VISIBLE); + } + + root.setOnClickListener(v -> { + progressBar.setVisibility(View.VISIBLE); + jsonWeatherTask = new JSONWeatherTask(); + jsonWeatherTask.execute(cityID); + }); + - final String cityID = "92002"; - JSONWeatherTask jsonWeatherTask = new JSONWeatherTask(); - jsonWeatherTask.execute(cityID); return root; } @@ -63,23 +102,65 @@ public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); } + private boolean internetAvailable(Context c) { + boolean haveConnectedWifi = false; + boolean haveConnectedMobile = false; + + ConnectivityManager cm = (ConnectivityManager) getSystemService(c, ConnectivityManager.class); + NetworkInfo[] netInfo = cm.getAllNetworkInfo(); + for (NetworkInfo ni : netInfo) { + if (ni.getTypeName().equalsIgnoreCase("WIFI")) + if (ni.isConnected()) + haveConnectedWifi = true; + if (ni.getTypeName().equalsIgnoreCase("MOBILE")) + if (ni.isConnected()) + haveConnectedMobile = true; + } + return haveConnectedWifi || haveConnectedMobile; + } + private class JSONWeatherTask extends AsyncTask { @Override protected DATA doInBackground(String... params) { - + if (!internetAvailable(getContext())) { + cancel(false); + } publishProgress(10); - String json = ((new WeatherHttpClient()).getWeatherData(params[0], getString(R.string.WEATHER_API_KEY))); + String json = ((new WeatherHttpClient(crashAnalysis)).getWeatherData(params[0], getString(R.string.WEATHER_API_KEY))); + publishProgress(30); Gson gson = new Gson(); publishProgress(50); - DATA data = gson.fromJson(json, DATA.class); + DATA data = null; + if (json != null) { + data = gson.fromJson(json, DATA.class); + } publishProgress(75); - imageData = ((new WeatherHttpClient()).getImage(data.getWeather().get(0).getIcon())); + if (data != null) { + imageData = ((new WeatherHttpClient(crashAnalysis)).getImage(data.getWeather().get(0).getIcon())); + } publishProgress(100); return data; } + @Override + protected void onCancelled(DATA data) { + condIcon.setImageResource(R.drawable.ic_signal_wifi_off_black_24dp); + conditionDesc.setVisibility(View.GONE); + conditionDesc.setText(R.string.NO_INTERNET_CONNECTION); + progressBar.setVisibility(View.GONE); + temp.setVisibility(View.GONE); + press.setVisibility(View.GONE); + pressLabel.setVisibility(View.GONE); + humidityLabel.setVisibility(View.GONE); + windLabel.setVisibility(View.GONE); + humidity.setVisibility(View.GONE); + windSpeed.setVisibility(View.GONE); + windDeg.setVisibility(View.GONE); + internetErrorLabel.setVisibility(View.VISIBLE); + } + @Override protected void onPostExecute(DATA data) { super.onPostExecute(data); @@ -88,15 +169,26 @@ protected void onPostExecute(DATA data) { Bitmap img = BitmapFactory.decodeByteArray(imageData, 0, imageData.length); condIcon.setImageBitmap(img); } - - conditionDesc.setText(format(Locale.getDefault(), "%s(%s)", data.getWeather().get(0).getMain(), data.getWeather().get(0).getDescription())); - temp.setText(format(Locale.ENGLISH, "%d°C", Math.round((data.getMain().getTemp())))); - humidity.setText(String.format(Locale.ENGLISH, "%d%%", Math.round(data.getMain().getHumidity()))); - press.setText(String.format(Locale.ENGLISH, "%d hPa", Math.round(data.getMain().getPressure()))); - windSpeed.setText(String.format("%s mps", data.getWind().getSpeed())); - windDeg.setText(String.format(Locale.ENGLISH, "%d°", data.getWind().getDeg())); + if (data != null) { + internetErrorLabel.setVisibility(View.GONE); + conditionDesc.setVisibility(View.VISIBLE); + temp.setVisibility(View.VISIBLE); + press.setVisibility(View.VISIBLE); + pressLabel.setVisibility(View.VISIBLE); + humidityLabel.setVisibility(View.VISIBLE); + windLabel.setVisibility(View.VISIBLE); + humidity.setVisibility(View.VISIBLE); + windSpeed.setVisibility(View.VISIBLE); + windDeg.setVisibility(View.VISIBLE); + + conditionDesc.setText(format(Locale.getDefault(), "%s(%s)", data.getWeather().get(0).getMain(), data.getWeather().get(0).getDescription())); + temp.setText(format(Locale.ENGLISH, "%d°C", Math.round((data.getMain().getTemp())))); + humidity.setText(String.format(Locale.ENGLISH, "%d%%", Math.round(data.getMain().getHumidity()))); + press.setText(String.format(Locale.ENGLISH, "%d hPa", Math.round(data.getMain().getPressure()))); + windSpeed.setText(String.format("%s mps", data.getWind().getSpeed())); + windDeg.setText(String.format(Locale.ENGLISH, "%d°", data.getWind().getDeg())); + } } } - } diff --git a/app/src/main/java/com/fanaye/sorantravel/ui/weather/WeatherHttpClient.java b/app/src/main/java/com/fanaye/sorantravel/ui/weather/WeatherHttpClient.java index 9289072..cd13fa9 100644 --- a/app/src/main/java/com/fanaye/sorantravel/ui/weather/WeatherHttpClient.java +++ b/app/src/main/java/com/fanaye/sorantravel/ui/weather/WeatherHttpClient.java @@ -1,5 +1,9 @@ package com.fanaye.sorantravel.ui.weather; +import android.os.Bundle; + +import com.google.firebase.analytics.FirebaseAnalytics; + import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -13,7 +17,11 @@ public class WeatherHttpClient { private static String BASE_URL = "http://api.openweathermap.org/data/2.5/weather?id="; private static String IMG_URL = "http://openweathermap.org/img/wn/"; + private FirebaseAnalytics crashAnalysis; + WeatherHttpClient(FirebaseAnalytics crashAnalysis) { + this.crashAnalysis = crashAnalysis; + } public String getWeatherData(String location, String key) { HttpURLConnection con = null; @@ -24,7 +32,14 @@ public String getWeatherData(String location, String key) { } try { con = (HttpURLConnection) (new URL(BASE_URL + location + "&APPID=" + key + "&units=metric&lang=" + lang)).openConnection(); - con.connect(); + try { + con.connect(); + } catch (IOException e) { + Bundle WAPIREQERR_DATA = new Bundle(); + WAPIREQERR_DATA.putString("Message", e.getMessage()); + System.out.println(e.getMessage()); + crashAnalysis.logEvent("Weather_API_req_error", WAPIREQERR_DATA); + } // Let's read the response StringBuffer buffer = new StringBuffer(); @@ -69,9 +84,11 @@ public byte[] getImage(String code) { baos.write(buffer); return baos.toByteArray(); - } catch (IOException t) { - t.printStackTrace(System.err); -// t.printStackTrace(); + } catch (IOException e) { + Bundle WAPIREQERR_DATA = new Bundle(); + WAPIREQERR_DATA.putString("Message", e.getMessage()); + System.out.println(e.getMessage()); + crashAnalysis.logEvent("Weather_IMAGE_req_error", WAPIREQERR_DATA); } finally { try { is.close(); diff --git a/app/src/main/res/drawable/ic_signal_wifi_off_black_24dp.xml b/app/src/main/res/drawable/ic_signal_wifi_off_black_24dp.xml new file mode 100644 index 0000000..c4adb81 --- /dev/null +++ b/app/src/main/res/drawable/ic_signal_wifi_off_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/layout/weather_fragment.xml b/app/src/main/res/layout/weather_fragment.xml index 4525615..b4c9fa3 100644 --- a/app/src/main/res/layout/weather_fragment.xml +++ b/app/src/main/res/layout/weather_fragment.xml @@ -15,6 +15,7 @@ android:fontFamily="@font/roboto_medium" android:text="@string/soran_iraq" android:textAlignment="center" + android:textColor="@android:color/secondary_text_light" android:textSize="36sp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" @@ -148,4 +149,20 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> + + \ No newline at end of file diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index ca31ea2..47acd46 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -39,4 +39,5 @@ ريح: الضغط: رطوبة: + لا يوجد اتصال بالإنترنت، انقر في أي مكان لإعادة المحاولة \ No newline at end of file diff --git a/app/src/main/res/values-ku/strings.xml b/app/src/main/res/values-ku/strings.xml index 9851a6a..87c7a45 100644 --- a/app/src/main/res/values-ku/strings.xml +++ b/app/src/main/res/values-ku/strings.xml @@ -39,4 +39,5 @@ فشار: شێ: با: + ئینتەرنێت بەردەست نییە، پەنجەبنێ بە هەرشوێنێکدا بۆ دووبارە هەوڵدانەوە \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 58d6fc8..92b03a5 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -89,4 +89,5 @@ Pressure: Humidity: Wind: + No Internet Connection, tap anywhere to retry diff --git a/build.gradle b/build.gradle index d29fea0..10f7630 100644 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,8 @@ buildscript { } dependencies { classpath 'com.android.tools.build:gradle:3.6.3' - + classpath 'com.google.gms:google-services:4.3.3' + classpath 'com.google.firebase:firebase-crashlytics-gradle:2.1.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } From 76c79cb2b9d7542dfcacffda972f18aad1818fc7 Mon Sep 17 00:00:00 2001 From: akamfoad <41629832+akamfoad@users.noreply.github.com> Date: Fri, 15 May 2020 14:30:57 +0300 Subject: [PATCH 2/3] Landscape layout added to the weather fragment. --- .../main/res/layout-land/weather_fragment.xml | 167 ++++++++++++++++++ 1 file changed, 167 insertions(+) create mode 100644 app/src/main/res/layout-land/weather_fragment.xml diff --git a/app/src/main/res/layout-land/weather_fragment.xml b/app/src/main/res/layout-land/weather_fragment.xml new file mode 100644 index 0000000..00d06ce --- /dev/null +++ b/app/src/main/res/layout-land/weather_fragment.xml @@ -0,0 +1,167 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 22ecbc27b23d0bdce12518d17164ed960e810671 Mon Sep 17 00:00:00 2001 From: akamfoad <41629832+akamfoad@users.noreply.github.com> Date: Fri, 15 May 2020 15:23:25 +0300 Subject: [PATCH 3/3] set Weather condition icon to no internet connection/problem if image isn't loaded. --- .../java/com/fanaye/sorantravel/ui/weather/WeatherFragment.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/java/com/fanaye/sorantravel/ui/weather/WeatherFragment.java b/app/src/main/java/com/fanaye/sorantravel/ui/weather/WeatherFragment.java index 2cc9e2e..ae47737 100644 --- a/app/src/main/java/com/fanaye/sorantravel/ui/weather/WeatherFragment.java +++ b/app/src/main/java/com/fanaye/sorantravel/ui/weather/WeatherFragment.java @@ -168,6 +168,8 @@ protected void onPostExecute(DATA data) { if (imageData != null && imageData.length > 0) { Bitmap img = BitmapFactory.decodeByteArray(imageData, 0, imageData.length); condIcon.setImageBitmap(img); + } else { + condIcon.setImageResource(R.drawable.ic_signal_wifi_off_black_24dp); } if (data != null) { internetErrorLabel.setVisibility(View.GONE);