From 55bbc76b2a9a323cac86f87a3f65062bbe273d67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?= Date: Mon, 24 Apr 2023 18:46:09 +0200 Subject: [PATCH] Improve tutorial * Improve text * Move to docs * Autogenerate with sphinx * Fix naming issue `environment.run` (double name) * Add to tests --- README.md | 2 +- docs/conf.py | 10 +- docs/index.rst | 8 +- docs/notes_v1.0.rst | 3 + docs/output_30_0.png | Bin 4858 -> 0 bytes docs/output_34_0.png | Bin 11636 -> 0 bytes docs/output_49_0.png | Bin 26744 -> 0 bytes docs/output_50_0.png | Bin 31608 -> 0 bytes docs/output_58_0.png | Bin 34182 -> 0 bytes docs/output_58_1.png | Bin 32843 -> 0 bytes docs/output_58_2.png | Bin 29377 -> 0 bytes docs/output_58_3.png | Bin 34192 -> 0 bytes docs/output_58_4.png | Bin 35426 -> 0 bytes docs/output_60_0.png | Bin 28149 -> 0 bytes docs/output_60_1.png | Bin 37627 -> 0 bytes docs/output_60_2.png | Bin 34693 -> 0 bytes docs/output_60_3.png | Bin 34249 -> 0 bytes docs/output_60_4.png | Bin 37647 -> 0 bytes docs/output_62_0.png | Bin 28839 -> 0 bytes docs/output_62_1.png | Bin 28791 -> 0 bytes docs/output_62_2.png | Bin 28657 -> 0 bytes docs/output_62_3.png | Bin 28817 -> 0 bytes docs/output_62_4.png | Bin 28851 -> 0 bytes docs/output_68_1.png | Bin 974651 -> 0 bytes docs/output_70_1.png | Bin 29725 -> 0 bytes docs/output_77_0.png | Bin 45997 -> 0 bytes docs/output_81_0.png | Bin 43507 -> 0 bytes docs/output_82_1.png | Bin 25145 -> 0 bytes docs/output_83_0.png | Bin 54453 -> 0 bytes docs/requirements.txt | 1 + docs/soil_tutorial.rst | 1405 ----------------- .../tutorial/soil_tutorial.html | 0 .../tutorial/soil_tutorial.ipynb | 167 +- setup.py | 4 +- soil/environment.py | 3 +- test-requirements.txt | 2 + tests/test_ipython.py | 2 +- 37 files changed, 112 insertions(+), 1495 deletions(-) delete mode 100644 docs/output_30_0.png delete mode 100644 docs/output_34_0.png delete mode 100644 docs/output_49_0.png delete mode 100644 docs/output_50_0.png delete mode 100644 docs/output_58_0.png delete mode 100644 docs/output_58_1.png delete mode 100644 docs/output_58_2.png delete mode 100644 docs/output_58_3.png delete mode 100644 docs/output_58_4.png delete mode 100644 docs/output_60_0.png delete mode 100644 docs/output_60_1.png delete mode 100644 docs/output_60_2.png delete mode 100644 docs/output_60_3.png delete mode 100644 docs/output_60_4.png delete mode 100644 docs/output_62_0.png delete mode 100644 docs/output_62_1.png delete mode 100644 docs/output_62_2.png delete mode 100644 docs/output_62_3.png delete mode 100644 docs/output_62_4.png delete mode 100644 docs/output_68_1.png delete mode 100644 docs/output_70_1.png delete mode 100644 docs/output_77_0.png delete mode 100644 docs/output_81_0.png delete mode 100644 docs/output_82_1.png delete mode 100644 docs/output_83_0.png delete mode 100644 docs/soil_tutorial.rst rename {examples => docs}/tutorial/soil_tutorial.html (100%) rename {examples => docs}/tutorial/soil_tutorial.ipynb (62%) diff --git a/README.md b/README.md index 5930c74..b9600d6 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ Soil is an extensible and user-friendly Agent-based Social Simulator for Social Networks. Learn how to run your own simulations with our [documentation](http://soilsim.readthedocs.io). -Follow our [tutorial](examples/tutorial/soil_tutorial.ipynb) to develop your own agent models. +Follow our [tutorial](docs/tutorial/soil_tutorial.ipynb) to develop your own agent models. > **Warning** > Soil 1.0 introduced many fundamental changes. Check the [documention on how to update your simulations to work with newer versions](docs/notes_v1.0.rst) diff --git a/docs/conf.py b/docs/conf.py index 7dde391..33adcec 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -31,7 +31,10 @@ # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. -extensions = ['IPython.sphinxext.ipython_console_highlighting'] +extensions = [ + "IPython.sphinxext.ipython_console_highlighting", + "nbsphinx", +] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] @@ -64,7 +67,7 @@ release = '0.1' # # This is also used if you do content translation via gettext catalogs. # Usually you set "language" from the command line for these cases. -language = None +language = "en" # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. @@ -152,6 +155,3 @@ texinfo_documents = [ author, 'Soil', 'One line description of project.', 'Miscellaneous'), ] - - - diff --git a/docs/index.rst b/docs/index.rst index b589c06..23fc761 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -2,19 +2,20 @@ Welcome to Soil's documentation! ================================ Soil is an opinionated Agent-based Social Simulator in Python focused on Social Networks. +To get started developing your own simulations and agent behaviors, check out our :doc:`Tutorial ` and the `examples on GitHub `. + +Soil can be installed through pip (see more details in the :doc:`installation` page):. .. image:: soil.png :width: 80% :align: center -Soil can be installed through pip (see more details in the :doc:`installation` page): .. code:: bash pip install soil -To get started developing your own simulations and agent behaviors, check out our :doc:`Tutorial ` and the `examples on GitHub . If you use Soil in your research, do not forget to cite this paper: @@ -46,7 +47,8 @@ If you use Soil in your research, do not forget to cite this paper: :caption: Learn more about soil: installation - Tutorial + Tutorial + notes_v1.0 .. diff --git a/docs/notes_v1.0.rst b/docs/notes_v1.0.rst index 9f83a9c..4bfaeaa 100644 --- a/docs/notes_v1.0.rst +++ b/docs/notes_v1.0.rst @@ -1,3 +1,6 @@ +Upgrading to Soil 1.0 +--------------------- + What are the main changes in version 1.0? ######################################### diff --git a/docs/output_30_0.png b/docs/output_30_0.png deleted file mode 100644 index b5ed2041768e5391e221c41a47156b6af94e4c38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4858 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 J3U1nj{4c!>7v}%~ diff --git a/docs/output_49_0.png b/docs/output_49_0.png deleted file mode 100644 index 33928105fa50378f2874af7e63e0c71a1b4493d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26744 zcmc$_Ralf^*e*(lbR!+2(k;^IAYIZSCEeYPq@)N)gMf5*hagC&w4}tq(B15J{#gH7 z`&tM4Y#(qj;#c#=^W61)ey=2rjX{oqfPjE4EAvhj0Rhn!{1Br(1%Gijv_%5H1Y9Mx zUDX`ST|GWJn;|HEbak|KaJ98Ee(rAO>|*6$&&|%u{+jiiy#Mw-Tyj(-ND&{ zgAqz<3@(E1D5K+ofPhH||3O4Z%OFKSu-KG+_g39AV?WcwS6$=gam7N;TL$+D1f2&@ z^$S5HNXM2 zPrAE*z_6)IssiM-tPKC*EQ{c!=$Oc5vrD)|mcV7k7{00;5k@Fv;%1`G6#;z6al~fM zVIjhhqAU zZ$#e^)Bbt}iRfXY`rR8X2aS1$7XKoI6OHy$>HZ2^$QMY2JsZ)2WL)BFIl1QfpATxP zax_f&Wa4PmI%r(&_=UO%Z69q;hotJJ3h*JWh}6h8vP?qiow#gxaYT@_vbk@n4=?if zrU3l_jP_RR4Z9-N+ z`PuQp&!9oPRA0zK^3|Syi?+rd;wg#dB!?CcKFFi3S=FMT(axaLz7EA}ZkSz5id|w2 zxhljnj>5}*k9MqoZulh0R~my>H55;I(O<9-jrO3-)Q~>pDjRQ|g7zI3rySbEtb45R z2fqH1=`?I&h_8dtr7|R#P33ur3;{$>WnUYY_80SFb!!M-byBP%K16SS zmAqxXggX;&-D?$N6?<{)kuL-kOq%oO!0?J<^h`e!WUUYq6@>g&cwWI%s0r_#tZl{@8Wgz~o?awu||B*F~0|#(oD|)qdwscSXc{ zJvF=i=%+P-L$;ST_(v}J|6Wz$9R1dfw?LZJh@`Fm>TrHr^~@6mw!Pu}{rjXysk1HH zW#iy22G)}>mQv& zbHtF_5cI<9Cnx4bzbqjH@f2Sax&Gx`eaB|khuECdz=u4hzTl5`)$q-Pg&^1?-!B`< z#jY|Lkw&vdKZpn2hI#+?NeWmMW_0PeMo$H2ogeg`&s=y@ANkOwKb1kQD7stLI4ReH zH0}#M(KGQ8A-pQ6@G&i9C+j6PakQC8Hd!>4YGtGHEqsXQ$MTzs9$hEI zD-7DYlRM;Mm!t)jpEtPmyw3TFy-5wqNK`C#*%fCkFCBH|tctf*2I4ytYh=*k)toZ$ z)}2->8|={QdUUyj1ZRwI2lNEKg`FVI7^1E$K0NA*#KF)uWSB5n_Jz=~O6vU57Oali zf8CgUeVIR8p1*I)lwUmQZg)AaBSaOX|BRyHHYw)ZzhKVYu-~HCxm7@Q@T=Ud(xP!O zhX&XO?;OfHU!i{VQ+5+q69ya;SOy0N=RriXR3ODh?f@;mp( zl;w1e5q+?r$iL*77C-JUBiQ6xq9H=i4&@g0tK3!QddkmkSjTnHa*DSC3ML!wY0B}s zQEjw(bUyBL1R$jZ*6W`AUdViDEue`Uq7{`d%K!C=K2CJ)`M@PgN14S3iy%*1PP5+5S_MfPS3ZR z{^uCze87^l$C9`1mmqcFCv!)81G97 z*hMXd)YE7(gm@C$gc_sW9FmcYL@i_jftXyfHsZklG$SCPhuE;nV82=(Y$^&af)Tsw*9Im zQ~ohh;q-nJS$&fiPbX*SHI(W)_E z!BSdxx#~>_8aXVwbPd_(0X>3W-_o6$i=%OAqfJPl<$xZA8lCqr#!fU6NWPhC>4rvo zW4u46_|!VnH_uUks!H?-w|gP;wS-)AtC@tVx|CZp<9}d||N5QN+oJa=IM}Sweo1%t z431BjW#!}szp84|{KKs?f*j72QwVv?@OCTb0BjPA2gxWKDQM9HNap_lD2zmryr0O! zE8f51mdcC&^GAJfa8Or}s8=#NJREgxZ4G*U<4uzX0L{ekkAi}A7)&1Au;|s#()V-m zs$VlR6|JqA@$vD`MJq~%BQTUKx7!1 zZ1rirc^w1goRHUx`?L495TBYK1?{yAlUi|%oVl{)Od|FNyC}A4?iqg%X`mA9?o(zE~KJ?EHvFvDFq>c{Ee%RER;`X#}=HgNNCQG8_jL4 z-i?c*j4|D@f<>wkVlJWaY1C&=$!TWPg}HhJ3FT~+toRqY5{n9btY1k#R0_;5xmRuv ztq&ka@Z=mrKD0)^{gR&Q5UXw0K{Igv{l+BPl#g4ClJ`@{?-OBbgXGrF+3gBVvMHNg z9c;b7G?fWOi9Mfp7ThN%NPQI^ev*bVg<)O6a`dm*_M$m`$B5vsj`mc?gDY?N(y%M9 zb;|n<&7Q23v|gw7Q0k}H0ZbKEhM8%SCCiW%XEwgXKfV#C$Egah>xlg)u$()((g9rN zKiBajf*B*++Ekb4?dH~sAqDSRyR3EvsXAH3CwQwKTrbLbK@VZNf{DbNt3QL;s35`G zEw07BS8L%P1fvDXcx_X9?xzYA6KH8^Uo$h8%$TqdM`iHXeA}DI3y+SC{U$3btN6^k z-SJEZ(S1<&q=cm}Cp%|%;nSMlI_!ptGNHkPBeaiF{n826Wy?Fezk#GcuePK_(&f;3 zzvcM&r&#U!;=^`SP`P1eR-Sa6^BGiS*=w81e7LBCdAT=+rA3b*C>0WsBrg1gBfaQR zZ=!{1K2wr!YB_2rV;^{@77$5O-sM8O5b#Kim`t}Vj14I6C941JGLBqb$NM$9{|wv3#MX8;Dc|<^aJ#qEn*8{1*@?ia zQxg)5ihHtKTDku3pM;9a$hLx(ffpS(M`1ly4kMjjt*g@rS?Ep(N`CH$nC6)JkzgTnQR<8u{_xl)gbgD8jOjV%svu>{=2 z+QZHrcB*tUT9|hVR)5n3ykcVd{4*F8`Ms{LoTVirf^PY@Mf+ClK)b~TF6Rvy2&7D| zoRC3jqd)#7g6&dE5=X}sQef+0M><26CsH8(ODRsbU3Geel&2HWkfbU0vb` z9k&NUU^cxrle7?E+V^UON{C;+dy+beb28jQu&4jg1~jDWZ>eE;na8YP}YV4R#my)K&g#>SxW$ z*`k>N_b|hEQc|z&(rh$e?ENVwEL6^>2}?>#lPgrp)SGm7`Tnb!XautCZ&SaS*RNlWBRsQTzG=EpN@#17o^Fkp%vF7iCgu9n;di@W7e&lwyfc{( z4m+BVra4})sYK+o7^Te3%iCG$6zd7c1zWtqfNLaEh$L@9MnM5fMMY&eQ>fA4w_*xs z5SVs6JiPaXhhQE-%_9xRrJ)B4@N(G)x9Xw96IR}c(6kmt0bOnv67jj%0E^+@2;WMX z79|NLTZ7Em_qV}6bgQA0YyX<#Oy(NHpUBg0`VoIIa8ARIDr|JsX6w$82nQo1+0%U7 zN0BPx!;6lN&PFAdunMhx5hC+d6~}p_lG#-F}T$4(MG#$8pLg(X~hl3naOqYpkOD4`|Yx1YV5cN7%lfLMW!zo;B zRDE>8yUr?a1j4u_NmQO=0pV)w6ydg@j#S5%( z!Cmm#2nwuiZD??{#E?vfz;9&C%HH##p~qGhReYB1Yha+L-qbO5jr+rV_XHD>9VSq3 z6y>{YJ5qYLi%Enh9fE={1gz8DvYUa#F`qsoFz6ubv_`SBxLr0+1*a4of#q&->O z^34;;%R2I*#8`XzFJHex9v>9*^0*zAggwtZbJ$2a z-z;-4Oa4Z@Gj* zGm0w>b`;#^!$x3d;w0k2705u{a0c4c8zy}v>G2K;(yh!P$3v^~;idLAMsAY4 zSv{QMB58X>=tI-vL;PmJ8frr)Y#0j z=jP^K9rfTIpPU%~{Dk6rKCPAb?b~bLE5~L3Te}dvXi9;vO-=m%_vc#l%2^7B%k4T% zjh_qS@`(L<&p;tXk^h8e6fH3>P1Vv#3W%i z{oCY3L_)&-vHOXtni^O72-qyip9vY@qiX=Fpf2GW*zTYNpyuc2N7IO9U7v0Xouz}N zz2bLCMJ4EJv^kg*5)$ILH^)WofA#S-H#hu=2fot5ixeoa!otFH?LK^&f^O@LEB+Ft z(>1==&ctlGrn99%QCfWZ0DGrJ*WA5mvkYhNC!Cs}f(nnti70c3$ma~yV+t|uj)8Ia zg64$tyF&5y7wT(mz71yxBv1*tR|P!!%gM{@G}>q0lLr6n8qE~)+N=KEbayfYuR8PK zt_k#t>-otBHMjeq6~|EU)wsbliCML~=4&mEkB*E+(s=e3>Z26Xd5`Bz;%M_X79BeC zO@7CMj#mpVUeS8c;@$grcRE(U+-N)t%K4g~T&v7XEyEL@)&6IC0 zR|3R9ZF&K^66oxq;naeiArb({civx6zySoV=+*ODi!pQ1AT_=U=%v`-)LBhML`D6} ze!OE)WUJ4GmxcKHTSoGnpS5|Yn`Tn3EvNrRFU|bpdiArZtxa7 z3uuS0*x0ZERC@O=WQo`QFF&X>$7g4ze~MIWS2{AQO@5!8O(~zAj)~<>Sn|7UVeRbf zypxtb1%q?Ek)Z7SFNSYMCZqm%r!f0uROry?b*hZK{6Bynz;;tVp0Ip#k#g7qW4CWV z*NlveyxMPEX}Z5S?ercT8WYO^Be6(9N28bdj74+2Sd9S#6SH~0Vetx@7uU3%<+CeV z6;ygv&3biv3nq^Gb_LXS zN`pM^-O_Y}>ap3`WTAtm;QhtM+0y&4T+rGEII~&u{-}odRG$|XRj6sTmP@QU+DBYb z2rwwst9vHD0sYw+rV0C15hwPLGQ`pOH;X7ZIGBl<+4y{Sx}G{aJKI57lg9Vx?X$&& zdK)GdmX|_8>7cN2dmb5`oSvd%V@p=f)>=)`w?5p!7x2l+I#{8`qZtDAvBbp+Z{H#= zFE3wRU&m)2nPioe+&$YWD>*_#LvifRClvWo z6->>{5RKlDgMFl*5W`*~4zKG@FE~=8-7UB>Wf8?^^OKj%olk#Dz($G=c8Sm;2jG3(#OL=yoZ&K)tr_ymxKOy+t{`JKO-|p20)>CW%X!(+t_ZwLCGZp%-#=9SRT>cyPna*;&#=>XuwtMiyq{V?zd~ z>mNSQW*=m-><6hsHj0U-I;ANi%AIeOGkCWABx&~EF| zTyASuPpB^!Io1eOE@XlpJl2}?Xr}Ndrv6VpLNp2%t+$yn3c?^D!Yv!@< zC-AO@wky zn^~UD>#g+kR~LO?A9m+!vl6$Bc}|qqYA_DG!$W9Enc(p|*F5j7UA*8k42<+P;Z29R zJ0sF3*zovKvdMkqP4@y&Rj1Qm1QnMWlsQqSrog^HMC3i@*nhv{wm&muRV{)-xqrj) z`SWM?n0bvNQP)s;CK&-~vC15xn{P-)gLM_-xtQ4HYo+KIfyRsqovy8V5AF9Wck!p; z@{7?}(HjG_%7W)Q9lipUoezSbNdw%y?0c#RxS6P^sPIu2@*UU!tOji z9xB_~vK}1FtQ7*5_}AyK9c)v40)pF|++H$WFJ%q)VsQx3_Udr=Wu?ffv`if>PuPVHQ0fEbXWyiT{cK*0wCEM;u`f{u=kQpi2}gMD*ovVr$! z(7dwSeJ)Q{9v?^o>EypT9<9DL@H^M=_4Q>0Vt{i8D05S_7RoIihd5n7WD~So-Pyn_ zl&$e%jWKV1%5suwhxW)a$`!&<v4zn(DK10pKkb7NRZH1Dl{#^I^c;oF+2kY(LGr_BwvSp5EyCpx;KhXr-#sB#6 zs`X0K%8Dtc!SMZmao8%QT`~dZS3rsh)WE&}e-qfnWgaf$UuXqNnS+2^H=WOX$n0|h zlnIa2l4|s3$zvrxCB@P(uCA;sTCK25E(1^y&=e5ID-FezvV>)~M>EMpyx+iP%JUpn zI!I%rl1Hia!NL^sIM@I~S92)jb@B?1)~=5KMN^BUL7|r3XVA48mzGb0ge`awOxC9r zh^j$Ukcf9oW}7%g7JgE4C7j`h)cVeQ;4tNj%4X1d$)^3s4 zhYwe~(~uTFCkVjkC-$~m1G_GE?KkC}>>3G5SjBEm> zuJk-5Nx99j07R_em}v01JP?fg{J+y?;rZf20Hg%G z&lnk$GP;a7tH71QUuw7?E{`DN3X2;X=iX~!ird>)=&R8K*$Rj|f1m-Kq(#cf@(kZk z^kq@jORtBKI|w1eNNqu-R6MUjnrND6z605lguHb91%uc>O2bU=1RH`fiNzlifyM7~ zF^dJ{>ps1f7w|53a0xByTCl5jT!U1!U+A(DV}g#+8$~h&v?*r)j~_q6wXTmnVQYtn z4zt%!wd*YLfmrx&Guf~~j0h!#+X6>Aj#^Sq77P(+*5{E{2Y;J|Z=iVq7aCP-1MpE) zlVxS602nx+)qsJo{!uQR0uzskw)v3yPGrx}=8^Q}!cn?0FZd|PgDt-&wpn&qf?AJdp+74b=4 z(+|d__<_LHC!e~@J3ACmX4WEFf=p~g`Yf4x)L@}GKk9Uh)$6cNPEMdpt$bNoS+8Eb zs&nNh!9L${o<}?*fV?wO+(-x%D!I-;A_z2tM098qdKa)DYv|oI<-?$>i&W*KH`TAr zejvyG{;p*-j{XKBKREjGtfR(XZ0uQiI5q|E(ME!X^vSz-@2Y@`CshvvlSJc`$FH1; zt}kar02zM5Yee<+sw43v5YHHKW>O5_6HEI=NJ`8(;*R>FGIB57r+L%v#Xb3ttJmmM z1xqVP-)*#RUl8{$S25VUGzd4*fH(xh5fhh5U!5yyGS)eHID5ItU}tf|;k;ZWE>f(P zwT2#n>7iJV(!Vh2#%%}%>DBv!Vb;CCBo#t|i2tl_ih05^Z?81&U(XR+enS#Pjxiev5qE zb7soGxJDGcC|dLT@%W52iEdC)70Il69HC&4e8tS5;Q)x$rthYv3ukp z=>_hs=}&WJpN|meY;_$}yoJ7zsYTJzbSddrvafkQWV3)<=pa2i8spz`>N2WuZ3Yc) zv$@jj6Jq@G#s!^x?JqEh{wS8pLw!1K$*(17soG1Fn%Ou_YafPN5u!0#gWt!M+&2hp zTKNWCNFY?~^Cux(mass7BxjkP3c!XNDY_4Pv<%%|52vo@-KBk;u4rmL?eX08Etyj$ zrdqvJfW3=YY#Ei(vMV1J!*owbyr)7Sd}+PwaTnhhv+;KX8cNaVp03~1!Es4~vvnU< zI1`@UDy-MjA#^JpOSJb(i>4oY?Q**6u>a=UztDjvEpDr6N@~_~0YfqyuE(?xkrqzo zvaPb#>@hzn-5n=E@AHkwi^l1y^eH*C&Vqm>zXF0F3-#aR9n(xaNvjp-WmC!%HLM>R zqBDg&PQa$Fb7fQ_6ZLJ9Kwkp#|F_QjeFq?(7l4ATrYxe-V=-T220-3#(UAZk11n^U zwhx%NKg-R3ng_PN45%EZpW=pO1eCTMq$j><>_0R@Uxne!49>Bsg%{|l*SE@I)fThx6&ep2b;&wL|H^;wPpqECS)t zKYL-E*J)hWI$cQA7F2VKsa*B7f#|}c({&X0!zq4jXfK-zg{n|fxO_g~Jq_}a8aZ^5 z_>LZx{7#MDamd*S_w~o)L`yjo`+1zb9CL320jx@QO?^{P(~W) zgjM!#H#bktOq z>@LsyZQ8qUylt<6T96-Z&`J%UW2X|pyMmdqK->r5SF`epgIIT|N>UQGx?xx$^(}eA z?!MCPhFnfgfG>c8DKxz4WQ1%4Pk(4qH;k>}seRkA6wqvz%;{V?T<3D(nkjmLGoP#9 z)7hcfk)Z@t7j$pM{WJ~?Ni)D6P1J#kE6ZtSy6V@vd49pcoxECL9@QX_NbP+JrzV>z zE~6ir*rg1!R1Zxqw)cKnGMPS4NMq-etj#+cPbUF#Df{n4XEcONyE|t;P70g^2UeSs zFGP{@NYmjJjsgX04YHDJOS^swUkY(E7bFvG(iL*wGqO|u=ZR@Zffe#&-ZcOADTc#Q~5*fyM50O(oIB^VzWfFOhm~~{^LI;pr8Bn!+EPD+T)IQ zZ8M$i2G#DNii&b_7=T|_E>o$E|?R9DnSPH4AuP3&TkfCTFVfhhGqUKyjA0m@0eg-fJLp=m6qmlmr9fB`d&5XNN1<8l{@^W81d$*Py||Sq4Bs!k2$t z>TgD}MACth0Zg0z;X3Ox8bH@z6|J#B$f(Y}&$Nzy(`bs^6sr}UtOnx}fJXpS0B&D+ z0-5+TP!*F6{fj5D|>a0zteUgq1zcY^E5NiJ?c zzssZwu0>*s+VAM&4tUUu%{{@_*P|5ntdblHSpS8N-ftLiuOY{@2~^7sz=Bxw6JHAn zEgpEx>U#|Q`t^<}KT%8HEh&S`By8zhLc&Yn9w({}0xH?x`FMY*D#w)Vb09!QNcd7- zP7Vli1z5Pa$rhs-@ltszTie_6O!>pZ!-;_OeIbsLtT1TT1hgH-+AX{Te)Gh{gzev^cmOo#;!^pYa_`-M%nD2vT0y}y zFa^z#D@{)Sj?T_r@$;vsIc2Ocn4=$tI_!KF7vx-5z#s4=`kJ zfYYjBS+l)>iw&A3>%)Zze#h0oo(K0BDU-P7b@HhHrK~Q(XF3R#x+u2_E_m|Ei8kef zkQYX>v8V@u6+U!f_A$s3<)cC7c++&dX=d&*8m+Z$a#GUqxCCxB(A@+*4u;#jP8nH* z9>28I_+JCH;OcheaTHiy!&@WiseBGuQw>_cOE5R52mU|w+`GjMCZ(f82DAe6*$RDN z^6?3u4s!!Udj!05!I=M6QTOJmg98H*07ccMQ?i(~t=0zKJ8)%0aQv7JO-#@+FkWzQ zj6DqJ@M61b0p&YXo-4CTQ?8{7^Ktd&7CYClpNBNv^Hm^{Ql?<p~2HC{Qe!m!NK9~?oLKo*#bx!IQOi?QTOD`71cl? z28epDeknik6~nAA6l)a(bpR8}JpL1g_X$kqyvY^Vd!&5!dcljOxbR9ExpT&a;JQZA z@ug8EW!&m4Ltb=aw~A;Q3OuMN5{?1@12(p{UYqn`-QC|eA9mbAfn^C+OErheb_5V; zoWLYy#px{=PMd3773re1Jv*9!_b9+4W>RJ^4{kP!Rq)_F!j#Aq)(7yj{5iIvm_( z1I+hyw)3HW6lQ}ZhpWG)dLnv7W5v;?6jv$QTRt0Fe%y3Cp|!Km6;Ye1%)PNDl*ZWo zP5Qqz(>g|a7?jUd|CZmwHE?D{@I&2|UI&YWDkD4D9|;w(Cb9&>W>#=x(ic%^U{f3z z?m;_K#C8sGy)ke>!?5SuS4+WnxNIaop+I-Hm`TYx~c9z0~AZMm1Qq9NO zcPxy2$!o>u&L7n=dh;dx2yV!}*AQDb*%_Lt27&UeBIkv~|B2@(3p=fX*9=!wOMecw zeUA}SuLLY6=f@w7k4$>MYRraG1YFGJ!&Mk!H|!BR?k_$7=q3U7wbyYk`9DE~Qb7|v zJxXA=0*i$rARwSsv2=RD4hWGhY9Y&(yHlGr$WXeFh_1AL2E=LUD&NobuML?)(E1io z^3=bvb18U9B0#`*?hvI6DsZt2^Q*w@(Pw$pzg!w zF12VH&ANt56S+hHNP{hra@hHpb#&zT6qkA!)G&ok|ND}wcF>qFX5p~`paosnDJzfZ z@))rb@0N|{C(;|yS0VC0@ny~zejcLzJf!Fv9z_W;nrgW*m^)%W7Tg-1h}5tv>&g* zcHUS_l#VVGBt{4c2_=9)QfM3H69AGH@a{i1r(FSTC*8455F)bgxHbow8bxqSZ*MPL z@`XDgh{#Xp3jc8ccJ;xbJqZp04BEYqe-SDp905#n3UGx%UhYKoVK5K zww^Zmcb({bgJanNBcTA{*VR$qfP~Fv4Bs*%_S0a{&&jyW`+<=uE@w53XIO8Y1pWkW zI|z)|q3CEV9RmY)5U8-9CF%sy&L&tbKN3|tfVATbJZ8|KZ!Zry)YQ~K*WTLNnj!B2 zdaD`m#P$ICyZSA*0dSS6ScO)lK}}JS47+}dy41UO{cUZ+I=Z^dt*$#SlrshCFflRB zz%=g9a@x*uHhUZz0NepgFP_oMd5i1;AO}`n?Bj~vjr+63%E-#b1ADs4CJ&$s&C(>e z7z7}xGw^)tsbO;L>bUwKuhWF3W)7DhZZNaybl)}>UFY()yWK!xX$8>;aS$RW9K(Hsc1KQ62HCN=ivp12%qV?MU z?uuDoi9tE*2S_7Piuq^2*Af+#VjQ)Ip1YD3h}CqPr8r}ZU-R1cfAoCRX2)zJw^Arw z)R}nxf98(zRPMJN+RuqWaN!>yM&=+N_==7WpJ<~Av!dprDe)_?5i&&mN~{q;hzi@o z!{fF=v$WUrHR4R@kH_=M0DLmC0f7H9`lf+>3lN&vO$)o-33$XB&*OD+I|SFm<;?h( z(ltQcjAGAWabgc0;@nKmId%B^MS|lIq1*4pvE$)>ZV}P6tc;8iFg;C8wX@Yg7HRH$ zfQ1l%SYWTeb9d*J%A2U5#hHnJ#iCX5q|CWaOV0_#NWYR>R5S|(lNgVHK$Y&Zpb4-U zS#|6BJHo6s!{h7WFdSq(t^rVh?ZK!4Y6p056S%shSWh)8^mJe{Nn#II!N9EqB*lCs zIX&HGHgRBZ&=@!jJk&)7SipN;d#xZzFYI&6*OK{K4c$I1Yyg#Ux4^K|pH;8vi%n%a zaa8XogGvive7b@lLZspU#FKzWOh`gv(a5G-7hyG3aC|bv0p=F&)gbn2F$(02S3fPEkH8LXmI$6ILSokgk92y!Q(&8_IA>ei!V7i;y_9Jx3e>E zp5P_%UY{K!*~n1-&q^&g%($CXk!X{6m2kXbVxLJj_CF;_WzBgKeEgqjJT~Oh6`h@( ze!pVYh2b#i(@xw9; z+Yw1 z(2-H$M${*!|I`M^ALCD8_>$6OIQSyubc*@VuUE5Jxez5UzC=U+zLZ>%!>1jbBf4HX*Yx{!_SZ^(?`b`*Eb1p}# zKU=6u;i*HAN8(r2Z^PqtSl)XdNm8bY0uNFG%^T>~VE|E1A2G4A*1-yY_x9pbQrc=o z=z)AG@Oj)9K{9c%NSnpd%?}zX_8{}%Qz@?FuMs?oEI9Ye>ox9MFBOf}bdnHVi?H|( zn&@fb_l}pLUu0k~7oVT%2Ga*SxNjSHghmgZMirMVvEU)uwcuEM71u3UXqR~Yo#Oe= z_@hK+)T2XNyUVg*tFe7SNUM?&ueh$WVymIW(LO?fDt}{VfynoCo~IJ{rj#XCxO+GT zZ{Hgrq=wrp1p5SqizRMBF0y%s`|2RRQqv;T{7$o!NWMPKl9i|#H%X~-PMz;G*#|v+ z9Af+oxPD$?!6JH%=xug_$lVWv_K&ImP`gye?`>)vT0oJx6p2}y3_AbfSI9YHgX;2M z6rPejrP}}AJC<5x5Y)H%|H)VZ7t+tK6k3Q&$zK&|G!M447s#RLk$V7rb*s%6%c7=B zTXp(7TafA^1QBK4h_%#uHtB8kNLDs7y@W>VGJ+(pj{$p1jK;n_J!92p;?1p~UcKo9 z`!L@{^|cJ)B2na72}l;ot1oK%Lug&d{XCy~k(zP#uE~#>QESOgDCaO;S9Or+Uv3Ch zkz}F7L0}|FFMTF-9LE~{C!X8uh_!JKf}%h0GFc~=H{ z-RD~eVIy8rPf?&hXggJM-(QeaS0@7Y0Umz&sh*+0DB{(7{^<#=PmNLLTfO0b~jivGAk|7WsxF+YY= zEB?3G<(fl)mFv`5#_Lx;H3B8_ugjPS8ZD`yE2Ec}*N^;sd}87)&e)gIv0vijRq|u# zb9nWa3LezFp~=(%TMtaxw>6D-Tek<3ro4jZegS=iCrRigo7Gf8X-q9!dHLt#${GB$ zh}WQX$uZ?;0MpO+dNVmcak4_0JwMT7$t_tyK_O99&TCpjYXCr%IXeLXfl1?P8K!)_ z8q?2rfZBrNPJpeP0Hn^EA3xrio0|^;yyyj3xYZkSGk^aMfM|w?73TA#ajmMgH+H8> zH$kvxR4f74nlxfIOQ=O_e`^ab1m5Y97tsYxC7E#wNC$}Ku&FCiQ8%Y-7O5fj{@qegsbZtkcn}A z)(H~qYdbr#j*gu0a1J1pGE81KJB1+Xum)n=@SOIK!a@KyMu4a?2Eq{o;56e|k;*90 ztP_XWTcZI$bzJR248PwekLja!>E$7Q_Uss}WH_5$)UuJ27vh-qh07BIH9nxBm*t{) zO)2ulfBo7G8cOq4noY`Uvq`{$V$$GumBKm;OYg~gWpHzz|#83QrXrGvRVD$xyXdvZIe!gTFpVr2hk=FQK)_d zX!3#V-KLFeUnsPcfq}u~bt)J?mhyXnayQrF#)1GM09z=aY-!Ib_# zM#0=U`w?IgBi-GQ@CLZ!3Xn4%6J6)ygOIEZlB@p86-fhYG-9yb}QeQS()K9z3lMC+Y0%!{$44J2w z7d)sp(HRgR=n6G5%pHaI&wm$-4h+wq2ZD0%0wl&(Hqax1t`eV=)cd#DWoNGXCHzeU zz9m;eFjH_>xL*bqQ3FDM@H_`_fq_L0w8a3oK57bzAs~}QL`RoRx~WqEK?ks)(e6-8 z5ScTZF3|{ddm9VtK^1VfLFg4^LY<2i{lOaK0woV5#XkJYfnxLh?E*X%&SgQat_JoK z8E7gRWJ@RTs3YK#;7#1~SwjXcF8oX-X`nL$)L44j0t*JwuQ!+jg`F>8(7Y7L0bR4g zSXxi^$>|0gw7y^X!65=D_UwopMt(S)QFPJY?1ZfL5>Mz`$@e0(4$9$Wl3l z=Gzd>c1Dy#vm5r)=XQmx1i!~R!P2pzk2mi z9mRhic|PHS$J@$%x6raxJ=?F?F&6HmC>2+y{A-rpp|PFDov?P@_!l?xzERlzO958# zWw*BOW!0O|b=Cifm%FU)&9d%k%OuWT(}a+Zp&`AYOC*cRphTzYsW7(v^>XjSxrSPJ z@%uV&cqUq)kUOAP5xHH0qwx?Erz5QL^qg|QsiJ6mrl-Y7YWaX$kvtDFK@4|`Hi$^5 zzK`eTBs_Wz%sgb;8>{7H1vmfBq^58g8%bf6I_vA>5G}9D-Ee_Pn{2v#K!OL%V_Ugm zUf@R;Oj=7(wF!;)4#g$7S+;nhT*W)|_sz0Z75AwBAxs!hZ&Z8f1^U{~Y~?X*iZ>DC z`tJgPx7qbyu*$;0@_6GC604G@N2DnC*6Qg)nzM78x8^)Y$ZD+k%bS`Ol24<2#N)j} zpT6E1x83a))=#7r2@h3$0up@~7TKqtMn)iN%CiTw4|r5@ecf0TsJzS#fDBA~DbZyw zww*MOgu+L8kVXJi+wgm#U;i|Zt>9SJ6U#wH)*94z`1`xn6nq`CV+T@GD4wnnm!rry zZVGEi(L^&{$PvoJ)1p)a3?Zh}572|DEb+KBztwoE^69yqGB%~f2-&7cal7aCI!_Dz zBX9CHT+)?A8wHA$lZWtDm6HUSzTRaZUDOs!~-?s$CjF17(g9|zZImh;S!ET1_4qb zNHA`vT4WV-Uksi!d;E2h&OB-U-$T6`qL=@pQ~%#Xz3x5OeB24!FfcONl4EU44+VakbWsTig~L@%+% znq#p0%=zgO`R?vQ^lH0u3M$Xl0*$2^^(ERpe4}=K@@&8-e@oHz<#jVB`LBy!0Ym zG9Ix#g~)PM;ihri&bQqE-oEvlS}X5AseO&M+I|y4loUMc7KLk#My+l=dUbioiGXpKcRLDr-g6HTbJCF(;Wv^ozrTa5`dt2ER zaTPDYWbWxu6=rtxMBjr@l}ab5>YziQL&?5R1My0H46gjd!T|Hgy7)(Slb6!7J0A*c z;*xjtGW`WrnGz&7G8KC}O`2G`K{}Yox}Ydmb}qmi8M$5I3=^tTSXt=t%3qgoC-is5 zO{m+B+)5xmrNMD?>3Tj?AK!{rzq)(ac-oZ;}`rSvjEW7kppnkVTvBejq2;$i*mfb~B+Za`yEr0YK;Sz*~VEvFCr( z+!uk4iH43|&Eb0wXcjN?3`U}F1;{*)E(JICed^^aS^ll}j5Lt(hAgUARg$k=u(!as zyRGGG%O&F)mz&2nqh8#ADWuS5;m=yhliByoXXAeV?N^(LoWb8#1b$HXOK0kUJ140a z^3b0~&uM9c&SA4I_vbTSWS~NAfTH7Q^%pKmjK-hQOd#k>RFqtD;Tv?+aX)jRcM!`& zHnBeE4!iou%;Rjjbitc2p5VTuVq$nZPJxEoiCNp6C^Eof(H9oFB=@`Om=sH3Z&9o^ z(r(p^X4Xq7KYaPj8w$8+G&v7ORf)NQ`@GqYf|+(sZG(_QefM+&oa&__-cKlG((_xtDNU4xJsKh6tFz_drH6$oV)aUxZVaXCnsFJ9E^#1 zs{y9L<^O5yJfoWWx-?FaE)WC+=>bGQ=?F+Si1cFUy@?=ArAlv!C{-znNDEa#n)Keg zlu)G#C=#Ui9_Hjf@65a(X3d(l_&~C5l5@|w=ialQ{rvXfIKyK-=iC{d4E91bu@>9+ zXIygJn)J=u3^L(ndq{ZtJurrHFRRr=xoF%^y0X5OXrhp_Bz8pUnY^55LT?8MhkXIz zg~Ri#>9HxYzM`9(n+<>~!O@if?~yn)FMt`<(3N*S$a!&_>s)BPHMhE6q4v7Ycl*Ka zEW&*!2BnPH1ZJiz0?^=8KMaoAY4kf-0w`hS76mzZ+uR(e5`d@u-|Kj!#=Z0d8A93q z*V~8n3wHf;b#QCmJV7GeG$V$#06!0x(TP{De0y>34HfDOa4Um?v?GrBH8{-A&7HEk z#lusl8K?(}8fl#D&Boz*Qn32AcKf~3S{}G6@I`r$o#hS3TKC~T@p#<4F0hG=uA+c8 zgg;Sm0W8cbz!78)hQr|1ttRa0+5=@}8nDs@;qM^0CjT~Up6cea`RSp6lF!3_xywM% zcl6?*hY;h%#^AY*T36CEmJIz+67X@2(-%I|jy)2m#!PHNXOg-{@O?u7SHN51}wJ+DsnHh6oXbIfnNU+^e0`9`! zI$Gbwv~wf3rHp3vmbA+2dOcV(DVFMKfDQ4UNd3MFvL{i=Mbi|*t@o-;WMQ* zUOX+^Bs}H#X;p`n4|R5LO_`9aR=9G={rbfmAP4c?PR3OIFkpY2(UrbGU`6aN~CVH5H#>l>h9$FBR79J|pF;hiQ5!$J_tN zh!KMqA=-*>FIyf~)6>&+uFfhkYUXNR^gW>2G}WOh##W(M^v4GNl{}k^6^Q1lH4DKR zi!GGM3kNo;{Hu94TYpJ1;lmXsDU&ly(ae_UzXJ^7Wo7vx#J3B}9VQhT<4 zkNz%z^akA75_&7!by)v5eBtRZ0TY9a(~qpSo2hpOl@oo1`7?Lu{f34Mr9PG+5^gBa z(8^aCHYfYLSx=U;#~Y+iVmzwoJmT`cHTRqdy`#u&j=OcaPQN+kaI(AH04_Wrp@Rs+ z7i9ao{@*8wMY2ndpaqs9CFm&8Q6&Bi0kZ{NOwyQU3DUV;QB za!CFx8i0e@<4%AD{RNPVm%dRpw)j_6`7%J)M0daRP=~&h2hhMa8H2&a`*)0RgL8mrDrF&Gro@RI48rI z+hGnb7ahig57&4ps*C-JS77;}G+cw^6nOYOSH)?1ZaN!H!X>brtl_Nv9bJP&p-DIg zZYK9@k5$x1WTQ`@1Iplqbg9q%?7dD~{ua2UUj50+SC1=amW!U1sM8TSsdR-qVdrfr zOp{4Z8Pu*kF%xY~x-4*p@{jLX9OH)|t6^Z~}}r1|npVPs^a z=2xtYs=9jH&`=zRu0^a{@LCG0q<}95XTrzzC0Cqm8_*zn0SE_3YeL}t$GJ0}vH)z% z7Dy#mh>3AjpqSsj<9zUCATTmBiasVavU0tstOi^hFsR1>>mQB?1LKFYc!S|h2j6$2 z(Q*hRKzxDp<1F`q>teS`s;hDQ=KeFirrhn{&98UArU;M5gfR^I5(wYUiDqLn*vP-i zgiUZui^aY?gSX8UIQ?MZ8{K}AH;%oOPP~>?;`Gy~V7c**v)8vwJF<-eHJ+_I6W?UJ zoi2Uyugw-NR|+Ug%lCUJarjnx3`Dxvg~oOSNXjC9cW$Q~9-R0|&|!8)O_P6?<>_Nm z%;gm5SINdrUP^z>3$%}AZf01+tUvh!ss!C#XMbEeBt6`qReRI+YzQ?4{K)?Fm=L2dMNuGM! z0LcXG;bVrM`~m_u#l`6Wt<(>MJ!0cq2RJL)TZr@I1Q4|Exp$aq{(p-UC>DO-_4yg7 z0*HV>xe?%b0VWwDMUXTO3Nkzx47xadvHM#Mrw0OY5iotMKrrca6fc;{u4qF9SyZn{ zt^P90hHVwUSh@HyeS5!&NoPK;uo1?ddGIIj7X7Jikq}p^KE`PEoN*%u)@;boa-hw> z|LNfVd8ZmOs9qlN2E45IuXKn^AP@8_5#IEHqZDRme396r`N7-!4xIJ0qw`*35`^I; z?Q;G^W^qFH4~9}SN(~?)o-C|lSyRmz=7){w(`$Yj9J!DC68Rdo+bHh3u(7elm@X`W zVhpw*JsAMNo2wv%0CY@PSQyKx;RM?U_%3)P0%j+JUmhG$?z0ziK#`v{1TMVQ^EInW zPEpZ#keeLRZh~CwPH2MUfQ`Hj;v~AHz0iAVD5_mPhw5xtdObE{DPv_plX3$ zR_9$L4ZQ>MkvMNNaKVfgTgb?tt&7>(+2OCL#sk^h9ViXu0BJf?R|4WM7dRA{RwhcU za7jvMEld&+9B?p*Ejmk?6bb<8>PG*32{3B`=~B_S)^!6onErqPOqF^O2FAAxz##J2 z<2EC|x*xd5FvHFCQ*T7X&t9MWU}!dXwxL4fC+3fNddKxdduPobBCx5@s0OiN zh36&Wvxx)7!9idZ0$$AevEuTTfIq&ks2HNBkfzh#-+!NzSx;jD9~@*&H8PkD6uhRgJx+JRhkM=J$xVn6B@ zik?Ik+q``F@@-mLU@x~vFPhMq7Y=nQ0)N++FJFKsv&xe< zGK!I!n!2rB$YseS@R}dsiZtW(Tc)nYHxsO}-uNFsQaY4h&`bLCX!-3*jEl}mOfwaK zd-i*x&oh|9)D0W^FWa6mXH@ zlfoyBTw2N;LtVHq7^jP;Y;P*v3IP%ijN?izN0iXb!e6 zZJD==NR%PIjq2JuGy%SxeH0kc9W>v9F zXjk^{q@2Yq`ai=%bEDycK~0!BTeYA|THCF(+3)Z8=>)=4_zD~i_P4OYn@q<$+qU^Z zWuw@K3YRo=JoFNJkI9w$ap@BSn#pCM060^-%B>@rwB*r)KAN1Q)SPUiE2|N4ckK}1 zFcdg!T%_tqj-_9rYtTa`_4G!V#`96X=L<0HEPEV4{I^DMNqUp2>NzIvR@y1$ zS+`ZMb?szhmLbRO^z%nfJzi5Pu!t{;?>XeU=dhz9&Up{Q|BbfB@ecQf;9n*Zr z2l_`H6KU9Q@GjU+uS~&NFU@HFgPd?$>h9HPf6x4i($62W^mtR)aldxmCyimQZeXEX zOy*>LTRp#Nij&?d5Kktv8L{0qL~oXAgC zM1%X~bj1?wj*f;H;@(3GJ)Go=S)pZ7ZArw>`Lp?Fp)Qx@?4k~;FLxU_ALl2{0O?Q{wrYj-?O>vDhBNpHpKk}ZRJ!AWs8(>uU zGf4=WW{31AJKAi0KlMx!cY>q16VyVX9g}4O*py(WJ1ea!se(q5OU*|KrU9vJ@?`-> z-@pB#fTJ8aaV@?#Tj6$xr7T3a5os5J9jp!LCb0CAl=PE#r>}i=M|`T*<;-14Or=1# z<~pto@xsmWo^b(0)Hb%Gv2PNYqgYRgj{d%4ocT!jky-6@TOoC>y6__x;N}5|9x0*W zvhoRC(fmPI3qRw+n*vyIP*(fn;WuRe^3Te(OC2;9(b+$d^vEGcI^z-vc{gY;E_*!L zqs>lU7_t=vzQSxru;=@zaxZS!{t(-W!d;-xSwW~bEn7`(HYhQ7x1rR7hNAjB{A(Ls zM3B+>5uY|4Th6Cv+%jw?+Peh@1I(XcXjR;K`c^QpQk0xi>t*M`4w