From c839a9bc03a7848e0afd905abe97510bb5532975 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A5=D0=B0=D0=BB=D0=B8=D0=BC=D0=BE=D0=B2=20=D0=A0=D1=83?= =?UTF-8?q?=D1=81=D1=82=D0=B0=D0=BC?= Date: Mon, 20 Apr 2026 10:46:09 +0300 Subject: [PATCH] =?UTF-8?q?=D0=92=D1=82=D0=BE=D1=80=D0=BE=D0=B9=20=D1=8D?= =?UTF-8?q?=D1=82=D0=B0=D0=BF=20=D0=B2=D1=8B=D1=85=D0=BE=D0=B4=D0=B0=20?= =?UTF-8?q?=D0=B8=D0=B7=20=D0=BE=D1=84=D0=BB=D0=B0=D0=B9=D0=BD=20=D1=80?= =?UTF-8?q?=D0=B5=D0=B6=D0=B8=D0=BC=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../8.5/executionHistory/executionHistory.bin | Bin 8881188 -> 8881188 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .../.gradle/8.5/fileHashes/fileHashes.bin | Bin 685495 -> 705054 bytes .../.gradle/8.5/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.5/fileHashes/resourceHashesCache.bin | Bin 693257 -> 717976 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .../buildOutputCleanup/outputFiles.bin | Bin 1236221 -> 1238165 bytes client-mobile/SYNC_IMPROVEMENTS.md | 186 ++++++++++ .../app/src/main/AndroidManifest.xml | 1 + .../kotlin/com/knot/messenger/MainActivity.kt | 2 + .../chats/data/remote/api/ChatApi.kt | 1 + .../data/remote/signalr/ChatHubClient.kt | 72 +++- .../signalr/SignalRNotificationObserver.kt | 321 +++++++++++++++++- .../data/repository/ChatRepositoryImpl.kt | 15 +- .../chats/domain/repository/ChatRepository.kt | 5 +- .../chat_detail/ChatDetailViewModel.kt | 30 ++ .../chat_list/ChatListViewModel.kt | 130 +++---- client-mobile/core/network/NetworkManager.kt | 152 +++++++++ client-mobile/core/network/NetworkReceiver.kt | 68 ++++ 19 files changed, 899 insertions(+), 84 deletions(-) create mode 100644 client-mobile/SYNC_IMPROVEMENTS.md create mode 100644 client-mobile/core/network/NetworkManager.kt create mode 100644 client-mobile/core/network/NetworkReceiver.kt diff --git a/client-mobile/.gradle/8.5/executionHistory/executionHistory.bin b/client-mobile/.gradle/8.5/executionHistory/executionHistory.bin index c9d323c0058247ab3733d2b714ef40dfe1f52a26..b4b880e4cde5e0c14b265c71c8163d0c06b5f19f 100644 GIT binary patch delta 114016 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 oSMHfX+I)b|5GAafD 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Ð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 T3|zBu{ebJoz0VTo1pE9ys@t~Z delta 132480 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

WX4?zYlgCP{AOU1cC<~qn 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%0D-It-p<`x& z6in=Ju(*dL;d(Nl)@Q{<@+f077ot-{#Nbh--C$t}VcT!v60`}JvV}_$o<ae ztYE=DoLEtnb^CCgf*>`tbnx~D$Nk&|Ua@XJSINtiRd7|pvnW%Mae(V5pb!roaNfdm zBvrv7Op7A+5YmVs3_QfKJTmE~^5W4kB1gG(hqz(9M!!lN$f#~nB@XozU9IHOMFgo8 zo58UaIyLSv4p-^1*kGuD$BH)Q1tGSsvL{JT^y0$KHDYHMM>5zXlQrC=ig|5kY!@AjA%msECv( zA}A^t>;>$4ZD7X+SlD*JUJ=x5?0{WS1iRS4-UWL>`LDfpY!I)%nK$pvdozz2X1-^w zwbw4^t&HlAm>L`-?Z~G#xco7Ms74vNuzRd5f_7nKbqs75sM_?D2JkLneFb-; z+VW9~Ug{8zWFQ=3Twq;%=?O<*YA3em;Bg(QxL(jPRNH#N8f2yF@Gp3mF>%uUs195z zNqTQ-04r8r?B~x%_iqdgHZYxH;m~`Y7RZj3hBH-j9-hUrjuYb9Rp?D7$HB&kYf^OC zkk~zn5@v{@xw#LcOjw$iCGaXPjt9}CIa$$@RCg0cwzYris!tZDR)J`Kw(f}BLROhe4gA!IcttUh$=4xq^ ztmClt2491%1Y_c^!Ip|D=NfFO7%kcjpHv21hb`6iI{ci`+v>VsAfI`s^&oM2)~;mp zpzl>48YERVm@`<~mNi{g=I5_TJ5eTr8-xw5n-JSk7VuU4VCXRR?Pi&u2lo!W8=!jw zcF1UJeFN@Om(gBKz5#c8Q03q76Y{BoLxV3#Ja1*Mc(q8D!yzYc!SD744fY=@bzmys zHaz=5Tjp)QvD}-~+hCZq6;mO@q%D}5_rrE>80`5mu6mf%nJMQ4sS8ux5~NPtTQp00 zIqc3+a$s@mRlvTGnQrUD?GBuh$um)EpfuLdD>R&vNe)JqW_+U5 zQJJv9PpEwx6BZc4TQkWc9i8FPtCc3{lp*UvhTipa<}>#POVYan9)`urg#r(yiNb4~ zj+MMTS82WJ==iLl2S#uFz;v$KSm(%uVE9c8h`16IoI{3h3-Tt3X^}07h{!w?srURk zG~hm@hhdn+sWGW}1w&s>d)lTFwnVDRNWeRIA2ZPezFqvc5>C?4D0&G;g}yL9eC`OT zDJ!8{1uF~7hW$`!Rgk6PdltA6x!#eN@!HQ+Y13=#W)J6%aPB~3NblF*Gi1H?lk)Cj zIY9+XVwtp)t4&Paz^y52B$cD!uyT*8DQ{p$h05+Dytr!nFPBR`{)j6bEfty8{#F#z ziWd73{g3c{X{CLC0a@@C`t^ubCwgth>}d_O>ywLbp+;&aFW1>Oz#>X^IM!bh z?!zNP-oft(qx{E8CCaFZI2IMV(@~4;aDu`624UKdv64&m;q~(LosRCL{d=f^8j0;V zX$KytG~go3Dq5{ z*hW_4XJuOZgW@~5BB#koz+De`aiRwHVr;LnMhEs{0RixBQ)Uf}8yblvOyEY+lHo{+ z%dh@=x2Q`b1+ zQQW808?Gky=hHY~)awzimvGq4RTDdEK10)mj8|5kL`NNRVYHpPxUD8t@TCJO;YQn% zIn;;stX3B<)@H@_8_+j4*Solpm1|`~$R(~ghR;0n;BA%%Fpw=~!jX}hNZ3s245li1 z;?CUX)aEfuDpMBNYDSV@Tfr-5Meq{YO&CfRQK=!8Y0_BW3&Xc1(Qwm&zI--pHr!5N z=6TFqqA9juMP6x&Wqjt_Vob8Ty0s!hQ=k=CV{!_dYoU6{7q?^Wv7G~FL6x*U!{@-M zNfp*c;CY6y1u@fxmQV|E*A|B|H3gJf)pg=k>T5+RyTLC=ufABoe}m;#j-~H}c(8Zt zVyT^GhSuY2A3zbI{aZE<+JiN2pZC4)Z&YDTVe`MMtRJch)Q^_Mb$4q{rYwLVU~Qd4 z!Y2xa_$9-VW*KI5W_q?G$KoFw*HcvKW=I40RF#QVX~VY&a1S>zL)w@*bB)BUn5qKB!|eqw)uP==tTAjS ztk_Ev;&rBpElDD9GlzzdRYdwd*lQZl>+ej4_G&GK_M+QnDV)=xiv6LomrC34-(oXr z%!xh+PElP=VGn~QBI8(lkYPWUImXd$WCtuOi)6x_jcV48L@0q*M{h5Kn{)3l)gvQn z_ae^AVZVnaQaVHENru6)G9*__cBonVkwai&T`gS>n+%SP^$KYa4?77Tpu72ytQC-k zE#FqR_9ivv&_b5BsxO@3yRC#AbQw@d&>hx>3M)1|C0uK`Sq%}&Hs`pJDz3E;siuW+ zGz6>QMk`jFXeoB*KBcGE*_L8o-bdOQ@`7jGLMh!ftlfy`YG@5}4b!l8Cv&Xe$3&OO zYAdk^Dn*HvxWAe*=+zuyDDN|-%F?n9R7360agFA=?jx4RI4_Vsg<6 zcF7ZaPGm#xS=KWyKKbP2hFf1_1PN z)6--XzoaktdXl8Gz2F9>j477N=ddwT01!f_G9B^|vAb9IdV-i9_y0E5bgX!sIg zANX_yHpm* z_P2(bZhPD_$@#?Y2H!3(Ud4uXb(3gw(}Z{WgJ&G}+;;A^UBt?(A?fH6eSy!o!ApGH zepFur%SKP5ThCU^^wu?OGvIEeuy>EWAIXsF}sgft~ZhV(T}jF0#>0 zEaxSa(dOG4TRRaycX5B^auQ4#LCQDC`Vp~*I7De2z7(bxm;>=7b~`-5K-F3(?yGdC zE`w=YXgYWnByFcOdbvi!hiBCIiW;ec8%;o>kw8$r3h+ZM!VH8uN;*m$w%ChsRAEy zbER8gZQVvGZIj$$c+)Xca+2G3>-kLB+NqT!?}m$bRKtD6ZIqFjUa&2(LU*!Y;t%vM z_!sUhp(_2M3jCnV49s3J)vdWw+D?Otn02@)x|LGqt`XXjRtnf>eWLp(nF20eW@1sh z>26-yC`HE-;GTDSxMd^7?2WR+0Qhbpc2t&6TPtkBn}r4PeWKlzWh;H6U6sM27{QJXyfWot=?HViB+vn=3-46XLl(t2Dz5S#x#a*ay zd(w99W6mhTiIjCDNf!g*RTVogJ0iRjs6$-md3I1tz7UvQU$C!ix@Z5EoyhX;SFAhE zzpJGX-VQX@7FZ@$X%reiNnZ1>@b2*yXBCP7OWAQX14;Uwb{m`WTcwQ9J{9V&^$I?w zA3m|Mka({0YygLI&pt3ygjyqjiF)!BmCpkG8j?fnJhv!>9LdSHf|(q@e`bf>Jm2ei z*n+t|Hk&EDZg?Kzkl5g;R(sk>?r=E$2S&f3}tG!Ede!1KPn0 zy2Ed98Yx=IBph`?qN&90QkeLtSiR$L_oa%yike5B>Krn8n#VGO#jn)f%{IF*tgyjI zpLOe>PlrdW!$+&R6YFkKkz`7wBwY~FWksR$jlr_bGu6aamvf9r=~K^%ik00YaPewZ z=^3DSxxmBToV-`}5(`eW6ibe}4;_*eM(=?6OY$Bz5;Ev+p z6iE`druse{(^4b>>R+qxli4SIU9~|#$yv^DB~bCo1LpSj&?MJR`U)`O*-2kVE{z}s zb0mp8jLn!1w+v(E!bhO!NSrHa!)Hmd^hg`(ybVt6YRr330Ix;pdjcCI_O!3FIvB~k z)4pC@>Lo+wNjmc|j__tgH6zvYASrqT^WoFwFEpn2d`S%0ydiNNS{2BXVc~WJ71^0!bT;7oPKV6jOz>q=9~Cc4d;?gyxO7P!}nyr03M085eym z)WJZkFZza|NWADP;jO{w(4JP!HK7d<{S;0>t*pob1GyHlz2s}4nT_UW#I7k!Ht5+< zu0eW&nMLz$ZwvL;Aabt31_A<(&dVgtm z5?OjwqB=;jt<1MIiWlES)eT<wg#>tP_vm-~v@Tjkb+tqjz`PF7d=`tmS<3>$3agEqlk-{wkN z9*Gk3USR9&hQMlMve!?!Vu+QKI#`LOnRcR`VBkot45mEZIA=YgPOdDhicDU;8- zwnO*o`@UX$bc?E668}Ui7w%ICCfaKyW3;J)_j)wojd8n48ir)`T8TAt7p#?dDc!T% zz`+iNix0O*alh9^~ zK>Y!1@0HJeUAQ3NR_ zd3BVN(a7S=o==Wxt}jWucgmRCbvSbgFSeL zR!K{yUTl^4@~EwhWLaj7I}Ig%z!9mtV5 z*WuG)xahBZIu`a{d^#5K2RqWs0iEA~(JN2<-&jqR;j2&OrUj%*mxIe5yXNP{-@9`+fa8ZLJe zoBLO|91T+qmtzV30+++$D&cah`2Pl%W3jd1ayPI8zr*FI4dHSqC|s_LT2#U1r~^Kl z`Wsx1g{gweF;6YH95phy94ds%U8gpL%b`NJ996*M`5i8YZiLHSL-&8dzbv3UoElDkApAxe&_GEps*9J&!DhYC@07ikeh$x-zulpIDOO6~%U zN0c0@i^l-?g9-t1rI@1@K#m#-0_2!m6+o_p#vnirRpJSWgJu!x`2F!=0xkPo4mNSus_JZbOCWwsX{m=r&Y{ZbPLK-F6nD|BP;9-v2?qs1VMUN6R9djoNC#+0cn_ zHdM9XY-mF`+fFQ67tY4)e}J=5CqX#dE~+58RFf50{tKK9TbfScYzRO@I2$U2v!Oyb z+g_TZoWj}mP=#W`h2xn73oC-J_H4}uhp+Yzt3#|iZ!+=_FHrfujV6Fpa z!}cMZ4Hd%KP$8UcAC~$PoDF-4a5ffK2hPUKzropO?pjDulC9r4r7@9JSzV2WbX`v(c<7;A|Lxa5hv3XG4W>HmVTLh9-ow9i|x(&PJ6g zI2%SFoGqWmBAg8s!r4$EoUH)M*M+lT1j5;91cS4oLO2^MRR_*iNJA0Mh6>?qRH=fq z;cpq?Y*fMQ>UH33yJCJ1N4bO>joRj7iqu@wI!oNWi)ZK{N`p+_a0je5#Ne}S{* zV9;OSY&1wUoNYT6|DWM(G@Ph}vu(pf{|lUrMg9fO#)AGAIGZw^63#}KRKwZOgK)O3 z*wp`mv(X3=stV4A9+hx5mi2#xv#~U);A~s4asLaPjYblca5k3XFK{*%^cOfA)}a#4 zh8~r0HkSB*fwN%_m2funsD!g^roC1PXQQ4n(f-|t{SCA>tZN1R%;!U8Z*~HsWEdMlp3Z( zlp1U8A5dz{3A8kX$RTI#Cra&yvldE?RrwoA4FPJLz~4}6XhW15-l}FOHLnnd>#Y+~ zFV^4iA#0h~sG6bF*3z|&C^f3!Nx^@j)G+2xC^eQq1xgL;K$IFPM5(b%bx>++Xmb#y zh6+(?RQ(mDhCwP(YRvO1N-djKVntDEs1T)wN+n8-dj1=whGhk+P-^H=iBdz4N|YL_ z?~f=oY|WogYMJQ$FO(XK_}@@!ELMq9Gp&tMW8R~Qzp%`hsV>Wm*=w`Rn6(bejG76u z%vb=j%rvs^ea_rvHu})2CkiGyQ>O#zvwp%Z#!s%0z!)nK9=dSY|BaZ!EJF zbR8kfj4F7XLRn@^BFhZ@$TC|_BavlB6?~pvhh@g>wOD4%sETEV9>y|ThIJ#$j7emf zp%m3-nK3JHo9eL4n5Q<&j9FE(%$8zDYO~Ck^*5FoGyTRgW2RaxGiI#KGGo@?SY`xk zR>d-79#t$e>LJK7Lxn6eRLC-8l4l?*55o#@uySW>_9sW{YSh zWSLP_Ci(-*j5*VcYq89jSvAWHGb76k6|&4&{G*>#GUU4>%WNT555EauiUH=V)h{eF z=2FQrqb|lWLxn6eRLC+z^^&s8(lNU#mKpQ>jb+B7RI<#NOC`&Ux>T{u(x_b(%M2Yd z$}&TREHhNdGE1e!kYz?y9hMook!6MoS!OJ-7Rzh_mafGzW5)ktnb8P>EHf6Xie+{Y zckHTIX6NYv5Lsqa{mwF@dwj++J3|$+%!)8d70ZlyRI$vM=MOA1>SQdlvzWRT%j_H) z|G+Y%B?z+2SlQoLX3TV0HOmZ3BFl`0)n%Ds1hULn6Kb=}nDtkd8MP2(nK9pAS!OJ( z7R#)dWyb)n4>PyjQ+L>5Y5_gakKzw=Fb!|%~&bbOf!r}rWq<^nz22_ADL#!bRWf- zW>hk!88af&42{S%L!;=RDyA88)nb}4qbjBu^VDLRCE?Ce71NA)YB9~2u@=*;<_q)y znPxhUvYPij+cylKv!^U4e-3?0yECD4gQd=C4w_3O3qOcEmolc=!lu&3b>LDo4_y8I zH(ZJZ{S_|tjkXElQnjazrJgd;G5~G*N}U7PQW|AA$6eX=L1)G{xBEjXdiy^-)(TAL zI(_WyXdSrw!uc2B0bh4q1k=s4oRpyi~~#U=!*9kI?)J@Q5xG1RkM6;1PEHzkx>>jKCu{ z>c0Vxa1arA^oDL=2t1++rUCpNc*Kl#fk#*jfk!OjH{cOE5qN|Ofk&?~`>((wE;W(* zLDD#G6;+8rQXg(5Rfr}+btMRx45$!I^on{BP4p5}9W)U&5{f3`zM!hSBj6rTA&>|a z0*RheF9L~BA&`iwIzXalG|;>gd{K)kp%Z*df-18Uq()WT2_QgEX&fg6K08H)B%&v1 zql6(;NFqXoBqCHuB6>{YkVN!|DkKr1LK4wKYC{qcs_-zWAD=295j7?W;ZjfT0~$dA zL>5#5f}Xx=Ge!96W0Tv`dVBl%bb51bTfi>_B8+#F0q+GB5QtpNPp1sAaS;TJzqwo# zw9@sxjxG4fCcHdcH|HJj)bEr4ty zs^BoDl1+qB$R@f;=RWRA%FKnVxwA5h}Q8T>x4{V|ms*p`YRT)7x5gL(AMEAo4*+i(2P4r#; z$|kx+j|+@VL?uBs5h`R8p+Yth7DhJFZ7lMWO+=R&n+O%MiBKV%2&3z=iSE!sLdqs$ zEkHKWU1~%&5p~0w`@tq+%c|H!<+Kd4iBKV%h()Vn6JZRpi7IG0WD`*va5aBp6QLK` zL{ycDeq$415@Zu$7_x~_A)APHLIs-$`&Nrhbeyh3WD}u6HqkL^qiiBBs>eg55!|D= zt|^QN6~Kth$+V&HS>+MxI5`x+Oodb-k*I(wBod)QA`vPi66I4b5{XbDk?1hBA(03b z5{V8`8xo1AszoF^fTmhRB4(^bB%(%Olmn3nRUQzD_$;u%ka$#hn30)x0ZPV9zfp*k zCQ2cSd3T_CoU6|pll|ju;x>sXPjuyKlkIums+*qKI3i?`rF1dLehbqKUB4?3aA&T8 z75fuCw3oI3(L+?#K@TagE5D(KsEHtY2o<7-_D~z5hp56Vzo3Vh?I(KZUmA_*AykMS zq6%hk{~bMqZbT35rbQ4vgsK*L2yH6SL%V2N73d*muZteqN$WxM5LIvlSBW0VrBR3; zqN+^v2lNng)^w1`n0MSEK!K}5l(L)<)0HTMeDii$y zJ%nK@(L?L8SY7lGwG%`Sp+fY~I%>03g&v|F*kAvO9%80i=%KYV?ichBTmFF_T7&K% z=pnZF13i?5-XG{8w)g`*#1?;`hcdB6{}Xy>HH0$s&?>4BJ%kF;L#Plvv=USPh8|+3 zU(iDNnKTQW}P+Av}5^YUn;aZX#;v9vk5R0gT8e-;OQA1b+QA5o48)^t^MAQ%}L=9nk5H<9e)`qAd3MHW@Q9n^b z)WT3hs3>ZPp-W0Z@mYLb#1PG>3NeH=Az}y>B8HyO8W1sr3K2u75HUm*ZP8D}5UcZ7 z#1Q5}#1QQrd{Fr-V(0-)kBA{uh!~;@9(Jfk3}F}|hEO452o)lRSkLMrhFB~`3{eHU z?B5YX%vcLC^az_#2Qfs=3^Bw4R3U~i1`$InMm1sx2j;&KLl}aHA=XEV7{bPiY9WSj z!vVxlJ9XMTAPfbfK)}!|?8t9`A!;HB7(#`BAzX960ES*-vEKkgxRD`X=s9(gT7V&H zBnTKng@7Sc2pGa5qTc{RX!->(#Fl>ohFFohfT0)IwBG(#6o@n4C&*50AHvh z3cw3>51;A& z8NotK{sarXN7qlV5M5?qp?6g6T`kSzRbk_iEA$2>a)sW~ijXTrRhbH|&}+2U;R>Od zAXkV<}ECjhiOd?l^N#qJq$+$wyh+H8i zkt;--Pmn9bDn_mllgJgq?h)h)v7XlD3bF1YSBUlKCs*hmZV@WELd^A(D|8n_kt?K> zs<=YTrIIUDK@~!N#qE9 z!D7e}ViGw*Od>}J+kzY+W<-wAS6VG{gs71qM~JzRBShVRRiYdrCXpk=Byxnl(Nf3} zLWLY5s$j|z$`N7`IYQ`1ju0y32-RSnlp{nHU~ni$h)LuKF^L=@CRK5S&f_3bju4N@ zxV1tTr9^HJvm!UB7-Nwe#3XWq&Y=~#K};ey=qy+nHwYDSgNmpPxj|Hw5#$D;5xGHU z(1_e1DhYCfPN5OGK};eyh)ROoAZA2v5R=FaViLJQCut~hgHB*7I@t-1?zR$f?Dux%HhbA*Qs zTkg!<((Fjlnif`9))r^3d3zj~BBat^=xCJdQ?^UgWc-%NuS$%Y^$4#ygq0<I1_E!vYSKqk!@WI+a)lKqg zdtic_Jw&!m*vQPim&R*}O;T0xgjIo3dvgIx!RHV%e5=rqWNj02jiS{fOP;=aWPQJD z;UW$FnXUI@yAQUC_BO}Hi1=^^qvPTX-ELazPZyp#r7keLl0f*aqaBPk%7x&^QC&iK}t)m^y?wz_n`Iy#@ zzMod^YF)XfTkvXZH6L!O=M_p};`!}D9$6eH6lf|PFvByi`)X=o|KzP=%xDX!ekfyQQn$4`aRt=)M>k_> zK1hX)xw*6rHtm4jMODUe=*xDRiJT9JHX&ihfndm%zXU{E8G7B{^zi+4jolf$*1i}N znZ7oMmVVSu*o2F!;5a<3q2Z+RxU`X3eAUUx&+o_!zxJNJq|@kjo-475Nl5_7Y#Z%t zmfCpRqBO;)FIv4l<}Z_uKemmwPn49Uk+Bm7Yk&8)dhRcrCcm8CpzTvxtRj!5{nj3S z5W1QhyX-wZm1}abrh2&jgzBBx-YJ36PNupBPF*zz7p)k1?OaJ(gNo#v>*!Xy!I)NP zO>8C6nk2S^kZXGFlG@h@?OQDuU+bhOncv2gwd}}TVD?8lo9tV-HEm?YjHA+y2PXF1 zx?mN{!X*I`SiKz^blP)b@3<39ESn{c=d}-S{J+ zOZs0w_GbH?Ni+s}W=kiJ{8wmBw4~7u%y&;qRqNAq;lY)6vX1mQe<1Hi5KKWxgMy^d z0;45W`wzy)CiEINXmc0uqC4fRufwF#jSX$izqI$Wo-#^!&$eXFmz*2BX!UxhrLN{y z?j`}3C$87tRx|Nc$eb?CH(~X;+AyUWWVVD&W6i@;iyOwA^!zpvqv% zE~a_aL1=22wrttWs)Vkt{ztwYwRN&7p@T$TorW!B15HQ{w~KZpA!h(ImqR^qXJF-{ zNxG|Fr@fkqP?SY@1ZbzYjw;t0hXdf+fqUFj&e9oN2 z5ecIbJVwR!sV7(!dc3jUkea5+GEIj*5BfaE`a_GP7KTTj9pprC+?z$#oCtTg8+&st zBqEcFq&9{#?>XM#R3?Y`+fFv`yJ1|`R@$=MBB`O#qh)?`4pq%l6l=ZjbBue~n0nxO zL5FB#vtF5>I%XNPI2n9rq3*|-C-nB=R&(hQk7Ra;HZcvDyy)zc?P3w>vg@6i)aUF9 zY-{B=QViY}clIxqNO}hP_tSnka%{VCrL3?iXWoyV&^?D!mCexg1y=pdx-}@CdbO}u zHg?@MD7pz3n^+z!v^1=5khAni`V2B*%+3Rs8kc>b6%j!vVG~2&gYx|z4Wrf`IFXmS znDau97AH36q^^d~U+V;K`{32YbH>{%OGcKx-bl;zItQrlEuDk{txecgKCF3JC!sOf zeoo3aomkm$+SbkmJ*%7df6{H=o2RTlD<+Y`PC|Rr1#k2pEfqc77+!gM<54N+B=hcY zA=w?H8<`cH-RhA&abm1lm%zT)b{Jh{UdrEx{6@HwJnSW$d;L&UX8pw;T)AH-k4)ND zw-BL^>tB=+WoOq!aM21gqc?NHcH(q&>D zDzs|7seQcU)IQ6JvIl8q7w(_y%J!3wEI6sZwt}vsVfP>0N|9D8eCl1l{M@Bz)e2f$ z{&}gZJ7$Ni6N)7E9q~)k`xeGG9#eGudC{SsGxB%!Ghs~+71|obHMCqWiz*IPY*=`j zd-Bq&WsnR`x(*2K4PB15NthL=HguGSVce^sbEMeTR$)Rj!_k-b69Y4Y;WrO{Xel4+ zVM7lCB)3FrW15$5ho^a!aqGNj*7 zv!%4%7Y5x!~ZK%;K_wA+Y=-IQl`_k&grGyh2 zZ3goncCdeYFQ}}_sZpTc{?xI!LkJHS8X1;FhBkDRMcb%FZdg|}`{j|{w0ZfZQd`3< zN7cXaKaJabtI@FwT?F<$2yMXjaAD&*rzi!uq6!ZQP3xSZFjrM*w6%ZdxIrDI>P?!K zt`xj}+URHztqJa>YH-r~4II+feN=+`z<9dx(ABnedG>8l@`SY4l|JjcjyPkPLF*na z1MVtIm>d>uXqaT8-CtlAoqFLyhE3a|O_#Ch`WK<;!%sAhlevsM#J_zz|03V847*z+ z6E-%q*xZ-j;$XdJRwe@ucP?JCGM{#L(nYD6(Hz&XrtVL~HQg_+Iq+7bZ|SX38}aUJE6x_k6P_|{=V5k^Zj?0SAHFW{UVw9 zLN^y|ENo-*h9o2m9-XNCZD@1}+u(kCME`87ZJJT1ISa83v6rOQW(M2OKAAtYT%wkJ zs7p5S_;?sAN-A(8vMxd^qio$bH+DCf)$y{%jQSgNhJ_x(CdSF4jSQa|X(smh^6K-& zzO8Oml&@%sr<&Wk2+hoLIVG2uE_j=_$NRRHWyxUw{g`vk3k`A`+=hJXCi6SToO9!) z#s{i@&XyelH%#dzwQ9L)_yLz)QzKR-49*69&wVjmQ|IX8ytH6|*`6^&!O~Q&T-QTr; z5xc{UlR6}BZ!^8(QlnkhpW!Z?J~m66^w_b{ zh``1f!xxM=W>1h31 zhFbaTvk5h9)MMdg-wj?nu>LZV?a?`o2rk5FDbAM0?RYoq$f0)d-(GR#PzPR3qw)Rw z_Z=u7JKC>be1f0cyYC43uzwOnBL@r^Ul0F`FA;r1FH4f>$k8K14+Xhrq_}g*P(v?Z zgM&!{rZH*)w*s{pDY@ZevW!>k+0PqwguKZQDiTa^np@oC=Io{Wjz8|KzdruZtm1+o zMR7sL+5h~tTD6`;5D;uZ&UXpZP%LW^yiHH=eqqGFImJf~^6YOOZ2jRxE=e#8z9nco z)1Ygkh>ml@uRYWB8hc>?i7^kprLYMJzRD3iENT*ccX_W*je7PNSFr!RnAlncUl%OT z+iK>`yIS1potZo^b&VBy6&8HGp?$$|V{X{$1AZ1_^CNeYKXDfLkX*aq{v^gGI6-i; z^W$UV92QU5<8*g^>t)>aib7fN5su(V_r%gOil^NcUTtDPb;Xc~V4^7) z^59E@s8PA^56jJl-z(nOgaq^m4kmXVHK?x`7!#b&6O;~}COwd5_mFGe+QK6X?obVP zZeT>(Om%-G_$aQ@JTLsFwXwC0QOREKVnr{nU?~UAe!53wFY_N=)%)G750_3BlQ3N; zBa#yz+*OcgKe1oRlWm`TyXq9pY2*Jv;Vue(r^cOq9=7@h1A@~Gzq%Ahg*=W(lF#OO zG!Etme>ex8+yTM%hUrs6E834Ow&az1<+M3>aCR~+^JqY@w{PX(L%Zc|?|gmZnc6?B ziFQ-i#@736%K7);!OM|Zw;MP96f^)#?Vs&DHNWeTF8^FwUGlN>!|o((U~rsy?JeSQ zG2J_@Trt<06hE$SN~-;W1s1eFVL&!`a(Y&nN@&c8j@#?fLAoi6>fh9xQB31K?LnGLpWsxb;+ktiQd#N2RTL$MwB!liHk)AYpLeq??dsxskB{<} zlLBp_k-}|ONQ|06^{z5SkEqWtuZ_E`AzRO>flJBK`SFH|oRp9nHG$EmY@;44X6i(x zPa5&M!ZJm1XkN&0Gex_NA!8c-X$)-6giO&9bnkqStXtgby#3UzpC4^HA|srUA>$N| z*FtXb1rHl)H3@0F{c?vdf&@wPGoy%?TDS-%;tX*mFwKU(VroT*otmKEqwBLuPV~vu z5=@ymeznCx!Z{TpA+dKubVyQih^@ZBGdWS?!GOu#4|n_;f4R*^9pZKRdqDUJF9XHW z`yoDDLD7|oiw7EcUdmsmy>livl`zsc_sR7@XVfK3my9~|&lUa*Z=X1_aY@PJMWN^JXt0eWN#Sa9cW8S?$ z2Qt|i#$f9PItlP@ZOSxuY-&diI73}~(O9fa3Ri`i62aQu`b5no)R=n|?8MR~RH9vg z5!-BFD(>MA;WxO-1x788x_7yR_TbK_PkXjh8^I0O&1pbKkG&Yi9MiT|Kn+%zLb5g=lHA$qkYg)1-&pLc0VMV$w32 zv_|S%<|+KPw5{9Bxt&f~X@lwRibt*6oN{~bVc7ZofF1T8szfxPS=a(`m zK>QDTtA3z+sI&Ic8+6#S8o~xu@vWZ?Nz8^${?F64A4y@|DCjI8r-a&_j2Ltu!>!ikt7EMFns0l{Yb9#_^ zP*$|$LVNwLvpwOa+qR&giml?%T^#MAC$t||xtv3bDpre0R&!X*XTe7HHxG^Bo~O#Z zMQC?zs^Doj7v{?fm&&|JE^L6>kI<;#(w0bNX5;}FxfSbREBMkPbdVN$zi>I{31@{Y znC8|X`7J{Q+85CCjmtSlI4wiXiKn-vFrx){omz#$%!=S8En9`kwJ%}ZdoE}1qPX=i z0XZGx@>WpsU38q~at6Zy@e-c_FqeUb4Y%#xIkb!td*GQ7qsCcF## zq(&^&VnT>cj#n}n)G?w^;Hl}d-sa%IM!Osr_MWLV;a^gz7PDG$JvgGNra_Oz;`-Nh zgQlKd9XQ~`q}9=!{Ul($y$?y!jQPjFaQuYQ!&7=4+AG-Zv9gbU4a~j-PDk?UtcQl8 zK}5t6HG%1n(C8rnYN?r{mbCkD96-}?bNI%@wth@wMI|rXOj9uHYT8z@yFp&4}Q&P^2V;d!*~vzV&?!W^D=a%ZRbGR#(Yl8O(PvBiK^ zoP;+%DZNr@kZ7$P><0Hgec``&p7;6OO3A1j1@2A2bfTGI_~vhY4?3)|IWt|J^Mc66 z53nWvc1?B3iZRf_~}2 zQy!TzPG+EedM`bg5k0z>b!_TLq&o0Yd@&eF4;{ZQyo=OLhL^bp@-Cs&pJ3$!lg+@K zx7TS<{&-m@?oF!n{*lFSPtvv}{39D=+Nf2pw}U?iIhT&tToiDM_pJ!q`pTJ9{Ueid zi)q~UmVWJd=c%38K5=cSlyOg7`*JT(zvo0*q{T%nw^Ii?G{3_*?Hk^1L+Wi#o))xg z`A(8OQRZQO=-nxyaJO@jf5fQqBVyg!Ucmw{Y+&Ai>`*^zQaQ`2Au*o>vrAv4Nj)aX zr2Oj`^8qG1+aJ}C*gl9bAX$@S2KCF(K3#)zmP4{9HEu@|!~9Hmx2ToaF0$$pa2o@b z($;k9Hgedc)7yuK`x~E{-tTN2nC6_yb&0XNtjnem?oXpy zR`_}tvBTk+$uc+X>2zXi(HnYWkMk(Pg!E5=k)KCrwsxNa+v9wyhE9<+=ci#{vI&uG zg$cQy&Gj=?yq+T4#`(WGgSJ9CO=hG^juZe^{c*a?LU5?Zk_xfLo|-ic)|&^cxz&Lk z5S-N{fOub?3Ff+uv%R4^j9^rU|2o<>po30w7@YvL4?8N{7F!QIwj8_Qh zJ~rmI;=sj-TrGwF#29%4Me&n}K>b-$sv{Irs=G?1|8WE&Uk3+;*WFNh4hiy79B3Ok zvXxQaf4V%5(=}LkC0%#dEuOgfI#LKfJ-anl!G=!~hMXoF$16tkoO(vs%8%nuVWyd0>!9jGABl{U$YVpcpXFH3>)nDSf&RAU)|1V}s;JI}% zTzxM0TZ1#pDqgzm&zSk<^g6gCf(I|jky6txmBl+h>e;o394lX65U;&Dn-&r+av+7- zR&YLb%f}d|>kONm8KYp6dhGSu+mrkL1IQyND+^-ODj|N4QLZPYV#T4b(35u>mIk*S*6#e?SlPV4`4{9Ke5|j6=b>~afRjU z0H?cIM|KHy9@rf_h~E9aM1NIKd&BUnfmKpT&Nib|oeG&vB(~ z6vuOCo7r6(ChMQa#`c&I8E&Y*j@$OW#+$o#^Six^vYGa13oVmBBeJ)tU25e<|6`>Y zAC{%v+I6tmq@7sT91q$O5ee6JGd9d@v*}7%dary%$*wGef~FC>Y2m6_u+j!5ID2WY zm-Jea+@WAmn*}x-sps3w$Oxl$!%nPMf3qs}=_$)O&-|7-(9tO)q4nKbni}8R{GiAC zJE^AaGHz#=^ss^l!?0=|7!%GGD^Kp83`p^6R;0J~0Z{NDU6%u(%Dlc!$cDLoUDa1+ z6q0XqVaoJ08Yi3Q*N&G?ximY>&f(XdPs89MQ=b&>uxh8h7?<{QVX~2m zncW>o8v~dzds`YDg_qD01!>T)6sq#)M~3kh(rChI=;ljSr9;dj>d8y@i_oOqEE63d z*(s5YNLp_PbCT4smkF0PnD#l8yNs&1)W{gt;=rF5hVx)cw%-M%s~=AD#qLV*K@*eDxdE+q@cw^2d7F{5)20zbz>| zq{vN+?85Olh-ugIpukM4(;$H7{epw6xjAurkNUBmMUn?{fW6?;<^% z6q#OLIAPQ_+aP{sR_a5M&w+ac(gE`OCQ05JSlA6J8rjxp&4e)pcZMx4xcGF&{;^=X8*I2IvriPK{8{ye_9N9A zgGpznYmntpy?TQNHF9}m#hr@RgX$~i6~Y9*p%cif#gQT0{R?31{Fg+U3ltNd9UpZr zlf0?ew|>5~i7z?3Rc1~E=Dqsa8BgsRDAiQ=N}lj^@sV_s@a0Qsn`>^;9 z;AH4f_2N&bNZv`foP6^MO!}unqq)mIgBo@!v@7p0*shVJZv#Sz(dkf_#E~wGHkp&c ziQPpo5lyJ0>5}_v+Pvf*vv%yOaqE)7<&jgN@HNrnMs!EuM{-*`=#t)3x*NNhg#TXf-y8m8;Xh7cl+kBzkn_sudKxRE|9YI&-b2z(v~wks z%KLbdXD8aZDL|d&sx8ze`s?gll1f=9IBmOYD-J&BGkt8GnJpA>bvHvzaQcG#^_hX2 zbThx+x_`gJoKf_`&YPIT%F_ioN1kn(a#dt8c+SkOOOi+X61ci^Ah%-WYX!@i?eXmq zCul9xnRdiu;jA*Ee<8w{noD*N0Np_7Z6R2$*u@|Pt&UKCul1XxT zreN0F0WQxYX4&?Q)wP@YK4B6}Kp!R|z2oIe1=kHfpES_>l+~-D zXsa7xnu6gAydOX59rf+u>9BSQtB(8Ardg1L8)1gzRzLZ2L0TWDC)+g+&T8i_68JA1 zw1Ffq=a>@Pn_ScK?rEZ*>eZ5rJue>% zb4$t_l7iWCOTnarj}l_$rCrsD8PM?TQmrVGe2C)%x8UVDf_-Nbr>~h(zUpXLdUD{& zwZ~|A7cykKh7K{BBi|vI${A6;)Te2t?(7QhFuy7BBwz;zo8Exr&VlXeTAqA7Nm?Mc zAZ|M}^uKRe$s>1%TXrl6D(La=$B+M{Y$FBp zkl3|yAxX4tstfD4_GLNC8r#(#CJ2WJQkEm%AP{WPzGqY>zwNt@uhS%D_+^r|L;lRb z^+@c5b8Rl^Ds0`aHIBSL5kPUAiyAH@Ylj!SQbar8zf0~+@^`{)Q=YkA#s+c07Kiuk znz3u{&MRfsy>B1+Uf_F#Azj-=2Ne$_(M{J(KYJPTHzS-bkm#P=bn`d|ozdazi zFR4EkCNq>J(Hd63KBQ#I08Mi91pHFQ45()k?O$W^IQYeybGyCzvSuXGXGhmhf?w_G z#!(Gz7ghLl?NGUM0VhH^Hvc%85F4JKA-Q=BI%5LStElk&TTmJJLYaY+g)pFx@_yw z?|1PE&U*03*pwK!y*WoVMKUb!3rm%acBfe!Icf z@}<1}C;@L($3A)Ynz^@LpEy0CN98U8_wUR};#-aZ%#-Y-O-}cTKO`uAY}Dk1M6lI* zZF<`WrIvF@;rMu8lDlPq37H~~=aI+q_&tJxt7dig1`jq+=Ex;U8e zC}Dg_!RM|c4_}Qo8>0R;kK|cGBLw3$b;;xyH311%c=1T|!1xCSWi|`)^y6Je_ut&y zzSnb}KIbFJj#Bd>;ZG$J@~Ic>z+=b9!!?sdkgX1+hf~k=u;av_bTQaTC?^2&KMOrwMl_jZqeVJ?I&y~%V|kjU4(Zb^bT}!W9q&gx zr^VNY-rdYx+J5xD3BB5VOKx}k{$@SGiSd?_7SrN$1+u6&StH8s>qdO&J+FM~4LPZx zF8}HAy9FlKj=!v$TVt7Hpnp;>&b~$TXU4aM%E^LZD95tfczCGQ#e2IUYw<(#M62DI{ zaeUeH>nnm%diRs?O3ib>GJo1q&4y&vocL=7@3qul7Npm+YshUC^L9+rY`WFua}Un0Q`KRu54-%l z{ZF3GkIxa*zMHzF$}&*#Y(f0PCW3(tgZd52-|$+esAH4uhP_f06?@_%d4ilK+vYu$ z>t7jdqHgcT1LT1I0jH*9;=%aUg4Zj2w=O(;$i6{p*^%H;gPW5(f*5ZSa|qUvO>B3q z!6#bT$wNHPN}dmPBzF1nt;yjO7`Oi2LWjUHFW!NapVl-bS#!MU)_m$(Vfl{oCCvuq zth(CL_d%ooQ`VQq#oT?58_hJ+v`uN5_R_AskhM+Oo62r5>Y>N`Z7s`#hbXd(BAt*5 zSsscavV?jb9$TwjqLN(**&g9{?!EJTzR%0=kLmU9+;h)8_uO;OJ?Gr}zHd_Dy=?Ba z$`{j@PaSge`MTc6`)WrcyB1)(2hB)os+9qo^^{cEg~=|m>js6llcv4T`H|VSU6LyK z4P7l41?(-Kyd5IL@jJJk6_YKnsXUvvL!6(;vlX5;>#rUE{u$D?_(sE^ipiH`%dUNb z%)ZYbSBh`ndg%3`73?Y}PaxJZ8KS}03R*QL>Oq8y58*ho{Fr(1ly_e&GM~NN68M~& zPs*Gd#Q=Glg=dCn@+gST^tG1#eBUuK+udPZ_2dJxpA*kuC$ zZ?`3I-_x=WG!{=DiKY%=LHqnIAZ1FIi7<3?xBnKTZn82cnQ(pbwNly7i7?m+vHcx zJR%W8^)6g0wKvB;F#I`TCU{HG#zK(DT@KUJV=H7o=gpw{q(uz;u_gAb;m?UPK`r>4 zi5?2k8L=X`k`a6H|I3<{V5e*avY#_$CAFEcHUintX|m(nVyy*+Kc~n9w;*PUMksho zREDr}d+cq)pEG2F7Yw7dsjCw-?utDO_@sxIwRDxpe$JOcVY!78B-ycl8UCCsV+{=g z?_V_}5T~UQfoTf*gK-CAJArJ9MlWc6gah$&A`Ke;LNSlYjlCrMIgWOd1X?3S=O(KJRJ{8Cw6c7<45% z7&czE&@ucu!6s;66>PQLO=08S*yFOF^K4*Oikp#%6EwV_`ej$mlH7f|QiAr` zr6=EcKl-cNKe+K9Gjxn?$-G0cxrOj)>ZBPZag%@DeO9*htj(N+zg~R!boabf-kA%I zVDN{NF9fvtYnF_&pW>w@`>}a*jPF0@ot~^-ckV^F5{ns%SYZhl$n9`6 zH!iKXpjYtKaq^9W_QA>p;mxnePTu-4jTVmT|>gb&d-U-K>Pzc)L% z*ZWns!jxD}8DJbb$tuKWdS=*+RYP3Uv@X@s`o-FU_3EQyo|9u2bdZ^6T>M*DJvGj7 zzxlV6`;+dbQM4@h5zBQp*VQxY5S}a8b-~WAm%v0L^CB&5G{iT0np7A})Z9>s%x6#e z`nJ>hS1)z_-tBequTFW4?!}5e$G_!$ z|BFz7_;iJ-yiap+Hz$uf{?iVx?Ekf>;LDEJq+YHC?=De?0Hch>W5~ zBPRdl6RYjzxPx+a!&R_p$aFq#;jq{_akFO5iDj}p`J`k2Rqc_XN1C?m9R9L{-k*q! z$0oR*vNJ)|*?%vvEIRS&@r}bd{<0ERj_avu9&=!JzybbBlx@GfN2B~-zF_jr)5kZE z?B=_e!1vPvG0M;5cH7=j8}2M#bm00oy{jfy_D~ix<){jXCeMgaip;NMJl(c!anx$J zyg#G5ZMeVW7-h7~5>HG;oe@}@bdXti9?o-jY#X#G#W~3D9cb>+ zex+merRqkrK<)gRRZN6-Fn$&)LE#qnXDZ?SqWm8Eg$1Ry@{(2};8cCwe9v7w$;yU~ z-tuGTOV^D*I?utu`eB_3=v<~qH}vuFk@aEC&e(~&A}x=hfzwVt^YE)l?0qqCC1tQ! zAG7#zgYBIWqtB*Cs0(dQWr~8`KYIN5(m-h-#sP>KV(*GwXu5l+!!K8E59?L=?w7S| z20hIuU8s!XTn1X-e(?LTtJULr@(oTI#XV14pd!lB7i=QhK5*VI{igG=Gv~5#iaWE? zY+NxP5m|TWt7Erg3CAgNVzB_zaWTJ*H-^++Do5d2LVQs?=OcW8VA|dPWJnCn zI>?UA3QzbDvMsaN?!p#n)5;@Nj2aYeSKv9J8i4`Qd(u2^nWC_$y76;$V$t@So{YQo z`grinu2$0yG1?{lG<5dw4tR3i%P`Q(LBXgb%J56gMa4dtU0=i*OBfsL4Ynltdqdn3 zP6EdkaWW|b-|)Z#U*)syeUX}7O}_2q&qmu1M{gZ&7_TvyVdTk?f5GO7uE_PAh*<%v zN4;y>nIWl&S@=Gi$@CG#Z&$dQ@6BoOx{-WtZuZ*A*ZaH~uf>@8tWWY13+#QMu@>_i zP6?c$keDs#lfXp?2?5xcz=aF<5m;jaH(Z)e)uEl#6KMEjMqv>rf(1)BnUF99>z81? zzfm`#VF?!^t)+si*T*b|-F;0*h+N8} z&FJdg!b#4XD>~$db=fm6&RxoM=56wZZPGn~HRvR9hSHN%%hRoK9+YQIbcP57sz8&Wm> z@l^E_O+&~;IP1uvB(5KO`jEsqTCm|roP%>>!MGRS_MP87ug8&2We0BF;^ES7QMRyj z=m>3yUd9&OUhU(OAZZfC@0h_myxraPD?Bg3yqv3D{K88cAyE)pbR z3~9-niEuwDKA6n)!~;e6^emZ+6h0xW^jX1mmzGe9`TBx-zB}zGy0+XkZ1F@e_VRjSX1#0W? zEX_fTUF^HSa|8;n5Yj(Za^0jyXq_x0TqI(`qO4%tD$dyR6c*#TU~QE4&J3fvh0fV! z(_8Y#9)6PShoGd#Z;np-ux;6&If`YjUY$2U_A1Uvx`Fc8W+A`>f8=P>8zdwxpwv(3 zBaj}^^;(U<{S;V3WNV6p~h^G1rk+7@Rsp4at) ziEB_cjidt$)^H(sh76z1uHl@7#1VmKYw)aoJDP6LUCTKNuM@oPYdL#7w1!U;)^h#F zu6gn4+8*ug=8IeA%$a4I(2`Djo8C#VnJhuWV&i7b;pfhpy^yUzi&vlgd%&dM77pxj zVQZF=Yw%{;&teZ0L`lloL$@<`&#O2anxNAX(*?d~EBc5o6LJukqwo+F64oI;N8t$R z>o}R`LE2KL9@h2bO*(A9l~Oj&%|25*C-D-3M%|FRJ-;4lUwnD+Kb6BKY$RV8wZtuI zZmi@E9mIBhFbGjO!MydHsjz_9iPZI6e<{%~{BVT~N4WfQs3V9{u($z%V4H$E`GOW# z=>A)rhQ*Rq6j);bX?w>wLE$nNAw=gYM9`4J$t28eX|*7&d4R(P1QF@soq%%2z`4B& zG4Kc%k{&_A1}<2#oDNf|Eu+}7fioA=I(TY=wh>nmDg^(HICkZvPUJ?c^MKZAvsP2x zh>U%um2%BlrJ#0!7_?JSW3$OH+of`0l0O-SF2hJqMWc9^P%Oei@i|)90#T!s&X9A) zUJE?Z(A2D_4JE7V%t+(RB-s@6nKdJ$>ex{Xrx8_{OlZ}nas5O&WTc@ySK$hc)yRDR zO(@rEq&Q|1@{vbrCaP)P*o1u4lft)~uxF*s|-A{B1z{=rMD<%rXj9%J3YkSFgBf&OP*1RiLTIO?(YkIb&=mA z>DaY2s*j%yp?nMH3qe=yMWC?-;VT(FUO#T`kHrkW~l3N96@80}{@9*qH z4Cxod#h1aI1vLNTn0XuZ>|eoovxAF($XKNqW@KTvsUMt_#Z47nBGdN` zd3sK2P1wOr)p|plN?k3Wgfj+VVpk&@HH3@>UM>iBV^OIKpWExhFa%2uQw4m6Y}os| zgZE2&E%f{P)sDMxgo>D9?kk0t+1RUxtS;UK>40?`drX!< zpB#k$py+v>7~I2*0)?E z1`i6EtO;icoHd?j%Ergr&Q}X$qs2nd+l9o~+P2!|Ux7&A+$U^k9F_@JA=ePUiyI^) z@`1CvaGH}f8;>x{@ykDMXemuQ;^zA}u?TwY#tOSpToAb%(F&>H@asVYEh7jgcLgFy zh`GR(RK{vYs>E7goQD;kli_#E;}pVb(o#Ym7p%3G$}I7v2Bez#>cmKW+ z9V^xZ{k`Z4e4`P~B{O_8gI3LbH_;q;EMZ1(>0WM>_!zZ4jj(f>l}W~^$yT7h?|-gQ zvK2O3#EW~vlzmu<_)CzmkDDnxL!RD{r!C|uWT$3xUID`Uu&I#`2jILbHi50o5R@)E7!EiD}0(H5!+oUPV) z8{WTg3$QVC5P|gpEG(wnw-~~X0V;E|mNTVx8k)V_%qnw}`y};xOAHfUo%%%px#N|l z=2=sZN`whRd|g6Ty`JQKJh_!}e15**FvL7|GleoE2UCn?_w3(cmD}OmsZn2Smpos5 zvLg*68xL?^=Jf_&dmrzzaHFBd`tk2xjV-vsTK6Jx@Ys&7I2)gLG+%Lk;;P02Rqp1e z+p10yzYC2C4(rUcP;DBt_p%=N}$Q=P%m&ob|eF`{t`FHmjfBcwTvE}})k^TIVW*22p z-uL@L(m>T{Az8M-r-*Zf#7P~kQ6y*9JJd9<@HA9vnv3k67|Lzw>e&k)87=yTRdTPGs5~^84k-dBcr9EUT}0H0)ywnS&(%WY7ao z02UTv5Lmcctcf$nS$nl=Q-gRWR28z*+=Uoa=fVf2`Lq&Rbd0P7|>%!4y*B!Fn7fjusf$9%Gj&QE> zWBd0XYnnIK-|gwaj$_-W))&w&-H}7uDx4VJ$&)d(Im(IT1D{?J>^%9b$6dFMRU1^J zAE(m^lotd|gH*2a{gW?Tzjx~XG2^P~wFBZOM%GX&HF~79Gc+FM#By=(ZKrkKXxvJT z&XLF`BrDaqJ70=o(~Wt&-JS1^&1qQLC(%vM#W3f)CR?HR<7ZrvjzxEdG-pVue$K#~ zJ-*r4PVLv#K}phBkWh@ubgFYh(6$!~E+&ONxq8lHjbSEb604&!IYVv_2N7z4)*kIA zq0I#$3mc0%o_}hPaE%JA%m?0f^*06FtMf*rf4mO-)4gcF#8X4Rpxf~T>s^deC&Gvc zl=X5jK&k4vcHU9`H7TN^?8=g72`m30{tz5I#@Semoi5RPnLX3}$L>#6ZO;>44jLQK4^I=>Tmz;&z~ zT4R*67~g_g11tteZOB=hJ<=fh(c4tdz|EbZC%d_`X>}K6)QE8fXoO8*cXbd^K%5&m9v92HQKj zLHBZW9hoJshxj6eJszP@iD6+m4gm2_A*Gz_E6gKLRps0u5smsF;E2LPZeZwf^r@wD zkp3P=+u0qLT)0O`C-;N+BMM{ru0^k|ibv?I3%S2LVDB_Z2mGoCj$D~7d5g!!*1?w< zh?^I4zE&RCef$7!x!E1Du_B&9o!@G6iq+Y{k71onjft`z{9tHvK;_bhE(=0)D6M2O zOavzRMUzCJsr9&Xw`b@a)Tuw!OxhX;bO-SlWC3tYlhz)w3VV& zSVHg!m6<%_Z_UF_=9i9MJ~gw0?q7O;KBoQ38xN|BoSl4P)J`M+o7r=M_3xZJdMGfq zgw{oWtr$(irHeQ~N02S3zlc%j1yTkn#flz6;+#YDCGHo|1wszIk13*rWVr>)%bb_+ z3<4qIGB;HC7kSDdPh^t>FS5d?Z3Gs0g$uS|lQNmy*l}$0 zk7KlZ{t7Bw{om*;fqsd?n;ALXtDK*ZFbbhpG1>9}i(%$fZm^gHSs3JHB;fnjwoQ}G zp!F&$J=4a|a;T}qQ&X~%js{RTLun|vML74X&;vn&!W1H#5r1g~;xpS`Xu;rdL!*uH z;H3j@idWzSBN_%vD>-jSeT`9`WhG7&lIusC_TLHt8?ge9g~F@q3WJ1X_W~*^xd7&J z>s4V`NU~Be0iVPyt?>w=t2i&vPsi$ytB`gRrHu!0U=gCv{HBKoc{xG!TlZ1s0jRtr*q#}^U+3-Cc+hU1|EOasnoJQA; zrN}Rht?;m~a;%7YVNg9=*@Gp~if*7iCd@#~4dj5h2Vi!S>mxmfa;@{r_rb|)dy}(* z$UDTDzlj1RF)q#_SCHM}EaCV~%p*`8t-Xn)4wB)}xrI-ugw%jroU3**t{e4JMTKRB}QwUPo1r~?&>`0cSPF5T>X&*=nGBow}I3ejLGxv zVqPp0;c(_IH(8?ICy+t;U0gA!5-qI5o}3`VnNo)s%jj}jjJN$!43ZQXbPqAeSiyvQ zh;fXzQa_CGSyqnxzq*GqOrt$7cEE&hd_zYIh_;uAz_lI)Nn{Rz^;|EOH%X}H`UpQ0 z|K<#N0^(PF!zb}ZN+A_$8#rqybCzfWe;=zKB-NMR=f<);`;0~ooz5>9wo(2aAK8Rgv19Z(`A$*Dj|ilN~B8-q!J7Go~bKgp(FHa!1i`xC5UX`dPs;z zfTqA2gKX3~{VABVIM#pyCHeqW4LJ925W&eBk+&_R8_3&O2^*U`lx_f34f)_3o^AKe z!XG)&Ezak!?l;-;AHD+Eju(hG>&^HW~mgKrea1o z`yP(v;ARxTJJP}EW}G=BcL3X)xnAo1giE^Qm20VnE&L#eO{D+Ek8rkJ;vB_v z4e@J-n7K+kAkgSw3>lBOP8y^<{}D3IoJQOu$pP!kXlsx@MnXg)_@XYFo0p{RiH}h; z$_eqD$0%kJ-a->TNuMGfZb^2+#J`=jh7AmSg0q38UQ%tzoPOruf{SQP$>NZ%S=Tz| ztxGSyb8~SR%iOfdK@jKf4AsUOVz~PRo4rn&ee(npylgejgrXmA=3qNiVhYorq6RV2 zg@&x+136YKCh*;qk7R3zkN3BO)LEz+pPr&>(1lF)j0;t-BbW3UhIb^Y^Xg~V%|RML)*AX?{v0t<$Y^^%=RzdJ9ODvbz*-L)fg`-1V9*(L_Bj_MO`#Z= zqsJ{(A`j;moSF1FWiFKfi$?OYATS1|jt&dc|bB9J3%YtoGI!734cs zlP1%dxt{xXy!y7Fp<%-HLN$=bBlb9`x_e(hKqt3X3JxyNV>zd*PNj?ndWtVpY;T_0!Y(#975f0i)y1~ z!;U-{dmuDlb#UIs0YjOy-6|tkcIJNJkb4^w)Q8@1GVKGD>N5jUR6ad69Q1c%@L!3jMw-|npO~$t$ zEHJZ-_y4lqJ5%IJXVQ?j9NKjcw=| z(Q&V7=QH>;;l{oGSKw=x@^r48|A3RAPMy=)W-cGt^C zeB9&ryQ|8PI-`DVNt&>;3~w1~rGwK(jvok?N*pj_ggRtet}qm>Cnexnt_Wr6$;gjf zpok_H;8eN7Lz@L?ts4b+`%iGP#1DRaL@Pl?sm`y)4x&DDo-p7O+NviwH0ZIIBA#7$ zKM(L8rlASjKcV1>(m>HCOcE2r0N+2MNBK8-3jd57#B5SNlL@v%(prf*ocfGas0UK> znX|C(RR6-Y*gd18St69Y9KtU{AKZJ_Mc)^zeaFUbvanwG_zxd;HG$(7ZlF@7uz3TgqPa1YCElnF_w`HAAIEo8xQOJv_A7oQ>pzE!_({IyIp@wgb9Mh$|1(Hf}4e(9X79dThZmk z-3xyYpz{o37AptJ!@q0J3r#ZoHgao9`pcsi+=*+8*+2Ag7Awcf?{3gt{+Fp!^86#Q z$5P&gou&?|-mC;#6@Me(W9VM-M;nOD68yos?U@^nKz#r326z+ zFyqhzhT46nNX8m}Szb}{V8cnew+^!|DMF1pY`8b8dWZ3@>?Or#pWBSvbCrmD>32?H zwDnv|&^c-M^7ZfY4qaYbJedT0czF^xLB7a)iA~I)IN_LpSK{AGKaOB~L+xGu?*&iH zQK>q=oZtH4ebM;ce*XRLOWx8w>!KexT0=*z=zRG8!W89}o-TXLk6ojlA2cjgMj0(k z`qcZ&2Cp*@>aQPqJh0lIh<8gO-`l9#q3r7RcXp8rPRT~B5GmTp34$%vyqAEcQ*GDxyOfD zcpJ^xbK(4j3vN$oPQdSy37&H+pRHkqU3veoKKKD{G0t4G|AEbN)fN)(fI&yzK6I+z zj&CN5f1lM)Z{md+p1(TKjD_C`Q$bpI3_mk?(p>&Gey(~`-Te7{lb{Y>aV^ty@^hTc zOY10;>9~2EgxjUr9eK?C68`)WCFsY{yQr3CqQ$Ah61LCrx+CuQLl>+?D9d})DC{@FH<%RY+(tQehWk}mlPPgrvT}%sB;9DE z4(x4onI>-{qD~#;ZyyyYqRA3ys#XjZHB$b(YZSib@~s*bljLU)mQ7nUso_bn?@lU@ z{Zhe6NZaV&4I;(7vD!;6ltQD-y)(4dDD)v)jFP%ZxoS5M6oKHB#2fe>qdEyG8_~52 zFYuJ`G7)ul!FH8$sAw}SipNKFP}q*Q56ax_Ai8%KZ7|Z}jm50_OOSR=5h0@6QV_FR zIb5A0>U&+$8%(80m1bHX<+@_5I@k70isuON_3qBY@%p$bhgBv1{dK(hRp>8tUAv7+ z2A5>fdH#ER)iea@X!X%bT{^1!on2MdVP2ZE5%k31pW2%1dqWMQ zU*3Eu81RjKNV~H(@4`|Y3T@sAFAhQ#Sb$H`vs4WE-gsivAYH=m+_g@J4-uy0h(N6lA1Gxj0v>6^8yKcLdcXi(L?n?2 zOwi?nrDRpZ0Dzo{q{N~#{Pmzhmp4{t03Ye&k=dp>xF=Kdz*z*EdN@qPn$-EVb;syf z;232MaeY)GqrC$A!Vsc9o<@V6+}ToHcexj}MWuBbtr+f+G;rx0@%v z-G!crhd#~(;Qj{&@!>4%U|`ILONdW}fh68QcU$2O zfya=wt;Wa#QC&EU7(!wgAj*WtWb!+V{Ck-2#>^E(ShzaRo(=}4yn-cq|1rU)=pLA! zDbEY(I#{+rIYmTL9d%H6S1}p_ zgEA5pnenD-R|hFXLhA>N;akj5h;-rh%j*V#i&TEl(;O+#&Dn5szMq8cf39CdgyRJl zNg>e@xM$9XO0y{gpJn9IP`gMY_%Tc+l3VPK)H6=OO9p3IPg>M)YBmcKPCNp)dw6F1 z-uZ}thvL+yYle^fb}~{lY!ed06Wt_A3BIJ^0>>;+c67V+ss)bUdD0afOFozdBT<$( z&z93xFFE5x!YamFg0u{A1;4%NS!kHY!1fy{O?%$V6z35kpeN87WR|=s6lncw02)>( zd6F9iODi7p6y#~V74OYpsaAXsmKv+D;s>htl9P3yAx#+~VTPziinsCdcp_Dzr2~yS z`U@dqlhRPiLi-l6pc0}=t$IOWw9*&??qf!b1`ANVNjXADc0gdV4L?y>MdWwUhIgZJ z^9Ov8zM;(K8VS-tpsUph`r7h_(oJOW{O}}wIwTR`bOZ{?3JJ?>aUmmNDio2Yw}f;f zc_JP$=-csK=nR0qV?JEQUZ zPGAQ+^S(mj)k713y+F+bU3=b(rB#CLc@K6dAl@F0EIrk_-JbW8(#69s)diCR!Gpsr z;JrN#1MxdR$AQN?(FmCV4p`*?F-`Ffyoa=g+U4_>_%1^5Sw|B%>wxlL@mZk^fr4`g zY$ZSzt6qdI2U47l4pagO)) z%EHGNUG5HNdCo*B#5nVv@M;Y-GR;_1NDkG(1ZPxH8U7KoL$4JO?aUj2>=I%Pa7HW= zq7W=kHiqQ{KlL(}9wepous^~)C2Sib&yBSryNVe4E;z+sFoCGyH3-M!%US2S8Ou7j z-wX0tlQ3X?_X$lD=>%&#wF2wT!MbANyko4)z_~8GT!ReQX%`&rA0*S);(}})CJaWp zB3p%Cc*Q_3S7a-dXbQqSrF*F+mvtiIslo7Y2Np}o^us}tA~3BUJPU~Q)u+}!Shz?Zc84FcR~6hq!bkrqt2_2t>@w;OwO&YUW&xy+JvsRYBI zo0c(bBGp(1t5ilNRij2H^iKczMe=!T{i@~$@4HRCXTH;=`GVVBcvmU&Mzg}volITe zX9dn~sJLVufgm@u6)A`D&X~n+I1^Tor~Pi|P^`lzyfKZT4hB2AI(meQnjEy@U$oX1IEYng@0PzvOx=)RB9ew~xOlIkCHp-<;NWfpt%cYnkM3mgCZvPA^8=ZLQo7?R z2!vi$cbsQrurvJm1Ys5dCHdoW_?>dF+7gq+<>mgJp~av0{gnE83z)cF=_4Rr_=idGtTWW4;|qV;JyA!IqJFbUJjJH}8x zD$EJI`^Jdj_g;vwne-*K7rJ6ZiR%37Q79wBT%b>244%U4jf^p2waAgK¢X7m8m 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 GX!?I*E@(Rd diff --git a/client-mobile/.gradle/8.5/executionHistory/executionHistory.lock b/client-mobile/.gradle/8.5/executionHistory/executionHistory.lock index 0da02478f64858f8fb57abf407634c8463496a41..ad47d2aff134a42fa67ed820dd308981a06ce853 100644 GIT binary patch literal 17 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 aJEqtDx^Khm?8`^*ZuaTlRZxFbvHu_TYhT*{ delta 69134 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 diff --git a/client-mobile/.gradle/8.5/fileHashes/fileHashes.lock b/client-mobile/.gradle/8.5/fileHashes/fileHashes.lock index e0aedcd6c0d47ea1c00344aae356c7b8b4f3c67e..98936df35db7e15f4bd0f6f59c820813c5025392 100644 GIT binary patch literal 17 WcmZSH&R@;(a=)o00|>A>ECT>500b@o literal 17 WcmZSH&R@;(a=)o00|>C3`2zqfYXuJg diff --git a/client-mobile/.gradle/8.5/fileHashes/resourceHashesCache.bin b/client-mobile/.gradle/8.5/fileHashes/resourceHashesCache.bin index 10e0b3bdfae3020c3c4ec391c33f771bdc61c8d9..826cc24b26aacd21de5cbf8cc8046a0735d3172b 100644 GIT binary patch delta 12136 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 PRkYfkc`l8raryrNr1P;r delta 3143 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 L$;n!CRQLY^3#6P0 diff --git a/client-mobile/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/client-mobile/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 3fdb405d33e00b7db6bcec93f7314b53f8a68f4e..654e17e6d00f7a64189886299ec40337b368cb3c 100644 GIT binary patch literal 17 VcmZSf+M}~b{lVOB1~6#<4*)X|1&sgz literal 17 VcmZSf+M}~b{lVOB1~6z%1OPH_1nmF- diff --git a/client-mobile/.gradle/buildOutputCleanup/outputFiles.bin b/client-mobile/.gradle/buildOutputCleanup/outputFiles.bin index b6e3c72332f738c9f981c0a8b53519c9b515a3c2..32676dcd94933c9de04837d6cebd3ca4cc9e9131 100644 GIT binary patch delta 5160 zcmYjVd0Z6N(#`Fjo~5T}?#w76ipppd&=|oTZ~?bK+(4ruXdG|{HKK8k2x6Wr8V6BY zo-u+FeYi4$lsu9c(BOhW+)b2SiDIG<6@yEBxBIsFKK|g>)Ku54I(6#Q9o`g<-Fabb zZvXZuDsMphW;HHth;7#`Ywdf|kEJ#`uTz(o9hj~t&)au+B+AK)`P$0ks4XkcFE;|m&G_*v48mCJsjzI9#lY%L?5kQMy13wqU-i+B&M3J{m1 z2=Q?0F*;{K6U8{hQ&A)j0X&q4pP&f27vhpTMMJTo`=I`*pHy zZ#K2o0J!Oy6eqMsoc0PY7N5PsHYm0-gDhw?wDx0MEO?b`=l90t@1_3tJV7^xN!8+& z`#uhx7qVZ85)Y{pm?9P>!TL!|r+l;?cB|Pe4*%!Dmb${41nN~c68Z@&(&8iKE(-g*28SG&dNzpfgZ84&);JuXf z)MM40t$*FwbeekAjD?VOtiA&Z5|7sDr@+OX>@OYBTF7>=j&``$GUwLo!I!CP)oF3u zdDaJecWpV4lYT}q2EZ5R+2sO?2e%vSznoAM9BgEhv>5vS&W(*fLA@$RgZoo9(uGh{ zoZi*g9nK4?Ru?o9N_wascEHDeKfJPkQm~Ry8te;Dg|le7m|-_hf#}gH@Ar{E>{+Oa z>3|m=>aZZB-D>Juw+FaQs$`bwY!*NL-ZT^%Hmg$3pnt=%v0M;~D^BG0iu$@-Nwg1~ zn84}OcvW#y%ilW|QR}@JIPnSRBjEDyB7b;0FjetQf;t;_#zcyG9K+=bXbbF(<>C!E zWdGK>%wg|Sui7kd-oklm@Zg`f+?y9!K&>@1VNe?9P~+NA@1=2(HPl+^fa(lxpN{G7 z4Q2Z|#zKap{3Msm8BatpS@%~`uX}zlp@?%}e8o`Ne@7)ttyQa_qPl zf;Zu67mR2A@zUBUvxs`#a|T1Sn#e$mczM5J3j7eK1_L?@E5B0vXz*X3-Yz)%%NI(( z3^=e;oq_RP{Q$Mobmf?;=P>YFbuovR_4^~XWkRdsdl?=dQYYw9Q2IH(J5(2_Q5p&t zYlAdFI3yuEyMX;raa;k`k2TZV;l^9NQQ&ihBvthgW7AyIp$u3NrP(%& zvYHk~o{OdLR`-IsjT)kX6{|hj-AU2ZTDJx+?$B6tjGGRO-)PP)Mswh%UK`&IdpZ1L zs}e3!x2mHsp{w=|PYQRm7>B}!-rD=^(F~Y7M%#?>z%hTnx%z4db*-);zBVTm*`VmOwvfX*IF&O*6Q5D&<`-mkKe8~&gi?=%YB&QUJaK5ct>aaU~TKL ziN33p^9P6*S988_%*F?(P_4u2rH0^WUeJ<+W-jMHRvY<2>CKOKD&DtX&l)~UgBShg z<6gfyom%UPVL&|p5aDAJb|qbzmq)FYH^3=@KOq>e!Rbj?-Keo@H+;X1uh)Zkoln$2 z&9|xsB>m1sqR9>42KzzPGe!)asM{y{&q1@q;BH8Z^5NNGz9(Z`l78vbL*>k>$zCHw=Rq);nUXeODxJebRWHJq0ukq^;YIa!NGzEA0Mh0cVqbfd# zH4gV35OK^sg*w(k&pLiYSFAtN5HRENK5DF+l2%-1g-t4b0Ak$DSyr7$0D2+TJlEPq zuM{1P+9`d$}igqLe4vG25QN#xxDL9OP-~SQ)L4j7;Wh^tY7Ohr$YPKfBG(jKG;?S}Fd0_uo& zREB3}|JqEW)ISx)X5<5J?Scn~hi-q-`|J8k%16VYbGpz*jWQh8)iQItfZHI}4Uxom zQm{4x92AfRJI&~N*W(Mjl9&dL7Ye;BCwm(RLKU|Js|qE+pLc|0XJgd-wJC2$P`{c# zVA)flNI=sa)>C>3r(*HPGQ(|%6ESItOdmp=PAomk4*M+zAA~<&-g)-;9ho#no;AwMpqfD52tu@n z@sMISkiA&qGVRaJ4@S})s;)qhXz*1Vx$D16b^%zoDd= z0=w=R_F<-*&SBLW#HG{CdnAa+l#|0_Wpu!QHA4=}JYq^`X-cN{+$2Vlp4*DRkT-~d zKz>^c?yk;HvjuV#u+QOpi*Y+^Jhakl@9|Fb%*rz`x}A|oeV53hp>qP21yvmZi`yHs zc>GyXcFnN{WtwZ8#3zEv3O%|ReJxNhOZdlt{11PhP~ybE zCu5CQINbNN=k*SU6!upafoq6yp#_iFKHO}|U7)145Wbjg9Ls}kfN`ZkB*U{vBr_)~ zZ0Y~oYY|Yi-dL!|ClCDVfye4S3c_DPbdoXL2_}y-wHT$B2Z~MZxQu2o3#yJ8bDZ!e zH=d2?b42;RRy!SH&l>&osMTR@kLjp1%|&hqh$1eav>+iQ?UII4qNud9h`N){U(2b< z%&zHSmeZrU0QnD%I1tT*v)(v@#pmufFFihMDoyg@9M(WARz%=o?XgSrWIUok9myV$DDENjgcWlq*xN z0m)ACB-j)6A2PBRB_|mKJIHWJtXm}YCs3YZa?))H!EXqQC6basCou^}2yjGmN)?J^ zvf4)3pFG4$aqTjDC6|2?z_H{TDo18dx*5pYmFM<|Or=|sDvU}Qc_Kb<5n0pZ97)hf z26ENX%=9G}iE;ydfzXKI{3sKqL*QwgVZu)y8%jz%-6-63FU0ZD+7R%pz)@J*xH-Bk zFSUFTpv6jO5f~F_j8J&hgi||Wr~fQS@jus~v}`LR2&Tg-NUO%>q_?+(_a(LvIgv$= z3Mw>Z^F$sc?9zfCG|CSWP4i_U5#)B#$&CcBUZ!FJ_b3~Y65*-bVCp-F#v!r%yKhDFIRIT5N=3yNb47ffm{aUDI(Vz ziAr?)yqhS3g+wK3dSsj)DL1LnFvrtOWa#mNDHpRZIq0!9pNSrA$UmIs4mM{R@wN^H z)Al7^r5{zcim%6*i%^oonrH^HhTiXk`oqpdGx;8~wy^G)$6zJITe$I+Ijx=iji8O( zBZ+}q$aqiH4OU5rkKrIL)RJvbdLVx>k*Xn+=+&RILxr=2NUJ2JOLKT45&u9;XP&MS zuitbw_QYj!^_FKx8u~@xmMh&_s8Enyr!eCGSpV*hOkfIrVm|tZXlmd_%6cFY9xale V@`7)Y7}6Cw&u%-yyn6~l{{!Vt96JC2 delta 3878 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 y4cINS указанного. + +## Изменения + +### Бэкенд + +#### 1. IMessageRepository.cs +Добавлен метод для получения сообщений ПОСЛЕ указанного sequenceId: +```csharp +Task> GetChatMessagesAfterAsync(Guid chatId, long sequenceId, int limit, CancellationToken cancellationToken); +``` + +#### 2. MessageRepository.cs +Реализация метода: +```csharp +public async Task> GetChatMessagesAfterAsync(Guid chatId, long sequenceId, int limit, CancellationToken cancellationToken) +{ + var builder = Builders.Filter; + var filter = builder.And( + builder.Eq(m => m.ChatId, chatId), + builder.Gt(m => m.SequenceId, sequenceId) + ); + + return await _messages.Find(filter) + .SortBy(m => m.SequenceId) + .Limit(limit) + .ToListAsync(cancellationToken); +} +``` + +#### 3. GetMessagesQuery.cs +Добавлен параметр `AfterSequenceId`: +```csharp +public record GetMessagesQuery( + Guid UserId, + Guid ChatId, + string? Cursor, + long? Pivot = null, + long? AfterSequenceId = null, // НОВЫЙ ПАРАМЕТР + int? Limit = null +) : IQuery>; +``` + +Обработчик использует новый метод: +```csharp +if (request.AfterSequenceId.HasValue) +{ + messages = await _messageRepository.GetChatMessagesAfterAsync( + request.ChatId, + request.AfterSequenceId.Value, + queryLimit, + cancellationToken + ); +} +``` + +#### 4. MessagesEndpoints.cs +Добавлен query параметр в endpoint: +```csharp +group.MapGet("chat/{chatId:guid}", async ( + [FromRoute] Guid chatId, + [FromQuery] string? cursor, + [FromQuery] long? afterSequenceId, // НОВЫЙ ПАРАМЕТР + [FromQuery] long? pivot, + [FromQuery] int? limit, + ISender sender, + IUserContext userContext, + CancellationToken ct) => { ... } +); +``` + +### Мобильное приложение + +#### 1. ChatApi.kt +Добавлен параметр в API: +```kotlin +@GET("messages/chat/{chatId}") +suspend fun getMessages( + @Path("chatId") chatId: String, + @Query("cursor") cursor: String? = null, + @Query("pivot") pivot: Long? = null, + @Query("afterSequenceId") afterSequenceId: Long? = null, // НОВЫЙ ПАРАМЕТР + @Query("limit") limit: Int? = 50 +): List +``` + +#### 2. ChatRepository.kt +Добавлен метод: +```kotlin +suspend fun getMessages( + chatId: String, + cursor: String? = null, + pivot: Long? = null, + afterSequenceId: Long? = null, // НОВЫЙ ПАРАМЕТР + limit: Int? = null +): List +``` + +Добавлен метод для получения последнего sequenceId: +```kotlin +suspend fun getLastKnownSequenceId(chatId: String): Int? +``` + +#### 3. ChatRepositoryImpl.kt +Реализация: +```kotlin +override suspend fun getLastKnownSequenceId(chatId: String): Int? { + return try { + messageDao.getMaxSequenceId(chatId) + } catch (e: Exception) { + Log.e(TAG, "Failed to get last sequenceId", e) + null + } +} +``` + +#### 4. SignalRNotificationObserver.kt +Умная синхронизация: +```kotlin +private fun syncMissedMessages() { + scope.launch { + val chats = chatRepository.getChats() + + chats.forEach { chat -> + val lastSequenceId = chatRepository.getLastKnownSequenceId(chat.id) + + if (lastSequenceId != null) { + // Запрашиваем только сообщения ПОСЛЕ последнего известного + chatRepository.getMessages( + chatId = chat.id, + afterSequenceId = lastSequenceId.toLong(), + limit = 100 + ) + } else { + // Нет локальных сообщений - загружаем последние 50 + chatRepository.getMessages(chatId = chat.id, limit = 50) + } + } + } +} +``` + +## Преимущества + +### До изменений +- Запрашивались **все последние 50 сообщений** для каждого чата +- При 20 чатах: 20 × 50 = **1000 сообщений** из сети +- Дублирование данных, медленная синхронизация + +### После изменений +- Запрашиваются **только новые сообщения** с последнего sequenceId +- При 20 чатах и 5 новых сообщениях в каждом: 20 × 5 = **100 сообщений** +- **В 10 раз меньше трафика** +- **Быстрая синхронизация** + +## Пример использования API + +```http +GET /api/messages/chat/{chatId}?afterSequenceId=12345&limit=100 +``` + +Ответит только с сообщениями где `sequenceId > 12345`. + +## Тестирование + +1. Откройте приложение, загрузите чаты +2. Отключите сеть +3. Отправьте несколько сообщений с другого устройства +4. Включите сеть +5. Проверьте логи: должно быть `fetching newer...` и загрузка только новых сообщений + +## Логи + +``` +SignalRNtfObserver: Starting missed messages sync... +SignalRNtfObserver: Syncing 5 chats for missed messages +SignalRNtfObserver: Chat abc-123: last known seqId=100, fetching newer... +SignalRNtfObserver: Chat abc-123: fetched 3 new messages +SignalRNtfObserver: Synced chat abc-123 +``` diff --git a/client-mobile/app/src/main/AndroidManifest.xml b/client-mobile/app/src/main/AndroidManifest.xml index 3e0e000..fcb3c28 100644 --- a/client-mobile/app/src/main/AndroidManifest.xml +++ b/client-mobile/app/src/main/AndroidManifest.xml @@ -3,6 +3,7 @@ package="ru.knot.messager"> + diff --git a/client-mobile/app/src/main/kotlin/com/knot/messenger/MainActivity.kt b/client-mobile/app/src/main/kotlin/com/knot/messenger/MainActivity.kt index ed22760..0c35632 100644 --- a/client-mobile/app/src/main/kotlin/com/knot/messenger/MainActivity.kt +++ b/client-mobile/app/src/main/kotlin/com/knot/messenger/MainActivity.kt @@ -22,7 +22,9 @@ class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + android.util.Log.d("MainActivity", "onCreate called") signalrNotificationObserver.start() + android.util.Log.d("MainActivity", "signalrNotificationObserver.start() called") intent.getStringExtra("chatId")?.let { chatId -> navigationManager.navigateToChat(chatId) diff --git a/client-mobile/chats/data/remote/api/ChatApi.kt b/client-mobile/chats/data/remote/api/ChatApi.kt index 31154bc..1d2c304 100644 --- a/client-mobile/chats/data/remote/api/ChatApi.kt +++ b/client-mobile/chats/data/remote/api/ChatApi.kt @@ -29,6 +29,7 @@ interface ChatApi { @Path("chatId") chatId: String, @Query("cursor") cursor: String? = null, @Query("pivot") pivot: Long? = null, + @Query("afterSequenceId") afterSequenceId: Long? = null, @Query("limit") limit: Int? = 50 ): List diff --git a/client-mobile/chats/data/remote/signalr/ChatHubClient.kt b/client-mobile/chats/data/remote/signalr/ChatHubClient.kt index 3379e5f..d4c9d20 100644 --- a/client-mobile/chats/data/remote/signalr/ChatHubClient.kt +++ b/client-mobile/chats/data/remote/signalr/ChatHubClient.kt @@ -45,7 +45,8 @@ enum class ConnectionStatus { CONNECTED, CONNECTING, DISCONNECTED } @Singleton class ChatHubClient @Inject constructor() { private var hubConnection: HubConnection? = null - private val _events = MutableSharedFlow(extraBufferCapacity = 1024) + // extraBufferCapacity=1024 позволяет буферизовать события пока нет подписчиков + private val _events = MutableSharedFlow(replay = 0, extraBufferCapacity = 1024) val events: SharedFlow = _events.asSharedFlow() private val _status = MutableStateFlow(ConnectionStatus.DISCONNECTED) @@ -56,32 +57,59 @@ class ChatHubClient @Inject constructor() { private var lastToken: String? = null fun connect(baseUrl: String, accessToken: String) { - if (hubConnection?.connectionState == HubConnectionState.CONNECTED) return + // Проверяем текущее состояние + val currentState = hubConnection?.connectionState + if (currentState == HubConnectionState.CONNECTED) { + Log.d("ChatHubClient", "Already connected, skipping") + return + } + // Если соединение в процессе - останавливаем его + if (currentState == HubConnectionState.CONNECTING) { + Log.d("ChatHubClient", "Connection in progress ($currentState), stopping first...") + hubConnection?.stop() + } + + // Сохраняем параметры для переподключения lastBaseUrl = baseUrl lastToken = accessToken _status.value = ConnectionStatus.CONNECTING - hubConnection = HubConnectionBuilder.create("${baseUrl}/hubs/chat") + Log.d("ChatHubClient", "Connecting to ${baseUrl}/hubs/chat with token: ${accessToken.take(10)}...") + + // Создаем новое соединение + val newHubConnection = HubConnectionBuilder.create("${baseUrl}/hubs/chat") .withAccessTokenProvider(Single.just(accessToken)) .build() + hubConnection = newHubConnection + setupHandlers() hubConnection?.onClosed { exception -> Log.e("ChatHubClient", "Connection closed. Reconnecting...", exception) _status.value = ConnectionStatus.DISCONNECTED scope.launch { - delay(5000) - connect(baseUrl, accessToken) + // Проверяем, есть ли еще актуальные параметры для переподключения + val reconnectBaseUrl = lastBaseUrl + val reconnectToken = lastToken + + if (reconnectBaseUrl != null && reconnectToken != null) { + Log.d("ChatHubClient", "Attempting reconnection with saved parameters...") + delay(5000) + connect(reconnectBaseUrl, reconnectToken) + } else { + Log.w("ChatHubClient", "Cannot reconnect: missing baseUrl or token") + } } } scope.launch { try { + Log.d("ChatHubClient", "Starting SignalR connection...") hubConnection?.start()?.blockingAwait() _status.value = ConnectionStatus.CONNECTED - Log.d("ChatHubClient", "SignalR Connected") + Log.d("ChatHubClient", "SignalR Connected successfully!") } catch (e: Exception) { Log.e("ChatHubClient", "SignalR Connection Error", e) _status.value = ConnectionStatus.DISCONNECTED @@ -91,19 +119,25 @@ class ChatHubClient @Inject constructor() { private fun setupHandlers() { hubConnection?.let { conn -> + Log.d("ChatHubClient", "Setting up SignalR handlers") + conn.on("new_message", { message: MessageDto -> + Log.d("ChatHubClient", ">>> new_message event received: ${message.id} in chat ${message.chatId}") _events.tryEmit(ChatEvent.NewMessage(message)) }, MessageDto::class.java) conn.on("message_edited", { messageId: String, chatId: String, content: String -> + Log.d("ChatHubClient", ">>> message_edited event: $messageId") _events.tryEmit(ChatEvent.MessageEdited(messageId, chatId, content)) }, String::class.java, String::class.java, String::class.java) conn.on("message_deleted", { messageId: String, chatId: String -> + Log.d("ChatHubClient", ">>> message_deleted event: $messageId") _events.tryEmit(ChatEvent.MessageDeleted(messageId, chatId)) }, String::class.java, String::class.java) conn.on("messages_read", { data: MessagesReadEvent -> + Log.d("ChatHubClient", ">>> messages_read event: ${data.effectiveChatId}") _events.tryEmit(ChatEvent.MessagesRead( data.effectiveChatId, data.effectiveUserId, @@ -124,10 +158,12 @@ class ChatHubClient @Inject constructor() { }, String::class.java) conn.on("new_chat", { chat: ChatDto -> + Log.d("ChatHubClient", ">>> new_chat event: ${chat.id}") _events.tryEmit(ChatEvent.NewChat(chat)) }, ChatDto::class.java) conn.on("reaction_added", { data: ReactionEvent -> + Log.d("ChatHubClient", ">>> reaction_added event: ${data.emoji} on ${data.messageId}") _events.tryEmit(ChatEvent.ReactionUpdated( data.messageId ?: "", data.chatId ?: "", @@ -138,6 +174,7 @@ class ChatHubClient @Inject constructor() { }, ReactionEvent::class.java) conn.on("reaction_removed", { data: ReactionEvent -> + Log.d("ChatHubClient", ">>> reaction_removed event: ${data.emoji} on ${data.messageId}") _events.tryEmit(ChatEvent.ReactionUpdated( data.messageId ?: "", data.chatId ?: "", @@ -185,6 +222,26 @@ class ChatHubClient @Inject constructor() { _status.value = ConnectionStatus.DISCONNECTED } + /** + * Принудительное переподключение - останавливает текущее соединение и создает новое + */ + fun reconnect() { + Log.d("ChatHubClient", "Forced reconnect requested") + val baseUrl = lastBaseUrl + val token = lastToken + + if (baseUrl != null && token != null) { + disconnect() + // Небольшая задержка перед переподключением + scope.launch { + delay(1000) + connect(baseUrl, token) + } + } else { + Log.w("ChatHubClient", "Cannot reconnect: missing saved credentials") + } + } + fun addReaction(messageId: String, chatId: String, emoji: String) { if (hubConnection?.connectionState == HubConnectionState.CONNECTED) { hubConnection?.invoke("add_reaction", mapOf( @@ -250,12 +307,13 @@ class ChatHubClient @Inject constructor() { } if (hubConnection?.connectionState == HubConnectionState.CONNECTED) { + Log.d("ChatHubClient", "Joining chat room: $chatId") hubConnection?.invoke("join_chat", chatId) ?.doOnError { Log.e("ChatHubClient", "join_chat error", it) } ?.subscribe() Log.d("ChatHubClient", "Joined chat room: $chatId") } else { - Log.e("ChatHubClient", "Failed to join chat room $chatId: Not connected") + Log.e("ChatHubClient", "Failed to join chat room $chatId: Not connected (state=${hubConnection?.connectionState})") } } } diff --git a/client-mobile/chats/data/remote/signalr/SignalRNotificationObserver.kt b/client-mobile/chats/data/remote/signalr/SignalRNotificationObserver.kt index 4cc2db8..18e0a84 100644 --- a/client-mobile/chats/data/remote/signalr/SignalRNotificationObserver.kt +++ b/client-mobile/chats/data/remote/signalr/SignalRNotificationObserver.kt @@ -1,9 +1,12 @@ package chats.data.remote.signalr import android.content.Context +import core.network.NetworkManager +import core.network.ServerConfig import core.notifications.data.ActiveChatTracker import core.notifications.data.NotificationHelper import core.security.TokenManager +import chats.data.sync.MessageSyncWorker import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers @@ -12,8 +15,15 @@ import kotlinx.coroutines.launch import kotlinx.coroutines.flow.filterIsInstance import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach +import kotlinx.coroutines.flow.filter +import kotlinx.coroutines.flow.distinctUntilChanged +import kotlinx.coroutines.flow.collect import javax.inject.Inject import javax.inject.Singleton +import chats.data.remote.signalr.ConnectionStatus +import okhttp3.OkHttpClient +import okhttp3.Request +import java.util.concurrent.TimeUnit @Singleton class SignalRNotificationObserver @Inject constructor( @@ -21,41 +31,92 @@ class SignalRNotificationObserver @Inject constructor( private val activeChatTracker: ActiveChatTracker, private val tokenManager: TokenManager, private val chatRepository: chats.domain.repository.ChatRepository, + private val serverConfig: ServerConfig, + private val networkManager: NetworkManager, @ApplicationContext private val context: Context ) { private val scope = CoroutineScope(SupervisorJob() + Dispatchers.Main) private var isStarted = false private val processedMessageIds = mutableSetOf() - fun refresh() { - scope.launch { - try { - val chats = chatRepository.getChats() - val total = chats.sumOf { it.unreadCount } - activeChatTracker.setTotalUnreadCount(total) - } catch (e: Exception) { - // Ignore load error - } - } - } + // OkHttpClient для ping запроса + private val pingClient = OkHttpClient.Builder() + .connectTimeout(5, TimeUnit.SECONDS) + .readTimeout(5, TimeUnit.SECONDS) + .build() fun start() { if (isStarted) return isStarted = true + // Запускаем мониторинг сети + networkManager.startMonitoring() + + // Принудительно обновляем состояние сети при старте + networkManager.refreshNetworkState() + + // Подключаемся к SignalR при старте приложения + connectSignalR() + // Initial count load refresh() - + + // Запускаем периодическую проверку подключения SignalR + startConnectionHealthCheck() + + // Слушаем восстановление сети и переподключаем SignalR + networkManager.isOnline + .filter { it } // Только переход в онлайн + .distinctUntilChanged() + .onEach { + android.util.Log.d("SignalRNtfObserver", "Network restored! Reconnecting SignalR and syncing...") + // Небольшая задержка чтобы сеть стабилизировалась + kotlinx.coroutines.delay(1500) + reconnectOnNetworkRestored() + } + .launchIn(scope) + + // Также отслеживаем состояние SignalR для переподключения + signalrClient.status + .filter { it == ConnectionStatus.DISCONNECTED } + .onEach { + android.util.Log.d("SignalRNtfObserver", "SignalR disconnected, checking network...") + // Если мы offline и SignalR отключен - не делаем ничего + // Подключимся когда сеть восстановится + } + .launchIn(scope) + + // При восстановлении соединения SignalR обновляем список чатов и вступаем в них + signalrClient.status + .filter { it == ConnectionStatus.CONNECTED } + .distinctUntilChanged() + .onEach { + android.util.Log.d("SignalRNtfObserver", "SignalR connected, refreshing chats and joining rooms") + onSignalRConnected() + } + .launchIn(scope) + + // Слушаем события SignalR для уведомлений и обновления списка чатов + android.util.Log.d("SignalRNtfObserver", "Starting to listen to signalrClient.events") signalrClient.events .onEach { event -> + android.util.Log.d("SignalRNtfObserver", ">>> Received event: ${event::class.simpleName}") when (event) { is ChatEvent.NewMessage -> { val currentUserId = tokenManager.getUserId() val message = event.message + android.util.Log.d("SignalRNtfObserver", "New message: ${message.id} from ${message.senderId}, current: $currentUserId") + // Don't show if it's our message or already processed - if (message.senderId == currentUserId) return@onEach - if (processedMessageIds.contains(message.id)) return@onEach + if (message.senderId == currentUserId) { + android.util.Log.d("SignalRNtfObserver", "Skipping - own message") + return@onEach + } + if (processedMessageIds.contains(message.id)) { + android.util.Log.d("SignalRNtfObserver", "Skipping - already processed") + return@onEach + } // Mark as processed processedMessageIds.add(message.id) @@ -70,8 +131,12 @@ class SignalRNotificationObserver @Inject constructor( refresh() // Don't show if this chat is currently open - if (activeChatTracker.currentChatId.value == message.chatId) return@onEach + if (activeChatTracker.currentChatId.value == message.chatId) { + android.util.Log.d("SignalRNtfObserver", "Skipping - chat is open: ${message.chatId}") + return@onEach + } + android.util.Log.d("SignalRNtfObserver", "Showing notification for chat: ${message.chatId}") NotificationHelper.showNotification( context = context, title = message.sender?.displayName ?: "Новое сообщение", @@ -83,12 +148,236 @@ class SignalRNotificationObserver @Inject constructor( ) } is ChatEvent.MessagesRead -> { + android.util.Log.d("SignalRNtfObserver", "Messages read event") // If anyone read messages, sync our total count refresh() } - else -> Unit + else -> { + android.util.Log.d("SignalRNtfObserver", "Unhandled event: ${event::class.simpleName}") + Unit + } } } .launchIn(scope) } + + private fun startConnectionHealthCheck() { + // Каждые 10 секунд проверяем подключение и при необходимости переподключаемся + scope.launch { + var consecutiveFailures = 0 + + while (true) { + kotlinx.coroutines.delay(10000) + val currentStatus = signalrClient.status.value + val isOnline = networkManager.isOnline.value + + if (isOnline && currentStatus == ConnectionStatus.DISCONNECTED) { + consecutiveFailures++ + android.util.Log.d("SignalRNtfObserver", "Health check: Network online but SignalR disconnected (failures: $consecutiveFailures), reconnecting...") + signalrClient.reconnect() + } else if (isOnline && currentStatus == ConnectionStatus.CONNECTED) { + // Сбрасываем счетчик ошибок при успешном подключении + consecutiveFailures = 0 + android.util.Log.d("SignalRNtfObserver", "Health check: Connection healthy") + } + } + } + } + + private fun onSignalRConnected() { + android.util.Log.d("SignalRNtfObserver", "SignalR connected - syncing missed messages...") + refresh() + // Вступаем во все чаты для получения событий + joinAllChats() + // Синхронизируем пропущенные сообщения + syncMissedMessages() + } + + /** + * Синхронизирует пропущенные сообщения после восстановления соединения + * Запрашивает только НОВЫЕ сообщения с последнего известного sequenceId + */ + private fun syncMissedMessages() { + scope.launch { + try { + android.util.Log.d("SignalRNtfObserver", "Starting missed messages sync...") + val chats = chatRepository.getChats() + android.util.Log.d("SignalRNtfObserver", "Syncing ${chats.size} chats for missed messages") + + // Запрашиваем только новые сообщения для каждого чата + chats.forEach { chat -> + try { + // Получаем последний известный sequenceId из локальной базы + val lastSequenceId = chatRepository.getLastKnownSequenceId(chat.id) + + if (lastSequenceId != null) { + // Запрашиваем сообщения ПОСЛЕ lastSequenceId (только новые) + android.util.Log.d("SignalRNtfObserver", "Chat ${chat.id}: last known seqId=$lastSequenceId, fetching newer...") + chatRepository.getMessages( + chatId = chat.id, + afterSequenceId = lastSequenceId.toLong(), + limit = 100 + ) + } else { + // Нет локальных сообщений - загружаем последние 50 + android.util.Log.d("SignalRNtfObserver", "Chat ${chat.id}: no local messages, fetching last 50") + chatRepository.getMessages(chatId = chat.id, limit = 50) + } + + android.util.Log.d("SignalRNtfObserver", "Synced chat ${chat.id}") + // Небольшая пауза между чатами чтобы не перегружать сервер + kotlinx.coroutines.delay(100) + } catch (e: Exception) { + android.util.Log.e("SignalRNtfObserver", "Failed to sync chat ${chat.id}", e) + } + } + + android.util.Log.d("SignalRNtfObserver", "Missed messages sync completed") + } catch (e: Exception) { + android.util.Log.e("SignalRNtfObserver", "Sync failed", e) + } + } + } + + /** + * Получает последний известный sequenceId для чата из локальной базы + */ + private suspend fun getLastKnownSequenceId(chatId: String): Int? { + return try { + chatRepository.getLastKnownSequenceId(chatId) + } catch (e: Exception) { + android.util.Log.e("SignalRNtfObserver", "Failed to get last sequenceId for $chatId", e) + null + } + } + + private fun reconnectOnNetworkRestored() { + android.util.Log.d("SignalRNtfObserver", "Network restored, starting reconnection sequence...") + + scope.launch { + // 1. Сначала делаем HTTP ping запрос чтобы "разбудить" сетевой стек + android.util.Log.d("SignalRNtfObserver", "Sending HTTP ping to wake up network...") + val pingSuccess = sendHttpPing() + android.util.Log.d("SignalRNtfObserver", "HTTP ping result: $pingSuccess") + + // 2. Небольшая пауза для стабилизации + kotlinx.coroutines.delay(1000) + + // 3. Принудительное переподключение SignalR + android.util.Log.d("SignalRNtfObserver", "Forcing SignalR reconnect...") + signalrClient.reconnect() + + // 4. Ждем пока SignalR подключится (максимум 10 секунд) + var waitCount = 0 + while (signalrClient.status.value != ConnectionStatus.CONNECTED && waitCount < 20) { + kotlinx.coroutines.delay(500) + waitCount++ + } + + if (signalrClient.status.value == ConnectionStatus.CONNECTED) { + android.util.Log.d("SignalRNtfObserver", "SignalR reconnected, syncing missed messages...") + // 5. Синхронизируем пропущенные сообщения + syncMissedMessages() + } else { + android.util.Log.w("SignalRNtfObserver", "SignalR failed to reconnect within timeout") + } + + // 6. Запускаем синхронизацию отложенных сообщений + MessageSyncWorker.scheduleSync(context) + android.util.Log.d("SignalRNtfObserver", "Outgoing sync worker scheduled") + } + } + + /** + * Отправляет HTTP ping запрос для активации сетевого соединения + */ + private suspend fun sendHttpPing(): Boolean { + return try { + val baseUrl = serverConfig.getBaseUrl() + val token = tokenManager.getToken() + + if (baseUrl.isBlank() || token == null) { + android.util.Log.w("SignalRNtfObserver", "Cannot ping: missing baseUrl or token") + return false + } + + val url = "${baseUrl.removeSuffix("/api/")}/api/auth/refresh" + val request = Request.Builder() + .url(url) + .post(okhttp3.RequestBody.create(null, "{}")) + .addHeader("Authorization", "Bearer $token") + .build() + + val response = pingClient.newCall(request).execute() + val success = response.isSuccessful || response.code == 401 // 401 OK для refresh + android.util.Log.d("SignalRNtfObserver", "HTTP ping to $url: ${response.code}") + response.close() + success + } catch (e: Exception) { + android.util.Log.e("SignalRNtfObserver", "HTTP ping failed", e) + false + } + } + + private fun connectSignalR() { + val token = tokenManager.getToken() + val baseUrl = serverConfig.getBaseUrl() + + if (token == null || baseUrl.isBlank()) { + android.util.Log.w("SignalRNtfObserver", "Cannot connect SignalR: token=${token != null}, baseUrl=$baseUrl") + return + } + + val isOnline = networkManager.isOnline.value + if (!isOnline) { + android.util.Log.w("SignalRNtfObserver", "Cannot connect SignalR: network is offline") + return + } + + // Проверяем текущее состояние SignalR + val currentStatus = signalrClient.status.value + if (currentStatus == ConnectionStatus.CONNECTED) { + android.util.Log.d("SignalRNtfObserver", "SignalR already connected, skipping") + return + } + + android.util.Log.d("SignalRNtfObserver", "Connecting SignalR with token: ${token.take(10)}..., baseUrl: $baseUrl") + signalrClient.connect(baseUrl.removeSuffix("/api/"), token) + + // Если подключение не удалось в течение 5 секунд - пробуем снова + scope.launch { + kotlinx.coroutines.delay(5000) + if (signalrClient.status.value == ConnectionStatus.DISCONNECTED) { + android.util.Log.w("SignalRNtfObserver", "SignalR connection timeout, retrying with reconnect()...") + signalrClient.reconnect() + } + } + } + + private fun joinAllChats() { + scope.launch { + try { + val chats = chatRepository.getChats() + android.util.Log.d("SignalRNtfObserver", "Joining ${chats.size} chat rooms") + chats.forEach { chat -> + signalrClient.joinChat(chat.id) + } + } catch (e: Exception) { + android.util.Log.e("SignalRNtfObserver", "Failed to join chats", e) + } + } + } + + fun refresh() { + scope.launch { + try { + val chats = chatRepository.getChats() + val total = chats.sumOf { it.unreadCount } + activeChatTracker.setTotalUnreadCount(total) + android.util.Log.d("SignalRNtfObserver", "Refreshed chats: ${chats.size}, total unread: $total") + } catch (e: Exception) { + android.util.Log.e("SignalRNtfObserver", "Failed to refresh", e) + } + } + } } diff --git a/client-mobile/chats/data/repository/ChatRepositoryImpl.kt b/client-mobile/chats/data/repository/ChatRepositoryImpl.kt index 9c56127..bac3b9d 100644 --- a/client-mobile/chats/data/repository/ChatRepositoryImpl.kt +++ b/client-mobile/chats/data/repository/ChatRepositoryImpl.kt @@ -140,12 +140,12 @@ class ChatRepositoryImpl @Inject constructor( } override suspend fun getMessages( - chatId: String, cursor: String?, pivot: Long?, limit: Int? + chatId: String, cursor: String?, pivot: Long?, afterSequenceId: Long?, limit: Int? ): List { val currentUserId = tokenManager.getUserId() ?: "" return try { - Log.d(TAG, "Fetching messages from API: chatId=$chatId") - val messages = api.getMessages(chatId, cursor = cursor, limit = limit) + Log.d(TAG, "Fetching messages from API: chatId=$chatId, afterSequenceId=$afterSequenceId, limit=$limit") + val messages = api.getMessages(chatId, cursor = cursor, pivot = pivot, afterSequenceId = afterSequenceId, limit = limit) if (messages.isNotEmpty()) { val entities = messages.map { it.toEntity(baseUrl, currentUserId, gson) } @@ -160,6 +160,15 @@ class ChatRepositoryImpl @Inject constructor( } } + override suspend fun getLastKnownSequenceId(chatId: String): Int? { + return try { + messageDao.getMaxSequenceId(chatId) + } catch (e: Exception) { + Log.e(TAG, "Failed to get last sequenceId", e) + null + } + } + override suspend fun sendMessage( chatId: String, content: String?, type: String, attachments: List?, diff --git a/client-mobile/chats/domain/repository/ChatRepository.kt b/client-mobile/chats/domain/repository/ChatRepository.kt index e32900d..086bd1f 100644 --- a/client-mobile/chats/domain/repository/ChatRepository.kt +++ b/client-mobile/chats/domain/repository/ChatRepository.kt @@ -16,7 +16,10 @@ interface ChatRepository { fun getMessagesPaging(chatId: String): Flow> // Загрузка из сети (для начальной синхронизации) - suspend fun getMessages(chatId: String, cursor: String? = null, pivot: Long? = null, limit: Int? = null): List + suspend fun getMessages(chatId: String, cursor: String? = null, pivot: Long? = null, afterSequenceId: Long? = null, limit: Int? = null): List + + // Получить последний известный sequenceId для чата (из локальной базы) + suspend fun getLastKnownSequenceId(chatId: String): Int? suspend fun sendMessage( chatId: String, diff --git a/client-mobile/chats/presentation/chat_detail/ChatDetailViewModel.kt b/client-mobile/chats/presentation/chat_detail/ChatDetailViewModel.kt index 5ac3e9b..44ba42f 100644 --- a/client-mobile/chats/presentation/chat_detail/ChatDetailViewModel.kt +++ b/client-mobile/chats/presentation/chat_detail/ChatDetailViewModel.kt @@ -4,9 +4,11 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import chats.data.remote.signalr.ChatEvent import chats.data.remote.signalr.ChatHubClient +import chats.data.remote.signalr.ConnectionStatus import chats.data.repository.toDomain import chats.domain.model.Message import chats.domain.repository.ChatRepository +import core.network.NetworkManager import core.network.ServerConfig import core.security.TokenManager import dagger.hilt.android.lifecycle.HiltViewModel @@ -59,6 +61,7 @@ class ChatDetailViewModel @Inject constructor( private val tokenManager: TokenManager, private val activeChatTracker: core.notifications.data.ActiveChatTracker, private val signalrNotificationObserver: chats.data.remote.signalr.SignalRNotificationObserver, + private val networkManager: NetworkManager, @dagger.hilt.android.qualifiers.ApplicationContext private val context: android.content.Context ) : ViewModel() { @@ -114,12 +117,39 @@ class ChatDetailViewModel @Inject constructor( } loadChatInfo(chatId) + observeSignalRStatus(chatId) observeSignalREvents(chatId) + observeNetworkStatus(chatId) // Initial sync from network refreshMessages(chatId) } + private fun observeNetworkStatus(chatId: String) { + // При восстановлении сети обновляем сообщения + networkManager.isOnline + .filter { it } // Только переход в онлайн + .distinctUntilChanged() + .onEach { + android.util.Log.d(TAG, "Network restored in chat detail, refreshing messages") + kotlinx.coroutines.delay(1000) // Дадим сети стабилизироваться + refreshMessages(chatId) + } + .launchIn(viewModelScope) + } + + private fun observeSignalRStatus(chatId: String) { + // При переподключении SignalR обновляем сообщения + signalrClient.status + .filter { it == ConnectionStatus.CONNECTED } + .distinctUntilChanged() + .onEach { + android.util.Log.d(TAG, "SignalR connected, refreshing messages for chat $chatId") + refreshMessages(chatId) + } + .launchIn(viewModelScope) + } + private fun updateMessages(messages: List) { val sortedMessages = messages.sortedByDescending { it.sequenceId } _state.update { it.copy( diff --git a/client-mobile/chats/presentation/chat_list/ChatListViewModel.kt b/client-mobile/chats/presentation/chat_list/ChatListViewModel.kt index e6c68cd..89e4f8c 100644 --- a/client-mobile/chats/presentation/chat_list/ChatListViewModel.kt +++ b/client-mobile/chats/presentation/chat_list/ChatListViewModel.kt @@ -5,7 +5,9 @@ import androidx.lifecycle.viewModelScope import chats.domain.model.Chat import chats.domain.repository.ChatRepository import chats.data.remote.signalr.ChatHubClient +import chats.data.remote.signalr.ConnectionStatus import chats.data.remote.signalr.ChatEvent +import core.network.NetworkManager import core.network.ServerConfig import core.security.TokenManager import dagger.hilt.android.lifecycle.HiltViewModel @@ -26,53 +28,35 @@ data class ChatListState( @HiltViewModel class ChatListViewModel @Inject constructor( private val repository: ChatRepository, - private val authRepository: auth.domain.repository.AuthRepository, - private val signalrClient: ChatHubClient, + private val hubClient: ChatHubClient, private val serverConfig: ServerConfig, - private val tokenManager: TokenManager + private val tokenManager: TokenManager, + private val networkManager: NetworkManager ) : ViewModel() { private val _state = MutableStateFlow(ChatListState()) val state: StateFlow = _state.asStateFlow() init { - updatePushToken() - - val isStoriesEnabled = try { - serverConfig.getServerConfig().features.stories - } catch (e: Exception) { - true - } - _state.update { it.copy(isStoriesEnabled = isStoriesEnabled) } - - val token = tokenManager.getToken() - val baseUrl = serverConfig.getBaseUrl() - - // Подключаемся к SignalR только если есть токен И введён URL сервера - if (token != null && baseUrl.isNotBlank()) { - signalrClient.connect(baseUrl.removeSuffix("/api/"), token) - } - loadChats() + observeSignalRStatus() observeSignalREvents() + observeNetworkStatus() } - private fun updatePushToken() { - com.google.firebase.messaging.FirebaseMessaging.getInstance().token.addOnCompleteListener { task -> - if (task.isSuccessful) { - val token = task.result - viewModelScope.launch { - try { - authRepository.updatePushToken(token) - } catch (e: Exception) { - android.util.Log.e("ChatListVM", "Failed to update push token: ${e.message}") - } - } + private fun observeNetworkStatus() { + // При восстановлении сети обновляем чаты + networkManager.isOnline + .filter { it } // Только переход в онлайн + .distinctUntilChanged() + .onEach { + android.util.Log.d(TAG, "Network restored in chat list, refreshing chats") + kotlinx.coroutines.delay(1000) // Дадим сети стабилизироваться + repository.getChats() } - } + .launchIn(viewModelScope) } - private fun getCurrentUserId(): String = tokenManager.getUserId() ?: "" fun loadChats() { @@ -102,6 +86,19 @@ class ChatListViewModel @Inject constructor( } } + private fun observeSignalRStatus() { + // Наблюдаем за статусом подключения SignalR и обновляем чаты при переподключении + hubClient.status + .filter { it == ConnectionStatus.CONNECTED } + .distinctUntilChanged() + .onEach { + android.util.Log.d(TAG, "SignalR connected, refreshing chats") + // При переподключении обновляем чаты из сети + repository.getChats() + } + .launchIn(viewModelScope) + } + private fun sortChats(chats: List): List { return chats.sortedWith(compareByDescending { it.name.equals("Избранное", ignoreCase = true) || it.name.equals("Saved Messages", ignoreCase = true) @@ -109,15 +106,17 @@ class ChatListViewModel @Inject constructor( } private fun observeSignalREvents() { - signalrClient.events + val baseUrl = serverConfig.getBaseUrl().removeSuffix("/api/") + android.util.Log.d(TAG, "Starting to observe SignalR events") + hubClient.events .onEach { event -> + android.util.Log.d(TAG, ">>> ChatListVM received event: ${event::class.simpleName}") when (event) { is ChatEvent.NewMessage -> { updateChatsWithNewMessage(event) } is ChatEvent.NewChat -> { val currentUserId = getCurrentUserId() - val baseUrl = serverConfig.getBaseUrl().removeSuffix("/api/") _state.update { it.copy(chats = listOf(event.chat.toDomain(currentUserId, baseUrl)) + it.chats) } } is ChatEvent.MessagesRead -> { @@ -144,30 +143,47 @@ class ChatListViewModel @Inject constructor( val currentUserId = getCurrentUserId() _state.update { currentState -> - val updatedChats = currentState.chats.map { chat -> - if (chat.id.equals(event.message.chatId, ignoreCase = true)) { - val isMyMessage = event.message.senderId == currentUserId - val isAlreadySeen = chat.lastMessage?.id == event.message.id - - val lastMsgDomain = event.message.toDomain(currentUserId, baseUrl) - val newCount = if (isMyMessage || isAlreadySeen) { - chat.unreadCount - } else { - chat.unreadCount + 1 - } - - if (!isAlreadySeen) { - android.util.Log.d("ChatListVM", "Message ${event.message.id} -> Count ${chat.unreadCount} -> $newCount") - } - - chat.copy( - lastMessage = lastMsgDomain, - unreadCount = newCount - ) - } else chat + val chatIndex = currentState.chats.indexOfFirst { + it.id.equals(event.message.chatId, ignoreCase = true) } - currentState.copy(chats = sortChats(updatedChats)) + if (chatIndex >= 0) { + // Чат есть в списке - обновляем его + val chat = currentState.chats[chatIndex] + val isMyMessage = event.message.senderId == currentUserId + val isAlreadySeen = chat.lastMessage?.id == event.message.id + + val lastMsgDomain = event.message.toDomain(currentUserId, baseUrl) + val newCount = if (isMyMessage || isAlreadySeen) { + chat.unreadCount + } else { + chat.unreadCount + 1 + } + + if (!isAlreadySeen) { + android.util.Log.d("ChatListVM", "Message ${event.message.id} -> Count ${chat.unreadCount} -> $newCount") + } + + val updatedChat = chat.copy( + lastMessage = lastMsgDomain, + unreadCount = newCount + ) + + val updatedChats = currentState.chats.toMutableList() + updatedChats[chatIndex] = updatedChat + currentState.copy(chats = sortChats(updatedChats)) + } else { + // Чата нет в списке - обновляем весь список из репозитория + android.util.Log.d("ChatListVM", "Chat ${event.message.chatId} not found in list, refreshing from repository") + viewModelScope.launch { + try { + repository.getChats() // Это обновит Room и Flow + } catch (e: Exception) { + android.util.Log.e("ChatListVM", "Failed to refresh chats", e) + } + } + currentState + } } } } diff --git a/client-mobile/core/network/NetworkManager.kt b/client-mobile/core/network/NetworkManager.kt new file mode 100644 index 0000000..fc2fdf1 --- /dev/null +++ b/client-mobile/core/network/NetworkManager.kt @@ -0,0 +1,152 @@ +package core.network + +import android.content.Context +import android.content.IntentFilter +import android.net.ConnectivityManager +import android.net.Network +import android.net.NetworkCapabilities +import android.net.NetworkRequest +import android.util.Log +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow +import javax.inject.Inject +import javax.inject.Singleton + +/** + * Менеджер состояния сети + * Отслеживает подключение к интернету через NetworkCallback + BroadcastReceiver + */ +@Singleton +class NetworkManager @Inject constructor( + private val context: Context +) { + private val _isOnline = MutableStateFlow(isNetworkAvailable()) + val isOnline: StateFlow = _isOnline.asStateFlow() + + private val connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as? ConnectivityManager + private var networkReceiver: NetworkReceiver? = null + private var isMonitoring = false + + private val networkCallback = object : ConnectivityManager.NetworkCallback() { + override fun onAvailable(network: Network) { + Log.d("NetworkManager", "Network available - callback") + _isOnline.value = true + } + + override fun onLost(network: Network) { + Log.d("NetworkManager", "Network lost - callback") + _isOnline.value = false + } + + override fun onCapabilitiesChanged( + network: Network, + networkCapabilities: NetworkCapabilities + ) { + val hasInternet = networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) + val hasValidated = networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED) + Log.d("NetworkManager", "Capabilities changed: hasInternet=$hasInternet, hasValidated=$hasValidated") + _isOnline.value = hasInternet && hasValidated + } + + override fun onUnavailable() { + Log.d("NetworkManager", "Network unavailable - callback") + _isOnline.value = false + } + } + + fun startMonitoring() { + if (isMonitoring) { + Log.w("NetworkManager", "Already monitoring, skipping") + return + } + + isMonitoring = true + val cm = connectivityManager ?: run { + Log.e("NetworkManager", "ConnectivityManager is null") + return + } + + try { + // 1. Регистрируем NetworkCallback для активного отслеживания + val networkRequest = NetworkRequest.Builder() + .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) + .addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED) + .build() + + cm.registerNetworkCallback(networkRequest, networkCallback) + Log.d("NetworkManager", "Registered NetworkCallback") + + // 2. Регистрируем BroadcastReceiver как запасной механизм + // (на Android 10+ работает только для foreground приложений) + val receiver = NetworkReceiver(this) + networkReceiver = receiver + val filter = IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION) + try { + @Suppress("DEPRECATION") + context.registerReceiver(receiver, filter) + Log.d("NetworkManager", "Registered NetworkReceiver") + } catch (e: Exception) { + Log.w("NetworkManager", "Failed to register BroadcastReceiver: ${e.message}") + } + + // 3. Инициализируем текущее состояние + _isOnline.value = isNetworkAvailable() + Log.d("NetworkManager", "Initial network state: ${_isOnline.value}") + + } catch (e: Exception) { + Log.e("NetworkManager", "Error setting up network monitoring", e) + _isOnline.value = isNetworkAvailable() + } + } + + fun stopMonitoring() { + if (!isMonitoring) return + isMonitoring = false + + try { + connectivityManager?.unregisterNetworkCallback(networkCallback) + Log.d("NetworkManager", "Unregistered NetworkCallback") + } catch (e: Exception) { + Log.e("NetworkManager", "Error unregistering NetworkCallback", e) + } + + try { + networkReceiver?.let { + context.unregisterReceiver(it) + it.cleanup() + networkReceiver = null + Log.d("NetworkManager", "Unregistered NetworkReceiver") + } + } catch (e: Exception) { + Log.e("NetworkManager", "Error unregistering NetworkReceiver", e) + } + } + + private fun isNetworkAvailable(): Boolean { + return try { + val network = connectivityManager?.activeNetwork + val capabilities = connectivityManager?.getNetworkCapabilities(network) + val available = capabilities?.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) == true + Log.d("NetworkManager", "isNetworkAvailable check: $available") + available + } catch (e: Exception) { + Log.e("NetworkManager", "Error checking network", e) + false + } + } + + fun notifyNetworkRestored() { + Log.d("NetworkManager", "Network restored notified - forcing state update") + _isOnline.value = true + } + + /** + * Принудительно проверяет текущее состояние сети и уведомляет подписчиков + */ + fun refreshNetworkState() { + val currentState = isNetworkAvailable() + Log.d("NetworkManager", "Refreshed network state: $currentState") + _isOnline.value = currentState + } +} diff --git a/client-mobile/core/network/NetworkReceiver.kt b/client-mobile/core/network/NetworkReceiver.kt new file mode 100644 index 0000000..247db82 --- /dev/null +++ b/client-mobile/core/network/NetworkReceiver.kt @@ -0,0 +1,68 @@ +package core.network + +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent +import android.net.ConnectivityManager +import android.util.Log +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.SupervisorJob +import kotlinx.coroutines.cancel +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.launch +import javax.inject.Inject +import javax.inject.Singleton + +/** + * BroadcastReceiver для надежного отслеживания изменений сети + * Используется как дополнение к NetworkCallback для лучшей надежности + */ +@Singleton +class NetworkReceiver @Inject constructor( + private val networkManager: NetworkManager +) : BroadcastReceiver() { + + private val scope = CoroutineScope(SupervisorJob() + Dispatchers.Main) + private var lastKnownState: Boolean = false + + override fun onReceive(context: Context, intent: Intent) { + if (intent.action == ConnectivityManager.CONNECTIVITY_ACTION) { + val isConnected = isNetworkAvailable(context) + + Log.d("NetworkReceiver", "Broadcast received: isConnected=$isConnected, lastKnown=$lastKnownState") + + // Отправляем уведомление только если состояние изменилось + if (isConnected != lastKnownState) { + lastKnownState = isConnected + + scope.launch { + if (isConnected) { + Log.d("NetworkReceiver", "Network connected - notifying NetworkManager") + // Небольшая задержка для стабилизации сети + kotlinx.coroutines.delay(500) + networkManager.notifyNetworkRestored() + } else { + Log.d("NetworkReceiver", "Network disconnected") + } + } + } + } + } + + private fun isNetworkAvailable(context: Context): Boolean { + return try { + val cm = context.getSystemService(Context.CONNECTIVITY_SERVICE) as? ConnectivityManager + val network = cm?.activeNetwork + val capabilities = cm?.getNetworkCapabilities(network) + capabilities?.hasCapability(android.net.NetworkCapabilities.NET_CAPABILITY_INTERNET) == true + } catch (e: Exception) { + Log.e("NetworkReceiver", "Error checking network", e) + false + } + } + + fun cleanup() { + scope.cancel() + } +}