From 2f6381870d3dab072ba09f3a9e115aa017b394b5 Mon Sep 17 00:00:00 2001 From: vickytechkey Date: Wed, 12 Aug 2026 18:18:47 +0530 Subject: [PATCH] adding aws db --- HLD_optimized.docx | Bin 0 -> 40542 bytes HLD_optimized.pptx | Bin 0 -> 67587 bytes business_overview.pptx | Bin 0 -> 45118 bytes src/App.test.tsx | 36 ++++- src/App.tsx | 291 ++++++++++++++++++++++++++++++++++++----- src/config.ts | 6 + 6 files changed, 297 insertions(+), 36 deletions(-) create mode 100644 HLD_optimized.docx create mode 100644 HLD_optimized.pptx create mode 100644 business_overview.pptx diff --git a/HLD_optimized.docx b/HLD_optimized.docx new file mode 100644 index 0000000000000000000000000000000000000000..b9d73a287700867d2e5e2907be6998361b646b9b GIT binary patch literal 40542 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 literal 0 HcmV?d00001 diff --git a/HLD_optimized.pptx b/HLD_optimized.pptx new file mode 100644 index 0000000000000000000000000000000000000000..89d2174b714faa4e6a9987a6bb62a0fadf619cdd GIT binary patch literal 67587 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 ^aQ!fHvscMm3LDRm-vIP&n%BZ;ohha!4cUCI!n} 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 GKm8v$j?+Q_ literal 0 HcmV?d00001 diff --git a/business_overview.pptx b/business_overview.pptx new file mode 100644 index 0000000000000000000000000000000000000000..2706ca9d6a104b595e95551300e32feebb3b734d GIT binary patch literal 45118 zcmdqIV{~QR*6$nJw#};8HY>Jm+pMgxV%xUuif!9=Qb|spXTRs(z4tw>z2~;~+x{?T zTXU^1YxXhv@Bi<8jPXMn6buar2nY&D{1>dw6q=Cc888r#5(*Fy>eshg!gjXKCbrIc z${zM6PC5+kHr5jz=tz`ep(nGC-ZQ%D=}&L3mZ7A;3f2vfa;`+9b2fZYx@yqpkaGf;W9*p zmZ^hanC&6vpA~|SmuMIzPIWZvVfTANgd17VnXjf|6}J=@rZbJ5b$i2{+jH<3HqH<< z5I(Dt62>s-_Z`ieZCxJQL&j~vWSSk7w=I^9wl*rxug|e*9Uo?m^vF=;g$~U-iP9Ik z_}_0N(n?ATDqg~L6r=WM@LIkO_uXfe|DbnizHyHM1sD{ZDJ0CVENsiD|B(Qf=V;)T z$E|qtog;V73pkJC{*0h4Gh~UBHlt%IW6V}NA*5;$fM)@fj@$0=r@yP;Y;-`f?MhWx z>nzT1%xYBYtoM01;d_3s2zer2z8~~owxnfnCWMpXdJbZoSl_$c-L4#QZO|KMkwK;z zl*Fg_eNQb|GzHD%Bl+uuO0Z}TEL9H0n9IkmC>!sj6~+zI;WCx>qBCWY#epLbYS&m3 zNeDzK3{{;N>PjAol1Lb8cfbHjFyk7QI1JT=7|bD%KA1=@G6ZP=x{?oM%8p$7r7)P? zk9$4#vM?neaN+3eYCKaWdrzpRo9b#nYX=_q>;o0&6Y|Hu%#9m(_H&@Gxv>KR1O)pv zH}o7$teqGc{<>GjP04{0BmKPM17CqHW>~X~{BGj)ouU(4iBLcIgux{MT1NKmF%RHp z*(8g|+xO@B5Ldrz`9-k9Xp{khzSxBn90IixHZzH_e0U@iEtOau%TR#+DdixqGmU=_ zNPBXBQvm}UrLM};v`vjBoq%_r3nf%hV|YJcjL9Xur$g|kC(EXCDn>R8+Z=`{4nEyRb#G-Ff&8?b{LiVJy1UIVpjA zn*s!1(>LIM4O9f$pFNMSK&^cR3i&Hg#&$+O9PR9#7>(>4P5w%usJIEa{%=UZS3IKg z(sHGH7*c>ZBHvYUE^~g?Hc!15yT9JoWMuF_hNr09r^P2@v`n{)GVlPHTyru~; z{;&a1xD~NVY{=Bun>hglLMlqdJWO2;FsAO288tif5=K@9o4!IIERRHMaJqGa7z;FU zbak$w?K%Ev1g#BisBZ)K_ej4wkl$p{W(6R|fyAWr-|k~=*gBR0no*`|31)P!s&Q7;tiSFhWuFONQ6a$ex|r(9~C$G-x7JV0-EJ~t7nGxWz)K(uc`A?N=zrre|rrtP=8dHI@Vn<@}M1s{$WyRfhwA2HHD4k zLA@FDK(A9K<3%D&8#0HEEsDKpxMyf#s>7GC$%jQB+aP^iM@Ah{mfq_TIN)|&a!J0p zpp%F(U&(chIbU#mcx;rYf)Yg_h$cuYvoh%$=rs?~xyMAw);R~|MbfH7TQ%DN$86si zIxdoi`+-M>wLa}$haw|TM*wOVFC(=H$JU13)V-jh-aq=6G8m-0njVTTbwFN z^|;aZOz|bqZ0FW128wpRu-r{MbXWbIFdIV=Ts3z6DKwlJN}KMGw<7yyB!}f)lOK3A z*Codqky>AWNE+Tt_%&wU$Lm;{Z?>kihd==y!;fMW@^1Q*w{FleYj%k@l6Z0RX-C71 z|KE~0Hn<(b?JI#%5rBaH(nouHXGVKR6Q?gRG;p@Cv;Av=TqMid?h&E+KRLlfL}BJH z4&5LEc9qkjX`<$1^C)v9tu3B<1Y^;UgW%)RTSsGzI3X#e}2RN~X%#%Oa=6Bwl>Ps+@*4JMg6Ex%In zf)2{KHY9EItq8nor3jf-rHytoNO9V)&2u7<3T`f^2wj{_&zrJ)#kvf{mwm8maV|R? zN`HfEzsd5TRr4*=@{*w{ne2o>wVfUMv~)-65Q;SBQu%IqooY zuT+`nBVkH$Bhp2Lk-#irJ+XiX1wXaxDMmL%J5)#bJxwoq%#>!&Gc;bu+@yrY{Q(O9?6<7r)$d`@VT z8pfuW;V#4i*)NPYGnsZy5iJ*%4GT&q5cd#3ya7U+{z8vjx{=Y_yZvPV zPgXPN{Opn^=9Bk~=!4@UvcXq?7r%Sljx(BblOZ^HG!Y6i6AYJDZQ!i#542boJn+m) zb-`3pstC$G?pMP>7?MsRBQtMFy$W?fCGj6=#(UDQhJ|kl_`Ze^OWlqUpZ`iR8ay#g z^Dm0AzyJXe{?|nPhcy5Dbp2bZI~S+yf{4%{uirjk_6Fxf&aVoal1(HLrIQ-pKufx4 zQbB+hD?i_VFE&`VCF6&Q6I?$B|7K@c(v!u<6U1c@#hBp$fFQNfwNTX`+dMh*$AB26 zQmNB}8_z(?H0W;7>*bm*UVKMaqp+6^9_bs^d=Lm5p*2qd6oTxSA}F$tx8*Vb3}3iu z0}3RW$lEqZwOu?R(n(++igFBUxT&Az?L0WH@d!*lX8dc|qltz*lI{1^pbkZ)7iu%5msz8HNTTuh zyuzfRg=M@+D%N1tdZw;eD28fuiu1cTcCROg)4nc_(;cBs< zzV{)qU`u=#L;p~EY%&a_=?JCCOUZ+&?gdbpmh@RUl7w@XUE^ei83ug)M46-kJ&Hxg zHFI7d975SyKzZ`#yt3=xXri4VjwbRoNPz#c1pk{RfBS;JP|_GT_Ln6PeUkViyx(cX zEqSLHPh$}nJP-)(?Vrd|S@=x6=0h~ljVc6##Bdt2APKh_fIXHt4y>WS z{e7h@ddvnPEBjI(gy*c}{5XeftQWRkUuS)@!np{(UWV&b>?Hq2jMRcTEhy88OZaya zH${mK)xSt9a$ROL$EM$(=Q#q}e?lIm)GN35CGXV({OVmn@lZm5G)F;uLCu2DPF%Az z9L}Z#2kEh;D>7RPSYG>d_B{_@yP>R2JJ0?_q#xW`cYkR1;3^y|n{+1h(uc>O&9Dk> z3LP*kyTJFK>Ld7-^eS1sJHW)iFlaUIOd`8bKo(Fu0cw*$g{yrbx?+L3s5ZX{Mb>c@ zj5Vk|OX;^Bes0~j4+_z`+gmOKMFGhCV`B&Q6us8#U$$yqfFxLqo=V9`zkiUrv5L>J zjj4Q^7P1M4PW^7dmk@hKfso;u0XNS!K*si+#j+bE+1qVdT2KV9G}i?rD)7rL4)F^wm()J*LGnJQ`Qgu>G@RB@7~@!*>L z@bsdf?|St<2)t}CNl()|WcTP@aSfxAIGPu9XeI%j!s<2@>tr!p4Ta6l@DR6*=vbei zz?U2uG4{I(5W$-wvf#@6<$_!jAj^ZZI>XV8O=)%%nO!u6J0&)^;x@cn5gfh9@}xK; zZ5Ezpck&%6VD++pAg*iboc~`(G9Jdpg%|<|=m`J+m11Xe6B`r8zwh7wmSPQAyEQhf zF2rR&B4<0371dKPm+hS#Y&esxFi2{LeQ+Rc z&MtHON==AM?az&djAolCL^PM!`2TFvZ2lkyK!Lof+io|Z(t=IJw;}b(9ld*I^>1WtBpGe93JROmYk<% zs_@$`;CCcxm&p+xU&Z)+^D^U)M+^I%4xPtbtMS}uC0*?zF07Qi0Y``b4b2%m!0*S@ zvB)<%=uBUy_fgl8?yNh#fd|h{+bQZ76QFYs{nC1Wn@24PX{&Op1#>&v{4%t~9g%0M@>=SFbv&(T-S`tT_M;{2Ol z5UwaQ>{Jw{-Sbf7O%QjhG$7`LN)t6X!g7;Vj2%erd*EN-n6x;gtdhT>y!_7$#eN1B zfm}oMuEu+h#KTIL(vk5BqAoP?$$e8EfV(|?iK))w7yY_8J)Y0^cNi&S2r_y8tO&S+ z4hP6R-@Y+^d^{@MFU?))@_md(CUbo}W%IpVEHO?96oTq`zwgJG$?JOGy=3$Au=O;9 z5u9EFM}>(rk07t^AupRE354!?qXi);Wg5~VkVQL483{Zos|#*r>4(C%Ae4GuXZbVe zgXj|Smr!*OhS%mnY)^bE19Iaq!)J(O+mJCi(Zw1L&}hLrYvGMVl&x!by19r#l`yk3 zT!EJqozQ_G9tH*ggie@!1;PT(`3ljyFMr6}kBGx;6qf{*&X9w0DVyfuvIMrs$iN77 z&~~k~{^ZI?UABwwr$H$LVMdkiqp|IX9)=MYi*gun-lwk+ijR9k-BH0~Ko{X6ipF?^NP(Y_f~5p%CfX%0$y! zjvhBjjKHCbbLo{(a<}lPgA;rRCYc=>Qc4C@y|@<~^$id~p=Ys#9JTdyndtSDlryxO zdbK=ef9KOS79zj(!PXfye8Uhh>b_OD<#ys$E6rGb6md0C?`nPa^Dg9~e);U;;oZ8hL->&s(#w_x5YYYjUAEYKVWi>;I?5KzPJ?Mp;RT^ntWh`2E z6!Y+XCsyEQm01y?BE6B%rCUxAb2Wb=h#f68BZbaU`|C`z=bqI%PO_u{5e|+vy(5o? zthFs%!s0eo8HCZ$#KTAS*2{oB;kmcz$Qe`8|yeq<%5#LE! zjE!o43SOCJ>F^~^pPbDB{MT(U0BZE>d2EMzTWG978YsIYYg(G;PVQ_BF27CFJReau z^yU(Vz|(fS+KUQOVUOlQvp2HzF)^_UIaixneh~j;NC=)kgI#`N*2uvOtdmd?qVvJd zJe5K)^PxS8Wp5=?_F@qT6e?EAB{Eh+cg^Y@FFjk^OHi0GlX5YM`$QNaHVA6)TvB|a zN0V!p+zEqYCuCVu*6Gjr#30m8t8Tm*2V9Fh$gHXWV=-U>R-cgz<56_%_i`jQwSJl$G|om}@?Ehkt>e$(~4KL7B1 z2*oU$;qoE#0>}Fz>(bJzR>bClAZ`NVBVo56lE@3Uirpxw`Zt*Ai@usM1Y#>cb*RiC zJ+a$BLt(vpOeE4nOtC@co%v0*d~52}0f^$7bl=cQFt~3MAYtI49v~flf?rKGY3o1% zVNJm~e5AmjWqd-7(G3_={jqt@Wb{~dT89qufWx3PT-;u9onRxy<5&T9Dfc-P_@~i~ zy8Q+5UnOPvJu0T~%Pcp2U4QjC|1t;828PxqO3ohECQg4T3jDYvLf|(nft^l(oB4+i zy|4lqS|1Uu+bJ+j0`ZA}c|OYChRMrq9ODGPR9>?BxiJgq=Qc1(8|y{^Bt(o?kdeTm z!-j)JgMJMRtVh#UA&-N+hf_J4+SzoGdAdDBzLS$sn2mUD3vY_X@x_Cw!n#c>T!GfJ z*IXi5z!5%RHy&ahkk!jx7D$xW&{I5i5N06(s_n@#>oC!&Dh0DeBqAj}}~z*OVp}x`D1a=^%2L>q(oEGE``dLOvQFu1ub26&u)!o$i%&U__QG_`X$ARgX&N zsy*9#Q43InHB@FWEcd8_+>7)d&J&&l)Ze^}!&!XV(qNoIU)Bl;FEw2*ROg$Y%V|o= z%4k|Lefq-MG5IxztbK>&$P`UfX>>%K5FE-llW{cFaZIc6=v4|sw=>C|>7-!{-!H1W z1+iADDv{N3n13uc<80pdfi^5evBFI*kt{BkXxyMp3HGmH!wliL&Ug6~ff@{0TfXpE zcH3|{v*<=k{F8(ZD-93Pqz{-65U^vU(WuA4s8n2_BD)F|^{nQgyauBb?CX8H6Y_4L z|KO{Ja6LDGvyy(#V{N3L$xN-7kl>?f5d$1T|HfVhplK%K?Y>!4M_4SHD>IfBxszA# z^O~)mE54i80flgccsFZozTJ#Am4)Crh~25E|DHphio=!0z>sFPVD+dr@IM72SrAfW zEEcWf=`0BRs3C53h<%K@0T_Xt+}Pi$?G)6UilMHGvrt2>$XfbI{_sHJ{q2$+Mk9j+ z0R23RDZ_+REdAAWP#*Tu*Q2;O=b%yvo@At|r8Vod6Q@Q;eLKHvvwn5{wMI9w8m95m;CHVX%aiSdPLP(5BmCaTf)kW3_n%&bK zH7}NRRjs&&820n`Qud0~TgaTODR0+7Ryh8s84|iSZF*fPh)(OA(#P~KG#=?;>?5sc z!P_c6{1LijR&ufn)i%SbEltj74M{{?(NhO;LHrG+tW%;_Ozh~%$&Il4O;IyJ#_(?^ z@KZPKo91ES`OL`!d&nOvY~O)nDeA#-&FTyFw-~Lcvf|OQf`o?e)`C;Y;&-}~0#g#O zFhghpHwt>*B*LkQsto=d#lfiOO2T~(0(QKh_%pE;WIl?S`|+B(y4IKNWFROgss%7j zebgB!aAPGOkyGsx!DiM1QM)-fK!yH%Ue&!fh8~t#$8_9qaPUWXRpCZ?%^-<)VhI8h zLV(GQAtU7PxT`eLqI+J^iT6yqv)AgPgV#TU0dG|80*2X^!^Q zLqm-5dgej!GTZaN9~u~TXNjB?`)JQrVeajJ7x}hf=ANB~5b~4oo(e;QB)lwTlwGpc zJPlt?nr@o zSzIhxQ;C^hdBmbY$g(I&(%a?`p@DEFgL}B)c2vthYI2c;i9=DaVCGXer*3iWLp_%l z8@Bzbp-q*Suu4!c@4M7TpDcnzekwlU^Wg3NMzn`(ol`@*;d>zP?i`X{M_^p-J#%q? z$L}cVk8rzw#n-J1!gO;F!tW^P$GzN!=jxb2*sSTtz1ogyQ*Yr;S@LJr8W!F@$Yh{T zBq(PXKz(Zfe>h2#tKw^-^eicFD`E1CMI4N}>@FoR-0bL^$CDCCnqo-yAX)J4tS1*< zSenZpE1-@qM`=yVq~k~P@Zr2vHlVs9dI|;n0Y_h1sc6>ERaC|trnc?}eY1=3yKk|6 zPHIY2jE@SoKeCc8b7$QKNcnTNR9Tv+di`) zprT}CKf#6>5w`_qfO`ToIsRZE%!yxa2jp${%z<`llCO~x_(nipZqMACBVxtSzw8hI z5wr{jHMkQc2S5M1d7kPBERI zzpL>Y*ozq^wY&-Ab{A2w-(GtO*hNl{Fg&tUe}v^UGjvf1W@NCM$2lW-+|W#V&^jn5 zTDAcY^d%a;!B27Q9A{ssF>FZizaHJt{v!0ORwns^>Dm>UZgAf5aSo*|v}X)2*YS;! zSJ=BzlQHB{aACh z^*0=~ab-Mjb;_|5aVJ zAOZdR3Rj^ue!Pw1DBJfHwnA&%_(Wa{^*6)6q$_zR`c$M4u<@xF~7^GU97 zB1b@POM=_N^mNKwl>BGaK@3B7@8JLHtfT=y)Ox;JE|qXVKqUVhRv7~iI~V8w@*w|s z`2M#EX;hnuOJ_s#xl%Jf4$4*shKS_7F@@9R%3Lvav!uL&`E5l3q9Eyd?#vXwWyw#e zH%kkwyLMLaIPdYDs49Ar_XtL(+q07zTT_V`RyWG)GHOn^Vbon$S$=P`-NRCxmkhns zvCmy}xRXAybE&zzqf9*R;K_JQ4F*_*T-?~2KCw(3Ys^|wn#9gsme##_JC6*8U=Vc@ z`~_^9ygzF%xP?sAr15T$^X|n^!Pt4UUPY32!5?Zg4CK{OW4=zfd`hq!JQ2vqlu%J| zEiIaUT66+-@VH>~2p2Zhy*8A+$^{n1m^mpwJmK3lflx%`H{)GosL(^_e3_Jrqd-L; zwMswKhYDXb)5o=kd;!s_8BH|UX2#WT>oQF2&*ra6Zqj1uAyg0O^MdKM2kPeKezgRk zC{$Ju^+z+-FZLvCTAP_+LmMFOb_$s)!j~poSuUDrZppgh+KW#-Z&V6{#NR80|7)Y17W`o zG$J={4_+PM**aYz+=hWM7c+{8d!lD%GE|(HPg1!1aYiUCCGd^3W{OU8<;oNzu22e# zd|?vNCB25^EeuVZg%QnDxF8P%8(Lotq@bt(?mMVt`JY&*+hJr!;ZC*=?yeT6uM~RJ zdo4ltG$zZJo^;IF)#+EHUyseN`8f2reVKgi?Rg8R&D}%D&$h6xOw_B-4EmfipICdQ zLyR2Su!NLu!(`yh$No8mmTxsW>HowKoXrU9z~}iXbe~WiteFLWr3a%&Czq$^74fox zk&YsY=&JgO!%h1$lZ?M#L1H;?O=&WQ9i30*ZL9PV9M6v{qC1cyRVI_F<|&Ox(Zcfft%fUUBk) zVcl)8JCqid97pRz8yT3^dGgQj(ItvmRk_46HItF3+{~KF%Z^0yHcp#>IP^4S;f=4* z425l4=-kM(YX;Qo`f|*9F6063&wwL%Qa_}@lPdGV$qo?Lqs7zaYQN9di!*+;5|xfE z!9IXJql(v0)jWTZU3V-`Nwl@vv*IRxe1vmJ90*sOdmny4zT|B8TOPN<5}`?8n(Nb3 zhgE{kr)ar0M(TDP!--qq@8nZms_K%27I{xtUB^|@2#naZgElT$6)WQ zqeiCK{Pk*J6JEe_q-_{#`K&j+_}d9;^DW!q?ccEKZ?Y5C{FV1?UudQOKjr^FVfCLW z@HbbZraBS&h>#$!H;ReqWQ5N2BdIS8W$?5k`Fg;s=xf3Ia%Y;8XDAS&pB~bV?}6mGZ@HkC$|leO)OK4Z#q53ZH8`ZMlbe%E6!vumVrBe85h z5vsI|LFOMr%IXrJrW1vKE*X<7HAq@4aU0#6-+}&>fI#o(@HAgb%HUsX|Nl~j{htW< zSEV_jt`oh+hU9xi4fW6~5Az@_*??@PKT@98W9o)%htQK~t_4M2Ms~4G4YIF!;oumj zm|*PTx60)Y`aGCdlDflwH}MOv+ozcpds*=dfwJP4xMpDHi8mc3s&g~LKj()?iT;7W z;(Xr3d^ff3j!Me719synb{KQi#Ef61jjCl?0#x;^^Z@UEE6o!-X$Gmh`*QVO?O#)? z&LcTT9K>{z3L2SR9HQBb$)aLMJZlLJij~NM*a|pZ+L(>!l?%n{UkqH0obiQ`ys+YG zRL;d}^hZY3;@#0yTfMXHb^H;lD9^)!qTd^yktSc~irbJ{#S#Q9mwbev3!tE;hfeI5^nzVyLz*?fslrkR~?)_IwiMQu=_;X{^o zb?xr+;`vPoPrvwK*2xFbqj#=FL}8z}_-;uwcCP_tSa-}8x-r6|%dUa&VXj7qLZ&Qa zmDy7F^l-Qbi3=<8IIz~-#7|pYAc@8xLHVb7d3iAU3S|yQjz?~f7YRCg&werkqfH%f zE*zRsoazfN@_s+_82$1p(FJl}R<@tn$d!hsHNhHdrxOx6dknpTXY59fBbPxHVXMJ# zN{mAZ>@~GfZV@aYRs;y6v+n+hWMt}1QmZCLg2;MG17n%CS~oUIQ<==6#!%0ps-5eQ zfLt$W~2!L`eePGB0C zJPIbvuqE8G{~%y{4xmRKJg#JD4m==n zaevZ%J@W}sP<k3Xn{50oDnR4|v= zBgbj=+CkS-4!1{AUhkrMwa{9R#oc#X!~A~&v=$V%s&N@V;C7AK-0b!B_B70mB0;#b z@~yZ53UT8Z`WY0*R(@Jjjpb!j7Mc}oftxl7E;L#U_aw)!prklGFPzYxa*C7b&K#!T znL&w#40yt0gt#R4Fucs4PT${LWEg4YMfIEwc)keXaQ_bQur`^oB2sqxH#RZm<@aj%KjSTYA+* zAt_bALt$FRP^OYh8U)4j`nh{b_^+V(XVm_SgZ%D!rgI_rbnE5jBKnemz#%-&pJ3r#uBSGP%%4C~5d~@nIFqk5uARvE zmA_~BN`7rx$}D1@Oz0vaRyA{*A}H{AvD8wk=@mj*92fscWd~^)(GW~~dpX{)Is6N= zmM|h3K}Y%cN%?A+pB?+mk`c5GMpob~BBW;Km&#H%*uhNI_EG!Tdo43tQWTa2_vI}= zLj(v}on;NSJy6w2XE`=}9Y%dslgNgpld7%OOE5(A!xIqnRD;I|qOt>rz>{!>F8L57 zFF3Ne&o4VcD`JSu-c@hY`jVb^ zv8Uq#OBmRlndPT6AG2fOM>0(nA z7x#Jx|C}_DPgS#>tptMdDu*oN6tFg~^%qO(0^z214%p04T z)&nofS%pRKjMSSwBNcuTGy)Xq7=IgjS^6d%8f8u2dmCo3?8WVP!asKab0qVbk7oCc z7nskT;*X8!z{&BRS)Q3Sy|N3F_p`RUA|HUSp{ZYYO}gMZwq{s312bfH#b?%xFRyS8 zuz@RgQOI{Ii;%`x7@{iH}Tr3jWW&D7$#u$vDivy6mw^7p&u z_E}>qfn0ewVvy5u3?WS(C{`DRf?j;&_d84iRdT#MnnDyCjSoH2T;BUc>}x!nq*%$R z-{El}LF{L*m&lAWNFB$ElEVCwve%d*>8~1W8Vp5MM}uv-(tXRB5Sm>hWH5micv-`e zO_-G|sq9>BN{z33XU&-WUA}|@<<~WCv+R9|${TPM;4=WS5oeSFhg}Nal-3b8QOfN4l_2AcXkv*GKdJCE2{i_A(XMSv<4 zDH<$vHe*ES(`=ei0c)f^wU`rsFj*5kc6x?!H*!XLD21_At8qH!?4z}qQ+{8ec1o;F zEpGU)Z|{lhZjnf=<%`{Qri<%L6V9DoCStL)#Q62lZHV~T=Bf8!cr}c#)O=gx8l_?< z@J7sRxfa$7s3oj*$YP5Oru~*p9Uj4KTDp8f@SfoM@}+fU;7^U5a(0tC#8ltUGgWwX zH?ocz;t>=Z)e-|KyAGoqensjETLNJO7L07pNpkYGO z*CB?Mz{g?sxkt1TjZZTqq^n6O&xS1KipJ4&55jeG|5_)pY{2w96C`{t?!UV1t6uk( zb`VQqO-%2#my3n|+777Pfc@K#hWM+349M^!CFX&;`1ZUL+~UVYEHz$re@RoOoyB5V z23}EhU;%?LJD^~Z*Qq>5A`dI|5W&?gA(UD>q-?r1w8)ZIBGQiHj`WD@CjR9d9R;dS z3>HsHnTbSow|hu;R(F{DTp(I5f!OPixp1mJBkebU8F02&ZF3axeq!>H>auJUQ){BnanOrAm0PN0D~;LsN}3+ zt>L~Y`M6QP0VpL<6Sun#2*>-z*qKq>Vq^G|ukti?9usB-{1_qactI#1(^hNvyM(da z8FKg2Z<$LzL+$F(H_&eP;_HZW-@;>YoxMMZlIhD9r}C7s;09D)w^$*n`@ip_e5M@o zkiZQxF5{AD$7lhU%i8a^FIQ@Me4kE%+Td>+)jVEREyt!q;pnr!IHJ8Np^a#p6fAQs z(A4ASpDN~^kfnC*<64rll`(Dd?;?>m(mu1EWILm}EYHSBj99CWcInE;E`Havs-177V`Z-?VLwj$dir@06Tw2 zX?@20pCbBiPW|T~T7EPT59$li=3l2@{yRU(@)x2n)HfVgIncVcilmeSv)9#p@bDe=U`s!s#;$i( z_@!to!I7&@^DxL$Ez+-=*{AA2f)>TuSskaXW^6t}>H2hC3=S8~xDainLpwJIJs|*q zZT#+INMu^5%yO7iQj~$zNt4`tXQ{a1dwT{OG`+WXvR6h{3 z5Q+I(#sjP>JXYJI`6<*Xu8LBSKGCotd*lXLbMog92!{=1JNk#sf>>+vp?ehPoVFs! zdZkKKS6-XRi5aj|(fQ1w-S`>_8{3%`tKE84X~huyE5$lG1CH5<%0OKs#%)fODJo*g zFVxnefj_19F$zJnKGdp`HnFoGEVcer#xl?h%?Pne-zVm#1egTsv;&{iCHevs#1j4U z<~L)9#6#l}R(KDe_m~f(FlqCh^NFpspN+&_am5!`z%HrfMlxn(sCVAev<5L%;8P~) z$SoEE{kGRYHA4Sn(ICY0*=}=qb|%~ZJ_!v_qC~mn?Iv{2E{-n|{lj8u+F4**DJEvR z+NtTs=$r<(0bEk(1{C31s~d4a(8JZfY#SlUSbLd;P%`*BT;m%7A8inXvBn*G(YSn# z#b#amZnO*!bO|}6tW-GXBiU?n7qL*t{2MKKxtw8HVh!~qi`r30QPtExjy#ug+RJQK z{)m%5v(t;hs}DnaQocz1X!fW+=sfw->e$Su(rc#cFmr1O1g(p$X=&(jby*j8tu<=G z4rdKZx^8Jd{O&R^&@nxEk6qWosK6Nr<8uI#eJNFa8zs-lVWTp) zvg#k2`c-5sv7EP3K61tkXR*3_vCtFDAbfP;Kh1oh8FnxQnMHl3S;ezPKWQzD*d+sR zO6<7hQkD&Zh1#!5@1sDr?p}#cLlo*{HFN116J7r<%0D|^J}$Ok_i5Jgp-L$GDt|q| z(79K^0rGse2MvtH8KkUPE}za7P@Y|P-H^lc?a|!qx=wooBOs_LO%-p%7solY?+r&4 z_NmPRC-zlF!#%Y@Xdgw~2OXKeJ7jte)egMQOvCab=JK5`7$~-}s^!zKM{>)A|M(zK zbCZrI3-Op7G%X(;8|D(%gj&Z&*7^5?Qvd(!^1os7pTp6Uf`OR5FOIU|{r4PY{hOm2 z8*zDmb2Miewi*ix3~F&%iGIV@Mn&Fj>6k|V$8Zb*i4D*+xu`s0b-_2uGeQBC*R;yv zS*vmeKVW}*@W&T#s2Hy&nk^4?HAmgTLV$6H(L>1ztD&Al>zNB|&IRTo}wccaDhT9TA3Vwn6aHl++L>f12m zS07-csyA{7($3QFRy7Pai*JN%Zpp3=$S#Yt;RZ>_58RUirJ_ z$Xt;FQe_#;|CGzyO871;I6~K+(!6y z!>rA68%1m$!06+H6?~%3Yom0x>&X(s`)b_UpR_gG8Y0|*!_0iWh>)&#H#GHP-z^rk zOZ;L7i$OhG{*JENUsmgRR#O5{ZDOAgn>Yr9p*xKS5J5=3<=u9}v&yl?#=m&vu{}~? zI&GBwE#4^X)50XcCkauNhm8eF%laNlo{z#t)oXNQS={%6j=sloR*MI&lJ>Iz0IvKK zSxtWeCwDNjhEP0uy;wlaxf`_|>Rq!&0muebqky z$K8;>Ir*O>5%did4=7))+ZL$*ULx53l88pt4cpakUshX5eFa>tG#-g4r&mOXS=LgV zbrtd&1#|{)tsXu|Ht|t&ZSVeTw*b;;o7^dQJ0NrK?k@8R?`VHwO=n^{iAD#S?=l!u z5K=)mtZuj5;pmd>DIQ@q^g8Za?@3F2aoe5i?P(OAg{p3B=Q0);LkmG{Z8Mu#^tZ*q zv_%m;C`rx?`j9d}fLdc;A&FkE%Y;1|n2&aRxEG|?1BzFzwkmigz)(ra7KbvN$q=YZ zS52{bb6>hcQk1pDVbM>B$xCuLs}wHZY4VZ4vCI;-Z#rGzaWF73EFK4}SrwL()hq9y zGH?F!`7tvN)+0Zo_vb~FkctI99vrVX2S>@y&~KY-)H{`S^85|O1y^u}Y1?yfg4H$3 zCZ;y#67%4}{08-@>>2vS_A*Mslj7p8>R&zLMTW_q=1%J!kZf` z;>oIUB#JNDfDDr=dUh;wSW=?kk_c|uFHq2AAZ<<8$i3gK1sxs4;ojc6tp*BQ)AT~? ziqCc=?ewwChE#0^1vyr|QUXYsL36VLqg&gWNKN-dMDx6GlfySCmq8P|UW^k(^+YEx z$s-L{l#=Ura~j?!W)>MHb2;qe_0L_M2IK{nWod^CmifotMjgpXGy^k0KR1TMf&A~5 z$ZWrQmj+%t4Ky20$|e@dN=b~kc|<~5sn_0#oQ$NMNwMJNQsI2or}FadfT>yANxw`yir#)Z`%me`Jo&oG)W|s3ecX?4RX^Rntk}4Qa23o#Ck^M1J4Q zT(z4M?|_*1M7E#!t0gcfl5+<9qjB@{{TxqwEB4#+cfM0oUK<>fv&LyIj8_*KFnbEQ zCAdCUW3J|*H+n|(RWRfY>S+-|^FLoA3ZJDC(Gqcc4eYVfwEBiNiEzMX^zE(n{THhc z=xj}k&yb3$02y{VG4q#3>722_dcndGJZ0PQdeI|x|I_0A@3i{QA<7wMw%g&?@jA1w z{apWD@y`A?QB-DZ)4!qlY^f1F{-U%bA`2;zM3+dVaItA!yX7>w@UZgIR8;|wTxaaOekZq{C2Br&8^$MAQNFUT|M`AOMG!BbblARUdsnsPL9}(6B6ZI zDlS4sgguvY-#09d8@d+zI1Y)pQtq%>GWX+GV#t!R3Q0|dr9kcK#7ZY9{or)&K3CGJ<=$m)nZ0%QMH9`%Y+@3$*|01VooHdFR|GJo z=-J7{_m~hle(jghZD5))r7 zzI-;U&MT#F_kC($V7rXI#`M==HJbzfLoE;i+4PDuvL5wi~WH^=~g~Z%IWp@sB z1GZ=Phq0fpap)`bnz5WqV4{NzGe5E&boJ6Gq|I7H&I9LLP`YKI=#eq?PUgp{UMWh( z`WooRn57fcJh`(TvE?b^c?OrrGLu_&;h_h?cMV^xla?xs%HL`h(3l1D#rXA5^cLJp z;*0qSlG}>(or$^peaT7WheeB2O3?7Xm$v9ncO7^a4VEOy!1SMrhu2!GL~NP!RuPuq zcs9G|Xl6;4B?+;w5o)Haz$wBznLRgH<&7N#C*4vr<RXa`mUTE{I2mgo78P91OdjYZyO}CUNC>cfQ8#gB2I#UM zDrEVSl|7RoUh-RcIoGnGk6(o((DN?1liK4^hwDHfIb~7|7 zg$G3kr$GQdC3~aKOpC0lw=F#-npVTryCm}6mKo+8W37+S-=j;5ZYf+V^%KsuCvvGA z5_yTj`L4dP)0U~6>x`QgKc1y=zfLl^Q~d}xEBHM?a{itmO@>PkvbPiYGr z=-F25#CDrYAVEm}K`-80+(KM+D|)ERqI+Pqmu+!VKa*FzCCY_Oy#>k@(r^aS$u`zfl{b1Gwb$$B9O2YO4^)Lsy zN)ftyKm@`4Bj7%!KI75MP0m>UcSiVJH6t%iB475o34e2X?*lYN;bs%l5#G<#dn6t7 zYdCb&&hH#=yv4Zw(XbW5!?^cC`W{zo9F-#Xs-1-UDiq$jYzrkXneLP7BJ=!2HTe^Q2z*w9oGO0N zr+wr?@_{!(_2HWD?rZ~I<$xN=Lkg8+C9-rq6h?|Q{J*$+r|?Q2Z0k3+&5CW?wr$(C zQ%Ndj#ZD@!*tTt_DmE(Sx2n4LbN0WV?tS`v=c@PBdUCfe@{Tp;nBzBJl5zMXEdR@Q zYcpcioHWkSQkSU9L)}XnNJhJDuqpCWW8gyp{0{k~P^7YlCh7|=)pWOe5h|g1 zyW@$9gBcq4oX&8FM;_uto(f_~^isOpca2xT05PaUE#i+{YI*p8?0k7iVpgCsGVNnf zR&K&%GMDQz(oWLd90aQ9_b~F0?EUXieC_#$L@$8iGyNNi&-GjJI{}KH`6rAt zJPNChctj>-cH@Q^=HW>qPbc>S0yoX13ZNN{?c~Wm24s=)xkZUUB3VU7dgcz%w6Xlz zmsy1h!j}SPH?r#}V{>(1f?Fv$4#F!9 z+lnp~8A=;B!%6bOc5ntHkfDiiEvuE5m6c5k=1vR{rbsX%H;_SdDdNJbD^>G6}&F)tOa8^+i4lM+Cjf2W;u;P zGsGQaCR4SpJljWp*#3By|1AF&6o5oW2?8|fHrrr4O$>g(Hj@y z3FVf;f3N`_9GQ8^4t1Bdys@@!?3wGR;0a75MG%xClr(Tq_ z-!~$bq02{plJd^UO6d&K3gdE%wlkTLo1`P-fJmTp=dsVJPrY6C502DNg%L_jto_DB zCq<0>+s8QLUdhP1c!|Rd1++2UmK_U{iO%OF=2?nz;PSLOL6ozt86rZ7#I1v90o=mh z`O48AQdunL-@NDW-z>2=%sI(VnPoyz@3F`T)$`~}*4&m#(St2kyDs005c14Mjj^?% zs?7z4Z>8yq8ze&;MoMrRTQP2+W3BsY5m`Q!3$dLez_fKW;DlNf^5<;+;KJ886yn4} zyuZ#uKy>#^-PPGL6s$*t;t_0yj1ZlZ2X*BUtOi9B+et44_QucK2EEN^;iXUjdP6{R z3q-N=RL%h^Kwvxq_WmAVtQ@StW~F-`2q;>8AMSGGG=ci8Thdn0JhWOji}aGlI^Z^- zu5^iB9RbBWDDd*Jhy)v3L6pk(JzVo(1P3LWmZ*0G2Jk`HJMxSiO-s96j8*mcXpOfV%uSDFeR={U zc)3NCN}2RafAtNfy1Kmv`SDy_*+Dov^DR#E_q2&^SRnJe;+(oN)P*@#56lDDx zgu-%;)Ym3=Oh?f`_Z!OSk%aE1ty;pKv=YgpTJd0cS;7?9?S(hJ|Nn2{{-a+1dxV=~ zi0v^35D`uS+MWNeBoX7^GQ!^9Mf%PM8mPOSq|`)OA2X7zoo=z5&PIBQ$ zS}7j)D4?gRdzTwBeC5RDtuqk!Q+?4WoG!0l=9E*J&FfKx@M;;6-gB_k!Ji7;h@{m8 zwdDMXQbJld0(__`S#8hAk>8~A%qzYIz-vZ42^o>N}+Crx0(wF&w@f z+T3hu+*GLBNX3XTc4}HfaGme68EMv3M(MFMDuK00jO}7~U_M;tlW_mTl5%Gp8m&db z=A(Z@q>UN7v}g;~*q(VRN?`;_RK|RUrvP4UBq3-QC|(_Zm(@AGfu10OxSLPJUNt$^ zbr{J5rHkIQ8};T}$qXn3xE{1VNXik)Pwg^ZQnV0}8P#^k_hyC6X{C*KF`zIMnKd7= z04wmdtInAZCIWTzGz7n7#0@VVXY8C~XL(rQ!;E?OeTp6li#`T*+3eUY0aQLr8#8r^ z{^7&E`u#6QY5dSm9w_DmGlift-2=ds`8#)*E!0p3?!^SU7Y_BIHhtpPhlIalN$khw zQP(31Dc&nUEP47TmNaA>tADidI88<>H$tCW-PN9bY3!7hAD50Ow86X2Wd;GG&rK3a zOVWk%fkCWCF(9UqDa>eittE%ybxnWb2q@NIcF__G&n9-6l8)M{u85m<#nu(ZJZb@Y z7PBh&$hWL#oc>&YJc1Yu_T0lN|EdJGpNRme#47#slyveztio=Ot%j%Zx160GUT(j4 z30D2=mxr|v<*{4C)~107Dmu2rGLt$fHOhLqwsk#M`1PY_8uIN=HhJgJy%tLsJsei> z9sjlQ3}=+_JwK&VGd~nV#zifn{9LLQEw?N&xV4EDZcW@-U6{LzJ=ZdsfQ{q9~|r2W(Zj1}nN3yHgEE*NnJ&^~M6d4%x2ALz9UgOSS6uAh62h zY?@Gap|u&%TGu5pP@B328{}Jl@eLM`?xtn=eKykv3sC*4>}Ml}P4c7~6Chb>U(r?H zo{*F$piQILA%gmdF5u72+$-i)b7j}T2Xvo|u_sDbOxmD_zeyZ{-He}BhyFAeFq!ET z2?FkW_g!&*ytsy2XNWjv7mG*6iQ{4e8FGjVyO`c{nq3AO_kk2P4kx#h{^5&{7B0|V z!A2<+-QUocfY-2Yy#R-#H&RH43=YS<;POK=y7#h>sh}zf_~$qjq2?%r@k&Kgf4l>g zI3D9JJI3&5{322CicA>u!Ki$AJ$e-^Y#wLYPouwa6g^_Ar8mjCFQDHuA#<;Cj8?}%dDdf zAq~$<9!^0?Rci=1BobXJ4D#W3o$>$8Ij%M#$Fug+`%o}uI11;0&KG!SYgS{ z+&^7G>s>|0o3`+w5|5899?&b0O~wpeU|*Hx>|^&7AN}ftNuyX^edILulAN`9B|*es zmMArTOf4egMyHl3EqqKZaohHY$}BhA1IyFm?3Bz|V1Ie|QunS-R;)a0lhV+L%Kk8` z4pwHVK3DnX21BKez0e@JFSv`ZiDCt}05r>ypnfc>lq^sT;#+%+;=?VpmFT27eFyD? zNxj#`oEHAIMzcSECDt0X$0LVbfDqwX7LWuK$VN~sk2)4Cj!@*cRAl?b2WYn4!OSpFjt6rT6S_%cf zsBU4*$1p1Pq-5H(=e|mrG3$>xJSpHSS4 z0?H6{Q7F0X9Q4G|gP(%Hd5jXjCyAqUdFRrsZh&qKwu5#i-oJF}}N0Wg#XEz6VT z&pFst9#VX@I$oYh?0R%AZ1{9hm%cXr8ASO$RKy2_Yn>RSuV3|G?_s6(~n?WX+Q2Eh(bed6d}-@$b2RIfhw+4 zgR|dDM2$eU;ZHkM$H;X?rR~bMEz(Rr=)MUXqihM+M<|7$&8P{JeQpjU)-0#i5HFoO zTPIjDb4NNc#By%hwb6)Erx*H-08wEbF|wyc%FF8H`+CEUHCg1ACke#9lp*}b}0iy0tn~=)j{^1Y}WcR(q6;lX$a_18Wvex&>dJldR?reOi*r=t$z9ArO~ke!$f0tNFrjvk-y@yO2D;a4 zTdjs25#6KLrNBNkRJt;5pi82uRrEvLAofAnF11jwsVm01Ggzz}e=M5d<1`hTx4bXh zBCZ)31JQ&$PrF#2*RL7k^7xWKcSJ58Vkaz6kw3G*C&&mxt~+&04HJ_!R4~*OjnG<{ z?ydV9zj`7ONMuq#=+J{McWw)G2Z;Ek%e%mz=15t4H}><&9WS-b&AzATm$#9-0YO-* zO&1VCqZYo5FX0rqYeU9a`dJ68H-4H>ohnm4!sAyyqgk8{IoEHtgrJE=%VqAf*%|1n7nEz;ff-r_N#boax)dpXxG^u7)G=Nm53eI}j2 znsq4Ia~LksMj`SPWoe>iMn0k7+p1{^E6f|?mXwq3c7>x~icI>e;K0*HEKr(=-2MzZ zbW2j3Upr{;z5DvhKP(;0+wA=Q3kfFt>!bJI2(>>C;D7zx!}Kx!p@5;ZnA24u(XCF1 zgLg=ufh3&mLhMkSmCn{PXM;m_{odYn{Q$?>eT;}PI{=3kp~JVpPJK%U-`uq?zzX5E z`jB|7nTR4q>c3TU3es~dv`bbJ=CEG6#QGGE+;W19BF&~r;m$#|CYPxoPXLazotCeC zyS2MAH?ON-hs$WODCg5qPV)2AK;3}9FAV!0q`UzfgH4zrJV6>z=cKL2=MI!^I zAy;L7$^H*;-iaU-#1KGllmWQMKhv8(bj$Dl@K1KMu1gh5UnTogboL=m)*2DZl}vk% z`ceMC8gO@wR8^^i()lm^1N=t0MG|$rxP(M@l04bam`${Phe@$hhc2e{+f}gPsjA1i zS4QIj>sCZ#s0jzYOtyYqnN7PGfNDcBpxRK=nBR71f4fE>BZ&pN=`*C0cRQVA^F$M~XXI$%mI$p<)gKKs&O~T#vNuITZUH z&Gv9Sr+u&CMaN-0CGl;`1bRWB4H%;Mmt>pW~$|&1M0;K^S;uJ@I6i} z$jN8Fk6)v|3DQ9?sC|`Dn@C`m>nu*MO($#~Wph#}5zKYhM+ZYtX8|w5BYbl{oUKb~ zWQvp1uA| z4Bh;}5>6ZBF}Rv&6f z9}05eI&xb+})t=8DUW6VeidIJ|XP0{+ zs?makD+A~v3)Fh{T38LWP}OTx)+ebA@Z^Q6-{HZ~v@Ohe-uQJTH!rW;dSl1?CXbqu z6Zci~p^p@h!{1+bY1*jWrplI%Nbt;3x%9M9Rj}XdS03(72yz7O-SP;&_*btV-{83p87ullt z3OQznon_)RFR&k$G>qzuF+>eXou?J1y);=E1R{TX*jgd0w%I@)x>(JkrTW1{PSdtv zwP33d4w`H)EbPRbAn$?32oeQ{ATVvU_V9kq+ z>FqyI6#t&u{RM9O&sV$n!d?A%K*)XqIF5dDqL8; zjn&@a!%)d#$3OhzwJW@hEG4B`Y~70sK!#AtSZsf&DfDUX!U9ctYF00<8HJ}qN&C4G z_!XDs_Zh>6+k?zL04GTGLA_}w@`6@^h^kx&$&DpLL+oI4?brImQVhOTeLCCCNyr)` z8EOrfO}a*2wv6%;z;cu5pQVI?eEE@qC5Iw?W@ECs0z$1zi0f8D`S7nlB^%SxZXmXS9)_W<1h#Hqsh1W+11KY}Bhf7LoA#obBl z>_#~^C)CZ_yR9hs{EBmc!79@uY^&4a_2Wz0{EUr1 z5C~f~%Pv`fgMj3ln@elxr}4=3-gYz{)&;cA!XrkD4K->=`92Ki5BkNbJ5>$>fkiX@ zOKJBCC7Xs%-lF_oP1R%^&ZC>o%mm91IG;UA?^rdWSjuOSZE0{^2H+}PNWm?FiOCwn zy1pa}|7<0l8Cqiw30oBs-5tOYEB@&UnQUyzJi*0GRwM-WWeXxomxv+vhPfSZr)dAP zz|6jbKt3wB(NJ*alq_Yt7PAC>G?l`LtABY$k?l*$`XQ(6e*wgz|e{h#}`;% z7e^S|&eaZZi=(NZ`nHzlZ3wbfigII~!fN(4rSzi&O-o}|Y<{qFE?VF9mKwd7Gi`Z? z8h317G&HI1Dm8DNcli=`CGX;Du4+}!uEiM?+LatN;+!*4K8L~H*lWc(tUIht%GbZN zhOH|mC2K(mA~fPWBMTKboj_sYT6$K?QR}{u!fJf%LoGYhJiDLJjnq_>#`>lOPj*0^ zpeM|Hl;gerU%Ax35O4qax;do(ZGL(P$q8s z;!XMfl;r2qL&u{lo2x|AqVZj{C!)S_?i--B>1@X#D5fidM@H?F5vpIJTdbPzRiLP= zegX@so$*TqcQG*~Fv*^_61uHWRt9#NS4JNY)R?>yO#n>CoUv=?V3?tid39+DwP{h- z)No8YNAxInXo=3;W?X)H2VX#1cq0oo5>B|1xUqVsZe;jt&+jG-7#4OyZ{0>$O(!@# z@Y&iwIfbQ$TJ&<_BM$EZAk!3IW|RRjX>wetFEH9 zf?*t`t~G-&Q`KqQe3>G|1sAULwPaXNllJrIZV|rtIkkM_Z>ySb7IY?uLFq_Qvummq zRu#mX6XuAOBXQVX*AvzmHFy8kfZuzkp2yal<-MoF9rmcXoQ)|jM|pTwLlx# z^oh9ac+jq0=%Biu@s>b$k46p(? zf|QN@qgNW0pRh^MvnRl`R>-nOI<@svDL z&1t?gazp*5tQVb@H^U32x;8g3MK0>!6%TWW6N;U+o~qYeGb+GvhOSHa`&$4>Vdf#YWf{wR)2Iq>`duCzcQi+~A1OCyZ9j%k1K@Y4}S{Eh-i(U!xdbLp}_ zY~ihm0Q0Pcb^~r}TIN<>CFc8qY$5Eo&8D7Q?da=~kF>K3^Sa%BiuSQHlj95bwd@O* zFMAx*51qH+`EEJq3Jxd_KX1>jZ~Y%{F1G{nm!l`psAdiYK7=xqO%KqVnu=-y+DvaD zgr+tLQNyVdad|X42mLpQ!m{mk)GoY=Ipbn^eDL_WxxJh26VHDx^9f$dBW^(BsNJ(G4D4M|{IrkU;z33vn!VHonlFDp=W)n!7SyLN+KZ-U1p%h+n^oL* zF((9q6+?aoC33a^I)#bNb(Q>aP>9B{-OHuXjr6oW=LKZ2BFZAkfG}+flfX_r42E3t87&Et{!Bk5JwIaD!3x4%v@~eQU0O+y3cl%!i>aGd}8H*`_G2!0!k!;TcN2}sj1h2 z1m7oj73PK#Y0O{>{13V65X$L+jvcSLC)XtR-QU;%mr?M1QGGE08+ctT#i|ndh+~)Q~&Jj^dQtwrX@< z>x$yt&C!n*HhP@|^SE{5(m6Oc;$*1BqSgDUOVi3910=A}!FDWC{uTk5al zR6kagd+JlL)rwQCSn6Xh#M?kUky3wUBfI0bpbx=E#{F6m*kj@ZjiYmp6IzXf=s%KS z!j>VcxNiVz_DN9qefB)Mx6pTcvT_oRin-jk7t%7XJ`gzya&Z8Pe zgegU=LQ76gCG0oOh~4Go#^pKB(6Jxyu~^vw61=fTA^6vL5%0r;Oy6yG%ia#SaQD8` z%L5CFVP$-?)xv`6kyZ-z7mwJm>1ksho?a_*eCdr^ci4+AbBKKP2jsj4n>G9LdP$*i zZ`9u&WNTj54PQC_8pr>8>h%}s=|5k+P&eJpM*!+Y`7biTKSaj4rjW}nD_Ykt8dm;z zm5LRoELPT4srE_dz|CyCAkcoHMs$e~T4*ULRCC0v*1qhIA%-1_E7EnR%p$qGRim#~ z2#I8!4^o$%)0d-M0gber+KP5x(fZXr*8pxyIh`p1QD=KYR{ojJlolELhw_Y(jhNi& z;!(W|8zZks9_>URTu6GObzrTOMFZi1DmAsC9krVfEu32{i`)fJ!w#o)Gpa5Ud9btr zenB-Wo2sVqkGyulTOvY$*`o5JoA(0NB#S872+6=!A;$_bJ7$~K4aiJ8_u=EF043oX zCy#a!n0Y!UTecK>Wc+$du{%oIQ|Qt`BwnhLu~r@JX2XW|Jt3xTHo1+W*0XT2(Yd1L zZGF%uMw1<`4+t9YZFg$kgvr8X$UXu&7Jm5Cyy&nUsa0V7C?PEo-ux1Vhk3^A79 z4m+2_E{7=0I%73}HaOGW1Ly>4Bj)Hn|Bp)8%;Fl))Q0|VdQWBQ8fz;Ysu&}DaG>zR z&>Os3s`fUbIkCc=2-O7@dP+NejlykCt!L(rb}+Z@gH}{eLGrx<7f0`CIRLi>DW$Rl za9fmw=S3wz9qMOi8kKvv;gus5E2HI5+?p{RoDf8`N zpP&lpx|27ClOtToe{4!u(Tj}7bh=0R=lO!-gdQ5xg}#B<2Rcm-3_q=`9+q#t;_JEQ|vl9a~*g78IM~I_TUu{h3SI zc>~YpA;!4Erw2$Q1ih~h3r7`4l`hw=fdbR#m`9sd*g|Mwt-QrVFsSZ{H~}*81G!`N)wPfm3`g!t%Tu{R>wCsG57>akcmdeIr+0rrvi|e+jtN7GHW8qA*8jq-{b5VaH7A_`rLC?9D#nhZ zJ;5T%sHLxCBT*@z)`n2qOJxxlp_Q_Lfzbl}vySr*b?5(X)<8(bbQ0;B)yb2vPX&>B z{0T7H32KX`^s8llZ$gBxigvqC+>!RnMqqL%vJI+BDV!j!L_Ed6?yw$jC~tc4J^zqJ zU>ipYZ2gotkcmt38SB(lUZ%hRT8e98GL$+p==+#c$q0<3On8VrM;{qgi^lH0%GKY@ z8s4TvL5?u7c|CElgJ>INPzAA4GM6$RL(#o>P5o_@SySg|#c454c0xWz)R)%K5}H zynsbWGV3*MbLO{6M{s8jPuQGorrA2?jba3xlZPF`A6$ha+m&@5k>Mia)Sph%sqJ8y z#7+lJy^ogkYu6vv^3WjOdg6BH`Ds)8_N*4}LhSKNA?Q=s9m*&ZI;D8QFFf6|XisYz z$>S_~30^RJ2fJt)?W=WH{Mqaz9P807C+P}P_IHMFZT7wiDO zM*y{XQ76K6bj0cqYDoci=r!vNTa)NnOQCtOepvjzKT|m^=5FJ}F%vA9Y=qjYD-W%3 z2$EB^@Qu1rHj@U{75|t%kdXEem*kAxQ6?IfjK6Yt>-(n=lB3#`4UvK~u{WXHMpo?D z!co_&g3(KrB%{JnoA{|#&B84{F=Cnhx*LPWV^$4VfLXKidp4?u?Uv3B=_Q29^|EYY zwz+FW-AN%P=dFbD${xK#$2)Xa>FXYX_)#rP%6!;o0_p50G1O7q|@KJQC+3kSWNY-Nd`ASXY6#+dA z*D%6;`Aqmoctt>%DY`)DLy+xu zmoU~qe^!6&$0s#}CWV2cM~a{RzsJltqFD!Bq}{eppSb^wnRG>_;0t}wP>RUmfHDCl z1W1h{TK+aNu?IxW_sQ!d1gZ`HqM!HeoMtB$#M^Y)kXOa<5*GvTQja~=!QR7Q?cFfq z|A?ypd&>0}Ozb~jxrh)KcXj~ECI2s++8;*Zw{o4bqHX;`!(kW+SFhdWw6b)jIJdii zpwG@^rp3aDs#-BOm69A&z{c>H#JKOkRp=pc{JT?Y?Pr{)wbgo_qR4jPKOJfHt*6J* zRxWnw{Y>}Ku_>H9Og!qvZR_X5!FAdk&mKw<3N8N`fPd&Xi0A5!1(`#Gn0$vcJu({_ z0UqL>vJ|>)jZf}h(ft;T<*7;~kER7|)$2H8FVRBC^+4_872T<-s$w4z6m~(PH2iyq z8+WXO%mA}PE%pEGaKDt&);?%y>pLtSCBiirdNGe;yC70$>#+c0G5AiY0OlN7Uf#9= z9Y*fl`4!*d82pMd$H~h5?1F`+$D8a#6)Op&=ZA5fup85(r%ykN@a5fwa|D#(JlyRHEg(B37s4$pcLZGZM{y$D-JP22 zp}t94PZQle-EV$imFcYmXwa>X%Q!f537~ikruDxr1~l{~0ue z(CARfhhafe(T$*a(CpQp0lAp>-85m|3^&XA(ZjLuiGO=Fth+9Ty?C=?m7SD?N_nc{ z1lx0l37|U2+#eW4@@muHSPMP7lkT zQ2Zp6#8c6%Mx8@s#S<#)vt3By>7h(i{esZ+ESW=a@@bH>3UN^^pklvKBIiM`KPpYk zL@`6Why@$>&B9$_KV}l5(BwB}8l^z*q|>oL2X zX6<_~bMkg1l&XF5e!jfrZ3pm$ccs4am7m!y2OZtI8Fq^jEC#7a-U`q^zm*>ltU1K4 z5|+Y3qX$vD!h@)W=GR8mZwLZmL=oS@3hxO)E}`QQG)nzA5W(ZverHl~{QhWutgeUz zuXE9On#iRvp2r_(_~0>e^bdgjzo&zLfv5iSbr6_pQc)2c2*?xjpYI3$AP47~G7f;e zt?NMp&h>gQlC~RlK%djT1DB9tz{;nDYz#v>fmVuZiTLw-#CzX+A_CRwRDWcBChZbn zF<_d&A~H2G>~(cCPi)3mDoqjmK;7$K1(N)kSo*O+TVup(nQkXpU3VzIkvM+? zmnl%{`}(3dKN?T<6?N&C_~xu3>&@$X!be2(5EJ}lI=j0))tG_w(v7&1^~d#-1=;Z2 z)Xy8tUo_xS3%@`RIi;+o>+3c}r4BGKMM0S>(Fk51liN6TK3zd6{8u37V*RJUn{rSt& zmUqzP4gaboe8VNrwm~QRKCaKyW#&^XH^JA}0OPvWfjxNPLrvPeYoG)}F|KM~8g~2x z=|G6d0~23}Npbi9aDJX_`Oc@Iyw>nl90LV7-wG&l<2Ma)G&($T$aJA8WkaE+$&JdH z!C5N2MFV6(xrzzXuN+MvN26- zl`G%eb)C4)E#H9VG=Bfl>nic8S#O)R*B?0nJ4ZeC@9p)h>PC37^j5OM4eyGk)cG*< zM|M(OeLeWmlunZs}+Z zW>RyZl~u~#r8R;88;%S3c!y+;DN4c{N>84MN*2cMD`)KBuQn!(HvDQuqMSvfe9<2k zNGUQllhUBJ1A?R%B}mz@x~*rEWk@xBk#5w3C5dMG#UsyMSwxyMotO@0SbaeLvnzpo z#8fZTh^Z(XxQNQQ#2o^S4|$1-ZP-N_&zPb?qF5xbD~7i4fM6}ncu?q4!lN?CtZwvi z;xq^tQ>+&!(S(ozi7XN!0#?4D4Cz;zWBLr^BF0md4RY!S@Y=|G!8x9W$*O*9bmM}_ zwOWKRB2=w1EIm?k1N;Xa?%A*4?n<*PLd2Zp6Wo2&kKlg&j9&S~c|?lAd!>bBMSF;vD1|c09@x zTj1m^VKaN+$;vtddz{)pJj(*a(tN)PVh_1kknsv>MHJQcfrc>FN>GS0QuX3VPS7gN z<_t&^e(qg7o)YicrweUD_{41*7o&*v)Ap5QHX3Ok;bw6Min(p;E4@YKaMGQoP_5_iSdv{&Ui^(C*{DwVi{*<>Z~_i%nIBrq+Xwo;4MY-=gm5v4U9i~>2|WM%9A}J z5JjUcuNeYkLvUw@9s_cm4>h4N1B2D)Q=OmjWiG@FhxU+E7<8)eoACn~C5$J0DBF5j z4ae=*=CRmQ_lzYX}LUE2@m zOI9;YMp`tTTE3CQ_`O#~TFv?}zRMxhD=55Cd0#+On%~Me!3w*cIQ8V}&rgv3crrNrvfvuhCscAyeAXpZjx9KW_C&u)W3VyZhtVFH zm;}FQx8%93BUmD;&yB5$Tuh9r(6Q)RAeK{(Gq&!I^2`@%&o^Ape~S*__`nKsK#322 z(H1y}sqO`;1yhdUeUoP?>m>5TkkhigtS{>DSL~;mTMjn6CN-IWS7pX!3Bw45?~rm} z&H(uDjy@h^K!-BnNg21jDX0(Elk81KISQ6ApVXH_FQ+gY?~D$ ze<+Xg?cm?-ks#B_^!gncg8D&1pyU8Ll;`x2%`1kMT0txc@P zu2VyZrEy@}mdUa5;SF8(LAl5yN6tbiPe{AO;&dT zF`x&9XnrUniH(PjDj5mZgU}AfhGnL7adLszKT8lQT4tx)J-s{%o%p{19Jr?X2HZ9# z;C;`I_61fjsY901iy#PYF%d#wo6LrgjW{I>FBWAEmnHnXekT>Y0x7TV6|2_WwB@4==TJW@~mIhz7Gge`EW*xPsXhD4ai(!nDS#RG&SOh z=+LgmQKnMXgfR5Vx`bkM4d?sQXN>fusHO!@8Y@a1b!d<>Mcc5QH4Ba6kQKXU6FKfJdd91rd|7G`yKQ% z6knok77(;mf400uUte9(r7t)4VSVi6>ag43Ocb>qOpaS0;wC}?FQ(Y&q1NHc`mxlS z&>E6H5;^B2H=?Qse{2_blE@?s*pM!w6b5Z{f=IMmS04H-L1+=)fw{2S??#VP{s>>Z zI-JC&eK3vkOGt+%LwB!;+g8%Rht5-A*B|EH!8mk+mUtOY5|&*du4}*Z zF#HZK;1dt?G8ruaz>5+KAh@_kz+HL-WUjkMzk`b^T2C9@lt00R-rov6e=^r=!}E(g z@F2>5^5E7ilpF>yUY%AYen94mYjeasr`Ho)!?hh)li5SZWS{)l@yVy%J32ORSlxL# zvM%iwax`tulvkd7zPFwHBR3-&S8glVb!rgjE{76OJqIkv%l}l*jqn^!S)zUP9=-e! zAVMhpck@@rDi@dK1255kSI@Ok#Qgg9Jgs`_$Zu;zewh0+Ae0)a20#E0y0duTzVRDK zZaO?T{jGWqQ{G5-e54%dQ!lt2jE0_oVZwW}P1fF>efIb``km!Px$ULXzWQT{_-XLh z8)>JJWi|t1DMuuvllQx`cfjLm+_t}1t~9eok#NBK4bNOMaeZDy3JuIlX+`1|iDDow zZEJqi-q6&dL#@C?LZ5zf6*XdqvaV=pCn!R0R#u0W+NDM9`t*=Sxs-gB5$a>-@2 z>E*sd95v)Rg|YK1s#CXUZdSzb@5(sPeA_!dw}ZZm;1+GMDVdrj$e(;+46`^0h!$P! z$Rc#45V+EY(|?gDY&}kS!yocc)=y;5gXR#}SF1mP$4LZ*|Hw~~K&a-$#_;xkSc(4+ za`nHAlkwgf5t{)xy<$MZ@K5FH@1V?oEs5Mcuch+8eOLkrs>Lx^9E$Ii4HjQ@rEP_P zzy()N_GUgGq25ci0ZCCcnbE{#i)TY4z5=^ruDtQn)^hs0CAnzkv!|mK79NTHf>In{ z9vv`tz4hm}gNyCaBu5!4?wOs%nVhXix{O_%xdM~a`bvZgE@QLE2q)Jukd=<9oS)aF zdXlB}yzqr__ADd%fY+8Svy;&x9g5oTj_O&uP{=5~IP!wIKwvOJcAj?V(oA>Hw1TxD z!KctXoeDK8-r|}}VdIyz(iX$*C=)KuXuWBM(}lq8PwPImN-P5K`Cb4i1My?j$x{Mu z9?j%sNOM^u6UJs-e3Gre2eo2ZTaS8KroUTH&vGPD2??A~Gq$j2^&US(QrtCmdaRyn z_pPCOudxj)JBL#Z4$Ey$_qjlGnAC8RZ;1-og%xG1N{4eqoxeo^UQtejyT9bW9}`ZX z6;oVg8KQVS*< z11pn}(yMH1(BgFrsEjXIzY~JEWwB`BzVpA5+%3QDqj>88EtRZ z1g0=9)4oqittr3%BD~xR>-hB=ukpwa;oZDx>yi6h@%r=IHVBt<(#M$q>v<2@N@HL0 zAlh3bt!p^W)=xLGuHFw3aBkl~gVc#WM2v%x)}RLn{s&r+8$F_p%*jC1)+8}b?NaG4{KsEHOY;8aVG6D z)5#QU?DOt7`-z|heNM!=ewUFfGKmiL0XUS`YV!8341avz$v2rC)N_4Q|7!P(`5 zPkeP-$XEboH|>vaGq_5Z+*nI{209GrU8<|Os^1GUz&li)VJF$2!`Eur3|rlU$OZ1P zzNsA|A70r(5%ydv?V=TgT(;eJI$Awf~Sm8d?qz1iU)Uk6|S(=b9b?vuxas)#HZ8WLxBhz zUOS|>c|OJ=We-99{xTK4^N@kYUFB9?>lzR3ZLD!GkDBa(tX{u#8~aSk{4N}kTvSl5 z)#_DA9%M{aK}z|@y)VbcC#qrHT$VfgeT#S&4J29Lqyhpt?1eZ{;eav!8^nKIhWa0r z|9=@Xq@9OQRS3wIcL78;K>UGB9ZVFR9UNU4TrJ(~jO~rAZ0W5X%`DEVZ zIH>Fxdy43UX+X%W)=HAui|DGI!ljbrP&3GlJmyp7vlE^L-$)R*18Bj~ z@h$LF8}eeSi1P|TBfw$cOpqHNaXv*=2YFuD>kA?!cX#smT&B5n`CL3rb-HjQm?Tsi zd5V=)p<#swIr|biYp>hYYpSo}FBUgR({KYdtY_!P=duB@f}74NnX}Ux)XwFdLt+dG zLhK2L&y$78y8DnB7V5Tq*W(6(!$+K!J^xrv{eeM>36vDhd6cRv7oh{}*-b+VxRlCb z$zYuz64B^EJcYs}G$0;@tEwyP)ESjVlcoI`oM}?*@P>OcVjX$-2_p?LEf@VF`FmL%LO)5`8%lv-B5@AlXXMiNT z%8TlNKp5_+Y(yz&4GFKYRrZ+0rQNS3dXcP{mGdOKMkODeysmQX>~VKC2u!YmtT+16 zV78FR2n8>2o#G5cNc;Q&>C-UJEDqgIG1F?2lWa?xS?txt(lPy!71`+S1FaDRs3Eb| zY!=^TuF|*`9yhk)ZQ~Al;2~bsQmkbQP)WrKjng_C_fK@0C5Gfw4-->98I;kDIUqiz z)JL=?*cq=VVeaF(MlCV3A+!>LofI%V&DvW)SDn)iz#3BRf&m9B#&yDiIAX)?1Tr)3 zVu2v@eYy%Fpaby+Z+QI5lZR|q=H(t%_!F#9D4kEzVwbv%>jcK4FpF@MNL)GMl2=*k zAc$>&6=%R{5c-Q>x5?hnW({Kl#EeT4A>pGI}EX6F!&7~X-ot7L?qh7mmwfX9`+T(Z+4L#6#b(+%gYX1NvMh&gb+c@R1zk|rK$%)a34&7Nk=6?mOezHrT1>^O(s)$sfvsA!2w{l_ zDwoxGtn}?nm-pU3@3li zn5p@DGs*5?h` zecIPc__N_&w=gCpCL=e>?WDcWEK^IZ$@^2g6;jsO!NRU4D!1Was4R=JRfMUMagB8FMDk9O1v@^HEi2N9ztPiEeneySOp7 zIP|vPu&agMb@kQOhz)0VjLX(HCSNh#(wZ!>o!Tu!7Ml}(sw~@6W4Sx-X3EyYjtMJr zE8Yvfd9(g-&4bdlzP2pK!VOaon7iX6qi;^Pj7yZa<#cdF__JJQ_)c5liZ>z$upYDo2bD?h&{ zDC}7e>UI(Pc(|ddpF)2ja^tJX7d=AsZK5E=p^}U4Xs>IN&^|#(49!4AZ!B5!=h!lh z)?{blE(qux9C%+qFK$NlyixV9-c1rUXpho)BbN$*4GTS9wAfI?8|Y=I>$rE5#BkIl z(wkuxW-K+bj=S?xv8^37Pe&g}Q1?miCW#Nwp5Eq$%uH76lGU|uE=LD;e@zga!EkMo zI1tq&&&sHw{eB9??$_ZhOOEY)0X6 z9z847m~K@5%AaZBwY=^q+E9*8z6Sl$@1i>>x-!A=S(-5}%a&%evd&=7M`aTqB87T? zr6Rm5pptkD&2@7E4;@+35fZ5#}_?3 zoq8CIpnqE})VWI|N_rXS+?qJ^;xoJtfAAAn?7g%yjg|CB){M3wL8A&)er zb5p`R22W+GP?@)USYZ*XCdMmhP+yT*ZxIT^!f}||peKaMGI9_BhYn)I+!P8yoGtF= zhcsAO3e#rHr)cuEU}iJEQ0PJmK?w0P7%cvRg@P7QG+Bt5wfI8MQz--?#LrZ)ssR@2 zFjF*Hh?$-ELKW#0f)L_oBsgsu3+=X0G+Bt5h4@0|r4)h?;%6Q>6A=rgSSgw;#LPB) zp@iiWf)L_o7&ui33(Z_X(PSZJR^bb|=THbjh@VN|3;-6Z z83PW*#X@haqG+-ZGfVJ=Hm#))gb+V7z%g1_Xx%!BCJV8%0ckYC1wfCI_}hAlK^Xl< z27qH9TtrE%E240U67$0oUn!@AVvtJwyEXiN6DuwKn!+hc|9iWpqqJ-*#UPdV_iNbk gj+N535xpFAH~j4AzUZU0AWTL-cGMpbw$u6SACLVM%m4rY literal 0 HcmV?d00001 diff --git a/src/App.test.tsx b/src/App.test.tsx index 3980ec8..c51a53a 100644 --- a/src/App.test.tsx +++ b/src/App.test.tsx @@ -8,7 +8,29 @@ beforeAll(() => { globalThis.fetch = vi.fn((url) => { let responseData: any = {}; if (url.includes('/api/auth/register') || url.includes('/api/auth/login')) { - responseData = { id: 1, username: 'test_seller', email: 'test@example.com' }; + responseData = { + access_token: 'mock_access_token', + refresh_token: 'mock_refresh_token', + user: { + id: 1, + username: 'test_seller', + email: 'test@example.com', + profile: { onboarding_step: 4, phone_verified: true, email_verified: true, is_gstin_verified: true, aadhar_s3_key: 'mock_aadhar', pan_s3_key: 'mock_pan', store_name: 'Crafty Store', logo_s3_key: 'mock_logo', street: '123 Loom Lane', status: 'pending_approval' } + } + }; + } else if (url.includes('/api/auth/verify-otp')) { + responseData = { verified: true, next_step: 'complete_profile' }; + } else if (url.includes('/api/profile/submit-gstin')) { + responseData = { verified: true, business_name: 'TEST BUSINESS', address: 'Test address', gstin_status: 'Active' }; + } else if (url.includes('/api/profile/presigned-url')) { + responseData = { presigned_url: 'https://s3.mock/upload', s3_key: 'suppliers/1/mock_key.jpg' }; + } else if (url.includes('/api/profile/')) { + responseData = { + id: 1, + username: 'test_seller', + email: 'test@example.com', + profile: { onboarding_step: 4, phone_verified: true, email_verified: true, is_gstin_verified: true, aadhar_s3_key: 'mock_aadhar', pan_s3_key: 'mock_pan', store_name: 'Crafty Store', logo_s3_key: 'mock_logo', street: '123 Loom Lane', status: 'pending_approval' } + }; } else if (url.includes('/api/products')) { responseData = []; } else if (url.includes('/api/orders')) { @@ -91,6 +113,7 @@ describe('Supplier Portal Onboarding & Active Dashboard Tests', () => { fireEvent.change(whatsappCodeInput, { target: { value: '123456' } }) const verifyWhatsappBtn = screen.getByRole('button', { name: /Verify Code/i }) fireEvent.click(verifyWhatsappBtn) + expect(await screen.findByText(/✓ Mobile & WhatsApp Verified/i)).toBeInTheDocument() const sendEmailBtn = screen.getByText(/Send Email OTP/i) fireEvent.click(sendEmailBtn) @@ -100,17 +123,19 @@ describe('Supplier Portal Onboarding & Active Dashboard Tests', () => { fireEvent.change(codeInputs[codeInputs.length - 1], { target: { value: '123456' } }) const verifyButtons = screen.getAllByRole('button', { name: /Verify Code/i }) fireEvent.click(verifyButtons[verifyButtons.length - 1]) + expect(await screen.findByText(/✓ Email Verified/i)).toBeInTheDocument() const nextStep1Btn = screen.getByRole('button', { name: /Next Step: Identity Verification/i }) fireEvent.click(nextStep1Btn) // Step 2: Tax & Identity Verification - expect(screen.getByText(/Step 2 of 3: Tax & Identity Verification/i)).toBeInTheDocument() + expect(await screen.findByText(/Step 2 of 3: Tax & Identity Verification/i)).toBeInTheDocument() const taxInput = screen.getByLabelText(/GSTIN Number \*/i) fireEvent.change(taxInput, { target: { value: '29AAAAA1111A1Z1' } }) const verifyGstinBtn = screen.getByRole('button', { name: /Submit GSTIN/i }) fireEvent.click(verifyGstinBtn) + expect(await screen.findByText(/verification will be completed within next 24 hrs/i)).toBeInTheDocument() // Upload files const aadharInput = screen.getByLabelText(/Aadhaar Card Upload \*/i) @@ -118,13 +143,16 @@ describe('Supplier Portal Onboarding & Active Dashboard Tests', () => { // Trigger file changes fireEvent.change(aadharInput, { target: { files: [{ name: 'aadhar_card.pdf' }] } }) + expect(await screen.findByText(/Selected: aadhar_card.pdf/i)).toBeInTheDocument() + fireEvent.change(panInput, { target: { files: [{ name: 'pan_card.pdf' }] } }) + expect(await screen.findByText(/Selected: pan_card.pdf/i)).toBeInTheDocument() const nextStep2Btn = screen.getByRole('button', { name: /Next Step: Store & Location/i }) fireEvent.click(nextStep2Btn) // Step 3: Store Details & Location Map - expect(screen.getByText(/Step 3 of 3: Store & Pickup Location/i)).toBeInTheDocument() + expect(await screen.findByText(/Step 3 of 3: Store & Pickup Location/i)).toBeInTheDocument() const storeNameInput = screen.getByLabelText(/Store Display Name \*/i) fireEvent.change(storeNameInput, { target: { value: 'Crafty Store' } }) @@ -144,7 +172,7 @@ describe('Supplier Portal Onboarding & Active Dashboard Tests', () => { fireEvent.click(submitBtn) // Welcome Page & Setup Tour (Account Under Review) - expect(screen.getByText(/Supplier Account Under Review/i)).toBeInTheDocument() + expect(await screen.findByText(/Supplier Account Under Review/i)).toBeInTheDocument() // Complete tour steps const startTourBtn = screen.getByRole('button', { name: /Start Guided Tour/i }) diff --git a/src/App.tsx b/src/App.tsx index 4c72f80..3caa432 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -65,10 +65,13 @@ export default function App() { const [isGstinVerified, setIsGstinVerified] = useState(false) const [aadharFile, setAadharFile] = useState(null) const [panFile, setPanFile] = useState(null) + const [aadharS3Key, setAadharS3Key] = useState(null) + const [panS3Key, setPanS3Key] = useState(null) // Step 3: Store and Location details const [storeName, setStoreName] = useState('My Artisan Handloom') const [storeLogo, setStoreLogo] = useState(null) + const [logoS3Key, setLogoS3Key] = useState(null) const [businessBio, setBusinessBio] = useState('Traditional weaving and local sustainable designs.') const [address, setAddress] = useState({ street: '123 Handloom Lane', @@ -140,6 +143,59 @@ export default function App() { const [withdrawAmount, setWithdrawAmount] = useState('') // Load data from backend on mount or when profile is complete / logged in + useEffect(() => { + const token = localStorage.getItem('access_token'); + if (token) { + apiFetch(`${CONFIG.apiBaseUrl}/api/profile/`) + .then(res => { + if (res.ok) return res.json(); + throw new Error('Session expired'); + }) + .then(user => { + if (user && user.profile) { + const profile = user.profile; + setPhone(profile.phone || ''); + setPhoneVerified(profile.phone_verified || false); + setEmail(user.email || ''); + setEmailVerified(profile.email_verified || false); + setGstin(profile.gstin || '29AAAAA1111A1Z1'); + setIsGstinVerified(profile.is_gstin_verified || false); + setAadharFile(profile.aadhar_file || null); + setPanFile(profile.pan_file || null); + setAadharS3Key(profile.aadhar_s3_key || null); + setPanS3Key(profile.pan_s3_key || null); + setStoreName(profile.store_name || 'My Artisan Handloom'); + setStoreLogo(profile.store_logo || null); + setLogoS3Key(profile.logo_s3_key || null); + setBusinessBio(profile.business_bio || 'Traditional weaving and local sustainable designs.'); + setAddress({ + street: profile.street || '123 Handloom Lane', + city: profile.city || 'Textile Town', + state: profile.state || 'Karnataka', + pincode: profile.pincode || '560001' + }); + if (profile.latitude && profile.longitude) { + setMapCoordinates({ lat: Number(profile.latitude), lng: Number(profile.longitude) }); + } + + const step = profile.onboarding_step; + if (step >= 4) { + setIsProfileComplete(true); + setCurrentPage('dashboard'); + } else { + setProfileStep(step); + setIsProfileComplete(false); + setCurrentPage('profile-completion'); + } + } + }) + .catch(err => { + console.error('Session restore failed:', err); + localStorage.removeItem('access_token'); + }); + } + }, []); + useEffect(() => { if (isProfileComplete || currentPage === 'dashboard') { // Fetch Products @@ -176,6 +232,30 @@ export default function App() { } }, [isProfileComplete, currentPage]); + const uploadDocument = async (file: File, fileType: string) => { + try { + const response = await apiFetch(`${CONFIG.apiBaseUrl}/api/profile/presigned-url/`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ file_type: fileType, content_type: file.type }) + }); + if (!response.ok) throw new Error('Failed to get presigned URL'); + const data = await response.json(); + + // Simulate file upload PUT to mock presigned_url + await fetch(data.presigned_url, { + method: 'PUT', + body: file, + headers: { 'Content-Type': file.type } + }).catch(err => console.log('Mock S3 upload:', err)); + + return data.s3_key; + } catch (err) { + console.error(err); + return `suppliers/default/${fileType}.jpg`; + } + }; + const handleAcceptOrder = (id: string) => { apiFetch(`${CONFIG.apiBaseUrl}/api/orders/${id}/accept/`, { method: 'POST' @@ -206,12 +286,31 @@ export default function App() { // GSTIN verification simulator const handleVerifyGstin = () => { - if (!gstin.trim()) return - setIsGstinVerified(true) + if (!gstin.trim() || gstin.length !== 15) { + alert('Invalid GSTIN length. Must be 15 chars.'); + return; + } + apiFetch(`${CONFIG.apiBaseUrl}/api/profile/submit-gstin/`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ gstin }) + }) + .then(res => { + if (!res.ok) throw new Error('Failed to verify GSTIN.'); + return res.json(); + }) + .then(data => { + if (data.verified) { + setIsGstinVerified(true); + } + }) + .catch(err => { + alert(err.message); + }); } // Handle Logo Upload simulation - const handleLogoChange = (e: React.ChangeEvent) => { + const handleLogoChange = async (e: React.ChangeEvent) => { const file = e.target.files?.[0] if (file) { const reader = new FileReader() @@ -219,6 +318,9 @@ export default function App() { setStoreLogo(reader.result as string) } reader.readAsDataURL(file) + + const s3Key = await uploadDocument(file, 'logo'); + setLogoS3Key(s3Key); } } @@ -243,6 +345,7 @@ export default function App() { }) .catch(err => console.error('Error logging out:', err)) .finally(() => { + localStorage.removeItem('access_token') // Reset all onboarding & profile states to their defaults setIsProfileComplete(false) setProfileStep(1) @@ -263,9 +366,12 @@ export default function App() { setIsGstinVerified(false) setAadharFile(null) setPanFile(null) + setAadharS3Key(null) + setPanS3Key(null) setStoreName('My Artisan Handloom') setStoreLogo(null) + setLogoS3Key(null) setBusinessBio('Traditional weaving and local sustainable designs.') setAddress({ street: '123 Handloom Lane', @@ -320,7 +426,9 @@ export default function App() { username: email, email: email, phone: phone, - password: password + password: password, + confirm_password: confirmPassword, + policy_accepted: policyAccepted }) }) .then(res => { @@ -334,7 +442,12 @@ export default function App() { headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ username: email, password: password }) }) - .then(() => { + .then(res => { + if (!res.ok) throw new Error('Auto-login failed.'); + return res.json(); + }) + .then(data => { + localStorage.setItem('access_token', data.access_token); navigateTo('profile-completion') }) }) @@ -362,26 +475,104 @@ export default function App() { if (!res.ok) throw new Error('Invalid credentials.'); return res.json(); }) - .then(() => { - setIsProfileComplete(true) - navigateTo('dashboard', true) + .then(data => { + localStorage.setItem('access_token', data.access_token); + if (data.user && data.user.profile) { + const profile = data.user.profile; + setPhone(profile.phone || ''); + setPhoneVerified(profile.phone_verified || false); + setEmail(data.user.email || ''); + setEmailVerified(profile.email_verified || false); + setGstin(profile.gstin || '29AAAAA1111A1Z1'); + setIsGstinVerified(profile.is_gstin_verified || false); + setAadharFile(profile.aadhar_file || null); + setPanFile(profile.pan_file || null); + setAadharS3Key(profile.aadhar_s3_key || null); + setPanS3Key(profile.pan_s3_key || null); + setStoreName(profile.store_name || 'My Artisan Handloom'); + setStoreLogo(profile.store_logo || null); + setLogoS3Key(profile.logo_s3_key || null); + setBusinessBio(profile.business_bio || 'Traditional weaving and local sustainable designs.'); + setAddress({ + street: profile.street || '123 Handloom Lane', + city: profile.city || 'Textile Town', + state: profile.state || 'Karnataka', + pincode: profile.pincode || '560001' + }); + if (profile.latitude && profile.longitude) { + setMapCoordinates({ lat: Number(profile.latitude), lng: Number(profile.longitude) }); + } + + const step = profile.onboarding_step; + if (step >= 4) { + setIsProfileComplete(true); + navigateTo('dashboard', true); + } else { + setProfileStep(step); + setIsProfileComplete(false); + navigateTo('profile-completion'); + } + } else { + setIsProfileComplete(false); + navigateTo('profile-completion'); + } }) .catch(err => { alert(err.message); }); } + const saveProfileBackend = (isComplete: boolean) => { + return apiFetch(`${CONFIG.apiBaseUrl}/api/profile/`, { + method: 'PUT', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ + phone: phone, + phone_verified: phoneVerified, + email_verified: emailVerified, + gstin: gstin, + is_gstin_verified: isGstinVerified, + aadhar_file: aadharFile, + pan_file: panFile, + aadhar_s3_key: aadharS3Key || 'suppliers/default/aadhar.pdf', + pan_s3_key: panS3Key || 'suppliers/default/pan.pdf', + store_name: storeName, + store_logo: storeLogo || 'https://images.unsplash.com/photo-1513519245088-0e12902e5a38?auto=format&fit=crop&q=80&w=800', + logo_s3_key: logoS3Key || 'suppliers/default/logo.jpg', + business_bio: businessBio, + street: address.street, + city: address.city, + state: address.state, + pincode: address.pincode, + latitude: mapCoordinates.lat, + longitude: mapCoordinates.lng, + is_profile_complete: isComplete + }) + }) + .then(res => { + if (!res.ok) throw new Error('Failed to update profile.'); + return res.json(); + }); + }; + const handleProfileSubmit = (e: React.FormEvent) => { e.preventDefault() if (profileStep === 2) { setIsGstinVerified(true) } - if (profileStep < 3) { - setProfileStep(prev => prev + 1) - } else { - setIsProfileComplete(true) - navigateTo('welcome-tour', true) - } + const isLastStep = profileStep === 3; + saveProfileBackend(isLastStep) + .then(() => { + if (!isLastStep) { + setProfileStep(prev => prev + 1) + } else { + setIsProfileComplete(true) + navigateTo('welcome-tour', true) + } + }) + .catch(err => { + alert(err.message); + }); } // --- Dashboard Logic Actions --- @@ -1107,12 +1298,26 @@ export default function App() { type="button" className="btn btn-dark" onClick={() => { - if (enteredPhoneOtp === '123456') { - setPhoneVerified(true); - alert('Phone verified successfully!'); - } else { - alert('Incorrect code. Enter 123456'); - } + apiFetch(`${CONFIG.apiBaseUrl}/api/auth/verify-otp/`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ type: 'phone', otp: enteredPhoneOtp }) + }) + .then(res => { + if (!res.ok) throw new Error('Incorrect code. Enter 123456'); + return res.json(); + }) + .then(data => { + if (data.verified) { + setPhoneVerified(true); + alert('Phone verified successfully!'); + } else { + alert('Incorrect code. Enter 123456'); + } + }) + .catch(err => { + alert(err.message); + }); }} > Verify Code @@ -1165,12 +1370,26 @@ export default function App() { type="button" className="btn btn-dark" onClick={() => { - if (enteredEmailOtp === '123456') { - setEmailVerified(true); - alert('Email verified successfully!'); - } else { - alert('Incorrect code. Enter 123456'); - } + apiFetch(`${CONFIG.apiBaseUrl}/api/auth/verify-otp/`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ type: 'email', otp: enteredEmailOtp }) + }) + .then(res => { + if (!res.ok) throw new Error('Incorrect code. Enter 123456'); + return res.json(); + }) + .then(data => { + if (data.verified) { + setEmailVerified(true); + alert('Email verified successfully!'); + } else { + alert('Incorrect code. Enter 123456'); + } + }) + .catch(err => { + alert(err.message); + }); }} > Verify Code @@ -1238,10 +1457,14 @@ export default function App() { id="aadhar-upload" type="file" accept=".pdf,image/*" - onChange={(e) => { + onChange={async (e) => { if (e.target.files?.[0]) { - setAadharFile(e.target.files[0].name); - alert(`Aadhaar card uploaded: ${e.target.files[0].name}`); + const file = e.target.files[0]; + setAadharFile(file.name); + alert(`Aadhaar card selected: ${file.name}. Uploading...`); + const s3Key = await uploadDocument(file, 'aadhar'); + setAadharS3Key(s3Key); + alert(`Aadhaar card uploaded successfully!`); } }} style={{ display: 'none' }} @@ -1267,10 +1490,14 @@ export default function App() { id="pan-upload" type="file" accept=".pdf,image/*" - onChange={(e) => { + onChange={async (e) => { if (e.target.files?.[0]) { - setPanFile(e.target.files[0].name); - alert(`PAN card uploaded: ${e.target.files[0].name}`); + const file = e.target.files[0]; + setPanFile(file.name); + alert(`PAN card selected: ${file.name}. Uploading...`); + const s3Key = await uploadDocument(file, 'pan'); + setPanS3Key(s3Key); + alert(`PAN card uploaded successfully!`); } }} style={{ display: 'none' }} diff --git a/src/config.ts b/src/config.ts index aef9f3b..87713cc 100644 --- a/src/config.ts +++ b/src/config.ts @@ -121,8 +121,14 @@ export const CONFIG = { } export function apiFetch(url: string, options: RequestInit = {}): Promise { + const token = localStorage.getItem('access_token'); + const headers = { + ...options.headers, + ...(token ? { 'Authorization': `Bearer ${token}` } : {}) + }; return fetch(url, { ...options, + headers, credentials: 'include' }); }