From 54c0981869f816722ed1f1de6da35e7975b2e217 Mon Sep 17 00:00:00 2001
From: Simon Christ We can typeset code that is passed to Python, and bring back the results. This can be simple. For example, Python interaction can also be more complex. Printing works, but as the last example demonstrates, you have to be careful about spacing if you have text immediately after the printed content. In that case, it’s usually best to assemble text within a PythonTeX environment and store the text in a variable. Then you can bring in the text later, using the Printing works, but as the last example demonstrates, you have to be careful about spacing if you have text immediately after the printed content. In that case, it’s usually best to assemble text within a PythonTeX environment and store the text in a variable. Then you can bring in the text later, using the Then we bring it in: \(1 + 1 = 2\). The We don’t have to typeset the code we’re executing. It can be hidden. And then we can access it later: This is a message from Python. It is also possible to perform variable substitution or string interpolation. The earlier result could be recreated: \(1 + 1 = 2\). PythonTeX supports syntax highlighting via Pygments. Any language supported by Pygments can be highlighted. Unicode is supported. Consider this snippet copied and pasted from a Python 3 interactive session. (Using random strings of Unicode for variable names is probably not a good idea, but PythonTeX will happily highlight it for you.) PythonTeX supports syntax highlighting via Pygments. Any language supported by Pygments can be highlighted. Unicode is supported. Consider this snippet copied and pasted from a Python 3 interactive session. (Using random strings of Unicode for variable names is probably not a good idea, but PythonTeX will happily highlight it for you.) There is also a Pygments command for inline use: PythonTeX includes an environment that emulates a Python interactive session. Commands are entered within the environment, each line is treated as input to an interactive session, and the result is typeset. PythonTeX includes an environment that emulates a Python interactive session. Commands are entered within the environment, each line is treated as input to an interactive session, and the result is typeset. It is possible to refer to the values of console variables later on in inline contexts, using the PythonTeX allows us to perform algebraic manipulations with SymPy and then properly typeset the results. PythonTeX allows us to perform algebraic manipulations with SymPy and then properly typeset the results. We create three variables, and define \(z\) in terms of the other two. Now we can access what \(z\) is equal to: \[z=x + y\] Many things are possible, including some very nice calculus. \[\int x^{3} + \cos^{5}{\left (x \right )}\, dx=\frac{x^{4}}{4} + \frac{1}{5} \sin^{5}{\left (x \right )} - \frac{2}{3} \sin^{3}{\left (x \right )} + \sin{\left (x \right )}\] \[\int \left(x^{3} + \cos^{5}{\left(x \right)}\right)\, dx=\frac{x^{4}}{4} + \frac{\sin^{5}{\left(x \right)}}{5} - \frac{2 \sin^{3}{\left(x \right)}}{3} + \sin{\left(x \right)}\] It’s easy to use arbitrary symbols in equations. \[\int_{0}^{\infty} e^{- \phi^{2}}\, d\phi=\frac{\sqrt{\pi}}{2}\] \[\int\limits_{0}^{\infty} e^{- \phi^{2}}\, d\phi=\frac{\sqrt{\pi}}{2}\] We can create plots with matplotlib, perfectly matching the plot fonts with the document fonts. No more searching for the code that created a figure! It is possible to pass page dimensions and similar contextual information from the LaTeX side to the Python side. If you want your figures to be, for example, a particular fraction of the page width, you can pass the value of You may want to use matplotlib’s PGF backend when creating plots. \[\int_0^\infty e^{-x^2}\,dx = 0.886226925452758\] PythonTeX allows some amazing document automation, such as this derivative and integral table. Try typing that by hand, fast! PythonTeX allows some amazing document automation, such as this derivative and integral table. Try typing that by hand, fast! \[\begin{aligned}
-\frac{d}{d x} \sin{\left (x \right )}&=\cos{\left (x \right )}\quad & \quad
-\int \sin{\left (x \right )}\, dx&=- \cos{\left (x \right )}\\
-\frac{d}{d x} \cos{\left (x \right )}&=- \sin{\left (x \right )}\quad & \quad
-\int \cos{\left (x \right )}\, dx&=\sin{\left (x \right )}\\
-\frac{d}{d x} \tan{\left (x \right )}&=\tan^{2}{\left (x \right )} + 1\quad & \quad
-\int \tan{\left (x \right )}\, dx&=- \frac{1}{2} \log{\left (\sin^{2}{\left (x \right )} - 1 \right )}\\
-\frac{d}{d x} \sin^{2}{\left (x \right )}&=2 \sin{\left (x \right )} \cos{\left (x \right )}\quad & \quad
-\int \sin^{2}{\left (x \right )}\, dx&=\frac{x}{2} - \frac{1}{2} \sin{\left (x \right )} \cos{\left (x \right )}\\
-\frac{d}{d x} \cos^{2}{\left (x \right )}&=- 2 \sin{\left (x \right )} \cos{\left (x \right )}\quad & \quad
-\int \cos^{2}{\left (x \right )}\, dx&=\frac{x}{2} + \frac{1}{2} \sin{\left (x \right )} \cos{\left (x \right )}\\
-\frac{d}{d x} \tan^{2}{\left (x \right )}&=\left(2 \tan^{2}{\left (x \right )} + 2\right) \tan{\left (x \right )}\quad & \quad
-\int \tan^{2}{\left (x \right )}\, dx&=- x + \frac{\sin{\left (x \right )}}{\cos{\left (x \right )}}\\
+\frac{d}{d x} \sin{\left(x \right)}&=\cos{\left(x \right)}\quad & \quad
+\int \sin{\left(x \right)}\, dx&=- \cos{\left(x \right)}\\
+\frac{d}{d x} \cos{\left(x \right)}&=- \sin{\left(x \right)}\quad & \quad
+\int \cos{\left(x \right)}\, dx&=\sin{\left(x \right)}\\
+\frac{d}{d x} \tan{\left(x \right)}&=\tan^{2}{\left(x \right)} + 1\quad & \quad
+\int \tan{\left(x \right)}\, dx&=- \log{\left(\cos{\left(x \right)} \right)}\\
+\frac{d}{d x} \sin^{2}{\left(x \right)}&=2 \sin{\left(x \right)} \cos{\left(x \right)}\quad & \quad
+\int \sin^{2}{\left(x \right)}\, dx&=\frac{x}{2} - \frac{\sin{\left(x \right)} \cos{\left(x \right)}}{2}\\
+\frac{d}{d x} \cos^{2}{\left(x \right)}&=- 2 \sin{\left(x \right)} \cos{\left(x \right)}\quad & \quad
+\int \cos^{2}{\left(x \right)}\, dx&=\frac{x}{2} + \frac{\sin{\left(x \right)} \cos{\left(x \right)}}{2}\\
+\frac{d}{d x} \tan^{2}{\left(x \right)}&=\left(2 \tan^{2}{\left(x \right)} + 2\right) \tan{\left(x \right)}\quad & \quad
+\int \tan^{2}{\left(x \right)}\, dx&=- x + \frac{\sin{\left(x \right)}}{\cos{\left(x \right)}}\\
&\\
-\frac{d}{d x} \operatorname{asin}{\left (x \right )}&=\frac{1}{\sqrt{- x^{2} + 1}}\quad & \quad
-\int \operatorname{asin}{\left (x \right )}\, dx&=x \operatorname{asin}{\left (x \right )} + \sqrt{- x^{2} + 1}\\
-\frac{d}{d x} \operatorname{acos}{\left (x \right )}&=- \frac{1}{\sqrt{- x^{2} + 1}}\quad & \quad
-\int \operatorname{acos}{\left (x \right )}\, dx&=x \operatorname{acos}{\left (x \right )} - \sqrt{- x^{2} + 1}\\
-\frac{d}{d x} \operatorname{atan}{\left (x \right )}&=\frac{1}{x^{2} + 1}\quad & \quad
-\int \operatorname{atan}{\left (x \right )}\, dx&=x \operatorname{atan}{\left (x \right )} - \frac{1}{2} \log{\left (x^{2} + 1 \right )}\\
+\frac{d}{d x} \operatorname{asin}{\left(x \right)}&=\frac{1}{\sqrt{1 - x^{2}}}\quad & \quad
+\int \operatorname{asin}{\left(x \right)}\, dx&=x \operatorname{asin}{\left(x \right)} + \sqrt{1 - x^{2}}\\
+\frac{d}{d x} \operatorname{acos}{\left(x \right)}&=- \frac{1}{\sqrt{1 - x^{2}}}\quad & \quad
+\int \operatorname{acos}{\left(x \right)}\, dx&=x \operatorname{acos}{\left(x \right)} - \sqrt{1 - x^{2}}\\
+\frac{d}{d x} \operatorname{atan}{\left(x \right)}&=\frac{1}{x^{2} + 1}\quad & \quad
+\int \operatorname{atan}{\left(x \right)}\, dx&=x \operatorname{atan}{\left(x \right)} - \frac{\log{\left(x^{2} + 1 \right)}}{2}\\
&\\
-\frac{d}{d x} \sinh{\left (x \right )}&=\cosh{\left (x \right )}\quad & \quad
-\int \sinh{\left (x \right )}\, dx&=\cosh{\left (x \right )}\\
-\frac{d}{d x} \cosh{\left (x \right )}&=\sinh{\left (x \right )}\quad & \quad
-\int \cosh{\left (x \right )}\, dx&=\sinh{\left (x \right )}\\
-\frac{d}{d x} \tanh{\left (x \right )}&=- \tanh^{2}{\left (x \right )} + 1\quad & \quad
-\int \tanh{\left (x \right )}\, dx&=x - \log{\left (\tanh{\left (x \right )} + 1 \right )}\\\end{aligned}\]PythonTeX Gallery
-Geoffrey M. Poore
-PythonTeX Gallery
+
+General Python interaction
print('Python says hi!') returns the following:General Python interaction
Python says hi!print(str(2**2**2) + r'\endinput') returns 16. In this case, the printed result includes LaTeX code, which is correctly interpreted by LaTeX to ensure that there is not an extra space after the 16. Printed output is saved to a file and brought back in via \input, and the \endinput command stops input immediately, before LaTeX gets to the end of the line and inserts a space character there, after the 16.\py command. The \py command brings in a string representation of its argument. First we create the text.mytext = '$1 + 1 = {0}$'.format(1 + 1)\py command. The \py command brings in a string representation of its argument. First we create the text.mytext = '$1 + 1 = {0}$'.format(1 + 1)\py command can even bring in verbatim content.Pygments highlighting
-
+>>> âæéöø = 123
->>> ßçñðŠ = 456
->>> âæéöø + ßçñðŠ
-579>>> âæéöø = 123
+>>> ßçñðŠ = 456
+>>> âæéöø + ßçñðŠ
+579\pygment.Python console environment
-
+>>> x = 123
->>> y = 345
->>> z = x + y
->>> z
-468
->>> def f(expr):
-... return(expr**4)
-...
->>> f(x)
-228886641
->>> print('Python says hi from the console!')
-Python says hi from the console!>>> x = 123
+>>> y = 345
+>>> z = x + y
+>>> z
+468
+>>> def f(expr):
+... return(expr**4)
+...
+>>> f(x)
+228886641
+>>> print('Python says hi from the console!')
+Python says hi from the console!\pycon command. For example, the value of \(z\) was 468.Basic SymPy interaction
-var('x, y, z')
-z = x + yvar('x, y, z')
+z = x + yf = x**3 + cos(x)**5
-g = Integral(f, x)f = x**3 + cos(x)**5
+g = Integral(f, x)phi = Symbol(r'\phi')
-h = Integral(exp(-phi**2), (phi, 0, oo))phi = Symbol(r'\phi')
+h = Integral(exp(-phi**2), (phi, 0, oo))Plots with matplotlib
\textwidth to the Python side, and use it in creating your figures. See \setpythontexcontext in the main documentation for details.rc('text', usetex=True)
-rc('font', family='serif')
-rc('font', size=10.0)
-rc('legend', fontsize=10.0)
-rc('font', weight='normal')
-x = linspace(0, 10)
-figure(figsize=(4, 2.5))
-plot(x, sin(x), label='$\sin(x)$')
-xlabel(r'$x\mathrm{-axis}$')
-ylabel(r'$y\mathrm{-axis}$')
-legend(loc='lower right')
-savefig('myplot.png', bbox_inches='tight')rc('text', usetex=True)
+rc('font', family='serif')
+rc('font', size=10.0)
+rc('legend', fontsize=10.0)
+rc('font', weight='normal')
+x = linspace(0, 10)
+figure(figsize=(4, 2.5))
+plot(x, sin(x), label='$\sin(x)$')
+xlabel(r'$x\mathrm{-axis}$')
+ylabel(r'$y\mathrm{-axis}$')
+legend(loc='lower right')
+savefig('myplot.png', bbox_inches='tight')
Basic pylab interaction
-from scipy.integrate import quad
-myintegral = quad(lambda x: e**-x**2, 0, inf)[0]from scipy.integrate import quad
+myintegral = quad(lambda x: e**-x**2, 0, inf)[0]An automated derivative and integral table
-from re import sub
-
-var('x')
-
-# Create a list of functions to include in the table
-funcs = ['sin(x)', 'cos(x)', 'tan(x)',
- 'sin(x)**2', 'cos(x)**2', 'tan(x)**2',
- 'asin(x)', 'acos(x)', 'atan(x)',
- 'sinh(x)', 'cosh(x)', 'tanh(x)']
-
-print(r'\begin{align*}')
-
-for func in funcs:
- # Put in some vertical space when switching to arc and hyperbolic funcs
- if func == 'asin(x)' or func == 'sinh(x)':
- print(r'&\\')
- myderiv = 'Derivative(' + func + ', x)'
- myint = 'Integral(' + func + ', x)'
- print(latex(eval(myderiv)) + '&=' +
- latex(eval(myderiv + '.doit()')) + r'\quad & \quad')
- print(latex(eval(myint)) + '&=' +
- latex(eval(myint+'.doit()')) + r'\\')
-print(r'\end{align*}')from re import sub
+
+var('x')
+
+# Create a list of functions to include in the table
+funcs = ['sin(x)', 'cos(x)', 'tan(x)',
+ 'sin(x)**2', 'cos(x)**2', 'tan(x)**2',
+ 'asin(x)', 'acos(x)', 'atan(x)',
+ 'sinh(x)', 'cosh(x)', 'tanh(x)']
+
+print(r'\begin{align*}')
+
+for func in funcs:
+ # Put in some vertical space when switching to arc and hyperbolic funcs
+ if func == 'asin(x)' or func == 'sinh(x)':
+ print(r'&\\')
+ myderiv = 'Derivative(' + func + ', x)'
+ myint = 'Integral(' + func + ', x)'
+ print(latex(eval(myderiv)) + '&=' +
+ latex(eval(myderiv + '.doit()')) + r'\quad & \quad')
+ print(latex(eval(myint)) + '&=' +
+ latex(eval(myint+'.doit()')) + r'\\')
+print(r'\end{align*}')
Using SymPy, it is possible to typeset step-by-step solutions. In this particular case, we also use the mdframed package to place a colored background behind our code.
x, y, z = symbols('x,y,z')
-f = Symbol('f(x,y,z)')
-
-# Define limits of integration
-x_llim = 0
-x_ulim = 2
-y_llim = 0
-y_ulim = 3
-z_llim = 0
-z_ulim = 4
-
-print(r'\begin{align*}')
-
-# Notice how I define f as a symbol, then later as an actual function
-left = Integral(f, (x, x_llim, x_ulim), (y, y_llim, y_ulim), (z, z_llim, z_ulim))
-f = x*y + y*sin(z) + cos(x+y)
-right = Integral(f, (x, x_llim, x_ulim), (y, y_llim, y_ulim), (z, z_llim, z_ulim))
-print(latex(left) + '&=' + latex(right) + r'\\')
-
-# For each step, I move limits from an outer integral to an inner, evaluated
-# integral until the outer integral is no longer needed
-right = Integral(Integral(f, (z, z_llim, z_ulim)).doit(), (x, x_llim, x_ulim),
- (y, y_llim, y_ulim))
-print('&=' + latex(right) + r'\\')
-
-right = Integral(Integral(f, (z, z_llim, z_ulim), (y, y_llim, y_ulim)).doit(),
- (x, x_llim, x_ulim))
-print('&=' + latex(right) + r'\\')
-
-right = Integral(f, (z, z_llim, z_ulim), (y, y_llim, y_ulim),
- (x, x_llim, x_ulim)).doit()
-print('&=' + latex(right) + r'\\')
-
-print('&=' + latex(N(right)) + r'\\')
-
-print(r'\end{align*}')x, y, z = symbols('x,y,z')
+f = Symbol('f(x,y,z)')
+
+# Define limits of integration
+x_llim = 0
+x_ulim = 2
+y_llim = 0
+y_ulim = 3
+z_llim = 0
+z_ulim = 4
+
+print(r'\begin{align*}')
+
+# Notice how I define f as a symbol, then later as an actual function
+left = Integral(f, (x, x_llim, x_ulim), (y, y_llim, y_ulim), (z, z_llim, z_ulim))
+f = x*y + y*sin(z) + cos(x+y)
+right = Integral(f, (x, x_llim, x_ulim), (y, y_llim, y_ulim), (z, z_llim, z_ulim))
+print(latex(left) + '&=' + latex(right) + r'\\')
+
+# For each step, I move limits from an outer integral to an inner, evaluated
+# integral until the outer integral is no longer needed
+right = Integral(Integral(f, (z, z_llim, z_ulim)).doit(), (x, x_llim, x_ulim),
+ (y, y_llim, y_ulim))
+print('&=' + latex(right) + r'\\')
+
+right = Integral(Integral(f, (z, z_llim, z_ulim), (y, y_llim, y_ulim)).doit(),
+ (x, x_llim, x_ulim))
+print('&=' + latex(right) + r'\\')
+
+right = Integral(f, (z, z_llim, z_ulim), (y, y_llim, y_ulim),
+ (x, x_llim, x_ulim)).doit()
+print('&=' + latex(right) + r'\\')
+
+print('&=' + latex(N(right)) + r'\\')
+
+print(r'\end{align*}')\[\begin{aligned} -\int_{0}^{4}\int_{0}^{3}\int_{0}^{2} f(x,y,z)\, dx\, dy\, dz&=\int_{0}^{4}\int_{0}^{3}\int_{0}^{2} x y + y \sin{\left (z \right )} + \cos{\left (x + y \right )}\, dx\, dy\, dz\\ -&=\int_{0}^{3}\int_{0}^{2} 4 x y - y \cos{\left (4 \right )} + y + 4 \cos{\left (x + y \right )}\, dx\, dy\\ -&=\int_{0}^{2} 18 x - 4 \sin{\left (x \right )} + 4 \sin{\left (x + 3 \right )} - \frac{9}{2} \cos{\left (4 \right )} + \frac{9}{2}\, dx\\ -&=4 \cos{\left (3 \right )} + 4 \cos{\left (2 \right )} - 4 \cos{\left (5 \right )} - 9 \cos{\left (4 \right )} + 41\\ +\int\limits_{0}^{4}\int\limits_{0}^{3}\int\limits_{0}^{2} f(x,y,z)\, dx\, dy\, dz&=\int\limits_{0}^{4}\int\limits_{0}^{3}\int\limits_{0}^{2} \left(x y + y \sin{\left(z \right)} + \cos{\left(x + y \right)}\right)\, dx\, dy\, dz\\ +&=\int\limits_{0}^{3}\int\limits_{0}^{2} \left(4 x y - y \cos{\left(4 \right)} + y + 4 \cos{\left(x + y \right)}\right)\, dx\, dy\\ +&=\int\limits_{0}^{2} \left(18 x - 4 \sin{\left(x \right)} + 4 \sin{\left(x + 3 \right)} - \frac{9 \cos{\left(4 \right)}}{2} + \frac{9}{2}\right)\, dx\\ +&=4 \cos{\left(3 \right)} + 4 \cos{\left(2 \right)} - 4 \cos{\left(5 \right)} - 9 \cos{\left(4 \right)} + 41\\ &=40.1235865133293\\\end{aligned}\]
PythonTeX allows code to be typset next to the stderr it produces. This requires the package option makestderr.
x = 123
-y = 345
-z = x + y +PythonTeX allows code to be typset next to the stderr it produces. This requires the package option makestderr.
x = 123
+y = 345
+z = x + y +This code causes a syntax error:
File "py_errorsession_9.py", line 3
z = x + y +
^
SyntaxError: invalid syntax
The package option stderrfilename allows the file name that appears in the error message to be customized.
Since PythonTeX runs Python code (and potentially other code) on your computer, documents using PythonTeX have a greater potential for security risks than do standard LaTeX documents. You should only compile PythonTeX documents from sources you trust.↩
Since PythonTeX runs Python code (and potentially other code) on your computer, documents using PythonTeX have a greater potential for security risks than do standard LaTeX documents. You should only compile PythonTeX documents from sources you trust.↩︎
1ew~76n$*=ZgmSoc^nM!|d#DDY6M!)1B zj0C_wz6cD46ytC-;3$;y#Vjd3417C@z65D^!bIE3kgjlqmg8TBW1cwa$-I4M1lj%t z%gvGE9#?jRoHTE1MIN71vQl0U7$G9`-__Tjs);j05Z*<7_!jf|cQq_6gF=#P(9=H_6xwO(5QQ;&whc z?1_`3>Eab`Lk&QqHt6(J0d8UF8csl>5egdSs=A)Z;#O%uFjV!dwSS%nVg~r~ksh@S zSMMs^U28Syz;;uWRbHRtP~F(EcMs*Q%Iw?%$Rh@cnOz9b>g>`e7G`#r!yi3}LSX&K z;*pQsQk~Yfh&ZF`LKh~@)dg9d=af~}YvqRlyhllG7a|sY78n|P4Ib$D@`tK3;w1e$ zMtH14jmio;4W+U%XMdi2t{as0gVD#9A3JB zy`g(4zf@^1Cl>3%aOO2 9_I4x7bIOxGHW{{Y9{UHE~l%V!Z~_bl?+F{Qeu{p>Fo5+x2#OF zBJaKE7L$WA$T;p5BzJPlZ2>ZtMe$t+8&kUHuYaRH9pG@yrv8>Wu-ypwP^PoAto7Jr z-f^xR&ZSMAW{avkR#mAFE-lNlTKJsNvx6c%+xfV$^BbE%mnP}B@${?a?HD&uzs2M4 zKGMe~* weUSs0T09I>ldMO?a$Mu zI5Y8GYp`tXPP%~K_N#!{0~>|6yu9XXfT(Wj`SSIZn#y{ecQ!iu7c+Q8#*=s=JPt83 z3NK7$ZfA68ATl{Lmw` r10b7OsZ%n7H_h5ya^_U$Qulj6n+yiYE(i|lM{PUlF7wk z087R|M&N<=i-WLO#gq_u6LG`tR%eR1))iAYjImTx3iVT~secYeqt2P?l{enhP~AdZ zFqNaHFu1DdfjSxsV5n153w7fX%?8G%(5S}^)I^hXq3{_D#?iFY!(yCLi8NG~y)G23 zdRJfr&^hjEq4r@%-oxS)GI7H;JS{SM{x;J#VF>EchR=?_MH{}r+7w;(zE*Sr1LlL5 zywHF)0_}*}^M8T1tT1^W6oaKS`j8<(Y4xFCe3fP|&hr;&LtyZ@LmMLKq0;h&R;o~p z7mWMj$rCfZG}B*KKd;R6y?JzX{hI%lC+pMIx%JL^Z^Jj{+iw?-evzE;mw$22z2M~| zFK>8x$IFtJb6(cGT=DXYi|+Qj-*`FY<&u}x?!{dh-+#=)CZA$^$;-t~+R3iLV_wc~ z!urx~oa`XK+g*-#-~ZaapNBhsiu>74Da)PQ^$z^`4&@e1d-rzt{m4Gu{Ql0ngOBhH zHGRhLp5Io;r$c(Od$PQZ_PUwH-Ztf)f%#oS7oQoO*Sov3-Q9XO5L;~TZ@+tc^WEzm z Pe_J7^)MscTOSG($`X7`G&%bB0d^!#*v#7;eVvY3AUc(F9oi{m%T#q?}-zFwZM zudvDmez}-_T3)TLFHe?NZQ*N={=WS6^!U5g2lL9|L4w=MH5@G<;u62b@>Dn9Jv~2P zLDZ|Z2D4c%!JD%5vTjOotvp)Xg4BM$n7&(G{(ri>Y;C!t>4)jZ=@}~UR!2m4vNo?m zaaKqOoLIpkAgE_74arwL7ku~f`t=$zr@x(^|8IKw 7gv9trZ=bSx7V); zYJb|GoGw1D-*UJ<+=sHaU|JKO2kl#B3tCdKmCPr>!(+5118l`glBrjMeroQ{l^_1I zTCLIC()u<{zD`}@k_GL+@?;BEaF`IZgob0VSaiQkTTs^f_wVi5F;w&T;&Sz0v|v}4 zZ>F=0i!;0au>J$1st)+L1beICCnC{u^?wEI>c0x*>SB4mnP3};rzfZ{ucq%_e*ah= zKRY|VzFOYEdvgx|^I!i4RSuTyE5ocnUCyu1&W`T?R@%2IWlL)P;KyLEHbP=hbS>_a z-0X(K6|I1B-TL@BY_wU;bIkH6TL&bh-Dz6^ag*FDWXn>v6-*te+X|>(biJaD2!C%Y z_)QGk3Vwr6Hx-h@xNWqN=WU}T&~eiapiVC?S0^u*7-aau@1L9L=jDg>U5|9vN!CxD zWOZNbBz4m>1`(Sw^ip~md#SzbPF1^8)$UZaJJr 0CQX1Jmh#fDry>-%;j;a<=8^)N_0stGArOhH6n;I-*N5aIA3;Nq;p zP(y*cW0X>{m_>OIh8z$E92KHXgr~_0MjxTIWjv`UQU5%Q->I7%bX>MrQh&50LP94B zkE2*3QQwbc#PDEs#3V$BXcWOM?FUpAP) zwlb~{)q)i6$8yNgsSf?;W &`mb;mBz`?U# zZ3%NVqyqpUtSJB_ZIuipAE?jOP#OS8)Ot{GfiDc)0F4SNK379|0HA<=a;RuS)Q~Xn zn~A3!-X%uv)_Eu>sSVuF20rJ~ewR34As4Jvft%dUThG04kQ}FeKYx}1Q%gu9oV2Os zMY!K?T}`tFDvof^E!d7!PPC~3Okfy(CZGZCSrVfDDxK<}%; jNJp&YlkHaz@iml48l9CP`=p>qRuiyFEYSXKqnOX5KSQOzy`jPlRjuF zX@E)sn6QJTf?hEX9E6m;?o&w`Vk#gInQ3fz6mB1ez&KC#V}BVC@zTXOE=3}?CT8Zr zkLBT+oDZ)OpTQNtr9jECR43yxqs!iiH;)({ZoN9#t%t!dbDR@cr|yR`U> $ z41^i*6cN1ahcbX@awFPn WmW$)=fA#Zo5VybWIS7zlF2(m`3U2M-w*w#g+3ozcsj;o_(91T5 zkPy7rKeV^6QSR>TYy9d2Xz6?2byMvBwI#uIg+h0MAcs5u zm@!`Jek=p_4w5)TfTSPA5*efRxF1O!fP~s;d^K4bTY~2bVTM+`JA8nX9CQ1AM_3aA zo{-~=0DmX9^CScInrm!o;U2s&d&E-)zRpE7V)wgX)gzI{lA}C*h!{-LY#j~QJ%D2**&LiztrB-;hy*Mydmi1R?}NdS5`;v6KNY0_GHV!YXDt6BU9vmmkg} z4VdCslMrgb*?5o>9!(4&*M2Xnu0!UNiwy&JQ-2U5a~-uQ&Dm-KoH4nZV0pBc`|dm* z4dQ@+FwX=uAQFo_^3eijfz4)S^|=T3kkS0 {d z@_*h8#BDr7w*5=x5wf7l&A=~6Lo`4mw*52MOhFhABAQeEf;>b+G-A*&rw}Lv2Jy^2 z&dx(LKqGQT+Rj6^!*M?O`H6@IXh2$)nFyYn5+|Ev)}Bnn9YiCN06iZO;00uVKH?6b zJR&QhpnaehSU4E&3RsV%*(xdn5P_ugzkkq#%%v>w{|VXo^Q;~o5c4EjdE5(Y7xP*! zAOxMQq7k810IlHvZQ_h8+|a}GSnF&^0~|IjI)jQay_E|WSss#$vmp&|*<3twO`Aiz zJg=9)=*xU94e;3^V!)XE^Nd7+Fxn*Zl{CO<2c9kGDME}N7u<+hm*?wffY)ZEQx$oZ zFmewc$as=2%vaLRZT}yuF;b(G4K67HF(8*gx&kSGn9FkFI24BWc?vJh0=4dzmXman znyFcIO|wh)!WcnZ4K^i YAWC|035V;CQkIF;BMOURE6U2ewN9OJYUUP_yq-HPyTu=n!NSb)jj^JDdhuDA=;`>MLWq&m-kc5Ov#2MnQs#^ITI?jwwR2QF^{_jZ|Ay pio?&1?<64$Kjo$FjG4-qteVWB%P(( z_HN(O*8U_DSL{$69r;l@e2)%sbiQw<&dW#K|0a}(lY!(ZjD0GHHp j=x^as-(8*TLU+_lWB#@me-DpNXM zHUd1TZl-+c)!pH!LK#zE4jqJl7nhf$+sh33D`f~BVYVr|Ya4B*jJG#VET^9c2P8V= zxofmj%MrECE#EA{nrl>Z-DUYs3KN5Du!+akz)rEF)Ro%_Igh;eKy#HolMt`Khy(V$ zPD)AIq^>T)Mp-?l3<1SZLXUaHLmi$wt>P+KyUW&R)z9c%9Y<&P_+55mM!p+JgsV*b zkY?NJwN!Dn+0D9>m6;sa&CzFQNqDS-q@sJ5uhv#c)3WeY&4AO#zo~h4%%?66P3)#x zSsxVLj#NT1%*xm5U7N2FlYl~O#V4)$AaY#j!Nd2HoBsfbSql7 dMSZPOo)6D)K6UMZ2(*vI#?j!| zzsuK1dDyniP;YotJ~o;=TH<#HOMJv(PCjwpv^>4vIi~!4=yy$hi)?y2jDkpKz+Mm; z5$-kh*uZMzP00TdzL1N=f5^8kpn)qL#zCBD54I#o$ZRY!UZ>hev6S+EAF4gK+G4vS ziTSmt`N>i!?Qfm*bba3TZgYd*H2wkSGy`{4Ie!1ZFONmH<5n*pTQ_w#l(G!UOxlR; zliM@@e je<4V$1Cyj480|>Ds%AU0kSPgt4CZe#{BG!(D>j%ZLao`hz*}B{+4rjg znusUtY8}{&76CUAEcCmka(z*e4Te|2ysVZ3e=Z~cekg-)lN79Rpre_n`g5YLw8;V$ zA{an33C{ozwlZ1dcl)Au+-&aoN%EU41dCgX$wl&B+z`ONV@ghr>e|MBUX=M=DeI8u z!Nys yiM6v!n3H? z2=NlCOUy&^jCn8@T3KXcjqD{yt|&-=e =-mQ<)OL>I3ej a(XZe+F$D z{VjgLT _!c1^+oJECe;{^5?$3O_!26Ca^f|rS3=CI>aaWM(zf`Xu;6#c} zZD3;F19LtaGS8?~CGkn67&;`DjbX~hFd4JCWX$G(@`3yblByht@Kda>2@Oc=n){v+ z0zc$%XmZ1IPjLynxKD09Q0$CD?%Sps)4L$c77^ssj^wPqb7(R!1=67Jf8aOHnv>6i zBLTfC&Dc=cGvN4~%Kr&@B5gtx`|ksMCjRSP)gdzLAG(*DvS|jHg%oqlGRUCo51-@C z0`ewvW(5RfGG`t+CTI^#yvsWP3^gHU-HrBwMv|p~4u%GXG3+Z1WHHeqi{U(nH8BA# zz7m!e{>LzGp0Pq;7Zb?*fBrv#6Il>jCEvxW9I8EXbdYL|1>V2Xw#0UBTi{)yB4~BZ zeupli1LKji4T$YgrPvk-U?vOpA(fI1bQH2!nYUX+J|^V&4!Cj~#)}DqcoA7ObK}ts zcOA^d>d(|eos4RlLEfA^Be|VP{srZQNsz?q3&;M?(cZfu7nh&{f0ZO(<>r-*$klxU zFSx<2wvw1B8~U7bZ0==`q96$`F6H66n1^nQ+R3twtcr#sLBoM6;XV+BJ9FWIGF^Cg z6^^~5h}~^A1Raa+C-T>Av7Z 9hda5eJEVH8DpKX zoOr{-1>URDv5hOmf5Z#|v$047Ss6lELVwa8@Rh)6HdA9Jhc5Xd^yb@|L&Q?;`;Iq= zcQx{V4Yk2~9gUc(&$VkOC0p6NZNBFLocbIU4qH03?Ii7?5wP(n5!NSqj03Sefi*yy zfG3IccP<4_0IbQkgnAbieK?E&r=h}Vo=r Mf`CNG&jA_NPCq4D4L zOx_Vfa2`*iJsGB0Y`LHF^@Qu=$*ewp!!^gIrWzuQ!K%%4R_s6S3aSe1&gEFgWKW`1 zGk)5MhpSvahO}tIxxH`Q$D$bo!INq_9+@Y$%giqk2&3Y1UXK _VJkSVr&KG2}{c|qo2>LWWfU6%?RfR;2haSypFn`B&}JXFXkMJUhJyj z1T8|;f7k?RrY>3t^#o?!=*0g!84eP%gaMobmK=JMw=e-O%Hyq*w(bESbXIZL}N)4IF8B}CrcuN z{TnNYGNN`)*pW3kDIa}9q+|__6>7KYhuU$+e+egN{LnNsHwrHw(6K2gCYlfnCmSch z2DC6erKo|2-IbF5Q2D##8FU8#&+b@Y!l4tmVrMn-jxXZ-WSZOOEhiHEecH0Kl}b2~ z1>O@-tqMPd7ZNIiCAyC8GO3Hp^kWT!29w*yk*Cvw^v9j6xwSY8ppgVd(^VrpA4SKr ze?_;=7_Tn5M9qLf>GpU@MTPimc6@baPhwK%qST9%K_r~brDHQ9KxS8`yKx*$h=%9s zrWXgbL(Sx|8V$75PGLt;&-fqBC#a(=T}j`CjGXTla0V6FF<5uGT$2I`g9(acaMxnM z@hhftAj1{(g#NF gRXJBe6{h5p>8*T)KYdMpcq zyQOkQs(gy}@cx2AsGSfSzEuGkQ6RdE!Z*@Ns`$=hBg7-R$>K2WsM8zSU6>*FG)HaW zuzZZW`T~@5QFwTtcl}r(IR*_92qJ7p(>E*R8p@?gF_7oVD@9lTAnQJX{4^ANe|>xP z$5jN)(2I_LYl#vYWSO_Fu73F~^fu53f`AK5y+;~ZdFVY%jDKb*y$@IalK;pkFz8v5 zaMBA#KS?b-!HcBn 0MpnDS{x*ls7 zL6(z4Yw@2ZnLo6E-4$+Y>F^#CfBR3V1938Ac@^ov!r@rOK@2RNE>FM6@hkcITlt71 zgrjq&z!*8A3K#U@nG$CNZ*n%EML~ad`U}mHH~A>CrY6@IUt|qg0+ir2wN`kY2VC{s zX4o??X!;3T6t`Q5!&*s5=qzYR>hEMF@}Ea)j$D7FCiicOymae+ynO%)e~GT>o+~4- zMx(m*KqgAk{P9RJBM1IOkLw=x#Tx9?L3}m1YNIegH?af_us#g?h^sdxJ >;) ~Q^zIXrx@KtC zvN9?fd--;l|Hovb(TmZ1f8=B6M*e7bABeYhv?VCDol4ykn_GmMq#FuMC#TTZdUpm( zF`V)gPJ5seJqu?SPzqCww@;%^=h9qoE-~1#8c(7?rD2Y+tT?SH0?B>K@r+`)nsJ`3 z$Qe)oi+%&d8`ICs-|;Z?&oBN{46gR!DR7tdwJiO*|2W~qhq~z7e>4Ac(qTsaD#LqQ z#&VJb5&lPRf@N}=U=Fy*K*EyM0O$dycT|@{b8=R%kUolD)kS($&*(K?=rxSI30W+z zlxfI_2~+RqHkRM$c8Z2coNf)r=||ymp>7U!UeUb+ytEjcB5K;6336`665W~m+xdUz zqQEAYb71l+?#C`&2jBkyIWR_Ilg>XXmy_24DSy3MNsr^k6~51}&@F6WnnTvY1v%M) z9XK$MNu~oEuzlc2>=rSSD07(}{rh}xDN0nc;~vN3LpQ5l6|3I9QOW9Im8|~$D!F=o zefR3kx0zd&ahaKHb$7o?y^XWdtumj-#`@LWX7y9_w|0MQcFp18=GGQAdTfSmI}S3b zKY!KhaiFzd?*1_y{N`IzUYu%NTqfD-HcjKw>!II#yfH;oA8<_S`AizQsM_sh(B8|^ zu&w)AK=*Yuj9uN!Y-nY}` c04dh?n91s&Yg;rejv zdp<_*8=5^X17RR)hWz7}5qDYic%$209)E2sntYrfnV^W3Zq)7luBGKinXLusOCd zIxzEYON(Pq2>RsW>?}F}Z#{FXAZ0z%hdY>Gw6i_jeosh4v}TpXWo`=+f=zr}xRr?$ zUkVjp$*!5GTx<(S>SEU&Gr-3l>Hv7^f&eEt9Xf%3WbmyuX>3YAXWK+C=}s=(!GH72 zb4>dBSasFF)M9$ywR;*Bc$u{jQWZrkloQyrL~dGS08l`$zj10_LT>&Hx$YTq{hVCJ zU?Y^R$2}ASg8>rFk}Ue+hHOOks0a!1E5ey$CP`zTUs*}@euuZ6wfqh}>rFGz$VAm) zBOu|7?yKa%2;~7G@LJwkw=%1kk8IMkdpv)LGS$K$&t97{JJ-v65@o@+Ew%u*&t|vTw9=)p` zY7ro;I?l87cWZ2>{AV7gCVF?;ABl4()ej%rB$LzKvVyotL0oF1Es;S71ouFPHv50$ zt_~W*Bw}Yju4%rNEtLYrD%jWwOvX-d7Cnv@?@W*h;~+8UA?!YVDmT0WwiP~&zN1sK zLbL;@bX7mV2l>QC-;b40oPs???q6sVE-Mui9Q&5&uDjjDy0R=j;~Z5@Ig7&sLD~3e zFzKq^I_O)KvXOa^7DZe-d+m oP&g3n!34Yj}? znsWr>m+GdI;X_;PWDomfKzfpNbAOs*=)PKa?UF&^o` 5Qg75)cAwps|IlM*{~+KI9R&pre@h;}0&_0 75(ga{KrdV(OAdga6YF+$*rWsw6!t}*yo(EarBA_!!gNfj zf!e^$!#H)sD2#jhuYRuUW#yg(XNrt4A~z#Y#;KE~{47(RNzTHjwu21TZHMeg@|>2C zHX3F5xviHJPLXrT5^}7sv_^l5Oi!VS0A2IYFt=#7ENJ+hBK ofhI)VG ziR6Uz+| (IKFw%-x^j`3Z$54uMR u>0|##`0G3(*`9b{M>2QAo<`2~;iR9bnVY|a0 z1Aj-M{m;XiqmP~HNg7MhTtj3sAA1okhR+p{X=>vH!!KV!G8*T+L%dmOMcYY}+23JL zt4}qX?kSxiN-DGpNdQ44GUCZa#ZkR>J*enS5xeqA^nJT0F(bcZcYuVnA-%GB@Y3oy zcxhk5qGk6~$^(C_bs(VqNzh?YV?K$RfRdhjpMcA}x?qlSprA54?$XfJC0!qm@R+30 zv0{urh)W^JdW6rAgLWqY)t?&btGL8So -bQ?{^$`Ri~0I%Qyo@^Gds`m!ee`7sh{v0I~xcz`1^jCKQC;g^iW? z+Uvv0*k@DFg7=}CZy{)<;Lmhtyl@cwXqLScDIYd!=!OeCj_j;3T9Tpz%`a;deQw@1 zH*?Z%i0r#TP}x?Dot1Q!Agbl;Y%v{=TF@F;rbqOjXI;`WGN`)X%EaaQ$RtV5&cnez zn^0KO%D#X4z&6>-v>D{xN~SwRSphVfrvccvJMFje!XZHSwLsQQhiHQ=1K0OUa=Qw> z&uf5%1k7A+#)n{w!CPdd(rrP>g2C 05I=It8 zcjbH+Nj6I&D%_tk+Y|}H)eFqc#`!tdBrJtaL_0G5nGZd8Dt+kWaK?z)MQ7I+A-t}u zvDe+w*Y^3Wp2l=9E#E WT)mSvMCLkR`Q`+ z&1tonPaVv@?r!h9rUu +p*qWv{}jH zHtSk;NqF}*bPKK{7>vT@ UwhzT_G)f{r|DI$YNU-m)y<%7h@m` z3RV}}1Dy@IC!)Omb! &s%$Chzn-Bo{h9NIn1ZVmG$okKk6>S2HE z4l?G`k?er+!%^Cc@~x}U4f+WqTTZ7+xTdW9^68Y|viuDrjlR91PG%=~)}JbBTE7n8 zEWlagu3H4Erq>SH$4QpHsIlTvx2IFx&aoNl&%F_ALPpo?*8>7c6>Fl08npqpXlbUQ znbzTnWP~&zyu=Zl&7M%vG6Oo%s&jui$hJyo&5< rKEBe2_JW=F_#ECMa$AjJDz{5CoBsI z?m~4K%7zKBh>k$ZNxiVezQ83W=ai16@6tq5RpD<5=@j`De;EzbfOPIT4{+u5CGXtU z#x5oqi`Q<6mJaLPxCw8w|MAKB{3QWG`B5j?FJB1=3X}hVC5Eq-luefOVZ7;;ORk8M zytrz}aB1I5G-pfJUX1kYtdf7p11^ ~_!adfOC+}E+yjJK)Q)A2^n&G jvD)lCd-a>#Uk|g* ^e~(Y7umW$GG=Wzgk$Mr>{I3@f~Y?y3l!kS z!-hXK_G_rZ49HE8n_F*FF)H${Pd6w8i ;E?|d6NBL1lh{lumr g%k)kw|J%c#&B32*luCA`*tD>USZWXQm z`YO73escTj&1bP)WnmWUcy+s7DQChsv#Z!8p*C)HyIFk~d^NPi&Dx|U$QyX-U{l=u zaQpXZnKz&5Y_^8BVHU-!wNhc`WH5;@@CDdQui`LEOiJ@Y*jk5?%XrRPo^!UA4NaP? z*0Wi+IBVrXXDs$BD?5BT^}CbqO*nsYksQv=1(~FwRSC$4*!Uw){u8hB5x4%#t^aWA zM}GX1JHJ=Pa>p;+@$UucWG>WcHtqqOsMj}Zr{ds#Uox*Gl(o)Om`3{iO7iA#tjgT? z1)U@c`hCGfLDK2l2X3-RqM&Z-_0l~m }`{#P8STE z3Uy>2$>z}1uuq(m$xa;-+!K`(*Yfp-iEkbbN7{o|icORFP9J}c!P3+7^WT^K9?lhk z?1r{_VDb(GNV)>_6|GO h8`7c zfp1?{9k=ji_>JPkRo5Jf`@NUN1~~hBT%f2Pa5Fx0X2T>NuRLZ}iVrl6RUf>ZiD6wY z6ncS^+F?&!6q|nzNf-2uOltULk9=W=uX(~yAAHZpC^kGqvP9K!D)_P?_X-ocqAi=D z1A&9DeLXT!JP_B>`4w%DADe 1^2BJ LG zbYPzb6q$_*cHHvfKL%L>_+( t}XP(@Y 0N1J*yobu@RTMf<7^d6Z>T&1S2=C8fdmMpwCo4!4lw3*jYw185 z8k2zno~D2P=w!YtxC^i*qY^MTlU*heqZNN>9qJ@`k`+)CMYU~)-F|8m9C0mQAa^}q zDreC$(qZDJAW#iHZ+<;ZGC-OMD;*i jzadM8(NeKpeD7FBbgt1eXd5Hwy zpL$F@&`*CtzSkMLwk?w!W|{V_5W9bdz!s9^%$yGL7Wf$F@uPbHWO3kORy2IIsEgKD zYf!i&`Ix2~-^w8+Sa#D5hb~OGO?EY`S_^(b{SLXKUDg(R${p<~tfKpj<4I09gn(Z7 zn-@f~1k7nPQuN^q8BH7-osM&6eixUWXR9EFQ7W`ETMA8T+amADyr2mR@tA)RWi=S| zZ?FPkJ`Pi3u4@gRJauD&=g`FYx#SF>o05Ncj=D*Wu4#Lw+TveB* ^}Ogmz*BN>_#y^E((-kOBzucGqJ00c#)&*>Zmrhlx_ZUivU$ zlIn5F47-_Go{9~Rfs7pqAabyk@B&Djd4{!ikf}%D2NiT`@xOl?Q?O^1Z7&k;w-p1Y znbQ(SM(%QQ@bDM|2YETpJ#lb`UD&l9sm=qF$g@BfqZo3*SY=rb6FP>p(7E412kf#A zoX3eNeW5^ss9%C|YC?al)RO&?qjLy*s;*&bx>JnPWV@v9XTnqb~N z_so-NY|jf(=sPUpt#O0N1v)`o_&k+@sktOv6S*+8FOb@DCaP7aGq+Fx5%W9vF;P3W z3mqKWqMKFdi~uz=q8uP7<->4PY|a*t N;%9=y z%URtCo5$I*cy$=Z>P0FVz`@4%o+(0k@jNYrM&Y}X{29;?PN||apUl#UuLCxf=+LR` zMG7In#tg9;2ryfpmuMqp@B6jbq=~~QQ R1TAz`v}DMg<54JJw>e3|(y&Dq~*as~d74o;Cu+52*WR;VcUF zW3z`o$tNv~pi ztVB0smxZ@E$mW@`m<8SOah<|+*~NsgM&iSw>`Zd^EuUn18= zZe~sem>NIB@fh14`gBM^zI=;^y#3 $QHYqJCrsCs_-GMHc{(Riv`8T`n}itDS_>=!xT!f6#jnNf<+F(%YVAKUT(9up=| zJWqeD#Iz4ogsVP`;)XpM*`i)|&CupoQ*ZhdNNFGb148!FaXjXuH*CAu(}_HhM(Eb9 zkCpH7E1rzAj1it s39gWRaX0(jdg!K4zi11g61XKO
?Lw5WMc-q>1bR?fB_OVsp+O0 zYoJkRE>i_QJ^eWavY)E#`>J4?YF6W?ZyG$6yK#8S&uRGVV{aOtN>})8n(HxCy&97Q zSrvbE*_
S3j<3L!lPx>|kn z>L2`nGN<9{vm}w)s0|YURtj{?g4WGH7d;H;Q%kl=V9iLeA}U9dq**i+4ggnV5kiML zwM$>VK#uBzTqLT z0ymc9FkZ{J3*DjRZ$ECs#$DK KLb>6r^UWA?h}nX+o>N-d2J%(4T+m~HD~ z;CpSDe5}2PFT*F}%h<2Hj8cYAsT3%W`~A?h&5B7q9L*2hZkK^yR-kUU&QPHS%O|V= zB8?m0RTG8efHOW;{aDo1{|YohUTj;C>3l%D3&X3Xgx%_KQNiwX2_dzL5`SS*6LGs+ zMV}LYeR*|m(!Y$Go85^ZfcWG~7kxL=#>Q{T>Tg?XQw-a>9qQ`t^95-DitH;^R`HwN zg&PZS|2&UhkL;$`G!oUQjbs-^Le&5`pc^4|)1uQE69-)(Z3#|y0XG;FZi%Hck>(B^ zOs0YT6ETc1fQm=tx3H#75PwB7LJREhQ7oXuU4 B z_6M5Q5FnJ8AmKi&N1li@hShF~enu#lYLRGtdZV)4Y-|4srl=fswf67>`_xQ 6w6L#GJCLwgbos z?9;eBel-@SQ;Qm68fb5^n|4IOl2ul90kQPN90T@!tZ)^Z;c~$!oyb$kQcW*QHIUz; z`(@~Uuq~O4qi~DM6@Sg%wjkaWz2{aP0IcV3FyV~MW}3L*1_5Rn_(KQ<^%SZe?dhOj z6 2-8?<^{UIsIli4_V{i$|C_#)KS9phgE by!sW2`(Lkk2X2FYB*=nqq_f?Z7R@Y^AZpxx&x z9vk)vatPqDLqOv^qB4~dt+xBXy|HItfhOA8mj?+rz+NNNdtMC1C0u{CckDFD;`fP3 zZl1q_k30)6z<;)skKwT8)Y!C?j{ ??4=oN9ZN=)CxW4n; zyszq-TSdKT`!JyN-B46bz2jByI4NXa-)=mU(RDDL>VGKK=fL4SuOa(@p>z=#2q6Xs zvE`+JVd<#^?$<55DyQNNYIW!j@Pgl#4}nQ^z_#~^N}f`z!kG-$=#+U& zMV1^Ph>})-pr`2YmWP~xjDs}5Oas1yEhVqYk)*EaEC$e&TqT@rLfRlIi^+T+A~p!D zgu5{ysee>Bm7fYDq%ro?E&!BB5 jm=)Ax;{_W=!#$pD_K8DJ)f2I{ z6r7e|69DQM!la5>u!e31!XLTQ19sJmOGdn^rgQ*MmQIE>K*L?aPq;w0L#YuGnz&jr zl|+Xd;K-12&{EC!1CPMyi69MgF#!bLZ`kHJ=6_Ib(pEKDA&~E@ejWC0nO8!ZQ!VhW z9TT{yqa{L2yl}JNIgn} _vv1en1z#kUtb1i%{br0QMfC*e}RNWz692x6EgY1< 7KVQHPnq5g&8dDgY7k>1NQRCqu>abs%}EqC_>1V86=WMpI!`O z)OTQ}3MA5SI=nd~H72K|hJ4XldMcne1Ea9`<7(9LTLKapZeiBZqXPB!(&upus5!VY zX3T7&b;!_rI{YQ;!D!R_fb4JZ1ppNO l;waAn_NR-?~qq_hsSb&M`7K=Y6;|!?EWO=C5 zrkN+V+4~d36*IYxJUr51d+$9Cpy2Ug(VjaGY;ehWko>LA14f+cGv_HuoK!zR?SH@B zkqZT%aY|@;<}+ZHrT3)IIZZ&h&bKXE&U)C?4_dj+gwE7uH~Q)J>W?ebSQ5!d8V!*q zg&8@xt&Gae)w|!5XaP(>Y@u@(-P6zwq)$?$6u|1}&DFp8Z!x1l+ {e)&bl8;kwtkC==cr6s*JU(y1 zqe7{9y)D~3rST0~QC8pa$@|gK%VujU8m6!`tD7oYwzxet?2qDle!aD{XkF%ciEM5h zd~wMK!XZRa$YLWS#G%k3(-Fcof6x&r`(^^J5PdLdF_?8dz~bXJ2vyi8E7a+Gva$6` zHxqm;0GZtTIHc)hvI_VdECx`!VQTjTwgQc}#VSK4V0JW5Dob-H2yFVw+o}gfa08(Y zAr+8}byBPjKdR-Fxtv8xb`xJt@B$AaU_7TE_O_{#2}UwxA%8q0+mvO#e=KjGuhK0- zqf2)es pe^D=3sj8u$k-c9@#=wP2z7$1_) z%QgNB1jLjC&{%g1SIHh@VoKGB#l5D>wn%deQuvh4FjYli&$6wmb(Y&l?94*wKHD7e zgfbJ#J2lI^tR@%=kgVfwe^xhT3}p^T?j3b|j+5jNx4pg02i(-|zJc&jkuwugIRsfl z1Rv&-2^~E)5yLVn9#lCzrKbPNuFBocLI4-3O)-3pnb%pdvh=<#cYd_SNlDXIwqNRE zyXVs>>a5ZcGqD^SMa7`1F+V~D$DF#Re*_T>%qSsY3Wd!1-p@I>ez=9? >slf0u&VHbh;Oj*wb{1DBdfX~s^?0E@yX-?O;tc#GgdnlG|2a&=)e zu}T3%M1kG@$?1h}y)~PvY!L)VbCFoTex{qD_Y3>f(>R{KDxCFm%%Y&rESL8>$N2@K zDeB?#@HR_G++6kIE58d8n`G!WMzuZ38(S3+K@^@f^Zhi7f0Y{V*OS{}8Ec9xH}ZL- z_VmkJQe5^4km=Mp?k(} sDIFgpH99_`u 8#6caG)9nm zgN}wHf1H=zO?KXde}rS-PL5LVQ8?|LpBsDo`v!NkIxrYd6nq{)1(0UYhAPdytswvC zIEW-VGvUBxN*oRH(yPmH8$x&fYrFe&I6duNehZ+3`IlApC-7Qyo*B7ymo)plZ1QY5 zaWt2ae#&(L)B@-Lz8oezfY}Ui^UtjV65S@XfA!tP(ovQR6qH~7*eqxIYzE>#9KOCJ zTAvY+oKObtwjD{$Hfd-ktnulOL%lu@qFvHg7g&TBOx+mktCV1fr9p<_iEjvL1yM(# zg#_1x!z@Z6uZeiqAHxHR^fgFQE9^#{K!j<5v9@U|FB(kvAM_ClIQ!@TZ0{>)*N-f9 ze{`?Fl^W;oX=m>^tHb z6uYLDJX?X31Lj7AVAvhAVCt@{o2h1De{hQHHXcFyZ)$xUb_`$#>zs#=^6-(!yaV3A z!w!cYhBaQV?f1TkZ!mrT`K>0%12ooI-PB`v`?l@mDh^2q-rUx&j(X}a8eYRF%|Htd z6yfE4g8;p+4d>9R^j*8Zy|&d* YQ};!H$*!c$Y`gn03+h8K5u_3rk;V0uPL*{)CU zcmp6HnlT%}uAK^x0~U$XKoZl^O~6F(;4NPen-hlej5$XD^Ot>aGB _Nz7R4uC`P~+qtgy9rf6hHP)GT&K zJXAM)g1Y}`@W`EY)n=6^^^~3=ci)aq^lV}IgIXE|DJ*=@r(?Jbl}zme=r?eP75Z}Y zpND=pA^QyYqkx6sCEy>hJOh7&x8~t7{H0>T$Y;aHcZT2TcJ%#NDEE8lCwyJ0VZ zS9zR2x|MhE@4s?cycNF>e 051Lhs9=pt4hyMfRW0x}g`|+GV@h*vTzY0gHLR zM>X);r^^Qe5Wn9m^I!m;$M)xUZ{B` TQ?GY*RSAX^AKKg zh8&WMv_RS*+X7u6NU}h8gP>648(WAh8MeHM`>?-#&rtMN9M{*9F1A2o-YfCra5$Vf zGo&JuaV9bw9}>!7s4&WC0-hs_iCMo-CJ~-Fo16$`G2Z!XVhF~2LCxTeCzmHNIpf)( zPQZgWj|VXcKH*Qq2tF76DwD= n@|X& zD>#RWQBco2{K-Jz6aFL>osOP#N<@%`){FWT`bs)?tydIS%0`^1fV~lj0}o^{CR$)T ziG+#}jfi%iqmhgmpbwLr=ZP*$@&)q(+{6JQL7~u#H>oZjMoYks2YeMt2M|1nj*G^B z$!ncpFgt}5O)4o&1WT7a#3VqJJwz=Kc_y@orQjjxC&{3Z_ADkx6+wYw2)>F~jhykl z;L}_n3-Qhr$Aq2*5176#OVMQ$Po@Mfcwkdha|D=5BFMo !&68+5rP6baTpMFy-O-F(t1UIRICwt>apnJp@g1;_LuR5rNp;hwHR8U-=*4z z=#$nbt(8iiNY(YCEg?%!9-BZ2pAqR?pc O$^pq-MeJYF@LhZ3XbcJ;j zF|^)@ZWZR7CeNNty0;f6z3HAWm#g)pdvpF_UEhD5FF#GXA6KUb{pmZ0J?q|ocRzQ( zbU(fG^<~n%?q_TB4k}@FgOE$MK `QJvYyuneL70{=Ry XVn6566;|^ur+K6c_< ?MM12&UP`Y)cs|BOU<}i&dLQsX)1lx>4&m4MjAD9uY(jM*z=g)t7mW)@2%sDBeW$ z!n}(?8NzGR{r0baL*8UXeTGAyVwUHN#rw;;FIUTT9pELzpoXxvdZ{jd6>g%v!1ac! z7kJ&WsfI4PSEsAln;sJ}-K!TbP4~9{vNrE;%jVVeu%C24VWfV!K7%(@5xiCjoUP7J zXZ>0A%Jrjv^au0lkE<`H%1m7i+%JUiYI=&cfYItzai3vSB`k_1Hh@Z3Hf3&Q*_5%> zi@ufAN^WInWo%{ZFSh=FV(Txq{-pIMtv_k~N$XEqf71Gs)}OTgWYgdK{i=~fm?Jnf zRU`Faf)y`us20io^;!a1#+n4^a{!Z(2&cehD54P@8ig@r*fHe8O4cn)7$%=MhSx`cW7U>%^sw EZ7KU2<`x&5IK_4G>tS9v}mAsWRwMC-BKWq5rjHuR2^*$JQUFgG%Z3l2|-#_ zA&o8>JUb7T(Finu4J;oFA2O0`HHar~g$Ii$jG)ubRb37QCR^W&l{6&uNc#s9a<& ZxS`l!68 z#zBbizX{{#kE_)h!}a^L&(V4HR#!j}glXV45Xc^X^@9rZ!i5b*1tVk!0J0&`S>ypA z_iM pp+}Y-j7~(ymSqyOU4&-=8kl{g)@ZBTNxQrydr ku@C?Qh z0K4sf5fTE52qqRlT4B@~bUy1l)Vid&2N7PZk5*?B_FXvB>&->- 3{lN01E Gf&ex|mp()SFX&BGBTbFBH0rT>( z!hc>Fd#&inY{I0%z`78G(v)G9BT#sMA2m~68bYIHLk~Ihl-%7t@j!1{&0l`QdhuX? z7ow+EExsmtW$Uw$(g<2ZyDvh9h06d%VEdwC%9`x-HTfCu$)R1lx; eU<;MBH3zs2E9ex51|SE~-43&l;f6jDX+iEoHZVu~%);G;^Kk z@ktZJfwNC%cD_2P^6`kyp9U$V%ia8Y-%Y=FJ~;1oUru6Y9gOznDLQch$KbynU_EOq zdYv~1y&!reVZEJM`0*wKG~;6r?>OsknB5b& b zCrt(A%H;~eK)q~QGXK?o;S({`gg~vNo`vW!EXPpklPiyx{$l!JzDd6<&X?2meD-wL zl$KrqD~_)aYWmXaweBquf+>I=Yoh3z4o`U`mEoN8cHK>SgW;+(@dK5w0zBw{@WT#> zZlxD)5>&lS&wNQxZ)PqAg?`&o*A22;)HU$7)Rh`#rAzABC?_?4%1VuT@@1J@*{E#0 z(J5_$(yp>@OHpf*SMRiWZ}oR9dTqix{S^Y~`&LA7eSTOs2LhqRe5aJ(Mlbb12kN80 zHz;H`zrWDe$Fsrtr`_|W6rlh0N)mhzBt|*epj->i(r-Z}?!>jn2OkkH_6Iw78)Y>x z(~%I_O1;z&H0DQtnf)FT`0Lqfu{!;*+Tj!==q-2s0ab&Dg=N|w!d)duS(6li=YmBH zVi+DoqsZtZ-nYxzZ+yg#+Q*ct)&&?=wGo_j-|8hEtnuR=@yW&Eu^PEu&k{f&3E~N? z2amB{DbkDV0edA%_&)}^O89gA>E8yKo#eZChmD40Qhm2jyjVsFMYIDwom711XbO zdryBh$yQFdL?x^B-AX1_Wa%ogsZiRk*4x$3(I+M2t6$dt7`NTLRc^XRiBx04FaG}6 zm35WxudcOJQCYQJzTf9G#v|>fDUTf;hnwx}lvt!P8_qdCb-TLiipO8W8RGcFyXJSt zDR!m9uDiP7Yu2=Og(GdMR@X{MV|c|IKVg4`#n(-SKk~MB<>xDvMFscrYRir9%70$_ zeb>qwVGWLyQaBqJw7$x8RD3++(TuOx%%p3HA@%$Cs!ST)=G}$}-EsF*tj)eyU}~m> z&XNnB3hZBCW*Q4)vl%bx^u8^)QC9rk=Y7T3m(~5!tyZLoy1aE!f>1c6MgjKKwrGEt z)jHN9(|XS8pUP@m)71~{i`kw0E_R#PMH^@@?quC)TCdDT#!%)f8GS*YV=FK9S#`Bu zW`$G2IX&b5{Pq-@i3>YoyC>iWe<~}xjFmTqWo n@I6c>51%W?&W_xhYbfF*wlw3+`#RAIJfL}muKl b_0H0{cbVJuR!girujKkozn6f?LmzaNB)R6;0k1+hJ~4r=zB? zsuJQM*--yoph>L~;ZmKkQe+~L3bKf; ^T@B!ZM!OC1sc>AvqwM8I<_0)GgJpb94}@n1_LQuh+}r_Zq8Ji~r_ z#(tt;k^Rtf=$c99%sYu;+dY3iCkAs8!?jJ~=zV=4Yf9zJXj6pUmfy$5`^wMdmbgU= z$%WI5x1k3w2_7IzZNEZ0lQaZ1hAfJ4jvJ$?qOJHqj*%(pTEWT@NS%Ei`!aG^I5iwX zUCpmgv5l+zP_*puifTK0xN?by(nw)Wo>DFOQlaH&{Y2z~A;d!JF-(8yg+maU^mqt} zlwf?4>gcB(bTC8%CbQcS&ppB6BRVn%8rbA*0md4v&Us`KM*^&nX(D7Y7*q&Y2zA9V zI3LJk8%&AVoxm^W$1v%IlLn!uQQIGn`;rBofQ-E3@x1Tq1MF}EF!jVku$QpOQ%j9a z-897}Y@zTr)hq%YZQ*};39if}?A5{~;UF|dT|s;D!Qh|)T6%kxnaHaZri;h?aNHA< zwDF8x)W!*t!%Cx;W`I*2z zw_f^AC!^b*xSYi&he(}vSNHoZxARTc2VtStkUw3t1`VK;rZ0cRTR;iPIV}&naziYp zkes@xJg{ojP1lBqoEc%x96pQM$M!*Id}oFqSYdo~2=e2;Q{>lk74ayIjT2}aZ1(Nu zeswwcqsM+zAFtwABu=d~B5k15eF^tnOTw!rLj#UH RR%D#W^!T@rfq7ADUxiz%HM?spe!v#|Wr@-CRB`=CF5S+4;U`l7UJEFm> z4|PN0#P^gP4<7Qt=P0d&O6}a|1btH`j_#WJ@IOjo^)q%NgcG&{UHz>9?7O)S%H)H1 z-4r)RAF{pdiIv6UOgtRljMRwD{ QLtPq5OpwI2~`}bgLnt9zZ td6`R z^`4uC+I@d{??pYF6pX(lRK8&mfxSFAMzbNj(?J!_1wC$-MAbfl83)n{V;E&}zA-B; zz^|OLG2cBhXly*PIrBU?@Yr&5Tafw$gt_H)p|`Jn*b%|!ni&ECf6qY9+bfquL(-P> z%S#@^#YgT>sU|T zu=+!yVi1BO^2 zX#m9h0m&5OY7sAF0b{jgtPspUTf(c_G1QRuYUuSDc^a{O{1BQ4KhY_;)0PzM+fEE* z!|5qEcSHZG$&YF^;uo|Sg(~ZFOPcW)90||xKuCiD>xfzyt&%gNO+@U-Xvg7?yss^~ z{>Xn#E Fdy8F?o_|euM3&k4qA}5I2oWz2Ab$9tm!f0YOjL z*lDuZ17Rj6;!KC;P7()6mKafmnUmIFW6&D3h#Z Tykk96^S0Je*}Px&L-Xo9hQmC2GZD#qd%)d;UHz)3k{HV`yik>J<=3+ zHgxH(tio+UU1`dj 0W!I> z|6BzZ=HSA5pO`o`@d{3z02g&;EJ=R=Br@|-pX7#=8x0OwZVIw78a{A9a)zoJa_&M$ zBz wb_Qu~&)!G{#3CwZ7LcJPHX@!_`T>K^HVGBemgOHYQ2$%m3yK-+-9Zu48h zlhg}-2`zSjit35`Jp-B$q^Roa$vZ1a9u90L6!-7=JtA}JjK;&YdxUV71q^> h) z3gxG^r Vl?zNIszzqrZ0pSpIfBQV(OPcKKYAJ+udM}OKKp?eD|^1j&J8SG_ycj= z-hJ^V-bU33Xa0|ietc2$`fuO8nJs^_e)ZccS`e?~N?KreoGcRsyLYS2;nmN-#H%eP zp`}8*Z1v!m9=Oh$5ZvFd-oN@c|1SpG0cB|#{ue_BAwg*qp|W&RZUKpUljeouf4GTK zNKLugW##gd)aF+Os;9q7XX=zXp-(D5^3=L4WFU0uP#2;$VTi!#FkAQIl$ZK;M3gWr z7{OGeA#JdM`*_!t|72@92sYdvS!o0J@n+ oHG@!HRDD0;vy4dY|ZQz zEuMiD^H85kks e^JiWj2TtO@PL`@$lTU|Nf7>_`zW1;2Q3hhR_!7mrWrAdp zK@PJU4>mv&EYuQh3oT0?J*L|j%zvLMl9FXvopxrj*~?zqVu@rG>+#h`b-36r!o@#s z!pZNC>zms*kyvP=BNi>zn+1(EiNkmiNktf!i*>g67<>wuTz+2vG^~R~a=a)cioy#! z`EYD^e^uF<$N&7=<>`IXCUr|-INe~Zb>((gQAxD;Ryq&a=KJW}CPiWD ~$}X z FLr$y`{e;^lt@A_M+zu|g z{bFFGBq8-~`dcYa4o7Dj)1$c&xHKA!dog2uM8a5K?8fG|Q {W6jdPs7kq;pHRU!hP4le6Z&edrn-^cDjs697nRzDEiWA1 O03!Ar5Xln|Rb8E$ z+af^>`tE3ywU7VRayV(q%jW+HFqZ%r?f+5qn|2ORRw5!X6XzOUZdy|>S2E^7yEFJ8 zKr0u8Y1|;Gm*^(@46$yJfMhS0t4Ktr70t1MS%0nByWxJx;-G6 3Hubs#|=FQ3mG6cgZ(bBV-)|9CsV26r>HQFI49Sp49u Rvb~+(#xD II%g<8{yQ%rCor8G zZz_*8B!YW;m$WIa+w}%ub)Agan$pxsfdV$&$<1nZRaa#0xIh7EEY44RDzK0TX>9;> zG8|yRx?e2R%e09F3E7Z`cX@d`1A8n4u%K6iF(3iLz|20H$WtlhbA*S)dO-awuYXP2 zR`qcSAOIBxb??gD9m|zDWJ~QNNefzm_xs~k?l-mA1@7>ZoC_%+Ig|R_ho^+*)J6_} zPswHz3PtA$g_5Let9{buDZ~(#fWaIMRy+>gpz-}?F6kH#iPY@MtiyGq3gJW6;o~S* zusFa$dFyL}M}#tUe!{dm I!G9usB9WK|4|&PiEuyErO%XtWnRrnq2@A*QID>VZ zD5)>^J|WY!d#{9MKDphq&uKWVmV|PC-X6wrBCdtPBse8xAtbAPuD6Rz;lFH?Wx&=o zgwXmYhHk+i%_HhJzhE!mW9Mq-;MlELaY`WX+#0wZEWtu1gICr5kQWZ3lz+6{1frRC zds8mq0h1WzT{BGi*?P+-kchz$3$c+@;{;NWI%+Wzf0!cy3}}Xmz*#ZjaPzbiM;2jU zLyV`~8V0cC3 G*>#l^LG4XY8{RbX?wDqM;;eP6AOampO6I5a;% zj|Fgplq{!azVm4}4jGkD0Dq7QjD*sk@#S252Nx(bd6=~xOup_Yz6o)`NF38?!R-%# z3wMQWZmQoKXr!js`bl8nLr=sTwHso~fI3P58SSp84n1_qXz RRprK* Cb~`;V}GZ_q3e`A@o1bd zGYCq) YQ%jE@&SC)*@1 zks?B}uls$`lp6W*NeKllp lx zzuG*uwvm>WgJ@}u!+%cZS3T@Z?U9y3@`^A%kM P(?66|o=`wJwENh=H^KKJg@0E5@|QC#QT1*#5RQFu*luiy;IAg49sUvY}6YY$!P zcE3w(3g7p=DI^h(rtEZx1NYZ1&c!9(5@(KpJII9bz1<))jDLfpMb8cgaIV5SGxA%5 zq-%^5q@zRtdAm#6{)JPO;5FX9E30z#^8Kr~cEMXGbM!T-lhmb3;}$nvU#&Pw{06_2 z`JnDa&$up+a55cy;2ExU!#=t9e8;}&YSa748Vxi2(%Q*0r)=D&P@FgJ_fS_o+F<3Q z2o8-ozJ;x`AAi2|@q$9AZLj?DSM&*U8GXC>#j~|Y2F{3V^DbE NSvo}y@U7@T!+ zn8wLVV`jhq#ccdh;uGZpVtz={`($fAuIcCBHwf=#`o|o{0^$d4`?;$n9*9o3^#;jdxS-JM zfthIm$B76O<09SPeEb|PGI$BVPB`GvgPpp!RtVeuipBezf4YByf&1W=uavVhqLu|B zyeKNhbPpWEfn#X}v=lGTBn~Y{h=GjRY445wkR*IXO9}7`gxx~}4mW-uJ=zC)EW*C` z%)q(f#y|pGaJ8G!jOXP;iuKn}(CaS*8ZHD*u&Ml;B+GJiqlI{hO%y7=XwJR*L_%}$ z4zMa9qJVxq0jAS<{0XC>3yPD_ofMPmj~169bpk1qDUeTp;&hX#ERN#M)$K;dPNm5v zc8Q9N+g$B7KL$TVI=uM#>hI&S%QsOrT@$IqzyMADzS{ZbVjCrC@UG9_ #3>is;iR9mv3=`LdGR5?^S|BJ zRo9+;@jqUFIma-}RBF;;B_fk%K`m(Hd}>=Bx43o#gHG8n+HAE}nG-6MhaBb`V}hct zehQ7f>zlkQ>q;$XGo$C0iL=$2ifsDF>1nJ9u04^{1pYz?NKs?$grYcwD4GluO^Bih zuVBS K+mDhXeNj`t(eHATWp*Y{mqR&qwe4ZQdU`JoeV- zUElcjw|C_ox4ype*QI_AAlm1Mcpb_9lu|l*Dt|PpFIPtU>y^J-60nBDE?>^>EfUy(w2Q%9L}_FsnYH z4)U&TJ?u{MZX+Vba5fti9o!HNy?~pt>%6S*YF>rfeUJ&ctj~+C&t(VLRYXn$XN{R( zyFluH?DGaz_@-qY086p=&7cot2++8+XANP?GF>{T(Z}9b#TvOHI6Xb{=9gdIu4#-@ zaW>LaybY)^5KuWVAKY&4Hcx^7B7Za$cW^D>pNxvN+*RwP` 9#whoB2~>j-MQJ%I6%dClEu0l&Q1S|BwD z9_b7&sPdysB;yN^>F8j2Hrq4=9hviXkPI+gBrW(oHDYyr+p3FglElH)Ugq$8J`no_ zvK||w5Yi5L+k$(gHtPts&}|Hmy6?C%toIKfwJk{gSJ2P0L7{+dGwa+IO?kqlE(BVC zf@yuk NZYMTf$hX<1l0_Gk)cF(1KzqQJo_%3va5MURd)>7=c7rMeLI)oTx3^bP*67*71&tpUo1AtCKKZri@}V8rmwg$3tt?NDK*c8FLoBb zfZkYey6CNOoAJhkK_e$i+=aT|H)VCl&}j%8gV2;+-Au7d2s<{{F`TKB`F*EwBg zS@O97R}2Aa-_=Km0t;3x1pQj(GRB{FUpHORcNi8W6K3MrC?wdS&^I6BHh|CtaHPpk z0wFFyV=8XgFXf6Bf?2c3J$7|}!$vC#KK6Cz*P?2$yDl5O>R(oLJ5#Y412#5(5eA1f zVtmitTQ*u?qag>7Bj^6`&nhy1#Kal+v#Ad RHkI(W2JaW+K0 zIQBzX?f7=B#Q0GJ{(j*T#9~9}#X jj+cS=lbQD{ zN(Y%=fPwF1h_xK&fashktAk6egb+4S@zW?=`G+;@9z%wcxmhd$gmu6+kuaY79k7*v zxijI2Ft!Uu7Mo--u(3>d(&V{-*ewELTwTj9Ie)}9@jb%{=3t7_QMmU!A(^vcmJb31 zJQka>vvrtk1AhV{1?!SzbQ^eO9cSRg)9Gs#xC^sMU}mT(nNev-&OFtIr@i<7<$-fH z*-~4j&yTPBt~-5sd5IMw9jLa;ix2*x*yq)qS3s1@j{xp{OUd1(OA`}a?(6$4B#MwA z*ZgJmz&6OZ4COcdA(!$2kCfFgKWD&gNtMr~cb;A!tbeOA4x*e4C@Qvu12zank2UEN zv?%<5uRORqJF?#e*B%4_jN-M_duEJCl*RZYR K!Va5FAk?JuaD_L>iwdLB$n zu#Bj|IL;i8Rmo-oycSF^qKs`8b@%z{#MXOq3ri(DIZGWnZUS^SHo5XZ4ct&RsHL3Z zCU16Ybbr{!;4Os^dRo~2T|#`%6-5iWMOF8f+x*~Th6f)*H9Z-lfB?P Whx& zcR5J?2gFEny(39dfsj2f0#-G-?2dyV9T;`FSaJ$NYoB*t2nuy2c(K=^Q}$9nKwCXg z9;s zWRu>V8Ui*jmm#18DU&0fQ39##lXjlZe_d==+E8&Qk|Y9MIrjRg9g4ns7=?XrY5GQa zXFq>)snH!D2E84pzNPQnw`Ez4RoCV<3eISlR8DOP!@%B1bDS{fv$4aF-&^Wbya(w7 zKA!0WXs8nqk %eZbeO4}mPs?g83J*W#5*IN<_GG5c?o4EJl+8l)wx zzw;S1nAi1JKmIoMlfAyn>%sp1(}5 eof|@H-;cHjL*jk&k>_7%y$K40)C;W5+j|F5I*NmT zcB4J=!10nJqp@T+iMQ~c#3BWWJ9syHcsHjN`3Kr%8mk&W#SXMr0c_Oyz&)_|j;1|; z8#>4=X{L0yhAE9Dk>qVPe>605=WdS6r?G4Dk#&$N5k>J1!V9o{lvjcVdq$v?0a!61 zGZ5E?A7}pdFhKfAQ9lEXp}peBO5Q+4CD)E;7$TdZjk>|^<{wCVSq-?8_l!#$S3!;W zl}2P*dJwQUUCYE7xR$AdaqQdwP8B_xwPomj?qD*EKwRnSF*!zwe+U$-XBT_Ooi=`T zu#abU4 N9d+ge-Uc6g?*(I0v&%jAEl4p4j1+Wzi=bZt}b`(Lk@x70OD~DfeyMn zeh|u}!8cDtFYVoxb4qY&^x^TE41Em_Dg>2e*$e2P576PUs%y^-LcAkxd{WMcqzJ?K ztx+Is8SR3b6-q~1?fnRe5y7Tbep{d*_PBWyqLZIDM}4@afAwoD5dgwQA_3Qks7Vz3 zyKC%NK~RK}(I$BGK_ble0m~W!_ ;P1)Bx|2XlYR6XIr5$ zCoVXHc>@~y$mj L4F*e>yOS3?RkQ^| du>N`00pXpu!TIC}6oxU@Dxf6bS6wnF!np-?J*@xCDYjhpJ( zO*ID|@UeDB=r$~% BX#Co{Ow_EvvT!9Lj(m8#!Kqo*(p2r;ZrA< zD0_8Tu)^HoRFWR(0*Gr-;ACDz2;f%|HCwhSmWx>$^5I9i!Xyk>=p4*MF#=@nK}p2$ z7UtVcf0Cm-Q~?RR<_n^Y7yn#RtCpMya6X^v@kox+Xpt`Ok$=ICjY^v2K$4N->pzcj zXmpk&XMFjbTEOmEwu8<^z7dDZ*b>2Pv=YT$xG=B+d^*=GXdiK49c?^!ICL^awT?N< zdLdAWv`EyUG>m6 >4+&S%&zv70=s8Y> zPWNf*k(wpg!wjp!Kg^+sRK(HhCRkmw>1qxbnte>Lipo!ukH`jfq7Fk OOf6>L$NBH7`~&FCKL7AE+V>(a%b(XW#w)qt<*0Z9!RPYCA*%|IbSwl#I~syG z%DmvFlqyro`Kv>hk_ISf#zG%wqxa5(e-&} yeAk-=cJn2g~E42oAVF z5(3L4rVt!y49#!@4b;YI2By)VO9G*t23K;x8AH_;estW !qJe0e3HNZ(%rs*+Dhu3Po~-@e_yHQ z f93N+BIbjCd-ESI5moJ`QUw_K1ZLfE=K7lJSWB@u zmaAfM?0m(Q1Kl26hywMl>QB&b;O( N*(DLlSu8OwP!*Ri1~u zAFE=j^WK*!Ty{5fQ(ssjRAe8v9jZAUj5vj*7_S*@O+y?HOao6ErdzV8e`L0(Kew6< zN!2YDy`CF~357}a_)jVvb53Dou$2lK9CLV730+jCA(lqfxBN=r`}SuGwQ2#UA9{=fj!IzQ zbjxfOta2%aE2lnkpFJ*{e+|lS>4^Nc(ce_ic(t_Dt>Lko=n=rJI%*e3g3iFT?1BRj z=4<1=b1@ShAWd~b7r&y>-%rg_$3WY?bW>d({Jm3cvl|^?QL5{kjYJp8n&^~*uwu=D zgi<1t`bf5b7$*4a%N6PCzkbOz%&)I$m`8D-nTbM(&vyFU0b>kd7BIX}CKXAN(b+QE zEcy24)&Bu;eWxCiNT@0SF_Y0`D3hD0PJb%j
<6{p%xk5m)-dcgnuDn zO)kcD) TfA0E+y-t#-ZXZ+@eZxQ9*SbCN zDxHLbWAz}Tq3)~WntV2dc-SX#9z8L+iHiO-ohzV8qmfs}E@WAqi9DSp-S1bn4VhMo zWF|fr$ibCm(=rxGthcfi&CosUO@C^m1E>S^&XXD>X?aNE;Q-Wd=27>|--18?X7`}+ zu`b6NCKANEK4dxqsk2nE)btxKb%s*oN?W1AXw;2cUXbs2%W&0}O*fE=wMG@w_qVAV z3%VGl2ITI)4vym4eMkP59p4SSOBQqB-?SYQ440y;1~K2Ah}`hiA5k9kg@44VsQSG) zUz!Sh)XE$f1}k29=U6=#Q#10!>juYVM`D4S&=ft9PpZmkM2T?rT8}R{(h%y!Sdp_; z?#|hv_8ZMu7p3eHd#iFXS|AveFv%Z?>Qq=zw oYxmEwHe~hOM$>@77sv@#03YE< z*(WM-B0us+2Sk@iEOb6+tj}>0gYX k2Gj36J=Vk6*M|vRZvbkE%LzKkJ$HMV zTal<6xdL2%H?zs}z5ebER?{?Hv-(Tj9y?_3bpXFKN$$MK=wt~}aDR0zG!N=_7>lN% z_=D-tvHtzh8%9TPM~;xNb3vL)jai&4#IhFYQZ8Qm;^K_oyBKvbTX33%6k60xacC;k zEJfs8EaCEOty>G_00IGY48_E|jFR!~kJcPZCGPTS0qN^o#d`nr{<%2U&Gp0M`=J^J zFfok!3RKpQAHIYtnSVAyE&@Kipg< 5XZ7dy2_!BU@a}}lp)_Q-~Wf~p*- ln$SL3mxBaJfA&o{hMCP3=*au-giP=CXZFQDzZg!C{qMc-U` z5x9Mx8YTot >|hv{^xdgpH#JBP`6H&;Zg2m>aiipOD}mkJKG ziwn`Yp^OT{B{6juOc%3H-=zsF0fXpG>G{*Hh= `hSwH4>LS3+(C#xSwXU<@aPQ~zn|rXU3VS2rT5%sdrHQ$KQWbU+R(s$G8Wp&!2 zC~@|6J{z|>o;lmc(UEmj&aD*2l#HYQP!64#`n9IGg3-%b+(1gC^K;EcQn~Mr^HuW3 zNq=!FYDZAJr51!O8Xm6;cy8uHA*dmSMt9&H=L->FJ&gL0->q 2Oe`{$ZFRlA7CJ4HXMcb2R-;^jhNg-Ow4$(TsVdNJ%e%qQLV`6M zOu>yDLY)uJyl*-+;R^Tva4NO0DcXR9Gg`#@<~4!!tfeHoK>Ec=?6IYkY!i%YnM91Z zV39g+Aae#Ix`DskA9MpftQ-gf!|KTi)$)`dU|>M0%|{yV6yt^_UNzx?IAASkpMMmc zVi&Z6U6n~9dNNVkt7g;L<2tJWHwcjy1h25rVQE1ECn*kL%{TdI6se-0-HvCbZmVt4 z4nPOUOHk{0AB%{QDYqDym5)bWpf27}_#jAXd2*~cIFTakI2bmw?fJ-o>91T%cyR!< zO{wdJH=Qeu)Me0FE-r4A?o)^cz<*9G>Xe^4Qse|*l2(lZ?#*6|4-fcK^7N3IsB qpX<4*xK)CW)Gd4#3;p*nKkFO7Kzc#&5&f{>jWG0;XrYcP( zc0g_|q-~=%70}q+`5B&Gon1uqgbZ+PDEs;{u5N$BuQk4^&QDF+p?& vzp8Zmisb=$=DS zOUMTE^}t`?l?oX9zF?cqZGRC`EU%6@o7!XLHvIDrju$7Vtj$mlhL}YW5c4eD(JC;? z>b3lGJcOWB2E!T1`eyojZz>B7VX`%q)1 77$n8KFP-~kL(rrA15id5`gStsK)<}zyLn+#ncjodbJE- zRF02hpv3jt8X`x2(oW#9Un{4+ua;`aKy`&Q0cR4Jz&SsW;>gDkQ?*0qN!VGiM7Z<) z|BLSaH$fGn?z`5flws>2U?2;i7GyCAK|}hTG#jFyp5FZr&7fVWlcTbuf7xu4hq;aI z=HakWHVLzIW0N$Db+UQbZ$1PcV-?-~^6>L84dx`%IdPb3=%B&d?cP21$GdG3C&7nr z55=WCKY#b;+t#&hSy#|%T-y~*_uVhJ=IeKHK3OV`bQr75FZOUM+q V5Y>-OC0 zYW_BT#f^eLZCM@94%gmnfBkY>rNTUs;|M2rTODP=Q`w!k)twwR@?h@{MSt#?N{2bR zhX2ZH_{M3_0a*pbt}8#`uj9T8@D=045cttH_;cSh4#vX{=jXf31otpbnV_!Vmu7%C zsx2`b%{ko{4IEY{dGPn=?nEp@TljDJuV`>z8wG8Dy~56EP&b|1e}||59ej+EXgYTX z^XjwnKbK2U?fpWP?B(cipUPF1n!38kX=q+53?x}l)g4oWlT0`P9u#n+Z18^4!9x#q z!;@ FOTwsOGUEg-~rTnevSkqdArq5??J<<}6e~SGcElO(> zl)ym6O*RJTKJ;DRe}F2 NZ1wzHzWe+$|dtXp2uRBaqj*p1cT z0B}&7n_%BNrXwQYU{W4704%ttJ}}{SVNzO&hBh4sp0R5E_vmThisj{sUL4zm zZ1emK;Df)GnIO6sE>f%FB4iXZQu?+p&L9z9#= Q=!#N+Ut|`g)T8gj04N|C *+#CFSzg0K+V zAufEie{5AAg{jKtM;avo=7WgwvM`c7RB`P0zdpZ_ecyOvy4^E3p)%=I61)*93#^wh z8z~j;y@LgdMkr4wSMexTJ&;D#qraf)*&!2%O4c9DfAVI 0Pde->DJBvg0& zQ;7JFeciX=V50~`yw2b14u+Zp16qL?0U*h&VXNS-fia{Jq$EC&BB5e}7!Q($pazC- zvW(#<$rw~gj%hRv<4F?QLG*}KEBKd(u^FtcE%02Q?iiSH>1$K63jhRhFi%aGS-SxG zS_Td7f1(u~0KWx)z+NucibNzxyA%kS&rBWy0`@#Mb$>ifR(mXV`1k9ucFf5K{)wui zV9x^D^*%bH3#lmh7eQvvqd5d&>oh&?3eeE{xn`ZjxdbGnj5Y;7#jz-5Kq;gO4qKeL zJ!nnVkVV0V!DTvG@P_koP YP_*wp6ZNi029WM-Na!8r=i`xUpcJ_HB=Yd$*2e7HwhDMkgkjv*bf6e z*-Xg)WERM1)0xpC`OrXkqSn)?WSih)9hEYGPF=M8<34u{Wbc?Pv&?iJS~%5AX5V{& zn`^UKxH1NR%7p3bMW*TAOeUOG-ZylZr2|C%yMFX UW~)&MA5sUqnFDwz%X;o;SP0d$%V zkCPw2Dwm=C11ghqzfXT@y^%^J%EX)7yN%R|FqzsIZAF~u&271Pw^cVgDPz6;SD)Xz zo9}L4(=I78t^KZOvx^gv%7oVo$vfWMByyV |ZbInF;}C)w_AcF=Lu>D_-oOR9zjhC`Sc@}|tY zl6uFyX soFJ1W=(lN3$d|!QK^o+1ri7YZeT_$wQTzW4P zb?zO2N6_zx9VVLXGO@4#CZhERT4Coafaz9+1q;3|03{MGH3{n~UZF1ljVFEg)9GnA zw9Vi?{Je5Yc(s2*nvBVbY15zT8kip^BO1_A+q`o$TDrdIs&GGYTk?EQ(|2uMx5(zl zUfk?dlx}YiZVr!@SG>Hg`oWbip`&!zYqyUGz?HOQ&tl=X4ZQE<&u{y_+Sgu^fd;r5 zrI08TXQJidMw@M3pPff0mD_)lSST39kH!_+ub{3M37CIv+JOc-_v5+h5XI};kj9E6 zv7daeP20E?FtG#;y}Z=LMZqz0JSL!61M@xin4X>x&Z)a(P#~3`b> zAgFT5!y@k;Tu>q-R;5TSxCY&!#jggXtGtRG)|eF;5rLKYzcb5#hNfXb>F)A#jZ%Yn zde%jVdEbB1$bI$TWvxM;BzpU0&II^%L1J+wN@@TzFdT-?%u7-c8OzKwbUv7_p=$15 zvcb7q*e^95FtbJ^dN|OaE_nRfAA&~AZQBgcFW5HWQC!oIx9t&jXq`^#j-7)y#>5*M z$>~$HM=-PHuC5xMKm}pZavtMBpwp1)wb{QqrX7DNbX`}KAJOFHxkwoUdY&{kWOi=I z3@CJ+4`f@c7hL?FI%Iab9Vd#G`}Cnfwt=|Zo45zSnAcaJj19vaEf@p8Yr7*K4$TF8 z7QV_gh5PJz;@d#;9(0j~puKc&bR_t~Yo{P1@Eghmr9f(j70rn=q3ozz!0m9-<>?Af zzdnD)W+INp{ryn3=e1+Ni6!Z12n4&`NF*5!cIbCQ=Ua5ZI@zSK*(mR`5}OJMlM6Ki z_j{KgtNQ74j%uRW7G*^=krfQj9B3kRIvO6NvdNEb1yTY8N_}B`^s|s&{j>rDcr5iV zA(LDpBf)}bh{HlZ=DrYO rtoMnZuL;w3NF#0-Mmk%RryaTQE#gw!)I9zhi8Yk090 zHjXEx>U_T@wSbo$QTNhTxt`e2-qDwh6pwlZ!Uh?UhiXR}9z)a>rx#wfYnvk*8?=Ai zA>zVD>E1_)YJ8ZKfD!TD7RFDVWBb82Dgl8&zi(%LKW5)xgKvlt%?2Q9@YNDdV+9m4 z0UijAto3bF#H&HCkdR@3leJ0exd#bGnre_JBbgSdJ|<8=eF|H5vkkY0iisW_;*4$% zPGTFuJta%F0S|~8b${->aZ1(p4(NXx@5c|I*~LZ+){>j-;4qG<;Kn_(U>KvSytzLE zvoL1VncaRp(A1EV7iOTYngfFmq$A+!M?iT)_Z=-U_Mky7r1Z*6EmUcgQAn~7RUFFk z6Z^1(2E35L*9+MW^No%iSpd+}4)7&NMBCF`?6W4n@!Wa+#FM+caO^rS@cV!21_<$P zDg#&_^5d!Y;a?=l)!^{A$cOV7m}kkP4=c_mvBE@S_}Z;0mrO)5r7i1fD$#n4Yr6A( zRqZ2@#dEb^;QjhsS2;C5f^Zs(@tE)H-v!(6{lU*zsrUk21_&Ago-#E{Pe<+^6#XB? zu!zxcjC|l4NfGGW=>J>T`rv=oY@8Bi#AeFJ(eI4;ICQ`RfxeU&GAlU=3{K^Y$QffV zY?1t83*{HT{rSX3s-xruR|S=O$w83RLg@>q(>sns-nznDiC<^8Ht+mqyRc2aApl8@ zh^@U)>UIwt`5beWSNRzXG{>Ye#y|yRQfG^N g7%wd0PX68mx&9Vk; z(-?4dsF3A2bZ$ztOXQzPJnHsz9Nh#iAAQq!%ie#XpE$r>IO_M196TQKfsf)N@6H3* z+UKKHh_D@4HlK1Uwf%ZbdU7t~wEp@Fut)t%8i5=Fvsq3nCx-^x?#_+B?Yypru|TA@ zkDlDCQqepze?BuHR_cFPj;zFX=?2#wD|9%%f1o-Bb&A#>Q#$Haz+=KPp8y1)z`>IA zLq?JH!4km_!ICy9K-jIY&;&7A05^&fI-|fLxVwQy@_twKf4tdQ@KM0=5}XfBJYw`! z4Xy{z@0Pp!>b|MaT^2c=AXWn+&Eii6js^PCc0n9A1(|docvOGst3sR#vLTCNVdaH7 z=eR+uC2LiL^&X42j8mXj0Bm1-(s00=KWx-_2j*f35RONG2{;irfv_GAfepxY@Kfi0 z1og(3#{RJ80WMtP;64nGU49ZERIVA`M>>K(xx$ka?1VHIsm*VWtb{do5m)Jt##P`; zlw8DB-#B+dB}{)vcj5j)yh|D(b;Q=l2;W;?pWj4xi<7=KfelVJf1qB`c0rgUhz8>; zgHQ}L7j_>ZYT{~b^&w=FL%!#7#h7&ZOY1+T!fWY8EQOuwqhyuW{G1Wdl!lDv)S&V4 zl;vIqdm0P0au Gch%ix$+W_A^C3^0IE6(Wdu91IHDd@(iN24-;^+-X2|HeiL zP22-w1*TnY*-gf20-3~x?EtgdvH3t8V`Di0GA59EjV=oA6r)ihmqb{{NMfcviA=b? z2t@-Xo=)h#AtLq#`pA0hVW4!poC;Mi@#g6s9T3b>?aXp5&S2_Zu0}>c5_rJ5DuHb4 zi0khcq5ywlm`)c7ZSNPAz2t^p)`Zqd4uE?|F;Ze1HcGmb;yiPrFkA=kilMtT+x?j* zC~xU@_gxO|q+AQLLxHJl>v_QrvNec>@Kq$}#?_k#x!+%{8H@DwdCgG5P9>b{@+8Cr zfEz_{=@`K!W0iir_GF`YD#(sc5-Z0;E~yj!n@fK~Dw&mrm>qjJ z?B$1GLL*Jw_atU7Tq&=s^6*^{n3q^Uo3U)fciaZ(scQ z0#mMNBgbdQ7}%T0WK$epy!$TNlrZ_)UtPL+^h=K*yHY5FH&AchzW66UV#XVw&f3w2 zqHBMQ!L?Z_=fwpOvSednWhAL2lt!Qi@$_^FSxH7|Y-(m{Y@B6VPQ*+$1E3+O&qi+G zi{6xAE=~fvz~fEU+82EA6wSq5Xh3?LVS1cIK0Qt~*~JKMHlPsp45PBnv5|0!mD&G> z&R900?jDhPnohmOlw696A&f{iy9_QT6j^`p;Wr8eB(Rp=CTSJ0|CLD?Z2a@ IR+ScJR(zCwWn?KL*uNRim^;JQMA5>bjd=Ctb8-w%J9 zXN}_+PW$mM!}w-4_#eWguS$Bllk`3dLscIrY8Xq%0Fe$91PIBWcv-^?ct$=kK}e=z zXj42rgu>2(4mdj#=|Y;OddUK$5s4lp9;*frsP`)nA$HU0xNwpmUvS>huL&^nr$~iU zhU@c8D$>-h`NO4trI5qRD}SgYN2-5t61~UDz)_rngy{&WTS5H9p{n^9G7@4yGd+FQ z{eU1s^0S5)ToP VwB5lng9~L-3^l-lmMLvX;yi4#BDW%4gZ$P~aSu32+X= z*KRS@L5?4u-!90B@ttIPgPq9P*RyAVIXN0`L(gJ_DG|rRnQ25cMt?JD@+p5AqUDRU zW;An&H~T0MLx%!h_@+<(aEf#^oh8oLnbJk-V poDgKVu3dv6A9~QSvb= z;0MxR!D_QKjKML)za=cs2abPoQ4lDWQ1i=-=0!mW`xS-#%7^`)qbv6bu6>H*=H5?P ziDmM_pP5Y|_9Nol0$X?Zdjr01jXxRCi~H^i*W_J=Jk~K;Gx$<6i>;hK$c{NHaEz`B zTVx#knClq?S9G$m=t2wq8#1&;PvMXALPq|AlAk41aud)PMFl%|?vZ~Q-eeteOyu%n z@N&|v-TblYv0Nc2$$opLeVEC?)ispbff#k|C@d16@A{gR?^r-9NNoS>`>Tbvi# z>4ta(){hV^Pd&`<{j^&X4~V&=$sRBB+@;}$*j}qyts4Un76nfc9YtJ%K2sku-AI^= zu!M-tJLF- QuAmF7k8F&EA0^o&8QQi20EWr-HELFRj xxBlddF06FdHfJv3Ft_!0P3sp6z?k85+WmO@?Pjk`lp6#8 zD$1?UfBZg 1);`p1dQZu`o%tks+VG)|# z)Tc)tw79^;!2RW6kT97S9y&am)+$^FZhR`afAHq9KQ{F(k*So9Vv}$7Nu-R>`X%+) z$bwMJn!o4SCA04^oISHd&eb1_o=dI&d8p_PVgIUUe(V$2$!2!RmjCQBy=?~Io=~ z&M_K9pguH1TinzAK)rAHf4Go@ltnKC=}1_Z5d{KSqd4{*NP$U#$yI%j@jcxFmPCF@ ze{?exU0RN>=2<~|s6Y(iRGM#uN;9^b?FBYRRdJ*$C654k=0YKL|G=YJSYe9D4Crbc z={$iOZBc1M<)2@J>RP?Y;O0R};O6%#(NSUoGgBt79qQtA`kW=j# MSpO2?=JzH1b0l0Ygu(Ml@vH%@aGO0GBzFt_PSZ)hQ@cGB1LGXD7bH7S zI5aH9o~tO__&*5}RQv~& Ypm^Z&8vf2Ku2 zpZrIJ`Ydo*y^Xc;WwhJ7G?()j!*~U>;E}KznlEj2F4_v!z!-&q10c;^KvK=E2U**5 zwe%N0WL<{EWuX7i`xc~^Tagkt>FYHhC9Ksh+1B3UDp({I!vDlVhbXiME+PwodYYqw zGSs$OW*wVO#!lN~O}6I>ff5$3fB1yglEKXPJ37#~ bVe0ij}(Qxo|AV`tJB}w906w=)%C({k`d>kAav=()0$ln1O!c@(2if8Rp~sfsnEy zqlmko3J^m^b+A