From 6e63727f90ef8b55476721ac18f1882b459d341a Mon Sep 17 00:00:00 2001 From: cshelley Date: Fri, 12 Apr 2024 09:54:28 -0600 Subject: [PATCH 1/9] Adding text to the demo --- model/docs/pyrenew_demo.md | 87 +++++++++++------- model/docs/pyrenew_demo.qmd | 15 ++- .../fig-randwalk-output-1.png | Bin 29905 -> 29868 bytes .../fig-sampled-rt-output-1.png | Bin 38249 -> 38150 bytes 4 files changed, 66 insertions(+), 36 deletions(-) diff --git a/model/docs/pyrenew_demo.md b/model/docs/pyrenew_demo.md index 410e192e..ceed5a37 100644 --- a/model/docs/pyrenew_demo.md +++ b/model/docs/pyrenew_demo.md @@ -4,8 +4,25 @@ This demo simulates some basic renewal process data and then fits to it using `pyrenew`. -You’ll need to install `pyrenew` first. You’ll also need working -installations of `matplotlib`, `numpy`, `jax`, `numpyro`, and `polars` +Assuming you’ve already installed Python and pip, you’ll need to first +install `pyrenew`: + +``` python +python3 -m pip install "pyrenew" +``` + +You’ll also need working installations of `matplotlib`, `numpy`, `jax`, +`numpyro`, and `polars`: + +``` python +python -m pip install "matplotlib" "numpy" "jax" "numpyro" "polars" +``` + +Run the following import section to call external modules and functions +necessary to run the `pyrenew` demo. The `import` statement imports the +module and the `as` statement renames the module for use within this +script. The `from` statement imports a specific function from a module +(named after the `.`) within a package (named before the `.`). ``` python import matplotlib as mpl @@ -142,39 +159,39 @@ hospmodel.print_summary() mean std median 5.0% 95.0% n_eff r_hat - I0 1.27 1.10 0.97 0.10 2.42 1132.34 1.00 - IHR 0.05 0.00 0.05 0.05 0.05 2306.45 1.00 - Rt0 1.23 0.17 1.23 0.93 1.48 1327.22 1.00 - Rt_transformed_rw_diffs[0] -0.00 0.02 -0.00 -0.04 0.04 1404.95 1.00 - Rt_transformed_rw_diffs[1] 0.00 0.03 0.00 -0.04 0.04 2280.86 1.00 - Rt_transformed_rw_diffs[2] -0.00 0.02 -0.00 -0.04 0.04 2119.83 1.00 - Rt_transformed_rw_diffs[3] 0.00 0.02 -0.00 -0.04 0.04 2196.86 1.00 - Rt_transformed_rw_diffs[4] 0.00 0.02 -0.00 -0.03 0.04 2391.45 1.00 - Rt_transformed_rw_diffs[5] 0.00 0.03 0.00 -0.04 0.04 2043.02 1.00 - Rt_transformed_rw_diffs[6] 0.00 0.02 0.00 -0.04 0.04 1514.40 1.00 - Rt_transformed_rw_diffs[7] -0.00 0.02 -0.00 -0.04 0.04 2619.69 1.00 - Rt_transformed_rw_diffs[8] 0.00 0.03 0.00 -0.04 0.04 1883.84 1.00 - Rt_transformed_rw_diffs[9] 0.00 0.03 0.00 -0.04 0.04 2015.66 1.00 - Rt_transformed_rw_diffs[10] 0.00 0.02 0.00 -0.04 0.04 2045.47 1.00 - Rt_transformed_rw_diffs[11] -0.00 0.03 0.00 -0.04 0.04 1615.10 1.00 - Rt_transformed_rw_diffs[12] 0.00 0.02 0.00 -0.04 0.04 2206.32 1.00 - Rt_transformed_rw_diffs[13] 0.00 0.03 0.00 -0.04 0.04 1175.93 1.00 - Rt_transformed_rw_diffs[14] -0.00 0.03 -0.00 -0.04 0.04 1606.26 1.00 - Rt_transformed_rw_diffs[15] -0.00 0.03 -0.00 -0.04 0.04 2344.62 1.00 - Rt_transformed_rw_diffs[16] -0.00 0.02 0.00 -0.04 0.04 1522.33 1.00 - Rt_transformed_rw_diffs[17] 0.00 0.03 0.00 -0.04 0.04 2157.17 1.00 - Rt_transformed_rw_diffs[18] -0.00 0.02 -0.00 -0.04 0.04 1594.95 1.00 - Rt_transformed_rw_diffs[19] 0.00 0.03 -0.00 -0.04 0.04 1698.70 1.00 - Rt_transformed_rw_diffs[20] 0.00 0.02 0.00 -0.04 0.04 1726.18 1.00 - Rt_transformed_rw_diffs[21] 0.00 0.02 -0.00 -0.04 0.04 2386.35 1.00 - Rt_transformed_rw_diffs[22] 0.00 0.03 0.00 -0.04 0.04 2028.63 1.00 - Rt_transformed_rw_diffs[23] 0.00 0.02 0.00 -0.04 0.03 1669.71 1.00 - Rt_transformed_rw_diffs[24] 0.00 0.02 0.00 -0.04 0.04 2126.33 1.00 - Rt_transformed_rw_diffs[25] -0.00 0.02 -0.00 -0.04 0.04 2119.74 1.00 - Rt_transformed_rw_diffs[26] 0.00 0.03 0.00 -0.04 0.04 2657.91 1.00 - Rt_transformed_rw_diffs[27] -0.00 0.03 0.00 -0.04 0.04 1939.30 1.00 - Rt_transformed_rw_diffs[28] -0.00 0.02 -0.00 -0.04 0.04 1737.84 1.00 - Rt_transformed_rw_diffs[29] -0.00 0.03 -0.00 -0.04 0.04 2105.55 1.00 + I0 1.26 1.09 0.96 0.09 2.41 1114.64 1.00 + IHR 0.05 0.00 0.05 0.05 0.05 2747.53 1.00 + Rt0 1.23 0.17 1.23 0.95 1.52 1533.77 1.00 + Rt_transformed_rw_diffs[0] 0.00 0.03 -0.00 -0.04 0.04 1574.38 1.00 + Rt_transformed_rw_diffs[1] 0.00 0.03 0.00 -0.04 0.04 2557.65 1.00 + Rt_transformed_rw_diffs[2] 0.00 0.02 0.00 -0.04 0.04 2245.16 1.00 + Rt_transformed_rw_diffs[3] 0.00 0.02 0.00 -0.03 0.04 2423.80 1.00 + Rt_transformed_rw_diffs[4] 0.00 0.02 0.00 -0.03 0.04 2461.65 1.00 + Rt_transformed_rw_diffs[5] 0.00 0.02 0.00 -0.04 0.04 2363.57 1.00 + Rt_transformed_rw_diffs[6] 0.00 0.02 0.00 -0.04 0.04 1720.93 1.00 + Rt_transformed_rw_diffs[7] -0.00 0.02 -0.00 -0.04 0.04 3851.66 1.00 + Rt_transformed_rw_diffs[8] -0.00 0.03 -0.00 -0.04 0.04 1824.74 1.00 + Rt_transformed_rw_diffs[9] 0.00 0.02 0.00 -0.04 0.04 1739.32 1.00 + Rt_transformed_rw_diffs[10] 0.00 0.02 0.00 -0.04 0.04 1944.43 1.00 + Rt_transformed_rw_diffs[11] -0.00 0.03 0.00 -0.04 0.04 1558.14 1.00 + Rt_transformed_rw_diffs[12] 0.00 0.02 0.00 -0.04 0.04 2182.35 1.00 + Rt_transformed_rw_diffs[13] -0.00 0.03 0.00 -0.04 0.04 1175.35 1.00 + Rt_transformed_rw_diffs[14] -0.00 0.03 -0.00 -0.04 0.04 1540.25 1.00 + Rt_transformed_rw_diffs[15] -0.00 0.03 -0.00 -0.04 0.04 2367.82 1.00 + Rt_transformed_rw_diffs[16] -0.00 0.02 -0.00 -0.04 0.04 1636.30 1.00 + Rt_transformed_rw_diffs[17] 0.00 0.03 0.00 -0.04 0.04 1978.96 1.00 + Rt_transformed_rw_diffs[18] 0.00 0.02 -0.00 -0.04 0.04 1589.27 1.00 + Rt_transformed_rw_diffs[19] 0.00 0.03 -0.00 -0.04 0.04 1691.06 1.00 + Rt_transformed_rw_diffs[20] -0.00 0.02 -0.00 -0.04 0.04 2562.99 1.00 + Rt_transformed_rw_diffs[21] 0.00 0.02 -0.00 -0.04 0.04 2352.40 1.00 + Rt_transformed_rw_diffs[22] 0.00 0.03 0.00 -0.04 0.04 1971.40 1.00 + Rt_transformed_rw_diffs[23] 0.00 0.02 0.00 -0.04 0.04 2013.90 1.00 + Rt_transformed_rw_diffs[24] 0.00 0.03 0.00 -0.04 0.04 2022.94 1.00 + Rt_transformed_rw_diffs[25] -0.00 0.02 -0.00 -0.04 0.03 1981.62 1.00 + Rt_transformed_rw_diffs[26] 0.00 0.03 0.00 -0.04 0.05 2696.36 1.00 + Rt_transformed_rw_diffs[27] -0.00 0.03 0.00 -0.04 0.04 2003.38 1.00 + Rt_transformed_rw_diffs[28] -0.00 0.02 -0.00 -0.04 0.04 1843.27 1.00 + Rt_transformed_rw_diffs[29] -0.00 0.03 -0.00 -0.04 0.04 1780.88 1.00 Number of divergences: 0 diff --git a/model/docs/pyrenew_demo.qmd b/model/docs/pyrenew_demo.qmd index 78e8ad12..3afaa69b 100644 --- a/model/docs/pyrenew_demo.qmd +++ b/model/docs/pyrenew_demo.qmd @@ -6,7 +6,20 @@ engine: jupyter This demo simulates some basic renewal process data and then fits to it using `pyrenew`. -You'll need to install `pyrenew` first. You'll also need working installations of `matplotlib`, `numpy`, `jax`, `numpyro`, and `polars` +Assuming you've already installed Python and pip, you’ll need to first install `pyrenew`: + +```python +python3 -m pip install "pyrenew" +``` + +You’ll also need working +installations of `matplotlib`, `numpy`, `jax`, `numpyro`, and `polars`: + +```python +python -m pip install "matplotlib" "numpy" "jax" "numpyro" "polars" +``` + +Run the following import section to call external modules and functions necessary to run the `pyrenew` demo. The `import` statement imports the module and the `as` statement renames the module for use within this script. The `from` statement imports a specific function from a module (named after the `.`) within a package (named before the `.`). ```{python} #| output: false diff --git a/model/docs/pyrenew_demo_files/figure-commonmark/fig-randwalk-output-1.png b/model/docs/pyrenew_demo_files/figure-commonmark/fig-randwalk-output-1.png index e3a6cc173f8d427af3eb114afdede2e70e187dab..9a794124898a9f6ec0cf1e9698b4efa6ad12b39e 100644 GIT binary patch literal 29868 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 literal 29905 zcmb5VcQ~Bg*ET##2+>6k644E!iyl$J=)FZRQNrjYT8J*(+8|nxQKGjXdXLdt5Os(e zEzzUB+x>gq=Y8HkzVG-x2S>y;*R}Vx*4nF_>s(P9YKnyTwD=GRgiz^)oE8Lv34=f| zGVbDlzf3w#R)T+?ddM4iXuH^Ycw4yHKvXR};7%?cPWF}$y=>gv?OmJ&ctm*wpbuYp zc);DoczIv{_Xl`f-0XP!)(y15L-61)4Ba6RqVC%tj1(>+Itau=N=fdSj!)+9g0Iiq zaSHGCseTE|K%&#Y1)>{o_Qi?}c_$futqoVQ7K;AilP6jB_V$Gn>9E2(1*s>Lf1A`@ z(k+||krRkq5_}J3JfvW$0Cp!OS!91_Vz-i0pPJJ^hLdAzYn$|^5&dfJ{=~Y0{prKA zw+7Xh?{^IpH!??_CPD}JBf%Ftt8OcAF!-hDA3g&n@TDBwK}JeSs)5TG%C|5UfGCO zmNKBFqkHb@>DkH~dV6{D;NZ#U&!1NoP5*Rg85+_Ak5YA-Klyp?04^43G??({=<9P; z$x5&=LZikrI?VsGdd=WeK^Kn8|J*>kc@(&X9Rmk;yFI)o|3CKr|9ERkY`ogjgWaXJ zc)miBrBqotIhJ=FWGS&Z*QcbH*9+u6msyMcX85F}DI_>B9sZLXYFrZ36Ce&7{7@E7 zyj3+uKZQ(4aJ-t@zb{mj{KOzHv9is@QSIOt{t%NBdxS0&xOqLhQ5~R_a(9!=t z{zmjJlqE~-=<(Gfm@5$ZBLYMbbL8N-o!&GCL`tlm6$k)D0B%0&%``oV71b=zMWgBn zZx`gN0YXUcFpr8}eA}u)X>SusQz&8xfiPx!$RO7IO)0^$cW>{M!*fi*ASC&%wGAm0Tel;K=-gAiGyC@=#L zK7+hG;q{|D@9r@EGJKe$3M81~IM+N%brEbF4{W?hUc}q6QvjhCJ^&vCHlxW3gpo(N zFwdQ-r;nk88AqVj`HOh{*ErC--0h_=W=CA|cVKINgg-vV9^l$|5W4Q-k&+@KI>;!5 zSZXGn(oX_~eaT5R3vNG6QPOB^o+R>LqBpAg&~)ejT&&|&XiFsF==xVGTNdEWe#yip z!DW-CAW5cJ7oTvSlbgH&+CA(80@G_=cZO&bGnW<-S4ckX(Rx5iI>ZRnsT>8Kxfl7E zDNp5AHe2RFm+Q{Ywu~)pf#Hn<8;aH%i6n=NGO(3k%k|<`_Gf@U-)dm|H&`=698u*nF|Pg6FZbY zoVBY%D+I>{A}T4daADqt_4Z@tu_Jhm@!REx50a_gek3T-yw{?Tb-6UrT-xxo2}HD z;Fz0!(`pI$nA^pQtEd3W|x?$FTH5W8`o(e?LyNgp^A(F_lYGAAPoKo&u%voaJt}g`Ma;m z_i%mmj-#OHYOH`(qZ21zXq<*^F>C)|;-<0Xtz3r`zxyG?#Km)`e^ogzh^+1v>9 z&IoSmfY9!HW!O(<6Ss60QfR>FzRW-W9=p8KJ20XMEXo+0?-ylyTn~sM+!#xy#CA_m zDCIS;rUfF1&)==WDyu#s4{z`M{CuobQ$LR0J}W!CTe(udS6D0i`c*76h>H{3($70j zmu<{}^QcJR7a#g}zId~C9B{XWhW8MIw(f($woXn2wl#*0BZJ}lV`F3X^;qp$-iuKM z1+3HrIG3A>(w#sPi~fg0X*s9mO?x2|TRMy35fK7s^?9=YIN0L->t8;!fgRJ+(;xUq z%+$N&{AmriIO+IxoR^>fym4f2p{X!nK3nolW#E+`MB|!ENozbuzhnx83zawd<7D;+ zYCJXAa>v}q0>Jm@O@6u$y@QF-u;A>|VhRcFTYWpXtMEkhP5v8WV>+I;OSk#Ji`~k( z+wX>}lR4M56#cxqItmEm)CUuQjA|-&xLPfzacWa+SbQ_aC38?0jr8< zyxLTxrltl@?Ko{cmDJJGTLCtxdb+PBuPo?Om~8kTC2K2pjDIgPws=CFtnJF0gohJ~ zQPFZj>*wcZ&YxcCzA?QosGBR#X%ji2T8ftA(G)Y$24<92NPBff}l*nXc|$|1o)G=BKKh z+`oas#++ejp_3NbpCP^itit!!-xEafntL?a!X2Ztk2rNr)Ar;CgQA5VE^!)vmg&H^!@cmA_DLVgkEvOl0k}e$q+Lr z42WU`tAN|fbHTOWtGw4&+)n4mJaNw-GNEqcwqWx5o-e_t*zcxRn2-lF&};Lp&C&Y> z%@_n~KFM3_V7rF5dms=S|D{j%!|{2CmOh>}BJRiIpa`pzVhK|`Qq8SfXKrOKTPmg` zVDK3)1+Dz3=05#HdOMJ4B~#qq4Pw5(9TYE*U|LA$vP0gZvU`w>RMYD=?mhBDIE)WN z!$OdIXpS??j@k;YoH(M}%nc{J~gF&s#R6l1DFGus?yWKT3FpKwL2}a+F<4yZ16QNx7hShCtQt$=2_#BJHj%!sW9{@{W%LDaxo* zBuF^!#e zQw6g%*zc5GD;Q`ww_A}`Xh-R?a?C3$9w6LN={;F@B;Sa>f}D<#L3n=YCZqQ=1V)BZ zd|S&a4ymRu7==?|{GucDqBN(g3I)y7-scdAdW$zE*Z^c1eu4gtt68qy^+{d2*QJ8{ zn%p%HyS`g5P9FU%<2Ej!ByKkgmV&fb8|EfaGFIo_CP-;gXQrFod$8@JXRUMuez~STVv6T+iQ6 zEp%1UmB<^GGG$8oS$Y!(zi89?%7(_ad9t=_JywoK%7#Wvrd2j5SR`z zO}cwFAsE!pK;qjb zN}yw^-hTBDmBOc|sxU6QcARqLI|$XD0k?CEvi zL&ycYiKs+e=}J+mz)Gg2Un<+DCGA*Kt>&{ zERb($BrpvkVN)nPot8^oem7F)_)fD>?>e)13}Y;(P@@l*Ks7vs#pPk-%f9f!1xow9 zIR7$AJB#m$(~R9CrcXn%pZeuq9|cMWwywVDmEtAUd;~I98mbCxHt0R#!pzy9+#!?+ z0hqEKQybrfID^WE%ty3fDWqa`_-uU(%Ily1i5w(@GzZQ|?SA<-6I?W?<+&b;ly3IM zyg3bvcfA>iSXop=*j!Fb;2x}QNcR^1o)y1}jEtrShT6~=g7i^c%=3P=UjF4**ZW1* z7KQY-WITtIPu5m(lm=cL)X5e(vG|BM6=FnQq4&K6a@X{G2q}pz$UmYN!rMn2+S9m} zP#IPxPOo`FMVe_UBE*Lk8${=TEAdEL9kXA=kNj#DNadH=5JrDzq0g#fFSKk^yT42$ zR#)HRc@U~vzOE6nP6(`rt_n1w&|;d2>#=)|wSepiuN2m2q>qI5P5 z@#jkzTr18P#w#|o;K(1>g|~V30CJUauv<703ySy$%LRzZe0c7`v3Ntz%MXgq(TQo z1xfG`y)UI=pSJMrQ!R`L3ig9yQyFCEsD`HlaLvNe5Hz`KfEAC=<+DkhO$)wP?(Vsf zrIH-AQAYS1Y!0}t*rWn=X52fII<4WlAgZ;4JusySK9dOd$&gl#%`zhO>2gcX8+w_%oT6L|yEQT$ z!Pf!G7{27(boPHz*s7si?ua}p+?@Jah4UK&Hgxc)&Y$nw2eJ!-A<|*wLCSdQ`FmMvcWA!gPiJCb~1E-wg_QkA2S(Fl!Tag>YnVA3N1hPQbiFvm@DPL6n z{NHggU&5hfU>(jul-4TaUGOcc;asGY5np|ea%kc86qCV+>om)UHjbW8ozUh{t5}gm zlOPv~{ov^5U5i9(%?AYu-hCL;zHPy$m8^I!8nWAlXXD337P zb>1HRh$J&n?Kv8|2aGPqNE0_pA?%p@djlhHwc3_osbUCHL#C-n%!@`1TRrCUK*}$h z+havYwWZbjt-4guM}(OiI;Bb+_XlA(9)W^y3Ch`x4<^CKuGe_QKx&|o`jIp+po9W) z@FxNb?suiU4mIrfSemINp~}%UBxSR4atDqgHQJmr=g?kva9zVAO`!#@#|mT_2WO#` z)V0cASV>)(h#)#zpLkiPnbMJ+>|OHvVHy1&wb=-gA?5&$v8y%WL!Yc}wOnxoUAOX4 zWiCQ)iz_H`%6H3SXw;+Zp_JUP)*VBpyxWqVpLM)K&>JKf+k<{O@32x3oR3kp+odm! znG{}H*dUU1+4%Tj{a=BPg9IxsiV+ziwExbeUn$EJm44P#5`DTCK1YSm*`rKB`XXwO z><;oVSNV05Nz-j5wkdDxVw0hxnWgt#SnH0Ecy@Ec?l&pXS{Hyou1Z{p*Co-+mP;{0e58LJe4cSCfq1}aTb|iU6qEAqxDOSE3VZ5{f ziJ2mRfh;O(gX!zlZsHd%*-I~)WiQ}B z&UVY4&pO|%k!>+#hfFidk9m`R4i( zWAFSh0`)b)W2n%sSmVC3Er;Jjn^O74VzH(cT9~6Mb>_ixPbilAqS;eCeKWpaUp6@w zK`6qu`8Z}7Y)byLhuZ$ndLVcpJ$N9yA)>0@jzH!o9zXrRo}74+lVjI3!(YP>@kgS^ z_=pQBApGzH2$%NS>`h1CjQcj4Z*oP479gWqHo?poYzkQ@5BOLGGu$8YudBT`2_kZM zp=`x<{Ev;c=PIH?41S3fBB{^Hl%*dhI_43Gq;Fio)3^1bPr?K~Xq0PPO;?fnd!P~y zTB~|-?)tr_eNTxM!hg_9Djxjei&CX-2}%A0FVV)rfNI8!_&0GZ{j{AH0n^-u>QdjzJ*L(d5g=Cc483pcOs`U=qAwrVs1%o z&5h&j=3wFkU3>837PfjF{jB@6Nv%)Rx@__Za3OS*x_RS8J-;mq$5RC-%B{KpObe|_ z>3i8K?jE!>n9Y*GVG_Q2--U_uk>M}H?VX)>rWJi(J%1&imKoO*iDeOGWo4lPgq`O_ zcUOg-W`bMZoN@*+FfjCrwEiZPI2wIE`fA;Dc>C~t*{!jlWz3@*x+-JFZa`*J;{kJ3 zrYWx$4P~)vAP`A8#o0e9^zO^kEIHUp@q`3Z5%o%4HSD%%MD0b_y?14_8;dnB_Ozvm z<5G_-!nWZya1(t1z{{FNmpUUfTr~N@pzOPSy}q6vC%~ z)-l8q7pBc1olV>(Jtla(S#A6}EKm<8+6Ej&`F~L}f!@A8yOyB;3pmqUJGnJ_fOnql zdADU8ZM6I>ZK<* z4hq?%J7=qR5!w_36>ad;<(d@sb_7OL6X^S(mpMdRFu>=YmJo9odC)j(#$H6_CZ8yk zOFYUOPpC651}GpyJT5RE?ZtYRB`JWNd3boRpUwi+)W*-%*b#rPFe8TeT%T|J9#dq@ zZEa-$D5?HSPYTFK@H;@K;DaM2Qw{*~x>Z=7nLX$(z?^aw7V}TeQ_ zrNtvXojQ=`906}1f)YwYNv4kDutO_d@BKZ*G$zFK()@3*va9mm_HmT=5sfD;%bQ8D zd}cN&Mfr4`*5FvzR9^B_Rk>tuVEb=nAkOu4rY@TXmH&=>I3juap!M%m1t#Qr&FuOPW6&iZ0BFZ%XQRw+{!T-Jy_W*0%q~}` zCjQ3oTL0(8c7-O?MTYtW_D``OQq!bu)5uYpd*%yKn}@~1TQ$NZ+bdJ(R%B7}E*6o< zqNrsANcbom>DK)T#_9!Yf|SfT;v$t*{~IHO_p_uzAS$fn1UOixZ+3-_j*i-``7Jhv zvnKXjYGy|l7voM&ye20nmlG5jG@X}f?a9A5FGP#)HDFOtP&BN@i63m{$6I!V6GCLK zU_(PgC}UMsLdeJBV!XAr->^IPa{$=qZAoxjeno?FR|j1@$Pl#sR`&GZ{^CCUEsmgG zRy1%hwH}wYoHa6-XyBRno-7kS7HtHKYiEx^Go(h^>*Nu8gmVq8r@K_|4_hvXx$0S) z0LKOT77Jvt+*`HLbZ%UuoOc`Gc6G_g%rr$6fBxKQ6)%Z6-~-U7k;$9gI;DW?dpr%n z0VMX@G_IZKll%hNcro`^HwK`HUFcFfA`q{F_WoR#yS_in8DOhRPat;u;FQM%rGb*j z4j-^>OVrRT=y?h&sajoq)O^_iDW98(F6=B^E>|0!q2HZLh4xMT%BcK0_TbRV_BPXj zFZ5%QFH|s7*71A^tM+(#$ljA83yOnM@pP0`sP`8ftznP;?Qg{m#DD3}HYc%56}Wi_ zP6dXLDkZ&Jn$pq&uF?-chKB>YH+WqX$YRl|y2zO2wmjO-3}BXFW22H<8+a+BiO3QxT%@b9z-0B0|!=x_^ZEq7^%Ja#i3q!zyUVL9?@T ze3aN_&ipuNq-^m72^~0_xM0J8=$CWtkv)I_Z2`ChKr5yJ->~jW9X;G|KaQfjG5{!J8TAhN7;A)E5EBn|atcF^lZekf z;>BhRZPTD$^(Ea5S!wC6BnIpdw|?vixmq}1O>OW_49HkMX+_U@I#E9-XQjXFV+I0mH~lLvc0=N#b=X>epDJ}nNgT>KIOBgN2g2x$pDE{q>M&y2fWh5 zuhd*AGZL29e-U+n_ZdJtgRd%Jt?7S!n0QiI8cdeWm60nYrxk)VD zyh{NDT|4~_1$Tc>3^GRskeTwB>c+35W@2<=QaIuZ(L^WW5J(BFWd#X`@U0d&Kt?L# zPZG!>hS@Q5aoT+SFtDiv7Xm+g8p9uy;A=a%<{~|h%Le*_nE{SH;h`K+ zx2egY_Yf5_qaHh2P zr&k=pU+@9aUgQC8hgch`ak@YH(A>1L6L~R|(TDM_S{XSx!!3u{S{JSn1l?hm!Q1X| zOjjXU3_WO4>L`O(g#grw+WoJF{bb(agSNK@$t!U^Go+`1`_y7@`po%W{XRcN3K(-3 zSxcJ$l!2+FHgC~{Um!{}EiqCVFBEx4MuMioL6B|mE;pWtFXQ_JLqE|>-M=w}+^FIz zt)vQ1HusblF$s4OI1d1Uq3DbcY&22Q9yw_AA;FOL!@=@w0NW#_cGZj@)$R#*+S3X> z*>EplC5?1<%d|0MACrc-5)qJ)QrrW_za5wDxfRyBAHOs4>A(Y;%XrG5SymJKTuVO1{l* z42AVftxOH?@S-e_IGvst#;LG_PGfeK;j<@2_C2S~a`*^~6+M;@#`|tc?AETnTfU@^1i%nQ6UYzI1>$Q&;qnpAs5!@T-A0~Y zIlR*ZVnVm)=#KSKysJNiq9Qxtg_p@uL@*R+5541-UZxgTW#U0r;eS5S;rH*xY7soQOy4X7O^#f>!MZ|2uPQ*Y* zR702s6GZ^b=}&Z(LXFIDJv4J++sOJg4bMU6u!f zJnN-E#=sXg1SC)u3_`h82oTYc6Le`O@m}Rxnbqr`{*^3nvn0@zKLEcM^c673vt+4O zUaua##{td)c_@;JUt%lkWCJT;)peh1fL{Q1`0)s83wt5>Dvtx&fRzA>^U8#3y~kh+EVZ;AK41xnE>+ zVg|VI68KHLf@m0GxAi&K`ZobI`+^K^IeCY%4_AYfEFFogV+H>F(E!0U6+r&vyQN6+ z5#NQ4G2Z!^t_)#C4|AscNpdY%`%G}!fob2$JMnq!6(2D9lqxE@9yx3nfP8_AdYl z5g^uTFG6tG8Z^8?uR}*JyijgL>(ztcp-+A9=A>WWZvzR=?%V<-_?PgP^)<1WbR|RY zM8C@WcTql9l`qc^mu|}4je-xJwP6vr1`;G*L0t!An}?~%WB zeti!Y2ATQUBEucK^qoc48gbi!NW5QjzrNm^fHCWXjAtWJYH9hvfG4GZ6|FnsB#XMM zVITs*iNzz{!a&X-?Y!_67Zi1v&uF}z=i)(9VCL-5^_9{wyrLOyKgB7iPy29S`7HR( zC&yRSo1v?lNpQ@JW-3--nVpPxExWhEm@#w}=pk|+n)B7VuTFLuAnkQIuil#G4_}2* zHhQr7w0W^7>;C;|FLc&6UH<%y>QmsNR~T<9iQ`))LWdXmCex44a#Eoqn?h7rh!skN zz7#`u;ocjH)0Q*WR$dnFge3SH>LR(7W!T6_16XF1W+8Dkfex*w^0`7RF$voWpo&Q} zRWL%}SG|Z!lUE5aJN7llhzJN|gSX_ZQbkAG(h*+T5$&b#l9Ipl{A9psN{I!}gza8P z47MFNH`I6uzYcS-uC03XI8J3B;B6?t=Hg}tcK2?)LZ@7NkqrgMy`cZch9=0Tf|wzQ zBqMdUpoJ{&=aBb8f5SvXi)8+25p(8(DdEFf1~l7rITp#b-B-9TArP=s4V4KqrLOz; zaaq1i`0CX2Tq>gHNj-De^mkF4^jY*!*XYyEZu8<7a;IE)pw|ErbpW}7zVB+)%UpeT z<6%pyQ~#lQf>VW5`e!tv`DJ7jn(6s4^@_f%)Qa}6w)XHN#g+erwgg zc45Rs3#mMp_qW_h?ji)8an&#eoR^=Fxk%LAGNaqJb~#l2Z((N#Sal}9!24bzGx`Y5 zvDcB+H!36;_5)v1sxI;U!XXO^UOa5*$9<{%H>q%H@arzuM*V91k|^;|O0Qu(_kCFB zVXLTPaczHf>{8ns+4IAO0g;V=zROP0^Ux^fyu*^krIah!Vh_E!6WXDbKr+$fm>0qV zK{X>Imc)o44bIQ+)!zI0!cX`=sXa(Gny<~Z7#|N*lR>lEoV+UKWb*3>jOyNL6P-4j zzGvK|>r0!+2;<6E+1{b=O6X7m2<}X0TS@nRxyoNFJ4UIC8!yXt^zfP0y{f+{*keD3 zwB|cI?53D7s%T zDQ=fyQ>^=sL&+Of3M*DmmfCXO!}1Bp43Q<%BDoz}I1j~<4T?*90Di!|zR2&0mHzTj zt+P(A?=He&_GioJ69Z1Nglr^DIucGp1mQ6;jbSZ$R5-00-Hl4>XIAfSp=F?fFY?pr zWTr7puN>rtu5!c?-k0d6S5j_H z6nXwE*RK=iZ&2>4s{S{*z_TzjNx~)sZoR%va#;3!y_2OL2YIZev`OL`6Jj|rU(mNO z&2XF19pmm59Uu(w2fj?E;e8+xhF8z%n89seYL;6|K%i#*MaRo>650IEQ@(A~rj??0 zfj6kkAcE(u5aqZ4&T1;256Ud)AhSB!2wc|R{Syv{uJ$a25@Cahb5!jBC4&SH70y=s zz3fqoC4S)Sa^|U;-?k+^MSWi2V^=?PO-8=~($r zxqGZboj)&!B%VkWWHT}V9&QfoCIU?pP{3e9CO_0rKvmgqr1fcre-X=;AhZ}}`S$); z3~q%!E6MgO!ht{)xSd$(cals2Yi8`*Nkn2Fzez&mbd6kkD!`-1zCk{echKUqs>c-~ z2uW;2gKgqvk0+bh9uBnklx&;xg|Ej(J$$^{p%rA!c^2G7?k(5>ct~`60W?eJU9HK| zibqNfK5r@6e0guvf%fD+;#6KpivrSGlKl-zTa=KEl_F<^Y(A5=D;=4{VT<_NS7?VQ zs{B?R%eHhcby+L_oM>W@G@0i_FIC8;QyKauHrOeZrZ&RmxjksFwLio#D<$lV z`?$@rXoi&BJ8knI7Dp2^i$IgzR!1(>FdPVR~l z8Ao0A8uAJkC2W}Xq6{ijBMA>7w{`XY@yRFL8Li*STOya_>Jo2VaH3v^hK4qruV+;G{I*O}VTBsi-u0e$#g)ijSr8Fq+|fsISE)>=KdkwAa_3;C z97Hs;tQvNzR9!N;B`ps|Ev5kU1$UWH?wA&i%fqxOa*gB<<{Ek-NUrZfDotf370(*g z2rH!TMu^wFjQJf&Hvd^c0FY$fdN=1pY@!P-NqwvR6l57QiU_7(3EftqfLpcmG~2H@ zJ{qPBI^;Gi&P}_*^FcQtufOS~bLnnxhkX6|75?)ZDFFe&@_L4gp7TtutH*y2HW3`kKtyLV4{w6>Hv48HzMgu$*)E zS=<-vo0{n6>RtK(l@vE)2q$AG{9><(ctqlmz|T*%;#&}4p)OYs@N@zCDOQ`Q(i2NC8@KjNmU~HaG8-bo@SEMe~?di=!)Q zslLBibn3G%3a_1>vF5%$s`?~j(Mj0K-~VJ~psI>5ZOC>_N`S6aQBg5vE_iGvjfbD;DoeF|KQ(DOlG!XXIxEw~Yj#zQyl^E|3ltUD%U(_BtZRR{2Un z44gcma{^e#VIAh}EU6}#kSFOXPpAoecI&1`Cnm6x`rl=Vd#g3I4cR^i+~gl~bDG-P zp^6N?a*Y8K1*$V&J-PN8R*7_Ube7}9_uBL0rJ?~}9RgYOStXP>nX%g3-tMfn82~ir z-u=)bp{lr$0aR##USUDd|`J4>53eZyVea`GdsKHyJM&fv_?X-gsgwJ<0a zfW`zJgvmETLMVHtvVxB$YOjjoub8B>A}25 zl6UJF<}-;PjpSvr9Go&jTv)NSmnBW+fw>Rro_o5&)*Gzgb!xVi2hNNjWlFZ!6>Z@- z%41C#!#KG=0EfUk?1g;H6{)=ZB_j7x?H|KGW zH|g9h53-L~uR7nz(M%;??#~PS;MCMCcs4zH-%n9g z_Tzn!6v9Cqm#k9`c~%k*#o{r8^zCS$o$AM9LiWxtw``y0lG-GOPf=KYz)%zuZHN^HCRe=C7!&#Yokn;oT}F@wBOtE|}kO zE4ix-T0_w>o_AmYAw8N&g7!pF6&3UFw3#<<8n4`a`|rY0{WZdB`@ZYTVW#`9yb}zg8D4NudpLlQehcKe{%gjuQ0CIN1GLXJ7Kw|TK{6RXhmD)!1p;oljlGX{R9Lrqj`)jCw-m!?eb@;oEMRn5o2lYg8LVX_E`n=AaNsbruha>48|5!=c#R#OWQE;Lx4py23l zD1g;8l!B)|s&0un4%rw?nFCHxchkayM;Z#U%jH;8zN2zlQHu z{jqLG>(Or7xiti&!7qUO$sHHHQYy(3UvaaYTa@zOkHr`AJzUFQMhnK0VpV)W8{*@4iHrVv>Cf0A?s4kO zH9DfIi;`Vx&0{uwbc#EGqIXa+U8eXlwoSik)>H84)6Gx}Vug`Mty%I>_K)b%=|{7J z<3W2{Jtd69=+Gph2aMSvqTRwZjmD8uq$2!lJ@4k?qxs(_YLc}m_FE%%lv#rU+gwC= z$~!|V7`w##qJxGgRr`R&5)ReO{xkkq>p;ZGspp5SV<2wO@p{arC<#< z?tL{|d!O;ppujB>Q%ONVNA{H%Ty=Co4b|F4C;y954kbZiN1ozjw4Y+;Ss&YDu4+L} zJlHQ4fRc5H@EFk^S}}DbIvTYl-mQLY)6ggYTanT|+#y{ck%CkM3J*ijLtEC^XaK`v z_GKe48+JR92G(4COHQVV`!EhA5THSG2<|o*7DxH3bnc>aXi1eXgoUL>Fu84Td@NUK z{?DlM(L1|sVDOnOpJ+kzU{OpgHlcWY<|Uh2B{GSH`~sZ_%81GuP)g>QGzmLzaRb7@ z-exS|bbam+kD7odw7?H90*rObyFgRn)>GcHY?h;<8UJffqJXPkIK{%ypm;b_46{!8Rt*5b+uE1q!e%n~EHrX+styPjEoj!=srR;}&MG_^6feVLz>#Io z$4dML<;XW07Y%53b)}GENNX4GQ=o?4PHNs6+&b=ByC+kjnJW>~b{XZSn!ZABCvCFy z>hhMfYM`YZhZR6{i;}r8(s#Jys>vQj2RSd0@JO~uaZO(po?iTx4!V&7Z8gyHp}g7u zd#oHpN8+1EpKhfD=R3d+0fzWcY0Kt|e5KkgolNP<)+JiD00F>^i{{1GEDK@!fP z=$*&GMI4LnxQ<;+U^t_)_ITHMM@%@R!c25OA{VpEyf}E4O|C6b3SF(7XZe^P#!_$c z`B}ae8nE#pkonqTLT|H1hwrTlW52ZU(~;-{QxtIBwe~wm!BqQ?6Gczf2+dKeIg}>D z%z9yh`n}h!eR&f_8v2^y+C=r^29jk2Y<`GDQ9_Z-w~yNGxQT3%7A2)HgC2g%%4P}a z(88!uM|$&z7HLEcYBd|e0D%w!isBwd@e43)VKq=7?7ubN-q8nTm*{-%{>!6wl@d+d6ztfi0S9+N@UYqve4%4m#otZBK`?qy zqmBjxkiRUCero;(-nV_GLJs-)QOA83vxkw|L?X<1u6BQKWi;TxRSEdIFdw3%v^}Vv z74t7?FuA~ZL-O>kr$PyZNaj>HpsCzq>&33bI1ik`JPI8A-Hy9B?!th{fb7sOI$abm zHH!3Z-MU7lpdk90vFBy~5|e>4OAYg08=J)4aoh0@6Uy`8Gj;^pT z^HlEV{tq(^KdTDVU^9C&4X+WlOKrW?<3>LCD5Q8S${kG_tDE`@_}xyabWsB`wsozS zp8ONNJ-TNL*`~MF%9}GnUWW|snZ)$+_c`e&%G3I&TcTk#{+JyLOCVe3qHDIm=Sul^ zk!~W{rvE>(UR!|X4{4v~d6h%SKBSngM+o?oW-`5>*c!P{!<4NN<4^I}nBAGmU7(W{ zldpt6Nni_$k=Kd#4vT5(WjOlFFlXf0+H%a-*It~xnCCdwF#(~gat}Sq8!uHrwP2LYu7a74x4t3(d-PzZnuSpKg~gEfx!N!+JEGPPIH_y|kx zGgaI4@&P)K9tW$H$;yYcezpb_g)wU(^ZB)|+>WSPh8TP-;MNMP5l+Q7e;#srsJhy6 zA0tVjWlk@+Ydkz&;e$Tnmu-;l2nb~7bB0amhp7nq*yRyE@_cvJ3_s6WNuc%oAHbmqaE6v=4l#f^O_@Zo<~MBSZHH!0FL6D%i} z_Y2b752>7N}DMsc_-k)o}>9qR9X391&ssnmO}|VTsZ|zNc+l%*^b0&MxKsS z<^^3gfhhAWdY&n6Fn^7&bCY%t5T^iQ9V>Q%*51-o>jvoIkdPHe0>v@KKg=H;Uy+#x z!G|w`{FSj`=^5WmIn$A`!ai)8;V`zEPt!%Nz`&2uRu=+*Y@EiQXownoOUqK@;e=g1 z*ow65vqNLDc&Sx2W++*14Y31`)PhhV%6Cj zM94Ek4nw549bT{-CU<%^a^3d`V43^Ql62R>58P8t_y;_CUVkC5L4e{06h6QPm(v39 zVGjJMEuZGCY>Q>00+C-F5X(h^Jt*j|gv6)Ioe?$z%-|FbL0?4_oQ43Q(#YNQv?cHi z)7@@Ni*MzqlQ9{LW(bTA*a*n`g|B20k*6aOzSfA~QM>^kaSZt{-?EDcQs2H!9%EM0 zD)8O6I~+z%a>;I2r^WrJ~L-Dzg&cX zVgJ#hPie@EbI_PHNk#+4N9K7~>hH28PunxVGY0&1lr?22C75jCo8D>hO=6G+M8Zv> z&#~6kwpxA&vJ^C{fPfVT?FB*^7g!t17dwC}BT=^F&+`+_bBKbst*n|7UP|ys#nwZnz!oZRRjDHejE|kAraPO3Q`14$TI=v80Br?nf06Gr)3N#9-QrE6G%C)e`pGm({7$fuS$+}%cAvr zj}M9nHJ2TW+?9)z{+F2pzc|fDKc^J`(P;*2eKgllIDN6HYsn=5)9LI^a49qDY%`rs zNSGo4gbC2B0Muzzd6fZCj5$Y`Cu@Jvphc+n(R?1;Y37Sf&QSZc%0VGC;ly_jn1Eg{J@sdg3pji{9gb*JmeOqPMbms${ zU{$oE|HbA(=^PUqx|$lwLe2Paz)jB&jP3dQEG;VzLWimk4>SgIB3^-sz0erY0VHm5 zg(~V(&;i4l9J=#W&OZH@-2A(_2ryjWK}+$2U*eG&GBH_eKF$54ze0r!7TM-@O-5bo z(Cq0!4JKSC0_U9seJWmm`3P|D+_(LPv-FxgStBwiYYx>#KE#%q-z6x_08NF45wjU| zPN|`)0-#BUi11o1!1YFdGvCRXbuA>m`7{2==c>b(uy_c}>E7A&X=u#2QkFZc@rxTA zM<4KRoY0aBZV%qjs@UGOWR1kx2mhCR*DTPoZT(|ID2(`l z&n0T{Ip&xB_@n8T!0xyWB9;AmaS*|~T<9a1F>a1#bq#4a67YdMUc?fbkC2UBf`B;A z^#}dGN;~VQDBE}6kD?&0s33^KE8S9xgn%LnLwAFufKp0`G$J6SFbvY6go08cof6Vg zg7koNcf+|J{Ox`AK4<^dI%}PG`Tn5`W}bPTd+z&+@Aq?k{QW!iuJ)`Zg;d1W1Inc?(14j zCqTyny;zx4BQx#EV5SrjrCqEsW{fN_!cLnAD|O3)vATBpS!I`0qxb`b*_mNL&67x`2yiMy?u?4vuNSal8!VSV~R#Y4~k(PEoh z&WElH=zYJ{7k=yO!9;IQr+q^sUdkk5>siVlr=1vAkTM)@sb`)*RSrMD0L?kO_C#?M z%55QHp^0MB%_Ikd7hi6IGNy};mzmMbi<~N#Mys`qg^)u$#VdsKmdtF^xp7yNH>~!D zv1!vAhR$q8XqCHtVd$Pdn6HRfa~*t8&n}{oDQ?GiOhr=5#sihh9;_L1MGL!A(2woK&sys`7W-;hTQ&mSFHwvM4j1 zjnl@RIw%-G(XWRarP2{1U**-(~72 znF**H84`IH2e4pSs)1+fOjFf6YuD$`7>R)y0D^B&_29^xgsc=j$uxLh+}86conL=t zxs=V`%XT0$r<2vh8hoePh^<+=M(lw^M#tVXZESTIIh>amHqWh(W_@2j5N*nkS8PbJ zoRqwkcb*$=2(!*x+qEE7{l5(0T#t--?_>W|dG*jf|OWf0FMjohY(#oXjj=hY)ff;@lRsF-clGoA{Tq8 ztlp9!Bol6jTkX&CpqmV;R>8KCU@5pZPYIRBvUXXunr%l_PJ?OZXxGp`5|8RP3AVN* zLOI>p-~^fv|4OcA_$9~Wh_AyEN;7pbGxqs8QqIihILr5|>AmI`Uj{*_n?keXD@pyn zjn)*~_a|gw@2)=?w|M#OcFk~Me6%)mOlef#9kT**#rh+EzR7jt!3n6rOUs{-{v}ms zwU$S-zu=dA$P^|X07gqv?EGmw;Si#WuB6a`A#%0SdKI{xhU8YNH_Q~XFajV;i{u@=5%D)@= z`h;&P=lSYRCfoyIWoqsc!$1?f0KU1U+wL@NI<&%p1zByF4NnvGwD}D#MDKgrREs2e zW{5vfWw7x=Y#ED~N0HkJjOE>GgKv*|p#DsM6RdL|yhU8?t#4??OX;dTd8u$-r#d18 zRq}IT+vN<%TEM@joLEQ2{=3GAjnu&NEK~~W!3WS#uGsz{gJ5RR=`s}XUongFHZ0)H zYhG(&hU$f4wqaQNmnT(Es5o19r<%8>WP|7Wt#UE=GdjIwt8iq(iN)$-lyw*3&#NWF8y zpua?1#i@?`ZjC2uH2Y&_Q6YgXuB$l*N;LQ^qT72Tj_lEgkE3v2eglQ;r9;T0()*f1DgSHG zJ)0jyjWL)=BHoip2^o!F;X4+It4mmkDT~$ycbj@sW9Fa*R*IUtM;qAl(aLE|MtKClv`S&A~PBq5OUN%a%B4Vu6eEtlN2kl6lJ zH^H?ABR2U=8ZMNV@4POF zv7gPMIk7K+*6$Vyj2KU@e9G;UdQo{C&-9iE0~1keXc$4q&B;5~k>@~Y)wng$0)d*q z=g|DD^8vG(LUls%XzDHLe&Sww8D%$~_RA->DIQ`E zON#2wYLA92O(HRzoU(2aL1RXjk+S2heMxG4->w&N-xe0|&IA$PYCBa5QHdIXvu2$IUbKykRslySs_@4rja0Z162;yChI#3NLhS_LhW_cuQ19FAy}VNI%w5yjKe#UcSxZ8GIBa3on-dRuy%J_* zO>w_#;W+`DM&0)ZxBQasY+!DQsTmx_sfD3r;~DNmj^?1xO1W|T7WDY^WQyiDw4e;# zh+?v;wSkByyq%M@^=&TuJ(>d9nUy9#KZk2=3&f-1Tk9uLHtb{dHr^m&l8PF82~Fm} zj-MPQGayyUxe)1d@I)x{+0ZMEN8S6_vynbct3QqVI!K~$((x59yGs3-&90jPj48c0 z3}So$GiaD>M)h;6JyB2YYHRc`eBA@0dWi0D>&*PZI$1jvabH)WZ{ca&Y;EI=cPN7G zU0F5RUztk#a!wvE-)#x38Jv{MHQqmSzRcaAbe4|_xCXn+GpmcB>mIDA8l-#k!Ia?s z>mldHgn*!{m#ZAnzZrI`rPvD80_zuJZxlq zG#Z~l)d0#@%ZV>s;k+$+bT6LIF)HA7BBP9~6I+Bk+E)hbzOanL;|dt@wYULy<91GR z(TI=$O|V;!m`OqB>t>^`3XhvXg$SGAGDi4#xQyC7pBl2Ur7f1Sqv>f@us@y*symt4 z^O{Tdo6+OPkNe#d+*W0>v~o`Z6Ny9fORcJ+Smdh7A6-y9uG3ruA^Rm~KT1aS16h6_ zCYjeH>7sq&p$#L1k)z)p8=Krz{`iq-i_45pOZG;7_am9lBwPN@cUc^I1$C!9?FCqZ zB#GfjmkFa&upOKFX}mG${qt%OPnNBZBvqxFo*Y~zI|qmTz>`AU;og$s>>+{@1Gd=D zo*qAj`=Lev90TT7zQf)Z{Zcz<-Hr{vSOPsjmDtvxFLM3u31Twh(*OL-fSx=7udPgr zmQ_e@3G`Zy4ri6);8ZQ{RO#n8}DUxm8} zc+wu`|3;y-+1M2Kdq{tIVSGUmhQ=#y$I;su77M` zy#U*p%TcWm*=E@I{H7Ju!E{@U*e+--2;Vq~D)KPl=#Kj=rRGp;KO?8G5=y(I2xUR` zUde3bhfo5;G=w?0?;CEBFN)$r@c|4y#uZiXTRsWS!JbwFxpmOv)WYG}X{8L()be@^ zTz*{E2B+iyi~1wNBRCp3TYB8RUkml#6*F+Fyox;_mo&wqB;JSHEwIEqweyq0SpWWk z=uY&+(2%M3{1IDRXInrS9+)3=jbOw<(8XEx=o@hB9+k8Ws%m0lL}Ph6z2Rv z^1pnT@_z@fto&{^YpAa`x)B?>*Yfz+)hk!xo%Zy?c)RqShfb$=eJmp-Cr{tGDbv>E z%CAOY=VC|UOLmjiMm$(p@NwF2Rdn-LE2h%gdYhC^_2|fi)IaHugU)|jNpmT6N7~f9 zsH)G2df~|&ABq7F_0x3bG+O^|vPY^4B+J?)SXdgPD=s-;;hX@7+JbNI+`aqv{T&jA zN}Uz=iol9&bg;W2BVI43^O+Lg_hG*-H*`5UKl1(q=U}Hl9_o&Es>>SF;YJDB{%RV( zy+SD$OYeQDV$IK4qKz#P#_Q{grlH$610z}NW6Ba;v&jJp0vW6Qu*xBK)5Vo?jygcy zY3it`3Ns1O*BP;$JyW&d^nH%BTz1t(6nLO#@GWc$Y^<%ngX}7Fz_#*=Qz`PNaKuC8 zOWCSyD(~LEH)t{+T=J935_@iQ#D>a^E%i$+xLD-k=&tZ3C}8z{Cu@^kMX+eXyWuC? zU5s(VTmo9-79dZeu5|lM3~)D=0kpB5QLa*x9aCREBOe+qn*m8IuU0=O8c6Vc9oXAU z`Kpbsj~4VA+y%2VxG|j;2X8GLg3EPbVF5w4fv587^FQY%Hsxb)JOpeXV!TvRR`y1G zm|?efS;5HsX5HihMMvTKuMVXd9*s(hb6m7N%-|4|!#z@`X@x zkq$k}s)_V9KV9y?c#l+}I$bdG>*|;lVM?<9o0l?fbL!J4c0^r4NVnE+om~glczJ8n z^y+&hpePF7$M@kwB^8u>y=Hw4DtzG8lWXtvn%0zcXmT>y78q>7x7Eh31oeiVL{*eM zCv;Ys)M8Uyxot&mf$hteS_xP=QPZN%BK0*#i!|Ah#e_R?6{0GjeCUU>JbK@3mq)v^ z56Q7hr85Z#sE)?Z56VPa_b`j8sjvoY?phS)UdV*<4=e+S-D$#GJSZVDrB+k_qBz3W@S|K_=_^waNiI+0+ofDKX$HFlNEIM#V1q(B{t5yzOjLBRVzulq2H^=%q zP=_g5ShQ}y0N@lQHQK4rz{!w({F4t(vh(g}KoYGJpY5n&%9Ci!x)P241jq^3Un+o` zfv!yA@Dc%PFei7JtcmkNs@Cf{qU>921s+UZ)hhL$;p7n1X-+buLv{G{>QNJECDC9W6D4BattdF>2}^{~ZRe3V{c za^(2QRXOeFD%X734q#_IU(lWAjE6vc^F9@;U~rwyoEu?&l$c-98#3}slr-P>aAfNt z-$v%#@v32pb0ZxUq{)```o28@_<{nohXtt-d?|+;nv`Fj!r1GK% z%5)9>@lZd2>*bo|N)^OQzZ9uMt+37!*?(Qu8~DM>l-j{MY8XpsFUrL_Vm>Y6lybUb z#`eDnKc!CTtr#i_3>osH=Mzp6fDoHS?*$=t6ors{wR`oV4+D!9-ztee_!N5r3Yk_l zcxMNI1Xeh7W63(H<=h@_K4Lgn&bj?&?)gvv3SEnddJwU-zlU|5j0PclY7v)30d~-I z!Z@`z1t}XE6F)l*F64kbIk}a^cngpOGzGEQq9AC}3h9?KpqY5fXZ`U<13|z; zOlpyYCW1G{n9Z1DYh{Y=^-R3^(CNmf6JXVn3jNn#ahOMy6bP)Cb?#bq=RP!`UMkkK zrWeN&MfH*2RQr>U#hfl->d!ufz>k|sUh{E*Lt?Okem>%3q8qd%cGfwRajykjsGM`U z1-1I|*p6Yzx6Z}u%c_StP=r>iuzh5EYXlk)Sx0)N<2Pc7`JB=yvQd$`xcn*N*9FaZ zrH34Tz%e6!Ml~S2H5Gw8TC%Tdt>XFJtt~1tp9Jq?XVUU-UQet&ImDcq%t$p&gseCR zi7ZhW$JbjR?FMI@5Ijo9(?Bv!RwzCa#n03JY!eR!r^uQc({F&@1h5iJ z#%j+JMvdyQlQM~XH~&Y~oa^F4Hk+pLhP$>`@lb9vWp&RhV&;LLD22hhmfsy^+^*tG zW37;}9Jq4A_ny$Z)fH#g>yzuamT$6g1x4&5Q4#9Lmy^^;LoG)w_prH)&je}(vMQ$6 z&1`&AJJ@(2oGud|9w#4-%D!?M<#tfB8BT|7I=+~u4H|$xjFO(>6^PzH&k$RR*1fGz zODZ%dbkvYNx|Gl-vedBsz0@6uEJlcIOV1#-I+FvOb@2J6T6AWw$W++MtaCzpKz@hy zd%1mWC?p4^VPS1^;|JdK9xGNq*?}8h24h1Hy?gj3bS(+ zJl9IwGjL{n-+dF?@9k@(RNrn$Xck$q+vt=*^@C6z`6k>7pUq0GP^N;Tl5~=9T5$F; zEY3hUMU>4gAp&f`JKvP3dc|yIgpPC!nz-Gu&2}5q^3fG#KF5#hz7E(pIg43X%~}cf zB4x3B7Hs#$&~RV`T%}BqmAQlhn%x=HX!8`0w$cf3cwS4Pl@ZMEKEJ4GWm2iqm`76p zMz(j$+ql)XBUaD6VbZA4^_ZVsp6u0~9~#28T2xqU4q5cmo{GRMz%fv{Id0fzruT2%U|IXoIRXnaxBMp1gI}h*Iz@fH@bQn{LnRe zX{~js$_WS{8wF)whRnqK0?vsY8ibLuDw`LXMXUpXCUUJQ5X+eEa=#v*vrKb^xU~tN zA2sTGIFFBhQ8OohJ2!(u!s@OHtcMc+c*xlULlB(1nR1?@Qq##HcI>F^(Cb~I2PzpY z6Dt-LZdD)cZ-RgTG5(K3dI_^)p7VN%xmX|ovC>d&^BY8se;VncUuCXAI(8WWNo?{BKDk<70@u5=;Kb8Yg3f8pOJCFTZ5iwp{I=iA3 zz;ZzXmB!RlTqe*Ip`KzpV~X`*vZwgMrI91x+^#}(48TT1l|Tww1Y$$)g=h=9)eznk zQcub&F|a(7-uaC^NPZY#pagsM$>Cn18kwtylZ*{osH(T8-6;NE=u@!51J|R!@33}p z*s>6s$@@;4tmEr9W264;_p^#?2ukyz^F+7UQn_ozGpe%xe9JQir?uVa!Na= z6rn;e$yqgaLV28uUJCOPh*QA#pcXl&r2eIOx&SHrNl85ijf#&tsd=!lyUWTb3We0L zM(04!Z)mPzDfyO>EnL3|ylO+^`CunDjVX(aup<`8{CheO%Yg> zi%w=R5=GzU30tMVEI(W!aTc~F6sql!`~}WB+ttwdm%2rGDhMlfq7g`;O2C>AVfa3M zHKB&bP=pAzJ-0^5k#F}1_oJS1X{bROFlxD9e_dG1k>HabCU$>}IzCQpTg-Iaj-f_h zo)9b>v|j>(#+L)BrwQ4?tCC>hDP~x#BfrBm9HiM(S0_TuXrL(wkYACS z^Wcq(ZP&((5T}$uVM$Awu76-t8GjcGD!HFfmV4rNbuQ*J?^2hkyxyzJ&b!cUuS!yX z-)Qws5ecgyxLB1y|rh z3~+PDZ`a?c(gS#B!Vu_*0PFtcM)HFZ6)+F`rlaU_jk1xlfS*UCTk9buIayzf`xhQB zl05|Q8EZQ{b}G*7d(j&4OXy@#-RNY*n0_9yr}`QA=1-leIUgUOJ1v4c{vJx5zO&AG zMOcu~kX~r1;T%(uB6qg8Ld5n*1IyJ=-dp=WP8vSF1}tpQkCrY~Tn-5dVdddz*qKTU z!y_Q8EkE+7^9X3>E+v5k2L#jGolzAp0|RH!44!MTBSssuJ)jHM`u3Rma9sS*q<;Yq z53dOK>avoiCIJ+4^4o7;&aT+C0-n2+l-dR0Xg$ijQFHkWJ5$cigS1mDjKb%73#uRn z0Ij+BPNU*7-O&o23(k+qsBpj@1oC6yXzuDif97p7pt@2=Wf;ugCWPni?!LYJoxB5z zF|oE4KokcA_p-C+mh(2q=}-HA_clCSjoJo8l($8~bLrxCgvT{JY(Ohyhx-2g`!*Cp z0yw@Don&BOu-q>IBtB8sCjo!eP`T&1d)sHAHVwBndhHNOxlpYJ%nA4{-agrsX!c_S z(*2b9(JhwJ7Zbcf6SKj$_wGBdv;>~GP7 z^{(j!(kH(?#sXOo7teUy(>8C})EYl3g8&{k9P##yqUR^kwzmxTm+N>u&It+%DrNQ* zZT!;Z1?SOsfAWSh>HmPZ!{`I803){OV@qWhB`;o;r@N3>5=q>Ujc>7>$dpO#Wx3~W zE<}>lk3RF=$=2>WcqT)D9v>eU^4J#wj8;aO;`MpzzU@Sh*IzGzxgD`o;(r+}h4^e&PWMq_EfSgI|-ud@bBk#)3gDm zwUnKerDhZ4)OKqsDJA8k^YC*PJ#MPq-CaB2EXlpdYWF-`LrD26kjO%ra6C22pr%Vv zTx?;bO>9dK6B(HdbaQwFNSW)Z$M(ZZB)R@3L;q=IS+>jbya$x`vh(A3x2K(3WLc%o zo0XVsvJEb0>K7esExq?_@#`fchdCMfe8omGEjrM-z^zK>sl7d2LV^t^!?sNRylIP6 zBKMAsGb!4iHAIj0*IdBZ^YhoQSBf615y(nMq2P;wvinYYbM(IW?zxK1g6!n9G<@;H zm9Uk_Y`1&GVwXt9Qi8bexVwu1&mQMgx{_&lKon)@Q5+s0Bl9mjJp*85C;@Z~`7dnN zm+V}|hHa~G_)zP!@&hPT1c=Z5#DAYCZ=G>9K<#o~Y}rh>dsNZ^KuxRC!@VU;yV66fLb>xGg1$(zdR>Ze1beKWt55WzA) zzM+$Q&dhMpT2NdEoHgoatdYe);|dUGCtA_VgM~N7v+C5Bx9^VQk8!ny+y~*nrpU6d z_?23-qmuJ<t5V$2v-qr*&P;bAo(nL_6GV73js9KzANoU**^Ky`)@uRE-E_C4tooQCdS4m6A#zZ z0TZ_zsOWaGUHnKCszSi<&#~%Z7X>?5U)ghrxT*>0YL`5=L;$zXX#lkGAxEmiN!vr| z=c2G>UA8SdcR%bZh$)aChKf?4Su>VxYiFG9D8SZpZ$PW$85>xQbaZry<3WYJwg`ZQXCm0_cfKXwKFS3PvQrbX0L_3B>a_TiLPrJ?cql(#e?ZOual5v}g?UGC<{1=N!XdGRM zZy`c-@pku@L7Kg|r*ky_$Pk-Y+T`(`q?&;M?BY9S>#>&3QK{*Jf{SLB1hNPbvbOzO z+}q7@4ErL)HrLp%lj0ImBgS)IU=>s^GM>RL zoot|2dn;6o#1#PxFXGZ(H z^Z>;Shh!3F<%BZJ7^a1SKxLBT@6BM^1(vqU(;k_{zt^XfYtCgKX!9R`BmFhAhXcwp z8)yRm<5jMi6)BlpcF*|s(!H!p@>5Q4oJvI~49FeAK&kw8YD7~olX;{=;PG{O!`)CF zw}ELedy%U!!U%4VH{WzOV2PpE^e}OCnNcs{?^PQ$g%2!Ap)-@0x|)@I@Vujk-png+llTH-pZ9JpnI2pZ7l!e`jM}{C&lD z8lNFTGuU}r9?gPtI8I=cy{!XiE<)n>ue)S7CPiB{Gqm$}IaCQsn_*{f-JqZP`#weZ z)@m>`L8a~Q4Ymt`_3;Ah5cc;@oR4OT*YW%0pr4R!j>DZ%LKbLYp9Yz)Mo8DJ9PNW> zg1?s$2Lmh6M|QW_*ZbWJn|x}I@6Z`weyq6@5>rBr6aM=*;G>$m3##c{eY=9 zKB`FXi>M)t2Re6=;@sr`t$z~2$+56`ppsx%3sR5--0cr2wm%Z6FV_#BB1(U)_g}|y z)zghkI3$;p&_J*RhCgagx7T5Yd;6okVxHRt?Q|XsYYYR1&e~Ww$sQKyB&*ad$+7RW zgv+Mhf$;E`cv!X3sCbenuJ^Y1w&U@S`@?VlnCul(mXLf*=-12Q4MpF0$8sgGofIP*uT3`Dm3s7fTJU%zFry= z6*a!U*52TaN3iOy%`{Oua=;A}hVY>2^6C}7p69{F^uj{CQ({8GRXzK_!HKq45KF(8pIEC2L}f^mj((IorL38oh$eBi*s|8 z6W+c1v6UJb3`a`oDh$0b4QpTk%YIX@p=Ws+GBIdVf}TEGJ72nDCN1{Q%8LEY_R9Eb zjG*-&TaUHaoziKFbqJ!HsSMq6NhCag?rN%yofvNjYnFbmd|2qYck}o7$`APHZ(7as z_q$aUCw8oYMj+m1)8(Yx!THl+)6>#S6WduTVK$Bf%&)mZ=C5aH$m6+HIuaSLkX{Cj zrQ(ktWe%r252xG=on*Fas4D0aAdhgSF*t6`KjAFO4>m%ra7esCTJOQjF}`u+RX!W7*Z_l2Fc z#H;CDfymG&s{$G@%1b#q3bu)^$w4mSi8{Mml5JS&(f_6b?6#xR9q$2Wuv0Q0z7oIW zMxZEuAfS*SN|@O0pLj5D0nMt0{sL?G2nW33AE68&z2*z&6wnN((1-&AOZ_R!^f#54W-l_lV*2zDj^6UzbO#K!^eQF1DU4;U{lY@ zr>0*L?Qad1Vw$H6&9Rd*`*&a>VC?2$M~CuZUXu@ebtnI$$-$2!qG>ch4-Vof~A zYo7>sB3N9w3jqj_mDe_Gt6-{EObpnkC@--6o(7zNm-PE;s*2^)dJw`Qv#sE>--GxO z`5w>C&GCwgk`xYvAfud$_E(z$?b?{QLmNG3AxhU?NrIhhG|n~ZNV(Tn{-SX8cI8O+ z2XeNj9za1xMxAXBEqVAu%<9_z1Z?a=PV<)_+K=2?0EC3}d;4D;60)t}V25`I=5H5; z$zk$rjs}2N-fq&Y@CgkKwG=;+n6_?DJX+V{r2JY~csKmRyF%w@&yWdUT?*vL%fM2> zML5Ms-@k9aKCSEq>9>@+`b7a6(k~^m?C>k&kWh}cyM?yE-Vrr5lJ)Ek*I6VDnZRNx zpC26_3nIE3}<8)@_20X|n(Ik^BvQ(yu>|uuod&ouYz#z8fEwiYX5UMwM9`t&0g@uJR zdrL?hLX68e_e^*PlD@HaH~gIgkKYpxjXY(`J|q$ead8-Z?kL(br^0us+c(yDKqhs{ zS90gY$XHviLJSsjo5tgfzF+ICcTt&BHJ0Kr3#n};VV^V6q4 z*`5b;c>@b=O$@|8`8mk^O%S k)ckh`;s5ljRY&CY7tZSHZrXRicu|zhJq4*RcZ_`g7uYIqp8x;= diff --git a/model/docs/pyrenew_demo_files/figure-commonmark/fig-sampled-rt-output-1.png b/model/docs/pyrenew_demo_files/figure-commonmark/fig-sampled-rt-output-1.png index 7f94e989d16ceb16a1199be57b7159c24151992c..e31e0699ec4ed14d365dbbdb27b469f2f3c63a8d 100644 GIT binary patch literal 38150 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�Q6&>kvRf2U3;_ZtQ%8E^sA*JR{qsra(k zEMoV%3Yp*G=-3uac-sp@_QgAWM%AvU4<&4a0lhD@?e1FhBuDA* zS>whl?&JyaC6;{S?@DG?91Q7lckw-C$>O=Yb@3IfEn@MmL=z~pow3hYVhGmS=)s%LYp%plD^>~xEi zEylE;uTY6!x{Z8)fOSDDVuyzCn+R$+y&8DmIZ8;sa2->P+<}UPgk8NAw+NKO-@o z+jT38QE+egK0z;6jyAz7j!5(>zs{S0ZaW(67fe4y2Enj|Uf+EJPK%R{BnD!jSG3})EfYd_sOKX~(Z+hHu4 z@!9o^N4)!W??l61i>w0ttB*>GDHv zCNIB-D+d%1VcdzsvFW{!LY$CCkmycaGHpl?XUheOZOeuB%){L^o#{Q5J(cP5@(JCb zfGE@W!zFd3l96MTAGz`27iqnASA!&UHW7Ws>)TB}jJ`fqpg?2etY1a>DZGlvV?bDGIA%qH^?Z+{8~(Q37ZWu9NdH1W zZd|yfIeT%)>4?vJuMNHrC#05QU%Ezcn(R9z?{+G;ITPYM-YQ5=7$&IDOdQ6=b-C(2 zi(ckzb0dWe(y0F+@<7#fv43#8I*0B)&v*H?iXFUVr;gt()y=j9)vMAy`X5MU8Ae^V z8-}IhDzS#Os|V>dK}>KFvuYGr&tXmQXYc4Y^S`@{y_+5dY3axu3IE8 zU99Uep;-GDKOguj?3Y1M?|J!y5#7rASAVffXONh;qiS z0R5)ai*GuptE?qDzw(%=kx%{j@Lk8+ZiI|$RYo{pM>HN9@w03b9$QF^!C)I~NG;ZE zlBv{T`TVOe`xlQfEv-XpBI%zZb%8M7&KEm|P4ifE=|8f0H$MnH3aPEw*8v4ir_8uLWflYmT8CB@8W{j^Q`4qOCQ7-iPb~`xvNv(_y zXV|~if5PzPo;NlK(g`;ULcMsthXEE>YbIXyH<{icZv54&=g0|!XoyJrIUDFtJjEfS z8te#~@DQ#3_)0&Gi#k=`@Ej)@LD@Zp#bl5C&Z6yM{=h&qHWdAN7I%YCuv?{`&(*yf zM7h}gX}HP?YK6@lH{5zZCA+gyZ! zZGPAh2+uPjaLw_p=B{Q_oz2EE^{CK8u5+eq+6NEGOR{h!GMz?umNqWm>3xu? z`e56GucmR;9Om4L`O$`b4B=6UDKYELhxh$0m`^UStd#DTDUAy0lu`b?xc^}_P`%~#u*VgjT`hpMROOJP+19LfZN9m^xbJT8<@pFL z1aY-M_Kmfm=0U(V`c9`RxZ#098m2J-oj}`OF1(P7?+_h*a9eaax3%I!YAT@%5=~I;Q^@l#M8* zC~+K4w#oh6Ssc&@#1zTPnO~-wa8iL%O=+Q#XGWB{q z;)SkmZXKVwMis(R^4NC?hZnQ)=0$kZp59#MLJn@PcGXlc_eqk6mILj)Si&)yTnD*p zeub<@57ZD$Vf4!ggfovm!gOBYLEArQ_rg3AYY!bfB|F%*YrIFk%dtVtPOdYnnNXT7 zOE+sPgZnD=sjzrv7?VT_pcM-DR+uRh)Yw$5g} z7{W8(5|0MR6r~sjbdeFkw{u6P+^%}{eS5tFTtuL4-2W`C+LN84`!&nlX0`OG3|o+L zh;eaoR&9?Kg8-SelaDY9%UwdqgPIlcZe(bzG9K-vT#0pDpd6SOw<+cY{bm{EnvyT# zTX4sc^Ss2FbuuaH;bY$FyGtE%5R=as{V+Ov@ijCmYX?m0)U+G7?~Pp-xxT={>9%{lE5}+ z$S_IKy47PVAbBM`hcULN!%-MBmxQ&Fit0oZN00nd&AB11Dv%|oIcMwT+0=?_djE-} zqoT$meBsZ5*Wcn4jW=uZZ^eENm~RtH^IBF+hnYNo`*&MFn5NR}w@LXdsdYd@EXnu( z7^J%0sg`%&Ym^f$9_l=Hp2tjL)Q^25pDV>JbjagC;xE04BC{7^YCX8T#nHx=u#uH;#8T>$VZz9u}ih_YUkW9LRM;5DVAn-kV+!eHolvcp68S zNZA}=wofFyL&`r{o2*eM-E8pCNN_psC5A9rcj+k%#`5KT3 ztG3io^z~UrAmBiSS{ImKE(bDI)J#s=J>kx*0`NQ_=~R>a4KMoSVi>Swyfgd}=*a%+ z%f%+mJFu-CIV+eZzgqIQ{-f$1pPq?g6dNlY(^FRO){lm z-D}$CG`kcN(P1%HN69O-j^WI>qK2Fk~!X|H}g0 zM+f3ve4-}T&7bYi6LI25=14mB0VGQ+bY7P;!Bo<^J6m6~rUYjd?d*`d$bQ^{vf0f{ zgp^nGr^x2n$aI&Y)}jc%)-qK_yZB;)jN{~!QH!FnC{=*R-L3pGpr++WzCis$kZ@_& zsrsGZ`~Jd)-C#wGe-yX9)du3Yqhx{j@))`x5+>GfS!c_Fi~xi1wvgHs5Z$!deMfRX?bRbhH^FZ^P7)Q{Cz8<$)Gen7kA$x*Z_s46pv50ev$HKD<_yLuuwa~g!5jH~D%{yOgZxiClNEEag$g#J zOgq^Xo@8QK%|>%!`zW+fZVX$7!<`)G*eRk>Z(PuJ>QcLqNd4*IJFP01l8wULUHbrL2#4mZ$7kA$ig>FuEq|;!qZB?D zydCxzzu%};w^}x2nqKYfDg2&5j+^Ux#b;!BI3!x1HLJ^ifQ>-GxYCbK-Y@I7q27x? zLv4kEMeS@W{PYNgHjAc^FK14NJL?l&_6`E)h;xtP2;Q`uJLthUl*!FS7EAg@D@no> zjJqL*?{wkOb9inj)#QnN>NuqfDIQ2)b9LHY!GIl>7lkkfPpA2i$dGof+l&o^t#ybj?YCAmw80@jw z3tNxIqD0|3o9`du`0pDsN$y;QgR$R~p(L zAM-$Y?CCNNq_aW`R>pgL2{RNidXtma>o5N4g^ zU4ZPVjQ!6^)!VBh6F`Sm2#$s>mPHvn>Lm&MKC|cuJC}(Ij^z}iT?Z1*dGg}`>Rapi z(Lb2!bo#mMG+(+ZmNJ@XhZ^2m_S_(OdGn@qdPq|KIQ=w^+X~SYSp}*LQ!|!wi5F5N z^`44W6kpaxw3IKtSx0^kGg40za<33naj>6}YM=i3Ici5d@w>NpmUErfR27MH!L_i# zpbf+zjKe20=su{-$-*Xz5FrOt=4zB!hXsp>85C7E!l>f6S2*CN@mt{`5ZM?! z3eG$q?46G~{dD~DZYafC4sz7>-hu$7vZYdtfZbzaKPvu8v_nR_u1@Z4mx#+S58CLj zM@byx>d)f7ICh7a#NyR}F%@eW9Xo=2FN_548s0G%3#ReXd#hG|;d!Jftv0-mm~ic= zBE2Pg!btcs{FYip0AWU{JyCp?sz$eC%|b5S7na(aO`SOa=ffilQ=g*x|F4k(A zFz0;OVDt?x$~3g;{+sUdNLk@nDX{VbAhNzn+l}2!um1b>KqfZ`%+N}avVaLr`@Ket z44TympY~1jG^zg>vVjx(iE?wD!#7)2f4+ySNpVZYN;H&{Q7_`ZKv^${p(@h12y=au zf|tRjJ^eCA(t=tEvX3@ex=k2ht|M_U@ifJ<%0|wgo!tY_n?bLnV{Ps4Uz{^Kp{Rkn zsE?X8o?Nn36A#S`rTNEKQmo%<$=g&DH|V!KMtbsB*=N`|Pk;VAj4E<{c!f8eJaZj4 zA&~&B2cn1ZO$DVX^%6zV^EGbKn7@jM`41mm@Vock{S%0#ja%@dmEMzmdG7pbq{bS) z;IDh`X3HVxnZmVGJ=`6OYHoM2*I}oL2^#2@_jMVKtnSm2e~mvLKXHYbHDZD+nciK zVvqgdOdA;>f97|rHhk>ZJd;Ls4{`Z4)7$ZW>BAH}T`&q4Y_Kt;2Xytq77Y<4ciBc` zUkNvWu&KGeT{oalvq97~^0;BpWGLjAQ%h+8tk~$|8?&S4sw$DWH67I?K+&B7RP#6vC_uFpgqu8ElV7 zUr4r2PlK_IRa;%TlCNg5#95)9SVugvEb(miXrpZ}ue=tRwUGlEqxkmWluwdLZb6b>Twlhvwh>=jwkO70>p$4p&U> zxn*471OAte8muugu#^<=z16+|Jhz4qpg99A7tlnkG*Lc(z=RtUAHQ}vMuSRTh7(#g z_^QjIb3U{$jg04{sk{^;&hmik$&A}&VAG9ucnUoseSIDC(`blU_YT)KGGLvD3 ze7qPN1=n9_&Z(QjKIPJ?x>k=u{SXB=PSwJG`3a{xg~ICd?O7A{46ir*d;;%zshaTJ zG55eg=(94mrnhZSWbG=45eJe#4QPKT$#p-@{UJ@c`)M>Ky!+0I-ZlYVxrWu?i^egg zG#6*HMN`*%Qj$08Q!6S=%aTyN6?FFlL+gP$b~ z5ZD0`>e-z3`x4&J0?^4^Cm z{R~x=ngyeDeEH&@q)uOvI)eJ?cBjx#m5#`pJ>GTc&slHA_ePQy` zD`(9omY8dl@smt?NQTgSx=d7A4(+RK)UXcr^hYQkU)(bD`{hn9WQv{pBXZYX4g`en z%KZ1ZMK2Qnd;2h|N90x`LaW3hb4!cJ!C>Tcecd!DnOD|FpaAl;}l=!e??J{YKRZVp>?b2(cwu?+6olA>+6tP_XUp#0Qh6W58; zeY>#viLIapUs^&W#J1}z`K@tk^)*l2?ca;(C%yJc^`pzD_EWdjg^8-_f^cdf&36-q z>dXy-XA1$RwZdtScx7yERe4{2C653ow!IWfz|vDw(*)ZZ4BS;zjlbl;0=UIvr6O8c zoii<6_Vm=8?BZ2Q>I0QXbBtr zyDh&3_oEVlnT&XHPsr2c5$Cx+kmv?W5u{5IovY3JHDVO-!)pR(==zhHNNgSy3rhN?b4jUJqK;5fGc=hVy|4 zXyD@-tw~~KmfGs)Gj{i8R|q>mqD^^F^LKc_G(Leh1#cJJ_j|q>Cz}K4ii5i>C5$;7 zh~_{PL~+Ikmq1F_E}{xH^AeM#caBnx8djHe3JQ5%9OAtEW0UAL)P+Yw={0zN>2!%+ zQ#YS_w=I?}S=YtPXon6N@A$|3vA+B|GzSKicWM;Z`CnB%4R<>$N}v{b8+Q>zuF4D(AO)1kOSL!S#!)lOGUbW< zIM@?TnNY}o%iSmNcw}si+K|J{jkIv4JgB9YdhMtv`X!xMftxu0WApxC!Je_)_teO0 zO-dl%jEr&_er2-Av-@kK=_7Gx_v?==U1}{zgxnZI1pt*>kWKSBEO*RwNN*Xa72U~G z$QJW>_!2vR`AikbKLkU+wsOS-zu2I5oG6RZ6UG$Gv(=UF8umIO2nvzGV%4Y4 zp>#oNg_d^{n*|Je{3ZVQy&Zx0{zq-wgVKltyNS1Gsl>?P>=5e^|4UL99R;O1Ef6^$0`+v0uLfHasN!zUX;ux# zrQh^2P{M-qFXTLFYn7Kv$c;T?SW)_dt=|3Ps9<;pH`7w$>s@|M7~~xo;01VMYf-yD zqs1}CIjm{<)R#|0zN|el*`qtT9vZ>QH!KN(L9FJ~e1R%-)53GnJl$yCv4Q=ZLD8is zL59%?ve;dd3pj9Cqig%IzTlJvC)wtszDnw#VcT9D5epgOq4xDfopF)&iJqbG+P{_? z)%rqjtAbma8F30_oBC>-?9~5<)3`jqqrfbnNpp%TyUC>GEdBq5cT2@Iy|m z$d|kn2`^!iStHGY@bs6E;Aa-kDm9`acYh147C~cd-6jqWoJGGUn7;n`bKm;!DI##u zgpito774$*`OQ=B``4`oQqMG5YX=Zn}giugg9e%AB_*T#J4`J`sqrLc2aE+ zt;d30wNdu!w!t}m92SYw<2>~4H6QsPcda587H77T#`Y$rTvd(j=69>|Ocd8f<=C%;6DwX+=vl>3mb3QC%_cuj98)>KpUm|zuRpe4GKW-?*Gaf+?Bj0vbnhAiOIF;&M^mhP0S;%J zvnKJ}p}WF@`XE=oFnfr@ad=+G*WdM$ddRfK!Y-3pRnW60pjWyaMjE#x{WjkkT;H@x z^DjmFDMK=i_~lttP7Apev!_(Gnne2t!q}PmSw+LGI9tn;P5J6URL6{i~^W%*#ijtv2N*&D|xo=7w1j-h39J2@16vgPG*RwnN z7^NH>s>ZTc=YGk3DpdCLYkq~kdrXT@DM1(FRn^gCSkWU{y}e`Y?gva?T9ITN`(8h{Cs@$jn4V5dOF2Nksqgr zxQ25VCn_-_YbX#V+UeTkcWuel%p}s29|3KpCbDMQd&w3_Dpf=ebbahLY3W14%!#T# z*UoVxm9uy--VEC2FEVr9F`3Gr4u3JlY7figd=1!6U0&HS0i3- zauuyv9OWa6(~izjm$O=I-%g!-Qv_i07*kwxGzYxRu>?cVnj9#r{3 ziKJ0`-kdAUpvLP7N>HPavfH0zx!tHCt+OSryX#z?$g*3SW-LoGkMr)H>2j?7uGACO z)8azsPLTGsp;mdh^_3#7F+09~GJ)@I3Kno|9By|?k*oBtFA%g-t4c7p!VCcw9I$0p zg0uA8Vg-fLMF$SK@%!{IwKMgTjdSbrNIBvFMmA~bub~p_{6{LMqS2YM zo1PYkN+|HPUR$&jl%R87_IzW+keIGDs()L|E*M>;rq}W$-UW5`G1w56iNX;_9^^nj z^>wh6U`ZCrz(Hij?aZpLBf*z}@lo5_&|`MOg5&}FN3n>WpRSfMKh;6hc~^=lOfAjI zTi8wBUpLR+H^~tC@f`-}M;{~N9^&u^zS73E5a@D99Y4!$E2~R;oZRs6!M@jiFQ+dt z?d1#vbR>P(KloxGyx}5P7fri(NPu(uv>(EEWBt+IAkwJ>B+tz%aeery)r$Pa_+6gO zxp}o{B@ynB->5;Q&Jz|^i8`oWm(_5g%T%U_p7iOzjI}_LICm9^F1l{1_AOoE6^p7D z8>aw_k?q1m`v-gC__y>OPJ=w{R$75te7_vRZft;TV8>bRSo82-qUL0CKfsm@Qt0bk zGsbCC_ODXOK8OQ%);v{Lh!3ucqCVg>Z1ci11cIICHXl(bi5OY7+n2&GtD?- z9zDU|m|hxjVvRLi{xnN4KD>5sRh)cSbN5y43(Cas@~r2QI3++kdO`YYaar4WS0F0@ z66C5J2tyMRa670y;m)1Md$8ZkoIKcYI%jpzflk=Lg{SRvGKJi8YmYFjY}lK&ebWJ7 zpdI|BTIBlPuh0NW+1A(?8xbBNrKfo039SZ~Cytatg%g^Nwi~)Q=hq5y6dv^uFiQBH zIw#x=g~6#qQsl`IWyaAQRRxg4#x$d=LylkEG%ildS7WDw{Aeo$9VKI7Sfagwo*-+$ zDlMaQb*8eIV|0$6ohv~}wNfj;6^8MdIe_DjDR;U^NL}l)+Fi6Tnzj3qlG2h{(dW;f z?BsIrSmod|WqwGw6RJo?-73n$Y)EHO!`k;>NsNu!w-g`F(0UJ*^1side!q6{E?$Et zh`Jn(7}B?&@Qd!qCL|cDs(tg)D$+U_-(0=9L_k)$Lt;nZs3;+Xw0(E3hXU>AL!S9_VqAuJ6JP* z7$2{R6kl&MGqVEoQdb*qv!b! zG3vjfw^5Eota$_6(+hIR)$%_d4L|RyiWE$|b5OuhQ)6Ja<@HV%eAm68jgAsEul;eq zhAt{mJRJvS$jz5fYxaU+=#OVnt!M0jid^_5J>cUkwOSZ+M=!;y`N+JB?^8+lueXNF^szDSKVBmOX=^2yt?OR7zS67mbomZyKj6=^F9U&)L z8|~(2;Qs}TN}`n{4S_#G=2r~oXb0FTFx1(s#>q2+ zi&oUcV`pJ={`svu=Tw~W$@jKBt(3v88W=={(_NWM$W2}ggn*~&_XG=^^OgyRxV*_M z>UppFi5E#Gr_NT3c)?>yYD^|g>)fpf^G<5tWeF>^8zfTDw(Z=MmjeH)#P6hBU;M3b-TIaJPr_X=?(#wp2YWMB~{ ztZE@ZwMB}9B~xe1g(v(tQ}A8yxGKpyx2&>q`VTrhAPZ1vF&`(OmK5a*b#09bhOQWm z$oO0}3oh2cwe+&^Za!f&dwc4BmdhuzL%U`V!!pw$xTS<5F?DY*rpxD6vfP$DkcoQd zWG%PX2rQI)QlG`VPM0Na;kS`zEpRcg5ZzBo^rEn6y@^olPo_S=+AjCDQ@YQ5Xr)F^ ztL*+6%`PO+`hx02AK4!)r+7?}H&sDx>>K+NqK(nta)^Qxq#$4~}>Sx4GkftO$T z5Z1R}6$Th0{C>WCD*K%b>k%+Av&a1UTv|pCz`=ms91LcW?q!=}Mzlq~5ijGKPB38l zfiNFHxTwUm#xw{358Y{mdb|IF-Ipg%D5C%Y!jma;L>ICiD9I!@sW;frocCLikJbzik zDvs#Yez*IG*HWNiW#}i{MhrXmZc1<>+BU8ywPDQ1_#WpX_d_H^6RcpOMvV)Rh5Lf& zeCyWanQuJQ>jdp}NC0n}S~+?FM#t)Ao5^C4?i(3X_(DPt_$T$ac(+X4i&hi0cJ33o zS*zhBc)No(P}Qr@7oK}fmnYT zn(aQ7zAe;vYo^>hk=GszIPdl4AmA8o@clM4q>GAYVj&+nA|jYq6_~EA@`%45z+{rGEoT_3+iKo6W5Kxa5}C z5~mpmZzh}|H1X?AWxEYCJfjf88mFIEGR6&RNv-0pfKqF}`dU#Q7dRk*=nO7BV)O}8 z-A{ny!_bsb8vKTZCn?M^&6|{E@oV=rid84Z`C7-`P)jgyFT0ai{jCWLtI>ckm{Hhg zBhJz_Pr6RXN36V>fB_$%TJ?p@5TeD*YinA#uqn0dH*hE-fz|4N5K~|;*^ZBX!$nFd zkU|GO!q#eyhKuYNDox!-&ya5eHI6wnfcZP2q{ z@h9VL47`XkHY^~zhe{E3dbX(GE0N}M2Uoa)NpLJr76}7-wivI8C2Qbf^YktCEdL2E zDGnfkr-32rTn*giriVaOXZ;Imssc`~I}piicVS#oU5hRME1+o8*K`iZTe`2@ev_|? zGchrn86d7rZMEzq^P04_DJCWv!=LC<)zuz}R#@^Q^@z zq&&KUjc2K~!NLCNrBRacyX~_%oo|JMzrsU|AeQ%WHL*a6d^)4TnLl1B-r;?f!B6r! z8_SqP*LU_l-jlA+!k#`T0i`4(W&quL5mb z1BXiXN7=K)Hx@RjsY8Yg=Cub|T+ zQCJgkmW~Sq41m|}2OSr(n~U;WEr~saXYo1T9}1j)WqKoKYq%+~$Z}sq!m%>iEqPI( z%El>Eyq(3Q$*3I-$_bH>&d0}*LKXp`IT z#Wn|c2l&Cs<$N@zBwU0km6ujKb6%BITr`d1SeN>jgnV8aeOHqh=zk93Z?|X2$;AYt zXOC)rLz{IGHLsV&ar4zh*#QCkN(7fnp*o+bKEvjuth&s+nZ!CdnE={wT_92$qE{oa z<-*$kEQA-`Cg}e2XFyPt61gT^pSJe;1^o*Q+zlH>fwxOpKE4f)i@<_tIhMHaA4oO{$x_+58@?SMDtR6T$1BLeQTXm@(H*R3vf+ zi4HRwLyF5@mGiR+VjJ;+5_POL{ShXrQTJ+?f-$5ftJ^<^{Ftdr`G)MA1<~ ztCUOJpoaXb0Ri0{Nc}_lmCje(DBU!Z{JGRCtMy5n)wSk6`A&}Wno)}GH}gn7_8jf! z+DNWjz6l??cayg={e*jJFaEbiceQ7HXVyfzsC*Lcfn4b=O%6%-1^SZL<9Y|RrOh2= z;AevgzJMb;R1vw0gLVxa}08{DVOp1WcS?Y%e); z$qG#56$h!wi%fl+evWiA(hM%UZ~rtUKUbEAKUfLlG*!rJgr1&PJdsfK2O?OcsN}ug zd=z2$T>~luH4EL_F+pqGZJsxZok!zA9bl!`v9I^h-=B@k(F;_I(})-k_lC~$H(C&Q z@j^AaZf>mm`lNitQrOS;Lp<*>8abym>SvBe zzkHVIs!W0?%4nxv_L5rS|74ZH+S0Hx+no+qp3~tOIPkstwrhIUYO^R#tFpO z|Bd~PC{*pTOD4Mp%EE zj38z93PTZ})A&oKBojl&DlxIB9r~{50wEgb;UK-eN4EUk(V8Uh?q!_HzSKEr%+YJU zGtm8l-!(A-96=RbKw_W0B({;>XZN>O@t#0&kb&I`hz3i;opp1H_{;+R=e^?Vs zDS3XOUhMSSNFWIVuQSN!)t$4llpsD8qziORfZ15uOhysO%D>m8GZt8+lf^gWRWV}+ zaMAty%SXfv`PGs;Ez6^w6$MT^)& zsNJ4~f6r(m1U*s=yli|IjD?Uw%HV6Xf=c zPT<=uM~m!9l1hvCuz(L=7?qQtD&j+ICLAS$K5PB(#FIKj!L*R`4bi=vKwxT`=L~$* z|BwDO|FbVD!?FD4-4|eOPN1fyc4u<$df|BI`;PBb$f@7_LXpJpkjXE=Yp)SYS?pv| zNiP~Ksk#@ABHk#VNp`EG2OdCIU3Jmt+eL&g`CV?H!b}S6>i4%kv{Sqz#a|C-+YjPg zZrU#E2Ilg22=aR+G`R^~rS(hUtzKtz$%8Ak)Yl7Y)v#MPzn?PV zjp+vU5%>#-J0SNBwEeD6erS|jyeRjaD$($1x!$#d&cu`5lX8EN!{2YEdqi<^XSv1JmuHAapig+(Yv@zm$1*82CA0NM!VwSmiSqt)oaurrKQ}W2Rs8^B4)(*w0cY8D&&@H)M)#p2`zi;0qS$s zS;eO9G{gr=2tA1(bi+7(Hs!@=5rPCar*^jwW5iA$Eu9a$eV?*ip{G5^7QYyaSzYo% z^n&-OU%@E;zquiy`^31lZtEa3py$-yH%D2Jw54N4WE=Fz;VzDpHEpp{iF>{m4Zc4!DGEwEGNL`Sq`Zxy&IV@Y``2v$V!EA1@8&T1(pN`33xYwe z{W+dV*$}bR`Ykha=@=s>Dhd@PDLGk098?POZk37dNqrm&M)R%w*pu@r>Z*UF{1 zZOeg-=nWF){x`+!E;nttIVlIgxI%vKN^gAdbM*ugivN%xzlTcWu|}-z&`XwfkqH)V zZb$HY;r6S+_Q(;RJtudNxf4kfw;d*yFQ-AT7{Q10HJvi@fkNh&PWgWi4XtE)?E!dr zvjaTCZFPU8yJ4?s+x`l9@LrE3_^If~tCA@+6y7vN_sr?1mo4Xi(;Vh)>Q@dRv~P09 zI>36zfjGPl0%5P>VOkOPZQ<>4)}#8(K8tL)U2ly@l#GCFRHE?bw-+Z)r&Uy`A60RGF9 z0zyuXI$>_9a$e-;dZD4e$UTN&o-m)cBu;rvK*;sgF3uNFP{m zfKWGpbB9QJOi3>s#3KtM=6n#UdQz1BEkWs4-8YQ!vzvq9z}(Ouee{fl8U&jEkB`Uy zy)XJ-d4~U&M0_VL)Z1M-mWlPZj(AF3~+H zeot%XcR4@pX9%`4rz(G9w}j_0Gbj!{1kDm?r$0K@h4}E9PYc2a(R~+e?+UsVY`7@< zm+iNg$h#8nT{R8tXI;qj-BE$^+0GkA>C=v&z3QZ0zPlRgo>nEJqWB&O_>pAY92Xuy zZ|42Fy_Sw>P&%Nu*HF8^MJHd#f6C;(s6l|>%Eczge=?`-md*bbY*Z%SRi;TMiF4Wf zjpmZ}^R)KOOCrJ66lGn{X1yOWRlELccT+Ie>Q#SnbJpJeccc+)b260mOW*(2 z+POzHapiG5V6Cjh#0n~`V07(@3Id{t<&{0P>REI}1i>e$D5)eEC=CGw22se`^0LBW zX=7G=0EvXRyh4IzOAv&pBnAZ}5D^TThsltbWHNiF|L*SDbM|choSbv-ow>i?=lA{n z?wvc}WRi-CePUOnv7wUd*J^GHX29jq4e`2$4PH3A;e=!hS(Ac=;-HYZ$noN0D^6S2<#bQ1<9i@G;0F#!! z{{H!K<~woE{8X%yrIgTg?V4wAzY|jsS$z(j$#cPq!G$}S_?w5lPA4WV2CV4*TgTR8 zDdBs2ChR{=(FYG>$|j;N8W#V3-f8sLquw0wY%rwYiJ^tSImfb%<0eBjsr#-{mFD|b z{ahR(i=*?^REPFRmx7C!P`J)!i=D!Q?L@xX=WT*RDCE2g8y)zT=*4((@g$gp)dIMV zHaUTGL5$wmt$GYL?)C7JfU$-JF?+|-l||{ZH<<^#D^jec6#mCSS}!b*EAe%-qfUl| zl#X6+Sc_jBTytKCq#?8kqf9C->(mbgF|-_WDlid_h)K{G&N_bW6WNUoCowa#Q<;hh z(m=57o-ws7=BdPC>EY3I?LNgMlNgPYPEA!E46DV+)_*_AKOmr*sGs(Mj+|{iBKu}r zn#wO|R*-O~EHGJ-YnE1rwqA;n5hZ%5ICOr?!auPB>0ujN>Bg3KTIRlvr=!9&eR6 zQft~Gtq*;y_Uk=7bp0`cWo*zTNI9Z)APrcu2=CSd){=0UbrKSqmBh7wLOD?{*NKR> zOHwi2fu6(XbBY>3G#HEB>pcq?ktTGoE0Jm3nwp;J;WubdDd$d;d846LN&T8;aR7vefH|%ddQt<(=v5T$iy_KlFgLyxk@`liEXw-YZwk! zN^2ucB9e6{2p?8EY>~pfGi<6FGFLb9`Go*YR<*|Fjg^WK=olQhw}B#tivd$e( zdvSJ0vH}MJsvz6)TN)!Sb{7F_Y#XlFzBE2QJ|vE26K*ZXfZuna}y31hp1w7#SH!e$SQ^k+xXL)&3f_&%D4s$Q4Fp{Y;XoHAFHpFD|QmiPh9m! z!}sk|AR35dgM~JEy5Z>_JL>qHmmSo{cNq&_A_ABR;(hB{hVdDj>7XcILWp7M5DB%q z6TVsnPK)0<<&RotNF@xRW!yBiQrO;Ks$E{6zVJr&JlM19H7f}*JlWZo(A+*-^}~J3 zL4V4LRG*s4z;s2AT`QP5QOxu84)(y5r9dUr;c60FIlnI|SS&hF zckf=!co%~^VJez90B4>6povdJZHS5i85xohitUwAP`x^HcCC!MyI|L-oMUU4>3o-w!WU&r~Z3Gc#BP=j>hcEwO7aaiLPT9+* z3rFp3E0*rMYE~>F)g&Y&M6JITAqV2VbDcZm$2KqkEYCda=ZZZHy0R#MLqulx1Z5v_ z&zf&$zyI>tdypc6rs3IJB^){bjsK==k7|DU$(4@bV#D`C;8uaJRe5*3URFLZ9o2X^ zsv<6@!~74A(8gPGuJcAFbu_x;I8V9GbszhJ`b%I}aO9?nf!Zrqeh1Ug_rgOrW>}5# zEEF+vu^f3?pK)k|v-FP@$E&dXblyFw)7@$aM_XRDQY!irniGxcaaA2Ho0|#ZY0&EC t<;IrwvmgsBbofyON@4$>qSa-T@Z@nzKGeZ-Q5WebMu@3 znl+E}Iu8wN^}4rj-KtaP?6dc-C{<-yOf(WSI5;>=c{wR{I5>De;FF1h416h5gsAqk&~5=m6Msu+TGpRO@NKf;s3dS z)ydV0ZD3bN1NaeCXE|LrI5@1||32_3Ojx9FaLKdsQsSCkStlLd$rjq+-NzM%-S1zs zY&FY3Ki{A-!%HB1m6$iHwr4)?-6b|1sk2!+oU?s|cWh0gWYHUsFmlv)oW@=v5=UqL z9%IzxK+(UF8pDiCt@~a_f{_!YOjGVB!@!S7!R*_C&d1*|gI`AmD+a~CJ?k@R|Mx}O za`o%?HWC(C4>q^KNQhV94G9v_?u2Dl%5|{@WwcZri$@F zY$ze@v~t~qh~h-JH0$UgRNqnmdKh=R1+!zQF{Z?WicE<5J&a?iP$URJ4E1^}c+t{7 zcGvye5uZNLr+|LsFbkLR8qox3Pin=1a5;Hk4{%EX}Y&X6vt_`;mHK9 zoUO6Nd4C=mG{tw|uJ>;kf~gJaW9s$z|F37iKSvVB=|@Dp1BPrK^8b0r|NpzKM+f<- z?X(rW%5R6s3$tudr~s+IVc+3yP9wFWLtgt+q9K#l|#I6`}(ve z8fOP>LB98+h%oKGea4Sd18t=0JO1kQe~cfsyvUeqM;?eJpL*?TZvJ|3VDo%dR>r{0 z${Kr20*u8+4P+WR*777HryZJBieFE>b28G?)jU_dOVmMS>ScvS zPn(40J{{1*n^vETXyXb{(d189!GtwE+|LQ?iu){JiiqZJX3{yi!Iu{QWee+TFF5uZMd!uOHw?U-P;yuZJt&&zMjZQN%9sPJd-xQ8c-XzPNpEX!2995@ko&{(bp?c z%DW#xWGuVEgqvR;j$9_B3B?)0s{)^o_*}OKBLXao)ZyXqqWhpQ6=mhaSA?LZuICf4 z$ECH--P^W{eo~jM7~Vs)W*}R!bCFO0fdogD-KfS)Yf9Ar)7V^>cG3p-puWy#u7N@D ziOv5&!RttW?VIR*lISm$r{5|S5Az1Bk<_xW>&FXq^G!~amR450Pi|NDLU0gGMzDW? zx3}(VF7V@)>SgudYS<2$qH^&p#$WxuL4=n*kz4-uE%LK&L(i4)ruH3{a*^39p=IY@ zOg@ieqF74N*xpF&twp=4zUAfRhyaf~)ovgd&c`LO4`BD5ak3QNh-ro%3lW_q|3*(= zRNcNTQMn5b_pOiS@_w7g_&;81%)74F$F4Zz#|Goxw9e~K2A(V6|2?Jse$=V|=}G9c zWsd?F`dc8X=zul(_HQ?qC}-UjDD7WWXy18hm z@~=GG5`A2N{j{uW*}VD}%eD=AOd_ubDuH_NIu|ZLUyYLvQS+o!;jC^&Q0<9}xH(FXw z8iKMaB`SclkHeEL(>ulgI5f1~i1>I@U00zA~*q?Y&9)+#COWyhrszO07rMwJW#B3$YaN6Jhj4>)s#qSSTw~ zvDdV#nGqH$LhWaD8{|RKdcJGg&SbbrNo6eUmu|BE>JZGgM>TKea>DVgbyFyQ+XIzq zsiwiSEd>WLX^X*|;uencv|)$(C3xoH?&;~V0|+_6zxpJ^hAJ8Evm)7c(hF{T8#~_^ ztocWV!{$Rm^|<5P1QwUCdZUsZrysJ5yJ3Ga^+u%&#AE)`&|uJ+bz`Gu1MC97L=wRiq<zj@bJF|LP*pxBPY7ekw3w9OIigChj{tSiyeB9w zo;-iXxe<9O`Mdt06I z(I(0(lo&lAIT(HaIin0wp;6qvlBao3+NQk3qef5j`E$Z}uxLs?9?XsS-=tK43O4c< z3hyUOORKBLe_y-%^!~zwP@S~ayE!(=GvE$1+8{#q!q0{Nl)LHCCP0w7T@<-8MSlKA zC@yAv#z%X3|9db4qBzz4Tj~uiF6=}M_P_U}${~apoVq79F2Ms?JUUuQQK@K_Tt}Eq ztl`k(WE1{R4P8bXpFTKnZ_m6#%wwzI*G3z( zu(#ltRj#SuFPvw^CQHxUaiVkZCnLP;=JTQx#Ox|;!vym78my! zd|Gar5ur5&Cm)ulcY90Z`S0fHH)Bhr$PcmmOn8axN(eJQqk%dJL~!QGm|J9?MA4*7 zf%tvk5|1i#@fgD`rEJLaLjnNPBnUgaAH_LFqM{Hn5P=vsE3dajFQM)h;5%_ z|FivSKpnJb;TlMmi;Tet9v@9VCREo)sp+i}F3+cEwU>XmipFtBluR zAjQQ+Ra8Ra^RA5m_4VC$HibPuy8TEWs_^MJX^aEjaBrefB!T@#A}@Jz?)|GTQKF#~ z4m}Wh04^$>5u$ld>)L|oaW-ae+f@B;BpMk?*hT83Ahn?7*kFoIN*VFhBT$!4YB0Md z${YOWK&!7&d*MJvOZ@_wL4zds02?J%l0vX0tL_l1L;V0R?aKRY>X+_D2Qq==fpktx zO-9z7fYxuWEis{Q(U~UMIw^rvZ1*Yg3-OW1gnffhmhe*0QEf()P)KUp5`D^|T+y*o zdhsV9DdhBqeITR~lpb6ag{R8)aQBg7$T-!k(ik7Mu*X9iQo{b5LnswtBVxcCv+aRotNCOq$s`~ybeg8j#&A;^R^RkpIz?G6e| zEhK29i+(;_&qr2pWGuHFse%fnVK&<$9*=MK(1=@!I%87m*AQ5e2pK%$7~!6{*Y6rs zr6t_Vs+6;dha%SE4k{lPT9E3QlpfU@mhD*WxB^n)Nn5X=|KfdB=hE)W8|7!3q-^O= z2@nVw;&m${QZqEpDyJ-O0wP_bqu9-*l^cs(}!nd7@A7fha(-ApLdAuwJu4xK}h6LhuF+kC_hRO_67QVX4c; zBOaf_Qkc!;X|m^l=8wWRpA2QcdMwEjy*a3_w5o;Dm5$F%asO7qzV?&~)V6N2QO9F* z6fzpG{Z4;kb_h|1_dS`T&IHE~%_9`$RB&wOrYP#sXrM}@N4I8s4@8C?h%A&!s%WzZJoGT%s6>w8#!s5AC?Wdl z1-CsFv^Oy{a4TsjHD>Yfc0~L)K4*k@G%2Bs(iDJH-{1SaZ^`1kHk-5e;q!0BTH-0t zgJ;o-HUI06nWrTj*bHCY5u)4+?yXHyDd*x2MN(J*0s;1LXk~s(@SMC;A=Pjr2zbsOo2v=L%d3 zsLd{N3>_tx>h26cU@QrX1GN||XWKUa>FZ)xPBnu1q|2r!dHy{9-D#ZO&Eq}SPYpJR zWhs_@^uZu4D70omd8f&Kgy^yAQiZ%{CFrfk2{Qaay4p8!3kUb`;FI0TmXZ$v@UV8N z>fJPuleH0FsURz-o&NmujX>)~AjJ0j$q%7#6J)n#gpa1=uP3a^!or=PxHxEusi;!Y z)G$2DCBFqt4zbCg$73erV-J=xv+Fe!I05#0J_$0*><-5$B0V0Did`2;Z7=1Ug$>cJ zyf@YgXBJyT$nKr|MmjriT?yGFM@{hVEbmtWdEX&w{@6JkR_vD%$u-dCOx#m@rb;=) zpwtE(5I4ZxPwicy(j#e>li$Rej=%1>mix}tjZAQ1j*L_U*v{Mg;L8D#Tbb3A>9zj0 z^$26{+wnP)DGJc90tNLfhk>1>22ONweWw*3sM!Me+um?E*Z#~!AZO*3wAeb16bm9` zU<=977?6`0@{Xh72N9%2MKwG-18LuGk&aFlx19$BG=+NkQ_-fXm1cBzTkJyZMMj=# zl|I%@2qQ4w#%Te7m8dq~Ff;19@Z19tF(!jpvK!~WWkdGBA;NJO$J$t2GwPZ@4LKk9ltcNWu9oh^L5KtOoUE=+1?#fpfL{CCugcob;~k05@6oX(Hz zQHas4yNfrGpXl#P4kTYzDaW@Rb*{W_!DOG@Z52Kwec&(Kn|L%AMn9E_59*2%GPZPd zJ>Q5`_IO&t2%(Z{SvF+H=#3>y*v-&WJ2zfi(q;&EZQ*ofORraDrseJECW=4<;1pu; z`^?SBMs@&#T*^$_ zO$h3eKmY7tY3YlPew4TJSFPMzpgPjD=|Uq*jW?EFS~+rtu}p1~e;!C5-M8&HG05D1 zoyUZeYUYGG+Z-XEd?Li>D6z3JQ$#jRV6B%Y=jFtoXu6Jta@8I?eh1DyulimDUcKrQ z%+YvQqFE97ObJz{icUU81J6ZuZZgFg9~I%O`y6*tS-5b0{jP&>)*zGCUBS2E@KCpC z4bU8yb-o4)+3I~uhPI1?v)6MdWG8>khr#?lj zI(pmX{}HBsF|nitYU#nDI7Bout>Pizt4u-NJV#k_xMKf=P4B7`?rSG3QcM)BaLOah zUNe#s@dE(?y=Nv!7f5HG&y;HwOWt@fZy#?8Z2%Hyhr?!wj!v8BtU?ASjL)q&_Wr)u zF&Jh!BxI)=zrHNoQ0f^X+QyJN?3mV1O!a95;0x~k-VD*SkhtDba}y*WNzk!a97@B9 z)x&+Ncg;6mj0E4i!~_sA3O&0c#YDtO_59xG?MuK9_l-`DHTSqbuFe*t-NLx(L%Qdp zZ{uGPYvn}`Kbb%u2>t7WZnVJ6eFz{U0P?V7n2%C*D}AO@(Q26ZkMWDCD@T;(w-CPj zWM>n0Nb)yk_~fw_Qe-3n7q||f}=46-z_$l2?~3wA~%$@CD^}HTTRNsYl$a>jSi50n{Q3k zP;0-Uye0wahFY1|`7?X%xzhd$SFZ9P-N1As#?z~YhJ5`}p2+7cg-(8v3X6u1I}k2; zQNP^d44W*-#EhDK2DvXv4r7DS7XoaQGb0>G$Nrr8H`vorw6@N}{A0_q;n83pXi zMF+~HB!=U~6!Cve7!?7Iz^E+f17irXbwkGB-q3k;W&&L6u0&>|De0&Va9hSs!#D)cZH5mNV>G9sn6_FLH)4VdL$k_^ruIZ%ZhoKdb zlZG{r{I({{`Tbie-);_8^6}E2uFay69GMJg`zcqPc+}DTIz3tZE)W-|*u2sLTYPW>^ z6BObiZ;~@8Cc=*#W$FYf?XGa7#IsLH1jQx11CW@3Huxj9dMJ_#-X@v%N7HwfRFwGrzS-)SGLTIHG zL}rQdOgxAPhDdX!8=IelSP5ZXKN-hBM`jhx#WxQl=z^rEchnZsj_G7xTc;u7IJPq& zo+F4Vk>Rab*>q1j=S^w6l?g0|jFwLJ2>rCRFqPlG6>8AFC2O4gxbv;beZ?r@sKE10Y{yUh}U&CxWSmS^TC6yA~bW>@n z=ATdJ1h0(r*uZ01#F`&o_sWF8@xDwSv1TZtWmI67m|~-jj1_+t&Nk8r|8+p>Sh{&s zG*wYs-sZ|67O$k{Iv$>M@zRx-?{M*0?^p53b?uxyDlF~n%&e~Xm zyL-!mAb-R^q=j%Bfjt?!>?%r>;5rK|G5xg+tjW! z=%}DYLzXkRdyOp=?1SF5lrCV**Oqia<4c6gk5$Pj*~u5;yQwn?#kFQKI9ihbMpFS# z-w{gh%K!G>uhtIo`}lZ~JR?g6pi#1AwZEyO)YTnyhMPEAIq|fid)uj%gZCi(O22v` z+8W-!GyMcI&Q7t0?PrM@2i6`JE0M7Y`3a*o=ustWS0Sc5#izUYVKEd=(=bgZM-)#wy#kRrD$GWE94$N>9^ZJiKX!oBBm&r7gSkz`I=% z`#Nab>~oaFhZZPrvMG_z%Py5)F4WG0r_Q!OtLmLz)~ZnbR#xVLb_1vZ!EqHW1gB+r zcZnQbkdor(skiBLWS$ITm=5;w(r-GODXwa}xxYk=pzgH~@!Vp1b`5E%dV`h@VWv1I ztu}k3{aT$WudyW>^PHB`)vqn;*H;fnk4ABXOS>+?D=V1=L7yO5w=j#+mTw)uJr}J7 zO^-~`(T4NA(QaBJsZc)iw{ZWR_WM(Gk&vyy3G*zSS$0ULrh*TAYpT2bb11mZ=oY-b zt*MOTzMJfrLWp`czo6Gl2t!w8Y-q6HI0f7z@!4 z2c|c|G#+``MKKw4GRQ$?^n#nHgRcKu*vbosm@F@x_sD zJ2Cfesq{Z8DV}_Ys9{dDE}rV7Am$ZaTb}Ndo%hBd`6~{MqaVN z+^E~kIvRjJ{Q(Jawvw3%vx8yN?2`yaWBfGh1(u zM3m*!*?ZNBrl09|mgQJQGQs24Izh%l8gS8cUrP`TPST#*E>1k$V@Q(ZQYi z6?(7KRF(>~V&gP<)l5x8lJw1exzGBWSWz8;970eiFWuqe2LeKU!}shY4-U}%eRJH; z0im@HtZ@bA9UNlPRh9AIYhL|2Ru}j$O=9gm>aUcx#B)=~U^5U{QYGJfpVi^znlHkX zt@Oi~j{Jk?vJwBwEl@D$ShK^Ch0MFb2hSNGHML6vM3fr={9W(GMVU@*+O2)ZD{;ex zWpfEMD$hRuDfA^zn)l=l`dw$*<=%rk?^XZABnusNK7pwjvOmnrfg+cQL!tM1b}b+O z_SSx96?I#^vE;ax`GzeI+iMHuBAn4<36y>b;MQXDi9s_m*!1~wO0aq?VO%cVqHkiC zb5v^b31e???xW-2?BnAZq7&M>{zP^~vP9)9YKFZZFMaqgrHBhmRX?}i33k(U)MvzdyGuGJH;(GHfUWPNVwv6EbHDk+-4KiI?Jbn8M;XeV52Kw;}#|f@7%FyQ_fJ-coh8G}``3v+nf%DZ-M0 zT9Au2i6`;sJBv#dX(xZKeq!D?CkH`-E(i9YxaBJ)F4OXXOHWl!f*peKF^Vu zaR4yHx)*&QE1LQaZK*FndjOSTzU^bzZ2cjpO`W@I{q86L^WIbbm+0}4 z{_lod0I}OPoLfjwxl#1+MqBXPI_ z*T*ZJ>5XRJbbwciw<6i=u}2b-XG{sHgKK6*x>7I09H?REP6^%`xBG*x-EwSO*EH(m z`2L(1bu49|=zHpy{Y;wldLH-hjSje`a?}WhykY_l)EE;*)*I5r#xKq|epg7rBnR#^ zBK^0>K7U^qFbsGBJ;`>>8;W}Vq`#)^^A4hQi=3LKPmebUpKQnU>?oke+**~{#ddb+ zXZ#^o#ag4u)P_emc^LZlkuFUZddHyyPCI&Q+h)WK16MpK5z)vty}e zipAP5I<#;trhT;bWwp^Z1D~q-Ryo1%iQlY_8}$M-g?9HOV&r`PTFg1X@qsou876H= z`!@SOC0-zPgArI>4fJdeVq`gNdTZfeS8A2&*`IP%WE`stq+RbMtJQRA6^IRakINw& z%M_SHM&9O^jxcbjHC9=H=g`H)SFS#W`S_EcXOWA(i2EaAU%Xxzx=i(19(3L7JkMHv zrc{>?{=ftisPuP6(XP3kiUh~^T$$)}F1#dP0GWcBtx0R!=pGMe?WFdQA-nNr!hgKX zdVaa~EGdQ!{~@&Whit?5)hMH^-d()dJtRZA9|6B|H*i(jl;FE2&KvGmr!~=r3M&I& zpZxiehF~?f4Mz^E=INF^nfr_q{l-g1_tb>n0r3p3=o4md_qDt2u+q5~0TTP-gR)IHPr(GlGVkuA zcw!&iL4D}+Bg`TG7V<`qcB>m4Itce?hBdj9QYzTOd6=)a)y$k$U%Tw z+Pybw8{@MQ9m2fw1TdIK7`?~Lp;X6$FscB<(PGN7em_Ghi=iX-T5Sp=T*MDO@q6bH zJ_HD(pHGjRLUV#tC|uvW~RN!Cmh9i<}9>sLoiKKh`4FGAdO&pW{y+>hs9a(igQlQJnLn{Lh@rMRw^J=u_MYvS~ewA#lv;85hkT7EtZiHcgu%bqf7y{B}4ec2kv8V$vfs@DINvewAFPOx(ANx$v`8^$%i@$ zUNwP^%A8emhrqMVOwfd7e`6WFK5NrWg&CynwFe+3S^-hs`VQ!jsZr#rI(5-lPp5ZW z3j7v{k;sRg15`*2FOQ{qriBHV)kMHQi(iEg_Za_She50^Ew>Htys?rhkGg8nzsm-a zf+_;BQ7dhnfG`KdL1|E-yEvT)A$UH^R|pI@4x`6QoWL5_-&h$Hl=|DSml==nK*e&y zK5BN|(cT$u+4;fCB42$R9rcVkH0XNSMditW^_|UROevpo+miSe`9ZI7P4{oYZX@f+ za`!XIssvIbEtR+LRzE8%7w0>Ujos#5z z8*EJDiL(7f_~C3wSuFqSyNdnu16yf9w!YMZH`G&@(17Jfo|pgUM9_h*GN%`rj;@f=K_C zqzTbv?L?;c=+6hYu@2rq(x%U`r1~}4%z@acr!}=Dx4V0WD48Y1$cA&(!TAfv?nWFJ zjwV=_<^EO8JQ)F<1%$s=HHpQdBW*5Gr4LMoMMJNC7TZ83fOs~_A*?`o$dR4vLnp$v z&C4z)=6*|DI%BO)$TE%$FqBbNx(BSp2DCtccB{x%rC5o;SWs|lRx zTq(}>H0U9ujO{@nzI(K&!^%)HF8O+AWmVTpnZAV}>r>T1ShUYSYn#2^qoj4@@UStZ zEUM!7qMPNj5neX;iX^7#1vbNqjL3=oT^G(@B;yESLNF29mlY)s$|E#fow&N0l(5ZH z&s&pjSso&u@-wmObICoze-^OP4*e9=UjBUv2`D(j9IYemcQ?fU1$V6cy*WrxCX&zY zAF?DL8M8ztkkys90K76*QwhuqM*Oa12PlZE;cwp~!D(0*tac&FtV=QGAVpN^+qP1CInnJs>$po7J?q{ zDX|v9J+JzUPPb`72{A%QcYLDfTojOcgL06%=M0%AkEZRcEp?|A@m>wDzajakART>z zTJ4d0*B!`~2^4w$Dj(8GOUfpmUeMFM zB}XHxMHPNG|9l%ODl*WB9;u_qPk2QBLRvC_wh>cf%={dfT$MPpRmDoatOLaPB)akk z6nkCT!yCZZQY3JH0rZ-nU@BEWo332f8CIc7um3D)XVZtB%~dK&<(NC1{p})r__i17 zxW?zlXw4)4N2|)$nx})FJZ1lno11b@1jt>PzYx!bowKgCdbDq9wbB2t?1qi>vHsYV zE5Ef%&djZ(a20RDepkFsYLvlP|CEaMxb>ZNlRv;=#duVvLk+n+%{{k$vL*QDI0P8l z9kG3WPSnE@snOAmvYUKS-s`C580S3p?>+nwpj4+TJ0}-W#5;d=#+-I!Z=d`IRMbe} zIK{S47|p=Utop59)Ak5!rmU>~RATS;&!oCSNu2$Xl*k$20>cGkn-?O4`5a6y?%(&H zmCPJ+025-BTbaLbP5oa6Dh!?Xi+bkqdE|PFMI6TUn14~`R}C_QX^c1fD^6`EviHuC zX9C`Y%4pFW8HGO4J#a{4QBhK9VfCIU{No2dErfYk2!c%MlR=J}OAtR{*jshx0 zdACkvXO0G9x#L5Ta!61PA!&OH>xpWnl0XeWJz836ph%iae@N^4yI@sr&E*GZ&<3o* z>FHd5PlhXpA+c2n=yUBRNWl^<%Mt+IBMl0OQ8>C`JXBh$9Hp1t z)|mrlW1=F>u9KTaS#?9XV;`p5s0Q! zpxQ#R<(XS5ElhYo6NoVGK!2M{<(22ugkT8S!86WU-4%f(f!+l9<>1v6tO!_dM*LRZ>8tvjIuB=6qOyb}jR(`KS2w!0?1&QqeD ze)1r$$EW_<6XkNx<*m#RfsW4$y;+&ILTuBV0{m}9GRiI53MVbZ<)Tt$oNRSZnc`_J4d%j z!zA*pb_38QsfI(DQKwiarL!^W+xdW`BA}K2Cwf^X(d7F*3|ZKBe4Vp}uJWrWfm`Ft z3RWW3Wu{LQswDkBocrVBpGyLMIXpCZfDZ=0zIp56cy~ld{CNNP`;{D#%Qj&~Zoxi( zxFL0KEwR!Y_rxQ}ees{8B}k%DrlecqL(~-vhW*?ISP~?F!Zrl$Hcql^PLosv9&>i7iE80rj8RsmZS$xqXRz3uMFHsaA_c#FByKcttIy&?<;y?Z+pN+5Ml+!)3Mmlqyl8>UB(cf zPw>W&QAZ=HMasMVQ`KRPYnWM*z^N6AWO#UZYHAAwU;G)#<*G}=F`xcl9_Z(1mQCBb8*lIfBDp6yEo+njk0JgyBSP>vg^>(iTLJ zns$)6BsS|Py%Mk`iyW}-rc;J1h43%eKMs7(H)wA-q$=>p zq}72(1~hgVY!dcf*oS|r_9U!0APT1pZ-M4)k^3RN5jb+NZUDX$`e02o>P*C#C1NO9 zCe_|9T=3ntJ^4s+2uLx567CUeO*QXJB zXYp%w4deo?t@M1s#U=j_RJki#Mt#VdodN3eGt}xDYu0`@UUTWt@Mh(%|JTQq+SWHV zA18*cBJ(CGgqZO^QL}R%{%|mNsVVZszPv}oqGSzut8#S^6%rrpz6hkV4=8eA4SJe* z5P$20LuEbD-eIPaaW0~Lra&W&KQhtnR~7Ybm}_kk!HqDr=&k(t zXoCg;ln}s`6?}jlKzY*{=`F*2Q!ozOa8EpA^0ytdAgi>_%VR8DUjRC%mA1N8eKIj^ zN_1n+y@w-kV>)}n@Tbq8#Y-4`jCB%b;ERmz@cPh&JuOPq34~Pg)NM9K(g74_tWQ~Y z`@UscZ-Qar_fQgeg?#L`=hBsFQB{}k_35egOyi%BQ^1hj94X9MiUR6nbP&2y#6R&U zZF{++UsACgkmg`b#zz~n_Qc&hC@BZb805RBE5rce8M6t&CvEBT9C*4SBrFrNUz)xc z=J%Z9DiDFgt|TBfpD=N!MjMl4L)(o@j7i@9|#{J@61E4wnIWm!^^no}Jzb(4=sk3QrB0TB!&a2-1ii+;n$C@ZdT$9(Unom~-a|2Ph z_}P0xuTN3X+1Hu%tuxz_cq&LeGA~2Quw!y4=1nZ`sm3p>W2xwF;mnc$LKl49OZ zy@E1p+Wss!oA=-st>+x8a_Oy`=2MdlneC{lSfNme9TAi?e*&^TE2!V33R(BtRV43J z31&$zT!Vk*=hcp@2uNvUTc;JW6}h?w}N6H8ar>tiIsGf9H;?1 zX1N}UfIexLu*iM3IGVz2)47atYsmjJu9n~~06w_c%H}Uo+UNd{5BxJ0uupzT2VyIV zUa9u-v37+MpD$9>1+cz$A7tU-$`x4;bTrS)G%Ny^*%D@vyqZ3l_TlVMKC$T8e{?HJ z(~bY1NekPN+I;C;lFh>#9s*7zZRcr-?%70!l`B@Q!7dpGW$r>mu>Mt&JUUE7AK(-e-aZWt zxu+rfo*$h^3ph_!xUEn@A*O-34d?!~gzM5_9gae5-w7}Pa~$Zg3D`wQqn0?}Fo8i! zTmfyECz`%yiF!S|6$k3G+uaS|(fC_fBtYJcj;;j2lxf@Sqy@kh3dA|kADLtn2N+i? zHX0O*DVLP7C+2#5Z)zqg!*ibyNveS-nuu+zL%DkVoRWX7-}M9rT1z|veW|OV@KxD7 z6WrZue@yy<`Qi0yjZ3NJ~_8PUwLGOIQ67)VFEw7YTJ3JqgZCj zy*fF%NvT*T^%4qaCyaX+11KajhWT6HeYceaoPs@1ev+O%ZrMNGvabbWNsk?XlU~#o z)bOuSbg6(}LJwqz(dIEhICJ+^RaTU+wI(V=hkNo*)1;aAe#^Yr~%33)FsZn59| zi~@{)hHY{WOZGnJLg9DzXaQ%JJ@eLHgO&${fFZEe65}d9Wrn#vQu?1qq|aJ7)i@^Wwq8iivv56WL9O6hrlL~fBfudzmR8|^cJm|7 zv#s{!hXd8-T8UoK8_SMU8!)==3Y1wclNPhanQW0fW!RzP{Ct{e^;d0Sjk-(QH+TF0 zMq*5Q@hC#6rY}|Cs+nJep5=v+{I*X^ElTCTdQ@IyxpXzYvTFhjEi?u?PePr*K4BeS z;U4d6^OU;vE^x5qis9v7_Vg#OuI zC0uJRfijLY?EK{X%ALse(B1Hi6X-#Qg$dxQa9sf8!lTX4OznIoVTkooK#2Y9gG{T;A2yo8NTJ;>v9idTL(H4+4kAxCzmFNPos(O|G%BEvA zxeG;H4SzOF$b``pFrymkSg&snWt`TpbcvR*@NOCj7F@2R{ljUCUVVc2j)xoTJ=E7; zbfY%0UKjC%L91kT9jAcNqihOKlS|!ajG^2o$Z=t}<%gt;fOSA8kc6Rm6X)!oH%!bv zmQC?uyrN7UubnJ7RilfwXbSxGAP5^8qEVch=4D;rq-jvBF=pTS9BdG0g1|X>HHGCh zzoNOk+Bk>a2S)fuAwK!x!c_+b@~GR@gT?a5KMTesGS@auO}i*Mu=bZFvWEr4c^SbC zY$U{MszNn|PVoNNpi%e_wdu}bf=%{1Bh3;*sN>WMZzEBQFp@zI4n%2+>i$su+EA=caCvW`4T8+!#fT1^+*rgw@-^kH zI`^wVQI1^%GrTLnv962jsTny~ZqMmTI_8<8&P6YI#PYH$5expKv9m#2sHqaIP7;gvW3FSd?X8 zRjJT4$WG1E#66kTl@I_{&80?To|5YwlL#+x;0&37fW&9>y(e-VE4i2^qH_1`fwyzQ ztc&9DLefbsrsY(vM#-Vt0DF;x&k7$u98V^N^=@s|+mZ8%**nXx#?&t>{iC31l<%F-|CS;bwtpmpC)HFk&2E~#w zgbbv)W_;hyzwWp_DVQ4r_sUr+(IrWR5S-sMn?eEA{T&C$E?jGPphp519eosP=tygB z_sr6Z)ZdK9;pjUO9Bs8on-q$kp3G`YDESqD};RADSy)T=SXx6_Rv_KOL}mI+J~ zIcWh=4M`$SbyTp{eGu8h{oOvxgDNVCq3cOB_iXC zmt@@8$HgpSJ%O^W`>cd+{Q!FFC>Hl?JQRK^6^0+oFNOm<9SXEGvvOa*uKMyL8_ z01HLiiS(~Z^I!vd8tOK9Jrv)mH^*?O;~|3uSX%)+F%gmBI|L#(4O`7uOe$&0)V`4i{$eb#_5EK(5n3FFY&P307?Z;C-3F2MNYET8N_`oN6&`Jn`i4ZFeyo--L08XQ37XUWn;o(ARsMe51M5dAs=V)-u6nXp6K9Ljn zNhoLx>tTC{@etglpg)qxg>`p<1laRXhx0$;LYz0H@Hm>ByrO(Oq$NrHBmJ0y%QCMZ~c-Pxh#NJs2ZHFZsNy?1G`BeV6W)jr|- zWG;}}JXyw&`H6v%X=>A00lmE-dVyR+R1#LcZkN|8K?=tWRoko1%QjeY(8~fONMIMb zxBkrCjGnTY4!5(-EwV`5z3o?-BK<$GLe#Cexb0;VlQ$|XTp~{}8z*ABR8Fv4;OBoT z3LU`7Cg7|~P5pFi%(a61!S;RVMY|Z2=zg(GVKs!DC6{lX=ud1)wwPEB1S$-C?H0G}&PSbrxHx^_?o9Xf393#>8~uL`T>4?a(*_R57vDWdYXQ(2R3GM!&vIJpbb{|yM4hlXAqP|o-yrnK8AyvIuPNt8TEyk zb&}QlY_&r9zUJ^-MrZ}J?=am;AjUI`?dPYzk1c!r)Lbee=L3oeX2}wg=f>`&JsdhO@W$NEq!xH0?~!@)vTR_u zmkGaUI5HBShDj)I$IZLg*HAz%7Q|jiuFWBj3<5AH3qoeD)4q3Ugeg^0jXV3XSCyBV z$ro)9Rl2+Tt?5To6ITwvMVGufquyOdJ<8*JJTDY*9?Aino+mWq3Xf*XpnQisYPZS2a@_j9 z+y31bB&C&Z6mGgix)BkiOF^Us>F!|&NokP=DG?Cq?i@lyN|-DM z>bQrtLu=cm8V+ai-%k(B+=5e^Bp;ZOz;p z<5H9Q$$hr2Nczqq-(${6qh8at#D^Ymr>t+U7>Q1|Bq@?t-6dYM_Kqiu`*CeX^;J`8 z%QRKhK+EN`zf_`?NV6`wO<`C%MQ9|&R53+|i-{0;b1e}ff(Ygp#m zjM~jj4b&HbxxehERt3sY61QtA*4i?Uing$lGw2uwtuig1H&%+<^~%o@{d7{0r~jxE z^&XY#-Hz_JYic#3-P40QAGA6|K~L{<*Kt_4-uyT|Y-4Q4eJMNeG~wkBkpsGA?>4b` zCLUo+6YjW;|B z86y0R5Ek2W<9{~n|BenzEujCt!G}gJO}c>%H!Z=-T!pxS_rMUTOLr;$&%eidXckQD zNqpc+DiD@S3H2XO5o&I}h;?sTDWKw88YSHI*ae&OlyvpY^$G`4t6^ae%J-}*rna1= z8J6BSg1}V(1i+NPr;EuHl@$uN5n|%S-*0^I`&i!+yVlq`Ue3n2nz|N5@gfkqo}hf3A*= zp5AvAvkHy<5?zUY~9WH{pej?b4M!BEX(HF4n zO7}&1d$Mlg=(H$QJtT{P`&s(6?zrmO3xyYuc6u=ZvCr=ri0bT52a6t-$!qnAdZ1N{ zkQFv4!KYuwjN9^NL4JHSNdblaQb>H^!>>(b(?n!=9IMCo{R~#oS^HUp77qJEO%fU` z+;{?V%*-Z+i+ZqcFLbdqc!UrB$R~(GzPZh;)xU#okX-G}3iFKX=xn~y$YRkd;JpBs z92%WKq^rW4Mt=$U?;GIl5{u2J4fn44vpFUt6>agJmGt8KH=OkvADmuAtGzjJ!h-)! z6Ax6E8{$`zS9Of;Z&ToV-G4x50KsARX6T<*V*U~>js^Q!9IC6>NH>^ZnJHKp?2U_? zt?d0ngVRz$qB8dVm$*x_DVt|2!+bypVVvpkS@DB5o=j@-avK|a2WsU|LDyhDMvQMN z35L4J3qMRAI19FV=sa)1qY#RScds`1$4J^|TyzGNeYBZ*Pv~knU|$ytHHo;rufa1O zU(Ewux};p`^x+`||@l6fj0bpRZcz_f;_I=<)*i~P`fd!jn`Fx6|?UKm^R zN1?td(eKu3=}h+vGAgM!Y_H?4CDHNB--Vb9f-DKbkv-iV43ROSfoFMZSl&C+4;j3n z4;CTj5Bk)TT$<*B(ke_v-67B(EFI)vb_-QXrp)wd?X>~YAK(Ti=x1TK4B(b4?P=}L z7jv-Rsx*|wqK)g5PaYm9{(RwqY$Xl)nGG9ra^@xL&3x$dnEdK*_ZZ2X=Bm&5nwZGs z$MpD??^Iv9Z*LmQdh;hf&MvqzOz~TPeFduK;;$y?bH;O(&;^pdW@OyJR{W39h%s_I z*GrPJ)0Gw8>(o$vd1DQaFI4e{4V*Eh{B!&y3pVg~1OdUokZs&tjt%g}%l2Ke;eOue zw%(yjQ{Lo^T`n#VQ_T0Jw@i{;bVd2`tT0e>84D5rb}YOWuc8!}jiMrMHnr-1-nFAV zKW@MveLcC@vl!q+gmw^BE**l}_TZD{wDHQXXfW|vO+JNzx(b7#(63g-SW77p-y;S_S&(WPGWt0O3bOn@sA z_i(OBAK_mKZm*z63oG8XxnWNygx5KFlxGk3`#wsOku*Ibkm(Ms7Bht81Qr{M26M%! zu3$B@nkr0cIzo_npgA-GRyb-}NRn-q5M`o)=PkEbQ<)}>slA1tPpbv3!iSI*$-sKP zjcp|L7zPCLA@-`tZ~EZoI(CaT;X5|euVsj1j4hwd{Yge;W3U(VPd&{ZQ>1N_gG0>1 zECX7LzBD$5?RoPg8N}y3R@<8fC87)q0@w)TtlFyR{lQeVCG@DR(D~~^$fiF3Gpu&% zB{trL7~-4#6yUwZp1~qeY295Jx(fKH0o{F>NOJ-;cIhPhcN;`bsY-agz-?*yuB;ZS z{yKwgAi1sd^?7WXB8vgVC#8{`n2Ki1pzv(o<(q&DDhfM?->aV+ECR9;=|9>sDk}u& z;gXNoUm%yE^eSbOH*?&w7ae;MEN5y3he&gJM{eHX)rSr12LxqPZ#$9@8edcMUZW;< zMB(Tqi(Q6xSIBV2-=HDcoO3?)g2s5OU2^7YDG>shSE${xDc)Gj&^wpPj5XzGLnMb6o+g2$#9jk*B!i zpIlY1kBa#^+OJ1pKhNEV&t}}lzAL+Pz~IRbC9eR>WOA*V`QMFH^2>)$Nc+DP?V9_l zHNbyVDEp7OR~cb}nekx>F;3j0j$z4P(#Ev{=_sLAcrjkWKi+c?H%64XVCaog5u z<)nt8@lSC-nDD`clXNh6IieKXH3@C-B^LjcK9i4n^jVvi(ubi*No*|@G}tG5z9fe_ zXtR&1@9VeMD7EyCT6>H7d?whKdMF{yJXxp4{nzL^19j^ld2-^q^Hr|X*aJnIGcM0+ zv;5PYBAo51sP1q0&oVlq{a=sKIlqLX#p=;|Z|L3+K;8I!F|>Vb@3~WKa`E*|%i7WL zK|#une3QmVoD5m`QP5-ekRZFXMmxM`}tazN;*P#kF7kN6bH;cRn{U zG!vqEo0o;X-M^K-UC$myLyM%wDR1?rJR|=zrK4o#^eD77RPbyyf!{A*M^bhFx25Om zYQgg~n`Sk8mZh1$`IF*N&6YD@l6*sy%Jzih zc*~)EtUq!nyWl=mj`>0ECIOM^`;&W&=Lcpc=dNj6l)Cy@v6<}4xs1Fk8Eh$s!zw}@ z0%ob$M;x?Ht=DJ^hrfA7fnC`^M!x$lot(cIR6-2koPPgI9d}TkAkWgKwoCHFQPyra!!TbT>R%mW~5=tF5*#DXH~-=oULbuZk?c@YWt2 z1uIx2Sfo^dQ&*3?21cAxwB>EJd}~T0 zunNtr;3K>0HQ*A*LR59=Fu{W#urXv~%5I;fFP<~E4$c*LD~0WcWP8Z)LQNYj;*PZ| zd?aOg16oR^-ra^Ozz@ZJ+m~19+@$I+eUTVbZ{&l9>YE5Z3Co)~I*98_If!8c^0Zg{0A zRNUCl0=xaHy`AheccAOxCxBk5$K3qoS2~>y#95x62lsQ=F1&{`iC0vJvqO%^iO2;S z4mYqGPFjN01IVH*9`_t+=Le$B*4Pe4`TQw0JKFumq7G&#cVBQS5VG6v^cu^ls8P0G z)i3s$NO{s|c62_&+xMBrKa9jk5U=fl{qbqIPZ=^D*2SMwns7BZ5Hn`okeXq)1?OhG zc`0E1;#jA&Om3Y(gJl3g3K`<$BeUo9Tvu(~9_N?J{DWZvUr=g2aHAKl$dr83GhI!X z%39&&L_tdWl81N=GU}!A>HvW{;lABFthT;-^i0EyHKlvFb&F}?@)rj3PhR2Srjul- z?LaslnQ>ctpjRuLiB~2-n=PJ~{&DYndImr;YM7X`R_ zTCv(fret4H{8A$pF?3<@UwcLAsRoUd7q`BYaWpBPu%=XCK6$+^G0ZJ|$hYrJvM62| zt=iSqym;_z?%>z48BNXh+PtHr7d4~*;bAjlUtt@BPJO0p7qvy+u=l4GO&pyEm;CnR z10&pP?^c>qjaVJ6Wt$x5FjkN5xxkE+4%_!FJV}CV18aX-FN5%HMkst40<_GrLK1Ig z{1Vt6Q)3Tul+XkHS><3m=Y|xKxiL3HMIH~mnXY{W+|Y{IhP~O)70lbMQ5|c!PNh^)!GxY>V-H-X zRydmLHo^7Xc@lylEwW1|V+3nuTR#l#Q(w_-#3E-8;bAP76pYFCoses}_;sT+L(vvc z5IKCia{szVCi8jgF035F&WSGramJJJnU>zk9(*hqm@p`O>(dzKbZz<|PO3KKQ}Ojn ze4QSavQ}$K|C65t#xB-)Mb_G6#A&87XHGIYy#dJLceoB1sO7={%*l2OC%q040<6AA z9z>Lzkv-q)jDTTS2(9t4vuIU|*);2^}Yx?r(hYK(l3RSuP@pOwz?DTsUl3wFrx{yN@m zB6-cdC)4(kaXO=qul@3wp{Kt~Xxs?@?^gy5R}xm0BH3MBykEMyv89%iv{Oy&yJFNw z#>O^tac=D?1wR$U8Vp8ZFYEK`fRpc(4RpPY)Y~(SWrXx4t&Gkh)GxTxwKZmV;fibzvSf4Z+=vc)VjAAD zY>wTRLgOrtMXsq1U>k>3_^d9wDrZZ5V8)TDD$hCXGE+Jlgv^h@w4m94o@G(O1Ef7^ z7+VqdMPolmI6|?EkC~ev=W#Pb+OizUtxOpAVx@q!A3qKaTpA(ws{gq@LtRQI&ob~z zI^ARRMUYR;j;)enT12m3>2|LQ9~tuI?po6KJtM(HcA&1PZsG9>KPf*W$N5Y`+pmV+ z%=w`1BOO0Ze~a-l@x{EGF_c)uVQSv`1bl{)6y@)tK8;*JX0YCFsOq}9oY|9>ZEx@Q z_d2CT=V=HYE;<>~_x$>{pkT=?mu;+LLK|}Gxp5Y3#3HfoHjb)nnWOeLr|QU(db2a1 zF?K_4*5GOuiDJB(sD2#9j5YCShx}}87JW7eaN7Xet|`gpZ7AZ75m#U}&H9i6NKe0N z=3q&Id1X(+%B4>vt1DQ8XZg7dcRTSo zeBk5)_ooX(hnDO1WlNtB>|N}=!OVTO5!%3?+4WEJal?-61HN`=Je)I2AnI#!-=|we z)^9zZ4{}*NeF1~vpx{)}sE)DJ-z;D>xR4ur8#7Foh+&`nS>A_IR!G{6O99Wsf>MYzA)t-W+6FmXQ{kUZ=nbh#4I&}69 z9q;3~ou1+LBPdywyV2pBCNvH`?`ZnBH%E3^gW^V{T>x&k>q(U<{xjfXrr=v1;yQN9`ndY8H^N4^7XSSDuOM1}XA#`2~LUjAs(2N~kJV?oWs*Fhd$ z5Ozy_H*bZ}l>g$f_)Ot?pB5jVP|7jR>2Vzf>moItxV_9k9AJ7DQf?s;Rw~||zcE?I z1ii-VcuFI1#Mj?(hhx5Oi+~(nqqQT8a1KxRe=m0xaZ8^@=`kf#)VQ&!ZRE<52ZU=@ zCVlfaK^7(;Guv+%5-peR22nu6ZO?&$oFHCoGfvEuP`WeSZ9*2t8;MUu>68G>^P+JJ zzK*(OXYjVYPq~}cQEudm$v5>h*A2B3HC%{YSF(f-U#+n*v*j$hdPo3^{=J;&=zsqn zxlc8l7I(n`j4?T{vGP&XbjTjv-n>{9xkBFZ_I4~6H@w>UDy@uArB)fAYotBFt7qRs z){9Gpix2~%{mRhs4L7R?k7XhDkX*?E$EeEQw$5?GOL%0Ibjg zvz->$=cdVAV`qu#z>0}g;eO>l=(^u)^oDGQx7+C;!WD?D5$21Z7kadHKcnApaIv zZMK3OqW0i)lN;!CEjrNNcqS+k=F51O@$#{w5ufY(hQQTf$3JcLIW}~Dd+HRAl6+lT zOZGSNrPNlJI@(YR46kDeJHx#Pnk6v?6Pi4$GkTdD98_R_4~75j8e;kGczJZOXJi4*({uDjwzgkM z-yTibfKxbe+hz}Pk$1Xqv7)4u@wEyaaU{3PYMtBPPizVE!%g95v& zwX}qnxB1%mbq<@EVy4ew`b|lKE|ZGG_+N|6GPA;w9VhuJ9H*pB-!S-($?-+|Blx!Uzp-n?TjxnDMCGCoYCKs_)8X=#!MZ@qwI-U=8^@T|o6qi7UUWDz2cfW>kJA8Vu8vDP^u2 zo&4nik{jh~qt!I6XQMldq#A=INq6MiP+xIl^g;#vs|{lHh1Nmt`! z#XwM;_|6{aaM)SH>KE*u5CEK))Ssb+-LQW~YXVQp6-K;!WdpjetFt0Vyfy<(-mv+PcsI9C-6+Os&Oc4Pb(QgRT)0B2u#ttBsqz z<`$Wd?86vi0SKq|xY>43x~GjSMCw+~&YZy*I@Fg}?$}rOHZ0`sd+CZ4v79C}^;tWL&MT^co+6@j-c{HO;LzvTL0DK>lthVmGAR+1 zE-R73Iqz=N80(}T9ff_kqJncaz2=IhY0>6V4?9f!W;x3JmUl1V*)PUlp-E;UQ>WkT z{&TN&4ay$kh~_t)@yi#5F0)I>?AGz^8rYx(9oQ+*vtw)*GAR}AS`+Q9+f@3FQK0SC z;DzpCe`|20+Ypp>3ACEO&dKiFEIFNv&SNq*oEu71mdp+)iyBsEX=|u5h-T|At=ojB zzi8d_9L!mdAs_yl)9-9{A}s_ArNLjf!$$i%o>x;_OB`#(Z1129!81jJ`6+#gw8TJv zjhUX(N=()Z$KmqyfXIXSLvni@LQ8(A>mE5tlmZQ-BE~m~z6t*i{<;eA(~d%t^xH8% z0f11tqQ&li9R48++VK}#>b7wy%|)NHFXAvAYw zk%R;b&na6hBflrDomu+`EmYgTZL@WNeu-7h{0On>ZMdBCb*d3klI@dJ4xpQ{HjNv;j{Sa29A0zx+5oEy&6?c8Mxt4J6;x-YaCnBJv1``(fuZ zMRj^@Fyuv&|8OnW*NAb1wJMBymNIn;ZS|fr)Di*Mq(6*iNZB~ zn9KK7xmlPgRSnmdY^R**lXz9g>|gHZ{?Ehq0>JGEpg2o;?lu`3)q`;pL*Wp`rt{ar%G1jP;$ z?&*p6Uiq@)o;TUp&Z>%nckRng={6Q@iZnGdQ)zdAJ2Z}cmF37U?! zc>&~TJw3@;!+7q)+Ljvhy!s9y4O<_srAx|Og0IgfmWbXs@>e^!^~C!K!L_?LHwSrw zO0n#&SN0NHhXbbWi445E6Jcw$8#%Ag;&2A4`(0cQDesr!RJC}XzVwo+f;T+utBc{y zkKIow6)J8kD4f2i^%b-!-{x?tf{eW^B6FbndwlzERf2WEJ>tednkZqbRzWIr>rYP&6#+bhfRCnn1KvNGL~>5kYse&3%R z!A%OG#C2q$dk(CV&Hk5S=A{)eUsOhuy_V-DCY`EuD;p|#CyeuzrL)JipJz>V6Mg>8 z9~eYRhme3d{}&QXwY2>UEwGKXia7{UXiAIQ|!1w zn!|fo;)5>1m;7+H??pwKg~`hcSdLe0A`?j%Jzg|rDx0+aPG=JN6}xVQ#($~N7~^7L z(g?t>Je%64S7HE$-F@n9?dX?xn%jp5zK1s?F=55{@7l@%EVL3p-i(^}y_t*$mPd|* z%8b~Cf77$d^77RKg3r)*eN_)a0qXIzR3-h9b?LQYY4HiKVovKdJ!^@Q~=o zOUE%V37lKQqUQ_zz!!OSjsOsHz%V=wJV{GimNbLwd{P}7$-`gi4o?PL-T@1$A8izv zhjnhRi@Ti)fNQ?xaFZt)xYVD$;yZLS7AGI=2Og+L3Axbs!rLdisjIO+-D-6Lhdd7(O{vN9f?;cj->po%;ig!Fwwn2V^gBC~7Lv{Scu7X2uUaJrn@u2N+1emkdlt zHfij|)Khs`?>n2sad*3?3%<-+HkMkZ9o%RR^O};60A<1PF`>6HaPGspLq2#mm)bFL zuURg#I9@Lgd(r7h1egpz9vyxWTv(8=T}O0Q=K##McMNZX!JdWIH?8v6;yo8ycjP(7 zmu$qt9$!5rKH3+{e;Z4dCOl&O;A^I2nLpy_E9&w!=mkuk(^3(S+qS}7Y|T~zqRv)l zAU9cLni`)t8vzW;rg{Fzm=|7s3~}w-r={hujet}^p>^+_`Qr}&#E#*GGsjZHFzf`j z!SC$Y`i2y^n|Nvb`aT4EX(d|%Onq$^V*oQIx|oq`dU(Ebn}!IHhbY8a7{l-BsAIM- zp|#?i#CULShPuL2Yp>)&3BD}43jEOLHOSL?59fK=!b)VVDNe8GIDQ9PN#|Z{N$eIk z!FxTr#vps|j@CPbPISQDMhy?vOneq>&gr4?bO^qLmxQ0I^X#N5Pu zvMtr?^nUFema7tbPFY4l)Efb0tJCM!yg4C51r z?o1ts#3+Y^Hcy@lv(`QMYCjEN3xO*YzbjWRY`bpD2pHKJB(A-{#(LOcOz`o_lS}_Z zjKVSC!$F}><}pdyLJQ|9tA?}(W# zZW-;;v=x{4QGb;%-drsg;XsvXI&>cJz$NtA7V^3RMAYQtvR9}31)Y08s?(I*evJtM z{5;++gBWwLZ0Ho)f(7zFg7(KrU(*0kn-(asmYO~+q!I>cY_j+nqn2{D{=E)nS@LDr zw+PqZ8_B4QRPK>yefMs$?Mv1tGLaw}Rv9Ydk`B{Qbh}WS@NZv-M`H%6J$!NE`n()z zr!TnjozJ*^F7=ah@!x@)Ne#4C-sIx`IsIWn0KKE08Yfeu`epF~q29y*-wa>ysds^Y zX!X);1iR1q$<_m1zL^^wi2HlGh56%`9fC3Je&dG@@Sfmi=}8IZoY%*i<;?(UZ<|mB z07nFQ)$GS#pYQ)8-_9q&M!eBsR0`3ujfgChG;Ld~O=AV(mtFwAnOGE}J>uaT``M}c zt1Fa};*+w+qGD}2twWG*O(j2IFBzx|xAMGwqd|>*=bcLA%&Y~&7Ib=ffY1a?-$vo_Uj)e%r<`c z0m-krd4KP&={_U0x4{`}V1OrcW(m8Xu~9sIP?oD&bmZ86$-BnvST;*RHS5ShFvFPT zrpD}zuGiOj;hS4g@}9rU*S_>M+wUubwzUiGc@=HiInT?k5Y$SXPawKKx4_D9C%Ka3mKAXp^Wd}G29_j*IlYoqwxApgyyxOkWUNpxzNpl;5L&2rHjwrwl}5R>ly#0+~&IpYv*z3S|dtBawT4tzNtt zyI_3{jB}!Dcw%4sVW(9n0`R$5&0XLzt}p}j@_K2Zjmrj`ALplsH=5bcymk$mzcV`7 zs^+sR2z^8rMN*EIp3#2>w>ovqOBgl5625gGJZC4c7W zNCcg@N`BpIA;7);q&^F5iMc@6D%Ku+Z;rp)E4>v!<#^G^T^we|CnxvayYbOPprw>V zX9(LZ3KO)(kDE<5MtalIdDYHdbgx(TiVp=D1L)rvXF#Te3;i!W!m7+n07E;y+u)t} zicn!KG)@>M94s+s^U&b?Skm^PX{5-_nkx}N8+m50DR_-^4V?XYOMZQK^4P^g%Ccz; zivy^leBS8pC`@9rw5n>CatV;^C(zdsv>+J(eUTWjOGNiu?)yD;Gc?h_%VR91Ak1GP z(}IfhV`&WtyjBug2`=%)*s>)wzghair*f|`!zXVm#yc`xuL0y!aI|L+@~ z-u@7T$AF@O#k%`jVLN$_l8SZx;fl0|5bsZ<8%(p&S`RdyoKp0J1890>gHlwy1Faw7 zy_L3Cg7gFX2AFk^kt!Ygu)FlBIRBG85dOCBGwgd%SKsRJy?k~kkn#NNqXcEu<`fgx z%3zM33S&EkdJIbfMdDX_zBOALmz;ZX#@xaOYsaoCuTee$AKg(J%(9{dE zy>=!rV0l@&x+Pg_Lz9~7e7T<6I93CWTf=PNl^VdmlWq2{e1PP220UGQsZmSwlIh|C zkmRCrrb}WXB3OV$!O^=jLgOqlW5379c%?J7kDzW=S|Dx04lmfc_L?^%*gt9z;xf-9 z-dLs)Danp}o18oGF0Uc3#~?TS|IOROK%(OJr(k=);q~$|enp z%hQU+d|u$4*ZuWJ3~3C!^dd5+1vXRt)w;Hd2}xZ-eU~nBsi4AMYdVYl$3}6M3wTZL zW{Wj}v_Ef>ix`J9ThgKl7Yl9VcQU&Kq}$X7zAA90Y!mder}WE9W$%BFRL?GZXO@c| zxEth>rEJr7$xHYHgJU`p0}4XiUep?dB77=#9SP5HWRP;uqlE0|pcAa6 zn8eCl!(_VuNin>Krf+E2eR5Lce?2}XtI@i!t3Nw&6IyX6^?N!j=V{Z09zg+&s3J z1#&oZK-baQYo#ZQ*l&0&9vhmL7A-7w>=&A!56s9PSA$QQ0C-1^7XhMlYRc7s{PO~n z&RSpYVSt|$-#AR54ucm`{TU!yo6^70^^J41god)(3hB|dm0DfrTBeC_Om4Ht)H;x6 zQFheP1F*~KJD=Z7abLJo<~Q7K@Egl$OHvtn=6Byt_&(td>&zg-DW!O$^GPnJSYk&+ z;y}jg-tFoti(}I!t6+xO^${QHC=%6v`uD9%AHCPoUh{r$JhS2fBWfj}+hfuwd_Mqn z^>fWNH9fuS=%~v7`sm1Y@*cl!y4tT`)&v-(E!>6__?T8bQ~6IlH>+47Bee0&h8LB= zGzMrh9D@Kqg7Jz36N7O;Il(Nve#B9r^q;ggjX}LHZKkyM)7dg)N!Uvl*Y7zt?f`U! zyPZ^FnCMMs^9|sU093rS)u!TbX>(3dV&wY6Pnm9#$dmzx8)%*QMzso8q08%xcyJgY zn)pGRPhs=aJpDzDjz_J&Y3X^x%BK<}@~|pdNnI^}=}LLO`)OK|P>^!yPLz!^NoJWO z-$#F|+emi=giXPL@_GS2IqFf*dLV;vMVegv(sSOeoh+MLHgWF6@*ehG2nJD+^Jr*` z=apXj#@8vRBa?$6uQt*(SL$-eMDbnx9y(fC%aQV&*P@@F8!`*gc`ngh`Mx@0b92*U z?VwQ~S9TU>r0>_YgVXsYlOH%64KLZ3E^}wTK1uqER@~W1vQabcCf?2eS{PD_vq)Uq z^UUz#L3u>?F43i$@VyO4Lq~7hO;RK+hch>_?T=85+~51HlRYwp^98!pJUc}^_?P2@ zGvnpxDF2mrDEJGz>wTsig-FU5%9$af5d)*Q62U<{BFPiBfD>MYF}(KW)wb3b)IM^e zTvz=t!nRp;;00F3sLO8<2-55o=MSG4GQkVaG2~t8jv#H=`cZs>u%GRjJ35Uut7oGcMeK$f3!bkYLlOx<&KX z-%231j2dJx8j5rSt%@K`mO7hQEOq`n>+Bi>wY)`-HP;&U&wgm&{2OZ#VXG5X)faKj zGbQZt6R_6RdrGnSev*>9&)5mt@1g_y3kbT~)Jlp7A%CiZvE^Z~3LYE~Z>CEKXBoJ; z)|UDfWan^}ns~tccWM*&Nw+*j{uoImnG3Wd{aUG?q|G{@iwD4gmjE7SF@_{ z9wjsg>z;wnk@o?}qiIV3q=*AQyl9|0lj6>M_f&2u8qkG8LqXuuTQ4htewO^nhWq`; z&!&X2(q1sj=8cZHO6^5kW}X>H2>!78Wa#YQRwT3uSfn7+#h{%bW&bqe`C5~p^%n$B zMP%5kM-xAabwt66G>q?Y0FtoC@a%?l*9YYqRioH1dJ~G?mfuOa*OY zkJ`x*8rL}}u-bfJ(C^wyui^MQInU2dPRZBwUO*TGwV64_a!30%S4or=*RW@A?}_dy zc1LBe9L&weRs^<2A>9tkH*ZkL$20hEQ~ENtg@ZGF3d<6nWVxm1f*-kwk;nApog`XPH|YibA*H9(%wq1?i{0s2l<4*YE_k%~Z-N+Om_u0( z@SSP#bwoyL+DpZ;7P4QKBH}Sp7JmoWI}G8Bp8v`&^!fbk8H+64|XNg>j~-ur*<# zvZ3=h4riWoKQq&>z85zLEo-uoV|G^UX!)-6_^#q=dT6H4u>lBh{SRItE-~-8#@5Vb=Nb;>#S8?6p)%m zoqYnn^Zv9L79W(0p5wC7+x5{EW$pVtq2W~Uve98t4|#h|YhB-ub^J%giUdF^n9;Gn!I4lT^T@a&0H#rg2iPeR?MG}=RXjiAEccqIKDSZd-6g3;G4UiG7fYy zpS2kI{kgQ?rzbgtflU<|YQ&3I3)(5C*g};aM{~6_`Bfl74jee{BF&WC?Fp@y@jXg5 ztZ*J+3Swqbe)I?Xe5s!#!y)@#6gloQz1<;s8m`=eri{#&SISPzG)|3el?i#PVhJ$R zZ!76wFOdGrB^>}FPvL$3JAEK!kEebv=q@2QNg3-dB=>fS_!ce27_upb+KF+W(VoeB zO6ks3O46_#E&~sK0^z|({5sF`7Vkj4V$oigA%?9)-DyZNeuLp=l9)G8kCTU+*OR7N zKdVpu`y6w}qDX>^JB|P<)=vgaR*v=dX}H=VfxKa4hO*X3loPA>YdI3Y!Wesk4R1q70KIT$Q8CA7$io7`U*#$;zQP zzq0aigvKl7m;C(b=qn;)UdsPW*tRq$aZ4M@pXW$m_T~`|(jQyn3#Ek0q zeFLbdG%H(xXPhsN?>`A3KCG?SC$T$R`5@pp{lM!gI^bX^l}B=Bmr1#=5+Sp@URdyR zP>16=h7A%Hgg>y*^vAR0i6+cx5_2|5VKe>q?>dh;BI4w7? z*CCtdy%^%y8UQNn7IH|-Pmsh=MdVH#O7TLay|IpaCE5<|oAeC8-m0x=WI%P3{k|5OzmD>H67UF*9B<`Wj*y?j)yOB z@9iy8-=1^a6{BY)WAI-evNAGAKlx1?nh^-^L+;tA2iNu=7U@{X@L%h)nys9uUwt*K zY3{NpqvXWJ(NY&5QGkouD^{cnx{(3W^`*CFzCWq_BvnINB!-Jj|D!9a7-cQkr=W<{ z8W&n?kfKVeK;o|b4#Xe=1u3XTgM91l(Hz5(b>97nvT8lCiDqwNd=-b{S0X=x2^j6} zq#T2;1FQ6qmH`)`wdYW)9?j~g>aCcevCnX#pnjHJ!Fq_mu;|#V7NNa8MThO#y`5HR zTgJ48SsR({jfNC$z8%Wp#xp$dZtS*rSHwR*hNO*#F!0c&V*Hpp*@ubf8Dw)Cr|*(_~5NLNiadMLN>#!^5S?QgKx zdjFZk9!6#X(dV9*T4xt{h#KFq&@aynoVLp9dn@9_S|#Wi1Y!8&OyKPM=V46Nj^5AR zo^u#)lE%JZx%Xw*uIkV~t(^bS&WU6g>%E1v;Fp^yGROD|uh|%pj7;K^mPuwD=DAt%*TLg*F;b>J%dnh{ zYrxooxb+WvK@iUgbb>)S$U#vpdFfH&SKbZ(cAVSx(`YCi7hh(k66b{0z=`MF>2}+; zB5%q_re7<%v7@Y+{#13i+utlobC=56XAkFQ`Rl0Vd$PBw!X9{}Wr%+~KB-%P&=gMH z!Qf;**|DFXrSU&E86fVP{^HkgSB;klPsQ(I-`p+17Viu%6`EoTD0XPdwmaF*Q(`G8 zOT#(b_+_lx&yv~g%OfowAo7*9X8C-j3I^hwvBKnhu7Q1b(5vJTP7a%vL;b4`H}qLy z0PPvg{G*~$N*{r=lld47e9-} zhcdeEB20U!s;HI9#qAaJGXO}`ea5(!wVw3f=v&OI2M31UgkHDgAe|bQS?(?ex+@i2 zV7_X&Ih%F4+O20M(96E}4{p$bp{zSno=F^J*?J1Vdf8uY;s!BA-@gmSCFuqHD)8}l zL3c^FAy59Fp8|d}rkU!$zlWdoF2GohiWDSb{?B~O)ae{+$HKAw#&gd9Y8Myg+{~vy zg1P+VNusuGGoN|kn7wd(zr~2P;3xIM`YTtEy4^%2{Nkmu;{U~GWcoj9k&61Od!7RI zi~bUK-!jCkVLs(CZjkd3l`==|JZ0sWjc~?K3ju3E8l}RqSwAuGLX1FyCQCjuZqWaH z^Z##tHGWTY8L-B?4GN{ErFDXnTg!Y3c-{)jsaZetw=p*9$T684ojJE*DFB{etNZu8 z)kRm%E@O0jz`&`ydI;WQ-4{Zv>#O~C#&W-1I}mmK!MyULUhCE?&<9v3PcDW77$yzf z2#+o#31ETyS6mEv|Jld*U7bD37=#Oz`w+&`O9+3?<^!D^YB`UNy1m-()3{yLfT#Fx zrZ}JNyy52NUdm&e4Jaz{ zMIk5bWzBoy8I#Mf-BbqYS26y& za9ZZYv3P!pkU6W2E85(&@wi4FelYO`TQE+vU&k%vD6fr?M;@~d^_u~{S%vT4zaP)^ zS`a%qMxGSPl-}O7qX1dCZq%9`?Z>D!!OaaAn{|<9@5Y-v!Q~*v`Meh+_dwSxJtF{q zwK4R+SVJCzNTIekFFKq6)OkQ$AA>J}lke>8QWLNA^)m4aGvfvBUhBEBA*eiT8|VC5 z6Hxym`k}b2NjYGs&H>;SEWMG-;o+AIP61c5ht2I*&B!@~bogZZ?dgGJ`TojXKQ(me zAqQ=-(NwMjMp|JdZ_?18Kfv&GU+B1nF}oUKP_&!+$z?C z4xXF{?lmG93A7nj+ru>ZQ1KlY@tFHhS+ zC?COflOb<7vtlfOR#i{cJ2AeuvJ!!IUO*YpG&z%+q}y9sN>Cakm~#64P51nBH9MAJ z;W!l5SIa&Ojt$G$bP}EfeQ}I^;9p%psm9#V(Q%$~VA2`9D#?=(`AfI9{grq{hE7nk zsLS04kHk+@@;3i?yZv?>dAHA2WbnZ>qk>17Tt9BRoG6D|froo7`S)0|pI+c6u10$u`fwD4y8*?6=@Prq*y*J=>Xj z0_tgVt^+*Ibc(v7U^*zSjE_7BxYR(s1f9l*Gi9J?fVWxIZyDc&3OP0Ge^&it+P(~V z4gRypp!9F#aKPnQ_G`4)&^gfmE}xiD{UC-eVc4GU&2wg|7lUVbA$7TtN9)5W|A>?R zzpH|Lk@RDqTzuXcVHyyEy}8>)2Nne0uo$g(HlTOu-JY~g1YC(j|&6rG&)cIU6Tb8$ZGvD3PJV4b< zFO5bg>TKG~CwKREvBE%9a(xRHxIY;%xjp(`hLerDMz{-L`r%x_TRlZ|x#s-}c!Awhpyc+=z6YH+xrtj>7yhd1>hOXL$1aEZ zdEo=!1;}=3!%D1#Gng~qnVF$0#xeBVRi6z?3mA`o>9x7`^t}bsd2Mzoc%jFMglh-c zerIp)z7sM$0Et5<>FvCNOjkjZhq$qevREUcrfhaKhYpwY` ze}=^$)?$6U@b3LQ&)yIF{ftu9@Kmcyi=*$%;jsG_D4juUBB!b{(C_!z`dnWOC#A}; z2u+|G5stVf*4mm>wv!w!+ZO6-C)8jKMOLGt2av6(GlkTgBxv=a(x~98^nVPJEp`cO zzmV{EF#@c?@t34Eb&9>ryRO!Jdy#5^CMO_uuajOORT>q_1-mIxQF|f)ils5s?=c|_ z1EE|^IQRMYZ@s1K$kSaR)DE^*#6WH8RM+puI2SBK5yfOJk!)OoCuLk!rii_H3AIC6 z_B_C-Ux&ts%}Chv zJbvW1r;SDjyn~Q=tx+!{bRAf^$0?IVHORa!fBkrsx*hfSBpn8+n|~3EIXXIOOiZ|c zS8vG@O)Y}xFs1x649d}i_c|A(N3GgNj;rhi*JL{wCU=gPW$TON2P=|gq^*%PXVpEg z?_fjypYUUuH*(ppHV^vFe7&nK324*C#4ozwxB(_nF2p!qbgHPcDe|g+(rDqG z`8~_5EY|M4ve4FN`Zwc4*UqCQOe9B4WymDCON`ElNi*Ll;-b%us!D zk2A~_?_7ELb^q;oK|=iM0psNN!w0?c%Hu&tg+@gY;&8^#WbjZs_G?|w) z$i$O3pQJBCHM&}-ev3vo#rV#iJ{l0f(iI_`K@v2Go|_)Ej-pUnQHl%ni73`66%xSw z*yYIP2GWD$o0p#Y2}>F6Z0>bQ~n;kavYzDY$7MvH3l#)gTl?)W9NrZ+2nRPeH(eEG)_qH<$R?{!0-e?k1^z^K4+bK>dgA6aTk`lmuT-6@Ri+szviJd_ z;Nk=C%GJt?i*&R`S6s38Z3c_8rs~Wwsx{X4O~@&QwIW=5_0p%F4OEmE}&Vt7gFriq@J5Y-IA2(iIF-F2LV zJz9*J?Gvc*COLQDji7DLs5DUoSTcMCd=r1EXMemo2h_w(d_GNp!p5`a}vUvc1FHG{};-Uu+0s$q*JRiLT+qr$(oo{rVXFnJ=b16=Z58v^QFKujep|L|ae97F4_Nv1k}y=QR_nK6 zbnjLMZ@e1_pw+OoGFJpSO3$#geHlQRx+^4wWL&H|BL$gVZuVFrk=#2;(-z-%Fy3$~ zZ1o}x&#$PLIvaKfs|k=ILqpkU(TC09j}Ql_va-^Pq*_lgj#1YI_-KHBKmYlfdGKF> zqlmu_X_xK66Kt|`POt}WE6ol3gLiTjwPu} z6A}`1rM~)~=Z4V64LHt>B(C0nxQrq#1LgXq5b_=)#;E0D z9l5wGuuHek#Ed2Pf?)*z0 zU@N~oNiX+F`ChK&nha2Y{kW=wSG=D=q%=VLOM)lM!lkgh7qK~57zjlW%rAl%}@1x0#1+Cl(GH;22#Ry#i;`)7AbH&Ja7QV0KXAC?1}V$<(s`Mc6mlQB1s8un zli#W=sX1Dg*2hk%@h|I^7GWz+Cp;TToOJs=PrZra!ej5EPPUuW)Pb9z3n8>knn+c|Cgt3Lb|K9N%BD_gwma0E0^8TmS$7 From 1b413ad84f144228d4fee7e20568535034f38991 Mon Sep 17 00:00:00 2001 From: cshelley Date: Fri, 12 Apr 2024 09:55:20 -0600 Subject: [PATCH 2/9] Little change --- model/docs/pyrenew_demo.qmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/model/docs/pyrenew_demo.qmd b/model/docs/pyrenew_demo.qmd index 3afaa69b..1472a837 100644 --- a/model/docs/pyrenew_demo.qmd +++ b/model/docs/pyrenew_demo.qmd @@ -17,7 +17,7 @@ installations of `matplotlib`, `numpy`, `jax`, `numpyro`, and `polars`: ```python python -m pip install "matplotlib" "numpy" "jax" "numpyro" "polars" -``` +``` Run the following import section to call external modules and functions necessary to run the `pyrenew` demo. The `import` statement imports the module and the `as` statement renames the module for use within this script. The `from` statement imports a specific function from a module (named after the `.`) within a package (named before the `.`). From 1a669617a391ad1810113d658701be3f1df17c3e Mon Sep 17 00:00:00 2001 From: cshelley Date: Fri, 12 Apr 2024 09:57:14 -0600 Subject: [PATCH 3/9] Little change --- model/docs/pyrenew_demo.qmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/model/docs/pyrenew_demo.qmd b/model/docs/pyrenew_demo.qmd index 1472a837..28c3e3b1 100644 --- a/model/docs/pyrenew_demo.qmd +++ b/model/docs/pyrenew_demo.qmd @@ -10,7 +10,7 @@ Assuming you've already installed Python and pip, you’ll need to first install ```python python3 -m pip install "pyrenew" -``` +``` You’ll also need working installations of `matplotlib`, `numpy`, `jax`, `numpyro`, and `polars`: From 90b4a785772cdc8e9fa95103ba13784e8ac97f82 Mon Sep 17 00:00:00 2001 From: cshelley Date: Fri, 12 Apr 2024 09:58:05 -0600 Subject: [PATCH 4/9] Little change --- model/docs/pyrenew_demo.qmd | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/model/docs/pyrenew_demo.qmd b/model/docs/pyrenew_demo.qmd index 28c3e3b1..64cd087d 100644 --- a/model/docs/pyrenew_demo.qmd +++ b/model/docs/pyrenew_demo.qmd @@ -10,16 +10,16 @@ Assuming you've already installed Python and pip, you’ll need to first install ```python python3 -m pip install "pyrenew" -``` +``` You’ll also need working installations of `matplotlib`, `numpy`, `jax`, `numpyro`, and `polars`: ```python python -m pip install "matplotlib" "numpy" "jax" "numpyro" "polars" -``` +``` -Run the following import section to call external modules and functions necessary to run the `pyrenew` demo. The `import` statement imports the module and the `as` statement renames the module for use within this script. The `from` statement imports a specific function from a module (named after the `.`) within a package (named before the `.`). +Run the following import section to call external modules and functions necessary to run the `pyrenew` demo. The `import` statement imports the module and the `as` statement renames the module for use within this script. The `from` statement imports a specific function from a module (named after the `.`) within a package (named before the `.`). ```{python} #| output: false From 08881fc1721ed06f245789be634bca34975c2031 Mon Sep 17 00:00:00 2001 From: cshelley Date: Sat, 13 Apr 2024 13:23:28 -0600 Subject: [PATCH 5/9] Documented first code block --- model/docs/pyrenew_demo.qmd | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/model/docs/pyrenew_demo.qmd b/model/docs/pyrenew_demo.qmd index 64cd087d..1c21fd4f 100644 --- a/model/docs/pyrenew_demo.qmd +++ b/model/docs/pyrenew_demo.qmd @@ -19,7 +19,7 @@ installations of `matplotlib`, `numpy`, `jax`, `numpyro`, and `polars`: python -m pip install "matplotlib" "numpy" "jax" "numpyro" "polars" ``` -Run the following import section to call external modules and functions necessary to run the `pyrenew` demo. The `import` statement imports the module and the `as` statement renames the module for use within this script. The `from` statement imports a specific function from a module (named after the `.`) within a package (named before the `.`). +Run the following import section to call external modules and functions necessary to run the `pyrenew` demo. The `import` statement imports the module and the `as` statement renames the module for use within this script. The `from` statement imports a specific function from a module (named after the `.`) within a package (named before the `.`). ```{python} #| output: false @@ -38,6 +38,8 @@ import numpyro.distributions as dist from pyrenew.process import SimpleRandomWalkProcess ``` +Next, we will set up a single random walk process using the `sample` method from an instance of the `SimpleRandomWalkProcess` class. First, we create an instance of the `SimpleRandomWalkProcess` class with a normal distribution of mean = 0 and standard deviation = 0.0001 as its input. Next, the `with ` statement sets the seed for the random number generator for the duration of the block that follows. Inside the `with` block, the `q_samp = q.sample(duration=100)` generates the sample instance over a duration of 100 time units. Finally, this single random walk process is visualized using `matplot.pyplot` to plot the exponential of the sample instance. + ```{python} #| label: fig-randwalk #| fig-cap: Random walk example From ffa18f536aea0d6fe2fcc5b40561d051f512a751 Mon Sep 17 00:00:00 2001 From: cshelley Date: Sat, 13 Apr 2024 13:24:38 -0600 Subject: [PATCH 6/9] Documented first code block --- model/docs/pyrenew_demo.qmd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/model/docs/pyrenew_demo.qmd b/model/docs/pyrenew_demo.qmd index 1c21fd4f..c8b7143d 100644 --- a/model/docs/pyrenew_demo.qmd +++ b/model/docs/pyrenew_demo.qmd @@ -19,7 +19,7 @@ installations of `matplotlib`, `numpy`, `jax`, `numpyro`, and `polars`: python -m pip install "matplotlib" "numpy" "jax" "numpyro" "polars" ``` -Run the following import section to call external modules and functions necessary to run the `pyrenew` demo. The `import` statement imports the module and the `as` statement renames the module for use within this script. The `from` statement imports a specific function from a module (named after the `.`) within a package (named before the `.`). +Run the following import section to call external modules and functions necessary to run the `pyrenew` demo. The `import` statement imports the module and the `as` statement renames the module for use within this script. The `from` statement imports a specific function from a module (named after the `.`) within a package (named before the `.`). ```{python} #| output: false @@ -38,7 +38,7 @@ import numpyro.distributions as dist from pyrenew.process import SimpleRandomWalkProcess ``` -Next, we will set up a single random walk process using the `sample` method from an instance of the `SimpleRandomWalkProcess` class. First, we create an instance of the `SimpleRandomWalkProcess` class with a normal distribution of mean = 0 and standard deviation = 0.0001 as its input. Next, the `with ` statement sets the seed for the random number generator for the duration of the block that follows. Inside the `with` block, the `q_samp = q.sample(duration=100)` generates the sample instance over a duration of 100 time units. Finally, this single random walk process is visualized using `matplot.pyplot` to plot the exponential of the sample instance. +Next, we will set up a single random walk process using the `sample` method from an instance of the `SimpleRandomWalkProcess` class. First, we create an instance of the `SimpleRandomWalkProcess` class with a normal distribution of mean = 0 and standard deviation = 0.0001 as its input. Next, the `with ` statement sets the seed for the random number generator for the duration of the block that follows. Inside the `with` block, the `q_samp = q.sample(duration=100)` generates the sample instance over a duration of 100 time units. Finally, this single random walk process is visualized using `matplot.pyplot` to plot the exponential of the sample instance. ```{python} #| label: fig-randwalk From 4f3a0d97b1101759e06868577fe5dc2bdfb884dc Mon Sep 17 00:00:00 2001 From: cshelley Date: Sat, 13 Apr 2024 16:49:12 -0600 Subject: [PATCH 7/9] Edits to first code chunk --- model/docs/pyrenew_demo.qmd | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/model/docs/pyrenew_demo.qmd b/model/docs/pyrenew_demo.qmd index c8b7143d..6c7c33a8 100644 --- a/model/docs/pyrenew_demo.qmd +++ b/model/docs/pyrenew_demo.qmd @@ -8,18 +8,18 @@ This demo simulates some basic renewal process data and then fits to it using `p Assuming you've already installed Python and pip, you’ll need to first install `pyrenew`: -```python -python3 -m pip install "pyrenew" +```{python} +pip install pyrenew ``` You’ll also need working installations of `matplotlib`, `numpy`, `jax`, `numpyro`, and `polars`: -```python -python -m pip install "matplotlib" "numpy" "jax" "numpyro" "polars" +```{python} +pip install matplotlib numpy jax numpyro polars ``` -Run the following import section to call external modules and functions necessary to run the `pyrenew` demo. The `import` statement imports the module and the `as` statement renames the module for use within this script. The `from` statement imports a specific function from a module (named after the `.`) within a package (named before the `.`). +To begin, run the following import section to call external modules and functions necessary to run the `pyrenew` demo. The `import` statement imports the module and the `as` statement renames the module for use within this script. The `from` statement imports a specific function from a module (named after the `.`) within a package (named before the `.`). ```{python} #| output: false @@ -38,7 +38,7 @@ import numpyro.distributions as dist from pyrenew.process import SimpleRandomWalkProcess ``` -Next, we will set up a single random walk process using the `sample` method from an instance of the `SimpleRandomWalkProcess` class. First, we create an instance of the `SimpleRandomWalkProcess` class with a normal distribution of mean = 0 and standard deviation = 0.0001 as its input. Next, the `with ` statement sets the seed for the random number generator for the duration of the block that follows. Inside the `with` block, the `q_samp = q.sample(duration=100)` generates the sample instance over a duration of 100 time units. Finally, this single random walk process is visualized using `matplot.pyplot` to plot the exponential of the sample instance. +To understand the simple random walk process underlying the sampling within the renewal process model, we first examine a single random walk path. Using the `sample` method from an instance of the `SimpleRandomWalkProcess` class, we first create an instance of the `SimpleRandomWalkProcess` class with a normal distribution of mean = 0 and standard deviation = 0.0001 as its input. Next, the `with` statement sets the seed for the random number generator for the duration of the block that follows. Inside the `with` block, the `q_samp = q.sample(duration=100)` generates the sample instance over a duration of 100 time units. Finally, this single random walk process is visualized using `matplot.pyplot` to plot the exponential of the sample instance. ```{python} #| label: fig-randwalk From 0d0f7ff9e6a71a23133f393f3adbbc5df65d37dc Mon Sep 17 00:00:00 2001 From: cshelley Date: Sun, 14 Apr 2024 15:46:25 -0600 Subject: [PATCH 8/9] Define model inputs and HospitalizationsModel run --- model/docs/pyrenew_demo.md | 45 ++++++++++++++++++++++++++++++------- model/docs/pyrenew_demo.qmd | 41 +++++++++++++++++++++++++++------ 2 files changed, 71 insertions(+), 15 deletions(-) diff --git a/model/docs/pyrenew_demo.md b/model/docs/pyrenew_demo.md index ceed5a37..3aace074 100644 --- a/model/docs/pyrenew_demo.md +++ b/model/docs/pyrenew_demo.md @@ -37,6 +37,7 @@ import numpyro.distributions as dist ``` python from pyrenew.process import SimpleRandomWalkProcess ``` +To understand the simple random walk process underlying the sampling within the renewal process model, we first examine a single random walk path. Using the `sample` method from an instance of the `SimpleRandomWalkProcess` class, we first create an instance of the `SimpleRandomWalkProcess` class with a normal distribution of mean = 0 and standard deviation = 0.0001 as its input. Next, the `with` statement sets the seed for the random number generator for the duration of the block that follows. Inside the `with` block, the `q_samp = q.sample(duration=100)` generates the sample instance over a duration of 100 time units. Finally, this single random walk process is visualized using `matplot.pyplot` to plot the exponential of the sample instance. ``` python np.random.seed(3312) @@ -49,35 +50,59 @@ plt.plot(np.exp(q_samp[0])) ![](pyrenew_demo_files/figure-commonmark/fig-randwalk-output-1.png) -``` python + +Next, import several additional functions from the `latent` module of the `pyrenew` package to model infections, hospital admissions, initial infections, and hospitalization rate due to infection. + +```{python} from pyrenew.latent import ( Infections, HospitalAdmissions, Infections0, InfectHospRate, ) +``` + +Additionally, import several classes from Pyrenew, including a Poisson observation process, determininstic PMF and variable classes, the Pyrenew hospitalization model, and a renewal modle (Rt) random walk process: +```{python} from pyrenew.observation import PoissonObservation from pyrenew.deterministic import DeterministicPMF, DeterministicVariable from pyrenew.model import HospitalizationsModel from pyrenew.process import RtRandomWalkProcess +``` + +To initialize a model run, we first define initial conditions, including: + +1) deterministic generation time, defined as an instance of the `DeterministicPMF` class, which gives the probability of each possible outcome for a discrete random variable given as a JAX NumPy array of four possible outcomes + +2) initial infections at the start of simulation as a log-normal distribution with mean = 0 and standard deviation = 1 +3) latent infections as an instance of the `Infections` class with default settings + +4) latent hospitalization process, modeled by first defining the time interval from infections to hospitalizations as a `DeterministicPMF` input with 18 possible outcomes and corresponding probabilities given by the values in the array. The `HospitalAdmissions` function then takes in this defined time interval, as well as defining the rate at which infections are admitted to the hospital due to infection, modeled as a log-normal distribution with mean = `jnp.log(0.05)` and standard deviation = 0.05. + +5) hospitalization observation process, modeled with a Poisson distribution + +6) an Rt random walk process with default settings + +``` python # Initializing model components: -# A deterministic generation time +# 1) A deterministic generation time gen_int = DeterministicPMF( (jnp.array([0.25, 0.25, 0.25, 0.25]),), ) -# Initial infections +# 2) Initial infections I0 = Infections0(I0_dist=dist.LogNormal(0, 1)) -# The latent infections process +# 3) The latent infections process latent_infections = Infections() -# A deterministic infection to hosp pmf +# 4) The latent hospitalization process: + +# First, define a deterministic infection to hosp pmf inf_hosp_int = DeterministicPMF( (jnp.array([0, 0, 0,0,0,0,0,0,0,0,0,0,0, 0.25, 0.5, 0.1, 0.1, 0.05]),), ) -# The latent hospitalization process latent_hospitalizations = HospitalAdmissions( infection_to_admission_interval=inf_hosp_int, infect_hosp_rate_dist = InfectHospRate( @@ -85,13 +110,17 @@ latent_hospitalizations = HospitalAdmissions( ), ) -# And observation process for the hospitalizations +# 5) An observation process for the hospitalizations observed_hospitalizations = PoissonObservation() -# And a random walk process (it could be deterministic using +# 6) A random walk process (it could be deterministic using # pyrenew.process.DeterministicProcess()) Rt_process = RtRandomWalkProcess() +``` +The `HospitalizationsModel` is then initialized using the initial conditions just defined: + +``` python # Initializing the model hospmodel = HospitalizationsModel( gen_int=gen_int, diff --git a/model/docs/pyrenew_demo.qmd b/model/docs/pyrenew_demo.qmd index 6c7c33a8..fc59ce77 100644 --- a/model/docs/pyrenew_demo.qmd +++ b/model/docs/pyrenew_demo.qmd @@ -51,35 +51,58 @@ with seed(rng_seed=np.random.randint(0,1000)): plt.plot(np.exp(q_samp[0])) ``` +Next, import several additional functions from the `latent` module of the `pyrenew` package to model infections, hospital admissions, initial infections, and hospitalization rate due to infection. + ```{python} from pyrenew.latent import ( Infections, HospitalAdmissions, Infections0, InfectHospRate, ) +``` + +Additionally, import several classes from Pyrenew, including a Poisson observation process, determininstic PMF and variable classes, the Pyrenew hospitalization model, and a renewal modle (Rt) random walk process: +```{python} from pyrenew.observation import PoissonObservation from pyrenew.deterministic import DeterministicPMF, DeterministicVariable from pyrenew.model import HospitalizationsModel from pyrenew.process import RtRandomWalkProcess +``` + +To initialize a model run, we first define initial conditions, including: + +1) deterministic generation time, defined as an instance of the `DeterministicPMF` class, which gives the probability of each possible outcome for a discrete random variable given as a JAX NumPy array of four possible outcomes + +2) initial infections at the start of simulation as a log-normal distribution with mean = 0 and standard deviation = 1 + +3) latent infections as an instance of the `Infections` class with default settings +4) latent hospitalization process, modeled by first defining the time interval from infections to hospitalizations as a `DeterministicPMF` input with 18 possible outcomes and corresponding probabilities given by the values in the array. The `HospitalAdmissions` function then takes in this defined time interval, as well as defining the rate at which infections are admitted to the hospital due to infection, modeled as a log-normal distribution with mean = `jnp.log(0.05)` and standard deviation = 0.05. + +5) hospitalization observation process, modeled with a Poisson distribution + +6) an Rt random walk process with default settings + +```{python} # Initializing model components: -# A deterministic generation time +# 1) A deterministic generation time gen_int = DeterministicPMF( (jnp.array([0.25, 0.25, 0.25, 0.25]),), ) -# Initial infections +# 2) Initial infections I0 = Infections0(I0_dist=dist.LogNormal(0, 1)) -# The latent infections process +# 3) The latent infections process latent_infections = Infections() -# A deterministic infection to hosp pmf +# 4) The latent hospitalization process: + +# First, define a deterministic infection to hosp pmf inf_hosp_int = DeterministicPMF( (jnp.array([0, 0, 0,0,0,0,0,0,0,0,0,0,0, 0.25, 0.5, 0.1, 0.1, 0.05]),), ) -# The latent hospitalization process latent_hospitalizations = HospitalAdmissions( infection_to_admission_interval=inf_hosp_int, infect_hosp_rate_dist = InfectHospRate( @@ -87,13 +110,17 @@ latent_hospitalizations = HospitalAdmissions( ), ) -# And observation process for the hospitalizations +# 5) An observation process for the hospitalizations observed_hospitalizations = PoissonObservation() -# And a random walk process (it could be deterministic using +# 6) A random walk process (it could be deterministic using # pyrenew.process.DeterministicProcess()) Rt_process = RtRandomWalkProcess() +``` +The `HospitalizationsModel` is then initialized using the initial conditions just defined: + +```{python} # Initializing the model hospmodel = HospitalizationsModel( gen_int=gen_int, From d7aef8b88dec5329debeb3e1a82d07f5dd34cda7 Mon Sep 17 00:00:00 2001 From: cshelley Date: Sun, 14 Apr 2024 18:27:04 -0600 Subject: [PATCH 9/9] Complete documentation for pyrenew_demo --- model/docs/pyrenew_demo.qmd | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/model/docs/pyrenew_demo.qmd b/model/docs/pyrenew_demo.qmd index fc59ce77..2cc39404 100644 --- a/model/docs/pyrenew_demo.qmd +++ b/model/docs/pyrenew_demo.qmd @@ -68,7 +68,7 @@ from pyrenew.model import HospitalizationsModel from pyrenew.process import RtRandomWalkProcess ``` -To initialize a model run, we first define initial conditions, including: +To initialize the model, we first define initial conditions, including: 1) deterministic generation time, defined as an instance of the `DeterministicPMF` class, which gives the probability of each possible outcome for a discrete random variable given as a JAX NumPy array of four possible outcomes @@ -132,6 +132,7 @@ hospmodel = HospitalizationsModel( ) ``` +Next, we sample from the `hospmodel` for 30 time steps and view the output of a single run: ```{python} with seed(rng_seed=np.random.randint(1, 60)): @@ -139,6 +140,8 @@ with seed(rng_seed=np.random.randint(1, 60)): x ``` +Visualizations of the single model output show (top) infections over the 30 time steps, (middle) hospitalizations over the 30 time steps, and (bottom) + ```{python} #| label: fig-hosp #| fig-cap: Infections @@ -151,6 +154,8 @@ for axis in ax[:-1]: axis.set_yscale("log") ``` +To fit the `hospmodel` to the simulated data, we call `hospmodel.run()`, an MCMC algorithm, with the arguments generated in `hospmodel` object, using 1000 warmup stepts and 1000 samples to draw from the posterior distribution of the model parameters. The model is run for `len(x.sampled)-1` time steps with the seed set by `jax.random.PRNGKey()` + ```{python} # from numpyro.infer import MCMC, NUTS hospmodel.run( @@ -163,15 +168,21 @@ hospmodel.run( ) ``` +Print a summary of the model: + ```{python} hospmodel.print_summary() ``` +Next, we will use the `spread_draws` function from the `pyrenew.mcmcutils` module to process the MCMC samples. The `spread_draws` function reformats the samples drawn from the `mcmc.get_samples()` from the `hospmodel`. The samples are simulated Rt values over time. + ```{python} from pyrenew.mcmcutils import spread_draws samps = spread_draws(hospmodel.mcmc.get_samples(), [("Rt", "time")]) ``` +We visualize these samples below, with individual possible Rt estimates over time shown in light blue, and the overall mean estimate Rt shown in dark blue. + ```{python} #| label: fig-sampled-rt #| fig-cap: Posterior Rt