From 7d740014e0c0b35aae521f776780e612954651fa Mon Sep 17 00:00:00 2001 From: Michael Wetter Date: Fri, 11 Oct 2019 08:57:13 -0700 Subject: [PATCH 01/17] Updated specification for parameter assignments For #65 --- specification/source/cdl.rst | 144 +++++++++++++++++++++++++++--- specification/source/glossary.rst | 8 ++ 2 files changed, 140 insertions(+), 12 deletions(-) diff --git a/specification/source/cdl.rst b/specification/source/cdl.rst index e0a6505d..61ec5d77 100644 --- a/specification/source/cdl.rst +++ b/specification/source/cdl.rst @@ -220,25 +220,29 @@ Instantiation .. _sec_ass_val_to_ins: -Declaration and Assigning Values to Instances -............................................. +Declaration and Assigning Values to Parameters +.............................................. -Instantiation is identical to Modelica. +*Parameters* are values that do not depend on time. +The values of parameters can be changed during run-time through a user +interaction with the control program (such as to change a control gain), +unless a parameter is a :term:`structural parameter `. + +Instantiation of blocks and parameters is identical to Modelica, +except that parameter assignment can only be literals (such as `double`, `integer` or +arrays of literals). Hence, no calculations are allowed in parameter assignments. [For example, to instantiate a gain, one would write .. code-block:: modelica - Continuous.Gain myGain(k=-1) "Constant gain of -1" annotation(...); + Continuous.Gain gai(k=-1) "Constant gain of -1" annotation(...); where the documentation string is optional. The annotations is typically used -for the graphical positioning of the instance in a block-diagram. -] +for the graphical positioning of the instance in a block-diagram.] -In the assignment of ``parameters``, calculations are allowed. - -[For example, a hysteresis block could be configured as follows +The following is not allowed .. code-block:: modelica @@ -248,7 +252,123 @@ In the assignment of ``parameters``, calculations are allowed. uLow = pRel-25, uHigh = pRel+25) "Hysteresis for fan control"; -] + +Propagation of parameter values +_______________________________ + +All run-time calculations must be graphically using ``blocks`` and ``connect`` statements, +while simple one-to-one parameter assignment are allowed. +For example, consider + +.. code-block:: modelica + + parameter Real s = 1; + Continuous.Sources.Constant con(k=s); + equation + connect(con.y, someBlock.u); + + +A translator can translate this in two possible way, called a) and b) below. +Option a) is for translators that will preserve the ``parameter`` declaration and its dependencies after the translation, +such as any Modelica-based tools. This option allows any Modelica GUI to expose to the +modeller the parameters so that she/he can change the values. +Option b) is for translators that will remove the dependencies, such as ALC Eikon. In these programs, +building operators would open the graphical panes and change the value in a ``Constant`` block. + +Using option a), the translator will generate code such as the pseude-code below + +.. code-block:: C + + s = value_from_gui(instanceName="s", startValue=1); + con.k = s; + someBlock.u = con.k; + +In this case, stoping the simulation, setting a new value of ``s=2`` and continuing the simulation will +cause ``s = con.k = someBlock.u``. [This is the way FMUs implement it. +The pseudo-function ``value_from_gui`` may show to the building operator +a window in which the value for ``s`` can be changed during run-time.] +If a building automation system does not support such a dependency, the translator can generate code using option b), +which will result in + +.. code-block:: modelica + + Continuous.Sources.Constant s(k=1); + equation + connect(s.y, someBlock.u); + +or using pseude-code + +.. code-block:: C + + s = value_from_gui(instanceName="s", startValue=1); + someBlock.u = s; + +If option b) is used, then the translator must remove the declaration ``parameter Real s=1;`` +(there is no longer anything dependent on the parameter ``s``), and rename the instance ``con`` to ``s``, +which will ensure that the documentation of the sequence, which may describe what ``s`` is, remains correct. +Note that for option b), the propagation of the parameter value is through block-diagram modeling only. + +For option b) to work, we impose the following constraints on CDL. + +First, parameters must only be assigned to one instance if this assignment is declared as ``final``. For example + +.. code-block:: modelica + + parameter Real samplePeriod = 60; + Discrete.Sampler sam1(final samplePeriod = samplePeriod); + Discrete.Sampler sam2(final samplePeriod = samplePeriod); + +is not valid and ``modelica-json`` will stop with an error. +[This is because a translator may translate this, using option b) above, to + +.. code-block:: C + + sam1.samplePeriod = 60; + sam2.samplePeriod = 60; + +at which point a user cannot change the value anymore, causing the translated program to be less flexible.] + +Second, non-final assignments of parameters to multiple instances are allowed, e.g., + +.. code-block:: modelica + + parameter Real samplePeriod = 60; + Discrete.Sampler sam1(samplePeriod = samplePeriod); + Discrete.Sampler sam2(samplePeriod = samplePeriod); + +because the programmer of the above statement did not enforce +``sam1.samplePeriod = sam2.samplePeriod``. +Hence, if a translator implements option b) above, it can translate it to + +.. code-block:: C + + + sam1.samplePeriod = value_from_gui(instanceName="sam1.samplePeriod", startValue = 60); + sam2.samplePeriod = value_from_gui(instanceName="sam2.samplePeriod", startValue = 60); + +and a user can change each value individually, which she/he can also do if option a) is selected. + +Third, if ``sam1.samplePeriod = sam2.samplePeriod = samplePeriod`` must be enforced for the logic to work correctly, +then the controller must be built in CDL such that ``sam1`` and ``sam2`` +exposes an input for the value of ``samplePeriod``, and the upper controller declares + +.. code-block:: modelica + + parameter Real samplePeriod = 60; + Continuous.Sources.Constant con(final k=samplePeriod); + Discrete.Sampler sam1(use_samplePeriod_in = true); // note that this requires a redesign of Sampler + Discrete.Sampler sam2(use_samplePeriod_in = true); // note that this requires a redesign of Sampler + equation + connect(sam1.samplePeriod_in, con.y); + connect(sam2.samplePeriod_in, con.y); + +Translators that choose option b) in the translation can then generate code, as above, of the form + +.. code-block:: C + + samplePeriod.k = value_from_gui(instanceName="samplePeriod.k", startValue=60); + +and all downstream calculation are done through block-diagram modeling only. .. _sec_con_rem_ins: @@ -272,11 +392,11 @@ An example code snippet is "Number of occupants" annotation (__cdl(default = 0)); - CDL.Continuous.Gain gai( + CDL.Continuous.Sources.Constant con( k = VOutPerPer_flow) if have_occSen "Outdoor air per person"; equation - connect(nOcc, gai.u); + connect(nOcc, con.u); By the Modelica language definition, all connections (:numref:`sec_connections`) to ``nOcc`` will be removed if ``have_occSen = false``. diff --git a/specification/source/glossary.rst b/specification/source/glossary.rst index 2d9d3d74..5d14d826 100644 --- a/specification/source/glossary.rst +++ b/specification/source/glossary.rst @@ -151,6 +151,14 @@ the Open Building Controls project. has a state event when :math:`x=1`. + Structural parameter + We say that a parameter is a *structural parameter* if changing its value can change + the system of equations that is being evaluated in the control logic. + For example, a parameter that changes a controller from a P to a PI controller is a + structural parameter because an integrator is being added. + A parameter that enables an input or that changes the size of an array is a structural + parameter. + Time event We say that a simulation has a time event if its model changes based on a test that only depends on time. For example, From b54b95ccb2c3d5bb33f16b399a8281fc6706f10c Mon Sep 17 00:00:00 2001 From: Michael Wetter Date: Fri, 3 Jan 2020 13:39:19 -0800 Subject: [PATCH 02/17] Added parameter assignments --- specification/source/cdl.rst | 272 +++++++++++++++++++++++++---------- 1 file changed, 199 insertions(+), 73 deletions(-) diff --git a/specification/source/cdl.rst b/specification/source/cdl.rst index 61ec5d77..b7073575 100644 --- a/specification/source/cdl.rst +++ b/specification/source/cdl.rst @@ -5,6 +5,18 @@ Control Description Language This section specifies the Control Description Language (CDL). +CDL is a declarative language that can be used to express control sequences using block-diagrams. +It is designed in such a way that it can be used to conveniently specify building control sequences +in a vendor-independent format, use them within whole building energy simulation, +and translate them for use in building control systems. +This section describes the CDL language. Its translation is described in +:numref:`sec_code_gen`. +A collection of control sequences, primarily from ASHRAE Guideline 36, is available +from the Modelica Buildings Library at https://simulationresearch.lbl.gov/modelica/. +A tool to export CDL into a JSON intermediate format that +can be used to translate to commercial building automation systems, a process that we prototype in 2019/20, is +available at https://github.com/lbl-srg/modelica-json. + The CDL consists of the following elements: @@ -56,6 +68,7 @@ Also, the following Modelica language features are not supported in CDL: models as far as CDL is concerned and thus CDL compliant tools need not parse the ``algorithm`` section.] #. ``initial equation`` and ``initial algorithm`` sections. +#. ``connnect`` statements that carry non-scalar values. .. _sec_cld_per_typ: @@ -104,6 +117,8 @@ one or several iterators, for example and with a ``fill`` function. Arrays may also be concatenated using ``cat``. +The size of arrays will be fixed at translation. It cannot be changed during run-time. + [``enumeration`` or ``Boolean`` data types are not permitted as array indices.] See the Modelica 3.3 specification Chapter 10 for array notation and these @@ -177,8 +192,9 @@ composite blocks (:numref:`sec_com_blo`). and open ``Buildings/package.mo`` in the graphical model editor of `Dymola `_ or `OpenModelica `_. - All models in the `Examples` and `Validation` packages can be simulated with these tools. - They can also be simulated with `JModelica `_. + All models in the `Examples` and `Validation` packages can be simulated with these tools, as well + as with `OPTIMICA `_ and + with `JModelica `_. An actual implementation of an elementary building block looks as follows, where we omitted the annotations that are @@ -189,11 +205,9 @@ used for graphical rendering: block AddParameter "Output the sum of an input plus a parameter" parameter Real p "Value to be added"; - parameter Real k "Gain of input"; Interfaces.RealInput u "Connector of Real input signal"; - Interfaces.RealOutput y "Connector of Real output signal"; equation @@ -228,9 +242,56 @@ The values of parameters can be changed during run-time through a user interaction with the control program (such as to change a control gain), unless a parameter is a :term:`structural parameter `. -Instantiation of blocks and parameters is identical to Modelica, -except that parameter assignment can only be literals (such as `double`, `integer` or -arrays of literals). Hence, no calculations are allowed in parameter assignments. +The declaration of parameters and their values is identical to Modelica, +except that parameter assignment can only be +literals (such as ``Real``, ``Integer`` and ``Boolean``) and +arrays of literals. In addition, for ``Boolean`` parameters, expressions involving +``and``, ``or`` and ``not`` are allowed. +For ``Real`` and ``Integer``, expressions are allowe that involving + +- the basic arithmetic functions ``+``, ``-``, ``*``, ``-``, +- the relations ``>``, ``>=``, ``<``, ``<=``, ``==``, ``<>``, +- calls to the functions listed in :numref:`tab_par_fun`. + +.. _tab_par_fun: + +.. table:: Functions that are allowed in parameter assignments. The functions + are consistent with Modelica 3.3. + + ================ =========================================================== + Function Descrition + ================ =========================================================== + ``abs(v)`` Absolute value of ``v``. + ``sign(v)`` Which returns ``if v>0 then 1 else if v<0 then –1 else 0``. + ``sqrt(v)`` Returns the square root of ``v`` if ``v >=0``, or an error otherwise. + ``div(x, y)`` Returns the algebraic quotient ``x/y`` with any fractional + part discarded (also known as truncation toward zero). + [Note: this is defined for ``/`` in C99; in C89 the result for + negative numbers is implementation-defined, + so the standard function div() must be used.]. + Result and arguments shall have type ``Real`` or ``Integer``. + If either of the arguments is ``Real`` the result is ``Real`` + otherwise ``Integer``. + ``mod(x, y)`` Returns the integer modulus of ``x/y`` , i.e. + ``mod(x,y)=x-floor(x/y)*y``. Result and + arguments shall have type ``Real`` or ``Integer``. + If either of the arguments is ``Real`` the + result is ``Real`` otherwise ``Integer``. + [Examples ``mod(3,1.4)=0.2``, ``mod(-3,1.4)=1.2``, ``mod(3,-1.4)=-1.2``.] + ``rem(x,y)`` Returns the integer remainder of ``x/y``, such that + ``div(x,y)*y + rem(x, y) = x``. + Result and arguments shall have type ``Real`` or ``Integer``. + If either of the arguments is ``Real`` the result is ``Real`` otherwise + ``Integer``. [Examples ``rem(3,1.4)=0.2``, ``rem(-3,1.4)=-0.2``.] + ``ceil(x)`` Returns the smallest integer not less than ``x``. + Result and argument shall have type ``Real``. + ``floor(x)`` Returns the largest integer not greater than ``x``. + Result and argument shall have type ``Real``. + ``integer(x)`` Returns the largest integer not greater than ``x``. + The argument shall have type Real. + The result has type Integer. + ================ =========================================================== + [For example, to instantiate a gain, one would write @@ -242,40 +303,121 @@ where the documentation string is optional. The annotations is typically used for the graphical positioning of the instance in a block-diagram.] -The following is not allowed +Using expressions in parameter assignments, and propagating values of parameters +in a hierarchical formulation of a control sequence, are convenient language constructs +to express relations between +parameters. However, most of today's building control product lines do not support +propagation of parameter values and evaluation of expressions in parameter assignments. +For CDL to be compatible with this limitation, the Modelica-CDL to JSON translator +has optional flags, described below, that trigger the evaluation of propagated parameters, +and that evaluate expressions that involve parameters. +CDL also has a keyword called ``final`` that prevents a declaration to be changed by the user. +This can be used to ensure that parameter values are propagated to lower level controller +in a hierarchical controller in such a way that users can only change their value at the top-level location. +Again, most of today's building control product lines do not support such a language construct. +Therefore, CDL has been designed in such a way that optionally parameter propagations and expressions +that involve parameters can be preserved during the translation, or they can be evaluated. +This is accomplished by imposing certain restrictions on how to use the ``final`` keyword. +The restrictions guarantee that the original intent is maintained even for building control product lines +that do not support the concept of a ``final`` declaration. +The next sections describe how this is implemented in CDL. + + +Evaluation of propagated non-final parameters and evaluation of non-final parameter expressions +_______________________________________________________________________________________________ + +This section only applies to the assignment of parameter values that do not have the ``final`` keyword. + + +Consider the statement .. code-block:: modelica parameter Real pRel(unit="Pa") = 50 "Pressure difference across damper"; + CDL.Continuous.Sources.Constant con( + k = pRel) "Block producing constant output"; CDL.Logical.Hysteresis hys( uLow = pRel-25, uHigh = pRel+25) "Hysteresis for fan control"; +Some building control systems will need to evaluate this at translation because +they cannot propagate parameters and/or cannot evaluate expressions. + +To lower the barrier for a CDL translator, the ``modelica-json`` translator +(see also :numref:`sec_cdl_to_json_simp`) has two flags. +One flag, called ``evaluatePropagatedParameters`` will cause the translator to evaluate the propagated parameter, +leading to a JSON declaration that is equivalent to the declaration + +.. code-block:: modelica + + CDL.Continuous.Sources.Constant con( + k(unit="Pa") = 50) "Block producing constant output"; + CDL.Logical.Hysteresis hys( + uLow = 50-25, + uHigh = 50+25) "Hysteresis for fan control"; + +Note + 1. the ``parameter Real pRel(unit="Pa") = 50`` has been removed as it is no longer used anywhere. + 2. the parameter ``con.k`` has now the ``unit`` attribute set as this information would otherwise be lost. + 3. the parameter ``hys.uLow`` has the unit *not* set because the assignment involves an expression. + +Another flag called ``evaluateExpressions`` will cause all mathematical expressions to be evaluated, +leading in JSON to the equivalent to the declaration + +.. code-block:: modelica + + parameter Real pRel(unit="Pa") = 50 "Pressure difference across damper"; + + CDL.Continuous.Sources.Constant con( + k = pRel) "Block producing constant output"; + CDL.Logical.Hysteresis hys( + uLow = 25, + uHigh = 75) "Hysteresis for fan control"; + +If both ``evaluatePropagatedParameters`` and ``evaluateExpressions`` are set, the result would be +equivalent of the declaration + +.. code-block:: modelica + + CDL.Logical.Hysteresis hys( + uLow = 25, + uHigh = 75) "Hysteresis for fan control"; + + CDL.Continuous.Sources.Constant con( + k(unit="Pa") = 50) "Block producing constant output"; + +.. note:: + + This is being implemented through https://github.com/lbl-srg/modelica-json/issues/102 + -Propagation of parameter values -_______________________________ +Propagation of parameter values that use the final keyword +__________________________________________________________ -All run-time calculations must be graphically using ``blocks`` and ``connect`` statements, -while simple one-to-one parameter assignment are allowed. +If the assignment of parameter values involve the ``final`` keyword, then certain restrictions +must be placed to ensure that the declarations of CDL can be preserved when translated +to a building automation system that does not support a ``final`` keyword. +Specifically, only one-to-one parameter assignment are allowed. For example, consider .. code-block:: modelica parameter Real s = 1; - Continuous.Sources.Constant con(k=s); + Continuous.Sources.Constant con(final k=s); // k cannot be set to anything else than s equation connect(con.y, someBlock.u); -A translator can translate this in two possible way, called a) and b) below. -Option a) is for translators that will preserve the ``parameter`` declaration and its dependencies after the translation, +A translator from CDL to the JSON intermediate format and from their the the control product line +can translate this in two possible way, called *a)* and *b)* below. +Option *a)* is for translators that will preserve the ``parameter`` declaration and its dependencies after the translation, such as any Modelica-based tools. This option allows any Modelica GUI to expose to the modeller the parameters so that she/he can change the values. -Option b) is for translators that will remove the dependencies, such as ALC Eikon. In these programs, +Option *b)* is for translators that will remove the dependencies, such as ALC Eikon. In these programs, building operators would open the graphical panes and change the value in a ``Constant`` block. -Using option a), the translator will generate code such as the pseude-code below +Using option *a)*, the translator will generate code such as the pseude-code below .. code-block:: C @@ -284,11 +426,12 @@ Using option a), the translator will generate code such as the pseude-code below someBlock.u = con.k; In this case, stoping the simulation, setting a new value of ``s=2`` and continuing the simulation will -cause ``s = con.k = someBlock.u``. [This is the way FMUs implement it. +cause ``s = con.k = someBlock.u = 2``. [This is the way FMUs implement it. The pseudo-function ``value_from_gui`` may show to the building operator a window in which the value for ``s`` can be changed during run-time.] -If a building automation system does not support such a dependency, the translator can generate code using option b), -which will result in + +Option *b)* is for building control product lines that do not support such a dependency. +In this case, the generated code will be equivalent to the declaration .. code-block:: modelica @@ -303,23 +446,22 @@ or using pseude-code s = value_from_gui(instanceName="s", startValue=1); someBlock.u = s; -If option b) is used, then the translator must remove the declaration ``parameter Real s=1;`` +If option *b)* is used, then the translator must remove the declaration ``parameter Real s=1;`` (there is no longer anything dependent on the parameter ``s``), and rename the instance ``con`` to ``s``, which will ensure that the documentation of the sequence, which may describe what ``s`` is, remains correct. -Note that for option b), the propagation of the parameter value is through block-diagram modeling only. - -For option b) to work, we impose the following constraints on CDL. +Note that for option *b)*, the propagation of the parameter value is through block-diagram modeling only. -First, parameters must only be assigned to one instance if this assignment is declared as ``final``. For example +For option *b)* to work, parameters must only be assigned to one instance +if this assignment is declared as ``final``. For example .. code-block:: modelica parameter Real samplePeriod = 60; - Discrete.Sampler sam1(final samplePeriod = samplePeriod); - Discrete.Sampler sam2(final samplePeriod = samplePeriod); + Discrete.Sampler sam1(final samplePeriod = samplePeriod); // not valid + Discrete.Sampler sam2(final samplePeriod = samplePeriod); // not valid is not valid and ``modelica-json`` will stop with an error. -[This is because a translator may translate this, using option b) above, to +This is because a translator may translate this, using option *b)* above, to .. code-block:: C @@ -328,47 +470,14 @@ is not valid and ``modelica-json`` will stop with an error. at which point a user cannot change the value anymore, causing the translated program to be less flexible.] -Second, non-final assignments of parameters to multiple instances are allowed, e.g., - -.. code-block:: modelica - - parameter Real samplePeriod = 60; - Discrete.Sampler sam1(samplePeriod = samplePeriod); - Discrete.Sampler sam2(samplePeriod = samplePeriod); - -because the programmer of the above statement did not enforce -``sam1.samplePeriod = sam2.samplePeriod``. -Hence, if a translator implements option b) above, it can translate it to - -.. code-block:: C - - - sam1.samplePeriod = value_from_gui(instanceName="sam1.samplePeriod", startValue = 60); - sam2.samplePeriod = value_from_gui(instanceName="sam2.samplePeriod", startValue = 60); - -and a user can change each value individually, which she/he can also do if option a) is selected. - -Third, if ``sam1.samplePeriod = sam2.samplePeriod = samplePeriod`` must be enforced for the logic to work correctly, -then the controller must be built in CDL such that ``sam1`` and ``sam2`` -exposes an input for the value of ``samplePeriod``, and the upper controller declares - -.. code-block:: modelica - - parameter Real samplePeriod = 60; - Continuous.Sources.Constant con(final k=samplePeriod); - Discrete.Sampler sam1(use_samplePeriod_in = true); // note that this requires a redesign of Sampler - Discrete.Sampler sam2(use_samplePeriod_in = true); // note that this requires a redesign of Sampler - equation - connect(sam1.samplePeriod_in, con.y); - connect(sam2.samplePeriod_in, con.y); - -Translators that choose option b) in the translation can then generate code, as above, of the form - -.. code-block:: C - - samplePeriod.k = value_from_gui(instanceName="samplePeriod.k", startValue=60); +.. note:: -and all downstream calculation are done through block-diagram modeling only. + If ``sam1.samplePeriod = sam2.samplePeriod = samplePeriod`` must be enforced for the logic to work correctly, + then the controller can be implemented using + `CDL.Logical.Sources.SampleTrigger `_ + and connect its output to instances of + `CDL.Discrete.TriggeredSampler `_ + that sample the corresponding signals. .. _sec_con_rem_ins: @@ -409,6 +518,7 @@ must declare a default value of the form ``__cdl(default = value)``, where ``value`` is the default value that will be used if the building automation system does not support conditionally removing instances. The type of ``value`` must be the same as the type of the connector. +For ``Boolean`` connectors, the allowed values are ``true`` and ``false``. Note that output connectors must not have a specification of a default value, because if a building automation system cannot conditionally remove instances, @@ -480,9 +590,25 @@ For scalar connectors, each input connector of a block needs to be connected to one output connector of a block. For vectorized connectors, each (element of an) input connector needs to be connected to exactly one (element of an) output connector. -Vectorized input connectors can be connected to vectorized output connectors -using one connection statement provided that -they have the same number of elements. +Unlike in Modelica, a ``connect`` statement can only connect scalar variables or an +individual element of a vectorized input/output port. + +[Hence, the following is not valid: + +.. code-block:: modelica + + CDL.Continuous.Sources.Constant con[2](k={1, 1}) "Constant producing the output [1, 1]"; + CDL.Continuous.MultiSum sum(nin=2) "Block that outputs the sum of its inputs"; + + equation + connect(con.y, sum.u); // Not valid + +] + +.. note:: In future extension, we will consider to allow vectorized input connectors + to be connected to vectorized output connectors, using one connection statement provided that + they have the same number of elements. This may be required for control sequences that + stage multiple chillers as developed in ASHRAE RP 1711. Connections are listed after the instantiation of the blocks in an ``equation`` section. The syntax is @@ -546,7 +672,7 @@ Modelica 3.3 Specifications [For CDL, annotations are primarily used to graphically visualize block layouts, graphically visualize input and output signal connections, and to declare -vendor annotations, (Sec. 18.1 in Modelica 3.3 Specification), like to specify default +vendor annotations, (Sec. 18.1 in Modelica 3.3 Specification), such as to specify default value of connector as below.] CDL also uses annotations to declare default values for conditionally removable input @@ -576,7 +702,7 @@ with the file extension ``.mo``, and with each package name being a directory. The name shall be an allowed Modelica class name. [For example, if a user specifies a new composite block ``MyController.MyAdder``, then it -shall be stored in the file ``MyController/MyAdder.mo`` on Linux or OS X, or ``MyController\\MyAdder.mo`` +shall be stored in the file ``MyController/MyAdder.mo`` on Linux or OS X, or ``MyController\MyAdder.mo`` on Windows.] From 4953cce9fa9ce3d8b2d13d37ef0d157838cb5f84 Mon Sep 17 00:00:00 2001 From: Michael Wetter Date: Fri, 3 Jan 2020 13:52:27 -0800 Subject: [PATCH 03/17] Added parameter assignments --- specification/source/cdl.rst | 44 ++++++++++++++++++++++++++++++++---- 1 file changed, 39 insertions(+), 5 deletions(-) diff --git a/specification/source/cdl.rst b/specification/source/cdl.rst index b7073575..5171b7c4 100644 --- a/specification/source/cdl.rst +++ b/specification/source/cdl.rst @@ -3,18 +3,53 @@ Control Description Language ---------------------------- +Introduction +^^^^^^^^^^^^ + + This section specifies -the Control Description Language (CDL). -CDL is a declarative language that can be used to express control sequences using block-diagrams. +the Control Description Language (CDL), +a declarative language that can be used to express control sequences using block-diagrams. It is designed in such a way that it can be used to conveniently specify building control sequences in a vendor-independent format, use them within whole building energy simulation, and translate them for use in building control systems. + +To put CDL in context, and to introduce terminology, xxx shows the translation of CDL to a control product line +or to English language documentation. +Input into the translation is CDL. An open-source tool called ``modelica-json`` translator +(see also :numref:`sec_cdl_to_json_simp` and https://github.com/lbl-srg/modelica-json) +translates CDL to an intermediate format that we call CDL-JSON. +From CDL-JSON, further translations can be done to a control product line, or to +generate point lists or English language documentation of the control sequences. + +.. _fig_cdl_pro_lin: + +.. uml:: + :caption: Translation of CDL to the JSON-CDL intermediate format and to a product lines or + English language documentation. + + :width: 550 px + + skinparam componentStyle uml2 + + scale 450 width + + [CDL] + + [JSON-CDL] + + [CDL] -r-> [JSON-CDL] : translate + + + + + This section describes the CDL language. Its translation is described in :numref:`sec_code_gen`. A collection of control sequences, primarily from ASHRAE Guideline 36, is available from the Modelica Buildings Library at https://simulationresearch.lbl.gov/modelica/. A tool to export CDL into a JSON intermediate format that -can be used to translate to commercial building automation systems, a process that we prototype in 2019/20, is +can be used to translate to commercial building automation systems, a process that we have been prototyping in 2019/20, is available at https://github.com/lbl-srg/modelica-json. @@ -344,8 +379,7 @@ Consider the statement Some building control systems will need to evaluate this at translation because they cannot propagate parameters and/or cannot evaluate expressions. -To lower the barrier for a CDL translator, the ``modelica-json`` translator -(see also :numref:`sec_cdl_to_json_simp`) has two flags. +To lower the barrier for a CDL translator, the ``modelica-json`` translator has two flags. One flag, called ``evaluatePropagatedParameters`` will cause the translator to evaluate the propagated parameter, leading to a JSON declaration that is equivalent to the declaration From b23b651e1b3cddcfea7ac6f54f96ce7f447750ce Mon Sep 17 00:00:00 2001 From: Michael Wetter Date: Fri, 3 Jan 2020 14:38:38 -0800 Subject: [PATCH 04/17] Revised parameter assignments --- specification/source/_static/custom.css | 35 ++++---- specification/source/cdl.rst | 115 +++++++++++++----------- specification/source/glossary.rst | 5 ++ 3 files changed, 87 insertions(+), 68 deletions(-) diff --git a/specification/source/_static/custom.css b/specification/source/_static/custom.css index 3b446165..609fe445 100644 --- a/specification/source/_static/custom.css +++ b/specification/source/_static/custom.css @@ -111,14 +111,30 @@ a:link, a:hover, a:visited, a:focus{ } td{ - padding-inline-start: 15px; + padding: 0px !important;; + padding-left: 10px !important; +} +td.label{ + color: #022e4d; } -code, pre{ -border: 0; -color: #750000; +table.citation > thead > tr > th, .table.citation > tbody > tr > th, .table.citation > tfoot > tr > th, .table.citation > thead > tr > td, .table.citation > tbody > tr > td, .table.citation > tfoot > tr > td{ + border: none; +} + +#references.section{ + color: #022e4d; +} + +.caption-text, .caption-number{ + color: #022e4d; + font-style:italic; +} +code, pre{ + border: 0; + color: #750000; } #markdown-toc{ @@ -127,17 +143,6 @@ color: #750000; background-color: #f0f0f0; } - -td.label{ - color: #022e4d; -} -table.citation > thead > tr > th, .table.citation > tbody > tr > th, .table.citation > tfoot > tr > th, .table.citation > thead > tr > td, .table.citation > tbody > tr > td, .table.citation > tfoot > tr > td{ - border: none; -} -#references.section{ - color: #022e4d; -} - h1{ font-size: 2em; } diff --git a/specification/source/cdl.rst b/specification/source/cdl.rst index 5171b7c4..1c7d8ae4 100644 --- a/specification/source/cdl.rst +++ b/specification/source/cdl.rst @@ -14,41 +14,47 @@ It is designed in such a way that it can be used to conveniently specify buildin in a vendor-independent format, use them within whole building energy simulation, and translate them for use in building control systems. -To put CDL in context, and to introduce terminology, xxx shows the translation of CDL to a control product line +To put CDL in context, and to introduce terminology, :numref:`fig_cdl_pro_lin` shows the translation of CDL to a control product line or to English language documentation. Input into the translation is CDL. An open-source tool called ``modelica-json`` translator -(see also :numref:`sec_cdl_to_json_simp` and https://github.com/lbl-srg/modelica-json) -translates CDL to an intermediate format that we call CDL-JSON. +(see also :numref:`sec_cdl_to_json_simp` and https://github.com/lbl-srg/modelica-json) +translates CDL to an intermediate format that we call :term:`CDL-JSON`. From CDL-JSON, further translations can be done to a control product line, or to generate point lists or English language documentation of the control sequences. .. _fig_cdl_pro_lin: .. uml:: - :caption: Translation of CDL to the JSON-CDL intermediate format and to a product lines or - English language documentation. - + :caption: Translation of CDL to the CDL-JSON intermediate format and to a product lines or English language documentation. :width: 550 px skinparam componentStyle uml2 - scale 450 width - [CDL] - [JSON-CDL] + [CDL-JSON] + + [control product line] + + [point list] + + [English language documentation] - [CDL] -r-> [JSON-CDL] : translate + [CDL] -d-> [CDL-JSON] + [CDL-JSON] --> [control product line] + [CDL-JSON] --> [point list] + [CDL-JSON] --> [English language documentation] -This section describes the CDL language. Its translation is described in + +This section describes the CDL language. Its translation using ``modelica-json``, or other means of translation, is described in :numref:`sec_code_gen`. A collection of control sequences, primarily from ASHRAE Guideline 36, is available from the Modelica Buildings Library at https://simulationresearch.lbl.gov/modelica/. -A tool to export CDL into a JSON intermediate format that +A tool to export CDL into the CDL-JSON intermediate format that can be used to translate to commercial building automation systems, a process that we have been prototyping in 2019/20, is available at https://github.com/lbl-srg/modelica-json. @@ -71,7 +77,7 @@ The CDL consists of the following elements: * A model of computation that describes when blocks are executed and when outputs are assigned to inputs. -The next sections explain the elements of CDL. +The next sections define the CDL language. Syntax @@ -290,34 +296,40 @@ For ``Real`` and ``Integer``, expressions are allowe that involving .. _tab_par_fun: + .. table:: Functions that are allowed in parameter assignments. The functions are consistent with Modelica 3.3. + :widths: 15 80 ================ =========================================================== Function Descrition ================ =========================================================== ``abs(v)`` Absolute value of ``v``. - ``sign(v)`` Which returns ``if v>0 then 1 else if v<0 then –1 else 0``. + ``sign(v)`` Returns ``if v>0 then 1 else if v<0 then –1 else 0``. ``sqrt(v)`` Returns the square root of ``v`` if ``v >=0``, or an error otherwise. ``div(x, y)`` Returns the algebraic quotient ``x/y`` with any fractional part discarded (also known as truncation toward zero). [Note: this is defined for ``/`` in C99; in C89 the result for negative numbers is implementation-defined, - so the standard function div() must be used.]. + so the standard function ``div()`` must be used.]. Result and arguments shall have type ``Real`` or ``Integer``. If either of the arguments is ``Real`` the result is ``Real`` - otherwise ``Integer``. + otherwise it is ``Integer``. ``mod(x, y)`` Returns the integer modulus of ``x/y`` , i.e. ``mod(x,y)=x-floor(x/y)*y``. Result and arguments shall have type ``Real`` or ``Integer``. If either of the arguments is ``Real`` the - result is ``Real`` otherwise ``Integer``. - [Examples ``mod(3,1.4)=0.2``, ``mod(-3,1.4)=1.2``, ``mod(3,-1.4)=-1.2``.] + result is ``Real`` otherwise it is ``Integer``. + + [Examples are ``mod(3,1.4)=0.2``, ``mod(-3,1.4)=1.2`` and + ``mod(3,-1.4)=-1.2``.] ``rem(x,y)`` Returns the integer remainder of ``x/y``, such that ``div(x,y)*y + rem(x, y) = x``. Result and arguments shall have type ``Real`` or ``Integer``. - If either of the arguments is ``Real`` the result is ``Real`` otherwise - ``Integer``. [Examples ``rem(3,1.4)=0.2``, ``rem(-3,1.4)=-0.2``.] + If either of the arguments is ``Real`` the result is ``Real`` + otherwise it is ``Integer``. + + [Examples are ``rem(3,1.4)=0.2`` and ``rem(-3,1.4)=-0.2``.] ``ceil(x)`` Returns the smallest integer not less than ``x``. Result and argument shall have type ``Real``. ``floor(x)`` Returns the largest integer not greater than ``x``. @@ -343,19 +355,19 @@ in a hierarchical formulation of a control sequence, are convenient language con to express relations between parameters. However, most of today's building control product lines do not support propagation of parameter values and evaluation of expressions in parameter assignments. -For CDL to be compatible with this limitation, the Modelica-CDL to JSON translator +For CDL to be compatible with this limitation, the ``modelica-json`` translator has optional flags, described below, that trigger the evaluation of propagated parameters, and that evaluate expressions that involve parameters. CDL also has a keyword called ``final`` that prevents a declaration to be changed by the user. -This can be used to ensure that parameter values are propagated to lower level controller -in a hierarchical controller in such a way that users can only change their value at the top-level location. +This can be used in a hierarchical controller to ensure that parameter values are propagated to lower level controller +in such a way that users can only change their value at the top-level location. Again, most of today's building control product lines do not support such a language construct. Therefore, CDL has been designed in such a way that optionally parameter propagations and expressions that involve parameters can be preserved during the translation, or they can be evaluated. -This is accomplished by imposing certain restrictions on how to use the ``final`` keyword. -The restrictions guarantee that the original intent is maintained even for building control product lines -that do not support the concept of a ``final`` declaration. -The next sections describe how this is implemented in CDL. +To guarantee that the original intent is maintained even for building control product lines +that do not support the concept of a ``final`` declaration, certain +restrictions are imposed on how to use the ``final`` keyword. +The next sections describe the propagation of parameters without and with the ``final`` keyword. Evaluation of propagated non-final parameters and evaluation of non-final parameter expressions @@ -376,12 +388,12 @@ Consider the statement uLow = pRel-25, uHigh = pRel+25) "Hysteresis for fan control"; -Some building control systems will need to evaluate this at translation because +Some building control product lines will need to evaluate this at translation because they cannot propagate parameters and/or cannot evaluate expressions. To lower the barrier for a CDL translator, the ``modelica-json`` translator has two flags. One flag, called ``evaluatePropagatedParameters`` will cause the translator to evaluate the propagated parameter, -leading to a JSON declaration that is equivalent to the declaration +leading to a CDL-JSON declaration that is equivalent to the declaration .. code-block:: modelica @@ -397,7 +409,7 @@ Note 3. the parameter ``hys.uLow`` has the unit *not* set because the assignment involves an expression. Another flag called ``evaluateExpressions`` will cause all mathematical expressions to be evaluated, -leading in JSON to the equivalent to the declaration +leading to a CDL-JSON declaration that is equivalent to the CDL declaration .. code-block:: modelica @@ -414,13 +426,12 @@ equivalent of the declaration .. code-block:: modelica + CDL.Continuous.Sources.Constant con( + k(unit="Pa") = 50) "Block producing constant output"; CDL.Logical.Hysteresis hys( uLow = 25, uHigh = 75) "Hysteresis for fan control"; - CDL.Continuous.Sources.Constant con( - k(unit="Pa") = 50) "Block producing constant output"; - .. note:: This is being implemented through https://github.com/lbl-srg/modelica-json/issues/102 @@ -431,7 +442,7 @@ __________________________________________________________ If the assignment of parameter values involve the ``final`` keyword, then certain restrictions must be placed to ensure that the declarations of CDL can be preserved when translated -to a building automation system that does not support a ``final`` keyword. +to a control product line that does not support a ``final`` keyword. Specifically, only one-to-one parameter assignment are allowed. For example, consider @@ -443,10 +454,10 @@ For example, consider connect(con.y, someBlock.u); -A translator from CDL to the JSON intermediate format and from their the the control product line -can translate this in two possible way, called *a)* and *b)* below. +A translator from CDL to the CDL-JSON intermediate format +can translate this in two possible ways, called *a)* and *b)* below. Option *a)* is for translators that will preserve the ``parameter`` declaration and its dependencies after the translation, -such as any Modelica-based tools. This option allows any Modelica GUI to expose to the +such as any Modelica-based tool would. This option allows any Modelica GUI to expose to the modeller the parameters so that she/he can change the values. Option *b)* is for translators that will remove the dependencies, such as ALC Eikon. In these programs, building operators would open the graphical panes and change the value in a ``Constant`` block. @@ -460,8 +471,8 @@ Using option *a)*, the translator will generate code such as the pseude-code bel someBlock.u = con.k; In this case, stoping the simulation, setting a new value of ``s=2`` and continuing the simulation will -cause ``s = con.k = someBlock.u = 2``. [This is the way FMUs implement it. -The pseudo-function ``value_from_gui`` may show to the building operator +cause ``s = con.k = someBlock.u = 2``. +[The pseudo-function ``value_from_gui`` may show to the building operator a window in which the value for ``s`` can be changed during run-time.] Option *b)* is for building control product lines that do not support such a dependency. @@ -481,7 +492,7 @@ or using pseude-code someBlock.u = s; If option *b)* is used, then the translator must remove the declaration ``parameter Real s=1;`` -(there is no longer anything dependent on the parameter ``s``), and rename the instance ``con`` to ``s``, +because there is no longer anything dependent on the parameter ``s``, and rename the instance ``con`` to ``s``, which will ensure that the documentation of the sequence, which may describe what ``s`` is, remains correct. Note that for option *b)*, the propagation of the parameter value is through block-diagram modeling only. @@ -489,6 +500,7 @@ For option *b)* to work, parameters must only be assigned to one instance if this assignment is declared as ``final``. For example .. code-block:: modelica + :emphasize-lines: 2,3 parameter Real samplePeriod = 60; Discrete.Sampler sam1(final samplePeriod = samplePeriod); // not valid @@ -528,18 +540,18 @@ An example code snippet is .. code-block:: modelica - parameter Boolean have_occSen=false - "Set to true if zones have occupancy sensor"; + parameter Boolean have_occSen=false + "Set to true if zones have occupancy sensor"; - CDL.Interfaces.IntegerInput nOcc if have_occSen - "Number of occupants" - annotation (__cdl(default = 0)); + CDL.Interfaces.IntegerInput nOcc if have_occSen + "Number of occupants" + annotation (__cdl(default = 0)); - CDL.Continuous.Sources.Constant con( - k = VOutPerPer_flow) if have_occSen - "Outdoor air per person"; - equation - connect(nOcc, con.u); + CDL.Continuous.Sources.Constant con( + k = VOutPerPer_flow) if have_occSen + "Outdoor air per person"; + equation + connect(nOcc, con.u); By the Modelica language definition, all connections (:numref:`sec_connections`) to ``nOcc`` will be removed if ``have_occSen = false``. @@ -678,13 +690,11 @@ For example, the following model is valid .. literalinclude:: img/cdl/MyAdderValid.mo :language: modelica - :linenos: whereas the following implementation is not valid in CDL, although it is valid in Modelica .. literalinclude:: img/cdl/MyAdderInvalid.mo :language: modelica - :linenos: :emphasize-lines: 4 ] @@ -746,7 +756,6 @@ declaration of the composite block shown in :numref:`fig_custom_control_block` .. literalinclude:: img/cdl/CustomPWithLimiter.mo :language: modelica - :linenos: Composite blocks are needed to preserve grouping of control blocks and their connections, and are needed for hierarchical composition of control sequences.] diff --git a/specification/source/glossary.rst b/specification/source/glossary.rst index 5d14d826..b19d8364 100644 --- a/specification/source/glossary.rst +++ b/specification/source/glossary.rst @@ -31,6 +31,11 @@ the Open Building Controls project. CDL See :term:`Controls Description Language`. + CDL-JSON + The JSON representation of the :term:`Controls Description Language`, + which can be generated with the ``modelica-json`` translator that + is available at https://github.com/lbl-srg/modelica-json. + Controls Description Language The Control Description Language (CDL) is the language that is used to express control sequences and requirements. From 37143710b9ade540f30bd1c2244f1767670af472 Mon Sep 17 00:00:00 2001 From: Michael Wetter Date: Fri, 3 Jan 2020 15:10:14 -0800 Subject: [PATCH 05/17] Added functions --- specification/source/cdl.rst | 96 ++++++++++++++++++++++-------------- 1 file changed, 59 insertions(+), 37 deletions(-) diff --git a/specification/source/cdl.rst b/specification/source/cdl.rst index 1c7d8ae4..e8eeeae4 100644 --- a/specification/source/cdl.rst +++ b/specification/source/cdl.rst @@ -301,43 +301,65 @@ For ``Real`` and ``Integer``, expressions are allowe that involving are consistent with Modelica 3.3. :widths: 15 80 - ================ =========================================================== - Function Descrition - ================ =========================================================== - ``abs(v)`` Absolute value of ``v``. - ``sign(v)`` Returns ``if v>0 then 1 else if v<0 then –1 else 0``. - ``sqrt(v)`` Returns the square root of ``v`` if ``v >=0``, or an error otherwise. - ``div(x, y)`` Returns the algebraic quotient ``x/y`` with any fractional - part discarded (also known as truncation toward zero). - [Note: this is defined for ``/`` in C99; in C89 the result for - negative numbers is implementation-defined, - so the standard function ``div()`` must be used.]. - Result and arguments shall have type ``Real`` or ``Integer``. - If either of the arguments is ``Real`` the result is ``Real`` - otherwise it is ``Integer``. - ``mod(x, y)`` Returns the integer modulus of ``x/y`` , i.e. - ``mod(x,y)=x-floor(x/y)*y``. Result and - arguments shall have type ``Real`` or ``Integer``. - If either of the arguments is ``Real`` the - result is ``Real`` otherwise it is ``Integer``. - - [Examples are ``mod(3,1.4)=0.2``, ``mod(-3,1.4)=1.2`` and - ``mod(3,-1.4)=-1.2``.] - ``rem(x,y)`` Returns the integer remainder of ``x/y``, such that - ``div(x,y)*y + rem(x, y) = x``. - Result and arguments shall have type ``Real`` or ``Integer``. - If either of the arguments is ``Real`` the result is ``Real`` - otherwise it is ``Integer``. - - [Examples are ``rem(3,1.4)=0.2`` and ``rem(-3,1.4)=-0.2``.] - ``ceil(x)`` Returns the smallest integer not less than ``x``. - Result and argument shall have type ``Real``. - ``floor(x)`` Returns the largest integer not greater than ``x``. - Result and argument shall have type ``Real``. - ``integer(x)`` Returns the largest integer not greater than ``x``. - The argument shall have type Real. - The result has type Integer. - ================ =========================================================== + ======================== =========================================================== + Function Descrition + ======================== =========================================================== + ``abs(v)`` Absolute value of ``v``. + ``sign(v)`` Returns ``if v>0 then 1 else if v<0 then –1 else 0``. + ``sqrt(v)`` Returns the square root of ``v`` if ``v >=0``, or an error otherwise. + ``div(x, y)`` Returns the algebraic quotient ``x/y`` with any fractional + part discarded (also known as truncation toward zero). + [Note: this is defined for ``/`` in C99; in C89 the result for + negative numbers is implementation-defined, + so the standard function ``div()`` must be used.]. + Result and arguments shall have type ``Real`` or ``Integer``. + If either of the arguments is ``Real`` the result is ``Real`` + otherwise it is ``Integer``. + ``mod(x, y)`` Returns the integer modulus of ``x/y`` , i.e. + ``mod(x,y)=x-floor(x/y)*y``. Result and + arguments shall have type ``Real`` or ``Integer``. + If either of the arguments is ``Real`` the + result is ``Real`` otherwise it is ``Integer``. + + [Examples are ``mod(3,1.4)=0.2``, ``mod(-3,1.4)=1.2`` and + ``mod(3,-1.4)=-1.2``.] + ``rem(x,y)`` Returns the integer remainder of ``x/y``, such that + ``div(x,y)*y + rem(x, y) = x``. + Result and arguments shall have type ``Real`` or ``Integer``. + If either of the arguments is ``Real`` the result is ``Real`` + otherwise it is ``Integer``. + + [Examples are ``rem(3,1.4)=0.2`` and ``rem(-3,1.4)=-0.2``.] + ``ceil(x)`` Returns the smallest integer not less than ``x``. + Result and argument shall have type ``Real``. + ``floor(x)`` Returns the largest integer not greater than ``x``. + Result and argument shall have type ``Real``. + ``integer(x)`` Returns the largest integer not greater than ``x``. + The argument shall have type Real. + The result has type Integer. + ``min(A)`` Returns the least element of array expression ``A``. + ``min(x, y)`` Returns the least element of the scalars ``x`` and ``y``. + ``max(A)`` Returns the greatest element of array expression ``A``. + ``max(x, y)`` Returns the greatest element of the scalars ``x`` and ``y``. + ``sum(...)`` The expression ``sum( e(i, ..., j) for i in u, ..., j in v)`` + returns the sum of the expression ``e(i, ..., j)`` evaluated for all + combinations of ``i`` in + ``u, ..., j in v: e(u[1], ... ,v[1]) + e(u[2], ... ,v[1])+... +e(u[end],... ,v[1])+...+e(u[end],... ,v[end])`` + + The type of ``sum(e(i, ..., j) for i in u, ..., j in v)`` is the same as the type of ``e(i,...j)``. + ``fill(s, n1, n2, ...)`` Returns the :math:`n_1 \times n_2 \times n_3 \times \dots` array with all + elements equal to scalar or array + expression ``s`` (:math:`n_i \ge 0`). + The returned array has the same type as ``s``. + + Recursive definition: + ``fill(s, n1, n2, n3, ...) = fill( fill(s, n2, n3, ...), n1);``, + ``fill(s,n)={s, s, ..., s}`` + + The function needs two or more arguments; that is ``fill(s)`` + is not legal. + ======================== =========================================================== + [For example, to instantiate a gain, one would write From a5352d1d754d1045a34b897d7c1fb2ace13488d6 Mon Sep 17 00:00:00 2001 From: AntoineGautier Date: Tue, 7 Jan 2020 11:13:18 -0800 Subject: [PATCH 06/17] Correct typos --- specification/source/cdl.rst | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/specification/source/cdl.rst b/specification/source/cdl.rst index e8eeeae4..cb5b2a0e 100644 --- a/specification/source/cdl.rst +++ b/specification/source/cdl.rst @@ -25,7 +25,7 @@ generate point lists or English language documentation of the control sequences. .. _fig_cdl_pro_lin: .. uml:: - :caption: Translation of CDL to the CDL-JSON intermediate format and to a product lines or English language documentation. + :caption: Translation of CDL to the CDL-JSON intermediate format and to a product line or English language documentation. :width: 550 px skinparam componentStyle uml2 @@ -109,7 +109,7 @@ Also, the following Modelica language features are not supported in CDL: models as far as CDL is concerned and thus CDL compliant tools need not parse the ``algorithm`` section.] #. ``initial equation`` and ``initial algorithm`` sections. -#. ``connnect`` statements that carry non-scalar values. +#. ``connect`` statements that carry non-scalar values. .. _sec_cld_per_typ: @@ -120,7 +120,7 @@ Permissible Data Types The basic data types are, in addition to the elementary building blocks, parameters of type ``Real``, ``Integer``, ``Boolean``, ``String``, and ``enumeration``. -[Parameters do not change their value as time progress.] +[Parameters do not change their value as time progresses.] See also the Modelica 3.3 specification, Chapter 3. All specifications in CDL shall be declaration of blocks, instances of blocks, or declarations of type ``parameter``, @@ -288,7 +288,7 @@ except that parameter assignment can only be literals (such as ``Real``, ``Integer`` and ``Boolean``) and arrays of literals. In addition, for ``Boolean`` parameters, expressions involving ``and``, ``or`` and ``not`` are allowed. -For ``Real`` and ``Integer``, expressions are allowe that involving +For ``Real`` and ``Integer``, expressions are allowed that involve - the basic arithmetic functions ``+``, ``-``, ``*``, ``-``, - the relations ``>``, ``>=``, ``<``, ``<=``, ``==``, ``<>``, @@ -369,7 +369,7 @@ For ``Real`` and ``Integer``, expressions are allowe that involving Continuous.Gain gai(k=-1) "Constant gain of -1" annotation(...); where the documentation string is optional. -The annotations is typically used +The annotation is typically used for the graphical positioning of the instance in a block-diagram.] Using expressions in parameter assignments, and propagating values of parameters From 5344b6633711df9392b2ff1afdf4e06411beff56 Mon Sep 17 00:00:00 2001 From: AntoineGautier Date: Tue, 7 Jan 2020 13:42:13 -0800 Subject: [PATCH 07/17] Correct typo --- specification/source/cdl.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/specification/source/cdl.rst b/specification/source/cdl.rst index cb5b2a0e..4147ec68 100644 --- a/specification/source/cdl.rst +++ b/specification/source/cdl.rst @@ -484,7 +484,7 @@ modeller the parameters so that she/he can change the values. Option *b)* is for translators that will remove the dependencies, such as ALC Eikon. In these programs, building operators would open the graphical panes and change the value in a ``Constant`` block. -Using option *a)*, the translator will generate code such as the pseude-code below +Using option *a)*, the translator will generate code such as the pseudo-code below .. code-block:: C @@ -506,7 +506,7 @@ In this case, the generated code will be equivalent to the declaration equation connect(s.y, someBlock.u); -or using pseude-code +or using pseudo-code .. code-block:: C From a17926617770b8c5c7c6dffed707bb4a4e42b552 Mon Sep 17 00:00:00 2001 From: Michael Wetter Date: Tue, 7 Jan 2020 16:15:53 -0800 Subject: [PATCH 08/17] Revised text --- specification/source/cdl.rst | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/specification/source/cdl.rst b/specification/source/cdl.rst index e8eeeae4..3bb49ce2 100644 --- a/specification/source/cdl.rst +++ b/specification/source/cdl.rst @@ -284,11 +284,10 @@ interaction with the control program (such as to change a control gain), unless a parameter is a :term:`structural parameter `. The declaration of parameters and their values is identical to Modelica, -except that parameter assignment can only be -literals (such as ``Real``, ``Integer`` and ``Boolean``) and -arrays of literals. In addition, for ``Boolean`` parameters, expressions involving -``and``, ``or`` and ``not`` are allowed. -For ``Real`` and ``Integer``, expressions are allowe that involving +but we limit the type of functions that are allowed in such assignments. In particular, +for ``Boolean`` parameters, we allow expressions involving +``and``, ``or`` and ``not`` and the function ``fill(..)`` in :numref:`tab_par_fun`. +For ``Real`` and ``Integer``, expressions are allowed that involve - the basic arithmetic functions ``+``, ``-``, ``*``, ``-``, - the relations ``>``, ``>=``, ``<``, ``<=``, ``==``, ``<>``, @@ -380,6 +379,7 @@ propagation of parameter values and evaluation of expressions in parameter assig For CDL to be compatible with this limitation, the ``modelica-json`` translator has optional flags, described below, that trigger the evaluation of propagated parameters, and that evaluate expressions that involve parameters. + CDL also has a keyword called ``final`` that prevents a declaration to be changed by the user. This can be used in a hierarchical controller to ensure that parameter values are propagated to lower level controller in such a way that users can only change their value at the top-level location. @@ -488,7 +488,7 @@ Using option *a)*, the translator will generate code such as the pseude-code bel .. code-block:: C - s = value_from_gui(instanceName="s", startValue=1); + s = value_from_gui(instanceName="s", defaultValue=1); con.k = s; someBlock.u = con.k; @@ -510,7 +510,7 @@ or using pseude-code .. code-block:: C - s = value_from_gui(instanceName="s", startValue=1); + s = value_from_gui(instanceName="s", defaultValue=1); someBlock.u = s; If option *b)* is used, then the translator must remove the declaration ``parameter Real s=1;`` From 5b836aec4f2daacfd2e76ffd2d1ea38d678953a6 Mon Sep 17 00:00:00 2001 From: Michael Wetter Date: Tue, 7 Jan 2020 16:53:39 -0800 Subject: [PATCH 09/17] Changed Controls to Control --- specification/source/glossary.rst | 8 ++++---- specification/source/process.rst | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/specification/source/glossary.rst b/specification/source/glossary.rst index b19d8364..ff1fae5b 100644 --- a/specification/source/glossary.rst +++ b/specification/source/glossary.rst @@ -29,14 +29,14 @@ the Open Building Controls project. pertaining to the building. CDL - See :term:`Controls Description Language`. + See :term:`Control Description Language`. CDL-JSON - The JSON representation of the :term:`Controls Description Language`, + The JSON representation of the :term:`Control Description Language`, which can be generated with the ``modelica-json`` translator that is available at https://github.com/lbl-srg/modelica-json. - Controls Description Language + Control Description Language The Control Description Language (CDL) is the language that is used to express control sequences and requirements. It is a declarative language based on a subset of the @@ -50,7 +50,7 @@ the Open Building Controls project. * test the control sequences and the requirements with a model of the HVAC system and the building in the loop, and * export the control sequence and the verification test - in the :term:`Controls Description Language`. + in the :term:`Control Description Language`. Control Sequence Requirement A requirement is a condition that is tested and either passes, fails, diff --git a/specification/source/process.rst b/specification/source/process.rst index c846f5f7..86196617 100644 --- a/specification/source/process.rst +++ b/specification/source/process.rst @@ -14,7 +14,7 @@ linked to a model of the mechanical system and the building (4). If the sequences meet closed-loop performance requirements, the designer exports a control specification, including the sequences and functional verification tests expressed in -the Controls Description Language CDL (5). +the Control Description Language CDL (5). Optionally, for reuse in similar projects, the sequences can be added to a user-library (6). This specification is used by the control vendor to bid on the project (7) From 6f778e51a54361d077fff5654b5cf8c99ee8b18d Mon Sep 17 00:00:00 2001 From: Michael Wetter Date: Tue, 7 Jan 2020 16:53:58 -0800 Subject: [PATCH 10/17] Alled vectorized connections and revised text --- specification/source/cdl.rst | 69 ++++++++++++++++++++++++------------ 1 file changed, 46 insertions(+), 23 deletions(-) diff --git a/specification/source/cdl.rst b/specification/source/cdl.rst index 1228fe0a..eebb4274 100644 --- a/specification/source/cdl.rst +++ b/specification/source/cdl.rst @@ -109,7 +109,6 @@ Also, the following Modelica language features are not supported in CDL: models as far as CDL is concerned and thus CDL compliant tools need not parse the ``algorithm`` section.] #. ``initial equation`` and ``initial algorithm`` sections. -#. ``connect`` statements that carry non-scalar values. .. _sec_cld_per_typ: @@ -284,7 +283,7 @@ interaction with the control program (such as to change a control gain), unless a parameter is a :term:`structural parameter `. The declaration of parameters and their values is identical to Modelica, -but we limit the type of functions that are allowed in such assignments. In particular, +but we limit the type of expressions that are allowed in such assignments. In particular, for ``Boolean`` parameters, we allow expressions involving ``and``, ``or`` and ``not`` and the function ``fill(..)`` in :numref:`tab_par_fun`. For ``Real`` and ``Integer``, expressions are allowed that involve @@ -391,6 +390,11 @@ that do not support the concept of a ``final`` declaration, certain restrictions are imposed on how to use the ``final`` keyword. The next sections describe the propagation of parameters without and with the ``final`` keyword. +.. todo:: + + Check in the current sequences what the implications are if we indeed impose this restriction + on the use of ``final``. + Evaluation of propagated non-final parameters and evaluation of non-final parameter expressions _______________________________________________________________________________________________ @@ -429,6 +433,8 @@ Note 1. the ``parameter Real pRel(unit="Pa") = 50`` has been removed as it is no longer used anywhere. 2. the parameter ``con.k`` has now the ``unit`` attribute set as this information would otherwise be lost. 3. the parameter ``hys.uLow`` has the unit *not* set because the assignment involves an expression. + As expressions can be used to convert a value to a different unit, the unit will not be propagated + if the assignment involves an expression. Another flag called ``evaluateExpressions`` will cause all mathematical expressions to be evaluated, leading to a CDL-JSON declaration that is equivalent to the CDL declaration @@ -612,7 +618,7 @@ non-working day and holiday. Connectors must be in a ``public`` section. -Connectors can only carry scalar variables. +Connectors can carry scalar variables, vectors or arrays of values (each having the same data type). For arrays, the connectors need to be explicitly declared as an array. [ For example, to declare an array of ``nin`` input signals, use @@ -623,10 +629,43 @@ For arrays, the connectors need to be explicitly declared as an array. Interfaces.RealInput u[nin] "Connector for 2 Real input signals"; -Hence, unlike in Modelica 3.3, we do not allow for automatic vectorization -of input signals. ] +.. note:: + + In general, today's building control product lines only support scalar variables on graphical connections. + This leads to the situation that different control sequences need to be implemented for any combination of + equipment. For example, if only scalars are allowed in connections, then a chiller plant with two chillers + needs a different sequence than a chiller plant with three chillers. With vectors, however, + one sequence can be implemented for chiller plants with any number of chillers. This is currently done + when implementing sequences from ASHRAE RP-1711 in CDL. + + If control product lines do not support vectors on connections, then during translation from CDL to the + control product line, the vectors (or arrays) can be flattened. For example, blocks of the form + + .. code-block:: modelica + + parameter Integer n = 2 "Number of blocks"; + CDL.Continuous.Sources.Constant con[n](k={1, 2}); + CDL.Continuous.MultiSum mulSum(nin=n); // multiSum that contains an input connector u[nin] + equation + connect(con.y, mulSum.u); + + could be translated to the equivalent of + + .. code-block:: modelica + + CDL.Continuous.Sources.Constant con_1(k=1); + CDL.Continuous.Sources.Constant con_2(k=1); + CDL.Continuous.MultiSum mulSum(nin=2); + equation + connect(con_1.y, mulSum.u_1); + connect(con_2.y, mulSum.u_2); + + E.g., two instances of ``CDL.Continuous.Sources.Constant`` are used, the vectorized input ``mulSum.u[2]`` is flattened + to two inputs, and two separate connections are instantiated. + This will preserve the control logic, but the components will need to be graphically rearranged after translation. + .. _sec_equation: Equations @@ -656,28 +695,12 @@ Connections Connections connect input to output connector (:numref:`sec_connectors`). For scalar connectors, each input connector of a block needs to be connected to exactly one output connector of a block. -For vectorized connectors, each (element of an) input connector needs to be connected +For vectorized connectors, or vectorized instances with scalar connectors, +each (element of an) input connector needs to be connected to exactly one (element of an) output connector. Unlike in Modelica, a ``connect`` statement can only connect scalar variables or an individual element of a vectorized input/output port. -[Hence, the following is not valid: - -.. code-block:: modelica - - CDL.Continuous.Sources.Constant con[2](k={1, 1}) "Constant producing the output [1, 1]"; - CDL.Continuous.MultiSum sum(nin=2) "Block that outputs the sum of its inputs"; - - equation - connect(con.y, sum.u); // Not valid - -] - -.. note:: In future extension, we will consider to allow vectorized input connectors - to be connected to vectorized output connectors, using one connection statement provided that - they have the same number of elements. This may be required for control sequences that - stage multiple chillers as developed in ASHRAE RP 1711. - Connections are listed after the instantiation of the blocks in an ``equation`` section. The syntax is From 4856af88beec0ea6e5f8bb9af6de65959e4b56af Mon Sep 17 00:00:00 2001 From: Michael Wetter Date: Tue, 7 Jan 2020 21:12:18 -0800 Subject: [PATCH 11/17] Revised treatment of final keyword --- specification/source/cdl.rst | 150 ++++++++++------------------------- 1 file changed, 44 insertions(+), 106 deletions(-) diff --git a/specification/source/cdl.rst b/specification/source/cdl.rst index eebb4274..c17910e5 100644 --- a/specification/source/cdl.rst +++ b/specification/source/cdl.rst @@ -274,8 +274,8 @@ Instantiation .. _sec_ass_val_to_ins: -Declaration and Assigning Values to Parameters -.............................................. +Parameter Declaration and Assigning of Values to Parameters +........................................................... *Parameters* are values that do not depend on time. The values of parameters can be changed during run-time through a user @@ -382,24 +382,53 @@ and that evaluate expressions that involve parameters. CDL also has a keyword called ``final`` that prevents a declaration to be changed by the user. This can be used in a hierarchical controller to ensure that parameter values are propagated to lower level controller in such a way that users can only change their value at the top-level location. -Again, most of today's building control product lines do not support such a language construct. -Therefore, CDL has been designed in such a way that optionally parameter propagations and expressions -that involve parameters can be preserved during the translation, or they can be evaluated. -To guarantee that the original intent is maintained even for building control product lines -that do not support the concept of a ``final`` declaration, certain -restrictions are imposed on how to use the ``final`` keyword. -The next sections describe the propagation of parameters without and with the ``final`` keyword. +It can also be used in CDL to enforce that different instances of blocks have the same parameter value. +For example, if a controller samples two signals, then ``final`` could be used to ensure that they +sample at the same rate. +However, most of today's building control product lines do not support such a language construct. +Therefore, while the CDL translator preserves the ``final`` keyword in the ``CDL-JSON`` format, +a translator from ``CDL-JSON`` to a control product line is allowed to ignore this declaration. -.. todo:: - Check in the current sequences what the implications are if we indeed impose this restriction - on the use of ``final``. +.. note:: + + People who implement control sequences that require that values of parameters are identical + among multiple instances of blocks + should use blocks that take these values as an input, rather than rely on the ``final`` keyword. + This could be done as explained in + these two examples: + + Example 1: If a controller has two samplers called ``sam1`` and ``sam2`` and their parameter + ``samplePeriod`` must satisfy ``sam1.samplePeriod = sam2.samplePeriod`` for the logic to work correctly, + then the controller can be implemented using + `CDL.Logical.Sources.SampleTrigger `_ + and connect its output to two instances of + `CDL.Discrete.TriggeredSampler `_ + that sample the corresponding signals. + Example 2: If a controller normalized two input signals by dividing it by a gain ``k1``, then + rather than using two instances of + `CDL.Continuous.Gain `_ + with parameter ``k = 1/k1``, one could use + a constant source + `CDL.Continuous.Sources.Constant `_ + with parameter ``k=k1`` and + two instances of + `CDL.Continuous.Division `_, + and then connect + the output of the constant source with the inputs of the division block. -Evaluation of propagated non-final parameters and evaluation of non-final parameter expressions -_______________________________________________________________________________________________ -This section only applies to the assignment of parameter values that do not have the ``final`` keyword. + +Evaluation of Assignment of Values to Parameters +................................................ + + +We will now describe how assignments of values to parameters can optionally be evaluated by the CDL translator. + +.. note:: + + This feature is being implemented through https://github.com/lbl-srg/modelica-json/issues/102 Consider the statement @@ -460,98 +489,7 @@ equivalent of the declaration uLow = 25, uHigh = 75) "Hysteresis for fan control"; -.. note:: - - This is being implemented through https://github.com/lbl-srg/modelica-json/issues/102 - - -Propagation of parameter values that use the final keyword -__________________________________________________________ - -If the assignment of parameter values involve the ``final`` keyword, then certain restrictions -must be placed to ensure that the declarations of CDL can be preserved when translated -to a control product line that does not support a ``final`` keyword. -Specifically, only one-to-one parameter assignment are allowed. -For example, consider - -.. code-block:: modelica - - parameter Real s = 1; - Continuous.Sources.Constant con(final k=s); // k cannot be set to anything else than s - equation - connect(con.y, someBlock.u); - - -A translator from CDL to the CDL-JSON intermediate format -can translate this in two possible ways, called *a)* and *b)* below. -Option *a)* is for translators that will preserve the ``parameter`` declaration and its dependencies after the translation, -such as any Modelica-based tool would. This option allows any Modelica GUI to expose to the -modeller the parameters so that she/he can change the values. -Option *b)* is for translators that will remove the dependencies, such as ALC Eikon. In these programs, -building operators would open the graphical panes and change the value in a ``Constant`` block. - -Using option *a)*, the translator will generate code such as the pseudo-code below - -.. code-block:: C - s = value_from_gui(instanceName="s", defaultValue=1); - con.k = s; - someBlock.u = con.k; - -In this case, stoping the simulation, setting a new value of ``s=2`` and continuing the simulation will -cause ``s = con.k = someBlock.u = 2``. -[The pseudo-function ``value_from_gui`` may show to the building operator -a window in which the value for ``s`` can be changed during run-time.] - -Option *b)* is for building control product lines that do not support such a dependency. -In this case, the generated code will be equivalent to the declaration - -.. code-block:: modelica - - Continuous.Sources.Constant s(k=1); - equation - connect(s.y, someBlock.u); - -or using pseudo-code - -.. code-block:: C - - s = value_from_gui(instanceName="s", defaultValue=1); - someBlock.u = s; - -If option *b)* is used, then the translator must remove the declaration ``parameter Real s=1;`` -because there is no longer anything dependent on the parameter ``s``, and rename the instance ``con`` to ``s``, -which will ensure that the documentation of the sequence, which may describe what ``s`` is, remains correct. -Note that for option *b)*, the propagation of the parameter value is through block-diagram modeling only. - -For option *b)* to work, parameters must only be assigned to one instance -if this assignment is declared as ``final``. For example - -.. code-block:: modelica - :emphasize-lines: 2,3 - - parameter Real samplePeriod = 60; - Discrete.Sampler sam1(final samplePeriod = samplePeriod); // not valid - Discrete.Sampler sam2(final samplePeriod = samplePeriod); // not valid - -is not valid and ``modelica-json`` will stop with an error. -This is because a translator may translate this, using option *b)* above, to - -.. code-block:: C - - sam1.samplePeriod = 60; - sam2.samplePeriod = 60; - -at which point a user cannot change the value anymore, causing the translated program to be less flexible.] - -.. note:: - - If ``sam1.samplePeriod = sam2.samplePeriod = samplePeriod`` must be enforced for the logic to work correctly, - then the controller can be implemented using - `CDL.Logical.Sources.SampleTrigger `_ - and connect its output to instances of - `CDL.Discrete.TriggeredSampler `_ - that sample the corresponding signals. .. _sec_con_rem_ins: From d082a40fc3d68cd0d4e5df434ebcdf76aec79f1d Mon Sep 17 00:00:00 2001 From: Michael Wetter Date: Tue, 7 Jan 2020 21:16:27 -0800 Subject: [PATCH 12/17] Removed the need for graphical calculations in parameter assignments --- specification/source/cdl.rst | 2 +- specification/source/codeGeneration.rst | 16 +- .../ParameterAssignment.pdf | Bin 243428 -> 0 bytes .../ParameterAssignment.png | Bin 233895 -> 0 bytes .../ParameterAssignment.svg | 745 ------------------ 5 files changed, 6 insertions(+), 757 deletions(-) delete mode 100644 specification/source/img/codeGeneration/ParameterPropagation/ParameterAssignment.pdf delete mode 100644 specification/source/img/codeGeneration/ParameterPropagation/ParameterAssignment.png delete mode 100644 specification/source/img/codeGeneration/ParameterPropagation/ParameterAssignment.svg diff --git a/specification/source/cdl.rst b/specification/source/cdl.rst index eebb4274..208908e8 100644 --- a/specification/source/cdl.rst +++ b/specification/source/cdl.rst @@ -272,7 +272,6 @@ the Instantiation ^^^^^^^^^^^^^ -.. _sec_ass_val_to_ins: Declaration and Assigning Values to Parameters .............................................. @@ -395,6 +394,7 @@ The next sections describe the propagation of parameters without and with the `` Check in the current sequences what the implications are if we indeed impose this restriction on the use of ``final``. +.. _sec_par_eva_tra: Evaluation of propagated non-final parameters and evaluation of non-final parameter expressions _______________________________________________________________________________________________ diff --git a/specification/source/codeGeneration.rst b/specification/source/codeGeneration.rst index cebbe3b0..d92a5732 100644 --- a/specification/source/codeGeneration.rst +++ b/specification/source/codeGeneration.rst @@ -480,16 +480,10 @@ use a global variable or virtual points. Calculations in Parameter Assignments ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -CDL allows calculations in the assignment statements of ``parameters``, -see :numref:`sec_ass_val_to_ins`. +CDL allows calculations in the assignment statements of ``parameters``. If a building automation system does not support such calculations, -then the translator should extract the assignments as a separate operational +then the translator can optionally configured to evaluate such +calculations during the translation. +should extract the assignments as a separate operational block and feed its outputs to the parameters of the block. -:numref:`fig_exp_par_prop` shows an illustrative example. - -.. _fig_exp_par_prop: - -.. figure:: img/codeGeneration/ParameterPropagation/ParameterAssignment.* - :width: 700px - - Example of translating sequences with calculations for parameter assignment. +See :numref:`sec_par_eva_tra` for details. diff --git a/specification/source/img/codeGeneration/ParameterPropagation/ParameterAssignment.pdf b/specification/source/img/codeGeneration/ParameterPropagation/ParameterAssignment.pdf deleted file mode 100644 index 5f281136f2499abe4ee05f69459c17b107f077b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 243428 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 G&i??#U&d+x diff --git a/specification/source/img/codeGeneration/ParameterPropagation/ParameterAssignment.png b/specification/source/img/codeGeneration/ParameterPropagation/ParameterAssignment.png deleted file mode 100644 index dc2c2fdd82190e810496de5b9bfc761d650f24ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 233895 zcmeFZcU)6v`#&BhDk5!BQNnmyt7w%~1eBF3idAGNBw>YsCIpMn4Rdo(98P3`YTmmk^2n2$Zw z^62-8Jm}3AE$Z}iVQ`1iT5{s}Ht2F=%t8f#0UXA*t^IV2F|)b5+Go{DKJL*rAVKNnRUETWzk5ZCk@V z^F|)}nAT4RlAw?O+_JSUY#IhrL{E3I;y+$neX7j4b!g2C12vY?KX?9LFS`1<*#GPL zhijU@td98qxM8c6aKr!OE9mmNI}u+_=f7`kg#B;Wj}-YIkv~!b2KygNeWu0#1n3hj z{s$MINCEpFTzsa*|KQ>?E&c}=pJ?&_3oiQf37wlR*jfxB^kpo$dx_@Zge<%H^3&XE09(enE!1YvDM5!?6uL?xpsLFE{o|RzsuZqZe z;=tp6F_LuokNc@MZ0Kz*ar$w8J%w;H9aG|@8Bhg!1MBv< zYm`_h9u4yrBtdVA>ZcfTiFRHj96I*T#VGR$ z@=gSE=56g&nBUp3ld1R8)U{|7yj*ilSa@>=H{?S_a@GPOIE(Ar3*;8d4^{b zN6)-(>B@&MjO6B(p)XF$%}01Nag^ldODaPWTZC_ar(33%F679~8wWOVCiYE|R(_}Z zrj!!IztgFir3-O#^G^CMd|$-lNHL3o@EYJAfSsCtrN+?3>JYw(+KuTR#f|I;l=^7% z_C+ZVj=CS5&NSE*-t%_oKAKCi+ZN<#Yb3F+;|nJ6nC)T=%trk4k&6_ z%e06G;EER_YEO=I*z-k^6P496w;fSMyI1XB^950zZ})$VwdA@SeOG}%k36OA zwg#p=uo*B<`248xQeYQSy) zO-4Az_=4nFT4fHaDp4WR@6 zNdd#61Yf9Q$vDogeRfJtBoPC=tL^3zcr=F?AxQT`$DU6uV>pT;AaY;pH6Dl&jDqiK zO^S$?_@1Hfqq-9v!bOWj0nPIg=SbsUHRG9KUBgx0gL>Rytf&HP114DGZJ)y;jly&P zZ6TCuc@=iqkx29D$NCN{BSnq^OY)R#U~3BSh{A5Av{Seaw}aq=xq$2VwldK2yl_M7 zJvoY;{hhVL27x~WX*9NTJ4g=Y8VhQZQW=fNa$WY0Y-HzUJ*qNSh`KOpO8XyC&rvckkX+3mpH< z8qVHdv20Z5$a8QQVC4Aq_5<}~>G&o)SnJg(z>eapQKD`~690m~L~~_aZoFC(Bwi6E zh$h_;OKjuP%F5>)dYD1Tj58Wb5)=YRp!49tgGoP$Kg-9F`LBdFipRYU_@XS0Zn*nU zR!jspb3*ntmU-0@FAB0jCCWk~ISHwUN*!h&slizDs}d7H=A zdATj1G>SP6qBDX&c19mlAv@WL0%$)w=)d?iykZ$AhNKE^ab)E8)*%9yG)Or}L1gJc z(bkX6^=l&X1}#zYap|J7_>+Rnow?ewuVw)=@;K6AV{oRu$Wy=r^i0QKeUnuvaj`!2 zWay}D<^J;x<-%?-8W5+bDf!*+qVwVnN(RbYTh|ddq2mDpZM96_S6{>v;X_|rK2i9& z8c^P}qquVaSl!=sC48qvq@WfYCubF`Tzt5~r#k6gm=2lk0df+a3E-#Ru+}S*%+zks zGcoiMqO)KHQM9dkzj$r@x%`Y^d*8^V!6X8ogP~Or&G8NbA^7fS#b;8_JpD?$HqK7a zfcf82?t#Q8edT0bn^aiA#LMC-3ZaQ+o%*mInTig5a?c0E*`KgJSk!GbMet!?w6VOwJ6GatH zAaEA`IR2@u;T$J&wf!fNJiT*bu||z!7#EV^+5_O zt$P@-M5>~&8Aqi{V-gb+2kHsF@=hTxY^N}9_sq~S-uz^LUiehrV6Q**T`#LXERg^nQwL@wBk)OJXOX~QHB_B?0;CN)Q z55+0#?PpstD#!FI4XKEYxUY|Q9?Ju7PXw(DnsyixGP*YQ-K;{n+o(dOjIy=S``0aN zdIzVfxe?Px$I}CYW5**RAu*sG_yUS-31^s}i2=QPvG~?xj~j;`KhC5IV}DCgDGDxe z-5AyBR;Zs#ycj7kc-am?+9^s>=N)NVDX3cum8HH`eZLpK)D!q6k03w8Y8XW~{!&0E z{xx?*B6-fVgHBM=93_J@5+n5Nrc6YG)oq@fx2!J0G?% zJ=FsDoy_2eyIY2~S(7bF=F#GcM+?!P=U$}s*(#V3_t(#9wzoA64Kjy2+Ft%~@A@tt z?2ml~*RLqZNj>kg*yVcRO7r#C?l&V&-FA+V>)vC!d?Eh2>4u!m+mdtke|y^Ip8pSr zuPA(zUvN&d>+iK~eKJc+t~)$_c@4n;VG0D77$tZ-z~R^TTAQHJ=;8&^>O@cp^)_MN zZXIZfZ`YC5Q>we>8h5+H`cTCl`xo@f^y}(~BeSjOEQ+#mzGLIoo2EJ2jNU!%(w``@ z(0_A(o8e5Olki#6^ik!6$S^}?Up;>K=jBm4=jS8|AxYE3@aW`x^?N;0zN>3JPxLP9C;iig|sYT z9Ig&(d>&_-6Wr%=4d*nh@ej*5)VCs8jxUGwkRLeHxvjV3D^$?bA!IpsxVvZGYmsww zUjlvF|J>m0phxaSGcokP<1WQ6lo%t8@Wy4%l=(5z!tjDqekKuY2s{g>zNNBmw(^>x zWg<`-CG+XNpOauw#R>l{wo!LoszIJ~YZmLMv;(!?LUU}$?waikZF7rPY%Uf@#*8Vg z?b|oyNY52M0=1kMN%-fbVs3`bPV&Ylac)06l6Q<)UzK7W=%_lo|?9jIK$0YfV zy+3C%EAQaO0vExgF{SmkcvBgy>%479t>-vcEYSpdcdkCDn(kzUv}iLT@(qSPI7buP zBLIK#tcrLxS_jwLKoQ#GFSdPFG*RA9Kcm?{n{xJ%h1|`4$Ia|Y%(o57D=1GFh&hYTZ52%^Ah zg)@=P4uVwIghSshcYLe`Fq(e~=8r2~JcSqZbON(MF8A&Yg~d zNnjuNCm81N-A?DVgXrp_mEaKp`fzxsae+RCXdy^^e`4L(i19+LrF#}BST!p=;FNOc z#jKTg`P2hq$VD6gU&oaH@`+!gkhso<&(6x~b!)BDkYMa}>^b~Iuz~Bqag!+z-mP>2~r&XbfJRODrdvS#9cafKW|-8Y#9l3K?m*z4Myryx{eLOR$>n>kn^N;M5Bz za7HUQfT_3r%9_DHA%=PPyQ*P!1M{8Ak5CE?Aui#>accX{}?TM`=ygde37wJoO{s9LCBvH=RAoWSh@d7ytsBS zaf*_LinK8*6OJ_T2nEKDN?MSDR)myOZwY2l74iOw@?xVDr%b;@c=HSRcBXw)ejiCg zX%=p7nKYc+?hrvg2%+_a;5YD%`FxqE5bUmqTlchJAV)t}SPSlvPVnVg*>3X6fiw{f zJ4}VEi_foJRk5pGc?qhrz6zB&|FrKw%z($(ffC%UXVlXHzU{{6={3YR>s_-@^sqb+ z*halV^n_W&!VGlZ z273i%RP$O9E3>H>!Z2Rjx+;`?CsN5Da+sJc&I}l`igBWq=iPJjqd4(X!Eue`LM^#%wTyg*T9_sj>0Ty0W?r5 zoQ?(u^tkWn`#ltQ=zjuAcA!J2tH7uB`goSLsB>TD0yM{qoOqn$_|%c<8XjY>*2; zZRq8`v=mbs_X#9A9Zl`0Y*=3Vw}b<<7DJzrzFtR1B^2GAbL```z@naf?U({1qn~z4 z1w!LqUq=xi6s7IfBP;h>eYdexu?n|eT$k7AZ;~cncnx+MM)tdP&GI$}U>v7vu8&ju zI>LQhO*!##C8FS=cSl*FU5us43QMMt!qk6YlPM^2$4@wL>yjE??#&47IvR%3AZMa8 zYBgWBfwyWmq$f;KhADDz20P3@P3-u2=f}?e3*hA~G~M!3^7}5En|#}m=g6^YdN4-H zvqum6YV)RVKhtmyy-86)N!c*1=vDf(0oUu}B2l#Kf$7SJ@1f~6D8VsHQ%7<}xQ_cO zAxTz#`{%Ww4z1RpuA}3Qb2H}fGgR_QHnGjIsgpGim{InS5tM0+QSB23^)nidUHmuv z%rwePPrK>r z>j3gc(C&B4|| z%2i4r#Q;4)Ze?kI^NBzFcwfOtBRJE!xn;;_>_F9|{q2ixIf0Z|J#9Dh_9g#~RZ6@V z>M^Ec22#}4#6u%b>1|(xISxi9ks!dxIhE6$3-rryd;Bo&NXQU{5H!PzZn$*i(_oD^ zcw=99+R$}dr4`%<Yj91!v=4)lLu|`Q7n2dPt^v2CV44mN8NQDuEQ5&>Z`8G z8rNXO0<3t1D;9CNC;Qp=yf5!RyVMy|{^%6sfiAJMKj$n;|N56*oe%2mjK`)*)WyVL z`1Rg`Cv7!(BlB`M--8|2MaJ^xnr`DM`LL=DJa7~ofg-W%b}Ea{3GRSwvPze#Lg{zu z!2=#j0gt~|3VM1hBmC_Xw9vU^OgB=;~CyNLc;KVcpv<@Cq}Rsy74n#ZT!mJ zbru|PzoNC&W%%gDG&K68Wb}GV&9OFUbX2_zus|^*TiPUP7)H3^odsh@UtPI7x~h$` z>ck>Gg0C3pZ{E*-Af+;NAV2-Q$@@t-x!&fQp55sKX#^CW51K%R?q;C90{uCn*>M;C zg&_*A*c3a3j`w77*`*qB3 zAZ$wycyQ+JBPpZT#}EUq2}WZXuKk$MS9g_&ud~tIU;Ej$fj6t{AsGz82kDUG3pfr_ zkW74Hz*4or2+n8wPjWq~@O{U6*J+)(?RaOJo3`t|CvBE>kJh`Yr-p8E)=|(47u8H| z%nTd+*?kQvZ;mkJ-->o3zR68OFQGNey4eAJR`gQ+df_1W7nH8xky)Kuk}ARv&Fl8R zgv;Lz3ZC-zwG8DC)YgT^992H@AUT0GBcwo%su3h-jw1HY7uTSY1VFURqn}}HLWH0V z1ai7xKMTFqA48`LkK-?_ZY~s}4ea==jRw+j`eK z5#F^+&=!ZuWJ$qp*WDLJY+*)iNOBB#qN9y zN4qY7`+#WRE@T)JC{*OQu2;a~bp?`t?d|3`INx@-u+E{`ErU=rPxe6$m)F_ROlX+q z@ep7Kpp%BcJS%k>Iw>6)Q7xQrn(YJ;6b<(4*7li})#WsL3OHZ_RHy6H(M-Wm?3T~2 zu=nkn%iQfqpw(Lo4$9p$2<$x;g&es7{tY>Te3sr8Oy@Rl?#n?J z;QR&WSN%_|I)Z}*)xaK#Hn|mVd@RxNW5LMXj766 z)|Xe;&$5~DeAoQSVw;{%_*{&jd`W$|me8EqPba6L!wzk2I8EzmYM0jwFG+y+UdL9r z&EJcmm2(Rjz|4E`U9dp`L)+@R68t`w>2*|90}+J2hTN(vakHW=Rk zFp+%nN|`Al)%1LFM@Ui(>y^}Duf<@#=eU~T6ASO9yI1e$q^f#3v;php9 zJd(+_`sV!;P-SfQmgEHdM6aMciC%Qu()fMqwO+k&qma|h8}Af_`%)QJ8Mec<_Glv- zaY0dgRbVMCA|7BmZp>h|khpyyy&t(pHS4ZEqjcs>jww@9OMW3WR-%Wbt*&S`ErWg;Do*uZc z%u>iW{OA`s1->JcS_sGgiogAe_0(HFUJ5%=rt*C8dCbBa=JVI-M_;Z2a#Zmnv3E}{ z7Rf5&*kg}G7(0+6Zm@@T8rBgXuIDj^tb{N>6J48XD#vkHWS@XIoQo~Z z-DWWQ$DRn`OtUQCf>77fP;scu6^cZ1<}w!?=RhIIrz9cAyAFI8OF%U*tca^eoYLgT z=)-qfoQzr>CA-#$!iCR)M}ZMwDlh!44zMEK8b}GmE$4wcI>M1VRNAjR5hb^1D%>;9 z*f>}7V8`MH-~xL+)^@nsbRvJ(<>Nd9D2k=*AXH@&9uRx&UmC!tsMlFG zvkJw3w@{1YGb7)#UkBJ+7sPQ`VlxgUW@>)i86uN-Pyc&p@S`!?|Q37K$7wC5@+A`(KNR`!%v! zXd0J5bwcL&vh;SYGRi$nH@^K(A1&&CingF_d_DUnBds$XNcV-$zoS;?2`9k3wA~9> zAS@}Qcw%WzS8NcE@OYDpwJhq&YznP<$U^&i&+*yh*qtqF9S3U$vWbC$0?6SljQJtC znD))Lw&`>5>F!X06k_oK27U&{%E0}Q=V2mfis9RdtB4ozrh*zUFtB4a3tAKc5vq;h zbbjjR{BP=YhIlh~6cE*>{B-MhTmwVj?XN%;EYIQj>!qHpm1_+f9?3@_l?;milcpD8 zg%1))w-Y+|4wevKG|j$Mh-?tnD=6u4Z6(4WW9Kn7Dp@Vm4i1GRDX3tIag1mzdl!;L zHb(Q7SXwO!lsbY}m+d`Jf0!toDcp(My;I}nDV>O5K^DNL;dew}xKk8F(b(d` zhptfRP}*{^BUwoyLZj@Cc?uZ{wm4t$r(WK_r%%D?zK{*pfX3R4-U8wo!8GV5*AtY@f6cs1}qJ<`{Yr?_FKUImeUpY#3AwRK#K`AJ-b_Eq6uILR-EY z%S7b_<|V!~jawi?m?m4jx`0$DyNvEKko4r&{E5TPdWGkM)-sQd53-JS2!>09&T(1# zty`(srlES>p>Rg3BIEbk_R+^ zEidayk=cuKs5mEh3K{_jG^=Dj<*m+i&rF1H&NF}Wcz8Ck`A#6rq1ud$E#_dS=reuQ z2-Fdgf`lW+NDjBZ6bYakM)zFk#*tqIv++3wRTPwn?xvu}NZG6yWyk{I= zGpjuz!jXOnVtv!NQ$1(2BYA^5%Pan6@hPZVaJ>jGyoI2qA1f(j=9Pd^jiC+e30+C+&Wjg{JH{YP4c^vd*@=YCXengFdFTefA?ifoNQ57!M2ns{Ob5o zJ6`+_KHuCTvJqH9E4{tbToi6{6zJKvE9|7n$itAPKwp`N5@8Qm30?*GP~d0SN1CNg zo*tNqFs#kCnv}10UdaUl$pVKEj5EHjPIwIOk3TQKN+*b2@vImsy74EP&v2b2JR>o_ z=d#4h6h59BW^|&TtvdxdM3fvjW8Cl_(U&%EXtKH!2Oor($6?RW83X|ye zU?gG1{Pch}9ob@)gw|G)uqVq&W?`iCFkGRHfUu@#e+4idogqn}8jvkn8J%qHxg4dC zQQwfHOe$$nDUR^?OZ7;Duy6ai&L<)DAR*E3O7-*Cw)ic_4Mtup>92T7uK`tAxf2_|Qrrw5R)Ck}_0A0*5+iQvYj z^&Ml&t8{MMBA|nIGR%bmk1Mm)PP@cK(d<^>u3Q)Wd-2m!m%gft2{Gp@?G(_bY*afJ z^&8vteD=#Xyxf?%G}E-E=y-ls1o4y--UbR0y@i(VyU3Z?3!uk#-n{#IG3NY$oFojO zaN~QfQR`XBaE;|~{?pQynQ!MT%A`SD3C(ms~gmnxA+#VT>eWU zfZ}pfo=2X&+cg`4ZPT)ynp0mj(Ra&-__(tJly@+Ih^bWNH(dY$c!rJW!4KmBJauXW zVz10E-UaGj`-N)~SqZ^|-qkV&lcmj$3tk~l%$x#VEpZkYN^r(TMKrxgIAEwQ_Nz zUh3udN)Qm{_r4CaHVeQ&F)yv0KndS_-TD{=h=Lzx5bzgbxeb1M`-=6mTbQ;v?MbtB zRO(7;96ZPCdOb?E$XFjZ(T+P1D{pL^_DGtSL9RxJS%`-u^MEY3mnMKUg{|Wiguu0; zBW)mKpFNNmo-2$b+j-yE;ANza+rQtg%UtHS2Uj&1i=(n=+0-5Zi|X_~SA+ECIp_hL zJFs-&XL%c0s*}A^nV+JSQEm2#09;w#0J9E@PXIGzd|Q>JS&{W|dokQX<3X!Yyhk%L zLuY$9X4q;ys#z4Q=doX^KJUlLBuc*CoomH~>UKxi{nD+wWiENb-QJ=k_HAR3=%m15 zZd=)jgyM*5V&_{-K+vT)uB~YH2TQ+@I4rH>6TDON*ez@!W2m%jC|V|qkMQX`nXc3d)HN+Ew7*FPI4DT)Y80^&67gvFAAq|JtTUOrK z7aRxQVy2!3<(m34u=H}G;PTCRRhFU)jPc?q0~>eL2OD{z$C8BGu_O+k_#HTg?8B zMrRdSc=X*Llhd(BWLPHn*HIkQdH6^hI!!-M$obhx-ZrHdoj_K$RvMTwaCE*a>>@CFynO=GBoRYf zGLOPStLl0g)|C)F1=B~}>Z&pnR=DL=*~ybtGPzDF9*ZlBP-#};f%Y9h($4tEhF)Hn z&YeGpnZzK$y%=*Zgcam>RJ-udl5I)OnH{Du9bdi_0H@$*_?8r7ha6wuG2$Sa;JsMe zZvyX4oo;wM!Tl2hRSQ|Bjvm!>4RVST*N%+ejh($&)%J`!n;H{lwsWFWr!L&yqvTZr zdC+_|Tpp$3X{#4@Cax=kQ`lNf-sT0x1+Ln2!YrUMqjrBPdGy0*6ew3k2dWowY?ZJ% zmcH-zp5jt06yj%9Y?wA8|Kym`#V{yKK?NvwQ) zTK8yll5WP*I>tGAp0GZe)xUcelzSwO9B~WrYCsGAjA6Byy%nK+Wb5`dE6HE*}{JRxJipV@4H_t zjE2x9O=Q`VD+xMyEDjG|vNlGP;s;7b2yfV4&WqwIK;)y8{P0bF7U$e4B|ws#nYDAz z5Zofo_mA&rVt3iWMXS|G{1a*^y?X?k!WhcPprSmPGQt@nH?lMCAv`MtoGBNkKC_o{$V^G9$}$> zi8qL3r969LQRsxBM~=(|Z!{f8tJof~w~bv6l)<^ldekgjtnYV}6g(&I{p1wGhwELM z<4%i8iJ=0ag1PJMM$g03Og(8u#C;dnhon5eQEt&}tmix0fppy3911SnOHd9uiMw@H z5YqgF;z!N)%dMWMSow%5V$*k)0in%#N2%m)Mcvzqq-x@z-%Y~hKF8PB0UpID5wU93 zHlCe&R{G$aOxl%$q6pe_NWLXD_Ybn$(- zF6ljy2UbY8;^dVFDcQ?7CYZ0lAyiX+&`>TY5QE9UlIn#C(L63(*UABLb+WPd4LK%` z%XvP7&yAs;tj=)w!FeB42*Q?>hCp$9S;x7jF$SF3_$;se>!a;z|0aeAo`HWv^P*w` zUPvb$X!fQwlg0TXORsz2E0N2x=J}0;+VK1l?t~uFK+kJHhyxtp3})mh0b3?bNy3zk z0U?)~>9E`S#rox@;-Bf8a$?C$@~jpROXm8%3Hu>|jPPjhU9SNwLD52jy~AF2!XVGv&A|#U1~!?)164k9N(n#_WJhBc``*d7y> z-7>dD;xsnuj%=2TUpj_A0oh2Muia5O?Gyxg76Da7Ry&SvR&nByaPOjX-P0bv2BSyI zlQbmi8hQ6ibq$XrT;6Z#aD$CvQM-3oZ#ujohmVTXR^-*|E-Su20CbKkta@riI%z8Z z>>_O{?h#OFnhTbRy3$aG-VplF)F#BE{r>J6y| zv17~+?uaNGil=TX=_;OfET$+UUg3&7YE-8y!5pAK|Nh9_iiW)sWLgr=3F=}Zn`J%s z%S2e>QG!94lMf^_(bRB9A*xHAe0TT0jRnvZ zvsK&Gl3Im*IV5dAARL9yJ@%yT?Ld%Cne_o%m?ggNRCI_D_$BbD41yxbZ=&{pf}-0? z!Fa2pk!S9V}*`W z&&<+|NBTadkL<483q znnG2dJ;BtC)^u=wHw#w8rZ)uQ`?fcCJidWxm}xglUQ*Su2ge5#ZyHL}W|KA1!L5CWxIRei%0_VpJ~6c5-z55Ux zFZB*J!`sHGXR%(L%JTNWX;YwDIelo>qXKA-zbkOVJx{xh{|Ro3O*bfs&$y6?Te^F) zYsp2Bt`L{M+il)-0{5;Y6v7A?%qRJix6)Z(K>Rgs#g(CDiXdn9`ZX_IFsf_`JA2^i z{lxO9kr{=Ayu^#T%BZP|$F&uZe?IfWIH{ul(m!JPA_lXX`yt}+^G!TokNwNSj`V;v zdXw_Tv)3($Ca*}V_dN?0W9Fff%y{KE(rl_-6Kzex1TCJOFhs?=D8e= z4ui+e@5;bovm*~IWcDK4->3lz@<$hZfOUDvmv*9Fj7F2E%O8jOQo8S2n|}l&NtMF- zphry;=)>EK4C`Eam}cWpz3@FK*@0gixkdnx=wYjVc`vmu0D+lu)BveLW>^g~>U^7- z9@q@KwqkBIgE^z^u2t9s9GMCq~@}c<7t?RO5RNO*&LXq zMcb~e#i=Jg|IWg%qww+|syyD||0D2I%^HUW_UnPRty)>pYN?bwfI5jO_Qtwv4 zIMVT(Rc+4{_TG&19elP^W7Ttle0)Ux<0tuNwKq$;fSR7CBgRowS|=p3NF_vmx$4?H zi8k?t>H;O{X!?kZ@9V_shF2;-EnPSWWr4FkW`XNRNM_Rxq&nh!lfM;y?CnFx9Skd@ zBB20$3K@U z)Cd(E)P_oqDgOGo&&!DJ|kSy&>WzmuMU5GpieuL4$&j+3>h>pP2? z1)aKpGcG0k;MjCRmyNY#T8BPys2?vAlXDQ-LsP~2-)k2NW~ZS={ngzMczi^tvrld~ zHTd~g^7%;l&4lfsRfsK1|mkC$ z%50*G;3fEMHKXmib0z$|peA};BiXtIc-ac@k+PnBm5W7S#N1X%w~eT&Kmgli@K6RW zau-k`Vfi^J0x1yg?I0bG^EIaZ*fUq^nRT*D3GJKgbSJBH0zwHK`75TZaZw?6pBhuT zAjd&tsvg%4BBjo1wXed=Zfi3wBiZ8Vn#Z-gMAT5#(O5N6UHFF%V14J4kdX|(hQKa6 zSk#;Py6gttXbcy=j`9#HN(gvDYh!TEPjRj01+>tyE4%d>kn{a?x(m226Yab}<`^(- zDZQx0&2Z*T9c_X#e;l}YeJ_w=X0g^WP}XN|6RkcZ#_6yfmcIa9uYV}~hyT>Fon z-e6|eFhkXLYAA(RdCH!bk@sPTqSXBD1g+Ao4rA#XV96yEvb)}$;7P;rLydQeu*{Wv zV6>#Rnq@;RoVHg&kwQxzIERLp2~U_5zAA9B9_A+F?g3NfU?@}|I*t6HW)G%ve{}b)7p877k+A~F78zyS>I}L@JXEQWL>|*S)El# zUHi#EK)gv;$k6A1Be(eayRm5l+IBfO#)o3wh)1ng0Fc-e3cpXRYq zLJ!HnEpZehxbC^-ikRbfk~($1)s#`4uIDrOk`$)0J_P(LvCPF-K9Y$hd2=2(rwlQK zw)mMQ{~%hn@SUNF_Z|*XbR1s~c7RduTO^%2AM`&Px6`43cGi?z#3+Z59Z5*PkbFAB zDuW4;m%X^sv$f)crSI$`du}mD`_Uo2i)9mTP#P3E7ICC~x~@x1HQD)F{Gq>oY2JFd zZ@b;4bKn2H|5)_5CuIIpE`5D5t=nz;@$E`ht-sy8_igu~U;b0D|3CYG$FIF&_Dk=k zZ`W@AeoepJra!+qUNyJG3*PE{tEAp0gFHPxH(Qf%hO3{&S|IrXQ_wr^oSlcH7%3`a z>&G*vi!7%j_$VD=(q2zy*rfwwfsXk1S7_Is*NA^=J~T257)$s1JRFObPAV|Ed}&oY zpy%hkl2C~5$%Q4fV<~?W?76*nE$WpWRB2&4gIg>9Rx1k~nFB6K_pS{6boIkCu*vLs@=7Um{FR=uK)PS&E|9X0UK_Pn zofb=JXs1FWtpnGdfp?g4~{$H3x0!p$Jy(tI-ob`54@7@ zHLh%dm;BsuWg1IjU!f(TSy;>+ilBeP#JunPqGU`|+f$7XV@LT0pOJ~pT%GJCFESH3;gphn;C!GO#_gQlZB$@9TzR>5o+ytMo!myh z#@|&7m{r1uS7=-Z9tpMEZHS&@mO3K_2;c0R@kWgq8yYbGktXzDPTLW z2P%$`KYK?SmMCD75tru!r^RQ}qs5ca(8)9dGNS#(Dq$G?r~$qDj;GW#hz*wG?d}Dq z7*P&taw>^Wzmti_Aa7x8gIHdGtls-M$uN^XpLy7gpRV7SZcK9?HU?HGTg!u+F9CB& zm;GLoZ*}+%IT?jq-`HCG(-Vb;uAK zcZ{-CJHM6iimx{=NC6-2aI4+e+)56FreYJ++8_zd9kaPewzuY;`#fQ(o z9}AlPj>fGj-yR4z9vqebtu}a-k#chNG#V~nh5pfmZMTe+tumZ=)}BLz4JjWUhXt!* zar0qI2P5ReLj`?cCY0uH&%3?>c5oIBP*DgBJ$Up`(J=Ec+)!u@WSxa{4TMy0NX{Tk z+BS$g`Foffg?J1H&L*FB;dX+m`x_8dWrplhF_gWw`NMeJU@_gN(wM3iOVPanNrMk8n^ zuDYV{UNmlI+K3xQ^TKrMpH9vK?w-r}3R(6%C7dFv;X{E(rkjJHA){K=9O8jRmU;oh z3Zskv24<^@u%*{P6+0(;OkFlOVU4ndR}LO;;m~@rf0D6H}%&L)J&*!v~KR9T@6t$ zSu#4Tbg)js>or~=%uJtneZT~rII0k5BKUo;LPKec8G+PC++}Q~#Eh37DuoWBm%FWN z>?)e=Q&6$yb+Y|2P!G#q`i@ke!P8(>-VSZ{c+?1Cv5iQW-QPv>Tm*iiGhU=NP>#kRMGs*BhnN6 zNytdx7EB|&x0keGrUR1V4c|WIKnDa?W{$+G#_<+K*6tEj>HKZ;5+%~EbTM9sgS+d& zc*LWelsZQ$CyKUI9P(JK08^~<7k7ps36#uUuT6cbI77E_SSdX}PNHv%ZhZnLuZQ{^9>VSQ2ufaHa77 zW9wVsq0IjOm9@4N_PcE~I>AvvB)8fEq^76qvhSZ0D$A$szX?C#Ej zIEVYQEq^_n-!WK3-Ko*~@*2*rn0k=5e<^@$RmdCnIj%zw&)+Q@scJpwy|W2hOgWJ; zE+2N`y7i86jmk_Du+%G?E_=$K;9^=b!C(n&e??J>PE!Yh1-%v zIJHHATXT)gSld{ceGCX1^r=o3m2Wke?@De`j?e9qiR?h9{kDc?pf;XIX5|_`eU($Q zoJ$eEN~FecgT@5O6vvzzLa4W0DfFAe^>pQ-pL!k%U^%EH5{IEP8#cFg4U$*u${j88 zbs#@ij<;uUYfE$%DPuNX0&Z<3(nfP!h*~so(5DKAakHO9<_=jmE{k8Eu#k1G*3Shf ziUp)uBIA_m25qg=A)2X24cH?oRK=oT&9j(n_&uvaSlzL__>MG_rz}1%?`Y%u=qfm5 ztwOB@S2ns?rw=UP!tV)V&<=~tGDy=>V5Hg%+ET@~)h9McRvh%8a#Q(-M9At0zQZKr1Hp*ma_+qyQ`C;m=`czS4L zQN?eD(!G@upPIq{c6cQ8)mBPGP+VnZL+c#DZzkn@R%@l-j4I8uxpi?G{vN*n6F)hF zPZ=Ho3%bxCB(5?-*O=#+mceH#lUYz z-45k5DTP)1;geh4_R<|ikV+iOK0UaP{59MLdCq!lAqiohgsGn07s2)FY#=7dp9*Sk z5`P-m*IGn#g&1+t?L%^H!6eAs%yKh&cBdm4uTwD~9~k@+{KDZp(Hu|QL+d%X7}2SC zZXT06Ic{XHLb*RRUGC`9iO#(aqV^T`E6}n#U2Q?rBQSC_(hjxQ^cICsVo5nu0T$8N zUhimnE)fRcSFas)mUE7IkR|&XdAgbO0#5EYThqAMeRh_>Bc`c4@nV+l#qN{k{%znP ztM&~0K|bxSuEbcxxnXyPRSCLGHm)NqEN(gTVEMg9o4eY^JVjU*6u%kK)2$SqmNCx{ zmPE%^istPM{*kL^HPSLj$T`^CE*KvOt%C2^QM_X7QsJ97lUb)aTwoWg!^%9uh_!&V zIt6RXGp=&FLc2pK$X#$yafHv#`OV}mXbcIG&=A=6{oL9+EB|qUIqZa+Dm#XYd|`#_ zyepcjM@Tw6o=7Thqv&|yHZ$Xss=quJIY6BH*}`dl=h_JfAS8EKpBG$Fs<;PeK3$aA z!Zeo4JeNdlrp7TeQV#wb=p>~lubw;g0Il2fpGw!*xtsyj-JegFdZfvC8k)0wj~&+L zO#XrXu1o^t68#+J?BhEDZ|i7t$b2%Qj^u6pG~qpqy(k}-RqLjr4;?zmZRXnymcAU< z$vkDqp4xA6q(9UwW!X?=jy`o$&LC9|4v-s{j(A@m77XGhijuZkY-ZpGr9GCCmD$Bl zr}NB9G~0vN*=acFtD|pSW0PYL+J023^MwLwcKUVAhGDq=@@F&eSyB<4*9Fm~_Jz*r zhKA%Xv}4sTXrG=lu#oMl7KP&s-t02lGVBYuCh-t9_&Nyke}8LS)=;GpO&783p-4m} z-r7anx5gqfjTiLpO1z*w`=(>j)Hahak;CKr>$%ja43pRMxyb9=f6uGpmTh9i%yqL* z>2GEqDUy*NQ=9iZY=o?E&QlHLpLvIU2ogaxlnQ zK5=iF>vz>}a24rMMpPA@&{K}qlndQxa3MiF$Czo)(=J^k67!J7Q-WXR}jDlkb&9DJi?$ zMZjtcC!=3`>9QUAibKZQk6JYVdIw-08LNv%j2Evt&R^5R^S9Pb{kvKcB&dCL;Dy_w zo04xI`p53i@*DblxE+((8_#zBJ4%r|S&m!!o_rHf1YN;jH29#kvJ2d^j)M^?ppb!D zjjT$$PB*t0;8`J6uk_l37~7>WMQ=2K(J04rFMS*pK^?e*+iKUB$20~rIEmVP>JD9* zI_RecMZr8k;lCjrwfV&@pn zdk@?essDWPEsDr(;$?%b?*jNOi+ij>0|bw@cl5hNX?9F@E5~IG^ds`rMN2kB7YqOX zB)zgEWcia(OqMKn`Y77A+EUw;awzVxI#zkJzDT89M{1v1QSbnDy?XAzFUqN>A?hQU zph#PO5E6m&`TkcGLY+6~19t|VHHHW5)Lyg@B=KpX2l=eP6A|oaD%i=qfSfm&z9X<3 ze7V8w$doD~P1`_iJFr6cZ&g`8jyuQv1&ZC%?H!b(@`;+}>>7C`WU?7|gccS}~tj8(L+TZTR)Ef0UBxa<4$j7P9D1MLJwXkw;9fh^M-fpe^q z9&_aNHpRCPhT#FQRQQq$+DoIqxhci=huSM)&iR+Qn6-}*6w7tIH-T+VyXimCc^S_@ zi|TW@yJxEXJcHbeSh`su0fKb0!;+$BZ*h|+_E^7vEE%+>QRC}^U#mA|EwrK?a`eCp z+L}34liA8~*#m664izGY?2FW@U!>;y{f-4EN!nQUEIri$a8{b0T6ZpKP~&pKi-fb+ z3-c6UV|K);>gf*trltGt*|&NxBc-VdIdQoLR-%RnYcS>>;91={M!9{=t|X*=Ejeba zi1p+;F3jz^P@i)#Sf0cf;Chx)3ibaswmeU-cF_UgR|N{(7b&yl1JWI52M!z>qcSld z2kQ^#Si4O>@$_=I&7DM)9q`p=gc9nqnV@W=#>GW+&F(RbQj%udXha1ZgM;KRihmm> zCKBS)bUzzC&lb&&VhTb|VH3F7-&2~^(>F0&ZE;?r|2C$8WbQPcKCNod|3H{6!=={9 z-Wsop((*i1!1NYuKzR7X+>4iYa!a|NFJf{0i4!+9l(&iQM~T(ZRd+ z)onCe0{9OX42)T+Et#ibrR8LrSuFeKx7p|m1O2bpX` zQfN9kSyPu0#oR26x#s=bXeFW=1h}VBfq1@s-n=ue-zm1vptwdy^DaK+vD04O+0wiy zu?5AEjDD_ckXJjJb5Bu1OZef13uFLta$EM*yf=WX)`nIA>u?FmQ6 z30+Yo8f}r`{wGd-L`+9cShLV@*QO$eJn-S&y z)1v0>$-UHCX~G}a+*-wbRGBYTUqjYOc&)uWMc1pUAJ3o<6q>aA#YQz-vWw5&EYJOB z9X1xMd2KUvq~wN-w;$Ec-bvhPU+pb^d*54`pLL3+rbqr=|LH?~C?9Or?)Dd}Wadg+ zV|^^iPGm1Z6=<{$7DE_+?!3Ru)FoAQ+mBsWCE4kpg$LH{HLs_OtjX`b6c~}Y8_!{H zpYV~5+g9Zxuvu_kPMZ~>ib_@Gx#=gzgD#L~zZ8_%nSX%jlIr{pB3{ykLTqgOY=z3G zp31gkJ(h6{wZzdjuU~G`6m&=KW&7FX8YvupfI*$SmrsZw0GuEnFPuK8!+&}J9vx|V zzBDgn>Pk%@eM*)-FdgqXHFpT0TF+J4be!ExJHNNw`hu_L_>Lb&PMZ@LZ4xK+ZfEPjlCf#!fOsdcJkl0vKKY6z6d|=Mt*1M>Y(ohZ6>e5 zF<~U1NEqJR`jSTb`Mt{s3ITOW)659qIQk+$B`vq#Lf;AG)WhQaOQZ9H@#5!bbz{?D z?_yFtHpbb1S3hi=1skXaE?lg$w1CMtv%0L1o-0LrhVE|n(6qD0$m-<$@%^u@7dx;5 z!0kwz`czN6=!=x>?Hq1EbLBb;N_hDUQEpO-i6e@2K?Nl=T$c<;4_v=+N zeL?#M8lMiQuciK@ZqFB%*!Pm_e39)iv$~7>6u_Zdzwb97Kl|8R1A%f*;!}>i_VJ_z zE5{WwH#v3maCH6 z&AoY*EL0nUu(lx1V32mhIQH#+5E+Z)HW|7MFW0MIn60e;rm}xbq^#XxnwV8Y!n_XJ zYd)S%9;c{H;91IZQz|YSzar4qJUMs@$#WXtLRsu9@=MG* zzdz97e#d+E@o{U!Y|$VEq(>j?EfWrI-xPtDAKqi$?4nlsM0>Hn2k46XC6prO3w6s z`8p-@UuUW!W}5l4z9#Jjzxy)Kx&(J8-v92BjjSxDdsVldM*hU6u8Ms=X}VSDZ;OO@ zhx=8F|6pX=`Jvh>4Ufx9&y(x3jdEHXkm_zGHzYWe%*Zy%3;idFAQ9+-u{veO_rIi! zeX-6taUdp?Lppbk=%OGVq7m**32_eR(XV#TyhI~qJTwOw5WHq+VJ1D%`mPXKC0np*1tgL>#rt zUyi90xoO%>FD7hRnIYDK2NyE-jE#ddBLbOu!WARqzv6?QZj3ncLD=A^jnyDr?V!fN z0EMkRV-r>>c+BN%rhuyUVtK}L+w8duMm8^u_8TgR%FrO+7KDse?fU!^dOcZnBhX^iL7!`-Vl zG?Huu4NwuGwK3|P{Xj^g#>sNT?ldKbIS72zb*mi+(&ULckH&j&G28g{?ku% zAkc$|bm5i*VoUBEYQ}9Q;YAh#eUpP_k7E~CRiwyWefdJb5NSV}aL}@uHd~g|9N{QX zM6M&3RW^Dk7=icYF}ejQVhok0G1T(R(+MNI12Zx5v-UiJeMuQ6))aD=@*9`wq5ehO zTV>evb<|BZp%n18fyb>Wq|ArxF1V~LuB5ofwVUUtYIgc8X3yu!4wjLW3a6!IU8TC#QOrWOh8Ga|1-ziZ1C z%G_;SdhdPRf{-9wgL&X6DyA)8)c+y(reaa$FgpI+05TPl`~A_a$uHj9am<3AYzP5x z3a(%3^xY=?xn60o&S(-MruS~w$qIK<@^-{i-YOeJB%*Zgd5Hy!)BRguuCLwXY%*rgo4>tXjnB$F#a131PYhD% zxD@)XJ^o_&V77_DP<&%lb}ZX+P&H8DjSab$M4JNt;Z0@3%2$joevSd=5#OMf-nAfS zhS`{Gy9XM>Q!9cb)*HLGV7Si>c+!5fxRh~FWo-dMF@x!S;l@*%?(Mh872GX#4QTaT zR1N`6$cDVU)>_Q!HmCF`Py1{#?A#*`aqtQ6+E*BpbI}`qs_YVbwgQPA!+5S0U@lI_h1naH#;CDbF(L8QgI4hv@w`q9?%!L< zoruhCYbG5DuBr<`+n*E9hfRFxIBnmjku#O_>CdDe23d(=4UW78ia-`;@Srw1$D%12 z39^c1WKZ4S7~WV(7|iY1sRdJ!;2Yz{-oSE4zrJ{lmANYX*KaYf8Z;yrK2~UCcZ_{= zAT$ZE%higeo0X9H0ocquYCJKGYM{4x=xzk!T}z>gs49e#9G{-CCr5bpeV)U^gmD(a z&oz>$me^wK{LROb5?bgNQp{8&#%ITQX>We>yN8wQcpo()XZcarOMW4Do1@&)0=v_ffo!gb;8{s z?=SYvvBje13);W&$>r{TxMBU}=(fPt!400j3X9Pk&-o?e0CT>t-SffH7dfq6qK&_sVuGEfDJX^cmb1AG)R6ra{5zV1~$jdvqquu5H{C7oK0+JiZk4{F5z}R)d!<3>UH9Vm2hD zuqWGL#pgX#?H?O{9<#Fv+eLq+c8~EqcAiu{D_3q?IDAo@eKqGQ1fWCw+)x?h`UDj5 zkQse9B|#74(ZmE|sQLSFFM6jjs?htKQQ`0`*aEubKiJHzlj}9gy~4Wc9klxg6awet zx!wEL^ONRBKTAdeEe#k9k9xVW$nPOQ~IRn(dsJOJ^42}J=!wYNggRHX9kd~(ONyj30Bo; zL~e+?{CV$5ri7mGW8XuujlC7c7yWwlr8H7a4J9yAGA5Wv8xpDpTPBTd}yLve-% zzDGK9!taHc6s9M_!@N{Sr}(82w1IJ04uND5yi6!-T}MQy;OV*!Oik(dXaWh4uC77k zh`lq9l}|bNnswCGG=3V+IwzTW$>8&s?H&u9`8+f~ z9PCiG@{DAOF1h7 z9zu;hJ5_nEU@eL4i(0jojO~buCz9;U3mIU8AY437J}pm5{l~b@nkfs(*K~-6rvYk( zqwE=lrZ;{X+(%NXt4xPl1}~LE9U(uqaLtc;)aKlLpWQI5U1514W8ens)1wGzjua>I zbO5g^1ba>1NGV#dQ4nGc?rn3;j%Hs(nvx6Gou>amr{}G^(dhzZyY(*9%Cun!7#(<= zU5(w1HO?<|$MNe*;;l3yF)&-rjujD025(7!&Hg}ZSB44IkO6k{OXYKUjNNyMeNN~X z<>@S%25aU;wx5@_dXAcHU-0Ir#P!t>Oc;mOx7A`&N9TX4*+hn|dEp?TJz6lefI8!r zT;vl^s$zzvPTWTwE2Sb`H&h1f3PabL%~YLKDLKM?Wd+*6?iD{MHonN~MXff6E}mOojYYwdg}++%u@A-5GmQ(LZSR>|!u^>`zmJ)75%} zKiqVyMO0fT*2OCBx<)8w`q92k^0o__mfVI7Qp)M(d@=ee+sJDzas4Z%ec^!Pc@Wdo z?W1wpp58PcnGVm%XCxeeVdilcW_R)CT6E~jAtJ4NbmDMc4opn;M zgj%!>CG}iD7?wPI^&dF9gT89m0I}A2a<;LBL7IuZS{9y<+||Sp7`foA@8rJSJyM3Z z?;Q(ONVxQYc6xnpPwCHBDNfw7IF&7Yu@f?*i0iBOosz)(I!$k`MM(+nlL-27_vc#a z122@9%c8#ZC=G@5{O5?6R{Wx}%>?454bN1wJm)jBrLp&n=?X<91A!lTE`|_fN~E!^ z@V_^@9%2i7Qc653TnmTa-UI0Jh?MWTkV7S1$1a`98t`5TtHkb%Z1m#0DXn{xY=1_T z$SMu71MT6F+)S_^mXo&eO*gt;bhnV)OwT z>1L<`gXv6~05_E*ck&Hhrt3(Q7S%Aduhtu(B#qx;nF&M)dB^%dJY-GdRUNA{GZiFS zTk{94%}GbAf}#BARK9OiqNU~?-I^WKPq%wG7Ki#c%oD1!k!)nzEkcc5$h0MMQ%d-> zVv^Inm}L8}hF_y(#1OgI^(lSTo^6Y4FAIN$D=P)G>jY$=F))0Pd3SY9{it`fXUus6w5K-q44W^q~vy zhZNcO3{YhHO%8TSYirv5H863Og);j&{d%eEcAnqyw?40mS=JT}zo;_$AWsq5=Pm3u&w?$ZUz#ynF zxo=F2p;q!NDEcc~wd0leJimX?n>HFEW)Hdfb=^?A>sFH8pKI&ozPqEgeT`;h!splT4PDcFMrr1$ z`~55Hv(O0~S9$bZn1R}0{*ba?nBgEx$8)00Iy81_d0Zw(1WC_Yh5z1NI}(LzP4`qx zG0{p>`W;c1N2X7i+pGanoE%)hCnymdeJ(YQu?gqfM`+21F~V7GTg|-AOFBYX<7r6D zh`3|@=SGtMiJK}NVegF7RN|?j4WypH`kM7U1X}`8r!2o-9?EvqAc2tPUvp|z$@l#2 z1w*|EFL;bjdem)c2yI^q@DMyf3$<>So$>B_khAWQuaAI<+5__DqjU))&)GWYP2H*K z#Mxi?bHTe|waB??SqJ2`ayS2!HjfW{I>!8n>*JNM8Uzb0g5;g($MdK~o60QpnhR&|V?hF4KGNkHeKpf~* zv_9ry+#9G8P~tgQ8%q%{@<@Pzv-g}tOqLUr?vSxe9;BlBS`7t%$I^2v53@05(3?&+ z`rspr+_F%FrY4uoQqexGh7WqHRNhw_v|<(Ar<@MFEN<84kn=GX^MdMO;Tf_WnSJaC z_mY1+`Xb#Z=Lg5E?%?5+=%)NGZJ*vw-#S%plODg9ztqHs^y{K-D0QGpo0NlxIu+`} z)bJod%`E{_N+Z=*Ar>Q%S0ze$vn0C;xW3YIzE>jZtygvVIs-h^4LfA)6z!h)@t8}a zw_$q(O>7%)dF>h3#eD2hK2C6m;5D9eEFUW{kyQ`72&KV%pawy?&*s?UJO8tYy^+Waq>4kKNnEQ&s(-_?$}7QYsKb) zv5Yci!TMQ@7I@Hw*=P;&P`Xw+y!|SzgrKP`k&Kc(D$<|N?bPAI`duN;;`fiveTW5E zt+dMdT&MrE{<$^M{kk;FbFk7(#_pr1a+hB*02zxGL7z==={rvoQKf0qnN~Vrg`RL! zHMcLnK049+!1B$N9d8^1lV9Df@5>TuBG-&$ovi{{qxQ`#luB!&({tje0Uqyk%fecm zIPrdIXdvxs6qM=&X+QLbWU)T4p2oi8j9H4Me6D^-MwTKlcjD(d8;TMM{M3~Xu`fhE z^sic~TU6NM@-O|zfKhKr=6p4(K~J?9Hy5?7ZHge{i28X#+OCeihbI=e!PDye$C2yn zYs@TFs0{hLR|oFe!qR=?>A2V}$%`m`-t2;rW}hCrJhCXlJcIUr3HPjKmPT&$IzkO6 zt&v`?I8JQ-Xf)(}SzgL4U^cfLbsHN_xClR@PG8$3^|~>}`+4M!V5h@BLq}`*8C%MQttH++J5A`w=A=N$ex5(4Qe&#Tj{{ zWv1qz@1qLg|!Cf`o zE;owK11OI|PE#`Fv3h?4crG3ap8Yq#0(0u9=z$IEXX9v&>3O1)taNZ!(v}nsZv$EN61WJEAE>$~| zqUHZ99=(irTz;3Bxb)P}Zk8q)LoF zB!NopZh>s3B$@T|XR3Q&f1IBV7>S+te*fQPLI`BRj;(=4f?04lC(~4vwAy#f|19_g zjYQ>=ONYFX%uRb+Uj@1U%qGN61@!{pf3I5TnD1x-V>c~>nnL}SN{ed10-N%Rf1Aq< zC$Eu?qqo*tKa?<>kA?P}wud+u)vxVfmmMFpzP3t|%`Hk)c|;VgQ1HEyC4+g@^;B*^ zu0n2Q$;kCb)2%zYQf(;10db4*=sA-=-2*1h^p%{b+DhZp#;Sxi`K9{xf&PXsxkc&A z4Dltu{k<#lPI)OHu(-a&0+*Jo;HWGiW;AZS7%WKCioqm1j;f8JKm0Fgx0~jd5%oPz z92vy1;Xms?T;{YavxEUfL;*?qymgk2rCCnELb^yy&}W2*|J<3>R12j=UZcklKG9ax zvOgN1xYw6{t((To*7Y0ty5VV=tyg}{s0P5H1F|%|zxVIOq))W_-XhCJmSW*fAp9B7-pkNwZQguopdnE%mY%ZQ1e0 z8V`<3dVmk4;rDenmZ{sMT%w88bK+F~-TGwAfn_Gh-4U$<=Q^jFdG8B^iS*EXgtf8WIg zSh5SHXR$Zwb*Uf$tVE2=`e6H5`fc;Cv5VRtG3p7CQ~iiF^6jQW?)2k28b|)|{CCd* zbV)x-;lQ`e)Kq)>1OC5nS%?OJ@TK&tUQv5#EUH+~|BH#vpd%BIBkvQhKkF_Q&9Nt< zRD6PL{+8&533sLvaN*{H0gvjnpNfphGhPQU((j8Ed=yc7wELMM{(^F34dQ-Tx|!Zz z-Xig9V&jymZ^?wJi^ljmc}Occ$MEPuA7A#%anm8>Ioh0@oi`7adoG&+v86Nd|hen!^07L<- zMQM!UB>b;0_;O)&0GoPbX^FV9J7YmF_vEOt?L>nu+e*C`$4ea5#q)Kf z&B-vL|R`nf<7*439ZR#rY z@NaF|_Tg`-Oo7oOvhLV);QmU1ja6Vtb8E3V)FVIbe&PO6LKi)Ik!D% zWLCo zRxXa;h!YO3biOY?d}O63*gCFa8_}8AN}RuhO4#MdHA`vW9h9Sue%kcpZ%}SDsj zy3dsJ`kG}=k?IypDMLRw$FWLK%rXSbN!^txAlm)#k9m+HWK=5b`a^5}<8*cGu>nk9%{q7b&ek3y9J!M_8~7-<6o&yi%%TNmRrVjW<2tX4^qX zqnDYr?^f8V`(7X44aIyu-o5ghRSLwOw?AlD=L7J_xl}_SAb9mt#pmag`^sw<+ei4G z6OWU6NF(o$h@3sEK(wn}0f2IL2p$Yr{V*d7OcT)X1;}3*gNZyg6P-pKI*3d3GBFCYU|7Y!r0O(Y+3f{QdsT7S{3yD@1)IM1t*0co( z>QHG)LM%6@>JFTNdqH1nS&YYoHCaUQ@V6v;7dhtYT<@Iu* zbg2mV9W3iXXuJDp*e+e*guXV$9I%Z3$F zR*r|rH~**3Je(fk&5YTcR9*is5@N*!RZCSutZdU-&Z|xuKz9IRkV;@n1`F^d!27De4pSOSIH<#ivF$KTI?i#ARaHC8UzBZkC zdvR#jkOBPJ*89uMzbqQ`DL2aW;1TzC4f)_|dPj%id6r71`va4>wVCkcXS;?{57qSU zgl{y$AeO)KbKFt2J)EBrz8ppkQ-0EPE?W(mVa@i3%9gNyy~dANGGQ z*(U5<#dld5FT@N9Qx@tH@s54J;FL<<*6ed+G<808Wdq5?w_PS=EE-raIgWQ+CJ>FTl#}iI%$t?FCyBaITsvTTLXwm%)A|n zeC4ME>4;rl`N2CiJ_`2krEG{#nJw~d+o4vz)j>t+j#HD{j#6r>to;OZO4=Zc}Q`Rpdhyl zLPoTu&tIl?$gj#$?+5H8HJa2rv-B^-u-}8n$EQIa?`aJwtIwl}kSxbYnA|bHN1BvV zOjnR_$eaUgqF-88nX$Y?yn%gJ^YDW^?*j>}>gn`Uf_@3pC!D7S68|>ob891O0w|E~ zVvhI$&wg>ZG$cgOj=sal#`*3*3B5KN2})CrC{++!vBG%ik{}__JP)m&=T<#XM^}ip z8V$o!=C`S<#2zQES6x|ZRtIb?`Ps`4h0~zv+EZPrtmIo))^I%hd>}Q*5vpd1kGLyu z>XD|EKyB9L3ok(`$@{y(JEzRJ9cqtkL&A%I(=VRI5&be1?!-OBsm1e&`e#S5>;;c6j~)zq5j;AkoOfkrP=nJBId{{+wRC<&a!q30*k4 zL+qV)CN?@&8jMGkC$fhh!bxkT%k8sFF=Wd-P2AUgm8YzKFT^vJo_s4}^(@&Z33Gx_ z%Z>lDeWj!f-R%WaXvvx1)^N~3Z%_@}06DKU&-Zpd7r#hkCp-aRwc{7Aot<$nsX+b$ z_Jli#XtDVnW0pqFLTnA0DIjU@x)$P3p66KKPBEfZ zQ?F7B;Si9L@@!YU6~TJQEIvNG%JyX@tKWQBc<=u=>`wq`{4WHNkj38(*4;eXgQUr; zM9YMD2{MsFs-iq5Ex1qINAr?GDFV?dPhD7*?^ZfnKe~vR45>$)1F4M@kE2f5c;oFI zyte{|(4M55R30RZkWB@NS06e1jXSc+b?@uCVe5;dc)Q$v1l9=F_WbtW;zy*jJ&`p_ zNFy0qej)Wz!P~;y+MZw^K@&mbWsZY=-@)%Sq;5ZS1>`UiLnC`Ryz>y$E~K(){REZ= z*7^HJ`~S#BIbYiz-1W9%bZHncg{)Zx!n0)dOPY4K2WCq^Us6(ynhNq~ObVr;Pba|w0`(X`dJuCf$^|MxlmQ*p9A9ket zMAyh40H`~a2Z1+{UCe zn#l&4PjS@cTw(9hAk1mx7Txe8YH9YY3kLy$mq~v~DVm$zl{M2(}HtV|qi#sl@5)vZNuU;KFaoU>68)MX=! zIM$I}rN%JHIg5S#aAHbef3P7w#R?ENxJPeRz0!Rkyt#w#>6oQv>ut`;Jn{TZA$9Om zlM-F1^c%P1&6QC6d6=fijYF@{!3DkVILa4aUjvs&=E?xAvW)3>3j z?RbQgrX`842Nxljpa0>Ep&U94j7hUYi5^or@pO*F%$%=DWp zhnV+iEVaCul!0b~`P(eJDJwulLpiTZP1q700F@&Jklm+fONb^8LpA5Jsi3fu^uj8) zLl1=RH=i&xEkpew;aR6VKZGK?u-5=>)vcf z#NfrO)k+dy_uxTJT?(y@7ID|G*``$X@2nG3T~i2=>X?;!M*nO$FDE<=BNFU;@>6H> zpmh1eCC@bF6sjak8Qc=Zx!2T#KA1NpV+5wYs~AE@#vMTrBt@eSfCX;f#mQ4MP>VMU zoykzw7d){K>?^`*gf~YlPh;4-I*AdYS}^m4@$O{)@^+=<Hwj^6-+vFgwQ~fsn;&TlOQB#0)I~>K&&Ph(3spW&syzK0kQHX zjbzzOI`eWN62b#qVSG-phwp(wtO~4sd1tl;JF8ALFbCGG2m}!~U%9LhkowW7@SdVh z$b!ft84jQq4?kbKyO#`@coANguJ-BS87c?=wa=n_g6WC<19m%r6oM+#iX;Os+Xxo= zVCmy$$vyce?!0zDOp*Geiss)E57m``QJ+g>cRu)ROmWCioQbMa=ZKCDuk6~GB!MB- zm?$n{R)#nVXoxXYMb_j~j!iN7<~NPw(F$wx{ORS{#Wpv-8N^RKlcQCm=SW!sHZf6M z>%&HV^FJGzlSj|(*A>r?ZMzDrs3clJiuO#n^My^bic1ob`?}D8wi!!LHooQ>#uaBzGY3920i>1d@nt=3Fg|8@ea8|8=rv8(997dVQY z5n_=zE9AI&$|FFy89>BNqL*X>e-(IY8|4 zNM|}fY3pV_=QfdG8}_3mRGO^Gz9fbfkNY7C8! z+tplg|Ag<*8^eQ(8m1Ff1>QHmnFz(}S?UoCr;Yp!9aHRC457cE=9Vw8`in6;E2d&e zVJMXMtVs8R(Jf^{DJK&}uXlW}<}JG5bzVKUBdM@%{b+p&@9q*Eg5N}es6b)A9Q&W5dD3*kYhuhaR3;h`efeH z&}^??^D+HapYrhzo~Vz9VZ@N1{>#|^?_HT*zE9TeJTjjjPZ{fjoua6uR5jj}ubYqg zV2c(2mdt#~!gxn9>CB6wwxv4N%W0-dj zEwv)&(O50j;K5j(2LF`+PR=)-#og2s=Fd$HXL{Y22Y=ps>GGS20qm&(;NqA|82ben zZA!%Q!uaF1Q_+NYs4QnpB%N8V+0j`JNzc#GKjE~B{?zpGA&pdC6Ic)6N!`WE4{_ng z8z}|aY7UI0XHwfHAl>Fnnt!wY+?XD3*^TQs-S^M{2R4KozmYs1aU1EQ%sY)R`8)n8 z9Xf5B2%jrgR9#u4PXDpR&*c<@dt5Wipz}emjMXtHjhLCN?gQvMDLQKL!y2V8uZ&YO zsIu~Z#hx4e9d$MB-%xpaycOMpi4aZ;rQrp!bJ?xg4&eLeErR{-+tNhr2PxG-*-73|C5eVL&R1azx;ve!7Zhg zPb@M!5WJ`U=z=~il>3;*U51fJr*Xn;JrSklQ8Dl&euSut8 zP1qLlsT+8)Yx9-}+6551iU#0E?rgf1S(Z1~@`2-a0qsen;2LSdykQ-oUg*UdGyD)$IPzBSu zx~?k0!rbo-#%+Q`_EU`IwOA!6xC_dC#zJ!fwx1=*&|S0)`! zPo19iHCrcn|Gck$_y8cWLXVf-rUyS+BRWMciMp4gTGrGXP#ASFFBA6(eaTfYhXB<7 zi`G86@D0d?0;R0J_Aj;;I+Cr7{?kg*`9uZ+>+J>IQJg}=|0bYCpPtSmX#euI`^dwP zmLqjMOOfEa<~*%n2cw_*AJ|{~ZRo*YF7@3T z2w6UF^jYT}`E5TNTJ=6NJYcR5K&4Up;!LO8CoDuWy@29XhLls;Sq99fKtpdRV)q3) zpNP1ssFBQQ;gv!J-Qb$6V1>i#Loy;nql+WPhTWJ7qtZVa)mT_q7~cbhX(kmqIcvIau`a=h@FJREkB`@eW^b{Gp8DqmScD`bM7+SDH0FNau6rt!3F`1rG< z!2Ra{*0Y;Z^T@UWu*f`u^2I!l0S;r~q-9|CsSBTpLqdwUmt^nOsUhP^ogJ^jpC|9x zR~=SmuF|?UNz5O8xzTDcK`zJFJAV2)%2ie?Z}zz$_E{uCamltX?w45A9Sqx3S+VVw zYkoWr>i+#ga{p|Z+4QBG6IZ+SixuZAM)TZ9#P;j9wfZZzYmUojA7IZ{2otG3cMEk?xl%xQ(vPTH zlDt0KWn;q4PVMN|4-6CJLcFty?Kko$;PsoO1u-mVg{XgQ~G%V@#`yXf8 zCo^lBGBb6WOq;3H7B$VK$tg2aTU1<;vNZP<*ASaZr!p-p*U-#z0Tt8SP=Pcxb1MyT zH*+DuT>%w=-wlY(%;)>y|Lp(1u8??d_j2xY&V82G0TBTOdmvs2dlr@#oI?{x_tDHc{ z1rI&uK$XoMD$dMPeCCe{g*RNv+X-5#oo4xA=zi*zB@l7biEu z&DKN{$9uh}$Nkmq8u-2?bKsUq!F}XtV&m2M$a1R7{LbLkRS09BWO^#@wq>bmc|;TN z2CUw7ita>X=|5jA_mNy1RdWlp$D_M={G~~<2C_oCQ2Sy6!vy>=3vcz}?jSdwBtuUEg5)Z@CH8gzk)3h;LC2YRlfr4QEtOKPc;KT&Lp zILDNrpe&%~sN?PT!hN)+1gh0ESVkq;^7cqVhy{W%9bNNNZ{?ylf=XWxAe!{Yv5ySF zSWAABV&`sy>A8#Al|OSwjD#-w;Uw3RIltA7WRJ{V^kri9;?FtGD-5X31nT^Bk+x|yzI0oS8W+Pf*R}fABJbsY!ih7*r1v0o*&0~^6 zQF}NVYqs{12tki$n`vL@bFQSV3}*pCJEbMKs zb`7?yuA@cYtk`pK5IBnbx{K+He%&n=Qdyoys%*AVKynK8vL7dmMCjL{-7MVmY;cfL zGSUvl#ZFS=k{T2FW3pxpYM@#5t#Fl_0v%UZ^Z z@W}Cza*#r!KMRVgvI*O^ZIgZ&sy9*uO0H41jr5^R4E~Ci;t%F`gKcSGu0~~d{2oS z4nQNfB$dAp4!q`9ouj$?HBW!ns{4AHW=(4;6sz=UJB{qajBd) z<|wxA1ZeN||u3(~*E2 zY`Ygp8Ox-<^K%=y6VlvWrzHt-vVQwc*vVi^$Z&0Uu9yp(ouzbZZg(NDy)ZU0t2S*%RNDpU8_iWO&nQ0XhqLUkD}<-~-RWuu@dBgm4uR870PZC4e^^ce=z zi{JC-Y&&45Z+mf4nrp(i&qLq_f9I10(Ht80%b`crL(iL3Lbbl6hHGlel z#RC)69ye1-uPdXZ?>aQkxZ_%KJ;wsUjrawB*Y2Vmw9-|^4VejiL#(Z?QhB@^GH!3r zEru|k(=o<6`~wu#67MZva&aWw=JHzJ0jwjgZI|vCgI=tDb1BT}7NHkssFJ2H+x91- zmmZ$S?VHuzC4ZS*>j!knxw$!MDF8@>%GR^RSOXZa*BUv>mXleYpQrpjfa1H+h+jdQ zt^AZzVBJzUSkKfm4$`fyobis`KFyY$^%i!ByzbY3?|mV8Gu8BI$$^s%%mw<76aa=+ za%00Mn`mYAJH?I8#f#jC{P5wf_ANTzeH)5MmwIomZND>I`f^V`!>wVguqdQ+1A<){ zhcwIUt88Sd;!<=^^{$RD+br9XLivMxjZBrmv6Y9`Yvh33&h_j2#ytbe`v3#W0G6ms zT$}7E6>DVZu{9CIiUGg56^$6!RP|aoA(**0U15x{pLxQWF%cs70Cn5)Kg^eGkz$Js zSjz#7N&8f=GA7W$fNZvPTBTHS6H`UE8sS8l1FC2z%bQ9sd~2AT-xmK|Ag`#MGE zTgIw~Hm=v3YN9T2NGPA4F5jWzxT0FpEszZtnCT! zcoMeQ=zwFNy?40_L>_e%9ey*q1grG-2dfPt{XX=TX96p_t)2CK~IWc0bQGf?E7i)N4 zS;WedP5i6?+iU%{mL>MjNB*KWo@UucWz*kmrOOlUA0I_Aam6Ebr>MWr^$!G1g3WsbWeDce=YEd5nPqOJDxds7(BayY3&FD5I`WN8)dvGY`~EZ+08Q%kVxMC%qckynwUzV-95th5S z)RD2e{lV(Y%uKTmzZP9*tO-Tcf^UU+*0MFd)Tf&LIS`kD)6e7OP`EN{AssvWEPJz( zcCmkf@s>aT`w@O;jnHi+lNvfBrcwGl?yImjz`AZf4&~S#4fE93>lopCa7Bt9%@opv_PDHAi*Wn zZBX~J`IGbt_$dOJ;lZvf?1Xuxm*mK;1DNvrmHPcvX$}f@!%UiAuZ3OmL+6-?ElGx! zW?0k2ZgwF>VpkP1T+(xPq>0-=T58A;n6@>E(+`t@n2pH|E84Tfh}pI3=z>w8*M=p+ zMdocfRK%O%&?A7^^%y{May{CLIPtZ*Yh|e!P03w>sg=+%V&}bk_dJR_8C1dwBX@<<4?e;lPMn}PQ{fmh^Z0`o{OV4#bbN0ON<$SKuC=@hp>0qv zaTwq8#g%A_L~Q3csGVvutS#jcaitovZ6ov$;N|*6QI?gDG?S-YATRpPeKHi}h0RUJ zpehXY7eAStKkwdGaJ>Pq_jPN`6k@asM4TELe4#4Kp7LEQ(0UIx{ML_;-7KfEvuQij zU4aekM&KZuUTY{_v0@5;3O~%5+m(B?dy7f{E!fqw@b55cu4lo?rp%FcdkNaZ3$txF zy|s43vA7<7q{MF03vJYPD#`!WV3mc{A!;u1VsFs^qrD_AV2mpJmm79-X`ElbePwV; z9|ziE2j`NqiFz&5sW|!LEz=SJmN>t*5Nj}^#cQXJ1xG7b>7s6_n`RS_v`nuzj{(_f zT-ih3;|r84v%B>(Lzp^sQl9gilokbbK8+Bm(OBlPz7EuH@w}xDyCer5Tez$0Tfoq| zCKLwL`|`lh=3i6V@`!_&$(znV&#aWbQSQ^rW0g#T^qR4~3JYfi2*8^91HklZR!tgy zproXvLWsL8Z;lM|$lP77i`_fYr&qYxL@$^YIMyMuR6Mt<6G=M}k7zYw3v6Y>rFEh; z-LCZ?{_5_ZYF%BV*SnPFpqb0UswkvUuTb8tQcvCGllOEg(Us7pW7d@0eq%@0;@jWZ z4*Q=BR=GMwF&qN7QzI&6PwmqWc*r&LKoO5$G2(9j?LVV zpjn5y(_nEFnK9q3ZJ$ShuLuy_a_WTl^;Yx2tLj*!8^tdI`$! zTUw+iw^ozrQ%gA~^{iVXX*6OAR0SEY3IY8O$1Sv%sEjsw@lHYQURQ#8e{&O|{kHyJ z@3AL4&?WpBUCJ2MKFS0&m_uNemITm zL3OXHQ{6qgSe`qx=v^X4mX9^t2=CIEt8n5%vx+)>q;ylPy0!KJN%(;WR!9O z(9^`)X8t5SQQ~u>w4Eh0Z*7QO1$n^&)wTs4aGg7+9*w$sYnJ4|WvxLY{o6Mh` zekJkD!Qhux=7<&%0Zu}7oo*$~N*@n1)ep-hF`vfgc-qCo&CvqgFRHvmEHOdBDc$+9-; zcjtY?-^Mm^uYKE)6LE2sk7b){Wc1roI~%!=Tc$u+mdzBYk!VaoW1n=fw^jS8zTT=d zI|*ygsgE^>cEgGvNi};k_$(f2A-&P|NYvH)R5fr_BA9ceg?|Onek9a=yso+?W%^T0 zm_J`ar4*j%p&3z@k2lp@7%KMUesUOGE9h$g$)*!(%Ohv>@ibm>oT(gU0QTY=EB$S)}DARY(eZiNgP#!9+C`2ZiHA?okv_j*fIO)`DI*bix^y3 zWszj_n)d9`(NP$e4rNb8>Q^KtCMw)T0+IAg{qW(#C!ob1Q9`ml*kIyCaL7zq)Ys-O zWwOZY`&@elg>8X27GM7lUATL5EGH8}IS(m=b($X{0GsP~d()0E%#u;xa>e&f64JKZ zt=zZrt{stn8Io^zS<*qFB`0jcm7{-wYr}lyvuQ2k{ipyN%+niiuRiyl+fi+EbNVjd+F_%nYTvV*ggeF4Wg0B2D2jTlL{;e@pL{RdTl#r4V zHoLPOzFQ!cej??@wyPMPg)XF>uRiUgR z=binxoe?72%WUto>6d#=Eiuf}@_q+9a6OHwLdU8lVw%DR%g#1?ImSxQN+ zglf{LghRq^wy59^`S*?$&3(D0@J7$_==Q}h#K7N`#ABzLwhCHVlEZ>MA87z8kw*HR zrm@TR6?gg`_>g~RueWk*lXUQ_pdXxabaHai=8P4d;LQ(~FU>S4>oc>>xV3tmvDqY` zM|S$OtOMYe8tOV`fqx>rnGb;3vk+LUQnQF4JZJH1g43FC`wu|AG6CL_ZsqjDRJ`l# z$h`?4c4f$1I%_mSa|)d*Y-9d`nH9WsQKK~o-MIrc5_i3k0b47HZCic{_@blkCUYZT zXoGsH^{M`gr$~8)cZd&O+g3l=w|eaNyet*06X0ZHFDGt-P$va%09=H-y;=K4Phn01 zSnNRZMTtZ~FUXsI09I1}?5s)x>~q4?m!m8~V3|x-&vJ_Btb@!ghyK6qmQ&aAi$(b;`SU zf7%w$QCXG>FXpu-*kPft8d%ucuU>Oj!XTOqf%oJgdl|N8(AKEaEtF(NrPqs<)*sw@IASM!=Z(%x(<(XNAy#v4#?kE-V@pi3l!+im& zsQ@`Kb)hllh>dC%uVd1aq>GwE3HLPBIuy?xli@OV+YLz8eV=7$9j14A`9!Z8AO&q~dea)EvaJQJsID34@Xdt!^fu~b6Y%LN0H=Vc`PUZvsTbI)bS zAtjZB(})m*4a0IcJTNT5dx3n^ZB9-|nEwOur@==mh!3be0kRnO5<;2!ASZqO!=UC2 zx-&M}e7%Mao5iz8+zbiWgPPS;7-NS`Hd%}lIU_*IIESe*l zsHEGoyi5qV3-)(zZQ^YNJUAmGBPj{&4n+}Kpr}i^Vb0rKF*aZ3SvwT&GgG#@$``&* zG4|=FFG_rV2DLAJ$LqKKG7q3?C$r>wus5uY;`8}Ha5~i+FaG{Rv82ykEoWNXajz=IaY6A zj89BKLl+=d^&b6lc3)^rFo<9UM`=KEt*-DJKp_nrZjw;%Aus=T?1_rYhC7RibkxJ( zxQFg9K$t$CyVVs|a);PP(T};njx_$J3$SiHW)rhvS^uS{Mh~w0B{M% zv>-u!0^8h^`0hrJ64)&mB;R=3d{Ib7W@a}L8LF<6sSb`2flCBLuXX*n?CI+;vY(B( zo1LBQ`zjQXW=>?mvF?E^X=2rx45`LwKukPCVX2#k%aa%X1vc2FiFe?Oq0S)zz9G43ua z@8Ouw>Ry%!7z|?dveHYQamVrsx}4XB%3D>!?-1H>4RNKl(%6!y3+xKIld+wnp=r)$ z*|dq820PkbP>%TXZfLK6BEzmXjgp!R*AFjJv+sSm$9+1R@-$5kpFMG*GE~R$tqQFf zIK(Dze!MMzY(i^<+2j>g*uT`&|E!mQa0AZ1LaeQMra3gq4@98Hjg#q_yND#)-%1h~ z<#k27L$4sFb-I%czwv9P$`rm+Ynw5vIr&!Mj0~R9CZPsk(Uw)Z@j_qDdVZ%=r$Fqw>*_ zy|%f(fV`m2pG_au&TB?&va7QQNMj`QW`_As_CDpZU|)1Jp7WPl@a!cTDKnK*mduWF z-hFh!N23A=MnJ_V_x`c591aK{0*6(+n5&Q75m7kDY%Db?35;EaN%9Ut;E$qV2@hVn z$-EDOQ?DD3y>>8oLbjtkNw+a%|z} zv)~mdh+9T+Q&v)P!WGtPgKQ_<^~(k)Th5)R7zlpt77>QIP<*NJ`pDgWS{l6#M@piVGD<(}vacJ!=Ww{QQxnFMCrTW)Xz0%n*~r{j z(-0`1H|dZ=cU0g602bccRZxRW9DD=Z&2GJ_BKaQ96sx6V(;J4Gs&>Kd_)5z`qRH~; z*tg%M@TeW^aJq@)z(ob?Yb3{ARhFK5r^cOStKM2x0l(gb-k@6qTMMu36o*Pe671cs z$YxAn%T|V&$8ePs!2LLfc)tn}lbh$DTVAs^x%W-TV$Z@h>T!(|C9Fd`K6w?5b$?i! zeFy{!;vWXDgR23DojXUJ#jo$tC>q)JgBxIN8G>pOgE9KV{>9w>#Sw+2w+cFyxGEyR zNh^~3eB%e52MFtGzbjP#w>`zX9jr$dpyo8y!bmVS(70eCqx8P$8*ih1UAu%UqbaU4 z(*7fgN27-FX8YR!qQ(MtMG;z>X8$x_wE4WLDU87ra6Kodt~d20(dLyAxx!&SMtj0a zXA;Ebg7DK?X?vd0lRWJ)mn(}vg#d@5bcc?K&MkMC^K`wvdF8nwGdjA`jIZ<(0J9We z`#hkZ{-kUX_;kp`g4-AR*t8R}JQa|DR8AP$ zrCzSS2HBfEK$z%_#*a_RPSo2;rGa2k9nad)@gKQ=F~1ZY`X|u z8#?|TXhuDnLi8IlLF@;ED;ItQ1!ddX1VsW4*)IJqGH62Je|lvD0G!}MbxK%=gzhj9 z!vzdVqdl*YSOWli_aOLHStnfz*K#PB?#6yhPm~<6+P3$z!X-KV5@gBZC1z!rW2m`i zwkJ@1-fK1E!%C81L%|XY@xXO&Zd*(&yM=kIUH^1LXgZr0RCX#r*%CXHf!;3KW;*{3ZX z%!)G-JVGmzRy+(k@QuFyz(+=s6G%bj!^TPP{qRRi4%IGD@X*)?I#Tc=cef2oNiytT z^50et*cMDryhl zlr7?cK1`jvMZY4cx~0N~Xst`6kcwNNq*nT!_#Y0|^ie8*nqSL!iveMeJ*x%LiA8p^ zz)%vo+xNW(aBV2`Yym)3tAHg+1DhB@#>eEsTVl*pu|1DgkxjiovDf3Ml3tC#vDbm$ z+ET-O!DiB6O<3+_iM3&eibeVA?SHK-yZ2dFV4%T!@7@-2c`!&-8T5~3;}MQ2*V8#L z12}~P&E{VR(OD#*FH+|g>1hJ%f9^P?0b8e0(J|%9frHIE30xE^%bOsUo#Xzn!;wI6 zWTw#7DVW+5oAbMXxHti7VG+Pi(M@FxN2mraSZkn16;f=s0eGmB+|X*j!~@fn1E(ch z%8*yrhWtS8kV7r$@+PH;Q%_9wxm)D|I+(S(n`gmJru!@cYUfk)yO~I@O&1$~^0&z_ zNAB)gRkh4$F;!ud1;6eCwK@{Ove7`1z&>57VU&R&54`=`l=S(z9)dDdI$pY^-zu=Rdfhz=i9A=8ans9aIOXXhXi{$>Be4m)N ztCpqb*&;CRCMLPV_+N!X53gGhu!?|5?m!q+0b)9Ow4uydV3Y(0yt)fkSxPWtV(Is< z&n*T4SL9ZTbi95S`n-i|?nKWP9`o+@Z)Ldyr^8V$o}AAc=j`s|En~1L=15N&qzWD& zRzMLp4WW;(g+EoZ?ac@HeV<*gdh!|Ax+u5(zzPF2MnU3DFRQp@{BTV0`BY914XXk| zC;Pnf@&K(I@ETLykVrlnPeWeOXaZ&Ms4Hiw)ke3HBs zY@@os?#=RwNRAs?kGBNjqrF?!1Vn;u*0U3oEjFw)kebyEDrUKTJe}mR;cYMyVa_DeRVa@sp0m%` zO%WH0Q8->D;l?dQidIQ(#^js1I!4GW&Mm)IHTUhV*@XvX9(H;id9y(SbtV=dNFt*v z)U$sWD3_P()PK$ofld7-JvRnQ8hr>P^-nQD4$D4A*^QvxHP@I)u6`giHOuw0tdR;H zBnQ3*s1cRBR-`PI)unF00cx(0+h>8y3F+-AgXEiX z>kk(#$RKKbn1Au**~fCCgo>dw+l|uMY0VZyUIRs0MI5Bk@gtz15+sLpI#pofSmu>? zMZ6Mls~iQ(R5|vR17kC;jM7M}E8ViEI*57`e?ZQt*~?wz8X&66kcA-49n~|nYJ$8t zjcx-uSC1vrvW*ciknC9mJgT}*IFc7_L(EzT9GR2{GK{l;sEDSwQ#>hVK$P2GvhUfV z!p)^W^h2#8YcrJtaV98p-Jl?Xe+=IOqc)OewWquI(721&vI{3?{mK-rG6t30BV>27 zy4>*FpDl09z$E?wHJ7&N&toNbvwK0paMR$fjaFJmj~>M!S)G^=dUoXk@EFYr0I_4S z!W}Ox_xu;&GCeS0OKHGW;<_~}nmhJTt}%zp*!tG?8W{@^_!_7b2b+|DUq$fC!+jNMKrFJxySoc& z@DT!f5FBt!0#+rb7?@g(X~muDsT-^=f?zqfP*5zF3k*siMBD*1>6u2Yz=RK9-4TjU zLVoQzaf%eM5#?LbHD^e<9m!VCz@o4zmz7iWYu{S!1O7YP_J!|C#?AxyF_Es6-+YKY za`!-}m<)jx3NcVXN9XBw7<4e zd5Q-y?K$)vB0~^dXTq{Fa}hNtzXlT4S}cL>roJ;bslY0ELY2A2WW0U1?`o1IL9{nN zShEsRNsi7nx1x@XxnI6~85p`I4yXaknBd5-a@w`(r0WJyaxy>{dTb4^F)DNm{PeRh z0blVACOtGT0m3OnMl)s=XNuHmC;W@K~Unn3$Lp0V7@R zS$)wfH?6$#^Ha^;IZx{A>xH`t7Z9rsLQWCrY) z_}8Xua^6frQRclbLi!Vg`B32qFLi+d!5R8SS$I>_sbvoZS-YrJQ#HrZO#G}bhECYM zIJPC}Scz9L$jIm@jaX&bBOzNwG|g6#0ptiwLj0CKu3@(g6|o96iEQTjG?P!cwiYZs z{xkcn)!^UZ57lJ|zq{Vet=+n=^}=D>`;Q$L217KxDZZET*PY*i`_up3nd$X4Z=QtZ z{#gBfQ{A6u)*jjL>)}6#`nY4MchwE1@O|Z{!RK|6+oiBSm&90#Y*Fl2RRyy+W zWrQ?qJoh_;)i|wR?_-pA*0-at1rfVsgD!Eh+8~e%uanXhOuBpi;Fhjj!>zH$)sSa5h>SZ6d*KlOIhXvWM4 z_GHM~2=@3|V49ua+{wP6Ky>=KOsj*KLG;)qR?XWRNlF$LCUd(G_L+H%oSdBVbJ~In zA^9=NS|TO9F#(3xoOUy}c*UD6-4-hAV*dd$|(NdJ6Pxj|Fys9q=3qMKu+9uhVzPTALtqdjzS&GZH6SC&;;dT{Kb_XOp4Y_)4+a(K&b+_Ms&RdC3^83b9 zbhuw7VxT*XEi5FEBI9;k{4&x-xXdTe;;<%{xTqBZ*)5|Odu&hFGgon+k5Uwm`NyHG&SJV$VtqQGWG1`gR>T{b^6^-!J1HSfxGlC=G4->SP z(ac*#ud@Z$Cut~x)vw^!*iv0_SV-JMc*XTV5vhDm(ql9-E994>OYqBI3erO zux%ww_4eCe#skXVi|)7Dyt3L(W)Iv&QZ2=LH-!9?t;vk6ktvEy^EC3cL6Z)mg*@xa zqw(W=Tu9n3rt)Du^nGQ&)(6*@rK%=I)fD4{a8Eo-+?L1Wo)`x8g4O82T_F(^66m%f z_ZMj5!KZ(q(_@!l=*eI*O;x}H*-u4G$@>QDDRTIa4@B(`#Dr4M65F{&3yWohX!r}A zGLh(cp5Iz6!CAr73s0PSvgv`LjciW2T77DCDNSM)FE!WwaoDI&^J~{-w2s%iBL0c` z$*5A+s8QJUcSTg?PW7){lV&p!Td94|hT;wFIDad~gVTMAnK7jS`|6+W%`-u#8ee)? z$|_KllJyyX5ZiP3YnLXCVeGegsK|&n`L~R>c_Z?=*(fUdQqL5(Zh{tP*{pz*E+g=^)q)iXxNt)H1r8kNt zQKdqiNi7x@98|zcu4cFB;@sn0=x<`};*J?k9^!-;qBRvUwhwBrjy_RY>dM4ob8>T^ zMhn*%`L7j1zF=YDl9b^eb<89dhK~okhPdcu=F#xY%_vN%em#q~5puqcihh07CmV6a{*_G^Fb;_c-0X@gNY%o>0A+6z4Nrh=K>}qw`SpX40-kqkqGzmlKV(pm8FEUCUn z7Jqi8Yb!O{&&%%7(D>dwFfBn|X#L$jzqzo zSjcQz=Tc&b3=pgG^|ilUld0p%;GbMK4?P0=tsx7$N#W1(&c$tAfof^Uqi>OQza7|B zcl`S4L2s{3WtuEM!DoaL!V97%7r3u1&3{9b%p=Ovf^QY%=f zhTT`B?V}-y*N*J0Azsb3wy>}$_Ueaei>wF|e=etplbhp|GmhU82dzaBq*4MqjBFscNkkm+u$;IeuI}X=p}KQ*q&5l{Mrn z+CL@b7)tLZiDEnx4dlFbNnFF4^-fwI;r+8kMJ5w|5H3yVEwa#_1JA}IrC z3k|?aVr=+N8u;?X-E8K)Vj$2w)O35bJ45_Nf0oLfMWHb$%o{zK>kbFQfne0GI?EdC zOkdU%OqRbu;P*$a2knvB@nof}f~f8Au!`vkMZ>42J`j^u?LDJ&#_MkxSWpp*+=cn{ z9+BSokG1yPUZlSQ=XZzZ7By8Y_5)mP|9=Q&$KO?|JF0b>8kMTctc9=X*tF8im)+xW z(Q3uPvZenVJfN%3jCgn!i-ur%>c!{)*3ngV-J^K zr%~fNx_oT|TprBWODf})Q2%}+=FZEfkG}M~*;=7w6g!k@oO#QIE~J|$SZo1Uy2~?^ z;J4CtI1D^%08-u6Wiu*{Y!N+3ZFRu2M>%8Xlbj{>J+UumzrCETDJX-7V6nf;4LqL< zsob>g_M7hUWr|5~{MRFY66?>RXZg{O8a0F6#jD$pgAvWsMzcwZ%E~5aOV#@AM*O8~ z@l~pEwZyME!T(+;egGX%ct80LSSV%xSSUp+`+9I*&Ct`t_m9ynkXbK>PN?6^)FA!< zXVLD{jSDABx(~?>JX+TBzg!4DvUmA;O&l=#I^WBrh?*G}S)e+9#-!~f*kl~uY((le zv!_~HTmL2}+(m|K4cAABF5IRu36#{SO+szL=2g1r*X2+09Yo)gV|uZ5cy882@GtgZp>>yiXsYu$DXu)9}||9<8%yQ2p= zuJ$Q&B>mBflLOM58VYv2eeq1l&ccsaet*n^IRn0h#dToc`tKv|AoS4w^6~zj2QX`# zP7C+xuN>X)uWVSvGbzRcg(zL?ms(Q2kHsF@xvAB&;(@BXYXwMR{Qh)pFJ@J5nEtj!jhyMeONB>;^0G8g`!Fc9Hr59Pr=1o~A5HJ}o z=avU&vv^%6JUT54JG*1{{6B|8f_}xw^!&`EU?(k#x5D?ClUzY`;x7zpd z{qupg*z~a6PI05cR}1zx1xH;{irCxSjCeWlUlME|*hEtp%zup^JbIZPAqnB9s|btPILOR|bTf z69Vs~=GmUhycJ9l%s|5a<%Jp55W7<}6B?Z_1Onvf@5=#6%k6-(_H+JfY88#AA%)dR51@2YO&gT1tt;6ib}NvI-*}l`-a1yb^ze^91>J#3~}O zQxT{V)(#FU9Z6f(_TbwrES?JHKA}`ZkO)Tmzl9M5j+Y2fzBs=&S;TL*FEgB-hAV2u z>4Jk`S>}J)B!0W_Z+OjR0rL+V-Ff+wkozw)y2g8y)@5ScQB%M@35+E|HLLsI>v^h) zr&ynkHV3>5GV7cOgdKRlQ$yUL<@KeuUgwr*uLh6xFYj&Ln&H{G4g@59KStiCD3_0DbvNk4x z{nGb`H69nU^JKU+kQc*xC;oK{SjDWb2mC~a2={A6Vzn=rI?0X?2};Xj%yGCmd5i7K zo=afP{Aq!u7-Ky1TC!btZ++JfFn+mW$?h-Ay|FqTx83YwueJODLtTxqR`?KKxRW*? zuSoUuerTXuSB+l!xQ^-_y@%G(qQ&z2&)?))EeM1sT)b&O^(X+oC-G=qNvRO-7$M$& z$032%5GE-ecF>c9Pq(3;r4B_YqWr=U@%t88(u5dTf~iB|Q@uXB1f7%j;Q z6^@?m6F&$<@$k`dvy$$n#l;Zuve<8C4^}pOFDY*5p;4G>z3R^ZqL{o!-DGw^QD1!= zm~DEO-mX{e{;aDo{XX6IU9~(hJ5M{2{Tw#l$f;Y5D*W}&VJ7&-jMUVagNsF>8> z* zFw%=#9WMm9Ae)0GyjLuVFJ)OM@J?cT`4ujlBAeXZ+&hDs9;Amop_7%s_I$a#FUPgW zMr-E%UV)f}8}<5h^BbU(m7#4c;OOwG$H6#^R8!xv43CWvHTxLT8MYC@s93srl@U5X ztYgjQ2z9!n0%7tmfdvV_eSun3g|8H9w9EU6aG4?-u@b2xz)8CgBe^622rykE^xhbq zf*V5nnP_$epCfI6kxpAvfCcgzd!n~f;LD;?ABZCB!Xw4Z{mT|$JZ;^|qa3{c?>4}R zPf{$9Uzo;1M*}20vQ=zi{Qi!Ad~^CA{NR6_gmio_YVpsXm%n$ASM<)6v*ezI3+N)n z+pT}B`~-p9{9`>W|2()$vGcMZ(nfrozbt0e;$QytHvu7LY5)3p`9JU#hWG#b*>E3S zt@;zO6~%y~uN(jWpre}Q5nE)=7%gEC7N1+%M- zXzR}b@222@6UB;$@V_e`J9^4U=%LV9JM^3Nz`P@~WCEmI=c#J(>dt_@2V=@pf6h!b_OEQ#2~o}ndKjX*Ea{Ui65H{PQE zia+5$JmXI*D)cWQyHB7;?!06kHKN`AKoXsfgZ|&t9uB~AkGj~WfYJ6l*SdI3G}^|> z%cD*B--RT2p3X~qO(o1xH1D+$L)QprOW&6d3D;eSkpP#LASod7{5?gL2RF z+L=ns!$ypmm%3+X8ef)|`yUaV%=lh-Z{@DtNdf4+#*yIvaGQYM1pnrP>G?My1lM1&xAhSc( zGdBToKuzo_SLyq%h+R? z`}v}EmVo*nS_3uDmrkQo&&}L6QZZ{))Y7W2V-s0X!iOc~HUFZ;o_ndMB%}#W11SLZ zbS%hs^p2?8QU6CV8F!*A`q|?lBbhi9GgjwNy?Up^ruN_Cz`_gvtqbAUs>JjOKk+wpf}4N`Z<)OOR~ol}g2$O`p#eCjWhF`QKBa-lBM14~+Vx)hIx$xksFATZ zeJ9-x)Ce?XwbTD3q+qX^Mbv)GMo5R9X0QKcV4=AzGH`7Z%P&ayRiJhYLX3t%b-QMe zwOJt0UzfR_;AO+@iq6Wx?r6W*oBQfx(ROh|8H%ds3SM0h=+7ChRAAeSdWi@bRfLd7 z$_ArP`1S?UhP7IPO$9+5Poo80BHzgo^jmn4XMh4y+V2-Q&@Q*hxaU8A`ZDp% zPmnKPdO?Y?U`}^`3ds58g3Y;0Np~3l%swYfc!Zx?Axkw2s(qk62%;z%0+B85=%E2A zR1j?Gt27N1Dz67Je_&ZN7QDePFk;w&lsMF=h(AA*peXHR#bXw4k{}Z=30qKuXf{hy z-gn#7m!~Y?dBi?0yFc|nUg@v#un-qPNl(T4={ki}5VxT$fEAYzPB8q^_r`2bUHqIm z(_TVUr#hgJ=phiI_?~REX-DZ>$Ka^Lc1>f2eKa^_}rd;ob9y>du zYZRcgFubXO)c0hl;ngZY-xp3f>$-&fR$q;7H&Z&H|L9G#iFWGmm`#v4dtl&;)SFAQ z^Z#_Z3>5i|RjiW_b#De)fV%L3isGxNZ{H=d%#nJjuw2o#y4y~hC4;C0PKK?EEk-GrO{NzC`rt4yTG{zEsh3SvN%(DYCS*^aVJsL(-^e=~<6{mdE#& zLK?9!Fsqa2W@3#36ob#9!85lL2%%mHcn$0+% z?H&Uq-}B&hpvZ)~bV7N|u30n%x-a)~?8xi-TYW6&mP_0l)oqwl{Rutg* zrtp_&Gyvt=0ODdc3MudTcYVbDes6goO?NWbOr>(JwI{IO8#XmR7}L@K%EIbQ-!nV- zOuS$r@I3BmwDUDU`Z%MoBh@qbHnbgPs6vq{EwE^jpNtU>*UK2usIl!K=nR1JY-R2+ zUnM;QFvbrlEW9^FE4sP41yA^;CLe9lIU1=D79=9-Ct}MFB;25Nl0ExYDojm4YQ(u$ zs{4$hwMG)2fpEQG`sGxc-$v^jVX@;0s?X~ z_McvJ`u>aOYk%9n|Cc*=LfJ9Kb)6o)8}}^?)eZVI(|Y`fsW&G%!Ocx&>}NeUNva)b zH)j?Y4=Jb|Q*3lFZ?OTSv9zqm0UifGU_DclCINvPGC|-bV)RvfaR`%MTUVE?;b9|& z3@>zQ+NCXsI0*L$|0IeffIwhRrl+Ud@eci`rR_fp!r-xhDU$lQ6M=!BFB+;JIda5% zkC-~hn;Cwf#KC$Hhoo%jmEEqX#bds8HBmoo{tLLoz;{YQZFI?KaIzrMu2zcK|jUBLb3w(%$ zAcq_P*SOI?XRoG;*E(eE81duKJoPKRhYn5N%_n3N(h2zlY=~#pNzjZ4@1@U4GoN;$ zJTQTN4^^`zJY@+RA;qT!m<S+L6am}L8xn%-uz{bDamXa?OkXyLNpf^gc`V(5kHz9$jqAMUm{_ROL+<0U3`5;jAM*Mdo+ z*UEa0eSM%h0fO5sEh6OttU#evQvjqoL`DeSt-KH1Sa7Gr49Iy3%@5-w|(#DWnwC7#m|gnb&t&?gH0{nM_fz zY`|p-+t*PQS5c|NLq6=eWNayEfArZtP!|%*cDT?MR=)TuDFM2-PKLh40iuOVBnDkZ*qGcb>AGh~ z;`Obcm{5@8Cxu)))QOLCmp{G*QjC?9)tCd=y;-3XWtrGYRu`_#OusUCc0?UP|16rb z4%kky4fBga(9(1rD0vTn_OUoYja$(Ero^L}>K~5FqLG=fP|- zP)s)Ms~@_$ds<^pu-QrD;D3)Qf+awI8CTBz?`L8lAyi1BKEWRiJ#sa zTJZlUdk?rK&%J#-mMZNl!s%-rs6Yq8X&s=5$hM_b5djB7L56jpOv{uVYsF)&P=kx@ zWF$b?$OwtG6;TH1lvGJD$D}n|q)ETjc!T#-u!Je`z zA*?6)qtmqj{gM;keR$@?cOU329jdx}_pacfi(1QxgZ~MQD2wl@C$XD%PnBb^#pQM; zJH3h_43XRxP2ssipK)F?i@C{ye!8%BtW>YBZHd#)MbFp!eomQWLHyPaa_#;De=Zu$ z@Cs$nA!3|&a_%Dk)^nRBPtJ+FKdqm^v3LcX>7tpf?!0L4dE|#5u3chJzJb_>>DkE0 z0x&y;gz2^7jJ!$42vr{p!PO|Lwob89NypyZ&AMsVf+Hl$fU?2%<5)N2x<4+t9RU95 z`&Nwf$OPD?Jf*cT!%8-VW$Ptxip*SYTT64oF^67&WW#v5yQdTJA?qHtNSFZmd?ml9 zJI?<4tK41^#pOgkoVi)~Ug+%~dT>d@i_hbpjf&C%9JE!&)y813PWql)i6z4CP@E@* z_wrd+zof3>%{7k3Vl4E(*32&Sed$e_NdHp!ZBzmX_u;IA)y)`mZ4@r{>bA2?VB6&I642H+p{*-`5!=i#PA}8iri>f7W9PkzpGFRx z8KthwaJa_AA*l0ah9j#OBnM5$&weaddjGXMs~?&sAkO+aYt}qkRrvhzDdWkP%Ew+D z|39b@MgNLA;|v`WT~R!k*auI(iqZ%4qJ)Enc-&Cp8AM+ON-%$Oknbe6_?@2rxW!N zvUi`R?UH>9&(7*u*~O*B$$HsAPJY{?UptA??Dm9a1sxSLqJoQ^UutI;&zvL%<7R&A zkV);VEDvy^|A{Tb1i(&NTxVf0E&`l`P|P_l)Uv5xyvO5-n5z6=ZBGIm#o-hd$|`b7ERJ#!`e z@$IU~VA_X{eOX8#!g6Vg8g1fyx2pPvD(rB8CW;{q)^5#hULNGxnsAV8ACvy z$KtLbK$QB-#*9%dX9G~}re0im#5;BJ%lrcaoHco^XSk>HTYrij>*1N0EW#VD%i0J0 zsX0{)%R)zE5=#%W#7GC~t`rL;vHhnAMT*lTs4l_~iaZc_IOyQVwf1;^D_d$KgPVsE zA+OPLbx8b1$^X1KHBiyc)Ugp|>!nr9%GytVYhIjX*RIJGoO5lfSw0yh44VWCYWn|V zL6oo!(`)3cPnge0k5_nbhg`uG$fzc3yFC+YJi_0n(}`Xs>70Vb=5cGoevXWZ+6P%m z5K&;2c1ZhXDRm1&GWBi>ocYaaE&WrgxB|6uw$bj4G_?pZLE6F|_>w;nHP2y|d#Hlp z@OE(SC3+`TbsU#f?%*+)z0paN2du%+Iv^a=1J|W*0rS}Rr1gVylH#tBY?;)IRy{*s z6zOC|&#>FZm_BH-lcgiW&`eUYE`-9D)ZuYQroHLhw+ucEMd5qPcL zUWorb1CW_>l`yN`8s>vHx4NLhpiZ**c%LhshQRdcN}dYr;j+o2Gg^t)=^57-f~aH>JBD zQ#QP8MfUkQ4F(d_ua4)H)Azf!cG%?<+u4~J86RDgb&~K-0>C{v4_2GUtUcJVtbhuR zLGEDvnl(Gj%bs-})Ci8LHMs462=>u%=%E&V>?YZY9n1WGU_wPV!U8uiV=NmP`y+Le zhpLUk$rd40pA4ZRaW_M_l&n_^m>o}dS@vKbc?yO*0j0)27qWUhrg~b09wZ({26{vw z!7BMsJ-BzcG-#cdpzF5QCVVH0xrA}i)>7dq2`VfsJmAL?)krM+`v4WO`on^BP<3BG zl6=DLg@eOSECVXFYx92i^OwYs!HUE%LFb|B#HOP5#KzmQDh9sF{U&2iQ;fJo2LPL` zj_4bUrwuu8-xV<(<#?f@1J<7jpXK5z`)44hPtXAS3=l&CWDJ`O*N~8qj_;)RjwY0^ z42c;u;{MLN?aEf$%q|<5WEsx+N*oCo<22>Bp6AWu=4-Frp|tDEq_iQU4M&$zL~=01 z?(kys-D=nC={5YSsMP?lP>(b3Sj{Z$5Kti2JrQ2Sd)_mN2PPZF!fZ8tmoF4%=VB1o6)^A7JIfx<$}+hkS*o| z+OzA9ce6&DS2>p6>SD6XbbZ?L;9S~d*l~$=HC`4OBPsd1ewnur8~HF^H}}z_N6#`H z8ap};6O2KKrH^b@gvYu7D@xNj6Fi=yYaIOn!-Ss1FtYEl!?c;vNmi{qL4J3W)ng31 zoYIT#i;I80^jNkxZTV}sT>X#rUr=T23f%XQ;3J8=RT~U#TVb2&-ut{LV{cK;*`+%2 z3F68I(L2-pj~5C3xUJ=#}(&ENAIPt9}qfOBRjLZ|fVg%!31A>)JcP=7Cj@40UM z`e$p(mp!3dGlF`H+9NFBu~Mj_su}v}56P1e*MV1m5~_xET?Zmo?AJwvlm@ z-P_kl$y%PyY~DK+hsYBPPHBlis7dM)^-m5s(W^4g>GMi0m-#&8-erTWk{}PPAT(bN zvIJaa@5@svo}G_xvZi{xyqb#r0C{qfwVB!S{vVQ<28wsO?xSH8^MKr+B%5d0<@2}BKEPENo*ZIiL-iTZrOG-iw!S-HW4*dsH-%e|7usUP@v&IR5>cI zG>2n+=V6T2QY9sio`!rloa+&iTkl?1^Raq-&9(2(1id&eE7@Ys>icJ)LKdM+5`Qdy z8L`x^^w^IGhVp>V?$``aju=1>gXcQ{Teq{!E@4-XZGuy1VbFelHZKxvB6;2dVjM0a zIWQz@8+_32SFYr;PEW84-ePHqcMOA&nHRxif)T(9l^J}X_EcwccX0(*O(?>Ti6y^CkF$C43@phy#6fqpP|9=}$1Y?gCASoZ1`y;Tv!_>VoaS9~74e37UC=ukqBGYahJD@SPux_NUz3012~f;a5N~5l zbg{z@cPyhg{!Fxw$tgn&Goa=hSw7s@6f6`;5fJQ$+0v1mI{n4(M3PAO5eAb)JxR<7 z@{Nedb%9)ZV8;Q^_M51aP^tLCxtNn}=Lj#-E;KFZAUvm09bLH*jXC1TK4Xk2;=5UA z>>1Kg`tgsXb>YG!{&=;qf%~Tvjr;GMI5MI#cR%Gpv4L0cGPxMxPzMYm0<7<|HcHmb&>X!2K^pIub`|~P;{4*975g-?Fa0$!!!3O^ zJH*jxqT%)`qR+`w_>czle99*AMJnZ|jvI%;{4&aaQaFa~5XTI+n;MP&j7p zeXLPWPzQ(bDL&a|h}ITjI};&yL`;KTomQ7(uDwrK{48~ZSbDfOCy?Df?Zsa#D&mY*_RdVLk>V4&- z5K}FjZ?T&zw)bCAN;k?bJGzl@ieFY_b`T*T#2$~lxqpG2IYO3xe0^66x)J6}r=x8E z(!}82dXO~zmp{+9lLQcY*;9q0XX?h|74L;G38NB!sH-{|TwQLTO}h;eJ-b8G1$>?Y zox!MthshDW_!n<*(OA4wnx|icR{YCfdxm~B4k->2%nnmNwj)e5YFzJE+r&+ps&`Nd z9qxiyb&`_a$J9j~{dW|+aJz&dDqy5c6F~3m*|UD|dwd0*DVP*eD)t)H$SpL!g~3v1 z=)4;@zxwmc#2Y8!o7F|FG|!?p7YS^Fu_K!vy#!Vq;cOMX`I6hm{}$Xh#b`;rsI5Ec z=kK=#2f5vLKX*`0o}wAAW4nTp6mq;e_|G$AL$dmJ6swNj^*=hN^hQ`uZCEn0+xu;u zLS5XRO`7YpOcJ>4RT7OTvJQ!eKiL1lL&P*ul#$8rs?`CLBT)t7$Sknk`v@6yE*Zjf z@7}$d7;-D_U%ox&*H~@Z%p;(XO@ZwR4k%t|3hK%rCINo9Haw}HX3vdXv;VH-7sbz! zwcOBdRhp62S)0C$5jXGQu28Ou?IN2NB{c!SjO=5(Nd~Z;W zhl$WC7*Xt}1xI3A3c|d%$FmnrI)zTYcIwbd8uvuWNTm_TpJ;ALezg%{xQnDr za;m#p=&sXzY(Gh2J3)|~_&_9^12iKncA0pE-_86A>oFBP%O-vIqj#c=PvOR34gKE9 zyqdVYW2lC|^V<>qrBjMcA5(bH&(Y5YQdyFyXBNs8Aj^G>f62Z-zRyb3zHoAqJW>3t z#=L2O!|aiCr?Hc6jirItEJa)`k6Zkhstq31!lvrpwJ@R@94YbiX|L)bv>nmtY2xXM z@}UG|_6YHn+>+*%uS|gOk_CT#8QBz48i7;h21&EdK4EX49c&@VegmM~e)!>scM0C( z^~ik^_EelA$OgdldU-GIb^^F?s#?$S+6ua%$kROxTJAL(8SuPDWAb-Dk7k2$L0Xb9 zO>wGucCK95EcbFmD=ux?yqQ=HL_#YsuenY#NSNN6clgmY5<-@o>c#(>X2}%CoqzYJ zdy&CdxXSJ+8I_55A;By0V^K5q?eYu6T*G#HwM~hQi|wdkcwhbrF6c^s^lO z{Mre5!In!7BSq`Il>7Sc1oVs=_3xi*3wEk^bJ7pRLpy$eb#oyb0VN}@!pU)@N%B0K zijg9?MGgQ8kjd)fV;?hfqXqv$6jnQ2IEgIn6JSsy9DoVTaHu(wlJJcD7gB2{-x7sm z10(b{o7_|Kv+CskvoW4Ka#CZ`K~{O}2Yewh72&h30lgEi9IJ^l7}Q)9GTNLZsG-;KBicYjqR zXho*oz@PPdAJONIw(;5!Fg-8p9{NuwUBk@?EVrtAzT(`q#eAks;gN zIl^1S(6O?$ienVogx8Orx{cecn}bN-@YVVF%QVblcE%ONOG;35bL*zrC4VG56cR|6 zBWK~;s*i7$9p%gt4@jjmGI;>1ZiF6)FvfoH&J1w@+YcP&FXfgYA+ewPIksa{W2 zmux(d`+8p3tp01=@YBs>Ub#pTp!eC6(-)rk(>+c(<04$1{H&nV21Gnb+^|WO#0~4J z;FLT$8`)gv<}@*VI1j%O7FEiJsWO)QbjktlW#}WkP z+d_fu0&q3#Kq>@85K_o2DNARMonaOP4juCf?Q(0#dg+kiP;%wVsL9h;pNOwQ^{9LM zYNoGC?Wr<{SQ|+ocOM|2ZJc3|9+oSpz{Q2T@^cXJe}N3L`>v5x`Se73ukx+g&MRWZ zyw9dH&jo{wHR^;4o`QLFIF8?sVRf1_mC0~=eCjM_YC)#Ii{hBtPFFt_NvS*SL0`?x zOhaA>#SMeZroO7c(g-8!<_ZC z4tC63bLKB7wc^b;moHjo9agTn3dL zL&)kR(VJ~6nW!nVb6S;YWGFsa3v*kwxf7y}D5K!P7UP`uM2)`F>gx*{J+e~qRyH^Yd#sr6@^cD0pFLqSm~_Jh;o==}E-A zKG&Xx*>fa0M(U-Rc+%SoQk7~QP$!_?U*f5M6*3Q@@ zd|=;FELv0e+ipgb^9t)h1PrqcR4qO zzM0`AqIMb2i!O2q!W3=S7TzQ;n^!}Kh6ir{jo5^j9%VbWt5`3Z*w(aJcLd$9P9d@K3r9ke?2(QZf9ufl8olY*3r>y zwarSRTg6#|Ud=!dg&$V#*_q%FdgJ0s}=r+?!BHUB1Gt z;S%GCYwJ@%M$%>evb~N8c_}e`qy|qnOOF%;F583W_xC`hG%@=7i(_?*AbzmDPKh z{^;vY|7|JS{)gU_Kh$gVb=Ln((|U~|_q!FEvMWy?@pqL?+3VN9z4)2&hc-Va-|)Nl z`{OTO?A~bLJnIvy?JJ#E{V<-L#hvw?uiELNYT=J3jO~_h{I+aVjajQ({j#W~kJZvQ z@v&^x%g+OidK{FTnyf=pgB}sTkmK3?^Y?zQPPsDmU578aTJTRd1Z|uWh9dhezWb-c zBF@{#kp7LTvd-GU&cOyzmvSB#^Y85GXJLK<a}^t_jMrIx2H4iBWMypHX{~M(UOU`hJ6CK${Vy6{R-RbW$W#mG5;0YLvh?3y zQO#UMq4+xfi{cpbxW*Zd_Mw>#C3>pG#k$gQxuJS!#<#aobVPjHbT7To& za~EKpG#O`Ol|>Cq!6oiNbGED?na3 z3xmSqn`-THsBR=5P1Tuzv-qELPrW3!e(0AXuBBD=61@+pO?UITS5c_>yK8#qxr#XY zia6ytGA}B0vjpyZ7s9CYf>{}xY@a!9R&dA(9&4_vRpQ#a4f}9K>yJvvFy}9D`*3xH z*i=)S>MLR6ol=E)0?+*P;xfeM$i`t{hDbzL`(Js83$w;ex+PXldT=IV9X5#kZ z`{i`+Co6)}(bQzeDze*~U^5kktSpT;)L1n>iA+Xar&^1x4|}JQ)Ac~@kpc3071Bo? zwR|Pm!>O4}mRK?I^(fT(ihl9pXQ|&}*jcmkg2MR;ybDM`FTz5{Y7t)3?Vnucc)dv5 z-@%-ftQMZH<~40toRepQW@Pp<9qkf!hGqy7TyJj#-OE~fdD4P4s)dBE`18wKlw%l$9#Me(PXN3fOC3*??lkbq%seQCYnw!kfX6^5p*Q;_ zvq*|xatEGbEyB2L_n;5mJ^9JJ0*`h_ZL)z3GTJ6ji4j+rb9aPMAp_q_yfWRlbpL{0 zdB@zxx^BBZ;H<(AbStj6(g=wkYPV4dj33fq7?majm!=i>{aD4$7o08E6%}$HH5Q$! zT~paLR@TFcoZVO?+@{Ue^HO*0vy4;T@l#AkgGba9U9@|uk@uTNI4e(Zf_IO%DCrMv z^kNuPL`FB=F?@c<(0{-%aa5H#kK_5eq>rJik(u4XtXLY6DY?nIg!lJmU8s1IJKHue zgT`OSvt9L#*#UfJ;gDhDQrn<<|IC5sJ(D4UN>KxPWnRI|*TSC3$!*$&K~ol`&1V&- zerTKU`m5)%u#lsDY4S?NlD*^{ zFq5E%P~K9)Cb`6@PC^r>F+YvtaT%Dro9423*$ z6N)_v)oG)K=R}zjn(C}RQ_&^9jjRbV(sMHVvy~>tPsJ(QHhfYzGWL3#<mdU@3-#rdw@z8#f&Fp@+qyiAR~ ze%jh6zVFj<5^qb9E9KZhejh`}dZu8TsygFdA7Yu>q+9nwbrB^q(o2%PBG-G;YlKiJGxi(*==#pnj|(ainJ793hE zvCD@_F43kHX|fyCVWUPNj1DA#z%_t`eTRq z5jHqRMk|wO~gBotPf0}KQ@=y=rc%ho5z3Gqbzs0o+!u%;s6amsi;r zkaThZ3dXMPI&>3>S%!;Y*B(RBc(sb2c=KKU{O&1f(H%9W4L!G=I$^JM?AT#bHDBdE zE;ky<#_+R3ej|IT5wS$_>3?dteo{N2L)?YpT)5Uz$O3a-B8LQr{S(~Q<8#VOJOlXmep zX#EjC9guWR-jj2{^!lSzZSk*m zUwPLoa(X+jByUbkOkHG9RpjIvw2^nZxJ>XkdMwQUp(PsjY-}~^{oT#{e)QY=B-|Jt zgpTjaXS~Z-S5OUWNzLJ0bWW06C3#R`zk=v!$BjL2NEH-m^1xdoMV5;t(X-2+Pwx|s zah7|14oM>***Q*%nn?KaQJQpfnN0FGr7&p^P7BjfMB`*J6V$%`H%1*8dtE8_A>^@qq@r6jvqX z1m3vMeaQQeGFfX@Mjx(toi3j*}0v8RRO5&dM;%80@r2ub_T-9z5Q1uD;gTY-nfs|9(wx;A!l{ z8(s^#F8Yrx)Np*h@08NB!|Pm8U3PZU^{df`PNHU&javB<+?7q{UR_`D{?j}$4T4ma zeHFCjB&|hc>yehZ>T~EMnpJZVe9v2McF`9_C-bChS9MTIm=j%WyfVwIrmX$8Xw!{$ zunGi4aO?F+88Ig^7?xr%e%db-a%-$9jYA`aY!>QcM*q|Z%VuO2yLQAY_MO|T+!^mv zl~yKl6T5c(GpXDD{pqL)LV2UODX1sERz5-NI!VQm^rtoAwgo5^k*qQ0*b*szhn+vk zJ>chs$nP)kaOxWqMO*!jJdtq*@{f-je?4`I3^%yFx#6Wn*6@&d9cH z+wzdJpriDm6@~Ez?lp1&$Q6tt>0F5F1(Kx{7tB(qiZe!YaxtmWKpmVl={oYjV!yZ+ zea&4tYt#T_ZG z!x>9T(hAB-nkPCFd>yC`t~jrx@{Tpp)YnVK5B+8$-&tQBHd3=kt4h|W|2S#6nI*fd z1_}?x(k(etv`Q_{MtMfS!!_l@!cjJxzz*4;Q-4@aBI%`d_vuqB(qBl@HSVZblvyM` zCRt}B3+?Q33x_T-s~xPo*^za$G20xI7*(tb<(~qBMV!N7{CHPkRY_axm)hgM#D+Mx zJIr@pOe$AJZ`hNUkaK1FBL7r?vK1Vk^QeW)CmnnP13$9GqG_Bc?U~rtL*J;gdkn{3 zoFI)4*wSxMZr+6$^+fZAC1fQj!RLXH(*Xnn563;BsRBEGS+Xo!IklP9Gae^C$jY~0 zEXoQVyS;`H71H`8DQ}QjRJl^zQ~N0O%g7DaP-Y&0YA}49BWBoE;~JN$coZ{ObI}qT z{9;zP5yKV5qNHcgnslR)o*wDiXi_A0G;2bUDW8#zu^iL9oWRGp~^x5TMu)r7BqznRgxM}REYaaZ)wg9f3@U5 zSe~T4Nl!6)Y?tY|Y$7coqb=d#(i0=KI-1L*cN9EU;cD&Y;%Azl-mueQH(G;t=I?7< z15fXb#cnJ0L^~f(<|D6XV}0`+KFnG{%Ir|dxtcvW=vg-2cGYK2A&wiy?&Q%)DFFs` zalR+Z#Mw5}Se1B%RGcGmOS-#y3R{ePtFDkDa&(u)wbT|H(M$= z%+WkAu}OQlWI`d#->G>^?veJ`I||0nQME&a%B1O|L$luA-Aai;xAl8$s-BN^JATHW zB^@7BAmIXNAQ3;4R+RMa0vFmub6E()te|^YyLbf)S8#8dD^OwGSFY!`6GrPWe5YJA zl%Q>AziXnl^|*E*|Fb}f)};r+BWTB zKyCnRhau*hLKM4d-L2v zU&yE+9bBn|q&DeGm7cZSpQjy-W3&-G3aK5XV@%z!a_I0Qtln7+azdf7Ef)s49#yMz zB(WCf2x-Le&aq9X0eQl8fnVr@UOF8sV|x}m=opE1P@LN~VCZlIj1nm@)e%+kU8(11XRf2G9Ea8}MF-V=W+-^3)R5XG{ZzE!J#BvK7XM^DvsNMbPVl3*g{ zHzqnwSpXlt;qzQ~p%BiPA)k&>P4Z-8Q63r?ZwTU_iwe0xN=#l{b9j9t+QN0+5{*=w&u6X3##Atn<3!CVLlHyfPWg!xTr5s8c-~~#;fz*V9 zrFwbAImJbK#j#GInRYu^w_?-F)`**-G#?OtIt`Ghb;Bjsqu90+W%CRvmyp{lP7^;| zKfNZ-vgr~+MRacb(f_WHFqC%;=wr_g3&m#5aK#9zX+vTry$dCH-E>|RkLJ23|7LNP zUY6jd>z#uASPY6~o%HN3IlBpk?U|1buk(HU6OWD_%}x#+%# zs0y@;4{VDu6m(o)wI}BWsPeJt)zFdHj{c{mrF!|rOud^yru?IRcKjT)9r=l?sVOC= z3fWUVq_{;RQty9M6Mj zPe;R+l^=TU3jwM)Z<%DAEh$SORs%a#it-P4zI`K7r{!IYOZ@j3SE3+YjMs*_K|cJO zJSM#s6^rWPa2QIuT_mS;l$0;4si_r%S(Tut7l%}=(X`(4`EF7TxkP0&yOcZ?XV>c{ zu?Ypq>&x5QJY5U$@xOt!UC;kLto4>l?C50HA|!eKg1g+qSB&sI&I(!o2Eu&epy%Y;>~wIv-j#j z(d=RL&4O;Dh(?n^*uJ>Z;+>91Q_>ntbhJiMK2)&pPQ+Co|9b~7IXv?yY#K4ye~4lb z7__YdqNp?r`wd9;TTMkU}0^qOArBBh# zxk)ynbiJ(NtOh-+&+tYwA;Td(l=A5C)7gvm_OqCMFu+FR z6_)b53EpbDNxhQ*NeHKD@820X<;9Pr8|#j|embrK3#u$ zrfIr~8+{QgnP{$UPY7@X#4BbIP>MkJHvYiJKj&|Fx|6i;6Ptf=<(|jl?ohlMv4@Ro zfFX~t_Cu#+Bz?jJDIp3)W{o6{O9HI_0qV6H8e4=Tqz<2yV`f6i1_mb!xeUlhKojtGJ?!PIBuM*nNZFXXDDPCzE-U6AaX<~z*W*~ z|Cs35VG!OKx?PEXkHS1IrN7mkc)ujFW^FhWQ{9a^(vFCwo{QI#CwE>yeb>W-2uYNQ zDf}Jo5sd%Uv8olfP*M7=h|iCX*%_bz=%e{Q(>_0F1F2&KC}WwYx}5sZo83BE7FOkx zxQk2rYB4x*`yPCi=0B%*NB_FrX#ZpjyV#CgazH_*WLGzoNdbH00ekYnDu-gV1#0gc)%My?}bVdfpO`rank(64tHzPBw*v`61oIIp(V^5FX*kr+U_|} z7d{lXiqHcb#`zZausA}(?x}_i9XGWF+x_g#%ZeP?wKd;UO5%vP^CI@xpCm>BmB2ug z_Q@?O6Lsaq5JCw%d_#_!f=)t>K5$sNyKG$}%Fnpr$&WFUy zdFUvyT#FkR^m*JS?rC$jlb;K}%5}$#w^F`zDMLPOp!!+sZ0({09bZtJDxsG{B&g_u zdz+0OV?wyrQLs$7Zt#`$Cj0L+!gDxPHS02$FcI@`&)*$`Lq+?KBx2~}XmKqola80_ zB3|spG^raye^jQe$8`L$1kIueZm7^EeYTSP2M1BV39+l^}BC>U(~9Je4>E@i~V99;g%KJ#67~Nn4)~* zA1xBgqjfKoqLC+4Z8*^e7kBwG zF`Sa673hfCT81HB)~AvnN=p)?$wPmEUWFI#&_ME>CQ=5+iRxz!FquzVA8B{W3{m`R zB%Hd7sD??x;?_jC;jebJ5M{>33?ArJZ&7tnO?)wJ#7HZRJ z3E(8IX7857+IT0qGTf3v!*CzJuI)b(f}7(p>Bc+b_v$7;$x+w$9~}4TIPa$GJ4mm_ zx+U`xthj*G63{_BTgYSfaIn_ zJW>0HA1}dOEPd@n(LY4O?1-k%gxTqO7&0G(t^#``U7*6%4=*{l0b^8IbM`o>bd-fZ z<1KA6*I8w5c3M8D^tbhQIu3tfU*Dk|_3F*9*LL)-`PaXSn}WSnFWMyYtP(0pbuXm- z+X;JUAWF*#gw<=buF&DYM}_S1EHrKV3-UH|ynzKGLbeD-*6arNA5_UfC8d`H>A z8PzFYFW@+`TcUMrIvhp(CeTCDHlnIB)&DK+VUn@2sW*Cx55RSsDkC|=E8l)BE+wh4 zy>D7&Ip|DFq3w;iv8E#0bhY`~^%a+BlfmCi;4K*K_U?kkUd!l@~MO(rU<2?+_h=oA#S){^@87=u7> z+5r;i)kc_-@;~a5#y*bYKSUpN%$>V%<(AOUP-S#c8=$ZCq$li~Z4NG^T7i7QrJZS3 z9m>?Jy=ar%8W0eGLV4jAugjxE_n1?|DaHx&EjE1K)YOEuR|RDi;c2N`eix@$m;LLR zYOU(HAMJu^)wUe1iUd=&<>S7zKf}kguna%^D}2`Q$;imay`V9sG$v+6*JtnFd^MQp z1|e1U6)~f$Z@u{G+d_(*pP`}Q9<U#T`o68??obTZMacvpT7P~!r{swm^{za(QJ^fx>>dUeCtxv$gOJ)EB1eX7SvC#dn{>bG>Fehr&bJb1og{`ZD+9?P zAGv!&^+9yH`Cz!ZVq)t_)w#4~v8}PH%!LJr|NZk{cq$=ctM}1SB3flSh-MUZFBaeC zbNw^ILB|OwiXc%|Uhv!g~5s;%$A!?j!Nh>faZ!JSMueUNuTB=HiX>t>vc4 zs=Dj(@(LDc!}cs*`3IXaQto0j6a$rsHTCfQNKfM|wg?f&N*M)%-@J?BL76={eX^5zHlM49*j-Aju4 z{_f3?hgj)YdTe7~8TiT|1DsH1U=3xY1A510l3krk+~|+fCKf_guJ9cqJ5gd}X3fUTnyv-M4h@^SVH!PHVHvizuXMr zfb%z|7N(CAS|e4+MdtriKmYJEEZeO^% zr>6%UeirQJ+1pnUh*gczcC)$vW@@5iup(N$9Y?(ynZgTw;i3u2n$B4uWvg?jz@bx$ z#$h2uYJ6A%5K}?5B@(*#bQmR#W45n_gO$Xnoo?2f2TWg=Fzf0FNag{6L(c3$*mcsMZ;ld$U zR;1w!hzqMevOT--#@YO3o1z@QbV_b_YU9dF@yd*7(;8*kl94*q*+ ztuFS_y32q@Ra4TxKRhxr@~1d$G9rB{xi_lq>VcXSyG%2; zJ-*ypfk6$5ajj;iLKZ=ajoeQ}AB;u8NO>a&q-I(+lF#JZcf3Jc>3xDc;Ja_IzdJ7J zQ|RVm%!T#?43*)P+~jRBG-yexiblLd7jYW+e-gI1*jI{s|0M6I1h5xfpX;J-N^-zt z?oDV|IY@RcbZFv{RMo{=O-zPRU5ACI7DXtigmKzQ1(7){BT75s0Eo-_$)2W!P{rX- zP7Rk>Beq4(+KL!cfA#TiXr`t{2?u_p3CBM~LlQL#z}FuJ@7WwD66we!QcyBJ4lyD- z6tu)n+ubMa0Tin^=qR;8mU1f%(Da&G&B(~8L_(9M3h=jo{N#xbhxAEvoWGPJ-*IdK zS}Q`ATkP%a9mB@okl{n2K_jFyu|36j>WHhGTP^~yMutnT*gupq)p3|M!XoyDng82$owp}5fK-!M~CQEctwX8R(xW*e);$&n&``laZ}|LWb1KM z=8HbqLQ76gCK_<2w7!sb{Xo=235F*j=g>t+lG?V*znz}1KGIoF;kv?Yug`b0CDQi9 zoP~O~L0a+&z8)4pTfu0|IVqk5a8I0;THX_QQQMpB?CiX`*0z|V0mr-*Io;l9pWvXN z9Oy!*R-lL52l1QHiXsZPw@Sb7AqbQYg75955-Jy~oe&2|H2}X11kz7*? z(i}72nqyGWpz5^k@x{LqiWmD&htDFz1CT!3p98XmD95T$|6WA%<7AbOeTH*GI>3_> z=5DX_?`gOoJ`0Dc;_F?Aa?>F+GK<$!7w{75PuQ8<94Vm7eeud^BOguto9;#`#UX<7 zC22p7*6KsDaS}#wtC^XZunT@%sJGh2{6;JysgqI-#f(VWugZpcBm^jC$e}^xx|F_8 z#2~RaWC`t|>7YApbM!W|om&TAtL~yLi))QgZTy9xc~;*aY%0%s^`)Vc8X=#Xf&$Y@ z1+FdYp0km-OfD?cAu%3suZh-eR9E6!6F;D{qvIZlyQjERCmQNkR#pb0EM*W=8%iy! z!I7xfPD}7y^CK)4H>IFpJt62cQhiqsh?$j8+tieR226WX8oc9_jEo+t&Ii9C;jG6N zP4)TQ`}|ZZIzE|#NvNT;r|ezbj+|r#jPTR;b`m7}?K^S2*Ews0D!h%-i>)K7ucO^f zy?4=!E!XN+&{bKpd+>9F$87YAU3X+B=-uT6{eZI3(yrqqr!@p6mz!6weoh#M%E}Kv zGsRw@sX`TPi-$)`Sq5f*e-Z&r{B^K)Ks&(E(2QB%R2NWx%XHv@45$iwp=popBZ{X?mBil7W= zTnX9>^^&hHY(;c4co1>gzFI}EvhhPCiK|*cBD?F>ts8#x9hJ_h%7Q6bsPT1ranV>+N5!UuLCHNgXE(fKAs#BuBIq+dBxa!6W^Tp7BJj}o255k+Nh>%cD zoFZTOo}DH1cVbu&=UMy}=`n{`$pzA2Z>;u#)lC51fr*hGQ1pjH_lgjRzt7Hh45O)~9Guq?pS;3=@Y=1aTWK)wY#kR|uSJ}9B0;t3aIOw`? z?X~bu!`OZB8GS7v&gL5s&>q|}f#?OfuEgYSRQabmMwy&26}r$?M6Xi|Tw8I|^sd_Y zPFlFeVLU(QGxFt`NJ1oEzy2i>W7UIi9*he7{$_HW=Fg&UwY01b78xbNuv4GwLW%;8 z8v!cp%%xz~Kn7ze*lnLh_MFe33v6#>WUSI)PkQ%4d4LsE2~Yi8l5jW$1r`-#YlJy| zwB3-nFEA9#O^G1Qtdam^*G*}tV#0q`$@pvFVKy$1yrnwh4AV^0!7kMm(eW`i)GHKd z+qMpNs-B7NUg`Q7o~Gt=JWb-?jO_@|kErVVch{Z!c)r?!SAU$I(*5KL-2j>NJxJ-> z+1vY&xbwXP;Q52Jl*HJ?#Kh-e6FoBC>iF_ubtyD_4F`I=F0r+spkQ0rZ*8!(!h6g< z$*GDaxOtBhjr1*@MgQ|J&ikD1<|h{Vs}Rc}#}21pz4IteJ;h2_LdjVHzBCQ>aSs|( zUH6L$d(*OWt@jA~OBZiJlQ?|&p4G_wEJMO-+Rcrc5+Fmh9!ka*a6k~>(V@(pMK2d) z15uuVbBAv!n;8F?=sO{zyg~e(8^fj1h$|n!DqYwIP$6DPm}sKK1-cU|kNQd1HIxs-U6ZxarM>V?QzEb{e&SSd^_ z*fu$Laf6iAsa9kZHpgNyLON>wa8Afr4_Yf~skgzWp?Z9n>PsR6VCOqmU($kP9l{4F z#I2~y-cQ7@A=PUr6K0I7PjAGrD-oaGUH5Xj7C_a9W)Ro<2)^QZ+T@0c^Qz@)MW0s` zh*90@mNyQ==bmpJ-|=RjY?U_T8y`Zv@P5nt z6#7|w^$iC^dcVTkL$IIty`o3PEq^t^#}hx=o?YP8k_g{d%@mm&>w6KV(Q0pqyffJ{ zzJ7iSa)2BZ!F0UO`a8U~*i5!i0CXV>zXwr1Sz$ehcMKd#ZPP(Q&S1a4-}YhZ7WmB% zkZlHGaj9DAUVd_s<7EUP-RrVGH%9Hw|1^?IZ@(!f>Qq;L8jxageMJk5?-oak!9r7c zOK)phyEr^S7E={I#rw8bp`f*-xHt!4$-KfsRF~?`&iF8O8%lugqdHFufD#Xl;gdbL zFt&sy-oRwKlK5L?zm+7Osb8xKXUnZ3PAvjb2|$(*2#Zc}j3-b5o`7GUDT# zxwF20Lc(i^>@7pp28qS()Bl?rpS22)M6uo~CQ7Lb`KHOs#{+5Vw2;-N4zzOGHp{iE zD~weGbHz4z@)Mk}d*hSs#z_!gLoa|w0mt`HvtJ zrY{iOwWDs$LxN6h)OUS-;eVRezT>~6qH%A>LUPfsmy10OtDF-H4wvx`-Eaz}MIJ0N#Qr4Wlp!BR3_{H5Z%>UC6zABggwGfc+J8 zf9D6H&`=8-As$7iCq2nF6~7~7RDuzE+S5S-NOdYkd@(;j>B{muOWodWF^s zTK6E+p~U;HqRWBbfByLUDw)&`sBt9Z`+Qql8)>KbzSTysBvDQ%JB-M$V8Ow-=IC#Dze`axPwqY6Xc{ zPCL50S`DbbJRuQhD0Xj!nVRdE>r(#tsb#eAsoL;LZ2Vsm$)TM654RZPJ-Sh4!XpL-8N_( z{qGVQl#ZpZoH$pWJ$-r}kgaE$gH5Yi0Tj{t@zo#O;x}a9J3?9D0&`0C8%-5}t#PbU z8F5Egcr%(R^5JH%`v2od9O;Qo(z_SJzG`mBFDPgOFi&!lpq6e(YLM2PpnOe)xS(Yi zrAmAVo9@e_N8H>Vkf5(>1u}(u`$=^j()2FlLDvgpT`z#d_(dQ#8-t-)mOOv6+uIdowpT7ZpnvTxv5N_F#~fIPo!?IerDF{b8*33R4o?(t#zNtpTP% zWl1wd6csaE%7Dk?4JL_(!YydT=a5zM-G2KFyP4A9 zrY$HXVgD;U$sRdTPqGcAzez0o<@YW8r{r#})XZbg!@!C22zW`<`$O-$&5pzI#zeGp zosLdB!22Ev(OqlDcW@l%OY$XDjKP{MCy)HmQ(56sYFRGW{3N;{s>v}B4LS+U9{CtO zg~tcWJ%p%Z`^`&^Uk8zL=Z*Oi(l{qN;{UPt=5aNr|KIpAGnk>t7+Z)2Cs|UdsAwC6 zBQ2IxXhADll+s=^A%x6{N~ws7qEeFf2uUTCRN7UNO8dV3p4a;<#e6>Z_x|_(J-+AB zgF5GZuI06F*X#P1ehy@qZ;yRI$w;0Bgpvyi3z>9N3ky-ZUlbdfzI@riM1DXnKHeR7 z3N71u@fD&l-gK#IC+nxjFtmOf+tAIBha{Zh;qUJsB1GGJgX83`HyM+2L|H@qMTs}t zi6ggW|K4u?yW6+PR$TW9@(D4<7-A<`QFEn@-+Jyv0xr0#nB%zXw}z@ z>9m_nS>*lgVeanM(+egA?4M->nn+j-88}j-l!DwA8AHOn_{6}A!FBfQ^K~l&svd{* zku}rVYwq96d_f4cEw*uJ7L3+%x`$BWs_d>a4kbc7W2a5JLLffk)b18u3I46ey)N zUAK!mSb_ScdR*tIjZne?GE-m^zmI`EQ?ECyZ)}wV6bO$Ed%bUs$$HO5pg6%0g+UCa zcAU|i6r;9-h&M8rhzV>&>6)14h+$w5z9d2X&%c&8MR_X<$Im@s-OP{ zpL*}?4pExhlH<_GWogci#C3=AohR3LgyUht#EV0@PDrDo;nC4dSLQE_ugxlL3-C2s zsVirdjnpdrzjGx+8e1r_M{XcUN>1)dZF7$PETeuM9=&*WP*zd(CD+ss0ac=XVF?d1 z3;|jm^JjYaPf>4!d^YZ#_lE4^RgPWa=yKLsiz&lk`_6l1sWpeeuEm{CYD~zbNN67m zShk3;XrmyLl-dKXvfB*u)%eFm7{{1ni^d$1q*991y9jxL8s{#&x1 zc31u*_O#x1 zy~C#mbLnynmn#NVOf?}S*^GCQtnyt4YWRc1FRRCOg>Mj1oTeLRK?)D)*>Jf@lzeW= zlvRFYRDLn`s`$jHuN5TE5ZxKLVI7R=$alT1Djp9ed%3G@*u5c zBa4SD{)2vUblE>r_v}3uLxs9&e5Zj{#s~jpK#S6N=6>sifg(wET#95;(XRR*FiNQ8Gn$pJ!poc8Zcrio3b9ZQ^wN z;e^~|NF)ChG)WYug5bx?A3uP!K0_9cm_I9?jhr&RD0T%$Xs^SI`2^c6_w+BbE(BRC z!e_D07W73<3suixmDwpjM^J1*6HuebIwC)uDXiLA-ZHQ~rI-G_`fwYiM$VYvk=z<7 zs3W0Ha(NG_Cc&i(E5LiA1n&LbXM3wth@(flxs;-!(?}Z$F^E;Z+w^m~uO056A=Mc; zw8$if3_wAZ6b1F0P!yy-@CE6BPOaYI?tW{=m(lj2CdNy_0S~$bWiHaDz$~R@&=6@5 z>I9D&;ryNqbf{;Lbq0(v5nNeG&qf$12vPO9*eO91ZFnY!)gF$ER z6AlD=_)AdP+1V*))71Cu@kX76VSjrqv20)cvrGco67J3&;1>GxHQpgpH3`sgv7EESk7=kep-Ro94pfJoXS6m{T8-VTJG5oo@KWWDsF zMT=l5<&!lYetr(7TR8Fuq0GzgZZ0KawrwWca{E(_7#z{5W3^|n?0G3+Z3nHg1x-FD3927sSh18*h7KMO(;D{ZFYz6X{ro2+ zd?iZSy5RK*GSD4Vx7|N&4?HED$&F*>rBJ3cS@f{pwVVdYb?Xf4U;Q&*&f(;T@^Z3k z_)xOAAD6`aVMgx;_C9?0@UEnUfC2?=ptq5XW`qiNA81~a;C_~@j-A-2f|Rtk^GL-3 z3d89PaWrE;oYnmhJ_b^Z!Hn3(NmI_AMX3dV)`Eg?1tiyVrj^xOq6Tj{&xE`_URn zG9&m6GHClv68#~K-S-gd3Pr#cLAawX!*v4l%Y0Xr}Q=>($gK9DeyLtu{ zHImpNl1(_EwVdS&_5Tdn`ryHXkp-U|T-A>w^Yl^A{R|7Sbjq{aTrKLItBUvlO9$Ta zB%3lpqJbt&BgJ6kws*GaR@Ap(;X(-rS9;B&W5YRffO>Oh$Ot%Vc&>3MCEFZu}c-rw#%;L6cDJ#iM+e~S@ zDssw&#Bv*P$UIwbq*!l`TzGYEfE3YPxI@iS7e#s@jqUP~B4lX93SKw-<=U)zZ|@G= z&J7CRbD%kzmqoQSN0!MCNUOI}(D;*z0z;_I8Op5zNmwD$B1Fmhzf0N$5Mvc40s<9` z^`k&9;%4FC*ifd=J4$0H&S8h1-7XL@-+qG1?2|M*D$}Ov7P(%=@kvr$(A3(R2l!qH z$`nAh&EVbLT_~>*b=U!n5pv^Mxc>gr4O{}L34|`ODbRi-cnwBO{f(HfGgXBo#KPb;3N9gQvR>(7GPY*b9N}l`lwpG`5 z$b7!(URYSTyLsNuckdmhf4zw~4^46M0@>iDB!Yq*1z|h4K4Pvg>v4?f4TSS_-J&t# zA-rB0PHHz2QQ>|8CpJ*15kzQc?}8g`>s(I>xFekgBYqvrS;knPSrAo?GddF7ARA*a zQRp)_#YmrcF(h$ABqTW@`B_FI@}NjKh>?V2)dtktzD6QZ=`c-TE1}A19IBi{^ngBs zbi~+a8X)gK8EwCO^<3hzc&-N}tGMQYkiiO?VyNXC`clo=5!|Q$`uvVY6g{Vm= z%A@4Z;^v|1F&Fqb*2o?j4fl5_<3UHEs1)1Y|8rvU%enu2`;iyfPuT(K~)2u z4+F;;hj+!rp%2VH$NM5YSoHR-I#%~4xg%PLPzX(Z(P`G6p&T-aZKTnNyV3FxY%Kcl z!5>;U;j_$-UuFgOZy|vicGe5KUbSY;n$2GailBsuwA@>GaX~lXeZIfBFmx6hjX#oQ zZgG4PZB-%V-sn26A$l2QsuzMJYX0Tk+=x(Lbq%t1y@9|Fd}|MHd2ML1dcp5xR9eJ& z*6~REI&3O%&Q-_qX`zCs!*4W2S1J@kYE0&@KduE>Rw1~C0$gOXNEzziC3`)HRUjob zPwq(iyZ7&59E5(J-$GH&+24YxOYIRYw@@2yZqFRc8nZ7_QG?P83Yj{I)_so@m!Y;{ z!GZ*>b#V@od`yTJ+}SqGHMGPZN131tDC2n(nyN&EMF2! zcJtb&YE||6nrH<=&DA+YY8ERH6i^H%jSpNpJoQLbD5RxQ{>tZ+AA|~Pt{-&cf~JUX z(fjp}1k{e3n@7Di&h?NaRDYIMfPeA&gAscu^LeA-pvzxm~`5hD+0|^|2 zr66L zTZ|+?$cmv_-zJ=}{hi-soTlsUO$62MS*7vPF>`g3t1>BPgHwBwE6!u)IXIva5ql<8 z@VG>8Cp&!bVgo{5gmXWkiY^;@2S~PuM3)o(yePj5b{sJ|<=jV5Qic`M*$UF>?x{Mx z;QrGPd18{OBfaI?D4b*(pwMk{^vWunQ@p}XACU$f1=g!}BeDi}#xtnE7)EFjx)pWv z@RD!S6a~ixrdM$Q9fcKhu==wp0>d>^NqUx4E|CLopJmRFTkWaz5Cf&DPmitI6RH#o zX}4!p)23fd0j&11xKjyheJZCqXStp-vNf_TX?}59)^AG5t#yAY{k&&?#cv5`p6JKY zj~d+EyTe;?!RmAEvp3b>*`EDTQa|fNQ0S&DYfR|6zuoy`clf<`>gP+hpEvlZzHaF+ zbj4|WzqbW$v~HBIb{u@RSm<%dkeIdcXkSp*!1mRxQCqED8!P1s2ZBXo6xodJHhu8f zJWz^T!%3vcD{z!<;Gw|K!wSpHUqc&b<3g%`N>VcQW7kEBBc8#-kgCty^?Ks*ln|V zbutNc;;HQfWN%NRls~ek_RPM>YdB_7C?UNQL`I|8Ea6%oQ;FA4%O;Eb#pCt$vMB^t zH9x=WGuuoJl<^P3&a|8N-j|dpt4W_!d9syq?bK&*S<_OHj47#InSV9v{(S?pyxWg2 zkwG(-{LXU!XrFeF#f9A)sy#z5D=l3i_t$NrziBZo<9p*Jdo%Heu(}@= z6tS?+nQk@GlfQ~uUDPkeM&6Q3kH55Ud6Dk2A$y3KB9YyDy8{=l>_hLEID3^*z4~;T zel2kkWjf5Nd(C8!etuYBQopE7__R@l+@x)-!9oMIh0D+>$cswKb><>L_JLmFgC?!H zCHM9$3>A9&8^PK;5a`k8?jv9&ysoQ;hlZ;^134WVu&_6mzuNdIoSCvDyJSwq&$M?{ z5Dk4adLyljwA2>=7bh_74MKw#l{+7W%eB@qwxrjXjPpG|;R^LrD(79+HEgh- z*68W#yhP78IQ!Ru=)@&sE3>`mSVN37ITnxeB(GoZc%-iNTh(2vF9D7Jd}@CQAX=3& zHZsFN{Q9*ZD3+=3PuG+zp2}w@JldnktX8vfW(FcNoVeWUbo%29B;`;u-1|(=yoHJa z!6j7f{is*nqmv#4KPsUMJ~TCqb-`8ZxHq}X`pAxGRN;N1Yc5A=b-Hq=nzxe}LxYs- zdcM(NA&=}$2`M+p zxYAd`ZU~yawy`>oSrr27of%cvqhF>+sdWl4W#t%=Z{@WN66iA881gDR2Tz;*aNd|h z*2d8l3jHHRvSW^yjSXLTqc}j=cVDDT^`U^14-SSzUveE$WhT%Eb~2IEp1NZ|e+&4n zCY#HEHCLR>hMRGJVW7ZhLbH8uTUL{FV={nOZYy#f!dTI=L3l&4;sb!-|WbrM03k2yyG!QRuFcLJ|>?%#^{WA zb^uR5xsuxMn{a`Rri>+ic@a*-bqDNQo5$n@hTL_VWMD*3mX^xdm>Y?^@<_#4q*IJS= zJ(#Q8-&{-grlux~y=j|Pw=wFKS5@qF3+Jy6O)ELGeOYd=#{~XD+fkA**M}XvP=78F zbV3{_jq`IN^_-pMdlg)hN%FVUce&i#>O038#4CL3^BAKw1+LM{2cqbr+pP@m?UJlY z@Fm3s(^;`jGViCBf&BF4s1$Q9YnAugHI@^K6lX?Su2CFl=`;bfIkS4Z)i$Qb;*s=5 zdZJ)tqQy3$ z^WN@sd>B11r3RH1GsZ^U&!B@`#^^f1vkkezUR`@1MoZD{4c}qw(xNB?#DBZfdk)O_ zr0LR77m8e_dd93H5G(3ai<%yFpI%l3(ERW`4IBT$s!pbvJo)l~(d?)UA*nATx0W=X zwGq26S@+LwVe%DSLrHpP`cAlnS%)IL<0ut&f{J;vBAKp*s>- zZQmm?BaMe9eYe&!sq=dN@W{Qwjdv9uLScNl9}%%LyogdGR(E@&yr(!GZfVwvNTJVY z(CqRZ*fxLe!6`J!=kMRYPgrjM39>uwO1*MupYVljgV+uHyuKgL8WkAXJk^v$j@YS_sSiJveI!YVnP~mCvJyw$ zn&OWm`bg=Y@yWy?KyB&+Z%EyIwV=cj$z)I!XK1-u?IHedEO&G&d+duGZ^j6pLIr!pCY zlkBdR!h%x4im|Kdu>h=?`icO%08+nTIY5DCj!8t^hS%+2UR-Ve9cg8*~o4C^c?i%u4yQ7un2|fkUs3P90 zq2Vy4i-Hv=!FhOGM<3e7{KZgy!~5I_Jn>F$&LEn}88_ZOpdzvy1( zbQ@~F8Be)3L`*mNeog1erM=gxUjJB7mr6KuwN)qI)ltj<5gQtj_I*p`nA;dp0>8M z7{Hicy*g*)=ce9X+lYu&a_%{-SvW;4FONCPT(2An6;18c3)~QYBCHz)Oj@?(<>lIX zdih_z9Bo=Tv|B@CL!fHY{DUH_xiqiUA6%SR&C|*iweV#t%7xTc=P<<-OU{aK~YD;ebbW>#3j(@oU$l z;>f@k{q+H%mFD5ZHtsb%c5HRgy>j=^6MD=5=5S8S_||3;7H*ysO`(Z0Z?m=C`#cTk(@Vg zRHwNA3BX){l`P|UE4u!ldC_A=%+HD^t**kzi;^tgX%4>f)MxZ z+h>I%zE}n$xv_^1R;miW{IBcKPKA0Zh<|I?IH4^`j4KDnk+iuzd}e~_-|C5Lp$D(cTVcQ z+V!Q!q3Ps?P~-N!6sJf#{LNu%;XeqituWgV_zC^8-;iJ%5)FmcK?b5b*Dv-`R;zU) zU%AUkZ{A%*p4XC0)fL5h!qtM`z@BfC@xt&;Jq{o}c>*~Yt!U58+U(zy@KcJN_dcof z^=e9rTQ8QlzO&FgLE`%7t!pTzKDwRF<3~3Wi9NSWU+k5gEVUfe0?euWSo7=$BByCL z`Nxrcj@oGi$hYaF_<~DTpcW|D5JzAQ#Ir|3qhOKjU*wr}%h}N&Wi>Lo&x?~A@=%X@ z15t;11k{vx*Fx@`OxBq?Z|)`XJk9VIE@~;+qOaXOGy-XS5Umx;Dk@|<^MiLTFRQA0 zV=0Z_KT)=i2`7T5wV!|>=3+#|>#twULAb>6;a6}Oep{!fp_9WqSOos(fKq+q!g93-hCD6{Q zlZkFnB*bUJDPz&HgVFll(YxF+v;S6f@#zD0er zhQ{?gBl5FzIb2@!e#bAH^gOpyHo=Rf912xjLU#A|r=liFa3qT<5yFADtp(dLHYv$} zUt~{dVp&8)&`EP!*~P~A*%0WHHamzKX-hgq=lUloF7?I+b}kPx)pKA$dhs}S zHE?m3v4pk6qvT^t{Sf?%m!%17??Dt3=WHWti@e-6Q}#y8JMyuur#I@zX# zTOzfnyVth;O_}vH;pyXJP_%M${bPZl0J6H=zc}#lBY!GZ@*Kz<*67g`ND(O+Nuk!S ztjJxz3~S(k^jCU3(RuL+Tgiex9S-fLwnx*_eIP1SypVY?pu)x2Y9IO9%_(X9e=Fpr zyYyZf@NvpXo=m7o>xaKtfWrKLHjm!1*<;nal`PTCflpWFmFw6))!8BM~Pk0Eq zkry|l%N^~-a_(q?oYACrvI$d?LNfVcO#Ap~KXFFe#tsm>P2qf#=JPlE5;gdbOV~TJ zyvp8$$#3lK)AUWbMu_Dk&TxWkweXh4c_(A{OpY~CvyubitLz+!;w6gn$m*2GS%&iF z$a`9x+T3@PWkKGGxys#y-47g0D6zA@ikCPO(3F+A6dYZUq;Ne|W}w0Anl1~}8JcY0 zP5sC5WzOO*a~J1LPxe^{H^Jpx49jtejWU+Vk~j@qv^H_RsJMm;8%dT#fWQ%F*DC3s z=dLoIOMWcxknAvrZI8GKQj&wb_3i=(BZ@~j027vA%c;3s1gmfSo5N$5I3%e)HH7sZ z%i1EN-SpvtZ~-Ov$$P47{A&Hd-GdoduuD?z7amhw#0FdpjZ1y|xqvg_;UHuK+xK88 zTx!zZ@ku$Hag%dwcm?GvlgCVc;(*uf1EpTbdkAWf&uEvqRPdHhgX!UYQF#U!oxEzq zI3Sh$ht0g(#>bpJJ|>6AO~lz_^8UkNwztw;=*4rO=f)n)gHo4dCKLMjV3cGevq!Rl z=eLXv0NTxm-0dD!VhaK{AvRR>dAY#b$_3tC%CaF-1aVFkPURASWDu7C)^K)ed4i4E z7I)4T6vrp!?A}e8)3M8t7y;DF?kZmuYBr4zPuVGCV2^FA$8Hwv*Hbk*CA7M2 z4hI<0qFjWAzWrWMC_1yDB3V*RPh6juk zz-urwk#hG5`aykRU5B)HHXTNuwvNsk>KK&tK`!Ab*R>>4U+N)^A4!KI<$T)RYr4_C zBx@BN9bSC&8aag(Be`$K3>L&_HI}40J#pYu05bD^24ZiAe)98xZ|;&F3>OquGCPDs zit^kBxbz0;`WuR|NC%V73z{iQgZrNgA)bEs5<)wO)*u=h3SU9C_cN~Z$_V9zfM|Db z)mr+gxegYYCY0NkBv)NSeysjSfqoom%;1Ls+U<~vuNoQ~3&GUX(6|;vG$a2F4k2Nz zAM8<%2A`?(o|^Njger$)x;+t^4d`XOLT>ua_3&IwBwxephPw=B3gNsaZHzEonQb4^ zZk|PQvePlW&(R(|r2NUbK)r$2n&eP-1KLKAo`Q>_S3>d~=L@@NB!348p4Be_x)v7nP1){yiY z?TI88-`Lm}?RdzE#LDGp0mPi0}3490QKYjS{8nGS3=SX;mSXk0*=|yw% zN2T8iI3p95=sZabvuKS|6_hJ_rro@V*vL3$B^OY6D)ozOKBXycMn3ndM4)O>TVGMr z$=J9!Z=gCNVn;rq?8RJ71uz<5d#@3ugs%mk1zQHB;oyWCLmcz33N-S0!gUfR2 z6nO}b);;Vy5As#~a{>gEad!IVjfe#+QNS?YVP4Tz`ERS3v!GfSa`EO>d_2U!i#_>VC%Srg|Re0+#U*HyqpGdG(}RL zbQKX#ILL^4;b(9pjmC%3_(eFv03$CzT6%?r_;mv;ADjZ;7U(2d4_fXu4$x=}fMPD3 zdN`|U;YHaX+;KD^CBZR5fU{2oXp#Q~Xq*~WgnvQ3G13S^*`7L8gnhQ!N-TDqhg=nn z|H?QQ!T)xhBz*S2KrM}Jg~2V+1w=dz5lII}0tczO`F|3d`H9m64E#!Zz)6GE5PJkL z5WtY&=S2*I;yho@c~6?#bO1z4m=#ATYPy4;>bB`_fJep)u4qPP8iVOC_hw-IaS(mx z2>}HrdmVnqQ%Y=Mie*t?%l|K6n|o<|qbzu6QDOm{tdd;$29XU6Pc5!dkR4qifo?2r zCyVPLn+UeNQnSeMNv`LHB}^t@3;Hi$JF+DmkCPXvmT-H4Cb@(Q5D(FfZu|puOH-LZ zY#D;ojBwo%tq)WcLOd05jC&Cg-H@0!Yq?`d|3=2r_z%>kGJ&Tu43o8no5@l2rt`E* z>#n1-Npb+>3Zg?K6z>gsJj)3i)AU6M)s>&zK;K+r!l?!L4;1Kzex@VCubc(C1zeqt zdb_Th9TieNeXag?<@=}i>M{5IoNK5gGIOoQgO@%ra+g*oT7KO7%Zb`&!HUsyrXD}` z!{uMC9zI`w<@c2{SG<04Zrb)|PiOAny%SL~bR;DxFmOKafKmD_x^_axpj_OL-S)JW zCc!qlM{%Pm)oL_b_X#M}d)PQR%{^_wq8mqE-fvnp`ig1 z4|oTV^awP35`gi`#;R3LPHd!Lk zx?+3=C}_hf$@WboDZ{5!$(ob7iP=aP^Ou&`Y=e(OxoPjs6S~j?Q6jx-W4bpAbBEhK z6mm)Df`G7ta60LODl7>@Ml)O$52?_a^?z%8BWp zh1rg-lEPkcy;@BxWffs+r~8tYfYoE8eadQ+^rxaNzw1Aw0ZeWQ+CUcW(f;6dT$L343Or~1L&o<-(lK}w>Y@oiAxwhkt;ruj#J+9LGMp%0^j=yC^>&>Ck5km37#dhL+}i|RLavZ@*y zyoD_@)4Y;zM>S)TcQ&nUFlhB%$Emr-l_Y3LDlW!TUdFu#{R@oE-)JPZs3n+Jz6KeR zGlLCS$&SvBp=xq!4!u2$4;{MIzNue&2Wqf=o@*=jFV)a6^GF*$4qfc%8{7-_B`?4E z5Gd%Am}u8=xXKmhq69n+2cZL83NEoAjUID&f2s*WiV`c6RPo*ysX;-!VWOIhPC>u- zM5h6(D82L`=ySS^Q@=ak0=hoKAf-*z2Bq_0b624e z7d%+>5nl*#$6(?hT3C7Or-8=cQ@zvlw>oX;h8;&0j{R7lAVqB*Q$N5#`#Zo;e2H!j zP{HJvu|i@$_zm(|5()}>n0Mp7h@(Rpn{-M@F&0hCd7=dEf?eR_<70(0AQdV05{$y5 z@v%>y__aB=Ig+OB(?ox&(FLvnH@HS@(5a8xN_z~Y`9F~^wdhjQiQAb32m0SWdw3+P zu+=sW!$d?(i~dQU$RU{PQODZKF~8GzW(Wt)9^sUhm}b<$?BYnxIAomYGL|)psyC$n zLATBZ+zlw4@|#=WUXA!ggZ=^5@d_|ExiSl zg@tG9{+vNPd3Y86VT{P)RV3iy)-=)R3bH}#6Tp19KTF{aiYAz(u>?*%??h?zb%>5< z($K98Qqjbl>THg_=+L|LY}DdgBWr#`&T&1tGNASh&FPY`(PmU2OH4XNAv#0C7(>n5ycVk<*w9gz1;=f=$WJw%0GqS^t*BD^@ugFxcO191Ai<3bL$^#9Cq?e-B7A9$Vf@)Dy2ps8Q<&t`Lc zM$`~WU9He~;$WhcAS?t16L%I%;zA;-bb@q60>`%7{|otL6J4m>gTM;C}MRD;^ zK=f>!A0nCf8?yG|U0q#de(n7a-uM1Bd1@}6e==hN+xeNYCDzHN-R4y(*X!%7wLCpN z2detge2s(b!`e5|_TBAArMe4{Mn zIDLztH$Ia7AgB@-2!+fc-GrI-=uP~ZkR5nFCPtkafsOe!uTgE2F*1?kb|$gFMo!%t zOD+&(1ff#_y0a}u$yqL}BXG=cN<_rt&3e|>Q8j?Mt(O|{qshx@CFzPzS{ffrcaeiK zWmw^u4yhF&rWKB6?Z)H^(O5pjjj2Cd*U?G?CW2rkLW9xiqYfempIjlmu^IBbulP6G z3L`)S6u^US-$9dq5E1dtCXg69DwM#L=hPz8GDMHdE^fq8kDUmrk?t-dJ#0DM-%$tG ze=_jiMdAGnbpEeETTJA{>F57na9*SHhHk-E0G+Ifc^e1uK|Mnw!fVzv;D$weT!!TB zG%N;&lMg`i!?kJ(BPYxLq74hcrXZ5GnKFb*1tw1XOIzBIxrkoc4fMV=7UQEccm?Ed z>^YSQeID7fH#B|WyEBN6f<5~oyQ;`B!m9I;3rAz@Y0t_#K*J)31tbfL2>Y=QVZ zT2V+uMC)7MK4Zv={rxA|34@GAHp%=SIPE;bBv4R57<=vdW8B0a20O}z9lAv(+IJZ- z?-U<3JaJ-eV}5WxIj}>d{1y$3d(9gtn~Ylh=nU@WM|~lsaoS6eNNM!a_N}kmJRQ|3 zD2mGa`0+3?yMA}8uj^}6;}y=$v!4ybxgDOk_Z|N?T-Sf{b50;k^$bbtB2IK2{eu$B z8*ojIJ-VKE;y|My0~hJtLQRb<$aVVk=|sw$$F7@B?k=$*Ro=8eCV1-a2FQJDM7>p3 zkLVzJ$*f1u&(}EQ+DVRH2TG+*XWhrg+3V2u!_ugHmQpSQH(@&3)?<%-%B~HrkmnNydf3lUX5!gYa+4z6DJDF zgxyxEYZTjlJ_bv006TB#V36=2UitzHAe+1Lq=;-rXFfC65wzzb1wJmrc97~%S<6-p zFJcr)n#S*^ESrq*2_~J`9JDgLhW_mhqGO$+UBtj=FhL^dZzDqR{_NQ%>>cZwDBo+8 z*;!Ih@3#M0!(rm`sdGPllC6SL$k@v*Ttfuz3GTL%@)gy4gSI;Go0)Wv83J$a?FqL+ z15*ACC+`vo&xM-X(6a}M)V=}p3^a$h0`dF_9TIV*N14elYbRDc_&$N^aHb~Pu?6d9 z*<(pjaEL%`q7#CQifjKzM$4fI!WwS1j(e~#k|51(=#51%d-~p(|H+)p82yIJ^@S$b z6|)Nv>3Q_%D(-Y_zzI_Z6X&vE$J|hGmDd{^ESWC)Q)xA&($9;6xg7)5SZ5uG6N0=8 zxyxc0ZqEVcn5#+c#_9o8mo6#SJz7(4-u#}u-5e(bc&+{SJw4Bl3FjbI&<80@4F zOf^_O5bftu+Bdk3KqyTV=(HJJBQ9g{JM#opcCwvIy;$Jv(b%@rI8|^^N&0#b z&9HWbh=)R?=Qrc+IRtmA`zJSN1O?230|EoALjnE_A*W4jK?_2Ic?in54eqN9;Za=tr}l$h?x32<{RXZx14?n(W5?M z|Kk`uf!fG>8Q%|)FcFR9i3(0Z2l)dpN8j&?&SXyAEj0pMlkb<=!l}_XV0!HA{aYUi}M zVLd?0oshkw-kK19r2f`l|NR`Yir*q6j$4Jq98r!u~}QSN&FV1U>bQ{!kw8 z`@V~xMkO!&e!2I!{yp_%oN4>mC~IQwzcUmgIbk{OdlP=~v;B5M6F$PPF+YAoI^TXs zE9Dd?e)m4>&z5hw_`7Fpzg_uvpKj#VFnsp``SW`j^z9=Vyx+q2+fVhs9r{GDJAWV82YTEFW)NM)RDnl?LJ+7H1Eq^iCL@X7~1n=^-DxRPjq; z12!^w<)!7+=NxjWk;u!>H+FGJ>*jI0{t#heG}F5pbV7}nU;0X-%$N?Z*cznmVQ!LH zxvv;wIkW*L8k2krF-4Ndet8+YLp)gvwWq;_ZGA|Uqecf#^7R8G$bgqTs=tXrY)s3& zsJ)@R_-K4e){i@9wq>(Erv8mdhJ(5@aMF(}%zUaO0;v)UyY^xBnVAU>j{o|<)IAOh z+W)i6T;p1r99Q)?(fMhStLjq0vNw+FBP^#mmyL`l?7iI;ls`TYkaugn`|#~~(wf%-Lrl~HAg8L#8i0(}1n`)|wBd8y$1+rl}gf@a=`Zr<>pzBHcw(c4}AxIj|n zk=a7$>TT71Yk4-)8Nbh*Y3je#$MByyx4uI;(8iQesnJqw~&YQDpHKx$uGIXx$ZJR(@(@)$#S75fN3b zcJ12tOPaN!OB{n&Us(FJtqq%2A_5UE- zT;02G3vmX@y1y?{OL(s4)byoGKRmvKJ0|Zo4^ENz4?7v1%e6k8j(WaWx;`LJC5!*; zlDVEr#}mo}E_0&?oS{)9k=W@K#QxLC$VMmY@I$+veuc5&S*HFj85jFsr@4+TcCH@l z)Y8yc8;~b&vNgEcD)C}clvkPvgSov(6504ed?9T^nvD*}hv|&N;@2wCcBp@B|J}0o&UpQxJPVB2L*$W}(=nQ$g$91Z|G#p&TU`h?ND0uvZ zcTr^-AmAQtc3j6Z!C4o}v`v=l_m|B_`Dg0T7criPmF7oMb<lru$?0N`gWQ7Q58-V?Ak2>bem=AEv|64?X=un}BUXdfSf|ALd*bMfkGPCh-{7IC zf58gA@N)A6(Z2Y!wz`1Vbq{=()bct`{e{ZwM%ggIw z+3~0aj(lgyLIK>==FC1MUA}u|9N_q&PZV`Z9%>2mrokG26)PMoym5iQy^G7`$7U8X zN^YXf>M1L8Vu5m%%Z|e9U!JH=a|V~{R`!9)ijU5zPIpaTakA{OnXH`LrKn4>!gaN^ zwIMS9=A(>zT%O3#Eb4OxNfk8a#Nucvs8nxpTaw8702MG)YTE(fxgG88znS`1olHxx zinL!e{pN^y;=!%jKL0c(jD$akYCa6K9$%l_^u+R2TJz^P-7bO9wjuZ02Tdm(dgVKl zLso3f+yim5+&f#NZY+;UKVNoyuA%lzhg6pyonB`FK!5G^ormRv1x7@M(!7d~u1i|} z@@wLE5W=7Bb2(D%4Kh!M`Oa#32{C@}>+8FHB0@L^17sP9pMP<<<0!}qoRZ}v@9J%@ zhrlG^5HIZ#8|BWqjKPi>;HN6tAos{`GxxPtI61mRMqg zC3-H?ffNAeq_w%qY~3~c2ZeUV#ny*2PsAze1vUO-sC`mLYJ*4LW&Y87;2sYT4-^08 zh^UG-I?X#&(HE#7FaLGK1)r21?_JWDO|hCud2fTfIHg7?B@+D6MVu#7IVGw&iSKN! zVbIJD@e<*j;k2j4w#^TS^cwZuUTq#YN9lykqn^fQi-fRcF83QNIq8$}U8YQRO(nrV z$QmAnZFgPvX%uVMUJO|gBAf$|M+cQ3Uw;Bz*}*?XN39ctwsPqq@Pvpjq+0%kG%!_8 zgSda#Ktl&5Uk@${p_zx9l@~OEYVt0lU}$S!_h#!FaR3=5F@)lb;syji$BTaL89Jg( z&RwTAEs!p@O}>N>Zf6qY?CaPR?K@v*XNsjfUz@L!j#*#FVnOB`!mF2AY&7+UBua03 z2st47@LpiZiqThYKHZ$_Y*oCx>@}lFAVE^`nV~l5<|M0kSA^&zJJ*=pytPagLpxQLy+C{luXgaxoVu(?}EAJ`ZRe~l8RGqOk85JR*TFpj#@#_a?2h*xlizFR0mJt?Z(aZT!r0h4muw*7;9ZU<$GUHrPo_jCvErM{u~ z5*r=ixt?)Ro`?8!-qh1p+6d${j!CVLY!gbyq0{eP zs+>A*%aF}$Pb-J~&S0jTR&&uTvDvF()9dFNBB^o&8b?C|veHFHFCcF@)F-HRm96+( z&lMMz8pT~No#(V^=-Gvh3DafKY{FzgrR zOvKuxC{NfD-pjT%CQ0tFHA!h~Y+R8e{;6v~nu(3fI-6wyn>m#|k@!OZafa@(%f(eS>Vx!aMoFbg#nI)XFySsUd zwomHwba0|FJq!v;cy4;iV^e?4nb#qt)(2F|@^{Apl9wwVoAG3}|NasN28_s%6)-DO z?4RQscbhjPMLDiR*ZZX^Mca$I!@33r_!N|jx>a7PFzYuTRxIh4+cfV)Riktte~Hb= zQMs>|eH#aI`dlwZHM?jZNVad4-wdO!Z$znj=$2iGgIx z+jhKcIyo41>t&C_qUN5#usWsZDw%pVI_XJ$m9N1>QOzGmM@Ms7AEpGtR?KPWTz&-H zz+kpq%7JO8(cWxaG~l|WI^m)2Xj{O=f9o@D6|hj#kc$PM(LAf9y%1US?8tNZB5#*H z?%3~Rc*4~c>GbDE<2UgAa-qLt5jZ0*b892t*(F5vtPe>2GwhteUjaJ8h_)zc`+y%T zMi)t`%nHc+q`%#m@2qeCUZ~20BDYsuKzjmBrOS`Y&0t1qdW|*fjV0OTo)ajkuB)qy z%o13;2qdzRB-pH6be|ka1(oK72DejhV#1yoZ60In+3lWw%K+hT8I4U5p_G^=NXF@bVVwq z52m>$UOu%pqH=8Ou;yKqTfXWVZfHy;L_M@YklB+A(gAS5pBlvhExVknvy8en@LZ)c zAg@;BShdL)K#}XT%$>}hKvkf3`Q}#C|(;8p|OIKGuT)cR( zNRX&r^{wW^32$s?meU!q$9+dWtMjb;n6(b}!%_ybK+DuWO!Sxx44BJZUHcdNKCjGl zec3nG;~G3v@GlQUUz8oFcAItag`WA$hSyzA7IzW)EQnqP&*;}zJej}2YKawgjEhkz zf82r6nOzynKW^Jj%tyFE(f)NJxmKRrcj=TA*i>rYS}yMa(-K5>pH`UsEu*l(-jP~=i)F6jsby3QvVDOgc$=H33}5c%?bT| z28(SVMxhQ;OJ3xkcp4GGJB4v-2(ixSXSf@O=)PFtK3&n|y4gxIi<-Li+r>pARxFP* z`BHpO0N3h#_u4wJ+L`s15TEDD%B7nm=I&2a%4k~C<1AoSzO}?=El=i)+DK)uR4w6; z9UW`^!{$5d0Lb0lC*%HjpC;2XQ~}=s=3J~WENlLQLZDaFe3{(+c-3B3K|x@|$v$Y? zuGzb0zbMEk6?xZvEo9s9xnEj`-Z1I*=c^Z$$HBr7EqSMPUy#A{y_@q;YcF)WZnW2% zv1K889?z6rGY6|*%oGq1Q2Vg$jYf%$ENrDqQ$kG_fIDvg^;9_LV{PpcSZBJ#wx=%c5fEX@3OPAlU~iYAs~+k&YEMGKYT3k zbV65`%|CQTMP=opUu#E32eS>t2mM(R)wk}B>4F(EW&o9pzfvSs#>S4>497Qg*M25f z`hEMdypZXd$1=Ly&hgE#T;y4KwAkWC+rV%VMSo^Kz z32~nuJ63D`v^*!45Zmk*RVFYzqUEzx0Y+e~_D_1Bs-3xOm(;RIK0(j=I{mS6pwV{ zSM3roUPCm(mR+-fJ-r9fmGal1>2y!62I1qdqf#4+ zlE8f?SB}S(!4NQh&|EoUv6Ip*t_33xpc(QTp(6U^)2Cn4aggt~&TZ^+pA@|rmsJ|I zrG4ld5iNnBgeG$BZ7YQ>5hS#$WT@|JY?4<)(b&a9{ax;tzr_UpN?9{OaG03S3>jEe z5dF|DJKwhUY*G~Q4R*~Y#@ksJ)%fXY!;3GLo=Jf*kOR3S43Z+=H(Ve4R*{pBJU<+q zH8v1g!0y> zsWs{b&2w+1DMMNx${PJS`N^IVn|V`%ATtnBNX?(4G&8QOCB!cuQJ`31y^r1s$I92^ zLvUjSedjfFajgR=VJ~*~dE^;c_qw=#UXX|g#?c2phV$W!PaA0k$?23-(rsUt?A0h% zdK!IhY}&5T;f-Z}k}9IQ#-_|IsoKx)I5>|iXDqParL-qnWWm4Xh;7u^>Z>daxIQ_= z*L!xoIY_2|=BCnlU!-UE^{?^|I}Za7e#AW2An+CZUoTj=Ieb*)VKbJP+9=9kf`|!K zYu*ZhVTfl0E(P3JrcwkgtRSO)V#Uk&vg2EST$>J^4z?-F>aP?rmzdkxKa$dw*c!4e zyhY7E$ZM+ye1)98pfFQeSy_G_ml5Hd*wm8xhn6+lwxnOaG?WlEk`&c9rB?N!h3L*A zNnrZTht*jxUF_`mbm|hO?bca%=3;-edYPYfn}SDFF#OHVGB4+^2Pz~6{B6_s=+wQ_ zFGY!Ys`FxJ5z#F>|D~^<=#Cc5Vu7N+rE1wAZdb3W1NMv_2J}6uG)EkT+K$irK4(bC zZ6!A8vT4)R_7B_G#F7pL?GVdWN2XRuXja3v0^mJG0q*o$7Nh`!LfasZVw-4*l9ilDGeS zb>zfD>lXQ;wvw-^IwfBxyCRtvm3H=&|sO8yO1T~_AW;qNjh)P`la;XCBvqvv;VkT%a1M9UO_&Bn<5-#h@`opl z3(krRMqQG090}eMI$#!U@h>Qhs&WEc+fuf53#t^Q*4{tFCogO}t7BP)`fR0o`_az0 ze7IZ0N|ab|8?48pEj*V9%)&f?C*H6_;*Ns-Y;5l*}Urbq?f6Y)EoLO-^ z7kHpZGDOeyx=u^aTzEq|2ef@ETNW4C^o)MiJly)P zh^eKV>ou0XtvUCQFW2$;6ZutJyc_NJYRpmEb)#G6)TBt*sEB_;u$v4=nw4WckojJh z1Hw!zs;jGI*I#S2$1mH;AJ5BDhL`W4YpDHIPR*=*@x@b@l-8QhbS*pM*1KrW|Hs~Y zhBdWqZNs645~}pxiy$CfdXpkj6#?l2qSB&N=_P;)0s?{}RS^)BBE5&8fFezS&f)f_ZF$`q zBC_ZAHEY*r^2S}xz3lIxAE#3w=li?2^!six|K-Y%EaAOBHK5?iG}=#SpUgd>v+jkNdh?clSP#$y%;}YJZ-De zKingGTZ5i%y>8O7I@43xvaR|tk=qlbY?I~uN7#H(lSxaAA%AigM`L>8%644N49RP+ zm4TaZ$sOF}_eRBP`>xf~84EZ(+9+kGzu+$pTA$PQi_d_+($jTly#c>0{Sf55+@WDj zQ>}9zUTYUlz6_n?h%Z@=M+z9+NOc6%NH98kpl5!Isq(Qq`a=T_osT}GYJZj_3s6Ss zhY4!xM=@$WQD%>Yn+~tUgi_wvw>f>1CL4VL$4U%kX7N-cU$^TbTB(RhkgbS@R65-oN4}RW7z!I(F@eCbD zFV^s}?Xkq(+ev;a_LXaRZ#sOVOL?ea*VZ>1yLpFp4|(Ms&V8!E^18iNnryT?DA?s@ zwC5U`_d}=My;~Q9MhgD|Xp?dBxbbz7;{nF9i|OtlgIH)>1!={%1H{_r z0k?Wrmv5?__&b0D0YGkaLb&$E(u=Yu?ju`zF9rn+bdy%>u>m*B*T%zsf+7E7EC|x_ zHz@>vWwo5QhI_<0XF|>CVlB^huhDfwtbe`b@URM(Fj#(4OS1W?w);{#ZspmWkimEK zi*1l8v*Ewu4tlpD0E`cE>MwKl(n;mAt1mvL;{J}TUf%XQ80Y=*^GN78b6dSdu{*Q* z?vzcZ%CwCcL+}%aI@m5qqg<`0J(``T_i(2eY{ur(3DUKBr31yf2qV1d*p#XZ4?Bwo zD;+PP{k)kh#P57G>clUrEwu(+!5`j5|I$wX`4anb*E9Hj8h?7gD&ew2_g7oz_9SP5 zta2Cezd%xtfzq)sg24uoa~t*l&^v+k-Ma1EBbf0TuvO%b?PxVX@YWx~DAKY3W7 zy2BCI8m+EMym?`}KzojB!jeYyFny-WvQ_;rP6uiJ-Tx1hG_Y-_a^56ASOGw3;~4dCK4Z{l=#HdW~mr>MpFKBET4zxNASnxAkh?SESl69>0}!vhDkU z?_F*5gj<5@)O(v1xwuv4uD-?mmhB7M`7@kKGLCpAjOd45q0>Y^sSSF^TTX@zd+yd)WS>8!Hz%zVws^g4@LSe9C%&fu(2$9 zzN_9_xiD-wU1f58Nv_uC$_u-fGr7{Ma@5&zK4AR&ne1ds3H<3-e{N!Pey1B=Ls<poC6hKRpKTiKrRN6U6$0{w(KGC^(uRE zOahIkHw6z+;RM74)@&>7wcMuiebMg3xWq=y|}`w6xT6>$XfB9t*|0=-|e=Z zVB*BRR&^GNJ@zNydnU!VHttU;J@&goa}>i0uTqmX^jSlldAn~dT}o~Xj>rC4ZT9mt zkt~1Ij!!`<+bIXrK7!V}Y+hUl<}NS!y3BF`Adj{Z4)_GlIaQF2f;{qxX7x*PK)Tl{ zFs&-Rwt}q;t(#j6FVtt~EbO&%+X1@A68F)ui%;5lytd`|^G>v{NKl|idSIgS_0n^E z0pXd>!Cf=-S|FQpq+R9c8d*94EY~RHPrcGG->F1nr&p)c7Z*nX)}QEcB&WFWn8(HfM`yOJ3_sa>~r=nxG8gjyOJpaIIvlZ4vR-K^kz%IxFX{PT;X?T&*UVh0yZbHY93Gjjf9{*FhGv zx+aW+b@0G`GEslJ5J+>={%^Gb_Wq}vTp$~}YXQ)IzEj9I{QvTelB$0Qm5Tg&W;1&bMgPRkK%#5YQ7gQZ^ zzfWGdNzI9e#1|@gtfaeBCAV+AJ{3AQrwbr#652G4ScHkRO zhjZzlt#L?8w5-vPU+D0~(Yq(VOd{v=-GTN1Tm$oI?SLbfrRjOOyu5y|@G5Ze?SuE* z_~H3LP?OJu_0hGK(*JuuAlPhGr;Hpm=C4_Fa*^n`oXt-+C?9_mE_KOH(}8( z(l>W^$9~Ehs>TvX3-3HuR3-&7gez8sKyCmyevo0iS|8l#3z)ICLqmx?U9EFC!9xiJ zzycR`c|hiafG3IW^5R?>F+Hll27Q${sXp74Ud`M&z~g$m@L-K8qOI&l6{E(sVJ(p% z8T|fKV$7$Kl13#jza^_FDcBJs4+x=>k~`u(Uh-R_ku7$PSnsMMhzs!MxM7JxMWO!n zRK9!a%Kk>6?1+Ej*AzUO5Bd01vl3(|jo|>gu0lOlpCAG4TL1mu^aT3Q{m#$5YvKke zpg!lOa`Cle27Jo%lK_>$;czxa-@X8{=eCZWvr@J_2lcK;NlDP{hLwGeGZQ2)z^!8= z05voK6C^UbrlyW+(iN)q@QfC0xonPw=DycCK|G}&u1$4{y9v~G#O=9iLd8ZRQ zpV@mEK&rBP`|ImI0E5itFafw46djiCni~{8Zr1})G#BYzLGhbMb$HWMPIZx`#U`3` zxzEm-jt(G;0CH`w@n4))0yV+6Z`U_=fmi~-LeKpsf6@eleJcI^iRPCP_19T{1~50dVB{t_r9Z^-Mlr2E`=cMRKco#UVGM6!u|Tc6A+6 zIzV+*>v`n*^z|k`z&vlI!+!Dpb%(y*XYS%3yAB!wV1!;WKGHyB;EULP5YVbDnzk=4 z0O}sZfauDXfNw8bdUCRP3Xd}fT)P>=6SM2!-!v_l=6?9EI`dqW+ ztG`qm5XF8puGICX$#V5G3xDy8fUQ6E7{u})rTe6>M3IVrH;@njjoX#XFM>io2BSdn z0-`+73n(#tXI)lKYN{BJs0X9~u-71@zaMx8;8p6_DZvTnlj2d&%rj{ z;G%vcCIPm1g1!KFukzho3kyaIi)?&r|7xbA=?^e?`)X9$+9DYI02$vZd#Zh}#@WA3 zauT(gsko&K1c3l-FIVb2v3l+Y1``j&PguVWsVv5U$*J(eSH&WK@gMBX-%^xGjU)Qx zG$0F%J{(B^xABHL!bg&$Wx-g#rQ|ba4Bz_I4<}uotMv2tA1>wI^XJWOU2_QI3ww3S zKNo)AWMGm-lP_J8-ui4o1qmS^&ulS;}E+6nj`;{-wtF7DaD=0NUqCMvs z5cQJlQU^U30m^b%9J#tOM z)LCdM?f~fCfI(X99psF2<^jfn_xkHeg^-26_@!TrkaSYY1{y2CLO;Hm89(RHWcA)M zS-=2v<=NK*ge|yfAV~R5^>#|!;VUVj$L;k>$kqXcVAWVwXdfu~0loia3Hs^Evx)zPr)2IuTkHaQ0!NvZku_R%wVS} z6-7**?Ad3Q*E9Wi!6+z|E5FAp1d-Q`>U;a>u?E|#8u#u(ifflgPdi^Q6K_dZ`J!ju zPZY>MArl^2a9UCa|Kr=ccc0n)`WcRd!mA&_!~}?bkZaX9Hzzo;cqK@KoW>6AsjWSy zs4Mz8)iW408oApRK7&g)KN5EV3*Nc~@cW-q*hFWL9nUEiwio@-S%QoN;Q9(c$0Qngpwu|U$%+G)f5P+%^*&yc6Y%9cm z15zC|nxAP;RSU>c$HuHTLfh_+wXB_;Sy^uMVpnK-16qCttB1|ZZ@+nC0Fw7${M56_ z+Lon8Wz{5^0DQo8hdR~7bFX3id>6d!U%mc1?1KJFnH2H6r7-BhulO|0Gg`Pr6KdtgC?d4rLy8t}LG=4XZX}hsElnYELVRYXc!}^*ME>C^g>$|mc z8s?RoL%CKfkYv_$LDYG{pZt+1xJswdOSoONLx5zA`_2Y3%n**> zfa5kxY`cOP0f(sBzd)uK-f!T~=c>m%K7RlHa_gw9ih%wB;@xDU#+@naC`i|Cd4ByX>Y5p-aLYF&9bFE~lr{Uq)mCyk+) zks^UNgH=J`JO2Dnc}~>=()H{ro5S2ul5+gowV&+kpFi`*c0}l}haUW~=U+Dd-f-_D-(=SQ(iJic`f?yS*;x;Dh~}uP)1sZT`s!nAU@D+iRgoAgx#7 znNvKw)j9@B-p=^&maI<~!CxQ#t^)Pk79^c(g6x6;wFS>>J=g<|I*RpUyeZ_|ICv=4f22OJgKN8>CjU0 zYf080H&^ZL<*H}DcGee`{%S}u%08p}$|FOexxU^?<>vQK0pYmS#R4?`Tdw-+42RH@ zi*n#0&vC9bjm3Zdz6ji|iO#+sS|N06c}&41R}KHAch@A<&WEGx%9-0Dt}op|@S*7e zy)CVd!Vm}NuPDdE$9G0FyaYbc&-YQ1aTOHPSYCVdpIsF>m1b_Q`)W;Wa*u}YTNlMP z=(N+VQhs!{iMM}Y0;V5&ZtZxk(EV{~KQ^%U4))h2e{5oI$<_Q-^!~@kk*&X1bN#XF zPaFTF1;32(Pg?NP5dV8x@c%QNwHT=bPvn6Z=xCn*mp)5>@;I>hPm%V^9{)@}KMnDJ zX7Y(Rd>Jrv-TywxL6`craqq_2%P9tH4_KLr(YsCjgFeKv!1GX-iSMg zW@NNHufuSU&s=Bm#0Ek`>z1fMLCSPt1`ap(kXJz=Ajsg`dRU8b%BlW_d6oG|pPcn9 znVYH(fc5(i|A%1OZU5=mzwIx$%(4g81N__Gzke&&F#vSKe}C-X_CI5d4g0rU|M6|F z)P~`I_pJukV)GsT%a5AN!0`X&M^iGL7JvZfzxwq5Wv10vea{FGa&T!%x*-t7hTGqB z3B7CJcFaV=a%N#ZVk5(ht<;}n%`cGeyHlc5N%n(Nb}RSV6d;EaC7A{(iOfZW&Y2=@ zG^3+(7C?n^t?s0T)3MLxgsyhynGI4ll1@;3QZTcp;#hdx$RXB9muT}icE&ZW3vbg^ zu8*GyL;t-^3p#!~-H^15%f0jB4X7E80IVEC_BL^Vzh#1Htp(s}jNXpmIU1Tv4_U9q%$!#8P3 z5h;t}nWK73KJ&)j5jq>Zr*}_JQD_$|=(wP+u1ofA%tX;-o8#X2Vqk`rB9xLWv;{`3 zMlnJ=-h)TDSAEn!Z>sm=;E;Nz?+pF^rpV-`rPU9Aedey?9XBR}VZTixhh5dL2cwhz zDFMx~oDXxaBl;ozn5L9DJK`NS_zl$ld}R32-d7+I{yTR}l>arVe3x;urtjbO3$Q0t z+>xr77Q>SCx+kS~OfX+z1)_d0uVg4p}f(XDk>6b0f@X<^sb!>B?|Nt|E4B28z$ zX8d5=1Yss=!%ujRl6NJTeBDiBrLWe~b;Gp?FjlDuttlg(`qh1dwj8V3rg#DT=S%LLBr zJd(^ezD`tbhq;}nvbb;Bz`V5<$%(`GISOJau*SmZbr^MQTa6oJg-y%!LPs_GC~}bT z?T1I$P}mA7e~{K8VRvt2)*kL{@QeY~`3%i50+A^K<=U7v=M%GQj2w2jVJPKn%7SHWw&eGpnl?hWJY$W59jTo5l(F)r=)}ei{t)#O_XArm4E2`^ z664b7bLzHke9Ecpr0Z+yOrzIgI=tsf*bzY>I^ZppuuK&bW137pCH;}m-r3ZWtFNtP z4OKQ=QKF)vS1z0t-jp<;wjgp38mdOx^3j2%nL;J}O7W8d=W_vhBCGQ*_z}6g@4U-p z9W`W@reg`zQa*mt@Csnb$dw9rPQm)MxN#(>x`e&FsdR7_^x4MFjD@x=m4fwpe|O)N z*jRtY==YUtnPg|rO1BM0Iy^EczB7DC#}7+slP8UjP=_SZlfF2NyWgMx#PPCxts~_p z!RJd?xHgsVcjz5@EX6)(n#h-QbKc1yRTnLNRJZ&mXOo7ub zfSQuI&{1o21ej~<-x(+IAQ;j7EHv84D1X3t!IK6kdU>nsWKe=iHZ+d@@@Kh;j*+7B zE-k3Sz6aAK8gS*eWtpoF)AkLwAY7jIB9%tl809@8HhVC4@mT5EQ4bI8>@$~9o7#?w zvNH}w;^i@!7mIIeKBs^CHvc*7?Gn-3+GUD%QycPG)1`>AZY1Y*-pOQ|nA@8#q8lCB zd-vyJ!>9-fsbij_*oI?F!8j+#?KsDV-rBSG%FD9ZRe7e$75acK=m#f#i~ zmPCu*8nf%BJ7gOU)Xo9O`@yp@N;{{pzHw`j7oExAuE#zbMymUn*%c%v6WN**uW=L2 zbs{6ilBKCw^p{BY$`H->lk3Q0C88dR&AxNR-moT%2~D7;e#k~m)H*=W)^VKQ*Gi0x z;4*u}rfC&v?Tff!vDwWVJ7P{HUTa&K_XxyABC3Qt((Xy!IPPLZs!NMPT;wNZedLIt zV5uiI4&r1gi&AiiV-~~kYF$~Yq#dy#%TlE^&ZRilg~S>pD{--CESW^Hb=yIo%tQ?u zIv$*{+E!|=<;W?coLQf-scPjD*^^4(n2vHimRos=k4yTm=Q*MMYP_I?5N{ppEq=4$szSIiT)te{>C|Ph8$^%dNX!L z^yz@N>V^%8PkP7GQl~em*yV}*+-;SLHf{IvkxUpv7d|WSFo<9j?KgbSSA2=8V;;HO zjMy!W;H$5ZshfgQbRnPNk9}E#eHibXtc}1P@MwLX&%3BqUn;OTx@qPZglfKqaY)p# z`@7fy0*apKuWV3>x`5!ElK1Al&q#0H&;AQdcNC3>O3uw&&(m=&L*sKLnTx4NZ%ErcY1V>AfY_BEY>RtiGX4d8IJqx@H3o~FptIJ zw?&X>rE9KnhEv3$IdN+JsCTd7-wmaT=)sf@FA>vSwYj6r2+l!fr)6{~~f&4AU#fTd*vOG0H1@ zqA>ZWBl?TEQV_phn~LM?GkD*#3b+!3@e?CWhq!K1U9^dt=JX?}d6x$@#7t^1nsV}4 zpZJJOf3Gv1A8@)m7npqGv?m@3&$h;CV{-&*te9qF>B~zG_%E;}Kawi1j<3Zht#YvJ z-rNa)v-cu5f~M^#1?B8%B%0BeKD-d({T~wTJI=o{)oUXxS`@u#p6?FH-|blJNohJU zx|k-t`k<7dd*36ynL2LH<$a<|Zp=%SmyMMQTIkA~=#~29wXjQlRu!U78a8e4$l{nZ z51ukP*le;{70H@SThHg0A_Cv#*};lRtsL)G%HE0*5&TNp%>4k$+7@>;JXW(GS)qzO zRMbV8?-4Q+%xjHnOD%G-e1~OW<@Xr^i-{EOQ`jmJmSqxENk(Pe^fj(GKk1aqq&4yc z{#{#YmGwadAF=IJ=OCk08gopkNld(3M*=0Ur-!iT6@7d)}^fHf@OPiF2DZNJ%>{UvM8;Oh>+M z31MC7i3hg7nLCG7S-6M^*2|Ol+i5tZ;K_qu<;Szv(&VBJ8Cn}Ex0*?2N}`WrpnCP! zQikY)iclx;S`dTnaOlfNR)NY`Hmp#^z2tFIg0y4wMA8w{NQfhY)V&Tp${1R;b#7!# zvJX*0D4RsF+=ij~(o;f(vr#?$2=d%$eKUT_5kj#@SEMpxs}y$aZN5Cz+=urmF$+Zk z(Vnoio;;S$kz!+?Tk-Iu$RybzmCE#>@`&~O2%kvSuYE8`4v@*h8y1JK zuM%zrAl3X3_6^vv?e>^?GJbvh!uc%|7N zm(D8tVfiYG=dOisG(Mn}fXpg-sYm&px}Zv$#k%c7Jesjzo!0n1;(Wa;*}EO-Pqy0M zQ(qG9$Y3E@inNtDB3IK3` zXi9kR7CO3M#E?KuhN`TUxN~3TO?29s$hZi-{2)e;aS9uMWSMG3KAZosy}MVfO>H5e zL7HZg3o_(qm^3~yP}5XBBo1MJd2r15P)28l+*;AZcZ2!@L_x#Tb(AV^u~S;Ly5(vE z?FtQypb&D(Abo`-gv9(SW{3#xNc5cGLfwFYjy?8Ye zYy&0c4vl7cD!X+teIP*~<0Wt8h-bw&yTAbEeMzgk)HBkQ* z*sjAyL^DVC5~ZqPo|^;95HvO+CaV&$rf5$wYpoRIYnSoWWm{<9Hq%$sAf=$sQkSga zF7vu-!4MDOJ|&3J>ZBn>OQrn(AtN9EosnNZPP!ba&*?#wE+}f8)^zN~bZo1n=D`Wt zUAJ4d1oym;p=dvD5*|SAJxsnxu6`#btD=LjGm&4p2h+<;oy{E1(bH5d-&Ht%&8mg( z>^HW=xe~ACv&|BN4mduFq8_V(?<4T@*enDD~xofJy32!X2vf;xP)A$d43( z9D!6;hTYadCe{ybD0Gk`)0k(gPfJ}Th2ceXpu*3aXyE(>uQAo?n!Q4!B;qUGoCyRI zj{T}wWk+pFwG;xEPg=P-14YC^R1xj#d6-K)l1{TKm}AL}bYCXPEk}@OgK0M}V}_jt zR`~FJILcLkTQigu4jqz+9PV)(Q--byyOW1LCZg&Yf#6VSwd6tcFA=fx?YEyeF6*<% zK!e12LYVcQMcM9b#K1pqnyLuCA@l<&hqmbfX>%>H{R9&##*$!({ASbIT{8zW^_8gS z!`Hi>a-U^~I(H&>P9=x3B~P_0pQBQN(1^#mDYER}Uk+I$)p^fbM;pYb=~PZ@K2pUD zQzQsVfC|Z*ciAIrXcuW@;`2V$C7&ZzZ^x9^vZxc4wQ!Wx)4!*mfRMG1B@s%ZIxS}( z&d)x54{vBCYPMz1 zyVh~X3{rf3Z)dYNHny;fman{htFQOW9;ui5E<6)^02ZA6or@J{|3XOKe_J!ad{39K zRX4{+uw>bjbMG;}3#8=>k6ze8xC#?;M=qE+UV<45BJ?=QTdmcft!xpD;#5I;lG z;Mx<)W$AZnh<50)EX$KH?+YE}5lv+6G`(X$0BS|L-^y`AzMa)(w!}~Bo5TYCx_(>K zCtlT*A;Kb>n9>>OoZ9PIPXjru48{c87mp1Toiy%-xOZ)}# zVK}~oVAd}!6h&%OGJR28^Ry|2iF{X|VJm$wDM?3{O1UFAq)KJT9oLqQ>Ok;RzZHlV zK29_;Y+~YtnDImym>`=i9Y{lMf(EDZw%?xooh z?^ z<~z<@wIRyBdNztOWAl2ZdZuek9kHr#c5J9tv9=8-Wc68$x@WYEe>;@|3elA}ub?a# zuk-$TSplt@8ckt%dPn%;Ig${XOW{!p_A$y4xdXNG%Mk2DFZN?JTw65DlC-7Y*s53( zE80Cxway)tG}5jRD0yz{);PI}9kjoh+GG{M9uYGW>2-Tny(&W432Xk~?2>kyPy#}1 z8hWn$3s$#v=wptQx6S?9!mLDXCOi{9W$+2ofp7A_NCLNhTqkU0%WMZ%{ zhlV)}LMmh!J_XsAOj9SOIT1H=ENb8){nqdUbIcfp)rLS;J+Xupm77G&w+!yxV9!u$ z&eF&tdF?NkS++&qSrhs=AjX(Awmu1PXORyf^KR6CRH%r7A8=5i(Ss7;0eE{5+nd%Y z?pzpajJ;K`^8RgVz(J`+g@>aK{4oZYsLV*;Ye>wms+X{3x+GB`E9F-t1>1 zTmFkXHk8H!cjtWNkCbeq*mpn?rba~4-em8KZ!ce&kdF!BPNGkj+CUdP`xbG`q5jKUddgjB8Y zHCRAR!G>ym9+keG?bOTXBax7durCr2mts_8J|mB`HguxHUQw8*=lP-9s=y?r(%TZYoh`n= zFjdA;;TqcG=b!5%+qaTiXZ$9 zsUlJL0@AbEk_3B0u=%^9N-KlJG>kb1+R;z?n4GeoP#*Qb2pieu$cVMgK<|votVPk* zTMP*s%<^H9Dn4G`F>@u$b~mYae{7DK6|C?Td_D@xFo{f6hX26!3$|`UED28=ybYsD z3%Kg}cY_CvsIG)pl^=f|OKCVk8ow6N_-b&454nN0^yaBsDit#D^w(Br+2E$_Ju6ZS z@roF|WEB8u)$bw=do2cStzs?ZOcik$bU$GW z8YVYtO?9|Stb#o@+9vvjFoQtG(OkloKtR4yFZy(O$6P-$vIG%DCIvGOM(mf5428DC z6gSPg4bG0=A*dtV?pQa}+8O8c^}tw0D`6^)u=mwbl9s4(<569AoyWjoAK*-AjSNJ@ zp$9Z2Ymvb-k!v3+BOSg0krPvgf>-o}e|wqnxN-2Sh}X)q6Llz>aLV#Y8+DmM6672IS_N`dp4ulLHpLUeFgN$6EXaF63#ALJr=Obg9H6>~*f%+fo8_w==N z-rOrR+6$yEvS#+A0+&^*{p_A<_)(&V?@LFXi#&xS*Jxu{;EHU_geNEvghO+nT+l7w zOLlx3_QyWgAS0Q|#O@brQkPtC*dMEW|i45+JS&4^l5 zM8k7hD4QvoAs@9VdDsGX>UVB79Tk8zARXn(?Bf#>Bd`gtsYV zw6gi`^S-()Hj8V%3wOBo%olZ%n+QgH<~@(3T=kgW{fasXj`nY+V>SMKXw zX(J_yj^NU`EcEF#PYcuA5>%z6AVdSk981_hqj@Ar} zH`2&A1lQEU5QY`sz=>vkqq_CVVPOnOl6*jV){fYXaN7^NH6eBZTJ9BPRO<9;0f7qP z5w51&MIej6eAF5;M-GT%Q-LHlyVtUWt1N#M7W!qp%?(W{pI6@}$os8eVjt z^ms3lFb1R6hwV|Jp2sS@iy1%<@}F9O$n+Zb6Zf?~9M0#Ze+tb%tA!h47daE@b=tIo z`|VqlkKw8O+{Q$#_)t2|DouOllVv=1Ba&Mg#1HdOusvhpMkd zzC5n5PhT{~g+!)U#U$^7E>!+2@oWo6y9-LO(nR10JI`jDOxU`Vs6ylaz?+hqhF?2YQ9lf^k zAz~<%w}@8SU-PriEX&Z4_me2NZR5u&SM6~Amasd7gN9lTi5ZTE6Z!Tv9Lt8oaIBq~ zO?iLeYIddna|L^){JRFFhsx3v@4t++nKX%RXtMRi?chtl?2vaF@h*o`%sx=anrR}( zO~Fk(O~Rix$Ul>rLHl*qvX76&it1kJmsSk)l)s{QnbWV2Fo8%&@L^j{AEoerAaXgO zzvqWv^{!geN`?g1LBy{{kX=Y(k;M1q!??$Q0a7>CrmS}f64 zuriV`G|DejnF6g#{o)!-E7Tdz#VfmXWsq~nm%=ui^!3%`5h`<1?K8%BLR&LVs zO$t!2t&<-SuZX)MuX_6-eTFeT@s2vY3|};i z)fX<9a*tFpfA!bcR4bk&Y6?L0wP3}u?pjx@-9yy53w5cfg$#B1d1*wG%^~yjg*pb% z2QMPtQtU`$ZBsrP-oQLrG?*UD&~`l)!W<~&wFSdG=8`I9x$`|gFL=jTrs^y6D3za0 z-bcScXSXZ-7jN99B9`cmY7mqvhBVG=*_TUU!>(z6E{Ql{+Q9yHyCcW0!ktpQoI27x zybzxsl`Ts6j@VcXF&3IZiw>;vqn`V0( zX~}lQv3>U@1ROe*&%UJp6;&1pkopwp<=T5Qg!C;TFO#|8B+zGZ6 z^J%f`4K12tGtgVPRDAjSmJkDQT@*>7+$(sa9d&4ld1mHxHGbCD-S zrJR)Bv5(78>LB@$xpLFflT11RkH z+4_)cfrWzK6x%4)(%L0IUVcg_%+N6;VW-{%Z`#2gZO6K8Zf%hZ<&sr>?`YYhb$6N{hkK8`@AK3M z?2^00b~cMhcq``K?m&64V)|7oWhZm*%t06?a&1 zgq<>`ylOV~!q7h|eL`5p zt9FAcHHaFfENLL(D|kL!WrJXR??9QPTZxjQjhOO|<0S=_M+E%mcoo>RqzQI{M(f5i zu{nX-Mr6S0x8 zo1S}pu9YTt+5(lzH8QlVn+ks+p)jqM>FmH-F=1fpC#UK+I!i_Qh#7LD;#^Yt@rhS6 zxHP&j)rQuvi-gVkSGw4Mi{I$ei4bEKZHg-+Cj|Y1|1K%#eDcR6R|9qQPKhchIP|b5 zEwF=Mxy57{$!I!k#=rPfb38&0 zrWY~Y!Gk}3D@RkG;0)|>aZFlG@^|8b84_zrRE;Y(GLtqI8+uV4qofpfI&f$ zaG&JsMdg>C@-Er1o8O{$EFm6rxY^58sgIhLT$micP>13kkX3Mf5Xh<%T8u$QKy%XBpx_dkH3;h-$m! zTGmEzdC+vNL$u?NTKyGnk8*@JB>YNfjgroqhhiwT3l+#uWh%(!(d~6t4>IMVj z=rmTTgI9=M!^keo=X!z1x1V9l@lNA#kyGsN-RN}h85IXGbdQp|D zc%IiA_0&qJ^aZWfOZQnBj)wMd6Lwf}ToSET`s*GrvhwrR?I&o`$yS4fKzqw?Rd z-4>2`UE%9pKfmIw7dr8na7R?{a>d3p|7;qo>8Pr~tV4v`?4nYAJSf+ike+tUy(1+e zF*B+ZPdZWexs62$!`ANOe-~;B>D>X6%bYk9dsROQ_Z}WbbDOG^1 zB*s_-5ku)Tt*Cet#sDJ#{X(fk^k2k$}@@acMY#>nH@ow8|vK$ zCr$gw=HnPatAkwL4N4S$--al>k5JK#FoBEw9s$DGAnKh`_aw#XC8xJDvoD`w_t!8< zYbc^>K8_IT1XY@{vm?~6#fT*$d?asC26~ps)X-T`SSsAtxIq#kep2TuGZwn@Mz#03 zy8TJtChFF4;e30WNbmOfxxK`erjAK>%tvx5Z-!4Wo&rsQ{jTKmdBLK-Gh`hKND?v3 zO57|BP0Z5A)8pSbHt6ar!||u4O=nh+NtjZTI=`pnWeA$Y=#$@YHQYPwlY1Ssd&68e zpTR#eRyYb}$-s2C_yzVEk~dB%5;CM~%^I_`ko2i@`=5wzo2Jd0?7iG5hk4;iBE!hnaL{{G+0)oq9)_2!_YlaMQ6`Q}wNMvqHHlBPgGQG+!UcI} z_kA%>DgxM5HrZ76I0Ii+-y5i;X$MLk&HcTq6!8qGEtR_WPD4Ym0cQodeJhEC$K^pC zy1cFsmR<6lA_BM*FT*^2%H;c0Z)G`ByjXs?=(~py1zU1M=8hBGG~4Lj>W`sk9vf;! zptEoHk3o61YG^}-^053;2gi5jr{TtG1@pA;Q|KqqUk7TbuQ@UDX>5x*zS6^FPQ%UA zHoAqX74G^rzrQ3^OhJ0TW8VyWUu^dEYitz_fTz{W^_u6qPjQom(v?ZZQhv`XV4n>> z^W@EXfga~ZaZKefB7hY@{Ly|*n0)5h0~18BfBZNq2|08XZu7BHk+xATH6^r=m5yg# zh$TQNM2V*FZB$k){@TZ&vjk_p<`pm*Kj&?Ze?(SUjw)@Mjch}OI=~1#y0q%AQ_OyE zquybdwX>Igh6r<#bd<*4L@gB_@*oWFfB5b;cg>L$+oSuo=-70-??#osJXU}=@Z_Kg zIc_G4Z1#a2p)F08&U&vP;&K3ST&*x|V+0M|w4s{*QuNxnh#odk+&MAyf6ycCLI032 zJmXr!-*Z%;r6eM&y;d>BaBC_@DsRRulF{>p6aPWB6n$89(-mCtjyh!THGcnCVhM3P z1Ey&aZWrFY$5vo#oJ!=8LI?xelIZRa$=^&sW=^^pzi>~U_T&?3#Dtfs2l(z4_D3Xe{0eYjAntud!;xn8d8}9kcElM2I zwTnHtK7e=N4H7a+@_0xHdzM>9Y#;kPJeokVJ;T497zKH_K@ygR9V?9xd{ORf&k$xt zR&+OV)gdZvw|dp}k`rDwJ(_>MjdE%=%4;UtYmFo4#nAme3B+R;{^Q;duGp8MSQb4Y zVnP&8`3t{`LLu%v2^YyoxP>@y=^~`YrMYU*tJ~VSHhJ?)1K~ao@RCDN_1e?iS}2?5 zemZJ+%li6k=@SgXop(t(6Xr~)g&D>z75OFOW~5f>c3xd$InR7y=KKLF_$ANQ=9i3F z_Y>CESx_=^w%%P@-qGjnK5=1QAxt5`;_nohgFFpDlCLTim5lUk@7SQBK~4^V872pOJuWN(=9(1F+?hb&bBvC2%}x0!y1 zpJQzrkt`Q6PMfTNWtPGQm^PNWM$-qxK3|1@J-_hqId3T0PB05clNhP+bQ_c_gtJgG z*6DV>WmROm)Uw=z*Ji`6ggnB>q>n{Y^CZyP(UCTLzi}LVqSszvot!f|UqWy|dcQm- zay0jlu7iB-g+pr^sz@nd#+gQx|ELuj6KU#k(`BK z?y*#U-$1#}y%5Fg3<;d+1z4bARXIo5@9+2eW3{~PDJrW#AzNRitYC^yMtsCBvcfUi zA4vS$k<7E1&!pzLShj^G$(u*s?r~fqQzJ$ad{n!#T&v@D3AqZAY6&T1c6QS8i*G6u3J9 zd`{eK&zBzzQ>&6s2MC7vUaId>U@8uHu)KE_BE?D}jC7rIntg&T&F$bO56zdK$O|b^+)=)KF)w!D2-^3lNt&r+M)bTVJW^rr3^5 zZ=7j*2nUlbu>%*3AD3*pds*jHpuLAaPKs(*ws&Ij&?yUQH zf=3s3S$SHZuoiMPMbff0l2fYsZ2Ex@cHB#WtXpU!mRl8?f#(icLC|5Ex8f(TqTqF>X=W!9xcm`%+4rneJj+rr^uB%fp*n~6%oMoTB?Pm zP%=_49CjFFxZqPQuOkw+d3w9U^~r4MY11t2p4L**!9CHt(V9MfQpLg{&B|HY>r+|U zE;j-(*RD=X_vi_0tj!>q&tUdc^u77so!q5RtoPnrBj6{Is(}>RLxe-<)ZWJi`PKM3 z!r+vil*a7FWCdZ|*nULFXnF{@93nt%hPPSB$d@WVeCA$%iy6xOz@?23L8~!hd&MJd zV0h;w{2FvvEQ6NEpFF>5KTu3PobSz}HKI}UPYM5DQvN>{WDJ?l@zJuT738TElv0e2 zy4ILI7Qt4Xt@n^{IgI+!;gs@_N`+*Qod;J3-wLbGc3$T+_a|Omp!Si7TR!B2T^naJ z!|*w>6&xI6Xd|2vp&_E3nMe$BJ&md5g73Xf-d5$Y9@Y0TCO&}OW6#H;;eGPmw?MzM zH10?nL&w#cWSr~8@MX3Slva?C^5_vXbycv&>aqX{4WTj$QX1fUJ$road&th$K$bl} z{oIK}MpxQCoDAWHv9 zWP^8X`vY|omL~`QA7gJB)mGQF3*WQ_+EAdqac@go+=_ck1ugED;_mJRN@(%o8a%kW z1`i$x5v`AYYpVWKR8P=|EH36@&5IMHW0ym=B~N^OH$|YEoxYv4&J0bv^V{Kb zKwji}Rs!Ui)K^{67#}7|!N2fEWmJ`k#0c^oLjTGVFz2hC%Pm@@8`iU@7o~+fll0wT)wC9F)Y_hnXO+$MLXH=cvl`~ z{!q$%5~q~Ep}cAO>Ie6HdrT&7W<0{7ch8+EZaL@9L|umoH+-O_Ip*`frUI)z*JOb4y6#y)T;${NuWB&eON z)%LlRNZ`5dWu5v^I0P_K&?)xzi;1xQ?($>eG38^JO%QMIGuu*q_Spm);l51Wiq91A zTb|eq`RiuJsg4i&)XSzVv;cbqFG?S~Nay)`LMZn~Cf}LKy4I820!MR!pI(II&M@(f z)P+Uy>trs+QypIy!NCUd_9-=7)xWfrr1P#@$0&N2k=^z8Qj8jrrG3j1A({aO|!>Xy(2&5q5)OXstCdToZbrbI5j2)L@^g zRboQ_dnkQ!hswdKiNYD?7q_EuyX~;=eBgSOy zsWw?ac5tom4MGVwEF$|RqpC<-k749d#pqZPq4TZyZA7mPSI0v{J@BOlcX_YS{p3}> zsHv-oE#j8=xZMxp45ynvdQN&)jeNKHh_0x68J({?L^gOcnCOVN^3}tQ)m_Cv^2i@g z5EA1++|sLoc1Ef;U=&DtUuy2_?ji{7<-|igyj+NfX9h33Qs(|G8_i?T+)DT;q_@@n zfr-ZmU+o{AO|3lr`7%7WgsMB!K861A(`T4>6ugHFheT#Gq^I*~huiuEbj0J=rgH{Z z`_QT#OLF)sSX$_0-!5oFA!UTrDh*^hND9FMNHU_EhUaE(*8E}fYu$c`XzPICApEn_i0!FgLVjkHi+qP?6_kVk^bCCn9YZ4p4!9wW}B_)-p^c4^~6 zb3?*7pHzGH^#}`|TZD~cRJ-+o`QWD4o>by67O=77Zj-?=F;FvaVgSn(#FL9PVGD6s zro$ct@-i2#PuA1R=hIx`vB=~~H4{@B4PA{(S=nW!m?Rx_t!*F~0;W(s9hGN3P0Jkm zu1`Y@aHC3NFwrLnfkm+Z+900#Rwb6CX=*$d=QsSBkT%Art`>y9nP~^Jfq&AZd4#nn z{nA{wD-x!kQ;ULa;_87_NpSor#6=b~$hnJ+y(w<%tpA69f-yS@=bys8{1@f-=R|Zh z7}k=&vhA){v}DfC`I&N6ya`_F{LO%2Qlr$H=q2WNk1#oMw@et_OM{8_Ct{1O6$eq_9Qu?_;I(z{n{ULL!%x{74n=Sg)w^Hu7PN4e#(Iw$eC$F{p#N6@ z`(H6`Js3xw_&yo>-x2TOj5I;=sUe`ISLbd!ACM(zxAh?;DP6ZKlsNwns~(+V_6Ci@P30^Zb@leI?p%<)x)d4^v-cJ&D8OENP;?1_Mxqu>sOd}s~|Ah!^PC@Vxcoq>*_#YStFhn;*vIv zy3ir7C!mK_;c=kh~PK}&Vj!zT5Af9Ps*sh3^9vWSK*IsCSkb?P#sgTz-GsE0x^XJ z=hU1CCG3xPa>T}$XCe=vy8BGmiS;_AK-kNG3PtgLuMr+ReusX=@?V@8PpTL)~P zGEVbwiEx444CrblF|?EbK-YhKqmh||*;bUS!C`<{xlsgKG<98l^COmGZmy>A@vT=| zM(SSUd5jCB@zczX#YRCf#$jxQrDie)gG(ku-UD&?Mw5940H)Ny63c*ijUk<8 z9y)Af2&tyB=GPO;FAN_~pt9L`8FbOFtlN7IJdQ%9)m70|(BG9XkFULn zpnW@~2Azler8;oX+f-d`JsGPf!E(&>pQfJSX{qrBHX~J>xrr9~9GH`&+|&9i^>H|r zzBvu5czNnY6-7!XR+2JS~!{r_5k8Qufh zqj}Y=o$04kL&t5*0~&ePvZ>gDv)0#p&-b+7Mq6wj(-IExME9nt{!}0x+YJ-|>-W3B zYf!Zc^N%8A)TXLl9hcNNF{Z?`jd>V)i?NBjKVr&+Lo){aVQZGQF{;hx)$W|pqZUil z(+=O%ID$6|7ef{yHQ1N&rVkm}4$J|%LLMAjcfW}y3a)JS_b}&iLY6MeNRfqTol?Dy zi6Jkehcp6JR?jr*CZjCQ7H8LF0M&sXK03Y%1}@v7WUw20%|17u*`dE$M7T5~upPu^ zhlb!jRB~JU#DbH}3JGp)1JU=RnMa$W=!XUFkNoS51i*Q2^lirAU%{u9W^z3%+I@O^tDQ`$;Dsp4M@uwlI3`{2pcBnJOvZf74$j%|qW4M+O{_9z zv9T_q?u#)Ne!FWG)+A-TzPP*m|_SCKsj? zSFA3k_eiJd*Vo9}NfouEU6oLUZ-2Po5}HKwM9{K?WQY3KY~U|=iNKYNoOKF7<3h2# zP*~(8Q=Z$TQF_A7b!t`eMUqoNIh+^wWAfn_34U?uWh5TUjMI~vB&R)s;glf)w%N*` zb-^qQAKd5?NT@_pSw1G~!u&r@_|=wo)rjcz2Xn9p0!Y>B2$;;U<^L+IT1;C{a~kc);1OG_o1W72j(4ZL z8)SoPL z>SHJ7?9k+3RPPiC71)5-Vb3#CgRgugP(!TpXMt9g`4bx$x9Mv)v~Xn<5?L*up>-=g zs2WjlsqQb9RMQR*_O3V7zGgXHN{Ge+uIG}MJcg)u^?DbFl8>GeOsm|{+IVDpzYY%N zwiHtfg)&5^6P-mb3-oA;EbD_ET)7BqgiCE$3)x~ns=fYoUQeH|*w9FAGp zNTwAD+L+qb?EH|Rz*e_*M*VQ++x1u?j;0;LdzemjX&+!kLCG2NBja_3d5d!uX|qRx zmic20f|J8-F-Xn1HZwYNE7NTuC+gOjF1qAEbfe89U;EM<($Y~OjPQscmQw?1AgtQ8 z2Uln!e$AAio%lefn6Inc`bc>{5A5u{D&wE%|KGeJzdybK{Il*ccu@2}0?LM)ImB20 zho;tp^xe&@0E5BzxmW(&VS||}$|+X9&nU)DpPmr1Osr9;zU+Ua`WxY_VEc!V<|3)0 z8vB(+tn}Nv_Fxk=m0r3p&wD4RuD=!m)}ozQM!2f|Nuq0AN@}e%WqKL6xScp)i+y_Z z<}(&7SIQ6+iPHnJfaPPnJ`*D@P@Ozg=2B8Ns@_ay40zzAi>Y#cc-L{F>I7dy9B71% zrwN(kI<%%UI^>_?lQM)=Km_?pDbO2(7mQS=`NMHr2Ok!?iZ#Sg>0!}J9Ap88+XC=`-034>NABrUG{839ku9HHFJ&=JU~vx)Xs5PD9hHV?0(0ZVvF= z%?1lt=ooioGIMu~5;+ynZ4ZgR6{+Jl%gn*f(nbd0PGgdkX9fU#k0oYL$?f>3O$i;Xto+v@mhvr?5Ck$q~TkYqZi%ojQ)oqDR8*wBdD=c7O zPwCs;-(jfoL?XB~%eEORn|3iaY}=i)OHaSY;uP%$%;TdupZamv=b&>y8eNKZK)CC? z*kMa+xUsJh+O;wakn{n5S}RIvkLrc;xNP$y}eNs^eL>pT~s>?K5oiCswuamjAHD+pJd?h_`BSKe!oXpG(ZU zF*y*RN0w6PNQg?WBR@^%Newq0deqnbonFsIK|g|HVM;x}Z!rg6m1X(M+2$=#0jE~X z()}DpFA}9SVGP~)dG=E{nZg-+V%1}~Et+SiA8gRks-F$)=3x)nj9er_Q&(;#iv`Z< zGY#T;vhD=TUy99A_@s9=F*%x+cT`+723`j2V`&aTyr-V47m{`zsYbBl)3tpT?>pTHi;$>!pbO$zaeqe z2nuHQA+eD7jalPuIGCSH96Vd@sku1IWgY|-PNF5|EF9;f8?F7D%ei7PE0G9HamP>N zx4<49*x_z>A#KWr4Oc0;C*122I?*nIzboc3L0+~%vR5=jnlFGIn>Z`llRX|HFLL~;=?qN%y%MN%1y zNa_Y!=$%h)+f%rspV}Et6Mxb^W5iD9el%!x`n%z>+Y=i6(5Oc1iAwCIO!@h z&{X~}L-)F!(85hwSEbo*6cESEr1YVez>Qb)w@1ELD@oX9al+7TPW=+ccM}r5W@^rl z{Q1ApkH8PMY|bz0ScaT~UH$A59^BUeM;c_-{ykQq`&9!9+vy!@L9*)5w7qMvAcvxG ztQWpMefOJO7Umevba_i)572%&pglz@R?s!VLKsk)-{pXs838p?kB4ol%m5oWenJN+P@r#@V$7EnX!=B&5l zNz*mdNZphq*04v_{*oVfr+ZntDJmczu4TXVV58aKRT)82d&c-4<^(P5BBL8Li^1cu zWX+^W_i86Bu{7v1L;X3lL2x+bYWbI^+4(#4(nTW}-mN`WEJrU4x(?8;w{Irc(3YK( zwR0MvQ}aivFL)Py>5IFr_Hmn#{R9VARwKns**+uZzZSBAp~emyJ~6)0Xx7%;@Ot3p z?Nat%u$5KLIf`YJQ%x@(m0Aw)F( zCqztJ7FGUvf}5_@(P%|_oe;D+Ol%kyYUzM=E)oLHoJy$lC08iNe?=sRG$1Y?u<12^ z0ssfdH|=5ojidHhX_|}4Hs4i_$%RiVuD;*9T7V}F;{jnTm*wie4hhZ~Hnn(b61e0q zbae>!AK%XOpJ_Sv1~|@qV@1VXbb3IDifM#sP&>Vq5_&^FE7X!XMtww=lqOz*?J+gy z@=+*^Uesj0vZkX4?>bD`x#?GB_pn=TEfm86ky{yzNii>x=u}E zGzp(X4~dPMB8qF3NY9gqxOP9l#cS`2gm(Y&5X*M!m>-|J**S0ebeBdmr!rWaf%bKX zzuTIy{(Rh7Vzf1@#LU4No0ISmczLw1*3N#)ZDrm@tBPRsY;dfi#(izwL%9Zsp%Cd3 zH5f`SP)kOg~ChR{Xpk-IFjN;HE==BfO3G5Dw`Dh0#gd7uJ1W4^m#iGhe_BpJ=C zG}_s4e_jJAn71)Bv3NZGmX2o2jnvv z=V@EBvs(%;9oD#MrH!M~@8TSp_g0rB>@$MDixT>o8)dquq?+DFc|&z)I-TRXt3Mmu z4kO%ob!@{k4Y^KO`tf6zy^qLDyZlqs8&4jCIKzANo%_vU*dMF^L?a~my&GMecXfCB zmq`V4M4^@;0kAqbl0fZNU%>ZU77JY;O%!%m&F;dS{0~LzIrRFhm6Y<@GD)L|R> zXb%6@Hz77L3>%sirO_(OEp0BM!S3yFAlMaUI#IAYTeg8K3;(FQnU;|_#ymukWYn~r%*Mbi_ z$!)F?@)gU^ILp@*lQ|;u#dvJ^@++NPsf8!Of%41V^vz(&1eYm%;cT<3kzSvYPu>+b ze%GWYYLaaJ!$2a8A4$=+ZyD9sjf->%#ti8s>;ZN6(!fTp^CKp%+>L?_?}}(i=|oGj_(om~MD zUR#2Q-2}G>Z)I#m^;-OE<+jp})`)Z^fdGdQ3t@;dV48aR^Ocetl#Aleh(YZL>^b73 zoe3vyC*#&OcGRaq9tdnz+Z)wND=;^Rv@zhi{C86R-$m(tYO-wLztZ*rDg>%lW!sOqp0=k1Mavhx7Y*}3GhZ`{3zTD~Pt}*5-H84D?Afs8 zfBGtF?quU#%K-smeJWKT7hNCv%Q_$2g7&~LMqWZVS}K*|$d=ckTTOhuf(~kJyyT+q zClP0#fBsMeVRgBi#R_VbI9jbaf0(A3FEtFDY%rc8Y$R;3GmidxT>>UM^yQDB|6o<0 zC0caod7nqR%)869Y3g;hoLcnEyYTrx2{2zlkp6u_D1J3;Z(}-Y>wl_4M5Abi{a*Oa zHzG%8`;c$%H$d`imRtX|M$?^8 zcF(ORb7qyj4OYgA6xtW9EfTjicU}u7OY>746kX7-Xlo7f*dF5C>p$qe3q~C-Ot2{L ztBQ+qGFUI87*>5ymYFFA9*z4d8Le%H~C2$r}Sl8B?^5kFep_HQ}z#N-mMD#Hv6u{Q(qjO)gg(OwYFcEn8$>XGjXHlM1MFc%G~htP3hrXgL`r zrJvB^?=CDG8Ly;gL$oImex&Wj(mteRejqBIMo|0b)`poDzG@(B6|EQ{ zO<19Jte~PnMry*$qDlr4Df)M!_LFC8`ES{6zpVu1yTutCQmxllQpDlq*F|$M!Kn07 zCNQ=%-7{jK2AwOl;S3munsCWcy8CO0v-cB8t5L?|k{{zO&V4_Jk8CPq0v0k8Gn!k8 z>3S=FTeWSHk*^5qU%CQnW+!1Qc3qGwZC{`+YLv+31+yOmz7qP{Hp^ZdY&0O~iFHUZ zV*8*@wYB#Rn%g1C|L9{5+ywbVsL91tEPU(n=}M}UB!GY4q@gBCriAG-Yp7_5EtU40WbcTTJTi>RBhTQ ztF}a)or3s)rPU^nqRNxHkml_^26(+H@ud$IMagpk#a!%wWt2OeVqnkcb*I|lK%-G_jrZ> ztrYYh%MA73QG7qt)f#PWB!OWcRC{L@^Q}Fk-H&T@TGS)=Z5qSt1u(S*%i&9;WP~@^ zpm%t8l7Q-L0IExWGwq@jjO*`q8u!-S>pSsXeAt<6!b^`w!TEyMlncL4`Y)#f9RNGuV!W}z}x=0ZWTv7xBD@hk{y>$WTN_Uli=0R z>3-sGh1Ty~+Yk2W8l$GdRY%7KPj-2IvVVtL{1-Cag)7`iFDrvMSHIFU>9bxhFzv;a z3p3>2s9fi(>-CgJG3lI5!9WhoT#U>57nO?JW<6+E7|Gym7O_FerT<8>9^!@&-P|G z^?p(2!FTFbDq0y%ir~#_?SsS<#-Z*F|76vCFeSH z{xABBCt`^6FOJ@fjpnhPCbNJqnyv3Dv}h7*_QPB&Q2+JIbVd8BN*OLU9T-uA_B_;@==Tl}21F6_JJMZr!j4|AvW={EWIKH^EEN?~*(g zrvz*&u68rN!+sZN?PzB6+GCjTYAHB#&EQ83ET9gvJ&s^c;vJTDKT~!Ua=G;BuzYMQ z@vE?WZBl*Z`*7NE3+)9ebVI!2Fgq1kWoG!i7BN!(S-|*7z_cWck!9UF((Y>Maue;T zyw{yX(O1W8|7wrU$ZE)vNnUk3vpB7~&jGXABB$NUH$5-w z$W6Jwkvfht%b}9JZmF)56Z_P!PnrC-Z@1Efw$cKnDBE(dh?;d38hwRul(42 zuaMs0E5^Fa{7M(8NkiuR+Lt$OHlI)B<%LX$S&2sZ7DCcyYkzI!l|tIjZ$w6K-&nMz z9WGwZ$c7q)kP;4wHPL=8>R9i(ZbnHdg(aRg#C{D29{?1oM7TUURC%= z(*AKP$d&pW(oQDo=glaY(TNQhT5m9;hC`N#zDU9c8taK~7;*nvjB3$tXC;HQwGb~( z3OaQ^Fg*J!muPRYk_|7PdVS(jq;JPa4wjjOeqzplWOsoZM=Ke{Q(y|Vg#}EUk}56Z zU%HEN>cSI0FE6l zasEb5l9*~8=|*KWuB&+}^=W0biO=XSx?4wVhj+Sl{v;%A1s_p`A1GgYmDA!_9e2=JJ@U}!s za3)rujhMS*$m-!4!k-RmD}&zox{Nfhaah?U@tSyQ#*chrG|1$WUtL`S$P=ll>mf zv10e#L5H4~FTlqGtPs)lJKc*)a6|9=Vc|z%UY`hlqbKk?t-+K%`*MB0Uq-Y0dFFhO z@8#`3MBFU0a9c?;hIY|HFGU*+1Do`Z+G-PH;i(_cN?xlY`l4Y3qM6$^Jii71zz((V zDz+(?U)lS301Ae&EkFKnRo^*A4dbO%bRFp*0IkHuGW~K7w@(!TWzP*#9bW{&Qi4pH+*l>)#ey+Ces!!1sDKfa^9*pD~6JnaEq!?6H=@<7I zgKrH|IeABQB}2QLNxcsiC8B<-PaaiImF`r)SwzQJN%P%$Y!gSL3QK?H*cvU5OiwJm z+rNi^$x4`PylM1}=)r5Y&5I&+p}LB4??9%2&o=eeTU$ILWH#cQ(YL>2-N^GFoJqoS z)8@6R4?BnBG-g5ujosn7dppJ~w*zw&7i{!Hxh2gaM8dIyA5uUt?qIVL1dN+28rir) zwc7;lv&Fr8$Q`2cnKncEuC1=Osh;*tyv#|H2cB6kX%g0Q<_AWd+p8tSpMN5Lt9M8x zJxt6($zZ;h`Z|T;wqr!l2^QqKbltRs@0y^w%4t|ePgpTBRuTJmSj%OWAjA%V!Xd1{ zJsIJ{6u$*-<{vG57i!1*9{Z=3!9Kf_h~$#rj`|9d+9USq>MM)y+Ns#3!##cyyTH_h zsXYpo9}{)0iWzo0iw&krBlzl+0;4VU`bglsf@$PJw7FEM10=GP$r73ZT^Sc^P7w@G z3FlQxG$u8{FWAn^80i;u>{+En9(W}WL>@H({f$VYZ&HEcag4R5uOQBO@pTPqY<=9t zCt|IyZGGhFu^?MHXO6dy!<`CKS9d^7*GCh5F6si6*1{OaVA6#to6j36`QcvYil+U- ztyP>Z+qEVvTU=`a2gZ`Eql0XX-k&kPT0z;{{)VZ^}4*3YoeQsNswcEt?H8Ui>sWSw@q*$VsLF4=aC@F9;XmFR<5@m3bDn;D)B0+^Y%a-0Y`w4ogMllY;N$}XRxKr~h79EBzS(gM69 zQ*M6=M;1C@`h-gdAQ+A1Z-d3E5H$h$VwmQN#B>Fgya?j~9GUM(Z4##L%ZGbM(Am;m zJ7{+qZ@4B#Km5XdokdF+0Q+-H9WZjlud918@0%zQW5wJR82?nh(}wZLHv?>GZ)|Y- z7iX`8I`P`$h$TF(#Blyd&c6rc)s_?Jzd!daK4M%AU`B~Yw}=Xg2C^M z9V}xq!qh`*s6UWHmcnGCoY7@@CC0QkZr8&*>=$#j>S1pn9_}^k^Pw=?6ERAqz;FHT zYBiO1RB6TABM*wnUooTy4{Z~sfaD@f2J`$MPf)#2P1Q!ldQ}ruV3k?&xSlGM_;-wi zYp1m_M?j9n(?Q#2RyLrvP~I>3dVxu3DGucuEY8GoHmtVKqZVh8Mz>iQw9Py6`Y*6}Cho2su-1=8Nwixicbx4vr z^*(g#v2KbUT0!V8o{G@Fb)O*rcZ=&kqyImi@Q>4Yn})KwQ~zTFw&}V%J#^x~W!4Da z)sOLfwiJ#+>i{HEx}XqJh;8g$C7Qf=;WwSC)WJ#$6GQhkDZnuUOlGh>I!Au%&MKE z*e&y{G%*9gjt{1SFDQI9SQT4xS?^^-C4hpHqQ9)#aeo5su854sa8j5ASBR*mT^iIq z1%QHO-+ECle6-(RP8vtIyWcVkR1y)N)I}4OrFpvhM;$G`h|ha~7F8c#fmH^XHA=$E z-7B&Md~U5^bbOrh1vwT+zJ!f_&%<|z$14RvJnDd3?K1}a7rSC#~+z)QwsRXrNJCf0n4Y;HQ> zL7RiBcKm5K2VXA#PVfaOHlU7hDSVO1OiJ||5m*+vS8%!FmWn+Zv&EPPgF(jZabbr~ zy>%mC6O~69Y2~_|)%+<;L&~vIGI*b|R!=LR%B%f6{v+06?GuF6!U{w9^MOK;4UWaHx92MP9Q@(<|J-!tx?L~UjFxb=y^t~u=c5r z;`wB#gmmGG5J0k@f~krD@66m*^k>jSvNp_q_DQF%SV9-5I;qdsR(l}AHpde8Oa9fx zVY|D2w8p|>3NUDWP$B_y&>Z(Sz%8W8?y1O|wfDewI-TvzJ z98|rvcmDdz3{OP~2Te*`277#N)R8^Lb;Hw_!&l3-;L&WSDg}|Hxa?sV(F8% zl*tzUUo968c^nh*C$lz*yHA`i0$s&yqnkSS?{x!aEB`ae;A6d+=L9nUs)`8MoQ1wOQ6O_&0-MmupAKw#n@i_KeMM2&Kbt|r zE#e`~cNPMn{l0iD-;`Nd#fmZwOZ4o->XQ>{s3tD-8zm(^7zkTP4$u=cR&cCIjr916 zPG9FYMNaD{>&C@EfF=|#5%^+ zTf;*7Ld#zn$gbblny)Z|#}JugORZ*}za^J>T83MiF=TrYsv#1LE84nG^GQvT&tFDe`|Enoy!y@-S{&_o zOxb6K>`q)6t%cN{umKr65H*JZ7kbxF%ZZUznY#1cJVdT$OqE(@ zQH!}acQQ6CH&omUjj_11SHr66`4zaAzGY>w>e{~FBk;|#>fjkBwnWdM^d$oZsM1 z<=H{&#wv1NeTjr02#*}9t|Lo10?L%k`4Q)&OABWbn>0-q_I(mkYquHHpk-Y^xk*2~ z$m_?GG@$^-EgIF|6D|2tbJiiT^S%jtai7w6Bv=v*rtlT1;p~o>o0tG@ zQWupfrk48Elw2$c%rYoqnQ~u+0KTr_9>e|gE3%&GKIk*1)p^|Q5Q;QZFuS4S1cOj{2t-ec?!EjaW z(Ur2=VN=3e#GXt(=yn+a| z`$9zIM*BCD+wRHQU!ZN=yvJr6CVnHJd(n;A9qs}jvVar#n@c~aIH|hAgL+MkDvnSU zH0AjcH=%T+0BPNxIa`7-Ita59qWm}^=2a5-NA%|u(s6z~T{2;A)WMxQs=)c(p775j za&ELReRBf7Mc&aI!0M=?F7C(on?Tg!{-J&~bdO6;vJXnzQFSw8adaZ)Ex`+Ml)+{= z^F{p`-g6-VZ+!qV5~E9hr!b{eCS%)&GQ9mc^n`;Y6;^&)rGUmMyUNk$qfYEPU34{# zci4qH+vYYyrbXc1PnUx*CxsDyt8$BOH@`(9>Qmq7j5 z8gax=Cbd(arTcDqvSDIwHuw#%>fP*O)Dm4lMp6Pmu=-ugSAa_FgZSo!xANL8>A)!` zBdpC=9FU1JKw4}?o!(#omAP6j?`e53bY+tpNcCX)l!)FFoDw`+ainYX9F*U&b9N_s zcS*mi-787Id>W3xq9zY41uBvH-kYCqjwI&X+7g%M$GB9JF%|m`!gHJ*{ND8rWN2}N z)>}FK0xWV%;QA58U=@UegW;AIl_>Snq1O)4n$Qc_3Dd0;7WKbREWd`lMxK83;Ml3f$|Bp#?}W9!5eIG@aHU0;w%>^o3t|_#X=KLibJ}rn+O)G1PgTQNow|2+IlJ=X?;$fW09p9Z z8NWzM!*4<^=(fYG*DnJ$#M@T5on#>paI4jy<;uTb(Z@Pgw1h$279JJOf zHJx(C@aHuRlX!kgl_q?B!cn^_cUmYV3y7OB%m!+_iN~-iKnLWn+ynGUrZ-I*H@w3v z96L$*@UWa8)|Gt^LeU6&i za&wbVOYL48tN0sJWv7v#qLYxDJud$t)hlFk=TmB`>I)S4pvt8)CF;F~=9kZ>`g38Q zOBZ6g>aT_dz1Z)Kjh=z>Vxm7>-iPJy7+2^70~R_>uIrK^7&am1U~^_BTK1(>Hfi=& z=yqP$Y5;G;T>&BrnHG&iP~Wq{;d-IMtyuxnq#fRx?frkq-@4xti_i_^)#156Gjgcq zSo?L=m!YWzr!a7Q~Q>DP@$x+hby01BEgyigc>?x@1&K3Q>Pm|avaUw;gVMi;(J0huLtpLjQr*YEyqFA?8BjQ+kI zX@(2=_AVFcycC%3A@Y^Y(^Z%kyMMmtwL0JmY#5cNT776Z@ZyUFT%4)if3rC5XnZ>PLCGWI7aJ75`8`PDP=v+R-Oen9Sj8H|s$DgLlv0(n;A z!+sYQvAPebYJ~B6g(uMmCm&cQOSxMJ*(P#LA2UTP|1jA9LT>#m}KN^6kr(v9-8r@Ov=gzX@TbFO^6Rf>$0duYyNF*K~D6^ybn92zKl^h z+=_7yft>_y&RZ_U1V}0&k225pFV1)m-!;W~LtMp{g1^X_s~$b(=RNp~1i1R+tL;Ju z;;nrT!@lxu_mG|*fqY{Ag95$6FGeC|gz8hhq*#FS=Hqbd@#x--d(lavEvwcOYs8#$ zJ;)=PKZhey@PVAj?D}1e2g=A@W9_y>a)K#Ec27J;O6oC=)OyU=2NAjF&+jj#bU+@~ z04tVkng&niT0F}h%c(tj^Z+NX;r;qX8xwDeyMI9G_qaImI2NWj*+YLYw%>C)r41=; zu~&yQjKkg_k|mN#6$(z7xpJl5zI1t)e7bLP--Io;@PchLzP@)#F_W|OY z!7EoN@fM9M?sPtlAC~lPp9OEUJC63^X+ec~@85}>iXkC;@c=@PQy-Qe{B^dYav@t* z$WZ^29QG2&OKMw%Oklyo9g!lOGl!M&dC#I>Z1_AUUFKZtfeosMuWJ0^G->C~Z1Z|8 zsUs)qs}#uRK^noBsgwA=2JNqSO^@q(C#V}?0e4#hRG#q|&^Tjd!iKaYBU z#;qEO2ta(kW5zCRrJ9Z+{CdwjTkz$SG(92VbOMrFVD%lHjwwp%@Hoi+iwQ zIU-b*+u0`N=pkxYryJonP~xmDwL{!w2>5OtP0>Egbeoa61FtM~EB^aVq+Ho>D1vZU z2!I`L1T_tLEq~a(C3o4>ei<@EcBs#lcS!$q6bfVR!r7SfJ!iXv#tbA~oH>7H&TUWx z`M2pO^N%48ThXz{x3K&-ZMiaj_O}uuY1%1wSNEX5WmM*O{8e&o!^9IgaP4fVn>(vm zGYAiv%*&JPQAU z-~Bp`&WQBnI)%No^YkksRdrvTzC-xvJukS$LPq@+gsF#i74M&GAx)Ht9TG9Yd273CaCbNe`k{@ zOG!Q(NHeZIv&WKT@)1W0x-4pQF`lX8OcWU~?R_!~C_?Ou?u%c?A!yc5-hjY8wd1W7 zf&pD{o;GfS?Zz*O?AF+L?PcaaLvzop zH{VXQ9#00WxYz%5sc;^wmVyf8W^;EMkJ#B}z1&(Z`DBFzDVNRkSU8~jlxqI47RCD5 zfc`wPqHPJwL5=UFDO|sRWpw)xt!zzQlUCGiMPF&~PnxzB1g?J|1Gze7zJJ3As^7mT z?dx-0+~O3@(c8b7z1|R+UM(Px=>GLIwZn;We$ah-vXX^upp?ryzat$7cjLg`lull= zLHSXu;AQ>N*AYlA)qcoYT>U_sx-zHo!=N%SQ%b5qC6<2e zwDj9ATKdapz}A$zmNW=mzG#AM98y-b8aDe>JX5WF87+w=mRt=mOp=m=%(|`A`$Ueg zdxN)<*2Ed?bg`7*>B%Yzt8ps_M?n z;^V70^WmrWq@ntV9o8@<7k{49h8s0wp&4wP*{lJM%&~ZpTJ&aybn<}1{>v9~2-xfj zyzohMUjEo9>%9e=Ol9e8?&RrS5pQ(qi`v*)+U8ui>5*RJg*T_}{ng{{Vl2fmZ;OJt z!-@}vMPig%BSpa&2=oZd5>dYe>vEg8xYU=Z4dT$jsUB%_UeL^C0P%Q|Vt3$3$xbxa zVVa(hgN@7dnsBX>xc`FG{8oN?({#KXa*^Fb4##yT1C7nQm|{Vop3IeKr{cFV2+9X$ z-MuM8y1M#W+Znhz5I7M3Yv=#7=l^dh@7RaMDo5FWisI&iIoixp#fY?zb0&3Zw&;bYCbI_k`43bApuRFh}}6Qkf0d!~yz ztNvjLcIRt<)Bg1MgBNC>cPaNJ5*@^P`~NZal|gYv*|xY_f_n%F?(Pr>PH=aEySp?_ zAkdKD9^Bobp@9zW?(Xi==;PgbGk0FyTT@fjKTh@c>+3%I?6cQed+os313xb@OD1i3 zgMd!-u@^U!*XHe)DJXjINgecXJ^#Ir zpZ26SENwCR@pnZKan-g(Xmt^N*&pfI5e4BE{4gW6lByyeTi8EL-;(d@0ZnQ~L&vcf zJC2uKN8VmQw;Y?HG|5Oj3qfMqsVg$YC!Dnh;a()!@* z#zPr&`5f=l)C!zo)X$Q638aYS@a|!?pFcgoV`k57_eZ{b2eOrEU~ab7iue`|`b=v& z$*q(C6r*SKI!8qSfY@x#P;{0If?Z`X3sB|`*xsYCvhd$>AHYDxdOQ!rtWv+ky+V@)cE1qM6wfl&zDP)PNqR!9ii04Jm$0+q~ zsN%Yy0cz;kM)N<8`2TgI?-zQQJFon6>mLU=bd~CV#MD23c2^R1l=kVE2Zte|5Du&nu$i{H!Gzyr_7mL`cxkwyPq1RrPR}I zu+~6cYM)Ebs9gfrQ}t40oI@!bMPJ!(RV@EFkH2PQmCno@=A`lG6FDuus*m8Y@J41dUI(2B12YpD;Xxj)0Y{vW1(9%9iSu#aY3G8UC~&y-%~o#ib*MbvD-{>9W z=z`Yp1@|svV1w3qlL$yW_y<-MM$M>#b{0<-JuXCbedHG;MIgq}?`Iji;~qGsU3JTD zmu0;YHDkO<2f{`+w6L~I1B$z7lZf3selnY5*8c1I3K16YJgHduYkFonAy)Ye(?|K& z7RmLisLyrMY_UhewCdr^hs9DVeQ$2*XI@G$P_U*3_n9%D%mr$D%)Q8SV0%K*)Na3G z6*!0?Q`HrPXruf;9lPW$Z4JGO4KgSeA>$DY^i#(X z2CH@CdPYhTv+No>Gar6XsG7`)7qjGiI%;0bK!Z5Yj|Yfv*q0YkmHF5!B@}`&uhpC3 z1~m#2G|joDbF#`a1}ozr88o}Ymdkz?D?`^{PIDaiM^0nBXY71C60C$Muq8bNaXz~v zd*dE_wQ%DH^RsQg9hB=#t|Th|jav8;Jw&OOO{!Aqs>ZUl+9)2G-3%NZPFT%ipk#R1 z{Zg;tK&>Ryww*N*RTOlj^IlNby(CT27owAv4gysol1?CnP4IK?6;H-o~_ z>_i0Ex2q6QeZxFGe5gFZWVpxwhZZ2IH`e(0K03TddqkD#a8tzHmYXSUtab!r3~Wgr zB76Mk_E5vvH_*7KDm_B5wCb3g$MmhCj)O+$?2kcv)FvTE^KJrOj@c9AFfQY&21cLGzpT_9=tJHcQq%@ zmPKB3EVFMon0Fi_qmO6+n5-Ciy%QA(2}*X|wgT?=#5=hHH z|JZZG0wC;OnoFY*v!^*%SBw(>yj}gT3F;qD75=}F)6Ia$MUUF1{P-BsMTZ%1=o%e*0L5;8FQ2FL9vV-w}n`|$$Xf&0^a=HYxv&&~c3M`SbE`45-hm`==24|#Id)TV1!JW|J8QKds z=pc*Z4^FNjp{3%^f8U=YIV5fCtGN`)a@_8dC$3I_XKP7$b~HIuM#45e_j({#7`W(1 zt4<3BKDI&OWNte&08(jC6^j!w;(W5a|HUnr2|wJ{7A76()Ja=6(^ZQ*MFew()C zp#oU6wP)rg-A^`B@j-c*v<+b3$>e^TW!m`F$KM{51qHaJi(h!r2>&h|P&$hq^;8=J zcMiF-Ggjpg-kOeoD6Cr7Qk|Ez(y&IT%|P!n}W=TCm*iqK!%3Ube9>?Uv{E*qhQsj4dI1l(H-PCHt- z&LS3*`J=TJilaT34q`u-%Ew~1N_Q&D5}PxJ4daPbR9sywHNQ5xfmbM>EjbRfu~s8O zB3#ySe6ZuYy{;bBf`}8QFE1XwceC~Ld_&)zSo0Y4WENdr^7V2lrISfP@iQ(y#Lj!1 zc&?}O*=nOXcxzzE7eirr<-T-=)xRUvy4;-e!T^X@F+AuGTuboT(QzViG_V$goJC;2Y|~Fb zA3gDj)_O=|dw9}16TKFTt*_{W+`KXJ4k#_;P-Ho_O122fl@W@Y&sIetI6wR02`j>8 ziTz5I(Vlwg{P903b8xynxLy7`{5;I;f%=;76#?|u@(inO)Zbc8jszG6o@yWu?GK{9 zNtpa;vld*@lFkf)+Qr?WTk>?oYJXx*%n#GG+qm*f-Vdq?Up#@5fQ#Ua%ksdq%s=n2 zw~)Q0g*j)Pd%uhDC$Bw+dsCY9OicUBmmaU^)4x!Lvk^gC^bAaf2u^)|q?OxD73HwP zJKGT6l`-@1sAeY$aKho2Ao)-!&D97OlV#m)+e{ad+=Q{rlcUjU^(~g0n$wl4R$Pe_ zRFludADVb8@fe$tu8mH{#t)U=ionxy zdf^qB>T7xUl}RVnZf`_~4-k!=%K_C=TGaK9o3N27WW8sxD07@euJVm@Pm2q)T9d>t z8PqxzHAP^oHfs=>`sJ|Ff@%(k_(30pSN!b^`$J;uSQvZE1bUG3*V{`BR%%wpry+c9 zNCitPd?qa4l+N=}o(J!ar-prb@=Vxh*d6Gmb`ay;a2wpGEk<&XC%{Z?C;;gj@}9U3 zVocJStQ#~!8q(X3EqG5gF&`810olK~Ga9tK`DboSt9$%Gc;g}s97 zgTCq~*diL?+4+}7Z^4#mnA(qcgr}U$WrbR_B2%|kooMu4&ZFc{oAQ1a%=%E>(HAsI zP!jkl^BX#6Knq;_zBhle%#g7OZL#IWlzuw6kQ?vO`F57lNTatJHADE*+07etphqdc zAr*!;Iiwnq=;e$X>lbg-@k=Rl7%|!9=?r?mvdo#hyc=zF8p}?0SCgRAmS>z=soa$M z85-%)Q!FPhX5iN9!FZ#mosqq*793UIF+u)z!m84aG-)o6auPb-ABltimD7Up)f^+1=4wxSqr=tMf&)H- zRPOXd?H9Xq5sCL+zFz0=%~GQ0CJf*fmk;~CnA^!h?sCOX81YsK2v~>dLIttf_bUQT zGb6>kDTdxR#gXy^ljqQ{D}GE~NEm0KgM7lnfNvDvOm5%cFVy{s8w?DS@5)s@Hl znq$LzsS8}&*hoEmziK1Na*u)w70LVlZgG-i_2?7KxqvhE$XYoWkBuTH)$dz# z6W0Lul7=AOJQF6Y@7us@nUcOjkxcBZ*vs_e)Fz*(Q>JsJ=19m(Gu^}Y>#Qf zUY~N@s}A!MwO!QqYIeLqu{aR*UtFmZ>LKF^$}PutJdK1t zF61{?msvtY8uaqpq2kB+KX4yabczvb6c>N2@wn`A1UPXr0#Yt=^HdTQp$6|#u9{|; zp5VVhQMuaBeFh(0Ka8#-`sXFCS4!;)k0m{IkLgK(OW7L4{E1XX-a5CU@Y{CtVeS~B%Iz8Jjx zwRj)SDMP~8s=H<3kU5mw$3ddh^_3>cIVaNyCEyrEQ8+Efl!N4~6WzMJ*_8G!kJBev zEj5v+4H2`X+FjEgs>S4$<4JNA4&Bf7dtBt;e+ zqW0y&z!|IS+@OB#HpN@0h(am5Jan4hD+BprjOBFBAtwttdpC!cV-c&D3%Czapaxk*YvjHBg)2qe&_V>cv-gx}yfV$3U557Yk_8{FPhU-BcrYnX_Gql(x~ zoc6l8(kXVK8r!TT`w?BojJ^wH)DPtS&E*I+?%JL59%PkT;IOnOuC?0h{Svk>HqS^L zmFb@nW;Yl5?uXi-e?x>)L}>_2P-gZD{w$qRxYf1U_+;$uUfpSUV@f#N>9Tt7yyv*4 z8yyAn*>`>1eP+FrSv#t%e>Vn*Sp$T4iu4se!4w!0r3A;fK}xEj&RN5);Qbg}zEPf` zec!M}LN8F*hx**B$@ZSCYs)|~9!HA-`loXfk!pc0$wZej-$q7M%?x9h>p&Ntw3bBM50xeJZ34Z8{Pm=kFvxoTPJlEASB~UN&rRBBrmeQVpLzvCb&OuD z`GWJxT4d%3i$%!@JugI-Y_py9h2l-?-hby^H=JD=vuiV|{;uWi$K$#?9w&;;+;^d# zImAEd2VzXz@Qb$1@jr0p`}LQ_5`uR#r# zzdn;G@O%um-Oa(v!a~-M1vP#*Z$vFv=^*GZ0X%*12$n;_v;aFKeNfkeNX%VaC3BLL zvD1w7cozLhUm2MMJFiTFXdl1h)nUoW3l>Oon0)HH8S!1=5Q1d?0!JEHKT~?IBUT!u z&nZV6Vw|OSU+Xrcwx0a9FZhzz%J#)CMs&Bvy?kU%$uU~SRuoDJ&8mE%6>4Uu7OO;~ z=AXzS4Q+g}d#MkXzS?6mFE%dEq`YtE+^#+a+z;+X|5y)~h*BOH7_eh%xtawHU@9lN3+4?As3vek3$y{;B*0U@GJhW&cAdr}jft zE5fFIvuH@i4Zr2-YgorUiaBH|?%Ld-3Fsrsy+)Uln>e=&&bqm?;K~RO!hj599!oo; zT1H!RvU_9RG{-(*3bBOopUCp?j;9#)G{W_ibUN9t$$MU(qiKqyOgO6q&V@XH)I3 zQUW$?X9BV4tT|kaH7AbEv2BMf8ohg@VkdA8{&C2c5LMYAzdomJ43=qV=RxD4PWR^s zwz9;zZOw~obf$hKSQ6m#ydw_sksr~)d@31x*yU6FnK{#Uic812JA@m|>D?lVgj}W_ zi?79B_hzQ6ElgMA{ojH`R>1d_Hvj;ndmB2lFeKFY>1^QRu|$tIy^y;V?VSoo*1)6F zc_1kK4OZ?acEE3xeVGkUR_G%EL>cP4SGvX6c_3BMURNsidl3&~=Jl?ZA!}6ik#@vU<=bSo8e* zqsZ*fL3DwdU&aRHO~WSg0q<9J_)-k<^&`tc35|U9w1nAWHxsH1vb^<$k-bmj!9Lrn z&LiPGc6s81bJiyltGOLNd9KO;wY#yzF?$;yAFwv;{CYknHE;^*7BGXdNuNI`*`=hMwI0)QqmJ=yC?>oDG2ioGp@-da#64xJVZCMU` z8()4VPTvhhc3Llw?v)afJgLQVNiotBHj==c6B?$TGvhi9;pJGz8)e;X_i*@O{7#Xg zr)YHN=DA-~SWlIPT%baD(U)2ONr-o4#1-3|iz0R^)rZTmlmBGd!&hT-GSBPv0OUY> zR>p}%-qW|*xuZ4iY1WHw*nPs(5l>pM<*KAY<*&pnEa0-b?8*sfOI%C?g?|SnZMrr) zVK{ad13lZng=@I>v_Z#B=v~XX$J#r$TscXwa<92F%=(tBzBzyHBkvxjCysHwP@?EX z&zzU`)L83GdH~Tfs$}*KRiare$5$AR%0p2_;n^~t(3Cv)@fN!LV{j4-&2Xiow3Ln|*%y5H+^TmYII^jW5bo zu$8W+j=Q=b>EtpsZG8T=#VeBQZBM)lx?4yR>S}<(dP}hVs*^k5&8iFEZm8<@dwD@% zJq)-D!L(h7OEiv`uqT}@$ud_{lQK4<@5N&Yv_A3IZ{o-^p;J^0>Tcs$_terBO}4G= zg}^3cq@Fe`zQ3&#v?(_=m>o#SQ@j%#Tg)r@#mx+As*vx`!6i9|5G=C%n$54Y%6aCY z|5Gm*fL!rR{|V5#_FKB)scAT5X)g0WBW!&0PNLBNsaU0|UmxnpaATL$nK^w4cR%P$ zUu+)jI3Ap69L}k8Py?S{QfXb)c^I=9{^cgnfC2t|V;9f|w%5-W`g%d#eT1F%ssqy{@Z_E8kKv<{19gOi&75+S_2 z8gdQn^{E78g;;Q|H(Ox(UwAMOu%GOxm)`&c$Fl?QL7p7ctG_4iY0G7d)?&!#Jv^Hl zlNQT^7xU<=jMtbCNT$fqS1fF{lal!_JbJShkD)H0#LGRtdlQzvCV^^b)(*&&A$~Ps z!i$=qP$&fKX}m=49GEcS^waHtHK9x6x?fI3Thc*oDVQYTd@5+kP|kHEpr3i~i(hW0 ze>ynywJn65w{}g(JLYjq__}JR9FQLv4@e$e8%-1Wp_DaT9;=!r+Go>^JuqUT2roM0 zKbAU2G3ZUpX{PXob$dl7r>p+4*IT~&!21;DU&Lwm3hGs>{(XT7Iv^M%xyPDy%YD^B z+PaZ;dAT5)iJcT&dTA@d*v-xI?vks@H!8P)2)y84EiM#^uJuNU}#N_*_(U_Sh*&KUL929H|D}$=KpQaPa|-cummgk0c#I)o|wy zJNC5N@UJQd6c}tagoS%JzxmZ=rdQ~s0lP|Y`B+7DDk)dR&X86wT%!!Plf7E0pB*LX zv9i0NRXe{Wh51v$HqzmJ3I^`Q|> z>3ni)x$OLE_0;&vV%EOa{?OX-+FbcTX+K|s^=gt~iAFE^yU_F4_WqIT{7k8bLsN5t zDa+=F8vUSbh$QXr)FX=RUwd9QNNQ=>=Af{N2T(til2H$dF@muTbcGv@^q zshy%~R!GH@&eE)(?xdFPqyY=HaTzW{I6EIBe*k(zolZ?2rrr0UUAIxpc?$?pcK4ew zc1WOL_tm*?K!`K?Ic?2T!-PxvC9TPzyXjZXpiiKqeHPXyr+; zyxU3f6+XEGNNKx9VylOrhiy|YbbI~l)DlfNmf@sp{E4eYiYx!BoblAzNB*pR{Lc1s z!5f|U!u4HVpz+NO=`1GADZ(wAlfJ4#ROE*a^V6wPJrzm~zT~8L9Vc+?so-gMv0jrl z#<6L0Il6HxF7b%sKPn)pKn(u^AXZbypErD0%vMy9N99-(Q)7U+FXM6W#5Zh?iFC)~ zt!jPr@XP*<`D6(cY-pFUVDHc!Os&e>RxLTa;8SqiLh|4gE#4V)+zAWlB6LC**1Cj9 z8Rq%-9K|y44CNhMyes**m3+|v=kCMmHb?UU1!TA(?%<|zlSL}2KoNo3qpYqVLe_ed zbTzsAQRPB^^CKQW*_5?GpT=d-qB_F$V{?&fI(*0w{|$@}#(-@~gur2a4a(jJq^z&6 zu-;>=-J;sFT?~`9N6=-Vfa`a+P3gESSxV`AjDnt^c)v+`p7zSMSl~9GUJYaqb?^ z!Th-uueZ6Fd}+nNZnsiRYyCs&b>0%8fC%Q|5Y|><$osv#Lt|3m-3og2|;? z1gD?wYCN}gXRlOJqd9f^zB3JN$9sgCCs2EG>srBh74ZH9LI!mWKaoC*^o}X|leAHw zFO=Rvs`}*~cv^qYLA ze%I#lrn)3Dd$sFDbUk=Xc|vHX0wwuR#(=Q*;~H@d%Sig!1a!S{mCqVsk9=f!irD?v zwLyI!I~n^=RNh)(zHU zKePZb^u{F>Th8pjCpJg^V0uUaYA+rAb^-40N>4Vn+2C7EhrCY5;*(J1urs&FyL(HN zar(LjKrx3>(fqvN@)S(~HZ&p?l^c#OCz4J1oeIOm^IwuFf`G~OtoOG23X1%Ro)n)7 z=9s?D@+}iQx^%K(wF$;hj+sax^Uf@HHnF+lEbVaGD+uc3#{_|suP&UA^%Cx$1k|r4 zC_Ou>d`p+%41FTgX z#6poU(0I@oN30{;^G zTjZXdVvV?c&3D_y&ze8NFD(b$XuosinUhrN=+rIu(ild$DX@fGfVUx*p*4^m!M1&+ zZumi?_KDR6Qitx=xL_q^zY(mF(H!~cLXWUtr7C0Oi^(k4Wwy1NI8jA9U@uc-oer^F zWkD?9_QZUd2pZ*fee~(@B&EE^gS-wkS}O^kGn4gqo;ghp9fNsJF6Wx%AJLYRwumwo zeolq69V0vhsJEe)u`d3lJhS-w4a4hOT{wqd`X*zF6R*)~++pYIBoKZ3RBd>#*Ll%* z-_yd-6t_dsfr@pj=;Y}1H1C%;YqdB0%!tI8V$V#p;bXwle=j&wA7JHb;lQUoRoXnX27Mm0 zcSck@b@h^w35?t@c|X5PNG~)7*h{#}S8^A}5M~s+U3U)!NzL(Z+`>RwB)jh(`{$Y)~(|m*5Pf`8x@+!Pv%6Ri~Xi z?TJzUo357`G9MQK-q>_WFeD$|JYcEmYAhXkgoi~UEqN6f;mnuqf8;ghX;uD>s>&WU zN5~6ccqg?Q0GkNSdH2(qmGwn9MizZ>b!KI7Fj>1==xl&PA?Fn_1DbxVB9wd8<>*_s z{8Q+K37d6qylaF6X>g;}2!~MSDe@v-+;ZBS)1e^W-RGBk_yA796-fEyg>uV=(Pl_F=+8tJEHxD^EalI`&4DKVJj1-H^Rk)dfi_=KHd_A3(k} z+V6kfA_Hia7VIZUKnVnA~ zt)uc-jPgHIZXJLA7nWomg6~{-ZB^Nj>)G-#DvFMwPY2H+5?9abLd}c!TZ=mAa&2*; z-H7YrfKtW9!4N`Q{o^;KvnsU`cfoQdY5r!VUcP(G7e2D0#PbK$($T!_K2_y0bM1J8 zYDcBZFp|+H6nIOuWsvd7!M%~(T3;ylvT`;Ww;{86B9|zV96NflhSMlYX@Jx~mo|_! zo)l~e2sbcM!~}z4ngHpml*6`9IKcc%++)sUCHqbI1|}Z?PJ+HTG^Y)WRxC|v2@|!>5E2mFp_>b^v<|6MWU38-8B*MzrdFpTO=`U>k8G^t*Xnf%6bDM=Qtc#BA87s#Iwrf zP3P<0jE6rmBV%K9cJ*Y4{L-o8JI}-8#zwaKi%CDe`PsUyZLy9KdIp|)L?^q_k$c>0 zU$;{Dv&Wk1%^07x6HRz;srCTOO75-tHc2$AhE_oglojUpgF{yMe%W#@V1(A)fA^uI zYf-SdCCG6Rb<3CD{IQUJ^q^ip)u&9K{z9W7Yl|&peCwaJvd!=CIJpBK z-b*i_aI!qsRv@I&!4#{7*?M(y@q9rO`#GF4cAK$CWz`QjMMyhQ6boKS#w(-oOuI(UQQAYedTxjJ7gM6K;n4|WnC^XTV zO^wR$?Mb!}7ZujG`K-Zzf+vFmxlnObsp7nkC-)%(WIaIh)}Hc zITZTs4L4<+@vnuAks`rS_ja>qhs9{rUOLl_TYz7+=G?5J9PljkIMoey#x4+ZI4K{APDQrKiEkxd!QR*Iw zU!R_Reg|7f)6Rx<9N3x;dCs~$C3hdfqf14|PQ#*HL1G0VjV;5~@q{YZklc=#E|O+% z!+ieCc4>KjR@4Phlq0G98_oxf=B&#*?e#eI;j$f7 zo%^UAwx}%KYQA%T6xKok>i~zqtt%7tFO!6VNVQ0v$=N}!d!6=kVMks^DFr#1?v1w% zP_dU(w#zA}7c;LuHa=UrZOK69Ovea`T#Clm_Z<)4ysY3bY)Q8>;G-j!h3;R5oHq2E zcSOZgoW6P4wp~qQbb}ZP`=1Hvo^KqAu91>7KT!?&bJ}8WAX- z(T16^PplN`^YYlr$UeMEusx8T$4s1`4Z!*`i*egEm)cULS^q+e4su26;wLqBM-&o5 zwg?cpzWNq=WXgGhEFg(;7klLpY<(7Fgc;QIY0cCMrqpB?-T-|=Z7u=+4mSI^+txHR zt}-jsqmTpV9`0PH8?@utsUU8IPkkMciRf;QQ~NA}vaGNVQH4^kpyMqm^os~{_Usva zT|-=y{~t4>W&iItK$!4=|5~_(4pN0q$9*iPpHvK-f)T%IR~5GzLv_>t<45d7|Ciy< zXQb>82zYLNg+xM6pZw0L`mIQx5@DZ6_z*e3m<4Sc5$yK?LU^xbKnW9skHm4mP>K5_ zdhe)QWH+CA;g!U=E*_|%6#cz)evaHv*Ca$v$d6hT?PPrKYAb_sy`400{XmF=c{wQ? zhQ=~9(PQDcLjC@d1F=v{c1ELX}(h@Hb@mWIfUL+j5ot=Qr z&dB0 z3l%NlB^uT1r+z{7W+I}cN1kNfPHaL*RR>zUW4KI!s@^L`Dmbj>uJh5e%X>$8f^4;k z8y9Iibo1b|gmJ$c-3yXgR>o$?E<8AN5iw=(W-*#v1~LD-xf; zW%DOiSVLp>&1q?8sMRyx>c#PMFP`D;R3hx2e+`;)ltKGJhP8}93nyHtI>nmT zK{t1=X2x~7GBHENpbz_{W^&IR=k61Qt&8{sXOkQnyx2sR;F$a=8AsiR*sL;C#npKF zr_-iDbMyP#)3A1YWlik1^gDdycdcW)@)MP_krgE zn43CMlTL*XNS6NiwY{I(jrq=vI(<$4PO*Jw$>`t?g(hl!ap&aX{o;ycw)e#W6%RW& z2iIi2CC*#qgjQYzdl|(yJ2awfy{+D;x}&c)P(EjWQrV4oU+5QCvNB?8%J>=Zo6u|) zbLZHf3wE#E_YV1ck9RqeaVv1l-<)3dKA3);L`Oq?9&9sS7w5Bom(d8fT8HeR(Y1P* z@BbSy72a6v9bR&1XK~jQ?iZsi-}(L!CXx_6%5WKUzg#SfCsO3oSe4GApgXaHA>~#C z7H#C6o$5LghO$2lNE1j_!y(Id{Vd^|LCPF>az$bn&Yh8=I0+pbu+3{ ztV8fo?}vW;9UJ9(|DH4}cqO(w#CDxU{L8C|vjd7vOF3iJi7d%E$seRs;n0nDf;?T! zO%nBpl@A{$h(^5c$xgz6HMOBPCacYH4*I2^vdds$+)bc zr0}3B2B0To^#$!2kliDne-Z)_QG7x;Ca(nX2mw6$`oI^qa2(@hJq^}QQN=*|&rUZw#{eaBx^qQ3B22Ap zgyhOF{;TyJ%xZt(V`7Z3_?&CA6b|xL4~$_xOpf>voev6ugq^>$LvdmfSM06O%Ttl> zC@^20Z6;mw0_9DX>F%Lz#$7hr%}6{BVYNd23}IhPbKE#GxCj(ek>F!#^ovS^w2a3- z-Y?ahzqT$_nn7@fFj88{3$u{59KvUOjb}8qoA72U1MNw>`O3J7Xl#k_IuL2HFs5iA zsqyQ7t#M?tlC@yvO(0|9DAJy15~X{MU^wh=VQREZ-fV&glIEQ>UN+_^!^fBH#Xz(7 zz>;5af~YJRScHZ!?rjoQccn4aHWcOh7`~06Z0!W%yqVre7@~wUV}Vn>osy;|!$h|$ zYPJoS+E{>QUNd6P&q5^^MdzEoCMVh{)3=MdC>byz(hxv9{>zbol~ri_ME-fk?1ef$ zQ%CWZYt@dowu_+Oi%s(u5uLT~D{Tnd7%^N?O!(Aj5cdw7CpqYvqg)4Z#}%^78^DCY zhb7nB{by@EMKwhiV+yG&`g=b!O@6BQYwCVu9@Igb1HZC^?1hhIdCNxviS0dIkgNR0 zva7KU;_w0tx=}DUtHeUa_;b%#cz2012i0&@A!f)y7+X7v1z!02DsQi1;)<2AZScki zA_2HcB4n)$biq;+Lwu$sn4zqQnK7}RaGWH3>gA=OW~AN@d|)Qb9(MR0MsTirWVAVs z5z1PzV1FAUZ4DlTU1EdLbc69M7~j3R`h8Mm*ypjX@U<|Q_F1u_e%Ux*d>|E$a>c^~BM} z``TbpitHZViTQ7-`1*ilptNsuE34#2u&wd=(g#!RblQ)dMS-zmy>)Ty=<^8b;to_f z_m?%HFq!oBt9PF3Lpb)qg~#wmV-%4N)}eK$5qGiS%apYMsu%jscpM!B{yT|LMm8tX z=rR-&Rbpx?7n+>l4R(7iv?pScqZ|qe@MI1P8s!=ywjp|-me{JsF}SK01#x_A;ZB(b zdG=!fBsYd0QAgZ?~&>rIY2yjzq7MINy9&s7*-;oX{@3QE+%-bu(gR9&+ELNns%pMGCz1 z8m4KbjE{@zciH~jOy6Swa>qRQ6b!B>b?|#%`6!Tao|nG~)#;QD!WMhc=X?0f=R>HB zR72KJgb|H2N)wusFQBRU{vof0t%;%oJK^ra^H3QfB}uz7w0uOlm4(UfV}`2+P6e82 zm<)v(R><*0==Be^w;^BgBXAB8QCbqP+rC(X$p@`q$H1h=oE);z7af_wgr#l>`u)h2{P+Z+#MeJ692T0Su|Nx(AE3L39-X0&^I;o4(F!f10I1!J{CDd+ z^!YcuPLX-+!_ytHf?6osPznwH22p9hyKURu)9m~!%;wDM7+n$h4%p<^ee)fKYCeZL z9kpwE2~uUik7TOib$`bugx!&VY8or=(}l8**1wE6rP*D-63XsLU5_WONyP?aqgCM6 z`4P@@K{VXTiZ@_19_B%QsyQ0kSJ-WBDq*!w%7MCMGuQ#3*~4t#=r|9~GFxw_|GLrR zyFNQ{p64myvGl?p;>2pnkzf}h@7Y~&6Y4C{t%?OQndv-#ZX8;2E~&GS(-d6ZS=)Z zb=H)*b~N%l!<}ZLIg(=1evX|$g5480Ljsv2g9?(y?=0Rww7k8(yHonv9L#V~c-sc8 zY4?=18jJ$Q+t07Cg05DEGI#kG#6Jr&!#w^QH#i&_k7k!1B1;~p1J4xLD%v$RBrYSv z)iX5B%kWB=B|zB01{>bQyRh;F<(I-!nnwjysq~jG!Wn9$1R`QY@VpYH@apE`ngrXs zU%njiwT4cc_N;X3YP(=ABiNltxq66TgGu1P0!SQ-hB&pTS8pyUV<3OJ-gu6tT6=!yJobjL( zaz})jq5!I(RDVsCiNjhI==wv0QsYubI@YVr*t?&1HJna7O@xKp3>g~usPt`NO{}JV zEgk5>e0SV_rx@b-NqAKTCHg0hVo0T#1$;ST$Je{qR6Y}{*Ps7~w66|pvU?w=I|bz{t^TgoLEP7#*U-28bLjxeLv~v`u_2I zF0S#!Ip;a&zVCDQbI#q&sm5qPJpbB3$CcmnbLFwzS4j{5VD+CuZ&I9)9x_WXKJ%L3 zjMBaE>e2ofj3YRJdj@~ACzSP)Mv9dlQL|*F&$7pYH~c-C(mH(U*xUeHyTwJuEqqm$*c5*4 z{ zwvHakZNddzACA!OM9^M%q+ZlbgGfQp>q+u2Z^U?#^o@)y*Tgfab96CBzMty(w4~H3 zdpCkI+}!qn$G=&gE{7DB< zpHy&EFr`zA(b}%L`B(9s-9NvsH%m5yS88r0hq;H-ipMgijfB27;}cZ!e!-|(!ROEC zf5C+fu`VxojDad!Smrtr8?(G!X1jxQ-P+;t_wq~+9r*I>V6CQ%&ZC(V<`KbI7FlOa zcChQUK*i(rfc6Yju+2C#Mwtt9RtUR4PHYo-0mnu)N=0d?{?}LRjfQQi1m!BnXgqu|?7i|?xm6QMQLCu^;Sj%V_CGGU9{gJw$qM>u4<`!85i{gS^Zd@)8x#UB6 zz(~$Lxyo0J!S&`0DQ%8F*%vF_w-%Gz#kJZiHRJ$~)9%&Frn0^pcjnJ2t((5AzRH+l z5JP2)s|@L(K7(rLcx|Y z*2TGl4IdtSEwBGO4HW&45gol}lvd<(_j)=oFKOC&#Ev{)k|XS+rw@Ls$-TYIix?LF zlPiqnl_72*+!mnTukP^toeRJ;Pqoca)48a#0FTIaK1^4%lQ^=k-=ym~;eDQk8n|dk zWKF&q=_Kiv)OJiwel#cQva}^G4H$9$ytwK3*6aZYIADUbwdK^rI*#O~R9A=xwq+ zBfrnK?-4`c-Yo79x(7O5EXXYQI!(|hx-L>IoR3tXTQ5*>@9PrWNq~@WFV8>_p zQwwrye+rcb>N!RBBsj;b`3J|g29_6vqAw_uY|B?{*r&r4pO>qs7k`_@8WC|*XHSvD zw^DGYwvUMAnYZ#6Kit*2Sr!ddCJ`@-J`jx_9g1dVCo#CMoBM=8lqe@=*}lSsxPO|Z zb%-VUb=lcf2Bii*WA|_qleQ~E9nLFi-^>s_QXxGK?Y;rb;Iy_I;_ao4fYR1}K{}aN z7p}j-Uh1!vA#%-gp)ECMxRKfx$f7^GnN zIBNYa?V`dF&DQnOT+*RI20@P@<|^05f?&pz&GV1XgoB^cXZaC7*Iu`s&WQMuCm56) zew<5V1|7PY8Ux6F%-ormV~#gJ3?aLO1ALhlfHV=i;-c01 zjwB8O5AOxk!?d--3|Hta{`~Tf>nDk zE8!pYILCTs)7S}*hC10^_gVlh7)|VI)t?Fazs`w!-YiH{*%EzgoJ!r_Utx?X@>W_$ zUtNcGb-OayXC}e$V55D{C>@Xm|6n`pXFYs;jg{f5 zvh7c?=-y$gcx)_T+uV+|vvPdV*2(-rNL_mv4|y&h4LRw9Ar&VbqaiD`z5 z5&Ah?qI_M4f3{7bgyOml>iXg0mn~uS`4GJoY5jPkJDPm2Qwo7yR3RZ3ML#g2LYS;R z`VoI{v3>`bU+S(2n_kx$;jSM~TeQ_z_urPKt_unbROyV!l#|$_U7%5SI?NR0G5bBI z7}NgSdrDSJ(mDr1)tNX|DO8qUS3evA-?c@`buQ%<&u;pQP@TD|)9?D=jagx3aTxJf zV)i>-a8m5YQ;D~7f?3Nd3ot#4`p;KbZ=6e2#N1s)c}9%LV9k*UnsY>SZo62Mz{+xK zk}vLOr!L~-@Ab%=;e4&~?5$hABF%JFsyb9&E>QmfR)1=LqI$}w`)ZbUBKao)7h-bj zh*j?g&Uf+2ytua2@u?dfWO}|w-JaxuoJLQUG*ejQ?wML*F}21-xn(iOR&nCz6gmyG zG;!*iK0REFbOMH*rB}$*OCwhqoQh+np8AV%k>qa*XVGZf7O0l{LTMC>^trOyZkx3H2kie3`-;#ALSV}$iAYEZn?Xo9P8D#a2yfvAh~RF z?W;l^*P$V&g(r!W$I*|NbT3pDHaQijF z=PzKd1wW&TRine@3D`OTDO&4K??aI+-t&j4&HYQ1D zvi2ql=SnMh>ng+EV7|1N&!##Y{&;w}irJbYmvEM#yB0y*tu`m2zPKFR-jLyD$*%hR zs-R&ta(u3~0m4@vezAJ-QRZSPrEUAPEkYi#t!69iId`uZpiJw}{1w%n!7C`TP!~P5 z*0LkJ&uG4;IW;r*bF0&1;#BS(LlmHHkT}?`HZ4ZE9lZ` z2V8A-ADUK*`Rp<>wLX1{Wa;v2X_(NY%675L%r(yoxbeTUChPCan(9ytEKg(Vp*oa-KpWO)LA{ti%A{IO*W{f6BR;q@+hX*ue0>g zXqe-gl2k$6iggverN6be0NIJept3Ma8O-$E9 zMP}zmlRAo5aHH$ms{K034r0yor`G~RwCPNPq-Uh4_ztf&pUTx2Qx&qd9V+$o2<-9p zo@zz&`O(nZSL|qPEhQ|r4Yk8TQH%@`dG`n==zBnooFG+A1Yl+?ItX*audOuBb{X4# z1d~-lN`rXPlR{o!xW|p^n4(<_GC^3YQ1kOs^WTiU6B8XoXURGAh1xFRs(P*&{#T$m^E@9!v4d=n{s*)bH}G!;zw^yAMY zR`(>_MxDU`Hy%iC&9c?QFSMST)B~>mppRa+6ZBTf zn|P6>R|}-AxR4)|_n8p$vN7Wcy(4l$wOG3?t@nWkPd+=Jq#u7XyyZcO?rgD8i>|Vi z5}6nyu1cHNIW{$*LRjAE6(3AK#&K!OO)SfTmK_^iR~}nprpNJshyPammyfO2egrl@ z7U58dJB6>*SoCD4*X+Ddk9exSu{n5B%IV=0%K}+w-T;h0lsh99>4`hx=@E-AEf5SM z%ZuMqQ@@4E=p@i^bm|Kyx9C`xVlXYaB>&|f+_=NTn{ltES;*Z}bhGfSy%)nPa&up` z8C(QBB)5Pu-^`%3qdA5vZr+O z^m!S$oZ;nEF+C$!5v(tr=zU*eEOP<6T;jH3OjX_U;8ygNwsYk z6Ne%h#YK$=#B?0wq?+mu%!^qASF)hBFR=}z&$vG}Dr7M>$+qvrGO_KM`ZqeFKW<-3 zKNxF``|ck40406p{k>bJHC##7^eg>Q)%-Ek8nzPx9JduJl_{9;P%7IXDW>Z<&!}Zy z!A}5GIg@B@>8(A?&`83@w-1vN$M@oW@@)L$?4~rGTq2iax2g+iV4do*J(}t_hZIKS zJXRxX5g^Rs84jSykR`*c!$JL7!={r-gp-974Y#+P3rLzVggs2*> zM62(V-GPZkCpB_SP=ge0hO8!9$YshRkne3XMK7(d@MSwbvi-Rk5(13F#ILJTzLdG+ z&GVgpc#H`2zM|>&k4S=0T)EjEQ1jl(ksUZ|kzUKOBa|JMo0Nlb3n~l_)uudh9$*UM zIm7!aV%^u90-VIQ`eo8jivM1+wlXDtWQ-WKTP$;Izeb4Oypaf%W38buzdM2QGbEY* z=qBuDN)K%z+I3ZjS4K-EcC#VATM9}!!9z^Ok43X(OCvW9+OaA8x*h&6gtvMu{Cz!o zsCZMUHH6#sHEe8%e=KWwc)Tjjzgz!2uKTAX0Gq{nG@a1&p~#ehUQz>rCSI8zmsUS-sy#CQw zwsel{5nmL0YP2u(6L*CCtX?JkStxI*GBck)dzK`h4i|klo4U@;JoqbS7-5Oz^=MqC z%_8a6j~k2l`d2b5!!ujh+}hLERGqGkY*iO2mxp5096AaR@y|H6ebYmg9&=K6v$myQ z;xHp4-K9z?9)D>lnHS|s_SMGmN^>iVu`)xoLrkj+i)9n^Te;)HKKaHE+aav&P2A|# z#MEoXKtw}BP1?przniHnQ)?Q!;j?Y?v@ng04fEs2n<8JsL0dlv`9y0O^MUFkKqLyVuEp|*REnTgxR_QmTj9l&YDH%*%s#;1 zPCqb2YRd!E;?R~_urS3J zoaXbA^rv52WRuNLj>99rg>`4Zpjx^<)#wWW@sx@Up_j5X9%*dxsE%<8{}#4!w}_Yn zMAnBzxe_6Z{KngUr5U`b^p{@@z^SydDTP7NDHMnrC5|-8f+~UPTCp;_x^Wq4b#3L+ z;;5gl3v1$S-Y?ZkT>=RSSoF}J9gZpdp6h|>-{*4Ge(I{vVR$<}E>KErkjZ&5Wo6MC zyjUpa;TXraJWYm=W7$YEY)pijjcF6uJNm;I^R#h$v!}Cjhdh*X2MH;$!!t4-0?#{z zu_$}zlSJ6T?xpCw5fb&D@5xkQPvkh|vH|Di(v-?Sr4{mGm>TQSnTmr| z7Zs)hzkceYN3=XhwkI(mnSZdfa{u?XU=maI*m>%w&4liyFd~(?n6#UTcP|wkczF|q z`B;!OX(-*y9TB&}Ge^2>G%TIo-)Y}pzsy>sG=V|)UtVZI9B~5NDCk`1Q(kE(F}(k#7aho# zSG>f-Ao@-&mep2)`j(A1`}ErnrY1pLYk}eSRV1?Z6BNdWtMeP&?T5XBGFLMZDO8K~ z?gPo-t63?$7gJA@nYTLPKCYIz^JOtMvx9xxQ4#ZdAH|LkUI^;w@0m-tZPl;7bBJxP z;bc}%H@}osS|!iAVDZ5;hZKfe@J_jSVQ?ks-J90kLLp9sPrHmfA4ev=UA4NJ+GRF;Rmssw~3_01c}pJwEN1zEi<-#AUX zjd1V~y{m$z08%z<&k6e5-5Fl<{ma$`N;Ejk$4gp zI<`lvbEJ_sOulUI8W#$fc$+mvcMQ?h?IPtw(su=gn`F>qmPpI<;@hy%2cZ zLrsp7^cH|fXBBaxT?tZ()n#6dO2zbH;2>(z=S22{Ltxk}`jy23hYbzDhvFSu+hH)r z>+DsO`Nz-X`O)YXNHL9DdFBRHxi#7!85|;dz_9cevI zLS9Z{Pjq7B-K(~)AI-0*MZLm9**6 zIg9G_q;9%fBSEuk_la%!Bq%uE5Z^1XUAGbGjqJDRd8yHSGkRuxJ({=nn6knBa?4W5 z{&VJXPrC?xAse4-bo@jCX0N}I4M-1HP|KLa?AmeX@q5Y!mr+)&)nlDL9S}2c`Y3t4 z8j;N_nS6Q09^tB>ahj6kPyU!s_6H6bJ zAKX(G*(g>KWF!~o%e<^#qAqMMSvF;$8@OVw5&i}-+$OQ-&tXDGPX2nD#4idg0@;AgFlttT8(tgp~{UgC!0(Kw?#_cB!94@>|>$%XnEx zt=3n;{-2MiR=nC+MR;kW5(MEK6rBRb)IfW^V}Q!I96gSb89lWL-(q%awT0ov5FVvNz5L(b8QjurWMhT zi)w905@6O>lHk8?QwVeu@f^bjKH%3{V`XR8~^hqv#|UGo<#s?~*RXU8^#T@D}C2-k7BeEsO6 zXn4*CLvGBc=FBiY@X*lOU6)hFNM4F=t*Ff%I3Z%qB^Qd-(7#336P|dzc#7Nz^6><< z7&xY&>+&&-5W!y)jZ@;?@E8bo)os)$yM!o-hL?Qau~q+QY>iF1|H}UI@!8cUcjaWj z7y5kLk0vsBQ6?e&Y>S>;EGc~R59=MhMew(3u{sMh3kq)|U9UVq$6~^BnaXeE%GGGU z`ES!^jC_fz)|qRqc|Z2@gSaAprL#DHRE^2qy97Ra+J~Yd9}5jD=Dx)I>I@{zN-NXf z?D&+{Eo~%V5x{%(($*HM6PW&vho>k!%Kw4L+mJi_!ES4w0bc?b3MmF$QrbSvHd zMoM1vStH!ifFVY--Iwz&l}&HAw+W>Q!(#mn+xY;(GS;8vqt%bT`0#zdjAIXoUfKt6 zhCQ#sTJ#l!StZ=2M)mV3Fp9|=R#BfC^6eYNCD`#rvtLiyR7T!8*?xTtTo?4Pjs}R< zQjqSW?9Oez3b>_=t6i;oFhTJl+U`@e1S~2~IuUb!MwNNr9jnojeenko+}1kXblRTQ z)@_uZ=j+l>nkSyQ$-M0{*J>51kC$)6H447{)GZ+M{w$%8Wq6qlXJPd0+nc3#!~lGdV3WYw%K$afF=Fw9ww3YAY~%wkKda_im${d! zjM3}E*?;z^cALxX!0r6Tc+nJ2s<&o@OKL8&)qxn^7j_QeHKtxANmoL%M;5;Wj+2Y? z|ETP$k3Yv%0YkwZ8iU7+pSA%G`Xelg;XfrLw=sFFj`RNdcSI|la>qBAl|PkD2St-UV|E_yLIhv_t=`G*+b$~42=tcHnocn*111@~7?HUzPWk-vrP+{y>yQ_bBigdj%igEE#wBVVh^h<&uP*2*`B6 zrl1YW{!$qq#quZrlT5WA0(JL(KiaWmPW)dXY+j|JmDo!eexyaXXUg&j9O+_$WBY>V zWo1rsk0?{=bs~rT?|*0`gulII=}oTsXQDrZg|pqFCRzZhi)Sg9OTxZVl#_MU?4Ec= zq(-5#Ld6MjEEWwkX zC|Hywhm*zx&aOE_|7PYB`z*C+6u5B9)t)Q!SCs9OY#eiLOhQq|&w{r(6Qrea!hA7b zIM{?9oElw~xOix#IHbzhf0fMAIoBlI{E5<;ka~Q^uVMVx?{fk{{-vLJUj4un#47Nw=lbcU@y`z{xp!{WkV`8PhLlw$*8Gu<-xUkPO8z@ z2?@T3s_pX}PmcJ8XDBxmX1+vtlJb+p)&&IL21o-&^PJxOSC9XENlDnPf6z`(At{^$ zEpVLs`jn1UEM}w@@JvXmTYxQ!L+$Ew2emGn9(nqzL1Gm;y8D%L?g%8)G|}|ag+8@` zHoVTS9xIgou%yQ-vEOtJ5g>UJ%wa)dpxO3%JNkJA3`PQ3h|scO9`=#o7JZ8 z<>RKwqDtIY2w@}@e|xAH&7j9%LC7JE4zCTd_|@Ql{c6B}jpLKXXCi--XT+CkUssdA zxE^u6eW2-?4O5s=v=Km8Z z&JL@8JsMM$BF3;JTvopE@a*qgfImx*rDcR~#5FR%{lu5RLc;Yw5{gFdq0kqUh*6>;JRRuL4hm{{iR!0h)g{q+t6ukp9o2W7K~$ zkN>miCmoKzMcY3I`_GsDTYX^r-&5!RELy_y{|nml+!n>;jCE0}lk<%$YlE%o7X;Q_ z!z(9*vGFuFeRdwrgyhor(yfz5h>$Vl3&>xv{7s1zRv zFje`Dto=ObHo&eeYa6wg<1&U;vJ_@5hgyb0!00*ikU5niIMKfyrD}V$|90cwE{p~6 ztgWLRV*tkYEvEeGE$ zn=?6etz*~#Y$;U)deoiKSv?7P5z#GQ6!_!a%7HPQu&5d0sXH{sidWWt9SGv!_}9+; zea@0^{l}?RoI8@+cw%`4Jg-XS8Zix4G#&!yJemEhkjFeGU&u@XnX=pf`x?p`@@Pz+Q>D7 zu6;weKOl|tU*7lkDI)MM{Fcs#fYS^a%Ld)Z4#%H)12qX5JniT{2)kk0O#q0peNLl= zNbXgA&fgXP^?wpm=HG};(n~J2vI=nqHjVS0OwAXfOEvc}2aq^7f8f8?_{X{EyH)l- zE)Y}775Mk)W^_IIV30cQBiaOVd=oG?{kBYOU-HAsrzjsnqSb#N3le{kc7;rlFd=CJEQ)`p6eG8F$3-2jq9 zO05`+7qMY{p{L#?;@jQ@TRG92|fn>U3##|xe9w=$mkq=mbuTZ zTDQ&FTG;rE7ZaMh6({Hn4n1aU)gh5PKm$nDeBJtg*0RvN;O; zJH8e!)HP0^^goVpp-xH2^Z@7ibDSM=P`baN8o!OcgFJO`^Y+ChqRU*<4`8cTkkeqS zOY{g~=b8=KPz&IB*KvR?E)!Yg&<_m8@q;}}HqEnd+h_73wIFclnJzAe9{yWyyHIiU zPbQ66BuqXX!t|>*0NUY>(63w$1fQ}SW?O{>91jls^e8@q;SmbUq36%%6-|U6bE;Mb z1_NIJHx!oPVh#0yb~qy>+_Q6R(~!4%UdFLToW{2|F~G`VwtD-6n-yWNF=qcD0~|L} z)g*|$`s9O7*tLuF?a`)2P>(B84yTD8>x*1BHtr(H0q?1B)VnGhc;4F=S?k< z-v@WgHky)>+_MTy!~voIfvP_)7i4}(BAdn_W5z7WvrV)Rw^Elga;Z=W&YFDWgM-oY zEdgK+fp>98WC3`WyDfcSBVm30gOUe$&b*}|5Qs}1=YMNPbJqWA&qBW?gm-tYgqb6Q z{X8HD_W{^{TCC~glA6G^eSskh>eTtnp#hAqrtd$0g~nv^oq`o0UhqQ*J75I9m8U0Cq3F{WUX}t8tyUW)IYq~#^+I4g~+%?~@ zsbJPO0=L|7%hKR?%9=knw1j=F6>Y#gw>33Q)?P#e`cw~nm_^2MZP(%&iyJ>NCujOHWRJunUxt>=4Ir^5(9+h=_(Jp?a^qln z`LNe6tj>CWMH$4ga15C*Is3$XNr?$&L=do(rkD+`J7s2k`pPBDGC|%;LCyiD&iXK8 z-Qt{Y@wVBc@g^SDw(xH0e18+e^AZ1ZtJx{+?6D#&P=6Gg5X9A1$L?lxc4f%9d0E?_ zi@=Xs%(a%1q~=XSERQ2!93T5H%{+DA!yJQ;9|web3XLB%_vXqPC1>*->w}2qH!{!s z%E8bQl}W0eQ~M>X7OJ!&HOP2=m`Y}@z{}H;Z^yiVXYQ!F$gD@hqeZ)3Ds0TS#=FFznZ*()PST(FgKZ% zLAVw_K(o9~jt%`vRa#=@AvfK~0L%B_H{CYAL62o39Uc4Aca7Xdb2`4t$VQrvmLs`{ zi)CSz7~g~ENoHP^EMQu$%B-KZe9KKRuh~;)A)CD#O|sP*qxB$rq1F8z^k*cJ(g~zJ zzE=P`?#woyJ@s-GqVsL)J!6Dejr+GGG>gyFG5g@(qCLuZ@Kf`ZprDCKg4oEbf_lz$ z%-2RpyF&*vcTUPR_gwV{UGa|FljM9$dWz7sgSsK8SC0EYl3r`b4(26tmzy9u2jwFNj8$oL)$xqJAqv+0QJ1w`5ROlDGw4E5M~FIPUjC9s?OHK ztjDM*XY1Au3Npb5vYQuGjVwdMQTwmaUj~v|%er2IP(GSM{WuNK!lb71XM992m+stx z#q<=rakC>14pCj-VwmI|bX6S5GCM_S`eVy6SxcKB?~@H=B}?}bmiD3Z!oa?K91+QZPhW+m4)c~+}Nfw{qc;tO(*zCq2BJjqf_;oguH zV@8+G8Hd?qm~8&tWN_0QZyFzEeca@V+w0BR9h^q``wETw+j298ZeTmn zw~%2atxc16l#}?nr6R3|JWku7SBea+El+KPh>UA%@n>DQ(_xu?thG5r+%qe4#odPQ zH=|k*sln;}!J>%53+8qq=QHs>rB~Oh>ZX*BPM3`t{ML6+#pE;3e3Xs;I5}b#X9a}eZJCjkRjt-u!>aF`uCi!7LU);9?qSp*6K!B;H1KM&l|fS96eJ0hFe_`GTT$wMAs#lvh@>w z8Eu91Y%e>V!H)m4CDqRSogl z+;p;tLm6VrtPEPJm^aNoErA_nBCQXcXADy36MPT8M1W7vo1LqMHo#3Lx@Dmdd_u3Q zS#*%0u(sK#JxE}xi7T%L!-d7jBac$7hn#&8t2&^bktVRJ`BKK_biA~R|KN$VN{6oO z;54IAZf@ymKiUInDU2~a!>78rG^egeZ`OI5FDb~sm?`kmS@$%-z3e*j4iI|cXSo!F zok0(Ru;0z*p)1DL)Ah;0kCrT+ZdRd}QmmoHt$NuL^}d@Uawy>j$r1CdN?cSzrw6 zcZS!D<}U*X@X-w#TFHz}zX+O~j_+zN!2d)ek+?pXd?g-?4uZrzK2s7CfHf!-;2Y3= z-1>O|H*@+GHyoc&bG20=@4^YdhaA~vT`}i|F22+J^!y6DRQ|ou_2RkuSMuP{Vmxd) zjG?-pdwR9CdS-;mx@?b=Pt?yT8dBKsnK{MmU7xVGPQnb2q*>qMy48(D&upb6PYbAY zzM{3UGCVK~7pLnvhw!NA$nCU zV$ul)W0Uaiptl#$0NDPnasx!jkuQ_b8es6=$SCy+a9WMl?D-)L$qG77tmFmRe09l2 z?x6zZ@I84}h}(`bs(9cRl4Rh$rKjm^rwXu;ywZZ+C;jW|nogJp$aAM?@VJWs?laQQ zDA|pyHpvn;FsEs;F$;2Coi0o~?|RP5SnL6JD?4zy+c}t9x{cymY{yNVTM<6KwOG9e zDjpZj1&6jU&l1drm)eYB?(WU8E5@qTUvWyG17{MCT$)v}A9&8|GD5JeCHU^HpuKf; z5I9a&`2=VoG_{wgxt>@sbQZ?$ABL;ys`W-DZa_Vv)#k?!gAmo+^QV2Y<$=LMm+OD* zppzli;F|3Uk_-5i+LT$P%e#2-G?mac<7A$`}kwJG7r2A7k z*WOy>kW8d>b^fj6rUv{sG`sNe;0tx3L+|f2yDins7e6dd5DFSsxP`IHDE9+*e^kzR zrGyy22*$-1b{Fm&5-il_R{<0C0V^ZrXm47j@fB{tN;8L;^dyQ*?nP*~$$1m=QU=>W z=FbQuR7zdldOqG;j4{-5n(Fk#0#~Xj<(dI6&5<|jZh~;9f;>I%(!)!bTM0gvO;=Nl zl&s;o;i=6oL0lcH;oA4_(G|%7BLRLa@lr-F&xP!*X4NvG9OFnd97P6C-ixSx_~h!D*yinl&okS;u>*>)_UJ zpcVehAgAm^nXE`1ujtAW6x>i3UhnhH=kv~Y%C2@R6$PScb_o;vXFrW-wthCeohK9A z?Te|<1NryVPz}M1*-r!S0(TNCvq803%P&f9GtH~09EaQljF-W#DvE{8zqA7hLlYB3 zZVo*5l%NmiHG0-DFw8x%d~$jRCx#r7Rpm1klG(FE)|o(yRYs`D{t(f3kR~Q8WwvFb z!4=Hc8-qc|A)oLcmbHkmR>}bvy)B39vD!^VNUH0nMnd>nV{yn?edDvP!_+RvgJ@v? zz?;P>G!oP^-dw-_MSAM2^{7`wrtG8YF<@<-$iRkc6p+@3Vx^eBJ|b&)O*88 z7oCy&oOVIni%I-0A>Y6)$b_rj{Zr?MXl|2RDDDitWpL%$`|lP9<(p&iVPbwEz>aq- zb%qC!K`YzMZXXQb+gomkY8WIW*)U9hRggQlshgJky36j9nk!uDRm( za1Z0OpM#d=K8UOh^u}#pgdN=%60IBY9c`|~Pb5~lBSXMtnDjqgSN}mTa$gS_Y5p+O zOlu6lv>B(>MVXK^8O8ESF8(qrJ>r|Xz z37CUrrAf3`d@u*ku8Hgy-RN&|@0v)`d>&7Vt=BAePi+BtJL!A4gmSn(S~@Y)m0D42 zsAN8DEc9xz9EsnY8I~hxF6EV@;A0cNG94&k58zyVPw=MMsTyt$O?snrsSuq8J~m#F zZV%!IpH<*%9Vjb}?M!exXdsAb5@mGYVzHDawaJ2^w>1g@GmDu+TT*b!m0pZi9!oVK8r`(l#Tu&c)#wv+l0jFU38PCEckV30OYUUGwB>W)fx^K# z%7b^teDf6PijqHP2Ok(&kM13h5RATN-BR!0(bYdBK)&S!)s+DP87`6YtmuNnPtUU<>0@Z_K&Xq59HsU@C^|;NuX~`;5!A8Rk_c>K8mpn)e^n_Qxf{ zJ@FTRO7IO8N+)blgC0R|5LDvntKQjDdm^KiAVB{g+yk&UHihu)=xqLAPG7xpSľ!)w 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 - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -0.5*bouLim - 0.5*bouLim - - - - - - hys - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - hys - - - - - - - - - - - - - - - - - - - - - - - - - - - 0.5 - - - bouLim - - - - - - - Buildings.Controls.OBC.CDL.Continuous.Hysteresis hys( uLow=-0.5*bouLim, uHigh=0.5*bouLim) annotation (...); - - - * - - - - - -1 - - - - - - - - From 2f7644be5d80348cee3e4f3946379320be846d1c Mon Sep 17 00:00:00 2001 From: Michael Wetter Date: Tue, 7 Jan 2020 21:49:54 -0800 Subject: [PATCH 13/17] Revised evaluation of parameters --- specification/source/cdl.rst | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/specification/source/cdl.rst b/specification/source/cdl.rst index 445f380b..c3405c01 100644 --- a/specification/source/cdl.rst +++ b/specification/source/cdl.rst @@ -415,7 +415,7 @@ a translator from ``CDL-JSON`` to a control product line is allowed to ignore th two instances of `CDL.Continuous.Division `_, and then connect - the output of the constant source with the inputs of the division block. + the output of the constant source with the inputs of the division blocks. .. _sec_par_eva_tra: @@ -425,6 +425,11 @@ Evaluation of Assignment of Values to Parameters We will now describe how assignments of values to parameters can optionally be evaluated by the CDL translator. +While such an evaluation is not prefered, it is allowed in CDL to accomodate the situation +that most building control product lines, in constrast to modeling tools such as +Modelica, Simulink or LabVIEW, +do not support the propagation of parameters, +nor do they support the use of expressions in parameter assignments. .. note:: @@ -446,7 +451,8 @@ Consider the statement Some building control product lines will need to evaluate this at translation because they cannot propagate parameters and/or cannot evaluate expressions. -To lower the barrier for a CDL translator, the ``modelica-json`` translator has two flags. +To lower the barrier for the development of a CDL translator to a control product line, +the ``modelica-json`` translator has two flags. One flag, called ``evaluatePropagatedParameters`` will cause the translator to evaluate the propagated parameter, leading to a CDL-JSON declaration that is equivalent to the declaration @@ -489,7 +495,31 @@ equivalent of the declaration uLow = 25, uHigh = 75) "Hysteresis for fan control"; +Clearly, use of these flags is not preferred, but they have been introduced to +accomodate the capabilities that are present in most of today's building control product lines. +.. note:: + + A commonly used construct in control sequences is to declare a ``parameter`` and + then use the parameter once to assign the value of a block in this sequences. + In CDL, this construct looks like + + .. code-block:: modelica + + parameter Real pRel(unit="Pa") = 50 "Pressure difference across damper"; + CDL.Continuous.Sources.Constant con(k = pRel) "Block producing constant output"; + + Note that the English language sequence description would typically refer to the parameter ``pRel``. + If this is evaluated during translation due to the ``evaluatePropagatedParameters`` flag, + then ``pRel`` would be removed as it is no longer used. + Hence, such a translation should then rename the block ``con`` to ``pRel``, e.g., it should + produce a sequence that is equivalent to the CDL declaration + + .. code-block:: modelica + + CDL.Continuous.Sources.Constant pRel(k = 50) "Block producing constant output"; + + In this way, references in the English language sequence to ``pRel`` are still valid. .. _sec_con_rem_ins: From d8a11a03aae52dd035d89b124c5b852b0a1d8fca Mon Sep 17 00:00:00 2001 From: Michael Wetter Date: Tue, 7 Jan 2020 22:23:18 -0800 Subject: [PATCH 14/17] Merged fill comments --- specification/source/cdl.rst | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/specification/source/cdl.rst b/specification/source/cdl.rst index 208908e8..40c5e3ff 100644 --- a/specification/source/cdl.rst +++ b/specification/source/cdl.rst @@ -149,13 +149,12 @@ Array indices shall be of type ``Integer`` only. The first element of an array has index ``1``. An array of size ``0`` is an empty array. -Arrays may be constructed with the array constructor -function ``array(x1,x2,...)`` or its shorthand ``{x1,x2,...}``, -for example ``parameter Integer k[3,2] = {{1,2},{3,4},{5,6}}``, +Arrays may be constructed using the notation ``{x1,x2,...}``, +for example ``parameter Integer k[3,2] = {{1,2},{3,4},{5,6}}``, or using one or several iterators, for example -``parameter Real k[2,3] = {i*0.5+j for i in 1:3, j in 1:2};``, -and with a ``fill`` function. -Arrays may also be concatenated using ``cat``. +``parameter Real k[2,3] = {i*0.5+j for i in 1:3, j in 1:2};``. +They can also be constructed using +a ``fill`` or ``cat`` function, see :numref:`sec_dec_par`. The size of arrays will be fixed at translation. It cannot be changed during run-time. @@ -272,6 +271,7 @@ the Instantiation ^^^^^^^^^^^^^ +.. _sec_dec_par: Declaration and Assigning Values to Parameters .............................................. From ba603c984a18bce33e39be03435e565766b3730d Mon Sep 17 00:00:00 2001 From: Michael Wetter Date: Tue, 7 Jan 2020 22:26:03 -0800 Subject: [PATCH 15/17] Removed scalar connections --- specification/source/cdl.rst | 2 -- 1 file changed, 2 deletions(-) diff --git a/specification/source/cdl.rst b/specification/source/cdl.rst index 40c5e3ff..6e09ade8 100644 --- a/specification/source/cdl.rst +++ b/specification/source/cdl.rst @@ -698,8 +698,6 @@ one output connector of a block. For vectorized connectors, or vectorized instances with scalar connectors, each (element of an) input connector needs to be connected to exactly one (element of an) output connector. -Unlike in Modelica, a ``connect`` statement can only connect scalar variables or an -individual element of a vectorized input/output port. Connections are listed after the instantiation of the blocks in an ``equation`` section. The syntax is From c0c605a6bc1ee5deea6012d5cadaf045008cdb4f Mon Sep 17 00:00:00 2001 From: Michael Wetter Date: Wed, 8 Jan 2020 13:53:51 -0800 Subject: [PATCH 16/17] Removed Modelica.SIunits.Time --- .../img/codeGeneration/ParameterPropagation/Controller.mo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/source/img/codeGeneration/ParameterPropagation/Controller.mo b/specification/source/img/codeGeneration/ParameterPropagation/Controller.mo index 435edb9b..6bab7f00 100644 --- a/specification/source/img/codeGeneration/ParameterPropagation/Controller.mo +++ b/specification/source/img/codeGeneration/ParameterPropagation/Controller.mo @@ -1,6 +1,6 @@ block Controller "Controller with time sampling" ... - parameter Modelica.SIunits.Time samplePeriod=120 + parameter Real samplePeriod(quantity="Time", unit="s")=120 "Sample period of component"; ... OBC.ASHRAE.G36_PR1.AHUs.MultiZone.VAV.SetPoints.SupplyFan From f1375b4018e5b1916f113c4d7009c6be1acd205c Mon Sep 17 00:00:00 2001 From: Michael Wetter Date: Wed, 8 Jan 2020 13:56:03 -0800 Subject: [PATCH 17/17] Revised should to must --- specification/source/cdl.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/source/cdl.rst b/specification/source/cdl.rst index 57caed33..5c897f5e 100644 --- a/specification/source/cdl.rst +++ b/specification/source/cdl.rst @@ -393,7 +393,7 @@ a translator from ``CDL-JSON`` to a control product line is allowed to ignore th People who implement control sequences that require that values of parameters are identical among multiple instances of blocks - should use blocks that take these values as an input, rather than rely on the ``final`` keyword. + must use blocks that take these values as an input, rather than rely on the ``final`` keyword. This could be done as explained in these two examples: