From 383552fc3cc35a40e9c68e5b1fe86ee5310eea9d Mon Sep 17 00:00:00 2001 From: Simon Heybrock Date: Wed, 26 Aug 2026 04:33:18 +0000 Subject: [PATCH 1/4] fix(sans): measure beam center relative to sample position The center-of-mass beam-center finder projected the center-of-mass position onto the plane normal to the incident beam without first subtracting the sample position. The resulting offset was therefore measured from the origin of the lab coordinate system rather than from the beam axis through the sample. This was invisible so far because all supported instruments place the sample on the beam axis at the origin. --- .../src/ess/sans/beam_center_finder.py | 12 ++- .../esssans/tests/beam_center_finder_test.py | 98 +++++++++++++++++++ 2 files changed, 106 insertions(+), 4 deletions(-) create mode 100644 packages/esssans/tests/beam_center_finder_test.py diff --git a/packages/esssans/src/ess/sans/beam_center_finder.py b/packages/esssans/src/ess/sans/beam_center_finder.py index 30578ba2b..4592bf1af 100644 --- a/packages/esssans/src/ess/sans/beam_center_finder.py +++ b/packages/esssans/src/ess/sans/beam_center_finder.py @@ -246,11 +246,15 @@ def beam_center_from_center_of_mass(workflow: sciline.Pipeline) -> BeamCenter: pos = pos[select] com = sc.sum(pos * v) / v.sum() - # We compute the shift between the incident beam direction and the center-of-mass - incident_beam = summed.transform_coords('incident_beam', graph=graph).coords[ - 'incident_beam' - ] + # We compute the shift between the incident beam direction and the center-of-mass. + # Both are anchored at the sample, so the center-of-mass must be taken relative to + # the sample position. + coords = summed.transform_coords( + ['incident_beam', 'sample_position'], graph=graph + ).coords + incident_beam = coords['incident_beam'] n_beam = incident_beam / sc.norm(incident_beam) + com = com - coords['sample_position'] com_shift = com - sc.dot(com, n_beam) * n_beam xy = [com_shift.fields.x.value, com_shift.fields.y.value] return beam_center + _offsets_to_vector(data=summed, xy=xy, graph=graph) diff --git a/packages/esssans/tests/beam_center_finder_test.py b/packages/esssans/tests/beam_center_finder_test.py new file mode 100644 index 000000000..98f23056c --- /dev/null +++ b/packages/esssans/tests/beam_center_finder_test.py @@ -0,0 +1,98 @@ +# SPDX-License-Identifier: BSD-3-Clause +# Copyright (c) 2023 Scipp contributors (https://github.com/scipp) + +import sciline +import scipp as sc +from ess.sans.beam_center_finder import beam_center_from_center_of_mass +from ess.sans.common import gravity_vector +from ess.sans.conversions import ElasticCoordTransformGraph, sans_elastic +from ess.sans.types import ( + CorrectForGravity, + CorrectedDetector, + Numerator, + Position, + SampleRun, +) + +import scippnexus as snx + + +def make_detector( + *, + center: sc.Variable, + distance: sc.Variable, + size: int = 41, + extent: float = 1.0, +) -> sc.DataArray: + """ + Flat square detector with a Gaussian intensity distribution centered on ``center``. + + The detector is normal to the Z axis. The pattern is narrow enough to be contained + well within the detector, so that its center of mass is unbiased. + """ + x = sc.linspace('x', -extent, extent, size, unit='m') + y = sc.linspace('y', -extent, extent, size, unit='m') + position = sc.spatial.as_vectors( + x.broadcast(sizes={'y': size, 'x': size}), + y.broadcast(sizes={'y': size, 'x': size}), + distance.broadcast(sizes={'y': size, 'x': size}), + ) + r2 = (position.fields.x - center.fields.x) ** 2 + ( + position.fields.y - center.fields.y + ) ** 2 + sigma = sc.scalar(0.2, unit='m') + counts = sc.exp(-r2 / (2 * sigma**2)) + # A wavelength dim exercises the summing of non-position dims. + counts = counts.broadcast(sizes={**counts.sizes, 'wavelength': 3}).copy() + return sc.DataArray( + data=counts, + coords={ + 'position': position, + 'wavelength': sc.linspace('wavelength', 1.0, 3.0, 3, unit='angstrom'), + }, + ) + + +def make_workflow( + *, + detector: sc.DataArray, + sample_position: sc.Variable, + source_position: sc.Variable | None = None, +) -> sciline.Pipeline: + if source_position is None: + source_position = sample_position - sc.vector([0, 0, 20.0], unit='m') + workflow = sciline.Pipeline(()) + workflow[CorrectedDetector[SampleRun, Numerator]] = detector + workflow[ElasticCoordTransformGraph[SampleRun]] = sans_elastic( + CorrectForGravity(False), + sample_position=Position[snx.NXsample, SampleRun](sample_position), + source_position=Position[snx.NXsource, SampleRun](source_position), + gravity=gravity_vector(), + ) + return workflow + + +def test_center_of_mass_finds_center_of_symmetric_pattern() -> None: + center = sc.vector([0.1, -0.07, 0.0], unit='m') + workflow = make_workflow( + detector=make_detector(center=center, distance=sc.scalar(5.0, unit='m')), + sample_position=sc.vector([0, 0, 0], unit='m'), + ) + result = beam_center_from_center_of_mass(workflow) + assert sc.allclose(result, center, atol=sc.scalar(1e-3, unit='m')) + + +def test_center_of_mass_is_measured_relative_to_the_sample_position() -> None: + # Pattern is centered on the beam axis through the sample, so there is no offset + # of the beam center, despite the sample being off-axis. + sample_position = sc.vector([0.1, -0.07, 0.0], unit='m') + workflow = make_workflow( + detector=make_detector( + center=sample_position, distance=sc.scalar(5.0, unit='m') + ), + sample_position=sample_position, + ) + result = beam_center_from_center_of_mass(workflow) + assert sc.allclose( + result, sc.vector([0, 0, 0], unit='m'), atol=sc.scalar(1e-3, unit='m') + ) From 68143f6e39e22df4d8c920c668d7a36995000123 Mon Sep 17 00:00:00 2001 From: Simon Heybrock Date: Wed, 26 Aug 2026 04:51:26 +0000 Subject: [PATCH 2/4] refactor(sans): apply beam center to the scattered beam, not to pixel positions The beam center describes where the beam is, not where the detector is. Applying it as a detector position offset made it leak into everything derived from the pixel positions, in particular the solid angle, which is a property of the real geometry and must not depend on the beam. Callers also had to undo the shift to recover the real positions, see the SANS2D masks. Overriding `scattered_beam` in the coordinate transformation graph confines the beam center to the quantities that are actually measured relative to the beam: two_theta, phi and the cylindrical coordinates. Those are unchanged bit for bit; the solid angle, and hence I(Q), changes by up to 0.04% (0.2% for I(Qx,Qy)) for the Loki-at-Larmor reference data, so the reference results are regenerated. The beam center no longer needs to be added back to the result of the center-of-mass finder, since the pixel positions it works on are no longer shifted. --- packages/esssans/src/ess/isissans/general.py | 5 +- packages/esssans/src/ess/isissans/sans2d.py | 27 ++---- .../esssans/src/ess/loki/larmor_workflow.py | 2 + .../src/ess/sans/beam_center_finder.py | 86 ++++++++++++----- packages/esssans/src/ess/sans/common.py | 9 -- packages/esssans/src/ess/sans/conversions.py | 24 +++++ packages/esssans/src/ess/sans/workflow.py | 3 +- .../esssans/tests/beam_center_finder_test.py | 7 +- packages/esssans/tests/beam_center_test.py | 90 ++++++++++++++++++ ...ce_IofQ_UncertaintyBroadcastMode.drop.hdf5 | Bin 15776 -> 15776 bytes ..._IofQxy_UncertaintyBroadcastMode.drop.hdf5 | Bin 73376 -> 73376 bytes packages/esssans/tests/loki/workflow_test.py | 19 ++++ 12 files changed, 213 insertions(+), 59 deletions(-) create mode 100644 packages/esssans/tests/beam_center_test.py diff --git a/packages/esssans/src/ess/isissans/general.py b/packages/esssans/src/ess/isissans/general.py index ee0127052..b8d4968c6 100644 --- a/packages/esssans/src/ess/isissans/general.py +++ b/packages/esssans/src/ess/isissans/general.py @@ -12,7 +12,6 @@ import scippneutron as scn import scippnexus as snx from ess.sans.types import ( - BeamCenter, DetectorIDs, DetectorPixelShape, DetectorPositionOffset, @@ -81,9 +80,9 @@ def default_parameters() -> dict: def to_detector_position_offset( - global_offset: DetectorBankOffset, beam_center: BeamCenter + global_offset: DetectorBankOffset, ) -> DetectorPositionOffset[RunType]: - return DetectorPositionOffset[RunType](global_offset - beam_center) + return DetectorPositionOffset[RunType](global_offset) def to_monitor_position_offset( diff --git a/packages/esssans/src/ess/isissans/sans2d.py b/packages/esssans/src/ess/isissans/sans2d.py index 6f839785a..119ad1626 100644 --- a/packages/esssans/src/ess/isissans/sans2d.py +++ b/packages/esssans/src/ess/isissans/sans2d.py @@ -6,7 +6,7 @@ import scipp as sc from ess.sans import SansWorkflow from ess.sans.parameters import typical_outputs -from ess.sans.types import BeamCenter, DetectorMasks, EmptyDetector, SampleRun +from ess.sans.types import DetectorMasks, EmptyDetector, SampleRun from ess.reduce.workflow import register_workflow @@ -25,33 +25,26 @@ """Sample holder mask""" -def detector_edge_mask( - beam_center: BeamCenter, sample: EmptyDetector[SampleRun] -) -> DetectorEdgeMask: - # These values were determined by hand before the beam center was available. - # We therefore undo the shift introduced by the beam center. - raw_pos = sample.coords['position'] + beam_center - mask_edges = (sc.abs(raw_pos.fields.x) > sc.scalar(0.48, unit='m')) | ( - sc.abs(raw_pos.fields.y) > sc.scalar(0.45, unit='m') +def detector_edge_mask(sample: EmptyDetector[SampleRun]) -> DetectorEdgeMask: + pos = sample.coords['position'] + mask_edges = (sc.abs(pos.fields.x) > sc.scalar(0.48, unit='m')) | ( + sc.abs(pos.fields.y) > sc.scalar(0.45, unit='m') ) return DetectorEdgeMask(mask_edges) def sample_holder_mask( - beam_center: BeamCenter, sample: EmptyDetector[SampleRun], low_counts_threshold: LowCountThreshold, ) -> SampleHolderMask: - # These values were determined by hand before the beam center was available. - # We therefore undo the shift introduced by the beam center. - raw_pos = sample.coords['position'] + beam_center + pos = sample.coords['position'] summed = sample.hist() holder_mask = ( (summed.data < low_counts_threshold) - & (raw_pos.fields.x > sc.scalar(0, unit='m')) - & (raw_pos.fields.x < sc.scalar(0.42, unit='m')) - & (raw_pos.fields.y < sc.scalar(0.05, unit='m')) - & (raw_pos.fields.y > sc.scalar(-0.15, unit='m')) + & (pos.fields.x > sc.scalar(0, unit='m')) + & (pos.fields.x < sc.scalar(0.42, unit='m')) + & (pos.fields.y < sc.scalar(0.05, unit='m')) + & (pos.fields.y > sc.scalar(-0.15, unit='m')) ) return SampleHolderMask(holder_mask) diff --git a/packages/esssans/src/ess/loki/larmor_workflow.py b/packages/esssans/src/ess/loki/larmor_workflow.py index 664feee8f..249ab9ba1 100644 --- a/packages/esssans/src/ess/loki/larmor_workflow.py +++ b/packages/esssans/src/ess/loki/larmor_workflow.py @@ -108,12 +108,14 @@ def larmor_detector_coord_transform_graph( *, sample_position: Position[snx.NXsample, RunType], source_position: Position[snx.NXsource, RunType], + beam_center: BeamCenter, gravity: GravityVector, ) -> ElasticCoordTransformGraph[RunType]: graph = sans_elastic( correct_for_gravity=correct_for_gravity, sample_position=sample_position, source_position=source_position, + beam_center=beam_center, gravity=gravity, ) return ElasticCoordTransformGraph[RunType]({**graph, **tof.elastic_Q('tof')}) diff --git a/packages/esssans/src/ess/sans/beam_center_finder.py b/packages/esssans/src/ess/sans/beam_center_finder.py index 4592bf1af..f88526f52 100644 --- a/packages/esssans/src/ess/sans/beam_center_finder.py +++ b/packages/esssans/src/ess/sans/beam_center_finder.py @@ -178,13 +178,25 @@ def beam_center_from_center_of_mass_alternative( if beam_stop_arm_width is None: beam_stop_arm_width = sc.scalar(0.02, unit='m') + workflow = _with_default_beam_center(workflow) + data = workflow.compute(CorrectedDetector[SampleRun, Numerator]) + return _find_beam_center(data, beam_stop_radius, beam_stop_arm_width) + + +def _with_default_beam_center(workflow: sciline.Pipeline) -> sciline.Pipeline: + """ + Return a workflow that can compute detector data even without a beam center set. + + Computing the detector data may require a beam center, but the beam center found by + the functions below does not depend on it: it is derived from the pixel positions, + which the beam center does not modify. + """ try: - beam_center = workflow.compute(BeamCenter) + workflow.compute(BeamCenter) except sciline.UnsatisfiedRequirement: - beam_center = sc.vector([0.0, 0.0, 0.0], unit='m') - workflow[BeamCenter] = beam_center - data = workflow.compute(CorrectedDetector[SampleRun, Numerator]) - return _find_beam_center(data, beam_stop_radius, beam_stop_arm_width) + beam_center + workflow = workflow.copy() + workflow[BeamCenter] = sc.vector([0.0, 0.0, 0.0], unit='m') + return workflow def beam_center_from_center_of_mass(workflow: sciline.Pipeline) -> BeamCenter: @@ -208,12 +220,7 @@ def beam_center_from_center_of_mass(workflow: sciline.Pipeline) -> BeamCenter: : The beam center position as a vector. """ - try: - beam_center = workflow.compute(BeamCenter) - except sciline.UnsatisfiedRequirement: - beam_center = sc.vector([0.0, 0.0, 0.0], unit='m') - workflow = workflow.copy() - workflow[BeamCenter] = beam_center + workflow = _with_default_beam_center(workflow) data = workflow.compute(CorrectedDetector[SampleRun, Numerator]) graph = workflow.compute(ElasticCoordTransformGraph[SampleRun]) @@ -257,21 +264,41 @@ def beam_center_from_center_of_mass(workflow: sciline.Pipeline) -> BeamCenter: com = com - coords['sample_position'] com_shift = com - sc.dot(com, n_beam) * n_beam xy = [com_shift.fields.x.value, com_shift.fields.y.value] - return beam_center + _offsets_to_vector(data=summed, xy=xy, graph=graph) + return BeamCenter( + _offsets_to_vector( + xy=xy, + unit_vectors=_beam_plane_unit_vectors(data=summed, graph=graph), + unit=summed.coords['position'].unit, + ) + ) -def _offsets_to_vector(data: sc.DataArray, xy: list[float], graph: dict) -> sc.Variable: +def _beam_plane_unit_vectors( + data: sc.DataArray, graph: dict +) -> tuple[sc.Variable, sc.Variable]: """ - Convert x,y offsets inside the plane normal to the beam to a vector in absolute - coordinates. + Return two unit vectors spanning the plane normal to the incident beam. + + These do not depend on the beam center, which is applied to the scattered beam and + leaves the incident beam unchanged. """ - u = data.coords['position'].unit - # Get two vectors that define the plane normal to the beam coords = data.transform_coords( ['cyl_x_unit_vector', 'cyl_y_unit_vector'], graph=graph ).coords - center = xy[0] * coords['cyl_x_unit_vector'] + xy[1] * coords['cyl_y_unit_vector'] - center.unit = u + return coords['cyl_x_unit_vector'], coords['cyl_y_unit_vector'] + + +def _offsets_to_vector( + xy: list[float], + unit_vectors: tuple[sc.Variable, sc.Variable], + unit: str, +) -> sc.Variable: + """ + Convert x,y offsets inside the plane normal to the beam to a vector in absolute + coordinates. + """ + center = xy[0] * unit_vectors[0] + xy[1] * unit_vectors[1] + center.unit = unit return center @@ -280,6 +307,7 @@ def _iofq_in_quadrants( workflow: sciline.Pipeline, detector: sc.DataArray, norm: sc.DataArray, + unit_vectors: tuple[sc.Variable, sc.Variable], ) -> dict[str, sc.DataArray]: """ Compute the intensity as a function of Q inside 4 quadrants in Phi. @@ -292,6 +320,8 @@ def _iofq_in_quadrants( The raw detector. norm: The denominator data for normalization. + unit_vectors: + Unit vectors spanning the plane normal to the beam, defining ``xy``. Returns ------- @@ -304,9 +334,11 @@ def _iofq_in_quadrants( phi_bins = sc.linspace('phi', -pi, pi, 5, unit='rad') quadrants = ['south-west', 'south-east', 'north-east', 'north-west'] - graph = workflow.compute(ElasticCoordTransformGraph[SampleRun]) workflow = workflow.copy() - workflow[BeamCenter] = _offsets_to_vector(data=detector, xy=xy, graph=graph) + workflow[BeamCenter] = _offsets_to_vector( + xy=xy, unit_vectors=unit_vectors, unit=detector.coords['position'].unit + ) + graph = workflow.compute(ElasticCoordTransformGraph[SampleRun]) calibrated = workflow.compute(CorrectedDetector[SampleRun, Numerator]) with_phi = calibrated.transform_coords( 'phi', graph=graph, keep_intermediate=False, keep_inputs=False @@ -325,8 +357,8 @@ def _iofq_in_quadrants( for i, quad in enumerate(quadrants): # Select pixels based on phi sel = (phi >= phi_bins[i]) & (phi < phi_bins[i + 1]) - # The beam center is applied when computing EmptyDetector, set quadrant - # *before* that step. + # Restrict the raw detector to the quadrant, so the denominator (solid angle) + # covers the same pixels as the numerator. workflow[NeXusComponent[snx.NXdetector, SampleRun]] = sc.DataGroup( data=detector[sel] ) @@ -544,6 +576,8 @@ def beam_center_from_iofq( com_shift = beam_center_from_center_of_mass(workflow) logger.info('Initial guess for beam center: %s', com_shift) + unit_vectors = _beam_plane_unit_vectors(data=data, graph=graph) + coords = data.transform_coords( ['cylindrical_x', 'cylindrical_y'], graph=graph ).coords @@ -556,13 +590,15 @@ def beam_center_from_iofq( res = minimize( _cost, x0=[com_shift.fields.x.value, com_shift.fields.y.value], - args=(workflow, detector, norm), + args=(workflow, detector, norm, unit_vectors), bounds=bounds, method=minimizer, tol=tolerance, ) - center = _offsets_to_vector(data=data, xy=res.x, graph=graph) + center = _offsets_to_vector( + xy=res.x, unit_vectors=unit_vectors, unit=data.coords['position'].unit + ) logger.info('Final beam center value: %s', center) logger.info('Beam center finder minimizer info: %s', res) return center diff --git a/packages/esssans/src/ess/sans/common.py b/packages/esssans/src/ess/sans/common.py index e3de665c1..debfe23e6 100644 --- a/packages/esssans/src/ess/sans/common.py +++ b/packages/esssans/src/ess/sans/common.py @@ -6,8 +6,6 @@ import scipp as sc from scipp.constants import g -from .types import BeamCenter, DetectorPositionOffset, RunType - def gravity_vector() -> sc.Variable: """ @@ -91,10 +89,3 @@ def mask_range( else: out.masks[name] = mask_values return out - - -def beam_center_to_detector_position_offset( - beam_center: BeamCenter, -) -> DetectorPositionOffset[RunType]: - """Convert beam center to detector position offset for all runs.""" - return DetectorPositionOffset[RunType](-beam_center) diff --git a/packages/esssans/src/ess/sans/conversions.py b/packages/esssans/src/ess/sans/conversions.py index 44dadbd2c..d49c87119 100644 --- a/packages/esssans/src/ess/sans/conversions.py +++ b/packages/esssans/src/ess/sans/conversions.py @@ -13,6 +13,7 @@ from .common import mask_range from .types import ( + BeamCenter, BinnedQ, BinnedQxQy, CorrectForGravity, @@ -33,6 +34,24 @@ ) +def _scattered_beam_with_beam_center(beam_center: sc.Variable): + """ + Return a provider for ``scattered_beam`` that accounts for the beam center. + + Scattering angles must be measured relative to the actual beam, which in general + does not coincide with the nominal beam axis defined by source and sample. Shifting + the pixel positions by the beam center maps the actual beam onto the nominal axis, + so that all angles derived from the scattered beam are relative to the actual beam. + """ + + def scattered_beam( + position: sc.Variable, sample_position: sc.Variable + ) -> sc.Variable: + return position - sample_position - beam_center + + return scattered_beam + + def cyl_unit_vectors(incident_beam: sc.Variable, gravity: sc.Variable): vectors = beam_aligned_unit_vectors(incident_beam=incident_beam, gravity=gravity) return { @@ -102,6 +121,7 @@ def sans_elastic( *, sample_position: Position[snx.NXsample, RunType], source_position: Position[snx.NXsource, RunType], + beam_center: BeamCenter, gravity: GravityVector, ) -> ElasticCoordTransformGraph[RunType]: """ @@ -142,12 +162,16 @@ def sans_elastic( Position of the sample as a vector. source_position: Position of the source as a vector. + beam_center: + Offset of the beam from the nominal beam axis defined by source and sample, + in the plane normal to the beam. """ # noqa: E501 graph = { **beamline.beamline(scatter=True), **tof.elastic_Q('wavelength'), 'sample_position': lambda: sample_position, 'source_position': lambda: source_position, + 'scattered_beam': _scattered_beam_with_beam_center(beam_center), 'gravity': lambda: gravity, } if correct_for_gravity: diff --git a/packages/esssans/src/ess/sans/workflow.py b/packages/esssans/src/ess/sans/workflow.py index 16303599b..fa854f8ad 100644 --- a/packages/esssans/src/ess/sans/workflow.py +++ b/packages/esssans/src/ess/sans/workflow.py @@ -9,7 +9,7 @@ from ess.reduce.parameter import parameter_mappers from ess.reduce.unwrap import GenericUnwrapWorkflow, WavelengthLutMode -from . import common, conversions, i_of_q, masking, normalization +from . import conversions, i_of_q, masking, normalization from .types import ( BackgroundRun, CorrectForGravity, @@ -155,7 +155,6 @@ def with_background_runs( *i_of_q.providers, *masking.providers, *normalization.providers, - common.beam_center_to_detector_position_offset, ) """ List of providers for setting up a Sciline pipeline. diff --git a/packages/esssans/tests/beam_center_finder_test.py b/packages/esssans/tests/beam_center_finder_test.py index 98f23056c..edad55e32 100644 --- a/packages/esssans/tests/beam_center_finder_test.py +++ b/packages/esssans/tests/beam_center_finder_test.py @@ -3,19 +3,19 @@ import sciline import scipp as sc +import scippnexus as snx from ess.sans.beam_center_finder import beam_center_from_center_of_mass from ess.sans.common import gravity_vector from ess.sans.conversions import ElasticCoordTransformGraph, sans_elastic from ess.sans.types import ( - CorrectForGravity, + BeamCenter, CorrectedDetector, + CorrectForGravity, Numerator, Position, SampleRun, ) -import scippnexus as snx - def make_detector( *, @@ -67,6 +67,7 @@ def make_workflow( CorrectForGravity(False), sample_position=Position[snx.NXsample, SampleRun](sample_position), source_position=Position[snx.NXsource, SampleRun](source_position), + beam_center=BeamCenter(sc.vector([0, 0, 0], unit='m')), gravity=gravity_vector(), ) return workflow diff --git a/packages/esssans/tests/beam_center_test.py b/packages/esssans/tests/beam_center_test.py new file mode 100644 index 000000000..ef1152c47 --- /dev/null +++ b/packages/esssans/tests/beam_center_test.py @@ -0,0 +1,90 @@ +# SPDX-License-Identifier: BSD-3-Clause +# Copyright (c) 2023 Scipp contributors (https://github.com/scipp) +"""Tests for how the beam center is applied, as opposed to how it is determined.""" + +import pytest +import scipp as sc +import scippnexus as snx +from ess.sans.common import gravity_vector +from ess.sans.conversions import sans_elastic +from ess.sans.types import BeamCenter, CorrectForGravity, Position, SampleRun + +SAMPLE_POSITION = sc.vector([0.0, 0.0, 0.0], unit='m') +# Offset of the source from the sample, i.e., the nominal beam is along Z. +SOURCE_OFFSET = sc.vector([0.0, 0.0, -20.0], unit='m') +NO_BEAM_CENTER = sc.vector([0.0, 0.0, 0.0], unit='m') + + +def make_graph( + *, + beam_center: sc.Variable, + correct_for_gravity: bool = False, + sample_position: sc.Variable = SAMPLE_POSITION, +) -> dict: + return sans_elastic( + CorrectForGravity(correct_for_gravity), + sample_position=Position[snx.NXsample, SampleRun](sample_position), + source_position=Position[snx.NXsource, SampleRun]( + sample_position + SOURCE_OFFSET + ), + beam_center=BeamCenter(beam_center), + gravity=gravity_vector(), + ) + + +def angle(position: sc.Variable, graph: dict, name: str = 'two_theta') -> sc.Variable: + # A negligible wavelength keeps the gravity drop out of the comparison. + da = sc.DataArray( + data=sc.scalar(1.0), + coords={'position': position, 'wavelength': sc.scalar(1e-6, unit='angstrom')}, + ) + return da.transform_coords(name, graph=graph).coords[name] + + +def assert_zero_angle(value: sc.Variable) -> None: + assert sc.isclose( + value, sc.scalar(0.0, unit='rad'), atol=sc.scalar(1e-9, unit='rad') + ) + + +def test_two_theta_is_zero_on_beam_axis_without_beam_center() -> None: + position = sc.vector([0.0, 0.0, 5.0], unit='m') + assert_zero_angle(angle(position, make_graph(beam_center=NO_BEAM_CENTER))) + + +def test_two_theta_is_zero_at_beam_center() -> None: + beam_center = sc.vector([0.05, -0.03, 0.0], unit='m') + position = sc.vector([0.05, -0.03, 5.0], unit='m') + assert_zero_angle(angle(position, make_graph(beam_center=beam_center))) + + +def test_beam_center_shifts_two_theta() -> None: + position = sc.vector([0.05, -0.03, 5.0], unit='m') + without = angle(position, make_graph(beam_center=NO_BEAM_CENTER)) + with_center = angle( + position, make_graph(beam_center=sc.vector([0.05, -0.03, 0.0], unit='m')) + ) + assert without.value > 0.0 + assert with_center.value < without.value + + +def test_phi_is_measured_around_the_beam_center() -> None: + beam_center = sc.vector([0.05, -0.03, 0.0], unit='m') + # Directly to the right of the beam center, i.e., phi == 0. + position = sc.vector([0.25, -0.03, 5.0], unit='m') + assert_zero_angle(angle(position, make_graph(beam_center=beam_center), name='phi')) + + +@pytest.mark.parametrize('correct_for_gravity', [False, True]) +def test_beam_center_is_applied_relative_to_sample_position( + correct_for_gravity: bool, +) -> None: + sample_position = sc.vector([0.1, -0.07, 0.0], unit='m') + beam_center = sc.vector([0.05, -0.03, 0.0], unit='m') + position = sample_position + beam_center + sc.vector([0, 0, 5.0], unit='m') + graph = make_graph( + beam_center=beam_center, + correct_for_gravity=correct_for_gravity, + sample_position=sample_position, + ) + assert_zero_angle(angle(position, graph)) diff --git a/packages/esssans/tests/loki/reference_IofQ_UncertaintyBroadcastMode.drop.hdf5 b/packages/esssans/tests/loki/reference_IofQ_UncertaintyBroadcastMode.drop.hdf5 index 6a6c950bd0344a86d469748665466c7f9944611d..bb6aefc33edaee32b6a5220518356a7e89c12488 100644 GIT binary patch delta 946 zcmZXTe^AqP9L8s3jA4R|5JcJn5;CquF!;Pb8~6Tv4LIgqod^naMyY{Bhrbw5KrwPc z3R{l-&{Mbo540mG2&fab9AS+7(Sj&D}ck?xhcKi=`{0&S7 zQQ`_!+qg*TQDuMXb3eOqd8}K?GzV{&b3-;0mvZhHR}gRF%%wVxT|dZmRqx|0zov4h zhhOA)^D<5`A>q1T_v9i!aN+csbL`uxF}7da&l)5b*hh;Utmf4w7O=C9MbZ;Yyr5^A zV~1H3Ps^kug{)ta!;%AcvA%7o4Bky-t=*fL>djd8mP?F=4SGg1gH^`zFN86}!%()@ z8pQ5-OW8!%I_9fh!-PMJ*(4`si%ae-$VbHD-w?8Nfq;D{e~b+|=JAD)C9I5{!?N5t zRA)_LvGgX^zj71j^RD5_Eu-i^Fo>E5{kW>}67F|gMw|UIJ~7>g)8h{GkJFsPPGcvY z%&_9Ev@eij=P~cIb_|q%in}+rpz!X;=m>8>D%nxSzs< z9-jp=V826>x6BYt!Rbj7<3B;XVkStKa-1|Tj*-I&*U2UIDCyAOAXk&7h*L66M%-se zZ}u$7|8thOeLY9s+xn0kk}ML_=p!Pma)I2lt`J)x0;i`40{R|+X;!$UqRr@b_nHv52~7Lknzbh2vom7 zy5|yP@OiYi?s4j@71PKbe>!*|h|VbG^r}uqH6(^^s(Ct&uA5J$Vp|Gb|JrWKx9*_2 fg;E;&hn{AxHPee}7HTYNlLQ;Z%O7oxx-I+*n)Y#g delta 969 zcmZ{jeNfYN9LI-1+lmmTHJr-0*rWC(kS8mfk$bIdpru_=z~~ z>a`8r35SB)X!qgL-dN0iT;Rg_COeqyj-72;Jjj0W{+4l%+E{VCfo*+L&rXwLtoLCV zOVJ%-QU4rdhLIdLxO@+*Tk#f4iiu+(>TS%?6U}CJMX+aGl^Q1T3}r)|3KsC)Y8Er^ z&kD@GELJRKoY|XM-WRiz*G0@4A!0xBo?_EpLKdIKXWIp?>^HKADXf3sx)7()-)I2I(0qgp+Jve$3nx#24qJU@tujTTg09>BT20c@D*#p$WW=xD_k$}FFzKtcW;DG`UwbseGW>)rSQXHG1zP#@F0>8G40Oa zAH#z&(Ia9t&yX80-zA#5hM!63vQctYIZB$8w@K=(oqWFOC$cpA7TH{Nhcv~Fk#GDa z$du<@BFvm762X1a(C;8MiL+!#{ugnboF`tjF7RIS6EImJgsWm91YKDI}jrOVa4^ ki6r`&=p&jfK0=+=R?|~iI(n(5#b;%eXyLj|Ywz>_1!9wcr2qf` diff --git a/packages/esssans/tests/loki/reference_IofQxy_UncertaintyBroadcastMode.drop.hdf5 b/packages/esssans/tests/loki/reference_IofQxy_UncertaintyBroadcastMode.drop.hdf5 index 28855e1670499057503a06037964e5c717cc7f86..7b3593bcddc2f7794bded255b7d8cbf7278f2ed0 100644 GIT binary patch literal 73376 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 Xju7ifTOohMz=+p3JyjHEKOO!b!+@j< literal 73376 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 diff --git a/packages/esssans/tests/loki/workflow_test.py b/packages/esssans/tests/loki/workflow_test.py index 0d20b94e1..e754620da 100644 --- a/packages/esssans/tests/loki/workflow_test.py +++ b/packages/esssans/tests/loki/workflow_test.py @@ -10,6 +10,7 @@ BackgroundRun, BackgroundSubtractedIofQ, BeamCenter, + EmptyDetector, Filename, IntensityQ, LookupTableFilename, @@ -18,6 +19,7 @@ QBins, ReturnEvents, SampleRun, + SolidAngle, UncertaintyBroadcastMode, WavelengthDetector, ) @@ -57,6 +59,23 @@ def test_loki_larmor_workflow_parameters_with_param_returns_param(): assert parameters.keys() == {ReturnEvents} +def test_beam_center_does_not_move_detector_positions(larmor_workflow): + wf = larmor_workflow() + wf[BeamCenter] = sc.vector([0.0, 0.0, 0.0], unit='m') + reference = wf.compute(EmptyDetector[SampleRun]).coords['position'] + wf[BeamCenter] = sc.vector([0.03, -0.02, 0.0], unit='m') + position = wf.compute(EmptyDetector[SampleRun]).coords['position'] + assert sc.identical(position, reference) + + +def test_solid_angle_is_independent_of_beam_center(larmor_workflow): + wf = larmor_workflow() + wf[BeamCenter] = sc.vector([0.0, 0.0, 0.0], unit='m') + reference = wf.compute(SolidAngle[SampleRun]) + wf[BeamCenter] = sc.vector([0.03, -0.02, 0.0], unit='m') + assert sc.identical(wf.compute(SolidAngle[SampleRun]), reference) + + def test_loki_larmor_workflow_compute_with_single_pixel_mask(larmor_workflow): wf = larmor_workflow(no_masks=False) wf[UncertaintyBroadcastMode] = UncertaintyBroadcastMode.drop From ca6a774b70d9f51767e10450e217c33554a9cd8e Mon Sep 17 00:00:00 2001 From: Simon Heybrock Date: Wed, 26 Aug 2026 05:15:45 +0000 Subject: [PATCH 3/4] feat(sans): treat the beam center as a beam direction The beam center was applied as the same transverse shift to every pixel. On an instrument with banks at different distances, such as Loki, that is wrong: the beam center is set by the collimation, so it describes a beam direction, and a given angular deviation shows up as a proportionally smaller transverse offset on a bank closer to the sample. Applying the offset determined on the rear bank unchanged to the window frames overcorrects them by up to a factor of five. BeamCenter therefore becomes the position of the beam center relative to the sample: the transverse offset together with the distance at which it was determined. That distance is what turns an offset into a direction, so it has to be part of the value; a beam center given as an offset alone is now rejected rather than silently misapplied. A zero vector still means "no correction". The finders report the distance they used, so values obtained from them need no change beyond being carried around whole. Every pixel is then shifted in proportion to its own distance from the sample, which also covers the depth of a bank without any special treatment. Note that the distance reported by the center-of-mass finder is the intensity-weighted mean depth of the bank rather than its geometric center; see the docstring for why that is consistent, and for the limits of resolving anything within a bank. For the Loki-at-Larmor reference data the results move by less than 0.3 sigma of their own statistical uncertainty in almost every bin, so the reference results are regenerated. --- .../common/beam-center-finder.ipynb | 16 ++ .../esssans/src/ess/loki/larmor_workflow.py | 6 +- .../src/ess/sans/beam_center_finder.py | 151 +++++++++++------- packages/esssans/src/ess/sans/conversions.py | 49 ++++-- packages/esssans/src/ess/sans/parameters.py | 4 +- packages/esssans/src/ess/sans/types.py | 23 ++- .../esssans/tests/beam_center_finder_test.py | 71 +++++++- packages/esssans/tests/beam_center_test.py | 47 ++++-- .../tests/isissans/sans2d_reduction_test.py | 8 +- packages/esssans/tests/loki/iofq_test.py | 4 +- ...ce_IofQ_UncertaintyBroadcastMode.drop.hdf5 | Bin 15776 -> 15776 bytes ..._IofQxy_UncertaintyBroadcastMode.drop.hdf5 | Bin 73376 -> 73376 bytes 12 files changed, 281 insertions(+), 98 deletions(-) diff --git a/packages/esssans/docs/user-guide/common/beam-center-finder.ipynb b/packages/esssans/docs/user-guide/common/beam-center-finder.ipynb index 736fc73fe..887497cdb 100644 --- a/packages/esssans/docs/user-guide/common/beam-center-finder.ipynb +++ b/packages/esssans/docs/user-guide/common/beam-center-finder.ipynb @@ -188,6 +188,10 @@ "id": "13", "metadata": {}, "source": [ + "The result is the beam center relative to the sample.\n", + "Its component along the beam is the distance from the sample at which the transverse offset was determined, here the distance of the detector panel.\n", + "That distance is part of the result because the same beam direction corresponds to a proportionally smaller transverse offset on a detector closer to the sample.\n", + "\n", "We can now update our previous figure with the new position of the beam center (pink dot),\n", "which is clearly in the center of the beam/beam stop." ] @@ -443,16 +447,28 @@ "metadata": {}, "outputs": [], "source": [ + "from ess.sans.beam_center_finder import _BeamPlane\n", + "from ess.sans.conversions import ElasticCoordTransformGraph\n", + "\n", "workflow = workflow.copy()\n", "workflow[QBins] = q_bins\n", "workflow[ReturnEvents] = False\n", "workflow[DimsToKeep] = ()\n", "workflow[WavelengthMask] = None\n", "workflow[WavelengthBands] = None\n", + "# Offsets inside the plane normal to the beam only define a beam center together with\n", + "# the distance from the sample at which they are given. We take that distance from the\n", + "# center-of-mass estimate above.\n", + "plane = _BeamPlane.from_beam_center(\n", + " data=workflow.compute(CorrectedDetector[SampleRun, Numerator]),\n", + " graph=workflow.compute(ElasticCoordTransformGraph[SampleRun]),\n", + " beam_center=com,\n", + ")\n", "kwargs = dict( # noqa: C408\n", " workflow=workflow,\n", " detector=detector['data'],\n", " norm=workflow.compute(CleanDirectBeam),\n", + " plane=plane,\n", ")" ] }, diff --git a/packages/esssans/src/ess/loki/larmor_workflow.py b/packages/esssans/src/ess/loki/larmor_workflow.py index 249ab9ba1..0ee8d66e4 100644 --- a/packages/esssans/src/ess/loki/larmor_workflow.py +++ b/packages/esssans/src/ess/loki/larmor_workflow.py @@ -188,5 +188,9 @@ def LokiAtLarmorTutorialWorkflow() -> sciline.Pipeline: data.loki_tutorial_run_60392() ) workflow[Filename[EmptyBeamRun]] = str(data.loki_tutorial_run_60392()) - workflow[BeamCenter] = sc.vector(value=[-0.02914868, -0.01816138, 0.0], unit='m') + # Beam center determined with `beam_center_from_center_of_mass`, the Z component + # being the distance from the sample at which it was determined. + workflow[BeamCenter] = sc.vector( + value=[-0.02914868, -0.01816138, 4.11610], unit='m' + ) return workflow diff --git a/packages/esssans/src/ess/sans/beam_center_finder.py b/packages/esssans/src/ess/sans/beam_center_finder.py index f88526f52..746ea85d2 100644 --- a/packages/esssans/src/ess/sans/beam_center_finder.py +++ b/packages/esssans/src/ess/sans/beam_center_finder.py @@ -2,6 +2,7 @@ # Copyright (c) 2023 Scipp contributors (https://github.com/scipp) import uuid +from dataclasses import dataclass import numpy as np import sciline @@ -120,7 +121,6 @@ def _find_beam_center( > slope * distance_to_center.fields.x - beam_stop_arm_width ) - center.data.fields.z = sc.scalar(0.0, unit=center.data.unit) return center.data @@ -180,7 +180,16 @@ def beam_center_from_center_of_mass_alternative( workflow = _with_default_beam_center(workflow) data = workflow.compute(CorrectedDetector[SampleRun, Numerator]) - return _find_beam_center(data, beam_stop_radius, beam_stop_arm_width) + graph = workflow.compute(ElasticCoordTransformGraph[SampleRun]) + com = _find_beam_center(data, beam_stop_radius, beam_stop_arm_width) + return BeamCenter(com - _sample_position(data, graph)) + + +def _sample_position(data: sc.DataArray, graph: dict) -> sc.Variable: + """Sample position as defined by the coordinate transformation graph.""" + return data.transform_coords('sample_position', graph=graph).coords[ + 'sample_position' + ] def _with_default_beam_center(workflow: sciline.Pipeline) -> sciline.Pipeline: @@ -206,9 +215,37 @@ def beam_center_from_center_of_mass(workflow: sciline.Pipeline) -> BeamCenter: The center-of-mass is simply the weighted mean of the positions. Areas with low counts are excluded from the center of mass calculation, as they typically fall into asymmetric regions of the detector panel and would thus lead - to a biased result. The beam is assumed to be roughly aligned with the Z axis. - The returned beam center is the component normal to the beam direction, projected - onto the X-Y plane. + to a biased result. + + The result is the center-of-mass relative to the sample, i.e., the transverse offset + of the beam together with the distance from the sample at which that offset was + determined. See :py:class:`ess.sans.types.BeamCenter`. + + On a bank with depth, the reported distance is the intensity-weighted mean depth, + not the geometric center of the bank: layers closer to the sample see more counts + and pull it forward. That is consistent rather than wrong. The transverse position + of the beam is linear in the distance from the sample, so any intensity-weighted + average of points on the beam is again a point on the beam. The weighting moves the + result along the beam, not away from it, and the reported distance says where it + ended up. + + This holds as long as the intensity is symmetric around the beam at every depth. It + is not exactly true: masking, the shadow of the beam stop and, with gravity, the + wavelength-dependent drop all bias the center-of-mass, and they do so differently at + different depths. The resulting uncertainty on the distance is a few centimetres for + a Loki bank, which is of the order of the depth of the bank itself. The distance is + used to extrapolate the transverse offset to other banks, where an error of a few + centimetres out of several metres is negligible, but it means the variation of the + correction *within* one bank is not resolved any better than the noise on it. + + The result is anchored at the sample position, so an error in the sample position at + the time of determination tilts the inferred beam direction by that error divided by + the distance. One millimetre of transverse error at five metres is 0.2 mrad, which + is 0.24 mm of transverse error on a bank one metre from the sample. Errors along the + beam are second order and negligible. Note that this is an error on the beam + direction and does not require the sample to be in the same place for the run the + beam center is applied to: the direction is re-anchored at that run's own sample + position. Parameters ---------- @@ -253,53 +290,50 @@ def beam_center_from_center_of_mass(workflow: sciline.Pipeline) -> BeamCenter: pos = pos[select] com = sc.sum(pos * v) / v.sum() - # We compute the shift between the incident beam direction and the center-of-mass. - # Both are anchored at the sample, so the center-of-mass must be taken relative to - # the sample position. - coords = summed.transform_coords( - ['incident_beam', 'sample_position'], graph=graph - ).coords - incident_beam = coords['incident_beam'] - n_beam = incident_beam / sc.norm(incident_beam) - com = com - coords['sample_position'] - com_shift = com - sc.dot(com, n_beam) * n_beam - xy = [com_shift.fields.x.value, com_shift.fields.y.value] - return BeamCenter( - _offsets_to_vector( - xy=xy, - unit_vectors=_beam_plane_unit_vectors(data=summed, graph=graph), - unit=summed.coords['position'].unit, - ) - ) + # The center-of-mass is a point on the beam, so relative to the sample it is the + # beam center, including the distance at which it was determined. + return BeamCenter(com - _sample_position(summed, graph)) -def _beam_plane_unit_vectors( - data: sc.DataArray, graph: dict -) -> tuple[sc.Variable, sc.Variable]: +@dataclass(frozen=True) +class _BeamPlane: """ - Return two unit vectors spanning the plane normal to the incident beam. + Plane normal to the incident beam in which beam-center offsets are expressed. - These do not depend on the beam center, which is applied to the scattered beam and - leaves the incident beam unchanged. + ``axis`` points from the sample to the plane, i.e., it carries the distance at which + the beam center is determined. Offsets alone do not define a beam direction, so + searching for a beam center means searching within such a plane. """ - coords = data.transform_coords( - ['cyl_x_unit_vector', 'cyl_y_unit_vector'], graph=graph - ).coords - return coords['cyl_x_unit_vector'], coords['cyl_y_unit_vector'] + unit_x: sc.Variable + unit_y: sc.Variable + axis: sc.Variable + + @staticmethod + def from_beam_center( + data: sc.DataArray, graph: dict, beam_center: sc.Variable + ) -> '_BeamPlane': + """Plane containing ``beam_center``, normal to the incident beam.""" + coords = data.transform_coords( + ['cyl_x_unit_vector', 'cyl_y_unit_vector', 'incident_beam'], graph=graph + ).coords + incident_beam = coords['incident_beam'] + direction = incident_beam / sc.norm(incident_beam) + return _BeamPlane( + unit_x=coords['cyl_x_unit_vector'], + unit_y=coords['cyl_y_unit_vector'], + axis=sc.dot(beam_center, direction) * direction, + ) -def _offsets_to_vector( - xy: list[float], - unit_vectors: tuple[sc.Variable, sc.Variable], - unit: str, -) -> sc.Variable: - """ - Convert x,y offsets inside the plane normal to the beam to a vector in absolute - coordinates. - """ - center = xy[0] * unit_vectors[0] + xy[1] * unit_vectors[1] - center.unit = unit - return center + def offsets(self, beam_center: sc.Variable) -> list[float]: + """Components of ``beam_center`` within the plane.""" + return [sc.dot(beam_center, e).value for e in (self.unit_x, self.unit_y)] + + def beam_center(self, xy: list[float]) -> sc.Variable: + """Beam center given by offsets within the plane.""" + center = xy[0] * self.unit_x + xy[1] * self.unit_y + center.unit = self.axis.unit + return center + self.axis def _iofq_in_quadrants( @@ -307,7 +341,7 @@ def _iofq_in_quadrants( workflow: sciline.Pipeline, detector: sc.DataArray, norm: sc.DataArray, - unit_vectors: tuple[sc.Variable, sc.Variable], + plane: _BeamPlane, ) -> dict[str, sc.DataArray]: """ Compute the intensity as a function of Q inside 4 quadrants in Phi. @@ -320,8 +354,8 @@ def _iofq_in_quadrants( The raw detector. norm: The denominator data for normalization. - unit_vectors: - Unit vectors spanning the plane normal to the beam, defining ``xy``. + plane: + The plane normal to the beam in which ``xy`` are given. Returns ------- @@ -335,9 +369,7 @@ def _iofq_in_quadrants( quadrants = ['south-west', 'south-east', 'north-east', 'north-west'] workflow = workflow.copy() - workflow[BeamCenter] = _offsets_to_vector( - xy=xy, unit_vectors=unit_vectors, unit=detector.coords['position'].unit - ) + workflow[BeamCenter] = plane.beam_center(xy) graph = workflow.compute(ElasticCoordTransformGraph[SampleRun]) calibrated = workflow.compute(CorrectedDetector[SampleRun, Numerator]) with_phi = calibrated.transform_coords( @@ -573,10 +605,13 @@ def beam_center_from_iofq( workflow[QBins] = q_bins # Use center of mass to get initial guess for beam center - com_shift = beam_center_from_center_of_mass(workflow) - logger.info('Initial guess for beam center: %s', com_shift) + com = beam_center_from_center_of_mass(workflow) + logger.info('Initial guess for beam center: %s', com) - unit_vectors = _beam_plane_unit_vectors(data=data, graph=graph) + # The refinement below only varies the offsets within the plane normal to the beam. + # The distance at which the beam center is determined is taken from the initial + # guess and kept fixed. + plane = _BeamPlane.from_beam_center(data=data, graph=graph, beam_center=com) coords = data.transform_coords( ['cylindrical_x', 'cylindrical_y'], graph=graph @@ -589,16 +624,14 @@ def beam_center_from_iofq( # Refine using Scipy optimize res = minimize( _cost, - x0=[com_shift.fields.x.value, com_shift.fields.y.value], - args=(workflow, detector, norm, unit_vectors), + x0=plane.offsets(com), + args=(workflow, detector, norm, plane), bounds=bounds, method=minimizer, tol=tolerance, ) - center = _offsets_to_vector( - xy=res.x, unit_vectors=unit_vectors, unit=data.coords['position'].unit - ) + center = plane.beam_center(res.x) logger.info('Final beam center value: %s', center) logger.info('Beam center finder minimizer info: %s', res) return center diff --git a/packages/esssans/src/ess/sans/conversions.py b/packages/esssans/src/ess/sans/conversions.py index d49c87119..8d4edff17 100644 --- a/packages/esssans/src/ess/sans/conversions.py +++ b/packages/esssans/src/ess/sans/conversions.py @@ -1,5 +1,7 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright (c) 2023 Scipp contributors (https://github.com/scipp) +from collections.abc import Callable + import sciline import scipp as sc import scippnexus as snx @@ -34,20 +36,44 @@ ) -def _scattered_beam_with_beam_center(beam_center: sc.Variable): +def _scattered_beam_with_beam_center( + beam_center: sc.Variable, incident_beam: sc.Variable +) -> Callable[[sc.Variable, sc.Variable], sc.Variable]: """ Return a provider for ``scattered_beam`` that accounts for the beam center. - Scattering angles must be measured relative to the actual beam, which in general - does not coincide with the nominal beam axis defined by source and sample. Shifting - the pixel positions by the beam center maps the actual beam onto the nominal axis, - so that all angles derived from the scattered beam are relative to the actual beam. + Scattering angles must be measured relative to the actual beam. The beam passes + through the sample, but its direction, set by the collimation, in general deviates + from the nominal beam axis defined by source and sample. The beam center is a point + on the actual beam, so together with the sample position it defines that direction. + + Every pixel is shifted transversely in proportion to its distance from the sample, + which maps the actual beam onto the nominal axis: by the full transverse offset at + the distance where the beam center was determined, by half of it at half that + distance. Only the ratio of the offset to that distance is used, so scaling + ``beam_center`` leaves the result unchanged. + + The shift is a shear rather than a rotation, hence exact along the beam and + approximate elsewhere, with a relative error in ``two_theta`` of the order of the + squared beam tilt, i.e., below 1e-5 for a beam center of 20 mm at 5 m. """ + axis = incident_beam / sc.norm(incident_beam) + distance = sc.dot(beam_center, axis) + if distance.value <= 0.0: + raise ValueError( + f'Invalid beam center {beam_center}. The beam center is the position of ' + 'the beam relative to the sample, so its component along the beam must be ' + 'the (positive) distance from the sample to the plane in which the beam ' + 'center was determined. A beam center given as a transverse offset alone, ' + 'without that distance, cannot define a beam direction.' + ) + offset = beam_center - distance * axis def scattered_beam( position: sc.Variable, sample_position: sc.Variable ) -> sc.Variable: - return position - sample_position - beam_center + beam = position - sample_position + return beam - offset * (sc.dot(beam, axis) / distance) return scattered_beam @@ -163,17 +189,22 @@ def sans_elastic( source_position: Position of the source as a vector. beam_center: - Offset of the beam from the nominal beam axis defined by source and sample, - in the plane normal to the beam. + Position of the beam center relative to the sample, i.e., the transverse offset + of the beam together with the distance from the sample at which that offset was + determined. Set to a zero vector to apply no correction. """ # noqa: E501 graph = { **beamline.beamline(scatter=True), **tof.elastic_Q('wavelength'), 'sample_position': lambda: sample_position, 'source_position': lambda: source_position, - 'scattered_beam': _scattered_beam_with_beam_center(beam_center), 'gravity': lambda: gravity, } + # A zero beam center means no correction, leaving the plain beamline graph. + if sc.norm(beam_center).value != 0.0: + graph['scattered_beam'] = _scattered_beam_with_beam_center( + beam_center, incident_beam=sample_position - source_position + ) if correct_for_gravity: del graph['two_theta'] graph[('two_theta', 'phi')] = scattering_angles_with_gravity diff --git a/packages/esssans/src/ess/sans/parameters.py b/packages/esssans/src/ess/sans/parameters.py index 561e88d57..cfb5f1efe 100644 --- a/packages/esssans/src/ess/sans/parameters.py +++ b/packages/esssans/src/ess/sans/parameters.py @@ -15,7 +15,7 @@ MultiFilenameParameter, ParamWithOptions, StringParameter, - Vector2dParameter, + Vector3dParameter, parameter_registry, ) @@ -112,7 +112,7 @@ parameter_registry[DirectBeamFilename] = FilenameParameter.from_type( DirectBeamFilename, switchable=True ) -parameter_registry[BeamCenter] = Vector2dParameter.from_type( +parameter_registry[BeamCenter] = Vector3dParameter.from_type( BeamCenter, default=sc.vector([0, 0, 0], unit='m') ) diff --git a/packages/esssans/src/ess/sans/types.py b/packages/esssans/src/ess/sans/types.py index 1c7152070..ee5340097 100644 --- a/packages/esssans/src/ess/sans/types.py +++ b/packages/esssans/src/ess/sans/types.py @@ -137,7 +137,28 @@ class TransmissionRun(Generic[ScatteringRunType]): """Filename of direct beam correction""" BeamCenter = NewType('BeamCenter', sc.Variable) -"""Beam center, may be set directly or computed using beam-center finder""" +"""Position of the beam center relative to the sample. + +The beam passes through the sample, but its direction, set by the collimation, in +general deviates from the nominal beam axis defined by source and sample. Together with +the sample position, the beam center defines that direction: it is a point on the actual +beam, given as an offset from the sample. + +Its component along the nominal beam is therefore the distance from the sample at which +the transverse offset was determined, typically the distance of the detector bank used +for the beam-center determination. Recording that distance is essential, since the same +angular deviation of the beam corresponds to a proportionally smaller transverse offset +on banks closer to the sample. + +Only the direction of this vector enters the correction, its magnitude cancels. A value +determined on one detector bank therefore applies to all banks, and, as long as the beam +direction is set by the collimation alone, also to a detector that has been moved to a +different distance from the sample. The value is tied to the collimation that produced +it, so re-determine the beam center whenever the slits change. + +Set to a zero vector to apply no beam-center correction. May be set directly or computed +using a beam-center finder, see :py:mod:`ess.sans.beam_center_finder`. +""" WavelengthMask = NewType('WavelengthMask', sc.DataArray | None) """Optional wavelength mask""" diff --git a/packages/esssans/tests/beam_center_finder_test.py b/packages/esssans/tests/beam_center_finder_test.py index edad55e32..a664f09c6 100644 --- a/packages/esssans/tests/beam_center_finder_test.py +++ b/packages/esssans/tests/beam_center_finder_test.py @@ -73,27 +73,82 @@ def make_workflow( return workflow +DISTANCE = sc.scalar(5.0, unit='m') + + def test_center_of_mass_finds_center_of_symmetric_pattern() -> None: center = sc.vector([0.1, -0.07, 0.0], unit='m') workflow = make_workflow( - detector=make_detector(center=center, distance=sc.scalar(5.0, unit='m')), + detector=make_detector(center=center, distance=DISTANCE), sample_position=sc.vector([0, 0, 0], unit='m'), ) result = beam_center_from_center_of_mass(workflow) - assert sc.allclose(result, center, atol=sc.scalar(1e-3, unit='m')) + assert sc.allclose( + result, center + DISTANCE * sc.vector([0, 0, 1]), atol=sc.scalar(1e-3, unit='m') + ) + + +def test_center_of_mass_records_the_distance_at_which_it_was_determined() -> None: + # The beam center only defines a beam direction together with the distance from the + # sample at which it was determined, so the finder must report that distance. + center = sc.vector([0.1, -0.07, 0.0], unit='m') + near = beam_center_from_center_of_mass( + make_workflow( + detector=make_detector(center=center, distance=sc.scalar(2.0, unit='m')), + sample_position=sc.vector([0, 0, 0], unit='m'), + ) + ) + far = beam_center_from_center_of_mass( + make_workflow( + detector=make_detector(center=center, distance=sc.scalar(8.0, unit='m')), + sample_position=sc.vector([0, 0, 0], unit='m'), + ) + ) + tol = sc.scalar(1e-3, unit='m') + assert sc.isclose(near.fields.z, sc.scalar(2.0, unit='m'), atol=tol) + assert sc.isclose(far.fields.z, sc.scalar(8.0, unit='m'), atol=tol) def test_center_of_mass_is_measured_relative_to_the_sample_position() -> None: - # Pattern is centered on the beam axis through the sample, so there is no offset - # of the beam center, despite the sample being off-axis. + # Pattern is centered on the beam axis through the sample, so there is no transverse + # offset of the beam center, despite the sample being off-axis. sample_position = sc.vector([0.1, -0.07, 0.0], unit='m') workflow = make_workflow( - detector=make_detector( - center=sample_position, distance=sc.scalar(5.0, unit='m') - ), + detector=make_detector(center=sample_position, distance=DISTANCE), sample_position=sample_position, ) result = beam_center_from_center_of_mass(workflow) assert sc.allclose( - result, sc.vector([0, 0, 0], unit='m'), atol=sc.scalar(1e-3, unit='m') + result, + DISTANCE * sc.vector([0, 0, 1]), + atol=sc.scalar(1e-3, unit='m'), + ) + + +def test_center_of_mass_result_yields_zero_scattering_angle_at_the_pattern_center() -> ( + None +): + center = sc.vector([0.1, -0.07, 0.0], unit='m') + sample_position = sc.vector([0, 0, 0], unit='m') + workflow = make_workflow( + detector=make_detector(center=center, distance=DISTANCE), + sample_position=sample_position, + ) + beam_center = beam_center_from_center_of_mass(workflow) + graph = sans_elastic( + CorrectForGravity(False), + sample_position=Position[snx.NXsample, SampleRun](sample_position), + source_position=Position[snx.NXsource, SampleRun]( + sample_position - sc.vector([0, 0, 20.0], unit='m') + ), + beam_center=BeamCenter(beam_center), + gravity=gravity_vector(), + ) + da = sc.DataArray( + data=sc.scalar(1.0), + coords={'position': center + DISTANCE * sc.vector([0, 0, 1])}, + ) + two_theta = da.transform_coords('two_theta', graph=graph).coords['two_theta'] + assert sc.isclose( + two_theta, sc.scalar(0.0, unit='rad'), atol=sc.scalar(1e-4, unit='rad') ) diff --git a/packages/esssans/tests/beam_center_test.py b/packages/esssans/tests/beam_center_test.py index ef1152c47..51dfe478c 100644 --- a/packages/esssans/tests/beam_center_test.py +++ b/packages/esssans/tests/beam_center_test.py @@ -13,6 +13,8 @@ # Offset of the source from the sample, i.e., the nominal beam is along Z. SOURCE_OFFSET = sc.vector([0.0, 0.0, -20.0], unit='m') NO_BEAM_CENTER = sc.vector([0.0, 0.0, 0.0], unit='m') +# Beam center determined on a detector 5 m downstream of the sample. +BEAM_CENTER = sc.vector([0.05, -0.03, 5.0], unit='m') def make_graph( @@ -53,26 +55,30 @@ def test_two_theta_is_zero_on_beam_axis_without_beam_center() -> None: def test_two_theta_is_zero_at_beam_center() -> None: - beam_center = sc.vector([0.05, -0.03, 0.0], unit='m') - position = sc.vector([0.05, -0.03, 5.0], unit='m') - assert_zero_angle(angle(position, make_graph(beam_center=beam_center))) + position = SAMPLE_POSITION + BEAM_CENTER + assert_zero_angle(angle(position, make_graph(beam_center=BEAM_CENTER))) + + +@pytest.mark.parametrize('fraction', [0.2, 0.5, 0.9, 2.0]) +def test_two_theta_is_zero_along_the_beam_at_any_distance(fraction: float) -> None: + # The beam center measured at one distance defines the beam direction, so pixels + # on the same ray but at a different distance also see zero scattering angle. + position = SAMPLE_POSITION + fraction * BEAM_CENTER + assert_zero_angle(angle(position, make_graph(beam_center=BEAM_CENTER))) def test_beam_center_shifts_two_theta() -> None: - position = sc.vector([0.05, -0.03, 5.0], unit='m') + position = SAMPLE_POSITION + BEAM_CENTER without = angle(position, make_graph(beam_center=NO_BEAM_CENTER)) - with_center = angle( - position, make_graph(beam_center=sc.vector([0.05, -0.03, 0.0], unit='m')) - ) + with_center = angle(position, make_graph(beam_center=BEAM_CENTER)) assert without.value > 0.0 assert with_center.value < without.value def test_phi_is_measured_around_the_beam_center() -> None: - beam_center = sc.vector([0.05, -0.03, 0.0], unit='m') # Directly to the right of the beam center, i.e., phi == 0. - position = sc.vector([0.25, -0.03, 5.0], unit='m') - assert_zero_angle(angle(position, make_graph(beam_center=beam_center), name='phi')) + position = SAMPLE_POSITION + BEAM_CENTER + sc.vector([0.2, 0, 0], unit='m') + assert_zero_angle(angle(position, make_graph(beam_center=BEAM_CENTER), name='phi')) @pytest.mark.parametrize('correct_for_gravity', [False, True]) @@ -80,11 +86,26 @@ def test_beam_center_is_applied_relative_to_sample_position( correct_for_gravity: bool, ) -> None: sample_position = sc.vector([0.1, -0.07, 0.0], unit='m') - beam_center = sc.vector([0.05, -0.03, 0.0], unit='m') - position = sample_position + beam_center + sc.vector([0, 0, 5.0], unit='m') + position = sample_position + BEAM_CENTER graph = make_graph( - beam_center=beam_center, + beam_center=BEAM_CENTER, correct_for_gravity=correct_for_gravity, sample_position=sample_position, ) assert_zero_angle(angle(position, graph)) + + +@pytest.mark.parametrize( + 'beam_center', + [ + # Offset without a distance, i.e., the pre-existing 2-D convention. + sc.vector([0.05, -0.03, 0.0], unit='m'), + # Upstream of the sample. + sc.vector([0.05, -0.03, -5.0], unit='m'), + ], +) +def test_beam_center_without_a_positive_distance_raises( + beam_center: sc.Variable, +) -> None: + with pytest.raises(ValueError, match='distance'): + make_graph(beam_center=beam_center) diff --git a/packages/esssans/tests/isissans/sans2d_reduction_test.py b/packages/esssans/tests/isissans/sans2d_reduction_test.py index e32af35cc..8229bf1f6 100644 --- a/packages/esssans/tests/isissans/sans2d_reduction_test.py +++ b/packages/esssans/tests/isissans/sans2d_reduction_test.py @@ -197,7 +197,9 @@ def test_pixel_dependent_direct_beam_is_supported(pipeline, uncertainties): assert result.dims == ('Q',) -MANTID_BEAM_CENTER = sc.vector([0.09288, -0.08195, 0], unit='m') +# Transverse offset obtained from Mantid, at the distance of the SANS2D detector, which +# is where it was determined. +MANTID_BEAM_CENTER = sc.vector([0.09288, -0.08195, 4.0], unit='m') def test_beam_center_from_center_of_mass_is_close_to_verified_result(pipeline): @@ -209,7 +211,7 @@ def test_beam_center_from_center_of_mass_is_close_to_verified_result(pipeline): def test_beam_center_from_center_of_mass_independent_of_set_beam_center(pipeline): - pipeline[BeamCenter] = sc.vector([0.1, -0.1, 0], unit='m') + pipeline[BeamCenter] = sc.vector([0.1, -0.1, 3.0], unit='m') center = sans.beam_center_from_center_of_mass(pipeline) assert sc.allclose(center, MANTID_BEAM_CENTER, atol=sc.scalar(3e-3, unit='m')) @@ -262,7 +264,7 @@ def test_beam_center_finder_works_with_direct_beam(pipeline): reason="Beam center finder tests are slow and we are revisiting the approach." ) def test_beam_center_finder_independent_of_set_beam_center(pipeline): - pipeline[BeamCenter] = sc.vector([0.1, -0.1, 0], unit='m') + pipeline[BeamCenter] = sc.vector([0.1, -0.1, 3.0], unit='m') q_bins = sc.linspace('Q', 0.02, 0.3, 71, unit='1/angstrom') center_with_direct_beam = sans.beam_center_finder.beam_center_from_iofq( workflow=pipeline, q_bins=q_bins diff --git a/packages/esssans/tests/loki/iofq_test.py b/packages/esssans/tests/loki/iofq_test.py index 5e1f6d0ad..5dc0527e3 100644 --- a/packages/esssans/tests/loki/iofq_test.py +++ b/packages/esssans/tests/loki/iofq_test.py @@ -280,7 +280,7 @@ def test_beam_center_from_center_of_mass_is_close_to_verified_result(larmor_work pipeline, loki.data.loki_tutorial_mask_filenames() ) center = sans.beam_center_from_center_of_mass(pipeline) - reference = sc.vector([-0.0291487, -0.0181614, 0], unit='m') + reference = sc.vector([-0.0291487, -0.0181614, 4.1161], unit='m') assert sc.allclose(center, reference) @@ -294,7 +294,7 @@ def test_beam_center_from_center_of_mass_alternative_is_close_to_verified_result center = sans.beam_center_finder.beam_center_from_center_of_mass_alternative( pipeline ) - reference = sc.vector([-0.0248743, -0.0166965, 0], unit='m') + reference = sc.vector([-0.0248743, -0.0166965, 4.12268], unit='m') assert sc.allclose(center, reference) diff --git a/packages/esssans/tests/loki/reference_IofQ_UncertaintyBroadcastMode.drop.hdf5 b/packages/esssans/tests/loki/reference_IofQ_UncertaintyBroadcastMode.drop.hdf5 index bb6aefc33edaee32b6a5220518356a7e89c12488..1742644c3534b2388b0bba56ef7b42b84b22dcf1 100644 GIT binary patch delta 817 zcmV~$3rv$&6ae6938ce}Q41z&prf-OC=#sPbJ;xSf}8ljs8Mu6qFCR6V-n-E41cu4 z&J_?^#UdnDt%9g?y5S=-a0ZAVYRW^zAPAeUBZ^QM4@?#*(vxIOcke;oUvBET|Xth3#mwK1Ih+Gmfg8aA3{xfmUg zhp#)caeuT4*R`5ZapM45rC=jQ{hEuLhL2!zYbH)K8}OIHsL0f8dF0Atjl60?3Fi}x zyb%(3lGj|W@=@^MZ9^d3>*1015>!4o3h#Zhptmj=mZz+N>py%AW&I3%oiibPsXw$V z@P!biH^k5PfZ4S&Fo%5v)`WK~MDJp`=lYoBGWW2l8=MU8J!6AK-OMiUVo4EQEXCfz zVinJrcjt3<`_KzE=K70?;@7MuYk+MJA7<0zM%g>{2X?!DoCVK!gCV0kyiJfpMc~I^ zuU5eN4GQS_b_$#>nF8+pey~HMfr5ZQXb230&wb{=OWiy$L_|uUd=mp^&1%@y6bG^8 z@o-qS4o2=ILgc&*@bcUbveInuGnl}fkpmSWR?zYy&?lY(uP=WG|4(nh?D{`I*I5M` z<^XL$8$8W;0n@hhfzRMLbd-+6KBFfOxUAp{tEcnCRiE)s^5=4o!?XC4e+0i~ni0(# qTUYY+$#MK*>UOSZ+{kly2JhaP$IEse<#msbaKo(=zxk^VO#L6`qhmn; delta 817 zcmV-11J3-Qd!T!uAb*1IhCtfAlR#FvmOyqzlR%V!j6gr&f5?(Lbaf#6O<;wLhF(sy`fIpg%J?nLiTvjX!^u zh(9#|gFheLc|Xw}Y(G;WVn4`LS3fv>P(QK3Nk2$vLqBQ+Jbypb4>muLye>a=#4A6L z{3kzdydppI6CXe0yBj|ja~3}b*b+bFKoURt{R%%K6$w8@V+TK71qDCOGy*@`$M-%l zCjCB(L-Ia_a`HZNXXQS7ALc%xS>`_XblW})QQkfp($qeG_R&5KrOQ5W$IL#xz|1}r z=g22s_2l1#r$1tQmlDDuv zm7%IWIR&LY?mD18LusEr_z9do7}labn}nA>JN1-4BW{#F2z8r2GQ5>OI~tHagQSZ- zP#ly#z-)#-+-;0LnZ1xctbUI^dJ~F1fFq1P4aR^z{(qH;K0J$yK05`GK2LXpK7)gU zK16asI<$oeIsnGfInNTOIV0YNIofesImhKPIdd%%ImKu4I1dKOIMWraI9I2XICC_G zIL$?DIJyp2IAU)_IK9s|ICSwTIB7v2I5mwHILOryIA=!(ICZ-NIQ3QlIKvhAH`2iH zH&apSH-C1fNmz| z?l*P+?l%a+@;7}{{5OOi`Ztr_{x=7a1UPc61~@~C2{_LW2{;_h6F3>15jd(P7&tWr z7dTt(A2>8ACO8Q>CODL$FgW=OFE}WLG&oFUI)6BMc1Sp(Qd2mkwNyCvpuo zpJ6z19eOwhM}9c);*B^TD~dSWHBRhKx4v6?vPZJ{`=^RzesD!MpOHoiC^O~5!O z1JF1~oZC2LtLHccNb5LV5B)e~0{}V3pbR voFzm#8~0N=61`SAC0=GZ1H524jQD^#C;N>#Wf_z?%2<^-l6sl5A0vSpz7|+2 diff --git a/packages/esssans/tests/loki/reference_IofQxy_UncertaintyBroadcastMode.drop.hdf5 b/packages/esssans/tests/loki/reference_IofQxy_UncertaintyBroadcastMode.drop.hdf5 index 7b3593bcddc2f7794bded255b7d8cbf7278f2ed0..c5851a6ccae27b038441fd11f06612e30b8b38f3 100644 GIT binary patch literal 73376 zcmeFY2{@Kt*Ef8b=dppxR3c51N|WoiPDN?dJf{?CM5WT8$PgJagbEpoOl2q`Lx?1l zDWQavL`rB<={*zo{XGBoxxf2(pZ7by<2}CjzpvxC_Ia+o_u6}}bM1BR{afpFHPoLc zAv#=?^E(L(bND&ZeU}4&zxq?C5>Fp#;C`TdYyZWcQVz$Z|2~TM&jk-hfb+XdzMn4L z&tHYFpU~fM)d~Xx4qJ18|3Kbf>mLjT`22(Z_r?De5->E-TlRaR>-uM_(w{%**R%dx zj;V>Y$?xm!mX-%h4{|vBOb+g0vpyaCO`q}m?|&i5^y}+i^;(=`*vEy3Bgq-e5#}7+ zzRSvL;$gD`2X|RouqDHIc=}rYUQK^gT)4k}U&ayqo&6#8mH(5U*ni+>ebmbAPyK(# zPvk%F`z;c24%650_xk%iJ`0n5eVqOspT0)@Fc2|G$^OzgoX8{dzPYfWszx51FwG_OQu;T_zUWe_!^c{@28Rd;J>n z|KYQX#A9HIYm zecCDiDc|`g`poUWKFGPJI4|S`23#R@6*qhvPhY<}Q`zVFCk?baVshAQubG9pb-zF*{!O`L zfB9d>A=OVG82`Zh2khcs$05^S|F83u{TK8>|DxZ)|DxX^{q(=~JM^#o`{ge8FX;Vb zPU?VQ1_*!We@ozR3H&XAza{Xu1pb!5-xBy+0)I>3ZwdS@fxjj2e}n{9E;Z8U;qd(f z^}o=65FEe({)#sYoLg1;5BLN1{)(^2_s_0j#Ge`i^@J7vTxs-DBSN+;p5?` z{HbHOccAX?T%5y#Hf-YIh_Wq(|0g`{_c{LevmEFqbj0u4{}DG9?8A*s`yuFmha2~) zO}}#d#ytM$6>nc3zxf&t`~Cl~(*XW4Fphs+^Z%}r0sq;+gZf|9D?V0Fem`Rw6=fF5 z|D9Aga>5+BQ+?N*{|CJ?bpKQ3KkF5T(+>poxBve-`*-sZ=OpwE>9^cmSnWGxvCH~5 zVJHir{noK9Tl#%8TekGo`*(lRtWN(?YlgG$&|d3ZR(p4u9r)9#U)}#D3mFyqN871l zoTjt~=Jh^g9jk`A>QOzzn3;0q*^YmY@HgK- zBNgV%(_6gKfTgWkvHEw`S1=%tf&8z20;aDbhm+8cclY0NSTJ_q7A-BUEq?)K`{|Rn zEdK)t_up%8=?9Jn`WbjX4eFW;*LuSL)`KlSZS|9%UxmOPP&Kb zH-F*Gsvw-3@dgTRC0J2Vh(%J8v@^38&CvoB^QaAe3%}!WiYR@o-HPYskMMXB52+5f z$DJ;JsO|WIfH77G3Kb;3E|bJq!x#Rj^EO0gg$W#1YS#Fs*OmdMtHDb(=HB4Ksn$&m@dHJ{JqNoWt$p0319s z4fj7cKp`*){!8LuKlLNF*7)P|(r{!?I0(P0b(k_c1iMsv@qI`rjvqPzw>k@q)w+d* zs^u&(cdL7q1z?DmDoR8fkueSqMG&oIcn0sS9t_}TdukIzX$ zvE&`*Nc$kV{sBg5*r4kbADyy_fY9Zu7*ciw!!3bPH!L9CCBG#Lki-H`N7?-4?pixu7TGY(B0`+VVB6wYVZSd zqk+4(U@d+W*ubi|fIIk!9rg;mMtQ|gZuKK~Y_-+L)VOjy+qR-l*4@i5LovLSYo!y{ zcfa8FE$GN>!~x}Z+%w)2;HY~AxycS#dT%2tPw>;-wxejOx(@tmgJ|?AnAAAp``T<| z$~U4bH3`}&JT&v!4b*4z&<7b;@V!ld|1N$~`aTtE-#Bz=Ybf-?=F;Q*dZ_NNK~+^9 z%pX>xVr(mP26Z8OhXkF-d5C@cufj80j2cfiVJ=S|1eF@_@jZv6XP05&f*9)6ls>ltMVEQWueAhorrgA`qu)_?AP-FT74UEPg$rWFm|!b{w1!PMEB_q@ zVxy2e+8s~UwZcLD5VBXZ&p2%-+;{9om(ogn$5G5(cm*Xv8{ycUggAq95MkGD;H_G2 z)4VM1_pxg*bK*1zpBe%s+Z?>Va{?nZ>*3dChI~FAsG9KOu;^-Z6_2Lhwu5P#ju$@f zz`G<7bIBUTxfgX?%lXLP*aN}NXCWOD1g~TcHQii|X1D9uVRZy%F5xH@^1^*p2V~0R zAaKGZSS#JZ`|%fW-Zcj+6brHE^fTy%ccRNuoQ8Wn!lv*Ss9jnNQ@Q~865u` z4H#-FN4?YDVw8a>B`+1D$@;SN{WCv(c5lTm$1YRs$u`jvZAV!6BVV=P{0d3ifP>#mH06xN{&L zMLnG;9^QpcS5MS$;3r1>0_vs(V%CNCIN10W+r82u=$nn9@^4XGDnYFeX331kzXhFW^RGM*cHr>8DiTs?Kz<*~N9nE`+nifgA zs3%5W1Uqp5y#U?g4yR8ypQ3f}XK3q5(E)`S6ff6lAlH- zq~rT;Q7Rw(5LUwrky+A%ET1~W_(b5!qT2|sdx9O3ZdkGM1|rEHHZ@DJR5uYfgD&E_ z(sf+1QNZ{e;n-i3hFAe}wE9g$@a#j7mv%yej1tn^0gcE`hOd_C;fRAZ3t zO=LEf;igUtRG4P`aIJ%b(RWNWZ%2ov9IcqrjWyR^;jyLwZJYZZJI3>p<4zDSWyUE-&SdZJ`ALX9--J(VEMyOOptjT> zrv`XpgxVJ2j(a?0$s1-Clkv^k5)Es2LG8sE z?t*;+bcCl0O}C`Uv%3f(GmDXNCr#J&plP2zD?Q$Z>U-yOg94(l+Rhku*Un->)NF|H zdBOQ<3J#C?if=i05$@!KEcr~#(h5Mg(;Fm8WI*QoU8o+6z+edQtu?2N^msM3N@9N)j_sio!a0NGy*~k>klvYH6?FY?_JFW5Pf>5205Z0jYVX@#)ZA>>Ck|Ldi9d%#K9v zS|51LGl99q4isG7kMo-n;K+?ekSA|P1De&KW0joJXZ<3O^>4LZpF*mOdLvdDbr2`_)5N zRw5a`8W*tXr6TNy%;Vb2-NUiVS8#sqc1*O)L09ep_$nmf=sj1wT?2e^mgA?|Tll;#gYd96$Q+ZQw-#cwx=w;Fh7~~h zz)PGG;3p^VpK!SH8d=%xP~cG{v)g%z3~I5S%G6Mj*e5(I5O-VcU{p4 z3XYlxgX5- z2Sjc*!em(?ZfWJ?NPGr({l20tu@=i-)ne?FE;vdIrk>8P_-HOnLK}o=vbiX=uTZ4c zPwFHwdMaI9q)O$QIz+?fP=v84d5xJ#Gh4XS;y#Kdr5lpTQ)Sx!Q;k;N8cWBl6v=eB zG;M7eOBGE5lyO9ndKL)Mv#$cQd-_9ESG<6~(HCq#&8u5 zBI;yec4!a|hZS(UcOOL0c`oJ{#h|!mFpTm(h=ETtDS-)j0-!p=1F>5#te;_~> z7mwnIx(#MYs8HR0DM|^Hf!rVw8eWnIotxfJz5WpgP6^PaXm>mm^G8)^Dyny_$6}5z zUQNCN-?1?;*b$AClclh=NQF^GJ<5F(vGa8fxH`Ad+wd9+lX?+7`Yo&kgh)jGD_(va zLMdA%NGC*^s(fWBbB+*=Tt0zTR4S8F=x{Q-HimNRXVbUo6UZ`gBFR3VO%9LL2;rmX zVWkXp8*0#?03}k(k|7fv4dPekr|K0g_~rT#wUYiam=BbAJXy z0R_aC$HT;V7m9qhpx5X$vbV`$@2|UD zy;Bva)m4Mk3)E=U2VFXP5cJ}MI9*sILLuvWa8*{EHtrii3!`|*e!_hOJg7y(mppvr z)ZqKs8#vg06>6u_AigFTlOF|Q2GA<3AuJ`EbNHEX3gi8|=m_MusM^32|DiR%}ByMu}k>WehbC=zPMGx&b=xIJM`_4o%;kf zzml=$TPTVfeev^`9pbIe!oV&OA%15teAHQ(8mA+rH3)G_q;ylCmg2z@IriOt3zLnq zv3i9k*~Ex(g*vyAirxp^=E$$yqeq6(L}49rHx1JL6fI6F3lGCLzZOB_3ovo_IwXlq z!r{t`5Sn)$k6FFoo3sn9siEL~U5s0AS>4^2gpDr)k(O}-vL`FxaK086!KLsrZo_$l z3dpFvM@Q~YXxV;-<4z7K9uuTbO9xTSzHv0%Tb?q`jH6e(XHnPQNi=)cA{uvCmuytm zQZvsK8m2OzB1Ra~^_7!Icl2WVq^C!ThiB1e{<&nFM3jGDnNIkOp>lIU5^EYtUhm|| zWtJET-sO<)kqbgqc$2*j8$(iI8Y;$p)z}4LD-R_7_?Y?IR#*S@)2)s*$EV~ZT*$hO;W2X|FV3F% zuhwIHc`A-;8RNj0QdH;qV&Sz5_&hZRN}YiydlQG$^1Ilr9glXEOw4U;f`#f`jOs4O zlg-swW%e3&gYM(nsb<{Fsl#*6k9d2Ik2V|`L^qVhX|0$n)mzI^d7u{UcAHG|xN|AU z+K84-o=tJ>Ml|LZXi)YFIzHHljE~Kv6Z_ZE#IuG}qq&9}glCb9y$+Q&jG{pcr&Icr z@$_-H3JtU3P{5CFtj_09v{yBpFT6m3|3m!PSq$EDndl6?1@-iFOrIYOr$b@lP@donfgPoxDmbt#jxlpd+f zp_rkDG`WSyBf*sBshZNy%f|G4t|1*+Zbqh;cT(EAP4xNL8an)W1@Y(^l3g<>Tx2{A zdpm_Tu2Q6nj|Y=vh!|~(`i4_xB2=VW1%+1+VR0gbJ)V@nBL5D1#(R#%1{tUe$-{*Y zMM!-TkAkjbJYSuPS(e#2gID+w_!NU*=i_YBS+tJ4fnhhiU}2xjoqaVAb2i_`vdr}; zAK`)1T`5R^AVUeC&v0MN{ea+cNyw{Ia>O3*SS29B~FnvaqjWcgo__>D7_mmq^clam;;M|$BK7*_Q($06ChtmxngHWTWYZ7~N|OL9c@oVr_)zP+Ax~Q|@Bo_gKW} zy~K{6FW~U*7yPa^!*tkp?C)xZwzmLfmv!KHU@In_6QxD*vUEE{f?Sr!)3?LpXkW=R zI@!32yha$&R{ynhL*JP6I&JC08YGOoh?00D?4}6XZdaP zbcq%Huva;CMicX0uP)3J1dE0g4U{gDGm9^nsQv=Gbb|T|+B~&8c zqB7+nEM3!(Xi<&NrlAN_xB;)X&8XQFi^3J2Naghhe|izFzKcQh>?ODr_W}ow-iOhW zBCLEYM{@0D@YFmD?R0{WM+`UxXJ9_(6nBP5EX=>k_vvxS@=d5wGJ&_C7fEl{r<~Tk z?4EEtd}dqX%tEiscRBm9bcP4lN$oU(KXgFpqBpJ!#>1$x34U9f&~p3|TBldTEI%0z z&nj?9{TiO$eUHaV_p$a)H6*+xDCnUWxv@6#%pn1qTFFlYtY;iLn+Twf@Yuo1+kP*xY_;=C#zmV z%CQX%r^;|+L?PDNW60BaEhY=fU&?=MwSGyS8l}f;S_8e>@7KqXHIrus@2?>eT zFeq@w#yk_qoZW)p;f`o@xr*$SN03mjg3{gv=r|Xl>-*q35#}i{e*rHZ`B0lOSWBD)!No67wR^yJh z^}=+s@jHf`PsHX$iRcwg!^7hV=y7?5_>p`R{Y!{09h0JP9X`^I5uo-p@^o{YG<7x& zBOBYnR3s-y-mD|NxOY0;zdD`tOIK65)Ls%&I7uyY+$hD*o95(QqVZQQkwI4!2}VZI zzVl(^|M?0Xe;-IbBfP1(%#W(BIFX^A1sRV$PO_KuN%b+8o+gi{Eg8e;OP36ZmGG0} zP9BmL>cI1PpV4`(8%lx|SX}iK?`OV2T7C&mE_sY&7woj+*b<6x_8sC^_T#5iH@Q%*9`G> zmmnELO5$XfHoZH+VwA3PXj5qpp4aQ)vur1K%=}asU+Tei_MMor%n{<2?&vb?!bP(@ zXr*3*(76nJ5S6BNs}JL{uo^j~JV0eRdvf)u!K72&c-137io<0|v{Hf?-7yqeC`Gn$ zL+O}}AkC@~Bkzgow3;hT-ZMwg(yuynLQ#jl_^+Z5(>Bobwo`Otf&B8mTc zBo#^Bq4?k|3e(Oa_qjQw`Yn~DG!jWMJ({*o3!zRSH_|@hM$at|QueSF6nUFHFAg0~ z2Q*dbWVR%2bC9QfZ4zXyC`jMV^V6|CZz21*5l7c|ph5W_9*%E8Vs{||5*o3RHweQY zS7Dqoi!;w@z~l*`*s5BF*~S@ASjb}b(;nlyRwgD#okZ9Z3*3)&!_K&3r0Hyc4ld$C zLlOL{$3SPLROaFvkq`~Yz(n^|Yo?%WOsJI;2Fx`-ae6H315I#i1+OVsxTfgjOgtpd_*l;YJ)P ztKVTi{4wWR21aCtU`=K;DhsN?Gr|T( zkFJMYRsc%Y3Xs3|GYpEhhicRYoZ``=8Mhx}(}itRe8?Qbtj+PYyiB)oZVCcrySXzJ zgkjFBLn8`!DXC~AC058l06b8ebnyA8+5LX~D%bs`3R{+-s+OWgr7$D(gpUbR>z25>|$~~Wkfb}=23;WE?t~6jxLT;C1Z6JS~XIILZ^$f zHcXZ_#K}>di8MK^5ulS_g~-vAk3NkVN^VXcA*)=D(j_IRZLff3-bcKzuR+AEK@{%B zM{yC!&`-aL2V-v{DOd>tla%PqqENI*4WigdIT+3QO{Rvu#JWqC+}Gz9V8q3VS+;lN z==F(N(FSNqZ#=_|C>Acth9)RLZk8#PDpGrXOWjFpodQ$10Z zIa@BvEXojM+9kWF$?iGD=jYJY71u~<{W<#Rag28DIY6H#uBDo!dE}%#ohFoM(Y>xA zH2r`)MeG-&OLlzJIh2R2b3d|sv?oY1D8z-mSrC*g!NN1CxRz54sdblOGwwNtop=E~ zTMt;XzS|QMuVc~+H|)Q@73ZIOqx{Y%Oo{Nvu8Xtr9Mpkd2&5yig6(6=-woWZyBUByN-U$;$vJzhcGFL zs?090>5R{ChH+ocWzJzHqaHq<*`6)U+)NcM z3(5ZA97@ZaMg_Cy(hM_oYP_vLZ$1f;_en`QcSf2HP8~vugLz4yfJ0Twn&5l;En?To zkSFVtxM=wekss1=q^cOR4}M3*`Y0^0V$aoQN>N}H0;$ez$Tf6Bt)e7M$Cu;!xddz& z>V*wT<=nVO@3=u}{t#*vCG&6Xuw!|>oc#@x>@?w*Y>A%PEx52)n)ON8p*?m7wOWYa z?D-`qE+34JoIq??IvNwlh)}(WH?%84aQb{b(k@0o=35~GlQ@J){1ieW6fGn}cbZ3% zXu&x0@>8Ss!xQL!xE_t|B8seAM^-x9XxxLt6xd@=ROmtDZGz}!VJz_-yGH@NwPeQA zOAn9BF@?I*80o2tnJvS1G95>bFjHHs7%#_d%x>Q0OtsleW)`~v;`_?W^d#2M*5jEp zS2>dM@A}aeEk}}3+Dp>R64L%Ums;c)Iy7629!--c=|@WRsF#m|?sg(rU4jOQ3D8)s z07W)cBeI>19g4_7_udkWc6g7A-qkp}{vLLGNy3TvB{&&)2S47fhs11kxVY`dm}MOZ zns*25_PXd=`TxR-Q-P2V%0|G54H$9$IoE&rE3Va@Kk-Nh3_qgsaguJ`v z1-wfu#lnl<;N=yD&744FtS&?PlR~W5`30+0w~=`@4Me=++!I=<)=1t({}^&HpYgD-*uMJ^6_Ofc6&47*E|{3CVOVL<_6|X z@eJll!cb<-qCrM2TN(9F@%wrP;?s$xPrK4ttbCg~hloO)i3e=}lbizJ->djxc=}gkAH(pq`qE z?w1!~Trw4*ou^P&%=!lItJ7gV4q~%EU{f+bow#%vW#6yhhjswI8ie53REs{Fq2te? z>R3q{9=;bfJaO;~A4>{KQgmki8K?{kg3p6+Y$^)H>7D{K*eAecc)gm`i>GY>b&GEz|R!CPh+UPh}n0f1@$~Y7(WhA8RnWhQejNG0J%pr?QjF5*v zv#ijcc`?t2kxF)8_R6ehoQo$iOR_|m7mbZnw<(u+zeZ4HgAZ+3dWOXKEhzl;R!Zbw zNP=6Yk%FT(O)?)z^B)UQQ1@UOdt02+Yb9yi8zDMpBEjy*#mIR^4fs@Uqmvqttos@P z^Gjhq`3IstUq#%=a!4+^gERg|AiXIO!}KoWXxUU~UOa;XjyE7a`#IMz&K~avf9aF$ zZ|vxIIw;f(?ukF~jGUh~$nzY8@h_54GUzs@9+-;s&F9cDS)LYGa?!2149A=@5oT}+ zFWC5xQ{~ODD3GIW&w404W9`|B`xqlx1D`5M8mr94uq@Fcg>fo0s(L1^yThdmQu3H}J>R5Pzeynk! z)vY#^Yqo)I9bQTo-s#egB~z%!SB**vWocE06s@)V1>PwosC@Mja~8EAL$V3?<2j_g zxe;6Vvv6?6WhkvP`iiBk&4K$7jKKlmL~z6Q@0?yj0*VN!Z>2x7Hp6c`MLSEmhJ_8cUfU zwdjDM4!d_VqT4-FNZxW22^j69APEPOa6V1nd;=-)T@=Z6rqR=eS0ok0!%P@EjB%R4 zWlBcxXJ+M`W0FlTG0!@jn8mY{nQc}J7^jJ@%=K{>7}-W2rgo(jBYQ!Y+3GLD>`QB> z%G`%!d@6?O{DSCF(^=Z{_ymP)-9TBN7Ls=DY)ZVOM(4MVq%Xrp(|p}w6k#n%Te7>s zV=F*ISMt)LhkWF8k%v6y@{<-{11?2G;oHGji0g$x=+`YMZg~K;{Af($?nkWsI|v>w zK#u4F{7Q5N-&sD&JsPS##4H`=Yg87?-;)K!<0`9)|t zc{AJLtSO4#Hwj$RA-$L`Gl-U^SEJDO2rk77P)Z5wN05rdP?>zRP2r<+hk|kK#6zSO zzs9>2zwqcTKizmcghatdF0Jy^K6NMwJsClkF=OdR#XQor)+5yjBMO;zgnl+UQgGWv zN(#C`U+Rl!nRhq6x-7xG8K%iR8E4Ft*t;+#G3S{xuE&_{>*JX%BgQfw>NZTaiw{#5 z;>xsbGhwdn(_vhF#F>ph-cox(HdT*{q|bGJWH-c)Zq{s~^D_-dWd$1tWjleARw~dl zFL}xxG=vmVC=}$KZ{60sJ=Af?v=E^)sRnsJaGzQ*I$( ze-Wzhm&0wS8qt;WxVl7~R5x|t>r4Uae96XbmT6LGsS0UH6P+{$wWSd0H?1J=Rhvm* z+5!5d8g*VoDw;*DORA6QIfQ)iic_xB`J+zV=D)@V(W)y%v$gs#SR5f*q4rZ)89eqCX4AD zy8v|sUMhAB#5y}WjQD&L-(P3pb~C}_g%aXQ_>dFn0lr@%ps9(xw4 z;s@Zmh>ay+lm0xxf8fwEdcve(>y9&*g^5q&IVKtwLc+lamowsVWp^hMHhjmTkcY6H z{2GH@t|7>IFjb9y4a0I3YToz=m>^5*SICo_h8o2ykDwpr(&SODMh;CQ>Cmcqq_;+o zYKo0$W$Jo5Q({e`2F`RR*Pr&JM^IZuJ{eAYPUpAu(oA6mW?nIuk)ChPIPN*kT-f5q zl*;)q7GbVTsrOkXey9_p%-zkL7N5tYY*l8wmhv!;2TQ48W)=nO1ku_ZUL<35h*qZ> zk*DWe`ZaDGjmnrvq0uUoDL0rVn#s_&DU#G>(}UegJhUeLCC(_8qvL%dWb`{Q(zpzF zTT)SQClZhRTW~7+8`jyD;nm|9#Ion|Z2ml~FgON&{TQ5fEQGbwd9LFy95M8jRlh#g@TpvWj^ODH^TQMz8XrS>@BFup( zRi?L0kKr*iWxh=~&NQ!ZVmfP2F-w(BFy)iY7|SRFW|qcS=8l~R6Cu|~<-7C9C_b8| z*aXnEEvM+P=yvi*T23A7=TP&iX_OeKOnG{8H1(q#O?x3q>Vx>`{$T;?$*YHC(-#b% z@Dv}v@KKZ_hvv4j@x-1bkXhn`Y}p&=xDo)jgo}8bR)v6#R}j3*3q{i$aAbD^LiYHh zu1Fs{7DSK;SxU+nnVV`7=9}@#`>(vV=E9T>uaTk=Q`Xb?tK5Zu{YHjBu zg&#lgeC;DQbLns-jU=+Q6{=gl^H%BOz+SYOlzbuvvuDp=9TSAW|@p0GtzN9Guu^~ zG1mD=qIRXEc_WcRmxYkqo3pg2;v_koSx?Q+my(#w6q<8ii^eZhr^icKKfX2_r?Nwg zo;{SI_v2YVyEz-Dv#J|W4o}(m_EfZNEyXzZB3yZ$jFw5)VL9n7ymo(vMVU9^)1q)i z$__{EBhVz*iP9&*7{OBjspC)aqI()P{K~}e$_g&$#{A50{GwEQbUYO|F2?2i3iRs% zdye$VhLD92oCV&Xbjvy25O!Z&{e6?}gg2)UX%&fLA1!LkkHx}C;V_C&rh@NJu~~8?QroXh^FtrMwtUE0V`j;TjEEXrfKL zd z&|%DJ3X@PXhFR$(%NX1AQuoekN}ZQWuAigmV4F9!A3Z^9_8+7#r&p1XvH{&P(4rv| zCX?CTQS?4mnraV-)ADzc#MAU03p&_X5BB?wa!v;pMv2f5z9xM7RsySB_xwoZcXFK_0GD8wP-bs=PnW3Vv882j7L zL3f=gY8RcymqtxwjEe#j8jANG)!1hD0S{X{5ODSZu6MkLdi;9`ACaW=4eIn#QJF?M zE75t45w!TB9vdH^PwPwOQ@!VQvPdG)SS3D+s7&nr$>RT` zKVq5HeYp76;^om;>}v5uSX3#_C7nk4Ss%<^I3HOOIv77Q0=9-%;AS`uA|Ddqr#TnP zzs|;}ZC+@O)x$$}e{Imd9eT_l(j4lGQC=6|dUXmt=spI;$G!LxF^n4P`DpPzJ+8)( ztC0QWf~S6R^yJNT6vr3A@Yp?gudPMNw2>rjBtzaFaZo#5i>lRZEXrpEns$_*CjH>2 zFy&V`GDnuovnA;Ldo>dFP$IKjP1?0hn^G**Nycm@i$$&=_o~%&sKt^BPdSms6*uzG zh@zIZG&;QgKJ7SA#m4KllY$^0(=Nr!B+dLv`g(lKv&1gyb*d+$z#=l$$fPSXA}KH6 zEU9leN#{2j)3oRnq_uno*{zyE=HtfD<(yG;bA~*rd=#c%Z#Xojq6ZF>s?j~Y74Ir5 z5j9SLzHfVr&HD;qIp;2Bs$9T6gC3Yo@x!T_YY=^qkEdT4s=spYD|K_* zYTj|Z9ETEaUB|QZ?TCs$0ux>i+?JiiqDf9LY*`7l)(GSjRH89bkks!Uh5ENw*j>v< ze)-R#hBqk479$?k7ph!6oH{?tkd{4*=?N**CtpP>6i_AUx0;mMHkt}I8qo1tL%Q#< znYwxp)7QXbbV&CC6}${5cmGt{di@?nRzD?I*_RZy`VFlRZJ@RK&!|eSni^GeXwlph zQpt`Z1Em0}v^qmdhj!7)=2et3crN9x4k3;6D)fu}{zbG?oR+cvhsZ(!+Du=u zC%y~*J0D=>mS&8(nu*A#ud#GW8FXUrA>~;iOtc#C?m!6&D)RAZWfiWhT70mrJ*<<*o%(<7Gqz z*`NF94f9^3alA3IV|n4=oX%DHr3IO21?5(|m6KpJ3&z36e z4y{1sBVIZ`_bb{h1!(Z$FK8J54MkbsA-?$w6edW}qa=B9xFb)aR}Q8ZZ2Tc_yCNMd z7)_F{(`oHCee%g!NnT%eQq%F%bo_+}IsCjpk5fY_%q^PUe@vn=r|;0NSw$qWKcDs6 zW|C9qON;RG#86 z?>%TIXF#XmB^Ifjfx**ctoZDQjOkyH;?RsK4i1Rv*@2N=Z!wR%o7+3VlWQtc%2hp- z1YHj&_?6q@>K7NhJf#hfG6xI_$b!kIk+j&=kz!<(pq+Obk*w~j|0svN;#JtT6=C<3 z-7uGCV`Y9gqh!<@e0&sxPSvxBnOOwhp|-d=q8urbc_^*>j>SGBsr3%)m$P7FIad#+ za9&kPvKc{7G{)2JnX1&PKam0|bZP(awIpA&m7EVBC5IV~bp3({sXhs$QiD*^E{i2| z*JOJ1=@wPaO{2P3*D0s>8ckewna0#yr3-GJ^yH}%DHWce_R8%P`FH~@%$q^{LenU4 zsVr^3t3>AEBE-K@hR)w$u{rK1d^p(wf5{45OK*n6uo_HdWN6jf2Uz^J4wIGJpwL`} zJ1#Xy^7g@-FIS*?!V}+Eyd$Fh3Qh|}BY*NF{JM|}=U?{7Ij|F|lmjt+0UCLzjQeo- zVXn~BeJI|@zNaL#Ky&J zU@@2Xk$j|~%S()CH~Wp%P`Wf&kj@SnLcMF%sDky=9xl@+DPx9 zrdZZCJG~!ENt?&erN-eT@4%t?M}_Em>uU^+&WAl;8FoG?z=wc4I9ghc&uq-FvD{sh z#NEfP-e!De-$~i_anRc2j?l^GsO3$ARQO%oV85qm6nToHV>Tg8#0OL7UPI~g2E=?; zM90-l;GOY~{rbferMsc6UTJ^V538)7~n{IDI7vB;Eei1u8UbO zFjke$8P3M*FJX`@8ph%R98zm`L_)|jDC%S&Q}q)j2{z)9SOWB}eZ#KmZiq>@Li2td zl-D-ndR`?w?y`1cPAevF6rp|W9`pl?wTu@NqPHXDNt^X4u6RC*Rz90aJobyJ-h7bkfR(3aXc4-!TpP5u2fF zcU^*(Odf&fJ7np-o&uIQ?d497*1?xBHcrp}I?{rlLOlK>R6f|FL^>7OwFE$uNqNlT_U(Gw#lN}6Gxv;W zAuZYq?b@V`R;dVCQX!GDr^v1(vP6prg;XkSDisy2+SG4+JWt>6^LqX6KlgrSzjJ5K z%$)N+@6SD-k=Sxq1#>hB-cAp}h_819>)xY+_j8iuiog+t2nr^YgI9MuaYB*reK&cDz{k z7_XlBgxMcN=uMN4s59U%#&ti%Z=%0Z*7gksdCAk_G!?q}r7ERFpAPqTK8f;y>GmU8jW2`mk4>#q})K7a3Fxr8^v&S^6Th}p=@9Ac{NROUqDOu zEv2j67SoSE?db)H88pk&fSO$%MTa{Y&;*I0^!{4~s`_LAjang2CEhSBuv-`EHZg2e zatlt#tw;Ix3{3l;gM(II!_yjdI50W~o82POrTZPG#24Yp5od6AO#&VbK8mgkD{Z^7 z8t?CLWSNY2908?IKXSC-s1=p1H>Dx5+Vrrj0-bnZ7;VEL zw2Rq*ws)_b53(3~62@D@@NQ;ZFp>kFNI3)8ST5vb8;O2L9Y#l%c)VE_! z<{k86wzm@PL3FglAR2spC~cCLquPFdF`!I~eo{52wa&&g`zWEr)|raf+0llz&NSNA zjrKfTPyHMh(W##6>6qh-DOb6iu66RGg&SAX?c0~pcu7y{udv=oqP+;G^OZqrB1TTmvI9;W4hzcK=Q~n6**f` z^ze(vLOUgN8qvYeWPZgf7A?o;(Lz{UABqwBpHb=WS(Na+fK`62D7q#Y6&i}r`d|)r z-Al!*JAUF)xP^vIC72UmhKuW~FwwmokEs8`kOgn?>9GfR=eZ`0`ZSU{UeKZWxg%(> z{}>t{U``FaooLE~NwhfHmag49jkd)uqS3FAI!n)?dD3&~+4_0(dh`z3p5RJvKC`2b zjHlC#L|3XbkJ8jRgnrP}q16rM^iGTs%`}v!n?8=ECar^M{7k0rI{yaqP=u}xWoyQ? z0z8+ThmwU)Q8oMlin+#PtI{QW9$$sshNrOgOFTX@kHa4(fw;_}9v6&@#uUvA+!cBk zH;+4kFS7IS;rv>D9ka1I)vw3Ivi+Eou$Wd_jzFPr9(dT&ANMi5O`qP`z2h6+SZhsR zojicww>S&-A|cDma3%A#N@2DEtJ|u0>#8+Y=cJSl_LZe=880!!_8N*#`-xF=#^9rY zvoP>F^L5#fi)HPP@zwKGw2Uideja&DU&m~=>$9=hlKFBczsCzcCeSX3vV3sBo?)|Y{v&~ z>1f}%0ZlD!1bxlR3(-AirqUS^m#FOfYh^|vp156H4t++f6|9p!bD~N7M>e141mav} z=5Kps9u^F|gXX3a@bQf^DBaqQv319A)9s^phv{qE)ehljW|Q#wQGo~3zTu%q4>01& zIo!t1s9R?~!}xPzY>%NxM}6o;TRBAY+5P(~w@O(xN&AW2ifwNUx2a zLA75SGJC%bT^})#4w^TWMrACd(k2UN$UsdxLdBL=%~Yp*?@y&IqaCP+wjK=^(xnYP z^7KHADm70WM&xqhG7!^e)0$tPkZ9<_+&)I^SBA*aKzUAIPv>YY&mimk2F-_bEX5ZJ@ORS zUA=@YThp;axC4)g3(>;gPf&&4L+2&$@uJocs+!h;yGMS&G-)NeMfg4LOB12bUWwBn z#IrU8jYbtU3FT( z`(h&MOZuUCbSS2rQQ}7|ZRE@E#-O-eGA7%d!)388d~E3i44TAr5NZ+FshnP(#r*P| zJ*FeC=1Mgf7W&+@3%DimEgvJi5f9EV!)Y`Mf4c0(r#CKQqpB%AaZiQ@raiLWH7%e#@ zP3JMa!{5&gBfXoQ)y!UCSe_2u@cAP?ml#5i$4S%Y=h>b^!HiBE$ZR1NCRCLhN9Qe; zrf+Wyp~H?ZqMswjQn!?$v}dz2?ff~C-WAoPiBEnrgTQ2(-!X{B9g(I3d(`Ne+UIy$ zvlf3#hv6NYPP7RWr3+j0&}Q@}r28MC^Wk#b{45opF`UMujPFc#)S~*@Q+W6ivu7Bj zVSR21+A}>_kjiYFk{gR8ZZ(?CQAAZ+b1W6QjVI0RXsC=kny&eR%1Ud{H&&hD8&{yu zS#$IaT3*)c{t>M#m!hh}a{N-l>aUJQ8^7HIlKt_S4Wi~YR*s@53LWz$)g0i6vTFYO z2_KxCb(G)w@ih)tp(uRw1omX~U?KA}{C2+{g$x+R!DJh@=4GKqK?;_aGCc5oUtE6k zAxe(QM+ef0l`F1cZT(jiD}I7DtJG;&TL&tQokkO4nO?Y3iN+Q%9iGY*>i?hv|1gYa z%iBdXpp@Z#nB3_2FpUPMIMF}97=AodnsPeBX=41gRS@8qN$!3{WR_|x@DE%yTiF?HnISh!EFr8 zZo!*}3)$JY4L3|F!!D1rINSaLM%+lkNyDFD)aF^Z!X^kE3eKYAMSqk`&qKC#z?7K% zC@fvbd-eFEQ{Hq`POas0d{TH>`E$J1tnV1Ua6E0U+Cu9STu|y2M<3Zg#yqYM3UvDhLpS26{_>&fV ze1!R9sD8n)SAKZ(#~Dl*n22h__F-*BF|N{ojkc0*xZvasOgHaBgP;dEsro)Tu6cty zV>PL6{R5N@{ER=V#!`hj8Z^*Anw}O{pov{g*m`L!UCjJl$0pC9C)qlBxWJgc^8SMg zadnudB1GTHm!Zs(9?V&A6R$qHgf`z=QQP+pD*d_1{9_*A?&eDv_972!M&zSQ#XekM zxCNb8rQ?w;1?V?D6&36(n7__s^!Gr_ijBw1Y)!N{pNKW@9dMV!VSLl!j0JiVFhX@F zW({UK|MY`6^}}a=65|zfb9upEwmFKas!LIU;Ykl0F2*@=LO4HKpZ4m6pq|@?@|EiY zsdDX4;&fXN+hy-zrP&nPotjIH#~wzPpr=SD-9}>h6~pW5F+8mnQ;e=)yO;vaEkBJp z!!F{=@_gKAd;nJ%MdSIGwQS9mpvv3D>99@jFsXDXm1TOyA@^?KygVVQk*Y$Ao;<~8 zu?#zP^EnP@GWf2tE;ZTx8fP2)#37Axv|d@7PP131qfJKAF2)hFze<*-N~+OC*T>K| zcTDNDSteBJp&s3;G>$F~7*DxQP5N}RH61!bo8C7Uqvu|zv9T*b7p@9LlhiDf*oy%t@KVqFcGbEpD6CRgL`+4(qmF~e#x zzu)srkGI|12hDPx;A(58dpLd=4_wZ~54)G5{&O=tup88i?sy4{+?rQ+P*s z0F4`^OKtwVLd#V;bVZ{sH82vQZS@oAY;O~~#72y&lo`_M$usHY05ck)MQN2P!vc&{ zpbEW%>2n7=8thw!Z^M{AZ-@aMLVIz7jyv@bQfD?5Gx~6&9`zj|LrpCWX{Osi>dMyD zfp696oF6$jX#jmMJPE&cS_RfExM^_^UVtqifW0NFk4(_Jm@Tlo#qM zsGyK#04`2c#;XQqcs8v8ccrD{&lmS_V8&_88y$>YMhpkYokd3WfN#IHFx*oS&R*Go zk|sBCy=wv9XMGqCMYFm}rQz>1O_JoPRNABk?kGxY=M zl%butdF(E%xf03dALGdI%tOD@3z$eFaB536erd79Vau-J!S3sfSMLM{9?Qa+hnC`y z>Joe~Iu={Qi}7@!Dz3EMgMagu<1^`MOmkyCn6~qAN&8xix_k(8?X}QuVk-~Rx8oxt zQ58{`27oN_-@e&$ekBPRj9$o5sT1^`DjHYi__Lm3Akm-cAT|X z7?&+#ei%E9D+O zIKbPO4jIQ&DPsd#mLfwH8-wW4a0j}+T8FMr{fj*Zd~olgM_A)}oa&e)&@_1+DjN6- zha^eTyz#5)<%dk4s-j5G&F#c&ry{(W#%zMj_GoeJD0=R&qS=PRw6vW0+N@NgX0{*k z=BknOnFEto<;!S#BGYZLb!=#F7izfZ($NieyrpJ1evhg^^Eqv}(cBZmVs2rr;Yr@o ztQVanT(IWs2^5NbiciP>MeVS7W*>;fTZiuQIxZeq!tfWl$s&06%yBGruEVSwioEWM z3-~s6234IcLlc=Ef3A%UR-RJF*+(>JP4`&`{N*_7Mh}Lr9YW2+)#!SYh1(w$x3ab-&_KpZSJl8`;q{ zo4XO~9%AEd#%XX|iN5a+MDym;*gl8hH@s!&LuOyiX|kv8%ii(pWnyv3tXQ0FdmKj% zVZK7^y>Q-D8GJap2J6^9_2btxeAXm~r&L1tPj|O7+^i^lbZRaCut))2r}^>G77>`# z!Ss9TOK^9G97?*!@t?$Ql>Ih%haaju=#n@#w)adC$c(RBF7o%wLs4nhOU%x@$}cw% zLfz17{G*YTeC1@s=L=GhRxRY;+&hW>m&MROV})>hDOQLjZyfMJH{&HTD8ThHqEy1b2d7UiN6Tx+aAI>2wkF?2 zzxZA}WOEF)1A6&)s|~O~M~XHclcHrezG8QF5k4r(z%OGD;qW+PEa*tUh&IMk5$%gh z<72U?%@0qACZmmlFxC3|hsU&2ILJmAH|T|6Qu20uI(HG4eGNeu-*b$o?;hhMO2Fcl zF_`5!3w@9KqC(%h~H$8Zd+k^3m>>J+7u8JQw$Ox;O zt5GgsIerqKk1aI=P-V0oj+((^M1?c&lB-fSu(6ugdlZV6=6-ngkuAPH*?{TCK9d8- zIoiOxqQ>_a%&f9Uw*?KjdUOd+JU<41tlELvn2154O*n_`<$ABACaRvUL5G?oyu<8UTaz}^*`7CWMch_gxcnzR zf2&EgH6G%-byv_sbToa#u&$<-%5=%@8q82Orx$z~PPjvzR!7(Ko3*at>L-kI>Cz9B zwVOgegql#_vg_zFUy-hgP@&(;-7s<12#WkMe#Pxhd~;fjR>~h@I)-lC{%$lasJ)AJ ztLpH2(b`@nWm!1M+X@YotWo}PIlpa) zae48UCVtCUf4t{^KrogQF*G-$!|3Ox6;moNJ8jrn+A zM3vq9QL{2o&?kvg)zR&GFE3R$oUZRUjNMX2sPL+rzr<_@okxn%=4fr%lCeV6P`@85 zu)kvn&b{M{si`vbfyRCeH+)vsB9ew#-m(1rQF~FgXaxTz#t=Pkt-#&xS!m!NLndS~ zJ~73aba3zsex!~M9{41RUiW!H{k{XwVQEP=KT>@f`m5&QGpS9);z#{JqG9z z5P;HNIVd#R0N316rf)-AasJyec<|Rn)Hp3h=S?|MR(c@=k50413!Z0r|KPKjbvGZa zr|id0uYI`r-7IPqRl}DwUEmvy3s7;2J-V(-M}OBzIOX+pY7s9?J@*ze*`rQZM3~aT zD`8mR%rHhOnRrV+19d-e)FEjy&7JlT1NL>`?74yX;n!YlWxUAR%OB(A^}A~ zPMNY(`gpdn5a+rc!0HtNctM8wF)5wHjf}JQu_fY-lXkd!-jOnShdhiJ>W?RzOay%} zM*btN4hzJ+&#U=QE@$}bHCg!bLjbzQ`!GzNA#cCY8^2%A$M+cnX?ymx^0B5u^lNiJ z@7J%?K^V3uvdsJ_;|NS~L(|$vd=v92-!jk*rzbjKV#{4rTAPdkMxu1;ntK>wSkEW# z>EVU`1e2iaL3q7=B%N&Yofi#lz(XK|BAXk~>$@f0!>~6?Dn`*;H|L}OmKGFkW8AG9 z2GRSATlnKs?&9&Lfz;XMERHp5!)cdf1n+Tp|6P2to8fe_&&MzNp|0H0D-G#DYkq!LZ!+-hv z!P<2Gt0YXl8HYKaW}%hKU9`7YhCZdDR6FJyfA&if%FbAdUUkBBZO~o5P(B{_ZF9np zNpsO5at;n%ItPmuiBP9!w=uMQjG(UV2V`lr!E2P<)`piw?xW9&SaS2LGiJuE#f?|K z^1-Yh`}WQ|R@7K(suzC1bygjiHdkRls z-ZmqgaqAT08-Gl)pr0qS!Lpg0SJ%TAyR@lmJ=5p2%Ojp~0pHTVL*l29HY5td#GHl8 zCC;}9&L`p7S4iBBmFS)S8HM~L`CSd{%*6aHCyQGN(ptA)L6>8Nxb)Nz>hTNFb|1yy z7#q}E_fn8wWwi}mxa%2NqiKje!z$5#lr%m5RgU@=%F=yhz__y|X_4V2L0Qt?@FWxC)XYrRrcO2tadQ51ZYA2a`TbxFolcNup zNz%!A)`Bull}gZ(g+}!4KE~hr-V_^uo}x?Zui|wvHa|8Drcc#nsKFbh^1eQBGPp~| zTQV-!EGztDZ-!Y$gXn7&2|?WRg_BX&-G**Vm7;1-njBfZRU8I;X?ZA zzcqOht;lU9M)ItW`>xx2aYpGv6xGTT{QiDT7xl)xB4?%3G3k{B;}OfzHyZ} z&A&Q<@sKURE0Vovy?inr{v}Eev%QqOsuaVmjl;hqBn5NXd$|RsSHCBhuNz{{8Necj zRoPl|1#RT=u;Zv58aNsY>Qh{4f#p?I50kVHfpLa{T~78MC(PV`0IO@{Y+_ z42!H!g}fe-vQZ3+J2O|1cf>+{dgy(=;Q1yufXaO{q9Lo~%Oj5UkEzF73b8hBD(YDo zpx(fzf^>adJztCIHQDv7*O4|x-p6eWzkB_JJ-t865zU^@#t)A67*PBcr}>KTa>frZ z_P0%WUwU)nW%%Um$Z{*+R&@Qa=wEpX``6&mk4tf=>s@qVe)Q*`s#0IK&w{xyBf1v% z^vpq(BlQ>^U5CEQ`+Z|ZJUU0uyE@{g*ypHe?ttVXzAxhKaVNJ@@>;mPNM}y<~iVM_4hbqfdk65KS5`@9S3Xkbj|f=7$L^v&=1Zi zrsIgQIm(n+kE9}PcW`^kOF?@}{q?Cvt2$k3y;9J}YddFC*Ed0exVmt0K2$=NmWY4A zPv+kE`_FBR`ZEW^s=k^@&m0a##pa_}@@c!EjC~jU z@I}jJ6mR*4g&}^}tfk1Sw^Ko$afpszH62 z{n)9zuYG-&aOr~bymf7Sa>-7HU9h367+1{xGG{>=(GUGp7otKMOVAg9T-qrK~ zZJD(Jm0mJlKNI`%P#rJyH#&e%ueD*rcs+sLv#)G%PccC`7Atq)_c#4mZws~UxN7A- zY$ChR*iJ&aihvoQPXCW`#5KQNOJ0}R!T;0U%glrEmrwN0TXYxzJ zkbd7#%;so_pq@{nfr9&baSM9B%z)Bc*XfHSOF`K773G+BdLG|khqQTjIlkCuKtDIW zK&1l))Mkt;Uy*nY4@T$W>p%w@t&xwjA}``sgDCoy-Gd{q3+lJmW^MfB&VL-;Kd&QV z&!JkmDP4E^Iu^zC&--VLv%c?rl9h__R1i|*bLVh1z2yktJZd-gs5_jTuLGPGiS(Sx z)qmxN{)!TmJ5;OaUzl~gJ(ZGYn84U-l&IkO5f!&kth87Vuit1!{f~ zOE%A+3aA#uuWqZrDKY)F=k>=bP*v#}(+gK&dVUp-omqn6cPH^D+fvK>%92!~G%&xK z@pw+4SA|;y`K2el6Wqr+PN!=o%%shF4m3xq4Zl2gqqFt?BKO6Oib-|g$FO_Y)%g;i z40$9-fA&|G;NDm6DcOG6(D&ST&3Ir$?~Lj1uPG0&;rJW**wS?c7cjZ{bzCSNv8M1} zUO8806V$O4e1i)2FzUp3sJ|%p_d#D-^E81*zBZ+QP9CCbQz!9r|6aoIhH3xia&OH! z6s_rBpVf+P2+Fk>RX}yzk!lxnv_mwUI?PKgPyfkLA(_22Ox%`gcqHQw_J0!mO+(rq zP)5 z(MyUDKlJZmWWy&=i7SSJ@6=tXPB(O)7u50ff9|jH{xi>l)#7lapWVOyOHjUo1E2TT zA9bt>t5Y)2fAa;bv`WS|WD0NC)nA989R_-I!lC%`OYgIB&|^b7Vp;#YKMpXa>wovZ zm#cyi4KVDNO?`RB?CtM|k25my;9mpU?9$&qeR2PN)hqY&t@VWsC{*~@K9i--{yq1_ zHFPKmekZgl(a}}k%KO6lF4GG!^r*c8^@!__?++CcGI=XYdk!-j>+8Wb4q;-K`@**k zjH45~S_OHXr@s)C_lCv^`p?EQnQwb7Ntalw3Br%e|JZ*&8_E284*#1A>W?Mq4_=pH z4;lpVedQWZUAlw$25L;urLNCH1>vJArKzaa2pYloQhS>Q(`O$~(twV`|MCp?RQdPZ zS4QEI7v(Oy``=+L7sEf#?0*KwqyN&)v{RrlEPQu)e_T{c|9f>GkKva*?+<&$4f&V; zn*0Ckq5CTMpG#`8FvI`+CwyJ!C&8HMi%!|nzh?h$+W)@);hziot=C$NhPiwdc~`zmVG~vGW!!g){ds?z^zYx6 zjor;#^nAqn$Q|^^;B9nJZ7-fw>~H4>_1$#ts9%CM@1FXf_w9SXYg_um*S{5_6Z87( z|L^zy|2;=3G98R+bNOR!;eYS)-|3d@6cL1bEEQpXz+bSa_9x1|-9ytJ{uH!f?+Ne! zlkd^R{m? z_fub3-!kDW+N3PMS0buJ0D%_LIQ^GLMSbmBYZA!wP;BL_Fm zB05Jrp?Tsu;;7?9G(PK*y+=cdepv=7nX5{)pM{bq2PTuykRURqPJ^^XT_ksoPA8sE zf*|Q#04X}{Pj>pOCepJCiR8p6vM?`;#ELH_Zxv6FBKK7CcbFe3HAp8ly(h`pno_bq zBapP$#*k;RB_ujSlw?bJkUvP$zPiJfUqeD5Ta_6%cEXlq06?A`(K zpACtcb11R!A42qR+LKVn?Qq&qg**=oAZjVikbEbIy!7}C6Z7|yphcUB`?3*amURR% ziVq`&d+gzBbTtHAISL1dFCsc|azwmShTw)L&^2>4ncTXP$h{cHpLM-NT3t)&c`*q|Nij#jVhec|xsF`>K8aWlR3dW&Ov!jvds6trkA%PS zB%Lz}2`Jn|R$ZoKXNx5{Z@ZqnVDsklw&6r{&wR4<$`d%-6$w*3T0x{Glsvy049|Y* z5c@HU$nfk2Fkh=m)MQFQ$nyaV8j%Ch?O(wnR)rLv`vOiqD&%K`I=N!s1`jhmA#}tA zsIR) za^9Mf)K@=&2VLT^U5s4S)hCx*{5&IV(pfpv8T&ks{`pWcO={$vdKR&3>mjlg2gtRfVMKlHN`Wrt ziv!^g9r5CI{QvTQKkw&1?^58)-=F3UA9azfpRD<~U)y-oQPRA-OBR{)xQxj7A0la; zBgnIkPG}uzO}=toa9qw9bUR&P@u)}$ti1wb%-2F}?NX?!@BxM8C*itOGPnq3z@5Fp z&@(>~UQJmHRr@mG&i++!<@-%IA)f=Yog2Zxh>ahsT*z6|3hH+;!`L z$hl=8Y4iYU+=`(&=@tB`tcPg}vf%H7Z1|S)2TTse!=s_s!E#g{z|3>-T|FL_ha|xY zy+l~=co)jXtcKlFr@%lRe+d5^4yl##5WX-P77U65u5t`$?m7q)O|syMyfZA-TM3K( zR)VM67=uprgg;XZy|YWZNWE9cg4cq^|;8SmjAgni~nwIKwNfs@Tv>Hkm1`t zlABxQ_=+J>#A#R-IeDj^v^+K>DsRt#Kax*^BuTd7)HFRD0!4Ih{%8b4V#xKlOtDT$r_2Fq$5|1 zl=XJQtnQD{r2YclsOpkENmgVikEE@v0c47-$?1)4V6klk*`)s$dTKs_yVC$td}J(H z>DUHtHf&BU9ZFQ14T*8RC{aXVB9f#=1~&~Mj$dv%oy9$MXer^=lp!KCtw)wtvdw@9xo+DbLWv2h6joN>?iOp*oMs38bD@T-4BZt ziy>HY8FY%BfD1!iKz8bWm_(+44+cOZnF@s?Pl4;vV{nBJgQ3T_!SI(}plT2YO+Ml9 zH>?DPjE{u-KTm+2Vmic>oQ4?+nef0d96o+H2+D7dgVH88M(bQ*=lDt(Fed`)?$wcwT!4`$z>>06kh_mU$I91lu(|3@?)BJ{cHJ_PpFDzmJTr@Ikv8DZ zc^}~$_Aoyob~!l3^9Dk3e1YO=a?xQj+34xd7b#ovKW^24`IzNI{rCp*;`%gR+ftdF zvk@m=wkqVZ<^*upNQOBUp3oh<2r3#qV7W^?gqelF(U4gnD{TUUwuZp1sHJdV$PpN# z;SY~=TwvEuABc-N1T`T6Aay+iT1H00*)QQx^SKOiTO#4c(F_prPJutdkuae!71q~X zgwI-Mfj?daFArUT56_d~_VD9i5}N}HgVNwYR2s+!r2}Vw6@*`wfbH9JFhBV;C|3u8 zvB41#p0ExoY^T7^XA$tqbR(43_``{}M_}@j1u))s34FTf52to*g~l*D(4Q9yZ~2wr zK7Jm|$eaKk3$5YTDIT5|kA`jj9-uwrF8A*GSuju5V>0?6TnrT>-W8ezq6U#@S3+*~ zj3VXMkz{E8T%v3h4&#p=H9`D=Sp__odzK9rN^g`U(3#`F2-YW%(Tr^x0j z=Sef$PYib2Ol-5`$OCaLvQNT>yqoGvCN7a9^CP0*Zmd8l8q6$vi9(LfDz4 z2MfZr*tnhzL9sS4f3H8-6Apgzb714;xez~eF&t!Dy$5wW;Hu>zaL@At)fIj)E#okp z3HE{I4!%%vW*0CfdxzBz~Ds+Ofw0G<{5`TZjv9||Cxdeh9!+4_`oSfv4Fr?&!}4uqMyVetC$3CJ)! z4{C~@q;e%C%i5qy*J5kwXlRhM2fByAyr1L2!ORqPcdUY_V-!~J z+5ry-Plq}0Cc(UFQwX{;7P`L^ct6h`ZmqO|t!u`CzLgFf8?6M=OaE}5WE|L{5$p() zfcI`Uxu;YW9^|WojG7!+%l+ow$8~Z-mG3#eLKu!rkb&ptRAKA{4Y;Ww17cS`a4NCm z!06EguoyBAHk?@pGrRp@^`sMU%VG#Yg)ms+F%fcFw21DGVZ=Ug8xgr1MlObGl1DKM z_^yKk`8{_20y*6$JCe8+eAOCd{-&BH-&4Mb^q!01PoG#%Zgn~mMb$CIak0n2UBBt=eLm58Vse!tQ26%0- zf>ZNGL(_EwNV!TNUUn%2c*fdB(9=*aPf;01vYowydvJ}-hOq5YsxX%CL;w?U}wESR^$ z5mb03c%LyARBr%ujzv)YWdzSBjR#Dg0ILhNAkldg_-s*vo3*{%RCjS0JlhQRzv$o; zjoP^xol20OH~|_)?|_szH|Vw53FiaLpybXeSnPffwg#(_IiYFb+?Ec96&1-AcJ|9K zPb3X;G31Cy5c4SCz&nELSvM^bC7R#`AiOlc9ZSHllYp8mVDF< zKTSJpbc7zx;4@LXRG{CoyNw4ox5UMdBNGe^U&xmw_$G722m z=t6GtNcdRl2( z1U$!E5&zObq&#jSd6>PK$Tkkw!g%GR$fp4cQKZA#jZX{P5O>#Y7Q~)fs_WrZnv7ums~5 zqe0PI4`c@^KrK~=Yp+JZMgw!^Sz-b3MG8tz4}v$dzHq9RLtt#xP_VcB!yWow$tlmi z%f-7?a&?#QbFF)GxWKt*xq~~4xa7OXIEljJ+^~#;+1`3W^>{UxHnM^nAM=z;y4%hD*~#SJ*-zZg_d?L?APnLnA|NBA1NzyL zFzk#ROfJ<1N;IK&tPW)V&;%(FHF&SA59UeZVOXdJJe@8N_hyNJpO*%N{T2g-7m`pl z>@&w_e&nWa{>nXd76RFa4V=o?3*3m87r2DbYHoN;kny0?Ofz3!Zm|uj_fwk~GF$z|XTnA^| z6Cte3imfB2Q2DKsTVC7EolyMBz3pw_rgmg=+vT&FJ98X2&iM@IzNwUZyy+5`vaFcf zE?muxDY(t)_yO-V7g^9)D+KyAiZFSLFuX{Ug!EA(pySmy zu5^nmgiIBORZXJs`?&;=5HZL-^OWnH*u^O>tmG~kJ>&xX?{N#9>bTXDi@B#>8Jv7( zHYd3@iHo)I;zG6^;(q2F;Cidvxy<(w+`1QWT(xTs=TLu*yHGtC+J4q?4li^-;+ZTA zJZB0IBUga(VJo<1eHT`XtbtVu2VgH9OXfIT24m~%Fnrxpm@q(-44872%)Veto(&Y` zl@44aQ-VzRvhd4%{QNikPa7?KdMZLN#@*9%iFkz$@4e5RZ!2mbx7QyesVWJi-Qg(- zpA$qbxV3_P%xdyQj-7SoD`0$GArNmDI5}Vm42m!W6+2_tqCNz?$|S-4(jD%5$!*TJ zwvaR2af(}UW;^GocaU55C4kG_e~`0Pjpgzc^SSvm(>V3DnOvZL0T`F5B@nCwuG%mvrtS_jPGA=M`VZ zd7W?O#G`L;W<4d`I;&$`p!{L(%ZW&iZu8>KjQ8c%yxYXR9Occ48?NJq1uWpI<_B`C zu7q;!A5L;H4VB!8Wf!=j^|v{pL#5o6?so1>V>x#<*9Zm#ZHF%{{t)T?803WS!~5(? zaFVQo`Bp%r^g6)gaR8}N=pgkPzd@lQl5}6+PcA)o<#QJ8;l~Y8`lr9X{p*Kd@BGDS zlc2xn&D~G5ZAJf3HWfWu_l!4oA4>-xaWn6P;3O7i3KR08YA2%@}jLWHt;vO)W za`Q(Tw_B}%J0q3Nxk!|AC*L)4`?@Q*=-R8?(IaJ?zfmi3LucQhuGdsb4;m91~(zIQ+5tWFI9iU_>#Ee;iRk7h>Q@HEZn%zYpb|Q=|FD&-+kO0r!emCidc>pO68PKoaSI*CYN-i zlpAJznVTJWgNxI+%$?a$#L3OA;~brWvevfOEV)S@LWpOntZu znjGfB&C!!VovlyHcj>`;kOZeEpE=d{SGfesYuwS=C~oaMAI@O$dXATz&y6v$=Q2DO za*9oxxe07eZ!?bKGJGPqGq+^|pMjT`QmcJ>5m_OyXrOD5;h+FT2XkzMIcw zT`uHG7cp6TI-a|HGM#Jij^a#a9^le+4sa7)*K-e#OyxRzUAU!{Q@EJ%2HbFOea`H+ z9;cga#(lcCjMLn_nzJ=H#A!rEa@y*V+#~l|?nGA(_v%zDM~)4Li+_Z{Q&kRJzL`Pw z`!JX*vK>NfK3xy>^MP3WuldNi~Jlql#kGH zWpdw`ICImxQ+gj63{P_@tog%l|$Phw}V z)XSWDeF|srCy<+(>da{jn$1b?wc)yTDfioS4%e%>ira9}hwFLi#VJW1;>v$Ta{rH| zD-Wot``VS1N=l^?N=2F|DrK#;FDjJ^C6uWFC6Z8v6dE+AQJUw0CMiV3|u}}fc*7hc+ry&H&hFu z6EmPgFB6t;;e4#%5tt|A2A|G4L5<2L5DT+{C02T%wpSvnv>P9u=m`;|LdOQn@vJFHRRyTqjalGg8hH+XyYiBb<>G0j=Iiv zMcc9YuO)cGdiE@1>@%7^V>WA#Dq!Cu4zQHoUvyI3pWY{5CgpLHDZy$9b(xK(WiNxt z*Y-HRxgbg>-S~+w?Jy4AKZG&6Oz}tTRP-@cK~JUGxbc(>o)H;~D!lt}OST?Hojwc9 zITr3p9tMd&j$m+=2XagYibUqawe1A+3f4iun%y8J6$DwbF>q&Z5}Y^81jm{TnDeCs zE}N9X<1>X|ezXvF9M6F+gQKt@Jq2bhkAO4ryJ6YwK+yhW386v8;5v5>$Y>}*!gD!T zpCJu$O^Wb)lm_5tQ>eSL5#-)FgLIHTY#7Oe?^jR4&TALoOXqp$StW=sI&J~~#qaP* zRRXgeXJTL9R&=ddk1K0!&`0hbwg{ZSeEYXp3(^FybSQFm0~&0Pq{7%8w4@=7?3>h> zYLzWD^t!N96^cyox*G4Wc0Ws+yoh(ZK7nOX8@vB<6Lmk-We;t4v&X|N6kQNbGOMb& z_3s9Ke`Y~mK~gl;Zw;*ySVM+(C3sO%ou(Njp_hFU@{hP;!;l9a5nPC^j*BrMZ7Q06 zR>F10ufUdf0|KVzfIv?aoHdAsTrnGnpJM_hH;qBjTnE}YYNJAv2~6VK2q@tV^#u751#=1Sq_&n3So?RHiVx&2F252;iUUM$lU4+E=sGR`wwuj zq&nP{m;`1Mq(S_t2>kpq4bt{%!~7ozhbnBqZ+Ha^+HVK<>I5)36%O-0oq@VvwP0K| z1V^)bAxu^dryBhLS<$t)bgCLYNDRi$9}Zz;M<5>F)`^{lcW{;GITSoENk{H|!l#q0 zsr07SSMt_ZJ0+=KTiES>E#FeY1Wo9*SY zIZRo&p7q~f#Y6{HY0kzT>S|%^U>BET{+dNnE-NW!odlK0UcxOd8MyM5Czd8AV2XqV zUYz2A#oa2n-f0$!ESAUfZ^z@?{%#ns?t&`s)1XjL4sXtff@|zvu+LoviMtj-ory7Y zoR|mWw#|Zbr6#a~-w8BU9Dx6Kk}d`CBBcn@4Rax0J_bC( zLm}KE5Z=bDhEGx!;9)Tj-mRDlEyFS(B|8by*U5uLtri^9G=SX;2!skOL0irj3UGl(?&aufZC5VOw!s43~pd)?@FF zI9$y2g?=>7ql%zUsM%19HIr<}NmQ9-&AUUa9B$v6iV-q-Z9)2O z;v`=qLG~y__FE>>g`&4OGc^@EJX~@1k`PqcV}jAyn&{j&2}eqP!=AN&;ltAwP&iQn zRjw)Uk(=*QKMsPNiwpcxSql#qtc8bSR`BlW7BGAe2qPi!VCR_)!x6Rm>o_q&cFt?eV+?GPxRoq|8$sikAYgV1q}AB1~)4g zNDA5ovzx7iXj~Y8IVIvMMvE!@!F|CTyUo#`1J|xd8i=oI`%Pvdqw>iJDgZq|vz+ z>{W9jQ>#~GNju(9L+3DCx9%Q`p7VmZ4K$ga+&ALe&2ffWPSc&Z8uFdqO|v}H$w+As zH9yXyyl4wDul}=-NvO`u0Rzu?C^h7Ap5^Y)Xl4$gqz!8%r*P={>0t3!8A?m1 z!CjgG3-kW7$E|$6PIbAw86IqSw1`V&9(k_}p5FwyeF0)qL;K@JkZjYdVC%H+P}nRz2*A znu0%u)UX}|(AQ}MzZ6Qmawo1~%m!I(ASqZZ4kfm*- zGO;B2AQ`MJAQ=+}(%2wGrC&A4v+ymYdnU7b!-q^x^b?CJ{K)v94^gzw09`Iy&g@p? zv-NANSiMFv+veg%qSdK1_00*o6VAw{NQ6%31`(XNj-M)XvBYHn%_O~$ax-!6)gXLg zxCwK&FT_$CBdoq;gf|;h(8N#}$8UcJBdP=7W7P;J8*4#ud>$;eOM%S`qrhoa2p3-k z!L7&xkZ?H=8pj92bmLeUEm#VhO4~qw{0o@oE`TSJ#L&=U48}bB1E-7!f%l;ceixO2 z^8Q3n%=Ce>WG9f^vkKY+ZQ;^{B_Qv*7;0)w!0+mEc(GA*@LGtf>12X0N-tHK#K>9 z@cfEZ==M>X)}Qbu&jE7^a{7v5Gyl>ArDQr~bcy&b@1^JCxH?d-6{XGm505k<*^swh zNRYXRjL`12`b_cd2Rc4WlQl?)v0c`~lvq|zb;d7gexC`+t=L6Z?0D36&4Rp(`01d$ zHXYzA#qVkLxXIrRXD0>}W|W(2%%4h0N|0yI4az4`et=65T&_+M*z^$rCnMcz}!3Cis1R4fOn84bAhH!<#cU;Iq>UK4b;K z#?k|DZD|bLV!2>wa~!rmeF5@cdf-mh4@mqv1jSsvuw=bDUjHhK4dV>(Ly`{Kw5s4Y zuI7zz{4w=#C!Uyc3L`Ja;;Z9Rs4f_3dVd_LWk`}u!~nIVeWp1fFKDdJP14#rgZ)+# zWSNEQ|K%&a<864nF+I$zzK@FJ6`1Tm5}Pj=z{ZTk(6rB|NN;;1&8w;>{n@3YAL>A5 z_35Ovn~#(o#?nDuIV#cU#XYBC<#6;p2^2jj zh}Q4BKz+_N=w4I=uKNoi^=LAvEsKHqUWs5o@hB9xr9IC6786a{#IXyhi)jNA$V zPHymOp*P$ezZb4I`9X%~5%_Bx2hU87z_`e2aB%H_p#C>7&iW5*J0^)zE!t>-GC0Fs z5@j!Jz+I~DsMp|zS|a&q&bJ797I3Ym*Q@(V=sow>#V@o8Mgav`A z+iv*iv=tV=aEFe>ZE&D}Gg!xY!#n|9Wd+q zbI9DmkMD&v@%{ldTs)+Oq0(YFrC<{tF!jZin?f;JX9Rt6+VRHZdb|;0O{dFlquh=N ztY|Ny?hgSZ{H}uLRku;}%wC$9rp$Cax3N)6R9M(FUEZ3&wY>e>v)Mqx4H}qZ%2M*2 z*v^B}Y@Fm#st_8W+M0e$3D;+P!VZ(A^p@_j|tXcX9-!6>C zY{SF2p~xT4PjSFjK?~e`Yc|$wQO4163Mi}n5yq8$fp^jO!F2sC;C7pWh?})=;7BQ) zQ!a#vzm@P_^)&e3y$I`c`ysGX92sb%`3!RmQQwANt#{MZ7k#v8Y6u$avOt#$x~M8F zj%mgZfj71U)(*tOyNhA4J;oniH3oqB_Cruo91P_Z0U+KV0ryQ~;6Yy;)W#OV`kl?7 z&)*F%=RJbxygq2+Vxt#Bg18?Q(ODNT|G6;=Id4FtOg$VIy&5Th7m5^T;b%iZQp&o3 zlb%PRlR!Lqjowck-+!aoy#!LVc~3pRKaoSf1MLt~VRmtGto4N@RZJIPOUI}2=FFeZ zo|U(-EjOfSi*pZ4sJ})tMJBKv={somtY4(AC(C|Sb<sE$!j||Xuzi&aze9?lbk}8&9QpxqYEw{T)I3~j?0}W`6=>xw zU6LQ(h8|N9tv)DX`u@LQ+0g-G=Vd{`r%33k-^b-cTi}uWW=Kg|1D1WuAX9TGgbO=> zN0uurx$6PVZ-U^@+IV=u^;3#WGeK;)0sKbahY+8;z<=W{@NXTB_7|Q(N6-|kY@Lq> ze%YgZlOyJA+l{L(72=|v=NLG?2sP`TgnS9J;13dYg{$<63Bn1cGPi_v7r3}^Leqm(!g8^oni@0=9w z!?zGQ&;*()=iunfe3&Vd3a8Jwbiu)1xpqN(DzwPD76> z1)LEXhDp2E;&(X@EM3)y{L6FDtn@OzT6+f}M3^e3e8L=`VC+>}jfd;hC@m$Q#_X0N z|G@-|KJ7-aZpBRe!858o;_}b7B^Lj2>i_4j-9+QrsYoA|-yP2ea~OkBw`j=BnNBYL zK)NESbn;FS`7hc+HW$ZH*XJAPE;Wh1D`(;}x7X-ZwiM^|h9bGz;hQFNJY6*%m&_B! z*!QFG^ZtAAr0)$}%eo9hlTX7<^K7VWO@$!aczA9d14TC@;bv0;gf2?}H%tZjz*AuV z<~CUN2;enMc^q?48(&KRiWuqO=?&WWhZGS~1#x(=AC|4IhBHs%f$!TMIH0o!o))fy zv%8!@zRV6(`7L0J^D209W)%#j?d19>hk&OU3I^`Sz(uwgJoc7=1b3Y;2f3c$OfF0O z+5@#mRq9dxF^HxdE*7DY7Z; zOPPhwaatc&LSti^seNoIhbbWPsh&Xl=N=^24g8dOT!=iyXO*{`tHuM6*@ze^g384>J5o`;qbHd2<+Z*6jq$5 z2HCtb;AQ?6OrJdi)xN1%s-lOdcWK~J=fyZyOcu-9*C1cJE0&)0L`%uL7!lb8}GqJ1sJQs0e-q^GQyhlrF z$=7`xt*>pM-JNyx)qWCNxcwXL+5Q(rEw_@mrZKHJtxV&`%F_bB#Z(zNj*Rmj;mb!O zC?LESr<9A(f**;fUFMC+q2|~bYl}YHG_a*s0o}_cpkTmH&=TkY)#{U={pJ*0Uz7+H z*+(F<@BlP7?*z?2A6O;i4I`Vkz+|J{aPD*ntkBPZ0MRN~ixL2&fD56Mch=(D-93cRQiFz(N#mpNb7%M9_EIH}Dthg-M~k zu~_YQC__=m6N9aRljXXShAG4Z`@hfw9$L_+Fd}LRbYK z*Ed6b#{(F4dIB3CK7yb1_hHAP4j4*34Qt}lL02aP0*5_e#BVt`oZ!Lgx;Y^El)-oN zdGIoUV6oUjP>FH?7w#G&gHGU6?+f>Q6F~0AQ3x|Ag?lqwK<7yhoSrU-E9=MLWwX(E z_OTLLM~LDxzF8O-u@$R6gyHmUD{+zf6@0nlEYf=cQgn_bCDVz-Jdr}CouKxrOxnrS zGvo^+C@FH7w3k+pR?c!dIlY^$PyLUZ`g86DrZUL2=D0^EhfA7!!Iy~{cH!mO8Pt{;PdT**-KksrA!^1w7zF2#IKhgY)a5 z%JejBocIRp7Aj%?cM+VW!tK_6S{i38nvAWFqtTFyF@MQ$SktAmF_(y%E!t4Xg zKRS^uJ5a?O#Pr!H#hc_9)Iet(<}#HgE^g-YqM2=nsik5DwX8HF-oi;_S(J=-_Z-KH zi>~b=tZGwS? zOJUN?B~Z0tB^XY1f=50f5VAQDw2x;%uXQo(KU@b1wH@#ypdGS%nxSD|Cp2AefH`9- z!PYznPG3CA^}>Q7a*ZQ+a8%?#0o&%u@v4^y#tTomtbY~4#r#?g~LalfnKl|Y8;%3V^Upl3dUo>i)7pv z!cY1k6)34SiN?NpiJF>+sa#5fq>lHIO~_Namt#efBkF1UBKVgNcI5@JgsUbzv7Odz zb%719Y^f-({pn6BzwS=KDr@O?$`LlV?hTzfW=V6LGblmZm*l~ zzutxlk$*7tvpXhb<>GX`DBKxofscRdq4GY4t1l~|_c1BFQ}&8mo2~=@$XVFgoempz zM8NUYeqifm3tHhT!Fa$Fg1=hAb-fK--sT2tA4EfTO(MXy6YwOU8eS$fgZI~V`0m#Y z4W4aqovUF_W|zTEy#jXZI}UUQ&d&a1HsOZLf0Iokfe$K z?A+9Qf~~n6!p`qe z(5og@O4UxMb(;j}QIitMh4!La{ZaH&Y{Zu0o%mL54+gI_K+6}?(9d5Kzm0tfR~%o0 z&FGu3!@d&sTuFrIdm>e zSA%r_dDy(K8R+3HI4Rc!cfYs5Wy^YSkg5jD$>mU2kqJJrIiPm$Aect%h9GGdxF5b8 z+A9!bg{H%}!wPVD!E7*HZU`2!05q@$B>f{{#d{8m;F}LA7fWH)i)xS%u7$eoUtw|Y zTjs{{J#E*}C&$e; zw7>l}NprQlcxMGNme8Qi=q+rDLlk>e?8hd@B{1!`-^rv=n04qfc5_N6Yd{fR=hGAl zZdgg%Jj&_#6D}@vTuJRomgL*}4GVXi#Qdf_d?NZ9fA{Uiob;u*`+);WizwmN?aEkb zDuBbEB~kU32BtiJ1=G!M!hNr5aE~p4Qm)S5xF!h9k2%9qnN84VwhtC5MZ@m-32+Mv zV0l3?EYYrka``q;H0=bd`}crpyo5I#hEpx)Ep%{sc5Lh|NaV1FH&=ASzSc9aJ+u^r z>DqW{!tX4mYN+y0- z;gySru5HEW1r``kJPu!*PC&kiqw$u;6?kse3Fgl$VDYb5=uU};uw)nbzRnfqE%bu= zgxyekC=lc%nfDGxbpjNda55Pk`-l%9j>&ByQ_o`Qwg zQ%GTVVDhR)Xyb5^60Z4>C|>}omdP;j^)Zlf+z%cuyP?tA1ys`J0~0a_zf>(SGMo$x z#?OP^tJZMg_8M4oE(#h}#lvC_n=|yg1=d-7fh#^wKzGzv2+$Tn>FL8@wSyD=P~L}W zBm2;?tPwkm<8X3!2EGjtqLD#!`u-&lum07cW#8^mV@DXJO#07f+_fvCJ*HC`v$SLO z#sAetOE~?Ti$R*~X2D0gm7_$Hd6rD~krBIkaxUpke^2i3)R^9I7CGAL(dX;~R66!G zUOP9QtTp-QV^|Pw*l`?lrw5?bCVSlSO9l7&$l>`ieq5b41Xpjgz|NQk&{~rSPAh{! zc1sW}6p01Tp=7wtVPbslmcT8sv#@?q9TaFZ!14BWI1CS=L*gME3FODRr+j$KN)+?2 zjK(;*?{HB29ei&40e?Gx!HaP(Vf(E6faTrr>tYMEI$Z%3zH&%P$pp=H8BqV^AQZPo zgKCi<2&lP$h>|0?%kPBiJ=V~0KLS*Rli+4-Hk=r)fNwQjBriiicB2Zx6B8)Rsq>4WsSXA{AQ)_u7+bv8R243Udv$-_kf$MRg>tYdJiVdIY;}& zLg?3+6_kz3X{lK>L0Ssx6gA!$|T)e#5Ra>KwNCjt&@M8KTw#c;wX87g^IQ1$mb7@fES!AD<$d(Jl)Jk{l5#^dZQlTlQ7JcqZEK&4YsIHD|puLs6p9)~GEHDfep>pX+YkDtTc zWG=7a*0nvy8et%*1RnV(L&r!Gn8$~MD}NmH@ArcBTld0oQ)kF;<**;+DUczb50giq z0vm3u(!+kj3-33exsbAa9rB)- z6e~`lz=t(-Xhe_pHfquDUm0}VU@Nowv*q8q7kFt6Ph8BE6>H96Svsk-%D{nTkJe(E zMPpfB${%|5mBZxT*h<-Tqu9aC;^eUM7jCuRP3tRvqTal#xMf2HZd36@m6b&(*}E0R zQ=D+E=X4x0RK@^-iFmu?1-NAQz|H6qaIY%@t zJ%GQ`PhrXeLHw4@hlgH^VD(Hnl({5_xt?;Ud{Y~DHB7@(Zc{KVS{5(6Oh64eDHL8J z&SC5&aa#H~d^;$Bhg(OXm+3=rcDW0I)DLZiT;1q)J5&9H!1Ui7k*C&s$us z#?#3VVDA)V*=yJFOslk(mTRtJ7fXOW4;f9-dm^ax)q8rh=`c-MormeQ6X-)iKAt{P ziBWZhh-m>h|14sk_arpiW5D4Y_)sug5?8!?1bRDPfavw}P|B_6(<}O5u)G)UXx{`; zj(jJWH5MhtjK$flVrYQlQEa*t)(c8w|6U7ZA}0`yOx zkC$&Q;OYzpSevAWX6h<9MP@eEbxlBVH(9*nJ`PXJ9*6Fq1+lE-HN5Zn4yB3DLFCXA z*yZ{emaVw}&y;Fmqf-gYJyr}23I(veBp-4Ub756NK6p<)3GJqj;USl&oDP=5AGuH9 z$YO0g5^R9egZHC$P9{osoyKX4UP8wNX*yigfhSh9;e3~RJS0^}`s;pBh;k)Wg}uk% z-}lKwuZ~uVi1RZ4UmL=HNQ9*YFX7@hVdnq%3X``v&-On4KurdfWcBMBtvPH&pYnw$ zMbLw${*I*e^d6l@PNQ>rKgLCIoWaTMxI0xAUwPW&;5a3Go}-GN$4nnR~$ zXV7N-4vGv4qzwcGauc3${d)nF@QQL4rX&@@}IpFMT+wt4^oye;Uz=8M}Jg^}EGdf*xSC%X8QVYhY=NmDi z+ZjI?FTgi9m*K_c#c0%`hOdH5@IZkE*Ao!IqZ-1PT_KNqZcV}%opzX3)(O+*{Q=R; zA8=(yHM9*q0?_yZ^~c`8ipO7JS%4IN%oIi)5m&TUw!@(iU#yjQfgKGkc=>1-4prFV zlh82~BFS-ev*gJzL7&+f{K4>rrPLK1N(b+6{pXw4%y`Fq#q@a7V~?<@ubTe-&8QvN z0@-U!(|SGADrV$euSaE}P4xQgbT)FOkfNTirz5pKB)i2G7jBM0?YMjBn;D2(uB4&B zmFf6YQWxXW1@Ze1Y5ZNlhbFrbnb~v{m@0w$Kogs7mZI-tBXpbO#$nQ((eJW7ZvNze z$F3d5gqAQo>bMV|yl9v(Ku=Z))eMbJX5<~PNNOkK=m3OI`6wiMQ@ z;?6z^d?qf2_l{`e@R-r)*YE?bjh4XS)KR$Sem~57FN`8HWl&yqFY3!5#jc#SXt3@y zR*9{}2c7kpZpi6Y{JM$OX?O5PXdc~+@uB(O6Df~*auu3NI-)y^`D}0eXV(MM_;^Oo zR`R}WOy}MAlcRb2^_fhj6)W_<`7dvLHD7^Z1T)AuE0VrG>_pMYW4Jl7m_jrQ(2COx z_;T$%+JDo>qGdch?z<9icq?Jg@1+PQ%y7rk71(985Opsr;BQ%L{OVwWa}_+X*qyi#$@B6{1QARUxiOH zuVZ#p4c5+#!42g_7_uq?%SF%N_O}&WeJ~q`@d!pe*^7!TL1;1Jjr&s%Vo%ZPgRWN79G;W?vL+w|Z_$FKuy(SQ<#ZExWCV6an zHUY8P3U@^=#&OkLUt{GlG+Ez{Ve0O5b?G@gws{b{Qb*IGrgFL)^J2NHd{@JZ~Rx2M%`%7_-#1`}!n}Oonj-aq}D7xLUMY{^Z`9p^|jfMbJvfqQo zrH8PsI~X;dg=7295KKB3i%&jh;#&bo&cmp@J?sojmwPP*WA5kEXuuned23a~1{7B{x0;_moByfKfnecMj_GGK)n;xo~q zMHNqU*kH@Tm0Ycc<8q7H;j<-y_*mB&cUIZpD))5slMTY=wOrq7??x0{>WEd7^y&7_ zFiz9q2+cA%i-reGD6c7!`PURM&r9o=_l5yh(>sk7t@*_~qi@l;Ia(}BZzX*;dq{G> z575D?Qc~M2&g9hv+2(o$=DYVB?Z`-`_FZF1*)j@`&OMKbt2Uw0;7*+C9fVcKmt*uC zV;pS}i-r3G(4;N~11utNBqj>XE%uYCmRl}ZP$dv*#7wl|}8>je~e z(11%vl2LWZR~#!|g|!>c;spOXOk5O>%AdorYt(Es5sbpH_nElP+zaO`B;yskNQ}95 z5UaEo;}54`3~Wk4qmu_P+zC){!APkY>GuZ1UeY2y3j?U<1gg%^&S;cnkJ zjNa=_Z?b;V`;u|=c*Sc{dfY^JB{RsJ!xcSAzE1HM7qG07jck6dF*~-}p)%(}IKZvv4oJBkmW7$Hn`i&?-6%Wj=?Xk5(lHzf8dT&huy`P>n*TThZL47SEm& zAh(uFC{?9HW6GZ3oZN3%E+s_wf2xt=$97z`m7f+~nM2bmMCeA?bUL_X3jGY8PTQ|Z zQr)*F*qFifat8WQzT`drsurf^o4-)~+YrWcnoZw?KH|xeF63Wbgzia$oXx%4j*m(}v&NA7IJ(8hojF3N=ndqQKK+>}t)&vgUFe`IC!LkMH2;`Ayh+p3AYh*tNPY z9Vg%F$L9tq_@by13(KG4)Q5L*u81tXl54eC}rA-yt;4b zCSuIX4xPdKV!w$evxS(3#yEC->RHy%5JR;N+t|;ArmRHQhjQ$1(aT3o)c;(QDlbWs zXsaN34)4JUD#tJ~Cm$W<_)$807V=do<1y80d}raraj6?Iuf!Q!zDJ|it4MsXY6;5T zPUqsTI{YaUg`qExbC{P-jvrrxGhUrVzvE|7$X$pGi)%2)<2rt@A4>~oe8bhZA7iu6 zADov}gU=lJX>I0bH2yxBf`dj=t(G*Ep5XLo&K2Muw*l1sd=!I?8nA0ZI{KC-qrLPc zoKR4L6NOJ;%GWxM2bPH*ZP6GLmx2pRjZyLID)i7jfVZ|E!PsAZsOGDM{du;S(I$@z z-NW%cr>8Y}(Ox|JY67xn%kdI1Y~gs`+P#~w?2sQGP8~qrPd7}GzmFXmq4-{}n6!2p zlfBL&;$7!@sPh7;^}}Pf?o$FwQCY`=$4BwdK7w6X=fp;pZf6ZAJK5gu1-wI%H%U@a zfNj0>h;|wYF_WI-oW{g<+AbAL;vcrs|L&W1KSA23AWl`vMm(AzBh%I`p=`6 z-NtnJ_fneq#F4D}=hOP$xm29YqxQp=UZ%@&@9S5DMVdrJd#LJA?d1F^!h1} zD!)u2ah37pz%NQ>%O;S0$afS%d76Ku=;^cx}^1p%#e#g)^!GRki6)TSu^JM1qE8mH9caa;xnwZrEtYbavX8n|XbiXf_)9Oi~M>0Xw>3ES^mle@W zRX0*@$f6RzOSEc#0Y%E?(_nWcNpFgy6~>3@t>`(@wVg^P#U&Kt)J%#Np`>5*k`m-o zX#eCa3gqy9!zST$b7djv6o%8%3}|HpvN+HpQJJ{_$Ne8hKViIk9F9@$3?BQzX+9(sa9UF;^ix-q+WZX&xAfxv z1y$HuDobu&B4m=-jaRw*V%z)C}2 z6?ZS=?T;oD67~+Sd0oN{W!Lbqx)o`Oa$K;Jx%jTL8--X6T4;X7h`x^~=y)D~92cjY zb?0$thXgf>jv>qUFEP046$U-1z^V%}+_q!gcyPgZ3chy`J1_R5TJIH9TBAs}D-v=@TpT_Y}dazv~6Sr?8?9gt+>*tT)2Ts37bR36|E-6I?!3LE3_7&fUj;B<+0P3Hq z$f{n9XI+Cw*u->kp2;CAo|NqZ*YR(g5PTwAqt8W&K3p`C30v{-RQ~~YdxXa!}#T56kivrJHBMm_@ zw&Zgtm5oehRWX$mcaM*a%u{Cyipi8bO_nLDOknYA1ew&XK`O|!We(MftY!Xq<_zuB z@4k=p&j_)iY3}TJZ7kD!EXZEwyrMf!eRS%UG3&HYU`3|}De2ICvL3D?MH^0kZ$OdV z-S>zd2q`e#oD0O~+D&o~rm%!(HS|Y(9P?AZMshAXOyR%>(s^A+65p@W5st%frDXzE zZgilwM{zVpxQ)bD7?Pzbhh;wJP3@~&X?;yReU3avH&V*!gKrzfa6Rf91wOQYrzp)d zT0`S~pOMGMWwi5d4e_a|vJq)*mb6BTO|Ws~75h%*spL=P#X3u}!iiU@{g5Cp!fpY} z(bHt5ru^*6)>$-?e~NBBna3{4RM19_5Aerci57i5NFuqV^n2898oXUd+mEVJyPypF!yY19UP(m_4_6NNU3GNV$F@E8y1LJmt4^|Ii~+yz`K5 zbytz~sQGMYpqGrRKcJj?EzK(wV%l;7Ouu^~Gv=kzPLD<^;P#M6KmVKLKMAnJbw2Wp9Ht$k>w0*=L;s!hXyQxi)|^LbmUl2+B8zS)N7Jpxesn1CAs!Z- z#c9=fl6?GSnkd(f0n47E%1H$p)fP-c($?&le*nE%rA9YY8nFM7H5W_7vzj?Nyf-ab z?5)qFe?CLeXB4T0w$iYYD$6}Kf&P58pxaN6;h2;0sNgA1S8Y6KPi_^~^*Ye>xU(GA zIRG72kHV~@5)^4GONEc@=<2DRbf|F_)tX(xy$L%gbB{Uo)vcin`(P?=`-4S~t*LCg z3rQr@P-?y#6&{JDI8zH!B2U7nm9#hDI5o9wrSFc%Q7J{A=4sbal|wyw8l9v$EQ~f@ z+DJklX45M!=IBxmAx$}N8b8a1)T{T=gH|7sjIyN0sB*fuq8K~LmZr`Bh+*Gm(BP)| zRF-8=4~8}9iRpT3Jam(^y%teix(s#dS&*5rHu1^1k#ErlY~W8JOV?K@pBP1VExzJG z?@{#QlLUFr+CtjPhVe(vTdWp~rr{w)l2enQ6z@7rzAQugeu+`F{u!JeS_@`jnfPX= zI8%OEPA6<-*qPtO?92Li_J@BA&wBp_Iv@X@M(@p}sWBQX>E;-wR=APAY|N%ZlUqnU zRFsLS{UDVeV>Q?t%u%hU(Wo0D6*|1*6d<) zGrhKTXRpSzQLDmiw(p)C`=l?%3{qW~#EUh|jZI|P3Azk;Mr?&d15FxU&#L%NqF9Fx z^T;!0EBw-_L`{yJvtGygB9}9f7y+hPX3I7;kC4WX7Am|a$mFV3S+(P6_Tcm;rl+LH zzMnK<6GdmT>-=3*^ihCi225r)>xU^iQ;)rSv6db9>B!g@1-AC`02w+1jRVjWA;*#^h;?BFXe5+D1Cwd_l0Sxk@VIchO)<5Mi_ zi34kzF`q5Fl+0#khce@%jg%LAo(-O?V7>?Eu+?1O>&Od5HsRtY_WkI77Fzy|4VC_4 zD$_gIU$JDCu+*GA53^z$R-Ivm;iK3H%VCd{ey~+|mR-*u&3l6X+gGcRZJ5Z<+qkHX zjVteB0hip_^{!6F_p6ji*v@4>X6bBEi3(41s~|5XaU#$6lRi_sa*?G;EM|gtL)hz_ zyKEPq9&dCa2h{WoXRn+6s90w^GoG)*mQLr!+3dew-kn2xS!1jpxiu%T5%Fwhv`v@U zoZLXsU&Gl%dp-8xi85WfbAoA{-uBOimkp;dU+E=m-IoB?Xer1RX#2BmuUE4UffYPe zOMg}{sh_Rzd_(FVTFJggfz8P%rICAG)bQ#kJFoSX&czi{?N5Eye*D3|80CJ(H;U?f zgD)N{u?nk?BnTY;Gw(QEt=~&M=eE$Jw`XYXr6IZ>zL|o;Z5aKPV|xuY5x@3KW?*i} zB3yFtV(C+g=LORe+W{1d8lY8D-{^ANDUy3%O#4TrvaRwNRHDjHu|>aW@3t@W`shR2 zU^;Jh{*Cx*y28X1$}h0SzWqvxw=R;WXOh zliBv77qmOPm{l59Q{&&cY|eHYc3OHHJJ3Iu3{TBwZ&KWt?S=^~`nEaCxMKG2-Z(5Z zhdpeZ%x*mjVBYpgEX&-Pg&((KZ`ajQ>|!B?Gp91?VSSptONvGBJjH&iTC(|H|C^ip zx$i4v;Kuk$MzI73J~}g`LDO1)lKe% zY*^oN3znIr&+@t}DBQfBR<656^+O&sIJ^DdxR?w~W;z-9|Ncie&xmzZUZzPJkN&-P z^lqlq9j){zcLj5|%VU1Il`OIOJ}LLyWaTSTY4zb$HdXx!t7$v-@A#MNyI6#QAn!=B z98Y~jfEU*8#EN>ksd>SkRW$drCjG1Q<7o$TU$BJ5c5Gnz*Q&`sq@B#_&DhWT-J0gp$VHb@P!o~ ziKp}SznPL}EK~S1k@w!qfbEgg;az=JN6YiWnB&!}>}X{x3te)V8S(cpf6=e(&+#jy znOVu6D&?`^+giN8v+~&MT^Xz|u#=5)wPhQ*eVfkb*fMEtD>fs0$-m$Cc^r?iTMy`( z!!34yLgPRCty-MQ%7v~|Mcy)YGTi*%aTRBS=**1&Ui;rwWcE`mnfs5I?BdMJY){Tv zmX&&g2`(1=ckD%%qpZd#i2eS4gK6y_$5iJ_u)?R3>}T(PdNWH?C3#;rx-vWML7JKu z&#rpkWLo-)ya&_z*rt;rY!INB(=3zADC(DGgx>n?-n*nWNZ`C2yE% zo-~V06=T9XL)b3OUF@g$KK5{>7*FHp0Vcof0&`V*$Zqes%I2RE`ge|`rY7d+JH%=V zzq2T%ALKe=2QRoOiCM%ovoMbiR_t<{Z8xv}XM^)Cwro*d7ZWxb&2|s{rf`UIjnYGe#^b;D zT6>=p|Lcxx=Kg;7{-#~O^R4x*@4ddg&bQY&XK&eJVlN2 z+NgMX2)a1C42?gPjUJyam3*9{gpxK`qMT7;lrD-O^w(}pfbyG8D7@?*=`UixyEt{F z1={+RAL;AZT$R{1EkG-iozUcia;RG6SEP2oPIB|76f$n|$q&eyiABFOdZAH{>^gJz zrsUAkCX||9D`|3mA<@rrBy=BbsYGis>xj=|@3o*V7uTbi`ROQpUKi;3`%_8Z8e6E% z{t3w`i3$B-?JT6JS%!|*7fY&*<{+hKswlXs1T73JmVjv%Iu*1Xy=ci~pJAJfHk{T+ zh5jdz?n_mqyQKt;*Lf^iaH5dNVH(-{TbBi(Q@_GxtM>7WP0H zn$5%}l@>9w7EMJiezzrgk##6g>9!4VVebOZG0)hCcNWiPsDnTc+$&?fZzW{gE`i<{A& zhHTWfW)#73*YaYg>FCbgF=$TpG4z{Q12lWSM4Lk+$#};7J?MU@Ia;Z)4>^P+BHMy~ z1n+o$6PQM^zxkIpfxv!7Xx!)&II_6{ZGPH}hLns3#ok}QAe*7cz(gJvwb_Ef)D5Wk zZa>s#c{+-lWrWHShk}Kp5fY~vz-04Q1Uagp?pT0wHmf3s(VwH!!~3AhOOKF<5y33y zBdBC(Inf)tzXxp5SA_D^2_zmGMT4N$t_NvXW*$QN+ce>E&@fnP^b&pf>PN)1nV`Pf z^@KOoq+XIcgYFN7xV|Ry=Nm-7tGH(1XM|>M%g1n_^#(G~zlg?FxT8SbP&Csf3Qq5e zL6W=}^g~-1%1Zy9=o=Cog}V24gOL;UVAPz!;9;?t$oSbe49(p!7u}X`L?7#gp-rYm z$f_I@p6Hru=w4zpX}?nPLDrxD16CO>K~NS~V@yNb`ypzYg0 z`_R{DsHGL`zheUnMg$TW_KXKQx_h;hHn`jd-H$9lYmP-hqR0tdiQI+;Z!|y?o9CmY z`=ij%nqp+~{WB^3R@JUVPMp>f#8}W;tb2kt8d$UvIj8uc+B|Qh`C=2)*XzK=lvOZ< zy%*?dg)kJ-Y68vd=hd!XFGS((>rwoE9U^B$`d+E*;wc&gXBn{pq31L<3 zk7J)<>v1EJv`fFsMN|FffZMdWq;IIc6Al>uic-AU9N>?Q;cZB9%5uM9N7cVJ1PJX{N+_tkPUeS*48*bL!Ao)CL34S$Yq#RbBv9eQBX)J$;3tLXjm2V7Ky zgo=%@A>cW>(XI!3OP`>GQct+@NdZd9lLyBa?<;|r&lPY@nHdf?-9l($ z=Ny4>^X-sY*-y%|CY9#NzJMKIcC@<`Up?YJY0G^r)1@+U7c|CeK=2SlsJ8cEpNVP; zHfQPmAme;if#Kxc(DJJedvlpyuq{0reA(YOI%h;fph_<=W|YBh+2V zhCv|!^DmKD&P&_`zt|hXzO*gS{>4Zlw^W`!M=W$t68v160)4d;V0Y|zF!;V4GS79z z&F9LY-!psmr~SjB_sL0c#`kl=cjKumfm~c~+nkrSxjwqG7{->;cs+IQ3C0iFkh^bp zaMn8nR~rhUuuUwbk36mqS+8f1{?>U0`CVIt;8`2iM9sLIry-{8*=2sg7^$YS7SrYf0aCy%!8th=4_| z)g-3bwNz(X&?xD1Y?3P#!S=B-JiV$Yl~Ft4iZq|O7XC;hma^t&E*4Gl#1R_7Z8 z_D{a^hAlb6=y>$ZYIMkWBOEw-9i6aw{07YyXZttom@qL9HSelNO7Zgu-r<`IXho3% zcuc=e_|`ja1!JAQWUS47JdAk!g5Xa)q3~McA*sBj3v-b3lfqv0)anFA56>dISq-S&%o{d3Qr~|%>S{rk@a1aU*!c4LLa{2D@Vf}4^O8_ZR)w~fV6!NcBhZ(9 zj$TrB44m11j?lUv-a+t3RL$_ApVUa3lRF_f27al#3~QgcNpbDE!K@_gD#pT)+>qBMj zJQXTWpzR2i2ah8>X*(jo(QFZEA6oASN_#^=qq+nd%p?S7|MNol$iW|XGrkLQ4ND+% z;#F|Mp`hs1M#fhJgc8WfE}iWnZ4dGM4PFGBl785L5u` z1ZV48u-{h`-?yc_-MnlG-CFgFF!zKzeDB=^Dq9}Fqn#^Ye9}TPwr6%5*gDhm_x>~w zf)jk3_>AI1*yo&^)=>Sz*t_65^VJZLZ4R?1t$st6K;QHtoZx$xhC@ofg|PPcGFbWZ z?@)Yx8NnOOc=85c{n8brKl+@Bbgl(i9iejN1}Wde*b87`9RdN5A41V9e}Zpn9S?ol z5ouf5hQVy@AW$76Ph=+F^Mm-O&!ISs zLS#l3v`Y0a_Z&&&4si?vk)kKTcloj%3MEu7XLodV82Ee9v2%{H_mcoQTARHzq;V2_ zTwyc;vXB?-SQHMGrWI0M+_>EgYist3LiGBrL*T7?L0dxvL?`@PMc|L}Bl5tun;>R7QzUL?$aZWlTt<_V6r(}uD!g(f_HnkuCb=mPkDtUARA>rJfAn{>H+ zzov)4$qW1+2U;R6;z6?t^~;s_M@?iyT4Ir^s5={F|9M`%zJrzq`g%|TeX*Eua@>@Y z&V&#h(&Hybh0v%{I-Wo*(xdWOIou&fUS&|89p^^0*|$(C#!@swRW#zYJS9|QvD~OY9dS06pNIIKkmFMf8+;AE8Y)PR)P?(E6UVvJ;891nV{;u zAkAN~G=D>0y%$?2(LaqqGpSwJryX1FjN^_HCU{(oQFVSXfK2tn%wWNRXIp%<9)!DCF^B9gQ#wd?j>=;m1 zIpHibt;;g@KbM*BS$klWCBqENyPnn@lg%{t{yE3(;Th)mvh&5&V@@;6Ij}R689jg_ zNM~NHK69`C_>&AF-*tjnJ2JJs%j09r#OM@-z==m0gG*M1m#hvmN$W-oO>f-K3}NpW z5F4M&WH#!58Dx{lgpAd{migcZCi>tj@wa2+nBCp(46sVr%D580)-j?mPX00;+G9$; z3Y!qQ?6b+(!-_YB(_t0rrNkO15>+B;qvJm;xty^&^xlQWddht4h|;vGuY{gW?kRX zTpVPhGp|13ERK!Wy?NX}52q79&tYP&VLpDe&17oVNBLNbrLHP0z=KIV3h|^(19M$` zi}1qRgIG*4j^M(jUxJfK+)8l%HH$;vo-4(_a>KD@SQH9-)qKja5fNO0C0tl_E3qRn zpb`gE*s>DOV_Py0RruN{Zo;at7dO4e7x1&FPf^nP3wRxwuM1eW#yoS8b2Z+#{unpY zcsMyO3Xmz>>hkIHf@ zf!KMLx9==tLF~%q?a5&jh#lFy{xiJZQ@p+mUQap`OysBWa*s3Jh`+~pIjPJvV*f#= zj@X&P1Q7ZpMvKtx;m6~d5Q5*vxDxtE#*)AljBwiXeN15__NDZg%8$pqJj~0-HB=uz zeh||*r}A{ia6XxU<2-#Drg2NhG@cnamaHeI@FZf#8O+Cnmy?6(Jm&K9&f*6&o|xuC z9_HhXgNU8^*pAKzucr|6^Tq2c!Z~z4dA%jrkIpyd=N}KG`GDnUeqcUda5~K&%;yuP z^H_zsY+&;Z^ZAFrrTK{Y{KR~|;sTn#LO%2BsSx!}*cpNU&IqW9Oh_Rn7AcAv*lKFo zVy~r~rMhgL$W@pwF3Uaq{JoYec5!(x2ejB)PpCJ2mU%Dr^7Z!e@T07J8Td{)|EyN^ zUGfd9pQ{`H^`Xmp!O8de*JRSsj&^cLT8+x;=QG)tuigs&1qpaH(KN!##i=_R8Fw!q z)+&+co%JtYmkay?Hy?6E^UgRB z1tL*LztxFKC1MY~ijiFxXlYOjGI_o~+Q+z}DR{**bb`NC1Z=FW$cgE|do8RJnf!i) z5RBz+-pf4LGgioN8)4uBp>Q4h4}M?6m6szs4>dYm_w#EgOY=wPi4rG=Unn)$rcBr02EH*wi5_l58=&0keV5c&K%q0MUUcwT)-9U+|Wvi0V# zts~yvCzjd!@6{0<{qDy4&Fx2WF@L*`aNr6;_ITeq!bFeK^C2a?oiBf%2)wI~5b=2= zMB+bHM}+jI`RB?jlAVWtzK+mgWy<9J`8uLIEANl$h&j9;0{rkg!a<%!=1PYp_09E; zyAJt~&m(%UHVSowr#{v4SJe?(J*hlC44vRTBhXn#SdvHy+0!BE|KoLpE~{DgzO2Ny z|NZ?4;e3~^H-Bv%@%HD)GJ8L~j_AqyEhc}mIzrh0P&S}5VP-@j-H#Bx^LsaB@;YDs bwh?%{ju7fe8$N%8zzF9z-BlE@9}fQyxNP!u literal 73376 zcmeFY2UJzfvM##FQHhd71Op0YNusQ;rizM)84wdeK@>A$LJR~WK>-mF5CtU&0wzEt zE5Sq(kQ@ZXKu{FKe5VL|pYz|d-yZkeH{Q78-G8nzR?pepv%0%xb#?Vu)hCS%=MEB8 z66O59goQc$9Lc`hfxln<*CiF6zN~@gfpY8qn?I!-&WZl#Xx=|JJRAYe?=pq{e93n=^;Q)*PTekoMR52Y~@P|H%LQ=Kl%~7|ofvK`zZZ8I(;wo_v`l*Hy_`v$<_r1ZVO;rzS# zYoYX~;(yjI{V)HW{QsT<|7!l8=$E4b2JErfvfGZGuzPGAH`#1k|NFM@>R%@Q+w<3m z{|}vw{q6m8zWwjd-`}MFN$GAaa{;}+F2K3OG-aq3wqw*)^;RyYg z^Yh5?Kjj<$B>(b%-t5IDeZ1|Tm;-zs_$*U(C+ba{%;5~E**-nPQZr=r>`X^ToBjQi z2bS}JhWgq4N6)dD19X0m?f2C`RF3)Y@4Rk{-9URne~LL9wrsa?(wfSS?$0&Q{?dJa zo(JClM}B`t2KqNZZ=l^j2G0N7u2?_)fp+@Z)zxOd=bvlfy}dSj?6%l#vv=xe=%9a7 zKDfX9ulYm;V>} z{n?z90mcku{GI;IfxkKMHwXUaz~3DBn*)Dy;BOB6&4Ir;@HYqk=D`0E99X_+u^|tK z?;oiD`TmXI01oh1ykTJ9s@lK7AE@_Nd_|#ubd5v*)EKBIto-M0Y`;I@{|F}hzt9OD z7BT1>S^q$JIAi;$^6>u2SlHjjs{Zt^&jWsuMCCsf8vE(=S7%XN;XeAjynhG^_j^?M zcsQzm>KJVqsQWt==dhp+d+~5Y**As%Cp_)DWa+PGVn|e)H`FD}B4S zZF2gZA;$t}zh%tIs^3RrWz|>j-~CClGW|!a8P3+-TbwrS*s{sa@y}cR;{Gp5NU734 z-qjZ4X#ZkC(t-Ilfam>r`8|nqtov^N_-hn6wwt#0LEry!-m(6r-`4=0|CIK3?03?a z-~ar3j{Xy;7G&=gIJ-95^tqV+<2ZlQ<@p!%|EjnCNl%!g&W_e*%O?A6cD5V^w&CAB z{7v^yPlY*iXPPXZ!{(VTGy9$N6%6oWApNVKfa$Bq;UxCs-TjXo7L46$HF@%6tG@uV z{rOX@mi_^R`=6&;^#jKP?F_6>1N8pd?tnfT+mE9U)En?m4A3zeDEM!t1A1TK=N|$a z`|13XumAi0i2+Rfzv?3YIbQmmFEB2JE_nuIb!D|J-iyDPVX8_VPbdGAb#cs{N{7*V0}8IJO;Vjtl)Li+rU({ifeFI zhC7?<&CR&3gew82sCJ%+kX3HD_GS+5hkW8zm4+f^!UZfCa|rytcktQF4zAM!u=$E7 zf+V=;p3O&@cS2#}k%+`h9$K{JIQ))Az{-6mT#L;yK~ zP6$SdT}Uhsz`^)fD5ai(-De3JuM`bE`Adi$=K^VoQOFNB!-lrOSg`sP0(Cqflk9{w zmBVl@r<{AP@itfeU>GKEtLHvE9Rr{E1rWCC;&zFs!)4nvC@2lW)>1pX(=$e)RvLGr zgC_(}h~eczQ}C|efn?q+ZrAA}5UzNR%7+}ZE`!==?c@As&jW~JYDE7~P zfa!+a*j{lH1?|tFHRU>D)OhKoswZUZSbi_zBj;{yY**vZ{MO6ZK7Jz@COEwPaP>Q;RqK3~fzg_}QkMl6{{)HVo3?Vv32rgGoz^3;D z^zKYYsjw%q*VI9w>lpToibQz(MsTNYz?GTy7#3}gxyOTWNXs7l4}&pky&Jq_KXK!4 zR&W*WdT^7L?SiMSGAubVfO!Vo*l#B{xebe+ZH0Ev7j7-jcka-ID^LyUR!DXI)a z$aJg(OhkBr2Z%DS2QB4aWdWKzXh#HCowLp1b%7PaCvna)@Dy4BRv5+l2HJ; zNoz21dJr14`6wF20lqFfytgk?)mT)c=PQQWQS_OZ{|9b zH?72|=&kTv_XJ{2`@uVZCnDpI!}q8Um|M4@+WiD};zuwkE(}JM4k(j~hsHGre4Cwt zyqpBA7~O;#=_*8|WI`>z2BRB`aA4VYD8+ro^wGR@^HK`ZSovrx-~h2krNY84!h=rdBIfj2WnSWpxhw?N`l3(NUw%y$Eg{N~p*X3v{cM3ZPkH}kcPpq-U9Nkyk+oi48;?h8F+Kkrj3YL{dxbBwwxuK5z=gZ-{#Gc6Y9R2v7+xn?!Q$Kn z?&ewD7$Q2Eww)W(r<)7>w}A<$G3d4MF*rQGf-84bnbM@JkeqsjtDUtMS$qd^Yts^v zvz!WJU2P=azK5qeg#Am7z(vFxqZUWNSSt$~Iq%@QsScmtML^xd4XQLmvlEgK#s9#Cn>0B7+zM0r<2d~Xg+qH z$xy~UP5L@Uh+4`-X_&MOEwvg)%X}ngodO@NF_fgH?SrWM;t!Oc5GKJ9FA=eXwFkfP z(8H0p;nLHLUs|#><4Y03Lmnc)NPxDzdI!zar*PA~go$@cQE)IA_t&~(c26=4EFz%M zxe5|;iLl-jfTq+H__ULiQyn+tcC$KrSrqs~oblb$6QwJBFv{yK_+N%2L@*fFHAmy~ z`pr1(6vN811(s(8qCWltUL9M5z?oAro~lYy!Ju0iilfFr-Es*!k5pjcG(NhcJA&G5 z+_1=@jjR437`|cW;WuR{x)O<7e>D|aMVC;zaW(G0FUBq@J2Y)iLH$Zs-2HY2PIJ%0 zxc3fTb)Le;uTfa3UkF>dhbWCmfX&bAnC$Z&)9RjL;k>u-b1TBQhSzu$uSfz}qO?v_ zoEDhp;dWdH{C^2jixeLX9^QgOt2yKnC{K6Iq{z%wlLnOtk=@aalEH4*P&GV`b9#_5nO&BxvwG5xRXw znpPVs(}Zc0$;xF4{pwVvc_Pzj%o;9f^YN4HFFh(XHy|}{MY7+(GkkK{HyF06x#*lUz^*1;&K z6b(Nr!Ov3!)slGV%BA9kRwsmZ2SG@{7p~r3uzhtKDm*Fh85fOk2|x5M4#V>yr*U@0 zR21-BW7j7oXrz7P+H$kGDc3gO>~&zw;XKT$SHwrVW|Vd1raM%aX8h)Hk8=d12Up{2 zkN|C0am8*k9_-`JB=3h(WTha3;tEmXTz-p_sy?`F_XWS4zrb?-88}Q2!}`YwFkZV7 z_tu<6ZEYAF*oN|E#UkMHV{DK}MSFe|)OIIeZDcM~zu&=j!A>Ne;wRBB^$mL#r$Xm&c#NG3j75Yz>3L7ZX_CU5N=Y=W*=32Lcnq zFpmX49-YP(izsY%+6uLcC0M8>ehoYRR5->3VEoWzD2u0{`Cc6Izm?#~jAz(+u^V?! z3lL2dqo?B}XrkG7NX}BG0w*Q9rKwKeITDm8uS_#ftCP8tB6SGq(S;}lvfRedptrgt z$c&-Yn^dX5cnsMlkE06xX(TL2WcgE+PU#EL3O`nt^a#>M4<*Wv=a6?~9%MXf(K{?3 z_iXABSAPY<$>A`5b{8efFW{r?MWmL6V7+1tRKJ8nb43=?Q~a>xryH(_c_Aah6UPO^d8#A4DV|myo9FqJ52gLw(UCu=GhcvX^n!=@F-WYoGHfBk^fceD- z*zbK3gD46)E{@>cQii9^6_CH*jParcP3TxKYJk}}ynOe&5CpM*_*0@jZY#F<%1@Urtp(!;ALeGm-c>8GB{_wpfBr+vP@Szzn>4Ykw@^6@q&?gA%r>?BE)Kl!OZBlh^$Wt6`&7hk|f|amYPN>(cD=Yv`j{aaz}8W=KJYwWHgT8N6)ZB4EcRJaE%6unZ_f zS&hwCr#Cd?k2J5z9Js}Of&ZW)ptT@gHkr%zWG8=f_or04>P%(u9@(jWGYvvAws z9wrN9Vij`_n+*?Pwr>?;#R9N(9x`nn&Uz= zH^_uE8uaMugvB)J;&fWBXiSw`7gOeH5dZUK)X-=|D#MnOLzFI=+|r}P1;fbCZz?HX zoJ6CgRH%F9FRZ=z3G{@A9(}5UrREE4*!>7AEebF#B?~SNH_@Yh4uA3gE0Y6;p3S^FZ7@MG@{ zcywlCne0#QIbLHJzB-C@gBEb+d4iiE+qX~oy%zc%n9!#?&OGq!OP5>pay!Pn=N@QC zf$13@Zeo{TnxyDye3@5;1ld>^TrtJBZJk(`)eSend=#uHM5!tdxo7dx;JPX_PZOis zIv$#%%}WLM-{80}hxW3z*}5YiF>l33c)b#(8es`)f2cxl_Nfz(*i`ztYCPp}xg`B^ z0ZrJ=&`X_#bZLhQfj8GDR# zu`~H8NYQIE5ch4zyt?J~q9LtA(&|REW zbwrD$A0!_nLh3vpECc3|arL+o>x#yfL=$UPGP6JZYzwLB!oXG1vi6tb>AgR2&Y?$?w; zYI!4ObQi+yVLpbY*Wk7AeT*H}3DrX_7`wI`fj3?v+ghA<-jJmC*GG~0#9my&*ZmQTMBx#u3?dX1=gvBqPhDf#_U^`|+J%Oz7bo^2d#LHG`dN8pIKBDmmY*3^jbR5m!j^fjNUK*7Wh}No1 zq`zb3{75zSZmdLB(iePoY(d489!yesjrL@IBG=Eb)PIHX^F>JOfee+O6(?0C1!|HS zM+R=XRF`2&d%_mc#w>H%6Jtedo*pE*&xh%|-%%=yJ5IInr)hD^$a@0&cdcN6W&K-VQXjv*@6eK zXwQZgFT3YS8%k&6o+7>Q1h$SP*tb8$u7wjI+IpOOEHx1gQziT4Sm%W;EIzD6!jNFv zW5gw+j$P=S;e_*=u2`@tFg;}TJ_yhA<(kg92BT$-_|SX?SF$p2SLZ3}in_pG91Gr8 zjWFGP9mlujgIgH`2kDm(X7}C{SB;Ny;`Du~2yJWnh>{#Z%6P*|TupvjJ);+r-v^T~ ztDB#FRiPWo6KF-ZK4l0mC8x)W$@1YAlC3;I9mkH*xD_6hBXyGUll*Dpct3JF=ugUP zPEjkzn_P~$lkzkV`tZPtc4};=q`|XEK1GMbW4R>es!lCy}(T>&0% zxPr4kJg_Ix6ILtTF`~!@Tq!>sats1@jx**iQpd#?M_HVCWV$75&urA6ZD6wf8bV(k zKy%h>n08rVR{T+XUKRt-tq%CIR>Q;C<;x(5GfRc_ss{OoG}IWPTWS@ULfs- z5Y6WJf@k?JRE_7QUok1jX8nRnA$MSLBMS?C8&J^8M^4%zq;XxG&Oa8SAqxd5Z@fIk zy&J^Jn;gvyW!DCNIr=txI8m@3iT|2LE3TW-!n0dx^^}8D(CkUJi~Z^Pn_%iX8%!1* z(e&tU6h-Dl(4(~xv} zKVQKc!vd^nszBkC5IChC!(N_3xQemzq?-f&aDQalM^mvFhy?~oF56|-g#vz zDP4y2BmoL+8H75+add7@C6+5ppu|tMT-nX+_nXzlwU)bu1i7~`G(Q6EXNPc0Aq3JB zdeB=G1F3>YJlXq%#l2){nWz&Ee40oJL+@kaF;)k&SkjxPEY5aXh$cLcpxAUF+ABJm zF0Gd!v9CE~(#t$a%APu@RSc>Ma8%AFebm><5G&;V(oOEMXQ)H+MsjIlt&>&wr zHTnuMGpGXAcHof&pp_b}+QhOauhnIy>)7q2NRCq%2=LxS9**N3i%woDf(egDJlXrRJIA1KXj=jdjqC~tY{E8zX zbttvsC&m3jB&Q=mLvMb;)rCXIuW}eEUmQz6cMYRAE7fU4)d;FHokkTA3nrgp>HYtB(1|o%k)J_p+<-TZ#Ti* zza6(-c`5u`Axg{>5n5S@p-YP)I3@!3tg>+Acqj{4L}5*QG>!&eK>CI|;7`7S&yfkZ zoBj?P2OmbTnl<$1-NNyPv9z0=>wBEt5xn0To43uT1FSFhf&V@#;Il)-APy}ls5j`0 zNQYCQJl@CLM!b|7&2nhQsCUw2F24$b>Yq{bx(R;I^D(7CgH|l(p|!bpaP3zq-pm_B zn?2Mhx0q@WaBS3dPXw!)ALr9Gs-w^>7ni8W-Lk`R!r;e#Ke2hN5=ggtYG7HJJ z-je3%+R{BW7pj`4lYfmt7o24RYW~)p3_EUJAaUny)g4lk&oeX4T_PT$W<=Woh#fK^oN|NC`K7V6K=ft%&W$k@|;ty#Emv$fja@$9q(1 zl|ZUTnj&s+$UrL=u5Y6;*fRnK?IWQ7ayYFMIR<5O0lN3*6$IDq1J8!ni0sy- zgNd~FgD&-MUqmAxETTr4b+mN-LE0vLinKKSsiEgG4X(|mr{2}%q1Q%Rg$0&P;3KK2*HTn=Hq|#plCkA!;*58pwcU;+`p%qcX3e8;M_n3y zYchp7vulEdGKtmkmWIB%IJp;!p1%@likh1R@a`MX| z;opQGif16o6o9)X9mBTy!*r+>Zu5F0Z|FD3+xsDGjww_dD!GxT>bQc}#*$y_7-+WV zVp54G>Ql}8_9L@c-v8dGNG~2l*9E6hc4h?JbwW`$w}@NHt{sp+i1qR+$nlv^GP3Tl z@VkR4EFPbv9SGH$TUc<8LkG7B)8VP(NwQj;PRX@lxrPd>GXDrDqn*oQ9&yYUr6V;a#I_!2Ku zBuQgkA#VTtfCXW9amcI;>+E{)Y4bIlw5mmvRvK!v&mr{MI=IAop*v3;374NCV(xXk z7xcwc$x`kan@;X_A=ZxRxr#SOzo6}PJCb$2ps8#e8dq+C5%U(!6FR_LO@hYEMRdwT z1ln5`vU}`A?$O=n@ZEnFi%s-E@nksWWrl(4(TD)OcqpIE!Ajd-I4#K9#u9_6rAU&N zMvkH9b{e#5t2)(tOeFQ`Gl_2%Lu*%9(CC2mG$nKoeav;E%m{DVBos<<>*8qX=KCaI zP(vK+Uo`i)Jd?jbhY1~O!W12_XG%Jp7_-ZcjPkQ}%vb*<%t~>6#zsw%`TUZXu}iC> z`%xLRz2z!RatR>qW$sj%v4#BiFQG-XhP1Jb=#=*u;-)H-biE2ek)ICOe}cB|AZl4I zP9sn8(fp7mw23!D?RzRrURNUKLodRPSFw0jd2h4E! z$S?3|K0;c~_cXf@4jn&}f%aD+xG>HJ0qZKc1sCn$EnC+o%Z8dGX-dbZ^my5D6sXms zXlW=0FRI3{Gwj~Z&=v1~=HScc3fQF8Kv%FG>t|J?LOK`Wi_5U;n;6aVdWmBGpD@gO zg_qkzsB{u9ZMeoyy_K?*<^BUEhq!cMrY5@wHlS9EnWXvAlw|L&rfd6mP*9O4jr#0M zueu^>`;=tLtuLY0?cYdurZltLON)8tzM6R@wVzq(c#0XK=+BH7@n>{0eVC3ru1uua zYG(DjY0Q-(IVOI5FWDy+kj?Z9y#gBKdQN~UmI{%9@Jkd_6=P-jdyG9*01b-->`RQtX>l(&1O;HY=T%hi ztwASq0?o@!a8k$v&C9%DX`(^-?|6~t(u-3cJ779F1D0mjVJR2_jklMe@xrB#&tDmF zsuW|t>01l%ZhnF4G7)-ZEkso*?wFA1i@ee2U_SXGets{*oBJ_H%y^5PZRPl+#zW_x zO3}JYgJ@#>bW#$Pq2~G#G<)?Va`>uDTI=;mP|<+OIg_Y(_B=Aaxq?pEET&~FHW8-j zKxq%%Nq4v>$(Ed>ExGZuBfo&0d)`s2kO*^O%1B01elc@V&y{(s;LF?yJI|Q4pJ%d^ z&oiT*onztz{Fsn%cSiXAN=9k<1V+bFlv(BTf{qnulliVIl+fcxrDDhE+m_8_`P7;k zbLUdo9&O4FoJc*kYGmdnNQM{W==@z#a$V%L*>^1`$_u?$)!sp!~Ii77j( z!5jPp#@o7}vmzKju9U-G_8#Q6*kUc~vz4%n!mxTVIG4I3kBzM{4=d#+tviil>sej@ zAFi+~ud(7%5B4wC!(C4oq^e6{)}mYR4obtAn8R3awi~~3f(7H3LCJOvEDoe&-PIsm z2+P2fi>(;HinT|0-{Z*BW?a0QiJEuSET*SK9_qs6P@zZjZ>muWi@{6pH6Ri(rmlq8Up zz7VTpL!oZ_7&2Q^vCRA#ihI7pOC%F7rX)k%RG6;aS&ogVT%;}RK4)=q(0y?nL(J zkz{ze3DaBhP+M1oyHjp}b_}7bX5!TIiI)^wMaWR~C+<)Bh`d#b^x13#@$T28!Xx7; z-&l*jCYn%%fF8ZOVnMxoH<2ojJ57G#M!)KVi7RxC^b}LbJfVeD9XQPANJZvUngMgt zWd~ER^fc3p3yh=FF(x-+1QWGxJ|iA=g6TXS$atChF~UAOnEmHxFj3Q`n73K&6k_;@ zLVre6_`zU$xat%sygESVlU7n|gE6h(pFuNg)am|YRnpZMLFZeQ>Fjk;YEbM(?oK`` z4CkjYAwTdYkwa@)JrZPAi(y6)IBAoH#d^Ugf0Kmtf<46eB&nsl7CjXXDAW}s2m8Bl?Fk06CrmcmPU-7Nz+P&`x)J$aZJNO4W??+K1OzxFZ1I135G|< znmO@Io0&3FoY`B~N{zQNDI@MG{n{2lo4y|+OLi|7{9_hXebOV{It_YOsX*&m-U<}yyF=ai2Ik&(him>d#LjAj z;%3&)G@3}M6E5IKy(D!Mbwf@Ac=t1V#;7>#8P$owLK^Oe-&dXr?iLBvUMBg?^C=()6|8@J z!X|u3-r2|Bk-h@|z@a_ezk*l%1a{kXW6#neh;PWkk{^PQa*4yB#ji2$C5L{h-32eZ z4_O@)3P*EUTFl1E>QpJw=Ex!-X0}J$Pdg)S9?Z3(2Y60!js`d zo?)EMpJFoSo?@1aI?6cRbYRZe%wu$qsxUuB@Gv*Ei%Fw2jVjVYXm-IF+EcoRPIWG! z8NX)HhNI&sOLzkP9HvT@-O_Z-NQQEUNs@khFBB*9QfJo-jIF7{E;crPT74TTMW5r- z)VnMucLlpob>q(S7L1sijZaI`aWk_HkHsFMLGLuy@4N&BvBwY>$v0Si{4^wUE`fPD z)!-#nVOG>l2s#~uwn8){zX;Nr1;gpP8M{|5P=uuxczzzG?+MU=B`Xc zTy(=lwHSOgz7Lf{KM-T`7S@X!Fu#GH)Dt@)C?P;0cjK}6O&9do7#6{x$YB`v}@)i;oq^8=bM z5JQeT&e8nghbi{UdPm_wc2*r6hv%Yg;~5w%PsAy$02Cj-hDoV4u$vu(>02(~cBVUGW?jX_ z_kK{eG{&c+c~}tcj_{v^7tbRwNvaJYdimfr=|zXn8fvZfqHRZ2aoYYqSM~UN?v+t3 z+|tFt5WbL%!ou0u?R^kc$!*-Y*qxZd;wH;(`axB#8t>Bb;o{i|=d4p$`gShKvN7cs zZt{|K@n?uF9ZnUShLXY|W%^vm#(Z9$Os}s`rG(KFDZO+l?bcsJb`~4R|M_ILYk`BMqzcLjJ@_KW|RV#5!|wrnR9n7Bc*Q292Z*7oLo1PDeur^ zyws(b@PzktVtEOTo6hbfPlu7St|#f}AED>=t4Wr{v@6@SDBDJd(k`i!`;novMn-`4 zC5zMa@e;)0l_TH7qLeu49e$Kl;@!|VNRPt7EUOKPoMB>w)M7C3w!+f*? zU3*ZB47aDK@M`9EX0@{M8mA4$9hIQzFA}(B_VH|daVRubFQEHFlJIU@1yr_;Cb!NP z2odL}TSb}ZU}L5nT!zqo&RaG%>J2{r6sAvB@9~w5Pu?Z^6)};b==4bwSpf0w5LvC4{}j*Cmpl1EeJmRD^Kffk5Zb=1 z#yi2&n7qdhEYN{5H-Y*@);5<5#T&^AIH`A|?7=%UyePq`;trfu_=dJO669K_PA7bZ z)9Yv!|ISgR34*hUcakBkjGV{vdp&7wSWin9>?MKu$7y@2KiL;0kdaq5rNqA=euM9n zdrORw9XW)F3>eBhJgdO$=aXXU?+G(m3EwC$=M61k^}5!+1e%fJd(cc5U1r{f)s1fh6T^MV4cGHI*Px-C%FbczTad0b*1pk z?nU*wr&x2o4o)8vp(N~shcS=f#-9J6YCqQZH4lZwOCe`;8ooj|uxQ^nlt+c5?VK?i zSGWb+SM5SfxDhs8d<;`Ddr0z#Q&W^P-c@)ZEMyEl;@=FfIbUFvB|~C{ij=ZXhpWkc zx3`L&xVY^RdL6=mZ;42q#>P0`Y(!wD9LbhTkWNSfc9d7M=cp>dw2q+m_59?~#Y=g& zYSGReMBA4PBL3(Rbo7!kx#W+dZSL%zY?nG2oz|tbQf8FizJ!LAZ>FVM9<(#fleT2W z(DXBR=~_-MEgo4x+ctF2k#=6D``$0|sQ*SzgZPCn3$(9MwMe zAv4S!ZtGdRKGPh69)>VtxVCO> zT;oMukogpexfZr)8@n3^<_JOmojh=myBEK`f=Cs241`n;V zufy2st(aLhm>3aBiePPy4Qel0%`<@QS|QPc)Hg-nuHtX)6)ryC}*)1 z^*q~4k~f^`xa)bEr5!;w)9+HknftUn={Y%wzn~Mb&GaC#nIz6t)4|l|lyoGEV#|`q zA^JL9VNtuIJCBpxw#{_lhdCSXWk}M}Gw6JP9C^%8rN{_HGT0?fgNF-}N~REfj{l0( zo=;fL`hv>hUc%y9Cbl@f#+5f#uY)(G#4HZ3-LI}2Bp&PF~>a& z-A95D{OkvM)jxvg%`W(;T>-D>E3OqAOTcM<53+3Zq#I|0$Rgr0%@&I#?YlRrWqTUQ_dccv7P<81 zMLIPV-X_boSQ=(^l}c02(pI-1D%!l0^01MH6`Rw^<#Va=_(X~+Vb{4Vagx#r{?7eKE(1tX8L@wzwfBY0yDibcwxbnrIT9xFlJ z^~dn6z75;$&oMRp0OnLgBXaUFJhHC@PeUm*wjF_F-g+3H%)=dROYV~#b%S~~-X(FO zJq)~$BB1mjl9SzWi^VtAXdc6o?d2#NJe8XKPm&zp2#m-+hH)3J<3eaPYT7P?|7tN- zymrKBib2S)5RAE=2Y=(cEH2;$N5w~2)^r5x@v^_k?Mrt_0225~r#M9}!m2iL*;eF}pR`b^sNY%Uv{xPg3f z_mP7!i!%*7O}B2kl9u%aI(#XV49ZzV-zbDEi~?!?l_0WyaE5l)93e$X54x+qjy%_{ zqmjKPq;FzMw%5l|>Jv7OLspsUo_~YyR3XZ=WzS~j=cBc#2p^pC;pLeE$@mf^y-Y*( z=3Lxy%*TOSO;EJBjGVGK*pBr8X>EZud)8FPE(6;qBtj;q6yfRf5NYI(m!1#sK_(B$ zek$;>T8Yy;*|=QZ8%X4y>^sv|t?`7LBv*}I14n2G{W%kBJwzWzW|rW72R_{&(9_zDIqHw`rnnO^ zWmWL2&P5d8EhtAv;hszW$obTd!=rvRgPlXqEDPDf@hl!gRnna5r9Og}5=9@w1^*B1q z+%mAVlcIC=!{8nzPTqz?QRi&WU00?LAG(egY|PZ4NH!jSOAns3c)>t859X|Wy>b3S z*xY)A3H)A|oB9mO^GXpIcoVNGSYL9gAQ_w0VBV}ks6Bs%_N@2l8TuYyw#$;ZoETMF zs*_&8B$E6@O3aLn=EAUZ4YE~aCqyAzinc^WC?guQR9f0oC_+R- zluc$KqwL@5)#vT~`+OhY$M^hm-)G+EKIhzLT-Wn@-rH6wvfBq0n1QA?%L$#x9$p;F zB6PLbfI15n!S}tHZx*uX*lof02XYpo{b%~j%|ut%_=KavMa=n zeM(=>bVe;^ujg5_T`tp^^_mGR1vJ@*`f=>ju_5f~GC6kTd2e=oZ!hMNEXi6HeZ>x5 zH|L&DaAxFnRR5iVkvUn|=yMUj=2qc1<23BG2rqa>qAH2UVNdttOS1#$ zWO4_E&Lv1=J_x$}%(C^JA&x%ihaUa!t$Sk7ZX{P{tguD=Is zW~E}q>TE33;Wo!P2XS~+G*&LXhwYDZaY(<9C~Mk?3opIK-8Bz6hV337`_gR7%ARbn znK)Z&tHjnF)Me@Ux=elmKd&7yWmO9ZyLp4M$CF31l?u~Y?-oaP&v^;^HqnvwzOjlq zJMChIkG8OMex}*GLbblPOuem`!P zzjPq0ecqq#ZBt~Q!rJj#?~gdCz7e(AEmS0T@LU0x%P-8vO8KK$l@NuEMM30#@*Sg7@*G zI49z}aD3_!^lP=n8zZEcGS{#FN4=7tWGGnKWzm@87%b5p&&nqi;>@QZnBICAlV=&> zj*F(~7@CHYR`g`k5|VLEk33A+SB(RQl;Xn8;>=oX3;uk-^_S1Dp}bow4z(6zXFs*z z>v44`Gv_(VzVFR$Nph^m%c1P9m@K=#>?fA2AHh^RbXlS91h!|vWVTLXF&mXUiR~UeTr44zq` zkK4}O6xxSc3aW1%(L~|B&?r@cCE2n#N7e_E74G1U)IrSingO<$%Clc958+6gfRe~* zb=cOU2Y#%H;+SPk9H!POR6YHRYRlH*DEKZs+qEAr@%3=w$xG>-d|2tlJ(~2_lo6z)*3LF1Hff0_) zTJVnB^3YLCa)cfuvuAR-hY1^JIFY?uZ^7~}&SjHl5ccqq4g3CfHdFpMpBaBz&zxKB z*!A6vY3JLpTO;N(=@BMuUxY48ZX3?Rx9hSfD-AXZWZ3=NqglR$G@HZwy)yX~My=_< zh@#%CHa-pGJ+tt4(__4IxDlH|xZU2`BJ`*&#j{t>;-A5%(KP%dPL|ZUV_U{%n+F}b^(!PUzkl;39j+2?Up$XI3XwAZsby-2FEjth}gGF8#%KS`v zFr_`inc^&QHl&v%I~d)Dvx{Hjskh>+aoKYmpz#wJEXSol>mle0e6HEX!i9sx$G%fh=8r6!Vl-XJhI# z*alxnIY?#XvM_#*fH7G8EkWf9IN|a#-ygIv!tn$*`)o`*aHO> zX1QrJ>oaN~s|Xy%R&t3|mf}YAjCz2jlT9#S&l&8mc>;I3%i{b$9(aG!Sxoj{i5Dua zU_r80Y2Ig-gARb)0=X3X7Cj{U3{$pWXEv*!8EYzOT#T)@rg7RoZON#PMw4S#F;)Zx|DHNHTZ3eoXFy7+dwZ4zEvtiBEOv zko1yatr;~~Nd~bYVbAeJYA!B{s>0OyMOb|MB;H6mf`fw2A>A5-X@Tp|!($cZAIre2 zmPc`Co+Y}BT7zlg&iG#LII4}BOY>Jo3nR?9ZL&f%in(NCZniS6O9&7ayZl7^yJ6Ut znqSHSr?CLeS75vnn9Taks5rG0y_;gF>Zt8#X&8te4aaeCqaph9J*9Y(E;~0}ibYL* zj%D1w(W+V%jSJ48wZJ)YDxz?cQwg@7io$!@!8l3wD%wTX4j~I)7@DRskj$v)lKI4E3jJ?TrM+t=fX zjk5Ste+llEDG{{9+feGj6ucsL9uLZX#lWgm{LOg*`fyGSBP~}{%Fn_D?#JSdl~~}NQOs+DF*}{| z2Fn+YXYZ`-Sk7KeR`SP!iID}&?|?NsFD1tuo47n8T9MnW^k)use7qOQF@q2l_Wq#^ z`=cYl^3M!ls-5C&bKxa)<=BVYlery5bqyZ!yNg;+n$gOj537uNj)$*Z0+Ci8#;r6~1(GL^pp=T=+c)D--;%=lnvf z4$?+R<@MYys!*6B7l+#98f zN#A zpgD7K!s4fRtj}tku;>?_YhH_M zZ!hyPI%Xwam)(PjV52F*@4%`-dIdL1H zCIOwKC*n-b>292%P>V6s2X|*@?6Qma**+o*VQQU#GrB=gEV)4NDE0^t*vU z7G-$ho*cX67mu&b6yc)_`DhTlAIFUkM%A2)_~XeyX3a4twR*fC2g{tJ!hQB$2iM&`AFs)lmrYh^9*N1Jf z3+1}A1l+kY2djE;`*c1o%RcpH1y>tUI$4gL<-7_VM~AREkJMO3#w9cksKH;EoO4E@ z32XDSaIi-U?&q?c1LBuBKSlytZ|=m+bMi5YW#N|>XYq@v6CN+};A3hlF0`#hZ*m#g zqaI95+!dXUO~DDJff&g-Dcr(LG5F35G%>Fdt%X~&rlOSkB_TcK3O+R)!(1zkaqgdJ zd{w^>-#BtyRC5rQgL`9peI}}V2cq@jv&ekTVO{tM?6ZpV*v7M0O=fZHB^Do+VGi|T>`e7zbe56ivhGj# zI{h0S;(L9j5{3(!A7Q(V0iLqIg<{#KF|elrmRhQzzRh;joOuchk3B-ygc-OiY%Q|O zs(9$E8JhHq!ZW5f6ZxY70(Dz-V-;D_93lijovuL zE*F2O*kh;|=TT5Qh(Ugr(9>BNb-rxIA%#mZcyi~Z+jRjuJa1xbwi=uMsUDw6e#O&V){<+*?LN3ILhO=xOs}E=O#{RF=E#WbvXAT=Mxxj#587pL7Ck{ znJw3$)fPR$Pw}qo;2vUQNVL<+K&Ux_+bz630 zf?*x*>U&JcPWp_K8&=>dC(gq#u@Wn8b>iI(r?HRUG5pqkUpQ>yf|axUP{p-3j`xei z*}gTH^n9prlFRrS*34lS_V#73oCmX^YZ2oWl`%kDlO11dh~Jb);tuT#SS&UapB_Gn ziGnG!icLVNchNYw+*dd`qzvD$$w$qe78vj%98Y~$!6W;Q;?m}6IC!`wj$^kmXj~N@ zy>&p?alQpF`&Oc-%nNk-{uHlHmS^)$^sk6P;)EWP5ixu|p|8QRRT2 z@H;CNy?&}Qy>BC!)ini{I%GfInG=Ol9ACK0?Hk&!AIombII)^<;;b-lGz)YY#sW?- zraa*y7R@TbTe2hB%V-If5zhB(#GE}iI+pcviRH4&M7(jGp*ecwR5rL6j@mRcjFzWQ*CkXR*;@aopZ0E-{ zLR04e3^jHW!eUc#>)i@$-n$xSUG0Y&vT;I#L}>|1v|(>E#&nL}K>d?bapunfs5L)d zP~@C5>UVmH=8&pMV)&@EOlW>qE*w(rhYK%<;pjuTg4bBiOZZU_lkesV^V|#s_n|BB z1-C)09BYC7_wGlF)O~oX?UHbCE!+bCAu{Ia?FFb%1 z5)(LvvX6mxS#;`kXhe0@q6KMKudu)Z%<#z7Ygldr@=`vlI5J3@b@rTP3J&+K<+H zKKSnP zeDgT`*mD-0d_M+vZvToq$Hd^TN1t%hQ9ahL{U-Kr6K4%p$>^5O?eBWT;i~V^xVY&o z7Eg6&s-v#pqSg_(p8Uq|@2uI&@9)sg?H1-9BW%$@Z+z(wY&yrIJv1|Ap{*OS$8RO} zAjc1fZP<*e`;t-L;RlwcS+Vk$x@>)UD{3v`XP1?K(M~xLpUsqI${vY={HmL{^|UP0 zn{b8iued(CUW2{e$MLQaZP>YibLQPVi*w)KzyV{bQ0c*Ey!+$65VYKs=~REjZz z=6a>d%dvQV(hcn4`w@Q)+=-u;^k(`WGB9(R982+kg99h-=DcP5(P&#OetdCGm^!Wj z`(8=Js0Wkr0W;vdXGOyG9)_ha7gPyja=p>-f}3cs5q7i|>-D~1&yPJzL+oNO)8Q;z z|3H$t>bw(lqwb=r)NTwOUXJ>pz~)tc#$)}z2z%^jvAWaWvE*_lR+L}Bv|%Q!*4r1A zUgo0ZgmRQvlZP)AehTJ&mDzHWL2OOWTvQrdU-E01A9iZkv%{?=IJ5K*O5I(=cHf-K zdfr!N`v#~8_qG>eStDVtVP{G<-YJV@_Qs9+n8k*=4yX{{Ew| zK*4}LySEl|#IKhevHXjRT)*OuWj9NnK6J&#w--?_?j>4k`Qo!RO(ofp(HtMZIhFj6 zqSSt4!6;P^<0W12Ip?6ID4oWob;=y*&vFlMLrJV9};*POOJ1S1agWQ|oW zbaas)27wW(U2vg)BvWz9njGv|>4$@y_u%?d)@=EWTf#kw3&M-oG|Y;%!A%wQxIs@J z#nT;FV&`AH^*R^j!ws23s1iFFwht}5xPHtr757=DqDl~9Iv1xfbJvGlZuSmcY=hAG zh##JH&Bng2kMK-q3i@-~*M;`4(KOQsh2z0E&xrFC@H3gzFUrEUR}C? zZwq(h`6DvS=;ox--dZiV^Zgc4Uegbc^pqLbt!r}G@`R@BAQI@%|10Z31?gzaTWh2#pU8~5a-XlT+&}um-9{cuv|J7 z8-k?R?%(aW&EqyYe|v?~_P-UzEv&^@F5kIiUn^8CO2F%T2z#Kzam{;2iPn`d(u*-` zZwAVbio%tzb4m`E*9eK>E|~SZ341J$#=y83REl!I&s%%4@;-^EJLeIe3OPupaO}S8 z*fn^D^XT+*Zx9^p@8H(b1vuEt0TWCXp*Yy#n(fjoExHMpX^#{=OKPnp%Uqa-i`^cf z;q^LHn0$(kJFy5Kr8r_i+6&=b0q0TUZj$c@+GX?Eb$`gQhFWxJ;NYE{e}g-BeI;CI zkcehy-lEz)8=+%QC!YANjExJDuqjKdv_kqLMt$Ra))xd(dZWo|Os3;IT5Z>2F&lrO zyIwT9$=#u8!=h1VfI3SsJcG#33TK2E+_5Dd2YgY$HqgN1N8&JCWhT>aPvP9wiFjrd zV=cYsu;D{GaJ8&6TlG$#T`oL=JD%#Z(frJ3IZXkt*!E|)M%R@z{7dbe= zKNBZS<94vuV=(ajc4jyr8ecnHqH-V9S>?LXOo^Y%s;19jofbb(`GzuXTgvU_wZ7si z8#m?*Kk-V$P&J$Oup3ZU6`_)XZq90S#uvfA=v#=Q{3d@@K z1%2c-FrCF=pY%vkSbd6kshVw_=zLPM@d{Pif@`i#^`^K^FwcaNQ1du zfQyG7el+?_{kL$Pnic12ZMcljiw*GlVl`BdxP=BE^qE?KJlhc{#Y)W9v1QelF^}sL z^2{XJ1Pe3Pm@%NVYn(XS)YBsEo~&^Dc)qS0U@qsMzQ00D6nEsNDXR7}Wk0!obd>i5 zmY6da{Ze)D_XZnLU2~)}QG;VeOE~ZAJlRR2FomYwI4&XwwSNI-#6F?3W&1Nz%SZHS z+n7=v7hSyW8B;3raw4YnD-fmsdy}z4vQOwqZnM)>AE{a1I6vVbMznUfhuah#bjxd@ zhV7{s!`HN^7c=mSt|59{?dF+x+G&gnPFZ5C#|4z$VT2DIbhzD$F^d>ujOUp#2HIqa z%8k2M!1r^;qI-XCOS588DUwQF#t0XdrLSH(`IIFyPaD7jK6bxHx$$!BoIf3%h0k=s zp(j*hx`1`Y2CV3^da2aXUToGPecUi+4Q~G>$xa?IM__6KA9E zq1m`)$u!iM@)XA?e4%@ss?p|yVQE)BlR*n{VZRZj=>g5y`_00CiS38&@%?j- z`Og{4hTI*^-b+i0bYn9d8t|#N1zv8eMY-^6xNN~RQ9jq*Y1}T&7N2uFffaM6^7H*= zcJIYNcJb*x!Ck&Td*BG7Hi(>h9V^W?vd`m+ag%`^4tE{KBy6p*ap!aFzj_wVaJrB4 z$8SdKjpl6g8;&PYx8^2ub1+M90g_{5ne(-gEYw(k#TsqaZWP4_t{7A5qs`?Y+{r#4RoZox zm^%%<=FZ^fJbO`iUA7S$QZ6TW<{iQYr8VePvl~lu#hA&S9XLiiP?TnVaggZQLErbH z!E!UUe9tlLx2_+1)1w$rIm_X@Wpn2EY$so%Qp@a z^=()B@M#^Qya9dO(Ou46bZ?=#9S7QbAsfFPOWi%u_>Beg=Uh+eYsFd9^9`uDa|>$J zAHpS+qW3TIv|^Zi zNfiF{S$b(~Gq;7vZ*}hN5!C1{@Gw6WXUT4{JTfZdI`7F(#t0 z^yCW6h_@ALrXZ{HK=x)_Cf?#qZk~x@Jq_51iN@XU(iQkW&duT) zzMOE3>A1z04wSlvIU1L6E$7$yPkemGy8o5uk8cCpoY;utog47<>Gx ztDVbuE;um%6Sx26|MBaJ=zh#cbGAkC^1twX6GBDhe*Vzik6q7uc%19WxJ=0?`Wjxm zA_#SZ%CX@_cU`KNTCk*e3+88EiEUApxOk2QTX4dHIoMb*mqEEWV8mH;JkD+VAC}^b zi0*IImGkm-m0J=%^WQsc{$avo+m144yQ#vhXWeDjKe&i}=5w74cP`-r`_OqEYCNO@%ZBpqVzv1UWu+plM4hxQ|l z*`z`fR^=7K_N|>R%>P@6`zB5Q_bsQyr=#)c6w$L5Nq1w>j7Ma%)bl|sa~QHK#fMqo zyx7uOGLfC=vxdoYUAO0r^Z5O3H44{tSc`utbLAZBYXUg_(2p=x&dvCBNjy3R+KSqA zU(Hof*~^Z0k6#6=`9iOggf*l`mv+^^=aBCHxiTv9Uq4NYD#nbp+1L@uxvl@l4Qx&n zrT>rr|9?&Q?OqSN!ji_6;k~il-+Gt7Mmqgp8D0Jb9Tq}pb_xc~J&#WU({M$(Av1{4 z5ArTwIl_PMSwQ!9d%WLxj=L(yhgR8W z!|g7*(*4I}T<<ZgKtqgh;e zp(x$NOWoJGN%jBAmv2wRp{F=Dfx9qn)0(tmj?gx~`yF&RUU>A*1dLvqg{HY@xtx85 z;26`r5A90-KthY1xqGtIxg!IMN=LDd${bO-r`$}K%dhTqi)F_%f1UrfvE%mccVEQ0 z2EMtCXZP3rH?FJ9F1O;o?7#l(^2eP2uRp4__J76Mj2I;HE9^P-Z(MfesfZXS3U@sv z|G&~d;Q#jd8a99pyDvUTw(@&vSK89-{mjX>L3D4f(kx2<{^i*2a&Jcn`d*Su{@`Gd z|J|zY`DasqZ?@oO~CzSmv?=G_|kIUBoUEk6d&87YBaL&_9Vr5^w@}xU%iDlTn7=BzJrNNd$3=9 zf1+=8cba{P-VB9yQJp;}cVD~mbh$aQ{2jO}Q|`pM&fR09%m4p!#<88aAn$3Z1nJgO z{hw+3jQb-h^Hlv8tnK{=H{Jh)9x%6)LzxMCSYq$4@D7|-(x4;3aqWk}| z%r3u#LEyi93oZu=a9)zl$@OD@N|!-L3iAkx%lsY^ErPE_vQ#0(5BGsSmkL_H5?QB7lGLF|!(aOy$`y>ZZm{+QR7 zZn&99J7yoFvX@QiwtQQvJtKrBtT{`ams?S#pHu0EG0m{=q%AG`>qtGEl3@j%L3^}M zqk^_7z4vw<4Zo90mphK6YmgGee6k@u|FMwHcw<3p`zC{Y`gSUo>_R^o zxzQ`ydGzJUQ2Jy+Ds>GEpbG;IQjaxmR8FjvmiN!5CHYY_Tj?x~BH>g$@G#xom_k=y zQKMr0oN0P{4&AbAIqj5MLf4HBrn!UdX`^%;)v_?9`5jBCO}al6PO_%D?m^TxrZ>Gf z*_O7D^^g>;M?1s!(v|i1!8UCT-L|e3&TMm`2NaEHw#8SN)8I`v$*-kT4vmG5n<;SN zY7k8Im`UfW>ru`9L+Mc}ny&u8y$N(z4$cK8~ zQ>6Pgt)i#W)TwW&CjGnLfjVwE2rK=j(-kUz!6~~x_3{}+TT8an+%z_#E#7o+c`RLTI*lq1 zdr8%^vnWyjB3KxX6}9zx!9b8mZ=`>#28;at`p65jA(77MuT3v>&ZX%aHqmpupKgf9 zfsGxd8B%XSEY^}rx`4J`Uq-E(#!#yQa~f_WL*Kt$Pu;AgX!dY@ zdd|%pY>QkB_!nOXqz;;K42>K+G9xP&Rj~(FB{PULtCm_v5Fe6+(j#u4QLP> zM<*n?(ajgF>DqOA)YRLXUOl{&KJ7h+p2(4*qgR?!$$pfslJlWX2V7};)MQ$x=0-1F z9Z%UcQ+oHP6ZI_CqFL)?sdlX$ed*8w4fC8}#&$_MS8hMO6&(p7bSPcwxP%UgeGaL% zI#hdQF|gb_uqd+tPL8R8>6N|d#?V@Dt^Nfnc_ZlLgvW6C*;)wx7!I)XEja1zfyTQ@ zuwqmh4cP5KS7nvc){l$nf}fx1!>CRgIoL>;aHWT6?s%NgTW~W|7yM=n7sR5C1>34T z8gW!tC^++y9#Z;1R|qHR+>~=vQ(BcSof1xaTl05TY=_T*YINomDY~mwkt+X`q_0fW zsPU$6P`3kU+=d?X_Ae9avCE2P-f*Dn_V=ZFYsOKzKBH(#VKw}4>qj;0Bqq>Ubd7PZ}FzNBS+Fbg)^zF zuRYD2wvJX>Ork!QXHdeQyV%8#*1eRWQI{KG@TL*;>ic%M!0WZzY%i@EWk(&f4C&$t zZ(u@W2OK^zl^V|JNqf9{06Wv=`TX|{q`bwcrQu(&^c_g;Cj5b3pPs^Mqs#DP@ON;Y zmjt_4^`g;D##CwHZt8xalg~jDsG4sIy}bM@b=EpbXWv~(CB-~MvP_B3Qv@%YEke(8 zj|HWldxUota>C}Dp~B0b9kf=433Z4<>RM^R<7_6Ky0Dn4vy1e}uL1PKw>zLc+MHUS zUI7gqmJnsP8uT8A!k3k`a8G6di1k_x^3(^O+C)H7ZXDo0S2jo^j72`;Y{T>QTyIV zUPBFSGU*;A9icJa72{i1j?QR{^VZN5I?5MQxIWv-ebIqn~ z<6XLs>QLXYF>oem7#+#yxqUCLL;K>v^z`00PU7IGdOA|&`Yd<}0s zuEH{jCg`kw4f73#Q`d~CbcnT(UDK(vMNTWiZz_bBC?MAhL;uBdqcXKBks(J_7WBSoJc~v_1(F@2WPaq~qk=k=e zP~4Jcup9OZ+#dC(?dlSg3_l0SgT?47<8=5H+Jn9-sfB?KH83i@0rEyahv;ENaN=Ap zT%_;e+3+|}OF0Aji-Liv?}e?4Ga<%50j{?v!p*#OP%WJX>zeLBj$9TV1z z;unnSQ4i7!XHfU&iBx^FJKe6SK@HQo=in*H(}i*V)~M-oPiRz}BplPfEb5CZ3(TmN z;~ctEMpC$vIteVr0_ev*>h$XbA8HzR8^r7dYIfiqge-A~mwpMb{LL(oxgQ1>8|~qV zd;t8Co&l2uPuP7@7i2>+K|wqihI)s>fOa={vU(FtT^|kab{~Se_VbX{aU4v%4}y9@ zD#)21hc#kRAd3eeZf*eheGG+dj_09z%1VgK%YZLIzOXgn|*le!0X5{*yZRH=3drAoDQ$OH133#(6Cfd2>4qITd!=SYh`xPi&5^vo|7^(eeVGJn$M%di)X=% zqy#Vke>lFz8HULEK(Ry^q@4_c_onl~yf?rInVqnvd>z;sAAp$|UhqlI0nSg|1@gDT zVdHpza9Di`q?3~1XiF53*;hE?G6iy~VHsi)ZVpf5ec@fla(L2j4(NngfTYwE_&wAd zu07L&eudkiIR69r?Rp#zyf+2y<%i+5j4bsUH;jhe9Y7bX0h%~<9L48lbW?u~y8Y}a zVBf5SJ*!&j?j;X|f^j#68S!_8{JmT(<5eXZ&ksV(1moV~!e7aQ)W<=V-qv=fQQ^L{ z;iD4WWNSv3$8Vx=LY5v9KLWeMB7*>IQv=wDd}YTM(dVtSxTPWD?2}>F_ z!_pb!VfRJ{u)G}x!@+@n6H}q+p&xvGw-!8O=D?jN!(mL;H0U>R2rQT=1rEu2@OzUo ze5(COX8+WIxP6*%TjDx-75;&T_@gRG%516VhhVZ8Y zq5e`2@OjZjHvW`{`+I9i^7dZP{8trh)fK=iygv-+(-(R^n+)MzN^sTQ7@~U&1vBM| z@J?(kj1P5y@)7o+-Z2_BSQoCfXBLgZt4$X10-Sk_fgQ}m>x9RNkeh-C9?UZETD!e z)Gg`<%d*~+!f!34V8k<0xTu{>_3aPllZL}}ZFQ)w=?n8pKa*@7HU$>VNeO^emb}!$&m1uTnLt zFscorw;h2GhCU#1YX!`hHyQH9XG5XuLu!U|^^*v^tE3N8=~J%0L7e zb61$z!eEciN{CWf3fr%50z$45I zbiGW#`L6-Ajv=r-4dMBLv0#0EES!6&2IYUm;rcIG@VR6F1NXI)`qeGuqqscW@-&AW zB_AmA^@R54dm(#h9gN^}+eGg;7*}9L|3(zRuyZl6I0q(V<4gLH`3cf0>a+iA(C5vkl9b~ zknzng2vk>-sx{JJ=d1uy4}X!v!<1lRW^YLI9tq$2Yk*3KI`l0c2XkxHVC3mpaO#Hv zkR;wVY6!&!OF?q69$&*YLyMsUhE&c#+*eXOvxGXL)Zp93OBKx;wtb{5YJZ}gGQ%#{lF%i^eMS$9rYrr}B=#QfVY3#_U^cQ$j z&8^bH!2RO{y@qu{lzIwX@b@m=Hll+DzBUy$<|POV7ZwW}e^t>}D+UN|<*%t~+;yrJ z$%GGcL#S<95{>;Cdiw zmtmoLHT?YZ3c|);0o}@I(3p1!Rxck%H9OsCdTa>&?RXUiiN(>gZBsuG5iTT(y^Oi0e;B z9}kB=D*0g2I1x_%4TFe%)8LxMQuw-RAgs9miEOoLCogp$lQZ`s$=Z?6$xP=WqLF-? zz>O=!`0q3F+wv=!<^G3U)9fVAgZe_rm!6=dBn^*8je(i_`@+C;ieTYB8uE%&z#wll zB=8l@!%hqC_Z$m7WsP9q5KZ_tP!?31r6G5KCaihW7mhv{1gml-AzbYf86EtW==)28 z#FABE-X!jLELlD%h71mVNygl$Aj5{V zlgJ69K~q~1KKX8i8sFVuWxEFyh8+R<>Z6dh=`4(FVswDZ5PJV4KM(hepczRc>52Md za8s|0HeF4km%@h$31>zM$+rBzuJ+djMb4X4R_!mWvYslK<{uKKs-y@fkCxFb8^;N9 zaW1qW{}wguUqtohK7pGyUqSP$4mHTFf|4Qk;OXBuNS^NscONA}-~s{C&uc^V>(3-q zxs?7+ zYww7qqc}V={X`OPO2OK#zsRDvelSzxCmB`oi_k_Dcr*Jw`MISZEH?c~B4>($s+uHd zME@c8I-5x5+t=jNgd(C7QBP{m)De~GH^_?Tg+!|)|x>8+Vn5mmCDBa5tM%nj9 z)1&dCF+JZjg@!CO7Zx4~5k|+HqqT>FXwtD<>Z#d6-)SzQ_YVAm=rgP7&cJJ+e!T$v zcjUnr|0QrZ%K>a(XhLbc4x~PjhVZ?;!R2lpk-Bq>e3H*6Dhe^Ae#b5n{V|Y;FApR= zOhbr5$q_q43bUp_w1;iYs znuCKW^PDcIM;;S;-`D;p*WRu6PPBJcXKteQX7AkSkt8YMk={Kz_6h$c>f@;qbD}|) z=h85nQFN&GeYnBTEekgertyX)@W(I-{>(lCyJjAMK9}|3^_r>RbYcW7|1J%M&l-r! z`f?HwkU)&r`jF3yd`Qx!P@<4{h-4j$A<^yeWUP5M`F$>htTm&C#SC7HFNnWP&&ASs*glJV;=lY#AJhhg0|L!8dI;lqJN#Mw??Gr|l2(c0GjLspnxwVH9YtW;AW31wAeP z5+v5IpwqIi(4TYr2)$NUgJ1J^8Xce_STQ5vXOqFdcHT059!B5)K-Vpm6#AJb(1WTY z=%so?s;jw=HdGv?*Lxe$xat%*mc1A3s1zN%&Z1cda>{ekt1y=wiOePCVqT=zu|T4HbOEWGFq7Q*&B&D{tH`G24J7fe9|<<` zB&P#IN!yCk#P)SO>Fj-u%%RCd^J)>Xv??dRx85X+@8^@Yi8shj+3RHYk1J&Bo?Nm$ zHJdDmJV&H#qllbyIH?@Gk7TNPlU3t4l06z5i1^W^WKoI*nZ0!i8K9*@UM?9tkcBEGli($JVGqm{D}MZy`-?*l_bx%CNegQ zh(q`kQm|zVIaQ=Z)?XV-zS$d+?8@cDv3WU(9U4NsHA9FO|F%9!mJm<*Br7D4_|s_9!E|BC06Oo% zW7=!IGTpJMKNU|sLko^C5X}vFXKjSO2PO)o$4YUZN`DmdG!bs9nhJC8`Uq+tTe;jj zhAy9^PDAT^2vf$(3vyBpbQxoGo-5K8Cs}Hea0~W@H^XP+aG0QdoXgAS!oJ8kaLh^x zRw?y^CN&KR&*=?iC5A(`o8xiBtwKUln{kvD#TiAUs6$&IVtZHrGZMLCdm{+$UI~o zQf4Zmq!cBUG^vONDNRagp!%I}pV#Ym|G9^Ahx6L|+`ZR&*7H282F5<_f?nHJIB=*3 z<|GPWzv*1GQP4!Qe~fFl3eKIQlpXH|WUFf8X^;ru#eoZfE4z{)ANL zOVHO9736I>j!LX#nQN;r)5*NYWZo=b@Ir!T{d*1DUh2$IsyTd>R5>j7W0w+y)pFmUIgNj82qhofu?H=u%Lf7zE9G} z;fr$EyGsPmm-NEYSM~68do|d9j(}&Qhash6HFT9ATtBD{&wvN#IeM9Mn=5A>yB8*S z2EzU|F~F>n!D&kt1iNLzM&}avotg(KG8J&!x)5HR%Y})55}+d>9TL7rfPl#!@EQmJ zD{jtaelrL8c70gCN(t(Uq`*r}3Sf^4a853eFkt}%Nw|T(*LwKM3j$x;R9N!20<=w< zAZo=ecxNJkHb37(!iW%FSu+V6CeOo13whuIRY zt|uX?&JKt>v#CZ!^ug{Bz2>i^4Gj+{=aDMO^-5BorZ>g%*3h)sCvo~$U7DwV9H$&k zz`WO6u>6Dvx^172MOyQ5M~f`B_9<|6iav0ia~G^%WD6<9EDCf4IIbb98Cfd@`N6PqrZ4wE@gGIDqvB+-9||OWDD4Ga9=0fyUf2V*3V!NPMdiDScf| zM$V#ia%mm9Oh`wR*@mWe>FBcs(eH)_Mrh4Iu7^3!NmRnN_=))P&K+=zy$c$f&Vt6z z0@$$Q2&B&Ufm7?O;hZkF_rEcN(jX%^9Hk8kb{23_c`cl`It(&zgJD}q3K)B3!Inq) z5O}!|{3cewo*PB5=t>@ZI~EIyW5S_3Bml1L{|~Klzz0VW#sX*#ege zsx%I!@b}GZ!=5mf)U%XXPT}LJ?^?pFZIQJr&1EKkHJRRwTsECqv8{cRSnLmu z6R>F>Ge~JBpQ(pv_{R&{aMO?m^Z2P_wh;9^9>KI&DU$!zhdq(mIB94H9#cMuDjx{9 zC@5fBlmuR=AB2X+FObx81(v24!_D**m>F>t4$Tb!1Fv;pcg_`ZtX*Mxg%xae^nz1H zLEvyW4n#DvAonSkC#zILs$Cr{$hr(OFV{h-_Gxf8&4E{$@nG;i7*v+K!TT~>SQBpq zXUEQg)XN%hE0Und+X@DUSHpLZAGOEq;hr9<7%R%|HVl#U zC1=*WJczQrxG_F_hyDf@(4BMLxL+8l?tlwH@_6DMxPtu4Pvdm$6=<+&Ke|lUL;Z#S zp_aW0eiIbK?Fo|D)A9}8y?+7^UlhZ{=4yDMk_%C-$3T1g0hn`aJ1jWq2r}cj`+9U4 zxL#cZ93363jTXYI@J)~x90aPe#~|oyCWz^uhP_55AiA*zR8`ACy)hdu_8y1%AA%uA ze-nKCWC1f5&jy9p)1YnFOt_P(0!`Ouz`?!huwC5*1SRyrE@l}Vn$GRN2_E2nI1~bx zM?=1T7`)bwg9$!a5dOFkcF44X3U30Q`t%BVzs$sw!6xXcE{?%p*5K<2n=os`eoW$< zhgI`4aN%hr$)RD~zF`E#zVAl4OOv>|(`1%Ccz~8S-zKBnn=~}_%)h+kaGmm>Fy=OY$L>d+UHO=Mns8`Itl;_tCj zXjxSYhsXZLrPhga5OuBtxA`SdB9aADWK$tl zFAVZ7guv{3hk&+hh6D>wc&z9HI~>-7(ftF^pPc|+u0>#Jcpi*9+hMk82Yh?e1AznW z@MO*v2-unj#!X4^@w-3Rak22o+J*4cV;Q_ULtq~tShXT)BVe4mN08v^jv9z#ce38F!`ArfY~$HCuoO`x3o8V=+P!IpzxVOX6XJDmSQ z?U>of*S7^fm)oP!_^o&_AP|2H7~}T3YMgz_6b%j^K;xg|Xq;pqWnWoApT?GBgvl6o zOZ6fdbf?m^@gWrW+KBdiyG4iIH~fpEC#72O2AsX9zeAX%H<&T=em*u%6WF47Y34Vl zjS63XB14YzarD><3ej+*bI}{ArWVMX<4o;3u11zD6Ysd3NBjQO*u6Rwf37sgww76_ z8>Nh99?#*PkrZx{eh0NDJK_1e2AHUR1~gJmz}1mNPEeT)oBfW$-l3y#FFy>*Uq^z7 zVG=0T=EIkbt?>25cQAS(j;CKM;ak@k=p(9+Dj_q_?~^nZng4{fr`kdL(_5T2p_j1VWeg64Oh+40X|#K&fr&G8arPEH40c$8+PoteF=hx?C7i%@61nLARGl_1 zm_jct6G>u=ERE`ariaFVA>c8~c2-hNjM6 z%*OBA$_~qVvW>^W$nQ@oJx|Fa!{%1HyDNd-*excd+tKtqb`Wn#3X`q+L~7Bwgx!_B zxT-uEcMZkiH~wIpW?_vQ3tdt8$UMy4JQ-!bh~x6>e0W~?76`1k242fff<;FzOz=vA z9GPQq$oDvmyp0F-EhoT3CLgAbuZ5&-Z{V$y6sii$!hoHoI6l-Ib7m|<2Ol2Rkq#!_M zd~oy&ek+o{} z?rebJ@#Ai_yeSQ4HO~ zC9$J@2gjIvaU2uXA`^F-bqI;&?7ksN&R5 zir1LNj$F@RksZ~nr=y>x?RDji=PRenUvE&&^`-1{sV8e%A;b!OGN@|jL;9Ato+c@2 zvbaU-$i3f=0{8Bv4-s#1fsQ84ZW5;b8CN-;#S>I6KaRtj1JJtK58cyOV7Iw7I)BpQ zoX?cdLRk(i8;2q4_-E)TdLYS)X)};_romlM7;$j3S_WW;7?5h=-6zg>YG$J#xkjc;^K%;;oG(s{*Ujd;Hcu>tCAd}~7>{)=#lM#w zaMHo~xbmbP!n9Gi>M#l(OS{4CL<878s)k9IN})714h&?&z`f%bG(QQ4n?HE~s)dv;G%XJP-nCy+Jo%1l>bt;-Cjlk|7 zH{e>p36MP$4w-6uz~6KOXxXd>tyX6ceP9ihI~T*$BnNQ3zZw$Pt%b?24#H4>IGEkf z1&g)>2#FA_Il(tj@@kDR~B!JSo%&HAeX#OR>Su38x%)#tNw{{2AYd z%SZCjwLgfh@jS+cXJ4a5+tNr%`#5E+yhu~~cam7+49f1^PU?@(U_^@wgvA&^U@`tq~mb?P$2MoZUXgZtKh+kWpFLn2687Xgth;zgu8Vfu&-<{ zMAYm9=Y1)lJ}D2>Gt6D~#y(rc3PX z`uo(0|I@0y%60$$IJC};JshD5Fc&r#jlSXups;hwplo#^!vq_89fW-vW0QSH$jdI^9%~d4{*Qh zD^MAK22@|?fWi1wn0z=9LjOcVa8m>X)^!ao03#m?MZO6}=$&u?l`%I1a~zePQU||p|cEMkKyVZnzn&!|q=0%2Tx^${;ghY?zP)A%Z zKEC^nhWWf$cgY&&l(CMNZSKj7I+Mlw)638EJ3o(oyb#Q?KF?!XHb*tY7q#l^Mm1UKsX%Vb_7Bn zr*ie_8c^8t81B`K!9QV=IJZ<9+Z`0J;eaI4JbpZ7+6_%z7l8LV70${YfHj*pLdFwU zFp+YCo@xt_@mmN#FD?SVZW|Du;|3D;t6{;ZU4W}Y;YxBelzvG9!@9Gu;paK1XnY0| zQ5;UErG{Qdjj;HgCO+M3hSuLX+#qNzX6$vt*t{?_U+@Aq%qqZcyGopFp-7sE>eT&!XYE8nBs6QaO;vp!`r~+00YVeqo3=wByAe76k$Eojz zQV(AkDBlI^eryJ-2fomM_z0XCH~|+l>!AMc1ITOq0Dl$^L21(usKHNQR{R9`G%iCp zSGUHxFo;Or3Sv7PU~r8MEO)SgR#*b9-%Y{S!3tI@S-|pZZXo_^BYX+o0|VoIx%xpO zTxmT60e|no+n6^ntoR<(w!eXg@i#y}S`_QDs*+y-@R^DxuRfjTejaH%`Hp;xM+{F_-NI9rjK6Gt)9V z%|gxy@T3-4(dAqAY~g4j^;`&GGs`|>WVR^lj-SoOzu3l%Qa01Vhdaqzw3ys%q{tyc zmB!3|g9&TbVwQh9^1g1u9s@VDZn8qryOYpRSOgEYzlVtSM=+O*n+|wh2Gg``;GdER z{@mEC8V!XY&;4*-Za@4oSP3KH|3Ukw&9HyZX6Q}{hGpAR;C2{?&yBkZ-~GBEa-b8I zZ+Z)r{ZAn3*-iKpS`9<%(qYxpAjs(VhWQZx59Gdz&qPV)gI%;H^yd@ZAyCnfefWU!~FM?^WdaH=d3OUPKGo z2bksh8{hBGz&-a(@%8$n=r(l;ju|+NCoio;4GC+M9wUXL)8%pTBoRyo5j=fP5VxG~ zh2wjwz|trOOy3p2^YL-;qiH`}o3$IhUtIy+`gS1VWCeapY=LjbE|A-J1O%&3fMRk;>OZXjR2|wmIfZQE7 zm~krbG>bG4~X>bk}oO#w~EQybSp_Z-d0IJJ43$00pNjVfou^usD|hT7JQx z`OFpe9$o}hHhS>vqdN4ODTB&AeVA@#00qhmA>)cIOc7cIg)28e;wOJNWfBHnuXEu= zLK%Egd<(N`zrYGD4mY_w9%C(fA&74^YMqq9AJ)FO)5Z@4bfeIG-&Z`9Scqn)#**UE zTNo<8opw1+p(m4WliY9{G1VnBKdY3cjx+n04-PgmCZo8PSF!0l+j={aXSQ9Gmtp8m z3#xZgalk54bn#>_uRJE#QfnHXlS)gRBWVD&$vMlFRF-RSHL*LmrJ@Zd<_pq~9hf{2t<8pyj+&hO##{U^=)Cey`XF{Qn(;>OJu=?0yQQu2zHH$|iU-w~gabG=q}TBQPqw2CIQ}_Ri>|3gWR}+NsKuj;(7J3DZrS0H(^DMmS zh=C=uqu|RoFIc_E3eE*Cg@$N5urhZ8f!TZEghLdp`VkKY)$=$WUNQXFcn<9DUVx|3 z%}~pC3!+jU1K*t%IPu>_7<=vvyu&i6o0tg>)j6=GCje%M?1ty|?%?s%9u$L30Q=NH zOjQXigY?1J+XVEojiGC@E4&Li3JJz(u;Fz9r0SP|{f9Gf@^>9nFuvmir)HZNVo4I z-K?l1@hV$#kaMC%R)Qoqt{Ru_JcnVOEtnh7r(s_B zS*T6C2|A10!B6HX%=YMm$R%CyV9`%7ZRi1YdxbEkT;yYpb_YC9OOum%KTJm9Wg0N8E`hi4a0f~{jYyx%q! z`=oAx$;)x*wO1d-j;rGN5gT;+poRtZD^Xr!K1yDWL(|_y9B=y!inp4ewwEQTr?HPn;pXo#xgrV2`&;vo^~OJo|E6CX^h=qf6`A_i+&{_~S|z zxp5iG(%H_GRno|>w~OxU|03Vn0!(1=5Pjc0lT1cAUYUm!b@?Qq`*W_&erOvis>Wkx zp$l3k&qtl02`HmK85`vJ@VZkyNKC!~h62T~);ktx(J?ULa^Enm&G7Q?R=D_JFVuVw zh6(2*;l#T*SpTF5))$|Fo-Hk)HmwbU*4Dz+4bLD{zZZP>wL`S~dytNK1Z#FYgOJR2 z@bEbg0XCOleP<37#^eDXS6j6XNr7`){Gsr|UKpCQ4mz8-x}dcsyuPdjza6H*pV>wb z^>H!KH5ZO|69F|`UFGWUBG{OI6;xc_gUHYm(EU6N6Rbwyu-RwmsM(5ZKkY^Z{zJ%< zIgh2HLHIo&3txOwCUI|lV&8-C?9*9f@t}!J_426Uw#2_RqrPK0RkWHgr+J?2S%uBN z7~}OFK_(!k#m>+DLAQ^okmi5p%*@r0b$J>Sad_%ci8;*WQ4E=`RHOo3KhoLx6W`qt zq3gT;;_)THctN)ocRPlmTc-;?uhYiuwo)9|d@OF6%7;4j_n~a>CAfS)0ctD)phY7D zZmm5I+0&DOcBjJORmGsc>kJf6y96)ST!VbQd$4(8A7~5oL7=4|8b29}B^b@*wj>T#9pW*0&9#Ee17#!|hgPG|q@I|^DN<7m*^;!lj-4_T+Twbp( zco4iSJRnTn9b)3ABP>v|%a=~P1dVCJP7G8qx@JCaNTW$>1(}7qJgIq)qGnVuExz*wPjebPuYz(^T40S<&Z(GkW;O22UV$V# z9h1zJaYxBC+?)3Xq?4Y4<@qY887&04mMl1wc^TS1-hfjNTEN}@B?OHhghughc-Zm; z{;U{-tMkU7*FsVJ9j<@|&nMvpVJRGJorzOD74gAKWxVS<3FVEYP}D*K*E(=|7cWUP z_7+F?P=1u|;^Q<(FW~UJhp<|;3x1kigYXZH(4}z(Hu#po)wkua$1@L1_EbV+b~+3= z$H8@p7?9eZ3m5NQg5euOFevy5Jmz(PnUfXXn7;(wG99qIU=QXeTVefzRLm_MOP_{L z;~eW!{1m4~jg@1`Q_YCV*OijdpE7!LFpt#apVGA30&F#31r6k9Fi%Gz-r~Sw_VY{t zYu_uzu4GPOIu|d|=?ELP&RUmUU8qMFUK}OyWPYY<(Idy&4xJ6&lr6QY*Bj4 zLOjRSoM#%&<1}fraIjJrB|a+P)}NDb@oO1eFCdO4c0ZxV>K$ww_y~F7Zy;W@4;mML zg+R$hI6tKhuEte>nqC=HA1we_bP{H9xRz>Q4$Rd#4YT&Vfl=4-7}Pf%=WXqQA2*Cp z+3tw}3yZwLF$V5AvUf1w5r>!M)dHE1Jet1rD z*Q!XNO_Dc^8~;C67rHuxg_i%J#uKgVblyd-FH7&}b~ zt4<5ym{BQI5gv$0w}u)hPjWSv5ybGTaHDIC~+K7 zmcb9XfOppg;Kku!th6x3YJ>e)6&s6xokH-`L={>XKb>4WlJQ`5B8piC)4EHV^dU5h zQXC3tNQ0k=)~sXC#JbtH;8AKd{K!V!1DVc1EftFDG3x?NCdct}V-p=o<2KR}mzT8f zeFXVe)nnVhW8A9YK%q}YFh~9=@{%W#td%G7N`f(cu?EIhOQU`p;*aan_$6u(;xzgo zW7;by?fVXgE{#WxSL1M-+h3Ts%oHnsYGJ?<6TCI5juT?$V|1?-e$nzmn*>WNQeTE` z9JfhBV;34n*x=i3>u~;ZSDbx21m9|fVvzSv94&K2{;BS0@!1EpTAi@}h7~@_pNp#& zSl|`$x!CyMbUcilOykLP3{4fldH;>W0(CK*C@7Ejg|2|giCZAYKMMJOeu0`?30SaR zm>~WRL>)hXvj4G${0Vg1wT%AwSJK5rnrz0YX_W5Uz*=1=@n-6pvCb`J|JLjD__^$Q>jjqN zxqzhx8_-T~BMPQYPVXtsQX@HzdZ`OZSoqNJjYU}XC=3^!ZNil$A^7udI_~SxLp}!s zbXqTfYCoiK;KC?`uQbEj-5frkB8#03nwafwjlmD*;N-QNaQkU@oanb61t)mn8krE> zBYPaTtUiL4t79=&GzT}DAH}@YrItMq`(5 zD4y3&z@H_Dag5aogn<|oxV-{}A6a2W{aW<3M4V?~h7~y)$Y(nf_w^g&U$q%nIa3^W zofJc{b+hnk{RAA2_yK#P#Zl_Y7~EU_7!o{1&^TQh*SL7&a{qm}b^ltdkj_UZXAe|< zU5OVf^l96p4|sguBb+d&g1UQF)2gZ@dVkWDiW5(ggu`^!+7k3{T#vSk^DdNz@SbuW zRgOZFN%ho1b}n)o^T@yXF9z(?Hz)ZUIb^6=Obt)^(0sW7jYUUVo5|%VF}3((uOQ{F zWcc8-ITp>dM}FPun4IWPRilg2Kx#chX7aq6HKX2=Aii26p{{5J?U zI|X9;@Gna{4}VS;Cw8s4&y!-?jqsAbG)I%_B6jg40LbB8h>{iTX`QPI8I%A2WRLkBkPqVsBvC|K5GflHR*D?V6c-i&Jm7=k8r*@v25pcQKqH& zf(1WO`L{m1CMd97uhiLd>0M-(W5nd$he%<~WfHP4N4vu{6kIe!8vPx(=H+jEHCvii z3-82yy%g*_%lR-IH^ku&8Q6Y197DH;V@oeL&JOc&_4EMrY(0iDCi`)~a35Mv4abm8 z(O4=Lj8AVKMb(4ZSQvg7ZFe0(k*T4mcd!JHzfQ$Hnz^{h=@k0Aq@n%dCRA%pM7F#b z1wUTEJ8IniB7PC?R;FOd_p?}dxdrXUm7?Rm(|GURX_VYlj9a3saDjUw&Jqv7hp9*L zXTmOQ=JdMR@3!E;)|L3*!%WQjy#_b^%ENq%0KCm{2Zk1IMpq3REE}hRXJ4wIh2cV6 zy_Q>t3a8=|$HiFkG6?mBJyA9-6g$qI#EfylC~Pc9nY&GJ%PNk$dr+1{9t6`xyW^DC z_7_W{BC-0NFB|SGWTGZVSdED?Zvy965b67rxySX9UNo_w6|J|8k?6ABKcQ&obbCJ}D{N^NqgHNByE64PwuV2)rH-GtxokykgJN7B*^g%iKVY(DAqoj_8hE~DEYp2~ z!5`~ThQAv9Mq)58r~u2FOEEUS8TCR7(8pv5i!R*4M(r$o%qv5UpdxJA_Zf%JXQShu zlbCBej28<#@yl-oy8eZ`Z$^LNo@-&qwdJ88gLvAxfseXQT|srJ-{|(!mbd$?D(}mV z6})rmhAc`>lt~t)u;ghGbmg=yGj5y7ypC<6@TL<~`tv%SF&Cxg1>&SuKb|68Jke)g zG%l4$!FER(Jaa$=ZIk5D-M0!q?_Gz9c@0?g)fUq#;!s&I28+Kf#f}$|C=hoRL-e_O z%qs_zwm(9@&F64r!3FefzJx*|{M7on0@Igtp;;y$P3E|QaixP8Wy()3FRRdH#YfCO zAVhrzD&%lelniS{NlxJ&HjT-~2Yb44@4i@^@V61K+o#~%SBd!L$3;~6avCd>^HIsF z9?u<0M5Wi^I6*BN#dgfX_&j&~e9HxkQ&X^K;|g54(Gb6VSc2&lin!D(02Ov5qTIzT z7$-9s!Nml_w@ydvR(s?rx}rtWUi_u{1atIOVF+}g$#@_1*Gr-`KbO#W(*rd41> z?8L&QDp}v%Bdlwt2MeCa^*2a}W}UwFY;lYdvppcf3-nvT%W;29VWkt;cy9@orKHXx z-W1c{k|2^_6iqbaFuk^Vg;6s_X~QZxa*3(grzTc7dJaDDq`}I-f4A z(<4>s8vGdc17GIe!uu!HXwUI4xOoQBZ|+_Z^|2zad^wt>ZbOS!t)$F#(o+Z$<~WarERATV%^0faHKT38YUKN795p|hPv4AZ(W$a#Ed6kR zth*nfP^k^IH0sifjho5Fc^@VDY$26Ge{x)xPK($ciZv^y<R`g z>10)vPELb)G|3{Ix`X!8PRX;>**A%PJkOwd-z$`!X+!PT9+CWxP>PtDL<$yh)Us?h zIg3S8T4fMzIBrWf7bej{1w(StbRqve)9A6me7e${OSNy@$TT{RF73Ca!_pQsjq?Mm zR9#6Qv=@_Xof3(zk>WgE?CJ2tQn{nBhcc`Iq4(UNCt;qj{%j%rA zsvwVZQ`wu{y6i~mU;5%akAk!((ccSmNhrMQ)PQo|vO8iw$7n+XRKL%0f zaR8p)e+`}W&STQNv-o(rB|d##gU93-VAz>cxQ6r6N*nr(1)7HRE9yM%c~ytDB}$Yc zBSD%)J*aq9lw7^Xll7JHH22w5l0Whax7CSK!Rn8gnK6;}omQhjODXc0B1p&l+faU- zHMM=|$6dF3P+)&I>h)Ssk>*?)Cwm$#9^S~Wu>C2C35 z)Q}FOex@sz#aNZaS9(@?ic*X((mJOf^iBQ_Y3^*N2@=f|H~T(WI`Ods!8)u=GL7O+ z&SJaow^4Dl7`rd3&)h%7QqxLx_Vhndw$WCAg&%rF(+@Z>-gh-N!%LjC2v*aS7cpdi zX(}rjvzfipuw=Ol4Va^LA8p+|MCn^*u;H&W*l5T@5;eF@A=4Tt!9j(s_&$xL&$&m@ z;>v7XNFD9ze@9xrk}P6%IsJEI2^%UNq(R@gOrlnVnZ5o--|qdUHJy`L??yFTP`j00 zP2f2AeXaCh*AkMyb(2c+H&9d9d0PDK$%Z9S;z1!cDhD|WvpAzQ;?P873@{#X=IDDaJL3p8X&^+>N~_LM(@*> z+rQ}i4PA2BT|)lqPRuy7j0(bT)18IWs4**=6n|CGL32x*5|vAV-#A`syC)6JwI}J| zFnT&Yk?u)n((rpjditV+Cf4$^z3bnR`r9!q$5x4{xrnm2eZOdS`8Ns@{7Nb_o{_WB z7PjiHDD!^LPZ>G&lxHc+5(LE9h9`!sE+K(-K58WsyFYZjZjdB{Cb7@j)@;V~dz2F> z#ip8$=lXWdWx0M=sOV1?iGLJlLi5M5U7RPJ$#!LSuVoUOa5ju;c2&^V-`6PE`zy_> zI6z{p%Ix&r59nwRNV+i|v>`T-w%6YzqYy*xb31VN?M%AU6iv#=$i6bI{k4g&HNQe z?Q6AZ&HE{&yTp(7cX^SAvjy?axzhIFK+@QzNXxpCNu;9{JA8=9|0Pz)t5NS^bDEv( zKr>FxqL~NRQuyU|a{hjlk`DdFmC_;9|7{`XKeC^m_zq!TRvEoCm`dwE`jBkbCrlC( zrfJJ0sKGUajD!0ye((q4qfn|>NBZ0N1vM^pqxj!(q^%%A{wvDy>qtE)@6E)M_F^o$ ztCYT3%dqPWh3vrF5C)Ou%v-peCT$mFi@xTO;_z(NB_zO9W7pHV{tP<7`PX@J`XH(7 zpH$2F2i}QOrX=N78tI?POgyiXNq;IUs^6sr?hizA~)(dl3QJyCAOq$3BCQ7iG<(}*e=O^UZs>-yZ z&6&lqL5fRMV9{!}tVm@o6XMCRH5K#Nq>Q^%Gc<-RemzP@o+z-d_IV#8v-K9w>2ta&J9pEJ?H=%Eont1j7bAtl=cmoW>qVJbz;pa> zxdc1^;wi1y9H8s>u93~$@w89-5S{yP8aZqYWYYE?|Moxjtc(d-rL$u*qbR*|F@ybf zyki|Su+4VGMIH$N_7Q$B>VZx3VHl+eLNB%Hd&CPvJ#bOp(_rLtDWOzS|(&J-yx^^(XJ1MMXP@B2d zd(edmCs{?>1FG7fL}C#qS>j@EW~HG@otjUnBP^V0{$0j~*9fpTF*{hSpe6H2u;$e{ zmaqdZ3OvoMVXC(cl7fn|9LvB;HQ9x-RGxb+wDz0xSVqhYJW)rqs z%#ymVoFU$_0ID)sOc!SLlTIWbtL!~PyP}GyZ2B>_-aVhbto((a%s$c$(9AE<|<3bW?(!U7_y?^ zn-|F5K#I8*jAs)DH?#SV4Or78eL6SwJ>~z*BYV{h=06(BEK>QIY582HmA!iCUV zx`qOKDH+Es^pe>N4Gm^JLxagbccv+RIt;oV()Im1WUMC1lozG5?u@<6dRy$j_xh?_ zq}=*-Onf0f^D!So$~cSe9Gt~O#27QO7GQFlIITiu9XaK?vCI9|Y(R28+q5f%RJ%mj zf(dFY^u#unS~iz1>1wghfi-m6ua494)l;=aHT^2^VJTk3Y~-T9{l?|^zwO< z+_Z`bxW%yGxJq{ab~c+5)kp(16|7=IAo+?Xu^&#|tY+^2zO$&{I@_fzS zv60b5>}7^AyV1Oel@zox*JI0=lFfZKH*GPK?OM)uUOPv(vTjjtnj_QWe0zs9YMINs zRjgf}sm>2mglT9@j<9W#aV&em5v8BITSZ4VcUV`3PiV2tIseX26zhy;vAKl_8 zC5WFF5Py|9Sqky&e=T8|Ez@|`1&i1$T_vX5-NwHEc*3?6g|hCK!n_x=`BsMcib-x>TH4=WdKcB$+JrRlV> z4&Mj=#!tv8orNs8MRrXN?8&PC#SdnygULVnf5%Zu%Is0N3)A}4&$haHFsso@_V(Ou zHr7Jq-)Hh`#r_t0x3#Pv>3TJQevwb|MMtl9qp z)A&A-m)CrmWp)1~!F?ClHXrYQ=O=j`{`ai5>=N60D}Zr670jb#4BKGP$IjdTqV%jW zY?8xnRyfv^ZCLh!waO0D1<9jqtKucLR=Sm`v?sE)>qd#axlV2^1x!fw7t@~kiJ{gN z_Sa8~>w%KUloBeKo^LgKJus2yI5F$r7$^-ovxU@gDmd6WzN5AsoB8Q zm0#-eM&+wnfA$~?GOJ>CPlqVs#>s!@GkSKj2)V7SPOy>vohte7e>&IIc;(#nuN4tt z$MBzs=f9&V+)c;?5PXd=y*8Y8awJ6%q zLMlVV;42ZD&U3P7iv}~vlI+oDDN&;mg(MT23dx9uC?%CtH%bdqw#mMg(O1bbGGgL? z?>YCrFaDq5Grr&N`+hq7-shb2?9X}bxz9Z>?>#jW&6D0I?eanv z;Sa6Ta~0wA@PsO9c6R%0mn5hpycY_&FeU^hN{RR>l{ImR0 z?@_4h+J5NP*?iPlq65jv+OTRe{jDo~-@|A}tv*`1BpKOu-+{J1G$MS%>O#QydLMK$ z-T)kQ^pI}(eh5pdK#Hd=pmAy$N^r9z_Fl_k;Py5rFc`NUsaaW|!ErB9^mm3RX=G>U zqhyLsKW_`>k84p>mJTE=NJa{ZhRCvYPjr8?C2Db|9Sk$k0Jl#0s85F+qBkyS60E+L ziAJv+Lgd4Ab1<8tM*79v9$D8*5rX5|!7m5DmU$i%j*XPdu&P8Cz7jvJ9E{u7TamRAhH+4f@Kf3wnHIF525}9hx)c4l+`w z_ZpsFa;Ki?Su@*gRxe z-vxdQSdAvR1*3xD+&f4rLkVx`tuUG0=4$n*rviT|CXJHSVY z=JliG$7txh{VAtUtd}(qTc=y=|C0F)?*;sD~R}O}{Y8B{rVkMDlxv+%5$r{n%9OeaWD)g{RMi80n z9H$4`&u2l_{4h|>4uk9g4QQ^?6|iVsAL_Rz2^8p5?=pifLRob;1`eQgtU&RDOrP^ z3Bh1Jwj&%qvJrB_sc$pm9uwZ7TeF~&`w`gJX34PNYb$`^$q;noKDhVK2ezsk7|gbX z?U#qZ;QSec{_d~#GQ0YYr|%>a*X3s9DyV9!LGb>S>acrDOSpgeHQK#18$u4VaQ}gl zjJI@^8f^b&IvKl~sbl@BSLo$YO&PvpbRd*n3j&o*<f%WAsGW@T~kI}iS zRm4Bddk4w9W>6DsU2+l(dxgR6nofAq#M4MyDHt|LLLp+$9vIhHi+cQQ0(A`wA+)45 zF217-qfWJk9+e?*^-LH9#$Q4z`t+SmHySz+nGv^X{u*j8gWfIH!m0j6MCZV&Jp>=? z-%s`)o14#7Ve80O=x%LmnVqSft`mAOMsLE$Uq6%KQgYNmyNF)vJWYhtLm7@AkLo#r zd;jup$S$P@y=Z)Z6bJc3x#3)*r)?*1NbpZaeFI++p1@REcTC8m_uhg{6!LQZ>>%&Q z2h;1;X1^=94{L+&gC_JU?de;3Uwk)N<_ph1zxO$$XwU5hy=d&a_i`n8kDN-vcSv#o z1~_6eS3GJeG$0kyF9ix6deQfZ@v>GBO_)+tsx)+hUi`2D72Z5ZeC~o$o&xo@!)$R73|UG4U+bQ1S9pROWIVky zsPD?%?x4V9ZgAzFavX0D-*O7+`_Sl!VKSWMX+%8n&7r{bt$8nhA2L3> zS^i!)o__kN2=G4>3#vzha82qG!kcBMgCDt#B=qTyeguy3_a?AuQb&AQCj?rTB@o)h z3k=D8ReJ{4jp|1Fyxg1IyRzN=a^Smm49?;pKiA7I6}sdGL-x#H;PtcCgw}ImEHrvY zLRQ+3&~IxHL?#&Gjs1;ea&-H>ZSOS0@9?3D-C({Z5ax_O47K4DZy#VGC+0F~%$Q*B1Oz3i1pC9ur?Dkwpj9Dd{pD~i=6pwppNagYU z_qCTrfuMeu-ap0-@&r50g<$c*5)>x$)3JPQXkZ2Fm*ypo{r4 zm=)teXxDe4{F!Mtz%O6{432*Yu|1zbpqV$EKS*h6$4T&&{&NU@{vZlP|2(+wLHK_9 zGEdmd-Lu5`zk)eFi{OlO1WbQP>#cWbJ-_!Oaw@wmfRHwRVB|X+zQ4r1+j{M4GJp9R zeGi++m(atD%y->Y0kIn$-fP3bQgvA_Xiuq!0Iv|}vsM{5>2luzbM0Ke31Cvafb{#F zje%v))`Md~d%`m*I|f#im4b7{4T5*Pv!1}Iw^VUlQVi+aCQ#lrDRi8_I)cpG_y!R8 z2)bZk=gKT_AU-R_(eXQ9x-G)VN z+skIw>rY-`yPFLds(&@JW+%HT@s;FR89iEjQId1;_<}sBs|;ohDGYrLzwDI#n&@yjLJu( zVLhkE?VKJT!4nmqtJTM3U~1P7TN(O)PI{F7_k#vv_KQMs?>?d3c3w zn_0E7$8pp)otvpkPT+LnXFew8b}Yb8wiu6V`J@1Aa@6I8Cvk5Qk3u|VV~;#1&mz3w zPA_hz7_a5SrC);glDL)Nf~)-x{E&YN-{sL!r!f-<2~zA_?5;M zq+JjpTNvTgv+?A4cJh-@6V~B8TWgI~iv%Hp+sv?#X&S@xO%_9GtS@MrUb`ohPS>LuvBkrsyVB;<*S-HjK3-+F1>xiAl z1^bS({fS+9f<3ux3t~r(p#PYl_o$#RL(r4X`VskQg4|SAoA{d|$VpqF?{SxrK>OTceq1IYXqb_SsjWo-!bWyQ;07-I@Uu_vX+RQ@(B$isqse4FYM@QIkl zIZ2>P!3AUiQU&@nOyic0X*@G<6xmOX;xWXIV_1lXASV~ob<7jw9mh2^o|xvt2`t1L zuON07;E8lS1U-dVST8|e5zeLSDd;W1i|Kk}Vf}Frnh#ik<_8w?1*g;e!9qS^x{l?T z&jv2vu#kWF2bzyq$WJWfD?Ul{SIlQ&KNX|i44WhH-x+~cj4>(1B#a_c$5m5a?k-Dt zOLe$9k*_eFoV@2OUgF~6?&S1Q4rp?<9xeB57&kB1r7oVXE^`)BR-p`hubh8Xt9p7Y z?-~;4TQTDaFCVA2Tx4duxN%l7 z%zNu!p)MEsMab9kV$s@)>%Li6x8me3neR*<5&oZj?~x~#&+_LD6{ahvz}eMhp8K5H z3}0XKx_Noj1{G%bpfMA;!z1ntX%Y_zLbOkWT0+F%eGZh{%f~^5ad&njPc-k115v;* zZ~EPus8k~M(5D#rbAhHhwIEaA`_MVYWew3QfuR|EQ4z2mHi%r94uaR>K9MP$M~K1j zc6Rle!(Fjre%p$OPlV!g>;U0hV}>9{ejTd6@!T)$p&ZSJt`j9*j<8Xxb6vT-zkiOP z!O7##BS;K{K)id7V8`p{ng~Dr9HCl>wWqj65xMgH&Wf`CR7+#lrqW zjBWn-=m<2|5jG@N;{NhR(i=O)DGV0BrukfT1d%W76Iz_+H?ONtsUyVeUB2IZ-a6vl zb7Hx@|6U#Orr+9}-~4$bAM)VKFL{yF4R zzK>|f*(lZ#^Yy8g&s9fg>QZ?^7@EOHMxeQlupyBWv*(SZ|Bu%ZI-F+teOZa?|NG|= z;`J`yZ$57w@$UD?a(h3$j?m@&mXJU4Izl}EP%)q@VQNSrJ&$1C`|obZ;x&JKu@QK; Xju7ifTOohMz=+p3JyjHEKOO!b!+@j< From 1187c956581928035b08acf92821a5201857bc7e Mon Sep 17 00:00:00 2001 From: Simon Heybrock Date: Wed, 26 Aug 2026 12:39:49 +0000 Subject: [PATCH 4/4] refactor(sans): apply the beam center as an incident beam direction The beam center is a point on the actual beam, measured from the sample, so it defines the beam direction. Passing that direction as `incident_beam` says so directly. It replaces the shear, which mapped the actual beam onto the nominal axis by displacing every pixel's scattered beam in proportion to its distance from the sample. The shear is exact along the beam and first order elsewhere, since it is a shear rather than a rotation. For the Loki-at-Larmor detector that costs a relative error in two_theta with a median of 3.8e-4 and a maximum of 1.2e-3, well above the 1e-5 the docstring claimed. Rotating the incident beam is exact everywhere, and it puts phi, the cylindrical coordinates and two_theta on the same footing instead of relying on the shear having mapped the transverse plane closely enough. The reference results move accordingly and are regenerated. Requires the beam-aligned coordinate system to follow the incident beam rather than its projection onto the horizontal plane; see scipp/scippneutron#725. Until that is released, phi and Qx/Qy would drop the vertical part of the beam center. --- packages/esssans/src/ess/sans/conversions.py | 42 ++++++------------ packages/esssans/tests/beam_center_test.py | 26 +++++++++-- packages/esssans/tests/loki/iofq_test.py | 6 ++- ...ce_IofQ_UncertaintyBroadcastMode.drop.hdf5 | Bin 15776 -> 15776 bytes ..._IofQxy_UncertaintyBroadcastMode.drop.hdf5 | Bin 73376 -> 73376 bytes 5 files changed, 41 insertions(+), 33 deletions(-) diff --git a/packages/esssans/src/ess/sans/conversions.py b/packages/esssans/src/ess/sans/conversions.py index 8d4edff17..8fed5262e 100644 --- a/packages/esssans/src/ess/sans/conversions.py +++ b/packages/esssans/src/ess/sans/conversions.py @@ -36,30 +36,23 @@ ) -def _scattered_beam_with_beam_center( - beam_center: sc.Variable, incident_beam: sc.Variable -) -> Callable[[sc.Variable, sc.Variable], sc.Variable]: +def _incident_beam_from_beam_center( + beam_center: sc.Variable, nominal_incident_beam: sc.Variable +) -> Callable[[], sc.Variable]: """ - Return a provider for ``scattered_beam`` that accounts for the beam center. + Return a provider for ``incident_beam`` that points along the actual beam. Scattering angles must be measured relative to the actual beam. The beam passes through the sample, but its direction, set by the collimation, in general deviates from the nominal beam axis defined by source and sample. The beam center is a point - on the actual beam, so together with the sample position it defines that direction. + on the actual beam, measured from the sample, so it defines that direction. - Every pixel is shifted transversely in proportion to its distance from the sample, - which maps the actual beam onto the nominal axis: by the full transverse offset at - the distance where the beam center was determined, by half of it at half that - distance. Only the ratio of the offset to that distance is used, so scaling - ``beam_center`` leaves the result unchanged. - - The shift is a shear rather than a rotation, hence exact along the beam and - approximate elsewhere, with a relative error in ``two_theta`` of the order of the - squared beam tilt, i.e., below 1e-5 for a beam center of 20 mm at 5 m. + Only the direction is taken from the beam center. The length is that of the nominal + incident beam, since ``L1`` is a property of the beamline and not of the beam + center. Scaling ``beam_center`` therefore leaves the result unchanged. """ - axis = incident_beam / sc.norm(incident_beam) - distance = sc.dot(beam_center, axis) - if distance.value <= 0.0: + axis = nominal_incident_beam / sc.norm(nominal_incident_beam) + if sc.dot(beam_center, axis).value <= 0.0: raise ValueError( f'Invalid beam center {beam_center}. The beam center is the position of ' 'the beam relative to the sample, so its component along the beam must be ' @@ -67,15 +60,8 @@ def _scattered_beam_with_beam_center( 'center was determined. A beam center given as a transverse offset alone, ' 'without that distance, cannot define a beam direction.' ) - offset = beam_center - distance * axis - - def scattered_beam( - position: sc.Variable, sample_position: sc.Variable - ) -> sc.Variable: - beam = position - sample_position - return beam - offset * (sc.dot(beam, axis) / distance) - - return scattered_beam + incident_beam = sc.norm(nominal_incident_beam) * beam_center / sc.norm(beam_center) + return lambda: incident_beam def cyl_unit_vectors(incident_beam: sc.Variable, gravity: sc.Variable): @@ -202,8 +188,8 @@ def sans_elastic( } # A zero beam center means no correction, leaving the plain beamline graph. if sc.norm(beam_center).value != 0.0: - graph['scattered_beam'] = _scattered_beam_with_beam_center( - beam_center, incident_beam=sample_position - source_position + graph['incident_beam'] = _incident_beam_from_beam_center( + beam_center, nominal_incident_beam=sample_position - source_position ) if correct_for_gravity: del graph['two_theta'] diff --git a/packages/esssans/tests/beam_center_test.py b/packages/esssans/tests/beam_center_test.py index 51dfe478c..5eef241aa 100644 --- a/packages/esssans/tests/beam_center_test.py +++ b/packages/esssans/tests/beam_center_test.py @@ -75,12 +75,32 @@ def test_beam_center_shifts_two_theta() -> None: assert with_center.value < without.value -def test_phi_is_measured_around_the_beam_center() -> None: - # Directly to the right of the beam center, i.e., phi == 0. - position = SAMPLE_POSITION + BEAM_CENTER + sc.vector([0.2, 0, 0], unit='m') +def _transverse_offset(direction: sc.Variable) -> sc.Variable: + """Offset of 20 cm along ``direction``.""" + return sc.scalar(0.2, unit='m') * direction / sc.norm(direction) + + +def test_phi_is_zero_horizontally_beside_the_beam_center() -> None: + # Perpendicular to the beam and to gravity, i.e., phi == 0. + right = sc.cross(-gravity_vector(), BEAM_CENTER) + position = SAMPLE_POSITION + BEAM_CENTER + _transverse_offset(right) assert_zero_angle(angle(position, make_graph(beam_center=BEAM_CENTER), name='phi')) +def test_phi_is_ninety_degrees_above_the_beam_center() -> None: + # Perpendicular to the beam, in the plane spanned by the beam and gravity. + right = sc.cross(-gravity_vector(), BEAM_CENTER) + position = ( + SAMPLE_POSITION + BEAM_CENTER + _transverse_offset(sc.cross(BEAM_CENTER, right)) + ) + phi = angle(position, make_graph(beam_center=BEAM_CENTER), name='phi') + assert sc.isclose( + phi, + 0.5 * sc.constants.pi.value * sc.Unit('rad'), + atol=sc.scalar(1e-9, unit='rad'), + ) + + @pytest.mark.parametrize('correct_for_gravity', [False, True]) def test_beam_center_is_applied_relative_to_sample_position( correct_for_gravity: bool, diff --git a/packages/esssans/tests/loki/iofq_test.py b/packages/esssans/tests/loki/iofq_test.py index 5dc0527e3..4d445b867 100644 --- a/packages/esssans/tests/loki/iofq_test.py +++ b/packages/esssans/tests/loki/iofq_test.py @@ -111,9 +111,11 @@ def test_pipeline_can_compute_IofQ_in_event_mode( sc.values(reference.data), sc.values(result.hist().data), # Could be 1e-11, but currently the workflow defaults to float32 data, as - # returned by ScippNexus. + # returned by ScippNexus. The background subtraction cancels most of the + # signal, so a single ulp of the unsubtracted intensity shows up here as a + # much larger deviation. rtol=sc.scalar(1e-7), - atol=sc.scalar(1e-7), + atol=sc.scalar(1e-6), ) if uncertainties == UncertaintyBroadcastMode.drop: # Could both be 1e-14 if using float64 diff --git a/packages/esssans/tests/loki/reference_IofQ_UncertaintyBroadcastMode.drop.hdf5 b/packages/esssans/tests/loki/reference_IofQ_UncertaintyBroadcastMode.drop.hdf5 index 1742644c3534b2388b0bba56ef7b42b84b22dcf1..0ca6d0e1c8c3efdf4980afc52be204806eed0bb7 100644 GIT binary patch delta 817 zcmWN_eNfYN7yxh%7V?`0IAx*{$dP9QvlYwl^TqRdeuU83*T*6F87pQ7F{I+|Qwk>SX2tkw=i=tWhF zMKli(X{bW>gP)fdC0=beF zQC*va3f}c41Al?pM;0)%XBJnkm_d*{!VOjr{!~1U@h^vwkGOHjc^5AZ4C3jXJ!sw9 zi*@UIv7@&e!^Upo>MyjdsPb>aT?038|Gq|S@U)}lMgzXuP>s&XT6{ip8MiD{U~GOZ zib>Vj8dZs7*=0Dltqi~VqZE&OD=^Y%#hWf0PG2!&z|m4H*=|93j2UyjGh*5^Gsgd% zi#G)W9w;_pf0Gfzn+@1spO0O6IoPPJ(Btd7&tPDS3AIysxZ{EjFIC0IrDh3n9lAjt zve?NJ{PjF4D2X>qWBI7BjJr?H!kxfwXpvU~brgYVX&xMOr$KAVJ`kN-;MP?Jo@oWN zheW`K7CD%H4~A2UMX)YV0)K}3fWi8l{V?TaO34$Zof+}4<-!L(SHRu9p)g+@4&}pZz`b)VJWNyqZGRgUDpfFHkJCcUTU$Z+W;f(& z)L?AZK=Du_MB6`wXZ@M*ZNf>IsxO2yt^&wSF~R|*4W5kt2pj({2c@$S(%o%vU3VP@ z9UTz)kqf^5?H(vPCqNoH1;)j`{KVr0kd-dsAABCn&)LKHh4AeUBZ^QM4@?#*(vxIOcke;oUvBET|Xth3#mwK1Ih+Gmfg8aA3{xfmUg zhp#)caeuT4*R`5ZapM45rC=jQ{hEuLhL2!zYbH)K8}OIHsL0f8dF0Atjl60?3Fi}x zyb%(3lGj|W@=@^MZ9^d3>*1015>!4o3h#Zhptmj=mZz+N>py%AW&I3%oiibPsXw$V z@P!biH^k5PfZ4S&Fo%5v)`WK~MDJp`=lYoBGWW2l8=MU8J!6AK-OMiUVo4EQEXCfz zVinJrcjt3<`_KzE=K70?;@7MuYk+MJA7<0zM%g>{2X?!DoCVK!gCV0kyiJfpMc~I^ zuU5eN4GQS_b_$#>nF8+pey~HMfr5ZQXb230&wb{=OWiy$L_|uUd=mp^&1%@y6bG^8 z@o-qS4o2=ILgc&*@bcUbveInuGnl}fkpmSWR?zYy&?lY(uP=WG|4(nh?D{`I*I5M` z<^XL$8$8W;0n@hhfzRMLbd-+6KBFfOxUAp{tEcnCRiE)s^5=4o!?XC4e+0i~ni0(# qTUYY+$#MK*>UOSZ+{kly2JhaP$IEse<#msbaKo(=zxk^VO#L6`qhmn; diff --git a/packages/esssans/tests/loki/reference_IofQxy_UncertaintyBroadcastMode.drop.hdf5 b/packages/esssans/tests/loki/reference_IofQxy_UncertaintyBroadcastMode.drop.hdf5 index c5851a6ccae27b038441fd11f06612e30b8b38f3..30b3af3d272e354189b0e00dcbb562792fed01d4 100644 GIT binary patch delta 52167 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 or|;v!Q7;@31=gd#ofuONO4+Y@`%* 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 delta 52175 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 T;rtmh5*;MeE02Be8U6nO;hLi+