From b822453c6fab62831da2c506ab0e79ce3ee9fdc2 Mon Sep 17 00:00:00 2001 From: Edu Date: Mon, 30 Mar 2026 19:29:20 +0200 Subject: [PATCH 01/13] feat(home): add crypto listings screen with BTC hero --- .github/assets/home-preview.png | Bin 0 -> 244355 bytes app/(tabs)/index.tsx | 157 ++++++++---------- app/_layout.tsx | 18 +- components/text.tsx | 62 +++++++ components/themed-text.tsx | 62 +------ components/themed-view.tsx | 16 +- components/view.tsx | 14 ++ features/home/components/btc-hero.tsx | 68 ++++++++ features/home/components/coin-row.tsx | 62 +++++++ features/home/components/home-hero.tsx | 67 ++++++++ .../home/components/list-section-header.tsx | 30 ++++ features/home/config.ts | 10 ++ features/home/utils.ts | 12 ++ hooks/use-crypto-listings.ts | 15 ++ lib/cmc-client.ts | 23 +++ lib/query-client.ts | 12 ++ package-lock.json | 38 +++++ package.json | 9 +- types/cmc.ts | 40 +++++ types/env.d.ts | 5 + 20 files changed, 548 insertions(+), 172 deletions(-) create mode 100644 .github/assets/home-preview.png create mode 100644 components/text.tsx create mode 100644 components/view.tsx create mode 100644 features/home/components/btc-hero.tsx create mode 100644 features/home/components/coin-row.tsx create mode 100644 features/home/components/home-hero.tsx create mode 100644 features/home/components/list-section-header.tsx create mode 100644 features/home/config.ts create mode 100644 features/home/utils.ts create mode 100644 hooks/use-crypto-listings.ts create mode 100644 lib/cmc-client.ts create mode 100644 lib/query-client.ts create mode 100644 types/cmc.ts create mode 100644 types/env.d.ts diff --git a/.github/assets/home-preview.png b/.github/assets/home-preview.png new file mode 100644 index 0000000000000000000000000000000000000000..0a22d01d50825a85bff87ff2b52ac66ff867c244 GIT binary patch literal 244355 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≀YR|y;Y2~`(l_nd^$jFq%yxl-&6XhmF4*6`2_cvshZni$id}GxWEf4 z`o8>{?jBQhU1Qu#%ZVcT4n21fts3hmUP%j0VQp6u@%libVO>>=_;CKnpyVZX%Yu|| zA43Xu_1(e1+*aK1?@XT{9xe23Z{;2PL_z&7(an z7v@-9>WapNQR=+hWK}K5{_>RV?T(9^$j;@c*d3Ph$?+>~N*Fg2nfb^@-Q8sJT325B^CR@s7_k-+RiYX7)Ku z*DJQ=sohdI9;i&%D;qFf2WZS1?)Qnb)J)9#T56@5#_1T@brNC>tF%wOruM@4gjA3v zfr*OR7-3*?9CQo<%7SO&?E!Gg=SoVWfUvEz!EkpRm(px%gV~%ycU}rBs5?L5-B%Pe z)b<+GZ8J(3`)JKz!fWmOyw{a2x7%dYs-n7qX;(ul4p}%q{N)9JmixoqiTDX7Lg2b= z`H;1Bq(gSqWu=rOV@kHlZ8_XJ)Dp_de%s-Sm}iqb8HbW(vC?&(MB2j=UN}7_pqmes z_@w7~UDS*a|T#vsps_Qft!M6KkaD@-j!%IN)u!$rsIUnwo&dqgW( zadZWTTtS82qAPCa{mY(R$5}SEbRWr+_5(bnq7JR_KeOJq85^7Lw+lDdz$CM6> z47VdUE661#5*FaR(G2@1oMuJjYHWLA0rnxWcNCrD*a;RnhP3TCs%1-ZUD`+DyL?~3rs4aI9P zC?KmBBKl{#*n44ptG+%jU7sT7KsAo!zp|L!3!Yx>ICEd#_+f469Fnx?cdQqS>3=wL z26M;%4TwBS@X2+o@iD#7UR=Kv^cF!%sgQTL}OR_LeQDm4$Qzk%_PXL1d;=_lSud zVboB6{RIN~qXP_S+e#|8fgKT1pOtIufgR5_3AP&vyW4}Yq3iDF4#Tx$SZkaO#aNGP ztW~$x+5wL-003G+$C0(qNi1Mjbu&=}i+ke)&v_`Kps{n!y6xCpqf}G9C`6*+ImM96 z?^hJK^Ns;>bmak92g#8;$y(0zUB9XN<(*$5WdxTz*8Z<`=wZr1f!xBj9ZZHIlB)f6 zsURkpk3i0(+_+E+o@I?1KbWh2zB4H&mcABOajz2!lUHH zW*9EtZT_$jh5Nv0v(X~y-1yhlU+Y!5J*-)wHdow&7A*!aPUM4;1RZ-wl{6~*=?qOgL{$>T0*r}=(9PW+%DkV#-$YA z!}%%=O03#~-W|?)16Sy5$p=S`tGNS3(<+z7SAs6HCWpeewy*o8q9^x6lYVm5-ng=s zYSb}gBTU>oPbgvay&4iI-PgOC>&En8`yO*DWKrh*^iwE6UaiUyTi(B+Mn)^hYF?LKu0H`0L2?SUAv` zr-g+g({wulx3{=N#p<$?DI}8*U%QaPDy9%()-jNf481t3J>z^>=t5;2W^oj0V3-?nJfS z4KD+mM;fKCvC*Ewc8$Mv;|Q_b(^Iv=BfH_sbdy2Bi$1ck0VXj4Q-}BbJ8#~o#1;4i zbl?&OEe;Q;T#jM-IYAl5C0B;#p!t4Cf?50hi28v^{(OkTzK=lQOh4SBoA!yu3H;I( zwFpC*9p{gg!Wnn3D_;5a`a=<{Hc3`b56o&ijt8s!ir`vu6NCb;^NpVb2|@TgwSUog zIs;pkuWwc$Aulh(A(TYOM?e$g(#vqK)vn0O^J0JOBa{0y$&lcIA27Cl1`rFrjtZ`Y z6^+$uHjBS#`vHE2gKBTJc7V717*~Aeo3Z3(Zp$1o{)*d5u{Y}>f?g4<(~D{*TNc&d z{=1Fq9KprCaVqs>H4-z=At`+F^g7II?!}-OdMY01m zdkXlVzcAUxU6r&&A4b*JcOk%pYAhUqDU>fADoWoz1bm>Z&2+=30~T>&u@ttj2^af_ zvJ8En9`Zo#ahrV`P5jM9tI)Q_>-MEbM5jl)b9w2BU#Ruosw=3A6-Hlg+yME+weAb~ z)NO5Pa54HY*5nYF{77pM31Qt$*BXlpGmH}ZFDzR4=-J^BZTfW!+vQ;WdRMZTRsONlMKuKd;^pUQia=#;E?06Zy{%n){S66DE@M>M_B`Y$_ zSceR<6Bz2osGsgeb_o7)Cvnksu+{>d7qZnAz|W zUOq+9UjbHdT`5QFnbZ_vn6-9t1^zfQ!}9{=3A^VYcxn#!6p%uG~-!ZE3N6uObR8(L~O*O+g)k8pq9 zeeL4Ej6v`+Y{y>Tm@i}FL+=0BpAtZM9{IKV@_ROFSWbL{;W~5~t8@D|y{Q5UN$pCiEe@yK|8U8yEUiHJDG1O0PJsspA>8)C17-thaS;`q$&02XYgL{h-D~ZQb7P1N$k!j% zc`*ChHv#DrL9HN3uBqKm!upkc&%FbPvyB!20C+!!MC*@JI>o<5kv~LBfBpR9)T8eO zgr{gEOfYcT`}>Oz==3Z0tUS2lSWh{Kop5$T-rw18blujV<9zXCsar06Mz}(Lzuxm< z86V{?Y=3OQ8<(`klFUPr`Q4{z5hVTZiCoqrKM!81gxnKxnXO0QgAP9_6&v`j7`7qw z2X5%8a>c}?sj@|9*MN~@Ca;!2e>O@b#L04{62>9b3{Eo|de)VjrQsdFEsJO$A z0FuvYYt=Wbidi3H7&O`aB&391-kk3f6gL+W?KK^rZ-U3pV11!5U26K?UI;uuh$(8n z8^n4|V?1+z*VEzfL-YOR&9}qtGVawRGTZZ-oOl*yPOC{guOuo~A$U=x#YEq^#e~|H z^9Oy+awlkUUUs(B1cPd}anSko6P#W^nffUh2VPb0#QRpybITp7@-54IA5gT$pWHiq zF4AsktBxJ_ECfW6pviAd<|D$2a4kjn+Yt)v8E^5LlH*CTQt2(FoLff&k@Uk)kZ&{9 zSVLqCzZx3Zxw${Dr|b`c)o5$hj@MqTuE7Nue@QfV+CHn95@E+x$N^;a2 zPmdx%I}NWT^GbN36{Ggl?Ghh;LAYTtT^?}P>~%Be`b#`Lop(3Ppf(T%C7_iWB;};~ zv7)xltU=iney{<@nRmM5bm+&1HO!&>;LH{0brNX5HZd{jNvH{wy{Wdb)?J~KKpQES z^p4kM%xMW3SwX5{UfP7Mp8 zdc6sEmt<*PX7DE4Z_Skjbev>yq-WkiBpfrbi8J!-&TM^$r#@J`E&|X}f7eYA* z51pM!R-<|4;?#ok(ktaW7v?7plZg&zvGKA6!9E6zUlxJ=Ichg-pxJCBaj0-Zg%T$aQ9PKR%K?>u*sMC;4DeI3ad_G%RE~vCWBp z6NZwgi+&Q9MqeG62LuU?2 zuWGzLv18doLx%+<+}=--UnQawzw?totjM@6>B5C>Bb@d|Uz<_zBX=NG;R1tMZwl25 zUzF~M)hybX4&y60ShHfx`;$K0i^m)9k_qWVUy z7uHYv`(ejbecXA9=uEy6;8ON0)7&}FilgO|=qzG-^2*_3rRB(M>gc)~I&>Zaen#JqFg@W0WaI`f5=shjQ%8`kU!8rI5S#6_*CQpBZAGRDMTlA|FKM5~xn8G9EtJd^rz!-)Q|a=KX~KM7DEboI{s||JwKayX7>1%uB3k z`-{lpyDatq>GrkbMlT=`|6Gq4k{cXadxc5V*N@Rn&X||Zt5FY?YW3mM>!<^e%<{(L z>z5-5zMpIX#YdzF(sggdtD*6QIWyjfPIFf8o8`h%(?$BctCmcp>r~1i!K-vp&1Yb) z!D$keO-uBv$PPoslddUoq09XLWz5SfBqt#kBx9YXh}41#KoDP2?_RZ z74I_(adVq;)nuz+MXD9K<4Ue2?ShG)Ty19mX2L6cK;NCMl5HMG5SlePB0C)?2;X^7 z86KnPI-SKe$evTu(Qg7PnY$*_0Axtk5kti_`5R1c;X`>|&ydj4ZFQG|Z+o+Gk=3Gv zJpE-AT+Ug`WxJ6$tyEaY4_dm8Hj#$XO`?Mbf;AIIvlXf73roP>>v2#&q~kUM5V%CL z0-IOfZ&3j&C^&fB4>{;O=&|v`pplh-N!5eJh5d_i1`T!Pz>V-9=3Aps<;XChgjCK+ zT@L2rI_xFh!^-=$jWqi4#Tx@XZv7j0IKX#rOz8ykwE1Fds6p|Wc?^cj9^ig@^nPyG z6d-4k{)?PRnA)1j#1mJlLEn8&Zg7M_Gk#`ujCLT?Pn^c5IwF1eNr)OCwF?V%nW%2yip?-L6!x0N84VzNGflsBQ%y^h}N&)e6!3G7T!Bte}2J)yaz*Xpw=b z3Y(wB`2>g&F(Mj`z+ONk?NV7(A9VbSAk-Q30J%G>Gh{7CT`zuDzkF?;&yK`I+lbni z(ifnwO+!y#`6HsI1&DD<0c8HM>}FaVv8XPEhA4CQ1(3&`0mRv_cvctG_(`5=|a zxXdoyj7;mLet}8>6DP+oEwGs16LH)|j@FEh)JJ&zruEMOXf^@po7?$J_tiWZi359WC;!)5WUObbl_dI{kR zHm7@Aqj*A7s#l>_sg#{lWR*Sr6zAY4XBLI}AACe3f_(IN2B0lXmT>u~Ja;?JjWMlxT$ ziq63Fr0N0-t7H^70epZeKVuRsh~!8Ow`6Fw%*11_g2OI=~v5FECVB5T=oh zi?GY}W?X3u!Dp+!_4SZO;kDvmBQLhbET1T-i@ zFl&BWN#QnRybgpsI>t6b7FB7pEg!L1O~BH42$1+a4vUaT^dt@wCj@z(@5e&ZKUn(C zqbxw?=SQ~%Cn_W_YTZled5$&g|8<^#y?`m(8ot!ihOhS!t%&TLWJ!sL5cEQk9}sAo zTh0zYI{%E%kydz2e-p323KQ^rp4|_)V^lp<28=W!03z7Wv-`^xBTWEG9~XI_+JtA7m@X^3VaDYVNqe^0S5k-Qb4=+Yk>|pe(`>b zQovYI`;!+%FW!p9LFv;!0K?x4ACe9)AhtO=IINBh3B{`x!g_p~X{D}?*DgGp2thXz z-*JAU07rxadcT2M!vZl=NOpBQ8`=z@xUG z75uJEk@D&OZ(0oB1Y|spG^7sH%D@fvwTlp-P-jt1Gezo7EEc1cu8*R#u;(s}?PN@6 z(W3cK^?}g=(a@R=DHUDzp0o;0|l-Ib*Y}Wc>V=H-{6b$F+bPKd+}a&pX6Idmy-bd^a=c>k{7R4R8}!?upi4$w%YHYRw4Kz1{jg? zA0Z$_N%^hpY>k-$3eC}m_qb4v5iE4L;Rw~0OV`^i$SS^4gIe+7-oE#nwr}2Vc13>E zlZ+t01q*Wu^W-1Cyvqnl3#A71Ff>CsnCsY8kOXOQ&Ojk~j<%yV$!Mlm6H9aTGKr^7 zI?xX%do|@E#h@V9Jt}kqdh29P&oHL@En290X&PuU)5{RoSm?J0p_@czpUCMmK|Mu! zNCFva_a>DtAr6a5BIcGJ>wbfY!&)4B&efUuDs_dG520M;>Z0}c;7sZ3FVhORwgRq! zb_=ahw1QDUp@S(RmHn|oMMR&{9Mo+v&54O4>Gyv))vXoaO)bhWBpF0tV$kZf$O=MR zBvutd8@>WyXx;4r=*4T3S5yAUQGVU8i;H-`Y^Lj<%>f-1*1}GJ&ckxahn|{~l1E2N z=av1(8!KI5ZMp2qS~N6z{n+1sw-vuE!`>WKgXcET6qucY6I7=nk<%HvS;&a~I4__h zul(|+TS82 zkZ1tHrdX_~#o6~842tAP8LTRLJs3v3Xm4JG-BfSM!Rn^-8mp4SO zURwNNGUO(>~M!0{UOwL`#vpFZOfPvg$2y0PKN>NQtk(>SZ{9rwcJ z@!ZbZptG{+`8iFw!25U=)<_xw_L&~2YQ3z?qc;QJ$n?BdujNgaKRw`7+S80^kT3a zu6N#lo{F=RAfG+;?jLc;y$bSq;5i2BRftPTx$pf(@`kjB1BQFSmVS=om6=2{EJY!# zvD&4azxmc?I#-mso|9Qwd*2G2R>=x`$)A1hvD-6UTnbMFX3bPu&&0!P$Fm7vH)z?_ z6`WJ{zGdD?cbVR=a@hCt?hT$Jduy;e23v@2kPIsrmbss}G=j#&T~HFaAaU5y9i%U3 zumVg`_1yT9L8@+>ImX*~EG$V4FtRZZq964K{ip&zB(&nZfR&6EDB1~P%AybFSK}KO zr2-XtxWoDW9OEwt9Eet1)e)7}Bci`}12ed6FO4UyTS~R3s;uIF-Cc_sggQ*>B`Gte zCrUK3GR9R}t?frUr7e9xW3%t}fJB3IW0F~03b3iOp$OA&aw#4dc3fLu-?rk8UkTeU zzEh(5(ft=b^()`=6+-hJym9Fnm#bKdmUA?j52Gn}g7K1XdmtSTjI+0Bf*ZfN6!4dw zVoxXD6l$`Q#+J~l%Bn?BxD>@Wdo~XHnQc|AO~i3acUC_1$A~-}P5OMid8}AY>zW>x zAOZaJvk4iqUM+!jNg^?GH#cvQP(cT;RONvv-^?ou$Aiek8A#N8;+~25nX&0u^PU52 zs1y@=?h06xQf|vMYOhmq z_o|G(fVf{|jw_ww9wy}Ui7Dyiy#u!fv#k!i$`%dapV&+Iz-OHM_TH_aIL-S99$@8H z4q!7lB*n16a6I&Iz}AX>qENLThDNps53)Rr&Vx`{Y?n;b4B0b?ldkPFnC?-S3En|zA3L$fJb1e;eeb3`#@QdLr%zfik zVox==+I5P;hPLVCId2MW{MSr}QyNT`!ibJ_PONg?n`ygV`wI>oD4|R&CIR&*FuPp( z9oEfU&^A;lWl-2|Vt>11eUSM$$j{oy%fW82@p27hWdND057FnBW|wyScQM+#kYh z8^J-|+HHvk!et_VRwb(%H)*=lZ@8A!6V2G&+ts8!Zn{;Y$@9iyw{tK=zbxJ=PEWS0 zx`}W3EU$obt^I)F+uaj-Q^EjU(Ak8DhjhjKhBKv5-^rI zWp75`N7~rNSDTXcgg2;3rzd(x_gT`r7q2mo@-*e9uEcUiucpzI_C^wE^)NEqPOi$= z9UqoQ9^Y56a`=%2CE%>J*{`dkQS84!bhKakwAMNu3 zt$pyw*RC(I=@30CUCy+uZbiwirto&mFjGdg9&Nzj+Ki>{@IzIRTW*5}?LFXpcD(-) zm+8~pcr+@Jx#4GL{(s685C~BMAGBb7C*oi3sv*p!lZ=-#chW#+x>iaCsaUMl*M;io z+-1()(s17N$~nu2Jn(gkEE$6{fH&G--PX*^LXGl#XV1rE*^TB@c0AMSCFb{A)%RP`v$X%(XHdJ&QbP_ijI^onj`IhQ^{5lY6ZeJe6L8isC!Rjv?6ra-DQzk?RB4cn-H1q zb6P7is6mHS3eU~E!538n*Zd=^m|NP=icSk_MSMRs>CW(wJ#cr4dSU+>R{F3;Xy=PB zlqyMGJU;f5lx^b{IT0BOgkH48U zx8q$VnyL4*X-3-TfkDGMcbSW4`?wLdFNn=kx|+@%Nqo!@y3%xt zjJyqQokiF(WCIc7l~g^9(#2Gy<6V$Mdf?7K&;1y|#GKdt#~kTuQ`N9Kq&oLgQ(l`p z+YN2jqEAM>ckjz56^2Q=jvHTck1NemF;Qc>8=uV8>W(eXmwbD6VCqdxGO@`BD|jHn z94>ARye+*%O>WBmVM?B1KQ_?yciw5$ps;5=lro3$fGhPk#$07u9tCeCXO_M==9TE4 z-riVd?dqPla{3K`nO0~GK;*kY)jF(RptsBfI`GrbdIhk!;_83JiXac<`(2=O z^FVvbHtvBj8wfJYgN*ha^*N;$AUU>yTFyzSF$UG>x;8Zb=*#g^ut@=w`-=9dylsjK z*+g*&HifD38 z=FdKRQEk!aXVtU5IvZQgL9HC*5L%>>HnY$qO7{Ad0{W0m_w9uikHY4`Hbq(#eX`j! z_{zc=%F7ifI}ve(+oP`KgS*#^y0LS1TDi7}jJQ(loNjJ811rvzY=eU5*h}83mYvNux-XV}^mjrHNvveU!W@hdy*8LX%6E{tMrbg}i{v*4FUH ztUJ5mvLx|}{ZYV%Y`q$0_yi^+kKm*-_?pnBr*?M@%c8E=j7-Kx^p& zH4xj@QDO83PlF42^;mK$XY<+@KL)23`52Vh6`7*v1;sU)#^I08);6`_ITw3qcG+Ai zk;avxc8@xma~%UmG*`&!**0ba%xrsR}i;}2W>-??h7pM2>XL3JL13)Rv!7jPH2FlM%y=O z;~+gxB)#I4#2boajJ}9F7`N`m;hYEZx0OQ`XGY{Y{^F9E-`Nhuf9Z z)k48VPWmK*h(Lt@bQWW%Ck%1KH{uAS!6TEuD>X^mb%hc%2Ab4uQo8kT}0AlUVwDB(gM<{bayvW0@5Y9=fZaD zv;BS7KsS2W*^l%)j|B?Za<(D6&A%k-jD)9$el$f{#?M<}; zs5fYdULhr&T*vRic5@tq)!PXKmoJM5+?*jGJ%JOi4#U|4VQCgtA7wPQx$3EKoj=rZzT;npkFp0?ALtu% zZb$la$mrjUe-}L!`G(z}#LiyW%)zU6;6I*KX>uTBuuAM$)*QM5a%kAzGTl18o^awk z+`&4@Dxkut9`!X_r9TEQI=!f@#c@+EiTPaFYd>S~%dh5Kj&)Kqt=4g=-`sz|CC>xe zJJV>^Wax@Rf^jMzZQOIFG9~CHx;r`*5~Ws`taaZY-SuR)NNy)HYZZCt<;7J`w}Y=j zNz$V~&a#|YzbYc|4pMuxRm_bHU%ILZ*Lo~Kzq@p=z}}IYRJ01pELm#O{E>7SO*`dI zWPUEKTBU)i{gI_1+ti1OfMQR!K2pyCFjpThm$+ZOhul7()jb&wvV zK%Y2o`iu_gwrLEA&?(izKl_vs8086Lb=0XsSSR9YO7FkSRxu`Keh!ewLA| znu#p3Oxr^A8=l%z%%@VC3HH01K*x|SQTj}Vu32eSLOa(Y*Qjn@f^pN5&EcW4e5V}H zr?1H($;>87&+KCJvrgC4R-0CJoVw4d#P*ZBq5X6F%Ew;ZGIYdZ+?NcW(cMGLsrgn= z(Lu}S)m>+A=UI%v;W`!R;0`QQA$NBRV0gWfwOC)?h&EYb*1_bQB<#{YY?5Ry^fh>% z6M&h&0!X``0TkRsV&sBtl_m?|3_y1kU_z!xt@rrk@5x*sO}(=~0)~EzCwvc;Hy3Gk zFRiC&Rdm_*_sClz5JvW0-;NrXJNyLlI?pI(&|TA{?Cx|M&zz8o3wrPNvp! z#~^#g%WM_jlIaNHJYw7`pJsA>jFz{RQZiim{#D9dbv?LAFM|R69z^gRO&csD1CTH^ z0S`*3ShI&ci(_8r%qIZwEt2}u6XwSk|9UhHPEuy2>hx#-iGzVT01<;cQ#T>Jf_vN_ zb0v5QBsC+87pZA#WFH5f3wBz&P;p{0fiOOr=2vrfFw_pO|UNkJc z=Q~)d$dSM(C+2gij$g&*_Z}J|N!)Si^~$L9Syg!;)3+z z3jtt=BbMj-E7n0`1ek7icY9Dc^a$DEfAG`5M}+b|4TJjXt3-Y|`X-Y2%fU&rFg1vb zd}shB+A62N%U`%DWn(130{ZqMgYw_TIethmcwNx>FPQC6L=yul4GSK%XW}!J&~Q+n ziYTf$oc?dM|UI`Z=Eoj9ua6O@0m zkunpp855{KgoEVG>#24kL;x!&MO1Mu6)m78xcF3$2k}A)f^#a5W0&zy0rEFc2?nTU z2O71fxieQ@w8?I4IO=Y*qICDO1hRRwIQ&EH=K52e85ZNB~|zx!*M0`?Tqnyvl| z-fw$f_c&<=1$=%SudW}}ER123#&ss6D+T0W-I3~EU+7f}x!!_#Uj9i~`T!79;^1g; zDad$8sOnV&UEkyYZhEwNJydrIo675&VD_=jj^RHn#RL+c(1P@k>QT_ngq{brzKZZd{RG;8O_6{#)4nYqJ6^BZ$BPzYJr*0*sHhmW~Fq z(pxaje``#CKSYW^pZsZAeso3-iV#^gIa`d1=eGjZmjHblpG8p!FqQ83J!kZvs$I12 zbKoJbvL$tZ^~q-}bv!TV%9@a?%T{f}eoSdlaqa%UB~n zM0x@vUf}mlW#AFeIRgCfkzF5^=~|oFR)SDwLX2tLz_fRhrYJn z|4f0JYXya5B*C2x~213tZLlWV>Kku4f2O*WLcFcWW~3h(GM#a z1}mmWEedeP1@;&SwEl@U}dZUIKG*fpB95YtO~G({J57|g;v+=0W&TF=F5y} zvvA3P7R9&Yk3~L#(Zrp|L3!8p4$QM}AS8U*jSn((S|L;EetIm}0mX*?kL|>-rTIPw zFp49@4S4;AG6vO*1EM;p;?FvsR`^-2zAs=7{uAc(*3Y~H+MrSZK`M%b(JdTI_|D}{ ztE^&gJ>UG%;6Jh0-y5SH$ru4RKDhEHMmGA<>oozxtO*qWEos?wpJ{J5l(O?lB4U6b zk`(8+ko>=|!{c8*g({Z$2`cF&opjA2E;D^ z{EdL`lcz9CsLg&x0V0qO<)cLzJw@?_c$d#2d>(V3V3Pj+dpIP_dKjzVRTc0F#JEnS zv=6-@Nu_XWauI;74`{Jw<_bj3ABA zeEL-Ik=_3T9SWWy4E4go0`KGHwP{(!{@=<_6cEg44;);)ian}-q^3k3TEJ(8mDSVaXqfh!H?JEP-b=V5|A?a1XkDnpL!{=k(2 zuTEv%Lb-MgEMurbScnt`Qj}}QC;BuIF;RH-3A*x6H4f(TZ2k%mxUD~ts>{zIMt}&; zV6J?KOZ`ckp(iAjzL;-&)AivRmZB^|;pr&o1&&D8NpY?D!*SCB)m4WAFOw2f2hcnf@)a^c$5S$RS`e4hJ}zMJjz$!+ z{+e2gCSn(L2+ng0X8=~)pn@JSnHN0zAO8Cfe!pM+*eGJVc+Iv4iYPwUws{}BrBffw zc{1ccOo3-1ANv4yYo&kJK3<;^Zq|X4;sReFM#<3Ant=$}Y{@Tk@A=U`zx9Iwl4@;!0>Aa|*De=f%=YVl+` zwPEA*v-(6F1BJZID8b%8NKbrNKcL;**C`sd{;BtNpbZtTF9HB4w6(fOw|ct8dbx{7 zy@-t<=IH;0JR5;_C9}TOdRHU$zQZ5>&77ut=H^y_6=*lPX4m+!)$4iIh*c*-3mKV(Y3%ox?SuQ!#T|smmG%gF}};)f0ef&zF1MPn8@@FW&gS? zfkp597tXUD2{|+IXQI7b|J7p)Svh2Hwn{ycgrA;?iD^UZAz6)XEuH%?y4mgYjoXFK z1Dkld$FYfKIph;)6!8P)xfqWSYDtbV1OA5yK8}kx`e~<_Vlz^dBLjy$ZM%WF!)CJs z+(?pXuPsHWDKST%*I~2n&)U|FYTGmW)5VfYS!N%okYhU5&MiN5;qlkx!E@e2I_P!QU%Zdj~HX9M@w=TJNd5jnazH0J(j~Lisaw z9QbU6_#0Z#Lv=kAPF$dPq|?5%weYd0zU}@YjIA$^X>Q`h(+h2&pE$0<(6M$9H*qEGTR2hJNG+R35@6_Xj_1uSws23svWA-Kmm`#oM)R0B$mEoI;iBN*IK926kA0F z=5pDk^0^~?j5684SfXS^Rfc5$GejR|z^X`WN{r zXW_GLg_Fh@YDrUtZY+eiJxKkTYQAf=T|4Pct0gXdbxU3h^|RtMI{DEP_07p{jr`gH z^Bi`wmhnc93yse4S;7cb{(xB;pHqNSZWF?Q-C||;Zfe}J1|YfA629qMA(w7>n4J8g zSS*31*S6F^{5Qm#OjZ3N+bL+@0QO^hrWOpYAk-6R($AeOeTZOPqM{?nR{W zy`N5Tnh<<%iI;6m$YC3UW?tA8+Fjp_vr|(fv$W5ewKn4>Mt=r>#=UtikbZ!#{wg|< zqG7emIydb$et+=gcw(ElU^I>wD!UM0- z@YYIOza&0Dop(40jq5_T5o2%Q;`*klpE|uTX;`wQ19#`(_N4-TPQT#7b8HYM&n3@M zbo1>)NG|_;-VOgn`Mk3uPXgB0-tVMNHC)9;Ul&HMx!lfkvik7^Ov#q!E?#iU3{thS zuxdzSQl3OFlCh~5DK7H3$yr%zg#C2hS(%IFPO*d!K_=p0d!ov|%rI8tC=s699nl{> z+K(68{c-5!Zfm89%e&+6L?>e=))p!4Wo`EdafJ$iI;bqujraO2a~xr;&<4>C6rLw& zjokCI(I#cQew|IPO>MeXek26-@8EO!-J7GIeTs|cW#&oJX@pg#l;ELjR6MQ(9GdO( zrdlI2aoD03Z=$y4k^$xN{L{9}MVATQe(fm27C{%WHqIZrAyy}3@@E_a0bCR(052h} zC|Q5sMn7lc^AF&edVZG9WECH)9o4ZYJnz}7iyTSbA=bDYOO?Tyfa5gGG)*4VvcGzQ z@33)yYUeK-Pp5ydMyE5sJ6$zg@?){ZBj9F#$)|mL?(k_DM$eeARsI0e@YZIge$-;Iv4oH#@36U}%sQvgu&zM?)iGbJoyKFzTJB;{ zGtGMAvuK`XYVl1d22s=)7l{2k$%DGN-$$&si6KD&L66Upt8efuq4m2L+9vJTQRKwE za%j$TSV-Wu{U5FVr0?hWGVUslH^axy27_1~;fh~LYJ#Uqv>AMUB$3Uz?8ViCDwIU; z)x+@VEJLInLi0#YAFjpY>2>LES@&(}y-*ahJl&`YHdJ_+kf+ajCE0Cet<|9Yq7Th( zvh9lwY;z9}z54zF4S=;$5-liej;yHXaEGtf_8y_C&^NiFNVVX#y*;N;lY54Gsg{lZ zT=|o2U+jV03N=m;=MG<1hrQp6^o`8@5lVV)FEz=dr%SMi=*g7til&R1*j%OXXeiif zd~v3(=kUCk5voq{*bL1E6BWNF(9k5P=0|5{_z?g2D@;!1eA;5qI-4&B#5f3DY&$J= zy%xTXewiKiyu$3g1xxadx4MP*6Da-y=JlMDc4Ix(nf)s|F7;;ndVNy{bAk_1yFKPT5rIxV%>f2&=cAg4J?b~xK&DwwV>pw-=YDgWtp z(E4o|UqY(A{VTE_pFk^>aWxwrjFckn+GvJ}WdHcYAfvmvLy5K!lJlEpUgv6^h02EO zJ)e}KOH%ck`k&fo3T++{qMh2&gGu^;9|*c`BQmpO)_Hwa(K97!<&D9lSWclU+p<=6 zCD`taX@TQahX$>>2i@`!&%CX)pR}O2cZdrHl`0KB2sfi>#2hp$bfBaFI#9W7`*%Ne z13qzQEiiqYgACm*uQF=y2aX+Abw#ox!p7;ey+&@07t+ z-s)s`JOMeD5BX;af;(q2);B7RFX441yh}Vmp`1G@yIZn8BkUK#lQfndb1J2Z1GAMT zMY_1GExBIeW%{Gc>n~)5w@OI(UO#LTTr|B~r#4&Ls<>e-j;o8{O}DJs0b4dYv7Uac zvKTkrJkCpZhJ-t}r0JE!Q{lSjX4H}W_^X1FstQxiWqzZ5$WgC$FZNN7LC?!3PG_Ys$pa@70DXu~`%;~~{(JK>6Q<=tIbsRbVT%{^vUPf>j*}X5Z|6-OQR==8 zao$`fGj{1V6=xLRb=-8_o{4IjXc)GZ&|Yn_Mo&Y_VN0%$T#bNvyv$|*GIq;8a2wnA z`IdNLZt~45gb`#_qv16}w03!Y`FNh~I2K~;9IT(Isa+6hHtWEPuUg90%u-F4=`?(& z(ygc@#J>b(cye`9snz<|WlWeuKLk0ENvjz_%hk{|ID}|HiU1pZQ;OCKdW2fqF09`J zxys6Jxn`+>Yz>w2O!)}JET0st8|>gK%g7xmpo)K7>5hJ|Hc%DVdqTTVe?h7oQ<8>TfOof-{FzE8p!W$aaxE`piI+l*g{i1*KV&;w zK2IWJ?tnFHgk(CzdAjz(<#8!tVb zzT6@qhnV;My?n#{frm^T1P@&&)?@y?bTqDU$2>pWC0-Vq*Q7~5>WSFMeKy9Da@ogk zEf_+*zIg%(2Q4Q3N*v((PlyWl_qKw2gI{u_jmvTwe`H=F!lUZE&XI~c;=vT^J@)Bo zah^VCS*zoppGj?XnWx}5KcI3dv&^j-aZV{M0GzK)3zWiwU92`1i8YDEo26CjtLrcJ zUa^;_$!#l{WMvO+C!qjxj9X#Thn+=G+t&^qtD3jbHhn{BA zP?#W|MaU_zjcJoEFZrE6GeKX^pm9vsLdEe3xq>4IEbs|ka({XM8nSV(Zrr34EG0E> zY(;Crce_|_&}rvZPcJcmn}b>jb)M;YtcyD8fDe9foJBXZu2Pq|0e(;zjQ;t2k0&(O zW)CpKcRFQqHc9#X4x@YtxsI>Eka~!!)pTwR6<;;v_+6~xHy5Hs+M62lDG|~W1#^@n z@jJSlgZB?Mobtc5_7F>$`rzvQ8O@7AZF(Z_1o4)O!s>>`Ny0qH`QeM{zS~LoZMu>) zzhL5PJHE$>`s1rxa`wmgT;G<%4)H-tYg8;hfo+H^9gc(elE)DBhm7N|;!*+bPT227 z{W`^lw32r*P;Su(!2<41hZH2TcWZI}00`mG>*^CBcJJwJILS~A?R!d0kZ$9pic9sj zDXz#+;N>C~kE@Jr7q5goE*KMeW;&dtHMT6zo1qNdX90)znJa#hQ{OXo=e1o!l9xa4 zp^1PioN_vdQDLD_UdjYlP`T}HaDuhri{97A56k6dXxEsDmpX+LaPIP2QDty}p)-NdL*y)gK00$q3-P;u;4 zj$C({9O(fwmhI00PlSDhF~9iegX_MtmA*H4JslQ3eIC`e0iK*Rwj*S>p8BrcOZe9g zu9AN;9eVrH{oCzA_aTFhF8BL}4!7Hd%T$wrcIajmSvMV3D zy-O`OToayOrgeGHuBOyNR&{$;fR}-X&LOnZv@8~y3n7*tbRzD}Ii~x8drp+hv@CVL zz?u++$0##NuWHY3z!OFc_~KDN((p-tE#eE?=xAz=Fx*j8_p%p;7GgMq9rFU#s|NFvqs8Ze7NgcnzYu><@%z`y z*4+?b+_CP0v4!eR-mYo)C<_0 z%TV>hy6Fdm)hxV9K?_KAk9DzJxvm5LGFR}k=!;xJrbuX|7zJB;qoiAJ!n+Qv`mBqn z#}@hkf{un2gase(ek_nB;YlQ-(fd&kn35j{OF>DGJ1GTnt*^{v2kgpceHsl zxWQpiXOb|_aqlpM>A}Va0VQN+@N>dfqkaVFfmZoOoDWfU?7_k`tzF^~bo9>|Ko<(7pvA61*ZXSQtSXH9GfjVWSsUZ&4UXO!q5xo{ zmxIM%U((|vva{r6uHEXHgCNspp)_K+u$kd$U0CsMk)+GdH3F-wmDZ-zB1lzm|2~Q@ zp8L=~>{YIOhMeuz80YA+Wexa4vh>gelG^RE&uUA1ts_>~@p@i{L`m|o1;)M~SvlzG zM(xmpTVouR>UVEe<$J@)Gf!b)_&CI4AmM>~I2-2z@9&3tITdrHNmQ{VEIoi_~gDWgfO*vE?m$ zB`re_;XW_hKbTXL`)pN>W!cQZT@pylIINb`r5HGzwPX!AG4JKzGg>9{Ewct;mlUaGqEVC;HoWOX5lI9KH`%ogQOV|TurTda9SPOn;ykneipe0_KauXjh* zbA7z2-|XZ}!HI`{7WCPuxDj#ARqD}c_Q#Urqp)DbM_rFIsZUObY9A3_x(#w)Hmb8Z z8Dt?(8)%M(LiLuE64Xv~5)7%f%cc!?4YT}d-v;BX<~XAwhCXz6=6na-wPYi9@gBp5 zm2ltQg_yOv#vlhh&%#4XN&7Bi0WB9|8IlvG1DVAXYXJKxi8^Zb+T7O-Xwr-e~B^$e!j_s5u`AmqA*TWQa6On zYQ*~>9G?#`cY}hyNb0Pi$;#fIEx%fH*Vxr3I0;`HOmcn7SLT>V=+yN*LY2|V0P1Qr z_*O9V1|l1<@C&ZWUgYqt=lh&pWIUJp)bs3%Zh}67k80HtSPkpBixf?~@}~al@M&3dQFoRhgn*e0<%2$j0kkZQ2Zz0#thF&UdFiNhM4(3qv1V zmVF-_ZihH#v*bCu$8Yl{gbiHVg`ad2Dt^;2B7AP`p;Pj|>Uy$7LR72~#e0{T#Gu?5$BBOmg=vA$>ptHj zqL2ohPObqWTS*sI4l*}XG3UkTv?o$JGvF?NL!sPn`xxdA%m0r2yZRZDv$;pf`-6#B z9Z`wX9UK89QS%K8B>QV9kx(*m$;Ujz6vcOEh(}qshtfw~(77OvuvSQsP@z663OWXw z*{@0u=@6Cx?%p{uhx=wkTp@HvI1`0!Y*6lQO?kXdWAuv{Xk zEe41&3`)c+wBRCSB{*vn!*VY+-d^a`{=PfnOj?T}yBBRbWZ^7GJ(%!Pr+6@j;{kio zOPgA~QRd;!D)RmAg7}%F_sqUr%~8zVwejL%6`Ketm!NvR+^aVNRr*P1rxLv>Y*u)q zFs%+=!;886ksdc3`pLTx|EDn;jA!fWqG3-`UW%gN11x863lWhmiu$_N^&d?whsd`9 z+73E8=%bx}%KnrpO^*#*TPWzCF(3t@BXzzT5Xzeapa+XAG7#gD zROmlnz^XB?MjWCU0-WVn42>!sYaa(yrUKnJdGG!G8)9y4D5i6yd{~>k)@gL+-7W(# zVw=J;y&o*M`jl$iq&=w(e0t+lh~#O_Q|VQ`zx*zE`=QDUl&mk-z?HJMJ-p=GMvOd* zV6t=f8c;7i7);`30NB~x=07p`!9mjTY+lf@FcDg4B^|}g6%J}N(W0Ialh@iu%C1HV zD1nNKtJkLj`=Ossrtc#fAm3HO<%f1j7&uQ8)C$tS41Of)g}&dO8sNq=Zsd89z+A&f zSZ4tuo6k$2*T##-`wpwKbSh@&a~+DqarwGle0%Da!p_a%2U|4;vxMH3>3d-ww{#Q%?Mc3*if&&Vk4fg;8dcIz6|XXgPOY`Tr4~#5iClEP@Qx4B zcQ=8ZOG2oRuYC8y`myhI2R)SpSGO|HnVa(v^E>aav!ikpGKpNa3=k)E8uVoo+#C?q z&*e&kgjb2eojUn=g+`|Hp=GY|VI%i8vz3z?iV9BiOQp7Rf~@Lwnt_z^NCpgA+2w6v z1+T-X3tX84oeQN_pAlhn_G0`J=R{i~o1@V*oGyBATph9AHFUtP_oOdiYivT}POf~P zGM_|Lcye0*LHz^s4~mgY=W@gpC{GYQ;Xp67qH3;R+NP z1yP=`MuPM01(v=XYUAg6am5b&xEfq&gWzTke2H6&s(HSak6 z;$-b>=|Ex|jZS0Zd81;$Bz|%?T{0V6{9Df}APe*tYL=|IN5lw4k**m7u`g5_|Db)F z81AgujWV`YC}#Q~)KW0oc^=LDY4unfDv1m@QVFh>LkMU>WP^y`UYLbFFwq?ZO-12* zKbnnqj$Q|+3x+Oc_)n!%DNVE4x+5;>i_c`kkY7OrlT>~Dv^{Tu}ium}_D^b1rV6Xfm2L(!zp%p>hm!4<#hpxvW zQnGD=yTFjQQ;_uM(;Hkm_sLaj66s@7WtAyp&e`W^vgOorPLNr10uH_Pot`x3Lk7YOW#d_`d*w)_NI zbhMr6*qvmDAM8%6SS1LS{K;n(K#|ihT~4J;Ym%pgUmFkINu1f@s@lD_jz7D%CCkdp zhz;zvl3ffyRQT@iP)GfR{ROH3n9@KI0}n$IOK+l0j1^P>z``+aA0Dyx)~2|hGg`nn z_H+|2Y4YS;FL@je#N-SNa`JPV`<@+)E_iUAjx(@i3n%Qd>5_n6i%KO>Q`IfZi(~3U zQi3d*@o|~IeCa;$$3u^T`+fE=x5*0F@vWD798R;AV@I$Nn+1T|Y~2^Abt~g2EtX-^p!>U?E zD&C#!Cn$IJd$dI)jq?JdTi_?)IOii#%0gcai{VCtNF}3z$?}go{W~oq9BlvY0X(OO(yNs2rfgUgY41 zF_VTE>|LYchpJ7)!=vIuzgi&Cheb@zk5V%_TR|H7M{=#kio&3d!_Q($laF8Pl0Km$ z2VUybH#lN1M+RRZZB?N)41LmESCUGJc`L;D3lG4tZ_+ykYSnJ(4hM01Y z>8g=<)OReetb+B?+fQGmKMQtp{Mu~wZ;^_DvS+>O{mm`O;`K7oQx~H1k}>z^x6SK` z77Ash&Br(8nZ%kC8bT#G;}%i8XPIYBoAg!N1#pO^Uw_qQcrMnSFp$0=em(L+Gc>xr zyVmpigR-?#MgwqG%Q&CcQrteN&;xuRNpVDazb zAw&CscshjmCP@1V0}ovtLJ(mHFTT~kD}@rN@YZ7YbQTBXx{_rpd~$$DlC;7d|0W$I zlXR68H=c)XrVKH-qqE$uZ#ncjnIrK@w8p*iJF9z7%^JN8!ykCQJ9%6tuJav$()YLZF#g;#&9kG5yNc?-NU)QVyGCSN~_kIo?$DXauAcO_2T={^!m1$ z97Dh-eMq~K@7_mqiQAj)UJ~~yj3#cKX-fI)d7Q4fuN7DqA6s>!LfkYfO+QcTyNznx zDLZu8^n$TF{H%D!ewa=qe!4wqm3B9G&Pz;`ao&PcPL;p?F`a_wQ?DZZ{w(6xB-8tn&tjBXaq|sKiEeXky6t>)W6OPYZ3je)@sN%PDZ^ zbtG(Cw#Ae?ZhSWe(-|#d8qpdyhC6SfYHrVU?}QWG>Iq)eodf1xLuMZk>M4V)2(bNO z<-^&nXUx-eL<+YFId*~Od|XciQJ^eFeiG|M&^9c~8}Di@tH@&qlYziF(GlkJ2DZ%* zo;k+4m!s95gv_SVsrH;~cFs1+{UEilZ$y#DRzuPc!)>P~hpjC!ue=b@q6f&%S$(cP zCsWuT%(t1`$nz%+9g~G-a%SHNk0%me>(Pw;oDv?|g8Hv3*5KJ1)GquKzYa+ZKkh>1 zU`Xt?X*xXMR@V76WjpYf>$kuO(z59#hAjF?mpp$F@#MQ}03$aPjKou_bj@61WS`UU zQS`{kJfLa#jAX$|WUEoxE4Ukujd^6_{yxfFQI{nO(fC&ZQe$(-KbnKb_}2F3{q=3e zwdMXynfwXa5L<1fo>9t9i@+jJhoq(uJMd>Ozg;W$ElyO0w7-kd=&CvW`Z0D8&8Omv zXtwe33N`3^%BrL_@#D!lpt1amuGrqgDtoH0`s(US}z;wbj#^N`!j}l{nSWN z_}(zbb^@rSXCODpS@-!%hCLQ3l3cCJJ;*&nu!%i2_^cY%zbhT9SwaU3OaDs#5$Pyy zn$_A5FA?eBBg~uvgn-%ezXDUgQ#pgdU_fTF>Oy$Oa~2{wJ^ct!Z2P`Cp-yZJMkW1t6Z+eKLMWq1N3dRzFVUviD#2KV&YpEn~F42X^?VVZZAZm6} zMuW+tqR80i`d17p5Cbv|_C05=FtHA(!!q}OX90Bf;FjfB-RHHL*BY`Y@C*k(K$E9x zHoCok^0eVR7Z?GraOk82>029+I#~!q`JEV)ml~tFK+fW=S7@|SCH}D94oH2Xn6f?L zghQiUA-26g(qbg}LriT15bwx@Ffj|Ix`r90ysi`-pIQvl2WDh(nz#OEd@@>q`n7L$ z+2h@5SwCo2Lb;zgm=V{DvtUg@!2%?PQbIv^@j;Fbe3w#iB>`NjdpMdm&(HLrpSbUd z@7;vH7q@DmdckXQA(==_!Xwf7Qh&I2u)eQZeWxc(6gm`7PX=VY5FWQ3)BmlDCQbBB z!BfW-pOL8(#EUeiyTk7rf%W*XMD$L#VxpV6MvW-r@^YyXa{S!F%Za9rG}1w%g!8LU zI;V1S5{|VS53^RXp7-6gnbCr;=o|TTo?HUrF#yKeIH|!iX3@Hq8&L)rh}bVWr~YLu z_DjwE`xg>LGz;L_i;T@0*%{TEX`iuNZWLG;r(zBDC0||Z$Nq&zWRNAcq${4(8KFyN zXPQjfx46%Zj{x8#$x^9+d5(g#m}du@N@wc%oL!~Yt+VnBe1~GcY=CL+=D%g2V<>() z)ZoZ21FXUqD%Pno1>J`Uiw>x|zO2M8(gQ^JG~HpoJ=>#X+O5WypJmTd$N* zaA`9|?ddsQziF8w5{$m$(5fMPD*xiAp4EwDilC=mN}V;9ik?`x+gAiMf&r*em*(I1 z@~XMw-K*G~?|CnlrGg01obpcq_>fgRH4QkNbd-bT94$dgr!evbH+|dVb%?3- zj3GKYVIevQY@kzM9ZdZJ3ob&~*f_L58!s|k>8m?i>=;@F5hnR88<dzY@H?eP<}5y6uzjPXLH#p0vY|J4KKFn~E_M0^gfK!AmT+ z+U^%X(M<=_Zc}sC6@oGFiA-FEOQ&ALWH4F~Ufk(p*Z?$L{`FybI*`T7Z!qYX7n7au zOdRV}Kc5W@`-fiu+rvutAuS6BRkHphmb?NtB#uHPoEMT`_D8i| zj(gwrYlss81X_6dhBqG-HOJKwO3i?_Et*Br%PU`ZRxQf#UtZH3wo00%`f{4WQR+w zLp{m*GVl*^E~z~Xrz#}%{cD(@N1ZG~r8NY0Ndu^F=@CvS8-j+FICUjtMtQNpDgh;u zgxqJ*Q%PHS=F6*e*w=8I_OeCsdDWH%#Kt8zjz4q&wr|kdaEAO&5sj*QN%x<+{AjQr z7?2U8VL=LnsCA|Xp<3K4@Zxb=;4%1070uWWiX?s=PA?ZF3h3w#8qarSeO*eD*<|CX zLHp<>FCT#7es-K1ep#VvPwcn?81m35>YwQd7uvfn!8Jw3X;g{v-xKy%QFafG6dXP^ z!ZAa&$NhtNK(`|+K5R>(?kHoFpg;#gnt%JDQ8sITwhAz-nzgiq7!Stv({ck(rBkv6 zwNI;O44XE4Rk3H%m|>ODs}$T~qAH);g%1%uXvB$$7*$wHe@m?Xks`;uS;hx#xhg%5 z8`ql>uNs(CsuV1L2z^!oxe5tV>0rN+LK9qFlFzVZR)%6;7S;Ris;KGj{1he{_5(-m z0ka0)HCB@`It>o*rmQfDY1B%YMIWNOcTh^W^vVUE+VTEQ_WrpTaP1fhUxG+%Mw6|_ zo-`>lV5K=-THs}B+>&$Z*Q{Z&7T&0cc-hPyeuFCDH$cB4jhZQmS?b>Xd>;OW&uD{I zdAUqAY-6!>8QN3~64dhih6Qn52FdK}+rq(OB0i=js7wba*I%i1zz9C=Hfok!KiR(AT zP)S&Azi_`Vsj;3ZpqG;MH#&`{JK1+x8UXapXK-EKC9lyt6bs&o7U*m&9Z)ZROI)U~B+R2j7bKro!#rBh{_c6T*CtR$|y7XMan zo)*3k+|KGUf*Tt)4NX0KSrjws`KsC&$ zIf7xsVDKUt{k!_GM9uP^UKUQg0h5Bz&7u6+6*W&+erc1{inYkm*mB9_)8`G_Zu^z_ zVq0!6f^_j48Lg&@$4X^)N4oF+5qp8cqe#hfdhD zz>n<*m#&)q>zk6;g_D8uPvYASBD~`ueRU>#_!S!|^6k)?vB*bUkhi-#f0W0~gxb}x z&xgN-#Q*sgz-@32=2|)gtfXL&h@F7dGNuZT!E6B?$Zxe<3=>q)--!ig{c}!^9`h*@ zI;BDgYz*vU!>`e@YNSl6yF4L4+pk+_JpyJgAL_$aw>Ic{(d07A_UG_nwml3*a2FDK z(JNBUkvo53;TK=Nc=~rWs=R`OX@Q*+v&2M%M_jJ>Z@lz-{=ruu()w7l5R=xnn7ELH zXBMgn9<$Jz&liYhgA1`~)%<2Kp7Y)R&%uy(VDgD2|8v)nT+S&U8rGo_F1_^U^*meE zqvFu9I-7#G(w}*Gp zAw=%w=kt)dBrikjy*z>7`R6YxN$dht*jFc^jD~~?M7B7H=;NqF;*9n71ycA*SMs;o z_Wo?;5CzB+-Jdoz>LoG2?v`Tr-EGpLM8&6zZ#aFByI`+1N*c@g4MkEK2R$CPU<|&) zc~7hPrGEdpbLf{y{)f9T3eFFh6XyM~+@8Gg<;0G!{yEg!eS+Hyg;Pwm zR@o6E@-7bVQeTpM>)O=!vbp%Ak%s;F^sMF7`P%A-P7;$Dp7q)9 zeWk0n#@l{qG33-=n>AZAR0g!Z6JO?QIYK}MvVm)TxtfK(Jt&A|9FQ4$j_Dj~6-Z{) zLm5%m96I#Hujy;V<(vgmfc+{%u{~2;Vmy#eCrOYr0gpm2*L#Nhv-RFKnO3(}=6eDi z4I1%;v_d|XlOc1qynF{1N@T|0LD}+aa)^%Z7Xw9st|3qB_wnUs?m~7dhq_!!tv?@{ zG<_^KUXO9P(Dj$a`@OIvPpq`59bBlJFQ&m)mJkC-hA5_exX!eXLiLI@_h!Du;Ofx@ zc1OeQxV-c=Ns^+~l4xXY@0b=!bRsO~d=dHW)H=WI%ZCjT_@({AWU+VU6}E zDbRRaEBgn$-D+KS8)ry6xQrdRk#@snF&BTYFRbQ8dT9Ny=t-Z>)aI#vuF2w4Sf|^2 zIlwC|-WR@r`X(ea--X^w;(I}&U%3U>C00LSn(AW7QF&Y>m3gqc<0{9=;0{K1dZS$g z!=tYzyV0dkgD4$W5c5WS6b;`i&9BU9mUWvpEyS#)H&44CVW!YDf=4oGfK2BT-ZV*9 z)*Kw$eK_-rY6zU7q$9~&@YuZi5A44Nd`SIH#SEYwYz{-sltT}tgL-m3pWF1u3Jj2J z$fkVg8A{X4@unkMCg$Vjh;?WKb5OcHH&*pbL_)z*9FdQdeglYP<}7IXHI?`GjuS@ZPK4nqTvKr z8?oMTmzPvHn`fANDMFq|{ItOVSzI=4CjC9h*xo=9tUS*}t+isT z_vVOfyW_$Gy#xs~aP)0z7jhPO>b&{#^%(kxSHcH6C&`+sZ-rl8SNt5wv|Tz(Uez>M znV>%Qh=AtdfaKlseAqPeg7YVHbq}~qb&T5!&&BnP3byt45U|(K6ADw(Egv4ek4N+H)MiVw84hCTdyYmMrHr3jLFB1RC2iltHA=O@X!+>& z|HwM)s3^Dg{YxV;fTS=8NF$v?NFyE69g>nmcT1-rAt52%-8F!ONT>9GNJ)499?v=N z`+bkUwOq@8P@dVd_kQ-i@9X+pl@Y~b3r3!;x527Ca*yhF& zpHdZTSVZc?(n@cLWBDvyc(01DF%x8i`|P}3_spI)+^Z#y7nh)hAMiVhCQ~e01@-lB zJ5u}QEr}@G%&*)XYiwAmYWxa)i3WTXT46n9>XEX|>Tg3?8_BG8F%j0S4*^49b>4S( zfZ>GY=Q{KgU^C2AG2PEc*TI`46-+Ma(4qm=7oR5kVIj4pojgLw3E2Gcn>(~ z#~0N`8Mkt~_ZjE=Ki_h?3?pN23ELtLw{AEvU)7zXs%~^|>}2aw;`$$1H2cx{(G+vU zS+ifhlz%nQDEPp=gld(2iA~DB?*MraD_thmwp-;4aqhj3f6}P9|6-cw7k12DDjN>* z9`nl+zB7k3>z~e63YA9%6Ln29i99G76cg9L=n4T9xhP(L>&3|tM!Hxn8wuX8rcA6*V6$~BXLe4V)j)<6ihf) zri-pZQT8UU0yT~rn{7>4)zld!EE1Jc)sK{pH8wIFoxVG~qe^W3o>>Ez+N!BMZ4 z;xyd|3dGoJ>^8n52J@>!xgF+zlwrn_49AA3H_P(mt-ge=K0=XJjcy1C46QhH)!x;%cX`I*5SrPqbySW6y;B(egp($v1G7~a!}wX46#$5Ftkzgg&;Oi zuwg__#tx6^`oOBu)o+10z6&#WI8C2+qt0Gh z)vhNL`}hkGrq)5dt(ru@Q1Q>LCJ2k4Mn$((3L-)QRtPicCeMxti3wN<=Z zwC0l)W(S8)OuH^3m$yYN5Z8&8rx82^hr5TPqB_1FQ7tkX@$b!VN?h}_e}8!CvmUMO2NCXeO5q3^=~+XhJ)SS$XBFE>mH z%)^)GCfW;ixpt4g(pD?Ak7Mw5k2mhZzdQA+C7*AwiuaIS0%_vc>5@Kh)aV;gV~O9; zop~c_?ZbHT0$a7ncX#RB7YuL)R<} z463 zfbGXcz%o8qVb=@N-J6EQ0`yB2_ta9h?9t$|9(ZBG`A^`3EW3|z{rAWtMM)d9zB)*K zJa>FVy7+PdZ0M&*dt)CGmS1EMET9prBKF85+QL`dM3j4xNu*4pkKQiRMA)cM{Ef=d zCpw!CI@u24Lq!j>cXUWZ4dVK!i}|;9rMi6f2B(pf$;hn6rbA2guG~ZFPNbYJXA{>{ zxKHt!gsD<2SfB64+9nn_Kbu*9Np%7c#e(J>%b?Yy^>EC$#TxzZVLRfy1oy!ckYZBA zhmSbR-lEU|=Xk&xA2zgnj?)Vb?}Ps8h~Mn-H8Msd025zguI~T$Z2$Yj6PT{6jk~;j znkg!jy>sC!H7`G?fbt|in9>GW&q0%zdFs2Uqo|pmxE-dMuegN3Vwk#1w)wX8|rA2rXa-h9jo*-+~Z9A+}=Fm+swAzjrzKmnkH9gpv& z)X3tc;kS6#h??hqWNmLd<sR9LEgT!DU zSq-KCaj(CGt#%{Rw;lg@g1+Al*slDq;IewCRa_Tu!pPk-D>!?=#C|#__8q9ybJSPJVr zP_lAppU?z{@=Il`OPptpptFY^%TL#){K!ZRy%T0f3q~tRme{E4# zNU=?`+gTs_q>|$laTT5Y>l0?!R|jvR^igQ=*IZ3pWbbvlhwPd209UGZzgM@YJ3*IZ zpY}|>33eoeWJL&>!uw;yhe79X$*)oWWtM~+#?tagPQ?io{?@y2vx*hRyk z{CU&B;VQxVp6~n@YqQf&tcA=VYGxwV|0bP4Py%D5-DQ?U4g{qtFQ=Q}4;^1?Rn;*c zD=qWN2Y>5-itw7*RM@k#n>wLCK_j?{D0KZ_%mM%smF*y*h3!-RsW<$S?g(c7-118d*+cFW_U=s8dLOH$~y#xk}Y zX&QWEfhIeC4<5ACDIaMWxPqkQGcgH#efii1-c>X|YMbpK^WzH%NL04fZUs=ccn-~& zAu*^nspM+L4+9`tAS#enuc0h~UisO@0rR&3+^!+5GH#pWpTpGOpH!#LDdLa|(4_M^ z%*5e2$=>@UaG36teSI63@?RWL;0HWW^L?YK$oK?Jy;?0Q3na~G3bzriGv<<_FOM9b zY)_mIzs!JWfax%B| zY$xMzpJ*6*t7xL3<7Aw9TO5SC{&~%#zAXPoA?DK=Uy>TMM>MP^IL!*g}$FM;45c)|bmN&zXKC?YXFLgPf!r`G^J%aX~4 zEV2=L`36!ZpVTSCU5EA?&cs?Eg7XRUKjoais%jZe0jx+swRjBCxyWoJJa!iYgpJOp zQ!>>ZXfe4)3WLky_c~S`W<|vu{PEi;S1~|@*su7IX~L#)Tb9v5_yqg4&{P>mBYG^e z>n$>a64Bs4+8mFNgHX_tA#~7Z&Q=I1CFl{c6LRak7c9BLwzsJ7(B4249Nv?c^&mX? zzq;Drzf`UZ;K*0Q=UIMDVSt*{-&U*)xKzj|ky%veNw^?0lUG4krC_km7yl{A{Qa^) zkbmR~StNmKnf1zJYbi;Zy#lCm;MecRnIO4Kd-3@gEbJU7OuV^gU+S7dQU7cwd=PDu zpO#JBBI2Y*MEFrcKDI~#QWPO1d`id$sY1=|!2s<=-!t4x!w?{UJ}#v(Gx!yxh;W^z zB-H9F(-!(P$ReoQA8!yByhUDasscU4iTZbQw(AKyfM>x}3qyLoPGbx1Ge)?=8&J(B z0x3q26({v6W}`No>p>262r&#w9tHg|tX)qAfS*zJ2%_%rf(YfUp@dZfI5#u}l5i|( zOgu1N_{rFpIw*<2|8(vD8Xy%!Kg_UQN%IvBY;6c7XKu{z*qj_bO5QOfN7H z=6PQ}hU;zgDilCAmAxlt5>Xgy(uL%z+ct54BZqY%%wkK3pERqSRG``ne-@2_d{PTs`H2pj*gj$YovB6u*nCd??n7>vL@E^U+1bBT`bekWL5a9E?#!I4@Pr$(E ztC~ah6*bEaTNw2**42OXCuOS&`BtYye|uGzWl;`{3wWKwNMg5K>~-~RpEArNl%kSO zVXX0y^uUk*SBUUi*byM##Rf4huR6!DX$~g_Z>vKksicy4O>rD8V?HA30ZlAT6!Daj zN5p@Y;T3fCx6nM)a=v=BtwQ0*$YFh!BrrH8sq$DNFeJ)<3<(VR))f+;&s6u31mvOA z%&I{Zg!JMNqt5D16f-Oz_P1i^uT9~vhjJ|DtX_i_Iz2cSi^@>4R9Fv8psO&E^2uKAi(iu=0HVS3=r-sK6)*h(c%N4|<$T1_1GY8jb)o zQgs*sD0QT*hKPm>QuOa++hZ zxUT*>D`CD)$!$`f9YCmY*}AQG*}7DI^#|fE{^#RM)8E@6MI>2I4$!LLj9wL`0%;5S z*v%SZfG9x!eninUI$#wuJq1r=tAKtkS)(W6+hc{b$Vo}Px?u(jTLg}1y8Qwo?O<@` ze{HCFc8KBd05eF0ICx$khG)F?7*ua2DJ2Dbi=eW{3el2|`KTz;?4*9r|JkJe*|Tst zST*P=xytOTzQXeH2UL>)Zdj-rnFd2Nd^PJ2o@4+mZYdFn$AM%pzKnLLoGbDGq z8-7;Bgmkang8hw3z#L0Dfb!3I{UlujB@6@gLgZ1zEM6)$!9Aunu==2qs6{zh+q>5I zy>Xw%yZm&Wihz8QFx z{-0>j@Zq#!vm(UDN!ZJ+@5#sTU_sPhHHaFh8=#GxK}b>VHK4GZp1-t~|7}Q7BD@EG zSO5L$3Q84)_L>cBbvc!^U1uF!_&eeF7^_WwsGwMu4kEe^6Bx#Dq^;%`gjVil2T%&4JljgLY+rxz*RtE5jTD5w!dsH z;`HbE^*wHS>qr>%9yh!PJpmU1GYlhY%S9GFHsCN^9abG2)Fb-i5AI=rh`a^~5PnHj zAwOM=EFC}t>_2&b>_4}^H{Y@!hckMxK*$jTa!g^AOMB7ks}N#lGON^CqI{y*J%G>2 ze)-3)K}NDsX#B4Oo?V9*U%iyVn#0Y^9oid@~4$FyQh_ zqHCZ(i(*T(qnaOtB%hl|^?Namb;CMY{uo(#N@1%-V0qZE#~glvQpzWZu&~aceS4l7 z!Vobrd%n~Zb^Y7af15If#Syq=tURbUFbh(e8dn8^xsvlobu$V&JaAo^gRf66d_%?1b# za{QImSsIViYL{3<%rGl}7=z$=Z?LM0cL62K@ZFYIa07FR)x;6Y5fWT5oz)^eq>30F z>&$Cc*Q&(?#DhIEGn7}9lC+>#RoBPFf_99jy! z{DK|LHuW%L32lA=+KT+Ylc>v+N)+a3$euM0bZr(% z!NA#(5S*IZ%mHR%0A8Z5#gQtn@n|56em^rgz``UMcglDq=hrfxn|CLtCS!3L&RdqMf_eBW>WKN&g)O^ME5~5V*oc8Ghp=KOa~+k`hJ(^@`DMq zL)%zM)(txCUNN_qLs$nMJJZdok;E^4`hxgsjp5I))+_m!OA2Dh25GNOytD4O&~To8 zsNbC(%4j|@8(*WXv0HHC_xe?2Hk76jNx=AAgUNsn0E#8)^E=C#nS~2l7-v@k1KhCV zmV=GM%UQY_6*WY4b+Vb*)_g+Jx!BwHc9TIcivj2-K=`P zzfic|D+`zwzCrTklN63Tvz!Vo=cst2P-EoVR@sxWr|~ttNMM0c{^|rwF=30`RuN9? z@*%-vEYt8vRt?L`kXtQ25y!Q61TUP6e~Ca>qm^=Mmh+SzehzVwuDkGdkf8Jv8~L&< zIkbK6IqKW($v17aX&;4K0Q@DxXMVS`4%3DB!XLa`ZM?Jgz5x)vANeLd=GQnPgP}2G zdu!Q@e%wbr{%WJoCUm9D1Y8HP>;SVredo6f!j`!ktibmoMuyZMfFLhAgUVe79gVSn zz>awah)tWR+@6uqU@lD}7Tq$O)>zsA;HQP(t~A6f`j0Lpu%xFa@QBf`1W`-J4j3`% zcU)eRQ5zHO2G{KhG^7B`u^X?<`(Hr5!EXdz8U!CbZY(s+S*y{O>W;!&yT-DA*z*!K z@aWqK+rZR8!61U~A@Th2k3p7lz4{OR6n^YFo8&Eb&DXZUeN-H_uGp z0C65H1`fN!g26~YL#)G!YNe~Gr`rUcc0b6j`F8KeJFfa<+C5p)R&R1vq3>w``?&N; znj86m&9Wm-++2dCYbbfdW*|r0p)9_g!rr^o4*FPngTldGSq`@}cD}FcwfT^k-KLTSavgfQn zh7hW?E5 z!dm4!8l^IceOj{36Zt&8ZXd2bS$<1nnJjoiC8-xe*dG+Qx zAO6;~zv~=<5A1)DHv21<%$8RkQfmj^Q)|xGzomAawu8`_(tW(SSRqZk3UpuU!oKo$ zXlGPB6WDM#A!g<#N;oLI!*%grJ8RlOWBwqmH>FRJjg7ao}<(uDO z)xkL0K}xHA=XCfJhfQLuJ~qf9I!Ps^EMB7U=U`p%_ct|=>hGq(Mmn{E0s%K)la~gI zcfU`tBAj`>_Q5Z`re2F^SZ>#t zkG#AP**fdFC{~UH$51^c9rE+o&AiCSNFg}C-j(`NvG%uoU{yrP__vp}8H0eM^Qh?= zmhZNPG=++%rR(jb<7T3Ap~vhaeSc^GWaWFBe}vX^K8iiOi{HARvsN<&-qSw5!ylHaS*Ts!cd`ya}gJ;R};tR>hJx zf9u7sqibXEq65#-k^@g`K}@ZU)@?`I2(dApcXAoPb^DlU+o7eI*^fDd97IhgQD6*v zuNV@Bfu(GVEGZrP>pNQ)BQ&KrGeDO&qd=?i=>GjGMWU{_s?QuLf%!d$-D2G!EERY^ zVF;qy`#JVRkxk4>$AF%I{U1&$bz)ub(|`0L_XCQn3?QvKHQoAlU8_@Gx}4wSg3O-k z{4;C{6zjP=WA|!+roNruZ3%S&ZtgD`w;jhg@^pQbPKbX`A3b){(1(A^JA>zDRuTuL zfAKen@8MXZM9_Kjj(kc)9a?74$ZFMo7l8St9Y=_Oh6YvSrtN|}h)j|>HRdUwa8VX2 zzL(J5N;7%-e^v%4kl2X)r-2sh^ll^_t1R@;!`Rg`^V+bp1R#9vj1WvYlwrjBNXZqE z6m9D-RM(!s-o<4CaYBOFX$^-Bf@DGKnE=brsU#lOuKY>-O9mjUda(uh6&81vlTE0) zbpaTw<~1w?tWUKM{7`p!2Ia@RZs2w+5`5u>SD0%3z~9(fP%{q1p2(Oo4km$9LUd9s zcSb<;O?+A`>~h`tmOY}Ykm-5%`%DC440r4mSy8T(y*aAci?-LN6d%J(PtphzgnhjZ zoK?AYr?rldc<`T-O(^l?cTdy3LP|LKF-VQQJDp@Roe};`rlH)hcINW%V4N9Ls#%$Q zbwcc6A`RWH{$BXW=hTGl6Lp6CG!yxz0ngBLB>W(_N%C;%jqOBHj?4J!Mqcbgz<(3y5;FIX#;-*9a{x4JDB8%0+|U*O%G{is?eV{*d*Q+K$R@}C+$PF3LGJS?Wq z8%e5f^8--AO)uLY&YL9Hxeg5)tQW+19hToTjDF-&>bSdA!&iy@M#I*|so-|7{8_lh zW+Tgg(_6R=`_!Qq6-)SNKteUwgTvwBAE&~l1D?nAN6U>Qcx8Gpt7cu1V+xaAfybXmRMV6#KDrpVN+I5g5UBmDUmhx|5owY^@dX0|xK)l$Jhr4|1h=CM^QkuQxjw+!S zIA1QAdzM9A0>=(|)KZ~`^STlNf8nURHaK7F!oDCq^6`2DsL_(UmrH39S@7vusstIQ zqT8-(qD8=>MW5$gQc9k4At+~Q+H^<`QLIDf z%`)SvGx@PYly6CZ+>{&=zU7e3g17SX+l6`04Ezz6Iu@N4<}Ljrmwd-4j~56HS`;H= z!`*(u#6+>gMiKrs?@VEdAM!}c_^X)aw2EBm0atTtT;QnC?hy?C698SBE7NVVs#dFT z;&I5_01JfF|5E^7?UWa#@bc_D`|{Or=T^wnVlENpDwY_YI?Jcl$z_OWB6v--zu3H6 zrVD`%w{ABGwyoQ_8)!*W7+;^0h_qS^>lWI7E-+l7N5eYRe3P-?e&ewVpkd!G#nX7y#(5Du@XP>3QWVY28Wg z?Uv;}-Ai6zk6365AM<~bEAre4pgUpIaAu1Q5>FT6G7J>%%hHj*xXz(^WYb%fLfcx< zA+c|p=O)#~8I*DNR_}-aS(#((Roiuqr(A$%X9%@vAC}YcJBygH>LYbz)8{hSI&`NL zFIzB!sz3Q#WS=&{y-tu}%u|g?K;l^D#Ug#Db*$Y&BmpZ8KhF|**)!75*@0)$!zJas`89MGayULM2?&IqAomUL$$BjZIqTGmyHx6wa&_+$93F z$8EVtxF<@Y^apze)yb6y$p!q$?WWo$k#yC$^m*N2T&yJhH3YeJ=9AIqB2U zaK`hS4Exitm-(=r3V#NBN25j*zasnWms@+=>22}BQy+rAcJO9*9*%qzxq?pM*+m~o9(5Hoh?w^Z|F(@c@rUI%!W z+R-9PlmPWI$zIo5_V#9U>Kq?^WH?0c>!cJ^gax=pxku?J^Kv#*f9K#OFKJ5G8E z@dQ86m{t7UmV;CxPZ`Yj>d)CAw1HSF4OX63%u;GIjO1lvVulsGzo^iwQl;$U)}IV3 z6+>8gd9%3Y+S49W&~w%YYe!n6>8W?!oe?}E<-^<|t5~@*On%7~)Mv5*4eo6x0o_Gk zeRvGAC>B^*S@D14Uq}t8o^34yq;< zs=T%Y_}9UGFtpp?iw7vT^~_h~cMGw*vz6``Nz68}Xd(f)lJrW*XsHq(PFwizL)#^< zB4b6IHH%gm0DL6ZQR2J)Hy0nLPW912zm(T$GDZONJuYc-d!~316%twp8+v`OAMT!G zAzA)rz|)eY~nd1p}^X_{Pud2L=WlbIE}Iu<~GKw(u|TFLV?ygPH{5btxF zUwD+L9K>Ic9QHcj!fqIu&+_hb78m!pAD#PoVip_l%4`PUNiabI6A$ z^b&DWmQ6KLdd!p?Hq||Tztm6Tm$fVN6OvLUGMKN zjM&mmoMcp>G+`6lXR>lovq>QC0`?vWw)PXKT&cO{aOP6856i+Fy;i!VI;OYLVXz#Nr3(e^ADKYfyi1qQ=#gjL6_zi3gjmZ2XiA7xIB zO})$6hVBglAB|yG9(}B12z%t2(KDxLd6>!e-{nJMK7^)M)K-fRrz`&0B`WoyTz6qv z3D|)_)ZdF#7sr7ppVC)dF<%cf%_r6X4wcI`jp}4jTBxW2vd3x&5d#T%d9h>T-tq?P zy5M7E^gM1W{apo_an2O4+xSRcqvbYxSviMd!OyN73X~1Yw`nM9fWFVw#%TLYU?HiG zM?MkD&%Wqsr*Rx|=(Gl*=0iZtU_uq6g7kM>F8)^QktOwSKJ-T=#lld_CVf06#k;MR~ z;ZgxCJ!}5Uj?>*hKeDqUCuFDUl5x@RLd?Wx=|VHq1lkQhsRQK zKRd@=8t&aXfZ{#&Ze85fG8)Cqshj=btp8v)eA9N*q#brqekPq^G24sQ1Q)cOJZeGS zR|ft)5WM$1{KU?EDKXoNnFV~l@b?s-AVSa&POjA6Ui4i-5}U=yE5WG`4Ws`3F0>PL zJ&Kj8mHsG64?mCT?zn%`%x9AkYIn%c)bbnB-IPE}L>=K>)S~sJaJC&lGq|N<3Meug zFZMYi1I(>UEXBCFBw8lry2Y#;ofK&sLw#Kc*7J@l^t`F=97jCW99?V&`K z>n?ItLw(MM8=ZoQ9;&gGH3aG%EJZ>yV@Xd6gsy+6Ew_x)E5^?Uiu-!#x||N+IgpRw zRrZpq-cH-kNuEkCy96e!FCCfY%WcRl(*Z-&_Bn*)=G=SCmg4DC#yH{AfJN_Fat2FkqYmLb{C@ssJQhEJnE*Iorr!L+x95D*ugE9F=y-WlgKBi@@dg&2~FhM$NCt z8{bEC+ZV`G|VHzSxrr;sNyH3e5=Dv*avH%>Ljw;eB%H zo&pwd-Wm36GPB;#OH(nUX@Y|WxG>D2{_RAGtBSS%0*)F1VMp0Dp+%PC6{f&yJgF|P zV#IFT_pUbLQInuP4ck-!FcSoq;aMRYoAzRpdUN1<5e(o;P8}u{bePH%uXa7XEVXIe zUE~>$Oe+*vIH83=fpjq4_v+_0B_rGF^}^{v5>dFQ5!nE;^oM#AcjJ}oGC$?+Y-Cbt zn_cowT+T}og#+JJs!glso?UydDq~3Z?9{S77&oITJF82-aW@0dl!k+jhrr-6!*dc` znoIxl5k%3F65sU$H{zuwmLqIcO04O!(`uB!75Y+`d2TgpE!^zjePtHB&zxZ zJst|s7(-iqr;%V6cQ|U@uCB8bZ()H*oxiT0^#->QzR+sfJQ-QN&NzT9E~FTtw1j`I zNOeAdjL^9nfu^TgVZK&T>+ec?pINW?J7sDCp;V9xbvl*`Ry4EXW8(YTS~W4~oF=H( zQ3ZONNHN`cF&Fk6Vm!^DlM{KhAs(qQl^c*m-DI*fI_Y=jdwCQdU+lc%=bow;j?-B* zFic+JiTOZoom}ET?|VRW*28wCNScmkEgF4d^TmaoI&Yv@g8&_NI;Tf2}E3*F+g4!(HarK=8W5Ahc(V8zegRc;JHNGmbvd=4BR z8701GD2y}f;tGw_3*~)6z6tK*nmb4q+;_U^5)X6?YNUE$IW2IuBn*`4^gA5!+E^-D zw}~2YCT=T@D70C-yuW?sk0SwTSwUt%^|q9>tde0bAmXSof~*<>QrJM2A^C9J{)%&j z1Rgjo0v0ATKf=b~r(@*1&O-j^25oDh!S1B}ZePXdq=CF{)zDx?zOv)f=o8L2KNyTW zN7as`pZR~Cs_&veKcEPu2J*&P+h8V8suqoh003t7)%E54=a9!#3SODZD_UX(L9Fe^ zr1)lgK55db(CnZq`O5Z+=S68l)y?-up3+iteKGg+)J0=4UUb-LSG#%vf|B}Bcz0uH z8=1->PQ8rEOY$T|a=7EFXvI~}e*NXD$4e#t;iixL7m>xlOxp52S)y54^gQulPqfj* zagFm@aUVe;zM)Lc$U@PUTZ?2LnKp52+7d-s()dy3N#%n1=f?g~djVSRBk4{#frM!h zV$nA})r3yD(p%Tm&-$ERd{lob+i@}U{`r72TRU^y%d6-jcIW}K0n$J^kKOZ|^L;{B zohRgyX?CyE60T0wl;5XhdB0N2D`>haRLr7EBNXR#_`X)r<92)5akLXPQEI7NYskWs z8*I;IRQn41Be!ElUO_?24TK9mu_mxksBkCC+WE6HSD7F~BOyMXG6tZmpVp}>k_)n} z>N0&`W9wP**COSyGQOr5%ytB;lm-o+}X&!u5U0od{dcK+E z_uS~~OJ8dmzQt>QPK#f}tlqzZH5+W74u1Xi1UZVjzPgc0@zDFAjqzoR>sbYn!uKDCU$iuK2rS# z>NtFJ_v!og@}v8X^;SV)VWs%wrG>-xqkX-~AzAwK!wL|;5ipX`8mBphRu&A-LOz9Y z;QPR-ay7x#OY6*dV4;fRp6=HHBwP8V`T8F?iiw?WO9Gbl#u+E@G50*+=(R6kX|ec@ zZDXRe0vn=qR-%#rDrP4aXBV;K0^pI+QncMP)Y*$wrj~EGf*pAdsg*6Af+n@xMFp(0r}ZJ-r-wn*8xV)52`t`Qd22?l?4^| zoAxYVY*meKrEJGPKy#~+mZvT5drS_%j<7%lCH#7#FVxCHw3tM!U)_}~QLOFj-cHK_ zRhW^0c>-x&DA2GahWc;8U z3;76>dnB_C0hkr^S6is7GxpK54>91EuMQtU2aWs*J?@fTXnaU_Xj1AF9CQ1#`a4!A&bx@o{4-@dRe)zMlxvq zW7>$GYulC^?KolSh`!okylZzRPH*DuE$(G>AW-&Ou`adyI1zG2hjuP?m2dqEDh!8d zr4{iAch_=&QNKMs7VxAW1RklQDEo%`9_IK6+XvZd&@G3GBm|>nGHz~_S|>4~6tsTv zyA1Ahnzkl%!vFCZo;A?@Mf3XQX6hwUm`D@xC-(|UU!!Ix^JxrgEp%6bZSIWK0F9!O z$o`$_(qeX-x4o$MxP=8Ju1viYCZklt%pKgHy!JiCBK3LnTGK^H&nq$(Pga$i7s(+K ze@SF;9g(M&w0Q0387O?X#h0g!0$a#X^i2n!=x|!CK5AZVgY_NbF}d1zfzHKWqoBFn znEhb5>TEqA%VguIOYJBjQJKjlpNN}g_+;L}q`pA>P1O~=p@HXeIoeli*Pv+syK$4yWg z&@53=9t;Ysb;+v4>Op^#PCWtVvj}_5QZgPIvG;C%L2kDa zOR=Lq?S7BNNWMt!S{lN)e13*`wJ*l~r4G&BLO!3znNkwk;O0{CKl`$|QMcSK4!Vx= zI}JVvJRpr>lgVX)BmXtNO=Bpg75h*B_r0zjegZ zt`)64ohs3o9LCBcd}{vlmyT+&xKwdo@njozVAVjyyTz|$y!PBMQS@HM(t6BzuX^?3 zgb)m@<7bH{{}KwRETU@%Nk|1Bl}2*1YP=Fh#sCRg3H2%2Je7ko@Y}`$dMBAlH|sNN zensa?OLLt9UbE?sm&1G$W*Vqi)e3twAiEhl&He!^+B)zB;Hr7e&NJ~; zV4Ehf0YBxgzwPRkcE-#NfuelD_=%guQT^M=LL0|wtMaiqaci4<{~!0#JGCMytVu@o zUOcxbK=X!jx>Up2ZT&xv=YM2al;HtJP;I)Hc%XQuR?SiUq`V$yjQudSMv-#lNF^Al zQicG`&~Q9hG_ESnLS`W7?i7`lGbMD)mo?X}C))AzF@7hfz4~w(H-{#cLk>riuA&;O z`p2k9{+ketpB_a)K*!@>BO9M3YN1PtMb=;^ffCGRIpZ1J*B&HMtDaNZC{?pMSB#?h zD&|Tb*xRY>7V2KlR$2uvOdTo(T{ZbszBKJ+y0+;6-~uB^Sx78ofxL6%Bhe3Cm0hL>{tiHaa(E;_xF+|C0N!7?jN!uDhVR({dT(ImlzU7 zB!6Z-t-v#sN>YmGEq3Ghze1@;j|rrKUx4Ipj~1<0%Zh*7C($}jN&rtq%v9)64#s!^S;nqAfWeW~%0L?6J8xV%+{ zE!h1P?=7$@3GSCJ63xSA;Gzns`URAdbjnw+fiS2SzDj}`6LbgmLH&J->FP~C zzQ*nenw7U$n_HO4B+|v?>n1T#ov$(d&o=a1xfT|{XSEpH$F7Tb@=8?{O36!2bc6*9 z>fw*Hm!2t+sfI#QLKxqn0#344Wr6Cjh{1v7RxP^XA;N}C&sPssnlVB^Xmczjb<(8q z<6@PL4B%9xJ29b}IsK=0{T<~hI%pv35ey+Jq~cHyvNqj~XV=dJAp(seP{}>72K8TK zlSQvuO=Smi+fR+@bCdwR{kI9lkmY7m=~06pSyDM7P0Cc>gh8VKfB(5&qdkw<&zIgV z?xo3_D~UFLNFm!?Az&B+zsW9k+$ux{3vIFZ@YH{@p}aqXiBo;!C+R4=PN!eyw`oNG zqT<&j>Wt2I3ylsbA8Re;he>%BG1h72lj9{_8wIq3FH_Hj0#gA`wv9!>3!DGPj5o%Y?t*(d5at>oI8n7ZV%V- zR4WY)-cHu!>umZ4-%J;N7D==%Umvgb6)b+;-m>c!;-_NaZ>2C$#_yb$rz_e5G@s4{ z=l+;F$M^#ZlZQw~pMK0+_ax)kOY1=;KXz>~40}g``oL>V!2UX-C$|2c7ILrKqTqME zLA*U*oTy%*Ke#v*icMzTtz{%@Lr8X};quP9*8jmkg@oOZg#_AKqEe9|iy0ko1gMk- zgQPHllr7u0OC|YJrE2t|@$Uql&HhX2FX~9Us!qyhs2X6593s^tgTWWtqj#xnkQ9_2 zDof&CD&tgqy`2KUe;i_54kk3#IcmPqjv7^|P%^YwO&$IZ>eA+9q--q0SbP{qHFq$d1g(HI*+%u}Ix9j}B56A*ea*hi<9)nVEAoVE1>! z(LtHHTNJu9U!dArE*^k}N@5Z1jbQHC{dyA8zc=i7Q8>C;f#p`ujgY@Ks+-y#ZhmpG ziyaWWOcqY9{Hr(uKIR+82YU^P{`GIV9Sv@zsD*Wl99lT)3;85!YU9cQOL!N)-y|4j z!lHwLq6spHrAcAhJpT8iBRqldB6FM$M1X3Sv|V1=P_tWld`Nu$F|Fdnx32*9EA z|DTuYQH?sR8^O_}T}L~2s**`d3%M8CL==n50iNT3rO{7^Jz()KG}rI#8MlflhO8N` z%LC>NB#PC>CXK@e7?LknRrA^UppeTypK9Qn3~~8&A*BzUMGx-LE>2vC1d4PW259md zNC0i+1$SmQjy%`8DwKrs%Z1%h0&UIP6C$+>WGTEJ9y8TV zi~Z^6QBh{!kCOmzp~WyR5u5qYhxfYm)~WZ^N(%4W={X~ZGhRxc?=28R%d8YFGtv^C zo6DsnOytXlDOyI`q}?xk3-HCP4G>@fz=p|nb#>h?mK6Va0R?`R=_*{0xJ#s$A9?o} z*g9}%I9|U==S_O&cSlp8%VUG9H?=#?A-$i*lW_9g(#iOz!r(%O!5b#6 z@yPEXg3ndI?C|V8z|kUhmkn}VGw@3`Ds*YR!$3($&Oc>782Yyn)hj_R^dlyYhC6f2 z3rbhnpQ$QsH5t~kK%jSkh^BHC*l5(vj5X;CCLk8P4hx}obCHaJz-cUDrC!cE@m0)^ z4~gEP`SF>VET2Ul#DOs6a>4~YnZ}XKr4AV}A?F#}kG#I2zvkN)@=TQ`j4Bq}^uM>x zKEY?0pKCVtF4i9`p^VFH%;2{iE2Nm}@?TG|o@ z9PE1Z(`6jtc;C;jA{<6Pt@e<@-@8m}JXxqQm*H5S38@wBdSidk0<}$)UxjF_}8?6*yiTu8kg@*wQ(1AMkB(%h4C>Pd9|8FY#O=m+-n_q zdUJ@>@{+!r+-9#ah7z;hUbYEYOjIw{m%aYvR)WWMCE%qgTGqzp zlKN|=kYw|dZ?bxc_IPbl?SF3^c+#T%B~{|T$a%l%>t^VZsZPmdBcax|`R}NIKlzck zrluTeb(YK??CTmKpnU=eiWjDnWV2LB0}%V-3kcv-O~=R)^Qzp^-bz;uQoqQ~{K zx?xkhfimAOj{0Y6Ffti@p%^x3OwcfVaED^L*$w}u%!h&`Mc?bU5yh{2esvyvj-$EB zbf@XiUzu%KGjwMlg2OF9Dqqz^sFC6<}ct7O0$n&9PLCP(yMx zpxP7(-);4H#|F8VUT7NqKeo;?E~<5Z`yyRKC`b$~(hV|5i;{v!cXtj*cL+#_(nxoA z*GPAl)KJnbE$}SQ-tKd@|L2`=^n;7F?)w+l^}XJN?ml2ho#-F{hfZ2uCN^pSHFB>y z;WlNObZ`Y(xmEVh zLvQ>Us(XKFXH@rRo4aMkBahxDlkA)LgH@fuegHlZ*Yf{*8 zA07UDx^HK#85M_eq2xJJnPh560@RP@@UYFe=k*ifx`M|9Tpu5azAvRI^>mkNxc8#* zIdA?EvmQplhVG9dHBK83iGPeYfltz*9{^QjRgSon-`0B-BmwQrheIFgDOn?7f)=S% zTos|OIyc=0Syus&ZSxgoSQNc-Wj2;TR+l| zR)Q)o7M;V1B%6<3N(mea9Da{Fohxg329Q~08uvJ*tS z<@AqaLx#yp;XY?8zq0%GaQMpdL^o?p5g^mMwW6A_gli4=}N|ykepC zMOa?~u2&ax=x^{eb(+sx)YJK!3*ILrS&8h5X|Cd#e&hz!mQ&>6RX*-YKN<2QD;sGD zW+%_gN3tTNhcA|sZMqp(rQ8fvb}or*WKr)fJ9e@-p4#nyOT2>fE)Rb}B>)rI9xCi& zaq7d8qDS*0*SEdqEQWkAl~2NXlg^qbywpHuS{MgZt*T{kMY7WkW&&^&$mP9OVRJ2J z8~g|*Jd4ZC+@Ar-_L-TMDFfs|_GK;bDWEL`7EOMA9ZDL2FY9T^gCPx+c3=3rO1QWao0^6u(; z`VdenF@1)QlAS)c`Ml_svOvJ}h8eZ=39CL7Po{N)uy5>hBXr2GTCt zs4#>yMw$0|7DHkZlwbi#D5aTJQy@NgtGG;dK9NwBi(Fvh2 z$&S`bh>5s}m{DFMpO(T!?6|VKYM4oJ$r=f;8O1ikWnzaFpbw;vtpQ_(4|&MNZG%HW zg#)l5)QC#NU=b7?G77ekFH2P_(~)JdyhNzh0OrjA>P5qGJXmlY$#D^5h92@Ydd2PU z8Uu2TBp>;8a;h992jPj&;G2ANyJqwVpXBN%a0TOs%gPIsCAO+MSBJ;+fZ|0N zUr`NgXRKLWaT^dxlCHf|f*nssWoW=WLVpNdJvCp*&v@VOp$Le|CF}kErUOI}`=;2o z#qK@P!KK*IL#kQVwB;!<2=#}HINBQxzVxZLBc7OS$Y+bmBd4Y}BAPFZEfB>2u$90} z0@EjD@W?Mc&2{%FcHY9{ejNkv+wSz$OSV@`hEr)GrVzJn z`Kv80ktBilpfFLmj04Q)Ht2hMgTCYX!SXS9r5F02pgo`~275lFPYFsuR&-(8`XNQ~ ziflP2l;ONiEbTfg;C+D~)Hfh~lmoouS)u9Q{jLL%#R{uu(K)&J-Il*Y^Rb|t-g8~1 z5EWTcIZ z`-wGzvOY}j(ucrjn_WYj&klfS|IdG{JiZ9gdVWM0{?MQr!dB>> zMREbECo<Ra>pp z8H&oF*5M{;mzSTSzXv@DxGz*G&@zJ|=$}kf>u&TE2ume$=4|-AN0oVlAQTBaA0gz@ z-_R{I+H_y|yfXCie2?RdSE0sC2WpL>bSqwCqjW7d>gyh3jmNMRQOU#ZzPy>1%qpd- z!+>6!Z+9_fxIdaio?n6hgyv!R&t9J`4lN~$5rFd>DsGnCX@Q2P$gMF#U*2jokEefJ z$5YurzDTS`sobSK#NV>BhI}9{_;aT`(e+7zpNK3-5-p2~T~-B#N04Ix1WKtv22uD+ zVuNQKk%DYSSu53*=`@dNkE-tQf3h1F8tqI3V2+S72Pb`dt~8&m%p(y&PQ%X~|6@BZ zHIq1hr&nj_j{SS6U8P5twE5Uir0t~|84>yV3&`$_Z4{1#hrysdE_kX?g`pbW-XP)m zT)g&hmSO)}p-fzEtbY!TR@R?aJ=T_7iBvSdcWZ@Jc7C#=)#>-U&@LaaieK;}7ABwE zFX6l2rrHDt!NnNvlNx@6MQcGyEVY}~xtx$fj}B|eDkJdOiiZM$-mkC1b|IycWbt+!cxx-rZzrv3GurYTa; z7)~6to&QJBM3{{7XU5=!UzK#g#OLQfMCh`F21!o4rPsU&yBuw<`eT2s$}PSOeo~Y> z_+{6`4mQ{sX*0_?(tWenmGeZ`j4`C+k*J`DKeGLg(?{rlI2H&EFtPp|J&Y69pwWeJm2wgF9X%< zn}0l9)Ql->TN+%mc<qHjf<~dqM!unoXlTYk~~=L%6*&SrvHleS>vvL!>rxi z)pTVbX}X`QRh7wfWeAwYpgNtB1nEu4^g7xM=rxoGmW6Oy!J;9#b9+&=6U;OH`AgEn z**uPC#90!_h3mKibGEGvH$t~ctM2EYjap_5=fIdj1A=s zJR_~b7Gz(;11AK?Oo?kiz)oHEAr7^V+OAXxnYFSRtR|2}7k{msKU^Z+M!!qzSakno zy5*FObuGS&aoC@HCpT)PC?_Uf_|8x$9y`glF{M$d#$rrMyQn|m_E@a$?bOXq+f46U zMio6W^T~4Gl*z0nO6w}#z$~dO@$prpT^x~Awvp^P?L3uebrNW+b{fdYd{3e*l}hhu0n0e_zeG6-auEvn4O7Z6}_|IGC}!hH3EW(e}QpqtBjsEoOZ1)KMy= zvV{{gn92h9>K4@)GHaw=lQdr9e%`O%<6VmKq>)J4M;jDBJKVw`c#~uMc*Q@5O4?9H zv8Ee!RpM(6H71CFyQ#Vx^%YJ8nRaD1AGcNku1IQ;&9>Bx7R@oE!wGkhX>E62`l@Tp z^tL2qEeslOr!;MvV}TVEf*dx*p4#CqKUz-vhL~5gx{}}_o`>%i`BItcC=uM z+@JKA$_a2(E-^0Bgxi{qR!=?~iv<*o;xd^YP>e+~V~Zb+4zm4Azof@CS3l@TULtc) zn}w51#;a(wG{4y%H@VWYeGEpW>D>SQ6n&8#d{ViLLyU^_L{#$RSyV7DXqTb>uiU$l zZp6c5til6C{6{6-_iKDEanibzOxk|L1V@UryFx>yr8zks;c}vV1I>g0$Gr$z!pOwu zyWVDFlx0Z04k9z3`?9w#^dNz8$E37^seDzBd=<&}M^B}3p=$6uVmG`fQgNp((p)ou z3&8-{m*$E{Cb(GAu=^p`Ge8wx|Zw~53tpRbF0sMx|1w=~&i*?O9H9k)XV^~kw`_*IH?jfIxatNal+R9Apw&K%PzJaxW-Ab1hy6D7j#__EFG zx^n?UTyBf{@T8mexS#@2hkW=fuSuBHDJF*>^+(BpUA32>?Rp6_x;FSnPJ2Yd z=Mq*#Qqf?FGSM}R(Z_dH$|P2lX1L&UW+X6SBHaDK0k7YkM#z=I;$onXFEFMxM!ERUFaGec`pSzVsj{>0mkDS&~BvJTk zeopLcolrOfr^0GxW7T#DS&ELzK4|Qf3XnaEj4EIG&$Ik%m*4~JNb_e$jm!358jDkD z6_&?4y^_{y-cmp={=Wn%%KiJyQNKN5pwS4zOgXWukGIaH|F+U6T0|fXLVT z6OoUEf22wh6wqN`@Dc~fk|?iW-KB)P^eZ)?FZ+&4K%D8ks1^)iH?TA>paZ`0#}wH| z7C`0e>r5eAfur!tHPf$Kz7taSyP=AiLu>e zwg29{iB!<(A)(S=W^#KWN_QxbPN%3s6TW)Kk)aO%N4m$naMt`%r;vmSH=Cqiu(@*gVNVPt{orD_?SDQ zqp)*@m&XRi{=Mju z=tNvU2_r6Df+K3Hl=%D*kF3UkbQ0u7CEq_s{}0fNa!k#l?FORzT_eYdEp-T9*?aim z5ZwMcXFJvW5IMkGMx7|R2~)CTkHLgkt$(wve{Z*l9wwS^$5|b9+O~W7q9g~1X zlhWaaIb(OlL=7+iFBe^03Y`u!s~7D&t1g%Q-oKVHah9;*G-h-2Q*0mv=F zC%2TGDY=R7!yf>!gpYrzp#Q#efGxP5GKnfk9I93U*Xdh%0tQ%?5<$sd$r>Lap}KW6 z0&FbIdj{-3GN=%eeU#0$o=`%LMk=-IJ@%^WmtKGyhnOIv1b!V!qd6D?f3Ehh5Zd6q zT*QUt_?d{<=a@`^VxD<#u!8m#Hu~{@l#?=pamko}ZsPu#pFznbxOfr*VEUfXmQtfr zL8?Psio1bV%iIpp03yJu{22Vx_YacQ5&jV-s9y2v>C6(^d_XjQUw%i1j2+M?Tfq>d z9xAVrK=c+zpTrS!A9M}4{_7diFa6qzea*OZf)2~Cp0~> zkmF@fP?@bGR<;3B$IXMt3y`Trheu5K9f-{u9?CE*Uq+szP*M+ z0br!C*6_bhWf42NsKi`C5cd?8Q23fpFH|S$kyBhDy>9@`i)SjlnRIU3q;7gTT_~%( znLn0utu-AZeiyU<>`q^W!F^0d37H{bfszptSV3=Dz{fVDF0Iw|ZV#T8``zhb1?l(w z3Av($6M*Fmv}RdH*(=6ZcfyQUj*JTI-Sx!z3%{ky#CG}p3C|<+Ee^vvrg|!N&kvBZ z*j3USMAuZXf@mSk44Im;*?ey5>V@UT+kVg)9N;?{RimrH2ezlet+dV z#*dacT{&?02*$r(2az#!mtXA4j3DUF$2Bv3q##G?&vZD|P=I6kI`Gfu`U}>W;2Zy0 zg(S$CpgAX`RU*9 zvvq_S!49NI+oTg?2FYddd_=VWAi9?R^^cS6!NUldSQYpv?SL5LOaeEv5U_|-4C<(b z5|w1wniP`hFUrI4a+rv?ZG8XFi_QXojj#y2W%_AoDCwAC0HMjw&JLeoA6Ox?B~w3# zeG`T0Bd&b-*Q1sc0rWx2Hbi6kb1an4(^&yd834uQAcrBih{x!m5P~p3p-9XBx{-X4 zzz^f#@)hX@G=RO6ib{alL=0EXWxJE1GKwgKI6^u${)a6ZB4K}q{vQ&7{>BnV} zPKj#9NZI+?BtLI)%XPnNGqPuXU64%luh&hOUkA1#9c;7) z5Y+(12Tm?-K3)s%#5+^CLO>JRHe5vPF3r}5L$=@fUiiK(Ptv*_% z)vh9VO8d;M_CqR=A>aexLUiCvA#qU&lp6za*o$*jgfkU3wE(|nkht`QRk@eB+MF}{Ns|E=UJt#6#vt6hQxer&CAo^9%818wQaEDetIeiF}Z zMQc#IIY2e3bUihh`_dx8s9N}xwz3kmLQm~}vHuC+QGdS~X4`=QTnlP`=Y4zUBDD&? z&aUppfgn!Aj9UFQarNf)w{zJSAr%TL;<-viD$0c_CDcST1hxB1Et+=;Z6edVYIM98 zKA#ztrFUkEm;f#X^Bz@%1yIpT7y-DfDlvyGmjNP!Zp!_fjKFXnQ$a>#%ZodS7pY0w$9Fvj)uDmatD#|%bG#voabO+C| zhSmi3gQOI4-)u+Seu;g5pFpSWc5Y9YqdY)(vay+Uw)t3iPG#5qJ7wa@+S_4+S@SR7 zYJimr0;kKU`uFA~!w-wWq<`P3a0s;zs*l+6y$HGY^<32QG1+|Gryg=Ik)4?m(j#qB z5JGp%jS@JFgiB?~!}R0em1pU8$l+{cASn8i+c{dDW$PJHz3pH-D@_6CO&Mya5!F{tcBo?INsRMC@j+^cKr-n??OfZ|}RH zFJJf_qEHX-)3_~0(?z`a`1no$)#%1F{{gV3Izl^d~vkBG5=S-dr@}zOSycW6MeNVRR#fA?OLXKVQ$W(cK88vj)tZ;4q1UF}>8*0bscw6CXMS6_9wY(v0Nh|#BeALj!(Y6d z3p*;H%v#lItSvhviEVlr?!ka8nhQt$(sAqp=ewKCaE$~WvPO+91NnZDVO1TgCBsD_obRpEcY8(sqy!(UJeY(UpNpk zD?x}V5CnZKd7k7EK#J4t91A!_*XZ|yKu&CVbh*%`adblnR)fI}@Zyv<{#0lem^>V=_>t7kPph1^m`!)MMAfl zt9-3dz55i3{?c+TvjNL>ji*2jcHKHSyu^efaFXB5W0cP%IZVtgujBE3+k=A)it6^G zFK^>2UdOJiJf>T`-MS%C-E?+NK=G zbnMWq2G|-uBQ0$eeGaiv9wjirMgmfTV%TU{7UL76&D%H~3d^`XbLQE!S##KGS7qVx z=55y&ycRnHjH-Rj2d?mpD3Kpe2J>=X>voYiF0{&O)|_pB^6|N|=sx>0TI)aG!^fI? z-Px4~TSvJ460p2^hgUu#m3MZwlCm^y3RkyDi&%8OhL*}(zjdlTY~x*AWqQ|IIqyA- zN)foz@A&uq2i3y6+&ir}aMtbGsqv)n5};nb*#73Y>k+P5Yj-ncJ~A^q5HzF7q5 zWazEiTwVjtWkhPrb{B#+!XGihOVGCRSVdby*)F^{>vl%x>fUb-`v?W7`@kU?vhK@F zWo_G2oWG$oI^qoC?ZT z@Yt9g8C4iU#mYy}n{c=!IzG6&5@8IO3K5VdO%JHX5JnhYsf%|ugfc>oBw$wotbk~| zbULE&I&^DqqG_49)p2)bv+06{1=9NSnp8I@$;)z3@Gy4*_Oe0}2kbxK8d1_tPmhulhs%kheD#&Z4Uw5)AGn-T&? zUe$_3ISQ)52v0uBDSNZAbI>w)CwTN8isSa#lv96EQdSifZNdzWFh(@!zy|}}9iJo= z^0MO%)r%j>FOenCF(R^l9=~4N4xxr{Qx43etIJ$GLHja=zfr+ zy5OmI-KiJ>cLM0Zsi^`vZ(W+dPaW&ZVF}UxR#(I8Y1prV7!I6SnIAw+r`z{EF3>Lw zu@;WMRT>xJ5MtZ9>!cmOeWP2}lwK z#;Cm8CsP)QyZklx57MR)`3n6I{Z>~8%IvRFifz;YUaI{e*}VQ4^iuH0>?5I}@eP}c z;h)8&`#hxF&poL=bE8Z(T_p@@9w-533s&WFC`1JmZu$-r6)A|U1A!?pcun4SrPCIY ziO2y&?t!aDI1J>#%#efDLj=Qf|LqZ1^XKS>u_7Kprvv`N2F^uOl#pjMYEUzg&$hd@ z)~$*+*wBlTsq$dku6~gW1tr*6hUVMl%8h|VV4Z3~Zj*-6ca?j063Vf>s&PCppEXm^ zn!^5U?Bf-s3)S!A1qscJO7MaociI24)oZJw$CD&mYwPf(M_t^iX7jw^cKH4ZL_Z;K9oSeoWohrX9lCo5&x#atoKjVT^*78Cx|&Z!q<`?9q00EL%8hnIyM zvL3D~i~N31ZIW48av-#Ms-S@3;7VEPpHS(8q=PG;0inu0a<0 zTj7JsZ!O#wK76>8*M2w+WMNBOe{qeF8Vkh^7*eRwyl6VVPJY!D$+rY7RQo3)g{gbR zuZBl2*5mG*CW?gt*}?Y*sdZ^yiO+VX!iK36Tb*-NQ|iw&jCKAKDo2ON0EI2o7kWOr^)!LaW3vJ zWzRaN+(k9CB%~<~W25m@G#2PfxXJ0pfFJ~gfH=ntwQ|x|s6Z8)bt&hM+yj&B?C$K% zdg0SU5hP!5^b$SdmpNQ%ZeZ%ZMMsECuselXXX3f=-I16*tYI@jw>%Rg!e5)N_Ts>? zQs828Eq9CJ?(%OmZj^`}Wx9&@C+fTVgGM^I)3Nr)!-HH|k^%pVB^H+C8wz$eepan! zwQtVb09pF`yPh?V+oiwLS}ymo?4wEJs<_fjwup=vyv zFvS;JD_kg48}b--e34XRKL$9pZL3U(4^bYIz7o~XBeMqf=sYhP9S)4TU+&M>^wGW0 zBW~ELWCG^sv{PJb(Lo2i)3jmwaV2UDVoPL%^4R2lYh-74TSYaH2uChpW`LJ5jXmgM zX$PcxbVK!W6fbd3#i3i1z#?jtFbh*H7tRg|+1D(G6S;_cH|)h=BD$=b=kx(kh5o!O zp-;b@g!4x-9Od4^uGhg5v^-sh(~pP0u7Gjh(%H1$%CW>%&C_3njtIY%EypQpn)cWp zuZo`-LPPpF_SH3I`eIO&bE7A1(BN!m3aHLHf-nl?It~#(MCYD=qO#C<&7)YI#8Wu1 zg-1cGzxH2?UhwpaD#3k%!a5^CCzI_)T&#GDK zyGyosnvpA+Z>25Sn56>Z&5C<88DYLHJ>@}PpC7xhnAxvvIfJ7)S)V`SQh!@gU9S?y z=vltU#l}y|I=-qQx;6&P79AYIa$X*7&D^IG@$}J33%-Mgy~OO{cod0ex2lKP<6YLO zaG*LMTL0V|_Hui2?dgn#(?Iylz?ZtkRVU$u07Np=;UpHsVLsJrx4gNs9F&4(hs7Gs z%davEYwgH|l$a77C}$fT8HbV^(yvT7Ckx~?R!diQ3dwvni@Z4szIjnnWnr;8^zgmM45C;Q&PNk7+!3W&4w_m z)ywC;scEJhJ+#86f2)cqDK6gFKwiurv%mIMyx-flv8%JZy~X14Ml44rFXBqhx7|~A zh)wuSBBMsoU}qX7VQvG;LE2bZh#qNNj=95OHMx&`c4$e!mwzqEGlIeY}=ktXYWXh&rZlC}eEe z^ryll8OGeBV$?6rz9Ap6ckWnDdi^g32=0%CA!p<$&3L*YPrh>;h-zUibeGkmpgS_h zSHn!x3Q{N@p(PkDQbI;2v!t~PnK^=;dj;y1)H%Rzh`^kDeD&LxH*YnqD1)YQt*6`H z@m3LtJ$y|7#w7_)s&kr{*RfwgKKb0O2Pt9qL-fqJWUF829DDfsfP!I@D1p2bF8`>o zqLW#pxf4vdecyU*5XPOaJK|3A+xysVCk6+GBkSKtZJ%HG!jlw$}|d|D;Bz0&x$H=sCgD=rY};Z8z!{XdYIa@p2Wn; zJFv18VzA;fwHh-}hR-5TbO1#zWeb7J*U^u;kslm47V242JS!10c#HbQJL5RJo$}|( z&0#DPTifJf9Xr>A>EP!H)D-h#@?b`h)G=n=@oS ztpgO`@4eEPZc)D&o@lJi79=SfcE1&tOdP+XJcYlvPyBnGayNw3Iuqn#ighvrt>60j z{wxDdL$#Qk>hite0VZlC&Dq}AVv8q|x$u3zrAY&jEXcXH&l^q}H4jU5y*#Gd*xuA( zmx1cKZJwzj*VJNIyv74-$d5kt@9UdW9i=iJU#D1Kybxmd)U$Kh%RtT1n&a&5pn{ND z*CSHRy=i$iv^W&6ZC`;A?Ea<&+c`&&%jWB=t4IwUc|@$$1F{<2Gr`+xxQ%}N6IKo8 z`-T$>M`TT->&Y@r389-GhQ}y}L5o-PR^>au?tS#WS0P}s-UL=_cj@1)I8nm5CRbxe zrzRll-|Z+A3WzZV2MEF35z=eGgxg<-PiSZmPReiNM@kvsLx;p`J{|htBPu4zg_HQy zkY#Bb13W=aWD4fj&F{cJR_8ER=`j=hpoGVA=K2SYO}pJl)1~l|;``sOfC&DF01D$G zwnS_3_O586KJgF`onB4G_Oz%f;px_!MVDE8xwdIb!X~*PyuZquN96*D%je3|(o4e^ zoH1oarl!du^Rp3aW*OSL#3NUe*aLOurzTdc0xr2@v~WrI%CSFMC2ZMDqQ{ z>*TR+kd5HtEgo7K2RYS+pb8V$IJcev&s2P>pK1u(5K6!T3OCs}(b~Hm_DXqTZSow=>2>KKF?4!^2J-XM81f!OKUvIZVX? z9elmwo=HB9Wb)TbPVAVd4-1cwXuCeeJP`_OtfQc{1a?=X{#T)4|m`CBw z4VMx!;39YXf$q9-#*4J}pqhNKu~$m)E%)ogIOZ$Gi50K!xpT4~G~)sDvHsUM<}e!cAkJ|~MiwP<@q9UWIM?Xev?A;tAv}yy z@ZtV2E_ppfh7En`EP*u{AkrSQACuO4lzV9u4^;Yf0}^}E4ulNfr597Ig9?ssg!_9T zuH|t0J>`t_B_=k3yxg|0Pwp_Ct!h$wr)HMTEZ##rLC+v5UZ}~La;Sw)=X(ddk0`7t zY<^3by_pa?br)t0M8Ui!xJEaB_GVG;VB&DRK z(@h#-kR*MTXAh`B6*(vu$El1w^P%Vx{d25VTtm4ImyJbUU9P#R6vw3k4Y4;oc1Bqk zHt6WbCt)bTIP#*197IwjA26tRzUKqX%$4>tzRV6b2yO?Sr8*?cZ;D*p7A~usptt*7 zEbMwldoBX;VE`WZSffUWgJJCPECXO%N{7IIb#%l6DoU8BxCgThilu;pm6*#ZMdk;f zF22Ksqhl(-<9Y{U9wqS*WM7r!c}4%;U&(8srPs3>um*Xb6clR!#)`)2dHJI`@7u3i zAd-JDx4rhJ#Sd{o#;ofY5HBM6Uh-N<`Rq&;zR;$z(D*7BS`=ZD`qleRCQMqcnkhUv z-3}rv8m{JsMBSnM?8RFc!i%n^g0h^S#RRV}cGy(w14TWO8d+n<8M7}t{B+}>*xs+I zMI!rN1_%KnZywj2jx*FvzRVl{R%hL)e{w3 zt@s$qL~Yc1e((0X!XKc_kOWa_sHqaN=}<=s9Df#N2e3zqY!ARY=2!Fvj3k5q&&F7Ln zAC}22#quhj8N{UUnoL69;~@+c0lxrSy^uMQpI=W4`9l^JbjT@=v0`HNMZmoSrkkjp zUgl|cj&!_wP=~?S|B*LA$k9bSJ{QY(87Yz+!`Q>Sw%i1ko*izZ;rG575qS_qJ~sT; zxCqPWGnEywS1c%T9c}yu@<@a!FVocPC zG6Mp0yCG)6p_KlQ>qzxVa{>3jD)Mp2R0k2C7EBZ~Xej)D(#jyL=z38uBeyt7?)(yK zENVy>^*<9Lw`7fT3IfD7kUJT5U^(|cMc0l=xNUB-0WHRXNoOF9?Bpe0*6x;q<11kb z^00p?B<`k=q6lXsQNoR3kHtY;HHZE9;4xsA%>=2Ax664cu?HlQd%iA&i}>JMa2r{) zAm>d#eCUF^=ijck&cgaeEb7=xkWisMb}Ho4@6YEq-DCy*k|~@95aCOsG9kxu=xo_s zv4GhFW_!fS>&?HB^5?S#tHCM^Hl(laf*9;ig6SHO)oaZyYB>yhq;H;EXV;pjK-A_7 z8N7w>ze?AHC>*!AfAJ{SuKza`CWHr2ca;NSukz5e9aI_nOW?HGw)g7}Cwq#P+^3MU zOFi}Vc)nP@a($$2{l`*XJt2sNluh{dBs68AD(^FcHse;r!za;VuE4TyAq9{M`g+vA z`WJC00}V)EBVzm!VDU?I^j5~A{Tp8YSKro%H3DYRZ!#=2-7SnUh5$A^jgn&rKXB4I z|KKA^MTOI%8v&S(P|XP0^NIQJ_IBH?336jT6CpBc{_k1OUs^;FAe|DBCJkrejml@_jgbv>Q(%I$$~ySh1Wp=euo7r5dG{0!%NBOCnSl0munSLXMs>V zJC|DAYy7et`88{8Vh^hs4FMQRw)&@T#;8mqU=0&?Z=V?#Q)X89F7t(9riPFoljeai zRK)A@SVBE7E^3-ZlSoqdZL&BF@1!S~>0e?R%BTn9t0evb-?-(2I`F`9Y~ExMda#ur z_2yOWC52XrocMXLL$mo>+jwA{A;mEC9C<+8 z!=stoW|opt@IY?y?slERsAu?#eP*}UXBJHrLN;GO)5wl{_4^$Bt2srbiYfpoG*u{m z-Bizy{8B{j=8yb3mIppYNLE7Osrq9+#)z!%mhX@J@hI|A$7K{^J`G(Lkg&JfZ!m7> z5En{+?&a)f(3pBuOeyDYj7S*qeJDw~0|k5VIR+>Q^n3OF*Ea@*K1|Gaj?Y_#)hp^- zY)4YUsPKyjAM}u+Bf9ofuJk@)E{dk11`MEeE$$aKkJ@~{df(ohb6ohiPOi_^n}5RE zS{_k@G~eiXZ4@eVN|lgqOcst+NjP6DF+lvJ?0y&je<>5b0)P~miEu_jurnhOYcWsU zXUT}Suap5nl|~Q^NwDqh5Nb{)_D&~&?+C7b0Zy*7;_%C=Ld(s$CxfJM>BsEkICD--NEPK)c^oeK_ z+2r-6g~Te80g6*9*{aUpEPzd!k|drSz{_0fh)Bi&Iayi7_?I3NP3AxHwlFWC{P>T$ z4XFmYWl)?qULQLxJ)_as0bal$c@m5SJ02*Tkk!!AA}S^>w+Bi?Is8c$ENq7NGq$so zfbPVhD1vv&p+P+{G51h)*~9YM5uj{Ewe-(NZfr~$-X#c!W-nr9^K1yPVyk~QI;5V}TQ{M+}+2gPMn^XXpAm+F5 z`G4f2zy6S}hJS2!c+*SX7NH3KfyRZtp4*i@?WK<$1N(MlP zArRZG|A@n_1COlSM#NzY6b*n?;`P5J@mR`2U4U4!Y?E*jlSQDBGXAldHh?ahEd8lF zd@nU1joqyIsCf3%ziv?64t<063@Rnzb(DH(fSHVp4)SM}go@<6ih(C^IhQi4mCNJ) z)D|xa%VN=N)yjQy%Rp%vJ15`EixKhC&*0zUSow$Q8s-a~K0s)talKENkCRV$hwaKJ zu=(Lo8HH3TiY5@X=wCc%Rc=&$iXL$cz)Dh5JQ*R4(v1udYEJ8G2lWhs?k2}=tA)%# zPeR~>%0erjjs2gWH+>fPj8F5r&NO%*A_slRVZ`uK{1yfuEhy;Fm+;hk^stA9#cV-~ z{ZCChB^D<0XAqq*#mL*v4ei$jlQ1! z>FogXKTHJZ1zK71{vA?68x3F@NYv@`=PHH}t9V9<43X&i)7oESk0A2@V=e$DY8Kf? zuEnGgv4F9(lkPeUI6Ne(Ss*DOTvBm|2bsg8IfV)L+{fqtzPCR5d?K7FaNaaSe{<^x zY$+u}F@bAq6qNgE+t@KshJXbu`k_JcUu8m9f=_HtKVxY)8t8)&!~ju^o5jZOS`gF7L4p|haPdMVz${sA(~bG`iI#Y(fXywM2zX~(Axhvnk{zJTfDjt2DMMd%1nL*yS4FbI+V$sNG6R(?s?X!) zz!$X39=r^~4{k++$90d?2*`kzV!Y7xeStzwr7)}Hg$V9gcAs$XFCc*s)qk3LC3;<< z`w9WeR-*eHz~(NkQDa3_qQUK4*KTz2E!nndV2KzF^pjc4YO+9E=E9Q7&h9=!SMAXA z9~OgTy57SZPt^6XjgF0EmMWuxyDxql^tbW&pYjoZ+S^Oiyw7&kDDlHFu+=U%&CzN) zqJ_cR%J)CVl&r&&o&@Z*>fb-VG6NJ)DrMMf+dY=r&(0JWH+PeZe5X~}+}?RDR>)Jj zW!5;mS%qNHPe_#(Exe7%Tsz%=WX@Ds4GJ1jx;xe61+O4j>tllEfyxVvOUmw$4wzfw zK)rYvApe}%)}fjH1H+!T?1kGDl^GvUoDMb?#xe~6o>W=gI>pgJx-9X5apM8mjmvZE`Fc$%NUF!VYgI~240SNM z49bq?ckb0i&xV|{iG3(v_4}tpGZm(^Q%{l z{NA{=+3~xI6SrH^Y(*0qvWcX3CF&GA)=LK)_S=4@#`C_~8PA(`L0c}UhUC>S{H5-S}`8_wf*wM|PGx7*YsBi)Nqo*f}G^z5|w`0lV2*g|D;hfd1R! zp}AcaB}B>GMHoaQ;DG$FyCT((hEr(P(2)Re9EDD#`~|g4toSLWhfAK7_GcD}*QX;7 zc}syIK`gm;Q$A+AE@cD%f5W#asnObBRyZvazGn%(HfpPG6c2cWLBso#{$fkd(^exxa_Y z8y3dob6eiERcDd~>MvZRyXoKPvd&U$e+ufv6}YRGYpOtC2zC=*-PqqV_9kk|qLy+r zc5nCMcM039m}&g`ouVZybPP&S5ijTCn;9mYS!15;YB7Z?6eXTT9|Z!Lre6_Y2qd** zFY`=<=8Osyls^&yMI2DS!1M?3-3`z|iy|;Qbc)@ICKL&1c0L>eY?5iY6lLa6dDIAW zl%46+UdZtkNrxAt@`{HxtS9&-G93|6n2MdZb}l>rGRb+llxsDXm<|V;GBS+gh2<4?hiF zlca>8du4vrVJ7cPp1`SLsA;1I>^-OR45yUJ%1JGT|Ma$_KaS%1Mq2I2C(Q4H=1AgV zH7a4|Zf$t4&^~(^bfLK_BBN@AX=rK`jV3l(HdIJ{cm$TIypPkVI`}+pvFK8^axb-S zWGV3D;9J=S%=l2IXAp(68n*vE;SujhlqF%yQ^?`gvkURh0UiAc##3;Sy}&Gru-wt2 znRL7Gl~GzCmCz~jnC~6=mhoXm&Wj)2^pHV1ov>wKIpbs6+54{2>I%b`R4EU%kIhjA zr&lh_zCvCEO7F=+b+PM|Z~WPoQ-H=P#bL=0nG+alGpJ{Nuv_jQ>}C6ZY`t|&thA+TwXMoN%w0Ridm&P_^p=LP|31nK%7&U^Gd`uoOkIQR$H z&%;`C%{AveuRCh6`{#eRXA*u=n|WZW@HM$3**@nECKFmF5-JnglKC=?&*8!gQ!dE0 zy0fNLg2qIPcRhzt%OMh($W;lKsUi_mpY1mg<2gITdkW=dzgRGbP7Wde_;_J z$(L;$^=LM)UL(uAnI)=SB-w~Dx2ZYTfyUI5xB7(%mTZ?FIqi6%`xIP_;yW~&9K9a5 zhxStKPD55qb~9~~8hiSzTem;!_xctX%LAO$XNqL3fCNU5JA=pBdgiG#q1@~J>Vejp6lIdA?M^Mv&PTaDlgiQa}_ zQ3Y9ljA%EHB^T#J{-jl30j-7Y8O!nu;f9ECc$(!EXR2R?AKJg!fXRH-roGr_~dqKiUb=6rBR#)w#DQm@CSR@L-&X<%0?VI?Fo{Qg9T*W)R&zg&7lt+)t!dSx zVBv=`gBefiDN61Q4s`hkyHr#4zBV*})rjh}jAXsnTGrxRu7@n;%$2dw`NTX`3KlQ} z=I+h{O_A)Mq47&AU9u2>7|(4d>*EyGRf3Auw}w3QJg!U>Vo|dljJ6?pf@Ztnfrw_9 zy^Wb99SL{|M?h7f+7=$;9-vt}@tl9}f2_p|=ZkwAz)R0QHYW+}s?XM< zZZ(DKOI{8qTy9>wJlc((4aM438UP`kf!5_P*IDGp>y4Ldzqwo>V+3Nyj#udGhkPB7-;1J=@KA2@|!sDt#DkzCawL!z%91 zP1Gl1o8hF~PA>FutG-HSUr+_s`5~=W&bx&n+fO-!yM)lq{{-6ze!m*Nl#LsaFHu9N zH^_l_9)3DcEO3eX*!_?_QSU@Nw%~~+YiePv*`mHL0+u~kqk z9bzdJhtRoHeEpj7TxAcd>8o1&au@>oi%HR#+qUz;)VaAK8k*2&pU)SY0K?`~OU1{@ zu5GzB^tMxOpSpEk99DN54>sSRMXbl@5J$hkzQ7E-o+)zf#6qJ`*>G#n5E}R* z+~$vX5-mq~pf1x8Mp$(C9g_0isZ)T%azel%X8M}Atb#PhlSR+W2v0jsQDNMbRT{je zT^vwt=f`IRhO8Kj)_b9)g(I%2#COQ8C&*Rk=>nosn)z{xQq)yZ(k`pz(v>P!NYvo1@%mCb~ecl^@&<6Ux2zgLb zb5C{I{n{BDGAYC$qS<_|_h;ul;fF`^#8DaZO$xcGttxU!tT+uODqNk7tI+3^T`HVT zdPJ}KHG6P$Pz`Gm;iq{Cr9ahpLlg{yo$8vqb-f~2Qzow~m&Er=VIcZ>!4$1dVFFXx z)B2al+Sw;hdXj(<&oeBb6Ezdyx4lZKL(|JZ z`6Zw(XQij?jU-J0T*Orm=P494G-~(enxtDV&pfn`2Ut~f!ycW9HpaX-jyPda*Kn+tc zxRgVmB-V7F%beEL#Dp;EPizTM%}A&be%4a}3Yc281iz)xmGe|!IrZmox(3Ne2{!6* za!d>Zt3vYE1NE=kh1HZwEsezg#k11+BOQ}+wf=19**>enj|Il)NECdWYy;RJ`6Ht9w#)CY>_7N%) zDpxQg2OGQ2^(e(B7+m<;!Z9P5lKf3t$j6U(CWUe=n!{acvvTV^@&rcUcj8ddY@lZD z_ED`^Ni66Q31Coh)3@>%RPH1wxXr$9G^Hx3aE(^rx_{b0^S{H~kHM8lz>hpD@K8-T zlzz&tT&HHL%2oE>z|x+Pg7usWq`VrOl5(7-*K};D>IKq>`54X`pPh8$E`OsAt$1zi zn0hjR=pd?JpyZe(ImhpiklUx<;uEGzaSSq zp^iDnrArk9#J`qO$Qt<5KIXrcZsr=LoCssFgTIu~F)=rs%H7-L zOo>R))on-s3PDfiw`t@%wYm!kKgty(%2llat`iy zZ*3%Az|QH*86bZs2_(1gm{&7^8GILNRl|<=`xeW(5e8D;X}K)6-BCKXeld=DDiuKoL%VMY07lu#=C$q%Ht zDTCU1YI}5%JgrP+x|hA@bHvzsXy>*iq#7IPCXI=%i_PCBQ z%a_ToKJhhCM{4{L4{h8Wt4I)tUasJQ3TaaLL8XC+tnRJJQr7ifKllUlh;~)}hzG9DTqml< zjcao*N26kMSJxE&dulQw3)%KmPa#%Ek(|J>xg`#3)y!>WxjsAO%^Q)2sEzG>-*}9_ zZ$mtlUf7#w@!o)|-uYCZq3nUQpVEo_yGJBCMiuqBL3eriEWV+_%AO$GF7WIsr;as$ z)^)(6+Mt(ufTrKoa^P3Z)cM*@3O*45)j4dzCa$qh zig#yo!`%+2p|r20@(b-ZHU?a9Hr`X*t>4`GV_<`>=Y}PZr%H1isv3Q@@sNHx#xDi7B2tZ)&bT75CbC=UzHjTipVUtq4T!{ZxSxJb4SjtZ3LA$S%%A0f{ta&pr9UF-ZLMd+px3>) zUpEyi6sF(4-;RX|{gFT9M?xlD_l|z5=-$0`@8|@Q^1D=;VSzte$}LDf^XN52;Wa*o z++0xNX@co)Kg79eN3)`ejAvKTg@wxq0U1SiJC*3OAuS}i5-TBSVWyeR?&fD;5P?Kr zAotbh_IERLy|1q)P7U!u4Qao6e-Sv$%xhM6T%maRxpom4@eP+vOG{1dZ3T#YcY!?n z1h8$KkR+r=OE3~~8r8N3jL>hVNrv!23B}|gEH4EuU~D0w`)e7~1EOLrGRznW95pmu z+lP;hc%Bo?Ei}27HR_OYB}7-64oIXLkEE5fRajbD=CV8r0A2-s(?GGRYMS8Evk$YQ zhSPx2$;Yn&xa2T`F~`BJ-&mBW_O^s}u~&Fa`rRlhGqyre4Afc1>N1nDI@FA^m923L zGuqd_xKF+v1o(d#lAB48vzK*A)LwVKJOA{A`IoCwWcaua<;NIY)uZaFkgD12ZY;c2 zY!%$T zAc1tP&hvvHMK4bp)Vd2+k4y_X3_`FxS6>I(=gT1u{jukiD4hV!Q7k`Of-SP z(`C;H0Ffq={q>!6n@Gj->O8;#4IU8BL6q`j2US?X(13VizH5TNoGD#_EzN!(zPA47 zxcMJMNu=)si589ITow&KCz>-zoEBxV!)H^l+$A4|IE@7Yzzz8jvA>GxFEWsdR{=X2 z>T^A$;6}CN40~SrcmhxaS(mTLBUGRCzg~kcQU^Mv#bTG=E_PcWq6z|YR|g&enav=% z!D>BcZ*so8n;v^mCu*SnzYp^UCc1|LKuu>YfFalXwzvw&EI(+v!!HX`-j7cgM@#@( zc*=#%@UO5zE<89L%`6ra$Qkjq!dF)QguBph<~pCasH!ov@S@O5(H_kLi+Dlv5JB1dju%F z`Xk=JL}Cef6(FlSY<;oZ1>AY|IX(d zpMQtg|J^8$Wmt*=?^p4FvBwA%Z3aPq=CAVctnvhAjVE}W@MF;({2(#!y}!vd?6gX+ zk%6xB8(6szX5fPn_&+~&l@*r`pilKwXC{O)&1m6O+XF~ZCXD-nr-(xU=|R^FeHTS# zo#X#^RrFK8gwP>P;UNbZWs5 z3>Q2QpCuCJeK)Y*fiCstyt{#P3F#+Txmx|7^!h)IZ3udtybJ_6U|nS+7MH)XUM+qy zhw$!%A$+%9$|LEcOYK3h0D*qtg~$Jc;Q$PE(1P=C^18YG5${x$UVu|rzP@4=O=LKF z^M`@|pWnfTq%aD8U&vR9sB^;_5JtpRN*DpgB4GuHI2LG&5Q$LZ?a^m@Zy%wq{;f!X zL)Sv69S0)?Fy9d6czr|XG6Z^$YLWs1dQjLbc=2Po!;fIGb!?n}mxct8yifw=OtkQf z#Umu?IKZm{&^8S#3538bCe|vC(xK4*3}gP@4N<<2j{wVV3xM$@x6Y`(OR3^7#fo{!r;&q5CT^Q2Id-G$8G*@J*8W zpN^P7cmSLqKje`I9I`Z6$M&z#28Rx22OWj=Cn!*n3nFJ4H=tv;aX~%n`oXVbKiA49 z{u?=7;65Ue_N`y1+dzuc?8A6BqFStg&9S;=Y?K^ukfHuoF*`chGXax&VhvMyHU>oY_IX)*KK_lrM zb1JB``0s`3KWj{8njh5TCs*?_Va<0HlJjA%pF5~iJeaCll20eVzY_}m*Jb9h%xfiR z=4bdEZb~qy?=62WsTd?**uKyi?0EWyiic9QdaMHmS&jKSOu+e5DR&1^QC3n40xk(L zAN}Rk>3ehf8E^7b-%K6(ELPV8!qCo+^?%|(dl*dVNyO?ACp$Y}GY!N{jViV6hkVLR zoQQv~8L(y{`KJi zpc5n57iw1Eu$aSUq*oY~Bln^wyF0umzXw9R#b`XohFA^}t^D!XzY`bsn{WNUYg!Z? z%%VPT50HjP{r$zMC58ciVMx-);f{J$=tZWqD&(TQT>h`~pgYx<7CgxxodaDjP3yoS zJMV?K0kZYbT@_PW(jZ*W{6h)k-yA7FP<&#oapxtFR460UGUP4S>i|$AImS-{08^nB zCLgx@m`mpaaGogsvuEBSeG2R}Npo-tF6oBhgKQHRMmjR_I~f2wiU8#en!grnlboBC4>uJHOs)0DW5HM21i{Dj-|12N0XRBQhQ7#LUpwd*j zh}9>6ZG##_B84CH_5rXart(+df5Pv#xA#uF)gfo^^$IfqqgvF}=`O*Q(2>78zNn5K z7Zus3)pA|4*$Rk+WYMZGfT?zPQ>dG~C?pqb0fSiB%l@Aisg#d|4f+;^$IJ%GcqRVgGZqFp_A?#80Ln|JAFY#I8YH|? z_5XQ>|NMW^iw+oVuZP^9As4TaT~|OL1@_*+?7l=dgQ%?RSfcogZi%=b1qm5ylF7cK)fQ zO7xI2&@mBOv?|oq{BpOWm4V=wK8;)L8`hiKO-L%I+gaNT;2^@}Wh?y>ET76(==1{W zmnb)gK8%kM(RTjff)#W-;UCChe&Dg31sGUq4_~j$JvJH(!Rc>F!4GrHHI{xB&6& z;Uoem?Rs)>P~lR0C3e&6wB~^VtMaP_wSsmdCMMfuUuV2P9CdrVA?rmVW8$^!@obe_ zA1jCTFsQHJ;qh?7m`B@LKjSg@E5vm!!(JvBkdU+h-sublgxEl_i8z7|zcZ7ciU<=G z7(=RGYj`a$pBRgZ9kY_a%nJt)h3FMU&O&~PoW|+-DR}JKT(%XJ#eN9JPUe%Qn36MV z5z_D9!4#PXX2MO{qc}~M8c)px$|Nlb$O!sr<%7@mH_lS*qWEj9x01YvFR4rpt|>N& zBe|3S*JdF@WWEY>*9O>p(JM-wYWdkueZT+=23*S?#hT~8V$%yQ|#Zb=omT1p~ zk20FMjdS0vR8W1*lk~?3h#;Hq6F*;}t+AeB`nGL)xZL8f;mq6rDf#gIRw*FRxT!tL zLrB|7PkjW~WC_^bLRL0_z>7w5uL^~)$)wOAIseHRv{W#WJ5a;B{2X<%`J+aOmHOr0 zhX$1fha39E#iIo z6A8!#P8Tn=qA0~LDZdttAfzo$%?{0{bAYv#ZmHQhtU1q6;kb&#ElsYnZE>u| zNVZ%qkl!Y%+?b5*KKqYIXr9JE$(NEN*iadjxkbDa^OcZ9^~K+WxbgK0oVR~#?qKb z;mb*J$aXi?Mue^{N2#I6?4+ zW$&ALv;0fPlg**ypLyx%5}#~_0K2U1D{0IzW8ezWuJ(R7SzKL0t**&=|BKxK;U&O` zF&RiGS#Bj?dL5NWBVw~y(k%AhnvRJSpoV$0rv zuw|3OvQ8A)EULp}S9-9*Ua7spnfuyfLW{PX!k&mIyk1ml#akXbI^Y&&bNZQ^!{Wyr zUzf@lKFG91<`Hm=_n1mNo3jD#OX+TmV2Ama3Zs}3KvgI3p5aNG&CSoVJr`)+xkZxhht0H?hnGfZs(-O6(s%J0x=`riU)sN$EUr>1Jm%U4-IG( zNBMmii6f(@Hxs#|ay-;G22gGzC!5#E(!jLo_nO3Xq7Y&qP8t!R6}y4N0e32v7+`wK zy@@uW&2U)gn#nHZ&lT9OgX(A*mEzl6Co30GK;UX?Q!hq9XJib_9`>eXTx>%b}R3W>uy*f7-_>fK(GdZQ2ZJ4Z*V8c7xE)ys1!(b*KXnmqCu zqwnDuJN)(RxHB>W^GO%}a>~({7|jp7eL458HO-vXE)kZJijWsSgisbAsk5og>a0hs zMvdF&AegSLBg&$GgvWZvo}OJP>ldZyAF&>rl>KfFz)aU~-Jv296wYA3&@8bOPBe73 z5k*XXL~`2lNYC@~-u;?ks+iR6N3=AR(L%YsamK4H;}*c|#of8f-Q{TL>7kpW{l0u@ zJx9hpth@=)9H*^)VI^BV#TTW~g%R?g5pY+Y{VNsGV&Aag7x%ioC%FeYs$xkif)3;c>oo1SGn zEkyvJFpu~S09pY$Uv37eTjUS>aeBWVX5ExXj8xzEZW4k+UA^Sz2X%eQHVD?!rQzTa zk^E9MzxS_nKd8Lam?(hkDD+P1Sgn z2XFGpGAhSfj68BOZ)OlEJ`r{`eLF>O4b*eE1#LRw<|;GeYNmow4M+ zTV!2A@*A>L$s78fM^$DLU!wGj81>*%Et`loAm}E;hA15Ud1Lli~ zkN8iR9v(h8oJe>I0e7{b^2R#i4|(enl3i8}G}{HgeXOokX6 zggln%2(yt)WPp2%2p>OweD$mD`)5+y$qW{0tyPgnss>3+TLy5vIW;Ix?%HXE1Py|) zu~9;=(FxTctBr+c)JvzmdpS>YX+$pTDRq%`#E?-V_zJzu!?ET*mC7~=oNf>yjr
    #IC^bAXeE=WWr)i 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

    n2H~E+sKH0bCC|AGk-Hp__z{(w;vQ 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 mAWn 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 literal 0 HcmV?d00001 diff --git a/app/(tabs)/index.tsx b/app/(tabs)/index.tsx index 786b736..016d00b 100644 --- a/app/(tabs)/index.tsx +++ b/app/(tabs)/index.tsx @@ -1,98 +1,81 @@ -import { Image } from 'expo-image'; -import { Platform, StyleSheet } from 'react-native'; +import { FlatList, StyleSheet, useWindowDimensions } from "react-native"; +import { useSafeAreaInsets } from "react-native-safe-area-context"; -import { HelloWave } from '@/components/hello-wave'; -import ParallaxScrollView from '@/components/parallax-scroll-view'; -import { ThemedText } from '@/components/themed-text'; -import { ThemedView } from '@/components/themed-view'; -import { Link } from 'expo-router'; +import { Text } from "@/components/text"; +import { View } from "@/components/view"; +import { Colors } from "@/constants/theme"; +import { CoinRow } from "@/features/home/components/coin-row"; +import { HomeHero } from "@/features/home/components/home-hero"; +import { ListSectionHeader } from "@/features/home/components/list-section-header"; +import { APP_NAME, BTC_SYMBOL, COIN_ITEM_HEIGHT } from "@/features/home/config"; +import { useColorScheme } from "@/hooks/use-color-scheme"; +import { useCryptoListings } from "@/hooks/use-crypto-listings"; +import type { CmcCoin } from "@/types/cmc"; + +function keyExtractor(item: CmcCoin) { + return String(item.id); +} + +function getItemLayout( + _: ArrayLike | null | undefined, + index: number, +) { + return { + length: COIN_ITEM_HEIGHT, + offset: COIN_ITEM_HEIGHT * index, + index, + }; +} export default function HomeScreen() { - return ( - - }> - - Welcome! - - - - Step 1: Try it - - Edit app/(tabs)/index.tsx to see changes. - Press{' '} - - {Platform.select({ - ios: 'cmd + d', - android: 'cmd + m', - web: 'F12', - })} - {' '} - to open developer tools. - - - - - - Step 2: Explore - - - - alert('Action pressed')} /> - alert('Share pressed')} - /> - - alert('Delete pressed')} - /> - - - + const { height } = useWindowDimensions(); + const insets = useSafeAreaInsets(); + const colorScheme = useColorScheme(); + const colors = Colors[colorScheme ?? "light"]; + const { data: coins, isLoading, isError } = useCryptoListings(); + + const btc = coins?.find((c) => c.symbol === BTC_SYMBOL); - - {`Tap the Explore tab to learn more about what's included in this starter app.`} - - - - Step 3: Get a fresh start - - {`When you're ready, run `} - npm run reset-project to get a fresh{' '} - app directory. This will move the current{' '} - app to{' '} - app-example. - - - + function renderCoin({ item }: { item: CmcCoin }) { + return ; + } + + const listHeader = ( + + + {APP_NAME} + + + + + ); + + return ( + + listHeader} + getItemLayout={getItemLayout} + showsVerticalScrollIndicator={false} + contentContainerStyle={{ paddingBottom: insets.bottom + 16 }} + /> + ); } const styles = StyleSheet.create({ - titleContainer: { - flexDirection: 'row', - alignItems: 'center', - gap: 8, - }, - stepContainer: { - gap: 8, - marginBottom: 8, + container: { + flex: 1, }, - reactLogo: { - height: 178, - width: 290, - bottom: 0, - left: 0, - position: 'absolute', + header: { + alignItems: "center", + paddingBottom: 8, }, }); diff --git a/app/_layout.tsx b/app/_layout.tsx index f518c9b..70a37be 100644 --- a/app/_layout.tsx +++ b/app/_layout.tsx @@ -1,9 +1,11 @@ import { DarkTheme, DefaultTheme, ThemeProvider } from '@react-navigation/native'; +import { QueryClientProvider } from '@tanstack/react-query'; import { Stack } from 'expo-router'; import { StatusBar } from 'expo-status-bar'; import 'react-native-reanimated'; import { useColorScheme } from '@/hooks/use-color-scheme'; +import { queryClient } from '@/lib/query-client'; export const unstable_settings = { anchor: '(tabs)', @@ -13,12 +15,14 @@ export default function RootLayout() { const colorScheme = useColorScheme(); return ( - - - - - - - + + + + + + + + + ); } diff --git a/components/text.tsx b/components/text.tsx new file mode 100644 index 0000000..eecda06 --- /dev/null +++ b/components/text.tsx @@ -0,0 +1,62 @@ +import { StyleSheet, Text as RNText, type TextProps } from 'react-native'; + +import { useThemeColor } from '@/hooks/use-theme-color'; + +export type TextVariant = 'default' | 'title' | 'defaultSemiBold' | 'subtitle' | 'link'; + +export type ThemedTextProps = TextProps & { + lightColor?: string; + darkColor?: string; + type?: TextVariant; +}; + +export function Text({ + style, + lightColor, + darkColor, + type = 'default', + ...rest +}: ThemedTextProps) { + const color = useThemeColor({ light: lightColor, dark: darkColor }, 'text'); + + return ( + + ); +} + +const styles = StyleSheet.create({ + default: { + fontSize: 16, + lineHeight: 24, + }, + defaultSemiBold: { + fontSize: 16, + lineHeight: 24, + fontWeight: '600', + }, + title: { + fontSize: 32, + fontWeight: 'bold', + lineHeight: 32, + }, + subtitle: { + fontSize: 20, + fontWeight: 'bold', + }, + link: { + lineHeight: 30, + fontSize: 16, + color: '#0a7ea4', + }, +}); diff --git a/components/themed-text.tsx b/components/themed-text.tsx index d79d0a1..3ee3880 100644 --- a/components/themed-text.tsx +++ b/components/themed-text.tsx @@ -1,60 +1,2 @@ -import { StyleSheet, Text, type TextProps } from 'react-native'; - -import { useThemeColor } from '@/hooks/use-theme-color'; - -export type ThemedTextProps = TextProps & { - lightColor?: string; - darkColor?: string; - type?: 'default' | 'title' | 'defaultSemiBold' | 'subtitle' | 'link'; -}; - -export function ThemedText({ - style, - lightColor, - darkColor, - type = 'default', - ...rest -}: ThemedTextProps) { - const color = useThemeColor({ light: lightColor, dark: darkColor }, 'text'); - - return ( - - ); -} - -const styles = StyleSheet.create({ - default: { - fontSize: 16, - lineHeight: 24, - }, - defaultSemiBold: { - fontSize: 16, - lineHeight: 24, - fontWeight: '600', - }, - title: { - fontSize: 32, - fontWeight: 'bold', - lineHeight: 32, - }, - subtitle: { - fontSize: 20, - fontWeight: 'bold', - }, - link: { - lineHeight: 30, - fontSize: 16, - color: '#0a7ea4', - }, -}); +// Deprecated — use @/components/text instead +export { Text as ThemedText, type ThemedTextProps } from '@/components/text'; diff --git a/components/themed-view.tsx b/components/themed-view.tsx index 6f181d8..5839499 100644 --- a/components/themed-view.tsx +++ b/components/themed-view.tsx @@ -1,14 +1,2 @@ -import { View, type ViewProps } from 'react-native'; - -import { useThemeColor } from '@/hooks/use-theme-color'; - -export type ThemedViewProps = ViewProps & { - lightColor?: string; - darkColor?: string; -}; - -export function ThemedView({ style, lightColor, darkColor, ...otherProps }: ThemedViewProps) { - const backgroundColor = useThemeColor({ light: lightColor, dark: darkColor }, 'background'); - - return ; -} +// Deprecated — use @/components/view instead +export { View as ThemedView, type ThemedViewProps } from '@/components/view'; diff --git a/components/view.tsx b/components/view.tsx new file mode 100644 index 0000000..6210a62 --- /dev/null +++ b/components/view.tsx @@ -0,0 +1,14 @@ +import { View as RNView, type ViewProps } from 'react-native'; + +import { useThemeColor } from '@/hooks/use-theme-color'; + +export type ThemedViewProps = ViewProps & { + lightColor?: string; + darkColor?: string; +}; + +export function View({ style, lightColor, darkColor, ...otherProps }: ThemedViewProps) { + const backgroundColor = useThemeColor({ light: lightColor, dark: darkColor }, 'background'); + + return ; +} diff --git a/features/home/components/btc-hero.tsx b/features/home/components/btc-hero.tsx new file mode 100644 index 0000000..ae757fe --- /dev/null +++ b/features/home/components/btc-hero.tsx @@ -0,0 +1,68 @@ +import { StyleSheet, View } from "react-native"; + +import { Text } from "@/components/text"; +import { CHANGE_COLORS } from "@/features/home/config"; +import { formatChange, formatPrice } from "@/features/home/utils"; +import type { CmcCoin } from "@/types/cmc"; + +interface BtcHeroProps { + coin: CmcCoin | undefined; + isLoading: boolean; + isError: boolean; + height: number; +} + +export function BtcHero({ coin, isLoading, isError, height }: BtcHeroProps) { + if (isLoading) { + return ( + + Loading... + + ); + } + + if (isError) { + return ( + + Failed to load + + ); + } + + if (!coin) return null; + + const change = coin.quote.USD.percent_change_24h; + const changeColor = + change >= 0 ? CHANGE_COLORS.positive : CHANGE_COLORS.negative; + + return ( + + Bitcoin (BTC) + {formatPrice(coin.quote.USD.price)} + + {formatChange(change)} today + + + ); +} + +const styles = StyleSheet.create({ + btcHero: { + alignItems: "center", + justifyContent: "center", + gap: 4, + }, + heroLabel: { + fontSize: 16, + opacity: 0.6, + }, + heroPrice: { + fontSize: 48, + fontWeight: "bold", + lineHeight: 56, + }, + heroChange: { + fontSize: 18, + fontWeight: "600", + }, +}); diff --git a/features/home/components/coin-row.tsx b/features/home/components/coin-row.tsx new file mode 100644 index 0000000..a405302 --- /dev/null +++ b/features/home/components/coin-row.tsx @@ -0,0 +1,62 @@ +import { StyleSheet, View } from 'react-native'; + +import { Text } from '@/components/text'; +import { CHANGE_COLORS, COIN_ITEM_HEIGHT } from '@/features/home/config'; +import { formatChange, formatPrice } from '@/features/home/utils'; +import type { CmcCoin } from '@/types/cmc'; + +interface CoinRowProps { + coin: CmcCoin; +} + +export function CoinRow({ coin }: CoinRowProps) { + const change = coin.quote.USD.percent_change_24h; + const changeColor = change >= 0 ? CHANGE_COLORS.positive : CHANGE_COLORS.negative; + + return ( + + #{coin.cmc_rank} + + {coin.name} + {coin.symbol} + + + {formatPrice(coin.quote.USD.price)} + + {formatChange(change)} + + + + ); +} + +const styles = StyleSheet.create({ + coinRow: { + flexDirection: 'row', + alignItems: 'center', + paddingHorizontal: 16, + height: COIN_ITEM_HEIGHT, + gap: 12, + }, + rank: { + width: 36, + fontSize: 13, + opacity: 0.4, + }, + coinInfo: { + flex: 1, + gap: 2, + }, + symbol: { + fontSize: 13, + opacity: 0.5, + }, + coinPrices: { + alignItems: 'flex-end', + gap: 2, + }, + change: { + fontSize: 13, + fontWeight: '600', + }, +}); diff --git a/features/home/components/home-hero.tsx b/features/home/components/home-hero.tsx new file mode 100644 index 0000000..e6f4aa0 --- /dev/null +++ b/features/home/components/home-hero.tsx @@ -0,0 +1,67 @@ +import { StyleSheet, View } from 'react-native'; + +import { Text } from '@/components/text'; +import { CHANGE_COLORS } from '@/features/home/config'; +import { formatChange, formatPrice } from '@/features/home/utils'; +import type { CmcCoin } from '@/types/cmc'; + +interface HomeHeroProps { + coin: CmcCoin | undefined; + isLoading: boolean; + isError: boolean; + height: number; +} + +export function HomeHero({ coin, isLoading, isError, height }: HomeHeroProps) { + if (isLoading) { + return ( + + Loading... + + ); + } + + if (isError) { + return ( + + Failed to load + + ); + } + + if (!coin) return null; + + const change = coin.quote.USD.percent_change_24h; + const changeColor = change >= 0 ? CHANGE_COLORS.positive : CHANGE_COLORS.negative; + + return ( + + {coin.name} ({coin.symbol}) + {formatPrice(coin.quote.USD.price)} + + {formatChange(change)} today + + + ); +} + +const styles = StyleSheet.create({ + hero: { + alignItems: 'center', + justifyContent: 'center', + gap: 4, + }, + label: { + fontSize: 16, + opacity: 0.6, + }, + price: { + fontSize: 48, + fontWeight: 'bold', + lineHeight: 56, + }, + change: { + fontSize: 18, + fontWeight: '600', + }, +}); diff --git a/features/home/components/list-section-header.tsx b/features/home/components/list-section-header.tsx new file mode 100644 index 0000000..968aff1 --- /dev/null +++ b/features/home/components/list-section-header.tsx @@ -0,0 +1,30 @@ +import { StyleSheet, View } from 'react-native'; + +import { Text } from '@/components/text'; + +interface ListSectionHeaderProps { + borderColor: string; +} + +export function ListSectionHeader({ borderColor }: ListSectionHeaderProps) { + return ( + + All Cryptos + + ); +} + +const styles = StyleSheet.create({ + container: { + paddingHorizontal: 16, + paddingVertical: 12, + borderBottomWidth: StyleSheet.hairlineWidth, + }, + label: { + fontSize: 13, + fontWeight: '600', + opacity: 0.5, + textTransform: 'uppercase', + letterSpacing: 0.8, + }, +}); diff --git a/features/home/config.ts b/features/home/config.ts new file mode 100644 index 0000000..96ef0f7 --- /dev/null +++ b/features/home/config.ts @@ -0,0 +1,10 @@ +export const APP_NAME = 'CryptoTracker'; +export const BTC_SYMBOL = 'BTC'; +export const COIN_ITEM_HEIGHT = 64; + +export const CHANGE_COLORS = { + positive: '#22c55e', + negative: '#ef4444', +} as const; + +export type ChangeColor = (typeof CHANGE_COLORS)[keyof typeof CHANGE_COLORS]; diff --git a/features/home/utils.ts b/features/home/utils.ts new file mode 100644 index 0000000..b92512d --- /dev/null +++ b/features/home/utils.ts @@ -0,0 +1,12 @@ +export function formatPrice(price: number): string { + return new Intl.NumberFormat('en-US', { + style: 'currency', + currency: 'USD', + maximumFractionDigits: 2, + }).format(price); +} + +export function formatChange(change: number): string { + const sign = change >= 0 ? '+' : ''; + return `${sign}${change.toFixed(2)}%`; +} diff --git a/hooks/use-crypto-listings.ts b/hooks/use-crypto-listings.ts new file mode 100644 index 0000000..15b82dc --- /dev/null +++ b/hooks/use-crypto-listings.ts @@ -0,0 +1,15 @@ +import { useQuery } from '@tanstack/react-query'; + +import { fetchCryptoListings } from '@/lib/cmc-client'; + +const QUERY_KEYS = { + LISTINGS: ['crypto', 'listings'], +} as const; + +export function useCryptoListings() { + return useQuery({ + queryKey: QUERY_KEYS.LISTINGS, + queryFn: () => fetchCryptoListings(100), + select: (response) => response.data, + }); +} diff --git a/lib/cmc-client.ts b/lib/cmc-client.ts new file mode 100644 index 0000000..d18506b --- /dev/null +++ b/lib/cmc-client.ts @@ -0,0 +1,23 @@ +import type { CmcListingsResponse } from '@/types/cmc'; + +const CMC_BASE_URL = 'https://pro-api.coinmarketcap.com'; + +function getCmcHeaders(): HeadersInit { + return { + 'X-CMC_PRO_API_KEY': process.env.EXPO_PUBLIC_CMC_API_KEY, + Accept: 'application/json', + }; +} + +export async function fetchCryptoListings(limit = 100): Promise { + const url = new URL(`${CMC_BASE_URL}/v1/cryptocurrency/listings/latest`); + url.searchParams.set('limit', String(limit)); + + const response = await fetch(url.toString(), { headers: getCmcHeaders() }); + + if (!response.ok) { + throw new Error(`CMC API error: ${response.status} ${response.statusText}`); + } + + return response.json() as Promise; +} diff --git a/lib/query-client.ts b/lib/query-client.ts new file mode 100644 index 0000000..b73e800 --- /dev/null +++ b/lib/query-client.ts @@ -0,0 +1,12 @@ +import { QueryClient } from '@tanstack/react-query'; + +export const queryClient = new QueryClient({ + defaultOptions: { + queries: { + staleTime: 1000 * 60, // 1 minute + gcTime: 1000 * 60 * 10, // 10 minutes + retry: 2, + refetchOnWindowFocus: false, + }, + }, +}); diff --git a/package-lock.json b/package-lock.json index 378cd7b..dcfccc6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "@react-navigation/bottom-tabs": "^7.4.0", "@react-navigation/elements": "^2.6.3", "@react-navigation/native": "^7.1.8", + "@tanstack/react-query": "^5.95.2", "expo": "~54.0.33", "expo-constants": "~18.0.13", "expo-font": "~14.0.11", @@ -2893,6 +2894,30 @@ "@sinonjs/commons": "^3.0.0" } }, + "node_modules/@tanstack/query-core": { + "version": "5.95.2", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.95.2.tgz", + "integrity": "sha512-o4T8vZHZET4Bib3jZ/tCW9/7080urD4c+0/AUaYVpIqOsr7y0reBc1oX3ttNaSW5mYyvZHctiQ/UOP2PfdmFEQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/react-query": { + "version": "5.95.2", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.95.2.tgz", + "integrity": "sha512-/wGkvLj/st5Ud1Q76KF1uFxScV7WeqN1slQx5280ycwAyYkIPGaRZAEgHxe3bjirSd5Zpwkj6zNcR4cqYni/ZA==", + "dependencies": { + "@tanstack/query-core": "5.95.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^18 || ^19" + } + }, "node_modules/@tybys/wasm-util": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", @@ -13862,6 +13887,19 @@ "@sinonjs/commons": "^3.0.0" } }, + "@tanstack/query-core": { + "version": "5.95.2", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.95.2.tgz", + "integrity": "sha512-o4T8vZHZET4Bib3jZ/tCW9/7080urD4c+0/AUaYVpIqOsr7y0reBc1oX3ttNaSW5mYyvZHctiQ/UOP2PfdmFEQ==" + }, + "@tanstack/react-query": { + "version": "5.95.2", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.95.2.tgz", + "integrity": "sha512-/wGkvLj/st5Ud1Q76KF1uFxScV7WeqN1slQx5280ycwAyYkIPGaRZAEgHxe3bjirSd5Zpwkj6zNcR4cqYni/ZA==", + "requires": { + "@tanstack/query-core": "5.95.2" + } + }, "@tybys/wasm-util": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", diff --git a/package.json b/package.json index d5e3291..8f9076b 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "@react-navigation/bottom-tabs": "^7.4.0", "@react-navigation/elements": "^2.6.3", "@react-navigation/native": "^7.1.8", + "@tanstack/react-query": "^5.95.2", "expo": "~54.0.33", "expo-constants": "~18.0.13", "expo-font": "~14.0.11", @@ -31,17 +32,17 @@ "react-dom": "19.1.0", "react-native": "0.81.5", "react-native-gesture-handler": "~2.28.0", - "react-native-worklets": "0.5.1", "react-native-reanimated": "~4.1.1", "react-native-safe-area-context": "~5.6.0", "react-native-screens": "~4.16.0", - "react-native-web": "~0.21.0" + "react-native-web": "~0.21.0", + "react-native-worklets": "0.5.1" }, "devDependencies": { "@types/react": "~19.1.0", - "typescript": "~5.9.2", "eslint": "^9.25.0", - "eslint-config-expo": "~10.0.0" + "eslint-config-expo": "~10.0.0", + "typescript": "~5.9.2" }, "private": true } diff --git a/types/cmc.ts b/types/cmc.ts new file mode 100644 index 0000000..7f35ef4 --- /dev/null +++ b/types/cmc.ts @@ -0,0 +1,40 @@ +export interface CmcStatus { + timestamp: string; + error_code: number; + error_message: string | null; + elapsed: number; + credit_count: number; +} + +export interface CmcQuoteUsd { + price: number; + volume_24h: number; + percent_change_1h: number; + percent_change_24h: number; + percent_change_7d: number; + market_cap: number; + last_updated: string; +} + +export interface CmcCoinQuote { + USD: CmcQuoteUsd; +} + +export interface CmcCoin { + id: number; + name: string; + symbol: string; + slug: string; + cmc_rank: number; + circulating_supply: number; + total_supply: number; + max_supply: number | null; + last_updated: string; + date_added: string; + quote: CmcCoinQuote; +} + +export interface CmcListingsResponse { + status: CmcStatus; + data: CmcCoin[]; +} diff --git a/types/env.d.ts b/types/env.d.ts new file mode 100644 index 0000000..6fff4d0 --- /dev/null +++ b/types/env.d.ts @@ -0,0 +1,5 @@ +declare namespace NodeJS { + interface ProcessEnv { + readonly EXPO_PUBLIC_CMC_API_KEY: string; + } +} From 9d8c5de0cb1c7933b068d6c249097b43a6996fa1 Mon Sep 17 00:00:00 2001 From: "claude[bot]" <41898282+claude[bot]@users.noreply.github.com> Date: Tue, 31 Mar 2026 10:31:19 +0000 Subject: [PATCH 02/13] chore: delete unused btc-hero component Co-authored-by: edug --- features/home/components/btc-hero.tsx | 68 --------------------------- 1 file changed, 68 deletions(-) delete mode 100644 features/home/components/btc-hero.tsx diff --git a/features/home/components/btc-hero.tsx b/features/home/components/btc-hero.tsx deleted file mode 100644 index ae757fe..0000000 --- a/features/home/components/btc-hero.tsx +++ /dev/null @@ -1,68 +0,0 @@ -import { StyleSheet, View } from "react-native"; - -import { Text } from "@/components/text"; -import { CHANGE_COLORS } from "@/features/home/config"; -import { formatChange, formatPrice } from "@/features/home/utils"; -import type { CmcCoin } from "@/types/cmc"; - -interface BtcHeroProps { - coin: CmcCoin | undefined; - isLoading: boolean; - isError: boolean; - height: number; -} - -export function BtcHero({ coin, isLoading, isError, height }: BtcHeroProps) { - if (isLoading) { - return ( - - Loading... - - ); - } - - if (isError) { - return ( - - Failed to load - - ); - } - - if (!coin) return null; - - const change = coin.quote.USD.percent_change_24h; - const changeColor = - change >= 0 ? CHANGE_COLORS.positive : CHANGE_COLORS.negative; - - return ( - - Bitcoin (BTC) - {formatPrice(coin.quote.USD.price)} - - {formatChange(change)} today - - - ); -} - -const styles = StyleSheet.create({ - btcHero: { - alignItems: "center", - justifyContent: "center", - gap: 4, - }, - heroLabel: { - fontSize: 16, - opacity: 0.6, - }, - heroPrice: { - fontSize: 48, - fontWeight: "bold", - lineHeight: 56, - }, - heroChange: { - fontSize: 18, - fontWeight: "600", - }, -}); From 6af02c87a386c7260b3180bdc94efdfb3f992c0e Mon Sep 17 00:00:00 2001 From: "claude[bot]" <41898282+claude[bot]@users.noreply.github.com> Date: Tue, 31 Mar 2026 10:36:38 +0000 Subject: [PATCH 03/13] refactor: replace ThemedText with Text component and delete deprecated file Co-authored-by: edug --- app/(tabs)/explore.tsx | 64 +++++++++++++++++------------------ app/modal.tsx | 6 ++-- components/themed-text.tsx | 2 -- components/ui/collapsible.tsx | 4 +-- 4 files changed, 37 insertions(+), 39 deletions(-) delete mode 100644 components/themed-text.tsx diff --git a/app/(tabs)/explore.tsx b/app/(tabs)/explore.tsx index 71518f9..22407f5 100644 --- a/app/(tabs)/explore.tsx +++ b/app/(tabs)/explore.tsx @@ -4,7 +4,7 @@ import { Platform, StyleSheet } from 'react-native'; import { Collapsible } from '@/components/ui/collapsible'; import { ExternalLink } from '@/components/external-link'; import ParallaxScrollView from '@/components/parallax-scroll-view'; -import { ThemedText } from '@/components/themed-text'; +import { Text } from '@/components/text'; import { ThemedView } from '@/components/themed-view'; import { IconSymbol } from '@/components/ui/icon-symbol'; import { Fonts } from '@/constants/theme'; @@ -22,75 +22,75 @@ export default function TabTwoScreen() { /> }> - Explore - + - This app includes example code to help you get started. + This app includes example code to help you get started. - + This app has two screens:{' '} - app/(tabs)/index.tsx and{' '} - app/(tabs)/explore.tsx - - - The layout file in app/(tabs)/_layout.tsx{' '} + app/(tabs)/index.tsx and{' '} + app/(tabs)/explore.tsx + + + The layout file in app/(tabs)/_layout.tsx{' '} sets up the tab navigator. - + - Learn more + Learn more - + You can open this project on Android, iOS, and the web. To open the web version, press{' '} - w in the terminal running this project. - + w in the terminal running this project. + - - For static images, you can use the @2x and{' '} - @3x suffixes to provide files for + + For static images, you can use the @2x and{' '} + @3x suffixes to provide files for different screen densities - + - Learn more + Learn more - + This template has light and dark mode support. The{' '} - useColorScheme() hook lets you inspect + useColorScheme() hook lets you inspect what the user's current color scheme is, and so you can adjust UI colors accordingly. - + - Learn more + Learn more - + This template includes an example of an animated component. The{' '} - components/HelloWave.tsx component uses + components/HelloWave.tsx component uses the powerful{' '} - + react-native-reanimated - {' '} + {' '} library to create a waving hand animation. - + {Platform.select({ ios: ( - - The components/ParallaxScrollView.tsx{' '} + + The components/ParallaxScrollView.tsx{' '} component provides a parallax effect for the header image. - + ), })} diff --git a/app/modal.tsx b/app/modal.tsx index 6dfbc1a..2c53f92 100644 --- a/app/modal.tsx +++ b/app/modal.tsx @@ -1,15 +1,15 @@ import { Link } from 'expo-router'; import { StyleSheet } from 'react-native'; -import { ThemedText } from '@/components/themed-text'; +import { Text } from '@/components/text'; import { ThemedView } from '@/components/themed-view'; export default function ModalScreen() { return ( - This is a modal + This is a modal - Go to home screen + Go to home screen ); diff --git a/components/themed-text.tsx b/components/themed-text.tsx deleted file mode 100644 index 3ee3880..0000000 --- a/components/themed-text.tsx +++ /dev/null @@ -1,2 +0,0 @@ -// Deprecated — use @/components/text instead -export { Text as ThemedText, type ThemedTextProps } from '@/components/text'; diff --git a/components/ui/collapsible.tsx b/components/ui/collapsible.tsx index 6345fde..84f060f 100644 --- a/components/ui/collapsible.tsx +++ b/components/ui/collapsible.tsx @@ -1,7 +1,7 @@ import { PropsWithChildren, useState } from 'react'; import { StyleSheet, TouchableOpacity } from 'react-native'; -import { ThemedText } from '@/components/themed-text'; +import { Text } from '@/components/text'; import { ThemedView } from '@/components/themed-view'; import { IconSymbol } from '@/components/ui/icon-symbol'; import { Colors } from '@/constants/theme'; @@ -25,7 +25,7 @@ export function Collapsible({ children, title }: PropsWithChildren & { title: st style={{ transform: [{ rotate: isOpen ? '90deg' : '0deg' }] }} /> - {title} + {title} {isOpen && {children}} From 983d6eeb2115509d78330e8a70d8e23dffc9672b Mon Sep 17 00:00:00 2001 From: edug Date: Tue, 31 Mar 2026 12:22:35 +0200 Subject: [PATCH 04/13] "Update Claude PR Assistant workflow" --- .github/workflows/claude.yml | 87 ++++++++++++++++++++---------------- 1 file changed, 49 insertions(+), 38 deletions(-) diff --git a/.github/workflows/claude.yml b/.github/workflows/claude.yml index faa1c6c..d300267 100644 --- a/.github/workflows/claude.yml +++ b/.github/workflows/claude.yml @@ -1,39 +1,50 @@ - name: Claude Code - - on: - issue_comment: - types: [created] - pull_request_review_comment: - types: [created] - issues: - types: [opened, assigned] - pull_request_review: - types: [submitted] +name: Claude Code + +on: + issue_comment: + types: [created] + pull_request_review_comment: + types: [created] + issues: + types: [opened, assigned] + pull_request_review: + types: [submitted] + +jobs: + claude: + if: | + (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) || + (github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) || + (github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) || + (github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude'))) + runs-on: ubuntu-latest + permissions: + contents: read + pull-requests: read + issues: read + id-token: write + actions: read # Required for Claude to read CI results on PRs + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 1 + + - name: Run Claude Code + id: claude + uses: anthropics/claude-code-action@v1 + with: + claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} + + # This is an optional setting that allows Claude to read CI results on PRs + additional_permissions: | + actions: read + + # Optional: Give a custom prompt to Claude. If this is not specified, Claude will perform the instructions specified in the comment that tagged it. + # prompt: 'Update the pull request description to include a summary of changes.' + + # Optional: Add claude_args to customize behavior and configuration + # See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md + # or https://code.claude.com/docs/en/cli-reference for available options + # claude_args: '--allowed-tools Bash(gh pr:*)' - jobs: - claude: - if: | - (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) || - (github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) || - (github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) || - (github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude'))) - runs-on: ubuntu-latest - permissions: - contents: write - issues: write - pull-requests: write - id-token: write - actions: read # Required for Claude to read CI results on PRs - steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - token: ${{ secrets.GITHUB_TOKEN }} - fetch-depth: 0 - - - name: Run Claude Code - id: claude - uses: anthropics/claude-code-action@beta - with: - anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }} - github_token: ${{ secrets.GITHUB_TOKEN }} From 0574b573078c2ea09ff355e47a5d77da96f14642 Mon Sep 17 00:00:00 2001 From: edug Date: Tue, 31 Mar 2026 12:22:37 +0200 Subject: [PATCH 05/13] "Claude Code Review workflow" --- .github/workflows/claude-code-review.yml | 44 ++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 .github/workflows/claude-code-review.yml diff --git a/.github/workflows/claude-code-review.yml b/.github/workflows/claude-code-review.yml new file mode 100644 index 0000000..b5e8cfd --- /dev/null +++ b/.github/workflows/claude-code-review.yml @@ -0,0 +1,44 @@ +name: Claude Code Review + +on: + pull_request: + types: [opened, synchronize, ready_for_review, reopened] + # Optional: Only run on specific file changes + # paths: + # - "src/**/*.ts" + # - "src/**/*.tsx" + # - "src/**/*.js" + # - "src/**/*.jsx" + +jobs: + claude-review: + # Optional: Filter by PR author + # if: | + # github.event.pull_request.user.login == 'external-contributor' || + # github.event.pull_request.user.login == 'new-developer' || + # github.event.pull_request.author_association == 'FIRST_TIME_CONTRIBUTOR' + + runs-on: ubuntu-latest + permissions: + contents: read + pull-requests: read + issues: read + id-token: write + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 1 + + - name: Run Claude Code Review + id: claude-review + uses: anthropics/claude-code-action@v1 + with: + claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} + plugin_marketplaces: 'https://github.com/anthropics/claude-code.git' + plugins: 'code-review@claude-code-plugins' + prompt: '/code-review:code-review ${{ github.repository }}/pull/${{ github.event.pull_request.number }}' + # See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md + # or https://code.claude.com/docs/en/cli-reference for available options + From 4117e1fb5f81b70286aa8f87ab61412d1a93f7a0 Mon Sep 17 00:00:00 2001 From: edug Date: Tue, 31 Mar 2026 13:31:52 +0200 Subject: [PATCH 06/13] Add allowed_bots parameter to Claude Code Review --- .github/workflows/claude-code-review.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/claude-code-review.yml b/.github/workflows/claude-code-review.yml index b5e8cfd..5831efb 100644 --- a/.github/workflows/claude-code-review.yml +++ b/.github/workflows/claude-code-review.yml @@ -35,6 +35,7 @@ jobs: id: claude-review uses: anthropics/claude-code-action@v1 with: + allowed_bots: "*" claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} plugin_marketplaces: 'https://github.com/anthropics/claude-code.git' plugins: 'code-review@claude-code-plugins' From 3f1c068929c515bc7d262d05ff70596fd153bd5d Mon Sep 17 00:00:00 2001 From: edug Date: Tue, 31 Mar 2026 13:41:43 +0200 Subject: [PATCH 07/13] Add allowed_bots parameter to Claude workflow --- .github/workflows/claude.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/claude.yml b/.github/workflows/claude.yml index d300267..7ef16ec 100644 --- a/.github/workflows/claude.yml +++ b/.github/workflows/claude.yml @@ -34,6 +34,7 @@ jobs: id: claude uses: anthropics/claude-code-action@v1 with: + allowed_bots: "*" claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} # This is an optional setting that allows Claude to read CI results on PRs From ceb29aba7780f3c1cd5e2ba67601aa836f641e27 Mon Sep 17 00:00:00 2001 From: "claude[bot]" <41898282+claude[bot]@users.noreply.github.com> Date: Tue, 31 Mar 2026 13:27:05 +0000 Subject: [PATCH 08/13] refactor: replace ThemedView with View and delete deprecated themed-view.tsx Co-authored-by: edug --- app/(tabs)/explore.tsx | 6 +++--- app/modal.tsx | 6 +++--- components/parallax-scroll-view.tsx | 4 ++-- components/themed-view.tsx | 2 -- components/ui/collapsible.tsx | 8 ++++---- 5 files changed, 12 insertions(+), 14 deletions(-) delete mode 100644 components/themed-view.tsx diff --git a/app/(tabs)/explore.tsx b/app/(tabs)/explore.tsx index 22407f5..40c5657 100644 --- a/app/(tabs)/explore.tsx +++ b/app/(tabs)/explore.tsx @@ -5,7 +5,7 @@ import { Collapsible } from '@/components/ui/collapsible'; import { ExternalLink } from '@/components/external-link'; import ParallaxScrollView from '@/components/parallax-scroll-view'; import { Text } from '@/components/text'; -import { ThemedView } from '@/components/themed-view'; +import { View } from '@/components/view'; import { IconSymbol } from '@/components/ui/icon-symbol'; import { Fonts } from '@/constants/theme'; @@ -21,7 +21,7 @@ export default function TabTwoScreen() { style={styles.headerImage} /> }> - + Explore - + This app includes example code to help you get started. diff --git a/app/modal.tsx b/app/modal.tsx index 2c53f92..06cfd64 100644 --- a/app/modal.tsx +++ b/app/modal.tsx @@ -2,16 +2,16 @@ import { Link } from 'expo-router'; import { StyleSheet } from 'react-native'; import { Text } from '@/components/text'; -import { ThemedView } from '@/components/themed-view'; +import { View } from '@/components/view'; export default function ModalScreen() { return ( - + This is a modal Go to home screen - + ); } diff --git a/components/parallax-scroll-view.tsx b/components/parallax-scroll-view.tsx index 6f674a7..459fcb1 100644 --- a/components/parallax-scroll-view.tsx +++ b/components/parallax-scroll-view.tsx @@ -7,7 +7,7 @@ import Animated, { useScrollOffset, } from 'react-native-reanimated'; -import { ThemedView } from '@/components/themed-view'; +import { View } from '@/components/view'; import { useColorScheme } from '@/hooks/use-color-scheme'; import { useThemeColor } from '@/hooks/use-theme-color'; @@ -57,7 +57,7 @@ export default function ParallaxScrollView({ ]}> {headerImage} - {children} + {children} ); } diff --git a/components/themed-view.tsx b/components/themed-view.tsx deleted file mode 100644 index 5839499..0000000 --- a/components/themed-view.tsx +++ /dev/null @@ -1,2 +0,0 @@ -// Deprecated — use @/components/view instead -export { View as ThemedView, type ThemedViewProps } from '@/components/view'; diff --git a/components/ui/collapsible.tsx b/components/ui/collapsible.tsx index 84f060f..eb24033 100644 --- a/components/ui/collapsible.tsx +++ b/components/ui/collapsible.tsx @@ -2,7 +2,7 @@ import { PropsWithChildren, useState } from 'react'; import { StyleSheet, TouchableOpacity } from 'react-native'; import { Text } from '@/components/text'; -import { ThemedView } from '@/components/themed-view'; +import { View } from '@/components/view'; import { IconSymbol } from '@/components/ui/icon-symbol'; import { Colors } from '@/constants/theme'; import { useColorScheme } from '@/hooks/use-color-scheme'; @@ -12,7 +12,7 @@ export function Collapsible({ children, title }: PropsWithChildren & { title: st const theme = useColorScheme() ?? 'light'; return ( - + setIsOpen((value) => !value)} @@ -27,8 +27,8 @@ export function Collapsible({ children, title }: PropsWithChildren & { title: st {title} - {isOpen && {children}} - + {isOpen && {children}} + ); } From de2794169113ac4d4b04a60606fcf9283861356a Mon Sep 17 00:00:00 2001 From: Edu Date: Tue, 31 Mar 2026 20:08:17 +0200 Subject: [PATCH 09/13] fix(home): api key validation, themed view consistency, arrow function helpers --- .claude/skills/react/SKILL.md | 43 ++++++++++++++++++++++++++ app/(tabs)/index.tsx | 4 +-- features/home/components/coin-row.tsx | 4 ++- features/home/components/home-hero.tsx | 4 ++- lib/cmc-client.ts | 17 +++++----- 5 files changed, 60 insertions(+), 12 deletions(-) diff --git a/.claude/skills/react/SKILL.md b/.claude/skills/react/SKILL.md index 5f00b4d..2ea8207 100644 --- a/.claude/skills/react/SKILL.md +++ b/.claude/skills/react/SKILL.md @@ -29,6 +29,49 @@ const handlePress = useCallback((id) => router.push(`/coin/${id}`), []); **Exception**: only add manual memoization if you have a profiler trace proving it's needed. +## Library Memoization Recommendations (TanStack Query, etc.) + +Some libraries recommend wrapping callbacks in `useCallback` for referential stability. +A common example is TanStack Query's `select` option: + +```typescript +// What TanStack docs recommend in projects WITHOUT React Compiler: +useQuery({ + queryKey: ['coins'], + queryFn: fetchCoins, + select: useCallback((data) => data.filter((c) => c.rank <= 10), []), +}); + +// ✅ What to do in THIS project (React Compiler enabled): +useQuery({ + queryKey: ['coins'], + queryFn: fetchCoins, + select: (data) => data.filter((c) => c.rank <= 10), +}); +``` + +React Compiler automatically stabilizes the function identity — manual `useCallback` is redundant. +**If this project ever disables React Compiler**, add `useCallback` back to all `select`, `onSuccess`, +and similar library callbacks that depend on referential stability. + +## Arrow Functions for Component Helpers (REQUIRED) + +Use arrow functions for all helper functions defined inside or alongside components — render callbacks, event handlers, formatters. Never use `function` declarations for these. + +```typescript +// ✅ Arrow function for render callbacks and helpers +const renderItem = ({ item }: { item: Coin }) => ; + +const handlePress = (id: string) => router.push(`/coin/${id}`); + +// ❌ NEVER: function declaration for component helpers +function renderItem({ item }: { item: Coin }) { + return ; +} +``` + +**Exception**: top-level exported components may use either style — this rule applies to helpers and callbacks, not to the component function itself. + ## Imports (REQUIRED) ```typescript diff --git a/app/(tabs)/index.tsx b/app/(tabs)/index.tsx index 016d00b..ab43b40 100644 --- a/app/(tabs)/index.tsx +++ b/app/(tabs)/index.tsx @@ -36,9 +36,7 @@ export default function HomeScreen() { const btc = coins?.find((c) => c.symbol === BTC_SYMBOL); - function renderCoin({ item }: { item: CmcCoin }) { - return ; - } + const renderCoin = ({ item }: { item: CmcCoin }) => ; const listHeader = ( diff --git a/features/home/components/coin-row.tsx b/features/home/components/coin-row.tsx index a405302..e870182 100644 --- a/features/home/components/coin-row.tsx +++ b/features/home/components/coin-row.tsx @@ -1,4 +1,6 @@ -import { StyleSheet, View } from 'react-native'; +import { StyleSheet } from 'react-native'; + +import { View } from '@/components/view'; import { Text } from '@/components/text'; import { CHANGE_COLORS, COIN_ITEM_HEIGHT } from '@/features/home/config'; diff --git a/features/home/components/home-hero.tsx b/features/home/components/home-hero.tsx index e6f4aa0..d00407a 100644 --- a/features/home/components/home-hero.tsx +++ b/features/home/components/home-hero.tsx @@ -1,4 +1,6 @@ -import { StyleSheet, View } from 'react-native'; +import { StyleSheet } from 'react-native'; + +import { View } from '@/components/view'; import { Text } from '@/components/text'; import { CHANGE_COLORS } from '@/features/home/config'; diff --git a/lib/cmc-client.ts b/lib/cmc-client.ts index d18506b..8aa9cb1 100644 --- a/lib/cmc-client.ts +++ b/lib/cmc-client.ts @@ -1,15 +1,18 @@ import type { CmcListingsResponse } from '@/types/cmc'; const CMC_BASE_URL = 'https://pro-api.coinmarketcap.com'; +const CMC_API_KEY = process.env.EXPO_PUBLIC_CMC_API_KEY; -function getCmcHeaders(): HeadersInit { - return { - 'X-CMC_PRO_API_KEY': process.env.EXPO_PUBLIC_CMC_API_KEY, - Accept: 'application/json', - }; +if (!CMC_API_KEY) { + throw new Error('[cmc-client] EXPO_PUBLIC_CMC_API_KEY is not defined. Add it to your .env file.'); } -export async function fetchCryptoListings(limit = 100): Promise { +const getCmcHeaders = (): HeadersInit => ({ + 'X-CMC_PRO_API_KEY': CMC_API_KEY, + Accept: 'application/json', +}); + +export const fetchCryptoListings = async (limit = 100): Promise => { const url = new URL(`${CMC_BASE_URL}/v1/cryptocurrency/listings/latest`); url.searchParams.set('limit', String(limit)); @@ -20,4 +23,4 @@ export async function fetchCryptoListings(limit = 100): Promise; -} +}; From 41e21cb311428f1dc95375cb3b39d2fe0d0067dc Mon Sep 17 00:00:00 2001 From: Edu Date: Tue, 31 Mar 2026 21:53:11 +0200 Subject: [PATCH 10/13] feat(home): add coin logos with MMKV-persisted URL cache --- app/(tabs)/index.tsx | 8 ++++- features/home/components/coin-logo.tsx | 23 ++++++++++++++ features/home/components/coin-row.tsx | 6 ++-- features/home/components/home-hero.tsx | 6 ++-- hooks/use-coin-logos.ts | 27 ++++++++++++++++ lib/cmc-client.ts | 15 ++++++++- lib/logo-cache.ts | 26 +++++++++++++++ package-lock.json | 44 ++++++++++++++++++++++---- package.json | 1 + types/cmc.ts | 13 ++++++++ 10 files changed, 156 insertions(+), 13 deletions(-) create mode 100644 features/home/components/coin-logo.tsx create mode 100644 hooks/use-coin-logos.ts create mode 100644 lib/logo-cache.ts diff --git a/app/(tabs)/index.tsx b/app/(tabs)/index.tsx index ab43b40..163ba95 100644 --- a/app/(tabs)/index.tsx +++ b/app/(tabs)/index.tsx @@ -9,6 +9,7 @@ import { HomeHero } from "@/features/home/components/home-hero"; import { ListSectionHeader } from "@/features/home/components/list-section-header"; import { APP_NAME, BTC_SYMBOL, COIN_ITEM_HEIGHT } from "@/features/home/config"; import { useColorScheme } from "@/hooks/use-color-scheme"; +import { useCoinLogos } from "@/hooks/use-coin-logos"; import { useCryptoListings } from "@/hooks/use-crypto-listings"; import type { CmcCoin } from "@/types/cmc"; @@ -33,10 +34,14 @@ export default function HomeScreen() { const colorScheme = useColorScheme(); const colors = Colors[colorScheme ?? "light"]; const { data: coins, isLoading, isError } = useCryptoListings(); + const ids = coins?.map((c) => c.id) ?? []; + const logoMap = useCoinLogos(ids); const btc = coins?.find((c) => c.symbol === BTC_SYMBOL); - const renderCoin = ({ item }: { item: CmcCoin }) => ; + const renderCoin = ({ item }: { item: CmcCoin }) => ( + + ); const listHeader = ( @@ -48,6 +53,7 @@ export default function HomeScreen() { isLoading={isLoading} isError={isError} height={height} + logoUrl={btc ? logoMap[btc.id] : undefined} /> diff --git a/features/home/components/coin-logo.tsx b/features/home/components/coin-logo.tsx new file mode 100644 index 0000000..32019e0 --- /dev/null +++ b/features/home/components/coin-logo.tsx @@ -0,0 +1,23 @@ +import { Image } from 'expo-image'; +import { StyleSheet } from 'react-native'; + +interface CoinLogoProps { + uri?: string; + size?: number; +} + +export const CoinLogo = ({ uri, size = 32 }: CoinLogoProps) => ( + +); + +const styles = StyleSheet.create({ + logo: { + backgroundColor: '#E5E7EB', + }, +}); diff --git a/features/home/components/coin-row.tsx b/features/home/components/coin-row.tsx index e870182..c05af8b 100644 --- a/features/home/components/coin-row.tsx +++ b/features/home/components/coin-row.tsx @@ -1,23 +1,25 @@ import { StyleSheet } from 'react-native'; import { View } from '@/components/view'; - import { Text } from '@/components/text'; +import { CoinLogo } from '@/features/home/components/coin-logo'; import { CHANGE_COLORS, COIN_ITEM_HEIGHT } from '@/features/home/config'; import { formatChange, formatPrice } from '@/features/home/utils'; import type { CmcCoin } from '@/types/cmc'; interface CoinRowProps { coin: CmcCoin; + logoUrl?: string; } -export function CoinRow({ coin }: CoinRowProps) { +export function CoinRow({ coin, logoUrl }: CoinRowProps) { const change = coin.quote.USD.percent_change_24h; const changeColor = change >= 0 ? CHANGE_COLORS.positive : CHANGE_COLORS.negative; return ( #{coin.cmc_rank} + {coin.name} {coin.symbol} diff --git a/features/home/components/home-hero.tsx b/features/home/components/home-hero.tsx index d00407a..2f88a94 100644 --- a/features/home/components/home-hero.tsx +++ b/features/home/components/home-hero.tsx @@ -1,8 +1,8 @@ import { StyleSheet } from 'react-native'; import { View } from '@/components/view'; - import { Text } from '@/components/text'; +import { CoinLogo } from '@/features/home/components/coin-logo'; import { CHANGE_COLORS } from '@/features/home/config'; import { formatChange, formatPrice } from '@/features/home/utils'; import type { CmcCoin } from '@/types/cmc'; @@ -12,9 +12,10 @@ interface HomeHeroProps { isLoading: boolean; isError: boolean; height: number; + logoUrl?: string; } -export function HomeHero({ coin, isLoading, isError, height }: HomeHeroProps) { +export function HomeHero({ coin, isLoading, isError, height, logoUrl }: HomeHeroProps) { if (isLoading) { return ( @@ -38,6 +39,7 @@ export function HomeHero({ coin, isLoading, isError, height }: HomeHeroProps) { return ( + {coin.name} ({coin.symbol}) {formatPrice(coin.quote.USD.price)} diff --git a/hooks/use-coin-logos.ts b/hooks/use-coin-logos.ts new file mode 100644 index 0000000..1a4c27e --- /dev/null +++ b/hooks/use-coin-logos.ts @@ -0,0 +1,27 @@ +import { useQuery } from '@tanstack/react-query'; + +import { fetchCoinMetadata } from '@/lib/cmc-client'; +import { readLogoCache, writeLogoCache } from '@/lib/logo-cache'; +import type { LogoMap } from '@/types/cmc'; + +export const useCoinLogos = (ids: number[]): LogoMap => { + const cached = readLogoCache(); + + const { data } = useQuery({ + queryKey: ['crypto', 'logos'], + queryFn: async (): Promise => { + const response = await fetchCoinMetadata(ids); + const map: LogoMap = {}; + for (const [idStr, meta] of Object.entries(response.data)) { + map[Number(idStr)] = meta.logo; + } + writeLogoCache(map); + return map; + }, + enabled: ids.length > 0 && cached === null, + staleTime: Infinity, + gcTime: Infinity, + }); + + return data ?? cached ?? {}; +}; diff --git a/lib/cmc-client.ts b/lib/cmc-client.ts index 8aa9cb1..6ca0b70 100644 --- a/lib/cmc-client.ts +++ b/lib/cmc-client.ts @@ -1,4 +1,4 @@ -import type { CmcListingsResponse } from '@/types/cmc'; +import type { CmcListingsResponse, CmcMetadataResponse } from '@/types/cmc'; const CMC_BASE_URL = 'https://pro-api.coinmarketcap.com'; const CMC_API_KEY = process.env.EXPO_PUBLIC_CMC_API_KEY; @@ -24,3 +24,16 @@ export const fetchCryptoListings = async (limit = 100): Promise; }; + +export const fetchCoinMetadata = async (ids: number[]): Promise => { + const url = new URL(`${CMC_BASE_URL}/v1/cryptocurrency/info`); + url.searchParams.set('id', ids.join(',')); + + const response = await fetch(url.toString(), { headers: getCmcHeaders() }); + + if (!response.ok) { + throw new Error(`CMC metadata API error: ${response.status} ${response.statusText}`); + } + + return response.json() as Promise; +}; diff --git a/lib/logo-cache.ts b/lib/logo-cache.ts new file mode 100644 index 0000000..4382d15 --- /dev/null +++ b/lib/logo-cache.ts @@ -0,0 +1,26 @@ +import { MMKV } from 'react-native-mmkv'; + +import type { LogoMap } from '@/types/cmc'; + +const storage = new MMKV({ id: 'logo-cache' }); + +const LOGO_MAP_KEY = 'logoMap'; +const TIMESTAMP_KEY = 'logoMapTimestamp'; +const TTL_MS = 7 * 24 * 60 * 60 * 1000; // 7 days + +export const readLogoCache = (): LogoMap | null => { + const raw = storage.getString(LOGO_MAP_KEY); + const ts = storage.getNumber(TIMESTAMP_KEY); + if (!raw || !ts || Date.now() - ts > TTL_MS) return null; + return JSON.parse(raw) as LogoMap; +}; + +export const writeLogoCache = (map: LogoMap): void => { + storage.set(LOGO_MAP_KEY, JSON.stringify(map)); + storage.set(TIMESTAMP_KEY, Date.now()); +}; + +export const clearLogoCache = (): void => { + storage.delete(LOGO_MAP_KEY); + storage.delete(TIMESTAMP_KEY); +}; diff --git a/package-lock.json b/package-lock.json index dcfccc6..9e44eca 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,7 +5,6 @@ "requires": true, "packages": { "": { - "name": "crypto-tracker", "version": "1.0.0", "dependencies": { "@expo/vector-icons": "^15.0.3", @@ -29,6 +28,7 @@ "react-dom": "19.1.0", "react-native": "0.81.5", "react-native-gesture-handler": "~2.28.0", + "react-native-mmkv": "^4.3.0", "react-native-reanimated": "~4.1.1", "react-native-safe-area-context": "~5.6.0", "react-native-screens": "~4.16.0", @@ -1911,6 +1911,7 @@ "version": "6.1.2", "resolved": "https://registry.npmjs.org/@expo/metro-runtime/-/metro-runtime-6.1.2.tgz", "integrity": "sha512-nvM+Qv45QH7pmYvP8JB1G8JpScrWND3KrMA6ZKe62cwwNiX/BjHU28Ear0v/4bQWXlOY0mv6B8CDIm8JxXde9g==", + "peer": true, "dependencies": { "anser": "^1.4.9", "pretty-format": "^29.7.0", @@ -9542,6 +9543,26 @@ "react-native": "*" } }, + "node_modules/react-native-mmkv": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/react-native-mmkv/-/react-native-mmkv-4.3.0.tgz", + "integrity": "sha512-D1wB2ViMrm+0rs7FcbLoct/BV+qugASi+XAZT8MzXy5yl0CI0qxToh2LPnw9UENHrNefpfDZgE5FpMhIB37I5Q==", + "peerDependencies": { + "react": "*", + "react-native": "*", + "react-native-nitro-modules": "*" + } + }, + "node_modules/react-native-nitro-modules": { + "version": "0.35.2", + "resolved": "https://registry.npmjs.org/react-native-nitro-modules/-/react-native-nitro-modules-0.35.2.tgz", + "integrity": "sha512-97cZcCh3ZAuWAfutel2Q3qLfc45XXh7F9Ei5tEjahP0kV3q8hQelwLIulKXmjN+f0JI5Zf/wCsfwwdVWYU2tKA==", + "peer": true, + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, "node_modules/react-native-reanimated": { "version": "4.1.7", "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-4.1.7.tgz", @@ -13188,6 +13209,7 @@ "version": "6.1.2", "resolved": "https://registry.npmjs.org/@expo/metro-runtime/-/metro-runtime-6.1.2.tgz", "integrity": "sha512-nvM+Qv45QH7pmYvP8JB1G8JpScrWND3KrMA6ZKe62cwwNiX/BjHU28Ear0v/4bQWXlOY0mv6B8CDIm8JxXde9g==", + "peer": true, "requires": { "anser": "^1.4.9", "pretty-format": "^29.7.0", @@ -13649,7 +13671,6 @@ "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.81.5.tgz", "integrity": "sha512-UoI/x/5tCmi+pZ3c1+Ypr1DaRMDLI3y+Q70pVLLVgrnC3DHsHRIbHcCHIeG/IJvoeFqFM2sTdhSOLJrf8lOPrA==", "requires": { - "@babel/core": "^7.25.2", "@babel/plugin-proposal-export-default-from": "^7.24.7", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-default-from": "^7.24.7", @@ -13701,7 +13722,6 @@ "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.81.5.tgz", "integrity": "sha512-a2TDA03Up8lpSa9sh5VRGCQDXgCTOyDOFH+aqyinxp1HChG8uk89/G+nkJ9FPd0rqgi25eCTR16TWdS3b+fA6g==", "requires": { - "@babel/core": "^7.25.2", "@babel/parser": "^7.25.3", "glob": "^7.1.1", "hermes-parser": "0.29.1", @@ -14352,7 +14372,6 @@ "resolved": "https://registry.npmjs.org/@urql/exchange-retry/-/exchange-retry-1.3.2.tgz", "integrity": "sha512-TQMCz2pFJMfpNxmSfX1VSfTjwUIFx/mL+p1bnfM1xjjdla7Z+KnGMW/EhFbpckp3LyWAH4PgOsMwOMnIN+MBFg==", "requires": { - "@urql/core": "^5.1.2", "wonka": "^6.3.2" } }, @@ -15615,8 +15634,7 @@ "dev": true, "requires": { "@typescript-eslint/types": "^8.29.1", - "@typescript-eslint/utils": "^8.29.1", - "eslint": "^9.24.0" + "@typescript-eslint/utils": "^8.29.1" } }, "eslint-plugin-import": { @@ -15999,7 +16017,6 @@ "resolved": "https://registry.npmjs.org/expo-router/-/expo-router-6.0.23.tgz", "integrity": "sha512-qCxVAiCrCyu0npky6azEZ6dJDMt77OmCzEbpF6RbUTlfkaCA417LvY14SBkk0xyGruSxy/7pvJOI6tuThaUVCA==", "requires": { - "@expo/metro-runtime": "^6.1.2", "@expo/schema-utils": "^0.1.8", "@radix-ui/react-slot": "1.2.0", "@radix-ui/react-tabs": "^1.1.12", @@ -18515,6 +18532,19 @@ "integrity": "sha512-NIXU/iT5+ORyCc7p0z2nnlkouYKX425vuU1OEm6bMMtWWR9yvb+Xg5AZmImTKoF9abxCPqrKC3rOZsKzUYgYZA==", "requires": {} }, + "react-native-mmkv": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/react-native-mmkv/-/react-native-mmkv-4.3.0.tgz", + "integrity": "sha512-D1wB2ViMrm+0rs7FcbLoct/BV+qugASi+XAZT8MzXy5yl0CI0qxToh2LPnw9UENHrNefpfDZgE5FpMhIB37I5Q==", + "requires": {} + }, + "react-native-nitro-modules": { + "version": "0.35.2", + "resolved": "https://registry.npmjs.org/react-native-nitro-modules/-/react-native-nitro-modules-0.35.2.tgz", + "integrity": "sha512-97cZcCh3ZAuWAfutel2Q3qLfc45XXh7F9Ei5tEjahP0kV3q8hQelwLIulKXmjN+f0JI5Zf/wCsfwwdVWYU2tKA==", + "peer": true, + "requires": {} + }, "react-native-reanimated": { "version": "4.1.7", "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-4.1.7.tgz", diff --git a/package.json b/package.json index 8f9076b..5dbc1d1 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "react-dom": "19.1.0", "react-native": "0.81.5", "react-native-gesture-handler": "~2.28.0", + "react-native-mmkv": "^4.3.0", "react-native-reanimated": "~4.1.1", "react-native-safe-area-context": "~5.6.0", "react-native-screens": "~4.16.0", diff --git a/types/cmc.ts b/types/cmc.ts index 7f35ef4..fce7dc3 100644 --- a/types/cmc.ts +++ b/types/cmc.ts @@ -38,3 +38,16 @@ export interface CmcListingsResponse { status: CmcStatus; data: CmcCoin[]; } + +export interface CmcCoinMetadata { + id: number; + name: string; + logo: string; +} + +export interface CmcMetadataResponse { + status: CmcStatus; + data: Record; +} + +export type LogoMap = Record; From 95b81fba935a0102552af3f47c283b42f1cd28df Mon Sep 17 00:00:00 2001 From: Edu Date: Wed, 1 Apr 2026 15:45:21 +0200 Subject: [PATCH 11/13] fix(storage): migrate MMKV to v4 API (createMMKV, remove) --- lib/logo-cache.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/logo-cache.ts b/lib/logo-cache.ts index 4382d15..f643295 100644 --- a/lib/logo-cache.ts +++ b/lib/logo-cache.ts @@ -1,8 +1,8 @@ -import { MMKV } from 'react-native-mmkv'; +import { createMMKV } from 'react-native-mmkv'; import type { LogoMap } from '@/types/cmc'; -const storage = new MMKV({ id: 'logo-cache' }); +const storage = createMMKV({ id: 'logo-cache' }); const LOGO_MAP_KEY = 'logoMap'; const TIMESTAMP_KEY = 'logoMapTimestamp'; @@ -21,6 +21,6 @@ export const writeLogoCache = (map: LogoMap): void => { }; export const clearLogoCache = (): void => { - storage.delete(LOGO_MAP_KEY); - storage.delete(TIMESTAMP_KEY); + storage.remove(LOGO_MAP_KEY); + storage.remove(TIMESTAMP_KEY); }; From cd71a9de27ef35bdf4baf2c37e9954cb5a4ac39e Mon Sep 17 00:00:00 2001 From: Edu Date: Mon, 6 Apr 2026 12:18:46 +0200 Subject: [PATCH 12/13] chore: pin node to 20.15.0, add bundle ids, nitro-modules dep --- .nvmrc | 2 +- app.json | 6 ++++-- package-lock.json | 3 +-- package.json | 5 +++-- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/.nvmrc b/.nvmrc index 209e3ef..645ae0c 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -20 +20.15.0 \ No newline at end of file diff --git a/app.json b/app.json index f9fe1e9..2b718cc 100644 --- a/app.json +++ b/app.json @@ -9,7 +9,8 @@ "userInterfaceStyle": "automatic", "newArchEnabled": true, "ios": { - "supportsTablet": true + "supportsTablet": true, + "bundleIdentifier": "com.anonymous.cryptotracker" }, "android": { "adaptiveIcon": { @@ -19,7 +20,8 @@ "monochromeImage": "./assets/images/android-icon-monochrome.png" }, "edgeToEdgeEnabled": true, - "predictiveBackGestureEnabled": false + "predictiveBackGestureEnabled": false, + "package": "com.anonymous.cryptotracker" }, "web": { "output": "static", diff --git a/package-lock.json b/package-lock.json index 9e44eca..6bf4b60 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,6 +29,7 @@ "react-native": "0.81.5", "react-native-gesture-handler": "~2.28.0", "react-native-mmkv": "^4.3.0", + "react-native-nitro-modules": "^0.35.2", "react-native-reanimated": "~4.1.1", "react-native-safe-area-context": "~5.6.0", "react-native-screens": "~4.16.0", @@ -9557,7 +9558,6 @@ "version": "0.35.2", "resolved": "https://registry.npmjs.org/react-native-nitro-modules/-/react-native-nitro-modules-0.35.2.tgz", "integrity": "sha512-97cZcCh3ZAuWAfutel2Q3qLfc45XXh7F9Ei5tEjahP0kV3q8hQelwLIulKXmjN+f0JI5Zf/wCsfwwdVWYU2tKA==", - "peer": true, "peerDependencies": { "react": "*", "react-native": "*" @@ -18542,7 +18542,6 @@ "version": "0.35.2", "resolved": "https://registry.npmjs.org/react-native-nitro-modules/-/react-native-nitro-modules-0.35.2.tgz", "integrity": "sha512-97cZcCh3ZAuWAfutel2Q3qLfc45XXh7F9Ei5tEjahP0kV3q8hQelwLIulKXmjN+f0JI5Zf/wCsfwwdVWYU2tKA==", - "peer": true, "requires": {} }, "react-native-reanimated": { diff --git a/package.json b/package.json index 5dbc1d1..7f3fc1e 100644 --- a/package.json +++ b/package.json @@ -5,8 +5,8 @@ "scripts": { "start": "expo start", "reset-project": "node ./scripts/reset-project.js", - "android": "expo start --android", - "ios": "expo start --ios", + "android": "expo run:android", + "ios": "expo run:ios", "web": "expo start --web", "lint": "expo lint" }, @@ -33,6 +33,7 @@ "react-native": "0.81.5", "react-native-gesture-handler": "~2.28.0", "react-native-mmkv": "^4.3.0", + "react-native-nitro-modules": "^0.35.2", "react-native-reanimated": "~4.1.1", "react-native-safe-area-context": "~5.6.0", "react-native-screens": "~4.16.0", From d468090031007bdf9d0b054069368aa68be090c1 Mon Sep 17 00:00:00 2001 From: Edu Date: Mon, 6 Apr 2026 12:18:49 +0200 Subject: [PATCH 13/13] docs(skill): add component definition, naming, FlatList and scroll height conventions --- .claude/settings.local.json | 7 +- .claude/skills/react-native/SKILL.md | 97 +++++++++++++++++++++++++++- 2 files changed, 102 insertions(+), 2 deletions(-) diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 4233fa1..0f4b6c2 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -5,7 +5,12 @@ "Bash(npx skills:*)", "Bash(mkdir -p /Users/eduardograciano/Documents/laboratory/crypto-tracker/.claude/skills/typescript)", "Bash(mkdir -p /Users/eduardograciano/Documents/laboratory/crypto-tracker/.claude/skills/react)", - "Bash(mkdir -p /Users/eduardograciano/Documents/laboratory/crypto-tracker/.claude/skills/react-native)" + "Bash(mkdir -p /Users/eduardograciano/Documents/laboratory/crypto-tracker/.claude/skills/react-native)", + "mcp__plugin_engram_engram__mem_search", + "Bash(npm install:*)", + "Bash(ls /Users/eduardograciano/Documents/laboratory/crypto-tracker/app/\\\\\\(tabs\\\\\\)/)", + "mcp__plugin_engram_engram__mem_save", + "Bash(ls /Users/eduardograciano/Documents/laboratory/crypto-tracker/app/\\\\\\(tabs\\\\\\))" ] } } diff --git a/.claude/skills/react-native/SKILL.md b/.claude/skills/react-native/SKILL.md index b35c151..ab96b45 100644 --- a/.claude/skills/react-native/SKILL.md +++ b/.claude/skills/react-native/SKILL.md @@ -4,7 +4,6 @@ description: > React Native and Expo conventions for this project. Trigger: When writing React Native components, screens, styles, or Expo-specific code (.tsx). For performance patterns (FlatList, animations, bundle size), also use react-native-best-practices. -version: "0.1.0" --- > **Base skill — work in progress.** Add patterns here as conventions are established. @@ -34,6 +33,35 @@ const styles = StyleSheet.create({ ``` +## Component Definition Location (REQUIRED) + +Components MUST always be defined at the top level of their file. Never define a component function inside another component's function body. + +```typescript +// ✅ ALWAYS: Top-level definition in its own file, receives data via props +export function CoinRow({ coin }: CoinRowProps) { + return ...; +} + +// ❌ NEVER: Component defined inside parent +export default function HomeScreen() { + function CoinRow({ coin }: CoinRowProps) { // NO — new reference on every parent render + return ...; + } + return } />; +} +``` + +**Why it matters:** +- React Compiler cannot treat an inner function as a stable component identity +- React DevTools cannot display a stable component name for debugging +- The inner component is untestable in isolation +- Preparing for bottom-up state management: state should live in or near the component that owns it, not bubble up + +**Rule of thumb**: if you find yourself writing `function X()` inside `function Y()` and X returns JSX, X belongs in its own file under the nearest `components/` or `features/*/components/` folder. + +**Note**: JSX *expressions* (e.g. `const listHeader = (...)`) are fine inside a component body — the rule applies to *component function definitions* only. + ## Platform-Specific Files Use file suffixes for platform variants instead of inline `Platform.OS` checks when the difference is substantial. @@ -62,6 +90,73 @@ import { colors, spacing } from "@/constants/theme"; backgroundColor: "#1a1a2e" ``` +## Component Naming — Use Base Names (REQUIRED) + +Project-owned primitive components use the base name, not a prefixed name. + +```typescript +// ✅ ALWAYS: import from project components +import { Text } from '@/components/text'; +import { View } from '@/components/view'; + +// ❌ NEVER: prefixed names for your own primitives +import { ThemedText } from '@/components/themed-text'; +import { ThemedView } from '@/components/themed-view'; +``` + +Inside the component file itself, alias the React Native primitive to avoid the name collision: + +```typescript +import { Text as RNText } from 'react-native'; +import { View as RNView } from 'react-native'; +``` + +## FlatList Pure Callbacks at Module Level (REQUIRED) + +`keyExtractor` and `getItemLayout` are pure functions — they only depend on their arguments, never on component state or props. Define them at module level, not inside the component. + +```typescript +// ✅ ALWAYS: module-level — no closure over component state +function keyExtractor(item: CmcCoin) { + return String(item.id); +} + +function getItemLayout(_: ArrayLike | null | undefined, index: number) { + return { length: COIN_ITEM_HEIGHT, offset: COIN_ITEM_HEIGHT * index, index }; +} + +export default function CoinList() { + return ; +} + +// ❌ NEVER: inside the component — recreated on every render (even if Compiler handles it) +export default function CoinList() { + function keyExtractor(item: CmcCoin) { return String(item.id); } + return ; +} +``` + +`renderItem` stays inside the component when it needs to reference other component-level functions or state. If it's also pure, move it out too. + +## Percentage Heights in Scroll Containers + +`height: '25%'` does NOT work inside `FlatList` / `ScrollView` content. React Native resolves percentage dimensions relative to the parent's size — scroll content has no defined height, so `25%` computes to `0`. + +```typescript +// ❌ BROKEN inside ListHeaderComponent / ScrollView content + + +// ✅ CORRECT: get screen height from the screen and pass it down +import { useWindowDimensions } from 'react-native'; +const { height } = useWindowDimensions(); + + +// Inside HeroSection: + +``` + +`height: '25%'` only works when the parent has a fixed/flex-defined height (e.g. a full-screen `View` with `flex: 1`, not a scroll container). + ## Navigation (Expo Router) ```typescript