From 994fa3236b7076672ede36536e6880d5cb7b194e Mon Sep 17 00:00:00 2001 From: Oscar Jalnefjord Date: Mon, 15 May 2023 11:46:50 +0200 Subject: [PATCH] guidelines for contributions --- README.md | 4 +-- doc/create_local_copy_of_repository.md | 46 ++++++++++++++++++++++--- doc/figs/fork.png | Bin 0 -> 8446 bytes doc/figs/github_clone.png | Bin 0 -> 22827 bytes doc/figs/github_pullrequest.png | Bin 0 -> 11490 bytes doc/figs/vscode_clone.png | Bin 0 -> 18695 bytes doc/figs/vscode_commit.png | Bin 0 -> 9895 bytes doc/figs/vscode_push.png | Bin 0 -> 7852 bytes doc/guidelines_for_contributions.md | 11 +++--- 9 files changed, 49 insertions(+), 12 deletions(-) create mode 100644 doc/figs/fork.png create mode 100644 doc/figs/github_clone.png create mode 100644 doc/figs/github_pullrequest.png create mode 100644 doc/figs/vscode_clone.png create mode 100644 doc/figs/vscode_commit.png create mode 100644 doc/figs/vscode_push.png diff --git a/README.md b/README.md index 4ea4eec0..5cb41858 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ If you would like to contribute with code, please follow the instructions below: * [Setting up Git](doc/setting_up_git.md) * [How to create a copy of the respository and contribute changes to the repository](doc/create_local_copy_of_repository.md) -* [Guidelines for code contribution](doc/guidelines_for_contributions.md) +* [Guidelines for IVIM code contribution](doc/guidelines_for_contributions.md) * [Guidelines to creating a test file](doc/creating_test.md) ## Repository Organization @@ -23,7 +23,7 @@ The repository is organized in four main folders along with configuration files The **doc** folder contains all documentation related to the repository of task force 2.4. -The **src** folder contains source code contributed by the the community. Within **src**, the **original** folder contains the code to be tested, and the **wrappers** folder contains code for harmizing the calls the different code contributions. Within the **original** folders, contributions are stored in Initials_InstitutionCountry, e.g. src/original/OGC_AmsterdamUMC. +The **src** folder contains source code contributed by the the community. Within **src**, the **original** folder contains the code to be tested, and the **wrappers** folder contains code for harmizing the calls the different code contributions. Within the **original** folders, contributions are stored in Initials_Institution, e.g. src/original/OGC_AmsterdamUMC. The **test** folder contains the test files corresponding to the contributed code in **src**. *to be structured* diff --git a/doc/create_local_copy_of_repository.md b/doc/create_local_copy_of_repository.md index 98cd466e..c03508f0 100644 --- a/doc/create_local_copy_of_repository.md +++ b/doc/create_local_copy_of_repository.md @@ -2,10 +2,46 @@ The instructions outlined below shows a few (but far from all) ways for creating a copy of the repository and contribute with changes. -# Using Visual Studio Code -*to be added* +# Creating a local copy of the repository +Create a github user: [Link to Github](https://github.com/) -# Alternative approach -- Create a github user +Create your own fork of the repository with the fork button in the upper right corner: + +![Fork](figs/fork.png) + +Copy the link of your fork: + +![Github_clone](figs/github_clone.png) + +Continue with one of the following methods: + +## Using Visual Studio Code +Press the "Clone Repository" button under the "Source Control" tab and follow the instructions: + +![vscode_clone](figs/vscode_clone.png) + +## Using commandline tools - `git clone ` -- e.g. `git clone git@github.com:OSIPI/TF2.4_IVIM-MRI_CodeCollection.git` \ No newline at end of file +- e.g. `git clone git@github.com:oscarjalnefjord/TF2.4_IVIM-MRI_CodeCollection.git` + +# Contributing changes +If you have made changes, e.g. added new IVIM code from you group or made some change to the existing code, it can be transfered to the OSIPI repository by a commit and pull request. + +First, upload your changes to github by a commit (see alternative methods below). + +Second, generate a pull request for the OSIPI repository maintainers to accept by pressing the "Contribute" and then "Open pull request". Follow the instructions and write a message for the maintainers such that it is understandable what changes and/or additions to the code are intended to do. + +![github_pullrequest](figs/github_pullrequest.png) + +## Using Visual Studio Code +Press the "Commit" button under the "Source Control" tab after writing some short description of the commit e.g. "nlls fitting GU SWE": + +![vscode_commit](figs/vscode_commit.png) + +Push the changes to github with the "Sync Changes" button under the "Source Control" tab: + +![vscode_push](figs/vscode_push.png) + +## Using commandline tools +- `git commit -am "commit message"` +- `git push` diff --git a/doc/figs/fork.png b/doc/figs/fork.png new file mode 100644 index 0000000000000000000000000000000000000000..9d606bafd84c74e5543929d4f55886b7a120f6bd GIT binary patch literal 8446 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 literal 0 HcmV?d00001 diff --git a/doc/figs/github_pullrequest.png b/doc/figs/github_pullrequest.png new file mode 100644 index 0000000000000000000000000000000000000000..4b491b28b0aa7bfe8dee7c2de1f3f3a1eaf67ea4 GIT binary patch literal 11490 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 BY~%m{ literal 0 HcmV?d00001 diff --git a/doc/figs/vscode_clone.png b/doc/figs/vscode_clone.png new file mode 100644 index 0000000000000000000000000000000000000000..77fc0ceb343f59424a4450f98c3e54e9350a0653 GIT binary patch literal 18695 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 KKbLh*2~7YzxMSV` literal 0 HcmV?d00001 diff --git a/doc/figs/vscode_commit.png b/doc/figs/vscode_commit.png new file mode 100644 index 0000000000000000000000000000000000000000..b3a87a55e4a87b0b0be3190fd809f56e1269c9ce GIT binary patch literal 9895 zcmb7qRa6|&5-l>gGiY!p1a~Ls0Ks(#I=E|syASRz!6gJ365L^MnGgsP2m~fba0wRd zaqs)NAMfY&T3vl=tzLCb*XdPz*Y1YuXn_cDU*Mvkpb)63D(Ru1pb9*XbFeX=Z5v*H z!t({yM-QZc(l|@|=h*=`$ZN`@puke`?jab@K8~lVi4O`2;qZS>)G?1*TND&_X*DHz z1AmL7VmvdlrIn{JuJZ7NaNKflebNZ3g)IylF6T&HHG(wb4Y;EQP95CX2X$Sg!b43{ z_|tObizuG5^%u#HEQ^>TZ~2y$KB@D<#|u7$JCZ3K^CpzvmI?*=`uVQd<^J4mIS-aA zO_xCA`|KQcTompG>`c3I@bNX3LTWm?yDQ4e6|%4+_f%^UPqXD3!~jTcT098=vh@FJ zm#<(IgZigKnZv&}87D^_Imhx5qE=5Bx^2XPhw*#Z_<`bNVtrG}Rh)&|w2QXNEU&XX zK@l@^6U$5qc{$O3Xb8v{$Yk6Qw~($(_Q{RY+UD$V=^sgE?$@*sMvW+E|>D z5;-THkeB_xyDSqrT2}=)eJJ!&u%o_&aC+a00`;3^1n~DQbUW~L@mg!bk7Z2|-4)H8 zy?-8@=2jcovFZ@jj5H*wD+STb7DI$=-bOBClBo)=GmE;NB5G!FL)Bxzp@K_yt^(K6=lAZA zkzRQE>C#=h&2D<1SP*+b8|aZ-ZCrTW!ek!7*413 z;_$=Y03c;{F;92IUV})(s78mUnwx$)k|bH=j7x|zvoaLx%R`HuZdbh)DQoi2@Nh4$ z=>(+_XSY?({BVqydaYOAaRF@Zph=~<92^bQOo2=BcdC}GKaLb4?D6*>d^Sl#j(L^A z!MLk5W0+&{I-7!oiAEfZUz{n8z+6^I%`rY;1`}12_c(shnv`rQP392|^*YlgRP3%- z%7yXZ_P${fp*1>!OYXyWzZ68VfJ)|tLU8i~o{4xc1r&u{;f2>`Gf?KTl7l(7P787| zq0**+qs_ON0@bO+0^)RvE#Pli59xH79^>F_*$~IlR`TTDN`v(H6BD(P-s(x~o|zL$ zJAj!4|8#QhZ4-vlwHygJ<8@#=Fijm+Rly~&y-wI!zWovYwmu%N04~(#WJU{OJh8&$ zg-s!t6)EL$jDq-yWYAc^cy|?U(gGaD{(sNH;}Sd2fBgzSu5WFND}L8KIh>Zob`1_6 zd@$2FHAgnR_Emdn_D^IfJL$C&@rRp?+c(HtT%d^Ve7r?4_g3Xf{gwX$oN1vSrPF(k zSjj&?!KrrRf?OvM|J#+1EQXVYZTZq$f637}!Oh8REy7j$inj35Jwd*2zpXXM8U|x< z9!Zt1XGaQhjltCGF@s|lq_}xvt{FcuI)48dehXFreHxTTuhe5P#+-(Db zBuGCdOHBp6j9}`~NJag_vDgKJ%E_FHk<0SNhcsAPm^{&dOgf$C8*O*R8&Kjae>C75 z^z}@p- z9xM_)4y`J&T~a0aX0lsl_F6fa1CyGVq2l4(v-3Wqgvy?U&3sUcF+>|dwO_Q%OLpTj zg6OeXC=uW&`XY}VV8_uy=B{zS`*}b&aSHhoOu8MrMnuUn%!;&b{f(`nhKg>iC#I)%V>B?)8s$9P%rH^tcOPlTB=aKTPNP7A8upm zNV2Pm;n4SEs@bS}z5ZQ%qejcG`wCD`o6fb6k=YxZqe7cr@{;Ygeac6r!7^&%N`?PS zLT|E%`4&nZk=5#oANy}x4AtJBnPWbD_g!>Mb^;@-#$Pf_A1eif2L<+-&@NT0$21Oy z8;Jtf%Gvn99}8VobqdtAui_2C5@gvXuhP!>OgpVQ$7lN^eyN(nTs4SyK$sOf0e@&g?`|1b++nQqXlrhr#qlT=?sY zj%ZAwYI@6V|ET_imWT{3lRzvcur!v(`Xkv=g*>ii96LgaV@IZ0+Snvq+8NuI$k=nz zRURG8iSvu1U-o*#9u%kUo7+Ys1FT1PqVk2b8w4usdEtOk8u837)Vr7&Gsl)!5K{wv zrN0hiP6DFZ2=BtOu=i)52Wtcd8APt%Y+gu z*-A-_u5mO&_R?r$Q6}Q+8PMQd9i`qI+VU}sLH(nQmv3}WXF_coenOT~>2$@_h~3oL zynWl7!@aVm@$P&Cx9lg*gFbIH@0s6`@k_8;1LT)Q{@03X9BK~~8G{BhwIfCTag~gU zclZyqy1dlt@5cZ=FP#&nO-z?dp?b(Ll7pE2(DTus_uKTy_d5EKvBwoxR2J;WU&~*C zE-zfF^{Aqx1tRx4zLMcZG9Kfp!m%TpUH-4-9*4F*nycFAXeBX9^4{O?f*GyxeZmSf zwG>6pKl@o-x3>jBh@e#R@62v)n+&*k$Y8!`|8*CbRU`x=84q8O{@3Di*mZPv4$jX5 z2?=M^uAUK{;Q8R>;Ze4;t7^`}+J@uvzuVI>>-N=rhJQz%f0qYwKD!0i&L)#k>TqfP zNJp9miR=Ge+W%|p3K#P582z_2RCRf}v}kj&icmeUzffgf^jJ@tDO_UlqPKJiV<357 zo%Tc2CMdEa^+SNQAbsE-lUb*?a#jHrB@AcVDeq|=M-5IYonn3b&8>V<`26ahaD8Df zZQ+<9liQ%P@cNG{)l!G(&zxTSX?MA|;1G=k>YIk(>A{3f@D+@Ie6#$nP{%QldwuK& zC6kvqS|G!c+wfgJu0_+4Ww*9r;n$M#Nd3Z9=dqY(y7l$-o5#BoB zYx}#KNr||vwO;bs$;p6*VR>eIQG}HQ(Te@YVcE7kYC&(Nv^IxC$=?g4vpqOFZZ{}> z`pcpRq$IpCaZ@Ywt?y@9NWpj8s=v$j$t*uOaFT+hdF_nUtz4DVKLKmbb$3TGG*8FH0b9(xi&ru2>;|EjgR<{y zxk#1EhZUI@xr<07371*TFRwSt5eC`u!VxOi(KTPi&7>o~Cz;hU{Bov1k;?DwhJ z9OXhTgD&zp-szHy!XEJxp=VzEsT_QcTzRZ77-^BQ<1+L#UWel6gMj6)7{8Xuvo7)B z;!NPp3iODJAlS7uvG`ln)kCYBeJJA`jETgBg8SV{Jw?9TxXsqL_R>Cwswt?8UHDqJ zBY9Ht1+@kZ>hI%u-1)XDjoOLex)0JOfx#MH|+me5dZ$ZTB$HI_P-jjf6|a@*XVfR^)0g{u{Brc47d`LQ;S4v| ziH?|GZ6Q$TolSH{|MN3o2y@6$e%{gQZI(E{Cqr=uw@W^8GlB5L9dxu>Uie$`Abqx1;bB#)mmrYC&s*p zX8a}%@|#JbaY!h%D#Rr)T$+^h2tO?8+gt@ z%atalPEq#K!3wX`8>R+qgSkCsB=+6U)^~*}<)0xYMlD3Nx{vIgx?-GX^KrAWutmA( zQa{!vV5Cg{*i(se*V6DwiYG+Z^v#CM*cx}oXe0b7mX$6(#*0R?cau_(robH(QH#4n z01(SG4)zKbf9r2H(z4|P>GZc{+`zduFcR8Y8{dhU41%9B-u(5EZ*SbX{CxdFr>S97 z`&L5S_Xc0x&?u3SgeCqi%9lzD(`snizlT4B8x54>H4 zNXq=b)x6l}a@!&22r9{Yr7}}A3&7X05Kow)xuzoK*LpciyB_i7xnSRy;04n|2eSst z>j^gd!$8DJ2R1XE4yM|NWmK%vB;oE$2u2@dC>frQen(0Hv=bQob^C{t>vAyJ%-NXh z5p*tfmsIIszA;qV?@*}8`W}Vt+^@>!8UrE>eKm>*MYXwmRdypx7gTVTKyI2yB~N^% zh!>s7@(VdDowx6DGwOEcNNbAzz5cyeUntM9LkJpeLHVd4m~ z3jRd|xy~a%Ifb7DAfE@-^sycZ>QnZT`6ckKB|p>n_V+UE^v`1WIi7?#O9Mcjc*hzE ze{?!TbVdeZ5#a|3(hC&?^L_)`ILIdA$o~AQQ#LS%PNx1mS+MK0gq4PC< z`-!R67yUH+kI*yh{o$-hV!wLbqC2)LhgSucwdu5`iOaoZ+P~ayg6|KNJQf+_7t7~o zoZm^n=!+2{yxcnw8xkMouM1QfIA$`fmDeeDFAg*7TK5oqHi1}q!E(MtSL`vc=~z!<>h{s}-s z46HT&XXq_9*Zy$=sXXzgm~J0R@lbKytZ79aYa@=UTT{+zAyl6ZlO&t`PaIaysiQqm zay=!3OK(NF6KsoL+!7WwlKMt6#v2WJlN`w43YAh}5^?H!as%%QFL!XCK|Ur|r5oCM z1+`-y1#sIhvYdL=gU(=|#=rdf{_Qzl+W;B~-au9!i1;gz^C>h{`DB#inPZSs#Dh`K z`OFjp<^*g*wVZ;>1?CmZH~AKE%Bx_UMcm?DRN;_@z(R9aU zo=5cVLRAKFYxrvr%suFtavYqU4wQk3k~(yuD}S~*$#zEhi4G|V#d|;pm#V=g(N>FE zF(tWIUG2^2&@)Ao6{5IMj{VTxIHl&0gDec>gU*C>k77^q!jcZ{3%-A8*@mYf=PmV3 z9euA)Q25$3O@rdE!lh*MXu^>`GD+C^ETmyasYpZsvliHu;Ca<-GN*GFB~-@7(Bkz$hr5! zs#$6etmG(})p1sJJ<=xZfu!4c_Y|uR)H-a*o6;6!BGCd|{11Fp;}>VbjJ8~;LERfX z+?xIHM?O13NFXV{5X5WLmCZfaZ>UxvETep&EcSA_C{7sSB zsC*@Qf}pw@BiBi1eiPC`@55g2cHK@t?ORj*eVG2=*0)}GhX1yY39&QOqYbl!&a~$# z1+RYQ9i&!egqy>ikHYF^m`GSOe0peu+$C(Bl8&=|f6UAJuhyVaOC?S}Wn9@>y2G4_ zL(=cgMH@4gzl1F)h^FD0SoTa{Oy5y-GqyH_dp+-$P)7u%+{Yn9->RPy=Gh;ztM!sR z2hPICk;*Z)f-^Pmb>5w%I2D*>q5f5N?_v43;T+!C&G>_u*H-!q?Q+w1K$0S}N*?Hu zT;oYwCUW%OuL{_H9a*lx?MC|u=8h)@wVu0riGf4XwIV&jPK~*yaOt1p7d#gu7ij?7 z4@$FfqoSDk?oTXMw9mP7#l1Eg`euyJ%8pL0*O-7< zs)rl?nf*}D+tvnfZ=p4DVcg!_JFfg`h4edY=l!b(7abVJfI?<<4*7)m(zTam?s+J} zWDH-b^C%Yfk)`ihWxawG0FoR*?|Ae5h=ZTOsTnj5WWgS4d`>2Ix!PMv278|W?IKvM z1#kFB{Ek_10rFpP?~9PTB~|Z+Xg1zlzdl3%J|0Kzs>^ONCfz$|fdW2G^28bY1q&;}1vULXmk8>Byl+ z*okL$1YEpY2E(8_BhmO^I&cCz!gf)Y!pEwhB_A7H_eervWC8f^|5os zpR_&^AuN5}f3g*2=)t_{v@?PuB~N^fDnk@$1nLCsI?7j)&oHLv{kMzZ}( zvX5Y6kpj$Q9prV253EN`-Td@ajA>bI#w)A6c|Aq17-lxIGHjW6WDw1*3fif*g=^A9 zr8ST7`wVt3cOtK|q@IZf;24sv{e;rqOHV<8JaxNiYdf86P(Ne{z79F$0R-2u+t@6U z*t!K`qz0ny%7tK^&{EQP-CN3^&nx}{pNR-sqz=KMFn@;)<+bBGPK#TlPsXkaarDDb zZ~bKaMqLlD4`lURbTQD@2uhV@Y4yFyhTmgFekVxa{R0GRJx>DT>|nNjAA?ty1w38{ zpSXnH+=;2%*9{EH@eZW)ta{>?gm>1@91CqVv%5&?6eDe8_T;dKzV$~Ggb z;&?Squd^xKD?WYXd2mq{+wJ$H!==mz)2Q={`W9Ta#>I7#gDZT>kKDFSIU>^v#B^Bn zq%Vk=WIXr$_Dgq#?t%V2pF|*41WMDwmcPjaCiYWdd|LCdDIpHl=ZXymzT{mipBD#5 zhG&$h4$#DifD!KZFWBGC4IFbSDMRhvV<_Y*#}i<0J?`dg0AP!GsTS8mM<(Ngtex}-jdo17R}^&ro`$GGNg zHJTA+HwKqw`cb3R>m}LQ`2z=;nQZ z7tmV}zW#)sQy=!{;k}3M992a~p8P8))h_pWzQuO-LsHe#4Q~GpmFl~n2^pQG$iQip zh3NhSsfWmswol>bD0({wc+|jVTi( zp%4;^s*grqtTYKPV7!n9I$#|Xl~cUD5&c;lWCHyZmBoaN%U5glmr%h00^OBlr&RF3 zXAV~3XK7VKre0#VVJr4qhKI{FenweCsO)`+#_B|yJ<2Bu(+yFZi~R|!&@XZ=?_P?0-xVl z_B;LvP2~ocfhL%_OxdM8y{L0;yAR#z1kp7-XLQrri2AmXvlUHa{CQ6Yqg_KU0NgUU zF>&(o&5pPjl+COi3?vXsgZjlnK`1dBLDVKMYx~sPd-IJ1M_GvVx&cz>{X9>v1D#hL}BZAq)*>^n8wpW~JUvtLN_!qrZQu@k$G(I$HxG3r^u*Y*|dp zlu%aV0*Oebm_@{}SRvWFh@{tLY>+oylyu}S|IFl1jb9gyLq`^KAm_Q|>O{zpyirW% zos_X1d=iAb1$;1T`{qvVh)%I&cWd3yXVdMi2*@5a!{Kvx7EZoounitCO(Rq70-rmh zJ<$(TmtR7)vD@hFHl7!bF36X1*)54xBBazGOj5?8edyvU6mDM7T?v5D{Y*$5hW(b( z{f3;sunrtC>8Q%ZtKjY7IT_Y#D74-bBA zn>iZ!*e`7*1NEVmK~tVxVNFdz4b!zfx- zK3|>uj2SC=l3zLxhVV1cXuv!NeZqocaF*SQ5E@EkM05^)QN1JKCw~DwTZNH*HLVL2XCG za6K*^e*4k#UUZBr^lDtb-j$hK{tLM@>u-zfxvzSd8?hcPnpAb8&l2}hfp>Oz-OC=P z?C$r+)m$`{LR~`bK4z}`?tQ?>!lpo*f?B2mm5?~y&pPgjjv&vb$%l)jP2ZcRUk0A4 z1yH^K2iN}s@69s^SvfZl!!kL!APFzd#Yt^%uhU{|enqWvc6lmrNv-jFYm>_%Z;qwK zAD}TA?!9S_zizdWZa9&S2v4G^%Z*o6AZU-Mb~;7htXtb@-|uJSwM0J5aOiG|1B8}r zAr*OF|H&uu(Z15!VhGc}bx1Mp&wkwZ2FA2n8*VwQb-gsQqjG;k3@97f#~M(4yt`I? zYyxdg?Sj{OlM^n2&O*0J&tl>QZiR7VftCzUmj5&kn9 zGdHZ_p?>8K+C;i7_+d||oZR%-v`51J~oq@k)o*B&?()0m1e4vG2pHq2l);_|p)8+VrnkeM%FFe2(P0SES zDQk-UIIOT>f>(aHic(dEKGrdw83vvu# zjmrM+0hdNkZm|75*DK28v=1 zkX+D@c0hq3W-}E+Ph9#mFjb)pQ{0NP?43$--Yl8&5~(y{!1F(I^CB(6;8}bhA*ys$-n{Mu^bd{k7sBwZl~o z(F|Qb1s+=;evdr<7Zo7J*zRp4vRw~`RC>u;)2JSy7^bcK)|Y@j(3wz0ji!y@!X}Po zTMS8ZZNMq%N2-Ep`J|at&+FZAGl=!-nR>@lFvC~r*mh+HSGWvUkaMc|Cs%ZBQwnM# z=p1!Dt%eAUGGhn7zhSQpsLHD`#cuDEgXEG{K7zaDdMa7K7*a$?EC6$G2LBfl0s^_= zUI)LMtKHA?hWM8!=OI17NbO5Pf6?r*mi0c@hEtW4XBm%h@@@ z4x^I4=X-}X#()P#3j1XF%Y58ud>Teq%Qs~|dmzk!j-q6YSAHKC10IpLjHg*xyXTOS zk6(`{Z*bx$Dw#7sd7ZePzs@%N*)C8S(p4<;$LE zxl^*c1kl+DHIlgUu&JH-iucY15{PX4gYB7dsPa7Pet1Z;tRIi3jy2;ZhYYf_gAr4A zc4HpG&58>Q^|(XQFWaw0v?$l%16W@I`gB2tXi~9wL8u|e zmmtdvZ~Ka!)WO#~sLoA&8l2h!x)}fntIF-?KEKJ)4vSXz$D0?x3zWOHxK{daPKyrJ z|NO@ft;TlX+o=9JK4>r`2g4K-#y%#d`jF4R1LlRxE3(aO=d~D1nhTYgm0a?LZDeWK zKRGp8k+If~H>;82+6D1gw0P+*dk;o}g2uR;i>5at=|Kyz`vnKZ+m`i8e3YOYqQm5H zRQJ8bRy^KZqr|tXubHd0FDYwZ`M$n>lu4p3I^L75B|6?Y8g?u8BmN^0Zyr*wF2Ygp z@?B%FbkDb`0 zXd5A>}pe%Qoaxx%fmdN+q&}1%7<$ zENouhiJTw9X~Yz1gN39O0=XuW{0%B(HbW~gxp=ndZ87daf_zDF88H&s)tt#6rXBBEDWd*e!^1;myf(eb@z~s`-UyBZg;ddxi&rBLHY}FN z1zW?(6IV4g2Ngfk%jebQqY0q%(G(F54$CsK8eJ1+0^}s}Q_If6tN$!uBmaKi%7#d(^hcjY$ZcY2 zat@CQnmkCXh}%TH8%dzM!+lcopYBKFDCmGe9PzvEwwOPa9E@IFV7Y0w{zim`$Jg!;d(`Bm>f#i#uXg!ci&34$d{CGs^7psrijbyxRlEe`*b{||>Cn=C! z6me*IxoUjQjeWJX@l_)UL3Z!sk=0tdix?t8zj~j1%qxg!71S{t z8>QCE{^UoQ19kt7g5NNi+bWRsC!{sZ0F5H4;P8sWidI=(qTbnk^KA_22%G)WK>f49SQ;hvcmP?G zwwFS6NgbOdE^y#bgC9R(4czAH$@pnR1@pd598#|F8nTosZRpHnvJQ5qy0G?PYSDg{7^d zv(W$gKIp3slC+qndJo>nll-u}+{mO98NM-q&z7`CmbD@UP*zfsd!E12tsgVH$Hp*1 z=Ig<-gK3kVov-;PzK_I&oRAPh8cDhhJ^bNhcgg=m)aWF1c-usbW6Y@n(fZVFRP6Dn z_V!g|Y~?X?k%N=-?5zPydwV-GJ9`Q(2)KZEQ}=pvAr9e;UhG2XhuQA`vKvd1pnxRK z$C9qI%XpxncG?=WW7d4vmh>wQm8IDNLfa{Ikp1hR|^}!_+-{xsFyKoRaJ0(Or&>((Zhj?1x=9c~3{a)>&ceZGQc`g>J z^35RRnrRF4NeUk$vuXtoIbZ1ozI-Y9-6mVYqtSZ_nOifjd>6Xi_krZMH?j;O1xd7y zg;fr4e5}e#Los_!{$8jlZ9y#{>l8(sv11oTB=Iwpzxl z`^-C7=jDC)aUZ$fMv&ui=4C{O!Ostm+(#My1eJh)V)y*+?CaG2+k_Kb$C9eD>=iKX z;%}8KlkSn00By(>&`kNmb)A3PnfG5I#9fD5}V^o<_hEb)B(LEPJf z%cQEkF1qscjBw+MfyCP4X8|?prRyYU-7CY;dRUj*NMAt!cl$e<5F3*aDus!O@J~c4 zn*>GAr9Ekf_M&?2-hHG;R^Tr^b-@N7$pibtd?yBXrj z_Ao`(;;J&!_l0xdVWf^h;)e~Z|7y74NB!56BvMj2)>)VT#`=DPMqwM)R-;so{Y`=b}#5+OlY3o467q$k@kh6>rLqR-9n-88{ z=gTaB4^%1`<)So%J+sUG6NRq;mk{3x5h5dNr@QO3;B3`cSud}gB$tYNTr5}nK~#nU zTXxDEQ#Hzq7p+#GqYiZ><1tWr&L$@Z!ZeIhto~-JX^MDMoANOqV#A;b z688<@8Dr7cv98FpRK7_oiop2qmjn2p+}j+6A@|>LTteuhAsN|G5BK*O=@0sHnc)5j z?!FlSqcg9;g8>2_UfrZNg^4O=v zVA*$QPbB*|1b$}`7j=NtSZ9VYc_p^d#im+7TmJV>Iu`MuK{GK>Lcdx5u~tC(T)W=`{M zqJJblm74g7#wWbBsY|n-OLvs`Y&6{o>C2GmhB8^Xuht!zia;1LV|jmIxVDSRx$+jIAvP3Y@59f+LHjPi{fV)5!{&G zO7BNJZ=l}hc|WWfaOX+dWkY#mx}mnJDc{PxCT)N1Y$}C5+EkuJIgqUogcrUo;ACX3^n13_zV!JtFwhWQ^;wK4Py9jW&wW!>&}uq*HhtL{3Q$2f=_nVzjaA@D~8#nwP!+^ zK+>bK8PQHu)yWlodDa!q64&YGNycp?2+ko7+7lcD+F2qYXlsqChy2MGPN;EBT5K=v z<#-R_Wwjbu*)eya$L#ibJf!Ox8NXs04Tl8X8WuOrV_;A~IKTY2jlxGE?K9u8r^l7R z|Lz#TQNm9pB<|(OCN(RUz4<-5mKX+jKN^(qvAHQacVC4-iLn==TEfJqqbUR8Ph-eY z$Y^5kUCqvH4>1E;s08SyUI~tUOR1b>qP~66MQLF+5^L2M`F8Ive_=F7 zDKa%RH4+k1CnTRXD+&|B3pzNkBOoNqEiYH@gQDDa@x{X zNl8fo-WLV?K0;rQzz!YWmqoUVSNl^g&kr6Ma|->jWPIrTan${{tKU9YIOeBTs20D_ zaV6iY%nr>bK3q)VfH8fp53J_A4arB@m~GmR6A> zr3+j9$&BxVyZ`J^0u3w31moi7=F>^itmYKe$ET|)HGtQdSqwKr-L_N2cAMr@RrK6W z#AsP6r7?y+!~FcbqQ54@PHd*8$>;jL&($8VRQSq=cH7u6Z7l`4iHs`6eJLqt{P$^BidF5blskxT!{b-O0aqf@>R%u9XZf<1wxNupP zkcZ|hTB$sxkh_G8Oeo$b83$+;a7aZ-O-(l>%;Zfz>Eg86XqIr;@Ae19Y6E6UyEXTh zT*>2I5%!SLhXgot(cg-&BBg_EBW%o1BGQxnj)*N0MA`8H;1 z3hUTziz9!dj}e>t0pBCGoVI>FE=?gGb}iuEpDK=XRkO(&mBGqvu>Bp^kc6t9m1p7R z=9Y3ury=P7P^Z~P%wg2ocDqux^!oJV=UsrSLo;xob4tk0fJ~s~z1ZZEui3XCVmlmr zfY6&1mV-5QZ(~}|HZ(k(QWq2y456lb?+_V$EDOab!D_Yl1k2TwQ);aN}xg=RuAtNA{Fno*vWlqCu**x znG(Ftdx^QMM=5$QXx0m_t$%s6(fzRvWXL6+OX`=#jxO04S3L~x{}h^muLK5GtVPZrb-n%78sN%7qj*4*7JI;q@7u&EN3vbw*{*y|3*PBNX> zVA@}*S>^6zS60;2)W|{&C`++@FXV}`d>mtc6$_dLy1|vITMlU<<_x(U&a#)qWc>B6 z?@APwQKP6S7zm;fP*{xLzpJ$#d;d7GM_j0){)V1b{dVS4=|jlC?0voZL#bh&6tLc0 z7_p^6P5fDV->}tvKe6Pu%Ho)8YAg)nQpx2Xr#$A~=<6SNO!-(;hEa(aFe}ftSots@ zr#_bItuWzn&b)JE;bn-ci!pkhg~P~1jPIOC;-jOJD%ne&%|O>7sqdPUiZSx%*4iwR zRhE+bLMW*wzYxd9br4J{@_rR{*W>U!4`LDQM;3clzUHo!9UHNBT4C~`_Zj47?bRX)G{Yl2anf4-e^zULmt1>P=QYJTzlQt^6TB% z`j8Z5+jJT(C1nMsvO2|eiQ{5}N(li24S}4$$n?)|cW1!fZmp@DQ5!sIJemd74Y{l? z?Pl;)+UWlFcA>laqL8>_ZAeJ6P|b{E@;5S@aVjNSD=RCO?T_13R8+B#ryZuarb55i z;I6&U7s)JhoC5UwH0Cvf^E5QC{en@jKTQ@L(&jRta^QqmwWgQ$$7jqw$oq0ph{bN|4~0#3sxNCbEhXhl8F z4w%Ii{94IUK(0@&+~i@mR39P7SUg90+|j<{Lq^k_(J?XoM}zs}uV0+p!TdQ}nh`F| zMreCaIQ)KipGUJ}20ylKb74X_M|A*6HYsb#A zq-(Xl=|LLGJ#tb)0WzNBG$2V4qbflYPm>h&##u9Yel+e^e7qeL%J&*3P_x}sAW7f9 zW|Q9&2ko>27c=74Vwfvp zrj97P0BpiW8TA2cD_gOb3|~y9vHb)&@go8f5bznrVsHHA>=JMB1C`9fgDB@KRq`{8 zV#Ams?|BC1)|XLDwwj?QM7`HjyXXLOUOFFC!rHzO*R5TO?$PH5fY=dklPos(_?!eI zhRbDBLL8(-h3N|{c-Iqvz(WBvuDFoSvKFNN_LY$GVeVhBg?qEs)agMT0cAplU?Xo) zs`ic|`%8wvmh2jKES6d_|11&||BtNyfiHRM_azh7Faw}*2L2$pMD1=tcqd*Yd}W9Z z>p&$C5g{!ssrWz>ugyqZwdkIzcN9#oQY4Gk0b&E4bq;hv2`^sOnS%pz<4ocfCGFiLrsfhuqn9Li zCxTD;iec}@Q0Rx6dikdyDznt=R_7|kk&*FyQ_aS`>2v!A-PN+73Ow8p`f5?!+cJqG z?^Kyl4ZXD`LVp&qd5w?($~nuBcXOP(wRD#5*IkLlB37A%@=H{3ngb77sTcqR^53h1 zgyKi{Q#1^3bZNTWPmCOJ?<=%O47l?jbCko~w{#E>GBpar4F$9_D?7In568ox!vmdF52cm@~FC%pUUVdTI zS<1iqb0B|7g-6r>k}O+ssW^SS<2J1vc9GYY-)%NzeZ0wbAxp=rA9hm55v#(A8`!BGXq)_i$mWs2=k-4OTw%j<0vPB#^^Zxy;&who=> z3N-{H61Ta%VAOZPz_!|no0AJ%* z9|E>#SHx4WXx5|9O>3HYqi;7=&}7Sgnuw>Y%F%aj0uQ|;*Z3N}T-Di(Pa8N8el628 zVh9G~rGilx37VgzFqhOpQch~_7gy5b_1wyj1vsliBcIVZ54D|#``Ra{67*(iJ$wsNnkNv?48#NCKz5cvKguZ`i-~l|ONVZPe)(tv- zL-eURW|OGT6W_blykSRrB^7m@m(FNM(qw!$oqbmDK4otuW$9Xx;FHZzx5mYXjct$J za!*#&gp9LW5#`4spm^-kEHKcG=|br|E;{N*!x8$Z7y2CQ$B;PV`s2wx3{G!1F3p-A zE^0!v*67L@8>7=iE4onCSQAaeI8?66-)OiotEs&n;33OG_N(*G?XnbZZDK3}%n?D< zVM2ctqx5)bW1qgD5fq$VW z7@39|p=#|cL{c7Tz8IqCHoxDqy;drIsSV1ePF?av$u5}Wx-oMY@Of>GrhLvAu4-hh zAYY!sEKAjMjQ*r%Oj5z2BSIco@~YaBxYfQ8Wwk=rV%MASaHuVy%~2#KU*paa8}bG2 z=7*7Iksxf|N~LE*0=nw6OmO>Ctpfn178;gWYOXdRI{7|53!tCZNS`7{kr5wy0t%gJ z2Zp4#)z@ob7LMGGxcMQ{Wfb3XJ(1z0-^~8sQr(tk|Co$jp~FWc&g1di?9K;sIW7O4 zW4+*4p#-Z}>MWXCV=y(BMQg#hsP5G+7jW0(4iiIW-oCBcvS1WSyj%QnsbB^0Qmp>x z$RF|BQ#r?6a>$NQ5TpGvcRIKEi8PZ2>cwp*Zd+FSRBr8=f&h)Y$2FrTLitTS>Ep}I zS3cE(G)Z3V59DCW9R z-mnkGQtafHgkaq6Sj`WHhLB&9$p0ZX??fVpIF&O%Z(@NYjiLW#3nvhEg{^RB9p}UR zAA4$inHtIi2;+XX=fW7zlpn9+n!8$i+}2zk&O$T6Zh%mzR)g-n{43plM@?XKh_VOc8R;---H4@f8BW9(gl?z`>ExhUJRXW!z<2hb)$lsG zJ>A^IUhV#~-~Etu4g=8299)D(%GNkE+}1~~KaY>hA?P|&p&~Kj9nT~|>fuXma$5ni z$ZeU?(_=)mCxc;}Ha!;M{`dY4^Hrb%4i-T73Ndp~SOab0E9BE@=s|2S5W1_BC1((le3 z)5OcS@nW-CN8GWSygCWzRiV;Q z00>A@JP8QY;#^zG)jTI|(s#xCnGTPVvM$;h*`cfMIz+;6F0nq7;hF{G5%&PewS!%= z8+}@9NfJJ$p`+M`e)DdBI&Guy^fr%wgUMAudb=nl^RWN^PL`v)Z!9t4j}K*oA3rw4 zqj13JQG6h|^&fRiD#8V9na^a-ozGEr%VD9(-L>WJxo%Q4d?Sbx_&WV8$^;vioGo1- zy{n6+jlNv<=K;M)g(;KHu*Exz6ii6dTPFVrPpZV*UOIWyx#$jG^8=@VPz_+fS)yS? z?205RR)JV!@SXFGF!Tfo64S9a%;}iM_+;6vu_nbqu<_X}{@UA7K+%Q6jr9|Qe;~c; zg`)l%Nzw7-76LKHY$=E3#$}vXC-KipVk%hb{zs2g-3z|#wcvql`xfq23A?x?h5ttg zAzq?DOL&K@WsWvUr z%zfMAn+Gq?3<{QFV0`YUO-ScRH#G29=l<`rg(3Q(G6Uw77;OCgwrLv7Z?4fb#4yFx zZDLQXsg(7dtc#YQn+lq5{hTTu5SI8pu*Clf@P$94xB~28C2IspUQ$b;mO9^DHFCpZ zSmX_JPT3`Q$fI#U8Ve<~)oT