From b679f1b4ae3020316c51afa117e9725ee1167926 Mon Sep 17 00:00:00 2001
From: Ivan Office
Please ask me any question.
]]> - -%s
' % _('Response Timeout, please speak again.')), ('body', '!=', _('温馨提示:您发送的内容含有敏感词,请修改内容后再向我发送。'))] - + if self.channel_type in ['group', 'channel']: # 群聊增加时间限制,当前找所有人,不限制 author_id domain = expression.AND([domain, [('date', '>=', afterTime)]]) @@ -133,11 +148,11 @@ class Channel(models.Model): 'content': user_content, }) return context_history - + def get_ai_config(self, ai): # 勾子,用于取ai 配置 return {} - + def get_ai_response(self, ai, messages, channel, user_id, message): author_id = message.create_uid.partner_id answer_id = user_id.partner_id @@ -164,7 +179,7 @@ class Channel(models.Model): 'ai_completion_tokens': completion_tokens, 'cost_tokens': total_tokens, }) - + def _notify_thread(self, message, msg_vals=False, **kwargs): rdata = super(Channel, self)._notify_thread(message, msg_vals=msg_vals, **kwargs) # print(f'rdata:{rdata}') @@ -175,13 +190,15 @@ class Channel(models.Model): channel = self.env['discuss.channel'] channel_type = self.channel_type messages = [] - + add_sys_content = '' + # 不处理 一般notify,但处理欢迎 if ''): return rdata if 'o_odoobot_command' in message.body: return rdata - + + # begin: 找ai,增加 ai二人转功能。 chat类型不用管, 使用其中一个ai登录即可。 author_id 是 res.partner 模型 if channel_type == 'chat': channel_partner_ids = self.channel_partner_ids answer_id = channel_partner_ids - message.author_id @@ -192,17 +209,25 @@ class Channel(models.Model): is_allow = message.author_id.id in gpt_wl_partners.ids if gpt_policy == 'all' or (gpt_policy == 'limit' and is_allow): ai = answer_id.sudo().gpt_id - + elif channel_type in ['group', 'channel']: # partner_ids = @ ids partner_ids = list(msg_vals.get('partner_ids')) if hasattr(self, 'ai_partner_id') and self.ai_partner_id: - # 当有主id时,使用主id - if self.ai_partner_id.id in partner_ids: + if self.is_ai_conversation and self.ext_ai_partner_id: + # 二人转模式时,处理回答ai,以及叠加角色的设定 + if author_id == self.ai_partner_id.id: + partner_ids = [self.ext_ai_partner_id.id] + add_sys_content = self.ext_ai_sys_content + else: + partner_ids = [self.ai_partner_id.id] + add_sys_content = self.ai_sys_content + elif self.ai_partner_id.id in partner_ids: + # 其它,普通Ai群。当有主id时,使用主id partner_ids = [self.ai_partner_id.id] if partner_ids: # 常规群聊 @ - partners = self.env['res.partner'].search([('id', 'in', partner_ids)]) + partners = self.env['res.partner'].search([('id', 'in', partner_ids)]) - message.author_id # user_id = user, who has binded gpt robot user_id = partners.mapped('user_ids').sudo().filtered(lambda r: r.gpt_id)[:1] elif message.body == _('Bc;{)&ilqo-En$z!xG-7W?-;wl0CX7jH%9;98PS4mXz>F zUz!jf{~nx$h3oB)W(q$H#z{uL%jM&Wot%_pSgZcJF*!L|oRgCyXC!IBnEJja3CYRr zlN!~F@u{hy(||c*8YXe#HF1|2YdS-!wC=8{nOXbIY{CBaQ|5zf1^*G5YI)*24&IyG zdwYUxvYE1CqN1XIjl$nGGiF-9=mi`2A+UQZ(Fjg3XJ1nm$Dvg_!^U=J_E{4-<1Hgl zZ_a*X;csgane~|sl)2F^c6^F(nd>Jev1pTpyWJKC;NN>?o-7ypr-`r-8Oo?>{gcRL zU41 DO41sLIG|e>wk6=&4uh{I&NoO*N_y^mZ;$SR z)yn5RIjW@Ip|otBOzWg0`ND)7`SqJBprN5b%(1Ultt+FX6rb()McA%Ka&1um*Qa^) z-fq+S*u=#7^2=bUFJ1HV^TcmStm&1DH?1ocmUc!q{kj{a4K)W57+%S@c~~EgV#UrT z=#UpPckS0XHp-SlL Mb{Se!>o1o2XIU)%O7D%Bm~d?G8>9{2*C)sYn@|bu9@K(5Lu$ zwckfs@-&KWq=Nhr{Bn|dcP#Y^m=3DqYMv#Z-1-sc8E90h^4*Ydajl+&roU^=Ej~?} zEQwx^ck9N=(lXAQ4~=Xn41@aB_WgH=%AB0Paz>OiG>8%;b<5W84k|1x?A^~4m6i^l zL0=0?ccOxB-f{cT;SGa`I;D-SB*8s>a+i>p*g8l@LGhiQe)5FagcV4yRj28E&c(&U z`(OtcQ>3lQAJD(>?H3XdIW&L~)~Mpp;rk2w>G0_ePXnrC51svHKOmE{dyTmjQdB7C zM15?8&zsLtR$QMMl50w+GlkG)b-oaG`P|q*`$qi|{-pZLY3jyKuYSs~R=-h`^o=Oi zI4A4SaKDB8KihuK#4Q_X^t#qY(a~<&J=?pT9349bzP+2@Sanz!d^76A(9ma2+wTUn zd-W?V4*8o`s+F31Zs&!Cg~S{ah2FMm)GA1Kub}7+qxIZ39!Dy_8Z?;1-Y=B|Q!B`o znOldL8&0j 5pfh$Sh) {gtmd|`FCykP!A+`% z)^H)v=sanOK#2jRXONB;7IV|zWrWKokCrJ!Wb%_Jb#?VustW=h_M8LmLlznZsq4N) zeDqjGgz&I1*fko&g6=!D_IOFWcc&kR>`R%8LvzOeGiHDhwHuznru$p%2!Gh|@o`Ob zY<&E;SpGr%1C(~R7|@YTTOiC+qGWf6Ro7=3S{^|OK-_>o-#}gP2d)bugF*oI;o SXkY*!{Uur3_9ND#Kl*h9^F3 z_gZTvVA95m?-CiFzZ7k(>*gT05XaC6hYRevFV_~T(T118?8^P^w~m;%G~%>^B@}0S zyZPDSma`ELx#fg?&hyVzIsC$XZ`ua8&qX<$no~{OGUCZfsP>hW&M0#Ga6}zKMqXTe zY-@N|PDHmKrKmWu&qZ|KZ8qm4bqr|0m{EiVz~C2!)!(~Ep;!Y8Y!L|S%|CgTyan_X z7-JgKZEdeIX)v<{8eFC6Ml(3AeM)g)f{LtkZBkafY+mPDQmu`~)FLrw&WZY<9ne## z{F%(yjeKrV$PjJP=8X$EIX^D@0yG;!C+|W!T?{k4C?+UzvX} z0N>iH!QUxuy3Lt?SBM}c5K+bbi9`_E)||=;xH_(Kgm3miUDErHb `s+2@b2JuVu4?L>s_=kC38~?FjbgY8x8&q+a!-O1*Kn8dvhYuB!h1S?DK%|G^w2A z1bb|AU~HyPiWDXy F;e2^l!RWs_i!X$H#P6g#lu?r%~E zJdPtS|C* zy`iH)FKQJsNMAYbb1>8ui2)ymO$sI^rb8(zWq<>J$Ui7loh~jZX@6p$HC6gt`c9+X zG&U(|U?h>cQ(C_?1~hL;N>5LpQ)=C)$$%S~+_)hn>2!S>yGI#QFa}y%Tk{*vWKECE z%gfWXLatVA!$;0~y40~ugKiN`kUTsWT%PKwCYsp28_W{+!jUv>0BRjNY_$ifZ<2DI zIX|6EJfta6=H`djn@wDeh2R~za=!Si30R@stA>4x$jHFIzPah#_%Ci_VWE_K AXuk#j|1iS9Z(ntS4#27(ao&FnL$ zWVHI9D8+mzd^&QyG{#K4YN;Yx3CH|vWKztL^K6!i{8q6EpB=KAejoeq~> z>8{Fbf_nyToP>{3W$18%Sn8#vrSBOdsMu9PV%SgYOc(&93v6o&rIOpUK<+=9rdshs zYdeXX9 zVn?nK{36f8TrV%)RJ 8nrNNV~~MNik6c=OKwcwYEc) zlF_^iyx8$TfFZg&TzIQ4TRvRn ?8nTNo~{8(vFxT))3L) zv&sE)02un_ z`~w +qB6fjQur;$UgBkG!3P?L8)Cmt%S zq$@jXweXLteGT5{h69vu3Gb|}%b8&H1B0h($L}B>9(nM+qpgmfY}>Jo^mfY2rN;*v zI+{AEz;5H58veh%&74bjTUOGN=H6AokmhSeFX{@+;P_QsrMv6& yg*got7Cp6B!#A z4nv18eyqb~N?wkHWy+xOR(+I!1!>oH=U6p2Tj7g6r3?5(*y(6rDR5GKxm;LPG<5on zO&i$Wf^0_YcLAmjZ3U|fyU%SxOO2;@uz>e7!}oo?1aF_hv^timiwcCiyz`XaZ4@`j zc>j!S{xB=+?TEi#PNmdr1Xb#AYoHem@ii7tmn @n w@k6K55s6L?xcZ<&)Y9Cr+Wz=9x9CC?4+Z!ZFlLmF8edM z7SSIZA?um4w_3&Dt`_xaEypXL$+Q=3)SJyHr4gI4ew@sngI84`te_Wzd|;2sBi; zZaU@Qm$3RM4V#B3f}Nd{ks)-^#>N@f(@zFx D~myyNlBQnNeBPh^I(LqJ#stNz_!>GTJ;VRCo$=)$_IT7P3-^vL5R^ z@z;M+fO9GBCuW`|fgcboq}qlWIZSB`Z#2mPk1dVM^~K>i 8BU&7j(a4yH@ zrn*fNig@{KqLyKi&WPdEeQn`sO`cu UMCnK8yRpsu;7?mQ@oxi0aFadbw#1&Wl(Bux>Z;yYYdSXv64|dMSH^ zBBUX+=QwpFF^;W9>7XP!(rUF+X>{_bLva1EX~Bwz_UoitG)#A5YeE$TTjHvUEdtZ0 zxY~W2=tT+X9Vk<@MA|Bs)jN?Rc)C0JgaYo|=r2Yt@4~`ri$~|M@P-<95B}^daW%t9 z+@s8mvcCHxI%Bq_77R~+kW6uPV9XJBd|sZ9#a|5TLUq*K PYdT zl7`3bU5m`f|7~(S!*Rrr8=*EOrW%pMJ>z(}sLlePMN(;=3=tfQwl2VTg{oJ7JGYH6 zIvD<76*WSziMWkwy!Yf-S+VO0!iM1yt(O+Z5w3&pF{e7mtb)k~7EMWP8K^ HA+!`Vu+KkNwiq$ z*&~Qz^)&ajf1Fi52$sV&TF`W~WDGT$6}~I}VI(d)orZR^5V43bqfz7ef0U8xN>kX~ z{2R!CUt01~#q&kTcJ{fi;g6DXRE>3@<|6AR5}o>K{GT!VZ+RV*$MC06^dZ5cG{J P}+M}cVdBhszEA9t-amT@qUR bC9C9FzLX* z BEH{D9|wQ0{Q&Qn`6#aek~R1p8i8eI$Urdu3IG&Pcj ziF-%PB)nhV4%qO0$yu&a4OXwGy0~d4R8J4L+bHUNp MAs{*`Y4PsI#JdY zO&Nezwx0J0TRFaOz5wsFE&LVrc&+Guu&~{N$9cKXmBIt9JbuMo88J|&+-m;Qj$E*b zrmXOCQq=mc&(HHk;gjV<&3x+-?!i!^u|E!WLqvKeySpe{AbVT=vWW+?UHzfSUn$yf ze(Jp#f(LuiaT(+WaFb^`(Re7^{8ky=b*UWwNuH=o{rhZQ^7qp0Zf&elasK>njtUJ| z4gZB)!MBEn@bgfj6I3St0;EU2xKA~^y^2p)#t}h}UNbSPW|#QfGD*haOYEq!IsuZ; zp%YUN$QfFF($V4&xFaxN-X^~fdfkUVREn&}21HUlIqm zoz7Q>fz807Zzq^f=hQu8i^&bt91aii8%nC}us*>11i3}-XziXoGw9lKGLv`#HEM*X zT!T@taL&qh>n_AJQ*e^A4&HTS_1ONn7Axt|R0orvm)5uy*;57e%!;OQ?HwVtvJ12q zdQYB{D4r;Vb|TUj@esyy!V@#U2YJ_hX|@;p?>(lb-`b4pWM%l(uV5wYF%~=_$AcjU zR6U_(-Z#=Zq{-SWvwjx@XWgcI6JGElXOh=79Sx)7m}9&TRu?XX#c_bM=hioM=Jv3d zF?`lNt-6e^{ZmP-a=w3r hIkPQ0)w_SR6)H9U#GS#og)LwuMoL zo@T8m 9KOSz?!Gw(JVz*CfjLYk7aLUr} {coz57CK!5AcqxFnNrhV>@x=VxO zd&pkrWu5Wca>->UFYO=i`S?HMb#SVl_Zxns2g+r!SL ^O_+p_kYN=sKnclAh?lcy?aSm&CgF-ca;gbTruY*L;l;gP*G1 zIrx=+-Cz@)NK)36|0`V(oK11WAkAg3jknUuHZfyTHPVEeLv-t?j&JoVr4A`a+FvQA z{$KV!OP4Jq)a4?h0d6lq`7>AU4eOI9#LG%@(mHk{Hs^&ZMuEj29e-1)vp2pZ=%}H1 zSxpA!ewLOC>F zaIc=4^u@&>Rz1)R()~_aZoKc^x|tMe&{CWzAZfthGqKfthY$B=94G% Y|Jr7&lR#P`ip4Jcub=? z?!#-@fv9P7Nq80&VD~e#d?|BOO(w)eZD99^7CZI0B#GIUN1Eb GK_PwGesgV~Hgvxyt{m8w*~Csi2t`v4m5y04ND;pu zfcNEPG`W}=$SVd$CGJy{5b`+E-LO@bde*|o>sc#NA9i6Hs^(6mJb+FjXpN_iU4360 zuz#*CpW;} qf^o!D;9`YG6y`NGlclI9gXxcyc9v)X9!2ZevqDIEH$Dum0- z>b5nQcaqDLc!v^EmAs4F_) sFaR^hU?Y^U8##zva2u>*c78ZjxvgVkA z|A+S@=;L3bLESt(cjKE*TC{BlS?h<{*QqJ3T5`eY8Qiw9X#vU 98rbp_T_2Y=A5>q=kSfjq^vQPv`afMhnnnHdHRHvr-foZq`7& zwp{tZOMtl>IvCJ{ LtmG3-Q49t-~LF+EOC5E&^;^8zkk1pI#no*2~}8Ikmj z6(I7TzrQeT?7Ndtjvlbf%KnpKaXTiP6B9>l%l*w1?`TRbp9iJVfoJ_R;z|NqaL4z# zQb+$9x8$yC)_NpuJ~S;PmNn>Y(Gb1+9Kj_atEi*6VbbNV!VLJ z)8<0`74EyoUd|n`D#JNykG6xvs-2$TW0z2vy@BPAK$ceWa(go0BYl&)TK(rew)F|O z`{eiC@#DkT5mL|E@aPU@OUB-dn{O9 TTZrrEeiPg zS<_P)IFwb1p (&Jq7)Bbr z*;O#(g>0qlPfG=oSz6`VVWnG5vV1z-&{|u2K2v$1xFG5CV_Ea@`mZ|P67Sg51SE1s z_}J_?>sLl8*Q5E=LrGM$21srA4}onIg~re-9K!=u8d%-3C+sMBo$@t|U5i*vUuZeC zkcC@r8NmZ3GiViTeNT49V}hVQrWs8He05WU3P9)pk|vlaa8J!|HHSym zvafBKeFyp4F+WxnCnCDBAET>yg%Rmjf6bTQd$%F^*p&u;;R+F_g9wfZ)UXyaGk;|) z$|)+@t4Yb!P?mXN=B=%1mE8O3`Q-iHbQ_;tifObHxv5YaTG J<|`7%{07ch>HnHvut_{0g$cyJo3)6hCRV&N0+2Q#_P^0@ z+q}{HG61i1>Ev88Jj^KESx32Zj|Ph6=XSSQES*Hs*%+tKJ?0}P^GbvJSIYL%b^4=1 z3O-4Ku%-pW<6`|)2S#kX_`U5P63S@Sx8?XJ;xJ>$&@Q22DJH{A&d)1wK0CRQPu=O; zZX=1i`OHjbi{p>0zl)#C#B$ EJ3sObB4&-T`NXa&91Tz-ao_HUQg(BC sxxJVWx;r`5T%BGD{ zCO?3CueOxVR%Nmm!_N*3?@+P(kKOsa>jq;zNr?huy!L^K)2I-mf>#1;Y5HEy>l*Vy zpLKv8FVWO-cJ~aj_=AvH-&mj|2KOz(1){<;2VQRG55d#0xKm^KaX91VzQM!hL73?R zMI*l?GJ9v@Os&6}I+0G~;QSKYfsSOHY89S!Vz>#Fqf1MKR~|)H4EkSv&DR*LZzjke z>Ky0`3zCCn-9L%Fzb1O1GUe7R$!$q5TE2Sy*R=}d>b}g*aWmlP=XI*uw@lAmUR0D! zgvZ1`^XZ66rJ v1Kd3AtGX{4teq %^a`{8 |FkBpQ_AnKWmvB+ n0X~_x@ny=|f z@ctCo^cJi8I&wiMqk#p4^wnkqY%6$DhsST&1ZnlVAZQY#mrIo-v)8M|Upx0D8BTOg zZXR7e(@fZbO4}GrV@ZwNpT3#IRc1Ih-fX?YPv#l!HqsBZm?Hp+!TN$R#CJ0HXf}HF z+HO(A6|k;7cQ*&^5}J;)5%AS0iMM{-zZvtZK=33M_;c!=kXgs3TLZGFbt)EHrVRYI z|Fyz}PUgzTFLJlmPiiUcTB70Eq{!~@8&Mb(!aXOUuqx9vH8!jv=(I8-CP9L!tCNUa zW>?1IDvR3n0 0?URwi+ 4O7dSD0xzFH(( z_BHO@B2Errn#>lr{w!cuzHC?KSqp946_-rNRq6OgLhz2J)l49;cAS*2;)?IMQJ}hG z-Y$6KPnX`&0@oEu7|)*;r{y)faR&iPf(hGr_xWa+01xM<6XOj)gTORBKGs`F6agT? z0+$(R2vWw}cHEqQ_Xd3H^U4~rEVbHL>s+Q@@~md-Uz*h#mxzB(JYP680&O2VzU6-W zIhtSTvS@UyCrFEQWW9#8TJHor%PvlSJ%hi8x_zk(-^Sr|9KToUk5gUqX}4hK8Dd zX}y|6!(3f;lRA^n;KqVq+fh&v(Y ~InSPg{d-IZAq&BxGw z+q8_VoXUah1)}G2MR%ZilCQL5W!>I%fX)kgUmRhun#4Q(2ei#3v(6FpEl=Q~Yy0LG zH@6N3`Bs}^j%*9WjK5ylmi6>}5v2IT9u{Hw@$}7Bk-GKNFCFG+%8sB7i_V_T|2XF9 zQJ*3IRzkI3v+NDKuAEJLl!V43@XtpV+5TWFGo`R6wU^Wq?hSuwNlGFT?>{4wGown< zhb2?Qr!qM_J#XYl4{-suiFgmk?I0oXxfyyqg`jZ6BXfV`)V`P#lPbY-dL_U$)Z74J zfgEv%&IpHeb$-(-3EzEYK=TymqMVyjY%cgTE6arETOL+VV}(M2CSIYvV$pka!MQN- zZwT^CJgf1z1jFs<=kIt54`A%9G$>)D!VRP^^>@GU$OB_T16>(?_FCZ;Z!J3CC8wLM zqpr`;F2J~DmV0}-RTS~@?+wuHEq`z3RF!0Qd)*dzy~UG{t;-MWWPDW5wY=2Cl4 gG)IYx!T3{7X!s9>ZxJ&=_j{dl}PjkUngL!Mmu?E8(!1VBsWU*cocQ=`oLV+BLY` zd1nvZkE*6d+OcV+8q9vxO@j@)E-O%_d=4WYbNPyuJeVV2Dt1^lU%VSC*=Q->ua8i& zD!04mle8MT;A+-673^_z$oD24l1sry9JZ?z1f|-q7U mSX!;Z?`e7he-T&l1O%a#~a zM46TECEH>(e7;2{mdCOXnnNa)byX C%M>!M||{tRb&?M}Gj(eS-NbEFEvckp$Nr;4 z*wkE6?H-HrVCV_KG$Zdt<1^J?&ZHC{b{G6R2p5FCKvs$-q2M2WJ1?aEt%$sp4dE!7 z@9XXD4FWo8*4EY`1c2<~;wawsqN^w<*!I%nb5c;GF?{*|2O0kFXvZU3xGDl~tghng Qzuz#F Rzg-7Pr5-7UDg4;BcrxNC3-?(XjH9^BpS@%{g+_qJ-McDv{H z+_T$#PT%UKE~sCXP%()B%#MSTx`s!_nU1y7DmS8fqTybRdh$YeAsSJy`}KwXVDd8L z=_8|e&>6&5dYm3l;lI?V7~X0eaiR?<;k)dQ_xHwUrMJg0mu{wKx9!EJgT2U2rUSN4 z`Q*_fC&BIXo1?zUohKju?5LufubV{C^G~Xomz&kRS+uWBGct5QdEJamCoK3EnqUvK zCPi3TnXaO|Q8CeLXPz%L-p_Ju+}nxD$~@}3=DmEGK_B!(L|Bc%_&WSoFcetz&~mAK z&XV=SuvUmDChodpczs_4`;1SctVo3Zyp(!$!$M+zPfo!!0@HjwoM1#Jx9FkAki?Q` z-5!{@Z0-!u_6N@fZt+vNUW03YcpL?N6Gfc)HN1vGCgd5DiyGuXqAU>U^CttMOyNea z_ss;VMxqQ}jTJ!(0cK-f+{|N#fVK=uorr2%6tV4H9L?F0#W=aAAUZz!^1EN9H=dmq ztztjEu$K~XLuY$4oLC$m=(q7Bs;;G|pL% *SXnC%ry!ATJ|*$v|~S4r_16_*yd1 z^qS984gbr;m;TE +% z;H*R78^tQuK#*F?i+Bz$xts72c}5)3E3_F6le&;hHGYq}+w8TDBF39h0IHM~O}gza z#*^eDbOW(esaEoaA44bg4p^Qhre_D697D*3*Lh@K@jX&?(oS*-_~1)wICoY0w9|F# zx?S67&R3tS=DPPChG=_x7sJOEOh8 Yt(PoAq;Vfb- bp3pXY@0e?4(Z69{d|RVREj}@J324%@SOp`wH$-fcsm8=e!_;a?1Yl`~ z>HBm598{yC7epzg=`|e7@jE?Ve^E9jT@B6m=An4RWk(zs d;h4fS1IuJI zB5@ONywuV>LDGxBT}l*!0RszQazFhkI)2j+WY?WrKQA-<0auuAmUZ|-W>;E&^{(z7 zu{~HK$R# ea(l32nFq@2;}QvHspA}`y%=o@ zuV|+I>RsNwYS!!HNb*)qt+5rUC@}e+2N9Jc-R)7k5rKTibM83Ae;6;TN7$MRTxMVr zU sC00@ql))0f&m0_+c}qcb+X}(Uz0Q{>o+t}h&?v%GyRCphv5u4jxRAvy0lh&jmE9bYDMx?fI0p$nj zUH9sdz@HJ7WgZ3W=+>|dEdum?k&WPn_SlzJ!t-Lp0HTUKENGmD?tKQLp!Ch0cRhFh zJ+S%>>(wkpjTyVEaYa_^l2ypc0XMN9or`^-3eJan$;R5wHqfT_)vD0a4PG&wKqGBT zhI036;!1mLe6Q{OeIcEVHhnlBFb8p8xGskRwW`%(jyJqMH#FRTmYR%#`5<~4bsSz- zovxK+sG54fFg8D<5LEsW%NMr_oBYj0$LMxCy27@Z))wh~6yN8TKFShrX#&xWadg(g zvS@Cy)Ot{Z&>H>*It^$nYm&dU2Rk27kVQlzu@1xCujVA zsQp*0Zw_;*?S!PKbehBrC?K*#0TL=ZPJ59iKIjFPdu<>z8oJy(5Nr)+$HxWFr`3NO zkIWe~!TLW5q~u0!g6raS-uJ%vhgVuz6vH1QL`wlbHaBA++b^2okIno2w5*=p*#ieO zKFU6Lr|;X(WnIYW{?nNMy}U8r3Q;rTHm5@bkbr@KN!iBF!YKiS$F|n0DxVst_rnHH z+U?w9z(n@`(cFv$E+!(77|sb>;iGza%m`fR8wH3a+)Rb7ruMf8=Q8JF&0ehOk2Xa2 zc=3Bw;%?oVh;_r-!P6`^XZWh33@11=VmxwT{|x70mZEi?4R5ve(~5T^_xObG3bLFL z>+^bgZ|xce?GM1QtM!B5osFu!J)-1D)7u{&{F1a>>X6(>6kNOsDMBIB{vtjO^Zem! z5AUMhjyf&|^Zc}(hWcnKjmAGnp&yYtpn>J$mB47w-Ndj|3*#NRju*XJL4^w`5`}l$ z?Aot4E~5{GrB0-m=z@+qN{&DGzu2)Gt-S@B>|6<+gMR@W_?D2)y5(nxlFv;ot$g@M zfBe_i9p_i_gUWdC`c?|dt%5KfN|r3HVK`6f*3YM^?`Uo3S5?`U 35j9BCY#?MeWZI7h9pkJP6 zgpVh~W3GXHVpDL&C>LHn(eS*30jbolWItK3*Aa~pyo19IO>s=HA}4-CP4KS0uox=- zn$+;0Rf(E$jhcaKCwHmZ6!bvM+!ni2sUMt!d>jJzVdwa*2n?_kvIeV$#7v;h;D|mi zSqT^`*V8{5KNt=YwjzzL V%YGHs$EkKNi5>wFqGj2ckbJ;jcbMhU6F;ELmsHWMnK_N^JxyGmi77&2>-f8Hm2 zmunL!VJi@X*)FBW6%^9^ZQ@mB=U8Q>yZuj1A$S5&Skgfbx{_V0H{zhoTP+#06bJU4 zVbaV5@?i?Ei`0!64ML$>4JM0}?Uok5Jq|}$K|aOV(pWx>K;J!J=_#kBKW7E(j%Qa9 zzxN>-Z0JN4y>isHaGV);Z1^%ceoWi70xS%e{jTo6u?^-6kL!{q^(s?0on%_OT>|bi zcLblXY9Sknf+UzBKsKO{+otXVe}~^eBrO@1v6owDaRg_uP&=7Sk=iX`f)U`{;w*Xo zb*6X(5jBJL#&|Jgh0y4M)RCJu@hNIBVydw%_zvuJm4pyOSc=I}{Q~ZI&*8UeNNgrx zx|M4tCmBX5M h{ zlBUEvU=v|kp)UQS{3oMV-+THRqx2Es_nji~ZF6iyL3&8c3X9x=P)9tg))^dX3mD1K zTE-c1epav}+=g9M;y7&~fw&Q3cxg7kG`ku8w_;pkgeGgm_}k2e33cPDskYXc?aD-m zBW7p!_RVi}MEEU-jBxu&&9*m8P&sZv!I+~*-+b*JuVDq%{@^7+)HY!piR4)Y7c>!M zk{-OCws3A}u=CP4%-B;H)p^dM$sv46S7s?vxz^DbRh&3ePgvE&T!th*>cT^SmYTPB zcGo`*Q7OH&bo_39AAU5X<)z?ElB)|Mzxh-)aS%n@mQYLhXQ6;C-B_DauI62s@fVnT znlB_g*NfxF?`G3RAhOD9o=js_AKvd -~%o)Iuj*zC8V6Zy(>rXF#JXO?O0P<0y5@E0%>%LFuyqx zaTB|lNqt33)l7Fe7tK3BUS-@RcOLVzJ1R9+j)}YEKlle-L2EQWj*!g&kh8OeECdl0 z6$d*7suqRFCzH%tRhy$ZysAcJAAgtd Cb(tCmh#xL1 z9kGnoCSVZwnMA46yI2I85$tS;st@0(sd-DF(6N3wpvme2(c!n?f|iS*5QEO5?DzZ^ zQGauTIx~2~BpIRg12H@q4$_?Y z! zAZ30p*;4sqo)VQ7)sWHfI9B%ryM9DonTnAprKx{0lR~Mqa5-r1bWIwuXgL@tIb`R% zSsL(aGcFp{cNt%q&bLMoaZ^Ql1sKmAhGVB}Vu0JU1))F*RlIwlbWwgYLxSYjKbO3A zewr@b=E^?^FN*+vs9+ee;B9J|$OnV%aFy+o=CyCkO$>&I# fgDk z?)QjfHz!I%Qr0uPrvksuP`2?HQ*z&b+$HQsEc@J)?*CraW0LFBNc7O11x!_CP@f{J z(QO t z%gi03OGW|zQ_3<=W$j3&W_Gu`CFrX0-Zse@XK>-UVXU|yX>o49JTO%mUdX906*g{c z^ftJ$2!pZogN32|><1GaB2a1_U &BmiPs19zh!&5NE65Q!v;gwo+!0oNCM1=SgGdjKXvg4+Mh<6{lY- z)FIax|LqcFyB}oQZRr|_jvb<7O6ivssksYq%Rd~(BBZkF9h?q1mLcX2De`Cx*?D1( zsc3tN3z?$Is9_kfT^H6 0BB%S#{%PHV){p86=$#tH zrRdC*tItU^L`)c4LsYQxOe<1ogmm_9wKyygjuC}+;~`ZQj`p2Geuzl7oc<^GyKx9e zGV-0HW@M0$4?MyAm-Y~|c3^YlIE~^#0Z;l3WtOxyg4T>#WFl;L{E(c1#Lq-BUN}LV z+>0}Qj@u6H=| VTq}S(=pXhNU~4BoRPBnB1(%5o4`gy86pRhI6x+e zi$WkG-PZ-TT3N~ -V&IBF5ADG~uvm^cCr&v6K6As?>JYB{{HlT^%H52M*!Qba?o#e&a zcXb2qez1N!KEoxLv8!#dZOdtK74A=3+-#j{ITJ^C@uAOrhNz(;3|;mChkh}Xo$O+C zGKsh=R{;C952FWI!* vDcCmL2mJ&hEN6_S9Dv-^k<-H8Ku8L3?_j wcno9emD9AfAAz z_EEluVWL+*X)UDp?HhpcLUiuyi%Rs+;ynC`RROll6a61XX~Q^*z004v?jL?*?>;lM zES8DzmV2@45pn{n4>FwYL#;0lCie&N>Z#JDx>9rzbrp`5YL>3IeL8HeZLeZ$twhaS z*%>yJRIM>8m^{t$8tMBa_m?1xHU+EiJHE>C3TD2PwSFYE{Bpn}jQ|Y$ @(s@wVd zTguy0K8N89?zfo{vT|OM85C*j8bHVl5VTB{(>5b1FPXu$R|4Zhk*C9_iqOAyk%*du zA|m^%f>BPY0g)MZQBtT=TKb4rHZN;uTRAuDB~!KFK!@}Ur=HZV@&fq^>g!3k;-XL5 zJ9)>iGos|^!UZzWf~@{X{?lAQD!^;g8&|p1->j4EmYFT(uyOr^9m~b)@GQ_ugt^!6 zvYp%Km>vO%B@<13aiF@g!&K|Rn%O-UzQ&+toKj>n`c>>_h#Mn(zK&q#nbBnctK8p& z%dJrAIA~KXw%C9?E#ahjnMV9Uh?+IFK4(zA$|zhBtuYX-9J^F-{w_|_M^J&9p1>e^ zvX<~rBOZ3@u)toR_;WnTqzI-!gNCl1TQxD@{ICF96?EQ}l*p~xi$rG}txVJZ-(ouG z18D7t3t1GJ%($O9@(H35r#jGe`c+@ryv^StYOhGe8;c`!Z*}|q?*_D?zDjO*KJNRt zGmbtA0S&84F3q3LZ*A_-Z+DjG?7uI5@J`3i+i}UaKO?Kc($W1(4P%~s62*ePqYYho zh@&h{XEkST6^e41uEIK4fjh#5afT$5#!{f?bIc!Q#5Ygt?o4nV_#aF?NRu>v!)%S0 zO#b}Y74Sw$N^glI)KmoOt#Fj7Lke3%k3c|VCLTBZ(d|~v{abFr*625pv@piyKBBA$ z(wBI{(I!qsT8o)_=joOm%dzhfg^=WNR!tg5U^254{JGKTcPq;lwdb-d*r;-R2`-UQ zniztUhZyK~b(X@H{JC6{LJ)>okz6_p%f$`VVMGtot!=en5 F?kWdNJHFW@r7mrV46Syw4du?-*p-n5)OIHq{% zrG`1t3|>(zhLXL5Un5(&u^Maj`nVY@;Q+IM>mblXCY>l4e8G9zZQoR>z?92uWPoF3 z`phsL`}0xt4@~1gk6I&5%ILRA6+qr^-g?GfCHt|`Av)cmpUMHVqb4NlJtVH@kuaR} z9Q~X1D@B8zcE!C34TAYP7>+;zNwB(&D$3q)r9-=IOC_x|E|CSsq(0mR(a`kQUAt)k zU&b?Ofuj>S&eye42YwhN`9BZc@9H!n?+O2Tv%K7?jh*7(qo&~GupQF?Z2osnX!^@a z#V!`*Obb%_#zbOT5>q=^7h70uV+Ae5C%RotI(ugwN)Nz&or?9TonTOgZO#4uP}nd* zQl<{YH{$q#!K?Vi`J8!RbPhPkm9rP?M4@pK06R5MB9CbgbCim;X}plxD#I{{=9{tR z=i6u0@HvZ+wCagvj3Wii!))IPhhA}p3gt~)h2#5Kh-$t4dq{Lc+f#0MbT584?PK3R z6||uYaxM4foLhKbW_F`|{M*D~FgM(tXC{-i>K=xs!phKfxSnyWd6#gw=9n0Ey`Qq{ z9)QNfveB)&nyIe#*mbI@#;dLR!|?tJbPqw3VMXdPU(c}AEbRkMtk>Q~68nQHxTSsi zr}_>q-P6#LSorNW_~jj6@y`aBS8h>Fsz)@c9RG{RM1+^T@rBdP1lv{^WmOVHgWYVn z8yJfqq0cG7ne;oB?DNdggYg;Nse33nE4H63nG*ec8@3s{c_^5UyLoFjFn$wJzQZ)t zfrsZm(-P2RxDyCU&IB=OQR>QbGO}*NOECTylq(?ie@qhpnW7lETec3l;`2UDYmqFG zr05m@EkoecSLggM7~24IxLnhJ`(VWOOvQPM``JUm>V%}-)p`jMyx{1GjHRm7@xkYo zF+DgMTYwJvE5-YIzs)$#!vg4_+5gs_!SG4ek{BxQO57Qc;0d%`bB@y>3mmLz aAm9#&!vS32?SYlT=gO2e_YjHfcy zwG%ESJ1bj`48Sk}r4N}6LmpXH)KhuNLUP_~a>=OsgE@?k;QGlyE|M+kyKl*WB0e3Z zWu_ma_Csbnkxr)vP!%tGVh2-a*KnvDHW`OJ9?cz*w5<`kb7QTvaHwo)$E)@|+1TaG z+lv}LMt;!_9UXs$8tyR71qE=n&{g>BKWF>+UDiezGef>Mv(yngOw`x;_jpRw*7T5l zagi^#V6kH-oW@@WPGpk7lx-G67r9e^=aqvh-{bA@m0KhfAg9!2kK+}w&I`jU)rKyt z%}MPT-l+q^7fI%+WljMnT{}`x_icZ&!#DD|>b^BlVhxJnEa=xmxL4yoUi0~8yf)Q_ zKwwMAU@H}m3z(Kzs8=Yx>n}~o0KR!K^|oQxKeDI6ZF8X?7SpOw1Wl0bf<0GK3tJ`= z7ttcP=h@?t0O4%opMLOl$7g4|mkH02v!_cfdy#0_z+3zN+iUEJ^L~8>kBQxIk9NPF z`98Mw(mV2dji}s8DpH|DVdn$-Oa!?~H7Ogj FPzj>WmY@FFdQR3@J zpC3IEHbH%sEA0cBiDm9wTim-D2bVY;X$ec#`Lk2=fbh$|>fFVDLY%)9uVejA6K_&V zK2CvEA#giR*6VB7KcGQ<)c~E-8OhwrSnq)afA?5>Z__81(JBaK4G2!sg*^P9Y4fq= zbl-*#XU7-@bkBRHw*`eL`5ja{E`9Qt@m6|#3wW$qOx#$!s%Bn~h~6@9r-|N=mjU77 z{G=abz$e9z*@7O %w)Qe^PZ7+^FP25xxKiCok6C zo*pDlTmB)c%x?Xl#`fb%I8#z!+FbO{ENIZ{#mD99AnYWejakAC{AoANY2?79&%i?$ z-sTG8jyKEBS;*+!+(IlnIUzTWeLYxBx%vTM<1)3>CG_?XgRwI#Sg&gAeHDRycWGAK z+|W8=mfqY5cQd2AsvDEN{kqBZ!Gh(zp4cEgKorm!=D4HbB0h()`}SnvxjF0P3d7JT zmgV?4aADZE%+y=scSAqlig`ZwZ0qryc6?Xkjs^`J2^dW2KAr8<8psg6ZPiW~>}LRU zn^!_cN!C%SmQkur6+Tk2bseVPA8YK`P12ZJ EP<#z==#6ZuTqZ#27BE-BD;J$yg-ufi`y$qEDPB|iH?|a zTj&ghjMX(r1@cP1LUhR%NHlsO1FYjfD4hZRO8Y($lwt;DsM;~44&cZpbKN&jFyb96 z4S~FUIyEwE%Ar7cI!&j*N5+VLZ!h$ey}{M__|)hpCj4q^UmmqBusjh|4dIG>)qY;C z*W~9cSZb2W+;M%k`5X^q1zv==BDJp+B=tV^YQ?H|x=0zk{p(DhsTF~5yO08O9QNt1 zg+l8pn)am)1sCd1wH8+j#6IZQcb+dcGRLDWVa{j5Pw1E;_5==h1dN9t4R-K%z0d65 ztuNUU>~?J!MjkPxhd~%)jGJgfgZVg%{(Ni}6%I|Ce`mR!sW(cetbD`N&sc8IY? JDX${KzV)2^OLPXpY CeE>QUy!YD+k79yLfGY)=y`y>oFH6t-m<0I-Np~R{3R>SGs>q zMq+)p1!l3<()A`d$NMdAO#G;Cz%&_smLRD+12|_BFE*+LrGDLwZ*8Q~tNn7C#}7BE z!gly2p~GWJ*Q}Lbj|m*FDgOYy*;?#C3($32Ewr`mw7p{9V%*A}()kFlaW_8 d zq3Tyq5fs1n6UDo!a*tn${`WA`JeIlm{%l{4^8N}txXLnJPFeo@A8sOF&!XkKcKY1z zLM6B*{J!*#uBD2qEG6BM*x#coxi3gnibFMK&5zvH$QI|~)-phbQ0rXhp#SgHPM1eU z3AWAX(@8r0@a8H<>p%qKl aDnPe+>R4n+?3>wVb{KoIgDq8Q_JpG{aWeR7;un-nMV3Io~zY)m~tzNZv@>6 z4dwBI42^c=IjIH`bfymkwPT$K@jtTf87ggZ6~~z3S4Dx0YO(gNcl`_>8CijJc` N1AuOwi|ZubMYE LdmQc|S)oBJepX;FSLijiKe-3&<*>)4SxNRZx^3`t_pSpPaLfdyZD`vOHUhRvV z*r;xv87^|++R|$ywFE8j2CP~bC+leb0@d;Q;GrrGoRq`R(YGz%-65@LS1K8aut9Ry zgaA}FMtRqdI}1VE#lZ#roDZ7QJvWWVe40Ks+bnw2T+3##=`Txv(f)uiNtXL2Y_*Wq z7OU>7i>q^uzFy-kFlIG08*PuX6KOZiS6NuM)<%GA+ =!JGi;EhBbv^#q z&3M;2Te!a^M~`fEGUxFIh8r_5uJ>jGMFjXiq`-$_z|)!L_}4@Y2CXCvsQS}$rsHY4 zE#SE{FBG{ro>Hrxb8ZK(n|%(K?f8S!?aPFq$~!xMJ+y3^amTRgKFtD-Q4SVc73)Z} zR(vimcu4qP(mn16eAhacm!Jt&*00_0Pv?(l1k|ezZdBuivWtdIlo`j(MxZHZk^!7K zhJwxd02tmA;+(650gNE73T%oEk8CdeFq^g_i^MvRHT*@>NZPrZ*6ez*UwVzM(j7~u zT*2C1M>1^GwjbAM;kI6fGg#kjv3tgJ=!!tS&5%R)ggydOF=&;q%7AA0VdSqm3+>J^ zp-pL_<76=1Z~@DO8=7Zzd0?CIFi^T;_tnT%v+{v=>BJ2k`FQnbFV3w9J}fmsE#f9& z50~2XfcF_eZWV|(DlF-jWN{)qyo?5I6(ox4$hAOwt|cyeCk CPFJ&X@0V*G{=28x1`7Pd~gLNp^w} zGvISP(DD}3vAoEKKALn&!&lqdR&68>JgojW)qWAgm=F0SZc-bfXE|3)MWkaxxSS)V zt)7T+qUmzHh2*;OgB6!^061NRPaP{V)Ncz`aPbVObzu?T3>0H%DVnRd{+3M`qYxYq zS>$hdTIdX+% y@Sh|4|NHWfO;S@6xSMF7 z0}whUWV2g2h6zeOD19 F6(+JOA20KRfi6wJx z^Hpxuji_bAOt^E&=YRJ0Hg2+deA90Dz;g3(5DTp5KLt ! zKF&8ZmKF*r;yX`9H*d Xn&ld2pQcCSo3f^kLX1#R39q_yk;o_l6?0+mQfxTUt~IEbt?Z0qNUn-(FtHC z-PJ$e5WXeWz80L_(AN2W9k7MHbzcl>cg^_#$j%T%M|D;j@P7InfNm-uW>;QL;I5CD zY+qKE)VU@4o@>hwRt<2i&jAc;jEkN}&5w)QY}Joy<2UPPtaU)-L;8;Ez~kks@tX=$ z^i1SY=huOdi4Wt$?5sJVIn@@fx~EaQTLlHa!qy+_4{q{3nrCn8p?VaZg++i@X;<^g zJWogKPW?;oxW`TERJT=T^?P;p`%@Ft0(i+fC#&BO|6z9Y55x3@6|(tQ%R?asvra#> zw6wR*`>eGd!o~Wx!TE_=^}^02OTCh0$oOqIT15XEU$E~^I}0?){|0KMy$%VHVe$We zF?AvTS4{DShETwX+72`7uX&L};v;_-RCh3fC4y787#CDtW`ZgL^3S&ipFi@_m $jO(uthvFBmfz@tNxG%{NhGXFC<% zlvmsrxV%vgN}HcW9=}?~&jAD_H{}dB^LL%q&sHs)6cq+~f)%#(x~*qMt#v6C-V4AT z-EpVJ3c1OUm6 w+=lH4|x@M7O)~ z7n(Pf6+T)AVB9P$v*TIl$CTvfkPLJ2B `OEVehfH`hAX&K%ctQNR;Ma!*hUNXVYTpRX4%t$4O}wKgy8w5S|M=exOT z@B8+gcOVo7XPZfLpzl0o5MfJ_0qCiGw4>#vcbRd-zH4XA*)T~1bLJa1z$oaV =7U2Wy2AT zYXKzp?~8Yhu%$QcZ(M6a+l}T{Zw3MCAg4*Rx3`*{x5TiEr=v0jT9lI6JY_%mX9QbP z7-hK _(hoI25) 0+J&6w0SiRA5&+25f@N1&yxpX-A$ik7 zL|lI1GJpHU7ypqpZ$5G*M8&BSlwHs9rt+jayQxR#_Oc6cWhrhb;iW=EFXuII%1Bs3*keu2;m{r{E _dr4N1doEQaHJoyziJWBS}Sid*T!Msza^3Gjn;Du1@**=$b^%Y<%byWunW#N72s z-hxHQA6d`xK{UmrD>rY;4pAeToBo}RIPV)NAK66d;Jm*)*H{Ygl@BfvrOjW2|DGG^ zpy+#stq&3>XTd(3*!1vU>_1z`r_>Jm!d9H514?#i_he5O1IJlud~OoiA6CxeVm)Sn zyg^zT{M<=*DHbl|vBI3eYG?~#w|l`PI+G0IpPC 7!VHznqf&oXAeJu5s3 zAXw;r1x2f4-SY67|LK>BdN-*ruzwA`Lp;eVN3bEiBUAzMMGSNV>vL_n8wiA(nLjL7 zWbm60;u6smjDQ!p7!*Qby(w%|9h59U`-5d6PH|(=n3sOh>@eDCS7!PHcTyE%q?{TP zub@&__G9ib-Wbv*i;QzpWSLo#^oM)6z+BcF#;v5_)Bve1;?(uR+KtfPO`@RAY<&;t zJ(Xwc2Z_m*#VMlkQUe6vKYQCOcZ&;eA$7i$OY}LF?}rn*)XRUe zqxF5o{q-&f!j(wnV^!+(Ze2wc(tC1$$DO@Mv*z6b@mQ9x`dw7R;R1i4VsqwpapUY9 zt!|6=R^GwpBlrDyb)DR%^`n)%Kx|W6EH4r+%V1C@JD(Yo+=QOFkAGbz=XmJ>vAv z`gAh4Ih)VNn>y(y;_vc)_CMu->@3lEk;&vW2{l&e *1O>>-l_V{$gc9AboI`0r-}`Huq~+H3u$B_ z_Bvifg)ZJ-7auVOc!d^)h}&jCHn^*0N?q0m%n3K=Jonxz$wylmQYnO)H7V%>Q0e1i z3YY1rNMzH$#ZubN(sLe}rn?s|*~iKA&3>D< _(t0UlOD2i!LJ;1_p-GBwyx)vk*20Mk2HF z!~<9eLgOl^ce`uPY1^$8{L+IT8xaO9Qi9B^7N>MReAx!MV`Aq@(V$XSkOkMVS(iIg zK0}@=kQi*_Vc59Zuv&9sM@mf<%rT)FFd0OyE-RCR`sc@;Ik9z;DPQ!DCl8dChC6M; zN#&9qDY5fJ*f5fup_I5_Si4Nk$XM8LKRP|MdFE!)xLU1U4%c4T)RaOYo3!QBjOHb@ z48ceACD6Zj`%hcjYa2*p@0HC;x98Js*tk0Rz&ru>31)6_k&2$1F*#ypW(K&S fXemHp8w8w^%> oE;@{FzbiZ+7 #8n `T4=&;o;!PZ+eUx%=5V=B{bMUthk_W7#K$NfHn;i)1U>rMEinS z?Vb18)DC4l4R!`5l*n{Ad#c>$e`5IDvrJqh9!y#!@)>U34kbb?^%J)M!Vj9*>eaJu z)o&D}7yZHy642k3cBNWF6?CGicZLp5UvpC_a}x6i2!qcV!6J`v f$obe9Rq_(YW`emWNf<9k`g7|ey7&; zgrubV7qSEvT+rOy-1qWVitAt1n)EhH#2hK5<>hMl@v}#tNXgHw?+35 5l?m)Rw zXVe=)B0cBAoy+x{z>u;19W}T~oxHTPba-^sWVz;NFK-qTde%9kzSU#QqI>g_*V4FU z_H`i^3ve`>ckUmp5Jj{Xza#0{Y=o!vtXeU|<#<40cFw}o6_dqs8${%vk5Lv90@HsG zN{7d{;qUC~dgpKQWgIv8CV~{&_UU?0j1{Y3F7*3#1B@(b1kPvDeI`N`hD>6g aX{?xUOWS zbl$R^3JL#wt|q2z8Af-`pU> Vf3&Vv#e&IKR-TfJ L=$uUja>e-x_gaHp(9 ziXeUA4_#ya!j>luL~;66HAJPIr9W-EayfpyRwBOOlY~LbhHbxMt(et9_rsGLmHqvz z{3_C{TTx|LvutzDRbj@AU0huJn-*xPsH{Ypup|zU>g(szNRl(9pRi!Bu~}xt#ly?{ z`xPHqQnBi@dY;?Q9a?LL`??n}-(APkU-x#-e0ed%%1m=Ur#-c>ysbI22=DqwJW7b3 zw%_Fx&({lPMZz&>W=YtPSZ9`I-2!X4^tUp7TOXf#R+}wOAGg!#^W>`jfdF(Qn1U`> zX=yl#JQiB{ohy%?_s-5l?&d?yVOPA0C&UBaxLAbIL~16cXtXkCmcr?QbZ@ts+q1-` zU-8u-+U2vGyPgtx?s+5u{mc8XMC=%aQ*;W3LuF!dCOF-xAKxg9PVU5#QG!)s3PVp3 zhlY2VTJ?M!^23gGI)}N;CIP$#o@m-`TzTW>G_zVBJFNaaC!@yIPtMNkAo~u46;~TO ze-g>xyKhvJHp^1|tCiEMoA4#-bj|K(MP0MtnVC}*1 k=%H%kQM`wF= zjiC)$b{1IV-6KO_zJFa9zV?(cWus`fI~=p`n(ZJ%J? u-hoATl-v(A+lxunm2pOaTFWD{CX*#>kDG(D3bDfIXWVW?dkTu2> *#TpFX zXnQSjIPw8o;Z>-0(}1kBSsrQ$v32=k8 @DDC(l>u`Nia|}}>_e|CDvF=tY zdp;nl**EwAf?lvTLO6*<2We32{V~6TZi^V9*=gclmXEvdH+1-Kx?h5_D*t^8y|p?> z(G*$#B)-TLdBj-t_+^{I!a_=`0=uTbiMPaO#G 1S_J7-4RQ+5F11d`E(KBtT(akCC`8v7@(M%rU^@;#9)7B zL(yybmSTUlRo$p@J@LLS#u<{2S*EFV_Nm!DJw4zi5}%@*K90!-=Suzi)v;fjg = zIZ1ew23_V;CXjU+;X`}BI?Ksq>yTF0d~Q=Dik8Q*F>^PkMdL6`O*wB~RD%kicO-~w z4d`k4*}1hZ8)9E@UdWSNb3XVn5oGWZ^3CDlUWzfNtPnT<+iyD}0V-|JOAwZ$w|3}m zd%Sklt}Zpj?vj$DBg bwxrkAgU4&USay6oc{WV9haECt)ZEux>nJ8Gx)HR_7L zfi_E|9RGr4&fs8dujJ=CwObg75iD8%e5969`cEZHVf+(3y2o3|!ce=6e-FG9M#Fx# zI`dZjrmWiz+-MD#a+E3wduFxERjX&%Ac;r`ld4A?a=KBwM%Y%W@1OKuQc*#8-J~ui z2KnpPum73|c3hM2nttOjoK9sKCs%I#-Mu{}Rn_mlzHh~hetyl{V(RBnS8r1me~R!x z4&fgi4 RTCUs^hKDCJrx&Qyd>~}n7fH$ zc@$hAXi@LblAcIpv%eQ{;MnOY(sS`uMp;LbwYr5o5-NcnHhNIZ)|O#3nF%Fajr7j9 zdY{%^SuMA?_)F0&&Zk}$!-1qZ*xCEO(dA7qRr29mR|FDAKI=9BNwY xPi7!$%(cGa`=$_ed$DrM2vDtgWw4I7^{SniRo>T4S+n z(;zawY|7f7$*HUaD6wp{?Pck{%>zjZ36V=cWJvl!gWW$v>xgR+5Df3i(}pX8=f9-Y zosRu&H (~^kP5lrPW|?A z+ePhMb#f~Wk-k6+sj-+Q#bnU_uBS(U97?7sj31WqVp^>Ue5RX`5O&^liXxb%G&gDg zpTa_zh<;HuHMJCIQ_l1t-#lDg+}sVWq(@xD5JR%=Av1SK(54}C)u%+#($YF`<12Y{ zNpy6sF%DYQBWvzpNdq^GOiU=H 6Ccw5}(E2^&l!f}1ker3wyCpVd~;eG@Lfg8hF| zxtNIZ>^*&Ve|;VlUG1=c8eHLhLzHbcPQ^Gh0l;G=Afr6^)hA$e+z5A83i 8eNQ|bO>SldRJT#d^)zLQJtdM8wmAQ&dc2WHv0W%Uit0p(&K01l*MHrEtP zOPlvgK0A3)aD#BC_)BJ{&qGZq8YbQ1^rRNxkUd9B>C!Ks7f|P-ezE!^ern-@!>`$q z0l*Vl22a(BNfj@h8j0TU0yT7Sjv| 0Dz zCxwrEF*(2*_wm?`x$fT3uc>i U|Y~w8}#b9Gdy?F%g2&mI89nt^*pP` zV!#x>_59CS>IXDP-iuWrb4L{695v_V9YErWO-v_CJf^lGeb0FzMv@d%@Ob_6-!p#a zbzFf7w8Km1;v#u?H~HNc=n8sTi7tL?Y4v#9IXiTr;rD%MOpWDImw7~N=fr)lx#=CU z(=;m5<@bYdahHXj#6@y(Wu+YK`o+W3eZ!cp+;x|XDWag@Vuv}kb5niQ^$7=H`d>Vx z#Nj?mr|N>#FvQ}MzWa1&9p@`SFWhr3{+=rETKwLG{ZEv?zxCI-a1!wj-S1;B5L`ZT za4EA}Gk&q1T9A=fM{dx$FcejnU-Ep=b4;9DCPDqpSp!j3e?|N*LLL|OS4|Wn(e%Js z0gtbfJJ+YGF N!)0)0|fC=faBVJqeVf&V9mz(>AmtdWM5Wf|# zi9Q5cBZVvJ8F&S^KV6eB*T7nwXbbj4rxed@bhy{0)Z-4wD`yDreh6Vgo<04VlEy`u z v9V^Yrv|SoWz)_9~9F5#(|EeoTxjZJ_=Ff}TZZY kd`g*Y zb4*v{C?ng6Tk<86dp_H|e`>`#r$|uT%j-W{7=OJmwuZx2c4TSoP)!v$RIrc*;T27S z8E_qPY*)KyhKOZxx)DT>jJ?IwVXBw)99&;tH^ob4%2O2-m?vqRoSc-DmLkwu &XiEg9U)je87CsDHMJJ0t&cz>GtX+CG> z+~+>`eO+e=@P>4Sy$N46Ec9Y%)SEU@E=?PF7{(u?5? PYPcur0ZIy%~$lTX5C zJw27AMoAhr&;hp!&JC`rS*hWMJ7qbA*s#YEiCN3u+?<4y-6L5_y*>9n#b^tt91;1s zDohQO(*vX0j)I!J(0A|N@msc=A46d<*dl2-q#mwQDCSHPUfa3qS>=cOeRucaf3Hwp zo?lZVy6wCUfk38U#?O03Y(
t-aHq# &P;rhG+Gj%o4nvGhEwvAH3|G)>y1!1eBQa*x9O#4WR&=-IQGZGw0WBiWgI@k z#6*gX#$HQP@wV7E*4gg7aGbf4zs_v6%RL9-WohI2pIR@zeoCNSUYh(~{aHV=W!Q2R z=n9O;d*Potr!Q!1OlfByUlQ@nzks37N@I|yBa|fT{@B~bVVcvlPa3kFaZ)T%Y5?K) zSf1%ABSXWC)8$Yvm-L%HnKVzZJx)$GfI>CEiX<^Hv3uUuReW-`fVKngD!}Ws*e<_- z3(=+oTv6BETSQ>w3pRd+G7pYQ=$ir3_{io_D3m=WNoO+r>lEuEllM)6Iex>i#Cf@3 z=!R!bYoWcdvux7^If-LzNwz^3%kcg_=`dm37-tz6P?tcy_5)`ZmvyggGBPr79JBl0 z1j@e}hBaGHu-z7Yu9CzqHybI&q8^m 8==Z0yAugVOW+c4W;=023)!=4VE6_~TTneTxzwSuynxw$>)(t$SK@z{sL0+!S$~ zkJ|F{pD{0pWE!>3p_{m$CbErYy!YJ>RzZ5}hDl~ebNGJb>?S8$mg{|Li~#$oak5TcovVcfNhZ zEx~vc{-FhV^wj=4-@m7qxQN~7W6sC;N~X7zg>B1K@DnqEw!2D-{v}fr(zKah&b+BA z18Rc$E1DkvMZ7?v ^aX_u@bm_4G~(h;xY z@!lLehxN)hr`!vvBR})|mJFEi7d*(HZXbF%@M>019UwpIJ0MDe89`8Ikurw*(wSS5 z+n45Tvv2eZv05#oeBn8gW^=zO!q4rrO3p;ViqkqN0b`e2T}`cgKiBvSWR6i$QP+|s zrInS@7u2TwNy?knO-t@%AWuTGmPqmivVqu;$ko mKII>Gm#N<}IhDqINpN!$*pOj$=i zJN5uZFqBkz1)mC|`aQn=-mP4D=)K)=z7MRODJd>t>mJLNuYQ^P1N9kwjz7YgkXK!m zkamoDkTC8@E_o0iyVSKhe<&2EaZmRRPqTd=%|P Q{rSDH~{TG2f9-H^v8$7+PYCpA8 z Ri|4ASe1ke-3p9ns1z;RP}`iOwB58bS?tiSwRJ?54Em6(w_ zShqcQaQxHfIa#K)hFsZo7)g?hA=x*`Pn1;mcSw#fXcx<57XL0#D;PV$bWv^AAjKM2 zkz++zn62HoPQVdv#k&c^ eXGHyzK0iNS#QF{FU#qKQ0Xjb8szj!M zwL5pnMKx8G4Z*Tj(slN}{dJ>xMWa3ifpT_kE}ruJ`)VR7%hZ}1fngxrb|)>c8xCek z-j%T5_+Sda&FY &DUV5x23WaG8}J&h>R*FjC4=IwYcBH^Ho*0A8ayFwix<*b^4ky`Eq~Kg1@%C)d3G zoK@vL{h FH@TQWd*r7T)&~VZQAQsNXD{B4DH& z8M^B5{(ThPVqb4&T5Y2yJl$m_+*9}RdC)FV&|_#EO=)GDUuzza$1yZvh%zmQR;!4F zOX;7i*QbFg^VNX8o-Pp=Q~xXRw@?4}{0d9y8h@g0dWjiHsa#n>22T4b5|t;Vzk#W^ zJ7!ubMQV@sh{AO& qKhka%8H@+t zOLcwOn#;jUptTKXmC!Qj*VKg0Cu#=Q)*mEHNP}CujhTC_X5}$Sl0Iovr`4-EjnI-F z9xz^{2=v$|^1nFfJc!uL=oJiO%rqVhbmIEXbUk+Q-4{hKC1=~d-0mjkW+@(TGq8RU z@rLVUS!yIDh)aS(C8AP|`oyX1qKEEVs!I}V)TBWBkOpXUY&ass8e`fb&DEwH+1P5V zCJYhtJ(~_a#7j%==N}KUBd49CP)h?$#pu%OzbY~d#uC*Ngf`cWPY5|#IwKS3gjx{K zqb6X1U> 89pPZlXipI8T4riVdXSL6W$FCIpqJGkc)B9sRbBJR& zaU!$fihJtZI3k|eDZECgg~@kuaf!eYN->askY80xJWkrlpnz=CI9vvqApH#t;&Wpt zB)XeSY&lq>9W ?cKZ{!+d1#(96Bo zl4~HUu Y5DlG58t{_vCWCOP`6&om-PjES0HJ;$QCz?XBfwQ{(OKz zC)d&wq&4r0N32BBhfx(SZf f;GNY`H3_W+G%! zc-;o=Rq=DHa^~4L>WRr5590K;s7s%X?<}ICwWheS+s&C&c&^~-3ahKl+^%=?#f4ie zntFLxfmY mG$KZg_~lm7FGo^ps4$ etaYxa~H*{~WnQxO_c8`LnquQ}LVHGupiF6|#Ti@SD( zJ0gtzUSL!p{SjUc(u}Gi9~)Yj+Kii*nc=9}T0jcUW&RnvGPv&1j#@bks@rpX|EiQz zNh032vQhTn^8SBg%-Os1>h){6vOusr1nm{-A85mZw!OW*VZjG^9@3<7$Co=4ki=lQ zxh?TWk;5aau}pybPYl*FT#*MA6F>Nch@Q@)bx7>}a(`~qpK(6>>+@?FL4%wVqQ(_J z!UhXJUfJFqJHosa8QaSW6UAGIdzwUYpgDf@%ylZW_GLbcDVdF$2^EzkoY@vmXWlFQ za6B--uFFJEPb518q{?4myI|qL$rui9$+QB5K61D;AT2EbUc2%0{qNaCyfv@BTMdt| zkNBivhK97${|sz;QM3?dM9L%Aho@Z4M?2U1bE(eU0xtGSD}` 6qfiSA2Hu*E9 z(YVyuk?ubo$OB?h`G$8i(Q>d)b&)_j+Kk$ {h-P|_g|4lwW&g#1auq~0fguxHDCi8#$%z+~ zu*&yAVL;XFFPTmOuB|hwI5rYmdU{*QbY5OwQq%%2ZBk=(*#+_e4qS#wE6$hrsUW#* z)ah^kUU@imR7P-DFgCh-^59M{U2xV*S=6V+`f-kikYLJr*(#WLm~TaW#_460Mki{T zNGA4s8MqkCtP=o^?xsCAVTQn@-d7xE4`^vY sle42^Pthb#L?;!DWwhB#ZL53s%@cM&8ST9{n=>mG zz?Lu~1Wxd(CkLV&o*4lu*u*j4q{PHkglxQ`!;bkYKso?#RN+Xt*o+#l{d1TJ((!Ii z=GIEZdZ?0oZyLTYaqEGVX)PcmC4cFH27stK>Ja@vM+g}L5r=FISrPIH?jofDnXr0Z z$fj3QE?!l*w_;3shgx5!xuD6IK*D87m}r8G{9uy6SFnx<>;42v^KHb_zRjUG@G5!E zB!EZAtd3_^T({kr15^wtXW6t>x*SDrqN%h>K~Rvcu6i}mF10}uNjW(=J0YRaY9-t< z*z0ATX2hi~py-cweOauW_Tgmez3tz>k)SERN$veR^Yi)Q>nl2zwu!DpgO|@mLj}T? z L2M+fMJk0D|X@yY*IjJqvalr43HnJ|8 t{^s;le7#LMG`TX5SAhtWR!o&RwqNL=;RX>wJ$pUfGl*9?Gs!^J?6 zja7z_#Z&m0TMB2cUE#ek7Y;8Dl^30y2;`K5b!3g8StxzxXMrmoIYp(Oi|53SigS2v zFwCg|L~z S9IGEF%myulScemr6oj6 zn6WeE$*J+-K>}KLlubwg$mDNB*C}@H9AC=p{~4c|6i7Tj*+k}GwSeflB5^Ye-TpB| z&?@~Iis+_v&$=BLlnS+9F0m>u;^6&4B~?3h^C(Ow md{*);MtC+Uq7auy5MyCUG`ku4{lXW8=viPr6oO8 zIFZGiPKKOVCEHp9%dn%1JoRW3BqfET#L&>_R#?QLjplZjb!JxN|DF*X&&+&fy<~}7 zN_+3gYEYy^uC{j>J$oJ#ktLCVlY6`{7~x+` JdC=LY$;oz4F+ zBG1?T6JA)E<>-%Lz;^eOKSFKq?<1+lvPAk>6?_H2=tjC_Tbi#{1-EYTm`{oxp_ZC` z!WtF9?Acs^ gl> zBB<$|b L4%qSGpLpBw%= Oi>;}qqgtV275IN8QVU=J diff --git a/app_chatgpt/static/description/index.html b/app_chatgpt/static/description/index.html index 7aa5cb29..62058099 100644 --- a/app_chatgpt/static/description/index.html +++ b/app_chatgpt/static/description/index.html @@ -2,9 +2,9 @@ Latest ChatGPT AI Center. GPT 3.5, Ali Ai, Baidu Ai, Multi Robot Support. Chat and Training
-Support chatgpt 4 32k. 3.5 turbo, text-davinci, Integration All ChatGpt Api.
+Support GPT-4o, chatgpt 4 32k. 3.5 turbo, text-davinci, Integration All ChatGpt Api.
-Latest update: v18.25.01.06
+Latest update: v18.25.02.10
Add Alibaba Qwen support(search 'app_ai_ali'), update chatgpt api @@ -110,7 +110,7 @@