From 04e07809ab908a0c71b9f2e95ce5393267506a10 Mon Sep 17 00:00:00 2001 From: T Ehrhardt Date: Thu, 15 Aug 2024 21:07:41 +0200 Subject: [PATCH 01/38] preliminary implementation of stage attribute which contains keys expected to be present in all containers and some necessary logic in container.py; also modify some services from example configs accordingly --- pisa/core/container.py | 42 +++++++++++++++++- pisa/core/stage.py | 59 ++++++++++++++++++++++++-- pisa/stages/aeff/aeff.py | 10 +++++ pisa/stages/aeff/param.py | 7 +++ pisa/stages/data/simple_data_loader.py | 1 + pisa/stages/flux/barr_simple.py | 17 ++++++++ pisa/stages/osc/prob3.py | 16 +++++++ pisa/stages/utils/hist.py | 3 ++ 8 files changed, 150 insertions(+), 5 deletions(-) diff --git a/pisa/core/container.py b/pisa/core/container.py index a98895167..d31daf72d 100644 --- a/pisa/core/container.py +++ b/pisa/core/container.py @@ -81,6 +81,25 @@ def representation(self, representation): def names(self): return [c.name for c in self.containers] + def get_shared_keys(self, rep_indep=True): + """ + Get a tuple of all keys shared among contained containers. + + Parameters + ---------- + rep_indep : bool + Whether all keys should be considered, not just those in + the current representation (default: `True`) + + """ + if len(self.containers) == 0: + return () + + return tuple( + set.intersection(*[set(c.all_keys_incl_aux_data if rep_indep else c.keys_incl_aux_data) + for c in self.containers]) + ) + def link_containers(self, key, names): """Link containers together. When containers are linked, they are treated as a single (virtual) container for binned data @@ -346,11 +365,20 @@ def keys(self): if self.is_map: keys += tuple(self.representation.names) return keys + + @property + def keys_incl_aux_data(self): + return self.keys + list(self._aux_data.keys()) @property def all_keys(self): '''return all available keys, regardless of representation''' return list(self.validity.keys()) + + @property + def all_keys_incl_aux_data(self): + '''same as `all_keys`, but including auxilliary data''' + return self.all_keys + list(self._aux_data.keys()) @property def is_map(self): @@ -498,7 +526,7 @@ def get_map(self, key, error=None): def __iter__(self): """iterate over all keys in container""" - return self.keys() + return self.keys def translate(self, key, src_representation): '''translate variable from source representation @@ -753,6 +781,18 @@ def test_container_set(): raise Exception('identical containers added to a containerset, this should not be possible') + nevts1 = 10 + nevts2 = 20 + container1['true_energy'] = np.linspace(1, 80, nevts1, dtype=FTYPE) + container2['reco_coszen'] = np.linspace(-1, 1, nevts2, dtype=FTYPE) + data = ContainerSet('data', [container1, container2]) + assert len(data.get_shared_keys(rep_indep=True)) == 0 + + container1['reco_coszen'] = container2['reco_coszen'][:nevts1] + shared_keys = data.get_shared_keys(rep_indep=True) + assert len(shared_keys) == 1 + assert shared_keys[0] == 'reco_coszen' + if __name__ == '__main__': test_container() test_container_set() diff --git a/pisa/core/stage.py b/pisa/core/stage.py index 6d865f7f5..9c5fa6caa 100644 --- a/pisa/core/stage.py +++ b/pisa/core/stage.py @@ -67,6 +67,7 @@ def __init__( data=None, params=None, expected_params=None, + expected_container_keys=None, debug_mode=None, error_method=None, calc_mode=None, @@ -75,7 +76,14 @@ def __init__( ): # Allow for string inputs, but have to populate into lists for # consistent interfacing to one or multiple of these things - expected_params = arg_str_seq_none(expected_params, "expected_params") + expected_params = arg_str_seq_none( + inputs=expected_params, name="expected_params" + ) + + # dito + expected_container_keys = arg_str_seq_none( + inputs=expected_container_keys, name="expected_container_keys" + ) module_path = self.__module__.split(".") @@ -89,6 +97,10 @@ def __init__( """The full set of parameters (by name) that must be present in `params`""" + self.expected_container_keys = expected_container_keys + """The full set of keys that is expected to be present in each + container within `data`""" + self._source_code_hash = None self._attrs_to_hash = set([]) @@ -178,7 +190,7 @@ def select_params(self, selections, error_on_missing=False): "`selections` = %s yielded `params` = %s" % (selections, self.params) ) - def _check_params(self, params, ignore_excess = False): + def _check_params(self, params, ignore_excess=False): """Make sure that `expected_params` is defined and that exactly the params specified in self.expected_params are present. @@ -208,8 +220,6 @@ def _check_params(self, params, ignore_excess = False): + ";\n".join(err_strs) ) - - @property def params(self): """Params""" @@ -220,6 +230,45 @@ def param_selections(self): """Param selections""" return sorted(deepcopy(self._param_selector.param_selections)) + def _check_exp_keys_in_data(self, error_on_missing=False): + """Make sure that `expected_container_keys` is defined and that + they are present in all containers among `self.data`, independent of + representation. + + Parameters + ---------- + error_on_missing : bool + Whether to raise error upon missing keys (default: False) + + Returns + ------- + bool + + """ + if self.data is None: + # nothing to do, we were probably directly instantiated with data + # set to None + return + if self.expected_container_keys is None: + logging.warn( + 'Service %s.%s: not specifying expected container keys is deprecated.' + % (self.stage_name, self.service_name) + ) + return + exp_k = set(self.expected_container_keys) + got_k = set(self.data.get_shared_keys(rep_indep=True)) + missing = exp_k.difference(got_k) + if len(missing) > 0: + err_str = "Service %s.%s," % (self.stage_name, self.service_name) + err_str += " expected container keys: %s," % ", ".join(sorted(exp_k)) + err_str += " but containers are missing keys: %s" % ", ".join(sorted(missing)) + if error_on_missing: + raise ValueError(err_str) + # Could be confusing until we have made setup-time check foolproof + logging.warn(err_str) + + return + @property def source_code_hash(self): """Hash for the source code of this object's class. @@ -312,6 +361,8 @@ def setup(self): if not isinstance(self.data, ContainerSet): raise TypeError("`data` must be a `pisa.core.container.ContainerSet`") + self._check_exp_keys_in_data(error_on_missing=False) + if self.calc_mode is not None: self.data.representation = self.calc_mode diff --git a/pisa/stages/aeff/aeff.py b/pisa/stages/aeff/aeff.py index 5c9dc9928..6b0ee8b50 100644 --- a/pisa/stages/aeff/aeff.py +++ b/pisa/stages/aeff/aeff.py @@ -29,6 +29,11 @@ class aeff(Stage): # pylint: disable=invalid-name nutau_norm : dimensionless Quantity nu_nc_norm : dimensionless Quantity + Expected container keys are .. :: + + "weights" + + """ def __init__( self, @@ -42,9 +47,14 @@ def __init__( 'nu_nc_norm', ) + expected_container_keys = ( + 'weights' + ) + # init base class super().__init__( expected_params=expected_params, + expected_container_keys=expected_container_keys, **std_kwargs, ) diff --git a/pisa/stages/aeff/param.py b/pisa/stages/aeff/param.py index 3b38480b6..97da5d238 100644 --- a/pisa/stages/aeff/param.py +++ b/pisa/stages/aeff/param.py @@ -149,8 +149,15 @@ def __init__( 'aeff_scale' ) + expected_container_keys = ( + 'true_energy', + 'true_coszen', + 'weights' + ) + super().__init__( expected_params=expected_params, + expected_container_keys=expected_container_keys, **std_kwargs, ) diff --git a/pisa/stages/data/simple_data_loader.py b/pisa/stages/data/simple_data_loader.py index 15bb440c5..e81432344 100644 --- a/pisa/stages/data/simple_data_loader.py +++ b/pisa/stages/data/simple_data_loader.py @@ -88,6 +88,7 @@ def __init__(self, # init base class super().__init__( expected_params=expected_params, + expected_container_keys=(), **std_kwargs, ) diff --git a/pisa/stages/flux/barr_simple.py b/pisa/stages/flux/barr_simple.py index 6bafb0a23..522b94a38 100644 --- a/pisa/stages/flux/barr_simple.py +++ b/pisa/stages/flux/barr_simple.py @@ -32,6 +32,14 @@ class barr_simple(Stage): # pylint: disable=invalid-name Barr_uphor_ratio : quantity (dimensionless) Barr_nu_nubar_ratio : quantity (dimensionless) + Expected container keys are .. :: + + "true_energy" + "true_coszen" + "nu_flux_nominal" + "nubar_flux_nominal" + "nubar" + """ def __init__( self, @@ -45,9 +53,18 @@ def __init__( "Barr_nu_nubar_ratio", ) + expected_container_keys = ( + "true_energy", + "true_coszen", + "nu_flux_nominal", + "nubar_flux_nominal", + "nubar" + ) + # init base class super(barr_simple, self).__init__( expected_params=expected_params, + expected_container_keys=expected_container_keys, **std_kwargs, ) diff --git a/pisa/stages/osc/prob3.py b/pisa/stages/osc/prob3.py index a6c1f2771..327a55240 100644 --- a/pisa/stages/osc/prob3.py +++ b/pisa/stages/osc/prob3.py @@ -68,6 +68,13 @@ class prob3(Stage): # pylint: disable=invalid-name decay_alpha3 : quantity (energy^2) v_lri : quantity (eV) + Expected container keys are .. :: + + "true_energy" + "true_coszen" + "nubar" + "nu_flux" + "weights" **kwargs Other kwargs are handled by Stage @@ -100,6 +107,14 @@ def __init__( 'deltacp' ) + expected_container_keys = ( + 'true_energy', + 'true_coszen', + 'nubar', + 'nu_flux', + 'weights' + ) + # Check whether and if so with which NSI parameters we are to work. if nsi_type is not None: @@ -192,6 +207,7 @@ def __init__( # init base class super().__init__( expected_params=expected_params, + expected_container_keys=expected_container_keys, **std_kwargs, ) diff --git a/pisa/stages/utils/hist.py b/pisa/stages/utils/hist.py index de8baafb6..c78149547 100644 --- a/pisa/stages/utils/hist.py +++ b/pisa/stages/utils/hist.py @@ -27,10 +27,13 @@ def __init__( unweighted=False, **std_kwargs, ): + # not obvious how to set these here + expected_container_keys = () # init base class super().__init__( expected_params=(), + expected_container_keys=expected_container_keys, **std_kwargs, ) From 0de718b822669cc5313c8f0df941bdca10e6853c Mon Sep 17 00:00:00 2001 From: T Ehrhardt Date: Fri, 16 Aug 2024 01:33:47 +0200 Subject: [PATCH 02/38] fix ContainerSet constructor and declare expected keys in a couple of services (with case distinction in utils.hist) --- pisa/core/container.py | 54 +++++++++++++++++++++++++++++++-------- pisa/stages/aeff/param.py | 32 +++++++++++++++-------- pisa/stages/utils/hist.py | 21 ++++++++++----- 3 files changed, 80 insertions(+), 27 deletions(-) diff --git a/pisa/core/container.py b/pisa/core/container.py index d31daf72d..d1750529b 100644 --- a/pisa/core/container.py +++ b/pisa/core/container.py @@ -33,10 +33,10 @@ class ContainerSet(object): containers : list or None - data_specs : MultiDimBinning, "events" or None + representation : MultiDimBinning, "events" or None """ - def __init__(self, name, containers=None, data_specs=None): + def __init__(self, name, containers=None, representation=None): self.name = name self.linked_containers = [] self.containers = [] @@ -44,6 +44,7 @@ def __init__(self, name, containers=None, data_specs=None): containers = [] for container in containers: self.add_container(container) + self.representation = representation def __repr__(self): return f'ContainerSet containing {[c.name for c in self]}' @@ -368,7 +369,7 @@ def keys(self): @property def keys_incl_aux_data(self): - return self.keys + list(self._aux_data.keys()) + return list(self.keys) + list(self._aux_data.keys()) @property def all_keys(self): @@ -780,18 +781,49 @@ def test_container_set(): else: raise Exception('identical containers added to a containerset, this should not be possible') - nevts1 = 10 - nevts2 = 20 container1['true_energy'] = np.linspace(1, 80, nevts1, dtype=FTYPE) - container2['reco_coszen'] = np.linspace(-1, 1, nevts2, dtype=FTYPE) - data = ContainerSet('data', [container1, container2]) - assert len(data.get_shared_keys(rep_indep=True)) == 0 + container2['reco_coszen'] = np.linspace(-1, 1, 2*nevts1, dtype=FTYPE) + + # we have not set a representation, should make no difference + # whether we require repr. independence or not + for rep_indep in (True, False): + assert len(data.get_shared_keys(rep_indep=rep_indep)) == 0 container1['reco_coszen'] = container2['reco_coszen'][:nevts1] - shared_keys = data.get_shared_keys(rep_indep=True) - assert len(shared_keys) == 1 - assert shared_keys[0] == 'reco_coszen' + # do the following without and with events rep. for fun + for rep in (None, 'events'): + data.representation = rep + for rep_indep in (True, False): + shared_keys = data.get_shared_keys(rep_indep=rep_indep) + if rep_indep or rep is None: + assert len(shared_keys) == 1 + assert shared_keys[0] == 'reco_coszen' + else: + # Here, we have set events rep., which + # I believe should have no keys, and don't request + # rep. independence -> 0 + for c in data.containers: + assert len(c.keys) == 0 + assert len(shared_keys) == 0 + + # still in events rep. + shared_aux_key = 'AmIEvil' + # add auxilliary data to both containers + container1.set_aux_data(key=shared_aux_key, val=False) + container2.set_aux_data(key=shared_aux_key, val=True) + # get shared keys across all reps. and for the current one + shared_keys_rep_indep = data.get_shared_keys(rep_indep=True) + shared_keys_rep_dep = data.get_shared_keys(rep_indep=False) + + assert (shared_aux_key in shared_keys_rep_indep + and shared_aux_key in shared_keys_rep_dep) + + # But should have "reco_coszen" next to shared_aux_key + # in shared keys for representation-dependent request + assert len(shared_keys_rep_indep) == 2 + assert len(shared_keys_rep_dep) == 1 + if __name__ == '__main__': test_container() diff --git a/pisa/stages/aeff/param.py b/pisa/stages/aeff/param.py index 97da5d238..61f91246e 100644 --- a/pisa/stages/aeff/param.py +++ b/pisa/stages/aeff/param.py @@ -38,17 +38,20 @@ def load_aeff_param(source): """Load aeff parameterisation (energy- or coszen-dependent) from file or dictionary. + Parameters ---------- source : string or mapping Source of the parameterization. If string, treat as file path or resource location and load from the file; this must yield a mapping. If `source` is a mapping, it is used directly. See notes below on format. + Returns ------- aeff_params : OrderedDict Keys are stringified flavintgroups and values are the callables that produce aeff when called with energy or coszen values. + Notes ----- The mapping passed via `source` or loaded therefrom must have the format: @@ -69,8 +72,8 @@ def load_aeff_param(source): "aeff": [sequence of values] } the two sequences are used to form a linear interpolant callable that - maps energy or coszen values to aeff values. The effective area for any - energy or coszen outside the bounds of the corresponding sequence is + maps energy or coszen values to aeff values. The effective area for any + energy or coszen outside the bounds of the corresponding sequence is assumed to be 0. """ if not isinstance(source, (str, Mapping)): @@ -126,18 +129,27 @@ class param(Stage): # pylint: disable=invalid-name """Effective area service based on parameterisation functions stored in a .json file. Transforms an input map of a flux of a given flavour (and interaction) - into maps of event rates, according to energy and cosine zenith dependent + into maps of event rates, according to energy and cosine zenith dependent effective areas specified by parameterisation functions. - Requires true_energy, true_coszen, and weights to be present in the container. + Parameters ---------- - params : ParamSet - Must exclusively have parameters: - aeff_energy_paramfile - aeff_coszen_paramfile - livetime - aeff_scale + params : ParamSet or sequence with which to instantiate a ParamSet. + Expected params are .. :: + + aeff_energy_paramfile : string + aeff_coszen_paramfile : string + livetime : Quantity [time] + aeff_scale : Quantity [dimensionless] + + Expected container keys are .. :: + + "true_energy" + "true_coszen" + "weights" + """ + def __init__( self, **std_kwargs, diff --git a/pisa/stages/utils/hist.py b/pisa/stages/utils/hist.py index c78149547..1d08a4916 100644 --- a/pisa/stages/utils/hist.py +++ b/pisa/stages/utils/hist.py @@ -13,22 +13,31 @@ class hist(Stage): # pylint: disable=invalid-name - - """stage to histogram events + """Stage to histogram events Parameters ---------- - unweighted : bool, optional - Return un-weighted event counts in each bin. + unweighted : bool, default False + Return un-weighted event counts in each bin + apply_unc_weights : bool, default False + + Expected container keys are .. :: + + "weights" + "unc_weights" (if `apply_unc_weights`) """ + def __init__( self, apply_unc_weights=False, unweighted=False, **std_kwargs, ): - # not obvious how to set these here - expected_container_keys = () + expected_container_keys = [ + 'weights' + ] + if apply_unc_weights: + expected_container_keys.append('unc_weights') # init base class super().__init__( From 5ad31219b7cf4fc04e3ba739b7f4fd99d17099ba Mon Sep 17 00:00:00 2001 From: Jan Weldert Date: Fri, 16 Aug 2024 03:31:53 -0500 Subject: [PATCH 03/38] Add expected container params to more stages --- pisa/stages/aeff/param.py | 2 +- pisa/stages/aeff/weight.py | 14 +++++++++- pisa/stages/background/atm_muons.py | 11 +++++++- pisa/stages/data/csv_data_hist.py | 1 + pisa/stages/data/csv_icc_hist.py | 1 + pisa/stages/data/csv_loader.py | 1 + pisa/stages/data/freedom_hdf5_loader.py | 4 ++- pisa/stages/data/grid.py | 1 + pisa/stages/data/meows_loader.py | 7 ++++- pisa/stages/data/simple_signal.py | 1 + pisa/stages/data/sqlite_loader.py | 1 + pisa/stages/data/toy_event_generator.py | 1 + pisa/stages/discr_sys/hypersurfaces.py | 7 +++++ pisa/stages/discr_sys/ultrasurfaces.py | 1 + pisa/stages/flux/airs.py | 13 +++++++++ pisa/stages/flux/astrophysical.py | 19 ++++++++++++- pisa/stages/flux/daemon_flux.py | 36 +++++++++---------------- pisa/stages/flux/hillasg.py | 16 ++++++++++- pisa/stages/flux/honda_ip.py | 15 ++++++++++- pisa/stages/flux/mceq_barr.py | 16 +++++++++++ pisa/stages/flux/mceq_barr_red.py | 17 ++++++++++++ 21 files changed, 154 insertions(+), 31 deletions(-) diff --git a/pisa/stages/aeff/param.py b/pisa/stages/aeff/param.py index 61f91246e..82a5446fd 100644 --- a/pisa/stages/aeff/param.py +++ b/pisa/stages/aeff/param.py @@ -164,7 +164,7 @@ def __init__( expected_container_keys = ( 'true_energy', 'true_coszen', - 'weights' + 'weights', ) super().__init__( diff --git a/pisa/stages/aeff/weight.py b/pisa/stages/aeff/weight.py index 545eb363b..8a8143945 100644 --- a/pisa/stages/aeff/weight.py +++ b/pisa/stages/aeff/weight.py @@ -24,17 +24,29 @@ class weight(Stage): # pylint: disable=invalid-name Detector livetime for scaling template weight_scale : Quantity [dimensionless] Overall scaling/normalisation of template + + Expected container keys are .. :: + + "weights" """ def __init__( self, **std_kwargs, ): - expected_params = ('livetime', 'weight_scale') + expected_params = ( + 'livetime', + 'weight_scale', + ) + + expected_container_keys = ( + 'weights', + ) # init base class super().__init__( expected_params=expected_params, + expected_container_keys=expected_container_keys, **std_kwargs, ) diff --git a/pisa/stages/background/atm_muons.py b/pisa/stages/background/atm_muons.py index 9935e8649..e09b67922 100644 --- a/pisa/stages/background/atm_muons.py +++ b/pisa/stages/background/atm_muons.py @@ -40,6 +40,10 @@ class atm_muons(Stage): # pylint: disable=invalid-name Currently only supported variable is 'coszen' delta_gamma_mu : quantity (dimensionless) Parameter controlling variation in spectral index + + Expected container keys are .. :: + + "weights" """ @@ -53,12 +57,17 @@ def __init__(self, 'delta_gamma_mu_file', 'delta_gamma_mu_spline_kind', 'delta_gamma_mu_variable', - 'delta_gamma_mu' + 'delta_gamma_mu', + ) + + expected_container_keys = ( + 'weights', ) # init base class super().__init__( expected_params=expected_params, + expected_container_keys=expected_container_keys, **std_kwargs, ) diff --git a/pisa/stages/data/csv_data_hist.py b/pisa/stages/data/csv_data_hist.py index f8ee5387f..763f55f15 100644 --- a/pisa/stages/data/csv_data_hist.py +++ b/pisa/stages/data/csv_data_hist.py @@ -35,6 +35,7 @@ def __init__(self, # init base class super().__init__( expected_params=expected_params, + expected_container_keys=(), **std_kwargs, ) diff --git a/pisa/stages/data/csv_icc_hist.py b/pisa/stages/data/csv_icc_hist.py index 358da41c5..ffc81419d 100644 --- a/pisa/stages/data/csv_icc_hist.py +++ b/pisa/stages/data/csv_icc_hist.py @@ -35,6 +35,7 @@ def __init__( # init base class super().__init__( expected_params=expected_params, + expected_container_keys=(), **std_kwargs, ) diff --git a/pisa/stages/data/csv_loader.py b/pisa/stages/data/csv_loader.py index d7dc6a0e0..e69ae23ea 100644 --- a/pisa/stages/data/csv_loader.py +++ b/pisa/stages/data/csv_loader.py @@ -37,6 +37,7 @@ def __init__( # init base class super().__init__( expected_params=(), + expected_container_keys=(), **std_kwargs, ) diff --git a/pisa/stages/data/freedom_hdf5_loader.py b/pisa/stages/data/freedom_hdf5_loader.py index 5338cdf29..b8cb5611c 100644 --- a/pisa/stages/data/freedom_hdf5_loader.py +++ b/pisa/stages/data/freedom_hdf5_loader.py @@ -68,7 +68,9 @@ def __init__( # init base class super().__init__( - expected_params=(), **std_kwargs, + expected_params=(), + expected_container_keys=(), + **std_kwargs, ) self.output_names = output_names diff --git a/pisa/stages/data/grid.py b/pisa/stages/data/grid.py index d5a07a82d..9945e2cb2 100644 --- a/pisa/stages/data/grid.py +++ b/pisa/stages/data/grid.py @@ -41,6 +41,7 @@ def __init__( # init base class super(grid, self).__init__( expected_params=expected_params, + expected_container_keys=(), **std_kwargs, ) diff --git a/pisa/stages/data/meows_loader.py b/pisa/stages/data/meows_loader.py index f45c50a7f..eecd71c07 100644 --- a/pisa/stages/data/meows_loader.py +++ b/pisa/stages/data/meows_loader.py @@ -22,7 +22,12 @@ def __init__(self, events_file: str, n_files: int, output_names, **std_kwargs): self.events_file = events_file self._n_files = int(n_files) self.output_names = output_names - super().__init__(expected_params=(), **std_kwargs) + + super().__init__( + expected_params=(), + expected_container_keys=(), + **std_kwargs, + ) def setup_function(self): """ diff --git a/pisa/stages/data/simple_signal.py b/pisa/stages/data/simple_signal.py index 38b92a3b1..4ada649c4 100644 --- a/pisa/stages/data/simple_signal.py +++ b/pisa/stages/data/simple_signal.py @@ -53,6 +53,7 @@ def __init__( # init base class super().__init__( expected_params=expected_params, + expected_container_keys=(), **std_kwargs, ) diff --git a/pisa/stages/data/sqlite_loader.py b/pisa/stages/data/sqlite_loader.py index 1569e09aa..301051243 100644 --- a/pisa/stages/data/sqlite_loader.py +++ b/pisa/stages/data/sqlite_loader.py @@ -37,6 +37,7 @@ def __init__( # init base class super().__init__( expected_params=(), + expected_container_keys=(), **std_kwargs, ) diff --git a/pisa/stages/data/toy_event_generator.py b/pisa/stages/data/toy_event_generator.py index 27e30c02d..c11451695 100644 --- a/pisa/stages/data/toy_event_generator.py +++ b/pisa/stages/data/toy_event_generator.py @@ -45,6 +45,7 @@ def __init__( # init base class super().__init__( expected_params=expected_params, + expected_container_keys=(), **std_kwargs, ) diff --git a/pisa/stages/discr_sys/hypersurfaces.py b/pisa/stages/discr_sys/hypersurfaces.py index c46fea09b..a6527721c 100644 --- a/pisa/stages/discr_sys/hypersurfaces.py +++ b/pisa/stages/discr_sys/hypersurfaces.py @@ -95,9 +95,16 @@ def __init__( self.hypersurfaces = hs.load_hypersurfaces(self.fit_results_file, expected_binning=std_kwargs['calc_mode']) self.hypersurface_param_names = list(self.hypersurfaces.values())[0].param_names + expected_container_keys = [ + 'weights', + ] + if not self.error_method == None: + expected_container_keys.append('errors') + # -- Initialize base class -- # super().__init__( expected_params=self.hypersurface_param_names + self.inter_params, + expected_container_keys=expected_container_keys, **std_kwargs, ) diff --git a/pisa/stages/discr_sys/ultrasurfaces.py b/pisa/stages/discr_sys/ultrasurfaces.py index a0ee05d80..1ca9d7a6c 100644 --- a/pisa/stages/discr_sys/ultrasurfaces.py +++ b/pisa/stages/discr_sys/ultrasurfaces.py @@ -114,6 +114,7 @@ def __init__( # -- Initialize base class -- # super().__init__( expected_params=param_names, + expected_container_keys=varnames+["weights"], **std_kwargs, ) diff --git a/pisa/stages/flux/airs.py b/pisa/stages/flux/airs.py index a5f5746da..3776cbaee 100644 --- a/pisa/stages/flux/airs.py +++ b/pisa/stages/flux/airs.py @@ -26,6 +26,12 @@ class airs(Stage): # pylint: disable=invalid-name scale : quantity (dimensionless) the scale by which the weights are perturbed via the airs 1-sigma shift + + Expected container keys are .. :: + + "true_energy" + "true_coszen" + "weights" """ def __init__(self, airs_spline, **std_kwargs): @@ -35,9 +41,16 @@ def __init__(self, airs_spline, **std_kwargs): expected_params = [ "airs_scale", ] + + expected_container_keys = ( + 'true_energy', + 'true_coszen', + 'weights', + ) super().__init__( expected_params=expected_params, + expected_container_keys=expected_container_keys, **std_kwargs, ) diff --git a/pisa/stages/flux/astrophysical.py b/pisa/stages/flux/astrophysical.py index 510ea144e..efadfcd0d 100644 --- a/pisa/stages/flux/astrophysical.py +++ b/pisa/stages/flux/astrophysical.py @@ -19,8 +19,15 @@ class astrophysical(Stage): # pylint: disable=invalid-name ---------- params Expected params are .. :: + astro_delta : quantity (dimensionless) astro_norm : quantity (dimensionless) + + Expected container keys are .. :: + + "true_energy" + "true_coszen" + "initial_weights" TODO: flavor ratio as a parameter? Save for later. """ @@ -33,10 +40,20 @@ def __init__(self, **std_kwargs): self._mu_ratio = FTYPE(1.0) self._tau_ratio = FTYPE(1.0) - expected_params = ("astro_delta", "astro_norm") + expected_params = ( + "astro_delta", + "astro_norm", + ) + + expected_container_keys = ( + 'true_energy', + 'true_coszen', + 'initial_weights', + ) super().__init__( expected_params=expected_params, + expected_container_keys=expected_container_keys, **std_kwargs, ) diff --git a/pisa/stages/flux/daemon_flux.py b/pisa/stages/flux/daemon_flux.py index 905c4adaf..43697ec39 100644 --- a/pisa/stages/flux/daemon_flux.py +++ b/pisa/stages/flux/daemon_flux.py @@ -30,53 +30,36 @@ class daemon_flux(Stage): # pylint: disable=invalid-name Must have parameters: .. :: daemon_K_158G : quantity (dimensionless) - daemon_K_2P : quantity (dimensionless) - daemon_K_31G : quantity (dimensionless) - daemon_antiK_158G : quantity (dimensionless) - daemon_antiK_2P : quantity (dimensionless) - daemon_antiK_31G : quantity (dimensionless) - daemon_n_158G : quantity (dimensionless) - daemon_n_2P : quantity (dimensionless) - daemon_p_158G : quantity (dimensionless) - daemon_p_2P : quantity (dimensionless) - daemon_pi_158G : quantity (dimensionless) - daemon_pi_20T : quantity (dimensionless) - daemon_pi_2P : quantity (dimensionless) - daemon_pi_31G : quantity (dimensionless) - daemon_antipi_158G : quantity (dimensionless) - daemon_antipi_20T : quantity (dimensionless) - daemon_antipi_2P : quantity (dimensionless) - daemon_antipi_31G : quantity (dimensionless) - daemon_GSF_1 : quantity (dimensionless) - daemon_GSF_2 : quantity (dimensionless) - daemon_GSF_3 : quantity (dimensionless) - daemon_GSF_4 : quantity (dimensionless) - daemon_GSF_5 : quantity (dimensionless) - daemon_GSF_6 : quantity (dimensionless) + Expected container keys are .. :: + + "true_energy" + "true_coszen" + "nubar" + """ def __init__( @@ -110,10 +93,17 @@ def __init__( value=len(self.daemon_names)+2, prior=None, range=None, is_fixed=True) std_kwargs['params'].update([daemon_chi2,daemon_params_len]) + + expected_container_keys = ( + 'true_energy', + 'true_coszen', + 'nubar', + ) # init base class super(daemon_flux, self).__init__( expected_params=tuple(self.daemon_params+['daemon_chi2','daemon_params_len']), + expected_container_keys=expected_container_keys, **std_kwargs, ) diff --git a/pisa/stages/flux/hillasg.py b/pisa/stages/flux/hillasg.py index ffebcdef9..0c271a5ae 100644 --- a/pisa/stages/flux/hillasg.py +++ b/pisa/stages/flux/hillasg.py @@ -20,17 +20,31 @@ class hillasg(Stage): # pylint: disable=invalid-name ---------- params Expected params .. :: + flux_table : str + Expected container keys are .. :: + + "true_energy" + "true_coszen" + """ def __init__(self, **std_kwargs): - expected_params = ("flux_table",) + expected_params = ( + "flux_table", + ) + + expected_container_keys = ( + 'true_energy', + 'true_coszen', + ) # init base class super().__init__( expected_params=expected_params, + expected_container_keys=expected_container_keys, **std_kwargs, ) diff --git a/pisa/stages/flux/honda_ip.py b/pisa/stages/flux/honda_ip.py index eb9979a1d..951944a80 100644 --- a/pisa/stages/flux/honda_ip.py +++ b/pisa/stages/flux/honda_ip.py @@ -24,6 +24,11 @@ class honda_ip(Stage): # pylint: disable=invalid-name Expected params .. :: flux_table : str + Expected container keys are .. :: + + "true_energy" + "true_coszen" + """ def __init__( @@ -31,11 +36,19 @@ def __init__( **std_kwargs ): - expected_params = ('flux_table',) + expected_params = ( + 'flux_table', + ) + + expected_container_keys = ( + 'true_energy', + 'true_coszen', + ) # init base class super().__init__( expected_params=expected_params, + expected_container_keys=expected_container_keys, **std_kwargs, ) diff --git a/pisa/stages/flux/mceq_barr.py b/pisa/stages/flux/mceq_barr.py index e697fde9e..d226b7fc3 100644 --- a/pisa/stages/flux/mceq_barr.py +++ b/pisa/stages/flux/mceq_barr.py @@ -64,6 +64,13 @@ class mceq_barr(Stage): # pylint: disable=invalid-name Uncertainty on K- and K+ production is assumed to be uncorrelated as the ratio is badly determined. + Expected container keys are .. :: + + "true_energy" + "true_coszen" + "nubar_flux_nominal" + "nubar" + Notes ----- The nominal flux is calculated ahead of time using MCEq, @@ -158,6 +165,14 @@ def __init__( "energy_pivot", ) + expected_container_keys = [ + 'true_energy', + 'true_coszen', + 'nubar', + ] + if use_honda_nominal_flux: + expected_container_keys.append('nubar_flux_nominal') + # store args self.table_file = table_file self.include_nutau_flux = include_nutau_flux @@ -166,6 +181,7 @@ def __init__( # init base class super(mceq_barr, self).__init__( expected_params=expected_params, + expected_container_keys=expected_container_keys, **std_kwargs, ) diff --git a/pisa/stages/flux/mceq_barr_red.py b/pisa/stages/flux/mceq_barr_red.py index 2a942370c..9b3344b70 100644 --- a/pisa/stages/flux/mceq_barr_red.py +++ b/pisa/stages/flux/mceq_barr_red.py @@ -66,6 +66,14 @@ class mceq_barr_red(Stage): # pylint: disable=invalid-name Uncertainty on K- and K+ production is assumed to be uncorrelated as the ratio is badly determined. + Expected container keys are .. :: + + "true_energy" + "true_coszen" + "nu_flux_nominal" + "nubar_flux_nominal" + "nubar" + Notes ----- The nominal flux is calculated ahead of time using the honda_ip stage, @@ -150,6 +158,14 @@ def __init__( "energy_pivot", ) + expected_container_keys = ( + "true_energy", + "true_coszen", + "nu_flux_nominal", + "nubar_flux_nominal", + "nubar" + ) + # Using Honda for nominal flux. Keys should already exist # what are keys added or altered in the calculation used during apply # what keys are added or altered for the outputs during apply @@ -160,6 +176,7 @@ def __init__( # init base class super(mceq_barr_red, self).__init__( expected_params=expected_params, + expected_container_keys=expected_container_keys, **std_kwargs, ) From c7a5473a7af2bb9e08ac894366e3aff843874e37 Mon Sep 17 00:00:00 2001 From: T Ehrhardt Date: Fri, 16 Aug 2024 15:26:40 +0200 Subject: [PATCH 04/38] skeleton service testing script (detection, importing) --- pisa/stages/background/atm_muons.py | 6 +- pisa_tests/test_services.py | 161 ++++++++++++++++++++++++++++ 2 files changed, 164 insertions(+), 3 deletions(-) create mode 100644 pisa_tests/test_services.py diff --git a/pisa/stages/background/atm_muons.py b/pisa/stages/background/atm_muons.py index e09b67922..b371214f0 100644 --- a/pisa/stages/background/atm_muons.py +++ b/pisa/stages/background/atm_muons.py @@ -40,7 +40,7 @@ class atm_muons(Stage): # pylint: disable=invalid-name Currently only supported variable is 'coszen' delta_gamma_mu : quantity (dimensionless) Parameter controlling variation in spectral index - + Expected container keys are .. :: "weights" @@ -59,8 +59,8 @@ def __init__(self, 'delta_gamma_mu_variable', 'delta_gamma_mu', ) - - expected_container_keys = ( + + expected_container_keys = ( 'weights', ) diff --git a/pisa_tests/test_services.py b/pisa_tests/test_services.py new file mode 100644 index 000000000..dd5864c8b --- /dev/null +++ b/pisa_tests/test_services.py @@ -0,0 +1,161 @@ +#! /usr/bin/env python + +""" +Try to simply run every existing service by automatically deriving as many +sensible test-configuration parameters as possible. A generic services's +test cannot be triggered from within a given service itself, because +sensibly initialising the instance itself (init params, expected params) +is part of the problem. Also, with this external script we can avoid +requesting the implementation of a test function within each service's +module. +""" + +from __future__ import absolute_import + +from argparse import ArgumentDefaultsHelpFormatter, ArgumentParser +from importlib import import_module +from os import walk +from os.path import isfile, join, relpath + +from pisa.utils.fileio import expand, nsort_key_func +from pisa.utils.log import Levels, logging, set_verbosity +from pisa_tests.run_unit_tests import PISA_PATH + + +__all__ = ["STAGES_PATH", "test_services", "find_services", "find_services_in_file"] + +__author__ = "T. Ehrhardt" + +__license__ = """Copyright (c) 2014-2024, The IceCube Collaboration + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License.""" + + + +STAGES_PATH = join(PISA_PATH, "stages") + +# TODO: define hopeless cases? define services whose tests may fail? +# optional modules from unit tests? +SKIP_SERVICES = ( +) + + +def find_services(path): + """Modelled after `run_unit_tests.find_unit_tests`""" + path = expand(path, absolute=True, resolve_symlinks=True) + + services = {} + if isfile(path): + filerelpath = relpath(path, start=PISA_PATH) + services[filerelpath] = find_services_in_file(path) + return services + + for dirpath, dirs, files in walk(path, followlinks=True): + files.sort(key=nsort_key_func) + dirs.sort(key=nsort_key_func) + + for filename in files: + if not filename.endswith(".py"): + continue + filepath = join(dirpath, filename) + filerelpath = relpath(filepath, start=PISA_PATH) + services[filerelpath] = find_services_in_file(filepath) + + return services + + +def find_services_in_file(filepath): + """Modelled after `run_unit_tests.find_unit_tests_in_file`""" + filepath = expand(filepath, absolute=True, resolve_symlinks=True) + assert isfile(filepath), str(filepath) + services = [] + with open(filepath, "r") as f: + for line in f.readlines(): + tokens = line.split() + if tokens and tokens[0] == "class" and "(Stage)" in tokens[1]: + service_name = tokens[1].split("(")[0].strip() + services.append(service_name) + return services + + +def test_services(path=STAGES_PATH, skip_services=SKIP_SERVICES, + verbosity=Levels.WARN +): + """Modelled after `run_unit_tests.run_unit_tests`""" + services = find_services(path=path) + + module_pypaths_succeeded = [] + + for rel_file_path, service_names in services.items(): + if not service_names: + continue + pypath = ["pisa"] + rel_file_path[:-3].split("/") + parent_pypath = ".".join(pypath[:-1]) + module_name = pypath[-1].replace(".", "_") + module_pypath = f"{parent_pypath}.{module_name}" + + try: + set_verbosity(verbosity) + logging.info(f"importing {module_pypath}") + + set_verbosity(Levels.WARN) + module = import_module(module_pypath, package=parent_pypath) + module_pypaths_succeeded.append(module_pypath) + except: + pass + + for service_name in service_names: + test_pypath = f"{module_pypath}.{service_name}" + + try: + set_verbosity(verbosity) + logging.debug(f"getattr({module}, {service_name})") + + set_verbosity(Levels.WARN) + service = getattr(module, service_name) + + # initialise, setup, run the service + set_verbosity(verbosity) + logging.info(f"{test_pypath}()") + + set_verbosity(Levels.WARN) + #service() + # TODO: here derive init args to attempt service init, + # then create some dummy input data, then try to + # run the service (e.g., also with different data reps.) + except: + pass + + +def parse_args(description=__doc__): + """Parse command line arguments""" + parser = ArgumentParser(description=description, + formatter_class=ArgumentDefaultsHelpFormatter) + parser.add_argument( + "-v", action="count", default=Levels.WARN, help="set verbosity level" + ) + args = parser.parse_args() + return args + + +def main(): + """Script interface to test_services""" + args = parse_args() + kwargs = vars(args) + kwargs["verbosity"] = kwargs.pop("v") + test_services(**kwargs) + logging.info(f'services testing done') + + +if __name__ == "__main__": + main() From 928e2efaed3419525717f3a40b1d11c3285b789b Mon Sep 17 00:00:00 2001 From: Jan Weldert Date: Fri, 16 Aug 2024 09:58:16 -0500 Subject: [PATCH 05/38] And more stages with exp keys --- pisa/stages/osc/decoherence.py | 28 ++++++++++++++++++++++++---- pisa/stages/osc/external.py | 20 ++++++++++++++++++++ pisa/stages/osc/globes.py | 19 +++++++++++++++++++ pisa/stages/osc/nusquids.py | 19 +++++++++++++++++++ pisa/stages/osc/prob3.py | 2 ++ pisa/stages/osc/two_nu_osc.py | 29 +++++++++++++++++++++++------ pisa/stages/reco/resolutions.py | 17 +++++++++++++++++ pisa/stages/reco/simple_param.py | 25 ++++++++++++++++++------- 8 files changed, 142 insertions(+), 17 deletions(-) diff --git a/pisa/stages/osc/decoherence.py b/pisa/stages/osc/decoherence.py index a0fe85bcb..2c7febd02 100644 --- a/pisa/stages/osc/decoherence.py +++ b/pisa/stages/osc/decoherence.py @@ -270,6 +270,15 @@ class decoherence(Stage): gamma13 : quantity (energy) gamma23 : quantity (energy) + Expected container keys are .. :: + + "true_energy" + "true_coszen" + "weights" + "nubar" + "flav" + "sys_flux" + """ def __init__(self, **std_kwargs, @@ -292,11 +301,22 @@ def __init__(self, 'gamma32', ) + expected_container_keys = ( + 'true_energy', + 'true_coszen', + 'weights', + 'nubar', + 'flav', + 'sys_flux', + + ) + # init base class - super(decoherence, self).__init__( - expected_params=expected_params, - **std_kwargs, - ) + super().__init__( + expected_params=expected_params, + expected_container_keys=expected_container_keys, + **std_kwargs, + ) #Have not yet implemented matter effects if self.params.earth_model.value is not None: diff --git a/pisa/stages/osc/external.py b/pisa/stages/osc/external.py index 9554b3bec..dad025d7e 100644 --- a/pisa/stages/osc/external.py +++ b/pisa/stages/osc/external.py @@ -32,6 +32,16 @@ class external(Stage): YeI : quantity (dimensionless) YeO : quantity (dimensionless) YeM : quantity (dimensionless) + + Expected container keys are .. :: + + "true_energy" + "true_coszen" + "nubar" + "flav" + "nu_flux" + "weights" + **kwargs Other kwargs are handled by Stage ----- @@ -50,11 +60,21 @@ def __init__( 'YeO', 'YeM', ) + + expected_container_keys = ( + 'true_energy', + 'true_coszen', + 'nubar', + 'flav', + 'nu_flux', + 'weights' + ) # init base class super().__init__( expected_params=expected_params, + expected_container_keys=expected_container_keys, **std_kwargs, ) diff --git a/pisa/stages/osc/globes.py b/pisa/stages/osc/globes.py index 766fb273b..7ac086ed0 100644 --- a/pisa/stages/osc/globes.py +++ b/pisa/stages/osc/globes.py @@ -50,6 +50,15 @@ class globes(Stage): # pylint: disable=invalid-name theta34 : quantity (angle) deltacp : quantity (angle) + Expected container keys are .. :: + + "true_energy" + "true_coszen" + "nubar" + "flav" + "nu_flux" + "weights" + """ def __init__( self, @@ -72,9 +81,19 @@ def __init__( 'deltacp', ) + expected_container_keys = ( + 'true_energy', + 'true_coszen', + 'nubar', + 'flav', + 'nu_flux', + 'weights' + ) + # init base class super().__init__( expected_params=expected_params, + expected_container_keys=expected_container_keys, **std_kwargs, ) diff --git a/pisa/stages/osc/nusquids.py b/pisa/stages/osc/nusquids.py index c27ab7ec6..ebae646c7 100644 --- a/pisa/stages/osc/nusquids.py +++ b/pisa/stages/osc/nusquids.py @@ -179,6 +179,15 @@ class nusquids(Stage): # pylint: disable=invalid-name gamma12 : quantity (energy) gamma13 : quantity (energy) gamma23 : quantity (energy) + + Expected container keys are .. :: + + "true_energy" + "true_coszen" + "nubar" + "flav" + "nu_flux" + "weights" """ @@ -320,9 +329,19 @@ def __init__( ] ) + expected_container_keys = ( + 'true_energy', + 'true_coszen', + 'nubar', + 'flav', + 'nu_flux', + 'weights' + ) + # init base class super().__init__( expected_params=expected_params, + expected_container_keys=expected_container_keys, **std_kwargs, ) diff --git a/pisa/stages/osc/prob3.py b/pisa/stages/osc/prob3.py index 327a55240..3c5709de0 100644 --- a/pisa/stages/osc/prob3.py +++ b/pisa/stages/osc/prob3.py @@ -73,6 +73,7 @@ class prob3(Stage): # pylint: disable=invalid-name "true_energy" "true_coszen" "nubar" + "flav" "nu_flux" "weights" @@ -111,6 +112,7 @@ def __init__( 'true_energy', 'true_coszen', 'nubar', + 'flav', 'nu_flux', 'weights' ) diff --git a/pisa/stages/osc/two_nu_osc.py b/pisa/stages/osc/two_nu_osc.py index a8cb4d4ba..2fced2920 100644 --- a/pisa/stages/osc/two_nu_osc.py +++ b/pisa/stages/osc/two_nu_osc.py @@ -19,8 +19,17 @@ class two_nu_osc(Stage): # pylint: disable=invalid-name Parameters ---------- - theta : quantity (angle) - deltam31 : quantity (mass^2) + Expected params .. :: + + theta : quantity (angle) + deltam31 : quantity (mass^2) + + Expected container keys are .. :: + + "true_energy" + "true_coszen" + "nu_flux" + "weights" Notes ----- @@ -33,13 +42,21 @@ def __init__(self, ): expected_params = ( - 'theta', - 'deltam31', - ) + 'theta', + 'deltam31', + ) + + expected_container_keys = ( + 'true_energy', + 'true_coszen', + 'nu_flux', + 'weights' + ) # init base class - super(two_nu_osc, self).__init__( + super().__init__( expected_params=expected_params, + expected_container_keys=expected_container_keys, **std_kwargs, ) diff --git a/pisa/stages/reco/resolutions.py b/pisa/stages/reco/resolutions.py index 1ba0221e4..82b6f1a71 100644 --- a/pisa/stages/reco/resolutions.py +++ b/pisa/stages/reco/resolutions.py @@ -27,6 +27,14 @@ class resolutions(Stage): # pylint: disable=invalid-name pid_improvement : quantity (dimensionless) applies a shift to the classification parameter + Expected container keys are .. :: + + "true_energy" + "true_coszen" + "reco_energy" + "reco_coszen" + "pid" + """ def __init__( self, @@ -37,9 +45,18 @@ def __init__( 'coszen_improvement', 'pid_improvement', ) + + expected_container_keys = ( + 'true_energy', + 'true_coszen', + 'reco_energy', + 'reco_coszen', + ) + # init base class super().__init__( expected_params=expected_params, + expected_container_keys=expected_container_keys, **std_kwargs, ) diff --git a/pisa/stages/reco/simple_param.py b/pisa/stages/reco/simple_param.py index c97dc72ae..e24d08483 100644 --- a/pisa/stages/reco/simple_param.py +++ b/pisa/stages/reco/simple_param.py @@ -404,6 +404,11 @@ class simple_param(Stage): # pylint: disable=invalid-name cascade_pid : float The numerical 'pid' variable value to assign for cascades + Expected container keys are .. :: + + "true_energy" + "true_coszen" + """ def __init__(self, @@ -411,17 +416,23 @@ def __init__(self, ): expected_params = ( - "perfect_reco", #TODO move these to constructor args? - "reco_energy_params", - "reco_coszen_params", - "pid_track_params", - "track_pid", - "cascade_pid", - ) + "perfect_reco", #TODO move these to constructor args? + "reco_energy_params", + "reco_coszen_params", + "pid_track_params", + "track_pid", + "cascade_pid", + ) + + expected_container_keys = ( + 'true_energy', + 'true_coszen', + ) # init base class super().__init__( expected_params=expected_params, + expected_container_keys=expected_container_keys, **std_kwargs, ) From 2ba3bf6067a698bb84e6b666e88bfcd9f4ebef0f Mon Sep 17 00:00:00 2001 From: Jan Weldert Date: Mon, 19 Aug 2024 06:30:22 -0500 Subject: [PATCH 06/38] Even more stages with exp keys --- pisa/stages/utils/add_indices.py | 9 +++++---- pisa/stages/utils/adhoc_sys.py | 5 +++++ pisa/stages/utils/bootstrap.py | 6 ++++++ pisa/stages/utils/fix_error.py | 5 +++++ pisa/stages/utils/kde.py | 1 + pisa/stages/utils/kfold.py | 5 +++++ pisa/stages/utils/resample.py | 7 +++++++ pisa/stages/utils/set_variance.py | 1 + pisa/stages/xsec/dis_sys.py | 17 +++++++++++++++++ pisa/stages/xsec/genie_sys.py | 5 +++++ pisa/stages/xsec/nutau_xsec.py | 15 ++++++++++++++- 11 files changed, 71 insertions(+), 5 deletions(-) diff --git a/pisa/stages/utils/add_indices.py b/pisa/stages/utils/add_indices.py index 5acd9195e..fa9390b1e 100644 --- a/pisa/stages/utils/add_indices.py +++ b/pisa/stages/utils/add_indices.py @@ -51,10 +51,11 @@ def __init__(self, # init base class - super(add_indices, self).__init__( - expected_params=(), - **std_kwargs, - ) + super().__init__( + expected_params=(), + expected_container_keys=(), + **std_kwargs, + ) def setup_function(self): diff --git a/pisa/stages/utils/adhoc_sys.py b/pisa/stages/utils/adhoc_sys.py index 8f9b7bb6e..c9a9e7435 100644 --- a/pisa/stages/utils/adhoc_sys.py +++ b/pisa/stages/utils/adhoc_sys.py @@ -44,10 +44,15 @@ def __init__( ): expected_params = () + + expected_container_keys = ( + 'weights', + ) # init base class super().__init__( expected_params=expected_params, + expected_container_keys=expected_container_keys, **std_kwargs, ) diff --git a/pisa/stages/utils/bootstrap.py b/pisa/stages/utils/bootstrap.py index 3d0718006..0fa5a484f 100644 --- a/pisa/stages/utils/bootstrap.py +++ b/pisa/stages/utils/bootstrap.py @@ -47,9 +47,15 @@ def __init__( seed=None, **std_kwargs, ): + + expected_container_keys = ( + 'weights', + ) + # init base class super().__init__( expected_params=(), + expected_container_keys=expected_container_keys, **std_kwargs, ) diff --git a/pisa/stages/utils/fix_error.py b/pisa/stages/utils/fix_error.py index 664661036..ef1794051 100644 --- a/pisa/stages/utils/fix_error.py +++ b/pisa/stages/utils/fix_error.py @@ -22,9 +22,14 @@ def __init__( **std_kwargs, ): + expected_container_keys = ( + 'errors', + ) + # init base class super().__init__( expected_params=(), + expected_container_keys=expected_container_keys, **std_kwargs, ) diff --git a/pisa/stages/utils/kde.py b/pisa/stages/utils/kde.py index 8cf9e9351..9d126c62c 100644 --- a/pisa/stages/utils/kde.py +++ b/pisa/stages/utils/kde.py @@ -87,6 +87,7 @@ def __init__( # init base class super().__init__( expected_params=(), + expected_container_keys=(), **std_kargs, ) diff --git a/pisa/stages/utils/kfold.py b/pisa/stages/utils/kfold.py index 67dee3437..764b1e47c 100644 --- a/pisa/stages/utils/kfold.py +++ b/pisa/stages/utils/kfold.py @@ -61,9 +61,14 @@ def __init__( **std_kwargs, ): + expected_container_keys = ( + 'weights', + ) + # init base class super().__init__( expected_params=(), + expected_container_keys=expected_container_keys, **std_kwargs, ) diff --git a/pisa/stages/utils/resample.py b/pisa/stages/utils/resample.py index 7fbc245b9..ae5f96ff4 100644 --- a/pisa/stages/utils/resample.py +++ b/pisa/stages/utils/resample.py @@ -47,9 +47,16 @@ def __init__( **std_kwargs, ): + expected_container_keys = [ + 'weights', + ] + if scale_errors: + expected_container_keys.append('errors') + # init base class super().__init__( expected_params=(), + expected_container_keys=expected_container_keys, **std_kwargs, ) diff --git a/pisa/stages/utils/set_variance.py b/pisa/stages/utils/set_variance.py index 4317a6ebf..4a7132957 100644 --- a/pisa/stages/utils/set_variance.py +++ b/pisa/stages/utils/set_variance.py @@ -29,6 +29,7 @@ def __init__( # init base class super().__init__( expected_params=(), + expected_container_keys=(), **std_kwargs, ) diff --git a/pisa/stages/xsec/dis_sys.py b/pisa/stages/xsec/dis_sys.py index 9a0c7335c..52101ee10 100644 --- a/pisa/stages/xsec/dis_sys.py +++ b/pisa/stages/xsec/dis_sys.py @@ -30,6 +30,14 @@ class dis_sys(Stage): # pylint: disable=invalid-name Must contain :: dis_csms : quantity (dimensionless) + Expected container keys are .. :: + + "true_energy" + "bjorken_y" + "dis" + "nubar" + "weights" + extrapolation_type : string choice of ['constant', 'linear', 'higher'] @@ -58,9 +66,18 @@ def __init__( 'dis_csms', ) + expected_container_keys = ( + 'true_energy', + 'bjorken_y', + 'dis', + 'nubar', + 'weights', + ) + # init base class super().__init__( expected_params=expected_params, + expected_container_keys=expected_container_keys, **std_kwargs, ) diff --git a/pisa/stages/xsec/genie_sys.py b/pisa/stages/xsec/genie_sys.py index 8b277569a..5847b96eb 100644 --- a/pisa/stages/xsec/genie_sys.py +++ b/pisa/stages/xsec/genie_sys.py @@ -47,9 +47,14 @@ def __init__( self.interactions = interactions self.names = names + expected_container_keys = ['linear_fit_'+name for name in names] + expected_container_keys += ['quad_fit_'+name for name in names] + expected_container_keys += ['weights'] + # init base class super().__init__( expected_params=expected_params, + expected_container_keys=expected_container_keys, **std_kwargs, ) diff --git a/pisa/stages/xsec/nutau_xsec.py b/pisa/stages/xsec/nutau_xsec.py index d14bfe767..194089b94 100644 --- a/pisa/stages/xsec/nutau_xsec.py +++ b/pisa/stages/xsec/nutau_xsec.py @@ -34,6 +34,11 @@ class nutau_xsec(Stage): # pylint: disable=invalid-name scale : quantity (dimensionless) Scaling between different cross-section models. The range [-1, 1] covers all models tested in the paper. + + Expected container keys are .. :: + + "true_energy" + "weights" """ def __init__( @@ -42,11 +47,19 @@ def __init__( **std_kwargs, ): - expected_params = ("nutau_xsec_scale") + expected_params = ( + "nutau_xsec_scale", + ) + + expected_container_keys = ( + 'true_energy', + 'weights', + ) # init base class super(nutau_xsec, self).__init__( expected_params=expected_params, + expected_container_keys=expected_container_keys, **std_kwargs, ) From 3c33a77208488bb3986102f76f4ec1e28c14247f Mon Sep 17 00:00:00 2001 From: Jan Weldert Date: Tue, 20 Aug 2024 08:22:03 -0500 Subject: [PATCH 07/38] First version of service test --- pisa/stages/aeff/aeff.py | 51 ++++++++++++++- pisa/stages/aeff/param.py | 40 ++++++++++++ .../likelihood/generalized_llh_params.py | 12 +++- pisa_tests/test_services.py | 64 ++++++++++--------- 4 files changed, 134 insertions(+), 33 deletions(-) diff --git a/pisa/stages/aeff/aeff.py b/pisa/stages/aeff/aeff.py index 6b0ee8b50..a43e89936 100644 --- a/pisa/stages/aeff/aeff.py +++ b/pisa/stages/aeff/aeff.py @@ -32,6 +32,7 @@ class aeff(Stage): # pylint: disable=invalid-name Expected container keys are .. :: "weights" + "weighted_aeff" """ @@ -48,7 +49,8 @@ def __init__( ) expected_container_keys = ( - 'weights' + 'weights', + 'weighted_aeff', ) # init base class @@ -80,3 +82,50 @@ def apply_function(self): container['weights'] *= container['weighted_aeff'] * scale container.mark_changed('weights') + + +def init_test(): + from pisa.core.param import Param, ParamSet + from pisa import ureg + + param_set = ParamSet( + [ + Param( + name="livetime", + value=10*ureg.s, + prior=None, + range=(0, 100)*ureg.s, + is_fixed=True, + ), + Param( + name="aeff_scale", + value=1.0*ureg.dimensionless, + prior=None, + range=(-1, 10)*ureg.dimensionless, + is_fixed=False, + ), + Param( + name="nutau_cc_norm", + value=1.0*ureg.dimensionless, + prior=None, + range=(-1, 10)*ureg.dimensionless, + is_fixed=False, + ), + Param( + name="nutau_norm", + value=1.0*ureg.dimensionless, + prior=None, + range=(-1, 10)*ureg.dimensionless, + is_fixed=False, + ), + Param( + name="nu_nc_norm", + value=1.0*ureg.dimensionless, + prior=None, + range=(-1, 10)*ureg.dimensionless, + is_fixed=False, + ), + ] + ) + + return aeff(params=param_set) diff --git a/pisa/stages/aeff/param.py b/pisa/stages/aeff/param.py index 82a5446fd..2794b4e3a 100644 --- a/pisa/stages/aeff/param.py +++ b/pisa/stages/aeff/param.py @@ -191,3 +191,43 @@ def apply_function(self): container['weights'] *= scale container.mark_changed('weights') + + +def init_test(): + from pisa.core.param import Param, ParamSet + from pisa import ureg + + param_set = ParamSet( + [ + Param( + name="aeff_energy_paramfile", + value='../pisa/pisa_examples/resources/aeff/vlvnt_aeff_energy_param.json', + prior=None, + range=None, + is_fixed=True, + ), + Param( + name="aeff_coszen_paramfile", + value='../pisa/pisa_examples/resources/aeff/vlvnt_aeff_coszen_param.json', + prior=None, + range=None, + is_fixed=True, + ), + Param( + name="livetime", + value=10*ureg.s, + prior=None, + range=(0, 100)*ureg.s, + is_fixed=True, + ), + Param( + name="aeff_scale", + value=1.0*ureg.dimensionless, + prior=None, + range=(-1, 10)*ureg.dimensionless, + is_fixed=False, + ), + ] + ) + + return param(params=param_set) diff --git a/pisa/stages/likelihood/generalized_llh_params.py b/pisa/stages/likelihood/generalized_llh_params.py index 668c6e5c3..f0510436e 100644 --- a/pisa/stages/likelihood/generalized_llh_params.py +++ b/pisa/stages/likelihood/generalized_llh_params.py @@ -69,10 +69,16 @@ def __init__(self, **std_kwargs, ): + expected_container_keys = ( + 'weights', + ) + # init base class - super(generalized_llh_params, self).__init__(expected_params=(), - **std_kwargs, - ) + super().__init__( + expected_params=(), + expected_container_keys=expected_container_keys, + **std_kwargs, + ) def setup_function(self): """ diff --git a/pisa_tests/test_services.py b/pisa_tests/test_services.py index dd5864c8b..252fdc496 100644 --- a/pisa_tests/test_services.py +++ b/pisa_tests/test_services.py @@ -14,9 +14,11 @@ from argparse import ArgumentDefaultsHelpFormatter, ArgumentParser from importlib import import_module +from numpy import linspace from os import walk from os.path import isfile, join, relpath +from pisa.core.container import Container, ContainerSet from pisa.utils.fileio import expand, nsort_key_func from pisa.utils.log import Levels, logging, set_verbosity from pisa_tests.run_unit_tests import PISA_PATH @@ -47,6 +49,7 @@ # TODO: define hopeless cases? define services whose tests may fail? # optional modules from unit tests? SKIP_SERVICES = ( + 'likelihood.generalized_llh_params', ) @@ -88,53 +91,56 @@ def find_services_in_file(filepath): return services -def test_services(path=STAGES_PATH, skip_services=SKIP_SERVICES, - verbosity=Levels.WARN +def test_services( + path=STAGES_PATH, + skip_services=SKIP_SERVICES, + verbosity=Levels.WARN, ): """Modelled after `run_unit_tests.run_unit_tests`""" services = find_services(path=path) - module_pypaths_succeeded = [] - + set_verbosity(verbosity) for rel_file_path, service_names in services.items(): if not service_names: continue + assert len(service_names) == 1, 'Only specify one stage per file.' + pypath = ["pisa"] + rel_file_path[:-3].split("/") parent_pypath = ".".join(pypath[:-1]) module_name = pypath[-1].replace(".", "_") module_pypath = f"{parent_pypath}.{module_name}" - try: - set_verbosity(verbosity) - logging.info(f"importing {module_pypath}") + if module_pypath[12:] in skip_services: + logging.warning(f"{module_pypath[12:]} will be ignored in service test.") + continue - set_verbosity(Levels.WARN) - module = import_module(module_pypath, package=parent_pypath) - module_pypaths_succeeded.append(module_pypath) + try: + exec('from ' + module_pypath + ' import init_test') + test = init_test() except: - pass - - for service_name in service_names: - test_pypath = f"{module_pypath}.{service_name}" - try: - set_verbosity(verbosity) - logging.debug(f"getattr({module}, {service_name})") + module = import_module(module_pypath, package=parent_pypath) + test = getattr(module, service_names[0])() + except: + logging.warning(f"{module_pypath[12:]} can not be initialized and has no init_test function specified.") + continue - set_verbosity(Levels.WARN) - service = getattr(module, service_name) + test.calc_mode = 'events' + test.apply_mode = 'events' - # initialise, setup, run the service - set_verbosity(verbosity) - logging.info(f"{test_pypath}()") + container1 = Container('test1') + container2 = Container('test2') + for k in test.expected_container_keys: + container1[k] = linspace(0, 1, 10) + container2[k] = linspace(0, 1, 10) + test.data = ContainerSet('data', [container1, container2]) - set_verbosity(Levels.WARN) - #service() - # TODO: here derive init args to attempt service init, - # then create some dummy input data, then try to - # run the service (e.g., also with different data reps.) - except: - pass + try: + test.setup() + test.run() + logging.info(f"{module_pypath[12:]} passed the test.") + except: + logging.error(f"{module_pypath[12:]} failed the test.") def parse_args(description=__doc__): From 77b4688e13c9767b4b24fad0f2d6cd9025f50384 Mon Sep 17 00:00:00 2001 From: T Ehrhardt Date: Wed, 21 Aug 2024 02:32:47 +0200 Subject: [PATCH 08/38] minorminor changes and more modularity for test_services; adapt aeff.param filepaths so they are always found by find_resource --- pisa/stages/aeff/param.py | 4 +- pisa_tests/test_services.py | 124 ++++++++++++++++++++++++++++-------- 2 files changed, 101 insertions(+), 27 deletions(-) diff --git a/pisa/stages/aeff/param.py b/pisa/stages/aeff/param.py index 2794b4e3a..cf1f4be46 100644 --- a/pisa/stages/aeff/param.py +++ b/pisa/stages/aeff/param.py @@ -201,14 +201,14 @@ def init_test(): [ Param( name="aeff_energy_paramfile", - value='../pisa/pisa_examples/resources/aeff/vlvnt_aeff_energy_param.json', + value='aeff/vlvnt_aeff_energy_param.json', prior=None, range=None, is_fixed=True, ), Param( name="aeff_coszen_paramfile", - value='../pisa/pisa_examples/resources/aeff/vlvnt_aeff_coszen_param.json', + value='aeff/vlvnt_aeff_coszen_param.json', prior=None, range=None, is_fixed=True, diff --git a/pisa_tests/test_services.py b/pisa_tests/test_services.py index 252fdc496..6f74b6640 100644 --- a/pisa_tests/test_services.py +++ b/pisa_tests/test_services.py @@ -14,19 +14,29 @@ from argparse import ArgumentDefaultsHelpFormatter, ArgumentParser from importlib import import_module -from numpy import linspace from os import walk from os.path import isfile, join, relpath +from numpy import linspace + from pisa.core.container import Container, ContainerSet from pisa.utils.fileio import expand, nsort_key_func from pisa.utils.log import Levels, logging, set_verbosity from pisa_tests.run_unit_tests import PISA_PATH -__all__ = ["STAGES_PATH", "test_services", "find_services", "find_services_in_file"] +__all__ = [ + "STAGES_PATH", + "test_services", + "find_services", + "find_services_in_file", + "get_stage_dot_service_from_module_pypath", + "add_test_inputs", + "set_service_modes", + "run_service_test" +] -__author__ = "T. Ehrhardt" +__author__ = "T. Ehrhardt, J. Weldert" __license__ = """Copyright (c) 2014-2024, The IceCube Collaboration @@ -43,11 +53,14 @@ limitations under the License.""" - STAGES_PATH = join(PISA_PATH, "stages") +INIT_TEST_NAME = "init_test" +"""Assumed name of custom function in each module which returns an +example instance of the service in question""" # TODO: define hopeless cases? define services whose tests may fail? # optional modules from unit tests? +# Add in . format SKIP_SERVICES = ( 'likelihood.generalized_llh_params', ) @@ -91,8 +104,39 @@ def find_services_in_file(filepath): return services +def get_stage_dot_service_from_module_pypath(module_pypath): + """Assumes `module_pypath` starts with pisa.stages and we + have one directory per stage, which contains all services + implementing that stage.""" + return module_pypath[12:] + + +def add_test_inputs(service): + """Try to come up with sensible test input data for the `Stage` + instance `service`""" + container1 = Container('test1') + container2 = Container('test2') + for k in service.expected_container_keys: + container1[k] = linspace(0, 1, 10) + container2[k] = linspace(0, 1, 10) + service.data = ContainerSet('data', [container1, container2]) + + +def set_service_modes(service, calc_mode, apply_mode): + """Set `calc_mode` and `apply_mode` for the `Stage` instance `service`""" + service.calc_mode = calc_mode + service.apply_mode = apply_mode + + +def run_service_test(service): + """Try to set up and run the `Stage` instance `service`""" + service.setup() + service.run() + + def test_services( - path=STAGES_PATH, + path=STAGES_PATH, + init_test_name=INIT_TEST_NAME, skip_services=SKIP_SERVICES, verbosity=Levels.WARN, ): @@ -104,43 +148,73 @@ def test_services( if not service_names: continue assert len(service_names) == 1, 'Only specify one stage per file.' + service_name = service_names[0] pypath = ["pisa"] + rel_file_path[:-3].split("/") parent_pypath = ".".join(pypath[:-1]) module_name = pypath[-1].replace(".", "_") module_pypath = f"{parent_pypath}.{module_name}" + stage_dot_service = get_stage_dot_service_from_module_pypath(module_pypath) - if module_pypath[12:] in skip_services: - logging.warning(f"{module_pypath[12:]} will be ignored in service test.") + # check whether we should skip testing this service for some reason + if stage_dot_service in skip_services: + logging.warning(f"{stage_dot_service} will be ignored in service test.") continue + logging.info(f"Starting test for service {stage_dot_service}...") + + # if service module import successful, try to initialise the service try: - exec('from ' + module_pypath + ' import init_test') - test = init_test() + module = import_module(module_pypath, package=parent_pypath) except: + logging.warning(f"{module_pypath} cannot be imported.") + continue + + if not hasattr(module, init_test_name): + try: + # Without a dedicated `init_test` function, we just try to + # instantiate the service with std. Stage kwargs + service = getattr(module, service_name)() + except: + logging.warning( + f"{stage_dot_service} has no {init_test_name} function " + + "and could not be instantiated with standard kwargs only." + ) + continue + else: try: - module = import_module(module_pypath, package=parent_pypath) - test = getattr(module, service_names[0])() + # Exploit presence of init_test (TODO: switch order with above?) + service = getattr(module, init_test_name)() except: - logging.warning(f"{module_pypath[12:]} can not be initialized and has no init_test function specified.") + logging.error( + f"{stage_dot_service} has an {init_test_name} function " + + "which failed to instantiate the service." + ) continue - test.calc_mode = 'events' - test.apply_mode = 'events' + try: + add_test_inputs(service) + except: + logging.warning( + f"Failed to assign test inputs for {stage_dot_service}." + ) + continue - container1 = Container('test1') - container2 = Container('test2') - for k in test.expected_container_keys: - container1[k] = linspace(0, 1, 10) - container2[k] = linspace(0, 1, 10) - test.data = ContainerSet('data', [container1, container2]) + try: + # Only try event-by-event mode for now + set_service_modes(service, calc_mode="events", apply_mode="events") + except: + logging.error( + "Failed to set `calc_mode` and `apply_mode` for " + + f"{stage_dot_service}." + ) + continue try: - test.setup() - test.run() - logging.info(f"{module_pypath[12:]} passed the test.") + run_service_test(service) + logging.info(f"{stage_dot_service} passed the test.") except: - logging.error(f"{module_pypath[12:]} failed the test.") + logging.error(f"{stage_dot_service} failed to setup or run.") def parse_args(description=__doc__): @@ -160,7 +234,7 @@ def main(): kwargs = vars(args) kwargs["verbosity"] = kwargs.pop("v") test_services(**kwargs) - logging.info(f'services testing done') + logging.info('Services testing done.') if __name__ == "__main__": From 8ca3e7f0cd91bc16c3866756728efee76189c158 Mon Sep 17 00:00:00 2001 From: T Ehrhardt Date: Wed, 21 Aug 2024 16:06:37 +0200 Subject: [PATCH 09/38] default keyword args to each Param --- pisa/stages/aeff/aeff.py | 22 ++++++---------------- pisa/stages/aeff/param.py | 18 +++++------------- pisa_tests/test_services.py | 3 ++- 3 files changed, 13 insertions(+), 30 deletions(-) diff --git a/pisa/stages/aeff/aeff.py b/pisa/stages/aeff/aeff.py index a43e89936..3d6b663a7 100644 --- a/pisa/stages/aeff/aeff.py +++ b/pisa/stages/aeff/aeff.py @@ -84,7 +84,7 @@ def apply_function(self): container.mark_changed('weights') -def init_test(): +def init_test(**param_kwargs): from pisa.core.param import Param, ParamSet from pisa import ureg @@ -93,37 +93,27 @@ def init_test(): Param( name="livetime", value=10*ureg.s, - prior=None, - range=(0, 100)*ureg.s, - is_fixed=True, + **param_kwargs ), Param( name="aeff_scale", value=1.0*ureg.dimensionless, - prior=None, - range=(-1, 10)*ureg.dimensionless, - is_fixed=False, + **param_kwargs ), Param( name="nutau_cc_norm", value=1.0*ureg.dimensionless, - prior=None, - range=(-1, 10)*ureg.dimensionless, - is_fixed=False, + **param_kwargs ), Param( name="nutau_norm", value=1.0*ureg.dimensionless, - prior=None, - range=(-1, 10)*ureg.dimensionless, - is_fixed=False, + **param_kwargs ), Param( name="nu_nc_norm", value=1.0*ureg.dimensionless, - prior=None, - range=(-1, 10)*ureg.dimensionless, - is_fixed=False, + **param_kwargs ), ] ) diff --git a/pisa/stages/aeff/param.py b/pisa/stages/aeff/param.py index cf1f4be46..c697977cf 100644 --- a/pisa/stages/aeff/param.py +++ b/pisa/stages/aeff/param.py @@ -193,7 +193,7 @@ def apply_function(self): container.mark_changed('weights') -def init_test(): +def init_test(**param_kwargs): from pisa.core.param import Param, ParamSet from pisa import ureg @@ -202,30 +202,22 @@ def init_test(): Param( name="aeff_energy_paramfile", value='aeff/vlvnt_aeff_energy_param.json', - prior=None, - range=None, - is_fixed=True, + **param_kwargs ), Param( name="aeff_coszen_paramfile", value='aeff/vlvnt_aeff_coszen_param.json', - prior=None, - range=None, - is_fixed=True, + **param_kwargs ), Param( name="livetime", value=10*ureg.s, - prior=None, - range=(0, 100)*ureg.s, - is_fixed=True, + **param_kwargs ), Param( name="aeff_scale", value=1.0*ureg.dimensionless, - prior=None, - range=(-1, 10)*ureg.dimensionless, - is_fixed=False, + **param_kwargs ), ] ) diff --git a/pisa_tests/test_services.py b/pisa_tests/test_services.py index 6f74b6640..11cb36187 100644 --- a/pisa_tests/test_services.py +++ b/pisa_tests/test_services.py @@ -184,7 +184,8 @@ def test_services( else: try: # Exploit presence of init_test (TODO: switch order with above?) - service = getattr(module, init_test_name)() + param_kwargs = {'prior': None, 'range': None, 'is_fixed': True} + service = getattr(module, init_test_name)(**param_kwargs) except: logging.error( f"{stage_dot_service} has an {init_test_name} function " + From 92b7d189a5b22f820c1eb678acb13ee3d4567d5c Mon Sep 17 00:00:00 2001 From: T Ehrhardt Date: Wed, 21 Aug 2024 20:55:42 +0200 Subject: [PATCH 10/38] mostly more tests; also now raise error when a service doesn't specify expected container keys --- pisa/core/stage.py | 4 +- pisa/stages/absorption/earth_absorption.py | 16 +++++++ pisa/stages/aeff/aeff.py | 44 +++++-------------- pisa/stages/aeff/param.py | 38 +++++----------- pisa/stages/aeff/weight.py | 19 ++++++-- pisa/stages/aeff/weight_hnl.py | 24 +++++++++- pisa/stages/background/atm_muons.py | 15 +++++++ pisa/stages/discr_sys/hypersurfaces.py | 9 +++- pisa/stages/discr_sys/ultrasurfaces.py | 5 +++ pisa/stages/flux/airs.py | 18 ++++++-- pisa/stages/flux/astrophysical.py | 16 ++++++- pisa/stages/flux/barr_simple.py | 19 +++++++- pisa/stages/flux/hillasg.py | 14 +++++- pisa/stages/flux/honda_ip.py | 12 +++++ pisa/stages/flux/mceq_barr.py | 42 ++++++++++++++++-- pisa/stages/flux/mceq_barr_red.py | 33 +++++++++++++- .../likelihood/generalized_llh_params.py | 2 + pisa/stages/pid/shift_scale_pid.py | 13 +++++- pisa/stages/xsec/dis_sys.py | 16 +++++-- pisa/stages/xsec/genie_sys.py | 19 ++++++-- pisa/stages/xsec/nutau_xsec.py | 22 +++++++--- pisa_tests/test_services.py | 39 +++++++++------- 22 files changed, 330 insertions(+), 109 deletions(-) diff --git a/pisa/core/stage.py b/pisa/core/stage.py index 9c5fa6caa..e2330b408 100644 --- a/pisa/core/stage.py +++ b/pisa/core/stage.py @@ -250,8 +250,8 @@ def _check_exp_keys_in_data(self, error_on_missing=False): # set to None return if self.expected_container_keys is None: - logging.warn( - 'Service %s.%s: not specifying expected container keys is deprecated.' + raise ValueError( + 'Service %s.%s is not specifying expected container keys.' % (self.stage_name, self.service_name) ) return diff --git a/pisa/stages/absorption/earth_absorption.py b/pisa/stages/absorption/earth_absorption.py index e74935a1d..22995d89b 100644 --- a/pisa/stages/absorption/earth_absorption.py +++ b/pisa/stages/absorption/earth_absorption.py @@ -76,9 +76,18 @@ def __init__( **std_kwargs, ): + expected_container_keys = ( + 'true_coszen', + 'true_energy', + 'flav', + 'nubar', + 'weights', + ) + # init base class super().__init__( expected_params=(), + expected_container_keys=expected_container_keys, **std_kwargs, ) @@ -246,3 +255,10 @@ def calculate_survivalprob(int_rho, xsection, out): # int_rho [cm] * 1 [g/cm^3] * xsection [cm^2] * 1 [mol/g] * Na [1/mol] = [ 1 ] (all units cancel) out = np.exp(-int_rho*xsection*Na) + +def init_test(**param_kwargs): + """Instantiation example""" + return earth_absorption( + earth_model='osc/PREM_4layer.dat', + xsec_file='cross_sections/genie_xsec_H2O.root' + ) diff --git a/pisa/stages/aeff/aeff.py b/pisa/stages/aeff/aeff.py index 3d6b663a7..a27b57a97 100644 --- a/pisa/stages/aeff/aeff.py +++ b/pisa/stages/aeff/aeff.py @@ -4,9 +4,13 @@ from __future__ import absolute_import, print_function, division +from pisa import ureg +from pisa.core.param import Param, ParamSet from pisa.core.stage import Stage from pisa.utils.profiler import profile +__all__ = ['aeff', 'init_test'] + class aeff(Stage): # pylint: disable=invalid-name """ @@ -85,37 +89,13 @@ def apply_function(self): def init_test(**param_kwargs): - from pisa.core.param import Param, ParamSet - from pisa import ureg - - param_set = ParamSet( - [ - Param( - name="livetime", - value=10*ureg.s, - **param_kwargs - ), - Param( - name="aeff_scale", - value=1.0*ureg.dimensionless, - **param_kwargs - ), - Param( - name="nutau_cc_norm", - value=1.0*ureg.dimensionless, - **param_kwargs - ), - Param( - name="nutau_norm", - value=1.0*ureg.dimensionless, - **param_kwargs - ), - Param( - name="nu_nc_norm", - value=1.0*ureg.dimensionless, - **param_kwargs - ), - ] - ) + """Instantiation example""" + param_set = ParamSet([ + Param(name="livetime", value=10*ureg.s, **param_kwargs), + Param(name="aeff_scale", value=1.0, **param_kwargs), + Param(name="nutau_cc_norm", value=1.0, **param_kwargs), + Param(name="nutau_norm", value=1.0, **param_kwargs), + Param(name="nu_nc_norm", value=1.0, **param_kwargs) + ]) return aeff(params=param_set) diff --git a/pisa/stages/aeff/param.py b/pisa/stages/aeff/param.py index c697977cf..5643a8d80 100644 --- a/pisa/stages/aeff/param.py +++ b/pisa/stages/aeff/param.py @@ -15,11 +15,13 @@ import numpy as np from scipy.interpolate import interp1d +from pisa import ureg +from pisa.core.param import Param, ParamSet from pisa.core.stage import Stage from pisa.utils.fileio import from_file -__all__ = ['load_aeff_param', 'param'] +__all__ = ['load_aeff_param', 'param', 'init_test'] __author__ = 'T.C. Arlen, T. Ehrhardt, S. Wren, J. Weldert' @@ -194,32 +196,12 @@ def apply_function(self): def init_test(**param_kwargs): - from pisa.core.param import Param, ParamSet - from pisa import ureg - - param_set = ParamSet( - [ - Param( - name="aeff_energy_paramfile", - value='aeff/vlvnt_aeff_energy_param.json', - **param_kwargs - ), - Param( - name="aeff_coszen_paramfile", - value='aeff/vlvnt_aeff_coszen_param.json', - **param_kwargs - ), - Param( - name="livetime", - value=10*ureg.s, - **param_kwargs - ), - Param( - name="aeff_scale", - value=1.0*ureg.dimensionless, - **param_kwargs - ), - ] - ) + """Instantiation example""" + param_set = ParamSet([ + Param(name="aeff_energy_paramfile", value='aeff/vlvnt_aeff_energy_param.json', **param_kwargs), + Param(name="aeff_coszen_paramfile", value='aeff/vlvnt_aeff_coszen_param.json', **param_kwargs), + Param(name="livetime", value=10*ureg.s, **param_kwargs), + Param(name="aeff_scale", value=1.0, **param_kwargs) + ]) return param(params=param_set) diff --git a/pisa/stages/aeff/weight.py b/pisa/stages/aeff/weight.py index 8a8143945..4a20d02df 100644 --- a/pisa/stages/aeff/weight.py +++ b/pisa/stages/aeff/weight.py @@ -4,9 +4,12 @@ from __future__ import absolute_import, print_function, division +from pisa import ureg +from pisa.core.param import Param, ParamSet from pisa.core.stage import Stage from pisa.utils.profiler import profile +__all__ = ['weight', 'init_test'] class weight(Stage): # pylint: disable=invalid-name """ @@ -24,7 +27,7 @@ class weight(Stage): # pylint: disable=invalid-name Detector livetime for scaling template weight_scale : Quantity [dimensionless] Overall scaling/normalisation of template - + Expected container keys are .. :: "weights" @@ -35,10 +38,10 @@ def __init__( **std_kwargs, ): expected_params = ( - 'livetime', + 'livetime', 'weight_scale', ) - + expected_container_keys = ( 'weights', ) @@ -61,3 +64,13 @@ def apply_function(self): container['weights'] *= scale if "errors" in container.keys: container["errors"] *= scale + + +def init_test(**param_kwargs): + """Instantiation example""" + param_set = ParamSet([ + Param(name="livetime", value=3*ureg.year, **param_kwargs), + Param(name="weight_scale", value=1.0, **param_kwargs), + ]) + + return weight(params=param_set) diff --git a/pisa/stages/aeff/weight_hnl.py b/pisa/stages/aeff/weight_hnl.py index 84403f59d..d92368b27 100644 --- a/pisa/stages/aeff/weight_hnl.py +++ b/pisa/stages/aeff/weight_hnl.py @@ -4,11 +4,11 @@ from __future__ import absolute_import, print_function, division +from pisa import ureg +from pisa.core.param import Param, ParamSet from pisa.core.stage import Stage from pisa.utils.profiler import profile -from pisa import ureg - import numpy as np # is there a place for constants in PISA, or do they already exist? @@ -94,9 +94,20 @@ def __init__( ): expected_params = ("U_tau4_sq",) + expected_container_keys = ( + 'mHNL', + 'hnl_true_energy', + 'hnl_proper_lifetime', + 'hnl_distance_min', + 'hnl_distance_max', + 'hnl_decay_width', + 'weights', + ) + # init base class super().__init__( expected_params=expected_params, + expected_container_keys=expected_container_keys, **std_kwargs, ) @@ -117,3 +128,12 @@ def apply_function(self): container["weights"] *= hnl_weight container.mark_changed("weights") + + +def init_test(**param_kwargs): + """Instantiation example""" + param_set = ParamSet([ + Param(name="U_tau4_sq", value=0.1, **param_kwargs) + ]) + + return weight_hnl(params=param_set) diff --git a/pisa/stages/background/atm_muons.py b/pisa/stages/background/atm_muons.py index b371214f0..60826ccc5 100644 --- a/pisa/stages/background/atm_muons.py +++ b/pisa/stages/background/atm_muons.py @@ -7,6 +7,7 @@ import numpy as np from scipy.interpolate import interp1d +from pisa.core.param import Param, ParamSet from pisa.core.stage import Stage from pisa.utils.resources import open_resource from pisa.utils.profiler import profile @@ -61,6 +62,7 @@ def __init__(self, ) expected_container_keys = ( + 'true_coszen', 'weights', ) @@ -178,3 +180,16 @@ def _make_prim_unc_spline(self): ) return muon_uncf + + +def init_test(**param_kwargs): + """Instantiation example""" + param_set = ParamSet([ + Param(name='atm_muon_scale', value=1.0, **param_kwargs), + Param(name='delta_gamma_mu_file', value='background/muongun_primary_cr_uncertainties_coszenith.txt', **param_kwargs), + Param(name='delta_gamma_mu_spline_kind', value='linear', **param_kwargs), + Param(name='delta_gamma_mu_variable', value='true_coszen', **param_kwargs), + Param(name='delta_gamma_mu', value=1.0, **param_kwargs) + ]) + + return atm_muons(input_names='muon', params=param_set) diff --git a/pisa/stages/discr_sys/hypersurfaces.py b/pisa/stages/discr_sys/hypersurfaces.py index a6527721c..419bf2b27 100644 --- a/pisa/stages/discr_sys/hypersurfaces.py +++ b/pisa/stages/discr_sys/hypersurfaces.py @@ -98,9 +98,9 @@ def __init__( expected_container_keys = [ 'weights', ] - if not self.error_method == None: + if not self.error_method is None: expected_container_keys.append('errors') - + # -- Initialize base class -- # super().__init__( expected_params=self.hypersurface_param_names + self.inter_params, @@ -231,3 +231,8 @@ def apply_function(self): # Update weights according to hypersurfaces container["weights"] = np.clip(container["weights"] * container["hs_scales"], a_min=0, a_max=np.inf) + + +def init_test(**param_kwargs): + """Instantiation example""" + pass diff --git a/pisa/stages/discr_sys/ultrasurfaces.py b/pisa/stages/discr_sys/ultrasurfaces.py index 1ca9d7a6c..7d0d165c6 100644 --- a/pisa/stages/discr_sys/ultrasurfaces.py +++ b/pisa/stages/discr_sys/ultrasurfaces.py @@ -285,3 +285,8 @@ def apply_function(self): def grad_shift_inplace(grads, shift, out): for i, g in enumerate(grads): out[i] += shift * g + + +def init_test(**param_kwargs): + """Instantiation example""" + pass diff --git a/pisa/stages/flux/airs.py b/pisa/stages/flux/airs.py index 3776cbaee..e6570aeeb 100644 --- a/pisa/stages/flux/airs.py +++ b/pisa/stages/flux/airs.py @@ -6,6 +6,7 @@ """ from pisa import FTYPE +from pisa.core.param import Param, ParamSet from pisa.core.stage import Stage from pisa.utils.profiler import profile from pisa.utils.resources import find_resource @@ -14,6 +15,8 @@ import numpy as np +__all__ = ['airs', 'init_test'] + class airs(Stage): # pylint: disable=invalid-name """ @@ -24,9 +27,9 @@ class airs(Stage): # pylint: disable=invalid-name params : ParamSet Must exclusively have parameters: .. :: - scale : quantity (dimensionless) + airs_scale : quantity (dimensionless) the scale by which the weights are perturbed via the airs 1-sigma shift - + Expected container keys are .. :: "true_energy" @@ -41,7 +44,7 @@ def __init__(self, airs_spline, **std_kwargs): expected_params = [ "airs_scale", ] - + expected_container_keys = ( 'true_energy', 'true_coszen', @@ -78,3 +81,12 @@ def apply_function(self): container["weights"] *= 1.0 + container[ "airs_1s_perturb" ] * self.params.airs_scale.value.m_as("dimensionless") + + +def init_test(**param_kwargs): + """Instantiation example""" + airs_spline = 'airs_spline.txt' #FIXME + param_set = ParamSet([ + Param(name="airs_scale", value=1.0, **param_kwargs), + ]) + return airs(airs_spline=airs_spline, params=param_set) diff --git a/pisa/stages/flux/astrophysical.py b/pisa/stages/flux/astrophysical.py index efadfcd0d..761c52129 100644 --- a/pisa/stages/flux/astrophysical.py +++ b/pisa/stages/flux/astrophysical.py @@ -4,9 +4,11 @@ import numpy as np from pisa import FTYPE -from pisa.utils.profiler import profile +from pisa.core.param import Param, ParamSet from pisa.core.stage import Stage +from pisa.utils.profiler import profile +__all__ = ['astrophysical', 'spectral_index_scale', 'apply_sys_loop', 'init_test'] PIVOT = FTYPE(100.0e3) @@ -41,7 +43,7 @@ def __init__(self, **std_kwargs): self._tau_ratio = FTYPE(1.0) expected_params = ( - "astro_delta", + "astro_delta", "astro_norm", ) @@ -153,3 +155,13 @@ def apply_sys_loop( for event in range(n_evts): spec_scale = spectral_index_scale(true_energy[event], delta_index) out[event] = norm * astroflux_nominal[event] * spec_scale + + +def init_test(**param_kwargs): + """Instantiation example""" + param_set = ParamSet([ + Param(name="astro_norm", value=1.0, **param_kwargs), + Param(name="astro_delta", value=0.0, **param_kwargs), + ]) + + return astrophysical(params=param_set) diff --git a/pisa/stages/flux/barr_simple.py b/pisa/stages/flux/barr_simple.py index 522b94a38..94a9a5894 100644 --- a/pisa/stages/flux/barr_simple.py +++ b/pisa/stages/flux/barr_simple.py @@ -10,11 +10,15 @@ from numba import guvectorize, cuda from pisa import FTYPE, TARGET +from pisa.core.param import Param, ParamSet from pisa.core.stage import Stage from pisa.utils.profiler import profile from pisa.utils.numba_tools import myjit, ftype from pisa.utils.barr_parameterization import modRatioNuBar, modRatioUpHor +__all__ = ['barr_simple', 'apply_ratio_scale', 'spectral_index_scale', + 'apply_sys_kernel', 'apply_sys_vectorized', 'init_test'] + class barr_simple(Stage): # pylint: disable=invalid-name """ @@ -62,7 +66,7 @@ def __init__( ) # init base class - super(barr_simple, self).__init__( + super().__init__( expected_params=expected_params, expected_container_keys=expected_container_keys, **std_kwargs, @@ -235,3 +239,16 @@ def apply_sys_vectorized( Barr_nu_nubar_ratio, out, ) + + +def init_test(**param_kwargs): + """Instantiation example""" + param_set = ParamSet([ + Param(name="nue_numu_ratio", value=1.0, **param_kwargs), + Param(name="nu_nubar_ratio", value=1.0, **param_kwargs), + Param(name="delta_index", value=0.0, **param_kwargs), + Param(name="Barr_uphor_ratio", value=0.0, **param_kwargs), + Param(name="Barr_nu_nubar_ratio", value=0.0, **param_kwargs) + ]) + + return barr_simple(params=param_set) diff --git a/pisa/stages/flux/hillasg.py b/pisa/stages/flux/hillasg.py index 0c271a5ae..8ec503cfb 100644 --- a/pisa/stages/flux/hillasg.py +++ b/pisa/stages/flux/hillasg.py @@ -6,11 +6,14 @@ import numpy as np from pisa import FTYPE +from pisa.core.param import Param, ParamSet from pisa.core.stage import Stage from pisa.utils.log import logging from pisa.utils.profiler import profile from pisa.utils.flux_weights import load_2d_table, calculate_2d_flux_weights +__all__ = ['hillasg', 'init_test'] + class hillasg(Stage): # pylint: disable=invalid-name """ @@ -35,7 +38,7 @@ def __init__(self, **std_kwargs): expected_params = ( "flux_table", ) - + expected_container_keys = ( 'true_energy', 'true_coszen', @@ -127,3 +130,12 @@ def compute_function(self): # don't forget to un-link everything again self.data.unlink_containers() + + +def init_test(**param_kwargs): + """Instantiation example""" + param_set = ParamSet([ + Param(name='flux_table', value='flux/honda-2015-spl-solmin-aa.d', **param_kwargs), #FIXME + ]) + + return hillasg(params=param_set) diff --git a/pisa/stages/flux/honda_ip.py b/pisa/stages/flux/honda_ip.py index 951944a80..95157eb50 100644 --- a/pisa/stages/flux/honda_ip.py +++ b/pisa/stages/flux/honda_ip.py @@ -8,11 +8,14 @@ import numpy as np from pisa import FTYPE +from pisa.core.param import Param, ParamSet from pisa.core.stage import Stage from pisa.utils.log import logging from pisa.utils.profiler import profile from pisa.utils.flux_weights import load_2d_table, calculate_2d_flux_weights +__all__ = ['honda_ip', 'init_test'] + class honda_ip(Stage): # pylint: disable=invalid-name """ @@ -113,3 +116,12 @@ def compute_function(self): # for container in self.data: # np.copyto( src=container["nu%s_flux_nominal"%("" if container["nubar"] > 0 else "bar")].get("host"), dst=container["nu_flux"].get("host") ) # container.mark_changed('nu_flux') + + +def init_test(**param_kwargs): + """Instantiation example""" + param_set = ParamSet([ + Param(name='flux_table', value='flux/honda-2015-spl-solmin-aa.d', **param_kwargs), + ]) + + return honda_ip(params=param_set) diff --git a/pisa/stages/flux/mceq_barr.py b/pisa/stages/flux/mceq_barr.py index d226b7fc3..393cda48b 100644 --- a/pisa/stages/flux/mceq_barr.py +++ b/pisa/stages/flux/mceq_barr.py @@ -16,13 +16,16 @@ import numpy as np -from pisa import FTYPE +from pisa import FTYPE, ureg +from pisa.core.param import Param, ParamSet from pisa.core.stage import Stage from pisa.utils.log import logging from pisa.utils.profiler import profile from pisa.utils.numba_tools import myjit from pisa.utils.resources import find_resource +__all__ = ['mceq_barr', 'spectral_index_scale', 'apply_sys_loop', 'init_test'] + class mceq_barr(Stage): # pylint: disable=invalid-name """ @@ -79,7 +82,7 @@ class mceq_barr(Stage): # pylint: disable=invalid-name The MCEq-table has 2 solutions of the cascade equation per Barr variable (12) - one solution for meson and one solution for the antimeson production uncertainty. - + Each solution consists of 8 splines: "numu", "numubar", "nue", and "nuebar" is the nominal flux. "dnumu", "dnumubar", "dnue", and "dnuebar" is the gradient of the Barr modification @@ -179,7 +182,7 @@ def __init__( self.use_honda_nominal_flux = use_honda_nominal_flux # init base class - super(mceq_barr, self).__init__( + super().__init__( expected_params=expected_params, expected_container_keys=expected_container_keys, **std_kwargs, @@ -534,3 +537,36 @@ def apply_sys_loop( out[event, flav] = nu_flux_nominal[event, flav] * spec_scale for i in range(len(gradient_params)): out[event, flav] += gradients[event, flav, i] * gradient_params[i] + + +def init_test(**param_kwargs): + """Instantiation example""" + param_set = ParamSet([ + Param(name="pion_ratio", value=0.0, **param_kwargs), + Param(name="barr_a_Pi", value=0.0, **param_kwargs), + Param(name="barr_b_Pi", value=0.0, **param_kwargs), + Param(name="barr_c_Pi", value=0.0, **param_kwargs), + Param(name="barr_d_Pi", value=0.0, **param_kwargs), + Param(name="barr_e_Pi", value=0.0, **param_kwargs), + Param(name="barr_f_Pi", value=0.0, **param_kwargs), + Param(name="barr_g_Pi", value=0.0, **param_kwargs), + Param(name="barr_h_Pi", value=0.0, **param_kwargs), + Param(name="barr_i_Pi", value=0.0, **param_kwargs), + Param(name="barr_w_K", value=0.0, **param_kwargs), + Param(name="barr_x_K", value=0.0, **param_kwargs), + Param(name="barr_y_K", value=0.0, **param_kwargs), + Param(name="barr_z_K", value=0.0, **param_kwargs), + Param(name="barr_w_antiK", value=0.0, **param_kwargs), + Param(name="barr_x_antiK", value=0.0, **param_kwargs), + Param(name="barr_y_antiK", value=0.0, **param_kwargs), + Param(name="barr_z_antiK", value=0.0, **param_kwargs), + Param(name="delta_index", value=0.0, **param_kwargs), + Param(name="energy_pivot", value=25*ureg.GeV, **param_kwargs), + ]) + + return mceq_barr( + table_file=".pckl", #FIXME (see scripts/create_barr_sys_tables_mceq.py) + include_nutau_flux=False, + use_honda_nominal_flux=True, + params=param_set + ) diff --git a/pisa/stages/flux/mceq_barr_red.py b/pisa/stages/flux/mceq_barr_red.py index 9b3344b70..d81fe78b3 100644 --- a/pisa/stages/flux/mceq_barr_red.py +++ b/pisa/stages/flux/mceq_barr_red.py @@ -17,12 +17,15 @@ import numpy as np from numba import njit, prange # trivially parallelize for-loops -from pisa import FTYPE, TARGET +from pisa import FTYPE, TARGET, ureg +from pisa.core.param import Param, ParamSet from pisa.core.stage import Stage from pisa.utils.log import logging from pisa.utils.profiler import profile from pisa.utils.resources import find_resource +__all__ = ['mceq_barr_red', 'spectral_index_scale', 'apply_sys_loop', 'init_test'] + class mceq_barr_red(Stage): # pylint: disable=invalid-name """ @@ -174,7 +177,7 @@ def __init__( self.table_file = table_file # init base class - super(mceq_barr_red, self).__init__( + super().__init__( expected_params=expected_params, expected_container_keys=expected_container_keys, **std_kwargs, @@ -481,3 +484,29 @@ def apply_sys_loop( out[event, flav] = nu_flux_nominal[event, flav] * spec_scale for i in range(len(gradient_params)): out[event, flav] += gradients[event, flav, i] * gradient_params[i] + + +def init_test(**param_kwargs): + """Instantiation example""" + param_set = ParamSet([ + Param(name="pion_ratio", value=0.0, **param_kwargs), + Param(name="barr_af_Pi", value=0.0, **param_kwargs), + Param(name="barr_g_Pi", value=0.0, **param_kwargs), + Param(name="barr_h_Pi", value=0.0, **param_kwargs), + Param(name="barr_i_Pi", value=0.0, **param_kwargs), + Param(name="barr_w_K", value=0.0, **param_kwargs), + Param(name="barr_x_K", value=0.0, **param_kwargs), + Param(name="barr_y_K", value=0.0, **param_kwargs), + Param(name="barr_z_K", value=0.0, **param_kwargs), + Param(name="barr_w_antiK", value=0.0, **param_kwargs), + Param(name="barr_x_antiK", value=0.0, **param_kwargs), + Param(name="barr_y_antiK", value=0.0, **param_kwargs), + Param(name="barr_z_antiK", value=0.0, **param_kwargs), + Param(name="delta_index", value=0.0, **param_kwargs), + Param(name="energy_pivot", value=25*ureg.GeV, **param_kwargs), + ]) + + return mceq_barr_red( + table_file=".pckl", #FIXME (see scripts/create_barr_sys_tables_mceq.py) + params=param_set + ) diff --git a/pisa/stages/likelihood/generalized_llh_params.py b/pisa/stages/likelihood/generalized_llh_params.py index f0510436e..5d663eb77 100644 --- a/pisa/stages/likelihood/generalized_llh_params.py +++ b/pisa/stages/likelihood/generalized_llh_params.py @@ -53,6 +53,8 @@ from pisa.core.stage import Stage from pisa.utils.log import logging +__all__ = ['generalized_llh_params'] + PSEUDO_WEIGHT = 0.001 diff --git a/pisa/stages/pid/shift_scale_pid.py b/pisa/stages/pid/shift_scale_pid.py index d6391b75c..0b7bfe006 100644 --- a/pisa/stages/pid/shift_scale_pid.py +++ b/pisa/stages/pid/shift_scale_pid.py @@ -8,10 +8,11 @@ import numpy as np from pisa import FTYPE, TARGET +from pisa.core.param import Param, ParamSet from pisa.core.stage import Stage from pisa.utils import vectorizer -__all__ = ['shift_scale_pid'] +__all__ = ['shift_scale_pid', 'calculate_pid_function', 'init_test'] __author__ = 'L. Fischer' @@ -100,3 +101,13 @@ def calculate_pid_function(bias_value, scale_factor, pid, out): """ out[0] = (scale_factor[0] * pid[0]) + bias_value[0] + + +def init_test(**param_kwargs): + """Instantiation example""" + param_set = ParamSet([ + Param(name='bias', value=0.0, **param_kwargs), + Param(name='scale', value=1.0, **param_kwargs) + ]) + + return shift_scale_pid(params=param_set) diff --git a/pisa/stages/xsec/dis_sys.py b/pisa/stages/xsec/dis_sys.py index 52101ee10..498137b48 100644 --- a/pisa/stages/xsec/dis_sys.py +++ b/pisa/stages/xsec/dis_sys.py @@ -7,17 +7,16 @@ from __future__ import absolute_import, print_function, division -__all__ = ["dis_sys", "apply_dis_sys"] - import numpy as np from numba import guvectorize -from pisa import FTYPE, TARGET +from pisa import FTYPE, TARGET, ureg +from pisa.core.param import Param, ParamSet from pisa.core.stage import Stage from pisa.utils.profiler import profile from pisa.utils.fileio import from_file -from pisa import ureg +__all__ = ['dis_sys', 'apply_dis_sys', 'init_test'] class dis_sys(Stage): # pylint: disable=invalid-name """ @@ -194,3 +193,12 @@ def apply_dis_sys( out, ): out[0] *= max(0, (1. + dis_correction_total * dis_csms) * (1. + dis_correction_diff * dis_csms) ) + + +def init_test(**param_kwargs): + """Instantiation example""" + param_set = ParamSet([ + Param(name="dis_csms", value=0.0, **param_kwargs) + ]) + + return dis_sys(params=param_set) diff --git a/pisa/stages/xsec/genie_sys.py b/pisa/stages/xsec/genie_sys.py index 5847b96eb..30512a399 100644 --- a/pisa/stages/xsec/genie_sys.py +++ b/pisa/stages/xsec/genie_sys.py @@ -4,14 +4,16 @@ from __future__ import absolute_import, print_function, division -__all__ = ["genie_sys", "apply_genie_sys"] #, "SIGNATURE" - import re import numpy as np +from pisa.core.param import Param, ParamSet from pisa.core.stage import Stage from pisa.utils.log import logging +__all__ = ["genie_sys", "apply_genie_sys", "init_test"] #, "SIGNATURE" + + class genie_sys(Stage): # pylint: disable=invalid-name """ Stage to apply pre-calculated Genie systematics. @@ -47,7 +49,7 @@ def __init__( self.interactions = interactions self.names = names - expected_container_keys = ['linear_fit_'+name for name in names] + expected_container_keys = ['linear_fit_'+name for name in names] expected_container_keys += ['quad_fit_'+name for name in names] expected_container_keys += ['weights'] @@ -110,3 +112,14 @@ def apply_genie_sys( for i in range(len(genie_params)): factor *= 1. + (linear_fits[i] + quad_fits[i] * genie_params[i]) * genie_params[i] out *= np.maximum(0, factor) + + +def init_test(**param_kwargs): + """Instantiation example""" + param_kwargs.pop('range', None) + param_set = ParamSet([ + Param(name="Genie_Ma_QE", value=0.0, range=[-1., 1.], **param_kwargs), + Param(name="Genie_Ma_RES", value=0.0, range=[-1., 1.], **param_kwargs) + ]) + + return genie_sys(params=param_set) diff --git a/pisa/stages/xsec/nutau_xsec.py b/pisa/stages/xsec/nutau_xsec.py index 194089b94..5801a1473 100644 --- a/pisa/stages/xsec/nutau_xsec.py +++ b/pisa/stages/xsec/nutau_xsec.py @@ -12,8 +12,11 @@ from numba import guvectorize from pisa import FTYPE, TARGET +from pisa.core.param import Param, ParamSet from pisa.core.stage import Stage -from pisa.utils.resources import open_resource +from pisa.utils.resources import find_resource, open_resource + +__all__ = ['nutau_xsec', 'calc_scale_vectorized', 'init_test'] class nutau_xsec(Stage): # pylint: disable=invalid-name @@ -31,10 +34,10 @@ class nutau_xsec(Stage): # pylint: disable=invalid-name params : ParamSet or sequence with which to instantiate a ParamSet. Expected params .. :: - scale : quantity (dimensionless) + nutau_xsec_scale : quantity (dimensionless) Scaling between different cross-section models. The range [-1, 1] covers all models tested in the paper. - + Expected container keys are .. :: "true_energy" @@ -50,7 +53,7 @@ def __init__( expected_params = ( "nutau_xsec_scale", ) - + expected_container_keys = ( 'true_energy', 'weights', @@ -66,7 +69,7 @@ def __init__( self.xsec_file = xsec_file def setup_function(self): - with open_resource(self.xsec_file, mode="rb") as fl: + with open_resource(find_resource(self.xsec_file), mode="rb") as fl: interp_dict = pickle.load(fl, encoding='latin1') interp_nutau = interp_dict["NuTau"] interp_nutaubar = interp_dict["NuTauBar"] @@ -123,3 +126,12 @@ def calc_scale_vectorized(func, scale, out): out[0] = 1. + func[0] * scale else: out[0] = 0. + + +def init_test(**param_kwargs): + """Instantiation example""" + param_set = ParamSet([ + Param(name="nutau_xsec_scale", value=1.0, **param_kwargs) + ]) + + return nutau_xsec(params=param_set) diff --git a/pisa_tests/test_services.py b/pisa_tests/test_services.py index 11cb36187..454786fac 100644 --- a/pisa_tests/test_services.py +++ b/pisa_tests/test_services.py @@ -62,7 +62,6 @@ # optional modules from unit tests? # Add in . format SKIP_SERVICES = ( - 'likelihood.generalized_llh_params', ) @@ -117,8 +116,8 @@ def add_test_inputs(service): container1 = Container('test1') container2 = Container('test2') for k in service.expected_container_keys: - container1[k] = linspace(0, 1, 10) - container2[k] = linspace(0, 1, 10) + container1[k] = linspace(0.1, 1, 10) + container2[k] = linspace(0.1, 1, 10) service.data = ContainerSet('data', [container1, container2]) @@ -143,7 +142,10 @@ def test_services( """Modelled after `run_unit_tests.run_unit_tests`""" services = find_services(path=path) + ntries = 0 + nsuccesses = 0 set_verbosity(verbosity) + for rel_file_path, service_names in services.items(): if not service_names: continue @@ -156,12 +158,13 @@ def test_services( module_pypath = f"{parent_pypath}.{module_name}" stage_dot_service = get_stage_dot_service_from_module_pypath(module_pypath) + ntries += 1 # check whether we should skip testing this service for some reason if stage_dot_service in skip_services: logging.warning(f"{stage_dot_service} will be ignored in service test.") continue - logging.info(f"Starting test for service {stage_dot_service}...") + logging.debug(f"Starting test for service {stage_dot_service}...") # if service module import successful, try to initialise the service try: @@ -175,10 +178,11 @@ def test_services( # Without a dedicated `init_test` function, we just try to # instantiate the service with std. Stage kwargs service = getattr(module, service_name)() - except: + except Exception as err: logging.warning( f"{stage_dot_service} has no {init_test_name} function " + - "and could not be instantiated with standard kwargs only." + "and could not be instantiated with standard kwargs only.\n" + + "msg: %s" % err ) continue else: @@ -186,36 +190,41 @@ def test_services( # Exploit presence of init_test (TODO: switch order with above?) param_kwargs = {'prior': None, 'range': None, 'is_fixed': True} service = getattr(module, init_test_name)(**param_kwargs) - except: + except Exception as err: logging.error( f"{stage_dot_service} has an {init_test_name} function " + - "which failed to instantiate the service." + "which failed to instantiate the service with msg:\n %s." % err ) continue try: add_test_inputs(service) - except: + except Exception as err: logging.warning( - f"Failed to assign test inputs for {stage_dot_service}." + f"Failed to assign test inputs for {stage_dot_service} with msg:\n %s" + % err ) continue try: # Only try event-by-event mode for now set_service_modes(service, calc_mode="events", apply_mode="events") - except: - logging.error( + except Exception as err: + logging.warning( "Failed to set `calc_mode` and `apply_mode` for " + - f"{stage_dot_service}." + f"{stage_dot_service} with msg:\n %s" % err ) continue try: run_service_test(service) logging.info(f"{stage_dot_service} passed the test.") - except: - logging.error(f"{stage_dot_service} failed to setup or run.") + nsuccesses += 1 + except Exception as err: + logging.error(f"{stage_dot_service} failed to setup or run with msg:\n %s." % err) + continue + + logging.info("%d out of %d tested services passed the test" % (nsuccesses, ntries)) def parse_args(description=__doc__): From 9351d29e10462b5d02e112afb07a5c7f8bf39443 Mon Sep 17 00:00:00 2001 From: T Ehrhardt Date: Thu, 22 Aug 2024 00:08:08 +0200 Subject: [PATCH 11/38] get more tests to run (or at least reduce remaining testing work for each service) and improve test script summary output --- pisa/stages/data/toy_event_generator.py | 19 ++++- .../likelihood/generalized_llh_params.py | 4 +- pisa/stages/osc/two_nu_osc.py | 13 +++- pisa/stages/pid/shift_scale_pid.py | 5 +- pisa/stages/reco/resolutions.py | 14 ++++ pisa/stages/reco/simple_param.py | 21 ++++- pisa/stages/utils/add_indices.py | 12 +-- pisa/stages/utils/adhoc_sys.py | 12 +++ pisa/stages/utils/bootstrap.py | 8 ++ pisa/stages/utils/hist.py | 7 ++ pisa/stages/utils/kde.py | 4 + pisa/stages/utils/kfold.py | 8 ++ pisa/stages/utils/resample.py | 9 +++ pisa/stages/utils/set_variance.py | 11 +++ pisa_tests/test_services.py | 77 ++++++++++++++++--- 15 files changed, 201 insertions(+), 23 deletions(-) diff --git a/pisa/stages/data/toy_event_generator.py b/pisa/stages/data/toy_event_generator.py index c11451695..5fc3cccbe 100644 --- a/pisa/stages/data/toy_event_generator.py +++ b/pisa/stages/data/toy_event_generator.py @@ -7,10 +7,13 @@ import numpy as np from pisa import FTYPE -from pisa.core.container import Container from pisa.core.binning import MultiDimBinning +from pisa.core.container import Container +from pisa.core.param import Param, ParamSet from pisa.core.stage import Stage +__all__ = ['toy_event_generator', 'init_test'] + class toy_event_generator(Stage): # pylint: disable=invalid-name """ @@ -40,12 +43,14 @@ def __init__( expected_params = ('n_events', 'random', 'seed') + expected_container_keys = ('initial_weights',) + self.output_names = output_names # init base class super().__init__( expected_params=expected_params, - expected_container_keys=(), + expected_container_keys=expected_container_keys, **std_kwargs, ) @@ -100,3 +105,13 @@ def apply_function(self): # reset weights for container in self.data: container['weights'] = np.copy(container['initial_weights']) + + +def init_test(**param_kwargs): + """Initialisation example""" + param_set = ParamSet([ + Param(name='n_events', value=100, **param_kwargs), + Param(name='random', value=1, **param_kwargs), + Param(name='seed', value=666, **param_kwargs), + ]) + return toy_event_generator(output_names=['nu_me', 'nu_you'], params=param_set) diff --git a/pisa/stages/likelihood/generalized_llh_params.py b/pisa/stages/likelihood/generalized_llh_params.py index 5d663eb77..66af1dcc4 100644 --- a/pisa/stages/likelihood/generalized_llh_params.py +++ b/pisa/stages/likelihood/generalized_llh_params.py @@ -50,6 +50,7 @@ import numpy as np from pisa import FTYPE +from pisa.core.binning import MultiDimBinning from pisa.core.stage import Stage from pisa.utils.log import logging @@ -88,7 +89,8 @@ def setup_function(self): of MC events in each bin of each dataset and compute mean adjustment """ - + if not isinstance(self.apply_mode, MultiDimBinning): + raise ValueError('apply mode must be set to a binning') N_bins = self.apply_mode.tot_num_bins self.data.representation = self.apply_mode diff --git a/pisa/stages/osc/two_nu_osc.py b/pisa/stages/osc/two_nu_osc.py index 2fced2920..2f636ab29 100644 --- a/pisa/stages/osc/two_nu_osc.py +++ b/pisa/stages/osc/two_nu_osc.py @@ -7,11 +7,13 @@ import numpy as np from numba import guvectorize -from pisa import FTYPE, ITYPE, TARGET +from pisa import FTYPE, ITYPE, TARGET, ureg +from pisa.core.param import Param, ParamSet from pisa.core.stage import Stage from pisa.utils.profiler import profile from pisa.utils.numba_tools import myjit +__all__ = ['two_nu_osc', 'calc_probs', 'apply_probs_vectorized', 'init_test'] class two_nu_osc(Stage): # pylint: disable=invalid-name """ @@ -127,3 +129,12 @@ def apply_probs_vectorized(flux, t23, dm31, true_energy, true_coszen, nuflav, ou else: assert nuflav==0 out[0] *= flux[0] + + +def init_test(**param_kwargs): + """Instantiation example""" + param_set = ParamSet([ + Param(name='theta', value=45*ureg.degree, **param_kwargs), + Param(name='deltam31', value=2.5e-3*ureg.eV**2, **param_kwargs), + ]) + return two_nu_osc(params=param_set) diff --git a/pisa/stages/pid/shift_scale_pid.py b/pisa/stages/pid/shift_scale_pid.py index 0b7bfe006..0e2e1dedc 100644 --- a/pisa/stages/pid/shift_scale_pid.py +++ b/pisa/stages/pid/shift_scale_pid.py @@ -37,9 +37,12 @@ def __init__(self, # register expected parameters expected_params = ('bias', 'scale',) + expected_container_keys = ('pid', ) + # init base class super().__init__( expected_params=expected_params, + expected_container_keys=expected_container_keys, **std_kwargs, ) @@ -110,4 +113,4 @@ def init_test(**param_kwargs): Param(name='scale', value=1.0, **param_kwargs) ]) - return shift_scale_pid(params=param_set) + return shift_scale_pid(calc_mode='events', params=param_set) diff --git a/pisa/stages/reco/resolutions.py b/pisa/stages/reco/resolutions.py index 82b6f1a71..e8fbad45d 100644 --- a/pisa/stages/reco/resolutions.py +++ b/pisa/stages/reco/resolutions.py @@ -5,9 +5,12 @@ from __future__ import absolute_import, print_function, division +from pisa.core.param import Param, ParamSet from pisa.core.stage import Stage from pisa.utils.log import logging +__all__ = ['resolutions', 'init_test'] + class resolutions(Stage): # pylint: disable=invalid-name """ @@ -51,6 +54,7 @@ def __init__( 'true_coszen', 'reco_energy', 'reco_coszen', + 'pid', ) # init base class @@ -81,3 +85,13 @@ def setup_function(self): else: container['pid'] -= self.params.pid_improvement.m_as('dimensionless') container.mark_changed('pid') + + +def init_test(**param_kwargs): + """Instantiation example""" + param_set = ParamSet([ + Param(name='energy_improvement', value=0.9, **param_kwargs), + Param(name='coszen_improvement', value=0.5, **param_kwargs), + Param(name='pid_improvement', value=0.02, **param_kwargs) + ]) + return resolutions(params=param_set) diff --git a/pisa/stages/reco/simple_param.py b/pisa/stages/reco/simple_param.py index e24d08483..c9675b334 100644 --- a/pisa/stages/reco/simple_param.py +++ b/pisa/stages/reco/simple_param.py @@ -13,10 +13,16 @@ import numpy as np from pisa import FTYPE +from pisa.core.param import Param, ParamSet from pisa.core.stage import Stage __all__ = [ + "dict_lookup_wildcard", + "logistic_function", + "has_muon", + "visible_energy_correction", + "energy_dependent_sigma", "simple_param", "simple_reco_energy_parameterization", "simple_reco_coszen_parameterization", @@ -416,7 +422,7 @@ def __init__(self, ): expected_params = ( - "perfect_reco", #TODO move these to constructor args? + "perfect_reco", #TODO move these to constructor args? (yes, please) "reco_energy_params", "reco_coszen_params", "pid_track_params", @@ -533,3 +539,16 @@ def setup_function(self): # Write to the container container["pid"][:] = pid container.mark_changed("pid") + + +def init_test(**param_kwargs): + """Instantiation example""" + param_set = ParamSet([ + Param(name='perfect_reco', value=False, **param_kwargs), + Param(name='reco_energy_params', value={'nue*_cc': [10., 0.2, 0.2]}, **param_kwargs), #FIXME + Param(name='reco_coszen_params', value={'nue*_cc': [10., 0.2, 0.5]}, **param_kwargs), #FIXME + Param(name='pid_track_params', value={'nue*_cc': [0.05, 0.2, 15.]}, **param_kwargs), #FIXME + Param(name='track_pid', value=1.0, **param_kwargs), + Param(name='cascade_pid', value=0.0, **param_kwargs), + ]) + return simple_param(params=param_set) diff --git a/pisa/stages/utils/add_indices.py b/pisa/stages/utils/add_indices.py index fa9390b1e..2616ddda8 100644 --- a/pisa/stages/utils/add_indices.py +++ b/pisa/stages/utils/add_indices.py @@ -13,12 +13,12 @@ __author__ = "Etienne Bourbeau (etienne.bourbeau@icecube.wisc.edu)" - -from pisa.core.stage import Stage - # Load the modified index lookup function from pisa.core.bin_indexing import lookup_indices +from pisa.core.binning import MultiDimBinning +from pisa.core.stage import Stage +__all__ = ['add_indices'] class add_indices(Stage): # pylint: disable=invalid-name @@ -66,8 +66,10 @@ def setup_function(self): ''' if self.calc_mode != 'events': - raise ValueError('calc mode must be set to "events for this module') + raise ValueError('calc mode must be set to "events" for this module') + if not isinstance(self.apply_mode, MultiDimBinning): + raise ValueError('apply mode must be set to a binning') for container in self.data: self.data.representation = self.calc_mode @@ -76,7 +78,7 @@ def setup_function(self): variables_to_bin.append(container[bin_name]) indices = lookup_indices(sample=variables_to_bin, - binning=self.apply_mode) + binning=self.apply_mode) container['bin_indices'] = indices diff --git a/pisa/stages/utils/adhoc_sys.py b/pisa/stages/utils/adhoc_sys.py index c9a9e7435..a2023845e 100644 --- a/pisa/stages/utils/adhoc_sys.py +++ b/pisa/stages/utils/adhoc_sys.py @@ -15,6 +15,9 @@ from pisa.utils.jsons import from_json from pisa.core.binning import MultiDimBinning +__all__ = ['adhoc_sys', 'init_test'] + + class adhoc_sys(Stage): # pylint: disable=invalid-name """ Stage to re-weight events according to factors derived from post-fit data/MC @@ -79,3 +82,12 @@ def setup_function(self): def apply_function(self): for container in self.data: container["weights"] *= container["adhoc_scale_factors"] + + +def init_test(**param_kwargs): + """Instantiation example""" + #FIXME: create temporary scale file on the fly? + return adhoc_sys( + variable_name='annoying_sys', scale_file='.json', + calc_mode='events', apply_mode='events' + ) diff --git a/pisa/stages/utils/bootstrap.py b/pisa/stages/utils/bootstrap.py index 0fa5a484f..3b2e72290 100644 --- a/pisa/stages/utils/bootstrap.py +++ b/pisa/stages/utils/bootstrap.py @@ -31,6 +31,9 @@ See the License for the specific language governing permissions and limitations under the License.""" +__all__ = ['bootstrap', 'insert_bootstrap_after_data_loader', 'test_bootstrap', + 'init_test'] + class bootstrap(Stage): # pylint: disable=invalid-name """ @@ -127,6 +130,11 @@ def insert_bootstrap_after_data_loader(cfg_dict, seed=None): return bootstrap_pipe_cfg +def init_test(**param_kwargs): + """Instantiation example""" + return bootstrap(calc_mode='events') + + def test_bootstrap(): """Unit test for the bootstrap stage.""" diff --git a/pisa/stages/utils/hist.py b/pisa/stages/utils/hist.py index 1d08a4916..7307a18a0 100644 --- a/pisa/stages/utils/hist.py +++ b/pisa/stages/utils/hist.py @@ -11,6 +11,8 @@ from pisa.utils.profiler import profile from pisa.utils.log import logging +__all__ = ['hist', 'init_test'] + class hist(Stage): # pylint: disable=invalid-name """Stage to histogram events @@ -208,3 +210,8 @@ def apply_function(self): if self.error_method == "sumw2": container["errors"] = np.sqrt(sumw2) container["bin_unc2"] = bin_unc2 + + +def init_test(**param_kwargs): + """Instantiation example""" + return hist(calc_mode='events', apply_mode='events') # FIXME diff --git a/pisa/stages/utils/kde.py b/pisa/stages/utils/kde.py index 9d126c62c..504eaaccf 100644 --- a/pisa/stages/utils/kde.py +++ b/pisa/stages/utils/kde.py @@ -284,3 +284,7 @@ def apply(self): # into the main scope and thus overshadow `kde` (the module). # The unit test for this stage is therefore instead placed in # pisa/pisa_tests/test_kde_stage.py + +def init_test(**param_kwargs): + """Initialisation example""" + return kde(calc_mode='events') diff --git a/pisa/stages/utils/kfold.py b/pisa/stages/utils/kfold.py index 764b1e47c..493be5b74 100644 --- a/pisa/stages/utils/kfold.py +++ b/pisa/stages/utils/kfold.py @@ -33,6 +33,9 @@ limitations under the License.""" +__all__ = ['kfold', 'init_test'] + + class kfold(Stage): # pylint: disable=invalid-name """ Stage to make splits of the MC set and select one split to make histograms. @@ -111,3 +114,8 @@ def setup_function(self): def apply_function(self): for container in self.data: container["weights"] *= container["fold_weight"] + + +def init_test(**param_kwargs): + """Initialisation example""" + return kfold(n_splits=2, calc_mode='events') diff --git a/pisa/stages/utils/resample.py b/pisa/stages/utils/resample.py index ae5f96ff4..720fd77c4 100644 --- a/pisa/stages/utils/resample.py +++ b/pisa/stages/utils/resample.py @@ -20,6 +20,10 @@ from pisa.core.binning import MultiDimBinning from pisa.utils.log import logging, set_verbosity + +__all__ = ['ResampleMode', 'resample', 'init_test', 'test_resample'] + + class ResampleMode(Enum): """Enumerates sampling methods of the `resample` stage.""" @@ -171,6 +175,11 @@ def apply(self): if self.scale_errors: container["errors_resampled"] = np.sqrt(container["vars_resampled"]) +def init_test(**param_kwargs): + """Initialisation example""" + return resample() #FIXME + + def test_resample(): """Unit test for the resampling stage.""" from pisa.core.distribution_maker import DistributionMaker diff --git a/pisa/stages/utils/set_variance.py b/pisa/stages/utils/set_variance.py index 4a7132957..c46b396d3 100644 --- a/pisa/stages/utils/set_variance.py +++ b/pisa/stages/utils/set_variance.py @@ -11,6 +11,11 @@ from pisa.utils import vectorizer from pisa.core.binning import MultiDimBinning +__all__ = [ + "set_variance", "apply_floor", "apply_floor_gufunc", + "set_constant", "set_constant_gufunc", "init_test" +] + class set_variance(Stage): # pylint: disable=invalid-name """ @@ -40,6 +45,7 @@ def __init__( self.variance_floor = variance_floor assert self.variance_scale is not None + assert expected_total_mc is not None self.expected_total_mc = int(expected_total_mc) self.divide_n = divide_total_mc if self.divide_n: @@ -94,3 +100,8 @@ def set_constant(val, out): @guvectorize([f"({FX}, {FX}[:])"], "() -> ()", target=TARGET) def set_constant_gufunc(val, out): out[0] = val + + +def init_test(**param_kwargs): + """Instantiation example""" + return set_variance(expected_total_mc=100) #FIXME diff --git a/pisa_tests/test_services.py b/pisa_tests/test_services.py index 454786fac..aef5ee33e 100644 --- a/pisa_tests/test_services.py +++ b/pisa_tests/test_services.py @@ -22,7 +22,7 @@ from pisa.core.container import Container, ContainerSet from pisa.utils.fileio import expand, nsort_key_func from pisa.utils.log import Levels, logging, set_verbosity -from pisa_tests.run_unit_tests import PISA_PATH +from pisa_tests.run_unit_tests import PISA_PATH, OPTIONAL_MODULES __all__ = [ @@ -33,7 +33,7 @@ "get_stage_dot_service_from_module_pypath", "add_test_inputs", "set_service_modes", - "run_service_test" + "is_allowed_import_error" ] __author__ = "T. Ehrhardt, J. Weldert" @@ -133,17 +133,40 @@ def run_service_test(service): service.run() +def is_allowed_import_error(err, module_pypath, allow_missing=OPTIONAL_MODULES): + if ( + isinstance(err, ImportError) + and hasattr(err, "name") + and err.name in allow_missing # pylint: disable=no-member + ): + err_name = err.name # pylint: disable=no-member + logging.warning( + f"module {err_name} failed to import while importing " + f"{module_pypath}, but ok to ignore" + ) + return True + return False + + def test_services( path=STAGES_PATH, init_test_name=INIT_TEST_NAME, skip_services=SKIP_SERVICES, + allow_missing=OPTIONAL_MODULES, verbosity=Levels.WARN, ): """Modelled after `run_unit_tests.run_unit_tests`""" + if allow_missing is None: + allow_missing = [] + elif isinstance(allow_missing, str): + allow_missing = [allow_missing] + services = find_services(path=path) ntries = 0 nsuccesses = 0 + stage_dot_services_failed_ignored = [] + stage_dot_services_failed = [] set_verbosity(verbosity) for rel_file_path, service_names in services.items(): @@ -169,8 +192,23 @@ def test_services( # if service module import successful, try to initialise the service try: module = import_module(module_pypath, package=parent_pypath) - except: - logging.warning(f"{module_pypath} cannot be imported.") + except Exception as err: + if is_allowed_import_error(err, module_pypath, allow_missing): + stage_dot_services_failed_ignored.append(stage_dot_service) + continue + + stage_dot_services_failed.append(stage_dot_service) + + set_verbosity(verbosity) + msg = f"<< FAILURE IMPORTING : {module_pypath} >>" + logging.error("=" * len(msg)) + logging.error(msg) + logging.error("=" * len(msg)) + + set_verbosity(Levels.TRACE) + logging.exception(err) + + set_verbosity(verbosity) continue if not hasattr(module, init_test_name): @@ -179,11 +217,12 @@ def test_services( # instantiate the service with std. Stage kwargs service = getattr(module, service_name)() except Exception as err: - logging.warning( - f"{stage_dot_service} has no {init_test_name} function " + - "and could not be instantiated with standard kwargs only.\n" + + logging.error( + f"{stage_dot_service} has no {init_test_name} function " + "and could not be instantiated with standard kwargs only.\n" "msg: %s" % err ) + stage_dot_services_failed.append(stage_dot_service) continue else: try: @@ -192,28 +231,31 @@ def test_services( service = getattr(module, init_test_name)(**param_kwargs) except Exception as err: logging.error( - f"{stage_dot_service} has an {init_test_name} function " + + f"{stage_dot_service} has an {init_test_name} function " "which failed to instantiate the service with msg:\n %s." % err ) + stage_dot_services_failed.append(stage_dot_service) continue try: add_test_inputs(service) except Exception as err: - logging.warning( + logging.error( f"Failed to assign test inputs for {stage_dot_service} with msg:\n %s" % err ) + stage_dot_services_failed.append(stage_dot_service) continue try: # Only try event-by-event mode for now set_service_modes(service, calc_mode="events", apply_mode="events") except Exception as err: - logging.warning( - "Failed to set `calc_mode` and `apply_mode` for " + + logging.error( + "Failed to set `calc_mode` and `apply_mode` for " f"{stage_dot_service} with msg:\n %s" % err ) + stage_dot_services_failed.append(stage_dot_service) continue try: @@ -221,10 +263,21 @@ def test_services( logging.info(f"{stage_dot_service} passed the test.") nsuccesses += 1 except Exception as err: + if is_allowed_import_error(err, stage_dot_service, allow_missing): + stage_dot_services_failed_ignored.append(stage_dot_service) + continue logging.error(f"{stage_dot_service} failed to setup or run with msg:\n %s." % err) + stage_dot_services_failed.append(stage_dot_service) continue - logging.info("%d out of %d tested services passed the test" % (nsuccesses, ntries)) + logging.info("%d out of %d tested services passed the test." % (nsuccesses, ntries)) + nfail = ntries - nsuccesses + nfail_ignored = len(stage_dot_services_failed_ignored) + logging.info("%d/%d failures are fine (have been ignored)." % (nfail_ignored, nfail)) + nfail_remain = nfail - nfail_ignored + if nfail_remain > 0: + logging.error("%d failures still need to be addressed:\n" % nfail_remain + + ", ".join(stage_dot_services_failed)) def parse_args(description=__doc__): From fb22e2d06d2254b3ed175b80c41ec6c47a1d5643 Mon Sep 17 00:00:00 2001 From: T Ehrhardt Date: Thu, 22 Aug 2024 12:47:38 +0200 Subject: [PATCH 12/38] improve service testing logic (check for init. object type, less stupid populating of data attribute), add GLoBES to list of optional modules, add initialisation examples for several services --- pisa/stages/data/simple_data_loader.py | 21 ++++++++ pisa/stages/data/simple_signal.py | 27 ++++++++-- pisa/stages/flux/daemon_flux.py | 18 +++++++ pisa/stages/osc/decoherence.py | 28 ++++++++++- pisa/stages/osc/external.py | 16 ++++++ pisa/stages/osc/globes.py | 23 +++++++++ pisa/stages/osc/prob3.py | 22 ++++++++ pisa_tests/run_unit_tests.py | 3 +- pisa_tests/test_services.py | 70 +++++++++++++++++--------- 9 files changed, 199 insertions(+), 29 deletions(-) diff --git a/pisa/stages/data/simple_data_loader.py b/pisa/stages/data/simple_data_loader.py index e81432344..c3647f281 100644 --- a/pisa/stages/data/simple_data_loader.py +++ b/pisa/stages/data/simple_data_loader.py @@ -14,6 +14,8 @@ from pisa.core.events_pi import EventsPi from pisa.utils.format import split +__all__ = ['simple_data_loader', 'init_test'] + class simple_data_loader(Stage): # pylint: disable=invalid-name """ @@ -230,3 +232,22 @@ def apply_function(self): # reset weights to initial weights prior to downstream stages running for container in self.data: container['weights'] = np.copy(container['initial_weights']) + +def init_test(**param_kwargs): + """Initialisation example""" + return simple_data_loader( + events_file='events/events__vlvnt__toy_1_to_80GeV_spidx1.0_cz-1_to_1_1e2evts_set0__unjoined__with_fluxes_honda-2015-spl-solmin-aa.hdf5', + mc_cuts = '(true_coszen <= 0.5) & (true_energy <= 70)', + data_dict = { + 'true_energy': 'true_energy', + 'true_coszen': 'true_coszen', + 'reco_energy': 'reco_energy', + 'reco_coszen': 'reco_coszen', + 'pid': 'pid', + 'weighted_aeff': 'weighted_aeff', + 'nu_flux_nominal': ['nominal_nue_flux', 'nominal_numu_flux'], + 'nubar_flux_nominal': ['nominal_nuebar_flux', 'nominal_numubar_flux'] + }, + output_names = ['nue_cc', 'numu_cc', 'nutau_cc', 'nuebar_cc', 'numubar_cc', 'nutaubar_cc', + 'nue_nc', 'numu_nc', 'nutau_nc', 'nuebar_nc', 'numubar_nc', 'nutaubar_nc'] + ) diff --git a/pisa/stages/data/simple_signal.py b/pisa/stages/data/simple_signal.py index 4ada649c4..2d9c1593d 100644 --- a/pisa/stages/data/simple_signal.py +++ b/pisa/stages/data/simple_signal.py @@ -8,12 +8,17 @@ __author__ = "Etienne Bourbeau (etienne.bourbeau@icecube.wisc.edu)" import numpy as np +from scipy.stats import norm + from pisa import FTYPE +# Load the modified index lookup function +from pisa.core.bin_indexing import lookup_indices +from pisa.core.binning import MultiDimBinning from pisa.core.container import Container +from pisa.core.param import Param, ParamSet from pisa.core.stage import Stage -# Load the modified index lookup function -from pisa.core.bin_indexing import lookup_indices +__all__ = ['simple_signal', 'init_test'] class simple_signal(Stage): # pylint: disable=invalid-name @@ -102,6 +107,8 @@ def setup_function(self): # # Compute the bin indices associated with each event # + if not isinstance(self.apply_mode, MultiDimBinning): + raise ValueError('apply mode must be set to a binning') sig_indices = lookup_indices(sample=[signal_container['stuff']], binning=self.apply_mode) signal_container['bin_indices'] = sig_indices @@ -171,7 +178,6 @@ def apply_function(self): # Make sure we are in events mode # self.data.representation = 'events' - from scipy.stats import norm for container in self.data: @@ -205,3 +211,18 @@ def apply_function(self): container.array_to_binned('errors', self.data.representation, self.apply_mode, averaged=False ) + + +def init_test(**param_kwargs): + """Initialisation example""" + param_set = ParamSet([ + Param(name='n_events_data', value=5512, **param_kwargs), + Param(name='stats_factor', value=1.0, **param_kwargs), + Param(name='signal_fraction', value=0.05, **param_kwargs), + Param(name='bkg_min', value=50., **param_kwargs), + Param(name='bkg_max', value=100., **param_kwargs), + Param(name='mu', value=75., **param_kwargs), + Param(name='sigma', value=8.5, **param_kwargs), + ]) + + return simple_signal(params=param_set) diff --git a/pisa/stages/flux/daemon_flux.py b/pisa/stages/flux/daemon_flux.py index 43697ec39..73c66864e 100644 --- a/pisa/stages/flux/daemon_flux.py +++ b/pisa/stages/flux/daemon_flux.py @@ -10,14 +10,18 @@ from daemonflux import __version__ as daemon_version from pisa import FTYPE +from pisa.core.param import Param, ParamSet from pisa.core.stage import Stage from pisa.core.param import Param from pisa.utils.log import logging from pisa.utils.profiler import profile +from pisa.utils.random_numbers import get_random_state from numba import jit from scipy import interpolate from packaging.version import Version +__all__ = ['daemon_flux', 'make_2d_flux_map', 'evaluate_flux_map', 'init_test'] + class daemon_flux(Stage): # pylint: disable=invalid-name """ @@ -190,3 +194,17 @@ def evaluate_flux_map(flux_map, true_energy, true_coszen): uconv = true_energy**-3 * 1e4 return flux_map.ev(true_energy, true_coszen) * uconv + +def init_test(**param_kwargs): + """Initialisation example""" + param_set = [] + random_state = get_random_state(random_state=666) + for i, pname in enumerate(Flux(location='IceCube', use_calibration=True).params.known_parameters): + param = Param( + name='daemon_' + pname.replace('pi+','pi').replace('pi-','antipi').replace('K+','K').replace('K-','antiK'), + value=2 * random_state.rand() - 1, + **param_kwargs + ) + param_set.append(param) + param_set = ParamSet(*param_set) + return daemon_flux(params=param_set) diff --git a/pisa/stages/osc/decoherence.py b/pisa/stages/osc/decoherence.py index 2c7febd02..529daf320 100644 --- a/pisa/stages/osc/decoherence.py +++ b/pisa/stages/osc/decoherence.py @@ -14,7 +14,8 @@ import numpy as np from numba import guvectorize -from pisa import FTYPE, TARGET +from pisa import FTYPE, TARGET, ureg +from pisa.core.param import Param, ParamSet from pisa.core.stage import Stage from pisa.utils.profiler import profile from pisa.stages.osc.osc_params import OscParams @@ -24,7 +25,8 @@ from pisa import ureg -__all__ = ['DecoherenceParams', 'calc_decoherence_probs', "decoherence"] +__all__ = ['DecoherenceParams', 'calc_decoherence_probs', 'decoherence', + 'init_test'] __author__ = 'T. Stuttard, M. Jensen' @@ -488,3 +490,25 @@ def calc_probs(self, nubar, e_array, len_array, out): @guvectorize([signature], '(d),(),()->()', target=TARGET) def apply_probs(flux, prob_e, prob_mu, out): out[0] *= (flux[0] * prob_e) + (flux[1] * prob_mu) + + +def init_test(**param_kwargs): + """Initialisation example""" + param_set = ParamSet([ + Param(name='detector_depth', value=0.5*ureg.km, **param_kwargs), + Param(name='prop_height', value=20*ureg.km, **param_kwargs), + Param(name='earth_model', value=None, **param_kwargs), + Param(name='YeI', value=0.5, **param_kwargs), + Param(name='YeO', value=0.5, **param_kwargs), + Param(name='YeM', value=0.5, **param_kwargs), + Param(name='theta12', value=33*ureg.degree, **param_kwargs), + Param(name='theta13', value=8*ureg.degree, **param_kwargs), + Param(name='theta23', value=50*ureg.degree, **param_kwargs), + Param(name='deltam21', value=8e-5*ureg.eV**2, **param_kwargs), + Param(name='deltam31', value=3e-3*ureg.eV**2, **param_kwargs), + Param(name='deltacp', value=180*ureg.degree, **param_kwargs), + Param(name='gamma21', value=1e-11*ureg.GeV, **param_kwargs), + Param(name='gamma31', value=5e-10*ureg.GeV, **param_kwargs), + Param(name='gamma32', value=2.5e-13*ureg.GeV, **param_kwargs), + ]) + return decoherence(params=param_set) diff --git a/pisa/stages/osc/external.py b/pisa/stages/osc/external.py index dad025d7e..145f8836b 100644 --- a/pisa/stages/osc/external.py +++ b/pisa/stages/osc/external.py @@ -7,12 +7,16 @@ import numpy as np from pisa import FTYPE, TARGET, ureg +from pisa.core.param import Param, ParamSet from pisa.core.stage import Stage from pisa.utils.log import logging from pisa.utils.profiler import profile from pisa.stages.osc.layers import Layers from pisa.utils.resources import find_resource +__all__ = ['external', 'init_test'] + + class external(Stage): """ Use an external function to calculate oscillation probabilities @@ -202,3 +206,15 @@ def apply_function(self): for container in self.data: container['weights'] *= (container['nu_flux'][:,0] * container['prob_e']) + (container['nu_flux'][:,1] * container['prob_mu']) + +def init_test(**param_kwargs): + """Initialisation example""" + param_set = ParamSet([ + Param(name='detector_depth', value=3*ureg.km, **param_kwargs), + Param(name='prop_height', value=20*ureg.km, **param_kwargs), + Param(name='earth_model', value='osc/PREM_59layer.dat', **param_kwargs), + Param(name='YeI', value=0.5, **param_kwargs), + Param(name='YeO', value=0.5, **param_kwargs), + Param(name='YeM', value=0.5, **param_kwargs), + ]) + return external(params=param_set) diff --git a/pisa/stages/osc/globes.py b/pisa/stages/osc/globes.py index 7ac086ed0..be7a5d94d 100644 --- a/pisa/stages/osc/globes.py +++ b/pisa/stages/osc/globes.py @@ -20,12 +20,15 @@ from numba import guvectorize from pisa import FTYPE, TARGET, ureg +from pisa.core.param import Param, ParamSet from pisa.core.stage import Stage from pisa.stages.osc.layers import Layers from pisa.stages.osc.osc_params import OscParams from pisa.utils.profiler import profile from pisa.utils.resources import find_resource +__all__ = ['globes', 'init_test'] + class globes(Stage): # pylint: disable=invalid-name """ @@ -290,3 +293,23 @@ def apply_function(self): @guvectorize([signature], '(d),(),(),()->()', target=TARGET) def apply_probs(flux, prob_e, prob_mu, prob_nonsterile, out): out[0] *= ((flux[0] * prob_e) + (flux[1] * prob_mu))*prob_nonsterile + + +def init_test(**param_kwargs): + """Initialisation example""" + param_set = ParamSet([ + Param(name='theta12', value=33*ureg.degree, **param_kwargs), + Param(name='theta13', value=8*ureg.degree, **param_kwargs), + Param(name='theta23', value=50*ureg.degree, **param_kwargs), + Param(name='theta24', value=1*ureg.degree, **param_kwargs), + Param(name='theta34', value=0*ureg.degree, **param_kwargs), + Param(name='deltam21', value=8e-5*ureg.eV**2, **param_kwargs), + Param(name='deltam31', value=3e-3*ureg.eV**2, **param_kwargs), + Param(name='deltam41', value=1.*ureg.eV**2, **param_kwargs), + Param(name='deltacp', value=180*ureg.degree, **param_kwargs), + ]) + return globes( + earth_model='osc/PREM_12layer.dat', + globes_wrapper='GLoBES_wrapper', #FIXME + params=param_set + ) diff --git a/pisa/stages/osc/prob3.py b/pisa/stages/osc/prob3.py index 3c5709de0..4f9023a14 100644 --- a/pisa/stages/osc/prob3.py +++ b/pisa/stages/osc/prob3.py @@ -11,6 +11,7 @@ import numpy as np from pisa import FTYPE, ureg +from pisa.core.param import Param, ParamSet from pisa.core.stage import Stage from pisa.utils.log import logging from pisa.stages.osc.nsi_params import StdNSIParams, VacuumLikeNSIParams @@ -22,6 +23,8 @@ from pisa.stages.osc.prob3numba.numba_osc_hostfuncs import propagate_array, fill_probs from pisa.utils.resources import find_resource +__all__ = ['prob3', 'init_test'] + class prob3(Stage): # pylint: disable=invalid-name """ @@ -504,3 +507,22 @@ def apply_function(self): # update the outputted weights for container in self.data: container['weights'] *= (container['nu_flux'][:,0] * container['prob_e']) + (container['nu_flux'][:,1] * container['prob_mu']) + + +def init_test(**param_kwargs): + """Initialisation example""" + param_set = ParamSet([ + Param(name='detector_depth', value=10*ureg.km, **param_kwargs), + Param(name='prop_height', value=18*ureg.km, **param_kwargs), + Param(name='earth_model', value='osc/PREM_4layer.dat', **param_kwargs), + Param(name='YeI', value=0.5, **param_kwargs), + Param(name='YeO', value=0.5, **param_kwargs), + Param(name='YeM', value=0.5, **param_kwargs), + Param(name='theta12', value=33*ureg.degree, **param_kwargs), + Param(name='theta13', value=8*ureg.degree, **param_kwargs), + Param(name='theta23', value=50*ureg.degree, **param_kwargs), + Param(name='deltam21', value=8e-5*ureg.eV**2, **param_kwargs), + Param(name='deltam31', value=3e-3*ureg.eV**2, **param_kwargs), + Param(name='deltacp', value=180*ureg.degree, **param_kwargs), + ]) + return prob3(params=param_set) diff --git a/pisa_tests/run_unit_tests.py b/pisa_tests/run_unit_tests.py index 8e72b971c..d14d9d90d 100755 --- a/pisa_tests/run_unit_tests.py +++ b/pisa_tests/run_unit_tests.py @@ -70,7 +70,8 @@ "nuSQUIDSpy", "nuSQuIDS", "LeptonWeighter", - "photospline" + "photospline", + "GLoBES", ) """Okay if imports or test_* functions fail due to these not being import-able""" diff --git a/pisa_tests/test_services.py b/pisa_tests/test_services.py index aef5ee33e..26e11fe59 100644 --- a/pisa_tests/test_services.py +++ b/pisa_tests/test_services.py @@ -20,6 +20,7 @@ from numpy import linspace from pisa.core.container import Container, ContainerSet +from pisa.core.stage import Stage from pisa.utils.fileio import expand, nsort_key_func from pisa.utils.log import Levels, logging, set_verbosity from pisa_tests.run_unit_tests import PISA_PATH, OPTIONAL_MODULES @@ -110,15 +111,19 @@ def get_stage_dot_service_from_module_pypath(module_pypath): return module_pypath[12:] -def add_test_inputs(service): +def add_test_inputs(service, empty=False): """Try to come up with sensible test input data for the `Stage` instance `service`""" - container1 = Container('test1') - container2 = Container('test2') - for k in service.expected_container_keys: - container1[k] = linspace(0.1, 1, 10) - container2[k] = linspace(0.1, 1, 10) - service.data = ContainerSet('data', [container1, container2]) + if not empty: + container1 = Container('test1') + container2 = Container('test2') + for k in service.expected_container_keys: + container1[k] = linspace(0.1, 1, 10) + container2[k] = linspace(0.1, 1, 10) + service.data = ContainerSet('data', [container1, container2]) + else: + logging.debug("Creating empty test inputs...") + service.data = ContainerSet('data') def set_service_modes(service, calc_mode, apply_mode): @@ -237,26 +242,45 @@ def test_services( stage_dot_services_failed.append(stage_dot_service) continue - try: - add_test_inputs(service) - except Exception as err: + if not isinstance(service, Stage): + # Could be that init test function exists and runs but doesn't + # actually return anything useful + service_type = type(service) logging.error( - f"Failed to assign test inputs for {stage_dot_service} with msg:\n %s" - % err + f"Did not get an initialised `Stage` instance for {stage_dot_service} " + f"but {service_type}!" ) - stage_dot_services_failed.append(stage_dot_service) continue - try: - # Only try event-by-event mode for now - set_service_modes(service, calc_mode="events", apply_mode="events") - except Exception as err: - logging.error( - "Failed to set `calc_mode` and `apply_mode` for " - f"{stage_dot_service} with msg:\n %s" % err - ) - stage_dot_services_failed.append(stage_dot_service) - continue + if service.data is None: + # For data services, setup usually adds to `data` attribute + # (`Pipeline.setup()` assigns empty `ContainerSet`) + # TODO: Can/should init ever already result in populated `data` attribute? + try: + add_test_inputs( + service=service, + empty=True if stage_dot_service.split('.')[0] == 'data' else False + ) + except Exception as err: + logging.error( + f"Failed to assign test inputs for {stage_dot_service} with msg:\n %s" + % err + ) + stage_dot_services_failed.append(stage_dot_service) + continue + + #if service.data is not None: # we should never be in this state here + if service.calc_mode is None and service.apply_mode is None: #TODO + try: + # Only try event-by-event mode for now + set_service_modes(service, calc_mode='events', apply_mode='events') + except Exception as err: + logging.error( + "Failed to set `calc_mode` and `apply_mode` for " + f"{stage_dot_service} with msg:\n %s" % err + ) + stage_dot_services_failed.append(stage_dot_service) + continue try: run_service_test(service) From cd330ebe81efe161917501ddd0e40f57c89db334 Mon Sep 17 00:00:00 2001 From: T Ehrhardt Date: Thu, 22 Aug 2024 12:59:42 +0200 Subject: [PATCH 13/38] toy_event_generator has no exp. cont. keys, missing append to failed services list --- pisa/stages/data/toy_event_generator.py | 4 +--- pisa_tests/test_services.py | 1 + 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/pisa/stages/data/toy_event_generator.py b/pisa/stages/data/toy_event_generator.py index 5fc3cccbe..c89169b05 100644 --- a/pisa/stages/data/toy_event_generator.py +++ b/pisa/stages/data/toy_event_generator.py @@ -43,14 +43,12 @@ def __init__( expected_params = ('n_events', 'random', 'seed') - expected_container_keys = ('initial_weights',) - self.output_names = output_names # init base class super().__init__( expected_params=expected_params, - expected_container_keys=expected_container_keys, + expected_container_keys=(), **std_kwargs, ) diff --git a/pisa_tests/test_services.py b/pisa_tests/test_services.py index 26e11fe59..4b9f883fc 100644 --- a/pisa_tests/test_services.py +++ b/pisa_tests/test_services.py @@ -250,6 +250,7 @@ def test_services( f"Did not get an initialised `Stage` instance for {stage_dot_service} " f"but {service_type}!" ) + stage_dot_services_failed.append(stage_dot_service) continue if service.data is None: From 97cec37c654a1509fa3a22368dff2522345b8daf Mon Sep 17 00:00:00 2001 From: Jan Weldert Date: Thu, 22 Aug 2024 07:30:44 -0500 Subject: [PATCH 14/38] Also test some stages in hist mode --- pisa/stages/data/csv_loader.py | 7 +++++++ pisa/stages/flux/daemon_flux.py | 1 - pisa/stages/utils/add_indices.py | 6 ++++++ pisa/stages/utils/hist.py | 3 ++- pisa/stages/utils/kde.py | 3 ++- pisa_tests/test_services.py | 12 +++++++++++- 6 files changed, 28 insertions(+), 4 deletions(-) diff --git a/pisa/stages/data/csv_loader.py b/pisa/stages/data/csv_loader.py index e69ae23ea..b766447da 100644 --- a/pisa/stages/data/csv_loader.py +++ b/pisa/stages/data/csv_loader.py @@ -95,3 +95,10 @@ def setup_function(self): def apply_function(self): for container in self.data: container['weights'] = np.copy(container['initial_weights']) + + +def init_test(**param_kwargs): + """Initialisation example""" + return csv_loader(events_file='events/IceCube_3y_oscillations/neutrino_mc.csv.bz2', + output_names=['nue_cc', 'numu_cc'], + ) diff --git a/pisa/stages/flux/daemon_flux.py b/pisa/stages/flux/daemon_flux.py index 73c66864e..a68271d3b 100644 --- a/pisa/stages/flux/daemon_flux.py +++ b/pisa/stages/flux/daemon_flux.py @@ -12,7 +12,6 @@ from pisa import FTYPE from pisa.core.param import Param, ParamSet from pisa.core.stage import Stage -from pisa.core.param import Param from pisa.utils.log import logging from pisa.utils.profiler import profile from pisa.utils.random_numbers import get_random_state diff --git a/pisa/stages/utils/add_indices.py b/pisa/stages/utils/add_indices.py index 2616ddda8..d17aab12b 100644 --- a/pisa/stages/utils/add_indices.py +++ b/pisa/stages/utils/add_indices.py @@ -17,6 +17,7 @@ from pisa.core.bin_indexing import lookup_indices from pisa.core.binning import MultiDimBinning from pisa.core.stage import Stage +from pisa_tests.test_services import TEST_BINNING __all__ = ['add_indices'] @@ -85,3 +86,8 @@ def setup_function(self): self.data.representation = self.apply_mode for bin_i in range(self.apply_mode.tot_num_bins): container['bin_{}_mask'.format(bin_i)] = container['bin_indices'] == bin_i + + +def init_test(**param_kwargs): + """Instantiation example""" + return add_indices(calc_mode='events', apply_mode=TEST_BINNING) diff --git a/pisa/stages/utils/hist.py b/pisa/stages/utils/hist.py index 7307a18a0..af4fd1232 100644 --- a/pisa/stages/utils/hist.py +++ b/pisa/stages/utils/hist.py @@ -10,6 +10,7 @@ from pisa.core.binning import MultiDimBinning, OneDimBinning from pisa.utils.profiler import profile from pisa.utils.log import logging +from pisa_tests.test_services import TEST_BINNING __all__ = ['hist', 'init_test'] @@ -214,4 +215,4 @@ def apply_function(self): def init_test(**param_kwargs): """Instantiation example""" - return hist(calc_mode='events', apply_mode='events') # FIXME + return hist(calc_mode='events', apply_mode=TEST_BINNING) diff --git a/pisa/stages/utils/kde.py b/pisa/stages/utils/kde.py index 504eaaccf..be4c365ae 100644 --- a/pisa/stages/utils/kde.py +++ b/pisa/stages/utils/kde.py @@ -11,6 +11,7 @@ from pisa.utils.log import logging from pisa.utils.profiler import profile from pisa.utils import kde_hist +from pisa_tests.test_services import TEST_BINNING class kde(Stage): # pylint: disable=invalid-name @@ -287,4 +288,4 @@ def apply(self): def init_test(**param_kwargs): """Initialisation example""" - return kde(calc_mode='events') + return kde(calc_mode='events', apply_mode=TEST_BINNING) diff --git a/pisa_tests/test_services.py b/pisa_tests/test_services.py index 4b9f883fc..e86c9a88c 100644 --- a/pisa_tests/test_services.py +++ b/pisa_tests/test_services.py @@ -19,6 +19,8 @@ from numpy import linspace +from pisa import ureg +from pisa.core.binning import OneDimBinning, MultiDimBinning from pisa.core.container import Container, ContainerSet from pisa.core.stage import Stage from pisa.utils.fileio import expand, nsort_key_func @@ -58,6 +60,11 @@ INIT_TEST_NAME = "init_test" """Assumed name of custom function in each module which returns an example instance of the service in question""" +TEST_BINNING = MultiDimBinning([ + OneDimBinning(name='reco_energy', is_log=True, num_bins=3, domain=[0.1, 1]*ureg.GeV), + OneDimBinning(name='reco_coszen', is_lin=True, num_bins=3, domain=[0.1, 1]), + OneDimBinning(name='pid', is_lin=True, num_bins=3, domain=[0.1, 1]), +]) # TODO: define hopeless cases? define services whose tests may fail? # optional modules from unit tests? @@ -117,7 +124,10 @@ def add_test_inputs(service, empty=False): if not empty: container1 = Container('test1') container2 = Container('test2') - for k in service.expected_container_keys: + keys = set(service.expected_container_keys + + ['reco_energy', 'reco_coszen', 'pid', 'weights'] + ) + for k in keys: container1[k] = linspace(0.1, 1, 10) container2[k] = linspace(0.1, 1, 10) service.data = ContainerSet('data', [container1, container2]) From d9ccf55bd0da5161f15bd31f672bc9d7305deff1 Mon Sep 17 00:00:00 2001 From: Jan Weldert Date: Thu, 22 Aug 2024 08:48:53 -0500 Subject: [PATCH 15/38] Handle aux and multi dim container key --- pisa/stages/flux/daemon_flux.py | 2 +- pisa_tests/test_services.py | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/pisa/stages/flux/daemon_flux.py b/pisa/stages/flux/daemon_flux.py index a68271d3b..8f3969a47 100644 --- a/pisa/stages/flux/daemon_flux.py +++ b/pisa/stages/flux/daemon_flux.py @@ -104,7 +104,7 @@ def __init__( ) # init base class - super(daemon_flux, self).__init__( + super().__init__( expected_params=tuple(self.daemon_params+['daemon_chi2','daemon_params_len']), expected_container_keys=expected_container_keys, **std_kwargs, diff --git a/pisa_tests/test_services.py b/pisa_tests/test_services.py index e86c9a88c..4e9b3bf1f 100644 --- a/pisa_tests/test_services.py +++ b/pisa_tests/test_services.py @@ -18,6 +18,7 @@ from os.path import isfile, join, relpath from numpy import linspace +from numpy.random import random from pisa import ureg from pisa.core.binning import OneDimBinning, MultiDimBinning @@ -65,6 +66,7 @@ OneDimBinning(name='reco_coszen', is_lin=True, num_bins=3, domain=[0.1, 1]), OneDimBinning(name='pid', is_lin=True, num_bins=3, domain=[0.1, 1]), ]) +AUX_DATA_KEYS = ['nubar', 'flav'] # TODO: define hopeless cases? define services whose tests may fail? # optional modules from unit tests? @@ -128,8 +130,15 @@ def add_test_inputs(service, empty=False): ['reco_energy', 'reco_coszen', 'pid', 'weights'] ) for k in keys: - container1[k] = linspace(0.1, 1, 10) - container2[k] = linspace(0.1, 1, 10) + if k in AUX_DATA_KEYS: + container1.set_aux_data(k, 1) + container2.set_aux_data(k, 1) + elif k == 'nu_flux': + container1[k] = random((10, 2)) + container2[k] = random((10, 2)) + else: + container1[k] = linspace(0.1, 1, 10) + container2[k] = linspace(0.1, 1, 10) service.data = ContainerSet('data', [container1, container2]) else: logging.debug("Creating empty test inputs...") From c5a491deb7ddf0e6dca0adc78dc72861dcf08bcb Mon Sep 17 00:00:00 2001 From: T Ehrhardt Date: Thu, 22 Aug 2024 17:52:01 +0200 Subject: [PATCH 16/38] respect PISA data types when filling containers, rename test container for xsec.dis_sys; instantiation examples for three data services --- pisa/stages/data/csv_data_hist.py | 6 ++++++ pisa/stages/data/csv_icc_hist.py | 11 +++++++++++ pisa/stages/data/grid.py | 13 +++++++++++++ pisa_tests/test_services.py | 27 +++++++++++++++++---------- 4 files changed, 47 insertions(+), 10 deletions(-) diff --git a/pisa/stages/data/csv_data_hist.py b/pisa/stages/data/csv_data_hist.py index 763f55f15..85b16949d 100644 --- a/pisa/stages/data/csv_data_hist.py +++ b/pisa/stages/data/csv_data_hist.py @@ -11,6 +11,8 @@ from pisa.utils.resources import find_resource from pisa.core.container import Container +__all__ = ['csv_data_hist', 'init_test'] + class csv_data_hist(Stage): # pylint: disable=invalid-name """ @@ -60,3 +62,7 @@ def setup_function(self): 'No containers created during data loading for some reason.' ) + +def init_test(**param_kwargs): + """Instantiation example""" + return csv_data_hist(events_file='events/IceCube_3y_oscillations/data.csv.bz2') diff --git a/pisa/stages/data/csv_icc_hist.py b/pisa/stages/data/csv_icc_hist.py index ffc81419d..05cc3a955 100644 --- a/pisa/stages/data/csv_icc_hist.py +++ b/pisa/stages/data/csv_icc_hist.py @@ -8,10 +8,13 @@ import pandas as pd from pisa import FTYPE +from pisa.core.param import Param, ParamSet from pisa.core.stage import Stage from pisa.utils.resources import find_resource from pisa.core.container import Container +__all__ = ['csv_icc_hist', 'init_test'] + class csv_icc_hist(Stage): # pylint: disable=invalid-name """ @@ -66,3 +69,11 @@ def apply_function(self): for container in self.data: container['weights'] = container['count'] * scale + + +def init_test(**param_kwargs): + """Instantiation example""" + return csv_icc_hist( + events_file="events/IceCube_3y_oscillations/muons.csv.bz2", + params=ParamSet([Param(name='atm_muon_scale', value=0.2, **param_kwargs)]) + ) diff --git a/pisa/stages/data/grid.py b/pisa/stages/data/grid.py index 9945e2cb2..c4576ca73 100644 --- a/pisa/stages/data/grid.py +++ b/pisa/stages/data/grid.py @@ -8,6 +8,9 @@ from pisa import FTYPE from pisa.core.stage import Stage from pisa.core.container import Container +from pisa_tests.test_services import TEST_BINNING + +__all__ = ['grid', 'init_test'] class grid(Stage): # pylint: disable=invalid-name @@ -46,6 +49,7 @@ def __init__( ) assert self.calc_mode == "events" + assert self.output_names is not None def setup_function(self): @@ -84,3 +88,12 @@ def apply_function(self): # reset weights for container in self.data: container['weights'] = np.copy(container['initial_weights']) + + +def init_test(**param_kwargs): + """Instantiation example""" + return grid( + grid_binning=TEST_BINNING, calc_mode='events', + output_names = ['nue_cc', 'numu_cc', 'nutau_cc', 'nuebar_cc', 'numubar_cc', 'nutaubar_cc', + 'nue_nc', 'numu_nc', 'nutau_nc', 'nuebar_nc', 'numubar_nc', 'nutaubar_nc'] + ) diff --git a/pisa_tests/test_services.py b/pisa_tests/test_services.py index 4e9b3bf1f..894717e48 100644 --- a/pisa_tests/test_services.py +++ b/pisa_tests/test_services.py @@ -18,12 +18,12 @@ from os.path import isfile, join, relpath from numpy import linspace -from numpy.random import random -from pisa import ureg +from pisa import CTYPE, FTYPE, ITYPE, ureg from pisa.core.binning import OneDimBinning, MultiDimBinning from pisa.core.container import Container, ContainerSet from pisa.core.stage import Stage +from pisa.utils.random_numbers import get_random_state from pisa.utils.fileio import expand, nsort_key_func from pisa.utils.log import Levels, logging, set_verbosity from pisa_tests.run_unit_tests import PISA_PATH, OPTIONAL_MODULES @@ -31,6 +31,10 @@ __all__ = [ "STAGES_PATH", + "INIT_TEST_NAME", + "TEST_BINNING", + "SKIP_SERVICES", + "AUX_DATA_KEYS", "test_services", "find_services", "find_services_in_file", @@ -123,22 +127,25 @@ def get_stage_dot_service_from_module_pypath(module_pypath): def add_test_inputs(service, empty=False): """Try to come up with sensible test input data for the `Stage` instance `service`""" + random_state = get_random_state(0) if not empty: - container1 = Container('test1') - container2 = Container('test2') + name1 = 'test1_cc' + name2 = 'test2_nc' + container1 = Container(name1) + container2 = Container(name2) keys = set(service.expected_container_keys + ['reco_energy', 'reco_coszen', 'pid', 'weights'] ) for k in keys: if k in AUX_DATA_KEYS: - container1.set_aux_data(k, 1) - container2.set_aux_data(k, 1) + container1.set_aux_data(k, ITYPE(1)) + container2.set_aux_data(k, ITYPE(1)) elif k == 'nu_flux': - container1[k] = random((10, 2)) - container2[k] = random((10, 2)) + container1[k] = random_state.random((10, 2)).astype(dtype=FTYPE) + container2[k] = random_state.random((10, 2)).astype(dtype=FTYPE) else: - container1[k] = linspace(0.1, 1, 10) - container2[k] = linspace(0.1, 1, 10) + container1[k] = linspace(0.1, 1, 10, dtype=FTYPE) + container2[k] = linspace(0.1, 1, 10, dtype=FTYPE) service.data = ContainerSet('data', [container1, container2]) else: logging.debug("Creating empty test inputs...") From 8d41dfcf9b0a63d6163fb08ada254e5bf919048c Mon Sep 17 00:00:00 2001 From: T Ehrhardt Date: Fri, 23 Aug 2024 12:05:30 +0200 Subject: [PATCH 17/38] fix reco.simple_param and use tables from fridge to init. three flux services for now --- pisa/stages/flux/hillasg.py | 5 +++-- pisa/stages/flux/mceq_barr.py | 2 +- pisa/stages/flux/mceq_barr_red.py | 2 +- pisa/stages/reco/simple_param.py | 16 ++++++++-------- pisa_tests/test_services.py | 4 ++-- 5 files changed, 15 insertions(+), 14 deletions(-) diff --git a/pisa/stages/flux/hillasg.py b/pisa/stages/flux/hillasg.py index 8ec503cfb..79733434b 100644 --- a/pisa/stages/flux/hillasg.py +++ b/pisa/stages/flux/hillasg.py @@ -135,7 +135,8 @@ def compute_function(self): def init_test(**param_kwargs): """Instantiation example""" param_set = ParamSet([ - Param(name='flux_table', value='flux/honda-2015-spl-solmin-aa.d', **param_kwargs), #FIXME + Param(name='flux_table', + value='meows_sterile/resources/fluxes/pr_hillas_h3a_SIBYLL23C_AIRS_nominalize-aa.d', + **param_kwargs), ]) - return hillasg(params=param_set) diff --git a/pisa/stages/flux/mceq_barr.py b/pisa/stages/flux/mceq_barr.py index 393cda48b..bffc2c00a 100644 --- a/pisa/stages/flux/mceq_barr.py +++ b/pisa/stages/flux/mceq_barr.py @@ -565,7 +565,7 @@ def init_test(**param_kwargs): ]) return mceq_barr( - table_file=".pckl", #FIXME (see scripts/create_barr_sys_tables_mceq.py) + table_file="common/data/flux/v02/MCEq_flux_gradient_splines_2212_GlobalSplineFitBeta_SIBYLL23C.pckl.bz2", include_nutau_flux=False, use_honda_nominal_flux=True, params=param_set diff --git a/pisa/stages/flux/mceq_barr_red.py b/pisa/stages/flux/mceq_barr_red.py index d81fe78b3..8beca627f 100644 --- a/pisa/stages/flux/mceq_barr_red.py +++ b/pisa/stages/flux/mceq_barr_red.py @@ -507,6 +507,6 @@ def init_test(**param_kwargs): ]) return mceq_barr_red( - table_file=".pckl", #FIXME (see scripts/create_barr_sys_tables_mceq.py) + table_file="common/data/flux/v01/MCEq_flux_gradient_splines_2212_GlobalSplineFitBeta_SIBYLL23C_reduced_scheme.pckl.bz2", params=param_set ) diff --git a/pisa/stages/reco/simple_param.py b/pisa/stages/reco/simple_param.py index c9675b334..4ff490779 100644 --- a/pisa/stages/reco/simple_param.py +++ b/pisa/stages/reco/simple_param.py @@ -73,7 +73,7 @@ def dict_lookup_wildcard(dict_obj,key) : assert len(matches) > 0, "No match for '%s' found in dict" % key assert len(matches) < 2, "Multiple matches for '%s' found in dict : %s" % (key,matches.keys()) - return matches.keys()[0], matches.values()[0] + return list(matches.keys())[0], list(matches.values())[0] def logistic_function(a,b,c,x) : @@ -470,7 +470,7 @@ def setup_function(self): true_coszen = container["true_coszen"] # Create container if not already present - if "reco_energy" not in container : + if "reco_energy" not in container.keys : container['reco_energy'] = np.full_like(true_energy,np.NaN,dtype=FTYPE) # Create the reco energy variable @@ -494,7 +494,7 @@ def setup_function(self): # # Create container if not already present - if "reco_coszen" not in container : + if "reco_coszen" not in container.keys : container['reco_coszen'] = np.full_like(true_coszen,np.NaN,dtype=FTYPE) # Create the reco coszen variable @@ -519,7 +519,7 @@ def setup_function(self): # # Create container if not already present - if "pid" not in container : + if "pid" not in container.keys : container['pid'] = np.full_like(true_energy,np.NaN,dtype=FTYPE) # Create the PID variable @@ -545,10 +545,10 @@ def init_test(**param_kwargs): """Instantiation example""" param_set = ParamSet([ Param(name='perfect_reco', value=False, **param_kwargs), - Param(name='reco_energy_params', value={'nue*_cc': [10., 0.2, 0.2]}, **param_kwargs), #FIXME - Param(name='reco_coszen_params', value={'nue*_cc': [10., 0.2, 0.5]}, **param_kwargs), #FIXME - Param(name='pid_track_params', value={'nue*_cc': [0.05, 0.2, 15.]}, **param_kwargs), #FIXME + Param(name='reco_energy_params', value="{'test*': [10., 0.2, 0.2]}", **param_kwargs), + Param(name='reco_coszen_params', value="{'test*': [10., 0.2, 0.5]}", **param_kwargs), + Param(name='pid_track_params', value="{'test*': [0.05, 0.2, 15.]}", **param_kwargs), Param(name='track_pid', value=1.0, **param_kwargs), - Param(name='cascade_pid', value=0.0, **param_kwargs), + Param(name='cascade_pid', value=0.0, **param_kwargs), ]) return simple_param(params=param_set) diff --git a/pisa_tests/test_services.py b/pisa_tests/test_services.py index 894717e48..3b2bdb8e4 100644 --- a/pisa_tests/test_services.py +++ b/pisa_tests/test_services.py @@ -66,8 +66,8 @@ """Assumed name of custom function in each module which returns an example instance of the service in question""" TEST_BINNING = MultiDimBinning([ - OneDimBinning(name='reco_energy', is_log=True, num_bins=3, domain=[0.1, 1]*ureg.GeV), - OneDimBinning(name='reco_coszen', is_lin=True, num_bins=3, domain=[0.1, 1]), + OneDimBinning(name='reco_energy', is_log=True, num_bins=3, domain=[0.1, 1]*ureg.GeV), + OneDimBinning(name='reco_coszen', is_lin=True, num_bins=3, domain=[0.1, 1]), OneDimBinning(name='pid', is_lin=True, num_bins=3, domain=[0.1, 1]), ]) AUX_DATA_KEYS = ['nubar', 'flav'] From 878d860de460e5f821994602da7c4d5841b5330a Mon Sep 17 00:00:00 2001 From: Jan Weldert Date: Fri, 23 Aug 2024 08:34:04 -0500 Subject: [PATCH 18/38] Add supported modes to stage --- pisa/core/stage.py | 57 +++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 54 insertions(+), 3 deletions(-) diff --git a/pisa/core/stage.py b/pisa/core/stage.py index e2330b408..b53a5b95f 100644 --- a/pisa/core/stage.py +++ b/pisa/core/stage.py @@ -11,6 +11,7 @@ from time import time import numpy as np +from pisa.core.binning import MultiDimBinning from pisa.core.container import ContainerSet from pisa.utils.log import logging from pisa.core.param import ParamSelector @@ -37,6 +38,9 @@ class Stage(): expected_params : list of strings List containing required `params` names. + + expected_container_keys: list of strings + List containing required container keys. debug_mode : None, bool, or string If None, False, or empty string, the stage runs normally. @@ -50,6 +54,11 @@ class Stage(): error_method : None or string (not enforced) An option to define one or more dedicated error calculation methods for the stage transforms or outputs + + supported_modes : dict + Dictionary containing the representations allowed for calc_mode and + apply_mode. If nothing is specified, `events` and MultiDimBinning is assumed. + Has keys `calc_mode` and `apply_mode`, they will be created if not there. calc_mode : pisa.core.binning.MultiDimBinning, str, or None Specify the default data representation for `setup()` and `compute()` @@ -70,6 +79,7 @@ def __init__( expected_container_keys=None, debug_mode=None, error_method=None, + supported_modes={}, calc_mode=None, apply_mode=None, profile=False, @@ -132,9 +142,24 @@ def __init__( else: self._debug_mode = None - - self.calc_mode = calc_mode - self.apply_mode = apply_mode + if not 'calc_mode' in supported_modes: + supported_modes['calc_mode'] = ['events', MultiDimBinning] + if not 'apply_mode' in supported_modes: + supported_modes['apply_mode'] = ['events', MultiDimBinning] + self.supported_modes = supported_modes + + if isinstance(calc_mode, str) and calc_mode not in supported_modes['calc_mode']: + raise ValueError(f"calc_mode {calc_mode} is not supported by {self.stage_name}.{self.service_name}") + if not isinstance(calc_mode, str) and type(calc_mode) not in supported_modes['calc_mode'] and calc_mode != None: + raise ValueError(f"calc_mode {type(calc_mode)} is not supported by {self.stage_name}.{self.service_name}") + self._calc_mode = calc_mode + + if isinstance(apply_mode, str) and apply_mode not in supported_modes['apply_mode']: + raise ValueError(f"apply_mode {apply_mode} is not supported by {self.stage_name}.{self.service_name}") + if not isinstance(apply_mode, str) and type(apply_mode) not in supported_modes['apply_mode'] and apply_mode != None: + raise ValueError(f"apply_mode {type(apply_mode)} is not supported by {self.stage_name}.{self.service_name}") + self._apply_mode = apply_mode + self.data = data self._error_method = error_method @@ -230,6 +255,32 @@ def param_selections(self): """Param selections""" return sorted(deepcopy(self._param_selector.param_selections)) + @property + def calc_mode(self): + """calc_mode""" + return self._calc_mode + + @calc_mode.setter + def calc_mode(self, value): + if isinstance(value, str) and value not in self.supported_modes['calc_mode']: + raise ValueError(f"calc_mode {value} is not supported by {self.stage_name}.{self.service_name}") + if not isinstance(value, str) and type(value) not in self.supported_modes['calc_mode']: + raise ValueError(f"calc_mode {type(value)} is not supported by {self.stage_name}.{self.service_name}") + self._calc_mode = value + + @property + def apply_mode(self): + """apply_mode""" + return self._apply_mode + + @apply_mode.setter + def apply_mode(self, value): + if isinstance(value, str) and value not in self.supported_modes['apply_mode']: + raise ValueError(f"apply_mode {value} is not supported by {self.stage_name}.{self.service_name}") + if not isinstance(value, str) and type(value) not in self.supported_modes['apply_mode']: + raise ValueError(f"apply_mode {type(value)} is not supported by {self.stage_name}.{self.service_name}") + self._apply_mode = value + def _check_exp_keys_in_data(self, error_on_missing=False): """Make sure that `expected_container_keys` is defined and that they are present in all containers among `self.data`, independent of From 4c79beed9883d6dc56f21cdb1a6846fe944d7187 Mon Sep 17 00:00:00 2001 From: Jan Weldert Date: Fri, 23 Aug 2024 10:14:16 -0500 Subject: [PATCH 19/38] Rename to supported reps and add example --- pisa/core/stage.py | 51 +++++++++++++++++++--------------------- pisa/stages/utils/kde.py | 12 +++++----- 2 files changed, 30 insertions(+), 33 deletions(-) diff --git a/pisa/core/stage.py b/pisa/core/stage.py index b53a5b95f..a2bf8d656 100644 --- a/pisa/core/stage.py +++ b/pisa/core/stage.py @@ -12,17 +12,24 @@ import numpy as np from pisa.core.binning import MultiDimBinning -from pisa.core.container import ContainerSet +from pisa.core.container import Container, ContainerSet from pisa.utils.log import logging from pisa.core.param import ParamSelector from pisa.utils.format import arg_str_seq_none from pisa.utils.hash import hash_obj -__all__ = ["Stage"] +__all__ = ["check_representation", "Stage"] __author__ = "Philipp Eller, J. Lanfranchi" +def check_representation(rep, supported_reps, mode, stagename, allow_None=False): + if isinstance(rep, str) and rep not in supported_reps[mode]: + raise ValueError(f"{mode} {rep} is not supported by {stagename}") + if not isinstance(rep, str) and type(rep) not in supported_reps[mode] and (rep != None or not allow_None): + raise ValueError(f"{mode} {type(rep)} is not supported by {stagename}") + + class Stage(): """ PISA stage base class. @@ -55,10 +62,11 @@ class Stage(): An option to define one or more dedicated error calculation methods for the stage transforms or outputs - supported_modes : dict + supported_reps : dict Dictionary containing the representations allowed for calc_mode and - apply_mode. If nothing is specified, `events` and MultiDimBinning is assumed. - Has keys `calc_mode` and `apply_mode`, they will be created if not there. + apply_mode. If nothing is specified, Container.array_representations + plus MultiDimBinning is assumed. Should have keys `calc_mode` and/or + `apply_mode`, they will be created if not there. calc_mode : pisa.core.binning.MultiDimBinning, str, or None Specify the default data representation for `setup()` and `compute()` @@ -79,7 +87,7 @@ def __init__( expected_container_keys=None, debug_mode=None, error_method=None, - supported_modes={}, + supported_reps={}, calc_mode=None, apply_mode=None, profile=False, @@ -142,22 +150,16 @@ def __init__( else: self._debug_mode = None - if not 'calc_mode' in supported_modes: - supported_modes['calc_mode'] = ['events', MultiDimBinning] - if not 'apply_mode' in supported_modes: - supported_modes['apply_mode'] = ['events', MultiDimBinning] - self.supported_modes = supported_modes + if not 'calc_mode' in supported_reps: + supported_reps['calc_mode'] = list(Container.array_representations) + [MultiDimBinning] + if not 'apply_mode' in supported_reps: + supported_reps['apply_mode'] = list(Container.array_representations) + [MultiDimBinning] + self.supported_reps = supported_reps - if isinstance(calc_mode, str) and calc_mode not in supported_modes['calc_mode']: - raise ValueError(f"calc_mode {calc_mode} is not supported by {self.stage_name}.{self.service_name}") - if not isinstance(calc_mode, str) and type(calc_mode) not in supported_modes['calc_mode'] and calc_mode != None: - raise ValueError(f"calc_mode {type(calc_mode)} is not supported by {self.stage_name}.{self.service_name}") + check_representation(calc_mode, supported_reps, 'calc_mode', f"{self.stage_name}.{self.service_name}", allow_None=True) self._calc_mode = calc_mode - if isinstance(apply_mode, str) and apply_mode not in supported_modes['apply_mode']: - raise ValueError(f"apply_mode {apply_mode} is not supported by {self.stage_name}.{self.service_name}") - if not isinstance(apply_mode, str) and type(apply_mode) not in supported_modes['apply_mode'] and apply_mode != None: - raise ValueError(f"apply_mode {type(apply_mode)} is not supported by {self.stage_name}.{self.service_name}") + check_representation(apply_mode, supported_reps, 'apply_mode', f"{self.stage_name}.{self.service_name}", allow_None=True) self._apply_mode = apply_mode self.data = data @@ -262,11 +264,9 @@ def calc_mode(self): @calc_mode.setter def calc_mode(self, value): - if isinstance(value, str) and value not in self.supported_modes['calc_mode']: - raise ValueError(f"calc_mode {value} is not supported by {self.stage_name}.{self.service_name}") - if not isinstance(value, str) and type(value) not in self.supported_modes['calc_mode']: - raise ValueError(f"calc_mode {type(value)} is not supported by {self.stage_name}.{self.service_name}") + check_representation(value, self.supported_reps, 'calc_mode', f"{self.stage_name}.{self.service_name}") self._calc_mode = value + self.setup() @property def apply_mode(self): @@ -275,10 +275,7 @@ def apply_mode(self): @apply_mode.setter def apply_mode(self, value): - if isinstance(value, str) and value not in self.supported_modes['apply_mode']: - raise ValueError(f"apply_mode {value} is not supported by {self.stage_name}.{self.service_name}") - if not isinstance(value, str) and type(value) not in self.supported_modes['apply_mode']: - raise ValueError(f"apply_mode {type(value)} is not supported by {self.stage_name}.{self.service_name}") + check_representation(value, self.supported_reps, 'apply_mode', f"{self.stage_name}.{self.service_name}") self._apply_mode = value def _check_exp_keys_in_data(self, error_on_missing=False): diff --git a/pisa/stages/utils/kde.py b/pisa/stages/utils/kde.py index be4c365ae..6f6b6805d 100644 --- a/pisa/stages/utils/kde.py +++ b/pisa/stages/utils/kde.py @@ -85,25 +85,25 @@ def __init__( if self.bootstrap: self.stashed_errors = None + supported_reps = { + 'calc_mode': ['events'], + 'apply_mode': [MultiDimBinning], + } + # init base class super().__init__( expected_params=(), expected_container_keys=(), + supported_reps=supported_reps, **std_kargs, ) - assert self.calc_mode == "events" self.regularized_apply_mode = None def setup_function(self): - assert isinstance( - self.apply_mode, MultiDimBinning - ), f"KDE stage needs a binning as `apply_mode`, but is {self.apply_mode}" - # For dimensions that are logarithmic, we add a linear binning in # the logarithm (but only if this feature is enabled) - if not self.linearize_log_dims: self.regularized_apply_mode = self.apply_mode return From e7ef03d1a869178340b12bf531b71c889e50f991 Mon Sep 17 00:00:00 2001 From: T Ehrhardt Date: Sat, 24 Aug 2024 16:46:45 +0200 Subject: [PATCH 20/38] be more clever w.r.t. automatically (re)running stage setup (introduce standalone mode flag and an attribute for the pre-setup data); get hypersurfaces test to work (and ultrasurfaces, but only prelim.); + minor --- pisa/core/pipeline.py | 4 +- pisa/core/stage.py | 50 ++++++++++++++++++++----- pisa/stages/discr_sys/hypersurfaces.py | 51 ++++++++++++++++++++++---- pisa/stages/discr_sys/ultrasurfaces.py | 23 +++++++++++- pisa_tests/test_services.py | 3 ++ 5 files changed, 111 insertions(+), 20 deletions(-) diff --git a/pisa/core/pipeline.py b/pisa/core/pipeline.py index 311e21ee9..5cc1c64e5 100755 --- a/pisa/core/pipeline.py +++ b/pisa/core/pipeline.py @@ -259,7 +259,9 @@ def _init_stages(self): % (stage_name, service_name, settings) ) try: - service = service_cls(**settings, profile=self._profile) + service = service_cls( + **settings, profile=self._profile, in_standalone_mode=False + ) except Exception: logging.error( "Failed to instantiate stage.service %s.%s with settings %s", diff --git a/pisa/core/stage.py b/pisa/core/stage.py index a2bf8d656..90bb5d0d3 100644 --- a/pisa/core/stage.py +++ b/pisa/core/stage.py @@ -45,7 +45,7 @@ class Stage(): expected_params : list of strings List containing required `params` names. - + expected_container_keys: list of strings List containing required container keys. @@ -61,11 +61,11 @@ class Stage(): error_method : None or string (not enforced) An option to define one or more dedicated error calculation methods for the stage transforms or outputs - + supported_reps : dict Dictionary containing the representations allowed for calc_mode and - apply_mode. If nothing is specified, Container.array_representations - plus MultiDimBinning is assumed. Should have keys `calc_mode` and/or + apply_mode. If nothing is specified, Container.array_representations + plus MultiDimBinning is assumed. Should have keys `calc_mode` and/or `apply_mode`, they will be created if not there. calc_mode : pisa.core.binning.MultiDimBinning, str, or None @@ -91,6 +91,7 @@ def __init__( calc_mode=None, apply_mode=None, profile=False, + in_standalone_mode=True, ): # Allow for string inputs, but have to populate into lists for # consistent interfacing to one or multiple of these things @@ -156,23 +157,33 @@ def __init__( supported_reps['apply_mode'] = list(Container.array_representations) + [MultiDimBinning] self.supported_reps = supported_reps - check_representation(calc_mode, supported_reps, 'calc_mode', f"{self.stage_name}.{self.service_name}", allow_None=True) + check_representation( + rep=calc_mode, supported_reps=supported_reps, mode='calc_mode', + stagename=f"{self.stage_name}.{self.service_name}", allow_None=True + ) self._calc_mode = calc_mode - check_representation(apply_mode, supported_reps, 'apply_mode', f"{self.stage_name}.{self.service_name}", allow_None=True) + check_representation( + rep=apply_mode, supported_reps=supported_reps, mode='apply_mode', + stagename=f"{self.stage_name}.{self.service_name}", allow_None=True + ) self._apply_mode = apply_mode - - self.data = data self._error_method = error_method self.param_hash = None + """Also serves as indicator of whether setup has already been called""" self.profile = profile self.setup_times = [] self.calc_times = [] self.apply_times = [] + self.in_standalone_mode = in_standalone_mode + + self._original_data = None + + self.data = data def __repr__(self): return 'Stage "%s"'%(self.__class__.__name__) @@ -266,7 +277,28 @@ def calc_mode(self): def calc_mode(self, value): check_representation(value, self.supported_reps, 'calc_mode', f"{self.stage_name}.{self.service_name}") self._calc_mode = value - self.setup() + if self.in_standalone_mode and self.param_hash is not None: + # Only in standalone mode: repeat setup automatically only if + # setup has already been run; first reset `data` to pre-setup state + # TODO: test this scenario + self.data = deepcopy(self._original_data) + self.setup() + # In non-standalone (i.e., pipeline) mode, the user has to make sure + # they setup the pipeline again + + @property + def data(self): + """data""" + return self._data + + @data.setter + def data(self, value): + # Keep a copy of any possible pre-setup data around whenever + # we are in standalone mode, and update it whenever data + # is updated before any call to setup() + if self.param_hash is None and self.in_standalone_mode: + self._original_data = deepcopy(value) + self._data = value @property def apply_mode(self): diff --git a/pisa/stages/discr_sys/hypersurfaces.py b/pisa/stages/discr_sys/hypersurfaces.py index 419bf2b27..b1f9f2fa9 100644 --- a/pisa/stages/discr_sys/hypersurfaces.py +++ b/pisa/stages/discr_sys/hypersurfaces.py @@ -10,12 +10,13 @@ from __future__ import absolute_import, print_function, division import ast - +from collections.abc import Mapping import numpy as np -from pisa import FTYPE +from pisa import FTYPE, ureg +from pisa.core.binning import OneDimBinning, MultiDimBinning +from pisa.core.param import Param, ParamSet from pisa.core.stage import Stage -from pisa.core.binning import MultiDimBinning from pisa.utils.log import logging import pisa.utils.hypersurface as hs @@ -98,8 +99,13 @@ def __init__( expected_container_keys = [ 'weights', ] - if not self.error_method is None: - expected_container_keys.append('errors') + if 'error_method' in std_kwargs: + if std_kwargs['error_method']: + expected_container_keys.append('errors') + #TODO: When in a pipeline after utils.hist, + # this will cause a warning about missing presence of 'errors' + # because hist adds this key during apply + # -- Initialize base class -- # super().__init__( @@ -107,8 +113,12 @@ def __init__( expected_container_keys=expected_container_keys, **std_kwargs, ) - - self.links = ast.literal_eval(links) + if links is None: + self.links = {} + elif not isinstance(links, Mapping): + self.links = ast.literal_eval(links) + else: + self.links = links self.warning_issued = False # don't warn more than once about empty bins # Handle fluctuation option @@ -235,4 +245,29 @@ def apply_function(self): def init_test(**param_kwargs): """Instantiation example""" - pass + param_set = ParamSet([ + Param(name='opt_eff_overall', value=1.0, **param_kwargs), + Param(name='opt_eff_lateral', value=25, **param_kwargs), + Param(name='opt_eff_headon', value=0.0, **param_kwargs), + Param(name='ice_scattering', value=0.0, **param_kwargs), + Param(name='ice_absorption', value=0.0, **param_kwargs), + ]) + dd_en = OneDimBinning( + 'reco_energy', num_bins=8, is_log=True, + bin_edges=[5.62341325, 7.49894209, 10.0, 13.33521432, 17.7827941, 23.71373706, 31.6227766, 42.16965034, 56.23413252] * ureg.GeV, + tex=r'E_{\rm reco}' + ) + dd_cz = OneDimBinning( + 'reco_coszen', num_bins=8, is_lin=True, domain=[-1,1], tex=r'\cos{\theta}_{\rm reco}' + ) + dd_pid = OneDimBinning('pid', bin_edges=[-0.5, 0.5, 1.5], tex=r'{\rm PID}') + return hypersurfaces( + params=param_set, + fit_results_file='events/IceCube_3y_oscillations/hyperplanes_*.csv.bz2', + error_method='sumw2', + calc_mode=MultiDimBinning([dd_en, dd_cz, dd_pid], name='dragon_datarelease'), + links={ + 'nue_cc+nuebar_cc':['test1_cc', 'test2_nc'], + #TODO: not ideal, because I need to know what test_services fills ContainerSet with + } + ) diff --git a/pisa/stages/discr_sys/ultrasurfaces.py b/pisa/stages/discr_sys/ultrasurfaces.py index 7d0d165c6..1ab886b0e 100644 --- a/pisa/stages/discr_sys/ultrasurfaces.py +++ b/pisa/stages/discr_sys/ultrasurfaces.py @@ -8,12 +8,15 @@ from numba import njit from pisa import FTYPE +from pisa.core.param import Param, ParamSet from pisa.core.stage import Stage from pisa.utils.log import logging from pisa.utils.profiler import profile +from pisa.utils.resources import find_resource __all__ = [ "ultrasurfaces", + "init_test" ] __author__ = "A. Trettin, L. Fischer" @@ -82,7 +85,7 @@ def __init__( assert std_kwargs["calc_mode"] == "events" # Store args - self.fit_results_file = fit_results_file + self.fit_results_file = find_resource(fit_results_file) self.varnames = varnames self.approx_exponential = approx_exponential @@ -289,4 +292,20 @@ def grad_shift_inplace(grads, shift, out): def init_test(**param_kwargs): """Instantiation example""" - pass + param_set = ParamSet([ + Param(name='dom_eff', value=1.0, **param_kwargs), + Param(name='hole_ice_p0', value=0.0, **param_kwargs), + Param(name='hole_ice_p1', value=0.0, **param_kwargs), + Param(name='bulk_ice_abs', value=1.0, **param_kwargs), + Param(name='bulk_ice_scatter', value=1.0, **param_kwargs), + Param(name='bfr_eff', value=0.0, **param_kwargs), + ]) + return ultrasurfaces( + params=param_set, + fit_results_file='fit_settings/oscNext_pisa_genie_flercnn_knn_grads_all.feather', #TODO + nominal_points = { + "dom_eff": 1.0, "hole_ice_p0": 0.101569, "hole_ice_p1": -0.049344, + "bulk_ice_abs": 1.0, "bulk_ice_scatter": 1.0, "bfr_eff": 0.0 + }, + calc_mode = 'events' + ) diff --git a/pisa_tests/test_services.py b/pisa_tests/test_services.py index 3b2bdb8e4..e53ea49b3 100644 --- a/pisa_tests/test_services.py +++ b/pisa_tests/test_services.py @@ -302,6 +302,9 @@ def test_services( # Only try event-by-event mode for now set_service_modes(service, calc_mode='events', apply_mode='events') except Exception as err: + if is_allowed_import_error(err, stage_dot_service, allow_missing): + stage_dot_services_failed_ignored.append(stage_dot_service) + continue logging.error( "Failed to set `calc_mode` and `apply_mode` for " f"{stage_dot_service} with msg:\n %s" % err From 32a935915b8b3d7ea37020e363e2b79e3a353499 Mon Sep 17 00:00:00 2001 From: T Ehrhardt Date: Sun, 25 Aug 2024 00:25:40 +0200 Subject: [PATCH 21/38] revert default value of standalone mode-flag, turn representation check into instance method, execute calc_mode setter code only when change requested, document --- pisa/core/pipeline.py | 4 +- pisa/core/stage.py | 86 ++++++++++++++++++++++--------------- pisa_tests/test_services.py | 2 +- 3 files changed, 53 insertions(+), 39 deletions(-) diff --git a/pisa/core/pipeline.py b/pisa/core/pipeline.py index 5cc1c64e5..311e21ee9 100755 --- a/pisa/core/pipeline.py +++ b/pisa/core/pipeline.py @@ -259,9 +259,7 @@ def _init_stages(self): % (stage_name, service_name, settings) ) try: - service = service_cls( - **settings, profile=self._profile, in_standalone_mode=False - ) + service = service_cls(**settings, profile=self._profile) except Exception: logging.error( "Failed to instantiate stage.service %s.%s with settings %s", diff --git a/pisa/core/stage.py b/pisa/core/stage.py index 90bb5d0d3..46200387c 100644 --- a/pisa/core/stage.py +++ b/pisa/core/stage.py @@ -19,17 +19,10 @@ from pisa.utils.hash import hash_obj -__all__ = ["check_representation", "Stage"] +__all__ = ["Stage"] __author__ = "Philipp Eller, J. Lanfranchi" -def check_representation(rep, supported_reps, mode, stagename, allow_None=False): - if isinstance(rep, str) and rep not in supported_reps[mode]: - raise ValueError(f"{mode} {rep} is not supported by {stagename}") - if not isinstance(rep, str) and type(rep) not in supported_reps[mode] and (rep != None or not allow_None): - raise ValueError(f"{mode} {type(rep)} is not supported by {stagename}") - - class Stage(): """ PISA stage base class. @@ -77,6 +70,11 @@ class Stage(): profile : bool If True, perform timings for the setup, compute, and apply functions. + in_standalone_mode : bool + If True, assume stage is not part of a pipeline. Affects whether + `setup()` can be automatically rerun whenever `calc_mode` is + changed. + """ def __init__( @@ -91,7 +89,7 @@ def __init__( calc_mode=None, apply_mode=None, profile=False, - in_standalone_mode=True, + in_standalone_mode=False, ): # Allow for string inputs, but have to populate into lists for # consistent interfacing to one or multiple of these things @@ -121,6 +119,7 @@ def __init__( container within `data`""" self._source_code_hash = None + """Hash of the source code""" self._attrs_to_hash = set([]) """Attributes of the stage that are to be included in its hash value""" @@ -157,33 +156,31 @@ def __init__( supported_reps['apply_mode'] = list(Container.array_representations) + [MultiDimBinning] self.supported_reps = supported_reps - check_representation( - rep=calc_mode, supported_reps=supported_reps, mode='calc_mode', - stagename=f"{self.stage_name}.{self.service_name}", allow_None=True - ) + self._check_representation(rep=calc_mode, mode='calc_mode', allow_None=True) self._calc_mode = calc_mode - check_representation( - rep=apply_mode, supported_reps=supported_reps, mode='apply_mode', - stagename=f"{self.stage_name}.{self.service_name}", allow_None=True - ) + self._check_representation(rep=apply_mode, mode='apply_mode', allow_None=True) self._apply_mode = apply_mode self._error_method = error_method self.param_hash = None - """Also serves as indicator of whether setup has already been called""" + """Hash of stage params. Also serves as an indicator of whether `setup()` + has already been called.""" self.profile = profile + """Whether to perform timings""" + self.setup_times = [] self.calc_times = [] self.apply_times = [] self.in_standalone_mode = in_standalone_mode - - self._original_data = None + """Whether stage is standalone or part of a pipeline""" self.data = data + """Data based on which stage may make computations and which it may + modify""" def __repr__(self): return 'Stage "%s"'%(self.__class__.__name__) @@ -275,16 +272,20 @@ def calc_mode(self): @calc_mode.setter def calc_mode(self, value): - check_representation(value, self.supported_reps, 'calc_mode', f"{self.stage_name}.{self.service_name}") - self._calc_mode = value - if self.in_standalone_mode and self.param_hash is not None: - # Only in standalone mode: repeat setup automatically only if - # setup has already been run; first reset `data` to pre-setup state - # TODO: test this scenario - self.data = deepcopy(self._original_data) - self.setup() - # In non-standalone (i.e., pipeline) mode, the user has to make sure - # they setup the pipeline again + """Set `calc_mode` after checking the validity of `value`, and, + in standalone mode, rerun `setup()` if has already been executed at + least once.""" + if value != self.calc_mode: + self._check_representation(rep=value, mode='calc_mode') + self._calc_mode = value + if self.in_standalone_mode and self.param_hash is not None: + # Only in standalone mode: repeat setup automatically only if + # setup has already been run; first reset `data` to pre-setup state + # TODO: test this scenario + self.data = deepcopy(self._original_data) + self.setup() + # In non-standalone (i.e., pipeline) mode, the user has to make sure + # they setup the pipeline again @property def data(self): @@ -293,9 +294,9 @@ def data(self): @data.setter def data(self, value): - # Keep a copy of any possible pre-setup data around whenever - # we are in standalone mode, and update it whenever data - # is updated before any call to setup() + """Keep a copy of any possible pre-setup `data` around whenever + we are in standalone mode, and update it whenever `data` + is updated before any call to `setup()`.""" if self.param_hash is None and self.in_standalone_mode: self._original_data = deepcopy(value) self._data = value @@ -307,8 +308,23 @@ def apply_mode(self): @apply_mode.setter def apply_mode(self, value): - check_representation(value, self.supported_reps, 'apply_mode', f"{self.stage_name}.{self.service_name}") - self._apply_mode = value + """Set `apply_mode` after checking the validity of `value`""" + if value != self.apply_mode: + self._check_representation(rep=value, mode='apply_mode') + self._apply_mode = value + + def _check_representation(self, rep, mode, allow_None=False): + if isinstance(rep, str) and rep not in self.supported_reps[mode]: + raise ValueError( + f"{mode} {rep} is not supported by {self.stage_name}" + f".{self.service_name}" + ) + if (not isinstance(rep, str) and type(rep) not in self.supported_reps[mode] + and (rep is not None or not allow_None)): + raise ValueError( + f"{mode} {type(rep)} is not supported by {self.stage_name}" + f".{self.service_name}" + ) def _check_exp_keys_in_data(self, error_on_missing=False): """Make sure that `expected_container_keys` is defined and that diff --git a/pisa_tests/test_services.py b/pisa_tests/test_services.py index e53ea49b3..8283ef1d3 100644 --- a/pisa_tests/test_services.py +++ b/pisa_tests/test_services.py @@ -246,7 +246,7 @@ def test_services( try: # Without a dedicated `init_test` function, we just try to # instantiate the service with std. Stage kwargs - service = getattr(module, service_name)() + service = getattr(module, service_name)(in_standalone_mode=True) except Exception as err: logging.error( f"{stage_dot_service} has no {init_test_name} function " From 5ab4f26fd5af281a9042ed8b2e217e819ec6e101 Mon Sep 17 00:00:00 2001 From: T Ehrhardt Date: Sun, 25 Aug 2024 01:42:48 +0200 Subject: [PATCH 22/38] more flexibility in testing calc and apply modes, implement supported reps. for several services supporting only binnings, make their tests succeed --- pisa/core/stage.py | 5 ++- pisa/stages/data/simple_signal.py | 10 +++-- .../likelihood/generalized_llh_params.py | 29 +++++++++--- pisa/stages/utils/resample.py | 22 +++++++--- pisa/stages/utils/set_variance.py | 11 +++-- pisa_tests/test_services.py | 44 +++++++++++++------ 6 files changed, 89 insertions(+), 32 deletions(-) diff --git a/pisa/core/stage.py b/pisa/core/stage.py index 46200387c..3fd44e276 100644 --- a/pisa/core/stage.py +++ b/pisa/core/stage.py @@ -85,7 +85,7 @@ def __init__( expected_container_keys=None, debug_mode=None, error_method=None, - supported_reps={}, + supported_reps=None, calc_mode=None, apply_mode=None, profile=False, @@ -150,6 +150,9 @@ def __init__( else: self._debug_mode = None + if supported_reps is None: + supported_reps = {} + assert isinstance(supported_reps, Mapping) if not 'calc_mode' in supported_reps: supported_reps['calc_mode'] = list(Container.array_representations) + [MultiDimBinning] if not 'apply_mode' in supported_reps: diff --git a/pisa/stages/data/simple_signal.py b/pisa/stages/data/simple_signal.py index 2d9c1593d..288c0508a 100644 --- a/pisa/stages/data/simple_signal.py +++ b/pisa/stages/data/simple_signal.py @@ -53,12 +53,18 @@ def __init__( # fitted parameters 'mu', - 'sigma') + 'sigma' + ) + + supported_reps = { + 'apply_mode': [MultiDimBinning] + } # init base class super().__init__( expected_params=expected_params, expected_container_keys=(), + supported_reps=supported_reps, **std_kwargs, ) @@ -107,8 +113,6 @@ def setup_function(self): # # Compute the bin indices associated with each event # - if not isinstance(self.apply_mode, MultiDimBinning): - raise ValueError('apply mode must be set to a binning') sig_indices = lookup_indices(sample=[signal_container['stuff']], binning=self.apply_mode) signal_container['bin_indices'] = sig_indices diff --git a/pisa/stages/likelihood/generalized_llh_params.py b/pisa/stages/likelihood/generalized_llh_params.py index 66af1dcc4..8db5a3f20 100644 --- a/pisa/stages/likelihood/generalized_llh_params.py +++ b/pisa/stages/likelihood/generalized_llh_params.py @@ -54,7 +54,7 @@ from pisa.core.stage import Stage from pisa.utils.log import logging -__all__ = ['generalized_llh_params'] +__all__ = ['generalized_llh_params', 'init_test'] PSEUDO_WEIGHT = 0.001 @@ -72,14 +72,29 @@ def __init__(self, **std_kwargs, ): - expected_container_keys = ( + expected_container_keys = [ 'weights', - ) + ] + + supported_reps = { + 'apply_mode' : [MultiDimBinning] + } + + if not 'apply_mode' in std_kwargs: + raise ValueError( + "Service requires specifying binning for `apply_mode` during init!" + ) + assert isinstance(std_kwargs['apply_mode'], MultiDimBinning) + + N_bins = std_kwargs['apply_mode'].tot_num_bins + for index in range(N_bins): + expected_container_keys.append(f'bin_{index}_mask') # init base class super().__init__( expected_params=(), expected_container_keys=expected_container_keys, + supported_reps=supported_reps, **std_kwargs, ) @@ -89,8 +104,6 @@ def setup_function(self): of MC events in each bin of each dataset and compute mean adjustment """ - if not isinstance(self.apply_mode, MultiDimBinning): - raise ValueError('apply mode must be set to a binning') N_bins = self.apply_mode.tot_num_bins self.data.representation = self.apply_mode @@ -241,3 +254,9 @@ def apply_function(self): container.mark_changed('llh_betas') container.mark_changed('old_sum') container.mark_changed('weights') + + +def init_test(**param_kwargs): + """Instantiation example""" + from pisa_tests.test_services import TEST_BINNING + return generalized_llh_params(apply_mode=TEST_BINNING) diff --git a/pisa/stages/utils/resample.py b/pisa/stages/utils/resample.py index 720fd77c4..b1ecccd8c 100644 --- a/pisa/stages/utils/resample.py +++ b/pisa/stages/utils/resample.py @@ -57,17 +57,28 @@ def __init__( if scale_errors: expected_container_keys.append('errors') + # This stage only makes sense when going binned to binned. + supported_reps = { + 'calc_mode': [MultiDimBinning], + 'apply_mode': [MultiDimBinning] + } + # init base class super().__init__( expected_params=(), expected_container_keys=expected_container_keys, + supported_reps=supported_reps, **std_kwargs, ) - # This stage only makes sense when going binned to binned. - assert isinstance(self.apply_mode, MultiDimBinning), "stage only produces binned output" - assert isinstance(self.calc_mode, MultiDimBinning), "stage only produces binned output" - + if not self.apply_mode: + raise ValueError( + "Service requires specifying binning for `apply_mode` during init!" + ) + if not self.calc_mode: + raise ValueError( + "Service requires specifying binning for `calc_mode` during init!" + ) self.scale_errors = scale_errors # The following tests whether `apply_mode` is a strict up-sample @@ -177,7 +188,8 @@ def apply(self): def init_test(**param_kwargs): """Initialisation example""" - return resample() #FIXME + from pisa_tests.test_services import TEST_BINNING + return resample(calc_mode=TEST_BINNING, apply_mode=TEST_BINNING) def test_resample(): diff --git a/pisa/stages/utils/set_variance.py b/pisa/stages/utils/set_variance.py index c46b396d3..1ee71ac37 100644 --- a/pisa/stages/utils/set_variance.py +++ b/pisa/stages/utils/set_variance.py @@ -31,16 +31,19 @@ def __init__( **std_kwargs, ): + supported_reps = { + 'calc_mode': [MultiDimBinning], + 'apply_mode': [MultiDimBinning] + } + # init base class super().__init__( expected_params=(), expected_container_keys=(), + supported_reps=supported_reps, **std_kwargs, ) - assert isinstance(self.calc_mode, MultiDimBinning) - assert isinstance(self.apply_mode, MultiDimBinning) - self.variance_scale = variance_scale self.variance_floor = variance_floor assert self.variance_scale is not None @@ -104,4 +107,4 @@ def set_constant_gufunc(val, out): def init_test(**param_kwargs): """Instantiation example""" - return set_variance(expected_total_mc=100) #FIXME + return set_variance(expected_total_mc=100) diff --git a/pisa_tests/test_services.py b/pisa_tests/test_services.py index 8283ef1d3..b333cc09f 100644 --- a/pisa_tests/test_services.py +++ b/pisa_tests/test_services.py @@ -17,7 +17,7 @@ from os import walk from os.path import isfile, join, relpath -from numpy import linspace +import numpy as np from pisa import CTYPE, FTYPE, ITYPE, ureg from pisa.core.binning import OneDimBinning, MultiDimBinning @@ -40,7 +40,6 @@ "find_services_in_file", "get_stage_dot_service_from_module_pypath", "add_test_inputs", - "set_service_modes", "is_allowed_import_error" ] @@ -143,21 +142,18 @@ def add_test_inputs(service, empty=False): elif k == 'nu_flux': container1[k] = random_state.random((10, 2)).astype(dtype=FTYPE) container2[k] = random_state.random((10, 2)).astype(dtype=FTYPE) + elif k.endswith('mask'): + container1[k] = np.ones(10, dtype=ITYPE) + container2[k] = np.zeros(10, dtype=ITYPE) else: - container1[k] = linspace(0.1, 1, 10, dtype=FTYPE) - container2[k] = linspace(0.1, 1, 10, dtype=FTYPE) + container1[k] = np.linspace(0.1, 1, 10, dtype=FTYPE) + container2[k] = np.linspace(0.1, 1, 10, dtype=FTYPE) service.data = ContainerSet('data', [container1, container2]) else: logging.debug("Creating empty test inputs...") service.data = ContainerSet('data') -def set_service_modes(service, calc_mode, apply_mode): - """Set `calc_mode` and `apply_mode` for the `Stage` instance `service`""" - service.calc_mode = calc_mode - service.apply_mode = apply_mode - - def run_service_test(service): """Try to set up and run the `Stage` instance `service`""" service.setup() @@ -297,21 +293,41 @@ def test_services( continue #if service.data is not None: # we should never be in this state here - if service.calc_mode is None and service.apply_mode is None: #TODO + if service.calc_mode is None: try: - # Only try event-by-event mode for now - set_service_modes(service, calc_mode='events', apply_mode='events') + service.calc_mode = 'events' + except ValueError: + service.calc_mode = TEST_BINNING + except ImportError as err: + if is_allowed_import_error(err, stage_dot_service, allow_missing): + stage_dot_services_failed_ignored.append(stage_dot_service) + continue except Exception as err: + logging.error( + "Failed to set `calc_mode` for " + f"{stage_dot_service} with msg:\n %s" % err + ) + stage_dot_services_failed.append(stage_dot_service) + continue + + if service.apply_mode is None: + try: + service.apply_mode = 'events' + except ValueError: + service.apply_mode = TEST_BINNING + except ImportError as err: if is_allowed_import_error(err, stage_dot_service, allow_missing): stage_dot_services_failed_ignored.append(stage_dot_service) continue + except Exception as err: logging.error( - "Failed to set `calc_mode` and `apply_mode` for " + "Failed to set `apply_mode` for " f"{stage_dot_service} with msg:\n %s" % err ) stage_dot_services_failed.append(stage_dot_service) continue + try: run_service_test(service) logging.info(f"{stage_dot_service} passed the test.") From 8ca11da9c7a53110e17560721abb34fe1d21a9d8 Mon Sep 17 00:00:00 2001 From: T Ehrhardt Date: Mon, 26 Aug 2024 15:00:10 +0200 Subject: [PATCH 23/38] delineate service testing script's output and add to workflow; remove setup-time warning about missing container keys for now --- .github/workflows/pythonpackage.yml | 3 ++ pisa/core/stage.py | 6 +-- pisa_tests/test_services.py | 64 ++++++++++++++++++----------- 3 files changed, 45 insertions(+), 28 deletions(-) diff --git a/.github/workflows/pythonpackage.yml b/.github/workflows/pythonpackage.yml index 849ea9b5e..b248d8c3e 100644 --- a/.github/workflows/pythonpackage.yml +++ b/.github/workflows/pythonpackage.yml @@ -38,6 +38,9 @@ jobs: run: | pip install pytest PISA_FTYPE=fp32 PISA_TARGET=cpu MPLBACKEND=agg ./pisa_tests/test_example_pipelines.py -v + - name: Test PISA services + run: | + PISA_FTYPE=fp32 PISA_TARGET=cpu MPLBACKEND=agg ./pisa_tests/test_services.py -v - name: Test PISA imports and unit tests, double precision run: | pip install pytest diff --git a/pisa/core/stage.py b/pisa/core/stage.py index 3fd44e276..80f6e12ca 100644 --- a/pisa/core/stage.py +++ b/pisa/core/stage.py @@ -363,9 +363,9 @@ def _check_exp_keys_in_data(self, error_on_missing=False): err_str += " but containers are missing keys: %s" % ", ".join(sorted(missing)) if error_on_missing: raise ValueError(err_str) - # Could be confusing until we have made setup-time check foolproof - logging.warn(err_str) - + # TODO: warning could be confusing until we have made setup-time + # check foolproof + #logging.warn(err_str) return @property diff --git a/pisa_tests/test_services.py b/pisa_tests/test_services.py index b333cc09f..17c031c20 100644 --- a/pisa_tests/test_services.py +++ b/pisa_tests/test_services.py @@ -71,11 +71,13 @@ ]) AUX_DATA_KEYS = ['nubar', 'flav'] -# TODO: define hopeless cases? define services whose tests may fail? -# optional modules from unit tests? -# Add in . format SKIP_SERVICES = ( ) +"""If no other way, add hopeless cases in . format""" + +PFX = "[S] " +"""Prefix each line output by this script to clearly delineate output from this +script vs. output from test functions being run""" def find_services(path): @@ -150,7 +152,7 @@ def add_test_inputs(service, empty=False): container2[k] = np.linspace(0.1, 1, 10, dtype=FTYPE) service.data = ContainerSet('data', [container1, container2]) else: - logging.debug("Creating empty test inputs...") + logging.debug(PFX + "Creating empty test inputs...") service.data = ContainerSet('data') @@ -168,7 +170,7 @@ def is_allowed_import_error(err, module_pypath, allow_missing=OPTIONAL_MODULES): ): err_name = err.name # pylint: disable=no-member logging.warning( - f"module {err_name} failed to import while importing " + PFX + f"module {err_name} failed to import while importing " f"{module_pypath}, but ok to ignore" ) return True @@ -211,10 +213,13 @@ def test_services( ntries += 1 # check whether we should skip testing this service for some reason if stage_dot_service in skip_services: - logging.warning(f"{stage_dot_service} will be ignored in service test.") + logging.warning( + PFX + f"{stage_dot_service} requested to be ignored in" + " service test." + ) continue - logging.debug(f"Starting test for service {stage_dot_service}...") + logging.debug(PFX + f"Starting test for service {stage_dot_service}...") # if service module import successful, try to initialise the service try: @@ -227,7 +232,7 @@ def test_services( stage_dot_services_failed.append(stage_dot_service) set_verbosity(verbosity) - msg = f"<< FAILURE IMPORTING : {module_pypath} >>" + msg = PFX + f"<< FAILURE IMPORTING : {module_pypath} >>" logging.error("=" * len(msg)) logging.error(msg) logging.error("=" * len(msg)) @@ -245,7 +250,7 @@ def test_services( service = getattr(module, service_name)(in_standalone_mode=True) except Exception as err: logging.error( - f"{stage_dot_service} has no {init_test_name} function " + PFX + f"{stage_dot_service} has no {init_test_name} function " "and could not be instantiated with standard kwargs only.\n" "msg: %s" % err ) @@ -258,7 +263,7 @@ def test_services( service = getattr(module, init_test_name)(**param_kwargs) except Exception as err: logging.error( - f"{stage_dot_service} has an {init_test_name} function " + PFX + f"{stage_dot_service} has an {init_test_name} function " "which failed to instantiate the service with msg:\n %s." % err ) stage_dot_services_failed.append(stage_dot_service) @@ -269,8 +274,8 @@ def test_services( # actually return anything useful service_type = type(service) logging.error( - f"Did not get an initialised `Stage` instance for {stage_dot_service} " - f"but {service_type}!" + PFX + f"Did not get an initialised `Stage` instance for " + f"{stage_dot_service} but {service_type}!" ) stage_dot_services_failed.append(stage_dot_service) continue @@ -286,8 +291,8 @@ def test_services( ) except Exception as err: logging.error( - f"Failed to assign test inputs for {stage_dot_service} with msg:\n %s" - % err + PFX + f"Failed to assign test inputs for " + f"{stage_dot_service} with msg:\n {err}" ) stage_dot_services_failed.append(stage_dot_service) continue @@ -304,8 +309,8 @@ def test_services( continue except Exception as err: logging.error( - "Failed to set `calc_mode` for " - f"{stage_dot_service} with msg:\n %s" % err + PFX + "Failed to set `calc_mode` for " + f"{stage_dot_service} with msg:\n {err}" ) stage_dot_services_failed.append(stage_dot_service) continue @@ -321,8 +326,8 @@ def test_services( continue except Exception as err: logging.error( - "Failed to set `apply_mode` for " - f"{stage_dot_service} with msg:\n %s" % err + PFX + "Failed to set `apply_mode` for " + f"{stage_dot_service} with msg:\n {err}" ) stage_dot_services_failed.append(stage_dot_service) continue @@ -330,24 +335,33 @@ def test_services( try: run_service_test(service) - logging.info(f"{stage_dot_service} passed the test.") + logging.info(PFX + f"{stage_dot_service} passed the test.") nsuccesses += 1 except Exception as err: if is_allowed_import_error(err, stage_dot_service, allow_missing): stage_dot_services_failed_ignored.append(stage_dot_service) continue - logging.error(f"{stage_dot_service} failed to setup or run with msg:\n %s." % err) + logging.error( + PFX + f"{stage_dot_service} failed to setup or run " + f"with msg:\n {err}." + ) stage_dot_services_failed.append(stage_dot_service) continue - logging.info("%d out of %d tested services passed the test." % (nsuccesses, ntries)) + logging.info( + PFX + f"{nsuccesses} out of {ntries} tested services passed the test." + ) nfail = ntries - nsuccesses nfail_ignored = len(stage_dot_services_failed_ignored) - logging.info("%d/%d failures are fine (have been ignored)." % (nfail_ignored, nfail)) + logging.info( + PFX + f"{nfail_ignored} out of {nfail} failures have been ignored." + ) nfail_remain = nfail - nfail_ignored if nfail_remain > 0: - logging.error("%d failures still need to be addressed:\n" % nfail_remain + - ", ".join(stage_dot_services_failed)) + logging.error( + PFX + f"{nfail_remain} failures still need to be addressed:\n" + + ", ".join(stage_dot_services_failed) + ) def parse_args(description=__doc__): @@ -367,7 +381,7 @@ def main(): kwargs = vars(args) kwargs["verbosity"] = kwargs.pop("v") test_services(**kwargs) - logging.info('Services testing done.') + logging.info(PFX + 'Services testing done.') if __name__ == "__main__": From f95df799e330df2f60e95d1dc2d2359122136c49 Mon Sep 17 00:00:00 2001 From: T Ehrhardt Date: Mon, 26 Aug 2024 17:38:02 +0200 Subject: [PATCH 24/38] on-the fly generation of scale_file for utils.adhoc_sys --- pisa/stages/utils/adhoc_sys.py | 35 ++++++++++++++++++++++++++++------ 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/pisa/stages/utils/adhoc_sys.py b/pisa/stages/utils/adhoc_sys.py index a2023845e..819913d6f 100644 --- a/pisa/stages/utils/adhoc_sys.py +++ b/pisa/stages/utils/adhoc_sys.py @@ -47,15 +47,21 @@ def __init__( ): expected_params = () - - expected_container_keys = ( - 'weights', - ) + + expected_container_keys = [ + 'weights', variable_name + ] + + supported_reps = { + 'calc_mode': 'events', + 'apply_mode': 'events' + } # init base class super().__init__( expected_params=expected_params, expected_container_keys=expected_container_keys, + supported_reps=supported_reps, **std_kwargs, ) @@ -86,8 +92,25 @@ def apply_function(self): def init_test(**param_kwargs): """Instantiation example""" - #FIXME: create temporary scale file on the fly? + import os + from pisa import CACHE_DIR + from pisa.core.binning import OneDimBinning + from pisa.utils.fileio import to_file + from pisa.utils.random_numbers import get_random_state + + # create temporary scale file on the fly + var = 'reco_length' + bin_edges = [0, 0.5, 1.0] + var_binning = MultiDimBinning( + name='adhoc_sys_test_binning', + dimensions=[OneDimBinning(name=var, bin_edges=bin_edges, is_lin=True)] + ) + scales = get_random_state(0).random(len(bin_edges)-1).astype(dtype=FTYPE) + scaling_dict = {var: {'binning': var_binning, 'scales': scales}} + scale_fpath = os.path.join(CACHE_DIR, 'test_scale_file.json') + to_file(scaling_dict, scale_fpath) + return adhoc_sys( - variable_name='annoying_sys', scale_file='.json', + variable_name=var, scale_file=scale_fpath, calc_mode='events', apply_mode='events' ) From 01d6c7f5da6455f75004e2a49122eb294beec128 Mon Sep 17 00:00:00 2001 From: T Ehrhardt Date: Mon, 26 Aug 2024 18:45:09 +0200 Subject: [PATCH 25/38] get tests to pass for flux.barr_simple and data.simple_signal --- pisa/core/bin_indexing.py | 2 +- pisa/stages/data/simple_signal.py | 23 ++++++++++++++++------- pisa/stages/utils/adhoc_sys.py | 2 +- pisa_tests/test_services.py | 2 +- 4 files changed, 19 insertions(+), 10 deletions(-) diff --git a/pisa/core/bin_indexing.py b/pisa/core/bin_indexing.py index d4f23b00a..371447b6f 100644 --- a/pisa/core/bin_indexing.py +++ b/pisa/core/bin_indexing.py @@ -132,7 +132,7 @@ def lookup_indices(sample, binning): if len(sample) != binning.num_dims: raise ValueError( f"`binning` has {binning.num_dims} dimension(s), but `sample`" - f"contains {len(sample)} arrays (so represents {len(sample)}" + f" contains {len(sample)} arrays (so represents {len(sample)}" f" dimensions)" ) diff --git a/pisa/stages/data/simple_signal.py b/pisa/stages/data/simple_signal.py index 288c0508a..3c70da590 100644 --- a/pisa/stages/data/simple_signal.py +++ b/pisa/stages/data/simple_signal.py @@ -99,9 +99,10 @@ def setup_function(self): signal_container = Container('signal') signal_container.representation = 'events' # Populate the signal physics quantity over a uniform range - signal_initial = np.random.uniform(low=self.params.bkg_min.value.m, - high=self.params.bkg_max.value.m, - size=self.nsig) + signal_initial = np.random.uniform( + low=self.params.bkg_min.value.m, high=self.params.bkg_max.value.m, + size=self.nsig + ) # guys, seriouslsy....?! "stuff"?? signal_container['stuff'] = signal_initial @@ -219,14 +220,22 @@ def apply_function(self): def init_test(**param_kwargs): """Initialisation example""" + from pisa.core.binning import OneDimBinning + bkg_min, bkg_max = 50., 100. param_set = ParamSet([ Param(name='n_events_data', value=5512, **param_kwargs), Param(name='stats_factor', value=1.0, **param_kwargs), Param(name='signal_fraction', value=0.05, **param_kwargs), - Param(name='bkg_min', value=50., **param_kwargs), - Param(name='bkg_max', value=100., **param_kwargs), + Param(name='bkg_min', value=bkg_min, **param_kwargs), + Param(name='bkg_max', value=bkg_max, **param_kwargs), Param(name='mu', value=75., **param_kwargs), Param(name='sigma', value=8.5, **param_kwargs), ]) - - return simple_signal(params=param_set) + test_binning = MultiDimBinning( + name='simple_signal_test_binning', + dimensions=[OneDimBinning( + name='stuff', bin_edges=[bkg_min, bkg_max], + is_lin=True) + ] + ) + return simple_signal(params=param_set, apply_mode=test_binning) diff --git a/pisa/stages/utils/adhoc_sys.py b/pisa/stages/utils/adhoc_sys.py index 819913d6f..996254d50 100644 --- a/pisa/stages/utils/adhoc_sys.py +++ b/pisa/stages/utils/adhoc_sys.py @@ -108,7 +108,7 @@ def init_test(**param_kwargs): scales = get_random_state(0).random(len(bin_edges)-1).astype(dtype=FTYPE) scaling_dict = {var: {'binning': var_binning, 'scales': scales}} scale_fpath = os.path.join(CACHE_DIR, 'test_scale_file.json') - to_file(scaling_dict, scale_fpath) + to_file(scaling_dict, scale_fpath, warn=False) return adhoc_sys( variable_name=var, scale_file=scale_fpath, diff --git a/pisa_tests/test_services.py b/pisa_tests/test_services.py index 17c031c20..5c8b2b7fd 100644 --- a/pisa_tests/test_services.py +++ b/pisa_tests/test_services.py @@ -141,7 +141,7 @@ def add_test_inputs(service, empty=False): if k in AUX_DATA_KEYS: container1.set_aux_data(k, ITYPE(1)) container2.set_aux_data(k, ITYPE(1)) - elif k == 'nu_flux': + elif k in ['nu_flux', 'nu_flux_nominal', 'nubar_flux_nominal']: container1[k] = random_state.random((10, 2)).astype(dtype=FTYPE) container2[k] = random_state.random((10, 2)).astype(dtype=FTYPE) elif k.endswith('mask'): From a37b279cf27b1af66d859480f771da3c459b5c97 Mon Sep 17 00:00:00 2001 From: T Ehrhardt Date: Mon, 26 Aug 2024 19:15:30 +0200 Subject: [PATCH 26/38] prepare for special treatment as required e.g. by osc.external but skip for now; raise exception after completion of service tests with >= 1 failure --- pisa_tests/test_services.py | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/pisa_tests/test_services.py b/pisa_tests/test_services.py index 5c8b2b7fd..b2212e669 100644 --- a/pisa_tests/test_services.py +++ b/pisa_tests/test_services.py @@ -18,6 +18,7 @@ from os.path import isfile, join, relpath import numpy as np +import sys from pisa import CTYPE, FTYPE, ITYPE, ureg from pisa.core.binning import OneDimBinning, MultiDimBinning @@ -40,7 +41,8 @@ "find_services_in_file", "get_stage_dot_service_from_module_pypath", "add_test_inputs", - "is_allowed_import_error" + "is_allowed_import_error", + "set_service_attributes" ] __author__ = "T. Ehrhardt, J. Weldert" @@ -72,6 +74,7 @@ AUX_DATA_KEYS = ['nubar', 'flav'] SKIP_SERVICES = ( + 'osc.external', ) """If no other way, add hopeless cases in . format""" @@ -156,6 +159,17 @@ def add_test_inputs(service, empty=False): service.data = ContainerSet('data') +def set_service_attributes(service, stage_dot_service): + """For services requiring special treatment before `setup()` or `run()`""" + if stage_dot_service == 'osc.external': + # TODO: `osc_prob` callable and `external_params` required by callable have to + # be set after init, where call signature is + # self.osc_prob(energies, distances, self.external_params, is_anti, densities, densities_neutron_weighted)... + #service.osc_prob = .... + #service.external_params = ... + pass + + def run_service_test(service): """Try to set up and run the `Stage` instance `service`""" service.setup() @@ -210,7 +224,6 @@ def test_services( module_pypath = f"{parent_pypath}.{module_name}" stage_dot_service = get_stage_dot_service_from_module_pypath(module_pypath) - ntries += 1 # check whether we should skip testing this service for some reason if stage_dot_service in skip_services: logging.warning( @@ -220,6 +233,7 @@ def test_services( continue logging.debug(PFX + f"Starting test for service {stage_dot_service}...") + ntries += 1 # if service module import successful, try to initialise the service try: @@ -332,6 +346,15 @@ def test_services( stage_dot_services_failed.append(stage_dot_service) continue + try: + set_service_attributes(service, stage_dot_service) + except Exception as err: + logging.error( + PFX + "Failed to set attributes for " + f"{stage_dot_service} with msg:\n {err}" + ) + stage_dot_services_failed.append(stage_dot_service) + continue try: run_service_test(service) @@ -358,9 +381,11 @@ def test_services( ) nfail_remain = nfail - nfail_ignored if nfail_remain > 0: - logging.error( + sys.stdout.flush() + sys.stderr.write("\n\n\n") + raise Exception( PFX + f"{nfail_remain} failures still need to be addressed:\n" + - ", ".join(stage_dot_services_failed) + ", ".join(stage_dot_services_failed) + "\n\n\n" ) From 6015551ec42f879c251146de445147dce9a5e6fb Mon Sep 17 00:00:00 2001 From: T Ehrhardt Date: Mon, 26 Aug 2024 23:48:33 +0200 Subject: [PATCH 27/38] let discr_sys.ultrasurfaces init example also use toy input file --- pisa/stages/discr_sys/ultrasurfaces.py | 49 ++++++++++++++++++-------- 1 file changed, 35 insertions(+), 14 deletions(-) diff --git a/pisa/stages/discr_sys/ultrasurfaces.py b/pisa/stages/discr_sys/ultrasurfaces.py index 1ab886b0e..c2d7a2c6c 100644 --- a/pisa/stages/discr_sys/ultrasurfaces.py +++ b/pisa/stages/discr_sys/ultrasurfaces.py @@ -114,10 +114,15 @@ def __init__( f"Support range is missing for parameter {pname}" ) + expected_container_keys = varnames + ['weights'] + # 'true_energy' is hard-coded to get sample size + if not 'true_energy' in expected_container_keys: + expected_container_keys.append('true_energy') + # -- Initialize base class -- # super().__init__( expected_params=param_names, - expected_container_keys=varnames+["weights"], + expected_container_keys=expected_container_keys, **std_kwargs, ) @@ -292,20 +297,36 @@ def grad_shift_inplace(grads, shift, out): def init_test(**param_kwargs): """Instantiation example""" + import os + import pandas as pd + from pisa import CACHE_DIR + from pisa.utils.random_numbers import get_random_state + + p1, p2 = 'opt_eff_overall', 'ice_scattering' param_set = ParamSet([ - Param(name='dom_eff', value=1.0, **param_kwargs), - Param(name='hole_ice_p0', value=0.0, **param_kwargs), - Param(name='hole_ice_p1', value=0.0, **param_kwargs), - Param(name='bulk_ice_abs', value=1.0, **param_kwargs), - Param(name='bulk_ice_scatter', value=1.0, **param_kwargs), - Param(name='bfr_eff', value=0.0, **param_kwargs), + Param(name=p1, value=1.0, **param_kwargs), + Param(name=p2, value=0.0, **param_kwargs) ]) + # We cannot just use `value` attribute here (service unable to deal with pint quantity) + nominal_points = { + p1: param_set[p1].value.m_as('dimensionless'), + p2: param_set[p2].value.m_as('dimensionless') + } + + # create a test file containing 100 gradients on the fly + N = 100 + random_state = get_random_state(0) + varnames = ['inelasticity', 'reco_energy'] + df = {var: random_state.random(N).astype(dtype=FTYPE) for var in varnames} + df.update({f'grad_{p}': np.multiply(random_state.random(N), 2).astype(dtype=FTYPE) for p in param_set.names}) + # also add an interaction term + df[f'grad__{p1}__{p2}'] = np.multiply(random_state.random(N), 2).astype(dtype=FTYPE) + + df = pd.DataFrame.from_dict(data=df, dtype=FTYPE) + fpath = os.path.join(CACHE_DIR, 'test_us_file.feather') + df.to_feather(fpath) + return ultrasurfaces( - params=param_set, - fit_results_file='fit_settings/oscNext_pisa_genie_flercnn_knn_grads_all.feather', #TODO - nominal_points = { - "dom_eff": 1.0, "hole_ice_p0": 0.101569, "hole_ice_p1": -0.049344, - "bulk_ice_abs": 1.0, "bulk_ice_scatter": 1.0, "bfr_eff": 0.0 - }, - calc_mode = 'events' + params=param_set, fit_results_file=fpath, varnames=varnames, + nominal_points=nominal_points, calc_mode='events' ) From 6597050cf54ce7a1c01add9de10d5a452f1ee2ba Mon Sep 17 00:00:00 2001 From: T Ehrhardt Date: Tue, 27 Aug 2024 00:23:41 +0200 Subject: [PATCH 28/38] test with toy input file for data.meows_loader and rename output_names for data.toy_event_generator for correct inference of flav --- pisa/stages/data/meows_loader.py | 36 +++++++++++++++++++++++-- pisa/stages/data/toy_event_generator.py | 2 +- 2 files changed, 35 insertions(+), 3 deletions(-) diff --git a/pisa/stages/data/meows_loader.py b/pisa/stages/data/meows_loader.py index eecd71c07..c26b66dae 100644 --- a/pisa/stages/data/meows_loader.py +++ b/pisa/stages/data/meows_loader.py @@ -10,6 +10,7 @@ from pisa import FTYPE from pisa.core.stage import Stage from pisa.core.container import Container +from pisa.utils.log import logging from pisa.utils.resources import find_resource @@ -36,7 +37,7 @@ def setup_function(self): We load the first data in specifically to setup the containers, and afterwards go through appending to the end of those arrays """ - print("Loading data...", end="") + logging.debug("Loading MEOWS data...") st = time() raw_data = h5.File(find_resource(self.events_file), "r") @@ -89,7 +90,7 @@ def setup_function(self): self.data.add_container(container) ed = time() - print(" done! Took {} minutes".format((ed - st) / 60)) + logging.debug("Done! Took {} minutes".format((ed - st) / 60)) raw_data.close() def apply_function(self): @@ -99,3 +100,34 @@ def apply_function(self): for container in self.data: container["weights"] = np.copy(container["initial_weights"]) container["astro_weights"] = np.copy(container["initial_weights"]) + + +def init_test(**param_kwargs): + """Instantiation example""" + import os + from pisa import CACHE_DIR + from pisa.utils.fileio import to_file + from pisa.utils.random_numbers import get_random_state + + expected_events_keys = [ + 'oneweight', 'TotalColumnDepth', 'FinalStateX', 'FinalStateY', + 'NuEnergy', 'NuZenith', 'MuExEnergy', 'MuExZenith', 'pid', 'PrimaryType' + ] + # note: n_files seems to be completely irrelevant to the service + n_files = 2024 + random_state = get_random_state(n_files) + n_evts = 48 + raw_data = {} + for k in expected_events_keys: + if k == 'PrimaryType': + # make valid PDG nu type/flavour codes + raw_data[k] = [-12, 14, 12, 16, -14, -16] * 8 + else: + raw_data[k] = random_state.random(n_evts).astype(FTYPE) + + fpath = os.path.join(CACHE_DIR, 'meows_loader_test_file.hdf5') + to_file(raw_data, fpath, warn=False) + + return meows_loader( + events_file=fpath, n_files=n_files, output_names=['nue', 'nutau_bar'] + ) diff --git a/pisa/stages/data/toy_event_generator.py b/pisa/stages/data/toy_event_generator.py index c89169b05..3e19e1503 100644 --- a/pisa/stages/data/toy_event_generator.py +++ b/pisa/stages/data/toy_event_generator.py @@ -112,4 +112,4 @@ def init_test(**param_kwargs): Param(name='random', value=1, **param_kwargs), Param(name='seed', value=666, **param_kwargs), ]) - return toy_event_generator(output_names=['nu_me', 'nu_you'], params=param_set) + return toy_event_generator(output_names=['numu', 'nue_bar'], params=param_set) From 105dc24f6d752a9b65263eff28666a4a1ee36f2a Mon Sep 17 00:00:00 2001 From: Jan Weldert Date: Tue, 27 Aug 2024 04:02:15 -0500 Subject: [PATCH 29/38] Remove freedom data loader (should use standard data loader in the future) --- pisa/stages/data/freedom_hdf5_loader.py | 230 ------------------------ 1 file changed, 230 deletions(-) delete mode 100644 pisa/stages/data/freedom_hdf5_loader.py diff --git a/pisa/stages/data/freedom_hdf5_loader.py b/pisa/stages/data/freedom_hdf5_loader.py deleted file mode 100644 index b8cb5611c..000000000 --- a/pisa/stages/data/freedom_hdf5_loader.py +++ /dev/null @@ -1,230 +0,0 @@ -""" -A Stage to load data from a FreeDOM hdf5 file (generated using the I3HDFWriter) -""" - -from __future__ import absolute_import, print_function, division - -import numpy as np -import tables - -from pisa import FTYPE -from pisa.core.stage import Stage -from pisa.utils.resources import find_resource -from pisa.core.container import Container -from pisa.utils.format import split - -X_36 = 46.29 -Y_36 = -34.88 - -FREEDOM_PARNAMES = [ - "x", - "y", - "z", - "time", - "azimuth", - "zenith", - "cascade_energy", - "track_energy", -] - - -class freedom_hdf5_loader(Stage): # pylint: disable=invalid-name - """ - FreeDOM hdf5 file loader - - Parameters - ---------- - events_file : hdf5 file path - files_per_flavor : list - number of files for each nu flavor - reco : str - which reco to use - keys : list - which keys to unpack - cuts : dict - cuts to apply when loading the data - track_E_cut : float - track energy cut for PID. - If not set, L7_PIDClassifier_ProbTrack will be used - **kwargs - Passed to Stage - - """ - - def __init__( - self, - events_file, - files_per_flavor, - output_names, - reco, - keys, - cuts, - track_E_cut=None, - **std_kwargs, - ): - - # instantiation args that should not change - self.events_file = find_resource(events_file) - - # init base class - super().__init__( - expected_params=(), - expected_container_keys=(), - **std_kwargs, - ) - - self.output_names = output_names - self.reco = reco - self.files_per_flavor = split(files_per_flavor) - self.track_E_cut = track_E_cut - self.keys = split(keys) - self.cuts = eval(cuts) - - def setup_function(self): - - data = self.load_hdf5_file(self.events_file) - data = self.calc_rho36(data) - if any(key.startswith("unc_est") for key in self.cuts): - data = self.calc_uncertainties(data) - data = self.apply_cuts(data, self.cuts) - - for name in self.output_names: - container = Container(name) - - nubar = -1 if "bar" in name else 1 - if "e" in name: - flav = 0 - n_files = int(self.files_per_flavor[0]) - if "mu" in name: - flav = 1 - n_files = int(self.files_per_flavor[1]) - if "tau" in name: - flav = 2 - n_files = int(self.files_per_flavor[2]) - - pdg = nubar * (12 + 2 * flav) - - mask = data["pdg_id"] == pdg - if "cc" in name: - mask = np.logical_and(mask, data["interaction_type"] == 1) - else: - mask = np.logical_and(mask, data["interaction_type"] == 2) - - events = {key: value[mask] for key, value in data.items()} - weight_dict = events["I3MCWeightDict"] - primary = events["MCInIcePrimary"] - - container["true_energy"] = primary["energy"].astype(FTYPE) - container["true_coszen"] = np.cos(primary["zenith"]).astype(FTYPE) - container["pdg_code"] = primary["pdg_encoding"].astype(FTYPE) - container["interaction"] = weight_dict["InteractionType"].astype(FTYPE) - - CM2_TO_M2 = 1e-4 - derived_weight = ( - CM2_TO_M2 - * weight_dict["OneWeight"] - / n_files - / weight_dict["gen_ratio"] - / weight_dict["NEvents"] - ) - container["weighted_aeff"] = derived_weight.astype(FTYPE) - - reco = self.reco - reco_total_energy = ( - events[f"{reco}_cascade_energy"] + events[f"{reco}_track_energy"] - ) - container["reco_energy"] = reco_total_energy.astype(FTYPE) - container["reco_coszen"] = np.cos(events[f"{reco}_zenith"]).astype(FTYPE) - container["reco_z"] = events[f"{reco}_z"].astype(FTYPE) - container["reco_rho"] = events["rho_36"].astype(FTYPE) - - if self.track_E_cut is None: - container["pid"] = events["L7_PIDClassifier_ProbTrack"].astype(FTYPE) - else: - pid = events[f"{reco}_track_energy"] > float(self.track_E_cut) - container["pid"] = pid.astype(FTYPE) - - container["weights"] = np.ones(container.size, dtype=FTYPE) - container["initial_weights"] = np.ones(container.size, dtype=FTYPE) - - container.set_aux_data("nubar", nubar) - container.set_aux_data("flav", flav) - - self.data.add_container(container) - - if len(self.data.names) == 0: - raise ValueError( - "No containers created during data loading for some reason." - ) - - def apply_function(self): - for container in self.data: - container["weights"] = np.copy(container["initial_weights"]) - - def calc_rho36(self, data): - reco_x = data[f"{self.reco}_x"] - reco_y = data[f"{self.reco}_y"] - - data["rho_36"] = np.sqrt((reco_x - X_36) ** 2 + (reco_y - Y_36) ** 2) - - return data - - def calc_uncertainties(self, data, epsilon=1e-15): - """add uncertainty estimates to data; return modified data""" - for par in FREEDOM_PARNAMES: - p2s = np.where(data[f"env_p2_{par}"] > 0, data[f"env_p2_{par}"], epsilon) - data[f"unc_est_{par}"] = 1 / np.sqrt(2 * p2s) - - return data - - def apply_cuts(self, data, cuts): - """apply cuts in place""" - cut_mask = np.array([True], dtype=bool) - for cut_key, [cut_low, cut_high] in cuts.items(): - if "{reco}" in cut_key: - cut_key = cut_key.replace("{reco}", self.reco) - - if cut_low is not None: - cut_mask = cut_mask & (data[cut_key] > cut_low) - if cut_high is not None: - cut_mask = cut_mask & (data[cut_key] < cut_high) - - for key, val in data.items(): - data[key] = val[cut_mask] - - return data - - def load_hdf5_file(self, f_name): - with tables.File(f_name) as file: - return self.unpack_file_data(file) - - def unpack_file_data(self, file): - root = file.root - - var_dict = {} - for node in root: - try: - name = node.name.replace("FreeDOM_test_", "").replace("_params", "") - name = name.replace("best_fit", "freedom") - except tables.NoSuchNodeError: - continue - - if not name in self.keys and name != self.reco: - continue - - freedom_hdf5_loader.fill_variable_dict(name, node, var_dict) - - return var_dict - - @staticmethod - def fill_variable_dict(name, node, var_dict): - if "vector_index" in node.colnames: - for par, parname in zip( - node.cols.item[:].reshape((-1, len(FREEDOM_PARNAMES))).T, - FREEDOM_PARNAMES, - ): - var_dict[f"{name}_{parname}"] = par - elif "value" in node.colnames: - var_dict[name] = node.cols.value[:] - else: - var_dict[name] = node.read() From 86834995e13eaffb9b42d45e14b543e9d26f46d8 Mon Sep 17 00:00:00 2001 From: T Ehrhardt Date: Tue, 27 Aug 2024 14:47:39 +0200 Subject: [PATCH 30/38] adapt file modes for test scripts and make service testing successfully complete for now --- pisa_tests/test_covariance.py | 0 pisa_tests/test_kde_stage.py | 0 pisa_tests/test_services.py | 2 ++ 3 files changed, 2 insertions(+) mode change 100644 => 100755 pisa_tests/test_covariance.py mode change 100644 => 100755 pisa_tests/test_kde_stage.py mode change 100644 => 100755 pisa_tests/test_services.py diff --git a/pisa_tests/test_covariance.py b/pisa_tests/test_covariance.py old mode 100644 new mode 100755 diff --git a/pisa_tests/test_kde_stage.py b/pisa_tests/test_kde_stage.py old mode 100644 new mode 100755 diff --git a/pisa_tests/test_services.py b/pisa_tests/test_services.py old mode 100644 new mode 100755 index b2212e669..07ee11c99 --- a/pisa_tests/test_services.py +++ b/pisa_tests/test_services.py @@ -75,6 +75,8 @@ SKIP_SERVICES = ( 'osc.external', + 'data.sqlite_loader', + 'data.freedom_hdf5_loader' ) """If no other way, add hopeless cases in . format""" From 22814cc6bfe2cd8d1c7302985e8c6ec67b1eebd3 Mon Sep 17 00:00:00 2001 From: Jan Weldert Date: Tue, 27 Aug 2024 08:13:15 -0500 Subject: [PATCH 31/38] Test for sqlite_loader --- pisa/core/container.py | 2 +- pisa/stages/data/sqlite_loader.py | 30 ++++++++++++++++++++++++++++++ pisa_tests/test_services.py | 2 -- 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/pisa/core/container.py b/pisa/core/container.py index d1750529b..295000d52 100644 --- a/pisa/core/container.py +++ b/pisa/core/container.py @@ -407,7 +407,7 @@ def __setitem__(self, key, data): if self.is_map: if key in self.representation.names: - raise Exception('Cannot add variable {key}, as it is a binning dimension') + raise Exception(f'Cannot add variable {key}, as it is a binning dimension') self.__add_data(key, data) if not key in self.tranlation_modes.keys(): diff --git a/pisa/stages/data/sqlite_loader.py b/pisa/stages/data/sqlite_loader.py index 301051243..f164abf3a 100644 --- a/pisa/stages/data/sqlite_loader.py +++ b/pisa/stages/data/sqlite_loader.py @@ -141,3 +141,33 @@ def setup_function(self): def apply_function(self): for container in self.data: container['weights'] = np.copy(container['initial_weights']) + + +def init_test(**param_kwargs): + """Instantiation example""" + import os + from pisa import CACHE_DIR + from pisa.utils.random_numbers import get_random_state + + fpath = os.path.join(CACHE_DIR, 'sqlite_loader_test_file') + + if not os.path.isfile(fpath): + random_state = get_random_state(42) + n_evts = 10 + true_data, reco_data = [], [] + for i in range(n_evts): + event = list(random_state.random(4).astype(float)) + event += [i, n_evts, 1, 14, 1, 0] + true_data.append(tuple(event)) + event = list(random_state.random(3).astype(float)) + event += [i] + reco_data.append(tuple(event)) + + with sqlite3.connect(fpath) as con: + cur = con.cursor() + cur.execute("CREATE TABLE truth(energy, zenith, OneWeight, gen_ratio, event_no, NEvents, interaction_type, pid, RunID, SubrunID)") + cur.executemany("INSERT INTO truth VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", true_data) + cur.execute("CREATE TABLE reconstruction(energy_pred, zenith_pred, track_pred, event_no)") + cur.executemany("INSERT INTO reconstruction VALUES(?, ?, ?, ?)", reco_data) + + return sqlite_loader(database=fpath, output_names=['numu_cc']) diff --git a/pisa_tests/test_services.py b/pisa_tests/test_services.py index 07ee11c99..b2212e669 100755 --- a/pisa_tests/test_services.py +++ b/pisa_tests/test_services.py @@ -75,8 +75,6 @@ SKIP_SERVICES = ( 'osc.external', - 'data.sqlite_loader', - 'data.freedom_hdf5_loader' ) """If no other way, add hopeless cases in . format""" From a50eef22e37a86c316ce8e4aba133a934ef3e0a9 Mon Sep 17 00:00:00 2001 From: Jan Weldert Date: Tue, 27 Aug 2024 08:54:52 -0500 Subject: [PATCH 32/38] Ignore flux.airs --- pisa_tests/test_services.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pisa_tests/test_services.py b/pisa_tests/test_services.py index b2212e669..1e99601bb 100755 --- a/pisa_tests/test_services.py +++ b/pisa_tests/test_services.py @@ -74,7 +74,7 @@ AUX_DATA_KEYS = ['nubar', 'flav'] SKIP_SERVICES = ( - 'osc.external', + 'osc.external', 'flux.airs' ) """If no other way, add hopeless cases in . format""" From 17ba2fadc981e6ba1119c2406889ef7b846507fa Mon Sep 17 00:00:00 2001 From: T Ehrhardt Date: Tue, 27 Aug 2024 16:40:36 +0200 Subject: [PATCH 33/38] more informative test logging output and switch to fp64 in workflow --- .github/workflows/pythonpackage.yml | 4 ++-- pisa_tests/test_services.py | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/pythonpackage.yml b/.github/workflows/pythonpackage.yml index b248d8c3e..d623fc4a8 100644 --- a/.github/workflows/pythonpackage.yml +++ b/.github/workflows/pythonpackage.yml @@ -38,9 +38,9 @@ jobs: run: | pip install pytest PISA_FTYPE=fp32 PISA_TARGET=cpu MPLBACKEND=agg ./pisa_tests/test_example_pipelines.py -v - - name: Test PISA services + - name: Test PISA services, double precision run: | - PISA_FTYPE=fp32 PISA_TARGET=cpu MPLBACKEND=agg ./pisa_tests/test_services.py -v + PISA_FTYPE=fp64 PISA_TARGET=cpu MPLBACKEND=agg ./pisa_tests/test_services.py -v - name: Test PISA imports and unit tests, double precision run: | pip install pytest diff --git a/pisa_tests/test_services.py b/pisa_tests/test_services.py index 1e99601bb..dec37c793 100755 --- a/pisa_tests/test_services.py +++ b/pisa_tests/test_services.py @@ -232,7 +232,7 @@ def test_services( ) continue - logging.debug(PFX + f"Starting test for service {stage_dot_service}...") + logging.info(PFX + f"Starting test for service {stage_dot_service}...") ntries += 1 # if service module import successful, try to initialise the service @@ -313,6 +313,7 @@ def test_services( #if service.data is not None: # we should never be in this state here if service.calc_mode is None: + logging.debug(PFX + "Setting calc_mode ...") try: service.calc_mode = 'events' except ValueError: @@ -330,6 +331,7 @@ def test_services( continue if service.apply_mode is None: + logging.debug(PFX + "Setting apply_mode ...") try: service.apply_mode = 'events' except ValueError: @@ -357,6 +359,7 @@ def test_services( continue try: + logging.debug(PFX + "Setting up and running service...") run_service_test(service) logging.info(PFX + f"{stage_dot_service} passed the test.") nsuccesses += 1 From 76263cb1c6bc547e7926aeffde5c708e6dc4cf0b Mon Sep 17 00:00:00 2001 From: Jan Weldert <32642322+JanWeldert@users.noreply.github.com> Date: Wed, 28 Aug 2024 13:58:23 +0200 Subject: [PATCH 34/38] Add pisa resources path to workflow --- .github/workflows/pythonpackage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pythonpackage.yml b/.github/workflows/pythonpackage.yml index d623fc4a8..7bbc687a1 100644 --- a/.github/workflows/pythonpackage.yml +++ b/.github/workflows/pythonpackage.yml @@ -40,7 +40,7 @@ jobs: PISA_FTYPE=fp32 PISA_TARGET=cpu MPLBACKEND=agg ./pisa_tests/test_example_pipelines.py -v - name: Test PISA services, double precision run: | - PISA_FTYPE=fp64 PISA_TARGET=cpu MPLBACKEND=agg ./pisa_tests/test_services.py -v + PISA_FTYPE=fp64 PISA_TARGET=cpu PISA_RESOURCES=./pisa_examples/resources MPLBACKEND=agg ./pisa_tests/test_services.py -v - name: Test PISA imports and unit tests, double precision run: | pip install pytest From 60330d87850d73b2d114dd7f1840d7dee68c0605 Mon Sep 17 00:00:00 2001 From: JanWeldert Date: Thu, 29 Aug 2024 07:01:52 -0500 Subject: [PATCH 35/38] Add MCEq example and HG dummy --- pisa/stages/flux/hillasg.py | 40 ++++++++++++++++-- pisa/stages/flux/mceq_barr.py | 2 +- pisa/stages/flux/mceq_barr_red.py | 2 +- ...212_GlobalSplineFitBeta_SIBYLL23C.pckl.bz2 | Bin 0 -> 1364398 bytes ...eFitBeta_SIBYLL23C_reduced_scheme.pckl.bz2 | Bin 0 -> 658829 bytes 5 files changed, 39 insertions(+), 5 deletions(-) create mode 100644 pisa_examples/resources/flux/MCEq_flux_gradient_splines_2212_GlobalSplineFitBeta_SIBYLL23C.pckl.bz2 create mode 100644 pisa_examples/resources/flux/MCEq_flux_gradient_splines_2212_GlobalSplineFitBeta_SIBYLL23C_reduced_scheme.pckl.bz2 diff --git a/pisa/stages/flux/hillasg.py b/pisa/stages/flux/hillasg.py index 79733434b..696a98bef 100644 --- a/pisa/stages/flux/hillasg.py +++ b/pisa/stages/flux/hillasg.py @@ -134,9 +134,43 @@ def compute_function(self): def init_test(**param_kwargs): """Instantiation example""" + import os + from pisa import CACHE_DIR + + fpath = os.path.join(CACHE_DIR, 'dummy_hillas_test_flux-aa.d') + if not os.path.isfile(fpath): + def form(val:float)->str: + return '%1.4E'%abs(val) + + costh_nodes = np.linspace(-1,1,20) + energy_nodes = np.logspace(-1.05, 10.95, 121) + + hundred_e = np.linspace(np.log10(min(energy_nodes)), np.log10(max(energy_nodes)), 100) + hundred_ct = np.linspace(-1, 1, 101)[::-1] + + outfile = open(fpath, 'wt', encoding='utf-8', buffering=1) + for _i_theta in range(len(hundred_ct)): + i_theta = len(hundred_ct) - _i_theta - 1 + if i_theta==0: + continue + + sp1 = " " if hundred_ct[i_theta]>=0 else "" + sp2 = " " if hundred_ct[i_theta-1]>=0 else "" + outfile.write("average flux in [cosZ ={}{:.2f} -- {}{:.2f}, phi_Az = 0 -- 360]\n".format(sp1,hundred_ct[i_theta], sp2,hundred_ct[i_theta-1])) + outfile.write(" Enu(GeV) NuMu NuMubar NuE NuEbar NuTau NuTauBar (m^2 sec sr GeV)^-1\n") + + for i_e in range(len(hundred_e)): + outfile.write(" "+form(10**hundred_e[i_e])) + outfile.write(" "+form(np.random.rand())) + outfile.write(" "+form(np.random.rand())) + outfile.write(" "+form(np.random.rand())) + outfile.write(" "+form(np.random.rand())) + outfile.write(" "+form(np.random.rand())) + outfile.write(" "+form(np.random.rand())) + outfile.write("\n") + outfile.close() + param_set = ParamSet([ - Param(name='flux_table', - value='meows_sterile/resources/fluxes/pr_hillas_h3a_SIBYLL23C_AIRS_nominalize-aa.d', - **param_kwargs), + Param(name='flux_table', value=fpath, **param_kwargs), ]) return hillasg(params=param_set) diff --git a/pisa/stages/flux/mceq_barr.py b/pisa/stages/flux/mceq_barr.py index bffc2c00a..ed5bb936b 100644 --- a/pisa/stages/flux/mceq_barr.py +++ b/pisa/stages/flux/mceq_barr.py @@ -565,7 +565,7 @@ def init_test(**param_kwargs): ]) return mceq_barr( - table_file="common/data/flux/v02/MCEq_flux_gradient_splines_2212_GlobalSplineFitBeta_SIBYLL23C.pckl.bz2", + table_file="flux/MCEq_flux_gradient_splines_2212_GlobalSplineFitBeta_SIBYLL23C.pckl.bz2", include_nutau_flux=False, use_honda_nominal_flux=True, params=param_set diff --git a/pisa/stages/flux/mceq_barr_red.py b/pisa/stages/flux/mceq_barr_red.py index 8beca627f..88cbea124 100644 --- a/pisa/stages/flux/mceq_barr_red.py +++ b/pisa/stages/flux/mceq_barr_red.py @@ -507,6 +507,6 @@ def init_test(**param_kwargs): ]) return mceq_barr_red( - table_file="common/data/flux/v01/MCEq_flux_gradient_splines_2212_GlobalSplineFitBeta_SIBYLL23C_reduced_scheme.pckl.bz2", + table_file="flux/MCEq_flux_gradient_splines_2212_GlobalSplineFitBeta_SIBYLL23C_reduced_scheme.pckl.bz2", params=param_set ) diff --git a/pisa_examples/resources/flux/MCEq_flux_gradient_splines_2212_GlobalSplineFitBeta_SIBYLL23C.pckl.bz2 b/pisa_examples/resources/flux/MCEq_flux_gradient_splines_2212_GlobalSplineFitBeta_SIBYLL23C.pckl.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..e5ffbbfb1b97747867801734bde0c88873cd1ce7 GIT binary patch literal 1364398 zcmagFcTiK$7dIR*LX;LPNRz547K)&NNargSilTymR28I#9wA%>q*p7wNfm)aqyz|w zAPCZ%5FjKGks6ZF!Uclx=Jz}^@67wxyED1joZbEGx#yfc<<5{VHpg_8 ztq*iI?f?I_*%AtbYlWQ0bPQ?Up|C=cC~PR3j3fxyrY;lh!6x9Ss8k(1Q#o`DSR}KU&4haN1c^zoC*kQh#(Z#dQ$LEN z%^+%1*aH61U8C7qh*FgcqV@JZ&p~F&*lgd8!`@5&w_nD1YnsxjcDv06 zgBGW1MoNHXS}FY`xt^%WreUNugQ+2&S!`Mv5rYaN6J~G&&6ml|>+@I=jfv}+WOU`N zqi7XE?{Fnk)L=Fp?oew{?45h*0hRb(*E(ajzV+*Z@+U{8Gt@Ir(Q zAW=vxqQ<_0%mTE-u)k8Pv%3j>lprvN!qllGlBXzi9A~Y|MZyj99ROp)lzxQ3@iAD+I0Ds98b#>9F##f# zpM?h-Fg3bCc621}s)gou-X!pfkjn^VQ+-0ojk63SQ73PM0aCtFL_lDU-0v8aOeO_V z)$BaS`UcW;dj|-3Isk@-U>tq68fUNuUsBC?sYRnPa!)OqxzTJJnk|jMjk3Lt;q)HiZu2 z3CFhA=60qQ8?Esm-q9+u%Q1-fj;&@5;>R&2Dyrl8IMG>m<#E4!Mb|4v%~;B_6t4m1Sr zG=ER2@5`o>6Q53b5WwJsn*Wa5Bzj-vdGyJv%DaB3Fs;X>&c>$h?lXGnWKc<95Ki0E z*@n;Q^}UCd?@f^A-nAu_L$_T$?7Tl!C3-xzvZ<`6p$nCDI7euw%tzXLij75FVKeRf zcj!PUiot%av`rtyV^Ro&eg=UFgv3};=EFMsw^=|Qo1;4xwhfy{U;|T(&3S+p#Pp-O z(3zFi6b7Oiy^)W!$0LaZEbb|QrG{!T?f!z)Ai^Sxip0}NSVDRehzTH(Vq zs{2fOs%HmSQ$FwGz{WEjIn(mULj`!G9mk*>K|E`wd3}KQZSal;mUF%FD8C-j?LJ~p#or7*fv&tAb?|27;R)Ii^Tx4wWoG;0RSXZ0lb7Gl0<)i zZ)Dn=pqT`w&iY)w4;ApkR^jkq+r;GZ1fC_y!eUWfM8Xyetlnhfu%E#m-H>_f=2fr) z1>lJFv^>^u9*KIM4$zVb6!y|0jFB_skb=7&fCM&$v`B8FA}RJ9^QMCXI7%}n9fc$_joE|-R$j+fbTlGQ$9iIDZBuuL z?nAF<<3Tj85gY)>elr@48`^|k5RF9pI3MY&yGLfj~92GX-uBSP$NkpU@j({gqGMn>J z_i{jrIh$FxPDS!kdfD!Hf<3^+tiUggv7hJ5kYf`|yiw=@&v||XVFlo$(KkUyfEhYQ zyBJ7dXkhVIt*?lZBVpDZRr|j^AWWo+R1nEOXq30VB7y!hE(OKzK2R5Cm z%Wl@u9Yb$2*hnd78qqC?cK$mW9NY)mflM!6s%Co5EmMG=RM2OZ5B@ zjHg-1<_ea`L%`{f-0U!(I21q))1CmRC;(B}M5eGA1Ol1*v}pm0t3;1+qM8PQ(MVtu znD{v?^1wU}M*y*Ss`&?7fEn}yOX{Qdk(qe#V?D2@bRZjN;<7WT&5;ft-sh1WzQ+wY zfX9E>3wVQs_1m4GO6)9~IG4%nqc4t}kM+*|<=vT6Qlp zbRExZoS_8+i*~5=8X5+H%3EU)*vxVyfw5{5s*!@DY_bt~U?viMl|ZSb;mAZJnK(g0 z_3@5jslnSgI@KQCMb-Jf%Mvs-C z^5jcplW^pD9I2k%xK4GT2(lUd;0aD%L19`njOv6%&?+sOsrCdMN8{R5smR*`j=4^3>LC-3dNu!QzG+ynE!(c!r+LGh+HZH z!Aqp%`;Pm}a0H(_$=2i?a9t*zvJH~zvyQPTGv2e=q2%-w=7UrM6YEFy;>39h=^BXf z3~Jix9I^-jku?-{N)v4W8ANEK*E2v8EeBw*nE*8uBrw=BV-}t|sXAaEa?G6tQji2f za5IR!J%>W2VyVb}Aow#lVb?{~Y-S_S0Q0#jiit)L0GbLN^wz>NWe{IjUU(Xfgw)Zw zO-045<3>*-N1E9H2Zux)*8!WE?nE3K-!z|(L=SL0S!hQUYZj#X;)2=rAg*nsFBSt3 zmdIcln;G_eTz7&Lyn_aEnRu#I8-wlAG&wpvjcR5y7(qyqxV-Wd&iif%R0ld9`Oy~ji|weuY+8`ynd(>MhK0Aw(bT~-y$ zwmw7jK|UmKQWG52J_rLeuj?>T^&HDHL7@rcf!sMZo=8QY8H7zdg+Ai&-()WM84rL| z6rGM6U!^b}fT)gsHU>*!J3OvhZ%iMqoy1pZ8Kz8@ay(;wT>5jM)$@@`Q4A*+<6216rA4 zas>)MBQ;s|wUm-eI#xdk)O;<+xX!B3bL(ttsvaoz-Mim=N%$RNXxPE}!2k;9u<5ckIHrBk9>nWxVDU5}9y=1qM$NGa6^s*( z!EBDVVpG7-om%W58%IOW;_0DZbyC&OH zy+P6t3s1e$Pj97T$CkHOi8`eG5Kp89ntgSGg#|WuK+oXxt3K-t7N|`bFb6nRM&4w4 z3E@}zW4}CSxPO#DeW}OW2!n3$eei!8~^n@ zGk}heWMfO{1nd<`MHO*s-Vq=ZF+NKqVAI0UJI6AmoWYu>`r9EK*y)~&pf@3np^!hq7iROu~CpP*Jz#=?=V&agEF%$xc_L)9G z$wv_YN*DkTNQ@As>i~g157c)JIDpsy2hOIBm;6y%Q*Z1zzAhx@K&50 z$a;Jo0MWI5llZXg3Dk@|iIXo8CcT+R3;c&g+&qbsa)yDqn9R`i+`BY8GM$OiAXMP{ ziI?cKx;|XU8WY7~1yK*)Y)oNOuq5V1G68{_&s*mhUA^u=6$6<4TFc_3J}FFJV%5bV z3dc8+P_#P4f5=Hr2n+!!!HmsKwgyKwlbaxpQ*L`Q019b_vBk!s+%f3{$~J2h**}8q z$1_F<>;Q}sIUu=$W4Rv&P-*CSG_bk-dA$-#a$qy&Rr|;Qj^>R7ycysZB9Q{(tZ~(x z(`~=J&cw5Hse$WZ43s@Ul_;ZtAwG=_1O%RiF5?tBV3QBn><_S*SR@`T#%Rwx`wge{~>|$>h;IFfa8nph2)B;xz2>OjIHUn_GcFksIBa8a>Pk8ihiA z#Kd}z5W1OpNHV8xq@pqz6dsPVW5!Y)Cg%W-pC(L)tc^@j!*;NKgn7c|d?!`o!~mKV z!a3gWm`GsL(Fa9gD}7;MP=uX)m*bpLhts&7RUi-rh;W3eimBP9Cqp0K8Oaum9C6L! zDl&r%6^L_2|4%z>$f>FR-=?6DVG21^#HH>Y{(ot(L2<}4=%l*10Axh}GVHt1 zAM#9{^ONh6lbL|}lNN(F@2<zQ)9 zJW)Mh#-k8^>Dh>BQbd8e07RUtK!5`$4iSK4K*jHJX2~18<}iO0?xL#BpQ);jpv|M!{!ftb8AI36Y}3_pNuPErwd zj=7%UUiv0R)JfC1V8oyl;>4jv`HH%i9xw<`R!I>xc8=v&Y2%9J=gDwBz!lyGn=TmP ziV-fDE|ug^VuU$_HhxH(xhTJiqhWt0_ts?LaG=Z8142BeAeH4)As1m>l)#7WaY?Q+ZgM8Bd0LOa?y(B1Y7`n4c%h zJ&K=KfR~?_LlV$@rXs38BA`AU%KXPb%z9alHz9TV`JfhA8ZDyM8ZGsTr#gXtf z$W>=i=kPXuUJl2;zco!b9CDRr`AVvYa+Pt#a76Y$>6nZAiuw*Zw{h6uiV=4gzkWbK zMb!O(sXT`%0ZnIdXU=_O35xo*aF7H=1tnG5V!291om5(`i#iK)z*Sl}^1jg~py@l! zK|H__Qp}rT=a>xlw(wz1ejd0wM;XEe98huhf;LDAvz$jb{I{mBB&3DIdK;__#u3pl&jE-!=k_?-``^WkquA0c=Tf)|XIp;t=~7YW z7T>lInQ)o7I0%f}xTQq_s=&ho<>!W~sKDSYEwVDE2Ou&x`S~G`3?43SQ7+Rj2ku1h zOKct*<5I?*=Q{v7{M-m;JFfjL7=D<>Jr*~OvJ_1cyc>O2RND&zc~#pw>o&igv6uvb zom=KUBK*@y|E-k>*CDy(miK%I00p(DBd=ohv=J|K!+cjnH_$ccg3P$t)5}rmy&$B&xM(~`(RbC-Dtzxo%UPNJtm8iKkS}``o3ZP z->uLygCfnP`xAube=wMN;qP5lNx8DfDs(cW7%Fn^7T?ov;#Cm3Xw#=r4;U zE~2BB_*FOL!NMy_pZ4E!pHvrHTQ5m*dq<2z1Z=sU!rSg`$*?_LU{5Zto0R{{>PcJT zgmGeMI6Qd{)c)lZowoNmi%oBY5f+Wr%wZKq#hP9A8E@sIUgR{V9_MwnuZq20IX%>_ zdOr%G7uYIcM``2Up}+5U+m-H+tQk*o)8JYW-mTc(?K)nY_!2$wY*_ZteKzAyi|5{e z&uwXsiy!`pN}V_R&-mt{p8iW~mE`)S6Kas2&JZzHbKlkF5Q~R4%0hSfG^NjYp??H^ ztZ!7~Rcq7+E4m+l{dW%xe0Z;1lb@P2lU3ADzMrqVvVEhm{Ab&bBEr_hfRiM+(j_a! zfW>m};bhm5|1|zN<~l6Vzet(6R@n@jZ}OS?e>v8)(ENVjR`u;Cvzf6Dk7uw)&m2jZ z{+=ECz|Il(->vc=7hK=9x7~H~Ef(g98wuDu{=zU1OO?I;FrjYEO>L3oPBVo>M3AiV z{yDHKUpzSzvZi{Gn{_k7fhnEzb`4v{hfmIYv^l%s*nIv|#4(!%K{_#3=OiS;ba=<4 zZ;7%LoKx_3`HJaq!cvK+zW%#k?Q`5x76&xa9%L^(xb4J!q9ja8ZqNG5b*0a86VcI5 zC9BGI3$fJbo#;Yg__U&$_a_22L}mR^g>L`u@|)58$UR5PbN>ANYHNjxi|}R9Fyq+l z2VFN@A3L>8s(e3*GIbFXNaq?p9N0H*eC=50apL~_-wIcCUEf|E73SrAK4};_VBgfK z^NPd8kG@N5K1GkX|3czQ2b+7_EF-0A@y|!c?5yWROwd99nZH%!O;1{^&FP91|3I;L zJhuTuNnL9`puS6vXZ)ii`VGST!tVFhjm~Cmdh=TRSZI-zm0(6Z1q<@WosX7-sf?8IrqY|QLp{iJ8Gxd_9v6W;g>Y-KF{<=89t3$f4s)F>vt=Z^(1of z^%$zsTfyUAP~8VUu}9~bW=Hme z&V5XJOd2f15?yt^bxr=nBzUX`LX1j(RGCqAG;m)&Z?r)ox4(-$$to-*_g&8=c1`B| z-B+x~^wmK}?zfCrVapDFdzM6uEQnU!?rPdui2Ja)lHFpMa^}*|>+f1Go3rPC)hPAP zrmM}jhuj(8@zI-q$8Y$oPAewso2#W+xw3hvY}Wjz#N4i?gl833_J-|qLfEKtCE@{k z{fEp3{y_6GA(YHFR%D#g&S(dNxZ$e8a6n`ifs%PYI}5o z(5IxnNBuK*UQ7IQ|D;%4-7m?V_?$8b+%vXdPjtiA+Y=FPD1QX|w>TqTe~=q`%601U zNo)DD^M}IDxvs)rMYP0@aS1(x-Kq>JzNmehnexfuXm@bz0mf<7r5iBu7e`zIR?6k- zbq}RgIwi5Tj3k0X|F(txd+Ak|s}XuL=L8J{42CuZlTKL+^-zR=%xQFnztVa&M7i{V zloj*s8uZYMOpk*FvbiS_jEi!!BjFKAfwwkFjUJsqiJ(RHO>8jV$0{}{qZ3IB(mys>v|DoV$?;o3)OYoe0zFZ~E99sB%v zKZc81_P$9cMqI94_WS4AbrR9@L$cc1?#xABna#$EB9hDcxEiy>_fqU=Yx`5wI(dr^ko8f*C!a{H#xLVVBdXSV*Gt0#9woD3!5 z#6Cq~{(R&uTBPw6cb{XV#O6JjbuoC(e@w1+$H3Hb=595EMZckFi#YL;KN}FNv+Spq+{`-ck zaqjn$_Q{x*pfr59!e)-*8uTtQCC@C|>`4m=G^Y3JLEuqPW!`|-+N))j#q`L-9nP1e z`e&>zrl_Tc=w;h9US+I$(;-1MyL(cEmS zy24G&oyM!TcFt#^x^X(DbMqtTpLiIGACD(b3560yWMD7PpWJw^yAZ2P(aRSZ`X`+7 zm)h=Z9~I^b)ty1?m!iI!Tzc*?Ul%D#x(%j9jZcAqF)^03-F)EmjU z3TnWE8_p}I{G3OC6FDg}2b-dwWW*`tsEA-+dc0OpMm;#Wt9-!g03q?TU7L&WFiYu1 zoSB1vFh#ibKjH$>z!rI9J2#D3e0|C ztfv-s?s)1OUfN|TA7R9eLm`H@u8L#rd=~eMmft+_;1crdPE=R+b67>5=}3#XZ2rM7 zLh)@<0yh-krl{dM??Q&q|LOVnkZat^6L%I{#sAcseF&ygCh`Pauu{dJPyc-*QG3y7 zW_odOazXj3*)say?8e+cir$}R|DwM4ip=Cqw>h|t$qv8B{d`rmX7;zCQ~6~T9B}4W zh-2Aa=D7dMCl9e=%s9QVz#Amd=eW{vxIxtS%OL^7tiqM@v3@IMQr#)s5Wj!9A0&Ds z;hKzr_JZ+cR_+5qb(tso&$Jrv2U6*b?Hlm#z6+~bM0CQ)BWr{XU-*wshDPVQs_lH^ zi#+akw1n?L7ym%7e1Qos^r6=Du3W#u#eKZa4*Ftg^khKa7n!#PS{fL3%kNMF{%=K6 zt<-b`R1Invnti`2(>kXy)8bw+?>|T=6Ke^H#W>W)sLvmhSy*0rqS5nHOHvqaIGFLn z|JD9i{)%;+PW@>WUdwLLlf6Y=kF0#nD z5dyy)`}+>&(oqrj7C1voWS{MC>%Zp9C!As;>w=r%59h|2>x-tl>W}tM`uspW7F`^^(ijF) zw*O5E(4o3ND7T8Xy>u|=s*~~Z9h}5^MObj(nP)Px0TAwkra5rnNJ%-x4d_O@|6VI3 zVvYusAFG+3LZ0f5&iR-1|0hID~TQD?7nqC>_lH?@#!n_yI>Qe)|Vi!f;EEXFKou=4<9uk4Zg@ zKaJi~T-t?OjGAdER!wV-k(4BvtH`t$qwNuHO*eI(V82?X4~o}w4Qjd7-rEbOlt zOOfqm3xpI`PDzar;(H)C1+Sp1Rr<1+$}RiWNk1{~ zib;}uSKX$m&su)oDUHv!*uRm;_(^|XitCl1ZuF=gT!(T?*G6tY|FmRX&Z0B7lJE-I ztny)^Q@rYl6U*e<|M-p1Ca*+@Hbn3fJWD59^b=n~uPe>RZ_;(?={xr&fR~EACO4k` z8H|Eas_)JQI$DTi!~f2ncCT3&KBwmOBKP*u%DOiR7GnG|CI>!R?0VarS{^ZkT4vBU z8dSN@BGy9oU0*%DD);e6+mM@XO(8VUJD7ZC()_NxCi!yQbMJ&OxV+yJRdHa}l6_dl zq#|py$Qv$S_~VtkWXY|z51(W2BZV)%BdI_1=GGC`XpgyZF6exM+>Z>8aPSehKMb4b z>4<;yyq}g>>9%~e$w$hl#D2qGTH^lSlxMKZtJpWAZs7*U_itYIzjw&B>~vr7yEd|u ze7UuqH@d{aqh1BpwyvGdL}kQAo-4QChT&|LK9~cszhq<uv`nZ;hWU+n5JJ7MdzGp#PP)raP_yG_4kJCNK> zdQV%~ny{eZxK_sp)<_Dc__kGhvp3Y68yyu-%v^RD3B4hkN)H*dt+f=hA&ZZ2Dl2ck(vuLx<`!Dhk7|Q=U|AdwyaO?Se!F|zQ4#+&rBAVBYg_4%8%}$aHM$_ZIhVn_6dbTaDLz*|{BAGe zcK_s%rNWQ%AGtEE5-j(eQ#YtFxlft3X76sPZ(3hazV#?Pmhee#s`X}9x$ zjvrbT67kMRiCHlDW-hk^TlIKU87a0vm?La;|9)dpdLzz*eI0zRTfUL}($Y<+|L2g+ zTiuD$sq6XtZ@vl-3x9*_O9D*thnUab1H9pOum6EG?)aFzS%4 zfMNwdw`eXoc(F;|i|3$E=dq8UKIN+}tiAhV0Wk@B_ckb$`?%`SsD~kLRb4{7?{AF~ ze;huRj|eTDX;vnG-Y$Ok;A(s>a{CiCJjTMoNImJp=SdY}vk$xW#Pi6VOri%96DkgFKGL8aj#QUQje{L`@76;)mWjLH@%;4U+|s4o z30Twp@K<@7UPS%O@R-0JI_X2#Kv1@X$i4EG9)I<}SN;E9j@K%XefsK-KKH?sC2?Qi z=lm)VghBoHZ&mOVnS%Kf>DIv29sY(3Y_Z8Z1~@4lNB((qj@-~oEPnuzEe0;E3yj}>(G5HjhE?QK6fOC=T41-& zIEP0|a2fAkfx%ZExYpbe-uE?{Yj))VmUdtPnnzXVaeK6=yw&GBS(mgZ=X~=bde0oZ z_&YJSIw`KK2B=KB7JN^#b$8KAtMKf0M(!z*h3n$vkKu6Y2jPU`#a4l6$^Pi#Z5J{3 zuwz{}wbS{o9QjWo=oYsFf38R`RQ-imN6Ag=q+a5bBc{-6#!y5DL%L@ z^6*`zFC?0=hp$j84B9(a5h+DiIC1_%bLU2psqm4#8#}enW3l7?-e>mKzMQfmFY5Y9 zuOukAagT;=PNM26evLi$m5pDO{rO)at*^nt4^!=Jd0$qn&!VW$tZM+-{$iaS<7g7V z^<1~k{L#BLVHt zxpnFIV87EnQQD2PZq;um2*zdC<}k9bE#vcwRG$|8S!71kjMHuOQ(J2lbdMm3Y&c7= zcP-CM`@5-n9RDoehrKi4VI!wfm_KR|o~a{j$<1$UAgE+$aSbQQG)#im{|VlYRZBnW zBkUgYu-=ywlONAF(l@+LG5V=6^E{8sA@c=8f>USWVw{=6u~4ZRYDRHS{Qb(aU+KH( zrLhNueG-CAE|=HQUo6Y73B2^LY|he%cEflTlc*D9{-c@yG`b@T7g)`uW5*&HMKnQaL>8ROF-N1BRNFx58c($V8f- zf>*_4YhFMbUe(1I$TgU4X+XkZs%N%l$8Uxkls=p+TX)^sWX%?~D+@z6Ym;r<%1$Lp z*ZnAa7xHv-?tVgB&J@F3issGyS0q_h#`E3(*C0KIEy3` zE5-j?xvn}Za~*X~UZxe{;a1_n-f>MhT;5%7qSs5f;IrRn8{lufqNynp^Mx7}2LOm2 zeq*JBn4w?rfq&j#*uM>4cLcP+rz2j&W!FFSf2{TUs8*YRb*(xlFPu2H42F&)%>!;4 zyh9#2VqeO|t#_xPJ${)*6i(d^g+BArNKQW>{Q6zP_qduk|5n?z%##@j!6!`C6A7!n z@sdKF{*6x}MyHh~6Lbz-xE&T`^15Aq^et2Er{1L@L}-M-#Y4g^uO5?WE`6WP<>%w# zB<<%ksa;>33MZ_;Y>lg!414daDct@SI%rc5iM1=~zb$&AX;591c4v89y&(2joX_6t zEmLtt6OWWmwe5h({J}b#-`qlOXTsu77(iEtjU&Z#XU1|n)Sra7e!O{Aju>`( z>n#Z<_TM4l3z4!+*P4yqS;(uy-T03fUs*!p%jW~X1J<@JoO5eR4;!z^_Np~LwS>xi zd-LlOOp`~oM?YpDUiC22{DB?)tqCJAD_!3p@?*bK`KOY1og8u7)TaCp=5cj@TUCGX z`|CEH0xk&L*?yy)Fgtu}+)n&fkE6S26&s-3IC|x_;B-gx**HHJV}rgws`s-iv#(oO zZg%k+-Qa})+k}`v`uckrZt0yt_0za)f4uri^gHW3dQOh&wlNi#(vUVB{Ek=!VbTeY%lI}n9V;lUbvk9 zA}=$?!$`;MpX^AQJj#2c+U=hJ_I?Ua%XJog`0&?xTyJ@(+a$#Bv`>Juc0XZ{fErvg*h9%Xw1VeB4;v!nUzxliXz&Nu7rgCl*>o zR*xf_ew_CiFyN8Pe&N5mA2MjD>!RW!QBW_DRFmw|xZD5W?K$qth7wR!10Xctjj)p9 zSTym7F(2i#|580U|5ASFjgPRWpNf6_DJSsWF&a-+-_1VS+U1p5`~!>7JJE{V{+l*f zt8HuY)PDHP6iX-FHn=o-veVtYK*s#U%GXG;7P4YRZwe-9Kn9g~f);}U0CfcW;$Zyk(N$4uAV zR$IcMlKAK>pDu~w!DNSKqDSKl35 z{#o8+>GyivBKw<_#z!ln3~5u{CcE7H8NosyT4dOPUtPCR_dON8Kh?G0$`I!M9zR~E zwCwoStA4xJnD4JCv)xG*bmmX0%PxIME@~RcO5ZwH%ALR$H z>$CFne_<(8qUfyN_QxE0EwH)x=&zT8@2Ul*8PkqCn*YnV)YET6Du1|IYP$3US5ZGED`s!9Et>1~5u@*ps`rSTgJ{ zOQzQ?V?syNNK&lKYG9sigk7&l#B1% z2NSg(iznE?B&de})N{V?H?m@C2zG&V9_e&;1w;6tnDluba$aVF0kYb@CHw{~py9AN ziOTbPu_~zkSV!G|{AY?5V5dT}g!vxJEq?1)K|x*>{Sdkjy|$>yn3agoH zZd%+q^+W{cO%3^8=h18cU)2rkZq~LXH>K6zJ}`E~PG6SH+*J9}Zs>C8`&+K-!;E1m zUMX_bV8_c$F|6?Y#0`tMX}2f;RO~arl%Gk~LOk+H^5z?Rqc>ja%XiG%FnswgqzpOS zqAdq2lc~CY%jlBhoZ?zxBN#m~p=QZ?h~av@0#$}j@&g~uF)i<&4ark``L;)&W>uy; zwBCom+TfPnEPtUPZ}a3U>W6pwDk`8LhB2>Xe6I9S!+Q^SQe3Pl^^?hx;H^UDdFfEb zXpI*x;)od64ego(=Z~S2jC)&>N1f#YqN}^70?a_RC+ z&+;F7CGuf^(4(PK^a}z@=f8ae{Z|eA-$O4H4}F=C6O;=1=UDIAIA>oIp#1iq zrHk`{YPSWqkpH+~mE0)xi*Y)P`bvtlQcm5Ui=)pE9y<3s=_C-RpQMzcD9^jEcgmwy zP%I6*!?MhKqck_;)BO^vD)P)h#5L;m&n@{LhrMyaO9ij3)U^3Y`TV=l<%63OhZXFS zx&JwKjy}5cO5)w&HwHD=Kfw^~-VEi%nq#1?I3L6)Hu?cXPC80#r1Kwis;-E}c1_uAV^+L~X@w8F9ft&zz{`{Nc`Bty})T^ErMsXjZ3D?G#@Xx}h zZvH2D->T*iQ!Y<3EeWdru_3pY^Z0I(i~ls{W&IIpVPVu%wh^mdEqW^b?7!)g-yE$f z3yHPp4|PZMn2_kJ1o^Wtum4mgk7@?sAu|Mb^+SQODsc=l4Ig8%$%NBo4{zHQOt>t+s44We6* zr{j`Ro~wIBKn&W4TvSD6oTf4j(D_=ZmC2%~7Vei^TdNi>4dr#{y$ql(Pwd>&2#;Qw z`s1MZlOX&#>4X~Z%n5-#^ zeINHYk#jQRm1$ScDEILdBeNUP>=S=)C|$F{zbiRN&2b2{dYCL&>Jj8RzTUBR@^x44 zNBr{HpAnM}T2=ej8t{fiou;Q_w7Fq!&g<1>?2cU_-oh`rwxbciEA8Z=9?UhhidGdQX?L{y#y0|NDwRX*&J*0OBjJl z_*@fiMVGa5iv)ZeC+Wzk7|g|UIZK7rt$T&Z&-|-UzpRqS-y^1xf91RLL(3X1)m-(L z{9=jaB`r{CGwI*@ot3F^^U4sIX-@eqfkUQy(&{x11^RvPu_d+#`F^G{I{qixK7_USxv1judjiDf!_K?YFYPK!qR^k zV>({AdId4IfYMue?ye6pgVUidx}=H2ZcTq=E6jc_ZB=|*-b(2J3h|^3u%cdXmX-VA z)#ueLm!zJR{lG@`WUR%Z4&kn0EMvMBS2>udp9+kq1%8IPy?Fj|j`L!_*7BN>#&Ej1 za7zzteM#O`_kB;Am~4)T^gN3_C|ivPAt~slxON6+n?>KiqAc|=<5Qnx)0{v5yN+tO z%x9N3`TU(#;qHQBD_^vg!#ZEtoIFa_wP8qFAsCri>iviPI4~#Cw!i9S8bqe+_B`u; zcZs;DjiIWFCD6NXb8mO;yONg3U&3&x?;(S+cLbyJ8 zRK2>bR0LzvU%l-cyQ&p#q$5kwDOBOpO8BZUu)+nq7n#$43VSRr^bTcT@kXRHxbbW5 z&Kg&-KhkJW`<7Gwl(XP*bED4zH}}IDF((3Msh6-?P=99wI5Fo~OT?=zw`han<6`>8 z8mii^O-0aQtCiHkD51zE1hvR)6C;j7sM!!>|Uw(F|kl5(dym?2yoP=7q zUCmvq_!;VN{U39uRbKSwtDJi_K9g{3`}@1#7h93M*Z+2g6gdV<4H`Xyg&xy>o+ErM z;mUrB?$aYes?m|ETH!iYB(4LIqCc*O{)#*u}$P)hV7Ej#~m5(#inb>o1_|=CqaIt8WP*Zl80AH_ka}j!WWn<{oJr}0D z4%C^AW)i(xwk#6kGXo^VhUNIFs<;CEl@BU8NssmG@BUh0%VM}CSVU(AE8M~@9j=)(M6&F%2bpS-Q2k3eLTE~a=5 zCYI&=VKAIx;no}k8;`LQ`-|mb{XaD3tN;_xz@dTzIN-NqXv;#0<~d407mEYtHM}4cQwiR(0Ah zpbFH}jqL`9oOeaqvT5%1BV62)Q{!{JClkiAp8pJgV*jD&r>tk&o5QtS@5W&B4w|HZ z)uK3<7~-2miAqTGK(YSp%>*vq$G+jwJtexvO3zpHw+1o>3K;&+`X-_l%QSp``_z6{ z3T_`f%MT1>udCtWU0*L8;n9AXoCD>*;WR8k)|_60>Y1q7;->p#WZX26R4t34i%mMORO(t{5lXvysKlG_0qB*F6OoPPQga!U_Wkcr!8SdKj}cdd zj>bR*5g8wwT!geDC2I7GdPA;Ybi@P?i@uLpYG&G6$DGpNdYh~=UZX{#JGWA{#gB1b z3hWFu%lIbIt9s<9OVWqltgEhErmj~sM`BL+ekZp{uy|aPq)m2z^sTJN$yR*Qit_Nd zp!Fq&=j1mXvre8DXTJIf4fJZNhYUmv44Ws9DV0BTs3cijIsU?V>tx|B>*(4rbeyEt zI92Qmzt29Qu>DmrtUM;c>dBsQrihi} zm52*(&ZQ$kuKsM3z*qlHN;tA~bW7Sca=y;*<7Cl~p>I?%X*|!6dlHpIK z=yHmQYpu|hyTgjst^D^R(q!cqWRre8KxvkZ4`^RLKmp>TqvdS_tO5=+YJ00N;wW8_ zl0O&Qe8YCDTfYp7MS$!TUpeSi9%52!Z|jVm6!*2(f1foBKA0LSEJpk}w)Uv!I0L>7 z-P85!TabC$4*w>BT(VD*8>uG$+{w;KKNX06)GKB$1Nl#2ck;nGjH3Fm^Ry?%(9 zF}Hv7>k8McB&G%Wi1vNcnM@Va%r_;$np0itM?{az&ZP(g{6`_L9-dSj7Lh+V2v>Rj z;IpPq@OsdMnXiohuG9Ob--19xX4_;@TZ8fOth}RqGf=@FWDChd=hFk<+d0CuGhI}i zlvS^N@Xt!3w8DWsgUA!P($BYjljPofZcysVo6g)JiL;W``SLAXeIHS-`I0b!i)5Ds=538Vd=EUx}&z&G9-8=XJ?O|_UCzWf|66J?OD;wbyy*0 zPpl{AY6?!m;gm_|i$CUzQgy!h=l%T|a&LG;d?tFzm@L;~#OX;bso6q0RR9%Hprz8*3pHQ8t3p;yG6w0mfw8&-Yvh<7ZP6 z{8{gvP1+h$;oUMOx96}m#$WXoT%{y-7-b&_{LT)Z<^R9?CfJPUJ>sR zpLaY;pJ1osUiGWMEL|z1;-bZ>Hq04M$@0cMOQ=CkS<`XHhKIs%?`pMY8`lFbFJo;? z|8@VCRb{kYSD88e8WIr)1L7wNX1>{FzQ6r%D#4W2U6JaK>8xYC(AF3_o_Z%G<~B1( zc>HB-acFj#<)y$)=cC?gN&FAj z3(P#8Lk9!DbizkLm-vwqEpU^e^n0Bp1DS4@XRurIPt7D!&jAIVOpf_UZ)~2L@R8|; zw)r@LVVxIu(Ol{R8qdlSdRAs6je3MXNs6ElgVRu<`Rp|6Ef+{>GysQ>8_IlQiTbT8 zT;AwJU*I6}{UnPoPpfjeW33RiroT%D;$gcFX|<$!t>Oe<*%==vCHVO+#C$QnUkD+B z=CIITfeproeBcOcYp1RjS?JC~dp2C$wu5ZBzT;WRyQTylC0Kf1B2=Ev-*7Z@yJQz# zPo*8R``tjHZ#dx)TnKO}iG9Mloz?-(95T4q+TPBn(kbr^h_#syhYa1`szb9zHbDFCLb3cmp{hg1URK`s` zia|K21Tg-5a3PXm+uWf64LAGWYi4$2%++C%DjfG-5em$~#?9o~X#Zjh%P&sOP@Do1 z4%hLx3&qp|e_u8D=7z7dQSpGM%(3g4+0wEit zoV(}M$zwZWZtkQAg3l<@f*6x4q!;fNzbR_*R74R_gWD~0+mqa_0S)9fqQm7%_q|#k z`vI!=o+q~qz{-A+Ki={G*_m^sIoACNP!K@%KOgDEfPzpA4y$gSj?@W|dENuH3t5%jKlCf-@8Ta;sdeDTF*#>if>! z{1$pml_=fBZ)}OmhzK(1J)`_*_NP*#4o|K!^lCO~wDT8Toy8x9=Sj zsfWz1awCO<`(5o3+7+mlo>W{Axf|8A+&1PQdAjM$5Jf0PJSnzmn@GEqArR2NJ)!e7 z0EF*EL>;&GNM%&LAk+W0p$b?LnnBRu(4u%IsWch** zpoeus99fQ(pQZMxo{j;5eWZe6(5RDw+7}$)iMVd3*k-cHc?H+P_ zkrg)>4omFK(j-KNj}br2p04I}ad*dJnKC2azTvW0G44M30T-WT7rCwF@El$9HabPF zyPuxI;^z7NjwQ>gk&dPac-O*j#C0q6tH6w3A30T=j}iYxt?e%y^BdV7t#GO|1F*`w z7`6frY;dYv=_TM0%b@5M0EM6kEZS8_9GbQWfQFsgR`YHTw=P5bL@z3!M{gG&Ik7E!V`S3t-27}H&8SmmSgqmT63Cw&)&8x4z{D*>%w2RumT5#*GZcUwinsGc`y*t;vFF-La%#3L&LfV z%~hfVP%s`Ak?BCNr~5cz?ldGOKo{Xg!1#Nj3*!{yTZbo!s}#Ucbn zw^i!@OR#%7cniGtV%rByYN-##sYP`kmF~u(VhiHOr~O<31Eru4cx7{}Cy@aSBJ>2( zU=jbPRdI5wY^>MO8!BLqK#1m;f4Av}e^~3+xE|x@w=a zTO305y>D}i`q4Y#YI}R@`>9!$Sb6S<&wkuL3zKkKrRMU`c0mjm6cC}w`1y*qoSD!- zod^=GExj zCV&uh=sgx~e2AOCLyPvYo3f_XqW%DeH>MXVKm;eI(%3jhT{z_i-&9j%<&+{1CON@Z zezp1}fiayY`w^cV=c~mpl=6K_vU6L&K`xw;7~n)2-=iN2Xu$;;0s2GCZERfMn5#%4 z3-%>IA=%v0TgAyXW2JDqhV}8|Gs_ku_!E7`r120szGhPN_`KH+lb$ckeb$>Y)F4YHY!X*y8mfIy^Lu6lz9sgK^J>5%%8K#`T^v_mJb9JVGJErh!I^ zYK>G^E{sVpC;<+cgN7;IJio~8Ul=H3m%n9|`wh0*&Lg%X?dZxhKzFCHoqex^A3cAi zBv?PxUX);rmFeTTS?l*w9g+i08i#&nhsg$!jnX6YS@LT&B7HHOSFgcT-Gs~m5A-+u z=^uMPwd62w#NXrnfJ0Y4qOFh!Ktp?|#96D_b*e>0SlDuW&{tEV zQ|rRLXYV+e(toUR2tA*6OE_$5rk*{*$Ydcgp<~Rv++#je{Rj?v$i)}8w zan0tow$Yigm)Z1IszEem2qDyEPuOyXq5gRiX~7LL-hT?{2r%a3vij==jnWCOf@AqJ zh0e0G_qtxJ{f&>5BT^#`fBxsM_^ddGH!FN@pG5{DI;~5p&1-wkN?+?7s2~Vif(W{o zzVFAn*yJ{YtO!~ETzZmm#+^FYtIyYOr>|d-@SOy5aBQ6+7sy$Ry+YAlextF&hki9gGJ9_9AR&J40w06sTp$qVeR%U)unD9U{aXYgc*m~%UHXonOFwA* z1PFQ^yx$aSpa@mMFI#2X0EHbF0rc4*&O@xTANZUB4V39ydK_CtU=Tc_y|PS&gfWZw zHt88a8&4t35e;{zQxphNf*8AO>qJX{A;X1eb5zP%+bN!#$MzUO1p{`rwtZ)T5Nd>? zkhK91)D6S2Oyo14NbiLQ;GjV`S30vLOlT>)C*0ybdp-90c@SF@+&Vmtyj)3`2zgkx zWO)}l?LB*k-$e7Ggqp8Bi1vtwb7G{ecD&TlxL`xn|daPDhnckM*XwILkXXpPd=LjNc}J@Y6s^{t?(ZM=;)XDE>mjS)oWK5*%< zagB)@P9AH~^P|zEZ_K!%7+*k)eU81}#QcOt%lxodpGzgq!9R)c&4{gPYRz3+^G|b4 zUl80PppfV2_0RYlB!1!^sc=#XfJ5Doa^v5eiAq%|O*ApRxX*~0@T(^!>4<`4>rXS1 zQQ?^+g?HeIFZ^%xO_RRGKp;cV{-7i*kQw-Wa!IMrO*#eAS;+`lG@b2Ee&Hq`3b?QH z)IH7Ioqjy()!|FIITP7*F4*R^DohRCy-58$=iWxU-(T~euN}cSIERpYbBEUS+N5qI z@i~aHAR+$r!RkI05--N&OOBTOP`BI6<=jw7p%gwzO$f6F~` zTYXUQVmY#SpQrOO-&CqzEw-lqO}n{_XuyxOvH5dBDV zEbl2Im_4=>L+Vb4m2tmS$4tEJ{&vhO{se_6FDYOkrlwNmZ=1YS z0uDPgJP3W!xD+gBcb7GbIRz*F?k*jAuM(HWs6;6vpDGj3f(@+x`}*A)B`IhJCZBGi zUiU7G;LpszWMs7NW|ynIvT#6SRG`zI0$2!8B!Gb-_*Hrf(xC_mTqud!xx`7ez#$A! z*}ei0|Kejpz%0bHVbB2#AMkzYp2{OX*e~?ZFg83D`TI+RX8)4zRj;?02~yL~p9S>p zT<>U^UMD(RW^~L1F})87A>c3SCtt@r~OZPTM{N`+A zord9qObBLTg<;73k2=9KjI(EU&$slBcI-v2pB^J`Dg9!|G39TSe6G5Jw)d8yV`aoo zywh7S+pbHPisq+VMSZ|aW*X|xKkLB^_EIK}w zHaP%63k-gnWrvJ;$3rGG<|Yr-sRTXvz741l;77e?Od=1wi>+Icq(b4kXL;VYjQN2M zxxTi%Lha9Y?UCDA0Ru_Rofqe4mRO?8D%+K|-jcwGbrol!=zWN({{2HzS^2baq*l_q)JxUh;Fgm{hZ-s`lDOY;$#m9?7guG@V9asZ>Xar3?fP z=PrKRt@5oqoo-)H2zjgY6hCjEAzzHazs`adUYp*A_HCU6R`BG;dtS-@1Ra#0XQ6W* z6cLxt`$5!jfMX17ZV3GU+=w3lggSYf-KM-m6`->@{PHybh8wTUrpf)L{S0RQYo88+ zq;eell*fwiJmJZS1S(H;J@C!XdPLS2D?P9w?1%i>(khrZy02dBT?xY|o=oc(aX>=y zi_MQA8>~N@o2eRw)7%a8b=s^&qdH7=Z4=1@ev2ls9 z4I&{;R+4H}bfAlFf>ZvBs3c99xbyURMIeVdiNJ^=$U5AsRds)0hJGDJjYd~Gr!?q# z?SYRtxLRw=&e44)cQIVM>|j8N!5aY`yKdq;xeH(3Y~}8hvyq$bR^CKa=G!$wAVft7 zj3cWvUHQ^079Y*EEmeQnA|d>?gR&?w<(gA2kjY@JA@I(%deeWb1+y+m=kXH$>rw&b zFS|mH*Bhcrln}MXtAh7MP;gUtBX`#bav{5I?Y6vYx!2kB4-b7b&az17*6cZ^@%&xC zOi2(@2vT@)dH#235LbK5=^x~ee^X|W?t7ZE^dHEUZ1VkZLiVXc-)@_i!*30`VC1Z~ zah97dxtx}D@~RXN1SVReqjScwq(PVvP<2M^w`(KPhbJjpyzV}k#{hr`ShFP(o+9s4 zBWL_7C$Z2Y z7hFKH?rqqb5)lb+1L=pAs6-=+&Up}!z#x8gonhF;Ii=vJ z#}U2o2#XQRsXBHyxT;NYi6ej`dn??lRpjh-3MC&@kme)1U=fJV$hnBS{+GZ*GLz~8 z5t&5ukvD=N-TLl8Tv>W8NGp3CT!i$+lM5cBS_^`msagD9&|l%y^X;r;I6EiIxIiER zA1udxjBkGOvYv{SibPlla^d9q`xwxbh}yMO$7Fw>3yR$%j+h8YXKs2E-z2%5NJyt# zFV}{8hxm$Ef=6KGi-v5K(w=_-3P|>!(%(4NXq{7{qUX6`UFn*x*846NOjPd6Ve;si z6wh@giTSG1>)B^GJq-i42eR5@KF|nf1HR^zB1;OxoZr?t?st7FBOFGO&?2X{juFHV z;5^tW_AAT0FTz);9wR}&gCY@1f7KPd9H=0Bi{nYWd$M<|PKdC3`7uOLZ~XaP2qE29 zn0BSMJ^M+&Q8v|&s{sngB6AY%@CbJZ>f<8IcW5bp6eSAO$l3Ac63I%21s)XVISO9{ zd9|X+108b!!Be-};kWKhNg5efaTQp+jT}evwp&_6UhFrF_KQ!^5oe=r*j=Qbfdgzj zFC;wNa?bZM#q>*%-%7TaHTOnD6R<6twG#ZVQtmBI5&cnPGh5+qK%7g%Xw$T^lUkvc z{$Y@&Zl``PBtM2GEqr4ltN#ymsnRlZs~muj1Oy68awd%bKp_ifK7xB6)SpcVeL^5Z z%bMH8$mEdhJN5al&7=_bkq*|$0;$LEq7EFk#!39IKsph2qV1(fiw|9WT#hL^?*bj<& zTyovc8_%iT@FRIGE7;`Uvux?iQZg?w(iu*aK=NhLQZUhnFzT6-~0VPG0!-5&gsg*32j%q77ApooUp^N5V{LUgG z6ZwZcs}e=DX{i5uW(7=@?n`+JY2vq^Zm7Aba-vTB(tgo=D;V8972tx)36t9GHUtpb zql1E3C*;2G)1>S555+&fr1(sE>ioK1ZyH4Kgvh;duI%GC8b{Q`+VjmLQ~DpNcLFy? z&xakN)e1ma)VcY_5H#&nDR^d*U03&#;t1_c$qoQOq1_c@=<8=iDG#%vh2w@{gw??# zBXRqZlexrdnV0x@D>GS_gh5p^-1oJ)0}H@Vx<}+u&D1z@=^xL_{_})FyKQ-sHpf?{ zXz~0tg*W3LvAO~u2R96)#a^f1a&IY)A_%EkH$T;UE|>^(v?m?fzt~!WAYQn}S!})N zGjmMa+goRJb}Ru41Mh(=o78;&3l6}GRzy4THC_%85SU^5z+L@IK?PoDsC>8Q41!F~ zuk45#L=e_g_CDJ6d`7LEd65u*=}{&(!<5!zkT$Zln^&^rEXRGho%AqLybL3IHMwBHZ0%VIy(Pw!6V zUsKYZXWjt>EpnGs3{wU$(*TBvQIC#_Kb-5Jv@+dSWkZ*!~|xf&n$WomV$KSqTM-y2M~f8-NTIYQr|mW zi9iT2!Msu980moyWqjXO&*~xH-!Dgby$IOj_&By$2tvKi5wvX)h-S_2Dz?!aJ(QRG zizD87NQ|*@D3+%TY+gh|-@C5{A`ce!BEuCCGqSD1c6PrR#EL5}ghd4Ob@!3ytBfr) z#yCGGbHM*-Ut55LJmUN_?wXpM`+6x~8s zUVFNSa3BC6+GD)rwbKC%W!3-0p0U&+MhYAihzK{!@f|j%pYQT0500fFS1U zne}PzJCh-S7i5Do z_`u+RhN|b)oAW)^Aq$ZH*a8YMDr{3bGyPj+2KP$lO9X|jcdL=bS^@vw5 zYzn((pK5&al=ng|?8+m&aZSE+3)!-*1uE-z&ab=z438$kmPJue0tg?X01)(cx?aib zq@?Xg3tf(UrIK0eYpxmpW;~YLPUTa@xOMfo1SEV_t+R2AOx}2$L(SJRf;5OIJ*E6* zkGTQ|-cBgk=s^$Lvz>qBlUHzLr);Kf)~{whtRvhaz}W_ofMI12!TM^t(Bl}W$r*SG z9kfQP`7uiGH#Tt|1a5kgIqzIma=pk%!HC)4-)KB`olg>azm|B+eD2O%Q4N#n93#z3 z*3FIcuk3(?f>d+Bhc}wP+nv=cX}-Z0>i>vGH$|R; zZ>Zg@c7Y9|8U#>9_by^N^0Y_C#ET=ZH+tD&vh?x_ZA_Nz$>4;RUbExc)bd}@H80z3 zsx7e@kV10DYc+rfKkBHrOcu%3o$puKNwdz~T}j2sdC|`+0SJCIVU=PDk7}OGL^Ya! zKp{C)uc+I1&w>FDY_c-EzE^7e1Q0o3A$&`asp%!ei+0aC=JjqnRhi}jAn4acRcV%* z0uNj)s5S0B=Utv7XzXH)F2Z>K1DO1m?LXz1{%{t~k#9WKTf9e^Ks;f@Rg|Es@D52NWnf`$Q;m z9n~uHbWOY&{IyUacA5k^wmMw5cSqCH#DWfwuiaVnt!ZEo$onWgBf0Agp8$pk2vsl7*QPN*=_GV_G(InAN0ULV`0poLFRs-6elw*|bePIbW?dn~ zO-2on_^qF%_nCooY7iOo`M@B$ullpQw}QYkKz{)OJ^fiY_s|gK=`Tzp&Rom9_xcE? zX^y!YTA!|^={Sfw*IhD9CSv1tlY~R}8J^`=uJU}j5Y5H`2}@q~rH@%m+gQfVk2|dr zlZ)1ZS}(HJ`K)l)THy?UL0=s8@4ro%B+PVEMVgWA@8B3m-SsxK{07da`&`xWr=6;YwFg7+5V3h8 z6wJS;R(3n2$0=J66!Q%A0&MJ>4cH;=zr9kr!CK3L8O>COP!QHO;@$Dj{aFpbjP>9{ zybh~P*`P?pXSZ$lykLe2`79I%ZvD7(zB4>qrZ>H($R<3mN)hrbdPs;~Px_dijS-o$ zE1tEg|A$q)&Ay@M47Mt&0D|gx1Qkg@K#G*>rpN12KMdp>&T{{?P7_iS>p3#I&_PX; z(g;-o70Q$3@{z0akKd=;{e32_+BVTD-Dlsw)R}aUZ`*pWmT*R;h29VCop2o*v7$aL zQr^K2*1v=_9&AVW=4kP>@&#|HedL_*^H-0*Qa#!~)4&Kx9-|f!X4*0H`);jbKi*!7 z+H&4Hr9_5H3qB?ZTCVLh5ar`R4gK^-tw&u;xc`9%#Mb2-MWa!uI8kx)bM3Gog1tg( z-LDV#EYaVvo3hZHm;@HEa^Q!xf$s6uEJ5S5-1d!-A<4V`aHA7iC4H(%+-caQ3D#8^ zqOcG|W`ch5Lah^>{!B3`PN~)wABk zZ*4lwW60J1Ki`$rxms;t2tuW~6fpCYx0bs1{T{WHRXoG0xeD}!X6CnD+;)~#gkUdy5CE|!HH^E zi>!SH2@EY-9|V7kdAVog1S5?6IbTx%5c_NF_8#xgY7`@w+bS`wpSnd>sVctxQ07D zKhOUB(?)LdX)6rMf*!fbbG$tZ+(p{^Z-9o-^WT!5!hL^de3FcHAcemVA6An!NCUh~VSC_GQ5h)dEK;v{Y8$L-Is2G&*g&Iw zi6BGM(Sl6N_Ex61eC%AFbB(3As2BGQhu`|OZ2*HKqU4Ir?Xd@TjmeM@d*ibjPgrXc zlH;PNOX%;Mlbb%EXBp=w+m!(VNoL?7c?(hS@IUn$T3jwBgh7{c*s{UpJwI|_I`#iG zVW=Ro=(mWqWj~%)4OW|fPfi#8 zeigKUQkf2uBgVA0#OXsclitlm0Eg1(ks&|?Jb)p2e|EuO^YR2F*kN81f*tfrs!!70 zT`zbS?w{KV|E%$-luy3n*bMFh8F>Dx4Ert%O(Ljtms^-m#}7N4{l8t4?%IHYWkhGw z`T`ED9cM#)h+0ElC4|0+h*QPCCg$IM2&Ab%=W@<2ri{t_RVvw=FXIvxhh=?c|NUc)4(|W)|yQLumlmZnaDEcb+=h*EVh#DpHv-M@5Uq!MDpk-p!po>`z%z7Ak$RZ50#riEOXemuT)DDhDAD&`@CBWK{SUG0=Z%3ohUQLsEBNgu*aE zwOlj%VI3JL+il;PAVtT5B8|E5Raz-xIbt{wFJHZN%>+Y%tOO6UV|@1u z<&6qf_vt_&g>9FSShv<-e6e{Y0T1iB2Md?pEsh|@yJ+We4XX@zUy7VUGkX{3gtb<* zx+Sdo#`j|tiyt@kWCSB>?+bYAQkqvP_STJ@d_+Dg3L3?&B6rL6n^TM3f*$HQP(jI{QdCEuS$wzU7K>Eo~sneNE_ftmNp7ftE{dBrME8BHK*vR}p z$H~zk&1Ve&<0Q+Vi~Ty`Fk`uQE&D7L2OHOj5j-MIBh%jznn?4cZ^UMjE)BoBUbsZs zN3xYlc z0EM^+XzZSQSoA%lfFN=L5+uxCDbLOU?!G=5fCy%+p~BO}%7}tj?KRBn;6bPY1*j8P zQGV{5x-2f0)F2#u6M@+GF z(y5OrS(R=7p)<45&)qs!{3qkH`d4n0&>@lR|A7tN4Gd5rql=TCIV63k5OJai_cA?m z=j;sqxAxZl5RCm_t|KMHuSR#_2y&@~;A+Q1n;2>c3@Nn+r;m4WEIntSXAB_I&(E*m1GH$H=h z--B$U-p!kat9hyZ(_%y9BD&}y))=W{?Er-cAqJPboek{1HI{Jw=ALb0OsGN1=V02q z%F-&Ld1aVZdu<7g*~iBoor&rx6mBEod8CVBpa@o&zpTCPfPo7tQ?e!)`3@$35)Ztu z;Q0WD2gy?8L?9TtraxC0$*s6LM;JX25Tlx=&d8lL&^4}X*~WJK0Ee0uiXx+}<}1mn zQuCJfyImiy>kO_4h%gYFJOK*TwCdj$YRe35Y>ER?I0#7JdhBGf;(Dulj)uMh-Cz*L z<KBeD06HLA~#2L@axSTkap)1S*Z)y~wiD z5D@jVe&g2iCoUiUXBXHrg#3QtC({Q}9Rha2u+`|!X`;O2nZilk>6JwoV#GTb*Zpaq zIF0YbFTfz?*zHSfGHZP{lWL~&fmyyJh#+L7wetcNui%7^u4PM8r}<&!HhalK0EQmn z+;_!j<3x1hp_}Op{#rA4IgZ*P{_*AiJbU|HnW)ZxE(g=Q5k+PZ@`uG>qcnL_ea7b+ zf)CCBg^%$u>GGeA?-2#p&1GmI%$0i@nYa$(x5LKu%;r-YNJ+oOyGlooMUvUs1 zq}GM9uRU9A|BR51G(QIdA;Sr`=OlMi{#l)h|KO{Ncba~{9D2?wVMd(B# zM|<-=A^9UP^+JLvyROeI+pO>-0bz=LbZX3KL~H06e|LwTun@YEV47^s<kZ z)^f()*a&{-ZJ7(ED?EGszx{{05Y6rXuV3da;HArOe3E;}+zcD2hjfUI?ytA3z=+Fi z#Bn=#aD?ug_gD*4z(Hp5hl^3E)JTs>=vqR1t7gbF=daoTLD|>SGrQd}La#u{Rz8;D z>fqhKJw3%nb`{z#k|B*Ds>G}|HZ_y*Wo5<3zEx;jj z^07*F=ll?WL4C`CgLYl{Noitl@Yb?)r36y zv|523x6am%s1Q-?ITl1Zs_&ca21e4tD`IALj=EB#X{TEzpUPwG5$jMPKOwBdJ*N5{ zsbRGxy|H#(JlGe35VND4x|SjV01*1$Fe-F=y`5jDGSeMYz542l%t{HNZkix6xq*%E9j!5^674 zThI{>-AVqXLI)7`t*GfQ&&d%6{?@vQ3xBC|><$Omqy%QqWTms2dY|6&>d46QPKb

FUptLNJov>gm)^KR}Vm(`n@Yg?D(ZtjSN!p(QX>p3wGngk(ckbfmL-gT7? zyG{0iIrtF7HFFhy%#?tJQ@f4qR;uLR^M@W*axwp^I(o~3AVIP(rH@U8);>?pJ3Pe# z7He1_fDryy{d_B?#<4lQ5m6A`RBN#}|63(3nDK?IN2~ttV%pmz$Brc^%x4;tga{XOwamX9+Jzo1~A%9B~= zXg@-uanNbVYD+Ew10C&(gvW2&eJhX%FA?P#mdWsrn*Q~ws*$cGm>xDjgLB#cBAKh* zz!1o}@x4St4>Km(>mQo9_PUkLymnwgt4(Y=(59_>G}5|xPT!fUn6(e`9O6!e~7Gfyl4U+%M-rs@W{L>*6`EA~0&*#H90v`O`qvk9J`#^y1J8l1{beq%yjm2nGLl{A~{Wvxe9L; zpJgc-BZ=F4ADuKqG`&R>0`;uCibS}M-WWxPu|52?2zlwxv45oh6^^F9(2&+6c=ZmD z`F+~dF0aBnZdyc&O!YGp*^aRK{nqr2oS%~6@c*X%LN#&MD_8PAUtGgb#98h!1@6e? zW`EByr0@t~a%EpSiW}!PCwhkOoIBV&EhVIus$8YsPuK(qWSiQTIbJF4-ya$5kVwPl zt^Hiki?D}yTkD2vj3XmmYU^IHoM#~n^_CuEG$4yWJuwti@-ngvDBZjy;vi8JvvE%! zQ|It2T+eVZRLoN!Hc94xlK?`eDzdJ?uG`a^_I%PBuxyVsp%zNWh8c}ekG*WUG~1r? z9?G^(?}CKI(=ts0Exm|eU(68CQ9w|9)z5+nUTCMRDC7!uyc-p~+`WhU%rwR6HRol7&CQ{_ZL_vjA`H+W zY{jeAUoG`>ah&!<4Zc4v$u<(_=@fVnOawc=PK>wCcSynR?^L)r2>+jtOvPZPTs!me zJXl73yma7<*FLq^e-U*NP?=0So`Ih<2nQNUU#7C_SWa zW!HAo03cDo0vDDt=lo*;RZ5+Q25zTNg0zfpjgg_>r1JSCWpM~>RstRH5HxPhLzl-g zs(sgi#s2?3OI)d%A!L91XCDj0-M}GPc4FCn@ZmW}p8o3MnDGaDG2dJJ^J!i^OMDL< z?!aHJ0v|Ap@taTl6l?cN%d!(^l>L@Hx++D(;=Jn{g;J!J-*^Z>M^?o5D-JjyAudtw zu~|{$Wa)s0pO=dWXaW$?TfQy-zNJ}b`Qm>a^n%7>i859-ob|Ka-~k1$X>ug0lzq)_ zz2<;KDb|XAOaLHSN14H_sVyO*h*dxW6JfHYEA{%V&t)nAhQ<$RE|>bBM@i2uGPm|z zXn=)!*3`tumz2}i|90{A8>GF5G;|z)7Ti}gAxY|&a6}tPd(Nl;A-?UO{64*8-gUYz zeh~(xWfJ8cQ`z-DLg0v#`taQ1rhya!6O|;sNo*;6NbR$RI+=%yFYUB5goit_>t%Ac z3Z>dosPR`rC#?9I&nec`cy=G>Cl%;e3i&!?_zi8P_d1qf5Xev8HpEa?O)?+V6RUjN z$YEl&^1V3RveW{I9Bw{a3k}I*Vg?Qf2s7cd&)=oy5JRy&iSE|lb~VdjghEyfYuI~Xp^07H}!_)TYVzR)3tZb>qg@--6 zLA>t_h(sdWf(ZY!fFYWE{ODzQQ>wTEA2Y2=H#0hkc90N8u6@5SOu(9KcAjhbeo^U> zs^5`cS1+j&Sp3bSWy|aTu@Pw(c^DLmSG|&}y{!mv!)JD2ffbYjDOo2EX=$t|dIanA z2^Q`PDn8%99om@3=V<_h&u?1+QPzLL%!+S0q;7j=dY%Fe^k5+3(6+5Yd)u-R2H+5Y z`*F@Vtv5lQ>SxmVFE%q%_-dXtr^9El)=?w^3A*Id1lBFmPue^4PX7OB1SI&{=P%$P zwt8j)8s~Ey@>)KNcq*l$)!9t{UB8$FAODzY*McDY&`ZtAyvHJsk3|6tpSk(?h)toG zeV#gN-Yy6YG#d7Un8f;8N0lP`V4)VV8E5Nu2gQ}Qh;GNbpZS~eM| zq>f%Q{ifj6P-J1wH9~Fy2Ohzt1?s=Dcc>7{AFLu1;DWN?A!Rpu?Nq9E#o&*#q+h&R z*K8MY!_niVzw_SVeNMU024k&}%sQlB+Mc#)7!-=AjI3t`#^_4hx$d)moWeX@Z+V8r zlijvJ$opQ^)13ql9Z;P2a+O*}b6&J>?J&5nR0tcK1VP9|3VnXw_LiP?el~G#_6EQR z6-_1?*?ATGeYSou2ok$IZeG!_zelUY+0r$;3v~qz&qdTXIz)&}Q)4$t=Q;B8J<}2| zcRELE={*u6mLb13y>KEOpb(~}5er*oLldNA7dXEaZA8wofCzhJeqTN7Kh1||;Jt$> z75;-#L*lNr^yL^{B^1_KDC)|>BQ(5iqA*5fFOKrYnH?FqOHgt+COUVB1LG zs8h+n(HMY%g*y9Qoydqn?_(o3cW;;qfJ0yeITJ2hR=!d!{b$Z~1dEzmafR6izeOxp zNxrUvp_lbv{!6!xx#6xkf5r%cnGjpS^{^hBtlYfxsKE$%r0I?W5fIH035k0P_Xl%U zo4@KduM!lvoS2rY#Jp#iOnSW#M+gEI3n;|txDb6eFT#HZE(HHx$nT~i89*TgM?vD} zUiG6}5R8ieL2RAe`@%;;NAN#%iM^9NNF$74B(pO06>(|}Obk{(AR&sB0v_hQy=>bf zHb~|)w5rV2yCD!^u~ybO)sNw5&|`93AGHJK4_OfDevgf`zRY)rnMRuydZ>Mbf5IOz z3{OHRHF^?r{;B+?UAm$%6#X|2&$e;|VAu3ehap6#x) zVX(%2?t9DKO*3FX=5n*VnZK{>f$g)sWR`Wbm?2d!9RX@P`ltjEbZytUH?9RvHH*OC zpz2W8tpouH`@RYYmoz(p&R@gtYBCH!^x1?*Ifp=y$Z`H8%sX5Zbkk(efm2FIDfe z-d4q&%6l(5OiTA-RU)F1S8)*fA>>1*CW<0Abdiz*9nVJ+KSyw~b)JcKQJl(FitP67 znQ^{}G9#b%STl=^FD&giUVOHMLinDJ)8PTq%A42A;;!aSEqCw9JhXvptVxo#F+d0c z9v^eJBP-#<`muXoXdy`#6ZdtfhFHVlVWjsUXtPOaMizCwf*{rZ7(mAwTh6JS>{p@R z-qJ816==`+_^(J=I7B?i?3(#Z&I9q4krAV!uF3sudh_0dNRA_iSb7=Ga^N{qK>m zh$=C_VRS431a%KN)T!Wtw{Z-45ad6osON9stgqkC^E6P)kB0r~e#AYWTM!^dqb*di z0R_^jzz|%HkA~!hPM_%5lGNjSl?6g=cMzX6P+IZ6L0X$0!LvH=vC8n1o?$enNf4WI zc=;9^P)nHpLJuJnXDIpX1T$%&sY;FcC|R1|Ao|5%SLG;Kv;-SCoX&$9lk7TNhu_iH zysXbFeddN+$_QgvRggq8nhb~^G&)JNtmeIG0SxynrijSx7tSrWr_cfgCQx2@IkZ=H zuK_nC(6NeZ*xLHnX}Kl5appiz?P$g}#h+Nq^x8yydrThw&j;hd5n#^K&gWXz9N-qj(p%BEGu!jUH8Ps_gED|0qi4bT}UPr)i`d-yfM;L=59e2rX)%W~+ z0Z1YR%H5gW$x>U!xw{l^sMqkNgf{8NX}P+UZTD4Vx;O0aqAu1i);|ydh#;obC$z6P2!1$L2v-q^z-2n(D*q1E7(`1=6AUAn z+=Z{(1b)9Qnb-X|k6X{?D@!5SXZA|i+g%Y?`UF7Q^L^`OJG4Gbhs5sS{F;m9fDnQ2 z@m25<+w)(Ksha%9chitmx=yn{mcU2MZB}D@CxI z9XCRZ0Lbm=l_GxMOSYn-RhlzeYZ#8eK*`?krT}+9h`)whA_V!MAiQ?*{3^5~SU>>> z<#ViCn4Y;y&F*fW-$^I!yl)7PP29k-Y}KY}A;bOXejB#B;2?XYT8*#OTGIX1#*k)z zpB2=Y;)r)}id91YlIrFH1uYTT3^de_mcF*q0t>?X=H5%JmY%P#ZBdWa#SsE8Uc95{ z-Dy@CCv0EB*g5TR!z%UIdMS3Bg=q~=t)wz5KpC)@b-;wl5W-mY>Cm)5G(9L> z@&on;8;Hw-Okg0+#_H+Vv2gQooKCNHxn>k?m2JTUrjZJjdZV1u%tHvv_bTjHQ`x(| z-#0&pzW9$Ah934HK#5&1oW$`O=Kj@RUNRn1ns5jt%PQLPghGWu0G5&2_Bamf_-7*G{=R z`z|dw;31BRnb=&li!=TxT6{c<5j(D=DUj^*5IXD@R~W2t%UgZ$5HGp`1WfhBaGYA~ zqIsm*sb-W9NW`X>wb^pO*8r_yG&MAP`OQfH9OMVy=wsm>0hOf zE$V@47SIGKdGwGMl_eM^3CzMFR#)9OMM`j-aaB27`{npKul@>1?oCrTApM`_s8RwJ zXZ3FXw|LF%R6Fqyv;OT)4)b}lP2b?U2C%4cJcv3A0}K z2vW|F!vKe~@`xf4AA1ajDvnQi&v^tkTz-P=F2oSZ5f1*JzWkix?AD*v=xYA!^|wgs z*L3Hw*rX7^g6}u8>xhIWsGuIRBT-b>QaPsPPIPAc?QNd+Z}UDHq3@^%}$q#5kl%YH1>7X z|21O>kzi+*(Z@FC^_}TcM_i(};m+WaG6WxU&-ogJ;4G6JXl3{V2*0P}KLu zkCV^e_qg(jNjdYf>@N`Ypdoo0vbKl<8p)Oi)Fj;S5T!gld^T1xL>pAl)ZET z2QTZiZnpiO#t_`>sr(R#-2xlDhF;na^sR%q&(9wEy{z=cGd}`n6bO42OiZxrC-l22 z>P32M5JIwyjLf@K1R!h49T-S(%_;o_%%3!V6>3p0>3h+wRc^500v>BJoT99Bu1UfF z9pdqSZ&}g=BiV?8O;ziuS@H8vy7d zYgFa>CTaE8kC2FFzf44%n2%eUN9GnEs3KrTvWZ)m1U5*rKS^t_CD6MlK@`g+P>e~x zpYY=TTXXrvQB)5=(s@C)xh_{nccEX9i_@N$d~E`%tPqueIdJUP@ow)%z1{YS_Ul0k z=+Hwl2zNI+bTL-lH#FupPkFF*&8mBjTW0$DNZt?-nI<=RfMz3T|B|^nXkJ>PEGu28 zsk+Hlq98&@(g?WNI(;_CneJJ7!qFw5j1T49(uwdQdO ze#^CHMDYDMf7pn0iczOl;t1c!3!a%B3Ov9eTVdv8mRXyJBRky!Od?0tpiqCr5eR7s zP_+>YRS^)$U#~=0`+4*f)2B+g3fmC5NBR9PoZ=mFBc&-fq%;7|GlQzHCR`#Bx0Nf1 z%{e&0AVwk`MS8!w^KahfVDcD53>4W?DUkN*j3w|i@ZJ$9^!{jIAa!c!v+Z=2rI{zT z`Jtg0NHj3~=L*m})KjM@M2HWVeAfTLGj8IODzzyC^Fv>d`~*LKs6)*iOKNl_mshPl ze~itTf&oU5P~Kh!I^9Cu00r z^E=mF!vYU+(Jc6gO%o#_yez1IhqkH0M|kk=#%kKX!;r32MG~Dbx&jPDKdb%F5Nqab zVpz{@uJ=wJ4yTkD`*0i3A=^AQZc|}BW>5%pn{SsNf0|?4;jFv;ryO@aRE`IEV1-p1 zUB+L-eYNGa+ik{GK@h2y9S0ALrjC-3&LP?BQo|x@xdJiJP4=&HLzN3#93l<}A|vqf zA~umG>5#!cbv^5WE5(Jic@|Q}Cwf=#;0vN9`x(D*RPw@Q24_*5+CkB%l|ZnX>Yh zJy2e|(;yI}%jd-cFY{-eKE%fS#(g-$8rk;&3_KD?s@5VFM=r@~rOj{r^!iO+pwSa) z5scS}W0Yl%dw9yETm)Y_T|(23`vMR|J!|>;Q#{?H)c_D|VAmtIf;{t7dnvbJ5JW;F zPeL1lo`r-&81F2<0DB+Y{yh3 zgC3N2)lqd78)q7uFDZDLY^DfpF`IoHNfY<~l?5R(tW&e`K;yiyFVn>?V zBg4efV*LU>5~&tp6`j5EnvsmjP0xPBYJ_-69e{?|2pvNCkCFbOA@Gana?j}8b%{E_ zyjNbgaAZ?m+L<~|U8@<#Nt6XeN!AaA0yVq~(GRY(8$ZPi^NCIO0R>}5xQ>maZ-)QV zQS-0hwPZ?ACn;OgHyYb#?U!HeSi=B@HRp%r-|A^T>-%%^vF15y|zpuH(KRi+Dj@zV&kpd*^ znNDlQq6YFKDRsjzWBXEKBfQ!-!5CDBY0nlgMl!X^^?fV1dM+Iy<+9bALK0S5C5%UJ z0X3)Z+URv`rAxagBSWwEd$jiv4baxc91XH!J>s=8(D{yJ&vRHrQ16w=f67Bct>8ud zXCCM5mw7MvV?hpBAy#&MPw9MX29wVB6E)?nZQZOpXq$a- z=%s-M4fag?0;XS|*Hr`zf*IP*up#P)$^5S<*5-Yh%TZg0@raziq%eFtvRbKy)7nFw@J6kf`-i^J*Xyp(P8F{>`|6_F zGHk*t_5mHO%OnsX{-%Tk4!cBsnESW((mEJQY*Tz$zhVWmdMwh^7pG_01S7KQj`#_n zgIsB*QX!_yeqqo_-RCp<7+^xztFc~8Luc~pLmNM%!(XWZ2Et#9nC+q=tmVdKk(sSig=hp6 z41aiJLqgF(nw3hy(982>UNaUhOhUC)%n<7ATW5M4*>jN8lCqzAqX)Um_O8)M(Jj9l zO#~L*ON!}#d207qL@eamJUk zn4dkuAk!`)43{@n>o{J!Ul<5s*1dG9tM|CYjk>LVc&LyN+>_??auWk?o>TyLosEj- zJPE(L##X4)#1i`~wH$(!F%aBJ`N>U5`1!_*N7WaArp9qQQB~|F0S2hN8>UZ8$*LS` z!j}3yi6i4DNd>BZ7le$IULp@_8<11wg~B1c^Zc>;R>4NRT7ZFpFoRPqx1ApdfMV0R#VEPr2p%ln_orAlD`(X<{>vIMD(&9Ne`aMX#M+ znxv$E(*D$k8axbT4aL|*mzlinhK~qD9=qLBGZZs;#SZ814vKjIg=z!+iRD_;(7iTG zh=iq#;Ql$+x0~ZDqY|hmrye(p7o>{1-!l_gLdnfd-(r&)U`{tK) zVGuQAmH30)d!-l%EC7bCrEf6zprDWD+*?2a4Y;W|#uAu=y=oXX|DMJnVx_QAExt5z zu}c6zoA`bL8P|F~f=#aGL^7}4KtgSMBaiuNhWwh-{QyGd-QLHiSCxN4ulq)JGxp4w zt4H*TQ~wQiRit1+K1$43aOTaJw=$uw5F?@@PQdl<5!q+mIqdB|kq-{G>JLXEhLOs9 zmE=Ff@wl#j?H;wgp#%>NRp3GDWUJLpdCoDwhWrq;H}KTJ5f0P8%{u3=M~8W;P6$k1 z{y$?p0zsWijVhOXGRH%vK-}$lJEqoB@D`Pa;j+%PrYC zm`$hGNl;_?doq>y6kcVN+3Kom&%Z}}u=L}$63E6|J0C&wEd%DuGmG~zDl7SR-b7Yc)b zA;SZb=Ki=daMXWmc#4I@NBBictRqKv+@xl=HCts5i0#5iqfS$r5+~@Kna)5R{HjFdS5D|4M+V7M)rfAiIsElLx4kYLLv*je5Ml&9evF59 z!+Tr74_KlhsstU(LCxRr-)et4zpdQ!GwUagW%<@~!tFWSVG#u*t$C=Yiwsi}c6j6T zODq&UpA83h_Z_Z^?zG9jNdXQYr4^9gudr>$S3`jiA@W~=uV7~9wWMI0e^)((7>m=3 zE$@AVJyAk7Q%^W<7q-6NJ59&ysnjmT7Gf-e#F4Ik;>+59pD_-n?RNUQbP*I`f8=u3~yw4`W=g zht!JYt(n?`ryV{eGJ$g$%Iiv~2wbHjN}j4kBoeS~9ISRa4$%N1$T=b3khzPh%YkA28R;AExP5BJEbP?>q%e@$k+SIn1UCo$pY;+lwoy7-8G-~>bH z0uE}fY^n(I$0WR-RqD5+5-%$x;_#!`!SllPX7Fx1y2{&|5+Mc%D@istdD0;rN~Qa= zJAon)v6s}&F0zNLiXZ!-d>z!rSreYgr}OYz+Ylg&EMlsJz=hb$-xpk%5ck)7aW$}? zd7D@3XJ)cQdn=T#chE-*DAm)wNm{L$%bUe(R3g@q1!I#Dd`P0gcxcow`s^b^+XNMN zDf5t5%K1K|vNKHOCrSM9wpIKptf0Aof~ER%dE=t*`QW~zr3iuZ*mJ!9fI$<*(;-b> zU6OL;1<@<#2`7BMQ(tuoJMGcV;%?o4KtZ1#Yj)AHg>IFWp(Q-(diS`j2+N4y%jjZ! zQeqmsH*8tp+A?Q%KBtFyi5gdGgSz?Q*w-z*nkbIB(P#2YLu83 z_WC;xdK;xlX(}QMxvEI8p}(f)7nP~K06|UF|2q#_?g%%^MZVCZdg*HYK!sj$#rV`r zWmeTqa&(AFo_J!lA`w~~!|kXc73LxvvLTO2db+G`S#jA<01!g`o7ElmvPz`Gtv3Dp z(#lxO>ZLcRwE*+@(f-%)NH;q6=;C1%lAxqy@383MIky}yROaHpb{$a(aN1v%vmHiCXBAwmaQbYKsa^E`RkBJ5hwpp@DlXnX9`DT| zobJX`g?@>T_Ti-j8&yXM4);5!vblV^oNu`C!&6opqfSe*{&3FZcVL8Pt04FCA{ABq za6H@P*dfW0|BmTC%nhBaRFh10}aSV~mDZDguJ&3{}e!+5U zgE*elwBz=d`P}*1;rMTfNP{nCgZ)K+j^P3bSdj_;bDOVUGvW7qE4@wQ=Rbe%aB>k1 z4IOUKGUMpa6+r?t6FjQreIdP@%GFoV@OZgIi!LwMis5&JL|EIb?-^O2U0K!3uUFMW z@FlFb!JiwjjYzq=Bx^bJ$Re*=NO|<6a1tvr+zK9Xx3kp|!`(jYnS$ zt(oO9xSj+c81g!lT0KlL{%BB8Dru?|t&FrS)&y>=%d^bWGA!zZtM(?eCmMc{Mpk@%` zkHgewgfz7BTv8@{{{Mr-qc*Zy^fHWfT#EZTJcT;|Ld|`8=ONrT+ulJ8|JV?m;WnxM z!nmdKBm^1)2zOwE&mzT(P6#$!^LMvdXl1{PI*K6Izh3YfRcs^fDHUZId)Q)iI?PLt zF(LuYo|YoX&6)4}8gL04mV)y7A}B|(?Vhu-XN;|IYps>&XC$zOZ^_D6Cl zCNfV;eH{_Ae?0GL@6{a7Uc0$Emi6;DvVUefWDpdHrBzJ%fAxaTOE{{O--{m$xfjh( zJtf4h?sNO~&p9|QSgX)De(&X9b!+vq*yB#F*jVmwQ%zc{wKUO4318q4Y1pfAR(;hG z2Pjq3_&^XgJdf(d2<2I}c`*?4bhM7DN1Kt!Xn{C7ZgW&9jw76aiY_9>-lHT_AFof9 zb{yaL5F^-;hU4;YLMLPxH>?6FH4HQ5zge2Z+E{)Q_RIi?#D%vz-iKP3<(t`~*+cqG zP;&r6>zO9)n7o{z?05jQvdv-cXu&D0(~C5GzpDaG~4e*|EJa<8-$E-r8NN}iX^ zIN$^{~*KV(EFTs#!&3))`PCXask zwA?}I9(W<|l5*Zf;#FuBkqc@@fP<6WK49u36)|1Bz#%bfwB2lzSyay54k#fXd+Mn@ z>cGaY#OLgtXvUcZioag4R35?i_bI(nJbK<(>zu>>A)b}!@4x3`iFIQq)FUHk zbYpz(L{d!kQ*@6#b7d%q-2eGW5pthMw(H#Vah4wRG?S~%(cjQQE{*dbth%SnpZ85% zf)Yo4e3b;{YD*X^%J4%dj>k>2BqANE&gA=_ztZ`wn!y;hJ&UZrw?{bL%A~RLW#pPF z)8aWC&rx@p>(gN|M2b_qYZkfVw~cvwNJfR@n!Oa4)3Bc{y0;mCfy`N^>ipTyZCclv zxpqJhT&n!)g8|L5YrfNHF}Z)I2C(oUb*tX9Rl$UPA$eJn#Gh93@^`xm7tC`|bZsv61qp&1~vo?6cxM{-GHG4mY}F_aH|W z0n(kMrqFD?wY#=lY4&8WsS^9%#tU^`T>V8>?KJPFh{wp;T6b3E`P9!kqwz=}g;!4!sD1q5hNvHOjQ^l8>0XPd*>w_nTJ^o$>e5A{G`e5uUe*wb}7* zTE+^{iW}gHWyD2VuExPFnGuTU2#KOIWx1WjhMDzew4mEmM~`*Z~5cSO{$ZhT2;OiezcsRDPD{Cm_(W z>mE}NT;=SD2r7`Y@3!UL<!+xXAxkt76yipwZ?W-%>h>6!$p`%k6R7Ke6rdytu2&L*0vat`YRSX%=SG zTy=hbjLm=$_91aJsC0wqrxf^H)PDL*ztlaj4UHPZJ=MxDSO{u&w^L-F9~u8Jg-*$S z!_OH8(t4aD#I6b^_h&??1TN~xZXX_LP;)w!9F8)@3170fKMf1U{W5Lm+C~Eutsnt} z=>URLC5ek8^X2b{Rn@6AVZ{_ zg$-?BalGA_)|C#z2kR2JoNfmMx{(m>FVk^+LLq&eYoi^L{OkKAz(G&SoP3$wG5Jj~ zGV1zJErdX(Qu;pwVEfCDdl?jNt!d&WGpSyrxI^k~qvTh!px)D_WTnw18ztuehW`|j zyYqg!YRdc~3LDm$<}}$8nKh*#A)`g3CmmMz*ji1NK*B*~fLmVy30~!^9W<|sj+#Gl zWl#HoPGBM*uOAC;EzHV}t`%(l&)NbR@{WZnrIi|=gulK(2qnxHa+Pv=S;v#`?r8kN zstC3RXv5{LzmKG&UXxqNi&-6WC$u6GzHApifCx|kf|MjHAP8!hOe!v2h=yIy=D!c) z2TG8qW@GaFl!mm2IlQ=wj=Mzb493#!a@aQrzxTvFLit2n1a#(vd^=sKi8{tIvF1pp zX%aRYGhh5>^b;w&ByoCn(M z>5#(+CTw^i6MkcH5D0PXVXpDF_H1;O^a3NY#ay)IpOL5GIRXy0ZRz~O zaLFX8TQo4->!)CPHNIK_fZXdZW{!EjMw)U z*kus?RjN4K^|=QZiGSS=L`4inyhip6){MgkD3Hmf$Be6vmF&)1nyBfy*bq=D!U4&b zsSg8z2jvt386Y9ZiurrcQ+mLL?-E9^MRQpPrSt9fnoJ~K4%d3bh@;qAYMwG11;lv} z&7#C^QaN9DWfklPm(n5A>tjI))_zmHhBy$c*MbWzPfS%ciLPF6*5e1Y!VmJ3kgo`d;#_vwvL$a5BV2eY=y1~!U%H1i_ z(61TKmMx3BN1w|x;{-wH*)bKtA8T7)G2UGxRgDnjLaWh!T)02C(J)?5zv58pQIRwe z`2CCp9Hb!-{hM8{P>>Qh(`@;`L1Cjj#6$_r(C&6^Bm7p)y0rzfJdd7~lOPBa{XQzb zd43+MFaWwgGeHQ1W0|lMRuy?PcrhIxHvC$D=bpLQa0KsJEpsuE|-hc=%yh z9DooEl$mjqEOfEHQ`!{;J7E)gJiot^ zLT&^tH#>T-8Uv9y)uf5Yu+$F`Ar5U@AwR(Fs2c&l7G$6?5B2DD&%|Ya9+n!^@M-I#|M`A`VQn z%T>Lo)QtFAukzgPOFORUbL(5ayUjt;o8l2Mew{a240b?6>mScX$dN|W#j|cMTLgx? z7>z6qw?Po*(A}u=z(aWV*GHKbH{JT-lj27%Rvr3f`QRZ$Zo8G$EHFy}4?Tt;2w!oy zg>Z|4Aueqv+4SPF+TFN>pLmDa;jE0+i1E2@mJrEo|FV3qPdYs z`hM5XSNB`@5KqT@U0^U@0SFn>0wV6WMr_{x=}V`EX_C}ia@GP40w6{L1a`U`Os7fY zE9KG=53u?vz#-ZA>Z+TrHm~CJxiPmp#keT(|1vEdv?#O%BWxpK5b9~z=zxP0_i17^ zn#-KA&oqJW9teeke572z(1J?cF{(O@?{7rWGNif|H8~M7QAeUc>))eYO@@7Um;xUt zZ${@CMRl|UIlrIj7)zU)8W*0LfWVGt#zn`Kgb0S*3ta;-VTxqP>F0tI>g*eEu5h=c~qYNitzrY1Tn z?lvE`NxJ~DWw6T5Di3FRgtdQzJ7?fh!^zk?zs~HF2!_x4L*l6*vl?S>-G~7Lil7p? z*1>!9x{BWe+Uc{hc`H>;Ckr0zBSU5G?emRE5sbfq7zuU;X-2e)K#m@^6PIlf1S1#f z5lV;VSFrEmAow=^woh+2)2P~nc&IgTS--O@Js}~#Tdm7puibms=tW|tBKjiCB5wQI z=?L}OZQP1ut+PK}?m&I^Q#LBkzytt8!=9##)UU1hS&>{QYASALxWksA=T9!!aPn0w z-y~!Z`p~HyTFa|6U+kQMG!xFZy_zn!V2CA4_PHvLNroa6$+lfmAtnfBR3WbSa=%{A zoK|Bqi{?*y#7J-wEZ}DLQjeZK3hWyp>!MX@-NTctXyVq;;mY$@` zyLEu<`0bvp@PQv89~-%Ig_xcYBP|=3q%vZJX=t-D)utO;2RWhiqOb%cBQ0odaD2x{ zZvY^EgrMP@5pB?0bpZ`#f@%0p@e2fpt$D(Bga)FEBbSQ;f{Ws2a1cWCuQ1()7Y7V_ zfzPyut;Rn`WnpCmBWy||p=AC^6Vk$O?>mta_MX6oc`xs3Iya$!?X!sgw>X}_h`9Hi zx2?}G)g?Q1kkY@p=)^Pj`ZAOF^@NB)3SQpzTeGTIb>)H(0)q=+VsTm{FbIFD9G!QO z$sL+O4)VWUNl)P$#Q_U~HY@@vu@LE%K|A{hOk&X07sNu{BSPMnhyou}ziu@ydo`lL zl4uBV?hkCFV^`&bK&>FPQyzzk$b?19+RvQxv?W&{$R0%PQJ;W;MKc4u=-UvUJ?J?chNM#-2rYMA}pYXfZjQ z{0NFCIfoV_U)j*;D*6bPd8`h=M|~p?Qor%yk{LWMP$1yij1a0@>^`}CE@Gx+@%gHF zkU}fi=mAW+_F_jV@?l%7?h&dhzH@-=N7#0WVqjL~mu3wF1y3;q# z#v+tdvwb#in}4e!7@CCv)k%j?=b+SBCpF$5r3W*i?}^vht*iJn?XtdgfQEkEq67|W z6-qR(0v{ezGDm6xX5YRM{^;uZNe!I0&(@cTYZ35pXXQl*(^q6|b+H{`4VM8nidX5U zr*Cs|$F21s$)L8Gc6xPwxRD9ywOKA15T*Ly=QS!i@&?cR!3rayf5{489>RS4i{JPX zd`i~r>?sztioijDgQWbw<#CbqUsP%%^{Oh^D!BDNdfmiTS_-XSzSa61O1249kJsro zdnjSrchfg=p|JNtPW3eoYcMA))EW>P*CkEnUI0VN&d9CalsepLgNI4~wxHeu+Z2#3xUUh#qF-Bf4&2${1&-!r?np$-$<&O?VH)k$K~ z>_m2}`HJrK$VDqhXWZT~e7+Ijl)~;3A^)*^3Ghh@q~IauwdtDxg`yeU)Zrs>8bvc| zhzMjIzeTN;E4oq9U6*K@WOGjn5Q@toh>K?YcNs?fl?P5MG}(k>SKT57hDCjJ_@aOF zR00exS~9ylLj)v`PZ0>}v;-8qr+hth65lSs2p4Uo(b4G`dSN%rn0P<78-6W|MoUgE z1P*DoqMr)lB0Jius$DuF4h(Bes;Bl+sUGzwllAT5RN`mZ+P$pkU$#M_lF*1&IYEBE z*99rJ1VO_t7T=(JZ0)<#DW??Z5f9iId+0yIlh^s3&USPPE{~oU zb}=V?8u1{ND{Te>5~PY6q0QuK&ICZ)o`rbH0Bp6PjfMgnMcINqnqEVfp8ao#mPo>G zZI`hUl-ecf`i(@)X+%2Zr8703hb^c_=Z*Th*?pygAd{J8Hw>vz>K`6Un)dg#P1#Ag zoCFaBLgUT3yl7lsA=#ZSnbg2t-($svA_l0;MmW{5f()tJPG05yVpK7L3Es^vbFV#O z2tO%ITE3omS4QK!`w&ol|t5PNd<^SlDp6c>*A%7^~&&n`-R>2p<%u z*}a>!g)6*Q)9*{??V_+2y;iBG8*hJZl&HNu;=OtVh)LPxitvtzif#l(H;0|4KQ`b$ zF0$Ty&CgS%m)iPRSAPjOYG@oK_>(;s&eMyOSD{F^TV-ixhJ#Uc3NXwIOaw%BX!TEw z5S>kZyGYOoLRVRK)85^Ao*5W5_q-`hULGT>ngk;LP9TT6ZmOub?_QC&y2hG#^;goH zxapRFgeOWK(D}2n!(|;Hvu^J(Am`xEz|CF3O3r;{5Sh4#Z_V4DA&s50 zxx~-!T7+{iHPIG(#chw&A;MZF1V>BwB2u5$*6d#@DIFN>Mjg8i5Z!4I(e)8joDmKo z&ZHrtHPs_=G?7q9);S1__*eJ7TRxt}5yXE;iG~m(CC0j8zf;^S$3Q{sn)v!!BT=+n zV6c}AZeu+?c##m{u<@Al8dNkRQ}uu4u%alZmmt0AT%bqJ&4xvT*S~@p+P<&s5St5I znO_w*l>-(H1cks^!t_kfmjG5UDy9 znm-hiEI|(Mf(9RAxrqMvbMblU?1B9$j)h2McM-jtt~2NC6TgS=ITFxd)RY|5UIJWie6veF@2w``Yk5*x z<|UIvKLH2io*^%H!xh0ioT&%d0WN|&&OIJqTX$-zBx*!V-mjdo9p{{NYF3vr_hpPi z5?Z)15V_$ex@nLx6=(frvy6NrXY2RadpWm`XF*G6EFyS#s!vA?xA!-L!MWo#bEbFNfns zTKv0`@m`YW$k;y2s6+t;A9B&^&({{uqm5{cA_&f&Ta0pIe_!C#`007tGbi261hweB ztg<{=`S)f%=m=y(;;-H0n0CrM9qLpTIKQrH4!?;F4u6q*JcLWp_P}t$m-J$3f9ukH z#(RW+E4rmUDL4OK<{Ws*fI;;jhdr(Di0s&M+u)z}&@jO%mg`rzm)k|~J~cz3w&=Sd z5rBkZw8`4Z_q*Hd+;DnS`!VAPf}w9&@fwfI&PJ)Q*sb$LtM20v^zP?SlS8U zAYB!nmVtv=_O}^>JNSY(x3uV`g0C`jXY_*Db*XFgnEtyeEuV(j*GFaqH{gO@qa~N{ zL2mSgA%mw$FT+1Lv^6?<;$F&-XUP=MtDMMf#S=6c5UE$@Pki>>(v9R|6)aN#LQ_FQ zx1Hj8o4If48I?PBcCO?@z?Ufw2qZj+5d6d^txFLMMS67w^2=ikVvlJ<11bE=v?3IH z9mmD}iGYW~p#{SnLNmSE!JT^h92{5Jpc;42?msW0AnGC*Qwv&ezv{nz2uk6k(Hn?^VHXPRECdzp zG)!1;+FyiM<`{YyO{Xe_@U>Sx;w#x+Bx*xv$9>5V>LQ8nx_xCjLNRxZ%`5=OQ657N(FCrD@=lZ1f|M2Ak z8rWa=o(%F%9`l7?F|Gt26zI5h4i@cE)5hljA??!sU7%j??>>>0Vm*;(#~W$XclmVt zoHjuaH2cS7MIryx8UJ;^HwewoSBCuv=e4svwnpIVa=hFqjXTt3>$yCUjCYF>M8pW@ zQr!CW*r6BTf_>%Mx9Es(h=Sb=E@OP9Hreu)XA#`IpdlMGzgDB-LG+}03v{{9(aIqY z^3__+ue*_Dzvlf`dwV07O(WvmBLek!$bGjgU%l%N&k`fLBhKH3#3{!&!;}DnTYG$o z<_+e9hQ9IdZOO9A(x1rQRrXTNgszNfE5BdMZ~vN#3bXSYTRd61)bF+Z)Zh@K+Bf*W z@=?S?Zzk&o>sXhU_+Cec0S)icN6W|H?)*0#RHLd)@nr;ZDBpn}9SxS9qPtP;-KKPi zZBykjyhNaeVHAdaXo@!8*R>I{@?!*f@V!k}=IeZQs@cSTY0{4Pj@~CuA|7JTmGd#z zda!vdE@VK3xBSdQja7^;d^}4dfCxwcft)?XoI4d(0-dZ|cjbp}805|Ge(RD_(tinN zn7D5F;gHtxTxNPHEY-4JL_udjp}HaoyP{-=OP%5I#1dCgN&tlB8)b?TzW4}uEP46$ zf*`kypV(t(zNA*00T0AUiWC9V@<50^K||TMzjUgLNEc&e68E%E=Adu)aXPS_Y7+h_ zq0G6;j0gy5CzmI8^pj(l424)lznz{p0P7HrRR?Zu za3Sfv(-8}(Ap6*}->e-<49b#m^B8ZvSP;M6uWNHq_gC#D=y$73cHSRpi@3(!^_4q9*yOK!s~p zUQ_cO9UFZV2t6fMq|R6Z8c$xnVh!Tcy_hm9V2v(IVGU);P2f368AhvQqjQ81jpTp(H;4K>dL?T%d09zQkT|Ox@epHP zO!272`d}o8g?u~kAsp38Wj7pTh^SqP2Zr#D8P;9Vb4muKMf{;4u*l6>vlOLCKlld<4DxwguBQ`4Gg;d@D5= zY-%Y5s>yq-);1;ZqG6d@)k7lGIVrv*&f;KVBd{d%mo#_{D~k)Z75eaB3~Y`o*MShO ze#*1jQUV&HAzc3LF=e`BV5aAgOA&~}7lHm*(KzCWgDRT1h&=wCXYlRlGrBl(g;{U2 zyp5_1&=6uhzT)7WLF+8}jnucjN-$F4xBB5C?rK9A>3vl?@BAZ|TWvH&lD?Td#1Abd z;_c^^GXZ3wrK{@# zw(Iw3m5y7XiYGKcLi>>^&BjPiD3H@*l>r0}llpEK#aO8$Q;YbrY%UQG1FYZ(c@T>C z)#bx+;=(GsGnwpqI{^$cN?L3lqX%86is2&JL#!ec@Dt^{)l@Q6jC3D{*|>;L#O1`_ z8~>4%e_VgcbhdfpjWh|?;6==&gzkZXDj(>zD1$aYF$vv->z=hun(soqd{1NS2tvwk zFhK^t0&ORyc1deoZR0@$-C&l|dGa%yAVIqvpeJtJjLb^8f@t#Y#Zzws{}w zk-A!0pIoL;pe3!fsUpGEAdYL%Je}y&^v%FQ3)~_K_E{(3Xy>Nyu5$w>KmrU*CH<9% zjEm(mm4;O7?;r?O7Dn=$O~dc1?~@*!@fq+bVgyi%qjR41d31vpT;^%?mWz(Rzo>F!R3 zN5TRgRUkoUP2ZFVbD(Lmd^Dex{-1Zw^_M(q$KoMwhTFhUE0^z7H1gu=_OFmSq?<~h z5N6kG)By-{ouonnzby7gftFa3f0viUbVKjm;2lUI?nNbqm1|=lh-TKP7_U+YgVbE% zKZZrdR;1^)t0`$j0toJR5_1kXp8QN>^Baj4rnLW*7N1@u%~0&pxVt~hTi#I6(RVU< z>->EnA^Ba%Oyf%8^)@;_zZVlp$pWs9LdivrrCvJD+HNd?>`0JQR9*xlsTZo$VSx!P zp9TNZg;r<~p{1oyF!y7p#!qv6S~joRwM+mZMR5_{%h+ks@|o-IGrS_G`p6-}+#l7Q z03rFNf-TjQh(fxehphn*Ty~dJ@_tfgYVUyk7(>gSzySo(tU(Z)%wwiaaql6A!(cWE zhO-eFcLXZnH4f@Q2^aKJDNhjxP(cF~%w_Tay-S~v{eN%T7VfO0j-8A|9XHV#5F(A_ z%v5ccR!2(IRD}))W&QD_SA)Tv8 zJEjXgN|nQ4h;0CX2x}6!=qD5B(tlgr{$3`Ns%Y9rYhI&$oO8xCIrs=d^A~>27G-x- z1`LEV#aN4K^__ILT%ZswF#!qS5OBXHgs16~$bg3Og7U^=KXHRc69wDXo^~P`rWu-5 zFG$Q^5AokDvUc^y@_b|h4Xah?E;!&J48f75;5(slAy=4kdw0ZDyL%VBgr@LAuBKtL z58G}LAOBniY|#N}5YwZdZL{TsJZusz`cWP0y;29UCo89%5xjDQ`c5*gd!|R~XqYBCaLL_vyH2f*^VC0Sk`&VuurVgZW)f z(KJQQhbg-{_rsa+J4%Eo%UokUzCSkJKiFkWq9PfhAlOGk{LQsTc*@B`aNN_(1miVp z+yGrbqQ5))(~NF$ZfoJ)KT-%LA`v2Ds@!vm#`C}W?YoJ)+CzF44XKLs{Rz&F4o9NQ zq0zefMdNZ0o+1k+9MTAuZ$Joi)XG<65sv}!ZW|ivfWH_7C}Xi`xNR>wphJCM7r&RW zei&~yg>=P}Ma*OR@|M>ZU~b-p^??*w{wKV#Yg z7z*_p^epcn2p`xTQuj}QL$QMs#;30^W$+c!G0W0?6nkKStZx@q-k_Sp5v+ZZ=2o^~ zdLZ(oLOo@|m=Jty)E@ppQhm=bb7ylE4@f}|%I22A!<+5WY8LhLSV5eMyGGG7xZG}) zlz92QbJIEmK!pGy^2Js)iPIpHh5{aRX!5n6v9Hg_$Lp5F0>!iH3yQa-iiQK*ALWYn zlyRf9);4KEdJpK`90WO9#}uDJ)y?i*-xrVq2-hV1sv?~Bs5Fu}65UY{+b)BQ`)qBc zhUhn_~eTHR**sWbYd-`A-T`Wa;J74rOXgbvji#{#Y<(VAn22z zQ?h!Y9aZh|-# z766B}Zs7OD082NqO3GeCFtJ2(uJejp@X>G~jo-{_u?f~m z-LLkr2x0xLkF0uYP@I;FgN>4(&4acDlEv_my;-uDl!`QGPPLB5h~WD>VlT`Z>`o6U zsGzsvwNiX;fQ}S!jEs&Erja2Kn3$=_0u=kzY&fgG%^TYR4hOedL^a)HzS{Z=;2?&F zIj=L#6xDjP2$ipXH{QQi^9^#;?ilyk%J_?Kb03=5a)f&!5-f=iQ(`)Z&viDhN=eeX zqm%s{YTv*Rw!EOmcd8%1iVeY4v)dVXD-qLEU{ z+nzpRI^Ox-r3Z^%A+o6t`A68xwn{==Ac%`eOVG?@oEAl^7 zZ_+=58N9G0Fvd-OL}u|;EwhXN-|0Tt#`5aFOkykY`&*Jl>_?}^^WVWV`}H7%qPw+F z7iKosGys8eo56ji={c$&b3Swg6+d5iX|KjI#%(5Z14gMULMFPQfuT)ikGKRBZAwb~ zG7st05gxu%rHzy;A8y0BZ0f#=xMx4wX0=M_@0&`Zn%FQY8+?*`1+Uuqo5)w$G3}rr zOVQCTl>rZei4hab*~I(}4xOpKl1(bZTrYEwRT{k@RcO0<2zgVpnHaimhd?g7uWh97 zF7YZBnjSn47OrrJWF`-Dfem8m?)D_#iv1`c--b1T@!X#2JL>vb5 z^;425mnlmih-qs4-lPyWrJqP(_Kz7myadYLHlr^JiSGJdk#squ_&L-`COBjgEd#AOQk> zxO`&oXYo+1_3bGno?5WBv*d*fhVrnz=~p%=!YX%-=Svv-3~Ff0)3FfoEe&QsL$xTX z-o@l%*Sn3hY5@esLW)hO;wcMtj-0wHbI=WgFQby?;Q7>sVE-X=@= z?{yJfn@F~#P?&GepU*{F5}BCh2yfoHJ#G~iX6w!%$xj(_J&CB-_k2B zo}6T}Ev_nZb)g}#lTvj%Bw1o1$L3!u-^f810Twtx7?BM2n-`W}zibf4%}Did1b(l6 zTO}ekPPL5wey3U<%orjKJSv3My}r>cGH2OdM;~RuIz2Ev8D6F-d9w7f#x+9TJq*q1P-%Q4`?eb4#-X-#AS;#>L z-m%zR2Q8lex88`jd5<=2V?WT}^n05H6QG0IV|#cYrK04;dziI{c)zQ3yfvJBOBsD) z1UsE;=xR1LrH4Y@DXD2N&>^I%9+Y9mXe?7WG^UeBlX6Eca%Vu5De`owv?F1d3Dqk3`?im*~_ zG-xc)jc|?CqU-d}v{wDrn$I&e!$Jt1yU3kd|hL;57 z${i#w1>dpe_=x;@J{MaON1#U2I}H}^H7A>3@rZidW<*v}IP}@7hU(e=9$`CiZGlN6Srjfabt+e{tB%?vkH#fI^aeZgcKotO$nVcLYauYSbt{ zoGn}HZs~||hWck-u%a#5mcK*wVx}R7!)bfES~?;$A{ml5wE-FXOFglbzJm#Ev`Wc$ zsm{{gKa*IG3urE@^>{|1meSvU=k%z(~0Roc$ zxxue~xW}vgPxI*?{I8g;r?5vHMKd^&XA%DhV(2}3Ibt_rKj;a;6rV%iaim9M_1n;U zgkh*Aw|i{xj%`7obR%*gMmi%+&JkL&-UM!~8ebQ0KJ|?oSBJ>Iu0iRq!HR_EFvC3C zKKN0y?hAQlO;N6rc@6qCt9ZPR_gsn6Mf3br)#jqeBj(H%J^j2az#x%7?_``;#L>(1 zd}0dHE1N!k+b6~&vW;7?5H6i}0Rm5wS6eUKK^^7(0EAbf;LR`!H>nwW4b(0Apdek& zea7wTl3h;W^x5+*R4SZXvZ`@9Qfg^XB|dLU948kor7p43k%I(gY~HhnuSnqMH@h(x{Lh#~@QwBv-+$Vq zZcMKw%HGdR5%}zz_bwG{Uks6+v{`*t6oZQ;=a!#ha4FY__&rlp=wz|5JAi=)W7Kp< z?A-wZ{KhmzKgej3y+T3gOZ`!KnSN^6Bmar!wZL9;Ah2Ob9(i#IlF8gXpdjAv0u9L$ zEB;UrOy;n+^oXQk=6Y~`vKv(~w)!WhN5CKg49MDsEp&~o9s`VTL(4b_NARW3PII>L zpEZd9LrrU0sORBs@3&{3UxKHsmY}wBnNVlEoU4m^FR(FmI7#|V(K zYN4TZqB#9$#EYBj|Dy!yCk3_ph;Oq_SKR!G528IS+sWR~PTJoN8}nu*tw11G_no2< z39olGYy>0AY<`mG3V!Q;Z2xUmn$uy&-qBSiw>}~``0uB|~LujF>MHkTn zPOIa7j-2kT-$En3mGrYzYp-|g`{<9G|JwlT%)>W`>0v)nY``H0!_{o`mH&i7Glz4L zbXkwrF4I(!h^Zjl^WgoCTIvm8p?a8W;vl8T0SChuSM!_c?*HPm+!c9VkPwYO*;Hy< zQar`qbxF&iI{^-SB*t)bI%pHTd>?1$9NW!0)@SD`RN5Ho_vGVkkvg=_-1{X?%nN88`AUR5O2lG>yAKX`NuirK)^#^5PeD2S4z;2yQevyA5~+3x99cGGdeL2 zA6#o?BX{i9i1WtW#872u@qeKY!ZzC8X#A3szo@Z$MX{SwZ4fk6yoNkibp%w&ZL{d$ASm<^7w2R z8Xx2Zl<*<5g#VqBDCXv z=4?CF&+n`dz6%r@nCN}qcbezv2OPR7QHoiU%1r?~^XpH5k* z5Pkk=^*?_yB<4Snn&PPob72`Kr)UHv5ne6xBbaL}8F06RLDkb`fXL-M>U+I-gNjd- zhC@(bYFiJW&)wn79VWd1gW={2&#qCO$koJPKYGk3lIgt>PW?lOkml61`P`pkxb=b3 zVEB1I+Xa+HF002842qN8{WMt^CeUOg$C*|vQqYiJb>Ml0rN{XIAW_}aCHg$#7uQ%L zvGD{#(3}JuyJl>NQ^|bv_rCU+$>oez7iZwE2r;7~7|)INw(sGCAJzmFX*0RS`QMaS zLu6GG`XcJX)Dd@lmDBArjMbXG8(){ch{9s>JUqo~@%rrlsPiH=dkg=~=TY2`VC?2` zSdLptIV~ke>m~?y!2_+;NB8 zxg=5PDHq!9-_77iW^u~vp8giw4?DHkgUGypD}X`Y-p1GK@hdLe_bqm9meNhMSINkb zd9*sBAX{yVjDFRuoc7CE7wM7n$AEz$#b^jL{9B=aj=YIJIZo$*1UF4odhB;-t&9?F zO7qr)l6Es?Z#tH2=1-MR3tzQz?p$ryA-j&`cu0mldmpX?MjmG}8Z@uHyfMnEk|ASp z712Bo_sslbv`ni?k4_Op^7|;!%DeU=2rX3Gs%*c5O?Ju^AI)2*f+l#<)70u@;Q91V zK~zscd9`lfU@0LHN1oz9AUO$NkAvu*-#yni<>~3rHugFBWbaNe)TXyE@FCx{1{Oe?c3iuFXh&_ zr<=y@UYh15aT+i~VtR8AyEsH70R$XAOE5$7bA$7I<7wxABg;8(Zw9ZzdenpvJ$P|8 zf~z;=VJKz6;yR0Hg#S$&<~v_72m%UB1OW@@*m$Hk{rZ2yApv>f<{4*gYkU=Rc)-V($vU*bUyiJNNeJ#N`| zv*%RsYMnZf`<-IwA=M&RCi|SoFJ!yADON=(%BVG0`Iig#0iQgMb zO|vk+VgQ8{lh^OW%mNCzncSePRniL1^EAF5OAo4sB)LMHvKP}T-hv>nowzvw)U%=76Jr2yg!z4DgX#7W%KOQa$zy&dIVK4ndpuv zyj0d3s1}Y6kMoa`_JV?8D8u|Ol`NAqba1u-3$B&d$e*XHvv6rr696Io|F>wJe)cS# z2}?i_{&YI*urx23gzMlT3Fw+AhNLS*|5MQ3+3xAtIGk}KC%{0m3asmc6A4N)a>`~q zQGB86`cdLEtb!--f+i>LQ6Gj;4RN`fPE1FYkVV6!&#bWs($?|fA95N#)z-d{(jsE? zk$Yh0Bzf2)#8LYa@78f10TV(y5i}hw2#i37WQX6DizNF^NRRdFJU<7i%PuC>V-ao4 zToNB^eT+7hgo9oGd#VBkpHF4htF$O`NaL{iIFo3ma1;1-|GrX9q~Ao}G(;ZCyOy9J z0v3QEZTqZe@s+ywXiaJWF_y}>9F9~#rOB(R{dm2nx zELnsNQ2#15h0c$H)8nD&RDl8t0ERP02p^l6jB5lf^PY2{gKnZ@Gcd6`M7)Kv9a;jn z#t3axY$VJQpcTDkOH^)SukUAI@~GNCLut^^(@~J<$e;u!)0)6R`M&Q7b>qk80ScoY+Ls`WGWaTGi%N znm$k|Lfbf;>E{#Qz@5i{ho%6h#7|<+oaaPOmR7EuM-97~j@+FSL|y_9-K|OxHRMFV zr&0WW8ZlDo!&3DNqPzeFRb-a)}y)_Y#r*Y-fw3;P#O8Jv{SAMXv0T$>`ei zQjD}-Wtwl)H6403`q)sYT8eug$9tqD?ThpXK?;vua#PM%&3vYg2@BYXS) zd;tg6uH`llvEUwt*)Z|?fQI%Zuk3^>zyFig6ZPF{gjdYKhhDZn!^>87*S0=Iv-|L| z5;f}TM&%EYwdJUD0?i_|4W5lK8!*LLL zY%1kr{L|b@O1)=W^YIXPM$^%2x; zdu)kYcmq*NL)FraR(X}*M*T#b;a}%|aD1khC=+(U;Be%uxJVWHqGOgY}Tu8#+bnleblC#1B9aqppH)BOz z?NcHi)!ibSWKobp%vOI_*c1qa+J8EF)4ve2)!nL{m8^e;PUuHYrEgwV1T#PBJiL1L z=JmpUG5_VWiPo*30T0QPp+%*WGlh0K`}%S`*#laRj~^$c$6co)nqKr&s)76Q8~}&r z#%DC^Q9Ic{f!-`n><~(8ttb;T7i(>3GsUDO28U{zX)Fsj^dv?d%LkSfQPg2eNGX0v$*aT+6u%$^A@V zj%)~tiZt>=s}e%sus@~g*q%^b@O|v@~E37NC zH`_2HcdVylBm`tGp8aFab~*1MOGvY71WM?tcZNgki%lP35R0qeQ&!{c{AjU;&A3Iq zD(86YV1mPNjl=r+`sHn$-vRGG;$RZyz07679b;&r6ARtdM z8syaCdEl|5fs~Q%?Bjt6wRerqUx&lGiR(FAMn+Zw3h_XM1>`DM5!3zsfdw^bc(m*P zwDyZvS(^yv2>pMy_Ra0+?{fb*yH2i4v9y%Q+a!9-LNCzuQ4YBA8hrO#6^QRvtUgLV zYvLoIBdN6TaS|jx`dY7uL-m@=vWa7sfoc%{J#x$tyn9n_y_XX=k6 z5YD~4$Y-f(cjHv}U?JP`RLXd*;ZnJDV^jd>f;y@A3uj&l3Bu|A7EO@1x|{KViDQZ(Aq#X^Yios4#&F z*^hMmrt1RP5_STk7$JX6MZEUdqTBS({sJJ5*I(n1uWwS{hP8yVju8wZ5fJ+O?TTD2 zXmM{&xoa0bzz~%4wAvB&qvzbjK^{qh|5a846M^UHLju}old+Ki-pu>@gCSwIv;hz4 zBNDu7X+)R^T;4em0cd(q2Mt5yih(#79Z7vFPts!4A+|uT{24+eItWUNJs46HZpv~0y&`r5 zLo+w5M-JOwW@*Q;KcrUbxh?j?J7wiPTC9A$Hf@Um4Z=voVPKuRJhCCL>>t3#*e;ki z3~c1Vi?PxMp8d%gnD&tfF13eU_Qm9P~{TOlq2tYvn%wD3qSi}fsP+}ES{CbTi0+kjE@FBDARCzHVg~T;< zzhVzNhJVh8cjEnOf&_dDBPSYW?{VkoSwv~x!2&!3JSLdy>lms{m0z7Xl%seE6Zp*b zn(H1^;})2uxG7qZ5iZEY7r73N`e>jak#&`?@l`yi2h$EWk8z5Jsq<*=d9~Om3iR zpAV#Mog;^9-Nja(v(@kDjop6#LuKK(wR7y=$blE%U5}U6z4!RGaSVbzdFSUb9GiBE zJm{otx^=M_9@iLi$zU@XIZ+j62h@(3iztadQbo17-UG=8X2v#S#9KX2!2m;)rF?0` z#l982mRHdXxw<(tL=&ZX^S%Y=@IjFe(lxLUU<`1M%}EaERKX6$rc@A>z3BoC?(zw} z4qjd@1rH+|CnNRowYW183AfID*H_cOkhnCC8PvnTAedv7ja|cQFkuXIa5+6M9#)xe z{SJ{t5N7&3eW2u&_LugT>Z?DO*`DZ+sExZ_??mX+NYF9*8d$dQvtl$*ac!f{-|zXc z`SCI?X%w$NuZ1ondRuxeZFx1b2~$7a+F?NRwq+Wz5XhJ z1~Rta0r!b^yMwhDWUo7;(g6uBSrJ(TfirETli&z7QAe8Zf7$OpNJ-9pljfr^2yHIH z7)+XRHY=~GFpDwETYdgSwGG1r`lix1KcOSVISWA}Qgw`#kO+EI&{ld^yh7gv`U1T9 z_)X9vKr+qM;HtKlv8>VbQ5-O?NS^;*Y8(j=5M6fJH);_MeaHx1RnlJGAp0AhXrB5Y zA?f3-8`+Vg5edw0`lNdiWQsP^(_iTOi*%JI}HV6t{00;$_PcfqHL+$QfqXbwtwjm zh(bg+nq)lw;PTib;Gge^sov!_Zjz4{b|Dz*uk#%p4N-8KkkzsM1W=v$cDGiGaEB2S zS^E$6^MY*yeC9%|1UB658%xQuw*W(_#9T(JX*z1|d?8ja_weoi&=7r? ztLJnSjOg%m7Z5m9ootE)mVO(Eh$Mftj}kyaJtk?tezfCuVbhlh@>In%!M1**?}FyO zwF%KpiG_1?2#74>fQR(=@+K)7_L?)ZX$NCaINC$ zmhl@8_A1TQsqkF+vKd(x#vdP+C%03kJoVr$?|H!$PQ153MAYk`hRLcIUN_|@cb_OBmTO<2qcLPBwS7ldS*G-lR|$p793h35=Tn}85y!FQ zgl9S(^FJrti|`>}WzLQr0h25qMJY24c_u(X?b@nAms7Gt=%I&rh<1P?3wwNph}#H@ z*t}tM=@v;H?Oa11JhN<=`6-=mv>(OE=!om#qCc`W1JpIvdX&06c$ z&4)ulm`KlNrqUw%;yWTTSb-lOhJUu%tr3ZW5gDSg`W`$Ho#vVJhxlJWj||UxZIDI! zup;)561)FFK7HJlw}-Y^=F7 zL>N-ud61BIm`7cOJ%AAHI(bPE?6MZPOx@?yev-#`w3hhl-dn;;WP|&vj+h{vAX*1dGmJ8L|EdXv%toOt~}Tp&-bIeTB=npf(5} zPr#4C{;0rXv#l4f+Siv5LlT?s&%kE4CpxN`(~<0g8?hoWov{t_4`9~~A!Ov0=4U)uTSFX!kjwa@y5Lr!H z&5;MNLQb{C904Ks5QHSZv`!U8@0DcL+1s(rf+wT#8sAnzsXQb8X!8DfpTQVj#142z z*hbReBa@ww*u-4iHddz3(*!jSsX_B(VXj!T0x$h29vF;%4aR8W`O-S@?d4X(Sj0aF zh}X74?<*AF=!VxXE*d(#k-hSKM0)$PUi}oiHj_&L{SCy_--J{#9|VTh(Hr}A`RWf( z03&xy5ogl+-lMK!J#Kr4mgK|IZtd|oSDJ&yy}U@}bRrU6U`lD3dRGAlb7cC?*%3dk zHB3Y-7iBq>8B#!wHI=&m=fQh#KD>yDo$sgCBcpfch}ejl*3zS^GPIuPj(^=FObA_h z5!+*cLX`nvKTj5&tto8)oNFmrr@q_qH3UQxWy@ovWewTe_wd5T3Vicjn}U84=9Mm@X}rp=maK<=;yl+ za?Ri%_xxAk$bN3zsK1z|HT;uCB0D2@EcQ-fP z4)jAe?<1O*1<)tCw(Tp;(|b6%=tz0|&Lo7lk8d|m$n=SL^a3A&5V8I(`8{m772O~Z zSdk<)hcUCO$;tYFgPXj;RY8qieH}?dX37_9Ji|wYI+nHS0R&Iit449^c2oo$q2sy? z;2?dkhKAyL0u_a}(2GT6@OnCi8D8VrFc4SEnrcP=s3IWV&Ki6NwrXq{1X>l)3_6gY zAcT~x^y}=bYHB>68{623oL4?u>x}=knh_0JFGup})rQ?-u78TFbYP2B!L&mbgb-#X zCMhlF5&6vE>gknTV4!i2V z(x&ZHlm5L3a%b(+L+ZjXB^QA;{ z&wew7Kg7P}f8DJnt}I5Uy7>2PW~k@hl@ek@LRZ1YdKa zJGOfVH~!a92(2VFd_;Eh_Pn(--JI4WaI1}ewumq0-65(sk#cFq!sOcob29=fHGC{i zPT3)Jqlm6lXo4r5aX&uiM->A*ma1v({!YS1IUYZcD!C5okqn@&rjoZwCM=6 z>Fm4#2F@~ZlxMlUO-X136Y#fI{8maZ(i$B@vzm)12fuiLs%9fHLMj}t1g7T-|Gsfy z#M%UTdN|aEFV`~9TM?rXpmE5%RK!69<+d_GS8L7mE=YpG?t3fC7PZp)_XXr zi9YzUHX(D3<++G2PbBRB+g-sJI@pdliTa$KhicrBA4t|DcJS7n9>4Kq_1EH>`ZPMn z_XX?jS^5lo5gPu7ODOsyYo^YmcWD~bib#%E=O>eL{T~ddi5DhUkrx~GviC+$Mx-)) zH{0+&uT-&p4{BtSbc8|31Rn45+;|@ZK^~sh_wC>&UsXByC`HGa{hiw^?_asPvLT9d z{h62bcjvfIfQ5b@mq4(FY97Q8k46Xr7+Lq(-4Bm{z;D6g@FE*%yXR&vHcAf9(aG|J zcmy+2H!q?;(N>G9L(8|5qjvSeh(83j@=FcSFL>=>AVgjCt0d!5&1DFMxz;z|9rK5; zZ%KZbQnb$2QJcH2yCeAKc{@1JLz49T z_#wTmBZZCVb@uvN;k$L(WL}s%m3gY3KPlkXQs+NfaSWm!v~o2F&Py@(qRK=iBkP^O zL%S&GA_>4DDuTM?kW=AlskhvgyP@SD$5nqBV~8Z!Y&y#)i+N^ zSrTVogGT!Q!JW&?r35Rrd_&Sd+;AZqeZ;cfL9n+&_x_11%^Y5o4{Qx;v!NZAc-B@2 z;vqf)6ZW4(^=0L}OfLh=>EFN1s8d>4Q=;)e>L2e{Q4)NfuQW$8mF7sYX8b#^?}FGO znj65Uj`tYnb3emB3I~u;UvV zBsPGBtMQK?DQ`3^1U=l_-UJs-0zC~ZlD|y$5Fniqrq^bUNi$)k6*H9; z=MUYuqh16ec-W*C>M;8qPY6f)qZi1mzUNXQyYiDa2w0D9+W*s?ueFHCZLoKapo_Q0 z=L`FNiK6>bH##hfaBM#B7*7hp*+1=!nEMqL)pUC4OcdSNSojL5WJ#>uFjb&>l z$C~b#g2J?)l3Qz*VddtL_$hZgxj5<1aNTWl+EgZ2-n`OB5V?obfxS+#Byd3ViJdoV z$ixB;J82(_{qx*Ql(OheGWOyRsb8F$5q+kl(1xuvt1HdVuhA&u+W>?y71!Z?6AHE9 zrQAdbsftY9h|!KT<4by4+@ivsUV`F}fWy(VSmSGRbZ_XK^c?K=`)DL_M?KeILr<(- z?m7rIYo^*(I`QH({kUL5d~a87rGq@KldtyWT<8?`ugPy|brugI%cn`YLg(PcvswwJ zU5gT;n+e%h2etCNxc+Zb#XbTDjC$&1x1R3@Q(HdXxRv-(LYb zIg;Wu>{bR(5=C}5-Xn4&e@~_Kurw)bJF^RDk2I$i1V-;qMG=wfP`ohmoJ2qnun_}0 zbrrVAPo`M|-X7}O3;u~gp(k&E2z}bXLUZP^Il;rXcu46>;aosB(F-d)(aI-L1}7Fi2hAlkOUWqu?W!Rv zN)Z)v-atVbhY*99OQaD~v|aiHG};G)1BMf25@)BZX07%-aS-)Vm1%yy5Lo4Dm`v?E z57)aVQfdotQ6A2RHi_8`%G!sjtIaV8%{#d@WIEzK^0Su2jrVf8`!_RWvsb>+6v$0; zS2>tOfQ?C^V&rO)8aXsyV2lhmGyV}vf@WqB#kB6K^y|ED*hPX*k5B76N$u~@ua1jU z*o}QIpa>TB>kVWKi=VL!47RNMa4!cvArMT!N1Oca=BRP(SpP@sQf~}}*ynd3AgE?( zaPRI@{}D5DSmihSD3)3Y?|gWx#N#@ebGN;YlZ2%idEs@YfwOh2+aE%U$>Mh!`IY}9 zr{%icubt=IW~FX5et?Rb942Nr^{&BJ#A~H}f-T7(5fyq~R#-(IMgGqoBe|v#l;%;Y z`5exmM%~ljdD-b~FnQs|)N{Q?bdTZtK=&JsS$NabPC? z^BB~@M`pPQv@^qL*v&J1P+}h|f4l*TLqkjM-1%(LqV{oAO|5O!Pmg|%(Fs+Vf% zuOvh)ZaTV+Z?SY;)z7O!q*s4JD2yUDUm+fm8LC=Dn2W7SzVITOypPx3a{gRq7Yjb4 zQM2Z$&2Kv_L^8N6uytib%>zu!jUqHIUcbd`y!dd3sx3c3)4fFWi~Y{Oat7EOMm zM5SnHKoBV^H%*ejOC*It*4_Q=-X9@nb*iS9ur&UtC`z9ILx*n383W^IzsYQM+A$Q5 zUt*CVpZ8(8sU7>@R72-oqDu+Lhp8|X2`yb#rC-f1QcDh)3>WAEq{Q%wv+BWpLHvPZ>u8BmD2$a z;0SN3h=7{G~N5nwg~+tiES#@Bpxt7+)$>4=ks6@Dh-6b-+ zzkht0u=Y2AgADVX*FJBZm8pON9Rh*{*tBT2CB2V<`X?>WrlyOjDdc4V3!Sw#^~T{4 z{r0X{vpY37MA_cERjaHuLa%K{i+#R?vUh*CS>KGnTz=-(pGSy-HN~4|QRVB;)PO`C z>pcYgTc&a^bNWZi0K5bYF0rBlArIPrD33$!j|d{!KW4*i1Vp-sd;4)X zY?6$r4Lco!9Po$~hqfAuhC4$lC4{!xzml_&hGWf1Qn+Y70Slw#Uun~7S0<0o)d!WY z&c#`FvDr!XF7X>{g||S7e&_qLymw&~+x-?tP(josgk7&ULtd{^8bmr;a6=$*9IrN= z*hu~et7D|`*U({d{y4;7hFeU>Wp%*DKq^0@6475NPg2Vi+9DAhuO|U1q?W&z zRfGf_Q{b|``3&&Vt^o8^B5Q*YEL*Wf>MM)=qEl5Ny@A)t@b6|{-h7>j3vr;|u({;CQ*7s4QIy*&SKkt1!}>)kVaPT1}F zatIV>j5eLW8Dbf;xCn0)Za7<_EG#IRE$ZT%xEI@aKtUTH7qI#kMy=I{X9e0_-SvL4 znLI0(d#0<|vnB7qd*-rEZ^a z1ReN`z#;uMF7j+(u9AEv?TwK%UA|brAYLL5ke&5V5Qh;BIu&Tsa`w_9A#c$?`;$LN zAd>E(*t+-C6n(~hM*9;bX*QPJXP(`>{Jzo_<9eR^PE6!0;Ej8@+C(w?bmA`-t3ARef+H7u zNb`uyBxM9_BvLB+gp8*PK>Hpd*MP%qI*tARUq*#n^3`QC<^Unhdj1u${UD`L(P({j zE1Yx9`$Ss9#?=}`Np>@CTltJ^q>b-ye9*s+c0+0lt(Cd44eb465ly#wX;uJ1@*wlV zN{5k~_lwKVEsbrEJnW*cb9SN2Kj;^|G!UYePq0Gg@_sO!7CMKDfrSpOQ1&W?wk*6xJcV@n08Xvoa|>d|f{P2mpf|Ho_Az_EjYk z?)(HWIV(=87k04K3*C#)-j6GkNsmoS%In;`r#bBTXqX!88F}i?AGm^QGL$`6bZ#da z>CE_~1Se=e*A9LEqO}(>O(DMB3)JHT2H7Ju#bB=)fRr z>1hHPIZGU9A;y7XbP%UGSKfT}AiUnWSp#Z&dB5gi7k@z8DO1VPHoG%VncsRMrlmkY z^*)A>L_ELg^$k;+E#s&EmLQ01uy^X`CXU&_LzM}hmQ>S5y`T1Q$wA9CNo)jpq`0{p ze|O)WYvsOdk{tY2kr}5}r<`Q7n@va0Z~ao+xn0i7??6M)2rk74fjdUD#W6-`h&1VW z)fgkU`!&2L4wMOB-!gg?c>Y?W*?s~U8C}T;OB?Q9`Xb$H5n2!<^7ri1W$4!-6)L=a zXBWG3#kk(RHCrTbD`#DYSR%$FJ#G2Pe!6UVC-jS!SnODDHMj`T6V6av`dx%aj|L+P zQmVHEhvFI$_}#BI=*f^dryQf0Pmx{O#N!fyN&=QZ2po0uz6Hkh{=l0qzqh7B%e4X< z9d7CR`iqNxeCh=qMX|s_TD_Ky`t?q0EsyP_g4z)TFW)T1tXLt4T?8CII2U?J_~q!i zTrR7_TRso=m;JB=DM1CKLr#x(=+!&yUH(%UPn4TO&qPO%N6L)C@FT|~r-5Y0T${4B zPM1$Q`p%I=ur^+|q9pGYrz!0ZadbGa z&;KgMe{WO(6-s&NoUWRzotK;8*8o5e#`hK3P;2FFK!gG8oVKj=+a4OY7L_}NTC?;d zL;1Ss|F51M>ZyC?wxLCq3b>!Ro>3uu?67lWc-8Bp0SiG8BFOjs+$B&zLD7kqMUHbk zl0Po?4T z7*^7HkBMo|A=cmZ`*Nqaf7B+7v=m~<$xag-tQG#g$Nj17vcx%jphBE+<-Vk~Q*D%9 zt+!U?uIPC_neK5OXQz6(UHfh>{jc5^!Nti@Q2_^t3N;kDI^PSoHA%BTrD_bjlyubv z*d*KD0SI?elPt9opNZ_v&(O(N%iQ_Tp3RifUdL;Ya<_bplZeX>Vcw4bzTs{CPEA{yvlKo9$E9pf;@wonvEm6RNmC zg9~57Gq&kQf2)XsvhW~j%jwV&%ydYh>)a@k?r9QTnNM`SvG*HP5!+zD>z+~{r66)| z7~AXeLrr=v{pGsvTQymyT7(84_HDZvR`xsfo|YkuLyT8?Z)Z)u^29LUsnEhTw0kU; zGvCzVe4iz+f+i9u+s2F&AM0!)p`Q`SYozM_P*h}(T}kgB*n+q0aVodIelyYJVXs#^ zVV!zce<@Uqa@{xIfT5($Rg@71D-wpodyMlcK0|C^2tF5`K3njG(cZs(E<3_AzN&+5qkGJwZ=C9d|m_toMegYZs&$1ZH z03n65+p6q{hcxA8v}Ud zI(L#y(i6)%2EZX_cZU+)#W*IU{k|LQ=3Gr}`I-B^p|?)L&B#3Sdx<9M@z8N@W-zYz5ruMf~7XMzg<7iAIZ??UlXHsT|M zRfI;fd=f0;Huqc(Mua0sBRzG)W`t%$J~&75wW%Ji>&=s@BH|*9kia4$J3mv(Uj$ov z%;GMPi5MN{MI*lD55b>ug%BgJ-EP;#)bYO!ukNEWPnmq5`0Xcf44iqwA$_jp!ghOX z+fe75Zofmpk)a~&zjlB^C;0K`(53+k+m_=KB6av>eT2gJjp?+`?oU>k@I*22P|Q8) zuYe%b$C~y64nzs=h7x)0(VxoT5Obk|`Q0Ar(cUit3OnEGU8$ZVTc33H2eOgv_%DR z%c1^?j>I%30R&4}9^EEMfePnO?tctvJli_W(gM({%w_2+s~N_z2M*&c_qH>7>?w zdqOYpRQ>(RYA3rTzMqH@p}6!SzLfty5Jq2+Bj0E5yYjO#Vjb)FUgR}e|Ju{{?BYJ{ zq98 z@VqwPggx4Do@pAV9e5!(3B#Rj>RTMBT%db0!JPyz?mI+7_us$F8ufW)Rr_+#`d{@m zT2PK;yi19fmbwUL5n+pQXoTwssJVA{vb^U#6HXS9*RR75mGBQx%UOOLCT zX;``PCBE@%lvT5Q=;e!*-J&X&gFh3^K!W$bYQ+5Re_a+on5`2uD{rzgJ_bgSWp0v} z^1B4Te;UuVg9IiZSeLy+{`vw9zq1+OwzTw-XKmUu`#o$O8;Bye+5CF4orhV3h5;0g z(-+N*;;=U6bwUJ4bQvQtzF)(g{6%%8qmOif<~Cs3L}czY9_I0wM#}+Bygdk~`h-EG zbhGj@QCL4ZPzX+|h=DkWXEl9{V>Z_}Pq^LvMu<~Y)QlJYZ>M^eAcT<8f?Yt;+BaNK1v=e@9$k4xP_+t#tR%cjPNdHSb^Tp{wQL zD`)sGGIk!%jt~n* zvN3d!1Oz+Rw>9jyKppfFW_; z$=|;ZhXL2pDMYczl&HfVbJV4K!aLy=zA*mCw%f@LXPX+9`2EEk!ch=IwxiR$y%7v^ z`G-X!9;QD?lmrkN+@9mV-MJJtWWNIJZT1Xmjc=tG1SxtS#XKet=^vJA!1 zu$9vB#c&AmvO~{MzqK|}-g50}Ly4UN z4LBY@+?G%XPZ9Ui-#+$4_?G90bJZ7q%n4=A7H&dL^tI}uN1jT^+pmcM3<3+?RW8+2 zFYTxVB+_Ti6}6piyK}7t7Wxm@f+30m3st*4Gb3*7gNg2LAwi`!kcf7A57Eqp<-#Fv zbV3f5?}h>f&Fb%>Amfdo)Xys+c{ThaqrRB)m58e1^SL$ZpTd%HCPQS41 z1UC4(wDdTFAyc!ftdSDJ&CE&x0>@YbbbLPsqI7-lYy>6e%eX6%yU(4*KbbFakBCxk ziFi(jTSY9y0u-@Tv;G_Z?t@C7;e6ZEG^us<&smM=Dp8 zBRY|6iu8!{2&3`mK6-bIqD6vXBf()1Y(=rx{S%*lJyxw67zL{j+02zTFyJ5p8E<|p zVxQNa@za|D2&%e$K@gf=UA#=s0RRw%c1Ln1$(HBSO>$rAR1d!GY1IacKp*lJ#u3}}y%ehoUG2R4X83b!#VeXCWNfK^1&eJ4S zY(%GCj_YIh(_;0tUqwQl&`R(k)Z;4io5GwurdPo8|fD<~V)Z zJ9`AC2Sl!Pi&EMkh+vcVxe-|i&_iv7yd3xOT~2DZvhOpA&$0wMY_WE$I{(Wq@F1>* zCR6@^SmPd&xFcWiNcd~SU&L(haH2eQwn&d|5>L1F^rUQaQJKA0sz=c=)9Cplb~p*g z<1>=&cs7rHmHIa;U0a|c6C^`j$pj-Pk=FUa3aoG-a>s4-qSoDNORS1#Bu37ZO;xHa*>sJcD{LpeMDyAqcmJv zsExaY{i6f+u6jgsuyxxwiq=UZ*N{k}<)2a}A10wXIh!_z(9!&0#QZAtI7)1cHJejw zux}VzTLfCFdo9GCV&7{>-iXcmsp24hpX-Z)MxaD=^$p}kOMBt9WP85)ttxe=pG5rZ zT(1lrpAd#U3-9P0x-?9lBaO={+IOIbxAes_`__FJ6ml*ru}-BBz~k7 z%m72((_wK%p@AsL&?km=I}rrh$rIcAS`~A7#CWm*5N!bkuiCUqol{rQ>3`!mb^;Nu z_BZwE-FAh49gOlW7p{5$k(VJ0p69ha1HyYN+g>XCUMI2swyLV_+0Wo(BBB-zZ@plV zCxz83>q#|`tMYy%D82^QmfyDd1OO1ZM?a3?T__5EB}3*YF7NJM~wWLZC3 zNiYO5bI>qh!4Cx!M){Hi^v8u5A+=E7LG({Iurn`tMLw;w2_NQioDfdB@4c!SA{Mh5 zf*%axz(XOT4NN)0<|s>=$MyYg$*cC7_Yo!ObSatMese9W&*UZ4KC|?HpF6-Iv`7LH zxScCv01z>ZCBum!kGuI+uhjAVU?6=D5{7oqF>^(UOW0-h=|x)<+F_~4d}ELFyD9Df zA-jTkb;OQu-KTF$K>-iKAJ~z1fCL>O^E}OXCOTw^9V!@&hjoW5U&2?Z+X!Tg*o~YD zMG8W_8&dbYR-pV$M0vteHy&=Jh$v~Y{VRz76P6t_$Cme1r|G;{IN z-D@y6pY`c1EC_}x>u$Myf|ss+k&5laL_5efge!RQ;2{`S`|?3}j%5ydGkIBlL-z0V zyKP61>fp9dC6L(^lgEX{`$oQ#5w$YGNfy<6Ef8`hUKD^rVi)>MUXw8+(D-RIy_3N! zt`TY35KXK!Gh(0Iddo`}rIJs9N1|a1H--WpA8-1C&OW#VKhdVg@M}OI;VQa#c3}sr zfYaP1Cx^2vGjUV(-sP>iZE%j}k(K7sB#ctd07HHR)QsPc#qzcYxZ^(_jsA0)ex`p! zbKEssi4QiILtu-o!X+Y?nez)#;syYxsZGVUISzL%v;VDg4@`9{U}Zc7<5 zx2Ag2_KVpL1+uoz9({zXIL@!KEw>-PM;2`o#mVN>p7}1<=ELUtq zF!Fti&zH=j!~Kv)zOf%h5s^rzYs*g{Mq*?~yhfLYk4UVD%yPtN;eR_x9aM(}rT;u5 zRPna9Bv+{ROoI~^r6H>)LP-6He!Ee`bNAqbyTq!`de;09j)Uj7MD#jQ4UZkbLyNGk zlvp?2S;*ii?stlI+aJ}YR|+LUGqY)wYvlXA#6e?`KEKK_!ongIY07jf+s4`s0u#QP zphFPmoTF$6bC$Wes>VAu#)-S(2oYniPyViVRENZhV28WR74vC^=;vcdffg8@ za(A2+XNCuU8_eZ=p{*M4i;w!*0S_$V?KTwC73qh4t!%b3_1d%8QMvY%OH`aBCz!qS zG8shcIoaK3NFaOr=)aZ^l;tf)6W#HkUYa*`_}=c;xE^jRBuH7^dOv0=k4V5FA>b+e zN4qJr8T-3g#*&YrrA3=c!lsD{;X0r$hK?(m` zWm}?1&_fR?0(-jYUwvu7J_vfP({syIUSFnb7t5=pmia2+tm%RdabYf2GZpvP+78Sx z1Tit%@4GLxkPx-|QEYd)QXrC7R=T~fJ9#_nIWpBp&{e!$+xy6cN-y6bHAns0VD{yK z3-uo8Aczn_F)YD1ILfz1={?WuTE1ZxVfQ|g{7h+Cj>8IhB##nDgz4{# z@aNKX>i#!$3TDKP6$Fjz1Wu+7Xrx7=-2TIxh2 zuaThxiHuMos`me~M>aV2_V7YWAP9P?`CMekt|De_v8do7cDv7WY`C}tFl4WR4)&-J zSf||aH&R%}(jk*&;GX-v>2Wr$l@=;^3w7}6_ddrcmkCYW(bw~07a#;YX;p}wy^P4# zhKnc(#HO5Z5KrO4=lXV#ucZE7+fEeOCKw1pCMg0B`8eQ0ma^>AiRK~?G%wo-z08EA zf{$o$5SqLEs5&zGHivQsH>k~a!2$;xDTdE~2*mH-d}9qk1&IZrdW}5Xv;qWH^U{hF zF6qr&b&(Ke=Kz9ntwp!Xc*S9`@T=sa!Ox$`!Z64^Cq1s3$3+1Ou1JU{Uz8f<{Y^;- z{PTl0z%Y2Fe)$qlTu+HKkPck{?^qv)_3`yO6xBTv}A zX+5Mvl$6C7x^r{{H=Y9tc<;6ezYsxltHUB6^UAJL;evqv48LYEJ|cf_tm-=3Qxnvc zb{{AJLEDnwMLn(NEQ~z40RjrM)#{)SoLF7_>wtpWv|sbO_46WiNk=gu@oP+-NYJ5? zGc=*?QuyAaQqb-;P2qo$o8Hc=Plwz>!xzE9P0p9P(XVrER+C*0+SC(J2rfy%&)#r% zz1&^2_S-(F2x-W5H$Sx0Ou3iSUK}@NtefL}9gq-C__-GJdG_8Qr(LAyxEbl{^a@(H z_prROKffPc8ry*T{5k$hBF{eV^db8tJB0);jMkT_tJ683%w-}|EqctM5J2m5`r7aW zx~s_=+-3}3M?5Hba}3}h#1xx>DaqRP-Q)m-qBI-)*L}KW3(^7^ARyFF#qeMJR%ssa zjHXU*Ktfx(V=?5yETfh+^3i7zL1Bmi4h6MdBHz1@1>*qib2w$1&PU&dhr6KOa z@jF>UAjpt`ZdP1Z|5B5PhSMHzD<_+s3SUlDyFLOIJVPGpql>(OFL1Gk!+1t}8<=?r zYaWp}iClwRylHt3VmSOpzKD+Qh5mZf?~D=rb+5_N>@wvF+E^>?yn7~?Mu zO^y%1LyIfR-Y!JuO!ZztT`jZXW+DwfGih>9{}bN+E)7Gz&$UH3xC9&!J(@2ywV}5Qv3RP zf*@}&c2v~)FIm#h=oCkP)+O2Vn*bptfgz^WQJW8BXDk8?OOrEvGpnN2MWt-Q01)%{ z6a+*3^0}Y%a_QnnZIUn*P8@Zq0yb<#o3jayx3WXEe|-?S?k}uEKI<1W-pARcdG75T ziWc-of^Ugz)}%OP9a91yPwEdFjBinY9xMH}Pf-`2$3WjCQ@!h)mE0+tqiJ!7iUd50 z`L?J8Sy+u@P2{K`;zTQaUv8c+0l*NUOy@4yoNm}RAWEsW}NUk zdT>Rq87}%Qko3s5Pv)p9+RI;3VhsNu*^`Mqi$gZYOw_sk@c@Lt2rzNX1Vg|g1v4&F zOi4Yr4yX^LRgSjQT@QUx}r_cZ6HJek#TQM)p(nLJ@r7e00%u zK^_qrJZtV8L!!F7SSNo(8 z(e7uBFL%&a{Xq7-WXcua(3vK!`7=+zKm;b^P#PUmk=EnppO+LWpt5zk`TWQ3ogTjC zZGF%PV*K|@R{%pznat7M;rfE><=pz<5ze13{L@_w`Brx11Sm$Sn`HnXe`#I!u93v< zIz~dGzHRd}GWU9i6l_O953FC|JoCNKD4Av1-9wUh8Z=%gmn?K?n$;vnvZ&-w@_f(9}_ zZdQ`^#Y(EFu2(xBi;Cm*Wf`&_WuLxTuG>PnuJKYki5x!sMQVpmjNbY&VkWq{$Uk07 z2N!SKNKGU^{;FmiMkC-NFhEKI4oS&yWNJ()*WE}{8I(2MjMRDws3o#aCO7$#7m?S^ zYC2D_y8#K6`pZ~v$z4b~vqo%CQ!w|YH@)O-gfZ2GH!pkh7 z5My4=eC~X8E-zURCZUdzjc|u5yH+YRUqK^Sk+zb`T;_+t79CiIyVjRogXGdKjy0!` z?WViImxV~b>SF`KcRkZ@L7Jn>Y{-m@utsX_H~*zpShMbW z50)qzKf5P5A&b*zZH^^B31UdR%r|cckMS-$9fS4)=MM<{#EgA_y{2YgukH8){I0rXcs=^ zs-v2T=-eDBcxzn52<~sE7pbG#Yw|AKJ(fbRn@HQh!({tVr2IIF-Ybn3B9U7Ai1Xou zay2z+#)-amhT%c*2x)+U=m-@x6XJk|_Ko4G^_x>7Hao0F+(miMt2RNs^pfS9_K0l> zQtCB+Tl!vWz=<0DPfK+?Ej=li*Ngaw|4rkq>=9*TuY2@OA}#aT&#rU?5%$#lIjmhm zuTd^Ey~I@s*a$tz*}9*nPsSz_Fhr{?fP)4(ryJQLD>q*bmT{v-mLd=nCAFjlx|zZu zZUP+RiA0|Ri30}XDI*V?4t)#nW9tDAN>vX3!>(#eLR|x3Mz7F6s8hGV#$G#ipZh6n zEIO~?{fq!WtAcN^0t9*oNv9Cox_Sa379t+Ou}GzAF4hJlir0}Lw@an&Vc7q5wzrG+ z_OFfA2;;!sp>dz@e|yw}6{-Re)u17>63MUqV!9Co9dCdL5zIcPa7<&z`Z+&MtIMH% zOPf7?-g$oA%1agHGNl@ua0n_I<-8sFRjZa5;(I#E&$2N!yDBFr_wky5A(IMM3Qcr# zenNd+-W||!YZ7j+mYJBMAvk=9J;58Nm-p|11N`=VY;Yj5{{o%2J0S^XA`?J|<9?2P zGW_3L147`TgNAt@HyMko{!i3@z=W4u9}OzV!Xg_YBYGp8k-QNdqU7nKJavH-zfS+Q zBAHH_h)Cz@p}YUB5Q;B2N6RVlw1~wB!Z^-C$iTyh5g}E25x9uDy!XNy%Sux&x7Bl) zIQH%n{0AKT*MpRA+z0|3UEa%yRG8;koHp&{uT%su9=w^@Dc%8|qc;?{=cdyN$Y(+7 zay&sijL9MKnf62ghM#Lc4S>FRaa*v+nVI8d)lafnG<>!ygXY^eC7on9#e9B92KoFK zSU0rRXgG|MDgvI<*3xmQ!Fl~P1K;!n8@_XeCmA$MYnSSoG?5YJxpRbdHxdFFd2NXl zr>m~xPooiR5Xf(%`jObj=|eJY~j>m<-2 z{i=X?`&97<4MQ2XvwIC2#pUm=A zrZ*DZ!R_)g58TrD&04;LL#NaFeswLvW{ZN+IZG>EIEZX}1Vf+QeynGO5dy`TLcC=L zmd%{}3Qo0}N+B1_i0>sPoQuykhUNkpH+zKh=6&LP=qljQR5d!;$4dq6cyyH^!X%u^-ztBYrqUlt55h9U?nBGA$ z2;a5dXQlCs0v_7nvF8asb>)~}RVP!DNDe1|{;>fKhaHF(?GO-#=WZ9BC@C6|0EflS zqGNL&KQr&Ou}1zcnkwWHMEi@L2QzAj)7aQt#5jz*z3M}@kVh0lqDGOq5S>e7JtA>s z6^1115+N;6{gA}z&$8fIb54fbaGFIIc5ipKruOG^@>+YMNB6I5!HXTGOtW|(u=LF6 zp&CR!TedIioZI7%&QORdtXr6M1SkD?Uz4iTI`9MlLa}^_3lhuQKvHvZA_ZLZ>G~;> zdTM$~;`@*gEj93^Us$Sk2-SG=QLM9oAy%rI0u_azAfw@|IzsO{%g}yH{#*?L7xA z@ydi$XX>qyM)F;&lp@#Pp$_Lc_V%6en_)oDYp7GpJeawe{Sbu>($u0250INPHL}bNaWfqbYT+!A@qu8 zGAH?~;N|agE5JeUm$m=?Wy{r^@d$)VGAB76KXvAx7P{e}BwgBCkA2^I^!1vhLx_3R z;C?sB(G+%lGDb5@A=6_aa>8nKT7RaNDx%6G2JQ%RrV^e6Fs8{sf(Lx-9Ig1Q#H&30 z$@3o}0rNlzFTO9YWKr+%cTVgFhQRI7nWOvhzj`CK1tTp6k?`X@?>D)NXp0q`MU~GP zVZVPhS!9o-_Z&gK7n}qMeL9&sdVRly^x@^nCrNbwy7P&y%bN%S4dg|cR3IR6;SmEI zN@?%k4qvYAWFbH(vO*1Pw-J4gG2SpTi_|3hVroFvha|$`1BQqqnc1g1kL@$*{g#}C< z+WLnEr=|#KYuu!Lw(pGqgLOly7x%{rrGGqvMQr-wZtYd^Me|zjL^it1-s-dzGi}`} zYS$a9H8pC9UH5JXT&Dsb?Y2e>)!eu4a6O(w7Ld*>K!L1oQ8Jb5bfQ1-0{|&EzK;K9N7fX=0KtdIBosD!xX(=kcpT|&~ILl9` z#Dw)zc4%CszY&X?8QunbOC@9{6K8?2y}VCJnPrs(mzz#+`N4lS)zIu@a&{ukzcnqw5<=JmdVw}Ghu0toqf zIA1elsj^IBG*2NZxgy7J!|zkgC`U_rrU3{65MnLy>~3f9a&%S=l-M=0*4S>M9OanG z<|x;EwJa$MbJx;y7H6+^zYChVF0G{oOKUINml^jk@!7p)>hMsJSWJ(`%|R;TJ+9^QXJbV%Y_Z!vj_ujEDQ>glCOt<;1wvZPkT zYXocrL;n9?c1m6jy5sJZZH2?+@Qr%uffmdquJxtg2?;FblVxkch{aCwf7&Kre+Mau z(6H01pUR@ifDvuCNo#Vp*!Gbcp&WPYMs``+Dt}9bd3xx%@iaGn1fBz|;# z8*x{!T@eTf4~7?(jt3k>6?HYhgxewdjhEN1*KeKDd?D~V?xaHF4w~Oe2yS|naBaD% z>)49L!<-{kJ%D8qy}CYeyAW0<9hWNIp#3KI0z8HB7f`e_u${AP=XFs&a)656!(nEu0iy0c1>U*%E|fKb=px^0umgS z-*7_U?5mHCsLP1|zM0_3hd28Ztvdi5k( zDt4h9xz|a**MH6;>8#_t(EaE{o~QTkvbe+8#9p*bR@rO_j6Hf}L>)R^^R7A;c!)ym zoTeVMVC&m}hH&df1; zqACnI_#Rc}$cJOweh5#0mjMpONnY#_*G5u)Bh9n&WYI?Q=c0iO>_8#5he8Nh(@A{V z{A$nw61pe8Us(MC5ZR&SUT&i!MZdzCXQik33H3lA_yQa`k}`}F z=Vkox5SmoL*fnxj$0}b-m+qsJnqrc=*O5tcVs+Z4s9``r(!i|w%ie#Znu+N#U^V;y z5Iod1>M#4Vjvm#OfI)|*nDz)--Suna(79u$fd~X(hAy(jt@a9tau_ifizn~%@;qg8 zr3FzDx~MeDBteMvXtO+z9v{ZVQpr7YJ9i%Y=4YSguzr#vri4B_I&0bhg$LPF#Rvip z_y_D3DK;I0L}TyHWYzq+*A^x|clGJNlk+QA8FoIG_XO9z{WXAI*p6AnjGD=leQp1} zOApn~6jfj>p^^(BHjlaG$rs)PhIK28RMa)mDHLZGuNPjru3fxo@~V4)w}!pqhZ z9N&`C+cH~G_RWBVVsl&$^&S^@1sfYDs}z#HWN$_S8T&CwYsPuV#6oPa1R8T3o34ovIC`G?Uf4CgqaY&x5r9LhmBv0VwlYM{S;dWKwcnxt0D)23 zx8T;0rY9`upP)cfD<4Ag!{B(@A-4>v5Rp_Ju?%7x``I1q;Ez8o#?Zn0-L^zFvai<`WdG93 zHyJB$4{HzY80JDDSrPC~*`W6z0EF_O2oR{%xRFm?JZF*dbCsE9_8V7L*sB2I2x9!e zh3Fv)lXsy<7iPkrM*fKA%Z8}I!NJU9xmq~6WyD?`%UqE$t!cajDn57!CiWB2?teX= zbfq)dWMU)^KiTL633Rx7tMptZc6p;#O-yX9lHsJt=IDPPCEnQrB5Xx(`XXCLlcj5) zDB>ros8SUu|0>${(PO^oJe16`xH>-)DLgRa?dMS>PmW^6&gLO(d2 zxX;&2xhYL-51n|dQpg~;7?;ZN$&6=JFr=O9jaE^` z;x0Y%A#26!m)t=QS6iL%N`V(zO-T^PN<=u%Af7|@zjWF&aMAg}42q2AM{QeIb+_C) z+PbDRCaTae=~58|`%pshGw@U8c0fcpR1G}0dzR##E4b~+y_^c03%OeWwrJF)W4V@ln~_@$Lwo!_)L%?+Wo@Xdw_<`47BG;ZD-FU zt%4Shw{SwY3n+skNjta#1*Vo-FGodGo-%C06Ui4Hye&Xdo?(U_OCr`rFgo_jdN+4dVGjh~r&=<2ctsO!0?iaFTxIqL-! z8sa*K@AJpT;*k$OUz|v#vS@@%=X0^o=@elan#KYINAInVNa6j&NZzm+AsPxjazhp) zd54JC2zC)KP7$K}cm!zvS9xmJ11%A?)#k8n>^dbKOxp57izaK zoCFGOYigOz5x_(H-CfVkBXM$qjqIapQaS*HcnCW8WK1xZvZ&oIVr6YR@EiS)u!tKX zxkpUtUx0%KUOP9N(v@ag3iW(|aj>Ld;NktX+Ych;@XYhe zgUj9cMH|`Q&3r^bGTY0MHGeXk0u$gMalvwkwFe~~$f~9R2E=0BYKf)$)VKBOuIaCa zg@Y`DbctBoqrs5MTMOIe7Id3$Nv7!y4L{G92|YN~(@3mA5Q6TOQhN{PSIGUeB8k0@os zZlERLTOiGr@jE%dAgM@+w%!5=RBaMn`$*_sd^w->?vD<|c$Jefkp?j*4slF~Hp#vs zjQzj*K?Q^rskh4HLN5kohh+`D?ET(4k#~weScy3`Ic4A5tFspJ4yw{*>I{e>MN`Ql z5*kg7cT$tVS3tkAWMR`UsaL!a3{574^>(_2P5k#qwTtmPRO)+}_(Z=7`Ds-!pOq*K z1aliHsOU~H-6Rr>y-EQ)c}NIX*V>f4q~D_VU*YY154ZJDlOH){)i4k|+e2Yr{L?&o z(K*m&t60a#U?E8iQ7FQXTdKrobC6J(BG{BiqpYce=VT>&K5>RuYH82y3p`ohG?YJP^YU zSRjRH?e`;)oQ`ITQ_0sJ?8AIeYG=Dfd}`o_PmTy-*Sl6AgBud<&!RupyWIp7QvKCE zTqVji@CzT7uhL)nkFW(6KQ&KYN&_E1EC^!!)w%F`_B$cIA_(r;Hl{ersUvdrcTKBR zIV0mpY43OhGGngwF%kr(`HV#6TTV`CbzdD`HZrqlhY`fm>hN4p?r_QeSO6e%^UV9W zUscf=pNN6Jvwc)7X7aMGDaJo-yaXisa4NPXvFl~5B#Mg}zr-OB!#d=9=2&b%Lv|+R z<~Z@Ym-zNg^uRy_Ep`wSb53n{H9DPnEaz&@hAG|!Y6X`vVv|}Mqsz;-T_X_;3RzRS zr$tF=(;}qu7`2F&99vXX%j;hs%(v7PA)i2RN)ZMMt)>i;{8rq$Pg^EOKCyGU z=mHd&$uqAMw_d82IXiRQa1bB?0t8yV&fo|x`Ej{j!}~gY=ifZ}0%Gz=l(jrq5^2e4+M6@>u1~O7LxMfe1iDE@{U$qua&e^ZnR8&4b_K z8>-gguYg1sH}8E4|J})uLF^E_-|kxbRw&bdA7Xg!zPUQQ%vN{3=)i8IQD;EpX;1HLK zM0=yeTsUF`GIsq*&XjO)rsn(Gi7qEJbe<#Edu($i1m)fStKTOYu&uLo3`$dC84?l_ zQoiS%6{5>+0T7K|_cv*Do4QO6D44vei#@8n8oZ_td2#2i*QYPM428=FzF6M33(k zR0tS%yNu^p0R%imlM8?A=R^?1NLK`x&$K^{E(?+6h-4#I!R-8`Y_EUvM_SED$yjnO z=@PigvnP6m;1J*S5r&(Ch-^stK-%3LCbky%U4C6QtPr~I@R>-4BdMjDLT|0u;w|4S*n^A_eTT-+BqGUZuBTQij6moj(_`?LKx=dVuqz zh=l~6k7XAFhyow02X7~{7w6=jX-G^kc6+^v0R#3u0T5>XCD}m|yuRQhd0hQBYK~8f zntbHKMF_~-+IIiS-l#)3idc*s7H%cek;3Wd<)td33{>cX2EY)dq?z;(YS_Bf{|)1R z03pT^4>kt_hzK03-78TiEcR%nx%br)`iv&@MvK5B>4$(38AN~aWauZfVk#YpdmnH6 zA9k*Y^;NS1I<1*Mss5!k$r0nXh8iyXnTd&{Z&Sw8I06@@0 zH>1xv$e71$-bk%3oAk*3+a22Q^u%>(LN*=d`dnrodc|ptji)||2`jS)?f6FS*wHuA zyN~geCZ(bIFtyst@ux~Ykaldw_tsoypML@&;D~!BOiP~;rQ>1pF@Qjhhq#NdA{=Ve z*VriF5MiHxolBtHXs0GDR#KGuy<9I>C6K!MN}3F`Ji73DU?HPLXZ%2v?bhu#vT+eX zH72Com4&n0af%B^|gAfJh8lt@Tp5rwd7brsPMwc#B-rNts9;qJDv znKi9af@)1HV^n`>`k%k~INf*n0| z^##T=4D<0}>a1mdbs`pPQsg{)*db-I#w;YBWmoqqowFL*C`^AFFVFD(8?s0UGBZt1 zL_N~Ix9b@YfpXfr{v*@7?zs9+`aKpCPTUapaP|n@y$HTd({)pm9sM&iOS5Jg{WDGL z;6FWUw4KT8#VxITNSS=H{RAjou-NLC`>TxhIOn*%D^kk`6cDw@>bR&ZE)HDIi;c;e z!{#{x9D5#_2qAX!F#MV*_MsTj0zCXgi4GK2KBt$&q;3RRTI<^fhK}*K==VH57l8$N z00>Gsh=l`%(_KclN9?JiI+XfVBb9NEF+%ct zM+Np$XUqZ#`aJ9jlJ+(iN|RE3i$p}GVKy!lG`s>GX7 zmdZ5Rt{@<6NNc=yp~-TrOx1J|4ov+)vRunPp|n+G46JB~KJzn5l5T)N1RCaSRe60F zJgYDeDnnUeF`O&UOQ?8lA%z`m)?j(vpZiAR)p553@og^JR6xHwqkwdomP~^yu#x=dlufdP5YE*k|A4 zD{W#o)?7P9uH}F8?(EFiy1kr7-kVbp&D9Z=xw#0d>n=|Rm^nrkg%=RnK7-{wYbgIF z_y}G#F_zn~6sZy@nPFmG2!rqlK(Lj5{;t-s%Kz#Or+%@!`7Z{OCXe*Q*Z)!F;;G>t z{NzC}*daMj;FA|H1RGCl^Tt?x|Sgr$Vmql2&utOghQ9Zi!b< z4}S0vs@B3)!iwAW_23miLon72!!NH-3QUxjZfxlQj9-iF*7^tm`#}fNA;Zt`QA8XwgK~Efd3cAu z_u8t-6|ovG?ja)e=zXI(T;u!w>zw8vtDB8MG(X}Q3ia92 zlApO!??X9%1!dD&UGLOcZQP_(#C<}y%uxEqWq^T9&8qJJBhT>Y$Md%weISf~N`Lvd z;^VqjXcUM{hvtMM&uDy@$XPA?9)^)3q$A7n>@f&y5ckXx&=I7O5$U*a>c7zu*Vo+a zcR3=u?9Bn}oP`mm5mdYgjH$u>UuL?zj}2xA0ZHGm@5FC%8$6cPA|9qAf7i%&M0_ap zuX{@@?k@NBt>EgXL%E<4yb<~E2$1L`Ro$)SOK<#0=vRa>(jBTFch|4GBU~)zv7SIj zhu1RMZRYLf1Tds?>4GDwpZ9b}XYn47LADv6=Jm@>M^#aZq;;C8GhM(s!t+5;y9T7o@0gl5nzDFFl(GMoxXqULuaE!vVdja z=EPRpa_<=g9c_*Voix(;a6;DH>~D7FchJto*1qL;Hs1Y<0Z^qdA+uXo6nR)7ibZ7v zBvPKy`eareAhQSW{pdt;<>6CE><*EAv4atyrIBqL!pogXjotG=LA?%|!WB zhf<$tjm0%QUaYSxAM2&h`2N5{5CjWn`u&wK5MV8OvB@cYFrh^O1`NOuXV%{V59c>6 z-^((;`Jv}L)Oa;BL_x_2ycQEZ7x-P5AhKmr)d{XVe~y%G7^adTGaArISxjn4B?x=5x`@Qgn0FUhJg zvC>Zoxc20dE6^ukH=9-fLvE=K2s81r{s<`j_#y1T*Iu5=v$kRkaPgpmggb*r-<{t- zIcWqU7B`7N+pDs2saxAOw+FBAMF{4~HgyD3e?lhntpYSm)ZLyKMjS_G)$+o=q;dY+ z@fONoamFGF10v_O({`;B4v~`F?}|n98KsuFw|Ofsd5yI7#=5|?*X*^s?5jjjw3*xUG3KZu%(t~#E*rPRv8-(kyD z#o#MAD$e&9=A6-Tf1YIaj8(|XGFDR%5MN9R=$t;sLRf(z`Rg%XV0 z{om__E{=i=I~WLA?f6#>dEh}+JITOYjQzzW+I&1WcDB7yyHD_Bz#?7-&<@pQ+D%p4yuWS3Q&j z5%pI-33Wt44hF*=tMA$Vz^f{D7ZwAh^zQe>L4FITXG&>>Q{k^{9YTn6LqlB4TADD~*0`j=1RZg`Z|^`L>+qY91R7kFJIxrY>7@-dGrwFA zPpWv5;Na||+dK_={zn}pEBt};0&WqRx8;FAcTH^xPw>rO#)1wJH=Ao~_cS?%EV+mWzFv#N z^p=`jut1}%`jH38Unq%a_un6nC?Xg7Bk4%*_MUb>sZBVD3_yv*h}_uC} zO1WSV>bU-hf!iN)FhVm1Lk1Tkwu5W-Dd(z4g>L+aND&4a4^22BVSKR) z+TT}`jRWo9a51aAgKO!G?dEWj#6^N1os`nBeA6ufP=cR-m^LGa)A)A;sP4A z4VWR$RY<}7>M*_Ko|`z_H*d-)UcQlD)%$ZvG;$Vdui5F#eL)6&u$fK5Y~elEC;|xA zcsLtCLl%+eD=5zn2s2$yI|31_lk2jwRb)WPrX9~y%J{wMkcEKKXK<$Lv2QaQ@Imit z2p~4X?f-g*p@ZX5uUZ5%=~V8GDaeZ(pbFxWHMiB!@$NbLeT*f|fzPjnlFe{Qd&EA{QqSHkn8+z(ML#)H1Uzfnuo0DxZV4m6!N+!?=T=|dtA<)sy?!vN854pNqvv?;2XkA-XzoL~ja6}z( z)jQLGg~#RMvK3xwbP)abp4CyKuYa0f$E}Bzt16NqrpK+ceP-;_NeekS|D`k0As?*Ez{# z%WmMGr?=(mR?4vInDCO%)o)fnLG_u^F+SCLmx0@Q@I-OBq(b?@i3z3MQg(L(>3nhg z5X7~2Re=qb!8GGUoK*ACr*zi9CU)o7Zcu=Mj=do~g!ZtAae1t#bIu3Wm*j#Wp_z-# z0SJmNnim^z*`6Ah5H}Clt3zR@Hr?imRZ@pI!+C0b*P;+62OG*l5QHO1xgc) z#BnC3{c9q1-8Cea>QbB477{0Ed4&!vp~YjA!?4cdB|#)N*7| zqqqon?s$3(39Q_ka{qC3Y3xnO$v)tSehJO-J^aW+{{5Zx{c?XTPq#^5@0>20v(Q_+H8(B;WY3%>pvX4A@Z^+0==l6d@7&%!D|PF4L{0;$ghPImsOX8pMW;FCX!4_3iJu z7jYWV9&Jr(hR<7nXNVCv;ps?nvf1Ek`r1UNC-Kbl^3pEW@f|S~REpzV-G#3ZA@oJJ zgPWGUBvGMme|rm{jiwU25v}H<7W%NG8{*3R754J~;sf|QRUgw%W&~6|_=tbnVj&4L z5L?5EJlmrES?BB{!+?Z(14(Vy004Uwm8s3ZKfg% z0b;hkJ`1dS$qn}sHaHKE9=o@YLWOOdh=12GcPexV@FYSd_z>N85-u;bs-|d0DchS* z!n4$O6yD(XKFP@0h^I(Wu%adIl*t)bc&@06b=MJc=ZO1$7z9^@N~Ab_1Xx6DF^-q% zyWUqR_p{M7wHv3^-!1jPbpK3!hfBS25XN=)x=-r2Pf-?mHvBcppdg9BeXYu}+5rk= zsC|@k!tWzj+vilL+;aMUU17PB<>-kuxPOyC5H;Cs{II0zT3pbtl{n(Q5m;5k@eMg= z03ddygpP;yFtWWy>8xKt6SGzAcfRdGZ_K_nRs?W!jnkAGx9AZ97#PwVFwu>DiSUGo zAuy>g*)4xzB5~JLl3TY276^Q8$%uk%XEyqhmn*#MAN;WK;TOnr`%}ECCC4KYfDpQu z4BQ_pXKj8~T>h1(Gz2WAL_^lZf1KQa0tje?H%att`!N;#e>&|YUFY+td|KV}#v%2U zqj?Km{|NTa@dQfnE?=tE7Ta!dor5Q(yVi;Vk!1eqS!!AP8I3UPQpT$9&D&6n@`AHm-da zPKr(Nr!iEtgIVu+Z~RjL$d3_rT@@?)s;qZt_9KLSQ#tG}yR^Q3y-kWtua&B`3&eJQ z?WjVV<;Gny2!|Tw5wX~kOHoV&3qV4@$JB^e`d1;6+tp6JDa?}|E1AB1jH#a#G|c1K zZ|*sl>iNF=8yBbI|6dPon&MUCvFyn>fR1Ky=$%{|`k69}Sfg^fdDe2p$z5>}m?P0n zqvYhV+z62J*35mXAV)c@N2=*jf%|5!R|hU-7x>pszh^{KZvs7nC4_A+nySMd01%52 z3iE#QA@4fLqjh(&uSI-GQiT6_v)T~`^etU_J*A#1`b8RXKV+sG2F~V(29uX`?x@@1 zI!ZR556~fM1Rr)B=;pbTGBFv65%J?j?^0a>3*<{=5_xVGIU=3Y2VbptbF(0aw{^JE zAQ|V&vy}-D{+b9kXXZZvYC%%_x}>qCZ2`A#rS2%LzpRaUm`1Qg{s;NHuhZ~N+3^-} z7MQ;75wGP*Zk)NR)>B7wS8Yl@KFEP__tprs^%;UL;-Gzx3R`d}4E2 zrYv_ggPHQGf|fW4Z``;ZF9(8f=X>O7l><@VT{>iv5S`Fdw+atNze&J{2>l7jUxG%h zA*&Dh&Q%0cX0n#8ElDCeS}FHwTEIy4+j;t17LEi(l9QXP-jWz@I-1Cj-Px3n+nzf1iFuaA(v|zKKA9nIAQ?;$n#F+ zwIA2loulK;(d_PxIzA|d5d!F8;*U}z$w6V{pRKjw-ACHF_9ePDt5 zg`3tBjc;ChE}x2FZ+jxsVGfpl-^=y%wt^8ZxWGdNtq1VYtmwh5eV+JA?TxtnowfEH zGnytDg*neT{Wl-jk){z<5qqnQ6qtNgL-B-t*T!ADpWZd64kKAx`tGxUD8!fkl{%+ z_4&~FtmPh2Nq|99!$@EP6@2`O(8@ufz#$rEL5B~tn9KqS4>7$fu4nL&vT|Wq1Q>d@ zPM{%8LE5IDWq2ep0SPHbIC)j$+_Gh0LC>*M|8<;u5|v+NQPBt$n+EC#S8osfdSHfe zd|42XNw3D+OusLnvst^npb*(M>wty#iYGAKrzsjdjR=G8m7KIk7b1+a$n*4dUEWl6 z>0@12&UtCl)a}%fnj{czJT1Sj+jOJLt*KRy6IA{L`aqeJ*a8q$ICXt8Q(zERj#^3q z2YaGW61j43a9#IeZ%4qhaQr**?)efFb^*SUpQ-dI@uRDgp5Uqg3bADHjimtB=HhQA+? z_%?{-H;AOidMm%%PKSr;J1t@*t=WEG3uf*kWbrpNA&f>PBmTbgrZ=KH@pdY}j6Dju zcI)Nz+DQFJhVL(d?_=XPTui8q1b&`^)r7IygnQ+_A{uU)FQsdZVQaRNkb*ne_8Iqg zD7uHb>+84m+rQi?&N3Q+S#!#jR^}8{oL8NSR5P#{ z2zeWMg|{><+Px}=Ekf!1{!L7Oy}E(gZF{*!0ui%7AmP#=$TXbMl$tP;PMRqd~GeE$t|mOa%;jOH}xc@#H08l`3?wrb&Z zhreBoJ}Xe3(LLn^KLCZ_w0Xw&;acanscd)jqd}rRc`?5O{SD;>=97Kd=^e}cGOIbT zu~85ph6(RB2pPS|=d!yXAj1#t>Ll;ftJ*Y|5~dSuFPXdbVt_!#ZaQ7vbJx2FtGU&| zvi@g)hqnIkL?cZr~$)74h}SWvaT03o?rX`qK!)h3F%`QoR3dQ;Km3QV(Qx6jkuc1E+D zX?wcHv3w(a;u&>PVllXz1b1rUBVT>^Q-p8yDHFR95$34o3F0A7)-3@Bso%Ndi)TX5 z`hfvBs(t?HB7F9&u;58B;M@6?ZeP4*Y!DD$fo^{m> zFK$Z+*h;sFD9Ze*VRZ|Y#*Qj6Y4FP(*#voW2nRss!XAFdR;C*x?h z4X^|sfI-DM4rziy9$6pL^$`iwV!Z^KeEQ>aR5ZIlqWCJV%kPOXUeLB&oktuv@63Qh z4ywrUSOhk?TaPE`{|-jJ2v+eH@Y73I0thyTd1OO>(IOTN;qPu{wDr3M0G1D;#|u@( zM)4!1Hw%W_ZDG(Y#h$&`m@w-|lkxsdeWD)kwF*}L%Lf#!1S!Blb(@$X3A6x1M1j)R zp6mh$^plQg5_7sY4JK0=(?RR$5eF_(lh$xU5BQnmcn_|%VHdZa5mo-wS$R-8ZMRfK z>5oZKv;DTr!Y~}j>LZ(0%B63tUBqoq@A)J9W$7(UB5apvdU(~UUILSKRo=&o_+itf zv{8m&5elMwJC!@R&nr!$G@=Jb_pIOMa(3M(-^7TC*k%$r;yK$Z2V_OHgE}JZOsq^d z%uEQ+XD`%mD2As_UuUV4q(kiGgkk&a^KDOG-8JY(@I>F|U7PR-ciJRYzmdJ|>PI^x zrmpMVE3S zQ-aR7Ij79dGR@U9u<^@y7vRWb;p~d_FM1rSzz{6LB1?r-P{-?Eh?XdeHax-S#Bg(t zSfLG(OkBK1GD624z7fUB?6}Z1w`#L-sMy@HAHXe%m~9_JokQ91B%&^t~C({&_EFAnIPXe!0*kao%vHVt+6rNC-@l%2yOm< zp6?#x&!44}^&~fY1aWQ}@%+5G;?OYM#Z0)W&f2aH87L0?jbRY$d(;9Q9tsS-`B?hH zFf&2CW7J;={E>PI_i4U?Aq`Ax-!6~hN^GHayrg3pkr$K{c*ZSizlkz7p#Lry||B~(B0Zy{G^ zLw@4gWdxqqY8 zszOO2g0>@9@R5Vd{7{6v%v*AAVAYVfRM!Ir5c)U-79xtiYz1N=jD7K-K=DhUqArxI z=>UPIoqD%FPVIwBNYd2II;p)Ic7PB82Luvk@6$A~nj})u4iqiduS@ep6dc=IJ>Ap4 zPaoeg;Hd2E(2&9?DZ({2?sKq;mQ%M%!Ehn`Y}F_!VG-XRr_#qK03%kyBKRVc$fMwU zA|!J5@f_z`rWez4$q0kd;cNem1nv{-nAz)U50&rJ3;T6LGhU-oKbfHrsSJ@Ao7)DE zLsp3+;e5x4XQN;KIBos2Q*n8xdmQ^NHJLJZzQ!DhKxpR4YXF2sy_ygRE2{HO`%e88 z%Oz?kU#99o0^_d>v=R@!nL|5U+Go(F>M~Kqx~qNW$qS)TIeGmGVpqoJoh(!+_M>Fo z>3hf)4h}V;C&@|Wa9|AtSM ze-T`{?Ewt&5W8{g)<<{dZ89tg5EuO`j$+Ybs%*PZPu>WPeVyxzlSuk+^H@xCzAsqz zBUU1J)*{z*1S0;YR$bTLeI{Y}2xVItU45@y=hoQq(rT`MvsiigcYq*5*OI?gg9S>R zbcv)*)Y&n)>N4a)fX+eA52wV=p*-L2vHe9Kc~x#PH2ja>Tb&{gwmSE-{+No6sBM@5 z4^Va24E?g1I zNZfxPYOe;FjId3G)*Y3seIf^C>^RS@Z*@AH3CQ}3Jl(s7@Q7AT<7hH~gzpXG5_)?q|C+v288C`J>m!mTEqG~?o@6h z^qTkID9#lfO7Ei1r(*@;$JCx_*&y}Q;J3Un5{HflIqVU)c=6hLZQdRmo@cNjkVY;F zXYoX0%zkgTti1z!TdS5AMT4`~Jv8wiUNDMQGd1^Um%LWe9|;YFl(#P($?*AodPzG+ z^X?*#qm(k6F9?TDPa=mAAE*$@BBwX_hH}s7+_3pWAn<2bdUX#-);_X zl>rH`K?To(udsqCPn~F1baCMH#u@b~&9TVMENA?nA@EK9$GUu9ck=*2hy8i=<2`rV ztc^CTKtV9$U8*k7!h>z8OA|7HL?Y9(yBds4+qjApCGj3A?U>ku-tn(ud**9(9cV?y;=jzsq&Lbk`A#5Yy&r?RDMYLh*}p zyzuoqd8{{2(>dhZ{lrXHB1Bd%n-LlcwKPRhB2Y%}e|C0Ae*EVIR;oQodq=kEMC`-o z1Zxr?W3RR?{dh(sMq*$^97bPsBTX^;xHqZ8Ld?yb!&Tsg17@~GzWE7D|Q!0dX(Fn1N;OparYG2hcH9+j!(77bhI7c$K4|+djjp$ zo~b8xQw^o3`ggi_rfOnJ=kWH^o;4EgI5BZTO4tN4iN7mOu*ecu$POQ{6VXo*9aiO} zVB@P!Ji!pcI(@R^U=ZO|baKW{S+l7PaoSw8ivvV$Oebx~5IuCo^K~l^Z`b|iF{+{_ zYr1=aAeE>fuE`m1`MIk3b*W(WX%J9%BU4+7qrK!UJm4VFg(cJbIU{Ku_$iu7_kcnN zsb%MR+)=pPx&a2Y#|bS`YC=>_6Xnq(G}F4)`({LSW2QuI`F<>=neunpvB(IaQ8*mR z%fFrEM>j^v;EnI{VD{0~u5a*9{nO@Y1QYO9ZonXVnfP?`A>d7bg3}R-gQ55cZ!d_2 z9)8D7F0hDhzo3URTlUoipJnPZPxB?Vd`bT^R={wLv0{ijH z!O;wF(bWw!D&8)=U&7X$i)siwf*NNHQx(F!T*pW5e_}nNB7}Q(*ruHgcX3pyI_csB zdNVBP7rYyW8iMr=4I)(9b(4n@cH+k(0tLRZil_f%hSuc4^;?=jJ!B_UM(EAflbHhK z$V=P1 z9J1*Ly^ev(!Qg)(n<|?6d+h2IW?L2Vw^cEpPqy1prg*JgWR8C|+mnIc`rRQ~8E4HL zKISsA;dGliJI6?3feH;%fFa>ah5GYlQ$bbEVUEAO<8(B2wd7U0(@of7AXVEh%i@s% z3-6QpDWZQI1PLG3NOV=O*21z^wM9cRf@hTp90CSv(|Q0Qa8sgB!6}BxCi4{mFaKD7 zk=Ci9{elQn%zw@(`i*`|rzHm-{sOjI4ryO#sNmqp2!6OAg_WK#MDB^BdLoH-b3BkW zEl7(uxV&Z{QYsD+77Q~U8Xx(Zq&M$cn%RUhDV(M5BvUh!Hy99trvw_APB{0Nj9)FCb7HxtA_=pd)^qg=Lw1g$2e}rRcHoZ?$ctw3* zgmNmE{&T%qntQlkMf9U@I-QAFlF_YZy1l2@i1h$MybxeVD*4sZF=w%>#wf8{fdE0$YQOHHS6-kzf*BjR*jaBSd4NW?Qonw& zi1ua#T^?8)YeF!>FxaZ&Ac*Wdo&$-Z*i|_V9x)a@1`g}?5eoyG*F5L18zB*6?6>TKN><9B?td9yxf5Y&E_62DLUyFweg zxuG1_*yM>DpOvTar)-Yw%6Jc|L_AF&x7wtL&B@guIKHhXiMu0F_}Bs%yR(5TPZzAn zL@47I=4Y-iB){*JHDj}09|OVKYhDB!Py!XiLdR~FVS8|Y;(Z`-i}6su4qDf76Bb=xFZBC?qxx%>3EPE5A%sR6YNy^{KDcM?LaFXA zsVM+~7ZJkY%;!lC`lq<2yz&Aa3HVjIg^!n$n#gwL#*!$i#G(NLtO5WKR$nE4ZIvqC z=SSJNoy|cU>qB(sZ!IIN)dJ9g_wjj>PYeJ6A#-}tdCPb~-9PWxmhMsG{Zv=m5Oxxu zNOoY;yRNSRdt-iFrR9{h0R}!{(tUT0^^wIR<7--MSRl5(2YzY2y+*BFe^~lR0JIZoVgqxqMnv% znQMP-X9HWX%!H#ZnB`j7%eSIWqwABMv8bMZX~5<653!Y)sHghR^K_keh4+(byZ-ush1c(MQ4!1p4GTO+={zmX_J2I* z{2~X0sTE$@&eEADneXffBJiV0aaCZBh!k$DH*-#kr~5O}e2-avVIH^$OyOy$Pb3y9 z`PQS%h}$TDLfQrOWUuLb*9zAwX~r}nCaN|m|4jgd4~}(4@9DwRFKA(~canyCrgij^ zIV}4y~7Y4`*e!OFGAvYdf`)Yl_2bAFTP2!?KVI~btG zxpsYN>$f++sp|G1I2MS4x-R-ERfdJV@n{G_Pik9{q2!Peh==f}l49pr*~w^a|CnvR z2pBYpj+@R;(R?zJxr6>j$GQBmEyLOZ2A^AdW0eCvA7Wz1n-qzoJv6~30SH7iv?o-^ zf~Qc%LdvS^n#$Xw+B2^jN<=b$MjMy4EOKNt9A%#Mva>^NaU?`NK!nV8nRXY`>|jgE z%vD{(ebv+Mtv~XT&bF|q#6qyj=8ofiKfYy^Kj2h@D|kYYjgO}h1gGy4$u&p1uagSF zB@Ign`CZA>cAiV>9Kr0+$xkKo|4xZ=7%3Ko*t`a*rI#N>qYw}Q2G)KDDXjnP19G99 zoy?lIHX^E^qOEPQ%@5oH1Y3T95M@gFJC#@J?bgJwx%UpP0v8zhja&sRTtM-?Yj#r? zHw(VDE_5QFXH^aeZb1!|GNOB${fc9~go3)1%B4gvPl5BWbgm*6ISzE7A%yoAP;UGF z+m4GjN`801=j*MqyJOn)FaU>Q^4!Mr@zwAk^uH@=cns4bAaNAI87tE-0Rs44)>r8^ zOf5p;5F;UX5%A|c==9j={`vcpk5z~u!zu0CfI_at?cL(4d2sMx@QAzhb zOWYz1QdN5)y0`|k7Ec-5x%A2wbtL}7;2_MK#KT{=NGp9{)}ZN^>Qfs!jY>O-2E(SP zrJ|tG5d{xgWPj%H9UN`S7ozglRBVwW_3CC$oO(=4F2+8`#(_+H$vP4P6z&=6 z+d;PY?=D;Uw4_Jeu_+C@F&chM9V2KXo+H1H z<4g9n8+ja0i6TlMMiC+>qv5XK#8iZNx1uisH}_cq7#yw+Xh)WWk<&=8c&wh`8|dqr zMtj#Oeck4OhL{K^d+D9jbnE~_Bb}1@W}>>Hj_Ov1Q^Rj-NxG(jpZ~?bK9{ z7kWH)rZf!+-M&Z2;}1GLJJJFcn~C0x-3z=1PM>m0{I3lCmt43kOVKp!Bu*`j`>O@G2c7{&gk?8AAwd~>YjiN9edbR&v z&2?_xMeSj{n%zdEMinA%v9`NJ)gU2Oagu0fj7X=z0t&_74CV5o zS^*HbiA>~u%s;q$*XoZIeNaIrO!gIqPiGC|+i%llc%L1o6V!upeq~&@E0EDy(jdKO z-_6N(>H-(l&pF&u?YJP*(KZMxE+|Lw_h5z>Nrv<7WcrIk()Qk`cl6CNmtCvhn!ex= zlaXuqtsaWB!_rK?f*NnTPU$a`9;w3eUX4$@5HSbd1UR;P)>#ux9I!(O2q{unN7TPN z8K=MeQ8Hquu0TMW1Fa`qmc2&|0tN`TJ-?D-!6)igt0cg*L@3ACUj4{`O^pN*^iEb& ze!l&+E;s)&=>S4Q?RDZjK`Lo#1UkA5Y*xht6I7f^EYdO|>UwvO;}HrB_tjUMhg^QWjg1cnX^ zd|Lzy-CxW6&13{KUwdws@6G@qW&#}!f?0;?UA`y?Fe5}nuE!Zosixt3>Ee*ER!^Z& zC<-YKnRCvc#B7ouk|nkqksBPV`;%-WgJj)r0qLOR(4YFdR-Vm0KP=fI|309y{e?A*fy5Qc>m|xZe~+{_>IwW@!-}|N818 z1VunY-hUp!RJ~_x_|Htv`{!--WjbOhJ;4|VORt`}Z^3V08gi0WUak8@EH!{349sJ8`&=9mJKrt?>c1BON=D#6cE8lleq&OiT`6v}% zFUzO6=X&Wu(Ie^bMxg-$N>$x-Rb&0X!%x%4=!LRvie1f4Uc72iuf48a?}8f8(J zFy@TZc3N}&{-s*x@9c?Wz5lGTlz)?V=9xzRWYg0P<8}{a?vL?O_fzUZwJRMk^-f!M zTlb0r9hS_>b)wCY_30mk zVdv>EvtM0zlhVrVCqqcIwr_-NDE5XsUf;o7%xQ#2eFSqEzog5UK6(|A79c|Ii0-w% zfDmKz+2ZZ2YQDT2&Mj`4-o%P$XMO*_=Mo_x;`x}B5eI3>wscsxZB-9WvXGI;5xb$p z)@lu+B1C7YO}%~f->GRZ6fPJbqZ#tBzg@u(chRb^jT{!Wl)?4YacsF3zxBo{{c2SU zyS}*oNP@*UirjD@EP8M8WOX$dOJsYjFnF8VgphFlsfk2?l+R>|t}U{d%#@$9;{Z|n zd`8?YWO35Ps3^te?0xYN5pTIoLPc4eL~oaF!BT#Y*9gyh+$c5Pn<7Wz?`fmbDxQ6g zaeGa|_j%J)1SUz;_>0i8wYb0_Vp5Ot^vYdG_W#NIN79oUn>GFxun@4_0S3Vzwzs@o z*DGoxgd>mU!c_V!A|eVMUydTKBPX7mrqJBjGHf=VB5$I9AsdWAuu)AT(18$4ciaR^Yr()%SpXnZY z1S$~ERHn1H)5B~xU-loi%S>k~&04~0Cl#`2f%<%JVjzAPTU^cRQn%o3={pF#i017W zqq6MTn3_3{5!BdPrB8D%)gk`}FXO*?{`JW%hMC$%ms;9X?HNHEImC?p*VZE;t&0&g zKEm@igZVJCec4m*i{_hf67$!xh@%8UEmDqthp>0k_O!fumrs1}*_2nbi8#+yfFX)O zU&jBs`-t@O$+#quET)y7$xorP>eo=4hYt=!7gSU=h}&R1re zpyhVyw-5E{;(xVUvg3VSie^C~^ZF6%za&wi>_R+tkqy^-7lz0q$??3j?xLN9bGRuP zJOwt(pAh%!sC)53J^Dc$u??_aJ!VNG6G!jk-9&S&Gn8I1jC&5TBfnz22*>8`HqjnL zi>_wfKc=bwa?Ro--Q}I@nkGa-&PgT3D`Z3(oj^j1{wLg$FaZN@{ps~)OC?~49)0mD zUe@DwE1rCfc~8~Nm|p+cqz0RgOaIKhl$ZIYW}%lEUujic7Hj-vEVV)7DSO}xkUZ?+Uf_ig?S%N)zoQP-o9fsFo7QUUe zrlKMkM}K0_^QhqXL}ehJC9d~a+)E-yn#S713;O26l>|E2*2Q%jl}*$g?{B%oNBmp2 z>L#HCAhSX z^9@hrw5$9^SiSbv5e>wKb;UCDI`>iv3l!e(uZc^ZaDh{9+|8+3jszd4Exmb2&_Qme zpI}qAYXMigzno#u(oe*K8zBr9STM~i|4xHYj%oD{PdK*j#8p<~K znR5+bhYA!Bp;R(m&CNLW$1Kl)hv@s|3$Vj^zIB_rq-@f2eBF=&32pp+Gh$hXA81pE zgq&WE7jEJ7u72^Z-vJO-;Sd5YTTc8&Wul_M^NZ5+7^}F7FpYQaoFj>Ft6-Z6*?x1c zMa_R-Mj1K`;+{WX{p~w>3U3nAid%>b}vX~UJ(r=`8f9$9T*{qOPkCg1Tk(m z?k^08SNfoWu3ue>nyZY>%Pz~lV>8lvTuG^YH#%0?PNna_k!Z+DV0%74W<9qVh!L1N zTxLL5+b+VzF&&#`e7=aXT;Bv-rlZ#W;-hjDK!U6l-l}mvLA&w?m4rAy3l zHh1VCSxS0Id?Z~hc=Z{hdqa~}?2lDvpP>sCb+Q5yDBDf&k%uou2OHHAd_1Bkw2G*y zB)Bw{KRxU`k3&hXL&~#e2f-Les`FXyz~S!Q$94Gf>|SrvSOt!8Zus~IfWFU{B!++5$|_t~9C#>5Cgp>g2lac33+ z67ij5fQI^&xybr@LLirCNvFd{gyocggSZG{gyr5l6KNEE6aZiAx1&2&q*z% zb)ZcY;9_u2)nq|IksMqC7oZ@10tWud%Z7!xZaw}vw3rA_xw*l0@KKu-N4SjgJPNt6 zLAW5J0dz>e&lW^Aa(p=Nf*FgG;|ugI54kn`eP)lhN-6JJA-wq0t6I9t*Q$w^1oO3e z#tC_37XL7P_Hz-dboELR074u@7d(O>z;dkENFoFX99D_kMG*aff#t>F=I27h1T$#k zusy!Gqjq8$n8Xk71l?4M-_vA7AL*AlJZ?!ZnC#&6&nHzAEW-nci1bT3KtWo*b*7w;=gy|- zGCXr}06~igByS^j`vuqdj3xUYA}%UOTagq1gaUi!=Uq!p1&@^;#4pfC_ga;CQ`9d$ z1&^X;q5zqX7?&tVQM*_4#h00bJf0n`S;tvj$80?JJ2RccYikVmep>2mlby z0SIo)zxJXc@XDtF~v-2tDN&HQTZw&E9m|Tk5w&Lnmz6b&;b? zvS7hAk@f13-SW3*d)_<7r8(e1+m{E*WbmuiG&*)V-11`FrwW?Mqne|$?)zGdG<otk?hy?wth3w22S51cF5!Hg0hk=+*8QgJFR`4ptda_U#K%)8L=j{k@H5Im z58Ctg_3p!mv|FB`GSg16Bxh;}XB3)PSgO!u!3HM3HS=c()HD1xtPnBF|2CX4SoIH- zO`8mDcO_HW?rLi$tSpZAZ39HSzBOB=!_oMn*m9y;XW=_Hj!b=aOLzc7S-Bz|ilYGz zk9)6H>#_teDAXOE$X(S-z)q~oQ*YAN?XJ0#ywE}*5dJK?W7FL+Yk82Lp3}mQlB6l- zahM&@AP6P!!?+O%6koj@Y>uLTx!Bwy=SjB*Y%18JFCM{|R&FyE~2)1}>MiIvkHGQ4a9(R^R zz6kd_n9E}^o5!#=PN-M=`pXX@^sEWtTkLdt7CL-~B==s|-y`0h&zzChX~5_JhxX~o z-J$NnfTH{R^NGbQy_NE0dXIFWiv2!*;>!d18EnSe$l|7;5YIdQr7D1d`#jD9;R7bk zMAgU;-JsG-;j@VMo4*!2=7}rvl%R&qU*ieqJyJv<{~QoQwab8e5l{AZDfozP;zaho zrNP-@L}9eIzgBtVMXe#`#^U)#!b0V(5;Ta0HvjuZBH8bF)Z*v_Q3Nt1TIsgibC8c9 zhkN}1u2is;2NBr3jf&vqS6OLSRT%2`_hIHHKgY$?0{^}D?vWSgO{bBY~!qwBw z`+)_1P$4XbZ}0>YE7oVvLLc@i`c&~op1}^2X6N0Fz>xUQm~>(`un1hf=7@pzxwOc6 zX@#jr%UDk+A%CL$t!uAzx*w9}(zB*~5K16L_r-qLvOD1fNofuJBHi@4Q4j631PGR_ z;_&&03(nT-E7yL$gd;EC;pu@6CySdmpl0B1UX>Fx;DYxzbHYZwXC#KclqU6OAiO@m zS9;1lSxu*1J7J?31TU?GK#Kwy&d4V|`*Ba_-EM4Rz4<%*Dpc<{L=_M1oX$v~a`rHf z5;T&y@e_hEO%{fG?Jsvs`87mlSebKLB#veUqOruK>t6Q8k77hKqg&Kii6#scgOwF_$=0vQ z9G^eu+2YuC`=UD?4E7@>X1cv{^voOBD?Zyfeu%iTGq?I5cF^e?@ej<8&)!)<6v?jU z4q`snhMV7Rk}6^*c-*=+VhPYdhQS~60!Md0e5?_PA2)aW1-Hbmce9tYihf2)f;9WQg62EurFIgdFIr&t7&V)n^3y3bu95PON z7l0wb%scF%_aPj24qH!|(u5Nk-B-^BQ=$sLHZ8C&Wn65WsSYF#C9_Idh&Em-0;3f`gPFukDkO;`222z+0=HW z!#6X>9-$We;%CIxD>eZKwOU*SwJ8y9bPU+NNoA#eg6Ey8uH9$(|<#r(}dKXHn% zCoc0V@h1H;4COa2zT_qsT65k&2rEThpqf)?dbe*C&FVu1CraCtNYaR$v}61}t(>>$ zMI%Ncx6AJKXR=gl0EgD@9C^E4SRlza{poHy$l!3@Mysrs*=H&M%`=?{rCnmf-vX4$qs}HJLylxyn(S&b4xibM+z_vHZY7-s`BiP4B*5zDjNB zr999mR&Cg0=+d*W$AE>u2|G~A(~Hylk!*m4L;w9rsDlGXU8rK#SXe}0j(bPIcf0}w zq9G{_2VaYzzu_|6CYyfnz|sO5bq=bO_3}R~4R%{_vWZigl-#}J1`k-tgQbUBSrv ztG>^|MH%U^M&`uB{^GE)QR$HTTMwi}267el8lEEkbP>jh?D2$A9P+d|)SwW8j%~Kz zJg2OtNo_TT0S!wg`2tVtSBBNloCGwkm$)gepZ~oB|9}X8Hnz-SGJA0maXSi#i$3Ay zvc4gjaFh8VezqTu(@)xVAKaQIgk$vAO5NJ>;vw8d*AK!-rbpFvqBXlNx2BJI>i0QIJ-Oq9 zE*Cg7k078Q?j`yT6$;q@? zyT3}Cjtf_S(1^a;uSpz>q-OJpNbo_S8wUjjuiWCwj>2&?7$N;Qsrr z5o}}nW%4~=%R)uY#_-$Asfgj;9@+#)h?A;rZx)=IL@yP;s3IswOWMF9b3)D{!!aAq z*QU@2g3SmBC7zxGYLV&UG+$Zuf>G#1AZn{`mvMV75S11xhuY@83HBUE2Ft8#l-a7`CHbR@DS~rWC#KUD|uPRgyO$LNi+m6H?J~p+gGwB zSnNJ>70)KW0U#r|!+f~62=mE^-H5=ma{RTntw*ob>Dk7JX}gG_%_I+8O28UU&@AX% zalnC)LnkBsaM?U;wOVRGL&^v*Fs}POM?3#0l`kC1X32@NYoUnDFk!F`UXOR#na@!d zA57+G=7e!$J&7J~-<2aH>U0rIgWFCBmIFdOR^@muScoC#omLhyXUYBQq#Q2iY zLUjtut(B^MmNO=+f`uY4Qg&mX#o33dZTYYJ;8|CIhwBihf8hD7`<(05M_B;{DXj|Y z`alq@co7ag>>mR(JIX&Ukccz8)d`6JLCcPXlJ2pAI--kfPQ0U=jZFkMowjQ&s3DGC zTYHC4u%tb+0D%;Wh5$y%!IdH>rXqK+(@fy-?3};sJ^Bl)g@*XvFmlt=U7Y^if&<6m ziM2Lf!v<8Z6pqMOKMkyjgy z)98`}8J}vVYZRD}5b#i7{l9*yggjh^hf?ktd0FnW8oRM0+)KK^@;U zP(?gLr|3pMIj?W3a4}ST9&>B#x7w`y3@-8qPo3C^$oXq-e|u&rv!am(B3J7A-jd3NNp%mdk(9B$s60wh@*&Op)fMGeVrKlH;Z)ctW4;iZ=vp*Ow!G$Fpw;Q6^=gOaW3sQew`eaGSe{?~~wf`(x4U48!iuA2ste$M3D zY+dTlBaiSA;&Jd3`dURyLr96_hE`hyf>lvg><1rX&3O$Bj1VLVyT_#v>^?UhYQTtk zitr66XXvhf5?eDi2wqEJ!%4n(FFGv-fp>18JPwRT{R-8$B7XWk$<;I&iPqh+H=*h4$ck|I9w>IO_VO13v~d98nqo) zMdtde^uR;+FTes3+IA(WGL1_|t@TzwAn1eo{jz;0TnL1gIxF#C`}Sv=-w@~c$04j8r5uI40hlCriNlb1>i`k%y*4e_=dv`j1P>-0h^8-kfS{HXq?;sYZ(Z=BU-c zE@GQZg;M%EubC>h`#4)SW0D34EJRYvu8b<#YU?2shDsocLXT)GQoyFKwr}9LpVs z0t$-f){0scekZ4NQ`g?s9%=i3&I^H$XDU1dF91WBUwnyBYxwENm=GJtUA-M~jbFFy zm4BY|Cw*c^m&q*K`M%vQF}@Ux{htXnx=7AidvDpzRud8;Q%BQC<9+0C^`BB9I}ahQ zr^whgAF3yN3F`NkIFN{XV7tUY-AkP&(9^KlTW$pwUqr99pKQ4(BP$LeiQ`7wzoOt$ zG!TB-w*F&=^UwQxo4wIQZ1s{1l}ccV+JK91FHVPgnSjdn0uluc+&VowCKbe!GTS_` z5Y>m?Pk(4b-C<#jydfOj%|mCSIVeA_h~;S3wd<`k=VYH;*uVgXI7AMXo%MTItusc7 zTBPVqPn-|4$_z%4gpZKCL@LSpg}urgZ=@sQo-*|F(jt|+&8ME^`>E#6F1&FO3`G_- zOpBVp5HngfMuHIvPV$kSwWAx(a|3e<#}S(3)FoBt=PPZoy?o4qvtCb{Pi_?@9uL3* z8oJA#ow{cfUs_Y{d;4~`zKR4jz=L&}wjRb6ZHtTW#qBm=f}<9G3n%v!JCpnrle)W$ zCT1KGXfn>Kqy7J^i;H=~XX%?3cuANPJ1hm-*B~MK%}v6t3hsrmHu-1>HET4kFwKl)iV#C62wx~q%Ob3K80_nszZ4KTrSC=enBNla0SyOc``6F?k|42Y zx(I=UUw{N4svi1ky(d2Ywka-N^>4vS(74+|ZMNGk>cB)7cxS0EARuW)KRkq>ioeZ* zOHI#Ig+h|MkmT(3O6_h;PGF3TeZHbYR=y>TO{J$*dkdBbf353Bn8n)Ler9unm)ovw z5B}adoyGH(tDywtN3lGJZt>j;kB2hfWo>%4-SiN_PPB-k`ym?TzA*EgWR9?o9{J~2 zS=qrGXeYau#7BXhA*ZtG=K%?+5fIr+m;6g&H{9q?@M3+)fJ1BqCT?ne+e#&_&o^_i zmpackj5FK?C$ZJ*dzRmy_H^ZiW9BOrrOM}61T^{G+Mj)U)TERO?_-eOdLjjARuZ5g z(h&;aj6MiOWuVAXgkmv*Fgq*PqMP{;@*;Pcu$RF6yXQyqlkz^^SuIgQHwhlP(2eFF zWs1=azX#34y>iMUYfiLcWctECv6nb`9AifV@wfWy;I*A5;T>4uMQ-Qnr3iMeh={_- z@UcBxZrg#*y=a73v5{WtW84H-ix+Jp_rJQq2zu?hw0NCuSVWJIM;&|9gTQc#wfjALqx@$ zlZ@O#T0E=LM@6rF@3!)<(0lCG9m9m_O>s!BWjwp7kqzBTwx9hCg@GFqGESLZLkN!B z5RPV8MMBEN?`Yo$;k-9r?jA7`8U~rj=e0svoq)Lbh4)0UmZU9kJt9b@ZHr#z!3BO zHQzlTA>ll=UC?%<{^>aYgE0f*e)J1m0zW;~yrlL=(<{_=>RHWzf;+W=g`wG-n|-K= zTr@@Vo=plrba_APbTd3t*n-tIyr_+5lK9iF&%g-4Yw9su88}@O*B`VaI+5uAwcbpI z4WAQ_@kCo=1Ozj{gJY)^TMG}LL*}IJAgxu8{-g9hP)X#Oe7O)q1LBYnpF*1kvU|Cy zxg>SqFAjd#H{DgP9~}~rcM;a<)of777YE;?fQmB<#{VUGyU^v{L^5xkXPEabrdKy< z(qli%a}h`sG5Qh~B#FemOiezx@Nlx{|K%Ci0Blf(|BNlR*XGLrKT--c*7g zeaXrNwQSacj)=tqj4e(xGqGD+Ws=esTmqWPAc!VR5}MemfQQ*yMF;y9+@zM`?jjMJ z1i3jZG!uvd92gQW^mx%8b{M3Lu#IMsA?n3R{q*<0-XcV<_eoKg-QV$!LM*;_r;7)# zsRtbXBhjl6(8t2zLDJjWI*|e(Uj$iwkGBMiOl5ZR5ZANocq&$JE0I`8{F@h|yE{%I+wXq^7#);j;ouXA34{^h$%Gw&-I zyv8TvC86#S0*84FpOu2P6y2`dD~XD&-S6Tpaa5)YUsOX43tZ*ntvFus8ER9#_(ne; zHIfmB%ZSO?SrJG)+@ohjW)trYVL>&$t1h2Q+dAF4`y)OA2CGB{HMZ2(Mt7|SiU*7O&9lvi7=g5YX&_cg%PHVSOra+%w{mx>Ap($`iV^ZGp|nQXdzBS zCjOayI_Ox78X!QxL$8H&M<#m>!+3*RNAduIAP8J#u}>6j&K92HIr4Zli(+s}yc+eA z56%gvWl^mDKoIt}9~_fZ?qrafGpHgMH)?=}?J>6y!}b$t^xaQ{i?*L)(+}|Xva>QO z#B4zeoA1i_tWdO&SJ)^|T|7hQYOy7C5c3q@3w99&JEiw>DMB5p7S7zTj0A)ZXJSJK zWB&3~DIYhf_4RyM=hP~S&L&(*j$g57>1tui0S3FI)yDQ_D^iQ4xhV3OXw;xZ-ssPt zYO~@5V`XwsQrbMO(;UXZJ|gbg`jMnayWykwE_g}kjwX;rme>dx$d_XKRc@HnSF2&( zu|PthJ*sEPoqyl!6KhouiRa>odW%Qv`l@*Wn+Z zkLRao5zY{L$8Qdl%Q^xPf2Z7BxEy!{Fc67JNQ&*|fQJAGEO<5Stc;&mE-uv*3mGThPQwt1kpYGwIA_BEfpJHhlNiPKa#zvL)R}J7(wAoXGXW!?Bth=XVda&N15 zq`D}4C+6D^TLRqQrKCLwoOuzV5rRmuZ>-NkKG!R1LpY8Yh*;lj)>KEtM{gUy&Irs1 ztzr0-i=X{r$ziY6h}!;;N9LPM%foo?j$C*F7e`*9-x!tuzIOo!cc^bo4I-k4GZ03C?o^Nq(uM+T$}E$V5J+oXuw^r2?nyArQd( z^;nitu35bpQzxei%td_|^e#V&mch6TbFUsYF1t=OoMOg4-{W z0Su#A>$4VVo&X3ODS(45zUAEGKAW`Q@FM5C zNakblxQ9D?u^&^ph^M4-pz|4F5q&O1m;1qS;?X!;CaaYfS6~Q2*!1{H_g=p7=*a5P zbpa1zZo8+FvPPOM7$DP<2vXxr<#kPOF~9W=HzLny^ZLOFE6*EgI0!EEC09_?5cta6 zTIYSUIloe*C^a&AN(&q(1Q4<7EkJ|ijVb3tn>px^L!@`@&h6`!WnHWKILNQM(_z66 zWf&oIaERS-XtP~Za?86}@Iyh`?H*rbVYFI+tl0jSTA;9QAKNwx=79?@GV)9o_J!%` z-^&3IWdtv}7}@Ya7T^%^scBOI2&(LJ2gde(-hbGKS3t40YE4UXlR>~-w#g}~XBqWb zz(cr1NCF=tnkhavEu!A_gEJ zo39+w<=rH|W--mxvZKiG)im<9JQIK*`&oUo%{}zib#rycx6$8x&4u1Da^y2PLK^(J zrvz~qpdg>;e~?_m%;BrWEvu@-N@~rhX1~GXFRT^2C>8C6pXd)l) znpz2-2l%yM$1bb{JOor*OWM^+3RcD-AYo8L7pZ^3eNv)B@VDt={LdX~P&ILJ|3()JXp06gM#>Kl0^0S~zuzgLe7q^CJ+A5J;`)g%PEqC> z?$!s|%a8EC0S=O;wJf0Lr=tZv&nEr8FU@3fjFpiZP zAVshG!iZ+j5y7{*4F;;;eNLNhgjdLxD^0};Ws<{_NO|%QH zGvL?Mph#;7V(@w8mOQg~Ya+K^KAaGQ?OWdM9{gXbq!6QO2qi?Gh2Rj%aH%=wV^?Tx zf;cTP+&#xwN3E}0)3d+rBBGA{N%B zo_c8BUh}u}{kjl>A?mw}mk|n|G>8avI@hFrnQaUk7WC-}6m@jT_ComLaCVFxkMe|M1mMhUM$To0EkCM zQGyqg)@K|Hs`8>#G&U_f26yfaz^-I^*VvU4lV zBY;E1r7-|dbe?3URPIOpK~81fBr9wy0SASPP!OP7yy*Vm+$gd28t$u7I8~h(*Lb(y z^jrU9_jxL#_Hmas&vcZIj|5z-ncz@;5^s6jTyYqj@XZt7RN9n zveT2bh?f6+DNZ)#@fo(E8;InJj`T)5k|JzI=tDY3bs~v1@6p#kf-igF6{}VcDZ@7yQ1HWP5Gk@IZE^Z|OC9D{B5YA>N^X_oqwM8WWzb`EZ<>=I}zO6{={Otck7#5hNhVkBQq7q zWNf+Yc07I!DeeQgN)Z#jXAwczo76Gm#C&*JQ5rh7C_{sR0kXGR-r%~}N_LJWC!vZ7sC1NA@T}p(#{hrIMnDC$kDkv`$U1R&?LImI;m(1Kn&+=Ggav+B!5P;||dab!QwVYuZb2qHD za}&?-y3UTf1d@2HMn`cre0B_~V#QPWx#A#k?$`)jK?+QAPJ@#CN!Gp0$2<^1-pQi6 zX^jYw5aneM+3)+;=^Kh=4^7Dbgj;r>e-qY&+56o@GYEICQhNd!W4{e{XQ!zvj;1pX z({$vdR_vlan5Sn*=g}13ug)C;`04B`#qEHJF(lpN8ys|$s$5FX7i!S-1PJS zL6i5qPMPl9se)NEd~{OMHP1cfh=i<#d+ygBxo>G(p2*BgWdgEsOxY2MaPZ=l{XFZL zSyR{%DIIMQcyXSzV9oAg&tE@H?Z4Ca@@k!y7e;yVe&5nOin?47dN;aBl<%|rzz{Sv zKKNbgys~sUPUsB&0waSi50ZT*zx&aX9hTvZ)Kt`y^h|8yG9mQ$lZpRHGm}!iZFQof zHF8Ebd&oC%5W|a_5B?-9|)d z-uI(9eAylL)@%I7RD2NsTPFD*?M=GXbc#kqG|1R5Z5h_af*NYfCkHT_`UqXkdNcD( zb8m{~=!oY&X``^_F?q&MIIyJVq1ct5Wt+9-z&-rWgh)A~dfrsKDr|Mp7KM*)m zHpmdBL1sDtgCXp?WGgjA5FpDHCjYvJOL_6zR{5o8H%*xs{L~3g9PAA`3_>&E{>#ip z5kb_k1IBAmh!Uojv`E8;XdtheGY@i__D!zo*z_4v#cN|$*MD3wXa8|A7fOsi z+jZCQ0tfRmlJ9~w7Z-*H-;E=S!NXW|*oX=3bazs+k@!e(lHg`&`JDu;W4MbS#q@zw z-f^X$O=#(%b=NE~(ys6NJw5_5)yi1amKV1uh%;9Dc;nOia!!9Aeb1gxyA0d{8fASl z_7gq^=|K?25DhC{`a_7xIaT=&2bgQx)nhAI0H z5Xzn|ddr`7?s3qU%}@%AntwXVm@t$0_UbhZ_)459{gMxB7Ym1AVZBE6{?bVH+1){= zArlkz9at}MtiVBOyp=7T?o9{S0vMZsAx7s(?hi-wvH03F#2Iix*Yj|u(=(va(dTM3 zpoc@M*=v}@a+LQ!*BO^2*SA`5LWB_aw1Niy{;l($pM=)Xh+OlE@06HFfI^?mNAthN zkq-W0D<9F92gvdvoTRr6uHNqf3Z^3iG;zQUD-lT3TBogGeF-Vltk*9J`AU5a0Z~fsMVDPU$x0)RL zz>am>wJCUg$aW=rcqENW*r{<4SwP_}u5--hx~k?4|S5hIP|6?w2 z>yt*23aPf1=?nf&$Jm+UXl+i(X&-V?FN?5E=sPQv_ax1}0tpy(+kz2W;Sh|?=-1vj zn!~JVZeykV7bA-gPJY>)n3Y{9KViU#E~;%ntXaO9CoP!}{PI9U{H+R&ckV6YgFMaw z@1?qnRXGB=bfG@?@UO?IpXwvkl_XDGQhS{jzAe@HS`XrOg~MB~rWZ+ykeq=XmGh`%6k6*&4jTAw>Hd2|Y*vheAKz z0u+V-Ao)^Ym7x*os$-!TQWzUMqBd1l_y-qCRp3W&M)-StG5Y?#AIWyu+9u;)8lpXt zSj~3l;NtG&BP1ea_46PiK8vX7Ul~L{B!Au(9$#PeN_oE2AL_z3_>-8U=U7@Z_`Do? z6ZzGgP(aMy0q3`ure8#+;k(|Ymt3#KDR0Yqx?qQ2686)(O%W69i1>(Q5%P^_v~2iZ zj}=}6LiNeIH8BWf;od%iH#Ps~Hnh#1(c_=JD}QP=w4_?TL83PT+EI}=v!SoR+R5AI zFE&y&DmWckW9#;lSXmW7L&WTaojIoNh^S9fkOB$@6q8TyTw4328_k>y6s^Ca0=G^= zUDuHRu_5U3y3?*$GgE+sndzgC;tn;>kP=d*);A~Bwk#_q0w8(WhNolN;884d{vAf? zfQ6+2nawaA$-}eg5du1!-QBk3L&*65q8V)+4Av1Nt4H-;gf;s;cm}UH$%LKa2+ZIh z{(A?!x%VjdpI2g;^TaP%tc~9ELO9D*6GlB+QQXKO)~B{c-B^gj!=tN%LmA` zopB7$U47+{5PrW}p?$sAzxHdLH!azd{2k<tuOw!mZ zmadJ@!K-F)FqF|PDQB2r)K}FXM{z|fJ{D1NOZlue#XG5R=7JiaLR*h1NQz^H9W{Nq z=EPA_7;otlA~>I`gDmxSmHX#ET6UkUMFb1Zjw=Pq5rtso)NCx-uOH)gP6$fMOmO@W zN>_IPgtzrwImPYQ&x8naGimhnjq+`phS&9DeHGkDA?9JkrHsg{qb80v)EV z1_&UDKi7l9m)|_>G|BV2Y!E{X2txfDd;c75yoSz2NGCL(FbIVMfrVmS%7QPK{ zlozm-IS|5kyoG#X+&K&koU;ga1@~M{CcoWe@mN{BY!=P+7j0vO+_MO~@HR9t9B~wQ zi(4I6V&KG)F`Pb$0gl6eeFlf%ORYo#74p^sAnu1I!4zd}e3 zmUO#)@6*ob!Tj+mMD+ zZ8#zbo%Wn+lKdx1q{Ro`4nrckU)J~LVXwNlWl+B*4Vqk&>UFdrnlzgF=i2<(^LkGH zq^?j1c6I9MwhVU!L+Ivmr}q&Am{ugg5XnA(he^8loYhzA7W>}>b*es2e6EIm7jh$3 zA%=eI6Q}6-glX&@{0G;9{^BD}BW#i2(a`1ZoV)0Ty)}n9BcaiCQY)5}k7w(pAIXDh z^4GC;u^7(ARnPfN`3PW=fD!o+#*x4Gh~?;E<3wZdcg(K-dCxl~4U_3y->b5HKP4V( z5l^jPDeJgB;-43bSC8Z`yg%<_ek`jR+IeZ_Vj=#tm;nm=qS->+Z$cN`%FB>fwHUQ{z}%QX17ow{8MKlAo;-&17u|;CCow=kyj_l9zY?{Z%Dwm=YJQL^55PB}XaamyAcEi z*T2TSYWoV8utO(L+#(S95BbpQ)u*rNA203%7g~R!f!**;%%KD({&^$4#c1}NM)h;$ zL4isLEG{2^1UhKdTFp1x8a42a@(3-2L#V)4h3(l}_U{0KyqE|gvUYQAyU#h4rLUdE zrC|`bR4#qxZTU?ALH_v+1Q*k#Eowgrw_il86T$@7nWx2ls0vUJWO_h_VZMVlcsO*3 z0Sd^DqpHpLAxh+q-$3?&=M$sW)bFOuE+euvl9Oyo5;2_OEfzy~;+x#U^ecZ@` zal42FCZ;|1{93d2bkkp+JwmVflmFjvbJz$bcJKldEZ)9OP_~lqzpam_E?ZB+JXX<* zTZDZP1&2>EF(Gt+mVp&}yz8&K5|6O)lX3zc&=AfM1~qH`MGDd(qWQ(}v#o!H56>c@ zvw)2wB4{AVb0sll5(q-p{BTz=jpevWbINIT>%$iKg3AlZ@7SlpIsN` znZao6Qy>Budui)nh9APCazreC`rNHNfFb#m@ck!Rn2e+ZIzNkO%G})Qx3!9y9tDSF1q&y%4kZQ;zs zJUW~6+}9~?y1So3M5#c0p_LWf@ncQ?7*)H0r1QL@;>2prc}5}?1#wbvL{&ffqYhJ8 zhVuu3Dc>yXa-zrtI!RM|IRywml?v5jpb)g0-tA+qqE(xIL_!z+J857++@G*l8Q>2m3kbmS{akx!9njN5UOx{`68!O zvQ3Cw;pW{kOvyci1hFxU)F1AdU`I8>bho46BTk2ba9X0;$F^?4p3>mysZ?tS8Ld+Z zQcUDo@o+Sy7Z!4Y3C=K9V&sYtGdQZ0{r@E`Ep5SXDokLT{_1zj*(35 z8jBKFL{QS{19xX6ul=||KgjT4>9zn!8GtTyiIK=CNG+VyRhdYn~1Bp^M0c~>Y=Ktyxh&`2^RS1mfx zNku$vC}bl<#JRw%^4i_exf3*FZ{ONdZ>WHU!m%y`r#04xWT!y0p@x=4&&|oe@14h0 zZu;kB#6x4~uwJgxWvPl$287J)$bg;x=O>rdC6W|%ZhKR7xm_nv5XkvO(badhoB%^i z%+vFL!Sn$PM-ut{a(9*t!q)ZsJc6Ct8`O$Ib^s74{}=D)=C7gvg=uxa#}Kuf7gu=; z>D+Cd?;K3)ePaAEpEpS(5?|*+m<@F0ySfZsuaUg;gggG%j}5oifZr-h zHHF-8WC;|*{o`BNokVo_i+Fm_5a8)FgK;wfG;(S68@I2{;=PK3 z(CUdWfM#!Thtj`Q&f+MP{;i}@F5VyjLC#{+T-2s5VQpQd^n|Zce2H!?A|fo<6Aotj ztPDSFyaXJ^HqO(au%}_t47fQaCbsc~;i#lDip~NWb&t91w5$E%VgHgHX z%Kjf9p?ULjpt_w5t5o);Ps;gfbHO1o9^cfL2$MoKB=@Z6b0D~8sHe*3RJ+GB@@RiX zemcxl>&9V&t9q0WYnr1sEy zI&{(fT zwkck>&BhL5cqy+xeEdYo2cEpHxzk#$*E-my(qiMLz1P~DUNh>d-MV-S{6X1G`tmv1 z?-;AG5u1c1x6nHF|9K%0i#AxS>TfM7Rrg>7K&Ge0(ZNlWW2e#n_EwmgR0vYQ` zlHh`;)?kLyKwdc=rwxz!WHv~b3NZj|) zBc);y=h0fT;x^g*-ooGM+z81Cbac(?CxkM!`ZUeLGJo7LFNYa%sb9Bj(N7NrD?oz< zDFsZycA%A(blvpzZ8B$p@z(#J`Przx+^N0$!KU>SYz~w@d2SQF!jye2c0`F2)xk1~jIAbG zs(?(y;;HrNNbxq`|31u%1f??6RCLA$v+V@1(8-&vk8{(Pwq zS{FH9vKVe%zICj!b~p%J85qjf0E3P(XCCOg>FnZwhZZ49vhLX8zPtn}7`DD==4a3m zkqP@s&A#hRT&9cHA0=bT_p zI06|btaO{Q$`@0=^9 z?aP>ApPj@g|E6kSd7DeGuh%-ug#X_r$OuwhY{d3RNjeDglAO&T5CI5^Mr>2pJ-%LU z$u?DoW0&8UV%05>;l6k^`K8jd91*2$ppGIHNrV;nz#yuW^VO#3m=d{&gN%F{Y3@hH zJea%EZ3P{czQ2I^>qLT7fl@{ya;vm`lELjeMW$QH@B{t{=nr4d&(OErJQwUej7SCFIK?3gS2Ul})+1VDo) z16NgHvy9tA7S|ixux)F~Xn}rxp8vYU3Jxn8W-{GkoTo%Qmr`ld$J7fU5KeI+kELlR z2RrT1ZWefGua7>Ix%bL;a?fP~ABadB~vZ>4(3 zu;~1zpHR)Q^5Xh&6;bMX@^&sMGU}PK>*aN0=`85{m_LZBWvN880Qu&o?j+j zS1?+(Ps*1O)67MeE+z0@SeoRpt2w{)Y1@3Y_?VF~8~jx@*Q>`zbm9~c5T2W-wVC*K zn=2q8@L!1i`wyTYJ^~dvtDSr!TKW%5!-{Uxf>)rVL<|$Z7~fzJiqmU5^pvA}u#x-) zI{Shl8mT7(fjavEi>3GdO-aiXagP#dBp^Q(4J+FVYV;7O__2Puf>qek)StXqhOck;gD_-2tAWjF4NcA z|Aczdrw=S59fQ1gBE51*W{&!gD6@~qqCa_&!Mv|={K5PR;+yNYWeJ)k{W$4xWbIYS zE~_f#)el5n$i3IhU|KtKDbKkXwz2BV8}({!obMO*W z%-qSh!|D*CmlN|#7^7!oTM@|o<{p?|b_*k`DHnM+Kh;LNn`>+0(SnC30Sv`H=jrNU zc)mQMR$|rye9l0OhQuZu7k=%YX+lvDpn7|Yaa{Gv`@2coX{t=F1a;6@XqXmU7coxL zl1TTQjoDn7|LM%*KHXJ5Y!X-*?~W0=HQAQ@Y1oyel3#w$3aI|AwB2#elOq$mAhY=kuKjlHLG9rYkEUD(Kq*l~k<7 z_`VfH1SUF1YTVgs``W1(WaGuY36?I0V@8t)kCcd^=OR$bM~P$TBzNijoEMnXujM9D zF-pX%$m|vGiQ*wTWtfg~>(h`TC%f%9CUOgItFJYaC*kIdu`#d_I?&GhQBoWWU9ut} zJq*_Ws|t?yG1K@dV#0N1E+F>VCD~n+{t0y@uv-YSm3`SP%=EP|bn?UY9XlDf(tkhJ z!~Axpr|JPJ1ePM#uREz3qHJ+*|90xGU#A{i7s1!ExaA$C>q2E?>Fq=twU_j%YW#p9 zyWzJcN0D4PDf2$nYAa==egHxPAH*UOA0JWu0S+XBcjKdP0fT&*@L22>^dUq+xi@7L zoz1X@Cq)x3HbcXaG*6S?H(uD{MQvB}?c%gkf8@-Xg$kq|vb1&s@Q5jQ5>+G*eiWP5 zHBU)J9_HNEiTXa`L5ZuWvMPb6o-!?WoPpcu3r&m?k?H<0#9!ZdZW1LF{FelAuqMs#;PhxmDF9j)^d~K4I z(_AgH1IVVim<4A9IofvL7zjq*bn%t0z(ae*N1@+A-`>cbN>zx5<@|LTi@G;a*;mP$ z@Cm9?;leB9v6P{%m=Jp~y+s{0g`JQ}G|OJQjO~98y!9o~lFl1nbPG;{fIwc&Dv_Op zQk4M%d*q`=k`1Zm96LA@E9~zdKk3l(P()4H8au;!e8M5vnu0{GBxTW`apRg*S-K)$ z-*H+%K*;W*3wOokOyS&Km>FtTFK0)a8yp@{fP%gwl|h-plnoPcBPB~B@1Wy7728k* zE$%JZIOWyZ#gm{Q?D5D(%|!0ea`?1`EELJlsQi`Uy^gxKo^mH9eY)`d_pEZ0-~E7w zHs(tARP&txls3c&ds?41j07In_!N{|YzDhO&#p${%yjM*sNGj6!d zBIuN~FFLq|=F7*F{V4s)hmTR?EjEx53tOZA(?)Mv#{mS^vFwwPJx|d@0SY^5)>YXa z!qagWTQ*gnp8$hzJ2s`L)=-P*AgX!H)KKqgxPIbrzcRPF_0gQUa-SoE9}VNk_aJ!$ zxrq*M3i*F0hK?c=hqPM00{j(f4#v0$aOQ9KHekENBm7Q=E%1!nypIdzzd_ZyYd)LR zn`L8YQ{35q+M%70R~5k%X4Gz!^h({o_lJDV=XiK zD`PR(`|jg7W}=^9(P31!!dGb(E0G7s;m^k1{T{Ijw0{1}R-N2V)8dh*-a&u1z7rR^AZ>E$*EF2y0hCO54bqwG=fXno!8x_UPKI zpWs=3QtcJqx^({n+2ss}!f&Nc+^F#4t;ErKE_%OsSH3yY?xXCzVH2`RDS1v|P^;L; zN-m}+IFs13eICA+OVt790R%O15pns6Pnx57irn6pj7<8S`&A%(t(juo_;Am!W^7}) z|D>L`F!fPv#pP_VX{odXHB5Y}wQ!;#x^+6WFVdJkgSz#d$6<1bp{fvID6*`hS~St^ zb#l4x4zA?PZU6LN5yth&b^PKCV5H3lc633yM&K5 z9H%_I2sAu!B4!>X9d|mzkC{hqYyt_Do&F0t*H6}?@8kVGPBEAo!w7|G4SX+cgJAGzI_=>_xitD4UxS;@3FsZ=CL%;%%t~_816TMK_upv3-ly=?uP2 zNdGdg(#>yM%`@t*7-Ahi`( z7!~aKN<}}Gv$@2Wtcn>^J=V0b5b1bi7ERB{Hlp-j$d%ck6gr6pk9ZVB&0oDhQeo9N zP(enDoq_W9_7&%u?7Cf>BCgfn^=3IrPAS)>RSa&Y76f&o*Xs|CcWEhzqhBt5$&HHs zV%HC~67OB4;PR^7@qZz5|M?5_Wc%fyv}*u_ck;Ga1Pbdr_tezSWrwhOEtoSd<+zeA zxxK%aDlHyi<(lu`nwPeSQCQPzV8I>&1-uu)5Fzs8eN1hO06@L_s%~9>E0NTaq}uL9 z9oK(tjoj5tq?}ewSGG00>aLII%F&9Ya~;Kj5Y?4-o~hdb4d(Z*e~b84V|m45!;_nE zYno@kxnJ-7T)(`Z7L)!1LoJ$a5mg%jauVq*oWF%oL=eoUS~C0O5DdLabb|=F0(8i_ zC*Eh?KS}5H?UMAn`p@Gr6fO>@Hj2xcksH{C&gydmBQXv9qL-eV`Mc(0l=BS=eq?h= zec#PP{D!=wzVWXl$_}?jnYeGnM=XcNj)FurnGpk)mLo?)()jq|50#dxl9^Us@Q6U0 z$oac@#@W0hIz#N+>erOiP9Kt{E?zB3Frm;PkH@fP?w7Tvk4d zDkb@n$Osz{dXlvKj7nrJJiK1Kv#b@aH=hCRAd|k^kxi9t8AE^Gt?`}g?BQke{aAst-vYv-Fyzu;T3nQN7-M=F*hDO!$5(eC(G%e@>&8b`Le{esp4 z4Ngw#>#yf0)cVo|3KTK5P9Pz#ngSiZJ13TNM$J0z0X;WLg34)jM;@n#Xv&|l$1WGY{}H9LEnzV@uoc~KZq6)pb; zWh47khiY`A*msEq`5LO-cJ)302wrw8s@VF4{vz8YCzWYtZ<=lveneX#O#jzSnMVc;1)KFkOzTk{6HJ6qc0dnhtK zq6xVK!9POWz@%~*1r`ij?*fO0VVg?x3Jjx*gZW*B3ZOum$;`W zM^r3rrHF=&arx#!=ROk4NAKAGLi`@}OGu98(XA15>OV`_u4wrZ?mvsvY2T;#?HA0~ z38;lrFAv#WPGOJmVXC!l#V=D~yqb|O@-t6%dXZ}qEVLO)w3*m|Av;a{bce`-S1jF< z%;fd{3ois~Hhw(Vn1xp|4oi32a=Le{j>L{labf&p%e+?A{`Y3qQ|4iQQfQnh=B4}n zeAp9yL5i2p+@3=2z~2-9b1b629m&xUvyA?95w{6li+54Kx(lUvM>yua-8L3@`A&8` z{ubWi9w6##cx&S=Ahhr*eSp3R3`a(TZLy{woamN zT(JW8;|cfMeLIXwkt%uZBQnomnDe1y=r#DDAh><)>pn8$lH5yWytrI1(jKMDRY!Z4 z?osD>n}8sO$L0C*3pXt$&P~?;Cz@aMA6J(1i3!90e=pK5I9%DeFB1BHCi4@?$VK(! zx!Oa=fP>zf7ePZ|dtG0uiwS&or|gf|!z0YdVsjvu=Q&%KeDY-Du++)ozuL?Zuq0Fz z5HPcyFQIf=Hj#Ykk;gf>1Ujhu{ZuC$O9YnWFYheCt_yt?PnN8D@AvolCC29`G^Q|R$6aAe0p>9lq>r&5G$TA_IilnC$6WPzkZokc5;** zoWGO;>gH6VTNi5}`OmW{fMewW0v10Pi3E^=O1(ZBGl4Lj1pzmO!lY&@i+4iZFd3nNLt zE?A5yh}WFx<>3(DT)_x|cBfB;Eu?Pf0uPC=DjKGfebUWL<%EO=cj%6>ckL_$GAOj; zZoQwY*~ugOPDpLoUMg26<|>m!fQQl1f~RiRdwrjPT9iokmxIwMF3Z$l!FP(TE&B1F z{9lcU_%pk0loV6S}&SSG98 zXjXBYYfW%=`JM#`b*5AE^U9X65VOqlST9Lh(p#728X6}sPu6Huwd~Ps_j|E<`ArAv z_fcJzjx}#~r>7LEd!rD6T_A{FC&!F{AEyResFp6$CvEx~E?6tj)f3hKqF@F{u}^TX7}4W@D8ZX)Q8$ zNRZ*73`L6Ekzd=sg(t<-N1Td_?6POEzx{tYf+2Fce!AuY6&DP?{`Lt~o#itDD*lYx z{S6)u)C3idp;*v}9r~vhGMJve{5kL7q(mjA4C9!}wAEd@w{t7WFIy41f)&7rcS-q# zj_Fki zKp+AVbe%~y+h|gnGyS+-Jbg4yWgOm;yQu?jN;I>RPte9=_gp(6dXam`g@@awrFW^> z+P!HtbItt?CCnE3eMS=3&Nv8F-yj-FNEPESTW%O5>?IU8V?`{dO{dkE_nUZ8f+3%{ zR#1ZpC%fzlOg-(%XHR5!hu!X~iw#+9vV==VO_atGc+1qAII$8+uLJ0qV$ z7Q{-Hj*X`WdoIPk)qDgTo-%#?s!HB$%C?4ou>b@pp!1lhvzF}rrsc2?>f#~GA)SKX zbC7lSH^ToUXKJb8%#&xr68LZ;Oi8a#ct0;4qGAJw_}C7nR@pmt!#=a3pD?!w@lI*5 zrup)JtH`o(aO7A$W6LZ@OG?(d&_*g{@Zn5EK$3|hhy*xR#Zd`NW%XyM`UrnN0nWqj zlwL}q4N}jFY2Vh~-{eJRaXWqXV6fEaPb*%BiDb=E27xsV(>KkK&BAHTb_jB^LvLr( ziTgcYB)phG;#bX==y+qJ^|@3`Hy^)``#!N>BZ}0e{hoxsYP)euKfy4!@_ztB1sXGy z|3yz159F1qGsmEVVgU&0a1g_HK$mk@zR$*_0SXS6h77f%QB=*psHyhcFMoPy*GId$ z-asx)=H{g*pJVr3GH12 zfz9Oo7ZR<1D@gWDoacTl+P=XxkHQ)Q(?9)uMq8~E$UG~es=$}{F> zjGE19S}2g{SyblL8Tzus-x+T8d0kV}?hfWkbi$We*BuZRRNIKL_Ay?*KE z{zkP;?*R1imR(&IqcXlTuW47UqHR0(<##++Ee*cZ-upg79L^n&eN03p*b`L|Ce-r$ zvj0zDh%N5hYs1E4VgQ53aR-QexE3)?6)u~+x&@l4rIa|Lv+{H%&kAzr_CV3ZdxWPvhY6=v0dPZfnxWoO+HF(@&3Ds5_h3-1lMdrYogpon)N{^U#)JX zPndfjr)+J->Kfb>9jx^6<#=!Y%qACRQ}+30fAj1Y9$iTv^W7}3vh{lTf2uHamC1p>E_2fFI4AEq=1D> z>)(KisJRK2{E42w?nt}wd0g`lBVZbWq^-9W-m@AB;c+CrFa7HxeOPFmNdA9P-TWVF zH9A4C1xR%n*XttInmr}Dr-q2S>_p(O`{ct(>Xc9;xu=)Br-gO?Qig4pX3xfsnGBA&deWx;vfBN8KD(H?o}l*?3e$@Jx8~ zFVApQVoTs*XV_^+6G_vZR#2UH9L%5kh1f)3A^QD#qp93i_7})F&=xJpMiCrm)md&d zyfG#mPkiXLu9iXDshdFdLG1F!US)e7VPZRP`%;xEak0*IrC59XDRSJ)$OHs$Qj>QL zA5+y!2jXgE&(rFKVr`MTIX$H+E9LFXC}gprJK34!i6T zOL$J%)*G&beY7W~`}#??9=|T3!<)9z@?!x6nKli7u3H(pSGA6XgADBa1T+c0-RWsx z3$$uHV;hYIA%}$OLv>NX_1WK+>UW=7pUjO?xbpmrz(LT>^<{fJny2P=0v`Uw?1e8E zHUj@cmC!}GHBiN}yzjC-#D7?As**B*L7;}+qHAhq5(QYhc4u1os+OLwuHNu~7&CnY zPw^Ux`p*Xv53AAv1yqod-PeaMsT31 zNJ6urcg9gu2DkVxH-@cq%Ycen(Q@R)6EmR2lWK2oyX$l3lpvxlWW7eGY8Nr}U1s zE#OX=Njf#CJNTaf=#}|WaJpF~03cif7dsRu-J(f83TDG;FFyyOQbwr$susa(&G=vG zSDQ7b`_lO2ST{~E7>6e=d&|*c@A`HMZX=y+Ah8g?%@hj*KRM;_?k_~{m8K9|L6?Zw8blK4*_b; zAv+n%>P0l;4$MZ`RiFrH`M^PC8ZVb9eE7+2s`(8!r&!>qT9-E#=?9Nk-{vW)V_x;S z6u8-MwIEijzOGU_(2BK9revDiKAF&XL<03IY_H|FZS~K&c(GX_- zLvH<_8$`jwg6j<&t6kqoU@a}JHd={ArtWq3?L2}HbN*?{3;xbxj@(znMIu+d?IvVE zFRMT)QphEFudpWapnB0%k($gTCOLmSN5qKha$1HGuapuI6iJ=0nJRms1bWq`R@V1! zW7M5tpI;!|+Bj4znoA&kSVweNQOChDjf&!aNT>CBKp>wJ?QGx@74X=C=npodXFI#TB+FS%Rc|A0Z2$y;KgJR1r^!lT@NiwXyTYfK`%9uewXSOg6tFv4@qUuM#n(0;uJ5u|$_ULq$_oEWSkV+Zic9VtbZ#p?8FR zvGzz!BQvy~^uJbgYv<{7&uXwd2Q5sc_7HUc6QADlJ%zIhksJaY&DXR9G76_o`~NMq zDQ;;#GOMeX%aQMj{bJ=QnfWb9Yhb`a<0u3y=twg!*9#~-msIDQP95sAB0W3~=M~c! z1Ur$5@mgu#mMHCppM>&?s0c|L6SaQky|+$Ql8usk9@GNOJkkgZ`;$1or~?yog_ zOs2Y77QS>G&K?F+n+eLw(SL#oh~wx;!FIcn%^o5Ob+IMDA(*ERXd)BGsVD@YnbFnr znQT(XfP-amt9DaN4R;{Y(h`#!W1K`oYjGNhj8Ie0)Dn8h=;E(e6e1N-phUoXg!SlzRK0y8WXoz~TMac?oF9 zE#i6O$%AJ&PrKW8w7NQVh=wM_nefgxG-puRC-fuDuE+v% zN;3CmJ&M=#szt2+sfVPd0uHquT$QlYPV9Y8I&x-<m=%cyUXK3w~e_JxJi>b7?V6c57wpA0vc8U)q8mq64p7ysH*ky4Ewo5{qX} zp3UIUL=yMy*v#hIBFqnZo*v29#F`DKdy{@~eKTQybwLui0ua*+KTa=+aP*CR^S5li z6}pi&TRkt&)tiT{MP&K=oygZx*&V{?GlCqQjTG;Cln|vN91r?(j`H=W5c~oZ9GxD! z@wT_veMDUJeA?Z|;3MOctTp01^_w>vOSch%Nc{+5vk2rQGj6zo3{z(^hdmFK$OtXt z%&MLoLzCU;PI_!WL)D#i-64)~P+Zd>Gqw2KT3i5!=a0j>VE8iDFZkqjCg*@a&;%`4 zb%aAM2fFlXA`nIit+h6K$PT}H>fjK>(lD>Ty!e6!feDq*4CG(k(S`59&(Oa(Y(L*N z>~wvczXH+cjAyp8d#iB^PsyfA<$N&)itzErPCbkpA-u?3q9!Z{N_h9L*=3g4hq;VG6Frdz0VtVEv zA)VK(naDnq{d(BDdmKbAhNV4Zrtk8NfzOKToK^BUPn@5HxZ%3jKD&YGYV$fZ$TW&-``knO(n@#CP ztqQ62W4+GjULMCeD6DU{O{DE|07Lq5o!V1)d6O^dOK|ACMHp|U2l{IX-g;dhy=t0= z>t4F|vRfd=ddhys%<1%6ZwZ(bY|Oabc%+VL29Xm02u7{qQ1tzmuYe$f6-Lh)eV#-} z`A=T_cB;1K{iB2S&@Lcxb^E16ZeTXSGiB9Do7&y+GHvV=;u$3rNI2I0+qe3g%wIMT z80UJESovl@`-F@ktT9{WClE^P3=|Xc=0p;aXQo;p}B3~baG{;om2ROgA zc;$i%oaW6~A(F$wxq5Q06FeNY6#Qr66cG1SIRXx7)1*GFQ~y#X03enKmanUwy+9CV z3F@M?Eh_Xf&MxjBu}YgRr7ygyya?>DaTM)N(C4-<`Klk>2)rpao8H!@&B50PhltCK zDRo)Jq1{mQt3%M$mhWE5#eZg13|@{ZkgPrR^QvV87$ErzF;BVMQ*I3Wzbfk zxHG(i?pn%{r~AzP`9qV|slpxPG$I-yx6_~Yy^0%>krwfiYokGKakUxWu^EmjM=Rs+h?fMNlFf} zaJi02jvw??5_jmm`jJIw#aC|oPF7J9!7h}g0GtRsNUE?#xE_B5B49Y0Uk35F=+Sja z@PGt3Iwsc4{%8=N_5H6a=aNpdu6oi=bK(`s%25+qid$|Vn1~a)aFPA3at2}{5J;J7 zW-aD?;xAx;LXFNpaz!yV=gylq|VA{j72bnsMb?60VlL&k2Ybb+9SCBJ>^Is%!E|#*F3J z*_uYxI2q!HZMsQzZ;~At2r^tELH?hx<q--(2<)V*_5H$~*WeIt z<12p9WN7WvnyEBqc8^XAW~lxbsIL-*5}zh!1=Pp?Tgo~r{`W|S1NSpoVM7%%Z1d$ z*E*=ZM!z}jgr70Fu~#PGg%5oqP(qts`SC2W<jBb13Q)i4Drs`8c75Mq9C0CJF0g8hSjS2eS^8=e^c<*ni~_E+p{vrT zJC$I?rxP#H0Sb0$&K+ScFO_3ISJqubZ#>%0O|r4InD=Q?J@={qbu*g51In4XJz;qI zNQ?%hq(*2)4TVGu)OK`BRgr0rOy0v#{=NfuI@i%(RE87j8raNq(N_;5zVUK4y4 zdiP`A8KuAcaMhrt{$O{Uw4g08CXkwHLanu@ZBJ$Wq%5k}OLI30Ayj#db?R)5Kp^p| zP($v0WJxZc=t*Fkwc#o}|5YO_07G44=3n9EIkseWCz&5NqI+tRIJ;l0jbR9j!Mf2aNsqn7S{N+4>T64?qMpJ|04)NoIfe1Q*ZB zBPbN#D7W>t=J}Mxr9Dp<;k7@Q`C+*Cg|1zg^AfSROG000$`cU^56fU@GNHjBjshCM zAx1+I$p8D)jc=x;dI1aX0EkLxPd83_CG3<+opsiz&=O}^kPlOC_iH-!RR1K>UOD{L z!D%eh4TuO?oLUo8JvX%@O_jP31@YU}b9+x)c79azA37&H=l5x|N&yBP{yZedqk{Yd zCogl7AJKf4UDNGL*hqRWQ>7QQGv7SjpEr}WfJY87FBjMOBqP zydC{_91zjC)dCxf<^Q@YQze5sJAQLk+hzl={Ub@^$DGB*t*H3I8sKXjUn}qb$V&2$ zgl`XIXP{09u6ck!$+D{^{{wr91Q;QXPzZ0UxH8?`T-?1E6EVz~QAh|_@Zf~~1Gsd=(*lhk}G&g%X)Ou|)*32G{l5Z9J% zkkfVn4>h#Y*CH(vYIT$ZDSP$!{YuWL2tnU%uf+9cy`Uh~MP$lr_WnDAQl`0PES16w zdI2XN=zRnN9GQc^dGwynG?F>H7o_K99c9^WAk%K0fr-ZGogI0N7PFi2c)?k8b&%E2 zrq%q}zItRF)+RbwZv|;u=%65!tMa#8ngIgF)O8(gi;1J&+z1F=P}vaJQQIzidWXn) z_9|VzGRf8-K5+9o$+2-eeQdY{B$;HMqGbd^_yjiMerrevoL}SJZZ+)1?0w^Z!O!Wc zuaOEK1CFvS1#dY;d&l$d%j!AeFwVj>)6#Pv^Nv_W79d3qv)~bH((WzyxgEZ0AL)|C zwTRQRkpoxk@Q9lo`#MYl4i?xcj+P@8b-m$n7+Nm2-$33>5II3Y&Bn>*%IgnW5aY8z zLG_KqqT@=m<_e&e(2F_Y=I^KFLDSau^^iU7)!j(H-wd$Jta;(KGLE#UC{pO^@hkmG zmi1j;PzXyWHtktdkVIbEmDlT9{ad6B#6ZQp{)exM0u)TYM-?Fu(LvDMFfAPXr$I*M z>y4u}ftj8&J&y!17q7$XrUNbhKQ#l3wq@Vh^KrP=6T2tqE*@NE1OYS(KCG{7L^Jr4 zZQVS1!ke%V`S#a9NO5|vvZ z5W$R7@#_GAs+0WVR6uqBLeF`scN({3-~=4&4IyDqSeR=G8kRcMPIS!j+~k#Ecf0*k zyrsobM7Y=`(@4I&SJ<@Q9~H}y)3kkMd-64CQP?Oc&H@{UcILBuyKN$0i#;3MjXGH| zK?O};$3EU}H0z?F$iA6H0St2K-JX7TJzwAg8~X=k#s8ASxi!U8Z#FsPFTHAk1@dr2 z5GRTa`ufn$Xif9LOhFnSzT~j@g-&k6R>3tnL*wp(udyU<;0PnK2!(tMYezhd#wgsX4YS+#`x4{DO<>tG9gZ#*m6)hFVeT7V z?8S^nVI$-rvdu%dh@Z1u-TcBit=X?GfJYK1d--$ucXIbJ4>ZmYj>wFM!mcCJ`VrQG zWADv#F2CL7>_b?NPN+kpzK4SR!D{4l_B{GVcFT%n!n(3!^obaruBzMWw%7UMGG8$t z98AhYKYp!sszwOpemnl59~=aRlHMbCtN*H7m(P5kb2FHFx!-$q#E)hE;v=;>A~$Fv z*!m)}@*-avBkO~%)c2k-5{VJaww`_ur&z^NJz_116l9C!kG8@i?HlUbL5OnWM{5}T z9bYAkMl1Fq!VmBL5j%pj;77I@CxJ8Ec@28B^qD|Wa?ct)v_l4q=ufyxM%tIMpeHb3I zC#v~;5Yfqmtzq|^H=N~q)oJbsf{p0e>UvM8j;EWo+7S7+iKd8$%~5&%IiE|YigU=1 zBp>etk-EtKghhzMyTypcd+lBXhI&dykD0`d>2NOZA|35wG#|XWL_mx#Z6f3%?T*PL zX>)8o(H;tgU%gSI%vRDQrg5K*2fNXSyK#g~qPVvN<+>>jw_I3>RF6eCMZ`lN6J1>q03(LOi%5Ly(~=(UJLq~G zhf(4DL_SfdM_b{rr9V3MQaZm+yk>hfqPbA`0w;Xw6Of$|4Y+MMifD_byU>yLw&`>N zGIWwLtX}aeMI#vsPF0Z)7h-a+`w+O&=CWKmhO`QBx{*CuRW)Ts$ z%+4fZUMPDVkd4H?R7Gq=6&Ob3Mt9QxL)nP3h@Z{ry}~Iv!4otsP>;@+5|OX9V{dP% z9N`~v9IKs{{30evgYd-`4cI)nYMEy46O%&bA~FnKYw{bh)x~ zT)Bb-6e1{UK?v$+N(kvdFdGnbUhQDV98a)XmE}kzg_POn9wAA#81wAe(j$z8?T(b zUL$XGuZYv=HMEC^IzWq9jL(+2?-9sIsYzzwb#k>_XpP-wI?=%qzRg}zJrR^E@QKihcK5(Ta~K2+yS2PcZya5^v7iVz*)lJJHR3;!Pl7jD z@fMLB-||N&L)eN}XT?&)W-K#r6{m!Z?B4Yw#K%qVvWVtWHhI{u^oWVd(`BGT#=#@K z7pQyD2&Q+aDsc@WJ^P7n6YJ;c@~Yw^4bh0a2-ZxbW*;)Vq>gBgkc!xc6pmLYM}>je z$J`>`BJ_~a9~E)4XM2-7PYZ)x_N8x#>smPCI$dmjk*q`jiQjg^4eV=+@XuhVSDkcE zrwi`L*(d~AvQTLfVmv}8=|6E7XU!wniV4kMPicJ-!Vv;GISAEu^FMu}MIW)6lFeaK zFc5YwuOj>+r>&#gZ>{mYQ5^vgK3X60E&Bfak$uO1!Y8tF&C{IW4yhH93^_W@zgY|; zsbHb{{IFW_9$^zbZLIy-BOw<91Je;YBddC+H;C|vkEJAYDB>N&LN>R4aXK&c>5qSp zbgW~vf-3?p8r)cnUNanu>CqMhl7BuqFa#Ih$`%r@zYaa4=@Aeot?4Uqqe!srfb%w1 zR^HZ;2E+te0vAp?XBV#WWe-({LW_#m^ODCY0v%hxLKkTP4UY1)@u2eia6*ryX5j7f z{(A@D1S+WTGyQ6BeNYf-Ubs2>)h{ng_8AU)!Xeyzj!TO9q5mHjW>=? z86x4eaF&n}-JNpPVgy!1LCQ#JGF>4bPu@C>vJoC5DkE;`rs98h+*x-|&hmkR;@%>^ zW^S)uwXk9$-59z(F74vekP#Xp=#iYvWNJ-q)PWT!e}`(wBZoz3&FSlI!YJZ8i5FoQ zeM3v2hDx+fS%gELDs)4-M#n*d=|19PGuK@3iBTTG9cu*#%_7Z`=;{PO(2_pfUVX4e zn(Yfs%)5VQZ1j7*XTT%7xDd+pBB##jS6bb&AIhKWGWl4^X#{8OIcn|hsv@K#;3N3V zk?X8-M0)Z-UovQhWHUOi+p;@}YFnXlSsa2iBTVb7MK)-w_1B6Ppj zGA!UBh<6#(H>kYtBr#w8 z>tKu!j*~ZAVBKch@%O?q!YH_|fQNU7RF9X9B^LnU8zPZCu5n$~j`SMiUm0Sd)% z5Z89(h=kNawVvI6%uaPL4kGZ*BMgxABaPFedi4El1?Bl98pir~i^z!HHPXk-scfQMc%m^Flu3X=)7c)R1nZ~=%dhd2jZxzY8%qAcqv*y|X3I8~V60)Ri{7D%Nj}%3?Mc;{ltj@vW>;fa{ z-sFhtzrnYMhiqYFhPY;{tiT~RL-zp(c@o?H_dUl)+F4JVpvurf;6yM}*e!ED4>P`0 zj8G6J!8M(q)ZzBhH`ohh?{GUo@*{*(Z8Z@brwB*%i|C2`_0Gj=_{7mIxvk_qFhuNs zJNca52)G|)6#`&U}X_bxE2;Eir0xI3R<`0x3@oKYGE>}M;HUq^YUbV;w zZV`*fzeDb9yE|u#)*^+YZR!Zj@q|E#$aVN>6}J4|a}!$SLx^YacO>iL9&8bK5gvU* zb#9pBhpqhW!X|VOcni>uvPXuSEqld?zlit-fr~CC*l$E*rYgUdcrcAZIgSI_6epZG9sSh z(?i~9DwZJ~;S#T2YrL*Iks*U@5cT5VZ1gsHmL6 z{yWyjZ_4`JU$j!7!j<5)Ez|MSe=@&6tLKfQuXj zWg|quBE>Ied+cMP1bS}bE|`j(-}NFIm?Ph(r6fG`1X@xz*T+#BK5ZV7B66rBZzXA* zqllFe!1DA2d#Tyo7OJ2kjeHRX%*B4`|IH#lx;C86-l;|rndrob&4|ZFh?2tQ^Lyb9 z&~wtdy-17<^^X~N?dK9KA|3KCto|_`>zq5)Fh*^Y>LH@gA}bN?Y)Ib-u~QNrM0W&m z1ZmxyaiTF;`hF-wz5AyR`I_kn+(B3pHDWy0Eg+3F4?^xE5+leXwjx6r`s|3)R?;qA zttIZg5j`9s=CUI#iOTDzdOg7z8C~5lN4>Ekm?GgFIZW-^cT}Mi?RVrx6GN|JWUt(E z(RZCaVr)Z`EmN){%*y?GW@xASdG8NaN%0)du1DhbBJaz5rwFEJXS`U6G>cM1wTi`> z5kq>Y2-obyYckzFw@$Pp@FM}!yWi;IJoRWn7vU8qk3(E0tVVOP@q}rf)$uz5KAT6u zA8`-55fm7K4#GD=E#KaVicLDv-tnKue~Gt6<-o-A)hU4tSRvsA4s!FA(vuYU>N+4o z-KyLWoa(U=1i_pw3a@M37eFEhJpbN~OiEGAR9iU(YHUaQSOg2oUcf_oYKv88OYr_8 z9&r>-edpJ}`q0>3#AKsu&4M4`_PAOaMg1eOI+1n|5lGU>*JyL2x7NwJYqSDlXz6VNG%7B)AmdRYIq1vR{(}4KnQb_BmT zhtrt5{&sWSe9gNjY3*o;G><(dv5cDU+Uf1A7hxB{7F^tB@7g0J{`kf-&s03ZGZtDq zl}o#4F*7Dp%ueZ`+@BZ<`cd0j8t zZ1(2yf)Pc*q)G_j%?O{Egb}I{rL0wIX%^8ERGQDAL@10yF9UKTd?L}pqxYTm(1Im$ zIPn<@)4+;z0!Eldq((lISP|g5Ku9EMciwNc_H0IL;v;sEs?N3AZTHa-xY|Ak?vc~F zSIU0@Bg`Y3BC;bCB9nyc)3Aa+(H&jWm7}Yz5oe4M{E)NYZT`+LcS*YUi1vA6^a3ej zEjNzPj(~{!&!*>i>OzR?%-@7bBuI5I{b3k43r6;@fUeOmA}=)Y56~h%i5A#D)FU;} zMHR00A^yj{)LlFs6pTQM9rQ=YMd#fMvZu(1_5gxqWU5J}d%fwdOV5J+9y1$rd;|!- z)PCqxm)u!PKf`J9Eux`bTCj)`fSBZsyBB_oO%XaMfDvQ#mS_j>jhXXvA@Jf;`m$7hd3wsECmn%+Q80 z7jX`BKHoAo$RVbvkjHV5sK!w%0zM)g`c>~2Pr_Mtu$D%Ce@sUzqsE!NU-fzM7||F@ zvPOhM<`wWqe|du1hZu2O<0;e=l2M0arFF44@m+0AUt{wtly{0OIrqto#MI&ZuI z8{F>?8X~YG&Le+q^2_e;@dlU6)r`I1#9iUve_ufsZU~MDj%9DTs}Yp62=LT&!Z~x6 z7)&>SM9_#YROPOoBGe+~`;pvtHt80WjtWC}YL{sc?jvp^Uu=rHh-SFK=wxdD9L1Yw zQrKGkVmdpG4)>jxsLmvG`Jye)*bx|imiohgNT%F8?-Ug-X9^XdMCgVKw<{sj>j=gA z1ZuAWGVN>}JJr7jxrT=j>o+gS@d#$C2=JtG?}92mTL6s(@=QcSh=^@f8k2EIVZYr9 zuM@>o;`Md>K3mX+KbVdjHJcS^YO`>+!Y<-0-SHBS{;?L(9UR5YBO_Iy~AyxylbPZ1?HA%|Q0*+1i_ z_lzDv4Z=JW!5rq@sEEoCjQ4kGDTcxH^Jy2Yj%#@7@koht*>1A6yG@h#*t3ZGF^FZ< z2>u9!*Hz+bf7&-!bRx-*zHHm5B!-50+l*&5T2h56KH>5Z)tYu6A{&)Jbk+VR!xdXcFy73n}mr zNOp*R_UC>5Dxx7^YNCjnu?XRP>1hx3Y4+Q$4WL8ri)86-5xmlRe|O9@5Q}eWtAxcq z_T(cSby~f)yN75ySsAA3Wnq|z;ELFdCDX~X-{ChJTo*G5MM%fTh^vUz z@B~w#pjbpy=y%)Tjc_5|Gb4@QvHUiR9AY8j7!x!bAVHIzaa7&fl~U{i5!W1rN?VHd zJj@Nl2_l9goA^kL%02RgL(5j=XtnMos6<64T}ZC3b;oy!s|_ZF>u@rw_fy!DMjMcuDG4w?0>37fW>=dYx>r~N9Fa&f)K<)8oRva2t)*A zdM(vFv~Tsl{QV<_mJx;P_XIGA_5QNy9%PLyB1X?{>pmh>M}$R#*WB9rV#IfZacz`M zwu|s0$z>5cdl8Cnx8Bk=xS&D;MUv1&GIHbgv*%LMQB^4o_OY+#StMPd}#2zhMVxSob$w~CiFArQUl{w;3o`_(0PIvU;;M z6u%V1wZ&Pea&dE23Hb>n^2N&k9RMd3sH&0#r93&>*QJUgc@V)d>f!1Dvq4A9X%_U5dm!ZN1GE10&tSX| z%J&dVQl^leb)-t&liVWI%qNirLRY4U823&Xk2Syy<*DE*cK}Ya_4u@K6!^hEIAFhU z5H7qns0KxvyKN$yXv%Z1Kts~*58>djg3Aj@)NI>(J14X4NWB3&$wzDEe8zO%_K?B_ z=G{c`ms3zl0;&x63ARG`5V01>oK)ZX8b`YvQW3lne5?S%^|zOJ4{|jK1dAfYk64E| z-L{_6fpyNT*|JJ~`H8rmg^OrLF(V7cBCvWsnmU_i zKOFj}cT2J+hv|c;Ki3n&Z=blmA*7ct#N(g4gZFU?8KB?Z4Lh$GzRzB(>0%7?g{K=s zBjix^kvOBWigd>k>V&J=z-}B(c*2lgd`2!*aNCIal8En)?K41#1Ogq4n3NVscnbmN zCi2Tsm9D~*hJ{umgi@=@){l2?0i4dle_1-NB+~gGb$rn<`@D3rk4Jv+p(j6gAe72>YMQ9q<)gs}LjDcPlg(5;hjSn2 z=%b~tgX#z0OZVs<4sub`NGk%E$mf8sKqF8CM8>2EJC(4|=_T&{fc5MZ*ef1~gNSI_ z2sFW^?M=;AIUj#WKGVu)4RE(>aZf;QIYDX1rx~SO)e|#x%6pC@*`Vy6U9LHCYq|^P zOd` z(k;#?R6cvvars0!^AazhsQz6L7NdH=Kg!YtiEc1AlZ+27?11Xu`=Z{wwLY` z7Anng^1DOEU~gtejv|Bps%v_Ooidy;qL<^x#&Re?mTiGvSoT3(B zL|KgE-?LBj9|;THEm_BaSAGMffWto#jq=2h6CeS8UztLQE!xkxb5!2a-Hx=k>t`16 z^?(8u(Vr?AyqA79ll&*rF=knf=ta?F$K}ZP2z{po?D@lJv7G z8|yk^TjPx*HJhD9OS?mVx+kKm)7=)UuP~v+EKsX3o_X}4CPEgQgrPv3OZ;!du)v$EUNU@wnD6DxW?|W}#19J+YLoO5+XI>4^S%X5& zgPt{b%A1{7;cH{w8nVercvPdXNI|%sa@rr<*OR*n+T$=@Bud8fYY(5{u66T^G`nWb zJUxwP&lFP=x?#_B-EVb$gjU^@=|Yid0Rz?HZU(>CT2&)Cb;q}p*mNDhWA4EF!I9D+ z8b2Dk{s{UH@UhRRHL;T3`{W3t%gW`cd()OyHb*ZP!y{sUXXeBLCif$E2Y|2*Qd17( zL~=y9!B2EW9q)VJQHl9bY~U@&G`v4V2S42O`628PEEG3i`q8|iu7?&GD*ZSIG_d?< zl40v~hP)}|=Y8DdUb6EC-7Iaq@JDM|j9t#<{iNoPw*gUS3i*e<<>w&hy-~)D1viyi z%s-BAj0>~;AhBAfLEd6#wwtFlO|ig4)Bq^|BfmgyvNmy9MH{vWI{^xtz?ORm$9TEO z76qm(@HTV0n{!blvJ;ujZ33o-7p10%_grOjgD4O}UFWU5)Rf&1qki<*GUrPDf_oWV zSWwuvPkkZd77ARt$)m*{&*ktK_1bq+vAy9=)o+@h81KN4}M; zxPVT%2bOP1uuX{1p3Vb%4C)D02&q!o6f4YC9@y`ic=|24Ei0ZZf5o)!3FY2+V9#xS zi<84q(E!HAMo%Pv8POjeQ}7x(4pqMC5@@=`hOP8&*t@Pd0CvvWBhSJFUa#IyOYXwZ zwjSdVeSDo(CmouMR;$J1dO-*wEvMR+Lo+O=*T`Ak0g zOWUxnW2*Q*9>*^2)c?8_Z5ADspXq-GR*PE1r|s^{y1fIF=YCu_VQbIo@hGz{`{81$ zJbG&^6?*yV-sZpi(3`&n8UvTXtA`5ybl!Kr0~Tdo!d3bAK{9rN!p|5s744xo_w=&M za~THS5ay8I5??plro<^AWUjl9IksURr=q+^R@8r(KL`}=9h`MT&{O6y)j0^Va%$37 zb3fS!zu(r@?V^8966JuAOtge;I2}n0`I1@G(tv{1dPR`YZfkB;P~Jtc<~LbnDOAFW zKTxH}qs09}0c_TXNZ3Ry!ZPx8N#f8#msu{Twtd;=j6&CwcL|nQ1apF^K@SI^K8;XT z0lvj!g$y1;su!>>Z!L5ad<&YPIN|4v{J+iyWz z%|f+j-pR&+(@gjD3e%7=pbKr=VC*JCkFB&@dBynkwX$kW2V4+&-V&yu)m_wzP3B6lV1C3 z-o=P#@wRWIt?E{Awdsa;@h>?)gwQ23Eq?2VM$qj6+)ynqxOa$tJvPNG+v zX1JP3wbj*9E=g=Yn7r??T5FgZMPJ(PJX4sl6sJiT1mq~sF=WeKUC|qv^#^V9B zmewu1UKkQR!obC%d!c0IDKB2bo_`xs9u%4=;gtVu0$wp1xxx4(n;>k78YZWh?n(eT z@Rj??Me7HN*K@B@sK)B|7*SF~;XuxxqYn->FX@@X@?k9&=(%$V7E)!Z+OF16=Y}Od z|K)UkkT($0=V;49*F13GLGJ)tMk3N#1Z*Z zI&{(i1aoq~Q_|Kl0GTwkE8TbH?*nj_Eudl}+X)8>JL^AoErv;c4oj9!F0}zu$?^?# z`l|@dn+tm6#T)`QSAect(#G85{WK*h2B@i?HY52PVe8X4MRY8npQ%+NUK=wTBmZ#) zbne8Ic1C8&HZ*$C&W2tBSpia+Oz-i9TsEpC$!n9$UdZ^`qeFoV;9vAKHrgR!3+srU zOV_W$V=OxDc?UOf*}wW+#;b3xZXAjYjn2utibeO?@%K(W6+oU#?;}jYV7GS3fD5|1 z{@BYO!sTpz%91r#!2|`v$v-0>ggyG=z7CWWF&Wz`>FyN<3CcMaK~uO?fmr9ch5b}v z|5siXRHDP9@$X<${ksDaR9=l?Ew@#WFQ*qY#(;JQwhuIYg7K`YG=0cmmz!)gl7zll zHnZ~=vGHjQ8xQP75IA3E!f0`Cp$o-;t@+X?D?nv!l?D|923!cytx@vdhesnsIJImn-d!Nh3VofKq$3sz*e|-VZsgVy7 zS{EMz#04WFw&B0xS^cPED<$^+C&%I>EC!lsJ07ANOwAbwr%-_rIl9G>`{Wg^3Ou6ga?|t0CM}K#*-|bqPJ!@s?IM=A4iIlLt8+1gj10J1q zMw=XXdBmT##FB#aF86rNF^Ik;wJ5u32S-R0y&xaAYU1MF2yVSFC^n+Oh=Q7&g~Xr5 z?}t_>XhrZs$LB(4-7zMu&aH~+?jK9KyVq6Yeek(Q)_m9|(Ql;!)12(BJ&2@u!R;cp zWi@&HzpyCVUn4w8hf^0Z4J9v@kPM9(yr7iz^`fg3s<Dplj?z7pAtX(UZIt_0vbKzCWy`m-1bm!sp~%NL}K z0;A(D>;JUld>I+h zlVTl6;}kr?R)M?)?15Gto?t0&h{VL1;w$48&=NP3R5575^(Kk6f~Ll%gUMo$%452T zGe4QrTGdFl3y#p`=A z!8>2PDn0AxQ!LITLddlrt6(GhMoFMn-zO5EVIz+0{^9Iq(_I(~E{Fv<>;tDP@u+@5 z()uyU(N*OS3EqO+wXS_33}#~2(v~!45=prWQLQG0APXT`58sJ|vl11Y{}uKYREn)` zbj&LH;YS|sEwT@(ku9xCce0L|Df>PO^>9MGL$Yyox!%v{RAD}MWn4MoKeh`OIqGa` zzlAHr;FMahga52C_IqwzgkXQxu|GObQD32TmN_ctr2@Ssvs8Z6)Ly8PKhPDzL|gL^fFHNyxU%BT z%>uZ`qk~<>di2H)`Pg}zDD_-4k`AFw@*@sg4Jb((fMQGIQ&eQvdGQ9=h(Dsi<5$?% zzIsS@mf5xYuEeV@+eI_u4PX1QJ(0e8fYg>pDWF{VY-!;(v0}@Hf_eKxs0ZR^1xk-S zW4GJEwkc!KQnG^>XBEDIsF0n_IavowzyRIBq=fmT!ZMdX9;{G~qItG#IP+n>p@_t* zi0<8iMkFv0ZvR&wVW;v6VV-@gXPV}a4>VQo#=6twqaK^$T6?#TuYFd?Pho^{2iu6( zb$1^lfVt8Wp(p38VQ!9NTJwyZt;aJjKL>22`_X;xy5KDYy<>miFMpfA9*mOUKOYLN zvt*y&kPx>h34q{0;l z%O3gL#m2>05E6km|&k8y!m*L(&EMr|hrc^~><&!%Z0R zR-SUJ)T+*cZ!@zFBGj~csT;j(UDy0#0p9{&5Y#$V7n?%WL=;Xz&Cn&YUYIU`%>fm4 z4Np`(p>zZFtX#uaAG6{x-6Qoz0*OrwGVQz}GcWVDD@_oHLF&WQ*NZO}UQa(H4Vejw zD#M~U4IQdKZN{VrY7dPt#1zzFvt{Ir#ZIOQ!+w8-N+>p4bL<%3BHp$(_w&h)F&BN;A zfsC|U_sRkCN=b5s*Un}XN?C@b1AWafUnfk+|8zLpnlu30ZqSg1%B!uRR95e{cQ%Gl zPeUQ4zCDk9uV;0EbQ(i9n;tltI^Dikoj_3SVHW>dLMlQwM#^*r1wMya!meRKe=Go6 z$Twt!$@-9rl}p}`d7#F5Wo@vuR7Eq;If>mcFxu{<;i6}a-mAO{-&11J=dN92HGaN> zgZ6-Mo~6@AF@EHpc+!7{&{eJoyS;DnM^mg9+?4_Mmz81j;h!TK-bTiW^nj z_4N#t#bjk?#C-SgIRh6h)z(P-cSTopZt;?M?{@D8+MQ+T*-#iIZr=g;w=q@WFEZR9 z3|Esb{{hX@02Y9szkvM;1H{|GLEe2IiU^IxRA~90cOTXdy&`Tk&2k3NxTR1Y+}rT- zpYkHWqf~hsK_<**d2h$BbstDwDc#B%CE>-bo%O4CEPOJ3D_L2JFJ9vo@v1$AYaCdc zQko)RHe&UMZi?GH2zp4jWoi_hX${@g3uG4x zt`%-+e>alB%azJ0q+=3c!V?PEXAU8xR`87wc9h(B+*uS{WDxS4Ad4z#t|2g|8;Sh1MM)`w>q;3=aymNu(pW6SI0i+-eKodMka<>PL21sv}cW| zc@&S=jY0G&_GLsif5|H)_=q}UY6DEIZ>x8t*gy9CWu-QzyE3Jlu;uCHY%0vv& zEG+r~ZxHJdgpx2%_b?CpnRXM8+XHF`qTx8(s*NP;iNdo%o=#GxfIOQcaTwv-V@P-k z9Np6W7W7Z?>eipN8R}aR{89&{gTzShY9$Jd0dZ*KVGBpGoG)9c(h6IR3)nhi2cl{{ zJOQ!i!Je!fc{6dDC2FN1IZVPg~a_xRPccaL}W{NIK~NeQDD^@FyjuN$$-6ck0| zFRPxtqC}-5C<9Ocb;DKlDDDAN5Gnl*&u;>Dq10sP-s8_fgCjD&N)-v^x9QYF=UAN@<1ppMJ5ObzwdLhXXHW!8;bf`&?evB!rKp3~; z+*NU-Xzr-puBBsyqCUpCgJJLgX9{?hyGsmbGX}MW>_k6iD6goP%kv(f%3UiEdGBI0 z3t9sG8dL0#q-$03QlMJ`XkeS1g{@Mc2&HX&;;Z#H^Nj7ET^2@7#=VMg<$^yX z3bmriFGX>bS=JsC%N-HTI*( zE>S8K&jtnEufT2OW2(`!kgRS;C(#3P@{Z15Qr7tNLM$W(5Xu&b&5JumacS;&@YYLF zU5^i)Fg8E%T=?>t2n}!XRp>vcJ+g*wZ^6U8ll&o= zo^=?-S1-^8dkU*j9@IR(R6O~bbi@~izH@~MsmuS^50fvS#Z^}_8DB5*Lxp!Mtfn}o zDB_#3?M@eqkUx(8e45p-YNe&ZYW{*ITre7+q6P1@mITa!vC8!Cjx(+o?6Xv^!Gx)7 z>;&b3f?0IBt_ILNd*I1&_Ke_ExZ*k@|8N*4igPn)yBTD)UE~U*mHQUlBi!)2z1psR z-$9WWN3Hh>QBMmG6<Yo#S1j@j1IQVcGkG<{ipPcs zTxm{jqC5DCBhU%q{(G!}Blz9^@ zb=pr+Yg^w3H(YhZ|2*D?&fk7pnFRMj!3agWQDRjmK%ricp=}M@ zyRaf>;H=rDRcnuTSKB;LVOB8{x{(TAp6(=o#b0+1lodz`R}4_Rx~$lGzx4%B$tx4M zy|RrJ7v1>@Qw^E5XSJZ>G>CA0H#;?oUYuu(@E3Q^SA8i4ja(8jGPCf79ggj0j09H0 zl2&YhqdJG_+>zu0d&D)d3{3F{Ae}QdQ~l#k{v7!k9vk-RcT_oEnQcwSl?p#^&6iM9 zm8qHhedaz-PzhuxH z`(Xbkgz^WkpR8{p7)({i5WhiZR~X0oEP(q*Y1r}3lHs{gspZwVkT5x=^q^JWqD$^4 zyVKl=Kf^eNqYdoOd7qi`4^2Sglpd#pdPMGfR_h+yhG*c=@AA~!u)=TqZT+}lFLW9< zaDEMSqZBHIFb^HwdaU7Yo;rdr0y0Dwb?LWCZK!at(7sa&4SBHvd*)q;#chraO88SI zZ{|*WTHmB5Zk=pn%#K8K4Z=53hEQ6R7GYmpd(I~>bjRFoaRR}VBMFKC#j|?fQw_8L zqAnY-4Huqx9C3zpP4tz|cI(FY%I_nJg>=KnH?vLj1GG=SCcyC-dZ77-kht&uK^x94 zMnWP)$gDv2gf)jR=`j;4g~f-yz@VtNlrq;Bignltz6CtGo2qc- z)CAm`3|U0F3__z++8N}Qu50czuS^(Q^GEu=jszW0?Wk_C!U))6Y+B#Wc|M{0 zv-UE)L^14N%v@ZBay_l^iV`Y2FQS!axona9Vw7FH5!D&*?F|T>*PM=HY$dp7_Nb9? z|DK4z3&YlTe57b9m_bE=Dxe2Ft4wtORA7K-7pqox1SLe`gkUDddrN6=H8dW@}X zKD89#G-&DvEo0k7n5^@uHb_`c z`kmUJF+a&<>#(e(&?*V3$@v2m$ci6}57u9bpOMIHS) z)p}>GQH;`XMkp`p4QlDh=8UFg%@f-&X*VRpKF$xQI>uhknQL&0Ia0$aj`O<|u{9sB zs6BV~1aW3<>2ROe+`WdHH({RxstDvW7^+StF$S^1%>pi$QqqOeAAM^Z1<$OaBmsE~ z3YS@SarV5gFuD(g=Ipm^!ur26rB#TkB9F1N*iQ~X$D#H06LJ|u0FDHY+TN@E(jeqp z&}%zuWQ__=rjW_4MurMUL`-~5M^DlV8}c*A2HnbI??CnT_$sS|0>B58nVpZVm+g95 zhHL^QbH@X_<%(0qPO7s)z<+p@YKxFUD18#i-_KaVZK?;6x^|fRj4CD&ZI3u8-iTAdLiT2$n^AS7=H#?=9Fjwwt6Sf?DUQ!BPXe9errdJ6?c&_A_Dg(4Nx_*T4} zjvZB~e#^fOULJTCQJ@^JXBkw$vv+ufd6tfu(eo&mPLme-^^fzy8+MW zKMVIG=Vr-5fou1JKpC}Aw}^n18k19i&G-nr<`O9p>d#EuDlhfvJ~%4n&j2X*=EL6v zbMm6#>V(#4lcX4+53ow872U(|q}$}>r3yq3P|mi|pGY6f@K+^K2CJItprn7EawH6p zJ|X-)j>;Njs2(8d`fdPJdM(sXteJ|wG2(eb_mDJ##{0Wf`Xy+>a22C%DJ9`+dce>? z8K!aYyU*`oIk;0lAGEvQ%5%B4AJxgg^ee3GJ=2VI1jFmfWOY$gOjJ&@kKoOAZ9g{U zIrnp)n(ZsHcGUqZpeAW&KJw*NIk~0cGTbvEaB)ku*>qisS*(c2h+RY9ilV8&5*GL{ z1wGjc2jzOa8I|7Av7v+9z88k1oiRfqAZEa1AZEa@LcEx*4bpb!83B;V9xk=2l8Bd6 zCkYIZ`2z1}(>*fATMd#CGOcEwKWTRZ65W^YFs=ewlrN>bK7@mU#Ck`dJIi^?0{#rV zL8R05FQ6ej=*I3@n7|u6o&*<5QHuYS!(dTA0SllB7|2o2HWGsh8*#}S35v?AjTS3# z%Ua_;1NvpMw-^goDC=2V*9<92id?`jHwO6o&zM^WLODRycx&mO|rdIDKtzAHc$Ai7fpbmp11zO5UvuL;?@4T&7sv&}m#%THw$VS5nnT!_$R zb+m=5Aze>#cH1r3&65>&Bc8nY*oTzw^Zg}Hr)$?Cd2nG6^Jw|U-mw&Xx;ob|($ysS zBJlaV7@1Z*im)6YO=@!tivT5gHQ6V7RvXf?(Psn&cQj(7(b-1FQbIo0`YMn6q0P98 zK;VDKIc%P1tH$eN9K`^wA(=d#*3U2Kvk7rGYZB={D`f9(9b27ORK#PSCjBq(3)&+X zJ#?HqnnK{uL!Gy69&B6T)ME1cEDhtu32qE*N14pvi=Wq-G!#FzlmnZ$nf2ski+cR= z!>4)xkNO=l+vsAxk}08}+Dykl0zC#R6IZ3s$~kjq!jzz_y*NxW_SCeflDvoxKTuHL z#V7O{cI38S>+n(J30(@cR)C{Snp@?uxt4o%UCG*$9)sYkc946$fTw+AGiAZgTu%RA zxSuhA)SvxX&gqHA#3q99{2Fc;+2gtFdG@F#O8xbKbqH+})#Gj3T~QDhwT)DhHqMk+v&qP<_N`W(bj}6u1 zCltv(dC;ETvU=TC5#!kMAjLdeTCQb-C+8gi#y z0Y3Q(Y?N}X9O$WqybX|L4w26N1=+|8*~Y z{vs*ev5?)&{Dz}hg3#^>eFi3oD9nEX;aSy*cA_tz5uLNG)36^ z$fmZsKtbedrT#7;dIprZxPlcE3q?rxv?oB)k@OvZ=@`Z?WcMb?T%Wp4-aC1z9N&UC zd)ka&8gNzAunlW;mHhe=yxh^ZE%`{q`0W?FZ!O7HTI|%HEIku%Tr;ss{siqA&IHQZ z@}}{RT(57<)X70YcvP%cxjWJoL*MSTSF{P2-7{`esc=2bSn2vps379&9_|rT<;xd# zrKO^iw83$nlP!e!~Mi>4!gwnO(N1 zTMhfF-&QzLJG7K#EA`UMn}za}y8FfAH6+p`S33I!J$5J203jR`U5YODl+XCs#6+a! z*vGasq903UC@Kv99O$RMrea%E6^Q|-FXh+HA2dBV(WqU{$g|`?gL%)3FL?gD2xhll zAzQK1rI$+>GMsF*v813(YK>TlXzdgrAzA|F0;P0eAs3l&H}iJ~fKjsc%ed4ovi zAEq~SMu%tL2Mhb%Q!FUnRYn*g-Pb-U_YC{))Hr`Mf|Xf;J9-Y5%q+%>=>ILElw*=- z{ah9Xk2H?Msgb^chk#u!*5;&L@G9q|K`cxLiMWd^l2T=8&C|5 z0e)f7$z_u)oY$GG*x-Q3IUqd>aJezuuQ_07FQT3_<7>(N_UXo0T2y;lk zz%hbd=P}1D0a%qHSnHH+%~~u%Kj6b9{+~~0(}mazSu#&;CY&Jj{LIm*cO;*~?74$NE&wu+~2#xRf^HgPbm@lguif#tTND&i#os&vm++nn z(W^ctDetoG5HmRP@&nh@MmRY5v_K|j!F36rF=OPFi}Lko15p}y#s{S1;-Xh5$tp^O zC$RvYrmjnalFoQ7?9#F2+@>SXWEI>-oJm;X0Ky;95K>8E+b1Miz0b5o1ymN|ozBiY z?vaJzG(=y62swfqEG^IE<4e)^A~f zazA(9n-WS4A%2_x2%p!m0Znkv*o^_8Z(y^B_-!&>95zziN8EdQ-cQc|+QWaeqz%F{ z&F>|~ls`5h6D6HA_yGsxTJYsl0oG1pb+?$79TGYg(UJMVEC5s1zYx3UW!Rko{JlY@|(sOOd6VUicV0MDHt~2j;*ACY;xb{ z+&!fF-wWA|UFK-|T^^l*CyX%7Yv9~-V_9U8{xy+%9CIi*jNQ`F*|*4`)v=s(FE-?D z@bi%g=rBwoKh4xdtb3Qo(W(^dwk!be=IU|Fs&?y}mTf(L8AmOgz=%|aY*lq91EM&; zrlt6;xH^qdT#WtPb);Bvg=ZMiAS{Rz+HU&Uw+Xw0t;B8`oBOjl4nkiFO&*8a#;`wp zwDt=yE!1A3t!`%7-X8mDlg^O=?kvm27L@6|EYG6Nd8MbI+k(X{eeDE|u9Z?l?!W0_ zqgtoX8VP!+=4kvYw;$hJhb56pyOrCw7LD+P03|RcZc0lN_|Hq^-Cf^+Amfe}$T_aD zPpWpYXC(J)u!vEPP*aYVA3klOlo9K4ooiFe#VaP~@{)o22Hpdd-fe^4$UIcom1FzXIMtwgR`JV@pz-1HLeefJTb zxRJ!(6h?i`#!Qxvx!=)9tjoK&Z}7Q#y6~PX2eG?>2k4mJK~A)X1&X+Zt1{#E+WAGAHn88 z@04nAW)0top5y8dL-1;KcX14l;<50}B62(R=ys6z{Qx2Gj2S_3?M(d408)Iegh$%{ zx4`(LotDYXZXY9LEGnsgR7uC!VV9XVzP2IgQEJ?$N!XFz!&qu*G{%v=OsnC55(tBo>nO{7< z4}Z0m@jhnT$NBA-4~&PMGP>F5H71pYwXm-m0|9a9#&pYkC=*dJ>a}!m{RI|$c*Bc>kr^)1Codm`46qej!vQi@(HA4)2WE zQTP-|9e*u9;O$3-3F^=pA@*%W@A68vsCgSP;cHoG`4ZdRXs3Qqfp|S3Q0;AycYI0W z-M+mKoeL~Ux3}J)*%r_`m{?T8sO)$eQp!ZjcUp0UVK-avY-8oSHu+yAU)7CjX~FKsju)ycqH=>D(T%cJ`MS?Z!U`_;v1qag&(+w zE@{uhWE_2ef#e522l66l+y{IzF7&wuf;wWy@UC26}6aSH@A#$qPIi0%gz(>vF5&$ z5mQ^ur?9Z4S~#^)4y=e0SHZ@RQkV5Obp5+`H)p9MK!b^b?MoAp951qx&Dzy%u>jvpr|h zyr6-(^skT4X(>YpX;i`ES5*MS3A}Th&E!_4B&28%@#Ey1^w=Yq-i4j<@bHnVre=g- zSPUaPraPlyokl2>y(n2Rb-s|)yms3ZfUW7Htc*hxU06;86--d{Vwt0zdwMa9dsha zc3-kR6--RKU`_iB9umpI$Yye#@@|RvBpxiv=?Og#tNjK}id((5i`087NuLQMCKwm% zn&N9vmELy(mV+bcWgziPZ$ymac}K!nQTb^NiDk{ASP-?3%Qczavk5S`v{YgaUFMMF z`v3yUL<*P8sZ>lWCoIcxdByu$8!&bXTGyG=2<(a45uC6`Kl*MAzR(Jb7~Igs2#sb& z9T0yToAUX`(q#+Vy#HcU{E96mw(quS=(dZvb zE~+m7#I39~6sPn+F#H$Ff`~JLJciiP2Va7J^Xk$aTc-JlQB0IIf|ts=KYyY5^Xkyh zCtr8AI2NDtGrSe=IjVw8ZvVavMx{7;^T$DGI1CrNM@2W{>%^Q@@wY-eZ+@8)@riu>`4rI()M2cK7Doat%LCsyxAxg) zol3u(kveR}J>T_l2H0^NT;)DO*R3OgKf;-r|Ajeyk8f3i=m$+Sy=+ZezF7W!WJ_M`B>lF;^VS2(QaN9E8}az&!K~+r=})EbAP2?R)S?**G7}@ zsTG{d1b@L}|BenP4E{N?G1_fnC?Y>4`Vc_(l_RBN?!5zpGVKAWm^|sZu}CqLHI+G4 zz@Jhl_GPyya^w5Nuzees&GWf`0(C6ltUP?8nm4TLNm{8frkuO`gR%Qkj4RzIBtgEK z;O*BpW8eS295@1fxmCy06C)9Y@+Z}d`3C*ztNeA!c7Vug@f~uD@X$+Q9dNC2+R*qA zvr3mZjbu=q_~B8>eNX^p6Wq+$dikxlvtr`VI!tL%m^+p3HzS+Tr{^Cs3Z$a3V3iS* z^pDI7To^dXPwz2&G6q8>LuV+<7E?7sN_7w&U3rk0d;PQ0f#x9{fitYB16Tya;tuBc zO5M4LVl8zOP^}AA z1&O$t`Vq552YvY>GJ!*O;|nFu>ZFUyY(%uj#C-_yK^erx$E>Q+q*kf$=-8;^F4Y<4 zegu(MtJ>B3Zno-+H{D1Qe}?cT6c>4>{YgGE_9G5EweFk&GjbO51F26{sWrBmR%``xiiA0lNXZnyC<`u65DM>swK^1cJy#*4T&s zcM52&YV*!+-X%hzs#35Q!Z1mkd6E5#%=>`HVPsM}Gx!Dh)%LhvB$bM2tTLsiDu>yV z=8bggHz7&|g1nR=`NaZj$l*N}K;8SSAYEAFKIB~QGj$$P&`eBOBU zUMf!fg{e*Z?76kWk?cdxJ1#nwxT6(OyU+cy9wfBmd$n84A=c%e@Ar&@{^#v#S;Mx@ zy5%YUk=hGEZ5vJhwY)UmsSrcp$dqL-tEb4-ANRw1LAKw=bIZH#4%&hz9!ULjb;1YH z9jzRu5j>R2o6{Ck?D{G!Uv|}CYMCFJPz-HJT*`SN();sUdVcxc?8G)o@R z51}@RdmzYGSFMYEr?Tk9B@j50jsA1wPfn2K!ZQ#<_gNCN zoC|IH23Eaze{|mz+}Nyi*EW3%S6nWLyKbMtpdHKhUbLmHS5Mlxy<8yCqL>oRw;N0D zpZ(SP0U=}=`R2oQ**sD)8jt#^?dXVI!M8{*o0S(jIsF;C?>s(ZS4G$Z zcx4aAVS*KJc-em0)jU!L~g_R_(vkR<`T=6U%hLohT9=gd{=Tit? z_<2T;Y{b@elDj5lBeVWpwzCdHI^dN-tFP8KPpO?p-yp({nq~wPmg>NG!2KJ|ai0g7 z*84X(`gMQ=N`_MMx&&MtiuRwyc%?En6@L0@)@S+fe|+Rmr(1iXM7V!OiG;l(tr0#H zO?^rIg%RBM@JaT#KL2k^_a9G1yR&*2L0nD*xJh0Kv97~cI@wvnU%Q=9QoMTRSOsB5 z^^wA1(rl;qm5Yo4D}ne-bTfucL_7jFJi3G#fBSqQ5((6{+92#V>2Onv8A^z&?tp_= z$?toId(9CJoH}Qrr@EHB`PqN?^)j^Yl#j+vApNUZc;wDh>0TmN3AK(#BRqNC6nLCM zN;*LG)Wocvp{S|>V{tl03$?+!lS+~os;nR(H=zqvGFDBi0uY2XY_Om;X~?WO z!$I)^k2KkarU^V^wyVcQvF)YhEl1N2KH4VZ9AO3XU4E~OT@I9Pi=bv__pP_MRIvxW zTuS~q=do4v7Ct6J$!xjZQj^X%UTnuDvF26YDqRAH^`TS6=Dku`2{=e%AoRPXHf7Lx z*kiRAfDRs=KRV8PUC*BlLu~Zy-Cv+8DdpXnv!03hZ?U|ACZ_>kM=Q9N`2F-mUdi&TMwOnttEC2(()owSjV-yo+IywiIWA z+seb_XG^Zj1P-W!uHOd4nAf!>prX!V>?RykIE-ME3tXcVq9Hf2aqC^!Bk7roI^#fX zgCIMCr+QLE9Dkm5AeguKO@H$w=QVuIm;v3W@8C0>I%ROaZz2@oLmh^@ffp_5kJM;< zQp+kKkJ5X6MgO*Kstdrv^efvMCSS9&`ZPV!T#)uf*1p55!Bm8Y~#j(bpPo+ zqf$%A{D-xxlz4agQA}j-9C1s&_3KAn`bREem(yoCw}L27*TR@cjx*D4Th;%f8q#G< z6V^<<_w>)Cg)U>7(FtifgKw;3@IxLqw*;Z{kh5hnWHCLDxZPLHbhcrfa+~5kHY99D zA_}VK0L2r*Nrnf~eJm$^*g+Mi@ZRAG2qk{7wsy>CX=DDKW8bB>XyYktf$e(et`PYp zLuxrrXT*J9iql^}148H9C~;?(UTC zPHCiDkPt-h<@@>e{LVSobKlqXzb*+C&Fc`0pAywSt#nB1FzWvea7Ki*Tli-CfT0tP zF+He?J|Fl;fRCO3D+T*b2}FzZ5<`6BnvVV~TOLPT<1xk0_XiPfch|FYwRqb40q?6D z!zy`JOQEE9x}{&fvOJ+fl1E7UWcWz{T;KxO(@t-_Gmw`p^E0`+L~vjwzwW{x>>p<- z06Mw+xmqXZx05j>Uew)^_80LDaPn=s2npC@e*`~zU=k_oEH}%OA^k>{TpJ>&0D`skGG7 z1hC5V>gzHm$ioE-$*Q4OLAY`#mjLFjQ?vtMnpWk{6RvrFZJn?usOq zcyY`;2xT#pr5>n!KnbTQK6zYrTIC)wcKIoRtYB#{hVZn(A3gyz0F?fq!3!>%#T9Mo zuK1UNp;}~0Q!k-2Q?fS_Zr)fatRG%&L7$*#W3g%dYqWfM>?8nG2W#j@-mCxGRSFqe zGg&o;D$pq%pi}5zvPldHfjt!Y6$7HIMpUHOxyxq$z=be%`$xddL z1cU#9w5_LaQ(W&Hvs$-cPlvpWyMG!!eTeyvQmk#Sc9JprrRc=rIe#ZG)dPxM8$p4S z@`tC7L5o9giQ=JK16IFR%V*MOuo@z@sAJ_OOtONto5g?N*jH@xE&c#)3pTwm(Q_GE z$W^1%6`JCUe+MCHZ91J7b`HdC#MaQ%9iUc!vo*2^*4W;kg#ZFrnj=mNvtGcVuDB7; z0XB^sxNrdV;)&HVW!QlVT;NS2U-kSkUP_!;^w+NF;IjxF6yBdt{xY&Tpy)Yc0|DQy zMXj^8y)svN?)1iS$`}9xRkfIpY$6f@zHr!DA1<*xm`jfZzbwBGDYAQkk)VYMc`e)T z+HXga?y(FeZdb^n7(&>Bpa(ZgM*ev`pav_G*PqxpH1&2jlB1HMUw^BS$`1l?eh%Ig zwA@1R_C8zekGT^ru`fWn!FZ-D1|xKAq$>+ z&gAv;dZt^b)CNU%^?t&O9(2Zk*y3`(<>Nai9RNx*JU=IX17eLMc7|hqNktF6ConN? z{^2%kvqekSEhX7KgGjer@8>YKlU#ZK zQB_fx5R#)~2AAlWF%aXJUYQb^6O$8T9R0)@MjiL;eJ@gCjuUwmfeeWZZPtzkwBG>w$A?{ldWHL7fu*UY_S8Coy2%X5iAd<9oUT+SN66 z!wSDiZgVM4q75FPy#*Abo3W2^%MG<_SV>|ut4NWVYJ2p)1CSsIiaPG~yZ>2Iv{0nF zdvQN0T1<}gceWoUSW(U+{|g({tV|oRT)o0eyIrGh@7hBh(|joTbKFnv$5ZLl?3~e$ z^1q)uzpcc1sWo(9W>>Ubo6TRv5i)CF@)?$HLUZ+wxldSaCoE3ylTxcpNz}&iVpev~ z3&k(OP^w&5S^8I#*wHic7X4W6rqI4@Cbju%tWD|c6HGe4z(n`{BzMe6?Qpj zuVgxYfb8uTH+7LDwE8MiM$c0)=_x_>bJ2G?d0sX@P)Tv!3mkQi!(rlc832;BM-P1L zUdC+vNQ`rK`2*VF1q12 zoPm|j+WciN;8>;KCa+ThDse?}q`0FG&`DP136lmSB+bkFxeb|1CZ`QQ)~-m=fnUlH zmiEWWW4hy~7hA){|ASaU$?t*VYr7aWwAU49eCCppcz!`LP~@xz=vce9Lu0AxX?rS0 zi$Ynn0K@|qm|sTN%iU5G<0F2>>K@iSLql&+8O>_s!Fu=qaCq)w#1EyhpQ9ZWpf9E# zMyJc@*Z`^8p8yU;?N1ek#rwLe{OaorFDO-D!aO0`oDFmA#l5G$1hOqN5HMUPeRbLO zMme4bodm8}7Hw4mh683xxf7cE!O~+jvP-{9@|HKh;1~%z;|;(?8u8--ieL6BTt|e* z@3K;Hj6e(EAC95lj*cb+UudoweWx1Eno0nWC5RD^TyD~tROF{BxnKOW8?xuSTH^Y!rn#1XeYn@%wN9X-6Cq_>F~A>ZZoqkYI_R_az|2sD`CSo9h0fOM_Gh zNls`vunpBDq6Rg>Wo02(4*T*XTe0oCghu*Cd$f>SlydIFPJ!DMS-NcaNJ02{CEsd_ zQ*ulrDhfI?QATNV2~x$*N#>fnWmLZa=fBDDa>^9y$b~N#N9em*3$iQO^2HAcOcoyZ-02y zgn}H{GPbOsx{~y8YW(sS$Lq;(BNbcLaOJXDG6|{ipTmb@x~Nbr?KuWG>0Y-ocGgVd z4QiW4hb4xnYEgPkw; z`$fMkDOKOvJ!(Mk4ej5jqIsgBA8XrxvcuJ^r}PZSwT!DWtDKT~aU`UK+-Je;h&Ri; zLhRECVKUir`lerq54ZOIb==0r`{Cez)c3FE_Cm{(*ZL$20AG2}+WE+Gp1$8p67uWd zqTxMec^)~oXRR%;*{Bp&aj}UEs9sm6{`7CqK2kV&u5)%ABf2pT8aZ*63amLe%Ih#j zCLCxLT!I=brkeW^i|ckZiik5DTk-CYL`!B~6xX{NPOVi5DdAwC6wK~jQaN@l0v(&% ziL2gWT|DOLJpje)iObc?hF?`>EzPc_Qubg3*gOy01G`0*8&bm6nmQ#x_{UZG*FgW# z$k7=8ma*bTKCB}iqErfxA%Fm;Z3DUp(*c$LL1kQFi_zDNf}$KXh3@>%VS>`8qpx30 zU4OY6&YUN}|I-blEi@4mfpesMtUn@)Td^qC`Ys0u4{A1J;(W6Je+FBEgFq9_R$$fi4VfdpZx<*g zo~=+L<46bG*IoJU=x?vf;S>FQiw8=$i^ajPGu-dT7PvbU7}(sw`u8K}jk}(IIkApa zIC-fc^j84pqDQV|roS(_R{1k?FaK;0!#YtgGH$Wh#)QbnWlz1S-a z=QwST?~hr??TRNq0hdQ{hlg^DsD{8ei~e;XLv(zWT0QP?8}b|nGNHNukd@J`OGEci z0wu4TW}mZ-%3j(2(m!-o(2U_aYFJcCHtw>)B|i6E%>|K>Z)2Ty`NK zUbb`s-m-K8}bK0UaiN; zO;hBYv1HKv28PJQ*7sCnstvi3RE`#@DHi`mUP;0HqIK(Xv{x@22}H|;3CEt@lI82` z>h>1Q@JS0a4EoPf-26QGo=L=GnSny%X2rMkO+eADKMUIb^1{QzWYep!;Hg-Vc`Qu+ zA!;9;>`@XY_NhcWUmm`LjeMGE;SYjPi0^4br)UR&KVq2ouAxr;bxzQ!fppUi@)Uuo zvm}+cV!fy1FVuxNURDB&Q6c^d1R()Z=PS-IhWA&$p5Bzinw9e|;%LndsCJ`P?HrWI zwb+fLx5A!YeU?(%q?g;-4dxS2mnQQ?{KF95&sjGw#b!yg?4%)>fL0T5Ysz}%E|?d0 zIipk5!&pr@_|Km7&E_mmf$MN!x2E1H-gcjVA5iI<*^Pr9R!8vr3 zAwtX^v7~?^+EK@Fov38)*8REei!@v&!zdH(a-$f( zhPm56x8nLvPUU({VJeq~-+NZPBeHw7HxzZy{sXZZn;zI4`MNT>ZG}aFGXHc@j39Ax zf(r)piy4h<2fnd)o8|ZarY6ApXlb1HR}^*Y;DFZHrjYsX&CHvl2l_(CwbKIvYN!9G z1*l~q?O=YAe5c~YYhO&+7!2q!O1 zt&PVCYV4k{!h1DVP9o*I7-`mLo}&0HI+)AOryBPt;Kibl4|4B&M5dX(7!YN2;;~o^ zm+bzry+>+TUuBJsdpEPp-bN*v{*u*FHpGcFnM@rLXA8%Bpm_h!mGECeSMV^zIk#nu z>0_XIQvl6Bwu|GaWC9^&3w`m@8;J?}DcEBVFlFHI4=&XvXBKClxfIUN?0s}x_vT2h z+x|%WqN-jQUo}zC_|mA=m6G@Fh5&(_vQAjGP6Ty@h(uJc)I{1)#b|-_OF7%T@`_GmLdXMyoy(JiI4<2pWIKTfFED{>|&T>x# z`G$v20@#14kwky zl!bKewWBTDB@Z0z;PQ}@Ywl2E$ZhIp=IIH(rsV(R937i)WxU%rYM#pckErW6ZD{(? zS6kU>pdUE;ujO{pChHMVXVTA!ztvkm6+SGX&U0l?J_jG{@lBP}pDC+e1A|<8xO1a> z_KjvW-sqrgdcQyYfwI3{#>|ZLYLdM)>i6Jk@sUYiq^3xXtc7o+CotQPI7zQq>TAWV z0C~k1R>)>a-MLy!sie_yNEp(-dfvL>>wafR>c@4$FkhUSFBtEIq@ZIXxjvwgq7g(G zO6k7xlP#FgnSFN?yV7Mr8H<0P1jhSry#@T*aNBSEs4UiYZK-GY1rR@b1FOBZ^%q>y zM~F!C`|Qh((C8Ey3Eyi6M-+T(*wNF`R(tpFZm}v#Wf-c+Mg&YL@-q8tGCz}=h zeP#r$S_(P?ep5X&2KAV?0rP6LfPDSy+Iy4gHTdb26NXtanjlFQNsyxS;B z<4?H}WU{h~lTsq`!n8;%=v%5%NcN%6$^iy0hM9J3m}_5E{^FLO$eR?}h<874P}gsJ z`H98Ls`_cftmk#J=$n@vc~p~&GgAH4dvnj(`M_6%6Hl5(HBvrTEf-vkHZAzKe=J-- zhniK}TX;N(UVIMWmqq}BaYB2lkL1yDhnOSOX?SxoK=rm{33{00jS^B{n}cKw7HHN1*#*wdHF6%xXI>LB$`=dRjp*Zo% zCg9kZ9br|*8Iss2VL}c>6;voZIrWDb&&|IIk*PAKL+D3$nKGNAQXBt21lV?whz3poxpb6pz^B6GssVNgTRNTost1X)jLg#X&i>4)o>CxHIPn3Hi>@ zi?u=Ofu*UZl?s+c(J!m3bcR3vBB0?i7t>A41>rc;(bkb6&G3KXNlmESOuJPvg0AU! z(_CQAjZweYP_4Sn<1(Klu6O-x(Q?#aRptPa&umGrJJ{TsRdVZz&{gc<*I(Jiw=>W? z)W>cqJFdlCxkCWM2kVo%ZDJ~YCcIWG_F?JFvwv@)(I09Jg2j}ybSuz>k8t=5fU%U& zoUd>w7KJ|xuLOh`oq&J$6aU6v-i<%Iu;t$`W_wG3Mo(@u4V_(&`s7)GVblbyR7px| z@LMQVHJ9Z`Q5y3F<&rAPrxK(r&m!QI#L2pRrw6{L;9g$Vz73R7* zAyo?Cou{l#(;Cs)XR5?ZQ)j7G@w@`J2;ji4fAMQ3#NSCNXy6IbKGb8Ae!n$H*|r7c z@HpgfRaQ_CQg-iXih%Ek+~&qahdcTHWpT39)(_Qggmd6EN?Zs$001;8zivz&V+f-g z&xvY;s{Jsw+`9m%mj2|kyj_2kC)JyJdl!Ea(+}*CZbE1?jEio3Wzl3^giS(G(4u&m zb^m;S$9J*aG3M#tV~tVTt4M@JV+s{ezXXVUxb30c*)Wr}GkV$u3LuFpdTI~Zz+T#z z9gp|1zMD2q3|;g%=b-6J!D+B%7+5RxK5+(bc7}z0EjZTc*PGLYzn`*QElXjm=c1{; zcEx7(A)wtO!&31M9kyN)Z&MEUNQ*AF+xW*SRljXf7!{O}k9RqH@SBK1zExVsc3dFDOh*Z&dG&+_w6)iyS=+^W z)<~7^0IHqj+DUP~2F7;=8~Si{bGVVq)#U|G(J+Zs28B35P*~sq%H&QLVDw`!MHT-j zRA68Bg;*&KG`H%lz2iL_R%+=!P2hj9l|MidTDK;%GZn%UipOD419guyZ&|ymJn7VfL5y*5I{5Zw8>FaDr%>*_%2qJv zztZM6HBs&|T0&wK@$}SvZN^1UNQQc`cq~G41cMas22(TDvr$ZT->9J9bmwg5H{%R` zn+2OkHv$7XNaet1d--8DmFP1-tUHwJ`=1<8qd%9tBO{MN60Z(P!H^?9uA$#YelRA1 zn6JSalp&k!fiwe=+*zwD9l(n?R=Nh+!;gQ2@xQIHP-a~A}=r0kgDwcR6`;g!md zc6F$(t$vB68W`jCZCE)+RON{fjpq7>;iX~PvCMp`74#2(|2`Xy;ps7Y-iY~wH;}pk zzuFj7_KVmfK7X3XB%)s;)c`;c>!Gci)Sc5&e=jad!nhB`y;5HKFJ#-#^$ii55>2$< zKJ5?Ha#J`XmIE(qML9Utp)h(E6jm!rCSJL?8wgZ^g)VwAmk%}P0+?zr_4?%c_@>Z_ zJd_7DW}zn(zOULd=R|eEflYIHc^9V7h2#}{&tb{&F->+%VNXz>#CM2RtBhIEsAMB& zjqpS}5=TxD5p{8iMCRCB|M^Af3+LLUZ$d& zF0_SX$G==me*-9UNGXw~YA^<6#zh(M!6~z-;I4j-a@&l0QG*PDFI3lC5i$rwbjLf5 z#TpROIl96r4vL)|-!Dnh-Yu!l%uHALlq8PH4P7_X1+DBP_ZavrlGI2xwrQbTgmBZ` z8cXgK5|Hy3sQ>~7@(i!& zhYII^jadb!Bstt0<09++$yU(7H|69yR>^2t^ZKD7NnnB7$-8C4K^j$Z07AG!ra)ad z9B;xEMrl}e-7XMC__o%20X~YVt3&0ZBD&_X^y=gYwIdN3aEZuOgiqTA)Mf#)pP4;s z{PXtb1*&zdG5_WDWBU2Vky<^E|DYCMN><0n0%<3&P~pDx2F>l z;yy^DFo?vnQ*7CEW}ZS=k}+DIh`>o10MJ$m(rreAO1+776jBNayI@kI|v>mFhkQ7wZ$Bb{*{*$a25)AZ& zZ&Nc73Dez`$*0M_LJWF!+=$gn{Npu%Qy%K-aIPf1|HcA}b!pY0@Aq|4n)WCw2{-7K zc@2Gs(5%|*_uFD33>)Jsg=Xi1W*4HY{Ivv;K(PrV;eVl)4&m~Dd-pB0qkz)z<_>1- zFU7z1DOE>GM&GmL_^k43s!d>YhVYjCJs)%&4Co#41mKLYrwM)pKN5e0l z+`&$ti@JUQKHA5CIC|O8IXKZFD*$d$X;e07AJNfv=B=ODL{lFg?bc|NqKHns`07eU z>-UhIWUISezvz%LkT%P|t|oIHoh&#Qb~=7jKoU~C=u9L4epM>}ixn;GPZi^F;EOf; zFIUcz2BUV=>MQH*3*TP5Z@jNMdOM5FQeE{vF=Hz{QlU^A9h%9j6;J20@LLCt z1z;j45-tgIQ?bIUfa7r4sR8wF?6$Vm5fd3u!Z*yTthkZU~wtZ=GyY&Bzz9b{kz*9KBOYKK=Od7tmI)W z+|!}*JVtwIXMr=gPFlA7lEvUH>Y2UZv)wH3ID?u4w%6{Tx_an1QtaSFd5@q<`dZtU zcv3ZAp#j2G&@tC{K$>f3@{BY(IYKcqR6t%RX@jcrN#N^e&CDSYPI}f8Mv!qIhv!sX zeFPf!BDNiy<3YlQL!bQk#BSpzDC139d8ZFz_}js++QkLW>g{to*9%*99|(K=3EmvC zoSLThQ=8kd5WX&Q5_1%POSupaC4>LXsK^C$gx#5gTw7m;`;PscGompsHrJ@ch9)ROuH;-==KUXGHkp#xUZ?@$e7!#Eg{p$X#!!%q{`1obvJSp7Sn8QglRzV2up?~0PZ@05U!Xy{ znrBjJN}s?;)FChPVJY$xXpYm#%lf#+q3lblA?+ZwXUGM}z&rr@s^qWk+QaINP~uv< zXU`XAgi>6@VL5k01*29gIssM*{qlS`*t1RCh!@&2H5msnjSg#skA_WmxH6W@4l)MM^t(@DktpWBF2qKM0%004$5&u zXG3?NGPfdEWn)RZfJ$ruLglDGexi%8Kv;uyw;*4gjkOm02mX|*ZL6}Sn;LUXWQEmI z>R-)`|5cMpk7RET9+QB^P~-PxSF|to3!~OiAHhyu7T^ePE6{q5Y+ntHJ-g12XWVdO z%#I3J5gZEk9-~nUHq^17-R87;_sWDU5dRr!Nw8w&G+guZDN1Yx$48PBTOxe?oSNRP zv%sX}Mq7R@_N`bFv=$4JRksVd&9p97g4Y(PTWqD->PX^OeGkRL{xz10bc;^gE0EsZ z;?3jJ_`62aKa8pc`>K+GiD$5QcEcD~HndISqXw2-bs6j|K2R_GJuW=FJWV~r7s-=W z_|Xi0PFRj7a1oJMnZ-1%113vBcHxgAKHpvMMfz@&+)-LbVE!}m`@urtt;$RE=JIG#AA+r1r&*MpVAi;A* zR?r_r)w+PHj}|Iz4I6rf3&{h?Jm(UJxLqv&%75@3VKZ~A``!Uk;sRQ+#J)<=uX`>z zu!i#y+oi{HotbOWSwak_LGBqnb?RC`-jvl!D6lY(_N_hcrbYE4@3au1+61=DSJ1ff z?&QPOTl`eRzTP#FoUXiiM=$+ zGdLxXUw#P2Bn$ZH3rxPf5_}EBLl_`NZ*Jq#@&DV3UMdCqmS73NtyDD!zp052#1j5t@g;Z+`^R0)P}6-2#QMc|hA6KE^@*!aSek zTEC0g-xOWLaYd*R0663aTX71BL?jbXScBY<8&Af*bJJ*jWl3+QlStyE;NLGIlv1Ol z1AFWWHiXzA+ztRrHFMM1a_`p2EkHt_e5cEfd3(XuhG%Sbpec#^Km7l`K5Yk;Tm?=u&J)X z`b^aTI$>yf{s?W;;(xF^ICxh`nE~86fi;y*XoNi!Z*Cnqp{pN5lIvFBx~mL6d@fi;6lwZ)0mXd0>TY#2Dz50P zI_+dH30FBi^`@0=2@6XcACyXb-M^; zv%OPwKIY0n9%~7MV3L+%ypV)}pivw3Kz6;E~#M$C(Me8GQP? z3}95_B>m3I*}Lt9WY9H~$uT2ty!R0h9}RBWLivAjEnn^x4{# zqMW;S%5C1BdHg`9xFc~P6}F=;=o@1~d?ZImLRYRNpdXD9JkqfolQk#?l2Aev@xhnw zkk+k-^UxhCAgo1&&v6Hjrim-#`zr4$Yos#*qFAob=H|jT#OC4w2>yg^N;`VE1xanx zwbxO#Q5yK|U{dwRwm{<7eboiku_YGbuQV-WMTYLdthYzP8jg5BCRL+aE++qgsVC+4 z6ZdZ8?&%tO2j$J8)?_yd4{1TAeXTl9VAYV9CjAxzdUOvgD1bj>0K*2yB?8GtN=)AJ z5ewx>Z_h#_(QqHOz*!a2hmZ@^3u1Ep%xlD{bdg#tJg+Q&Ws%Pbd%Ul92NgW93|gjN zXXhO(eNHC|^O~@y1WuU_Bk`@jC<>wz+>Pi+W+u!96!FdN@Ej3?iQY6Q@cvq-P4HY> zz$LH5Z>PcA4=;rNr8>jM`%khb4S&?2;jP*gSR&N5>p3ZiuVck&FN@4D#~01_{wO+S z`KSnt2FKgap=Q3-shDn&0mKX{)FuccIikPvc$_sYQ>axn4EFYOX!t^LRCf%FB>$6) zVgxB>QnZFoP_LmNN#V0}txQFnd~JHYqp7{S$L)9d#6hAM@Tw0dFcOQCSgfXr?$BEo zoSPo}B2s+;RI5l!F#3A6V!VtAwFC+jwz+b&Gy!Gpgs zgcqO#$+vY)oF#4%P0PJw3h$&og)>7(>54w&(caO%Xq3wdF@0}#%cnHDagbzGDS1Hq zhml!5f92RdWFFM7qP@Z=aB~|dvbICy#Yw@BEL8aH+-z0nh%kBuV$+q z=0G-AbOr%r$_Q-d0A=_)-?YekrVV@2%lrAO-g#_L>g&Nd7X+;1U?hAK;rEqclKtkzzER4)jNM z&4Y$YMUJx9$Yq0Bu)a!;=R2M4vuh{v!D(w2qOXXe<&N}xojwz zL_~RkC?j*!{llZ>8uWvitW~zRS3->Q{pd1WXFFI_2v~~CYu6pln2XEh z(Lvo_pc5AUeD~(`w@Yj-4>WKEk$qVKhEf4#GnmF8eo_ooJ z8VNC6uY8m0X^XX87wx8*qDc&c5ILb@Q!*mU0g&AMniOK|;|n7aRj$?+Bq{e{rf&8h zR%h4Y-q{+K8?v+b4ViaTw@~oqWy~lwo*!5sUaqL`0~?f*`YhTpwFieT%i!Vb@llFo zJeEidlNDoha9&r{d#=_oTc8NLXQZyU)=m=?B+F1S4z@wVyiMz!VD$zmm|2FI0_6^F ze2Unr>h2kJJ^h}S{#0RvKnu2C_BIB8NHL~!!u8Q!r(H)5z(0Z?eB|<8sE_&2>a^|I*~>MQw*6+Ao5mEI)MY*{xTXN5ei0t!12P?5-nU7MUH?Tf zAK_HtOTvL4bQ+B(7t^90+JmSD^~OF*SvJMjiez zK6^;{C@*Ckh6#7`djLg78=XQ0>kPp3~zS~$5;^S}|qf)7rhUOMALC;zkpQP-(= z=HR$|dwb>O`KWd?=@;;x8n9Y9YONdSTx16*vLGcIYl<856K{GAoOP``MxAX zG#x;xem191VozvSt98#mfho)Yfn_`8)0kc!;pQ=TsWrMMgCI!Nl^NIe4PH|wzTY^Z zDbjFB*Xy#fdNn66xz&h=%q+K(kn=&{yM0x3Og3{#GCM9a%8dd&E}dqNvDOV-R#qn{ zi&B;UTkI703!bHy4+7thEKy*UIn+FjRM&TMdk;*Su86~@8KI}X#AD#-GkmbK`?>a| ztTxqF*gINOE!9%CUPesi7h60zio~l0l`2>;6`5g;hfeHXW@OId(Po3t_E7Z_`YZ(i z23XigV&=21e7&O`-feb(0zTmm35#Vg$4F_}FKp`sm%XHKR1o9SFXA7eJUTYK zKsj4>Ybi4B;m8ckf)=_S{JYmnwOD+A9n}6pF-gFVv10?0i!`bBz4Vm&#DX6iqKzY1 zeTLlEpq;|p$vKfA==3=xsQ^kk!!ae**oo?=k=BB1>TxwiR+fdm@RrRz+tlypM7e=s zy*+y*Xs@XxOKe$od7LV(_gYg7gBPUWh!nmnve1Y8U&Y%2;Br>2TCy#Il;ygEbNW2j|sy-QgW+3TUB&mR~fu z@kap1Ou3JZig#@+W9d?5t?mz(Gs(%k@~Ayw{87u&>-e6~B}IuZ-t#?oPHvg zXy{QWK~^iLi3TgQ*CBe7_UhH~F&rSrnoLWP1&sezfQW`xbnr=cP?^-UcR3ckH^9`i z3eu*5K!g$?tA2}7zY`|u{rv-=Rl=OWLU8#us#=M!M4to2;%K{`;{lq0FRFhq;_W46 zhtb>Q(ZZD_O!n-WGGxT&h@on}KOJp4fxW2selzI1y4dT7Nw~ChwjP+mC!tQM;hZ4= zjH@*5Bd||5ni2-axi!K1ig)GpyV>`P1G~t;YiY*`?V34!yoq-F&~i{@WPT@Y(YVZ% zvVMaMyEtj)sP4p#eb0-8;}eBBFx&XN8afAPzOPZcl%z&>D`nv=khK!YfBOS}=DEoZ z>kFabij-!=3(XuG=a?2=EnK>vdBpao_Tx+PhSJf`9YfsJ;lNNFe4sLUxK7rD*l}Iq z8mPyBs8FeE@bHu+wYKxJ2jDfbnKp9g^`E4f3T%l85c(o0PU6?vpsZGjsq+0y1*#=MLB@Td}UqUQ#})G z6@hG5DSQe$3csSgeo?_i4uRKs>Cz1-+p4~83bxl+gnX%@FXc8)Z{x8bx3$iBJzWCN zpXFR&aJC(s7qwP8*Qj_B0>z5eHA`ZjF^ zB?eL2j-y=Ztq8Bm9j{x1gmPdsYqXZE86ZBd#a)*pRrOFm{j#yjX`y|_M-mZ#p{l0-Z~gEo)Lkt$c^0b{?{jp||lu1J84XhF*xu4_B}pWwi0FUl`jD_gT1SA$yT>_aAAJq%0s-DYAuphVGg2lqno$; zU=JjTP)nUd$0n2r74=1D-J5Nl*qga8Vx@vS7hnPr7NpC87#VF{VRHJergB$0aO{KZ zU*|+a->N6)&sDw1s$e_f0bn9sTenVNooYHsMK7^+IF?)UDskkj6y_gkWX$+^kBb>- zE+!c)`NcFIB^xap?~<>MOYQMg%p&zYtUqEp=7ath8?fyxszSD-4HX0yMioxm1#6Tj z!I(K}ysuH7Cj~kYQO*%pZSY&i;_@%Gs6fw#W^GEFsp@9@@T4O?pD`&tsh3K1XPCL; zE41f4JdyrC`OySv4{A59ku>D>l`2PIB-K$bGmKf-YKFvxIMonfztUGB>hKPhCc{|| zpvL_sip0Yzy=d!*n(fVEp~bh>q=f`xc!rV7QL~ySfmvm;JzU~~OU(g_1t!7#+o!kT za?d}IX~YDy5+fomIIR)YEz`-NAlA?Wi*cSNgh!s0$x00XrB1#E%OgGz$1UNxfx7tt ztlWp@lCKK}NdjQKAdsu|5+`mZ&-MijV%IC@F%@2>lM~jo0@s2&u(9R=)LGftl@>UO zCX0}|(7U7XLERN@@5irI(n8tfkdbiO0{@v-p=*!sptPdEK#WU}u2&U+v+-nBSKpI% zL9`nZ6&h}|r%)j?gpO+tYs{?XA9qIrAbXZx^mF-9f3q!O6r75eD`Z1Ejc7pb{eu>o zoNv>bl0`~EbsGx2+okn#Xc!nPTd-kJzX3l32c?_QNSE@$C})RRlvD+sDOiS7=nv4o zf}2KiJ!Zj@10+Pe>cN{DKC=hlWClgDPt=}Qv5~Y3dH;DS`2A1F8+x4wC3n{nRMFU) zJ#l~JY8^uPW5j5@s!vx#Hwx?>1L~wac38>1L-F-B?BFxFOunv=e}sYLwl72!@6EnQ2>LtoN z-)J+^A@@TC=Wh%?EO_YvEhRC`EAC;>D=~}s0gGnN*uVtc!T49kQX~wciTstz?y!*5n*N|wQu z_l|<;yef|wTmz~Vx(+XHyAd9><9WTGxuO}5(|!l3 z1aQW_A1!9Mt_@=*iLJC^WJP;%m{6V;U@%g0N@pU8T})^I`e+^zYYzp11cJ&Vjc>_O z#`ZkML0Vt2iTMfx6|nw}XnySJPVraw9*W0k(}nZ@C&g{njt;74HER7YWEKw)kk=Q6 z-Mp&vzWesLvN&dRGxKyG3A)vIU8IWsUq}XM7x}imshRlQ%_*D+F6Btsf93VjJieky zX^Z$2Cg_Sae!Ci}co8Zq6un{(r|FvxTUsJKX$N4lS%imS#fN^W5a$DSzqf3wut1a%$MdEc|?85 zKI!5Wwy0**x6(cqwdv0D4HN>xTP+UX4F_fVIGoen1`0khPzACKhN{Gi9Z?NaAyz=} z)g6|<7`iJn>}1;BV>TRhZ;j;5I|3#}dWWg@nG@qv&h7Ml>m3zAF&kc2Y zQNaYTTJ_iWKq4Fs{YjHPNaFA(PR*1Rs_>z%2>4z(nD`7W72_2~xMkuPub-LgCkEhP zTj2ZW{zxGB)O|<4jFIR!Yt}bx>a`ADlt;Tq4<-pc@YO%SZOfbrRWx9-kGJO3u=sZ% z&_#+hHr0Y_xaWR|O}VXkdbsiE_wp|)*IgjBq0=NE2Pmu^qBev)UEcQPw)uN;F8TVE zFc{Q6Mr&G^%>(3BeZP(MtecX9iIfb<1&ekRP8cKQ>jae&!!F4KMnSOXS>}&_fUtmy zwM^!k#$z|S{V3?|f=-jD(GAJ0xG~f$($TR3af=J_b9mHHcrD}k3XQ-gU z+?P6_PRk!DvK>DqF>trv@y` zs^a0Cd+GSqM15s(3%#M%j`2;62P=RvMpGMr)^*DQ`Suj#)7*h=bs7CVvtVGW1|BE@ zT*>`kuwH}w;?f44k@cE}!FUQ%Xu0v@p>W*~JDi6iTRcUYiI~*jX@0vrDyUICI)e>} z6-I8g$qu9WHDxNu>4e>J|E4}x03oy^h>c-73Jd~429OrWO(81jvnE8W73rg6yHTQS zN(3|tR5P)HJte)V*`8_yAeHhxbtF6ma_jzwW>wK0I>Yip71w_bP34LQ#WgHtP^GK^`+h(z_IhQ6ekVnS@r?@ zHh$1dwjMPIj0-X?;@{{6v6{gMtJ)OSF%+Gvun1|iAc41MJqioij} z*C`I_;`k!5A1!3g*fio9vXRd3trO5G5U-*-_vj`@0UTT`-3p2wJDh<-s00@?%Bxuw zeMOlNs$#c{1Rxo-DI!hkatUb}(t;UWRU_6mO)IKPHR>Zi2ss|INvmWWBNL=b^P_`* z1Qzna2`Sjsch18@nqyt8?;wUr25Nd5qSWJonh_GxB8PQrla`ORK(S&RZ9B}CCL%`G zB9#eO#iTkv=TaA2903ntA+H2G_@>xI-A=ly@ zOAK2y03im)snQ-eqT4f4#NP7b1cOhYYEZ{fJm_teDWD+`%cjTHf(Q&g=(;3A%OKj^ z!jXkqNq?;GJf}Ztv`)FlNI?xG;>a+K20Y>{XR5w;Np;hzQ-61`YkE8gWK35w*y^V# z0Rw27DYQ{wf>&7Gn|9h|!tm8WixIw`ipjlD^0dn4%SPq95w5VLO}Ro>L^r)qq(n5N zGSjZAU`}mXB9koEp-6_GAP7NOXr6Z#`mjNl7m^|hC@7q9M;scP9G&GpQ|~)^Q|e@` zNhIlGK?nL8NlYD`!ueme+LF`)8|H_zkWp}$15!zm41-HM$-8UNiUAcIOH3}#lewnbeoogt6;6y z*9V^@4cSMLQ?@ZN%Wxp@mgQh1T~jd_^j5R`i+Fk zs-8|8T6S)B280lUlCy4Gbk_yPrZm{*NBjwXs=DcTSPr1Qp8$j{IrWi z9+XBl`(@GN1XyO;>o#g_a!f??yrb7HBtVYs#l8ww%_<^Y?+B3DjS%gS5I?`GG!V8~ zbG!Sz;2|GlyliDQ8sZ^SK<idVdE(8@_8>3w19PeSy9;;~|K_=ei6A0Nm zkRS*{OVY29d6smVJBo2d7qcQ5X{>A|Bck{AuC!QyL98j0uLtYbf*|mhX=`w|Kc+|s zD!43$b`F?J;fAQ|0vK6*>;i01AjXYCX>wYDSP*%ucU+XQE0sw|nHtL6sX6V-M^KQb~uEHDPDKAjZ zQr1R1Foz0Qi<=DAl_NAGXpsFy*f!hUXDPOf6|zgqk{;W{Mx<6L(Uga}p4&R_D(WK+ z#oiGciV-1isR)W0AjBD3@7z@lMBB#CA|m19N8LeyBBOahkSL)IJoDS{517dB~d9Hq+n}Ms1Z<96O2B#YA(kZBfpvMsl9KeAO_nU0khw&7_ z6rEgE;6<{rW)X48H&80E9IrNQhC{RHa!@fwbYaNL|;b>jDzsg9rmF zjX8P6M`YaMa)%rt?e$YF`IafxRfLmla%#>97SkpWKl0SxuUT;EGuYjVRx49kXd|ZY zCTpSDfd*9y7mz~BB(0w{Z(0a0F01&MSB&c(@lcGqNC-#Bck2^NEy*ffYg^y6Qz?#D4BH`3H=iO1EE29m=@?Er@CqI%r>Q9Q?of+z#6qfBu;CCy8ki$_O4x*& zz(NUL4QaQaPy!2$t&TFlBHvQN2rktE2B~YBu7L#wdl`Lf&5LVXvZUlhLz-;^vpty* zW4y?*F-5In&MTWY2%y&vBV2jZjdRW}v4Dp-5XMP6+3o36xdI8kr)6fr2w*~q>dX*n zRhr1ECEU`?y{bdqRWczo#{l@^2r8XU1Sq9X9o?yF2!ty#M;ZOliFaq(<-y6RlE@*! z*^!zl^F$)<-AA5olEetAFfICRUkq^Kb$X~@8g&a~Eo5xExW z+&f|RIT@8?Itk32TlgTAwk|FH%iO0-Xb^JP0t>)~I-TcgL?ERn=3pJ6Os2HBKS&%m zDhNxkd|J>uSxA^$PpSkg8X&<4a6*5TL*FrTLT#xw9%d@L1+Bl15kIHA-KB8#kqq{k z+uwgQKidRKZv-)jwA(TwGwBYqw7h*4qDI}YrH#6YQ0={LC2*aYa>m(@mz6$rTW1J$BGBf~&M;{uGD3#2C1oOxf*xAz1oI=M=2u8Oej(AuxrvxXU zRk>GWLD_v0F>yvjAGK1khNu^p)#>&OFe%;!FhWJ!A3WOB{Q$`^1HBPPNSqO6Yh}p@ zbZgBBcAT(k+{87vh*3bPH8+2;z=!!f?^D?BL>~bSHMHdK%I;B>O9vbbWVG9l z4xY<9x-)9c-<|{#qf}i^(6nvzvNJ-dy8y&ir(<64ts1Ny(;~4DFw=}Rj3)Yshb;pY zIIc6LHMWGx(z|uY*ZP2i49Do@4-~_4Az&5~4W|QqXCHG@e&pGcVC^tU-oo1MK?^`a z>yH41jng7|w}l`VPseQcq(Wm->e>u#of30@@84EE$*0h+`~np9ZtWCU$@Fyatv9=* z;2?;FIC`M`({jZbD583z-zT=qIf4}a{862f7d~T~pNe*`qJR+CY$9a0F#0@-vu{Yi=EQKJL{~NN?J-zu{)|RIM+4K&5mcJz2&Qb>{OKOYw;nb! zjFI)x-{9Q-&73Jw5L-(|Fh!4xmdkVY9uW~T0yxPZB#N+z`&TK6$7`A82(jgUIk))6 z?Q@e2^5i2&N@OFnY>b^+ERJABhIg{xH^QT}i1jn#L{9ChxQd95a0p2oxZHq(5<3Gl z-)=G!27}OX_dE09XUc8U+fkL(%Byvk-Axz>b1{DD$y$0MA$Rd?*>#Bl11;|5cNIpv zAG%6lW#(UU0SJGl%^Cm*DkWOo=KU?;{`;S;hYRXOAV#WZ*H+uN`}VR457luIz1o$5 zliAln+QAL4=?b-}l-)OtT7LS#fvE6?>%9Ph zzPtD#X=lUKFYHVl8b?`RqxRhk*|93GcX0qf^zEUVYy>$R?vu%@KF+m@1)zv8IlFvd zTf{*~1RlSQwv33L)qBKwl5#Iw_3b`?sPP&wx`NCooAws-+W%=^19T!{)y~x`hkt3w z@j90-%Ed*W^G?Q6iUJ%Snm7nlN)YdVDcsj@AuE;yLOqJT(AG{1-5Xn3;oRv|$Q<7r zS*NaF7<1n_{}*nhSoN?@w}|6<1VGagDAn;FJxWD}_y|%=NlF&fS6uVkDY*4(wt3(o zoc{*<`pKLD3(&vwH!D$kdtLIk3~JZORqw?QBXza#LS8Tcgzv6#vm?3_NQQujd8_wM zz6kYZb9r{29HSKBvEYa2n`D*TX^1NG?QxQb~U7WsADH~B8 zy{?Os7TJfe2oU?F_%msPEWH zr>xa~>H-#f+{y-&<{x{^DuW))|I>`YRrt{;H1l%SbXsS}~oh z@0KpMn+>gEwI{cTZSvnC0K5>-sk?#<>#0EnUh*MxMDhqnI$Y@{;4oiHT}KSpY0+R{ zCw)6llN&q8j6s*uCLTUbFZ=^K|s4Kk+T+vDSOx7A&|QcIMZ!krBvOFm$k%ad&Jjv!#f? zlw^0}3jMOY4NOyiVqBgLA(I)l`E_6EzB@LvCyn;~?(mHBS-}`THy75!OYX3UpZ#wh zK6n8f0UF$!I!`-)&h5<4B?K-pYfvAR-^z@1Tgedl@l~!qDzda$HA+Yi zvUbjQu(EfIqm;2wwIUoQMgtq-AqGSg{yyZ8*OytFh{L{f(13w&Bo@KRu z1#UF%;2^$=(|F;M;%}!==hWWsfQI-8al8v+Awz$|hV)!CS9Gere7)!_cT3z956<)H zw8{7gYkaXiENxlr2mqNA3b~79%BjdGwoZcT6v#kAy{nQ*YALQ<0D*&6Uc#&PwTr?U zcLY=49s9tP|JnYY_m95IN^*X!YE-Mqq+$&BO_d3IvPb7@Dk9B$tMVaOdh9IPX)9Qd zZOUr}jJk-8s>}$dyR%#TDIMA_e%ebPX>;0skXvtQ%%3Lc8bF=1+RgBGCfdMo7&+v|_|gRqr>HiT!tKMI)7x#P%FA zcI!j1i55()c7L7HnbGtBLFlz5>G=s{xpV{*r<9?p5Vak1K@-CSgypC>DcGuROc7Sv9oYw_?1 zd45T{C;y`mA=s%OmAUH_BJ*W`>xXD8f9dcZWNdCE;5isBB^{&=i08M&--iA`UveW6FrD2#x#mZt>rWcG`O>RdIh20rL?O z*pWFlBWmA#vSIMb0*fPh;zBK8|Zg*MuHz}8;9*pt;i6?T36(jCG~9J@miFy&W&5HKa&j%Oqp3OVk(w{PbEOz!FPqbWzY5Y70E zGVM3Aysu<9At>CB7x#|G^lxM0Bc0);o`D0=`l+T>9osu`5a_5b_RrDmt|a-E(`Z_j z=4f^e8SAqgMapuM1n2%6P>3rar#~{~0D*uAS{g`ic$Q-<*JjvjoDOO<@fCc+Ame?j zp#(8<9eO}P6IcZ+>~7wtu_j7_7io_(r^We5%Tp>feW?yrb55qMKM3`qOv5#qzuRNA z_@4!LU*Tabqxz&{>$070Phqft2z0s9ykweC5K8O3A#6x|$zO0)+0i&NN{O5;GZ&3$ z5M9=UL#Yk7+s3~y0Rwc6hBDVf5yYf@nbIffZZ)ZUqdsF5i}+sUoS?TtEYad3gfd+j zzTR{4@=E|AegYBaH@?VY=}WFvfocWKBkUv;%t{Z>eLD)(G@`y+#I0;kCce;GM>F1X z8xk23F5dwUkN9i%F1^cjX%REs(=lafRI8wkr{8m4XU;@H2-_?m0D_<59~sA(Esy!A%I2&0<=Vw4!+9eZO!QJ z?JM*1KK`%k18G1AE&CfDPhIN?$q>6x#9UZDa0nmrpq0ayDLC_+)nhcKsMMU$fhjXl z*j2v9--=)NoAQ@FhMv=4w_?=G;c)5tt&;Sf?NGvdLJ>!eV^ zRIawxyJ9avOr^1#xkh5NJ@x;ou{3FL;31evBfW2~Vf=h%%cOCPOJCCE<6wKgh_`7b zcB`LBkJJxseu$aIlk!(Wj)N(>RC(mF@1o+t0}#eCzQklM5chh_n`9j}V1*4zt1b5L zOS<;_G5ue!`-%v7^V}8yL#`j!iqAxz@Ijy|RbqRdCRxyT+EOyha;Im!OrRjt)!6Lu zmTHKrt*L*+Z%Zy$%`uiZyib-{UQuY+A&On0PH&G#6yL^{kYfZnnhsko`dRuO;ayI# zFSPVReTX4bdiW6wRHo|lNS)J|>YT{xEPtvQJ|C6Xa;MK;K?KQbG2nn91GACGAL;GE z3sZ062UcGOZyRrSF%PrlV$9oFPMD{j2wQ;)G|sA+-Vq&$*=p?zG~G_?&qJ6Z1!qJE z*!$B`cd0nYM;_J$j{F&oCI*t`V%OZ*L?41B>+S>lNuL|9q&{lHw`_F9fK2$bDl?<3;UQiIq ze?Q<#6wiAK6cL{25u=s1f-`rQGTVo{r`=UL|2%q;V{+qC<}|Q?L3h!g=m7%kDNacp zQNoh~Pm(0{^n!N+76bPyb5-)%^7Ipcht6()HV7wjqxbHN{OC2^jSKF- zPmcr+eV?Mi3oF|V4-O(MK#p%0C%=KDq*Me-%!sT%Su6S^h}RZusE*fh(EryFYtVuQ zNTa{We9^&EUf9v`feEx{t+PGALsR6jT&mV=alexuH&hNT5m9Zjw7?*-(>pY>Q2S$K zbL%lNSbasEHN6F5N$fc8iH@`{hv26|gX;UP%vZTheys|s{>~}Tx@R39TKcQu^~7(l zYvgW)3CYAlx@v-#LF4l7Dwn%JA-7fn9Lv;fzEz!$#Z*SCQ9*3_Rx^S+A|a>pqBT9) zD{E+s-|$0k%_F?y+7744Moy^_bNp~If;n2~ zZcQqR}N(ghYi(kJjnn{8SU@12D zW!b0iTi4X8!6z-4lhH(A2w_%vn6J;~l>dtu$k*(Z z+&*=3^)WTcJm1udv)gSGttZx^R_zv19J@M0JS*gl@JD|b+9RRF^T-`%5&;AvYWW{s z6|W+&(7PUF1PT8r++YxoMc4e#=wB5V-xqI8Kdt>@K9qJ;lFm!-3g_sZ{JP-# zfPe@h6V7)`Zk>Qan229aX8yi*HiyS4$CP;k+$p{~a~D@$2uD77*MSXGImR~NK_QhZ zI;f0;m>_5VhpSbr*k{x(8bJky7mc26$NToynoQKwX6Zo$fP}r#&F)k1fwLl`{vsbE zztzz4^XB02_-tjKB{(6d?>?(WmWtgl+Oa3=;ikc5^&59190-Kh2|2KD1pU>|U z@5*{ZGIK$QA{Ji-`}w^OzU#`z#Ztna0+9pzf02;S0XuqRuFSo6y9?2E{8``ee*ZVh z^IAl;Ulr9TS!n(`+I12Q}vPr<2R|M3g9^S5kcN;pNOauuim7?&cZzN^1 zQW~KQf9+mbz(yL9&c-88>2mJ~Z_Q7;1}mRCRXTB^vq1&E`GA`3u=HU0-pur<}+-1zA{ ztEmijzE|s=mD9*Bq_EmL{@jLs7!awX&bz)JU=b6!aP!cAI6CcgfQCelm&g0-kma(7 zuRyT3V|}lbff9YZ*LI2Kk@|BPXZ*qhX!dL(1UY>nZ5xL;`&-u@*G#Kf*tc2nA3B>4 zzpv2p2>vQ#Y)hY@YW#pf;@%>S_~o>e+uD_`fBAcXi|+Q~iWqCxV5p!@b;Lo6hlj62 z`YOEZ_V-N(SP*fx*<<*d6RbB66UPI%Avnh!Qs@XT{~Nx#OLb^+{f6+Uyf)g&z!1GP zse{$0WSuuc&gY*1hn2<5t;fMHo&pr^D_|kI__;LpR(`4b+oSPq>gFv7gF!_1ki`Pj zjEq}Y2zfl%e1H&_l;a|1qg-RDIO_m`O>cJ91IrbgF4%9`-<+q9Sw09UqM_Be0vEq& z#Oh+XZ2?&swV#D|HL+?Kg9E zQ9Zt z`Oci6iskf2%BA+PRMIMy|I|xbM~|6hr#MpgHc=V8my6eX5cl#CLJ;G|X%VLo+v4Oi zF=@Fi;wqCHKhF&#_97%he;Mt!L?a;yc8JJURuj(^*Pyz`Sh>~E4oc7IokTY z?}PEM<-X}Z=G%k0)-R6AC z`Bt~ULIR5Sr@MFvY!tD&l^{blYy82wQt?ms7!qnJm4bIR$t=yiy|5s!T>8}%=bhac zIYjSlv~>X?=bt_27bHqMb z(mEFgC{}F?541xVjb0++-+QF_b!`8i<{P5}X|yvWIJC=rZ5v94TTcmkn61Nk_WqWh zfeO_nTi*WAW3KjR`Pj$m&jQ0vDbgSio&-6z=mI6V01$5SVPWXDHxpaRReOA0{wy4+ z)3k=JtF(#ubhzN13r zqlOR=DR_+3&OxYyw{Kv|iNRAeWU$$=$JB7gJFj)~O244_{LO)SQl2pgv)yg0*9d}! zF7`W~pXnkB7-X+(r<=57L0Yla4cv$vJ*cqWPrL|c5n9`5y-a(~kAA?G-|-wV8vowpMoJ&xAn50Os3*Y1_RK`9Vg2w`^jO~uJ)pCem5tPt?rlraOg zmSZGS%O=%h=RRLoq^l2OOKV( zRWqiPsai>#cuiXGJh2e#Jt#@lm9|XvO?F5#7vDWN4N|s;cL5M=H7uZr(GQH({aY^f zN&S~gj>Gw&^kil&BKPIJBxR|+5Bl>f?JTQ*j`j2qF-Z>+_HC;GL&rdX?B6>;#FMLm z#{mV><7Ug2px^zxKK{T%vE(r?5i2wI%=x!V>OJWIK{rrL?&c%)Tw|5AM(+E$+pI529urLjA?26dcM&73Y|RL`e-avb?cKo+8~-(Xt>bjF zdT^6WzXEoq&k<{b&1$KFFpc$0P>R>>AdgK+jHakWb(~Q5*)lFpvhme4>Gx!MM==&# z?-?I45Wjif!@bh=eiGn#?&klcQ4m%6^%mOvPzl%)*@Of`0)7z}Np!~?yP3DF!E+#5 z`5oW^3Zj}Y5beXsRIbrzS+Nq=O*Z->@u(5Zxc)?Ix9JpH3Pz|#AVZJw)JBj+uE$jn z>l2WOr`xgKy)s5K8_;&&@$&f;jthE3D@~wBa7I_f2Y+)A%ptcu?ygD3vEi>7ee+(Q zL8%dhyNLVBq%ny7TjZ}bhF7bgjv8ZG!*8VA$#Oq|5M)i48*4^J$FsIp*=?Iy#P~ei zZ2*UG!NCfE^#zZZhSY-#mD9T^un)P`XheA5rn z$A5}#pL;hWZ3)Y{Yk)lUV*&+08fA50LzgO|fRs;PP{p?mF1rvDVkPgT4j z(y{n(@wa%dZ`puA2z0vldVb2i9z_>-Agt?(utTm0b$8%}5SDe-BmMXNP`O0E@)+LIUKjV*U0&sut5C=vkiFL2&V{+xn3O~ zoJ3ciKYsrBhHOXke+MHWjp3v=`>Og!=iYFNeWJC9rbi@IzMq(Rub)1)B14nmW%)Pd zx6$bwyRCRcRqN>!DSvvlTRp-n*e#A{*Of?!5u57er-~M#>**@paS-ex8GuHDj?E;I zPK?57zZ8g?FhiW<icGxH+?RghQ3) z5hHZ;$cT{Ha4`769PEaJS%$-F@7OA+i_f*5pV&yf(F9yy9b~{l4F(GDN>N(68yy7n z1S$UV{bFskxhhF(x}LWjcvta*`Sjtx}T%96u}sJfa{}ie8CDG8kUqs9h)Gya<8`%0%CvLlZy4typPgs?Gu%B(2p80Eb@3j0ib<*0v6= ziJ*lHhMF4QmJh7dvvPuIHKVHuJ7sCfRB9LdG*eYkzMvx8@o~2`G?o;K#WMBejEfPW z`UroZ)$BxiS#Gd5y)VNI^_q(j+>qyS(d6o{A9}%Lx`8>P8 z5Krc(2!wK@+wPA3l7mx*@k&o253!vkT*TwsSfKT*6{GU_l{~l1O*eEry_YPY@mL(P zSi7t~)8H1d%zn>VK&BT#Hqw14z1=~x-38nc2jj+N?rcfI(L2}j;w6vqjrMCQz?lS1 zJ7B3l>>UPm&*#K}{{Ct7pVwOpNfEH7?X1;H1`CuTkRrEk?QukAt^ych8gYyg`hgcX z@34rW4cjl-2PyTbK{3;w@mR>H;T2Zvb()deNUHoqRxnV4DZQ~0Z9*;Y9cT~BfQ&Wg zowKqvvRr1_=*1i0AhY4O`kb&N9~7xaaGHq~FBn3GE51dyS5EMFuC}G_h5Ve@WuZ|` z{}h{Q+Lt&96W_0UTm!6oPnH+)Bet#0*BFEd@_cnn+3V)o)FP9~bfmNOEt_!`uToyn zA^d66Qa4h+%*O67fjP!Lq2s;BFr@q3;Z@{BKjs%G#)UAEyb!dL_zAIfEmqmiL} zFGcGTo$9W4=mar0a6QKWA$n;{&Zz{&h5`{$(qCpGU?JemrYPKh_O0J54golt2d{AmQt_X7e0ERgDAs{JooUeaPd42Q{xco5c z?k#9DFih;G`*66qbsiD{8*~>GiS+GA z1UL!Nyje1cyG)33T3l(hN!rsMjh_K7=FXr99MJ%R58H>&qQa!`olW4R&!HC*wQdj* zO>lT!)6Q?-jiIOSK!a!uJ9Q~0EN!(Gag5gX{paNP*WN86Pw^15f*5x~AmXx0eU7U3 z?by5Pv^?ssAI2gH{Ef%*uHi?cN?c~2b@Tq z@yUq6uy=1--tSLwuxk;(5%S%<#&FBa)G}{!2n08&R-}7WUbLn-sE`mokPm+m7x^A% zETx{sGRnq9f{%q9YzAJ-+GdB@X}uhvAj2@5+tkNf$E-Uq;W~XH(yXV-csI=6O6pVk zrzWQ@2a9$HMJfUmH+|$5C-bdX{q#>uFLy$viB#JGH_p9uM?nh0&yzcj8 zYpxf83F!-E=RFHrvEVJjH2f*w&XZUn%_6Um5!uv;hwXHPXc9S$%p4pqLVUI@K?H+J zU=YC(1gsYBxzrH9HA2|W$T#<@3JXRnGUoOVN zdVoUZ$OH}0EZ+a?UA4p@LMpHjM!A;zrxDDtT6lnl0q6Btujw&_*~$VKPHWo^_R1#q zhy50<{%^zBGw8Sp3y{^XLjqziZ_>*z_WI0=?c3X%qnpx+5N4sJO9*T?Q`{$v4CIS_8*JXWr z&_cw(5RL2t2+nqtb^5HV6t@?@e3oY?H-5n1#87VfEJpIZ?+)`f9}_pXA`b1k*Wu$f)jK3*lmsk5L2<8* z5jJsqDRbb=e~FG?0SlND|H)CYMdHhQx7hcyFmM7H-4B9=Ut24Sw7T2a5-Yi}75^MZ zl_PiWoW%E^yz{#u4!Kbrx`pQ@z>lKY1TcRs{(g;oga*R?#e=-_7Zs@l9UtlCa7}!j zK?pMumWszg4-g?QG}h4@w3YYlYCd?xLMtxeK-v`q1TAAI6_w}2LC?ENmVn-il}G{+ z+@HE`hE?icqE<)Pb({2T<5bK`e-n#92C-RRrHeUBIMd1|{u_7Ced0Zg1S==y8%>uWUc;w`h*sIn`@D{2f1q+Fb&`>Hnw(h5&5_=p?BL+O^JfeVZ*^1&zJWQ9q8 z2%TsIDkp9HUuts^5V{c$&(764(YNWl7_xH-#1Rk6Io%Fnm3=XyIc&pOxoDgtqXWf&;H}DXp`L%J{c2X%{cFRl{ zmL!lJ1`t8vpS^KIJf3QIpPK4H_@WvnS)thY!W|%Euk4f8E_CFhJXnn1t%l|5@W1() z=}pNSigjbtLlL-mlF5G(HT9-oA!5~XQ2+uDmoV@LTf98T{Xd-eh-`ZRL;Hp8s#>T) zWDyJRvqMDdzvDS)!#cCnzv*pmqQ7AGh=uMkQri5#l#9ozI~|$t{`r|`ksEnI6fqaR zx4V(Ff~BXiYa$qcK|m1eCVd)Td{Fi_0Ea3nKLFymAupdou}h6ca#!i1j=0*OV0A`e z#EMgZhG8kS*5~-kDt@+&+ox^CC3RJXvk(A=-yNUjwnC1b&`b)yS24F%Y4Ax@ZmfSG!vUbU(NVL&p5NUSSZT#64QIuR+Iwk!{a1E-?WQrSwKy z{DaU4Ev28q=PLJBGC8Q{Hc&DEA$Xjyp-my&@D!C%swho1-^kB3CYS*Sr?-h*BX$08 zK~sR9o0?%-W`-gLGdtF-HaY6K$BGDS+ah9ltrL;m-=ZF~d^JBmxl+KWwGB+I6;O_S z?@AF201%faX@7!%4KKaJ0veW~GFhHbh^J3ReC*Uu;S;vw;omgM^dX-`&vdsGdz|!NM7h6(ds$pFTx%5_;*Vi zTYn;TBDa|lRdc@x)p{nI*?3hXitm4YfWQ7IkquX$JmeYN&*qQ>2)Nn$WQAGvTqtLZ zvx2su5c_2qwBb zv)fhQnu(v-Vf)UP>eyyA{h}QNB?us}sc}=q9;;#GNoa40d6pR!hye~1v!EfNHT^wp zArLkKt<>Nk2zPLlU_z>cl4yG8dB?jq!c}bn1?#@im&F9C+Y(!kuHe_!wb)#V+Nz}0 z{Zgy>Y?SSZGx^a1JWsnOjv$N%>e02DNYrpdRdYjC?X#OW(RdK|!s|9;DFQaHlSnsr z)dWLM2xjwtFhM_i>wCv&E0|-r8mG9q=*+!-Oc1ZXo^E0-la?OQt-D;;()iIOGvw7b zfPrc(^>yAtdT#U5Wgirz@S17;QW<$9nKZMV7w01IliUD;d2^<}igWSRAh%1hlNbUM zs4KuB?=m;{^BgI%$=wmPF`XWW$}tisOS-gANqM(q$^~)c zWk-a@&<*qLKi>X+ZCBHv0t+VTHb$F2qkdB^60Q7(Y~jyD1PsrpmMM%++oP4Y-)oOa zzWxFPoPZFok7H|TH{!8#4Dj|GI(w58_aB~@D#Osr)NiWj{wi$Jl1XjNUV8f;9;v5; z^;2Qph5-$m8vVC05RC3{BNDT-%s#xXYF?6A4{!uAEvUUd`#GEcM&kWmYlT6XQ-mMA zt$V;)Ue>M0lw!(_eJADqet%rP9}T`vL^zoQPRc3H0u9RD5u!KKb^=RAg%# zBr-ny=4n^>QD~IU^ZU*}t0rBq5n%P;Sozib72%oq5F@cG*?~yJSGxAL=jWOZPsTMM z+#mrDjtoO}>E&|{U&FT~qhys7?2K$d9lOiun{bdbpX=S5uH}B8@-!55Yt`ZTi+v^E zU?br5VAP~CcSKI?nyx#DMk~LYuky~aZ85yp0T9l$fgfGnZ??vKkRlI7b0sxB`3MTj z68AL&UJiaD55}8a{PjI^n0N=uHW6ST{~`R6J}sFhqHjkxZvVLgAxmjB=*_IoR5_(m zptM8xQXoPZqjyufn#fF@MR?An$+7}|D*nkHg9bYBi87Iaa0q59F07>A?6d5(h=#{h zL>vz>lJabpZn_Kk+|PT$GYUBb@zt3(q0WDG{ZU2;CIk{@DW2csfe+n>cX_PutE)nYi^JBo zKKor~jQz>#@Cx*xl}<2?vA$BY3M7l`9uf_9Rc5ka5K||Hne0^T66B)kDf_R;%r{as z-pur|&iTPp9Cd;jScqrc!kqfF$o^TM0T45cH~A&eNt7g_G@aae zkQL}ZO(yY(|G9k3LfD)apb)}30R+1ZNF@945G0r~p#cp4xE%cRGQSSE+_;0;$*en` z5$WUJbtikOA{EzwAY1Z&(r?>-ZD{%-`xwAL(g*BaErh?vb-;UEQa!!w{`UV+tlk81 zaTP%w8R<5NZY{PiRw9Cm@FKXvk-8A@z$0fCA_PSJs7AKuNl3|mJxq3M>~0upD0D)cf!BX`0{F+b*K3Yjm z_S9WZA_$0KlHF70h4*;4L=ET56z|v#j#RAN{9WcaM>T#)36p!zq`0)kbB51!5c)` zaQn*BY)EVEmMvis1`L!>M&DO*rpaf7SF=|-c4*M!8!6v|qy){M z)uTfO{s?%VCjTm{x&$z*jk>@?hIMjRk(+jC!|-ldYn-~Efe!@UIXw`>^Zo$^Gg4kz zG9iL%=}Asgngz^jfp;kx5YuY0=Pdb(?^Z5Y@3)W86j@+BBi6gXB5#Rs+v&1i-W=Xu z=*}Z;TaP+^jZ>hAREi0Y9ode>=DK?FoCKi-Dw^`LS4DN)(BE8n#< zb#eqTD&zbKW-{6dHds`TgC`=BUBP(hk^bG*ublGLCi;-lBmT?&xil?}%e!k4^bxOT zlBPChS+)TSK1<6Aw-*ZlEm^J=WFt3ul~-;(lQdxvRVI2Ub3*|SVvV6?W5re8iI0Ka z`NXKJqV|Fw#<@7|m?4kC1QwBd5hniOZtRfT!Qd}^7MS&mII3Hn#dqKPg{}k*%Q3~- z=|K+2A^!hAy@DDoz#)*mwwXw<_RU$#^BX4{!wWH4@&55CB?yA*pHSc-&8$Zqk;Z6g z0S~dhSRj}>&)UZ7o;J<~3tbgeto*NHL{GDb*od$QyEW@Lq9?w1Hy9L+D2D+ai~gR@ z=L7NSF!eZADvVcDzp_O+!tQ79OF1*7NdSRBe!mkNB5#OgL-#k1O1AMu$aVQDQ5{&5 zn7`>_I%Rdg;LV82;U??&-c<*y_j~nOb!UDFtkTxdji|CowVl3cw%_AC&Wr2<3BVx; z0v2W1IC~aF71#Qclo~CQARzR>jU;8`iX|Zd3FQ9$W+j_>G}Y;)R`n_RW!wu6`{)QT zxmd(-wLjk``onjsQ>$KwVI9ZrgLGSVf121ML$Aa3ghpWLzl})HBP~azW64+o4z1iC zZ>aOkw+SzkJZIX6s?Z%IdhujJCl8t;3rs86^Sp;(LiGLbceQVH`h6&hJ-XcuscYPb z&4}yxy)nWs42~2JIJOp^zB=yC-$tQ3BwbP*qjs5`kd4k}*Jk1SsBJq8Z~Nt^xFm40 zvN-HbctcD*6h&FTcRs<*5e=$3ZW{E3x!iBjLVIUIble0ixP9%kHJ4yXuZ$+H{H z=KU9Ka@A5?eO%|%mv<%KshJWfJ$z~cwY2@oigGpP0Elw@6Q}9djGYDrUNn=|L^ud+ z+H*V~16Iw)e8yR3nwSblfDrUb`?Sg6S{dq%4E|UVeM0~ceI;&YpUPq?eGFA;_G;t( zv@MSx>Eia~JA-}L3Th_6LA7OPGJx}vYyuxsRhO?^Mlc9pTkxg0j)z6O^N6eG?8uN1 z&u1jrM2NUskPBh{QW*N5A1uuWXuFBP68iIcbdmqvo#fIQV2cd?-~}S*IOK(ryE!Z zgm8n5yf4u6CD)My`T#)Zr%;tICboiGs-rMOCD^pHP@KYDC?nA%YS`)(K1n_=_lWC$ z&}SE4tiF5@Aq%qvJSi0FGS|HEf9%NOfeOUcuBVPD@0HKE)^FMfae6J@8Mt|wt0!6Y zm*7JCKnQG~p#XwpP?+GX%Wh2bMH zS7_SYQZ`@TEVg<_ak^`Dx_a+cn@yeS2UQ)aH^Mi#Py5*H3hV`4Z1c-5&}`d{bEiw4|lj`71uVo_gB(vYw+k zZPO|Ac-*Fk6KJoDr)z)GckTMbXKvaVlaK(1B%dhec>u2gzn9Tpt5K8G%KCtZb57If za$3<*paL7MH&A&?_*vi0VxDXAy8PH7$)up{f*rcNoXuCE zG~A*y+qWc%hd&^P?brbe4hOYG=j5(`$H{1$K~37*y(EP%__4yww0%1OAkqRGR{CZY z-yje<%IBc)=p95tmFHd==0o-NzbV~;JA)Afro!(E-#^cDQM+bGw@?wEkMP$7Xs?$l z?k2AfPZ9q??lA%#{CHh`cU`vfSS_6a8GPw@xUjZ>3AJg8P7>eyd8DD{qu}}i5R{3% z4vo!ztWqDzIKHq168Z75yc(b(UrFd)ud-ct8iyX(hM^J7U(5&6<%P7#&7@}Dx;S=U zB`Sj_y|FtvOm(+u4EgU{)00c-QUg9sd zJ|`+41yYL;*vjY9OL22FYnG~(#6f=a5Zq^_s+la+GrA{=N-#l^qlb71ckZPU^Ks^{ z|GcK1z#wYUA^$bAkBrMT`#E{vGJ}f9WNic%fdyBEwdaJBUiFJ*=|3> z-$(apm4cetHE@Q>pTxNEfd>WH%C}xVpb$R4ijF60&*e3e&37*B=vHoQr8VB4cm7m8 zw@s%EL&gHKk={tZ=tO#LO+q|w8$P98QQB|M3HY^|Gn7bkB20MaAX252n_1FP_Z~@7 zf3rkF;O+y60u*3yoNu4XXHK~xu&nV~C+gk+fryAMzk_!TOC5U))&d?CrzR71PNO;v zwau=dQjo#XV*5?48VI)$c^|!>Wby6%^I5kWJXXW|u&8kaG6>XsGggrtu^#yP45#bw z7pvHCvws@Ic9I#?5aO6}i{nZVI+?n=h0O*vNxwy|mfvazZvQ^Co}-T;+f?MHt!<$l z#GL3%@-K+*=Ur0y`*A!b$Q_otgqu&2uiYoJbUF3^B!usRFz2cTn1w2Bi)Ym z6!in)odnt30r`gp00=EiF}6Jravu^KT$~P_m7g|pS7eK&(->z|-c1$R_=xg6OY&1a zULqYri6T^Q4uMptA`ZK!FImgxJ!TiHRR^mg&`8c!!f$m zY@_r=)--YdcB`r6+G%A&aC_h@OZ4U3``1u`gh`Hhmr`P%;^|YSFW4JSUoNSceVTQ{z*a&qa-An== z#ypKTq=+Xq|J@j^upxa;X~N{sS+DE}TS$geUE2gV%zqJ|1B64Ml6>RFsZ>=qw=XGU z>HPMF%z_U*$f=L9^KN)z4nJ;{Q+%mbdg#x1#GjR|?piqP%dh~3%!mj&cuuoh-BOC2 z&20It`}nAg5>nBR^-nEr6R}}Hv9du?N(D|cPfEp;|8djbQC3_OFAr9%* zh=C^Q>{G#^@B539{n<=0Qy?ImTQd^975{dV7qWK--V$wlRJB;iWk0Q-5wqXS#9%9# zOY$>Lx~$`q1T?^hE@C{0FK6Mfb&cA^9U};Q_(S`3StBp{5pVBa1Xb(8CGt6;63r2rafR)={w3RYlbvA}gpS8&S4I*2!&GwGNCb{%7MLT< z>$>P(U%s2)Hjb0?q&T)ceIi|*eNqU`N$C!hkrLW=(-1u?CAs}BmpZ3}znQ-|aN_)j zEP|-d=cfS)pOo{5hy*jrvXs#pEx#XF-JQ+Dh^q+fux%`f4}vD}lR_IEx?1=ApP{4V z)FG>ZF?Hrc2$_@5=D+6+4@<2Wk<(^K$mD)EjSHxbkK&OXS?ljQgak~DH6otE!_$=C zU%Y7$LO&d8;z!IyTQ9-9@#iGIRt~4S{dceM-W#N+^i6SlYp!N?Dh(l|MMbjZWb|uv z*Q_%<5=R{(G2QF;Oo>S3W+rFaKk2AjKJD=%zskTQc?e33r|V%G1E<77_bkF0>HnPQ zk0a~j`~DU8>C*1n<}b}v`}iPYOug{8jkSf|;e3^W_H*vFZ~_w*TE3)Z9lE_zrgm;Y zX}21LqS8b}E}q>o`Os_}Ht`p01~+2y&}^ z+0}5=pArfrbMF)jP}O=bcVzj_kwO zA_S9}kM&T5L#rgR9qp@8A8l|t?_Jq;30V< z6Vj?+r*w>kt&8)Zyq^}T`|upLho~M}Mb(DcJ-&5(-qm`B1MKmZprpS|;oci!5;oBi z!apADdnk+BR>iA-&ncIOt$ML;;^q6mh7sB6#)J@t$lWNdQ5j&dyzhIUxd0)$&@}%m zt1+CIL@hu-hk)An1Skx&ye-VWuT3X9pAEAV?!_%o*9ZNAb23$tFW)?nW^2jdKqA56 zPbEMhnBeu;P$d6I=zB0WU?JQA2OJtnBF4`{x&CG?X`S>P7t6iq5d|BcLjx>(MI`D7 zMS6G;a`}h9+Afy^i|5$w(09QDz=djlJw^(-KPMmKZx=Z$ZnQHqX=JLG#^<``mW(12 zmBH9GR~&l2!4|*tlwg4#tH9@E?pV7b8@u<9oWDW5M`!PrWYI?Z>&Lokd!!<;K-Rf)qRmFiTpB}i`IPXL4in!GWDY+Y67n%jc)u*pbo^2G*vUF8~NCpT?!XdM7L8 zBAix^yFek1=!{oLQ%-^c8t=gKWu3fc%x>bC0u5wpiO(q3Fl2xs1Wht?n0H7*OW4-j z(MJ(Urh)`pm;?x5?Ibni>>hCuyuC%erMnsByw>!ze<&mm3<1d3pb*vIm&NgtGu%r@ z8kK~kXChK6KLH(|f4A!tkzlf1pW?)P<33pHrK&(hS<%yBV8_leq+RNrjEI54;?_p4 z07M;8s(vcO7~bb&qgQ-5NUJTTizJKxR3%y0AJlq&MNRp^lo0|qX4jpa4ezrrCI~*l z>9@`Hug{K}Tpc|ls33tZH8Tn_i+<`v7Z%V05V>|ZN(Y`8AP6D^6fK-QZY|a#vn(L?|@xqs~&7yGgs654YV;wowXvnDepzuPxx<0+n@ zLQKY)Z1tNR!zXa1!U&>>ws~)27!oG=f;-)wt@R@mBT*gp+DJa%#DAFtcrnzB&KO7M z$5-nJx6Uy2pS^jFz9Jw))kZ6Z&HfR1qF3#hD?O?AZRffFggHHEvZ5+^&xU#bBb(xF zx(qXrHzuCbK8t}`!6a^YdOtXfTOf_DCMu725YFM}=&}gj-R^k0&Q?^edy+A+ne>d{ zfgT!f^IwvI*1%coR!b&oiS=su?D%g96QVI+oRUT7Owsbee&9Z~F&-+@RtQ5^3+b8Q zdVvWkbh&@K8IPmB_@?}pW+Dm`mV}wk^|+r`lY%S4ej*qM9`M?^;vw|f+|tKL%7SD3 zIpw52HSFoglO&R0tkBoWTY!h^RG#MbiAh~Zm-Xr}dgD@ng2L626N)-TZp_)Z&0?w| zKKd;3L#_XfUSw@Z@!2r_pI`DIL(WF{;v>nn%ksL8T+3*W`HNK?#LaniXDci;OO{oA-d zOn(6g=;$V`J>5iukIauxAIV0Le(O|S_av2Hw`F7go1;LaC$256XMlvtrL4W443UOe zOwMuL&~&Ae7&AM+qgq~*0c5>!2pch>sP-joR{b&N(i(r7tlV-)RnJ86z#+h2q$cr* zhQb{Oj=;fqM$7R1LdMrFoU0pnj1Ry^3$VqHY<1T-4IWLSyhCgbKDUqM)Al|A9Z0Cq zL!S#PqxvhL%2Dr`yq#)q%PflKfDppE$!742a1N2*#T6SML7UCzck;1O=>D#8wNVd~ zPbnJqTii$XCk+Kt>+F4E87P_^rGP_y*IhItzhQT$BxzDEcUsNEb#W2b;~VNxj3tw|^>5LL z;fT$h=k7(#Pp|LQFnx3XNEdsqh#eMWsX-=wX1*XHPg+7PORG04hx9FZuY#kgL_YW@ zonK&jykH?WHC?8+23p(l_!R1}DKE>&kw?aWguMU=7Kn$ITBg;1l+up3oUclB#UE?W zH@e`2Rw|5m%vK8)-INi{X}+X?Chj#zyt{U^l*u@KynW1k?v0E>(GWfebrEu_7WB;B zXDy(sIHH(y^#BNEY8{1FBPhuPiFf3;cjDx6U%l!ap8VuXQSzRdt8Q9-@2^d%xq2S) zwjA4J$ex71JOn;x`aMKfyq>Qz^Zd)}rpbc$M8-NKM|Jo+c^~pEKY&Ciy5th-vw0nB z;1FmipyRD1K7fYqGxY440owIJ4km7?q!U6$%6+ElBQ^4R!EOX|X%0UD54hW(P(-C} zKf~=2pr!qp9hiysuH6Jly_sKP#)PgHQ5NF2*F(_Vtfg>D?KN0{hpkuyEmLHUW|E|p zUJxO+m{%3FSY^5oZ~L0_xA7di{zTw!y%SiI)U05K%@85E_aL*GRw5CA@54NT9Ee>u zQ+=rz)Wk#FPhV5O%*d3}8Jh^begYrEh7J2}@*yAy8AB%c>Qd^nep=J~H$5h*QB}`G zua86sRG+=NY9QL}!3_PzC=h1#y+xPQ*#|jpzM$SlXE^+E>S5#W6?KOB9aF=(X{irRw573#pUa(sAqgKi8Rm< z!laDYr6!cBZ2zW-ptdcDGK@xOaWRRlqc_t+=$=h!C^ne_d&yG$TJP?O>$;yIv{_*RLnt``tuPs94{ZUSlpJeq%_0kz-fp7V3M9uDaXB)tZfWSa z1P~+O^3QmPs-(eCi+8~4fSv669z_>#I@rLVE}#3$ua(~JQhG`gARu@|%coaL0v}X7 zc|2m~iE|b<1DtRWzphfNd}#0~rW}y@>fk-xH<@2Vx=MR@$l0d0YOS-q2Z|sq#Zw>m zBIwl6NpTu+ghC0zSFE%|D*9W4wL0a+B`jte9}BU&d(@wE8a(2WM)1#HHUg`Y`AERW zKxOil>vv4htE@mlpae1X&82yg&=f4^hfS^J+O>%rXD{H4XETZ0i4lJ9K{*J+)b>|e zoG^-Qt5LV)h|o{GBzf$&FMx{o&9Nd~&tVyA{RqhW>Fik8?5jV>M!x7FrjzjHdmG%P zu5?izK^xH@xlNxY2uGrg>-l#*oQFxPMJsI~eg5R~S1nePL84YoOrr%Q99LQTcT(aeOpoJ2bs?IIvV0v&HLIev^EDT*eCXY%0ffU|_Fihv>$JNG;< zNx$2SLmOEX9PQ9Uhr>@P9@BDewnFGMVl;IGh6mh3P4GsWY|C0}5cBUfcFU|bS6|)T zYr0cs03h%{g;!O`FC-*))K38q@8aud|Cc&d5@pBF)R%k#2n-8b`8yQG{_JV4H}heD zs5?lAv515b#Ste3&(Y57t_5ZJvgp1qZsC?FL_ICc zzubhz2H8^Y)LE)Rr2vR*6VJ|of{wlgzt=3^8DNHwjZ&T6Qe5nBkxxbKzKDnuvy*-GB{H<13Y}0ArMRQ%W zf|W_$H&H1i%jgsI_g}>mqCM5E9QzhA|MuTh+X&92bh{NSbesNrA8>2*%5XTkS)YrO zr}3sT?M9G@a@adF(;yqaP4saL4z11%mPCtKkGPH{t&haxIcodU>2fYYF)122s|IyJ z5W-#SC~v;!q|Y@|0EcORuNHt1;z}_`NV_8=P5M4EKA=J`_mrb0wB+``N{|8<1v9L? zs{{cMFGN5$&*icuPneR%tx@gRfP`DVN~w>p_5vNp8$^WH_@3B^Dc*;O+aD@O+Q{BJ zE)lduHpT7k*^RJ%f0t^?$q#3i0-Zl==HM7MxaL>qhY_^^6t^M-c zVeXcgYn$8lQ{8ArM>cOD0qOWqt3g5GL3+l??wGex5>CBt#TFVrr+pD0-=tl!ZUQzl$r&LQ9u0Tt6Qs^wvvIh8 zL@lgCX~C&&#A_X8xitz;=EvyPNX0uqUmZQ0*WN_f|*(X}Bs?bcD0ta<>2!2bI1w>E~V4KNqU@6bpi9DJ6`%C-o zCW>xuvY?Sg(>D}WJF?$>t z<)=-_dE_sdk5W)U=cot*8c2v|&3EXnBdtSJiKI-Q8$|R^Zg(b*?6t`*`Sf0mofoI* zjy_q7$=T{_hBDT$4*p)PqmOEL0%C4q*7I%ph|lz^Y~1NLsJh`QVM&_ah@Rzw*Nkqe!h z<35@DRqq5W*=|+tB#2J;=8)AM<^C9g9An0RbhEGxyy#VGaV&T*c|~;&J~tPfGnS(w z53(MmEqTyF+N=<~zma>!cs`o*&&^WDZegpYkVt;ptn_K}Q~WJ2yUYk_jv!jVfby_y zv%rRXVs`7s=75Mz#djo80tn?E^oJZ&X>=4}+zbw-KtPv;+WXz-DDPmVF;sXT_j!)5 z_hfi+Y-PVolj|uXh?#Xgw$<*h)yTFs^#cWSp5T{}#^;gV*A1Qhc(YCCP9A$bvH z+YtlZ@<*C>1Mw8MR&}TXZiHH(D!rB;po)uE`u#a)ZKsHr^@!^8_7(Tj?-VgUy@Xm1NhYHKj2 zk@G(-IL6wg(B&6U>RE(nzpEYsynqn-5PZ6br92&5dKW{dk^|8Yjwrw;MRO)opJQZ{ zhOU<4S=%@Kgh2hUxI{7{O|aeCm*CUpXkx@c3LN`c6*o4W8U|Kt`GBlS2pWtKiqUO! z7K}{TAedTi>aRL{1KZzS2lliOfPT3B8fA`7n8>rAb3agiTU%1LeJoL+L1Rloq~T97 zwsHg~xI{sR0jq8ZCi$*8=k~c%ItKiJ5RDNAMg;Pa5Y}O@T14f%ftB$!!zM1IL^kQa zRsu7kG??c62!>nsJ%{14;9D)Q{{J&w#s^Jm#MoS}_m@Y}7m*wm zDo@ju;4qFfu(--mEsSlcN-K=AfB67`f0n-r0*j>NA_y-0+K!%&0crsa2@*O)sb+~I zRFI7?=fPa(Jwd(jl+jAJrJ;6#nGjbITc+h?t@I$PwDA7_~f3kIe(?2%^?iF*+< zg=}!(-5)!(XNYV20ca6O_(x^AlHx>)XB0VjDlR{N1pIydz^HaEmrC`EiW6h?vDj zh-%iPer-ZHww^a*n{cK0=B0!}(^y=(VjnnOmXRFn zuVJbUkRYpfl-5#qVtaGDa6#^V+iBvjsA8tyfseMi!G|Ah6krfwd{>?M&_h{C{d1IN z%2{S^T^4xc(4@j4#`rgA75a^S$9ZCTH$ifP$UJ;ZoYRhr989HklplfQSc4r?_n9u1O=E2TYE7 z*2Z;g=^s9O4k_+8K}M(uy?lftj)Dz-Gu*w7jug+45b$+(H@^0Xc5|I4OY?kNK*fXW z{Ta#b+3cQ?Pb~BY)1iUTFuKRkD zT&ZC5oq$8e(b!%rQ2W-YXPguHFbH3XW>>$LDGgLcG|W0Bo(uqUy~d)o0Sd&L{*G)T z^}B)`r)>Sp3BUv%l9j?q(5SQoE16hyc8VwqKtpaiCXPko>SzQxeMdzOwf+%I8-zp{b3Q|5+eA==|&RZuU;cac=tBN?cQpPp=l$1JC$rCw?_tjXvzq zA>-Ks6QG0tponrSI?d>e{hP2NvAm^P-#e{I9HtFSdPWarND#+7=Xvhn#9PudI&mG& zV?|1IMb<)SL~X1_Z<$~bxX4xLTz%xYizaueU$)y=V=B76y&)7Ud+g4p@Q5@po4`x1 z^h>}&d4}8Q<*P3{$Yf59A^IN5pBMaAWZUzXD}P1eA?I?V5eWVvQ|eB($NZBGG}{`Y zk731p(<~ylKu)n;ppSd8PEN@OUZ(K-*DV1FPGQ+<>o2#XF3ejFPla5qi9a5{9zs+4 z@LYe`wfn*$jr($Ey zIX@}$*4hN#gnDi!=I0tnxK{i5nx`i&BiqR+d{Gv`5Zn5)M9q&!Fv~`-SyDcl8k-!n z3!gFDYD5*ba1U%0z9JyIH9^vOPx&L0=k?nCmNXFAAh*OX=cw|NqOrpXjhD%! zMchQQz&IoU1Z#KSHJL9N_3g=f5_qkQ1TpduxFTy(z(Y{Ls&uU{6ywUx^86IaUCHft zU5mAvdumj`Aw9Pehm(x61v@sAX?xTuore((2otRBHiey6cEzS{I(LWH(t;ZK9|d3` z#-c~?qWppjk`pWZdKR<&W7$)!f;Y`h4#GJw_Kbv0@8^H3 zeBSFO2L2(_mXUL3ZpIn_ht~MFSvS~mmyG-5yh3g<)bqL@*U`sTK!}54v8MY zY2YPz$e!!|f6Tt^m9naE*`fpU4Kul0lp-5GL?2YSFdc3%p0Cq$ckGzFuG;?aTzgy# zsxU)uc27tMYLI-c)wtHDwX@idLqq*=L0w_WCoYWSkcf3ki#fTRBEL_!qIUMDxZ$LL zP>-7jPMCo>c@(+=5P3}RQ81+@QVsO^E~YVCp40@zixm&5>68+5*k34((2v{&xgwW? znbyX|q-=E@nz@k9F~t@?-jw7um?%+yU}$$jVAZ6Fc(pENz75Jc-{)%?@> zFBxDV1Hv#_QLW`Bkq0!XSoe{q=A!hiX1$+RkE1pxujx~DTGqm`0urnj=w6QQ^!n%R zM5SOO-T0=lBvvM-AhV7_EJ7GEZFr}t;Sr)Jv}<+;qR8miQJa)v&U&bKDl_h)A*7fP+=VCZdv&?eGw;Uw}+&=c@SBk+QN5@6jm&AIF0WoqMhy2oR^nN6zEu z^$FmDE-4UsOWt&0@D@HT_z!}Ig{WSkGDn8F<&bxMUj7sJ7nEQ1$RM<1p#80B##Q|- z5;^ru#KkL-5O-I);G@DF%jgs1TtNgK9URIaLLoh_4!}ex=?zHa4X_aland2%?9P~x z=&ilhw#XxNF-w3!@#2g`DOf-1%iHtgL&>M|>WH(FoUQN>WnT5(Gk7NoRgk0TS6f?2 zjvOoX5qZnB@#q>m5Rr|L93uj?a+!8M`Fvi!ofA)7L>Wtev#tO{UHzr@`r-e4mkfoA zhnH>YE+NyJL!SjMiB=o$+(59AF4T&br$0wgg}r{D$&d5%zq%8=dM;9nN_lM&*&T04 z1U7K(3rRbV^hidXeqpI?d%Zn8UQj4SNWO2^H#fI<7;UfK*q!Zh- zuqIDkr7U*3cvX#Y9&RT?gUZ7J{Jrxxw6HsCY|pVR-WpShqe7V0zFaoY_1~3(x=%pY{%-U#MSa~asM50k)O0s zg9Q6*f~#l#P9dwy_hdqy$|to5gp%qXw1pf*3BcgW${n4Wvl=>?F?|FyO)o1fdny>7 zMHOdllsF(|%Eb9PL^B|V8ywcPo%eDyKtZRD0uMKL*k&F=VkR^Ar}wTn6tc+w?S%N+ zPRirlY7PgeL?=(cLRbX6VJlv~U?zQE)QNN3dgvr(W@p4iPfk*G z&ZpcG@=s0xK(q53h}8M}Y3-CFQTfXCquhJACZHf~&FU#OFYyb@aj;mV+>UJ`x9Wyy zXtIkLilsH8Ahh&vO$pri0vNxxg8EiUdWov|5U%H@e4^O;6)5|pLy-|X)NPyowLlUt zb=++8naEJmHF@jjq9GNyA{-t`p>hu(mop(-{JU9m7BnXY>*v zak}i2`@V?0%1c^XLsH&79M{HcE@@e=9TK`mgIcDC|GK&A&K6|+>5j`W?|aA~(^?23 zyaX8Fu-(Q?yQG2VQJ+J(KgG?sJ9v~kc~??IZ|H1Hupiv6GjBql)*O0BbAVtqy;3F&$))560-$?h&vVhS3rH19J z;34MM#Yic@;!S+JI;Dq~Wj;hYdT*d19!eq@7V?Wc_o^ZTOmjHw?h_RaSKr8ZA{$^K z^(xR22ornW-`loWX3drG;^=;Vf*QCwYMXy<7ic3l%ALP>UZ4bjAK?6v(ZW8m%-DF> zO-@a$M!-PMLtOdvd1Yin@2Z&lkMyFZp{8voX&T#X&0brbb5?H%_Kgjob8;GQkM~u( zcDlcVh=C5dY8k!nT4uev3yhjWCSK4Y;p)t2?|o>^_9F)T#3Nl=?|(nL4+w_P5KqNa zQdP|2fP_Ubh%XvWoY&Oo*YnfFLKj7FuMD~hV%x9qzwmH>QFiYt{Lgk;tnHd;-_J3K zrHG!1;<-k3;QMyJ+aQc@&&mBLJ=^^7joljW%Zrvs*`+KgzKg+thLnhRFx2~3K21gI z?7_|%*5S$itbgj~YSHiBU+XAt^!R9iLml+uAADj2JC9bDRiK7Y5Z(T{U(D|0$D0P; zO~(hBv7=|l9nu|=A_>PE#&KePdr6lZ6TCK zubs(af?iJVZ+)xFQ7?}qbuK_awvw|UBjV$a=*;;b6BuQmb8e)&z#vSj0u2q$+_FrN z5R1e!9|XW~s-gty8~0S$ca z78ZM!qSEmRCnbnP3}syU3~7Xz6$bKdhUXre{NKFzA#>tjyAk?miT|mjugP0!N3-T}_5n zgSVL|DhX0Ks(D>jpb#Ku*75*@HVqZ%2zDGmLX-O7(u8WE7-nT8Jh>RL9`uhGh=hv< zS5hOHSlwJTJs$git<2WMTj}mz*&NjrL?DmHYPpW` z2#Wt^^x`vOHIf;D5*bHP9pMt6s)&lCzWui!6RFENc{cNY4&!i#J~ZbG3L>^6Nd=1O z=-t^Yc^3?;)q2kuc5HVjfe(M4UyBKP(44nu&GXhHU2u6Hn2WbkA^2r*T;?f)7@86C za`*1|4#_0iYmkBl(Q;$z%}P?JPYrwF4+#%9PfS@z|2Bx$@Vwn#$MV0?gh;RT9P|7v z^A4tt*8-7F!BO=V=HY)`oieG2{aXYrD**}Kk1cD?MZ-NtkPxq2rfzzKcbvRfAaQP9 z`@l|$V5!ONC`ns7aFKTqstpVLMK<>yRS%@{6-s9|g8=#_>hFYqxB>}2DY~=}5cw9D zSFQ+wigX?Qxoc86%4g^V9Cxw|-Qwc4aEp9atQXr)W~Y99AAkr_rO27slsGz@0D>t7 zHPrUBt!=&sQ^IAUlmBD&@TqD{h;!W9i~vG#1P>@!{vOYRQ+53Xg7@2Ov~eeRbb6<# z-h+-vSo7T%95V>nEMmnrRC$xRzdAZp0E5gjxqD%NhbK#)r&^LR=^J*^{^M@IQ!QbOAga^kj$iXsx8|raE&Xg^-ny=Jg{KB@mHS<2+BmxJYl5b6?+Fv70Qh^NV5Tpb?4W>x=2K^uqaY3>R z`=4qKCZj&SpPssrlA0yCFIYqmT*xeX{hzH%WNs-UeOH5MIvT^e==H;fpMA%9v7>oU zPOOH(>;xX9aF|ssst;1@kbpyNlZP0o&r|5Cf-2kGo$On2uD`l*<^s1uT`FM;!4fY7 z&;&c6A$UdQ0KcjN3D}5!e$ktsKkw}2&ZQ%n?H14+_pH%RmUY{1&9Hz&wfyqsqBPPv zJo$cItke&~`t{`H9Nj-iL?UCn2>it(y?#=56?>jVYhS}yh_@pq%`^lWVmzFE^#{(c z@jieAG9uts|J!^qBp5`0(L5JR7_fX-f( z%V+EL-PI73=d&723+ELD>$L39R`9_D_x*7YoA;g6f*9Rj;=A(_n}^19NQGbe&$EOM zWiP7%1f32!5cQ{9Me83NA?H+|pSYV?kVCb!KZuHc#XFwjSKBUD_J6-%K@cHy-Uu&S z?a!w8*s@s6TP<`FPa|QSw*(NWeE$L$upM8Py-Rlw{n0PTN16m35bx&Sv%NQ(r8{{C zH%0F6b8p$@Ha0V6^Pbot0y^vh1VGQ}9R<5B=7~b{=>vy*)1ALk=QHO9wI! zXN8re5Jz(cJ9?X!ynKA6!ClwbA2OV66Ri1%MwCE2jOJR=raB68VG zs)+QYGO_Y&|AdHY&z+`yUxD%j1QUaH1y}T)r9Nnt7*c!0xFw-z5e-bQxrfM@v;-V% z5V|}`LwCi;Z7QEr=Oe$CWG^AxPoK(793}ut4IyASUEB7U~1t8nX zO#hLy)6*zZs5|_-^2hheru3bH!~_~y&hE?Cjn0}}1QLj8T}StU4Dhqe2_N>QAQ{^f75^h51(n`5c`I#;NB zBZjU`Z0rIHr1wUK{TMM2P-=Nz(;~{n&i%3+pm_SL>xkTaArRVCs@D++*X`nRDH+mq z3M7h^5p_;|1`*%d9j=u*^jbIwI4@ExGUu%x&omQ#wo*=uNF}=L*2aB8SSUw)W~mYl zby9iTfDoEpB54r|ShgKzK{yc3Y)skK=enO=9Bd>04^O$rGq9`Zf)QYZ-({1Rv}pf- zR&l0QK?OZWDWZhJrtWICk17_&5U_=d0rQsHiVI@vfJ+%M! zXd{@(jq#*5O8$2rVIACJMVCPcBRAN)PqF+Ql0WG=Iqlx(-RX(C!@I4;Y&^t6eCgJS zx$&SC8!(`V5V5`lAlv2{)kF2y%VT%*>Oy|zYP~Ai*8ZGH>4G4ajERZ@f0wL@WYGUX z2Q8KvRS zCZ(?M07Isu4t3f)&;bdkUhoJ#{5KwZWcC69#&W^Mrq6oBd-`sIAFbLMwlNaiMrm34 zPuG3W%XuK~Zz43g`DXzQj2}T4r`!ft#p35Ab^DD!oEKN0jpB&&WiGF6IROmRzXs$+ zj1b}aCa3(rclJe)L9vevV-{{qh)Ufb+aS=a0u33sNUJGW|LtCL_6SDY`WEm);(Y)h z^V{LS-h8H8oF}hfhBo}@bCvI`e8tS(0m#lcA-G0%ADqQ=+oU5A4ur4>DWsJkh=s{t zHAb@DTm%uxv^WW}ZMU#%kvKa)Tcy~|=*s055Ahk$m zUhXl;`asVd2qE>zwcmmmCaW6C1VI}+dCK>v#_1++UEF|&akqQQ3ky+sGYoO_#a%AO z^XLdK8pz@H&$abHLgE2wt~iU0O!szXTZN=k4Y=vHqmr<1KKXIo*@q+%3FuTlpQ)O- z_x5(C_fmA&jJ!|+8ccRf3tyTDI@70~O$EPJo25Xn;L=sv=E?wr5;AsYc!JyIX}9#r zstC}hHDd8e9LXKto-3V8tYmH$DaoGg3`UL1p8w)~Nb@=2;~7uw)JHSRVcW6a`(ir# zdsvHTi??P{kRscG%=Gj(jzr_k-FHYL#*wzq=-F`1dt3}(gX6RHu56J@*g05nS#~;- z0S|mNROOSLvWZ{_c#T$mku&Q3#62QJd#o?MIWjL3KbO8mNI;0gBz(FU9~Q&n;*r08 zW!#8*G2Xb54z>If32c<@-ftL(><9O4?`Bwi{LD70;34udwE+!@H5A+stNySEF|1zL)c}WrZ>QI3 zw6LkYv}9IKj%y+gz=HC)A*U6t3j78(7JFOHn$q3=j1Y>tOhXgjP=fm*sL4)UD!xfd zAu-a2Its732fBd6#e4w-l*+b87zx5Rrn{~u^P!1FsK0W0ViN)&$><{W>t$e4Ii409 zXW=6~R>idlv%X(xdsdvrALZV|v{>uRj8)I-MRUWz?`MAL7TQKQ#B#0I?X-r-c$wqu zdDs1V=ALzchTBDF1T*cftMSj4ml7bqI%pvmYXJ`FB%Zw|CA5|HjiL*#tKPt}RyEE< zO;+uev-anjbEL35Kp?5uKC*^ZGl-Byj3c3rIMQh+U_=$GQqQP= zI;tSNd7`sfZ@eNO8Z`1=3u^lYErXuYqB2za`}iT(#b+3#bbiG(1Rr2>@6*kOPYEvp zv(Y+NO&|4#2OZ=OBAXvGMMphini@JCd7QAJxaD1Q_6FK2olZ`}RMr@BK7-I=cK~M;1KZo*{~iu@Jtd z_`p}%{J{=n1wHcZowD#CrM<=JSv%-CT6!uw?7u2t=4NBp*aSJ(4@dZ$Pwf%t$)0Eu z9U8wc6|e+7k9Q{MR(N=nllz&*fAlp|DV>xR5vjyR?U0TGBsa zD4L4A-_vL#*de|+Mh3GvlZbEiGiY|=DK+--45BR7%$SVGjCcGZE3E~mbf4Nl^Mqa{ zH6k>d%92L_hCq40Xh#d?k)XW0^_^oa-JcH`A(t0tg|>d1gi__8?sfKY9C_#CRn^mf zb0Sjd`Giqz9F*peh&v*tV{ol|Y-dq>q9I;iUHP?gPE8RBYQPY2#%4X3NmPiT8K*jZ zFDd^B&SRaJk}upl4+_7G#|VeVgD`GJp^F}w4(<6u?6kPNBR4|&jTZkc9N0Mccf}-c1 z#Qht7xxj;@sfzlit`c{A`w)`BuFYsP|DZw*{kPEmziM%5HC9B3a^9agfP>wfQ@=~S z$IBwRcmzE9OZQ~>8h;WCE#e3##hEc%KFg30?QEYVf&Ow?N8-Z`evpe@LiFpWjE_`j=!AyCu-k8g(-vxM3|Oqv3it|+G)?<{q;md2`<7$zMAb7bDI97 zaB8;dqo|7ZlDs2Hnzl0dHS9DSiN8<5BYjz+;4ZpsMPZNv1zFVo@5vr-$f{w_tg-K= z0S`jyEUtrEv}JtMna?W|yW9Z+pT<&DUlc<{|3xK15+WDmBF`_0i~BP&YHH#qZ%oYm zIvs5z>1Dxc{hfQYS|c<9A7(=QM1y4l4)pP9Ue=v5O(|o4TXoc>b25X%f&vR4>&9gg z?>>+SZ<#sTFK>06DiTH0l92exfN6g9Omsv``!-yMQ5an;rLK31;j{4iywr!9mbO@F#Jyn=sI&{!Lm;47We>jN0pi8gloVQ-wn!*ra1h);xYlH-WqlxTUU2Mv zbWB=udMgKSFBUT`^2Y8u7j*V7#wFR-$64=t_-lwn-X5ns#UZ^xz2Uki^Q%u{%!H-tl|A>Kk~Q;DF}m0M>*Jw0xkyk_sX-6cBrdrVzaX~P1zJ=_>Js$8RRf9zr&>u_NZUPWpnl68~!$WkH*tOh{ogVk<4&U|6vdf zF+1E3Uk}E-q|=0N z&iM2v-s)s(d^Qg&zc)YY?WQUSnhuN{( z0R{=_^c6o&7hmfuL*hbR=y;=%g7u&TDR?6Ot}3z@jc04}kx$#`rXV2-L9{_x1Kr30 z0*1N|_h_PUt`$XA-;g2_X0tBG-UJ&3P02-L*1aik5H-=}BY5aMnEM*5JA9~==~A${JW z{miS`TBUk-%U3KA$X8AR7gux|jzA%WJ1_V0Dco;QkqG`>9SS!F=m z6-A&SW0T>!Dah_g+;gF9xp4YA?vHGfD=AE$)t(`_&Fy1bhW+l7@|6EEjNji699bLC z>~tneVLEyY=Wgb#XmK-JUi;)iOl}Vus`Tn@9zE_BL*c4uqpo!LODX+Oe zfxtsS$5W5`KTxnPf)CV0LW9&qVxnVcUnGa^{abF4mcn_k^$`?{91x9s$d1RJ`Bq4> z$h~l>Vmz43*kD4T@AuY?`N4QKYLI#t&mq7=w^0n~8VFUqujLn*J79!0AM&$0M0qgD z7fU7!!&8K$q;$k*cKy5s#_a1QnwhR7J=XS&ws94fVHOUJ+`U)#_+Uqo0Sz8azwq1y z66@rRAFc#K%r%J%wuzH#)f;A|Ct%~G(B~i;+ok|Q*OFw*I92RIw-Ezd7sI@Z$}OFX z;^yM1x#V#W&gD^a`oA4%56~jUs-GjoOfg$(Uo3u&)1yq^#M6#Vaaye7d|3g;> z>{*^kH|c!&r;)V7R+~>q!tRb#lO_TV z=CIcsEE~MwAkJj+)5S<2xN7+)wQ+#QwOv;ShpCp~-ln%{G1 z$gvRZUay=btt9?#x`edJ)u(A!44j7IZGMj$9R} z`xNrlY5X4V>|gqtTI;l$w;xm3A>#M)Jg;Tv5IeI%=eU}@x?451jb;t1eI|{&21^0b zwa-U-2qOFu55ta2&jnGcuW?Qy5m5)Zz#$EOM4#=Z$xb9R@Zoz5*&wyZ_)47fK<=ui zlvMi)YsgO3FS}MYUH5!T=vnUj9QAVxodRjh0S%Qx<7;Qv3*+)V_iflxP1WUn`X^H= z+U1mblCGX|o*LVv2G!o34#|UGpDy^;c1M`l&YfRj3q($iUd^e(`E@D~^y^RnK$Ddt z%T4rn;C$;91WR@R@#_%^cV_}`W9$u_IZD+{Dc$yFq{^Z523K@i^PPx(BzH1yfP zA>vK$JAV+1YdZ7?mTpwER_o^iAmHiO+5rVDWrb|c*BPUjc5~1(DFFfve@5wDgp}%+ zc=Rf)>U{C+xS2;B@_3Bafe?AZ{*~ZO-c}f!$N>e-=SZcZa1cQ@$nASC zY`(!u`y+9l$)Si(bccVgdCG0V&O!0Ic|Ev5AZj8D$ok3BNu?#dI0}7-2A#RO_Js;Q zUq`z?muzoW!&WX>;q-t*cN;N^noWV0RqN?GTeF``PUDZ(%kO-sKtsZePpTpmI|ebR z=(kzc=$4b*Gh?Y8O3KxQw$j2lc3=?vy37BBcXKsf&E4BI2qV)!*v#oX`mqrHSqQfm z;t$><$85n_9^7t~o{icFLYB&TE${0B+G}w^i3A_NaTAre5y@>gD<^J^`R0_iTu* zb(V&+zkH>uP5KMDw1e8%ATADfTlUyMjR=7huI6`{cYE)@WiVXs{uP>=f%LiRFu;R* z8Xi)=7$Ehmf=jdSK!OZ>8QHafgHK07#+eqU@7Fyw;n0X5VpV0L zSHVzL^IfC_EZR0_DOAm`Hc4o~2-Fvt)v_VHo%3t30v}zgaqdqy%PvppZM^rI#Cfm1 z%_pO#k@c_oIyJc0P1uaI&0M})#AOt6l5^Z|3)$?Z-A}75#Wm!@?M1IoSb_}P4y%+w zz(R8#+usB`K!@wYN^bj@xAH7Xx&aS~WHW2GrP)sh`k5_LKRsij(v!q&At3YOSTxZ+ z+Boz~%e#=v0S<1Y-D3@5Q|+aCiK0EE|W3fcyf(W1{rsb%`IpXB4NIZ#W0f(s#J7s~fTKm;GW(T!Eq0wCD>2-9+Q zlOjH^Y@8R~JF~^4M`qo)5cl-VaGYndk}MZ79zRYZ<$9CB-)O=zo1GLE4I+X~x7GHk z*lU~2-3RuWynW7=N~%UCuETE;%o| zI5QNlgAcR*u4hDWH2j`sKEo>exB?LJHWr7of5)gtu7PR?FZu!sbM~ty*+3wXWBDul zk;&iXkx_6+pJDv+{|PYMmP`L5+x$sCIPwn`zd95IF*dVM07Ar(SO{Fdukvyg%Ig4@ zR`<@2sTpmN^hS)xFKd_#q%A@R5J?64h0D+n(L--;O)!-qo;lzD7dv&|=hsl12 z1s7rF@yXAtBM`IIGGQYw*I?>^f^Sh-ZAyPUzZ$}~!_iFi@H!gJO_voQfQA4Fd@q3x z=IV9+yER^A6NKglu>O%l@iqv3JV1v_DN~``41z}(b!q!t_DhoWe0DpwL?^se-qCaL zaV_A6PeU%95;7q1t7l1{+8IDXW#K8iZCgg!uWJQ^SMgfQJzFNT>uKy}MHv z03lwW9Y^o>Tu0Yd!ylrqS$m>B@0u+sEvxYlLMGvMm0fyA)$6j;pZ-_`VX!c|2U%Tj zy_XOo+9QX|hW+xQScFKyG^A*RZ1-5-o{JA4?>`m@O#HzKb#pm-bMMzynkI^z(=)ls zs*PT{l>zlM!Qpmq1TsKER#?Nhr(?qH;N`je7Qa%c03jS>t6|j1DN^mj?CAMK zK*sc!JOn7e#V#i=@wKQVYGB}OB0TYeEf%p9Eb>Lsh3WKd=eyVv!7vaQs0Fv)>w}3$E zKQjP9)2WkZ*CG&_-43!S|3Mq9mipB?dizB6erQBI^I0oPm?6(=Psv?IH0*vE^s2Gy z0@;IjGA}*bqxQ!Z2!7`7l=Dh6Vh;QSHC;NL<4XisDI@+h+@_N6(A)$d{Cp3HB}uBH zA?9g3Z!qly_!Cv)b}At9C4@l%B6DI_kWv1bF4TO{jiPKpQSetH(sTba_=}(*h}8?O zubVk>W@^0YHh^8=ohO4`<>|hqr$eLhex3Ftv)~YNq!9#TdK_+{IkIQ$ff)|7a;rk9 zo+i^H0SC(X)sp2fwP{c8yJg$8@wYk}lu}09%TE!k5$%Gax;~^~tq%q^ONEKv=J+sT zAp}LAT;&yE&GeV8F|kPwi8 zdoT!VcNQjCWPfazd}1LVuhaUP)53bpYKldOSaDO_hLOXO_Nt5rO-OeVjMP&2^rW%!5N*ymjKf3 z%I@&iPv&80)rg~$6*Ml`&%wr`LE76KqgQ}JQ6`NwJj1Y9Lnh$pk}qB*OA zbaTc5uj@;T;v}4kKqmnX@(!MXi9E7)#Oe=gT8|oeNgK;p##NWwczwma@KF`)`_@kIx#HRrdpLsV8yugUNv~BeQGGFy(o{;rqoW<_8 z)O?nWrO_kzp%Ddn5s2&K>r&iiQ4}gzhZ);oiB`n zJVGfgbsg0;Bf^nf_gb#pn_!EUQ%g1L=THc9uiEyS&Gt@=;31yH5kcy8NcJ#lxPA19 zfeiQO`$9&;+#>lUr)d$~WVPRFm?=7?e;1(kRXpB^ZKUIyWB=20tW(Yr0^Ju5E2+8F zfyqQoLeeQqmj+bO>pu;8>g3)P?6DNgjx+ibN?uusyX=jv0wmL~!SL|B%W2o>z2X4| zG~f`xKXc5rx#@cdz(E>odh0Qstp$AtXx2!KxVSq-HqpdfVzWsR)O}kWEJYt3Zt}8O zEn+hC53E>JjGI4^(^dVhreedI=ZJ&WC$_JftWD7DNf*s^WV`|(cO|pLA?h#FCazUQ z5e!WikPyv5X~KI)F}lv}7F<-JO{N{d$dL|v5Fn7|haVWE2xKMQ?qfJekAC+v{@so{ zo{PVDRo!dZ=&oA6Md?+Ni2mc1rm%bGJM~H-;a>D+D)V;8gMcAD$s!btHz0>YRnO0$ zQNjcv+5rg*)G5cjxA*G2k9*Y1KdySt%n*KJkn-$T?=#%DcmunW@w)yb#iqbQ8r%5+ zO~+s7gfIx;_Oq8-w^2)&*o71 zq9U*`c8bu8HShWIn==C&$fV&bq|!n3)wH`WhOaK(2t+;t6nz>%LlFezmd^K6fa{x$ zg1c2=@x`mj>aXR0K!$!e!o1AN^$)o~5M)#7YEe?{^>7bdJ1Tv@>UaJ*bb>+|$#MEHoT?pu)f*)vI@2=C1{WkgA& zN4N9oi5?ogQuSZnL_|Yguc9zeyV!R}ks3a`f61^%!y#eDZ5gW~Gh4@>7iS{%fveeE zw)0l|C45E*MXT#Uv=Oa#fOWl$S_vKH1>fAskPy@A#_3wNmzR3vb57gSnU0UwMSi9) zf<6KSRzwJ^XTI$D{M}Y_y|%X`O6TB&HF9VfA|^JS%wAu2yT(57D!X_33`ePo6G@#2 z%67o~1UdCRwJth`%;$E>@gI_QYBm1TEkvrY2qK7u=XuVqcMmVq#b5Ju*LCd@KtZjN=TfDri;~|= zA{$CA*=@!^A)s3}(L;TRxTXReE$IU(Lo)25mgS!WZ;m+9*db>SpPOT*rfos$!hP@N zw_S1}?qxu-qRO-gVl4zk`)6}6mw2J^C5XoUE0t?>XC4cr@2As-XeC^8~?K_MWp?DoBUI0!AIsZkrGI^XlT;2}1pF9_UaNsgWZ9s|)s(#U2kQk+|6phm8F`@SK*%pu}J&lZ-}ojae(R!a5L$9(iaL8|5dh9Vua z`~0qN5pN$CB&Fdf1RtWkkezfrvo0o$Wz&vvTfc&P8OI#yYGHjg-M9n~3E{F)3a)-< z6xki=;1Go>z9y*rv#+Idid&IDFKPAkUI7U2XGZ@m@lu=R3hw-E*7GQnxNUGCw~2Hj z84fyYhxs@mPl93i^7;8pNQS@2hfFw+ccT4#*XKlSJKLu0ZBKW7(}>a9tPPJT4`L#( zf;Et#(?lbQQP*-FmV^-z&)Y}M2F`%dVFTaD&SL_mkmjQvH? z>s>;vq*7&cJz*DpuU+GNzF>^R+#LG;NxG(Yzq(9p^}{%k>KIqKanh4yLCFnyZnW?r z;FGTc4mIxYzN^#b4EZgaYIhuo1=d$j6T`d6h)TqrJ*FqO_i2BiuxIrGB_qU9EYlUj zueSOm_bx4V{b9cQ)oXk%{p2JV$>HYeF8KDu@%w&Cg4kL48 zwOvMPjOMUKcYy=Zv--4xF*B(gVGmMXp&wpnoguO3xa#P^cjELmGvYm1FFeN0B3onV zun7EoGJ+@W}+(mWYzC=F|HHq(<5+PlTtCEV{+p$QESHX)2?#GM~ zpJsgW_qY2Wu#F9Ao7b7TM`c7b)8jvPmUN6RUsfUC9OM1NxcjgusJA3Q{fTDLG_MWA z4Ud|y(QQ8uM&=SGp*_+{)Gf^d5!|=NK!?t&i^9!j9^c+3tbB13FxR?^0ETELnNxHk zN%UgdeS7r*5L{+I!-7D5rua+(1TSJ&n_Foik2&5o3MYx$tV}cD)v!Vl4Kp}+`p$vl zazoZ@rjdM^Hm#3Q!Dz`+o7ek=zmf82CJ2HPzSjX}7zh?1V@~@hS{*yQ%S@fF1*&im zHT>P%@%#2mT`|?A*096y-gGei_I_Q%5xckeYqZwU7_l7-i_7->L()Swh(>-`MS_RD zg%LS%5p@v(2U%=r=u|{Gv);ABA>rr!VleGo8U9KzLj?<<(RAzf^Oc~44D22TA00iP z@M7@IwRAn~l9;=*i;LToI_JzOq-1hz>J4(tH^92GS+q z=pl`!jv(jR9rESY-n2Gx3egQ;%VW;yY;lc1Lec1}&(o$N5AD*kx+n;0-T;TFw&%hj zg(GMq_apR{;IaR9T6;^B_71PRgNKx-L8Mpg7JClC<3mNv!25S1FCZalf&ANE;%}or zu%E2p5WTq9Gb4%u3*qsrn6I$wxV%`W{ z&fd3>46eq^qWNu@d{->gnh0gV4};A)Ql4#%FKg9Eb^;2;ZII+=5D!aCU?HwY_pHlJ zY3K-r$!C>`*SAWC)5F_qy<}PPZu-&_A(w%O#9@$BUszhfDo!c zpq<$7$0G({2yBq_bIW~m6IS#WKp>t#+?A_~=GA;+^MHqZ?G?n6%x-7=+M(rFWB-sF zcp?^WyEA#RA)vy_)>UuNM(6z9MMRrteJ$gCbDP|v2u8In_O0sx@(S-$0|krOA7ZLV zBr-!YKisk0zLZt`MF>aGMmG`b)5bB`t=tHR`?YXH1sFnZoDhM@LFfL830z;?>#$N0 z2MPc}ZX^&v<~sfuew@6Dg3HB9DwV<^lX5jjJaQ|mXLXR;@*tYZ&=B1M9Sq;A_2hi^ zt#z2=u&@bSm8IT#-Tf0SO(g_eVh?d?FEZbXj&yJqI_DfP<`_HkJ$KpVh>7q&K1tG*8a=9dpmtQLsyYd#g%G~$3zYO2hTd$2w+sX=_&FMvcLnCgU&FtQY2kjzS*mwPYuP=FxGbhq7b)p{#wAyJM}77Ml0R zaeMaX#9-oS_sL8B3#EJ3yVf&8IS&a9EN{Xuq8!9iEp3&Ci9s0*9mZP^dPwmkXM{LV zt(m>g^C%;Z{reHbl(51Gc>xYB9rx3{0hcBM9FY)o{Qe0drBw~Rtgm`L{ifge1TRT3 z>FlDUBQHJMbKsBDw%MC8%>COK1Y3k}dOWSBkG0t9c$hv?_C^ogcd-s4wM*J`|DrUa z1w3f}C+Bz3AeY^`nZ~33%B|@uS_p+Vlp$tXEOh&lUsv{wvM3I#U#5Z6Rr+WIlc@bQ zZ9DG|U`8SwM{}az&FZ${oQT_}DxoPUMrDy;%G9iPp%oo>NJJC<00=f1W2toZKtoxl z(O|W+4+7QGl(7 z+S2tA+U^bN@#@*cD)`_+51XV=$*dd}+ zl3F1>;${_btSWn|SB$vaZ+mAKExP+>Ww73U|B4yys6)t!jP%R+hz3o+kH533Jcwp% zx@fk~HlPq=GqVS*H(8hrbLc~D@`iMh48>)%gGEWx4^v#C4j`RBQg?xu(>K+kK)~Gd zDlXDw#bsf^P^}1tlRxl8E`US#N&*&#*9%R`xpSr$kKRW0!8IkctDL{fgj-^B*!%mn5cKYcr)aaRiPCfoS!bdA=8ght@b>6A0#bS3ZCdaji zgaP$)jy0`0_{oj6+Y{-KT z$4w;WL=0p7QMY%`v%5e-L$CODiqUFtnd;C&CnD$CcxAtFO&N4(?k$VxCKhQsIyB+4ugr_-Vye|4{H|JWA-P5{NGgW3pia#20 zDI1yj(;_h^lgn7hA`fhOARuhZ#@&xA0SEOP*P0lua1gM+dv-COU;z!xvN%n$LlWOS zOrx^EJ==Kv7&&GZ+=6_w7|E3;f0`wllha8CI0!}fT?6j!Ix~sA8*i z_KdrLA!^y(oMo`booE_wH>m*)zrWX?nFKC@4P*90UfSJgYp(&wPQ+X!#@MY`Dl5rw ztP?S4!3e(?Ai#>wI5u~(*B@hlRmc6Fcm9Ze)CgtrbJ8!_8g76>H!18T|hg|a3O2TmWu%lEpDoGA<1LaJz8ueGU09)He0NpC!U%j z1n72cv3;}a_D6cPa*lo4A`^|%UeAO?9Hm;kPaa5LXTPMUn>f2|@LoRw2=*wXET_3y zA!a%7{o->Vhqc$Y0z@!SOY1744nr)%0uh))ySyq74@qw#Iai*t2x-9ua0}-isIwrK z6!GFb|7E1>xgG>Iw%5}jgsflYW8E|OQ)8#s#$|;6TT8PYA>#v``~$9vIEX9$thD65 z8>;x5aLhQnWiLP=edRY>FX#KuiX)|^?WNN>T})QCSTA;_CIgSgg1)@DJy+1-9`&}! zj^Vd1gZ0>a0SHhKfI*;HC^+s#-=TEEI+kG;9KegRM!Nx?5qA98W1ixA7I7Dbe(sz` zHpC;iBj<+^8u2%fueWcS@sWHi1SOzEFWbQIz{(@1Y@)PiggOY_>>|AJ^OJmL9qt|) zH?@N3qK6ATTm%gA+PUyZ1kfTOzsOEMc%Za-&5S2WCjk$Lh#X_~V9@sZN*n&UJquo* z4^+c&1U6F68URDuW{82-pHzmwZsf`40D>Qm?v*tLV$#~&5T4DwE8n$7*r9rC&Zl^} zyk#IkuOD)4c3hkP8)(cJdO$w1r5hK@eiu$&5_4r<^Lym)utY&Qy&~(S<8In6m7QF=#heNx^ z&0TkN%jk~Jv!Ry|=p(i8NR;KV;B5Trvn3@VlP5}hhpc(*EuQuZ9hngE=_5^4uYwpn zZ1S)nY_A`oi$Ae?$>ujxQ}x-9LB(!Q+Wph})q8pI z6*P`mirw1(X3k@0dPg;CYJJlk zz-JKUz#a%*<5q6_h|BN5^?XA2+2aO}{=MW<& zxQg{5{oUvUL!A|ceVGuf@zj8zaf1O4gKCBSACb`mPy{6ibytyCWWYd!&&BIHZ*(&t zEXaQezq=jQy+77$;;pGi>hUtGwN}kMA`(P6=wcy*&&9WX*XN@-KrK>#H!sEU?!`v< z2;O@{c;cFBd*1D_j_-MvxTHF2rS0ri6p7IhaW{ETgjX9voDlKb-A;6K5EdXo4LqzO z+yAY`g$wP#5Tx`#CV2Zs`g(cm^jBxJtOO$nKT(<8e5=$>F4DTWEFaFhpX}zy(;u$J8N|=qemvE5xB>U{)u?TzcMcFCbhWjsuwMFvy z{+oRSX9We1Spx&WN0RvUb@2fSs`;C@RLqY;nk;iCQXvwn)8~BY9)N_4F;QcYC9N*U zCxET)WSw*bC`3YSOQ>&s`X}lz zcoH==?|#zFL*(_uZ!=o0D2Xv2tni0z{(BKm5kszFe}vNOJR`OA^lR@} z7hIOV%l*)C=&{z_Pb!_a^oX+vxb}8crkqyzh*@f#wv}Lnzp_)=->5X*+5{S+!3{Ve zIVR(deO9YKWx8;@rGaBeUjYxa1f?6w`9m+r)>r42B9Rk|bL&R^iQyx2WJgyZ#*c2yd}! zO#u#F{~sQ}C$Np(pwt%}kyE!x4WAD0!qL0mCs8)9S?p>Bv&myGkpk9-e+KMC)xYxP zgkisL?1>eO({2`kVG&o+!03K&dOd>#K!)C?97O#kzROv_+1&kCp5?w!ZxQJc!gqvZ zfnwi?eGw&EVPjxOvT)KFpEZ8JT@53{=d0@L)=uU^c6I*otPmr&6z0|<^3j+`!qT*I zA~G4vmA}&g4@BH}Ktd9?gI(wpc14&;kdoey2oRq^$n#GJF;zmBV;psvWG$b#m(?nT?X`{V#fGMzU^O zg3DkCPE`HwOgY6RTlT4p6yNmyVM@uu2OLB`)7qyEnKfMZfDku~xU~N9xnLmApK}|3 z%=#0WfQ46OlBOwk&Aj>4xI_vN7Mq;}LI#g{+~SG$j%WZ&@Ja&=1mwcta~A!#>m zzgmnCaoYkBs?7M9&_Z=Q`Q1%#f?lu?zNQGeq+sDhUv-&%&ho!Ika*Qouhcu`z4P}T zA)(zPcq8AD{&fAn8+Bjdk@0OrR>Xd&BeGaN1eSvM{@GBpGJCkYos)7!tCk|LB9tSk z*RD%&Et=-ui$-&3B4d5g<_NlT;2$GnUJ@OcD;p0bm;1rx@^3f~uXgAnH-Xy`43H3~ z0R>`9IUj-eh&taKSK<(IRnV(p@9I#!6MPTd+oL0MmG=eI8Pd(is@tkZ&eK75ndM70 zIMh7p5bdp(yV65vSNVVuLa@b?-RT`sT(SuA@|aIC{X6;n&!ukE=gSLDiz_I??1p3H z{_CALe!8nB2tFEzOEEa6*<{?T2qwZiM|?YvJYENaeB!O{v-j0cvufFP8~;flxMtGa zc^Ux+G{&jcY=9u9@jwV&Qro0I&Y~V={8lj>JvWczv(sg9c-Vm+7r4EAi;Ox)D}$#I zU}&P;C$9VkrWmxgng|d;=Xnchm3Aqc8PG$Ungkdot#^Qe-}~OLBUPK=g>K7ZH?1#y zpOPWR(TEX+a>j_)`{eA!3`D+B%I#FR2!-xhnRwVez3uu7L*%$2@=&L_ zy~3M>kP!SK0SFw!Xms*65w$8B*|{&65&$8xcb1=$7!=E{Y-t_NrH3yD>zkEG{kvD# zCn&--ed#>^*`~Fgf#ga8Gq+z`po+)UAmAZO2-oh_FE@3v)sL{?f>VemZ%BpD10<=9 zVtT)df05KJ((JfvA4Y&f`Ig%I$7)OQx}MHk`ml?#&uzd%u>%5IchZIQmAD=H1VXX{ zLKnVKG{3%eN>HqwStzJKo!r^WF#!+kkF%E|@B|*2PPndYQ2)UYizxOUt#G1mTEIhm zMCe2aa*ZYSmeHx377KtvmO_^HtL6k?A)U*jr`GFTZ6KHSWDdX8a~Ogl-dyv~#&ldI z3;zwhrP;c;ziFSsHE9W$6%cRLu^YEtYzT}VAfbEl3hleAcCQ!87|&+K&8dr-W}2jL z9oOe`s_z4aG;Ozeieq#{7tW{_7B+0aL$Cr0Hi+hs{9XRw2zm7HbhOdhiV>riE)gXj z$~CRd?Lrt)`Y%vl<`mMhZcqqL!e1iw8Gu4$rCLZtEPtOz+@KKAFbeD!zz|aV2|y}|3?0`Ud~EP_65h(D(bLq;5Uv^aw*rBN-Oc3AGruWa1cx^ zF#a&nGex1&{U3_NLMm*dfuO-fvP;C0fI>Ugipz18u6MYC7zY-xHnr^-+&H?N?B9$K z`Wv@RJyfI+;HI?|*ORv0kiT+ylsgI+9@O3z22|Y*;*vBxrtd$H>H90tsCVr673)v7 zz(Jno^*5I*A<%!fd+jddJaLd^Ktmh$*LqL$HFbB9cuuyT=Du41hQ>|QVj7K$c2~3n z5%R!70Z2p|q-QNxHS&qp_m2Lq>Yqo8mB^@)Yp=JDe^m<{NE2;;3nzdfVSbWbCjql_ zA<00nbWXixA(M!KI56fWFOhbXmn${j+)K>3-L0 z2iYrzwJNer?~_DB0RzmuZBN480qTCNTQLv620=;Hr?a1H*}7aSd%t_yJ0)G;>(68+ zml>LWc;#D;AR(Vci?q&uZ%M*ihB&&dK-{S5hDsj%kx2@>s0sDrS|T084FBe>y7vF~(F6i*n4OaO;^AN>^m(^siBmGVcOsKx_Xo{^ zE`7t;0te}nIz~mL%+?t!J{%tncfNZ|Qjd5+ydG zHyQyO`&Zua0fVIA#4_XS?V=eXc{=_BMq>seUl!eP<5UE4tSy2rH^CL;jlhX3xR399 zjWylmzVf#boK3p}zqZ46pK|qS#8N3%7Hu{|EuQ#e!339GUmu-T3Z46d%-aGOy7g^K zhfaPbCS8k&o(Nr2K>a?IE1SKv9h2HB-2bk@*|Y))Gasz|uY05f5Of|+H-ebD z4xoZ7(Y>Rq#C)Dno(tnUg7V#1E2z}7t}{PJ+`Z-qg{`{04xx$1J;c+3A2v_ix*Ds@ z9y?BvVd6Ltqij~~9I0rkqGSkykCwZFcbRFB}9ckQx8&E^R!n$~sq>t|3LwL23OC>=J(GZrn^66tNXZKcG9-`{UU4E;} zK)M18MwBjCuoot2SpKwk+*y*8S&ZhX*eVbZrEih6RCkCa)YUmvVDHw!XQZoOqHX*4ao%z*F zH}gb3W3*KYrO}i|*hIAVS1kX@vBc3VX0m2j^p>kvY5Ons??Da85U5!bdITu6u5P)h z>{|P#bP!`W$-fH;v93+~6*3+dD-Y8cA>PubPFtik#Od%i^L&hRVc*n* z9$?TR3#pIaqo1GmO}Op8{6p_>txiF~>tu5=vu~95Df-xsGt(Y1(U;zluBWlz6|KtNC+zP>@vO)M zI`+kJO*j4-`So-X{9jh>h;Tith#aSXc zmyv_Kz;480Uy>jh=)XxS+#3c?HH!4gXD;dl1T@-sECfQwBIQ%UeYnKZ__U?w$@BWZ zpdoDi7h;^X(fo*qmVTC^2t*z|l*sDuUzKqXE$H_bN=&BUXULB$dnoG-1hlZsAD`Si>a5T7Qu^gpjt zKFCB8bikzMme*#A-_@~x*E>M>F zwkK~t^(pj{K%IEGsGRVKhyY2RDLgPF(Sjh|k4B}ET+I#gFP=Dn4F%8R90-Uns1r^y z8Z4AJUS5<=bX;ZYgxeA z1V$u!HlixE$9Lum$g4FgWr+0c{W?~MT<3RZ zy?DKAgk$V2uporb!1|Cu*_Mp}Azu5tMM!+r1Cr?oD8 zPS2Wx3`N{Ve^`-c;E2=+ZtNsu#ALFtJTAbB&+WKHg0}u5wPq0u`@HZoS^HM+xyGt75YTF2)5nqnj2yyE?(|!fQ$+ypE(Rs0^eCo_uS%qGLI*HFWP6n+#yhIZOSIXYnpHoN(5 zFz-32Af)!uj8fE}ecWdgF@Nt|tmq|d^K_20m^jblQ+UJ9qgCG3b-vSJhq6nDRstQ+ z5a{~9#<;KmA$V(4NdDs_rq?`$49}^sK?841;HAgi=xjV6ecp^9dx|?-5_ud)0^{01 z5H@Z6DgUV=blTNV;6J>?nx&x-)NDh<@nDwM^`4ruwR_}#Q`Rva>(4p1N#ct`YJ2WE zPIG8>K^tjptDN@(+RfSPWGYs^D2!i&5F>h#w|2a3hf9ctt1e0PpV#uK@dMFJZ#&wAw`&oL)k^J&*Sv??pz77@{`T6hjpR9Fn)x8LcyS7@HsoRL@u?TkLd2;%GU7$taLu}9c z?#7V|PH2|M|57P%xHv8#ijND;gb_y&@x}9qYS?S-vdw!_@FEM4>!{zuhO^a$5=>c{fZ>qnCDr}in`eM;Q`5K#%@55s}N$3_yr zql2loK#ed`ZXyiE)fbWJ-L(J5{rr-y4Sz%RA5_ToVE^L;S?_JOQhey{)6W2bKz_fM zJK3Osfl!EP^kpn?v&o#+9$t%8ddPqw^T}txRrx59fAT|d>^DF{6~II=NP4SxolYdx z5&%I_c@sl4kFxn81VjrjSVNxNr`98d%quZ{B=vMqyvh50-K)YpkPz%Dw2)gPe|uBq z5nOzmPh^m5-#>8r>V6WStjT6Xs7hzU0Sbo?`_B7Q^Lo^}+5rMhza*JIhDeDVvTfon zlWn5UJoLh5a@}phf4cg~8R#`bE$72z%ZP`CU<4l*?kTT$9elAVWYGO}9a7(Gponcc zL3`r_L(0X5cKeV(2@7%glk=4kBmqC^Mjf>F`4#-G092F8@IbKtT%<$1T=cl}Gd<3~0&UZ8BO1x?V~J>XYGt z)!mqcU-NI+|4n}I-+U2X`Z#mB57qnnM=sb1Sl-!A)E=U0^;>v0$@rS5#ZW^oqpwnt znAI%acC1gM^7y&5sAipNF&wnUEYtXi9D~k$YJRaQVR;S2k97arPrAxvn&$1g(BYeJ z4bxZhTnK~Bz1QdjJbfzMCY(&NJUX0nT%2F#0v83NDEZ3Y=Yb6EY98bCnqoyTK`g)^ z+{4z;OQX%k`(7#{Dk3q|;U2q%o7b4dY##cF8?Wnb_oBzGp-10-4iSyKmKGru97Ki* zfZFH#|*g z@wd;C!#gL5MA48zK^wZqSJB8w-^#GI4!n+5Mgx;72wet2>Mxwu{g=jLK@PDH1$W)U4EGbAR>;Mq%A>?s=o3z)w&w{lvD~TPa z%Qra-#&RtpS7*-iq-&iVL{Xt=_xgV0=c|d5PMr}$>;!u>ZUtm7r*x(b@MU^>j>#a!ic|a zZkl~HI-rq#u})*>#8SK#;UDwmR-300PqNv5=^50G58OnS)z5>E+;vheyZg3GM;qrY6D>~*AZ7j`ife(uMOle-A+!QZ@he4XwG<{|zA_2<55 z>w61L)}1TNszUR(EU6d1?GQx+f9OYIpG-)GJ`hx)5?m1(3Tg9nrOj$1Hi6_Q2woR} zh7%SSy)?FF20&s9Gd?GSmWt;&X-WW2-aDt4PRqTF$a3$|QRd>KU%LpXHQHDNWva45 z8H9f9GN~ARzblw?o{mlu zSG4PFKg7+EB}3OBWn%ZcVj#BB`>3Q`Y%1kx6}lQoRyqkoKo@`J>RoUl($5{wMBI-#jky;1GQG-N=OdAGK{JZDx$-NeEe2j_e4t zS({ojH;T@o-oD_Gq{?RmF-GGAZ1S9az4v!hj)xJubDOk%n0d6D)>l?QAg_rZ6a{RH#(Z&w^)vHvRyHsESozg4r#e;Rwk-h}HGp9F)Nc?qf_ngc84DI0Ol$J!RLV&%S8r z$z}l%CulVM)cMGSLb{BG+Wz1K9q~}kwb3$8cgpv^&6H>$wc$|&0S(w8BUPA*`{Xa% zAkFF)s{1JZ@NpCK_%LeKYg~{*qkk0hxJ@!zNB9B+JNptSiNE5fdU${k-cXo*xz-@^ zpA#s_MBeJ&Px4*V?}Gdl?>=jVwfnGt`0@%2KtbB;vt8Y)fPU~8DEzbTtuAij|7ZSN z<)&ncylbR!|r5Zh7M^;~4*s&F<;?W9Luv!>7H1Xo(P2^~leAcx*RzO?VW z5mCo@-JvQkOz+wO3>(_prd&suiOE~{^E)O=-|yXfQR4ZcFjw$0uYw+ujnCw+fD)+1o8}JJO<>ylzt&*M=ejajRhE;?%`)s{_{XU zx~sodiXsn-pHR5d^LtL=4p_8d3Lt-5sopu5SxdUMN%Q)B_wMVxa(a~HH&H7>CB#JB z1Z3arI?acCM~6_@A_|T4sB$~>%EO(rh|S8ie4N=|;FRbWHSB&t28gz`lRXADtJ#0SP)k_pT+5{doSB+m$zFKCZ zBO#-SjBavosMLgTbNXQ)FA#@sOnO8YVIsTlrPsOJp%bpm(R29T)-U)X5Jjc;*W3`* zeXKgoG6=L`Fcw(L_k2bmM;Y8kZkcP^_WA-ff;6sm%;zLWYmb25P`BwC8AOfHip6Ey z=i8IY;&u)@5gh-GvArSF5y67G(R@4mrB=g|y~k@rSTh?qOV3+gBTyoD>X4+wQD<{~ zG9mBcA@p1;0u-^Jg0@OQ8@d^ZnFlNjT^D70w-=vHXf$y@3~S>i0tjCIjA?5Oq*2{Gd3IofxFLbXoKWM3_nJgHwy&tj zGyF&q0v&q`q}wynE!!rB&&RPTWR1$?=1kt;9rC@Oa1c}0i|JZp`d4A3HL$2Y=>d$~<^1GRGzzY&1h%6;0-Erdq1(aqIiE%eq87FnKLL&uo4@RRkex{2DA z*h;ze@Q@Ek)04nLilvs5u^<8sy(52-#LM(A+DNNz1q9FU>%sD=pISyTOm{Y_bc{el z`48dlXMlre{n(d>+`39TRG2X?^PuL>ClFmSTHn6)gNnFWj&HO5u-#63Zo9f;Wkew? zw{bIJsF0DR5eYMB{(Q}U3li9#0HdA)4z%3P3*K8Nk?$(Gp#&|fGxk@gN`v4)QX1UfRnzH<0Q0uYN ztNIf@&ykz=MaUTNz(O10tBQlZtb9G}Ulg`QfPsCk$JQlK1PgEpp7&1YQh-9@TDPI? zla*uAmZWL($Wa?41U_nPna#KRk;?R1SfG0>A{+fJ{Dx13?l?po*LvH_!s`T4ut^2L zAhFP?RwQNe?a?=pw?YvIMWqtGdOV4G=k)_C2ZKGI>AWA;kF9*}{qsKW#Pc3BoT_s? zy&B(Fd16G<$dPXen)tz;@ot8;XRAm);wzur@ZY}VZ~3dW(D9F^eRG-8L+zv# zc1w-PhDtCHQJ*5@`o0<@^$I@bkPvlT^_w?n`U!e_QicS69ZCQ1$4T-chud(_S6KDp zFYniRWt0@tg%+f{f_922de!~le=k&e00U67( zMP31~>c=ywhY?TqFmdfK8hjj6eBeP<(yad}pPFY1ojee|`qQ3k+2OQgL#@+lgoxwn z4+01GPdi*H>^6AJuipjF4AKZ0LI^`qx=d%(a3B*+sCHt(59UqX|A?Exwmh6?KUN4W zQ=7&S1=YyI*~sY6a?cUxS|OfPlabKfBf^9M4n6y`KkMwDV5c#i=0_0?{L~W2cTSQf z1zmjEJ7%++N#KZcUz_aLP8RGAk@~6K0>Z7?;1I>7X~I;Gr0ngxx`2j8?ce(Ae}kZJ zqi1>i;gkr2gk$G4f)K5S03dKF$$Edz+?wn8x`g_ham$knku`t_JknO=`vUL~QL11Q zjc|LU`WEm1-#5Gj4l1}}Adg@6C5wE+rmOicX0EF=6nvcyD{8!(2?Md%)!N`f@4Y<@ zW^~sgZE8(5W;9#E`{ke2VA*HC&@>IH0R+_X{G?EIMDqP8mk7DMFwVO!+2ws|yg(qQ zNkHl%2d2J!l(~7Frzy@PRx9Z+}rp1S1S|z2YE8%MlB5-J0MK zpM-;91*k;xC!6}3%(7)QypGTzE|TW$i7;3>jJ8ew9__RHhV{=#;X5wuU?Q+9SAhl1 zGIPG$FZs&m@ib?olW+{EVX2-36nU}eY(R!T2$H6$L?=c+DO1tSegEhlI3Yb|OtZ)c zQkeiD*_^EyWjY(yh!{6TeZ+Iy#MV_Z5AP#*Gfoo`bF`d>hrQ$ z8ZKuANR}W!G1L*AOGcze*4MJ&?$SF}neDbE@5|f&ONibGr#%R{Q|tM`5r@`Kcp`Ti z$w!dAZK`+8G5!6|+PWNU9>PC)Uf(|2M0G9wEB=4&l%wT&aae7S5;yMc2W7k7cJyn+ z$cX_DqAoN$#E)uAz9G#c$${f>#9eh(pZ4xZM`S}Ni%^W;dq(?$#oRC-D#Tu0A|r=Q z*nO_up&j836dnJ@<}>;0Xc3tag`05H`Tjy5k~*C{po<5R16KJ;pwvI>zIUv@%cvtW z!nAGs9=_?ww>4-S`GP#2d=1)Tdei=U5Wta0a?F%h{g--`&jccOQ0EG(QhT}?&7SiQ znO?zG99OsNG@3^tXEp*8TvnE(KoG-ezGL}syFf#wlhx5P!lUOky_u^|m{f|-%t$DPQC%{1D@7&yX{Q(MU%nQe>S{2$j_d?!(R{POP&Z>Fv^MHj*DF^jh+ns1j z?QRhTODwvjFc3KWG~+X{)Oe9_KtWGS3G=s6;`{sy79YIzD*qM|!JwG=KtF5x`WkzO zh9@JMsm*yrJ!k}1t;ruNs~K5|evkZFFsTuqgRIOj5Wu*EhF5@~Zoe>rDXfJ73Lp?G zQE7$)J;<Ch@_AVujXSEbu zx?muA<$mkUxE^Zs>rnr8%hg~ZrUDm#wWBlm(&OhAW7;xhLZ_m&_|KOm!D&4vx8FCy zm2#M7xK)a*1Y_$O8X`x!|Mn3-jL^irV4dh*@g7`vLKTWQMUqh>$E*=}iOOu3vJ^h$ zHAlZ9C!Ng}#adSK-0n*RU02HjlwRR-lNT>uI}Aq5mN5a5U<*@O0iU%D#QT<=)*k+ z=bY&z{*F(BcUYX^cmxZylROGKZwxRWhIXIaLuDn>ji2BU?OOHbqPorVIeZw~i)k+- zL;sf@{-6%4IY7$>sj?AUug6p z6V}I(3#Lub&b?mqP0SlN)sCDSJVf_SIi~-)x|aFGbRQq((Yg3f-u_y;b*uI=D-N0z{5=BH>Sc za$xluTeP-btHcqukT{7LArq06iA>vvBt<=@EaNd@h5x7EUP~q>5eAk}!Pj)L^-`Kd zD3-aU~~CjRV}^T z2t+`G+@%!y#IFVb2uGgq^=BwzxU0sXAWRRAwfd#k?;RUXW3R`|ocKfh0SkltazOaj z8l9CMd_Y0!07MCT@`|5DIFt_H2qUj=)>Ai0UxbxMx2FXwt_@L$jF z5`r2q2m&6-jf*z&?b*314+Sbrl+y;l5ZXlD-eDaCRGaJ9{{1=a!wH%Z>6EW>d3^YO z7EWEQB3>5{2cooC-h_L^K@<=x2!T}+L=~wA`;*IoYQngiIMI-E{NMnGPn)V})%_6! z*kpu97>}e5ZdHH?S0?O#9I#a?O%&ibs)8YN>b;O<;lluhKXx;{{bXo+0SYaCa!SAm zGcs7(_vUi|LnOCh(}$5M>FiD#fP&qnVo(S*2!ThF=$7SVy9&CeyjLWr8owbg!T}F8 z{@e9J`5!j=w94)K>EmvdL7VBD%1A2b-(sMb8ZpnH*;8N$gY-tiUyuZ+e(e8|6$s3| zLi8j4Y2Is6HKG{)!aN=-Ki=>o6T1-Z3!B;`<|qTdnomzX5~}}W@o_#?Um-Y+1myy%F>Ez#Ev`n`agSWLooa|) zee$%7em%u}5Nh|vAGnf62z;uOK?UGI)wg@5<_Ix;@DzUE4DDuj(Hk;EHwwsvc@Ue` zOS$qq_tu*{(r8&sOY649H&27+1QAHx5q$1=j#=1qFe~4I42Kx?2#5EA2OaZCFJH6W zV|5$n)_Qs<@Ih>Sy_ONbM2L7{FSYk658`)ZigPtWcTYhHisIxhPpurrX2bpv@t&90 zM#>25+H_U~jTP=!`^RoU^qq|+{!q`PR+=0)P3iEr>ax+Xt1vau8*aOXUXv15N01QB z+wp-vC7t(z=efI*bvkC_?;-UZ<7y5(jGUUL=ElNC{jc!wb~t*+oN&H9IWm* z>46W1zHf1s*W4LywUL(>y~H>md#{rO5RnV%q(Ng=`6(?~*LaIAEp30;rlGC)>MBq} ziu;M|a{&$C&dI-%$5wA4HaW(Pc$HrbcTN?8lw43j#na_l2tYT~aX$CgYHli`-pey2 z@3Q@}nLpiKB2uR}+VpapclQw!`f4PuZgU3*sLBX%5K4Id>#|sW@7ZF;TE(OmxQH?_ z$+D^B&h*t|iWa9nz#*Jg0uR%H=BALi+l>=B;x`NRRu) z^E1t;&D3Wv%&L}IvBzL?Po2Kqne4cvLi@nG0tfK))lw8{K?=EBz{22OcJutLQZPcZ za(Rxku#-yG?9lss0tDZqGZM&q#qT3^ogyT#K;>+w?Ce+TKAtvni)Vf4`6F19~G@_7?% z3MJRyOdOvaaty3FK5LXKPN#9Yd5i=y?Mo-2UeaR!qWiXea zeHV~_F(A(^@a9?dqd-AC1TbW~j!HA+)QFK3@D&HMU?2!rm*?v27;YY{5Jc>w0iLL2 zr=W0XFh{MqphG~F+8ELyxY}cSbB*io8ei2}B01S-`--Lnx2&@bi&ZPs7{DP{CHuF4 zNag^B?<3{5A`%RjEzhTy0{Lz0-=@|F2lBn`WGV@R2qUm(y~0tguxrn9KE3M|o-i3?<(}xQHJ@ zQ0ah&0|#iec5&x~_i(d@Op3Unz7a|(Ai)SjtmkCCG84} zs&uT6@TQ#zhpSwc_RVewhw(@6@ABjv!3Vdib>>hIOyH`wR&vhi(EqZn-fzS}?bT=@ zw3UwSLV^h*IncPt50AOge-6qBN^7@^c|~gFiv52dxUGCWgh2PYPG8a9_4)bLcdu@# z_XT&v#$USi2px=Mv~j+76`>x$qHsY7ur3BHaH3 z_ZzUM@HYKD9JWA1PCCP5erI}b`=99i)nz}~6Oi|7Mi(}*%e1rm+zsjzjsPH)x4VqP zb1BXsvHE)?QQ<8wV$79T`M`rpYCePI#1Qy!ngR&o{%=b>xh#KEE6bW*-3u6h<3!Y) zClVl!H1z~cJA3DlgL$hg0S#B!)MGtARpjBngYI?$6ukxVM8v z{*t6<#DB~j9nauL7QfR-#?#)~+xB>j!$L)GwQc8!*qMEKsW_WF8|J-@jQghE6%J%O z9HcY6%kBMp+Ej{O{u{tj;CKFgV!b9Xyf1jEtWJv2bN%(Er1W_|zniOl%;@T^qA&eO zY!y4xrNMot?G}+0K@+Sv;T4TiM`h1J$7`AG`Z1{=O%RJl-y?&lmpm7@};+c5nxF0 zbVM*)nyo1o4%Tn$tkl8f(kT_e96A;iB8|bqTyM{Ie`SP4FhjbpB>Y9tMKDF57LoI)MF`Mfa+Hh3t3v7`{*ePl(C2@?X}CzhAe(R#W(0>!!d%|_I^q*J|rtCF*|A+UV{3H78E|N z-`ALs(?^-$$6so)f6KgtD|bq~_2|ZUEtWpb7(?qLW=joAz`%(7^+Z!WP68QH90W;I zV_WYK@YMbVN|(IYP*3yivhwmBEE|hBhBh4|AdI~Wgdw84Hj&h?NA7KZmO&BBw^1Bj z#-lj!k^O^j^fkTO>N?HKc!pjKYDR9(;6}sTYi;s( z2EMI(Ue3l4qpwz#X9O{P&T1c-5Mt=nQzKf}-7d%>%dy!+I!}7GJzs0rN?*@u#nIT^=yh9_8wvkjcH%ZdIie%v{X!oe z#4fn8VD3EIeFZdf9Z8;A`XE8WMt9rdgYHpXWsKfW& zW3>IFxYew&jfuOdv{(c_hUs3Yh1KE853TnjH9+qW+{VQG-#RGdIjM++0vl1-ve zivMH$(6Tk5T#DJeot9;YwYriX_j#wSm3Ff10stY6lBZMmu)HOL>!|qXs3EIBL&#Q@ z`nO;rv;PovD;RU0qhS1Ne)>OqgCo4XFS4d`>+!P{yC|!q*5Z~$Q%9+okZ$(-B`f%L zl#J;td}5y2a58dW`GvnGyhvU@&LOYo6@8~HjOv==q1dk{j+NuNYksL{ltl#2TZN2vA#yl~uh)&_W?cHT4k<8mv6L`EH&W zV{>%n_e(eg92j`U+Yy+^tGAo$03bp5&?mS^+2f=)-d?aF`oD5&#Tp_Xh%tos`PFBT zGlC6zC)=A@>VAgps!jc`Uop{>;4-EG0s{T#J}xFwgx+?^qTc3pXb4n!x76buVAoZW zL_-ve$qjdyqiBqUiA10Mq@mAUXVf@k(@hR8->qn0MYJYF*CG66Lt?kp^j3_=@EZ69%vdeIDkx zKp|NKwu{0{C6g-l8=Ki$M9$;RX=ZgW0X(bwvZ#@N+2It|`M0)|j%XF%v@9Q`{~kBH zf?P6F9xRVQz8avDC8K;6Tc;Nx;M1JAVH9i-l9koD-DqU2VCB z`sXO|Z(e!1bF6`+a>VsifZN5INKK7ApAW;*=m=CGKSexzj6gv{PNmD^??5!BslpKt zhUAH9lQKKszCJ$X2l~;)sFVHmttpoz06@QjL#PE>qq@pVV{%#< zXFk*o`my~(#doKD&r@hAII3Zk&M^@SPj$Wd9Zh#9^^Yol?nG7oGyL**06>@Gpg=-M zve>^@1JnDmqFxXz+^<3z67e?)zt|j^PZ7bw#dkZne97EN_uA&fS+hNsv9D^^q{XfJ z?AEW!=8tkcQ-8iw5;~dlaf)uSjkHmR_Nz5v0(1m4nZByFCs}bjmNjbVLD%8{gKsWP z^3wbK%?M$><+t7F&ZpwxQ@)6;%2aMC9>29=qlazaSlNVn{WM`5p%&cl^&#`)3r)NB zo`2yUF&?Y`n`^Ve^MpxVd2@*sewINa0wWj0NQv)o;qFNuB#f?LMaE8pFQ~cRf9z#k zMU+N8>8kUxwtj9Y8l;918YwF+#;4>+vZPYywZba?PjB(2GLw)If1I$o?DV}`h>4Vq z>%VA2cLgJ{MB9k^&+Ps#9v1B%fuKdmN1m-0sS&qG++sv^L};Ym1Zux{3%$9rtB^=; z5srY3(p+b>3|%Xmw=R^=mJ!?9aH%lkcWUOYzqa2kU9E%suCe_eZ4q=t5xxsqb^cEp zMSP@$)}N@=o)@gv`(^?fO!4n)YCs^;zgXlV9BV3K6DMFGL_`yH0!gejkRLE>H%qaq zE6c&;>gvjeb!Cs>!k1oU`p?BG<|d7P-Qsolmlb}>SwoB;|) zO1AYP(Nb>_w9UWWgj%RDl!T7cR_65tA*xR2$>s3t`|ZShmm=Y1v523Ka1lX8uT9&S zoP>ODsU0MTpFb*s-@(to$wLT~d+a~5VwgABHy4j~8zLf7Kc^~@bc=DW2+D|rWorLX zUa_C19t8CoC`DV@)8(@BpS6&@!#SH1&*T|Gt(n^{-@gXMCGynp1UGr=xoV%M{=@cV zr~`Rmh)LijDO~vvx@D2;bv`sO5HZV1B3sFKt7w(sByR|ZtxT-c-ME10B&W_C8!H&% z`PFmA+I73c2kmqj7m*yP*B_(S0rTUA`epM`AJmVdL=KJimnAsKs;7F=KTaYrb563N z2#9x_TwQB1d7P$JU=Y$}b&4*ocKVp75%{|ccf`76A61KrGV6B_N6+M0ssb41;wjFJ z)okULy?7Cg!1BD7JGw(kL(@*9@l4e3@pZ1}e^V|ZR^ce?Tie*)eEQ@Gw2!STDW)XT`~a|CO&J0_c`j_=kAbVrdR{(tk)^^2|T z5jY~3$ISC7TWwW0vsl2+&uLol)3Nomk7$n%%NLQ^_ojq3?gVQq6>A2%AIc(;4bJO! zZ^9joK3hA(gUM;?l}AAq?K_x{cN)=Sp}#QN5;?ru_kH_O#I5{1Y13FI;+?|c^yT)} z92>Ov87d~VE$LGc(e5pm z?{D^{{hHR5M@Y=(GPvZBO3Jlc7bHZo!f1cpo|X|K5_u4V<5EVLrrY?t8blx0xMe+@ zEFzDA5MvX4y@C!OA5U%2d|kAhz5&dAbiRN?)q<^O*$AH0PrJ7kM(?NVTFXxnjoU+Y zFIhK79>9(Cb)NxpwB)5QqB{T1^)k~O%^{h=SMQFaqqvOD(w&ip@lql!UWAF{l%~lmixnLO@0$=?<}@cBZNZsJuE~t+W&u`5J8qp zk}9KbT(?mmtmBt50vEH7?ayqhk4+8jd%q5<-&K%AFz7IF07LYV+s;h^4g}7;&oUhC zO1+ri1R(HRat%))zwKpr;|uH5$2Kfr>uo^|3%t_KdTi>PA1nCQ?dDC1LC1dtEUOTw zC%W_M6(^2eZNy$9v47uvuhNjo^N^u3WGK0|_YD5o@=NR>MNenF(f4Z%=@;mUs{{Je zIS^s?3ut5iz0> zM-ed1A-Z|mM|!Ji85+I>M`S}Y{Oji)mDTVF#rM0^fAqzojcsxfZDq>wX;30EPog>^ z8?x9LoM#{Y5v^hUVDkIdDm`|?y2Z>y{&(l<5~jJ_mKaiVTzg9$Gwya(3Slca2pq9O z5A}sVhU{K^|8p-jarENtpr5by`L|kzq-|5RnYs7fq-WXB+f0-}D_mkHa<}pR$DZ`< z@0}vwqk;p?;hnvX9Q5}4uDS8?;6|hHBG?6t5A^$AnFGQxYH1M&}d^+XJj)({o zgx;pboz6x2S62oHE2Z5616H-|fDkHCV(u1pRW0}O9|}N2KISMyn+ikZ6*7^(w@dl% zyBF`^AVctm76c@8U|3LeG}r&XOhiO+#bJe`Br)O`E{PqFHTXpoM07?r;O$S(h-`Ao z+j1W6ZXeCl?_PHTHMDUL6(>g_9Ov?(i~g}BRVRdK5+cMr)tN+TbQSEc>K2dOmq_c> ziH}#*&Sa%BMKu8r3aAJ)yPv$P5=(vk5owqHKfEg&*a#XvNnl;F}gp62p@B`!b55zK+|RZmgPmZNv+Ft~N@1I(yG^(R zD7ck%bn#$@O>6K7T&{u%5qWnwAKuiMAfGuivS>j8xlh+(An{{>gHEl?FbGw!IDIkf zBu|iir}_-+J?4whVDnm{sw)aj=OWAr?2p zj{-&rA?L~h94g5_`x2Xz`vfNz=dhU7U6zhEzu+McSBd3ML!_Nyv52F=$|~=MQy-L# zU*2Y*>r@eXv^i`WD{vc{W59_tk6*pHt82c)I?wpre`yjaA1I^aR7v00aR(g)x!W#y z`>%TUO3Z5H<)=u9vf=^|pKY@*p*4fHuQxhjHDE*(lvPpjX@EivkkVw0Zo_&X@z&{9 z%(=sdIku@+tqF_)v2=J3oG#u)9&5;7RsxpCtv>Md^*%0d$kjez#^MU`hIFqLL8W? z&6Um-!iXa9BdQ{$7Ym_iU0hCx0u96lWx^q~^}zM0mU5)PL5M^xJ^D>>L{;$L%@3<- zKYtrh{*CHWb|X`cx72h!u^y>L*xwz0g^0acW`uUMRr*sUdP*N((rbx@iV^t{&Bz)E zI3dYi?L3vOG|vErK6~Y~{pg?<;~L=(0vHz6uNwXEAqCt?>CC*V5ecF1KDr3fBzBxF zS&KM^?B2%e#iPmHdJ`;@6@d-=Z0^KEYyU&x19^K!V9gEAwku`t9+?^P%D#{&$A7>O zQ(Y>J{Z=%5s_(ZKW3m=&Hb_^$LLtZV?WfRQ8i0kXEJc@YBPNgu->p+%q!r!U6xjaG zi9O4#B~Hn^ls_GGL=cETLC+TrS9H+(k~3eS68gW*U_-`lHtl!hII#%rYwc6H!5S-l ze&{<{1b(7OG4x4*LS7yUDa!>i#LcwYY|74}^;L$L1QA_Hk9qggO{$sQ9KE6nC5oI6 z4+cK%ShC~yNRaDp#o4+4J{%#t?Jp7ivLRt}fUs}eptq=wDet|uweFV!5<9F$Lb2cQ zdf&DaOhaqjPL5_BBUtkbV)=-gY2L!mPk8m4E%Q_zEJK1uFEqfnRdX{j_=fV&m-Rtb z!@(gwMpvodK??NR4H!6JqyJ=l^b6BGhki)Z$3)lY(w5VHb-+d)lQ<%-A~rfHXY;0k0$+@idg@iSN!CndnK}O#E!ZDH>_)V{l1)37$Jdepf^?j19-gPLPObm53^qs zc27bS{aAt_6|nXAxPt0zK^s%bSE+VHLtI1~wP9D|d0n;z`7EFNoN^)<)_hgHxw0aK zrC1lnw`&f2$$`?hBs$NCZ=lL@Z62{3+><4HBR46!tlsG!u@Npw6e z{6rI2v`FrKKTh&-fQTm`ACXaZURv9+J{To{A@$=^0D^u92z7$DQD=0QoJY-R*y6s- zFG^yY`XQ!$G1?^z)@}KEs2q+Y)Ixo4^yHCL%sJbi%>j<``83e8(p_7P@&xQP3;2zQ~wzwx`C2}dN3njmJDOOwRV z%X%#t8^H)<#cCUQq(FoHvalhUj;X`WtaO~XcpLU=&_gl=71U=}2zp;>XdZmEasKr$ zURLOePV;U;`0~_<1RcCWAjTaqou0DJL)C=RbFb1Tho@ zL44)GN|_E~KH4s>mf`kYmZgvcJ2W{>0wC7)Wp@z$vo+DIyzpcyh=jj5?GxE0LK5F_ z5cn!>l`(C-d0`NaQ=9=78jn~+H*=%S-C6$cF8A(s%Uu1f5p9jpdE}h!6|o))hcaUI z=ITE6GSPndxeR?@q4c{OjneM#!tituN^O>f`{AIwT{=<3`5#RC-)Mr+P@za2RjJ$JiN5wV#DM~wA_Lm zYs?K?lol3wZcT6tA4vhl`uAhyfI|hOVVc-(#E+kD8>@X`jY%8pMrIk1|Gfwj))} zg6UXUY+k_=wVAOSM1~mzk1XFua3X%i_>#i(-R?;rUYE-7;da7QouN7+Ct78x6RurecVv&!h%RcIWhl&=}*T7v$om+E({+a;< z&=8rOJ@kCNNcSw-HhjxF2K^8a-`UXe0D&o=ZcUD#fQE+f?|lz*h5`z0%TWxZPh3{5 zP=-W}4tPc|#>)tu{c5}zY}K;Ym6*1>T)iS4a}~~KW!_qKroCqGPskg>b{Z8SL_^wS zdxC0I0vI45ZyDQ~kmF`u&b2W}{EMb;Ph#Aj6){rSFwcAfAf5sWZ~4+%{Wz_fGniRt zbyNIudGa#f`8l-DIlMZNF1RyB_N+&)Um2jcwBhj&TP9uyhV;lHA6Ssm zA&K(4Pq1j|m~@Q&`6EL0-C*wI$c3ubwhA^HK0y`1zeiyoZUye3h;4xdy<`n9wkoqfhAiXb(1JMSL2Tc4wFoL?}B zcEKAS{7a`In;(;u>ImdSBs&QF;^gq0TBOa>3thX2I)~oTJ;PD&U1iJy2&CA89pyp2 z@1UqN+&f<<4_U1=JJ+0gjNl;$5BA}K3PaAdcUuGm8apB(U>c6kRb}t3-v;el)zJ_o znPNfNr|W(Xtg)8;eM#G|PA-{=X<=1_Ku%)~N6{p>J zzKVsLcs^(${20|J+;MvDnV^Mj56vx;)f$Z-=J(fCi(ksw)cogD$8G@*Jgz4i2sp(U z^%&2=Q@A1tz#z9oP`6zl!@OLl(uON3Btueg&jAW2FHbvICjAdh?O$?~GW0ceo+W?~ z#<{Ts4|Wl=jlASr?)proJl|c5pFKA-)(9Jq@F!=&ygl+Q0EQ3vO~$)zPuno?cTeP@ z(P3)h=Dk=wKEic~J>b@B33of#+l*>ZIfFRzVBD2E;9%%lcA;yiSjh^RBOfyuTd6W2f z_kLn2v#NJUl!=H>$>mvnx+U%LMh|U~m1#uq&;&12d|)A0)t52!!#y!ZaV>h*UVn6? zW>0yH;|l{O(NR%??@e#|(rMaZEx1Sg%j=lg>!^T*$FSo+^||UTCvfAa5pnCNev;dmbUZvDfF^p;M|+ zR(eI?MNhW~cQ1l4o2k~&2=?L^p27$M8XBC$$2Z%!r;o5!&0JlP4jjf3TfDn&X=0)4}(bt(3L_&6Zok`YlX_zf_CW=9gW1y+2C~VVt z5d`0+jYhnAt~CSF3wb~YN8l@JS}&Pn7Lf>q0BS&$zg&h**OTcK>V;oNBa7Bf+0RzYx+_CWo5_!g-%F_<-xuJ4F|t`?Zlf!mx0WP zSGWAuXp^GfVFY zm;WT&cjy#vtqSLqJDpq@@DR5k`2M%mLpa&8q0Y{vVO+2Lu^f(eW~a8LQLF+ZKSDaJ zIrcc}jFklzKtnGqh3L^g###r2mwH(L&=6e2dD3F5pMvCJn$*K?5~U+xqVRb8wEa-y zFzyn7fwQHOx=#G*N@t&EqMxOWtfEiiL;(&-IomEKVgiSns)AJIdgW*FKUWuiA>@{%JrU`lXK>#nU|Y#+kqpogT7) zgk$F6-F(4yp4IA3oL)B@`{sr7!MZfYeiCM2YU3<>Qa64~U2BK+8qXIuuNRJK@6uP~ zZQj7cd~0SuPFyx@5D+iWAn5>uFVqAz=ew}B3GFufz{|yo@}y?OaT+=z9cbAZFW0Z^ z-v?dLq+WSq96A`--{-PqLuNch9}Bh-30KPqr&zT+d=2N$BNcPjw`A+x)(?(UMD8b^ z!KdnN!33S${UfOmf2x+=>wQyn|J>XNA?Cc%cXg*9K@R=Y@b;IQLO|y1#sZ4u72sghJLGODx27ro)hBHtjSH76k zvQI{JBi<%Nb}Zfrfg4(nqgSZG-WnfcZ1YkL%(_Mo+@2}tvZsW&!cl`S@l&@4oO@&b zB4N9^W$YJRL>MCHJ->qp@DO%R{W{%Zh=p|`+c&hNQ+IPI8#k}U8cwDo-QmCfQal1H zv@ND%j}t@Kq)+GLBq)=@9fWvz_U8PHJ++@^z$5QM%(inxIBDo~&IG3>i$Ra$>V!Oq zrCKofb$}t088}_}-d>dI&C?|EaXjC0$d?eh$o>F^vGD=eh<%)_P0ge%bqnR^07LkV zPr`xfDjYhkVs_p!w$VEq)gI-&b|2r3pV4&I0tKIEK7Ackh0N$s6h}7tB7Hr=A$5|M z_#{Md-Rmb~s%z=4Sc`9B~af6AQ=V+Z-ecIvrPT@4^1yHf-lZFQktgNLHu zy7i!e2^jE0-5W6_H+_nh`RWv}%~Z*e3k|O2Fo-k6KehxWkaRkKR*{wLYefo}pvGNL z!R>Dleos5Dg$N6-|hvLOs&6~`&IdBykBC%m{ zSvM@Ou#G>s-1d!Mf_oW*aqJV{`Qyq>S$c1e@1PT89dDTjC9tv+zh$HGi zPT9KZ_Q-x8@&X2BT$V(=!r?y`m+0$aL+Cpy%J^!nUz8=bz(M!AV(m_nkv~0K@^5kd zT~UC8|8ua_$HKa!)Pt3uFhR6N`Nbt(TxWU9h@xmb95YTQgBml?_<8cFcL4;69DT}f zPqJZ?Bkb^{dYp=Kw-M%mFv35jy+zW{`d*fHiJI`MBI@^|YG0?5q)(L9a&j!9->;N) zBc@Xb{h9D7U7hTx|GE&1XP!0lhn;=G{xuZ~q}Yzn{o_cy(H}lrj?Yq+iAbrk;)H4F zsSzBHd))d&j{9XUA^U_?beLL|GPO!@5a}TmsS#ljz1wm2udchQ275Z)^cNK8`uSv! z|F1vUcYM2uAu+Vab@6$w6+8$a{J0RG#EG@7d| zbLSY$daxIuAg$B*s6dnQ?U@8Yo-*%tmq@;8+kn%?za&P(e)0Nkaz%+Dxg#SP zaeu9(UUW43f<{_Bd#|EFBVe(y>(-amU8ZzU-DQsYsZ2Imb2%^|Ahb$aeGzGM>Nzq( z`x`}E60Q-%f)41ak1)<^_VQwt`7vfU{5XbRx2ZjkO!KAS5RI+MdaJWwhQ<~I#2}3a zzuSnvWZJzav8AQflRa}td#3)98LfJ}16Nh=w`1n>t%4aV$q${j@7z{86O}~kXEPih zmFro`WO3?8KUz3H_N+$nmoVayRjGNYHqjr?Qy_-n6C1g`29Mg8vQd-u^-bEoRB25C z3PLJ8&=7-CCZ4z(J<9DLa^C%w&(nuGPBa&j5$TAs=0$24O6!=L5Awug(Dq zrqB@CJTLc}Nt(z1aH9JZ{90w@Nm)#+G|0|ouRrINl$2FR_QjUn=;xkCF)l#7nE-{A zD=*h`{TPJ`S(1S8pqRktr}#;m&)6Y^U3Y>%crgtye5_{C`u|Cg$5ijsx-vxyYOLNP z{Z`&%yn-0(GCcDlA<2s4FU-(2Rse?yd1=f)&+x!LBh5VGfX`})ou z9mO`w;lV*uuQeeTl#JE8K;KvqxJcLttL3qddS5M8WJU7?#P9d7#aQC~Rr)){mylpROX|iuPD!a<2Xf?;dj%shITD*9^o$H-UqopV_!&^~s{jul6~) ze}0Z8Y{-Ze#lK{8ZF8<306`xN%IW@k1+U+glG*oJ0S^Nra8!CfyA=-@Sr^Ktk&-&I zR%<{YWT8k)HkhbHH@rx4;33by=rI=2ALtKf#hTXf9e;!or(vMM4O~2R6CsaCyol$> z*O`2lFGl!7%f3tyce3*$WajgAJ`R2%VR!a5Gk}IVTgV7}`n2;qD5*&)R;`759zE0$ zL7P316xob!fbxJv&Qzl=h^h7ydbxzWT%*^Mv25=>^ zE#+0RFi3tESB5Z3AB#yohp(i3yIMhlZ;D=m)4E+VVb5zW9m zV)5)fy(o(1-`kr0R`~JNS85Q9IE+q?Utd(}JnbGbSs3obvPH5Adk`Y0|2neD(kxu4 zx+FhwBIJ=8B2kWq(vA^>)6io^P?T&GA|Go@5}M;j(v@ED;30A>4B@dQspA zK_e8e!TOLyLS!=j*7TJfbJ^*5TN|^j>R!@5bcr@xaYV%)bT(*-9HYsqII zc@D9{K0Te*+(j;@V-cqi<$I~^o10^J_*N^lTr}LjZi$CW%%4&()|uauoL7U|Ap6}m z_)7~MWj|aHXOF8=A1rQ_@Ix!caBInc!!_&TaF>x92Mk2FD-A{W?Wb_b4$KiQk|I3% zhi$HznWx|*I3d_UCnb8oj<|oNHQf01DEO90Y*ZhsV(04}ofasR#RZOeBcTS7AaYYmJl~ZlAhqzc(R}@BW4g}FDg;6j?f}(mEK5<@NI12O=pl7`z=d>BA{VT! z!p7d@`4f(3&FrlG2oFyaSCXe~5+gMN9>i_i^7kiA7ZgP$hKHg^Mk(CZx>KDiY=-@y z`_8T=dHk@V0SPY@O`LuFNN3>ygTJ(mgV{Sm0t_HXS^^N=Nl#z9JOnI>^^mr^>Tkpe zdI_*aA|X;h|Is3&emcma=gA}`(f_yLzNh>iPp{<}c%9mz9hVf41S_Y%)p4{CNsAii zkvFJG9?esL5JKYIv;Du9Kh-joTJqBRM?<@q%xdYJVIO>zZ;>b6#NT|-PPhICI+n;H z*4W4+?Wm_v#98ThQ4;^@jPn&=W^C9s&K^!sj5vr<47@2EH1lP&L`K7vQjKN9b-X`6 z9;e@T6fM zbmAu3EtO#z?8hjwTv(DG-NvMhFQ%zzjJ|%I4t-=+3(oieAam5G;JYT6gJq#WY~2wB z$+iUE=ie|yBAfC%Hyv~G|2)!-tAkr|kq}w4!&!YV*A%$DP6`<4oUkBh{@@U@!4EW< zwA&Y+p0i>^ES%{&5te!FibDyb5dO`!ymCZ-tU9Vr(|Ix>-;EK)^V3UC19kJr+PNFlihnnL-5YXmy)wjK zL~HN~75Mg~hZx-boJ1cgQkiRF0STyIMQZ}#o(VP8V;Aq^>H!b79oMpPCBxS7St0yj z>pJ7?}D4Hz7FZ4~L>Z|2mdA5pB z3`lFJ-W8j~NHU0{O21qvu*nUauJ$8(&TJ>_7RoKY#ZBuv_j>+lylj`WMb5k;@@K*3 znfM5Ta(UeD!Wt?u?^RJ>12m<>U<4d&b(4!HKGoQjt2k5rsYZ&0Q0tVVc8O($lgUQ55_O)=$;4n1sx7glCdJqAFX7o1WUL;yy@XX#yUEJ>@X|XpCry zx4v+TMWvH(hjz(M>)Leh*Q$_>{c;yWQUV^oWoPb6GVw#@d;c)LDu9I=mZhKN9?o=z z2&=aKlt>~OWdZM&V7D#Lr8%fsX2W!drP2?MUX|y)lb&Znkbk}cL(!osXYj2 zk@scto-6(DA_2Z;l*hq;sh=Ps89Ra@%geP~Ox&c05dtsaK?mLli}liP%t8k;*@c}u2XZ~-zB%$m8DyQX)4}6BF zNb{x)jFUL0u@^IID1CD)Fc8iyHR+;L7Jjf6@O!Rhn2DXrMPDu=sf>WZW?^3#L}`RN zwFt>1e7_dDTh9_pBc`UcSM`icLOd{-O}5#yspx1C4yGa8#@`Q$0v$WQ%lvFPdQrl2 z6_fpr&V(!c)}oxy2pA$sYEMBHSayIy;h@Xn+0dylQTxdtdtRb->{fI(oe$WtS z`rUnQ`a7yM3AFfXFbDz~-Nx|!Ucc7uZJlJ?OxPo81Rp$mO=T-ihtl%_m#gK{0=|yH zw0Swh5xxTMbpHGw3AoV{Bbs>c6qEu8&Ht{Us_Gx5g6Hqi+`RUaE%Eo*RCV%^TwWS` zyHb6nO7I~il>|6Xx!q~b90QJ%7pbL_1SSCnFt=;P%ZqH`bfwj4t#Z@hm@?vU7;wW3 zayoDra2*FhhV6(0hff%E(}tcoZv+iJ6hI%akOm++dowj(-ya{IMxj_CMIfN$-tMW? zfCMMRV|DG%T)Z*?6)cSN>rIdL@Z%v8%XZM&wbvXNj+gohr~<)rq7(P?Cn?HZ8VmBZp=D2_h)IyjTME15xTkv z6#6AkZ`-7jF0hDkfewUnrP17F_#t%U!3jOZ^|0YfuKGN@`c>P<9LKUE$I^}RYYByS zMX&!61TYSmc4u{5Q`jMCgut8#IDMt$fep!kz+nO~!Uh8Y0}KWj3^0KhU@*X8gkgnn z)qXXd8-S|<4@w-0jX5PpEpiE7EGa4v1NG@q`alR{8{=buhKt{Ij#;|H(H8TfOn%?t zymHv#%5^wTt!Sotwuvrinxg6xd{3|Gw^vQy0g6zx)Ec%d3>Gg0ovDyzX)y-58)9@ zNNGrxc@c4Z$q3taah zYiC8gXBpl2H1-TdvkvMbonh1RX$cPg4a!AP{72YE+mIsG#v;g(P4IWbXasALDl$Sg zvJ_1HLxv;ImJw#o+Uu1{46J4XiXt)2F1sATW%UyPgiPTy3c^QN$%we_$C6f~OT-Wa zgKOM0E>sRbH*Q}!#YdcYWw!H?ly;48!8<8YdCVMchHD!)=l9&9|6clMgMwY31XTJC z`-^iVH1*Z=N5&D&;6+EO*{%_&{@*C~m*j?P*9P#!<>+$Na5dc@#7n-OtRu6d?+Btt z>ZQKU0w@qa_Te)v47)im(}vr8`3bWS*F){aRxJV~uy<@8#irnp>$r--q-XGu?wz}s zhnjQpLvE6sB8zFS?st~=raSe8$LoFZ;SwwvC{9G?I^ZKlBbkrqnRm(i#7CxQf6)-@ z+Uv7o_BV=T6Y*K8R5t)Zr$)}I7TsW@>LMS0riIg$fDrZd@%xu6iuJ9`?GnV{0qpfX z?I$SVE*%lESoN~&0EB9$6-|2F7gN9pZ|Hp5&DtiHq9Bzu&iPI9kNh;(ZP!++m-_do zeVuX~6xIO{h~ZF3QfF3RXfXd+6`MP~3r#NlK82^z;?FVV+yMm} z{z5Lts+Hwsq=1f%NJKmtSN+4zhoHb{5NOnb2Wm8V8;IKXf+14Tl|Tr7t>>d#BV>9? zs=7Aa<>Oz=7l#T`j~CSqfDl&trMG!}HW)~p;$0vRv7b%#q@a9Nyp#V~zt;r}Z8fP% z`I`;CN|Tq4Vz5EgAL19^+Ih*vNg{vJnuCswjqgH4EDCkcUfPVEq<}?=l;&K2vvxca zt;|EfjORiZX5PhX=|yn*+QAK)nQHCFwfAR8VwJ1+D#9H^PUruigsS84AsBs6&;Vv;c&bf_N{}J|;ik{ktys$Z8#BVEcxSp)cbkA?m z-VpZw&?8~b%|uUDtu~LUMjfsTf26e^b#HiEQHtzri&Y|+TMcg&VVJ%k8=fp^>OHoG z$%8-;obpdvPFxglBs_barhyRjEA~I=8T=#Jr+Jj3rlfbYiDC#Y>q@n*+dUJ94sioA zU7B9!WAa!671*V_R{W((?#Jpdh<_H^yjcI5KRMt+To6ji=)nQQ++}lzFEF@U{?^9z z?^BzTLl3q`JR)ns^zt9lihra)b3vS`(d~ox28=ufeu43UA@<{tkJG8R9Qe))X>h8%L z+vjWV;}PJ>NeDJ?)IdRBkf2(*_WDCMfQ44>U4ts5Kh`9wSeWn7V)Uq#S-5q9`R9%VV|IyAW=zcod3uFYlv-5ttF?5nk|JvJG%d{(JAr ze=a-YWfF<gpHuX~01YuHvm4dJseGVkc^j@A2>PrMptw-X^>sg=w~t z+Z`epJHjE)>LSz6$>XsH6#P@P8v-Fw@y`(sHb}!$*hSuV;OPI;xI&2Gcb)r!GTPr~ z;6=3|lhyalbN&<`-)w-3Iz%4(US~yo#x&|I#bbm58#jtwEoqhrXs`NvNeHK@=E>XZk%tg|kZV~y@Wi7M+H@P;?U+3QVk?s+8Wf1M#NMI3%%GUE$^QG*E z5zs~OdzeM^_00Qd<5Q%-5eU2oybxxONSBZ8{1FStAl0R1jn32UN?^nY-dG-E1aQAKO;C$=7R^7|uves>{eQ zO1YE0r;}V68;9UwwKvc~>ZgZA9&_85(rUsY+A!qIy2!s>e7ASZXnHuEkKa@TC&9ix zptU|_BboElU^V=qz&>V{e7`c!^_6Xpk~c9_tY?umyU=9)+;35$6yeg<6&{*LQjX0U1_WQ4nT5`+$ZC(bk0KUH;EO`Dx;#j$_U< zB28Fmfd4yupfeWe4c~UL+4*20IDLlwK?K)qLjoJE69K-z0c+X_9;SrZblciKF;sI2 za-UA_hCh6@-!k9urKI0(I#S|35dAAfctl(RMKa@U5up&tgMrSqv9QKZ`gT~M9WFb9 zLqzUlPq>Ek0t(FY)A>OS)Yk_&Jgy(h`@7HF9N0#3UStrAwXru3xiORN7|e(ryj#^C znaG+TXw{?|ZD4?c-%W`*h|M^FL@BKnG#;uW&c3kULy9hWaQ;XgL2PUu(f_c8s zde#5leHq0>Lq#mjH$UiqDu%wi5Y}Ai_&OZeA>>KkNr30~bo74kL8X;io1$zqm?0V8 zdF*o=N)7i?L#(D1oFqoxbmw9i5NEb;?6BtOGReP=i<~0wuHN34bN>+vOrKN`RBvB$ z>wW}12qEQI{vqt($2w+g!2{PREbhFv>}6(NbUX}KdzJ_%1U=B1@7hKBEHEKV{I7-j zuy1Y_#8Xhok%Al;ekM=(!vrO*0D>f}T{!grDLUkEc}8r$ewOHz*7~;qgF}KA;VpOh z@n);r=!&?CmKEnrBVXA4!w9dpp?@L`{#+$wF#v?3jgR?v9NT2C-2@jV=kFjI{%m}^ zZG-pSA_yfLtRfyCN=XUHlNEv%ldpg3_rvEh+w)6kU2cx^Lt-?lYm=*kcbT(WBSb-T zI~dEH+C$|fp5aE;W0`g$HljI#I`8~jSJlbqZ{Ehew)khBT`71gryl0Y*~s_cD)2%C zUEnr-i`TK^&Gx`-#ANUZ5XllOZ@nqTIlV>DA+5P-`k&FTvI@8SAVU3f42_u+uaQ5Y zhhty_DYMGbbzp_0%ATDrwndzV6AsJ${^x!0K!%Mq`DP#x@Y^>KTNxEZLa%Vs!>-}q zRMpav469YxEsXR+uBEihGFmdcB0vaL`9MKO92Xv^ESb%uv5eJk-seKq zi*l?#rJ6igh+ZYA`V4DpR=nPwN3@31Ok-}dp9kzsG*s&LWREi$EREHtBk6Df4di+F zhTK$2x$ePRmM2g9DdjBoA-VjdzL4@DAg9}^ueO1*Ei=o+^g^sW*fnw$=(@`FGP38O z#|yrNE&&W8FAP)8oPZGb*J>in$lD&w zCTSr)@ZQ_^cb2)iBuXevVPx3(WIMtkrUDO_d7iNlaE7UCob&W5%i0nh&-;n&(%Bg_ z7s&>Ux<`!2=KLNTf_@nU`H{f^N=>W!e%ZWHoOlRx_Wm&*3Y1srwko3HBUB@!DRGwE z|E57d?i%m$gh~_%_(mL*~m3-TLMIP^@t=FmCx7Ii9)>lhO{YPp9RHd4PO1OGb zCB#+!U&;xXK@ACImwDI88V@u1$F}Lm2HQ0rxcY7Ls=7j%5A~uau%+w2(@C%hWf6CbBYLEpyvuar8xf^Nhqjfn}49UjI$!&-#96S?spK%FP{4$7m(@Ij< z=(S9Lzg6a@{hb;FVmq!IVHRN@ffW{Md+J3|`YORsy(DMmE$}q0?>0LDEu9fHUfbuh zA|a|jh)+{H1fAl^oJe@wl7A0P!4^d!j07xqghP(*!BlQ?d8fQaYCwvd>!Uprf^5pZ zLvrzg=c86yfz4F#Pg}brF#kPK<#`-@O1&j}_ID5vR6OT=w^~wP>7(^X*4p9-x7Iwx z$0vCCtNOf3nLFr)3#vxqHkpi_h;WqJh;xgsef)Y1_cn3@1jWAHsJL{G<2D-^_pxtv z=qz{_|MILi;mNXn@F6#8`Bef6fezndw|k(X==x+aNE$~|K4XyQZ7ieodo&aO5D@Rt zIT}Gm-zW%#au|p#9>BxF;cQ%GaF*cnL3y5pez2pnQ~zPcvpC zo8%GDr|B)?AOv_pb=pK;1W}pUa&tHvzQ-qFz1O;UTA++ozR)92s@TNb5-a#I7y9^( zCIT0BB641~!FrHZ_2&<%ct^O~thNO?5UsHAw=(-5^TQN_5 zovZEaM*kIq@A>Q)>YEo&Z%~I3s=w9q!YlF}u@g7nT|F0#+UrE2H@|IXX~8pk-Bzho zL>1s}p}FhIH7fLYE3KW+zHYD(WX9kT2);IBpBB9l5L(MQdc=JEpG~D2S5%lx+A0|Q zbR0+^{PMOT?|Igw_5uhjDvg)aTTASSf(L$ngVKxA-GnWueJWS>+2ln<`kFTIa|(-7 zov9KtKtcBSL?j4_`JAVm&3P+VECSM;@7~4CC3O$v1UVpm!iv4KP%ogAh}J~vswjYm zde4sgD_<^CD`%FiZH>XI?gAIO*CY$F-&GPMLr884@ymAI*NBGV5p5&iNha&;5%j<9 zri=(WI)H?E(bMC(DHN|ltVA>bLjn33XhamE_%mJiDv}aC8a2<{V-G)Mf~XMkkq!gE zA!vHH`!Q<52tXz#vw{p}xGrhAu00n@!d~jtXYa9bh4g!6UHncWG1K^3&90M=5pwGY zyR}JP_yRUq>V=``Ms6J=x7O`C=wzrdvwJ3&O(=`rD}iOcao_syLN{M+<6gh@18d6& zV&S-mz~ZqmP%V81R)G>TR@}bLq(|-SM#-Yn;i0w7(EB)w_R@9g&yo=UUa7vW2kFaO zTH}6FI2<-6b~M_Ik`I;ZFIqo#XYdF|Su{+x?DNvqoTvL|J|H0@17^+$VSxqx2mKu( z`K#gxf=UxS-~A)-+G3WKORwyDz(K-#sOSVQ9-MT#czr32YT%(ebdxO+5%L{+G3c?L zaD?h2A{T$0fFY~sv;-q6q3Az`ByLOynNzBr>K;fqdNcsoy!evrLjke=6(inGyAmuSnW1!W$_< zJ;F8&#}` zO0>)U%g<#*s>N@seecyGTab8r->R>?<#yMggi-FIfFY&Oq>*M!lQ^%|VC+@zRCiF` z?`>oUXW=Kc>hQlq^!=I#=1UI$bsK-XR-|n`jP=dd-`Q)K=vX=?8MrnZ!COGdlLV=2? z*Y&&DaXxq+zvx7)&Wc4Lm4HV0NAm#C$|0xggtLfo5xCj)XuR3m?H-ZGL1d7mw4YV@ zW(XVmKLawhn;jS4%4dNHui_gP*L&nu6`XKF2swSN>(0r3-2SM$MlnA>x6lx&Xsl^% zPrc>ky)X#@3&kKo03l00t2-qriGs#_t8*eIB>2DEiblHs%BA03Xc9K=7cD@Fn2!D$ zxhc?fXmIvD$Rx6UZuT=l4GP7iL%;n5FX_=;G`)v~hu$j^^EI0Ym-oTG_Fb2!)@rY> z+ggf6x=OuLz`)st_+NE;7heArEF%_?wGp%s!ja9pOxZ1vzTp+F?=NLKl-kx_7BTz& zuS(Sc3)G0E5BJiN208Dfe9ct*o$2}jg4u@^Gz16>Eq)>`1G6SdzP<@R}veuf7^l^CyzbIh&1MS?Yr5k%`yV#1P<4=uoL0R z5`G9y=o)qJ&OnF3#id@kUcdVu*!~4qyMn91T?9AspKu+4q^5Yy$u~&8Aft3c1Fg!&$t9Pom+v$ zAcp{3m#z9{wSa~m1FN~qf(q9oGD_j}&Q&nANKh_BoY7r?gQZEnYY#J`OX0M#fk+V# z0quGZ_|7)(_x_`*;ZR3mqBi+IIC64+C*KwCceR1g&@l7Fcyo==TJ0VC^>Yz?*Lkku zB&(t-Vky)O{U;UDeYCpm-b zZaRV>IvHt1j;6>&1ipuHrP+R}erYM6N3z?3Y!QACaTNm9@j-AbChc5mvE(tZ=$Xj+nNhA=uxd*)W0(&jdir zM)Ia*63Vt(#d~Ql(BH_~xu4|Y=o&!-r@B#C5Oxt2k8Vl#A4aV*5J9V+-TCRPxG&o7 z=`=SPs~ZTo|0?GW5j%~Cne5`6&a{K}Wi&PDN2XDA^YwOWfJ4@bC!6B;*L}vDdI)8d z0uS}6^v{1c+BZJf3vk_)!OQ)5f+>*J>b}*x8hhxUmR&q20rHXH$wkbv2)ZP3?$~$( zd-Z^YyCy9S)EZM_F5arHZZcac zBj29F#bhPy{E-s>is*=b3{zzKMoz>bw+_PPYqisN6+}Sd&x-XNQ;l#CPq%KoGxWwp ziT2{tWkdXM5JF#@#BHoX#_2d_*f=+YXY`Bylc~KU)e!`)-T-JBpzoP|dDM2g@BksN zLFtfNK=8g?`f%l5h}=&4iByfsppTG@U&r$cbI?1p+OsZPA5usAd)1_41bKHABP)g2 zP?9u1-hEN`sd8eW@iYKH`{v+6NLK^`8}Toa)!9FIG(ECpuBKY`MDhvEtaN-|X0(Z? zJ`4GOW?BDRh->YLuCPFAzE-})))Ni#`sDX?ArIQuIC=z)YyR;e+s-4khRY8qv~C)? zDVmS#W?te-UKzEU^9*rJKY_6H0EIEDY0(a6p3yM_PVw0(JVVQrW=KaeQx}cf>YT)4 zJNj1+Ui*iMwa-^+e5$P%$?_2wo8)5M7`Pg!t8UHgT~48(CasZEfQO@?`4^8nW~OFe zTX^%QfxCq>K-s^AYx?H<7FIi^2`4;$5k!X*a`SNQs@5MR#aTNUQwy4<=WHbb0`<3J zg}mP(MYCH}b6p7#2xzgVC3V=htudCOHH$dqbkF-A26)VV1ZNV^9Nf~_x%1IXh(8J; z5Js9Wo|ka0@K>R3t!@{W&>R4T-&XvV^UP;^+S5WWCsHsp+H3z_=vhje%M_T=fQQ8O zTC(pLn%7RiL@obE1Uy4$moIx!pOVx>Dy}kjoqEuzP2~JUqgCgQX2TgXTscL16K#kH z6U<~)ZApNJUfXLClMx$(wZ>IlvbDA}itEnpq(k-YQbo{4;xm@+O#Y)EAF)0De^H=Cy^4iXwgL-?_zLvr3!9j2*}qT_?lC{w zlz@Zfj)g=O?0udh6J9Q@HaYPraMHP#*BG=}s^w}cBX&igZR|_NLppLJj{(Gq; zTky@v9+3q;`)+0OpRkW5wpp~RcAD=38mv;v9i;4lAeK)EZ1wCA%=`#>K2g~_pGRiWQ*S7(Tov?;r*#+U_p-?1=AoA4)_R1&OJ=lFzY^= zI$=09M}UWVuEEDsD@)Ol{SgmWZQ*rg;RXNFBW-8n*B>Xe`AqC(slyH3j=gCFHwbIw zcegf3x`*QB>V*;b5b5CU2xt**`QPLHA}|{&j7G;rZss&tbdWG@nv52}L(6aTX}`9{ zdW2@6I{5#$@7L_Y?n&ocBCGx%olHxWq_5>tu#e}H$O?c%)Plr70ualz-#`$k@-SJ| z%-w07T%F=Ro1qc&5l?mb2>!fvT!c8+av~V=8cNkiw~~Mnu+G7VcoF$dJ`9Q+l*iZ* zn*=|!RrDEaU3lCP+|+yiAG40T?KRzahvxXXPtug22H{3Jg4A51vv-rSvR&=CJ37MN&T zQo?thoE z5a;P}p7DrlW3BM>6`E%cHDVD|x4JRe|FkyD9T%-j*YD|>F&-p^Dv%Ixys9IFR{lZx z(2}#c`f96Z^u!Q+i%iMg&Ll4=x#^qrSuNYGx+XVF0S=+fC%4a`q|}iw4sx!auOMV| zN912|I)a*u0S;30LFPz^I)H@oDZRXMPjO>?zM}yTJR}i&@^y9WEja}Yny&f_+vyLY z?B%!!H`q3Jgh1ftW(j-*5w~FO?ZFs&9)2Z`zBc^+u#f(}Pg>965X2&a8l$ZdMiAZD zgyArMaQn#&$EUrh`l0a2jy`r)PTxLq4Qr@~9c!8$DBs`Q;ivHUvQy573QAj${5*)F zWE8Ek#5meVT)Rg{7YheF21p_<;34bAOL^V_4XywPY>0!sFSk_`*p}sQUZP2C9w1AuB`U?O}HCv13gA zs<&6~h~5a+PsU)xJ3X}snaj;M`u5d4Ps!PW5=!Iq;`HJu*?C{U#F6%T}WNbB;29;1IH5B3*K|u+j1V*mKBBQvaLhbb_{nk6V$G z74K4|_~_ef@%HzBM^2$XcAeIAQYQDzWh)uXZ|;cWb@O5^dK2r=5YJ^0+^#+X2^>wP zaML`@nno|o|GtADp`E?@WU(>8g|0u5Xxo+y;D_UOk{b8@$VX&2mL|t6YAq27XrBE` z@h6u)gairWQVR7}9)0X(1-zV(RN#nxT5Tsg+Jzt?8OkY|W3D6d2Sk(C+p;f|zxC>P zu<|xp070xoFJ*HNUDVmq)s?Kex!n3-5P_)r+=qWf!^wPTe;jP;+jWY}o~nWJ0S9}1 z2~D<7`c#@@W+;uZeMNfIL^(=gFLo$vZ&HomX45sbT>0@<4o7L@@ma5K@H3Bdi54Lp z@eK@bze;$ER&)d`o%t#m@C8yUlq5(xdNbO)QDvQYkPvHU_r~OahVP8-K;4_MZUPTV zbbuk#UoBdklM2k=1Q$6VgL^sz`vm=E+4&GbjiVPwe~E(xCF!PT@7C)`iOLXzVniMQ#)-EKq2lWlpvz0R>tx`nSg;lJ`R&_7I=fD z%pqcJ0SF7&l<(s@;0QLH*u(5iafn%2R(%-q-fxr@UMBs#Ulnq)Q4L50GQ>k{>;x;9 z<(((EH&~bHCVHGjb{%aE3kCuXOKj6!pB+(yiUJ4oKKfLqn|>E++r!jR5e!}k0+zfl zG`$bWkdD&T4$SMn?EwmIqtv$>UZzfmrf28OPc&kz^q9NNe&EA`YLH0ji2p_YKLRp# zYY>mbVn!2Xt`QfH5rf@`$Xzj%`QaV6tEIR^wcCv?vgSUBoe{hc)#7pZJi3V7h;I>q zX!tSfcf1A~tX=Fx7k|~8+cRd}n&tTdG;>?;hBDUacoBTN2*L2NqA-_F#o? zk*;-tPpN)yf_-=px%V>bs+4*vk=ifBdiUOTw1{TXGU6WZuLJ5uU6ujRN9z}B)9pP` z^i81*BB_oMGaFZ;v~aXL|7{n%1PzLfyLvEX66*!}(5HE7p}S-v9F#f~d`yrKxnVZ8 zlE$duI1MGDa*qR>-=_axh<~{s`P5K`^c{$Ykg-`j%<=sLy>DBVhP4uo(`;Uq~Vzk0*!HWyCN`^W5pz z$3M`CZ{0epl&Z)yh|zMyP=h%!6bG`4-f<-j}UNr&t8fW zV8BAA(`KK{bRsuO&ZvSS9{$es`gWfxEXNYg-q_RQpduD`VemYrGxYdjYWTte9t!r; zjNbX^2ye|;eKklwu)vuuf>}ikF5E}Ugyg{?ydKB@JiGfU-);tUw}x25pBfyQ0tF$t ze1F6QKH?!*A_#`&7Y<0i#`v+lO2Z#MqOG* zHh0>;zH(apfv2fuIJ5!{+LhH&#gk~u2uPT4ve;ydYK^wo{_1X}#31qw+`kFOx0yK}7cb05RWPF9qv#G@dR4O>?geQ^ zf&mbM&akb0Csp#KLfdCcHs(pNVcO6rEU6dQ-SH!Fc|;X{(u=b!`wG z`N-~%86qAEnj!l`8M1}*{r26C+2{)%I}3U1AEoZbtuOH4$b*Vd|DWg#X26@nLlQ`{=Z+|<@S?4 z2wGk4lib`f5L4_l5VoBBADsMVUXb0|+d%~@C{*1v69sD9gJa#yRMLYQS1M3J-BA(> zoTq>6%RIseNwl>(>GoTLu;v-5BdKNr7zYKB1_#Cct*q0l zn2CCy54j^+NQKm11UA9s?+qd-e3n+kjMk3(Q%IroHGX=KflIoH2!xOV9HYi;dkg8E zgHI*n)>l0t$f(0TLPw6L;X%9KPxp2=kQ5v8@C89{K4f|}b(FH&`fAXpA2>!1jKqF@QI_d!2nZZU{mUKrJ#&(pi&v^;b8=iA zZEts#-5q}Q@-L_N@+V}cU`{_II{j+Ytl*8#AD#ZG@_t*<6JPf&#{H4|R8lj7J#3s2 z8E)ot=I2d@`Uu&7HljOXG}LhvMjstIg)MoxNVGfu+k}hgi5>uk&CiDXBFk<6d7#8d zM+nmUCaGd9EY!X*j(_{&_R-ALRdM1V@mSBtzW1=I+9v+;3)J%E?2g*mlYazCesBml z8$zXN_)?#(i*k!<5NBONaJCc>jLE7#>g7tRu1B+3`gz1?)Lftt;Yb=57Mu`7CRV2* zuoA`kam-6)Q(vSimS9^Jz_Jhk<%%dj%tKmHJUuWk45JPrjyD-|fo`r=03+>*v zZhk+0T1xlGSL~UA0Rm3KV~aoD+O|#gZvr8SZj^n52dFtyJ9uQ`k5+YEgFdsL<_M%LpzjHnq=N# z0<`V-I^>&gD(nPAyutIh!tj50GLH_J&y22y z92|LkLM9Rd^G|RHIYayq7!MJILBSBYR`lzF8ksq4<;}82Gb?JU=Zzob5evKRbymm_ z<8d;&k|FnQ<+oiSHKcUAkug^A4Xi^M1RnAn$yDlS=pL-0sCAq3EclKCmvTo98--~R zF{oweyoh)FJj8abyF`qOJ_@kUUS#}hJvy0r@9p&~TF+1+a|9u6T6qr}cTvjS#Kq^m zb2ML*V^OtnWOCo`l~{GHZFPxzyWXRlFK+*YIyO^!;vGbCd}0|qRR$lUhJ&3E`Tg1Q zJ%23A{fif8?SFDC-AStWj}VS;3LHkhk5>_u5f>@^-rxSa&TcnHOs^zAy7wL!CuVZj z`fc~K?26oR#4^Z;y8SEBxq%S-c4khKhAN|O@^V?JI-wrjCN26#i@@UYvljj?5g|Uk zsycrk@XN4uJU^z^<^~tFh-q4HG|(Y3)1sfaNm%*%g=1=#Oll$+GZqT^JM2wvmlg;` zPjwwWz=K{hRhHb?A+j*#d=R{H^E)l_Ut4L4eOJ+r2LSEd#Bf8MR9GrJA4tDLw*IC! zKGoeejw-t#2x%BpEMl@yHT7?|$*HdrKtYFjFs3EXQ#nzj-H?Mp?%vZUEZAO7qR$GgTwySPqVh@Qc&D2N%lG_lb5O6&P}l7)J@lS}6`-J)(Y?IJ%5??a6% zSuVl!`}N9Ua6J|OwKokZM1)jonai$Pg=$P8GOzXAf@AqK*Pg?Zm#v+B(0#>%&fMf} zDg6@G=6+z10tc19o2oxgb;y|@NPP03gxw5euez|@$RN51N-z-(CS8edFCDHi`j@)K zX)_;HJ<@CX2p0%LmGh8o;DlSpD?;VFA{iL4L+<`%%=31Kb8T=$HAnArQ%c~5g2nYG zi`Q}H0S!HTun@3)P1;4a=QANW?Ul9b+;k-(p`p+2s~|Hx6unExNA{dR5Km}lb&*}! zWC08t7r+pMvvhVwOXhS^x2?@LP_e{Aui))*lA!=W(@B}U_Ve;f$j{03emZvRfFXV& z1|4It5MbKsrJ^E!$z@@B<1K&HcV%<{V<#XkC?f3IG_qo8tx@$P+>nmxE6 z_17X8&f;|<55OQ}b@aTAtwKa8{;nqrLGr2r01&JANiJj>Rxbw?p^2W}De+Q2bhC{- zZMvyOL2a0|=>ZCUslSQA&&KV4blX@mA2Abp@1CQBSA>wBv531s%I2E4yUE8MlLt;3 zAH*Zcnu)&o5(u419okr+5RPbv=P|c(TtGwoc&UEazF>FH5eYx=h!wSQn(J~+3F-+q zVDZy{h0ZZjI`N9Hn(Wmhh+5^#HLrpjr%*xDcP?=Mv=CIk1T@hnF1$+XD*YbCdg2B? zElEcmcNm)OO4rwrTi247@+DS)hV`SOZecT{(Xa?Y@xVi^H&&VPtdN(5TzA{%3ZrS^z(e`)-9t>(N_|`PfP{VHoC5e)s78w#YH)L}CPPska$uMt6=# zh^yT*+#$^%ccNn70Kkm+nYK=dndp*s*wHtHX3J_jxx6i zHYBg(Bkj%nSoLzQ({Xn{ZZSAttxweDZs-VStWd*tz(PfB2!mb-hO7iCy&xcyvPh|o zt3B(|`r~{83k)8+?LiD<&!PsIq|%6t3bHu@VR z(^^GUiivine_MQ_G{P_wpV1k*<_jYOm$Pqqcv`hTz(Y{N)B3Y7q1l2MIt#xO=K<=K zcc8(ynFJtm9yVP+dxJGn&sC>T#a(ao-^h#J-9(@C*Ky-;I`e+K_#kVEuwX^w~f{X zH8xZbt?=OS0SMVfxm`Rpst`kGFz1@lWqaESIUpg)M8}Y|ocRcWa0phDb81d1H!1;( zx$=dFZLCUt$c=BBU->I$zH}(eRegUt>-zRrbGx2kh%A{m#Z*qNn{9kjS6lvmGv=Jo z5ZOCCjsXmZg4xI#aS;D(n*SG`A6vDelJ+rfUjLvWINNv#ZaBm&O{UX>@%mPVr#dbC zY!kfO(^7UykhNg(hOC9d+F#UZ7guKDc|TA?K#v9pVrS=p321jSJ4B zmbnW|kB(PAA2ikMO*cys3$#;B=tHzNeg^#SA&2$HNXFM~^ou$h%M$k!v&_5bNb6RJ zfW3Df#D48P8Qvx%SvOk#-&;vI%?OK&gGVcaSH>`TeEy&KL;FWNS)6F_+>u3~dc;DM z*0$>*{qESnzF9~FHjH}8jj@P=Ar1l!>3vbtf85ZB!~&Q>Q{$9KXZEA)H>KM59ZR!kyC znrH}V=QW*<{^O8v+$Uuf%Ui1szOUy%{Yqx77xUVYJH6_K1z!mPtA*8%@R}L6lrFp} zVdrQ%pO`l3b_jq$D$=`8FWndd5Qdo5Y4v`^8`Vm+W3do3a4EO>Ys3hI(Le|lHd>+d z+A`I6)DxMLnOlC>Bb8jW=IqwC z>^@3)dm<4f}@?U?H5JKJ$k=$vn@`;MKsn@P7b>HLav2lGEnt_|`hc2=BmG#6bw8;)FfiTsYsR zD`&$I3CiAJpwc`#yQhu~hsW}4{aZF1e-%lObc6S9-sdD?pu3q0mGUOI%wQ|?0EB*J zbf>_;1QhgljpwY(ZcDzxApFJx8Nbaw)pX|t{gkqAn9bF`bow5&^+F*Jk*u}?5#S(X zVBcN&@pAC@&74)uEesvRLM7S~uFK!~g4Io~@kb(vgXjnn_i@~j!<}yNCm)#y>2<3Y^wtVC^Z+C5qOk&p?X#^dptyY#8CS`tLf=+gNE^nN~u(d-| zsls50J1Ly|@JJX1|BDvC=d5?fW4to5ODo?Oa502fTv&!j`9T$o z=GBtB%F1#oec=?o1uY|@BUAXcY#qCo{5}GoNf9~y*3R83_`wuiPwxu>@B}32i)i|~ zlRFdWbX6KA;WK3sR;5< z^IL>p5+>Lie|H3jw!AO)(P96x`HsKKFQMLC_y4vog9TGY`{AePv^kWHXpG+$a7C+! z)zReG?+F%4t#Qk&BZKO$>!3LXdu==Qig(y)lvVqKpLLn&@Im6q2(Cv8L?rdUL*7{) ztVcV)M}UJw>O>r9|5AV<2(M`q00JIpU=S<0!S9?j=@&mo)3v(d*?JtJTAVG&Je23fi?MUUsK+q*J|k*NLj{|8}~s@n;vuL#2EIyJf#D@8 z&Cl%dQuSdP-+LbeoFU9d%tzyVL;@L07jyS{`0aJ|3fs<}mDKyGlVA{b<%TXxX>D$6 z_ENH@GKzAb2x%#_ICVEjrnpfdUFw2*K{+=i;WtBQ1SKfvJB7&c)qa@McFUm<=@Ml} z0RmSzC!3afFMi1c?NOO+qp%44(9ZWd$|LOpk#@Mih~N-S0wrMxSm-eqzT`^cAvT6^ zh*yw;585lPy8J{p0-fR6ZxRE6Sj`=F(uswyaPMn))ov7Rs`PTzIJI;xeTD?0HM3(< z{{SzzQ$3oWVlucn6%v|w*XW;^XbP%y3~B4Xb`;luk^o} z89hsbic|oE|F*j5*N=LrjRx+shl{P9jh997Gx0gijg^@ME()nPTy%hjXM*b-2xBui zx?c82UXqdrLsiPbWX=K=Eb&4a=n6d2J`EQl=rY4RYLxL@a5du?+dRvQ{m!Px!F?k@C`+dzZqz#R~JS9bn!`Uv)H*zop zCH}ug`^;A*YtrVJ-y5awnH)F0%cFS>!r#jAZ28v;ut==qfIIJ#R)kK%MPb3N zVj~<)`sK3YL!U+o!1FU+@b|>?czJe;)&dulG@KC-FxHB38RdCjAq-j#y9|C{M_aZc zLi=~T%k<*v~4s0ST-SP!{SML1+K-%<-1R$f>Tc;Li zfJ1EO`ukq|dIAq+PD&CNl7AvZSaNE@9Sso>)Xn^#D$O)q8J8MB?ov28fQEH6ICXjk z&{svkAbbJ|Qd3Pxrhf1c?#0U!=O(j|Y)R;Vg41`JDf$+u1QAdj4W=m-Gu{9|jpWI- z=b5-7ug4L=5%#fBvp3HpZYt#K1qhKN{h6_d_lRa`+);33QGAh{(+X6>WtU|U@-u6?GJD1NQi-_)E4W~>H;DSkT2 z5R=x35PMgyUZP$<5>1C%)jfZ_-s-n0}-=MfKeR@1Ku{m!=egllke7u$nN=(pzD zpQs1U39sT5>D|#@CMpj;%&d>G^O=ogVI=WS%mR2!BuRApJeFC;fb+J(gYO z*Q)-j5A>0wbHL5g+3jjm^R*VanPyzHCEai#+ypObneGGE=tjT6pm!01*xqXVu^5bI zqoVkb>AkSt#8kVsI`5Nz89fU`xvua4_GSx5kPtQr(n2}!n#OkzPI-W>J zi`0>2uy#({UN21Lj;!rC z{yD)7qB7|ehUVBSxQJ023w9Q3CL+3#;e1H^Bxvm(IujHPGZM+Y5say_*S+`pjBkGb zM-cObza&591W9hhZbUS8#AluoA-)eb&H#>ezb$67vWTw-KVYEPYyx4!$8lY5i_@85v;^gt|BiVDtL<1@8CoQ)tR1~x}bDyty38| zTYh{0y{(!kMt;bV_w!<4IneE5DLdCk$OMh0?p3|<$3fy{G4~#Wz(Gq#wVDGl3w>_W zpn|?}?^XRJ3^Grww%@j{i^uJXI{#1n`~4{A$YOJ1r+c5Gq6QEr^HN-`S5g zA_q_C1ptl?wIcl|a=#=-Bw^}V9n(;c2gpMm2t^m{kxFLzY^?5IsaU}jUZs<*5ZQDQ zv=QOsajGu2dt}?gvPDACN*w5IhKQ4@UwVm$57dIDgOq^I^y&p=toMguo2{O#MUQg^p@KkNQ$lA zz|O*v)!tA!0xfo@ZZ<7%O`Avh&atc&8HmtB_tKik>!Y!?Ol=^7xFN_)bdcf6zqP+* zGMRn2L^olA@W}y-r9Cxhk|%4N9=b)c-Z>IockLCdM`|`3Qv-$lG-Nj-IFhtp_Z@FX zaZ&DDq`qysn9-~8cmV__10*02)Wc(~+@IsC`7ZG>31TC(jN3Cp@F&UDT+o$l{I&#<^mm#JK3m^)|Ifv zp_*BgJDFddhod%V1UvLUICJY;KoGS*V!iQsU{>H*Dd>3{> z(i3NxWJpPbmHUFJ&NNIpzw!7v+aH7e;jH#c8f*9AS?9p)-kaoEgtl_s+i&(A>Ij6A z?^gu1jjhJ!O<;rYwA8a-`iEC{qeCXz`0Zje4x9HmOF|l*sO?#6XE8FLuOCN|N2!>! zLjn?~huGG3=&(Vq-ruiodiA*sWqwz9&c+O?;0R-%WSdohhPLk8ZiDkyaKOX-I_y?@a6nUy`yS9bjz`AwQ(qa;lYm&7ROBcw^_{tg}>|H%tN=GfY=2 zY!=){s6`jc{_sRn+p#YltWF0VE2WG6YThl04e1Pt_4|<>Tqd9pc`CYFog&xaN*U4R zE$x+2{uve#Y3PJO`iATTG=M?XU+j3ff^tahb5(wi-S{{0w1hyUmCa(mI0P%O$$&!o z%36fhYt7a0=@?BNv51GpU(DD74OGO_1h1RUe9KAg)?uRY%o8jdWJB-37ac|T@&gU8;(VEZpHbxJ9delEn@_KL5 z{Ig5kFc3@Q&Xa0md5E*qw3zu`6XN|1dT` zIz!~rLvll(1Vc44;iqbE5u0?Z#%vx6Y@m&QCg6kP&O@R$NyjpgpEI#W=B@S!W$AYf zO3jUADy9j*LH`W3ZcRgU1UwdNS^EwcLXR%5E+Lyi=C`^>S7l`Sx!?P?@x=Md_;|lj z9%hIk7}-tULQqB;7B8it5e<#oLnSZ}aq2%t#jln^n*fG?pPB*|a>v+dYPOIjT=WWU zCPIQa?VB`ERfR$!Bz{L+`PI7WK1)i~bcKvN62_DvmlSRekbshXJ>KsOIWRdm|%_@*n-$~nw`y-6N9nHr-NEJwcYBUXk;YuCPr!ohxkLj?epZh9!N>QtAOxb;TS zuLLGs0R{&w3Nv2#ePNKGhyBrer{_KWa<0IJSJNfKhccYU`y zN<~znNjC_B%CSF)y$IO-L`qn+3_3SG2HLe&T zz(HFwAg4av=!kaA`2DCtA(AYQO(Iny7(++)uGM|GHcqI!BHEa))I9gkr=FP#NlS3HF+Wop_pA{jw;)5Sxwx4fjA0p5^SeQAH=&01ZqNY_=POyN=KGnZV;YNd9%I5(i=kqi^iLA&HClj$QkV#5 zQG1N+ka}{4D>9%VUTI$o?@7*0F}+~hLl-*eht@CYefdqY$N z3zZahk&x<+h?*2+$~1hITq*-jZ|LgtNe!AraYRqhoIn8&6e%K<=W$*!EB6)mlMykFt<2s$8Jw1*c=g6e&?HuQwDv{> zjD)@_DZdTYe{Q$@bKIdE=b1V~4(YQiId`aj?IJ8NB0Byzx@{WN#s1Saq%mpz9G*9$ z?f3s%rrG(s1LJ8Bve&!aEKR~Iom|o;!z;R-j(+={Y{_q8ZTSdu0E8XWJ3ACxI3S<7 zVN?VotU(B8F08Ud&Qyl-yj9WtC|0vqwX$%Li;iMYpsKidh=w5a?o+Dn2x#?BF3^H2 zxgi}q9})~jt3$^S`GKg@TPXrQP;MN5o73%Kp_L;5$>82>{9Y_0*TQlcu+4VzJZk0| z_K{w+Qk}Jul3ePI8w$;}xN`hEaSWJ*hs_*Vi;O)jBTgdMCmxYR`_i8~RfiA0HrvAZ z#>HktKm4(dFp*xWh>pakks^@TSHTpq&m`?>fQ3K(QCq!nTZe+waqO}I4@vbSF27#q z#v&E-XkK4RIp)|1OVgVYp)@r4tMeT*Cj>#qg?!gEh2OG!R8{tOO|K%<%^+LM9y9r9 z1_>&7bl+(iTlJ;peb1`b-JJiW`{MN4V9Codn`&pKakj9yNXRL>8Y(wcNFBs_u@H9r zfQK8kfsdB)!qe^B^p9RtLv-Md58BP`-n0nZSduBU!4qOU{T)+=UtzbzYIb5d=tgzt z4JTjzj2 zN)U_=Kf%(95&XGv#7zk3q%;V&>uQ&w7aa(Rew8AOB1QB=+D1ayk^M;iY6M9LvWTvT zq2Br0&xTzh^7WX><}Z@8JI#jTA=8S~BKd<62k&gC+;PdhgyJDQ*#Ln{cpQ*hM@XyS z(Oj2sq!_8RIREl}nazZW`J*o|1RhFB!L5`=3HwVuZO&sF#8Wn{I>rGM(Gjgsu+&Vo z>79+&liBLftHI{V`{Ia!>*s z{(?A`x=Ry0AB5NI2{i8pbCC-s0v$w`eHafGpHGw1zi)~G2`-%22rjc4?pLGnqrN(a zr~0Pce!0-Hfqy&@yPnL|-10<1-xC?WuRB=dBw{kA;kXHGo+R=ZZCrol=8O{w{&)E!JfK|5N8&;&WOIZRvTZD=6+co1CYD$mm3 zGpu<}eKZcahmSHddVGiXNps0k!~zWFesx`izAS8B6aqfx2lK~u&3K&TTrCL{6@eHk z>vZZvUFLq$BN6PY-Jd$!8)R#rXYj-!n9Wx`nZQFdhTI53`}kMKGw)h7dJPt>KDf+` z)sLcg7%815jZG!BjJ5(8SQoBUJFTe@_f=)m`BE7Ke>qs~T)a0Y>y@C_h{fArJDr;~ zoxAa75!y%)(!fA~4mB5FQ+DV&J~T{z4UcdVdFWj5|45K#HXHm5+`W}dfe?QY5B2_O z5dWKgpoK*iDAeA;LMRaW^QDd=rR=F#YJ3kd^a=mZoSmLSiD8MZZmR794^G{e_)F)e zSVii~p^$Oi2)c;d>1H%c*;pYG0wBaOey$=Qy-%E5<3kMH&P|L!ir9w@vyKCUXt{1g zU}U&i&yUj3A+Hm{;cU12DtDq5j#B%5^aLd}Rqp;6`uJUqJ?+sqjLt9Tkwz;;a|jGdP5EKlU^bLrVFv5v1~5 z_coCk@5{4HE1kvn^_^*=I|yz4SUK1%nntROBXwNwOlwjx&7a;_hwsLJPVp<6X<`uV zvBm#AmLAnCLz_ja^@`-&HyO@$A4Qtfh^2@v>NZt@MhIjt{N|NJK?kP5Z|7~Wli1d>)fNZ=j%>aio*I`Z8z5I zf51kxN7kkI5x2hioRTY%b!$L}&cjr7D>+S{#4xg?arwBnjMN9KO;VyHH>6XYGj#~s zm=HoA+jp`rg*=UId4_FO8txVomGp{42wI4ObaR|zjSRwGyWL)Q^Ao3F+9OCk+C0|3 zJg;0sn*$h#(G>o-j_)(itBC6evrby^!Z4eMSy-uX5baYNN)oCT(ruh|3or5)U}igq zHj-$Z^oq4d^$?Ei#Dan2z=$1{{yhh#mRKWkTe{;p=I}$VL=;!NI{7U?xC9n?75kj) zUM`T##Ay&D}{S8N@JR=7#}{{*=9zG&kYQb z5&*fagtp+pD>G7#_lmxa(1|U2wmfTyibmQ@L^m}74Y@K#-__H^46mpJG*sU6@Vp-@ zT|DE8+4Yq@Iyy`lAbt-PAGyDUIlk%cN0m-vKg49#cfbIoxma!j7(S>VM7vS z=TF~eotke5herSJ?@pMwo~1weus|@fmjHsSUF612&9nH3E8Bp9`>2Uazav)dgh=jP zH*g=>3%{BWMG7sF?bi{{tz091jTGzSy}`08i!F(g_5?Q(Evn3OYWki*jmnNSH_5EV zv4g;ZQ#F)*S`2_8IN^q+&=CcAdgC@yT};(BasH2xvA-m7q*&S;?X>or40c<(`DGD< zV$ZtiZDJ$ZT*O3R7{pnz&K0zadv^1-}hUOl-v1~O)K=maVD$`zDv7C!~)TV7iqF+nE^Y3qc;=DQ{~razgnf(jG* z)NX}(0>0N*uMxLHqo7J(K`5965c2>+b+|+vRLM9=b6vQ8F5Fe92x2N%p%+U#z>8D` zvNBt3LuT?>c8+Wi`}+TitiI2$p`uGc=!f8-Xt;LBd|3etWRtv-Sfe$&LdrjhU6((! z)N*&l=`&=OW=Tv9Z2uSvg zKg-Uu>cl6@h~2tAV}VZGnYbDm07Bn}sQbB1JF5gAFQKFV&xvvBR>R4@NvO;3JPy8p z$RQ!|H%WL9W^HzkOmvB|yQGpyNP@7-z|qNgY7FKTyISeQemXt91QXSxr?)TVl5cF9 z!1gD|SYr}J4qb=ibY$8A1)d_(ms-^+u?H}!&6GTPbkFz@tE%_oubWv&+=4f4=)+g$ zwSER(cP45&m+T5%&5aU0dJOcJ-E@}DJVzsKgylQFBxvcP8n_)wZLyA_-C?XZPT4I& zHmn@W5=T4hk)V;rS8S~vP9q{4ekuPGuO2e7co08Rkey41fX^ct9)u!#yBFP(5*!e5 z`9n}~_b;O8L@(8D>Zr8w4J|O)f0pMMgU!cVd1B_*H^7(#Chmu|BnS}|b3oxy;T7Dg zpdkPKt&buM`t{rG#jVSaw`;W1!L!WR(M@Vq)FPh8yaFFULm&Nz0u?3Av(KkJS}bNG zrn8!PGvcP#NnGn`*7*<+EhvKl1#iC3M}$^s9*rQ7v?2-(7Q!I%R9<72SH3-R*)7%W z@4!JA{6r|EJD1Zmk#foR`DE<1t$!_!Y!Q0(9*36uQd&fQ9OQ&pd47(4*|M)=cA{wN zS4k9!p%XgPh92t%uN^y<5HUNI+@LBh+1}ZHJE9=)UIGXW=W$yK(^%Cfo+|$+2xHJK zPw!FX{&Hy2Z&@XYj1!*UcS-9=dCZGhD!BRd4-^~DQm*`4&-8cQ0TN@)_66Q0JoY`Q ztg_}eWR5Wk_H17bDMAg7)YdkH60@(I1PdSt#Zn$#-Xn1QbI51Yd@M}Lt|rI`d6pm) z^Z$HD?%)U>6W%$W5!W$aF(ZH9Po;5{yYMr6c#YXOxpY;aAr5>393qWs^epr5M9QT+ zeoKiHCI29Az)k@ZavBiB6vraa0j$?t4F-8SWxO$Ci5|`gsr{ z)vAq@5#yW5TyGJ5w-2Kh^g{z9*K2)|nu-wbc8sLZ*gN7ce)78nh6mc^k8vcP5fG2O zm2KamTU^BWHL|Pd79JJ&;f`zPDsB3#eh$08O^gIQrcFz1)o|V}kDNpzWVw`}AitQ` zwB(c`8+bX}xSr#F^&!0#8HbuIp3eXTGaKdpr^~K239mb{?3PZ*is;kCG5P)Szz|-y zaMJl{G%C;XUQNnhW)|nmYRHQ4wRgz>zZNgHPzW#r+eVKVr=)*y&pxj+o>+z4+t1)t z!!OAolR3xmfP~eD$dRuf(J7#AxXE`L?0*WuZ+Lg{bLX-m8|^Gf57le%ih~ZD&zkv8 zGs56L=B89ahsLO{atO}Y1PUsU7kba}@n?_Z-v5SrU*_9QmH6yLInJnc2IxIN#nsXiV;augu z!X;m-AGgsJj1Y(vjt$-1OqJ($A6IyjbE0V^ZMEjp~S z#w;X38x%wTxJO7t{qOsD!pc>%z8&-@)7!w~V^S~ts^fRmMN_2KBNKq1fztv9vUw`W z%U2=PCNh>KH}DX-__Rbq;X~7v+$;n>i`)#?dyqD+X{x?>qeO8E47W2L^x@bMvS;l~ zGW8qv`Mwq&KFzrixX5=JbdV2upA%N2P|6EF(a;1YQJ!&U76=>Byn+m+2!~6#t53l= zrnx28R4cMEjJ8`?zm12NV3x6Ok|Z?(F7`irH#!N1-I5Xf_WK&Rf-#)hM+&0YW~lmD zkNYzx7;9{Bt*I1$I|t96%ydK`X%N7cOMNoWr4Y-wv0Pa*`Ijgm4D^mS9LUw!N$o6V zp_g^15sTJDceb+s)`x_M4F;)9*O7UboTM5Nub0jb8SGAD(S)N3)}~u2jhx ziy{sAR2u|Vu?nbNhi}I<%UfSlf^%$x-$L>4G+>5NhJk)X_pY7ia~5NoiLpO25;Rov zw=CK1%nv!AAqXRBn11W;@<|cAOelwY9EKYh$G+`HxbN?RCLy^q8l4kIPo5)1YM7LJ zny7m_QMyjV%tAzWV#m>Xs|fPOXCU;K*@twGyz>u(1R?-Lawbwkfp0)83DF;toK1*T zG$>Cp#6!vR*t4*PH8VZrd}?Xq%QQcjY-7L+p`{q=g9jQNCQ$MH3i1wSHkZT%+( zy=|P`Q%nRcCrZsgLd)aI5eY-|Ou#Zb@^?MWf*5sl@ft`u{A>N^I@%$qMLI_kaAKUa z6+2I8Mo>pitw#2|S)qMR>u%kwE}@tRO-JJMC_E`-%O7NI4c%8su5PITHepZ*9%^8~ zDR&wT?`+hbpOPCAJW`@5?9|=nVVhO;(q5?c^o@kg?u_S(iebr7Z+Uxna77d9BHb7Q z7N;M6bJJ13@v7S4qun0#XUQ~-^&UXz0EBbd+WZuJUF~sBIu7JJa{ve?>QnL`n`iqc z$%~xO^x{LRuhW^Bz8^Dx#1(uzd}OKKige-E8le5I7r|E4lLWsUu|2QEwUXF|J3xl2 z@F(uYoLJMd${3?cL*3R=zkh^4`F&vti^d`w)iAqNYsYN_5ll3Y3d~ciT8Op0!#y3A zvVah3-sDuBh=(7I7&cyIsb+RxXxz@xpBu2!s5ky2DHJmi2;(%~9#+e@4c!@ls}Hk2zQXLdBF|k)yp=*ORPi|^KBHn4XvTA z;tVflbFlu*gZ#ldZMiVI#QLX}yh2v|H*pMS(hZ`>!l zMZLE3@cDT}QY{R>2%kPvPgtvnwq&lU8P>f%HmNcq+dK>8;^o^c%yE4Y3V%_`;0QO= z`J+C7A<}Sk!;+k-5e+))NC-W^5S-YiVeUwxE&jCtLV-cF+p?0cLeyM?u+(^s?nh^- zIJ47M=jl*5kZI#7H)}nkF0(^mrhtOxo6+a|={f%I%}a&a^Y1*K-c6mMB2+`YIwjeo zsv`@ZNb_z)dv^e>xX-m_-1Ec{c1X2pY~mX0Rbd#$F%ORdD^W=w-ZKD;HFLxxZ?3ad za{@j5yRC=({U9S|A-gN)%GAFd${>qyig=8@9~CEv5Kw@EbSGVpm4EwfaS;mTZLgy$ z3tcb#V3L|rPS64m@v>K+bJxYWUHR$lZ=t@g8|Rq#^!#hl^(?!*eO16hYt8}*Ruv!V z-}-U8b}R%YCT=pSO?MXUV$T%G%C8vDjnb(kB1Zc+uH02zNktVjy+SUoT645f5|PPKXFoakvCQJe?aWlTytD@kLF^m%W1_ zXXO>ccckHrXBsF3QZ%wbn0!6YtcHod2DV+Cv`N`SQ_JGILov{7aiD)NuPWSr(lzLix=E z4`kIF6ryo2(ac8RhEG?NJam|B+w zYT|zC#bU}Co0SPVZ{5#NeH49}!}_(X8dVSn0eQjb4oJ0{gTb&BxPcD`=QLoD-Ws|ExYt(n7$z$YDMwP@! zPw{4eL%S0tQyr|10t6r-xKwcNgsw_n#z=kw1}xS9AsIQmN|M-IZC#Bv;kaD$0-+$u z9HIXGT5bq}Q|YxiR(}2d?uAexB2j+1*nL+1S2RQ;AuEhcIX%`6Ar3YAA{zTbNtYXo zUgwa!(Wmmhi*uxMP5})AxJ)q+>&u*yet05`nY?hPz~D}bP-ab;8P;LOw6geo%q~)X zJ>~Hb!Vv|&6O3!I^y`7L4W;F_IEY5M5F^p}E?pq^swKcfe5If2nt|r*_HoIUx4&L$ z=4xu^9iathv^p3IKF)W%NmThQ>S$j6~-im|c_puMI07Lvu?MuBgjyd16j`kwa zVs>4rC`_6iqnZ;EZTN;Y{y*tUJ6n4@UWB5>5!5dC^6D@3b-`U&$Ws>Cy&P(sA_R!^ zyE?Z`eO9h~Bn(Ubf|v+#>Z)azn9S@?fA8Wj0kd5c^@*_FI>(Azd zWhaC`W-!7to*h_$86h`|)o!V;h020D-2n?~93qwXz4s^?`XCVAw;@oT(cdWZcx@7$ z07JzusAk$JWDxKI4YH8c0E8E3dA{^-+!gE=r6+J<`B$fuBR8u5^ew$Af4}I!_Kd?- zE2cI$s__uDOGn@$j)D?@XY=1;x<2J4`YTSws)-n1TZDQL(Pj2xNssD zNu)8bZcr43^u^_;yacWF>2+LS5cF2akpva*8t%8k1L$pd^a7uqC?L2HJVY_NOEYv? ztZerW^MeE?XF2e$sf}i0f7@#J@Uyxpv1SQ1CXEOhO}$sO{xf}=f}1V!QX!a#Cz*AR zuFfvtmGwYF%JU~}m|ZEt0S)dV7zhy8Kgc09tmQrch9?L4@W;=aLmFZbiun9B#FLY| zdsIVhcJ{r}zcV{f2z?LxfFagwodE{7dTNdP?P_IT={1?Wr+1%)EJ-PW!ah;PKAz`R zFhg)7`+wj;E|Wfq$PmhY-94JL^s-=t$A<3Kqt#!Kfsb8dU%{;~x%P)+E%P2mB)`Mh zIJHllHJaI`Sb&FOix9RJNCY6@esNKx=T9aC_Sr%podDkknEYW7YQ-dd_cZ|J+w$;g zTT0*MvWdJ16wl-L%Hg6d@AepuPlLULMb`v37a&2+wYMF*g2_=S%q~V6R3B48KkWC% z@M<%DWZv*V5a{eyW#Jtkytl3$XTQp=_y~Uf7SZ1w2Q7dQ%BPX!&8&QmPpNA)o{MXDKa6igx|Wc zf*KD7=YN4#;U7oBXu`i&tOOM^zUH7px=cPn4^Lt%-aQ2w z?i#67-iW*7>y=tfmU0oN$;{=_K#@yU80#so(g1>zabeWm*46=aEC$&Z!UFrt5c&cY z=^kj()U}wRsRzFkSCZk3uhP3hAaD1poL-j>BBAxRF>WlG(Gk#x{PZL9wW4T$i4yjj zev&^)-8;+s&B&{(G>9>uNS5(hu>Tf6O8>dED2Tv~R1pPESuLFO#iY|-IkCs^C7?$BVUHtcYzsY4+_#h0Kib%6R0N685J1!ea?SDi-j z$KU@(3%$4yapo@PUisjL-JS)DO3o;eyl#Z{*W!l)YB&TrPDao3fyO_9 zcmV?<1nQ6w`cW_^2I&QJ95v*_CjFiI8cSdyo6}Z{r#fD8FM5=Q-WN*3#t7Aj-C26w z-l&GyXFMO?yvc2yW&3P!uGp9%AGy1wvB%mX&$i}r(l3 zw6A)z@m*O;#Z@1)N5)Y=Wj5@*eET~G$L*~%S8ICzP68eEw@EZ>@^&<~R`Rc@r{n}6 zOkdzXw=SE?F~+3?%k-S1cAY-WYGN5Gxk&CEvSudLY{TySNfL-j*?*APWTAcT2Hzb zbJWtX{#@dw?A}|P@#fXd)PyhyYly&4{%%ytF7JEv)>W!v9C|N!kryAcR=$O9zTUOT z7AHNeS4VLX-uk3hJr3e6ws9M-C6mWiwfZqre(P=2uyFtvQt zjd>$pBdPJjz4)^tI{a#|i`b4oghiiS>b+#2Fli0hG>xBZME#oUwBJ$oja%w2O0)2S z^9Z)&L~JqcxewY$^}qfRd`R2xHwhjw9q$A9iWO)^ekH>nxAutUS?XDBv>QcaMTVg4 zB9lq-(&`0s4e~>UkWDqVVG#?OobDr?Q?2*TyH)z8gV%D3n*5;0z@L9S*(?DKor#ih z5O74k0S3uzx;iEmuBkT$_r0N%yaYY_#i%Oi%RhLLJuOc#h=Eap1uhj}MgITE>A2S^d90+CGoat9>}EtU2x_8; z@kD>j72zI-VHURR+kP?M=j$-2$TNjDrPm%SUFD(cHigH>m**9F=_qcK)^) z2x7iMeSeBy+rSXBk%po%=sMp2AckiNz=HNWrge0`a- zFK=KWZH&S8;sAv0#na@$nHD<;h&%mAr;+yg42+lkP!Lq#O;RntzxsLqPY!Epab5jk;f3p=J(+s<`>`~vj<=7>1J4G|CmdE-&vn51wJXmC=5)F?}7itwox@xInZd^_U26Q8G?n{ZE{9S>vm_5ez^fcGYwUYhc)4 zHQcMd)-cR>2D{xP!6FDlu3CDnOq{{p;XY9UHhqdN)x)|)Ks{o-ws z-jd^yhu5y9>)!IGk&(rzcf3|*aRuo*vW`ZjSpb{f0S{g_h=@0Uh4oa7K}NxzoL!>U z6d7C5YX7rKw(;Nr2j<^GmGk9;%FjL0R*NmUtpnl$6ugp>h~#;M8UjM;+xzz@Oon_A z@6K#;mCPP`DHa??xlbUYi+0~f0v|9zZMEaE!-AFsFJc#v0v)wj1>7|vE+YTSAfyOe z)^qPAHc0d_Y%9(HhlhCnlWE6NrKwi0Kbd!SuREBP+sWH!e9?R;J|weW>v)kGRNrE+h0v!{Z8 z$y@;n={Bk+XCE>Bl&RHc<4%hN-^Fs?H}pg_2;tpy_3;s22VoaWcLPSok%f|>+?=7E zjJLo=e$io7Dm_U6gN2tufTLj>cgm^bAsXEm7dUoYbU;I1c$w1B-ie)9jfJfM1Plq< zQt`buSypVxK8isQLCDjs^^(U3gK!`7`H?FZsi`NRAm+9hUJR0(Q)@H-XIH$+iBqBi z31&Ej&@52ofI`^q$4uCq1QuAaYWhdr@}JAz6U$@$3ARVi69djeIF?+?k+kPLoC)wk z@=lG{!pSl0A`|wAxQBarPv^=1FCU-EHv$y%5793;I~h+sitW(2y~g1F;wm;*$F~0E zR$?;wzPSjGNcD8$?d%h~a5aUm+3BzZ(U{wJK5wFNAcMW4bVTw3LT_cM7XQ97& zqJ(eyX&;*R97g@C=HK;)xHtEqoOm{*j5a32jnRm&RdlkfFCPx=5sUhC#9DaO%ulP9 zB34NH@opd~fI^Qsq47Y3PT@IB22D@2v_u&|Lzv28?~D9&1LjKu?Ky=r?n3m_`j_m` z@r(I3X1~1oj?98GPzX*u6##;)HqIhA2ogZYT)=7Dpd!cR^3IZgK=aKPDs#+20T1?@ zB@oITod|UK=*&3&t`+?^fOa1b^F~l`GsM zB{4B)5&W9F-9%!9WiVBIE~SG;ksKog-)Z~z(mf(7n7)vX13zR?rQoQ0xf*;UA zpGF9I`W{Xxw=hAjzIs~5O2TQyIS+5Kl-*n|qA8y`tBkrs3tlShk&O_+eh}HE;G}u< z{(%vk_iFBqgAuo`Ie%xp{wy9*ovWvj-CwHA&7F_Vn<<>S_^vc*^o^K?!52>h9#2S- zq7mW3vjGC0o^e$M%=svYUCHtE+Ne$^fJ6Cf!kgA>!|W$J@;XPPKhJMgOpF8{R}kjA z2^jR*^&mk-+Nye8M^9%Q^cX<}&hkFD{o~gy52ffJYje`A%(?K;^8iCc+r!vAMbTjX z{al`CpeUHP078Sm%zx3t0StT~)2?xQ>GT^7(cDbU6%X+^un0ubZuvSl%2imdl=;t+d_{II0Ag{x7Xa5AE`IWxEJFZOu!Av9T;HCIJMD|8`+C4y_;vWJRKNe7Q@lJ#eo+s60ew znloIE5e%)AgDz5S1{RU6bLx4;m&y|&xfdev1Unr{3F!*-|6-IKW2cAx4D^7C>H;2u z8{>2HsAu-79=W6TkxKn%S$QHT)y#Lgiv;)mk@@ZfJKb~~%?*25@s;GdoDRZApU*>I zd0W!*9~!{fe51*~9(8j=cDG3kzcG@42sKMzMwCOR7k*WCVX&q&3R2#_j!0i|92Oe$ z=7A!$wYS1Th{{&@_zKiUI7M^j$l*}Kx`^-4X2evspT>bAqNzs0To8Xj0D}z==eeL= zVgw9C(G|B9+pM6@Y0;s+dlr!n<4>^=+PZSyZy;1BG( zPM$t1o6}2GESBu@|Kz^x&mqx-(q%$%xlN+bL=K7sLi2RAg3`r<&HVfQe%5?ed?p26 zQ*op_9Z{sZUs*n=j1ff;A`gFAhOf%d+_JYp4I%_%-kmx)-+hMJcDxArcz;=}#?nKF z7}kPnYp)(Ka=8Pr*&j}icP`9w{J_-2G;TfP(MKBTgmS7f>Zbb7x>CpO2Up1&MuNO%`S`B_Ez^a2S_hW; zaIX=nGGGKDzhEG!p$5-RMc-;lF~VSZ`y^Dq%)49uqqhqKMr(eJb=Sx0(l?Ic8lHO_ zJ@rpaz%Ns2q;7M^JpZ> zy$HFy)V0)VH!i1IAB%EF_O967Uf{%t&wn@;9q_ zVhC}(uog$oG#WgKp0QMv5UIC5TtD0%K6=)*4TKSoYnJ!_w$w?xgELPaobT+V_{3~> zA}l^{lPg$^1T7j{wvp&HtoLCaa6+;ksUvTLftHR08kzQ4?jn9Rlcx~q_QTH6CV6OK zZW(37ugO-B5WD8^z=2DTn>p40tG2^*0vc!tSos>%lHE4{&chDf&2LZt6sQ&;Ah5yGgi%?9;GCJ2zJ4#eJ`@i0ueF%*1W?`=p-}2Ptv1+h29@@=X^i}7rQ<_ z-FhWsSCRb30!QELR_y#eoedtjM(NS4KFVtI?oOJgUQDvq4}ON?u?MW{Vpk69S@C@yof0>%|axvA~)$2sISWiRA{V0X+MTzVa1t&xgw>kNW;!C^nmnsehkY)F z-@u<}@yup!t0FIaKL-qmXceM8OTKMayN6h_0c`{%yzCwJiIiBc>~T=`9V(}_ke?-f zL-R*2vXJSGi&h9jSE;a9;6R81m)+CnPGn?%H{e2l(#2nM`xwfy*5b+O1TnvRjEEr! z>E+|MYj((DlYdMSV1c}r%0eql)$qnIG+i$55@4NyP~D?z=o^4dK4pq%cyfNJS|}O( z7tQjl*G+W~To6*IhB_Q`#uPm?LA2V>g2sh_vH=gWs_)z42`06!KL47+62vDcUUgG}0 z*viNQK!NYK`|b2z-CIkX)&d8C3tks<GSaS)SQ)^V0v=BZxb^3-%NW|_H;mCLTgr_T)LjCs=Q;EKsdjOd7FqV1^| z1_o{vFVmZCx7ry5Wwq`3udt5UF%i>$W*gsvKtncW@x`vZ#aRLrpY)Aml8@hE>Q;SnRP_-E^-VQ0T7>aa9-7gr zo$P*Jjmt@>4CZh|d%9OG=$-a)>d?{ndZ%u!+? z|9DQFFh^Ru$Fzrie--Kh2EKt`WXEo^|P*X;9Q@8R3haI_VF z7g?Gv+%EoK+dq3j2Lp3W?Lv)V#zw*ZAc!}8!3id>-n%*IQiaC?6%igOG9hrvv7qvE z8KZ@=vg-vl-nHev%aG{Uz5NoUd%z%te_8?ys1{ua2?(3}$D+^>gs5lZ5 zwa8EqA#qo`-2x00 zhv>lszQYi6;D%2H*N2BBPFr)#&ogvY$3C9b=XK}Vas)yZr|**A(^iW%0RsRKnL#4~ z3!D@4T_Pd-^H8OyhM+@_J?_;c%Mki2TsK7x7{AvPkYrV-{Q(1(KMz<08mW2dg+NsPLzAgA zg$GZIM}?ay(BA<9+e|LPYL&x%3L{igTpP2mE1+SWhmYeVU|{D2bwpB|1Wbs?*;}{x ztcHttBZ)=*cTy~Q-&>2{fJI+Lw`hd!*Pd&Xympu8R?u)QLM1a4M2@V@ZRH{>nT383 z^FVcKo?h;qks*`8Mr!Z~t`HxF@fgay11J5^Xne@>P8*jFuR0>-MvIK)PkiGZ`d$=^ zCpjbFBA?Iua<*@+^jpj;{&Ve|kFNCuJl%7-s5ZZEdq%~ShOf_PU!SX$e6??KEd0@N z$pXzaR;&u^PzXG*cRVmXM)h8W6VdT({XMevNQfep*Q9=Nk@+#{X1a=?AOaY5JPp|s zNcqY1Xbs}OXoz@k$+b{fWXE&X0z!%Z8AsR7#mX8;}snFM_RX;&1ZA zLrp3}#&C7r)ZgHRrp@R({u0PZw@xvO(6rYxzlLp4^^_e)5D@cuY`$v?WJpl^o3VQ-BrR?qz(MQH31*lARiV0KKG%*un{XmeZ24x~=-Q+_xA)6@e#%Q~U z$3h#JwnTu08PGJhdgiQ>x97#)0=%zn+={KsdjDkxv+JmH^M9%#s8HV9It@^$x@-|1 zosb}ZGNUNt@LyHH`hpaQ)}`R7`ki;pw3-k@e9(T)iEH}uxwSV*KV{$gPh%c|1#Y@$ z8Mg|+h-;BwyfDO6uOgE9bER3sj8D8$>GX&p-D zI#=6|vuuPk|6LLpggIETzi9hzlAC%QewFjt%KOlD_>I*nZ);X+fP@~zPvRUlk+>A# zf(81u2XI3FlIGq5263{bc2HXM_tEso_&>`b5T=)^P{Q)Ww3u|!c~|Y76Si;=)n1vO zXS(wUg>3e~di74**q_ITmdGOm#Mn8A+`)1wJp7aQfJTy&{P2kA(1dQUQJUL#m+JI# zzuYM1JbTr7-X_(upAlC1M_96(rih^xr;j*~sEt}j9Tu-t#k2%IG{(x&j)!V6|5QMM zAnPG(p-(bLnuBi3WT$&j3}Ge&LJ_HTMDUD67NtPj>B!(+HQ|~Nw0zdi=__JupnU4^ z!Xblap^gU5dU$7Td#qd!YHdkX$cRqODeH~lZAgZ_SP+Y^_e)nUExowD?EgAe&1C!B zZM%=L2DI%*Zz4YGHs|M~t;}8iTOWFtTmDNGmEB^d{|iAZ>x$rrWB0&A18j+-D>G%% zxZ)F#QNfA zxk~F(_BY`a`cg&40=U%L#Nnu48cUZ@Kq48jc`TwJVO`b=fE=@UwG3wkCfbLE<1BHJ6= zItU`_3zw4b55pi@JzX`LLQgRL)a5sSQkvmE(soF%5EM`fC*{kd1H5ABRY zVI(3C+56x~c+xeGGu2H+&xJ1S{KmVtF!85pbU_pJCeI?F^5euwRoi%i8{_!GE!>V2 zq;FJ3qCJr!zmIe5h=LK=<-u96zkwF!9Q~hcA^+8WrU=4v(mIpW`U>le57jp*JP_9fM`uNtp zEj^W6cmB<;9o#Fge+bUF=65AkB_G5=<+7vA)#({`YzvIH;USxv<*UL}gkJxdF%CjL z(~lpYN23lSy{r+0`Ol;=h;!r!?j%)&W8K+s(i(3wUmutv`Rk>0@YDD~9g3cP>Pz+@ zN0)5@1PYSMC*m*HU<4`r>lJOXT&;UQA{6>&;=!|L!jt#nqB7$A3puW2c+ol2^{c= zuRH`aH*P<>q~8TBrE=jABmoXXUB&-i<4ayNkP%Y4?;11WEnQKq-q<3u#u44*a5iqI z;6RIu#ozZ>(AKlxxrSzQ6*n{Zm^D{xN<=eRKkfJPf3|`he1}jFm(arv%KOD%si6>G z)wCN@##iObx6bjBnp|k^4bgx@Io{)+Ub2M*G9ZWTt2OeoHOPXNk5eKDEzMbPD|cOL zO1!-m!1e8?t|W*^png4*U&AwFcAR}nq(zud10C%m4p_B5>&v#Hu2a2E!?m_yco9TM zr_!7$?>bHQ#*+8syvp>q9jH1Sfi?G9 z!279AnScTt&XX~a#!QFU{!=Oby1Mr5Q2+>WRPVg>2f6IFb4ntUM!D~uEVr=ffj!q!7xd ze1_*T%0b`!P3ae56?x7tan6#*Fu{e35XoWpHE!sa`5Gm0=6ebG5zVk-1TzTR+%%`j zctH;^Aq+%2XWl6^PWlb9sSsA?!b-|IpNZMf>KSC(J7;2bF3l%*^Jxuf6`$491;xYq zY@P8Jhm?vCiq`9yHQ1`!Y7}~#w&%IJxAlZP$=I*!feZ1N8qN_A`?+M+X8)_D>Gpnf z@$S0VR^Wv_rF{;o8}`6MLnLJ%*Ls|L*Li}DL)Gr&_)+sq8!*p7>_iCo)GHZlcEoU`vxm{S-FbSOx6Tc`>wDLF3KN^-XPG^9H9qFwk!~chvM$)I`&AyIQ!<4I z^%i8#*q!dT=`9`^l=e6K@DM$m@i=z1wKCohwv+%uLUvov-ph2qS|tkTL%uS zz(R$_593P9N5WpYoOpa+FUi*ZGZu;~=0%>_Qs3uww_B6eg@dxzk!#;Eh!E+V5fwy@ z*F}^wu98}YFlh?3~dFA4V zQ6EW*JZ_Gk?nt5jKONa;SJxDeO+mA-^1E#~=@B9uh=yqjel-3b+^(quN@xGCcm1+{ zgYbJV&x>KJh=Z=vzj}v22!0l}tK(T|dchE4GXI9x=q9$^>y>CluYi$Vuv70ZxV&R# zLg$4@+G_sXk0o~CBB|c+c8-*fBw#E6!0P^vs01Zl*uX+!QN1OGrL#yxDj%!NJ|ZDC z@Xdn zIh_*)_7M;;2xDyVE~_AiDnBsmy8ec|#G$(FQu;+L1a`A72rRIDt*-=pDmi8r$&niA z&rV-$pMQai#r%J9_^fb@1rWOk>FI=Ww)A;U6U@Jfn##sWatPzbfg7j-9FI%)sRMb_ zBESSQVn9OVwHJLeNpu7w>A$p&34J8?s(7SrZ2dF1oNyub^7&^sk+%n&5GL_nXFG^* zr&vgbOT8bA>Au3}T&|d#!3v`~b9-$MLjebP5L}Vq$wgk)L3Ig-2P>z40xe!CUbXlNDC-F$l%IH!e zA9Z`mCmwU3YSF}q(rf8lkr3HPNxU=X8||VI?6vi(&Ip12X1|+Q&MZ5()+YEW^jTYF z_SrQa2l(3>)ipmZ4of?6x<;m&g-D20acoxqVHS=TH*mvtnQ(n(>hFYozfoOCD!d?v zF&?R_sEtQGBMVO7UK;-W7`Ry`3?I-&x#c3N%b*dKVEZ*(nnYlB&n~+TXLIie~JEuuRePTWRwL5kvJ zj$BOw89+hNJuezhue>zqL^OwtRbc`ioRjVzBjVJr?91J9wdfUptbl{$;r*l@^8^Tc z=Ughh^<+Uedq4fC+;<3rMKgW0wAESNng|mx3zO$I%qu)ofFVnDw57yQ^uRVf^?xx|f0&I|x?gPAt zZZ%HjCLDc~%=E6}G_?GKJ@td#+=u@EW*cwJJHK_W$tovySOgmSVH|?$k^&!$>VjaX zN;*~aY#}!=RMc_L31&`MlVTVs!llfEBA0_+U=D1IFjZ>V-Npj_&ZUU2G~s@{7;Nrc0FKKB55yuLphGvG z9AB{_g)PR#wgf%UGo7hGL)M;OA78kAJhr|6vaeFr3d+vY$)6)Z4haxeZ$ZyPnY)(h zyl|u#(G~qDNlHK=x6b+S7AnZSx_^#p4~{Swc0N&nAu94tA{(-W2~nF^;xKb_6Brh& z-rXY=g@h4;eXKOaS8}w^*4_G3A=jKp-M8)gw~NQbMl=wt$eEXWC7@G*gv;fBvs1dW ziQIX&jq*3>tWUh`v0GJ`<)0?I5-rBuDyL|F5e*_cm!AWVo<)EJEx`LC@wx>MnMKNMeiHYT#*5V-m;TA4yCNfXQ9KY)Q zIX5(S<`gz+@-NpU%Mu1}A&+Bylwim!y6|djWBhu~GO2(;p>xBx^lv&^&_j~pP6%J! zSOw$#ABE>PS88TOvz-TEILpa88yeb0UCGa;cTJrH4<}o-xSgH^79X~fQl|MB;6t^W zbCmHuMSY1sS%4r(;4DA3UpqGe2>z$Xm9tRtk(Gx(5ee_@+wNDn0EIpL(RQpi3T}xh zOTTU2-XN(SIY|GgkLpE>=?yOGd?q^DE|p9~*6u~+`{$IHNRyNZYohCy)t=?_z0a`6 z2jA&3*`r;v)=x1i?|i1Pye0E`nbOek+MxG-Y!F+sK?fGU4zZEveJ-8wOm>z#xPwBF z%rpCdAn~oSb4mzn^PPpA8pTS@R8Pw=2pU-e4)-&yjuyfoeG;?CJjLg%qP}o>7~y>0 zppH(Gz|L85o-Y3*FUXrm6<_=PWQ4^eL1V(2YA0LwGuY@?=Qg$mrGW@6AVZOiTM z-ssyOnR}QBaTXyt2~KRS(L~>8@DN%0I!D`D6tWyeub6SutLBKef3&RPAu@S0Mrp@X z_s_hzw_X5+ga%vv;Va<~KPY~A53Fe*`}R5<6VJ8kr^KtYiE zBN5e2j-NZ)0v+@wpFW$HQ>oC=>rH@#GX$})qqU@`J?Pu4l)Fvpr;v^4`{}WmFF1&C z6c9gcY>tvRK#S~0R7WnS+wsa=V!;KDKJzqw4b?YMieHvpOSfXd;p|r{T?-D;VW&OL z(Y4e-gx=vsuK$vYRNUmtcBuN!H+PHk-H;IXKxme0ZWZjQmH>p0fl+2Nq?Tr{TkX=Q zRRIFGS@bYLS5pKCCg@~r7QNdV8Ae&4L2)_#*6KQ@)$$=*9@W@vR-5BS^bM^0t~#7> zAt!4h!|5{WUjTuky}76eX++r}0EMmC2xn4uTw^@5dlory7_eTiS83*qMUJD3Y0K-p z_<9pl-RATnf?5*mYP1OSd}`eWD}+`*HER*Uj?f6vXyQiC%h6wM>eN`o zcrJd6)mrsp@OeLNxFHsiAAj~6Sy~Z`L0K6jibDmOuUdU>3(LZMTGE0ax>fZ5#R7Sw zAcq~gir+2>IkAEU(>g3N{Y^d2>!x?Th_AlYVCPt)@+lsg_EnC_hsE&H8F^zjPc!8n z5;Ju;ZJTyQPbSFaZE)ndZdSYm4wPBIL;l(*4OpMUV2DF)Gw;Gtcbd8iOgqgNo^l>z zHxrZs5v;MAyxaoK0ZEshzJ~VX5v9{^C=!WlQB=fp6@Ae+Y1zAgS9tX2h#X#thaZ3#tz%F z5gXT*c!-3D5dlnisADG?@4rrmTYixkk=2#wLLQM7-B+We$#r|n2&q^Guai9c&0i0; zbf{`&hE$9Wv_&SJ;;7{4(_%m8fgfwG{f=sh%7qbDuXuzzVO{!u*XJMaa@Zq;(VGy% zWaJ2OthT&}pb)_R>LY>T$9-8udHEA9%vRp!;wp_^gsoGg8{eb3!XReia&Y_Y(2AIf zrIrC9-)O=k{Q*J|0g{GmjdYB)QtX&KI|4;JQyCqy5$|yj)lt!q6p6kBu0AK_5RuPF z#Zk3xQ$70qw;NQW&HEc#V-gxG>~xQcMnevp?d+Cp2tm!m9QQuO<{xjk2of6{L~^1s z%7130+OpWdQga6X=fTpPK}7G#TWv`wBuZra&bw~0P-L0NB+sZmhiOZ~OwH6DS0DsC z2W5W~*Fx1!wjEVQ?`@1k3!VT#g7e#|Xy$xo0tR0Hvu94qB@z4tF`(!oJe#Sekl-OF zsP`0Uy^+?m*IVQf2Dhk5ACMrgFbHus@9|rg%`42Ua&AvDZ|=^U;BA!3dZo<@K4aJ* z%j{u<;C)>8w7HQRXT3kS=V^vWsKxBRX4_-3X=m&tQsSIMUOx{ydp(2wp7xc7V2DYk zyVURbj8{77x~_Wv9f`Z0DeY}OiMKZIdWl-+HC5dt1V3lZN~;_4pHK4E*Ve%6Mut@9 zTNll$Oq6Byc8>d0FZKIG9Exlk&v(hEf|ggd`*;Ev^l@zDDc~V3NAwV|Y~4i{Vy(jj03 z6Tt;8_tH&75W9^V_6|*ckUa@&T@@^NXv-ck;k3Fv9aya zJ1$#VMfX^c(&ZJ>`l;4OPsiE;2arMO(+XpX?m_f;b9`)a+R`Bu{X6R0>%jyyw5eY- zpN_RpWR8=fic@XpJvspfp8aQrod5(ZAr1CBe2ECw*#6SF66;I}%|-pF2w<30&O3mG z;T)8_<)M$rL^rZfzsxo?=Q`|$tbNi3SfLO<co5xg?0_uFmX0h*+4kpNNI(R7;1`$gjWUQMTUAJ)-^W5qJ?v5tfd~^2A!N%zggU z_QKZGBDdytZ4u(}=4}E5P0j4SA|_h@*V?#_?1kt?V_MIqxLG;#z6saq+E%w}k+G=2 zZ8P_qX`vk+)bGh})MxvyzqV@se*J2@pdkkq^#Jxj*p0~n3@ZlY%mc-5I0#SEZ*dF1 z!Xbopn5SLXX+sVZ{)3Nj5sRVNT4`cC5fqL^*&;|qjfVL%>_~;O&e$uav# z2t`QqEW#VaRdU~k>}}dVMe35DmVA$sNb^KHZM41Cf7Y(cMC8Ie{utZn1a$4rybs0s zA|fDDug1q^pl^r$B<_;{hhzjHBB&aQcFn8jN-TUgZ&=e$?%&F8O*Fm66h&x6cl$q2 z?cI_jJuip%1<8EPH0`RXA8M5}MW+()BM2j%OR~-CDBQlq56j^ZCAX5{_+&(GAG~5X zFPjE#NQa7WkIobF-BJ-($btqtU46y(ED-IU>H-*6^F1|qRb9rhLwpEk0SQwHyNLvd zwUbiUf8IK*7t1;j1U26drAi`7OMj;ob_bLJbDC7i?Py_JYcKsc8%vw*fP&;L7lC?B za}e3-WJozV%niwver zr+xY2EuFNDV=rdo(bUm$a8(U>j|{&l&&Au)h;YpF@AvGeg1blrKi9nHr74HsoR$AC z?w8lt`qN#i6x9HPn}yo%sY5IT5OsU)9TR7w;+naqFVbisUwpI^uAVl8Lx{AXuhj%S zQagvVtZLrgB3|vzdOLF4mXU2?!qN@R|M@gWFC;}aGePBa!kKnp?icL6(Cc`QD^fcxX+WymU{kFO)_{@cl zebQ;#gP5g*y4L@@y>=FYAfCzs8E>-Mu9T$jwI#qIOmWxpmT?JTSO}Y5dc+-wWR{%w zTkRA65&4aO>Rnh89PM@=CF!QUwT%$1CiGG+RdiL+*JiSB-(d5QMKVj>3r_AP}DLW7$w3l}jso(tfiz*Q|Wm zvu|VJWizyMAD86<4p}bDPB5-`|iI`ARfB5HE?0EFSHG@4`nWeNsD#)5)8yEV%1#<<)3h5{C8 z_AL~i3;jwbLzh#>%0Dtr+*C)@1P_ncw)DT}b~y}(5fH>(oiVuGMo8=JK^qN~f*}&oq`QQ>#j{``_yjT6M^dfX3;cW#-v2kL6Iq277He$=`RFDU_0$ zXrE(o%**k#6K9@~*kyDREj?xutSO4dPyKtgFcAO0QOs0%Q2701R+`3+cYH+H-?)#v z{{N1CjRjW`n)L|$SD~M?d`iELr_}3jk~sC+#=)Y)lt+s2 zm}YfI*)ReMr=G5wGw!k)t08}%JOnHG*`%2ShqqGCc`vXas`!uCv4&6($m0P6;DOtX zHo69D?`{+M9C|qK7907%ywIO-ac4q0!@e#{%ORY90Sfz0I;eZX^M79hM8h4tsf~5dhYLU*j6)#tRwyM@Oa5r1fMGr$^;%W zbt@SKO6he8D6Qje>^#mLIk&5FCKLoeUvem4*KSktgHu=tN+{Ulb84_kSoW-GSLab{ zclx;ENM z9$^*pr&!ZXXLW=v9`Vu6H)r1jItbWIUIch$vqB=_A!yCky+zNlz`9>IJi-;M-;n#Z z6(ecP-;wWU)scldB|A~e4prT*DWcM#ntm2U3hrn%0odHX#H@rIj6WYcNi>^ipGy}gUS|5CG! zsSk1-yrM- zx^ftCEgJzF`h4vdoFSKOV%>1w?vniB5@H%Hk@_Dtl96g@Y!K2Tv39#>82t^}O$dme z1|mVH?3W0PSnW7crMmY|8O+Z8=NeU@PF;Y4h9)!tM}FBwQ%3vQ!F1BR?*Qu>>Eb$R zAw7zlcmV^}o|X0NEecM~KU2sZ1nZpRHNX(tT&XO0lQrQ&-QPdV>Z3w-d`n+fI%SoQ zbl=I6(R{6L!Zr{ORiO>ro4|+pAC8PinImVi5n#*+$%y*(CVk(b43{Av3r5;ce?J5x zR>6hx()%Ji5S+X!Md>2gBHN;GtjWX(rENqr2<9~iu2d@TNtsW0jNF4?>^s-~tDLA&=p! zXo4_I`Fp@ZmkL=m1gPRiBGNlxk}eWdidrr2C}MsS2aRxg4)e2mW$!D8)t+p)ddsE1gKe4N(&LnEv}ji*AFD#laT z#8~;gjScpp33`>uv17K$3>}VU3`EPfibu~GjEux@C;9ef`d_d3A=ka|I+0BO!5eG! z)AzybhT=nsXFLpx5(zM}dAep2k|y{DvdaAiP~T>`p>{p9pHe zLecXNs{+IV9Vjl!HQDLjmM4cjWgs#E4?=d+3SOM)C3 zYKh)b+@IkyrzYHj)rXOWZCa0oH^;TF=o*|gzI{nfkxx!-UNu8TPOO!qsv6zkY*^vs^@6&Wl1it1Z0pIEgM#bmyv68O7Od`@u|&0W!C z&-{_^^a>HRd5k5M<}FBAMjrs{)oQqJL0x=0zB+3w{~0&oj-L>xZ*kspB+a`$u2@z3+)8PRMqE>KIXtH6fO{k+El8fduR)@!4Ry!gAX zEbr&7!2_;egNQ*3_lyZRwFQo`5Y0&`gFI}%gTx3KmR1`j84XFLaP@efq&H#2XzyyU z@S1EaWOyOVGP}mK=9}ZO`d*YT_iHQwfFNXuYxp-$$N3@;4}Q*yile^9$#%N>$cA#r z)x&{s1Tc5Jx8qvT>61`G8Y(%pNc9MTP6~0?it`EOjK0{}p&7GC1Pa7Lst~^o1*GD_ z$z3m@5a4D_4yp~WS_waWo(5+Od6OWi`0T0R*oH1ZDdS@ZU%8>vVt=N+Xx_UZCIOh{|~uo zT*FkI{hr3hf*Bp=ts2^^n#;xO5%peDKW!A5j;lR8&>)m$?(@cS8PDIrQ51x&5Ft%~ z`2^4iW>&PIhe3cg7^=V4q{=|4w@ocB$!j=3hEithwp-yK*i?5rG0)T4o1?Y%6`ygP z(D}M9f*^>2&a=m=SdNv*xhmf?NMdh8wz0!ACd<&JKu2+cjz zcOo7(j1}-eis!n;OXr~uish;)wDp$K;cy66fQGlyC`1<4z(K5p?GLi%Pc0@I%GmnJ z((YWk0mMW)n5S5f&(}K_S=uQkyL`E?r>E#|wu<4qAsOvCxuNiycO(l|J-PHJ8FxmW zT1CxAHaQPWgIcvL{UTmQX*sF0n%?%h+TVCli0@x3Pjp6rSqGo9-$U8;ZM!vkKItGA>ZHKP&L?DZ6=-|Yyl4af2;&N8NZwl zgK#3#%i0L({WE`dxfG9${>#F4zzC_w_5^#xZ2TfFAIx8gB73Ps%zf{|IpR2VdUq%3 z$4JFCi0HdAw{S9Zmw$Kr5aSWE^6;!puU4!8izh<&#&5pCzzEjqk{=Q>tzsO6a-Q_I z@9#6`^AVrMq&JA|?B;J`F2B#$(|RGGM|?wW(y}7aY7wB>Vp=fYX>^Ug`eOZi)p*2Y z1ZXWYA|sooep-rai??_~ARtHc)qxRzz`8^IfeB6q%IU;V5VEyf0Rr3~ipSm-=#1`* z6ovEzIA*`an)&zMDNnC+lgyPh#Pk4%G0zX_2n_0gA%{<&?25%eNp^EXtG~9A<9DZU z5On6e8;(x0#OyvPWbhEx(I_2~>SdD;^}!3hkIR}SIo2#*zq;?*N@mefjLpa(jspQ# zg9>rR*IQTFzlL)&hAv;g^zeJId1;>V2bh?h5D@0WORLE3w8EiX7CGPmgIOd15Jdq3 zIYsjkXbNzss`7o89!=q!uWF^e}v4ohY;P@l}LZJbTB(TpAIJ)+e{HjNRzEyuQF*J(^lX7`$CBO z=Cyn{cxfoTeCLl?%bs<`?(nswhM2v>c7R13NBt!UrTT4mHur{6Eu zSRV4eXVpLXjY=A!aEN~9V3|z~rfKc#(#>-1lp-BZ$-m+Ee|MQ%)4EKapr-^iarG7; zfFRSU+^s)R)E}1D9l&_ysx1NzQ4n!AT7-MVvTF2XLQ$3GYcjVZZU}hOqBmRp&pv-~ z=Iz_pA58=a9(Wa#ByTh9z(RzPPlU2@=K%!bDaAT_ng^NS^BllH2Q#s_OI(Ba%J)u1P+r`m}QFSExa$yX?RpI^mwsH$a)Ed8Ot5iwHz$*8zKcErpU7?V5iZ?h-mT;_+h=H&OR+)vbA};W)cKN#u1UxUg{O!RIg4E8clFz%}6fL@Mpl*49A*IU! z4*YDzUt6+MAqkbZZ2R@_2yF<3e?22z)+NF{T7n_cL%4c(zjCig zyFXw;8gd8_jsz&0A%)Yrd)FntrjUPI&Xc)t?^4eiU&GiTuU^GTq(RNc@q(@7Qz_%c zNhm&$XjFcJ77TO z-yjH08@S+gb5%H5EB2pv4}~fM7>8WizPCYHaoQSm^Xpuux*{6LyxYcP{3$M_f#F3O zbwCJeZ9XnIWSg^bkL;cNLdDM^qmsqA^_l*X<2H1pLL0?C!G9fr_-9UvhwhQ*2C!)@ z&cD4+2qFIU+Qi{@q8i#-bARy-!)Q8{nn7cIK zDr;ABYjxhW06^>n3y7IFtEW^t%hu`!s4zkyK1P1hb3*LNA(H2H*hE{T1Z#2qtk0$5 zt%GsvZml;*YX4O3YIn~ac*Kk=6#FJHN7~3q0D`sbRW@W-;xd>ZC6Sa6fdhv72tnfs$P!H-t{_{B^Ir3d+9a1*zXjx5p+l9`T7rDi{j#1E;{i} z)&;y8jAfwW?JL@G^*zz*Cskc@<9B-LsBLf3cd5sB2T~?D@_zzRn zu{1fG-*C#40R}}ipDbdw4yx7dh1ZeLL>v_rmHMUtA>b*lreIocF2W-_!WwRJ5%fK>%~`KzxN z@%y{EHIuaDb&24jKi$wlWIAar<0MqWUjn-F`e?1olBhMeEk?9eO=+t}{tbQ($gw;4di2C?)Z;tXzz97^#~}R>?8HOqQbpA! zZ~+clHRDt-569$aY~Jk|l-#6U%^F=^0EU!Z?B8SMyKND3#_WEgCpZ~RSAo&#oA=`F z?3pbrS&aOeJA)@(?>plMFbR3%m@AyYj;bmh; zfn}Q5u{8+PU0SsJx=aF4K|RR(j{p!`Q4!c#|m8s3GqB(P8d z2n5wEj5G@oGR(VhE!t=RAXWOcQYjnBuZ`Ap0wh2gcwb+@dW3 z1&|ORK+2GoLbd*qalGal)0Eeeh;7hpzREIgW@{W_#2UU}2ofiJlsad8Y3O%5<9zDb zhzolUcO5~G-<5x6q5=|7JE&$C-aa=uW5dp?$AWoRwyE}35d-N2rDw2#3ESDb;C;o7FYFvrLTSAKhl#s{2BINbQe?Pr zA{O^V)a{)-6F532GkPN#Z;=q=OSw4n?IJXe5YEp|^@nj5|DT48`(eKHgl+uN?z&lw z7J4>y9FZ&f?iWQyv6M<0rS5KD&^rb*jNh@NcFDsSs0beKd#z38vz9og^gBr7kJ zNMfbef5pNeX^!XhHnZ{)%LsykxfexVYGk1d$EByNkC*bCszGwBBjzmf^;;Fu{8wfj z!3j9XhLdN33&27uOgvrgVvSc34_G0_+^20QJka%=TFa0@PnqUgvQ~nHcp!ujbh}z4 zcOZqd5LukSy_m*jCZ`n=q3^(szXv^VMDa{@*gW|OS1oD&nN0u?Ra&8T0SU8hxwxah z5${#r@Sp@VeRgkKEnpzAVk7e11roy;&+KN`cR#{3?!Vnb4H{)5)%m62X}+|HzPyzq zDQT)(bB+QjLNy+)90P8m=cuqg{;ZY@z>f`>M2^!nXm@q?2-ArCQR!LA)ZmJfFPWUi zWAjnF;-7_ByVv;V9~zTXh=h?rC+Ht7mTbDerb~qL-pkGSz~L;`6zbSisyXHKVsP~N zKD*v&zZ;288!_PSbI67@!YcAfStgQfW#Dk5c{Ol(WTiI~OuFG=naX#d^5by|x32PX_i*NIucVekyqh0re<>%!m zxm20@k+x{kYc+1zX%}VmYZ=)d;Z37)%zU$b>bUgMEMNL(;DA@~GA3BpSfuR~0D=AG zJvPfCM?vQSPQq`JC1Sl9ffyrj+9EnaxFfwGuin!4^8zO_qAr!Gc74E)rn|v8kN619 zh|?r5WpiOky{bsvR8Fa=@mwS6`XoTR~MA$2x}3+yG#A6Y%-`O$Q+AIeLZmCXRS^EC@X*e(wcD?8ztcW8!+rjfK-QYrK5bFd< zvsp_t+5A!T;D&3!2sMC42t3^@tzd=V5b(=8yChjx&Gs>*>{IxoyD->ObDMX4Wk2Gb zh}Vu*4z~tRT!6BZk*R4+$$FeH(g6eeCNL0A-0Y{&bLMmq2@p~yYwFw0?${sCA3IIf z=$ZW8+GmVJl16KL0h}`;Go2h04GO`!fj3ZMIy~)d?+5SKJh^c`v(hy=30qu!_MO2I zjlt1zVn0&iA269Nyt z=KomCWy`YzHMzd_BUf2xIKT)$m`WjoNx`qmS#i&9un(df#Cd51bEt#G_4v3B#mURhak%S;M`T`w3hoP zU%L(=vhinku-$uLL)^v)eyYx)s&Cl&FP_qZ7%$BXOtxG)ogMFkSlzb-JAByP&e|UA zB9UF$Xg;DH#AcE|-WOVZvJVv%nn<&1Z)|Ya*Zjze&J&G4s*y*{Y+>1dT9ZErJTF4UT$a7ZVx6b=1k+>s;eUe~WXd)ksH{RO6g%YK5 z+j&78Dm)7Xr86A%!#^>sC`Q2;?g;eYe%q+g3Me9=9(UWl~(d=iV6 z9p1KzQRn_2NJGc-(GZqC`TS`k>W>y!d0#yYkLuduetCch0Eb?aC#!ji?N<!_8n^XLp@dk*Re&J$VY0^(jyDdo!0l=(bX8heNr)Rr>Wp9drmrildV>J zGgjJ6;Sjr0Y0_MF_yB>I!^#2*I*I;{&*#Z^rCk@Z?^PzSzc^w5)Bg&qla=K<%?8Is+tyXjprUWZ?8NS}N2MLsNyF%SvuF!9BVC8}d zcB{YXvLPwVwWZZzsB=vGj?5^Gmf|wSp(Cj}9$k9LzJK&2O+^U5QaW^O0NnG7gAsBO z^yr9*uFz&|v_|`!Fp8C);3IwZ!O*G+7fs`S0PJMAwL z{pYJmBtk|A-{>1y*rEA%-Y(taP|70)kk_q>TuzRt^twB4QK>;`Q+%|&t0cN*7TKrg z;6qFZSh@lq3?M_@gPNnF?0H>CLy=FYrBwK^jzM&1v$~*|dP>Mrq+wy5#w6_C!zWK- z$4%A3Fhs`x3){HhA(8R0=)=-Ev>kTOp5Tjg5EzZSHiRJnwkRy~F8owxFIaO_ z$Tm_wPRxJK^sM2MwzC{I=KUqD`kBR025?v3ts@Di>X(UBk53sPRr~}OU_e54YTg6{ zHg8~j75dcEibe?|wa)HU`f&BwD(6SeA~VT`b!yaKis*`U?v3$wJuXz9Cfn6#xs*Bx zPBmz;fQ4@zArL^$2y7AdT&#F#jelnR|138Hfw!3HcJZ;B8=l_hnRpRFM0w?N|2PPj zm#ZE(Nr-evnS&8 zJrN0-gkK4-bL+_w4(S>-5Aus7kA<8f8*%mKC0I5MRuO*rtPfHbpPaY7_B_lt^W!ZV zDXU-GhCg-z01)1vQpgeivjV^~4bNBDoSQp^`QWG~%73cN ztV>D@A&jYR{h}b_0LlU%7z&(PT2mWb^499U*-_XCNruXZh!I1;=qKyiU2Hb{30_mK zXA;sdUd%|dti1o`3`VZxkj&iH%GDjl+q*_2Z0eGoEYCrr=hl(2O(a@8I!effjlXB3 zL>8EcZp>bHIAVU}4EdMC9g^ne473Cv&nht{6boq_r=j*)cbXS_4ceyHp3~?|)n3;L z7iqk`e8hia>0dj|w-S)`N=W{th;Jxh{k#Zh!G8!?*PUoyF&W$MT_J8$35Ua$al6`c?pytre;rez8Y~`nZP#FOv$}ma z@|AZZ{g-7&$4Giz2N81V$@f{HL1kya5R29Ou(rm#4x>-TD2P&p5W(KVR(0*L(lP8&z3~^h&(}OgIU+hCpWGwlB7@jj5&{)}T)epF z3eM`(dTqjKg5_S>S@jJ)m2t-RhoKDeA`pd4(F%|;ix@g;nY8Jh@>B>F|VVs-08 z#^)_1fy~8-wBoI{feyz^M|*odBG%m%|2kM1?vS%}AFrOK;34_hBOm*X5voYDc-!YX zGLYUoe0oQ9uEW!huNbRBUr%%yavO2=# zWar^nmBM><_KZFGDAgqi7b}jiVU697fJWf8A^S>X&t@Y4fkU#7p5d6o_+r^dZ z2!Thy`-h9K+&{rDCs*{F;-gbYI2kJ{Iu{<;kdo*gekrMB5ANj8fI&KH^aMSyQ=EUT>2tdeyT)m7_5v9ig?@~=MDt2G z8QE&a{^e_vHoQujgF-136suNNTB*r}w+rl5%1aRlW~LPuR^nGkCF?T279BB;rjQ6} z|KBrG)k%AO4lLU#?q(o}V=dJ*SlIq1TXy@U(!K4!MZ$-n63{QqQ#PpJQ9YN$OvUg9*~2&)_)?(~s?;2N(7(yzG@{SbEYBAhI{ zWvwi}Rh@M=I@s@_I*uP~((b`uihP~|7eFAorwn1?R!I8D-oLX`WD&QG0RrDmm+u1HT>0EA?Dm*4ilgZ!Q(ufFc1skav+&{xG@ zzkq>uJ!j4U1U&nWhm=^MM`K2O{+!>$I>psHz|gq;w-9hR9cLS_&VeJMS)KRI_tcBj z%Nj#=gHx!gh^_hWA|7Yb99$_<-;Nm=2s7YwlJ;(@3fIy92OFGl5Mgq^-h7TAJrN0$ z?4xFqOiJk~GCzAG4q*cf5Jimo2nLZ-n3@03qVb7$M!2&+)MAi0341uNWpRpohyRzS&Y~>W+7YBbDIFi0<|Q4s|MW z(~fy~h!k_bRTLM6L_q@}T&UwP#A@zkaiRFJRsjhvPUhp5Y1v=cqpPA35RtYKVD|NT zlTAG6w0OWW-0SJC=%A+WZ|-B+`IW9hHgt^QgPk%^#4g^29g*&U+idHD<|kHaR%&(C9y5&uHq+k|)+ zsN2Z%kN|@Uf!%*P*8M-wb5!qNeJ+_}w5;p-qq)2QLTaN)5b4EM z_J`p++1+j|U5u50LW|;eGVDv9dcz0Kz@_*7 z)p**~OJim~poE_9xr^tw{h0-8OSiVo{0@Q&ARRAewe`k2LR~gIhuhx32o>QbXV#s}^>`+g z+Ml2>#6lrvc77$bl{gSy;^&R2{pBt&{~(J9jj3VFN>0W&2zSHmbTAni+%uCvk8Seb zeC+DxW_Ax$!yDfkE-_*=Fw>x`;LS|i2e0-7vc#LClLZq8tX6D=CT}r z>2A)vj}3mz(#s~xQlkEi>2T+w7taU?XO$|Jwo3^uatPe>9nF>XaS&Ceb#`L>_yu#E zT3@>i_KzE?p6#>Y`W|@T+wH38yDu?(81L7Yb2AxMv~eJXTZJ_#pg<7K$H_NK0EYvd zn^lFunM(3`Pr|VEbFpu~Dr&X-_7O1<^zt@im5zBrApJU3*vBpr1)va*I8?Px0Sda*R^^+_&&d@kqAhR)62$*$!Gxv5DI$_Iqgi%GG< zvox(P!O($TdqL+&%zjdd0oyPHKU#9HFO$cb#+Fz6#Ph%*C|Im$h$00jW<^Gxv!(jJ zIW$uKOix1$xVqiW!_q;SM-bhgxUjA%)-XB$87UpLK11)}R|GJr;oDjfBKdql4~j=U z1fNOASA!3wfd6l*wNCgN?iX&n0%u&uB|1+EH2=>UfFmnWN8nM|Pr7tko>L&pSF8_WD zz5TGPu4TxIZ05eoaCfPz;(Cqzh~bs74NY^v~0vU%wX7Ti3~T&S0mqq(|s>^KOTav zA>w35T7Qutd=c5ySpB!loF!xRd~CNYY)Sf>cwf5_`7@v(WFi)Ow{&Ue>(jNQWLOg& zP!RQ9y#R%3+8^fG282h55X2%P+#{=0xXOsf^mxKLzxAi7s_Eh3F|@|sP8SnWx@C53 zE!sjLyiOYijz7l*zV~;5C3ll#^!*aETbIPHz5xkDL>)z2pFwaJa5F-(+INwJL;cgi znaPt$CamVw5qvr)UEc!6TeL4V{6so)RTY?J_D|O5U+UlxH_c}AkUq*Q;8}G<(_&%7 zkkAm?gWEQ~>Vw=GW5ja=T0~iB zmth}|9`>t&Nb6@Ot2G8zse`;C9-l73pEt5>wk=d8k@!Z6ue@uHd}5r_2*^?4IXN4D z2DOhOt!)A^Zr{zuSV!f_Ygt$bbePxVNQM6f%C1i!g?D6!jIp~j)RcvX#B&Y5T-w)y zAM4)$A^vpIpYmy#tMype_$=q(Aq0-ZTbhk)!my~z^0sE=;AtdO9teaX%EW97Df^gr z_Ewy;^$*h01Zx>+QT7hE!oc<;J$-F&K!{p(1VGcR zx^7kq>+Blk+y!dBXOiEyFWAbD532Ek*2}w3dxSq`+#^|%IpQ=AHz{EpE29Kdazrh+ zhr^iQeYX|6U2;2`!>3CZId|A#Ue>5_+8=3^w6H*eJ%>*?>DEgn63w*jyj(i8f)#4^ z0ESaV$k}pd>@uGAxO4(4d&ZVO?A!>A73GSKA}0BXa%7*u?Vx|o4&F$Xd?a0S+U)-} ze-g)$i|ER%!29vqE--A4X#Xd^qNWfKpGN$-UHX1U$$0gRX{%SU;vvkrh!PfXPXt4! zblYcZ{Ewi`J1;&4@Iyh~Pm$a%Tpo8lO!cKqYgSD^qD7Ta`9a;~8HE`)uOrh@c9xr` z$Hpf*nu|@oeVWVn;U%Y-9mtcZ_7Tph3l2^mFv;$OLb-ehQdg^4^MM6qL*b+Jarv*n zgM&@=nH&_iCbfghhrLT0jB1;Yw@J;&aOU^QiTJA4dzTf|*Mkq+Jh{@-Gky74Yob(`y8aXOswYvsxk-To=CcdWLrFDsnuBY2P=-vYs5 zlj;w4548WJX}HvoS*Q1a_Px+Fycc3Pd3@q2&50Q=WgjnQ)JtQ1^*qZ4Ck2tuu|8}b zk}1L*?P(hPFa7J=Yk3?NUY8JvM9~oliWh)FVF?hJVr4(Uxq^rU6L&p*|9d$gWZm~d z(>n+E|8#cHK!df9^YGwv?H<;5hpJ$ohkyR`)E7@?K?^Rs6`tyI!~Qh^?oMK2R8s^l z_Y!=+_(!H_N1R0&A<@n!Us*`ud;~GbS1o!kjdEH;Qo;VdJP3bRyMyRyVW%i#G0kjQ zN8YS=YGC@UuS?QI58H@`OE;DTIhaU=iR(={?oe!>@$Vf(1Q%u=HBRBQYd>@AN?E_j z-c4nXe?!d5y9nOSglRq^2VVknlW*b~+KsCd|7P2j#qa1gRu+?AzEb!7H{gC@dDB6;#a zh)GTudf@HVwxutnwNriIAbF_u!o2*vzGX8*P9c^qO5i>sh=bbg`GAH;#rSA_Z$k|R&1F)S7!dM)w7C|3?l|i+`JMZY9uOKprU-AN?((hlASL+qucl>|CC_9r^jdM;hwYMmd{EBT6-^%EhqC@B*5(p#k zBiS1JbFGa63tkrN{+FjG>~sHXH1`+RZj3;M?S@WO@JH^c0Do|dHTWvuQ-2ruX5Q<0 zTr`c=fwhXgFSf3=KqOYbf+L?FcWxAXgpT!tcIWDi#7$Sd+&Sr8`&vW4H%O4(pnYtR zpf-X#*l#^v(jl6;(wCLdJ8*7R&S)#ye*Rem=LwBpmTjiY5ZtY6wHmFdg`Ndu3u34t zs63Ch2q&{>K?A0C>0k&%0EGwWx(t*AG|kk`caEwEcaO8pC?%CJKZllmUet;bu`HyT zzXp@eScpVw>9}z$WIGScESavQzt4SFR)QM9B_YoFJG7rr~q^&YxkzzA<<9TJ!j z{)=yz<-h0SU!=R15#C`Mb*=R8$DLUSK*vOMM-=dse&KO5u?KqST`@c3aO)>s*S-Fh z_*1sp#GI*KimvjJqKpvNeaM2Ag3hUPcCq`4?*G#Btxo>)gh1NP!dwI!><(By?Iu1a z=#(H3ddJIKfB^(2U=X>0iRsm1ICIq{-u-;X$w=J*5t_Sx_E#{L-KdLX_=$c!n`|Tc zBWos+@NEBhZn({0hn~dPjMp$nlVRcz!N!m32-U^9!sj1^e1vTTcFoV8k|C@^b_d4M zhTHOcwg#F&i`~a5a>HfVe)-=%+TD)pYpTc5%tWY-Uh=hGutubM1YM#4Lvk*A{WRm| zpIh9dy*IE~*Iyt>`~ZR(v?4tm6#89#Z(El-K*~YrL(c2&rNCZSI^h^6x@J6^gu==`a$Gsekip>d6yG^JFV4dBz>3RFQQzlyJhJYdSgOG~m zoU;Fkt^d@GsK)(E3$YONv|yc0`^q3|d4xM=9r)Y6bA-v@a-}dG4Q9uuShXa0tSnJ2 zon{Y85R#~EkO1Ntc~@Pg=*c-5 z@-vYN$U26(FV;5cU2amYa1ccu7^SIg>*;&ohxQy0KkC7`M9T^GQg7Qc@6F|4Ma%j) zpS!B!wrGe$SJzlh5eJ2;FW1T~&oA%l&w?4n32du1n`+P@KAs3v=RVn!Pl^x3LtC&) zrXD>)A2ImXq9Ari5Ys&+{i{FFOKV*>X(ALPLIU`jK!_p)6}H^6A+_4&Xex+=g|;ES z;)aRf5SzO3JMPqU)UYb39VE}&{AQa04JZgqYgW0SK(EmxSEcP6=ugqW%@}zALvcrH zrOX5;v2ri#q>2DRccO@oiS}BZ(|_P=!spp5svu=1T`F&wH2{QXl2s@K8Y%ktn)L>p zNZ&SdvNw$gi^t#3&RKJ{T1bbl*k?RC#|kuHo&`0+z}&@`6|hKERW{`nkz1NGZe(fFbou zK(4j1#iSvmWS{PIP9hz@CRx=*cIMF+etG7$HH4W>A4?Xl^(5?;606nF{?39Q3x)@% z|2C0C;34Z?X~+$BmCF(Q1SWwC1x}-A$REnlll0e1SSCtJyvC%x<+#zi9Lgx z(;^*u4l{HY=ZU+C5h5ck3joF^ZHmIX!-q4t=|2ddXQ%G@u?o3X9?0$XXosw zWgDtW?M;eR?OJTq^3%TtI)tEgoQo6B4@5(hnPS(%p8*43S7SdHy)_lWFk)gc(<^ne z+4{#}zWPQ`obJCUhPmv8RMc5F9 z539(5y~^)r_ZY=w#ewDVhalhuF+%KrGI$WupsyZix)r<+-%{d`#ve?|Xk=vzrn|tD@&w zdu6^?s$wm)M2k&$5Ck@lz=!VymblrP=R?zJ`^Rk++|Bl#+OLCRuVJ!#ph73!!dIWG z1T@~}PvR6Frd>Bi?ca$cbiw;LPjnMgIolScczeS?U8$f!y~~$yyWs9vcsSsOYxN>S zb-JQIAOs>_AUVj+z#w2&=-@<&r@*zdHrxUq4+PxgU=^1(OS4dUvZ$sab*+GfZVb^7 z+*T{H#3=$8N#KXV7s1Th#YDOCaHXjM4Ktj#JKcV8MK`38l7;){BD8K|H}{vp6{L^# zU*aPce={*d_qkk_ISl)Z?QyQF=gFs|Y>&XKn*c#wj?wfH`nKItGQft#G6nmFT-VpoL(Q!OJsv(I$RPe<^DRyBD!mSbLb(Eagj6pp z`UE<+JU-!Um9tYoh-(0YiM4209jNY~{L_i6GUnniskCjoPVIDZ#$BtUsNJM%x!h_I zFe3B81PH)ysyXo+bd29~cHL3S)BQ8sfet&b!bGE`OlXKalK_W<<1r}qA|CI(bv|(p zZt6d`1nWTi=}cvy_SY7)oYOUfqdka_r(*583UejL=Kmz;o~KgcEx*R7j#t`yaFO0@Vi7F^ z!Hb_|U!Gl+(l0U2$j+(vWIg@dlb++QB4$a*ZcBXNP8-qYeANbLVgL_xg%5)uUU zDPp~OaG(S>8w(>gIC`m59R6ox28%4X%3jC>3F|wE1kywj2#58_#NX4Ij?joAcod>* z7EkrBPz`tctH2_!zsw>C?Up4j8+w#5Kf3(&Hw&ntjyW{;)x>WEH|P|NL|~=_==ti# z%&u6~V?84C_trk~giDOc657fwxu0!>=I`%U=6a?2e-hGUxRrj;+^Ml8qj<=WjX$AYfD0Sz+?h7_2&EnHmHYfE#0 zvs7CyJl}FepIX9^-m~UJcB$zP7G7VIZ*&p2sdw-*ar^gh5WT{!=OX2+w^6_plRNBw z*cB~+LS`7ECy-PE9i>OQ_6r%(T((}Ny`)>i+F8s+UFI)`{X@XwC2d#7P365AmOD3> zJUx7Q%ujP32z5^p06|CFon+V_A_V;067NUws~Tspl!qu?27b*c1=8B3c$(BRInQl} zsXwG;zc2v_31AS{Lq^N4KdLbNMxGn>m-N&jnx93~2#=fKGiC%+JWNRz$J?W?y9d(a z)aE!MB&&;$x+)Ax9w#ojwYj@7V?uEd2wQ-LE>fTFaVv5tvPot;(v9M!HQXmM^?JM= zbfT-YyA6to`{g=n?cXnLTVVdrt`TfVz=+)12#qj`JJ^Q4hKK1SBChGRnALdv*6+%L zo>hkd4%*IK^jpT(kL`?j?>Xh@qIhFQ2m%LXCzV`k^*difg)1}<=mZ_{B>n^xQA zFx7Nj4rc1nQ-DJU>P$)GtC}<4Ukeum4)sq973rb330UJw+yor=Dif;?ImL7c~V6L_yVX1TwQ!FXszo$!r_bp;k5c)k&aNirk;2rrN^fsM8;YNQN6~kVmY2V1AE~zP zY!e+hB62axd(|0_wOKDd$vlXS{o~=&5r9Z?=y<^dArSa{yL2u0JElM&cVL%8b=$68 zNapi*|FJyUV`f=T*^iRwubWkEN_7Te!?ULPW3ZB&EY$w2N28gM+hq9Fia3jw;6oe@mw)l* zWG;-?swZQbB8Te4bkZtv9t_2EYxex|c^Od`4mw3ZMXUBAOSeJt5%Uqu+)M4maeVr8 zjJif@)oBsT5h3cRyd-o)cTyUyA|a9?k~Az8JxAOSBBLykT$R82)oqvrqSz29`gE<^ z+vU(IviM;CDzkbF*5DyOIsy{A^IzN~BPR}bbHvMp^i_J0<;L}As{n#4oZ>E71GG%7 z_AWz2A@)_H16lq&h=i|R`rHJK5Q_!T(qei{M+t-FN7Zk>a2^I_kPsvR2$oI~W4i;s zTs1oDK}sjeQ|&#_N89Y0Vs2A$eA!glsjkLv6nxEltRNDsBI%WRiSl)4vYEt)o=4e* z`q$)w-=;6xX+upEZv|8 zQZw>0Ps&btf*{eHeTexot@Wr>p(W%~ceHx15eT6Wd4PY$cVTv1ngIhcB_!n*PKW6< z!XdSx?BHQGSKJ7S#eIon|G~k>T_NykuUEQ2LSSpo$->HDKYsbIkRhic3wE4(E(CSS zH}=xPDjz9H&!k{PG3WJCdaN4@#;&(#)^q=y1dSfFMAHps7K@qcvrmhAwrqR^7;`&wAcYaf7 z+d?JjjnwX4A&wGbI3wSSp`qg5vfS#>}_$OH`Tm!r;$zD<99MXo7&z4YnKfjzpEGFFGO%fZ)Q zfJrF^xN#NvELY=5!DZ5EEH~~Dj>Y4|&kt?ecc%nek}D0OEaEw~ygQhKPiPQk1U>xe zgcrFk%WhiG>PQM%FQ6f~o2@~VbJnqa+qIk2+~+AzC3LCb0tuukw%AZ7ROGp+oi4jN zv^Bk~M*>c}SO`ty6gR$WHi&_jDTV|DJhK+p$J;_7dq;q@XWOwn2qdA==6RgOiVV`9 zUyF9h6_oA#0SdqKrPh&*a1A@W_p0uX(G{9ss3W4=y58%+BYcVqKmsb2%`Y zM&v{;T+1^5w71?kxeOa5xUjf zy6>+vxOM^@9>;H6v}Atgak~A?g^Ftw$rU^VJVrnv{_^KFP1TS{h=$E|Yiow=H8u%~ z+yZQ0(tDJ;BQLXkk%!;FO=PPH9(lgEV+V)lcVz~AE7raS4T|T4CEyH4l7$`zI3N4bnzZc1S4eU>EuKITNUGdopj<|=cRsP9)2+N7Hsv3TiJ$W zWMz2#2;BWlu#SF$CUdAEr$p!@#M^7(A{{S;(ydI1zLvG|HNo@{Uu|Tx<+R*P`kgIm zxvjg{kV5}p#KW<0%+ICQf)Y0?QObLL4Gchsk?6B?Rk+hEE=nfksWZl zyG1=F5)9rVj814nxQ5ym<6l?x(*M&UAN+HF&Zb(k&FFP?n=j39LpFQyoxW5OC1bf5 zTgGvc_c=XVueip%2&1HMJK{At4QKahg!s&)Sa$4PDVVS82#ifXS;*gNA%uOKcrbju zbX#rVoxYL8)!}7uki4r~uQ{MadbvyMi1JbQveW#p9h66tRQHg3VA)`7d>b3!iH145 zEhcMxBNL7g(D5reC)UQyEaL{ea{0`J-yWXV5X@m%NJ=-jks{^hr?a|k? zo`UhHh-b1Og{~CZ5=Y%44I|3_B07{JI^T6juUugwJY3NoDwn>Xk)iN=1a?w4f@Su4MZ`zZ zx$5m^bGAZnA2>N|Q>=}4;31JC;}=%k2y!T0_)awZtgJ8u@)h$9b=K5q8FT_Kby&??l0{$kBBk);@=vD^(fxO1$9nh|oy(0u$G_;> zTsi_OIlPMmXKKAr=R58MKgVGnjOA^?32TUGzz{|DumTd-{-a%ouNPs#R!@EIvbcbV zt7YvYKeW?RZ&AWFndl6dyVW?oM=gRT5%XA)dHa0(qASx(tnN%6IZxXa zF(T3_)n+d1>+> z>e>h#R0ndPf`f+p5go6^0uKO!Xp;mV1Y|x=`Y2l~-#oB1;&}Rbd9U4L=dSD!*ut(> zC~IFhnL;5rA_VT)Ubd5e5zVB^1FG6Wt-1U1e5#QP`TZ1_2zaaED~lg|()C54A~=X! zWm>y%bwGnpGy9eI@nzzT8O_5!IUDbt)Isdc>JM@(DV4zn1U>}ljev;~OriuZFbENXVYuWZ;aK3^ulD>- zQ!>pRYPYpM*kic=Z$n^;7A|TGL^*#zv65(pt$Feg1PI`YwJkrsOgtbE`;(Y9sN|rr z!n5Y3Ab0{AhsfMl zNp>@y;ibxYb9(!cuN_r0#gyqQWtnpZ-mqN|)L8XJ_;UOHsm-k^dV16Tmx9H=B8lIw zFv{T%(>zBYbmjkDo;mEesck5ROcXulr|OlK5yFRu#B`hNmK_j=h%peF-5zj7iJ(KX zOEXmy!XnK4B1(Dh!Qx1(If&g-s(f2z-9h;N_2g>*MTGJL!+38?F-%Z&2y^2$eL_A%()D>7P zlWM~lSD*n0&_Ob&3KXzO!3fOP64kxQ-c)@71b5D@pIX=u*i`5H^>Q6ZUu%@;A!Fdt z@>RS3T={9R^e4{(36bxcQZib9>}E_vAc;zh9{P4h(Wl8n2&6hgc~U;3or7tvnbru^ z@Tj$s9XD7GkwPhL238;66s8{;)fA;d90U!YI;@xU5jz_Oy80t*)J>}wY%CR3mx=}&T_`f;Y!qCBi13*M79N|>$i0F zcf2_5vuZ|-A}@vUZ^~ZUUE*|mjqPvj?9V4@?CFF-EyBq81OzVmq#z+PF_ia|S+wcO zYw$%4=THz__pwfKB&N1RL6IFVsiA@5KC<(9l%2iD&b`PpZPgJ)LB?D!OEYwSJ-ytDp3&wzr}&z&VCv$(aHor%61;R zL7ST#T49>)8ouzFu3fJs1N@|J2dmP7k~w+iQAj1g+A`pWc^Dy6SuFK+@9+T!^Vh># zcjvT9>8u~L)m~rEC8Uoy%dhJo+k>6Tz=9NUU#DhE9&o$8(;oY;{nm0l_nephzDf|~`CoKD-(p^eE_D6=Io*_vN^tpqi)*WPAJyk5l78v+`ZocU^N zt~dxW(RqMDk~y3NBY(TAN{&67<@eO@5#1A|LxvLkJM~?kc#%qn;^JX&tzO{_-3~9S zZ(i!YNrY6aQ7&l2$pC#HHEy!>ISHdmp5>w2SV!8e? zzlTSSMG?1O5fI8aLzv(uvbiaxz39k*f%hvpX9U0fA*)G`wZ^RLx@xX6n;=85#X)O& z+hm;Dt*8V(Q%ZOshIcy-2v)qPxwvX^K!M}?E4Kw&O^m$9*Bkff{M~4nSUyr z$4}ocIg6dE5Cw2n8tAr;vz&_WsQ@~Dt?JqfT*@kwqdg=6wmqFG4!9c$7(S8n`0g3 z|B5*>*Uu$ATwR1#N@-p3NNWKLzz~%pQJ9GV55MKa`tfR=7q0&sv1ta zgJs}_*|#ThjEG@v^SZmuTxO|74O15fk8PDn=Zg8kLSYcgQ?vL=jHb`-A^VIXdLFav zwNl&KA`&i<0yK=hG=^%8Mt{WyBZmMZ^vkn>+=yfmasG1b9T5zif27>EUd6M$qdu+ibwKg^__8>O?DYtvH zhuhVlA-#u)*SGO?!qhZ{+T<5jwt#{j0nh48j{6Jc%2;>J>GsQd2C$`Sedq~{>Kan7 z#`mI*?gQJh>seIq_3y7~sr4qGKtoXfrQXJh0Szb!iuS5t5Thi1a4UK2IAHC=FI`m` z8xRXB4QOb_zFMppisK!K7FORVVOS zDCkY4ntQQ;iVmR5)HxLdaP3$b<+Xs?+a04u5T-gkDZ-?;{;D^=E8>LK+GC)fJy= zo`uW__bF@X^3VYS5*N3nNlFh(kApvQmuT&8hg<>$CHvbAR59ylJCRJOv~POOA{7V? zFvv^{onB_sN1N-YMzq8KkHq#Bg~S-K$>!cR{;;aScn;Hrd<8L z)JWH#2n9-t$FwD8jJyJJHE*G&0f9epDm7OzM2UVCb`fG{ojw8&Sc>J#q9C0;2m%M! zbLzMMo~vgK1Dc>?#&t`wv7b2)Nr$yxXmg=V1S_~a@Iw#YrnscBlt7qk?nEXXV`H;x zfQ?;4;3MPFz4+jMw>-oD&Huv;BEyj0@h}bzSS}4Y&_n2nrv@CurhL5u94>+-%z4u6 z^VKo44cmX%#2Aeu(xe`d4Io9CvY1ZX0E5{j^0OMMOpdlpbQqI?7{6K=$CX<(YwEC_V(PIFH6?(rMn#o1oLnbhwfxGUt z&z;GI^i!c;;X$4E-#ffka@pL#A#LWJ#~<1DFFoE#Os6D9z&qAkyBtoQVV0#8)!nhy zc0xNGslBF|BEO{(r|i3k*-z)}x*ux0-F4BMKtpy2VlY7iMmjN+cTL+9G!Id>?m&a? zc|#fOsQw#=$t31&y=1mE-+bE|LtD8l;vf*lYv(mKR52d90EIk{V5Y&bWV$iEub-~v zVoxvv03uV3uEN=~uzxYIZf!kOnGnfXPyS<3w5&Vjc0kgoduc@veFIy$5b}5v#{_fT zFWv~uZ$%;=up^(+j-T$?#67$2tyKA&C)Sy#>vioyEH!Zx8O__)W2W|x>F2M46ZW=) ze?#cR9LtdlRB~%Iv+@X7rMrv|uC0U;i#~3ZXQ)7hAP6fl=cVqmF3ay3$9HKY%V}2- zsZKM#yhG9i+^(Pq7*1go@E^o~4jo~SXZWXKohM)9Jie7V*8vV8cnESh&WBU85-kN- z(Q{As#GGV?KQplk7WTFL&e&8Cj6YPkEUtLbQzTFotkVLK0%7CWiy zg3GM<2tfXfFl^D|BjCV7h_ze<4dw~qjZ{hOjXYg?3G6qhKoG~ax|x{6`m?~u-#}I0 zR~_i*6WMrfT(A2E6{d|`vYCLxcs;zqHn#Veb>{ynZ+??>Mx>+7vgZ~lb0tgV1CG-_ z2(qAxDJC=HVeRKjk=U@@Hkp~Cpdj0@+nwyf;gj`5L8Ig%5b+G2 z^9MTk+){1HrIx?VjLmF6AD2?eZXz4k`;)>UE~^RSWb@RBh1vE;+8#0d5S#=lH8w-g zwl}@DsWnf{&=6^G^2emnYeGqv4GHDfRxxPeT1aK?4qoeEMsr!=5%i+B_=a|9?*2Cs z?{cJN?!70sF%VVfi|3NVd=W}+a?*(BNg@pA!i>esz#*QI*VN%_7%Q@xFY(=l`_18zqT_BK6~iCxIAt^o;(u zzv|5BU@bZ~tx%1yj7)9PjBU)7txR{(B9z5wq%>X9CuCao6Y@K2K1$y+ zs}YUv-Sh0fPj@P;wLU{a01zj=;!iR@Q58(wIC#WCe`aPWy`T0(X6WHoRhRLz0R+uJ zLPLg)rFMB@NZRg78RF)o`abK-Q>bE8ltc)1*!&&*R?8mks)E7<6@Ng3<%Oz<*)`v* zp!S+_>RoYwLvDzY(SJ@@1Q?S-4(@z7rpxnU&4Vp^h6v(1eSJ% z^5X|ykDA7^y3)(|$Bg566|KNSt9$|%=OB+&7pdzI<>nE^-^I=dwy?(DQX=$Msh5Uq zP>l$RPMhuR?>-3SBv*t|`mX=pPxMAJ#v;&8SgOLD;*#UX23$py%TTveR2W>Z7Co0z=mE%_(sL(M^HnCe${JX>0bLg zI>Y6F;5npu==CfQ{jku{?%i`!v%X}!fAiK_)vOS?X`(kZvsjUVi*2`1c+Mwx9$f(o zhRL?@LSn~Z-UxK5^{DU}8oq&;Miv&+tYh6nO6t-*LLrhh&QlI@nP!?d!|k5i-gJ&Y zf=z1a�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

=~(wr= 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

o`6 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đ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�i~y(cz0 zymu2~Zd8B-F?|Y`RJB4OtL{0}n%SdCUuyrUChI#2)*7S_@esN~zDoQ+@a!uf(WDa> z;E0D6q=+e2p~0!<7z~8!>fI~8M%zWVysx*tbOaE&f)bZreaoba%PF#G9ea1wE_cZF zJ(jLX{C~MSJD;L`P6Q1WF`%SSAkbeqb?9J%_u(k}?Rh*1Zfsx`PZJnWA|p~gc+9tw z;kXe`5nsmTFg3v)R&R^0m`B%-!I-r;y+^{svS`m};_+^4KSV+8E$;KIxpk8zrT3;e zHrx<4$(E|D${~O7Ccr0@J3GR1zj2!B8vT6zzI}D1<}Yal@0@o_wK&R_QV7a3wcvw4 z9L?wsUXi{FdEb)b$IVj&6JSj-!3X?* zTzztT3Cs1vpdf~N(`ZvilsS#DG3{QWivKid)U)aStlods4nO?T5*0tjsG z>8W$qW6g~R#1O2vlLQRtberF@MQ|aP>O<$TEdDyE_z$by{F&@FY`S%p<4Dgp!$R3! z2q>GwXz0NRE)O5Q6+f4k^G;W`A_fe_U%|qH7cRP*)HN;d79nF?e)n-Vq(C*#1Ua|U z4m!U}&(Rh|y2c|r&pUla2rV7;Jcu40F6#^s(A`0|BLWHj-%Xd^Wx_RSOx8fsl4W0! z?2QCCs9=NMl}BZlUbV$PtU|a1HNKyB8|z}4L=_D&O#NUjW|b@+?z|}z=Euj7p;RQO63v6wqi!foV3`fE7ov)e>^_+v&{1)Jdb>%<;Da&_crj0 zc>7<4i^@xPNx?BeIcfKBeErD;J}h!<&(%%6xUIv~O5UAJh;nd7O1S-n1s*@i; zL)oO6vjjHHkVt_K<$tOE=lZgjO~=K9BQ1^;hg%HMt!_KLgs0-16Y8a?|5D3j z0R^ivfPz7mvl*@Z2ckH@f{(un6M;Kue$xS}*Qt8{((!fu6u@&ts%C#y{0L!XAOa4l z6b&cEBlq`jb#@Vv{!jkzlT<%D&npt^%+_aGywHLg1WG#yr_EVAQ>xZ>Oe{Ddb3EwV z9AVwnYQ@8TL^l^LCO5!q!gW99w_k^_5V%Ocv&LUR3cy3X@KI*!HaTg6`qIiVHHdwM3xN+9ZbpG{C#r>rKiQ^|7!!v19=1lE3A0;nN8qAym((b5_Nx-+T}>0lKA>T22s)XFFwW)5Z_j; zeO5$6g~`Z*2Rhd<2FXsxG#icJAA@-hfxso9}aa_;6*x|q);~#E~Sck&ynEZe1O&t0}5VtDV z-Ldz?RDF((u!tq;qBR!3ONjQ+qWC1&LIMhy)_&fp@iZ!+W7gDtlxtULJBy#bv|LJb6Lu&84y)D_ zk4Z&L5KF8)S3asTwfO`u&XL%oE41E=c^JPD{+;1FfuG>D0u>1-l#Fs#VHo*-dzVV7 zvPfmBVew(g5Z##nqXbxRe5toWi*9Xv->*&h`18DH;6Vp{ zDl_q$E)m>UGh%h7`O{OoaF8DxC?Lp_@=bR?He+m)h(cBP_o1cZdsA}s$w+N%h-Q*^ z*{QneXzN=V4G&SbMO&NphA7;*E^$@AID+0k0Yes8Xe)2ex z4Ar~IkP)b94&<2uqWjViwl zYNKZwhd#UZqS7HbT3IXFanN+o2>}Dt9Y*YKb_T?M-amtr*QE+^2Ktpo-g&4BB%LjL zbc+$a;fMD$Z=fM&!&6Xd2v)jWr^Bi}0thL(PT{&t(xeSAAcNbt*KHoz{Pt|vm$lvL z|Bdm)`02lwRb1(Yh02`*@F3X;*$SRH7x2cH-P9r+TI}C~ad~g7o?lP1sHoSbGM$16 z@(+N9vaVx+&Xv*mj=>B%#b7|rq6uN08WH!iF~X+)zIHu&(|d=7DV(-hS60MY`nQ#= z4KFzC(S1g0N~#_>;$#s0PpN3Spn>oqp#&Sj3BW+@S{(%dh1q%(9GR|Esw~kEdE%X} z+U{k!nz=8?A%IiOZp$fwUCll<1P&VNR=#kiu|MbJW=*;}#HAo0XUw~yvW`aee-X}- z`cw`0JF~PaE#=1eh#_)on9PC@Kd8V#uD#hebJTI)1Ym@MSRHyL?Ec#~MpX&{4bPIZ z^?BAX%!q|_x;lT=-$nxqs%S{1cp3B9CyiIzvLgy1mB>c^iLwz+^tU(68XU!^^>DHw^zU1@)4rH|ptv%PXLX-%1Iga=MhMI!Ia|6bV z1UPmU607(0-{m}8glSATF{jW-b8tm?O6o_|?Bpfx+J)L}>r}gbLrUXC0 zhE|djJ)!?X`e{`)!aQckg|{ z@;DFxgIroBzuwnb&D*M*_0U+f`gS}l_o&*jV?b)NTH&n1O(5ys94(eXN5 zhgbGE+-7spRQHh0%!3gYZUWT?-#%T+qxq-86t)Nfwt*G$93MFiP)SR`S-%#Sq*GzAB1S5~Z z1{m*tjnSh#jUVyE#W})8xb3_ceiIl*_(2UXpRpY%`k0O-*`=gMZLyG#o{`h)?Z5hn z_=xUYEl&a)yaFu(9`<~X+A{u3YL+G5AHa(ep?v@pjx;jN89G(1E!3FW*&hGKw z*hDun4|+B8gR_%v#(^D3-Sahgh%xWr{Oj}V8%r#hkU^^8;a;u3-|xM7uW{R^Kt(3# z$b&({d!Y2T9bNmjD?~!W@CX}Ew2Xc36iSX8T~Ys?M0bz~qC>uY*(itVpEn0I`I zNV+&;A1>)0v_T~T+cR&|C1IA*H)Ow1ou>Jv!+S{MB%J>I}Ct?r_}b?Md&A>Ua?G-K6}#6=q&PeNLg` zblW5lhf!?V>b`etIs~0B(OPAJ+uu_tLE5xL| z28pU06MzU#?>K;i^GBfBM8oNllHTVz^O+3F+;0YB&F1M#Tu(k^Y48tsaxGUH=({s> zi=Rh(G0fS*@3TVCkwJMD2rTcPE7S&z0n&YtTZe5#3vaAr9wOs9#6O419f}Wrt%g>5Z+#7c6@)!ME}R2R7Bl9**|Z=54V>y-miBl?3a>@b@95QA#WU4f;c3KZ ztiE)Nszr?>>zLVl5;xS{)tpDSkx>y=`Tn(nDcGk^XpJSG5it@WmUgAAy7q)K)C4p0 zu-@-DiT#5E2^Eb594CIAjNVfckPvCeFzV)$D@`r}3^aDFDG|P*k4bSz%hg1bhdx+78Rqws#`9)66vRN@ zOw^v(5HzPP#FYdm&*t7vo&+26(6V}uq&ED-=KVDAoTihhmUse5JWY-WX4$g;6YOC5L~^-BjFJX%1c2IltU?M)2>y$e_ZJl z2u8qK4(K8TFrVXNHPIE~A$LQ4!isk_?lTbuE0~+P_qwl}1_SUR`0UJ`%&}It_u+X5 z^|UY>S;s6h5YJr(h6p}f z$E)M&c>iWyD`jP7A{SYIi7yk1nN8yaG^*bcAe&=ymY(|I({P*7y2j+>?`CsB2v-jO zAI#@_g7fM3e?B-b8I2@B_N43(>vJA~43=3wMVGT3phSPpR$NDGks=|&?b5D2IkeGk zQkgH0wv)A?{3q_xpMSJV3WhIQA{<9{4w<%Z-QgMVf+`xlOSS3Zm?JAj;XdC|CTGGb zA|o%4QrQ6xom^LhOadF2<|fD&q9J9~)hX{4`v(@p?_>BXUp1l%QmcpIx>E!rkgs)j7NCa( zJbJwtaNF~mbelc9;)TD_fQN~3`V>^&4Kdzp7n2NjjN+_qaU2cO{PVk#D$K+-33 zYSC$5Fj9&A7snsEo*p&?&#eddyqjc1R%+KIQ(RRcCISe4W1vDZ&+`q~S+FSXz6gDEIK`10HPQ)=f%zX|9dM9xbpT z*448H;Di^pG!RwI?AJr#FoGJ+ zQ(fM^lDE_G`QSj}z8yJg4O!<+z0L{u5SCJj?(w|!q%9qMZyQYjt;6ZJ($_RQrtn<-( z4GAJUFd^V@xq73z(pSHt0Uhl8SF$Uy)3l^fw(vHe2!~C#sncir-_f@9(n&ijce#ki zldUuLuZ0VbtXktPf)Ngj^X`T`rpo!?hK*PhI_1{a06eP{9o!Es}5HO*g0nFH^Z+o)TlUJ>TGn zLv0aKwbrZfR~z|~AvVa-zdmsy21uB{1kJ5KuLSCC_H^yO)kDWNtx$%bazr%F?w@1* zC?UyN1SEH!DR>P(df5mNgjq-EbED^s>l|MVz3+_&e7ThnK;k1^#}rjn|>7ZLeitlP?k)v@1KUU&{w^ zNgCc{qF0SDT&V1}a$ zg#OJe$>q|{PU^P2Ny-}BUmYj16^`b5G!U4dc{usgG{zZ!#pT5a-aVF2+An$ca|AvY z2>V-WuTjE!^hS-LxwF42)JkW0a5Wg5-tjzgx=U+X4=sphH-6-ZzdX z-k(Q_lNym&>;8-TPM}?&bF6XZCYP;=U@mwSaHaQBNx4ie;&*6m3tgv8ky(n2x)8D zv?hL*JwEsJh+Zs0r!DQai8HG-AcR+ucOtLQ;mz@7ws0Mpo*VxtP2Y^Echgz($iCiJ zoyZWu)~@k7xD^sN4i_I7)2|-3Qg9H~F7}Z@2;8^mc};jB9Cp}|G0tXaAOQoJh{>Qq zLw?KWX0vsRkD>p&_0zguUBs9m&$5w;h|%|}8|!ZBh|8!-@C$vt_xcgGKq&5L@K65gfQGAg>oIDW2u@le9U@*b@IHo9^bRQ( zRo;tJ*PY&tB+w9e4rD<35*uyHa!kZRJ6iWDQtaiY*zO@I7$V#tyMMlv2SKq#*;Eid zZy&%w%3htGo%5q`2z&i#x(yEYFc3dPzPE~NewFih8|eWEw!yc_WkB~%sF~2V-7=dz zeoP`x|4!2P&5nj2`TjHKXmd~5+vIY1Q$0uu z&_Nq7q6l?qX0uGEBycwF6wVxq9xQpvZfYPP?zcCj%c9gWV8K%Y8el-w0{BWonfux4 z9eXScyUS2Rc$GYQL>yM7jG3#-pnyli*&A%lf7V@0q!1x<+xtiHGt8`9iH>+6ja3cm zW;nzP24l1J+Dy119p<=Jk5hKq^)2>>pN9D4;yWANHpV_DJlDy5#{?C3)i?;I@~UyCKLo%-(*s-d!(45MRsEi$-Lkxzw6C=M zJV?F92Irz7$zBLl5es@1O7W@lx#A%8OR>AoR=j^K-W65bkVG|dr>$~@PrmKx+}+M} za|;N#o*Nlhy_~D9+PM&WhXge4IXxYG{w}4SG95?g2z8rpPJHUNYj0Hyh%$UQ?Pwu4 z0;|w&mr2_n#OB~bxCmw@N}6=Ox@5DM|DSykTJ;x^d2_5l z&B;FHLjn@t_2 z@^w=mBc`b!LRn)Y;nxH^#^8e2@%v-dr18n#n%Oc!^#k%YLowL1D!&JCyws+Ip#7WBxBWbeIzMH(nx=THwNa8F+k?J@HQ!Z_x7)2?S51Nm z>DrEs0+;oc8arRVYxAJt@j(h?r`yw~R1`%_$>uh>X5<;{&MBG-igtDBodMd4ZQJ#T zh4UyOZh03UxP$U+&Cx3kb)8=o2q9Gg$jQah>7_2D*OnJdY<4S2UcfdKp4=t zZsu&gL`V9jgYA^^dAWU!J|91USx*O6i8z3r=CQ z>{+~4Kf0a7HHhf*K@7RQ4t&0<7E)vOpkwj7tNAub8=`)?)<$73#&?EXR)nxWMT^|2;@*?-Hu>d=&nt zVK~M`ACARYk5lPa*#ZnVb}L++^X?VY0n#zg%9=yBWj+X4^$rr1t!X$@NG%)Ma6&HW z*YtPu+?T-rs<-0Exw*T zIb=_)SpcRgT3gCxE6A}w0_2#@?y`5>odU}8&r9XYfBU)i<)V%wLcafHEpOrbVC!vXpPJdb2UpY{;|hiZ!3 z?ac9D=KLH0LLWr{sNr7`#qu(b^+^zIxAb~9tGHZ?fI$aq&0tsVK z#iOiWgou8VG!wUZTQgq45KfC~f7$e}vKc%l9*yU!LLtD2RoPwLt6#rYr|VeNCujeb z@dm3WC&+wyj*^D;0*u^<9+`%ORJm;gD<|4fWjp>}VY;?eYctnwh!EE@DkyxS{!Pk2 zhd>Z^OWRr_^DH?Im#K@XA&8I%n~|1nmv1JAs?oT{wabNzYzeKjQjQY=l3+N}m1HH5E7t7|)3V!XExaLPB&9L}WlMH-exTa>T zB_H?pL|ZNIlPs$@L1y4*JW6d4NO1ZO`sFMPiQiA#PnkEKL^itHp4vBHxDc<(9;AGy zvYgIC~-z&Om{+%)SqOgAEdR{D^$v4-;f;Rj^@!4H}lsf1U_dT1f&6RlFIM-2-JY z5T!73h?Ze*xRvRSKT!5yrNK>-m`RbLhKu zOz3>u&+ODTrroqA?kk!n%;LiFVTSw={+86e=RqT}L8xiu7{SXlo&Lcd2V|aO zF{XrwU;Ka1*J*qkWsHUS&GeV`CmvI&Yf5+Rnc}MSIKYKsqv6)yY`D=R2puO5?qvK^ z@|$tt$@{8#ofsg)nFH*x)XK%*tpW$x^gDy_Ko9#}zcgyva7;d#9aj#{vw| zFUnnhDyS1H{YCR)U;(C^h$0H26!bD}fe!cS!ap-upD}~>UvLaVuy96_4Bl>o`z(LQ=F7KlRDbYSS z-o097EdeqP_Nel8H0X(H^4)=nCRwLVmm;D(-I)d ztfk2Fz5-uC+GU8}k_bWKf*s8f@74VJh3L_DcUrozh4wu*XZG0hX@LdH7+z(1G^<`V z!*gHb`t8b288m{DKKiXspP^Tz4k;}|wyC|aNI6y2xgTO$@g0uFN-M_6+pf#U`a z(=dM1qw3J?S7SBtBtd##QH$?KQCU32=AG`NC_7Re4-?@K(n10mhT8^=3l=TnN6%!_ ziU>O+Cga&KGd1WoM|qt5x;rpJN3ujbiVt#=CP4<61T@M^cQ36jpokgllJjeL9XxNf z>D_q{shmM%A`%}t(jeL3XlT;B8A4qr`5GhI+O|jwR+4`SOW4Wg@T`S~i?jqYP$aG4 z{f*Yvb9_c$VGx?u^=VcAA{?YY0y94e%`XPD!zB0P5$4Xf?Z1LHmP*!-PdDuG^YPff zmGnn3rg$S!PtS;t#$)W4tX4yHJfP0U@)AFBHyEp`N7tuQ5oP1|^)(?J{@_DB2?5+v zjE;ru_}#y@b@d!+Zu?tJ>ki}D*@eq(Se;`OrKS$~ci@74O+wrRSDn3!V5$gwFErkB z@*xwgu=+>YzBx|oTEtmi1N~O2tlLpZ|zZm z3foGou6C(c*W*;xZ?<+(bG$o<{@*hipSp*(l*(U@zfFW-q*Cr6)Fy?^!XS_O-+#s{BLj}7zjAbzH0bhm6qua%_0|PWdD!m{O33x zgdjoq5JlQhgtdKH5Tdr%>H!G(AGW)`is937=g*)-94|F_6%xDXP3Q6dgQ3Q}krpu? z{X{0VMwhgS+qy;b5+z@f8U$`_0wzRYcAv+53tjU2L!NCb>fD9N2$3WWY2 zRh|daMYseUV{`S8y#x{=G0{jv;Osq4_ijGRW7}>>^CakYeeBAf@F4A=!8lBGfzw3- zAM-?%Ixc7+g-r)ibHHcQw9etR5eXS)IIgNIR_~4oYT2VGnD4)-Ow z=YOt;lIF~21Xpk#Ubu@B_>Zg<_(oJmY)5|)q;Q+G!*ugK$@Ww0X|cy#wvD-6f0Nx@ ze$7jxx_<;JUg@Ul!3w5d-|7=b`c=2pf*32hR=pw&zdY_sw>Nz_ud)3&TWOz=D@>ej z?v1#0iVo}8oR{B{W-Uz-5I6)WI6VE0Hc}^>tf$akR>&eJaU0;f^x@P8|##_2X81OK=LUE$Ouo&9^P#CY}(%Ba=GcuT!gh% z^c)9QcS^uzejrIWWQ6M?l#Bxc|Yxlpdt&ur1Btr z(OalTH*rhH?^IKsYCc=oI1Op#cIXh~8Ov3v*vEU&K?FDm!Q})ibQLG(?srQZJvk7+ z*1FIs0S^bYN0bo8K-Q14Dg-`<$%>Ae8C<>|rTx)Q9)AjV2kvG5SOg5H=#1br8Sl97 z`I-i=FCqN$7YZphE~k;dY=b)0N&*wR{q_lY~*b%1lkqx$_;ePVhZ zOGqK`R?HCF0v$gOQ3=kGuxIXTn!g=11HV==v2+m1{i8I39aXxR&_V~Bs<_+&8dR9)hkR#!0GFhTT>JtGQ^3n_x}MVi{ch#bt^DmfR|qtFg)}wv=L<^% zBtj_0@DR#~1SszrS+sF&aay{bb^WAa5Z^PxYt)^dG6OB?hUGwC;np#(BuwFq+bZ3?!_(l7ftjlGe`A!qzv=NjE__Ih8YblJD95ry5# ze?NS1eTdsHrI6)+56U{iZk*QEt7l8iAGXuf!9f0QYA6?Ofeg$72Z9DTTN=OCnx#A9 z;n8$Rt#tQZdS*8bKEMd52%Hht5r606{WI7u(tQ;`a$82b+pA;W;Q{Ax9i+a%NcwK>n8CP}=gAnEv~sL%OM-+xCyf(?E8 zc@WW^`=(HmnIUvHz=W*!C*?q_5YN^5D=+ap8}lu-I3Z=6ddSmqXEjfbOR6bl)9m?I zDhq-?22W&_77)}#(Nq50vbM!_E^ z$ETo1CTpHb93=*RU6(T)t-57mcbs>ga1g`p*tNh%S6iMHPyzr%ElK1iTPr=b3YMqL>OmqTl|G=`{vsky${`*TYP`l^8B`M6}&W^vEK|3 zsqdQkE$uqkj+?0a6)X!?i0afGJ6mHAAizW)zhW&L+Q5j4UzhJlNX-bKNkg{$>f$g( zdYM`E;OpW)f;iO6k2Yza@r9bWobPo-vhV98V+e&E9Ze4Mbck2&JUnl#t3^*DS5Zv3 z!_J-rERr&6m6|!x>(($;*p3DDPk$~5ML{inTjBRHC}ie(-*3vd2JCtidxzTYwKJ7( zy+;a8!MrX&M9qBlj8n%_Z|YQ}x6oW%{;GQ4opY zy{{a>+8tIHrn*ql$gx}0cwfFyOvb+rEi_69vrudlStoY z$M{Xdc(CJ2Yu|wlR({;(I^NH%c6zG-+tu445ecwE%lpXEuqq_JdbEi!O}`1XrnQ>* zk7CcE^+9`#Q0F$pL4`nMq&S%!Vj#w?i=ohdUe%8o zj$nw0O-0qlM;Xr%vegKpS2+}a_lEzlslLQ${u?*AgoyoP?wgvCHV8Yjr!n~UTm?j} zg(YVbY~Mq0ev7B}-x(qZ?@6`Q8d^|6?ro`ErH8lSM6AzBG3>P6t@1Y&C)x;7kq%_5 zGpx3~u}|NZ^^-xN;erV?>9Ea-z=7?yp6Vavh4X9eov)1+*pcgWduI{Kme)I5KacTZ zJCe2PUkpZ_q((NnZZwY3y|$coUxUpNd6$g4HVDc$Z3H(`f4%Vx{V&jlhc;|Cor^uw z2SO0`{+JM{?yT*fD94Hja&J*N`>7CKp3VI?rDX&>^Smte^a8qhImUz`Ys<*TPvo*oJ8Gn_{Kylr8-#ZVyNn>E4l zTBU*raaJagzbxOgZ~YRrsRRv(gkEu`mZmb!gIgj*AaIq9Q{wOZp;WMKy-UlQn8r_bB((6#{=iOHVh`y z)#PXXLR>>rJMoL1T27%t`1am2Y_hg8YOhfN4zk&^GW5>i)3f+8L3-#b`}2{AhBW5s zyzNsc)BXevxQ++V-u-8;^LgmB=VCJ3b-Z=2a4?*uYXGz39? zFVQ!hQnqZH^E7KRnKt9%A{cv`d0;~uMgM)WE0nw0v-rNePGiK&-qe%(Wh9l+{b(y&zEc&Ya@HEEoA;uS5WXTCyqQSujXjKtk09xLapu}{ro9d=ite+q9?z_LNY@uW#4JaquSZy*&RwIf- zpEp+{T$`#y=zU`Mhx~o!Oe;qaEWW1 zhTYby>k%h%q~fa|x&VsohO3yzbrk~B=^_Teg6WBmgw1zk5a&#+roy$bKfTDKAfhAm zdKZc>Pl(eedn3B7%T_*%EeRq~K@QTD%g)}a)ewrcEjgG7ZR~*!$5A*CF$)j6QSlKC z5)`8(YG-Rb6O6{u#8DjmCLB5tR_jCFIpY>@*rEPn|NFBRNv0GYFe*mDjsX z|CX7YrqnjuiT6N39#9a4-_?8h7uU{=I#0V7YMRmi*#KfdoxeHAPr~sdNF1OF?;92QYtrYtb>v~J>{H3QSt;b;8>PUnR20ps3 z#^r6+!2=`^>)a>EtwC{n_I}O8y<;*r)p8@@`c~q4v@@Tm`VG5R4!ZI7z1bjyKZs)$ z!SY?Rx=VI`L&t!`Byj{);W7C)IyTo`vk>CoA-Q)|qKZeC1SJ$FSXEZ#UUIvRe>n&` zwRQs&1}RKZU0DJVdA`&m2M7>ebSTeuj&mHdm(|EbE(k+y;`P9uq+2eKZVmkg5B|2E z;zsmEFheU8V_1t!OKz#r%iB=nHAnZVUkNv^_u5&>){ym)m)7NJ@OxXzL#UbA$ zJzNzw@Ip(E%s_fK?IAaU8A)J*zaDhTmUVIW1|y1-+i-cJ|0O^<&>F*@y2)X)ba546 z6g4|tY7dpMp6*R+=%NUB{Bb_&#yJo|eHKn3-M@!}I;zP@E2>RVK+f|d!;uDM26gR< zH;@qA`Y)0ZqI$oY#JLz5?>8WbNv}C2n^J-q$8YB}NexkYY<|}$`6$i{7lpKZ#GaXt z)N&PkdQ}gP8Q>6atEB`KD^-#4*lt*PPUqK z0>(G`*&Qi+*`f9Qx`la8Q*3pnFRRFvG=E7~5jxkexch`(XnyBtcG$;@{`LX4yYfhi z5rIgGVQb*$<+m}L5f16rsedp-dv9$M`-=2aAvUUl9ml_VWuH|$I#1DN;*~_Mu;z2s z1R7^rJ5qlA1h61=_HUr0^8A4evLJO3^1QLYgQJr~tppBiQ#3R)8_(DwSd;Gf{A_dp zg04G++3vqGn>Wz}z&~sl{wc-kt!N;^2sLP=t2+%na}gNQz=ntr`M8_GJ}eOQ>~`RS zCB#Co$=_>beA{k*(`!#&Phz~bmpz^{zNQ0c2yV5?81SZbZMT}3iMW9uW^ozm*cWZ> zKJJmayZ*ZVYM6QPDot?`x0HUb@}DJlH?T6;B6L3Qz??xA~? zdZ#vM5MEc*(=n|P2J2LgW_0&Iw*1yEWgSY*ehyKtmpTYtx>-*&nslaHFQ3Dkzkr3s z8@0))styDwHtro~3?ZfW4>fnux_50NI}Z)B{iKfHUju57b>;~FwxSutPlSJamSl&) z7JY8*m3lBnoJUh@o`J_TMAd)Q;SwKPZsJ4lyVF!^UXMo)-FgHqxwVt*ulC?U|5Gxa zVtoO<-YB&wuX_>OQ(1HGSzDzAEet{vIG3MVCJ(yzt$Hj)=pfV3yXnoSU;4j+2z851(gYKM4?p9nLCJ)?N6Kf-QtfnE(^}!tUBBf^$|U?u+1Ga0e*G2( zr@Ju8SiIpTYuyJHsf{X{nNs7s~YHX>*4<~(1}p%NkE3lun<$W?VDyp zkq6^Buyc1g`iIRQ`S~>|mmHG+x}4Rodndm~dxwUV=g^|wd2lq#YCYPXm?6vrAU4V% zq86be-M|(kc}ZjG^BDydEBG5if+bSqFOv+Mqwtre!tfU>1zqPhIDAfL{4wSQmNu10?Q=tM+C z=>&e=I2+`MM2{vF?^)`lX7Ic|;D{WvHmpQO7PX^=?DS z>mT@0p08RQ>ZLl$3=pEX>few6 zgGTpNfUkpVT(-|6iU@pFuXho&IQj?pzhMwp>H2Hqqd(psTLiZ5Y5@EYq4)FAJF?)0 zK1T6UJ-q)g5XML|*qG^}RdPWK*3)avD{X<-O0?dxk^dkOgvy9;*ibxs7n(zCeIosA zjqUl{uX4g0EH_9xzc!+d{T95l4@Zsf*Xb5swqN6<1(AONz8Y9n_#;0V)vde!2 z5UE2l?>pjxx=o{_O2Xw41`1k)PkTELmXb|e$LFZs(7LXG@hpM~{Ee$EI^U0C@P8`< zqXaxPK@|ZNsV7Z#E8gYI&(qQ{;wVjQAtm*XuT1j-AnW=V9G(}{!6Va~;&%4^KJ24- zAuEBA${ZpSU1*IY%Ii9=DY_`eq{0Xl$d`%c6cSlJ{esUl#fTxJRX#uE%D}3`_An&; zdJ67J5KpJxf)UyC6!|b32OcH5Z@L5!Ky*2QT?!`7h8a&0dD`^WKtRs%4aUUah;WcC z!2|y3nJrHH>C>f}cfMCv&o!vzeyXo)Q@pnqosz1%7Z?!QCZSNm{Yuy8x?x0>)!vE1 zdggvk;_3)UpH(EDE4T=Gu-ZI26O41sr`e0==nYoN*GDFYUH4q?GKUGZiJRfB)>Uxy zAcO2zO5(m>pG_|TUC#tR*eh_3|6YB$hQmATvYKk-R)UzsM64a~LxhlxQyZ?P3(KMnm%RhxMMe_T@XY3s_qcs0(HfdgL`57#?T>jZ-y3hsHgPXi&c!PtA>|`B)e5&q zf{=~h`OcoYJGI!ZC1_^cwUWImwr{MW_#p!TYn$iqdb}ELwO{pU5a(DQ+wgXVTvLE0 z`#0=!G+>3P5cdCgAD10b>D3fuT%sbj{D^E=ELG(^D2_1hU4_uwkU-m`%f;vrd%@Me zAJDFH`|g!+O#u!fn|GODAuBCK$$xWd+j!+ibK0LnR4|=*8nsP?LZH^Y8VR)0yCe|9 z)_Y{)ZmZUHx*o4Dnc{;ya|AzVwfB6~d7mDWn43fXjCJ9C9`XSNgZBPR zh)UH05^4OVgnjiNel?lS=Rt3t`K(?y6pC{QaUbo^+u++g5gh2o_ppq#i0DRL1R7A8 zonE;@=2-$CqzDu@Mh$=GDkT4Nrvx^?7@SGqL$1SovOm;UbbK{qb?k)WvLQ3D@N}X) zb`<8A5WC1*{*U)*%!_452{Lu0L37*GL58Jgi-MVqc#rX`f-srU9Q-v5N3RnABLNor z{ZSEc&haP08YDkk&O{}D?%&I~f(bv#Cv|AJfQQ3?l<-5wnKJGkqGt6>q!5X|P4S|% zsufT0!39&WL7<2=c3mYSXd-Im<7{7h3#%&#Og7Z%SFqUJ?%OAoZd~xw67n~8n`#JM z!lQJw`{E(#dA$%VoQY#k3S3DL^7NIuiO?sQ0EeB+xhkaB6nP^2hj1aw?f*c{h~+}T zcHpe=>{2w|He4%?>E?hVuS2@p{*&l29@tAv6{-XK^D1r)KGRpe>qe@g`alJ5bQYPs#Hr$^7?Pna1*Tm4=;+(T8x3re&{@SeZAcshIjN3 zk9V$2T#))K0uP{rmFhnQX6mQ4D&9mL(J!w3=ifw|x38ceY6wXr);rwoD08`u5WdR} zs&MRKV@&T|a_n2Lx}b!+UWFWpdVVjl^e$+s$UAzt)|g+J z#@~*<&w!P^lVXKBp)t_vpDd9NJKa0YTHlEz=?W#a6;=29DyNV4!0)^8P%*Qw+25d; ze}qCWt!K6QH@-S4ZMXKPBtdFN(RpOa|7$pqchBxh^D}8+x@5Q_I)WL< zHMt9r>TU~jUULcp4u-z}xb#t3G4KkR%3>aDB?xX2)VCJu&m9)C|=vo&d+ z@cWs%0DX2u`}saj4Q5 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