From bb26607c5ba901e304a6b7c3bc1b78c57ca64d66 Mon Sep 17 00:00:00 2001 From: Juraj Oravec Date: Tue, 29 Mar 2022 00:58:20 +0200 Subject: [PATCH] Add Qml web page context menu example Signed-off-by: Juraj Oravec --- .../4.Adding_entry_to_the_web_context_menu.md | 60 ++++++++++++++++ qml/extensions/qml_tutorial_4/main.qml | 68 ++++++++++++++++++ .../qml_tutorial_4/metadata.desktop | 11 +++ .../tutorial4/populated_context_menu.png | Bin 0 -> 27894 bytes 4 files changed, 139 insertions(+) create mode 100644 qml/articles/4.Adding_entry_to_the_web_context_menu.md create mode 100644 qml/extensions/qml_tutorial_4/main.qml create mode 100644 qml/extensions/qml_tutorial_4/metadata.desktop create mode 100644 qml/images/tutorial4/populated_context_menu.png diff --git a/qml/articles/4.Adding_entry_to_the_web_context_menu.md b/qml/articles/4.Adding_entry_to_the_web_context_menu.md new file mode 100644 index 0000000..a9edb9c --- /dev/null +++ b/qml/articles/4.Adding_entry_to_the_web_context_menu.md @@ -0,0 +1,60 @@ +# Falkon QML Tutorial - 4. Adding entry to the web context extension menu + +Hello, in this chapter I will show you how to add an entry to the +context menu on the webpage. + +In the example I will reuse code from [Tutorial 3](tutorial3_link) and +increment the badge counter when menu entry is selected. + + +## Create entry in context menu + +```qml +populateWebViewMenu: function(menu, webHitTestResult) { + // Create a menu entry + var action = menu.addAction({ + text: 'Action', + icon: 'falkon' + }) + + // Bind some function to it + action.triggered.connect(function() { + // Do something + }) +} +``` + +### Argument: menu +Menu to which the action will be added. +The submenu can also be created, might be added later. For now just go +see for yourself files +[qmlmenu.h](qmlmenu_h_link) +and for exact implementation also look at +[qmlmenu.cpp](qmlmenu_cpp_link) + +### Argument: webHitTestResult +Result of a simple test, what is under the mouse? +I have use a test for an image in my example, more information can be +found in the code in file +[qmlwebhittestresult.h](qmlwebhittestresult_link) + + +## Example +The example code will add a button to main toolbar and statusbar. When +user invokes a context menu on the webpage at most 2 entries will be +added. One will be added always and second one only if the object on +which was clicked is an image. + +![Populated context menu](../images/tutorial4/populated_context_menu.png) + + +### Code +The code for this example can be found at +[extensions/qml_tutorial_4](../extensions/qml_tutorial_4) + + + +[tutorial3_link]: 3.Adding_a_button_to_the_toolbar.md +[qmlwebhittestresult_link]: https://github.com/KDE/falkon/blob/master/src/lib/plugins/qml/api/menus/qmlwebhittestresult.h +[qmlmenu_h_link]: https://github.com/KDE/falkon/blob/master/src/lib/plugins/qml/api/menus/qmlmenu.h +[qmlmenu_cpp_link]: https://github.com/KDE/falkon/blob/master/src/lib/plugins/qml/api/menus/qmlmenu.cpp diff --git a/qml/extensions/qml_tutorial_4/main.qml b/qml/extensions/qml_tutorial_4/main.qml new file mode 100644 index 0000000..ca76eef --- /dev/null +++ b/qml/extensions/qml_tutorial_4/main.qml @@ -0,0 +1,68 @@ +import org.kde.falkon 1.0 as Falkon +import QtQuick 2.3 + +Falkon.PluginInterface { + + QtObject { + id: tutorial3Object + property int clickCount + } + + init: function(state, settingsPath){ + console.log(i18n('"Tutorial4" plugin loaded')) + tutorial3Object.clickCount = 0; + } + + testPlugin: function() { + return true + } + + unload: function() { + console.log(i18n('"Tutorial4" plugin unloaded')) + } + + function buttonClicked() { + tutorial3Object.clickCount++; + console.log(i18n('"Tutorial4" clickCount increased to ' + tutorial3Object.clickCount)) + } + + Falkon.BrowserAction { + name: 'QML Tutorial 3' + identity: 'qml-tutorial-3-id' + title: i18n('Qml Tutorial 3') + toolTip: i18n('My little button') + icon: 'falkon' + badgeText: tutorial3Object.clickCount + location: Falkon.BrowserAction.NavigationToolBar | Falkon.BrowserAction.StatusBar + popup: Rectangle { + width: 100; + height: 100; + } + } + + populateWebViewMenu: function(menu, webHitTestResult) { + var action_always = menu.addAction({ + text: 'Increment counter by one', + icon: 'falkon' + }) + + action_always.triggered.connect(function() { + tutorial3Object.clickCount++; + console.log(i18n('"Tutorial4" clickCount increased to ' + tutorial3Object.clickCount)) + }) + + if (webHitTestResult.isImage()) { + var action_image = menu.addAction({ + text: 'Image, increment by two', + icon: 'falkon' + }) + + action_image.triggered.connect(function() { + tutorial3Object.clickCount += 2; + console.log(i18n('"Tutorial4" Surprise, this is an image with url: ' + webHitTestResult.imageUrl)) + console.log(i18n('"Tutorial4" clickCount increased to ' + tutorial3Object.clickCount)) + }) + } + } + +} diff --git a/qml/extensions/qml_tutorial_4/metadata.desktop b/qml/extensions/qml_tutorial_4/metadata.desktop new file mode 100644 index 0000000..da58910 --- /dev/null +++ b/qml/extensions/qml_tutorial_4/metadata.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Name=Tutorial4 QML +Comment=Example QML extension with button and context button +Icon= +Type=Service +X-Falkon-Type=Extension/Qml + +X-Falkon-Author=Juraj Oravec +X-Falkon-Email=jurajoravec@mailo.com +X-Falkon-Version=1.0.0 +X-Falkon-Settings=false diff --git a/qml/images/tutorial4/populated_context_menu.png b/qml/images/tutorial4/populated_context_menu.png new file mode 100644 index 0000000000000000000000000000000000000000..72e7e05c9ee37a8bf7e40dae2bd7fe62cc541d98 GIT binary patch literal 27894 zcmdqJcR1Jo|3CWDR7pl}($jDCiN{Gy4l&vB}cJ@ff&Zf+B z^ZopO*E!d@erH_gcg{b@`+C=Ph1cu(d^{hI`~9}=FJCnk`NIck4-yE3!6lw?Y%KjA0zv9pbFmn%f-rNS6@M!n zRhYs>TxH7IO?V{xIG>b2pxFEW`Zq{w=CcEd2!u+H7cnu4+%oqV2n5!H$#w)nFh_6) z5kcy;l+Jzv!FQMW|IfbBoV#b&V=1QbNe;re9JM|JA(;N~;lrnH6>#E<}@gX_w3E_TgOtB6)wm@=KRjIa$jAc<|p3#epf|-PQW7B?m z)1LX)p_KHA=Ng&r1(Px^9_O^eK0R{YM@Tp+EF7Wdl}~zsCUAJK(=$n584^Gz$e|!1f>o{qv#MPaK|Thm(V6R_nd=2NbcV* zD>3ibQgC|DwdLkiK6&=u@QFdQvkq%zyXKY?-`I_RAicmXk@C}A?_@fIzajC?fAX_i ze{NL`GLZ~Xv*;-E(%yMsGisGtv_LK0Rq^ed-@Y=EqsHgC$CrBd{+!xp&fr@0#YMYY zb%f8o!l65AgHryNZqEw4mrhr&v3OoO<9gx7ms+L2aTJdVpXQV5cn)*?R*^GY5f%v9 zRd6DpKy6lztGy(5Rd6*ZBGoq{!a^-AfZ^fxZ^aNYesRLRUHzUH{Z6ozXL8f~GqYV4 zu8H38CHve`GCHs+%PAUSdxV~9h*(~Bv)D_Kaz6M`kl;)Hs&B&EspErVHDrM&qkXD9 z&X0sl*B?0NWjC=%_&G%|XAt07{x|iybCcKqa(-0lRH}lEPi-l2-HKG%`mg71R(mz@ zvaw7QzGTuYAqtj7A>L;elG6wIE&P&cGsb;ZxSyW<7G>2^vKV?#aD4Naxk9>7?)IT) znu99T?J25zALS61Jc+*7y68tPJPH&(Yb^B+V`fJ7w;bm^ep?hdrW||b)xeUUWSLt_Tiqa)7;!1t`#@bIujaFjkm(2 zM|UURZ<`Wr_^Kop=dB@OT6?+ejy8$tahY7nG6xU;>dK=v2VGRmCGv(vZq}z*B`l|X zi@2W>bdq}|j55&Et^4HhT8`E0)2-}#DyjCjikXoI)s#?as(t@qsn}#o!ffuJ#TlAe zs}yYRsx;!T_Nd#@BO_ercGcuUn3GbY#NJr>yNaszEcNH)Mgs*kyjvKFUOmA>eHjuT z5z-nHxN12}m6%SOmP#Ql5=fh&9%RvGo?x?l5_%!LtKLS+QX zffR9KadGkUE3tB>h5XWrs+X2#y0S?q2+hZviFcDprp9a@FrMp9fc;)9~jnvgE#d z=kxsexBB|}#>T+s&#mq3?(k9*Go$QtM`Wa?b{^oP7qjKyHA6G!$&+1^#}m~Q7({ebR2sj08D5_1Y>JoA zEwSe+7zvWxiVO~}9C{dk!L9gC{c)qeyl!r8+!4JM9v-h7vUEQ@_w#dEp1hR#wW?~m zry#?ex?PT1QL+B@YZeBExaMXxp%?}R1_`4oVj7w#N_Le}=jBPPL`O%*$m2s)+$5x= zjdgW(-@X;w&qN0Xk}l`3tgO6!`*!c%y#oUSa&mHd+!35iXU~>+Y;U!GTK zd)egVN+{iLURH9~((>p~Ydbk*%Q`tFx!21zCOx&YwTs7%KOQ)H^XIORw5vXcJnaO^ z*iYS`p}TBt{XQ)0$CJH>Mn*?txE_u-C$6nIySS|Dez-r=Q*gH@-@Ixi>YS;wlaqw| zhGX~pI~Oio2n-A?ahR1O#=k^1jZtzfa2{9G)clZ}YxS$jmpCzA!iALa!p7F-I%B}W zFYoe9oA&M7mwmG=S}rM0(qn6N(1VJ24=E|>fddEFRbrdl+gY!Wo;d$^ZFx#^dn51Z zQyFb-?S~KFy?@W2Ti@5$_v6R%*8n=j2ySIn)z!HP$EX??ES6A1)-a=+iX=&-DrKR7Eadb2^zGT+c z*3bR@S#=)#=_~qT%-@-*J^bg-O&y)+*x1aR9FLhEL4E!HwY4=LA7VGR&AGX`1C(sH zs8@b|dKx5mDXArpLHzgZY!KNm>!QbxAFC!@u(P$5CB{})PPpK&mZDM8E?`M zdHma{Q>UV$qqqKzB@ibD&B*mc7E}FkFJB&g%J#RDdaBEtuVb`mZ2p_(M=6E;;+Kk1 zr!-5oWqTywZ8B+JUtigKZmr3e@ijj`j}@r0aCUaSbm@}rE-6UUAoeJB$9>FNF>C(ctdR~hAc9j3EiU%9v7 znV6V3@;)Tws+ARANZWyskdP!fyMCXVpHuq_mj48Py47s9Yx3jd_@?gly*I87$0&I6 z`g<{(kCJR?UaG#h_Ee0QI#CS=6km_X)`q+pca|~itmcXHj=^1u-#@!vFwoJVWll~{ ze{QIS_bBqyx}l~fMcj|$yScXf{P}ZSJysX@<$Z)PJS3#0txZu$$?~?sj~_oqE|E)* zj*hnT`jm@t9xpv|rJ#HuU%a;!nWhN&lXJ$4GJ*?#t zpv}t8&JIu|dGv-U%fZ1`Ebbx|v*&GUHX-|@_w6>Naz2KUuU4zrm#5@|W)hoy2Twio z^elB-UrEYpz(R@yW~8MB>-yaJWm<^^lVxea8IpA0_>28==gu9C8#idFsr^q#to0Sy z%uvrb47v$B&i%aPcRVESWSv8vtfw0X!=*YQ2TwI8CntCJ@@LQXE?dS8Ztqv1F!Lnx zseAeP>g_hZjysp0p#qj|jEtGpuqKf1O?_=`q^J#>wqr-8_K3BmWu}*xSAM?j@k=TyD&k-F71O0;{I;1+n(sFVn-PUZE%CDTj7ZueQzJ`WE z!o%5kcqE;d%pOZU{8{=2 zmco@Q7K1;}o;efFV{qThEHX6IX6W-?9v&WxkF|Aiby2i$7F6k5icPt z80PB#m395gtywQ}smaY^vGSZj;X&8ickYBmM%E6`FD)+%KNy%E8X^*9uq6XLVfI{G zovP!``8@7cYjyJ>y`eyIE8XQ!gCX1gHN(o0yq_8yRc_vl|1v}`=}s>fPsFf)t8SMk z*|mu_MX&jA@3m68u_?DW{jAY{iqB5XoPUzE=PWn(&3CshYRVH8A9B2NkW5Hv7B&Q1{mBjSBH|(gZ2Gi#q#fNjj&$NIiJF*}+G9ZM<8l?yKfD z@xrF;6Z;dN$O+BdOj%DIjvhPK?kvnyN|fku`!mOi#T#nLDOJOZyxd2bnM>z)|5V%q zk~EiPFR8tz`@V1>zeG&3S3a1Lg@V{Bk=SC2;2MQjIpVxDJ|DnOap0~`)C=ctn|FC6 zg&!rjX|R$plLsF1B>u`p^wSS7wBc81QgPy1wd}pP>Wz2$Y8%PS%SZH>WTnZk>hiqe znR?GbMBoC^+Pb8pgf%xzzhDnPi79av;FzXST7zf(gwk(<9iE}9FTiPZ>Uuxfz8ma6 z%QIcvX*>qwxhaVMl`SpoSsSzvME{%5BM`(GlI@yVp53(8XmJTq0MJtKq;&hicyhn; z;qpw9*DYcrJWZuei}wdgfdK1=9#T+J#>K_Ctll5G-nnv|kx{jQ<#46uVOm2eKgXyK zd;9ccWvBzZhDGF(G?sMPj82oPWz4)vFOG@n{T6l>CwFFgT2DhG1%UA0J&9YD1aa|_ zz>l$!eSLb9v1tU?6g-gQL%YfqIFg41=&1}v4)eKOkO{x-EkL%sWZyImz;d(5Iwd0` z!`pj*?kNtA+Am*jfAy!CaY+p4)GyAr0lM{mB1hfK;;bqtYp#)VV>?%q$C+_2J+r5w zR!Qpej||PR-@nmDt_d&v+W?XxuTPQ>A|)YlUHq+l<3d@#n2i4bzyIe? ze+eH+jLUaw&ykojyv2jM1AnVrCsFQpRFDTf4!#G z9GChdhvW+{DAY!GV5bp()a{zUGMh0K#Zbkx^z?yJr%;vD9G!x1KYrM)Elre{m!r#Z zz5_@_Yan5~;M!Yw54ce=obw{_-u?SEH8i;J&YULZ=Gtm%WQ>g4Ey0;tS@Hq21$I*% z=S&+jwew8SPVV2o4_JmJWDvA?852XNeN9>Uds|yuPmgnFw*D8d!;8zyryPokim-EL z2P-^&q-$VRftW|Qj~xqZZf?H#bf2i0Shh~Vm8)0h0Wq&#V~{lG47LUR(viLWjc+~R zmrXniE!*adtJB_RC#(ZfQtn(+nmA$II^&Xc!EH_9^5xv_>F|S@XlXUWxaN1+*`&-% zzrWK-N=n|oJ^bz+?`tV3sY=vdGU58tM;S%=USeSkdTrxI$NE54pk3EH zLmC>IGbs7t;aG-KY&~FJ#SXLa`Aa48V?TdZ-r{X&XaFbk-Hmok#jQ6!JiJ&JbcAp) zE$eAVZQxA>SG_aht@O<3FF!uyq`Mx8T6liO{dQ{LfuxKKI&$)hBetGuwzjsHEnV{GJ&FWv_Yj+{lU?|4f#N>z?zAW+69bJqr{!DB!d=4eSiBw z4JY{JOWVJ5hLhbEcklKJpKm^V@g9S#XJ%mTQssfThs-=YIm|L%nffK+#UXXZIOSB# zOMmBY;|n)yR05#<x z*a$#sBSZL!3yyQQ93B6T)P;I%%-4X{yeLV}$UxmQH#8iYnb9{e7%Vre`TF&K-$yG{ zK+pit#`exstSzbu@UsBz40t#yNJvBky9dG1**Q8UX8->EE>2Fl-Il1RGBRI$e0+e# zR|3dvg#o|}$k^H0b#;585`Qc%#)JL_KH1dN)Y3xEtgfYHW@6$s{1*%3Fgw6NLxbyJ zKI$HsXpT|^!sD^Mx%&E&-^%Qus_g~lXI@?`p4|Gy?SJ@cYHGyA#b>+o@ZvQsEmx;>!ewOxWJ8a;v$waTxH!5?Lr?F#&F_Z%{QUkBhxN5JF;P)N>hS33ox0k0E$C_q0c%?o- z=TZ2G=W_S%-Tiy^_z2e926}nzQ&dz`R#rZJ`fUV{LAF-zYc9r*yXFj}PLlj}HBdN7 zLb%tiOl$Zv?DYRDZb~`l;_vSzPKzeEe(x`rm6UAl?a{*=#`MH4To?e0vdR8o#eeQx z^;cK+?(Xh8CMNdQ=U**;A`W~dV>~u;O;e(;U*de9q%#`9|G3jX3SUrP{|0Dk!npTm z2GncYqu-gI`aYYE?X#QeJn5GBE z2X{Anl|Rsybk7t)t^txzRaKpoyO5x&az+B!uClTc_}2K&ow)N(*REa-=|a=~G-^%7 zr86=%whC&EEwDT_sDI}_tsUijwl?ZYrPLD1nDHljd2tivblcPLqV{g z?yA^Y%SbsuP}k7F;fKyqZ1Lla(ep{DAJLJK!EI50(E8R_W(o@nL)ld?*iEW~W1yct zefl&bJ^eVh-rx1v3d(9uF0Mld5BBg!JS!-$b9P?q$kN4%(laoa3-q9hNt{2wXV)ie zul~M1Fg~i+$*Ah7siua8i7#HfC@U+=$(hBE`RW5<{QmvhW%Z963KyDk+Vzuf)6zV> zypB^*iHnIXIF_R57*x3HtE%SY=3eEbxN~O|FNJ-psjf~!!*5(4&IN4<^@*6-&dv^1 z3@ZlezC1g)4L;7#&p+}Q-^2>yJ-#ExmoB0-wXS(Bzy8s5#!P%hKLY zK1;V|cpj^xrK#yn=Dhej0N?|PoR${#RVF5;pV0D%6HywihQHqH$)5mEbiFW$QrO!1 zLSc$z-)*4Ktc|%>cn{t8#=Z)y2T4d`1A2at>$g`{+)}3<%t#+ z``+nzzT01cY~n!FIcVtVl{m*IC)fV|)vIui(^_6!Tpz!_H;w?}K&ADey!uUKIKC|> zD@!KIup_4FU%h%U>jZ@7s}X_%0zO_(ATl1N6S8cGiM*^!e4RS6M=Q zv>LyCJHx@jWG$Ba%_z6lo*J^Rq$Gr}qe3xpv9bPSwC5dprOifaL#|!BhUdlh9R3CO zNl%DtMn*6Vp?b}Jk#mHmB9bb;mn3_kVz&%mc> zIio4F7sdZQ3vlnA+tN5BMm0LRnA6waSmOAXdZwpa04!<0fAi)|VPUwd5izsHVEpIL z(v#-Tq?woB==hF-)s@)K@bmE%xvksdsAGA|1!$#f>*^+;4C8?*C@DdiOpJ=s);+;F zZicE|PK<5Tk|h82>sN7yKbD2hlGD-@w6&v(FX4~qFdt4ieYVB84m&%GZWzz+9D*~WDynZ zuB?2dhl5eY>#wD9`SQ@>zxFaP&#XQL-Cw}?5WoODAwj0x_n80n%+K#ooC>>6f>h^| zo;51gbLT>PR<7_02qbqjma`Zcu)3)~d^m^Frmv?5Rb5&}2K>4pKOZCl=9h@dKf;u}bBCWQYTxYeGaH8X7`3*qX0l6u#f5@FzVxyWDB<4QTR*4-Pno zCH>6O#EFpgfGZmlBqap|+Hv)3Yx!wuwVj=vKYoPCC6&2vI@i581+{PF2m$@u#%A&7 z&s(T2LNQsdUmKa3?TCs;kG3ySoV}3=1@RglQ$WCB!RrZPb{23xu#s@((}NY;a5!oM z1;8L8xb=HbtI-N=Y-~KX{+Ytzftne9KRL`XkY4nfzW(NTOA=TCIN(i1Mfg(s#EGDB zK$CA$Q~hLF?%tikwlHmqFX()_H{o#W+J5v<%Jsub6}NM>JT{j#=?*1Gdc;qwOF08N zFakMu6ZPR8LE_uF0EH88tcnpAT)*8LgdT(v@*d3)wp^~(e<{80vh3kFN$1X;)70#Q ztkKcg>HX}PsJM7&86CMaU~b;KcRStmu7$<_3UhU|wDgK?-%8y7WAJNu7(xu*%w}Pv z4s{OY=DiK6l{|4Gpf2&AU7)}Z9?U{$CNF{M1uvxtq5v8I973w&$G_Ipq++*~c>;0_ zmb-z5(2&TXj)!yUqVUO2?=&gUWB5eiN$9Z3n~{f@N2aHhQrmX#+VznB$l=3qnEp=w z$j~hgx$(;hNcTOw32uE)o6jYW!!5{8yg$oX~4|`1%|e|#wD>M ziRG=2de$OXV1RbV29g~-Z~#PVV#KjWQT)wp(>dGm=Akd%x>{Pn`W51B&(B@Yb_ZZ05tbe|X-P1)caJcH<-sh{W6yp1jP{u2~3tnwi@ z%4r0bgEYTrz(Pc@r3~(nWD?(aVQXjCyEzqR;#*L;vDBtY#dDMOf($#T+HORuUUB`j zNzT^P(o$e}>RV^50$9=*E85Nv&+@yy+in7ZFSw&5zRMx#oJqs2T&=3qF!ij`>w6K% zN?y)p56|&+cFwt3R=&Npe&abJQ+Y5+a;G6+`;%A~;A~WpJtAh#J?MgR15Yk>-+sd1 zgBNvXjYb}J?XlM4@FcU-;*f4@kwyfJBzc)zE^d{uS>nab&MpkCesTbn?aTSkghw6t zohwHeFC;fUewCIcV)aYbf+*KM68?NzTAIp1Qo@|wll+0ODq4-SlU|fts}K2gYi*sJBqI=h;nJfZaipi8 zv0jdOP)@^VB->_$@=xxPb%lgsU}(PJB6Mj@ZvugAe*mw(T&8G>`5_WRoG%=y!KMY*$O}%f{yuP=0j?!#W0?o{w<^w7Osp{?;`}?!m~FM8*oN@Ubab8ZT;pdVWhE)cIjce zZxYQ)txZgtgO~Rq5O4w&9YN~J#gj@@WOr#El+9>w%6bA0i_3KtaB_0q$kr1zt_=n{z%l;&*AXc5u~c(Qr^dBw z&i@uhQBbPO$#?&}yC;A*?n-92XJldijJI%Bk4MxDZ?|X>*Ji{Ti?V@1MR$_W{XR!L zJV-@AjvLVTtgNiSClZ!iFT_YOVJD=)qxHN?)ZFr_aNup#`#AvRs^6(w>Hvt@Sy^GB zq3aK<3M4^O$))ki(K7p1uigMRV=3IWG@bf0ROH^@v%Wg($6$2#E*&+s!j`iwtY%zq zh(h~;7HlPV`@3`m1KPAKhj^Is*Ssw)c?=B=XWSbDZML^Im!~@7*N2I7Puzn|Y(4i3kyjUuq3*?}_O8I(o}mroA?GjL)k>#^*3V^wA4(T5@}EiKpI zD47eLLC@ok5Wm+W;28}0Afi4F_!~>Su(*ge1u7Lt_Wr{M)ytRb8X9bEY?9h0svd*v z!rX?uVJRfe$7cl%faI%pdg~*i-Pr~ejV5`FlJ1t~=1ypD&?-V*0{s1P&Om8QOnw8v z-7z+f4!DOpgNmaBp3&44^!$0Wgo{woT}Y#_mA~Vao0=*h;Vg{S$4KlRzmJ7>5=;BU z%F7#ED{kP2n}EzA+#eqsYkB9+GTsK}{N$uXZW%_c%;5woY6Ky*-0P+(vquF0Ux`Of|O?*A6mZmV&5d5fUoc+hy4KQl7{WY=!o$bS2_yUfMm(xvKPW|>0EZWea-vB}9R zdYiaGQFBDP;{ACWRbfnYsONdTRN+-k# zGRnks3nDjyD@saAvc%sb`D8%%BAGkTe<6dkw=WHpxezBph=YN8AI}K4#CVvEjqPi9 zHw`n~G(oquB_|jmk-U$o6b)6S&{$hAQvO2RrGCE&feA)q+(B}w? zgf8J+up=TOmp^~`@>WKuFo$Qc`n0qH2vY90&gs~&Fl;peK$5nQ8*LiyQvToIYvcADH=ycLnCU@ zo>nO9KGw)!lvrLK|J?+#=8NrhoG8?Z+84lWI5R3HCT!kcM4c9rVcX0ze}+^2J}=J~ z$iXPDyD34EJsc?_L5p^dNh%WT29Q7ODg8DDNao-SA;H0OYs+^@z2UJ68rPC}szCyG zci#eBuhwt z@T<+aFGsdF7MsAdkjF^N%5p;#;?X0Z*a_~PD@7_x`G`+)0Aai%9(ei)v3eo_tb1keY^uLF6G5)RE%iwFm=u=7B%I zM9R%tUV}5midaeO=!l&@J<)04acun&jjd{Mhqw%+8KBR%x;17B z0D=6w2L45I-hgeISE7@X7m6A)Q0}Iv6k%ax1iJp-*1!Rra4-<(x^FD-R|yxXf}8*_dmGoHsCVzoFFlh z5dy*e5TH!Nm1ytH3d>=#1mjovru$yx==_)p#=t3yQ;R#LQ5k-UpXND| z&(t7Hr0T||TfC7TfdtUwi#8; zjEz}^KAm2!?$JEM!t%MZ(*fP{KmO?**m{A(RWWs4U0Ps8xH?o}P*>p@J_<6jTNV~# zQ1*V^In8|j{CRHfMo3Wu1MU#4ZN?hy?CtSvT*SZ9)6t20Y;BOAl&h_;@9piqE?xn> z9}8$u>S(oNWSV?mn4cfAE*hCV2!$XT&1leL8{++1#rEa{$hj!#pjSp?V~hU~Ps+HF z1#$MOhQ{*J66^X!!1uwAR$l-DDl2c{)&85H*;1A7IR6V$D7-K7Q~mw@ZyDK8F!INv)E8jc>2q7iK< zFa|_CKs=mY5izlz?rvX(soB}V5{CyQU(ymB5R^Q7HUr8SzN266`mZ@rModi1h%$0R z9?cU>9%m0v7rpYl-5%Ev1!F_QPeTtuqa470@Ze32je{A4p;>)zXu!1&O-%elMkq(G zh@Xoq3mkjm6g@pXw!{g zebcTULMlpb)pPw4do*a@;yVy@XO`UyQr=4Uw7$&^;F_kurayt+Ef1dT@JCOxrqxZ* z&4roI+D39C>8a)$29->wDu^2TDvAwnWoPd0kRpLB2j4&8?{$q#O*Q|^&bWl$W~$XnYsSBQ%!- zcyi`Oq$J4&Orm|b#Fd(RMDnbZB>$Pfqo$U0FGbw}O4(7IaYnNPiER&|edJ!a-P2k~ zCu(gB&gjc?<^a$ZfKU4;%NSCYgoucUmoJwLvNPVk{Z}2RK_EQJA9zebK~d#Cv4t#J z&ngALAr_8B^Pj7`qoc^Ow|txCFJvn5wLSV8>du2Tzg>i%hlm1r85E|^vZDEg7YDi) zzPT+dElxt{r%zrE{5(8gd$r=gOsl@WKU!5`p^#lY>R#Q|BSeILGW-C=v16x%(%adU zb$jfUJ#>6F!wH1(8?Ww_CAqH8e5mrC-2+eAsIr zuKLAwns1<@{a;MX{C%ROr6qgm5)yHDOikr4T|(%VpL(Wyzoxvrcm3$(__#nn8fVq0 zb&SgC{gs;g*Rr14cZ7=y5F34Y{{WZ{=_cGa&=HUiWK*bPBDUkf7%F+hTYX^969}i! zGF3hvComkuuQqjBRxHEHL0KyxB|UONKvHGI^8lrUYP|ZjYZQu8u)WZ{{vruh%VjI3 z&q`4+Y;YB&=i^5a85x<$zW7(`kK7Skd4u1MXIE8;vZh8} zL!%%i@@)Wbm8fY$q!n-t*aeC*rA&HvZ*OXHvayK?z+_0<bQ`M8TgqJ20|e@~5)5trD>gr%fhI{whc=FouyG}zlv z-}3U#b<5tjuyFnle1)`v(}d=nzsXHXFQTTU^%0~28A#}H&d?N4?;Pyy;m5qp0&fXB zc2!ARyXegu6F^Cr8xVhT3kpuL2Ql#8dIWJ31rlP-PWBS*;9G5N@Yo>iGx$kpypV7v zhllg-c5>&|nG^jz-&{y4wkN8)j&;Bpsy6`K&5sXv!jvo_91;=|tgKbIE9!vO{{w*e zIFjio^T_ZpjAsqcW|%dwv;TW&x2M#}#>|X^ugOte{UxI7Nc{FX9^&KUYiw++dW<_t zfNh68^w;%*w8DR&XjP;nz#Y2#ek%n_OG^!nFo61ujI+{a@Q2Xqp`KPvJqCZUcDDeE z2kWDUh6^@Z#ee|MgYNgESn`CecSL`wkiZCB_<8Y#-(sWW_S)Ugp1zFV5qrqY1dL7s z1jbrJVY2Lgk0&e#lFbY~L0wNzX~b6A*mxxEY7$4MvlMrQ`=*Yv@?qwkjO-CccOYkL zO(afwhbwHxNORQ;44O>xQ22dgRXnfgJ$Ywb_X6w=I}LjVis_ltr^&w*Bg4T4&%|{U z5r8Wv_#u6;g*pv?J#4KgD=Q0{XxMXlZV+(;+oNou=6CNpu%GW+9J%ZntffNbVsM4* z;4@^k@kN}-=>B&IG()?{dK8E)3=xd5Fj0C^?H6)MS8F8RtlT0$_zdThm>IQ~VVuy*QNF4DNP-no)sn{vxBW-<7Cuc45HRAzneVh$qz9z#2K(xxt}MhucV+* z3+n2-ZwWwiW5e~(p+go#;K^$=xR8hRv;8H)MbC=+ZUQes7YSkzm&**KIp@^}n_g*# zlND5hon4+2CH$l(Os47=j>u(|$P*XS;k?OM_Iq`?d#%0)?JL>{a3fE|cZ_cqaKVM+??%mcbQh3;^AH54h!opH+j3_H9)s6y%HN=V{ zFm>pebgn+wjOzsta7LUV^VMJ};r-?e`4xK)xyMSFHhyNL3Jz%5v!Hm&=wfE$33Bp~ z$VenJW&q0(hDmT=J5XcwtH9XN5fmpDmY=t`Jm^?y=>~M?y}LevgXsi~Kn+6ADfZZQ z*V5{O*HriC>DO@;JA#b(m0ePM zckYTy_k)hM4mOSNJ@y4h#QqC)cNCm&y5$o7Z2 z`%m%kG$Antm1F02zkRcQ_z>eKND~R>uGWT}gaJ2};8B>DhoXqs1gqF06Zk%DoJtLx zkCe6vW8r^qG6+78bCf=f-JLkwW^yR>ZE3*0sTZb*_F${R6hZVzpFvUhhjKapvmP-s zQ%2?P{xhjqt+S_3`__+In49mIyI{t_Z5QPc;FQ{bONmpU)Cr!nrMw%0&tNA0TvWE2Ovz6yDn#+Feyynd6Np0RtH zM3znY$`$OcvJdXAJL_ZSW6)G>(M_Vn zdXL|>f37@qMK3QcJ!^cNnwJDqG1JW%wv^b$m{-~fcbto5IsZ$DR4V3l!L4WC11tSr zSK7p~cV?@bcw!dkhPwJYgNVL$KdOQwLEX=0wViKb@ut%T-PZ$ZhRN$Ozq0G`Eu=!B z(jbbhpsH%{@gZ};9Lx<^{*LEwT3OA*i)x4S^ztP)40Npy%h(ZI zXV3c836k*j&9PyP(zLL3}vpo-bqe?To{4N=NKseX#wH#McArPaB9o$}~W*5g7~ zE5Ckah0*_O*tN| z_UkUl{2hJz$?-+BdN%FpEDis2R!N_PilakyC65HiiCd40T&{QC6^Pv!T2rS6kcQhfCh=GA_8>v2}r41xxOrA~Q>oFcJ-nG3{w+iPk}VJ+>9 zW1Rx423vxDF*!0KVEEY+5C3~_uQ(f<2}G^s(>;tv|?t>O!D$IK!T^woWWd>{*^1w&;LLxhA?-S zgam4M?{onvgILwj!<~DcnkoUGKBXAWk$7d9d=jG>fa&Y(r1wC-yM@1EZ5rkMt z4|kMGu!0?>0@>TzvWkrbMdVwtb3h;8sKf!yD_Cxujr7y!1I4e*D4g_CI--4?R_J&C zak0Y(9GAZo)U*q$pFTaTadL4%#wD;bc8lX&aoFN5>O$Nh6cJ|6u-VNg|2+$UOD!>~ zes13O2J#FFISiKsiInkS1 znpRw_#FV7pdR^{W=AjQGxUQ;Q2~9kloa)!F%MfD-jxVYqe2d8R&K+_DWCZ?Kl=$F3 zC=u)A^8=12g(yQ=0tG8S|BK=)dbwO<%&i>KK90AS@C?tKQeMz7qp$h^Gm$BzIE zfLX&Nf+h<=C7@rW=Y&5-yOfkjLTJdPK{v2q;NL8V1avFj93&-Wi@<%RBqp|`sxo>u zrzl2XDon_vf!dR-CEO0-<2T+x)O=6=6Nl-8jKpg_f>ejLQP{?zM`X^MYl2QE83RgV zo}vXm5b$gZxl*P%P=6tPu#v7k;hE#Vg6gZWEauDuXNM2mcqX(y^ zrs^~vOH~@>l1a;6SAs~CCm$9b{-R#CCmo7 zh#jOh%zDI9AHYJlm>iJTLQZC9HzAhnx)hsm)E_qu`v+vPj*Dbp5+JQ!%7q3Kt0KMJ zJNRkth?wy3m61A1Y>Qt_fB*h9DH%k#nc{=oeH@5SyqO@SRY3x|E{6P3_xy2N`J_GC zS6l8fD+gZ_vijzqOFTAQ9kJLQnHCZ9JY4Szi?C#>>_O8jEi_?=Psz6aQ^x}DAn_ka zS#>B-|HcS^Wue(xw)@lWLNfo3&7kX2kOF*1HdzJ zA}kgb&)S^l0F3hf)Ggs9X0%G^_aJsV8gJQK)ioA>9fSCDrYeX;YkRD&uA1g*p(x!m zGy7;abtBIk?gl0`K*>UMq1Il%cCEG}HGE?g_tK7DG+gS$aKh2HaYX;{k=1ew`g3Of z7vfY*d8tYE$vC`lzNsUld|-=(XWCq@Z!E3?6M+y7kqcH);pXRu<y3OixO7HipN%4I{(DJ8+Sx)GKc_H%b@5gdiVr-Yory{*jwIkGPD{_i>k%Y0$0b z2rS}2K*K`_7a$`#qZTOd+G&*u1va)-m(~v7?W;Selqm1)G?FHz$ zo|MC(bMPzFfWE%-A|hQN)!$7pSO_qJNZg*idkg04lpw4_)`Ia2T?sZA^296-8k(AD zl5L+qf9~y#>4}sB;8>_Z6a^|EBH7T_q1!}?Sh2Lky|LStu&zVyHoxLsrOn|R&jWrO zE2~jucNV5#+}|=`7Cu_(ao#9LzSvLpb<>4y^kxheVp<2|Y?$&m!N@px?QB)ZNqG_a z#wJPlpQbxKGb+jn%)9C1FVh55RAZQ&NdB;e)~Rc1Qf2(CsjA|HZ-w;*I{*-KTw8jZ zlfxsO_U>IXpb&Fl7vju$QqO*-|b}&K)r$I+|8kSopz%2a^Mcv4LQ|uTaa=)7N)8ACGY( zP#9P^Kx@6Ny<-*f+}*qu%R?&0T}$TYN_c7K>=K2to)?ul+>dYf(GFi}ZB^o*CEn{O z`}b);U}1Ijv$$g?$N4KZS7OS`w=fk_EEaquZPxJ=$+89|wxRbs$zuuYLJDIEw+<{XekVk&CV4DCd$4yyz%-(tzVqL{3X&U)9ajvIo6j*C;K!!`V17RQa#{t8y}doQ z9@h+_VV349bA?dUdyDPPit00ti|{@WX@A5v6c_vr8*2jR29fbYgYa*E#<@ z&0i|*?HYD=j}meazc_hP#&WGV2l*xaTeoiM^_e!xb{&`1L5z=uJ$WAkK0d+B1FsdA z)oJ$KX+a{m^oftx-(|hb@b8tft!y%#hiApjn*{yRb>`p7R~(0AglU8sN9p5!%Wv~c zb~hiyH;w&C?u?cI@1@sXKnUvN9J3 z2TWaLf-ygi*Qw&x*6v0|5p@eP58@C=Q|6EU!H^j01LhCl!b0i-u!3&)U!Pj=4&%v4 z9-v?%IfbX6UrMA9?Vk@tU`<^j2KWO4hRca#1IPr;&h=~3-*Km}z|<#Bz^I1_ z2o>SV^z)z~yg^^SIb}rssC5xnK=@X_!ytLhK!wL3GFV-XOXF8_#kO#Q^)P^&B!6U5 z4nzWS$bYGGz8Sz`PrsW$WQ*i@hd?Lt1a~_)jqFf&5b~=6{aAqMjxvVKs|}XqLB(bv z*LF8F zmI7VB<4xw08pdxlJ~iw@F?DlwMK-Anbsm-p^w=HoN<<_wG7@Ev1ua)xoQ_!lgcZ~k zRt%!w&^LA_IzR?c5{a1+@&nwuo~i;U2gm?NK6otkztmPd6WAGukcSl&{llCsQVh6} z3(Mh%pQAi{xYvu2{X=w3EW@u!yh54lKWil=e|*{jrdDv+F_E+ix9Ha-D2$Dj)n!#x z`SI-;d~%k5?>1rX+})VMsFnP;oMBhgLxnDLBr7IA{4&~c>_AB7kbTm$>z%p|mdjVo zuO_-(e;b@HJTsNgbM87mGRvx_PyN^0X`80?(V#J>MyE!bMw*G!i zJo?45tP}`FLG&sE56YQ&o?Cx0sRbn&>Mu7Bj|1cqm(^^fhjn#hFdqk*QctfB9F&Lv zMf{{YJ^F9C)v#A;YAU2*h)|eVw6e-gNEm#h90LZtxUdi$i#5dKMQ6-Rz0Przk}?#s zJU(XvVkkihVN4YjQeRnY&s~HDBuQ{$VbkEy)!x5y<)C#xK6HSOFBhgTbaBLC&z?Wu zS6TTAIik53x`4fHo60zMt0 zA@63n>uJOoNT$$&@ZlAr&PyCGuy82%A+eb4Yi(;gCoHV0sJNR@RZ|0^jcFh3F4udK zeH9+tSZf7kgoQpDRUaIg#9o0drj4;iesXvTsXxAO9G%Rm*uv40w?~}y96vwa`pI<1 zj~~d;IXOG;1bs9#>G5e-{?=+7?SK&>D-ge|L3Q9?e){wYq6R)?ATKXei7jZ}Y6lX4 zEhwm(n3!N|{^`m+DJi)Pj|l3uf|e!>Zw(CzQ08}S-d%(Lq+fg64uR8zF;E^}_Io}N5$a>dz(5{PudT0Rp7mf*&29p!GqemX7dsLZ zNo-O`CaAOOXMX&b=L3U4S67!VK+e>}WETO7K8)p%NK(QpH4bRz3QOK{yXB`O%fMoN zvp-8F67AkCyOyotMn<7=^R#f-ZjxY^=$q|=)};J@{ca}F))Pg0O{F*l=rc%N+6~Ri-o^&LlnV+OK4=8^=xdP@2Q(}UASkec`=NDU zx(0?Mo(+XByo|n%j(r5OW5@1nwi5{7zki3qJDjuPK}Isw?9kDrCF=90!o2O~J4fzY zYBb7^M|9fBDjxf=G{yKIx7I!v__)UK9mD2#Td~bS1JVFF7%_}UgfKA?M4yn*5fMPm zfWQ?Le4@0qv?7a?6V+;s7vM5!DZ=JhTh%ZMKSH?mwVV&rtpoz56CsDyIL8Y52iB~f zF%`f=YdJWavXbY6xeXs#R;jp zTrmqDXgD*2QK{U*Lb*h>+y6^v*Bw`57`9(Yo03x65-JUn7AmD76z!>@DGF`vB`I!&X04>`@YZf-1l`~_jTQUdwzi*@Ai^Z z_irrZS4|E*QhcFFk`t?|G`0w;GDH1>G!=6Of&o-Wuw3K&AobXnfX+Ta)U3;bs_aJQ zZ)=18M8y?}3On|J2_dhpe*gLNF<6#JCJ3fTOV*!5l*v^lr^40KJa63sDqC7uz;q%M zhA=noU|;oeb2%23Gi>vioomw97nm&+}6%zfRCj+%7lmL~t2 zAES*@gErxGm)^4rFCiYgj?pV=Lf|m2L(XXVFBuma8cO}gQvVQjM;&R}|V2l-stQbf3kJcvew?aD_e^UOox)Xx|~9mAd`9 zgph(70)48Om>v{O6|QCVlF?em#$Z*UF6kQ>Fwxbmo03mObb#pQa?Y2zxtlo6utb7+ zIIIQu330smv16!GluO8i73>@wV4h9Bz%R}wEGL&(WdNNhgPeK35#tYr z@Brd1eh=aeq&(al+-vA!Y@|D^WcjB+;DYo9)iD}DrM?^G+1b}&Tt|!_T4Rz5tYZDf z@jiDp_MddLr(xeVnukITmITU&3S)}Op8HP^5MU|WD^Lt>EEdKrKMDD zYU{11UDw}WWM#=xl{-@Wrgs2+0Mj)`ZYC!5RhOsxmM;s|Q2-C1t|3`PM|Le2Hy@_X zku4xQX#OPzmIoC4*QNR)D#5{A`SS-TiGqML%@7(Ubh9uJ?Q>fjEMsEO*=lLEHZ4H9=OpSKi&<=L#s&Hzbk4U-nBwQ4K7_q zQP$117THnEQR`a@oo;IS7_V-50INh!4y>E3tgO(R_5jm>T_|U52Nj8Y82)3_Upb|- zqXQyOOa=q*d7`z`pYTg@kvLpu%Sp@vUEm|BFJ6G|LaW{ek00O*!W#Wnjs$l<>%4h2iVj;QZ#x!^M?=`i>?T0#z5(2cemtSSnj(YIh*%!*#Hgu(h{` z$e{;`038%Ic6I?Knt1_cwtKgQ$Uz&xwuHK$pD8^hCGgnV-X?OAhli#2f<_Vy^Qgsk znb5j+wYS$42QfXRGt;**!Z{Zbx(Wgq!{Z2f9)^NzeY>G{g7y*s=;FmzFv;d=UwV38 zy?zaqr^VqXz;>7y6c7`X(WawIH}=IMbx00F4`H2nZrx zJt90D&7pXBL^CrTe0}BS1epb+ZjCkU9CO)^j0xnzN{8@N)!ki~mF4(_gA=QasZ@a9 zl$4YzUVE9yPwm=q+r@P^2ZxY|hyxB28qSF1NE)M~DR161H#Mz7o`4>yovrQ1Sjnui zGH*m5f&h^L;LRAC2Q4Z+Jv~HBw6tO7R-3a=knqunUoq693OK;*-n5V=xg^}ap%=OF zSb#j|Z$!UXaEc3608ar~jSTrI1|xs-e`z5?dqa4r6e_dV+ee3oPx*vV2Jlc-8l_H| zC;K!x*K(HyK07lhce9DgiZ_JG0a>-hgvTE?d25sTdisfD!^zvT#08RqP|F5(Es*kjy|p1X(vqX#~BQ-u$q9 z2x>OZ;p6CN@LqE6v+}ySkB|L8(8f+fqyW_k`Rzf*P+&X4@4*8GOV{AQz|o;RTTrn8 zrbv?*gaSD8aa1qUn0ov6W0I0BA3kha<$O0}v1@?ikuw`DZ({6KoU~J&>3z7xTwNt% z&h4P3Rb=}!z)p7F2M;=uiS6DJ@}QGbETkm(P4L@idEjmVWdXG|ID6bWJGphA$&`CJ=1)(uPZVnBqVVgSH#AN7IZ*1^~p$?rsz=N9m-@Q z49htRhh{58vB37qnzR=$wrm2$A`B@&?+cfPMPs5F9~lu77bhpsF|#>236TTB zFByRVh12ASH3ifn{GdvPwF!(MO)wb&jMdWIYyy2MP`caH7hrAdsjl8$8p3QnfJf}? zV1NI)1CjMFZB$jMCTGx)0+!Z~V4xxgBZiJ0Dn4FjbS(P|9ZlusiHH8Gd30AFyoCT7gTfTs3y--%AMh)uun_blB>_bUt`P7C1^B)H+_xz%wsSy~3KB21 zub>wn6huyZ#pMxxo6RJ{ygRY6o?is8xEXy&j}019dstcd`1p8^a1x)px*kIWm6}RH zdH2aSp-4#=Arce#)gMHFqh?6lz?~UQHDf)n{c*d1W2B5xf0Ck*S=(9J$KMXi?eO_ zirC_)tV|K5rlX}*g7#(5qxmv6vVTH|dOl)sMe&hTfss($gQJC6Q{Le&FV<5dUWS>S z-5yRTJG&yx$r}3u$_dxSyl0OG=#k!DL-a_Y9K~Y5hXD_}zM-MAl9EZOdkzG!5GDg! zfy-A&62}oVFu2H%1OGTN5!!FrtO%GtCYfA;fx*1k-v$%|SH^wZ^_-@rn6&hsUqJtlXJ@!e?SNvK6Jm2YC+h75QhC)HZ$XZe}!pu z%pI@>5@9r|$0jD~pzQ`kefV&0Y1)X8hff_!PSkoOCC7J%VbK@o<`h2NL=gw^A}wvr z=x+eFhT7%BAg8PcHffZ%mW|mb{;N)arxkRuJx&1h7ubLmNz+5dpWNBVa<((A4c;!_ z^R~hA;e*GIKjCzidwD1;*PZU(_VoFKJ<ePr41XTv}Os*J&N{XhF}^L=HLf9_gU@QzOHFTtO2RoSPQJ)bR89uC zMI_c~>vZpEqa06bTq|!>)-6qkpxce_(tEj7+piS#PtrVPCS6g4E>Ttzw zJia=&xBp{@B}Uzc)GO8R4^nzx;O4A)Cp6P^waIv~r{<@wv7yi3k^J0)^zjw9UcY=k zwR~Qp?soA$-OwsCa=B11(j#TNUr)q>RXkFY+n3(#4N+es2)etQeP<0gP&P6s>-B@K!; zMelh1WHqKKWJ&tg>Yq+YiMydxMw!N`X(^%44X?RM&3_wiuxW{Gf17vgn^f<$nd!-S zTDr!DMliUsf&w{p7BNf4iyz}kkFsP9ymL03{UsO96|AIGSN_i9hqJqOf7A24rb`D2 zLY!@2`IPES!!9B!Jyq_{;e2R7-sF}WmJBxc}3ZEEcaW;vh>|h8p*;u zJlLfAlT-sa&5w`NexI7LR{M3LmGXx$P`zaucsw z5~`2ymlme|p^3lfU^qc$!nixoyzIgS+tYX_QqtU}`OuL@u78Q1t%cHgVs1NI{CYRZ z8*YOeqLGYRM?<{151*vE_s2W3`Tmfkj;@Yrxev>;3tg|9^S`B6oKv^Cz1Xp!H)6p% zI;BAs;Padma&^_Mr@K?K_m?#5?Cgze-dpG0^|j-;&a|tVs`w>p=y*&hC=ReR+NnOQ z7B@J*{aErdg2ZF{>})z;_u-Z+wpRxi>vvBV{k%JOlb_(V7}1M~WfT1z`H)FZCuaXi z9mYlpRqpfuKhSkoziI(vrm$?NUeX^kn!LWQuED)YiA{y!#?I%DPTg!}0*y z;EsdYy5>(a-n~?1E}H0^445|ZjX$P%O8c~X&%@wbGEXC_lMl0oCuO=S{Hzb=uwvH9 zciB$6-Nir@^>XsarM0(SuWtXnx|g>~)zqfE%h>v-ZP`Ul-HXPC4iz3{aT$3}Ue4CJ zybcbgN;&50FLFjjE0CZ6u%36p`?v2&M_RTJb+pd3gJq5>dHY;cn?GK9cJ}Ymj$oee z8_f+)lbTxlKNWL(=xN72h@0{HuHkKRZMAu_)z(=_$3?|P&-K!lhxe3I%#U!NZTQ$2 z7V2qW)a|E`LP_ybyEiS`mu45W*8W=3w1k?cqvH_Wd%Hwa?F)X15fLms6T=e}#6or{ zV^AlD4)es4t&Uh*yMTc3kkf1}!cuD3J?lfw9FEc9mMNX-P8%h5g-x9oA}p;f_yqP! zSV-6joS7&{E``+W;X~>44X zw2m^3k3Z*oZy?&*HF)H(yj8qSbRM(eGV@*KM_%vLX6P$+wxn$&)L=tHC0 z;^K0ln{&Eg3nMSpffrT=LPo~g#$CP2M>+ygNgPPY;Zo5|kT&s{aCXXl@3|x4$uSeG z043%H-dl*#BLDiU&pudbzm3SHz58qoI-8P~@RYUl71}`Id%m!5e8R56)_A5B}4(^>) z^rtTMV)xoE@)fWwch5GdG|lEKzh+dx#!u-Kq%YiBwBmTS2@Q*W^D%jI>w^f*r-i7gP`0$ek&J~lTMy_gA6RpTpS!37BL+bC+*!2 z>A#KA)4p-z=G^>mG9sLAqPwF@Pp3Pz;#QfwhD~1kUaF`1`+^pGi*J8DNLq2EZ9JC$ z-ilea+@DFU1ZRw>{9qL(#}qwK%A&7hVl?#m(Z6Dz(N259?`1Z_iq1kzg5)8 z$iDhX%B107Zna+i>EYHJzXn-EO|P7=kTCf1itUQvpsbJ5ek7t4}EX9!t03|bH<)$G@Proc~U{@IE$%G6@s2ydBcqetzi(~lK8WSOZPP?|PpN`0u zkI>dMoVhv0L=i?x5FF0)o_saG!9M*^!d^&9N@|8OB>!UX%8L6NVZ8v7o@IEGtqvOp z2aWrm=Q%}twq0n`+HbrpMKwFWh3LvK25h-5J9YoP1&+OBmZ?+gD#jx`eagxl{kWt! ze&TDT>2H~y)*fb7Ms>SiU&kt2o@Qn{rVZSQ%DHrHW^@&8$^=yg=P%Z;#q8^BJ6#9u zSQys6OpfHEYCc1KByGBaBraEe8&g=%dJe{oEeP44o!{AFQZd28MB~y~U-&u=G4^3Q zcSU^hb(g6@w1P4{IlR2KM*MTxO=LHy4)xv~?^}MK$Z}u7|FTGlSD=FE(7Sz=^@SZ@ zuD^Mo=Jtr4{b$1J(0Ol8VG(t8Lf+tp>|{|-7VU{o-fR6hS$wspkr_peu7q1EpYU1} z$E-uO7u3`{b+hzuO{-VRsvLiwBAA};%^k!P{pcv6sCz5D&ws%E#Nd_Oz;0f7Ij@+&JUa)s{D}7#>JHxbC-s3 zBzfDf!Ne0|bOb902OV{U59v|e8uz=;WZXb5C9JCw} z*}MOrhk{^H0etO=v0-QL@JlJ0_ogn|ljJl~Mj4YWOvR5CQc=y~jx!}B->*6SX4C?H z3n=_WKQ*}S(bme|Q&=sh8g~B7@{0I;SC69B(5$VWg!6|}XCFk@%xKU3eL-_tR(e@_$?8~^EZlG)>w^)@woneEg22*Pp3i1Cl? z`N+2Kij?co%u&jzZ6SG4N^u$1M#Xh|?9~RPEvV3>ThDvaKb&JSsdw~!nt)}AR-*!0 z+{*gvEkrQ$bkp)_`p>ufH$M00UA<*P-`p-LD)^>2KgHDej^{M*O1%A}8~O{`n2BPu zmFCm7@>Z=~v^Tju^2m==xm9~{zke~FS+6lvJQD2Xk^NdiZB;@gdf%$s-WG9rQ~PjG zXd88wUI*!7&6a;PJPOxSI9+W^JBX-8_chETNtE5-D_<;RgTD*L~R7vUuRNba=#*ambg5GfL{GGZoAN{sUbLf{y?I literal 0 HcmV?d00001