From 39586869acee6e375192aa9a1df130b36d1ad0ec Mon Sep 17 00:00:00 2001 From: kdoroszko-splunk Date: Mon, 9 Sep 2024 11:02:22 +0200 Subject: [PATCH 1/9] docs: create runbook to backport changes to older versions (#330) This PR contains runbook with backporting changes to older versions. --------- Co-authored-by: Artem Rys Co-authored-by: Marcin Bruzda <94437843+mbruzda-splunk@users.noreply.github.com> --- .../backporting-changes-to-older-version.md | 46 ++++++++++++++++++ runbooks/images/backporting/compare-tags.png | Bin 0 -> 308076 bytes 2 files changed, 46 insertions(+) create mode 100644 runbooks/backporting-changes-to-older-version.md create mode 100644 runbooks/images/backporting/compare-tags.png diff --git a/runbooks/backporting-changes-to-older-version.md b/runbooks/backporting-changes-to-older-version.md new file mode 100644 index 000000000..622ffa186 --- /dev/null +++ b/runbooks/backporting-changes-to-older-version.md @@ -0,0 +1,46 @@ +# Runbook to backport changes to previous versions of `addonfactory-workflow-addon-release` +`addonfactory-workflow-addon-release` is utilized by all supported TAs. While it is strongly recommended to use the latest minor version of the reusable action, not all TAs consistently follow this guideline. As a result, there are cases when crucial updates introduced in the latest reusable workflow version need to be backported to its older versions that are still in use. + +This runbook shows a real example of backporting changes correlated to `ta-automation-k8s-manifests`. In the example: +- current version of `addonfactory-workflow-addon-release` is `v4.17.0` +- there was a bug in `ta-automation-k8s-manifests` affecting all TAs + - there is a need to make a fix and release `v4.17.1` containing fixed `ta-automation-k8s-manifests` version ([PR](https://github.com/splunk/addonfactory-workflow-addon-release/pull/329)) + - there is need to backport it to `v4.16` (the old version which is still in use by some TAs) + - the latest patch release of `v4.16` is `v4.16.14` +### Steps +- make release `v4.17.1` with necessary changes +- fetch all existing tags from `addonfactory-workflow-addon-release`: + ``` + git checkout main + git pull + git fetch --tags + ``` +- checkout to the latest tag of the minor release you want to backport the changes to + ``` + git checkout v4.16.14 + ``` +- create a new branch based on the tag you are currently checked out to + ``` + git checkout -b fix/bump-k8s-manifest-version + ``` +- changes made in `ta-automation-k8s-manifests` were correlated with changes in `addonfactory-workflow-addon-release`, so there is a need to backport **only necessary** changes to `v4.16`. There are two ways to do that: by cherrypicking specific commits (and resolving the conflicts if they exist) or by commiting necessary changes manually. + - for example make necessary changes and commit them: + ``` + git add .github/workflows/reusable-build-test-release.yml + git commit -m "fix: bump k8s-manifest version" + ``` +- push newly created branch to the remote repository + - ```git push -u origin fix/bump-k8s-manifest-version``` +- in GitHub UI: + - navigate to releases + - draft a new release + - `Choose a tag`: type the tag that will be created, i.e. `v4.16.15` + - `Target` - newly created branch `fix/bump-k8s-manifest-version` + - click on `Generate release notes` + - `Title of release` should be `v4.16.15 backport` + - write description of the changes + - uncheck `Set as the latest release` box + - click `Publish release` + - check if the release is available, and it points at the proper version - https://github.com/splunk/addonfactory-workflow-addon-release/tags tag `v4.16` should point to the same commit as tag `v4.16.15` + tags +- run the workflow for some TA using v4.16 to verify if the pipeline works as expected. \ No newline at end of file diff --git a/runbooks/images/backporting/compare-tags.png b/runbooks/images/backporting/compare-tags.png new file mode 100644 index 0000000000000000000000000000000000000000..df128fddddefb6854bebdf58d4cfcc82f4e88ae8 GIT binary patch literal 308076 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

n@y&y#JHHmCOljY6dYY)X=ly}KprR~#5h*cE z^1$W%gts^o;%bxZePw}bbTq$iF*MPzMsClks&=asm(2lmWtSSoSVR48B0*1;5XEcx zx=V6)+esV6dUi1fn1#}0`%>`3_ql2DR|ROpZK4F7Hm1@Sjl5YqhZc@ zg|L_}dM!t`&c(-e6sbyCJ-8aWOKr(E(bDL9;;a&Ee!;ha%ic(bN9RfcUW=Y;Bhx)$uKifp(M?lt;TeEr2 z4W?Sp6EyWqM$e~WUWRe^(aL7@c?c1`8+4t+;9jSulX$VqH0r06srJ>#Yq|1z@A9Ok zUs@{I=7^RO7)CO%JikbDhsoesvfh1tA3f=Wx%EcK4q>cIt2=PQ}~oeCvn;h z)GHXh(Xyj}Q*dmWz+blRLayDjtd&KV$dM7zlJTSdl}+B-RGSZyt2zp+j7$F+;{Nu@ zq@sWWxy{(M<~nhsQuU5UcvE96;nC2oPfG(KljE@xn_ZvJqA_COlm=gRiTmJ}rUc^9 z^%iMqucNI~&mSFn1-91CktHet1SHc}XXSUw=&6a^^=_;9d71VEWopJ-UH+^pjFP*Y zuM#HiC9Z7$^0;}h?h=hy<=8v=*3=0JL24<99F$V=oV=$BHb<(c3P*)$(gWgmHe~|5 zlOD-Y4ggV#JFi?D@QmNtoutQk9nusXwSqtLd|$aao$OYjIBz$#U!cSrh0#*M>Ur7P z)-JZ|MEeTPX;l6^yu<`yUL`8pB%c`?K9p;X+UI%@>Pb;>mpB&%a(SIO1`YoDc*Je# zimdVGZ{yTPb+c48O?1i4fMi`)v&3*5%+`15xlQ8K8_U5Ykmv=8Go@r zywoFF+S2bkksXAWKI3(qaR4d)x!eZ zqo;~>o)tE8550aROY_os`}3fjVew5tSQ4G8-49mKzEk|l$V1oYa`%8o;S~$kbDyBJ zg9NvkO?yt+(LxVS!}>ap>^zkB9`e#%n1F^!_r}fH5=wJOKTO*`;K8 ztDrXP*gAHJ&70MrLaWpjlUIYK4pfgp{erV#EN^v$$iZhWKg2!y>AM1S__71gq{m;P z;&+_r$nO4IwA=8Q`QWo>0ksvnCE3KT_rXxS$R zGyzr>rjty&fu&Sg&NAQVv~m_um?@*Az#ojdVg5k7=kFQ7_5A60dqF{q#N@!niWMw| zOG?I=BUOEOu?de8!Mj&T25 z#{K-P>##!gu38V2{4gxxx`V`*Jwl0rOf#cxi|O+NnQ8!Btp-2{Y5+-kSB2mq5-zL6 zI*ah=`rwM*wNMFn`TUh#?L#QTj$tUENyzi=wCiDS4lDkNR(< z`q}dzB*p{E#E$>T_4xg9&$d5yovH>!799$lzWsfE{O`rC|F0jyJB|RS=UY&g|Bv4v z_&@!S@dGgbVeUh;>-6_dV!Vo0 zB?w>t>Pn^7SK6e7HvX<`{KvNZdMsMS07YjPCMf$a-Wz@DdSQ)bZ@=Y65_d!1{>$EW zhOfht!wstbe|4pgfR%QXbQHb#<2U)<_lNHS5+vv!Kcit?`zlpFGSIg{=rvcL%Zoe z+7ra+`F!Yh(eaJCj_pVZg=pIrRQ!!mx-Z=~3h&)> zJ+OUGVRwn+|71+Q9-i;(W2l$+mg}zbbJDFo*?&)^e$RkiHU!MxJ~7L`s4sWlF$b*I zV7L1#;qN{9d%89cuU-09LA7_^{@?PyWukXG8&}{iIypU%hXg>A*^>a(Yfl{MF65wg+ewBV_pd z{Nq1(oj<&a1M$F0m&*@M{4aj_zh2t#lfV_v&v^gmJ!AiK8TzojfS>iZF#e%<{w<8( z5h$P+*WbeUeVqUZBPsuD?q88bzq8>rOo_}Irg$b>SRxDP*P5e2zWyRn(P3bu=$)>4 zwH>i27r=FLtqIb(=BV^s2!)&rL6T>KTPDumNC4CgwnZ^Z_k9A`Sf6p^>msS3n;2KeCVDvE_iev#u(M; zicoyFieU?Prv@{bhv((HZ)XSncu4JV%ziC7e|m4>_?8~g%>p&|KR`i(-#>(Z*RL4{ z+b%favuNDQ*e{My0uh zB>L+LFkIV`Q>~`C9u4fnm zx#pG@(Z}~WK|f0BoHA`GEhZ$Zg0QEjmedd#JVj8@~+jdqzDlqyn;IeQ*&;`$T!KhJjQ$3xP}74;DeNt1=zWmOZ^Bb`1% zwE;u9DZdZF`A<9X@1Jzq2u5YlrAg?lzyfS-20Z{Xzvr2ZhnUB{e!SDHn1En12r$;{ zharEcSpWTL|FmSbS8ja#mK(guM{qByYNGio${c0&|FHL-QB9@WAFv_<7Qlv#AZ0{B zq$ySDsEA5a5fG4~bOJ;K0wg4~Q4|zJdPnKK1PCnzEL7>8K!PGQkkFC{A>=*WJ38~f zjB`shRlA=JZFI7l==X&THQ?gR=)nv zTJT@j{GSK|Xb!d(@7~*g47qx6&;ovWemvh^EG&x6Ta0aMWv0kSAX}Fa@vQnKmVC)2j>6+c%cj;C(L!Sjtx%T(ESR!%bPVrY)t~`YG0nU6!(H9Z3o@5*^1wq`@ES zJZOi#GKTDQ&g6}f-3!bM?iJV;``P zY|xagfWHeFt$90i&Ae7z&Dhn4Mt)qJSmQBwYc=k<%18VpQ9qUOmV0HI1e-ZG*T;&; z`_#|Ig84Ft&%g>`gmmLne^rBg!ii)|Qa7*G!{<+BXO|vsp2qqyHVqvgFdDgLP-~rm z@Avg?;g!#lAXHt5HXh1Q0P&v~d@z{gv!1{Kun8F`DLJj0q@IS{_6;r+?-=@85$5OH zZ1hz_dA$3I2|NF=8ksnN%sM6scXw1=d@0krR^7L{if~)$>dOMT^jZl>>F}qjK5SfG zU#>@QWPvbWsQu|?gx$hwO3Nd?cT=F`xn4-=a-ZL(xH&mBKXg1~=20kjOkn+F!xvGh zO6Y_aRLozs$?WFi6$gXDcRWp|dZ}_E??=OU25TDU2d2}))U~!Nh4vVCZ+i5oDBaX1==h?rCu*60=#c2DC)Eodly-7-vNYU5T16LK6k% zv}b%P$}I^^Jz9Jb^;-k(PAa;vpGYN#odL&8{2xRC;xDHf)k1_XRkCKP;po|$W3{O@ zu<8K3Tit0^SGamU3%vO}tBv)T0;OKon)ur}JWsg|*L1sq#x>eYS=OQ}ByIu?L0t=#Uj<`i!U15R&_^BccU`U=JQ zZd(z@s^?ZMHyVdr&*;Ai(0}wZoeTtnTj{Q6ojgpzU!d#j26npFx^%p=oGhjEe9k>jl~z@g_nlZO z9~n&?1fe|UdS!j4Kg+s)sw%fyE~_2@l_!OqpQ*mqWqYjNUOaoC?9x7NDe;P@AP2p8 zRWGROO#G^yd`;pnjLacRy<)w@7oTd(YL0+R3*5A+#cE9XW&Y3b`784^^1qX-&bwE6 z6Qk8jLNJ1jjxDP(;DX7JCKEZ<=w@~jz_W1H>1)S_&n9&d5An_JGBFV%n=Rmq8?r1e*5+v<(y6ESD# z#4v3G=9}E7q}@n0Jxa&|tkyvLiLJR%wMc&0+;ZLAKq^KWP5|TeIF+gD^?slAv@-fQ zFG#4Q@G))=O13pql`g;^pg1!`ED+N0m7&x&LWp0{mmx-`_vQ88gO)n1F78(K@M)5o z@%(C7F+QdSQkb;5t4k%$k~;jK5mKk|%IRP)`cI`4GLa5~4yKR(YR(?iABd zxbntuNEYh?#`1kV-_JG{FHj}-=*%uMaU|Vj7ZJT~k=Z~>-12hY7*-V-*w*vb1Ll<^isHf-ue2q4iwVHZ?YKQhBcIJfy4kc z^>gza7%DV z-knVCT@1%tkm^FgblsSP^!HG*ZsF;{@;j4Rlu2c#@FThVu&N-);gX=Wu)U;kZO!x|C`{)`x_bO=x*Zm#PgcW03~1 zS!ZBE^Nh9Tl?Ad^K`gjg%}d$MUUU}r0MqE>PrU+ijeBRXtpk&iC;&5# zG2Gl`BENJR#BMI*XMt05Q?aLiT+I}YD1-&~V6%^{+GVxe-6FYBvx6Q9!B99G=x->VRo2 z=-ev$S|JXIzI?j!u^3KIG%}R(dmYe(i2s+ zr)T`W&>TO^Td$0JhglKBw>GUEac_J~jFuQ6Ak92gf}%Hb+y^p`b9w(U0VwQz&8z_F z!_({c;G8p0>FATXqT8i`&q4fE!l?$bN`$4ZOfRsP!`w5MLA+uzv~_N7&Nx*sVrnxg zNHx-kP-}`%X2OIX+WCj zTgUvuN^ywU!uo<#O0;C{+Dqlx+V_g^{Pb17rO6OUAuJW>B58Qj{%^y_zhf%JtOjD@ zf>FX3iEy0hXxQ@=I$GY3hB*u%P)yVw<@wMw(x=aI!3FV@QRgmS1?k6HG^eSmakb%` zG$36{K9l$~Hnl~cfXxSQACaXHdzAPpRwFW9n{|EV@hRuLu88I+m8HkB!nJ~4?RuQ0 zzra}T^^s>gaL0#9tp1VBR7Xe4H@1^Fy_E8nQyVpou+MGgw)iF0!go1yTL47Ohdi&* z_()Qk&gnEc&?XS-jCO537rOx!!2+s{wXY7TQBP#{a=Fod9UvAav4vtloo7dk| zSVC{!Da2}Kk*144g_BPDR)z<11klJcccVeyuyBsZ4TVWB*{W3{tT%XwuC9sQZg+xS zTWRO=4Ca6M;5}mDL!yEddvYXL9hg zv4#633Vs~iQX9rNii>0L_iYV)m$2ycPYoQPC*ECbiSc*`ydUIID~F$@*?dDE{vzitMuu+=nQ04l3V_4NY@%{|8hrU1KgF1V zwZqj)7hGrVr=%*amiGf)jqam#fx-jfHfHR{cTO)qnIN$-8UI+Hbn`Pq$qNxjB~6o# z+JxgI0Ow9$9G`Zq=c*7xM}!E!SVJzwUiYkZDFZnw$qybcyW;5A?upWACap*GB1%gi zEC==@VO3tN zTTuB}Xth)$qL+90wguH&f>xS!^Zs+QntnQoIJI+v{rP~=jI3-ul&NAnD59xt_7xJc za-Uxq55CQez(?C|rpVaqX~q!!>>9hLriQJtt8JB{iwg?!K4pI=>hN)gW@QoBD`IgNqBw zq?;{FhMa%wZyGID$JC=&TRY+vFzZ$*86W+R9kou-z#IK182wKt9(S08#|-W9z_ITHUS6gW_t@v69d{VY9&~jHum5LMB{Vr zETz;sF>?gTvNtz2DaG_miOQh#pzNUhU{$7e#RuHLd|PuNq|Vgby-QRLFCUP#*8@EN zwDVi3;Mq7PlIq&T8ckbDOm}OPuoclspB^$8Dl+d|^s3`y=4YR0c`9|c>MVRRF?ysP zLy1Njq+Z!dE%jNQ$pkVgKU*tMl6o(jJ(wg7-Ho+?u1|&VceRwo0Ox))Uw3kRHBtZ7 znf1FLtw1?IV;3!Z+vz$dV{fnV2A!Z1;c8x+8H7?fOhx2Ckku>R7De1&&@eech)k&l5=(=-IVew0-1%4N!+?YFvoRA)P-KRO)HT zZ2L_X3mZr#?!6_Ay9`JcDv2scv;saKaC+k9{0;BY*ew01lV=mb*CzibN!i7^$ z05^FlSJ@rnF&HPfRAl?Kb-q$c-}LCUvApP-nJCnV9o?muQ`Hx+WC}6Y^f4PA>#xc? zHq5faiS(ZGsT#A}{mpTyYMbtk>ZC0nyVaE-k;T;>k9T1t(cOsHuHw4!kV7D=V&B2cijK<3=<6d_$@Mra&sy(3vci-?vO!(7tyJQD6Kyt<2QTwKu)dV?IOU zqS{``S$fH)d03xpzSSMew>0;Gfoi7Zk6_Msy@0k}hM8&9PtRoZXgal>6h007!7;w6 zmbbSQsda5YNoRhk&$TSxGO1j+Co28KSZv!Ws+bR{=@=TRYxF5N=lz@|oGW>ANoa;U z(J<9(*edu)cpRzxLf>k27>}$pc>(ue$(O{B?mHHolA`L_Aks%bT6XOk)+&&H?U7tj zGmw0z;9k_7zB^`*b_9%W&yVZ${;!HKnEO1?F7*r(23&K2mYY>p`*e~iT=~@sS5ccOK)WarzJ=Iin5hgr=FNlv2t6;T!{&`bc4o3x9HIrDlEuJ8@cJyNGLD>6!!BdpGMQVg9ro0 z`Ejb&S88Tb{0xte0?jyYVG#6{nk_nhYb2}Gx;b;7AdQ-~ywvAl4Di&5riksYqkMG6V~z`mJP2>+=*lkM{=?~AaP=QKy2578 zRk)CZ%JpUZCWSg@HiJOTS8ZdrjrW?-@um6lclD-_T`I8@rHSs4ql{`2QP%fMNl4A` z`b4naRYna7pSi)NgIRAPT&E4l6YB^>kIknd#>Z=DVP?IiAVUnn8xS~-*{Q3-_gH6BF=byMqi-4NN@PNitd@vdGU<4iYWT!mXl`M1#HodIT! z3$y+#QgcghapM!EF{)>MR-%B=&8*)TvMaN6GR39m)z*WNRI$MN^wq9pAJfpVS290y zA@K#U{lY(t0rRUL4|o@$Y3hh)D!l?&cLm95BnsNXZs^>0YU49cY3;A95xVagkK7rw zdu(z(rFMqD*0>P-ylvZ>^&GUQeN8~nH!{hC=Gm`{E+_&1-RnTDtFGI z#c6y-6Hlnejljg_I%-ZoaIPClt}t4g#iip!$C0UHd1gR^-Gut3br}O@nAX!7B*xol ze#CuUt$hG(My)Z=bfRme=Q9wxXlJ~A65={~)fn;~u!&3@4erES7ng_1pZ%e-<n zdJ@dR^P-D3aLu4E^ssRD?tR>zRfIc+BF8}oL5DzxPYqu0rsma*7J+QpJbYxt#H_8X zzb3>g1~ph)H_yaYzkf{deBACbC?^Sk0u}n2jN^yL*0%r?E@8k}OJzORzA4kai#BpS zehWDA67}iTPs}tSHl5T9BDz4FRKlc2HkCLLK<}FvV97whp`O3Z6+d)OQu4c(kYc-@ zq6*SOxQv&be2~v6@Urk4!;old{Ak~yu3k6eQbfYLFqp(2>EeKA2uhxht{io0=kVR# zkqWgL51SwW)rRF^&p?Ra=d<@l;#h@`VR!>F_xy0y7Ox00g|M!XfZ}(_5m}vgjy^c9 z(fkh=KaJ9QD2#j^ja=kcsmW%$Xk@A<7`VtSg%FasQ+~dqovD82Lt^StJFMnYalFuD zj_c#K0}R8Z*Uy0i$O*zgxYE(J^Bdy`cAsG?b4BgV*ZZM#y0d%ti4yPU2QT#jO1-aK zeAky};!8?QFD4`22Z_0y?gqf9?CJIz)sy>LNI(FcH_Z7oQ?fST(VQ^_8*Bg2+wkXE zFcJ-5ljWCley|m%o_G1%7^^_)?u&aNkAZRWZAw?E@Iy6){cU`lx31OcMrTv2t#Xe}DSx`$Gt*+>WbJrmy_iQuwRfRo4X~`k+s}+r2P; zI;=n6H6zS0}=oUIrJ{`++TnC@i(Iuz~;dw@<#lbihqY>Il$Xd z^iMo*nTqe+_m?f6vz_Isdza_O2==c`p0)@8M-;mH;D1W#jqUWn zgeut|6fgfS-T!06zg^n@G2&nM=kMSAj}iY?#{Q2H{}x34f1nZ5U|3GaZ|Wj|BEIx{ zl;Tdp{ROQNoAh&F74Qo+0iR)wb)?_6rUF{xgivQcp{q-UnqgmnN@6eSycCQI5K0uX zZvWp7ZCi+RSN`MJIhMmw_N#3(bI{v);mhXz?GvC7zn<-Q!_g)9CEe9$+a0##BDP^n zfbc%qDR>Rh3Wp+u$hxM&CzJj#(*7#5XMbVh6HUpqeo{FuZoBEK1QPn1z%`nw?jAT2 z;=cP(WqYQaC=;{Mxc~q~SB@ATAz^Qhl^gJ$qK(#-|4>7ud2Z*mhvk1exWRXEV!K*j z3e@iI`@0Gw4mv=-#68yOuJ?!@$v}LJ3QkpuX-_&a38|Mm+x`y^BG69@s05^90hB=^ zc-|d*c9?Y@_rd_7v*e{x!(~)r`D+Br_G~RNMrt{iPUlqwOiH~-xpC=Yq_BB{|9veD z(ZJV%<^|leicqM8u^JaICEo(p4ARtmapG!)&}mI5={NO@dr$tl)B*dnA9+e8alwu; zqna2GbaDO=kB=WmtJbYbGO-Ez@A&@5?Z6!Y_-OwRq6gG>>|_Q$0;~>q@2GT}6oE0r zLH;Nf7&ZWhv#um8X7ZhPkgDi9C4^dpI}S!r~4GxcYAsnfnnpW)>4Zb z4bRUgLn~EEIm6ed&m8>yz5jUmUq5or1SA-G-tP?kM&AujCR}{I+>$=hGgjEjEWFf` zDAwcuaPKz#>Qnowf~v*|l&f`WNVz*Bd?n5(YZK^B6bd#@+ygTUJoWui{xSS0Eg(;4 zs%P@f_E@*c5oF#iJBu~H&bzdzYBaRCLqW;=hKwKKLb>Jd|8dU|uDi~p)vXVeYPE|S zZM-gI#mGgF<>oK!d0%S*L@VXsaQ3{|X-aPqD%|$zx3T=)tRE2uP6)lR$*Os0-?l`wXp{2I0MCYG^kt~qKHy^${ z-cy=P=2z0X|2kb|G}dMkweHt8Cg2yXSOIE(5kL=7`5cQs+QMz=2O2$f>Qq~fS&i1W7W__=(@+4LYd9n-f#=AMZMKw2-x9;_cd(`93nic z-MA>Cxv9X$6?^p*}2i`bo{xYV&fq&+|am2#yfWARie5@bG1EZgqP}< z%cdyjkC8W3U(B$3;0^CF=FJ4+x=zr?_I##Ec0<;}ejThdU_1ga9btDzl= zfhFZI^O{wKX8PkKzs_TiQzZ$3n4{tP`gNM(*WrGMik>G}&?C7wCGaGrX@39KMEaoR( z7z+CFM5v$Ndwe4ns3Zz4I`(x(upJJ_Y&X7OYzm~{0&McI(>Nv?4WqV#z;FkS#lg(T z<3qK^CN-jKadmadVh*y%Zu+Ce;p7;}g!QVjwtDyl;o-^>cPIbF`lO`2$2zy@>t!%6 zXfEy6VU%!yV@DBf;no2*)mGg8VQEp(o1LoG zX>}WK4nJ&NpSha6m#sWygYIl!mrYh_H5rO#=T%U`?$TEoF+mx3mNngvHE~Cj8LPxV zi*+_!A1gE35?2<+A8kkyXNT6XZwWlZ4b8E>vpfq z#U8f#u&=o7a96!J={a5JsHBDIC)JA;ulUvqC%uY;+sMaDru78QcXut^5OW1np@tU0 z2vp2et(2OYJ@HIXDx+=frHozFPF=kni9UfH7 z^Xp+@-TVW4I!=?DaqnXSmJ#yb8SoDHd8J3$3>@R;sl;5LF?o zR*-ww+7@9^4Ncwzo;y{l0r!Ef(N&v^@1l+DK5Vt_t)T-&Q$wdaGR$W5q`j>ya}8=g z$!OB{zh>qlI^z>sjd#_Bo*B)O4pJ&c;<&j?WY3$lu3C@BzoSaLak9W^9kOMU)|EkQ=)w z#5pD!Ea!56bk4q6D-|xmK0g#`&kt+3Fi1bJplBi^T(L|%FLb|AJLMDjhI&q%SRhb>dl)5NrLJm_H7PrA`?is=&!2pES$i3ZG{pF@5LBaVYLCa#g)KA|oYflrl7M!YuMn@#0hZee)+RhhY z69ynXFKvaz%Eoc%+lf8;=+lZU5R7aX~U_YAa zeubLS9ZHCH=V8)^u0)h`WUv4rWrN0Nnsm)R2WX|n@Q>HT5n4W+VPiv43Ac7JF}f57 zYiHNjG6UAr1?seAPoL}7B+a~Jaf&^uU0pu5eU;lcZ;zDwj2 zO<&CAeBHDZ^2h#~=ggf^i zKSo_`;BZ0)?a}tQA7DcHX!QBlSlYP4&XKZm|akN~%(K%ta z;jTit#5t0mc$9V6{6~)^Ko0A5d*vSuZY@EwXg5P#Y|vb3%08ny>+r^l>mO%)de4>y zBzbin>vWqk?{WUj(+&UVV;?Wxck^b1(c`I;eT&-=GthqWzV#Fl3qIQjH5nO^1`)ef zda^C!_m9?CylfahhD3Oj33AT+g{ Gv`LW5cD%`tYXj#(uzxsQi%;4%*05%&YxJhQ|6-aVSRN-avZ?Mm5ylTa+I zbI@h=i;Prj5Or)i^4d5!dn%`&R-N&lE_mr)b5zE2ctMKNi^eL7&vj&f@bQI*pWM)k zhW2xvd+Stevm? z&2U7^uq03Sss3_ijOuASX3vTD3$6;PaoN=&4yW!4kGH(m9el#{4ua9>?7x zRxe(Wd3Sm!NKL@+9Bxlu{pf}!Ae_TXDyfMiDSFb7KZriSN-fqO9&)s274V*KeR#Wz z*qf%Ia_vbt(u*eEzCpi{ZzSQfI(6>hQiDdSD*4_kkrenyKPRd_Nc8XR_J8g~!CQx! zzsWuT=}vH5m(XQ#^=r)K8I!;NxkJ-V85~_-DrO7Ng&Yi_PoX*krUG z!A=2MRtR$I?d9slrij;MQ=>u)`xr_ppdruZ16ueYDOurK7t#Erq~zea@Po2uAzpu&BFdeRJk61u@AT7?;E_N?UBWhZeU{K{n?s zs7yda&e>|C=KYFzfli8i`yTcFG*9-e0cT=Ip?|k~;f{${MlZ6DvcDO!!l-lmQ6cwc zJn&spj@ANZ3GUct=7;e$AXLF!^kC9Oq+9d5FLrmmSc!Vcs#yE;mb!5Z{kA41i{rLH zfn7VK#kitgH_FIins|_#!(D-Fl6rq!f%5i1tfg;J*VdaegC_Cs#)oWJ6Kk<32b_-V zFN529yE4gptVj4u6*zTLQ%!1NWqD?@kX7^ONTNoC2i}ZGR%e$!bLRSeYinf-D5Gwr zi6%U2re@$;yF7o$-VxQDo65SO-f>SiF^(0oK_v(=>WJ5oW=O-Xgw@D#S%;Wy;3deC zgEyP!CsV1hl8ZjwticPtbtZ>bM|^3zLoKZ${9+sY{aqmVa5nX(R)Sr-Q9)%QO`NRa zHK+NugPLMjGek;!bKR$2V9l6+VHw*_H+oFsX3#1xn4=_7sc32ch!$;?lLN_S!1eZM4Zcl_Dus; z;>dVb0fC3DP>S?=re9|y;gM%&IHu*A$QtGBJf3=zbSY$PP_W_6^=+sI0{b~Yz!lOL zKuei1T=|1>nRa?=bKdxZZl2@#8e4Z0(C%?)Y_y+1J{+q-Aj&7ueLiJ43a1ydd;}R$ z)Q{3|k_*R)Fbfj-6Tj61j6nG!Jl*w70U<3vRo*&GCTj~$J5L}+r)WXsc2;dzHBpg> zvl}%e)a6- znu&=^9SKB*FQBDvSZ{o26GZ#kYMd=qm7S!on~eF$<(Q~()`jBKcnXT+M~!P$i_uua zfl3tEa2RG;OFt0qg?1Id*2ena=Xa^nC{thH6X~*;nwu#kR?_ku&E>-?LoStXFv&;+SP3#Knxpj3D^PyN=#ZK$S7QrE{@6gYWO& z0fNkM8Byl?GK(>GhPSe*=z7+@VhIPw5MYPIdzVO;K!u>sl13vN1YyZ~l%Pnd-pCVc92brr}SDvl>J?ykkQ))hA{U{Tpu`-C$ISYmNm z43Sn=MXNf|RBrY0{xL9pZ(t0ez;gGJJ+R&!pwX)CE@^nlWwq2HmU|N@s;6Nkn!3KY zNT;n9E>J-q;Q4sIga|b;G3=gB6xK(ITsyp_xt|2zsst3xL~$`-968oU%EH#sgO_9z z4krB+_UvW?aF570+;dMbEg&boxj>v6eUxi+o;b$$WwA)g84eitx;GMtLleEG6;51( z%8KH74C4Xy?lps%Yg*9*-PxIB1;J;8>~(#{lfQww_)Q;2cUf zQJc=;*MrQd9E;D=W4wdeE_gwr?r9?Ru#>$s+2LInvT7x%>m>pa8}R;k832lu8NG>i zXh54xT~@>Fz45X>bZhTkK94_k`34OB#waprU|{Nkk!(X@U$O7)OFO*;^H|E}+s%z5 zVhc1LLrMxLW-qPYx>@=W_G<*ik*6d+^RLH>@?evVtcIej(Sx4W~ z!%DXHdF4xyWF<8<{GK?Md6D#z=&K{(p2;=?z`OAxNzNv1kE(gOP3{M?lB<=ZtLLnH z8nC-qIa<=TvX8(*no|+i23>}2M(4nQv?0Gwa*sP0`{P@$shO7;C;E5%)%QU(C%Lp z#iGJ|R?6ck-I@4S5k?qqL29VQkzZZ`-{vS67xoH8d4sa7qi^QGg^K@nyL9InQ*$UE#M3f9VVD@UV7J> zCkL9E>}uwQc;^zfxmz_twPmf1K#I=;;#}ezXIXcDf8qa-?8<0eA`4saXE<~#t5Ry%5n%CVjMHeE+Powa8pD7aF1zo2ai zkZfJ7d|@*A2?iNW__7(js07)_mo!Xf8HHSU9pq!~fg3Rrq(FPrUD?+X<=tIN1Mu-C zBLL#EW5X=Gc30^n)yq>kI_fqPfp#e_G!Bzm*PwFOfj4NZji6=e!{=JbuCv~W@-E^D zzxvSejnk^n3qlI9khpn>q`u$cnfy+UgbEp9g3qGADQu3v9Z=v8ncj|*8*5Tr$J0X@ zrml~(HTrn^%@Yps@=nU8qO4w3Gs-W@_+wA~s@l0{17BAmcy zFP<@9bgq?A#V)>1=d|Sj+l_-ECZ$fgk9H%#qjdvBBM#8uI}^^wTxk7qYF^kik^y`! zXfNf`zJOl{V&Hly9;@PG3{w3fi_DCzO4sA(j~Ic0b|r&=yJNKsBJg4|ueZKrUl~Ts zlTpYxE~--Fx$IEWxZ#@La%+&p3fsRyw^dVqP(>b>{`BS^MKb1RmcYaz!6odY#xq~R z+>PYjV*z*`wwwT`Q|uokb3?tB%&yS{yhmHhgff@>XYqvvg9&?NrKNANn7CA&lv9o} ztjd@abF6K7!q$hei=}VoKQ$Wc5ju6|OxxrVpf={5L66O99nLzKZt$D9?oNbq7g}2H zc8tw*I7=xIK*;Zm-leakIX`$IYPnLE5YwBlWxQ>~-n!FJO-mA$Bmic3wO2fOL~Zkv zK{gjK-k8$VBX_9|Vznd;aWmV&KjkRpPL&5PM{ehg=k`cE(>ZRW+?xOF=uP=!M+iE)mnQRYFfrhy#&5(m zE^=&URL3;JZ>@bcOa6#keS1%iTkTc>S()7n=z0I#94V%sq&zNbR`THKn9pj(OCY{9 zGMM(((vQ(sATXW}b2GoTPb|Hf1vP(1wgml%tE#AxaLi~25l~`rZZtxMTe?m4`bPc- zPY1{#tCpJeMy{jn1yoQa?g+rtN4^` zy;SSbS#%nw!V%+XM)e&8DiB38bI)xY^QrbJdq_6*A<)C$cQzC@)@)4tR=XXGP^R|s z+7Zd<3~CXJ9~i~2?oFIh7}phZMi+7UD)&PJX^$vt4g47=X-s+7O=5GmI#^F zI&cc?lg3P4g4-8=a(#F3%{A42>Ky6ae z2r99jj8IuV-xa*?%;$`$*>{U(CKSc7ckcql=`d+&n=JA=)R~lW$OVmBGd`+lhS~e8 zrQTU%GH$r*b8qNlZ93FbQ^28@x=?ch0e^KmL<$oxZs|)eTwm~8iGXQhxXXb+fCfGr zD3&2dAA{4_jc)kVnaps0l|$c*#%~bvpL_AkUhl2YIugR^4{eke;m=a+)R4!Qk);s; zQ3v@*0?khCFA@7+CC{Oh;YQ@r>?Dt*JuhgZd$0EGFk^p6ksPn(|8?6$*COWv&V4*w zt$DA5WJ_Sd$m2ypkV{TLMs6(xcHH14JNs~-RiBBwpL{$LTuspE`H;htk*6_i3dC^X zWuG?)X3g#)T+V9n>AUXF8PM51;pdzVRN2i?jG=+g@!6!)r zug~+LsQ68YUHPEksFhT-TX?+^#UNNi09PU~@!$-@VjV*x9)O?DI++SqOhSEb1Y*b?=x=syx>1j-$Cci~nui*5gv*g0+huw+g*I_6 zA1W|>P++G{HeT4^k%Ln~JCa#)w$|E7Wle3bow?cL2t8;dmz7smYk|`c;2*yxP(y`8 za&0FA*u}E6I5x}~#+q9(S<1=e!!2lcV6`vqCD<8Tx|NoL`b<@~?$_-}s0cC^5)#s- zED*Nb9G}W$T3q<#o9_~+lO#QELl`{gbYXgy|Ka;nGwo#5R=YDzhUB%f=d~0&vqinr za|c0ZAmsBw4k351>_R6#wJ2FBVS<#~XCKdcU_tyNw2sIt?@_W$@e=p6J=|?|&Cj-J zK_JPgqsijs%cTArYZl0v4%H^agt`ojCI$toeJRFHMJwQB8nZ{6I5q}pS9ht|GbYsH z#w`6z?eVd4pf4Czm-P5%0oamjWaHMVlt=>Wk%i!s9vId0ua32iYa**a!ZsvOId=as zkGv$1dA8#1;QM}@QDoDV!fLT=J^s+z;Z#qGJ<=R3WhSepQ&ggwYT*Yf(6TD)9O4q{ zjFe1ht>KAU85Ik#yNriYAn|7%YgTu3HwNtk zaM#k0vUy}-iLT^rrFQs5@oEpYOKNu%h4wM+_?pVoR34gATbE?scQ?f!5gj(M03O!D zLq^6Q-hcB+MV~Hlc(3SQS+r=q`K><(%uLjfnqUtV2v6 zVB+uAl(+G-mee;#AnKh*YRq50Jf!RIer=<7VaN=%_~J{|ox=w#?y8$#+bG9={`|Qu zEGqesfWS;-#jvYE?-Zb&g&odT-@6|XpX!yJX{J%itBXn=MMcKNIiwmWlQ;be1>a`& zRvW<9hxiz4BVglMzsGP;w$*-5B zrDY2DuN~|yxF#gl?(rH=AzJT36A=ztYT$9sk!Qd7Al;!#?X?(1m(QdCKA>M}=NZST zt>9E?4Juskyirm0%6<1iAl|cj;T1Jb^|nDo>Z?q2ffcH&qeG7K=DVh*FX!h}&@Ql$ zYG5WF3&S9e#rScHu1rp~s+sf?7=f{w`+Q#wh(8wTPgjCxnHqVz4#njcTA*Jp*Frl) zjK78Gqpqs&+LS%p&DUaQzhzP58_flD!>TKnamjz*sh0B)rSLAH<~P=A?- z&?O-4;yp8*K)I<>Gxxgt_0Aw5RLNbF%GW5GwwgsXHzBEXa3C%>Qw$%v@tiLx{uE-7 zZbu$6F5!Zg*saAy+ufnqKQw7_@Wa)H4|LJ3#P$pZN$e>!V|iZ^IIao+WaxutwP;-5 zM%pD!E|plX+!nyURzLEO^teCG!@qjg0xki*6@fA<_OG+YrnIx;C?R>>5C|*r-pDa| zqn#kCyznBwXSc$2r_(Co3ujgtcTS2K7e|W~*P8Q~#79;*P+V&r>^=i%wM@a}gunXk zJ+r&yDfTWm14fBD_$|Fc_%Ps5ry;vRT|Xp z=e-WOgFSIK7DgpT>Y7!yHFcP27T8|{jPBc}^582CURAgQcfF$b9U(92omS33+F~KC zZEf31^xFNP4MUYrspeE;ctz|)t!SAJ3aiD3Bdz$>~X{M$co z@~_kOTM6*=ugX6Af2>FTMlQU$1SEGX#n~4f`j;*IZ~b}k4)FAW6y?X?oS@&M@bA9+ z_$!cG=>0*)_~$9V-+9Ha;=t2v`uvx^W#oQ$X}-Hpx07T4$KL$mH_0(M=^t@13#vwL1FE5+FbmHvF$zDF$r z00oqwi(LQB_7^;$11M(JKIgMX|82tmEOZ*e0sV%!k#q5HG}xc-{p&4(+sTVo3G7Wj zjn#f{+-zSC0)YX}y@ucY@n>_Xes&Ll#B`92cYaLc-~Flv%o|PP)!zSDPH#^G8&F^z z6XYoW%fA0=(I&Kjy7y|QZ~yxDJM;&Vpz$Q2o6mNzSpV#N!S{!@3E@8J)Z?3~$d^8ykrzvK49 zU;kcieUE8=OH~IPf(zHXqRLg`U)t}68Ze2a1+1-Cv+7vUQ$9FH+>W>^cA(B8nc4A% zg2w9;Lc5f9K(z#)ZMy&_TW5OzGxr0VVE}!7y-Y|>_g0^Dl6JRv{~ou}L)^R)=LVrR zHorMMcDnw4kHdr)a71pz-u8AEE>S3c1g3kyyRFEh$M`;a^kvc={S!_Dc~z0Uhnd)Z z0mfW?@c+oi@9UaB-y)d73^6-akIGs&#C~z`7QRj19OLTp6vb388o<@9zG2#P^U(jp z-kS$P*?0frEs7S=EfiUzQnpF9jI|^oBq8f0*|KGu!I+U!La2lgvhVwDm}x`V_uY(r zH^X3t88h>{JfFLs=kxj8_x(KgKfmuE-|v5N>AK#_d7tw-uXEn#*wiofMaYY^lFAw56F|?+d^B1c{~l z8*(e9Jv_@2RH)Y0$p;qxoBnp-h+IwQKRJf0c-AT|r&o2C|iX8ZfecDned#6HoP3bd?_c0&={I&`p z2Q70=U4KvX1=-aC#}?w=#>ZHzKFX?#rROFL!Nv z^Y>rAE9$bgu?p&CH$om#j(zn0Sli!<1H;U`B)#=^UoE%$>e)tvzx(R@fqXfRZv)1k z^a3Ju(A$Z5%Qk^6H$lt@$t%C7K-z zhJk~@vEZx|OzamD)UFR5o4W9KA(-IfeKo$my9=k+d7;EAN55RsHu1F5y~p=j(z))G z-RP?E7+WzvSMd(G_VSMM;hggLTr}pprNF35Jmm4tw#U>*UZrDw_gCe!Fz2MXI^Id3 zs@@|^Hc@v9ugrLqA=gK$nnMf3S}6lC#KldHMfhn*7cZ4a`td~bV4N$}3#`RoKmX=V z^0m3g`gWCZJufzwZr*+PFo!z6hv|#u?mZ^V{%YjUNeSLM0L{wy5ijdxJJqQB_D$Ty zm63|*2tM%5v0CphcY|8~T@Yd~(^H-MCVrWxZqvYre&gUX%KglD#YYY3S|c}}BkO+Ne7xJy-ZSir zyWA(`=;eP-?K{(KEA6T)Ds4RHAt6OK;j+PEU*3|X<>E?#dDV}4vg(B}F3{Q)=%oBq zx`9WjW+J(fvdKFgUWI*AA^@aJw>Sf-`WEeqg{b+gnT2JU1X4~nXwE&XO zN{Eg9m~=^o#2V5+EILPkm-H6KNDeu?CaZ*%t~XsCE#nC@G*f|_MRN7&@D^9Sk^7LY zn%+-tiROU2gQz?SxpWwCx?YuidH++<2C{PkJ+R)Q@HLP-hK4k&t4W*E7BdnY=k?yg z@d&jI3+y>i)jZw4ElJqK!aJO7%|F5`=lae*32uPgTC?|^sL48~pzy;+mG?h5jDg(W zhf(@O(wvUh-SlrwH)0opvY^U+hjx-Eb1;uKM-!cJ9@!m|tjmN~mQ~~tFRk33+gAMB zZ*e`#t%Dbb6o%{|9be(iarN!1j`BN$)~Q9e#deRRLO+JEbh@djF=+VQB`c=fyC3bM zlM-@ zKh|ZW3YBO2AL#OIra%C5%!&i%*jB}Sq|qha=#H4De{<3aQ?zXj4&9%XAM1T_sTG|L z*6Oa=KCZHI?DQ2u#ctU5<^nNWh}Gvoe;!VQl%{+vdboKt(fE4aQ%eP31wG#S7sPjC zrl_{}J!L&Qqv1&bU)#e=eFwO@mI~(|bmS;EagM3d&H$-+-?uCi?PHyOg|PnDA@s@{)oQu*0->9sIyBJ)@mpg zrEir)4E3jt_@J7_HIpc83e@>BrN!p56wmla4VV#6izM_FuE56}tNvNRBYmFr{}gae zq1UmoA~2k1vL+_b!TQrRAs`>1-U@9;c73Kn3-lwQ z2iL6|=`lW@B0j_xK+op*xZ>*dN%k0uc6GoVUrDMR)2jl?pdjHnSLdoQFyLkz+B@0q zw1DEAa1CRM`K((&U=iX~trER2O64l97E-jf?FK1Nh=DuqiscOc^)Yr9;k}oU!CenM zbADelcJw};4JG&P6KqeS3Y-Td%qv&3%j7*gJ!hu$RjcINi0{)P-yY)|hW8Hfx}i4< z^DQcdvG1TRBi}a%tR!qyDT6s;OWK8;ckz;IYiq=<`QQw_#9@yHqk(GJwj~Y|fKeiU z2~Z+cxQ=NTV(^b5!DHE$s7fXJ;8zb1++KcaCQ{x~@`_uvCf|Rgr#J>NsyHwHQ>N%k zO^us8I#n@a4<{(k-y)E)JhhowN za7;RwbquB4KO*BQ42tyEs?2bS)>IL2Atm0o<-`m&A1s_H{$^)q+AC0>WFRm)Bh%$P zrdg$+-Cf$FAsq``0pm6;Cb9Vvm$Ihm6F|)omCAji_Tots&dC8gzTIhkZ%U=Sqx_}a zp58LQ(l%s*<%H|4C`h^moQ_nxa_Aj_L+V3%wec_8A9P^j>IAcZ-?yp5g(ztHsPf{m zNHBb=%6AN(K znLyld*D_|-hY8tX>Nk%|(kDoLpR(W?b&1Ua!L^5Ff#zP`Kw>3hi_rHrG0MgE03*Ni z6TuKgilV+46FXiJ$~N#SJT$scqW0#qAPULxT#ajKj;Cm-=_ysWx>Hedyx#qZ9(G02 zAB6qNRqnU~-G@voed8Qr))Vv?S-s(TP9&gKg{6$3zZ#iN%G@A8<1IFuZzku@={>ts zIOzGP!~G&#mcl-3iQ9DjZ^g4ylRrJZz)p6D!Ak~|P30k*V#7=>x(q(wv`l&UQOwFz zgmPnAJJx5OaX9I6WmQov@$v$;KB3;!x&=-+bxr`ys60fG)Xh@eS&h>4WL;L72%1t_ zgyL_>o@(jo?p9tL`eV}Tzd3a*h(MJ@JrBtT!(SHKYYVHZsL+L_<&gx`zz?RvO=xG; z*hkZ6cHLF$7wrtCUpT=7Y_BKlXrI_vAq>Q#wV z6<%I)GxNxoJ{`iu#XW>E?YJ6HojE}Zii zvW>l&HvKRwiSws${|~?NU;Y``%+Z znZ3HDe$+=jE&vkIzLWT({i3m(SoT2ZsWAJSk8b3aby%5J(>p=8ov4z=m9B(ta7_iw z=u_o7asA8=;o2jH`#lkrN{dx|2KkDx?g%$ZQqfz8&=ve!P zCDvDB#n&-X&6|BS9Gi2@q(SzdmU)ZC$9|{(AkcFoy2Z?DxeMABUr}m3btAG?`o&Sw zV1M}Xva|2_=V0YUO;zISvuDrx^hU#kCFLqxuj2gh?-CW2Uwqs+vli_MaB1xxUK3ixc=Ak_UPtyg8y(E@-6&~8@&#*iQ6}Vp%KXXIu!l>ow z-X6Rk9AQp@EIf*nj*cd zcS8icp`vg z!GnQ@Kk@c|JCgr;Y6Ejmyo?Ba_hD3N$iDu8sNgE~J+wZtC2kiP8)3w3DXE0S+9+`1 zeEyPl*+JdJ6;}z=56&zLyz_{df-m)~sF3!fd!NUG<#X#=v83(#SS|0jO1Vk(JEtOD z#;*9RKAAR)`xPkPjsSlm8P4VMOO3H}pY)q$kNgCji$+3g>#a!fF`TaIhCroX4R=yN;if>2 ztWu%>=A!I*u}TyX$2PizJsR)LIu7NAb&?J0{hGBzk_5H1SZB!FM;;R25w1%kM>M39 zAxe{nw_S-$IYwfa^m#_+JV3FMkQr=#uXo#JB<=#xhK4gS>fZ%ioOZa$MqDb%z6ShFUIm{^tZXpzy$KuJ(LgaTy;An&|@FNEpE9kKrwiDzShQGdl{n zVwaIvd6lX6RTS7MT7!*U>yZJF40WloFPgHp*;d={c*6^()pj%5Bnv%TC^}H9oJBev znV8a>5Vm^*7_?i-V9|ej z-u5!>6JZzN6@GKP;;e|gekr}3-4a{o?bbJT=yCri2Z{JoDA))Vi9&BoAJ?O0lL;}P z0GhVU`sO5S*i4*TQuLe%`u@}OSXZ<2JW6~=XI@#Uf3Q|krl0b)Z$y=T=P8Py26(E* zjNnk}nL7%7uTWaF^Lis;`nBIp2kw(%&tt^P=H2PvQ{1w%w|M-PGwd3qS7d5`3B z<2JL)zmpq!ko~pfs;94ofiC0CABCB<0q@w?W;o&e>UPbc4ipTil5{#?>)H}-)QL%x zA1fC={QZcDibz$RXTquEgGk`=z^LkuidJsa^xfouQQuPkmcw1kvt}x^HR<(I-Vb)R z8dc;WZ(Gwvi$`5Gtk+BSS2h8bpmx9oRam?}MBR_LWj&Y0AJ`4VO)YsOhJU3E_Njer zdIO}Zd%2BNwpr)`*Sy6|iLqXI{~&+)6?mlBX%C88tW!m9UUU@ONWlBXAe3nrTa>Cajp z149zmi7nbV>E}y^do})hH}7`CKGsD#-&VbdAy0piuvC}948H+J5}~{gqrc?$=ncYZ z*goi+M#B$knab)9Kjrkf`!&ncIt_^m=89rk>^^NgvLDv{s){DC_UGK!P3j`us}{Oy zgOxmoPWswV%uAiuFOww~x+pidH8BAu8EdXcO5VkB;uluCh(BQKe^Rd&}GO8C`gIuo%&LA$R=fK!{cL}p zM2_RBQe|0PGdT$c&>z>SThC5asRy@kxPTYAe2HVLPRuDb-9Agl-|K0#1S-YhpnJf~ z%p1^l9w~dNJ5?uT%E1idm_l9F0}QGoypKSfuha}fd)1*X!xBp53I}ec3LR!kiVS)6 zW~9B^$n~U8J-}Ew?i-9+IzzTsRFFjlP-;pwj5VfgRPucPPj!`+kjEFo@~J zQI#>9a>GnL4vw9bTt0v*C@g3;ZR_YLTIJYOSYS$4$J$=acE6r7u~Vy zS^%;}mpcsBegEi2zK|xImI1g0=c9ZzEVJ4Z+f&*z+Ajj}`{vy;qopL&CO3mqEQTMADu7-aG8XWlZ~lF1DU1&Yij+`{>ZT9PGa#t35qBY)~) z{(PWjbmV$(?m6AJJl``{6m8c@cS9mV-);@g=kjySfu5`NV^2%N{9gW={_UxcM$OO* zn*W3(Cq#BHiu9yAQH>j93pQwO_3KGWV9FuPT%X#U31mAGhd5VYQQ=pyA>i{ua~%>8 zFATsSm}d1Og~SIRl?Ia-u}8jL?l`)VDcJET>AG+FKnx0OO{#=q0R-i2Tr* zmHg1w)_1w*6Cp}Z=_*k5b9w+b`@=ptJPN4d=U2Yaz0I;cy982N+*dCJl<5gn(Rf1( z*qRN~z}t)b+^b(a-aj3R|N80n&^~i$y7nWp7uRp}zBO*+(Yobz*Oo1CJ^Jc>h+bj- zNS);_dkX{>=NEt41YvIW(p9$@(iu(R5KPUXdmpThIM(cEb9uO{O8T~O|W3dk`57vxd zFbAkL`~@JOh1?Bjx!q*@`98Jphd+3dZYP%{2VftEgom%?fLt^lUQh2hbG%>Q)i)Lh z$~2F`#w2-`3p8TMSZVFl)KI!<;Y+jQSj!L$eJs3PW$9L&tWEA|gck@_(Ls66{XxVK zO{*P*sxTYh-mOq7nw`}RGmM^-q&X=3QxE-%GyH2Gf!}@6RonlPW2sLr7KnT1=Hp7$ zfqEJ*c-1?tirSyIhqQ-tB?7&RoN2(5o ztQpS;dIBYX0f^CEh)@Jd(XwvcCN2MX%_(O59n!BLefe^_ULqK{bHt%A`#vpEaN`ME z>T3>hOY|L}5~2PX_a{JpR8e~8Ms^%Jn3eDB!=1ttu6qAAmyT1g7$|iKP0!Q< z&RLH+5DGc_t-nVVUOMb!AdbvfW~Z%2qe?KCDCKclEn zl61Y7NHcnjVr|Lg6ifmdAhmdsUJ_5Ymi&~S-9=$Pxwq7nxiQ-6r?mg;cK$1-`$%DN zxbNOGeckaMCStkt@{=snp-kC5rVwMLD;d85(EO2>ve=T}ezC7GAXa!TDbDZ=yVY($ zZNT5N;$Oe`r%L75gS%pTS!G;Di_yNeD`O(2L)3>r5aG}s97Yu)qb{2<$t3g4FNkx# zV5rX~E$ys|m-OU%>XWiGaq7XHba}zEXTrIF z2<}y;XzYm-cTbc&xe)sF!W}EMhTp{RYZO~wEk48Nm=c6#N@xD<+Hd;~olQU9eS|Q| zG5Z)=h8l`ehL>s;&QV?3f#6nLja|Dqk`RFZ+4lJl%hBK0`0eGMQg&jfSHo$sz5AkB z%8Sy=(0|(H;?H`w+=lP{Oc+iW5&pA3P?*DQ z6G8(vhO15eY%#K{Og~DnZ1BmYN}PUS1GKn1zf!*->eH|H@3gO(xmp9EpGyu%?)tOY z{jvTwyCAqVc1HQ@eu#Z#02(pvG2IL zSWo@!kv`w|6eqz{uJE^)#vIT+70<)<|L#b+4znPu*gI$c_R_cjmhb=PO$1kxj=lOd z!{P^rjs{pitff%QwVCx~h4JJM0++R+)*BDsPN-XKd?+fZsw$B6-;K{XxuIZW*yY`~Nej|KO3cGdM zL*w0pkh@O@t|wnn<^$#KaO+sfOy{v`LR)j|{H2}FE&#;KrG6#+cUb~AwHcE4F?WUd{v1i|{{KK=TCA^Ep8lLxKa5`OQfv-xtqb^TUTT_Zq{^sRtM0ij;Z|Kj} zVou054u5k*pOn|Q361%yjf;s@qs~;=P=Dd#d&qs8VhGJuP_DPhZ-Wsop~*z)5Ve|r z>}v)01vd9seQwP=j5t2)8R938t`7T|eKXjZo`##tM-C z#Fyue{rN*J{)amvPe!}etQ2mL#R_!;P?PaH_V`g>??%+b>&fT8&q3{D!I8T>l!*0hkFzq*ByUnBT#$>s3k&b0(NQq!=PG^ur2-VGTdpMO({KCS1-Nm~ zDPl{^SC)$0!q$&Jr4JYlWNGpvgxcckuWXE^AgJZ-;Qc)!s(wDhc6n{FeuKxc%7mRG zJx7E!CA!F+`^mbNwO*1En2F4hby{npw7d(ZEhb|o`j+^;;!CV3a^S`%^~g*OH<0#z z<_&!a82|o8a5YJ_YPKWA02Hq4IomF=X>POG*MmplUq>kIyzWhdle>xUPb$yOY$WJN z=9T4_#F63#UK2hffxYHC@5RoP*6mnH;M+2j#!7%>i?BJU6aUuokY~3RZpRp@tK!|O z+5MSH7>h^cEeyJhp)*fHe=5U21h#5`Riy_sSf!i}e_9R91RV`>D6H9m$Zn$CGd(vD&03G63lgUhdrA z-K0wV3|?C5I9gA`-fWb{*Jd6z>Q(dV&4J76(gQ>Vt0I+xp9Xvma{# z)8Dr#!}I(3|EPQTUGUy2z^H|O8H`T4{YpSpV{>rp)pkY&OM22eZN10bRCdzg_y+%# zVo1Ca&ijmwF>$8DtKy1L@rNgt(#=89GJ<(a~J_aSIM{M4L4ObDD(HM@r^tv z3s3Ma(qzo^A$`{bbW#Xcurv}@j7?Q_>${DwAb8)z0Pc#+O6k{1UG&4XttkDutj-+6 ztc_p@<7|b~bM}oT4v`FL%z9e)n(?Dby5CZ|C2Uxdbs48xP-zyqF}g0?tP*)OsPa;QB=u{ul~qy*&APvNVev| zAOStMKNH@*3hDptCAG3n_HLKrQ(RXO%M*FB6-b~ersp`6Um0qFZeejw_FXj5nV4bi zhsb-+cb;KGXajrf)yw(onc+RzZ*SbVMk5G*eIYirnaWGk+bsXQYGlvA~l~d(!XrZ_vzSQ zsd@J75J1oCzF!IYY0Uf&yuhqJSlILE_>RhC@w4vN>zXm7n(~k;98z(NF&?n)%Dhab zgHs6is<$(r^`PN|IFqvxo^hD_R~LKThZu&?*?d#q?-jt=(@`w%rqp=OWdM!K)A`3x zu`v~-ZyWOV)2R8H#zmdwN1vZQcWiuB)gA9tXb?TV0w^Jm0a;^+O9(=?Qm}BO*RjX2 zNEUAFe>99sLffrzjck!tG7&pMWbxp(#$S0^rmvXuSsQDxSIO$pmD#PRbsNjmOqd!Y zvBd$+xQ)i?jcnFcmi?YUF>TE|~wAFjS|BwIo)CgbZ!l=SY|5!ZT+iyM~Wqc&BE z+MfyTMXx|ybIC>ee!|Mzy`CAi(%76<0nY7UKp!~z-dd*7m3e4Ly^dV6>drjJLfix> zowPEN(I$85gMibh`lk7u_y-lAw5tmon*2#7hLM}ccU<-I1SpcYSp;EBf(_YJ%JPN# zGl8hWs*CfWj%`o+xL$7{aHenq$FTo>#A9M;uh5o2M@Y5maMkC-OS-0&veZf6F=_a$ zu~`8+2d5E!sx?6#)E1{GUr<7Mi^1@WGUUrPjh%8|Kg)Rc^4qeZt>?gqW zvE)w(9By0=LEX400V#iMpxv?xDK)Wz8`jRzgS+45^bkuZ8~A9I;sJQKri#~X$7Nzj zHj97D3M?Zl*;l3hGV+>Z0!tg78mMe|S4-0Ec!c82E6;U}xunf-8HalBW|O&|Ie&u4 zLf@gHIVw=qiKep@$!K=;)mV>0dpYxLcE6WdPGTNAK5rjb^F72_Gr? ze4L+7V00_9DSb%tC2jA#PwQz{bWMn$^)~e+GoTuN#DxjRB4ub>$Yj*xWTn$g8d;Vx(^YQ)kzlhtRw&w-2jZF>lCEbk22?9nd(ih}l`e zdB1qYEiCjB(Nh4+bW8HT7W&%0t6%(xiT)4#3Zwzy#ko58mC<8;EYNjMigJjx3m$U?D;pmgW88cFApT0(B<`tr9B5ZLLlbCjF}@>F=`S!tb#-1Yv_z%bM1WIE z`Ywt_t8C0qZBr`BUV8?Oh`KP)q{fY2>90%9T%Ym4pf76JcBe%s<+s;Xm4-IrP7!-# zB=T-sU>_t{la*fMYX~Va)1%VewN7l}1y=75tfgLaDW5DWCnknuTk$U0VK~Yq`!#KQ z9R{$EbuL~q$rn=zpyc7Q7|NTsq!Iut;=q0N)0sJjC?CAFX?W!c&wKdCI7-#oXd+GGrrI`~=;# zZ~mS@;5tKvbe-<`#l30T`Wtb@%m$2~nLSvMV0Z>o*U{Y=@zGY@x<$KVy_PpPGXS!l z>|e%WjNeSMEL|ih??TI&zWlVeo3GbFw^ZqL(~Q@|#k|e$gn??v14PgxDtRd(@;K+< z)bppQE9j-k+jdd{XO?}2QXF8mxWH<%AK6TLrFg8rVRAmE7)B_(fQM|Zo+TeZe|j!SfORv>-qANf!P5>&XpJk|iUSrmDUhtXfja?; z?RD!=B44B6eO2|jk1B|GyV>2x&`%a90PSd=4~6M(24KFyq>ziCNPBOkvZX4YAHoqZ z3liVXaBO5=S#9+(U7BQW+0~&|LK$t0(V1qe!^M!SQ-NEBBetXOjvkpAK$;TLz=~4p ze?gtx=L8}dR?j6X4S)KT<<~#5RB&2LM(@1E9TbRXW1b_yF7)Jv0}wea}=@luyE?)(=|)vX^z+9`xc zfwh#nRPQQD%N|A&QqGbTnTI`;M;Bu2?=On5uy5jQzaHJ2eVyLLCJ--&b$Hf`MxgwI zN~WwNo}}y%7?hiv3=c3BA+X2HWs;kMl_F_00 z6sbKPrj8?wA?C^<&|^+)%gIS_jl8sBAfPPna=F@75S%;G6m~!(EEMey;KT<#;Fhq>a0HrA zkD7~43fqK@dP73t!q@WTadP<$at+lD_M;taH1e8^@DTyF4t&L+etEV`z$CY7f}a;; zClN%E-#FFr3{D8R0^!`dwU({Pcv$fVLQM92dWA(?Vn`(RRc)c5wWRPlN4{LnSNC5hAAMu)k_lD4BD zJLmbRGlo5LdRu;c-bK{8^2H|__OJgVG)q!#um3IMjRszV+D0DG|ds0Y<@+dt?T2GMx& z;=a-2SFnOdP9tZd1az74R63Xz7MCpupBp33l^rKiiEGI}Xu@7700?BbB_cf*hck50 zbliYs;R8$O5uRk$v4QZFtQ{*?t>gzI+9XS7L&iEK!By zki$4O6{1h*qb^{d@i>+ix8!=3?hmBfvxd&RAj|R@V`MyanCBK@E{Nu9tqh0sLwA&Ryl(U z)z?k~$0ypzIMUwVA2@(BEsm=%o)I_KO50;q7z^Fj4Y0J7{y{?O3rb@tuUow^gcBs0 zxE)?J4LZ;u)gaB-Fx0!{&d2*GV?753GMZ9(d~7wk;mEt}Y{5TBAhl9EK8g9Vd8SmLb&lARxP>*a}P9YwGC+v2XIxg^4n zY+jNjxxR@dP?JUGTB3on>^}D{tJbH_yHZ700pcQ2KbBEuWIW>&)+X1^Din0Djmvrw zKZcT!dKk12%GKw^*8auceYuN5wiMI&RQeX$`zBa+7(up#HGeI2X9Ze_C)A=jE}h<< zob*Jv*`4aEU8+hed%aTt*s=h3oG zfEXLxnjynS=XBt{DLW{3M2E^sdgF`2W+ICdw~NCp4Js9dxDmbMFjfm~!>G?7Y__wP z4+Ll1LHsehmX|FAv(`Ah1AlzgSXUvpB!Dy@X0COv(yyx(S}Bwjpwh$5a-X<9sL1P*&a`R7X7W z0^DM8Et>-sjlS1qDeGn2u+){hsmkrJv(b2wr(f1y72qak-cBBPn|*_?gHYMKNbMg+ zqcwI4UnRdV+ffO@aIxcpw_5hFRx~2HWqZj5`KidA>(pnMz3>4gc70#$+do8Gom6-fk}}(#7@K)3F$N@1XZ zg(a139tS!ysFzA;|5n%MRA&8xy#%% zeD@9<3YVJ&AnW)25% z8qfan(jq`a$aSUp=EWcW6cc%ye@7C69bF&_&L3PVN??|EtJ`efhzx)vFc%2;Pp@qx zS;Cz0k9{%ii9B?D9N?!*NVVrpahs@xvwPaOj4LhyslSQLy^7w>K0A$-ZvNYEn>Y{y ztxw0)(Vl*kugQ!g<{sfr>K2FooN6qc)?8P*WP;hM>CH3gXbhG#mp-5OnEy;$sHV-eW|!pKWc3_7-M>ukMA*EBI0K{h$U{se!=)Vn!5| z^Lg!7L1>#NEHVL`K^+;OL}Gw%@{(I^!Qy9v>sYOvPd;A@T5$~#3a_s)Q_|O?4##%G zUhK%=8g}agpjT_sc*n*%6$uv$MpW~H(5V&Gv0?D?nht`ka+3}SBNPs|^{2r)Vv})MO`Tfw&{SfD7hIT~#HbQ0)T$bVnk0?hoBvr0 zKs_&^B!2>@!Rm5F9&V85V98s9Un|w}Gy^t%c3I~yy+5&3wTkYGVv{wBcE3A`pG1Xk z^WO-+BB6v)4my{+<-SU!vrc^*fpZvRPxV5+6cgYpZa)}wq zM6wn}FwUhzHr#&9-57%9I;>HxgI%g5?R1i-8tbV$7bWuL4ce&L*iO5jQG!3BZu4aT zE?lfF!%OJ*r-7M(^B;NR(&}=Lnd-N}(c%ep213aaHr1(g&%b>^M4m@3JT&Dr#z$^bS78r`_Y$?vp2DsUqd#_jO``sG^e) zk&C6;_61LgTpJC*Ob&bP;=ewWu>aug`9l9zpfCekhWAVxg$8jw`%xZX_AXY2H+Kmr z?{q3D-Q&5CP|f(vm_4&Ww3Vt~yTLmfCUjF#_DBHv(MKYAFqS)bpYTg827;rg_xht* zTDkh(PVEW3Boqs6V~Zu zuCS41`_a4^veRjY(Y!SdkXU&?ZQFxX+T_OY^2K`$o}q%)lyXiudyxiMcpkaC>G|2L z9g%+~Kl(96vc+YHSn9SIBtRiBh<$6ZVv;94fJFB2`uBIU3=c>n1{M=1$(}p5F9FZK zXI%O5y35!2(K0!T5Oz2Q_55IC{&mCrR+rC_pnmcbsq^GegF#bCqMBL}H>ohBNeaWhA!Es~YV zs^#B`({4nz?e8pk5Cx+&dUePecZeNo+IYzg35^7=l!zo1N<)6!3RI6( zaf{!3&+oe&a%W4LaF?Wi_l@K*uBbZmy*T1V!`zZ9Pkcua1`E!ZX@LvjaV?;2qo}^O zVJZcjxh~)Dqg*P#b8CLTypN$Vo?X?s_{$sGIjZC1H^MdfwpIHc?hKlh^umKF_)q~m=UUZ-7^>)3}DQ(INc z?Ue7Iv`y}JaPRm4`}};nbJveVEDH-buenYlU)np63sS>UsaR{^V~iQ_Ig2DH3#E!6bo};YNFm`eHy6bjTg$U+tqXU&N@s48%p<&oQbs zQz=_CHs#@YycvM=z3g|>AO2vY|7&vr(hk7+pFtnL{xtM=h1k#Z39a%a_vPQ)wUVS&5%M+I5gAiNrMta7nI$wbsHFQ7N0c&NFs3&YVKwl?;0NBQaP-& ziLbDWzwB*Bp#c{9z-VdlHfdyl!-ldzUYgi!%YfG5<#B5(Eoq#u(^`ZSclp<3JK1gdL;`yI~kX*$}5vziUjiVj1g; zO1Jn&PDAJS&LmWZENo%F=?9%l)A(K%k4x0nznrU&d%V8l+d!x$t#gat-1S%Q0IkL&|`81>wMIO z=NNsQGPSoi3s$s)-d^hfN%Hl)39hH^Q!lxc8?X7j++pplS~&|W)}#;u1fBd_@4*^m z<)@7n$Q`1SO*%sROAiwbw3N^tFrdZj<`9JY!mz6%;r6Zm?N_wMmh)Yc4bQJ&E3u(e z=?H17doQ=o%z=*C#unxE`(9rq&vDbvFz|)Dk;3pObmu(8DcdVql|Iz45Y!y z2q?_(qi`-QV~LBC&;mK1fm=EyY-3hPEX`aXFjhfq1e34H5TKX#YsWi!bk@)1xL`3O}F5Uo5^-M|p7Z z6Hm$~q2A%vGd#;&DOEzZ`T0^Q?yrCjbd4sM*DoGM+u;11>}ti2>}%3z%4^Acd!u-( z)e!SG_=?ymR5$v#9UX6)l_`xzSn-=tze4Cq^v+L$yXiUnNfMCFHDQ%^LajV|hqqqY zNPa1ISJ~{y@gK>|RQ38!UkJ>9@aWa%F1lx2H=4~(wJ2v{Dk`BYHaMpxACF&7er^o` zY)nxvUteuYr1aD1<5;Kcf3VdbanIO*tDq-<^BBW{Ssn5k3$Mzw4<2AeHeD%kZGPwI z`(AF}k2OOKVlg{1J@t_@&D+HqoxN!3FIi;sD0$3KBw)LG<5}{KCG@*82)O{c5?kp`7! z@~PJm&bgPD4iPx?RLZUG0-eogLImg=1Kvq%Yw&CxJJX=j1fT<$#fgA6A**zsnZ85YVdf=>tO&jy1^W*l zke)wm7iuPiiT1ao=;Qf|TR$LRNyJnuAqFYHMRf+)x|2AOUs1XL{X<~1uG%Wx7M0o_ z{4+FrB9KK)a~zd@+l;AFjP(&WDhINl7}KO8>SC}-&6-1qX?&-|0k@U%_Hw5XSaMuG z9B7JQjCScT6(kJnQ%Nh@c_X&gLz!kMD1j7?toPfzHJ3yS_Zkau)zw##t~+rjeB3&S zlKPg|XsXdikr4I&hnsj)p-m~bcCL63D( zhHJ%r=M}%;)^?E%aUAz#FRk0pG-HV6EQ6Y;J-Nvy*r+naE0QTzh(4pdy|Jp~#gBNf zeS`N{vuHOyUZ}cIR{#EEJFY(H)VU`j$w*0Dc3rn$HU7O33TxNWwsdrBVwpl(8WFLi zREe#3+FOu`dq_z`-d89#!E@20OU{GeZ&9JT0l>|^uqEEUMM4cD1x(!y2lpImLgdyt zIo9qdT9^%fx{fNH8WhbdSA8(86K-4>8GAx#5PPqJa1uFK&o&D`)Rb+EDXp9&e=7X| zS#vfYu3Vo3ITY*A>|MJYG5L3>%p^a3dhF5A@yGe*u$90Cou&YA!>0KuGo9tIbx=}H zqze5mI(sMn8*OZRT5m{t(rueuaF076dh*+pYLsNN73KYA^Kv)j@P$Tk6<&&EFA!eu zhPVwr?)1y(gq7$9b#-h}Lbf3_04;IL&uO;xgwgk@q9fPEB2spSxm!Y|c&N_HDv$Cp zGk*lTe=0I#<3Q+8a$g($as981pH7~A`jIE2*idbmyycCnElPGw?Ls@2*wAsbXEd)Z9<1J#LT1Bcr6#|c~GD(;IjKX%|-QqGg3>K*Q0qf^4U{gB=fhBlh}x%~R1#z}iQxFK#?47`EP zD#zjd2*|mYEvdiNUhX4JDhtcLetz`45<*2-(%$+FDf#2S5{3Uxg^jxkFyGgMZkPYq zR0~DU3@bNAD}wh_zTEYnOg|)9i-%0Vus)Bm0}=}K+14XFBLR?~npl_zO0}T0v%c_oN+P-WCssnhO-|GYi%qvYd=35zD$`so3|E!N4j7r>WruI*Kywn-uYTc}w=Jss^=#!tc2}bQc7#VV zMuT^_P~;oWPDOs4JRG4WiP8XU;hx=qw8$F?3ItLj2t6OPB6`}UYzw^YZtSKvh^Q2G z{&J3!+r%&($m_d(8MEYowZ~Uk)0;w%;}u023m@?CkH*2S;GjL-4fuX^CzYA$-$R6bMF;u{3AJ`+R? zZ!nZ|Q}`F3HkgD-OPTdyoU!<8Q?`fGY?CgC`_7Gs12O6JGIBlh9fU?UJ^8wflHI0a z3sn2W1zHRK==7|9waPOoD9}-hJ1F{ys=Rco?I}w~0AdvxTp71K5Q5_yMJ3)`VKvEl z^$55+6{3P#WJHx>FeDOP1Ts;``&3%AsGF(|_tFfBMGVCf#08T`f%KPh=VD z@M8k|Fv?OQcO-}3r{R7BNT;p{Fg<$kPp|zV`TYB|TY;*-wlmkhx_D2TUHj0KH<|Dc zX7`tgTt9Ve6ZGWPPL7T*?jNwkbC zA^=C4`%3PGQ-4ptU*7FkKr(Oqt%My@R{wO=+b_|uJ_OKRgn851ucf>6Yrx+8(D3v2 zoBnMjf4ft|89?G9`;I;Pr%!BevIDR;4nLjR$r1UPIsNGaaH~1dxJgs5YhQaBrw<;W z%QT$Xk#m1x5up{QyNacSU)i7d(}`=aE3Y^>|G{o)oJyap#C_qczA)6EUgvHDoJS=1 z*k5k+pML-Q#lQEY?ELC4JUUzjoT4CFV}JD5KKcN^^p9rs=L=Bg1zab2Xy{SluYHsg zJ-X`))88hkFaG2-#lD1e4#lsoDCLIMa_#u)FWic*W;S_l?!FiB#mRi(iEXMnK=D7@pVzd*4Xf%8H%_6xkS8KTwk}f7s!V?*Hd=*TxmLmL#p8P zfp4jgEnh$<>a?5<`14_F1(xFa29^iv?5(^vgx^sT^8ggP%f{9#KmHWNC$PL|)#UjN z{BzO!7ntB*S%BH)(A}2jNzaV4vp!nR);fVoBzp6J&?6Av`qi$+nE%q!3)7tbT(JZ1 zNn4hKP!E23>iJ-g#Ivq`YO2oj>xa}KCCmQkG1u%UOVhiN--ONsHnRBu*6E)MI}ORb z*HV~fiD#U3ZGoJHKG(=TBT{M}A(Uh`wjrS&!a1kxGnZU*M_sj40>A6rOYZxIuhm5L zA!`LHPt_MYUOV5!kG(U;^qB?9e#4n74p`dy`u1NT+zTYmKqo&L#R6mc8ZxN)uftwg z`@+BTG&&}c--5A1_Fp+DW~hh7C&tIJ9PKja&9RF9+>Ubp5LLW*fjH z^;6|V@eR~nw5&pqQsv~>4D^2eL3uT}%9x zbSs4kF`;^B5&MrQNx)jlBlrh?DSW4WzrFBcd>@;N4mYj8-pd_l~`PJ4d)%|E^x>5JcA3lv))W#9h+ znG{K-dUo|Xn1&s|_P#b=TZGb@@NcCDMl-t4Y8xJnQKJzt)5Kc;xm1q}Yc;*^G~wE` zN}r~PgSJxp&eHn`df28$gh$O8(Asb1O>QZe>NP^#C48}6``h9IVY&f{bJiZFmv>zl z0;DqSo3b(h_{pIGKMj2UzB~n=AL4j{lygqB`MTun=C=OrerecU&IO9Fj?n8Y|c>6I% zOd;UAH3G)-ZuR5;wv2R}n==cF&ddk9-{}zy-UV06Oy?!4B1!VJxCeO6v^r^s7h3kM z-{SE3D#oJW=nX4jT)7{yw%KYfV+uAp?lG3IqMdl&-wfr^66tqMWO(kO-n#NVil`Ai z-$}aA!3J9m$l0o9)f!(=x54|BA1w+w7UPLyi^maG+W9)!-{3UJgA+mxJHmFhC1)HOS*xGZj}fzw6+?M^Jh+aM@M<>mv%OGH0X#9 z1g?39@F_BDRdA{&&$t7yUl z389Idiy( zjjwHxPjBWHowpY9bIQHhfu3_i)PtqaZi7Kq#GG-k5KvD}v7xSt7_`Upv20fA(Z)dD zJ~}%2_5QJm^bo3GJhW7921FQpJzR+hZjX)%l2Rw}9@PHCm`Z!k;DV1Tj7ke331Zm! zQ8QU-*;6y^Nii}t8!uIjGu{k_Qr6`>{>RYVhk=PbdXiU0?!c?m?Z{4C{Uf*Gc{+fz)}L;YZ0-p zFtA=H*P51~{ik_!zg=84h-i(hmGo9Zz(2J#d7wVGDY zqcn<7r#d=zM%H4%+U=l>dL6k%56H%bBu~kDP))nbo6?%jOBZ@YaLIiWYI+6mzL?J1 zDVzSjtebs&2`Yj2YF1{fiQm-05USYpi^Ks-vvzhpH)AbaGGd7CT?z6tNOG@mPH|{z zKMAAj9od@9v6FW%0r<=GLDUN-nF5Q8d;J#)_9X{N2VVmE=B=@EV|ZNCQLcQ&WA4gM zxb@yac+Xn}v8Mx-oqlP_-I;o&}3Px&NZQ=E;tgUF$N^x1kcR09L4EU;o z3N_7#W?UKHU+$Apl?_naTtJ0bk;M093(u+~t}2@UK~O;E=>ge2Fv19FK=Gk$%H0s9 zsWPCxTJjE)Han%a&LV2klBeUbhBBL$#m>w?W;8}GMcKcwwEc%KZSbGDt5acp zhE_!09e*c0syaz-n3TTA)BX_OJ&{USDmX|-0U{x5k$uB@e6C%ts&x_wnGti22~GM` zx^no|5{5Oi*SUYh($aJprf`Hl=AQ)V8PZ9PRr0e4vMIF&3fz)5Dh-h4MAHTN4dRe2 z*vzWv)ia_9QcXR3)^B(M|1aK~CG9tOm*%sYW^fgQriO$|5X6M&eZ8f@m=FjjI)XoR zc~=DvouE(itOYAAO-{w<1li7CpSbL$AK_{c-!$&K-bFp;>WqkjI*joq0oZ;S201`oe0 z09%<|>*aYY0_5Bow?yeN;Zq%zKj{0%K5nF~&&8maoG@6BIa7rPQVtFnip0#{N!!zU7=Xe#2)EB8FwhH+{xOl;_5H}GlK>2#%v-+hq!jWLS_=7Y|H!c8h_Rn zpbGB?Ooq)7GTwuwvMID{6cC5N-!v`dyS2N*KhnKz`1i zvDLK#EA{MTjiStOWzAbhy!+V2-sOdrrGFHAo81Z(Rtm&*M52#T}$Z?hWFL< zGl=~UX*@EErC_tgAi{g)*csgXCA4W08%o^;T|~u9NC?-K z^O0QF$moth#V9_sHCbUh{KoZqhZA-9`2~)_v4O$EelWVTq(bgsY-PN;bt=u)mf(i| zvpD(BwL87jh+c}&e1GmvhsWIYtVIgm58tyMUC8iqrrvjtrxW{CYsgoK8F+_o{i|SqDC(jrTJpHPq}NW_E47v z<1K3HXmGZzYS1*cSV|%zzVhR_Q*gF+x|PANFECJ6)hvCay_wVOEIg-FAcMtCpifZ-NfL*xataM5qC`u~(*i1q-9c^2x^0o-qozN0Ib5lc!xz@s8 zs`gnE{G0or5wSbShX|BuEhNlzCZ(A(JXY=xeS>o^0*Q|weLw4T<8bgmq<;sT$Xc7D zh!|V>41+OO22}33hqn%3>gd;~bNkfw&{Zq(fmebyB{6Vr!^+3x_bL0Og_?H{u;dtl zgWw+Q&`PrxYYGL+_OuCdsoD7WX3L9b;e1gqWfrMsnHY73hVZODJ<1qSolB#zBvSxG z+Nk`&B9PNo=xl?lYVPycXG->PvfP3STH(7&;yjE|NN0{Vi7qcoh5w_F`f%~(H$1|> z$}ou2Sr5?@>IzxM@#+fYo_Mu=wZzc_o2*iQk(>8oH<p`AIS_dxj z^76`_-ZQvNMW2q_YkR1cBmBW`z5^F))+HYFzIgN__th(xf=H}2<(2l%rOs2eNu#&r zX@O~uzrfQdA!FyxQI}QGk^APKGz!SrB*<)OFS_8ttYLGbXl-U%ao`$(&2K*uJQmcl zq7wg;?*8&ksNcyhv>`&yf!Z$TKC{qU+7iBJJa1RmJA1fKV__JaC_)9zoe5j;xeNFi zjS^+kF1Qgiv9BzRdt^z~5tKMPYd-3?@;z8zle%AAn%R{qmVM)(Hay2ec=3r2>lHeD-~QIz3;|-eLq}kA@pFEA z+>ruqH+(?b;?{&c%A&t(D}18>X{br4Ox7?4oL5O14%XW`pwh9Twoc`&oE`>XD-g`j z`7e#EPe#aQEmq*7tqAZFcB+P=Eguvwn9r}UiktxO%c&gZ@oiSPM-;gR`UT{ zc_JqyadmwI?xlVFL#+48QtFt<%8{4aQAdo4$$7P?{`c+wC5)~S!}%SV6vKsvV-jP& z(>9;irJLujnLq_nbonz1paP!;Pbyy=e29ne_{x=fu#!LwFd zhl=g(FO3T+`1c0TpZ4AF3@KxQ4r{Bij>4PId`6a90Hc4JA&K`e#qQ;o(LEd2ZRcj4 zcmC7@h%(~pl2$`FZb9kx?!|$L7Ebc4YKTjc^9Va%)<;3mZ&2UI zs>`G-?j@wflSlp2eAbIaq@;0E$XYla40Cr@J7o(EG*P1G*t<%*F10uCj3jA4w?J3d zDmbH!G5JRgSo4nw+1&m*5nYt5ct%mbm$^U0tB6=wQuc`Gv8O>ZzdglH+;`z-&h73J97;~Q>tSX^_H*Y zHmm{J{MShBP%)k&o<)VSroy$3?_;p-ifcXTQtL=&*Tp`AN&^bQYE6nL7ql0Y91bA% z&Yk&#eTP>3d>4RN1r8A(XikPFwx<3R<*Ep%#=|`)=Ku`;9l3n|Lk>+YvLV3ZJ9af- z?{pgMqLtfb&Bm_ywo7>OES*(pX_KY=Oj@lbI(G=gKYzzp-Y|Z^@IsGB+>mpt1 zkntSRd1*x1O)4O|Cc;Dt%IEJhDEdHoKx_O4fSb@?Q-0QaO4|SJRJ5(vOhO^f%pWp3 zwPTG85UmK!{@!P4M7%)Z_RS#I9%X0x+jsAR2MXUgMtkThKP?!@Wk*QXiX#jfEt(Tt zIJxBv(;HUv&wH8&e|Guj>!v5N%&)`Z-&*VuxY&sLtL)GLe*if6((CtfhJgX)tFk7|S z*Zn+*pqFAk>i#%oUQmhS4_Zy{*mKl>p?ibMd~?u{ zji8CBtb4b&#%IaMGrn^uZNy5@J*l9=LJ;18sg}ne`(=io?JU*1bUApB3HPE6q3bI# z+1UzW*9-u5BC7Iu zNSL&OWlF=K|M}ej=Z%p;E`;R;zM5Ht(!0ap0l-3bFLEwxA7>Y zdy?dez-hguI+bzC&qU8#-5jGo4%|(iE1mg7^O+w!%ckHXT?qfo=vxiv#g1W0X7a76 z*HWyh_oMzV)g^tHGh^QG5ke;_=wxuDrRb=&S7*bo;ds|axT`x($jOm|_w*7rPbX2u zU7O9i!t1^2YJ3-erLHf$9eyI;|6CWNi}o9ll*|(u>P>uzWl}?V2vKIB`g* zBw``K^g8L+$4j+$`1*oEm-h0hVy4MvKeBE49yTXL}+4Ip@EAqY(+DE=E2U-+62Q^KB+sz;mYiBMiQF#B^e#j;>de`OHGdXc(Wp;6cp8-%L7Hh!RYWyZ4!Nv- zs;w=y+o-e$;~Rh6QBmp7*9e=ov@V7F0M#YG3ppBZ0CatjZs$LEFD4f~E9hCRx;F$r z_7`UyF5mTjtku)otOnxVwzSbk=*r23QN1s8CPwbeHAKJ%zeI?j; zeL?S!{cw87!Aq6#)ZZ5pPZGpx)faH{Xit+a=p6mM3(9%1qLRB_#f89FE2AJOus0G^ z*=e%LZ*D4_E8EZ4{5WvMR!Ww#WefH*m zfws0gI<;&kotnI?Z~fpHTXPtf1~?ib_i$?8uk(0O)N@u^v@33Rc-WCiB>i}JMTmaK zBJIKBz1Uw*>Lt|%JELI?+LjMvpF$RHiLT@P`dJ+BX_kRZT2$u1zGKlxH+0*Q%XoEO zpY=Ag0^C)i6>hajuY%(ZTlfm}X%&*Wgq=>E`;ms@51;>GQ8WGB8`5=g@-s@!`*K|u z033iTLc`6TlIN3eHv~ZHV*!}`)gi#KlQq%sgg@`d29z1k6w_~uT6q~0Wf*p}$}p2$ z%o|$6;Uz1O7FI)?e{z9X=()I6dFt9V1=eDxoWp!C-2|Q-U^DCz;oqmcxH{d2jYl(6 zw7EPmN>ifFYyR#=#0yx*_G<(5nP}(U1aoZN*4mnH!;}42*^v9>!^$#1^N)gla^&kR z0v3}UCIb0oV-YJR6gc~B-pKSbm|6^TbpTDk?K}L-Y0&0Ssd=@bvHa$+f{fl?0U4_~ z83E|hg52%p^jMEld9ye?ya`fWLRzvg9~o$(__j6L#Y-N!uryz{Bw6+gF#03xh^Q*iiwoJqU=`b+oT3Sav~;I%aKKO4=D30KG?*8mG}11*U;2O z5iEcgXM)HGaZRl(k4DNb!2C8m*GL(gW6m8IkSk7c=SFpr?404cSm|xA7x9q>XJh|u zHm@(yu);pXvqGpt>+RmMpFoRvglFPe@BYMv3UA)u9*p?+8s+?}sYo%1_Z!b8hAr`O zWWwt+UPdTWHhj!+uEnH&5j82TpF$i8G{g4KX|@RUji2%~OiT_Rr>F%Z6@1&HKxF_v z-El472`3t94dv4s7A0+#Wta-pwJLME5w!3TzII@~-Lljeje_VBtzAw?gsU?#aAO;9 zge|fsf2h=YzKbuqw9NnqKNzK$FWbx$uno=y(fDBSJ>*k!<}9Tk-2ljVA169V|=Vmk+tpRq&yXQ2(Ex~02sS#|CuDv!&(YqmtNotuJCbC|o2H(1!8QpEBAax1f&03wSxTo4yQXIjxe^R;j zcUz+0)A=ysWkkn4zbBLV^gwpJeL{z%#Z=^7{jfaZ*tjGWjmQb@|*} z*2_#i$goRWM-PDQ7{6cH32kNia_SoaP>3@dbxmpO5zkxA(hXnShQi1zpmV}RnXlh- z*;JT;^M*fS^J-AwdL97IP1XfaGo5QDnyrmZZbp$u^-#ZR=c}uvMJC zO4-=X>h33^JyAIKn5YXrtlmn)HuLbpfoIxMrx9eK*bvciWC=em|KnZ4&=4Wxr1hgr zdz%ccjpcyY%4eR4DgpbUqBjrQ%%`!$SaGJ8gc&W@FT z)Smk_LN=$|1C%I^mbI_R!ezySUfTvPMw$wf1;Mq)+>4k&TY$o}Qmf85zwamztRY#0 zB^RxkLID6GmEi!L94($(C*ZzW^k&W;9&+YiZ5uLjp`Q9Q5hmSyh(LJULl75UqHe;` zFM@j+i_b9n9*Xy_B`Uz6D1COzlk6n7gw6|#pUTFT-;^I^`2lTdz-NCd9xL+c6jP6b zGV_Q%d91@zo00FJsfHqiTVzV5~G-wVim&f2%P738Y!h zVI84m{ZvcunNPQXNE3grl`T8jQXQ;bYtXck5S?3rL2ur(<*Ob<(N*1K7EV4ELJ;pSu-R(Ou`6C%tx*JK$~E%8gw3PvZP z9&Xob&zi0RJfp98%DZESm!DSDLl zTL00r1?aKm^$;^J8X)Jh1WLms%=*WUsGnsp3Spm;lGi>)XYUtM%6D7qso~CpO~X*u ziP0}8{nj3->iH{FLC+aN$_+RoE3)(%AamtdPzyj<2uF=NJ>;EBm-10_yTTX`-h#S% z*U-l#mrDEV2JT=yZ2Fj4dgdXHk2~lKvWFXy{aya!g9o3=9jd~H**T9++U)InW4)j@#>pC5JqSx%v_k!id z2NlA*R{q7E5!}v8m6TL{l}imtI=@Lvw5M*YM85^JA32^WZ~zv1O3x-qUz53}X(AQHd80q`#93=&JXb^wNnXTaP}= z(H0I}iZN6M#T0{v>5j+o17@7A(o5N)eGR zgpK@u3Fy6)nI-XCm{1*9=_Z~6MAGqkS|Cr5f$-ubEWf}!!))bX&4#d5+@ z)9pEAoy786anh??1p&c2kQr~CM*@}PKW1Iy*h$?KcTS^_UXuJKi*>R^Sd+u~8BA=` zt$Cy@=F*!c{|~|VQa$ESLFJ8Id!Z|NL_OD5jJ4GBuzgE)lu)~hv0$hW>-#5$Not}z z;dr)S{lp`j5~Z||9)vS*c(6(f(jRe*x1m2a5uTU%A){nn08K8SBYtkw;HAmeuiMkga~J#HG5~xd32Dm`IS3(K zgn$MoAzi1|v)0sO{EJ3w0VXtf(Q zjyHtpT|je2(wHw??(R)iZ>>4T&KF6UVXFDe_lkoyrrLT|9omRO=Y;vGoh-%$F!T~x zFn?PJf01xs80m0-Hq(eGjlk38;(S$-kBvn~`~YaYf-ZZF5T7 z>YdvP)?;7+ouJNWfsFHrHE$IDCE&Ue>zre@h45mmdCLr`NnK$iz*TLi)*rDRySG!H zja)xJRI0<@Jf;F!N;Z7UovlM7y8CBw!z*snW?IYdFslut0{U$yA+Xr6hrw(m*yHRT;s+ju**w$@mVf<^noV+<}RscSz1 z5RPrj*p_WwO+Y(r{<$%BB5WbeTpgI=O=v#mPU^mL<)y&%LmJP!f*!##6KPK@kF7tn z{AP1j>eFHAOPjo8*G03rF^}2gY0BEXoACnfmA3$`Y=*`*QxnX=7(?E^DqvY)FQiIU z@BoshpV-+^Id;QJULnr~JjPZ)LMmWr6o7#z^|W;qo*ELemA#QoYF|p4y!A9XW%Yd! zQPAp)eBRHtP<^ezx)55V{Lz;uez1PWHa7u+4_;kfVbbbknXg371x??47)M zBz;UG&7;78T>`T)+l}m(TuK9M5CxzZ0A<|CY8Mj(Wg%xBLqr;Pod>Y}ZJG6*@3|IY zn8bx>LSClT#x5RJGdHXABz8yHg6{X5qkAZYtSv@3#qQ|j`!^Zx7wnMq+O0K0YAkuw zHTqE6`%P3-7{m|8?iC^%4J{w68w(DZF`zAfzeTb&sforXJsF;-t2KfHPgB8lvL7Wv zz*|_?RV=&zOcws>lTOc_I!A|+PjpoyZE}d8QGJ|h*j+dHZjn}9vc2ABNVsC7tpcO{ zvklrLqM54Tz=a!O)1i~C*7BatoE0>OHjwICfc)cQJ9W5=-c-;$l;LS$ZxAZT&g`S&hxl%7^r{t8I2KERf*HA8yis_cseM?Y zP_IgH5uTPy+k48b_%|k*;LEHO){SqK}}p>^^5}eZkuSXkmZ> zTd7I<@Vf;YN|v|_r1{)_(<`0mv!#_@zzsuifAAO^KkE{9Q*f-1{tcSGL0TQ+4iut< zYPOk||F&K$KU6j81@s4qmyKSw?ml5*Q5IR6ek)7$CZwe9zWklP!-N zp(;ELi!ZtBW8%d85HI_2SE=%1k^699%VJN3wP*LI+#24(h@1YL#2t$prRzHRnyOGwtsI`EAY#idML>1M)$VR9Ub22<~B z*s2`$@(efcK9R2+GWa4SxlN=fLEc?!H*3&iyq?)KQ$A)Nm^Dtp6mGdg3)zkyO`hS( zezm;B!|D@@J*T|D=d)tX6=cZ~#OPKkMvY};8>s$aA?B3+RU%@b%wC|y+L$y=na*9B zikror!ysRHd}QvqR90Gw-gEuqJyXKaO~%ANXnfPdlPe5*5Z`xbqU}Ip1tOSf2mSbK zmgNR*V3j5hRn9oU0)VP@C+K#yHKY}58@kr>8lpsp0)_IXr??R4B1~5h&y9zj41Rh_ z;sKE7zk{PI{{R5|Bewky!=W0SH)N4+?JnTC)(?njE?FLEysW1abq)ZO)pRaa`;e8Q z^2&uU_jrMJY#CN9X@l~}%f_YsEt8N_>0AO{C->YT> zxmJ3BumzR)Bz`HIgfIuuGlH>CGmmU?l}c2H9kr;o^B#TJ2{f+(F(0NmhSu}lTB;#R zcC;vF`eLYE*Ygf_B>_HB;qgewiK8Re1=T{X0F6H`P408AJQdf16sCARs>uXgay)Aq z{-dpU-X$rXfM#k9F8>)*o^q7;wv5C*5}J~_?>mpFP2N3dx-~1Mkl8^pHgSli9e?l| z=TYhaB{60wu+G}EH|xX0#O>}t`CrIb5f;uFzw;&8s`nn|`KAtV&!M*Bh8j3|ROkT( zpsCdGin|jTKKO^xGguOYB9k@W!^W+SZ&F9jn=Hr{I5l53Ns*!QQJl-U&{JwMOPFRT zOyS{4yhG0`{~ij=$5ai;QX}aFn{MWP6RAjUeL!uZc$uUk$Q7p+1xtQPVr)Dn*{sCK zi3R7t-xb)Chdgv$mq?nU-fS=49ANHX1k$|wTUNP}=RNFqyyL zas7z=?YnBDJ*<3%x>F0P(<$$qGxwOH<7Gfrd)f=ZZ!+$hU8%ND+FY~FB@01NQ>nCwLijH7XrA0?SL2KKyRbl8tJfhL^sT){ zk1D1np5+`>gVMt#aGKxklUP(c0~FVkReQT$8gD8INK^Fo+j3Jw2Heo!&1^{xQEJLF ziqK`4vu1d=+4lZvmR>TT{(=u`*358M3@ow?0F@=Z|MlWrJG8g!;Z_lx;71$c+Lii zK836($h4WaP)PDa4+Q~*PV(U=efEHsH3maP7B|rev~cj z5D)@fSmMGnT|3?S13A(_at^NH=pSLun<;=Tu6E>oJ;Jt1D-Y~y-|$2)uJ_TKOb#zi z=}V8s& zSnUt+Z1<+E2<^_WPfR4xIhOA?o#?=V{*r`e%tADC`4Hc)_)SAVFVY@*@XXV&Q^51a zjHPq!`SN`34t~CvsXDFniU3(so4Kq?<)I&B!L|k1bEU!SkK?tcM?D3cm3Euf)C5!S)rM#s4N#QR8IHCM9Z25ZeQSSj{TQY{x=lGn;`zvfCYKr%mbIm zeRmZ4vphBnid)pz(;?VT;`_KVSh1$%QM%~>xbf962b{LxFICyOckO8dgNs0dXR?TT zZX0uJ23L}ssSF1it@aNysDd669XgM38CpO2G`CwioAApQ;Ow?sEw9unN`DySQCSTT z&QV!UXBeST=lMJpa6VIII2q-)I>IoC^M@|TsuN!QLhO(qeH&t`#uyhh?6v0K%kDDa z!w@mIp=4S5;$^|hU~!J1?h{>%l>8&XkJcp1xxICkX+Sh6#Z*fD=U6Updm0+Q5q+pH zDbrMMS(*AHIjFQiG_~^bvNb>JT5(9Nt9HxF7=kjaj~bZSuG7x$=e37^mqeYuC(jxzdV- zh&CbhH!~OC+6^_9gv9`!!DgWQs;b1gdIBR=t`d39*NQxFJP7VF>H-xoCs2-4y`~Kj zA7RSDLJ>SY!uuwyQ>XRUIfn@C5 zRsSu}k8yt*eV}w}J=hQDY#OF3=)l(@I&uW^>?Tdy@~-L!Vrl6&OTb>nQ)+uIKH(8e z?4+$9-txWd+m8TKk@O2fr4j@!r{KY^<7^SL;l~5Sgn+tr$4AZTzRfypwesam2lz#5 z$o%W|T0xIa%CmaU^2bV<_F7f7IqO0*(py{axcZ;&W{1_JK{XjxP!kAn=JwILxNar? zrQVxagxV#@Y5b|B#{pHhOcw!N=nAX#1CGnl9;n`Jir|NzMW9jvjY7oeMyT?Knw9a( zfyxsJqCI@-R0lQkie-4P!Uudz3D<$b%@tFixyPUnS}G*OhkO_{T~WJ=Vo(%h4by1t zud^`i4|eax>ceVPStB+pDTw$^LB6nfhqQ=*pH40{Y(AH^sXC2Rp~m`jc(N>VT~H+3 z;NCsYjl6}taH(ILAUdXHk>R@wv)Y*{M zFfya21^Ciq$WfBn`oV7q{P+qG-vIZO53s~j$P)*9?lT!iDqV-thKeP(hYZ%27{3H5){wT{+TgPr@6R7XsT}33h!Dm` z+-H`TugSq{8(HtdYZP()Ca)7HrS17tthweG5QJQvD(pNvKt|CPk&ePIXs-NMBJR6C zN+wpM_zlWK7GCl6TZN26gR^Q`E7$p*Y;WvV%-tt&oH%&q!CPavKBC;v{?3Uafm>L1 zR1uNP7>YopX8hvv$VBv!P(g5|$42faGbO)uN3@h1jKts}3~WxbC@EHu=LZ5z2!*|V zcz1$Nv$I&%-Dkw7%K>$h2_lMfn`HqXe+2>)1>9coB$0{Ly=uXJR1Y&gl}q9AjB&^5 zytO$Lg!-1n>>;cc-9yHjmK%zEDC9G1mdAKiE>P z9lOYm<)aq@u8Z4>3HzHc&G{xTW=&p97GrIY7LJF(2B@jgVQ!P5x!DzyvX>eu%ySr2 z0%Inh8`|QPxJE0w{jtZV0md=!^;{QSUaSJOFJv@P?2WdOI6o7@pFVUI0&!{F#&T`I z?{P9978$bf!P}S<6|wBkI~es%fVb7CF5c_;1s%N#ZWnFIv7~zoQ7L8%f_&E{%k2Wg zqBaI}?#poGMyswM)~(F6s-1Wfa1QXrlKZ1vtF5_Bs{zr+=2)~=!dmViJAQ@;zi-27 zfZ3eA8n}F3qLiN?O_rV!oV|k@5;Igk>0UgPJ;wv9KFQO;KhY-xs`=DcieWZ7M;5-K zt{AJoa>pr;0?71%x{5z25_G?C z0^OVhbY8_HdeqqgZDA&gIL5^mND>ppuzY3atmr+GF3qZ6C6rsw%!Q)5dBxew#NP9o zpwjKTK)daqD(%uHLm%cWfZjDB85^=NHO8m-ftd;HU^Y{@%rP0eGi|eLZtS6s&AvHOlOaVl#2w*zg)o z=OocLy`T_s;Ih{Gvlav0$}yK3BZWmvW^=n5erbAJa+51^pB zSO%SMs?<)40gJw{eqZH<$W(FgWAve}UVPZJb08ze#KMTKZEE4b`*#U^0B>OzGTsX8 zAMWF;wfG~dT7TrwztY^?l-;U79#J9Y8uEpfa>L>)Pi%tffW}2~LM>H5NMHBc)xlG_ z$-;mu!Su$yYNIrB#~~nWiGB1ersu`+hpYF!?W6em5Mn4*#f|wPQJzN#iR%Li_WU?0 zfOG4ot{Th(Esv48O-=HV5SZh9nTp&6A0UCn44SHDe}_L@C|<-bNxBkfDCnQ(AI@Sh z4NG54{8lz9Z=Ed*n?TPO$nrO`_Pv%1)Sd4}2G7UuMweF{KQKk^-+VTg;*2eES!-L9 z=;R&obc-0@a7CbB#>s%~CMPRe?xuD+HwHD7NMIjIcz{u!u7>gIWe4$<(>z1$!m2E+fa#c| zbVQ_tYLPJ|AnReln`aTSTX+>8G=@gG;s~L?qUQqND)TN`e zth2AsTE}!Hc=U*&`F37{)Bj`dJ;RzxxBg*4#e#?qA_@XBjG|PPCLKjlI#Q)89Rfrt zp@xVBR1{D;2v{gW2t9NNh=BA?fDi&wLx4~dNJ8@8oM&{-dCrV8b3VN9^<3Ba!ll{S z+4sKJx>sMn6{EU`_VbC`eD)&3u$_{sT$l?l37LUZ3A2o!rx!fNUTN{TP|D)Y?W0N zq=RoXTbq;YtvJ_hAl7MIhMWSNf4k%#djS919r6}?;2LtMGS)^=d#GRauF(OoTgEaZ ztopFka)H33zB~nDR4Sdk=F$$&&x%aj-jWi9zd0qAVxd_hN@tQ}DEBFu%!?o!E~KUEEJ|QQIxJX)&J* z%>v&v{713wIJ%TBc9-9xNVcNTvemGIm35`}aM5~vGFYpOw!QQ`z5*D)o#oY~tOQrI zK>h62$SeAb>f7skOgKpqs8#)r#jjd)*_S}BtK=K=xh}cZ)FOST0bKpq*F22vspQ zFfr8pc~2R||Ak=!&JDmg33uOR`BH2i;YTTg-zDEj7|^LiJ>g{fH<9aAc>ri;kA_EC zgdYYV|4E1c$`mE+Kobb*VrSmpoUjlgBYJuh8@f*q{jC`5FFx3rA1L)(w0mO(U_k!G zTmFYq?ze%SDmM1iyzgi-|Nb_=_er-h;DlkCFIQ>)z31&2DcAwZ=To%$p%D1@F#lU9 z(Bf1UdH=_S!~YUX_@5ssxeL%jM$xbG#}&E%wr{FbAg=7eKe-_McWKc8(8Aqs+53le z$N%=cT_Gd^fcVNy!^VHs2>ZY8?GD{B9GA!O^8f3?Hxc!3hw@j7F79;YLSGcazvt8b z=$rq_Q*YUJK=UW+`+WW`@&9`e|7eH*dl3JX$9|Il|2>F*c&z{bIEZtjq13!@3Nb`R zaJgx-#XU1$Uh_AK{b5Bq&}Xx8;Nzwh)b9O_KO*-Z-Td(kP#`LHSn}8VfF7A4zt7!+ zas?m$lDKq!Shx0}S>`S%*(CbGbKHOwH|6SITJdk|2{{M|c20fKzunm>4U`R<_Bqe7 z{vjd%U?swU&NEdleEQoO{@O1L{IY{O{o$R&-`-@P>&J?z@#nuO*Y_Jm16p1BWoYg1 z*$O{WLvJ4fH|{+a{yU2Mhd-sS1JL6CGa|OA?MwcK1po+e)&COo5Bc!_20{Nz#6Pk_ z{vk2`OT<4EKL3|QtLp5*w!fvVO5{Q+fXG60nm_q2qR}U<_4vK2%*vj5Xeia$_4KkJP9~jK91+Cew`lqBeDOhzH^2#haZ>F z1)zL10L&TDq@Aoa4GrgC@2#hj7gJbBgp^7MzPFP1o;UO2 zj^E15UaR%j-AH%iJ1xB#F01_~UFKg5XJ|bY1}12dZYl+OYhjD=;#TrmAN3K)H>!J3 zToTr=kK1z&%y!r$0Qk^pVRc#B$%$X3Kf=#h)) zGZ&QL%S!iKOO6RlIqxoV?b}V+(5NY@`=9qF_9H;^sWlWbJ~qwGU+6-ELQ0rn~@&r2g#vhN+Ans5Mh_>=uAI6(%;o=-Ul8-oG)Z z!uk3RhSm(z*Zn_%FWKInANXJ)lG^dk;_B(9b4@w>Va+E1gsxtt zmz+%pu(@WPhVIq81CZ+T5PmXY9vUGh;3tZmFNR)>1EwGU&-9KIrN16<2r)T!yU5!m z37Gy69D1~YC3_wFd=TL?_mReH$0gQusmVxC^{qc(Ds^}jbNvg2{!qZ}D1h!(=IE@> zn*g$u7BrBoy_>q>GF^-qZiq~}Ag?4tSy`Z%@I6jNIS21x(V54|9djT1KGRLp=Sc79nm02RHND zphgcK_Th6r3k9p@71J2-CHu+#cWPm0(~1if6qRS5dG~-(3E<#fDv*fs0^nmIFE4Bw zldV&h0w?HFcPWp9uqXEgDW=ronpg2_d0Up;O832$x6$Dqn!5woKO$jTU81+EPxG$6 zY*=krD()D=C-c+QqxFv3T?Tbl2WjuyK{^B^(3IU!h-%_m5v9Btjg z*gdcX0U64-)!!m^Vmup1`(eNO0;;hG6xWvp@id8CKj8`w^isuIX+H{vstiw7RJs2Z zgBRg~DJd~Ng(FEdi(uKzyJ}&B<|e)~FJ;HHQPmVvJO#J?ZYd`y_ye1)woveL`8vM1 zOB1NY%qiC~Jl>gxI&DRVnWm%0JS`B|+Kmo|M%byKI|u+net7mxaw-Ka+35BG2ZL=R zUBWwLLF*)$A4jcJrCHm*Fn{V{Sts;Od8qpk1tCg`R*Y`qDwLmlt6TFCuCUfQY%$0g z9$Gu880I+Z=eBO=(lnZwAw1T&HM!mCL=^6@_G{nkLhistQ#LGDaF{9|e4KLNXMemb zJ56S>blAfs>!q)#yTu~M#hn2cg`BiJQco|+bqB_&=~j=>x2@yhOi=LksGQT{%E~s( zGO2#pIGi?Nj)f51%d#Y()1dP}ZbZzwWOY(yd0Y*@F4>t=Wr5fN+BvmwRbN}zzkG-U z1|!_}=a%=riP+Fd^k2z%g&*w-R<5B_h61WOl1)*JM)h0Iss$QslQoGzZ+ULX(4`;y za678r>=j}Mqzo7&pAO)VNy8cYmhRm-zX?Sb`(_m%rr6JSzf)_p!>*0iWK0*@fXW1* z`?C1cwmv-1@^>OBxBzE_Dz@NCaqOLHBzMwm|oQB^{=66O7u1z%Bc7&5HYGB{psO(({f{tOqoRuF4S47R?i>quBtN^O6QH_iGGpAOaab~P8LUrIq*hk~$CwQ9W(9uEs}l|x%xMvJ6S z)xeOR5wj!IYI*!X?kDn#SU05Yz^6v(>!`2XCRsXZ3QEMac7I78Xu@Si zGVz7hWR}j&`&cpT^NV6l2~|9gSYUNn zN2Q7|yS4C0kYCdxa;WmQaRAJDsv!fvbAo&p^s6$Lbo54Jf}sqs!Q+qN$79RMBlA$R zfklpa=*4{`WO@l&E0iQoUP5cKs>_T8f zHqy<<(N;Ulaf@vG!gTgF=}h<7P7(w2w95M1K^56AYF&L9x}s%+@R^Ey%nf4mQb3v ztvvP3TJMKQCF>E=EUH`{I-e`q2h12 z8@ZvX-B7))MbB)jZW}3Em1-!Te7DwRLw!;izV>|bmJcnX%vv)(4PrLmThRpZA4~(| zXjpF?D|rAz%n8iz6n>Ao1@`yiI%a47;=Wg;oeJ~f&fsvRh)U3}De;jM)yJves_jm5 zbPX7QG@pDan}f_vFax?cDGh8eamO_>xpo%o0!NhQ0-smR&)WbcYSrfLnLy`+DA00} z=Jslw{9e?^dMsdLKDHK$Ka&k0QSXROVH@N70WGi3;Ggr;3I;2I9sUJMS0JEhp49GJ=Z@M}U1knzTc=DF;*(%BVVwkJ zfo)Pfp_j57tp(sG+q8X>Nf&})*nX@{dF%lxM>x&cob;_ z&u%|X@yvueK_El|EEREL3&kXxJ#a0Rz{t%VE79cJwEt+;@hUTCb1Rd(y!4U5{0O?8 z-ZOb}opdKZ+=Q?+njY<@i4!%i2%4v*O_yDlobHj}i&mhHO>9u>_Ka@7BNj()MtVCB zS;u9F$4g|v&fw@P2()b3?xi=CUT-iPg^JAAHBS5bet!Q;W8u#ab}{ci4gA@ATb2J< z?d;e-=7{lmIHk?~(bcr&0bP`K+RFaQvsq)0H}GFr5n>)xTIdN&H_A3(>a)Gr zyHOy1DQHO0AWPSME4X*c4dFRMggssl93QL7uy5I|Cr(vxKC^P2)sZSR?ObkxFkfvq zjMU1~4bwC?H!npO-Z#`=t_s+2lhC@c=ZNYqrXT%zTd;ot8-Gi>>e|ZJ3gvX`MZJ=G zuvJgGS@iCQxM(N-O>mcx&m3og7@KbuY4dudM)63;!pBuwWd8UTGTM-MM*Z!JSQ&ytBi=W@IXOd^#QX(FWxBkE=5ClyeSCJk#|`E zTHen6)-1KbAKJ|>-Y99^dJvr#ujwE%yv0p}=I@sKU zWmL{*_OdL&)@;x7B-JJ2)9X4fCa-^c#e;8Ek*?=GgUal7lW56>uhN>f=~N9SD6*9_ zVa3jxFr&UyBQbg2PBw1UN|6YSfk0PK$g@x384Q_C#13b0w&N`bBUz9Gq{H z<|+~g9x0J~3)a2SsraGn1+P+XXzd59=BAe+3^lW^6cDA)9E8q`1}dk%EWOp7%VW>~ z2kn3SCxp4VL~$f}d69pz<}UAYq%R2Dkz58vL-Kzr*Y$k|M!)kIsO&`y+=m#6gn}6N z5V(t6_9E-N9>Z_6se!{dNMTWn!|tm%`9klO-rh10KNz`YDpt^t+$-b%&I1v##0~|8 z#T-2E>C*+To<5v*Y4I^9n;#cn6fBJ}8h@>u2jN@!D5plogePfY*i-Ak` z+gjNUwmo5=y5y?ze>w9c*yogzV{Xta>$9x%^e;NHhwj0jwScgdK2yoJ1T*~CUI=A< zu)?Ro9B7f|WtMOgvBhzqKgxb+Im>>&tB+aO6ZB>KE2~6QxOk)^+U<834Y23&iV zcciQh!WfU>k=et7f+vrYzcy-34bR%d=-mk7>)sxJWbx$;*G9CmQz~EKL;pJF7dt2F z$Gf`snkxJ%=(_W^7w3DgN&;t_$uTyV-lc&WQxD7YYo;A#SC*!;+Z-m6oa-x(F(QA9v% zPN7jU7wj$Q(9|l=Ja1RekD}&PLj-iuQvFx~?DXZ$r8KU^0{D6gW{rChf{#?adt|>3 z@mT1GuP1&xiC6bL6bS}}5ry<#g>%2*?hwsXtAa?@nL)?k6*yPOwY(@S(B(06;$Rw zpBB7s-Ot(N#X%W_-ozHvFFuD_ZFbpK;NvjNnH8_(yk=UXFvQmy(Xgnjv;a%Zm~#`3 z(|E!{#hSzCFBjkE`}dfaI-eD@kcw5V(Q6IwC}jJQ0NFWvU-pHhr~g#si&kC(eF;pz z=9z6tyb=jfa$B}AmGUPY6t;@ zjVy%^GVI;Z?*49vf@z*es9?? z0Zg2l4&%qVQOyCKb;0Gi*GcjEFKxyDBE3<^(ZMaMQaF1+V0$(2(+HBl47u`X(I!}0 z_>Ot`s{y!an?IMOD1Y#BX@8EHq-A`$HYSSu1TC0U!BsTc`LV}NyOH?IN#%uC05}qr z(F~4L;Qnx!`vO{p4F=l(CiKtP_=(=>3L}l-3Q*a?1z3jN5t?$Y85g_D0&#MxXi_3} z1*W^4$%|b*2fn>;-UKoEvdq2PL|ksk7Cg$fFj}Lgc_#L??b%Umx#O5I34&n{MpzdH z)TIlF^YLBC6J*e<^dO0?<1HF3)=$<(V%ZtFDPRF;4Q#J^PQ)BGkicznwu+Dx0hmG@~-FWY*6W|g?CH&O-`Qh+Q(xuCS;CDemCFW5AL z26E1;vEaBbD2)jg&x$`KpZz({2L1wf@#(nlwbPD&A~5tH>}^dbAji4mU)MsjjPmrw z(Kie#?Oo(DCeN>KyvTQ$Zi-#S;&5%%#%l`!Rmi2Y(^~uJl|Io)I@Ruj7Y6baq~-c~ z^!l0D-tk+K?<5x6M#SidCoe)tVS`S|4h_gHxGkBrJ3tqSmy7W6x&med_?SByqt;wc zGL$dAP}SYLx+J^DvocIH>^nyskqi-xylh#rT87$|+HeAU69y5N95nAV5~KB&raOFh zlT|hgcuMkRahLVE`}6rPh}}|u7>Qm)zqJ6rj#LRUWjS1K(y2gp^QRStIkcl~5|+Ki z(2cd?<|Vh!>TLBYBSY_Q;`U@7*P1^aTe-S z`Qi=T;mg@937Tqlg-ejSRZMSDswbY?3w zSD2q<71aN{XMZqPAxG!LueO+K&+&6+Md@z_$nCoxAK*Zdn_x-u9Xx{}kJvo~I+FPO zo||R8OuKNa#Go9+9kT@6%J7hyur|ywVH?iU60gnPl~$klT~p{p;dV9t(O9L9ax$sHd76NVqn~L& z1zk<0P*5_zCRI;wxx|oNsS)$C`NrXR*|T&#x)c>o-KNK|PtC}JUx9=9LF6h( z?1(jPEmFCQXYc~G*e*4i=%n+SJ$O@p#}xZ4Jd`(U(3PEPq10UHF(DinmOO*=DBqgM zoQ9latR51KG7L$7BmTwnn;-xTUBmGbL%ldzTtG8sO9I7xMvcGR^f{M=I0s7M2s8R{ zy}$}ERI7EHeUAyXb~X=_p)JE`zD*%{57$D&un`OUVXwRvM^Fk>n zF4Q{re2qG?A&q7`G#5Sm<$g2&ZCqrukR|{tc8S0j?GI@2coq7l^Rf2RRyl8xlUu#9 zjS(=;*Tef2S$Z!#`I`R*A=0M1zuK?Rb`0`}%C*)dd42Q~a@>Iim6w`7-5|kzHva`o zXC^mcGVKg6H!{905@k6eEezmly0_MnAif>D_>Rf(^qi?T~+g$yc zJFSX(-e|c8cuWoyagYv=L9E3%s;!!iJ~aUnQ6;wPH@-U$ z8CFKk-GFDn6Eqf8dPOD+9Ov0Gt%F=}eb3O5wG7N-6i=Mprwy_~`F!5~Xqch<+27-g zo+YiE=MZ(I!o{ga1&d?D$c#V{#ub?{n$J(AN>~+@jC#+%^jv&~{z5?z+#l4aXK;_* zS0@~=whK56Xt@C|Ewx=Cb9?s(-vBrL^i4ddhHzb;o{9!iIk*?nDg#r2wzt^}x)QTy zx9$TFsIsXeGG~$BFaE zfTd&Ki%hi%xV%ETa^?)9f`&s*d6XCoYrco|luW&DF(`AzIv;N-%1>2L3On=SL#iP+ z^ZqGqfOR@YZy)@29?o?$cO=QY+EFLKJZNO|yDPIB**we<|dzX&)8Pak!+zb zZFbqalbJe~99kopiX(`S+!ztlPF)cjdR>Tp_4f8nzYZ6Vg6AzroUvP$^3>FP-k)!(7bk8pv)IrOc_{i3ARR*4c>Maj?*Jed zo*O>0d$bKPohgUe65?zG1=S-8V{3h=@~1{U6;%A7F9iQYnW;`3yLkx}Wmy$qY*y=7 zlY2W_xFthVqvBG_leIgn_*)t7IG3&zzSLALr7S7HYe?KxPkd8RcMG(!x}V@dtOgPdX%Tj?N0rtC%u!O4R=>6u692%s0lzmaFO@K z?PhO@RMA29HA5Aw0XR!hyXGLyUWqJ@yy~x>{%ecAXT-!hEE?SzzF9Q+Nm)6{N5KsB zm-CkvlyMiEWFTK*^iHAklb@;r zWT|LYJ5nseb8nBA25{ouupXgxR`6>57I-orkBQbjv_F{2KC?cSwRK}sz8bP9FR{KT zBL%C!nkWkkkpd6)>$DEQLx;i+)m~q!oTWe52wGpsdJlV*WYSG1Mn~>zrw4dDZ_MY{ z^6?grljSlGZpq?auwLk?t7K`H1erH(H}T|k<+85*{#$$#s=(C{W)b}?_2&y?#ipfh zTJen{gEwnNq(9P9#+?jBpdfvlE{n!hhwEJeY)pGRh4dAD!;7W9al`}FE1VyV;c=(# z`=JY}V55c2k5l*}pAF<>+yqQmW)nmRA(U-?pLW~gO%!Wqv{0Bz+~Pnw5UJqFul?mE zkLB=I?DWA9 z79ZE4U4<;q7-prKGHzqsjlJF-T1-l^0TGsS7G1nM?;xSNtUwOU{cf6^D`0j??NPAD zb;)pMwZ)w0y`(g9;7qh;sOak$qo3`~SH3n*m)6UMht?qRghe$LjckKNhN!8*vu^(U z17*Psmafa&Qd_}aZ{tU|^cho86JA|gkwKF4;RV|Pq&dDL3B>N&l=UU3>lb+%$MZzH zLmp>7EuaX|F)_cekHI2GeTi17;mNZwV|d8!yx3Q1u%CWPC6mKv@3kH8_*y~HMyI4< zI=!0{o_%*j{@|S7=jh&bA5b`uZIQwB*4MEh2SB^t$MA_n=&E)-N##(I9a*5i>lybfd~GasLiG6960mu{<2-B=-O zJ@b^=!|Mk-FV_k7y|aiTIQt3NLVx-JEaxZ>sW5z@=MQ=OJWda z?owP$VC2FO(xO*qJkWvy8FmS^>J!FE8whIwJY}=j7wXqx!?Y^8MMz6V%!2*vMi=DT zzDo~4ajRb4ukWKEpu1Zk(p*}1C!agUULDP zCw|l0KeiXn-DKugJ^R=)s`CW(`7R&=ax5}a5_|oyY&9wTFBJD0ZXqy3>EQaw1?5&eq6TT>B@L@Ymns zJrK>~<>X5F&sJW|b$T;}JmYrsuRrjg)Y(%_fMiCN-s=C+%KuC7|7hF(FBAOqd7^B~ zzZ|l+1qX8pgVhCm+|5r^Z->lt%sxr!y!KZPlC79(Bk^{4k@8>p@;@={ukxY^h$h$_ zYMuYLD}RM3A-4gOG6H#yp!Qe3{cmT>RunLRn%?Ff{*2?Q|3<#0Q%+8^D|USI$C+A1h$XjeW}H z|CitUOG^Rn_>uwez9n2EwD7!%T9!~o!XZ`!Wc%BDDM*IWOh`+VuZ(sgwar*oi&z*mI@4Z@gfVkx)+o==a zEFVh?z|kS0WRUsLfHZrXt$jPRIjvTQRl!0ftHc9f?!)i1@7Z+Z-QEn|4D&tTZs--z znR0-rBvdc*Lqe!tISS+&^*fJIzq?MK&2}vOv&%~IUrj8ddTLy4*v|iC^x|d{V0@mt z%4~*Jll;(4&8aH$)a%d|UR9(CVvY^URmjbDJ|?F|k8}QzZQi~Gl5pbZoStugH>SS+ z5|un2V-dH@?~U$Z_;tY97Q7I+^w5$BA2UQArAMUx#F*2GpL@3!3W?t~NcHd@ zsr5y04@>QK+k63Qcg2JECiFq~xd4}ceB&f@;u9@w^*A-VD!&qcd&aWvWR>*hqYaN# zFUS(`j=pWH=9_y)JRW-4LL%5vJpl3JVrE+tR1DmP`p- z>FVo?(&w2R73#;|ar(w+zxQOob=yfh?`p9B_TaY{4%#30VD+sYLD?`uh7a<(K2W@z zd%`0{TkW(p^HRue=!VMpk^IH!#sKmXRs@g7cvWZ1tsQSoxQ}ZI zb(GpuN}alCTeGc+rD9_FGVvEMD>#YmhRR3vO#Q=NTvNlrL~NO!40t%n z3DcI(w$%Y#Q`y3&+3>l^sy*=Piv3Ll|K7i%=9o2})jnF_|1L{Z-S)g^gAz=zmnht) zUa*##j@;P&T--YuJN*d}?lR1Ag1+9i+H6ximGGgmb($+Bx#r11Gl`ncQ6zVebG<S;5ceSr#;tYATaA>+Uv9$=E-$Gyq`m?=qe9n} zrav#eeq-61OrQP;UW7oFhR!cyPJPvhbX0A?a0oHZspzJNQ|VYCBxoQ8EUFJ6n9+AT3Di*QVKKpeAfyxr}QY} z+OwaIQl~Z!F?{Cp+S-@k@?BQwrBrSrbPUM$9V*`tA1?IDvb@)s=xGq?u`*_#ia?#- zoIR<26c?rZac0bra?irCW1}rMGP%rwATwNW_roz+atdYN!2RfkS~``8DzYCwcytY@ z+h9AN^5#@2KgXXato_FU7gF@ocb%$#bFbxt3u9sEEMJL}@@}=*7ao$uckHUkXG{os z(pU1_UGN6AmS!5+=4VXcFIxhnPUH&Ma2<(g(PaIiDHSE#|2SC^B)))uSem$@^VpwY zDEsBDLRi3E=Q6#3i1?(a@eg{+5;c1G^G<30Imw(PpM^49AduoYR_cy5XiX%PCEx+v z&jsdC?jwA%cV7ps4BX~94pAt+Kj|oYVzn};QTU`ZM~R< z-M%-3(UL=~kAFo=*ob z!N&DPtePZWAP8jBzW#f85nNNGuOKi+b7rT?NP)${nz!UMztfcw^1XM&7ohxXCDQ;= zx+a3c*S!`$hyDsngLSY%3G~$NMdxg@50x~jMbnd@Pu=Fcf$0a1LzcQtxTSOXS7JIg zxAheA?OR^2wiZWf6kdM(7M*J)q_*V$8H0POz~LBbLRL<9@Nz*@j$~UaH5!q{&!ReL zTAB3KWa!ho8%fAjl&|t@5pg-3MP+IB^S}`eA-~D`-58z5Rj`n5X*4FWb-ME9HCOt< zv6bq5voi@BZ%UNYpX6F1)jJgtrXD7-_u6KVjG}3gsl0vsWrx{E{Xv;T^y3EMDTVa3 z-2qCQuy?-ln&#NF@OoFR%p zP$cC>w;Rj1J-&I2i7k4@f#;&Fw*(t(~v&rDWg?@V4>j}+M@!hU2w zy?TFwi#lba3#(>LVP(-%V&shaQpM`wj;Fr8=y!whU)V3i@&J$m;pAuiu1EK(slv@G zK5w_VrTx^QBAa%DqTCaQB|j(a%-xxD(ri3990B-(8j`X?87THr9oVXtK4JMLW`PBxv@gu6XRCF;^y$ zV_4Z){)e&P1HT-hqew#Chl@nMSwOp(pIF?Xf4aWfJ=rz#=#+QEzhwBT$FL=?gRDV2M;>9(I{G39TIf`U(Qfe};0DsQA~Dfc~Z#ESzDowCHFuWSy021oLmdAP*%V=#VOC9o z>j-vvMN)sb*^+KE3E@y@93QZqSA#!HRYtA$u1znChmGLr)B(wcCE0qK%~YR+dLa7w zSagIEU*ewMG(`NWDUK0ixRA~gp@*)kqAS};xKN(&g$Da}`*D`L$l zBGab%aX;VS?>V#3uxmS?$6lq3#S)q=DwQV4A+&9Owcg@7?9BK}uF!qC3Vzp!lOJkN zN}y{iyq6q^XTjGwWx2VfPmOFe&$}{W%|rm z*^)vBuzxXKwe6b@F9N|RGwyyk!3VvseQbMKGLb~k2Ae}AQ6IKy-=`5BT4P9=RZLL* z@eZ=`D_k%GV-1$K%1=4o!HuzT>?SGz+4SERjsFmwA=QANnj+ijw)dMH{bI@l^O?%M zTJ#DcmGr!X?!H;Z>w$eq4%6@@j)_GFCjiX}O4H3QGDi>-pJsHD{orQR-W7+S3oa7X z2uZ2+b@GBg3Ea@6;|WRYtES6ea2)kr?FYTtjbt zf`cn=QFEx&@B?ny?$ggFL>`FCz9Uuf1&v}tEkaEE26j;w$x8E2{IwEPZ704h+7jqSbi7kf}Ow919EO^S6P(yW;6hW)C}k^ zZl^DdR(f925qZzJbG5)jMe6D893xT=kfUbQl(ldK9Ul9<=ftv2;F5fJBl0-D8Idgw1DC+VVF0d$J-!O@t|B)&G}#8sPYF zea$0Y-)2?jm#CpfXv?Ir*X!`Fc5hobjy+mh`?Ap!SYFzt^AWAIJT>F6K`9zeRlYd| zuGAAm@rh`)&t_L0r_GL;_#UR5T9+V(VuLGI-qUhW@}7MUMC_M&*+ZOYs+&Kfw#-^zWPilF$q9^3t%X)?FQB^^aB+eY|KWRtdqfM_y!@pAj2+)KPo1t= zCAF|X_SY47t&ZIg3K{TorujIIp^55wcqf!{`&%Ly*0(_*hbD)O3X!q*!=>ExyHt|z z{+Por0~SC8hbRyM`IW^FCO=^9sHn5ejnHejZa!?J_DDsqYriBQ?M3fwh<}8XXL}~b z7=7vlir$J9H|JpPA9Jb?v|9(%5BKIcc$qom&|PD-*d$(_lGZKhCEaq|9+6U{zRP}? zt2+dvxH?|HKl3FBHGyd3qU?(W^OCyO0@@>i>CZ93)PWm2HtFN;Ocf#7(O z0wy_=6DpnS`_x}=Gb@ny=R>Ew>`i+#yYgN#Jf2tI6^;iv`>dBgt0=us@X6=CY*l&{ z?vu~KR#lbxjyPTiPv)ZKpjW5(gG-|~DmMaI$Q@nx89uz>1W~x1i`^$`zT(>LA&(DD zy309CVen;s$h&P0>2*ZYY=Vtaw~cdmUBMV=gZ}QyfF9}uCu!nU`(Ps1+G;DRwt{8A zDt|VN57xvtvRHOFO8x9Hi`>nSE}0rsRkv@rqs~;2;YAA--;w}E{Djmt}BD^}b&-N;< z6lPf;*&aBIxCR})6;^fKPnua8ZW+UE7Q_d?b<|oWO4IH{boMdN* z4YERQ{5<&a_QGLAse$SZz8v&ZYg5XDI_YhRB0>-BY@$EFjmQIU`2GEydiI@i>_`-9 zNDFQWRt|Ej)%#^$jejiU!tX^hzJGS?r;y!ef)2JY-9Pc0RrZdVJ`OVBEZ^1&V-0li z%L8IGi6-`dra-wfDz_V&`2*8=2XEW;ibLp<0%xl$M4-~~AS1CuOQXzlnLWtnwEpR}UyA}7~ylu_4G^A{4Yf_G8& z7t3Cg%i<2!NIWRj{F$fV1a5Hou>M zVA-*0^8-1W`Fzb9fK9Y$>owzGls@<>!VwctJ(8*2vELtabS;u)29~%|#k=VEaB;4@=297nS&(?99<5>{HZB$k0Tu3IAYsgv-lDjV^2tt~(RCW=a| z9snYGbn^lFtWEG*o<&Wn?vj6X=W{IuqDt1jTvPu2-ILv<#n0!N)@(1XM#}}W{X|v6 znQzcKuk3C#R_Jn7Fnk#qn6`d_-Rc+DH5&{1gx_Mmvg+iLDIJ|LQ-2tGS=~a#i{EXm zFJ(OU+ph;;`2zLsu)JLm=vdU^D%kz<}9<)0^54JfbK&n4q1Ge7?-l8P0 zKwP$~c|6yAAPSXw02_|;U*!OS3Ypc3o&^x-Q**VI(fMSgaxMspN zkXP1KABW*$`H>yPwCAe`5DDF+6hXdeqqnN8&X;u=QVWauaXI^>fzW#bZ*pjf^ovZ+ zGeV5bVy>88HtntZN!SRM)NQ8gh)X$(1)aRtMeb6PSq60RJ`WYis|>e{j+#L7b6u|x z*F|dV0T5bc?q{Bu-us9mM6AvS_wabWj|M?`2XyzAk=zd#Vz34GqeU-Jb0?O@Azu$P z2h@u)6cKy!5Nq!i-LIQ66nSgEeqD1vciFEp0`yeGfG{$x&r>>Zq&l>!g!^M?V@c7R zZ#3*RzqSt%h!q~$HKXpTrQduM+pHwnG}o_v^*NNRbDeQFQ?s~Kmlrd#@5*~@ zoXP%t`>W0LOo8q;aYc+#dGMfh7N}z*hcl8RdoRyy7z(Eb4Ghwi! z*MqG}-4gE=U(LizsFmA$qM@kU?@~5sR(>8fC*>FLQ4S3{n}H-nz~Ot*z2d-? zYR9jB5FP3AGuq1k+31B$zCbPz??Rmcl*M-J^C-u zW?xuz*32srR~sLlJ=k^Gl%hIVxxurL@Bf&9M)hb0ok~NA0WlCIYp7aS@$JDqg(h z#ojaSM=eEYk6WM=kgp6fG#yHXX9T`0_}|NdeZCEpM7_9T#``Uo5%rXr8^S9OU;_Ax z6+Zw5v(v}RU;&N|&3yg|Y{8%?7a;akI#2$IV`%Wf>r#&!{1ak%_4csji)(re=P%2y zhSJ85a3f3Ai!A;dFk+hoRZW}w;UG#+ncqPq*Y$}G7v!MXt%L*IQ4lfs_S0iitfp7Y zB5yrP8gU)SU6MJvYW~4oa|q}jKGWv*MbhA$qWyKphukhtT-b8-5|eIi1f~s#**MZX zsz8@jjwV@$1-x|mXo2az+cl)>dv6-d2B9>h$g7m=^U4Mu`&jfj(eCC@eD4*jSvTt@Oz9Br3cuq@&qNniDHjKVJ33ZswmNT+LJqUV zjCtgY%}V8-#0MJzi3c8&0qWrMSh!a)+`q`pn!1laMtO7%h%B@KIjp^1tuuawZX}Lj zm*C-gWbe_dm6QSv6CM7u0e+iaBtD}yqj}WV*Q`b6kGIs{+EopDt{=5(mq^ksMwRwt z7=}GfyWVD+TjU6YeV#j;erO7DrHHgk{9=@UT=_I#^+Sg?$w5S4F{QSsRncfN$z;72 zPZ60ykd+JBU*X9`8Y#1auV6=_NyFcL;oAEkWeI%oFi1{18JWy3Wu-TBu z9XFuDD7n29$8yr@v?)3nt7?~_$(iBb*HpTSpW=s=))UXG=oD9Fau#mapGCaIo8K^W zUwynkWC{yF-)V4|ZN0s$WNlzSa+0AHmw$Zbf zpa`=`)pLQ%FVT+|2_!*-0-4dPu`k0w<~@=I7HI)*ZA%Crnjy2h8x}r>7Mb&nw(sfs zf9$<^Jk)LbH(n&AL`gzuRhFo1*-1rYNtSG*l07Et#F&{RR78dBg9_Q#vCj-CvhTYw z*_UC)KFl!leBAe)tMB*e+U|dTuixvr{u?u6=A7d^&trKX@8dZ7H8eFjg^Y_bMb~WK z_{`U7^eBEe%qWI0uJQ+1I z$!!X`2mNrt-kjd?GvZ<;)DNH>Z$u+e@zM+{Nj^7swEC}Q^)vEkp1j%N5oB>1={z5n(5!4D%%|!6j!cU>QHW9(AgZ9k=G(Eg|eX~ z5@VG*4>qK*>Db>f!;4$h>asvtgZX7Hc4*J|F)H6|TDys{u8erAkJ3!pjOIRn=W}kUp0@=Zn9W6G+K&d44)c8KzTi<3DEdycX>ETGG@m|PkSnsR-5E##as^+M z?z|2oX_pDZ*mddN3GE$5bogSQ@q>l-@x{QsPYIKtlQ7+RJ~_YNg3SN>kxJ5`bD&Ql z0e-4K;2-wq=f1PubL_ov`PosIs&h8G0tp)fjm-{n0{tM#Zy$#XZ&{u7PMSD%fN(hf zafcx5T%iDh))f%?RNk(4;T1$FA2HB=N%)9kL_Jw~{mON?Vz-f&XMum|z`~7Lc7q%~S8|xk^#b$$@}iavd-0 zvUL^wP*s9~vpL<0j?F$Mn3KyDr8J(|rQ+QyY>U?s@$0EFv%A|niW`)J-u2$f+9S}= zTAXcAO$$20tn?t)s#eDgXE-VI@Q$vfD{lGnB}aTPeJB=J(&kH!lyRXy$#|Ff0mq@R zrU-;C-*M!c71g-MQmAgri>=-7O*qzpO1%m1+ov$c&R0$9kwi%Fwdi7^T{=5--&dF8 z${U+(=Su?5ZUmOxQ>)35Dxp>&knro}fjk=>1riky5{OFRtb)ly9@?Ir_EX);D3r8Z zQ;al)4f>b)MRvHL#VY^^%(L6XHcm8)&Hi9EZ%00RD|5Y$jIX^DW#6gc7$ud7ey9N7 zW8G4F%D(-?@_^mBr%;^tFcOkZgRP!Dq{~3kk~9C)?qa+TiGvEW9;UVMWbMet$1b;M zyX|vWqklx=20uN-l{N9&Y@dx^LgmNd0A+U6wjt&Roxt}Q$2@bM)W@vh{5z<@0E~yS zrr?vAL<*E25zKX{hb0Elf;`Kk*M4Cx7*Bu8EU=jq48U3& zlmP+#?1$Xt*>m!q-+HWS8q^bDXTTMk_f#I=%1CtXE9+V%^vhZa%syW~dnP%ZuX7!* zO{+6PxpSH{M2d)*vYHLpaTxXNz?H3}d7Aqbiepxba7bbUmij(pq`&&u2WiEWzyL)N zY;58?eyjAo`{9(Y=hi((9>^=NB^Y7!hGI$ZhZzA50=OLY1fL@R1SXvwL|Z{G;46VJ!PglZHXvN>Nx>X7By9UJU;U;2F~qapPZ}<^vTXb(fbD9H^V7`I|L^V`(f8mVhqYS;I ziuh$9!m0>l5axb2ZHg-Tj9ILa{4P|C6n(*!bs)# zn_ZIZ84GUG76ZN@t zjGYLlvcg8+Ym1(lVW94~lgA3-WCloZ#40)}^scCwQ&(^?e4 zsxke=81I9p*^iqWm%0H7!g@5D;)$Slq6ItUSlgzHHaX*^D&b?p@r>QEUC)h}(Ian{ z#v|xxTeWHLOj?TXtfpWbr@5?wU#^s+L2*awrd)@?9FjX%nTOU<>GZKX`8Kp%yO_RZ zlO=)+Z=SpfF+}4W;d5aDuf;LnmER{pS*PqDo8~aHj@e%`nB=KIc!MMle@cSSEj4O^ zzb)ld2wC4`Z)Mtak6s*asPms(VFf7&j#6?zv-*+p2Ij#9CSljxi#!@$JKc<14)dWI z+I^i_o*Q7iGHQCJSKw$@Zf?f$WBKiy9L^XT%Tnw0zTARMHpMBm<4jrOU!~HMbd9G? zTatG_twyOGa271admn$!pB;)YZ8)Mm=S_mH-Jm~^&m<#*M%f+X_u43hoH>wx+O! zn8Qqz!7i-xLtX$%xg2XRR-gGe> zM8B{}M6Y8;`1LxNB?}cFO=i8v>bz%b!!03X>YN~o4|2k`T&!j`S}I-^#=xHG%OPOuM%-PK^FMsW*Pj?n?YjlM_honT z&B1|)?l@TnA!SBip4|^HD0%~QP&vC}2Vz)000pp$n7U_bD3-L{Z#J~m(%EqGS0!_2 zVs;bw5mRE*_k`QaXr^Dy7#~?Tgue;%_6$oR4^1?=HSpOmjPjUwZMw|i5#&-;pkYt(z5sG8z!dqzGj z>abhEtS5ijq;y+uDSv@9PJpjl1+HSZR(XGDFt(yD;gNr>cwxD#GP+x%LBPHD# z=VvPA*vr&usn$g-Yn?ALx_%%#A6k=kwjO}{3wu6@ecIgIIr|}G>SU)91QdTviX5*&?Dmf6AUZ`C+I8iLfL>uVRy$pD^=yY`^X+q zhJ80Uw8vpi-rD6eC7xGKP-+zu!#dPldrXZQNJHqe4Qk#gw05c$02c@AIy5Sr^rke&Gh&x zg!A$cl*A{~Fg(#?xa{@~zq~Zl?Q47kK={|sHoUQrAE+#$Ds=29p$30~=W@~g*AuyV{imTWz8tlN{b z4CiPhA9rgU8f>g+PIXMI02tOgs}?i6ITR2;I~mt5R{B{U(e~pjUonpi9$C^$;8_-E zoA|woK?X8O!d#D6$$R;S9MZo#_m? zTL?#j2u7qdG0{x&6*}Vuns6Pdf>Nkh@uK8tQMk^23Ro0Q?i}Y5lxC3 z8OqEuS)Y~1h=FqtV2?Byr(O)5LVX@$l3Nb3mj2(GA-on?c)*lv z|E2QOnaN;yje+isx^6T`ZHyvvit^nTuDs_!)&T1w+mHSI1$1_JkMGr{g2Q_%e1_^i z`V1+>{#GCHjd>^QL5Huqr;p^p?L@s^x3nf9Z-Efj;q??@4nG)0M)%d`hCw0 zcveHMeIIZ-4)mt$sMU@V?SRMIm)muL$^1P}<~RI<#*%yRs3rHlr|gs>dEQin>k{o% zt=P1m4Rb^qUsw8y#OZ>{VlxvPEap39%~I+yQiBAgV=n&Isqj~FFk;kg3qTfXKK2yx5A0*@L)(T{tP^YV?+)K@OaIUxGTSfIkp6AB`)gs` zKA(k^JL}L@^JuBFrz%WK^{>fRG$hGdp3pj}_iWelFc(CiQS{SX&go+z>OI4s@!W() zT+X>?1K01x1t2DDQK4SXYniYDuthJkgXRM7Or7DcR1o*7QEn9E#BL6nVM{3$^R|mB zoXY%RAn}i(vg5BcfbfH3`eCm4_776pQ_|}BXorG)`N)=bYoq`-Mhg?W5!Q1}Ei4lB zI7FsdWoXaMH5&5`TyC3l=6!z_*U9g`?+w*}I)K-TJGnNRL8N)~eGf}k?CNJlPWrb= za-tl{dP)(XnzU3rBrO5GB*L$0z4O|)vUj>zBrY&73Hkjg79hY-DG}1l7#hn~z6uXwwQCr|Zv z0i~1*{nsjJU1yt@fMzep#hFH6IGfeG+NyiJ9W@^JEk>+{194$)B`#rK8A24lk3wfK zEq6wXTIOkXr#inDHWVJ9!hmz1H+U17rPY!Jw{*c9-bdZr4B;S<9atb?@yk_OL56{mp|H<$9|M-V%2=fHi z-TIlns`7r{);Vp1yxIJV<+F?0K!MNt^_GAi$isHf^}8O%PcHy2AV7Xba-jb>bNxH7 z`ucDH)Ijj^!=r!eOMkri8xkm3oRw|c_v49QLMuP5_J6$Zn+$Mh|M}s+vo-%iR6oo0 zpB?|Z68o1ZfupWbUwppc-p|O#Id=xYnuxg9e%bja2Kt8{dvP3~fLy)2Z9y}v7hoiBhp=Cr=7W7 zKlHP9`L)`4`F;l{HfY3TGU~rEQi&>i^%lxi;>A3V{O99Y(pCJ*q*!LM3-JHiM0(2* ztWy0}HuM<6Ztq^SO!A&R8q8Gz`b@Jg`9qoHXYztx;v7{)nP=@d&iq4hT|J&o!{b?aT`O_y%I~!@^kXBxHw=Sz&0iL_qE3JVL0#Pd5l@y~|;bHjhU@vCySB;+|!aw(g+0R||)gFK} zz(ou)vp`u6o)M%g3Va9VP9+*v5_+=ijp;*0B8rI#o@1XRb18NJ77O)#TZ(6b{)LbJ zpKn<-u6%}R2p2o^N;g|=N*+<_h9aj&2=|gTND;eNR)*SuToV~^``p0a_(6*^wk;4@9`Hy@m#iHBrhvYw z`>uUqJQVr*fj|;GK1N?!PFNtcCVNR=g%mL);pEM>0%`}AKDo7Y=h}CF^S-?fWl#?} z7QqKy?Nk3`oWT=;S!$ERdS*pnSBC66plRfA;5f@};aUF449RXq+-83fR`^W@>t|obcwQYj^mdl9Gt)?RjL~VZ;8uu$ zE>cl?ZI_@4EsD(Csyn9{{5uF$?}y4Px#t1iA=G1lSe#)lj9 zFd?nf`qj0$)iN{a;7J)sc^wiWi2 zq$=1P4%ste?zPZgbwc0@>E4L%11i!eNB_qAdiHy)+;3Q4qIY1WzS7R@*fv*BR6zT_ zeEnKSS>d(rm}qjHn!hKz{?WTVSC!GeH&+!T@N)Cdg>g_MmvnWiT=VPV)~WeOQ1IM{ zQkY**d7*q13?|d~=x;i79NtVTNzV?QlR-lZ&`Q#BMsWDXS)tqMH&aI4%J0vGpqj;u z9-2)z#zq$-VCwJJw0Cq=mmLAIGO@#ZD+Umi}Z4 zon>(fQ9a|^?5nivvjq?rl;BmHw>!C=yU!qD)BM(#Emb*U7V5x(pkEU<&K?`!TU-p` zlOL~3O^7(773o#9IX-zyKf^{ll{A@$t>@6)Oei=u(`aZ6I?)33Ur_}Y0ZB$~8Vxbt zkb~Jn71?W)iuhh!G+c-3Zm57It)^W&DyYxP6- zYhH4j?8bVa?O_8ebv>=c{HdWH!Lk{X8lS7KroJqe#poa`C5KFox%ZuFFTHU#?Qkp& zKk%X9Y6BzJka&VF^@^M{@thNHp-at?6>fAS&qg;?Yrgyw{(N)JIlwrIy@dF?ZQrQR z2H(F|`7KV3>INBA9OwilR4{l1cFL?q;>Q-wCLC0J2iDSBAu6x8COsMTDQwz)J(ne7{|U-+eUAz|6+?uJDxlX}R>^ zEzR{j*_MFRnTKw?-|MQLGqBZzXeU|9W#M$HWpM+^=)-*vFK}h~PPPIW`<&CMrw0gf zaqX&N(~tA;B_b`eXDJ-c+N9*6j>7~jiJ&OPbz6E+%y;Qpq8^jxk(oBx?ao0@RIcvb z58XW9SL$YqG4G&l-dJos6L^)Qj4wchX7*!*zhk85`cCtb9~Sm>eY&G&iu8%W zmsr(?)Dgen@@;B)WaB)0!7xw0vZgW%LM97-Zy#$!c;T{RkFPgtsr>@;=$xC*O`ZMT zGTs|a(Bf}Juz_ni@;R}ksT2H@E3`fVhBu-BsHuS|H{Z7YdQTV-n`jNC&DkIy*^z{$ zi3UbSX8&WtIfexRaYK1(t&>~5ZvD4)OAegq_um z5XWrv7vKt7Sl7c)Z?(RGk}8A%)=)lm&ifxw$gl6)@wYKCHWF9WBkDNSLyd6p-^nCIXygF&!2CXkP)o@w+3TT3 zig8}?>z>`kMn@^iNF|FqC2*kh8f-X^LHF!vp;*;Qq(8vUZw9SiZrR~D+`BNU6UmJj zM8y}hOIg*}M?#0Bz973=*VPgfX9t{&kM*RFHWZ6R-jmrMaVc5iVW`>U(&Ch{b$z=K zd;lgnjWD{ltPS6kox4Ep92|`Um>lfqLI6)9Xw+iz2YENKckh-Z631>5ONrT&o?F9& zpp?cd4i4!)5{u9RJKdHk_cBRG&-Bz5QJ-b3u60wths~`RX?sx!&I^j%g}t4nS6U8K z$uu9(GS0lC>Wo=AKu$Mr!qO%NkaMvzV8KZ<&e8%$%iy(o@biFD?WuvxikW(m2ZJPz z2km3Q^fwz@ZMMQf+1|2nZX|q^9=N!@%fIWXz5Jj8#4D@TkwRhRQC4&HsAO$FX@H)7 zzi&$q^p#%M$qHM*V`NCU`~ER9{k82cdtW(77f!Auq&1|-CXs~4(|dQ4Y&>)$Sj%PV zYr~Y^%q3h5HcOU_v@q^wIFR)LP0Hw;`|-~b||9GE8WOvV^`bi#}S#)A_%87 zGtlNVesMWMS9TPW$3P^ulDh!1ZNJRJvt}bj^({-a^Qpek0)tFXjl$3s~c5uc5jn_{u8;El-y_~8p{X!|8#26AqX zB9)&qqjiXrb9}lX$X}vmN;HQR26**Zr#ezvz6DwIQ=_Pp3emD|MYae=fsz(dMy>*5 zrvG6=##cez=!xlW%}K*_gN5a2|5)dWA&!l1IEvVY&fxxh_}AF?&-+z*=(49M+QBpJ z?HRYZwqgqb`L!(h7>rNA*)>J0Yc&WcCJ|=Yk|#On)St^sKd()YL~(hf-y;st+{yvV zV`f-|ZIE2U6?m|DrQ^f&%M4asnxZ}(wYR`V7@SX7z{fcnrQ4IEm%cg6+0c$sqw;0`TkJ|&eA zwiQ9lA-a}{ z{?~#c*E}Eu?`+G2={*lFLsyR##0dQb%cry_uIJ<^c2vh)q0Vg=*_CX>O^;s#eC*Ui zC9AQm#eF59F7I}uJtg;jn9$l!~>*46(4w*7zHptM^rgc$uY~^j(RTAfSNmK0EU9ul z(qbk}2Ys*ldLN)~CGGU^q;r_0c?1ZS94aSx(P9)2}qsAFKS)NIiA)e#)1iROuKJ^SnLt55$<8g#5@jcLVZPG=6`gnz7 zUYGQ&Nb$pOxuDNi6V=Jta9cU2nwzD0RUSw~G&R{)Lqn9TP^ zzwK5ZYm4XRx>HNBA71WJ&C6)dd9&1%75jmK#{Q1;M&|}`gTD3ECBWfAR@*|FNNYe_cz0v{JxX9wdLixR1vFWJ{UNF@y(u>jnF zG-FhD!C;CiZ)xd(c5{C8jT`c!w~{|((re81b+Tt>N zBkH4RMAZi^b$QNafQ)PVYtBMN0qmep-(vjJc}K(G4# zEBL}ykI|7{?FHtYTp|35!fJu&Vc905^SWXDxNWY$eEBV!!=H*{Bb}Vhe|EJ9&pLl|?5OL$Upl7V`s&pvfgGUc6N< zFllrb3sHWTtE=Z0#QC4azD{MBjDx+i8wW#Tm(;JXPk;P)I$E~FY=QcDAGIuSU`f1U zEkBi%#7v6Zy+VLeUQ#}9DZdyLK_OLk-j}*@g^1j#v~RotN)N;al!OW>6D8`)OTd;D zscO|DOt``k$UW3&1Zza%^%|;XcmW0NiCR&Xv>jXLJzDV z$~{W+$H>&JI`!iXo?-eTjdS8GQ@z`MD5B@6*2sEYphbl1rY(ZFx1T!*6fDwQk%< z*gT+!z%g(yR%@-wiVqd`f-HrK-Wmu+(&oDRQ#spk=f#9{h6L!oqa1tQ?JUOKKT>@^#sozI+T{kg(+ty7=xmnc>kA7e^w9Mzv*OY~tyer7s+Sv~^+MHM>rcJICHc)>K*s0J8X?^cP!x1z8e%2P|VW3|faK}Hx* znO9oH>JnjbLLA(8Vw%&;_+>z9(3SF%(QD22`+1jQd@haOHn|_4gCzGzVBZ8PLGQo; zJV1#gXE<}&Do37dY745KC51qBQ_d%d0gO{4B7IG@F5_;w5w#ndPBtRBfQnTj(2Ogk zp}cmmM9iS`=n&Ftm#eUzTq*a3lJX z)Tv$Bj6P~3LPA1|pYMWEB%n>M{{5#L0#}riY0T5T;rWJ_1P6e4%)AR>Ir9e!%I3Ao6hg)`rVgLYrRJ7cdQbaffT_wF? zI}3lnoPa+{O@X2mbE+1&vh!%M&=>D-1r`IBb+P+A_#0!w{=ybrKRji00Et-?0=(;h z4%mtb{WX9d1{ulpNV~2=Rzta48`57ocSmF5Zmxg;V-YLRw5v${)q2wqS}YdR7-HK! zNtTZ0OMvgX0<`VpdwIm_hne-=!)}Mq&a#Uj0!~D~vD^H2RgsHkE&Pu-nDDw~A2L}eZ+Tlv$9A%{_#rRqNlYRxqhc2I7~#&lDG?to1Em2#BB_R z8?-^wv`J2I)ZNcRm|C$GSWZ9V;f|$GX35Seghm|@);=nl_3~Wj$FQkTBniW~uv*%kZLalR z)0Q78ZkCd{zhX_bw7kV4A3)Cd?&g@JrMSf>m8~PAhSZ$AbytSAfNpo+%Fw6JFakxt zLF#)>`38wqRJs*mLle$yl9=Q6v0Whc* zI(=nUbHd9b-kY?{KZEXsYHkf!+&lm6YV%<4_PEbIj=m|{JX%W=O%KNF4OcxxEsD%n zYvz{BZK)p#8(VGA`{nHn+#x~JQcBg8F-Op3i%c)TEM z)WxM<%kd46;yAIK_}bHH;4)#!VImf+?wuY(fEQ$}Dtav%thX==^mmm}EfHCRZsd5N zDeU>l@a*ylhZYZhg~xhGfsMBt)QA&E;Sml&o&21ZzSfx1+4i7h{p6R#>?`pCz@@dA zHq*T_2{Uu+*;L=wJ-YO~%IX!mVPNCo%=fKk=2W}47{p*)ERLqjC^2#O!@I`iEHa9_`m z*vLjT2QFU-YDN*d>(*gntHEn-&HK}CeJD%S<;unmABk3+WJ|U5n;xxwFeBCDWCc)sG}jW7ku7$NFrM?i2u+ z7mT!6U~8MNC|{Xvvv3x86ttpzN2?*z#BJGS7$n=ZrgU~a@<>C-r~8p07#u| zI?keBY=e65@$~ER!6A|f*X4nce3s`78P)0elDevY539pnwbje4X_0C zsbz~o5|=F({}#n;RLNyKW2b`L*9lBKZ&o5SKB3NauT(tQTyHZ$drPGOI3>~|Qp8w? zXX4(O*)Lx<7m4#^#o8_V6*n+`OgDjaCAK@ur<@@Mih9-;AV0E;&$2GP76#F~0W_f3cAY@v=6av5mmZxzI z9VC!l=clCo2=aNahpp8_B0~bWEz{mtpyOEXg;1wv-#>*%p5;8*{XD}k`>thWk%ddX z7u8ud?kx|7>+n6>Z1NS-iy>Yo@0>j_^R~Ey>FD@CJGu)3J{Se*pr%dlMhwLmZ z2)B8!&l^rOB_{*3QR^czK2E1;pOF?61bfD)Ltli3Mmh~ZG=e6YJ{kzo=gUa*eZV?%02@((GS&E&~y;qpJ8+Y~@cApy3>Q88c>?RBg zFPID!(Ip3Fz;1g!M$nqK-=Ss=dAX z=`&K=lJoK5KHrcs>aD;u%?zXFWwY|8%PIb6RglT^vu@A_K(3tg0d!mV`+x;DGXxs` znN{C1@?*X#>6}-FZ2hquZx3kpzd7ZVtL}L)T_w6bIoZ|URlkb`rfzZ%YT9<>c#D1^ zN!Q4>7Hn)Jm-!b4~5eccB;g!s)eF)wN3R5YDDNTr=Ng`%>j7aH$TA#@43&2B7_gybdrF zCg92L*LzRcKE4pRgW=5?y-WFGff>IwZTUSt`(yb(tFV*0K(IE3yPdt~=VyQQ&R;!u zax2t(hSL-K*D$DGVIF_<+&|y_kIetN1pYZ|e_d9;-PM2Y*ncIpfArc9`};=<{I_HF zuSfr!wSUgqUzfoDpY?g7`wVVqx|PYw;%$e zJIs^Y7?;Y&eWE7lHq4jqRB6%0NI8c_u+evF@$2T>jDgP%sGYRhYV-Jg&)68Or*G}c zeo{5&WYu{qfwb0(O4IrI8Az8uMVSLKe;oJ zszANJb8GF#-F7Zv(oX@vLlItO>Cvm~d01r)I)pu4z@mt+*H-JW3uAuyWVFR2`cATZ z#xl8e0~0O8W^q}e@sHi^!%u+p7=y|L`;XPD+~R1R?*O)20hmbl*s*tD7aG>mw;Y?c zS0Or$c)R)*4^7(2hg|iq@)nhOhKWtX;#Mz6WoKjTMH>f-pEAoS#=S>%EdpW3lScY% z;n+q(^-XQWg28b5AM6F7idpm%AE@#NTWyPI4^X*}2g39_EK<2y15pBGL;J)n9{Ltt zdM6~RQxUv6OXbfzVZd=!$|`E&X64)*QU+Q*q;VK4M8>S)+_L|$Wc{2bgTaQFCdAKe zJG@{~Q2}tiBM#pO&{@r~Dsg*x9mc_m0mR6Ef2*5sCPRu%JPDfXB`&=wtL(in)V{{U z1opM)NXpY{M%kDmtjHg97u=XUI56|}!F zAjx_T1)%Dp6OYrWF3jkaqk_94M&t8OY@MXnbwfwVpf~m4{2H$eI6_>VcFywEvGd+Y|E>@L zWzd~KvBJ?ZycKTA`wHenC!joz^m+-NCPo5uM9$s?mQfXFFu4M$b+4Z*fT^~T{riyZ zovmQ+50>v>O=8`Qnk&jIn3uBJD9^k|rX2M%GZA}iL1 z)Zv@NkgXPPbVXX?R<@8J7^OYLDo=TJW*c^ZeM%rDmZ=jS(OuBIY>6DlC8aq0?hmyz zF?=ZP+I_40W4NB(S_TFNaDjZ4Re=MmObk`3v*7C&vAUEC=0;7y4GzK3cpBe(1lgc~ zR+DxYZEV{$!g1(Kn>Rk_g^&o!q5GS|Il}+)aQ@eyC%1ZT?82LiZ4)OR?TfmQST3$S zLAB^N4%lyDMKTSIHq>Y%uQ~RB3yWat0KGTPFf66Ha8ka|@jTn0M@G0Xr}?+eKGh=< z_Ua+u+BggyPN7Ymj_m*H5D~DrEcMP%!dI80u*u;eC~JVXSa-LgBG8Do2Sy;=_Vdlb zTr?L$e=0VIef^45u~@zc9S9?=H1a^$fE zW%n(8o;FgfFdLa%ZI0O z?il{m3$vrEUmJY=>VUzXnFblAXDo9<D3Hh0^z)zZGASq*?B+V}tCB=o?s4QO*GD6>yl^uWv>`jx`dtuKPDy4i zYnbkK1@C<`>v0y)xPGHlrA9Z#IfvKEu#DJ=c_o<-mtjCP^9`5`7?904Zx>}+THbSC zp6)aBoEr+8PO@#Jb!3lZF*eJNy0?^63ke}x$>Ut)2petPH`XFX4ZSWLP6?9%6=DJv zo0{*cZnWrB->tH!k`E8GV_9s^F55V{J{AN{zU4<*m61F=mbbKY$NwIkM#tphgO(M) zr>UA4ziV!Bw8evVZtidG@uTu;SDbRi7TSX2e570p2OrHvl;TbHK%*33MZw2b3Z@vZ zBy5tK*oz*V`y&nVMCINVmsZp(WZT9ce*0v1Jxl&89*Jg_Tx)?1+I&aOY%Ap9&EWlB ztGC)_BKr$R7IKS+BF{7!)q7`*kYYS|Gb?RJpH}P&;XJ`WF?E+=U0e^ams-mjy}3i7 zwA^2Tl3K7wOUy3oo@_iAvw1jKhq@41m;&&*`MY4Jm6|F0a@6LDVe zhv$J-rw!ck{m>%TNhW;HC#B%K{9_9i#&>%9+9=YyH(wM^5X=tGoocE$XBkSe^(U3C z3cRK!(nw(`H_j4vA}3N8WkPbq8~#Ay0)Qho!?jU)tVDC5>~^^1>%-nE9Ff9#b-o;* z3~L&G8bj38d|LurSnZVu6G+c6D76edrAK6^X84f})R$;B>+62W3kxqiFH45cxo0|; ziz`*_MFy0?az{DHXUC^D80P5T06Oc+ZqrCZOP?$6r;23lZ!jN_Gt6+yhryjcs5)~@ zbdM@XO(|hpi&q`3jV)|Vz1cTp3Zle2;>$0k-z~Q9`n(qw>lY8Zt}Y=043UIP0NF8s zBJjSeNSQhV<-WA+v<@iWOZV#c14ip`=ZWQ{;Dh*({Nk=@d{874DjwQ;Qlu5>b8ho7 z8X7kVvTh-)+jWrrf+(v1YgRz9wseW^`L0$MNo-_}>BG21TBuqGNOEt?m@N{S6Y5*A z+UzhkmOvZeLS+-zA6?J@DNsN;Z1T^{+@R%?`!&rX^lnd1E-`NPVzfG*n`MMA*`fL8ihgXud-nK2=@z1JK%CUU2hSnP6H%}X87`y}QNlo8smrOuIeHY=Qaj{r? z!GP@I0vEo1F~TtpXrH*5Lded~D3XuA_E=DP4!{1L!(@%DKZ(l3suvHgO zfN;mSVH#CM=6N;i=&qKy>#Vx(%)lkrXF9W|gS)t4xvF^jj7b6nf`^9zy>|DQKt}ip zw!u(5l2upq8D%{Y>&QstK5S=<#6;y=UsK*^Kg~dyW1_IXg6~GyZE8Ql#}_}l$x%PK zaFuW`MqE9_6XfQNZ*TnkDtr7-*doyY{h~QMfb)mmQW@J*BEo0O^|)y^U1}Ha z!`4>VesZ3~0HnM-wT=qL#PvDIUkG=9pPsh+t)G)=DP{Z~iQ@lN>hLDUuxoAkfUjR` z86wL&bJ!T4a>5+dd!H$qzl2}}^(ZgOdN3AhbQGZSanB-) z+R-}8OM;!2v81z2cWs*Y7@Zs_B878-;MKCs1^Oad%1a{`?C~iPup#CHDa@anyyG2? z&wDwV;Ztfm61?_t)xEYAU_JVbj1w#d$c|509hh&g3@Hkh!w95nxmaG`?1HD9%RTH_ zN}aj)I*w3P|JCkQ4RvMlS>1G3Hfpr7nU7)aGm*Ns1U~aMy(V3o+_M(GyPdq@98Gc5 zcr>2@?jK!AkdQ+~hGhlr@|+z!UqFij2Wm277gH(}mzmNYD2g8Z^eRCT2fv)uU=lw& zI_1f8Gv0oaXpmR5p1Shnny0ovbL*4Dq62fLS~qW+vUDyB5}h71mYu#+D#-3x!KU@aVHT zph6|^l{Dvs4=v0D-b+3$Epe$(??!LE7w=9al5SA+VraM|w)E+0OWU|1B`Xzaw9=j zu)%6w^CxJ?9v#5@exwt;T}k&6{bX-d^!z>5r@@;}?>TM~?U>a3oCJI}{5dE})ZmWs z4gSfOM$ug}otAKU(+P3&V~>n^JSCDyHrl)m9>$hpfKTzR%gEzF7BYQjxz|405!T`O z2TaxkvwQBqWU!?9XgAvOKDc9Roq;gP-ViILEyC`2!A!(fX|)ySd53ft82W78l#{6$ z$D`M?eplE^Ct7*{pw#yktM|BlyuZGfZ#T`d-k)BQMs1%#62BJ*l<%ff&)2R}GICxY zm^0I=J9K6|=bF~}54RS3Mv^Do6>qclIXu^kMIz{q*{_ST%w)dgQwWBBT^)6bY-u-yZLY=RGpv@cjS7J1JO2Dk{6P^G;_actJqW{bu7Fu&w` zn_(Y~vUqej@3J;+E~RTFrx`BD71)5R%0QMu-X!=YEPs%kW43X{t2XP=1hW9bo}@|M z{4C-3(bq5ySGcd4B&N&8?|_w70z8LO`WLkWHt6V?A|7InnLOH?HXgYQ95&dsWvQH6 z%!7G4^4YnGnj(U@*p5 zV$2LPwlT~Y^Lu)~r_TAFx6XUcU%!9Oe~h!Ur!8GEoi3hc7{;0K zDzpJTvr=2D#!^VDB0k?#PJh+A1l^D_nG&k~Qr7gcc92KzJ{|wz!Gzb{o(pntjH7~0 z;9x{{GI?8=70dQ`l%eLMg>~-vi#}9(T$=>a>+R&{#g+RbTJIcj^2_WgqkhDzyX?7C zC>{&65Dl7eE)+ZkCUKzUxr6jys8(8rrD%aWsE~!mi)>WrfEB&9wNvMo)|D6QY8gVu z$f_xKH5!9*Co`ZGPl160|RE$|EVYLzy8eJwuyDlAh34eer~5Pf7fY>dU;%jp(v`Cl@RQn`0?l7VdNj zlpENQ&Oe)Z+$u#Dh@fx9llmwvq?Ex+Y5RQPcke12V=4WjmFOgZUcC6cMpumW{Rmo5q-HmttN<_bR zNy)O8M`^wfRqdtR?uil8>_toA8_g~OHC!F`;F%i&pPU(9CVm!rVKmPtrZ#O?E)N}1a~!HO5a_q@TRrEUC%n*G>CQP) zb1EQPqvfq|m`%a!*&z^hyIs)1058SL6%&{mRWH7;oX znPjxBVHtWyX09><5v;A#VN%dl0Dh_5mu)gZUr*@)w(8J^pBXB$?kI04XNAIq*uL7R zRMaeh)MlJApzcVTY;_$Af}2C5aa6jC!*SJgAy%+c2k}arxsZ7+Cp~Vqf$W&K8vSu* zrLn{o%9TKK1=&3e6c@JBX3*mE=S6c{vmlQ*Mj@a?`&lgRt&?pCCtRz5m_PTqfjLNj z!FqphU2Az}=f>F*mW@v6f^XU5LTgO-Dtk1DO5XvyQv|c@lU*j>20)cPCRRvXd&afl zucr_J1TK(9j68Yv)f#k5c6JpfuiqWOTXU{UT@l8u{rZBko#*RX0E1=V^ql;qd&zJC zmZzAin^%)y6{AIo~SHc*#}APLR#ctq2_0X zYz?nF+t#?-y^7B#;3s`YYC($l5sqj-&fQ<=P?arFeL3$8)4r0bNycs2SAHM4Er_bs zjcc(f@J2kODAmIHhLo$wf&}MLtAfKWkFbPm*RI*GTu8@fx)IhVIx&7c5$f(`!pBtI z8e5c03Hi0oZwN;|LsmRl8-GS}1mzCV1Ot-YI#2IVQEpYA9YDu~tdPz8afVdpp@Pa` z_2u<R_H+7$TvQDk%%sxAKq0KWG*_hu3 zHz>$*Y2Hyd})EWl{@sdqldKx|$X?v%CXxhv?@kC7$B2Hz8c~I||rWSda z{tw$(h_4z1`(-MySt1Wn3ip8(sS&mboioGTp#ztQdP`t4s6vPp!l!d#w#8Qs&{(ua zAM<6V$9nU6Eq1%719AUojkVW}{!SBEEZnq;ArTFLK*39n_Rnn7n^_|s>mAj@tmVy+ z_icnFdS+Q6j<93_{b)%|7QTY*RKPBYSy9q`--@5Yp-*M$w<`A|%)0(WHU8;OZ~3S5 zw#`0hp~_#s6=;EO;j4B{7E=A$QmG}|-oKs$2YFUr%4W|!bWoH`APW`>vtI~)1oqJ@ z3oo{O4B%-{{xqyNxo=tYU0*id`CPBAfnK|XGVFO_ot%I?UH{_K&!6@DBU}X_Y!%pn zLeuMvA;*qY?6%P6W@&ZP%3$Bw@xdzv54f%oZ^i*$u)(PI<`x%xrMAIPg_DzMpR4GJ zP1M1#&ifCkN&_%b?FipB=f1^o5W_olv$IQo_Ld4!}T;@r_*WFrFuzq3Tq z=a7YG!KoRwAiYp}c;{z$qyB83T+Z;rN6i zb9uC@NEw21cZXr%{jdIoT8YEvN?9yypB;gRQ1>-wGV|1gzB{MG3hAu zt4Qd|Yg9hKZNC}2<+ere2;PL#thJtNYCmwj0&bP_O7X}I$6 z!D(fI?y>sAH)pCq+L4kVPY*b~PIPU=cvCo$w%EIRzmlniw&>p?)n91k0kwM&>c6jC zJ3-JA4&B+IIuVj1TBRZ+v0B7mo`UU+)Mc~0KgTUQJ`a`9ankzL4*hI@mpSXhdjBTK zy(^f^iA6YOHw2FLh}hb@u(%jNeH`hqRP`3-VUdXF;)?APu_W$$W57Mq<3hi?iz=_{)b&n%zS=qd0rE4m?rZ9i48UNCl8 zAU`JggfiA`BdqHt!iN3aUhW(a8dv=LhnJj*ldTD5;bXMf@}Pp)y=?p;jg*3TWd;ec z&1A-T)Xc)vJD922iMo`%xaGwQSbmqJdD#2t{N&ey+9hZ88i!g~*XK1$SRd56#$IQ~ zLu>dd1aqwm9tKxAqWxz@{XN?se9)5P4>)666Xc=P3v&bNjWfCk4`5SEFmhuWas+(E zCY?1?&7T77V#y5z5{dqaySfV_8Xm8pS}PB<9NOSJHS6ew9p?~Qu*SSMb(%1q!m+zM zTU1Od{n%8PodfO^n-f(TyCc`>y-7i%^HJrpY`Dcv(cY&wV<>$*g0MThAOrR!^OFBl zD<=HR9jvcyc6D=2oJSEMn!h;@9otS-9AHkQ*yMmf&_zPrO#2r!;k#`PpvGscB!Bu; z_?kHincwzWK;{&O*C~DQ997k#cA?3Wbn9VT6E8)$%3x_{tO-tJjuH*RDVUaP+H>E5x`)xg@uprZ{+kkR8^dL9laG?5yv zCM@?7QIi%rvte}_3%5^W+}F}MMts@Joxzj19}!{vWb{F@X2 zwF!_r|Lv?>a-)Jp&U2>FVMt)$Ez!$LW0nMu+_4Wp&vzlE*+Xr^+ekX5p=j4$iduiZ z1!3e+UH(w21>TNVY-7c1YB@DL;JziN5 z+L@9nu}15kJVqQ_UiiYpx5`uO%si}1T_f5M`613#va4NEH9e%0awqzLWPby~4~*8F zv93X8FZbzGr&({aklSZg%tJb9-`b+6Am}56Ac>{-7%y977W#>)uwjbgVfQ~ zrJ>ku#uze9i`6s*(zOU%1Uu)_3o>mIK$*}_L8s5s--1Y}YHnX9t$r`YC623lC^0_!Ky9eq z*{d!Q_UW&~HzL^_5F0_Y{v z*beN2$4XUuB-4+Y=C7EokK8mh66jq|WF`<`eRm@T0*4fT)kD0l01~rL7LIB1ijG_v zMber~j)hb^3=bY?r~zwfl(oMDme1*-lshbUR&c9^`EGmsBH-3uoY>-Kr5>J{usmL-3-+h8SOZ}yq9*roN?l?0@bKw%`WcTc4S+=J)_w#?MV zI`?k9(P)L^YI`MVUC}Fa^rPKXnNN0}vzD6z@=(wgx>H1-0hajb%XZ^YefgjgXnLD^ zDyV{`bh9>Smi6@PA`P;usTOTWfSYP+G?M0L}ha2wMYMhW0&Apup zi*xt1t9rOep$@{>{k%cGS{KT1vrbVtZZlPn{j*$&28%$+jOb!eV2rK>a?1K+o3;9W zTCqsg7|_}1jsyYwxk%HYn)M^0{gR8o+I7c2>3*x~t6I^P{+tj?&wudtap2 zSu(R!JtL?hYp4&XmNX+n?L$;p@LPj|8l)aEyR;J3Lz0B`qun7af8~6$7uT{*)sG)f zcDyda9m}zWR4&Oo_(fkb!P-vHj%T+gP8?HF%gR)wr&-hh+5fSAbVm+irvTWoFDNBp ze)Lx`uGYP*>y#pCPp)?WfI4QarGfqjHK_d7fIS55!-thek@b`tCC+Zyk^Pb2g#rK~ zm;#)gD?PL;oLg$^Q?2$2ZM&`#`h+O2)P@`h8vWJE0lpIx!FYOlJP6FjlJidy$sT+L{PuyrJ();k)TK77pBLSG2pe{jG@ zjy6H7o^T+E?Jd9NpW&cw=d%##s?}_-3K5ECu0GtwIkFX!cpeWFww}Jd5I3|)gRYmO zl|R4Oac~j{hNlTo1sex0L~$x%ewnz_A>v_gO$x!{N(7X%nP2p;>Q(o2r-2qIJykpY zuj;tpm3R1ztALZsBQ?0CyB;wevYOhab=8RtP??V(W>wtJqsQfCq!I$n^3Bg&88u0^`{c$0K}z9OvUrKn-A?sZ`Gp0!&MDYg(u72UJ5baU~Q zTyk?dw&Ar_O;%(bVWZvcmKKGHBcBp&r9T4973slEzvzd8+#AIoB}Ve>te6fPNK~u3 zTd<@;g9bCp$5vK7Vc`peIJ?=)nf{TTI+oox3i1ISsIXHo(7+w-lQA5`Jh-qln&}@g z3GA=7;u??6-C(7aJ#_bONcZze|1K-NnVmLwSbd~f%yFx#vjhDcMa-6TlzXSZh8zF zxJIvwf}q!spj2>Y!y5Iifc zaca1nwnFcsPvl~UA{zMd&Xj%YW2F9#d&?TH8{^&=f_R|Q^Q1{2B_SjWvufEK3)=)1 zOQ{{zu{7D}8*e%W{eU0~wcG$RCVPN=erpF{oOO-5pe_e!&jvQ?ysZ@r*`G~6Xx%|c zk#7D}kXi-dZ?Wk_SytpPAD#gU%X$49cd^ig@T+deVIC1D40IF>E}9h#VpsqIw32K~ zyqUvNV~pB$eiCPD$+BjJvL~k&&k%QtC|KX3Q%WLfulPWXp_Uz+WI;z2m>lY>W2znP zq>^p^)D27Y(*o3F+%UHcEa~ZO%8+=^C8KupNNsw@w0ZevNp`E|nRi>C-PP+_kQ|c2f8~qAyqSB+28)JEdR6~CUZR{ za_HJk)xIn^uqc2n-_MhWVK0YYYMacRir`s%ezt(@Vt<%-Ueu&RoulV95|Ln^N!ewb zkD<(fBKBMJh2a#o(3l;^eomrbLi!L-Hjv8GLGNdPRcw0Ot#;hG%*Z+%aUIId5tdt^ zq46DAk!7<|;alvb`q+{|hxnb-{b=U~TXJQdCe?@LEy>>?jc#1-s5E0-;4?%Q6!UpY zpjpF>wlZRiiGDblhjmou3y>*y^l@{OB;Og7Q$&1+$x{tTmUf)Za;|xKfY;i%YOCIG z7OBW=dU2*qJBe4&vgWRBX1iYT}k4-7g*y1nTMKEWHD z9^`OVWFUAB4vkxi2ayc2mN=<8y3fRO=PvLuvr2O4F>9#gq|~MLg_5b9Y!xT_q3b=t zcd#*XkqwK>WWNBZ?a4gDP7!Oqox4SN$c)xc%@{Rv9LxXdS) z17{tEZPvQIvhd!AW7k(olvpO)U}f<_!e}9r>g9*FcWmie3&p3$yEcxyQQ^DEXHv>3 zK9=@skVzrpyJfP^ot6SQ5U-J6jLfRXgNx}}T%Z{wB3v``=h;!j^Gxc{xY3~K`?(wjfsTfs?c_VEfx-6ap$C;ozkJnv-=D(Don4(C!PYMm3{Z`}p?pshUiHK~=~K-rQ}5q) zyL!!2JtBbuw@l`7lvxULmAaUeAa9NQoLu4}Rlf9E(I{$Hxxr!H@oN?yZPQhs@0alx zlnQ=Yt`TA7U0)ud&NfoY&-xJ0-a}klo%=+OGtu$9F|RJ;ntZlIMmM>mhP4n?7T+nC zYK5V_+!_0rxzFF&%YGuHt%g<$Nr5i!ZJdg4O1V$Lg)sQ%XA96TVLzqS4-vUjlV0!9 z!NO-N`J+hv#EW60yVge>3fiM^25#3f{5!!jzsT%M66@E&g;u{0<}1h#o$1{fRYz5V z`tZqBlI-K|lgt#!Z!&PcsW$+nj0xr!}mZZ#p5el>@Ggm#4Bw+_%L^ zkoEOp54zT6A(%INPH#DGClP#oF!*@tQ-BB8nB)jFSqu&0!GlsoD?Pl=&VCG(5rE{F z;#7}ra&bX@7GfwdwO=VMl%2LcsbwwAotYVeEs(~7?D}K)`O{@&5^q@c=xxq{uDrV_ zH0t}H=NkLY)6nI2eXCfevCXUFR_lw>YPSB}ff1f7phh}w3Gy;DEo%#`MS{;_exmTS zP9T(FE2QR`UMSn%EU)2a#`RQUkQz$O(Psn0V=1Pe(>E~kHD=w{A?2s;nZ)X3ui$@` zt#G1sPV5?5@0HfxM^;wIA`QJ+|Wrlz&o_bfTZ{^+ydbtE!O-gc5*IZheNgYdnS^jkS&U$@Z5z}hsE`ul`I z=_wZGuo}ncecG-Sx2i&J$b@J>n%a)->KoX;$iLH8w&>y-S%6TxzEdQN1=NB zim9i3$l6fYmuf~{5yNIXN)7v_YXvVC_8uxoKIsFx65@2N6193n>;ip6uKwZbC0h;) zJW(Q@7P~8&Gwi7S%uF@FfNSv##5;?v0skz!2@^lH?ND?10!t2V81p4E$*mPBdk0u- zFAwc>GF|>;ViWT^Vl~A|Re^s5Ubbxc3>5F-`U$S#wD8g#>1z>vw6IvqTN!tJRwG6= zRikoyp^eLjxgI^YQo?g;mT-e@+S=tYwwvY85}GIaErPHA96*(dQ`tKst8S3q5P0)6 zB=nWGl23h}qey2PwDn9DvNyM9qb7qb=ihHAwmW3LAfhuN!46IUx87eRm-t);8p1N*BRgIp2WO9O zi)b12;AlAqjAd3Yy?=K0N2+l>QnzBtB3~~Dd7&GHjCAz<=G)w)p7MmrTr?LA(XXq! zo+iO`t$gB%e(vd9QyY4AISAX1h@W-Th|uZx{dhvMxy8n0AXhEy?XG2a*HI13vY*bX zedX)>F?f$MdmB^>Zr4T0GMajUD|R5ffj^Vb^fDsirx{b?%9(!O2?5ndi~I$3%xUzR z&W;{R3R7nZacn77bf%o6QZREW0&^aw>>cm6?*>ZO`^qA2K<$cFwpuHwRNkUJh+!t{ z(VaqlwOqWM`|KHdsG$6Fkj!Wjh*|Vd7>x}-m0(k{R;Da;Pqq03cTHYPmHV>-%nFN_ zIW`0hFL4RlGsq|)Xls?1m6H5>m@Y1%7}Fr#TtMj88y_IX_FFEX@FES)fQc^sbcQ8i zZAuNYVEO__*p3YzS4060@y6Nt{&WSFRhdnKA8m_yb zZ{!KQTNChvX7bY{evhvshY~@iJ>f(>jhD;VTX=~92 zXVh0IiCG2a*>l&)p~-@|=hdNhLre87gGL|ThjHw}OYEM=IpRLf*^Sh$&M&+)yWR8I z>;ND4@d*cl-|d;iZXROAsj#NOu}vVx3B%)?P}qhOKBWG}E~#+4fi5X!Wt|Fl;?RIN znWUG5Ut%V&(N$pf@#}`4>E~ftd6GZE#TiEciMIpz1!{zwpAQoNrnoWYhg{j{!_zj6M5#Dl8vP&X+1E4wG!SQV;M+fx?(F)9l9}EIe2P@NG{WJp zLjIdNpnMGQi489tr~jTnzRB5F5cm`wCp&4+|K@{!yMLId$o93Ou}_M=|4=gOk-(=Q zB|3sH{Xld-FcVz?{;i?7xzBsm|Dk05HNzi$*?-OON0Ry141eTC{(qPu5;r#>@HH43 zEAl89rdcZ5DI5Pi&y#QT{t2;9Rr>s||IFe16n1KZTxf#VfYfiky*%dqK=(m>wjJtk z#n-#{-%m_Pt7KMW_Z_;~NOw*Wu={$aZ{GL+IMC$M5(X}m%g85M?&1H3(O{D-03pnDub%s-%HaG95bv@FPl)_It@}E@O)4NE@S_{%?guX1a8CH2N+$mjfLW3p8q9xx_aCUqpYCjY2Dp&tiR?d?%nJYt zD7QZ>`FoG~T}3kP0~hk{GX2MrIRe-6-8o-m`mIq%fuJ!ZW?<~ zJEy-qJk_u>c^Wovc}sX% zmDJnV3PHOX+6V1EN2^=%eztCBMJxA+Y6K`(r0XM@O?gWy>F@fxTA5 zYz%NPnWs~-?H005g4i3fo3<+10)k%k@AwCl)R6HPwVnr5s!T50#w9TxjqgIjkcM*5 zoNE2U?e<9~5kG}Z0dP#Uv)$q!sHzzMl~fhQSI4YHH?o;AncH@uDeXKj+{du`Qe&yUz1Xdg@Vp_HnLYu~xK zG}Ha|6XbN5uH$ZiT$`c)#5DTN%%UGS>C^Wk&)gxr0lNe3paG0y^gVg)y_@89b zeQ%Ca6)FSgG)DNka;Px(h=tzlYnOZyr@WhzeGatG=8n0Ef#6D;{WdvU1De?H*tPQY zolTF-jp{)k8$ldaO+GOq{c*F155T5@6f@O8ZoHXI%%VcoQ3>eyr&1q})d_=={*TY> z{TN`Ikol~YF+ZIr>72EMFNIKQ%-)@JPWr(KJ4vnMNIxp5#K1(B)SfJ92DGNGG_)gL zruq*iptob~%hg3%x!1-CSJN~{I?)548(s#-?D>S+n#l^VqcdPK7N7LlU)xs^z}sbPyo z)7nL94i3)^zTm}7IoJ_vtumyxnPI(7pG5^NJt-4ZQw;Uy#*|Dv)M%=-L&#LZmSdC> zWL8qAKyx)ij;$;CR{_b1IyNSL#p%kjC&0Af)6BBnAIhDuvLkhG>fvL~POI4Ch$hEQ z%!!@~O2RpQGXj?*q`5~LI#xIwBX?HAmGnY01%w60bkqkW2F^< z_nq!5yRbyX764Nc>HTbxa3Xk(*>TzpBXj|%%*!tO;q1V>sn|d_>+?VFlOSp{tb`R7 zn`TtsxYsT4*7*nE1?OqvLM~mjX+rFiB~zC#4hPE{0VNvw48x7+mNmQ+hl|hiB8$2U zYEFN(f8EGmsuo;u9}3{;p(D(tspPT=tYdltZ=PHP+6>&yra^C3WYT-IC06l7yL66F zteI^vtQ>h2um9@UW68BSVttoT=MjWZ$KfFS6KNz>yi)%=gZAZ2SU@}tVn5D7n3tHx3`=;T&gNcrP z?asccWR?Qzq|6bc^k2wmtD4U~Nu6FUOt=n@xCOv?hzI%;#C{V zHVX}{zh4;J@5F6v@>`U*q``Pqd z9u9V8#n$KJFQ}TITbsaz9*}^N9~YA8ohTXf625i3nh`+KfPx@R4RS_In&v0d9Ra2~I7SU1k$3@ny z&1=&>+%{V9n%qR$GC58FH*~@ue+L)9m1u6fr@iqBW3_25VsQeGfJ(2=#U(H1&oFu+ zI=kqDtB*>NuV&tu~r_j;93Zx)St+$^E+ubMMS@SHjfmcx|rSmx_-HYp3 z?UdF_-`?W82f4gqy!^ZE8)gV)7or~4bb^9+cVaj?;157Ze8OIB66c~6iP4bCp`5Bz zl~6{4ZDSwehKUHvkiiXFx1Eo%!U%r}ghR*W^b=s_huKkFX4Y-pn)2?R=U$&@6XH|M zhE#|h_$*G(>{`Hj(pgeEdQ9=ED9aGon{YxWc#h;%r=SoG>Y;rvRzbbCsj3yQ|{?X|57{-mQHd-T>g(W`r3r;3PMlz<6D0ku`r(vni*iU zP!>`n_;)ucKsivL(+f%M&}hs~cE1Knpx+1v`Z(*$IwxyN=Ff{YHES=7tqgWTEec&| zP4#DUYs;6YI0bYFdAHr@`wdJ7PrB^#PMkYwe<3~JuAI{I3V1(fv zA&2ExG5Te8HM>E=Q0Oh?x$FJnD(b=3eUjwRj_Ud0+b_y3nH^%ZU5ZqPbC%U>&$dCM zpqRPzsx=|o82;GxkP?Cd{|07odKIDy+NLoghKFOUuOuydug!PsG+M_IOf~y^VnPfT z)!dz+9nxK|H(4$}9(et3_-h9wP#o=dttyt@wVE`-mN2O^6zv`=K>Ts{2{bFW4A8+oMS~0P{MZ)!Z0(X^e zCop8~Jpn3wvl<_`kdt=qiyzH&mC#hixU(t8u3SG*X>kf274 z7O+g#8GGF2Fj$43aqf@QT4^hp+V%8?dN~dH7P;A;{fd^*3sob@30oVd1 zzQT>x@r6{(Gu$F%OeZcgYK3mH7nrP4F{+z=OfT^srVG6 zw6xaiRA8Dav9t@EKSOv6-iN|pZFHBeU2v_`@}afe&eed$+5jF*;Gw`C5lOB09$E7B zgZqm&^MbfrKZ)*3(f?L$E>C+O9D7=mR?S?$9jQ=z;^Y_Dx<{jOjMB}}8*7&E@%5#T z%)w(3BmNhL&3^esQpMFggi@&Z1a~(kru!}KF`gUZ<68P@K{_XSh%{kzj2kz!R(l*V ztcl;J>K<~#s}DEv48uXWo}=yZ=DvU2+)l)`H z9Iiax2EX$0{;+~kuv%L1Y;_@Ce56t@de7q$jJSV|g8sYM)? zn8!;2Dc+CJfLVsupjpw;f==*MN2(Zcbwp@9n@HS;;V?RrYwH7C9-y)2Xx~Az1u1*D z(_sb-;l2X><)yM^xQ0<&@^)21h}ApX@=>5`)5{f2KJV2#wgu5Vc_aM$Q0YH_KFnWa z8t8{Q22fNY$1V2}f*7vzeN3W1_t;9Rde9s>vUC(2)ZQ9~mw4*o0Dr-kIoESdG*KSb ziLgy&Sh||7*m8O*^l>axw@Mwq{@zlwnd+38L+$elsQuIeuDq<{X+s!gwA#hYcl4fGps^Z*{KZ4 zmJB#?+05EV4%jZH&8U2kVL9YQhW>;ohc~6A^GuQDA}}UfZ~P^Flwr4Ri86RlHa`7t0+IeTsV_5QczXDIuvg9 z0F_fKycrH1cVV2JWW=f3>$E$`I>lPm^m3Who}X4)iu!Cwg)=P5Hl=ewRwrXQ^tHC= zd}DMDENLmS7Mf8!&P-ABX#tVZi!@>Gtz>s5qvK~=mwn}fNx|w$J_J_F@5@uceOCIx17_;~sqz&b6lWtB$aAc5vF3Hj{ zi!PIJet?eSqNbmRs0O2QZ)yO*rWENs6c{vI=HhzVDSo~){oo3!>B#$tuj%?XWBbEF z`7_=0vjgmQHNUH>9%p`*=z=$zk-s=jWJ9J`E5`k?jAHf&h|!4TgzesRMhz1be1SW{ zX)P)lvlJ6yUJwD*j5sxjN3r{m&(2OK$BZ0Hd%bpLX|@m1Z6_}P)3H8{xb}MPGL^GT zQp(ADr{+HUd<#mSZQxg6$*4hf$cVpi<7pSZiy=yN4ewBo`)XqueVhED&G>_`HETJ&kOdq{;T>}>X{5%;>e&|M_w|{8BxPkVT-U?Ep!D1cgbRd2BJFw z4#w1_L2BpMKIte~c&Qz{M0obk71$R6*Dp?X}z4Ov! z4eLzw5N%$?td{JSY>gEHBL2fAvFC0%$npb0POky4972z!Cx9yMYNTUBVy${#zu4w` z3Sc!2RmR*C{v*NZVIHlZrAJ&f*2hy1f@vsB6?g6+Q~`*n?J9UBm65xRCT)2%S}-l9 z{91s`HDgw`4?ZB(7TFkx3CpVw1L?QTgE{qpgk<)Z6mL4?cAa(xv`DLspB zJMR|hGN;m}HNPrB*wC&3=B>yN0y?WsUUSejZ2ClxzI<$vbxjkB3ELW$vzehc{>3U4 zY_6e)nCEt)lodoCbJgH&#;l<0G1cI_Sm;}VCrn@>$)qT@EOaT)H3XowfXO0X5(5A+yfKHg z;fZ2E;EyXu2FhaAsUD^9+PcsP)9yvPKx-cx?2YW_Q7$*)Mu~vC0N%XXP2XA_51evNmTec)T9|N})mKnulw@xLy z-&hfv4llhm?7QeTzf`r&UeB34U)nMA{W{KXuB&To(?h`^xfRY-%APOOu>7(6eLbZ> zYM#K0Vd8^`rv8EBHqyTm(;ySlOya=JKB^x0^dZ9_(&MX0Z+}YRNvXLaYveAt6$X;f zV<%^^RIskr*uf`;_b7(k@aqwtZ>WJs0SSRgP_CzI%}STHZ&NY_ z!dTwzp|8-_`Nn?OCdkam3(d;F-i-5xH0WsEqk8BEV7oAwIRal)b7#Z+?Q?P-$E=a% z@xg_|1VIf~Nervqqg60gOh?w|0A4bA8^Et0d?+BX9bo=raoO$BCDigYqPwb1@I=69 z6jRx$?E>BZx=2WxHaMs)KUtU)#84=FrKQ=!Hy+=DFyer+D5XePKi)ZO!rbwrx}4T4 z@B$G1UweQ;2!U@?4??o$4bv45icxdxT+VgUnEWXW(s*N4aQo91U!0SN$Dv$@X=AM>Z_H`i2$BVykEe^?UqMe$G z@-=b0d_#dI@zP-Rn_N!IGPYw>Dtv+vDc+NTzSbE1T5%#Xa^2GZZaRv%m&0PTQdmse zd6(p-xb*ErRtIxD4$AVG!4T12tY*Wg*-Aq8%4@98g>}~YUPertseXD2PtoWblL=}TUFBoR{N|e~UxrGFI&gI6|?2JVwda?aUv#8Z7 zz~eRolm@7OjV`3K=ivFD6@bAurw3eKV~kyR!jMS}ZFYmo(#(b~%DqfqtHZVkY6TFj zOK8Zqt(2aQLJN;3TJS7(|Mk@S#9&%UaP&U41MBN?7ba9O)iO3oN_jJDyK>hjBtxwV z+08oZdz<%x&wA;&g)s5NM?mPo6c+hPM^qz*{BwHpt62H16IvJc*?@2_Q+sWlF0N@1 zkw*lzr|)I^c00Qnoo2Lws0C``oTVWTC6W^9FSXQIkH;k2Fbb$_UWlU+ZgaX_&e3hO zT<$KVf^&gIFH8tjCRyY^%9D-ksgS*3Z~P5FxXF7? z*KH|U61}i*ofa?QGP}_v2Wi>k&Ym=rV2b zW(n}^8;lAUfL+B>KI3jc><0r8!$Y2v6di)Mi-p+#kwEY7Lh{I*&@6@$kLjk||KKF- zl!fH&**BRv}-{chEW;KMP^@;)}66BMa3=4W@3c);#&>l7jU6EBg>TnEggeik+ZFUZFOkO zc4Zjyepfrcsp;18qW1%S=S3Qbokl^2vpbUr$lYC51>4?LU-EegVi|sURlW^8$AO}x zdv&J7*Xxw!JU<5udYo9c8wmy$hsV~Oftbhz`O>>bU(zCMt4%S!vqQ=q8cgi7`jNbM zxJ8{{!=;&OifwBj%8JRdK9{wwFNPvL0ylG*BRe$cwRTQ^;j>I}_DB_{6Pi0fyT@T3 z=Wp}C5GuV^#v+xc-_1Y)(6!(yr>* zyfQyAkyo$m*qJ82af@Jdw+mdnhKBSx`2d}NrgmjqzvRxR=bPp3!zn4TK{I5po#Q=n z=<4(C^xOua*#EV=_dnepM(_^atB1iF;F0@@SIsAb zf!b^74nMhLPb-%nWk#rxZ4Vz*ioUiX@YS`Lp&^mABG~FF%l|mBjHXR%=c=2Iw0R~U z_XOsmHDM>xj)xfB^_MhII|*BY0Q^OSFedp;_HR_ccdLM5v4@MRip_DoPKtIzZG(+s z)GswaIzFd()Equ-JwWSz8~kp2X-^Q3j4S4D_jn@4^J=d!57CD*)p)<&-=;^Fcra2R zmPQa=2hG*S;DAl6J4+onR^ANSakatfKYq=NJRrid_BW>Ldj}aP-fP7HfM>W32q zZ_wJYzxW!EbH(?Z{u|HvI>z4Tx_tZjrEopbdjWFXV8`^(%cgJa!B_kIqpZGO_+Q>u zmkms-Kwzrn{yORUni2f|ei@elk7Y34llV2w{@V3yMQRMB78J^ov^UtT@z z$d?|I$NF}E8E(Hb@Nx{$%EeBuIq<*l`PaWB0Ufx6L-H|yMS1*}Fu%g~bwD(;9<(R_ zr}Y0MySvYUH+@m1bmVt2e_w`wy79js@q3@)KSKQXBmPh}|61Y?t?OS){Gki_*PZ?_ zYWy1${}j-Eha6q&JOn)V`R`HRxSi)~h0N=blTJJU-dA9_m{QzZL7mgVj4gnW)x&ky z2NR)3RF>1QjwFCX+oi22Cf8pq&VG1A9F<+|lUB2WZarN47tqC5DNMeVFY7JgCHre_ z=z7$bd07s6U$W@}`-^hoUov{jtsz8Y&qTc7yZvuZ*d5;Mw`r^Ip|GhC?S2e2J%Mpf z6w!(HG8E4rv`Hpivx;r;ZQ-Ag2ti?P&_^XHM`owGbOL0r5a3STh z#{q;2}Fy{BB$1x@6K_q<^QYfyW^V7vcE?~Kt&M? zMFcFXsPsXKbPJ%MfQ4RyA|SojkVM1^0ycV81e6vb^pFIkM1c^bMM{W*lu!~NBq0e2 z?}M|>?!Lbn*X6J0Lz3s-d+zt1bMC1DPFt<=>+v~3Mz)|(;1}H@d`oytu#!HCA-Uc6 zI85-U)SI;f7s)CI`}l*4OPw)xuXYfeLxRv1l6qhJRO24>Ft78t$(YFLS07w{;=TMo zx$E5y(R+&O$&l~cMC*>l5JQEYe;3^qYcTvda^dD_Znex?W}ZLYT}v-&ea zp!@0O8TfM69g9oby$geu;8%+G9J5}hLmHn+^XvTKy3<^I`<^qnm^TrUaNO==bVXtp z*d@m_7;POyVoi=n{jg{LU;R=m=JsBUcC$Rv_@DDJcx12@l9F7&k2b|$8jk2z6jmun z!t|i(8+fWb-J?PLA#{U6_&wGXCL1lS?KlcYmr;n z%sJqDeQylNQy_9EyF`9_W`RpS)@wPm*z6IeH$RFRXO35C|gb zdUnKgEN2ZW?~9&DSQ&)FQXpJb0=VeeP2Qc&<<3p-i}nxC@LRHNZR)eSie=6~05@du zY*~MTd5#LApItPNV1hEO=?y2mhEzp{BnPB%x_d?EKO z5C9s~Q%BzvoOJDK#-1CUF?I2}@GGGHYc=7E&%z^?UI4y-jT;#X8i_z58SCB!t5eB_ zKq|?%Too3xEPVn(O?JXSpTL)G)cgvWy(nRx8jt-UuN(-l zwgLCqEq)Ttwg~tTMq*lwKndKviT!W~*j%b6w^_Cyu1LY~+A3Gxr@#}^5To(~`SH=4 z_*)JN%w4szuBVZ(IkCf(dZn33TpVD{Z;Qy$(~V@#SPs4Jua-sW9D%ZnGj6ORl+Hy` z3!ar#k&jBYZNW-gzS}qGN$|uan2-utoIuN*G_nm3-KDQ&AEcASuK%{=bz|i2)Q#cN znukGM>|6Oq)oiV|G1Ru$$HbTk=T4B!$uFxclNyLcLocMk9zEZH%03=KlIkb9=+dbvJpa(kd+Qw z254^`v!@-o9P3xM6d3VERd}eZB4F?Si*h!k2>hnS2l_-24{aq?x6XDA$p*AKJwA15 z#%ueGoaORNKjKPAIfX3=vlM~|OZ~1{{WspC-Zmge0|ITT;%-Du^B9a*R8`a@4P@N)FkUkHz)m z%NmyNOb?XWN5nist#P;t0c&RyZ@#1!D0J5SS?>P(aD-73cjn;lRaaCD!a4EuKR z@0nn9I$*3TV;v9P^y7r~Z+pQ%-V>YZBhhBYO)0BS+t}cNN$zlD>e}q*L4ed-^R{dc|v%U7&ANQ|35+U#5h2y=?E{>Yt-2hMBH#x z^Xts40s>>I>4Z2XC;w12;VRAQU(C2edh00t8=S$kwUg2;tpFDW~vqP4u!v$k1`B5~HEjEu#hCW^LQNte@^noFJ=2kx1Pi-jdB+V0@!`7FZNu=Ms zYA@Y~;Zis*Q&Kg+#0K9%nd?&gZ}pbSI>5YgUP;+naz=lD|Cd#8YG$V?I-OZ<3#_27H?_~g>;~0z zEuK7BNfv1G^Vzx6uY;4S>+bu#4piK8r-T$)%q~|F5;nAL!&IUKTfPmLXJ}e;1IK^xOt(ZhB7U# z?H25fAzE#3OJkcrBL;n@q?T}FvlQff=4Q-Q!>!TQ_6tbO?i%%_?y#Xt!^PY32J~T< zs7eYt|9B!Dc_HUze|0^3#=Gbf6bKb4zqL4abnT)ENxRp*Gqx#)|D=a>&&c*^l710c z<5Y?7sOS6&0TbjC#g!8SYQ&-JPA)G;3?i-ZM{#~GimALEDq)lc@!xM+xTL%L03lAv z5R&k|lgjqC4WDE^e`3Y!E?YN)wa?%9Q|cD)N>zs#jf4^)iz~bFEge^r1x`QMF12ge zyDDOiQ>J@^OCRv@XTO!vm$g5>@;EVj7r?t8>yrZf0`^Y$-fNuEW=4Vc!#baSD&AS* zX;wGI!`v*Kx3#$x;r*3;e1%J0(|LNY;;MK9^c3@s={Wt&XF9|fqrGE<>PQ#H;-Oq* z?d<4-ilj4mP9ND7+Z)>nLvtxBSpBsOM_H+hFFRs{KWisMF;54y4T>3UZGnA@!5ZiL zd)vDE&3}{A5SIM?bYRq$1fO>t>l6$Ojl@wwG;DWMdN>MTd zrK_ayJR8fQY8zWu$$V-@wIBo(*{U%%_>6S!UBxiw+k1oyF(g_4u0Jjep17vNxXEyS z|G+E~wD_U}&NF-cfR7;;)kfiz5yt^}xYt}4G1ioI*(?6BaKjpGX!Ux^*loMoPst22 ziVJ@~1w%)|BHzrsNK{xum#w9(P0kH=DCA`C453ZBh9yDWyx;LsSH3)=##I@|%OiXB zM95$r(kBYg>cr>)o;@!`VJEiTbRIZmZ3b zP-*w5Z!eCLIP1mSz%t>Q(%`YTsi$UfbF1{N!foD&iOGNu(cl!_g%AQtSd=%qz!?K8 z;_P|ZrY@{ySv`kP?sCxA8rVwE*XZbpoIJ8>*lekKT-f{~BMB;8NV>5^BdzKk6_alK z2vcnV%9D-1i($lVVi1c<1Ox`ud2$#X*F1Nn@tQ>gj{$S5u6oabXBT9|2c0BBF#|4piyXfbo{Vie9zPvMQIn zPMqBqjk#9Puw-`;I??}rYsDs)=Iw26#i!f_hRBJ_dY;}ENR{H=lxkZ?((#=``wot9 zq@y&!GT&|jRSGQ`7L7o`*YUJ1cvou8h^}9+D7=Og0vqtz%E*6kcqT=vhIEvTuDStr zydJWk!&LFo7v$Egq;1P9dZeHrIdJ@o3G3GajVJ?e$$g*OT28$NHt1iLyo z+8hsSS$Nsn;f-o77~F~=gVi^S3G08mJ=VOB%;f=9cb`^W5xatU|$u%`U>^8(2vjZTbqMM+1}}@HDxv_>OJn4*_ml8J+D_rT2nNpnf-(U zqpc4>flY(kH*#F1N?&F%D$Vr^0oDseu8~F|zqMcP2mhvLAc%^2d4Ff@0aV_##SNjG zw|%zQbFFC4=9W8eavw?=8hSr`^)OfP&XsfJ8@8H=MDL9BJ0aE7z{2C?pW`T_L?m}o z8=sMtbt-7GQv)$Ure-Q+>tBupB}mMT>nT<54H>7Mct2*mKg658@KWF#wW+l_%4%Uw zYb0zfhWtE-6&U*^9C5_02?(P_TWpyZ<+QqkmJg5Sy;4eaqh3yWhNCzTG40ho@7F49 zu}M>W>cm^zRT}M?zEiSr?x6Sh_MXWM?-hr8my-|W!mfpu7MZSUon3W=wvu{38B3?* zHtPNUPM(rBGkZ-(X(P|jUSt=X7ji!wufWe~aYhKnrF2A0filflixNqei=$H1=0)Pv zx2xvn1fsG6%8wdmRc-(Gn!(QLbsxMA!)uO(aGEA^)vyE^CxSF_(>^ zebYI=7va_RxY-L{Wn@Z3AKR8`{7B+yoJ4Hgpq^603R5kHq#%`hjU_haWU&QetgPX- zl7RK-^}C?5dya&#b--TX(cw=A&*eZS(}Guw^)1sb=nlo+CZyv*3OSCU<%VJsrZffW zZsuh~zRvC3Q9WGWaYnpLjbvNA|0EL{9yxlGkEXXA&6Q&s1!M{i>OR?SGwt?>bBN#Y z+@lSGK{z#n_k%dwuW@N#4?lF`!-Rc?&Mv>gX{41xWvxoytyTBs59*&8npo^8@JPeu2hFu=wUV_8Dox;D~>)|kns#*SH%q3=Y*gS`))5-G|)l$HVLJdR>#X`f zt<_uzt;|fGThx*WjkG#ag0xm2XRv3{2f)0Gln76CL}1ip77r10g$~y{ceZuzi#F=! z@LZ5T*SouG%;W1l(UK04uO#!RNzb%wjt?gjeIv03t-`s8RurCsaqSCVt67886q2_W z>?>_yK3gf`p7N}#wr`G8 z#k>_u>B6dxB%kO+1{QV{mZ^L_dsT(^h-zRstxf50L{Kk3x3*Ksn1@6H(MjeVF(WzL z9zt(n0^3>rfcq6RX|3WmGZDXHh}Kc#?7bhugoR0aCgPK?LZjRmvxi|FYd4%vH`K`e zsVDv4hnR!POy}UUN`D%C>W^FOz^ZF+3R^C;IFRHD#%W(aqo=xZ zU4Y{FHnO>roHXGkdZVp_wB~U$`Rjc3=&Op3Q2Y4KB?zsw#`;c8QoN6RCariI4VBXF zHmSGz1w!kd-MFnY2j3Mj9nI0)K`Mjv~ zoZ;IL^L}k#mY!#!S-GDaR*~@*+VEw}^h9)*hC9gjH@Y}Oqy+HEc1wbTHE@(4 z>bNyI%4SGJ?KEYLo=^%ahVPa&yST`+;AOygtfeMJm9zeQWZ|JOc>1P|`{?9;+iA{r zZOremHHW}Qt-U*j{hl+xRB4vtCyF0pkRnj}0@cw$oOU01a9uB8GWUMCeA(#$Qd@wv z-SxW4antILF_pu;*$CYBm*z$TQuBSgJIEG2MPqK=5}u6sDahU zq&0R;u^fhfF*^*chVsUWO>tTlUkR(^zH)kWdXM2+9M-*}Nfg8zs-ZcKrSOeqTe$6g zNFW^)XwU{p9ONnCmeZ>S=I~t|(EOLFrJQ#$%nQTbb%uIRZsdF4Zkq*hVq@u-di_cp zjN2f432x{#)!Slt7sm+yOF~cLekVtCygs~RP#@)tQ(M}wNo5$kI(DHi9={55$0S^N zA#QMOc}f9Ec}6NMS3p0QLl7wBBqc6pRr&<<@_Y|r$ zxH~{E150z5tF|MllqS0@Bsz(~GD7jsU|6&8TQ`A$S6+NXw)pO+|^c04#aK2PVkTVlK(HT&L{!!INeXZ0B?}oe~@DB<{F!E&L6C^h6C__=$b5%?WD6F-!;<7Zv`6De2<5q;rsn2Z=F;wP0zrcr=WK*dQt{ing8+d5jcOG{}Rwruo@Osun`2v2&;w=%1m zc-!V$`t08Ad#+QGWZ@Pi>GJ_5q7HGPE=N1gn*IO`CMcm>SLRIXcsMr9% zcVvepEXie6R(|%ham}#AA^*RU@aeiXTLhql~qqIagMD(kXOXP3w zn?Mbg;GZKT?%FHJDPp{d67LUd?r)-I2q>>OLb6fSa6RbaDj=K{Cf?%Fsh6E^WrZ{D;z5?x%&kPaTpx zr+Pj|ptVk@$0drlMsF{sfqFH8k`Xlg=ZRz~mSxNg)aVV5p-pMG#xm3Fj_|uGq@Zeu z0R$rXzI-mX;v~nQ){a9Am?9?i>uYnY$xCuPrwAu`ho?9pnIr6-kVh^GsJ>?&?ceqS z^(%-^$8>MPxxzS@nk%s?Cr5qM8MR0C=}$$a?12^CaKgF7AF@(P?4iNjCoJ)EC^G&` z?L=Eg6LpCl*%3CX_WM=WQ_hZ#VRaV{UoT31w2Z;)JQsM^5i*$-Heg#3=Og0lS*4SH zk5-0e1Z^t! zenlxou|JG?;ILBFBrRbmwoTGEGkd_^y)>O3S@k=mycTw-PikUXenFDyNADzwP~-)4 zT)-h&zRRqqz=bTs@z%@D$WKvMeX_%v{AiH@5Kt|v?b3X2u?ZG7j(jU9-X_Ge_pZJy ztth|o_0;Ojd!0td&flDtXG=iYAo+qA#xPEgsoptj8K`=sGp!n97L6 zX2{V60uEBf$9UchNKna?NYjcEbmDasQ_PR{s?svvHYdYFdt)KpWN~yqW{2{0ehPyw zf8#)NA;$mAM9Th|{^BZh|Ar$f&ayzaKFprWzQ}NH62Vdl#7>dxUB3swN2iE>GAm7c z`?*vst=39l9%HSwd^V?3U_6Slvb(oDNAs1N^%&=j$`{wc3mttWyX8_GL(_Ct9PhTw zTFLv=>Po)2{9>hR7mRMQ{PpRan31UC&94pZ4}`%WEi$sOpaaq5U9JFCJHRtr8&tX~ z6a@w@zxiS%gG0_uk=W`VahiW&i_BF8%u-naee2G+b%;3UZf=kMEZEluig1+Gmbs2S zR4F;HzB@8=xgoz7CLQq)V#;Rm*(9K7h%#x|G`o-xilRyw&Co4ENlhExih0`$ddnYrUC{Xf*rQY_&FJ4!oevzAXJ_ zC-aJs-7yNGDjPE--?Z>XCSMEz!3G=>6x)CnkcraFW;Bc>;|3xD@i&1b-W;b3cp8m9 zkl}?LSw=DJyk0j8kA_uCyjEh*%Xp@@Mi@RKgoy)^6sLKIB69I@TA@H`3uGUrz@mZK z%H2nW;2PGdf)vg5xxsppk+m&z4b<>iN$ki7ib)WTYl9y>XB+&~ux$id6FQdyLD3!^ zU_8(da6q4;3|3Wi&l%0aGm`B*AML?ZD*Lc;WaGjdOFw2Z0iM2HC-T^~`B5OTC4{K} zwajz6hosbLe7}p})|LB8p!dW;u_q+SK*K{)`+j&awXSSvAE4G3uP-=uR zFHXjq#~ljB>GRU=HLhjfc;d+SA(1t=NPZ(M^~_2EV*b{5IOr!HlF_Zf8Y;cRK>;U! zd?}iLg2PA zx2dk2-7*m{oSXS7L%3(z-q#ei((5|-I2BnCF_|U{*SJ184&%|z^DHFwM+%NxeFc1$2%8Xcp2g>khN%2#d>H7^p?VUVvMyh)e8 zu2m1$`=X%UsnCwnq~qWc^F2UB#GoCI$O1Uolv&V`r+P)o_M3>GM zLQu~Yp$dnpWm0iYAl)a0y_>|wXsT{r2^$V-xaV9@IseK5;CPrx3-~z;Zt7gh-Z8qG z+Ay;eIe!ISL=WMsCWUtFQ7r(0iQCC@G{rZk!jFs!r+}b?bKovV^1!eW8sFy$q!}9V zGfL1iC#uv54jQgYu}Sne`G$p5e*aeRhiwSZt%n$060cwmiJKtLlJt)FF@<4hhXv#z z@4qk7)(wlUzGraiu2gi(OzsU?wuRJtIT^%dPBBhMv$ceT;WX#C7q9o} zC^&SHU?T2WeLvks>e2zYEWjDD}75bECp|&leRK19xfSG$8Y$~dZ zJhjco$;Q24;?Or~P8oWpZ{{eQp+m{KYQ_$1mUtegMHCva+EhXV+5}l~HIa&R6NehJ zlr=rt#rki;DU&$GhJ`Z`Z)$t7w+c~P^3zu0BpN#ATTxbbYdU6KB9>z1z7-$(P5Nv9 z%+mTbrNk~G|7m^FUWijIh3ydn-WlUvZ`q~2HnyB1XEX}d^Zx?A+IeimYzrp{rpx*5 zxgetLK+3UVSA?nX6>f0_>5hxQ3EuwcEN^y2jyYB|*?El2Yq^!MA?& zSGW_ZtNP0enAl6wKXGUA8#F#9ZSofh{sF9RxoE+5(P(P;+&Aw^m+cU29URF>_xN~3 z)LcYSYf)RjbL08rJ`GLv5f5k5XUohaOx#KkRI+v{Fxy_Uk$u z31mInV#by3gsUKeU%Z!v^?cL+gb^#Li)3T<{VoFZwe=Wl*xj>+3ZIP%U6Rd-Izc7D z-MS8Z7bjbG8@Va?Rj{(J#evm%v1#bT(}N#5)&0*O-sYWcdRpY?R+AmW zF3@lqDt;&Kq>;2{?~*tC_S>O=3+GN>V;QsPL$gwT+4(F1nMh5d<<@(8jFt1X`elYH z?+%9AKw`iKCwOFrH%VpNLVT}p*?v8@-HPp1gIPPI7a$0@O{4jsxk5`liS zo7TNNq@ww)6G59NahlAp2nBCoak^MZo<|0lxkPiy4pR8}lYThv_tMClscFbkB zP4Lruy*w)MFhmc$R%AU!W7Z6Ecab)Y>5l1AqfB`c+?Czt1sxR<&9Lwx{F0+fw-xd&f8fvre?7%FnOjuH9k7BPPtq!-MYTBcL4al15J%vf)H&CXSD{+`ERuA6?w=)dcH-d^OG;amB*SiHI@oEuQiv4{dRiF z56XN%&QJ^G0W!`U&|mA@lDkS`C9WK95j*m})v&h8Y1ZET;D;dm+ND^D0GW>)zlfxR zKZe@p)0FD}p`R#|1+|LB2wntEqM)DQZ?*NE8Ji#KM}6Kv_L7C@a}Rqd&4|6ES{9aN z?g*!9_clF{vGgd6T#Lk$syM#nH|7u(VSmE~bsnH_J~hdeW7r?xMv<;0InmR_AJSV( zMq6Fi`fDsq7fZN@D3kTd;ar!cO5Qw&k^P_rqgY6@TO?gP$dwCo!+J@T+D!)9(hqu9LN*!su>KV zwNp}@poZxEO+|w5jckgJi8RL1KD)z-v_YH;yHqj22~dWsot+s8BA|`q)MK%Alj+>GOL5LlDp&o5_#SdflCGfFysAJ% zD+DBdaIWKs+bJddG0B6}TEB5M$TYaW{)5;)!YPv`$>{i*&ngE_xcvry(PMum0CHlu zNYn}4%V4F~N@w^sK>G*07h0u6Dzh@}zI4BRjg&vK8@eY|q-xgZQ)(`Cnkr|+SQ;-R|NXT^My^+H>kSRB`K zbogWDs(7v?l&XY5=Z$7mNFYhe_X(3R!m->j6-u*I#bDbw`f=LFxLvd3+D6`SplgqI zk%Y(6u@FXu6eu%+_xXB~Pb>6i3I$tE*;>8$deE8|2*x4*Xyg<9a!)P$zWovuj%<4o zJpi38=e}On-#CG6VCN(FI*h#vM;U_kZSwgYZU=|1D|}i* zQqUS1r=p_wG|d}DmoGeiGCLNh_{=Kpca9LMh7@7V{_-@Z>v#fh`lZK&cj%~_h$EEV)H+7?oYI+gfQKK=I2}PgiPxc>96pDgZRNO%h$k@XmcAs{ zP$CQ_!V5E(C!*>G>OWg}+x>DI>nE7=52Sfv z^>oHC?I^*{g?@5v^|0zhO5$Rg5>&x41Q+5lUp4T7-)7Ew^yHHcx|4p^w6_Le#fJsJ zMxH~U=RQQ1%dZfBekcn;F3um@XUSC|&y-L+w>^QPWlyhUq z%!`@NR9)BoJM*}*&c>K@cM0hx9zFQX+K%}Te|mekyB_9V=iAc}T`%|#qdGwQw)F>B zttw?36OS2AFFr zFCP*Q9lxYe=oiHiV9^A{5|1oPX`81io7=fmy=8$$Q(;4*57UaRZF~n;;qz^6mp6$l z`yQEd)T7s$TifWV;&}Y|Ew_{N5|JuYvqdM(Wb|GtVgfSG4ed6$YbfUA+HMf+)jcn3 zmYG_y)+aAg9S;(mzV^t)GNlkP*r3mx*iGv%hS!_uA)rx=bB_iyU>uGqtvgJIbhDX0 zc0EC1z9AGDEy~0OTB^=z1Z9dF?1Xu99zkt5LL(IyRa)RVK*6nRRl}+{J zSd3$q@UEe8lz_YHx5U*eMxB|U7b{2Z0NT?nXG+y8P?hv})#WJRxAgR)D)ZvmG4Ysi zOiiTp%-=_v5A9vRq*cm&=5RM-z*RJhD-~`zXK@ur2${{I9%(uQUAg;$+*Ta z)sTJ<`FCSW9r@5TOXIt3FmkrU($+otx9HI= zEu5Rk{BVpi~ndwV+-swI>9jNpCXW^i~+Cb;1EuBgCBHSOtuLi1TiTcL{+g$^%FF;v#ivy%t zfkiF@_}t4=^QsjRjd`mywg<~aW!9}T!S+QKsOstoeWd}gH|PKwOblDw^quEy`Vyyv zwn^7=4YZ4Vdt}(pVH*GihXbRkc%9ji^m$4qZUJQ~uyI^XlG@$AZkf_$d>;RPD>GH7 zJNLkD{*r35FUcccHaq-xPSQgp4WH<(HCs6r+fkSVxb<#rB)KNmRxj$lUfFSFbf7CR zDr`}zK2~YD0esJI?u{Ck#20vErw4p|b=rJyC4Shd{*J@^=edEbH|g6HsU&=SfoST3{ogw6 zbV~tw$&^|K$}*aY25pr3b85fz(5(_(r#+Wb3nCF?z(P9e?K0{3o>j z`gO{|!15urH^+}J=wx^03)kE^yM9(0GY=@cv}O7ycm43^{p@AVHhkY~?@yTE2F#nN zgXf1pDx>ea$LFJlFz@aDAUST^Lx_f7{?EFY{-C@86X@ev?>AC<7-%195vsHKHMX}d zcwv{<|JIbr0JI+Y-J&;lntYuKd!U%-_HVa^zrex&zdoVYfIm|}vE$vnf(NA-soHbt zzwo1fgPd|7Kv*9q^l9PC!jWr3fN`AiSnK^8k?(tK*f@ndW}yD}(&JxqUA|_JonJU2 zbt?5snB?P_;AY_~pf(dN>8|S~Q@%fvh<*fV|43l_{}=PmdBp=HktCn|tS)$P;`H>{ zO|LF%YzMCy>z>~GeLMq2<(N%Bw&7>5jNY&dz+GRQy zZSlayk+1Byks7g+eNqr|%<*X4Ut|AosKhs^3GmUhl&J3aIPQ!&CSe$EJ(?Mc<_3m3 ztnc3WkM0S`KPUc^2j?fivEV0ro+OAhQ9C`J_>MrA^JTE!6vqCyYSUb=35UL) z+>}M5PwB1bo_{&!#K=#<76DOH5py%>@Lz9xv%b&H;(U|SUzoXkPr&_&i=mm-eNMyicqx;q0o6<#}7Td{@ zUY2_e`|leNeah4z+cg}{+%K_8akr_fZe; zoc8(Jj&WUO>}CvSZ~aVLz=M2TC`g>Bi4W!6g#F6z|MeZzp47ZMB(C7jFm`H|uaa-I zZ>8<*QA&S+r_`|4zrOb0*SKM0v%E5v4+ECcqAV}+qfldp-DIffeB>Yc#aTIk=XQrW zVt-=D{*y7Zy}Yf{(e2cC>d*?YLpiW8vHv4OYtSkH8dZ}=NhS&cniT6@5gfjI%o9$ zN7Uu!Y#i5GAr?3K%O>{v+Rsx!BagE@3vat2sElUAm?oR!kpX1y|v164i#(_L;63d-aC?_g(yV zu{eIo`Bn@-W}%v4s2r!}iiU5a)oh|`PWk@4PjPv@^J-dFD4&?_2ayoOcTlz=8b63% z$T>UC+NZ7Y--l{c-tqw<)Z2f883GJ5@qBtY5ZP2>#Q>_czJEPDpE#k}s)y674%~sO zek=W5Y)_}%Cbf|zsy6*fOVE=C0h;jjI9o{o?Qb+<8iCS$bG)oFYY2F|38$Z1L~j^G z4-66hz>4zpI?&mBdwxOVXv{ov0RMXf0Xz+0aO;+uVP83p#?_iMt^OKE1m~nZ{1yh- zU1)gbMTOPko*~xR!PvPx)&nH{FsF}a8voXhjksey-r|E6CTtG@jzYQJs zc3pFu4Xt+?5yVvwdJ>l|4YaGYbNcNlH|?v2Y7)Nh-}1%AogcF=Yw!F8WyfGQpqN}b zu-z@`XrLSyPPkA1{;pik##ZYIip)omKPAM^9v&+KgscDLJRrUTXae`Z z_GEL_5aVLiA;ywV|3#wP%pRZ6V&6|tx{DmPcr?r+JMlq~_#RU(AU_(zMN(C0z@i>5 z1{!AlC~ELCHK-O)=g$>j(TelC9oN@S$@lT6gx&P?x4kA{L!#BN zBGno-Vj@$_q-XvC0Z^m)`10Dm=?%YtfyN+UTky6*gdPKa3{qm*r)u78K&G@bv_`DP z2|jc@K`b#(3gJ-GpfkX2_o=KHnH{g{(Fj=wuyfSb6_3ot2*<2nXz}W7vrZ{`d;UrP zCaN!gki7>osXl;ZTuka>d}7SEEM|Bdo;l}Hpnq7+nCDXkjUd@|Wck7eR7(En@RYS% z`AkJnvfZzk4Q_#edj+JKSE+2VK33!(V+|S=lWuWrYSe;8+-6Q{LFZ)h)3gq&*%#Z- z_09n2C{R9F3{7BpnAmdrEp}^4iFJ0FAt=2KuX*0(R&=MR8qY-}?Qy=p!DH%I3` zhA-Xv0a1BEU6U>VXh)?x{r)*re07+M{m2y;pRh_u+;G)pj$zhVc~X6=-lFFE#s#}X zSaAB|gZjT;Q-kfCzZF;DpP3;&|Ex~_AA|hoM4Y|Xk8aTHniE7ADr_QHlmvZjRr85a z?(J1+K5{0$Ix)mPz)O7ylcZ%x4EHX;1#*o#0FB~PfcGDp=OU_nF0eB=^jB<6(|2y` zn2K3|dvAgO0VFhE-4iN1tL|AmS{*q%E-KzpT|Rep#5bPdliy`CBg$!UQRN;ZP#H_P z^upn(;_o$3r!yNL-@JQs>SWcgwA$`20|rFi;SOW`*3setpk=Tg*XMPuaJ1TrfGzF$ z2-#O`=fO0GTm5s3{0Ww63 zZnd!yHy~B&lsE4(Xyun4i!|NFIVN})$PM7Bjc+H!|JzY$j!_z^kN+;H0Jpi@9#9fE@T9;`+?4;)zq@UK^H+}l&2QcmkX+KG zcVQW&+IA?T;aQ*A7PeXCWrvtZpH_y^aQfhP$Sk?2VwDKgZ@@j9_>tEAy?x>`DEA?R z<4sfZF<^@-o2VE_NE*P4fD?8(S=l=nHu0NUp literal 0 HcmV?d00001 From 55904eea1126161c934f2d9e5244454f8d861c4b Mon Sep 17 00:00:00 2001 From: kdoroszko-splunk Date: Tue, 10 Sep 2024 12:57:25 +0200 Subject: [PATCH 2/9] docs: update runbooks/backporting-changes-to-older-version.md (#334) This PR just adds information about fixing tags in case they are mixed. --- runbooks/backporting-changes-to-older-version.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/runbooks/backporting-changes-to-older-version.md b/runbooks/backporting-changes-to-older-version.md index 622ffa186..4e94084ad 100644 --- a/runbooks/backporting-changes-to-older-version.md +++ b/runbooks/backporting-changes-to-older-version.md @@ -43,4 +43,10 @@ This runbook shows a real example of backporting changes correlated to `ta-autom - click `Publish release` - check if the release is available, and it points at the proper version - https://github.com/splunk/addonfactory-workflow-addon-release/tags tag `v4.16` should point to the same commit as tag `v4.16.15` tags + Backporting changes will cause that the tag `v4` will point at the same commit as `v4.16`. To make it proper one has to either re-trigger the workflow which produced the latest tag (`v4.17.1`) or resolve that manually: + ``` + git fetch --tags -f + git tag -f v4 v4.17.1 + git push -f --tags + ``` - run the workflow for some TA using v4.16 to verify if the pipeline works as expected. \ No newline at end of file From 908de12966e7c169ab4c7d7bb4dabff78576ac49 Mon Sep 17 00:00:00 2001 From: dvarasani-crest <151819886+dvarasani-crest@users.noreply.github.com> Date: Tue, 29 Oct 2024 16:51:12 +0530 Subject: [PATCH 3/9] feat: add btool check (#316) Added workflow `run btool check` to validate the configuration in the TA using btool check Ref: https://splunk.atlassian.net/browse/ADDON-70489 Test workflow runs: - https://github.com/splunk/splunk-add-on-for-google-workspace/actions/runs/10631152841 - https://github.com/splunk/splunk-add-on-for-servicenow/actions/runs/10919108085 --------- Co-authored-by: mkolasinski-splunk <105011638+mkolasinski-splunk@users.noreply.github.com> Co-authored-by: Artem Rys Co-authored-by: kdoroszko-splunk Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: kgwizdz-splunk <163291633+kgwizdz-splunk@users.noreply.github.com> Co-authored-by: Adam Wownysz <150446614+awownysz-splunk@users.noreply.github.com> Co-authored-by: Marcin Bruzda <94437843+mbruzda-splunk@users.noreply.github.com> Co-authored-by: harshilgajera-crest <69803385+harshilgajera-crest@users.noreply.github.com> --- .../workflows/reusable-build-test-release.yml | 199 +++++++++++++++++- README.md | 25 +++ 2 files changed, 223 insertions(+), 1 deletion(-) diff --git a/.github/workflows/reusable-build-test-release.yml b/.github/workflows/reusable-build-test-release.yml index 5a0f81e44..b55fd07fc 100644 --- a/.github/workflows/reusable-build-test-release.yml +++ b/.github/workflows/reusable-build-test-release.yml @@ -33,7 +33,7 @@ on: required: false description: "branch for k8s manifests to run the tests on" type: string - default: "v3.0.5" + default: "v3.1.0" scripted-inputs-os-list: required: false description: "list of OS used for scripted input tests" @@ -989,6 +989,203 @@ jobs: swagger_name=swagger_$(basename "$BUILD_NAME" .spl) aws s3 sync "${{ steps.download-openapi.outputs.download-path }}/tmp/restapi_client/" "s3://${{ needs.setup-workflow.outputs.s3_bucket_k8s }}/ta-apps/$swagger_name/" --exclude "*" --include "README.md" --include "*swagger_client*" --only-show-errors + run-btool-check: + if: ${{ !cancelled() && needs.build.result == 'success' && needs.test-inventory.outputs.knowledge == 'true' && needs.setup-workflow.outputs.execute-knowledge-labeled == 'true' }} + needs: + - build + - test-inventory + - setup + - meta + - setup-workflow + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + splunk: ${{ fromJson(needs.meta.outputs.matrix_latestSplunk) }} + sc4s: ${{ fromJson(needs.meta.outputs.matrix_supportedSC4S) }} + container: + image: ghcr.io/splunk/workflow-engine-base:4.1.0 + env: + ARGO_SERVER: ${{ needs.setup.outputs.argo-server }} + ARGO_HTTP1: ${{ needs.setup.outputs.argo-http1 }} + ARGO_SECURE: ${{ needs.setup.outputs.argo-secure }} + ARGO_BASE_HREF: ${{ needs.setup.outputs.argo-href }} + ARGO_NAMESPACE: ${{ needs.setup.outputs.argo-namespace }} + SPLUNK_VERSION_BASE: ${{ matrix.splunk.version }}${{ secrets.OTHER_TA_REQUIRED_CONFIGS }} + TEST_TYPE: "btool" + TEST_ARGS: "" + permissions: + actions: read + deployments: read + contents: read + packages: read + statuses: read + checks: write + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + - name: capture start time + id: capture-start-time + run: | + echo "start_time=$(date +%s)" >> "$GITHUB_OUTPUT" + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ secrets.AWS_DEFAULT_REGION }} + - name: Read secrets from AWS Secrets Manager into environment variables + id: get-argo-token + run: | + ARGO_TOKEN=$(aws secretsmanager get-secret-value --secret-id "${{ needs.setup-workflow.outputs.argo_token_secret_id_k8s }}" | jq -r '.SecretString') + echo "argo-token=$ARGO_TOKEN" >> "$GITHUB_OUTPUT" + - name: create job name + id: create-job-name + shell: bash + run: | + RANDOM_STRING=$(head -3 /dev/urandom | tr -cd '[:lower:]' | cut -c -4) + JOB_NAME=${{ needs.setup.outputs.job-name }}-${RANDOM_STRING} + JOB_NAME=${JOB_NAME//TEST-TYPE/${{ env.TEST_TYPE }}} + JOB_NAME=${JOB_NAME//[_.]/-} + JOB_NAME=$(echo "$JOB_NAME" | tr '[:upper:]' '[:lower:]') + echo "job-name=$JOB_NAME" >> "$GITHUB_OUTPUT" + - name: run-btool-check + id: run-btool-check + timeout-minutes: 10 + env: + ARGO_TOKEN: ${{ steps.get-argo-token.outputs.argo-token }} + uses: splunk/wfe-test-runner-action@v5.0 + with: + splunk: ${{ matrix.splunk.version }}${{ secrets.OTHER_TA_REQUIRED_CONFIGS }} + test-type: ${{ env.TEST_TYPE }} + test-args: "" + job-name: ${{ steps.create-job-name.outputs.job-name }} + labels: ${{ needs.setup.outputs.labels }} + workflow-tmpl-name: ${{ needs.setup.outputs.argo-workflow-tmpl-name }} + workflow-template-ns: ${{ needs.setup.outputs.argo-namespace }} + addon-url: ${{ needs.setup.outputs.addon-upload-path }} + addon-name: ${{ needs.setup.outputs.addon-name }} + sc4s-version: ${{ matrix.sc4s.version }} + sc4s-docker-registry: ${{ matrix.sc4s.docker_registry }} + k8s-manifests-branch: ${{ needs.setup.outputs.k8s-manifests-branch }} + - name: Read secrets from AWS Secrets Manager again into environment variables in case credential rotation + id: update-argo-token + if: ${{ !cancelled() }} + run: | + ARGO_TOKEN=$(aws secretsmanager get-secret-value --secret-id "${{ needs.setup-workflow.outputs.argo_token_secret_id_k8s }}" | jq -r '.SecretString') + echo "argo-token=$ARGO_TOKEN" >> "$GITHUB_OUTPUT" + - name: calculate timeout + id: calculate-timeout + run: | + start_time=${{ steps.capture-start-time.outputs.start_time }} + current_time=$(date +%s) + remaining_time_minutes=$(( 10-((current_time-start_time)/60) )) + echo "remaining_time_minutes=$remaining_time_minutes" >> "$GITHUB_OUTPUT" + - name: Check if pod was deleted + id: is-pod-deleted + timeout-minutes: ${{ fromJson(steps.calculate-timeout.outputs.remaining_time_minutes) }} + if: ${{ !cancelled() }} + shell: bash + env: + ARGO_TOKEN: ${{ steps.update-argo-token.outputs.argo-token }} + run: | + set -o xtrace + if argo watch ${{ steps.run-btool-check.outputs.workflow-name }} -n workflows | grep "pod deleted"; then + echo "retry-workflow=true" >> "$GITHUB_OUTPUT" + fi + - name: Cancel workflow + env: + ARGO_TOKEN: ${{ steps.get-argo-token.outputs.argo-token }} + if: ${{ cancelled() }} + run: | + cancel_response=$(argo submit -v -o json --from wftmpl/${{ needs.setup.outputs.argo-cancel-workflow-tmpl-name }} -l workflows.argoproj.io/workflow-template=${{ needs.setup.outputs.argo-cancel-workflow-tmpl-name }} --argo-base-href '' -p workflow-to-cancel=${{ steps.run-btool-check.outputs.workflow-name }}) + cancel_workflow_name=$( echo "$cancel_response" |jq -r '.metadata.name' ) + cancel_logs=$(argo logs --follow "$cancel_workflow_name" -n workflows) + if echo "$cancel_logs" | grep -q "workflow ${{ steps.run-btool-check.outputs.workflow-name }} stopped"; then + echo "Workflow ${{ steps.run-btool-check.outputs.workflow-name }} stopped" + else + echo "Workflow ${{ steps.run-btool-check.outputs.workflow-name }} didn't stop" + exit 1 + fi + - name: Retrying workflow + id: retry-wf + shell: bash + env: + ARGO_TOKEN: ${{ steps.update-argo-token.outputs.argo-token }} + if: ${{ !cancelled() }} + run: | + set -o xtrace + set +e + if [[ "${{ steps.is-pod-deleted.outputs.retry-workflow }}" == "true" ]] + then + WORKFLOW_NAME=$(argo resubmit -v -o json -n workflows "${{ steps.run-btool-check.outputs.workflow-name }}" | jq -r .metadata.name) + echo "workflow-name=$WORKFLOW_NAME" >> "$GITHUB_OUTPUT" + argo logs --follow "${WORKFLOW_NAME}" -n workflows || echo "... there was an error fetching logs, the workflow is still in progress. please wait for the workflow to complete ..." + else + echo "No retry required" + argo wait "${{ steps.run-btool-check.outputs.workflow-name }}" -n workflows + argo watch "${{ steps.run-btool-check.outputs.workflow-name }}" -n workflows | grep "btool-check" + fi + - name: check workflow status + id: check-workflow-status + env: + ARGO_TOKEN: ${{ steps.update-argo-token.outputs.argo-token }} + shell: bash + if: ${{ !cancelled() }} + run: | + set +e + # shellcheck disable=SC2157 + if [ -z "${{ steps.retry-wf.outputs.workflow-name }}" ]; then + WORKFLOW_NAME=${{ steps.run-btool-check.outputs.workflow-name }} + else + WORKFLOW_NAME="${{ steps.retry-wf.outputs.workflow-name }}" + fi + ARGO_STATUS=$(argo get "${WORKFLOW_NAME}" -n workflows -o json | jq -r '.status.phase') + while [ "$ARGO_STATUS" == "Running" ] || [ "$ARGO_STATUS" == "Pending" ] + do + echo "... argo Workflow ${WORKFLOW_NAME} is running, waiting for it to complete." + argo wait "${WORKFLOW_NAME}" -n workflows || true + ARGO_STATUS=$(argo get "${WORKFLOW_NAME}" -n workflows -o json | jq -r '.status.phase') + done + echo "Status of workflow:" "$ARGO_STATUS" + echo "workflow-status=$ARGO_STATUS" >> "$GITHUB_OUTPUT" + if [ "$ARGO_STATUS" == "Succeeded" ]; then + exit 0 + else + exit 1 + fi + - name: pull artifacts from s3 bucket + if: ${{ !cancelled() && steps.check-workflow-status.outputs.workflow-status != 'Succeeded' }} + run: | + echo "pulling artifacts" + aws s3 cp s3://${{ needs.setup.outputs.s3-bucket }}/artifacts-${{ steps.create-job-name.outputs.job-name }}/${{ steps.create-job-name.outputs.job-name }}.tgz ${{ needs.setup.outputs.directory-path }}/ + tar -xf ${{ needs.setup.outputs.directory-path }}/${{ steps.create-job-name.outputs.job-name }}.tgz -C ${{ needs.setup.outputs.directory-path }} + - name: pull logs from s3 bucket + if: ${{ !cancelled() && steps.check-workflow-status.outputs.workflow-status != 'Succeeded' }} + run: | + # shellcheck disable=SC2157 + if [ -z "${{ steps.retry-wf.outputs.workflow-name }}" ]; then + WORKFLOW_NAME=${{ steps.run-btool-check.outputs.workflow-name }} + else + WORKFLOW_NAME="${{ steps.retry-wf.outputs.workflow-name }}" + fi + echo "pulling logs" + mkdir -p ${{ needs.setup.outputs.directory-path }}/argo-logs + aws s3 cp s3://${{ needs.setup.outputs.s3-bucket }}/workflows/${WORKFLOW_NAME}/ ${{ needs.setup.outputs.directory-path }}/argo-logs/ --recursive + - uses: actions/upload-artifact@v4 + if: ${{ !cancelled() && steps.check-workflow-status.outputs.workflow-status != 'Succeeded' }} + with: + name: archive splunk ${{ matrix.splunk.version }}${{ secrets.OTHER_TA_REQUIRED_CONFIGS }} ${{ env.TEST_TYPE }} tests artifacts + path: | + ${{ needs.setup.outputs.directory-path }}/test-results + - uses: actions/upload-artifact@v4 + if: ${{ !cancelled() && steps.check-workflow-status.outputs.workflow-status != 'Succeeded' }} + with: + name: archive splunk ${{ matrix.splunk.version }}${{ secrets.OTHER_TA_REQUIRED_CONFIGS }} ${{ env.TEST_TYPE }} tests logs + path: | + ${{ needs.setup.outputs.directory-path }}/argo-logs + run-knowledge-tests: if: ${{ !cancelled() && needs.build.result == 'success' && needs.test-inventory.outputs.knowledge == 'true' && needs.setup-workflow.outputs.execute-knowledge-labeled == 'true' }} needs: diff --git a/README.md b/README.md index 3a801f20c..b5f72b9bf 100644 --- a/README.md +++ b/README.md @@ -443,6 +443,31 @@ test_cim_output.txt test_check_unicode_output.txt ``` +# run-btool-check + +**Description:** + +- This stage validates the configuration of the TA using btool + +**Action used:** +- No action used + +**Pass/fail behaviour:** + +- The stage is expected to fail only if there are errors reported by btool check. + +**Troubleshooting steps for failures if any:** + +- btool-output.txt can be used for identifying the errors reported by the btool check + +- User can validate the configuration by executing btool check in local env using `$SPLUNK_HOME/bin/splunk btool check | grep "Splunk_TA_example"`. + +**Artifacts:** + +``` +btool-output.txt +``` + # run-knowledge-tests **Description:** From 25a1ffa44fd8756b5877668d03fb9f2eb57129d7 Mon Sep 17 00:00:00 2001 From: dvarasani-crest <151819886+dvarasani-crest@users.noreply.github.com> Date: Wed, 4 Dec 2024 13:18:22 +0530 Subject: [PATCH 4/9] feat: run both ucc and legacy modinput tests (#343) This PR adds the feature to run the `ucc_modinput_functional` tests seperately from `modinput_functional` (Legacy). Reference: https://splunk.atlassian.net/browse/ADDON-75556 Test run: https://github.com/splunk/splunk-add-on-for-salesforce/actions/runs/11473918131 https://github.com/splunk/splunk-add-on-for-google-cloud-platform/actions/runs/12067263557 --------- Co-authored-by: mkolasinski-splunk <105011638+mkolasinski-splunk@users.noreply.github.com> Co-authored-by: Artem Rys Co-authored-by: kdoroszko-splunk Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: kgwizdz-splunk <163291633+kgwizdz-splunk@users.noreply.github.com> Co-authored-by: Adam Wownysz <150446614+awownysz-splunk@users.noreply.github.com> Co-authored-by: Marcin Bruzda <94437843+mbruzda-splunk@users.noreply.github.com> Co-authored-by: harshilgajera-crest <69803385+harshilgajera-crest@users.noreply.github.com> --- .github/pull_request_template.md | 16 + .github/workflows/build-test-release.yaml | 2 +- .../workflows/reusable-build-test-release.yml | 422 +++++++++++++++--- README.md | 57 ++- 4 files changed, 420 insertions(+), 77 deletions(-) create mode 100644 .github/pull_request_template.md diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 000000000..89f8b3859 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,16 @@ +### Description + +(PR description goes here) + +### Checklist + +- [ ] `README.md` has been updated or is not required +- [ ] push trigger tests +- [ ] manual release test +- [ ] automated releaes test +- [ ] pull request trigger tests +- [ ] schedule trigger tests +- [ ] workflow errors/warnings reviewed and addressed + +### Testing done +(for each selected checkbox, the corresponding test results link should be listed here) diff --git a/.github/workflows/build-test-release.yaml b/.github/workflows/build-test-release.yaml index ddc75c4bd..61404e99f 100644 --- a/.github/workflows/build-test-release.yaml +++ b/.github/workflows/build-test-release.yaml @@ -25,7 +25,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} pre-commit: - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 diff --git a/.github/workflows/reusable-build-test-release.yml b/.github/workflows/reusable-build-test-release.yml index b55fd07fc..374a79ecf 100644 --- a/.github/workflows/reusable-build-test-release.yml +++ b/.github/workflows/reusable-build-test-release.yml @@ -8,6 +8,12 @@ on: type: string default: >- [""] + ucc-modinput-marker: + required: false + description: 'Parallel run ucc mod_input marker' + type: string + default: >- + [""] ui_marker: required: false description: 'Parallel run ui marker' @@ -33,7 +39,7 @@ on: required: false description: "branch for k8s manifests to run the tests on" type: string - default: "v3.1.0" + default: "v3.2.0" scripted-inputs-os-list: required: false description: "list of OS used for scripted input tests" @@ -111,6 +117,7 @@ jobs: execute-knowledge-labeled: ${{ steps.configure-tests-on-labels.outputs.execute_knowledge_labeled }} execute-ui-labeled: ${{ steps.configure-tests-on-labels.outputs.execute_ui_labeled }} execute-modinput-labeled: ${{ steps.configure-tests-on-labels.outputs.execute_modinput_functional_labeled }} + execute-ucc-modinput-labeled: ${{ steps.configure-tests-on-labels.outputs.execute_ucc_modinput_functional_labeled }} execute-scripted_inputs-labeled: ${{ steps.configure-tests-on-labels.outputs.execute_scripted_inputs_labeled }} execute-requirement-labeled: ${{ steps.configure-tests-on-labels.outputs.execute_requirement_test_labeled }} s3_bucket_k8s: ${{ steps.k8s-environment.outputs.s3_bucket }} @@ -141,7 +148,7 @@ jobs: run: | set +e declare -A EXECUTE_LABELED - TESTSET=("execute_knowledge" "execute_ui" "execute_modinput_functional" "execute_scripted_inputs" "execute_requirement_test") + TESTSET=("execute_knowledge" "execute_ui" "execute_modinput_functional" "execute_ucc_modinput_functional" "execute_scripted_inputs" "execute_requirement_test") for test_type in "${TESTSET[@]}"; do EXECUTE_LABELED["$test_type"]="false" done @@ -289,7 +296,7 @@ jobs: uses: fsfe/reuse-action@v1.1 lint: - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 @@ -335,27 +342,18 @@ jobs: modinput_functional: ${{ steps.testset.outputs.modinput_functional }} requirement_test: ${{ steps.testset.outputs.requirement_test }} scripted_inputs: ${{ steps.testset.outputs.scripted_inputs }} - ucc_modinput_functional: ${{ steps.modinput-version.outputs.ucc_modinput_tests }} + ucc_modinput_functional: ${{ steps.testset.outputs.ucc_modinput_functional }} steps: - uses: actions/checkout@v4 - id: testset name: Check available test types run: | find tests -type d -maxdepth 1 -mindepth 1 | sed 's|^tests/||g' | while read -r TESTSET; do echo "$TESTSET=true" >> "$GITHUB_OUTPUT"; echo "$TESTSET::true"; done - - id: modinput-version - name: Check modinput tests version - run: | - CENTAURS_MODINPUT_TESTS_CHECK_DIR="tests/modinput_functional/centaurs" - ucc_modinput_tests="true" - if [ -d "$CENTAURS_MODINPUT_TESTS_CHECK_DIR" ]; then - ucc_modinput_tests="false" - fi - echo "ucc_modinput_tests=$ucc_modinput_tests" >> "$GITHUB_OUTPUT" run-unit-tests: name: test-unit-python3-${{ matrix.python-version }} if: ${{ needs.test-inventory.outputs.unit == 'true' }} - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 needs: - test-inventory strategy: @@ -404,15 +402,15 @@ jobs: junit_xml_file=$(find "test-results" -name "*.xml" -type f 2>/dev/null | head -n 1) if [ -n "$junit_xml_file" ]; then - total_tests=$(xmllint --xpath 'sum(//testsuite/@tests)' "$junit_xml_file") - failures=$(xmllint --xpath 'sum(//testsuite/@failures)' "$junit_xml_file") - errors=$(xmllint --xpath 'sum(//testsuite/@errors)' "$junit_xml_file") - skipped=$(xmllint --xpath 'sum(//testsuite/@skipped)' "$junit_xml_file") - passed=$((total_tests - failures - errors - skipped)) - echo -e "| Total Tests | Passed Tests | Failed Tests | Errored Tests | Skipped Tests |\n| ----------- | ------------ | ------------ | ------------- | ------------- |\n| $total_tests | $passed | $failures | $errors | $skipped |" >> "$GITHUB_STEP_SUMMARY" + total_tests=$(xmllint --xpath "count(//testcase)" "$junit_xml_file") + failures=$(xmllint --xpath "count(//testcase[failure])" "$junit_xml_file") + errors=$(xmllint --xpath "count(//testcase[error])" "$junit_xml_file") + skipped=$(xmllint --xpath "count(//testcase[skipped])" "$junit_xml_file") + passed=$((total_tests - failures - errors - skipped)) + echo -e "| Total Tests | Passed Tests | Failed Tests | Errored Tests | Skipped Tests |\n| ----------- | ------------ | ------------ | ------------- | ------------- |\n| $total_tests | $passed | $failures | $errors | $skipped |" >> "$GITHUB_STEP_SUMMARY" else - echo "no XML File found, exiting" - exit 1 + echo "no XML File found, exiting" + exit 1 fi - uses: actions/upload-artifact@v4 if: success() || failure() @@ -472,15 +470,15 @@ jobs: junit_xml_file=$(find "test-results" -name "*.xml" -type f 2>/dev/null | head -n 1) if [ -n "$junit_xml_file" ]; then - total_tests=$(xmllint --xpath 'sum(//testsuite/@tests)' "$junit_xml_file") - failures=$(xmllint --xpath 'sum(//testsuite/@failures)' "$junit_xml_file") - errors=$(xmllint --xpath 'sum(//testsuite/@errors)' "$junit_xml_file") - skipped=$(xmllint --xpath 'sum(//testsuite/@skipped)' "$junit_xml_file") - passed=$((total_tests - failures - errors - skipped)) - echo -e "| Total Tests | Passed Tests | Failed Tests | Errored Tests | Skipped Tests |\n| ----------- | ------------ | ------------ | ------------- | ------------- |\n| $total_tests | $passed | $failures | $errors | $skipped |" >> "$GITHUB_STEP_SUMMARY" + total_tests=$(xmllint --xpath "count(//testcase)" "$junit_xml_file") + failures=$(xmllint --xpath "count(//testcase[failure])" "$junit_xml_file") + errors=$(xmllint --xpath "count(//testcase[error])" "$junit_xml_file") + skipped=$(xmllint --xpath "count(//testcase[skipped])" "$junit_xml_file") + passed=$((total_tests - failures - errors - skipped)) + echo -e "| Total Tests | Passed Tests | Failed Tests | Errored Tests | Skipped Tests |\n| ----------- | ------------ | ------------ | ------------- | ------------- |\n| $total_tests | $passed | $failures | $errors | $skipped |" >> "$GITHUB_STEP_SUMMARY" else - echo "no XML File found, exiting" - exit 1 + echo "no XML File found, exiting" + exit 1 fi - uses: actions/upload-artifact@v4 if: success() || failure() @@ -489,7 +487,7 @@ jobs: path: test-results/* build: - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 needs: - validate-custom-version - setup-workflow @@ -652,7 +650,7 @@ jobs: with: name: artifact-openapi path: ${{ github.workspace }}/${{ steps.uccgen.outputs.OUTPUT }}/appserver/static/openapi.json - if: ${{ !cancelled() && needs.test-inventory.outputs.ucc_modinput_functional == 'true' && needs.test-inventory.outputs.modinput_functional == 'true' }} + if: ${{ !cancelled() && needs.test-inventory.outputs.ucc_modinput_functional == 'true' }} - name: artifact-splunk-base uses: actions/upload-artifact@v4 with: @@ -785,7 +783,7 @@ jobs: version: ${{ steps.BuildVersion.outputs.VERSION }} run-requirements-unit-tests: - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 needs: - build - test-inventory @@ -896,7 +894,7 @@ jobs: - build - test-inventory if: ${{ !cancelled() && needs.build.result == 'success' }} - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 outputs: argo-server: ${{ steps.test-setup.outputs.argo-server }} argo-http1: ${{ steps.test-setup.outputs.argo-http1 }} @@ -956,7 +954,7 @@ jobs: echo "k8s-manifests-branch=${{ inputs.k8s-manifests-branch }}" } >> "$GITHUB_OUTPUT" - uses: actions/download-artifact@v4 - if: ${{ needs.test-inventory.outputs.ucc_modinput_functional == 'true' && needs.test-inventory.outputs.modinput_functional == 'true'}} + if: ${{ needs.test-inventory.outputs.ucc_modinput_functional == 'true' }} id: download-openapi with: name: artifact-openapi @@ -977,7 +975,11 @@ jobs: export POETRY_HTTP_BASIC_SPLUNK_ADD_ON_UCC_MODINPUT_TEST_USERNAME=${{ secrets.SA_GH_USER_NAME }} export POETRY_HTTP_BASIC_SPLUNK_ADD_ON_UCC_MODINPUT_TEST_PASSWORD=${{ secrets.GH_TOKEN_ADMIN }} poetry install --only modinput - poetry run ucc-test-modinput -o ${{ steps.download-openapi.outputs.download-path }}/openapi.json -t ${{ steps.download-openapi.outputs.download-path }}/tmp/ + if [ -f "tests/ucc_modinput_functional/tmp/openapi.json" ]; then + poetry run ucc-test-modinput -o tests/ucc_modinput_functional/tmp/openapi.json -t ${{ steps.download-openapi.outputs.download-path }}/tmp/ + else + poetry run ucc-test-modinput -o ${{ steps.download-openapi.outputs.download-path }}/openapi.json -t ${{ steps.download-openapi.outputs.download-path }}/tmp/ + fi - name: upload-swagger-artifacts-to-s3 if: steps.download-openapi.conclusion != 'skipped' id: swaggerupload @@ -1125,7 +1127,7 @@ jobs: else echo "No retry required" argo wait "${{ steps.run-btool-check.outputs.workflow-name }}" -n workflows - argo watch "${{ steps.run-btool-check.outputs.workflow-name }}" -n workflows | grep "btool-check" + argo watch "${{ steps.run-btool-check.outputs.workflow-name }}" -n workflows | grep "test-btool" fi - name: check workflow status id: check-workflow-status @@ -1405,15 +1407,15 @@ jobs: junit_xml_path="${{ needs.setup.outputs.directory-path }}/test-results" junit_xml_file=$(find "$junit_xml_path" -name "*.xml" -type f 2>/dev/null | head -n 1) if [ -n "$junit_xml_file" ]; then - total_tests=$(xmllint --xpath 'sum(//testsuite/@tests)' "$junit_xml_file") - failures=$(xmllint --xpath 'sum(//testsuite/@failures)' "$junit_xml_file") - errors=$(xmllint --xpath 'sum(//testsuite/@errors)' "$junit_xml_file") - skipped=$(xmllint --xpath 'sum(//testsuite/@skipped)' "$junit_xml_file") - passed=$((total_tests - failures - errors - skipped)) - echo "splunk ${{ matrix.splunk.version }}${{ secrets.OTHER_TA_REQUIRED_CONFIGS }} |$total_tests |$passed |$failures |$errors | $skipped |${{steps.test_report.outputs.url_html}}" > job_summary.txt + total_tests=$(xmllint --xpath "count(//testcase)" "$junit_xml_file") + failures=$(xmllint --xpath "count(//testcase[failure])" "$junit_xml_file") + errors=$(xmllint --xpath "count(//testcase[error])" "$junit_xml_file") + skipped=$(xmllint --xpath "count(//testcase[skipped])" "$junit_xml_file") + passed=$((total_tests - failures - errors - skipped)) + echo "splunk ${{ matrix.splunk.version }}${{ secrets.OTHER_TA_REQUIRED_CONFIGS }} |$total_tests |$passed |$failures |$errors | $skipped |${{steps.test_report.outputs.url_html}}" > job_summary.txt else - echo "no XML File found, exiting" - exit 1 + echo "no XML File found, exiting" + exit 1 fi - name: Upload-artifact-for-github-summary uses: actions/upload-artifact@v4 @@ -1660,15 +1662,15 @@ jobs: junit_xml_path="${{ needs.setup.outputs.directory-path }}/test-results" junit_xml_file=$(find "$junit_xml_path" -name "*.xml" -type f 2>/dev/null | head -n 1) if [ -n "$junit_xml_file" ]; then - total_tests=$(xmllint --xpath 'sum(//testsuite/@tests)' "$junit_xml_file") - failures=$(xmllint --xpath 'sum(//testsuite/@failures)' "$junit_xml_file") - errors=$(xmllint --xpath 'sum(//testsuite/@errors)' "$junit_xml_file") - skipped=$(xmllint --xpath 'sum(//testsuite/@skipped)' "$junit_xml_file") - passed=$((total_tests - failures - errors - skipped)) - echo "splunk ${{ matrix.splunk.version }}${{ secrets.OTHER_TA_REQUIRED_CONFIGS }} |$total_tests |$passed |$failures |$errors |$skipped |${{steps.test_report.outputs.url_html}}" > job_summary.txt + total_tests=$(xmllint --xpath "count(//testcase)" "$junit_xml_file") + failures=$(xmllint --xpath "count(//testcase[failure])" "$junit_xml_file") + errors=$(xmllint --xpath "count(//testcase[error])" "$junit_xml_file") + skipped=$(xmllint --xpath "count(//testcase[skipped])" "$junit_xml_file") + passed=$((total_tests - failures - errors - skipped)) + echo "splunk ${{ matrix.splunk.version }}${{ secrets.OTHER_TA_REQUIRED_CONFIGS }} |$total_tests |$passed |$failures |$errors |$skipped |${{steps.test_report.outputs.url_html}}" > job_summary.txt else - echo "no XML File found, exiting" - exit 1 + echo "no XML File found, exiting" + exit 1 fi - name: Upload-artifact-for-github-summary uses: actions/upload-artifact@v4 @@ -1937,15 +1939,15 @@ jobs: junit_xml_path="${{ needs.setup.outputs.directory-path }}/test-results" junit_xml_file=$(find "$junit_xml_path" -name "*.xml" -type f 2>/dev/null | head -n 1) if [ -n "$junit_xml_file" ]; then - total_tests=$(xmllint --xpath 'sum(//testsuite/@tests)' "$junit_xml_file") - failures=$(xmllint --xpath 'sum(//testsuite/@failures)' "$junit_xml_file") - errors=$(xmllint --xpath 'sum(//testsuite/@errors)' "$junit_xml_file") - skipped=$(xmllint --xpath 'sum(//testsuite/@skipped)' "$junit_xml_file") - passed=$((total_tests - failures - errors - skipped)) - echo "splunk ${{ matrix.splunk.version }}${{ secrets.OTHER_TA_REQUIRED_CONFIGS }} ${{ matrix.browser }} ${{ matrix.vendor-version.image }} ${{ matrix.marker }} |$total_tests |$passed |$failures |$errors |$skipped |${{steps.test_report.outputs.url_html}}" > job_summary.txt + total_tests=$(xmllint --xpath "count(//testcase)" "$junit_xml_file") + failures=$(xmllint --xpath "count(//testcase[failure])" "$junit_xml_file") + errors=$(xmllint --xpath "count(//testcase[error])" "$junit_xml_file") + skipped=$(xmllint --xpath "count(//testcase[skipped])" "$junit_xml_file") + passed=$((total_tests - failures - errors - skipped)) + echo "splunk ${{ matrix.splunk.version }}${{ secrets.OTHER_TA_REQUIRED_CONFIGS }} ${{ matrix.browser }} ${{ matrix.vendor-version.image }} ${{ matrix.marker }} |$total_tests |$passed |$failures |$errors |$skipped |${{steps.test_report.outputs.url_html}}" > job_summary.txt else - echo "no XML File found, exiting" - exit 1 + echo "no XML File found, exiting" + exit 1 fi - name: Upload-artifact-for-github-summary uses: actions/upload-artifact@v4 @@ -2212,15 +2214,15 @@ jobs: junit_xml_path="${{ needs.setup.outputs.directory-path }}/test-results" junit_xml_file=$(find "$junit_xml_path" -name "*.xml" -type f 2>/dev/null | head -n 1) if [ -n "$junit_xml_file" ]; then - total_tests=$(xmllint --xpath 'sum(//testsuite/@tests)' "$junit_xml_file") - failures=$(xmllint --xpath 'sum(//testsuite/@failures)' "$junit_xml_file") - errors=$(xmllint --xpath 'sum(//testsuite/@errors)' "$junit_xml_file") - skipped=$(xmllint --xpath 'sum(//testsuite/@skipped)' "$junit_xml_file") - passed=$((total_tests - failures - errors - skipped)) - echo "splunk ${{ matrix.splunk.version }}${{ secrets.OTHER_TA_REQUIRED_CONFIGS }} ${{ matrix.marker }} ${{ matrix.vendor-version.image }} |$total_tests |$passed |$failures |$errors | $skipped |${{steps.test_report.outputs.url_html}}" > job_summary.txt + total_tests=$(xmllint --xpath "count(//testcase)" "$junit_xml_file") + failures=$(xmllint --xpath "count(//testcase[failure])" "$junit_xml_file") + errors=$(xmllint --xpath "count(//testcase[error])" "$junit_xml_file") + skipped=$(xmllint --xpath "count(//testcase[skipped])" "$junit_xml_file") + passed=$((total_tests - failures - errors - skipped)) + echo "splunk ${{ matrix.splunk.version }}${{ secrets.OTHER_TA_REQUIRED_CONFIGS }} ${{ matrix.marker }} ${{ matrix.vendor-version.image }} |$total_tests |$passed |$failures |$errors | $skipped |${{steps.test_report.outputs.url_html}}" > job_summary.txt else - echo "no XML File found, exiting" - exit 1 + echo "no XML File found, exiting" + exit 1 fi - name: Upload-artifact-for-github-summary uses: actions/upload-artifact@v4 @@ -2261,6 +2263,280 @@ jobs: name: | summary-modinput* + run-ucc-modinput-tests: + if: ${{ !cancelled() && needs.build.result == 'success' && needs.test-inventory.outputs.ucc_modinput_functional == 'true' && needs.setup-workflow.outputs.execute-ucc-modinput-labeled == 'true' }} + needs: + - build + - test-inventory + - setup + - meta + - setup-workflow + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + splunk: ${{ fromJson(needs.meta.outputs.matrix_supportedSplunk) }} + vendor-version: ${{ fromJson(needs.meta.outputs.matrix_supportedModinputFunctionalVendors) }} + marker: ${{ fromJson(inputs.ucc-modinput-marker) }} + container: + image: ghcr.io/splunk/workflow-engine-base:4.1.0 + env: + ARGO_SERVER: ${{ needs.setup.outputs.argo-server }} + ARGO_HTTP1: ${{ needs.setup.outputs.argo-http1 }} + ARGO_SECURE: ${{ needs.setup.outputs.argo-secure }} + ARGO_BASE_HREF: ${{ needs.setup.outputs.argo-href }} + ARGO_NAMESPACE: ${{ needs.setup.outputs.argo-namespace }} + SPLUNK_VERSION_BASE: ${{ matrix.splunk.version }}${{ secrets.OTHER_TA_REQUIRED_CONFIGS }} + TEST_TYPE: "ucc_modinput_functional" + TEST_ARGS: "" + permissions: + actions: read + deployments: read + contents: read + packages: read + statuses: read + checks: write + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + - name: configure git # This step configures git to omit "dubious git ownership error" in later test-reporter stage + id: configure-git + run: | + git --version + git_path="$(pwd)" + echo "$git_path" + git config --global --add safe.directory "$git_path" + - name: capture start time + id: capture-start-time + run: | + echo "start_time=$(date +%s)" >> "$GITHUB_OUTPUT" + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ secrets.AWS_DEFAULT_REGION }} + - name: Read secrets from AWS Secrets Manager into environment variables + id: get-argo-token + run: | + ARGO_TOKEN=$(aws secretsmanager get-secret-value --secret-id "${{ needs.setup-workflow.outputs.argo_token_secret_id_k8s }}" | jq -r '.SecretString') + echo "argo-token=$ARGO_TOKEN" >> "$GITHUB_OUTPUT" + - name: create job name + id: create-job-name + shell: bash + run: | + RANDOM_STRING=$(head -3 /dev/urandom | tr -cd '[:lower:]' | cut -c -4) + JOB_NAME=${{ needs.setup.outputs.job-name }}-${RANDOM_STRING} + JOB_NAME=${JOB_NAME//TEST-TYPE/ucc_modinput} + JOB_NAME=${JOB_NAME//[_.]/-} + JOB_NAME=$(echo "$JOB_NAME" | tr '[:upper:]' '[:lower:]') + echo "job-name=$JOB_NAME" >> "$GITHUB_OUTPUT" + - name: create test argument + id: create-test-arg + shell: bash + run: | + TEST_ARG_M="" + EMPTY_MARKER="[]" + + if [[ "${{ inputs.ucc-modinput-marker }}" != "$EMPTY_MARKER" ]]; then + TEST_ARG_M="-m" + fi + + echo "test-arg=$TEST_ARG_M" >> "$GITHUB_OUTPUT" + - name: run-tests + id: run-tests + timeout-minutes: 340 + continue-on-error: true + env: + ARGO_TOKEN: ${{ steps.get-argo-token.outputs.argo-token }} + uses: splunk/wfe-test-runner-action@v5.0 + with: + splunk: ${{ matrix.splunk.version }}${{ secrets.OTHER_TA_REQUIRED_CONFIGS }} + test-type: ${{ env.TEST_TYPE }} + test-args: ${{ env.TEST_ARGS }} ${{ steps.create-test-arg.outputs.test-arg }} ${{ matrix.marker }} + job-name: ${{ steps.create-job-name.outputs.job-name }} + labels: ${{ needs.setup.outputs.labels }} + workflow-tmpl-name: ${{ needs.setup.outputs.argo-workflow-tmpl-name }} + workflow-template-ns: ${{ needs.setup.outputs.argo-namespace }} + addon-url: ${{ needs.setup.outputs.addon-upload-path }} + addon-name: ${{ needs.setup.outputs.addon-name }} + vendor-version: ${{ matrix.vendor-version.image }} + sc4s-version: "No" + k8s-manifests-branch: ${{ needs.setup.outputs.k8s-manifests-branch }} + - name: Read secrets from AWS Secrets Manager again into environment variables in case credential rotation + id: update-argo-token + if: ${{ !cancelled() }} + run: | + ARGO_TOKEN=$(aws secretsmanager get-secret-value --secret-id "${{ needs.setup-workflow.outputs.argo_token_secret_id_k8s }}" | jq -r '.SecretString') + echo "argo-token=$ARGO_TOKEN" >> "$GITHUB_OUTPUT" + - name: calculate timeout + id: calculate-timeout + run: | + start_time=${{ steps.capture-start-time.outputs.start_time }} + current_time=$(date +%s) + remaining_time_minutes=$(( 350-((current_time-start_time)/60) )) + echo "remaining_time_minutes=$remaining_time_minutes" >> "$GITHUB_OUTPUT" + - name: Check if pod was deleted + id: is-pod-deleted + timeout-minutes: ${{ fromJson(steps.calculate-timeout.outputs.remaining_time_minutes) }} + if: ${{ !cancelled() }} + shell: bash + env: + ARGO_TOKEN: ${{ steps.update-argo-token.outputs.argo-token }} + run: | + set -o xtrace + if argo watch ${{ steps.run-tests.outputs.workflow-name }} -n workflows | grep "pod deleted"; then + echo "retry-workflow=true" >> "$GITHUB_OUTPUT" + fi + - name: Cancel workflow + env: + ARGO_TOKEN: ${{ steps.get-argo-token.outputs.argo-token }} + if: ${{ cancelled() || steps.is-pod-deleted.outcome != 'success' }} + run: | + cancel_response=$(argo submit -v -o json --from wftmpl/${{ needs.setup.outputs.argo-cancel-workflow-tmpl-name }} -l workflows.argoproj.io/workflow-template=${{ needs.setup.outputs.argo-cancel-workflow-tmpl-name }} --argo-base-href '' -p workflow-to-cancel=${{ steps.run-tests.outputs.workflow-name }}) + cancel_workflow_name=$( echo "$cancel_response" |jq -r '.metadata.name' ) + cancel_logs=$(argo logs --follow "$cancel_workflow_name" -n workflows) + if echo "$cancel_logs" | grep -q "workflow ${{ steps.run-tests.outputs.workflow-name }} stopped"; then + echo "Workflow ${{ steps.run-tests.outputs.workflow-name }} stopped" + else + echo "Workflow ${{ steps.run-tests.outputs.workflow-name }} didn't stop" + exit 1 + fi + - name: Retrying workflow + id: retry-wf + shell: bash + env: + ARGO_TOKEN: ${{ steps.update-argo-token.outputs.argo-token }} + if: ${{ !cancelled() }} + run: | + set -o xtrace + set +e + if [[ "${{ steps.is-pod-deleted.outputs.retry-workflow }}" == "true" ]] + then + WORKFLOW_NAME=$(argo resubmit -v -o json -n workflows "${{ steps.run-tests.outputs.workflow-name }}" | jq -r .metadata.name) + echo "workflow-name=$WORKFLOW_NAME" >> "$GITHUB_OUTPUT" + argo logs --follow "${WORKFLOW_NAME}" -n workflows || echo "... there was an error fetching logs, the workflow is still in progress. please wait for the workflow to complete ..." + else + echo "No retry required" + argo wait "${{ steps.run-tests.outputs.workflow-name }}" -n workflows + argo watch "${{ steps.run-tests.outputs.workflow-name }}" -n workflows | grep "test-addon" + fi + - name: check if workflow completed + env: + ARGO_TOKEN: ${{ steps.update-argo-token.outputs.argo-token }} + if: ${{ !cancelled() }} + shell: bash + run: | + set +e + # shellcheck disable=SC2157 + if [ -z "${{ steps.retry-wf.outputs.workflow-name }}" ]; then + WORKFLOW_NAME=${{ steps.run-tests.outputs.workflow-name }} + else + WORKFLOW_NAME="${{ steps.retry-wf.outputs.workflow-name }}" + fi + ARGO_STATUS=$(argo get "${WORKFLOW_NAME}" -n workflows -o json | jq -r '.status.phase') + echo "Status of workflow:" "$ARGO_STATUS" + while [ "$ARGO_STATUS" == "Running" ] || [ "$ARGO_STATUS" == "Pending" ] + do + echo "... argo Workflow ${WORKFLOW_NAME} is running, waiting for it to complete." + argo wait "${WORKFLOW_NAME}" -n workflows || true + ARGO_STATUS=$(argo get "${WORKFLOW_NAME}" -n workflows -o json | jq -r '.status.phase') + done + - name: pull artifacts from s3 bucket + if: ${{ !cancelled() }} + run: | + echo "pulling artifacts" + aws s3 cp s3://${{ needs.setup.outputs.s3-bucket }}/artifacts-${{ steps.create-job-name.outputs.job-name }}/${{ steps.create-job-name.outputs.job-name }}.tgz ${{ needs.setup.outputs.directory-path }}/ + tar -xf ${{ needs.setup.outputs.directory-path }}/${{ steps.create-job-name.outputs.job-name }}.tgz -C ${{ needs.setup.outputs.directory-path }} + - name: pull logs from s3 bucket + if: ${{ !cancelled() }} + run: | + # shellcheck disable=SC2157 + if [ -z "${{ steps.retry-wf.outputs.workflow-name }}" ]; then + WORKFLOW_NAME=${{ steps.run-tests.outputs.workflow-name }} + else + WORKFLOW_NAME="${{ steps.retry-wf.outputs.workflow-name }}" + fi + echo "pulling logs" + mkdir -p ${{ needs.setup.outputs.directory-path }}/argo-logs + aws s3 cp s3://${{ needs.setup.outputs.s3-bucket }}/workflows/${WORKFLOW_NAME}/ ${{ needs.setup.outputs.directory-path }}/argo-logs/ --recursive + - uses: actions/upload-artifact@v4 + if: ${{ !cancelled() }} + with: + name: archive splunk ${{ matrix.splunk.version }}${{ secrets.OTHER_TA_REQUIRED_CONFIGS }} ${{ env.TEST_TYPE }} ${{ matrix.vendor-version.image }} ${{ matrix.marker }} tests artifacts + path: | + ${{ needs.setup.outputs.directory-path }}/test-results + - uses: actions/upload-artifact@v4 + if: ${{ !cancelled() }} + with: + name: archive splunk ${{ matrix.splunk.version }}${{ secrets.OTHER_TA_REQUIRED_CONFIGS }} ${{ env.TEST_TYPE }} ${{ matrix.vendor-version.image }} ${{ matrix.marker }} tests logs + path: | + ${{ needs.setup.outputs.directory-path }}/argo-logs + - name: Test Report + id: test_report + uses: dorny/test-reporter@v1.9.1 + if: ${{ !cancelled() }} + with: + name: splunk ${{ matrix.splunk.version }}${{ secrets.OTHER_TA_REQUIRED_CONFIGS }} ${{ env.TEST_TYPE }} ${{ matrix.vendor-version.image }} ${{ matrix.marker }} test report + path: "${{ needs.setup.outputs.directory-path }}/test-results/*.xml" + reporter: java-junit + - name: Parse JUnit XML + if: ${{ !cancelled() }} + run: | + apt-get install -y libxml2-utils + junit_xml_path="${{ needs.setup.outputs.directory-path }}/test-results" + junit_xml_file=$(find "$junit_xml_path" -name "*.xml" -type f 2>/dev/null | head -n 1) + if [ -n "$junit_xml_file" ]; then + total_tests=$(xmllint --xpath "count(//testcase)" "$junit_xml_file") + failures=$(xmllint --xpath "count(//testcase[failure])" "$junit_xml_file") + errors=$(xmllint --xpath "count(//testcase[error])" "$junit_xml_file") + skipped=$(xmllint --xpath "count(//testcase[skipped])" "$junit_xml_file") + passed=$((total_tests - failures - errors - skipped)) + echo "splunk ${{ matrix.splunk.version }}${{ secrets.OTHER_TA_REQUIRED_CONFIGS }} ${{ matrix.marker }} ${{ matrix.vendor-version.image }} |$total_tests |$passed |$failures |$errors | $skipped |${{steps.test_report.outputs.url_html}}" > job_summary.txt + else + echo "no XML File found, exiting" + exit 1 + fi + - name: Upload-artifact-for-github-summary + uses: actions/upload-artifact@v4 + if: ${{ !cancelled() }} + with: + name: summary-${{ env.TEST_TYPE }}-${{ matrix.splunk.version }}-${{ secrets.OTHER_TA_REQUIRED_CONFIGS }}-${{ matrix.vendor-version.image }}-${{ matrix.marker }}-artifact + path: job_summary.txt + - name: pull diag from s3 bucket + if: ${{ failure() && steps.test_report.outputs.conclusion == 'failure' }} + run: | + echo "pulling diag" + aws s3 cp s3://${{ needs.setup.outputs.s3-bucket }}/diag-${{ steps.create-job-name.outputs.job-name }}/diag-${{ steps.create-job-name.outputs.job-name }}.tgz ${{ needs.setup.outputs.directory-path }}/ + - uses: actions/upload-artifact@v4 + if: ${{ failure() && steps.test_report.outputs.conclusion == 'failure' }} + with: + name: archive splunk ${{ matrix.splunk.version }}${{ secrets.OTHER_TA_REQUIRED_CONFIGS }} ${{ env.TEST_TYPE }} ${{ matrix.vendor-version.image }} ${{ matrix.marker }} tests diag + path: | + ${{ needs.setup.outputs.directory-path }}/diag* + + ucc-modinput-tests-report: + needs: run-ucc-modinput-tests + runs-on: ubuntu-latest + if: ${{ !cancelled() && needs.run-ucc-modinput-tests.result != 'skipped' }} + steps: + - name: Download all summaries + uses: actions/download-artifact@v4 + with: + pattern: summary-ucc_modinput* + - name: Combine summaries into a table + run: | + echo "| Job | Total Tests | Passed Tests | Failed Tests | Errored Tests | Skipped Tests | Report Link" >> "$GITHUB_STEP_SUMMARY" + echo "| ---------- | ----------- | ------ | ------ | ------ | ------- | ------ |" >> "$GITHUB_STEP_SUMMARY" + for file in summary-ucc_modinput*/job_summary.txt; do + cat "$file" >> "$GITHUB_STEP_SUMMARY" + done + - uses: geekyeggo/delete-artifact@v5 + with: + name: | + summary-modinput* + run-scripted-input-tests-full-matrix: if: ${{ !cancelled() && needs.build.result == 'success' && needs.test-inventory.outputs.scripted_inputs == 'true' && needs.setup-workflow.outputs.execute-scripted_inputs-labeled == 'true' }} needs: @@ -2530,7 +2806,7 @@ jobs: summary-scripted* pre-publish: - if: ${{ !cancelled() && needs.validate-custom-version.result == 'success' }} + if: ${{ !cancelled() }} # The following line will rename 'pre-publish' to 'pre-publish-not_main_pr' when PR is created towards main branch # It is necessary to avoid confusion caused by githubactions considering pre-publish for both push to develop branch # and pull_request to main branch events. @@ -2549,6 +2825,7 @@ jobs: - setup - run-knowledge-tests - run-modinput-tests + - run-ucc-modinput-tests - run-ui-tests - validate-pr-title runs-on: ubuntu-latest @@ -2573,11 +2850,8 @@ jobs: exit 1 publish: - if: | - (!cancelled() && needs.pre-publish.result == 'success' && github.event_name != 'pull_request' && github.event_name != 'schedule') || - (!cancelled() && needs.pre-publish.result == 'success' && github.event.inputs.custom-version != '' && needs.validate-custom-version.result == 'success') + if: ${{ !cancelled() && needs.pre-publish.result == 'success' && (github.event_name == 'push' || needs.validate-custom-version.result == 'success') }} name: ${{ github.event.inputs.custom-version == '' && 'publish' || 'publish-custom-version' }} - needs: - pre-publish - validate-custom-version diff --git a/README.md b/README.md index b5f72b9bf..fd09ecf22 100644 --- a/README.md +++ b/README.md @@ -17,13 +17,26 @@ Workflow defines jobs which perform security code scanning, execute different ty * If bugfix release is needed: * make a change * test it + * pull-request scenario + * push scenario + * release scenario (test-addonfactory-repository) * create a PR to the `main` branch * get all the approvals from the team * merge it using "squash commit" option * backport the change back to the `develop` branch * new version of the workflow is going to be released (v4.17.0 (before) -> v4.17.1 (after)) and it will automatically applied to all the repositories -# Troubleshooting for different workflow stages in GitHub Actions +# Workflow jobs + +## Inputs +* marker - list of markers used to paralelize modinput tests +* ucc-modinput-marker - list of markers used to paralelize ucc modinput tests +* ui_marker - list of markers used to paralelize ui tests +* custom-version - version used for release on manual workflow trigger +* execute-tests-on-push-to-release - enable tests on release branch - default false +* k8s-enfironment - k8s environment for testing +* k8s-manifests-branch - k8s-manifests branch for testing +* scripted-inputs-os-list - list of OSes used for scripted inputs tests ## General troubleshooting @@ -250,6 +263,7 @@ ui_local::true knowledge::true unit::true modinput_functional::true +ucc_modinput_functional::true ``` build @@ -562,7 +576,7 @@ Junit XML file **Pass/fail behaviour** -- The stage is expected to fail only if there are any Modular input test failures defined under tests/modular_input +- The stage is expected to fail only if there are any Modular input test failures defined under tests/modinput_functional **Troubleshooting steps for failures if any:** @@ -588,6 +602,45 @@ helmut.log Junit XML file ``` +# run-ucc-modinput-tests + +**Description** + +- This stage does the setup for executing Modinput tests using [ucc modinput tests framework](https://github.com/splunk/addonfactory-ucc-test) and reports the results +- It is possible to parallelize Modinput tests execution by using pytest markers. + To do so, one must specify `ucc-modinput-marker` parameter in buid-test-release.yml as in [example](https://github.com/splunk/splunk-add-on-for-google-cloud-platform/blob/34abcf2780d8f223f292c9c2fcc5835b71a8de99/.github/workflows/build-test-release.yml#L34). + Markers must be created prior and each test case must be marked (check the following references: [ref1](https://github.com/splunk/splunk-add-on-for-google-cloud-platform/blob/34abcf2780d8f223f292c9c2fcc5835b71a8de99/tests/ucc_modinput_functional/markers.py), +[ref2](https://github.com/splunk/splunk-add-on-for-google-cloud-platform/blob/34abcf2780d8f223f292c9c2fcc5835b71a8de99/tests/ucc_modinput_functional/test_google_cloud_rh_settings.py#L19)) + +**Action used:** +- No action + +**Pass/fail behaviour** + +- The stage is expected to fail only if there are any Modular input test failures defined under tests/ucc_modinput_functional + +**Troubleshooting steps for failures if any:** + +- we can validate the test-execution in local env and compare results. + +- The `splunk-add-on-ucc-modinput-test-functional.log` file, `test-result.xml` can be used for identifying errors. + +- `splunk-add-on-ucc-modinput-test-functional.log` file has detailed logs for each action for the test case we can observe the logs and troubleshoot what’s the root cause of failure + +- Make sure setup and teardown methods works as expected in the test-case. + +**Exception file:** + +- `.pytest.expect` User can add failures here which can be ignored while test execution and will be marked as XFail + +**NOTE:** There should be valid reasons and approvals from addon and automation PMs to add failures in this file. + +**Artifacts:** +``` +splunk-add-on-ucc-modinput-test-functional.log +Junit XML file +``` + pre-publish =========== From c85134fae365a462b858797e7d76f6cc9a21d670 Mon Sep 17 00:00:00 2001 From: kdoroszko-splunk Date: Wed, 4 Dec 2024 09:21:53 +0100 Subject: [PATCH 5/9] chore(deps): update trufflehog (#346) ### Description Bump of trufflehog action `v3.81.10 -> v3.84.2` ### Checklist - [ ] `README.md` has been updated or is not required - [ ] push trigger tests - [ ] manual release test - [ ] automated releaes test - [ ] pull request trigger tests - [ ] schedule trigger tests - [ ] workflow errors/warnings reviewed and addressed ### Testing done https://github.com/splunk/splunk-add-on-for-cisco-meraki/actions/runs/12155577995/job/33897421883?pr=491 --- .github/workflows/reusable-build-test-release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/reusable-build-test-release.yml b/.github/workflows/reusable-build-test-release.yml index 374a79ecf..08303d655 100644 --- a/.github/workflows/reusable-build-test-release.yml +++ b/.github/workflows/reusable-build-test-release.yml @@ -322,7 +322,7 @@ jobs: fetch-depth: "0" ref: ${{ github.head_ref }} - name: Secret Scanning Trufflehog - uses: trufflesecurity/trufflehog@v3.81.10 + uses: trufflesecurity/trufflehog@v3.84.2 with: extra_args: -x .github/workflows/exclude-patterns.txt --json --only-verified version: 3.77.0 From 7f573f542b3a7c2c0ec4ca1572c0784c15022a68 Mon Sep 17 00:00:00 2001 From: dvarasani-crest <151819886+dvarasani-crest@users.noreply.github.com> Date: Fri, 6 Dec 2024 17:41:34 +0530 Subject: [PATCH 6/9] fix: add block_mode input for semgrep (#337) This PR adds input block_mode for semgrep to enable failing pipeline if we have some findings in semgrep scan. Test run: https://github.com/splunk/splunk-add-on-for-google-workspace/actions/runs/10954006775 --- .github/workflows/reusable-build-test-release.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/reusable-build-test-release.yml b/.github/workflows/reusable-build-test-release.yml index 08303d655..8da83f35c 100644 --- a/.github/workflows/reusable-build-test-release.yml +++ b/.github/workflows/reusable-build-test-release.yml @@ -331,6 +331,8 @@ jobs: uses: splunk/sast-scanning/.github/workflows/sast-scan.yml@main secrets: SEMGREP_KEY: ${{ secrets.SEMGREP_PUBLISH_TOKEN }} + with: + block_mode: "policy" test-inventory: runs-on: ubuntu-latest From fb614edce3ca05f15b24fd2a3a571e20e8cd4fa7 Mon Sep 17 00:00:00 2001 From: kdoroszko-splunk Date: Fri, 6 Dec 2024 13:22:27 +0100 Subject: [PATCH 7/9] docs: minor changes (#348) ### Description This PR contains minor changes in documentation. ### Checklist - [ ] `README.md` has been updated or is not required - [ ] push trigger tests - [ ] manual release test - [ ] automated releaes test - [ ] pull request trigger tests - [ ] schedule trigger tests - [ ] workflow errors/warnings reviewed and addressed ### Testing done (for each selected checkbox, the corresponding test results link should be listed here) --- runbooks/addonfactory-workflow-addon-release-docker-images.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runbooks/addonfactory-workflow-addon-release-docker-images.md b/runbooks/addonfactory-workflow-addon-release-docker-images.md index afc36ef4e..645ce0235 100644 --- a/runbooks/addonfactory-workflow-addon-release-docker-images.md +++ b/runbooks/addonfactory-workflow-addon-release-docker-images.md @@ -8,7 +8,7 @@ Once there is new Splunk release, and [matrix](https://github.com/splunk/addonfa - if any is missing in [ta-automation-docker-images](https://cd.splunkdev.com/taautomation/ta-automation-docker-images/-/tree/main/dockerfiles) then add new Dockerfile #### Create images and publish them to ECR -- figure out what version of Splunk is needed (sha) using go/fetcher +- figure out what version of Splunk is needed (sha) using `BUILD` field from [splunk_matrix](https://github.com/splunk/addonfactory-test-matrix-action/blob/main/config/splunk_matrix.conf#L7) (alternatively use go/fetcher) - trigger [pipeline](https://cd.splunkdev.com/taautomation/ta-automation-docker-images/-/pipelines/new) for every OS flavor separately ## Runbook to publish unreleased Splunk image for testing From 9dabe3548d179b61728da6cac3384668fe64b21e Mon Sep 17 00:00:00 2001 From: dvarasani-crest <151819886+dvarasani-crest@users.noreply.github.com> Date: Fri, 6 Dec 2024 19:00:39 +0530 Subject: [PATCH 8/9] fix: deletion of ucc modinput summary artifacts (#349) ### Description This PR fixes the issue with the deletion of the result summary artifacts for ucc modinput tests (PR description goes here) ### Checklist - [ ] `README.md` has been updated or is not required - [ ] push trigger tests - [ ] manual release test - [ ] automated releaes test - [ ] pull request trigger tests - [ ] schedule trigger tests - [ ] workflow errors/warnings reviewed and addressed ### Testing done (for each selected checkbox, the corresponding test results link should be listed here) --- .github/workflows/reusable-build-test-release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/reusable-build-test-release.yml b/.github/workflows/reusable-build-test-release.yml index 8da83f35c..47340ae44 100644 --- a/.github/workflows/reusable-build-test-release.yml +++ b/.github/workflows/reusable-build-test-release.yml @@ -2537,7 +2537,7 @@ jobs: - uses: geekyeggo/delete-artifact@v5 with: name: | - summary-modinput* + summary-ucc_modinput* run-scripted-input-tests-full-matrix: if: ${{ !cancelled() && needs.build.result == 'success' && needs.test-inventory.outputs.scripted_inputs == 'true' && needs.setup-workflow.outputs.execute-scripted_inputs-labeled == 'true' }} From eb908d64229517270c761a2db8ac9f3b251f74e2 Mon Sep 17 00:00:00 2001 From: kdoroszko-splunk Date: Fri, 6 Dec 2024 16:28:50 +0100 Subject: [PATCH 9/9] chore(deps): upgrade trufflehog to 3.85.0 (#350) ### Description This PR upgrades `trufflesecurity/trufflehog` action to `v3.85.0` ### Checklist - [ ] `README.md` has been updated or is not required - [ ] push trigger tests - [ ] manual release test - [ ] automated releaes test - [ ] pull request trigger tests - [ ] schedule trigger tests - [ ] workflow errors/warnings reviewed and addressed ### Testing done https://github.com/splunk/splunk-add-on-for-cisco-meraki/actions/runs/12201434038/job/34039826531?pr=491 --- .github/workflows/reusable-build-test-release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/reusable-build-test-release.yml b/.github/workflows/reusable-build-test-release.yml index 47340ae44..2e823958a 100644 --- a/.github/workflows/reusable-build-test-release.yml +++ b/.github/workflows/reusable-build-test-release.yml @@ -322,7 +322,7 @@ jobs: fetch-depth: "0" ref: ${{ github.head_ref }} - name: Secret Scanning Trufflehog - uses: trufflesecurity/trufflehog@v3.84.2 + uses: trufflesecurity/trufflehog@v3.85.0 with: extra_args: -x .github/workflows/exclude-patterns.txt --json --only-verified version: 3.77.0