From 6b05414c445e616c07a3ad17059baaec4b9ba2d2 Mon Sep 17 00:00:00 2001 From: Fabian Pedregosa <fabian.pedregosa@inria.fr> Date: Fri, 25 Jun 2010 17:39:09 -0500 Subject: [PATCH] Remove old em module. --- scikits/learn/em/Changelog | 138 -- scikits/learn/em/LICENSE.txt | 3 - scikits/learn/em/TODO | 15 - scikits/learn/em/__init__.py | 10 - scikits/learn/em/_c_densities.py | 224 ---- scikits/learn/em/densities.py | 307 ----- scikits/learn/em/densities2.py | 230 ---- scikits/learn/em/doc/Makefile | 50 - scikits/learn/em/doc/base.tex | 1182 ----------------- scikits/learn/em/doc/examples/demo1.py | 109 -- scikits/learn/em/doc/examples/demo2.py | 104 -- scikits/learn/em/doc/tutorial.pdf | Bin 390888 -> 0 bytes scikits/learn/em/doc/user.tex | 64 - scikits/learn/em/gauss_mix.py | 728 ---------- scikits/learn/em/gmm_em.py | 520 -------- scikits/learn/em/info.py | 68 - scikits/learn/em/misc.py | 44 - scikits/learn/em/online_em.py | 466 ------- scikits/learn/em/profile_data/blop.c | 37 - scikits/learn/em/profile_data/gden.m | 10 - scikits/learn/em/profile_data/mat_prof.m | 11 - .../em/profile_data/profile_densities.py | 71 - scikits/learn/em/profile_data/profile_gmm.py | 68 - .../em/profile_data/profile_online_em.py | 241 ---- scikits/learn/em/setup.py | 33 - scikits/learn/em/src/Makefile | 42 - scikits/learn/em/src/c_gden.c | 38 - scikits/learn/em/src/c_gmm.pyx | 66 - scikits/learn/em/src/pure_den.c | 462 ------- scikits/learn/em/tests/__init__.py | 1 - scikits/learn/em/tests/diag_1d_3k.mat | Bin 4451 -> 0 bytes scikits/learn/em/tests/diag_1d_4k.mat | Bin 4523 -> 0 bytes scikits/learn/em/tests/diag_2d_3k.mat | Bin 8595 -> 0 bytes scikits/learn/em/tests/full_2d_3k.mat | Bin 8739 -> 0 bytes scikits/learn/em/tests/generate_tests_data.py | 98 -- scikits/learn/em/tests/test_densities.py | 215 --- scikits/learn/em/tests/test_gauss_mix.py | 86 -- scikits/learn/em/tests/test_gmm_em.py | 198 --- scikits/learn/em/tests/test_online_em.py | 230 ---- scikits/learn/em/tests/testcommon.py | 1 - scikits/learn/setup.py | 1 - 41 files changed, 6171 deletions(-) delete mode 100644 scikits/learn/em/Changelog delete mode 100644 scikits/learn/em/LICENSE.txt delete mode 100644 scikits/learn/em/TODO delete mode 100644 scikits/learn/em/__init__.py delete mode 100644 scikits/learn/em/_c_densities.py delete mode 100644 scikits/learn/em/densities.py delete mode 100644 scikits/learn/em/densities2.py delete mode 100644 scikits/learn/em/doc/Makefile delete mode 100644 scikits/learn/em/doc/base.tex delete mode 100644 scikits/learn/em/doc/examples/demo1.py delete mode 100644 scikits/learn/em/doc/examples/demo2.py delete mode 100644 scikits/learn/em/doc/tutorial.pdf delete mode 100644 scikits/learn/em/doc/user.tex delete mode 100644 scikits/learn/em/gauss_mix.py delete mode 100644 scikits/learn/em/gmm_em.py delete mode 100644 scikits/learn/em/info.py delete mode 100644 scikits/learn/em/misc.py delete mode 100644 scikits/learn/em/online_em.py delete mode 100644 scikits/learn/em/profile_data/blop.c delete mode 100644 scikits/learn/em/profile_data/gden.m delete mode 100644 scikits/learn/em/profile_data/mat_prof.m delete mode 100644 scikits/learn/em/profile_data/profile_densities.py delete mode 100644 scikits/learn/em/profile_data/profile_gmm.py delete mode 100644 scikits/learn/em/profile_data/profile_online_em.py delete mode 100644 scikits/learn/em/setup.py delete mode 100644 scikits/learn/em/src/Makefile delete mode 100644 scikits/learn/em/src/c_gden.c delete mode 100644 scikits/learn/em/src/c_gmm.pyx delete mode 100644 scikits/learn/em/src/pure_den.c delete mode 100644 scikits/learn/em/tests/__init__.py delete mode 100644 scikits/learn/em/tests/diag_1d_3k.mat delete mode 100644 scikits/learn/em/tests/diag_1d_4k.mat delete mode 100644 scikits/learn/em/tests/diag_2d_3k.mat delete mode 100644 scikits/learn/em/tests/full_2d_3k.mat delete mode 100644 scikits/learn/em/tests/generate_tests_data.py delete mode 100644 scikits/learn/em/tests/test_densities.py delete mode 100644 scikits/learn/em/tests/test_gauss_mix.py delete mode 100644 scikits/learn/em/tests/test_gmm_em.py delete mode 100644 scikits/learn/em/tests/test_online_em.py delete mode 100644 scikits/learn/em/tests/testcommon.py diff --git a/scikits/learn/em/Changelog b/scikits/learn/em/Changelog deleted file mode 100644 index 0f23280fab..0000000000 --- a/scikits/learn/em/Changelog +++ /dev/null @@ -1,138 +0,0 @@ -pyem (0.5.7dev) Sun, 22 Jul 2007 11:05:58 +0900 - - * pyem is now part of the scikits.learn package - * Renamed to em - -pyem (0.5.7dev) Mon, 28 May 2007 11:31:08 +0900 - - * Put doc into its own directory - -pyem (0.5.6) Thu, 16 Nov 2006 21:02:02 +0900 - - * correct examples - * correct exceptions msg strings in gauss_mix, which - were buggy - * add examples from website to the package, so that above errors - do not appear again - -pyem (0.5.6) Thu, 16 Nov 2006 14:18:19 +0900 - - * bump to 0.5.6 - * Add __str__ and __repr__ for GM and GMM classes - * Add regularization method (but not used yet). - * Change 'f<8' to N.float64 for ctype enabled densities - * Move 'Magic numbers' into a separated python file, misc.py - -pyem (0.5.5) Tue, 24 Oct 2006 18:30:54 +0900 - - * Fix a bug inmultiple_gaussian_den which prevents - full covariance mode to work in GMM. - * Add consistency tests in tests/test_gmm_em.py to avoid the - above bug from being detected from now on. - -pyem (0.5.5) Mon, 23 Oct 2006 18:48:15 +0900 - - * Bump to 0.5.5 - * Added bic method to GMM. - * A few fixes for docstrings - * Added bibliography to the doc - -pyem (0.5.4) Fri, 20 Oct 2006 12:52:01 +0900 - - * Bump to 0.5.4 - * Online EM is basically implemented, with tests. The API - should be fixed to be choherent (lacks the Trainer Class, too). - The class is not imported by default, still (available as _OnGMM) - --- David Cournapeau <david@ar.media.kyoto-u.ac.jp> - -pyem (0.5.3) Thu, 12 Oct 2006 21:08:21 +0900 - - * Change the layout and setup.py for inclusion to scipy. - * Initial script for online em. - --- David Cournapeau <david@ar.media.kyoto-u.ac.jp> - -pyem (0.5.3) Tue, 03 Oct 2006 18:28:13 +0900 - - * Update tests so that they work within the numpy test framework - * Update version to 0.5.3 - --- David Cournapeau <david@ar.media.kyoto-u.ac.jp> - -pyem (0.5.2) Tue, 29 Aug 2006 14:53:49 +0900 - - * Add a class method to GM to create a model directly from - w, mean and var values (uses decorator: python 2.4) - * Add a plot1d method to GM to plot a GM in one dimension (where - the confidence ell kind of plot does not make sense). This draws - each Gaussian pdf, fill the area on the confidence interval - (matplotlib is really cool) - --- David Cournapeau <david@ar.media.kyoto-u.ac.jp> - -pyem (0.5.2) Mon, 28 Aug 2006 13:20:13 +0900 - - * Add a plot method to Gm class, so that it is easier - to plot a GM model interactively (needs matplotlib) - --- David Cournapeau <david@ar.media.kyoto-u.ac.jp> - -pyem (0.5.2) Thu, 24 Aug 2006 19:42:28 +0900 - - * put version to 0.5.2 - * Correct a bug with init method in GMM (change class method - to object method). - * modify the setup for a more flexible system - --- David Cournapeau <david@ar.media.kyoto-u.ac.jp> - -pyem (0.5.1) Thu, 17 Aug 2006 11:54:41 +0900 - - * put version to 0.5.1 - * Update to last numpy (change axis args between 1.0b1 and 1.0b2, - change type args of ones and zeros) - --- David Cournapeau <david@ar.media.kyoto-u.ac.jp> - -pyem (0.5) Fri, 04 Aug 2006 23:10:37 +0900 - - * put version to 0.5.0 - * implement confidence interval using chi2 - --- David Cournapeau <david@ar.media.kyoto-u.ac.jp> - -pyem (0.4) Fri, 04 Aug 2006 19:37:47 +0900 - - * put version to 0.4.2 - * adapt to new version of numpy (1.0b2SVN) - --- David Cournapeau <david@ar.media.kyoto-u.ac.jp> - -pyem (0.4) Fri, 14 Jul 2006 17:49:57 +0900 - - * put version to 0.4.1 - * change some import due to recent changes in - numpy - --- David Cournapeau <david@ar.media.kyoto-u.ac.jp> - -pyem (0.4) Fri, 14 Jul 2006 16:24:05 +0900 - - * put version to 0.4 - * Heavy refactoring of EM and GMM into classes (see below) - * add a module gauss_mix, which implements Gaussian Mixtures. - * GMM is now a class, which is initialized using a Gaussian Mixture. - a GMM can be trained. - --- David Cournapeau <david@ar.media.kyoto-u.ac.jp> - -pyem (0.3) Thu, 13 Jul 2006 19:48:54 +0900 - - * put version to 0.3 - * Refactoring kmean code into new module. - * Refactoring tests code into test module. - * Replace matrixmultiply and outerproduct calls by dot to use fast BLAS if - available. Not everything is done yet - --- David Cournapeau <david@ar.media.kyoto-u.ac.jp> diff --git a/scikits/learn/em/LICENSE.txt b/scikits/learn/em/LICENSE.txt deleted file mode 100644 index 87b237be43..0000000000 --- a/scikits/learn/em/LICENSE.txt +++ /dev/null @@ -1,3 +0,0 @@ -Author: David Cournapeau <david@ar.media.kyoto-u.ac.jp> -Copyright: 2006 -License: BSD-style license. See LICENSE.txt in the scipy source directory. diff --git a/scikits/learn/em/TODO b/scikits/learn/em/TODO deleted file mode 100644 index 7c162d1694..0000000000 --- a/scikits/learn/em/TODO +++ /dev/null @@ -1,15 +0,0 @@ -# Last Change: Sun Jul 01 06:00 PM 2007 J - -Things which must be implemented for a 1.0 version (in importante order) - - A classifier - - handle rank 1 for 1d data - - demo for pdf estimation, discriminant analysis and clustering - - scaling of data: maybe something to handle scaling internally ? - -Things which would be nice (after 1.0 version): - - Bayes prior (hard, suppose MCMC) - - variational Bayes (hard ? Not sure yet) - - Integrate libem (libem should be modified so - that it would be easy to package and distribute) - - Other initialization schemes - - Other mixture models diff --git a/scikits/learn/em/__init__.py b/scikits/learn/em/__init__.py deleted file mode 100644 index fd47730151..0000000000 --- a/scikits/learn/em/__init__.py +++ /dev/null @@ -1,10 +0,0 @@ -#! /usr/bin/env python -# Last Change: Sun Sep 07 04:00 PM 2008 J - -from info import __doc__ - -from gauss_mix import GmParamError, GM -from gmm_em import GmmParamError, GMM, EM -from online_em import OnGMM as _OnGMM - -__all__ = filter(lambda s:not s.startswith('_'), dir()) diff --git a/scikits/learn/em/_c_densities.py b/scikits/learn/em/_c_densities.py deleted file mode 100644 index 3e9cd29210..0000000000 --- a/scikits/learn/em/_c_densities.py +++ /dev/null @@ -1,224 +0,0 @@ -#! /usr/bin/python -# -# Copyrighted David Cournapeau -# Last Change: Sat Jun 09 10:00 PM 2007 J - -"""This module implements some function of densities module in C for efficiency -reasons. gaussian, such as pdf estimation, confidence interval/ellipsoids, -etc...""" - -__docformat__ = 'restructuredtext' - -# This module uses a C implementation through ctypes, for diagonal cases -# TODO: -# - portable way to find/open the shared library -# - full cov matrice -# - test before inclusion - -import numpy as N -import numpy.linalg as lin -#from numpy.random import randn -#from scipy.stats import chi2 -#import densities as D - -import ctypes -from ctypes import c_uint, c_int -from numpy.ctypeslib import ndpointer, load_library - -ctypes_major = int(ctypes.__version__.split('.')[0]) -if ctypes_major < 1: - raise ImportError(msg = "version of ctypes is %s, expected at least %s"\ - % (ctypes.__version__, '1.0.1')) - -# Requirements for diag gden -_gden = load_library('c_gden.so', __file__) -arg1 = ndpointer(dtype=N.float64) -arg2 = c_uint -arg3 = c_uint -arg4 = ndpointer(dtype=N.float64) -arg5 = ndpointer(dtype=N.float64) -arg6 = ndpointer(dtype=N.float64) -_gden.gden_diag.argtypes = [arg1, arg2, arg3, arg4, arg5, arg6] -_gden.gden_diag.restype = c_int - -# Error classes -class DenError(Exception): - """Base class for exceptions in this module. - - Attributes: - expression -- input expression in which the error occurred - message -- explanation of the error""" - def __init__(self, message): - self.message = message - - def __str__(self): - return self.message - -# The following function do all the fancy stuff to check that parameters -# are Ok, and call the right implementation if args are OK. -def gauss_den(x, mu, va, log = False): - """ Compute multivariate Gaussian density at points x for - mean mu and variance va. - - Vector are row vectors, except va which can be a matrix - (row vector variance for diagonal variance) - - If log is True, than the log density is returned - (useful for underflow ?)""" - mu = N.atleast_2d(mu) - va = N.atleast_2d(va) - x = N.atleast_2d(x) - - #=======================# - # Checking parameters # - #=======================# - if len(N.shape(mu)) != 2: - raise DenError("mu is not rank 2") - - if len(N.shape(va)) != 2: - raise DenError("va is not rank 2") - - if len(N.shape(x)) != 2: - raise DenError("x is not rank 2") - - (n, d) = N.shape(x) - (dm0, dm1) = N.shape(mu) - (dv0, dv1) = N.shape(va) - - # Check x and mu same dimension - if dm0 != 1: - msg = "mean must be a row vector!" - raise DenError(msg) - if dm1 != d: - msg = "x and mu not same dim" - raise DenError(msg) - # Check va and mu same size - if dv1 != d: - msg = "mu and va not same dim" - raise DenError(msg) - if dv0 != 1 and dv0 != d: - msg = "va not square" - raise DenError(msg) - - #===============# - # Computation # - #===============# - if d == 1: - # scalar case - return _scalar_gauss_den(x[:, 0], mu[0, 0], va[0, 0], log) - elif dv0 == 1: - # Diagonal matrix case - return _diag_gauss_den(x, mu, va, log) - elif dv1 == dv0: - # full case - return _full_gauss_den(x, mu, va, log) - else: - raise DenError("variance mode not recognized, this is a bug") - -# Those 3 functions do almost all the actual computation -def _scalar_gauss_den(x, mu, va, log): - """ This function is the actual implementation - of gaussian pdf in scalar case. It assumes all args - are conformant, so it should not be used directly - - ** Expect centered data (ie with mean removed) ** - - Call gauss_den instead""" - d = mu.size - inva = 1/va - fac = (2*N.pi) ** (-d/2.0) * N.sqrt(inva) - y = ((x-mu) ** 2) * -0.5 * inva - if not log: - y = fac * N.exp(y) - else: - y = y + log(fac) - - return y - -def _diag_gauss_den(x, mu, va, log): - """ This function is the actual implementation - of gaussian pdf in scalar case. It assumes all args - are conformant, so it should not be used directly - - ** Expect centered data (ie with mean removed) ** - - Call gauss_den instead""" - # Diagonal matrix case - d = mu.size - n = x.shape[0] - if not log: - y = N.zeros(n) - vat = va.copy() - # _gden.gden_diag(N.require(x, requirements = 'C'), n, d, - # N.require(mu, requirements = 'C'), - # N.require(inva, requirements = 'C'), - # N.require(y, requirements = 'C')) - x = N.require(x, requirements = 'C') - mu = N.require(mu, requirements = 'C') - vat = N.require(vat, requirements = 'C') - y = N.require(y, requirements = 'C') - _gden.gden_diag(x, n, d, mu, vat, y) - return y - # _gden.gden_diag.restype = c_int - # _gden.gden_diag.argtypes = [POINTER(c_double), c_uint, c_uint, - # POINTER(c_double), POINTER(c_double), POINTER(c_double)] - - # y = N.zeros(n) - # inva= 1/va - # _gden.gden_diag(x.ctypes.data_as(POINTER(c_double)), - # n, d, - # mu.ctypes.data_as(POINTER(c_double)), - # inva.ctypes.data_as(POINTER(c_double)), - # y.ctypes.data_as(POINTER(c_double))) - else: - y = _scalar_gauss_den(x[:, 0], mu[0, 0], va[0, 0], log) - for i in range(1, d): - y += _scalar_gauss_den(x[:, i], mu[0, i], va[0, i], log) - return y - -def _full_gauss_den(x, mu, va, log): - """ This function is the actual implementation - of gaussian pdf in full matrix case. - - It assumes all args are conformant, so it should - not be used directly Call gauss_den instead - - ** Expect centered data (ie with mean removed) ** - - Does not check if va is definite positive (on inversible - for that matter), so the inverse computation and/or determinant - would throw an exception.""" - d = mu.size - inva = lin.inv(va) - fac = 1 / N.sqrt( (2*N.pi) ** d * N.fabs(lin.det(va))) - - # we are using a trick with sum to "emulate" - # the matrix multiplication inva * x without any explicit loop - y = N.dot((x-mu), inva) - y = -0.5 * N.sum(y * (x-mu), 1) - - if not log: - y = fac * N.exp(y) - else: - y = y + N.log(fac) - - return y - -if __name__ == "__main__": - pass - ##========================================= - ## Test accuracy between pure and C python - ##========================================= - #mu = N.array([2.0, 3]) - #va = N.array([5.0, 3]) - - ## Generate a multivariate gaussian of mean mu and covariance va - #nframes = 1e4 - #X = randn(nframes, 2) - #Yc = N.dot(N.diag(N.sqrt(va)), X.transpose()) - #Yc = Yc.transpose() + mu - - #Y = D.gauss_den(Yc, mu, va) - #Yt = gauss_den(Yc, mu, va) - - #print "Diff is " + str(N.sqrt(N.sum((Y-Yt) ** 2))/nframes/2) diff --git a/scikits/learn/em/densities.py b/scikits/learn/em/densities.py deleted file mode 100644 index 2b80079467..0000000000 --- a/scikits/learn/em/densities.py +++ /dev/null @@ -1,307 +0,0 @@ -#! /usr/bin/python -# -# Copyrighted David Cournapeau -# Last Change: Thu Jul 12 04:00 PM 2007 J -"""This module implements various basic functions related to multivariate -gaussian, such as pdf estimation, confidence interval/ellipsoids, etc...""" - -__docformat__ = 'restructuredtext' - -import numpy as N -import numpy.linalg as lin -#from numpy.random import randn -from scipy.stats import chi2 -import misc - -# Error classes -class DenError(Exception): - """Base class for exceptions in this module. - - Attributes: - expression -- input expression in which the error occurred - message -- explanation of the error""" - def __init__(self, message): - self.message = message - Exception.__init__(self) - - def __str__(self): - return self.message - -# The following function do all the fancy stuff to check that parameters -# are Ok, and call the right implementation if args are OK. -def gauss_den(x, mu, va, log = False): - """Compute multivariate Gaussian density at points x for - mean mu and variance va. - - :Parameters: - x : ndarray - points where to estimate the pdf. each row of the array is one - point of d dimension - mu : ndarray - mean of the pdf. Should have same dimension d than points in x. - va : ndarray - variance of the pdf. If va has d elements, va is interpreted as the - diagonal elements of the actual covariance matrix. Otherwise, - should be a dxd matrix (and positive definite). - log : boolean - if True, returns the log-pdf instead of the pdf. - - :Returns: - pdf : ndarray - Returns a rank 1 array of the pdf at points x. - - Note - ---- - Vector are row vectors, except va which can be a matrix - (row vector variance for diagonal variance).""" - - lmu = N.atleast_2d(mu) - lva = N.atleast_2d(va) - lx = N.atleast_2d(x) - - #=======================# - # Checking parameters # - #=======================# - if len(N.shape(lmu)) != 2: - raise DenError("mu is not rank 2") - - if len(N.shape(lva)) != 2: - raise DenError("va is not rank 2") - - if len(N.shape(lx)) != 2: - raise DenError("x is not rank 2") - - d = N.shape(lx)[1] - (dm0, dm1) = N.shape(lmu) - (dv0, dv1) = N.shape(lva) - - # Check x and mu same dimension - if dm0 != 1: - msg = "mean must be a row vector!" - raise DenError(msg) - if dm1 != d: - msg = "x and mu not same dim" - raise DenError(msg) - # Check va and mu same size - if dv1 != d: - msg = "mu and va not same dim" - raise DenError(msg) - if dv0 != 1 and dv0 != d: - msg = "va not square" - raise DenError(msg) - - #===============# - # Computation # - #===============# - if d == 1: - # scalar case - return _scalar_gauss_den(lx[:, 0], lmu[0, 0], lva[0, 0], log) - elif dv0 == 1: - # Diagonal matrix case - return _diag_gauss_den(lx, lmu, lva, log) - elif dv1 == dv0: - # full case - return _full_gauss_den(lx, lmu, lva, log) - else: - raise DenError("variance mode not recognized, this is a bug") - -# Those 3 functions do almost all the actual computation -def _scalar_gauss_den(x, mu, va, log): - """ This function is the actual implementation - of gaussian pdf in scalar case. It assumes all args - are conformant, so it should not be used directly - - Call gauss_den instead""" - d = mu.size - inva = 1/va - fac = (2*N.pi) ** (-d/2.0) * N.sqrt(inva) - inva *= -0.5 - y = ((x-mu) ** 2) * inva - if not log: - y = fac * N.exp(y) - else: - y += N.log(fac) - - return y - -def _diag_gauss_den(x, mu, va, log): - """ This function is the actual implementation - of gaussian pdf in scalar case. It assumes all args - are conformant, so it should not be used directly - - Call gauss_den instead""" - # Diagonal matrix case - d = mu.size - #n = x.shape[0] - if not log: - inva = 1/va[0] - fac = (2*N.pi) ** (-d/2.0) * N.prod(N.sqrt(inva)) - inva *= -0.5 - x = x - mu - x **= 2 - y = fac * N.exp(N.dot(x, inva)) - else: - # XXX optimize log case as non log case above - y = _scalar_gauss_den(x[:, 0], mu[0, 0], va[0, 0], log) - for i in range(1, d): - y += _scalar_gauss_den(x[:, i], mu[0, i], va[0, i], log) - return y - -def _full_gauss_den(x, mu, va, log): - """ This function is the actual implementation - of gaussian pdf in full matrix case. - - It assumes all args are conformant, so it should - not be used directly Call gauss_den instead - - Does not check if va is definite positive (on inversible - for that matter), so the inverse computation and/or determinant - would throw an exception.""" - d = mu.size - inva = lin.inv(va) - fac = 1 / N.sqrt( (2*N.pi) ** d * N.fabs(lin.det(va))) - - # we are using a trick with sum to "emulate" - # the matrix multiplication inva * x without any explicit loop - #y = -0.5 * N.sum(N.dot((x-mu), inva) * (x-mu), 1) - y = -0.5 * N.dot(N.dot((x-mu), inva) * (x-mu), - N.ones((mu.size, 1), x.dtype))[:, 0] - - if not log: - y = fac * N.exp(y) - else: - y = y + N.log(fac) - - return y - -# To get coordinatea of a confidence ellipse from multi-variate gaussian pdf -def gauss_ell(mu, va, dim = misc.DEF_VIS_DIM, npoints = misc.DEF_ELL_NP, \ - level = misc.DEF_LEVEL): - """Given a mean and covariance for multi-variate - gaussian, returns the coordinates of the confidense ellipsoid. - - Compute npoints coordinates for the ellipse of confidence of given level - (all points will be inside the ellipsoides with a probability equal to - level). - - :Parameters: - mu : ndarray - mean of the pdf - va : ndarray - variance of the pdf - dim : sequence - sequences of two integers which represent the dimensions where to - project the ellipsoid. - npoints: int - number of points to generate for the ellipse. - level : float - level of confidence (between 0 and 1). - - :Returns: - Returns the coordinate x and y of the ellipse.""" - if level >= 1 or level <= 0: - raise ValueError("level should be a scale strictly between 0 and 1.""") - - mu = N.atleast_1d(mu) - va = N.atleast_1d(va) - d = N.shape(mu)[0] - c = N.array(dim) - - if N.any(c < 0) or N.any(c >= d): - raise ValueError("dim elements should be >= 0 and < %d (dimension"\ - " of the variance)" % d) - if N.size(mu) == N.size(va): - mode = 'diag' - else: - if N.ndim(va) == 2: - if N.shape(va)[0] == N.shape(va)[1]: - mode = 'full' - else: - raise DenError("variance not square") - else: - raise DenError("mean and variance are not dim conformant") - - # When X is a sample from multivariante N(mu, sigma), (X-mu)Sigma^-1(X-mu) - # follows a Chi2(d) law. Here, we only take 2 dimension, so Chi2 with 2 - # degree of freedom (See Wasserman. This is easy to see with characteristic - # functions) - chi22d = chi2(2) - mahal = N.sqrt(chi22d.ppf(level)) - - # Generates a circle of npoints - theta = N.linspace(0, 2 * N.pi, npoints) - circle = mahal * N.array([N.cos(theta), N.sin(theta)]) - - # Get the dimension which we are interested in: - mu = mu[c] - if mode == 'diag': - va = va[c] - elps = N.outer(mu, N.ones(npoints)) - elps += N.dot(N.diag(N.sqrt(va)), circle) - elif mode == 'full': - va = va[c, :][:, c] - # Method: compute the cholesky decomp of each cov matrix, that is - # compute cova such as va = cova * cova' - # WARN: scipy is different than matlab here, as scipy computes a lower - # triangular cholesky decomp: - # - va = cova * cova' (scipy) - # - va = cova' * cova (matlab) - # So take care when comparing results with matlab ! - cova = lin.cholesky(va) - elps = N.outer(mu, N.ones(npoints)) - elps += N.dot(cova, circle) - else: - raise ValueError("var mode not recognized") - - return elps[0, :], elps[1, :] - -def logsumexp(x): - """Compute log(sum(exp(x), 1)) while avoiding underflow. - - :Parameters: - x : ndarray - data in log domain to sum""" - axis = 1 - mc = N.max(x, axis) - return mc + N.log(N.sum(N.exp(x-mc[:, N.newaxis]), axis)) - -def multiple_gauss_den(data, mu, va, log = False): - """Helper function to generate several Gaussian - pdf (different parameters) at the same points - - :Parameters: - data : ndarray - points where to estimate the pdfs (n,d). - mu : ndarray - mean of the pdf, of shape (k,d). One row of dimension d per - different component, the number of rows k being the number of - component - va : ndarray - variance of the pdf. One row per different component for diagonal - covariance (k, d), or d rows per component for full matrix pdf - (k*d,d). - log : boolean - if True, returns the log-pdf instead of the pdf. - - :Returns: - Returns a (n, k) array, each column i being the pdf of the ith mean and - ith variance.""" - mu = N.atleast_2d(mu) - va = N.atleast_2d(va) - - k = N.shape(mu)[0] - n = N.shape(data)[0] - d = N.shape(mu)[1] - - y = N.zeros((k, n)) - if N.size(mu) == N.size(va): - for i in range(k): - y[i] = gauss_den(data, mu[i, :], va[i, :], log) - return y.T - else: - for i in range(k): - y[i] = gauss_den(data, mu[i, :], va[d*i:d*i+d, :], log) - return y.T - -if __name__ == "__main__": - pass diff --git a/scikits/learn/em/densities2.py b/scikits/learn/em/densities2.py deleted file mode 100644 index 80bd72dcdb..0000000000 --- a/scikits/learn/em/densities2.py +++ /dev/null @@ -1,230 +0,0 @@ -#! /usr/bin/python -# -# Copyrighted David Cournapeau -# Last Change: Sat Jun 02 07:00 PM 2007 J - -# New version, with default numpy ordering. - -import numpy as N -import numpy.linalg as lin -from numpy.random import randn -from scipy.stats import chi2 - -# Error classes -class DenError(Exception): - """Base class for exceptions in this module. - - Attributes: - expression -- input expression in which the error occurred - message -- explanation of the error""" - def __init__(self, message): - self.message = message - - def __str__(self): - return self.message - -#============ -# Public API -#============ -# The following function do all the fancy stuff to check that parameters -# are Ok, and call the right implementation if args are OK. -def gauss_den(x, mu, va, log = False, axis = -1): - """ Compute multivariate Gaussian density at points x for - mean mu and variance va along specified axis: - - requirements: - * mean must be rank 0 (1d) or rank 1 (multi variate gaussian) - * va must be rank 0 (1d), rank 1(multi variate, diag covariance) or rank 2 - (multivariate, full covariance). - * in 1 dimension case, any rank for mean and va is ok, as long as their size - is 1 (eg they contain only 1 element) - - Caution: if x is rank 1, it is assumed you have a 1d problem. You cannot compute - the gaussian densities of only one sample of dimension d; for this, you have - to use a rank 2 ! - - If log is True, than the log density is returned - (useful for underflow ?)""" - - # If data is rank 1, then we have 1 dimension problem. - if x.ndim == 1: - d = 1 - n = x.size - if not N.size(mu) == 1: - raise DenError("for 1 dimension problem, mean must have only one element") - - if not N.size(va) == 1: - raise DenError("for 1 dimension problem, mean must have only one element") - - return _scalar_gauss_den(x, mu, va, log) - # If data is rank 2, then we may have 1 dimension or multi-variate problem - elif x.ndim == 2: - oaxis = (axis + 1) % 2 - n = x.shape[axis] - d = x.shape[oaxis] - - # Get away with 1d case now - if d == 1: - return _scalar_gauss_den(x, mu, va, log) - - # Now, d > 1 (numpy attributes should be valid on mean and va now) - if not N.size(mu) == d or not mu.ndim == 1: - raise DenError("data is %d dimension, but mean's shape is %s" \ - % (d, N.shape(mu)) + " (should be (%d,))" % d) - - isfull = (va.ndim == 2) - if not (N.size(va) == d or (isfull and va.shape[0] == va.shape[1] == d)): - raise DenError("va has an invalid shape or number of elements") - - if isfull: - # Compute along rows - if oaxis == 0: - return _full_gauss_den(x, mu[:, N.newaxis], va, log, axis) - else: - return _full_gauss_den(x, mu, va, log, axis) - else: - return _diag_gauss_den(x, mu, va, log, axis) - else: - raise RuntimeError("Sorry, only rank up to 2 supported") - -# To plot a confidence ellipse from multi-variate gaussian pdf -def gauss_ell(mu, va, dim = [0, 1], npoints = 100, level = 0.39): - """ Given a mean and covariance for multi-variate - gaussian, returns npoints points for the ellipse - of confidence given by level (all points will be inside - the ellipsoides with a probability equal to level) - - Returns the coordinate x and y of the ellipse""" - - c = N.array(dim) - - if mu.size < 2: - raise RuntimeError("this function only make sense for dimension 2 and more") - - if mu.size == va.size: - mode = 'diag' - else: - if va.ndim == 2: - if va.shape[0] == va.shape[1]: - mode = 'full' - else: - raise DenError("variance not square") - else: - raise DenError("mean and variance are not dim conformant") - - # If X ~ N(mu, va), then [X` * va^(-1/2) * X] ~ Chi2 - chi22d = chi2(2) - mahal = N.sqrt(chi22d.ppf(level)) - - # Generates a circle of npoints - theta = N.linspace(0, 2 * N.pi, npoints) - circle = mahal * N.array([N.cos(theta), N.sin(theta)]) - - # Get the dimension which we are interested in: - mu = mu[dim] - if mode == 'diag': - va = va[dim] - elps = N.outer(mu, N.ones(npoints)) - elps += N.dot(N.diag(N.sqrt(va)), circle) - elif mode == 'full': - va = va[c,:][:,c] - # Method: compute the cholesky decomp of each cov matrix, that is - # compute cova such as va = cova * cova' - # WARN: scipy is different than matlab here, as scipy computes a lower - # triangular cholesky decomp: - # - va = cova * cova' (scipy) - # - va = cova' * cova (matlab) - # So take care when comparing results with matlab ! - cova = lin.cholesky(va) - elps = N.outer(mu, N.ones(npoints)) - elps += N.dot(cova, circle) - else: - raise DenParam("var mode not recognized") - - return elps[0, :], elps[1, :] - -#============= -# Private Api -#============= -# Those 3 functions do almost all the actual computation -def _scalar_gauss_den(x, mu, va, log): - """ This function is the actual implementation - of gaussian pdf in scalar case. It assumes all args - are conformant, so it should not be used directly - - Call gauss_den instead""" - inva = 1/va - fac = (2*N.pi) ** (-1/2.0) * N.sqrt(inva) - y = ((x-mu) ** 2) * -0.5 * inva - if not log: - y = fac * N.exp(y.ravel()) - else: - y = y + log(fac) - - return y - -def _diag_gauss_den(x, mu, va, log, axis): - """ This function is the actual implementation - of gaussian pdf in scalar case. It assumes all args - are conformant, so it should not be used directly - - Call gauss_den instead""" - # Diagonal matrix case - d = mu.size - if axis % 2 == 0: - x = N.swapaxes(x, 0, 1) - - if not log: - inva = 1/va[0] - fac = (2*N.pi) ** (-d/2.0) * N.sqrt(inva) - y = (x[0] - mu[0]) ** 2 * inva * -0.5 - for i in range(1, d): - inva = 1/va[i] - fac *= N.sqrt(inva) - y += (x[i] - mu[i]) ** 2 * inva * -0.5 - y = fac * N.exp(y) - else: - y = _scalar_gauss_den(x[0], mu[0], va[0], log) - for i in range(1, d): - y += _scalar_gauss_den(x[i], mu[i], va[i], log) - - return y - -def _full_gauss_den(x, mu, va, log, axis): - """ This function is the actual implementation - of gaussian pdf in full matrix case. - - It assumes all args are conformant, so it should - not be used directly Call gauss_den instead - - Does not check if va is definite positive (on inversible - for that matter), so the inverse computation and/or determinant - would throw an exception.""" - d = mu.size - inva = lin.inv(va) - fac = 1 / N.sqrt( (2*N.pi) ** d * N.fabs(lin.det(va))) - - # # Slow version (does not work since version 0.6) - # n = N.size(x, 0) - # y = N.zeros(n) - # for i in range(n): - # y[i] = N.dot(x[i,:], - # N.dot(inva, N.transpose(x[i,:]))) - # y *= -0.5 - - # we are using a trick with sum to "emulate" - # the matrix multiplication inva * x without any explicit loop - if axis % 2 == 1: - y = N.dot(inva, (x-mu)) - y = -0.5 * N.sum(y * (x-mu), 0) - else: - y = N.dot((x-mu), inva) - y = -0.5 * N.sum(y * (x-mu), 1) - - if not log: - y = fac * N.exp(y) - else: - y = y + N.log(fac) - - return y - diff --git a/scikits/learn/em/doc/Makefile b/scikits/learn/em/doc/Makefile deleted file mode 100644 index 00c460adc3..0000000000 --- a/scikits/learn/em/doc/Makefile +++ /dev/null @@ -1,50 +0,0 @@ -# Last Change: Sun Jul 22 11:00 AM 2007 J - -# This makefile is used to build the pdf from the rest file and inlined code -# from python examples - -py2tex = pygmentize -l python -f tex -rst2tex = PYTHONPATH=/home/david/local/lib/python2.4/site-packages rst2newlatex.py \ - --stylesheet-path base.tex --user-stylesheet user.tex - -pytexfiles = pyem.tex basic_example1.tex basic_example2.tex basic_example3.tex pdfestimation.tex discriminant_analysis.tex - -SOURCEPATH = $(PWD) - -EXTTOCLEAN=.chk .dvi .log .aux .bbl .blg .blig .ilg .toc .lof .lot .idx .ind .out .bak .ps .pdf .bm - -tutorial.pdf: pyem.pdf - mv $< $@ - -pyem.pdf: $(pytexfiles) - pdflatex $< - pdflatex $< - pdflatex $< - -pyem.tex: index.txt - $(rst2tex) $< > $@ - -basic_example1.tex: ../examples/basic_example1.py - $(py2tex) $< > $@ - -basic_example2.tex: ../examples/basic_example2.py - $(py2tex) $< > $@ - -basic_example3.tex: ../examples/basic_example3.py - $(py2tex) $< > $@ - -pdfestimation.tex: ../examples/pdfestimation.py - $(py2tex) $< > $@ - -discriminant_analysis.tex: ../examples/discriminant_analysis.py - $(py2tex) $< > $@ - -clean: - for i in $(pytexfiles); do \ - rm -f `echo $$i`; \ - done; - for i in $(SOURCEPATH); do \ - for j in $(EXTTOCLEAN); do \ - rm -f `echo $$i/*$$j`; \ - done; \ - done; diff --git a/scikits/learn/em/doc/base.tex b/scikits/learn/em/doc/base.tex deleted file mode 100644 index b10ea72c7a..0000000000 --- a/scikits/learn/em/doc/base.tex +++ /dev/null @@ -1,1182 +0,0 @@ -% System stylesheet for the new LaTeX writer, newlatex2e. - -% Major parts of the rendering are done in this stylesheet and not in the -% Python module. - -% For development notes, see notes.txt. - -% User documentation (in the stylesheet for now; that may change though): - -% Naming conventions: -% All uppercase letters in macro names have a specific meaning. -% \D...: All macros introduced by the Docutils LaTeX writer start with "D". -% \DS<name>: Setup function (called at the bottom of this stylesheet). -% \DN<nodename>{<contents>}: Handler for Docutils document tree node `node`; called by -% the Python module. -% \DEV<name>: External variable, set by the Python module. -% \DEC<name>: External command. It is called by the Python module and must be -% defined in this stylesheet. -% \DN<nodename>A<attribute>{<number>}{<attribute>}{<value>}{<nodename>}{<contents>}: -% Attribute handler for `attribute` set on nodes of type `nodename`. -% See below for a discussion of attribute handlers. -% \DA<attribute>{<number>}{<attribute>}{<value>}{<nodename>}{<contents>}: -% Attribute handler for all `attribute`. Called only when no specific -% \DN<nodename>A<attribute> handler is defined. -% \DN<nodename>C<class>{<contents>}: -% Handler for `class`, when set on nodes of type `nodename`. -% \DC<class>{<contents>}: -% Handler for `class`. Called only when no specific \DN<nodename>C<class> -% handler is defined. -% \D<name>: Generic variable or function. - -% Attribute handlers: -% TODO - -% --------------------------------------------------------------------------- - -% Having to intersperse code with \makeatletter-\makeatother pairs is very -% annoying, so we call \makeatletter at the top and \makeatother at the -% bottom. Just be aware that you cannot use "@" as a text character inside -% this stylesheet. -\makeatletter - -% Print-mode (as opposed to online mode e.g. with Adobe Reader). -% This causes for example blue hyperlinks. -\providecommand{\Dprinting}{false} - -% \DSearly is called right after \documentclass. -\providecommand{\DSearly}{} -% \DSlate is called at the end of the stylesheet (right before the document -% tree). -\providecommand{\DSlate}{} - -% Use the KOMA script article class. -\providecommand{\Ddocumentclass}{scrartcl} -\providecommand{\Ddocumentoptions}{a4paper} -\providecommand{\DSdocumentclass}{ - \documentclass[\Ddocumentoptions]{\Ddocumentclass} } - -% Todo: This should be movable to the bottom, but it isn't as long as -% we use \usepackage commands at the top level of this stylesheet -% (which we shouldn't). -\DSdocumentclass - -\providecommand{\DSpackages}{ - % Load miscellaneous packages. - % Note 1: Many of the packages loaded here are used throughout this stylesheet. - % If one of these packages does not work on your system or in your scenario, - % please let us know, so we can consider making the package optional. - % Note 2: It would appear cleaner to load packages where they are used. - % However, since using a wrong package loading order can lead to *very* - % subtle bugs, we centralize the loading of most packages here. - \DSfontencoding % load font encoding packages - \DSlanguage % load babel - % Using \ifthenelse conditionals. - \usepackage{ifthen} % before hyperref (really!) - % There is not support for *not* using hyperref because it's used in many - % places. If this is a problem (e.g. because hyperref doesn't work on your - % system), please let us know. - \usepackage[colorlinks=false,pdfborder={0 0 0}]{hyperref} - % Get color, e.g. for links and system messages. - \usepackage{color} - % Get \textnhtt macro (non-hyphenating type writer). - \usepackage{hyphenat} - % For sidebars. - \usepackage{picins} - % We use longtable to create tables. - \usepackage{longtable} - % Images. - \usepackage{graphicx} - % These packages might be useful (some just add magic pixie dust), so - % evaluate them: - %\usepackage{fixmath} - %\usepackage{amsmath} - % Add some missing symbols like \textonehalf. - \usepackage{textcomp} -} - -\providecommand{\DSfontencoding}{ - % Set up font encoding. Called by \DSpackages. - % AE is a T1 emulation. It provides mostly the same characters and - % features as T1-encoded fonts but doesn't use bitmap fonts (which are - % unsuitable for online reading and subtle for printers). - \usepackage{ae} - % Provide the characters not contained in AE from EC bitmap fonts. - \usepackage{aecompl} - % Guillemets ("<<", ">>") in AE. - \usepackage{aeguill} -} - -\providecommand{\DSsymbols}{% - % Fix up symbols. - % The Euro symbol in Computer Modern looks, um, funny. Let's get a - % proper Euro symbol. - \usepackage{eurosym}% - \renewcommand{\texteuro}{\euro}% -} - -% Taken from -% <http://groups.google.de/groups?selm=1i0n5tgtplti420e1omp4pctlv19jpuhbb%404ax.com> -% and modified. Used with permission. -\providecommand{\Dprovidelength}[2]{% - \begingroup% - \escapechar\m@ne% - \xdef\@gtempa{{\string#1}}% - \endgroup% - \expandafter\@ifundefined\@gtempa% - {\newlength{#1}\setlength{#1}{#2}}% - {}% -} - -\providecommand{\Dprovidecounter}[2]{% - % Like \newcounter except that it doesn't crash if the counter - % already exists. - \@ifundefined{c@#1}{\newcounter{#1}\setcounter{#1}{#2}}{} -} - -\Dprovidelength{\Dboxparindent}{\parindent} - -\providecommand{\Dmakebox}[1]{% - % Make a centered, frameless box. Useful e.g. for block quotes. - % Do not use minipages here, but create pseudo-lists to allow - % page-breaking. (Don't use KOMA-script's addmargin environment - % because it messes up bullet lists.) - \Dmakelistenvironment{}{}{% - \setlength{\parskip}{0pt}% - \setlength{\parindent}{\Dboxparindent}% - \item{#1}% - }% -} - -\providecommand{\Dmakefbox}[1]{% - % Make a centered, framed box. Useful e.g. for admonitions. - \vspace{0.4\baselineskip}% - \begin{center}% - \fbox{% - \begin{minipage}[t]{0.9\linewidth}% - \setlength{\parindent}{\Dboxparindent}% - #1% - \end{minipage}% - }% - \end{center}% - \vspace{0.4\baselineskip}% -} - -% We do not currently recognize the difference between an end-sentence and a -% mid-sentence period (". " vs. ". " in plain text). So \frenchspacing is -% appropriate. -\providecommand{\DSfrenchspacing}{\frenchspacing} - - -\Dprovidelength{\Dblocklevelvspace}{% - % Space between block-level elements other than paragraphs. - 0.7\baselineskip plus 0.3\baselineskip minus 0.2\baselineskip% -} -\providecommand{\DECauxiliaryspace}{% - \ifthenelse{\equal{\Dneedvspace}{true}}{\vspace{\Dblocklevelvspace}}{}% - \par\noindent% -} -\providecommand{\DECparagraphspace}{\par} -\providecommand{\Dneedvspace}{true} - -\providecommand{\DSlanguage}{% - % Set up babel. - \usepackage[\DEVlanguagebabel]{babel} -} - -\providecommand{\Difdefined}[3]{\@ifundefined{#1}{#3}{#2}} - -% Handler for 'classes' attribute (called for each class attribute). -\providecommand{\DAclasses}[5]{% - % Dispatch to \DN<nodename>C<class>. - \Difdefined{DN#4C#3}{% - % Pass only contents, nothing else! - \csname DN#4C#3\endcsname{#5}% - }{% - % Otherwise, dispatch to \DC<class>. - \Difdefined{DC#3}{% - \csname DC#3\endcsname{#5}% - }{% - #5% - }% - }% -} - -\providecommand{\DECattr}[5]{% - % Global attribute dispatcher, called inside the document tree. - % Parameters: - % 1. Attribute number. - % 2. Attribute name. - % 3. Attribute value. - % 4. Node name. - % 5. Node contents. - \Difdefined{DN#4A#2}{% - % Dispatch to \DN<nodename>A<attribute>. - \csname DN#4A#2\endcsname{#1}{#2}{#3}{#4}{#5}% - }{\Difdefined{DA#2}{% - % Otherwise dispatch to \DA<attribute>. - \csname DA#2\endcsname{#1}{#2}{#3}{#4}{#5}% - }{% - % Otherwise simply run the contents without calling a handler. - #5% - }}% -} - -% ---------- Link handling ---------- -% Targets and references. - -\providecommand{\Draisedlink}[1]{% - % Anchors are placed on the base line by default. This is a bad thing for - % inline context, so we raise the anchor (normally by \baselineskip). - \Hy@raisedlink{#1}% -} - -% References. -% We're assuming here that the "refid" and "refuri" attributes occur -% only in inline context (in TextElements). -\providecommand{\DArefid}[5]{% - \ifthenelse{\equal{#4}{reference}}{% - \Dexplicitreference{\##3}{#5}% - }{% - % If this is not a target node (targets with refids are - % uninteresting and should be silently dropped). - \ifthenelse{\not\equal{#4}{target}}{% - % If this is a footnote reference, call special macro. - \ifthenelse{\equal{#4}{footnotereference}}{% - \Dimplicitfootnotereference{\##3}{#5}% - }{% - \ifthenelse{\equal{#4}{citationreference}}{% - \Dimplicitcitationreference{\##3}{#5}% - }{% - \Dimplicitreference{\##3}{#5}% - }% - }% - }{}% - }% -} -\providecommand{\DArefuri}[5]{% - \ifthenelse{\equal{#4}{target}}{% - % The node name is 'target', so this is a hyperlink target, like this: - % .. _mytarget: URI - % Hyperlink targets are ignored because they are invisible. - }{% - % If a non-target node has a refuri attribute, it must be an explicit URI - % reference (i.e. node name is 'reference'). - \Durireference{#3}{#5}% - }% -} -% Targets. -\providecommand{\DAids}[5]{% - \label{#3}% - \ifthenelse{\equal{#4}{footnotereference}}{% - {% - \renewcommand{\HyperRaiseLinkDefault}{% - % Dirty hack to make backrefs to footnote references work. - % For some reason, \baselineskip is 0pt in fn references. - 0.5\Doriginalbaselineskip% - }% - \Draisedlink{\hypertarget{#3}{}}#5% - }% - }{% - \Draisedlink{\hypertarget{#3}{}}#5% - }% -} -\providecommand{\Dimplicitreference}[2]{% - % Create implicit reference to ID. Implicit references occur - % e.g. in TOC-backlinks of section titles. Parameters: - % 1. Target. - % 2. Link text. - \href{#1}{#2}% -} -\providecommand{\Dimplicitfootnotereference}[2]{% - % Ditto, but for the special case of footnotes. - % We want them to be rendered like explicit references. - \Dexplicitreference{#1}{#2}% -} -\providecommand{\Dimplicitcitationreference}[2]{% - % Ditto for citation references. - \Dimplicitfootnotereference{#1}{#2}% -} -\providecommand{\Dcolorexplicitreference}{% - \ifthenelse{\equal{\Dprinting}{true}}{\color{black}}{\color{blue}}% -} -\providecommand{\Dexplicitreference}[2]{% - % Create explicit reference to ID, e.g. created with "foo_". - % Parameters: - % 1. Target. - % 2. Link text. - \href{#1}{{\Dcolorexplicitreference#2}}% -} -\providecommand{\Dcolorurireference}{\Dcolorexplicitreference} -\providecommand{\Durireference}[2]{% - % Create reference to URI. Parameters: - % 1. Target. - % 2. Link text. - \href{#1}{{\Dcolorurireference#2}}% -} - -\Dprovidecounter{Dpdfbookmarkid}{0}% -\providecommand{\Dpdfbookmark}[1]{% - % Temporarily decrement Desctionlevel counter. - \addtocounter{Dsectionlevel}{-1}% - %\typeout{\arabic{Dsectionlevel}}% - %\typeout{#1}% - %\typeout{docutils\roman{Dpdfbookmarkid}}% - %\typeout{}% - \pdfbookmark[\arabic{Dsectionlevel}]{#1}{docutils\arabic{Dpdfbookmarkid}}% - \addtocounter{Dsectionlevel}{1}% - \addtocounter{Dpdfbookmarkid}{1}% -} -% ---------- End of Link Handling ---------- - -\providecommand{\DNparagraph}[1]{% - \ifthenelse{\equal{\DEVparagraphindented}{true}}{\indent}{\noindent}% - #1% -} -\providecommand{\Dformatboxtitle}[1]{{\Large\textbf{#1}}} -\providecommand{\Dformatboxsubtitle}[1]{{\large\textbf{#1}}} -\providecommand{\Dtopictitle}[1]{% - \Difinsidetoc{\vspace{1em}\par}{}% - \noindent\Dformatboxtitle{#1}% - \ifthenelse{\equal{\DEVhassubtitle}{false}}{\vspace{1em}}{\vspace{0.5em}}% - \par% -} -\providecommand{\Dadmonitiontitle}[1]{% - \Dtopictitle{#1}% -} -\providecommand{\Dtopicsubtitle}[1]{% - \noindent\Dformatboxsubtitle{#1}% - \vspace{1em}% - \par% -} -\providecommand{\Dsidebartitle}[1]{\Dtopictitle{#1}} -\providecommand{\Dsidebarsubtitle}[1]{\Dtopicsubtitle{#1}} -\providecommand{\Ddocumenttitle}[1]{% - \begin{center}{\Huge#1}\end{center}% - \ifthenelse{\equal{\DEVhassubtitle}{true}}{\vspace{0.1cm}}{\vspace{1cm}}% -} -\providecommand{\Ddocumentsubtitle}[1]{% - \begin{center}{\huge#1}\end{center}% - \vspace{1cm}% -} -% Can be overwritten by user stylesheet. -\providecommand{\Dformatsectiontitle}[1]{#1} -\providecommand{\Dformatsectionsubtitle}[1]{\Dformatsectiontitle{#1}} -\providecommand{\Dbookmarksectiontitle}[1]{% - % Return text suitable for use in \section*, \subsection*, etc., - % containing a PDF bookmark. Parameter: The title (as node tree). - \Draisedlink{\Dpdfbookmark{\DEVtitleastext}}% - #1% -} -\providecommand{\Dsectiontitlehook}[1]{#1} -\providecommand{\Dsectiontitle}[1]{% - \Dsectiontitlehook{% - \Ddispatchsectiontitle{\Dbookmarksectiontitle{\Dformatsectiontitle{#1}}}% - }% -} -\providecommand{\Ddispatchsectiontitle}[1]{% - \@ifundefined{Dsectiontitle\roman{Dsectionlevel}}{% - \Ddeepsectiontitle{#1}% - }{% - \csname Dsectiontitle\roman{Dsectionlevel}\endcsname{#1}% - }% -} -\providecommand{\Ddispatchsectionsubtitle}[1]{% - \Ddispatchsectiontitle{#1}% -} -\providecommand{\Dsectiontitlei}[1]{\section*{#1}} -\providecommand{\Dsectiontitleii}[1]{\subsection*{#1}} -\providecommand{\Ddeepsectiontitle}[1]{% - % Anything below \subsubsection (like \paragraph or \subparagraph) - % is useless because it uses the same font. The only way to - % (visually) distinguish such deeply nested sections is to use - % section numbering. - \subsubsection*{#1}% -} -\providecommand{\Dsectionsubtitlehook}[1]{#1} -\Dprovidelength{\Dsectionsubtitleraisedistance}{0.7em} -\providecommand{\Dsectionsubtitlescaling}{0.85} -\providecommand{\Dsectionsubtitle}[1]{% - \Dsectionsubtitlehook{% - % Move the subtitle nearer to the title. - \vspace{-\Dsectionsubtitleraisedistance}% - % Don't create a PDF bookmark. - \Ddispatchsectionsubtitle{% - \Dformatsectionsubtitle{\scalebox{\Dsectionsubtitlescaling}{#1}}% - }% - }% -} -\providecommand{\DNtitle}[1]{% - % Dispatch to \D<parent>title. - \csname D\DEVparent title\endcsname{#1}% -} -\providecommand{\DNsubtitle}[1]{% - % Dispatch to \D<parent>subtitle. - \csname D\DEVparent subtitle\endcsname{#1}% -} - -\providecommand{\DNliteralblock}[1]{% - \Dmakelistenvironment{}{% - \ifthenelse{\equal{\Dinsidetabular}{true}}{% - \setlength{\leftmargin}{0pt}% - }{}% - \setlength{\rightmargin}{0pt}% - }{% - \raggedright\item\noindent\nohyphens{\textnhtt{#1\Dfinalstrut}}% - }% -} -\providecommand{\DNdoctestblock}[1]{\DNliteralblock{#1}} -\providecommand{\DNliteral}[1]{\textnhtt{#1}} -\providecommand{\DNemphasis}[1]{\emph{#1}} -\providecommand{\DNstrong}[1]{\textbf{#1}} -\providecommand{\DECvisitdocument}{\begin{document}\noindent} -\providecommand{\DECdepartdocument}{\end{document}} -\providecommand{\DNtopic}[1]{% - \ifthenelse{\equal{\DEVcurrentNtopicAcontents}{1}}{% - \addtocounter{Dtoclevel}{1}% - \par\noindent% - #1% - \addtocounter{Dtoclevel}{-1}% - }{% - \par\noindent% - \Dmakebox{#1}% - }% -} -\providecommand{\DNadmonition}[1]{% - \DNtopic{#1}% -} -\providecommand{\Dformatrubric}[1]{\textbf{#1}} -\Dprovidelength{\Dprerubricspace}{0.3em} -\providecommand{\DNrubric}[1]{% - \vspace{\Dprerubricspace}\par\noindent\Dformatrubric{#1}\par% -} - -\providecommand{\Dbullet}{} -\providecommand{\DECsetbullet}[1]{\renewcommand{\Dbullet}{#1}} -\providecommand{\DNbulletlist}[1]{% - \Difinsidetoc{% - \Dtocbulletlist{#1}% - }{% - \Dmakelistenvironment{\Dbullet}{}{#1}% - }% -} -% Todo: So what on earth is @pnumwidth? -\renewcommand{\@pnumwidth}{2.2em} -\providecommand{\DNlistitem}[1]{% - \Difinsidetoc{% - \ifthenelse{\equal{\theDtoclevel}{1}\and\equal{\Dlocaltoc}{false}}{% - {% - \par\addvspace{1em}\noindent% - \sectfont% - #1\hfill\pageref{\DEVcurrentNlistitemAtocrefid}% - }% - }{% - \@dottedtocline{0}{\Dtocindent}{0em}{#1}{% - \pageref{\DEVcurrentNlistitemAtocrefid}% - }% - }% - }{% - \item{#1}% - }% -} -\providecommand{\DNenumeratedlist}[1]{#1} -\Dprovidecounter{Dsectionlevel}{0} -\providecommand{\Dvisitsectionhook}{} -\providecommand{\Ddepartsectionhook}{} -\providecommand{\DECvisitsection}{% - \addtocounter{Dsectionlevel}{1}% - \Dvisitsectionhook% -} -\providecommand{\DECdepartsection}{% - \Ddepartsectionhook% - \addtocounter{Dsectionlevel}{-1}% -} - -% Using \_ will cause hyphenation after _ even in \textnhtt-typewriter -% because the hyphenat package redefines \_. So we use -% \textunderscore here. -\providecommand{\DECtextunderscore}{\textunderscore} - -\providecommand{\Dtextinlineliteralfirstspace}{{ }} -\providecommand{\Dtextinlineliteralsecondspace}{{~}} - -\Dprovidelength{\Dlistspacing}{0.8\baselineskip} - -\providecommand{\Dsetlistrightmargin}{% - \ifthenelse{\lengthtest{\linewidth>12em}}{% - % Equal margins. - \setlength{\rightmargin}{\leftmargin}% - }{% - % If the line is narrower than 10em, we don't remove any further - % space from the right. - \setlength{\rightmargin}{0pt}% - }% -} -\providecommand{\Dresetlistdepth}{false} -\Dprovidelength{\Doriginallabelsep}{\labelsep} -\providecommand{\Dmakelistenvironment}[3]{% - % Make list environment with support for unlimited nesting and with - % reasonable default lengths. Parameters: - % 1. Label (same as in list environment). - % 2. Spacing (same as in list environment). - % 3. List contents (contents of list environment). - \ifthenelse{\equal{\Dinsidetabular}{true}}{% - % Unfortunately, vertical spacing doesn't work correctly when - % using lists inside tabular environments, so we use a minipage. - \begin{minipage}[t]{\linewidth}% - }{}% - {% - \renewcommand{\Dneedvspace}{false}% - % \parsep0.5\baselineskip - \renewcommand{\Dresetlistdepth}{false}% - \ifnum \@listdepth>5% - \protect\renewcommand{\Dresetlistdepth}{true}% - \@listdepth=5% - \fi% - \begin{list}{% - #1% - }{% - \setlength{\itemsep}{0pt}% - \setlength{\partopsep}{0pt}% - \setlength{\topsep}{0pt}% - % List should take 90% of total width. - \setlength{\leftmargin}{0.05\linewidth}% - \ifthenelse{\lengthtest{\leftmargin<1.8em}}{% - \setlength{\leftmargin}{1.8em}% - }{}% - \setlength{\labelsep}{\Doriginallabelsep}% - \Dsetlistrightmargin% - #2% - }{% - #3% - }% - \end{list}% - \ifthenelse{\equal{\Dresetlistdepth}{true}}{\@listdepth=5}{}% - }% - \ifthenelse{\equal{\Dinsidetabular}{true}}{\end{minipage}}{}% -} -\providecommand{\Dfinalstrut}{\@finalstrut\@arstrutbox} -\providecommand{\DAlastitem}[5]{#5\Dfinalstrut} - -\Dprovidelength{\Ditemsep}{0pt} -\providecommand{\DECmakeenumeratedlist}[6]{% - % Make enumerated list. - % Parameters: - % - prefix - % - type (\arabic, \roman, ...) - % - suffix - % - suggested counter name - % - start number - 1 - % - list contents - \newcounter{#4}% - \Dmakelistenvironment{#1#2{#4}#3}{% - % Use as much space as needed for the label. - \setlength{\labelwidth}{10em}% - % Reserve enough space so that the label doesn't go beyond the - % left margin of preceding paragraphs. Like that: - % - % A paragraph. - % - % 1. First item. - \setlength{\leftmargin}{2.5em}% - \Dsetlistrightmargin% - \setlength{\itemsep}{\Ditemsep}% - % Use counter recommended by Python module. - \usecounter{#4}% - % Set start value. - \addtocounter{#4}{#5}% - }{% - % The list contents. - #6% - }% -} - - -% Single quote in literal mode. \textquotesingle from package -% textcomp has wrong width when using package ae, so we use a normal -% single curly quote here. -\providecommand{\DECtextliteralsinglequote}{'} - - -% "Tabular lists" are field lists and options lists (not definition -% lists because there the term always appears on its own line). We'll -% use the terminology of field lists now ("field", "field name", -% "field body"), but the same is also analogously applicable to option -% lists. -% -% We want these lists to be breakable across pages. We cannot -% automatically get the narrowest possible size for the left column -% (i.e. the field names or option groups) because tabularx does not -% support multi-page tables, ltxtable needs to have the table in an -% external file and we don't want to clutter the user's directories -% with auxiliary files created by the filecontents environment, and -% ltablex is not included in teTeX. -% -% Thus we set a fixed length for the left column and use list -% environments. This also has the nice side effect that breaking is -% now possible anywhere, not just between fields. -% -% Note that we are creating a distinct list environment for each -% field. There is no macro for a whole tabular list! -\Dprovidelength{\Dtabularlistfieldnamewidth}{6em} -\Dprovidelength{\Dtabularlistfieldnamesep}{0.5em} -\providecommand{\Dinsidetabular}{false} -\providecommand{\Dsavefieldname}{} -\providecommand{\Dsavefieldbody}{} -\Dprovidelength{\Dusedfieldnamewidth}{0pt} -\Dprovidelength{\Drealfieldnamewidth}{0pt} -\providecommand{\Dtabularlistfieldname}[1]{\renewcommand{\Dsavefieldname}{#1}} -\providecommand{\Dtabularlistfieldbody}[1]{\renewcommand{\Dsavefieldbody}{#1}} -\Dprovidelength{\Dparskiptemp}{0pt} -\providecommand{\Dtabularlistfield}[1]{% - {% - % This only saves field name and field body in \Dsavefieldname and - % \Dsavefieldbody, resp. It does not insert any text into the - % document. - #1% - % Recalculate the real field name width everytime we encounter a - % tabular list field because it may have been changed using a - % "raw" node. - \setlength{\Drealfieldnamewidth}{\Dtabularlistfieldnamewidth}% - \addtolength{\Drealfieldnamewidth}{\Dtabularlistfieldnamesep}% - \Dmakelistenvironment{% - \makebox[\Drealfieldnamewidth][l]{\Dsavefieldname}% - }{% - \setlength{\labelwidth}{\Drealfieldnamewidth}% - \setlength{\leftmargin}{\Drealfieldnamewidth}% - \setlength{\rightmargin}{0pt}% - \setlength{\labelsep}{0pt}% - }{% - \item% - \settowidth{\Dusedfieldnamewidth}{\Dsavefieldname}% - \setlength{\Dparskiptemp}{\parskip}% - \ifthenelse{% - \lengthtest{\Dusedfieldnamewidth>\Dtabularlistfieldnamewidth}% - }{% - \mbox{}\par% - \setlength{\parskip}{0pt}% - }{}% - \Dsavefieldbody% - \setlength{\parskip}{\Dparskiptemp}% - %XXX Why did we need this? - %\@finalstrut\@arstrutbox% - }% - \par% - }% -} - -\providecommand{\Dformatfieldname}[1]{\textbf{#1:}} -\providecommand{\DNfieldlist}[1]{#1} -\providecommand{\DNfield}[1]{\Dtabularlistfield{#1}} -\providecommand{\DNfieldname}[1]{% - \Dtabularlistfieldname{% - \Dformatfieldname{#1}% - }% -} -\providecommand{\DNfieldbody}[1]{\Dtabularlistfieldbody{#1}} - -\providecommand{\Dformatoptiongroup}[1]{% - % Format option group, e.g. "-f file, --input file". - \texttt{#1}% -} -\providecommand{\Dformatoption}[1]{% - % Format option, e.g. "-f file". - % Put into mbox to avoid line-breaking at spaces. - \mbox{#1}% -} -\providecommand{\Dformatoptionstring}[1]{% - % Format option string, e.g. "-f". - #1% -} -\providecommand{\Dformatoptionargument}[1]{% - % Format option argument, e.g. "file". - \textsl{#1}% -} -\providecommand{\Dformatoptiondescription}[1]{% - % Format option description, e.g. - % "\DNparagraph{Read input data from file.}" - #1% -} -\providecommand{\DNoptionlist}[1]{#1} -\providecommand{\Doptiongroupjoiner}{,{ }} -\providecommand{\Disfirstoption}{% - % Auxiliary macro indicating if a given option is the first child - % of its option group (if it's not, it has to preceded by - % \Doptiongroupjoiner). - false% -} -\providecommand{\DNoptionlistitem}[1]{% - \Dtabularlistfield{#1}% -} -\providecommand{\DNoptiongroup}[1]{% - \renewcommand{\Disfirstoption}{true}% - \Dtabularlistfieldname{\Dformatoptiongroup{#1}}% -} -\providecommand{\DNoption}[1]{% - % If this is not the first option in this option group, add a - % joiner. - \ifthenelse{\equal{\Disfirstoption}{true}}{% - \renewcommand{\Disfirstoption}{false}% - }{% - \Doptiongroupjoiner% - }% - \Dformatoption{#1}% -} -\providecommand{\DNoptionstring}[1]{\Dformatoptionstring{#1}} -\providecommand{\DNoptionargument}[1]{{ }\Dformatoptionargument{#1}} -\providecommand{\DNdescription}[1]{% - \Dtabularlistfieldbody{\Dformatoptiondescription{#1}}% -} - -\providecommand{\DNdefinitionlist}[1]{% - \begin{description}% - \parskip0pt% - #1% - \end{description}% -} -\providecommand{\DNdefinitionlistitem}[1]{% - % LaTeX expects the label in square brackets; we provide an empty - % label. - \item[]#1% -} -\providecommand{\Dformatterm}[1]{#1} -\providecommand{\DNterm}[1]{\hspace{-5pt}\Dformatterm{#1}} -% I'm still not sure what's the best rendering for classifiers. The -% colon syntax is used by reStructuredText, so it's at least WYSIWYG. -% Use slanted text because italic would cause too much emphasis. -\providecommand{\Dformatclassifier}[1]{\textsl{#1}} -\providecommand{\DNclassifier}[1]{~:~\Dformatclassifier{#1}} -\providecommand{\Dformatdefinition}[1]{#1} -\providecommand{\DNdefinition}[1]{\par\Dformatdefinition{#1}} - -\providecommand{\Dlineblockindentation}{2.5em} -\providecommand{\DNlineblock}[1]{% - \Dmakelistenvironment{}{% - \ifthenelse{\equal{\DEVparent}{lineblock}}{% - % Parent is a line block, so indent. - \setlength{\leftmargin}{\Dlineblockindentation}% - }{% - % At top level; don't indent. - \setlength{\leftmargin}{0pt}% - }% - \setlength{\rightmargin}{0pt}% - \setlength{\parsep}{0pt}% - }{% - #1% - }% -} -\providecommand{\DNline}[1]{\item#1} - -\providecommand{\DNtransition}{% - \raisebox{0.25em}{\parbox{\linewidth}{\hspace*{\fill}\hrulefill\hrulefill\hspace*{\fill}}}% -} - -\providecommand{\Dformatblockquote}[1]{% - % Format contents of block quote. - % This occurs in block-level context, so we cannot use \textsl. - {\slshape#1}% -} -\providecommand{\Dformatattribution}[1]{---\textup{#1}} -\providecommand{\DNblockquote}[1]{% - \Dmakebox{% - \Dformatblockquote{#1} - }% -} -\providecommand{\DNattribution}[1]{% - \par% - \begin{flushright}\Dformatattribution{#1}\end{flushright}% -} - - -% Sidebars: -% Vertical and horizontal margins. -\Dprovidelength{\Dsidebarvmargin}{0.5em} -\Dprovidelength{\Dsidebarhmargin}{1em} -% Padding (space between contents and frame). -\Dprovidelength{\Dsidebarpadding}{1em} -% Frame width. -\Dprovidelength{\Dsidebarframewidth}{2\fboxrule} -% Position ("l" or "r"). -\providecommand{\Dsidebarposition}{r} -% Width. -\Dprovidelength{\Dsidebarwidth}{0.45\linewidth} -\providecommand{\DNsidebar}[1]{ - \parpic[\Dsidebarposition]{% - \begin{minipage}[t]{\Dsidebarwidth}% - % Doing this with nested minipages is ugly, but I haven't found - % another way to place vertical space before and after the fbox. - \vspace{\Dsidebarvmargin}% - {% - \setlength{\fboxrule}{\Dsidebarframewidth}% - \setlength{\fboxsep}{\Dsidebarpadding}% - \fbox{% - \begin{minipage}[t]{\linewidth}% - \setlength{\parindent}{\Dboxparindent}% - #1% - \end{minipage}% - }% - }% - \vspace{\Dsidebarvmargin}% - \end{minipage}% - }% -} - - -% Citations and footnotes. -\providecommand{\Dformatfootnote}[1]{% - % Format footnote. - {% - \footnotesize#1% - % \par is necessary for LaTeX to adjust baselineskip to the - % changed font size. - \par% - }% -} -\providecommand{\Dformatcitation}[1]{\Dformatfootnote{#1}} -\Dprovidelength{\Doriginalbaselineskip}{0pt} -\providecommand{\DNfootnotereference}[1]{% - {% - % \baselineskip is 0pt in \textsuperscript, so we save it here. - \setlength{\Doriginalbaselineskip}{\baselineskip}% - \textsuperscript{#1}% - }% -} -\providecommand{\DNcitationreference}[1]{{[}#1{]}} -\Dprovidelength{\Dfootnotesep}{3.5pt} -\providecommand{\Dsetfootnotespacing}{% - % Spacing commands executed at the beginning of footnotes. - \setlength{\parindent}{0pt}% - \hspace{1em}% -} -\providecommand{\DNfootnote}[1]{% - % See ltfloat.dtx for details. - {% - \insert\footins{% - % BUG: This is too small if the user adds - % \onehalfspacing or \doublespace. - \vspace{\Dfootnotesep}% - \Dsetfootnotespacing% - \Dformatfootnote{#1}% - }% - }% -} -\providecommand{\DNcitation}[1]{\DNfootnote{#1}} -\providecommand{\Dformatfootnotelabel}[1]{% - % Keep \footnotesize in footnote labels (\textsuperscript would - % reduce the font size even more). - \textsuperscript{\footnotesize#1{ }}% -} -\providecommand{\Dformatcitationlabel}[1]{{[}#1{]}{ }} -\providecommand{\Dformatmultiplebackrefs}[1]{% - % If in printing mode, do not write out multiple backrefs. - \ifthenelse{\equal{\Dprinting}{true}}{}{\textsl{#1}}% -} -\providecommand{\Dthislabel}{} -\providecommand{\DNlabel}[1]{% - % Footnote or citatation label. - \renewcommand{\Dthislabel}{#1}% - \ifthenelse{\not\equal{\DEVsinglebackref}{}}{% - \let\Doriginallabel=\Dthislabel% - \def\Dthislabel{% - \Dsinglefootnotebacklink{\DEVsinglebackref}{\Doriginallabel}% - }% - }{}% - \ifthenelse{\equal{\DEVparent}{footnote}}{% - % Footnote label. - \Dformatfootnotelabel{\Dthislabel}% - }{% - \ifthenelse{\equal{\DEVparent}{citation}}{% - % Citation label. - \Dformatcitationlabel{\Dthislabel}% - }{}% - }% - % If there are multiple backrefs, add them now. - \Dformatmultiplebackrefs{\DEVmultiplebackrefs}% -} -\providecommand{\Dsinglefootnotebacklink}[2]{% - % Create normal backlink of a footnote label. Parameters: - % 1. ID. - % 2. Link text. - % Treat like a footnote reference. - \Dimplicitfootnotereference{\##1}{#2}% -} -\providecommand{\DECmultifootnotebacklink}[2]{% - % Create generated backlink, as in (1, 2). Parameters: - % 1. ID. - % 2. Link text. - % Treat like a footnote reference. - \Dimplicitfootnotereference{\##1}{#2}% -} -\providecommand{\Dsinglecitationbacklink}[2]{\Dsinglefootnotebacklink{#1}{#2}} -\providecommand{\DECmulticitationbacklink}[2]{\DECmultifootnotebacklink{#1}{#2}} - - -\providecommand{\DECmaketable}[2]{% - % Make table. Parameters: - % 1. Table spec (like "|p|p|"). - % 2. Table contents. - {% - \ifthenelse{\equal{\Dinsidetabular}{true}}{% - % Inside longtable; we cannot have nested longtables. - \begin{tabular}{#1}% - \hline% - #2% - \end{tabular}% - }{% - \renewcommand{\Dinsidetabular}{true}% - \begin{longtable}{#1}% - \hline% - #2% - \end{longtable}% - }% - }% -} -\providecommand{\DNthead}[1]{% - #1% - \endhead% -} -\providecommand{\DNrow}[1]{% - #1\tabularnewline% - \hline% -} -\providecommand{\Dinsidemulticolumn}{false} -\providecommand{\Dcompensatingmulticol}[3]{% - \multicolumn{#1}{#2}{% - {% - \renewcommand{\Dinsidemulticolumn}{true}% - % Compensate for weird missing vertical space at top of paragraph. - \raisebox{-2.5pt}{#3}% - }% - }% -} -\providecommand{\DECcolspan}[2]{% - % Take care of the morecols attribute (but incremented by 1). - &% - \Dcompensatingmulticol{#1}{l|}{#2}% -} -\providecommand{\DECcolspanleft}[2]{% - % Like \Dmorecols, but called for the leftmost entries in a table - % row. - \Dcompensatingmulticol{#1}{|l|}{#2}% -} -\providecommand{\DECsubsequententry}[1]{% - % -} -\providecommand{\DNentry}[1]{% - % The following sequence adds minimal vertical space above the top - % lines of the first cell paragraph, so that vertical space is - % balanced at the top and bottom of table cells. - \ifthenelse{\equal{\Dinsidemulticolumn}{false}}{% - \vspace{-1em}\vspace{-\parskip}\par% - }{}% - #1% - % No need to add an ampersand ("&"); that's done by \DECsubsequententry. -} -\providecommand{\DAtableheaderentry}[5]{\Dformattableheaderentry{#5}} -\providecommand{\Dformattableheaderentry}[1]{{\bfseries#1}} - - -\providecommand{\DNsystemmessage}[1]{% - {% - \ifthenelse{\equal{\Dprinting}{false}}{\color{red}}{}% - \bfseries% - #1% - }% -} - - -\providecommand{\Dinsidehalign}{false} -\newsavebox{\Dalignedimagebox} -\Dprovidelength{\Dalignedimagewidth}{0pt} -\providecommand{\Dhalign}[2]{% - % Horizontally align the contents to the left or right so that the - % text flows around it. - % Parameters: - % 1. l or r - % 2. Contents. - \renewcommand{\Dinsidehalign}{true}% - % For some obscure reason \parpic consumes some vertical space. - \vspace{-3pt}% - % Now we do something *really* ugly, but this enables us to wrap the - % image in a minipage while still allowing tight frames when - % class=border (see \DNimageCborder). - \sbox{\Dalignedimagebox}{#2}% - \settowidth{\Dalignedimagewidth}{\usebox{\Dalignedimagebox}}% - \parpic[#1]{% - \begin{minipage}[b]{\Dalignedimagewidth}% - % Compensate for previously added space, but not entirely. - \vspace*{2.0pt}% - \vspace*{\Dfloatimagetopmargin}% - \usebox{\Dalignedimagebox}% - \vspace*{1.5pt}% - \vspace*{\Dfloatimagebottommargin}% - \end{minipage}% - }% - \renewcommand{\Dinsidehalign}{false}% -} - - -% Maximum width of an image. -\providecommand{\Dimagemaxwidth}{\linewidth} -\providecommand{\Dfloatimagemaxwidth}{0.5\linewidth} -% Auxiliary variable. -\Dprovidelength{\Dcurrentimagewidth}{0pt} -\providecommand{\DNimageAalign}[5]{% - \ifthenelse{\equal{#3}{left}}{% - \Dhalign{l}{#5}% - }{% - \ifthenelse{\equal{#3}{right}}{% - \Dhalign{r}{#5}% - }{% - \ifthenelse{\equal{#3}{center}}{% - % Text floating around centered figures is a bad idea. Thus - % we use a center environment. Note that no extra space is - % added by the writer, so the space added by the center - % environment is fine. - \begin{center}#5\end{center}% - }{% - #5% - }% - }% - }% -} -% Base path for images. -\providecommand{\Dimagebase}{} -% Auxiliary command. Current image path. -\providecommand{\Dimagepath}{} -\providecommand{\DNimageAuri}[5]{% - % Insert image. We treat the URI like a path here. - \renewcommand{\Dimagepath}{\Dimagebase#3}% - \Difdefined{DcurrentNimageAwidth}{% - \Dwidthimage{\DEVcurrentNimageAwidth}{\Dimagepath}% - }{% - \Dsimpleimage{\Dimagepath}% - }% -} -\Dprovidelength{\Dfloatimagevmargin}{0pt} -\providecommand{\Dfloatimagetopmargin}{\Dfloatimagevmargin} -\providecommand{\Dfloatimagebottommargin}{\Dfloatimagevmargin} -\providecommand{\Dwidthimage}[2]{% - % Image with specified width. - % Parameters: - % 1. Image width. - % 2. Image path. - % Need to make bottom-alignment dependent on align attribute (add - % functional test first). Need to observe height attribute. - %\begin{minipage}[b]{#1}% - \includegraphics[width=#1,height=\textheight,keepaspectratio]{#2}% - %\end{minipage}% -} -\providecommand{\Dcurrentimagemaxwidth}{} -\providecommand{\Dsimpleimage}[1]{% - % Insert image, without much parametrization. - \settowidth{\Dcurrentimagewidth}{\includegraphics{#1}}% - \ifthenelse{\equal{\Dinsidehalign}{true}}{% - \renewcommand{\Dcurrentimagemaxwidth}{\Dfloatimagemaxwidth}% - }{% - \renewcommand{\Dcurrentimagemaxwidth}{\Dimagemaxwidth}% - }% - \ifthenelse{\lengthtest{\Dcurrentimagewidth>\Dcurrentimagemaxwidth}}{% - \Dwidthimage{\Dcurrentimagemaxwidth}{#1}% - }{% - \Dwidthimage{\Dcurrentimagewidth}{#1}% - }% -} -\providecommand{\Dwidthimage}[2]{% - % Image with specified width. - % Parameters: - % 1. Image width. - % 2. Image path. - \Dwidthimage{#1}{#2}% -} - -% Figures. -\providecommand{\DNfigureAalign}[5]{% - % Hack to make it work Right Now. - %\def\DEVcurrentNimageAwidth{\DEVcurrentNfigureAwidth}% - % - %\def\DEVcurrentNimageAwidth{\linewidth}% - \DNimageAalign{#1}{#2}{#3}{#4}{% - \begin{minipage}[b]{0.4\linewidth}#5\end{minipage}}% - %\let\DEVcurrentNimageAwidth=\relax% - % - %\let\DEVcurrentNimageAwidth=\relax% -} -\providecommand{\DNcaption}[1]{\par\noindent{\slshape#1}} -\providecommand{\DNlegend}[1]{\DECauxiliaryspace#1} - -\providecommand{\DCborder}[1]{\fbox{#1}} -% No padding between image and border. -\providecommand{\DNimageCborder}[1]{\frame{#1}} - - -% Need to replace with language-specific stuff. Maybe look at -% csquotes.sty and ask the author for permission to use parts of it. -\providecommand{\DECtextleftdblquote}{``} -\providecommand{\DECtextrightdblquote}{''} - -% Table of contents: -\Dprovidelength{\Dtocininitialsectnumwidth}{2.4em} -\Dprovidelength{\Dtocadditionalsectnumwidth}{0.7em} -% Level inside a table of contents. While this is at -1, we are not -% inside a TOC. -\Dprovidecounter{Dtoclevel}{-1}% -\providecommand{\Dlocaltoc}{false}% -\providecommand{\DNtopicClocal}[1]{% - \renewcommand{\Dlocaltoc}{true}% - \addtolength{\Dtocsectnumwidth}{2\Dtocadditionalsectnumwidth}% - \addtolength{\Dtocindent}{-2\Dtocadditionalsectnumwidth}% - #1% - \addtolength{\Dtocindent}{2\Dtocadditionalsectnumwidth}% - \addtolength{\Dtocsectnumwidth}{-2\Dtocadditionalsectnumwidth}% - \renewcommand{\Dlocaltoc}{false}% -} -\Dprovidelength{\Dtocindent}{0pt}% -\Dprovidelength{\Dtocsectnumwidth}{\Dtocininitialsectnumwidth} -% Compensate for one additional TOC indentation space so that the -% top-level is unindented. -\addtolength{\Dtocsectnumwidth}{-\Dtocadditionalsectnumwidth} -\addtolength{\Dtocindent}{-\Dtocsectnumwidth} -\providecommand{\Difinsidetoc}[2]{% - \ifthenelse{\not\equal{\theDtoclevel}{-1}}{#1}{#2}% -} -\providecommand{\DNgeneratedCsectnum}[1]{% - \Difinsidetoc{% - % Section number inside TOC. - \makebox[\Dtocsectnumwidth][l]{#1}% - }{% - % Section number inside section title. - #1\quad% - }% -} -\providecommand{\Dtocbulletlist}[1]{% - \addtocounter{Dtoclevel}{1}% - \addtolength{\Dtocindent}{\Dtocsectnumwidth}% - \addtolength{\Dtocsectnumwidth}{\Dtocadditionalsectnumwidth}% - #1% - \addtolength{\Dtocsectnumwidth}{-\Dtocadditionalsectnumwidth}% - \addtolength{\Dtocindent}{-\Dtocsectnumwidth}% - \addtocounter{Dtoclevel}{-1}% -} - - -% For \DECpixelunit, the length value is pre-multiplied with 0.75, so by -% specifying "pt" we get the same notion of "pixel" as graphicx. -\providecommand{\DECpixelunit}{pt} -% Normally lengths are relative to the current linewidth. -\providecommand{\DECrelativeunit}{\linewidth} - - -% ACTION: These commands actually *do* something. -% Ultimately, everything should be done here, and no active content should be -% above (not even \usepackage). - -\DSearly -\DSpackages -\DSfrenchspacing -\DSsymbols -\DSlate - -\makeatother - - \usepackage{fancyvrb} diff --git a/scikits/learn/em/doc/examples/demo1.py b/scikits/learn/em/doc/examples/demo1.py deleted file mode 100644 index 13ed0768ab..0000000000 --- a/scikits/learn/em/doc/examples/demo1.py +++ /dev/null @@ -1,109 +0,0 @@ -#! /usr/bin/env python - -# Example of use of pyem toolbox. Feel free to change parameters -# such as dimension, number of components, mode of covariance. -# -# You can also try less trivial things such as adding outliers, sampling -# a mixture with full covariance and estimating it with a mixture with diagonal -# gaussians (replace the mode of the learned model lgm) -# -# Later, I hope to add functions for number of component estimation using eg BIC - -import numpy as N -from numpy.random import seed - -from scipy.sandbox.pyem import GM, GMM, EM -import copy - -seed(1) -#+++++++++++++++++++++++++++++ -# Meta parameters of the model -# - k: Number of components -# - d: dimension of each Gaussian -# - mode: Mode of covariance matrix: full or diag (string) -# - nframes: number of frames (frame = one data point = one -# row of d elements) -k = 2 -d = 2 -mode = 'diag' -nframes = 1e3 - -#+++++++++++++++++++++++++++++++++++++++++++ -# Create an artificial GM model, samples it -#+++++++++++++++++++++++++++++++++++++++++++ -w, mu, va = GM.gen_param(d, k, mode, spread = 1.5) -gm = GM.fromvalues(w, mu, va) - -# Sample nframes frames from the model -data = gm.sample(nframes) - -#++++++++++++++++++++++++ -# Learn the model with EM -#++++++++++++++++++++++++ - -# Init the model -lgm = GM(d, k, mode) -gmm = GMM(lgm, 'kmean') -gmm.init(data) - -# Keep a copy for drawing later -gm0 = copy.copy(lgm) - -# The actual EM, with likelihood computation. The threshold -# is compared to the (linearly appromixated) derivative of the likelihood -em = EM() -like = em.train(data, gmm, maxiter = 30, thresh = 1e-8) - -#+++++++++++++++ -# Draw the model -#+++++++++++++++ -import pylab as P -P.subplot(2, 1, 1) - -# Level is the confidence level for confidence ellipsoids: 1.0 means that -# all points will be (almost surely) inside the ellipsoid -level = 0.8 -if not d == 1: - P.plot(data[:, 0], data[:, 1], '.', label = '_nolegend_') - - # h keeps the handles of the plot, so that you can modify - # its parameters like label or color - h = gm.plot(level = level) - [i.set_color('g') for i in h] - h[0].set_label('true confidence ellipsoides') - - # Initial confidence ellipses as found by kmean - h = gm0.plot(level = level) - [i.set_color('k') for i in h] - h[0].set_label('kmean confidence ellipsoides') - - # Values found by EM - h = lgm.plot(level = level) - [i.set_color('r') for i in h] - h[0].set_label('EM confidence ellipsoides') - - P.legend(loc = 0) -else: - # The 1d plotting function is quite elaborate: the confidence - # interval are represented by filled areas, the pdf of the mixture and - # the pdf of each component is drawn (optional) - h = gm.plot1d(level = level) - [i.set_color('g') for i in h['pdf']] - h['pdf'][0].set_label('true pdf') - - h0 = gm0.plot1d(level = level) - [i.set_color('k') for i in h0['pdf']] - h0['pdf'][0].set_label('initial pdf') - - hl = lgm.plot1d(fill = 1, level = level) - [i.set_color('r') for i in hl['pdf']] - hl['pdf'][0].set_label('pdf found by EM') - - P.legend(loc = 0) - -P.subplot(2, 1, 2) -P.plot(like) -P.title('log likelihood') - -P.show() -# P.save('2d diag.png') diff --git a/scikits/learn/em/doc/examples/demo2.py b/scikits/learn/em/doc/examples/demo2.py deleted file mode 100644 index d87b5a3906..0000000000 --- a/scikits/learn/em/doc/examples/demo2.py +++ /dev/null @@ -1,104 +0,0 @@ -#! /usr/bin/env python - -# Example of use of pyem toolbox. Feel free to change parameters -# such as dimension, number of components, mode of covariance. -# -# You can also try less trivial things such as adding outliers, sampling -# a mixture with full covariance and estimating it with a mixture with diagonal -# gaussians (replace the mode of the learned model lgm) -# -# Later, I hope to add functions for number of component estimation using eg BIC - -import numpy as N -from numpy.random import seed - -from scipy.sandbox.pyem import GM, GMM, EM -import copy - -seed(2) -#+++++++++++++++++++++++++++++ -# Meta parameters of the model -# - k: Number of components -# - d: dimension of each Gaussian -# - mode: Mode of covariance matrix: full or diag (string) -# - nframes: number of frames (frame = one data point = one -# row of d elements) -k = 4 -d = 2 -mode = 'diag' -nframes = 1e3 - -#+++++++++++++++++++++++++++++++++++++++++++ -# Create an artificial GMM model, samples it -#+++++++++++++++++++++++++++++++++++++++++++ -w, mu, va = GM.gen_param(d, k, mode, spread = 1.0) -gm = GM.fromvalues(w, mu, va) - -# Sample nframes frames from the model -data = gm.sample(nframes) - -#++++++++++++++++++++++++ -# Learn the model with EM -#++++++++++++++++++++++++ - -lgm = [] -kmax = 6 -bics = N.zeros(kmax) -for i in range(kmax): - # Init the model with an empty Gaussian Mixture, and create a Gaussian - # Mixture Model from it - lgm.append(GM(d, i+1, mode)) - gmm = GMM(lgm[i], 'kmean') - - # The actual EM, with likelihood computation. The threshold - # is compared to the (linearly appromixated) derivative of the likelihood - em = EM() - em.train(data, gmm, maxiter = 30, thresh = 1e-10) - bics[i] = gmm.bic(data) - -print "Original model has %d clusters, bics says %d" % (k, N.argmax(bics)+1) - -#+++++++++++++++ -# Draw the model -#+++++++++++++++ -import pylab as P -P.subplot(3, 2, 1) - -for k in range(kmax): - P.subplot(3, 2, k+1) - # Level is the confidence level for confidence ellipsoids: 1.0 means that - # all points will be (almost surely) inside the ellipsoid - level = 0.8 - if not d == 1: - P.plot(data[:, 0], data[:, 1], '.', label = '_nolegend_') - - # h keeps the handles of the plot, so that you can modify - # its parameters like label or color - h = lgm[k].plot(level = level) - [i.set_color('r') for i in h] - h[0].set_label('EM confidence ellipsoides') - - h = gm.plot(level = level) - [i.set_color('g') for i in h] - h[0].set_label('Real confidence ellipsoides') - else: - # The 1d plotting function is quite elaborate: the confidence - # interval are represented by filled areas, the pdf of the mixture and - # the pdf of each component is drawn (optional) - h = gm.plot1d(level = level) - [i.set_color('g') for i in h['pdf']] - h['pdf'][0].set_label('true pdf') - - h0 = gm0.plot1d(level = level) - [i.set_color('k') for i in h0['pdf']] - h0['pdf'][0].set_label('initial pdf') - - hl = lgm.plot1d(fill = 1, level = level) - [i.set_color('r') for i in hl['pdf']] - hl['pdf'][0].set_label('pdf found by EM') - - P.legend(loc = 0) - -P.legend(loc = 0) -P.show() -# P.save('2d diag.png') diff --git a/scikits/learn/em/doc/tutorial.pdf b/scikits/learn/em/doc/tutorial.pdf deleted file mode 100644 index 8fb02ec6867870ae77312a4367f1a55acb73f329..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 390888 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⋙@Pj>rYi*c3xaK-|6J{q$Cf+ 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≫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®dYu&_EQ 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%0A4sO_c_}P(j6X$Dtxu3Z+$KU(%&ur~u>%Yvo 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	R<7KPijL(9&GN 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ßK)!y&!NM`teW)~;# zd*tuC?#bEz>F;e0%wBcR{@&daQ*^6WELfzZ)V1Knc~*@@9ZeiYEFmtg0x75NNqa9$ z?Vo0Q>RyRMW6*-x)85T|H?i+Y+THj6=PX(B^6XwuFX5=a&uc$@nDXS=vwOwwEx#Av z`@HY|_sO+>e%&@UO}+V=dPiC6E%KLse7Jc1!?0-&dcR40e48a^Ze;jG>5c7$BK@%T zMK?lXRyZwGdc3gv^rLfg@0Ogr(#$4X@sL$`r@i@RAMb>f3oIJmFLGd=qk3a{$2F}C z7Wq%*3RmP#o%%TEq~nz6Md!FaicXEY_@z)+Q?TsPdHE}ro4!1cOi_Qjkg0#)QR&+! zUthm;va9IiwPXgfFAwKs-O@M7h`*dvIb(j4+^vK<`9DHEvd8ofs;7VWS$WXE`rDnT zv!8O!_N^*>eSN+B!5Px#c~hoMdlmM=$=P{#>FczAelaJEFQ4;U8S?7v%PCJ}!!Pmv z=wT53xy66JU5ZGkhDb_I{lA~j=gyh)=kMROr@~WCeS5pzef9qN4>MoLuxoeS^x(gA zRl{wE(V@AmTbTTotu(m#+=-DBrjW*RBs`U_%h_grNaTo`&-YpK!qCnsloe9RoZ zRY~CK^Cu<i!`II!d^|}^_tc%u%P-uIpEhUBiSyU@c^&zwDp`5y$B#3gubWhHOTF1R zJ$6g6ZEpDaqj6~(GkpF%c&a+jYVEg6bFvrSS{T%@K1F)hc|*P1>mHtQF4=3Ew*G<T z^t^@FUF&XpP2cO%+jenAa%0tF1>^e%oB6puPIax?+q<44ru6;0k6$ipuZ!_Ca5K_c z!|A$LHe(O>YNrYLXSJ4IWc_h)dQi;dy9NCwwr;MjPrtm{diP-B!{_tgt1ocfP;**L zc!9^V<$d#R$Yds+58v>D>qXE4p_iQ*kxk08ww-vea+33dlu+}We={B*G3J?aY1b-? z#&^F&<zFz}S8lpgp8j(6R_U^O-K3qqol6_p&w0h^TPgb;5^=wCBk1P|(T<$X60LUE z4O+bKpEQJ3>bdrbx2Y&!un?M@Z4$p=W2jc?-m24KYj-6+UR}TS>e^^??bSBUj^>wy zo++M4vE5fxQlc{dmGv6E_<cDQ>Jih{8yR(3PX2X#bCBsPn*&C#L#0(}&3;=x;ZA24 zu{)9`erHxL*Cj85f2@DL7^NJV81lP(;ZEgPVV#vt#(seT6E<aCJ-aQJGmN$LrI2}P z*1x6RtAdJ^+rOl@&b~gqGbY6Eo0qzEYxmreXU6sE6%{K?7RI+}HOVY|=Ked;-L80= zg4oUTA0GahC@MWov{Pp3uKz+g!dtrUC%GG+U=d@C6!kSf@%uv6-$Exgt0Pegr)p0M z{r~lK`pZommNlsp<Np7jv;Nd6k@x#{Pd+g9Bai-lo;@WU$JYI?l4U(3Y_;u*P|xSZ zam&8@&s=eIP3;u_StZ*lKVN-(Y_3i1uZ5nB>`ApXAFjFz-_BTVlO1~JsD#q7@Tc-B zHBIfdJGNK6Fno2WYv-EtHZ>cA*3_Lckd)`Jco{q)PjaI1)l1sn4?JC6G_5$u`sT^l zx02g?ZB9@5qP_cgvY)ZRRQH{S4(~eZ$hMG0`Sb(tm7?l=2|JjMIYl^|c>UPNBpLK% znUcS@{eBhc_`kP*YU%3s8ef|98g#Dd=klPdUmf4xYT4J&9O5NcUsn3+is2LOqH3N? zo8R8vZhvp)yBme~@6|beHD>3};(DYK;XiF*j&$iHj@GS{3r{|GmeO1@MXJ?AOxyjz z=_-$2!8^|m<gGejkjgaW*)<uR?%v+HCYlTKV(rDJzc5Vpa&nS;FT#7dCMNdglwxxw zHvVs0x9`8W#PiV{%SkGR>$?`5TkZc(b@A#nfi&LK^<Vb8ZZ8a#TyGiiFKy+FbwY8o z6)IjB$@gY|Ts2kipJ;D@^MozCeqRiEDSKu2clTRy&Q^l$>sQ@>{onrcRHuc%-Wb2P zDxD@Z(M>;iinHH);V+55p1k$4x>dRGU73_&>YN*q(?VCSTJU4T3q7fKYnBKujNkA7 zdy=Emk5`H-g!i?q^4b!TacJWy=4oE*LSHo)O^duMzIyj%sgG>MhP;|D=bT?-Rx`K! zq5uDiiq9-3GY;JBX)gHn*!k$Z>BoZqJhoWharEm_{obdEeq3?M3sVlxJND#tME)M$ z@b*V5-!>gAl9M~w*T?Pcz545njUPjMZ#OV9?<#*^_w3BfLx-G-bW@CG?%!X3eO>JS zf4{OpvGk)%*JA3+)D@XOSH<nEy7oD~_Vd|?S#8`|xdmEPY7yrvRo%m)MR<hoJXmNR zd)Uh^Kgs_2wjja4_=g3v7XQw?YR?p&wfR`6YhK=&9fcxwvrN6`nETJmWHi*ccf~2w z$?49MlZ;<q3ARLkIvH49J#Dets=3o%Dc#%J`o8zW)Udh<d{fVHO>DkWT((58UTW(H z-z}|28=D@?`mI)Uf7_%mX34p;k3TrS=G8m*wP~}><870VrN;fA>RR>pfAl`3T<fGG zhUw2;#r2PI=L(0ng!5fye{qdHV6$o23L(p>?CL$=A7;L~vS|uy>gC#dC!PceI7<Cp zR2RO{C0fCaH_|BX%<)H`<U~Ge39%JeFIau*b2BH$HzOI<6MsCOHxv~GoH`XUr@`c2 zhv{J($HQ3`DK-yzq~`n-zq>i4_3HY|;>)K^GwEqcQuMu&y3oVzdQGp2tDVpu0~Kbq zya)f%GyhDT&?{HF$esUuR-Br2{M8+xv#m2O99Xx>H1m>*-a4*L8$++A7ZevO&yU*^ z@i1v$(NnI<<@Nvng+0<XQZdWhQ}nOqe%3qpRc$XA!y@y|w7y=lSkGc4bJgq3ONVX? z>FsM$c&fOh>xJaxnO7dVs=xS5%j%}p;mpz7_S{<$c+39(iqvU5@`9&&gTzEtbz>^7 zZJjxJu1~!0m4c%a_FP+Yv2UqpoQ{#y<nof_qRLgfL(cv&6*wIIDtyzkL>r?nxhmP? zzqxjAFp1**BptSkRjupdMIrANWp}yyzoq_h`!;#3|6hMPy!ctn*6r~HKQ<(=T)J9f za;x<myTH6~ZN48tQn#ue&fLqf^}@#$S2DKkj!B&|J!Q*Y%~_laqyl`TZmRKrp8T<C z%ESwLVGq_8CjMMpB++nUW@6eFN6$XRq)?W~n<u+}?OD68e)?v{{92h<F2#J=^qD=X z#d>!a9Nf*j)wuXWJM$#oMS7FllveTbK4<7E^q6evA<mt5@UMj0io~3mTO<4~%Ut7F z7r5c=?e+ive*b)RkB`~DRlH)-($+~wI>dCNEG#W;Kc6vP?B4I^=eO>aU&*gUDSB(J zimSeVk$+)#`TO#FmF~Z{$LQ5R?lre6e<vd&vnD{}-MziHmwHeC_4RdoYinfZdO4dD z8#hNM*zjDHx!fh<8l~@K`o8v;(4G+XmD#GtLz;E|2;JX$X?cg&w7IUX>+Iep_myd^ z4pBQd^Ko{*{I7@YJrOy*#$u;>m6+!?JGVydUah@)ecj^!o3<anu&~OT;hT}?v?-I< z$Nm$(scG`ye(|b8d8tSJ7t7A=Qof*(HS1QS#Wk<(2UaFk^@r|Xv2^+KSoh<tQB&ER zYuUQL{QBQsv$b4*?S~AN4>y#%Rz=kov9<O~=Pqq>YWh-gr~ByAiWuKxy(TQ_N;={j zkA0oe6R}Oiwr|lvzaNnvLO-X!4vBU+EA@D_k=w_~&*j1=PWrR==H`r<&wVC#WNogf zS|RvbEooO{=u7Ukm%mKgA9e7vao_S4o0@j5deM7*=~vk&_5Y5EiAv5~Jn{dehlh@~ zTCL<^mn?lzdvd{f*QrOlD%lpTC@x9;@TutC@6>~{9RALYdLP4e@5CYgFS$?N9^b$| z>xifFGg)uhhLcB+%?o?B`pT^zuk7<#Rzt_4($mvF>HmxlyLs{A>Tvz0h+Y4^R3@zq zUcN2+dLPgGv$ITpf4iNZoU~)2lh~8hZ*RZ1w9paJT9vxb_q5aM_OQtx!;WRT=<IDt zGqt$V%oZ=XeZl6E)C=(ri~%c;EcpI0i92PMT>8u}Uw+sA`eA9MrXPDMYT<&-g2oP- zWyelOPjz*5GL8Pa{mzvFqdHmVS*HWSy8Gs{Pfu=87CPMf^TLS_``$;cx~gFDKc?l( zt^o1q$9K9z3%U+H%X*#T>XI@!@Yk)aE;qio>ZT+nMy^}eeZ24M!%zc-_rCjG=g;0B zw?68xlvs{pkaEEnqi6ER{o{Vz;&wLCzbn7%`t{`>kL&Ib{-WiuY1_HEJHJnzvrcGN z-r|h`SGP;g{NnTXsHp9Ug4zkcmbqxzzKwT1>ay$s-$P-wyTS9%W<272IMZIHAZgXZ z9PjI%kw)tGcevf!v+m2yX-nhSzg&$isp6i~;#gZ2ba&rLo}X(r^mzwf7vKIzDr?Oa zmpY>~(__~fW9;o$U;6Oy^cQ~Lvj<(aTs#$b_vpIA5~)JX>~r1MKW>`8F19*YB}!>( zSon&g$HL8wlf<5A$KPLabF;3%<Ud(9Zp)+lwbBAxRTpMiysTTMy#9$%&&!sX@|;Q! z4oR9MerTJ2GI`>$qjz(zze}5K=4zg2^YHb$xfMk#Ue+|59lX2iWO3063(JZP3h@^g z-ag&Uwe;Q1Rqth1OUyUdHeAR3uO@tdXGKlM!*^RgOmKM+xWudV#=VG(Z(rTq?fGNV zEvLm<rni@$=X<Mj<5>7r^G|!KKOXg6zi*eT+Jd!~kIh{Bc+=E1gx8#Me^mSC^FftE ze(Z*a__duM$hK=ocIde3dCz~X^=ZSjMH^Tme{RuvarO2Gi*Eb9A9;Ur{Y(<^JC&IC zN^kL@4W~_J7P^;geXl3>c5g<(^g8}a^|qg^H&)ezMk=VL@)WOMy6~GU)14KkPxMDm zYr5=tHFM>e@_0cXp_|@cOFwWtu(Xg6lSy%1_v);0p7H!Tg|*q+SKhUmxOvi^m6s1a zlJ-8mVVnBe-iR!Nt0yDZYkm=4QD`Qn_IPPb@01lhLPdhkiB2x-8Wuk7z1Gf|_u-;@ z_3!WBSN)UCe!My=yX|V$zpFK=g4!V$TW8z0Ub|^sc_+Qx>0*DAbc__|dc9+{>1S5P zo>5=t(fjOp+YSk-%lqnPX1YfuK74y_Zu72^#7mdw7bt($Gw+e<ymaEk0WsZo`+w&p zuDc_!`b3A<1fOW<_IaP46u!8?(8}8Od&%L72du9iaep=~lj$<b$?aHB*(Cj>*5$Qb z^zmoU7ZmoW-d&RRDKxbDZ*oYf{(G<1*0s^wpZ(n#bvpd=ve=^1SQ*iy`fEHlbRD?5 z%b@uCwDupTBOD}NavZyJY+A{k;Dt$^5xqieiAybl+q#2d(hK7IBvdbLy*2gAx0aBe z4bnF@$R9po{FiT=S3+30YK)0t!>I}H`c~#OpW$A%D9*KK<<3bSFLfsUe;m1H=3|W* z*G*^V&9X3X6;qm3p;x;6!{Wf0^%7hA&MoOEE!|ppWYKbAxm}eH3d5~ucF(<X^ISnn zLhPHT=f3s-Nh=FFS^a*RtmQ%GQW<US1Izwj%(7Tn&TGfzG{g9k`t-$O%TyL_7Bac^ zpKqJ|q3=<iT*__|vp$3_b5PnH5%cE7jtfh;X7;ZCCpvAygbzQT&j($AP{x+_Si3K? z`1#_sDoKlbmUTC8y392H)Pu<Rr@EwMPr39NO%zt1vF*>}@`|OrKCCM?YlTMq|94&5 zbka4KEynHZr|GZv_^HXo^QE}(<$cW)FMcV^Jy5l7;svcP@8=&rPwiQHD#5#b)~<Vt zdl_?Ix^=`Z*w)qYKhl>YY|&E_2aB52m2vS`SG}{6wk}(9;rvy<eY<L{&mK&C*d=<s z(%yEGLucwQ-OXj8J!f7=xSx1sqPG0OG%2rMeQ&=2Epg)`5|f&)3tgP_eQM9TNQr0` zezt{co^=O_v^=~J_{X8lqu}(D!?E2FkN>W4d+~Hj*4EA)Q`}~)HE*4w+Ve%h_#(gd zi;G4}H~Q!s?$eCFsbkd`u-jLgxn$P@t3d1X@usEo&+A_(bx<x0yJGq5kd^hS9rtpo zBX3#%b?qyv{h9P{f_Lrd-s6|_N>UB%4kXB&a}KdSvX9mD?VQvPs^Uu{9&gZcT4lbk z(@3;ZHT+`H<i{=I0%2=+IU4L+;E=U4F8}drsV#APt8Q}6=v{BIO-cOgqP5d<V>gK< zO-yi{)AG2aaD&1ziD^4lRfhJRK0e`v$Evcew+}yQJmNq5+3N=r>R(<GKBg7h(^7Y0 zwb{Fn?Y=*D)&BZ<<=eME4<oj)rkzW@W#$&A_y0jn60=>YQ)8fP%ah_QXNy@U)lB&) zC1;n|d+kI}&^{}jjW_tf-NN{*YZB+qwXfe-`}^B}rG1l5PSM}DV`cjJwO;!+Xw@6? zW=Yi@{c_^Kf**X_s*_(B`g9x*_5GPVRfN%U#;hLk6O*lY-={oY&a_77U?7{K))VcC zYaJ%Z1RAkSe^|sACd}aN<i4p;Xx{0AB5WqTfvm1Fdh!Qn9G39?wx+oFW0}b(rRN_{ zO4{rdHoW@zSbaI`+;6kjY0qt%&GP?Jfje^x<C6#70qazc9{I0Tw3fqYy-C*GNKe7n zM?_XkaSB-Sf1lYq@9lOT&m)<PeUq1Z2(L>n6V|Devt)btbj_?&UM?n$Hm;A8b^ILp z4coG!e``(qks!2F;MnY>^UklH_XufZAKUcCTYo3NblH)nz4wlVn`Y?g=}DXC>1aHN z%a@Lqyfq<Y&-9e7d!N^K{9$aGA1Be)eAj13?VP8_eq`MVD0$DYlXJeuw?^iDWo4PK zuiKw&yP6u5y>*qvskgs`qs6CtRhdTB1|DAG<hzt7EJgq8pFa}MPkuVl8Q`F*!zUH1 z6{@*mtzq6dp}aME8gmksnq~eLxV%|sn>k;6<dW;*p<n&7g*uny-rhD{FZP%C$E)}2 z<BQAUL<A28@6cG+5p?Rm-^_KZ=J-GNu$MdZeWJxW7UvUQO|enop;}c>lXuEIV{_eT za?WT6L-xtfb8Bpc52q}6#c1Tg^pRh2rglU`n@yegcja{&Nh>z|`ONMUu4R%GrKmHR z@pFp<N8OwQ{<i`)*64V-R7<|Q7^gY4J4Ui@pVHo||K+9L?fd4drg%mr{^jxQ#giD% zYP~$M>C5wFyAHgqoi{`K)rQ%w-Rfe~Pjh94vCR)vaAlsbeb0-}iYF?p1q9w!am=49 zeCNTnwI<fPS)ZRj9=YNA?H{Yy)<$p7TbdSb_Ot$6xc<?{;TucK&aRpe$*#J(CC&84 zJ(2CtrEWJzy}g;NHTA-isit}-mN$jVN&A%izjWz9*jlA_p2VB#>YXPd1ynLzj=A}D z>^3|9D{#fsuq}<UhE8k$?%G|gsz1%F*)x3B1j7Jjo$X7VKmMMr#`o@0xrNRi--|9! zO11`Vu9?=<sCn&?cK4TGtHN?G+-l(z-qQXt|KaME7N+p)NB7(`EE0{gb`m_gM8ugZ zPwv2n&odStm1A4@@`d{a4fe^LX(2miKgpah$N8JqlAdL*DN6I)Qi^RV#0=LfzKd1i zbGfE8<sQ@Onj^YhLUTM0v!{e7@gzE2e|2QbjWaEWO$48>3vj=z<dq}HyFjXRZPZ)m z8=s~gURGPKdO|U$QucL()f_`fi78FtQ)kUEJb!knQuxdhp|4&}JN7uzYftCXSi_?i ziytNCE)jeGYe53vf|=9G<lo5$mfzfXf8i75b8k#dmf7yMQSo8Yzk4dd@W_)Ze>R@# zxE+vPZF+8X^r6qo5)b#4yxOwSE9#fozEx+%L_|zdPfb~|Lc=xHRAu)6uG9KDp<=Q5 zss|l%KTHj{I`vS*<(bVN6<?$uzw`0w{H<?q`-!s~`(8-=v?;aj+__6fj;P<<(8l;S z>iEAl-aijRTjs{ZhUk@DG8KOJqV1aRY>lZe<3!I3TEASTY53>x`=4(m9yBB^w&HmB zZcE>`08OQ+lP4StJhxYUi&l%<67xg4eZ9`5*Q=vSMP?Z-&b_^DYDQSif883>iVp{` zt-by!OlzjN5A%d~PiGX|ZF#&wyiH(BK#+cTqF$QnqEIWlNe=^gHm{PXjLtk|U)eM{ zydw5j`KgE$UH5BADSukG#83ES8#{+9-@#nr&eSiWMcW-_uK&qds(CJ3V|A|Lzr=+} z0W}jNx6YQFw?MO9{YdyO^?&=?kL_CiaZ2m#NVRVZHmk&_zg=LfB3cxDak5EM)Z>du zUY}=vnAefPmDy7FEAgkl@PnOOcrLq~nUg*<LEbquWior_nWChP)e@?!Rp+j>VtM~1 z%x1FL?j3ucWNYfFEHd5M_vONYIR~#y{&BTpt7FC_^V`*lA6OGP{56Y8Vt$;r->!T6 zb#6^)^Rzj0{`~v>{`RBwK2f`x+K$Z8+IH^V(tA_ZUtv1`>&4wE>m?R16lxC-dg`<D zfQIptWUcB{8HLnM(r0Jc{`vV_{r<LHUmgFNI>u=Rii_8(rXM@nI-7loZ06m&rx&N( zjXp1EdGcp+<mTWEvBZXp0qt`HZhewu{4-zcU1rOj{OHBLW={@YEm|6C0UBG358bDw zshN3y-`|^?(@S;2fB)1nFt~ayuW`D#KacrAEqDJj=Chu;%I#x}@Lr%K;~v5FNPO}~ zFQIw*hs>nr`pMl{x_!bgX4X{!>?$=~hngp-U$l^Sj0s-!Ma@WD>78tgmC_!$BgPBP zTnw0IBY&D>XQyGs=5)rLKVw}^$=hsqdAz1D{QURumEzj_I`${edMx$pmD1Jr>9Ycl zeo-@%J;K5H!o|Oj-LpcEJNZ=d-KmvVe8q3}D2V;{f39{Q*};;7b%$fv+Yd*YLS+63 z2Fn=k=grG&_Bwh0!4oFI9j78!*E+W?P$@Zc$YNUC`Hkie%NP!GCq~UKceV&URuQ1E z<KUN<)1}N})`_xg`*^kf@D`rr$J&#{0<wIcmYpm~*)IO)%J=k&{V7TOo9z$AG=5my zRI{pbYj*cX*_3y;o@VFApPl2F`-FMF(58!;>OZ^kSTAgNvX^f{QIW+}Htmm7%Y3e_ z<Db-Sb2WFKaj<&-;mO)2>$*2;Ib9G@`Lw3JTANj_jOU1-#@(D=>qlGES`A_oXYMWh zaY||LzE!WAh1LCJY^%2HTYrWlK62HnYSXpx`)k+l*%X=Euv5!)m%QtC<&w^T5BC~h zX-$(kP_DV4v-Ri={|D;ai?{ClBceWO-!lGp?6NB+d&PZ?v2!(R)ozM-$U9;0B%cW{ zTzJisXU45t^l4SlI;E$2X%RhgNs_y&x}H{)+5h@6Mg3K1*!m_;S?1oOq6aIrpRvp= zJTYP3k@d?z%oZux7SZOt#J9-6bvE}($2EBz>(6)W{h=yyLQ(C`fpz&BBEG_j@5?#9 zH*WE;el{aD%XCt6L7v>TFAG+f?dDv!w$&*iBK(=sKj%{$e^!5euxhhJ{7T3DLamdf z`sZX?9*ohHdT%t%Y{q>3+zSam<LhJBJ(KmW>RNX_WA!djW#g+NlzV5##tjo*OK<!r zdc4o`#b-VL%(;8Td0g+YH_iW5)AHHb=S`xE^qYBy|6lx?9g=T+&E?CR=84Mh_kDCT zy&JIWfO_tdT@!VApC6UUEjtu`tK#}ZW$oNEyYp7)HYUDcNj^8{`x<M<C##;#Z`POZ z%dGXCbM@f6529kKr{6K0^vS*>Sia;-9rs3o^Tm*O`uO(Sw{OoJV&8s@Z*5QKv|Mkq z_{E|dzKc0I4&Hd#n}1~1j1@{b-Y%zO&ggu<>Y=BwNmWT|al(GX{Hd015(<CKPcgJy z?#euuFBz;L6sjR~C+XYEu%|6=vaD?9HWyB{TK2QXHRoaMt`Mmtx5R5nDRPH@T%MuC z?7B!u#?$4tPfviea_OQ;3Qwz_^>v>J&3m()`*L9_>$JTM_A+i|H&@Ti>izSBF*HQL zT}fZ?XygRZ%dJQMs2utE=$qfEkm|N%zv8Y?<N3$t<qPgPKSOxU8@{PY9XV~2J}sO4 zs7lDH)6k`Q#jU631S)11Pp$i~v{K;ap+(%A)8p3$r)P#uQ~es3^KZ4(b~)Rs8;@?E z-I&YzrE>YEpgZOFc56r|{#Y3<9`pb3jq6X1zHC2!bnc(|d4Jh;V;7h-wr#g6?V4?~ z(`ugfxh}b%>lZFDPWL|dVCLlDO#UbPZ~1?HzWfQl+}Sd>2Y+{@9Gcd$>BoG&-OrO; zvW3;l$^`s4pO-${*L&#VwH?Zjo_?v@owab?$%mkt|M<0ZgX8s~(p7(F7~19DS`)0X zLvIxmn{WAS4(|TLsh>XdGWO2YIpW3?{xibo@%*c)9{;EAS}SDNsB}2#xK_90ANP`p zhUvNy*A53S4g56a-{Z>pe_rV3s4Ypi*`0f#a?9<btXiL)k3ZFtdiw8I;ASpnQN_0$ z$L1X_$+cQ2^3SuvPF8+;^|y@4vR~$y&t%)%9dfL0R;p^@#$T;>Rqd}Y{&D2@tm|CT zRga&<cYJ>y&$Z@*-!z3<uG};2wu<`e7YB54d%l>^`7q1(t#s4b--bF9+;-2bQ;E6! z;Po_(gS<sWUazmkM%6x_+Pgk$wyTTFnc3#&#qQ@_3VXUJam&?j^Zv@HTy8lgP;tfa zgjI69f2D(S=b^tp?dSdy{<SYFsp8C;FIzXCwktWYsb*<!^Cf-Hwo{+NWcFS9?l{qY z$I@K6r>=IZ>JQ$!Jym??g}U(je?#}#X6`Nf`l0^-le}WkrM#X%P5b|zH~w$h@c5(l zliH+SYo+*Lod+vgRW?BSgG*Pv`>(g})CrBUvbZg2z6&0@@4vr*(K{*8?yS=k^ES4` z)ytU96)}ag&e~&nVv)dKrb8|#ezxDwb<Mjz$AabUv5D~;_KByN9l0ZBawj9#e@A`C z-1x`4ti4#~xUA{Y6BjD-mSo);b8N-s8Je9L(QVpUE0{JsQ*aaE%-&<K)3Vrl4v(7M zv-ZCGCzpM6J$-g}9;=64&qZ+qZ)q_-_Ykf)e@FgL#}_MVPVM|PW9Q?pFZNp))Aoc_ zh8^`vlDklIxIJ8;kn21DrD;9;8s4-wX*aaJjW3Z2%oY455?hp-`95Kx&H<?+!OaHq zSaZ8gSl%DsetpA{CAUOdJ=@y0?k~R-q4RW0=JZ!rqo>Wze&{0!8qdGUIlFiLm)tV5 zTSudE-_PU?*c8Q3t73A*>f3^i>)GcopEE&s!g>1_wOVzlck0XD$vo7K3<@gsYuaqL zBU9MiaDwug(720N6V&G{I<xC7=Z2+ALt8Q}tylHkHa*9`R)fvu+p@Kj7RT!8Z11mn z^j-c(zr~s9+oES(yt91w=@nel9=xy=w7k2f(0xV3sqoueYYv4^d-XMR?JK=6ueVNE zFQ)fpb#!@Vpy2nNb7FkN4^88gmu-HOJfnc~^Ob<C>8z)>nmj#O;%l%>d#TR6Wje=> z9-Xpm%eiT(`U&qjW|@>HD%Siv()jU)smT8?M@7_s-7@1)Z2viP;Q{GHJ(J4;x~d5i zS}%H5`1Q4OdH6rv{&|LHg!hXR^}8Fb7O!4f`r*2+R7a`$?KQoh1?oBO&p%wU_Sqhx zM<q3LTKbOOh<_)d#4&5{EVlo`w>;<Th%7QIN^uokd)(Y9O!fLo4z^NVK8E0V&TAct z*w|DTZEc&NDRlh78uNW0k82e_=z3H7fz{+jr^>@4D{kDd3BP`{{(tS+N8dN}uK#CT zliKT*vbAe{TH3<NqCZ#Zd9fZ@neubWdZ9k)-@o2oo+8|G<%Ip)X3xdF|Lfj$3b(8m zsk}OM{)PU0bCI|Q;&xAObFQyb@Gms9eraF7{8jMG-MbIk*}w1Zy#HDLUGwZMcPA<L z&b{>4^u{fR8SCrZ&z%n2rTJ#@gUH=KPf3MI|L|IyW?gc_plnV5LwEaMmyaF{YIN6T zWd8KTw&!B%iDZF!9c7g>{OtptDemHyD``=h{9CrkbKh%&-I}4>Y>Ya+Sf+5sf1M<= zs&VJG<!T)(6nh<wVqR(OYx!W+Q7ykJ$<*u8hdQlaD*~o8XXw|+_Fi`S?RRm(<5|1= z*Ow}UFMMuT^2JP-W7+2<*`qszf6Uw<mRsggY~Z^1>DR4JpZzK?r=D|nQI7hmUn(=B zeNUXu$>i#)(4!$Qm6l1XuAVVHGvm%;@5mnJ7Qf(+(|k5>@w)JZZ(C*JiP$%0O)GzG z(`s4A^GijN(coMC|J!#rK5pA&)Os{OSvvkI+rCwoemkZ0dZn1{`*r=J=z8O>&2}r! zI~h1f&CEIPsk`P#&bln&Gii^t?Z9(J>pxwcs?Awe#+`TPfmO@qQyHoEL=~Ijdya?d zM>%{Db8I#F;(PpfiK}O9+l}ojcL)bpvIJ^M?w36?$InFi-2)bpC9hhJ`>sEgdOSe& zjJ?bZ(Y-T{a4_@i_M6Q0*q&u|h=QS{eoB%Gcc{TO`2*#u0zIey|I@lv>A0}!&ob{R z3m*E_RPm){rA$+LZj<)r_=bp>E4$X7df+`lP4F%E2DjaE;eL)cR}22+S-PM-|H4sg zwS`gFXM|q#I-6;4ST1c`?&9%>Y0~FiuF;lBp52)&3I78YM?5~EwYy98-VZggXJUMx z&o1CzX54#f`<r{RPVcsKi$7jlD1H0KtNn>#t6b6^udcU_f0@wvdCvvCCz8+DoEAh# ztQVWsyIyYg`mD`Y+4lW<w>vp@*AB@r!-xv;((RXjl>LjAJ=$*gOYM$>`2J@q3zaK< zF1wdKnto+rNZImF*Otz^zgFDR%k^B*dDF-X(Q)M^YfR(~&FUkkDHKiWoU>$JuwDW8 z#OX1MJzF11N+s=_))B@UvAW?4OWm$6SEs<64=b<Se-yg6@tu>_)2@}~XUh~E3)!Q$ zeqFg$@O_J)X;fV9<qv+EdQ;S6FY%{@DCuN!#2PMnx9s|akLq0f&SEQdcjTPXKe@nU z!l}o?v$`@|zCEz4-{rC7!qI{(3oTRedbLHoiF<;kcw40hNp^U)f7oj#eMQDw*Rk97 z$Ac*w8~(3ZGwE1wc%MY!8L#add)NPyPFo7j!p|bi|E*e>P$*NmQSINWhK=jl;}^`C zFjb|X@?ZPLc<KLt|9pPV8SnY{@#>{5Ic9~DdOtIFo-k0IQ=Xij&O0MB<j!5O)Pp+& z9<kegXlDp-iCOw~THcpk_hP%=`nLRhmHuQ;T5s5;WAVA$KVB6!pXn31{oN&1?;SUl zTH>uLlJ{(A36$WIJy4(-E7R@a@>(e)Yi0K9RU&g&-C_5dQ7SK}cPZZ7e2&YDT@4qE zs$A0xrx?w<Kk07Rx5BjxzJBt0xxuHP^}{@&M<#a^RVFh!%F8%5efJC7&U;r$WBFR1 zm50J770hKgQ}{>4?S-;>&=!gK>{rI$^bVPsewoG)x>Uoa=}CU3&aSX8^A4nxh^z29 zo$^@Hx7>4<<mHT`2d;2>{NUl=t-OgfmshJlp8cb|LNVjya_9Ke)h(VU4u&w5o~)P| zW4-pZ4;v?A+NC6M!{rjs!rZl!GR#t|^^==;TJG8ZKC`>>^VOR-ubsNT{bT4_)74tM zS!YvJH$@!{UtN6hK-bUa^Uj}^2iPwWn*RN|#9W=D0e&2!9TVo53D){dIT`%qnb5u{ z+jrYowJIZf*Pmeah`tc{dq?Gtgr8U0&fai8YV<?i`N`#Nr5ijKd_9-He3w|!VuzRJ zg6u7u^*`@-sk6`C5;Skpr>lmqpYTU5x&A-==c_9#C9HR|Uc7k6Wbf;wQ#}8e&PTAG z;!C~~`zGaJ+JkPBJ;x_~_sUnk!YO%Kn>ohNY~N|0T%DrOnNPHHCvoIYUvnigCiKh| zwHsgddu{z3A)0jGsU&^H(kv16#o2oQRNCDG9_svUzQ1vkf3RVD__@7aX8JSUrQdGW zs#z*xIo)vnfgb&7-X<&io@AtQoIB>yWb0XBCcgPe$HO|`ncb5Zo>VIQEti@lcYS)8 zcvt1rc|V%@N(>D@7BBhh($FQQsKtFPjkQQR;E0Ry+sPlj1h=g))$Dz;T=+pXOY(`- z-ovR2pBZgQvaFiFAS*o3P2D|u8_VR|Z_dnYzqWgFZcV82w{zC-zr4KcZoVkY{?b*i zsVA~T<8!aSh}T@ZwEn6%>wV6;SAUh5dbENCofPI2)JgweZha@SFn#A7@zN3>p${?P z;qE&<Egicpc9gtRyZdW_p5EN@+6mtUg}=RAp7_^iqi+z?)v&!v0lNyH>-6MgC-JAV zJ^GT~H2>K*r-u^RcLWQi{;tjzyShK?;-Xg8>c90<*B|ToSoyHkx9$D^7yikUTQ<E> zF37QOo2s~;<+#wrpe}}}DAi@!R|As1I!#X%T6M@|F{4nv6jy)2HTJEa)ZBKZEVVtt zeu3j>?fvj5jVZPcGqk@xnUXzc+cae}cEgs$NdgCMuRkqfazFRo+*fAGmR<4dF1H>^ z4%JNeTA?Os?w7F0eBaLI+*?<iemOX%F@_2MySQWXuP2FinTcZk@m_A7Z-VATz1?{{ zRHazdGrTfS`(WYPZK9TJhKD#>v!?584f^~{X%SPc|0On)c`lwW{;pg;&1X)<u~p@p zde>(i;fQ%TX<2s5`ZH@>!nnWQE?&Fzz8z2Hf8jr0o~T=VpW10F;CDk&K}GI`zofF& zr5g`?3ZDM{xbB<L<C@f&L0_jHFJ8Nj$$j#{iX+yt%vWE%?v+y2jmdbFt~Y1V^LdH^ zH7PFxe9TRM$h>iTEzD^pciY+Mv{bpv1ko?Ib8AvBg=m#dR?|*DyX#P?|H=y)(-YQg z;_6bCkY@20^Wlm+-*n7>#&bvUC8yrK%w67ayV~TvzGcVvW7m#tKb^AXi=W5Io|&%s z`xJ{3PVHW@dC`{#g4Y~Gw_TEZC%d4sHC$VJZ_4^5?TWmL$ES6fZ+7H%`k8pt^Ut#G zLyx{>>w0dwI?sF66^XK$X)F?+3xqTLD@AJf9{z5YkYvh_b+EH+4T?E&wB*tWmMxP$ z%#m>Zw85ciZ_u3pr!&&w$AaAB_Q~)s{h)v7S<assUGtv2eloSMf78shOMQO+yBZ+4 z%er5(WzD&V`ggsS&I~&euw&Ks!z~-?BWEtEF7MZiy|ZSbamM4-QK@1lRW=2w8tKMg zo#d5be(J?%y*p7~+0zxgZ%lmjoqKA5d0sJl!nNZ}*7}Ex&xIV_`)R|OnNsPM)&5(B zbyOG2{ye*WdZ6kBqn*)*|GeI_IlcDno36ZBT#M#@W{<0K`w(dOEON)+q>=^U2Oev- ztP!1&b6TOyWo5hRyN=1Tel<&8m1yAAo_O;UyKhv4#M;is&yTY*)t`N|U_!8xWaE?0 zn3gR`73zzo$`oFy{JKDRlGf{UbLV<rUHyo;WzK<D?S@@TKd0W^?eY4S=WSC>IqS0A z^Rer`^_+-%7M3qm`*~;B(%WUHPK5}3Qu*z(IBpHkUW1$>m5XyTKW1F&-(W15JH_L? zi-hHam?NLc4sfshlA`=s_rkm)(S7?^s`+zx)_*Eb)!5a3mu2ILg>eU)RARzyiy}5| z`IcUxcxTfGXRWHqlP`S=60%Zzyi}yb|7dh(g*mT$hR2$<--6Gw%{BUvDknDW!4e_S zUq4wMDiuCrsZ-luD#>kBa9$?yo0o+4QdQ0Q_c{;wB+p)X^-XxZ?5gPU%#4g>Tl3ST z<NunU0hKvZ|9h=jaNc@;((5;|RRT%YD_Ez@Ox}~xvHMI$(fy5Ef5fP0xZ3?Op5>Y` zCF@F2Wy0#P#KmeHy3RXxg>|g9_uOZ6g+C?I?8)Bm@Amyv%dY8L8}|6=wHZHW9}x9j z;F#U0-orQR;FhPxtQvlG?Qy0*WwY-HzW(N!Z)fiLb+(KWk0Z}0ipH~F%X^YKGx zZf9(ZE-3t<B^G-i=aY*X{}-K%Yu(&@7Xq?spNIO%sLtP9|JkZBa%qrZv6kwJ^jD|V zdxB!E-fxUt8LOu<_uSpN_ddV+Vex(Y_Rcp;Shnx`t>CMYRJqKFOEPRv&(!r!E3Z%F z;=kCe$r-R%h4cLL<egHhk|pGO-tLhNSk>~{Yz_BjpUIQlW|ws{-G1Uw>?-}mmow64 zU1s=ezT^^tZOb0^g?)`Z@2sls6W!MBdc$qOYKH7j8%_8>e>T|7u$m)u+M^yGM=q5q z;*;u9j&6y1__26~Us)Z)Vdjm7@}2#KeVsxjb`9y@l+J{(ef#oqx{Qq2JS)-9EP05? z5RIRx9y^!)%gS`o;A5B6O_dj{QSw~k|5Igg_g7EBDPr$9-#ok!x65bRyetpjU(O}3 zc9quk^`&0C==5hXFZad@hCLHg-Tgux*NSWZKg1euy*ox;UikN3Nr&^lzVZI^KVOm1 zpzPJl_NguRNSgQxmVixHnt!d2SpCC9z4PMLqD2;F`;0ET_1WCp{5<UN_uaA!Zw2fL zYm(8gk?mj2<0N!(Q_lr4Nu8u!7rB~$Z7Wp}+mhUMnkQX2Cr{7#LH#ARzOLTvh+YP} z<+rAoG3+Z!;?TBG_2fSql0IkFLi381nM|=ZYZd0V?>zZpRoff6GWmlMTieWetREat zzi@uhLC4w3nL5`Nd~Uk5M$NbB%kLZ2Ov0Spm5-&Fwj^4pxXln@efE1+NWc?CJ2CP6 zgMUrbvNyci&9KJPZ2{Az<JKEizs%SqJ@?yeKduj7_GG7TPdMBb?f)!o+sDvciL(~( zO)@SlsQ>@(;>A$!X`9`^O`aoheaH2aUcZ^e(=hXE;HH=fZ_DhOXB+!|xc_0=hdHPI zXKrL!8}o46sSD*x>@8MHJ_~E-OPpV~>b>|QpZwC7)zeHDiV8dLQ(~`tJ~jN^_m_uf zmAvzr-4TAvLDwKX&O##i_lz5dTNhf~ivDo<5a)@?t6t{O|5JFpHj2eZuDbsJ`;S${ z>D%wuSs$-7cF*z=)#6g;OR%W4dY)Lv6_<R{c+V57ui~Pwr@r>x<EgyZiBH<9`^F)s z$n|-bzMTzWtowD>amB3VjPV<7WS?I$`t#7i)T1=)fiHijXMn;yhXhW)XUdHiT%RdB zs{66WNH#6sHv4JbBrnn3Wvx@D%-}P%pY4=9InJ)<MwW_tR?1alPKBSzUlV)OmM<u^ zoqJ5aE<&*9t>OozJED!r`~_N4>4yt{@NHvFc$<30zV+liiB(58Z~pPwY}=9t(}eo% z=S=(-Dd4m7<KoLF%uUZ)mAz?fK71&?-uC#WH<NeH%&iH1oW^0sGJ#Ll>dM~g?^<t< zOHDnIB^}S}eR#KL*zM{%`zN(3KVCk4|M2gmPTQPWE&1~sgA(d~oYpAGb#-%o{QHD$ z>8b1I^eR6l8UOY6Ke9Anqn$_FvKNNQe_~_1-`_R<xYfrns(VAxJ_f0$2@AOUq(b)w zoLaFd<AROjg0t^jUh_vCkFs4dX<OJMZSSwY{!7FQhA8+S$i2N|`?Z-Vr@}j#q9msq zoEJasaQffA$=tqEzio*ZxVkKe^?B_5gp;46u3Ufbo0F;eIWa%;_OVMBH2fA=FVy^7 z^)yQE_J)N)wHo2pFK^l1v#D8{Vz8fg&sU@9P*szO2JLP_%N{?@`E$mpR>WRF>Y?q* z?3Z7r^lI}6EQ{J}wZXOfYFQcgy{hc!xOp!>9hvyE;vd7SoaOJ<yb5lUTBWpP`NMO} zbM`gAy}sdziQ4akM}|HYO&i-k*gjmBEK$!EyguPz=^E~1d`xLOJJ#|AztmYQ@_zoJ z0#||4DjjjVMBYEzRB>a2@~YzzN?Si(t?yVb!sY7Vz;JMhl>N3_$HG?^2YzQ1t=rNy z^&j&_<10*zah}Ux3MIz12yX9J(FyvLX#4DxVcq{ACz)B+MtON^d;LAR#iiEmvt_&+ zsJyH@-~aZ8Mw#em_x3LPn_yh;ynK0}%7p0J3RSjUPDv#@%@4M3tE`*CQ0sbGHFjpG z(HdisX(IcL+Sh0KuV3%DZ&!W1Pr$=xXG6~Y{@j%LK~$e#Bj8!@LjJ<I#wjjabdFj| z`ODqxdDRu}Gk4NTbIk<d=X$A6i=K7YU3yk(o2FXOBDLlJ-7TG5`(9da;)s9w|N1>Y zUyaiz1CJVi+_^>M^1P;y^Py8LCS22B7W)61+QUk*Go@?n`z8N;=5PCS)sC@n*&?Nz zlT`ot&RSDa7H3lTXXW8`<=JMjUmtbPzI4gw{w7r}AD#u)|9|j^TK=DYtJ5W_ZPU}Z zD3;?(e*RLsx^nZE%l><x7G0fe;~^b?RUu4ryLep1!DHcf@`AkPS4|A_QVcnkJ?}bG zX+cO)PPNqbXB<1H%2`%MxK}Tou=wQX=DSMOE9(q7>W=qB$y%m(IP9%jDk!-1)iT{3 zH8;;+H2inozSV3+#)PS?884f*db2#+o7MBOCG`I6AA7qGZ;apZ&G)2Khik&=HHFKT zo1ARcoOb%&wZ1L?yW--TYqsXcOFYzO;-B;V_uPZ&&wuQn)D#^j5!9r^S*E&3cWr2R zO`!12y6s7eCtqHv#(cPy^XMVVOKy6p;_Hj9-M8fKc=ygNCZa!#KlaL<m;Qllt-D^& z*1mW0wqL81$ju^~3r9L*FNb*lnZ@{j&bym`X9%76T$hyOc)0EK+&N;tvr5cVm(IB_ zXLlz1dY)}%Ys-wOV&#USYrkLgYPDYcamlpPI?0|#e|%zkdbsiVi$fbdt*gz#RH8n8 zJYKza?XiT%tLs_gudWPU9=<-#JpbOBkIidxYg7X-PAahGTJw$hW^7MqXxv}MYU`I` zvR{}jc}~kqvw2;78+$b^?f*(IuXlTXy;}S2?b5=+txG>PH?1?z61lcsesvIM<+?AY zT2IVOk6z?*KvJTj=^2v?tJH7XN<*91N);O)uvNZStZ$g=SC(fs>uAKMoyn7+X>^wT z{qHl=E2i~CzZJc5drx<)y2JI3&4z}|^Rwsl2WMUsyL(i*{!D(i^5h+xC02&qTD36g zT*=`dZs+R1F1_12<zB4p6C2yA&&O{pQa`X-Aozo}&7me=$Nn0fX%0RQ0z96+?B@QX z_^$lj5@D{r1&!85OO|`bRi8b4v-0AlrHo!nUxsdQVq3f}FyLjaQ-J9Hu*j86_4gYy zq)Ve^yUbTt=iM$lf3fhPc)ZMnlT-ZvHRRTWN;|B+CO4b)=c_+Icf{A*hX4J$XI_Kg z%P{MQkA9w5!@jlQvd!yl%Pws0x2$>k=1dm1#_O2SscnVgQ%@eXi_CiU_T1cjliXSL z|7y<OW79dE_U_ix_~qyJ-rGC1wJGY<RKE*;r(^_H+&JN3xQaQgJ}Ie&C$jylpN61- zTBuq;dh$&<?YW<BcmA;2y30Cn<(1goyMF(0Io$L0;Bm8=KHt9IuP=Xd<Koeyt$)1# zrM0|Yd*HwU`MMvCInUm_iP>NG_uk&>_ct~!{`TSOjzV?b$?T^^rZARqKe-%#jH&*@ zmWd{NrgQgR%6W5pi{89*M<$wV`pdXoSd;(F<ZD}l)i1~dIxCj@l`{KDmb_*2^9y-7 zH|?v{syi|DA;%?;+>eiJd|A4(ZT7iEw-lPwD$^6^NH|{!kUj8$-QsL@Rz1t2(~k4L z=im2Jt`QZSc=kH`)XizJg#{5m9=2DX;XJ<R_>8{m{g=ev)r);E&VD)BW8tE@ZDzk$ zguQyBu<J<XxfQ1Q^Yk-UbPAuhIXOdHI{xOHlb^4yi&gygjhl;m_3mxv#@uI<SyBsD zWuHpvcpJFQxu7}u{euYCQ_}Z;DagoPQDWDWEaHs~o%J?yqVnULIYyIwPw&wvDsHy_ z`Df8w?>}2Ivv%%rd&ihs__0|~`Gke&-^2W?jD(fVY#qZ*8@12Z{bn`4_1U~P$2{)x zOq)q%+YdhtJfvbHK9hIN7K?}#P0k`VtKX{e@}5;WT<zdsv}Wb`1>Q2#yq4ZN^01Ma zU25jpz5oCHzIgGX*HR-pySf7nj8Eo9Zce)@wC~mR{QD0M#w_VLvE2XvYbL&FizUR{ znzKBFFGexxuaIonso?H^`unRaA7RIHv7Sl4_WQ><xU!}@E0!x)?%uUNVDEROnOiO! zf9kX^;McS4SQNWx-h8u6gGcrX_fMsmsXbN|dt>RdpSAp6@NEgdTGO`86K0zSpR5&? z)Qn(wc5CYqHQ%tZH#-z<?yTYAHJT&WxBOS&lDX}1ZY7La{hm{Ah&Wz-b8;i^&JLE( zPD)RUuFf#DTQW6l&5m=|?tEI_yFTYz%8yqM58K4eFAIG;ON~W4ByDT)x%cfciH;1p zN4Czple+XrndeUhotgGwPc)v!axJ-?F1o;7z2<{eiqYjAN=dPEMe42o)ND`p&vZH@ zypOT#{oUPv?-VnBeU(~SJ^O3x9hqg>>dz+c6IkTf6w0!$?7V5|?l;Td&e2xbaAMVj zt5UA^(J$BZXKNX%hRsgj8Z<L#<)NyY(9nn0p8}JTSZ}1Kq)aH6GRukZ{;?`Myxdv; z`$?5wIijCMo2D!di9XTqn4uJ9w4?u0^sEP~A9VHJv2Sv(*9%lp_k4XzlmCtJq?y@% zvCUm8FB~(y)aJKlN706@UY^{taZynp{jLR_uiT&A;u-2~yIgZ(t#F=`;yWkxy2ox@ zlHQ9K74^vY2L(M`y*_VcbotADwa->f(YktL-ABQR@_(Q3^r<{J$<|z~8{KvE`-LR_ zvjTtKaUIPu?w#}dc7A?&S=^JSqHR*9;8gxWbf$|*?yjtFZ&qKu!@qc$W{Y?68uNH7 zC-HeAOv}%#dU#cG`LD^J4X0h0u7B^tCzEjZoqAK|TD$Y{FTBONn9W)7#mjXjdv>q- zYrXG5{Bplbi(F4FTBKg^QgWlkyMFsWGP2F_^>^<`Y?zev<#nsxS(eqjla8OA|2`?C z`ot+8i}l~ikDlyjHJ>1R{lqr*=$Chnr$4ClcG+9|`|U;Z`*)VvUy7QuepS?t#^j|- zm!>@a_V)I5p?z65i_SK&?we!2-EP6t*oxR|t{%!YQ+wH$TDbr4YON8e2;3L+((&Yd z-NHWYj|**z8a_<*nUnuw;idQ2mweu}Ynpbv<a2E^^XW{t6PdTa{k8p}?XE@F(ytj# z%>H@ibg0TygNKP06+FTfyZ6^~xym}P<KXa6s}U8Roc-$2sr~=|S==moa^kU2=gytS zjZ|a1YJao*efg~V!}Yc5Z_jB>OMdUXE8^t~&%5RJKb6;MG2c7bEXXUZmw&(R@7m~0 z(|-(GKTbV6k0)MG+U`$Azns{Ge5qM&c^|{9)5APNr+#AR+`YjsVe;JPld9cVR+?nD z>QwU9>wlXl-4%B8!m9Pt>z^Ld+){9;B|p(`#}1CAmXm&DUj8#@F7vCa-GASjXYScL zYk`W&lY=V)Z^?VbZS%=prsa~U$+oYXk5@pc$JRP6=-{`G*J@>@^`>`ZClvb&6c)#s zhV|^OT9$Cp;uzDZ@LN_#LEC|};zPH7&^W$l&z=*<?oFLL+4MyC*H^mHyQfJ%+^^NL zZ0E-)zD1^~?7^xxW_MiExw2(O(T;i6esON$FPh2<*MIsGdFgqybeNmM|4DVHIyXQ1 z7NcnN@>ZbXX@#w2-wn<`%q~f0om}obe?6DPeu+7E`x9mUe*RPy@#KcvgEmL21@q&D z7B0JS!{)PIVZ`5Gr#bRtb_SWgH-EV6e*T47w^+99l35~J_UC9oly0A9xYu=!_PAv} zu5}+{<yT#p8a}nOYm(5<8yib}3vO&szRK^i@#EC9|6*&lru%E`{JDA4D(#&`KAUTV zlWh$(UfT6mKiM`xz0cAx;)#xEl*J02igU|i`!8IsS@&n^<>MFb2tID-Jlo4Ft}n6C zqVU}vY2VquZrygT`RKZEz5eQLXC^EU(<t(v$5Z*gHr{&o?6<d;u8Yf6nKC!KmG#FS z{aaU$%0B$EeZgjv^ba4rf-heeskq{JAm!oeVu#{VrnMy>&riLuTYJf^!<)@Ge*XF@ zvij51?r!dzYl9*uO1u73d%t7Xu33NbVq#)GKRX+~?n&IlS&y{0&hqgT%eh-M{qw&! z3R|9Ef8ZkZPGH}pMGF{S2Q3Kv<o{pxVwKf_nSoQ*Kl;0K@^r=dhRy5^>o=+AD=oBK z-Et;;zEOO!^8Fc$ja~gVb*=Y)Wb=QXg3wAArLvXJw+P92A1W>4`n5DsEA(OEG0$d) zquJMmJe^flX1osf^3wYApxO48M}Be2J?*b%s<F#tp1WUv$??tPUhBi~jD#C!b$$h! z>c+PPpET+DfAw(5^Cwr|a)_?;*Q}fK?%K}H(Q~c5%irxee@$vHC#dM@{3xoZed#!7 zYN&Yql@;Q>t=FQJQbJF>?ApW6%6{oi3Sa!o^_owfgoIU;O|Z1u)U?>daZT7di7#?o zpIY}sv^nqc(h|+TE%xP-cS|c%^p*}eYqQ@U5-ZETCC^!{V`^G_e%^}2!|Tj*Jie8! z4`2VrxjiB^wC&uLlrMFh=S{`d7<;U*HQJZgQ^}k-hwbEniZX$+txYisJySy!epf!> z-*V5^-b!}vW1R(O4C?p2zwE#M!qSu1&GvC|b60=6na(fw<fQ*<&3#(BQzw5sc-wl; z=YLCHfBAVjoAZNe!6MB}b93HV%OgG+9C`iIY_Wd8zEl2>?tNQtw|s_W==Gx&fu}zB ze!8{A^TUs)m+Pi~t(bVbUVmrjoG-_^HYK&(GMw3dqF-%cvf#FE!9^F}pAvhtx|Z$J zuIc*f6WWxngs7I4mhX4|usC-2*Z%NZ5oeV&q>GzATq}&Kp0#1ZVs+iEpU<kE;cBW@ zshK1&$Jz8Mr|DFU11nyHd)RA*28dqXVDlsOL4{ISd(s~HQh(F?!RJEW?lHJFU2EmC z>2~LGC(n(ws{5l^{hKv^&&I1yW~~HO!tqbFla_GvNEV$?;y=i@F-*8<`Q!EdZrNX2 zE<B%CtS59tXlKyfv|9bi-}2en&uxh5Tz_KuR52-zX#y6NTh|)eJ!}`;W}u)@_p3xV zW8(F-e6mXWere^MnzDsgx~R6s%gJfU$B&}xckFod;K7{5?!njB_5OXk{exq3Ug?_^ ze;?g7zvnT_{(i|xX=m$drt@ZpUdsw<$5`lFvnJ15I*aG%GN%yvH;WSAemvxQ()-#a z7Jt_jQ}wDRcDa3zWVyS${JVtJ7moBLYgJ!2uUxrO*1Bv@N#}mCozvEza88^sFZcew zzb8Lj{rA_V=IYxH%bKtI-D|!oPG8RzRPiJ0UHmVP!-2e|*Oz>Gd5!&SVdBaEznrff zUeGe_zx_P<|3MF1!=_&Nuz^V{_EX1tC(9aE+v8jBa%g=yV#wsNWFbd*$ktY2VeVhw zzboDU`^Gpwu9Dr@cio}8GE(B-iy77iT)xMBF8Xw0=jTo470ch1mDqdDP2g@SROky! zse7}t$7$iM9UsdMx1E+Yje7V@Y)Qzq9uDT?9{v}<N?q#AsR`Zu?Z3-^uWaq`djg%) zM8w0(bKmz((R=hmB>L?c&-v&7_o%I0$tt6nC0e}1{_)K|%@db=&9*j$?<(L^+;=H2 zGINTb_rc}0FQOjaQgwP5aje(V|NN(KeZL>~U+A~rcX#LJ{i|1t&8diIEPXAc!Yysk zkTbvd&km*U8`Wx!B-8$Msg;>{?GLC}sifUG>FSHVFZ_?E$-9QLt?v`Q<1n-5jFrZ( zvsLDQcG+0CI>zMAe10QhmTvVEk0}D6Av1fon%yo+FE1`W{_^tj*0u$+KE-=3<+_y7 zW*NW#{(?H8x`YP%Mq$+%HaZ@McT4S)YTU7}D*Tbu)73G0i%(ST)0zKmx80c+&Qt2X zU#Z&u<*O^}&sY8NDf#=4)qcMf^(S=yA?~$WS3G*;uFBL@bC#t(u(ND6DrjE0qOG}w z>11H@hLz0hN*>OkrAz(IHI=ugF87m`l@aTceLZ<r*31-1)9y7!cTO*ys?@I<RB-F} zgf!(UmxI<~&w~oIxeZ%QR4*uHmp{=tH?Q~Yt*dwM)g3%<KmX)eUFWqXv;VI$`yjgh z=Iz_&xwpQ2K5xIj_V>1%{x;m&yis%3PnyJ4Ih{f7aFyz#W|izXiOK$-FZsO5I4AQr zL?x;B^VG%7vzjAf_ARnseq__mj4XfVnR0e3-u+k{cG}ojb$h;e%<g6XwfOkdOi~+v zv@CGg^P4O7=ADOmIY-WP9RL1y#b>SKQzDix>UqXfwcq7`h0UY2+g3)DbR8|9cET!Z z&yD?gcbES9YQggpymIvykJr+o0}YIG{IfaZ4SOc>@Kt{=nmaj|>Ek2E#*a?|KLpu{ zEq790J;_LFW7RJ$&g+`-sdf(*cn7|Z`*gpaDc#U7UvR?Y539XZM7RpoXN&&-GWpG3 z^PTcBk&ThPU-caHo~~As=Z)VwEg@g3X{%yN+wU_|gZ5b^E||PM`FQQ6fU6hJOgSBz zm*;qP)>@^_clZC>mE+R6CGGUQPm`{`yv$$y?T%N}gS+MB_x8uHE`6R`6Po?gE8Wk} z@A|q}<MeQ`aH%bBwR5)LyJePfq4CxG^m@V4#MWq2Uzgods^WE*mc|`Z`|Vpl_qylS z&uynCJ*>KX$i&@xr`gI03#KP1UHY2+;-}2zMS8~N(-Kmj%-VW}$4AcnZkYVOMvld= zOEmcn7MUI^bz7%-u=bE&czwh1;1m5K-|}S4_9aEvUcM%?C%1FuhtvA`a&~`KJoLz( zw0_m)*C)St-F|)2`j_;Cm6xsG?^*nJwhY7j^H<sST{^Zs|Ms!iCG#q!Wm&IW4=S8} zpp(ayHDWGP?|Y56;zwRwUE{<5RHJ5^{$5LiceWWCqAzE+9c5|ffBsBJYU0UNH<l|u z{`actUHbC$i?3`%_e}Emx$1|K_y4TO9_N!BD$5TvsJ~X<JLS{W$alBY%yM>oy%Oxb z>i&bHN6+l3+?S%{ppkuN$K-_zXa0Gfs#W;u<cy$|-#&3wKb?B^iQ3D{>BpyPbLOmF zKRe^`YN_qB&GY$WtxPN|B3@@}X=`)y@W_~Eg;Z4Ra8dgB`E&K}x7$y0WPY5v#?q_# z+Jn{g|8~B8vSr1u$d)3pT)C)Yw-x@}30K;#zG;4QRDtTH;%A<|3ezs#-J5hQJwj>P zzW*N@pUl>qlpmL%^iJxh?|EOYiIbgD^uOj<NlH%(zS|s?^s{n?{oGS!w%2FuTHCWe z`JQF_dZ|ap*PSp=Zjv;a-xh0oL-kFRmus4`2+zi6duCL*-1pmZVBNcWs<D}jGgGA> zYI}dJ%Gh(Q`1!fF7Zx^e-faAH`XAlZYoc$j4%ffCuBBj|*$2^$Y`oLf$DKXP6D!>H zi%C?pNWl5Q5{8pP6{?Fwxmh<|SJ;!+>L04N)OA{Z-qo*XyZSQqb+wXs=Z3fGzwPnN zsNHbMZmvj7{`tQ3D-L8HopN^ir>Qz_jUtD_gMPR_{=&%f{DpCbuFCXJp%WbETzPXd z{Py<v{FP?sPin?)I<mj?_138V3l9%Z<Z9&#of5uv)zM?m&d#Y^ntIyw2?smRhfm-A z)BdZ9t^|#;U)x*#eT~k#TYV8aYKxP8%IKO-J>%*7?zj{<?EloPT>bjdRPFqb`taGG zGj~2`4}1ILltt9U4G*I4g&Ld{_>xh0!FA^3!|Qz_5-TNttW~!wKDM!Rj_fNj<uAvw zEH5w8vob&WDAL4XHCydhe)$LMJu|}lwG4FrOA9SFl;*PB=DR$Ir@p=|$oSf)ck34w zl;*b@{5mo5HhX05f^*yNY0kTT!YD>#<AHT`zh0VDMinl~wFK=q%;#P0xKHUuf`;Rs z?}|rx;!GQaQiS)Na`2F>;asON(QW!YjsqHBVhp`^KX{S9D{fizj`B^D#o3O(VD}H} zo4Mx8rtRka>v>*x>D6<(*I$+XS9a-eurSj;U%rUG_U{{>tEhe4cI>H1)uT?f+KfLx zg4;r+R%f=X<cR$Gc6YadPq*0W`oCZ2tj}MSSFl<T)HHj4Pu6Kdzs#k}{_AI$yv&J+ z5c?OJ_IS0Fxw!cBo*tfavtPb^xr^sD=u-QyuV>%sH=V+^_F(vePqUBDuYM<Ay0x3b zC~He?$HQyWUQU%;q#dmKn&pR=eaGC=vULG!SM&sn!kIbia{g|XvF9o-F<AEXu&~5x zlk^_nLu>A@%t$w8KfnFX$ro#dTk3_Dg*-Y_So4!HmbYf1B`^PJ!>Pq8eh1#?KMGct ziDfQs*?H)$X3Sl)D81zwLPySB6W(*lYW+R0CI42x^6&Qcdh+#^?rih()617!{Wx`L z)!+J_^}EWy|M>abc#gULlAtpWuDS#{`u)(7yUwvfAV%>5Qzi@R3?W<I+jHX&zqO5R zzp8u3`u0h0^XgZ-?zQngJvvMKkec@Y>qlFo*X<384ODME;rD9eP9xS;Q)ayCVX*aW zKU3L}vr_S}@RNqC8vFXbPB-k|Zu;%`MPc(bsWurG8XK9vN52$mX-o5)S+p=z`_;Lu zJ3lr}o_y-4>)UsEd27PIK5saAvK6#QMp&eC+JxjE51MW7-FtXTDfqwD=8vJh(bM%} zPb~TR>gsA&SJ$kqv;I^+JvG(*e$C`P{=1XYp3N{!w)^!$x!B_DBd_MLN7}iy?W<mK ze!eBv%dLIsR?^-{F9ocd9-d6U{%hrz!`FGI7FR5~*?cZ3Be>=|*LMHnKObhBNglD8 zGR5Hbwl0|z(QE;6Jx8sr*G`Ig7o20itoCTC*_1VGUycRlUv5@&ob0{ZU<aeGXb-2+ z>-I(40(WrD$l=L8wJmsu?%kZLr>nz+D@!j5om;&&`u(lj`W~K|M(04QbpIRfdv*W* z>u&uW2WJMdiWvW4y*9Hyv4&%h>DRfpy*9W9-;ZpO*?aTC)~!D-iyCoWzy9Qa$llxS zS4DPRnt%O8RZ>*c(sGM?nScFGiHV7A%Z;=tRQmovDDT3H^-H2f->cO1{ovQIPcAju zb*Y-a{vOl+w|oECNxgaUQfB?$XCEK;FJD`wc;d<R`}UQOju@YvwRZF7=s#D2y*Zxi zL_Kl8mm=X<xaWBHb*1SFdV2F6uDstrzy76a`KOG6l9(IY-><v6n)&SY0MJN8#o6P> zk6*kvQJBy1p5pt*fqPo&jJ6*Ad8*^mf~h~cN>+r&-Td=%`Ms<6MHer#jQ=}%ZOz08 z)lcjfTAf(^Ured{Wj0sbdL{2v&dL<d;>(7+<$v8Y{M^>%lBKvc$kttQb+>e))b0xw zE7sc|JSNKVWxIn)jh|VKe&X4rsK?7%g^#W>pSLu-Y2h=?q@(wae)+y4IPa;)lv&e1 z*5<3WYVVKlIXLx=$kAJi<|mvj;AZU>e|*9GB$K_<Jg+B=2WRg)2rBYHbAS`stG4Gw zTjZY#4LNm5x$D37zKAl>?iJtp=Ra{!{w@DsQRs`(pU;yupWL~7K9OO2ywZ}=x2OIv z@m8<C#_el$_rt@d?|WoUzU-Mgja#&MnfL6g55>yc)OOUC1+S2I)!LNhV&e3yrt5;l zw9biIC-xeCQPle|@0LXT7n@_o71vg8KV#r^)@xbN%I0R{Yil_F{Q3OX-+ph?f&R^( z7fp}9XOnYd;?eHE{&PC|I!|8Ja-AW$-nGmlO@7}#&)eJY&o+I{rTFStZ}_CUldf+* zpC@B|?fHp`E24t#9y=EPpLciZ>ub~F>uzqz3^qD2ss7~sCv#W5J0j)P9JOy#+oc8D z!u(22-j$Ta1nWJ|**H~y(k_vm`AVxLr)+GKf7LB)WqE4mY;7Cch|8N=o^;lol~%r0 zvG3336Onl}Z`UW~y*T*Dk;QE7!kVk=<WdzsRjsvk<5}cgQN8`)q0A^216$D|=2n@N zBAT8Y`&?~9cH3?!U~Bt!+*|i_`K5h!Zgq`wXHU#1D?Gd=WsQvE$*e=(9QzXPO<3FT z{=CS#re~7LQk4ovltg%z75%zqV&2RBWuNMuMs@$7hsPTlitd<)NL{%uzSU#>|Nf6x zPfazKGKt8O*n8(EgBmx3t3{v8F%7X-F=uq9A2=1&_Ms}|ReXAO^(BkX?rv(<vs&WI zDwO3XDleY@*8A7=YyL+Cxy%lQUuyTf<fhlP^m8R&-cjuv-}m0DQ4E@FQ_<RL#Ccxy zkS>2=oW!K=h<m}WYnhaH9?Up#W=W_)P0gbDf37NKl>Fa!<L=*c`upd+y<Hx@*iCy& zj7wbUYrVHuGAB1Tf4X>SRo0gmm+k+S%*wH>`qHVt-{!~u|8ML5mY(;UYqo2L&b7Lu z_v##PZ+p$gcV~ab#QUw>g>EKFIW?)9rOdN6c%x3%v-(=3?k;=n-eZx*nJ*!FsLHPI z*QPZ+5j#)3YkI>M&}sQ3m~&~2=$R_<7#Y2j(|7HdF|pyWM`3}b@e0k#iS{q*Tg^;* zasxCpvSmLmnpw-TJ+5lmoGB&ipY=_R`z3E$?6AE|!cM^Z`GY5dM~*M@TFT?il_~Sv zA-v``)AMbY0)&fwrnL*dPu^@CD`Qet?{cx_;GTU6Ypo}r4O|pxax69CnD*_}*T0qD zyP27?Wb2N)-}OD~`Q-al{NoP0znw1rVPb=^zH@N=GLFon7E?N=X^AZOVrI_r`jwWC z@WM3=HinZ$kIvo79i5rU!TE5SvWkA^l1Vbt%BuPKx2AlU-a7Zz=C;axm7Q1e%l;?0 zZa-V<zCt-<DUXxM#Uw}m!h6#9S13G}y(abkP!jY1jb=NPjEr_4doNscxclhQ>+4kC z-Iw2&clYf6f4lCizFylD@#O2BVsp@Rd%xVgySs8<-mN~~z!-PGu6oJ?v75)v>b|(M z^F}-W=bkmjw|<;T+j@4*LX!;JeT(Xtw=1|GZ%qqpG|!u8q_umm!tq~g*LW=ynr<1p z(98VHkJSR|Jyu$g*L!Y$f41yuq*bPl@RE=j&1d&tJW<f3y*q7on6<cCxK^NOnSA)U z<o|kaZUwz8E#O}l>yjc7D_|lJVPI}%YB@>n)dMz(5cc2CoU_XA1YOI0^RnTs??l0b zFCt14u5wwfcgQVe-4OV)!fIAf*w?qGM59FCy}2179dBFb-gibV_r>$$dw)*9<9vAT z1JNrXPGt;-7e83sGQ+`}voEMUJtTU`-zDag&n!`l5EtY8IQ2y2%A?EsWLbkbuCHG& z60_v3&g}g*s+%Tv#e~?*dp`NH;pT<QcdvOAUHD%4U-BnUJ2Cae+T5-3VKGN!?k)4U z(6N2KVMoo6=ksr`Ti5-xDD>@~%B<OPpfR6g+5Lfzhe7r4Q|*-@7nhy2GFrd!#Jzv# zmUWc+XZ__~+~Zbeeg3Mki;}6NS*f7ZuSYGjT=K77bbR_m<NEYtmwxVMS?q8*d1Iy! z+jaN)>RAaDzrQ@5db*OwSa!Bn`h(r_mw#QldLZ%a#^Py_x5Azl$C_SEyz!<*Io~l! zL{_ps#mwbgc0g*>?<ut=iEpiS84FYN?r(m6&HVlywIyeg)#9(VWks5v2=`h#>%ie- zy)mxw`+2ye6PbbyoixP_q933BWx_p6OzgaC1@nrpe-hl)0%c2=x%>~4x16+2s7vN) z-a31&z26I%Zdv}~X*=ke+TJg`<578l@S@pq(=E-S-$&~d9~b>;9l0X-g0i@A=mhx# z<r6K=RR_gw{4(V;&z<dy-R5rCVbOdxr{-(?))y~c)cyTsnsMQP#j6>~pw6jQd?VY6 z3AghP?yVMEQK*o9(Uvjx@!I`f9s&z=VpS&1oT9oW!mwnbF>B<mpL1Vo1Y~la%Rjv2 zy5`BAj9%Tzf`xmty30f7mvYHX4RT~&eXakvx$ldQKK1hd+E<)v`57kB{`mdHhSjr; zGd@f;d}hbBQTvnKhB!f)xlgq&+OW-E9-&tD@5V;<Cw}|NbT9t!Sp8U=``fSoLh%!& z*H?efO+Nms;GTZ)flTc?tXKX%E<DQ}?;RMxv0bGk$eBwmF4(Oy{-_(P=8Q)zt5;j* ziFLBLwr2fY^0BovHaYB__^U%vg>13x6Q^p4N{5M?t@6Lov;Vq`ME_0S8Hb$q=4;M) zP!%A0N?^&<NdnnnX50to&oO>!)oW$EWnJuDbw8Wr>O4@cd=}9!XM4tRu9RW+XVIDK z%3ePDc2fPf&Zg}Jk}+}*^j~{l$PD3%TzKoOP0drCR5Sa-E!D<G+qhPpcyds_xP8~= zw(Uz2KEE|C_|5uVfAYb<o*zOz74zmEnsrg)QpdkvGtxIEvk6Pbnm*qj)jDD8mJes| z^?B?~N_u?h>=voOg9aPI;u92nf0t^_I-(H#vn4N?FaGMYxcK0jrKQ@IR;!}6e>48G z<$7UFt>=Sxt{ctwbsmefe8jP9$|I3l^LMpJ_JwxN`~Kfy^G~nO7W+Nol-*WvYIeR^ zQaWczo9(TG3-`G6scCeV7KP+y{ocN1-rl5dCjGu#a_jTw=>OZ`-Z1-~|Au+o&lEb3 z-FTkh#Z|Q-fc@ZSi@HaldFt2Ra=1xfai8QN!QS3#U3RDaY)(z8vGJLsM^oS4+G=TO z`RWv3*MI&R*EcUNY8ZXoU!ZtSsXBV1ck#h>5j&Uk?DJZ<xcSo6(1q>MHpcP(+mp_p zyqzH_D}Jmvw`yu=(urO{QI3AiEn!BEa~b=tY;}!zeJXCrv4||ji^ZFRo~#nvsbRbS zrt@UR-?uN{m-^3CcHY%VqtY+*=LX|Hg&U;JZU(n%w_fx<bSm(R_0^qPvwXsZ*5+Gt zzdZF|q0;F$xu2g|Katy4ZGO0B->S2F_qqL8RTMEr$$0YaOZ$Jwy?V=_T(Frv;jHE# zzX(<4_>=^JR<V<nuMSOm@pOw=r{QMBJ#HWWD)snG=a4-)>F6bE#dUsObIYcgys$ei z8kTqT=8xT~X0;0@r!J6QvQzO2<D~-CO+pv<3B2<%X#Y^lv8Te{J-V`B|G@<nuS9$U zdi&2qg6{L5@YK|;CZ=CGKZu^*^nUO5)y3)N-7Yz+B5J1iT(3QHZOZSpZ{7wjxm)Y@ zL`(dUcJ8k7qu<U2J$t0@llSVeOXH-I6;2Z8sviBnVa>lmZT<WH(`?&IgSVG%y|%VA zd+WBmx0{@!qu2hmj0%tbpLJJS^q?-6pNNQvpy-_r1+7I&-feI8hI^c_`d{4HE5XF# zapFPE{O>0}KYRA<?(;qKcb~iam;21yV?WrZpFC!;o;_#AF}KgL_NTPw3LJan6xsgs zQt~gBniF1)GZHwyFv*MWD4Jkuw{9lK{<?-6$E4HG{5~Wi_NA@%^TTJJ*Cf}>;aXQT zMUv-T{ARX;+|3G07ey>?x}G!XxQere1%s*4+8f?_GukxL&nRdqH-ElYEw*&_7Oge= zFGZ}r&a$tls7kf^x{*ZDj^ii)R~xb1I(+@d$;R80D*xWtEMgb2jqCMCPqSs`FYgMf zIhuB9Wp<DE%)M*9#9H}k`TlQ9(E0w2^L)dBV*=l;H}l+(;*E8gAkF&yW5Z{My6YUX z6E19@c=>16NulrG-mcw}`ps78<J4QC5)wNS54TO2AYeB?p8NIs238ASLxUSTikEK> z+BQwA;aZ}B)~utwA#>BtR#|tpb#`7jF+u<9F=qCCbJy~Ot2A=mKh)XTP<}&(PxA0z z`-KatWY2#xdU!K;$DaP)XVHII|6Jl!d$GS!@1@bn7js>oUGHq`xqQu+ZT8cGuN*9Q znEmE4c|@AUr?wwHJ9EvsS0U9LwvmOYAq$mN%v-Mb1$<eOCigN%v81~pZeqZSB~_b# zeqL{uvt#d}pQloPcuig#xA$%H4wLM%>WhoAm!1}rJ%8wr5!<{j#~RjYciLl*hDHeA z4@rD_S7Y6wUH|;9ovz<}Y<GkA4<7I5UK+Muu10sS&MsKY=G6DvbmIQ|g57JlRu$yu zB}><T&2vsWH2=dU#t*?R6Xcoi8YK$L&9+{%hxPU8T_W>$9-N_FbgBBAjY)c+_Fj|D z^&VWS{BEvNt!e%B`TXmzuk*b<0{qset!FZuR?vCs*!-z_Kc%F)e0?j`)LQHRS6)Bx zV6M`JPR`fP(M4^JadC1sce##BZSM2DSMRCeZTWZ>Yt0Ftw2#7Z_tLKhzuUH^ZPk-U ziR}FPo9}(vs5oKns*DS(%H!)l#p~S^EJ)XrF=-HfCQ!lAB3jxYF6!{j=9=1!ud*FQ zS<foPIuoO0On6!iRKI?x`ehR6pWnQ-^k|_YH01u?E{xpqA!>J7QC8-^Dvq=MPLW^l zBt9q<+jq8+g|9-4J*yzmN6e7PX;*{6^SN5fgzw+#ncJ^A*ZiA?{;95wg`G3Gdhgvz zt1SEVMW=an_Itl&GvBl7e^HqFb@lnCxfd@uGIV}?5N@Np^^dm9?BiPN``V^>^`BiC zoZj5*tN;$SBjH`z*0XP~y85nD_`KHYSHBa~UMCbgnEn;<s!sl6^*H)seQMlIH8vL= zPu*+Q#oV7ZJ-isTA(Nq<C-<LCN><S3V)O9FU%&TFSgbVX!Kd^!rWe*(?%BZ9$Yf|# zA-Cq7)=3_V;|tiNt^au?-u=Apnda*(j;gO#cXoeIwA=q^S?(k4qowcTOqz}yZr_yK z*f?`d=Z7H4WRund`&s^1GvquwC^AEwdvD7G-aQ-@H#rt9o4Us9Y2lA$ZkrzeQ#s1+ zqUpIN(B$eP4ek6z{b2#$4i<IY_PX||;@kA{V?ULyvu<zic&KnphV$YDL*Z?Y3wIro z-`<_Q@k!pB`^PUF@H@BVTv*t?W5;F}7i;bj`6#+ls3vq}$=oN}Ki0oqws!6QO=dfE zB)>FA_AKsFT=;2HMRLiW7ZU{Mm%Uk$!SQhSWV`*jNsm)M&yzDUeYCIl@4T5yWcl;_ zRBU26k4GDADw5+`xLia@J5eX4_Ux*)Ms}=@F1~W_@A0(V`8~D$&g$^{hDNu(JZg3N zx@753FU_#?Pm8Xvi@m)u**!Tq`OlHkxSjmlm40457w)u>!#mo0`l*?DnGalN)a*TD z?{+}9`iB*F63YY`-q=eEEp8OO3%%wwW7E^SpDxx<bnX4Q=l`s(rGm|=SzEMT6wHw2 zuWmnV#JnR{QQAedOe|Ycr^{`MSL4o&7ou5yDn2L^+jq7tVyCpWkkjel4Idik%x~kj zx68Z~sUR3XvBb&rWcZ5s`n@sx|80Ab@zmw5m}vh&bM8iWnMl1=Z+PB64S6PGqmiz~ zyYp`9+O<!s-<0p!8>o2x6pLPO%XIby3X#I|JLg<~u%G$d_w<O;ErPFIr!9<VZr#E0 zX}fb#tVbqqD__9o+7kU|n`W)vKUIA9<BN+cYX9~|Z@aU8%JR^vKV_L74-Xx3^7MFk za<Y23@%~#sxw@=*X3UP}@^;O!kGb>FdSTDS6-ojzZLZ}B#-DujZg?K@*(g8h`ewIX zbF|<8Vl+H7_3Vtw4b==S_cZ=GEXoXjp#4Gr{JF!gmTlO_yGQS8t;uVi$Ggs4-Z6{) zxk{rlm*Q`mKVKwH@d&&UIQZ%XllN4nNs~T(`C=wx?>AAhW4*_b@X)|Kz4fuyt1mA0 z?{Ya+`LoE?K!<DA-m1&@mlZWX5OLP2be`bVRx7q|Zu8+UcfUDKaIa;z6eyBe*OR{R z9RCZ$3su{=FU|8jUbT9qQzQRL{>b@;oMEzt$%mPh&oReu6f8&*6p2d-Hdm8$co(m5 zYW2gz-=A$@Y`%ZAd6Jy=gMuG-cfFOj_^`rZL56;1=!ekM<wt@H_N#rk`uI3!k-GG$ zha0zT-hcYt`)LgSzI`a=*wN`YgX412!u<k9H-#nss<O;*`e!@yli;2@hH1?am*-ub zFlmaap{KBL+U8HIW?FnWBgog6TEFG@suZ8K=BI2<E|co{D{0=*BhLEv(!=~EcK#a* zn&Nj(2o9UL;X12?cK))XvAb)0e9Y3*#F#pNbcN(z-S*9~^WB}!LrJ%;t&KZ%E1`{{ z%Ee)}L5D^VbG)QfS5NQ%?BB+sUXQv@-Cdt!WiIUWMj}IY<?m(7PUH&BPExxW9=K}d zvaTY<gTnK2nocL*mudE`Z3}(a7qH|*OLLN<wBn3wn|C-C=**7TaO~;nMA=*J?#4I5 zrae1XYHEC2NNQGGr2pzWKMS?2m+o%*Y1+8{NK)bbeeTPAEW>{--|Bzhi-gKF*?_b1 ze)F2&Us8-=;57V@X!J*e&90+D;HTuCHT-jq7p+?8bSLq=I?uFiC5@|BSN;pXAEr6I zM1)C>W!IsV@(<=$>1=-LP*E9q?ply;#M#h0HUiu~1e%XeV2STs_`<Y8>Gx5mnI#pL zvqIzU`cEo0-BoVCV9m-S9!J7=t$ld7onP9_=T+d!`fAU$k;UQh^^2#6_iQqoaiV>l zV1nGStc_D{*l9E_n)ElpTi?yCAYs46$x~ORWN$8(TT;(-XZ6%<DdB?11%CU_uHoO= zQq1?Nxz_x{jDuQJ7Tr}acHunIYBKesP+WY|@z)P;m5AlZma9D6wR&=-Y}Bb_fl#$; zJ0loc)4N`;dFAj-JmAUNY3w&<GxItnR+v1|T>tO<J-Y>dbG^1-@vzA~JxzCN#@F0i zTMqt_l+4%mzjXPsA?xMUljDVdtlGi$Qu9~ijT>_=g+{!et6?0#EK*)l-u}P1k<~RI zfaCk(1+iK>0?C^;FdS;%RLNPaciPp8<7>m_&56F=_mq-@oBun-N`9=EmYm@3e~shE zcFn`9WaST^T{}TeGhbQBBj(%#txDaz0G6E}4UG8OxD+QdOFn<7E`KB1EXc_|T|!m= zSJU=#9lN6Kd3%?ItA7+->7*DFYQdkd_NjKGgGthnkKgZa_wf&pa`i1L)D2s0!0}Ks zx2;@r)zmi;s*<@X#+zpA#u$FcbNFR&OgdBE@t~mCf(4s|J}F-1Z_15azua3{@{fmx zhf&%4Lkwa2OY-ezKYRbOOiV@bjf{)c{>^(frQ7cQv#sI0eL=Zg%xt#4+6NJnx8L5F zdrWK1p6Q2IU!EWrFtyAxQ0+;yL)Px3O|y7h`>%feQYGfFS0Jo->iRviR&UtQ^Xu#O zv$IN9ZeorNJs5uM*s&S$3IbC$$TBXQF=IxE`u?^Lp>=hE&1|>B*6$1cwS4aRn<Xs^ zBUAs22MMOVJ7^}@thHUE!oJtF{CTs%bl;%nKa)SO|9*OR(<SNc4drIW$DZ9+Uv|uu zBiwBBx5G2%ANc9NW1E=GS_RD&IiJrozgQpXzP`lFxQ~Nt@`KqDFXC7PnI2Rfc-3vt z&;Ijic-&pj37;>U-;a55DRus)D&Gkm>$CbzDpe*%{otB9VZ!Y-H_x57vtC>Ae;U_R zt%iQ($c*plr(PUVxO}DJ!2#)IPCK;nQ_Oee%~MaQ<@EeD;m!<SuHd<9#&@FPWLDpG z68m)f%pw1sea)Z$KJZE3kbBB0&~xR=Cq*YZ4&Iol*K>SbPkZ(M=H<5~I#qve@Q4Y0 zSJqdr^QrYseB_l@mE;ricxy`cEy#c3d{;n1npx)Q!O%Rt_lx`a%3g1ikN+F`dCMtT z`xUoqTBEj|SzP#7cB!(E2-kwkme>4O&RK3M_~-ng?fwVCcplXhbT(}}`9XO0FUkLt zw}~^IQCK4U<o<L`?Wt?7t#fhY**>#&Uhaof<`adQ>zq%!?C5Iqi}@hR@Lp_9c}wI= zfw*gIT`d=mHnxiD*19z|t~@0h;j6SyDKu=Agy#~yeNK1xN~dP*$b5Jx+v`r+E(W$e zX}oUbt85(;U#^SU@#LA7&8BDp-ksVCOD$JF@qEw!)7nvB@e}Qid9&gf?yM;nvvdE+ z{QZaGgza*dc5N>9%;m3~?KopqT=a(XiHvFL$Fy`ktVP&)XIOm9Iox);x%u*{H<?p! z?~h&jw)scUj3}pV+qRk3%Rhcx+}mSza_-HCRXVHR7HXIua<{mn@$U7xS$8Z7^rfuS z4}~a-gjat&q?jbJI=d_W$m#C2VcXB_u@*3ExZ1gQ9>*SoZMhY4+{{S})DKM+=*l~+ z=00O4m*Uf$!;dVb#U*EG?*FtZ**)7eY0X3v#|+J&)sD(a`z|rA%utyq^^>dg%Zp&0 z9dGZiKf|`HMzBVX`IutCvRjS{r(T_EjaU5|?&c=?^^=ge<3i(<T2@cBqYF$WxYjsG zENA7Hahml&^hs{xmj0U))y*5;%#XNoL2BmQoqrzRns@F|%vryHPb{9^)2m**&R_G% z<;kiC+OqHN>s_5=xo&OL+h;{jzx@6Ei*1Y5*<Hy~7e7zv@AxV-=ZM0yrh1+l3I4+q z>$~QQDlU23IGwlB|BR1s#nfloHCHV9AAS|@S#!v~vBqCx-ZFLZH;Wh4D)|UGGzt7D zPwZy?Gl9wRX^y4|w@=@}Pwho@RX>ebYZuIwZB1S9OFJmE<(`k)(!|4UkB|5B^YVu7 zULL9+zi^uV{ziS%^72%+MLI%<^*P^&?or#ii}{=Pc7-Wx_81uk-U#phwBUlA(Q=1L zfradA=S}!+{voe9;&75_H&;V7Ymt~!*72k@tJov$8NM4;muEJ3-HUvB?UJnJqxSVX znb}wM{W7XqDzf_e!yi0Bt*xmG*f(sM!Yp6-GvGeov#M#_jtYD%=`K3?8^jpab0`Tt z_^e^z-(DYahi!_1{3ZTdIWgH;K^a+xwr<>U;84m(CCS>8sak(DA8Q<`VRzJ(h-@uu zebYT@xi5#Lrhz(F)bhh#XO6R<)4fr^x6i++p{P&b<i`2N*)mT~%$`*D=}GZitG7!} zX+P2qx*D?UIP3J&w)OvN?(eG=z2DIl#dQVTj<xk^X1hJlHaIP$I8*m{c;P9TNVco| z8&yxW9s0aRJlHFn&A>Blf}zx>f2`}YIj#y`pL;d<sKZ0nW7RJY-+vIFrG6rkCB|H! z*yMQMq#rqR78G*KIT!Y6n&5k09<yol3U^q6LZe-1?Vlgzp4#@yrkpV-d2!+4;dbqL z@t1#aZA~~B`h}shv*^$=S>D98Ez=ik-*7UqDQJ*ickuqt32po(d^e6cY?pX3k^A_^ z)lV#+r&fGA^xSEJ<zlrMCZC6)`5ph*7A<pr5)tP7^_4P5R_LGAcE4wBk@}Rkxp33b zl&PH7NeilZYC;&o4ONBX;u}?;KU^-tq4)oWm|eou@PD6f&B?#h;j*f{h-=w)m5-vH zku^u3f8M)iPft&e$o-D4s$Hw*t`DfJ+{4J+w=HL<wo%Z@&78ZQY}yxbS6LxMvT?%_ zjiqx01lD{HVR$`#swHnwl-TAlS&vNSnU@vwO}T3Wo-Ci_Fn5uTMiqyQ^@+diM(X=s zDju7$N_O`3WeM^ehq5ic>{9yl(BZYgwjUa^f5_Q(t&c9(cB(UNj|w>v9=f55bL!g2 z&C8tI`F^<nIa2DQIWzIYgM*hAp6YsX-C^IUQ(8IqYL?%5;r~O$?{kCO@rR+V0drX| z>TNi{S?8;_&Q~a@QRrV6)8`6_nas!UT}j=$aW~6}-JF@%1io7<uf8s<SjBeaY-5Y+ zge`4X^QO+wjbivH`61t=q^Iqi<OW7_ZKi|XI|{_o6wW<$sQKxx+Ig+cMb6>j=Wh?& z+1>kW6vZxYaD1d4v~=UDn$q|8=Kk<nv}H@vy4dgKFA`+s=dZq_yZ_O__K7{4&OHyQ zRbJZY6{)Cj?^jKt%<Gj?cQYB;HBb3|-+*6PulQOv_eu41!|twt4E{UW0Z&-}JXfgT zJ!B&AbkAmv;G1je|D@+gC|~EbP*<$i&VKKl<1Npjsr&EtCb=bL4QDtfY@e1Yyewml z?8B`a&n4`=+3vnsL*~@gZt;`7((fhA&h#m7|G4bays({N>y<L4;ureOtBG5FuI={r zrz{PpberV*E?i~Yq_xRHZgu{x4F34v2lg>}X!}(L-dS{=PdrAmVRcSJVr#!l$IlN| z{4&9bjv`xn8~HaUY;U=+N%5K08Vm0G`xw|2Lq42Q5Wcp(Sw8=?{`xof|3~=eHy6Er z>v<&nNO<Y%Ye$2gA8zLty+6zAHoIw}N?=Tk-|uf>9+8@wKTq8)+Q+f4KRvhgv(Rdz zY4I-&ABwI{J(c`5yfs}RpEu<{ljLKCx6U4UU#9IAiJvrklijPCj}@!+q}d`~F#Hjh zy80o!&xpl9b=uwCOHX>eJ9{p!e*LA{=J#)|pYQAECt5vys+{MNnAPiTYgEO$-TQ1V zZd_a%H&2F{`+TCHdwXmfmu3XZA&wnSS@zFsen0O};Yl0Q4mZn$*$j^tEil#lXrRSf zce3T|&V+c5@0JDPJGJ@so*X)vbE92Cj9Fg%xru+nM#}_cCNn8Z{z-oih@E`JrK6|L zclfsZbZ+@M$tg4R-_H;hDv~z4^Y3<k_zPFh8rM~78KL#cyKe2@yF^LJD0=(7zYp8l zCr_T*6A@9j<!q9%V|i~yx>3g2r>l+5w;WE372eadNd3TW<{0s7rK_GC+RL+N_knt@ zCIbPrY>)k4R=tdp<CeJnMRdo?1v5=dOl0M^_1jskSfj9=>)8HFESU=N3zd|OUthib zYybb9C;whGXMJ_+(2~~+Jp2pnME0>P|NLRH@|ha8^dg0K`@dYTEHGmZQ$PH@@Pntw z9(~1i|EHN5Ua;ldcdkX2Blb{|nQ*g);Gg#g&8mMqV>-jv(k&Vmy)jEqj%OFkS-(Ts zm0v$PEzCGGBlyRU)YOYP%}2sjzIv-aHa@X7$iRI2n`^oI@0?qAwRY*Jga_Fd^yO;9 zLS~*4czSN9^QwSKr?8t5>Jn;4Hl6IBvTnhGD`L83U*A+}m~M55ydC0N(-w6!e8u7R zn;PdfIi*w_X}lQt<7MBX=BCOC-+BD359w6@xWzkdUkkV82fq(r9vL=VJenxBsUVgo zf4er5qg4xgW4E@>q5bjA`;{K{F^Fizq<%~|;2QSuS-hLf*0s@lzkD&fvs2i0nqQ6U zC4rSmDifD|6cxFiv^974^Je~UM~^<$sC~?2nB$c^x3bDDY@L$#N!fKCsjs8tws5Bl z-@lQva>?Ra2M4dsY1Y->?baN5IkRK^6s3(3e||ns-_R0zZEax(!(Qc_ET^N#l{gk^ z$jz&0-l}}YC1@8@_xr<s^%kORa-AP^xRVMz+c%_e_%tlP_~0r3^87<q>^~TdA3tZ_ z;ME+idU18l(t-u+jZJJh^^KmSfB4j8XmI1l`~Br7E_JT=SQRY#?0DcW4<+6w+94q! zVZXnH?PzIDU6J(r{LTyiO<%Aco_}(JcVoJV+exM$3wJEP^W0D%bjhSxn;MDhOHTIf ztL;xo(b&m8tEpxw=i4@^)8PSk3|D3bcVArWFD80&yU*<aGt-ANwAVBTKRp$8pu72a z|G{TwIlFke&mH1XS#hbG`_Fs3H(ZS2EqboAn7p-Y*sbQZUR(Y!RkBXo%xrn(=edjB z<_0|4lc4fw^{r*_9%p9V^HW-OcH7<inO|hq)`SSXjZtW`mCRw<9hRtb$+~w!*!mA; z5vdM`12VpOwQhg>=%_&OWnE=Ane|2O-?(ho7CkRt*IL7R)YRtKvDx*%R-Vz^_Fi?< zI$sYX{ndeggf<>noGB?Vk?-M6f!XYutrL#6uPX1TnsKOa)o$e@Q!Z|8JpAzc>-6TM z$F^)?GOB!}9W=GIKy|H`(!N!*Hf`c^@3Tov+Vt~KtAglTr9S@qV&OA*I-A;Ms&cL> z)U?K(O*S<7(v+Ael(K4#)x}e%!u|6P_elB`El*P1cS&Qe_4iGFb9rB1zpt(BTq5^n z7sJ<_hm+V!l7u=Fj~9onHhWVvb8FU#F8e<ZVz$4#_Wb<hldn40dz=c2l$-ivmD9%x zrV_6gndR@l1;&c(yUlvRdQ#xE>xBY=F8n#XRm+`zn9Pd(dGTUStg8^0tM{}WkAuIQ zw>NiH3bl3R>XTR57Zh-NTjfJt>!Ks;*YL2`{CK9;eQ)QL_M<0)rXSjrcqH|jcFt2} zjm4gm4_;jry8UBGNO*{fVEjZAU#WB9YjQNI9?uff*%1{sokw*~(@~vozOxOkef`_7 z^7Qydm6IBqIMT$<tK3j-x*ET7U9Fk<bo1O<&HMfxYi6H+rD6Hfe{W9-8J(1`kGX#N zcEK|rhntlLj2O=3+%&nc{E$P)=CyyE1m9FKE<3*9v*opv$a9@K(a#h$RVF<Yj-S}E z-o)3v-_F$NmPtxSu9MTcSKop(nsQ%W&=B!)mPkDs5Ic=a<V0#ps=yhw-IkM%R>iIK zb97vJch}qe8wI;(M@O8kh<c>`blTdwzh5^s9z6DGb?u{14|hkeQF=Yu`-95Xv>W^} zix>6_uih5*Z^NDy%PY7d4Awlm@=)cGc2KJ8+vcg0*5}vEHmi=>a-;P7x~$zXDV&ML zQry{@5<HuQ6<Q7%X?XTq80hw0joixH{C8$gTBw%$@dH&~w|#q4sbOQYnC)EOG5%Ff zP77Zgm)C#wGW3l4yv{Z5VnNsZ%O6DUIyJ%njN0sXug{d3{Nn1aiu!l({LIH)?D^TR z{h#^QxCZ$qy65EP-d!E89~>O~>VBN;(xsw3lEq%}^^03ux35xn)fLz%nESqcW8L-3 zj}NSFI3^MHcj}XA?8#lfBTKs*gl|seeiz01@u!n#`|6p-`eGti0(6(~#Aj~0nk^Xb zSSWho($Y1xZ~N`neLmfLPfy_BLWPR|Jk9g}oy!SJRsD9_>*0Zi31&6|=60vH?qPH6 z<l_E$dAYTeM2^n#+Q}|8uB(<^TOaTLn0;!*ys0I}XPKQ{$kt~0*(E1w?mNLA-d}st z1ob~_=Jg&rC2(L}$qSit>+T)6{$R@KUprSu1qMbsx8IVK%(W_buyF_5%!s!2CO2Pg z?Ov~9RdeI~g#ux*^+v|p5*&?Fo=WjfUf;ZrS31GsvDl4vXQ$9u*ATtek4*RMV7JaI zn8jY9ZSYUu#%6K;edW^Ed3(!r=lo&#DC$|7b$8d-TU)a~e~JhZ=`4Tx`RBB0(~kGa zD(_o0Yh6s`)ipQIP17yE>abtRlefp+Zgxh5y@XWDp(d4zAdjn&Ph;2ZW;M`e^l>_1 z(eicMr?nGrh<gNY+xGA4>-^Uj4*q(0c!!i-w&cD`DXXu$?Q^QEax>4(y14W6y#)%b zRgp)ZA6~XRXVok#_ZydvGS=<qUw&9Z;pmf-^N$PkTAA^$JGP;M+xY!~_UAX{eftcf zHgmU{9Btb%&-%NN{2{&AZ-E+YkF+PPO3lfMiTH8M=<Am+7tTKNa&&auUG}zP{i-!j zp8WBgeD2!H%@4odzx(NP_6lB&Y3HBm<;Wh>O4;SU;oOJ9nyLf$wWhGI4vze;wZ~50 z<-oZTkM%1j&RDsUHF&wzgU<%(ec5^Iq<)<_`C+Qi+Igp+Dy=Ggb3<@@=lmV#w5!*t z$;;2TEPj??rmVb}jaQ0C*6PZ+bAIMOxVp5}tH0T#WbI1*o+p3QdBJkAL#-YWKNzYk z_9g1ZeCgW|*j_v5!DDWoy|->Tf1aG9vFOS5w&RH_xE~w-NuGD;9;@udJ3H4+YJ0iI z=G6|*8rPtmZ2WRHFE6Q{tlFG*HYYdt;zv1)0*1Y+A45%FYv<(5yS8?>X!jN^uFrbm zPKI|*q+c~kQ(RMiZAQkmyctp5&Q=O#?@l&22J)<yYCrTxMQqJhwb$SE;`ws#)u`+3 zSQO{4{Zv~uYHx{B;GL!vrHdygt52UQ*`N63#l?jS7cw;}7#S5EYT=x*DeJ1%-3Qtl zeNFpHR<_T(*H-s8XP%w!nm6~0D+H#TT-LRXx0SapN9(Zt-iPw>5x-fs*)p$Y2&)tg zUfQ7e{he$1t1aSpC(gZVY<M+KIDTT5OZd8&iDkQHSQanaBHdQPB>QOfD-9*3;tvVY zU$)o(DU22UJa5Wk8^zaadux`;pPBaX;+oxo6>l}RJ>q`CDsHySasPFm)jm!MSvs#1 zkFLG>FVoYr@_zk!r3-#@Urm^`>RhIK$`7x|u=h`%wEU0SnAB>*dfo8o&6_)Q_H}ht zSsySnG!zV$GR<0IT%&q%vO4G9YWZu|@9#+I+<hy%>(C*iW&Y(y+6!(NSeLkeIi<W$ zX{D>Dr|02zesd$ESNHeVdw6)H{$KZH8k6h;?I{ilo3_+MtiN~d+S>B@_VOX0TaTMC zzGkymoyK}@l1Z<w2h;SJ6Bl=$T>R1J{L=&aoH;3~^D++y{IHXgDY|0dyDdP&s^Wv^ z;kMhe&F@$K`og{Sy2KRW`3tSW>~n9K+|jwU$>iwm+tR@Xu@m=;i-;sV`}X$sYl(Qz zHFekZ=I<)qzAa~G_V>K`QqmexK`&p*=v<SO%FDWb?$w){)0G56qXpw9ZVC0u*Sx^H zZ<2<do_kQ2jQu@3qafR*Czu2eYqe;fTwvM!XeRG}-`3YZC#>DNW~x?$_s$RDT+)u6 z>aC}bPuyTL({z&9%9pi|-p@BFco4Yf`sZh{D+?TE-uk)9D(mtx-aJqqIAU!p3wGk| z+qaXSZB9S`N-o}0M0m1odY`rsU(&Z}y5F<kBzE+kjokfB?~$#ZnAkn7Syv{3ib%<o zi<UY}|KX(+emy*5nu+P%O?h{1w~Ayg?b1s6yJ=rv^Rx95lV6A?b1u5RGKb^As$L(F zz=a%txE^MRtzQ00=wsW;TWuQ^8<%fZ^jsVJ%h<?*TRiUa_4_|Q9&gXubb0QsAE$2I zkTCCdT_W_=jLFB)&~W94{epsmx=~v;Y}hct^SbK3s^sjz$j{H?O$~3xtiN~7{@;#& z9}?$uy)yn;^YCc5qOjVH*DrHd#Mj@Rr25WOK()=K##PJvR9D5~u4znnAFqC7tQ)oU z)wYcv(~66|t#_w8Eu7^Xws1NB^NsVO_N(sWT-w?lXfQkE*K?K)9_-g`%s%<W9%(iC zI*I$-&JCu$rr#b4z7m&TSXX#ry{qS%pZ>yao<%#ExVhiE^+xm_e0SIGY5S}Y>v+x6 zuU4N4XJllYYh7MeQlj&B^1F{yT{Ja+{{L6KJaqNl(pNbLoUX;!->vwh;;6YGG~&em zO5>uRpQLr8-yQ0$|8#O=^6@{}IX8?z^E-U;rEhPQUR@Php}%UgZ0Ht|7b@|d-CHKj zJ8xSpx2w)Jrr7Pv6RwAh?0hMQ_PB_ZZgzYj{m5zFOA)^L#|?OHPdH{(Qu)MLKs<=$ z!1`|+mG`KAjNE&3t4-MIZDv!i`u29Vl|9V=*5|!A;F_y^<EsoY8$Fi3V=h6WokzZX zWBhT<#N^JFjEkmUza@vyS-&db>(av$!p^>W{OFNY*_(>b&wO|8_xiyV&lT)_;@Y(^ za~}EA!Sm)_<Q9to6<V|EZ*Qx<z#kF)``52y;j2XXKfZi<`AF>Unq$4zxmmkd&9CnI z`p*9U9yx&tPWoGK>1+{Md3AxHVEoFt>n|K%wA{76+wcAR{r}y9*B^QvC#uV8btYWM zwr-9=(G$)uy^G!Ee)!aN@qqFXcEv{i?_3h!{>(k}?2+ULsVLF&r-PRtxnv+>)#m*F zx`CF|vEv8A3w0b=Cf#USQZDB6(@<_-PjaQ3+vbC{Zx1i5dtp7>X+pLzTl3-vw<{v1 zp3=HjW3lG(F19{RcjLm++N-OtC+=yEuX`yWHf`ZX|ESD;L0wnF7hbb6H{V|W|6g8S zo@#7B?uz}BCORnWDt-O+(o#9+wi~l%<Q#M7__-(h`rr7P!e`It$Nu~GTW!<jkB`si z<o@NCt4T_Ix;y!J^Viq!&(3>mlrv-Ql6hR>#+!8?AHN+PWyizgvvdWw%BuaBOwP`+ z4BjOtAh03t?k+jos)UclA0HhxJskdYi^vO`c+Yzm^YRjFf5|xJ{{(f&Bvy;I$Evi= zQ2Oxfz*8HGd1saE*Z4Hv7nTh3{K)CK=Kb!|2g(`W)O+eYSf0u@=S<pUhF?Vr^Z1!I zmfbNe|IXp5{_Wyof4d5S)uQvlPKBS^^y}2OT`uzt5)ZM=jL%k&-<#~~dPv=0h)=d^ zQ%a|Gla<gFcKJ8i7ZPT(ESj+U)z#a-?p2Gejeh^{$>e0?^f;FbR>f)yHigEiJkp-@ zD`(G(UteFpXq;`HANSBF#q@HJ!b9!YTulwli5_p>$ozTO&VF%j-M5=Bcb6|-VX|st z`KhC-B?lPX!kpV~+}kO<bYpweuB8h~{(tj|+#BQR&Re`Q=H!Y*(8$?~3kwgo^G{#% zxKC@&mknZ{LL(o2ZWRe>bg5ao_fdgG#GF4LkIPG&W~qEEt^NJ&?w-nGUYA2FH!NLX zb|wDgp56K}9Fw+~e|?|-_<_KRA3D-1p{qAcsDIKCKV9$lhj%?Pm5;8iy&iSsfYI0R zQ=6(Z`l`04ot?!eYb7Bm`A~gbve!wTW_EtJBU-U~%KMZicC0Unj`%jEEpOYFEj@jG z>u!~WTnq}h{liPCCcC=ArRLks%$ok~`T422Z@rxxudM!3a_(5~ytA|4U%7ny!`JK2 z<!!sJ?+TvqP&+kpua--VtCC>+%QnCHcDA{<OoD?i%h^`t+}UBMqqFAJ?4T-d$G1<k zSI)Ebo@M!YQRBg5ZM@t6|9t*+!Ge&gm~4p>dApw3wzrR7De0bhbDC@Sx|P}nYcBot z>J0M-n>+DTU|rq6pP!$npP3Q3zwU3{-(PQUZPnIWcj=<w)O$ezr+<1ax^ZJp=<2-f z85_Ngns2NO*5~5>`Q^x}kefH}{QWIo|L3FPo@cVwQSWbjRIr`9n0a2<vj0<q*3A3S z<)XAt>EzXBcK#(xOXK73+yDD<_`(H&{H}TP=H2S={o%E0k<!A+!5fxb+z`0<?dNB) zl^+zQ{W_o>&eZtg*Vhm4_Z1tN-c3r_@NxC}bN6=$u9TMT0Wac#n0$%%;n)4u-}S6+ ze7|2GAJutfSLy3kZgHXb%mqqHM%UNuyuEL)Xj9m7zv}Dj_qS`7M6Oa!=@HkTwDjS6 z`#&ERw6>N91<iX`d27<g^(NOqeN&Z3+H)Ujue`NAe}B$Rqx}4Q-jx!H`?S23Cf>Mg zTy;(++;hU5y1zMQ`TOK$=D3+gO+BP#zyC<+>b&yT+vL|Letu>>U8nH-cmGQ#vm<69 zo4HyqcGsGiotMs^_rKiN`(u?;p~aui&ztxCKDV;2mMyA-OFR5t-3NtfOx9CW<@^gi zr#*Re^j+@lcL%kvZCQDA{r<RpRi-|d(|AHm<1^P>6^@_iaU|U8aJW=;&XMr0?$e?> zcD5>NDHtf2ndI$BKE|_rvikhxOP*Xl>Ui`>ioDgAlv7iROJC<5eSLY^*?IQ=cGP{( z3(;i^6g~Ui2a*D|1Re<woe-c=^+luZ?yhQPcDbvUlRszI{Q0<0)%%WqJm1-K&#tZV zZp?Z4LgL5o_j!{RENE++?bd6RnE3GTr&O=pY>%ndbrT@*Ef_y>)q*QmnvBz#K%LYj z_BM~g=G(c8>FlWb^yKq}3nh1FS2-&P?5&ts^X0|moyD=c%k33r?&A#?)7$gxjm(_M zhu3cPXZk4G2}$-VodN?RkN4aEemebh(1(mW6~}iJE)QR~=j{uLjvcBZS@GVHffEfB z6rO&0DSmqTeF@7?E_<uiy!DT-Pkw)|{rUO*RqyV2%Sy9()VPAOrN@zQsnu_C-kqI2 zaklyW`8GfA{C*$pRdD)D&glb<?$6H@Zr$)<UyY?mr}yPuHN`udrt1gKnbY*~MEcoX zEdr@2TRe+C$XZ9$|NZ)NuJzvc_xm+97QAffSnr{-sp^ro(8sB>rp`OJvsgXr{Ji$f z>AMw@Jd^AmfKqTX|F>S*YOaOZm(~1R)=AlIxV$`mO?3JD=ksITdaW+*+dFlMwWQwr zz3GN29dGwkhV#i({CVJ*lc(38rvwTMrF}|*@tK>BBozh)-P>Dz(Y^1-->=tu^Y`s+ zxNvpP&vS*3{jPtQSn_hy`qI~TJA&@lzyDMJzx?#IYxi$khuvPjN^zeOxLEQy60Wi` z%Wevz>qn3Pi2F!esPjh`B=R%^WAw`3-r6c_U1nltcFaHK`A3mgqLb&&)t$-G`=iU{ zlHR_cR%i-bGHI4c=A@Z3XRcnIotUUtH*3}`zj-#16Yc-~dcA&9<pofvynUn{8et3a zK#l99QzuVyzJJ^$s=Y*WN1x`obLXD^zj*iV-rC>awsx)0$;~Z&^X~OM$(Q#$S2nE= zN%@-fM7#9vms{K7cU?IWu5#2g_m;_?emgt6OCtIC`924~6#bhzd-m;ZxwmJV=U>y> zH_NJYRo~s(yVlBgtu;eGOzm0|*ITo6-R!vA-@K>K`q8yy$E_`y&EE}`m7Qlznm4ac zb4J{`{m;(MRxkW<B)r6}Bq-{5xE3fDA8Fsx|0wFIm7JWsr=O|OVOG=Y8A(Y=LD%B* z?(S+m8liJWDE^}4MbAv-_?0JKb*}GNpRxZ)_!6z^TYvui`S$j9{O&T}Pg`~TwLRyX zWL}Dq4ccAy_SvgxCGUGm-Y>b(aphb%S5)o!dA3(mzrNb_a%=AXl9kz)UUjbD;$7<H zF)8Tgv?f+=u`}~*qtlw7zVC2R3JpFzP4{xm>ilbKB=2epc}D*FbXuP?YD?7Aw=Y*M zUmkw#aDb6?`{7DArHNBiOf)uC33aZSx5RbTCy%$Eyf>+UcrHp4vo<f8$hI?PoysMJ zW$;<L$;(wIo_KZgm8Xi3r{lur*v)Ca?R>I5Jv|?UuNy8+X*<}=zIgN0*U8>q2RqG9 z<tGKaFI{n^M=^9>qRV7|ujKcAJuXTU=gytGbLUPa_Z6b$t2U{Jp0!@8vpW34s$V~T zoSA9NzWL!hDU*zb=wrrLxo)qyvTRl5EHBH}A~l1ci**yv+yDJ?*{xUV>e}e<o6p<r zuKQcX`{w(XmzNj2^=4gK(%IO^Soi4HOyl$|7w2p2%T~3ERavXep>1)o?byD9+SN*- z^AcO$`I(kJKGqwzx2jjd(CMJ^l`iYho0Efn&s}vT^ypz}+p3a`j1>+F9X&mB3=)}^ zt%=&|^*ML5nt!n7@_=(JZmVvrZ*6T|xDa%T*@V|d#>V^q{d&FX?XIBTM;|e~V>Nbh zae1)xn19T15ufXN^+79RwLiX8%4}VAVWP8f{LQJh6SKZ0EZiL|Tl)Ii*`r5UMY301 zf;-?%=+XI$7A;y5FDxu<xHNFFn^fLxQ?UO(sT&0Ss*B%OlbMhZU{s%zlOtLdd-Lxj z)uZv3FI@uXk6vl>YY+=xzf{WXUS)8xEe+!7*@-Rh`hrw=?=0yEMp*VNR98dez!?uF zh$UC==eG(=Xx8rM7S}rx|M&0T>>q_$S65Aq*_U;9*VeM1lTStM4VtGnY1;}e;ara< zRi)C|GiUNj8XY-&*jd_tNtSWXg}Z_4L<+s43YTkD2W9OKzPe}Cw{PEO{CsnBGny6h zwO<7P{rd6oF{iNFmDS<v>;C>qKGyT`)2E=Xb#v#;`LJ=mQL2}VOG|)8PfyR0ue(ZL z$L*;I^#1E9nin~BKGY2+d3S!CnyPIhr>~*$;&H$Iwd>dS7d~#gHrGScZ_c~Er~nu3 zcOjxSYpdRel&;g-Cmg*cBQY^?;m>W6lb1)H{i|ivIPuc=Zim+We9~rbZf;JmvAci% z{Ce-{dTniO-{0R4|N677rG-b<D&*Erfo_R~3m4vc?XOjRde!HWi6t}Ed!4#`S=e~G zDbJiAUGMllPEEVFQY-#yLqo&4xz^TJR#~mN*PdjCrSIqROIY&duatzugY~M~YXm;8 zGT7*y`u+9e$CsCQPCnSop8Sw$r=Ed9!Gi;hGakKu9WDK1)hvH;&&js+rE0e(1STdb zrmc(KzV4QP?=5!IpYKABYrf3-o#1;<GgY!KCMM>1pKSiUJu7v=o|^kt%L42vkLLZ; zdi(;mx^LX{`|aiB{QtTNRDB(f9GX)1_gCgh`@lcbLjQx)$jzJn#rGau*&iGJ(<}Pd z_H3hg&8MrLJ$v@;{r&rA&#rwkGiwKmKl)@Wh3a)Jd%K?mu8H5j&+B`3MutXk=aJ{1 z4Ue8U;o<$av&r0B(_h>(I;8dE>5m^jURpot)DwUEzag*vT+|;MXS}()vM>13v>!ZE ztu(jZUwJAnv_{l#hJoX=aMpO<D3SRKt(LDm61-yL51!xO-ye_nF8i~)_P5!x9(nt? zrN7@^SvmR6uhr+~T4%4c4@|j!s%n=<)Dkb>Esgw##p7!fIk~<+IXPJ`c9(>-^mHBW zjMJSOljgtc+ZEs<{XS%=pO^5vkfm~K@7MiaYqeE7Ys=YLHfLYW*%b6+)u!LNT3S*D z2@coS#s2;C=SR)I%gg;iJ6RVvHa9ddOnrC#+&Mn~fJ^_md>I~QU0C2aBj{|!v#c-b zU2mc~!M<JDY4+~^{{M&h?PtuMEiENwmV2w@)s>YQGj3HVbv;?WdvO+r=IN6ekLRws z;+c79?y4(`L(g8*HocYRJ1?!&FLI*0hv@IKXV1p&tEt>w_Vz<y&b>W9zu&L_|LW>$ zDT{b>^X=#Dey{PItoG~IuOFSS!`H=JbgN(VW8KsrB@;bVggRZ6$e@-;O;cmxk+iG% zablu!_Tjq8lO`?mnYrlU_mFq@KW_N=;AGs14<|pI{NSk)wDgQuuk|Ep(E#>u(YKCo z%f9~Z#l^+5>ixa{|NZdraK(ownIMHArIWVph>X3vzGvT$N8OFg>{&-OPyel+Z&&+4 z<OJL}p`DSug`4;7+gHJJ?b@|luhYuk-fHdam$Oxxtaw-*1SfhdE&ciFY2MvkGiS`; zk+X>~I$q^Dds1er{#^}yU&rpli+UF>T=*s2+<g1P!|ji!ojrTjJolE0Shx3o??pR{ zpHJIbt1<6q?V%RVuidTMKem1;GuT-F|KG7=$0E#lxVg3OCu?kq&-5xNFvz=n=1k6) z7Z(c)3+w9YYJYz_I$6pn<;3gj>r?xRA06qO^!SKU+{wpNE?!#dU3l8)GH-fX+PV4m z|Nnl!e?0rfrqt8#_x(P1`Eu~DY%i}<|Nnir|8w=k36Ay8`R)G{{Qp<`a{beoteth6 z{y6LYpE!Zzdtc}2X}ZeXN+3@jR-fpx^mH&A8(T9Qua}31hnLr{pU>xe-<}flKiKN< zp32WgMn)>ECYif7Z#JHOI(B=W?7H{2xBE}rG}Wid#l_`t8?UPSj2Sb2oK&B0l68ec zIQ7$GJuWUT9bMhR+CM)&hH6}%S{gS=_x;`7;@2-;UX*-reOOr7kF6={p(hK!y}N5| zW@ct-DLFT8vYPLs$B&=NG0$WDCwqQH%A*?_lT}lr@6=^wz3P!PUUIzIZd>i|Z*OmH zbv}RQ`RBs;<YPS(cWQRUzxu=<I?<h}HDAW(h_IqE+*d}k>}su~PQSgqT{Zq<*XlQE z&Q4CJZh6PW$)&xxx;k9+&fPOJjlJa**FCr%xjF6R-Rh_)sdbC_0~gIcnxwNXJw1K; zpIK9<w!ZF_HlJqcr{m|f&#vMF!+yQEJrVB=O|q}?)a&Z#=*;X$E%4b>^>x(~?W(Ak zAOHOO{eH*0Cr?z)%1BCTe%BG%dF846Dy4pwuEP%#l0H8>d$I$To+rgrpFeq0Gt)Y> zc(c>O4K>fxva+IB%dc-rJw3_2L;J_p(A8l^KQ|V%zgC*K;*cKu)Y8q9bf<p}eP(e{ z+IwG8pveAjFD^R2GX(YJ*H>&&6;^#37V`h!-;FkX>v>-KKYR9U#=MCW7oM<P`ypt0 z{faIdA&otEXLPJ*Gg30D0YRZo6=h~-X36UHn`TeFSril`Bxbg8#^UA6)wdV7HofzE z#-ZAG<-&!4kB3(;n;rUL^^*UcJ!j6Gc_P=Wve_q{vm{2{f1Zqa-kc}be|>%J?LBMK zludCdQ};qV-15ck!SAM?4xafS=%O?=zUS%3id4y!N7O|`MKxa-xc5jjcAA-){SZGo zw|Hvz#;o$q6&^pPo_?xTbaS>@Zq%-s4y&F#c@kgulht@j-rcB4P1;XIlC`T>p0*Eh zmE+9(C}uoaaN@(sAn2hYd2-9n-#>p&-L|rgSK2GrMnl8Hv0ZZ|=ky98yZP}}{&#nk zs&0Lk@m|&1Z_0h%$Jf?I7wt~ec$X%6CqMP>n>RN%f6P9)(AIyx-P?P6ci%~tFv$=| z^YihUax=E7YFCP_y}kVYq|TsEWwWiz*ZG+9>=BIJT^9NwDEw7`Xr)TP$B!Rpbf`PI zxwQF%pwh$?6-nbyC)MXKIJtbulA7;#%a`W9>ek<PV9MU=?@1>?yAru}-Te3Wck-h~ zX7&&9lP=mCRkHER^=QV$#XUbiU*GbByIOihg@u*#NkOkR!H3r`9qte*-^}%H`=&fI zD=R7P<?^*(Chp(A-$9|`=cm;3^K8%0wO0QwF-<2jsA`7UvOm9Gum54Ct)X#aZ?$=y zEGUwex3sY6oZOau{oL)_(z2Nz9vr{6PgeKWs#vLA3P~IdsDAMB7W#bT#*H2M_xDY5 zyk?XpDkWu=aDd^=h4u0K8yXrmF+D!<hdcJ*g@w)=TfTzs`@L~v%DDzVHc)kZW4XWl z9oLs@J&U~#J-DJRX607GZN%p?EB@X6)Flt<PT${jM|R=o|IcRUOPOZ1q~G0L{(f`% z`Dvv*FLYJ&*G=k-C_18~V&(9q=-IPppP!#Uf9lkve^S!Yzc2gSn`U3*>EGktFIQGp z#ufKUOD3zepT+Bw(uB(33DB&yM9V`(=;32s$;*Ltel>rdotb%gW3qcqkF-ffLs-Bi zJ&z?DlaFVW%3AL${wM<ONu>Nx34%4qJ$H$Oy~tEme7RwYiU5a_vhqfeHqF&xYZsmN zn51E6x6gOB*|u%lZdH7Uh&ZNH91|lGX&Y(V$ur+&)v{fsub(}7#MI^csznl|30)%T z8KkPB;xo@CQo6t9(h^T2!xbk%T^NwXS6fnpR*J8Evt;HZkG!|Hw=X~Kp)~R8WDgY~ z&pgeoo911+cTetrkl%iHp-z`Df2D~YPclW%%L@u#T;$5l&CR{5L`5jl7F7GLdY{S6 z#AH?e?#+uA8k5gGEcoN8GHFr^n=44y)yY|$@kfsyEq!z2<Fm7~m)6fR%Z-v1>Rh6t z8@nsy^V&F}xJfQbny#0Z`>QLgoLd9xrtYt=f9W%KlD*e;_dc1<cy<4Ie`aT0Sr@ze zeu&!JyB4vMcdaW-luT4(F4nA`?o;j*=HKQS?xq=LpLIopX;RdQaHhtDLoJ-=&Yd%= zpYm{Z`uTY)Unng1o4ab4_JY0A%e5C*v%i1;e!XH%=)$YsKf2b;<C(m!2Q&t^>f48_ z7Zy6V^ULc+y65X}x10Q<YmR8FWbC8WUXivRMJ3f@B_C-AS=wz|vvVCN<DA>JX3mlD zCu?4u%21Biy!fhf{RxAYrv&0BhUh-hE($A2-O{vvipC>tBcEMHN5WNdpKDJ&m%kM1 z2LBq@e)-s$w=%yT30K+rL9{c(8#Ih_)o-;rXaEB=aCIbHMd+hwCuF<<J|-dbQ4}&t zptMiP-&;vAexip8Xg~!#3<Mda0*xm;(uRyyfDD}o62NEFsx>vWwbON@zkw>${Cjt9 z+_-V##EQtxY0YfBQM*bs|A9<-DHor)<0@oKEoyB`OH1M7V^=l9XE1ICxnbAC%=#Y> z+0SkVjqY^*@T#6VW5$hbxwrS#{(g6B>*>>{we9TY9e&8s>NL@#Mf-=SaQXXtch|@7 zH_N@1koHJh$V*3T`BKpzztwl{Xpysgv_19o-_+AKb-!L-I?|c$-fLx8@Ze&<oz;zv zi%VCB?T+4dM>RHT`@Op>FUS4iH13h9OuDpW^N;CAyYHIk?AV@vUzxrAK=t=U&d!%N zZ{jNaT{1EBRp#rftC#<Tj^$>qSM#4&^W=n}YtgM6Hxkkwt&Zvl($xGpZ{EcdfgFLt zYB$Q??z(@a#Cxulv`Y8Bf5)DkEiZdtm+<4m<IBq|&&(=)`ThRgX?kBH_WnAz%y-^w z^ZV2FP6Yn{UcX&n#j~@!jf$TgT^TIv)??APqxDW|&Ys9!jxjzyX5}vuY)e+$-F`nV zV$+e@=YILszZsUS|L}o_uif8#>92WZH#Q{B$_FJ0p^u^~w`|bKNl#DD%j?^|_0SoN z@urF+;jfrhU0=U>&YY(3wYzNV_SANZ?N&LHoUmb|_w?G}WpkX%Hf{Q}x5Dtqd40i) z-YP=csmpin+_PZ=kN)}@+~Q5&-d1lZdir*LeVL^7w~&50b}6$vag+AVGP!wi_4S9I zlh5fz6qMdJ(`RpYsQ<rYkB!`2>!Y@7yMArgz78D)p45|fXUE0W;p+vJ-8`&{LT1!o zTH=|OmbPx)y4Kd#ADLNMTESUr`+`=oFoEWyr%mJE|LfHrkrijo>Z<$OZO^-F>#}mf zge{Ad7E1LS*zbRFb@i9s<%`eF;k>c$@4-W@*FW5-`fk^=M)m2sYirB<rAm`NCY4wJ zZg}v(#71-1X48}5UeNT`rLs8h?yj9Xc0A}(ns@EwNzTt}A~rgK2BaRndE-;FH0bE@ z=W@2czMR&Vl{UH2R+E&qi}h#9*H_lz>)Vztd6IoPG9^{iu5M1lomLHt<hIM~@^2<T z5Sw?dfzkc{uh(tu?kroit}(=G-i3Pn?ldLWi$Px%nO@dw|M|To^RhvIe}6x8N_*}P zua`pIN9*c3wZrfI`|;R$(!F5k_FK8Pp1gc4y!@V&ma3NV<`3`gYG`ZUkKC*`b9VHj zOeyJnIpb$jT3gMPR4b!ge|QN)rv)x$l?Az6y;JwI5;Q7TX=G%yMDyj#mou7P9tl4+ z$wQ^?he6)YPttF1M=R!=<YpOGZ|h#1tgxu#+~<^nf>~R)zF*>*e)i0^7cX-q?C<?M z)T$uoA28c?ZCC_!u(2jo);~KZr>AmBYrLnUM6i#KPsjRI>py(xssF$C@;ceWtETCe z>qZoO{r2{H)OGXD<IHhetv5V>_Nh<yv%Jv}G5w>}?;~|$UkOUjcCJ~vG0eXv^z>4Z z)#`%rD<`gB@|uy6adZ0lZy!HCEU-9w-t7GO^ZCbmB(HWp@u^v=Co1;Ie{Pjw(G$*; zPPg7||Nrg2{r9(_)55T_pW8Mv1_y6@&=n*iHS6Dbdvn2!JiO*-=e-pYniO{1X6=^R zfXQp;{qWKi>OT7NrA+<*CEnAWK<PQ}?%r1J^=D^1{PJ?S`tR@CUtWC7Aa-q*>Fvnv z@4}2X>t15rpQQA!Mbbbz?b!YY@*m&t5IkA%_{tTgqt3U%vD>l!$_mG3HdS@?(<;lB zEcx>GcKFhHVIRLa*4QkYHeu~r-Md>ab@iT&-1*7u5c8y~GYprXn^)VpX6e<`h%Xy| z2s~`k_R=~3?78^co1Z`Y{jU4<i&@RjrH?nKd+z$>v0$mkTDIO5D)E_{z;#dDRo0Em z{e{oZ;RKZ<;qi0-e>mLi;dRMy=dok6FFI6xx3ejGv-17^@?%N2Hl@n_|5u%U+f0AU z+`ZNEp5lMHI)4bK9mtvSbMtw>$MPTFt1iAhb4Jd)OR4vdbfz2Let5X9{GE%c+Ow%` zdRHTB-v(x`R^J!2c*BzjtFU4xC#RD_OSNotzvhRBt-O3%``PS#Jqd}NoErtdFD;c5 z6r5>Q5Vz{v7Mpno&b^DgzV7$LP0!BnpEdE|%FwUjvvR(M)Gy`YY+WR-KdE2#^L+F7 zUi0nTFT{GBV0Yx`%(%EHd)hSqxpSMfqwj|7%bw)-y+Nfd#kBI1<rWL)!@iSZ&GYso zzX;fUzixL@>eJWn<OD^h9(~x+v3|urujyCTMsGjZ%zl4ovAVjtyNb}m=WlOs-&oQ8 zQtRs$k@*XMy*qvN>s9snGS2>2_x^5dW}pA$x%kUVoYx$@8yys!&iBWFCRNSM{HF?; zglhlr0;iHrpVo@z2PUbfcDnU$^Je3#|MPL-&f?g9nUB?9H0;d7d07rW=RSPM=t6n! z?PsRh*Ou<9?e|b`GcdfFlUL^-AD@t+@#kUtiq+wVo0>0kado{26N=AVsTaR5Cm})M z@^R5%gV>kz%AoVAbyMA>o)qnz<k37M$jJU<sAWoP9jEQ34#DH=W4W(~8myQ(Z=I&* z&;5UjB=yy%Epv9hoXreM5W?}H!I_z?%l-DwFg(1nFj=ha`k9>5H#ROe%imZ3zpf{3 z6W6ZwFJ9!7f9J@~zR$`HI?!>Z-&{Tk$=pe1`j0vl#QbI?{QvzvFM8V@`(m{R2b*u~ z*de3)HqxsmboG<hudQo;eMvhzYhm+I|Csef=GQ;9D<@8roV)gmw$%;O>}w@2E*v~@ zg2TR0Hn?N`sq1HFPyGAq=7RH*w!fb2t-e^|I7PMQcL``4n_I+|>w9M|^F9tbkwSgn zs#!`(MiXt>c&(N#KRzSn!GXoEuitm(yLf4a$_c-ZA9u#Z8Gif5XkBI#vE{|BEtz~T ze$6u5I-yA1DB}FQ_I<z4Wj=O0&n@2c=kMe#yDn>f6kVz2S`!*{ex7Qtba_<JS*Mhx zT!j{Yetus6NYu@L-n@0ewwpq%{x2wUtqIjsRec&6`BN$EVR7{Od)L<Qx2u12q*!-W z$3m`C=k>Yx{C1b=*8Kl>oLekL*78$}$gT;xyGw4G*Y0{e%d~ub9PjCq4~60dL2FG< z1;)gjTN63`LUqaOZTF9=hJ4Qo*Akgm=)<?e{m{JQ2JfYMY?$x%JN#z8aEMFl4b$Sc z7tU~1$v1mGfB60NhL?<YdYZJ(_cn+B*!x}Q%voJq+fw$V&h;feHTwkQuW$;#`TEsd zN;3D5(7~Ud9k*6GtvGY$kbD25+}yv@^}haiv-$EQ&d`sKzP!)hT=SDRWo?v1^o$=~ z#&P!xyT$e2U0mEgbEah7+k1O|?<{`avEIaysqw_6Pl{sR(cA8%CV$=%<{Q`JBRY}O zef~jyy$h$LUge~AuVj6^;(ctwPu(Bag|}5SKUKE)F=eezLA$2-g7vz4wzofZc_CFO zb*;LwTqZ=!Ls+QDz27b~VZ+A@3)Od>3YW_MdL;bm>#wiZfF`rEwnks#=*UylUOhq2 zTl2jlAOCravNQ7D%W`kOn|OqIj`j7g@9wU+bve8Hhu7PxpPy1EtND7B&H3>8^Y0Ib z`ArYryjHZY>W{@j|M|*QRnq_deBKr1_G`uR1ihB%zzr8<Z@o*Ov1C6ln_T<<-Q3}a z9+rw}Jd&EYtm$&Xe)*c0Jia<N-KuUFu&uuG!OP|5(eAq!b@gK^de2|~r74vP$=|DV z5<YzCnP>D=#)`$I)wO%w-inDn(_IgGi_6T}mUi~8-`sDDTxZXYUKdlj+sx;YL(S5% z+K)%YI}GpLyT{7PdZ}-ve%ziHcXykAoVu&U<m++y>lY_}dt3eF<m8rH1*a@y3MyIc z<13wA-tr%KB>g~)@9G-|MWMrYC4QWmSr~Qr?uI97E@`2U-kX{E^YWVaN)~(FPS2V0 zP}_G~)gx_5&Q_)L=Lw$ttLNGB-@Ntf`m?eFSxwW{=iBVM*2cU2_3QjOR#y)mR(5*6 zc#}Z<%D}I$u6lcVPF&+{t2_U^xtW>TzM$@RcRI6fm-+9livIqla>Z@lrX)j_r5l&+ zRa8HiAbofhe{Mpr`VaNyOS@+zW|m&H&Dh1xv;DArxx>f8SM%mw^qn15@@`M~YUb^y zK1@}Mw*7eZ_N7LTHxC4E?ETGnvf|<E>xZ)w?|X-8*zf1)_S;)6e~i0(S?!w{`~A$M zgyJ)q;*TCbe!3!RkG}6L6UBY25=BKh|NnfxY@Xcg2Wo0+(ck?9G7WW@^;!%%W)(g3 z<xcn;`{AqWhRS2J{)en}vdgJEU{$!)p5eN(=-=zFuSdr2erImJorlZos^q>)5v$er zO`0%ubMXgvd07{R85SSkEO!6+WmQ#i>X9`I?Jeh*p5yUJ_EX;4z?-&`sX}RuU5$i! za@*u3Nf++gIvxKo^@rEnSq6zt_xIJVkJ~$I?%dw*O{bsU+h6~GalhTKXS4G=)@KDR zT=??uubUE*xwm#+j*ecnrn@C4;{M@^9b$~nn;vYie^bG+`u)L6vvXwb`>*4fV`tCK z+~<6}c}=C?C3o5BVb?yiGOu<&WPk0?hIuD+e!S7K?s>0g=)SgN(&W$8U#;#eImstK z-$M2QIJQ^MHdp@rCGleO@m}j*hJft#%)6!^?@ajKbk(N5TJYCR$K=!7?Of6>-ah3f z%x`=2mqdc(DMN`xn?zgJsrw7L_1P%ye4rn{Odx*Zl%)p_9BAW}KGnjWb8Abciwn!g z(B79nKBlLoMei!T{r>&>&da=uXM1Tkuoou$mif1jH(1|6J~|^$_4T7K+c(||e#^fh z%`Rn?;BrZq+NWofwASq5-d*$X2lusd+0(OU6}Y7{MTW4e*ybO-mvHlDOv#~&+3RAt zua|+=HLpKgBPu%8w04*Bz8CHM_I3a3e029Py^xV<inKrJ@7M6L&-}raGW(h={{6Ad zxpp}YhGI|GwQR1N8nJ1&EbsKg4{`)nGu(f`x;f^i{Oos?k0;)Go4%tpPu*&_Q@g^x z8p|!&*Z=<dC4GI}-qp;`Q61||Tpm7rXq<j7=jNuR3l}D?4qKacex9uGV!>sx(m%S6 z3!j<$x=T*f-Zbl5myBMrq7J8@9l!3{`(i@YaxEYE4DQeU+v4ioe_db#*T<b}F2%jp zx*p6W!6KELuD+-Pv~qo!rG!L|O}(AR>YrYd*X}F(B-(!X`1M_#C!d++ezUM*ySAz> ztYX~@=WP{-A51=Tc)|RaH5_$&c&g`b_@$jU_0@J`i=Kni?k8=Ho0Q9Eb?}(T@~P1~ zw6%ot?!4$^vr9N|F?{`&x>Y)lw1aY=t$y<4kD_zV#g%gQ>ja;l5Z(~<@YL=L|LvDw z$uRG+KCa{&%h5P}<$~(X{t1>}>#yIOsidd%$xoQW#W+3A#OPMZW49$@bJdQDUrpJ$ zvvq5BdTP#|%CE1iw`N&AUSRSp_m+IcW&Y3F>0#HWta)?e^UW9w`9oGUQhDjzViK`& zj+U_oa`t|peepAIPHSeLpJDn!D1Ks=Zv4-ms{8)$OMQK9_tkrqrdu1XuJbQw*=0R* zadzTSuKqH81ru45&B`+*j<g=|Y&=rH@vXgm-h+P(dA7~&i2_qN3U^NEmDCEYIkw4o z-jAB{)<@YNe;)Fjd~VV2y``^BKZ<?~EuAv&+|Pg2&#g+$YX1F{Tr0OAO7m$!;(Ynn z$qjDTk4zFR$aA~uVt=NDPp0COlz^(?N13M6U-CV6a*J(Px#_~C&!4uKepC23^_W-M zq_9WYPfwlHym6)E^a97@Lc*V~l=AF&{<qHH7td?+R_=9gzO+8qT(EKO>sEyd-o$qW znff{Rc<Mc;>3--p&DqrQb@s#j%tv)Mo-yhL3bfS+7Cb&NneBGOnhIBe?$e?^GZONX zHr>2y>!dx;ob{)d@S1(!K1}WQ&gd4~eXsibqc1PTw=Q%P&^`Uwbau_bD@|9GYoDIk z<tMsw@#4#eE5hcuoO+ecZXP#1vat4RR>a}9+w43Rv!;bD=oO#y!z=d9l8%n`Au8F~ z@j8-;JExuwJv=4i#nW{yhh5x{g}iur%=*B_=L;VGQ|5dW`|yt65AmCs@;Pp0Ty4)k z3QXp{sZ{ZJL7^&t(PYJkqAYRD&-ZTNG>$%yC2ldBk?Uw^0as$j*W0G8Qe2fb2d}K; zJ9cdL)<p{g9%XJl^eUS<{^`??Y3Iuv)eTZl?Od|N=0fH|Q(NCA(eeW|?`KPti}5RZ zGOI24)|L90_v3_RmQ!zP{QOf{bb8wEU1fLWW!Kg+7I&=gSf3>tpQu@ScUSd`@c%!b zr=4X_beO;G<-yr2f|>g_Pqdh2Ul?hY62nxjvXptlU11x6`9~Dorf4;^lzixJ)?WYM zMDYy)hT8?IQgbFf@Ka;ySirG4F-?ERPX28<jrDgP1~ER_&+U;j@nR=KS>ZREuopMF zx+0tt|Ngptfm1kMFkZ7pf6}g!o8jy4T@zNH_qt$f=)?(If9ZZ|F#A2jcklN0wf3HC z9%)GEiR^3Jz+UiL%3^N&<Kv0<?QV3j>Ul@(7dMk{d26=ew~5R?zH|N$7@z5^p4`xL z_3^=km8)7svzKk*pHiPQapKImR&Pzsw_n+Hf%i!Gt4G>PpHx2o`5g6pBf0f^(q3O) z?*F(pA9-y>$?Ww4EB^iYY<1{rpDce?#r5?@3GYJ9?(KZ%7iRz2#FJZ3oSiGL>2+8{ zBCGWL!^$aIB{L!gM0l=kPn>1lbL=Sdv5G_d{fRU6|2*Whzt^Cz@^X8^CGH!OnD|@P zM6=&#f44~c7;E?k?G2sz2d+%f-Jztclkqw~*yLA+qhsLze`af=-(UOi@=VATyA@ok zuP5$vnssaY`-u}TF01>SbLg<~mhE<2y;}XpkG)WR;#i@!$D>kM>tPDRY^{=6!Zj(( zX=3?GDmwcZ%NH%=V&uQ@<gmgEtr!a)u}NkBV>djLcw@<ad|kui*d5;l-q|+Xp7)?m z`i{+kqmq8Ijj^{AT2+k2))*LyEjsdH*~$GntNovE2=lhNr9U?^{l_IQzjN;|KlgZi z%=*tCq0aRlrt3W?tIeD_bLXyIVq#*Cmakm-^2y1`r%&xkJ1e#4{R~AVB_{=e2kPsR zxt6`wisximG{0`wlI7bUo)FwW>(2YdEYD27Y;$_OcTJSt?A5H-xh!9?+Bn8%F|OYG zAWZPXjtOFXWgY=1{K_BB4lhuVomZsbdCNlM?_vh7B1I)8Kf4CY89&u}>KSK$R@}z$ z>F&czVn5iscNOkY`LeM?Xvc#t9zhP*oR+}DcLf&R`0-}Sls|m3Yj&63?$^F`E__zP z*IlQ=J098ps}SrC_nx-na|Khc?YTcn71MauC9cu7ICSaE=^U1i3xqFxHCX-J@Md6I zi+|>cmFLeNl$T5RI-~U2nyB1Rvy?l{udi(oG<+!#5ySkP;e&V61(zM7oXeRL&E=$| ze#HKGC0FyD)xPp@{=N+-<gd9L=v4XO)3P9-qVt>HO{Thg4W~8t^c1a;D>a;QRR8Y- zffKUn6DA*)wYjm)wL3QIN`ObrQt6_iqC>xTBpvPAK9xZ`ETL=j=FNBh^h%i?LRlB% zxlgF`2&i%~xbfnFKt!@NuTSzr+l!AECfj_IF}bmLzp~wj*atdQuHhEp43!=M>mT0X z{qac5hpT0-<OiRaGa*T0;_5Tl^<-|$WZ(b%pb}rs(?gv~9}bjwc5Y=zQhwN@Uh|$Y zS>Pl~zzjZ3vkleU`MsShSIGExr+%L2K680!!IJ<Nm$cPkyFt5QH#+x*90V;LoBL$- zjvaICYWuFN-hTC>VZdTOo}bS{+2&N8e8lEoP$R76xJe>6{op&dIc@oRo4nrd&)Y1a zRy}`19qWwyiV}Kzn^p@J=(oA9<nl`Xc<J+M*=Qv;rMCy!&ep5{>5dTPPdr&*FR^CN zgLKcUUu0*zWB&XnvD6?U*-(oo$N6D`K*Zh_S^tEcThgTO9yN}beM0N1lg)vnLf7&i ztTizcos#@Dz-F`ac4eJA@eO<UW@l!y&b4~`_ru}ln^A#2s{1Y_gsxheaBEBEjQhur zyU%*`_HD1`3_bJu)nRL&RNcC^Hu|+(eCN?etlaBfy}lk3aOw(^*^|h6Y2_Af#Raa$ z)1NuNE4;B=HjIsN_sg9EefzG+9$UaI>fmS?CR+5+$E;=+AMd4wc6yQ*^rVla9PZ$G zG3P+`tOM2j!p095Gu_Z(G27wK;p!2Yx5v}Ga`UB!obp|I2Rbv&{5m3vZnH0)x9y+a zwH2#0&ay2t%h^%;=*Z?-ma5yeZn1}^eBE_CykG9<_MDxoW35*=F!a7S5Uj#-UgDal zaO0|z^~UEEynOA>OC6s$cf#~ZpR=oE3XN3ev@Z4t+m`TEMsB(D0q+evI3Ej6dv|z^ z!UmtF-7y?bo6Y%Uc5LWo_WtznIMa`%4A0U({yX((?ZZR!ly-!2C}w`p5c2zd;D1cz z<2x0T=O5g~vg0quyR#b#jZK~^r@q~$x!KfyZ3C}X&X(wZTlm(;Ej7>Fl>FvKu&Zm7 zz=OFzyoB%lyLRo`-m0%grlxC){I7$i3jX!<Y`5it9QSlu>*uVQGks?osVXTsX^6PF zxjm}7yQ@?`ZqJJ9nyp1o-&&QL-MD%6NaP2W9JT{&yCYn;UrpAyw8~TN!ohc~XRmEA z6nx|oAj0Nuo6uu^=4|7IBp<Hx?NcQ$h<(&#Usn8(MP9D!!CU3<J3F0vPCL#HuiT)) ze8w={tmatjWcQqw8F@*k;&V3tR?T_N{M{-h=6rNvclqi$9+AiAZT{YuJ!8@F_YVaV z6E=K2Z@)g<4m85^S|UDnhd@fwrpgxqyF*IPbGM#I`OdV=dSer_-HjJY$E-J4rsnNQ zV_bP<h0}u_P0oeE5Bd@+Ci28}xOIene_(w?g-?a^KtFSK(E@+58J^Q}49>SYRvK9H z@7u8LW@gr@qeoAr-K^hVcA|Yf->o0BW_9`auxjU=dvML>;c=H8-zR)8;LkrU_TxBr zp6Bn>lN!_67oXekFZp}&(?73XO6I0);p{$hBzy_i*1EsHUiGUOnVB8?!*uYrnnuiV z5n<uUoBjz22^p2V2za@#jYm>QN=j?8JNu8U-{06d!mGd8tZA&h+nqS|cH8a9_Dei{ z(_&Y6aNK2F-FI+a%!!AN)AU~-G}IG1*Wu70FqOSnH8hlUgBwTDqN-073YT{}@wD0$ zoN8PzRN?FETlxR5O37p2Djx4Hh4+kioTk??>rHQsNHXmHdFRk7p@Z6d^4|{M-kX14 znfE!U*A@FnJ3Bkxb}z5}zly+K*>#(^BD>|7np5glFI*mBa(B7sETLz5e2X@EY!&|Z zwY{Bn!Vi{zZemqD-oXdMIWk)}7)sk|xGmepx?ur_9+zTBOp?Nf-EI2MJ}7k`VEsS! z-0YOBs2}mWG<wA!vj1<7KKAzcp=|$x`#km54Z4fw);xK<S(1Nt#3qT;OG{r|5H=}3 z%YVkHW@*{hyt`FzZ*8rt)M4vBvisA|8gK8@$;bOvp1b_(#}AXtODP{79CUPa+_C$> zfdh@q>`7hg*RR+6ICbt_W0S+Buive#a<ANDK6ww1^-(LQjJZk*DcXM?bCkIr&~6FQ z$-LL7zgbbDUW@5G&x<LHxjPGDcv8hSdw-r9^3&$OP>rhJGuC@;n)eL0a}>>Q;#ayR ztWj){?!`Ep`B(LHuQ{hbJvIOG)jTUIqg)cy-@DGcZ<1Tm&)@l`E=i4#I_K-{O-hdL zDc`V;>G8RZH<V|IJ>#31rM<?2^LMd=HQ$}QLq~Rh@Rj<}rLbAREXA=~C*xG((wYxK z(*-ql=p5GfoBnO1j?Z)7r-v_xd~m$~h%x!_0W+qivctFjZZMS;dXi^3`?Q;5nVm|y zkHEb<hRJ?gv(u-}UVU-l-Olw_^hzeRw&pKVc=^}9`a0viBQv+~PRkYaP@k)^Wb(b! zs!yCaCU`js>8Xfc(%(7Z)A9?P0v!jBH59UU->Wu0J2feJc2d{DlIB9@@{>gq?XG^G zfA!X<ELF+rqSK0Jx%bcin)Nkz?#=RNvn!W7vu~<?;1!$oZpY)kW&D@!%xqGhSJAXj z)i^uW`Pj5;Heas<fBVrT*I&+RRQ~QxSz%&uP*H8ozhCcmpIx_Xhv&J+Me0`mu2&ep zFOAE0DT?@~Vpb;lY<9wxMN@bl=+&%ooG7_0ie>7<RbG3N4=oiAms%Lp5hn4Z$adyU z0oM*e*3c84hpIDwte3m`@rH-kKc-J}d9CdyGq3wSD`r}*$*j2g+LK?evu~}OE1208 zn(fiq^5fLpt@DnDzYTf4_I-TQO_p^`%;oX__QtPymiD*8==}2Mg_TU=ch_&&+9qkX zVe6B-Ifr+>`nBO|Aj``D6^F3;83DJFj;@c-?+bdf{)n+xOklJ8*Bvu@TMJ+0a!#B( zyL$pdk4@iUK6kt2PtpSKM?YS`Wu)$YbE)?M^ZQ43+-}`^y^4Qdma}4c(cfQR|A5-c zFW*gg*xS>i!hPq9<E+^)wI-i*nWrCF5%u`-<Imqa;-5ZSmA51DmG*j_3$J5mFr^w4 z&Yf=U^DL|8oYw89kHr_Qm~`^1UD08m*2V*&M(pd@1a}xYhIW2GU69KA=WNC+(-IHK ztiP*fy<O?hUvww+fTrmt;g9F!{+w7auYE&-Pmx)0f=S`lmi0QBZc8g&Tc54l?KHna zY1g)EvA+_#ABDeL^YyK5o$G^F$K|(gJ8AOqVbZ#TlXWJ1-u7?z*+RiN)*e%uf-8gm zZ0wQ|?NfjBcJ7aG&2N&0dxZG43S)JT&6x8wM!`1Zxl*<AC3U55#VY^APacl=l(J2I zPV~yvMHvET6h0dTx6TgT;oH7e^u(RM@8t;zszqiAH&uA7I~VhP-}aJ+J@~L};j1$< zovln26%W>?bJ~7fZ8qI^wprw4J-feOg0r)Zc<b-I^2Kph^vc@rcgwB6q`cqxeBOS> zeXCYpytsR7_4k13Woxz8JW7~a&Y-q@+j1_)g&L8){W1A-cY3G9zdNG9y?Sa;YyGsx zWwJuD%^JElZ+y1c-MIA6(QEY`tams5V9a@Od|U1LGXG;Ik6s8{adkoei*~87bw@sn z?zrCZ#%qqxfoMsIg)Wr}zl%AeALs~X-;O+YEYI$8Pw?q8I<Kx|URpkXU9oUep5VTs z^tJide{|)2U%&s@#q98f76q2yXNR8J`g!s4E!8UG8&;Jh|7(a!`;z&<(;zpM`P&0^ z+f`q0c>ZwjP4BgM{~%qB*?QZ&wKeP$uWwL@|E2KCN~fODd)|>f)sa8m>im#msot15 z_iFdA&0h>c<~*`hT6o@d##$-nsV|m1{Il|s$~Rw`-#er#vo~gNxlKP{_|{1A>gr{O z_gOW*`|7QKw))x3n|a=c-X9FlQx(^bdvkNM`p(Jz_J6;03aiih8m)bKLD=f2GubkG z3!25_YbLTipZ@&pZ1?YT&mU2!pLXU=@p)VK?2Ov#<KauPzl6QLQ@P1Idt>?Y;>zpW zTZ_5hhV&SmOTM_Ns^+Qo^`nMN;o@f!w7zH_mt~XL_+M1~^LOJ@wOhIz?_Y9%w|L@j zqoW(Hdi)Fhc-be)KRe^^gXhz#D`&nmuGsLPeVS)WhU-)z|Ii1D!d|B*2zH07Ya9J} zqGmP8uxs-<n`igDKfZYLY@(`OeBG3Ln~l@ol{?owJr{L<-N&mhF2-yuNO`jF^tR)d zpT?Y7)yx{HYr)i9y*uj3p*6{?S)<OEZIb7RG1Litv`XuX`tg(J;&qS7)gOHzSTxh^ z-C?%<g;O>&6m3?zr4#h_p!~{IBjwD!{oDNvKSZy2wRA?6pGm0)`vOM+$2A;B-K1L1 zoO|DuAzCCdL#~sd-SN$)D7}k!6+=&-oBRA_S^kZJOU>(T9t9~fTbI4L@$T;K$qSe5 z-{O<qB0V8iH97ll`R8Y6Ykz&&`R!J=b=ez_`plU%Sr=!#6^#Gr_&D`+->w4jcFR}$ z!>28%H7i}u&z1N#g@-?2%A~KKCrkhH7hH3Qb5mWYL{Qu7uQ%9t|FjFMnRY=Wf9BsB zOX=*h*}A&99>rfj8%G}y{l7jkHbl#-X>BU&(;d;Rb!jh*Zu;E+^`_kD_tG<kmqNVc z#APDtS5-c@NI4<4v*yyr$GP!E50w6ug=f_MJ{o>`+0u#c*x8rI&$~PESH1k{r|ZhO z-M<|C=6Ebg^NzGt+{EmIW;r{O7@NJCPqI{G863%Z8GCiXSD)S`@&b<zH?5!c`_(Jc zU5*ofN^A|?n!E3-@v8K_4inBKp7mDk-V`P-bi^y^{*;9YR>yP?=S)_<)OLbdrs?i` z4bIKw?_K+Cj4nT!HgmmP&C`i)OYS~gz1Y3`W$mxK<+EeOWDdWWd#Ah3L+8t}vYK?` z30`U61a`1YW!h%n_Vw&RuL2*7hp8_X9WCm(6jmDQA$!ni*NNIKUlmpzT=(n8f$Q53 zZn+fB<eeRMen;!vE>Tg*mm8P!Tn~G=JS)tbZCjqq&N|cRhi_)YM;~k5Fe}wPJNqlY zoy5-{k2l}iBj45iVXF3$xsSB%Vl30nd^^2CzltMW{!!5S_4E23?2S=xE>l!5XxVb_ z5_8Dp6Z<?;;*CNw1aoI@;C_<+TzZS$5{csXZWZZo<{#3U`c0v0%RH00c3U1W#0&mf zWpeWGD|MyXuRgaK=IHQEFX;QUSDE9)!Iz#A)4EiCE1S=-xLcpv**w|H|NQdb`|AF3 zn(uiaS9A5*q&ahR9_`)v|KD$My_gpV!_SKLy8XZ49N2GXHCZgi(2jA{dGo>tS{3=f z>z<q|EX%2|F)Lyen38|Ifv3mh@Dk@5$#ts^M%=h~YlG`~rB%Y-Getzttyyq7t1Hz= zdbgA)YySIP^?Uc8&AH3Y@qUHGc4w2|1xJ+*6-k|$x$cBwc$A*`zl9d=-|k25Ez7bi z{}^t5xi2kE?B}mv{IXK-!$1}BKHEpDw`{4gxBq|MF1lVasIYHpk%`V1jk=vXZCy7= zZdo{EM^|#Bp}czr)4dgrje^Uk?${=_pEJRKuhQ>~8IJ^4ocs82O`GR|gGp=EQ=jkE zU489xdk@2!Ifv`2jvjcw;j#Ebmi<q)*Db4<w#Yy}I_aW!>toK2nN1h3uGnN>7gV$B znY*m&UHi{x-h96o{qSJ8+{Wqs_WySH&$mlIZ<aDo#=7jy&gb)H+t=@7k2m$M`)@lh z=gr1sJ<VH*Y<;gUsZYrMeRbVZG1G$*`JIQ08Fx5KY-g4?(D2pJJ^ps8#EEe3TTxNE zvrCsN?P%D(dg4Sg9rHz;O&0>Jy<~a?PwrPb)4kMJI8;3B@pYp+8BT?4vp4nDE@-Y& zTXsSFz|Di-qx+6OH`$%~_RGsVTLQhj*8P5<U4HFXS^N5;qABKg48A^{{(QHUSEfnf zUC9$1HUeiSa&FgGtnXUjtvbbP-RGk9pChu{9DAp0f1I(??zQKdud9p_1#VmAXRQCa z#ivXEgun(v!8=9IbXckr&&MBfzGRfk`MX`}{H%b<UHRW0uy68nl$hM2%XjzoZ0C>8 zYnp?(xo^LI{5gE*??S8U523S9>u$fJWU_hB9E-w73)|&BJy^Z$^uNEYvete)TwbM~ zDL&^*H%(wyd>6C3{@%8Pvmt*1b5ADe9#`D7MO=sRr&djTpS8@F-5*oC4({Ky=<>N2 z&Ym2Fotung0v^4QbQj>BDJY;)F=K&_`}QoJtBXwJYBz8EAn@&1@(iKWK7PB|pA(Js z%sy|;FxmUz&>cBjrLDQ<6O+&DzuFdcf8U4D)TQ4Rwl8|OQ+>^vGh5eRml3Vfd$y^; zEhpc6@2#~(f~=DbbY!i4FD!k~U7~mO)C$K1LUVaHtYi&fky))BHS?sDBJZ=e%?82^ z-}lThd{7uQU+6@rtX$ugi@qtEg<IK#U*!fqD$7yrcxrI5_KRPh)3v&?MN5_(yIs9# zcF3lR4^yK%ebj`FE?r41-5clP_4r_TZ--xc&6kTa{cV>PxaP-Kseg|>XL{Jn>i#?V zZB9>wsviEl<ZJNe*!AiUizU-+FX?86Z#yVFd1CI5j@Fpg?w7sMQ4hE8`L6Y)?Ddfx zw@>*j8%2bJTHSVtT|Ql~R`9vMk``nB)kQT{$Brg8Z)R}XUQl!W4_ou`zNr)1t@G~i znI8l<<2d4Ho_+THethNEtBvaZ({`4)XZscSy6$!_DiwR{cg8@|pq4L9BGIPbw6J0= z*Ylnep^v<H|84oIqAgIW8~s&p_0`1}m+?H=qL4WG*Y^8QjP{ydHZnT%poek&y~xYO zrLE$*zgQz)_^ekAf30xr-J$&_zj7b(XlnY_JSWuZtU$%*vrGT~dCtVY?^8$ZA1&M1 zm=BX?&8m9bYhLvsRQTw9`<Z{HA8zkfk)QeDR)cBGlPveV-SwA3H2B-?XGYegO-K(6 zd)y<*ruuK;A#F38MJ(-Q|4yWxxY>D@iTkEO@Pe@GiW>Lke7esyH<CT=T29*Swh84r zcic{A>1~h;{Sn4~RqUF5_u2cMxlaycEi9}MOBT9lDR6aH+I+i4?WTyx$lSv}GvxOd zMX$|w|DmOowSV>L&nKDw%sR05+W)P5@9y>-UHKvN?avd63tSo0g#U@{Pix`YJ}Ysy z!!#SFhjSxcH-=WqX4E<w&XzkdZ=d+~s)wz+7v)Lj>55G&zp!cUZW)(#E|>ed|DD{D z_FB*6O_Jd5w!}b7zE6=6s}1T6)4JRqY~P<RR@YP9ai6c`jm5>QhCclJvdTZb-G2XG z;c?mQYil(1_06Svzf7N&zyI&I^Y;JmG_Rkf^!%LW-#>rcd%cPp%g<bmKh3l=bLBTZ zmXtIl4I##<4>$z2X!JVYzdR#3GA^!7uj)pSO8WZ8FV_CyIh3*A^zu~y+^^r3v2MO| ze#wsl<}}uo!jp8*@SOW7+8c0qjc7-W+Mc6T(oLfF=YyvFKFPbUNNm-LnJo|5Cp^2r z{Y}|f_we<{v+G%BJZxlFI&m^r*vtvizSaMsWxTmV<o|K`?Yl0hUM$kAzsD$3zvJc| zJ<<6Fp(e|8S(hJPdgCy>6At9f8czx~sHYX2cjKEzaokU+`7teb@Hsj?b1(K3&pP z`21(S^p<_f$=iQC>YpDF{8l9Xr{rQgiKN5}Lf1}gFmPr0S$_NDKTj7~7pq8y)$OWB zD&q4GCig{^h>3@nzc5JrSM$9p!}iCjvrAX3=y<bg`q~NAv*+Lcc4q2Zrue=8|DDRa zn|9^O3l(|G6#3`d&)MF2H{a0sO!h_%j^tCXtK($cGlcG$E@;~q^r+RVCgC&l<i@kr zN4!c^vu<a3??3Q+t<<*zr8^FL7v3%Z)E9N`8=KYAIYBHbg`9GAZg$a&>%^n%?X@TG z$yA)JT$JD%cI)=_OyzlQDtdaiPiG&RWttnXNZ}ATUoyo{-1q&3;LjV$n`5R2PmgVs zyC}oyyxWgw1Kauo8#nd%94=q-DXK-YaH{8#>GMA5a_@EZ$Vy-RHLaSBE%D8)!}b@| z&hQ?-JNLt(SdZJ9pL*6@HFP?hWU5xQ)9tWVpK=a6+o}M+<28p4<?GB^JZJ8~r3W-+ zk8Z2}Hs}8S|3#qeXnW+>yWQ{e_I?eU>El*^a-XP}*sjBkJMH(~+GpE-Z-#bQil^PD zWyYmD*VHrLY>o}9PUVf8%X(aG@!@YqB^M8xt*XzF<Nl^PN7-n}AC^XC@9ea#ZqrKV z=*FIK`?I9(72~%Hy&kvT=;)jX+jC6J?(oIOCJ}yn=f~S_o))ve|LynV8?-{K4u{7X zg>22xdhmAp^wRfoRX>IAzWurWPT1?)tox*lQcjD8`;^7r3O(jp!uv37vETIV`FH2H zZ&=!~Eu%J4r%JSe`+Ml4l~OgCn`3h|(<(M^5%}G*+G_3l6EcsqU$^^9JWx@WX0Cd~ zC)p=2_%c8C;llYB754>g78SMdVUKLxY;2e+eeLGs)oZxtoS!}6@dKabzTT5htG~R{ z`Rr=*dYemiAE%y7se9D<qW(|vx+lhVGmpl!U;BRjP)go+b3^{;YKav>QWy9vJ3U|I zZ&(r+^2k;-Zd2x;^b1LG<~h<P6$Nu6A6MVGQoZ2W!MjPRaaMWD4&2t6+_`gu&KHZc zo#w$Y-*uP$b2LAB&@k2~nCI6u_q0tyqUS<lc*6duOqc%qq%B_bp=p5Nw!7^jg>O!8 z63^=@U=S*fDl&c1`{u3fM4!UhkF~dpem@?*CtOtU;VLzY-9;BurRK#md|&+|f8LbE zS6)SkDw&C`e-)5<h*j0<Wy0+xpKdty*)LpnV&k>nlI-PCI-kw1rL$UGsXDl3kzf1s z-N`S^zx~QqRDSwQvNpx-A%|kuMJb<0jtQKX!jt4`T{i0Lv7b5ca5byDOy$ICt`{p$ zoY?W;V7OeS%bn%XOJ_e`9lE-2qSMl)o;FK^)*jw#{P9W5j)YSmi@N20arnfwcm&tJ zvpTq{V$VF@zEhVvK8J1l#%8&XAyM|q&YMivFSWgMyXP3Z>#u_&<8|To{}D}5k3602 zXU5h3o|^OKeT;ENcZ9WFvE9o2X6rZEGv5R+%;%I2IaYMyz_g_MMQ0+LBEO{{S$ZUU z=ed68=vf8d|9+2Nw_9(;s#lxTwBv>1clKY~ZMkpNx@)EH<$j&g=8m}{l$x%$Zbp~g z>8K#*hk2X03xhwlAH4KcO}KvP!~JvE5+xsM3+JSNFt6=MJ<px~|7g_x!04!)M_cDz z``q<jA#}mMOupHF)T?5AUu7-++9V_qKl7ZF{NqPaFG8F1&lntAST2{eE$OYy8G)nw zDt6YfsaY?2crlCD&aU3ob*G?rGkg5jy<Bf@rKT43b$0Ij`E2&yy?cLud%HSB%l5~r zj}NXY_n)cx`&D&P|DU^N=MKzUnen|pOm&L4psl3xDb{UU7;c~Fy&563F-tJ0ZC%<8 zmBmSCPj|gf@91J|op#MVO-N|lXT7zx%{+PD`O4F|UN2TZ9{fVQc-pqQz5}P+GBVE= z@8!ID`{TdNGxwTf8zoX(9(V5XH+!&?Rd<ih&!1CM+GAa&UULC;qTfIJ@oM}1M^>e? zO1`b}{!$!nyQ9dLyW{lh<%eY&8_q_gMw+QTynA_u_i57~{Zjfja<URQ-Z$-?ylBy^ zC0}K&EUuNWYhAHsU2LCET2Rd2w-4@BnnmfS6n;!RByvisCbadsMNN1A3ya_h5;~9i zR!nzKx7Jf^X+81x^Lg`%4^!ROe7fi^&nsoJV#$&vTefT|etzy+%5_EOwu%p-%A4}; za_X<=T)9%{^Tiyi!$;?fw%_{h?7Hl$!lh;dHIe$%!)^L$@^!bv@AEmghF|${<k|F9 z#xc)AYp)w<&lK%^)c*GqpVZF&gOalz+0U;@y4=0t-ZZJ!|3xfIF1pF*@0~7ge)vRx z{*jqRC5bnRB!s^|Xz$k8@a*ZW(|>&Qtk<pBwN&8O?z85147NTqV$*O1^=t0U{djd_ zvg*Bi!pnVbzMWJZa>SSWpX~wBldMlBv&}s&85O2%Ew)#y;Krje+lX#Kv)N)x6mE1s zl@)q4--DZ9!`%FOp!WB)=~t?ZM3($G6xXsZF3NHKcdJ_ut-d_X4XF9o{y`wiaG4PQ zWhbe9)@=z!@&6>!CT|bWU$1v`!Ph?jpTFO4pK$pts6%tA*ZiJ`nOKZ?|H~5neSbck ze)TFVYTw&!w{3o$(yTKmo*BM=pH|`iZIh(#2sD+4ZM`0qlYJwLGi_q#-JYvTVw${N zC(npAWg8_P(Bz)CvGn_;V;ef8TTNYRa^%(fAN})t)2{F2e71K+q;~seiTKh4C2#LT zWj$f%cg($-vDSM1f#j<av)X4^e7Ux;ipy>J!NNwzO5Jc%`_~EF`hk9Zlj1HLr!Cno z3K|<LkFIfzy1)MZr0Vy)<*t06BUSTw9yTqiZ(hR?SC(|Ur020PbJ0dUzS^D(vv&Nm zm@AR9`>Sl1LkIurtJVp^YlAl5ezLGRc=n>Ni^7(C`@!|~<|mzR;W|}E#Nz+1JGObt z2I=^D4o~csO!#GOvp&xI!~5Poe@l~+{usNHPs}1WgSyL)-oA~EKD{*1?(3CcqnT@V z?2w50TF9$g{b8!Hr-#Msr>2R&zsY2_t8RTO)%0jq*-wR;38&osgv=%f^0xoCoFkU& zFzv0$ZHKgJ=X2J(23WcqWXx{c^2AZ4PWe^dVO9G-Uqs{fwXe*2yK(Xd<u{JU{KYOD zKYv`J^6i9!`O~>Sr&(%RpDI0b(tE?ZJzW1oA5PVpv-!uZncarPx?+~r@kPnM*XR9w z`s-0Q@Amt4heccd`+^(xdEM)`<=Hw%?Jr#XC1+9U)|gXIYd7Bt-v7)yA#lcGLtVDh zKhG>>me|a{zsdW=9oHYHGNdoN{i)yZqmY45q&`|__tEfo=|Zb^X4D0&_-bcYD$xDU z?Hh;0p9^stuSI{~@h0+Nm(-u|-Z-%cix(!(-nl*EQUBbmuYc_MY^iFePoK1Gf1Fa@ zbEoR{T0ud<*=D(mq%W?I-*5GO&z?Qm*Vmnua$kM5Pul$5y4~+Sef_$0|CTd)M+HQL zg+ISqy*{q?>(%g>Lf83rwcB!UUyJ(?`v2c)`Rbf$TQm=PKA#)5Y{%vo2hKhCk+w#y z_(}i5FXh_Tt~mXfw_^RC%e_HsR`D0_U3tviO#14yf`;c;j2v9f<V`ETpka4MW7X7W z#W8C)H`diXTDM+N(WZID)93HkZ%*44^;j?<rr-84tKFNPqB}_{@5T0h-q`7vV%9Ww z?vEoPeX~~_UH59Cv-nAo^|946cWiJ0=VjZEQ{(dATvYyaHC)^)j$?uGqxs%D4t%v# z{byDrb^L_X4{g0qru+A69ICVv<NkcL)NHPl$28ma8|T-?&EQ=<)knVccSfSa?DP5g zF|R9+sJ>qjx@Vuuny;lEFM`+nT3+C4$`<}G_Z;8jyTuXPn4^^qZa!T3H(7CCk<;Iz zXFQgL!jmT5S?arnJ$~!X2`9Iv#p}eJ@U56Sbt)+InAvzTu36;o|68`)Z|;eTEEB0; z+S5<puY5k&Z5uxqmr}Z=kx|gnpwN(znja6_YqqWZ{do1}bZx7W83yI=9667tu-&om zHs1U;DeVGFu;Ql^N27aYPBv`f$y8yQyuni5^2^lb&6^Lpy8XJ|bIT}ZdD7;bd&h3R zj@Y2DeY*UQv%RqY<1?GDP2dz&GS6n`jnbcEu^~+2XX%AczJ^j2MIL5*4~Ol)>yX^B zHuXi)k=7I*yT%iHJ?1rCOtauKe0%EYhk~@i)B2B3>!07BV|yAF*jMLRmN2UCSj2v9 zgUUMh!|!VT<Q_Q?%FC{kP`qZxiSTn?H!{6vyzn-S+xSu_!)Vik)sayh!QBtf{&=~6 zTE^b(eb>vS*Dn7U{w;m=eeri2x$?sv2MdSW|A>-H+Lo|&LtTJI|M`OxB9<%Mxm}%9 zQqsmAU)dtQY4zUf?`q$RFD!6$Q+^)yA<SHJrR3M=+1J)AoZlmHal%%Q(_7Ns-rCBy z-M;F}itXFC7yRC{XV15$^>x2>-|c$cWHL!@A=|P-vu_bAciZc#?vQBbty!VPksOwE zukMYWd*@-70QDbT%$8PfHhl1%+0ttuayaZ%?UqH?Bo@hE3cq%fG5gH@TaL}<Yp==h z+^*sItezis<+|9_=V$uwoG9FRdadTWn_`<T&t*4MV^%)*z+&#QTbC{zk9+a&x1VE# z_NtBH>!1CwH8SqjJKQV$P`mtEmHClytGOS~Sv&vxy8h~<{ylGX+Al4C`!jlPaL@z` z$-~@{ouQSS@tKm(mxnx>$Z<65p~?cKB@ud$e`!W+ja&1>$oAoCv20u2&pSWzMy-Fa zOQ2})Jl5)vhjG0B)*Nk(_@d?9rfQzB@$lx|hAj1#>+^R!?wfFN@#H&C+$ug?z3+Ul z`n~P0{>)6?HJvM0uH4dg&HB#2cKNym`7hs@+pUp)q`hei%eppx{|N;?rjOHR)pZr$ z|DE0PP=Zh2X-X<vffG~GrwPd}#+zyui<qV)|9wIHG}#8W9j{>_KmEJ|5jjABDX z%uN;6@Nasyri;hO-~L4U-djeNGg?zSWwNKOciiD_{6)-eovXUQ#HRD!fmb{@6?KeR z&l$zeR(kUGUeW0<^Xu=G{rou9I(x75Bkk5l4()uxeX^5xn3pGtPS5}O?9_hd-VF>Z zG?)#$o(n%a*uOr;Jnmqmx$vp(8&`{V9&BrLJg`iU$MC8uTSexw`fclXM(N**Tl2Ln z*6ZwwjVX8abr07a3g5azqHBNIfyN{$pO}Xq<{a+bvsvuV@B6Q9ew<Pk^4gwv_l4cG z>C?FnCqV+}VY~dY{O@mXe}6VRzwF(eo!-;+p7<_bvSf$-zOGKor%z24wY|N(tu00C zf(sU&l6}8Ma+!`y&w&&tsVA3Zk0+*23F!6KGs{WJ581fu%y}a-7rpeP8r2tja)i&+ zFN%KB9_>0Oyf-51Uf$<qv!?Yr#av0=(S5T`InEzD^tNKZRF>6i<APaAUu$*T+b&B< zn&~XezP^%W%Pr-7MH8>>mfp8$ck%PNip^|mC*DXmES#FLz3p#p(XH2uW<^MJb@G&^ z?(`}%Z2PL~WK^yyn13)_ExKlD`L)TmpZaU^y_dH=%c@oWacbc;=?R`cPBqj%->4?{ zx8%ZvN9jrXoju-|N=9#<JMUlm{I&HjmsZNvJQd_Tdj0zJcZ&~R`0#9LYSd$Q{w>Oi zm%Z-q`*O)U#r11dt()7i+V6MOC!d@&dGcME_=z)X-)xK&;)^(1aF^$g!0W#4rtIm@ z64++W3Y`(Jly&Tu&&}rfMg~C-o_ym9*4esJ^wO-wY=51Og<062=nOlY_x<Z<!yD1w zfxZ(oR1fpT&$O<RoEsuFt8$ZUfe5c{)`R)oUkhKXZl8DVFUOp;;4?M{&c52VEMoro zqW<2qdHp|5xkkOu`;qnZl+G@9_dXGC>zoR<@5}B@{Jp(OaKcfAsfzt)cC`s`uM~<m zT62&^G_OBwMr)PS*Z9^u?VVfay??1Q+2Qrv>*D4ad-+!DPWdDnIb&AWf02b3gm&1y zKhP%{r}Vn$&JNk__oUt&4F7-n(*FAYmc`FZQcv$Jer`5z!!0B4*KgnY-sg(Fe&mSD zZ}o$BKZKTUT^GFEv#~K~6Sv=8=J^ggd|lUz{twYPo?~S6S#VzawMzk4F2^0ce*DOp zr#rTa86R<NvYU0{qvWGsn>R1l`Ee@aefzC$1J!1``87$xdnQ%Bl)WZ%@^8<zxmq8c zOxxldlw>yu-qMuVD}M6aIc?MZTQ%RMZT<-w3VOcRX4<y&^Yh-V|N5?Nebu))|4(Ui zFOmJ6WV&w7v7`3?{gRptr7nvpInC(ZDQ+)+K%*|QH}0xL&g$i2YyamiuDz<+zTWCp z)cUWBPC5qKrSEN=wdBy;Efe|_-31(eOz@fCvAchI>T!#y;nwRX#_srFu&}VVI^amv zhtSz4TDisZ_W%8sKEKw?#Kc5bckPA^0gErr@KM|JZHvSGOQ$w$*zkN_b)VVddVR}; z;&iTcd%s2f3X3@9`+KQrcuZld?Y>3FAICOM_?W-?^|9h@-Z!KUXB>Jf=(oD|wpUT% zwL^)fFIoCb=IyxWa`Nyoi#=&8)N>6Mo;swn>sFSWtkYa8%QA`b3e98BI-aqw-Q0D} zKlZ*MTe?i-CcdhBOzy6cj&nQD>{fa(gCXMIW+{7d#hD*MMT6Nl?k_u>xouU@VaeN} z>QSYICm!y7HcNAz!XYK!jaj^!f-8fbpPPF({&i)|Q?;o2Cmx0?|I9KKx|~t7Yoc;W zK-NFI_aa6jD?L6vubJHD<)M2j`D0e2>co>hTB^&x7SCStbxxs)R^Ct7YZotYtu^Pa zzp>!!zN(%5VG??)kEMscNN>|*%zu&)D$_mpoSLPL@Bh0or(%>RO`7D*f9B)k+^|(C z>%Yp?l>Tg8lYM_*?OrL-TMcH}r!vl-EqU4~e7-<q%a+((C56v_T)iHD{L2eL&4&#& z=5u<w^HNldCs=VFp003f-r-e8i#Q&i=*=~lqp@Ym%cJHeFNr-9+;?c5g;D>ZW9DI( z()K-$INrxQ*J#c|?VaY_oDc8ZX!AVTtsc2SU(aL<Q^=#ASv<Qt-u_=c!%uFV&pP>q z89n}=UcH=g$x7_o-fHd>3X>!E@yvUpKELMCzo_?NA6LKMcf02G+Jl$WPN+UFjI!7N z{Qk3<V)RC?&zvzwlNYZ|-g@v7S7Z0N*MixJVrR=1d~FH{YL>azAH8=`+uY37YqQs` zd~f2>d~Lnlfv|7l@4R}SXMHH<<vO{VD{Rj9iPA5WXRUwITJ!L^xXHhy(8*T$w@OY4 z@BidcRrPEA{(ryzd_G_P_SV(o$KBN?$JYP-`sBdBPp9?2gkC<LnYXme#f7C-T3$Xs zcJh=dF4^}g9`kNL8vf+j{hH5T7CJvxmHB*jYDL<<-8MXK65A3?^HqE&ylHiER(<p~ z$K;EU(F2x;+O|?%m)07ycI|&t<h6P=NBqk0HG(rExeGIrb>4ju{ABaHG$nBT8By~G z8s{EJ_<Hkkez-c>^v7cv?+<JJ_kW)%ExqteO_JWf+q-_*Pd-_5m^awHw<y<lyTSic zXSd#~{V>&S@%~Sz8a_TQ_sVkHu_^e{ul>Gf6BLUMKalUS_kXnF#cH0OEoRbdk4A{T z6FPQSccIE$jVV_YjMX;%-u3I(tl2BRUS8h4_1^8%2dsmgUa|R27q@G9YtKE`OLbS4 zU{uo=iEH5}QnS|o*gMT4*DfRU`MJ63{`2QOI~XoEF<^~PbJW^t=~7Ef5Anv;e00tJ z)$X^v`q|9%cl-bU>*?Xy8(06}KqI?c#e-AY>urjjbliTlx|w}v$P-y>mDiocaYv{A zI%oSvY<s`sZjOnJ5)(UXFZHcCRQQQ&YQ~J_%gS><Og*^Goo#hujK<3&O25S?EqeXk zD1Y&W*S?QGHz+F3nVkJpV$EvZS6_9cKd+XE7k%^S!_-X+r~0$XtvcAUS!Y}4k5_-U zzSzBI>+~0&&zsx)df_8(zxUGf?Yli*-(`<q8+BB0%3RA}y@xZRH}8B9x@WgR&2~QR zs6%%r8z$KudYk#E=fcs)U+4S^YYu%8+*{v$_S~K2H^kI+kKV8PHn}=z*1E4OtAFU7 z=Z(4_c>26t*H*h%QE%oe6)^0a)?u~Ax_|5Jo6)_GSMOeIkn~$s@3isxGyh(#?tNF# zZ1dw)zH&;!@jltxd#lSob-dKqy)5;RO@Ge^Cdug6`?I$G`hLHD|KmRE6Seyuwn^Ll z`|&t<`4Pj=?T5k-9(+01%6HO+t*@t)lyDVwm#s^i5tdjda7@HPYi8!sCkd)EBPTap zT__hnSIqj`=5=mv3tl{ziT7n+dtpLV_3e@i3Wu}js;zK#*=LqEZJOx9tvgOjd#80u z&ykHi*to0e8b?+9l!tD-hl)155_grbxBt=pC`UQ{d$EmN*p_cXy0KL)_a3LFZhgxa zztag6hF{<B|MT<tbB~o7X*Q<(w&L60v%S;O;7`8KrZcyZ^PhxNJ1?JQ^r;C4RSh4_ zaot?v6|>s4<*e8)EtYbJY0VsVr}ee=zO+hY5`DSD<8|e=fOL8L{JD<~?w4Xp4O@FX zJ7R*q^`0xc^qKo2PDp;6?@+<Dk0U(8<MrPsYQI;^I(g=*lB?W~ExT3TCO<wHE?3yP zLv&x&|G!iBR_RVDIFSDAvGaF@MYlV1|4CfqxEP%MMBv|@?)a8$9*dNN;boi}tK%I0 zJU=9w@<_+yq>h$y){Bh8J2aUmE>#WAIT~)G&9`mMvq?L+J}YDu982AmwWjS#OOf}Z zziq-DJ_nzRuKDF}_DE!tl%@6myE5~OwN=f-U4Lk)9c#6e);kowPQd(NI7@lzru|Av zOL(5=SsZ0uU$)iUkL}ZbuY!*Zm#!sevM}v9)+Avju6TQ+s<@wWp}Ju)JKHDWrj|Gz ziDP23o~SC`;C}k(mjL(vT?emwD~Hq+&2ou)KS5x<<LmmrqJQV*Fyw@-<<}Iwc=Yv# zt4`+})GfN~ep>iP%|9=rax`wkg!o*$V$I`~r`~C==P}sL*!Jy#cK;Uc8rM@rhk1jK z_uW;z+OTu#oK@>A?tK&gX~8%7pwHnl@!tKy|E*dxqH9V|O{!0w{%Z0M(J(u0lTN2i zQul5|&5nuKF4(qe4Wpi&|Ki4w=il`&d>52vpLz4FQ~`V0jiLm04&islFI4^eb}Xr? z%lU=Gfvb(%KD~T(Ew^opFQd(mRZ}-59DK+pt0p2I?ro8F{%A#I;cmnIY%lyDy|B`m z*H^fNW3pk5-J!=DCx&Geyo}JU3~e`D=y!KRK&SSZ4V}4<UgYT2r5afU`(($=64P7x z^-mga)c^YV5BE+#l4$s>K`)NGRVaLB;+<aoe&shSTIV>jvs*I$)+=!P{bA{k2(x@U z-*-Xtqzm4GMkjBv?t3J?*!u*t<h+Bev!oveX70LS;=T3v_Cih9LIt<n13{h@5^r3) zFGYOO+O%|nk<$4f`;6%qYZW+*cOS^vw0%om+^kC{Di^7({bP1$Pr2en-^|R|Lv6ca z&d+<%)*v|jNH~vSNrKvxcL(|11uO13O^ayU<n5;76&0IhnQ>uO{h!0FA}n$>S7UyD zI2?NE+$R~WM{-lQsxOsXYZ`Tb$BYE4?qI_RL(%#RpZz5?BtI_U=2L9{JYl*e=lit9 zdUG!w(y3Z68^`Hz<tv}U1P4RU?w6NE);<@Vf4%CRaRI~cSIX``PAOcf;yo6+h+Wpe z|J(*?&lYv*z;E84-hO`gLO0s4`omOrn;)w*4;5QXpYA<P@$<o`KgFFak2{3AT>i&h zV$*X<5n1-)p_bX6pf`_ySKfRV9^9tAb%S^6{tdHFo9)jC4v)A#ac6Vf#{(6=!#Q#l zX30!BY0;Km_pV{zrX2^;<n`w!B{lxoZmd^yb}p+itLco8KI@-N$2Uh*3A~(aaOXmX z{ernW=bSv7XR3Vb%gfC07{i-SHZ3yZ-<PFUWmxi3$RIOlQ%iE)Zqd7k6gkgFW^dV7 zm{Q8qo~GE55Guk{uDFgzH-{yxb@Md0lci4&T>Y_!tM;h$TdA&}{1!IW@_pY<>2QTv zU#^N;rdxT8%`tA;Oty{xcP2eiOY|=9zE&UFYG<{g!oPs~+L?nq?dqbX4aHshD;KA2 z{<&&3le)j(#|PT|6(2%_pY+>ryI*v=WTl(&?80CTxA#*Hw2N-Nzp4MEiPFp){%uoi zg0IJJH=ZHhfBme${t&GX9=ykH-7Ht`-s383?>HkPaW2P)&zDxX^NP>g{h{Wi^R=np z<7CgtM%<okdg7jaWJP$`<qfNZn6(Tyu(AGGttj^TW$fi2oM|yRm!=$4Rki!KX3LeW zay3__JUt%dxu>N~3}Fs?eW6lI&Ew;#+@;s7dv`s^F<CazF{01%r^WqK4c{VlJP$;x zT?u`^;$so-KH+?k->hMKGOngduYG@@W#fxuTjN4hDmd5n|DL4#Ml;6w!78@+RRv93 z_6aSYp7<?Gr=TJzxvZ$<g73ue_*jdC177_5K5=-~)&2Yb_x^v|9}k-6T9q!Uum194 zW6jT^atnj+2gBd*+r21$ziLo#S=h<FQ?_rZ+O*MhS{S#l!Lj@UM%QCabWaI?IL2v_ zkh1p3@2r|92lBse`xx!28S#lv>S(_E8b0fraf!;|cJJ>-=CS2!rieW?c=t%o<A;+# zsPWXr(YniGj__^TVilry?9A33F1ya0G<p~I?p*%ct-A^qcE!DrHk(s&aqouX;d!gS zzH3;2tmkIk<KD|EK7nziP1SxyA@4fYf4Pu*Ov@>ZTOg1jbJF{Mg#`Y(P5)NAotOHf za4+Nd|3t_BHi@kPuT!lQ-Gtg+&dJ>CT%&reYEtEQ#gEksudOcVW@G$$L#X>6TgIUW z`(>kL=3QAXy_09xvJ)E;Im_=!UV66b$-(ekJ@<aOr@zBK9NPIrQj*{H%LHqQ=<f%^ z%kRsoDQ<o-N$1>+FprC}i;o(!p7h{2vO;Tz0jDu{@Z=Bk=E=BJm&++@f0(g(d)rlA zS7*+|y&K;y(Db!Wj6Lkn^`V&M8r%9U2{YwQs>=;ZzdT})wl7S0eCe6|lV?ij%?p}8 zh4xl0nRjH(+#el($`8#yx#NiM`S9ZHM&EK?JI{LddL8$t@BU>M_X<1&4KkG<2;W<! z`{zM(s1Tn;hV8s5dVBp2{d6?ddajhh<tBeb?zcs8w<@zT9~aY=P>F!t=l+VtVzbLy zr{;I*3q3jP+ck0dUzV@UHA>Tr*SgobCfepR$8#%Rt2$>f<;ezx_>}w&a!rEAr@mNn zyf1miM(Oyh0PR=)x>Ll(A8wwZHrMX_jzvM4wm)9g$HdkDEp0MfxpJkcsp+1jPv!oc zIdfdT{!a7yS0xuRK7E^Kksa0+!rXVK(Ryk2=F3e!;Y|F3GkpA3Yd424EqpPV`M6_I zn=eaRPt!`zYW^u_l=E$zopY->ib^7Q+peFwW>-;gIJzzL<rVw?C-T0h{!6|xHEm&k z{PRn{UWvr_w5?R!zKSjRbYZ*Xu8<n%d*zZ|Coau9s><Z$dev9!W?q-g_d9de@9!(T z_!b;&zs!z@SMA*xyxdbLs34p7g;DR~PZI)EPUi1#_#@!M(_AmewRCS=<_|sY%dDrq z`ijPFF7_)EyfyK(uhQD*Ar`kps(xD}HcKxo6v(pG+$|dC<`%W?@G;(3vv;o$F7H;V zj!BlaZ;n|O=yH{d=VFZNt{H)I``&xLE-t)wKgi<Ehb4KOhj%Qqbcl>pZCO8Q^6eR& zhnv^mim@tx7ZVdR-7abCma4t?rq^)t@7v_z$ap;{>vh=4PgCwiH`nD#sh>DrX{4Ou z6SKWLxWn(rZ8mjZp0g`-5BF~65UYGDw*AU7WwxJd%?fpAevRHdfBwvTx3uXciD~b@ zAKSYxVza<kOX;v<ZEVx8olmG$o%lSi@%QSF((xZE1aDU+z4E^1GxbWr4=uN@poNXh z;rqYcT6DU3{hi3yw`Jl}Q(_cq{r%5R&vKZz`EP{g9j~GSD*@%_%4?*uPO{%`bzE+E z`&YiMTiBz-k8WF4Ilcw?+)<zNezVrT`P<_-cC`pMIjvpJnysrSzGPQG*YtOX7ueZ6 z*pjt(!^XY>v8__^D?UzY&D!_Aa*glta}GU4H)MMxXI;!|R@k+EeSO7`IR1T~9;|L^ zVw$*g>F=VqTd!Ar2%W1xZJPhLX)!`8+1?1A{aCksVb0-Q0e@5<mNeYhv%rcmf38#V zWznpfRZS5eIXO73`#wIq($(=pZSA#Ar?0}_H`=$KPEiZA4*%7qoMJJ7Es=FmkMZek zdb!Twk+PF?CpTAr-l!?I_v?zNUe@k{mkP-%S>to3Fvb7<SN*5<duzN|&C_jB_n-a9 zy0^z!*2?EXhKlwo*=a{Y`F4q>R||4A8>C65Nyh|R?_sx3J#_!qdcJJkvvWV^?A0-z z_McfhzAR#L(#&U%x8Bn^Wv;xn)I;x7=9km`4?oTp`6r&~T~{~Zc=EIlJ3L#~`>Y6f z6vewtOmXI(RasATU5;>B%sXxybSSebYqI0_!~E`le>@K3-}g&?y7~Q@&nMOA-`SMf z?X`4K^}?%JlP6D>uloTy;=JmEsJ@M*bLvu)$uHf6!=Fe`yqLB;`J~P-W5L-mh8FTV zR!6VpCgq21IyPgmM40fBm8mxuRr2appPKYE@2K}7m8-vYGHg!D;XC&KjNJaS$Gy|D z)6Pz;6<e$zURK;!qqRoqM^o#xgUiZxbKMVn5V*^T-JnXp&g_r{Z?gW(8rPt((~)<- z1{thxZ+Y|a^XGEGx0^ZQcW%D6-E!Zrx7#f;8{ZXke>llzzUimbm9~TRdQP)kGfO?! zK6iH8V<qoiVPv;CFQLinWU1SX?7RE?UT-!p5_u<nX-#Z?PSE9A-x$x+e;<n;_P?=Z zYtjb(%EGSt?-e$8d*@mxcV&KV@G?|!dbjwgkNe(7*@EkigsM%EIo1;L$DMboeVbfk z^5rw?XU+bq8YCR>;`Cl*^JCRquduLdq2aMlQ?;+h*VmSnmCcr)J^R7xna1Bwr__6X zee_sa?zR8cn=ds2uT43#NX(-)$<nH7c8ZbnW6teq8BL<ePm1>bP4kHivU(f$zK<<1 zJA7l|vZq;l?_7Verkd~P+DGfRsI94+c(&Tb<8*>co#eWU3NhWEEWVsO+?F$Efp<s` z_jH@oeW}O9G)q!X3hAkb9opcj44MSnclKlG{e9i4I_uV7bQJ5D$^Jmi$?u4ij>`9i zlXM!FM4kT}@bOhl$Bu|Emlj7oIP_)hF^7&#AJ3}kR0v4l-`ZrNy)ks|we++?lQ-L| zHlDXnQQy2)?0{pK13Pc^x4I`!JGSiOi=TVn-Jvg4Pkb3m$fJu{HF*xXHoxW`{#5J1 zd4NM#=DKX}jeC2R+<bUg_}wn;E6wX|ik_XB3EHBtY<AwHlPRDS2-=!3`?Z+vraLV0 ztZeW0{rjb`((SSKui#I&-jw(~;Am{ma!;*Y`z7&h^PkdG>#rRr*rW<?zn*(_>gF>? z?e1BvR(~xJ6M1&`)tRC~LR~!tcf;G8c5XW8G+XCt7SHySZQ=8ePO8}Br{CHeVaDy~ zyO810O0zPLg?h8i<|@^MhJ?KBnw@w4`~z^_e043l`Tq~+O=W@BIy_q<^Cs7n^0a&W zJ;|{n<n`&BKP9ehZ+N@;)f%zOQ+C81K6Rur;J8?U;+i`yfeEV|U!P6emL^*LO74!L z^Z)t>=kE&`co`N<_IFnfSALT^q4MPpgX{Yr2Q1xoy^8O|S)&5siQMu+-yU5|+`P1? zpqz2rCz%t)f}4as&zYOK|7pc?%dZZb)8${>C|u;1{^fyo|BmH5IQL1JYQ227`|uK} z+;Y40{Qm88_ug$>yKsia&kg5v)|ws-iMa3X^tv^*A*p7m>FL_iMftMV7Jg>o+qaK{ zQ!qRvQdc+rd+(dA9IqSh9&WKVTDXSC{EE^6p2vDMH6o2wFP0^ga0$&Wy5_DMDOtT_ z#Xc{;bE-9^uR?A<Js6&+o!h-$!uUe$4Ey*^d)w0wly{kIdAn9z*vHs#si27B)NAf; zGi#q(+3&o!>gz?Wtz72e8{*eYZrE}_b4_4>>3Zcg!k;F|l&#J3;QW!qzE7^9{@VfW za?N)V@18IH`1O*@K9lyfG3Q=c_ue$Qx~X9DrdLsGs)ZNs)9?{x`M4@%$9k^!QVVW& zI<_19<LMKAW5a%Y=9DuH+RKt&%}a}!nS1-(h2|;q?@x>60L^T_>tA2@Bk{Gczl*nN z)S1k8y>Dh|xK2)CeWrI@CcGy{b>6ENxle4})xXv%?Mp3oS;DN}zsGN<{^Z{oBA3q{ z7F?@zKV?JXgS&mNX5O!sm9yT>II*td?~PmcCrp?66WBJ}XT^>N7w*Q-p8F1FKh9-e zyJ`D`-Lu`7Xw+KN?C9Y6^zU!$x*eu+HCJ6M%l$md6%9Ym31Q~zJgU6;?$cXokxk*^ z6W%ke&7UE^<?1gs`Bjr##W!Zx)c8E&nCjSFny=u~_xYoe{HcZ4xIaJCU-&gjH0+y8 zMf#IlCjRS>2B@wxSNbj@^6^D<^B>C@8#w~cIbFMbzBp@M<ei+-d)wD<;LYF89=~&K z#OkhD8c}P@?(8Tmzgs$e{d)bsOH;3zIEhX5D!rY%-SW=d*$-B~-+%wpm&;r$-J<g| zg|uST52u~3X~}O|U1fg3)_&E!4Kw$Ko}OVGmuh_}v$xCgTu#DNuWesa*S#!0==U%n ztjY2BMAx3~z(6tSx;cKkl(+G<9DFv@<Uxt#y0xwo1b4+sln5lBIB?GGgOSPCvd>Gu zw+5Zr`e}}3^*50%iu;P#*XBppY|Xx2nYp-Q@3aT;ukWZ<m~uO=`>@vK=i5cwxWn#V zF>=<d4%AEMTXc<O<F);*0rpRhbZz2zv-RGkkS&~1@xeVu`;}isC3**UUwa??h)eg- z>H<B!^>dF3*`+Fp`#F9+AsgeqIjxjkS8v@i_RPn}Cg)Zh2Q4jqdS_?x-{0T&Kbw`k z=gpGH$9w*MyFJ&cw5zl8Vus0=aJ}jKKcBPq{rNCFzV>NOxm?XtuFhjyEOu;|v$D%) z$%3t`ufFJf#=iD-^WtlTF%fU}{GB~>^On%7H!e))ww-(T!2cuHuN&?tx@D+xcT(}z z$JL47Sa(=5C9B@sFoid(c!Lt(-s}m}n=hwi7SFmfx$vOiyF9N+DTS6Fr&?#%-hQM# zuX6V?H}$Ix+s$T9xpeiAf1~GB#^;k9b$8C0tyGizp)P7e)?T^Y&LZ}oLUnDpgdB9* zc>fAMIvm8b)6;hL!da`orj;4-b>(&JV@-`b#BBU%3D@@(7lZp(h15)L(%-V8&*?$X zbG@lId)h^PQ}gm~OuTqy<KrVQUi6slc??=j^XU+`eud@4W&E4c&Pv^?JJKO|&2)=T z_O*4fw}0>_Cnvw(^VyGo-z1ka2CskkTyj&D`DeZHZ0YoFzGQZ`c}H}lXQWKO&*xn` zzqR7vpY;c&Pp%f7=Eu!ABWamjwEYu<OV{`pFPm<4=KF?qBGFOt$C_$4rq8kc8=$K; z{h^j^P{|6PBe#zq6#cE!oWz%AvUg{0fYmzAY0q}W`hga+-QV^@ODSpo`t|!$6qSwl zFdMvH;LW#HXw_YhnC8~Z8xz~-cpF9L9+YAdn*P>n(z5uJnT0QQ&u7hwJiKI&*yZJ} z{~kSGKK<mG(ww(pYt3JY9KLokRZ34g;fY$tt3@3xM`X-IOS{(BY>APdb9Hav)O_ik zx7HuZomz3Mp@~^yX2bSX1=I9Si}dKVU+%f_h3Q<<ar63PKVGe7UheDde7lo9e(TO3 zzkao~wrWm&6m>T(^49lz)&1N2y|XK(1qBCZ@~+K)5}vj7*SFjG{vI9$#WkiWC#I>- zpQ7_WtC=-^>J<;;D7$m#-78d>mL=a&;Zgr@!l3+kgX7yh8xstUy?2}BTzz86!ov@D z?LM|RUoJ^%p+TuxXM$^znW4s7PW9;<UhF>c;nwy7(QhX<h}6y&bxeO%w0)n{@zl7R z?_~{BcWe?1&iJX(#1a2;ftJg>rN1ML=WV|)T=-w7Q}5Qqq(kA=-{bh8L7a7I$rI_k z8Cq8}ym*(t$yS}Ke976rU&E5=pM+RP;Aa814-NBfpOkQ1rXXuAyD4hoX#uwX6*(ny zuUSt~ded`swNk#f-u2tzlHFVHxgTy?f9#ul<iWtiey6&+3G8WRiXUew9erWZ_t0xu z;2-lA?nSqEg;c3%T@3BL=N2O4?jch(J@LQelFLi2TaFoBx4+-Ad+{uD%LwsZdrW_v zw=b{yaP|Ktn}0tZo0_hzy;=VHTJO8$%F3OkzLAlVYZrd){qyQ}{{E-D`({604Qg`i z4L90%aPG9Kx0jy^wRGy(#<ZPxJyDk9dGs5z$LT`{Q;zr_zQNGbakR=br0-Gq<gyz_ z*GFAex)xWm;>@8d5npaK%dei3Vrt=e*2v;m_@7g+q$+KfHqZBo-c`55%J<;8cS@JJ zLd~p2Pk(DmJ}$7Pf-NyF=bx}nap#7^3l3abHvM6hsh#?d@Fo+hb4)o)U+)x{$mL^h z+J5cdUek)?Rug`=tSq^Qs~@jhsUr&NoB!H&G+fzD<z8`r%F#nho-KK^d&%sH+Q(Qw zE#VN-aXFIs=4ta)H3|Ji3HD{{k0v=qK5<x@*v^qEy6{4feEF%;sP{fa8>fZ5u?e#d zu2GMhI`i$UmYK0T<yybSO`X4f<Ch4v)7D2m@o)a)^W=R>wbG3?f5Yc~eNPmxOwau_ zO*F-FlSlTH9jm0|X9N_BdB3Rmw9%4%`AKzE>zfu%)7TX^xCXBH{k~tqYKyLPX$5F6 z(Z1T>b-&+ke|)_E_19lw)tjF1UH-=Ae0X=yw9MZ5^XG4#ucD?lNqY6RD|I_8_f5LC z^sLrXpS-Hqi$tCrK9*o9dB!5g;8y8rrPaHoJ5$;#r>HL4HLEuv>ZMNSm3dkVkKW5; zH46SvY4a<t;81D8>{+R5>&+rQ7OO^IwvcAtzI49h$6%9bHa#5jdG{{->YS4Na&e5@ z@14GjtPZxR3#*?ltX92e()@D4t-kO42_}uJ58t@H=8SfnT+oB%7MXHAYom8Iy*uQz zReN3{WD7(zC_jpEcDMfgbZN0r>9tiYS|Y-p^``?L)kr@LTcbK<D}!Lw=^n+uS?t>; zna=34&ziB1HR}E^gX@|u!b>bWH6}lu@apC*UpqUioiWzIh4-xXMZEqh_2hj(&#fr& zKDi&d?TcIH8(4<zX^Gwc_)FHhg$w6OObl;cKlMdObN-hAc}E6WPcyM+k7VvEo=Dv8 zxZ3CL;jOnd@+Rs#@n8CWKmX%{)&EmZo;~~a>gsT9W5Ze5nX6Z?e!u7QxwX;Tqt@=S zeyp7tY@`=ftX3YZJ<D}<fFZjvli@23i?9sduCFV$`AaHIncB4^Q^J~cak=8PS<|;l z7`JPDGYevQduGD61Gh~b%S9SfF8C$)oeZq&FfjE#?UUH0TC~$m&pe9%OyQ;7rAq_* zyCz%gmaFVsajLj&CCjmG8<=dTRNP~kD(U7F=2<a);Uc!sl7$?b%wD_AIP+n4(}lm6 zY$Q%kmshO`ja^%O)K~|+b0W8U{fpKgSAr+G7XP>+>*+KpDr1qMuFT}MZ)cclXg=VI z5P$hb%0ygg`j&ay;(J*q8_a27u}nJHwMr~wuS%lcCcoz!)%a>JeXL!(RF`S}(XDSH zG^<rzK2DDDb2weXx%T?31vbr(nl<bi7V(I@b^pmJQF^Yof0J19lpSuZ?|6!}3#}yQ zt3L28`hM<_%FXktGp<&&FNm_u<2krp_pQ>8CzCI-TnCL#MON@!_VT`cXJ(V4b6d^F zqvB5McM8_H_8;HPG}F5LUFtrUOVdPN_Qc44vuuz4@i{AmHMxdGP5g0_;I79UieH@O zTYS0OS-<q*ZXX|^ZA&jKFyo9qaV+oXtX<zNqTeW+o3!o<PPsqp-P<moY`(A~kFKih zDQB8!dTwXA&h8CrNs?Q99{JT+9htV+`k}T{B+ELT1MAB*zs*RD>Z~jY&Aw=3Zt8w? zukH4^Q=ffUv}j4rVHc-aNmr$UloUZra-V+;jn3R#{Yaac=ZV-v?tr#QL2s=4Hi*=u z1^x+tIk}_!T;k4)Vp?+!7GC-l$#Kd->iKRHx4Snb3bHmnvhG?t_f~7Y`lGi>Z*mUw zo>9m*a9`8*HurC;`9hEGms)pLxrFno&9=Cnoow@K*(2#q_K_AQlFA-W^&<rZHuY=! zTU@_n=j3lA`1dgX^xa1{@4Z(2Aym36MvtGHJ9y=hPAk2$C2ub*bPhhVd-jp_D$9?& zl<Rz``*#0EvF_%N>Ab750%o-3pUjwZc$1Re>g>akXU-qm!m`KpwWL<delIthpPOs4 z*Sbv8m~5TlbNPe_!}<KnQpVA(b0&A(>SHW?QQI_o=ZalZRIg9jr0=6qR-tnC?rzCh zS%2c%^rlK=IB7DjTFjwTaMV9$Sz^0=TiRon;`c{q2?qro?UR~%W$*6QQqwxYrzgz& zG4<}{>{|^>86{@6&yiW96tR_CK0UEYu<Yf6w9=cm)=#VsZOA>;C8T<4O=51k!OFt5 z;u9mc3dJ{i=d7^n;Vj{DH+1bT+Rc1fY~$*y6`|c6%9~o*?~AN8FAh)66#b=rF|u=Y z_6K3cwOlFh4)Skt-{ln*l7CPt=v%Lh%wCq2UR(LhTOO=Ft80JrxZLcom;G;FD0|cy zzjde0-!GTfo-fHQTv`_VC_J}seNmChvXZ)5)_bvcC&|xq5|eCCws2|aDhM&M3st_| zQJmKJI;wTE^#{e;rH&I7UM*Fdo~v)6G%sgPP58zr53kERER;87O^jcu>~77Nul6wZ zlg3+Pc_|4d(V0(oESA}Rr6`9p>h*RT_P!106NGF2FZQwtK32Jj%Q!qZMM)%!HGHRq zd)`03El1AE>}0;Hvby@f^7-q2Kerc;k%P7-UbV|_v-|f$XQkWia!01B|93r<*4p=- zQBsLsb}Rk!f#!cwh4&cx5?8XZ+T>Zbd_31xHrw>9`kjbdCKXn1YH~cC>Ob-JEA9{z zU-Q^q+s7(r-J$B1z9}z4I@z;6Brj3A>GU&i+R2<B(Pv`J8csEov{`Qbv6QQJ%8s_W z(AIrCpM3(t9(=I-<91zz_x{v}4t7P01SC2F+c#|2WYG~0-f_%r=h_$fpD#EE?*Ak7 z`e69~)03u7HLd&eBP?x~(*cteSF<XYIYuepd2m!b9&}Y)HE4zAM(1|U&(A!|B=)O3 zXneN(Le@ggqenz%6w5qJG2u&IB=<D*$4Z{qQx?Tvrbsns8%DOj-MV8&PrdM|RZe|h zpTFK{BGi~togH|1s><fWzJ;!De+O^bH*5BvFz+8LuIK5!H#xoVdJbdqsjME2!=|DY zEs1-l&1^|^udADGC*%}1?RD{7A$<v*hnn0wX32Gja|`BIYKOKaJW4uavQU+0;d<S} z4W^T9)AaY-%vZSf6uj6xw|l)?pU;#HH#5pyvv1e0UchtU#M>KDotHmW*b3K67IX=? zn(hmD7}q2`?abTvKGVD&CM~(Jd2VlO?}}pXEpay%#cExQzO^#{IK!tBqlfV)jIw6> zHOyW0^+s6t!li4L$E*{~*t>1U-Q`DoZ5USnFIjmc`05XzZVq9tEgEN!{<8hispF&d z&-uDb_br#4Psca><j7xQ;-GQV^o0?x^W><~zPr25N|@)hv&a9{@19<qdCxm|wXAhn z&i8kBYinv=AT5o!?fvd9??=&-x!YO$B{#>ex+v1VBlB-m?dQ6!!W)APe#vZ$=$d<7 zDqz7O?bH`h-7lritUk8EYfo&SHD_Mt#-@czqW9k%ao<&?wC3{(wTMzdR`<dNu}d32 zPkPDTaAY&H)5;?&OV(LRKQ9coem=$QL5Zr}lF7SH$O&G0X416&%!Q1NK1V;^E?Ift z@75W|j(<P#LGFMC_l`$%ym+&oE9bDOg)CH6t!5KmH>>aD${@Ss`ac`*y7F&;j9cpN zn`L9UG&}rcS8He#U;J9Ti=PC|l6F27+`EIB`SQoTVy~y}XcB0Z(!ZXxg>UxO8J-o+ zt-HTYTRux&ULoM(tixq<uXP{c&`n$z`(s9*C1bwKffqJ8D;yh5S=7&*+>)_3?&z{? z!Bws%hnZxrP2hLEmD?28`$lHXt!8=MlPhYC3>HbOyc+QSz_yh?nhmrf_bdxu|3~2T zN4D^csM50VI7tDSIqwdJ%hg=1@_x-#C|`4R{rySh_hS{WX1IIJI@`6Fd3M{z!ie46 z^JNZr*j_qaSk77{k#o}EtU-99hvd4eiQ)%4RrXA8oLFNp=K;&XRYzxd*4<HCbL#j{ z50*Jcm#*ZGb)S^nwo#yPw?RkEjl~>7ei^qacUQ0eSbwnVqLKXE)MW<*7T)kw=t}IC zTgfJKQPJ_RsmO1~R=cM=j!w$@s&`n;nCDNbqR-Th?d1=eg_cAsg<st)Xe0ZWqhQ;c z2S2aO+AFj*KUC|a=ll&dKQDf3T_2;E+r3^%`TNfw9$~2thfgpGmM&<u-##IX_q2mi zrBciKEX%etuU8qK$eFz_!>KXVZ*4H|K2yh131N=aAqzu)@=R}+@=n-#ZtmevwLeVx z)(bjx9e@2qPVU$d;~Dm@g&|?)_8DB^8mlJ+A1sZ!7u&G*`34=~$z_jU|BC-=-C@rq zxZb@~HDqIie8<Emlhu-fMQ0hFFW)uibN%wSnX)A&mkj-9SbtBDUNwn5ekb$3tZTpi z`_`D2WbA3#%y#TqyWKaXN~1RU<9jT=gelGtn8Nkfr?1Lt#=`YS8j9{@9oQ)J=HW@> zpX)i|KTe6%^muUc9%quNVb@bD`D-k(de?G~|1Nytt>JC4JhMD&SytJDMOG_1_6D^{ z>j*DCbe`Ai%bG*xTW93CZ2KB6HAUdWlGg<+j5VserKTDSnlKA{6>L1(ZfnRI?*DvI z#3T<dFTKdeYt{&f$EH++=P$PX$hv9Nr@DBR*QVotw-xl<ym{z;-T|Xa7m_)YpDZ{O zC;Be*v8b^LpCZ>`CDpuDhh|q@S@xithbRB(#ND%Q-CZaV5ZqP!eB(2Trtc5MjkuTW zG+gsO>TC3u>FcL%t2>c=t9gE(q6)vESBm5UMSBx&_UXxdH@ClxdF)=ad)D2qoCj8S z1R2*Z3{?+`igM<^^y{not$?YZ#o2F};&o#xBBJsZ)t&zMZI#+%Ly5x=_6vSKF>lVX z4^CyVlE1I=%w3VYmtkXw=Eo#fIfF+`iqly3EKNGP<zP+A(S)Z?E`EnL#CE8b7)mNn z5`541eO8XL<%TCqCf_`Bpd;vw;lTpU?b8JhnLO%|lXQD>Yx&n}i#}+~-aB=#`{8L< zwjT&sXv4%<Vyk^&)uwgxx<CGlI_YPxm9@YBe0<g3i>}kdTh`x+yd@T|s$T5y{RrpD zh%eRpN7;3&{3NzCN=$9~TKJ-v@ARpg$B(|z6W-CFnYlOgV{1|-<K@moPsK+b{aO+K zp0a!Bec0b)6*5UL{80#NpGM&two0oNE#DS$y_#$x)%?^^!a47;jM&t3-(ofiuXcXu zEhHwFx%XJ?686mh{|=e$DFGe4Qr5VhPhL+c6?De>#iL6?Vk~<fAIj>IIi6@F)h_7d zq3I&1I6eDm(dP#TV<hKJpMG=qVox>W&RNRRg&Uc^hbJ}gh3?l(`*o7H$a0z1l<Ezq zFR48?*?-e7N7?;7&)b8sIV<-Gd|dg1f3NJM3-b>o8kR|4*ki)M6t(n5HG}ehf5W@s z=U&`N*LtP%mi0+{LXrwoNWivd7N@gS-`)Ow*4$8N+S<wwq1~<eVtw7Gr)3?GfBYe# zd)W;gUe-3*gFP;Lgco{j`Sfnmqt7Qj?%kW_##aBPVdcTTD-W_o^DaL=l;7nM_geoj z%l*{vM|qxV*mej1p0G*I`;cL0{~7m0FD@Y`k*m7%Zko)#n9V6S^Q^DomLRh{8&CeA z!opJNI1T=NMbRJ6@ZZYVa<Js-RK~`}-AknmHt&$My*XW>O7PI65BChs+#-CH^X@%A zeZ_j&#y?iCf@B}<Fj3id$p3&^)Pb&(0+E;3`53G{^hZ;o_Mqk4=TF6r&t#>{KQ`y? zk4gTkEgCNFj0kW0yLHEd4cGb&W(c{TPd+Q?vrVPs>#dV*KTh^u6JDRT%Oz)4OJcEL z(A$pM)saT}la)JlC!H&^`{2;xy^>>g$9kL3%{3c8%(0y0`1}NOO!HJR7B%tYXGSfm z4|;{)=&!!^`<I!C^ZM#-sZw7jG5W+tuD`gnWxdvo?R8}`hu*q+{LKywZt8wspd~D+ z>Ctoin1oJzXC=3QVB3C<vQG_K2QFQ*Vl-4QXnCJ;|J0d3GcK>qU6(lZ!-u{5_We_v zypwnR688A5onPME{JeB}+@`1y|GMhnCGq=J^Y`!dF_KPt7U5Q(!DQ*BIwi&blHp{7 z!>(o?de^Vb4%^HT|Fc5+Pm0t!@9SGW|H)td;VSDjXFc;s-o9xw4?pn#cFJm>oRzoa z-T7Wqc0b%4)!Zbr=2mz7qYKODt^Bt&g~#vsgpfb&3=+EUkGP8|WjiI+X8tW~(VFO* zp0#yLUD0J8F_DIeD{thruoM^ko%VRD>ZG~K^H)9G^`va|(!DR2&At==`nFj7!Jshv ztdL0|i<dqrT>s|q(X+L0R(rm_Ea2r|%~^eR)z^J?ZWAB<KH(#__PUnRYmT!L&%`#a zZjE~X?1vZowEj7NZ|vn<ou)kF%anHiKk5>X(-kuml{n&$CLHz4vF_RXywI(+s5*SL z>5r}j7n-@g#PWG|N!R^U{r2y-@~v-&K<nK(8nv@8Zefo%4OH{HQ~Gvmu*w(rI^P3p z6L&nRSn0ua<iy<{=M(!>-=FeuU8VXfSL#oHsZqYIx&4c?z9Lb-mR^$<lh<ASC`sGx z$&`n)IF6RZ?>y(f?m6?b=nYkBO)kf5gc<{9C?#oSOlApRevSWFRE&<Zo1ED^mk_aK zvhF81UFJA_$vmTZAk1`=t7deKaYp>khp|Ur9i4IWRLg2MixB0HPZaE@PM9A4a@XqT z2g7}*o8ODLwf}$7O1H}|EN7ki(DUrC7I!;G)RKqGeQFlFEY~=y*nMrb=zKouKd1QQ zk|sXt-WnI0*ZDsqWQVHL#)%>GMC_vyizJkb+`<Yhx9*csjozqsfoX+W@)4Oc3LRVd zHPs7L<e!JG$ng5w>k$?6bH_uG_Lj@sODwnA)r!@BIJjzCs4D-ytm2PX_{{=;=vlJ! z#Z0)iaq0fv(={#YkM~4;(K;&r^hKW9<K;Su#d1duRYyk7Gd+8CS$%JRo2vf`{>0ko zM)khUs?j%g*RWNn8J(E*GM6`;^^}vLp-6qCI+uQW<2LP<a~a&%{v18Vvf-m|N>1J) zpZllx8hU4|SYMf6cdP9AT*c`JFIBx_pRIJbP4!Oc^eMevaZxSxrjsqq*tDM~6zNon zCr{wIYq3_{^!^`NrFBlBji&o!*L*FW@230Q<x0{Du5z)>j}6zncg+!h>B=Q^;&4<i zYp+Q_!OClsjh;Pv<8?;a*@Rg*XhO!zWmyxl{)joaY?eHKZn}|1?dP+XkN4ky30l}1 zU8r5N^t$x=U0NU3?=SNdo3PPG@Za)_OQdCQsPNoxE%ba*-}qG{eX-^K;-|$kijB33 zUDQ-frX=5elJodOX~(N0r?@gwMZF)q;@#LLAm#sfX7A*bYgYum&s*IzYeNi!o7}<1 z({2VYxGwt&6v~SEAKD=K!&vn8)(ajM`!2TZUSwe5wu{+p_WOO-IVUFQP8W{fxp|A_ zzDau`Dz5O|5xLb9sb1A~@@D7rXCJFYH&#!{QQ2;$&v`J;Lg|<-Z<Kru<L101?cbBP zNfoZ?h>bmJ_U`zGkeb8R;>#zP@+U6&?I^KXVB!{mX3;}0Kb>Cub*V;N2gj{ylVzz% z`yH(!u1a}Y-S26+;q4U}scY-BI$ZuUWNDso>VpGU&)eI(A7VVNUhEPf^<448W{ao& z_qRWe|JSv28k5rGrp1RpIvw<zc>Scm@Q)t~T3tL#qYQtP?_A&aZ|cc2Uk)3%_Ox!d z=`+)Fk(1o6WT7FW7QLNQ`{nJmIo(sucE&!?W(rg<NHGp;KRCb7o{5ot!n*u_PY$W3 zewIAP_kOZYSLbB)(<emoZx-EZUVn!r-ZM^T&Wy`@MAmRkxnw-2DgKzINNJRO?x9EO z8#XQHSQ?qlY5(&`61&=x)2Vm9O$%G-qj%jmJY{lnDEGU{r`nNyk2lE4l$<$q@T9~( zj=*b0{NazajeUMkaFV;@!!q}%C#UnNwbQqUJ?h*!p(9MJu<+&=j=6Ssk4dhTt9i<I z&1cKARjb#5PUrEPXLIw}@n?BIvJN&KmbLQHn3|W?k?+6lkfrsZvYg%{A0)0#U$b<p z#{}JqO$P-;o@}b$|5)AF<cjdgz$mVr^A9dN;jzv)>AnoJIp<Or%gFaKa|)kXzd!!Y zQ{vxNrJXNr7wGR75YchboB3KoXMVT9JiSu2Wk-^gXXXjVxT;*uw>0lpSjfV@{Pfew zS=nFp_QojHfX?%K_TyB7LFr2&gVe5+qlc=Luji!36a{bJe&)gdeN%ZeE>zhobANJe z^t~?q^(FVAnD0$Yv%`$OcIB(RKDgZ|zM(_nhRMPc?tUC<ElEj^war@B&+@NY7}b?A z@BR(ZK7Z}E1??wi%-5Xz*rx9J*X!(_S6L4<ufMhaMtV%f)?1;g!)$*(nJibMI%(3R zS$(qVS|aQ!GN1q7-p#jT*}C`o+AQ6-`P}DjeRcj?R&H$Q>b2LRwwArxzjf`kZMUMb zS8t7ay`qDg)saz^i%&p3N|04@ky1w&w`0J;qmxvf-Q-%H{5kKd(zZd!;{ofr@00!Q z^v&Pjy|d^0zUQ^)_dcKZ`&^zx?9VkWTRi?Byl>|dFKXAli9^5ls-|Y+`SwD6?lZHe zc-~6LJGX1?saZD<oxU@P`-Aj`8$8?g73+kUM!&VYbCczo_Ky8~cPei^pSED~JIxvv zmqSl4KPZ>5*>?Dt>4pG1$LfjF-m`YS=bCfgZGZgv4v)mD3jZm3uVsvmgtlM2BK1n! zZu7o-Uqw$ePcE$v-1oK3PD)!W|HgjiX{YyUecXKGYpuNPUn^~48<!7HSKKK(8}fDP zoUaSac1CFEa6VafzvXPj9OE^-Ey-E?zp@ksl&@`TeXigk$hh?Lk1|b<^$tJSBD$RX zW>)rx|4?SQm9r*GX5qc}@|VJS-Qq>X#oJq2X3U&9ao?&1zaKI8PgE{{x#7@V^Bc<6 z`zGZ~=i6Y!@GP#8vuu&2(?XHE5f`V-SFrxKQu59YzFiWBj|w~wow@9o(9XcxtniPo zR^Eua$#vUx`wrLT4}vE=Z*@x*;=R7=wStx%|MH7k>za?IAKagIazb{SkcMYl3kS#7 z*2C{Mh{onTP02O6_-?~f3z<C}iaY#0@3Q6BY>}_p^+MtM0->&)X;o*>ELgbj5&!F- z3)WB5x4*k<YcHQVxAwDTnHF(dB-i*K>Qa!%)c+N#F=d0wqWC{7n&J|bkKYx?&T@25 zo?$er`2NqU&tpW_h|lOYw|d{*V*31Hx{cUQ8McF>7k!0Tj)xzNk52rX+i~sT2H7xC z_Kh!iPbTmEb}eD$EGvgN!RQyS-Y3irUGe#!|E2IYjn%8%*2nGjh@aY?)L~#~7#=RV z=<=0Id}8z0?YPYLHb|hRR^IMJ%ey4MV{?CS+Eg_!lD;3KWuhfgTjz3dY5%>~ZChQJ z9aHu4))qJsGADAI+NYR_xrR?X9h$DXHM#9A$Pl{tJeIlp+Tlr)Kg3%tdG+#$7^67< zcE4tMF0GJ~uAjH`HXP(Go6opkW5+L!Nw0z)Pd(nM@~z{}>dO<Znr1uAGK-x%KYq#k zW7;}v9XHJ5|K(*E8PVQ7TjA_S#W=;YR~63Jd`;&#eaB9bTZd~0`<&+y7C-I<Uz;sv zeC>9M7W*f&HPdHGd1@uuo`{U!6IG%qaP0BJ)eqO776`lfewov!yn?ju(+7@4><IKe z&&q$?E9Rh__8rc?Qy<;sl1`^i%X4i%8CX*HdBVOdk6)`YFE49m=eMi>XY+FPrxPay zxm#D4yq<l=^5in{spmiRxMhl-`P}^d@`CfiGmfV5<yFf$iJv?ikh-*)Nh{Li?9EA% zUAe)*W*a?hMHgC5Kecf~(9bMu@hv~DPpIYcyK!)Tg@RO~jTwK*0t4>_Dva;uwl>^- zuqDdwUOM|}{sVoV3#<g+eNIW5C?x-;^?zr{%}UkDC#${|{rdI#aOs5~Szkr#BhIte zhQ`EP+Vs@w?z#2h7xvsz-6(e;R^^c7k9UkdC))TnO;Wm%!YH^cHIjeU=6iSc9GNX0 ztTR0~e07R#RNHTX?a_8y3z&7jw*4&>SUmN@p}Fr5_~zeee>dY!n8n>@>pfk`;msjz zdt)9H&kZU#*wipRZqwTPXWlMZ|3i68#ceaWSK0~1Wql>Dx2<$3=fAb0<eFj8f;&#H z0}D!-y+8iTW80#^BA9Y2olk8}(zI(nLH91La)~zxo->=9$+&aYzN!No{|H^%@WAV3 z)$u6F^BFsy9c&7@`Afua0~_zlP!9k05Z+z`u2m);JNX3b3R2i};<)Rzb$&YDkYrpa zIpI`vaE(%5?Bc^#z5ncLXZ_si=ve-G!C$Fo`yVm?Sg>9ozV_+W{rkK5w0qXIJj>d_ z^Zfb-g%1}q4c>6}v|l-`qw8EGk-T@o5~*w4UZ*zSyA#v&ODkOO_PWDMU!~fg2vYoM z^26$|m8z|ObG%8+(IV6J?o3A`Bv``>>hJg}uHM$roAk5dpZz}(?nf=JN(wj3vz4v? z^HD<npX|%kZ7drj_T=2$v@Uix7YkF(@!WNv98PZ7utCx|?Ll5zTH4uJrqWg=D`wB0 z?f7D~_w-30Hdeg3p&P5^$uIG4U0j8nUw-5K=EMTF2r)+km)!@|lr^fF)Nif4eE-=o z*RD*vQy(2GzZ|_>$hiFFns(om={Z?JAy#$~Uv{7PXIBw=v3_Y{Mz-9Odo9`O5BI;_ zP<Zw7)&pWUny>QRc*6SbUxA50pJu$q(hDDUHQByf5Mz<Uz2-N+jsAg~DIP0y`c3Ks z0?ri0^?qZydyf6rm&<?u|DIob*T?8md>z}|&GXcMox1#)?NUtpL<X)|{VVjERWF?q zo%ZA437r=~4Bih{DO+$j9CAB0_g;~S`J+`ywdL9xnu58fj7-Be?YrT4r0D)qCyP(- z+*|`0r*7OAlJRq)x2pPjCAOl2SrIF0G$r3MgjG9~u=y=o^QgEzbf&#Vv*PX>Jj$|< z&dv4NliMfP`}DB9O6}DN26cZbxVgFW^WPsj<WwWh)hev!vtrTxoF^wHZrr$0s8hwx zuI|o`!iY^3ACvyQ);_Yp@wR(^+4aQMb=PM|FBNNRb~?(OHotv)K>Sn(ra7}X<!WbS z%@R{F(Gr>E9l2_C5O<{7<jsc1Yd;(QcG7zIX7=+oi_|CcydFi(Z}(41T+Oqj$p71- zDCsOS)7i`)Ydf5`wk^9V{jK`IwY3S&pHA-l@{~#X+aWV~ivqDf>kqZE3&ihF3^6_M z=yJk7zIQK5sviCQee>9{u;}e>SI)*?n7{9m<?G5t>x+txJbQL++qOijHJ=M~7FR}0 z)!wkcxQJugufrd7Has}M%#_~vTe@dnpG@-JnM;DMaW9FnW}NdWHQuuP{MXpN`)LL8 zwv8)Stbf;>-@3WYG`&_)#HOYC#1{^Z;C&yGneIGJe^9mcLvQ-@!{%|*OV`Cz9=lZ3 zyYKSa3H!2gEJ|Jo#GPv87T5AFkoMlQXOGtAE#KeSo_3fwXHJi*Zqyb7j@qRkau+YY zToU>)@@JH#p=2u8-h}UhGelXPjTY!e-%883=a_R)bkl}!T*VA_##8UJ9@J(!G5LAu zjsIpWKH81e8kZI&yh@D-VNxxs6<zr3uvEsOvf9UPQZv@Et`?9D-<{y-&@GnzT47V{ z`d?o1Yo2%RW2&@!SogQY(nVwHMuC0(-@><^_bd3)xZnB7uT>IGktx47>W8qiYp3q* z=5hPp8oz&<_Rft3Qz|1W4RpniE!ek9^}KY={+w&OkDaO7Blb7;=88tX-~FjZH&?H> z@|*ol-v6KS%hhbno|DxcF6H5_e)g`ltu2XjT6R%IU7g*#J3EWhn=gdBx~l5$-&6Q1 zWNxeLz0+yGv=*G{GJn7qUHhQjLgJIey@ap>H<{MmD*i4s<=3e@bCwE)ZtZ%panmH} zix*aM#!OH*vH59Q(L2FW?$zpw8HIfN^qKtT&40M+(lM>L(CDbRwO?b>1-u`8&HZr8 z>_LfC_WYTV4Sw$yxi*&OWR|X5|K(uSzZcp^cij#Q%(Pl_*?5-W-&2dd$_tvd{xf*5 z)#F&J+NyHno6(%;GcPiuVt8L~OgSkdp*WwhD$Q<3Df_fHd4+smI2-tt6RkJdu?ls5 z<&x>SnDH}w?E(&2PM$rdC;#{Owd&x4<l}u6n#RWSQ!7rMIB`Ho=lYWmw$<MroSQdq z9^1n8GbBrPW#r_PKJUv5b2xC^d{S+C%1o#54c}YezdL*&r$U}9D6-)9-NgcRZdZP( zFWh<MiinTTJik+6U*106tt4^yN{Cw3L-89YCvhFx$+}^8J5P$_g<pziELi71J1o3q z%XUSnQ+<3PhCvB0vTd(R)U#}ucu+diYF*jOO9|ZFp_!RKOTW2)Spp4;lEqQmw?*y< zm~IrI)Ed6+z!K-F?>5LyV>xtwdt#2*mI<C*5e3yE(FP7z(x+Znvcl_H^NaT43kNy4 zxNmqhm$?PRXs{jE$&lrl?|Nc#fNdL3lI`wIsyY+z?)Yo9uI!x5{j#??r50a1zlb_A zHaav+4^pap_WZHgv>A(chsr*B^eC?4A*-~s^wuJ~*V-E+nnGsT{avw6tLC2En)55G zH>p2d?ebze_hd!YIWJd#d0mjeUXnFww%W1Jt9GgNWvQ?g7xf;wvuEa-X{)6ZPZujp zPIda8GNVlBo_4JK^RmkKTb;_cUgT5yaX)p@^@o%CR-Zj5W}d&V>|f3QUE8-<T@U}2 zU|au1H0fQ;{%yI}m2Z|tEO!^#z5ZONQF^YZ4oB0=?+=@EUhw$~&DgiAeo|?CdH$^I z_aVHm&w530T-$3=A#i~2%+BMD)nXBI+VsyI)Jmx}6cK(svx7I?a=lXNEAyvMMHSbJ z>+?N2e_y56^_P~B(WdI}?|y#|f8hNgGG6h`+rz#-YaTr=75;wbzG&L7X__}V{?BVU zAGF}R@DJ9!_sPGyPB-#;KYaTw<K3yW<bds4a*QtizqTQ2p4^Pttoch%D#r#Z@ag6< z-MN0D#mujE>Lhl3%MEkFt^AWWCmqc!E`B{_idAfBNB*x>T-QE(#oyg^H0*v^`Tli> ztwbl<H<yPB{8XNL+>Pzf6_yHpb~b~0uGCA5IXtRa-p(#K-na6Vw(;h!i2HxUcU16Q zTDOroSWoPr<CXCAhntN*yqAhtVmVjZ;I(k^!<}D0R5$dkE-madFxytO;;_roCF^<Q zcb#ep-aN6XrKM$E>~1!ekec<{UqtW8$*(?e_3Bjh<?A+V*x}5+`{ZQ)mrJ&BvM2m$ zG*XpLc<DJ~3YYDt2l^c)Z0^BfyGqPzez4sNJ!;VSXz7fgB{G^7S)#pMGeh^(H@#fF zXNiu)G``?~_`A)oGY*T+ykRQCl#%ne`KPPF0bZ+|G%fG#9=>NcZ;1&upBsKcL^XSY z%dZplOZl&9e-W*Zuutpxy}<EyY4r1zzt?cTPS_a}(RJg5!w)4%w<m|HKYS3G?0K{N zVUWh<@QD{ceOY+kC|>d4)yVrxCj5TSVdI&^e$O_J#csuVrw5Z0BKFBm%W!?(cIwx8 z{>?7yEv@Dr(V2WQuD<s463^eS{@$OOZu@feudCsrhfbVWk$Zcau)5!#0>{NJ_f0!W z&YnFhYmm^;-|wHA)c^c%xI(-h``z2c&r1YUEl-R8np)d-V)~MqGq~=4x@Zu0lOg)) z<u%Xzg}-hOER71x(A?`iEjAz^EMAqxuy$&(x%55XX8nNpqX$^GJUqqnMyhRt*}NZR zD|zfJkJ#MFu8QD(aa_KCYu46xA0Hp8`j`^>RWv{H{OW(&8ofpPD*}(7p376*-pPKI zTQqw;`+?&t4PJ28aFy?w;UkpZIK6$vQGcg}YkH<=y$uUW|GQ0B;o*(Oi@UoN1-^z# z`0zBTmVH>itt78vjlBYY_Wk<c<5#t=9pU8Ycz$*M(tq0bUTLfP`1&?Cua5r{bbID4 zq0W>$I|{SzOU>Cg$tyK~@7A^T_0w-1H(6(M+-XC|Mn19mEgv&4SjzK0ZWX<AP4CQ| zzZR|;ho+u9r6;d;VEQ2;E6bCYt!I0>tgUZaq~u|D{L9tHGjb~Q8-HJ#EnO^nZUL|U z!<(;+|7?84-E^RW_s5-!?K`~<jiMgDsMxqqCwJ?wF8(#oXYX^$+W%|S<0GBbrO|Ic zZN8AU_?JMUqKJa|-<jd22K@UPqJLXTGk#a;zx`4xCuqf~sv1iRo9=m4r>Yb?;$|@4 zeseP_YQ_4z9b$)1y2o@Y<Rvla6t<Yw)CpZ>eEmMvxj1@84NJ+q%jI7(zF&{OA7s9> z$unM3;M{zB`^ryGIyyL9uRU#QV*28?|M$Dy(&l*!mRCMIGgHyIjYrlhWb&#hGue(N zZB)9fFm1)VhOa!*W^1lY{J+uZa9+eOuR12-3&n+nD{~ilY=3=bW6)XV4PyW7IOUf* z9<PZ|{dL+qL(T2?OOq2P&+It!OI%IOKY3$7254YXulD)P@W`&V<B}7qJmn<n&&F*D z)Of<;ls8f17TdpvZ-1`2AIQ1<^c$_5T}yt?3hd&SeRXYl|7MpU{>$B0zKG6`Ja1mx z`r$)|OP{-o%Igj18miy;b?eUl<Y#F2;{31m0r9nZn|7&~=!$Tq`dxN9GfQOUOYIcf zeG|U^IK+FbD!oB&n!+uPOF}=7IGd+mEM2%kAkyBwq{KQW=gb;?t;R;{g|j#Jxw8o> zD)N8$W>I6&mY+WLOX%Lk_5c5^T=|MwQBza1nVml@M_ol_!PzTIv`jX5PuF{UX=(S& znUeb+n}I^ARI9fvwQuvmm)b{qB=4P_z24Vr)zu)W#-eKJ`Cr$#$km%Fidxw}ThrQf z>5ciZIV%G<&RVMbUx-WP&goAgi%%|Gv3|!B36b!w^(==b`QBl>_iMvfiO}7@*><yh zW_Fa%TQT{vtI47C^L8uTy;oleuSv7z{~GGqxh38I_{Yb#r4i4C`${M0?GO9b?x1u% zd~!g1YSHA@XG>4_%<}R%{c<%|ME{h^rM)rno&oWN;pN<|s!P}CmpzV=GJY-2(s(m! z$CNd{XSw&@`g%+{`saoP#xJ$^IVuRKsIR_X?CI%wO41=RGV<&!)78_rNp|f!bxNz| zrRr_Z$=|LntN&4^R=tCLwN0JufmbRuleq30?NnX1%wKoy%84!+XF~Hc&#J_vD++V* z|CzbZt6o8*%UgGCiu(56FH@z;TsJ+x+pqpbX`P(inT=awjI*ct|BZ@Ty6=(k>&g}D z7nGcA+h7p8j^)mM(PdL(*&{ZZt+228#KD$U5I<v<U8wuAW2#S&vuj@qzZ-2>tJ=T+ z(Yi{GR-vW)ZXJG`wPlTcQFmncZth*{Ej3=~-IMtLSN!y0Veen7?p@rR?q6cyKi6vN z<jKlYy*}D%Xk<J%&=}Eo->&LQ#;-3g7rXbX)rOkx*^{Sqnoq80T_NwIB2BlsiEHI+ zCNiy0EBbuaOLy(ejYnRV&fYY6)75w;#*TfTTKBDu^f-KWaZb$!gTsDb`Yom9b$<DY zl<<7}{LLrJB51+wjNZ4`4`i4MhyVKE7+Bgby?uFY_3k-ys-i0bed9mQ{QBogc+ko< z_4U&oo438*F#AzI!;42t;&#YQ`*HY*N`?B|-v`cw{F?GrEok|({T!{Ev^vg5ypK7v zOtNZM@ywH5Kb!p)1$TWsD7i@a_``(9DSxNBUnsGysf_skMo)9%x3{}XUj&%%bB&w0 z?-6I8oNZQ8(xPjz{i+dsOaJ~{HM!O!KD5o>{_g)n+|pT-r~Gzhk65_r++DK`pIbFg zUa)SSy;eq3V3t^+^6yoCm&0^sF8pO^E1PhY>7w?3gUP9Sg1$dJ)ih5uJkKwh-&*kb zZQ@Z$i<8fdBiD*vP29qE%k?(5&&_k+m~BfxyuWo+ZDv*V{Z-}AWNiOcbjmrw&tLW| zG`?Lu`)<Ye&8J1I4!xTE;Vg57d2e;JM$M}AEzfe^roH>a8hzXAt7vj<5!3864UL1$ zuJM0Z`jxm6Zz`|bZf>5Yt&=fl&HmX(-@LkQ?I7=6n|He`Qoh*RGu~9CrM<oW(@FK* z+uK~3yWj8VRjtXGk@#};l`DIm&yTmS+mqf~JF~p(u=&07cJCO)<$pX={BpMOyleKN zrxVu&UA!`R=lX5V{$ZwPM0wAJ$J_qxkUkSp`*~y0tc4fWY?yHR9K&hp4-ZWva(V0B z4vHS$8(V5ItD))DcZP30(KS+Eo-`agZl8B8=j`_Tau1uAhMv_w6@Be<SiEM<iauF$ zF%gm1OST<vU30x8oON|ltvvtYO$#TVu<PA;Z;#89fQDaM<?j`*{?ks`W%XJ=HjGdC zQDcmolii;=oPYl&JhA%m*Jw_D&Kmdh?^AW(OkLN$bVX6IWyy-t9bCFEwV7V7)+%^( zM7AV7C--nx*^d%=v%^nkR&&pDPpGo_a=z`M((jPs%TC3PC(V`RXBZ1>1)sgs_seVM zxmd;RI~Zf9a3A72d*tUG-z(t{4L)(@IMq(&I@wko{=zH%sp!G<IGtx%r&Ir$hJJcB zd(peQ<_k5S&EEG&_s5#`0lKqiu8rAc5)m%?tz7qUkfKfEZ1X=7hp%niR8m-#l-IOo z`i9DbZmrMMj-L7xo};xf*z(%%A5$)d|GXpo!$h|2=fUc02LHueOtr2pu6g_Xl-2ro zX)l+0*8h8%pSV#=QL%lydhZv}g^Dk=6Moh+`TB;>vyY!_al<t6!lieS?p_Kqx4G}% zZ~3PgBR`c-duEo!>SpGc-E7B>WgTwabf<6HqIl(q@?8zZ^IraF`RraR%Hn+ZK&7b8 z1c!~Q9vbZsY1%3;zh^pc?e^xUY-VnY?a$17tSt}`zjxLlVQ=qWtG-2S(~(dO3z?F4 zZC!K`TU0*F)gD>9f)5O5cCj3mFVvm#xOvswt6kRhFE4#s(|+gcwsZPt(i5Yak}j5e zPq?0Wr@`fi0mnX<^;*0^Qv9z2V-}X>X7dNWtWpZ;>g>FFYwPnLHOD;SKZ@;&a$LOe z<?2U|CM|TnYgKk<#;jFeZ)wGC%vqzgb&IyO%()$hzG#1_68i2`S=;)o<kOQ=O@=AY ze7Rg#2Sq+Q_;Ph?lhVR~B=uRZ+28+aTx`7N^1^_X?)BS_@pH_#ezWk}*~s{9;f;H% zZ}u3cKliS&hy{)MZ<zP|mzU18FYn%dxfXr9WYY0BNk)tRL{9xGf6nnj*$hdZ=BK|_ zExE(v7@4}p{bg!ijEc##Idd9r|6Z8!O{~(UX5rQoh7xI7V&!=%Yy3}NU%x|3ORMtl zSKYtAb}rbeUhBGoY2(I?$;bP0@9n9)>Y3>gpV_x$$(`wOn`Dhr((~4pSzdZ9XPjL9 z>D}f2?Fw1Oe<axc8XqWHt>LWk;KSFm<~pp?c22xe*1Toc$y=Mggmhk5Q?kcF<J+@i zI}S$W-&k%E)|>k<&7_^X>4xXO9||u@duMfYq%17B3d(pVk0_be9!<aYIVRpPu*C4> zjUA8nap$J)4>>kX@W1hkNKcWNn;e@jh@NUn^INp}jHS`!&2b8@%TIp0zT?!7yre}! z#tGNIMjo?KET8i`TX;>5%9{Q2d2P3C+FYgV8*jfcCvwBem#1D|m;d-DWWv5x<vbDw z4wIMEFIm6k&?47J-&rEFXH40#BjaO*Yx3<J<~6##_q^KOUq8GaY{2q0RFI`0QF@2( zS{J>bg$s_X@tnBQGxe9(GNTj)Q&UZ?txM;~e_v{<vx7}sdilOCzx35+v)8ruiaV}f z_59-EJ$$ln*!b?~iG5BLg!(W({v@ZIhCoF8&Y-j>+tdC!8P_h{EUa<;x>pN(_JeYJ ziJ6?XTnTdJ$7bEW68A(Yxtrfi)68^I$g=fke5b~rlu`SuW)hwz_LQ&if5m}o#}54Z z+^O?m)$GmtlGZuwOK9)xoI3TY<iGj6m%_jDH991ur%#_ZPjBk9m+#bSLz7oT85kR{ z3=_*~VUL#cX5<uE-}JN2Kub1C^pKc`&EcDzr`l6i?A<3dThF9Qj3GZQC?#*5gj#_G z^Ztm#^ZOMSPxEJKX13dtbFMi-_K!b{U=?4Rldow?NA~WrZ6{Cq|47RW{oMU&+E=!P z>qU&ktG?X$^Mo_p`|ctMB^$x;DC3TcoLmk5lM^HKc-nU#x19YdGCxVDxT5ah=1l!% zt$xy<TMi{H46q4L(Qew$^f011{qH;tgZSfO=dK;kab(@J`RH8h+x)Vx!t__iOx$O5 z<R9ozfVypK8DFec^X>Zn=3>&uZ<URyL3~z+vh06+5!~~MCC$0eZu`cSMuK6fh7xx! z{oJ{})X{h89Ge+arKca++Sd@Mp4ey`anfPgwOeg>i%Y)>zTRdO#alm@srI}2!mEFu zO#bWia22<>P-RAD=<oFvr>mMTgm+k%8|ms^ulatre(RNRBS~(tSt};}4xSfL@l4mO zbwleKgU*+$wIbI?TvObho*sHFnb~Luzwi!2^~5h)GsJnrr43#OzR|Hcn)0e-zLEEi zS7Jsp-*oHqZOhsD?qG9HvxV-G^{-?D0|T|g)^v1sYU=4N`==ed@QU*kUa69+XL6RV ze=p0+AF@Oyq%2RqDfa)t^74cS$uAU{HD&7jzjQNS)0sbAS35uL?3t99^=1j1BknQG zys#!<%Yz1qvJ?mIdWn6^|122edY|8OGcVgFfBL|OUuGQF>$x0OhP3%d2Vb6gy#M~Q z+baVuhu5U-UHC$~W%uu|YQAA_?$z#{_Sb3A>Nk468nOGYaNprS_<o^*3b&4m0At== z*UvVq6Ks|1CM)F~FB82cKg}^vY|AcgdG^C4TjO4{wLMW^bNhY@ueZpW>xK0bJ5q(e ze%h6(k=_Ps$a_9js0}?Gr&A*;KHX=|j_Ze#LOnX%xPL$En7Q<B*sp%)hf}0|_?sIg z6C!!ScXa#RIre-<49kjT618HN^K_o=GHZ4B@hJ%3RxI5*p;%vh+47At&5N%ccyB0h zQ{r9LmqhaxXYS~4POGEYH`iR){`akUyz*kv-`_qOo}MrZ)STt@h*t~<RNk#0@3+o( zf55gGm7%-6g%7tM)O4RwEaaBr=xuo8@XN|Mhr4&awCwqsCbTt%_k2hEfp<mk{;{5O zW8hrgttjv`(xOI!f!pjr5XisH&4xL81;2d-J_YQz7m@lEps?ZJ&*zWXN{T$<C+^Ey z@ym;IV}w!Gm37a~USH*UIIPXlI?*eW<C^V`&4OtQm!56-HrrLb#YwZ+Z>_%eoYbG6 zQjCI=PcHD|EIJ<c&3AhOhyCJ;d(H0o7XLJFUG;fU#(#|Ep!thq&z$29@0-8W$U@{W zQ_RKrf4?q~Q#QP^q2_1im)zJGr5`z&p7AebT3e4Yv*+bsKWAoWxZUjQo=vRJe%ask zYjnw;@t*&2(8IOr27X&Cr6bP=MRhtn3CT$dIuvn#iN}@tzvj+K^M(FjzLc<k!A*r% z43{R={LtjC`gw47b;8NSg8T}f^I9n@BLk<`6-pR=wYgUNJumF`w%6`GHzGqqk{p(I zd=ZuZGBxb!lJ!{)>i#>n-@kWl*VbM&q3oBE8L8}Ca@`99<R1O|$DFq(K%?%}YA%b` z{+{<cv#&oX+cJfH%XHp99iNj<TdB8tC>Sy8=pWpD{9(EHjSCI$Q*4rVD@C$c&$`q9 z&DkfmxBWzlk@jk1jdj=7KF;5C@YAoZ?Q6_+YFR(MTr}6}=J(gnCruCktorW4(yH|G zm$IyvdOy7PoFU1qEMJ&A)%NO+g)ih!`<_Ycw(y_%K__~5(+^eG2X~~-{Znl|q*I~D zxsRuzFvDTpbU(>F35WZI`6hc3_|N7Z{LA*jn%T>*???Ur;&=CIgWcR36X$AN3g=}@ z+E{UOQ)=w)GEokeAAPrDrpi8@_2z!U7tzn#HgR1%pL?$+cPn%2#g{&cf5LZ3ZIHH* zX<x6rV|~jZr>9j-F=3gHY*tS3_6pv3pvYMJVM4h1hkqRV&$o+8UU;X{Q_!~a;Dg%= z?`><=+>CGOn|-r#b^*gV)hl=X7w?#5e_#IS)mK*)|7_o4b^iW3{%g{6_Bpw@EsKg; zH`63D-qVwJ`P8-i?aN-zPtCO8s<wUjJwam8tke(<jWFBjPaVHD9qG5`D)UwN>n133 zj;Y)GLw))K{_G#0IiHwFY`R~`BmXAV=l>^zD+hV*K6*51W3p}3wit2g><Y%5CF`Yl zj`hpuCni38`!+TrqT{{O!h%CBoLlegSA41Ms()=o;BFnAu%ADVhVD(T5C5^J<m!dX z4|d1S%fH~aB}PNXsaxw;me~(KwwuP@>*OM;Q<-zj8jl+qO|Wg-$7!G?pcZ-fPl`uI zLV2tYTl9jROJz@IeZ6b=_gS(&f2WI8a+`UVwz~Sh@BA-3<6ky^ZCkNk;CTOiGqY{8 zOiwRQlT1BtlQ8R{SLU%(89R3IJ^OWVh0lwPkz0cIT?pNn@k#%KMc7x3^mNfj#XBE- zRI6UNva#@{!3};lxwfab6O#`sRHrd|^W|(4v$EWzD)H)A^(?dAvk{zJyRtjdd%lR~ zFTCn;aG`U1!GEM_o~+IF%$LK9{>Og$c>MR7GhuQT0<lN)Ry##r-+pLjEyKsv32_WH zUj+8~JhBogx+zdDVJ3Ze=FU^|3b(9#_Uz5kGdYe{Ik}9>>r<H+)}=P2vh;jv-Z}fg zu7gK*bg6E5uh#P=p?}Hqw~2uUHfxI6=RQ`MUtf3N$dOZr4>K&|d68TzW4rO5!&lKm zXWwddy;b%0yZWSTQbQ~6>!U#nIChk7xFNsneq!gH=<c2BF>#DL_A>px7ibm6wVo^T z{Sy`O@ap!4VD5?%Pp0de4=BkkV?DTh^~3Y01=3#BoEJR&X|vAvPsOhjT{%QVu20-C z%ly4c+=ac>`4TTGm1{%wCCqYeSij%1c*}~d{UvivGKJpBi+$@kv2fwSh^D7oZ|;Bi zQhP$VMg8Zqg360UrOoH9&zZl$WtohKCaaf267zqSLrum8X3SBd4Yt~QA09fi+V3n= zW@ptS+4uPemZ}Cvp6Q)Cmr>UL5Qq4W!}5Jnzg9Z$u6iO?Q#&Ox%En&VCPIQOTwe2% zyuF@`T}}JWom;nm*Ja+cMStH9rT>xnJAQF(Omvp8n;5=sjc3vOjlXYrcm6+cS+>sl z=q3}Bry`86IG5l2aNkrtz<;~y<1+s64($X*M&nHj+wFV!n(70WbS}J5pgBMMNZ8)| zRCXunZCwF#eZw6Kzka{(_$ShS%9p8(j7P6tSm<1uk!fA_rsH>dTAG%(k&)2`mebjr z>zl8HEBH^@k`bsdsr=@q2VCyLUP~^dDgP<{_42szgRPQcb6dVoPK;42nXJk4?5u2# zz=t2pWA^=+xm2`Z&RmAPw^Mf?Xp~H-WVhpM(Y$70&l_~5F6oq@8JFc-32&jV*EQ3Q zpR;3;JJ;`dGCBDAew#B)Apv1u@A8Ey2J~MPFwb9B{(j#|U+LK!44NhLueR^IB>b8; zDqb;ctyTAxbp@q|vbIE8ygn54i@Q)@x70riPWdH=qAfq{;(2oLYUAdF$*eKk9?Qj5 ziq)hZEBvN^K-sK3l*=>nf{x(6&+QxgHr!$7lX#I?GlRLF-8fY>;&@T$m8VG@8IwgX zH?A&d^o$oYY4l4I;$&gE6R%WxZEC~qh@`x{xY>WDSM3W*_*+$SFMPrDkcCHnU7MYH zG(>^hDEwgjK?8k}W2p|Godh&xBJ{qoSVSLKrnczi{|%CN(pncqzJ7R1ZRgC|KN3|b z2i?^ZuPDyg&pqeLtM6T@QK=2mv$tM3KXq-#twYnME@+e7F8@aFz}FCsmHSl{ijF)G z=l{(7aBJ?G&>vOV?9nqno_k!iFY9>U-K=XlXS3Jm?p(cJ^xT)U%u?(60RJ`SCAF<T zzQ=znIaa<lX=C2Bxi^$rg{n7LF&ZCEtP$ICvRyt^;c-#1#d-b%jtphKF2T<hY!aF! z*0pcea)Izq=T^_(yx_3rj}JOJ+uH2q9VaEuwOYyZ=l!82&N{pa#nEYuLPf8)Fjkxt z)8l#avn1hCcrVwI^;v9R`X`+D{QURy?T6WuXKdUXzl-m1;D<X*^}i3Ua5wm7_@zkD zbKbG7>-yU_e^&S*uJ=r0`tK`33uVu>zMOgCBj1f5hb_J|Eq>q?Db3_uw(+B>>FKhk zg3-(Kx2Q)S<F5a^^Q+FW%s>N~zEsVpU$wS>>V8nf<(=~PaN!H(q|-MOn5}Z!-q%K~ z2%X!@9g_NU=_b=`r=Fg$nolR|o~|lpTebejnO|%R)(cduR@nOg&*gaS&enf?UfinZ z92YR3`Pe)$bAt`H&Ky@o|H%DIB_<tyaH;Cuh37F3?oTLw|MF+c37w2z4Ewkm3jH=* z*>EY&b*XXi=S|AWcDttOg)b0$sh4%`qh)c;$3r)7x0^RS=YF}mjd5=u|D(4bH*&?q z#!6pWSzNNGqvYQ!ZT)pQ3W0jZo%pUz{pP>i`IVMg^|S2;60?s4JrW7scqvlRBE2Ei zD*9;7mBJs{%73&QjT9GZBwy(Gc`W?aszXU;3pux5OOMkr-?WIG(^XtcUMI3<*3}2a z?JqaFSKfN5w~^&ts&fXD@Pu#Tkz4^&in$hd>6b+P&TEg{x8bpsG~<+yYI6TSK0eeb z{Qc3?sC|D-q!OEVY@ML#bxonOWZn8NR(3ZSBKBuqX5Evx@BhDyjmKWITexkQxgm4u zJr~9&>swv_efXO>W6r^|wbK?ZRl4S_XerK?<}6=d@!w=k3~PO=lht{DK_QvUzOrY% zZ+rf&H9w?Zr}Jw|Tt|FJNK=`F?26pmdeZNhm)gAcjK8XUVb;p2Ci(aN9Ok$0>FvF` zN2n`*JujbJkD2-Qy6<=AX7RsU-|yr<J$>0T7MY?3)_)%yb-ufcPTR)OWVE1C?2j17 z<HHaALsG>T`eZFTVY2K_-M7n&T2J~%EdTqAL#_SZ_mr8-0ys291o!z|+rYy)S7zof zsXg6q4bt9kzV5;QZ0i19qPKFBWRp%U{?K~%NBqi!+oGJ}lU`+{P1wf4x9|GG=GfI? zuPb(JNI3folzQ4O)-P??{kt^y@>KcSCo2=%)6*Ea%{T4-u;z({Oi|1J=7b=P@5=*D zgdY2q#BsK5-OUTiQfc#>&cA&iZz3MbJ-ezT?o;=SV)N_ryYdsu4jf`rlW$Bee`Wl` zSbOz{z2D2YS+2G7-EC=OdbNL5`IP=00^LX1`D9+)-@pIa)PTCSs6*%V`C?<`=Nt9E zKTv(<#~gnhQ?Ciz<)-~O82``Um}3chukI=x^^3vLJ>P<uwsRje6}Cz_d^|ldi^JzL zi#mJ6%3GCF!;hFm-+#MCex=z2kC`vJJQ&~K-td*{b$WDBo8+1IwKG<R)Yg8LKl3HE zxIV091N-rF9vnN4JNa%pYV&H|szXa-w`d5&-kPXfuBswYFzHy<<Mlrd|7u&ZUVxGD z<JsBkYu|3w{XVt%Z|I}w{AZmSvb{bY&f+h1cFb$J_`i#fyEUoCvOCYi`}eYxfDi`n z%?n-%OHAfE{wHAxf5gItD-4!rIO)BXbUXgml|3W-yin<)?8l;~9|?T%ax0N}EVnu4 z_2$13MfSow%iH8`>cm^f9j`k5TD<&S%C|Q!JNT~5H2yAqDY^BFDF4^c!oorikB*r$ zXNG;%FlJx0Ff4`dh|pEpHa=OaoErvbzvqYi;xa6F@GWq0*-A-O6G!`b6=6br>DLbY zNthwTA}n9D+-S#rqXS0Vzn&j@;`5^Cw&VpJX*c%+`8%5J-?*Kw5zkv4*0JpC&aVa9 zlk@((DtsMwEIL2e*fe%$-rb#(s(QYz7p^@jf6d&Wmh}_o^1HiotN#7`x^UrDeWx1p z?xh!ER!`cjCD5lhQU9=?y+rBc=!xg{&Sw?-ajH$O@<S@$m(xkbao6s%@?S|ve`ub) zO`)$UtZ_p7nT<}N$tv@;Hfc!w<8AC@pWpk>{Puw`ySasP*0%S}dhQm*YpY<RvU)=4 zq-0g;Ly5ci_w0QfdE9gxqqj?VWLm<!9pMKLeh-LTxX)?o)dM;bFIQJh2@PEwzCJE0 zw1chq<)x*uyGk5|dqKn7tE_qCY$9fgI8FX5J$s*3jm0w0$)fE1(@t7v)%Ni&S~_Lj z$rz?dx*PJ?b9NlE+T<3;{@O<1>4D>x26pmmx)lPLUS3aNoptl_hO<)t_OPTbJK$q| z?AX_D_m|w>|0{2G=<0K`W=DU2vGM1nrAyd8^ovZprVw%e!xzyF9-EsU9xk6Tb8Sgs z=L)k&wdXv|9?T1_N?M}umFc_bh8J2n&e!fY?^P|>&asCpLj9`yP6Hi&CcOjsEA}ml ztpEC{_Q9%Yo)Yx}TZ6yr=DhrT{OP8|g_VxFTi)5cwvv8u%<c6Q<sU1$t9EYaG!W)9 zxc)}mKBA)QX>Z`Z50B5+y;=Q{Jz<CSWPji5(=BC=igIa*MAdy1{ZsOnNxx-n?u^dP zt1}GW-MsmzE&aGh{KtTJ)7)DkYajjm{B{1X#epxiRemp@|IS_AJT`Tc%%pv-x_<;e z<ZO4@(SPoZ-3>W@_vVC0nm@kiRoJn-*SI0TW<R&(yZ@nT#RpA~v{;xzUfWMUpmXnA zcFFtj<_Qzn_f}gky!!X``Ua*tww9NU@gLj2@&?6gy8K?he_nvgp77duRr|zZ&#+ZL z+=M1n9Juy%!xOF>i;r+M=C5xIwW(O*q_L0vfO~p^mr_e*!)dmNsJfJb`@YBi9;lYu z8myJPbNL~mnaXL^jce_{_L|q!OkfS#_mXXWPUE_B=i`0|a(~pm!&vU@om$@L8*4eA zqjTqh=bZ`~EB5_(q!7oqWT%T#?u2DMUqt0w#PV-nTk%Cy$<%bcuk>vF{WdG2b|@|J z5f^)8=5qTmm&uZF1&@mpTW4vB)a_t2<A1Q9yFlV-sKK0ouZb5MWp~YXwev_VIUU}0 zyq_DiWOCLW$L4MBZp+MUyrXmfY1=JW_)43#?Cq{=TVB5U|M$G5me$&?y8$a~w(s)^ z^5r{{w;|K^PjT}})pqVroH{3JYZN~^AIz84aoa4w|B9PyPThekx2CuAD%{z4uHavd z)AMuRbfeaM{gicL@6RRcIhL$HRWa-Lq7Ogcz5JPTbajrQw9br|(P`VAG(NQLU9tFE zlLqUfNe|;xTv!enmfz@V{Z|l@+wkCo?z01IcNSN#N)i#Do^!KkW$x{-8AaRkdMB7! zNUmD`b*^XpRR;6?W&6L~5?fdxnzi=Sx06~aAD>_Do2u#3xm9}3#0TvO*CRPP8c(<j zNV8wx-gH*WZ1azdpGymrf+7;GW}N>O>DJXg!DGp_Yw5l|YuNb9t`;0)1W(4aG0yZc zD}9yNcp$3uXxa1AsY2G;h3t8GOxatucTHDbW5-~v=hQK4hm-cDD&_7})sTuq{PKO3 zUqjuM7mMDn{T}aiYBJkTbI<sXT&=A~jngW^H#&(Oddijj_vn*NeGDS8jRoa5lDJP# zIdY$~Z{>uTeQh&%ww<}QVD8rmD<;qH=sjEU`)%&AV`2aQ6nlMMlCoqyhZVcLn}F29 zeN2^ej=i|}?(MCcTE=~g82?@A{+cxP`}Pa>)SR7^Y#i=yOY)98)5f~n^0VHKDf|}I z-wsYtT=!#!wDq;ezrMQj-n$gGdi{?Bzm6?fFLJ2v?XBX9_r5cWG|aa*y@^l_npXOG zt!%(T0S9?4{-XDX-bM?kHgg?nmwUFsrgVL-@*`spl_2Ta0SgO6tAfP!RLmyT`~F%L zXOMGaL;1Z*_sqcT{g<>~YTtcyZ7q-TVo{}wn@tWywq7{expPreWvs@TeP7dro7OGA z6dTW$e(sLEX_mO%-Cy6!IeGTn_Rv|IcfDM#HndvCMj|(J=d-EdX7M{G1^v6t?Wr^O z_o3jZ@Y&PO8~rLPU3WQkVkNgoh(~d9^6H<T|4N_f5xo??hqX)l>5|M#;eU>Z$IHCA zmOD8@m3PIV8~+3swC>nscf3vFo6AMr|7$KQC@9oD@mRLz*Vp2o@ApS!KJNITUVAk9 z$Whz6&%P5K5^7(Cuzs8<eMqvkKWlTIgWmCHU-rIW_!!wc_x;M1m6w;xhwcaz6g=7c z_Wk62tI9*t0zKoe>MvS+`NETbKbP;%diabZEoZJtge-UN8}as==l-`{uszq{ReHQ{ z^@^1jZajL-Gj-}3!?VjT75r0pxw?w+xTjn1t*Z;0?>;VSuGIK%|2c{Cyz8vF{3R#c zsx~aqo0!=<>;2KAs?z53^6%B;zP@IrrzhApPkzQ1(Z(-R^AfYA+makiFUUR--rjrt zz^Ba<qJK7}1-{HFS+G-gwwZ^A&zZl^=LhHBUT1C;WmvZ--N9kcnvZ8gmj5XGcYo>H zsI}6@$M*hVnC5co+FzIWm*V@grfof?lMu|Rn{(sW%U-ddm2VC-zKGj9r>A#q+IhQ= zI|Pr<pSVwH!oF390``2rm-i)W^QL(-Ildego0r6y8<n5(`rPz>wGSOhnp5KMvz5!4 zznbl?G_k7s{w$Ns`JJ7io71xE{@>NtTlaCE;HB_C$5#e_pI4pt^}@nDQ7@+H+C5+M zcZJ%#YH$6_6uCWgcCWyn1rzT*d0{SVDfIc*>*x!*vgUc`w`TV*C~W>Bn(z3y+2&(b z^tPCGCC9b()-O4uryVNM-SdROUM4+T+u!z-QOCX)2mai7-{+Xz^(bWfM)SNS|GtJF z@YcVn)y6b;uD)&Mp@~bE{%rnp{Ajml?yVbpzTKMkq>JhDdb^~bmnJ?C=G(w}d3$W@ zX8xO(%zj+VFfHC8#%g}4p{&HUU#|D<{rSEB`sLoriA`f*xfK4VLeA2{;>+9H;Tj@A zHP-wO9~a*~awO~5m&H$&H@;8Z{54{?m2>-9gEMn|MPme+j=wWG=5n?|dhzaEDJNIX zvz5Jg?2&WUIhpvP1Z~h*du{Ty@QxWXzVykOm%ZMmX}o#CpY1zka(42_zfJGvlv-c8 z>&$)W+Xuf&oj!7j<6xnX`S#U&t1J~?->)ryKGXPn=bI(#e>B(s|2zE||0kL1@AnLh zq719Qb#gJcOMTuX?&_*~@Zfhb9gYLf1*L9;t-ZETz}2<usmoifFQW4!@1OW8`sm-^ zoDzXHp2ARGo)r#J9uLy2PG7iZq3e*9b#GN@`t7aBcdtxVduv@k@7EfS_>X*VZ*7g< zmUDBm`kLs-#Mtic?zeB=Y|Fpz_p8gkpwxBQ8VAL|$2Z<IH9gvzeg5qH_xZ`fyRxsF z+V9_yeO<1wZD-E0X7-!6x5fT@GWqY>S!)ko{`9C@y6)G@8T;#Nl24pmBMh1koV>5; zQsW`J+BuUa6}@~H+8Ux|U1{`g^Lf4*v(|}lg`b`CQdoGh-}2TkqV|dc99-P<t32J@ z+%nP%mF?~K2QT+qvc97A>}>r7(|&yRug?uOTWGzf=I6_AZ{J=}+WYC$Gcnz3Nw!_n zckTowM~&NkGM$xQH2Syy-@C*`N^<6|)YD7X@3*_Na<c8VJ2!5;np=M7LgU^dRadXo zVc9F!|2R{1DV*!bv9vvZKDq6=UD%wL;8OD^S$nndTx;WB`~UqC+tMET{k@<^{8ei< zez}?_Cj^g{-QJcP8ykD^gO#P_Le^{Bv^GZc_!VAX7yB`y=6G)3YLj&qIyyPWdL(zu zo;fpebK2RqN6Gij_I?T7D&##eMZt7ym2OB(Owo%AXAP6@e4LPW_S&B>mkmt<mWF$M z`jB|;=VwknzK6lfWSorGO^BAYy5T!xgZR-K7Z-0_aq3mzb`deL_`S0pJuCZqJ>H*3 z^3km=FSBywULAI9-gbWe`~I`am!qU1p&q1UXt>>9{<&Fh&bhhOH!}R0e$~!4i*<Ok zn6={F&a1|0747Znr&68-P26Y1AY)zTBUxft`YI$<qOFKg_N*an*FgT3t3UKaxYT`S z1l&CLLs;3pucx<ns)x$Qj~^c&>peW_Xt(&}eXFGG?6%LZuiM*tbd`MFhjj(Mye>tb zCfEPBUEASvK>fzKxz|5^ULE<+R8jHygM%-Qb~hjE`+DG)Xc2e)(_Zs!ix>{yvawM* zKd-i7k@xfDf}J~KN=jy}e?NC^wDPmF)|Pp9=B<mB4G>OZ{;)S(fBE|Tb~)M7Wxu}s zZE~~L4!ZuU>--w^+NE4yl-v04H@Z0d*HB)(VB(+bDgJ?hnXj+SJ^Vi}Cnq&++o#9< z-{0PscNJ^+GWDU7s%q+u4T&$J_#_Mz)YRNoC-ci%wM;L1c&PQ1(4AvK`ugin>Ac-r z{XIm*(P-M1jEhZQLbnF6l$E_XVKtYHzf81Kue$2qjcso~9qWC*cJ2APe?J+8g|$n* z)cyNek&@zjP1fb{v?)`nA03fhQ}E1Ze);{oKM!$BPjT+bcy)XG_Ug~R7un@27JQm% zef|8YS3Ps@R))CmE|0e_d7-A|U=#N9)3<%CZH34CR`>OZ=jJ&5|M^_x+RvNm>~1|b ze(wKoxtcF5X>)w-RYBgDhguu+^1{#0_dju3d(r8&{Ltuk_Ushd+3b^f_ZC~^wT9q{ z%a=c|uDtu_>Ga245)I3I!xx+0*!S0~HCU5#$$BY%HQ!k+(~Wd=d?JOUq`Fii)}4I# z^XJbU#m~>p^^DKt=ya)i;&JB1#dlt{NtrvJ9ThkK^8S6(H4F3b<C60~eeO<5HvaSX z@x?p3(PB2))A+e8r^MC%ve^G+Qtsxo><ec@wk<g{edo^7)nTtM6!A$YNLgP?eigFp zY(U}L+v1{9zYG)=+5Zd1UfXp&ye8T9<!Y{p)299Z``v%~CFk$2ZfuO^mrK!ZKWX7t z^uNyR6GyCW$)>b3ALJ~H!oR<p&BlAnF7=dRNyN6Coh?tEM)ON-`~UE;Ov$NdXFh^D z++5BdPifDt|9$rRlam%3Bb=_!{UXYEabvRko+&eD&O9}#r-w)9V39B1{mtq8@7}z8 z>G{hmIwie3@XwX%9`jkJ7A+FW@$ot}`N@;?^;fR!QTMmF<i{HXnvqzte$|1WpE;9{ z?bx2P(@)VgYD+{npWp3muR~=e|5y|#Ob+E1V_BdgZJHH+eI1{gn*Uw-k^;NGCI4St zRaE!8v$I@(b>CYz&rTD&e;fPH=W4Gu7FK)XS|4yxYf6*-p9gOr3U=0s#ioL0pLU(9 zP!{0Wpw;QJ=+Z%@gF?l{pR@XVySu9&wu<NE<Xk!B88683>jG%i;!ADcnwdvj%$oL> zz1?}g?z8L0E!o$%HZ=Tr@nXv<t92I-?krX>zQ0dHBzDD)DUUxnDRyuC^XYVRw>W$5 zU8#q!tK9=Vb(v3m{4htRFeF6EtmyPK@B06;EmiCD@2~w)+;u<qYSvwL`3jv_sW)$H zxowShEnBi)YSq4~uUEsx_2YW3FN)L2O-V`l{_gJg_xI!fX<rIwX`1&%G(Xb+*D5}R zsi)*@PJH{^y?HzTe9Oz}Pfo<nwZ5(Wd&dV=fr#=K3GJ6&|NUNG|L<pG{(f7d>}lu! z{QT!VZBEp_KU+Sv%0EAA-5LLoZ+>mrgT3F&7I$RbzsJWP9+sN5Ym>J)`=8GF^>*(b z2)uhQKYzjmXJH1<cvGR;)^J8$-CMWU#qQRN*q~rzv**_A{WXW4&*~LXQBir&&&I+M z@?))2{6pwS<jYlp99NlUE=u8@<l!6taoSg|TGut}t36bLLhPQOv%Rxj|J22gN~f0J z-0WZT^Xb8j$+m6$_YD&oR+Q(fPf66@zbEkLq5g=D_+E*PpAYkY_nBAo;(EOQpWp8@ z)t7hw{=Rv~sUt`3u*pow7g(cS8`?j^s&v(=;GH!;Ki%6~y|{9Yb@{rmuU8Z<nVOrI zA825-v$I>pwr9^iCI4v-7dq7;%Tm9_3vyVc*uK=ZTd-oqiR;(Jbw7MQZy(=0^~9FB zD|IJ&9P5={{tdJ?Z6P11S>XSx%R!;`szE?NK*O_luh;L-ySS+J(1CC7@87?5E9$n7 z#ezwh0XkyZM!ZR#ulStX`DD#<W+X}bR&70fdeS~6fiDZ!gKJ3^rkAVR7`ODEx^lLx ztnB;y`|ArsGZLoj#ok)#EpBXVTys2EC-83KhX)5Ua;Exeztm=07>8{CgLm)jGB2ro zv8w+5E;lu`^!K;ie_MLLh&C>O7FbFG9`U9sPo6%NwJ1pV^yK8UY18ue{e0HOD=j1> z<Pk5(!5aix#JOZW2g{{!UgqcL<_71SNZIt^!w1XaXESEadgN+oWTaH<s$k*)DFML- z@;vy-&&TJ+e0!lYd#Z)Y?y|RO=jZwU>T<}K0I4=y6(;P<GWg}yd2X)t`Pt_BCMHwV zPnLr6Q`M#LJ*l=YwV4{fgf?Fcx2^i}<M;dh%1TN<u9+dFYH;u-d=bsR?e?q7;lkv7 zk8*=S+QA)Y4i@Jt;WcbvLqr?Dh&DR>>Vl9C;COL`kP5Y~)22Bn)VeANc*F~WJiBB) zgyewu7ecaJ3TI&gn*vf=3vxQh!xKPFdysD@?gNp6uei}>t7VR77A2IGZA+RM337Pi zOYPbX^B~Sx(Dm{0@#u(%it1`{F|kLx12pCsBsQtB*Zu$dy{j}0<dL?epbbSJt6yq2 z3AOXd9(ui_;Gt70XI^sW^y%SO*?;}~S^DnI&V65|u3o+R-?`3*VSee$9-79<|MK!* zbA9{1MYsFU`7BPdeW~qye2M4e4_0lht(x9W&dwWIPOrAmGB^MJbb34=2geHi+OHpv z%fEg<M<VZONt#sL<F5<Xe>qZB`&xU~-xp_0w60CwXH-)1=7!+<<g~P9n^csQnY}mc z=~`U(>!o_@LG@bKV_oNZ4!+d3-8k=ysNm#tJRk=%H8QMU?4lGn?Sa{}8M9}Hmw6;4 zDD2w!;>@IdO3AM2#{|AkofqN%tE<B^z3q$W!ei6S^!3*lKR>7LHz%NG&6!JDr|wrg z?iKvyINL1O?FDaJwB_8HZPzPQ0{6bw=8e3+F4j89R&esUo^=uazfNtq;KFJut@-2W z^!R1IvzLV>{=9o3z+6#)!|Kqg(A7WA|61tWerc+bKuK$S{okoB-Hy(;J;Ifh7oW;w zyLy+4i))<_2a7Btr|TMZfsU^%%uc=OS>bO_3URO`*)}>Tn51bK^L8Cga$V-A6Zra@ zyjhM!WE4|lg#Q|K0S*@4Mz%7@Af=(P@!|42$AqrRvhmCH9NXq3y_!o_Z_C1KHfO~@ zad30bHcV!F*Y<yD<mR*+Ip*fuqpq!d`|npqL2vZB>zmgy*v)nCmAbmfwR@TG>^?c$ zTi36Lhfm$TdpBr1!`i5=Muvt5%kO;q@L|O+!=RNS{t3Uoy)_kNF#WN4*7fyor(Rw4 z^j2J0(%yZM>%$)jzwZ2Mm1ujgKsHfUZ%g3gUmLegRCYgh?3kCzq#r+i6h1zdc=FNF z?(CasYrkE0Z~j@iP0-BDY}vA9etv!)Kacmz*Z=$ZJoHaX*wn|u@~aPl_LY5j^1wPT znR8lrS;zkU_4oJHw)4xcOJwifRv)(d*VbK|Zf%RXecEfyb@SI>y=szdH_qc<qkhHk z%a#jny|0h2e|LBH@;@^`8#P~~TwUe|wzaZ)TmGFLjdsgk{o|LnTk}SJ%UT(Krn=el z=B?8?n5&a{b5m;S+xIs&Kd=A)mwgs*!qo>US)u#G!oyb2+PZhmk*eCwaqEw$UlV@) z^FWo;U1xvp+$)>vR6l+GT$sK`Iy-oI*zebi5ALzOy*d5-vHbNhI~VmwKV3RKZq<cL z+p@2(+cZBwt>n^?A6KBJZeugeu8Zva`YUa3T&MpU^=qFSzqagZpC@)}Me1L#H#ax4 zmw)^6WsUFLsJH9;**<^E`Tp`U`~JNZA0O=~d_1rEou#+;>F@Wd^;J|{)Tb_9o|%|v zSorA3jvYHDO`7!MN5!4ITU%Z}Jlww8ws)4q{97?Ar6jhmTA#z4b?wh4q1Ru}R_zs< zAK|~|IrD4IQhr<AErGLtO?7D7_u&w?nVH$vHNmU@e!ZA*Z(gp++8=MN-|s2@`s(VV zM~^x>I^=AtX3Uy3&$c>Dy|=%!Gtf8EGUddC8#f|+^Spg~{Bze$*>-I0E$!90XQN_~ zlSfU0ZR7u6UWZ%Fvi#dmoH+6B?(X;Z_wVo1U2Z3J=Jw{?q@<?%t9Gr+VAP7f=6L(m z;X{X_wq}`De0cEUMTW`az`(%#{eR7-wY0ZOPg{ER$*HW+&D*9=jX0lP8~XOGBP94( zYMt+M=U&-Y$0{Tww5#l`lz_m3$$F2hB;?oZI%v8s=5VTSR*d~E+dpBYWyOh!iqlMT zZ*BQD_517V{QF&vSL-+?cdO>_`?<{TP3YYok&KGet*atIX^eeeAAeR+wZQAnucha! znB*5MZ#Bz`u|J{Az|JG_;PK<dRod5<`PClZ9)3IF-n_Sh%5D#~uj;nY&{?~5Y3f^T zb5qmM&n6e=9~Ck-HlBN9^(_{a?2J1m`!_{hUGp|o^%}GO<J+ctY&*Ulsj}NJFW~!y z?@rRUuJs?0G0&TGYkQXc!PS3wW|_>`o__n{MZx`Fzkd&(#=^>)c(Pr-F5>s8-KDR? z7OI0TG@To9=++z`-&faPow{~R*L1-j9^R>6t5oea&WkwDeogol>#w*B=heUJ|9o`! z71_5fcU@V1t@(`k>AP2~c(Hc-Jy6q5SxM=_**!Hsi_Xupoo$*eCMg;D`_$b#cQ$P8 z^5EGLm668IC)1%C`rLWluld)WZOV$?zb!m$^|b4|m#SX7uKKa_>yfHU;l0AUqB5M- zzh>WPUX?q0_1*aUyw9HB3@d3nKOfxFU$$)7dHer={{OxI|L(3*@9?R=fBfi?v)vWC zI_%i7V?X+CAMcaBd?YCJn}2q3<kq$Ex3yP?p2o<5OpOi-0vs%4Pyxvw6cbNuNIdM; zBXLop&RkVB_0f?|oBhi~<@(MZJ0=|8@x!G?$*$4iLRZ+=AI_r7da@bzN8dYE_UcOJ z?QOY#_Ah(Ne}7l0w%I%#UBUSs{zudWINFlZq+h*XmH6hy#{B(%w>kcK%EkZw`g-|) ztdF>1YEsfFlhO_!KD?2akB_e{JIy@jMnkK(UW~#ifsdU(Txysa1LWNM<=)=hynN@* zpAQZ;i+XQdUF4N3vhUA=J)2l0+t>B3T)Fa7w7mTM#KUcgXW!o59>23_sgIg={S+qq zKOdY^zc$x2f(qNnQ;pI;HrCiiSR@=^Xmn`U_weoQ?W?y*%=)u#)01asXGbh=Z9RHo zqO!1%kdl(pukY{s>$6TwP%M9cFEsnPyL|1E4E0?VtKNnjmaqTQXxiS|x>C%p?$3|s z^XuPTSjar@uy}k;;i)N_>F4GI*3F(Z%PRYt&Yx>%&hVUn9v)v?`t42R)9s;iUU9um zx$3+2*R%kJdRgx0XJ@<fC_NJX*!hEnY2hCG)TAV%f(HkdELk#T%9Qu}ey_7xuC>Mf zY59+r%jX*z8;kPI+H~jiX>T1d{rG({+s*Uut?A5P8YU+$etl16u`BoF$&=Z6rLHV; z<<<$gEnlx>Z-4*XIlk@oe?A<R`cX3VufFTq*=D(ia<^>Bi1@I0?_S%w5Z<8BEuVYM z?^XQx@Nltv|AiM@v#x3x8g4vf_F(^k!yn~WitYRV?>E<dvDg0I-m`5gH*K=bNVYD2 zcV}g=`j#_Cj~@LI{eJKFdAD3I{s{@c8{(VC$zoTyLEt~f#12pzcqGihVp{X*q`Jqn z1q&38x~CNOp3U*`@k!nP>B&jqI}7vg?=v+h4_@vUnyZ-i;5ew9ITY{j?|(dZi=vgu z<`>5vm6erkdv$!x8l5|NH#aSfvc5Psq{gQFolM;v>+-zT+>G1XbnBucB349o*jb3l z+1JH<6x3b2$<{di+>y7=?R=W$ef|CGKg4Ggty-P8N^LvKq6G^WxaZgZt5gz%B|*_o zw(9EcQ>{&nH>;|uhDw_+42WPZ{{E<2f7Lbt^AC@`_4h8>W^Yx#LwBmzYF^6=*Uo5V zt$VXL%KD;|w%sD_F8S*3?_v|B&zw2)Av$Mm*1|*it~?S341Wu2QZ)8w-QQ<BEj=wQ ztH^h??bT58(8<wEjnk#MKVEcDfyKNdubP@#R?Yg2GecKfs;aWi^(`sx>FLqpS$E;W zot0Yy5<Pr<eNFS@bkDA7lNbG{p0#1ah7}ulyXIbPQoT^{_SV+yGcydk@^y7}r_Nip zXvrq_ncJ4{dbKR8$Xi37#ZJG&1(b6I=Q}8byggPV6E5i~YPN923J>RI%bFhrIwGAe z6&=rx?L3y3vv+o6j!>OQ_t9B%zM19Tnj)_j@aW=V_sh%ukIUZLn!Q}(V6WDlh+O~D ztG-vCObghxeTOkpJg?~8>F(k(<$1{GXJ@C%^!N2$yO5w&bx3sDk{vsC{IT<$Z5H}v zm-78kX7yEkhdFq7))??O7aOmB_&zH;ZMpC4Hu=!y-(vRF><nKYC%P^1!GXpd#YIJ% zZk<m}NzvH$`O~Kl%2iXkmfz;L|Fb}>tx^2Z)$sVMA40OPf>NDJQj(I`BY8z3L1?M5 zfbHm<iH^-|icf=sgO~fv44N05e7x`IB;VO)3!iVwxoO0E_DusL^M(s2PjdDLop~2{ zJN?6hgAqbPLPZY_FkbDn&#Jz+vzWbi;iA^AOqU-U|ClJ9J-eoD|LV0f_tyWnvszyJ z>&wofr(G^eI}0Bl%U-{CTlxEYT(>{`e!qYE{AInW_v`=L+MWCK`Ezb=?#IV743kCT zRaI3Ns^4B2y!^t20Fxz#hK3pU%ii8v`f%m7RV!!R5#q3EjOeIu@o+h!{z&*ECyP_1 zM$tSDmZpDye`~8nuD+;cX7+9E_Irn9@6~)hd*Z~2Q$mkd$hIy^cyVFji^S3w7aUcD zrru}l<@vX6<;u+cb$>sopSr&6PVhvw=a!Zi3>HNO7%QCmt8Ej*EA=n$s%iKS=Zru5 ze?00I(~WwtzwU9bxs9!@b~baA_tDATTLo<0OB63MESj2qf8XEp_W$Qhox1eTw}*$@ z@7Mj#y}d1W<I}y>-^+@NFMkNRzF_6mdqNyXn;qVIIx0ZRvc`b^ivNGV^X}@Goxk&k z_zNo`4p33<@PJ=PSlGJk&5KvBvO0R*(<Nh{wY0G8>SJL7B~O8h)+I}pa0;tQB%MCq zFTZ|T^DGAifsdTz)Mw<@gOuqz=<xCXW1;X+uGGAg;*z4	R<7KPijL$k0f^Kp{UV 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�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 z%0A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 X(4;PStku}U)Y!s|OI6j?-;E0Z2bcoN diff --git a/scikits/learn/em/doc/user.tex b/scikits/learn/em/doc/user.tex deleted file mode 100644 index 6ea70994cc..0000000000 --- a/scikits/learn/em/doc/user.tex +++ /dev/null @@ -1,64 +0,0 @@ -% Last Change: Wed Jan 31 08:00 PM 2007 J -% vim:syntax=tex - -\newcommand\at{@} -\newcommand\lb{[} -\newcommand\rb{]} -\newcommand\Cba[1]{\textcolor[rgb]{0.67,0.13,1.00}{\textbf{#1}}} -\newcommand\Caz[1]{\textcolor[rgb]{0.00,0.25,0.82}{#1}} -\newcommand\Cay[1]{\textcolor[rgb]{0.67,0.13,1.00}{#1}} -\newcommand\Cax[1]{\textcolor[rgb]{0.00,0.63,0.00}{#1}} -\newcommand\Cbc[1]{\textcolor[rgb]{0.40,0.40,0.40}{#1}} -\newcommand\Cas[1]{\textcolor[rgb]{0.40,0.40,0.40}{#1}} -\newcommand\Car[1]{\textcolor[rgb]{0.72,0.53,0.04}{#1}} -\newcommand\Caq[1]{\textcolor[rgb]{0.73,0.27,0.27}{\textit{#1}}} -\newcommand\Cap[1]{\textcolor[rgb]{0.72,0.53,0.04}{#1}} -\newcommand\Caw[1]{\textcolor[rgb]{0.67,0.13,1.00}{\textbf{#1}}} -\newcommand\Cav[1]{\textcolor[rgb]{0.60,0.60,0.60}{\textbf{#1}}} -\newcommand\Cau[1]{\textcolor[rgb]{0.40,0.40,0.40}{#1}} -\newcommand\Cat[1]{\textcolor[rgb]{0.67,0.13,1.00}{\textbf{#1}}} -\newcommand\Cak[1]{\textbf{#1}} -\newcommand\Caj[1]{\textcolor[rgb]{0.73,0.40,0.53}{#1}} -\newcommand\Cai[1]{\textcolor[rgb]{0.72,0.53,0.04}{#1}} -\newcommand\Cah[1]{\textcolor[rgb]{0.63,0.63,0.00}{#1}} -\newcommand\Cao[1]{\textcolor[rgb]{0.53,0.00,0.00}{#1}} -\newcommand\Can[1]{\textcolor[rgb]{0.00,0.50,0.00}{#1}} -\newcommand\Cam[1]{\textcolor[rgb]{0.73,0.40,0.13}{\textbf{#1}}} -\newcommand\Cal[1]{\textcolor[rgb]{0.67,0.13,1.00}{\textbf{#1}}} -\newcommand\Cac[1]{\textcolor[rgb]{0.73,0.27,0.27}{#1}} -\newcommand\Cab[1]{\textit{#1}} -\newcommand\Caa[1]{\textcolor[rgb]{0.50,0.50,0.50}{#1}} -\newcommand\Cag[1]{\textcolor[rgb]{0.40,0.40,0.40}{#1}} -\newcommand\Caf[1]{\textcolor[rgb]{0.00,0.53,0.00}{\textit{#1}}} -\newcommand\Cae[1]{\textcolor[rgb]{0.40,0.40,0.40}{#1}} -\newcommand\Cad[1]{\textcolor[rgb]{0.73,0.27,0.27}{#1}} -\newcommand\Cbb[1]{\textcolor[rgb]{0.73,0.27,0.27}{#1}} -\newcommand\CaZ[1]{\textcolor[rgb]{0.40,0.40,0.40}{#1}} -\newcommand\CaY[1]{\textcolor[rgb]{0.00,0.00,0.50}{\textbf{#1}}} -\newcommand\CaX[1]{\textcolor[rgb]{0.00,0.50,0.00}{\textbf{#1}}} -\newcommand\Cbd[1]{\textcolor[rgb]{0.73,0.40,0.53}{\textbf{#1}}} -\newcommand\Cbe[1]{\textcolor[rgb]{0.67,0.13,1.00}{\textbf{#1}}} -\newcommand\CaS[1]{\textcolor[rgb]{0.50,0.00,0.50}{\textbf{#1}}} -\newcommand\CaR[1]{\textcolor[rgb]{0.00,0.53,0.00}{\textit{#1}}} -\newcommand\CaQ[1]{\textcolor[rgb]{0.72,0.53,0.04}{#1}} -\newcommand\CaP[1]{\textcolor[rgb]{0.40,0.40,0.40}{#1}} -\newcommand\CaW[1]{\textcolor[rgb]{0.73,0.27,0.27}{#1}} -\newcommand\CaV[1]{\textcolor[rgb]{0.67,0.13,1.00}{#1}} -\newcommand\CaU[1]{\textcolor[rgb]{0.73,0.27,0.27}{#1}} -\newcommand\CaT[1]{\textcolor[rgb]{0.00,0.00,1.00}{\textbf{#1}}} -\newcommand\CaK[1]{\textcolor[rgb]{0.67,0.13,1.00}{#1}} -\newcommand\CaJ[1]{\textcolor[rgb]{0.00,0.63,0.00}{#1}} -\newcommand\CaI[1]{\textcolor[rgb]{0.73,0.27,0.27}{#1}} -\newcommand\CaH[1]{\textcolor[rgb]{0.67,0.13,1.00}{\textbf{#1}}} -\newcommand\CaO[1]{\textcolor[rgb]{0.73,0.27,0.27}{#1}} -\newcommand\CaN[1]{\textcolor[rgb]{0.00,0.00,0.50}{\textbf{#1}}} -\newcommand\CaM[1]{\textcolor[rgb]{0.00,0.00,1.00}{#1}} -\newcommand\CaL[1]{\textcolor[rgb]{0.00,0.53,0.00}{#1}} -\newcommand\CaC[1]{\textcolor[rgb]{0.00,0.53,0.00}{\textit{#1}}} -\newcommand\CaB[1]{\textcolor[rgb]{0.82,0.25,0.23}{\textbf{#1}}} -\newcommand\CaA[1]{\textcolor[rgb]{0.67,0.13,1.00}{#1}} -\newcommand\CaG[1]{\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{#1}} -\newcommand\CaF[1]{\textcolor[rgb]{0.72,0.53,0.04}{#1}} -\newcommand\CaE[1]{\textcolor[rgb]{1.00,0.00,0.00}{#1}} -\newcommand\CaD[1]{\textcolor[rgb]{0.63,0.00,0.00}{#1}} - diff --git a/scikits/learn/em/gauss_mix.py b/scikits/learn/em/gauss_mix.py deleted file mode 100644 index 07d97607bd..0000000000 --- a/scikits/learn/em/gauss_mix.py +++ /dev/null @@ -1,728 +0,0 @@ -# /usr/bin/python -# Last Change: Tue Jul 17 11:00 PM 2007 J - -"""Module implementing GM, a class which represents Gaussian mixtures. - -GM instances can be used to create, sample mixtures. They also provide -different plotting facilities, such as isodensity contour for multi dimensional -models, ellipses of confidence.""" - -__docformat__ = 'restructuredtext' - -import numpy as N -from numpy.random import randn, rand -import numpy.linalg as lin -import densities as D -import misc - -# Right now, two main usages of a Gaussian Model are possible -# - init a Gaussian Model with meta-parameters, and trains it -# - set-up a Gaussian Model to sample it, draw ellipsoides -# of confidences. In this case, we would like to init it with -# known values of parameters. This can be done with the class method -# fromval - -# TODO: -# - change bounds methods of GM class instanciations so that it cannot -# be used as long as w, mu and va are not set -# - We have to use scipy now for chisquare pdf, so there may be other -# methods to be used, ie for implementing random index. -# - there is no check on internal state of the GM, that is does w, mu and va -# values make sense (eg singular values) - plot1d is still very rhough. There -# should be a sensible way to modify the result plot (maybe returns a dic -# with global pdf, component pdf and fill matplotlib handles). Should be -# coherent with plot -class GmParamError(Exception): - """Exception raised for errors in gmm params - - Attributes: - expression -- input expression in which the error occurred - message -- explanation of the error - """ - def __init__(self, message): - Exception.__init__(self) - self.message = message - - def __str__(self): - return self.message - -class GM: - """Gaussian Mixture class. This is a simple container class - to hold Gaussian Mixture parameters (weights, mean, etc...). - It can also draw itself (confidence ellipses) and samples itself. - """ - - # I am not sure it is useful to have a spherical mode... - _cov_mod = ['diag', 'full'] - - #=============================== - # Methods to construct a mixture - #=============================== - def __init__(self, d, k, mode = 'diag'): - """Init a Gaussian Mixture. - - :Parameters: - d : int - dimension of the mixture. - k : int - number of component in the mixture. - mode : string - mode of covariance - - :Returns: - an instance of GM. - - Note - ---- - - Only full and diag mode are supported for now. - - :SeeAlso: - If you want to build a Gaussian Mixture with knowns weights, means - and variances, you can use GM.fromvalues method directly""" - if mode not in self._cov_mod: - raise GmParamError("mode %s not recognized" + str(mode)) - - self.d = d - self.k = k - self.mode = mode - - # Init to 0 all parameters, with the right dimensions. - # Not sure this is useful in python from an efficiency POV ? - self.w = N.zeros(k) - self.mu = N.zeros((k, d)) - if mode == 'diag': - self.va = N.zeros((k, d)) - elif mode == 'full': - self.va = N.zeros((k * d, d)) - - self.__is_valid = False - if d > 1: - self.__is1d = False - else: - self.__is1d = True - - def set_param(self, weights, mu, sigma): - """Set parameters of the model. - - Args should be conformant with metparameters d and k given during - initialisation. - - :Parameters: - weights : ndarray - weights of the mixture (k elements) - mu : ndarray - means of the mixture. One component's mean per row, k row for k - components. - sigma : ndarray - variances of the mixture. For diagonal models, one row contains - the diagonal elements of the covariance matrix. For full - covariance, d rows for one variance. - - Examples - -------- - Create a 3 component, 2 dimension mixture with full covariance matrices - - >>> w = numpy.array([0.2, 0.5, 0.3]) - >>> mu = numpy.array([[0., 0.], [1., 1.]]) - >>> va = numpy.array([[1., 0.], [0., 1.], [2., 0.5], [0.5, 1]]) - >>> gm = GM(2, 3, 'full') - >>> gm.set_param(w, mu, va) - - :SeeAlso: - If you know already the parameters when creating the model, you can - simply use the method class GM.fromvalues.""" - #XXX: when fromvalues is called, parameters are called twice... - k, d, mode = check_gmm_param(weights, mu, sigma) - if not k == self.k: - raise GmParamError("Number of given components is %d, expected %d" - % (k, self.k)) - if not d == self.d: - raise GmParamError("Dimension of the given model is %d, "\ - "expected %d" % (d, self.d)) - if not mode == self.mode and not d == 1: - raise GmParamError("Given covariance mode is %s, expected %s" - % (mode, self.mode)) - self.w = weights - self.mu = mu - self.va = sigma - - self.__is_valid = True - - @classmethod - def fromvalues(cls, weights, mu, sigma): - """This class method can be used to create a GM model - directly from its parameters weights, mean and variance - - :Parameters: - weights : ndarray - weights of the mixture (k elements) - mu : ndarray - means of the mixture. One component's mean per row, k row for k - components. - sigma : ndarray - variances of the mixture. For diagonal models, one row contains - the diagonal elements of the covariance matrix. For full - covariance, d rows for one variance. - - :Returns: - gm : GM - an instance of GM. - - Examples - -------- - - >>> w, mu, va = GM.gen_param(d, k) - >>> gm = GM(d, k) - >>> gm.set_param(w, mu, va) - - and - - >>> w, mu, va = GM.gen_param(d, k) - >>> gm = GM.fromvalue(w, mu, va) - - are strictly equivalent.""" - k, d, mode = check_gmm_param(weights, mu, sigma) - res = cls(d, k, mode) - res.set_param(weights, mu, sigma) - return res - - #===================================================== - # Fundamental facilities (sampling, confidence, etc..) - #===================================================== - def sample(self, nframes): - """ Sample nframes frames from the model. - - :Parameters: - nframes : int - number of samples to draw. - - :Returns: - samples : ndarray - samples in the format one sample per row (nframes, d).""" - if not self.__is_valid: - raise GmParamError("""Parameters of the model has not been - set yet, please set them using self.set_param()""") - - # State index (ie hidden var) - sti = gen_rand_index(self.w, nframes) - # standard gaussian samples - x = randn(nframes, self.d) - - if self.mode == 'diag': - x = self.mu[sti, :] + x * N.sqrt(self.va[sti, :]) - elif self.mode == 'full': - # Faster: - cho = N.zeros((self.k, self.va.shape[1], self.va.shape[1])) - for i in range(self.k): - # Using cholesky looks more stable than sqrtm; sqrtm is not - # available in numpy anyway, only in scipy... - cho[i] = lin.cholesky(self.va[i*self.d:i*self.d+self.d, :]) - - for s in range(self.k): - tmpind = N.where(sti == s)[0] - x[tmpind] = N.dot(x[tmpind], cho[s].T) + self.mu[s] - else: - raise GmParamError("cov matrix mode not recognized, "\ - "this is a bug !") - - return x - - def conf_ellipses(self, dim = misc.DEF_VIS_DIM, npoints = misc.DEF_ELL_NP, - level = misc.DEF_LEVEL): - """Returns a list of confidence ellipsoids describing the Gmm - defined by mu and va. Check densities.gauss_ell for details - - :Parameters: - dim : sequence - sequences of two integers which represent the dimensions where to - project the ellipsoid. - npoints : int - number of points to generate for the ellipse. - level : float - level of confidence (between 0 and 1). - - :Returns: - xe : sequence - a list of x coordinates for the ellipses (Xe[i] is the array - containing x coordinates of the ith Gaussian) - ye : sequence - a list of y coordinates for the ellipses. - - Examples - -------- - Suppose we have w, mu and va as parameters for a mixture, then: - - >>> gm = GM(d, k) - >>> gm.set_param(w, mu, va) - >>> X = gm.sample(1000) - >>> Xe, Ye = gm.conf_ellipsoids() - >>> pylab.plot(X[:,0], X[:, 1], '.') - >>> for k in len(w): - ... pylab.plot(Xe[k], Ye[k], 'r') - - Will plot samples X draw from the mixture model, and - plot the ellipses of equi-probability from the mean with - default level of confidence.""" - if self.__is1d: - raise ValueError("This function does not make sense for 1d " - "mixtures.") - - if not self.__is_valid: - raise GmParamError("""Parameters of the model has not been - set yet, please set them using self.set_param()""") - - xe = [] - ye = [] - if self.mode == 'diag': - for i in range(self.k): - x, y = D.gauss_ell(self.mu[i, :], self.va[i, :], - dim, npoints, level) - xe.append(x) - ye.append(y) - elif self.mode == 'full': - for i in range(self.k): - x, y = D.gauss_ell(self.mu[i, :], - self.va[i*self.d:i*self.d+self.d, :], - dim, npoints, level) - xe.append(x) - ye.append(y) - - return xe, ye - - def check_state(self): - """Returns true if the parameters of the model are valid. - - For Gaussian mixtures, this means weights summing to 1, and variances - to be positive definite. - """ - if not self.__is_valid: - raise GmParamError("Parameters of the model has not been"\ - "set yet, please set them using self.set_param()") - - # Check condition number for cov matrix - if self.mode == 'diag': - tinfo = N.finfo(self.va.dtype) - if N.any(self.va < tinfo.eps): - raise GmParamError("variances are singular") - elif self.mode == 'full': - try: - d = self.d - for i in range(self.k): - N.linalg.cholesky(self.va[i*d:i*d+d, :]) - except N.linalg.LinAlgError: - raise GmParamError("matrix %d is singular " % i) - - else: - raise GmParamError("Unknown mode") - - return True - - @classmethod - def gen_param(cls, d, nc, mode = 'diag', spread = 1): - """Generate random, valid parameters for a gaussian mixture model. - - :Parameters: - d : int - the dimension - nc : int - the number of components - mode : string - covariance matrix mode ('full' or 'diag'). - - :Returns: - w : ndarray - weights of the mixture - mu : ndarray - means of the mixture - w : ndarray - variances of the mixture - - Notes - ----- - This is a class method. - """ - w = N.abs(randn(nc)) - w = w / sum(w, 0) - - mu = spread * N.sqrt(d) * randn(nc, d) - if mode == 'diag': - va = N.abs(randn(nc, d)) - elif mode == 'full': - # If A is invertible, A'A is positive definite - va = randn(nc * d, d) - for k in range(nc): - va[k*d:k*d+d] = N.dot( va[k*d:k*d+d], - va[k*d:k*d+d].transpose()) - else: - raise GmParamError('cov matrix mode not recognized') - - return w, mu, va - - #gen_param = classmethod(gen_param) - - def pdf(self, x, log = False): - """Computes the pdf of the model at given points. - - :Parameters: - x : ndarray - points where to estimate the pdf. One row for one - multi-dimensional sample (eg to estimate the pdf at 100 - different points in 10 dimension, data's shape should be (100, - 20)). - log : bool - If true, returns the log pdf instead of the pdf. - - :Returns: - y : ndarray - the pdf at points x.""" - if log: - return D.logsumexp( - D.multiple_gauss_den(x, self.mu, self.va, log = True) - + N.log(self.w)) - else: - return N.sum(D.multiple_gauss_den(x, self.mu, self.va) * self.w, 1) - - def pdf_comp(self, x, cid, log = False): - """Computes the pdf of the model at given points, at given component. - - :Parameters: - x : ndarray - points where to estimate the pdf. One row for one - multi-dimensional sample (eg to estimate the pdf at 100 - different points in 10 dimension, data's shape should be (100, - 20)). - cid: int - the component index. - log : bool - If true, returns the log pdf instead of the pdf. - - :Returns: - y : ndarray - the pdf at points x.""" - if self.mode == 'diag': - va = self.va[cid] - elif self.mode == 'full': - va = self.va[cid*self.d:(cid+1)*self.d] - else: - raise GmParamError("""var mode %s not supported""" % self.mode) - - if log: - return D.gauss_den(x, self.mu[cid], va, log = True) \ - + N.log(self.w[cid]) - else: - return D.multiple_gauss_den(x, self.mu[cid], va) * self.w[cid] - - #================= - # Plotting methods - #================= - def plot(self, dim = misc.DEF_VIS_DIM, npoints = misc.DEF_ELL_NP, - level = misc.DEF_LEVEL): - """Plot the ellipsoides directly for the model - - Returns a list of lines handle, so that their style can be modified. By - default, the style is red color, and nolegend for all of them. - - :Parameters: - dim : sequence - sequence of two integers, the dimensions of interest. - npoints : int - Number of points to use for the ellipsoids. - level : int - level of confidence (to use with fill argument) - - :Returns: - h : sequence - Returns a list of lines handle so that their properties - can be modified (eg color, label, etc...): - - Note - ---- - Does not work for 1d. Requires matplotlib - - :SeeAlso: - conf_ellipses is used to compute the ellipses. Use this if you want - to plot with something else than matplotlib.""" - if self.__is1d: - raise ValueError("This function does not make sense for 1d " - "mixtures.") - - if not self.__is_valid: - raise GmParamError("""Parameters of the model has not been - set yet, please set them using self.set_param()""") - - k = self.k - xe, ye = self.conf_ellipses(dim, npoints, level) - try: - import pylab as P - return [P.plot(xe[i], ye[i], 'r', label='_nolegend_')[0] for i in - range(k)] - except ImportError: - raise GmParamError("matplotlib not found, cannot plot...") - - def plot1d(self, level = misc.DEF_LEVEL, fill = False, gpdf = False): - """Plots the pdf of each component of the 1d mixture. - - :Parameters: - level : int - level of confidence (to use with fill argument) - fill : bool - if True, the area of the pdf corresponding to the given - confidence intervales is filled. - gpdf : bool - if True, the global pdf is plot. - - :Returns: - h : dict - Returns a dictionary h of plot handles so that their properties - can be modified (eg color, label, etc...): - - h['pdf'] is a list of lines, one line per component pdf - - h['gpdf'] is the line for the global pdf - - h['conf'] is a list of filling area - """ - if not self.__is1d: - raise ValueError("This function does not make sense for "\ - "mixtures which are not unidimensional") - - from scipy.stats import norm - pval = N.sqrt(self.va[:, 0]) * norm(0, 1).ppf((1+level)/2) - - # Compute reasonable min/max for the normal pdf: [-mc * std, mc * std] - # gives the range we are taking in account for each gaussian - mc = 3 - std = N.sqrt(self.va[:, 0]) - mi = N.amin(self.mu[:, 0] - mc * std) - ma = N.amax(self.mu[:, 0] + mc * std) - - np = 500 - x = N.linspace(mi, ma, np) - # Prepare the dic of plot handles to return - ks = ['pdf', 'conf', 'gpdf'] - hp = dict((i, []) for i in ks) - - # Compute the densities - y = D.multiple_gauss_den(x[:, N.newaxis], self.mu, self.va, \ - log = True) \ - + N.log(self.w) - yt = self.pdf(x[:, N.newaxis]) - - try: - import pylab as P - for c in range(self.k): - h = P.plot(x, N.exp(y[:, c]), 'r', label ='_nolegend_') - hp['pdf'].extend(h) - if fill: - # Compute x coordinates of filled area - id1 = -pval[c] + self.mu[c] - id2 = pval[c] + self.mu[c] - xc = x[:, N.where(x>id1)[0]] - xc = xc[:, N.where(xc<id2)[0]] - - # Compute the graph for filling - yf = self.pdf_comp(xc, c) - xc = N.concatenate(([xc[0]], xc, [xc[-1]])) - yf = N.concatenate(([0], yf, [0])) - h = P.fill(xc, yf, facecolor = 'b', alpha = 0.1, - label='_nolegend_') - hp['conf'].extend(h) - if gpdf: - h = P.plot(x, yt, 'r:', label='_nolegend_') - hp['gpdf'] = h - return hp - except ImportError: - raise GmParamError("matplotlib not found, cannot plot...") - - def density_on_grid(self, dim = misc.DEF_VIS_DIM, nx = 50, ny = 50, - nl = 20, maxlevel = 0.95, v = None): - """Do all the necessary computation for contour plot of mixture's - density. - - :Parameters: - dim : sequence - sequence of two integers, the dimensions of interest. - nx : int - Number of points to use for the x axis of the grid - ny : int - Number of points to use for the y axis of the grid - nl : int - Number of contour to plot. - - :Returns: - X : ndarray - points of the x axis of the grid - Y : ndarray - points of the y axis of the grid - Z : ndarray - values of the density on X and Y - V : ndarray - Contour values to display. - - Note - ---- - X, Y, Z and V are as expected by matplotlib contour function.""" - if self.__is1d: - raise ValueError("This function does not make sense for 1d " - "mixtures.") - - # Ok, it is a bit gory. Basically, we want to compute the size of the - # grid. We use conf_ellipse, which will return a couple of points for - # each component, and we can find a grid size which then is just big - # enough to contain all ellipses. This won't work well if two - # ellipsoids are crossing each other a lot (because this assumes that - # at a given point, one component is largely dominant for its - # contribution to the pdf). - - xe, ye = self.conf_ellipses(level = maxlevel, dim = dim) - ax = [N.min(xe), N.max(xe), N.min(ye), N.max(ye)] - - w = ax[1] - ax[0] - h = ax[3] - ax[2] - x, y, lden = self._densityctr(N.linspace(ax[0]-0.2*w, - ax[1]+0.2*w, nx), - N.linspace(ax[2]-0.2*h, - ax[3]+0.2*h, ny), - dim = dim) - # XXX: how to find "good" values for level ? - if v is None: - v = N.linspace(-5, N.max(lden), nl) - return x, y, lden, N.array(v) - - def _densityctr(self, rangex, rangey, dim = misc.DEF_VIS_DIM): - """Helper function to compute density contours on a grid.""" - gr = N.meshgrid(rangex, rangey) - x = gr[0].flatten() - y = gr[1].flatten() - xdata = N.concatenate((x[:, N.newaxis], y[:, N.newaxis]), axis = 1) - dmu = self.mu[:, dim] - dva = self._get_va(dim) - den = GM.fromvalues(self.w, dmu, dva).pdf(xdata, log = True) - den = den.reshape(len(rangey), len(rangex)) - - return gr[0], gr[1], den - - def _get_va(self, dim): - """Returns variance limited do 2 dimension in tuple dim.""" - assert len(dim) == 2 - dim = N.array(dim) - if dim.any() < 0 or dim.any() >= self.d: - raise ValueError("dim elements should be between 0 and dimension" - " of the mixture.") - - if self.mode == 'diag': - return self.va[:, dim] - elif self.mode == 'full': - ld = dim.size - vaselid = N.empty((ld * self.k, ld), N.int) - for i in range(self.k): - vaselid[ld*i] = dim[0] + i * self.d - vaselid[ld*i+1] = dim[1] + i * self.d - vadid = N.empty((ld * self.k, ld), N.int) - for i in range(self.k): - vadid[ld*i] = dim - vadid[ld*i+1] = dim - return self.va[vaselid, vadid] - else: - raise ValueError("Unkown mode") - - # Syntactic sugar - def __repr__(self): - msg = "" - msg += "Gaussian Mixture:\n" - msg += " -> %d dimensions\n" % self.d - msg += " -> %d components\n" % self.k - msg += " -> %s covariance \n" % self.mode - if self.__is_valid: - msg += "Has initial values""" - else: - msg += "Has no initial values yet""" - return msg - - def __str__(self): - return self.__repr__() - -# Function to generate a random index: this is kept outside any class, -# as the function can be useful for other -def gen_rand_index(p, n): - """Generate a N samples vector containing random index between 1 - and length(p), each index i with probability p(i)""" - # TODO Check args here - - # TODO: check each value of inverse distribution is - # different - invcdf = N.cumsum(p) - uni = rand(n) - index = N.zeros(n, dtype=int) - - # This one should be a bit faster - for k in range(len(p)-1, 0, -1): - blop = N.where(N.logical_and(invcdf[k-1] <= uni, - uni < invcdf[k])) - index[blop] = k - - return index - -def check_gmm_param(w, mu, va): - """Check that w, mu and va are valid parameters for - a mixture of gaussian. - - w should sum to 1, there should be the same number of component in each - param, the variances should be positive definite, etc... - - :Parameters: - w : ndarray - vector or list of weigths of the mixture (K elements) - mu : ndarray - matrix: K * d - va : ndarray - list of variances (vector K * d or square matrices Kd * d) - - :Returns: - k : int - number of components - d : int - dimension - mode : string - 'diag' if diagonal covariance, 'full' of full matrices - """ - - # Check that w is valid - if not len(w.shape) == 1: - raise GmParamError('weight should be a rank 1 array') - - if N.fabs(N.sum(w) - 1) > misc.MAX_DBL_DEV: - raise GmParamError('weight does not sum to 1') - - # Check that mean and va have the same number of components - k = len(w) - - if N.ndim(mu) < 2: - msg = "mu should be a K,d matrix, and a row vector if only 1 comp" - raise GmParamError(msg) - if N.ndim(va) < 2: - msg = """va should be a K,d / K *d, d matrix, and a row vector if - only 1 diag comp""" - raise GmParamError(msg) - - (km, d) = mu.shape - (ka, da) = va.shape - - if not k == km: - msg = "not same number of component in mean and weights" - raise GmParamError(msg) - - if not d == da: - msg = "not same number of dimensions in mean and variances" - raise GmParamError(msg) - - if km == ka: - mode = 'diag' - else: - mode = 'full' - if not ka == km*d: - msg = "not same number of dimensions in mean and variances" - raise GmParamError(msg) - - return k, d, mode - -if __name__ == '__main__': - pass diff --git a/scikits/learn/em/gmm_em.py b/scikits/learn/em/gmm_em.py deleted file mode 100644 index ac29fdeff1..0000000000 --- a/scikits/learn/em/gmm_em.py +++ /dev/null @@ -1,520 +0,0 @@ -# /usr/bin/python -# Last Change: Mon Jul 02 07:00 PM 2007 J - -"""Module implementing GMM, a class to estimate Gaussian mixture models using -EM, and EM, a class which use GMM instances to estimate models parameters using -the ExpectationMaximization algorithm.""" - -__docformat__ = 'restructuredtext' - -# TODO: -# - which methods to avoid va shrinking to 0 ? There are several options, -# not sure which ones are appropriates -# - improve EM trainer -import numpy as N -from numpy.random import randn -#import _c_densities as densities -import densities -from scipy.cluster.vq import kmeans2 as kmean -from gauss_mix import GmParamError -from misc import curry - -#from misc import _DEF_ALPHA, _MIN_DBL_DELTA, _MIN_INV_COND - -_PRIOR_COUNT = 0.05 -_COV_PRIOR = 0.1 - -# Error classes -class GmmError(Exception): - """Base class for exceptions in this module.""" - def __init__(self): - Exception.__init__(self) - -class GmmParamError(GmmError): - """Exception raised for errors in gmm params - - Attributes: - expression -- input expression in which the error occurred - message -- explanation of the error - """ - def __init__(self, message): - GmmError.__init__(self) - self.message = message - - def __str__(self): - return self.message - -class MixtureModel(object): - """Class to model mixture """ - # XXX: Is this really needed ? - pass - -class ExpMixtureModel(MixtureModel): - """Class to model mixture of exponential pdf (eg Gaussian, exponential, - Laplace, etc..). This is a special case because some parts of EM are common - for those models...""" - pass - -class GMM(ExpMixtureModel): - """ A class to model a Gaussian Mixture Model (GMM). An instance of this - class is created by giving weights, mean and variances in the ctor. An - instanciated object can be sampled, trained by EM. """ - def init_kmean(self, data, niter = 5): - """ Init the model with kmean.""" - k = self.gm.k - d = self.gm.d - init = data[0:k, :] - - # XXX: This is bogus initialization should do better (in kmean with CV) - (code, label) = kmean(data, init, niter, minit = 'matrix') - - w = N.ones(k) / k - mu = code.copy() - if self.gm.mode == 'diag': - va = N.zeros((k, d)) - for i in range(k): - for j in range(d): - va[i, j] = N.cov(data[N.where(label==i), j], rowvar = 0) - elif self.gm.mode == 'full': - va = N.zeros((k*d, d)) - for i in range(k): - va[i*d:i*d+d, :] = \ - N.cov(data[N.where(label==i)], rowvar = 0) - else: - raise GmmParamError("mode " + str(self.gm.mode) + \ - " not recognized") - - self.gm.set_param(w, mu, va) - - self.isinit = True - - def init_random(self, data): - """ Init the model at random.""" - k = self.gm.k - d = self.gm.d - w = N.ones(k) / k - mu = randn(k, d) - if self.gm.mode == 'diag': - va = N.fabs(randn(k, d)) - else: - # If A is invertible, A'A is positive definite - va = randn(k * d, d) - for i in range(k): - va[i*d:i*d+d] = N.dot( va[i*d:i*d+d], - va[i*d:i*d+d].T) - - self.gm.set_param(w, mu, va) - - self.isinit = True - - def init_test(self, data): - """Use values already in the model as initialization. - - Useful for testing purpose when reproducability is necessary. This does - nothing but checking that the mixture model has valid initial - values.""" - try: - self.gm.check_state() - except GmParamError, e: - print "Model is not properly initalized, cannot init EM." - raise ValueError("Message was %s" % str(e)) - - def __init__(self, gm, init = 'kmean'): - """Initialize a mixture model. - - Initialize the model from a GM instance. This class implements all the - necessary functionalities for EM. - - :Parameters: - gm : GM - the mixture model to train. - init : string - initialization method to use.""" - self.gm = gm - - # Possible init methods - init_methods = {'kmean': self.init_kmean, 'random' : self.init_random, - 'test': self.init_test} - - if init not in init_methods: - raise GmmParamError('init method %s not recognized' + str(init)) - - self.init = init_methods[init] - self.isinit = False - self.initst = init - - def compute_responsabilities(self, data): - """Compute responsabilities. - - Return normalized and non-normalized respondabilities for the model. - - Note - ---- - Computes the latent variable distribution (a posteriori probability) - knowing the explicit data for the Gaussian model (w, mu, var): gamma(t, - i) = P[state = i | observation = data(t); w, mu, va] - - This is basically the E step of EM for finite mixtures.""" - # compute the gaussian pdf - tgd = densities.multiple_gauss_den(data, self.gm.mu, self.gm.va) - # multiply by the weight - tgd *= self.gm.w - # Normalize to get a pdf - gd = tgd / N.sum(tgd, axis=1)[:, N.newaxis] - - return gd, tgd - - def compute_log_responsabilities(self, data): - """Compute log responsabilities. - - Return normalized and non-normalized responsabilities for the model (in - the log domain) - - Note - ---- - Computes the latent variable distribution (a posteriori probability) - knowing the explicit data for the Gaussian model (w, mu, var): gamma(t, - i) = P[state = i | observation = data(t); w, mu, va] - - This is basically the E step of EM for finite mixtures.""" - # compute the gaussian pdf - tgd = densities.multiple_gauss_den(data, self.gm.mu, - self.gm.va, log = True) - # multiply by the weight - tgd += N.log(self.gm.w) - # Normalize to get a (log) pdf - gd = tgd - densities.logsumexp(tgd)[:, N.newaxis] - - return gd, tgd - - def _update_em_diag(self, data, gamma, ngamma): - """Computes update of the Gaussian Mixture Model (M step) from the - responsabilities gamma and normalized responsabilities ngamma, for - diagonal models.""" - #XXX: caching SS may decrease memory consumption, but is this possible ? - k = self.gm.k - d = self.gm.d - n = data.shape[0] - invn = 1.0/n - - mu = N.zeros((k, d)) - va = N.zeros((k, d)) - - for c in range(k): - x = N.dot(gamma.T[c:c+1, :], data)[0, :] - xx = N.dot(gamma.T[c:c+1, :], data ** 2)[0, :] - - mu[c, :] = x / ngamma[c] - va[c, :] = xx / ngamma[c] - mu[c, :] ** 2 - - w = invn * ngamma - - return w, mu, va - - def _update_em_full(self, data, gamma, ngamma): - """Computes update of the Gaussian Mixture Model (M step) from the - responsabilities gamma and normalized responsabilities ngamma, for - full models.""" - k = self.gm.k - d = self.gm.d - n = data.shape[0] - invn = 1.0/n - - # In full mode, this is the bottleneck: the triple loop - # kills performances. This is pretty straightforward - # algebra, so computing it in C should not be too difficult. The - # real problem is to have valid covariance matrices, and to keep - # them positive definite, maybe with special storage... Not sure - # it really worth the risk - mu = N.zeros((k, d)) - va = N.zeros((k*d, d)) - - #XXX: caching SS may decrease memory consumption - for c in range(k): - #x = N.sum(N.outer(gamma[:, c], - # N.ones((1, d))) * data, axis = 0) - x = N.dot(gamma.T[c:c+1, :], data)[0, :] - xx = N.zeros((d, d)) - - # This should be much faster than recursing on n... - for i in range(d): - for j in range(d): - xx[i, j] = N.sum(data[:, i] * data[:, j] * gamma.T[c, :], - axis = 0) - - mu[c, :] = x / ngamma[c] - va[c*d:c*d+d, :] = xx / ngamma[c] \ - - N.outer(mu[c, :], mu[c, :]) - w = invn * ngamma - - return w, mu, va - - def update_em(self, data, gamma): - """Computes update of the Gaussian Mixture Model (M step) - from the a posteriori pdf, computed by gmm_posterior - (E step). - """ - ngamma = N.sum(gamma, axis = 0) - - if self.gm.mode == 'diag': - w, mu, va = self._update_em_diag(data, gamma, ngamma) - elif self.gm.mode == 'full': - w, mu, va = self._update_em_full(data, gamma, ngamma) - else: - raise GmmParamError("varmode not recognized") - - self.gm.set_param(w, mu, va) - - def likelihood(self, data): - """ Returns the current log likelihood of the model given - the data """ - assert(self.isinit) - # compute the gaussian pdf - tgd = densities.multiple_gauss_den(data, self.gm.mu, - self.gm.va, log = True) - # multiply by the weight - tgd += N.log(self.gm.w) - - return N.sum(densities.logsumexp(tgd), axis = 0) - - def bic(self, data): - """ Returns the BIC (Bayesian Information Criterion), - also called Schwarz information criterion. Can be used - to choose between different models which have different - number of clusters. The BIC is defined as: - - BIC = 2 * ln(L) - k * ln(n) - - where: - * ln(L) is the log-likelihood of the estimated model - * k is the number of degrees of freedom - * n is the number of frames - - Not that depending on the literature, BIC may be defined as the opposite - of the definition given here. """ - - if self.gm.mode == 'diag': - # for a diagonal model, we have k - 1 (k weigths, but one - # constraint of normality) + k * d (means) + k * d (variances) - free_deg = self.gm.k * (self.gm.d * 2 + 1) - 1 - elif self.gm.mode == 'full': - # for a full model, we have k - 1 (k weigths, but one constraint of - # normality) + k * d (means) + k * d * d / 2 (each covariance - # matrice has d **2 params, but with positivity constraint) - if self.gm.d == 1: - free_deg = self.gm.k * 3 - 1 - else: - free_deg = self.gm.k * (self.gm.d + 1 + self.gm.d ** 2 / 2) - 1 - - lk = self.likelihood(data) - n = N.shape(data)[0] - return bic(lk, free_deg, n) - - # syntactic sugar - def __repr__(self): - repre = "" - repre += "Gaussian Mixture Model\n" - repre += " -> initialized by %s\n" % str(self.initst) - repre += self.gm.__repr__() - return repre - -class EM: - """An EM trainer. An EM trainer - trains from data, with a model - - Not really useful yet""" - def __init__(self): - pass - - def train(self, data, model, maxiter = 10, thresh = 1e-5, log = False): - """Train a model using EM. - - Train a model using data, and stops when the likelihood increase - between two consecutive iteration fails behind a threshold, or when the - number of iterations > niter, whichever comes first - - :Parameters: - data : ndarray - contains the observed features, one row is one frame, ie one - observation of dimension d - model : GMM - GMM instance. - maxiter : int - maximum number of iterations - thresh : threshold - if the slope of the likelihood falls below this value, the - algorithm stops. - - :Returns: - likelihood : ndarray - one value per iteration. - - Note - ---- - The model is trained, and its parameters updated accordingly, eg the - results are put in the GMM instance. - """ - if not isinstance(model, MixtureModel): - raise TypeError("expect a MixtureModel as a model") - - # Initialize the data (may do nothing depending on the model) - model.init(data) - - # Actual training - if log: - like = self._train_simple_em_log(data, model, maxiter, thresh) - else: - like = self._train_simple_em(data, model, maxiter, thresh) - return like - - def _train_simple_em(self, data, model, maxiter, thresh): - # Likelihood is kept - like = N.zeros(maxiter) - - # Em computation, with computation of the likelihood - g, tgd = model.compute_responsabilities(data) - # TODO: do it in log domain instead - like[0] = N.sum(N.log(N.sum(tgd, 1)), axis = 0) - model.update_em(data, g) - for i in range(1, maxiter): - g, tgd = model.compute_responsabilities(data) - like[i] = N.sum(N.log(N.sum(tgd, 1)), axis = 0) - model.update_em(data, g) - if has_em_converged(like[i], like[i-1], thresh): - return like[0:i] - - def _train_simple_em_log(self, data, model, maxiter, thresh): - # Likelihood is kept - like = N.zeros(maxiter) - - # Em computation, with computation of the likelihood - g, tgd = model.compute_log_responsabilities(data) - like[0] = N.sum(densities.logsumexp(tgd), axis = 0) - model.update_em(data, N.exp(g)) - for i in range(1, maxiter): - g, tgd = model.compute_log_responsabilities(data) - like[i] = N.sum(densities.logsumexp(tgd), axis = 0) - model.update_em(data, N.exp(g)) - if has_em_converged(like[i], like[i-1], thresh): - return like[0:i] - -class RegularizedEM: - # TODO: separate regularizer from EM class ? - def __init__(self, pcnt = _PRIOR_COUNT, pval = _COV_PRIOR): - """Create a regularized EM object. - - Covariances matrices are regularized after the E step. - - :Parameters: - pcnt : float - proportion of soft counts to be count as prior counts (e.g. if - you have 1000 samples and the prior_count is 0.1, than the - prior would "weight" 100 samples). - pval : float - value of the prior. - """ - self.pcnt = pcnt - self.pval = pval - - def train(self, data, model, maxiter = 20, thresh = 1e-5): - """Train a model using EM. - - Train a model using data, and stops when the likelihood increase - between two consecutive iteration fails behind a threshold, or when the - number of iterations > niter, whichever comes first - - :Parameters: - data : ndarray - contains the observed features, one row is one frame, ie one - observation of dimension d - model : GMM - GMM instance. - maxiter : int - maximum number of iterations - thresh : threshold - if the slope of the likelihood falls below this value, the - algorithm stops. - - :Returns: - likelihood : ndarray - one value per iteration. - - Note - ---- - The model is trained, and its parameters updated accordingly, eg the - results are put in the GMM instance. - """ - mode = model.gm.mode - - # Build regularizer - if mode == 'diag': - regularize = curry(regularize_diag, np = self.pcnt, prior = - self.pval * N.ones(model.gm.d)) - elif mode == 'full': - regularize = curry(regularize_full, np = self.pcnt, prior = - self.pval * N.eye(model.gm.d)) - else: - raise ValueError("unknown variance mode") - - model.init(data) - regularize(model.gm.va) - - # Likelihood is kept - like = N.empty(maxiter, N.float) - - # Em computation, with computation of the likelihood - g, tgd = model.compute_log_responsabilities(data) - g = N.exp(g) - model.update_em(data, g) - regularize(model.gm.va) - - like[0] = N.sum(densities.logsumexp(tgd), axis = 0) - for i in range(1, maxiter): - g, tgd = model.compute_log_responsabilities(data) - g = N.exp(g) - model.update_em(data, g) - regularize(model.gm.va) - - like[i] = N.sum(densities.logsumexp(tgd), axis = 0) - if has_em_converged(like[i], like[i-1], thresh): - return like[0:i] - -# Misc functions -def bic(lk, deg, n): - """ Expects lk to be log likelihood """ - return 2 * lk - deg * N.log(n) - -def has_em_converged(like, plike, thresh): - """ given likelihood of current iteration like and previous - iteration plike, returns true is converged: based on comparison - of the slope of the likehood with thresh""" - diff = N.abs(like - plike) - avg = 0.5 * (N.abs(like) + N.abs(plike)) - if diff / avg < thresh: - return True - else: - return False - -def regularize_diag(va, np, prior): - """np * n is the number of prior counts (np is a proportion, and n is the - number of point). - - diagonal variance version""" - k = va.shape[0] - - for i in range(k): - va[i] *= 1. / (1 + np) - va[i] += np / (1. + np) * prior - -def regularize_full(va, np, prior): - """np * n is the number of prior counts (np is a proportion, and n is the - number of point).""" - d = va.shape[1] - k = va.shape[0] / d - - for i in range(k): - va[i*d:i*d+d, :] *= 1. / (1 + np) - va[i*d:i*d+d, :] += np / (1. + np) * prior - -if __name__ == "__main__": - pass diff --git a/scikits/learn/em/info.py b/scikits/learn/em/info.py deleted file mode 100644 index eaf502c190..0000000000 --- a/scikits/learn/em/info.py +++ /dev/null @@ -1,68 +0,0 @@ -""" -Routines for Gaussian Mixture Models and learning with Expectation Maximization -=============================================================================== - -This module contains classes and function to compute multivariate Gaussian -densities (diagonal and full covariance matrices), Gaussian mixtures, Gaussian -mixtures models and an Em trainer. - -More specifically, the module defines the following classes, functions: - -- densities.gauss_den: function to compute multivariate Gaussian pdf -- gauss_mix.GM: defines the GM (Gaussian Mixture) class. A Gaussian Mixture can - be created from its parameters weights, mean and variances, or from its meta - parameters d (dimension of the Gaussian) and k (number of components in the - mixture). A Gaussian Model can then be sampled or plot (if d>1, plot - confidence ellipsoids projected on 2 chosen dimensions, if d == 1, plot the - pdf of each component and fill the zone of confidence for a given level) -- gmm_em.GMM: defines a class GMM (Gaussian Mixture Model). This class is - constructed from a GM model gm, and can be used to train gm. The GMM can be - initiated by kmean or at random, and can compute sufficient statistics, and - update its parameters from the sufficient statistics. -- kmean.kmean: implements a kmean algorithm. We cannot use scipy.cluster.vq - kmeans, since its does not give membership of observations. - -Example of use: ---------------- - ->>> #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ->>> # Create an artificial 2 dimension, 3 clusters GM model, samples it ->>> #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ->>> w, mu, va = GM.gen_param(2, 3, 'diag', spread = 1.5) ->>> gm = GM.fromvalues(w, mu, va) ->>> ->>> # Sample 1000 frames from the model ->>> data = gm.sample(1000) ->>> ->>> #++++++++++++++++++++++++ ->>> # Learn the model with EM ->>> #++++++++++++++++++++++++ ->>> # Init the model ->>> lgm = GM(d, k, mode) ->>> gmm = GMM(lgm, 'kmean') ->>> ->>> # The actual EM, with likelihood computation. The threshold ->>> # is compared to the (linearly appromixated) derivative of the likelihood ->>> em = EM() ->>> like = em.train(data, gmm, maxiter = 30, thresh = 1e-8) - -Files example.py and example2.py show more capabilities of the toolbox, including -plotting capabilities (using matplotlib) and model selection using Bayesian -Information Criterion (BIC). - -Bibliography: - -- Maximum likelihood from incomplete data via the EM algorithm in Journal of - the Royal Statistical Society, Series B, 39(1):1--38, 1977, by A. P. - Dempster, N. M. Laird, and D. B. Rubin -- Bayesian Approaches to Gaussian Mixture Modelling (1998) by Stephen J. - Roberts, Dirk Husmeier, Iead Rezek, William Penny in IEEE Transactions on - Pattern Analysis and Machine Intelligence - -Copyright: David Cournapeau 2006 -License: BSD-style (see LICENSE.txt in main source directory) -""" -version = '0.5.7dev' - -depends = ['linalg', 'stats'] -ignore = False diff --git a/scikits/learn/em/misc.py b/scikits/learn/em/misc.py deleted file mode 100644 index 747e1049a6..0000000000 --- a/scikits/learn/em/misc.py +++ /dev/null @@ -1,44 +0,0 @@ -# Last Change: Mon Jul 02 06:00 PM 2007 J - -#======================================================== -# Constants used throughout the module (def args, etc...) -#======================================================== -# This is the default dimension for representing confidence ellipses -DEF_VIS_DIM = (0, 1) -DEF_ELL_NP = 100 -DEF_LEVEL = 0.39 - -#===================================================================== -# "magic number", that is number used to control regularization and co -# Change them at your risk ! -#===================================================================== - -# max deviation allowed when comparing double (this is actually stupid, -# I should actually use a number of decimals) -MAX_DBL_DEV = 1e-10 - -## # max conditional number allowed -## _MAX_COND = 1e8 -## _MIN_INV_COND = 1/_MAX_COND -## -## # Default alpha for regularization -## _DEF_ALPHA = 1e-1 -## -## # Default min delta for regularization -## _MIN_DBL_DELTA = 1e-5 -## - -class curry: - def __init__(self, fun, *args, **kwargs): - self.fun = fun - self.pending = args[:] - self.kwargs = kwargs.copy() - - def __call__(self, *args, **kwargs): - if kwargs and self.kwargs: - kw = self.kwargs.copy() - kw.update(kwargs) - else: - kw = kwargs or self.kwargs - - return self.fun(*(self.pending + args), **kw) diff --git a/scikits/learn/em/online_em.py b/scikits/learn/em/online_em.py deleted file mode 100644 index eb02a9d897..0000000000 --- a/scikits/learn/em/online_em.py +++ /dev/null @@ -1,466 +0,0 @@ -# /usr/bin/python -# Last Change: Sat Dec 20 04:00 PM 2008 J - -# This is not meant to be used yet !!!! I am not sure how to integrate this -# stuff inside the package yet. The cases are: -# - we have a set of data, and we want to test online EM compared to normal -# EM -# - we do not have all the data before putting them in online EM: eg current -# frame depends on previous frame in some way. - -# TODO: -# - Add biblio -# - Look back at articles for discussion for init, regularization and -# convergence rates -# - the function sufficient_statistics does not really return SS. This is not -# a big problem, but it would be better to really return them as the name -# implied. - -import numpy as N -from numpy import mean -from numpy.testing import assert_array_almost_equal, assert_array_equal - -from gmm_em import ExpMixtureModel#, GMM, EM -from gauss_mix import GM -#from gauss_mix import GM -from scipy.cluster.vq import kmeans2 as kmean -import densities2 as D - -import copy -from numpy.random import seed - -# Clamp -clamp = 1e-8 - -# Error classes -class OnGmmError(Exception): - """Base class for exceptions in this module.""" - pass - -class OnGmmParamError: - """Exception raised for errors in gmm params - - Attributes: - expression -- input expression in which the error occurred - message -- explanation of the error - """ - def __init__(self, message): - self.message = message - - def __str__(self): - return self.message - -class OnGMM(ExpMixtureModel): - """A Class for 'online' (ie recursive) EM. Instead - of running the E step on the whole data, the sufficient statistics - are updated for each new frame of data, and used in the (unchanged) - M step""" - def init_random(self, init_data): - """ Init the model at random.""" - k = self.gm.k - d = self.gm.d - if self.gm.mode == 'diag': - w = N.ones(k) / k - - # Init the internal state of EM - self.cx = N.outer(w, mean(init_data, 0)) - self.cxx = N.outer(w, mean(init_data ** 2, 0)) - - # w, mu and va init is the same that in the standard case - (code, label) = kmean(init_data, init_data[0:k, :], iter = 10, - minit = 'matrix') - mu = code.copy() - va = N.zeros((k, d)) - for i in range(k): - for j in range(d): - va [i, j] = N.cov(init_data[N.where(label==i), j], - rowvar = 0) - else: - raise OnGmmParamError("""init_online not implemented for - mode %s yet""", self.gm.mode) - - self.gm.set_param(w, mu, va) - # c* are the parameters which are computed at every step (ie - # when a new frame is taken into account - self.cw = self.gm.w - self.cmu = self.gm.mu - self.cva = self.gm.va - - # p* are the parameters used when computing gaussian densities - # they are always the same than c* in the online case - self.pw = self.cw - self.pmu = self.cmu - self.pva = self.cva - - def init_kmean(self, init_data, niter = 5): - """ Init the model using kmean.""" - k = self.gm.k - d = self.gm.d - if self.gm.mode == 'diag': - w = N.ones(k) / k - - # Init the internal state of EM - self.cx = N.outer(w, mean(init_data, 0)) - self.cxx = N.outer(w, mean(init_data ** 2, 0)) - - # w, mu and va init is the same that in the standard case - (code, label) = kmean(init_data, init_data[0:k, :], - iter = niter, minit = 'matrix') - mu = code.copy() - va = N.zeros((k, d)) - for i in range(k): - for j in range(d): - va[i, j] = N.cov(init_data[N.where(label==i), j], - rowvar = 0) - else: - raise OnGmmParamError("""init_online not implemented for - mode %s yet""", self.gm.mode) - - self.gm.set_param(w, mu, va) - # c* are the parameters which are computed at every step (ie - # when a new frame is taken into account - self.cw = self.gm.w - self.cmu = self.gm.mu - self.cva = self.gm.va - - # p* are the parameters used when computing gaussian densities - # they are the same than c* in the online case - # self.pw = self.cw.copy() - # self.pmu = self.cmu.copy() - # self.pva = self.cva.copy() - self.pw = self.cw - self.pmu = self.cmu - self.pva = self.cva - - def __init__(self, gm, init_data, init = 'kmean'): - self.gm = gm - - # Possible init methods - init_methods = {'kmean' : self.init_kmean} - - self.init = init_methods[init] - - def compute_sufficient_statistics_frame(self, frame, nu): - """ sufficient_statistics(frame, nu) for one frame of data - - frame has to be rank 1 !""" - gamma = multiple_gauss_den_frame(frame, self.pmu, self.pva) - gamma *= self.pw - gamma /= N.sum(gamma) - # <1>(t) = cw(t), self.cw = cw(t), each element is one component running weight - #self.cw = (1 - nu) * self.cw + nu * gamma - self.cw *= (1 - nu) - self.cw += nu * gamma - - for k in range(self.gm.k): - self.cx[k] = (1 - nu) * self.cx[k] + nu * frame * gamma[k] - self.cxx[k] = (1 - nu) * self.cxx[k] + nu * frame ** 2 * gamma[k] - - def update_em_frame(self): - for k in range(self.gm.k): - self.cmu[k] = self.cx[k] / self.cw[k] - self.cva[k] = self.cxx[k] / self.cw[k] - self.cmu[k] ** 2 - -import _rawden - -class OnGMM1d(ExpMixtureModel): - """Special purpose case optimized for 1d dimensional cases. - - Require each frame to be a float, which means the API is a bit - different than OnGMM. You are trading elegance for speed here !""" - def init_kmean(self, init_data, niter = 5): - """ Init the model using kmean.""" - assert init_data.ndim == 1 - k = self.gm.k - w = N.ones(k) / k - - # Init the internal state of EM - self.cx = w * mean(init_data) - self.cxx = w * mean(init_data ** 2) - - # w, mu and va init is the same that in the standard case - (code, label) = kmean(init_data[:, N.newaxis], \ - init_data[0:k, N.newaxis], iter = niter) - mu = code.copy() - va = N.zeros((k, 1)) - for i in range(k): - va[i] = N.cov(init_data[N.where(label==i)], rowvar = 0) - - self.gm.set_param(w, mu, va) - # c* are the parameters which are computed at every step (ie - # when a new frame is taken into account - self.cw = self.gm.w - self.cmu = self.gm.mu[:, 0] - self.cva = self.gm.va[:, 0] - - # p* are the parameters used when computing gaussian densities - # they are the same than c* in the online case - # self.pw = self.cw.copy() - # self.pmu = self.cmu.copy() - # self.pva = self.cva.copy() - self.pw = self.cw - self.pmu = self.cmu - self.pva = self.cva - - def __init__(self, gm, init_data, init = 'kmean'): - self.gm = gm - if self.gm.d is not 1: - raise RuntimeError("expects 1d gm only !") - - # Possible init methods - init_methods = {'kmean' : self.init_kmean} - self.init = init_methods[init] - - def compute_sufficient_statistics_frame(self, frame, nu): - """expects frame and nu to be float. Returns - cw, cxx and cxx, eg the sufficient statistics.""" - _rawden.compute_ss_frame_1d(frame, self.cw, self.cmu, self.cva, - self.cx, self.cxx, nu) - return self.cw, self.cx, self.cxx - - def update_em_frame(self, cw, cx, cxx): - """Update EM state using SS as returned by - compute_sufficient_statistics_frame. """ - self.cmu = cx / cw - self.cva = cxx / cw - self.cmu ** 2 - - def compute_em_frame(self, frame, nu): - """Run a whole em step for one frame. frame and nu should be float; - if you don't need to split E and M steps, this is faster than calling - compute_sufficient_statistics_frame and update_em_frame""" - _rawden.compute_em_frame_1d(frame, self.cw, self.cmu, self.cva, \ - self.cx, self.cxx, nu) - -def compute_factor(nframes, ku = 0.005, t0 = 200, nu0 = 0.2): - lamb = 1 - 1/(N.arange(-1, nframes - 1) * ku + t0) - nu = N.zeros((nframes, 1), N.float64) - nu[0] = nu0 - for i in range(1, nframes): - nu[i] = 1./(1 + lamb[i] / nu[i-1]) - return nu - -def online_gmm_em(data, ninit, k, mode = 'diag', step = None): - """ Emulate online_gmm_em of matlab, but uses scipy.sandbox.pyem""" - nframes = data.shape[0] - if data.ndim > 1: - d = data.shape[1] - else: - d = 1 - data = data[:, N.newaxis] - - nu = compute_factor(nframes) - - ogm = GM(d, k, mode) - ogmm = OnGMM1d(ogm, 'kmean') - init_data = data[:ninit, 0] - # We force 10 iteration for equivalence with matlab - ogmm.init(init_data, niter = 10) - # print "after init in python online_gmm_em" - # print ogmm.gm.w - # print ogmm.gm.mu - # print ogmm.gm.va - - wt = [] - mut = [] - vat = [] - - for t in range(nframes): - #ogmm.compute_sufficient_statistics(data[t:t+1, :], nu[t]) - #ogmm.update_em() - # Shit of 1 to agree exactly with matlab (index starting at 1) - # This is totally arbitrary otherwise - ogmm.compute_em_frame(data[t], nu[t]) - if ((t+1) % step) == 0: - wt.append(ogmm.cw.copy()) - mut.append(ogmm.cmu.copy()) - vat.append(ogmm.cva.copy()) - - mut = [m[:, N.newaxis] for m in mut] - vat = [v[:, N.newaxis] for v in vat] - ogmm.gm.set_param(ogmm.cw, ogmm.cmu[:, N.newaxis], ogmm.cva[:, N.newaxis]) - #ogmm.gm.set_param(ogmm.cw, ogmm.cmu, ogmm.cva) - - return ogm, wt, mut, vat - -#class OnlineEM: -# def __init__(self, ogm): -# """Init Online Em algorithm with ogm, an instance of OnGMM.""" -# if not isinstance(ogm, OnGMM): -# raise TypeError("expect a OnGMM instance for the model") -# -# def init_em(self): -# pass -# -# def train(self, data, nu): -# pass -# -# def train_frame(self, frame, nu): -# pass - -def multiple_gauss_den_frame(data, mu, va): - """Helper function to generate several Gaussian - pdf (different parameters) from one frame of data. - - Semantics depending on data's rank - - rank 0: mu and va expected to have rank 0 or 1 - - rank 1: mu and va expected to have rank 2.""" - if N.ndim(data) == 0: - # scalar case - k = mu.size - inva = 1/va - fac = (2*N.pi) ** (-1/2.0) * N.sqrt(inva) - y = ((data-mu) ** 2) * -0.5 * inva - return fac * N.exp(y.ravel()) - elif N.ndim(data) == 1: - # multi variate case (general case) - k = mu.shape[0] - y = N.zeros(k, data.dtype) - if mu.size == va.size: - # diag case - for i in range(k): - #y[i] = D.gauss_den(data, mu[i], va[i]) - # This is a bit hackish: _diag_gauss_den implementation's - # changes can break this, but I don't see how to easily fix this - y[i] = D._diag_gauss_den(data, mu[i], va[i], False, -1) - return y - else: - raise RuntimeError("full not implemented yet") - #for i in range(K): - # y[i] = D.gauss_den(data, mu[i, :], - # va[d*i:d*i+d, :]) - #return y.T - else: - raise RuntimeError("frame should be rank 0 or 1 only") - - -if __name__ == '__main__': - pass - #d = 1 - #k = 2 - #mode = 'diag' - #nframes = int(5e3) - #emiter = 4 - #seed(5) - - ##+++++++++++++++++++++++++++++++++++++++++++++++++ - ## Generate a model with k components, d dimensions - ##+++++++++++++++++++++++++++++++++++++++++++++++++ - #w, mu, va = GM.gen_param(d, k, mode, spread = 1.5) - #gm = GM.fromvalues(w, mu, va) - ## Sample nframes frames from the model - #data = gm.sample(nframes) - - ##++++++++++++++++++++++++++++++++++++++++++ - ## Approximate the models with classical EM - ##++++++++++++++++++++++++++++++++++++++++++ - ## Init the model - #lgm = GM(d, k, mode) - #gmm = GMM(lgm, 'kmean') - #gmm.init(data) - - #gm0 = copy.copy(gmm.gm) - ## The actual EM, with likelihood computation - #like = N.zeros(emiter) - #for i in range(emiter): - # g, tgd = gmm.sufficient_statistics(data) - # like[i] = N.sum(N.log(N.sum(tgd, 1)), axis = 0) - # gmm.update_em(data, g) - - ##++++++++++++++++++++++++++++++++++++++++ - ## Approximate the models with online EM - ##++++++++++++++++++++++++++++++++++++++++ - #ogm = GM(d, k, mode) - #ogmm = OnGMM(ogm, 'kmean') - #init_data = data[0:nframes / 20, :] - #ogmm.init(init_data) - - ## Forgetting param - #ku = 0.005 - #t0 = 200 - #lamb = 1 - 1/(N.arange(-1, nframes-1) * ku + t0) - #nu0 = 0.2 - #nu = N.zeros((len(lamb), 1)) - #nu[0] = nu0 - #for i in range(1, len(lamb)): - # nu[i] = 1./(1 + lamb[i] / nu[i-1]) - - #print "meth1" - ## object version of online EM - #for t in range(nframes): - # ogmm.compute_sufficient_statistics_frame(data[t], nu[t]) - # ogmm.update_em_frame() - - #ogmm.gm.set_param(ogmm.cw, ogmm.cmu, ogmm.cva) - - ## 1d optimized version - #ogm2 = GM(d, k, mode) - #ogmm2 = OnGMM1d(ogm2, 'kmean') - #ogmm2.init(init_data[:, 0]) - - #print "meth2" - ## object version of online EM - #for t in range(nframes): - # ogmm2.compute_sufficient_statistics_frame(data[t, 0], nu[t]) - # ogmm2.update_em_frame() - - ##ogmm2.gm.set_param(ogmm2.cw, ogmm2.cmu, ogmm2.cva) - - #print ogmm.cw - #print ogmm2.cw - ##+++++++++++++++ - ## Draw the model - ##+++++++++++++++ - #print "drawing..." - #import pylab as P - #P.subplot(2, 1, 1) - - #if not d == 1: - # # Draw what is happening - # P.plot(data[:, 0], data[:, 1], '.', label = '_nolegend_') - - # h = gm.plot() - # [i.set_color('g') for i in h] - # h[0].set_label('true confidence ellipsoides') - - # h = gm0.plot() - # [i.set_color('k') for i in h] - # h[0].set_label('initial confidence ellipsoides') - - # h = lgm.plot() - # [i.set_color('r') for i in h] - # h[0].set_label('confidence ellipsoides found by EM') - - # h = ogmm.gm.plot() - # [i.set_color('m') for i in h] - # h[0].set_label('confidence ellipsoides found by Online EM') - - # # P.legend(loc = 0) - #else: - # # Real confidence ellipses - # h = gm.plot1d() - # [i.set_color('g') for i in h['pdf']] - # h['pdf'][0].set_label('true pdf') - - # # Initial confidence ellipses as found by kmean - # h0 = gm0.plot1d() - # [i.set_color('k') for i in h0['pdf']] - # h0['pdf'][0].set_label('initial pdf') - - # # Values found by EM - # hl = lgm.plot1d(fill = 1, level = 0.66) - # [i.set_color('r') for i in hl['pdf']] - # hl['pdf'][0].set_label('pdf found by EM') - - # P.legend(loc = 0) - - # # Values found by Online EM - # hl = ogmm.gm.plot1d(fill = 1, level = 0.66) - # [i.set_color('m') for i in hl['pdf']] - # hl['pdf'][0].set_label('pdf found by Online EM') - - # P.legend(loc = 0) - - #P.subplot(2, 1, 2) - #P.plot(nu) - #P.title('Learning rate') - #P.show() diff --git a/scikits/learn/em/profile_data/blop.c b/scikits/learn/em/profile_data/blop.c deleted file mode 100644 index e172ea4885..0000000000 --- a/scikits/learn/em/profile_data/blop.c +++ /dev/null @@ -1,37 +0,0 @@ -#include <math.h> -#include <stddef.h> - -int compute(const double *in, size_t n, size_t d, const double* mu, double* out) -{ - size_t i, j; - double acc; - - for (i = 0; i < n; ++i) { - acc = 0; - for (j = 0; j < d; ++j) { - acc += (in[i*d+j] - mu[j]) * (in[i*d+j] - mu[j]); - } - out[i] = exp(acc); - } - - return 0; -} - -#if 0 -int main(void) -{ - const size_t n = 1e5; - const size_t d = 30; - size_t iter = 10, i; - - double *in, *out; - - in = malloc(sizeof(*in) * n * d); - out = malloc(sizeof(*out) * n * d); - - for (i = 0; i < iter; ++i) { - } - free(in); - out(in); -} -#endif diff --git a/scikits/learn/em/profile_data/gden.m b/scikits/learn/em/profile_data/gden.m deleted file mode 100644 index ae8dd0174f..0000000000 --- a/scikits/learn/em/profile_data/gden.m +++ /dev/null @@ -1,10 +0,0 @@ -function out = gden(x, mu) - -% Last Change: Mon Jun 04 10:00 AM 2007 J -[n, d] = size(x); -[nm, dm] = size(mu); -if nm ~= n - out = sum(x-repmat(mu, n, 1), 1); -else - out = sum(x-mu, 1); -end; diff --git a/scikits/learn/em/profile_data/mat_prof.m b/scikits/learn/em/profile_data/mat_prof.m deleted file mode 100644 index eb9944479c..0000000000 --- a/scikits/learn/em/profile_data/mat_prof.m +++ /dev/null @@ -1,11 +0,0 @@ -% Last Change: Mon Jun 04 10:00 AM 2007 J - -n = 1e5; -d = 30; - -x = randn(n, d); -mu = randn(n, d); - -for i=1:10 - y = gden(x, mu); -end; diff --git a/scikits/learn/em/profile_data/profile_densities.py b/scikits/learn/em/profile_data/profile_densities.py deleted file mode 100644 index 85ad5cab8c..0000000000 --- a/scikits/learn/em/profile_data/profile_densities.py +++ /dev/null @@ -1,71 +0,0 @@ -import numpy as N -from numpy.random import randn - -from numpy.ctypeslib import load_library, ndpointer -from ctypes import cdll, c_uint, c_int, c_double, POINTER - -lib = load_library("blop.so", "file") - -arg1 = ndpointer(dtype=N.float64) -arg2 = c_uint -arg3 = c_uint -arg4 = ndpointer(dtype=N.float64) -arg5 = ndpointer(dtype=N.float64) - -lib.compute.argtypes = [arg1, arg2, arg3, arg4, arg5] -lib.compute.restype = c_int -# Compare computing per component likelihood for frame per row vs frame per column -def component_likelihood(x, mu, va, log = False): - """expect one frame to be one row (rank 2). mu and var are rank 1 array.""" - x -= mu - x **= 2 - return N.exp(N.dot(x, N.ones((mu.size, 1), x.dtype))) - -def component_likelihood3(x, mu, va, log = False): - """expect one frame to be one row (rank 2). mu and var are rank 1 array.""" - y = N.empty(x.shape[0], x.dtype) - lib.compute(x, x.shape[0], x.shape[1], mu, y) - return y - -def bench(func, mode = 'diag'): - d = 30 - n = 1e5 - niter = 10 - - print "Compute %d times densities, %d dimension, %d frames" % (niter, d, n) - mu = 0.1 * randn(d) - va = 0.1 * abs(randn(d)) - - X = 0.1 * randn(n, d) - for i in range(niter): - Y = func(X, mu, va) - -def benchpy(): - bench(component_likelihood) - -def benchpy3(): - bench(component_likelihood3) - -def benchpy2(): - bench2(component_likelihood2) - -if __name__ == "__main__": - #import hotshot, hotshot.stats - #profile_file = 'gdenpy.prof' - #prof = hotshot.Profile(profile_file, lineevents=1) - #prof.runcall(benchpy) - #p = hotshot.stats.load(profile_file) - #print p.sort_stats('cumulative').print_stats(20) - #prof.close() - - #profile_file = 'gdenc.prof' - #prof = hotshot.Profile(profile_file, lineevents=1) - #prof.runcall(benchpy3) - #p = hotshot.stats.load(profile_file) - #print p.sort_stats('cumulative').print_stats(20) - #prof.close() - - #import cProfile as profile - #profile.run('benchpy()', 'fooprof') - benchpy() - benchpy3() diff --git a/scikits/learn/em/profile_data/profile_gmm.py b/scikits/learn/em/profile_data/profile_gmm.py deleted file mode 100644 index b9f260a5ba..0000000000 --- a/scikits/learn/em/profile_data/profile_gmm.py +++ /dev/null @@ -1,68 +0,0 @@ -import numpy as N -from scipy.sandbox.pyem import GM, GMM -import copy - -def bench1(mode = 'diag'): - #=========================================== - # GMM of 20 comp, 20 dimension, 1e4 frames - #=========================================== - d = 15 - k = 30 - nframes = 1e5 - niter = 10 - mode = 'diag' - - print "=============================================================" - print "(%d dim, %d components) GMM with %d iterations, for %d frames" \ - % (d, k, niter, nframes) - - #+++++++++++++++++++++++++++++++++++++++++++ - # Create an artificial GMM model, samples it - #+++++++++++++++++++++++++++++++++++++++++++ - print "Generating the mixture" - # Generate a model with k components, d dimensions - w, mu, va = GM.gen_param(d, k, mode, spread = 3) - # gm = GM(d, k, mode) - # gm.set_param(w, mu, va) - gm = GM.fromvalues(w, mu, va) - - # Sample nframes frames from the model - data = gm.sample(nframes) - - #++++++++++++++++++++++++ - # Learn the model with EM - #++++++++++++++++++++++++ - - # Init the model - print "Init a model for learning, with kmean for initialization" - lgm = GM(d, k, mode) - gmm = GMM(lgm, 'kmean') - - gmm.init(data) - # Keep the initialized model for drawing - gm0 = copy.copy(lgm) - - # The actual EM, with likelihood computation - like = N.zeros(niter) - - print "computing..." - for i in range(niter): - print "iteration %d" % i - g, tgd = gmm.sufficient_statistics(data) - like[i] = N.sum(N.log(N.sum(tgd, 1))) - gmm.update_em(data, g) - -if __name__ == "__main__": - import hotshot, hotshot.stats - profile_file = 'gmm.prof' - prof = hotshot.Profile(profile_file, lineevents=1) - prof.runcall(bench1) - p = hotshot.stats.load(profile_file) - print p.sort_stats('cumulative').print_stats(20) - prof.close() - # import profile - # profile.run('bench1()', 'gmmprof') - # import pstats - # p = pstats.Stats('gmmprof') - # print p.sort_stats('cumulative').print_stats(20) - diff --git a/scikits/learn/em/profile_data/profile_online_em.py b/scikits/learn/em/profile_data/profile_online_em.py deleted file mode 100644 index 2d403fe256..0000000000 --- a/scikits/learn/em/profile_data/profile_online_em.py +++ /dev/null @@ -1,241 +0,0 @@ -# /usr/bin/python -# Last Change: Wed Dec 06 08:00 PM 2006 J -import copy - -import numpy as N - -from gauss_mix import GM -from gmm_em import GMM - -def _generate_data(nframes, d, k, mode = 'diag'): - N.random.seed(0) - w, mu, va = GM.gen_param(d, k, mode, spread = 1.5) - gm = GM.fromvalues(w, mu, va) - # Sample nframes frames from the model - data = gm.sample(nframes) - - #++++++++++++++++++++++++++++++++++++++++++ - # Approximate the models with classical EM - #++++++++++++++++++++++++++++++++++++++++++ - emiter = 5 - # Init the model - lgm = GM(d, k, mode) - gmm = GMM(lgm, 'kmean') - gmm.init(data) - - gm0 = copy.copy(gmm.gm) - # The actual EM, with likelihood computation - like = N.zeros(emiter) - for i in range(emiter): - g, tgd = gmm.sufficient_statistics(data) - like[i] = N.sum(N.log(N.sum(tgd, 1)), axis = 0) - gmm.update_em(data, g) - - return data, gm - -nframes = int(5e3) -d = 1 -k = 2 -niter = 1 - -def test_v1(): - # Generate test data - data, gm = _generate_data(nframes, d, k) - for i in range(niter): - iter_1(data, gm) - -def test_v2(): - # Generate test data - data, gm = _generate_data(nframes, d, k) - for i in range(niter): - iter_2(data, gm) - -def test_v3(): - # Generate test data - data, gm = _generate_data(nframes, d, k) - for i in range(niter): - iter_3(data, gm) - -def test_v4(): - # Generate test data - data, gm = _generate_data(nframes, d, k) - for i in range(niter): - iter_4(data, gm) - -def iter_1(data, gm): - """Online EM with original densities + original API""" - from online_em import OnGMM - - nframes = data.shape[0] - ogm = copy.copy(gm) - ogmm = OnGMM(ogm, 'kmean') - init_data = data[0:nframes / 20, :] - ogmm.init(init_data) - - # Forgetting param - ku = 0.005 - t0 = 200 - lamb = 1 - 1/(N.arange(-1, nframes-1) * ku + t0) - nu0 = 0.2 - nu = N.zeros((len(lamb), 1)) - nu[0] = nu0 - for i in range(1, len(lamb)): - nu[i] = 1./(1 + lamb[i] / nu[i-1]) - - # object version of online EM - for t in range(nframes): - ogmm.compute_sufficient_statistics_frame(data[t], nu[t]) - ogmm.update_em_frame() - - ogmm.gm.set_param(ogmm.cw, ogmm.cmu, ogmm.cva) - print ogmm.cw - print ogmm.cmu - print ogmm.cva - -def iter_2(data, gm): - """Online EM with densities2 + original API""" - from online_em2 import OnGMM - - nframes = data.shape[0] - ogm = copy.copy(gm) - ogmm = OnGMM(ogm, 'kmean') - init_data = data[0:nframes / 20, :] - ogmm.init(init_data) - - # Forgetting param - ku = 0.005 - t0 = 200 - lamb = 1 - 1/(N.arange(-1, nframes-1) * ku + t0) - nu0 = 0.2 - nu = N.zeros((len(lamb), 1)) - nu[0] = nu0 - for i in range(1, len(lamb)): - nu[i] = 1./(1 + lamb[i] / nu[i-1]) - - # object version of online EM - for t in range(nframes): - ogmm.compute_sufficient_statistics_frame(data[t], nu[t]) - ogmm.update_em_frame() - - ogmm.gm.set_param(ogmm.cw, ogmm.cmu, ogmm.cva) - print ogmm.cw - print ogmm.cmu - print ogmm.cva - -def iter_3(data, gm): - """Online EM with densities + 1d API""" - from online_em import OnGMM1d - - #def blop(self, frame, nu): - # self.compute_sufficient_statistics_frame(frame, nu) - #OnGMM.blop = blop - - nframes = data.shape[0] - ogm = copy.copy(gm) - ogmm = OnGMM1d(ogm, 'kmean') - init_data = data[0:nframes / 20, :] - ogmm.init(init_data[:, 0]) - - # Forgetting param - ku = 0.005 - t0 = 200 - lamb = 1 - 1/(N.arange(-1, nframes-1) * ku + t0) - nu0 = 0.2 - nu = N.zeros((len(lamb), 1)) - nu[0] = nu0 - for i in range(1, len(lamb)): - nu[i] = 1./(1 + lamb[i] / nu[i-1]) - - # object version of online EM - for t in range(nframes): - #assert ogmm.cw is ogmm.pw - #assert ogmm.cva is ogmm.pva - #assert ogmm.cmu is ogmm.pmu - a, b, c = ogmm.compute_sufficient_statistics_frame(data[t, 0], nu[t]) - ##ogmm.blop(data[t,0], nu[t]) - ogmm.update_em_frame(a, b, c) - - #ogmm.gm.set_param(ogmm.cw, ogmm.cmu, ogmm.cva) - print ogmm.cw - print ogmm.cmu - print ogmm.cva - -def iter_4(data, gm): - """Online EM with densities2 + 1d API""" - from online_em2 import OnGMM1d - - #def blop(self, frame, nu): - # self.compute_sufficient_statistics_frame(frame, nu) - #OnGMM.blop = blop - - nframes = data.shape[0] - ogm = copy.copy(gm) - ogmm = OnGMM1d(ogm, 'kmean') - init_data = data[0:nframes / 20, :] - ogmm.init(init_data[:, 0]) - - # Forgetting param - ku = 0.005 - t0 = 200 - lamb = 1 - 1/(N.arange(-1, nframes-1) * ku + t0) - nu0 = 0.2 - nu = N.zeros((len(lamb), 1)) - nu[0] = nu0 - for i in range(1, len(lamb)): - nu[i] = 1./(1 + lamb[i] / nu[i-1]) - - # object version of online EM - def blop(): - #for t in range(nframes): - # #assert ogmm.cw is ogmm.pw - # #assert ogmm.cva is ogmm.pva - # #assert ogmm.cmu is ogmm.pmu - # #a, b, c = ogmm.compute_sufficient_statistics_frame(data[t, 0], nu[t]) - # ###ogmm.blop(data[t,0], nu[t]) - # #ogmm.update_em_frame(a, b, c) - # ogmm.compute_em_frame(data[t, 0], nu[t]) - [ogmm.compute_em_frame(data[t, 0], nu[t]) for t in range(nframes)] - blop() - - #ogmm.gm.set_param(ogmm.cw, ogmm.cmu, ogmm.cva) - print ogmm.cw - print ogmm.cmu - print ogmm.cva - - - -if __name__ == '__main__': - #import hotshot, hotshot.stats - #profile_file = 'onem1.prof' - #prof = hotshot.Profile(profile_file, lineevents=1) - #prof.runcall(test_v1) - #p = hotshot.stats.load(profile_file) - #print p.sort_stats('cumulative').print_stats(20) - #prof.close() - - #import hotshot, hotshot.stats - #profile_file = 'onem2.prof' - #prof = hotshot.Profile(profile_file, lineevents=1) - #prof.runcall(test_v2) - #p = hotshot.stats.load(profile_file) - #print p.sort_stats('cumulative').print_stats(20) - #prof.close() - - import hotshot, hotshot.stats - profile_file = 'onem3.prof' - prof = hotshot.Profile(profile_file, lineevents=1) - prof.runcall(test_v3) - p = hotshot.stats.load(profile_file) - print p.sort_stats('cumulative').print_stats(20) - prof.close() - - import hotshot, hotshot.stats - profile_file = 'onem4.prof' - prof = hotshot.Profile(profile_file, lineevents=1) - prof.runcall(test_v4) - p = hotshot.stats.load(profile_file) - print p.sort_stats('cumulative').print_stats(20) - prof.close() - #test_v1() - #test_v2() - #test_v3() diff --git a/scikits/learn/em/setup.py b/scikits/learn/em/setup.py deleted file mode 100644 index 47ebe2b53c..0000000000 --- a/scikits/learn/em/setup.py +++ /dev/null @@ -1,33 +0,0 @@ -#! /usr/bin/env python -# Last Change: Mon Jul 02 02:00 PM 2007 J -# TODO: -# - check how to handle cmd line build options with distutils and use -# it in the building process - -"""This is a small python package to estimate Gaussian Mixtures Models -from data, using Expectation Maximization. - -Maximum likelihood EM for mixture of Gaussian is implemented, with BIC computation -for number of cluster assessment. - -There is also an experimental online EM version (the EM is updated for each new -sample), and I plan to add Variational Bayes and/or MCMC support for Bayesian approach -for estimating meta parameters of mixtures. """ -from os.path import join - -def configuration(parent_package='',top_path=None, package_name='em'): - from numpy.distutils.misc_util import Configuration - config = Configuration('em',parent_package, top_path) - config.add_data_dir('examples') - config.add_data_dir('tests') - config.add_data_dir('profile_data') - config.add_extension('c_gden', - sources=[join('src', 'c_gden.c')]) - config.add_extension('_rawden', - sources=[join('src', 'pure_den.c')]) - - return config - -if __name__ == "__main__": - from numpy.distutils.core import setup - setup(**configuration(top_path='').todict()) diff --git a/scikits/learn/em/src/Makefile b/scikits/learn/em/src/Makefile deleted file mode 100644 index 854b4106ee..0000000000 --- a/scikits/learn/em/src/Makefile +++ /dev/null @@ -1,42 +0,0 @@ -CC = colorgcc -LD = gcc - -PYREX = python2.4-pyrexc - -PYTHONINC = -I/usr/include/python2.4 -NUMPYINC = -I/home/david/local/lib/python2.4/site-packages/numpy/core/include -OPTIMS = -O3 -funroll-all-loops -march=pentium4 -msse2 -WARN = -Wall -W -Winline -Wstrict-prototypes -Wmissing-prototypes \ - -Waggregate-return -Wcast-align -Wcast-qual -Wnested-externs \ - -Wshadow -Wbad-function-cast -Wwrite-strings - -CFLAGS = $(PYTHONINC) $(NUMPYINC) $(OPTIMS) $(WARN) - -targets: c_gden.so _rawden.so - -c_gden.so: c_gden.o - $(LD) -shared -o $@ $< -Wl,-soname,$@ - -_rawden.so: pure_den.o - $(LD) -shared -o $@ $< -Wl,-soname,$@ - -c_gden.o: c_gden.c - $(CC) -c $(CFLAGS) -fPIC $< - -pure_den.o: pure_den.c - $(CC) -c $(CFLAGS) -fPIC $< - -#c_gmm.so: c_gmm.o -# $(LD) -shared -o $@ $< -Wl,-soname,$@ -# -#c_gmm.o: c_gmm.c -# $(CC) -c $(CFLAGS) -fPIC $< -# -#c_gmm.c: c_gmm.pyx c_numpy.pxd c_python.pxd -# $(PYREX) $< - -clean: - rm -f c_gmm.c - rm -f *.o - rm -f *.so - rm -f *.pyc diff --git a/scikits/learn/em/src/c_gden.c b/scikits/learn/em/src/c_gden.c deleted file mode 100644 index 82d6685b22..0000000000 --- a/scikits/learn/em/src/c_gden.c +++ /dev/null @@ -1,38 +0,0 @@ -#include <stddef.h> -#include <stdio.h> -#define _USE_MATH_DEFINES /* for Visual Studio */ -#include <math.h> - -/* - * use va for caching, so its content is modified - */ -int gden_diag(const double *in, const size_t n, const size_t d, - const double* mu, double* va, double* out) -{ - size_t j, i; - double fac = 1.0; - double acc, tmp; - - /* - * Cache some precomputing - */ - for(j = 0; j < d; ++j) { - va[j] = 0.5/va[j]; - fac *= sqrt(va[j] / (M_PI) ); - va[j] *= -1.0; - } - - /* - * actual computing - */ - for(i = 0; i < n; ++i) { - acc = 0; - for(j = 0; j < d; ++j) { - tmp = (in[i *d + j] - mu[j]); - acc += tmp * tmp * va[j]; - } - out[i] = exp(acc) * fac; - } - - return 0; -} diff --git a/scikits/learn/em/src/c_gmm.pyx b/scikits/learn/em/src/c_gmm.pyx deleted file mode 100644 index 2a670cbb81..0000000000 --- a/scikits/learn/em/src/c_gmm.pyx +++ /dev/null @@ -1,66 +0,0 @@ -# Last Change: Thu Jul 13 04:00 PM 2006 J - -cimport c_numpy -cimport c_python -import numpy - -c_numpy.import_array() - -# pyrex version of _vq. Much faster in high dimension/high number of K -# (ie K > 3-4) -def _vq(data, init): - (n, d) = data.shape - label = numpy.zeros(n, int) - _imp_vq(data, init, label) - - return label - -def _imp_vq(c_numpy.ndarray data, c_numpy.ndarray init, c_numpy.ndarray label): - cdef int n - cdef int d - cdef int nc - cdef int i - cdef int j - cdef int k - cdef int *labeld - cdef double *da, *code - cdef double dist - cdef double acc - - n = data.dimensions[0] - d = data.dimensions[1] - nc = init.dimensions[0] - - if not data.dtype == numpy.dtype(numpy.float64): - print '_vq not (yet) implemented for dtype %s'%dtype.name - return - da = (<double*>data.data) - - if not init.dtype == numpy.dtype(numpy.float64): - print '_vq not (yet) implemented for dtype %s'%dtype.name - return - code = (<double*>init.data) - - if not label.dtype == numpy.dtype(numpy.int32): - print '_vq not (yet) implemented for dtype %s'%dtype.name - return - labeld = (<int*>label.data) - - for i from 0<=i<n: - acc = 0 - lab = 0 - for j from 0<=j<d: - acc = acc + (da[i * d + j] - code[j]) * \ - (da[i * d + j] - code[j]) - dist = acc - for k from 1<=k<nc: - acc = 0 - for j from 0<=j<d: - acc = acc + (da[i * d + j] - code[k * d + j]) * \ - (da[i * d + j] - code[k * d + j]) - if acc < dist: - dist = acc - lab = k - labeld[i] = lab - - return lab diff --git a/scikits/learn/em/src/pure_den.c b/scikits/learn/em/src/pure_den.c deleted file mode 100644 index 27ca134427..0000000000 --- a/scikits/learn/em/src/pure_den.c +++ /dev/null @@ -1,462 +0,0 @@ -/* - * Last Change: Mon May 28 01:00 PM 2007 J - * - * Pure C module because ctypes cannot be used here for performance reasons - * (function calls are the primary bottleneck) - */ -#include <Python.h> -#include <numpy/arrayobject.h> - -#define _USE_MATH_DEFINES -#include <math.h> - -PyObject* compute_ss_frame_1d_py(PyObject* dum, PyObject *arg); -PyObject* compute_em_frame_1d_py(PyObject* dum, PyObject *arg); - -/* - * Pure C methods - */ -static int compute_ss_frame_1d(double sample, int nc, double* w, double* mu, double *va, - double *cx, double *cxx, double nu); -static int update_em_frame_1d(const double* w, const double* cx, const double *cxx, - int nc, double *cmu, double *cva); - -static PyMethodDef mymethods[] = { - {"compute_ss_frame_1d", compute_ss_frame_1d_py, METH_VARARGS, ""}, - {"compute_em_frame_1d", compute_em_frame_1d_py, METH_VARARGS, ""}, - {NULL, NULL, 0, NULL} /* Sentinel */ -}; - -/* - * function table - */ -PyMODINIT_FUNC init_rawden(void) -{ - (void)Py_InitModule("_rawden", mymethods); - import_array(); -} - -PyObject* compute_ss_frame_1d_py(PyObject* self, PyObject *args) -{ - PyObject *w, *mu, *va, *cx, *cxx; - PyObject *w_a, *mu_a, *va_a, *cx_a, *cxx_a; - double nu, sample; - npy_intp ndim, *dims, len; - double *mu_ca, *va_ca, *w_ca, *cx_ca, *cxx_ca; - - const npy_intp mrank = 1; - - int st; - - /* - * Init python object holder to NULL so that we can use Py_XDECREF on all - * the objets when something is woring - */ - w = NULL; - mu = NULL; - va = NULL; - cx = NULL; - cxx = NULL; - - w_a = NULL; - mu_a = NULL; - va_a = NULL; - cx_a = NULL; - cxx_a = NULL; - /* - * Parsing of args: w, cx and cxx are inout - */ - if (!PyArg_ParseTuple(args, "dOOOOOd", &sample, &w, &mu, &va, &cx, &cxx, &nu)){ - return NULL; - } - if ( (nu > 1) | (nu <= 0) ) { - PyErr_SetString(PyExc_TypeError, "nu should be between 0 and 1"); - return NULL; - } - - /* inout entries */ - w_a = PyArray_FROM_OTF(w, NPY_DOUBLE, NPY_INOUT_ARRAY); - if (w_a == NULL) { - PyErr_SetString(PyExc_TypeError, "w array not convertible"); - return NULL; - } - - cx_a = PyArray_FROM_OTF(cx, NPY_DOUBLE, NPY_INOUT_ARRAY); - if (cx_a == NULL) { - PyErr_SetString(PyExc_TypeError, "cx array not convertible"); - goto fail; - } - - cxx_a = PyArray_FROM_OTF(cxx, NPY_DOUBLE, NPY_INOUT_ARRAY); - if (cxx_a == NULL) { - PyErr_SetString(PyExc_TypeError, "cxx array not convertible"); - goto fail; - } - - /* in only entries */ - mu_a = PyArray_FROM_OTF(mu, NPY_DOUBLE, NPY_IN_ARRAY); - if (mu_a == NULL) { - PyErr_SetString(PyExc_TypeError, "mu array not convertible"); - goto fail; - } - - va_a = PyArray_FROM_OTF(va, NPY_DOUBLE, NPY_IN_ARRAY); - if (va_a == NULL) { - PyErr_SetString(PyExc_TypeError, "va array not convertible"); - goto fail; - } - - /* - * Check that in and out have same size and same rank - */ - ndim = PyArray_NDIM(w_a); - if(ndim != mrank) { - PyErr_SetString(PyExc_TypeError, "w rank should be 1"); - goto fail; - } - ndim = PyArray_NDIM(cx_a); - if(ndim != mrank) { - PyErr_SetString(PyExc_TypeError, "cx rank should be 1"); - goto fail; - } - ndim = PyArray_NDIM(cxx_a); - if(ndim != mrank) { - PyErr_SetString(PyExc_TypeError, "cxx rank should be 1"); - goto fail; - } - ndim = PyArray_NDIM(mu_a); - if(ndim != mrank) { - PyErr_SetString(PyExc_TypeError, "mu rank should be 1"); - goto fail; - } - ndim = PyArray_NDIM(va_a); - if(ndim != mrank) { - PyErr_SetString(PyExc_TypeError, "va rank should be 1"); - goto fail; - } - - dims = PyArray_DIMS(w_a); - len = dims[0]; - //fprintf(stderr, "%s:%s, len is %d\n", __FILE__, __func__, len); - dims = PyArray_DIMS(cx_a); - if(dims[0] != len) { - PyErr_SetString(PyExc_TypeError, "cx shape should match !"); - goto fail; - } - dims = PyArray_DIMS(cxx_a); - if(dims[0] != len) { - PyErr_SetString(PyExc_TypeError, "cxx shape should match !"); - goto fail; - } - dims = PyArray_DIMS(mu_a); - if(dims[0] != len) { - PyErr_SetString(PyExc_TypeError, "mu_a shape should match !"); - goto fail; - } - dims = PyArray_DIMS(va_a); - if(dims[0] != len) { - PyErr_SetString(PyExc_TypeError, "va_a shape should match !"); - goto fail; - } - - /* - * Get pointer to the data - */ - w_ca = PyArray_DATA(w_a); - if (w_ca == NULL) { - PyErr_SetString(PyExc_TypeError, "Unknown Error for w_ca"); - goto fail; - } - cx_ca = PyArray_DATA(cx_a); - if (cx_ca == NULL) { - PyErr_SetString(PyExc_TypeError, "Unknown Error for cx_ca"); - goto fail; - } - cxx_ca = PyArray_DATA(cxx_a); - if (w_ca == NULL) { - PyErr_SetString(PyExc_TypeError, "Unknown Error for cxx_ca"); - goto fail; - } - mu_ca = PyArray_DATA(mu_a); - if (mu_ca == NULL) { - PyErr_SetString(PyExc_TypeError, "Unknown Error for mu_ca"); - goto fail; - } - va_ca = PyArray_DATA(va_a); - if (va_ca == NULL) { - PyErr_SetString(PyExc_TypeError, "Unknown Error for va_ca"); - goto fail; - } - /* - * Call actual implementation - */ - st = compute_ss_frame_1d(sample, len, w_ca, mu_ca, va_ca, cx_ca, cxx_ca, nu); - if (st) { - PyErr_SetString(PyExc_TypeError, "Error while calling multi_gauss...."); - goto fail; - } - - Py_DECREF(w_a); - Py_DECREF(cx_a); - Py_DECREF(cxx_a); - Py_DECREF(mu_a); - Py_DECREF(va_a); - - Py_INCREF(Py_None); - return Py_None; - -fail: - Py_XDECREF(w_a); - Py_XDECREF(cx_a); - Py_XDECREF(cxx_a); - Py_XDECREF(mu_a); - Py_XDECREF(va_a); - return NULL; -} - -PyObject* compute_em_frame_1d_py(PyObject* self, PyObject *args) -{ - PyObject *w, *mu, *va, *cx, *cxx; - PyObject *w_a, *mu_a, *va_a, *cx_a, *cxx_a; - double nu, sample; - npy_intp ndim, *dims, len; - double *mu_ca, *va_ca, *w_ca, *cx_ca, *cxx_ca; - - const npy_intp mrank = 1; - - int st; - - /* - * Init python object holder to NULL so that we can use Py_XDECREF on all - * the objets when something is woring - */ - w = NULL; - mu = NULL; - va = NULL; - cx = NULL; - cxx = NULL; - - w_a = NULL; - mu_a = NULL; - va_a = NULL; - cx_a = NULL; - cxx_a = NULL; - /* - * Parsing of args: w, cx and cxx are inout - */ - if (!PyArg_ParseTuple(args, "dOOOOOd", &sample, &w, &mu, &va, &cx, &cxx, &nu)){ - return NULL; - } - if ( (nu > 1) | (nu <= 0) ) { - PyErr_SetString(PyExc_TypeError, "nu should be between 0 and 1"); - return NULL; - } - - /* inout entries */ - w_a = PyArray_FROM_OTF(w, NPY_DOUBLE, NPY_INOUT_ARRAY); - if (w_a == NULL) { - PyErr_SetString(PyExc_TypeError, "w array not convertible"); - return NULL; - } - - cx_a = PyArray_FROM_OTF(cx, NPY_DOUBLE, NPY_INOUT_ARRAY); - if (cx_a == NULL) { - PyErr_SetString(PyExc_TypeError, "cx array not convertible"); - goto fail; - } - - cxx_a = PyArray_FROM_OTF(cxx, NPY_DOUBLE, NPY_INOUT_ARRAY); - if (cxx_a == NULL) { - PyErr_SetString(PyExc_TypeError, "cxx array not convertible"); - goto fail; - } - - /* in only entries */ - mu_a = PyArray_FROM_OTF(mu, NPY_DOUBLE, NPY_IN_ARRAY); - if (mu_a == NULL) { - PyErr_SetString(PyExc_TypeError, "mu array not convertible"); - goto fail; - } - - va_a = PyArray_FROM_OTF(va, NPY_DOUBLE, NPY_IN_ARRAY); - if (va_a == NULL) { - PyErr_SetString(PyExc_TypeError, "va array not convertible"); - goto fail; - } - - /* - * Check that in and out have same size and same rank - */ - ndim = PyArray_NDIM(w_a); - if(ndim != mrank) { - PyErr_SetString(PyExc_TypeError, "w rank should be 1"); - goto fail; - } - ndim = PyArray_NDIM(cx_a); - if(ndim != mrank) { - PyErr_SetString(PyExc_TypeError, "cx rank should be 1"); - goto fail; - } - ndim = PyArray_NDIM(cxx_a); - if(ndim != mrank) { - PyErr_SetString(PyExc_TypeError, "cxx rank should be 1"); - goto fail; - } - ndim = PyArray_NDIM(mu_a); - if(ndim != mrank) { - PyErr_SetString(PyExc_TypeError, "mu rank should be 1"); - goto fail; - } - ndim = PyArray_NDIM(va_a); - if(ndim != mrank) { - PyErr_SetString(PyExc_TypeError, "va rank should be 1"); - goto fail; - } - - dims = PyArray_DIMS(w_a); - len = dims[0]; - //fprintf(stderr, "%s:%s, len is %d\n", __FILE__, __func__, len); - dims = PyArray_DIMS(cx_a); - if(dims[0] != len) { - PyErr_SetString(PyExc_TypeError, "cx shape should match !"); - goto fail; - } - dims = PyArray_DIMS(cxx_a); - if(dims[0] != len) { - PyErr_SetString(PyExc_TypeError, "cxx shape should match !"); - goto fail; - } - dims = PyArray_DIMS(mu_a); - if(dims[0] != len) { - PyErr_SetString(PyExc_TypeError, "mu_a shape should match !"); - goto fail; - } - dims = PyArray_DIMS(va_a); - if(dims[0] != len) { - PyErr_SetString(PyExc_TypeError, "va_a shape should match !"); - goto fail; - } - - /* - * Get pointer to the data - */ - w_ca = PyArray_DATA(w_a); - if (w_ca == NULL) { - PyErr_SetString(PyExc_TypeError, "Unknown Error for w_ca"); - goto fail; - } - cx_ca = PyArray_DATA(cx_a); - if (cx_ca == NULL) { - PyErr_SetString(PyExc_TypeError, "Unknown Error for cx_ca"); - goto fail; - } - cxx_ca = PyArray_DATA(cxx_a); - if (w_ca == NULL) { - PyErr_SetString(PyExc_TypeError, "Unknown Error for cxx_ca"); - goto fail; - } - mu_ca = PyArray_DATA(mu_a); - if (mu_ca == NULL) { - PyErr_SetString(PyExc_TypeError, "Unknown Error for mu_ca"); - goto fail; - } - va_ca = PyArray_DATA(va_a); - if (va_ca == NULL) { - PyErr_SetString(PyExc_TypeError, "Unknown Error for va_ca"); - goto fail; - } - /* - * Call actual implementation - */ - st = compute_ss_frame_1d(sample, len, w_ca, mu_ca, va_ca, cx_ca, cxx_ca, nu); - if (st) { - PyErr_SetString(PyExc_TypeError, "Error while calling multi_gauss...."); - goto fail; - } - st = update_em_frame_1d(w_ca, cx_ca, cxx_ca, len, mu_ca, va_ca); - if (st) { - PyErr_SetString(PyExc_TypeError, "Error while calling update_em_frame_1d...."); - goto fail; - } - - Py_DECREF(w_a); - Py_DECREF(cx_a); - Py_DECREF(cxx_a); - Py_DECREF(mu_a); - Py_DECREF(va_a); - - Py_INCREF(Py_None); - return Py_None; - -fail: - Py_XDECREF(w_a); - Py_XDECREF(cx_a); - Py_XDECREF(cxx_a); - Py_XDECREF(mu_a); - Py_XDECREF(va_a); - return NULL; -} - -int compute_ss_frame_1d(double sample, int nc, double* w, double* mu, double *va, - double *cx, double *cxx, double nu) -{ - /* - * TODO: check va division - */ - int i; - double inva, fac, *gam, acc; - - gam = malloc(sizeof(*gam) * nc); - if (gam == NULL) { - return -1; - } - - /* Compute gamma */ - acc = 0; - for (i = 0; i < nc; ++i) { - inva = 1/va[i]; - fac = 1 / sqrt(2 * M_PI * va[i]); - gam[i] = fac * exp( -0.5 * inva * (sample - mu[i]) * (sample - mu[i])); - gam[i] *= w[i]; - acc += gam[i]; - } - /* Normalize gamma */ - for (i = 0; i < nc; ++i) { - gam[i] /= acc; - } - - /* Compute new SS from EM (cx and cxx) */ - for (i = 0; i < nc; ++i) { - w[i] *= (1 - nu); - w[i] += nu * gam[i]; - cx[i] = (1 - nu) * cx[i] + nu * sample * gam[i]; - cxx[i] = (1 - nu) * cxx[i] + nu * sample * sample * gam[i]; - } - - free(gam); - - return 0; -} - -/* - * update mu and va from SS w, cx and cxx. Only mu and va are modified - * all arrays have same length nc - */ -int update_em_frame_1d(const double* cw, const double* cx, const double *cxx, - int nc, double *cmu, double *cva) -{ - /* - * TODO: check va division - */ - int i; - double invw; - - /* Compute new SS from EM (cx and cxx) */ - for (i = 0; i < nc; ++i) { - invw = 1/cw[i]; - cmu[i] = cx[i] * invw; - cva[i] = cxx[i] * invw - cmu[i] * cmu[i]; - } - - return 0; -} diff --git a/scikits/learn/em/tests/__init__.py b/scikits/learn/em/tests/__init__.py deleted file mode 100644 index e9a78bf4fc..0000000000 --- a/scikits/learn/em/tests/__init__.py +++ /dev/null @@ -1 +0,0 @@ -"""This is here just to make local imports from this module""" diff --git a/scikits/learn/em/tests/diag_1d_3k.mat b/scikits/learn/em/tests/diag_1d_3k.mat deleted file mode 100644 index 8e5e93a770c6a4e8588399fa1fc996bb9a782a9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4451 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 diff --git a/scikits/learn/em/tests/diag_1d_4k.mat b/scikits/learn/em/tests/diag_1d_4k.mat deleted file mode 100644 index 103a598e4df25670dec482fabb0b40eae8ce1b07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4523 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 diff --git a/scikits/learn/em/tests/diag_2d_3k.mat b/scikits/learn/em/tests/diag_2d_3k.mat deleted file mode 100644 index 36ded5a87dfeaf190b956145fb1d5f5f009f90e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8595 zcmZQzU|?WoU|?VZF`(?SM24<;F)Iw7?6vPWH0Ousk<a!Fet9>N*50ybd($pbAAQZ9 zqvoEe#<~~w4LtVM@@@z1LAsHRVPRlk$SpNsSooL!MS%K$`xZXE!xj4;>|b?r*4Bk< zpV^DF+?Ms+b8r7T-#G{0hkdZu@Z20MH;35)WDX<L86Y;u%#w13#;8Z$pT9n|SCZ^| z{@43}eXd<eiPXExU~9iHB3#ePz`&4_Sdz%#@Vjw};OEQx&)>SvUr=^=|1Umajz0~O z4(rdg?RmQG+5TYjr}~BI(hg6)>08f=<v1|CLzuHnTH4{JOrV*n)s6i<N^kp?9Fldg z*0lQ_c|*#frCHRwVYQ@#>&oSu#C&h=XOHYISrH=S&{p;CVOkUOfh(#%KhD}A>aZ!> zXSQJ>^8u-i8_KGLnGY=g*Jk;apY6cP<u3KdmfhU%CeF`qyG-DK!^y=H&)t-CXzSyc zaEedTVP0j+ot*L)`$cTFOFb5pba?TU`BGxqpZ#51+50zVGat}0Qa@AJA?L8u*RA;S zR$+(K-?3X|EhQZuytS|7y&>js_TDrL<ye*jVPUJ9Ts!3**koT`jPHH6zvU=rYUqDS z2YaE{Mo~Y+9pVjo+!l0*JDlF6lc~@3bAOn@Kj#2(afjd|XY-EDmvWfP%3O8&ue3wX zg<Z|hoFyENeUrDn&@JS!*Cn9r*)fI#X--?%m|jada4XzdvbjXUp+uKmg?*ij!-uc0 zU0QkW?!Oy;eeE+235SE<_n7=vy1U=8OO@r8v!sKVx88s6fCu~E-ApWbbw}J`uQAj4 zuSW0p%h#AMnlAf!|ArkuD>uilvcJ5dNoTsBhy&Y$#`yJTB^{Kv|5^NnQ^w(`x=q~4 zi?R-Xf)8;TF^fAqtK2u8Sy<dbvv~4RU14#DNeRZ6*ni46)bW_I+%`Y3zvAoZ@Kjr- z1KMu#77tn^9cG4IFw?&!?(mBFgy7ys5)OA~2TV!SVL$M)(5kN2;Pw6k>~b1icCrr6 zcatV+rg9w+b!+@8c3Q~c?cwO9n-4tMuc_C(q;;mG!z-<P_dTm593JkRTH&exdB3Ut zmMJUKB^~<COzgBVezspR(D5Cgt)zp0#@scH%Y+ZiO5y(Gbz9P5$FI-Qe;rQm@4TtA zJ<8?${yS#`DtD|DaR^(n$?jvu-~F<moQfCE=RB}9B%r#oSl~eN(J6b+ILbK8=E<MC zR^aLW*HIs$5@Mwt80!BBKK%S>{{rrsRntl??ypUiNSxR$=)g3|tM1{9i~BROnM_$H zi#gnSZOpm;-KG70lal;gO*jrHp7|uOKI#7cOLwkIaEe~q&vdw^)LHb}{^@7th^So` zcj!99D()orVSl@;=Izv@oCkK89NeMLEaq_Xo$}$-PrvqGe-xJXB3a78p@i-FEF&q0 zUz*aICBZ@mN?uP-SQ#(jkT5xFZxuV|f$F(2d-j@&Ip|%nQ`osk)*&kKtW##Bq(kv4 z?p8&6_5+8rn7h)~a~@dqc$XBXCDQ@V$Y-pnYncz!p1ys${m;k!B?=<y>u$?9)Zf>h zw)5hP{fmUw>6uTGaB$i!pZZu!(qV@8I_5f-z4kr^1zqB2KkqNL>HG3&^7;KI!tMU0 zHA*>De!p81pY>*cglN!g6~`C*PZW0Ec0KcYzu(pw+I_Pm9p;FtTC{$8vfpIqVV^=d z8Ha`T{bHt7Ob3+I40i2q6>+dWwE98N<LCR=T#7rjV*aK5w>Hc>n?38te(gm*TIO+5 z4i*!NKFQk1IQ)?2nb9bCU_W1nkXO2xki$IIZ^dfs-tRZK`ePygft&VUnvyxyuk6@g zx5g?r;pm6`tDbSYvZ={9oI7B!>Schq!-_Z2N49-kxj)60Lz>w^%;A1<P{m{o83$I2 zH%lTf$~kb|dA{GvS<;~-RHj(ssiebA(aSd<=AYOfyZ<=LvDp$1ChN{J+!dE}h>SR1 z@!;X3{X8Ox@vrYb-p{r*ds_{+goBbT-};1D35TYZw@k8Y_zpaL?RsRM&6oWQ>grpU z-<ERN{BX%Et#i-zuMa)aTA(O!V7IB)6pop~4t9%0cN}sMJh16&l8y7O7yGX+d9z77 zPt4&`X6A1`W=V%)rTHR^$E6&~<e#iRW+d(KK~Uf6&Aco7Jy@sh=#u}izvRZw*&dr^ z9azlMu6mV9JDhvfG(ogW+#yCiWvYCbsKe}>G^gbpQVvpGr*$f_Bpr5^PQEjX>DB(@ zKZ4SJq)9rs8*Kh~>a2uAVoO(cNQR_C^}79>XKqM3OgX4Bal$6y10e@l6u)&!IJlhW z|Kg%2>2UD9;p3*(^ZU7f9F0v{^JagK7xTBByCog?`E+>9IGGN}t>^1ix0iI-eQx%* z5=%)30nU?CU+2uTZ{X_RUBM&nU{%!KJ88O@1CLnnqO)>*2Uv_QF0$Kpc)#0<Uw2F% za~^0qI%9!r)TR9!4sh5gc}hCy<OhbFd~tVwQQHRoDU8w%Kdlo!D{?>GFLVBDzFqm# z{r59kz22^rb@<F!!F}n`t^Kb)pL-sta(n;eo^|Y**Tfwj>PUXQZ6M`v_=s=d6Fzwd z9*?c&C%7dXuFlpEo%TZ7ft&fp;rTj}4z=@ZIZ`G|JGeV+7hBjO;o!=?cH3GtDF>!k zIb8wkI1h9+ZhE9*d&OQhzUT0S+Y%1P*t0w*{1A7TBKVN`X1=6@tjle_@+q(Ozt+o% z@^~cb&^CRu*NR}S19MNbCEfRzaA0BioboqI(!rhU^6aM5k`6!9CErb+E$P6}xcyB6 z&&&O{>R)F!HeT8Pg{?ljU-iKL3EWu|4fj9UKj*-`9x*9#2LYy|Reu+XIlO1+IUA71 zcR(Y;GKlN$hyAGxo@<jHia8wG<jisZoP>kUq{SOf3yV9vnW?cTi&4Vi`?3wI1D8JA ze{^d^{;EF40}JkQeEj8qe}DMovL)V?at@h0GPY^e2_1OKWcbrGP{Lus$r9lQGsPVg zdeU`M)voWK(D5wg-qcg}Te}{{{|XRu;IL3D5!PK~|2oW~?7|^YhZ)vRJj>la?e8(P z=#(<qzW;IQc6qC%5B77dvJnZG#(qG->g4Y?ITP)(Hno4}c_`^n!~L9v@9GVEBbTtn zV)Hl-`2WwV*efsVkT50q#PSUi4jUW=Y(*}KI_!D!OJ7Ii`Tmyj^P!tp$~x3@?VZ{1 zSKPs5enw8R{^$LMk(1Ml%oH5-c-u@wSfm^}+P|A;^=`7)-*TCkk5AG;lJEH1ZNDTP z8tnNpxP2uY`dX^KU->QR@PxrvZNa){`=72qtmgFV_5K?6NFSxkJNG;AZuhX+dvO0| zu3U>=!Mpo!J~+CGAwkyRaa6OSK&rIE<`}zD{%g_>)2tnKUVJIzz#FSp&M{HKA+A(& zah$Ta!wttj=T?1txS#n^l4#j)35N|a5BGiNTf3ia+pR~9Wl|2&8>d{FXDaQGeC17R z!DI=Cy<%3YbCOvOXa}C35b#6NLDBtYt5v3yL-n$UObRn39qR5c{2jLG;r<V-C9D5D z-MgP>jeZvUd`X8HAA&Bn-jj6TO~2h8zfr{DWVOR*&F_*94~}_T?pPx0aDUEDbIll8 zhm^YW)o1VW9Y|WFzwE2|hyBtQew4|~l5~hZB$g4NChc%AXs?Yymzcw?d#+QOx}NP% zu4(G8o+Re*@^DPisoKZ;ok9{;C<foyU-s;v$|jem`+r&edKoGz;~=&pExRjF+M#Mk z+s69&!Uqo5oM*07kaE~tKQZg2sf+{PAO3H*a-<xXt&M$^E{Z$E^V{FQr77-Eb~xi% z-kRt8U%j3FX#<yx!`cX)jFs0U9d4M<$%&jH<4|{DrblND&w(}P<}Oz5dA+}R%9$GH z?`#LyIqp8079!=~x4S2VD^=3rd~`>}<18r$7Lyg9ST=|{lun47y#Kr4fiFjLqdgBv zJ2dnxc-*^6%)$1=jmvusr5xU$E7*U}`r-c6zg=${E{Qo*^I!Puw(!~hL&jZCKd6g4 zY*`f67E~kYAoKg(gH-ni`+Mb*C#zM8J8UwrRy>(`cfYyW?es`}Ne9uK4KKdvo!oD} zKj_{yu{-;Ve6H*3PkFYV<J^9R+zAp68&n=lGmbgGe`>$@u^4a01D#K^3Oc69ICwoc zdgoP(sDn?hNJyyF3HvSn%H~erF75y1m}VLBQo`X#*oJ_2FTd^Q%A5AbDCf!kZ65va z)^|ubT#0DevO4<Se$#KpYbI_IIgqyUiz;vAt^IGN9bLUd<otfQKU)Ro?tZYpBK%$7 z;$BGy+mD+ogEzAr*txihB}iP%fn!=s(XB`^hd1w{XIQS1aLATgbkL7U(xFwFVV3fi z`}>=AFTQ;*SJXk*iqXtS?EL<_=^<<T-^)1US0&2S%Skz8`7V6voG9whm$O4gnn~6n z@pjkELUCz_)@KXmU6r`9f6t*$(+q;79Aeg2X-&C#egB#z6Q^6veYM~Hzqr(H7D)$n z!IsQ*8j=n*>#MvK|42H_7WPyK6aBe=<&w4y^8+LuH0S=zjxCgMF!WHYUiwtRL9l*u zZ3dr=gVmjq8|<DE4vAYAE;w#2<8WQM>&*&o35TRh?q8IdWgMJDcG_;eBJN=IdY`+~ zT`7kZuhjyr+C&bl4^U><b@$}{gms*YO&nkEpFh2`)LKg1f#+K8oD1)y9RB*cr!|-| z9hkx$uP8i6+Tqc)te+REZtkBvDdXp^(^3u%?<dK8@p!ynDKCR{rk{kv{ztMIkr5IO zOD4z1q$d8|zmcQJ{QoZr2a)37(ohrT1Ji$rtX?-o%HdX{NW|;2vJPD#vJWnMi#mAh z+j61touq?^;OS8FZ!h<IJQvJYTQ2Fa{Mbyj=UP$@jXxI{?_PIqe}uo0q1EGu`;YEl z`sv+c5eNPgZ4G8TQV!<1@9L5sOF4uEsz**b^LoERQNyoqe`f7xQa`2Dy5-USx{S`k zqU5*x8PnEp<?NDk$a=fY_(j6y{T!;R<Ey0P9d4X?5w+S~&f$cuX7#GG>+O>d*LEb> ziaWHje_!Aib#8xId7gH~Vo`@5lYSO>E;+Yf#`J$`+yBS=9VgnQZCozp@F7OPQN>Nn zVS_A3`;?#J4jzv4PGxHCw^vvY;?t=j?jU|I{*CoZF^4qXyLYd?6nD6H<>g^p6)A`1 z%BSit9RIj~amJzbjfN5q^86QVU;USGaA5Zl*E{fL|BPua!7Pio4rt`epI06JaR14p zk3;Okp6rkN`ayrv)Q9`8Z}k>_`smdDX19`)^IIS9PdLHd8mRYXKU-J1%Jg<|2Umtq zS^teB9g_acjeK=d!lC3YOKgg#q{GxDsW;cyN;zz0Y5k)XC+_e%$=}1}63c-(2`>e+ z?8F^BEcPAw%(%n8V}Ad=KHH`Cn{|GBB&&!!yb%6Xt+7Yk;r^ySN4^Ge9$@0=Nm$(Y zV*iTrs{4(zq#V+AZS8UpP;k&R?VoRDDev&`#(Al%dlC-rr$p?g1xh%ayD;a|-ihK4 z@wGNTra8+xOqX4;Lu{_JgJSBwmosmQJE+<C7km0iIcyNww&>J~?fWerJ}H0jQ_?}^ z;XgYT#RK+Qk4jHoGdZ%K+2>29MTV4vz>Sy-j4_f9D}sc~qK-*AbZOdL2v?MKc*3j{ zvNcM^;d@)``!7>&@1Iw6GuBk<$9}e#wiEX<av!jne(~+HsT=ltvE8p+{aVbyiv3sO zK{pYHyK#JZlXSTbEZ8+Iw<~r3{=!Sy-#@l~-@mQ%cJMOp3-(3JBHX2KiZ~oITjpdV z{$;=1&KpioR){!k=zMEB=d^%>jjQ+!m5rhf9&e-OD+@fgKUpBN(4|Yv;lf^zufIMC zI$X6*V=a3p;vmGzxqnLAReP?5f`^Vci#Qa{oo1P1%j8hMyV!Pbk(fiND*Gdb!oT)m zU%t4+T5~%{u~c0=C(7;c<J5s)8;?BP@5nbV`sY&?2lFbnwHc*i4i{s&mz=&N>cE}% zDU*Z!)&AM$ac9-rg&p?H@ND_8i^IWs^ZBZOci0_D!*<o2%Mx+e;kCf0I#1N$r|g2= zPs2qVc$7}v3o8?GI6Ecmsrp|=hnZG<aeGz^J7}iu?a>$fyWb`C&#gE?A%~qTV#^<I z6>;b|R`=)P5pjo!R$W}aTlgHD4zYwRxi03=@>)>%vX7X9_wy*d8~cSFRy<m~%eg?z zA@u7SZLM5!2bNMVxf{By4tekAOgu0_*df^W+`h$U#2kDw<r*JZNIJ~;d*IZq#OM11 zf7{%RpDOI&5q3e#<ISS|JX|sVrB91F^!3N=e7FC>ew8cx|FtX=a;RGUY1RzekNdBf z%{BkGkJ~|OLH9eS`=9nR{JC4wpdjLK_UtZ&YmY=7cJ6iMZR!_w;8qXRYCa|6(09Z< zXz^qrhwo*F{N?LK9b7g{Trbiq=CD{;KT@Vc(1CUREWh0DKl^7?Eq(ito6kWwflqOR zzOVyJZZt>uZV?BIP<9TTOCk;$e(NW^_`~L4b9`nn2jkuS6~3l@o!uf1G56P~UuETW zkPDpqS^bTeL+w(Io|DPP_n&<27w*?D<}khg)shxT5r+#C85N8EJ+{{sa5B&q6?S+d z_CkEskq`Fqn}gD><%l}u{0Z3iBZI*qC}cnTvsI!FepT&HMFKDFU$Awnfu%#M{S}MG zhzxyEhajmdOH$@?I@HKTsQMiEZ@<}_Q7n2Yi^H!|ey&woLJrv{KPebr`mle+DVBtp zo+1wJ8IzYKyuZEQ(6H~X;ns)yzvdm9t@}mPq2*?#`YP@_`!8)5Ke>0MsKZBz*^FOf z9`8TGcUU)w`Ja8*^Ti1VjK1!F*CAeer1I_l7q?ACT33ADzbx;=S<!DI4t!60`gZi3 z-k(}u)S$TblYN}?0VZP}F$a@g4dW}5SsV=R$Z4`xh&sG}=NEKdMBL$nWattR3oeHQ zWzBW>PKr1jIC1Hw!$T&Am5cxTyJv_x-23Qz!IWFnL89KC<CUn0L(Ul|_1FU(4h^$X z#CL`;Ie4r%`ggD1Kl`qd27PHuZim&bVim0SSRDRN-F$*`vzUX=@#keZ%RlZvv2mip z%MD@<iitmzr<sd5{MtM(+u+>J{Q~Y)(^Qsj+21sSN7Y{O(Ee+CzM4N|6Lm<sCBksS z?&1FMe6?wQR&VzoI27Q%w5Hkq=60K#H;Y6ZCJ6^8zF&8F{{c~^1JYtb4zF~NE@|1o z=%7BS#`UI-ki+>eedVdk4(<Q;LF8*}%-j8meu7`F=JGpaG~IopXD#AT!2U{qmYbM^ zQHjCI;;`rYfBreXb7Q!KL%`CrSJs<e+5d{=@txS{P5Y%v-uzp${>%OvjoDNFZF;gl zq3r#l(pe%7>KB)-|CTH2(9-80^+@Q;ez)gooh|Q#9TupUCwSI~I&g(;()`{d=J4(6 z@sRaA;tm`81r7=Di#RmRW!=bZ@M1p?`_7NNs^SiPkAJRx@<Q0brT(0++@l-zO`FA~ zM5aI7AJ}_mNn?hn!^gYI2DO`n92WIe@xS`{*M67Yd(T2`ZU?)jlk?}th&ZTEIj`BJ z`DFj4Y$4C~GGT`f^(_Z1{)jrPSD$lP_$Z6RYORc_9LtaUmuc=%5j`#L;N3NGV&QjT z2knb;jy$TO4%g>A*W-y1a#(S6N4$C48GDDI5W7{5)%NGK8)F@$MIDY?6(3)uD&`O~ zN1eOcK-3}0kbmvMLJ@}-7ZpW$t;8G@UiJLFW+CQab?MQ{FxKn)cU;;$;pTgBhpl{* zCW^(2I2f}E=Umz??64;wY@XU=5eJ<+b?+~Wu{s#L&SILiOvvGN#y*vs$>I(^7mCb( zFW74zu-N`_OzJHAwPzj}E_x^G!0*uhSc~O{z5C2HJ8FIjJKVo!y4dN6u)|z^Hr-9j zU+=&C_r5=~ov6dFFQ=scREs#g<JH-?JA&UK>h;_c6P2#+|2cKd(Fp=P4j-(3ZTgV8 z#GdJ))s~kNgdA*c`Dt9;_+<a36J<><tHc}<%o5J`O`Br>&62gM=Nf}U$Ksu_Yp)7B zl-)jF`C8-h{-#B<{#6>k-v2gr=9gAk5r=cj_l9{b6m{U=Br^AgsklRFfMS-%d{Kw_ zS?p%7bwnNXG!EPmG!=E|ImNg;^t!Nv*E^--x2}si_!c#YDA$QPSmidU^Lg?(EQp)S z8NFfZ{<EelEB3gFIdC0MnY-$*u*2@3PxsrK3Ocx4Zuzm}(1ZOsvF9~6_X|5beG*mT zF7U-ZwEw`8{{bQnBC>9Q(;kXB>@LX@G1C-vXgwh1o>nR9Fyqy-`QlTq@0Y%j(pBQ| zdH)Yv)4;Zz+xBwjFP2REd1wF9^las;24W6&Hr?O*Pl-4fa7Wm7-ePrVd#=*^@ckqE zg-ngJeJw;C?w?9+zV<`d;fwo^@=rZt4!_oW9?9$ybvW_x$HG&}&-c%2jL<msm)oI9 z`C@~>mCyV8&F*q2UlDdt^Okc<JS*(*(<#jV!wVsY(#7Tu_tuL#B-Tz6)oOUX-_7ZN zlV{nJ{l$haW+hJ(bC`7W|1JNcul8Fn;#*R;QOsfMkEjy4{U7&NP7l^C<G#9oLT{qv z3Wc@%dyiUdskryUe$~@S|9?GyWM4W<k$a+%r~~uX?`o?n?(IK$MDywfE)IuIqm_JI zJ>m`p?azPTnjz{S@3y4p_;L}4C+EY$)}DK}f6~#KMKW)N9oBs7Z7^Lg>fo`RFIea{ zheM!|^<G96QHR-bz7v#sL>&xl|J+pVS#E#gd0WWo4Z;o!vUH9taTIsBxOAcDjCZ0A zNAF#jKfgfC;oO9y)1HTau|L80GHZv@!~L6nr$_QA?%4n9$o6M8uOIJk>R7gCujZxw zo7(SoMd^w;tiDs98louTkXjljwy8qYfiEfU_7QyvhX)tMPs=rnI9LX8%(Z+e;&3Od zqIcPiRr~E)r<c@C5pme*lcO6Q_I5vy+28$6%_0tRyI;;pu@-meUb1IX?io=Bci+aC z@@xO?S1jAPCV8T$L%xwz*Xzq74$r?TTx3ZWcGx0yS-nJbi#^X~m2a&PkM^6WTK`{O zDeAyum@R1dS=52wGspfmuc$+V&0J=uIl>NSj$KW@5HIR*W4*4_nYY3YGkq)T)CJfb z%)CmwW^f+fZzTHh=7H5>4m~qvc#qeKIB0Wk*jKkp+`+J}I_uWL_xoEu{x)#DEatFd z@?vxC%$NI@70(IPZo0j{Vw2LhXKzp0`viTg|2kjHf$!&{>W00d4im~g_`RGY;9wxZ zEtSYC=8*DZy0fUCxWj>#Pv^Z)i8>e<nD2e0E9xMyC#TYiQ^a9``GSt{u$%ic0+^js zK1w=hKdxE*OGMZ~|80_};u;Z$3GNrzbH1@T+%i?Df0cS@|DMB_mpSXRIsE;0w87C@ z)ZxpYn=P&Vq7J;DO%|(75O&~bzalNfDe7?6VgA8K(rgZ<Z|yXG@`yRe{_UN;@shB^ zl}zaq0<9trd-m9QsS574Z!1#b7jG4D__|hI=){!w`&%ciEeg;ObMQ3?ON~4&?C|TP z*^)QP-}VPCKAoALBH?gk2M=cq+e!N=y4@XND?}aQC;w>CEBdhi&D=v(1%WT@A8kzT zm(PB>e_eru{gh5ohiCIN*Uw!0(7yH7vW!IntPV{o%TBH~5_6bUu-57RHwlNFtjq`L zw{PwjQT&*d{^XH;?$Lv7_iV%**mFGh9J}(ze#MH)FDbLG*uR~{x|XLy%t2}Ubgt)& z_xE3`n6ZwJ;kW&n_FogsDlgb?=xC@EQ@^qQf611MPB#zjS8+5jee5LeFeTz(rb^H^ z`$f-qI^FWc9ip7N_b7XbIoQnH%*A_O#9`}_X%1U{i#hl+KK}nj>dO8*r`RS(6^c6a zPCd15$Ik=%BYwPEQ*I{eQ26sO@8*T#4t5f8`|jt9IJB;6Ty?!i%;De%kDLW5Vh&&Q zW1MXZU)q0}cqq=kPSoK}UFCm?H%InM%-2y7i8^E7A+?Z2;;Fd9k7p-J=Nu7rIBOMu z^M$U6gO`cnl?kbW4!&i~1@>!192{qScbnoU<j~w^a$!=FsKd`fi8$qHVh%PQg8vG( zia1>STogO!u82eHlc2d~cH$1R62F^<XoxzLt!vO%6c%#0k$T&D<q=_rK81gZweA8A z8tN*}92Y+9KTvSXabNKz`|cM_dk;y7J4|zvteN;x)WMJI-It!LYz}JtZ=-q(L>yj- z?qBM3@Ra>QhMWGg1B4xZ2yp$Dp1*(pQpU!lU6;fieyv(&`1_%V!|Ys{xt!<N9e6F3 z53>Fic9@zzJ^tr@9)}wxJC0BPB<v8LtR;5kosh%z!byB#)5IJOZ(GD!;Vt5DY@6Q8 zIKeOWSNC4iTKqxOp=<(o9MdULhi%KZKIRucX`jcNth-+B{{9tPxsD$BDD1H6-lsj9 z+r=C*7OZWZH%G+5<5<$(B4x${8P~VkG(3O0f5G`jPV#D}_7`3}?z`g5gZ+8$UMCkk z6?JGe&%Ec*^>u&2g#F$^KZG1QL&EtvUJE)@sm%Ehr2f)=ZQ!>{jz>iuo>Z6^D{OqV z->}SU$qNNxhpxquZs7sf_V3wpYE?_;HT%FVJ^nerg&l6V+&Pi-M%01R^vRMb?xGGK z`u2SZy1&%EN%s|JdAz8D|D|UJnv=vGnm>2@PAL?1m~fPN{i`@p2McGR2XDl_?AI!) zNz<My>cGh?8O60$*kQ)RU79w}AMW?E4tTsznA1Tdzu;*;-yVCp1J`bA&%C>zQO{9q z7VE41i!HW4;M(wNf1l?*v9z;S_vf8#7Uyw&u%GFhXPHiyh=b7HT^Cee2|FbH{Or6y zR@`9|&ze<o_rx6HDnBVd^%Zjn_P+A-w5O=Ulzq;xzgsXmsC%(?-@Gg2u&%-U#8IJl z`*Z(2>XYz)y#HNTuh2IkF$eCN-1g6ZMIEMj=M`PM$>Csgj9onb@CEx@ZH+(X>=t&& zS$#PC!zWP(snD;VKlh0{NXY#9cBVnZ;U;&*+q02E4p&b`9DLg#>LBvJ%5c*cVTW1P zZ6D07gdJvIa8}XI7jck(>>_#alBmOqwUf11#GbLgDD!Xmo*kkNOFS8-sn|T(zpJcC zobA*1{TqLEIGd-6IOycx?6BJ^=FqlPGL5@Z%we)}u8G|aQHK-1E>_Ac5^*@KP-gM1 z`pN!Hr#^WECv!N+`<~i=buybntNpE)kE5^b-`|zC)hk5QVP~t+qch%O4xi*0x3X9= zIXtrJDA2R~ydO6Aj=U@&x0JzKQP|Lh_3r+>{m*vyEn_<%+!Us+6D8@eC;86n?7Un1 zOKxQ@t?*-W5ME<{qs>ATV>%yXTsea;|3bt60+;Q}Jf11O)jwqK_-w0O>+6T$*?jcL z|8fI{P%yY^52iv9G`br>YYxg14H%Zjn3|m7IBl=!zRcQv^>_PIAu~n4i$1rP`sktm z<I+BRiQgPAH65?oJAF2GpSj}>*ji?!B@iHUO3D%$(lpaQ*ty@b|JM4~dyC6=`w5#T zb4aM|w}1O^6)$VSA$#Fh6HaDFy|6!Bsub#&fy12KQikwHsjmW~Bpr-qTXy`HVLPCb k<Ce>rc6<Ls+1ROUilPnybr1j5*Rwk0ur^jWt-rJ%086tmKL7v# diff --git a/scikits/learn/em/tests/full_2d_3k.mat b/scikits/learn/em/tests/full_2d_3k.mat deleted file mode 100644 index 41d9df341815536336eb6d0f1896208030c901da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8739 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 diff --git a/scikits/learn/em/tests/generate_tests_data.py b/scikits/learn/em/tests/generate_tests_data.py deleted file mode 100644 index 302f4448ae..0000000000 --- a/scikits/learn/em/tests/generate_tests_data.py +++ /dev/null @@ -1,98 +0,0 @@ -#! /usr/bin/env python -# Last Change: Sun Sep 07 04:00 PM 2008 J - -# This script generates some random data used for testing EM implementations. -import copy -import numpy as N -from scipy.io import savemat, loadmat - -from scikits.learn.em import GM, GMM, EM - -def generate_dataset(d, k, mode, nframes): - """Generate a dataset useful for EM anf GMM testing. - - returns: - data : ndarray - data from the true model. - tgm : GM - the true model (randomly generated) - gm0 : GM - the initial model - gm : GM - the trained model - """ - # Generate a model - w, mu, va = GM.gen_param(d, k, mode, spread = 2.0) - tgm = GM.fromvalues(w, mu, va) - - # Generate data from the model - data = tgm.sample(nframes) - - # Run EM on the model, by running the initialization separetely. - gmm = GMM(GM(d, k, mode), 'test') - gmm.init_random(data) - gm0 = copy.copy(gmm.gm) - - gmm = GMM(copy.copy(gmm.gm), 'test') - em = EM() - em.train(data, gmm) - - return data, tgm, gm0, gmm.gm - -def save_dataset(filename, data, tgm, gm0, gm): - dic = {'tw': tgm.w, 'tmu': tgm.mu, 'tva': tgm.va, - 'w0': gm0.w, 'mu0' : gm0.mu, 'va0': gm0.va, - 'w': gm.w, 'mu': gm.mu, 'va': gm.va, - 'data': data} - savemat(filename, dic) - -def doall(d, k, mode): - import pylab as P - - data, tgm, gm0, gm = generate_dataset(d, k, mode, 500) - filename = mode + '_%dd' % d + '_%dk.mat' % k - save_dataset(filename, data, tgm, gm0, gm) - - if d == 1: - P.subplot(2, 1, 1) - gm0.plot1d() - h = tgm.plot1d(gpdf = True) - P.hist(data[:, 0], 20, normed = 1, fill = False) - - P.subplot(2, 1, 2) - gm.plot1d() - tgm.plot1d(gpdf = True) - P.hist(data[:, 0], 20, normed = 1, fill = False) - else: - P.subplot(2, 1, 1) - gm0.plot() - h = tgm.plot() - [i.set_color('g') for i in h] - P.plot(data[:, 0], data[:, 1], '.') - - P.subplot(2, 1, 2) - gm.plot() - h = tgm.plot() - [i.set_color('g') for i in h] - P.plot(data[:, 0], data[:, 1], '.') - - P.show() - -if __name__ == '__main__': - N.random.seed(0) - d = 2 - k = 3 - mode = 'full' - doall(d, k, mode) - - N.random.seed(0) - d = 2 - k = 3 - mode = 'diag' - doall(d, k, mode) - - N.random.seed(0) - d = 1 - k = 4 - mode = 'diag' - doall(d, k, mode) diff --git a/scikits/learn/em/tests/test_densities.py b/scikits/learn/em/tests/test_densities.py deleted file mode 100644 index c8be9c3342..0000000000 --- a/scikits/learn/em/tests/test_densities.py +++ /dev/null @@ -1,215 +0,0 @@ -#! /usr/bin/env python -# Last Change: Sun Sep 07 04:00 PM 2008 J - -# TODO: -# - having "fake tests" to check that all mode (scalar, diag and full) are -# executables -# - having a dataset to check against - -import sys -from unittest import TestCase - -import numpy as N -from numpy.testing import assert_array_almost_equal, assert_array_equal - -from scikits.learn.em.densities import gauss_den, \ - multiple_gauss_den, logsumexp, gauss_ell - -from scikits.learn.em.tests.testcommon import DEF_DEC - -class TestDensities(TestCase): - def _generate_test_data_1d(self): - self.va = 2.0 - self.mu = 1.0 - self.X = N.linspace(-2, 2, 10)[:, N.newaxis] - - self.Yt = N.array([0.02973257230591, 0.05512079811082, - 0.09257745306945, 0.14086453882683, 0.19418015562214, - 0.24250166773127, 0.27436665745048, 0.28122547107069, - 0.26114678964743, 0.21969564473386]) - - def _generate_test_data_2d_diag(self): - #============================ - # Small test in 2d (diagonal) - #============================ - self.mu = N.atleast_2d([-1.0, 2.0]) - self.va = N.atleast_2d([2.0, 3.0]) - - self.X = N.zeros((10, 2)) - self.X[:,0] = N.linspace(-2, 2, 10) - self.X[:,1] = N.linspace(-1, 3, 10) - - self.Yt = N.array([0.01129091565384, 0.02025416837152, - 0.03081845516786, 0.03977576221540, 0.04354490552910, - 0.04043592581117, 0.03184994053539, 0.02127948225225, - 0.01205937178755, 0.00579694938623 ]) - - - def _generate_test_data_2d_full(self): - #============================ - # Small test in 2d (full mat) - #============================ - self.mu = N.array([[0.2, -1.0]]) - self.va = N.array([[1.2, 0.1], [0.1, 0.5]]) - X1 = N.linspace(-2, 2, 10)[:, N.newaxis] - X2 = N.linspace(-3, 3, 10)[:, N.newaxis] - self.X = N.concatenate(([X1, X2]), 1) - - self.Yt = N.array([0.00096157109751, 0.01368908714856, - 0.07380823191162, 0.15072050533842, - 0.11656739937861, 0.03414436965525, - 0.00378789836599, 0.00015915297541, - 0.00000253261067, 0.00000001526368]) - -#===================== -# Basic accuracy tests -#===================== -class test_py_implementation(TestDensities): - def _test(self, level, decimal = DEF_DEC): - Y = gauss_den(self.X, self.mu, self.va) - assert_array_almost_equal(Y, self.Yt, decimal) - - def _test_log(self, level, decimal = DEF_DEC): - Y = gauss_den(self.X, self.mu, self.va, log = True) - assert_array_almost_equal(N.exp(Y), self.Yt, decimal) - - def test_2d_diag(self, level = 0): - self._generate_test_data_2d_diag() - self._test(level) - - def test_2d_full(self, level = 0): - self._generate_test_data_2d_full() - self._test(level) - - def test_1d(self, level = 0): - self._generate_test_data_1d() - self._test(level) - - def test_2d_diag_log(self, level = 0): - self._generate_test_data_2d_diag() - self._test_log(level) - - def test_2d_full_log(self, level = 0): - self._generate_test_data_2d_full() - self._test_log(level) - - def test_1d_log(self, level = 0): - self._generate_test_data_1d() - self._test_log(level) - -# #===================== -# # Basic speed tests -# #===================== -# class test_speed(TestCase): -# def __init__(self, *args, **kw): -# TestCase.__init__(self, *args, **kw) -# import sys -# import re -# try: -# a = open('/proc/cpuinfo').readlines() -# b = re.compile('cpu MHz') -# c = [i for i in a if b.match(i)] -# fcpu = float(c[0].split(':')[1]) -# self.fcpu = fcpu * 1e6 -# self.hascpu = True -# except: -# print "Could not read cpu frequency" -# self.hascpu = False -# self.fcpu = 0. -# -# def _prepare(self, n, d, mode): -# niter = 10 -# x = 0.1 * N.random.randn(n, d) -# mu = 0.1 * N.random.randn(d) -# if mode == 'diag': -# va = 0.1 * N.random.randn(d) ** 2 -# elif mode == 'full': -# a = N.random.randn(d, d) -# va = 0.1 * N.dot(a.T, a) -# st = self.measure("gauss_den(x, mu, va)", niter) -# return st / niter -# -# def _bench(self, n, d, mode): -# st = self._prepare(n, d, mode) -# print "%d dimension, %d samples, %s mode: %8.2f " % (d, n, mode, st) -# if self.hascpu: -# print "Cost per frame is %f; cost per sample is %f" % \ -# (st * self.fcpu / n, st * self.fcpu / n / d) -# -# def test1(self, level = 5): -# cls = self.__class__ -# for n, d in [(1e5, 1), (1e5, 5), (1e5, 10), (1e5, 30), (1e4, 100)]: -# self._bench(n, d, 'diag') -# for n, d in [(1e4, 2), (1e4, 5), (1e4, 10), (5000, 40)]: -# self._bench(n, d, 'full') - -#================ -# Logsumexp tests -#================ -class test_py_logsumexp(TestDensities): - """Class to compare logsumexp vs naive implementation.""" - - def naive_logsumexp(self, data): - return N.log(N.sum(N.exp(data), 1)) - - def test_1d(self): - data = N.random.randn(1e1)[:, N.newaxis] - mu = N.array([[-5], [-6]]) - va = N.array([[0.1], [0.1]]) - y = multiple_gauss_den(data, mu, va, log = True) - a1 = logsumexp(y) - a2 = self.naive_logsumexp(y) - assert_array_equal(a1, a2) - - def test_2d_full(self): - data = N.random.randn(1e1, 2) - mu = N.array([[-3, -1], [3, 3]]) - va = N.array([[1.1, 0.4], [0.6, 0.8], [0.4, 0.2], [0.3, 0.9]]) - y = multiple_gauss_den(data, mu, va, log = True) - a1 = logsumexp(y) - a2 = self.naive_logsumexp(y) - assert_array_almost_equal(a1, a2, DEF_DEC) - - def test_2d_diag(self): - data = N.random.randn(1e1, 2) - mu = N.array([[-3, -1], [3, 3]]) - va = N.array([[1.1, 0.4], [0.6, 0.8]]) - y = multiple_gauss_den(data, mu, va, log = True) - a1 = logsumexp(y) - a2 = self.naive_logsumexp(y) - assert_array_almost_equal(a1, a2, DEF_DEC) - -#======================= -# Test C implementation -#======================= -class test_c_implementation(TestDensities): - def _test(self, level, decimal = DEF_DEC): - try: - from scikits.learn.em._c_densities import gauss_den as c_gauss_den - Y = c_gauss_den(self.X, self.mu, self.va) - assert_array_almost_equal(Y, self.Yt, decimal) - except Exception, inst: - print "Error while importing C implementation, not tested" - print " -> (Import error was %s)" % inst - - def test_1d(self, level = 0): - self._generate_test_data_1d() - self._test(level) - - def test_2d_diag(self, level = 0): - self._generate_test_data_2d_diag() - self._test(level) - - def test_2d_full(self, level = 0): - self._generate_test_data_2d_full() - self._test(level) - -class test_gauss_ell(TestCase): - def test_dim(self): - gauss_ell([0, 1], [1, 2.], [0, 1]) - try: - gauss_ell([0, 1], [1, 2.], [0, 2]) - raise AssertionError("this call should not succeed, bogus dim.") - except ValueError, e: - print "Call with bogus dim did not succeed, OK" - diff --git a/scikits/learn/em/tests/test_gauss_mix.py b/scikits/learn/em/tests/test_gauss_mix.py deleted file mode 100644 index 376e673b82..0000000000 --- a/scikits/learn/em/tests/test_gauss_mix.py +++ /dev/null @@ -1,86 +0,0 @@ -#! /usr/bin/env python -# Last Change: Sun Sep 07 04:00 PM 2008 J - -# For now, just test that all mode/dim execute correctly - -import sys -from unittest import TestCase - -import numpy as N -from numpy.testing import assert_array_almost_equal - -from scikits.learn.em import GM -from scikits.learn.em.densities import multiple_gauss_den - -class test_BasicFunc(TestCase): - """Check that basic functionalities work.""" - def test_conf_ellip(self): - """Only test whether the call succeed. To check wether the result is - OK, you have to plot the results.""" - d = 3 - k = 3 - w, mu, va = GM.gen_param(d, k) - gm = GM.fromvalues(w, mu, va) - gm.conf_ellipses() - - def test_1d_bogus(self): - """Check that functions which do not make sense for 1d fail nicely.""" - d = 1 - k = 2 - w, mu, va = GM.gen_param(d, k) - gm = GM.fromvalues(w, mu, va) - try: - gm.conf_ellipses() - raise AssertionError("This should not work !") - except ValueError, e: - self.assertEqual(str(e), - "This function does not make sense for 1d mixtures.") - - try: - gm.density_on_grid() - raise AssertionError("This should not work !") - except ValueError, e: - self.assertEqual(str(e), - "This function does not make sense for 1d mixtures.") - - def test_get_va(self): - """Test _get_va for diag and full mode.""" - d = 3 - k = 2 - ld = 2 - dim = [0, 2] - w, mu, va = GM.gen_param(d, k, 'full') - va = N.arange(d*d*k).reshape(d*k, d) - gm = GM.fromvalues(w, mu, va) - - tva = N.empty(ld * ld * k) - for i in range(k * ld * ld): - tva[i] = dim[i%ld] + (i % 4)/ ld * dim[1] * d + d*d * (i / (ld*ld)) - tva = tva.reshape(ld * k, ld) - sva = gm._get_va(dim) - assert N.all(sva == tva) - - def test_2d_diag_pdf(self): - d = 2 - w = N.array([0.4, 0.6]) - mu = N.array([[0., 2], [-1, -2]]) - va = N.array([[1, 0.5], [0.5, 1]]) - x = N.random.randn(100, 2) - gm = GM.fromvalues(w, mu, va) - y1 = N.sum(multiple_gauss_den(x, mu, va) * w, 1) - y2 = gm.pdf(x) - assert_array_almost_equal(y1, y2) - - def test_2d_diag_logpdf(self): - d = 2 - w = N.array([0.4, 0.6]) - mu = N.array([[0., 2], [-1, -2]]) - va = N.array([[1, 0.5], [0.5, 1]]) - x = N.random.randn(100, 2) - gm = GM.fromvalues(w, mu, va) - y1 = N.sum(multiple_gauss_den(x, mu, va) * w, 1) - y2 = gm.pdf(x, log = True) - assert_array_almost_equal(N.log(y1), y2) - -if __name__ == "__main__": - NumpyTest().run() diff --git a/scikits/learn/em/tests/test_gmm_em.py b/scikits/learn/em/tests/test_gmm_em.py deleted file mode 100644 index a2a935b614..0000000000 --- a/scikits/learn/em/tests/test_gmm_em.py +++ /dev/null @@ -1,198 +0,0 @@ -#! /usr/bin/env python -# Last Change: Sun Sep 07 04:00 PM 2008 J - -# For now, just test that all mode/dim execute correctly - -import sys -import os -from unittest import TestCase - -import numpy as N -from numpy.testing import assert_array_almost_equal - -from scikits.learn.em import GMM, GM, EM - -from scikits.learn.em.tests.testcommon import DEF_DEC - -curpath = os.path.dirname(__file__) - -def load_dataset(filename): - from scipy.io import loadmat - dic = loadmat(os.path.join(curpath, filename), squeeze_me = False, byte_order='little') - dic['w0'] = dic['w0'].squeeze() - dic['w'] = dic['w'].squeeze() - dic['tw'] = dic['tw'].squeeze() - return dic - -class EmTest(TestCase): - def _create_model_and_run_em(self, d, k, mode, nframes): - #+++++++++++++++++++++++++++++++++++++++++++++++++ - # Generate a model with k components, d dimensions - #+++++++++++++++++++++++++++++++++++++++++++++++++ - w, mu, va = GM.gen_param(d, k, mode, spread = 1.5) - gm = GM.fromvalues(w, mu, va) - # Sample nframes frames from the model - data = gm.sample(nframes) - - #++++++++++++++++++++++++++++++++++++++++++ - # Approximate the models with classical EM - #++++++++++++++++++++++++++++++++++++++++++ - # Init the model - lgm = GM(d, k, mode) - gmm = GMM(lgm, 'kmean') - - em = EM() - lk = em.train(data, gmm) - -class test_full_run(EmTest): - """This class only tests whether the algorithms runs. Do not check the - results.""" - def test_1d(self, level = 1): - d = 1 - k = 2 - mode = 'full' - nframes = int(1e2) - - #seed(1) - self._create_model_and_run_em(d, k, mode, nframes) - - def test_2d(self, level = 1): - d = 2 - k = 2 - mode = 'full' - nframes = int(1e2) - - #seed(1) - self._create_model_and_run_em(d, k, mode, nframes) - - def test_5d(self, level = 1): - d = 5 - k = 3 - mode = 'full' - nframes = int(1e2) - - #seed(1) - self._create_model_and_run_em(d, k, mode, nframes) - -class test_diag_run(EmTest): - """This class only tests whether the algorithms runs. Do not test the - results.""" - def test_1d(self, level = 1): - d = 1 - k = 2 - mode = 'diag' - nframes = int(1e2) - - #seed(1) - self._create_model_and_run_em(d, k, mode, nframes) - - def test_2d(self, level = 1): - d = 2 - k = 2 - mode = 'diag' - nframes = int(1e2) - - #seed(1) - self._create_model_and_run_em(d, k, mode, nframes) - - def test_5d(self, level = 1): - d = 5 - k = 3 - mode = 'diag' - nframes = int(1e2) - - #seed(1) - self._create_model_and_run_em(d, k, mode, nframes) - -class test_datasets(EmTest): - """This class tests whether the EM algorithms works using pre-computed - datasets.""" - def _test(self, dataset, log): - dic = load_dataset(dataset) - - gm = GM.fromvalues(dic['w0'], dic['mu0'], dic['va0']) - gmm = GMM(gm, 'test') - EM().train(dic['data'], gmm, log = log) - - assert_array_almost_equal(gmm.gm.w, dic['w'], DEF_DEC) - assert_array_almost_equal(gmm.gm.mu, dic['mu'], DEF_DEC) - assert_array_almost_equal(gmm.gm.va, dic['va'], DEF_DEC) - - def test_1d_full(self, level = 1): - d = 1 - k = 4 - mode = 'full' - # Data are exactly the same than in diagonal mode, just test that - # calling full mode works even in 1d, even if it is kind of stupid to - # do so - filename = 'diag_1d_4k.mat' - self._test(filename, log = False) - - def test_2d_full(self, level = 1): - d = 2 - k = 3 - mode = 'full' - filename = 'full_2d_3k.mat' - self._test(filename, log = False) - - def test_2d_full_log(self, level = 1): - d = 2 - k = 3 - mode = 'full' - filename = 'full_2d_3k.mat' - self._test(filename, log = True) - - def test_2d_diag(self, level = 1): - d = 2 - k = 3 - mode = 'diag' - filename = 'diag_2d_3k.mat' - self._test(filename, log = False) - - def test_2d_diag_log(self, level = 1): - d = 2 - k = 3 - mode = 'diag' - filename = 'diag_2d_3k.mat' - self._test(filename, log = True) - -class test_log_domain(EmTest): - """This class tests whether the GMM works in log domain.""" - def _test_common(self, d, k, mode): - dic = load_dataset('%s_%dd_%dk.mat' % (mode, d, k)) - - gm = GM.fromvalues(dic['w0'], dic['mu0'], dic['va0']) - gmm = GMM(gm, 'test') - - a, na = gmm.compute_responsabilities(dic['data']) - la, nla = gmm.compute_log_responsabilities(dic['data']) - - ta = N.log(a) - tna = N.log(na) - if not N.all(N.isfinite(ta)): - print "precision problem for %s, %dd, %dk, test need fixing" % (mode, d, k) - else: - assert_array_almost_equal(ta, la, DEF_DEC) - - if not N.all(N.isfinite(tna)): - print "precision problem for %s, %dd, %dk, test need fixing" % (mode, d, k) - else: - assert_array_almost_equal(tna, nla, DEF_DEC) - - def test_2d_diag(self, level = 1): - d = 2 - k = 3 - mode = 'diag' - self._test_common(d, k, mode) - - def test_1d_full(self, level = 1): - d = 1 - k = 4 - mode = 'diag' - self._test_common(d, k, mode) - - def test_2d_full(self, level = 1): - d = 2 - k = 3 - mode = 'full' - self._test_common(d, k, mode) diff --git a/scikits/learn/em/tests/test_online_em.py b/scikits/learn/em/tests/test_online_em.py deleted file mode 100644 index 770d37b57b..0000000000 --- a/scikits/learn/em/tests/test_online_em.py +++ /dev/null @@ -1,230 +0,0 @@ -#! /usr/bin/env python -# Last Change: Sun Sep 07 04:00 PM 2008 J - -import copy - -import sys -from unittest import TestCase - -import numpy as N -from numpy.random import seed - -from scikits.learn.em import GM, GMM -from scikits.learn.em.online_em import OnGMM, OnGMM1d - -# #Optional: -# set_local_path() -# # import modules that are located in the same directory as this file. -# restore_path() - -# Error precision allowed (nb of decimals) -AR_AS_PREC = 12 -KM_ITER = 5 - -class OnlineEmTest(TestCase): - def _create_model(self, d, k, mode, nframes, emiter): - #+++++++++++++++++++++++++++++++++++++++++++++++++ - # Generate a model with k components, d dimensions - #+++++++++++++++++++++++++++++++++++++++++++++++++ - w, mu, va = GM.gen_param(d, k, mode, spread = 1.5) - gm = GM.fromvalues(w, mu, va) - # Sample nframes frames from the model - data = gm.sample(nframes) - - #++++++++++++++++++++++++++++++++++++++++++ - # Approximate the models with classical EM - #++++++++++++++++++++++++++++++++++++++++++ - # Init the model - lgm = GM(d, k, mode) - gmm = GMM(lgm, 'kmean') - gmm.init(data, niter = KM_ITER) - - self.gm0 = copy.copy(gmm.gm) - # The actual EM, with likelihood computation - for i in range(emiter): - g, tgd = gmm.compute_responsabilities(data) - gmm.update_em(data, g) - - self.data = data - self.gm = lgm - -class test_on_off_eq(OnlineEmTest): - def check_1d(self, level = 1): - d = 1 - k = 2 - mode = 'diag' - nframes = int(1e2) - emiter = 3 - - seed(1) - self._create_model(d, k, mode, nframes, emiter) - self._check(d, k, mode, nframes, emiter) - - def check_2d(self, level = 1): - d = 2 - k = 2 - mode = 'diag' - nframes = int(1e2) - emiter = 3 - - seed(1) - self._create_model(d, k, mode, nframes, emiter) - self._check(d, k, mode, nframes, emiter) - - def check_5d(self, level = 5): - d = 5 - k = 2 - mode = 'diag' - nframes = int(1e2) - emiter = 3 - - seed(1) - self._create_model(d, k, mode, nframes, emiter) - self._check(d, k, mode, nframes, emiter) - - def _check(self, d, k, mode, nframes, emiter): - #++++++++++++++++++++++++++++++++++++++++ - # Approximate the models with online EM - #++++++++++++++++++++++++++++++++++++++++ - # Learn the model with Online EM - ogm = GM(d, k, mode) - ogmm = OnGMM(ogm, 'kmean') - init_data = self.data - ogmm.init(init_data, niter = KM_ITER) - - # Check that online kmean init is the same than kmean offline init - ogm0 = copy.copy(ogm) - assert_array_equal(ogm0.w, self.gm0.w) - assert_array_equal(ogm0.mu, self.gm0.mu) - assert_array_equal(ogm0.va, self.gm0.va) - - # Forgetting param - lamb = N.ones((nframes, 1)) - lamb[0] = 0 - nu0 = 1.0 - nu = N.zeros((len(lamb), 1)) - nu[0] = nu0 - for i in range(1, len(lamb)): - nu[i] = 1./(1 + lamb[i] / nu[i-1]) - - # object version of online EM: the p* arguments are updated only at each - # epoch, which is equivalent to on full EM iteration on the - # classic EM algorithm - ogmm.pw = ogmm.cw.copy() - ogmm.pmu = ogmm.cmu.copy() - ogmm.pva = ogmm.cva.copy() - for e in range(emiter): - for t in range(nframes): - ogmm.compute_sufficient_statistics_frame(self.data[t], nu[t]) - ogmm.update_em_frame() - - # Change pw args only a each epoch - ogmm.pw = ogmm.cw.copy() - ogmm.pmu = ogmm.cmu.copy() - ogmm.pva = ogmm.cva.copy() - - # For equivalence between off and on, we allow a margin of error, - # because of round-off errors. - print " Checking precision of equivalence with offline EM trainer " - maxtestprec = 18 - try : - for i in range(maxtestprec): - assert_array_almost_equal(self.gm.w, ogmm.pw, decimal = i) - assert_array_almost_equal(self.gm.mu, ogmm.pmu, decimal = i) - assert_array_almost_equal(self.gm.va, ogmm.pva, decimal = i) - print "\t !! Precision up to %d decimals !! " % i - except AssertionError: - if i < AR_AS_PREC: - print """\t !!NOT OK: Precision up to %d decimals only, - outside the allowed range (%d) !! """ % (i, AR_AS_PREC) - raise AssertionError - else: - print "\t !!OK: Precision up to %d decimals !! " % i - -class test_on(OnlineEmTest): - def check_consistency(self): - d = 1 - k = 2 - mode = 'diag' - nframes = int(5e2) - emiter = 4 - - self._create_model(d, k, mode, nframes, emiter) - self._run_pure_online(d, k, mode, nframes) - - def check_1d_imp(self): - d = 1 - k = 2 - mode = 'diag' - nframes = int(5e2) - emiter = 4 - - self._create_model(d, k, mode, nframes, emiter) - gmref = self._run_pure_online(d, k, mode, nframes) - gmtest = self._run_pure_online_1d(d, k, mode, nframes) - - assert_array_almost_equal(gmref.w, gmtest.w, AR_AS_PREC) - assert_array_almost_equal(gmref.mu, gmtest.mu, AR_AS_PREC) - assert_array_almost_equal(gmref.va, gmtest.va, AR_AS_PREC) - - def _run_pure_online_1d(self, d, k, mode, nframes): - #++++++++++++++++++++++++++++++++++++++++ - # Approximate the models with online EM - #++++++++++++++++++++++++++++++++++++++++ - ogm = GM(d, k, mode) - ogmm = OnGMM1d(ogm, 'kmean') - init_data = self.data[0:nframes / 20, :] - ogmm.init(init_data[:, 0]) - - # Forgetting param - ku = 0.005 - t0 = 200 - lamb = 1 - 1/(N.arange(-1, nframes-1) * ku + t0) - nu0 = 0.2 - nu = N.zeros((len(lamb), 1)) - nu[0] = nu0 - for i in range(1, len(lamb)): - nu[i] = 1./(1 + lamb[i] / nu[i-1]) - - # object version of online EM - for t in range(nframes): - # the assert are here to check we do not create copies - # unvoluntary for parameters - a, b, c = ogmm.compute_sufficient_statistics_frame(self.data[t, 0], nu[t]) - ogmm.update_em_frame(a, b, c) - - ogmm.gm.set_param(ogmm.cw, ogmm.cmu[:, N.newaxis], ogmm.cva[:, N.newaxis]) - - return ogmm.gm - def _run_pure_online(self, d, k, mode, nframes): - #++++++++++++++++++++++++++++++++++++++++ - # Approximate the models with online EM - #++++++++++++++++++++++++++++++++++++++++ - ogm = GM(d, k, mode) - ogmm = OnGMM(ogm, 'kmean') - init_data = self.data[0:nframes / 20, :] - ogmm.init(init_data) - - # Forgetting param - ku = 0.005 - t0 = 200 - lamb = 1 - 1/(N.arange(-1, nframes-1) * ku + t0) - nu0 = 0.2 - nu = N.zeros((len(lamb), 1)) - nu[0] = nu0 - for i in range(1, len(lamb)): - nu[i] = 1./(1 + lamb[i] / nu[i-1]) - - # object version of online EM - for t in range(nframes): - # the assert are here to check we do not create copies - # unvoluntary for parameters - assert ogmm.pw is ogmm.cw - assert ogmm.pmu is ogmm.cmu - assert ogmm.pva is ogmm.cva - ogmm.compute_sufficient_statistics_frame(self.data[t], nu[t]) - ogmm.update_em_frame() - - ogmm.gm.set_param(ogmm.cw, ogmm.cmu, ogmm.cva) - - return ogmm.gm diff --git a/scikits/learn/em/tests/testcommon.py b/scikits/learn/em/tests/testcommon.py deleted file mode 100644 index 940b04c4e6..0000000000 --- a/scikits/learn/em/tests/testcommon.py +++ /dev/null @@ -1 +0,0 @@ -DEF_DEC = 12 diff --git a/scikits/learn/setup.py b/scikits/learn/setup.py index 50b668f8b2..5566137b60 100644 --- a/scikits/learn/setup.py +++ b/scikits/learn/setup.py @@ -11,7 +11,6 @@ def configuration(parent_package='',top_path=None): site_cfg = ConfigParser() site_cfg.read(get_standard_file('site.cfg')) - config.add_subpackage('em') config.add_subpackage('datasets') config.add_subpackage('feature_selection') config.add_subpackage('utils') -- GitLab