From 46868c762225ec695bc2d800824ace462552998f Mon Sep 17 00:00:00 2001 From: Roman | RyzenAdvanced Date: Tue, 26 May 2026 09:23:48 +0400 Subject: [PATCH] v3.10.12: replace parallel probe with sticky+sequential fallback (matches reference) --- codex-launcher_3.10.12_all.deb | Bin 120706 -> 120490 bytes src/translate-proxy.py | 137 +++++++++++---------------------- 2 files changed, 46 insertions(+), 91 deletions(-) diff --git a/codex-launcher_3.10.12_all.deb b/codex-launcher_3.10.12_all.deb index 9f1733de384169a27c66db90d55c9ec5b36fb6a5..386a5fe80ba7e78b02d42fc1b3f13c0fe406a2ab 100644 GIT binary patch delta 38901 zcmV()K;OTDuLr8F2ap{FH#0CXHjyGb1vfJ=F*dPcs{tW5GcYkWARsUxARr(hFd!fx zARsX?Fg7$aARsX@IXN;mvn~Rz-3H8K0SaAMlj7exe-{B40TKb{cilPq9S-N--y}zk z1;0YyvnBzb8Kg+#tMui#(+o*Vr9j)biDj!~+-D1?H=GXQ^J@l*hB0&z-3uD1*FJ-k z$sI{kxrZtLfzdSZq}Lt~rur0ZCX4jro!M#ur9ayclaooiTJB zl_Tf&H1!=#t3-Gy;&hG(JE{xQx-fBpZEC-{+Uka>1;Nd`{xET#vY=Z3lm%fe@zef z4H@UzSt(a2nPW#{^WpQXz@-y!5?3q|w_^D^rIX~i?(a%KkZp*=s!k-(T8wYKzFaMM ze^DEyo5Qj1QpFgjy;f~AD^vzx%bhS73Wcx@IP3MMIhsKKq%V2eYq>jCB(fOh!NGeI z_G8JGqYB+(t`#CGgI}pCEtwtkI40X9%kce;+9dh0a6#7j>+hUQ)AXjEI;{hdlSnBo zjwLhQ7$x%7>uvgunR;_9qPNeVFKSs9H~~rJMeDNoaKGl`;N8bU)ZCYBiqFwaDv)fq zo4B$?KorI(+I12;1Lor>8HxO3D}KVTO=qRu46{<=2>}UCHi{%G(6q`VvtZ*A0S7q` zkPw89u(NgK=>va4ZaB|N%vJKPamUN^dB9p?4K&4i<-bCZ(dOPma`dP&Y~Lv4 zz_D3MtY_-OGy0$gl#SK0JaDF=r?*WU+1dK?W^4P`giRY6gHZWBH$s*P8}^nb>~rH; z;mQ$>I?}k!4oUcby*-;`Wh)(peZ3%*r;rrLgs2lf+=G9jeazKe9=ww`&+r~kl~um9 zFN@c24DR2SUQ|B&cW1n}-Z_cro&UpT-O*(-o$L?onle-vC?~X326`J1_pZs_s$D~c zD`<%VmZqDYp-q?0qk7!Yo;Wxd2M9a{W5_&Kf_lW6TyP6Q!OJiH1$yzU9`t&wohzzB zti$zMj=O&>D$ytasdWDPva!T->^2!6rKUFs$pLdl`5Zt14r)tc1=}YM94D=aTnL$5-s}D!B0KGchnxbDt#LL?&Obc4bnXe!e*^|49oqmq8J}s6-91-s|W6q2r z+^1g|Jcr9pKXBHa-@TnC!=c&h_V$GU_#b~hLkK{BZwwo6O>K9(P~xP8Y!94VV3UJ@ z`i^X2X8x&(0R<2P_O}{FQOty-R_<{N(4QS!P$_V*${FfMLD3@BRgx3tri%kc^h%k{MQnFEoEjiayVpsRx9_E+;tbeDi?lXF|)W8b<{x4}!gV z`K)&A7#+KpJug(k0w+i87Bt*qI3Gff_pn48#5EDbK1tkDhg~-@mbIzpg&m#{yP;wP z^-$n~=_8xYbLNV$1XSClt`+E2l>z2#apv`8Q{_a?X+R@3zJi|0zs5v0ViJGgpkg_@ z2uIxpjLh2}RgO3a?HQk4*RM14ac-aT1)+(3; zB5Wbva}0{;ezXo6gEh`D45A4vV>x0-5J4;q5d*0{zGZUJn`&Ux9K~|l83+hiJoo8v zw{13GT3R`03n-ynzISGdZ5YtymKsUWENB43`_;%j3Ch*~?kkSPfb@S_SY~g7-p)uu z+hKfAfw~MN>tMT3buucjamtn&*@b*qfC9VCBy z`dUD5A#oi~hT(aro^CavZ*5sIvFBIP-b2FoC3kJMbx1~7wndoWup+@I^L0>YT%F_Y z#NQKN0g$H677xjIsxyBDELMsL**BuSZIU_8y+wH>ECBfIwZ@>n+&JGmysnNTE0AXw zBxroe&%d@Ws#S}>`~vnwdCZDlln*%_bMPE@@a{bpF4_wy{V(biyrHT!iiFF>r6S0n zmYX|P)H|K)49fUswTNP9c%zL_&ls{V9#7jE;m+*bWk7#&!wP?MJe4Wl@w(pk6_f}I z_f0qEu<9Z6Uu5kcaTWuCcN^E{tj@KhWK_?ftl=DT^Zuttb@l2df3qos%y%-TqH(c`6Ilm};=ePc{%0K|j33!Lf6IqmQ^{aIjB={+$wcC^NLz zYe~OqxNy!5ZufY0m=T{){K735G@dMukW>J%T8V4a`@?@L=VzR~-}I2n{h8KmxBPRc zlg&0e5pZl;d%U&q;}EvBkH~?M2dh>7FCS_Yod$nm!T!u38aovoQ>FqTeIJQ1W|w1x zj+@*inJ5e~^0zOJdi|?ClN`YK(qCGWsr?^K1Ff4v3<66P)qKIH3yKlXiI@NX@e@eq14YL5|3_vp0$o@2`g;rk`;N?K}|h_t}e&ANUe<{8l#Jr!}{xj-q_MzT%d5X%SKaZtzZtk>sE&& znc;tuU*2nJkBrPK8_yJ`ymoLet1<+bK0Ve^^E^~lfiRb-8=YZo-Jsi|ie|oNPFm8w zp~3hb=eboW!jWq!ohP0%{Gkd~)0a<+{vVd_3~L=nWx!13d?eG0fLB9Gbp}t@=;H}_ zDwOrwE1=}5M5d)$HO4az%c`g*)J-TglTUvMUC3v-ox}9#TB{+lbVURqR zAb`W<3{nsXPFyC+g+Az10@WggpaG%-k{_d=xHcO&l(XAg-e=&t`Kz423wa$5yy{Hy zD!iUp00E5#bCoDPmYw)zOs{2C)@u(Uz^MbuhHH9y_&I;^vi-;9#csaOk^N~C%?^Jg zlTNtH!2xV=&_)gEnm9eVa{|Az_cANpazj%=ej$6k*7qqBiuLS;HaBhC((V%o!VP4A z<|0hh-JD371O@Bi^D^U0ejIy6quq>t!0K$=Z>Rt?KZ_k}A?L8@cRBCnI{Uf#7Hiv@ zC1m6G>syZPLV+#i*1DyUO9Nvdvq!W^IE(a#8;;nA!)Ne2Pe*@F-j6eaJTpC~!P%}$LYaEHB1pgd zImjGQ_xjM}-L+f55r+!*hNpiMynkGZD;B5F$R$8RVeQ>ND`w-Pt zapj~nvJC4T1KVg8as~HW$qWYDnhcg2@j)7q6MYF-RUk60EKgb}bgCPG%ePC?7BUTQ zVhhG_tPzp_lWqIOZk@?*T+%QthKAqdPs<0WD(V_}y5^E|*4YyZ@R@%#JR9(RjysB8 zA;SReRwc=t9FTh$(0&~BvQ+`{OAgrKz(6;1!t@e)16YgdMbzE?V?xMUQ;xio#SFDv z2}3jq$m+8GVxv*eOS``w7y8owE-l~eXt{G*WilQgZo1X zJCQr>3+!Vv@wS{YQObV|+^(`Z(Wd05Zg;PzVd;ejM$gGlM0Z>dK0UI~|7vBa+drv< zJjP$|ol<{iO*yerGu-Rb`1BT4vgdrK{As|h#*8raKviPf$ou$9MTy!v4Y65pxMW&5@;JJeq#}U{ z8hOAqAw%=pP49m`uLGD;urd9SP|N1)o`^zaGb9|-AX`F49dzf)R4V3t0uC<;qYTSN zKlCl>Te06}dLM2bH`dil>jn+}4Wlp&gs3oDFL1LtGHA@b5d@7m2aBf4C{RLm3&o=%Z}veDu#=sD91gU_ zpt|^BqT_%0sA=@Sm2AuTEGdT(QK7-|j8T!?YhWn~VyH(O1V8Kc@%AZ=wK-pbTam8Jy- zkomYNnSukHTeZEFxlZ&6XJB9H9^Xtbrn#pZTAhCt^^gd$hf)vhp=m5R)%+gHBkg?4 zJ+zLMxuOEmy{ql=L*6A2g_|WLT1Rw+3TNBDWtv~1Er`R)_!@gD2+3B3Ts@DXCs=X~ zEl!v>P@WgzBi&+MfIa&NbxoOML6(-mzW<1#f2eLS$CbNONS%oJy$ z9Pe#@d{Q}pi_Dq=_p?yXfZMbUbW*AwblSW!7H~9A9MGmW)!^xFuc>wQqORyi)Gb5E znzE%T3bf;>lcg^jq$WtTcC}p`?DgID>;3rpdcrg=P>F7cRD{XN3sf32yT50dinD(} z6<#bs1=X$uov*5{c@PkSgPvuvSPhG1Yh?h>)(p2gH@I6Su9U+tAzE>k^pJbUIwUu9i+iLdx zB%L|idZ&6UHog0H|4h}n9=m%8uVn2uCTK-MOKe`A8Up`mpY?Q7SWK~|Lm8Ztu&SeaNOFtj6gQH> z%sAddv+RlsRo9~ta`B`y@O#%7Pf{HKEg4UO_=4oJO&}gh62;KAc8uXq>fd}|yTk(U ztPzo<=u&smzo*lW9>;c?g#&*;t<~!s4sFzzl!`v*#g+Rz}_JOFl1wP&k|89$QHCA=qq{LUJ_@+NS}rwU&-*|4^uy-Sw$eC;7(aE&Ze1szRb za-Nz;6IaDHI$^gqffMt@8#|ir^P(P9;>DvdoAl((Kn0tO1x9~!OEB@P4Eba;bCTbM z)FFnFK_4dcZn3B{R2ODqrp%ANnb_eMs>OyThQ!8`Q!o87mkO4%hNslR!PZ~^Ny29q zcS}Spt)ge^;cb|$TnrI%E}N5xBUy3fxvsFGkJXR{(MoOL*QDd3m`lDD-|7cdW${$0 z(7+Rr4FPc&9$ZY#k7@2 zLF^G5C62ccgN|XkU3oZCtGSZ3UD1BQ632W}MuH;Dp5hf2ES z_W2fr1Ad9Y)lm+ElQk6vAHf(5meB%(4MO<~7R~hq8>j3A3rNWeHoa^63)-t|!qj(# zB=+oJdbEGm{Y@zb?2oSbaX@rUT&~bH%~G=NA_+nFxhw-+^KbjPX83Kzp>3OI`6!FO zCzdIS8$(XO%Jl#d`;ra<0UDRV_eE$qBKzH|--!6tV@)gn8Y7Q~2C>93;>`xU_DmKh zq3DrY@2DfCV@M2Y>1Le4Ltq?_RK9DFt;VI-DUg3bJlQ}>K-tjhvhmH!Mzk-R#9wmO z4U@z5RLU%aAoS(@damJUS$QqzXKqgIU{W5?@zz{&vn-rtz(rOzhr_Y`AvpKphx&tW zCJO!XwZLC2xeZ^g^q(Is0*bw1`^3!N(ZBR5txTRezXhnx|`fDCTRjg|TeRd}u8i4NZ3@!EQ%m?WPiCm3Dfd zXe@k)k$1SOUHF?F;rnFH=Gi#6icHQ1zkFJMn|F3137VTYlTSBj7kZoJ5o)yqt?2+q zjiRS4xoSHx_2#_Mf{BZKDUe;%7tmz@eTP^X(TC?T1PPAp}OIwb5+2_kGLGgbr zy*sxorEcj#>y|$X+AZ~l?v@s}@0QheyrmcDEvI!gcDUm}DhE1*Tfx0$vA1#Q!hFl6 zR~^x1G$)WQCzGm6u20sbe}i0?zvFc&DRvi$T|%>xT{=e!w07xBTvB`T+U2zGh3sKo z=7;B{$;i5FLka9s6IhobOzU#Icb9+EIz_bQ`kb=o)QIKXC)B5_#Y@b2fSTp5?^7T>?C zKVJ$J)ja2e2NFQ0X!+EPd+s*;3VEcrq9jHX249(tVjR-`L^fsYuOU#`zh$N@y|w77 z*DR;-1QnNRijT!Ksl7rH5u$%hp(G?VL>#L3WSC4Qlc+ldRx9kKHQd^O>g?XjPC~_@ zHg-LqZ%HG8#M)@;J1}9Rp@>-h2$QDRsLvUfv)M8ASjd2Bzt8WdXvUo&e^TK9%|Jd$qhPT;4!sJnY*` zQq2uNDKaEW%=z7AR>ObY#-MK^ba-3xB68l;En$Z;MJG`84ir9M^3JaL!j{E#CATb+BPq=PA&v}BUlNmQyQ ziOTV=SKE4=8X&+ui>tJbg{nESjt~+trDiEuFNZgz!X0J}LVSOqy-186t$k%EJQa+h z?McO$hckJ4F0&=U02B}39XgUoR_Q${SnU!s@c)A?^7rIP6G>n?hsh7VW)xoLn#{4*4LU*uJarSKF>ofrfvH8zL<(@(vt-44C{$#}Xzq zqcSLn#~i)({3S_eG zXvD#bjSj>)1!Nf|BdXe2ww*`ry*5_wcF6>ag)m3+1TH|m0(=B->rWGA+oxT!xk)i? z=pMEv{23SpakL|D$DC6fsX4@DP^FTU z_83A8e(6>q+$@$ql9RiieUk~iD9gAqL>a95mw*YN<=`|{lL*;XA= z;5!X+WC|v{*j&daqdiC!X>z#p8Ez6r?0CnO3lxb#GHiz$LfP&m{hK^wi9`rbeVC;Z zCTf5Gd&7v5CXKw@Cd5|#D{mr@2Nx~Vm};~6s~)G+2rs{5QQ@DCoDxf!3~!0E)A563 z6$o(ZI&0M_MRKzHDvmeX{kj;~y{3KYG`f?3TCQX$j;)h~OmwcUoIlFA|5Jayy?D8} zaDmqssrz->%ps4Ne0Pc*+DMn}4BC$Bj|_jWy%DMSSrmdf|e18H(3}tVp8@kqsZYp;J<5@HE<-GDd#^ z;u4f?Zgb%xi~)27eLYOh^~#eYsZbS9%tfD*f0#p|o)q$c7z!9<@G*w78X!w9@%d7E z)EwkC2{Fu!91zilwMNI?w}VnXMFm&W;U~|u>k-+}p%{!@GxOQM37GiW$)XNlWrfa%r@jr!C5IpL3z>H1imOXH%-c zfwW4Q%X^9vNk2pqKwtS&Jql7xGF-JlvG~C%oBhmAL22JR@o-g!NEd&95&wAsMz0F# zbsm7h!JGB`FGAAgi+RAmNObt3jk?PNZjc$KdttcvFLCR7(sbtlFeX!cdx+a8>lfT&X5D3a3$?{)@({c1igQSx&HFZ%Qi~ z4+RSs6grk^h$qcxvL1iriP_!_FljF~f`rL_TWSq}srxY%GDlvVoaZLZ38uiSWe|jh zGGr;&wq`zJf@i=ilf^tjFCd8%071u<+p{(Fb_jK^Nub}FQ#DQgJYcwr~Usp0}hRxv1DIinhJXKZ+RS1}yE%^>Pl;U0fWa7nF{P%c*+SOu2p znFd-lUlk%5#@(ypEq7I<=Bm((Jr$G7RRNN%UlrINx&wI+32e}`JJ}&)m0<_!y``e^ z8KQ@1*f8cItI={FLHz&7x(J_)>ik>esJI8_y4~k0<_OW2nSpI$cVsB!x+r`smbuVX zTzqp6i(Rz#5ix&J!m?w@*_J+OnHZpkkVLncunM4V=q2LwF_~f?!6(G1f+DG^qPmf+ z!s-Mvm=vgk+5CPgmf;E0yVonidFOQg71AxGOUxGI+&NKTaSe#NM3#gjTszg(WO+tr zMGTn?^H~WU>9JhZI)>9wS0Z^qp&1ttb({f=mhThi1p|mb>2*eS9)wF_eq!6^l+ac)TeWH)fl0 z%2GmaTi;J?iPL51kD6ftn#f$>s(TVE7QT2--F%7}-%X6U(7evcp6(Oq!g?8@4DMdo zEmp@Inr7^+ zi-K?HKVBC}J(;Xmf(AD|I&NUe^;$WK-J zU3M)d{cCZP{cHicL!~ko4L}Q8K)6K$ms{9E$t|8sw~)U;w{T);k*Tw{Fnt37LCl*& zO4EP4&?C|HY3yb4EyU0H7UsUfw=jm`$KP87HNJ(Xmhk2P-=cw#ugvkGN`M2nj3d63 zqfIdOrzZgPpsVkh<#FcC@YWa8!Hd`1$1Xs=lpEzncf+WM$?0+z2{KB?Fz&GKLipE# z!#`d$xM;kFM_!ETs}UTc$OiIwGol_J;un9Qg(h(|X*v1Dvn)`9*Tk!#x-{?#%fDbZ z5EP%!gX|(9lAOf=qdmK~`MW6dnCn^$B`Lbf(Vexrf&pM@5eC@$6Aa}ke6293laP#j zL*ut?Fq*H`Y)-n{4dVoi!zhOUan_!vh++BP$N323Nn>G@5E@uR6gxlXatw#D#bSTy zLGXsrsfST#&tZg9{=a_EX4V@I111=m=q{5022(bg*w!VSYeNkAAew0pmT>Orvc2oc zA8-Z~fijFCO2NNe+5uP5R7(@V7#RmtWp$+LAACvPdQKyVSew+4I+lj1DpEs>l2V2f za$*uMrG|K%v6vd)7{P|N*%3~(2pc@x6#Dpke*C9~(if5g_ix?ZIjS*KfugzDUNspF zcUPa0eRKUj6E?uTkhKjP)C>_ahYf+TTyAYFkUJc=P7DDmT7PVQ0vc)T6D_dJsvdyV zMGgODZ2?%Yj?ayb%(^RoX*8lxAZ~Re_wB5URg+Zg?Ck8&pW*^F0W$$F0oKM|E37Wd z13?7P97aR*ODsfMzt$C~(L5EG+aZIQr-gd0kT2G0b8Aip1+N2JAmAWz!149iu4x&(a z0=FhE(Q2+FWdE+!t2JWnETPJnCth&fghMc%uh>&5)4D6?1pD0D+lB0>zOzi-G9V|% zMkL}=%P45I*1g~t4wPX{LK*o5VInc=|2&fJ&rq9t%YOi(L-@n(Rz^jH%B7-U!U9n! zQ2R%M50ujal3|6{-q;|q#+AXB7OxEKso)Zl_u5RV=%l~VCCECkoOgWR-7+bo1t+7! zaEsw0VNhDngNu6)B&1*jc7G{$S@%6;naymhwdTfYIL&V@GbY2f))IpOm5hpuiV4NV zVu1xhMt_3@3nmIEfG>BZn1)HLK?1c+7v@*Dvb42{OJ%_dtX^6$@<`6hZsg=3nI5PZ zBkD1^E;pRWYQ(C7I&?)k_hLynBAy%~4}J0%yT>t^x_g>9c^<}=Mp-QL08LW|Q$2Tf zSopH|ei4fj`#!AO+w(k6n-Z=Vu3Wy9kjlsVp?@4LdwIma#1HYk&u+M^5YZS%kx2ST zggLc}M8AFdN~koqzzjy$s&S1f)mASS#~ZiMl*k`Dyd8w_YsPYDt+m$riSWS~t+mw^ z1|kuk0|SAOh?(ua2V+$j%=4X2$K`ANT1Sy6BNFLIq+z8cB9YEG&XfeCODd}}TA{*A ze1G98T0F9HHV#K)ccyzo zA@hUglrviuRK@RMs$5hOI8>+AWu2zaOvJq>6yEZ8mNvDJT}GF@l_3};(JwG$>W)M< zhoDgK+mZQ5kuYd17cG}wy}(}7y6CBI8!KaA`K;vu z#e!3@YKday0;6U&b>nifDs4kZMU;efkDYgZP)Ys8(<6SP7rlXge}Dqv1Lm(8D&)c3c~HgS)(qf~5vk-qFKOM2bp-1~gs|G124C z36+>3Vo7ub6}Qld?_+=1XYK3R&3|1~{(NxVmDvXQI42wDWY?A1_zzbQ7&{6x=@Nr- z!Kip0jvhFnq~!;RL{7;@SEujU&y|nc{ol*^=(k(V-;;{;_rsb|S2xr90&25G*zDH1?M5`PJ0!T{`0 z66ReEcZeRMNwSjYfs!;D*|W5{*VVC`2zM4^`e`l+4FecbQ>7w1vl~8G-EQH{2XIVk zfQ1-GkGAQ+fk6nXwJEfJ`S`A`z~vnTOd2E)ntz^5eY@op;&#+6xgpFDit$yyWfF5N zI%LO%?e#EM@d&XhTGa|6R)1-m!jt3xNWH-!;{lxktRy=|X99pA07F0k7$8JoCK1TP z;ebRG_4OpvSY8%{Ux^e=n1~=VAq#!Pl{bu(YBc^UHjuyra*m@4AEf#&_9Nhu zSu!CU812$a4oN~eDn)Yd2Wk%jJv)h4^gDgNCxC(?#g(5*Zctk%n}2IE;S{Ji?A9P2 z22cCnw)P>!cKK3jf!OyQjxcMxu*e7a3Atv!iX^Y_u=CUx0jD9^sgZ((fuG3!#y|$c zBu$Oy{Ip*K3AbMrELi~wM_@)+Q6AwQNt6JMq0d9$1io1#trw{9Ofzh1GP);m26OQF1~jM_O3dk`)dT<+q$#FvgT> zVRb~ca92rC1A}rz{(DI@1w7QdPLe!X4iM8)zbc|8y~_z&sqF4^)-lWMvHR(97@Dap~FD00+y2yvDR! z^H4)08ML{8vRq=R@X>dA18SxHrDo8aHVqYLjoRnuVrMAiuEMe{IYqtj0j{|mmOh!H z&~tK~A&$8|Wq(pa&S-22i&deHvD-0CwJpPAHc?Znh9=lwunam$W$gO>K6G4UVHAseeTKk{yj=7t+9c@_^V8dZFJBX3z&+p!bbFex6z7h7`Q3i;rH*ObirrwPyOF`qo(&yXUy4 zI(IYIop=S`tGkR>SJ3!|{Bemfx1^H`DNYyvU;fW9k7`z>?39echQ0Ckld ze1C}Fi%J^1Nf_DU9TgfoK$!K>`$7ONU8XXLx56NIhmaORB{PJ;J~Wei!hG`_(Xb&n z05Je;=nZKW%&?*mJ-hGfS?I-cAM}K9>ed!St>SL1!cG#*GnPr!8NI_x2j*Hx6j&TH zcA5Q%cyTC~)xeo?4(wov7+dMEY7d0~k$+LMb_Dl~Fdsq`ESYISVnp4ueejx2!`u@9 zKjs8q+UfI&w9C&AU+afg#BL0Ky~*|$hhMG8ryHp{16RrE_#!99n^L!2M&7&hg=V>x ziAV;l3t1S0)xI8y8b2$?m|O;+($=-u6FZfdz2Z1=hNd7Gz292``nY#SR-_QJYJcYC zaw^+l+da^WJPSDRl*%D{O%0n1uB}sT(T?mjB^IfNWDl}HUDifqiug@ zh^QBgP&@Kf#Iw%tW@567Itw3eEVlz)b2)nGZN#Qo!0=Bk>1=lYPj# zWTK^p8l(O5sR*?x5Jg3duH?PZmVa>mT4hk1;GrE8B`e5gyKR^ae%&L{u+9TnNAtDUW9&;SX9f~4w ze}g)_uOskPN8ZQC+rMs`c@zDsRPn~EtBh-(NOor1vQO_zj_hJ4SAR)KPa+r!rZ`kPwyg1EahU zs79S!7e;^^A&L^cQ4q% zU6d*Wb8}3A3h1!zeAi6EHqQ5jKrL7_zC+sUD3K27cnogd>Hr%fgxwm_#przxcW1hM z9WvzgErB0~F&eqC^kggz4h>zB9I^CwdE%gUEH0DMv*#5 zogRK0XJ1J>{fP7jx9scbX!-~9Lmfn)`)4mYOZQH!mbL*AA}HJYNaLxj&tU8nH*qx-!}-X(Z|#BEeC~ZpEQz&uM`@+t zXU2LJn16Lx(e%+^IN6gkm`Td5_Vn2WO4V0ITp?6PQtVI1R?0ljJ9J{+Z>1|O7RiL3 zg(2s={m!%)TS@em)nVo_ioFSo@r;r^tXQR;y_F5~5y+a7CUAv#E+)pK>kLn5RVcj= zij=vC$pIpUn_JTR2H%7|qyDx>j#1gW^1Bq(u76B8PC8Jcc338v`kJW<;Fi}=80r7) zzq22y9@|ry54vqqy*KqMGpmXWX*`skJWLWEutvDFA7Zv|EaK;u9=g|iyqOpv%jcuX zE=-D_ukdGGYU>Ojlay)?3xiYDF2~{7Y@V0*!$vj{(dx^@1~8Xp8nz%tf--SSEeJtG zKz|@ttxTs5b4GuG_ll*u149&$`5`o^m*x}(%WLbPk)$V zRN`Px25GGtE>MP~VV2q+Hti`}Tv2pQX=B7rbiCGl>Ok5_1^^S)&2P)r*NnYx`G8Jih`v3$A!071tC=t4bB!5(CY-_%JedA~^ z>8Le}>#<#=trnGq)QHok>R20FgD}mcZ4s}jU8SKk{1e3&Z zN$*VEfTljAY8UR@qG!KTNW)SK!`j{*JpJj9%>Cl`Bi8M8$CbQw{i?~W3t6RkPwdPi zJt$X&*{aklAZ4UNH-DxL>Lgr)&Nrf2qLyA8hACM$keedkDRLqZgHmUZnJ@CCx1EX7 zELQ|VXg>YRF&j#%3WWG~)SyYG>Wdjx5W&mnGt7+5%Pw&L0;O7~as#~R=yRAoJ2_@^ z??dX=TVk7z*n0=Vg zgwrzF7N33x5ds&e%k%mEfN1?Wmo9HGgeqJ#mx@sK35mBZLvk-9sZKzN06v~$v$@_C z9T$F+jFi!ma(&eD_0{#D;La7|kQrTkK)M2Gfpl}nWbxDjDo`%&4qzY{%YZ3X)8U#R z$MI9H%gnhL=6_qv4{NP~z*vfaI0CokF#ax~e4kWgN#>KF2?!S&1N{treZ-bZc6NEF zC^B0%IPpFx?tFUHrkCfn`cAz_$ZuGg8S4=*W@kY=V#nC1FS*zgF`jBS(o##-Xy6o> zHVevJw4HqkxokK89Gy&m#gvIC8a>iUL{aWczn zM8&b3?0*r2c`+LPhx73LN(s7cW1DwgN%^B&{9*if;ES013C0{7u&ZupPNYGlLHZIW z6ip$RwjcP!-Il0ucY00fE3+AMuxwK`=+0-I)XzfRI5Fu3clfOhJ6P=05oU;bGFmpg z@td)2d#(CgcU%5FK6Kq>F3-Juo`SV7aP~kNTz_B#7s3RNG^_-K_`!ubfF<*1pV5B?=nl}9XarjE=mfRsssa}r#=FYLiSFl_J;PCU&bL@t z(xe)=K{cc*Uy{KhaiD8dNAF2`23>N~*pTr!51p&qRHb8xeA0G3gAbQ+p@^V22=t5TeZn{ zR7UQmG7lV73UWzV%%RZjZ1GOZ>W?EI@qdmn!EB@^_;)(yx=~nw3r z>}w;D8DRxI1EG}nK*!#KIh5cf2+^aXr*hDpk_LS+TW>z3`y%Hx`5>!gxQz|5r5dw z;uXs_o2w*?v+0iERE|N;jbxQp3n|*z427>G@whnJ7V6H&?xC;+$cu`&SbH&g;!1}N zM-}oT1@fOw3E|u@Ubu6y52Hg9#6K!0p#D$ye-ImM2#h zT@pc|+RWoj5*|wT;oYT4TNm(Kfq(WsMVTZ%5Sxz1mum)MXV5#1#RcBdlN2&R8Q6;J z=~n*j`N{Zee}_#G;x8tKWJFzTR(gK&?ULttZubL2KN;_tM+Y(6BNAZKKZYl=XeIbU zO@AWV)@9~~i`(>~sE_%HKnO3Gp?v=wO<>IJ=J-}&hxe=HK6Ek6$Co4}?tcXY0%Vyz zGms&Qm13-Dpb5UQ3y+8sxciL$Xx59=<&5h(?eIafz-HH|-GQX|lw=|`Oz`Rhpf9IG zWs#Ica$hmEgV7NPEa+G~P$q~(Mv%9v?Gci)is^uxtqt(8lPEBBXR=CVh>~d!mpJmz zx~@!lh(df)BPT#Mq~I6N27fXdB0Efb^J9_|;598#|6(73lIt$hlnR`%dT$xCEb-04 zSXw^Rh0$&_o0x!U7ekn^M-}W zm-wXB(r?P3X;jf2y0=n_OtU~rpyXM^Oa^nMVzSRoVcmBu%I-K;U4KgG5S?`IaCTOm znI~C(U3)lGuUD#*#DV<&x&E*_;Z<(#fZgHI<}uabMzQ>vz<+p-E{($gB0$~0^Zz3> zAaI?kv796TX^aa<+F^DoY!en5z7es#kM~ca%ogi!ZwdI3yv^qaQ3&yno(3QKcWxdf zII;yi9&P5EH+jwDZ{8rx!vlYiK-74KA&Un1i`5v{s;K_MTrsOL0SAaB2-4ZNpf}hq z86nkb;njo6Enlp$2JND8@(m}1WG^;{I7?pV#j5dJo{p{DiYwW8CZWZBJL;PdF*S$} zB%CVO@DwSyq9kAKS^eenwKjDHwXQ>%7)2n)HxQ_)IRXrFU_pY z#JQBDr^&){tjdaO05L?Khvohza2HItp)yFzF7MuHi~_TJwx6tXi%}1u?Y9EOOF(xj zrDjXjpmc8-LJm6aWw?JHM8wl!f+8N=PaZE=RXUQQAE|011P*z~=HN535cqZhTch8V z`>uW&VgsdEY3xc2*88m&^ z4*C@ZZ}w&tkI!L*HW|RuVk?Z7adMfYNCji)(cd{I&h$%{c?(EF%d5?-~ zW(DVre%tFR4aaJ1nXEOa+=2Mw6ThDDXM8qna1eLbf8@@HD1Pq9#`Kc88FZ3PL8MnF zP9>xv{1J%kzhF%NNNWt_PzZ=x_1N4WT#zQ{p_Bc5hrxeoSOf;xvmMW>35{}M07i-> z&{oVXJ>hzAqyTP!y^1Q2D+CK)nMy*$#)}gQP4S^s0uy7FaTTR%0U}>Sbmj{d|AO~t zZKc*o>TMoCr+XLD(~Yu^@9Om1K)R4CGb_x5bBn7e=_35%BL2HUc~Q~3NKB_EE#ILs z!Fi_4MxK9YX<-fRLxAsr7w30F9cC{l*qpQ4SLD1G0b6pF8}Ll@KJ2@}Or%U$Y%9T? zqt}f>z=L6RA(kKZ1Eg4ap+I1D0C3YRsZVC;)@q5#d{1UmwPv=9x~rF+ToQe@*WkLNPZoe)ycfz@GNLjd$Qj|6N~&v}P$Ia1qBvptZ9s6&T0h8pwO9;yD(}cz5@77Y8_h0elr%Jgn=nXjfUJ$=dHl6mNfa zNL1EE8PQRYwI~D)7*v6zd;Zj7TU6fiSq#Up6?#{#@f#%m)Us#NXu&wZ`ODGe4Cv{S zv~65)b|N0o-;45jetFC*Mk>>7$0Jtd$r+Y%mN+Q+#F19c#L*uGTQJIH6cuCYw%}t+ zHlc`0fymG1Q>@4m8K26w6^J+UC8mEKwhV7Uh7H>!`R^ey(sYWa=S>l-2Ul6%QLxyGz@5{iK{9R07T@`t*YRHlQg9aK^O zbcWO**PQ)#qJO_o&PNmfZh|oOB6trG0@^||C4@M*feKB4N1eoT`&x=w4`OmAlKn-h?i2M%276}>ocx~w*vsvm9~78-+9a8uIcn^;klxG`Ir z*fWNlA&s+m#+N{YkbcM`S^+dqpTG$!5@|pt5-*WgFLBtM*Qv;WC0T!r;yPN4k_5QJ zoVJV~IF>Lgn7TZ!X+yxoil>qt%}JO*6wdJs51@XHH~T#hY|^w^`=p#*n0`Buj^liA0xskSa6)d=M!X=oqD6tJY3>1rnXpZY2uCOc2)c4SDgBW=fp(F> z`$8m3=n~o_ZI2=S zDrQReME^bweQ1VUv(bZ>r>5C`LzXl)7hSlSMf^z5acu-=x?dvQM@Lk614Z6wNgJth z2s@icg@}Cq#Y$e&K&3SM;F?z53JT9|*${fsgu$EF0c&>i80 zAh23$aLATyUgBUo*KBsq#&jP@J=z8ylB0fPIv-mbq$LBHh0_uOXk$%9rX)J6g9xkS$3$@K* zH{u&^F~tV~`W>G@#s)^Tcb7C!ECG%qZ4!_G!}Fky4}AFm;{aOL&GBZaBzj0s0|JQw z*oDAdD`2B}!96)a_7KbqW~f|+3Etb1RD>T5HmPSl_2+e$!7ViUcd={FCz@pkY`m!! zCN;T1s$hTl-47F}fi8hk&@F)lx?v$=Xo`A|8B7~*D5Q*kH4NPLj-tpqRp$z>sw$qZXHTO+)z~x8hA+0Dq{$Bpp!43| zNgH+YR~@JpwiFFc<`gHa`ob1@PAF)>&VK<9s^NwY{^gJnTI7$*R?!Za-X^s^T1 zzl*VXR~bdtq^}oKe?1s?C>3fsu*mDTnRwHQZc_8CptF65c4=ftC_UXD(>ru*(f9Ly z;THOV$`Pu6(s-(F$R%U9WKV?*F5%Ib&{P%y0MzwEGPh1v8tl^Z&;zcUWYGOH1owSR z6Xbtu6-6H*dlE^Y*GDuR?xadj<0rRG(HFe`Ze=X15Mn!d6bMl&Wm(YH`#iIWK%)HuN{g@ttPR zdE<-)!ci$7P%bL@CQmA&Cl=Ygth%Vod@OEjN5`jtF#6lV4pU+WU@mUfgowSr7113r z88lgU7te5#CN274MWN)ek^a|6F+esuZyitN9T^CoSm2F8D&92l!>{V~V7?=ve8hhk z%t##7TO(__?@E0lq&1YTV2J3_Z1tJ%hcAhKG-#cU)@l>GAV`YQMzgbqWYC$p)-f=e zM*Okec{(4}Lo~?~q8_&Dq4}gIqf;msEBxlQ$>(6_-~zf(0YZO!Q8vT0kXjc}K;Mrs zGIAZ;PXya28t?in(R;<^0aWV1vOj-T)NH8rS6R()c4HoLv9B7!ch5KyIGE6&8|l7RSS zEKe)?(maY?G|Q^tZFX`<}+#TzV{f8JyP} z?-BWn=j$wHexkMJI>fS=6=|~!jEcI4%jH8cKvIpf1VbejvJgMn^R)DSJk}yS6%%>Z zDv(7SMWmy6V}=%+++a>1uqFV_E26zhBHDL%BHzkew3Yg!N>$w08BTw!{LTGo;bGup zN{14%{f@8|@G;n5*VBBx{B0SAmj|6|et(w6Rw;m-1v%N44d_OxuU+~&GP)|N%j*9u z#bR^q2`U7GRR4Eqs>U|8Hmj2?T)$e9+{579^@u1{n-go zI++_RsZIS%>sA?2&;cO8Gf^C5zKx^I&1pNmh@SezwcCv&eu1SQ@~y7#+>Rs80t?c( zi@x}+mRCTq(ba#k_@p7KkSWU!0~MJhA+5Hk67kXhP^)ANStLA__dOw&zQiQ3S_QJU zMjGsseBb)n=BbO4^wOqvr8@j7$mRC-upJ6c;6II48#NWnt~uxjTnl^l8={@IbWDGMLoZi&mMe7zND_YoE8*Y=Kr6N<3lWreE^r^q z%g?@%3U1yPiXf>Cvn=6CfnoU_{aUc!xLFB$zLF*g#j zdMZ?LRGI>9Mhnww^~VTJnr*>lTlGLx0$NEB_CldFuYo4+& zCFv3xk)|kH_Mfk-8~%Q;V9W{(=d(BChZc2~99@cJ=$VBciB#qAu^W@cq6)nGO%%#Z zYU`h&4Fk&Fshg=BHd(d~{z$OcUo1Nh7a;Gy1K=GGw^6_`yfhOKL2eM}h3EvCCotTc zE|h+DcO3oIua_Ui-nzP#6^G}j691a;WUvEq-JuQs8?f0JXQQ}Jdo^N z4C;RI#Ho&MdILGbUso%V2AgF|Z6%g!M|FQIKYI}FQpQz-enbUMLjtG)o=QHKU&a8u z1jCWK(Rh#X5W%&8A5nLj`|W^KT<>=0ORe`8D@{}W2U<^!?U__0yveSW@f~`uG15;k zGJB2zxH%@ER_6Ki>Zz9kOn_p{#mNp1)kL#1)kZb{Z76e#5~N3I!imc#0go%9;30p# z)h;`%SS{f(E4QMFg+!P?Pwz_@7e>__`WN;+xjZUiodD-}%sJk+`noc zpMDLr?F+J@@>cagj{s68 z2bXtZnS9kGegba<=neu{!z)~h*@nNPSn{{rje>7*END~&L$H@!k@N4V$?t!JC%&cj z2m`eo_hlGn3V_WbPm>}Jau76>X4-D$^mA;C9}oSVxAL6WN)zoQ=_695-q7&`t`x3h zX#`FJ&_|RrExQ_Z7=xaue=fOMT*HTFXNrz%=k>#%9l?6yce0tYr)g_`3CR=-XDpph z%({n>yIwbV?*e+`<9S}nn3sQx+lRU*h<4Fh6%JU01U}cHFbqSC=(tosSW$nBsP6D4 z#(4e^P=Y)xXSiX`A8RVQT_`eFS;K2`a&HPwlQ2BIws9u4bma{`5cd}Aj&Io z=>uWB=oHt`$$`?O^wgJ$CLm0UbbVPDonzDG=>!M^(clSRZO?z<5RC!q9nFB1q0P&sPFjjq)|O<#f@rYXstO>hP?bl$s)rd% z8H(D3+CVhVz^KF*&ANG*^dotX#|pHn*hTNP>(Q?ex^NUIo^8OsY$?P#-<< zw(wkoWkVB;P6$)LBV>)Gn6F5G-e}X-D z{}fm-1Y(Y%Q;Td6eE!pBEIqMp4(yX%K8$XC9Ydh$pDTIYbN(c)d0jn(kSnGGZV>X= z@GB)yFvVkmA>Ds}*QD$vW4?2_pIm;MNZH1|o~V6B*cXCnHO3T4DpKxR)B9|KE)-Mk zA~f{IghJoecYqkjU7J&3B_nsEUA6o6_pq?m{-i%L+4(8WJYmcMkNCD*=MA87|AKJ1 z%!u$R3!ErQC{xmLj7Q4BxykHOR%Lj~_bNC17Tym%G;n|Cki+u}%|^%e;Zd#W?wK^n zWHzp99#2T8J1co2c5&O7g9v*+t6EJcnFgg%TelK02O*M*pa$*PQXZaJS=QL{53uRo z{X1S<5^w9ho`6o4BG!+@*j0W2#U-}vnpp0PVHo9fCd8`l;@2&cCy0|K6TzQDmxwQv zj%tvbU^9Pid7z&xEO#tCvII0G)Sa9jdHfocy>K3__#^Yg#cw9)?LoGfVQqm7-S6_B zaNd-aOJH8C!X;4YKniDD7L2N&;o0eTML5>P`z7kboKXa?bkOjBX`)dbxP|y6SJlis zg`a;+q3(p?bfO*F&i9IFD6+qmoAROQDe(H^y~ux6cHk0uMPXhy`^U-Aot0{*S2^~( z;aD(avZO+!E*Frl@pwa*uIA1WiVTg{UYDr9c$9oI}^ zu+lj2Hz(naV%qt12{l>`qSo; z${%Zd2PB%19~pwC^1D~U=5tjLR-A8vcV$p~`D!%45E(!37(2F$lWPw!IYHg$(*)mI z8!Y-@e+8qUFPs~~i@%wVOP7>vHhM1kAN+q0f?{`w`O6A;W9u793+UH-WNY9vGAIfB z9$jEVm(j7gGC;z`hL-VnPhqNyva1;Q3tzC#UO_5CK=zi2fywt{cAL&Fzc_b}5GT5W z@|W>ZZa70)_8QTFegXv@)KI`|O1YATpZXQInNQTi(8^m)st=YlE2ITIcVbVV$x44( zCQ)v7N7|_-0GTf%nC@~SJD|~XEO_y!i@<&#kJisa=QRrFIvrRp(bV%t-;yC5zQ-idnd40q zc)`b;qXBCA7;$cD7b>hN3`nA?F+zVEcb9+nwg?&D5?^qEyh&}%1yxy;-`Bk56pi8p z>#0cFpAjhswAv%n5H$Cg(>|s9m#kZx0;<@%p{BQSsf7R*5|@-S{4sQjRZp={MnY!E z;*Jk0!5&0btznl_(eM;d=|!(8$^~V#@*NokBtfB%vPaISy4_@hCD^Skt?_>n;Fi#O zjui{1T`9*?Ap13mtQgr0RQ4u=!^4_ybS1QUJLeihiA5R&)g5x5*J4t4^M}|lU zQj7$nOBazgNsXH$N5HMCm8WtuDy|B_}gAn)RZCg`$ds zc4Clf3HAs`UuSrDI4pNd0#I_d9_rJ3yf0Mj&i5Jc#^D(YqpW{q^fNPw$FIO^*KEQ5 zaa(lq6;AQr3l53{3%N~Q;2KsHsdZ+l)(VZ9FuOt z)2w;5!i5eYTylqXJL70*w-9Mjo}^eR{YW{-b&V8nlwf3=hJL4l$L#^`oe^`+TrY61 zHrax$zokZX6~})W3MmTj8Ke=WSdR}Q(!7FzJ}MbsOb%oFEzqVX&jha(d5wG@M6azd zd#&Ugzx-B!<&E~tl#P1;c6@OXOu$)AAhiVbi<~9E{4b&dng#PWXK%H3RA&7r$Grjfi)07V2#;N1lRCT?5XA_Uczd6J?`oDqmdCr3QI$}n7= z6-yCo3UKdh@fP~)&g)hNDL9Xe zlf_whjBbC`_w4($g-`VK8T9c_Z1RsK0Ek8av;b8G7ErCqyHO}n6@kcHkxK@>)Jla7@15ZeMhwUt|e}wPyI26Wo7gSFvM-xZYOTuAdRcieEO+ZOj}x zIc7P59A+7Qo@H##w31EDoa9jnU!piw`VlLBOMPui3G!>H6=zkcz)(zXZIb>-;>Ueg zJ#RW|BRU$#`r$INNorzqiia*RCYCt$!Fz}h{h6BI>I&D9!g}D1`+z7+@J}kXEyOlQ z2t0pobJ@VUDk6G~KAS{!mYb2JGqaj&%cC*{XafcSFr9$N=I3+%aB2AsHp3p$%#+wg z4YduD>N1<#Voc&oT@`(qS0R`UtyVhFsj*_hIwU8Wsa#B&$$|k?A1v~!uB%{)=p{&M z5;Bd=jfh4A0>))S1{k+q&$0_(`0hPda)f_%_GpZO0I>4Zw6t&MZGKk!^4l28v%nmEti`<-(^O3%j_8ZsDXS_TyT^hg8^jl8BKkONR5#9N9cpB`VmYiX?(C^WRKEI{8i@p;f>P6srIHBxmgB(qq8PA66G$;{X*`E!Jho&u$Z!;v0rW4g% z4Z<@THYL{oq8x$w>;BQ_BxX;xsn>OJOM15QD43$xq5+bWxi zQ?awX4Jv&0M96KP5=meZ2>(Sw8u^^Yh2c{2E08}Gtm{G~vo z1EEuHh8JcjOoj9P1^m=OQ)wTj7>YSpE3HgT*MC7Rasr`YxlO zlz6Qd$)XgoOXKrV71j$LffWW3Zz581m`L&!WeH6ur7TY{+fdl!Hx<5;q-^5k&N)}n z84oYef3QXgsK~JWT0%mGWQu?JB3MxhjRu}iGK&Pxe-Eo*>yTDV2DRQJD|MBBl<#@)}EJZC5Rpj z>Sl_MUkny-_WOdx0a@c?G{^#z{F%#|-`eD(mv@X(1lc5r@3vEca|C}T0YxmsLOMe| z&B{nkla>GNuZA z1$zSG+o*%5ZFY*)Zzq2&4b7XX;7OK4Ls`-<9}EIPZ*ml42J;@}+S}Hi4P+Us5Ih;5 zTVJu|${iv@uODSeJ~(7*3V;Md!08HM!n6~0RC+OiDk>#0CfpO_w&(@tU{74NTeZVk z$!y}vY=AH6XgLOg)KdtxF(c z>X|r1B<*t~L&37}0xm6*HyeZ4pC z0W67f?0W)t#&*MXHrtu~W(bJr$IZY^{rJc^I(v2`m-F2hx2)(FYmD&3aQj4Yc{8IF z#Ia!%R89tI5CH2~u=E_%1mM8PWe0IIU*V@1^0C=b zJ_6b3PAmdugQO>|zQVm{=(O)gI8U{{(=NJr-_L)6vg?7<^pg|tDsPi~pu`A|Zw*E4ko6CakbH-7~xAHVD+wq~`^I6}UtaNd_zx)iwunZ!J?{cOqa z6h^ABj@VN+G+Nqi55YTyRq!wy?Gr&&6DvIr!!-Ds#*m0*Al4Sm}d?N$bEksN7V-Q#wxQ7Mj_HgASi<28XQLJH5BU2 zSxF{YfqEt^pDO0H!A1EXr}R`G3V0>_;R9?{WWRZ>D(H{dc4-Vpu!)Y`59TO0Q{6>b z>#E+4wQ7x023YAz@SHJz!o^v|L=h;5*)7ADe`HNOwp-;f>1SLtm5nTGu>2WjM+4)AH++gb?AN zlR7U5UYron`JG}!LV-`EH<Mer;iLM2 zK?At$pW8dsIqWQ(q29XZXkQrPq!5n=jmAQf>x~eEGOVxr)L}Iu((M5j3TC&jM?gaa z4sBpHf)t$S@;eo)EHw~9mM5(wgT0ZWL=c$)$3OwgPv^mF`IrLhK9*uK6;u~fa!e|y1!mWBu zl|>I|QUB;kB@=j2t?GEbRSiu-6VIQNdyRoGT_cbh#lXp;pbf!_tgX>&7Vjb@?$t3J z7gR)38p5Ogc3F^C9%By7Mj}*q)NY>A3{+l-_Jp653x9gmBeBB`QFVVC>J1Ko9vqPf z<&oyMfajMHY2ECuno+^9kNRYu!{OXawY__ANy+x zP^(WaXA~2_Fz4G)RXXDToTSNWsryu? zhVyIab+;r9>p(-P-9di`U~+{DgD&*F@Fvay?5-;(9+`zz`kd<%YxXf)!ea)TY$#+eZlK)ODX{3%4>N|hS z`WJi~_0MtatzoJFh>iWz(k2{@oiwFal8hbbxpPJrAUVz4cszgS#D2%9$F61cV?U}r z=!N9D&ZqFJBw)i@nm#-TaH(7+CesTeAuGhL#+IBA7-$?kK38=ba-Qn3<-uO3>1^J$e{k>RnE#6)hH3uUzNY|5@SzzYSOxV#K zX(zV<@Sz@6`hM&J+rqqUsyQs5{?Va@uIDOc#GX-(wL3HcFQvPBnV7{oFuMItjH7 zNArbtoj=k5tG+b`*C3oRQ`z*+RDHO0-PTvHFN zARSEqh5o%R?M)I_rYZ0QNf)|=vXurek7p_o_z&RA+5y#ikXjZ7hG*%@NtOlZdq$JR zW{iI>PVyzBWIfj_7F>6}u)zB%gPqBULQfxPDsOq) zD1UqP+BAs5B4lBSs;g-P8LI?;6=(!VGJnEw_d8X&*C0Unq$+)NjnCh$SYCCW~9noKTyyllvgdB;o5SngrN*A>+XawJ5<~M=7lbU%z2$G2S*oDux>RnQyvmTre|f6bgIg2aT<;0IvI? zW&6aLnAE4?EK;0uHF3k@ia_$O(`$bn28H+4!5vNNV3IPwCDb7!a~;a$y|2iM9QxP% zgVF#RQ$d#}U$GL4ucW0@zjn0l0Eve1~rDy1u^gCa~(o{Lk8WN<=T1&w#~J zz77ZufOv!F(+f!T8lZ z%@|@SP|r+*_fuBHcsEqzHG!(g5Dw9C-g`BWxSTCg~A2H;{T#Yy=0sTM4E9uW9y)?`LC`c zlZ7XxgRL-g6+nbV2Obih_a8yiN2tbx(NugOHaXMptzC^mh38F&;9 zxFmM=L*$B-91SDoBzRiD6*deCN%ncab&;=SODM0CkiiPIOm|1dq?b|C6}5kt0Zs7D z;K|G7v_VBFyP1EW-OIL`d*Qtw+EvV*>;;S9vlOYvrolu~{Az6ex)B`=rR+B|4>1>r zS@ATAB88bLQFX(NE7YZA0B8@u!$z+^jE6Jz%;uR0AqF8SWSgTkE15r{`0J2zbiH;{HmGNAd4=%YG;L~Ix-`=*DgZ^179ZM@_ z!3drtx)m)_n4lM4VjN45QN;v{`POxUHtm+u=8)8&!8>w=lr{>(DIOje^tbg)01IsO z&#*y8P>p|wgsgwWKVpKY=_NQlpi>1;pGWlqyQl2*GUpl>duryt@rm+NEyENpv?#?} z6bgm*Ik9q3N0q;Ou~_K(t)*XGhP<{e@r6lNj~VL(g9TP6$yMr8p9R**N}r^Z6~6Jt z!cVltN8?RO3EEczT*vSOTVNjP1$ahq(f^*AVn2VX#a;0p8NmyZB|=33XNU9g3YP2s z3vYhL3Pbu>QZBGcH{;a3%oO>h+PV<@_%_ntCMnhUvz&T*jvcN=f zQ|wR{pv_VFS7^hL=IWBs9~&$EZTJMU2kXw^@}oS7K?TfX;0M6q`6>!tgM&TjQ$bMd zgvEa#nJ&>bFJ=uX9fogq7U4ALI;GR1e-6_zLB;@C_z|rR`VNywScrK>=;~#-{rC3x zghx=byk=4$WTdZcF$Z@wyLdr~&3B*NQcbKp^tdlq45Qo~4E4`qP*ylQPrO32S$caA z)EqLbK8+9{A{>8kS^&7<5MXs6G1$@(52k;NuaFll*_zicRB1o~dl1Lnu28 zfa(N=wdoFWB~2n#k6cArUql{8Ca}d2G5DVW`|gLr!FXs3wnFgRD~G`RK#?*B3@H(8 zmJBk7swa#=9^;D#Zud5gv@|dpfS7-!O_d(m=8B5-Hut_M6CjQl_#W*@zgaZ3*{EUU zNU4~u?sCkcrJzI@b?yb}+U<3wS2NY3(D@@h9Vl^gO|#Fa+6FR|o&5oh(GQ>d>o5yN z0xT5>F#@pS{-o5k*Y$B!5C`>ix5p~HmS-#$R#i6FYNzGbsCw>bN*WWrcL#sfzHVBB zxGvyQ+pY!)di(xraa!Z&n--fT^AEeV3)P&Xy^1E+idw6DnMxBEmFgj#bu1gW#<~HQ zcA*;}B!ZuH{<72gHZA8*h!bhW2vpL0;M`g5$iXTnStOBXCL$B3Ngj)1Px50Ip!9i! zF<%^IO^*!dLEM#kF>0b4KN=u0H>>|2*$wlA6j; zhk%0R0>Zb3XxK+7AxJI_NR@F8z}6x>zz<3Llfjjca>8rv1NQ}w;Q=uT=^T<)4E9D- zKhq;rS$PJSVMy!BqaiT*K2jW-K!UKO;mrgK?c-_N# z(Pd^c^D}u)2S7=!I>Jld+7A+pJ%E;8%Xn#1{Il zT2exl>2{*V1Gm1f5$)!$R$$92xIATGh$Odi+lR`Bj&UtDsNzQo-DH|EtYW+$Q5Y06 z2!Mz@%kLj_23yZU#Ycad*k2cu?3){5$52d@pLH^88WskE2n9={W9lc?&_(Kk=NjL& z6)J+kjc{ReDxMs}Ti|@7n8V6e0gp1iX)&Ui%8*7}B+3l^M>|Ks1rsB;?$L9U{5s;2 zfkJYW$p{`QY3{#3xsB@Ns1yswT%?QU39CniZsQmkf*VY$Ej)jyf5F1)BRU5KhSi3v z%RkkTI+!?}lvBrCXDaD;8w+`MEowrQUTv|eL$76vurn~t{bq)KLm!26g7NSlG4$K}dm&C0ofbf!)**FwY~kFo4^;1F z%@()vG<2q{bUS~KfyvxIyQ(SC;IKloa(U5O)hL&H6jP&srPXi=Pu2ag zj|nJ<5q%5LbhhRhJEbB?Rlrak+ko}?@&dCc{-5DyFZYBc_`a~B{MHeYT zn@y!w06z#QZAQ4bpmt|P98^el4e1VKX)jB0Z6{H3OY9+E|57|V%IW_OOfzfyY?LHq zZl}e`NDnVjF2PSG!XebmWip8MiNWD4&T>6~WF8`L5u=N72=AL-asW}pfdJFXA`~-B z(L{IVu8x1Z9v9L+C{4S09ti&aPC<@Ip;RatBhB`O+zB8N~r?g_AA_$|+&Q2jonddP%Fl398>_>z<1r#Tx zRc$tqPt$`vrppaSZ&kjjj6~)`{5^&}BnK{)2NQo6&Jjz^@? z5Mi)sdiz5Fai|nFheJYO5ikS;#UN0GA>a^%L8t^FkRg;9iLf#1sBlYB{3QrB7)uPd zn*0A7mph$vOY_@INWJh{WywebDA!3#QX4%U3;R!OH7f>rPHZCvtSLk&fCmptrX%=c zKtz9*beiuX))NldL}?w-kR!g+e*9T6WKckgFBQnA%JOCjA~-3@i;#i^3NsIf?Nq4s z95)-)R8IbBckV@Aj18Z(<|g!&I%HSWc>#$A6?X!XPUSYXeb@yMY`k2zswyPVeL8Uy7F z+lDPf>PMHK$El+y=p8m_Uqxf^d;$4532=(n$k>5fr=ww!Cgz>tl?2K#Ef*D&AOu^# z@MXi;1B;3(;QpH0@XfFsgZtU`5mJg$YuL}eBT}R$+0~xqUszhuKS;~-H5oz@!P|d~ zj;5ZLsqBb{)iOk3f-c5oJgB7vWcjr*11oo|q9#JyY4J9-U~!BJQ*bJ4qEsrj2NmWE z(tbV9q9?$dVX-#xHM2(w{N4Bu-+ssm;Q;1a_??)&I$-O>ckxqBtBztX#l;_(0uL~e ze4sjLz5`9Ur|opqqFcw>bN~~=L_B{7;KfvW^!)NAh)u#upUE!Mw@}c6gX(WZ6 zztYf%>m01_&80x=l7i7&w2S_i9pP*_`r`LUxb5v{JG6a%wCFFWJ>K|%A1B^P0M(8Y zWP1600HX{r!5}zF)4;DxRK$Pl3&Pvc%8IpTltL!t{z}%!4keHx#hIv3=MD>9rn}wK zC}7=%bu}q2oN?M6AYTyXb5FX_9?t;+&Auw|b@~kVWou?7tB3E(n0w+Ik_Y>Y-NYPo z?HjU5*B;LyQ~>K432xXXII|>0U_Z;B{tzAy0g7A=>Un3Pm4id2@4tWR=47iLWHec# zJBy@>(lxYj+JQWj9_&Ex+@Ktn|37go?3x^6k4iJ30g4#QE3%$>D969@0<$Oy3a3b1 z7LLuT&5?gLagLP7KsmTE>Oaw)T3Vtp+i)bBq^(=SNS%pa4p$M(0p!9T$?`3;tV{Vw z&0I4QotPjvT<<_UGpBzvyYR9xX@5q`K!+D)Jy1yx6y1j*)}+{N2MgX4-hUW(bc@i2 zL=ACQAYV-Z$4+S4C;4r5cy!;R41Det%aYAd0WoxL47r7H1QrN%LW4;dYO+vS5>L5oKimD@ol&fh@X*C~Jb?Ny|+@%g+d!6~!fA zioGN}kTI)fad(Na#n|yyP|6k2xA{Ced^>}=7DI4VJE7$0{~0ihyF1Aa%y z1E@jD6Un6?cO!o{j>j5eWrU1QVlF!rL45qgp+^8epY>SQ<7d`2$WxK-*>kVrXhg|Jb8j^JVM2kkBi}MN2Ib0fWUnMj>3N`fGZc!;a_dWcW^e zvj&_T=aqjTpDPRlgwFIXHmnm?(12EK5OyM8iH2))>9ZQl>5o( z`tU{LoTEJ-(y^QL`70gVg6X?o)B4wG%>Ohj5H)|$NexYF0nEIudx7PW^=`ukZm+qx zLs9Ne5G_@A78&$jg@aGtTQt41sC#Fb`Oea-1y}uTIcVVnPauPzB0OLVe{8t;kS7)X zxHrHD#1BhcxQb&h4&w)!nEA(5*gyVBo;rEPr#!P*9>XqAK+JPzp64gT_(wuTAb<&U zCx(A+1}^XrP}+RFx@W@Mx`hg*cdiZMbUG?4+Nj8QA<<^oi&Q2e7r)3qIi8;^f6Ady zlR0Du@CRY|Rkj2;Vda+Lb7Phj!wXn&M*x%en0+`0gZ~zy#4a6L)j@J@H6m@Z88&O$ zL>v<9hVr;FZ%{px@xz15qP@5o&teaf!A*aO9}so{;>w>Osa{-a^BpqhOEZwYR4vFT zHzFhrbf{A%JTW!*gcgw%mB^3de^?Vo9KIu|dF3D;A63u;4>9(WIg^RBHt~9$Z2QS= zdj(8qCw-wfjQWiIbr2kNTx-lYgZftMEQGr(>4n*kIEDG=>rYjYwfxUHwBq+DK{0<* za%W#oO%N*6`l>*4Vlj|=H4j$K*^3j5UfDX>rHP-7iwW465feN0G22&1Qb_`l=M&z& zMQz^j2Cox-=N^sHh^>44*+ecMH_-c18M?*#Iil3Q?2doNM7KhJGqsO9H#KXQ}19r1Dg}oIm%T0_~vzsxqs8 zIP|ULh;$nCO03QaGDhDgBECe+2T;ODPOz-&4tQJs-;m61fluEVKE2ik7? z;~*B$p5~{+mnNTvq;}jf?DhqJRg4Rq9zIIUW&S7oFT>rp2^mMIJ=X`sV7bK8F7tq9 zX*OyztPcn*27$d&Jp9@IX2I=POgpTOe$axW+(42ZQ=8%%uC3?-V><4QjD{?Q9607I z%uy)&1^4KY<<7!u zj6i2_nv~7;ZA4I7?BF15*a7m}9YAHE8xQ;f#89@t^MOt(xf7Jwq?Tac!zHz>qz30C z)!kHMoO}y7zOQqIxR~oE1Y31h?KNynODgcYU{%mWD+O+>}ef>L&>w zHb$_ZoB|)nkdV^ktwJAv4ZvjpTVp+V2xzG=p>ZJGRbYN|h$?~oXjr?xx2Dxg1Hu34 z%(B|ovbnfvvbw-dQ$CW>;$D`G20j-c5u;jqXP~fyZ-mx+HNss-n5#5*hZeDj5^!!h z7_L+RnqeI0?EbY6wWGGH*(}rhI5vP(LTo3c2xv~5oF895b*_GYO5XV31EC-DcD57^ zD^sle8yzo!)uK)q%B!iB;cIBp+*>)~k(h5UW&uf}Q-HBy3e+NR#$1g}@HafbHK%jD zpf*7S1>0pIAo3T9`aU?gO^v|S1Pb2hCOR=DmoGb+yMx*uPm>`I4Av4?sLdLH@hWd%^yHp zU>Q50z+f}dy;pr)Kx7i5(?Jd&O>7GceAvh8BLyflMV(xOjO=px@ev@S1KRa~;{&Ms z%j=&Op=ObomDK*v+`RXZs#QflnBcT@;#T=HR_xjEw{Vz$t6Tf%OE}?LWhC7>@j@?E zjD66>{5=BfnP#wqmF^|ErlZ{8wx-sF7aW%O zm=!0iAeGC1<|*h4h6}17ALx;sjlm8^04^$jE^QQg;jhrt!%kY!i{=Hmf;=|@-|tUK zao>3#3ok^SJ4Yh@xnO=c{((eJaaMgv*jMROpH)`9+U^Ygtj2K zM_?560MT$=KS^MkpIK@al7#_kFCbW>=w+N1t2*cPe9&@T=p-Nhj9Tvtvb|)&Z+5J78R?~lE!Ot4w1l}J|gV}&75tMWx ziu^r~d{RQvz%s}akI_s;O#+Dm*8b+nV)73dTOXssZs49N0r#1?!RT%-hcbDWjf2*mW2a%npm=+;6mm)azM z16Jgf%_yqKb+X8YZv0^0nxF>PABDNO8?EM}s<7!oOUbOWEcwl%-RxY6=U#w@N}v8I z_Fi#X2fkbAkQUE)hSHYFIu5-DCXpNhwSWL-+gc&um~E&FKaLi(1Hft6nMQRzq)bRA zpUB8>Bp1UNV~p?uQUFl^QUIZPb>;hiyr1EGc3rr0=9b=5l!`oWBR30Ye0={9I(7GC zl@isq2qY+TW4Y}_J<0-Go!D9Z4Bd{oT02e4;O?|~`kUt(jti#~*>u)kuO+P20#>h_ z$QUA3clFT`QFMwzQFkwhNO!R_9|K1ijx~JU05u4LU?K!!&G?>ux|>c*VC{E*f5B1B zrQ4gX_pnx&-dAN8Tag(6zeJAKklzh`~4CGHy9W)uAj?;b2l8DjUtm> zomo2PY;DddFLmV{8#0E;Ie+;xnB>#BEX%Silo(O>!rHRXeG<+*9?T zW#i}^s5~Qmu@g+FTQPKA>R*W@;MIlCb@&tUXG65%R)gdMuDf2V;3Ly=p;pdDx*C1u zaji8A&aM9)3v?rXGb@V3>AS-G{>aW96$}dKfx`M-BLQi}BrJQt6kP3C1ccVq&%x9T z>E}&}kWJ(3MQQib4-PJW*>w63hSpB0wAaLfc>Nd%Byx&K#iNps%04K76j=r@m?t$e{fey%t3_fg3>{&Rq3ldI7Y%0 zfx;d=uzqZYgzJylO!!?j_+Nn86%l;d@$$@Wc5!v+@ifsb6FPzwxzN892y=!OLaSe+ zxgzHxF)$)c%yxo*=E7o-b)SAl7#WcW!rDY5FhqqUP4S#~0zBAGOMaBC5AuIIK2axI zKM?Hbb7Vvg1`~Uw1k4^~jh&Al7e$q%HKr)x9WKO$jsu#N$`jrQ#}ugv7101wZdToD zT7jYU{!wk%Y7jqo7!yAV|HS;kXtTlm3$h}xQ~-5ZnrEedEP1)48|4*oFR8`SSCpoJ zdK~ykiJwSHJ@fZurg}>v`@<>ic=@FD2ga594Ru=ov;zA>#E>}DmN_s&<)G@jI3;>vNv_%aUZQ@vYlkaOFP5z!8AqN0lC0+0p`IFkK}iF&Oxv zl>`8PC@vAMbL3X&L^j#1EZa8M{c3eis9SvwSPov5z*5zPWnbo#&3AfY^Jinqg?yYc z`S>YsdQ9^Vg5vWHPd!Hj^>3vh+**uqWxL7@-pxoWikZCJo0ej9RP+c6O4T!bV(H8V zk_{3S#2>g3dh)zG@{3SWiaXN(*3FLxY~n|Mwl_-k1v5_t1cdez>PkV2=K4b9ryXbH)0yDaiLoBZMcx4rp{uo04iFX#SI4& z8qQv%4)t?}!^gqqS0z8UYR+0DX=mP81QiS$14lJ7N=|wr*<=`KMk@h=`oJz3hv$AG zHX=5Nej`4^Ux~sD$TJe8e({8|9>fEGCS)2=F8(u$0}5S=d3AocxxECFVrY-?yvP}F zlYz_Dly_V*}NHtnvq=Xz<=SiU*wPBsU<>46&Q^|(F+Yk?tfsZTaM*kHNOKJ;06GLK$kYe zghYJNU_EGzEUt-JGZ7FMCIk$VASOHqcx*Kj$~ldY>zSdkKACQkHLhNN6CaG7u=sb5 zjR}}zII@)CS~j59T1oyvB0iEG$@0et2?a|Uap0HC7yA>f6Ycb`YG{wnAYgZd)KFf8 z=b{LlvBi*8;7^Yk>r*Uk6}t3@of~qtqMk44;8;IRt5=6{VLBjrRJRgi8!vO@?_F$I z!{V@*6RPjk}P-C#iRuo2(qzcctI>;RVYO4-rPPN z0V1S7!4ZwX~(i!GnYh<2-w#!45+st0Zdj`yKc#%MvnUB=-nA~v*Dk3 z8UshWb$e<3W53eCG+B2P{0Q5_gF<#a&H0!Ij`@_z3~JYR^aucd#_nS^o|y57Vb&x8 zKTsp!GDF2QH%diFt-hI8e9UO{m&h*E1$3Aagc+TtjER}MEy$_B&|p9;dFLP1H3<*+ z(8>ELT8a$6QqV|d0A2nZ*Mo}uwCFPwbewj@)PjkpvQa+QiKKKdW|K9KdW45uoi8HoH*4Y1q`l0?IgwiWRByU z3fZztfuj$3E7l)qg5eeSSk#;0#=`+&L~`0MJlzFM@8lOcfTKBy!;ZQZ3I&!JQ zy1Yr3XLiB^4? zglJ6H9y}l~s?ebi=$wx@1yDAkq%2Co|5}K6*B(z+27W9Pt0}U=iQae`^g5;g; zLs>58gP%KJyOe45&sYR_7`Vp7^jQ`oq_eIwR3V3aABixng$A4Em8lo)cS(M)Lt6g} zI+A36Ar-33$QI0rNtmi@Lg?5dHTNRU&I{gg6|3~ft=EFHbmu{Y=48vOH5SPB%YaMyOWfU#acYkv&@wLr z5m&e?+QKv(XJlA*v=VGD+24{O4(ZOfK)_Xhvb^Z&bg;$j^BSt4U&lo0)>W_jUR;{s z-oHp!c(>MhFQx1W8Y(K`psO72Q+F@O4qO<`xF>0&?d?pa4B6~q5W_7Zf=h_$P;H|! zB;|lwB??V!YYew@&e!kYxL4rm?)`fAnt{`rZC!68CuP+I!2>ifW3eP4WR^r&?1(Xc zfP?tBcls>H)-1Mxe>KRs-On4gv34lu5nCjWTW{x&=L>m*G083IE2I8{~(X-#Z1bg9OlL(DUYDfX6+mqP_wyD zO^GX#eOfSGgT+Beh_pyy$qtF|>856XJ`!Q65^#C*nLhW5C5wdSINQ;Yct9IEk5$+p zV6K`z0~EyNz--+n-(6CtFuo&W!^_n}#Uhz7=dCw?BPLk{=#`Lo}m z#CLD`96@3zCD5=%l!EUj&%Fy5y=QN-e~Agy`K(5$RsnhOb%^Wmn>H!58D6tqtZaQ@ zrMrJU8Sz4k&^}!2ssE#ZZq5jQ2u)LxSFa%CY6QQyN^9vz=+Z{bgV12W(kMI@Ook`@ z6D7yz(E`r_Nv48i@H|!;qP>q4X1N}1!`vQi1~l8m*PRclx<7_Ni=TnqbP}`_mZep1|dQ+V+1aWgTi9$y4KQtFax2ls9=6T4{eRBwc>O*RcaGT5lQo zUUE%8R-pwZdgYq!(j1W)V}<&-a2)butj<*#;CPXP_DdeKG-3k!Nxa z|54NSMW1P;aQPs#?rxH9%X-fYO-xpx{`dOuiK0pm1ysTUs;e%4HES`qJCc$QicThs z9K1g>DG}c8HOyb|vHM|TXCAZc@6tp-!W&L%ebVHicuA(xLAIw@%2IS3LVHehkHT>w z$K7b`;0SJZJqnTa0}cdFNh`w=Ly$fAdki6>b`0ju1jI-R*eSrjrDXc+V~B1_e`Gn+ ZN3X0MoG&qXQAjQdyTUzSPR7c_jPZ8o?W6zz delta 39118 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 diff --git a/src/translate-proxy.py b/src/translate-proxy.py index 938014f..f9168dc 100755 --- a/src/translate-proxy.py +++ b/src/translate-proxy.py @@ -5186,110 +5186,65 @@ class Handler(http.server.BaseHTTPRequestHandler): _pref = _antigravity_preferred_endpoint if _pref and _pref in endpoints: - ep = _pref + ordered = [_pref] + [e for e in endpoints if e != _pref] + else: + ordered = list(endpoints) + + for ep in ordered: target = f"{ep}/{url_suffix}" req = urllib.request.Request(target, data=body_b, headers=headers) try: upstream = urllib.request.urlopen(req, timeout=_upstream_timeout(body, stream)) chosen_ep = ep - print(f"[{self._session_id}] sticky OK: {ep.replace('https://','')}", file=sys.stderr) + with _antigravity_endpoint_lock: + _antigravity_preferred_endpoint = ep + if ep != _pref: + print(f"[{self._session_id}] fallback OK: {ep.replace('https://','')}", file=sys.stderr) + break except urllib.error.HTTPError as e: err_body = e.read().decode() - if e.code in (429, 502, 503): - print(f"[{self._session_id}] sticky {ep.replace('https://','')} failed ({e.code}), parallel probing all", file=sys.stderr) - with _antigravity_endpoint_lock: - if _antigravity_preferred_endpoint == ep: - _antigravity_preferred_endpoint = None - upstream = None - else: - if e.code == 400 and OAUTH_PROVIDER.startswith("google"): - try: - debug_path = os.path.join(_LOG_DIR, "gemini-last-400-request.json") - with open(debug_path, "w", encoding="utf-8") as dbg: - json.dump({"endpoint": ep, "model": model, "wrapped": wrapped, "error": err_body}, dbg, indent=2) - print(f"[{self._session_id}] saved 400 debug request to {debug_path}", file=sys.stderr) - except Exception: - pass + err_class = _classify_antigravity_error(e.code, err_body) + print(f"[{self._session_id}] {ep.replace('https://','')} {e.code} class={err_class}", file=sys.stderr) + if e.code == 400 and OAUTH_PROVIDER.startswith("google"): + try: + debug_path = os.path.join(_LOG_DIR, "gemini-last-400-request.json") + with open(debug_path, "w", encoding="utf-8") as dbg: + json.dump({"endpoint": ep, "model": model, "wrapped": wrapped, "error": err_body}, dbg, indent=2) + print(f"[{self._session_id}] saved 400 debug request to {debug_path}", file=sys.stderr) + except Exception: + pass return self.send_json(e.code, {"error": {"type": "upstream_error", "message": _sanitize_err_body(err_body)}}) - except Exception: - with _antigravity_endpoint_lock: - if _antigravity_preferred_endpoint == ep: - _antigravity_preferred_endpoint = None - upstream = None - print(f"[{self._session_id}] sticky {ep.replace('https://','')} conn failed, parallel probing", file=sys.stderr) - - if upstream is None: - _probe_results = {} - _probe_winner = threading.Event() - _probe_data = [None, None] - - def _probe_try(ep): - if _probe_winner.is_set(): - return - target = f"{ep}/{url_suffix}" - req = urllib.request.Request(target, data=body_b, headers=headers) - try: - resp = urllib.request.urlopen(req, timeout=30) - if _probe_winner.is_set(): - try: resp.close() - except: pass - return - _probe_data[0] = resp - _probe_data[1] = ep - _probe_winner.set() - except urllib.error.HTTPError as e: - err_body = e.read().decode() - _probe_results[ep] = (e.code, err_body) - except Exception as e: - _probe_results[ep] = (0, str(e)) - - probe_threads = [] - for ep in endpoints: - t = threading.Thread(target=_probe_try, args=(ep,), daemon=True) - t.start() - probe_threads.append(t) - - _probe_winner.wait(timeout=30) - - if _probe_data[0] is not None: - upstream = _probe_data[0] - chosen_ep = _probe_data[1] - with _antigravity_endpoint_lock: - _antigravity_preferred_endpoint = chosen_ep - print(f"[{self._session_id}] parallel probe winner: {chosen_ep.replace('https://','')}", file=sys.stderr) - else: - for t in probe_threads: - t.join(timeout=5) - best_err = None - best_ep = None - for ep in endpoints: - if ep in _probe_results: - code, err_body = _probe_results[ep] - if code == 400 and OAUTH_PROVIDER.startswith("google"): - try: - debug_path = os.path.join(_LOG_DIR, "gemini-last-400-request.json") - with open(debug_path, "w", encoding="utf-8") as dbg: - json.dump({"endpoint": ep, "model": model, "wrapped": wrapped, "error": err_body}, dbg, indent=2) - except Exception: - pass - if best_err is None: - best_err = (code, err_body) - best_ep = ep - if best_err: - code, err_body = best_err - err_class = _classify_antigravity_error(code, err_body) - print(f"[{self._session_id}] all endpoints failed: {code} class={err_class}", file=sys.stderr) - if err_class in ("quota_exhausted", "rate_limited"): - reset_s = _parse_rate_limit_reset(err_body) + if err_class == "auth_permanent": + return self.send_json(e.code, {"error": {"type": "upstream_error", "message": _sanitize_err_body(err_body)}}) + if err_class in ("quota_exhausted", "rate_limited"): + reset_s = _parse_rate_limit_reset(err_body) + if ep == ordered[-1]: pool = _google_antigravity_pool if OAUTH_PROVIDER == "google-antigravity" else _google_cli_pool _, acct = _get_google_account(OAUTH_PROVIDER) if acct: cooldown = reset_s if reset_s and reset_s > 10 else 60 pool.mark_rate_limited(acct, cooldown) - if reset_s: - print(f"[{self._session_id}] quota reset in ~{reset_s}s, cooldown={cooldown}s", file=sys.stderr) - return self.send_json(code, {"error": {"type": "upstream_error", "message": _sanitize_err_body(err_body)}}) - return self.send_json(502, {"error": {"type": "proxy_error", "message": "All endpoints failed"}}) + print(f"[{self._session_id}] quota reset in ~{reset_s}s, cooldown={cooldown}s", file=sys.stderr) + return self.send_json(e.code, {"error": {"type": "upstream_error", "message": _sanitize_err_body(err_body)}}) + print(f"[{self._session_id}] {ep.replace('https://','')} 429, trying next", file=sys.stderr) + with _antigravity_endpoint_lock: + _antigravity_preferred_endpoint = None + continue + if err_class in ("service_disabled", "forbidden", "account_banned", "validation_required"): + if ep == ordered[-1]: + return self.send_json(e.code, {"error": {"type": "upstream_error", "message": _sanitize_err_body(err_body)}}) + continue + if ep == ordered[-1]: + return self.send_json(e.code, {"error": {"type": "upstream_error", "message": _sanitize_err_body(err_body)}}) + continue + except Exception as e: + print(f"[{self._session_id}] {ep.replace('https://','')} conn failed: {e}", file=sys.stderr) + if ep == ordered[-1]: + return self.send_json(502, {"error": {"type": "proxy_error", "message": str(e)}}) + continue + + if upstream is None: + return self.send_json(502, {"error": {"type": "proxy_error", "message": "All endpoints failed"}}) if stream: self._forward_gemini_sse(upstream, model, body, input_data, tracker)