From a8e60f27b2a1157e0e9783e1c56ed2fc98951cbe Mon Sep 17 00:00:00 2001 From: Stossy11 Date: Fri, 3 Oct 2025 10:54:04 +1000 Subject: [PATCH] Fix UI issues and Update Version Number --- Build.xcconfig | 2 +- .../UserInterfaceState.xcuserstate | Bin 75777 -> 102425 bytes StosVPN/ContentView.swift | 364 ++++++++++++------ 3 files changed, 238 insertions(+), 128 deletions(-) diff --git a/Build.xcconfig b/Build.xcconfig index 0068df1..fff8a9d 100644 --- a/Build.xcconfig +++ b/Build.xcconfig @@ -1,7 +1,7 @@ // Configuration settings file format documentation can be found at: // https://help.apple.com/xcode/#/dev745c5c974 -MARKETING_VERSION = 1.2 +MARKETING_VERSION = 1.2.1 CURRENT_PROJECT_VERSION = 1 // Vars to be overwritten by `CodeSigning.xcconfig` if exists diff --git a/StosVPN.xcodeproj/project.xcworkspace/xcuserdata/stossy11.xcuserdatad/UserInterfaceState.xcuserstate b/StosVPN.xcodeproj/project.xcworkspace/xcuserdata/stossy11.xcuserdatad/UserInterfaceState.xcuserstate index 269213af626875c6a328691990427cb48dbb79cf..718cd03bbdae16c012beb3eb8115b2883199b5fb 100644 GIT binary patch literal 102425 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 He)9hT3&)|Z literal 75777 zcmeEv2YeLO_VC=fGdnxGGqZg|ClI=%cX}#BI-$3)NtO@@N!U&3=v)*l7OdEiB!GgV zh@yg06c7;=rC6R7v0_04#O``+xvIkrPZ;dFmdRnWD!GM_LWDg_&ZrCOin^i8PopvY6#qiIrJ}ZN|1@BiVLrSGF6Q$>y?y*-`9h zb`0xd{cI^aiw&?rb^*JPy@OrOKFF?QA7)4I#lk8LMHugpKCH8f8Kl=syCHob7 zjQyJZhW(cPjy=wP&z@jUv%j&wvwvU{7O)xHu>(7CE8H5l!EJFA?u@(OI2@1j@a1?Q z9)t(uA$TYrhKJ)3I3JI}lW_qq!P9Ulo`nNAh!^22@ReA_SL5sOt#}z;i`V0)@Fu(! zZ^PU1Ui=z<6Tgf9f#1XL;}7s>_;dUR{*z-k#IYRaIF9E`oWPkmiF0vo&cn6l+Hh^T z&RiGnGOjz9!liO)TsqgA%i!|3%eg{sDmRlW=Vo(rxVfCl5pFTJl)II?gS(%5fZN19 z%{{|C%WdYiaL;kib6dG>+;(m!_X@X58{XM!}(GCB;Lmt@>BT| zegVIbU&LR*U&*UH;TQ8)@z?M-@Hg|f@VD~I_&fRg`1|>ld<|d6ui_u(pXaypFY-J2 zJ^X9@8~mI6Vg3mJ8UHzdjQ^TH&VSFJ;!pE`nivx@u_kO1Ocs-DiZC@ZH8-^|wK26b zwKsJ)#hKzwDW)E#-ljgL0j50D5YuqeDAQ=uMAHY`V&H zt?4?`O4BOSBc?}9>rIp+J}-_=G~CNGKMj2^B)6FiQvs^MwV%Lg8v*iExc@tFTPCO}JgSTewfSUwA-R zEvyk96*dS@2%Cj1!gIn4!i&NI;h=CxI4ry+ye+&Vd?*9X#4e=B4OYtl5qN=2)(@s1{ly3s5|UU+k!+G( za!5|eD@91nq_$Egsk78Y>MC`U;-v&BQA(1MrCw5RsgKlG>L>M=21rAskf;3T@ zB>AKgX@*oS&6eg!bEPY!E2XQXYow*ptL*-%eaCwBBFVB$6812mvXpEkM;WLLQidwSlqrf& zDO8G-V#TjaRZ5gO%3NihGGAGsEL0XLiy$f`JC(bXyOrh23gtniR;g1S zS2iinDw~x(%FD`Lw|!vy(Dsq-OWQAYWasUo-C|el zHoM*4%--DI!X9aFXOFih*c0tZ_GEjCJ=NaZ-p8J6?{6PqA8(&vpJ<cU$eh%KVUy-KV&~_|JMGU{kZ*m`w9CG_LKHg_S5zs?Pu)2I#`FrVRc9jx5MLT z>xgu;bF_DKa&&VfI1(L6jy{eY$3VwW$1ul8$5_Wi$0Uc(QRpag6g%cR<~im&7C06< z7CEkPTUv%zt?sC5FJnVeW`H}Nu z=cmpuo!>aWb)Ink;5_L(<^03>r;BkR7wZyS7MJ3(x$G{lE5g;v)ydV_)y0+IN^~W; zl3nSp-mVPS1lL5@B-dnDfoqD(=PGm+xr$wW*Hl-DYnrRfwa~T5b%pCnm+B&}#jYD% zH@cR(?sPrqTH|`iwchoFYoqIF*A~|{*LK%V*Dlv?*GsN9TyMKRa2;`d;`-cm%=Mk? zxa*|rlv{GkZpCeL+uaVg)9rG*-5$5s-NN0@-PPUAeVIGao#gK0?(6R7&T!|r^W4MT zBi#A!N$z6zba%PC!X0$aaW8N$bgORSUhKZheYbnL`yThb?)%*LyB~0`bgy!+cCT@- zb8m1z;ojta+P%g7oO`$XRrdk+Tkf~r@3}v6A9a7~{?h%G`E=oDBzsaksh*ymzMlS`0iHZhzGu8=il^A)_mq03d&)fl zPtY^RGuLygXPM_V&+VQ&Ja>BT^4#rN?zzWvuV;m4wP(HOG0)?kXFSh(Ui9qr?DFjP z?Df3nIqZ4M^S0+5&nKR*JjXpJJ*PZBd4BUUUgYJyCa>Uic%5FC*X{LqTX7C^bc!S<5Z?$)}caC?iccJ$x@73NV-kZEP zdvEdH?OpD@$6M!JmVqd(wN#d)oVB1QUTG*a%aEGr|?&j);tC7tuZ^C8GG8!Q z%QzUP%Br}QaWfvUZSj0{dV$@Ymz^`FA}}LZ=_~SQR}@vx^p{r^*gK?TCT3*Cr=&$E zXXVC6CuJmLMQ0>uBuB?5rYEH*X5{21B_|mzw_v(4Js!8)n3hZ{rZv-sY0E@1?U?pV z6w`s}$aG>lGhLXjDzBPUK{czQYEiAKq{^zI+ElyhP@SrazJ3|gorz{*m{=x`iHA=j zlf)#$?^Gs@Nmt$KWdtV>HdbA#P9`{+ex(qcM({AWNpJzdQ`9Q8y1?FSgue(zkyBh+ zRS_`8G-|}4V1d0wwtuRxx-9fen>z+`D+2W4#EhaUn0w|IP4mz67uZ|tKZgY>=o~cP zUzJx3b(T&o^#@=U3J@AmU7qa^R+X0fs$lM_O-ievWOcwlx-?i?SXx$E1;si}tq2tP zGpkF>ilLp1va-engLzYj`2EHHVwl_-{Tx$TUR*H;y6Va)_Z61;M@|d)eZ~EKWo7;V z)Yn3Po)HN6%1fZ5me|KrN#b0 zOmI%=)T#qa0W*d1F@@uG_9+MOjMXpw!BIo`I$ zdTvogu|GOkG&8zr8bw(!x{@Fmb73B?N-rJXwT$B`_oR9znm^igCJ-sNw7oX@W zPK_^2O-U=SmQ2m zd`z$^05lP7+@7kn7gb!uDKa$IolG6mV?A>hb2qb`xre!zxsSP@ zd4O5LJjkqMYM5HJyBe*=sIh9C8m}g(iE5IXtfr``YT9~c6|EJA?f*D+2TS2Yi*&G&NG< zuh*9a_MR7dGruZOttq==;FDlQng8r|yIkn)j9}1TmF27Q0U`_Roi9{$81)+Kl^58X z1E_{qmln+!R8cWQzZn7>5ZeW7(SbRnqC6MWME*R`Uo#s+HtRw!8wJa&0u^P{SOV_M z0*Rfa3v@$s7ub_8R7Dg4#qzrJxgF2Jk9w)YOJa1>eK2W z^?QO4L2U_&QL7vC`}-Qd_xz6u*CSecz5jM4@wrxS-vWEarOH9WR>`QW4A(thYt?4_ zJ-Xm~t+K3t9oE5%Q)H*L_HqjBeJ>d%8O6l`e=ssvq#zrzBL{LK7jh#H@~T7CVd`*ogqp98R7a_!)iLVWb*LH4_TV3Cg<7LF z@HZ0Xd*jr}+P?y|Qk?`>v-HVb3qu+ghg42XP@AuS=~`fK75;Eq#hk&V<)t%yl?C>8 z=X^|cYgPrUI{HdL$F@CZnY?mp9fNTOGpg`f%6#)Gs;hG5!la0r&`>5Syp|$R9%b5$ zGp1tdRM3Ctswvp0R9R^`^yl0|%BZfIRuO=P!XHzUBDbQf7>F6Bi(&nk1Im67)Ev}i zV zq70O&7OFF-KOu4$0HY*OQC(ggOiIxE}lXD@)8&dospxN%;=SBH%H55QT>`}t%1hY`8a^8X`Mk-r3TbsqdG@T z1qwU6Hc{{8B6J0KFNWj~uCAgEjE3&kp+${5tfCt)Nk}XW35i?LGISdVi90|@%n1pJ z1?tu661cvG3JHBw%PD2wqs}!b`+iE<519#R*o zi)ztYv`)Q3C6wI2adbYSy$GT=8h9LSqz!C9#p;!6SuJ`Jm8dFUY5G}sact~oys{Z> z4P%9EXgjdNV)ZJ@3J1_mz~QcNa=PN4JIW^CI51}EqQWbF&6)EAkR#dyMPCjty0-t- zonAea@!B;5Ocg!H$G%4?uf0wR4jgNARr_Dr{3Lw;O{7ckE=Hr2>yX0_#_icKkAK8ntr<39rk*1 z{uTW}2k;yEUAr;b~; zFW~mx5N_`e;dXUBZrLorEt{?07s4&uA8-paq5T7_>i@twsEH|d2s<1)&kkjWsSl_t zYS|HNzWShA`?u*Mb}TzF3`>*P$$+JmYK@MiLI8bHIOse7;PbycD|gE3$9MjC)16O@ zqga{>MN7hqp4=O`E~{VOsfT;Kwcx`i17E8p#`vbQGj*~m1G1{4$f*FbS`|iC4)zh_ zl`3|Qj?dYE&o$?N#VEgsz3!6md3^|Lcu9w1G!K5_E^0!BAcj6M$i-4NDe1B7p| z?*T^HH`xR1LG}=Pn02*Or#`Q4Rkx|z)g9~D_d^){m_0(J zFZ(HA^o0;ccdKs#&rMbjP>i0-s{Ee~uKVahKB-Hx!C6pTHS9_CMT0qh1mL8jw2ZxZWqp)=qNj8 z#J2+i50{;JY5t&37XxeJ4p6jXc+ttj`d>5jk-_^O-1g|pSDzUB0cg?f-#5{sxGV0i z@hH9wc=X`;!DhfL0rv(T#fdlxC*u^Hiqmj9?ty#aUg}}>E%j~n9ra!HAL@JR`|1bk zhwE@3okww|&Z9UNc=V$XkA4#3(eM7pquRo6Oc192f7d)2j|3jYqtuT>Jc`ExkK%Fq zKlMoHUpG5zV0H>Fq8#eOh3ZlD(^_1N{px4xmwz9JPRF`UfT>OJIVCk}6MPZIp?1S5 zgRAgd%AnPFHlCw?r5;niuEX>2d|=RT)NlX$3`&6O7Kd{kx@Pmu-+qw0>A@d78N*J@ zpHCTd2^761yy#WSuI%{wAD1U>dY^UepWOGpdfkby$4hm-yb<{F`1yflVDC2kz@=D2 zctwaWYjGW3#l+z?z?UaNe0fU!UHt>D|E#x$@H$FNkElNw#PpbE4dD$a5pMuX=%n`P zX76fr=V=UmL1lRcDHx*P-bC@S>m1dbsxMRsFtNUv$?OyIyXW)PSA? z_%KCJF+K#e{3}Jz+d#{|h0(I3?#F6?Am;q98{qr`|3Ibg zm-s7u41bNk!QbNV@NxV-K0y#m5GIHth$qNIkU)@`Adw&oLDqHnWC+h^bgLKt%D`Hm zq$8RjyKeUq)cSuS`0p3NoCsXQ0UqQK+i)_l4X1E6`XNXmDD(}sQk1=I2-}>OYYybW zMR3gsauDRK@wZ81E|QDVD41)nmJ#Hx{~&dGnq-+7U))B{`(#>Vvw zXY7x=O;92FaCB zlADH-xM_G5LG9Iv^y?2GxHzLz6iYMQ+dOWePHqb* zxpfAS$6cY86VxS)+8k{<8a=y;yY_4$&t1n|kA@J`jiAdkG0)uuc)K|qZ!;!*z5HHh z=E3KWj{lB21obAUPc8Qb_a;Go2`nxBUG8`8E$&^NZQh}5(~lD1dz5W5!r6usjh=nX zeM$xM5$+T2C_z~SWfPQB$9=|qPB|x+p#J}L+nM_oSn<1XRxDld__N&boX9DA-w3IS!10)_ZslxMtsMxMQbl%V0Oc#h|J6AxxpK0zZ18b#3PCcz)PMAxDT8dP8(IyV{?ZfQ(Y zv|l6AXk+mTV!sN@eC0FhZ^UNjWF{n}CM85?Bqn4;Cnaa(MyJJR#YJbwCnu(6#HHjW z#3eUc(dQj{D?=`=mCS_P+|;zpoal_~#9Ro9PEUwV&x%WrPR+>9P0CJ8%T3G7Xxxfd zZ)Mn}wUV8fl#-pD93P#Um6RHtl#mKxZ8=G4(Qz4xsfk%hxd}-Lpl#~IV)>SODoE!+AOG}7O%S=m(PR))>NXkk~Ps~cl4Iz|o!?$I6tXxSEr8(UB z_Iy;+8=d&hO>cDLFKc=uhL2-<)bJp+$JX#5wZ}I_dx}1YaS#n=1o^>|YjsKVOf5t$ zx`f84(a6!Fq~yeeq?9;A;qvJ`_)zNj9(+%}7eNyU0-Zdm4wdkI`M#97C&T}0_2lBx zU{P5Ggenh#_3_}OB8cY=_=fq)hgAf}HTg9*N}pgbhU1s-&*#yu4+y*hX*sDmaXFdM*$Js}(Meee+0p4~ImyvEsksojn4FN9m737EYF?$k zH^ku57&-&IBl!HLz#GkvV|vu`WB9QI6%#bImLJc8oV-oZ0)j~kQ#7nMr7>z9U&*_*D7mBEjZMdVw0XA+@C$DMzET+f9d?`Pj zpTU>$Gx>79g0Cb9%;4z+%^(P*_e_ESxfKLeKFkOBAYa8-^RxLm{9Jw>L123Y392S& zHbHX;noH0kg07&h>j>Rb?Jv%Q2*8F|=ir2(7H3KCLR5vl*k9!2?}US==`<(b+FJMT0qbDSJlCt>zN{mJBJ^7`5XBqHT+V7z_x^t1$Rs= z#ERts9mV)6D@!Ro(EyXyd6{`xp*YK-p*9-^71gh7heqoL-QC9D-jwd{;+Ip(znh?W zHT*pU&8Hx=`R7*pAe=x4VYVJf!au-2Si`R%XaPYBhsWr{xSp@ArTreSgOd*3XlgaT zrfE}a`Hh!^^C$VI_)UQGXZUCN&HNUERDuXWi#42IMbOm*T|>~dp=bbps{vjJc;I*F zKmH0nMqhXFyPNj)W&V{0u27bV<7L(N^O|F+NT2OqQ$;vc@#hVn96NYNCnd~M9LH7~_ zM*ICRRFm7}p+kLupa(B%sDC+*zl4R}{g!kvCdP35o zMIkOTMVY`d2^)*4i>a##X1z58)e*EN#J{F!n7Ei?2&z@Pfg=TWtx#zSJ2HxmO++!} z{;JTP9pe%^+)LrfSn{6POv#5%d~C-!>iYLVdVT7dY5=4D)biMRB#Z zSuLM#H5--J7bY_$)zENnJ)FNG{%}y}L5xNRIf$4=sGb&~m&GyanPn%Zkn>D@2S23-;de)pW zPzn$<7*h_r_~37>wxI}&H|RVh<$>C$d9LwC)$EF(wwDfukZW`<2o~S}iJpa^Hcboc z{=WpWP{(v?h%WNM&Qq;>{}e(8Yc!QbD={z@sy|pfqjx=;5>jH~LiekDff9dJZ(m?$ zN|KJpXo|@AR47qZQBel_6-FgK}}f>kl~_hU4Y3hkzCWHOkDPVdhaI4~bZ??ZIy zSsy8V@r18g=h0N5_okLESll|_#_AjctiDMo)?lUvx{f`26fyM-8LRIe2*wV{ft{w%p>o(F z2jV4WS_tO#CI1i5VQD1=NkuT!wf{5xaaOy% zYr2n#Gd)1pMV>d-MRpLhm!MZ5wF25#zY1omp;j>%u3JOyeA8-h=bP4`6{a<&wFGTb z=ff94+hGsE(r4_EhOzXR=?QQgn;ti9AP5!%UaU23G(AbsPJ&+g+g$plXHCy(E`8G$ z>eAmu&AqME+}j=I(swcg?{8)F?M2f|XRn2s_LyEqLkQYK(97CdnCVq8iC+tMm0z>y z_{~*^2k(8R>_~p${mfeMs+-<`qHl&5O?&v&E2s9p+;w~Q%*M zf=h4{^f5u7Q*QcO;(&zaLTg|Pp@q;=fZ6sDf<7VWXr0hTXiGWcQ-VJGudj6pofwxP0ZW7O@46xeHqgS0aps$py*}cMc?T^WlH&k{!c%4B4_i&XC|$xU+WTL z1PH>Y6=JEA{R;>S7ZOkjL0>{J(%DfQPKMhyGpb*!5HmZ!H1O0z=uHJuQ0PUO`5Rzn zA%O}c2>m;2laKL6mM{dES;!W0gj}J&FhIx?E*Az0g9KPK`;MUF1bt7?34(qg=p;d> z2s%yBj|81rCk)k@S;!Yg3Zs}fVGL#FpA2UHovzX3CM=xFa??_r=kD9omGRwYyu^anwI)(UfkxrAj1i~ly& zC@d0GN{Ph+Y&9b+q>3#O76T=+Y#1dvndU|DM&GU#Zlp5cI^lZZ2EuZL^s95+tTqLtD}PbH(x(_+MQ2DWgMq6U^x`MC%ovP#8Ph1UHv=W z()!5m@=>c}sbMIx&R1`Hy#ooVx>lSn6OHXu#T|yCf*?7 zacu&?+Wz*`K$mqCtb$_|0RY2m4VttcBeM+e$ z@JDOA8)L$ATj)h&iUYo>Gy@dmt{4nk@WIVvjQ4qA8y)Xf!n$jO?S%Evb{tJwpxG{r z;yVRcIawp@5_StO344T>g}sFJ5;lUc%?R6^uq_DNa*eQ0c$MqG#0dMj4uow**k~F` z2RXjjc(~A9oqmm-wH21kc@4{WuzeeL>W0#E1&2<}nL7=mf0Y1!=nMhAp`T_H5mO0yLm|9h;yo1fuXOv?vB-mbo(&?Gj$JXIA>N%@5^GziHjOHyrCeWeOCf`?t-P zF{5kE-6=`M09DbYi|IN&8OvF7>3*b2nr4cA(X35#i>UutOZpc(m##|(im6vP7|NOk z&y9P?NgzZJxe8Mgx?3+ylt$C0xXjA_kiO5ot;uDj6alXWaRQfMH$yXfj zOYtT66aA@E(^7nCN%3jE;&hOa^+7u3;d+14{~i4)OiT0?CdK=beT6>%)M9^9Qeu2j zQE^hLKQ1XXIVm|kJtZMMH4U;}HS}k+-XBP^^Y9RXoOv01ZimmEFc|rLB3n`CbZ#dkC9b zW4@2D{Vz!rK4`9^qA-RELoJ4#N<)ZYH?KCYff#mn0AceWVS#xq$c%O2@~zpzt!*+p zX5Mo{&OIM5^qm54$pQ0vDEe4<(RZFaK5^;ltg9A}x$3F*qfLLPCBqC;C+rB2 zl>Iswl5$2r?aCPCUh_U+4D&059a&?3m9V4EXWtnwykR~-UwD(SpdJqrcFYA0HS^o% z4}rVP@0i~;|HJ&A`F-;TgdI!RafBUD*a?IMHl4J_{E_)%R07;}6sE~6P|_4SzW_V! zR+uq^9r)MASj2e^x&M-xrsLsTYD0WS*aEfNxR~tx0-%6^Ve*=PFrNkjGoLh{BCLs`Gv~7RLbw-Aq5^_K6hyNqiWbo-N+RSU1e8r9EU@Kt!pw)34beH$cLLrxel+YFOqvXGSB~h57HuuoRy7=x^HZX#lOQ*bYRY z7)jWQ8nHcLD=$S9ik-x6APU9KVi&P1VP_E*WKpnAyiDv)twOMKtN-h>XfctoiAmwI zb;bUIrBeoEjN15NS?e}v?`9CgVk#6(3om*o_QR90Q*(u;o)=8AdH0kOXbN@oFK7uJfGQwCb} zPchIiaV%w^;o=A}UmPip5=V<;2zv!#uOzHWSkV8A340Y`uQnKHA~4Y8MhvusGSE%` ze=$(0ID;|}NSAABM364mUJ?UUidB?>W{CkYNZ9KLdp%)qs1vKj*_459B<#}vJ_9WR zuDBwcEAIPkMY}!j!IN*F(ym9#wYeWs27=wq;yHFVFZ0iMvF~*Q-+%sx&v!kOT2|@t({;y)CVkyw~Kdz))(&}>}@sTU4*^; zFU$n-Uh#hV0+@bx)QArd_Rb5M31W@-FqjEqtym|n5?70B#D@qA&D>4c<%9(*@?OH; zw?W`ZH+o)MpCysN}##m(Xt@j1c* z#8wdYLBg(FC2keBiQB~;gsma$V}yN{usbOSoL~1tf?vZfFw#NO;E~u1rHwq_I~PhU zecpF2n8Q=EOT;}Q%|au-Ebb+2En(|w#eE`}pQ{MFo(?X2`g0+>plw~!&T1Vxnfr+EyXH?pJO4v0u;^%~Y z=#r$(G4VT)HmGsJLGifwJry+%6LziU!4XdZ51$Ta_qBWO@00sZ#!c(CHe0^&i6ysE zcK->A{v2NP-WvQ<{yTZxBX6z!b;7oktqtt{n@H_F6cqoU?EVO_y9H4$c{H5eAIdMV z|Jx>&7QteHj#$hT!H-h}TdWkp8_t8^5cn;2OEZc}8Iak4%Aui5pE@da+tSjCiLE+DlP3T9RQV6v2-Ntlb3=@OIJ(u*{HO{SYjzEpCarg4V4x!eJtlN zecHyH&i&k-*KbM5;y$Z)ZwLGwuz=}fIfv$|%UU5q7%{@=Ac?tZ~R816V#D4$Is_U%cQum`85t-F=0B z4^E(9-v~vY3@>`a>E!FT^z8rWeT&&sLw_quX#o4vmd!fYpQT`@fh*_9Nv7E+mhIr( zu6y{pmkrUiED zgp4A~A;KPPc=Wb~`bqx60J3~!(flM9%})Xq{7i`x44_}B0c3RG3(MDlPRo~;uPnz1 zdzi3q5%%pm%Qu#9E#DFL9l{~?@?~}xDhv4ZB_?xgVj#h_iL<9!hUcm++g)uTb#`e z)|S>*lp8)I>_-|mSRo6T^&DBicG@>her$c_&f6Btw|zE$#eU!hD`Ww)o+As`qg(Iz zcKqrAFI-bRHsh$jDy^OytX-^^Y20A#M!De#aDz3P;`x(sAvEH-5d5qO)?|3enn=M8 zwo6^DHHCuxvkQaW+S8hKkznr+V9#p=_RlHUX>gYzgsg+DLn+t+PG8hm;VdPHRJn+F zB4Yp}tuQriDuk@#tm7%zzas209qf|rT9*LWuWh7qAsZB7e{2l)8?84{urDR-4>i`C2_yi# z6tLfBy(IOd4f#@3j{mpbXh;v z#W=`AUr^WfJXcf)hv^Hj`pqnQFk6AWyXO2lclnXpCXK%=ZtPwP+t&n17tc|9fqt)X z<*<{kNkO`OQ*XAw?hG%kBk3?j(pvEk9N_pYf~^Ew2o?#3V=VuLqk^I`_VjQ4$X4{ML7GRcpFw_AtkNuou8{ZIzp{;6Lk6XWoy~0hvb2gystS78LFhze=4B|3i zXYkoC8y!DoJ>6tSu=OV^>^ZHm{!Fl|#`-J45d6}J&?QDAbnFIkZR{o})^=slz2!kY zTS8KCa#DJIwgd@FW*}#YlX%G_0l|6+jv%-h!Od4mqGVyxC4g89f?Gi>25wEMxqipI zmN=mym}KPqii(+V)LmYAV)ocT1;mwruRVK4NAxViCh$?@^=#lEYS( zAQAc=&2+2;nGn_Irdx*Zpcj3=y16WpUhKGI_t=l<>|NBUVY>rD!Qef-?f4nvMi_ zBDgcHW0&_OCBL&}A%F%OD&~F?=`_VLs zsFWuS1f;`(cwK5F;F7p{3sD*>4TmSvFoNT2AYZYz#&-TKjUlR%MoXZfYosv*C)P;g z2u@O`Pl9kCdf*?N;sl8c#)Q01dQT?65Na6egtPxMMrlAhn-faA1D~qjv-7w zR{?quA)N15-1IcV%z65Y+IyYO^27JcbdPkebRWUl1m_T(OK^XJ2N0aMMtVS6Aw4Lq zlxn0}f-fg{Ai+R&g9#o&@K7oMF1m{a_Fl!at6;BmX^}q~#GJn84))*``KQ5g5&l55 zF{B=_3(vUOFiv|$)7OXQ!%jY^t8oqW8yTBaQGXW{Nm@cuT2fAST69i&d}4G`YDzqu zT$-2}otl%9m6(v7k)52H7HTtCI3K=Z)<=`iA#(FTtawDd^Us$C8WW1R>K%|Txyi{h_pCFQ9oTv zDN4Kfn10i>Vpg-w^*5i;Z#G+WbRfv(FWvE=;kx}&E_AZENE4KbBlhn z%_ij+AKWy^W2>}>@vfD&N!z6z(hJgy(oSiYv|D?_h%XAj@up)95{0wXfQ0F0JiX7+*;y&s>6y7%(Qz6upE{IR;o~X;$Bl?be0}G!@Ur~kpne@5z zg#=a#V5pGbB7%!oNyntGrEjEf2?nV9Hm7@jgC)+WLru0>H4tF zm`rujPtwoQF9eqoTuv}-f2h|Bzsm?V&P#ttf65HO(+QqIa9N!&QpOVaI=}>+34^3# zqvE^i*qXFGEKmvuoYI4JFS~HTOgPy!-(TqqXzXq8dg0P~8(NN*;l}rsHmt?(K@T-a<^*T zu~YZh(D~1@VzWD(a1d>16#6N(kUuD+3e_&=ay2dBtY$MPwp`dzeW*>_NTpr-s1EQuzjVGI+L@YL<|_%(I8QJkqWX0L zBM1I-nCona^L$zHmt3ON^%0|aDJ?bd> zGPoHR5B%O}VBkNb225?jW#_!lm>CDtg6Y6?WfI^N={#l-Gn~n1CNss%45o@%z+A`N zz$|5MhQmJ}gp)isGEXs2GtV+xnCF?DaOUAb=6&WU^9^&HIl-Jn60A_QLLE_e6pPYO zZ*(~tj7Gp2IMemvvq=BTB!>Qm{-7%fo~0>oxrN+vQoZU1qrq1Pw^}hp008W7r85()RjaapEt@N#Zvj)W*s(~#*-6u?bP9oGppBv zcB-(unQ@Gt2?B!rOaM^jW9BiD@LdJpiA)bBiAjr$Whxms0#KWx%c*idNF61o$?0+r zxu@Jq?k)F``x3l>V6f;G5qt%~fCZIcLh#~;nK(I<21G(J$e+)|QRQ_NC@lB`MXsh- z6oeiaxPAn7UN9E|n)5+F_{%5P-_;TVz+@k84Dba9mqLa**ju5=kYH}0V&;&1*f9XM z1w8{xi<+i5)&-ni?MPo?rY|tY7u3!RFZ0u#2KhkEaOStK5Q66n!29X83@ua}?$dxV zaZ~9O0~llL)5($~Xt%hf{RfVJ!I&Yc|9;yR<|X`t(-)PnvuTcBa5B zdVnOPmGpzP0qNWHH}lGal@J#XC$!fWtAA4~Hj#$tWz)$uq?>_R{5ej}ZRkUN3;HeH z)(% zP++yxd>O{U!}TML$%RZW1@>2pMhYhuYg8#)jx}kGx#I54=qBJu(0rCRX>?%J-WALl6OSIR$a^S=Ii) zykTH~%mlMC5Nu%FNsz?^?hNx)!FRbq0ktwD#H*9*#jyAi*o^Y3jN6ED*tfWRLGg=)Y{DlYA&4`N|G``yG5-kY6()gmg%c1 zf?ZAJ#Uo*tkoNW=d4v3f3@d>0lgxN|ll=5J?WK|az|8UGFofcKIHTS_Uc0HaL~xx7 zrX2Kj%|UqUS$VU(#e6&Zd1Mt-ITl7XlPVbkX|mbNb@jJZ-gZ{&TFbPFT6sJ5oi*uN z{ll~F*LPX3^+kE7?oFs4llEd00MyF6X!X?RaDh@Irvg9>bnKDg%;Qz^%kp0N6?q@Q zfP-}eKSJ=MtK`?@*X8{(Fx7g3A0zm2xS)t}=W2M>WPRp5O6HnF!aCO*W29Q*1A#lefdLh{Ky{=yrD+^ zh+ysbtn5u(nw!WKBnwSI;c;2khto0$X^pmY|Ya z*;>YU)FZ$7}YPZL;Dfc zZ`p79U23MnCKaX^Gmsg{Okk#fH+&wS=~=1w@3eywJjZf2fib})P4VC^@VFTgB4 z&75I=Lkwz-B2g5WrO9BHX6O~x8>1oHT))dOD8!0i%3pyck~6omOt(*lR#(wOLaC0^ zXB-s!Arh>UkI7$C_PNON1@^*%kyZV(M#rbX1iGOOkk$z)4L=(-Nd-kPHPl?e==_4j z_=a*C3iCm!mzOm7o(nEXNg4d`oqUq=^l|xn`Gouf!A}$X48hM5ym^&;NVRLqnHSWK%EfdDi)15w+*##Jc~62^S{QL zt(%qq+-v2^T2X>vuyfF~tTdwO8>eZ+W_EOl={0cVsL|sl`paj{*9j1z5Fy$Of(-q= zDug0MR=i-!D~e)M?21EiDlWyXcnID>@CyXLNbpXAcM-gsU~p6Id02^1nkmhd7D`Jn zmFCM=6Z|s4dkKDpV366bYBmz+v(95C=|%E_!D@QibcYMI*I=<+usLdX71)#OYdWu4r#DSaC1AI#ib^n& z|I*+(pDn3_>pcC^wwh~mn)4f5I*=~LC^V=iMuGX^DkWBlQ{t5bf?p?iKf!Mh{N^ep z2^jp8l1lIajlqG<5C5kaTaEfIl7Sg2FFqP*&O^gIF8m@rHGd8 zI&{9QyY4qStow~zZjX0#$Ylf;p5`yp-2>1{cJ?z3s@k*j_^2i^ zMNBzU%`67>{}{6$RQ^HcF!MI^F7qMt6>|*K{|Qk3ycRj#9JN7hQ9INLOn`JamAxOz zMA>L6nt_(0WoRRMU6-=;MnOVT>5GmT{FAE;pmf@w;J0d&JOW{>7ot-`?+nrO&O84G zz0KM)gnXo#Dz@@VO}?lze5RGD;b(z=Fp=2!4;?_X!3A`a^<0TBD3p z#zP{3bY&6~NASl4AAvjq;FkDCcNkI28gO1TgSyW{R1`vg1U%AI%*cSRJXi|cqY(!P z*NE)Q{`E$DXg8ofN6@MRhsMzIvU#w6Sq>68v#g?MMv%IoLN22bz?C$Mx$gR)CAE$E zAnrB!t>weCa|U{+DHU{(rOI?=hEk@?RLTkdgy5qDe@gIY1bQu zS_Oy9m*5YBF&-oMYbr0hKwI_wr5(-mLxN4sa@4&e(6BZ(eb%Pk1E#9a7f&^)0gQ|? zaJCfBqh6cx+={>u|D0hynj$~+ems;L;F}Fc*K3D>l+82h$r?7QzOAfjrDeqdzi#R4 zQ#|ciQ?CSwrjVeDf=aWhA&q}|)gWJWdC|0do!v*!1r6m2eo3t~UjYY9 zZ-OB!T3}*mnLM&%$H;iS%+>l@&bazRDPYuk7G^CmcVZmmU`~%uuFpoTT(8_rHPj8t zjmlExCW5~s_&9-G+xUbwtyGpZOe?`a{f|v6m3x%?DCdJK<7AC;Kf$Liiu1uM0kgr= zps-#zOJViw`>&atEB1bpchBQ?w;3E=mQ6L()plNYlT@N+=U-4q&lm$ z<#-^^$Xsn1+j!8XEmUOZ;Agwg+pF!j!V6LKg$@%N@8N+mos2SKCY0&Y6kYzhD$}gP!6oV3_(+nAC;pZnuD%J*Q49e-ROSMcF&+4=tZ;#?L%LpuhDnt49l>X zmCn+ExlMH->oJ7nDg_caoqv+3JlZfxJflq#jTbj48yjY3z!ne)X=q58Wx|c0{~a3g zx`~JXGa7P>vV-ZdT6s=+UfHT_Q^2eIE5W}J{5!#a5d7zAx^GnmKr)sL3vXz6xFY?pGGnUx(_SwfcsZ@OL?1cJmE|b0IU210$@3T z4!JW;p93tcpBPiWx}c3I$2c$`FB`OByCx;!tQLPsMF3P?=uiPDqj&ZrSYKB@R*op2 z5Y9|EksvA^0+&8ro9lVrxnKAjO=gDxUr_q>Z=bu3;nk%@GY0s} zD(gjn0i~~$uOSjjIYv0ShQ^9e*tDbyKS+(05W=Y2NuOaD&UNK`1za_?$_eEM0%v=2 z_F76_l(1+8p85&~`F%5B(xI6})UQ9H{z*t|(uKHs&%e>BUu-6($0N$G%5Tc=${)&~ zHpYf*tPR^Z8(`8&I2YmEg!2&2OSlLE2ZwUa3D<(av7ub6M{EKUYZGl2o7E=SWSe5M z+3Yq4;aY>W#I+$@Tf#*Wt}o#R5awr88j#-LP-E>82C479qqX z`2W~@3%Dq^c6}Iio^e}D52$nsNQWSuwt#>%(%lVGO9T}`u&@vm1OaJjX_1f+kZwt_ zyW?9k11ekhKJPxq^MB9x`@NeD!pwSN*0a{NuKT{Pb>D8TRNe>WZJzV}LJJeo*dS(p z_E4RgFx+bN>sCQ^^l4h{fsd=|B;0EJT~AN&@S}?p)ZJ3vb(4=s>l?H)4vT zQ7juz>Z_DT1brIw7xi)WcA!M~Dea*mgL09b76EQPkc+Y{5U)R-b{ou`<_|+2Fy6*C zf2&#)B?Qbz=lUlXvlo`mNE6n1*yal3o$!zO$A;m+z)BuhFq{}J3^#@cpx6P51E4qo zit7qy0|rLIF#-U^4N&|r7><$(^D)?IW9v=3aY|s}+voV!MMkunrgX639tS&nYU72g ziD5QTt|pF=z(``G0194^7oau(6dx?`OeYNYGgGQbMne%MZBSEXN^p6F5mXyL>M-16 z;YX$aaFVZE{4UfuSwR;wHKYRjW6_(`!`(c+)oh@T+`%1&B;oPoMNOz@r`YHV_o{+X zgR=~y3Qz)v!m%@+Ysr#U(1?GsAm|Cg;PN(V2B+{DE*ozP zYp5hx+?-;T{rXeR&PSKU?S=p9)Nm^UCDKC?0WCh_FYkR}QTnlY zFD3#Li8(}v!5qdM!9-z>VxloIm}8h&Xh8f~CvWzB;L)Ij^bOnhKyeghsiVCPk92{> zE50|UXdNgBq-ncw&hPI56r3{30JR06wgZ$BK&kD+e#?nT`Si5pnC{L#b}$+RyIz>` zE38dvENUtYgPpYMKgJTKwE1-c>ZdU$0ZIi5s4?-FGf?;&2(jtB(f2FrQSSvBmK3B? zrN%Ka37Ct})e5inJpcnAD72>Mk<-C58Iwo}!~AUWZ2(^?HgtR-!!Q>i4z*u-}DVRJ=KAqK%FH!6uN{r2#@>tcO3IW>Y zl+SP-Q~0ARV&1&}-gAo=xnxWc<%4~9UHljAY0t3)s@pN80JZZ6h`fQRgB}!21*Q^H zg{j8WU}^zs7eMU>C{2LU0w{=^d(!AcF!h*Q@T-x!{|lu9P`cFr^=L~4GsJHnXKMHN|QJ5W>{s@>*OtkN_@^MHie=0*E^ zoCf#6Hq>mh zi#`>60*j8JT>Z!0O_1g;+~s#J|IK)z_>@rQ0A&eK#+0r`L06D`80482i{bDi<`WGL zvCy2_2T%|$zM+&Eb(mt8Lb$;~Rg~$U;AR0`{uUATVP#;zd!fh~G#}t9Lanqzq0dle z1|>h=gFylF5%F({gH;!q1+)>i0Ix!e&hzt07TV2I7%UFT{>aH#JQi|qD}b_2#*(m* zecJ%kQHm>y@Y^#NW7lJuA!))g0hH}!EadHWRMJHI6!RaELS+_ikORvHr#_Ywrt#*+ z@?d$fkP6xZlmkFH0+bU#IRlhS8kQd`K*@B26@r;=P|z4W3@t*q(HjL*_fSs%|KChE zSZVBL=-$9WUgdTf3waea9ol~*Z!uO8t3r9wN?5q$Lb~Rej8(;|0hAX&Q4>V{JURa+ zgA8^XRvT`}#cs#$!0yEE!tTauVj&De?&t$hz5wM1Q2qcF08oK2kqlM`e#12RSePcC zq8!{$`4LR{5dnc24l?$IF>7r@8wNsN5Th3-ulw8VcdWlW!8TW42QSJl2#U4;QwwLR z;q(n7V4MH7%yu-uu%rM6oMJ)q+w8EmaBJEx@*^({d>5=6<-xPY2Ps>Xp}6Fyj)7Z*0_>nf&=s1j zUeMx%-gin|UHESr>beD}Ie1YHoX0O`idK{5rz5-^tZks$RmhJb0PVuU++5gS$Ukk9{!OX4X%G1%%yxl2 zMVYNf;Dr5uoD!OL3+E^aH-5T0U0f-({+ zn94ic#qv_7e6og~9T;^JVDZ zEiU3DG&AJ8*x{RrM(d(ty1gmb5^O2944_T`)MS| zH&@U!W?1w$`vQ8TVCY7k;(=2A^@}uf0DGHa4gl0ysy(m|t4v`_lzqY!ualQBq^&&2#`a;sa>=1SsJAxg>j$y|EDiNTP0O}GzT?VLR zfJyt->we7 z#`RqeuF!$z{;Q?o=hf%;EHIqkJ7{5@v!d)NpqddvZq(8Szr3FxT2bVJ|LaTDJIYe^ z9-uN7ma0#1sao<9df(u8*iqQ^lyCm|r;J;MLqn{^p>PO5T?44BWZZHbbd_fVR4!$S zSx2?wX`h(p`TMr&{_6`GZVe7g0d#8|23A!;7(C3alHPW*)D3wK4vQS#E@7;ucZ zwE&d|Q278=kb+x}qok%mT?eSbfBOoEgS828zo<>XGIX1x6HzWo4V)BwJw5}=u>Lx(l z0w{>B{Zv?ouRwFXei5wW6md%5VZ9ol%71`$DoEorAV}l3;I`tRyW<8xRRUDiH;~3j zQan5GVpK;Cv@DgO^4Z%9Iyzut5BSTkv3S8NvcOdz=H# z5$A++#<>7g16TsBt44ro0;pzyx(!e*0M(j~bHlmgJP;q87tR~!gM&oB4WRA-R3}&h zfA0dQy8zV-P<>RB>qp`FcV7kM*;s4nN_BwSfxqvlVuZRKTF8zDkvpN+gS!34)XNI4 zMbH~3XhGc|gr%)Vf)s)L{7V>$_+0~fCZK|a;xjgNgW_~wXhBln@4~@k0!!?02h7|& zp-S9lUQ*`;xge^Y%5rcAaS@QoK!?~aA8(47PLtM9$Hw~#E)qF}9HBCuU%gKosE3h= z%Q#5)I-phso=AvNCwH3_EIw=D?(P8pg#(hJ6;j!zI^X-6^Eddt2Ns^kFfZW%(tj4bXhF~Dsksv@(&~tEZGl}e;Coan9>~!r%uEr(M}Dg zyN0-ohMFj>J}fSwA|@!IA+8}Py-5Y`*OyU&NFX95B`PZOtLdJCyMjx_rQxo^>7Ihi z#6hqh0jOz!ngysqfGnX-clgRAK+P0k}L!*+tS0>DD{SmdA2{U+MnhXG#btlfv*{*UMW zJW2ccZhl~CxH~iynEI_3fY3Kj*Q^9-g@pf`R1MdS8-r90*MsZD_2K$)1Gqul5N;SZ zf`dJNAE4#{>H$DK1gJ*<^%$U@0Mt`}dInI>GjZcIs)n1QQ8nCs3RQctK-FF?P_?iB zp=!Us79Q>mq-wag0QGX7s^LCBs> zqpAWEr@#~|5>g_nV#>dwYIt#MDqa#Vh2MmEgO|Z?h88#iAN&P?&;w){KsHja8xa7= z>OWiHczL|SH|$1M0tEGE?8d7>?8d9(HSk*if&gSWKvsOiZoD{^sv+oks`fXVx8{)> zuSq-N59$#=2nK(R>@)(0H=u$zvT7d0cmK;E{(T$S-xh!SmgWw>j|$|-ntj;cei7=v zdb}mx1wt|23U7_K!Q0~P@b-8Iyd&NT?+g$OK(GLTo3HTzApnF35E4Mh0AT|ud`=JnmecT8@#z5J0th!icvA40_-hcB5nh07`1iwd z0mRy0Br1@lE(<2-Uant@t*8hyp|!Ae#Xq1Q1m!RKr)K z03x%9X5;VRJHA7;1VEt6loq#y&Qhweg72k3bsxST4}-rV01*QSEDX2+ytn8LAO0j{b+>8m-nT>D z5IWC(YOr^k&Nh{u>U&@-T9cp8p>Ck1yj$nnIT&dBCd8;4Cq$*h;LZtY3GsOqE@2rI ztr1WJxTq@uL>VeFsH2GR2Thzy`(qUpY!FrhL+FpZaA2 zT>Uht(PL$_aK-&>I6!u^{NASmT^ZhSc*wGZRnqh3=!M zC3W4XI>@^ODFQ5e05_ApC&1kUIQW5h(16J0AdIbBY+qK#N-+VOD9awhTl2_U4kBAFF~JR07Es%ZWt6nOesIi0J0CD zcLB5xK*L|mq3ak9?tekB%CAD*>d9Vm0q5g_J2400EOH&jj#TnTOjcY+7Oli&pq3xHSx#0ntR z0I>mxZ5qJ`J~}`69RT;%A$IV2p*bl(c0$rf5wp^e3rcWQEIg@kiXXI5@cwCU&j$wK z`*54wV#U;tvMT5WgW{{dmS8Q6&~QQ|6rmFi5+Iqf2Z%#5;Sgm+Ino9W9^TAP!YJ&I z!YIm|p><0P6h9G;5n>5(gyV!01jw+Q01^O@B!E-_WE!B?{8Icxh{vYV84=DA&STyX z;t3ZCi2#8S_zN)c3gQe9C~bhYk~=_r0OGf30VZ4`T&66*1Q^%{2<&g@Wuz{^h|7OF zT1iNUOEw{ckV&`(5I2B$0L1g#l1+$TMqRSq!=O_QuGlz=PZ6%x6a~$EVZ&dp%)fk* zW=Rol(3Wc`=AgR6RQ~aD{qsG1U#kgqw6)rIANDt#_@6qv;9~QyM8AJQ$_S0vR6;Z1 zHlYO$iAF*@Wk>{5?dO942?WsbN*NQu06Fl}nCK*QeIFBH0NMY;n4k^Qe##RbAPf?Q z01^a{5P*b!f5MH_cr@i=e-V%V$ApaVkoJVZ{1g7I(P+X8+5-;%9nt6oM0ic4gBCI2 z4dE@}9pOFU1K}g#6X7%A3*jq3AV@?4LCL%P8 zn7D#s5yviA#K#vb;)MTL#J}GnCNe;an8*l_xOt11xc=|r$V3hzH?+5ioJ7dMP5|U& zGLeS}t;|yZiT`buFmWSMm}&_Vg(#NrX=v2_eH@u6NtA(9k0?dlM1&^T8GxJx$hj2a zW}+;`3Wny=g@3yhOjM!65LJIRZGRC*CThT@TYhf(mvLm`cH%Co6-?Yov4SuDb%#;F z^}iQKChFp(h!5c#6!fx#3RHgB81v3N~{>k21pJ-asiSDkbHm? zq!VL^$B40r5Aith1o0#hPU7nTDFjF{C02}-0HhQkHvm#WVVU1b9Z+QM{|92l&@pGd9yRmTFN3?p zg1-&!5=)4s|I^?uu>yC6SVgQR*1$PfLA*(<2S^hRp;4Oea5ydysOY6lp${cJb-XV4Xq!u7>V%LA4gB8@^F6CnXRdDwoGaceMZ8|p0 zPsjhA&@OS7HZhxib7+@V&*mR$?uZYGZy;A9J|aFQJ|R9OJ|jLSz97CNz9PN`NDDw( z0n!GLc7WUg2z(ly0OmgG3=@ORPy;6s|M` zm;S#G7$S6R@Qb-~sQ3_WY2gtpDJ69q}(_u(5KNFx|1ae7o zu&MmdP5&~GOHv}i@^G-4EJ=mJl_vkX!ys4sZw7Kn+p(#noupl)-IzBdEs{3H5QXB5 z3jlczkQso6@!J@HUImb+e>Ox(x+J~tIQnw$`t28?F7TuP(m@Et zq(IVsQV=Pa6haCmg^>X104W?GF97lqAg=%dVfhU}-U8$uK;8r713*4zl3*D-$`|Pf z4T?!I6e#|*0L5SCp%}g5KT!O?0L2$5P@Dje&kInT^p}C$c`8RrBf(HQ=$?Jaz%92@NK!^Efe6P=n=*Chmr%R1ow4-1v`H{0-$$L9s%6I_bbml z4Azjv$l_!P%p0=Q_h1b`ZvY}CtE_wKsF#7l8wm5WD~L}*^Io8Y)-ZSXhDD$ z0%&1?76E8cfEEL2ae$TpXi0#U$|PISC&exLCk2{il1TIkI zL*&B%EeFu@$>b>VQGiweXyxC=8_03wlaz}bUt$f=ieb*lyPFnJVuJjo*ft$Ud~2GDv`jlr+gJLE~qGB-t@2I##2ZSq~%K)z3Y zL>ZcM1pF0;d&Y5)z9-tr2=8V33$ z5)6>wSpl>?G@#KQVLm@3PNNNqZ=$Df>XCV1VIVQAgQsR7GcYhPGCKpFx0OBLiIQ901x8pq&63T01TP4JV%)K)e4Zqu4?s z!~bI$#TJI1GJ`6d;aFR1@W7rPRa2ol3pX3a?7+{8xpC&nm zlTL;~7tR#Qtn&$TM$O77|i3tMLEoma#*Z1^)Q$Pek~mb-9|c5 zSl~_(Rw>*|XF_MTW)CczX0yfxRs{=%MZO|ofv=b~v1?AOIko26nyxit^mOz~=~47( z`akGb(yxY9GqA8?29cf&i(;&!XQF4JSEN^_SEbjW-$uWKeiywK%x|toZ$NKMZ$@uH zZ%uDYZ%-die~CVuzK#ABh6y8tQNvhZd>~k-VM;L%u}iV5uxwZknDK@Oy8))Q*@zXw zieSaC5?Cpivt5ce2vAMnNd;{)+Q_*#5Bz60Nd?{0V*X6FOSXZ^KW?kKS*7Y0L3#}JfFSb5*eZu<0^_SKsub*1~ zoC(eJ2h&QX)lBqESSCCZk%`R2$h3}0m`RjLoJo>t6O#;+ER#HwB9k(cDw8^sB@MUDWwz2GB*~Q|^lFri1(#0~y@`B|R%V$;; z>k3vpD=VuQs|2e&s|KqMs{yMGt0Sv3t1GJ)s}HLmYXEBm>nYZYtck3bSW{TDSj$+e zSZi48SQ}ZJSzB1!Snsk{;wN>?Q2w?2YWL?CtCw>^;vpW><`%Aa;)Z{=fHB{ zIfxu&4n~f3984T69Bdqt9Gf^~IAl5GITSgRIaE2+Iks?YpW`q`3`Z=-agKP7vmEC+5;)2@hB@Xqo^U+lc){_O<2}bmj?bK{ zIq5mqbHW0woIIQxIE6VyImJ08IX7`Caqi+Y=d|Q>;`HY{${E8M&zZuR&Y8)X#hK4} zowJCugtLM3F6VvD2b_;MpKw0oe8KsO^9|=a&JUcQxNuwqE)o|5*IKUiT+CdoTq&;hO3aPmaB>D zHdiZGJ68`^AJ+ia5Z4IT4A)C;H1{9eIBphhQEqW=C2n=@E!^9$w}ao49Xtw{qX(p5&h9p5>n7 ze#rfp`ziNx?w8!Jx!>~8@hsy(c$V{EdDil*=V9hy1T065cZ28@!dg)x5R5H+gUIHu5&}&TK$7@NL+!!EM9o4P_hpH@xK|@-g$V z@p15R@d@%t@k#S-=9A-7;8WsL;Zx(&=G)6>z-Pp_kI#b7iqD4c0ADI!0bdDU8Q%@Q z8ooNddcFp}9=?9QX}(8%Pxzkkz2JM#_mS^2-&g)6{QUeT{K5Q@{3rR-_|y6G`K$Ol z`S0=%^Uv`=;eW>eg8wc5d;X97p9NM6tQ8Ov5D^d)kPwg(kQUf1ASa+8pd_Fopf6x3 zU@TxNuus53z)HYIz)rwHz)8SGAW9%ZpiSWEM#4s!jiwueHeT3Ry0La+{lIxbP8Vi~VS_)bV+6vkW z`UwUIMheCV#tI%6JSliyFhMX;@RDG%V2j{qAr>KCAqk-^LfeG)2<;Q{6!I1VLXkp; zg`$LFg^mlI6gn+*MJQjWL8wXSwot23yHJNvmr%D*uTa0xpwLsH=Rz-qUJJbydN1@* z=(EsQ;U&V$gb`tSVVp2Qm?X?1%qz?%EFdfh6Wxdkiwi3Ws|#-t-X^?TSW9@1u&%J5 z@G0TT!s)`9!db#O!bQR*!ezoYge!#`gzpN^2;UceF8oCVCqjTlPPs*RMfgO7L_|cy zL?lF1MKnY-MYKiCM65(?MC?UeMBGF?M7%@}h{TFq5xFXoDUvOcCvsh+Sfos(LZn)x zPNYv{P-IwSRAgLaQe;|WR%A}(k;oH~XQFFFH;QVBdWy!2R)~&^eidU8lND1F+ak7I zY^Ru>n3N8 zO6;xJd+|TSapHJ!qBw&%m$-nqkT@(wFD@%CFRmo6Dy}YWD}GkIR{XYjpZEjuN8+y~ zmP(K$7$mqP_#^}*ge1fzq$Fe{WF@vs=u0?DxJtN7cuIIn_)7Ro1WE)+gh+%*oR&B% zab6-pB2nV9M2bYJ#8rt*i7bg6i4uu&iAsrTi6)6oiEfEri2;cri4lo0iANI8C0P0u&I+Vp1ASLr{bS4ppt#!BO*iPB_gPU#KO0@6a#;?h#mGSafr2GaYb4@<{L z$4Z}&J|lfjIzc*7I$JtVx>CAcx>5SJbenXybf5H~^sw}(%yJnS86z1h8F!g*nFyI< zG8bfWWb$MxW$I+=Wg2B#W!hyrW$wyM$UK#KC-YI}%jPAUQJdFn#%?BTCU0K5dHv=M zoB20y+$_8qY(BO*Zu5!Fr#H`Tezp0{=69Pv%I=aik~NVvleLh&E?Xm8D_bX9FWV{G zC3{!4M|MJXQg%vqM)sxbE7{kwZ{<*O%jH(et&zjZ;pJH6*yT9oc;vL?Oy#WQ?BpEf zT;#mveB}b4Z{&QngZzQmxWWr4FULO1(-0O2bN{O0!D$l^!auP$nxgC^IUrQ|46` zQ5IL0QkGGcQ&v~rs=Pyax3adfj?wYNzT8HG-OynxdKt+}E>JO}IYVm64)DqMZ)vl^#s%5L?s@+q2p!QVlh1zSicj`;jQR>UpSE>`#iRujM zqUs9j>grq7cc|}H*HhP5H&QoM-=`j+en9<@dX##MdYt+>_4Dc%)zj27)U(uc)$gf4 zQGc%fO8u?+2lY=HD>PPVtkJ+~m}xj^xNCT6_-gFe2-XPGIG~ZJk)=_jQL0g{QK8YS z(V=lyqgP`B_k7qV;lt`)mhYwp%G z)^ykO)b!T$)%4d4)C|%L(G1f(pm|X9oMwV%qUI&dWX)8~bj@p;*_wHp1)7DLm6|o0 zH#Ki*wrloj4r&f-j%iM4PHE0+&S}2U{HXawYl#+GYlYToEqW~ht=(G2TIO1oS~gma zTFzQ-S{_sbwcWHmwSBbxwfAd>Xanto+UK+rv=g;2X(wx^ zYNu;o)6Uk;(=O01)b7-NwuiV!YLC&Lusv7y+}ty<=c~>iI;(W(b+9^XbvSgmbvEb- z=m_bE=!ok`>TJ?c)7hr8Q%6%rS4UsRNXJAcR3||vLnlw?x=yi9nNE$)O`QgvCY{?l zFLk+fHFPy~O?2IKJ#+(g59yxQP0-EI&C$)*y{=oTdqcNUw_3Md_pa`+?wIZ)-RHV5 zb>HZI)cveSr?*rOr^livt|z4@qbH}QsHdW*uD4Zhhu&^IZ9Q8(2R$b}7d1XQ~ z>X+!3>sRX6>o@A()^F8s*MDokXRzHs$H3gc%fQDV#NenwqQNDD41+9#GJ`6E8iSh# zO$N6O+6?X(j2b*Ncw+F};FZB!gZGAL!#@mH8m=)kF?29=HS{p_HViNfG7L2YhGz`h z4TlUz4euFF8O|Ec8GbfeX~bZ(&WPEF&4|;8$B55J%1FjY&PdTn#Yo*~tI>8NYokb` z6r*ON`$k`lR~uuD@x~-$M&otHTaERMjf_o=&5do0?Twv`U5vwxPa6*#&l$fn{%HKg zWQhsNWVy*olQkwxCM+iGCY&bRCL2unO$1GZP2^0JO;k-ZOm>*;HqkcGF|jmpGI2HW zF!3@8GKnxbWOBqL+T@r?oXH83B$H&5RFia*YbMzy9VR0tQzo+}4@@4LyfS%f^1+GW~3})C@8E!)&D) z!Hmg_-)xhal9`H`y4hB<9cH>_`esIEre@}5mS%2d9%f!${>mgY9*_U2CJuI3)*-sZsk zp!p&5DDxQeIP;U{r_GbiQ_a)OubJnV=b2ZVx0-jFcboT_51WsfPnb`czp>bEp>JVp z;b7rx;RcIm`&jr}?6-)rh_*OpaopmhMZCpXiwhPPEix^#E%Gd`TNGQAS`1m-w|Hvt z!s4~XJBzQDODs{A%Pm(};w@P%#VjQ(g_u1rtD_y zUfR90`(XFkeyKgme!2Y$dq(^9_OK3yeSm$CeW?9G`$P6o_R;o<_J#Jf_8s?iD}?O)lywSRB_(f*4Aox?H*#9_Gum%~;EM~7n$*$%A^a}IAD-aCA9`0BXS z5#`A1DB&pUsNksVsOGrCakrzkqmHAVV~As(W2fVw1robsItol2a_oZ6fQ zoo1aLI6ZcH=Je9(jnjK)wDSt*)z0+JIA@|W*_qK<%vsmj!}*MJv2&aAp!1~jjPsoH zBj=~i@0>q6e{osjf^tE-aJcMsiE^oOX>sXrx$DyFGUPJqa?fSb<+bZ7S4LM}S3Xw( zS3y@{S5a4SS4mejR}EOCWQXf+S1nf^S3OsKS8G>0S4USDS9e!W*VC@at{JY^T(ezs zU5j1ITq|6wTx(pLU3*>UTpzl=a$Dj?bR)ZQx@~adcN26IbCYn}^vMioIG4S+&nxy zygUwg9P~Kkal|9qBkCPs!J(4|AJ<>g{dE|KHdEE6F_n7sV^LXg-*yEMQTaOPO zpFF;JF83sQ@_O=lig_w}?(u|W5It=@?LD15-90@$eLVdxH}IqW&=Iqo^(IpsOydEfJa=X=jjo?pD^yq0+(UVnJ4^jht;){DuD)r-T6 z+l$w0yO%z!EpF~*>1FNZ_$>EX>9fWMf`LQ-{*|a6`u^BET3GTLZ1?!a-RyHcAp`i2R@H{p7=cTdExWQ=Z()h-{rn5 zeOLR^`{H~FzGPoU-*vvczWly|z9PQjzLLHMzBazjzOKIRzMj4TzCpgBzQ8x!H`@1{ zZ{qc76_iPJS+aZhj$tz%Se{!tbzOlwXWrtlx3JM8C^^SNyK}W%_0L-SHdt zoAjIZoAsOXd*=7j?~UI(zYqS){IUL={@ngT{<8kN{k8l}{Vn~i{q6jn{ayV%{Js1S z_(%Ak@IT{!-v6S1vVW?7x__pBg@3buzyF~Bu>Yw4xc`Lzl>dzXYyY?YAN)W0e+^g? zfC@kd{1HG3U<_Cvz!Jb7z!{(spc7yeU=m;!U>;x>;27W%;1=K!5EyVM;Cw(rKx#li zz^#DBfbM{SfT4iVfXRUAfcpUt0^SFF3Pb|`2wWAoCXg>sEKo8~I&gEKYM@r2PT<}^ z!$6Zjvp}anmq52b&%oTkiojceO@S?e?SY+vgMlM~K^g8-n?Q`GYqG%LK~>D+a3ss|Rlh)(zepY!GZ591?sq_*C$j;Pb&3 zgD(YV1ZM^32ImJC1{Vi+1os3F2Tun-34R{@D)?>4vXIpwq!5-6_7JWR-VpwfjUkdD z3L(lNY9U)fwukHt(F-vPu?ukz2?#k55)pDZsTkhqX@A;}@vLJC7FLmEPwLs~=b zgmi^;hm3^Ggggy-7rG>LW$2nvY$zd=9LgBV9x4)u~4a*424=WF=3u_5$59fgd;s4uL2T1LD9*5D!v78pr@yAQu#XB2WS* z4zM4vIgor{JbYC+F`PM^Eu1f0EL<{NA$&{t_HdnWlkk1v_Te7k-r>RFk>N+e5+X$ERWb6u{+{$#OX-fk)k7GQ7fYGQR}0)qIjeBMD2@mkMfH0jS7eg ziVBT75ET)1IO<%~g{Z`+OHs*DsZr@snNe9$IZ+K!Jx7tFLPxcZ9zU9WwCU)Bqi>^E zM`NP#(WGd`==ISo(d^M&(Y(?8(TdT^(Q46KqPIuyiq?wOiPnoYh&GNkjdqU?k3JKf z8C@0K5`8cFRm}1jQVd7TrkKq!@-a#=sxcZd+hTUcXvXY`(Tj16afxw{@rv<{35W@b z35_`r6A^PbCMqU9rYC0Z82vG}V;aY7jvYRhd93MJ&#}Q{Bge*%O&_~|?BTJ;u`6O3 zV!2`kVufNwVE6V(Vk?#CFAY$M(ez#?Hn*ihUjX zF7{&_Dvl|RJx(T0JI*L>e_UAH<+!xC>v0uv)p2!kx8j=OI^(+I`r-!TM&ice-W*?f zob$NC@g2u^9^Z9b^SI-2zvF?&gO7(D4?iAp{L=A^;|<4~kGGzTJQ;hk^kntP`=@rD z3Ose_RNSePr{YhYJC$%M^;G()Yo~Hf<)6BK>h`J8Q*Te>PqUt8JI#KY^R&Y09jAAn z);_I!TK}}+Y0J|#r|sjJ>0^3CTBv=l$_~3^Xe?aS;@1;XYJ2=ob^8IcQ){B@Y%?-N6to{ zjXitf?5VTY&Q_o8Kl}0=-MMAw(C1d1TYZlH9N&ct7t$|WyO47s|3cw~;tQP@1}}_U z7*9Bzkera4P>@iRP?~Tfp(>#^p*^89p*x{Bp+8|LVI*NJ;loAZMWKt^E*f0)zZiJ& z(8W_1&s;oz@#4ix7gH{#UA%s==wj)`@{1K0t1s4FtiSj)ae1O}qE+I-#LUF&iKU4* z5~~tx6WbH}68jT}5~mYCC#_5(B$1QWCNU+kCT&O(ND@jCO_E5GO4^lVkrbG8Iw?6R zH7PymT2f9@UQ$a^cT!){U~*D&R&r5tY4VNas^r?_+sSRo9m#i-dz1T0e z)%3#j%JiD_o9PYd&FNj~-RZsQ{po}0!|5L~7&10z=wz5@SY_B|IAl0yxMm#4IGPcc zaWW%5<6K5sMs`MC#`TQijLM9fjJk|l8I2h|850?=GrnXl&m?B9&t%DD&*aJ!$P~&H z$rR6&%v8+WnyHs*o9U40oavV7ndy`1pSeFXBr`Vic;?B>)0t;7&t+c7yqKAkc{%e= z=GSW*uNhy9yjFbeeilQPNS12Wo-D_#;H-0530X;5$yupc=~>sZCbAx8J;{2W^)j0- zdsQ|ro0v_`UYpI4t(>iqZIkVqy+1oRJ1qM^_R;Li*=gAo*|)MgvhQa1=B&;k<*?^$ z$dSm=$kEIR%n8lO%(1&=Pk{{ibEckMr z?)uW}OxG2z8(#<4FI_LWUVpvu`t9p&*E_Cv719;1Da03&3K@IRNkID{Ei2+J(kQYiI#6`9 z=vdM5qLW1lMX5zsi!zF`igJqbiYkk0if$G)6g3yM6g?^WSiH0tDgL8)RWZJpRLoes zu9&G&Ap(|Nhf|RT*SzUrD!IiL;*p;}K_>}mU z>@Nu}c~J7Qr_8*}s?4U$zRai0zbvpU zxGbtHrYx@PL|JdyWZ87tY}tcyp>nly?{ZKcUw*DUp**QPxjeNzz5H5vPI-QLVR>_T zYk7NlM|oFyPkCSYK>1MlX!&^gMETbnEH_kcSl>8&Bj-lfjpr5E3c(7g3YiMI3WbU- z6gsRwPtZSF~1iR@|-Vtr)5psTixcSMjXk zb0w;BdF9H=HI>9lhRSu7OqDE^TPg!8&sU~Y=2hOTyj9s=IaK+i@>%8Qs-;z^s^wLy ztLUq+Rro6Qs;yNnRqj<@RlZdLRY6suRR^jfst#9OuDVinwJNhJyDG1$pz20dUDd6s zrmB{zwyMFZk*cw(iK#JF+1*(OrMXSZDeXGN(BdQNoM^(2~ z&(#oX*lWaUBx|H=WNQ>^lxx&#w$yB|F|IMIv8b`Gv8!>caj9{y@v8BuiLFVlsjO+K z8LfF%^QCrqExDGlc6}{Zt!%AYt#Pe&tzE5StxN5}+AFpBwFR};Yl~{@YH!sx)wa~O z*LKuS)IO|zQv1C2RqfZh)pcv?=X z_3_r{TVETNG%RaC8t@Ga4eJ`18#o%c8#XlXH*9HeZ18IcY6xin4Ur9p8=@Mb8!j}Y zH{>=HG!!+IHdHs%HQZ`wY-nzH(a6=P-nhHbxY4!Iy)mFMvhiHwg~s&8?8e;2g2s}@ zvc?;Ym5r^9FPj*f);F;&6wE151RP$`}gXXWdm)=I*M&JJ9_Nv=!ZewoaZWC{lZ!_MO zysdlN|MvOYRkx>F{%GNC(P*)1ac*&I@oe#K32upOInol{65Dd3E{yLh`)yG*-Q zyJ@?5yJfpgyJx#kyI*@?`=R!z_L%nA_P+M1_L=tk?GNvW-!Z=vb?3~T#5kFBJEc1}cdB*n>NM)K=(O&% z>vZh&==ARN?F{JL-x<>x-+8UGw6nEytaGCCVdvYk-ErT3|(uxc)H}fl)6;A zG`hBR?d;O*+S8@iWzc2ZW!B}><=++972Fltb)YMv>u}f6u47%tyH0kU?keq??s|K7 z>0R!-@^`K7`rSQ$H}7us-P?D^?%u!q@a~hl&+mTeUe!(Cjq4_MGjy-(X71+i7VH-8 z7VDPi-qbDAE!(ZxZPe}F9nu}uo!MQ|UC~|LUDw^%eY?B0yS;m|`%U-Pp4B~=9()g} zhp}gU4@(bQk9yD6o*g~AdbE0UdiM4h_L%hS>+$c|-xJaUdJgs+>N(PLqo=;7rKi28 zv!}bKw`a0vrssao!=A6bt9voMxL#r}doNcnPcL7uRIg00T(3fJcyC4t4P*^; z47?d!Hz+e`Fz7QFG6)6_4n_{f4xSx6KbSC>ICyC=c`$ddaIj>se6V`3Zt&J%O(t+G>7&K=?$3-?HjTjvL3P>iXEyQnizUG^lo_7 z@S0)rFz2w;u=KF{@b=-I!*069A4ZmqtQ=W0f*m1@kVZI0xJP(L_($YMwvFr@**&5?Vm4wiVl`qr z;x*zs5-_rVq-vyPq;2HRNY^N7RB3eAsM)B+sP(AbsN<;1sQakbsPE{Z(Wudw(YVo* zqw%BXMiWMpMlX-v7;PV&8+|*ra*Sz=e@uK#a!h(mc}#6=%h>iYi!m^EY%F#xZtTQZ z(pd6X>R9^NwXy86>anJ=ma+D+&avUKxv>Xh562#l6USx7<;E4qRmRoFw~p@^-#xB9 zt~>5B?mq4{?mHeZ9yA^@erWvI`0?>m<7dXtji-%gjAxDKj<<~Wj}MKHjE|2$9)C9e zV*K^JrT36~f81MnPye3vJ==Ts_nhvP-n)PA^~B1FH51qg!UTC@?F7>V>jcLH_r!(? z`3a>7l?k;8jfrg&J0^BbXin^z(4E*j;Wcq$qIjZz;?pF@q{gJpj|oP09*eDdWKc1nCoX-a)+%hdKM%_;3EohiL3 z>nV>Z|Ec{`AyZ)L@YK<%V^eWcC#G&pJ)WkYW|-!h-ZU*Utun1SZ8>c{?J?~;?LWPL zI&AvD^ug)K>C@8{)Ay#Qre~)gOh2A}HvMw?&Gh@}Pcx($#+mgqEHmsgTr)f~!ZT7c zGBa{BiZjYHyJxg#bY}L>c+G^(gwI6G9G*Ejb7>}JCUqu#rf8;g=Eh9rEdA{IS>{>R zS&mt+*|6Euvu9^7%qGrWp1m@AbvAQ0dp2+O`fSr|%WT{1o!QRW?%Cei{@KCVk=e1? zd$V8eGv8OfZ*~9B{p|al_n*yS<~Ghr&PmV7&dJYd%xTW;nbVsym@}R;opYRXoAaFW znG2i?o(r2hFqbs<|J88zKUG(80G8X$%dTGKWn{*XG^1J+&MZfxO=D7qEWl+eXA!e8 zo#ooBMk8HhE|=5pv{5wQnuByOH_VNa*-+wDd(%K@7<5DTJ)iG6pYJ*6bIv_i%3kJr zet4e$;yLI2;9d5Hy;1L~H{m6`DUVnhOJ}p#9G1!MWVvhsyPGXySRWf; zKeOMMVgzY06VhQ8WIz_=z&t2`VyJ-+;6wNb_Cg#EKoc~>K{x_mLl=At=ioc&he5am zV=xXAkbo&rV8Fq&pXKNKi~Pm@ef~0kxnJy;_^bUj{!IDL#tJaRokw&tL^sVl}>uwYU-M za2vjj_1J*BaS!grI3B{Icnn+c6!zl~evd!lWgNjV9LEVv;5D4ao574A6oi9F5DjJr zbArquJID!^235hEK~r!hn3T86#j;e^$W3yK+$!IY@5uM%F1cIok^5v^?w6m)FJ!Ac zA=_n#JS{urH*!SYP!Tm-%~hG|4mDrpsytPwid2azRb^_mTBFvgb?ODRUTsjjRHqtM zzbn)s9o8{@mwreW=@PwCm+CTIt}AqzLzw2G?fIeMO6q&nJ6TWBja&<<*(ofM}7)I`m6kPg!+>Y{Gyp*|X< z5xPo~^aouhL6S6Ca%QH~IW}Vq!YD}$p)zq1K(`fdYk4@a{H%H8I z(`HVZ4s+U^HQlDi^qK)PWQL6}(>81)Hfm!w!_K$4HqYkUh4vo1(!ONhv(2{EcG@%c ztnIcvw$BdQi}pu5X%lwJUbmhF%Pm@Ib#h^{D!Dz`p1k7H-Q#YPd&||k2DigCx}EM* zcht4GvaR}g1h8~-4*w%8+X^7b~oH#sTrx;Qqfc_H8+)&`ge`@AED5# M&a1uE|DDSF2Spz}LjV8( diff --git a/StosVPN/ContentView.swift b/StosVPN/ContentView.swift index 223a1af..9159f68 100644 --- a/StosVPN/ContentView.swift +++ b/StosVPN/ContentView.swift @@ -44,6 +44,7 @@ class TunnelManager: ObservableObject { @Published var waitingOnSettings: Bool = false @Published var vpnManager: NETunnelProviderManager? private var vpnObserver: NSObjectProtocol? + private var isProcessingStatusChange = false private var tunnelDeviceIp: String { UserDefaults.standard.string(forKey: "TunnelDeviceIP") ?? "10.7.0.0" @@ -105,8 +106,8 @@ class TunnelManager: ObservableObject { } private init() { - loadTunnelPreferences() setupStatusObserver() + loadTunnelPreferences() } // MARK: - Private Methods @@ -118,32 +119,29 @@ class TunnelManager: ObservableObject { if let error = error { VPNLogger.shared.log("Error loading preferences: \(error.localizedDescription)") self.tunnelStatus = .error + self.waitingOnSettings = true return } - defer { - self.waitingOnSettings = true - } - self.hasLocalDeviceSupport = true + self.waitingOnSettings = true if let managers = managers, !managers.isEmpty { - var stosManagers = [NETunnelProviderManager]() - - for manager in managers { - if let proto = manager.protocolConfiguration as? NETunnelProviderProtocol, - proto.providerBundleIdentifier == self.tunnelBundleId { - stosManagers.append(manager) + let stosManagers = managers.filter { manager in + guard let proto = manager.protocolConfiguration as? NETunnelProviderProtocol else { + return false } + return proto.providerBundleIdentifier == self.tunnelBundleId } if !stosManagers.isEmpty { if stosManagers.count > 1 { self.cleanupDuplicateManagers(stosManagers) - } else { - self.vpnManager = stosManagers.first - self.updateTunnelStatus(from: stosManagers.first!.connection.status) - VPNLogger.shared.log("Loaded existing StosVPN tunnel configuration") + } else if let manager = stosManagers.first { + self.vpnManager = manager + let currentStatus = manager.connection.status + VPNLogger.shared.log("Loaded existing StosVPN tunnel configuration with status: \(currentStatus.rawValue)") + self.updateTunnelStatus(from: currentStatus) } } else { VPNLogger.shared.log("No StosVPN tunnel configuration found") @@ -163,19 +161,18 @@ class TunnelManager: ObservableObject { } let managerToKeep = activeManager ?? managers.first! - self.vpnManager = managerToKeep - self.updateTunnelStatus(from: managerToKeep.connection.status) - var removedCount = 0 - for manager in managers { - if manager != managerToKeep { - manager.removeFromPreferences { error in - if let error = error { - VPNLogger.shared.log("Error removing duplicate VPN: \(error.localizedDescription)") - } else { - removedCount += 1 - VPNLogger.shared.log("Successfully removed duplicate VPN configuration") - } + DispatchQueue.main.async { [weak self] in + self?.vpnManager = managerToKeep + self?.updateTunnelStatus(from: managerToKeep.connection.status) + } + + for manager in managers where manager != managerToKeep { + manager.removeFromPreferences { error in + if let error = error { + VPNLogger.shared.log("Error removing duplicate VPN: \(error.localizedDescription)") + } else { + VPNLogger.shared.log("Successfully removed duplicate VPN configuration") } } } @@ -187,9 +184,14 @@ class TunnelManager: ObservableObject { object: nil, queue: .main ) { [weak self] notification in - guard let self = self, - let connection = notification.object as? NEVPNConnection else { - return + guard let self = self else { return } + guard let connection = notification.object as? NEVPNConnection else { return } + + VPNLogger.shared.log("VPN Status notification received: \(connection.status.rawValue)") + + // Update status immediately if it's our manager + if let manager = self.vpnManager, connection == manager.connection { + self.updateTunnelStatus(from: connection.status) } self.handleVPNStatusChange(notification: notification) @@ -197,29 +199,37 @@ class TunnelManager: ObservableObject { } private func updateTunnelStatus(from connectionStatus: NEVPNStatus) { - DispatchQueue.main.async { - switch connectionStatus { - case .invalid, .disconnected: - self.tunnelStatus = .disconnected - case .connecting: - self.tunnelStatus = .connecting - case .connected: - self.tunnelStatus = .connected - case .disconnecting: - self.tunnelStatus = .disconnecting - case .reasserting: - self.tunnelStatus = .connecting - @unknown default: - self.tunnelStatus = .error + let newStatus: TunnelStatus + switch connectionStatus { + case .invalid, .disconnected: + newStatus = .disconnected + case .connecting: + newStatus = .connecting + case .connected: + newStatus = .connected + case .disconnecting: + newStatus = .disconnecting + case .reasserting: + newStatus = .connecting + @unknown default: + newStatus = .error + } + + DispatchQueue.main.async { [weak self] in + guard let self = self else { return } + if self.tunnelStatus != newStatus { + VPNLogger.shared.log("StosVPN status updated from \(self.tunnelStatus) to \(newStatus)") } - - VPNLogger.shared.log("StosVPN status updated: \(self.tunnelStatus)") + self.tunnelStatus = newStatus } } private func createStosVPNConfiguration(completion: @escaping (NETunnelProviderManager?) -> Void) { NETunnelProviderManager.loadAllFromPreferences { [weak self] (managers, error) in - guard let self = self else { return } + guard let self = self else { + completion(nil) + return + } if let error = error { VPNLogger.shared.log("Error checking existing VPN configurations: \(error.localizedDescription)") @@ -229,16 +239,15 @@ class TunnelManager: ObservableObject { if let managers = managers { let stosManagers = managers.filter { manager in - if let proto = manager.protocolConfiguration as? NETunnelProviderProtocol { - return proto.providerBundleIdentifier == self.tunnelBundleId + guard let proto = manager.protocolConfiguration as? NETunnelProviderProtocol else { + return false } - return false + return proto.providerBundleIdentifier == self.tunnelBundleId } - if !stosManagers.isEmpty { - let manager = stosManagers.first! + if let existingManager = stosManagers.first { VPNLogger.shared.log("Found existing StosVPN configuration, using it instead of creating new one") - completion(manager) + completion(existingManager) return } } @@ -291,15 +300,13 @@ class TunnelManager: ObservableObject { } let activeManager = managers.first { manager in - return manager.connection.status == .connected || - manager.connection.status == .connecting + manager.connection.status == .connected || manager.connection.status == .connecting } completion(activeManager) } } - // MARK: - Public Methods func toggleVPNConnection() { @@ -311,6 +318,27 @@ class TunnelManager: ObservableObject { } func startVPN() { + if let manager = vpnManager { + let currentStatus = manager.connection.status + VPNLogger.shared.log("Current manager status: \(currentStatus.rawValue)") + + if currentStatus == .connected { + VPNLogger.shared.log("VPN already connected, updating UI") + DispatchQueue.main.async { [weak self] in + self?.tunnelStatus = .connected + } + return + } + + if currentStatus == .connecting { + VPNLogger.shared.log("VPN already connecting, updating UI") + DispatchQueue.main.async { [weak self] in + self?.tunnelStatus = .connecting + } + return + } + } + getActiveVPNManager { [weak self] activeManager in guard let self = self else { return } @@ -329,71 +357,123 @@ class TunnelManager: ObservableObject { private func initializeAndStartStosVPN() { if let manager = vpnManager { - startExistingVPN(manager: manager) - } else { - NETunnelProviderManager.loadAllFromPreferences { [weak self] managers, error in + manager.loadFromPreferences { [weak self] error in guard let self = self else { return } if let error = error { - VPNLogger.shared.log("Error reloading VPN configurations: \(error.localizedDescription)") - self.createStosVPNConfiguration { manager in - guard let manager = manager else { return } - self.vpnManager = manager + VPNLogger.shared.log("Error reloading manager: \(error.localizedDescription)") + self.createAndStartVPN() + return + } + + self.startExistingVPN(manager: manager) + } + } else { + createAndStartVPN() + } + } + + private func createAndStartVPN() { + NETunnelProviderManager.loadAllFromPreferences { [weak self] managers, error in + guard let self = self else { return } + + if let error = error { + VPNLogger.shared.log("Error reloading VPN configurations: \(error.localizedDescription)") + } + + if let managers = managers { + let stosManagers = managers.filter { manager in + guard let proto = manager.protocolConfiguration as? NETunnelProviderProtocol else { + return false + } + return proto.providerBundleIdentifier == self.tunnelBundleId + } + + if !stosManagers.isEmpty { + DispatchQueue.main.async { [weak self] in + self?.vpnManager = stosManagers.first + } + + if stosManagers.count > 1 { + self.cleanupDuplicateManagers(stosManagers) + } + + if let manager = stosManagers.first { self.startExistingVPN(manager: manager) } return } - - if let managers = managers { - let stosManagers = managers.filter { manager in - if let proto = manager.protocolConfiguration as? NETunnelProviderProtocol { - return proto.providerBundleIdentifier == self.tunnelBundleId - } - return false - } - - if !stosManagers.isEmpty { - self.vpnManager = stosManagers.first - - if stosManagers.count > 1 { - self.cleanupDuplicateManagers(stosManagers) - } - - self.startExistingVPN(manager: stosManagers.first!) - return - } - } - - self.createStosVPNConfiguration { manager in - guard let manager = manager else { return } - self.vpnManager = manager - self.startExistingVPN(manager: manager) + } + + self.createStosVPNConfiguration { [weak self] manager in + guard let self = self, let manager = manager else { return } + DispatchQueue.main.async { [weak self] in + self?.vpnManager = manager } + self.startExistingVPN(manager: manager) } } } private func startExistingVPN(manager: NETunnelProviderManager) { - guard tunnelStatus != .connected else { + // First check the actual current status + let currentStatus = manager.connection.status + VPNLogger.shared.log("Current VPN status before start attempt: \(currentStatus.rawValue)") + + if currentStatus == .connected { VPNLogger.shared.log("StosVPN tunnel is already connected") + DispatchQueue.main.async { [weak self] in + self?.tunnelStatus = .connected + } + return + } + + if currentStatus == .connecting { + VPNLogger.shared.log("StosVPN tunnel is already connecting") + DispatchQueue.main.async { [weak self] in + self?.tunnelStatus = .connecting + } return } manager.isEnabled = true - manager.saveToPreferences { error in + manager.saveToPreferences { [weak self] error in + guard let self = self else { return } + if let error = error { - VPNLogger.shared.log(error.localizedDescription) + VPNLogger.shared.log("Error saving preferences: \(error.localizedDescription)") + DispatchQueue.main.async { [weak self] in + self?.tunnelStatus = .error + } return } - // Reload it to apply - manager.loadFromPreferences { error in + manager.loadFromPreferences { [weak self] error in + guard let self = self else { return } + if let error = error { - VPNLogger.shared.log(error.localizedDescription) + VPNLogger.shared.log("Error reloading preferences: \(error.localizedDescription)") + DispatchQueue.main.async { [weak self] in + self?.tunnelStatus = .error + } return } - self.tunnelStatus = .connecting + // Check status again after reload + let statusAfterReload = manager.connection.status + VPNLogger.shared.log("VPN status after reload: \(statusAfterReload.rawValue)") + + if statusAfterReload == .connected { + VPNLogger.shared.log("VPN is already connected after reload") + DispatchQueue.main.async { [weak self] in + self?.tunnelStatus = .connected + } + return + } + + DispatchQueue.main.async { [weak self] in + self?.tunnelStatus = .connecting + } let options: [String: NSObject] = [ "TunnelDeviceIP": self.tunnelDeviceIp as NSObject, @@ -405,7 +485,9 @@ class TunnelManager: ObservableObject { try manager.connection.startVPNTunnel(options: options) VPNLogger.shared.log("StosVPN tunnel start initiated") } catch { - self.tunnelStatus = .error + DispatchQueue.main.async { [weak self] in + self?.tunnelStatus = .error + } VPNLogger.shared.log("Failed to start StosVPN tunnel: \(error.localizedDescription)") } } @@ -413,9 +495,15 @@ class TunnelManager: ObservableObject { } func stopVPN() { - guard let manager = vpnManager else { return } + guard let manager = vpnManager else { + VPNLogger.shared.log("No VPN manager available to stop") + return + } + + DispatchQueue.main.async { [weak self] in + self?.tunnelStatus = .disconnecting + } - tunnelStatus = .disconnecting manager.connection.stopVPNTunnel() VPNLogger.shared.log("StosVPN tunnel stop initiated") @@ -425,9 +513,12 @@ class TunnelManager: ObservableObject { func handleVPNStatusChange(notification: Notification) { guard let connection = notification.object as? NEVPNConnection else { return } + VPNLogger.shared.log("Handling VPN status change: \(connection.status.rawValue)") + + // Always update status if it's our manager's connection if let manager = vpnManager, connection == manager.connection { + VPNLogger.shared.log("Status change is for our StosVPN manager") updateTunnelStatus(from: connection.status) - return } if connection.status == .disconnected && @@ -437,23 +528,40 @@ class TunnelManager: ObservableObject { DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) { [weak self] in self?.initializeAndStartStosVPN() } + return } - // Check if this is a different StosVPN manager (perhaps a duplicate) - // This helps discover duplicates created by other means - NETunnelProviderManager.loadAllFromPreferences { [weak self] managers, error in + // Prevent recursive calls when checking for duplicates + guard !isProcessingStatusChange else { return } + isProcessingStatusChange = true + + // Check for duplicates asynchronously without blocking + DispatchQueue.global(qos: .utility).async { [weak self] in guard let self = self else { return } - if let managers = managers, !managers.isEmpty { - let stosManagers = managers.filter { manager in - if let proto = manager.protocolConfiguration as? NETunnelProviderProtocol { - return proto.providerBundleIdentifier == self.tunnelBundleId + NETunnelProviderManager.loadAllFromPreferences { [weak self] managers, error in + guard let self = self, let managers = managers, !managers.isEmpty else { + DispatchQueue.main.async { [weak self] in + self?.isProcessingStatusChange = false } - return false + return + } + + let stosManagers = managers.filter { manager in + guard let proto = manager.protocolConfiguration as? NETunnelProviderProtocol else { + return false + } + return proto.providerBundleIdentifier == self.tunnelBundleId } if stosManagers.count > 1 { - self.cleanupDuplicateManagers(stosManagers) + DispatchQueue.main.async { [weak self] in + self?.cleanupDuplicateManagers(stosManagers) + } + } + + DispatchQueue.main.async { [weak self] in + self?.isProcessingStatusChange = false } } } @@ -462,7 +570,9 @@ class TunnelManager: ObservableObject { // MARK: - Cleanup Utilities func cleanupAllVPNConfigurations() { - NETunnelProviderManager.loadAllFromPreferences { managers, error in + NETunnelProviderManager.loadAllFromPreferences { [weak self] managers, error in + guard let self = self else { return } + if let error = error { VPNLogger.shared.log("Error loading VPN configurations for cleanup: \(error.localizedDescription)") return @@ -471,28 +581,28 @@ class TunnelManager: ObservableObject { guard let managers = managers else { return } for manager in managers { - if let proto = manager.protocolConfiguration as? NETunnelProviderProtocol, - proto.providerBundleIdentifier == self.tunnelBundleId { - - // If connected, disconnect first - if manager.connection.status == .connected || - manager.connection.status == .connecting { - manager.connection.stopVPNTunnel() - } - - manager.removeFromPreferences { error in - if let error = error { - VPNLogger.shared.log("Error removing VPN configuration: \(error.localizedDescription)") - } else { - VPNLogger.shared.log("Successfully removed VPN configuration") - } + guard let proto = manager.protocolConfiguration as? NETunnelProviderProtocol, + proto.providerBundleIdentifier == self.tunnelBundleId else { + continue + } + + if manager.connection.status == .connected || manager.connection.status == .connecting { + manager.connection.stopVPNTunnel() + } + + manager.removeFromPreferences { error in + if let error = error { + VPNLogger.shared.log("Error removing VPN configuration: \(error.localizedDescription)") + } else { + VPNLogger.shared.log("Successfully removed VPN configuration") } } } - - self.vpnManager = nil - self.tunnelStatus = .disconnected + DispatchQueue.main.async { [weak self] in + self?.vpnManager = nil + self?.tunnelStatus = .disconnected + } } }