From b2d4342e703a983e69c7d4642f99cf035d28196e Mon Sep 17 00:00:00 2001 From: Xiao YiFang Date: Mon, 16 May 2022 22:10:12 +0800 Subject: [PATCH 1/2] fix: iframe website online dictionary css does not disply correctly --- gddebug.cc | 2 +- globalbroadcaster.cpp | 3 +++ iframeschemehandler.cpp | 22 +++++++--------------- utils.hh | 16 ++++++++++++++-- weburlrequestinterceptor.cpp | 10 ++++++++-- 5 files changed, 33 insertions(+), 20 deletions(-) diff --git a/gddebug.cc b/gddebug.cc index a295c93bb..9fce9dd34 100644 --- a/gddebug.cc +++ b/gddebug.cc @@ -53,7 +53,7 @@ va_start(ap, msg); // QTextCodec::setCodecForLocale( utf8Codec ); // } - qDebug()<< QString().vasprintf( msg, ap ); + qDebug().noquote() << QString().vasprintf( msg, ap ); // if( logFilePtr && logFilePtr->isOpen() ) // { diff --git a/globalbroadcaster.cpp b/globalbroadcaster.cpp index 761e26827..885bf89a7 100644 --- a/globalbroadcaster.cpp +++ b/globalbroadcaster.cpp @@ -1,5 +1,6 @@ #include "globalbroadcaster.h" #include +#include "utils.hh" Q_GLOBAL_STATIC( GlobalBroadcaster, bdcaster ) GlobalBroadcaster::GlobalBroadcaster( QObject * parent ) : QObject( parent ) @@ -21,6 +22,8 @@ Config::Preferences * GlobalBroadcaster::getPreference() void GlobalBroadcaster::addWhitelist(QString url){ whitelist.push_back(url); + auto baseUrl=::getHostBase(url); + whitelist.push_back(baseUrl); } bool GlobalBroadcaster::existedInWhitelist(QString url){ diff --git a/iframeschemehandler.cpp b/iframeschemehandler.cpp index cc1d6d5e6..fc2fd01ca 100644 --- a/iframeschemehandler.cpp +++ b/iframeschemehandler.cpp @@ -13,8 +13,10 @@ void IframeSchemeHandler::requestStarted(QWebEngineUrlRequestJob *requestJob) url = QUrl( Utils::Url::queryItemValue( url, "url" ) ); QNetworkRequest request; request.setUrl( url ); + request.setAttribute(QNetworkRequest::RedirectPolicyAttribute,QNetworkRequest::RedirectPolicy::NoLessSafeRedirectPolicy); QNetworkReply * reply = mgr.get( request ); + auto finishAction = [ = ]() -> void { // Handle reply data @@ -22,11 +24,8 @@ void IframeSchemeHandler::requestStarted(QWebEngineUrlRequestJob *requestJob) QByteArray replyData = reply->readAll(); QString articleString; - QTextCodec * codec = QTextCodec::codecForHtml( replyData ); - if( codec ) - articleString = codec->toUnicode( replyData ); - else - articleString = QString::fromUtf8( replyData ); + QTextCodec * codec = QTextCodec::codecForHtml( replyData, QTextCodec::codecForName( "UTF-8" ) ); + articleString = codec->toUnicode( replyData ); // Change links from relative to absolute @@ -86,17 +85,10 @@ void IframeSchemeHandler::requestStarted(QWebEngineUrlRequestJob *requestJob) articleNewString.clear(); } - sptr< Dictionary::DataRequestInstant > response = new Dictionary::DataRequestInstant( true ); - - auto content = articleString.toStdString(); - response->getData().resize( content.size() ); - memcpy( &( response->getData().front() ), content.data(), content.size() ); - - auto contentType="text/html"; - auto newReply = new ArticleResourceReply( this, request, response, contentType ); + QBuffer * buffer = new QBuffer(requestJob); + buffer->setData(codec->fromUnicode(articleString)); - requestJob->reply( contentType, newReply ); - connect( requestJob, &QObject::destroyed, newReply, &QObject::deleteLater ); + requestJob->reply( "text/html;charset=UTF-8", buffer ); }; connect( reply, &QNetworkReply::finished, requestJob, finishAction ); diff --git a/utils.hh b/utils.hh index 891b3c676..9c7699e1a 100644 --- a/utils.hh +++ b/utils.hh @@ -55,6 +55,13 @@ inline bool isExternalLink(QUrl const &url) { url.scheme() == "file"; } +inline bool isCssFontImage(QUrl const &url) { + auto fileName = url.fileName(); + auto ext=fileName.mid(fileName.lastIndexOf(".")); + QStringList extensions{".css",".woff",".woff2",".bmp" ,".jpg", ".png", ".tif",".wav", ".ogg", ".oga", ".mp3", ".mp4", ".aac", ".flac",".mid", ".wv ",".ape"} ; + return extensions.indexOf(ext)>-1; +} + inline QString escape( QString const & plain ) { return plain.toHtmlEscaped(); @@ -179,15 +186,20 @@ inline QString getHostBase( QUrl const & url ) { QString host = url.host(); + return getHostBase(host); +} + +inline QString getHostBase( QString const & host ) +{ QStringList domains = host.split( '.' ); int left = domains.size(); - // Skip last <=3-letter domain name + // Skip last <=3-letter domain name if ( left && domains[ left - 1 ].size() <= 3 ) --left; - // Skip another <=3-letter domain name + // Skip another <=3-letter domain name if ( left && domains[ left - 1 ].size() <= 3 ) --left; diff --git a/weburlrequestinterceptor.cpp b/weburlrequestinterceptor.cpp index 6b8faa62b..75b14c1f7 100644 --- a/weburlrequestinterceptor.cpp +++ b/weburlrequestinterceptor.cpp @@ -11,10 +11,16 @@ WebUrlRequestInterceptor::WebUrlRequestInterceptor(QObject *p) void WebUrlRequestInterceptor::interceptRequest( QWebEngineUrlRequestInfo &info) { if( Utils::isExternalLink( info.requestUrl() ) ) { - if(!GlobalBroadcaster::instance()-> existedInWhitelist(info.requestUrl().host())) + if(GlobalBroadcaster::instance()-> existedInWhitelist(info.requestUrl().host())) { - info.block( true ); + //whitelist url does not block + return; + } + if(Utils::isCssFontImage(info.requestUrl())){ + //let throuth the resources file. + return; } + info.block(true); } if (QWebEngineUrlRequestInfo::NavigationTypeLink == info.navigationType() && info.resourceType() == QWebEngineUrlRequestInfo::ResourceTypeMainFrame) { From 7bc00750d294c7fa99ef6487ef86525887e65b9c Mon Sep 17 00:00:00 2001 From: Xiao YiFang Date: Tue, 17 May 2022 00:34:42 +0800 Subject: [PATCH 2/2] ui:update play sound icon in toolbar --- icons/playsound_full.png | Bin 9964 -> 32996 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/playsound_full.png b/icons/playsound_full.png index f5f22dd1d214ef5b86351d3136485d689c1cc6a3..001c88361e746a66a0f07ffac2da436ad2ace7c3 100644 GIT binary patch literal 32996 zcmY&fWl$VVyIousf;$9v5AN>n5D4xb+}+)s00|P@-QC^Y-Gkfm?OXTPt*M#W?y1_I z>FUSMIUT92D20rOj|cz&kY%LBRl)b0|4w*V@KsRbGzolzwh&Pe0RU>_f$v5z;5Lbg zw5kFC;6()h1cU$pui&nL69B-K1pqiR1ORw50011voHiAH@B>(5IVo|#=YL0jXGt=+ z2hK%CK>}_M2I>nud|)DRH~`>(A|o!M?y+{+>7Ju!;mZW_*;X?*x5zGBEYtpxX2-y_ z3QM3@!!XJT?Suh2g}f>3$n-u!$-XXZ|46km1S2nRkDjdvPeFxR*1M(g)1l6`bu_7B ztLU=5UTw;A`}#WG+5D)%s=dDaM}4*6pG^U9b7I1C>aKDcCqsYU#!I34l%unF`9ACa zH*W*EBvmuR9z~@q7FM=Us1C^KMt`FR(vm2{IR~plfq_#~~QtX1;}$C_=3$^W|)=&CVJriB*3!zmxp9iKB9cHCzcGod{73t2|~XA}F+BSeVHr=01jw@WAh> z{^L4KM0Ck{o{sQ48gpMkyaf<5gy8jpDLfspuup6)Mz+&^3Sv@yH}$#0b9TWkdt z290Di;37FRBeTq)d&+y76?2-&COP+3)eRE0!S7MaFmk`#cKurTogV($bY~JUAR}0T znbL7GMDRI1KJQpz$IABO=|iEGirk2E44XVxCNn31lwC~=k27SbO){&Pgrg~SsE{^c z?IZSF^Fay9BdVhPx{EJO5#(Zi6<{vk*Y88gX8dDec9xYNc^qH<_)VWP9?IMn zwYaKx;&84QFSq~~Rz|FuqbS+Pu7grVk#) z7Rqn;WvB*GcnWj`+%|~K1tVN4`Tl@n8vt7bbc(UGm56MlJXN$UXLMpB8jXeq$^9^w z->%$sc9>b?5~fY{y#N6p)ntZMLaCKiG8z~3p*##Og-b5xxoS;S;!H{<`&}hRv&^o|#Vp~m&1`JM424nPC&fk#%A+En zLWo07AS#N7^iCKueYBe$Cdd}Cu(OBs_CgTyEycRN|di3M98yu-ya!D&r>E+1ae#ZhYp`ze4fY%nNF3(XwX#%|PRRK?QcV_n6`2oB3HB zjX0Z7$f5xfP%Cg5 z*w_4z;ii0J^x<0fWPm%m*U#aN1AAWp#~MBu;u(DIUlsW-T^RVyAdu$o0T^iA-Xar} z6UTeksxmZ1J+eGInn;6)FFzg02*6FD#=C1o!GGuEAoyP)YGGGHR<1K zKui8ySEM*0z1FYTc_lugTaVv8Nh5DXW+HmfS;jC{a?-R$as;Yt392Hr7TNtxdXH&b z?V+eFE>N+tyZDK=RMFvI{oq^mm^{)ch8DRtZi*h}Ybs`C+po=>S+d&`FsH*qND+ZLElr1+wK(J|eV;QE zhIA2FuM;CRG))CmofkaSnj9-$taJ&St$VmgIvp>h5OZU+W|XSTPALA%KWeYx*fW1SssK9H2< zk8AO?)>QV(H2(*CTpl;tL#WSX7_-l*vl>xHZ=0DBl?$*{{=DlBc9;$FJ=1^PiOKf+ zBYz7GmdIf9pX|v?a1CV>pkh2RIp>yE+Vsi2-Ed+Ns%!)_9M;aa zFoLe)CJ1IUFu{d$5QZxYZJ&p}$M>-W5#9BNdZ?X5kdPBW zc+e22z++4jP3ScF8kpotKy+q&GZWFX#PHeTBYVJj&=Wll+id(!!=*&k(UEyYmoXzY z^LKSD$D*VfyK;6*8$(?zE2enl6UvX>Eq(sm0SpzDbBMIPzHIxp)5cOn{mgk2Lb>6F z3Kk6pa~AsGdLA)0j##@Qgo3c_q{vO8<*JF;c%F~<>=1ST0g4Ftfv8AmHWExWdh?_p zL$-PaXgP?qp|eFkA*bFjD}WRn{=N9zGdf!rl5qT*6ntPbvlrWxfomW}4xL8bN!HjL zvM5jDp6rA+HHIgq?H52L<1Far>PP$SSd$i67v5Hu%qkApJDL{9t@`9OaXWkQPiA_| zaT?27vC8#e{z{Tcs$io9yLKE?3(V{1BdIAN)~~~NtJi}59Le8*+!$f@h$9+OM%Wgm zP$a?17!*f=wL33Q|+ zdyr&b_Cm<)IU}~7xwifNDA|^C<+~me@4iBx=&;DM$fL8sk6{KBXlJ6bXxBjW81^WO zo>ZJn=Dqi-)fYqPv1B^vlk3>Jz5NuU$By2O|9n=uDe?cu)X>n-cJj0L>?IdonZc-4 z#gsWA1XY@og4M>HAPYZxc5dUl2aU#EwRwJjvk=`TK$@17n;nuWXVPODh5#?dD&N~j5=IJu66dX*AvHp!oliL`+W#q%=|pv} z<)TnXs6!Mu-+JzpQR=N6T}n)n`_W zWsRF~^=IQ}BT7&UmNa)0#|wZw)cN-E1KMtY2G8rc$*V5Eyj@gODH3J~Cb*sGNDBsC zv01S(p~i8cVA+sh2_QwuMIe>?WUjd>oVNiD-h-hXrKG~Y%4NBu-F@P?b{AWDoF8iK zyldbDMf?sNzj)jTqb~sTupr@v;n7$ybXDpxMQ?$&ZWZt(AUof?4&QeLyq|Us)BCP) zpqK~l2L|(ACM@QXxjY7c``_M87G~R}j8jq4rvH?Pfv2L)KpdmM<{h!(Br)%eJMJHw z{6LE|BBv(qxO@ekXU)C5Kk5IXr+xD8!GzNOrj2e0QG+{zMgx?@9?*d`gN{zI*XjQI z^i$po<28;{a?MO8V936K&=DzME!kBXEq2d zU(yHH0AI);NW~#Kw%QK<%F>brRh@rTYn@nk3|v^=j@D!1<86|7cq>=o_h-PCa#nLb z$u)J>;eQGUk{Lt;2iwkB?&X)(kYM&r2!K2Dw zq|mcv2%{I;n%6}x8uGIJTlaq%Fms*6`R@b#g#)S~>XCzBiV5L$0_p}v>UNN5$5_;1 z#jTbmrLJFl#$>Xm$_b#hz0ND;NDhWncREjgbM4z{bx)pRIuRhIcz-+AVK4~7HDwgz zGHi?aPNs?Wn%q0XQEA@v@UD7v6fGJXHCexk^exjdjK+M(aqFd=BqYKs`_pTD*`CKv z7VzA*nAtAq1v00t7|s|mcgzv_2@^%1?wgqapy@>lPtC+Iq<|;1u&k^N8)|mnsBbO! zHN4nXcufr;h8ZDA_~Mk2j@w4I)LT(+82iHrkhJQ|$5{tzgS}yN-*SSrI#U6F!wX(m zVDpa;H$6vC=+tPQ1*wMZ`Z%0@5Oo(SWS9}OqB$Lu@#BY#sCoqI+r=4O53Z4_mNW^P zZ1zrnDXBCb6Ur|h6Dma^0rV0D(SPyR;PP%oUB=mG9}4HImCTSI6ZAEyBjH8XObql6 z0NW9u5VQvv#KWX^)HC_TV|uo{fFVp&uCf{x{!D1Dpje(kF z%#L*FdDXDY7~s(Tada257Y>nw-cb!sUu1=^S20I!We;e4hnG;md^nI;YJW6`8`NcO^P#&dHgM}@5%#TUw*smHCvYe zu9%;@g4iKlP_4u(&^9FD!^1)s2J!OR{4FkA;dXSp-OlM?Yym8M9tLvGz^&UjAxWF_ znBRGSqkLOrWmnQ*idH&HgNPYI)}{B{t$h!4LF)|CGa6d?D%dCLXeUK09Sf7*{HklX zipZhexTKC#p2sBE(cwRg_LMfghP6NqT_S&DUyuD-I9^V#1(si1iR~5Qq;8Igt92ic zY+p&yRv?%u5lLXFGr&J0GcXt>W2D(KUlykQuV0+cJsHH(-dXE;B?owMc>~#5Twtv( z9x>QzZ6uRv6_I{{+8}R;+~50Elm7XMkF+#RTKBJSgTAnHQbhk_hgmXPnR7$@#(fRP z*Zdx-%davzTr8rM{+sc*&*4k?vSy?Pb_Au*u63Y()FfLbd)=z-30vIo9@rsuD03wT z8@*or_uq3~Ina4+Zy@d02?-f`dVC)0Y#AMAA=m5ralwZ_xswlqyIr8$J2&_YgY=yk zjM!pmco?-T;h!`Ec!bmXxCGE0cY@cym08c^hUbo7x;h59546pMFxe<2VPqUd>uYN@dkrHk zhUKQWc|=4+N7{-3DE*~Cr~kT#E)XqO z@>}R4aitZPr7GjoH~*5*H9-K!Oab#T9>rekZ;;!%>+5X7;&`jA^~q ziYjmE@4i@(zFEUZZ21r%J7G5t<|UAvj{4%R{7;WY@rF}{>ztX-F%74dtdSv0oB7Vd zVTrM(uBqo0!9Mbkmeh0yp9!0(Hxxpudeb6J(W0do2bwy@>2Dcfc8ImU;*6K0?w7}L zwsT}-g@2!v#b^QOhHf7QQBZ_x`M7MEg)63Ev;Zj8#xE#l%zux6O7BS7i;J3=$6|qN zI6xc&BReELsSW~i#%F0ebvm;iM!#AhQGVO`x8t|61ny6WSu>V3f4tXkZuBAwhP{;fW4Ms*; z3~16M2`V#nR`*B4!;>Mk2-P*kxP{H}p5h@vdkoKf=5ybANzE!&i@ErfuFT3unu!lh zfGjR;Ez42&TXOJsq_D!k!oZIC;BSOB%c&q{Q1-Q*VEZrXoz3OSHJSWs0HKK^VGM4L zbR&XWc~Q!@jDlbt9Fj@QTj%pt+a9{7Jft)Vk`Y>IM|le^wJdmw2x&Al8HSS+L)JsU zJ2=7YO2f^Aw|9`{+^HMiiqhuShu7pmny9e@l9SU)pN`adkxymK5TY&l1dOZs7Gb8d z76pS?V6L1YCJ=WMv?6r_@l?3jJR2&*#Y1)rNShVry1~$e$;+HHQAnohtP(FTZ`oM7 z-x(;E)yx#50uMp$1R?u^!jM|zyDB_8`X3cmuG+e6gp0ZwYxE#|nMjR1(3bP@B1g?b zqDDO1Za8!l1R;4Cf-#gbEZRARG*ms)2yImYg@q4jTmNr1hvV|_)?9f8v5UL~6W6KlDK6+d1Os{Ps{@fSDQm@^Vy&7icq>ClPEk5U@B6N|x1%VOw zXhwrp^ep9e=IVPFlee%R*JUq)7*d5+y;1d*=t;Br$!VxF_y7u>(jk6Jgg69+pe*=> zLJAI%`6Nj0>Mi+=e+3%b!Kl>$mRv|+LGY-|^#PRpfp{naMPY+dwS}WXmO?j-c2HzQ z?tCv=D77k*F_|hwWGY3HH7Et*zl>KV>lFpMcnJe-%WD-YL!ceGuhPccTo|Isj5HNL zENKo+#GQOnmX>Q+?u+FesHS?K+TdarO)FlS5@uc&W;-K_({&TbP8Oh_HLEg*RDI;Z zKp*ZRF3?bH#eIC?Y?!42V)4BN8=d}-)hB+F5q#PEq~bbAvZ@RM?R*GjnS?acAfPcj zYfGjMC)9>`h@|-n-4-RCM?H(3p`$3EpQw)gV5nwK~_ zogokvKZJ&pO1mkvU;(vIwSb?QM==bg<>g)#V#dB#3Vazgt2K%A>GtLsIR-kHo;X>} zXzJSQe2rNIA{(DA^|_Ytwz*O^U%`? zF=X60xNohh%nrOAD^(G8?YC+0)tmR5*Uc)$z=k<$XS60p;FGT0hKeXel_G>lvT&g% znC1tvw-x^SA@=#4Zb3{g^EsiYB4NZI1qmc0JIrdSh=@o{aC4jWzG_!0C%`qn4`6E! zjMPDEw@wQ<5{p77Nz5gzFByN8Z{F}5Uxxs>IKK6TMsK(Y|HHBpmMN4B`ysRFLkFjP z;g~uDKZm6ShtY!=boUl1S`bbGGYHuyQh;$2bo20q&#Gi^`du4idmAEvPe^uHaHO4C zVyIOvR77@gu-6c&By3h_CKx;eNJuCoxr(H@G8%kxxVPGnlaq{=icP=m%=wNce#N&s z9~s~74X(7iJ2*b670&thOkDppf1Kvp?lwm4Deiu`0=`8a5JTlqM8Im&iHL_`3#s-yd{>+b1e@+ohd5_8goTeM*!DkGAF9WZ!3uDXN-fK%cOko%R}yy>4^_@QSKjFEsd397iTrKF@S z*EYnw{=hT#zZdh{n_gY8e#{t>@YW%C8< zFkNonINz_~JvAK3GH;eyBKM7-cRY<9L%GEKT#Ns9ok1Fw9yyu#2nz!P3efDV1!xBu zQ--Oi_Vo~GnWhnk4-D<^Yf@AGp*`^jjPS#n(KNjPVbSI8o6XDE2d_)9*!AXbM$pPI zT^gc}pa-8`VIwYu@5Ikx1oqrWN5rtr-S_{Z?SBRynJE9@?wQ<<7{Tapg4CI7BC*4x z`*VM#hGbtm4EI=){@cf}x=|h)UZr%C88xMBB?R@0Y*9VAhuN^^d+}X~hvR(p&6y3e zk!4F4B7-=z!o1N5tjm*m3l}N-#a1`bxKb=bWSrd4f1%2{Z2OW#)!=Q$b33r-I&$XZ zx!V$QW+VodEK03wRTw_FH!Nw4y&{qA{H4oG@nZlXr-p4WeRnHECm-N* z64Jx+cJnQu8D5_#Z1;WQQ-S0jIj?8KGjUMHVu&E7I(~2Q<(ydXIuGkkY{HT%A7O_g z0v#}nRZp%8XN4+4ZBC@jc1}C|8ozANl9!q1+T}M0;8}KX5(d)+nA+A8wI2LB(}vj4 zcCLFEh_V5ZF!Xa7A%>J0p^&-&3YkmObj>uF8=S72=5}~Y{M*}wd8Gj87j5l%*8%zY z;l8ZmP&`dp_a0onIpff`BDfVJ?5Svg$2eoZJwF!c{&n(!W(E-O5&pQhi~_>>>T|Np z?P2OKUMt-hP~Ix93td(~z~u44P;m}xYel~Gmpn5jt+?~yvHJbRQg|aN=7R{nolq+Z zT`?6Csl+|a)oJ~j#HCj`t6(DZ;hh1qVLKtfMS}t>B88*?GnfNi)@nkO^|-F*0)rmo z!E5tK;J6F+w~?{A^r=@edIEYvzzjP!Z+&qFYrVxkNL+w+WHywMCZV7Yywn%sFZDHe z=DYbq722&q7wAcM0f!0G7bd$Mr~%W&k`1(%rP)(j-Wtn)Q7?gVR{KSl)B8ex4+1WN z_ckt1gai-acI)U;Uvhh{h~93`Lk40=)27J=rqpSq>3X!-3!j~kNXV~ipNwUe3{;&?$wS(%b0$F50TS4h z=mO}|wl+QXV|BZ|-n4ij+Q!;HPAz^7Iwki=?9l`Vc`P&=u*34R)?JxYbFQiDw zC~>b)Q-=%}>#p$L?nJ`Vw|)jpeEv4pihDuP)4jCO$D()QCmaqrBEWaXKL6ti_B1Ag zpdWm0a43Hk&0lAIpElhG8#&^hJI=|EFF+Gd&0DaVc@_zPjFok*zP`v0dNOmFTX84Y zfVNX!j9r8i{bpk@O? zq&3ZV4X{?7pD*PG=0;F$V{bHhPusiXaqkv$upd+Nl#(f&%!C}Z!|1HI4X$AwXRg@L z!RfU4w3@9Dy9ufmwO9)(`KW^@pjx%Cz3^_15`&pGAtVp zjrnoe`B^4{c>%kos?Ej8$zR>t?n+BGb|cyv(>YsXN(2flpbSGH3wvoTm2=bH(}ugj zraspy$rsdm7ey}ff@Da9qGaWy%+RTd^9fuCUS3XX>gd37uYN9HkOLR$jraPw1>gFlzwLyzzC z;PofQrogb&aElIbTJV<4?}Zq}_)V^z)D92fJ9U^a>cK_?^e_J-EJ9w#3F3x1WL(J} z93})?i|tis3sO8Z63V`9O*Lygy(fMD0?LRk1S$AU^BPlQi69DL!~sN#l!Xj5DA=s( zvTU7~|0sEk1=1QY3~VmaWSj;~8OmfjHAX{K%57JgT5qvjDOS3_mdX?6r=FlpQjpPG zm_f;Q4rcSKYzJ*KqQLbZHCF(HFxocS#^c$e-O2emGNx$@10lS*l|2NUch*ah)6t6; z`P>*sv)EzUmC5_QQXj~1>z%RY2bMsmEUoR)U z%w4dWgpidtftm;BcbnPH?@EFlFsrszWIzHHh6~u%kmB8#)RHv1#`j&u<_%TnhL)e# zp50I;!~ui=U{2oEaFQ^3RH`BA>Rjq3(;44>geP3Sj=ZUjcoUT&Jryk@Ei$7yu&Hp? zQkGxc!ja~jBm#?-Em@f*1Rb#gvtBtW(`E3x{He3UVFj-SNI7kXhdsXina<(3A3&`{kQFmh912gevT|?kikxKY$>I| zRir5(Wz4ccjh`%#{wxbSL6mPKO0UVNh=E0#hDt$Zv_j^ng0Yp-Xs!^B1&uXWY+pd% z=N9H345;-Ob0S$S2YATF?*MtqJR6XOA6@ZXV{KbG0cp{MSXF z|NEZz$tl5y$J!6R$NgrZ?En+0c7c3k$ff}paSwZS_L6u){-|_=jW3&j14EI!nZd!v ze8P4xsVMqSMX0;)L!53^^+P9q6c;PESkO1avAUfcvO|De;$)ERQiz?b+R`0`oz8-L z47&gnf}BV*e49j=Q7sktS!F$?MUhMUpWrj#P64@;H20`tYzW2+m8R%nMrf5b?pOmR zu^^JX7XYefBCW~a!Z2^U&4~YLqds)Qrr?{Lb1+@jS1ZMG$a3CRqml>Z&YI zg+&9|%@B(iGL4HU7kr%4vd{rtpx1Lok@wi0M~h}#NxD=zc{Q548Z?%IXaRE{L~B!m=us zLTJl7!-vff078j@m&q|XK<{`>3<$QcM=%IR99Uvmwfz$_| zF(>*bhAa^aEXk2nq$Q^&sTgXpUwjic3*Bc(ASa9FV3dNElNs04Tx!}Edz@|UfAj!^ zgf77iMioKnV^?U?z|3I*)oRn!q~qj~0Z_ucX4}C0_2WM@p_R=1*G*{HI@}Ih609}F zr&l;?&}FJ|8@7Tysnug+T*8?6pgS~MN+@%;pPz;Yo)o!#zTMBHyu`1Jh4>$XuSLi1 zJ5SwS@M6KGWy18L`LQ>lP{l4Fx91(Sj@P-kIvB#m8pk@;NZ^)--@<9@H+r^41yAKi zL0Cy)y2&Iq=+s1tI@v>~ut2@vfzCwNJoQ%qPGk0bR;P&^a^tORIMqvPIkbdVC37F7Gs>-es~c^&mUlKv`yuq)?Hb{&@G@Z9gyOu<&rn57OAex#tgN z;y!Th);EYNIHQSU#RRkV_k(Sfkkd_oaI#O*>W&v>Lo}WPq2pA+AttGq5(ad2*}N^- zoHgAC4cjBlY7`<(9GGBrQrqxFAbGCRcK>SY!XxJ|>yH>3NkyxidDki0WarwDF-pMs zf3WxvGKr>r0ttncD59G^LyEBx*ksE(nJfLgF1?Gf1O5{m>9cfUZGaBc;`_%A5&iz6 z;FFVRGXA|{I1ICV0i2ib^-%7;Ud?M8Xfzo+5x4Cb(zk(HqI@?K!3$E;g_ zvp~k6mzw-iru00qOkll*y-0*W8@SHiD7C|7Sd9XDh3Ca;c}2i|VAH3zZoWv3a^|u82AmvOLvP)P(X;1YUFJbZJHV8dwRmnZ z)}?FGgZ(;Hn*P+7$Nor!5#Z3W8x{=k!`uK3B**hAyiLGh$(FSA)1Xbz1+A=mX(yc3 z{yR(~Bn9-4Vheg*u=w5NJ?-4g){bIzzRof6*Mab8O3zTOn279{V7{YyT;*0@_H_xo zi82sE+5>7NsBlP}x}t&G9uWBW_`g-<+%@n?1kslfYSau1dvZjPXzS{%cuH6W;sPl$ zTB&42r_0c$R#gw{CP#<{dN(|v3jYMBD1O(hNk|H9&`H*uNWxn>oQVk;$g~)vMKBBx zUA%<1#6m(wHhQ{R_QAmZx2V%*o`P)Ysf&`Dq?l<2-JfQ>t7YJg@CmweFmYr+enjfH zx!~l#TUi=go70fWl28aNKk83!!e1mRrI^B21yY3coxSZG&59R2j0 z7I;cw3gw4LQ12H#=~tFMti#2Fl z^aX#wA`wb$kMU@w{pMVuaJ%@e-^S+rO;&78_FLFrG&L;6Y4AGAC>;;ix!!Z&z7P&H zX*G$EPr~UTZuI4Uc^d@lNBU1K#N#?TYy4~8hLWi3e@!`67)9_T2dS4<6scm6T|6$) z8*<^|&6%u{o*Pzy)6dpONQ6~7dL3B;QR`wRS2JnFLv@CAvY$z7@aK?*07LYGQxAbo z0qz=q|5+hdsZw=g1BcFr?wlkj`3s9(3j+^G6rtHujKFFz29SOFbip04$@i!g!@i7f zhm9pd!0sv`6Smc2qz2z`=xb1U;OpQuF9Ft_q2YXc&(pnXIsE;1`s_ddF(BQxJuwiT zJ)zT&Q935A!zbr^dhsOWBjH9SA}Tt4hQAtA)LxqR#P2#fTX|Y3e z{XKf9IE;0XBRcA|z_GBkLI%tMcX~e=U4uR-$tSyXL*MZCkXzpWjsGcYaOr)&1~YGo zXZUXx7gy(tPW?p7jFa*!nXfZc$_Bja-<}QK`2S5DijWnVDtxyc&!D`Bi5m6eW8wo{ zMJ0dPX>*B1-RGpLxV7i=x`&VZ$`j*xrx=JDhp(fLuVK~8&m)G)XX|2Tvo0O;R$kvV{qCOeB)s;!-wJq(nFzvLjh z5lH6F8#0FRICEXP%O^y{?5(z{eMTIEprN4=6(N5Oxzwd+$zVRrT#6p;Vk!lN6`m=X zA7K5i07d+iZ?*uQV0s$|8HSp)o5gll=gHO8qf8%Nk*HvGRqDU^2jNDn{v^&Np+~+8 zz8V{KFf^ed?=|{;PvbZ*INoI@%k3{cx9?flFW%BLjT0z*Lo&qE)cuJ2VF zlUebi@R{FD2zaQ_v1_^M0|Ia1u9wRKt~Y${CY^8KI=HD*2b*Hf`_hWdo4FWj{lAx} zd`pJyId!=@1~kDm3*Akq#qnGu_CP2Hg*J}RxC&0w7sX2DeUB#}{;~kjLn}k!Bm;i_ zv5s_Yn6e#gy#7#oAB5WqPFqR?uRg6f_Gp$BIXzT;&zDqmP~}lQpzI+UtWjlW(66I8 zySH0L+PDixGDKT0YN&6DLTKl(S_^j;aGE33%~i;$hH1X`v4ew!ef2eW5$yh6CAbE( zCWWSu<8M7QBIIrBmfVrFl*aRl{6hT4v~`a_^H8bRv|4{#V?REu z;#+p5I~GSaL`e1V1rnbi-Tx z@}zRvjEGp-CurXCI-!*jqjYG(IQD-lFB;svM@O%e%q)hm*ba?W?4=fb_~~=7PuzF0YDbBWHiX|o z)=jLJv2&s_dvQvj@%nec7tAkY2>C-O{y>YIrz$8V-qM;zqf#?HydVXy1oB10ZMMi2 z9KhM5*#;Ph0>ua$AlVCD-p}8rMKk|YwCGiN4|Ks7hEN2#| z3*C8@wbyp+pad0q^|8LH^>lfDJO0pPLjIV`<-o+$`Hnt-@$+KapG2MOhwn}l8Kl)9$+CR^0*IhT{`xU34O`E7aXtUEEjyTDteftr4>jdI zB$Ui2_cPBE#A@qn=IpYNos-$0r4L>9HQ@>&Pz@zWgZ@@~6T=j!kNN(FUmQ5E$cLP+ z_i9cv%I$N4+M`!n#Y1TKD3vvyIrs8V%+-Ye#9=6lv=cM;?J@kOfFaf&EX~Qew^D0T zbBVgE*JXd1isIsG$9*3T*rBg#5tVDCSD3P{wePl0<5-QWW}a#vp688fMy7XheJL)v>#DNjmc{XMWNo3SkEBHotcDd2p> z&~Xj*iP5~_#>UjW_w6K1zo}}~LRIVVQ}wTLS!r!6-Hzm5-#oEFFH|A00kzjNU%?1|w@>Wz%g<~<&Bb7IyNpoaM5$EfG8#jL4c3GW3h*2> zj95ULY1>nFH|0!lj1V4ANSm?LD47+!s3)?#%M9A<1j|OuqB(*Z=ZXT(f3UK}ZFSjG zB+C@eTOlEbF37LBh}m48Z8(0O6ZPP9-0kB79vq0jbJ0TZo5RL&;1WYy+TYN1oo(C^ z0lbRorL}Z|?~GmbHITKo8k@V}gg!6hfn?{4Q=^RKnno!R(&@-fscFuY#njDqngm;K zTc449*B!|Ij~4z>O-)Vs!UTph@Do2gdSNW>?U{6pupl`!ss*afd9$*z3T${4`92y{ zP2_}ro?kZW-+95^ypxOhTtDEfB|kh5AsIq~zO{gDLrF?ZEZ6}FQJXY<{IzFX|4?QS z7x!Yg`}2YiT)G_|A83*?s<8wjcLsT0Zgb%#GVwqZjQ!de8lvjh&%N%sboasfe4Ec3 z@;t5#GCG+}G*@ciLHYN0ag7)1+V>jHC-GX9%7wA#p$e~3k(+!qVF1tK7am7b3jBL8 z-_?nwf39~gB6X`-&BdS_0}AL&>(h@i04N3!yhOf&#{`H5WE#;UtTz={K`LL#lc@qQ zq-jkVflnX*;BX1gm?u=`AlcH{r~gj=z0LYQ>U-y({&iBPtd-Q-fK=Raie-!)`5@41 z%k$WHvFwiJ8-LJolVCjKw0-a6WwofR&g}MNwb^*uuK&j(HLJ~1MO`)5QmUFd z>hI1E+Zy0D0_W>zu*vVJB13Hc-PC!^>l|Dnja(JK0rjFrjs zug;ZPU${r2mH1y*_V@SqB*{N{AB<~p%^RBb7Sxmm3ASBWHFKNGdMfrI^saebo&m3L zgsk22RKb(kTz|T|h0Ykfwqx@?=i*sA!6h9SfS=5U(A(K`yB&1s{Z|Cu*@DzZG?F`M z4m6yBl&99&drAK_bjK_J93M-ANcgO!)Zud4Mr5c+^=9JQRIT-`Uhw^WHhgFRg(RdL zJk1){Gg%!N=tsz}$MECw>T>9)BrjG~;4~F>>UD10=X8XOcXI{h!t)#2DTc@U2aQC32`8flFkSlFdcN=-jxxCSBCt!;Q zxs*0Z@_X~qSUJM|ahJo-C59ZoHLFlmDM5`C*GUnFwGp1DC|at7c~c>WDOzreLzs-k zwXoepQtdPi`Q4LLAbr$nzSE*6=#0StB0T#Gx@dW6wgrPg>tUW&^p~XBXQhS(cH|Ez zU*)n4G;oA8HZ%mBy6_r~&05(kRjxL7Irrbq*JMEgx~w;|;vqev-Ph-exKaiQk&Xf=8ki;EmA$dxkoqHHHY zhAy3ru3_^vB!m#W5IuEHp}Xsz0ZC*u%oyH(=Awj^m8aq?vsdHjnLA+xI;m@Xm+85^ z_E00ldng_OlI55Y|DOA@a7@vtn9Eob{{(B|UYf{dY*E`}7UQig&GAExEBy$wTh~Y4 zgi+WUpK$mivrx;1ykiL;es+ZRaXGRK){CSxE*E!TWn`#}BPKcAmPXlTcu>r>UF$QC##B$4%E$P6`TFI~O`>OQBfvgUSb z{1ipSX3&ek*rcBE{Y~v**8N)UzVR;|aFrXjOu2~E7qgS@9tMa4>j=7xnw;;X0g_doCVurU2BEH+1k4eZn6 z)~4_uP@N;%_ApwR3$xmD{C`LOns9XwXRMaLjYY#{6yvr11#A0_SECMB9-X9RXiM`q z$0uw`6i#K}4VNr6Z)~h0sB_d40nmJ{2BjCGuOrvjZNhHlH92qmN9^!p_0`KcQ}s1k zX-%ZF@beM9bqq0uY9pf+zysNy${dqQsai>i885Fw>UF0*oS1@L(gybC5PW&;Uv;RP z!|gx!1|oNKoDRVV)4L1_znquX;w>a!860gT2j)dYwnS0vyQzroYZew_|HwwK1?aow zwBOeEQ{{OvD=d^B%d-j6WOxoirGrET9t!1#b=HCQx!>pcXJ_|n?++A08P1maRUS72pBj+NTtOBgOPu4k&v|RoYQG30gR}|y_8vU)P z`!&4Gl7|*TK14a#Sy25DFvqt47oaRuFIiWPGm;o{X>{6`0=LPwO1f4!^%-KbMo$UW ztg!Is^xe#`fJemrOFKy}?ieEb;q9dKcy@UTEAdY7^=nv4k^HH2I+sk=JC1p=)rbNl zfX(?Yk;K}Vb2rpC)V_-{*&6z{W003l7I~2V*70n^nN<3#1(05PU6Lwy=w=61GEA+8 z5eQ8;Iv_~eh8U1n)-x%UheFJ!e&g@U#S#_{N3L-CQZgas?X4a!^uzV-vf0lA-zm8l zj_S)1Qo^LU000)iB##z@sQHsbIF&dL-Oj$eZW>CN;_Zx5_%fGKFGr{%p`Ni&Qj&$6 zJ0dX=lVRK`2Wl6_?vVGi6lvp~*XtdgVf?61GQ^#-7^VS_Jvq5!pDu*;Je!MaS$)ZH>4u<6JIVaj(u=kj-Ak_ zsRNneyHRHcI&))hq$q}42mlLUR7J{s)OqLRkI3ZGB4u%ebGjw!YOsxsunc$mBnH%I z$m|GCWByEW^YcT~rw1pUxx(okdlU9nZB|3+%Oab%pX@{KFs8kAf zz1o>ijhlRiUyDn?2laN44HNYxlTss-u=~ws?0$J z;an!t+$oxAy^gfi+Zb|*e9zek>BU;-{A^7eOZo@b^9m0~QWR%Vwk}v>Ev@F&q<*wH zf5Rt(gaoizu588Z;n}idvzQW9Q%e@&WwbkR;_+yYLyW;U-UZ0@&wEKzYIBdwK~LwO zS!-+aFgkP8)NC`~Hxt)Tho*h5+a$^t4^EsApY#U?d$Y2$YbV-`Z<@&w+-h$;eT{^V zja2}1x3>w%MKYC+0w=a=-ciYI!Gc+9*Bh4 z`1SRwvfyFHd#@I*Wy^#mnN~D$_OWdR zdC>ZZe%S(>0zIc7yD%f{sz*;YIaWkELXtx|7tHpg-``O>6+r*1>nnrm=%Qs0?!g@n z1W0f=Sa2t}1cJLu(BSSGJh(fA;O_2DaCdiidGp@4wL;11t(c~Pg5msNcFjmp)n3XUJaoSs82PMRV4T!`)N~$CBHvs3> zmB~UCKUJ`c^p~Rb4;$Ol-_rF#X{onj<6q+Eqrn6uz9t&&zVNX^6#sl3-Sa_Pd{inz zP5}$+#M+>0gvI-}04hV#b0^Ok!*7W0an<(*D2_EcO}V;-iyI zhU5R)oWamc)$*bPivhW?;OM;4m zIQ?(IPbulO_-?;qPX*X7N7+RaCHTN0jMg`|!ST*O!rIWxGcU-FHWUVXF;3G71N|L*n^!qIy#FS$8+iA8_@x@L7U3R*ZUJFlZajHWB#0iKZjS+E=H3vUuLNN2<~DaF=R5oB zrVbh%`veA0;!+dAud70|pSff8bmmb$rLTcfFf_&Fxt0X)o_qea+Z{T}Bs2C1^C&}A zB3%TP@O%*S6i>*~80HIoWr+oFBNA?V*m`ROz4z*pisqN+jEpp;>5KpQ?;L7+?TS?o zm>0$%3{_5x&hG2FaC-C7_tCB(2;*N`eIOus^jSK^iQm-9kYx`ec+o

P<^zUG4F@92o1a?(O23k3i#Le8Hzl7FfgyC(OX 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