From 68e4c5e469138e140419a1aac2e7f53694b3439b Mon Sep 17 00:00:00 2001 From: William Wernert Date: Mon, 14 Jun 2021 15:21:46 -0400 Subject: [PATCH] Add CONTRIBUTING.md draft, move markdown images to assets/images --- CONTRIBUTING.md | 41 ++++++++++++++++++ README.md | 4 +- .../images/screenshots}/alerts-1.png | Bin .../images/screenshots}/hunt-1.png | Bin assets/images/verified-commit-1.png | Bin 0 -> 24339 bytes 5 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 CONTRIBUTING.md rename {screenshots => assets/images/screenshots}/alerts-1.png (100%) rename {screenshots => assets/images/screenshots}/hunt-1.png (100%) create mode 100644 assets/images/verified-commit-1.png diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..801d3502d --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,41 @@ +# Contributing to Security Onion - DRAFT + +### Questions, suggestions, and general comments +* Security Onion uses GitHub's [Discussions](https://github.com/Security-Onion-Solutions/securityonion/discussions) to provide a forum where the community and developers can interact as well as ask and answer questions. + +### Reporting a bug +* The primary place to report unexpected behavior or possible bugs is the repo's [Discussions forum](https://github.com/Security-Onion-Solutions/securityonion/discussions). + +* **If you are familiar with the current version of Security Onion and are confident you've discovered a bug**, first ensure there is not already an issue present by searching the open [issues](https://github.com/Security-Onion-Solutions/securityonion/issues). If there is, a thumbs up :+1: is a great way to show this bug is affecting you too. + +* If an issue doesn't exist, [open a new one](https://github.com/Security-Onion-Solutions/securityonion/issues/new), following the directions in the issue template. These boil down to including: + * **System information** and how Security Onion was installed + * **Log files** relevant to the bug report + * **Reproduction steps** + +### Contributing code + +* **All commits must be signed** with a valid key that has been added to your GitHub account. The commits should have all the "**Verified**" tag when viewed on GitHub as shown below: + + + +* If an issue does not already exist for the bug or feature for which you are submitting a pull request, [create one](https://github.com/Security-Onion-Solutions/securityonion/issues/new) with the relevant prefix. (**`FIX:`** for bug fixes, **`FEATURE:`** for new features.) + +* **Pull requests should be opened against the `dev` branch of this repo**, and should clearly describe the problem and solution. + +* Be sure you have tested your changes and are confident they will not break other parts of the product. + +* See this document's [code styling and conventions section](#code-style-and-conventions) below to be sure your PR fits our code requirements prior to submitting. + + + +### Code style and conventions +* **Keep code [DRY](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself)**. For example, Bash code used by multiple scripts will likely best be added to [`so-common`](salt/common/tools/sbin/so-common). + +* All new Bash code should pass [ShellCheck](https://www.shellcheck.net/) analysis. Where errors can be *safely* [ignored](https://github.com/koalaman/shellcheck/wiki/Ignore), the relevant disable directive should be accompanied by a brief explanation as to why the error is being ignored. + +* **Ensure all YAML (this includes Salt states and pillars) is properly formatted**. The spec for YAML v1.2 can be found [here](https://yaml.org/spec/1.2/spec.html), however there are numerous online resources with simpler descriptions of its formatting rules. + +* **Python** - TBD + +* **Golang** - TBD diff --git a/README.md b/README.md index 2bf903fa2..bc784dd22 100644 --- a/README.md +++ b/README.md @@ -5,10 +5,10 @@ Security Onion 2.3.52 is here! ## Screenshots Alerts -![Alerts](https://raw.githubusercontent.com/security-onion-solutions/securityonion/master/screenshots/alerts-1.png) +![Alerts](./assets/images/screenshots/alerts-1.png) Hunt -![Hunt](https://raw.githubusercontent.com/security-onion-solutions/securityonion/master/screenshots/hunt-1.png) +![Hunt](./assets/images/screenshots/hunt-1.png) ### Release Notes diff --git a/screenshots/alerts-1.png b/assets/images/screenshots/alerts-1.png similarity index 100% rename from screenshots/alerts-1.png rename to assets/images/screenshots/alerts-1.png diff --git a/screenshots/hunt-1.png b/assets/images/screenshots/hunt-1.png similarity index 100% rename from screenshots/hunt-1.png rename to assets/images/screenshots/hunt-1.png diff --git a/assets/images/verified-commit-1.png b/assets/images/verified-commit-1.png new file mode 100644 index 0000000000000000000000000000000000000000..62363b99b2824b9dc892c6631b3bde500bc61745 GIT binary patch literal 24339 zcmdpcgMTK;^Kg=lcVlgAb7R}KvB4AD#>Td7+uq&qiEZ09-`st5cfbGOozL`i&vaK; zS9NuvdqU-9#o%DEU_n4Y;3UL_6+u8grG1o*p&>t>Win@uARw^oWVwcQFkm4gqdtlEE+EW2>kTP)x99Kg zY6=^+eU>0O>;Wk32F_T&bp~C>(8Cx(`EiAB+!s@Sn{`FiQ|sq8(4 zfJh_{LJ*?@PT#Bx@@xs8%WQ(%aRX8bH`Z#*Umn+ezm-+T-Zj$RY0XOGT6w<23T%bG z2o+m|&750Hy5}T7z)1brPZ>|Gd}h8Tc|&p-LHFnz`xd;5OQDnAMq(O;^4KL^nk{Yo zfaB1|tM5P~iI8}fNO5H_@=c1lyPAYlux#HhRq?&GCyA@@=Qr!$RGM)5LoUzA7!YM4WdN9Ggui&73{GZ-_Vh0e__3%s>I)OW-PUyScK z9Z>Oz;F|=D!hywdQZm^_XCr6gsfGVf%ua@As{T-7qD^R2rEKTPcKc z0Ou!8Pe#v5f5i7S!&-Gf1=1YSadhM_GQ;Z{ts0No$^|-0KIgAoem$GYcE;>#+6+;F z!@X!*&fD-?vfI`hqPF;#jILH4aBCR&;TRii8^f0}4@wW%4<-*1KX88eZb(Cu*+O#! zSOstjl5b+^2QWw^kYgd~gl_g4ZMhpj)CRgnJ;Xeyii(P=^-CC+e$g||lnxxxPyNg& z#F#A(OQIBqK^a9tXhk|3-zI)9ZUZ!`BV6>yks2ehA!UmjkHe4W8&U+&0#fU678~nS z>a6P6jPw+sQ9r@@*Zqi-qAbQK)XwinARfdVas$@x%nhmlag(uQ(qoE;w1%OEi-9(= zHgVk)d}Y2$49XV@8x*J%GgKKWUyJfe+?DC6(%WJ+#dySU6?&<#C>hb>(ZbOXDDNnv zs3|EHDMhF%70VPkOPNa|6j_yxsfwv=lz8(z#U8K0Mj;{~Rv^+b8faQ-H~hoe!h&Jd z3dIXmcAJJwRMN_#&BM$?&D)QNSsKzxmlPW<8@P0h`o%wSnuEV5=jOA9M@a}z66iku`Zq|?hzi$>?^rgQ@O0=Es->&7Y_#>Xd}_VByzAe*KK%e) z^);y(&Y9ov&yCej*d*(5?ol8{BQ8>?QmCI4GOVj@w+ph1yre~`fLSH!GpYtUDJ{&b zC75Ue+(*B#IxuXfpRydY4Ww|Tejc$Hfua#d{}N6UZX8Z11sEn6hD$n4szyJekI+%C zt8v+6qxL9QF6S(VnuDDKox`r+s$5@4S*o!rv$S4}v+}Z%2P;`y7&!fU%}6spF=;%1&Rdna>n{DwtV}z(D}3tYJ_VFc)o%&`MZGg z!G41ULO(iDI-3nnl@-bfRSI1TdGwU%Q}?9(UJLdJviaK$?w zMHPt^q5HLy^T|F!^9x@QF**h|rU!wuLF#y2=CJ72$u{iv84a6em-%BKnmM(iT86fS z22j(D84m>?Z5{PJ5N)JPUxtJM<&GqxzH^~{fu0>NgK_NZe4^HnSJFY6dK!D$PFe%8 zS;YPr^?v7$$0hY+b^L4mJ-LrKjBKe~s$`_3l}t}@UokEQ1+*eK&!OgF`P6fu@o&M+ z??DdzV-a==IS0O9k?Ap9jHrlYrqDubcesG^Nm{BZa|0)XC;8<&YA~ugz;C0A8P_!P zZ1=_7j(A+vTzcd_UT+iT{YOVE6KMe~s}{F&=oPpc`^{DQJa%3~PvzJZtO?ex&EL!o zP5g|1wf)#Uf9bNIOQ1zXgSWI_YwMHgDn3xGRk3rsOr|}dP4=#N z%iRhttqj$AZsM?9ZpLlbsd<$R^^g!M^)$0Syol=KS{gD1hyc!=t5)19**A zRlmY=!lG86+MCbc6oKU(I=dRPZDNMwdp!7e_IGOw`?b}8?!C9I*KD7ich}~n>bA=M znxYPLt#p;=2D-Ycd-5l_NT?ZjRQv}``VxFgXsZJ=M@vh~DbuC7FKkk21MvO09o~b_ z@?zm4QcmUe7MJ?A>h=$hK|8ze-D|TZ_rt0(9udNis3dbQfPYEN>RIc%(d@ z#vroVZP)H!7Ij6>4?kC7$Z9)wxxOI3Dn0{(hpp63s&U%QeQwpWh4hwL1}t#rGpk(g z=#TiEdS3fe)7RL>*A3R%JUxJ?Z(K+&XYjpnU)FY4a66OT&u?EVp5qbbczU^M+)3_B zUTXWd)7GWEEpQ#ba&zqPIPOX;#6$I*Y+`hW`@AzMUL?FUyrkaM_ba4Nq8N4=&S%qm z@LmZ%7+e81`F7rG_Y*J6_1-QXwufAA9tJHYk4xFK*2=mneN67FJcx|8E}t9juyP7D@75-36VDkeJHqQmLrn1uU zMXEQniM75<{7l^9%GCU*@*7ACGDugFw2aK0tc+Ks$PX_Nezh@6IX+s=!Dk|DsEwdu z7ZmFs-NTmM@5MOpy#9yKCqLKseZbylu`(8Vl1e{3-Y|f=gt3ea2-Qa!8U!2^3k2e$ z1p1M9L9zc^76qjM`Sj;^Fc6SnGZ659w~_tG|F~j4(jPGY%0I;gfk1t{A%7&-9I*ei z{*;#U=|5!<`iH}^#&>jG=b}+SZ^j#qM!yAXO71wY80YNAIBY{dNl3aZB zKWC<_?x-#!&1q<3MW=6MV*sFYwX*%A9}sR=&X1xMz)_#T)ymS^fzy?T=+73MALTzj z(-RT=*~HO;he%yUoz>K9o(!P^<8PL9f<$c$$$D01~?eno7p;=*;o_& z(XYONjgun}5z!xr{(JpvoB&s||6#Ir_%~S}1k(ReL;sDAf&RaJe}HoT@s(5F%oSj% zA#7&#!Ltt>yx$lYx&Lhce`@}R@h_0-|AXXU{2Sz7YW@kS;sCH0va$L=>B#%P>H0U? zzgGSmkemJw%KyTNf3f+`uOEEoh2^II@0{_%c6Ukje@r8enXsJlNB$vXe_l)~eO1)~Y($aMsjkObZ3Tpf%%dsauu76Vo-6W%@b?2E@&^s3ee z)|nh+V|#aIJOaSM2tfXMs}jkB3rXBjvFb7dGx zyx%_nK%n_ex3ED#5&v=5P=P|rlyCJK{a^HmX%CS9>>mWYLJ~x9x{UoB=HCbO2f6^V zuK&|N2xvL7??eNYtTg05$s_n6!R8<1|9JiXg9O;fi4Lb@^w;zGddJP*B2+3z3T3*l z5>#qUG#u>g>ZgI{tLQ(ICOM$ zI|m0ThVMT%Vz(hDp#RCkN0RR@xvg%)&g6Tr)xUoJ5xf|v z0P{CQszfodsS;*pW(iqI0*Ai|;!}Zq_aSh6;!VWz1>#7#=???383Fpkz{S{%%uL{9 zSU;DPiw#?DDkX0hslYGPHfNnG53A)OmeCZ}#Fdp5`%{ah&7(#OX3rgpu!s)xrG!Fm z`v(TBiEf)L5vzIY>Z!-i7c?*bHS{ZpF*+XwSwMb%Ioy=R+Zs>>(g|Ld^XN?nNZ6FSU@^I) z-kz>XB{oJJt`5ZPN*yjf-HT+-(YNonT%sJNcRnj$*Y*St4i8Hua`YT^O*)K5(4?Tj&CLY?2F89yP)=nGlDLcvO45O_UGf|vN6+%I(#ob|;}P8{5%Z!^Iu)<{ zX$8Z2GBf!}k#wdgm$P@SuIqkNrE-@ihf0%Z{|wP$l@)dxn@Llj()+`-+>QIWciDSr z{^oD+Q$pH;c^hqv^HfPvDPE%JmoyJCJoOaU5)1*zznKVWXcAIVrI&RDoRt-A;PUWv z0aVyK37Fj_OhQHmQS%Au7wfY#H`-w|?$glM(nOWwwveu8eE4 zFgaP1D|8U(Y!!J#OS_O3T=>k-_ZO!51;_j98eMgd@>Ebr;>qR(Zdao8y>n0C6lf}0 zqD$ri*9@K!aA-Ql-{dBMmjOeA4>GTx&8(VpywS`C1SZBk~ zc^0>ZlGJExb4Dl=hPdL%6`R%C%vWjMm%@TY!t+u7V!wV0$?^MWC!OEa?kg7fAb{R| z9dWVd&^Z2Tm5Y*wv*0vyQ0usJ@a;Ca{MC_Gvz}_luQJt>KH*#_jjT(F!{N!pt z1f3|pb9hU(2$TK2j_P!b%p?C6$>3T*F&8NfC))m~0aJ9$=jG+a^mS?WMm?1g;VR19 zQd=8GWT01^TzGPF((&=ironj?lDORPLt~n4x5Y9?Go;DI#I9~>At?|*{n}j&DRjPq;4_aI z=OU)jlo^k>XFtFfCN0o(^E$$*lqoBe*8!PSTz{VO*+SRetJD5rS9DKi6sR?K-7e%) zxREPlSUnfyu^3HrRGHnE;)5qe<^Q@oT}@$(LVWVYL_~(~=~ZX238nGk=>3GUdwctV z&9~Rrgkn&^o}I0$fn**&nLH+VUN6AnBM5b)pekJnIpxy4Bg<5n&j=VPZsr!AEzIEp{eqh?xCQ>==iupro!|sz_O`UPK|_7h zMSutiu`oHfZ_%2mlKgD%WDmT{+*aJ8q@+!K;qeSabVzuuTIm!WAd(BM9R;GU+PjxW*`PgMvGdtJLJJ9(o!H zjYnd3Jz!Ajb78@t&!`^a0FZTG(~**r0_j*RW^&$MpHfb}H#P{}9Y)w^@Aj~X>u(xK z5gHj7|K=FReD)g|@o*$Rsyf*{R+84HW(q0Q4%%JFNJ$c=>1S_cZ<8l|zhcZ@tqzzG z4vXlbOJB{e3GCigDJZ6*b&dM{iGghIqNg-XY>p1`-sa+v{SBU@=@7QHf{Pw8 z<=MARj}qa_t+EkJURW;o6Rq9>lg0+4Nig>=5r;~O?70nnWST~F6v*_QhsIP3D)c{&X262X^mx@9UVpK!A`DldwWgd4Uhss^rcSO@_?8}roPkcw`1=0Gzq=`}NIqXnn zbQgCh?%QKNp>ydpalkMy8N_}jmqG(4^UPr0P&_>xd>&aOHqePqyFVIfp%X9KYjV`m|`)K_Xbu{Z0P)Hw2(f zvy8*Ti0iAi4k{WIhhx+Z##_2~9M2o^#B?mMXzcg)Y`ULV+OWKYSY=Fkf4I*AwP@TO z9QKr5i0=?6(a*_5P|hnW*?G(58j~6dB1XPwuvF;lncoY4raIdc6Itz`RLYpaX|e*V z-PrMpvcSs0H;?bA3^Wd7=ftLtn%JBFRH+lN2MmG6V%~XEP>}*Q`{d$|rt&B`oj)jI ze7K}#L!Oq2(FNv*3zsO&jtkJ0rZ+~l$uZxdCCh9~S4whG(?s4_oyIepeOay7^4ebdp*Zt`3j44RoY!T;hUfcU*2Z%n(o z1fUSS-P_vv9Ivs=Xi**~d56t8BQUnhpnF-V-N{=8e{zngZh!4qd&9dYZ-hUjyEhzL zDrMF5#nk#No&`S5mUnV^yNN{fVN zz}?jD@RND{<3(=pN}|BV_qeYPnV!&2MDpf`DE zH;$#ra}WrJ>grgClaxsSFyWpzv{uY>Ri)Pm%)rTL0Mv1xPx5G}1)Qz3?06)y1?KFw zXRlQSZU5SPvRf_WioKay>aveAM#ECPkgBgAF|n>VDR}NfS3sZaaGpg@9GvcB6yx&j zPONNyiHd&aCBsET3z&#N8ZhCI3~p{NwuNCrwf|bV~OgtTk9IO@(Y!ZCdE|RlUg62&l^nb2r@ZeGi@hv3RTLEP^n%``_^Kp9x;k=(GU9=HhhM8%7`mE9K zs6H*l0iSmLdwC{T(_%I_6I^Ds-S;koE9Yq8+9EPerBtg@_GT;IN`=Q{O9`b!;KB!h z%QcF*?#V8*!Xp*NQu96^?q3`@5NK3%u*q+B2}wz06{$_3nXQM99z^hW^68kAf`zpy%0ZO|2 zdBq7*5^b(~Z86N~#ky>WM-s{|b2ayDY*7;y^||&@=8LI?={Q>eKhBFKz2vZX@sb~8 zuGyKX)kZ8LED{k@d#_*`L?iEI=QuBZbO95a&zxF0cRiQWE0ji4;>3)BIVTs_XPxcJ zxh9h9XpFR^4w9$8#bF@O>Y@Zk*32JqVqCV(H+x6N21|K7_rqwI|4b*dfw6#u5wk_|0wJ#tBkE^17pe@W2vXx_U_ znPutbsE+0sGNgtg*oTYqnB~099sbE>62aJlT#JWeQPT8k&A76oGyV%h*vci}Isb;aSGrhNoG_w0r8)7;?!)80Fvea7LXz7-?y z)Uri5VFGbLktoDJSmP%skwXwQb`^ent~F-C7r3NmCE*_3knTa3pBAmE6ro;IYg^B3 zb&f(s>*b!S(dr7ZH0RN{NNGvPeEWOxB#$f+B`uoZj-niYzBvo}*8=m;g5nUnR78={ zWS7|64>4osOo!m2`p0hNmC(<*G2aHB!%8nt1P9~g&>86!lbs#%GuCGs-g$13@`Gqm?6g{(t^aO*igrtn!S72MVUp2 zg2wA4d4U5Vya}V{Gs)s;7P<`kr>XbC7^uG*_m4P_4OA_JfGqM_+n+aH;Ro^fE<WrQc`3d6}um3fyZnbbD??h1{_k&vKj=JnZCb2j;PB5PyT|exS;2r(u zq1@}yZI0%>m-0kH|dT%#0*hq_-Uyh~u&=dp}`%e240UrExO%FV+g zF1>uywYn*LB?~dF6-kimZ|j9y7@U!b=}=bLvCDvb4=SE_j3gR=p2qiS?$p|uDoSn9 z!2#se{rJbCbCnV3liRt<&hZ)X^MaP?71>^(m-w+P_V3C;nba2p(6%Nm0-o1wtg>Ca z)qH{M$b1wvxpGdgBHdI?$D=2Nx*=6D6P5w_H*emZjg1^V-uajJk7KR(_iZGcHV_c@ z-+!Dtoa#V*M^%~cJmet^AnSygDhTrp2?>MFTi}NP-9$n1$fuwpA|N8TTSG(p+@x1~ zFQ`&GWdVKI+5Dc-Ji^FjDJTvdYM&jHc~_K?xte)B*17+*vxAlp#wx;(BoB@X`q%7^ zFeWL9Fi=DU854<4K)`P{Y}lWVn^>;ev(GEShMYdREqC(FZC_YbplRgEF}GsjA#s3; zPmd4N>4k%_aD7*ioPDY@YWd#HC?(ZKuRF5CYq9>!=`QrVxjGJbF3l1y>ck^<#(qk6 ze`H0;1$g*uIQjytluZ~IZy)cBLJ=VqnX&>N8f#3K7#j8U&U4Q>?8V||$M4T~&^?Mk z;2l3TvI`W!b!aa2Hr%L>rDpurPJIM=K00o*;T`wi;!q~vx2Z$&x^-!ITXxRXd7e1n zEh{^b@pbbvGS-v)T-Q6AS&TLjxj)VquFsP{bPn?+%7LZ;`%m_B(vRQTI?D*KFE0N* zM_4pyekhzwKYTPKe&of{?5nOEmgo!y{)<|=mYrGX$!JJ&L56ZDY*dV~LS!KL<9FI> z3b`#tB(jP>~7?V?qG(OB2pjk+cIst`0+zfVtkM}8AquZer9AS@NiBtFEulfZr$tA zuR`ZB6C4tp0CG`oYMKdfKeif|l0cKHv8X7oO;gxn`VQh#ij7MLcRU~-PZn9IkRSBb z=~pnw*J$pB_M~k~poq>QR*U`2dcRj!K};A_n{kO8lF;)5(}loyk3(c*|q|YY8+l z4XOB#QToB;-&>xDviLD0kW-}&7-nl7sloxlekMO6l2D~!v~$4t)t|q7r5kYO&aG27 z%E?JiPS!Ik*5G1n3^Vm^coBJo5RR|wsJ0;pG4=)L zZyb@9Ni5*8i}Rbe?ESpIx9_K&B<`)ByF=*A-W+38|CN~b4H->Ijnm(<$!2|w-6$~u z^@k<;>9c>^VrBOYms0@lr%cs<=m1ndMnnq1)Oh6tF8$9!UAm^EIO4+#jdWEa&^rY9 zY}jtCmXj1Fg4QaDsum%8Q~T({NiseuHEOyE+1dCbpL<`JAeWykfh*X zeG-W3*2loOu!l`$_46WQBPmhUq#c31%K4n!1~ZQe$J0rfAO4?m!k#20>_C;L1ZP^1 zcC4L~e(gt9!&)z?{XH#? zUowZ7^gKL#1`G$?hJeBcroqISg^-nPB%n*c%nWBF2*V^Qh6Ze_NGqfM{{E`K-vsWK zMp|+nPc31_03!*E;eiRQBc>CWs-+MwAJHKbu-ark zuMrfHBCqn&(ET?};!9+!Oz?enZl|xT?s461_*BvuU}5Yol;0n^w=9(%*I3>qSVt); z8e@qCjVzIOc&;3$-Z3f|)1R>dR+8FEko-uH zky;0E>9Aa=m5R%;g$xcJ1{QybFw+QvzrRf~r14W08PHz)B@=IYxr!@>w;CLzM)#W{o-^;EGh z;$@R82KFIi;*ydh9MBK^q$nwY-mI5rkzhU))%qfG6S0|JxP9pr68L{D5j!;49fM}u zq$0!A6gd=VWm2UvO#Dd(&Nkh!5|{R7-Q94-x4hKUSSkk--Ei&^WW>?$Ld^b1$5tU^ zUwp$p!;-kUR5)6$3O+d>5_q>_ZpCL(iaZcc(tu5m&{8B>l2jV!;z*MDN{-VfH4x!1 zW~M>pr4n5ZuF`<$pDs0q<1AOvuEf{qwN3mmV)RV%0rmUE=slFl9xTp9$65Ioi}5cF z0wCb`C)m3|+e)N`rnE+l66bE5)dg2?A|YqPNaT)D4MF!6SKM1soqZTsMw|aS>G@hX z0GN%|z{B4cUwi*^5);VzO=}F4YyUOTfl^Ej-mlRe2CS zt!ZC!Pv3g0&GDrDzH)|h%LI(YnW7UXI8VVj6v(bV0X7SU(LhCVl8Ane+p?PTiinENOfk(& zEB;5S-O4cFciYIt16!mDM-f&yFte(1s?~9 zF7m-1mTg;SDK2V-;nt&%ELjAZ*F8@;9#7(33gNHl{QcFdz#l)j+b{_S3(YFbgbL8o z#8(n)b1{vM(LjZlk%(JKFanCw%23`0LRHd#@e3p6pw)@f2TyDh$5!`r?&a{~StYVSk5foAd?8)4Q-{t~Ny(D!0Yk z>%7-_ze?w7+2$A^hhrXWY$X2bep{fBFFMsMhaVbN_J+7#uw%5?Vi*5%Jq`&R9ErI* zUHT_M}838&I288Z1Y;p2(OC994@vD{A@5N8%QeOhCu6owle+#sM7Y_WuYyF%hj zhZ$I;<#HZgOF#vJO^$qOrRhKYC4MQ$tqmZ0V}}uLa4T1xI(*nBg&r6b;*n8{DhfBn zDngjU$J0=&N_T!IT-PS~`mwjox8uE^#iV`K`b-z?O@jX!gNI=K{UU$B{&{3DoG#|L zx)TznJy@?32$tKuJ*IKhm#nvlaF|sTd7F>GN5RwP;zG}*h{6&I*Uj+pyMO`R?EHWl zrz88B@9^7YaW>#8!D3~2{=KfB=QLxm&&$oAJAO4hx$7m*@oWXiQ;mWqwlUuQ7Au0l zW6jxMwu&5!%+|)m1f?&xqRX`YkRqz+<=k7s*XMlm!z+u;SoWBhzYMD7nKhOIkm*7Q&}5*Gkzq-j z0n*?hfT)6#McTJMktvFzEbs?NaY^?gk^*DF+K~jFP)g|3(PS|8A>-}b*f=lNCsaSv zpnyOLcjKf6(`n5mmjeQQq|La`ROTFGY1sI2j6x=t-4Wg9LCh9*6>J$p+RiN@Me!vG zZu}LdlXuNr88+=%&R;be$fYfvmyF&ceN%->Q1_Qj+qzj^=R{0C z`w{7dq`YincRtj-@y+Y6@-K*-S2u}qPuo`6s?w3Xs4FA4AGSGj11Yf)yVi&Zv< zIqn&(G1g_)V0&HqqNUL z?%EX7P-pm-&n`NFS(X3N;`~kow!NWy*izZa_sQKsh!eK)`IuN+2z8hN-QQt88{>`= zTvFa5`5+El#DT$xu8t^DNP;!ifsEB%dZ3V!es*GVfF-G((fdK1S70rjkU&7fN=b-x zrluiyHGqVw$M8V2W7|(4+{iH#1qsbJdMPq;)ip(iK1pMM!<4dTW}-_#p6xtFxG6nQ z`S=-LSunZtvB`rklglX~3iqB5#6cu^EHki-3|q)3_=}TFI>bXT$<@uYY&>hF7BH>x zc;}kF3nX@|Rux+%QZfbKU=2Ym-G0;wPm(HeI{xXF$$9qUa4xAh+Y4_#J+UI2~ zA>WR^q$qUBHxhZ&+})wvt@)iLuhr~YRpUpEayW@7Q5hjI3f+q7TFBlteK(mh@1i)F z1l8i#F~{}1V58?T9b@mg(`KTZrqWbioOg;zZXAj?t~>o$>0`_HmO~2*MZFJ0^Ji4- zN3192@T(*B>iLO9bn+u0(-$=95kzABoF@U8R(m0VQU$(=1WqA_rs)VwAjj0VIQ57E z2L?TPuNbFe;xW@xs6@PfDQ;m<#Oi~_C1(<9V5XAIM}8aRg|-v!lTLvENU&dFMGL?y z`5Q*XTIvOi#F;Ago5ax=d3K@a?HNButpaX()8U7$?A9QN`*y4iY?@`VsW76cv{+j9 z+OT()&%0dkU8c}bcGD=;TK72w1U+_D)P_G!Z&rtk*X-jXFuh7W);NCgVzXNJHlj%c zZ!e{%SnjiCkaL{7T=CzRrCWFC_D6S)@QlO6jp*-3*v79yT<-&8n4r?F!g66v4Dc-* zMB#(uM$n^ccntWbRvIKw5P-b6t@T>9V^ES)cBjiQQp>IuA6ia`_klnzkHhQ=_5RT7 zauF7W9~$hMO5-`PvIteCOjUXN>zwxFURxE-4g{Wi7ky7is)K&#z?~r@Dj8hv(Fieb z!bQZ<0{M73XNWN^LH{nBpJ$V!hRAow=TS<6@ouYdyv5k#@`pFnXN@{L~sPEIgXa z3J;4)m==6{Xs+cDC#}M4vCLJlpZ|vo$UjPK+lw}8L9R#k5i6I>BNI906JK7S`SMYu zxq^K5%fm!Rrdmwp*z&(3v%=~VuikDKe;LcH^O_a~_CSS&VFi#gf-W=SORMkvDdh}96b zm6h1j^46^mKz%ngDoJJ(6qMbDUnZ^5Zi?MqWC&Bs{_ghnVcHB=2F-PYh)W1-UIVN1 zX%AQB)w`9=>zDErt!DwcJb;CoT>G~Whf0}I>T7(l44+t!#bYVGq$p?>=O(mlPpaP< zbww@3-AZx$$HuPsa9?P{7sZ*n(vA>husNi5Yue!IJR{r z4AT*JD#INz2hu!py9vFZF@|I)OgOz=c0B!z4?H|~gK3uM(9AT zLyy+8GU|%Hz1wztpClK)2lWsh?CNeN225K;eE&#|gNNXPomsZEq*)6eyJ|w1?t=~o zUnzf~u}P9il3Zd+BU$pevw+{2j4!>u=PokEdfc z`t@Qu(ueVTrJ~ZKJxuy!rEz&>oy+CS*=H?8BlvD$=wX=783AwMzR%$qJiEE^A;Nn3 zOj2y))oJhW({6^o&<M3g_g0PTv0MKnLQIo zNN`DEQ}z&|D+-0F0<%>H%!z$rp#QYxOI4;~Ok@X9%d6#5n~?XrN4@1LE>wQDAt@)= z9IyezAdhrT>DO?dxGm(UZ`}n!fESy^wB`|;6-{g52yjJ=QG)rBU&&YD_T`6QOa_1J z{Vz3y;bmQgyw;P-X295r$Lhe##p|wXjOkvMi)_dJ8hn{& z&2Ag^kQyKpmRcng<*DWOQ44-t7ngOm9Y0>4)0h47Ow+kaEeuhSO+1q6r7p4PvpsEz zADt{g$73C%g}-gRWDJ$CL&*}$QeD=My??rF4MH7ZS7&|!TU_f53&RqklVBV+_uSwq zwXunwt>0Ut_Z+ld>`0v;P0YqNNoTlI)PQ9anO8F*_G{U%!o(A0`;cntq7~CID;#@f zxx;mgeH`lgJv!U0D37;Ra=e6SzE{CD&wa0Z#^>JJhpH62;;UZHpY8+m>}04vguJ*Zdi{tUHlr@ zsqSV=dF8QP=ed&^y*amS0(jFc<4)Vy-{&7!@&qSl!#sCNeJb$#%3Ug6Z@6Ri{B&zz zdy@VQe=6llILhou_+c{JtV}dPf{fO=I7< zlM2`nGokixTkcQzho4k(Et@QlIJ~g|5+EJ80mTVTMRvuMi&zt7Z2P?i`~gDTPB%#y zB57zt2{NUQ?D5cy0b+@|?@^@AZ203>qfF%F6f%KaBxH1TBB$R!z9`UAQ3$XXWuxYd z84GesX7B8V&|8QiWfw?icsz zIkf*b#5Ldov$(w(*X2?8ad&=w-BkDZ`Zr)z@&9Fz*b`62&>sjJ8Nae!G8Q zFbpkQ5N+9rmbDr#S2KcrABX9cOuU%qe%iW0X?j7vQsWXxzL)zLh@oe%*VCY7!%ETt z^V{z^duE)*g(?k)fuj7|z*tp+>Wov8evqfU$pZ0mt4TIs1~DkC`W4XGasBq58thtT zg&@>e4-J&6ri-uce*SfHINhH7g|o05$3a@?5vquR`FAc8dWo8sM`r}pBrz@jjlLjB{_X47~h9X&-*nq70>NgE8|XtfN|Qp@&Iq9aC~oC zuggG`PThu|*hp>hnro!OsOM&H|AmS-6hpz~wp`cGM{n~cH^)%wgoMT}8mH+q^W`>` z&#m8k7pFSRlomUj(mNU)Qx(`HjEvVgR)snX%bM*+IqTPXJ3WTXK0%51K;8!Kgh-Yp zY60Os%<1Tu<$Hn{v!2^4?KNIPvFa3Nl75w?gURZi-CI+StMpXgJzc;GG9NsNHY~)e zYrxtS)63{RACPVR^oaJkbH!g|*BtdW+Z4@PJ;( z_w=-MUl%M@>sUbe)c=b=WEM@n?fbV3pZPPMh535X%^f$sm!F>bznAX!Gn$lDymcjV zN$&b3B)%*~f$U@!iT@{FK$kUw6t3m{v7T$Ig#@72Eq`=FWK%U}NLW zg$7r;+rHq_uyZ{xW`}hyE7|9*^~TC&BvDQ)LtRwB3L5(*xj(j9{qj-#h-I1SxlLje zn1lp#bbpwNiUza@eK@~8h=SM#A;uu6L%wk|X7hQ0J0zreQO0F6zYwfDOWLls5vT#f zO*(N}A;BUPDOTxh2~SSHFE=*G-6-7RGUCq4azlyELTz*4gclUj=`u-~+u+4XEt7H$ zu0Vs`Qk_NW5jX3lvUux+uaiorcc;gB*=Yzn`}~<7vE|c@*&h zSC)r$#b8p!nZ|>UhWQ2G-^AGpvm553l!pMmGzWXREXxrz#xqj|G;E z5ZL6c&GGujy_v$(n!2&`VaPIN%%18dT<NL(d`LE>VTx?= z11__-N~6wq!LH@R7T?BN45J8*NfeoiPt|%(3v4$#U5IBoqh@7z-;cENjqE{%Ea?3u zjcnM)TZUt5taZ3N0&-RV5cg@$=$_boH!f|hL(^ptlFPH@;f8Fu?P*B5eE zynD!M4{qpPE>-Qjto0fL+e<)NHf<}XZ`EH;Gg$^i=2~(%L&$oJF?o+YK zX56Vk^;#S#6-<+D@|j|oxS0$aABj`qVBap`8j7)k|2lD)q5!U1Z*PWq#<^d$%zcJQ zwR%6IXG8?v(wS*mH+Lu$-P-k@xs$kT?`yIdC&pn0nL5Vf5t7QQ_)Y=jRun(B`}6Gb z;rve*VizMj68~NC<$;Kei5Y~$11ZQPHpd(Vw_Y?Qzd&cpo z9L`g{CVJqxt!mO+Rvmks7`<22)!vcz+l5q5jd|waeI9q!FxfVJ<|>UXOUJYa@=LgQFO*ZZgAQ29?YjRP=e zoy+$+S~aD#!tqDM!*=quo~U6F%}s!1=lJ{)KS->cmrr%I-}S22Ua!vtzgnz*YSVy? zcqPon)+mU{t#?^-4j1F&3eDGa#UX+`IgKUHV#&>QWGXB#oh>uWo)ux1aBQ(*waM+% zep``}+I_}XOY7h`<~*f3_|fW;8b`D;xArw`_(HYmh#+lRz!zoXw@%h1g2Z@%h4!b< z%4BkUvuK$5d~*9YxX{N1TXXedYOU^5;QQw6-uuG|*xH}4W%JyA_BTP?3B(N~(fEd8 z7|m(+CWW=}c+TOmTHu2}qL&?guI{jY(gio*e7I3UDAQh&-HsunolV)SzaO zGp*Bk?6xBdUTjtJc&o@XRo%I^f+KLnX12%Mw;iJf{=YV^GAycg?NSno;0z)lNDd4k z4MRwWFtjuX(%mUY3IozHlyrA@cSsEgNT*7tfaDP0yzlWn*LR(Be(fL6pS_=Z?R&51 zUTbZkG|SzNzahi_;R!!#RF%l|6C}(#gwhU3(Wf6w;NwXTzU)bsI7UG8wFYusMD5S&<9QpD3-v7L7@ zqjPy6sK0I;7S7_cg9Z6Q`(=78Po5xY9X4K~Fb4Uor;|?4uo4AQCO9xtoRV1L%Ssx> zq(e7##tjv+LbPU0oxXN7SVz}Gv?U_ETgfI-T_D0P8Tt5|kEfQ*$CF;345ssPrN#(0GxUzFrSNIaAGiBB!<7`TfJ#2^SCd4}n_q z(;2&03h!S{=tT={(?>VaN^h>Ze9|&u^Svu)#C$bTCksM^6)d}!&#IZsoq;p`G!6~p zW}}eLI@%6dn~(Nn*15j5rD=AjB*}4&NUF~={Yy@c|I`Hlr-W~=(D>bU5QxU3Up{i3 zp2V6k^&|o!zQ%B@%RC6{WVb!S49iz;vo800qvPX-a7x2#o$1L4 z>VvKX1||FM*04zZy~kg|Ea++SnDC-%tvqBcrwItjRMu#7cV(@Np2?-|kBq#8xe3WK z44I3_S|ACQ&2EU1(@7`(ujX39fQWv1N}$(Wrka^6rN!-0=g8;kq*fBqldnKBM`u5^ z0F!lk52{PvgnXG`7e4?Kk5 zF|DOj&cwzzM1ap7B58uAj+(xd)esScKRrKsPfMZCezvWvk>kmKp`$N#`Xy6qgqywX zhtu)~La52Hf@%5ACogrwg{xVSNTbZ5gTQ&no$589`n+QY#ttX zGiuz_$B=I}e8>|KK}P|>m8vH-r`i#ihd&PDdem@1#(`-)Tb=t`cn1`ZT@-ko=2;NT zAk(%383DM*6^0(*JQgv)&fxq(9iw6EhUzk3SVUs2xbUTmdxA#UGD41A@ZvA#1# z3|p{>0E3}ijWrJUx7iLLFObi9BFadMsU*DIzTLjz&|O@e?{#NL#|!WQ%oOOq~{iCjkqNgvTj+>_?(+=X+MxP(}vW~?i#o6&C7uIjN++vm6`M^fXEYcS5&l(!o3JCD}KK~=O;at zjBph5_%{A+@d)Ch9USbF770s@>a%sv5qRH?8BF0dvR8jD9`-^N&TUB zcoxK*L7sY7?^-hZ_xO0PO?F;@<7U?{aA%QvnD-4m9ay=+!d(9032V6A@z*UX>K#%} zW$fbNeB;nh;ThoH@hjl-0jB_jZ)DC;mCjA969;Jo9h3hr!(x%j-lfTQ1 zv#hw@@%o81Fx5%9zU*FSvLxVa7zmGY4-L=1| zs+41;rAj7(1f&J%2*RSuW)(8Fg&tI%f?6Ef&N3E#<`)I{Uo9-BQ0ej?p`B*oJfR(d zi@WCx`TWZG-ma!enct3zSy@hcCe_=IxI8p}p$mVzDaFm#!i9iRx5p}OL3F{jT(UM) z|A+@lJa|`id-q_n9VW+2x1h1f%Wm2fbso&v_d8kv6vK6qcczE#0C(5-vM$(`%em6qS~O_t2XecojL9{Qrs{4CwFdCYq3 z*4cAurJd_IjAi+YMH5@E`+P~brSmFp?KRTvcE?aL@Vl!&o|=to=d2!?DTGMRJYdg4@8&Q{Tt8-iQ0U=gYlV7EQGqHZL zIL)WP{e{{|2PTe90MbTOJfxIkJm((oq!q2uvpe4?&&XX~AM`zV>3KTlMU~RauET+| zY6qAp#!Z-P-D2h8ef!ser`dMQCtOi!eQgSRSZnppFeI(U7C`cDyJm z5$6Dxw8 zqEAi9-=pwC5w2*0jg>=&U$bq%tm;oOQWkFtU1^u}e&n2Q)ov-kz<`}??dx$VA18H_ zpJz50Rp!l@k`Kpom0ohI_5Y8miJf+w9`tSoMO8Hr^z)sj%wvwfRb{KffF=yY)klU#GG%(-*yPt=dS+1eG?PqVa$O)s*$*({{G&QXZ zBR3!drP)nMg%U`!)@I!i0lsD)eKZ{%5_fCc^e42}+g zZ{z)Blg>t(2=&P7e2VS!k8F0@A`pG#=>|Bo+y9=gUc^ShNs(6@8tQM@L6Kkxfq#H| zmFf%=ZH>cDcdUwbWH(}>a`CkkVSwoAl0X#7@srKBdC29z>V+YLOyd~DTmZmP!D?Ig zSQXT)@Swz}UNLD&lw{bbseKQ9N^_7+ zE26~_hL6RW-~2Tyy>*=?9#HcOC4AjwECr1-xk#4}Fk<;a<~^wL0`P0+Lm4z?7gdzL zv=h|7Zhe11iykt0wU_yLki>U-KXA*DaJKdiLFsIQ9Xu zRyoso7_IsJp)iBcWJlUm>1-MAaIQG$ho>$1>4U!r;Jeg( zS>4$ke8NphVTAcUVrRD%-_waDODbVnmO^_0gi%s3E&KdZ(y}LyRS===#~z9 z=R2SGgtL#>IJAAwrqq3b(zV!w zsrE_{h&?4)VyE)n9&UH7oa387r^hH*{=gmIc1T&;ae2bhd~B}uE|G6m$Ln%0kA-2F zSFPe?Th#Tk***aIjVKyQwLT^IR?#FbOclSfy+h&icnTbDtaS8y3VY~B5SwIFrd9Dcm-W^zbP$$% zr%j0TwzQwGX|D3dqv}YvgY=L!O12+A( zsXNt^74lf#^VN4qPZ7F+jT}ttiuIDtNY&wLr_Qi$oEP)ymLgbOwze7N_%uoZqOav5 zNPQD$#WPKpz{;W*VKO@e=gq&`T=INcAza9JT2dINbWlyg`f6YBvc|mj>mZ~%B-lpe ze%PkQec6GsR8~+Xx}^)h%d@O#ZPdcRo7Dkb>lGfIy*i+H?qp>@QfO?bK}e}2Oj+nO z;O3*(SK0uft=dl+Om-7V%p7lZutlSV&)PWDlkLXzxmD~7Vw2tPdefAGFHb1SemasH zD@eB-g|?^Z52tNe92gZPmA$a$-4vZ7PQ>JEW0&RM8g~zpd%LJz$rJv=9ba*4Yf6;{ ztkAJy>nxx?5{EpihVWIkSriul!6Vs8SQ!k4>R-}%ZG;82j0ec))!{mL)b-*2^1*bW z<9;JW5nY9(=30BHc7+zS;1rBy8r$cEDp27`)(d^bh1VGeEG(L#WiHE$6OFu)K$5NS(u!ZchLvy(s(Joag;r z1DzRo?I+S>791zy?CFky^XF);)|TkdZU~Hb0Nj__Mj2cQ=?M{iVVs_Aypc{j^oDjf zv_@J+#$>(SIEYNtra++9E8A|LvFZU6zFD^j7!OBccq+M=&6c(bo#* z$V~JVzrKW3Rt3Kz+1wVgPUZQsXygpJ_;~|W>6oc!-`IS#sVHGA+hcL;+uPgpQWha) ziFT5$(TiKdK#Y6;H6T&2p%?k@YQo7SVV4pfn}xj5)3r4jnhuAT0lJ&P8hS?HR5`9v z+yZy4f7vx1=~PUl;w-9mw<F`O@CwUES-rxKt#qU{Rt#|W5hTI3TY`(c==B#M`on` zTyx);w%3*lX!qQMc%Jv?GnDupDxSN{a{k(#yh55N00GNg~RXa zmI{g(OA1gmAmcmdYJQxZweTmpV@-uY<$J>v;RqQPC5I%(nRILz$43<7X*A_*&k@U? z(`4IX`T5T^wNqvf@SNsAyVQ{b?a`(Ij8K@vsK1fdAjO4aRWi2DdD&K+b}#3F(9> zWcQbd!!TJHG?Z(QuEswl$(3;`)3H#>np=d)o#H+sY6Ik~QjEZ7eHQ|FK}DFNUnLKR@z zVWM#=7Y!=FPcS1(U9NVbPGcH~s30C~G*)q!OZ~@O?Z`u|ViUs9Jtp;dR9WkmNq|uU z7;&9cc)ky!87zM(5w)qj>dUmJd1si|Xg5tUpG?o_1gHL3#HoqDHMi{89U<9tFgE7_ z>%W#o={JhXMIM{x`SR2~=8Mz@Ezq48D z0Cf5k4J?&bmj8$-{k`fzn`lrqQ`=$B&Nq$L*g%*G* z1q=V@PD*2;?4|&*gNpyPx)$mWR8$snRr+tJp*;CvxQr8JwEheF|7*32=;J+(!fUP} V)iopu>W_+OP-!Kp3JJr2{{x%~kDUMj literal 0 HcmV?d00001