The Bignum extensions add the following features to the Javascript +language while being 100% backward compatible: +
+n suffix is necessary as in the TC39 BigInt proposal1).
+
+BigFloat) in base 2 using the IEEE 754 semantics.
+
+math mode which modifies the semantics of the division, modulo and power operator. The division and power operator return a fraction with integer operands and the modulo operator is defined as the Euclidian remainder.
+
+The extensions are independent from each other except the math
+mode which relies on the bigint mode and the operator overloading.
+
If the operands of an operator have at least one object type, a custom
+operator method is searched before doing the legacy Javascript
+ToNumber conversion.
+
For unary operators, the custom function is looked up in the object +and has the following name: +
+unary +Symbol.operatorPlus
+
unary -Symbol.operatorNeg
+
++Symbol.operatorInc
+
--Symbol.operatorDec
+
~Symbol.operatorNot
+
For binary operators: +
+Symbol.operatorOrder is looked up in both
+constructors and converted to Int32. The operator is then
+looked in the constructor with the larger Symbol.operatorOrder
+value. A TypeError is raised if both constructors have the same
+Symbol.operatorOrder value.
+
+The operator is looked up with the following name: +
++Symbol.operatorAdd
+
-Symbol.operatorSub
+
*Symbol.operatorMul
+
/Symbol.operatorDiv
+
%Symbol.operatorMod
+
% (math mode)Symbol.operatorMathMod
+
**Symbol.operatorPow
+
|Symbol.operatorOr
+
^Symbol.operatorXor
+
&Symbol.operatorAnd
+
<<Symbol.operatorShl
+
>>Symbol.operatorShr
+
<Symbol.operatorCmpLT
+
>Symbol.operatorCmpLT, operands swapped
+
<=Symbol.operatorCmpLE
+
>=Symbol.operatorCmpLE, operands swapped
+
==, !=Symbol.operatorCmpEQ
+
The return value of Symbol.operatorCmpLT, Symbol.operatorCmpLE and
+Symbol.operatorCmpEQ is converted to Boolean.
+
Symbol constructorThe following global symbols are added for the operator overloading: +
operatorOrderoperatorAddoperatorSuboperatorMuloperatorDivoperatorModoperatorPowoperatorShloperatorShroperatorAndoperatorOroperatorXoroperatorCmpLToperatorCmpLEoperatorCmpEQoperatorPlusoperatorNegoperatorNotoperatorIncoperatorDecThe bigint mode is enabled with the "use bigint" directive. It
+propagates the same way as the strict mode. In bigint mode, all
+integers are considered as bigint (arbitrarily large integer,
+similar to the TC39 BigInt
+proposal2)
+instead of number (floating point number). In order to be able
+to exchange data between standard and bigint modes, numbers are
+internally represented as 3 different types:
+
In standard mode, the semantics of each operation is modified so that
+when it returns a number, it is either of SmallInt or
+Float. But the difference between SmallInt and Float is not observable
+in standard mode.
+
In bigint mode, each operation behaves differently whether its +operands are integer or float. The difference between SmallInt and +BigInt is not observable (i.e. they are both integers). +
+The following table summarizes the observable types: +
+| Internal type | Observable type (standard mode) | Observable type (bigint mode) |
|---|---|---|
| SmallInt | number | bigint |
| BigInt | bigint | bigint |
| Float | number | number |
There is no incompatibility with Javascript. +
+ +The following changes are visible: +
+typeof 1.0 === "number" and typeof 1 === "bigint". Another consequence is that 1.0 === 1 is false.
+
+2**53 + 1 === 2**53. This is no longer true with the bignum extensions.
+
+0x800000000 | 1 === 0x800000001 while it gives 1 in standard mode.
+
+0x1f i.e. 1 << 32 === 4294967296 while it gives 1 in standard mode. However, the >>> operator (unsigned right shift) which is useless with bignums keeps its standard mode behavior4.
+
+Object.is(0, -0) === true. Use -0.0 to create a minus zero floating point value.
+
+ToPrimitive abstract operation is called with the "integer" preferred type when an integer is required (e.g. for bitwise binary or shift operations).
+
+Number.prototype. InsteadObject.getPrototypeOf(1) === BigInt.prototype. The prototype of floats remains Number.prototype.
+
+bigints.
+
+The operands are converted to number values as in normal +Javascript. Then the general case is that an Integer is returned if +both operands are Integer. Otherwise, a float is returned. +
+The + operator also accepts strings as input and behaves like
+standard Javascript in this case.
+
The binary operator % returns the truncated remainder of the
+division. When the result is an Integer type, a dividend of zero yields a
+RangeError exception.
+
The binary operator % in math mode returns the Euclidian
+remainder of the division i.e. it is always positive.
+
The binary operator / returns a float.
+
The binary operator / in math mode returns a float if one of
+the operands is float. Otherwise, BigInt[Symbol.operatorDiv] is
+invoked.
+
The returned type of a ** b is Float if a or b
+are Float. If a and b are integers:
+
BigInt[Symbol.operatorPow] is invoked.
+
+The unary - and unary + return the same type as their
+operand. They performs no floating point rounding when the result is a
+float.
+
The unary operators ++ and -- return the same type as
+their operand.
+
In standard mode: +
+If the operator returns an Integer and that the result fits a +SmallInt, it is converted to SmallInt. Otherwise, the Integer is +converted to a Float. +
+In bigint mode: +
+If the operator returns an Integer and that the result fits a +SmallInt, it is converted to SmallInt. Otherwise it is a BigInt. +
+ +In standard mode: +
+The operands have their standard behavior. If the result fits a +SmallInt it is converted to a SmallInt. Otherwise it is a Float. +
+In bigint mode: +
+The operands are converted to integer values. The floating point +values are converted to integer by rounding them to zero. +
+The logical operators are defined assuming the integers are +represented in two complement notation. +
+For << and <<, the shift can be positive or negative. So
+a << b is defined as \lfloor a/2^{-b} \rfloor and
+a >> b is defined as \lfloor a/2^{b} \rfloor.
+
The operator >>> is supported for backward compatibility and
+behaves the same way as Javascript i.e. implicit conversion to Uint32.
+
If the result fits a SmallInt it is converted to a SmallInt. Otherwise +it is a BigInt. +
+ +The relational operators <, <=, >, >=, ==, != work as expected with
+integers and floating point numbers (e.g. 1.0 == 1 is true).
+
The strict equality operators === and !== have the usual Javascript
+semantics. In particular, different types never equal, so 1.0
+=== 1 is false.
+
Number literals in bigint mode have a slightly different behavior than +in standard Javascript: +
+p letter assuming a base 2. The same convention is used by
+C99. Example: 0x1p3 is the same as 8.0.
+
+BigInt functionThe BigInt function cannot be invoked as a constructor. When
+invoked as a function, it converts its first parameter to an
+integer. When a floating point number is given as parameter, it is
+truncated to an integer with infinite precision.
+
BigInt properties:
+
asIntN(bits, a)Set b=a \pmod{2^{bits}}. Return b if b < 2^{bits-1} +otherwise b-2^{bits}. +
+asUintN(bits, a)Return a \pmod{2^{bits}}. +
+tdiv(a, b)Return trunc(a/b). b = 0 raises a RangeError
+exception.
+
fdiv(a, b)Return \lfloor a/b \rfloor. b = 0 raises a RangeError
+exception.
+
cdiv(a, b)Return \lceil a/b \rceil. b = 0 raises a RangeError
+exception.
+
ediv(a, b)Return sgn(b) \lfloor a/{|b|} \rfloor (Euclidian
+division). b = 0 raises a RangeError exception.
+
tdivrem(a, b)fdivrem(a, b)cdivrem(a, b)edivrem(a, b)Return an array of two elements. The first element is the quotient, +the second is the remainder. The same rounding is done as the +corresponding division operation. +
+sqrt(a)Return \lfloor \sqrt(a) \rfloor. A RangeError exception is +raised if a < 0. +
+sqrtrem(a)Return an array of two elements. The first element is \lfloor +\sqrt{a} \rfloor. The second element is a-\lfloor \sqrt{a} +\rfloor^2. A RangeError exception is raised if a < 0. +
+floorLog2(a)Return -1 if a \leq 0 otherwise return \lfloor \log2(a) \rfloor. +
+ctz(a)Return the number of trailing zeros in the two’s complement binary representation of a. Return -1 if a=0. +
+BigInt.prototypeIt is a normal object. +
+ +Number constructorThe number constructor returns its argument rounded to a Float using +the global floating point environment. In bigint mode, the Number +constructor returns a Float. In standard mode, it returns a SmallInt +if the value fits it, otherwise a Float. +
+ +Number.prototypeThe following properties are modified: +
+toString(radix)In bigint mode, integers are converted to the specified radix with +infinite precision. +
+toPrecision(p)toFixed(p)toExponential(p)In bigint mode, integers are accepted and converted to string with +infinite precision. +
+parseInt(string, radix)In bigint mode, an integer is returned and the conversion is done with +infinite precision. +
+Math objectThe following properties are modified: +
+abs(x)Absolute value. Return an integer if x is an Integer. Otherwise
+return a Float. No rounding is performed.
+
min(a, b)max(a, b)No rounding is performed. The returned type is the same one as the +minimum (resp. maximum) value. +
+This extension adds the BigFloat primitive type. The
+BigFloat type represents floating point numbers are in base 2
+with the IEEE 754 semantics. A floating
+point number is represented as a sign, mantissa and exponent. The
+special values NaN, +/-Infinity, +0 and -0
+are supported. The mantissa and exponent can have any bit length with
+an implementation specific minimum and maximum.
+
Each floating point operation operates with infinite precision and
+then rounds the result according to the specified floating point
+environment (BigFloatEnv object). The status flags of the
+environment are also set according to the result of the operation.
+
If no floating point environment is provided, the global floating +point environment is used. +
+The rounding mode of the global floating point environment is always
+RNDN (“round to nearest with ties to even”)5. The status flags of the global environment cannot be
+read6. The precision of the global environment is
+BigFloatEnv.prec. The number of exponent bits of the global
+environment is BigFloatEnv.expBits. If BigFloatEnv.expBits is
+strictly smaller than the maximum allowed number of exponent bits
+(BigFloatEnv.expBitsMax), then the global environment subnormal
+flag is set to true. Otherwise it is set to false;
+
For example, prec = 53 and expBits = 11 give exactly
+the same precision as the IEEE 754 64 bit floating point. The
+default precision is prec = 113 and expBits = 15 (IEEE
+754 128 bit floating point).
+
The global floating point environment can only be modified temporarily
+when calling a function (see BigFloatEnv.setPrec). Hence a
+function can change the global floating point environment for its
+callees but not for its caller.
+
The builtin operators are extended so that a BigFloat is returned if +at least one operand is a BigFloat. The computations are always done +with infinite precision and rounded according to the global floating +point environment. +
+typeof applied on a BigFloat returns bigfloat.
+
BigFloat can be compared with all the other numeric types and the +result follows the expected mathematical relations. +
+However, since BigFloat and Number are different types they are never
+equal when using the strict comparison operators (e.g. 0.0 ===
+0.0l is false).
+
BigFloat literals are floating point numbers with a trailing l
+suffix. BigFloat literals have an infinite precision. They are rounded
+according to the global floating point environment when they are
+evaluated.7
+
BigFloat functionThe BigFloat function cannot be invoked as a constructor. When
+invoked as a function: the parameter is converted to a primitive
+type. If the result is a numeric type, it is converted to BigFloat
+without rounding. If the result is a string, it is converted to
+BigFloat using the precision of the global floating point environment.
+
BigFloat properties:
+
LN2PIGetter. Return the value of the corresponding mathematical constant +rounded to nearest, ties to even with the current global +precision. The constant values are cached for small precisions. +
+MIN_VALUEMAX_VALUEEPSILONGetter. Return the minimum, maximum and epsilon BigFloat values
+(same definition as the corresponding Number constants).
+
fpRound(a[, e])Round the floating point number a according to the floating
+point environment e or the global environment if e is
+undefined.
+
parseFloat(a[, radix[, e]])Parse the string a as a floating point number in radix
+radix. The radix is 0 (default) or from 2 to 36. The radix 0
+means radix 10 unless there is a hexadecimal or binary prefix. The
+result is rounded according to the floating point environment e
+or the global environment if e is undefined.
+
isFinite(a)Return true if a is a finite bigfloat.
+
isNaN(a)Return true if a is a NaN bigfloat.
+
add(a, b[, e])sub(a, b[, e])mul(a, b[, e])div(a, b[, e])Perform the specified floating point operation and round the floating
+point number a according to the floating point environment
+e or the global environment if e is undefined. If
+e is specified, the floating point status flags are updated.
+
floor(x)ceil(x)round(x)trunc(x)Round to an integer. No additional rounding is performed. +
+fmod(x, y[, e])remainder(x, y[, e])Floating point remainder. The quotient is truncated to zero (fmod) or
+to the nearest integer with ties to even (remainder). e is an
+optional floating point environment.
+
sqrt(x[, e])Square root. Return a rounded floating point number. e is an
+optional floating point environment.
+
sin(x[, e])cos(x[, e])tan(x[, e])asin(x[, e])acos(x[, e])atan(x[, e])atan2(x, y[, e])exp(x[, e])log(x[, e])pow(x, y[, e])Transcendental operations. Return a rounded floating point
+number. e is an optional floating point environment.
+
BigFloat.prototypeThe following properties are modified: +
+toString(radix)For floating point numbers: +
+toPrecision(p[, rnd_mode])toFixed(p[, rnd_mode])toExponential(p[, rnd_mode])Same semantics as the corresponding Number functions with
+BigFloats. There is no limit on the accepted precision p. The
+rounding mode can be optionally specified. It is set by default to
+BigFloatEnv.RNDNA.
+
BigFloatEnv constructorThe BigFloatEnv([p, [,rndMode]] constructor cannot be invoked as a
+function. The floating point environment contains:
+
BigFloatEnv.prototype.clearStatus() or with the various status flag setters.
+
+new BigFloatEnv([p, [,rndMode]] creates a new floating point
+environment. The status flags are reset. If no parameter is given the
+precision, exponent bits and subnormal flags are copied from the
+global floating point environment. Otherwise, the precision is set to
+p, the number of exponent bits is set to expBitsMax and the
+subnormal flags is set to false. If rndMode is
+undefined, the rounding mode is set to RNDN.
+
BigFloatEnv properties:
+
precGetter. Return the precision in bits of the global floating point
+environment. The initial value is 53.
+
expBitsGetter. Return the exponent size in bits of the global floating point
+environment assuming an IEEE 754 representation. If expBits <
+expBitsMax, then subnormal numbers are supported. The initial value
+is 11.
+
setPrec(f, p[, e])Set the precision of the global floating point environment to p
+and the exponent size to e then call the function
+f. Then the Float precision and exponent size are reset to
+their precious value and the return value of f is returned (or
+an exception is raised if f raised an exception). If e
+is undefined it is set to BigFloatEnv.expBitsMax. p
+must be >= 53 and e must be >= 11 so that the global precision
+is at least equivalent to the IEEE 754 64 bit doubles.
+
precMinRead-only integer. Return the minimum allowed precision. Must be at least 2. +
+precMaxRead-only integer. Return the maximum allowed precision. Must be at least 53. +
+expBitsMinRead-only integer. Return the minimum allowed exponent size in +bits. Must be at least 3. +
+expBitsMaxRead-only integer. Return the maximum allowed exponent size in +bits. Must be at least 11. +
+RNDNRead-only integer. Round to nearest, with ties to even rounding mode. +
+RNDZRead-only integer. Round to zero rounding mode. +
+RNDDRead-only integer. Round to -Infinity rounding mode. +
+RNDURead-only integer. Round to +Infinity rounding mode. +
+RNDNARead-only integer. Round to nearest, with ties away from zero rounding mode. +
+RNDNURead-only integer. Round to nearest, with ties to +Infinity rounding mode. +
+RNDF8Read-only integer. Faithful rounding mode. The result is +non-deterministically rounded to -Infinity or +Infinity. This rounding +mode usually gives a faster and deterministic running time for the +floating point operations. +
+BigFloatEnv.prototype properties:
+
precGetter and setter (Integer). Return or set the precision in bits. +
+expBitsGetter and setter (Integer). Return or set the exponent size in bits +assuming an IEEE 754 representation. +
+rndModeGetter and setter (Integer). Return or set the rounding mode. +
+subnormalGetter and setter (Boolean). subnormal flag. It is false when
+expBits = expBitsMax.
+
clearStatus()Clear the status flags. +
+invalidOperationdivideByZerooverflowunderflowinexactGetter and setter (Boolean). Status flags. +
+Math objectThe following properties are modified: +
+abs(x)Absolute value. If x is a BigFloat, its absolute value is
+returned as a BigFloat. No rounding is performed.
+
min(a, b)max(a, b)The returned type is the same one as the minimum (resp. maximum)
+value, so BigFloat values are accepted. When a BigFloat
+is returned, no rounding is performed.
+
A new math mode is enabled with the "use math"
+directive. "use bigint" is implied in math mode. With this
+mode, writing mathematical expressions is more intuitive, exact
+results (e.g. fractions) can be computed for all operators and floating
+point literals have the BigFloat type by default.
+
It propagates the same way as the strict mode. In +this mode: +
+^ operator is a similar to the power operator (**).
+
+^ and **) grammar is modified so that -2^2 is allowed and yields -4.
+
+^^ operator.
+
+BigInt[Symbol.operatorDiv] in case both operands are integers.
+
+BigInt[Symbol.operatorPow] in case both operands are integers and the exponent is strictly negative.
+
+BigFloat by default (i.e. a l suffix is implied).
+
+Symbol constructorThe following global symbol is added for the operator overloading: +
operatorMathModNumber literals.
+
+https://tc39.github.io/proposal-bigint/
+https://tc39.github.io/proposal-bigint/
+Could be extended to 53 bits without changing the principle.
+The unsigned right right operator could be removed in bigint mode.
+The +rationale is that the rounding mode changes must always be +explicit.
+The rationale is to avoid side effects for the built-in +operators.
+Base 10 floating point literals cannot usually be +exactly represented as base 2 floating point number. In order to +ensure that the literal is represented accurately with the current +precision, it must be evaluated at runtime.
+Could be removed in case a deterministic behavior for floating point operations is required.
+VGlZ^l%(3tFE4$WPr}+`-gS1Jn9IfB!2@@+B7P z?Q09%4sC3CLy;nlfoRuf;K~rvz+QL8F25zp@PpG%(a7}{u3%Cv1;1lg=g47{=t^;j z5U`jSkholX(XV5`QQK5r?{^{@HM}`ZR8WMMYUZjQTt8fsY2ko}L{>d+dsQC3?K5Sv z?8X$~gdal5JnYO8>IhJ`RIi|#{Q?U}Vwjsa)wuwg+kRV#3oE8%UC?rjN5BC91%~j> zb_a$pF$~0kVe+?loIqd`_*PZbw8C?#lajGWpT-3YFam4nF_Jt+mDOx9Xy*5oHvY)# z-;wm!Vji3N9{rxdXs3Nhl0oVZy4 {2*-j{p= z@&T3V))pRMl5wGg`iEj64c5iN_WjgKK37G6i)V0L?DcMMFAyz>R`PVKUm5rDIGQIJ zbe&uStb$QsP+X#`-}s*4AS^EmsgPXv;*-w1{il}SGWU*jK3c+^BnKz1hP6Wt6fa_; zYN=I(YM7)Yyr*MHq2Yx}^vpO9rWGF+FB@JpsC5F;1@;uUcI={{daO)`ICWSC9RmR< zu~v&_O4i7;T;`cB_8gTLb<=GWa`nOoxKU!|cK-(Zb?J;`9;;VP7@ri2RR{ZuI$wIG zuAqfomu2cGA)i6}FIi-)LZ`IY<)JWp(u8n9eEH0h8Y`UeA(0%bzYV3 # zsL~U>poCPsK uiB#`nm}hhEL;zS34okL_dBATL7nvd zT4MsAqq?+4#Hx(hxOeqbR9?qfixkjR@PP`l&Xo0=F&kH4iLy5&Mn%|9(sm>@BxX=R z&^sXo{YHkD?`q2le(~3;_Kkr*1se32N`WsZ5(yr2dm>0f61tnTkiYso^E^g4A8Wt} zD~A6PrT!F;tPsMpksK4X>{-YY-#XIb!lmMDQ8LBqSdj7FoBU+NeSdy_{v(dr68!F{ z-PqANVh(FiWh&^}*82p9FHfEi^gY$w3tUkD=>AV3?tcsQ|7nymvHW}ca7feE{%?r; z$}!mUJtd?-r|Aiwj{~z &Qj)?Md07?Quo=BT$#;Bh~YS+?E@X|kXqu|ju1Qg{SXD?1syKTw03q6sT zg(#jF_yby|p(~Mt8nRdX=gY?FpRuJf)S?hG?J;w!tvp24OqV`*R9za?X#L+wWG~0f z!`#VpQ%;yN_-b-<>ky&h5^j`Y4~#C2&N@krZ}@Z%An1wI=#-3DgUrU3Igp-Fg`&uM zD{alTRj9f(BUh8l`hvM|NPW)3V#naR3ZeDV3uW2roIpH%tnvAluI=~MZu_Yb++8Gt zF3SgtO_&2EkRKYa=>?B7o@!O=gdGUhPYBU5Uzkp!01I3ox@&(Jh^}Alys {Sl4>q9-w{b+b}NQ%uW7g4m`!)q|@4%0HjY|qoR6$My@)0W_zRBA3Ke3`2y_o&4~ zf_;i!5e|&C*O7OL2H!}yknRynZRvCyf?gdm9RZFBKkqraN!}g1+bXfC`Kire8psGo zkOpH`&A^#Vr{gs#hnfOK4>QtfUjTM#W20oM^aZYZtQIEp@3hr%tE8~kKyi6LN+~YZ zDdJIq!8%Shxs{$2%$3e4RwjTdK9>o#-2!VE2RMPHj))eBp)TuCc_8-)ADN2yUrID< zR0Ygj>&toyIfqxxWF7Y$ah{3v&39AB {?tKa|r^sRIkP( z*(UN&ALg%|2jI(f>d?#*Y(wIC5hW&CRK7dth-;>IReOK$MkyfVh|&D+$PGfRx56p2 zpGHngGdzD&4Vg?CC^ooi4f%Za%kFE|n&o~D0byBxi3$} #|CM$;Xc=9eGTV^)0HF_>p*TvW#N#M!XQAXCb}3$WB!GW zh^d_J0JlfX{A(urcK-r_MF?^loO`7Jr5YWLWW0TmvAU7I_go!j91GZ2 z*$s`6bDVc>&f>fiA!26&rrJ0APw5O17@o(Cp(`YyOkaC{`~a@})aY2udFO5$Ksl{4 z4Ct1A{>Td~EQ!px5d*k_<6qE*>#M-1jf*y1NhnO5S6I?g>08IqyEzMI&|1MrPR+-f zdkn~Z|H|}X07q(b?*m>CW-KwfoaPjZ33$&`{|>~ jjs2S+zRjLlwy099I%NSd<) o`1SzwG57-3DH?pva z@J$=o=WtN{ *8l0+5dME3P>D{Ovddyb3wZ{h>950ft`0*q$jn ~K9p6|PMw%*%$05=hJ?RW{zDdp_Y(NBu29+9@8b?*c=a}=^ zSn2EC^xd8f`SWAY{7|mv^;QZ>kR(A23;gw 2@F+q@FP22<1KeL9E_EmH^l~i znlxPWGMHrm=|@6;X8Drw##$Qt#C1U3;cYCngufE8ypf7aGq$em&A61w$(}BWVJ4wv zN_PgzITtqB38BL8!})ubR(~%1D8C8DAHNz+j-(ghjRlhJqF8*|;j)+$q&B!+uVsuq z3qRQLqn81zxyU7TVrU)dou-THxG-1cdq=038?AiN_#d`&G_gO_iYu1vwE(NM1)eK8 zwJE3fyd8MBQ&6Vmh_>?ECMz0NcCHYd`9b<1D{8Jp1{LpTNYr2aXK^3(zA);Uv!(tS zCyIAHb4Klm9tQ4eWgZw=tM;f3J$yMmNBK^WHs7E&{vi;Br9`UVB1=MRQNREOJ*>?# z>XqCH1N2@s)PEv^<9}IZ|C5QC+1XkDZLv{}wGp#1{J3R6^b($_eb62+f?XfDZh?(M z8MVAoN{W~yDq};cL_}4~aXRv>Yc`sna=$KaYsiM1!}WZjNJsji0b7be&q2SI^HI z-?U+e(e<*jlS_%%3f5-|_WJfT2FRUv$uFWb$^X$xfKi?zd^{9z R?pG9)#H8N zx&f?Ip%SkRNLB@X0G+4Tp`>V%rb`f~av>+>CsK26lx0cWyspSBc4YU|v){qDkCOKC zkx%qzy{$};3)y61riq$jB~FYiW*ewjJV1e|KN~c*_*?^Y)Mk>9q)~$)l?hYoF@o$5 zNM~1_+xm9RA+-0MfEvzoISIwOhV_z{#~fK1*m?kJuHC!N-E%frBg4yeBZVyqr3Z6z zc#_sIOO^$)jc2KdTz|yaoVS2z@oxb!B)4gqQH`E!@itGDZ>IPjd0qt5>UoxVTp-LO zzntW7j3Zdmr*N|sFmh3Xs-7lGokWi(*4SULX^XTgAqsA0fS}7U>Kkxr!RJ7>ncr5K zDqlZ;42Y<0R9tzK+VEw&I$xg4Efw&`|6p-17uDm;PlClZTAH$)=8O;4 RVx14rfwFV+U|6MU_+{vSoqn!OSwkXw|h_9y~=;c|>-nJqFs( za@ILXfhyA|LOR=Eq*LNj;&=a%$`3TE6FuKjni?|=nSwF22LoM0O9ZA;6-Ilj*kq)c z8sTCqNgpkOU+2m}tgPrR7(#O+ru(8+TTk-!-DLhk)#@lWcC_^6-`zp)uF*D0$P$lV zKr*M(^sbObyy|A25X s=CZAU?Z8@i&rrABB zEXo?xU2_y>d@&~46k3BI{<#aa9Z&mQ^;qHEFFs*o(}au50X~>Mnhl?#VmI9*9cj~a z69x)d!K5UZw@YVV@CiN4!-4$>j=8ixXmN}se2F5&b8y*?3WUeg`NeIH;S9pi3^vM2 zk*<>N8##$oLGovsg;$aX!in^PH9laLC|-6b$9ze}Tz;$7;cbC`5D%pzif5Aqx+I1x zLU@D=j;f0gR8SshNok!31~YwmoRYIj%@{7=eS`Kn8N9zjWbE+5b)+uN_Eb%+=5A>E z#_1kV1NItw&eUC?39qbEmyVoGl&Hu3a#7Aw^0PN zVi}K!bs$mpQx0iP`&cD=)U?Q0{sVI-w6K^Uh3FaU>Sv^ZJ{=w_-L}UwGl21L@mpkj z+^CUlP)GtBA*9}+H7~f&ybmJKxKAJ?Yy2)!l7uI6eDuc{4~s*qtK>H9?(g}4<3M0J zMnc+s_Moc03sCKNtOs%#$VA7gl^|}`QMJ7AcUViUe7RolxcUwzzR5Kgq&wrr9S&OP zQPp58P8#6$_}FV7PQjQD7R^e;(vuIHmI|S(Tv%h!Kau!bHf4<>zAjPWs@J+HWH$tb zr()B tjMIh*1hKw&e6InEMek`OZt0b~)ge;T2~JI}N>~KArK7gT zG@zL00g-B1F{vTrHk&VlUFG?b2ro&KrrefEFcus&M8BmmaMjj-IA0~2|4f;98b2(B zRYD_|^~<2> r?aPLQ*&K-@=uTvr&KSxxR3Slihd{uR41Dh(0u6|8f zKC@knQZ~)0jPLQ}NbF!%U9t?lANqiwtnwW*+yYM-3xvm$Ow6^rucylc`iT0R1=gU@ zyt2F*(#0{JPrA>=DDM?eTl5ULPl~JRN@Xy3yT1;kQ2I#9%vp !`Q_5^cI{Tt|-D&lAfnwB2W4)!`C!J(us1|~DbtAhJR%xcl3Iy3ZXPEmwn=4@* z6d2=Kd*pcA5^~(U@Wnru-J2E^3n3=X2>c}BVc%2pay0dZMJA!iOfM;ON;mX;``Heu z-9+=UDr}VDpQaow>ffF&K?O(|SlnQCMe{Y0Bp=&rWAI!;x4ykwyz~erp70rnNTcfv zBRe}PJxI=_ahedWZBK`V9ce;w2uB_Dp3v<9A)!U}n7JB@VfzTpX3pf}O%4Z}L;@%C z-^O|$?%Rqao5>LUh0%}xt(78)>hIG|I$_gZq0O|Y(v?Il$ERqFa&YpFrWSpZKg7p8 z-;dfApWY`&qS-Ph`w!bH1qzHB_VXVNW2+#0ZTK`rmxC9&{pFT}4ea?mMCv>D9zjXN z8s4`^@@RxsBVIH)PWEEp1V^{bli-C&i|Pvr%3>Qs;T`IYYF|^vLlTXhOuRo{NHTNm z?TAwwI_kuZUE-%`@DnPrSP6WjET71V@$ZUNS4VWEEIAy>`s8YUB`0)AokeC^q<(Bh zC8BdKHHcCpkLj( zRy-e!byQO(&KC!}cSsi3U8qT?qQ^_uZdxHwqwm2U5&SWiD8&Guq-Fjy6W#kkj)AiZ zfex#37|8>|E$IB)YLkJV_m#pwA*y?WE8g5LKKQ1Bl4giN7!c)krVB&1M3O7Scj*L1 z9wEMWn_&6??-CJfasBqS*zNJvWsoUs(_cM9qr@?D*QvCS{7%-oFvGwVEKIDN?T=>- z{F2a$Wy>jPVMO_W0pLafqK++em?=hl=9uz~g&s!03Lz*n-cW>S%HRWYD}QZTUs2oa zm$W-ILu(1!i`yD_Q?P+@w=#OER(MxD`MI5%Q>|N6o_Sco0Pw?!%RK{VjjpnrTn6FZ z?Hx3s%r3u0V6Vf>(`SAB@&|FNuyt!A#=Dib*O=S<1`Ra2iv9=T%JmPW3^OYi`@a>g zN7#C?8^d>7y~0q60TI>k&%rYDb?~g^dXyGcB>Z`ZQuvhN6t*<+Fj8BOZx<|$jh&=q z=hwKT3PXGj0%qpsC*I;C=1d=VTGVEi FUvNmOS&dXVb18E ziZd9*(d>0}%;joHlm6|mUqkPig2KcoDU`3WUVIPWbK3CX(}razd3ueUN}?|_ObU1R z07$2P)~Z3U5C$SbJ}{IZDtZvb&vGWnh4fA*n8IaQ*rUKmwGFnRb!Jh~M`SMKWVyNY zjsmuYd3U|b=c7 t@MqUP~+|9fMgc03(YrJih1xA*;|Gmz1 tCP;C uNel_UlY1NJAQG~x&ZQ;v5=igW*=b8g&1ToY5S$V_S^m948UIVQhV9zs z6e>J|$qoHBW}fCiyw#O__3z@8-e*b4a5L*0JZj1Y7JNW`89BOygQ0@rRPtJoO8U=u zRk+ReFl)RSl|FDBY1jz>tLbi`U>w&0FNxw9>2K}GQxZxUFxvP{Z5KHc6oj##ZBULt zOS^-OyojY(r2zjSK=hegSObf7Un2DdQJ-n_ZS m3Y_oWrgCiREan zpgR|f3uX!7t@7!_E;<@Q_ZtgZ?N*!N{StS#&H=8u0%CxEj9x2l+x7LL>S0HJK99cy zLuKbyI}N!T(f)Azbn#Kj&?WAY#G Mgqjw|j|lu|$`uVg2I{YDx>cRG-K| zevIE(8@v)93>A(|xRkKsNAzD?uwFk^;z5ct@D?8BU~YK|_L*(zZm~VlP}Xf~?O<98 zb%ZYPa?1Z0O&p2>mnsAPD*sl6!3WLf#6IuS&U`bQ((HKOagr1)-g!9y@0LGqz~f`K z+yTuwWx{a6KRrqy&cXswh}a6+_vGd>L#3I1l-p1`$H%xCw!9555cby89U{%j6_14| zW{yOv;nbk$Ohhw^m<*())K|h=exkoxq#?P?d1u+0_?#0T-itp1T_hwar9@84b~yjb z-}FHEEtu*V2jh4vo&fgu{Y~a@Db10;lJl-m?D>r_d9V!y@(e19iLn9{)mfv^g~@J; zh>`7&YtF@|nCQ-))Stw7mB6Q;mfajUDysNpsl>8$GC&mod%>9Iq|t%NI+PGh5$O%j zJ5pNE`lv?n8>Xk{vgc)W{LKu++%(-85!T-65kM7F+g+tkRQhyq?u%JQZ1C)I +(keC-CF+cn5+EfqZU~bB<7cK0X=ZrY3FZPw_!gv-~5)Nly3&5>+9BA_COL zf S2P_q%c=mvb>y?e*8CO-a&*bo$-)2mWu6@(n_mBLfe@?(Wu0)$GhnRAl* z6Z_-q)Uiui pDlDtA`b=;&H9w0pJGyau(`| z(5Q=*aiH1ApGG$zdFUWV)lMF=N1T@o8LArSVQ8DyOPH{?UU~DCmemP-o e#;oR^Cjcr|V}hNYoXIb;mwZ-EB)^=mTu1AquUf@QwFk3?FJ#&9 z+orS!0Zm+am=7ohb6ugxq1vfxy{iC#VQb$tT0~iKFv&y ?K>8wwWB=W66`pT(S?*idcr&4LS5u)bsFj3gJP%Q0sxN zyCN)CDp1e_N)>JY3Pqtdkh3R_0{Lnr+_{vlZaAJJ`{E-7W6 kE=AE*ts>`z_=rEKcfK+}@;s(zm$nbA2!tR@%tM>5ELE)RiwZq>+O5~O#v3=~i5 zrIR6)>qmWrr@2`NM^)ARpk^Rp(@%mv?jlPh?iiu*3c#qv8O!3ZcNo(A!!MahYPw&R z(1SmYd!`EpHn$ad>^y9-%1)3fBdz0VU*14qqrG+FU*-ojpoEkstm$T;e_r-`C2@BI zc!{NVSB2ISNy7dNE(LsxS@f!yO~=dfB=wk&)UahGO`VARkuv-vCH`I3YG(UR*IT;q zK+Do~zN6|i=M-41H}_m@G1Li(i9oOHwVD=yTGCRTPTQh=fPiA?FjRL69(54ZA~2(e z4?-NchY}{F0zCO*FLT@7^uCRyud(2E2dRBtsQeAMoQ9Dcd(jnaGig-Cm8}C#jfa21 z`-};K?QzA#CP+gA5!!1IqHS@G@L<0zVJ{>lU4JIXm6}qs)cu%mY+$mY?g^&G3++)@ zLl{Q|=8Z1&tz*cJ&DM|sN&@^jF8N!9H^8rKJh|ju7&QW3ru_<_p$un}MtVwBx!d5g zTcc3}@^?yXVq{=1-W)blAtC*ibktlmc-Mj67-vjeig|#S^uJkVGC4FF!h0e;`Dmn+ zzrgSjJcP?{BQ~*_6iWBZIpE1{7A&fL-80ECqOrAGd>J_nk~a$M_h?Z@nFLl6i-w_t zZ7!>lAQA|uiqQ`&xv7iyj`Ni*HpFtvBw0DVa&nT>&Cxj~RCD`#y9c<5K*oXu+j1;N zsZ7lPUc0u;iL?q%29JaF!I6*-dFaBqiG{<5gY^L*EfUQ+^f8S+WcRey4mBF(Nv687 z)t_5DJCC{4UQ3FOK5r~0y{ap#h+3_0&TRw&!=IH|M+(kAsK(z7IJbHkJ|IFmwNw8| z5dPDZ1U62Ve=7*Lw6^Rw#8Lcb4Dx%F1e-@b$%CB(N+fSk@~G(V_VCyF6;W(i;w3|h zuupn>)3eFilQdcmI`hJUfg^Ph%ufIuEHXWkd$9~vnya!6vg<=;-?XlkSC2vT+n-lh z&n`5Cy5LC+47s026xA5Krk)vqp(C}?bEnQ1w%5B7&Ii*@T`4NmSD$ueX^K=1GP b~h2?l04R&eK7EdiU;IzX8q!Z3W+}CyRH&UK{PLJ8L@{rnLAC!rYWwSrY}I zlUE6fKmIXEq6Je?cuZ5HTUA4tr<#(OkkG&5R2(h2ZRC)|0~K9DPbluzw`7GesQf~B z{gYfSu-Q~RbdR9{_wp$H>U6s}m~W5uneeuL4fDc3`l=)yy)d^o)(jo>$q1ihNGu5& zb3)$ne*Y}tF!lsEp-MD|48z4J@rHiXDVIrssNM5E{s-a2roHC{k=a4P*qr(&yq+2w z+!0$*jDPi$C{j-c@X6weM=lw@^al<jbp*1(2GvRLV{i+3uh@a zU)h+JG_bd$Q0;x1X%fUiIMS1DP16X9+djV|Aj?$ut!payC2^iyZ$}*`m74Il)Ohc9 z8W^2FJJ4Ce8iQ0xJai!W#$t$^1XmbnL0aI_`7#D`|79D>fgG%j_H5i&sHK`6kG#2M z>>@*70FADyrfbeOhC4Hne?)K2Phs7j#vzM#gSpD5C~0Llvz(r96e)aR8*n;pNP$Sg z w@54 z&lbzsRFfFFyy9h)D!B746+faG?dYfxF5Bj~F0Pi)d}w(Th z5BV4lQ=iZE @=JHPV4V<@kpK>ep766j?sk0gKguINvt6|4rC ze)FH9Wx&O;kAZ^2(RfZ@gM=k;MCN5tYMTzy5@tvb;a3xA6pr*qA9303z{c&(k?r0T zkW_(5h9XP**&Ka@vpMLH3RGr?MenTZ?|ct`D<0j +<5^uQ z$Duii+_o4Cb1`EjMy4S_c+E|wgws_g-NDn!f+U;;0HEoNzSpDr^+$w;JfaV9pyAO& zkuxhATALJ<55>h5Q;Z89;36aLeU*{&bOv(XW}^H-awj;bm8mDD&{?d}a#cONi)d#P z(K|JAO}nBSg`-6RQIQ`eQP+O^b-36fj^@wF FEyknl6 z;)ol20KRA7!C)D{I=`(iFlpifW3il&O$XACNo>%SW|=2fnFy33^Cd{c1_Ou~O^<#| ziv8&ZS`Cw2+3qXzOycQ7ntTT)lS98o+Sgkn*x)8_9T#beq0VI*D_zK_EPFZ|1Xd=D zL@b|Oi-11 ^Pv}tWm{d3$p*UFnJrdP#E5k0HKw!U^5_6Tw0U}nGa9`4~ezDb6`KU&w%GmKw!FX zfDiQindPVR87PdtO?x3xIB8rx-zu-ycXf(Il|cdfw+5CnkL{ntn0o+snO4Dah|mc< z$fre|UxlAgMJh0&&EuFD!B_`rF!S?yLBJ`~u-$kGQrX^*0(v}*!qD}%Jh5x@3c~q0 zS3do2gvVi1(!dj%-I$KUem;biS+<^Hx)8XYYvgL1_k8GFY2VYm)cTEAnffiE&d|$s z=(1XxQN+)p3~k#3 _kSY7i0@azgA>JS{U`}#ZaZjSu=Xb@7vZsB2j?_C*#vi~m z0zBZnZB1>%it`nuwVnNyx2c4eH|HC5U+(a4s@{TGNqM&z%#Oj)Fc9kWgu6n!JCP)S zXQN4fC*jD#-Eezx3!9iir|U#DeKxJlhdip;d?!KW?PedyB_X ;qz3p)5r zhZC?p-Zl1S|7&rH7d%h9j261iJyjbobOlD=*?HmHvt1iFPe?H2MPIAGp0~Ge3V%5+ zz$d olR0!Y6WKA*#V2U?(Cr#0N)Ze-FxcY&HYVASWfZmLFy>Gm69AJhoM&dd zPnFtijw998@PRE5J T1k=xy*qvP{DM1YT`v{3I~mwuks4?$B{TA z2_PhX7x{}o%f+zx|1kDWQJOTs+GW}9LYHmZwr$(CZQJT{y b7ejmv112oGMRsG@$+Eu-WX_~DuY*4>sl%==GG5}GuG6Xy?XeU b}$Oivm-~M{y z9zfJ|S{ytr`G>7762BeaO(mEy!}!~%l{VDx7w;e0bafO~uh^J(-<_>sqdUO ;t7 zOl0HV-1`huR9H@#O-wmdnlgV-za2^9{AGCnKjGQCIgX~8NIpt_#JyR1_T!fa4DNfU z`7Az&YLUVF$WiN=NOJyozimu~o5~Z)J13ccN_8WDCAm0Ca?wIfG0S@`SlRlmY&<3& ztMu}RvCs)mNh?jF$NWlT=D$vE6mNJbq|HE-wEbKSiXUDsrm`kD8;%4T3rmPfam7TA zXPGMHU=VXk6GwfLw*DZQYB(=8H{bz8l3Iyb^zEN6ErMWH)Kd{@b>-4)455%us^}EB z3r0t`(wPvOGDc8aahs(jvPctKe33DtAQkC?lbePB_kaVSr2!0?U(e6g^XVV|=6G}U z t;?()A04VJy!Eso^!8iL5Fn=p<6 z_Sl{b^|1M&s_V8iNY7%AoxH#Dp!OfGO6cEuUh9MY5kG*B@a{{rcj$*EDT~zr6t;k0 zFbXZeH1g0#wZN3*tgw>(l5$Fj=8ZV}oDwr16}q;yhX##H&liGnj+!BauwgR^T`z)c zOP)W`wf5_mBG}C^ZgliX{)g*wOl5)hnT$O_cLR 3v|9^cPw;+}3f{fGHCN zRVgd;4MBx!lTuesTmDamoF&)S&YREZ`a;6VXOHIefwP0|#9042uHMgs>LsGyxZH `i(nX#Cl`FIM5N|cKqp*1lS6FGxn>J1`)LG;P}J{7e^BKK*DMuRSPl`m*8+JRb- zp|80VxqqtffO|y$gqya$3FoY0E7D3J)ju|nn8Opc1Y%{zhWmSYC1Q9(j@YSRch@_z zw#4_1n7NXFfxXqdj=_$kSGcS#k50xLB3myt499AygQ{WpTJOoOx_s7}r~S2t#ej?M zN{r>&zTb-A+OI0Y#fI4_j?$||^rgLn%iu&Ud*TgZ8ztr}m)GIam?6Cy+jf{I54`f0 zlW>8A{}{A_V~yyc_DoqFme5siNTKr8bY8G2kMByzu~-t<{)ri0z!FX|5vpC)txUcq zBdjs#!-4y#cU^^Y1@-ov3MCo_*px8w*%`{-rd5OWE2JaJX|Jx+n+X23)ODpx{KWaC z 3XS;v}!uDBwNP2-MKn(V+ IJ|S2H^*%jD@tKWng3I69}g&FZ`J+{N2vEwApuFaV?V z510P#ZZ_0RBDT(mS=29T>3++fUwbT~V29)H8<8Ds@XKxdHNRFrfxS_!jCo>#%)R0k zb7f}H d2r2xI)Wb6&Cn2L6lkX)?Ck2>*tp%t(Rh%ZoLDQZgmXA# z_w_bPAXx#m=FSYvL1mfp&G41i02b=;1XP`E`h zmi7lM(QU%u_Tz@ub0<_7AsC7`Mtk_Y5!}5zyL-JM&HUHvm-Rn@B~GUQwRxaKOEZ46 z71{5l#^O*i*rV}}1g=OeqV?c3SFcy{RA<$T;MUZ&VnLdjtB2XQ?>Paf)IjqH6r4=* z5TH`y^E_dQF3{gdy}08~iX&z8*4{lCp_Tu(<3WpmC$if%txV^WS$Bu`!$3IAMkL8{ zBzi~30-ba+2jx@e&X(hgx61aX D&CPLaJxeq*slI1r_SgO?(M}|hoM`E-MGDc> z0hqT(WqaF{6Xw_A%|%_!J2vvt)WcL2O?`RAd&A!GiHM0V>+)6R2jXqAnC{kg@60HR zMYKix?hdblh{-#!s1bq+jcOhd 1m+GRW& z0vDS3B=**h8b}lJ_{jx}bzpVH7B0N2UJv_Av9_K>pe`s%L*eyPUElB7fRsY!)Hu_^ z&B^fY?nUFTBQjcI fTEcc^|M^maa3FL?hBFaG>Nn!|vqeXC;2XGaZ$wB*}K9o|h_ zXnX1K$ji-+Ghh^z-61i84y{26A3`Z5%5Q%U?PS(HCs?sRDhLjK6qt|JJ#8yhZE|j0 zU|3@KU`(g54%qmq%{O|=XV32UrNPoZItbkRnA75VSE8?GKQCzb@U_X!iGn)3a`&c* zLG+YKSOR0Q)L`WJ7OsCKUnm?fd{d6>v8_cBkDBP2+2>REM*LNU-NhYeqi)`?*2T># z9W+zPJ_>~!f)ynRK1+1JY`gE2SeNqAW577gpXzY!n5v^RhPK-DQ=kBv>P bG2 zehi3=4lYfL122a4IN^lJGO5JV;qj3AtqPfA81C>w%3X@W5g=mAUD !AS|44ak@#QslQ8 z6`KHEP^O`k19iuv!|D6MmDC&!rgiz^Ttr+M4Q&9hp|5oaF+(Q^Wkypft|c6z{&}}G z{V@J(j)~-LsstuL#NN06<5~LlEr>hcSFvT}BJO(viR8}!R5+ACsSe4rWdV&r+(NB{ zLM|lUshpbEv#N!(WDa!~+i 3yfymn(P|LM@O^yXzZXfb#NnmqP|D2JV%z17VPb5*%opa z$o+NmF+eyPJ!0~M;V 350y(8z@lCi%L4JsU |*lbEl?*NzGqSVwI3xJ|D!=106C;Y`rKvpK^9Qk3C+8~4JD&AWyX5% zfy;so>?ut&4g@jm;UR%eyRS1H2r6b=(84{U#3A>X;g39X$H4IsNIol4Fu9w7PBp!! zTCLI$L07#=2B(wAIkr1*B4K85jmv}*m7c^zC%QKQFUUe*r~q(GJiFl)D6UI-fHlhi ziRXHLGAw>X3VxGbV!`nW&hDzwy5L8RC{~Y81(r1PqX-6r`*)u-gHRu9Ijp-|g08Cy zya(3692f{4>?Mx92bNXY0kye)qS!qu@`9ng$+tvigGntGw*6s59;Y-VO_0lC2=pw- zHIJnOjrJYi`yXlNmmM%ioq)#E*Zp?b-Ue{*5kDruOWC?M#sYo8pzk`ozv%#WIjdgt z&)9{~fJHaIesU<7Nwm|MqnwA&sY Eo0Z80}elV#6iNNhEKf?w(60$5NG89`^;pFYt( z2QWQ&_l}Rgv^u0!rCt!wRyFgKxm_}40qBEpI0dNa*t*f^p;eq(y>YN8CnOM&MQy9X z@0H^GS805I;I}(;g51>R0^u6^T}k_VX7O@i+kOxkFC@`S2wQ#dm#R6NbC=BAMX~ zn6=mX>O4Qg;Oi;m6A!263wUt&T6Z(huMlh)W*iqI5J!!w-p#PDj%a!TYBoflL hA^ >d dU3gYLaWmZ7~la5awfy- zV3foh1O;zqIgJ!MPhKeBdVtt9dnwi>78GRjW#h<`n`-&|zFa9stB%mSu)AkQYm9K6 zkC|yuAt^K!12oZk;!L=uG~d1zR*~+>0Qt4}r=di=W_%qkzkQe_8@!ZWn2H6M^ljTN z*ZIYV(+q)<7BX^T<;hb;U_An+aE0F!h#cmMS{c#Vj_eR<21POb%vc!?3 zQvFWcw2Ee!`IKB<`{ib~s}}Dpe)8ug$wv$6aIP!}?ViUded;L j-L$UNI29(FS@T zn_mkNZ!5yDx{pB~pD871(?VyRBM=W$M;0set@nL2q7{ 34!3){Rh&q}%G_J#5>TmV>FBO^tjmLIaNq`v@IvvIYz*ox)deLMdJYN|N+K(Z*1D ztSf7c+#@j{x#iS&R%O%51)Nn1iq+ecf5QZt^DG(*WVWaUFiqDRsdj(-lw8tyFXyqY zjwgnPtw)+c*&r6_4hWXkWbi`xw4mMrX9mb~?|SF*+_T Sgqi+7Nz2Lx6o+w?8M7x_4!_=kr)SJ zenRurKG2bGCm7m6JoflTFWlJs?FTAJl8TfdCzQB%Ag9+4E#?=TD4@o1SbMS&`ZegY zgz<~J^%Y+q6l(Fm68wKP>KK^+*YnL?|I?^rL-N1T-xJ3yXH_ijeqKhnnk}4&qWb_^ zH!>g@J~or2By~Oee&4#I&~!RoT^m5^O&VSB-MNW_(H6ZOQPb=kcfvd7(N2A87_H8_ zin81G|B2yjhextAOQEmH_kG}!RHK23E;j&NY;XcDteyy8?Z|JuOqa2zJqfyX?L#Dj zFpkAu#IU;b8+NI$BMs=M)R5OkB1o$)T^mYHI-ba;gVorrTOUR2Zo;wr?Jt{|w!8-J zN#ufzzRupm&1 w>SXR2@XzeROD|nFkhYjyvWeiqYd0B8uKu=fQ;KI#TOM%GeAcJ)h$5qZ z20A#1pr_PZuIF7dhG-U?0w3gn>oYW7>AwP~))R6&xFBp7p3EpdmP2+uZ?EjRmvB4| zA@SCb<6RCJE5RZ&Z#hoKv}9Z&cszo_X$*_Ma#`xt*wRI_z}g1@0<>g`20*Yf@%0V> z`$(1fgWS2M>nDjwZr*MGl20`Qk?DussVZ;plZcq}Fkks-5?7 |zweUe_qcT*C z3W@*|;aqliMUm6@);mnxY`>b2Dclqd-l!r{#xcf<-0D3A3&tPORr8E=N)jY|^zmxR zPrpno3!L8Ah_)^fJIWJalLq?QJ7e!d>h=9S zu3p_2P}F0848gp3c28i8x}E@5!6}L~F@C)B8%NcSpCl^S(x{B4PNvR5nAgC>tCH6I z)0*1^KY!BfN?Qjw+Ai55X?-x89}crbp2pwN`MSG^Zt3Z~kNmtFx+!DV@A`O~+Q_e_ zn}(oSq{RNyFUmb0ti|3gmJY`n62gq&*uBzpF`cHyhBjB(A$L=@-Ec_`9iE4+zpA9c zr#i|5MsaDJB7(ci!mA2nrODzYTs~dI5t7#>(hmL0#yZ2epD_7>G1(Ul57vOobrn$9 z9f-H5h{NTkD5L8 %k!8#? zjP-Pc8N3!Jo0RH~urG=_Y?Dc5+|_=F6dkr_2_aH!-}N0R6T#uF5=nG;#=>zHcSyjo z9-_7sX%oqDn4w_?3rCk*f7B@Po0!^H9&vV>kC)JQyD)SVbwA G^$u75c!2YL|0MXn-SMeiJI{Z^89H z(hnu~d9K_SMfF^*pM~Z9H&Lo!k@>!0+>j{NW>#})M+Th+vd2+H=>Do?XsROB<{y@f zXDia|>prsRQ!W GDR!_vd3$6G1Z3wWHsin17yzA|8UL0TDq-j)tN>=6Rxv=A zg|?j7fj?T5QYzmwItv&f2o%Fv xnWTO~8}seHAyD;W zlosr)sd(Vd;O8803#}Um(|~P9=Nqh79{%-9RONjllbz0ndc4;nCfJwaT zFC9xc*vu1MMWihtY!wu~mMyoq82im2R%~GvcrI} uF7Kf5_Y83PvP)1D z%nwJ12zjkM!|45G=i?iX2tkgpwAloW7SO&JRG>Z?kCLI-l<3_f=437;>QP~39{yD5 z2|pfCyxz00dqMgJGC>SzXP_Ry#2;mabC)Y%_THe@UOPC{qlaP tpQO7lP=qw`c-^@zGG`W?uxD3?Nl7ylv7Qp4Q^q__8MUUN`mT;JoeF|Z! zDE>U{(mC >wgBw}0z*w&(EbC4m*EzFFT%;Z;*s@_a_7B2V#` zf*HPc`*%@Hhj3M&)i?zJpxZ3Gbs6f1dc;@v%EJhYi7Ah-VdHXDmf@L$m~V6n&_bEQ zJ>$Qv&j}}z&*OtqR3e<5`E` SfO81HSqap-R z^(#ur+JZ?7^C(ENE{X3180=aau91ym!l8?~- UgxwX^1(X2Jy$s`G HKJ4WqG+5GjYNvx z8=q-smuC~&MjhWU!f}6l>nPLzAvr17D?K8TA;PW~iAz^4>g@XZUHg6nXnAZ2-vzwq z^3RL%SGGPlo8Mw=S}(64ztRJi!j2}G@zg?P+AGi4T^p*PU6z0ovMUCgfNg-}d#kOz znx&j=ljNTq&ap_6Bt;u@x%<9p;g2(h??_7>>4GfLHS~bwsrts}11^h)Gc^7ce6b{L z oq`Sd#UE#;Q0n|xR-5b-aBL&sH&A`p169MEVl%%S#V^X^Fs!^6? z5ozXTax{Tz$HYH3m)~E&uLia!5bU28MNDOe%HwzH5Y~RMil!$Bkl~xWLOBw%UL>fi ze;&+O3vT+Bd1cjfSKVFoj;p|R%e_97Cy65ZlOhZFUp!9*jG+dr*VoH73SaOFPujIz z>5-X^ncyH0oLPGS1|{ ATLCDcW|hXVK+t+6U;5+DRA_Nl4`Gjor`n(z*@s=mDCAqSax_BJ5one z62kvU#9FjoytOxI@^18v&4I<^I1!z+wCrnu?@|8U+qc_ajdi<($O5&$%hYEtrjg8r zg_Y|i1d0*^cZp~Re~kqjW^P){$vy_zSu+{YFh4OnyJA-O-sc<*7U$<3Z@$h`uMo!- z5MN|_$#~i)KbQ&viwEN{zI=T(D=y@F!yr`Xks2Rm8sy@4K3SZ38~AWx75vci>kSE^ z{L~!NeFC{?nR{A*MUbSunXJ7)m7nvBF=x}pc>UQ8q1Mefv7e9&v>sshc^-UlO-spb zfDN<@ecMqJ_jI^bEOxMDktYpR(YG5+7$H0gFL=sNyz)DIozc~8>bXa}#g{J_;kwJW zvW49a>t&O_X*YMu05Fh$ 8a&fSVF0~HjpsN zc9BOmoPwdTrULH^rjLNrqC$b=H~V|yW>>G5np9e>-#PZ31$NTsciLQ6&A=cQEnZfT zZ5Kc;-0;3K<2KXiM9ZRa)b}CR_x*Jyo_{1o5eot?zX=(j8bYTD%{r*sMx?J;4TMoQ z033?xV`|JiE8xRx3xN@8G)|~_#OJQB!isDP)mKbKY*V1@XBn*Q=Lu`~M(uU9VzIxF zfZM<`j9=W1vp37pCkKj^Tl$Asq+;yVs4P<^+#1Mwg z{YR`3>=iBi#egf_lepJZNHqhi^FRY9CxS{8$MbV&=`#&7h^7o8ZI;>b@(0?7YZ$qw z_dv@V!Mt3HwXzT+Dtdc*udgPjs1=18^O$rDaL-2jA=}lKefvo)v&jmIH1nO&-fquk zE7l<3?Naj2vS(bJJL@OZWMW7y&Lx1!4FSv+D|2Te^8hyHt0MhFvfvTNRviGr_c2ly z^??gRMq8i*C?Z}IY&R1vomSrAZFNm*`pWdfW7Xtn?fkX2zCpGtRx6*m>T&XOLY*cb z$vi&bA E8y%cmqgI@ z4(kT}=6{H-EIF9T*pl@8 {5u#Ma;y)c zI3t0thTTX)5d5qy?bcCZ>CWgpdl^vUf7+Bup2Y`EbY0rpi*`2Ng3JZ00GvErDC}2$ z!9Vs>wN~qIL8i#*z{U?V>_4ro?U< PO? zqNRo)&e(POs*oWe52F2|w}P&|%D}}u|Nb6C;WHwT)U5*GwyM6(z(fkJuv=PlESE02 zIIqXwn<*-I_n2R9Bdz=6Sv+QCb!|5*fxuGqYB@}j67NMfp0Tqi4g>?eOlVrW+uQ%- zslc3DEjBCCPObN?yMk-O7ntIKuUJpag~;Iz8KyXkCmSzl^zK+J*zR=f1L92}t~esM z!0aQa4F;{&o?BG6Yy!~0nj?VI12CcRyAE2YblNQh{6(*tceG%#<*I}lEs-}jwJ(-Z zuNw>TMDUN9prh*DjjJ#?8yi^Mqmtk7{xGj=WzMqC1eJMajDQfB7EWHKHC2A77p3`& zFlqJFAv~SMl0GuKG!&t8uf4}t3eV=)z+u-8NN?>gXXRT2Cp(%4ui|YGgio!u2&Q1# zAeD ZI!4ciSqZu%93ZK1;GRMwJO{EYHNVu=xo{uJ;<45!Kyw6 zZab}(aS`W+f kRLfkD`>tqN?D{|ZEh8UgV!#*9z_J@9- J^B07y zhgN0P8pFe{y4Drgt^RBiX&x9%ykcXjM)fV6xWdcgdd-Z6zKlyMgDTXle|aDzE{+We zKe`9*fDkNxp_E%|8h^5Ya;?BcziLrSJ>;vGPc#Do{V%uDZ_E*MfKB+$j0xB{!rraY z4kmSXC0;*sI9Se=XI_3x5#_6_8&h8I7)of)m8gWX-6QQet+RW;D>~BceZj}hO#5{_ zOJU4iCMN%_EY(O1&Ke&j#3}u}+snG5YXh(A-f!mfX4bFk>*(nwRCstuFqb%CL^w?5 z0J|5t3K%7{)DVHY63CnR<+Bm!i6CHP&z!4~bIZe8OjsAiVUSpn*;!gSn}$i%t(~;W zr~KyU2prs|h`rqEY106Fl{&3O)we?wh@!4`=3cC9d7s}y&4RWPT?!rW!v+${6z?gf zvA=kx+m6hdqAS7_xevG-);RXrvitvOci@bZd!TA}=JcQ)?o{n CVju<$}_-4zeteKZ)aXW&HUC;g~`c&@7H@!KM)M6-HzsBMV}XAQ|%}Xp_f{ z%0t87n1$@}8L@g7oEse6TXee}A_gXC 7p%D$77a)UETFw4=utBYL{IT X6VNb&0JUp?nN69SLrdW zc!&o20kxh-CGNnwfn(BC&Z)mlpQay7D>`vALN<}i8&V xFdeQed|R z87d*Z0?K4iWg|T|x4FdJbQ~)>^<1UFF?~y_C3m>vC;29U5wMp?w!e5;6478#Cr^ja zue<17mTWjYeWUGWvIE3RAZ-dW3J0fQISBNb#le2I($dvuJbc4~%S;=K_NXzi7Ab0& zQoDi)G>y3_KQD ^djTvbFj(gs_rhYebnO+)F;|;VZuxk>Gu-sE{JY!NcLt}{nfc%50F|_66HQ0 ztRH%sp43$o7?pg#Dra$b`1Kp7tVla6mOsTTo8(+nbKkiT%B&EoIXEcSk3zD!L$W|+ z3(j6CJTM4eJ}hFZ>On?|yIgr=t$f!`1q)`6!&~vK^JO=QQbsceW-I});Tn6!o8DEb z)df&LmuC<8d9H0>J#(b|{uJ#il$?*4H5e$A+%*ffppy*8LUC5VG!lxM(>i92fvE)@ z%Ej)vwg5W7=35b6qq5>Ns#^r5K$oPb-~6c97yoeWi;{83=_0sG$*;a;Cfg<0j)s#C z*z^J8KG!DM$0YUrutnI}=x}H;%hLVl#ml=|ZTF&(>Uuv}7E{ib{`(lLS20nx!)SdU zvw~Qunf`RZz?Ov{-+#7?5LLanVzky3rR@O+-B1}1%4}pVLZ%gR?R=2FhfQRom=s2Y z_Ih=@aAMIMWT(It^I-FA5yF;WWt^uw&8PR7-Ay0Yki`PeJQ`t&SI?4N%!)HnD@jx? zgi}I!%%W-HoRxpk&B7Ywm 1dpPw(Y_ zV*pc`h|6X`-8!Mxz@qeEXl9(WE48Xrv%)}A!pNn|*(Fg4AQoQF?74XY6)Alzlo*UZ z@Sfp(StpU&6DLX({Zr6dK*Z&ey;zl{d iCLY8yU*idg*03x&WLg?5nlOr^Z zlKl6U^T^Lb%JUr#zkWCwv`2D&z;E`-wQ)=%%x^G 41frtj57Tej|F8z7a_YM}zFCQ?4fo88Y{*8VF^8{dTg?Yo^W*GF&YtBSAM z|MxH0JvX*>IWK6JE2V3e)~d5Xf)0jx-`}GvzYDfq_SW0MrDx0cK+vOtw8s~^jV~A! zvNluAtbLCyX8o CM2H@NrPR5vc#|2v%~Ah&P+K$o zVSS4r55oU=jG6um!e;$vPX1qJ? 3*b8e zHHvQ7xc=tazwEhzLmYEDwLw7zu18_bImq5{K^x$2A5T(EV@_(YX#(6BIj`fYJ?~xF zyD!e!1~@nizI}dQpQH=@wUCKwEdYFcNh!!F4U_x59G&Zmti2C>-MG_Vlgkkyi#R;T z8u311)Hk?@GAAkYDY9iH7LyFKqf#$pC)S@f;ly3QPk5-b+_FbXg`Tf& W1kK>k zVJvQ1P$&p9QoDs&PeH|ea(A(R1BlsCtM0?bPOmcr9qgTY7N_&T2zumr;K>i`0dpFQ z1(ORFf=5~&)2Fm68~l{HCW%LdfH?>RK!Dji39<_-h@k)aF41l0Q(fOE!S=QY06_=9 zOM^>NhJcxdz??gP;Rl+LmP1q@%jw>o+_2_s79oxMnZ!Diol!{6z41m zfGlfrWiyYYq=GfKhtG|zR=OhXwF(T$q2oX)3#so%>A|AetFV^8CxBd<8P7)S`n$D& zX`75OY3gr#N|bDwg`5Xl 6FTWpW~j)qZ>_93->Um!xrclf62@ zZlbMZ=}qHL78I0MX4I>Yrv+C{*4~yr;!|^#gm*oh|583*$W_>$6W!rDWkYh8vXk5* zH7zz2r!xunN}a}}fyS>117}-RT$PpZLYLD|iX<9oAJ}~6l7^F&KydM2rEMdq$`mow z6B2qnAeZ@9ZxFT6l=F`$8mRVxLuIfA @dS2N5vmMT-0Mx6%la?&6Ue}x|}faT&yv=#^(lhQ+*2< z2i5Z>!xghAOG?30i|us{i>n4ErbL29_dFbQ2$6nRs=jUXK>L0Q^)Bm|HN^;9r#eXV zbvu&mp-eSV=Xj9+L|0{*1Y5P^AOln#SZcalerw8xk|vMZ;>wKh+<}P;Gjl}CB5jm% zVIln-I<=I6mEw>9KQNj3nF%CU>A9iT`b|SwwOSl2$0XryrJivzw^U!gbF11j@;~ee zuC=&7MVD4Ye{iqc#Mf|qEJe5B#wk%%I<`UVG{AV2R} $jF8kc8== zq)XX)f^{K{tiuKId(D!K;rj&HnE}1^>DL>U909W EDID1*WmhC#(vYKugq<2cwA&^W{}hj{G ?E zm4vWk #F#KQaIU@lh8!N~E*(Sq8 zz{$Y=Z_UjAC(``q@&7-k|F+NkTMhcZ{5ZungDd2$q0{1Q@^XX>2T31X<3U}ov%s^= zw+bf|2nKa iCz@lsh3wxNDT~BU){HWfjs{8sbKl@Ivmm%;rWszkUhX!+s zOamW}LztYPf=B=)fH{G4ayBn>a&%4~AGH+JxkvSlT)c228ekWJ$sXxJEzO}upCrjZ zoqX$+9Rq+ NDED2 z-R~4@E{%4tfE>aA@<3cvxWG0Z&(=N~g6V*=Lm*jE(|}51u;;S6`+SJM0X@$UKqipi zxYzVIJAnnY{5gUKwZUD)P{-h*n!q%LZb$)@IZPdZGHPldu!dJ#sCs8dk9)|r-~u;- z2l8NkDoEf%k|p4RGKe3m8SqOuR~J`9_rUcpyTk+cj56J{P)!N$)eT{TYP!>&i{wBq z;a>TT>!G`ovGsl&9s@pqU}=iU{(JXd=yq{9>kQ?|*dmI@^vUGN@BB>E5!3 zyx^))^R&~O`SM|{uDn*{I0tv2dBGGwLbrdKFFpJp0C1>)__eyAa!&0i2Ruz zw4d17K!E^o)JqtKa1BAj(;pFk6k(d5LHY0-xF@jRPJE7tP`jUBAKs>)BJ{A38M!O` z$No9=;hpt?X@4Om@^OEvl9QZn!Cq_c9D!F`Jve~{rpq2b {KPs2s7{I@Oun@?4{YSj6ZU?oX0`BmWupRH6g7W!#f6Oa?_U?a1Zg&*F z?MZ%if(|z?FTWL-zYBkU$_1YlxNCag@+2;f-&ugD5af-4KJ=A!NArcLj||N3dbmW@ zXBU1;^#8s5-WDm3###JjR0#2}c=t1w%73)pV?K!h6I{;OD&VhA1;j=`e)4mg2LWsI z;o{iJgM5#Oc4%q$&0RtRcWH3v-P`K%21H *65x aAEW2MSqq1uKv~^hB5RiTvJpHCfR)R zyr 0!C&U@`%W 5J;VOqCBjk %AHQP?fl1*i*@OD!ZxxHs o%? zuUnIuZSZ){GHiYSwk@sSnB%)9r`ws8kx8K3Y~C`5tuV8LkQ$^7xgj(g)D^#hQ;*im z!Rpz=$jl80W!r<^rpZn@W5Fc_eQTtu{KFY_d3yuDeAV 9Md9FFr zVOCjL7{`_sbR{zu683?QLCUqxV_){MG`l+Z &&}1<7eVXNK<~5)PSR6HZ zF0(IneU-j%VG7+*JXEVaAk`zkO2^!C5NG=v`AS&ovamW_tIyv-Y96~ffv4G!0q?Vj z_*hi>w%v3;7l{;Zh=QU=29)o7dAt-2OgU53bi9C )T=4t5s2E#-NNn zQx=eZGObzal@!z Tg1CxT`9ls|68oNk2f8wY7?2I&&cGUmsDt-XT0UxG z9~ww((x5HXI7&s2ZtV2TtgxSW?{^JgWB>CrNiQJHnK!(&r{2B%Y>Qk^HW>lEC1EuR zeU*0?=j3GK2La`ZmCWQ=6)l@Ws7Q6+!)IJa)wEpmUdXLmQjU~EJoZFp^iuM^h?oF` zB9qh5*o1ljO9YQGUDrnDyA*>uQ=zpjt82!uSG>hUC8HbuZLPnX!I-^OH|bMmp|PwN z^ix4jw9_5V2=q}RG}cxrMc>08y@CAGTFg81P$x1&` $Y4cs>Qs*wo(%b^fF^c7|oOG^9y>D>aWAbBVy*ow-MT!k##OU)&p(#f`U6d{=@p zr!B4Uv@Et=8E~pJb@HY 9o9YQ2Ng{2y+S#CtGrUL=3Zfxgw#j7@2i6!P%7K#x^@a-N#k8N6U53k zGPQn&pj~8@F{A!(pOnu|b=6%Fi%%NqYl6|j8V&6eQ08jo@74HqO90(MZo6?hp(FT2 zy?8&=GZCKKE*^;mu!Qn^Ds>adHIePX#ok~<^7hj!ylKZ1C;mvzm}GHj!Qb<4?mAcP zmqd)e0yZ)D=27tksakSq7fGP+%LPWPUWsl#u?o&CrU`)9@EB7em|d?SocaEmazgu(ZjBY= ?Q(y`E`Yo)&codIAxY-Y)Q6qzY33^58SwyHDvETm@q_3? z>I%o#AX)4$k|A%3yzeVWO&;6br|_dyOw2< pSh*4{5rD1-8E7`VdU zKqdb?sZq-(>~S^=jk{n5Vdf6IC1RLIaE1DwRf~xpOeiMO=Kn1OLOC{`$RduAI8oAW z%6|heVIY!*l%_zN2$D3f4Gjx@08EDEUEgrnHh-&Qpu8lpNXOG*YZ#6#KO=g}uEg<} zF?QA@GzURigt;{2T&NM3vABwI^o0c^c_eDdZ9j%=`zS?~Q+JGzUDKh&rd4I ~cQYv$QLdCLNeDOA@;qNzM=JtHFb<{&!*I^_snqe|cshSW0kY+0LZX~U_qhy6| z%@7;PJ$8LL-2Z5^9Wv K}x#q6q z$cwPl8O7+sSW(Qt-$HfQhLBF_@#m50l8DZEAG?D&yE zSirv zxEg9dUrd@pQN$Z%i4a1gO?~=956}PN%3@#y_)Anu(o`!N*O-@vIzdpmmU&ux_vYSo z$+DMJ2r x+l7{E>?Y8>1_O*MVJY;0#``aV zU)Fm{$0rp~ZNd3dt6I2NLgRs!aLv8^5(tesu2AWQlYR|}1L2_<0)caDIa%AuM%v7s z9YdVEH}t#i@1 J(3RJ=yS n#?$q`#*M*}>IK`tH~3B~M}?;+hh9{#Z09$=i$Pw1M%>JEooFKaIm- z=D J?@%H=$mD1GB=<)_u=E$f4fusyFi!if|2aNG6F< z;jQ~8HsOtCEMn0h4>vL#LRv~2ml2Ew^5zcsoiF7jfE*^KzRYBiz}{-vr`r0g&~Yeg zm=?XA_lC6mE;=$+Pm5Cvhk-AE+CM-${S$6d@E_JdW3`|D7Ysb;TWU&xqGQb|35QO_ z{RVZoGEP0)+Ko=UR!@C~S*y>&axw{vIkECN3#HkGj4_JZ0LB?5f_mpbN-C6=RAiq@ zCk}nLnW&&l56>ozqLISjz1;EVOs>9P9fE#0rPw~zO1`Ezc(+HCxM@v0eTdE?9UcFG z(10>7*cL0EJgdg&okbg%1-5QOodMq6$7qDsOdNzKX=VkUKA9Dl^`Q?3r$K$a$vWsD zHnf$fU$&jwr>8@+qihJVCsAt1U+F!c*|v*B6lKya1FX5r%fjP&<`CmP&F$qhc(>Gv zGV46x$wGK0)SI=fpgIzM1_ vO7xt^`IQ9{%F-TIm=;}&| zymG%T8`@%OiNOHdLq@H^x^FU}KV2?efa5aISmKc)7l}o{1eJrtsBtMJX5_t@nbYZ9 z>h8`KI(y9D=)Ko~gu_xsmpN9 } z7#Eo9-&H9FaU;83l8vzSf3xdLzNKv37K^t0_~h+bnT`3DDuK=eVFHYp zF4-!YlEhSgD$PZ#e^Hp~HZZ;brxW@ %8I1B%rR0c&|>4w4-0fmvRm@0e6*JzI7Rzxw~ya_o; cKal68a}`G)gs z6 W |j%)w1>ok=QSV?jmhOVb2Dl(w1K1$O*ZEPK}_|566!%(l|uK^Uk+ zv(Z2Ig_%!> C`cyP8o#8SwRa@layxo+nKQ9$VN4HdT^2S%}zV&qvV zi-b6)G}#vWmag(U?Mi0QX?MEC5JsAZOoeM^s#=E(w^eV{M|*9t{o|;L9;T$io9j5s zG5yuDx{i)qfQ6b~8KuG2^GVNabv`;;Hk5WDjo;OdO!xbO;(s(bU*WuTz6S?_$w0y9 zFQEMGkk4J95qL%rntBfKlmSOa^p7bYkk8J5e~EBQCZ=0Y`a{o_4j8TPK|)L#RWC!b z=OGfqU5qg4!)#)NZyin0aJD#~)ZNHl+~L#-=uOjDU`ePa7@@pe{I~8F9}86#qbT@V zGxL|FNY-LCffGfNHh#rR;ek1Nz(IR!2Gn22&YJ;T<1;sqF~u}NPd?Uh=!-IsRz;+S zSIz$Zo$64lEI+D$1PuS)d6FhXxQroCcRm4!>E0b(C_Nq}^^_;o7?nMXj-N`Zv2DjV z6ilF4j*&kD1s|gd$A=9q74Db!BA4j7M}JU|wc5}k%D=2_q~)*{MCz?}S6bduQ37n} z9@E`6xdJ)$uxh ;u8f_m>f`G~edPEF>#IN= z;83AfhqT{LZLPN}x|My5>NDwuQOGeO+XYnldnVC{1Hko6b*2IuWeyB$fcYG$g!B#5 zRL+*Xp1Wkz>gEU`TI2|PpJnJyOAg(G6ezfPTe&r;6&)ZIcgKMSNf->-K9rMHdR<~p zIqS{4C7d%yQb=&GR;Z`8;p~-IFKS$^>mf$uaQ$^mW>%ASfLI0Efs4?tZ`0K#uw&!1 zPeEgX+sOYrdo!5@O%`}bGe_|&c0{cO>OIhC`bnn8t=#BWbd*8XXF}uw$8!!^>Qi (^HCNX@ z0!9yJb))!dSx6}WZ9^tW=}f3Qg#-ycITlL$F(IN~&Up{w#^~uts;f3b;e8=uXj55K z^AsmOriC}rjf0sf)$8yIv0Q1N^o_s@Qen>xnFcqKBadWdhu+Wx^*h7t$Cg4KAA`hf zAA66QW@<+!m5Oxg!ERdcoUoYJ$hUI3EWJykBy&E#xjBw;RGYYp&}svB<6=J=mz|c& z3~+`7lnfs@hlP$D-gn2OC(3Og{@{iub~1ga_>F%VU#tt6O|s=k3`cX~iireucT6a` z4=zU8_kj?vluxs?&9f(FsPmZxmcx1bHQ&Bct+9+La3B$j! K7l>*OnkvBQK z@QLpb3f>=42z%v$e<*Sv2f3O$I2+{8$g 2(d3tN&a^Rzs32@tJGQt$fKzldM4-(ZxF|6puI)MRBw`zXa952XvQIIbAXASHMiCBwZ0&7ff{jZp zn##+WL=HB)0r$vpNiTV)3YTJH%x0DxFY5V**!;v2=8Sc;I13DJ#Q-{e5$9;qii+S@ zF^hPQn`3c!P96g&r(WV5q!N6?ROBtPlwjlq3TwJ#Al`sTOhnmFU){ix2AAw^Ut;YX z^bD*yc-_kSKm8*yK4577<)Q$bq(G`O?7N}U_jaZa<}_?ZWyyrNpG0X^bdi*Njf$y5 z)pS@oEy+_M4$lJ<>S<-pMyg=!6}2Iy`bb-mkJ9w5Ka5**{2N4*9dWuEasq;~T}=y) z>6!Db9S`+bMIHkj*pj=&<4IX_9%@RH4Tl-`16<4{txT!aP5uCjN#;IL`a#)s+If0n zHt=O&Cw`5-tXFu6v~Vg gN^m70`MbWhF8-w0)qLo`F Pt3qP_9kFZ9l#n6UFEw&u=QVP6<2}YT~ zgiDG!&LHy1tz6Mi-3Q-we=0&H%p;$A5S?ndQVbl%=7K9~4C+E8$KIvfq$)l}^!s+< zMKWc!@hTtU&kye3jAUmDSfSkj4WpT$tQPWkm)sup;yj}kR^J!?0}R2!-u}l)lVNR2 z)Vq!LvEtZto9V`$FEt}D9#4rg+OY#l!12x*2F|s*YHU#YJ=78GilSbGXF*?H1)KpI zK}@IxpUz24yr M(*w*p zw$w8L aRFT)UOMhuXd3FU+E?T# 8h?H&VsgQ6+;4OI zvq^UVGSSZ krYS8`63u|>sTskgnWYu-rzWZr2!8e lo&Y=*e=~2>_q}j(rdLCSSp(9V3 ;-R6zfLaU(3EweQROd)eQw~L|M$sf%0~m zDN6-CQQ?~xCQXIuKhdCYyLAoSYXgv-naMdrwsj;bx4dWL)}PoDC$v)o2D5zVHm%$| zKOX9s2~J7gy&-u59HogZRKg}oEX%dCa*NO~(a~a~$TfI;!H!}WO@4O6{Frtn6=N}P zPN?c1$_pGsbFXYBjXA_!4*Q7YswG$BTz(P*-3qv)%FPA>j=KIKi5M+ImRt;F2E%VU zni@H*Gh=sQmjhyf@@9)p5@dSeJE;&U`)m<@ 7(3> zxp64zO&;+?=bGFC@GlOIlmgJ~kyDhZepap7g2$N7Beo)mY-$0I^GNsu`@yG5wyyHv znR4IrCsB{C0(AyVG&8jQZ#aHB;KMo@FlKIz@f<1NK=(%T(1&!m$mH7%5zG~(HDUIJ zB!Y#j#UceBdj{Hb@_pU_E`%1Jnhd7>l0Wvox~N9bmhd8jqcp*;B<+&Az!^E5eY YB2p}o#!1~6SdwcKyFTclCm3q8#o9f-X%9j z+XY&bEc1`z@?tx=N}|puoh)a3>JWm8xjeQyUB>+;%@x8wAUznF4xeWB8=U(n%a+u{ z|ByTnk;A2|OJAk4#Y~~<2!i_VkfZXIs!1Hu%JbZAl>oP#i4Bew`sjFi3HLC_=Y^Lu zsh @p*5boOKMuM(gHT01*+Kcmj#dqr+d5;42Q3&CS!TZ9Is)6amxM)RpKd?Id$Z* zeC7$1ONs2D(Nm0OhdEok?~B{yJVt&`b9#}@kVI0{mki_LR%QGg0$+8~%2qREcaU4! z!q0Takn*0?_lI3PbS9Ldad&U&UI;|nf=(S w<)!R^5yf9tZv4nLNBUMZ!VAJ)I~_>{urQvKkJ o+eolGy2Wxb&W7%=c#Sa%Yzd9c zwS4$|g?TqvR5MRV@#aWBV2uYMor(oGt{o?)M{je|vgb^?n)CgOvi`XGvgky+s3N=m z1b-AeYW2!y8qR!>5c;ff<)Xh%yd7o^#(5|(>}iW(cnB467rVPtRehh#3yIF~K@D*C z%-3~C6S~&zUc>Z1^1z~sb)f0cvmhg~e1j$$I(j7&NRZ}Ar>%D18jX0bXu4g8AIC6_ zid!)Dw m}6cGZ$sOQwsf!N^1mKZutJnDGL27@#A1-SNa&& z7TwhHpf$EpV=5Km*oG79x78qrg@`qf8xhr;TMl(K+B?@fme$RQ+YEZ=R4u=hlAsy^ z jkOFmknMcbsU;&L>T>2K&aYWz^E~80RU<0Z&=cV(xW% z4%!gkYxEiSV1GN$jAqsyxiOB|aq(J3-hv%-6 +M3d1UK&lJKznTeS}G#Y(j+Yr a;j%l7{5yXeWR%y?J#uDj`>l2Tj77NZk17o>_W!X=?Wg(Vc!Rgw)) zf$tw2oE;t
w9Ey0){S%Ekje`SDo#LTY%05U=<09l29#*v9m?GO#k zAnTp(8=M{+>VeiZH9dZdpq%zWCDXmuHG$AFfSiaV@@aTWIL9XdBcqd>*L1V~KOmOV zR>0NW-CJ<}nV_Qh0rc!ArLjO_DjYWXLpq|)D&7Iy<697CC*KD2mSEM}TiI{v8GL+v z8M64g8G`ic!p(3%3b-6L0XXyMX9vK|KwnDCf)mTYZ|+vIcgaBTHvcItz%GbnI22Sc ziT1AhcSiBf&OXc!ZY+UafV;&Y%crP;l5+xL{i$faO8SA`y10PU$yfcizHPt5NpQym zV&rCKgb?IQV|UnN)q!Miy@>?1qyr~rrec5%FD&oF3oCkP&SrL&hn7comapXY=a%Jw zl?y9@mfB!`Yv)$BMn)%QQYKbLf8ua5ejOfH&7~w@9pi&R=ND$sf8xGK|LO*u*!#Yk z|9m=K;|b-)_Wlyf;7Y(w2~5^IxErs!G&{OMPD+2(Ji3AXeon)jLF}0t8SS4OfCJ?K z3o AyX5u&SP^*tKC+tOTG zLWA7>q}=G_{UkMx?Xn0yz6Q;M`~cEW&TO3mfiic4?fM5NjDKE6K7M&`{4>9P<=zSP zf9isN`mm)s0DxbrvUi#NUlI=2`i9pZokLrv?d_dbLFA`a*x28yO874u*Ac-Nj9;20 zR~BCYxRM0Tr~jtqA+^~dc(Y=IBTL(ljqVTk+Ly_~l`UT2e^hCf00AA4xH?AaZ$gi4 zTE{lvaOl~V{1**)H}$knM4CG@nD%F#nO&YfpdvcDf`fMoK-u8v1mdH$ySe~!_I!#4 znx26tWM@wv(01?zoJxfGCSaEwjoMH9F}7eZ3~q?=DYpe=e!n{mYnb{K-mV2St=t!h z-%tCQ#R)X+)OS8pHfZnlSn-zS0W>Y$cTN}dATT@xVW|EoXOFz>zoY{e;~()lQ+EE} zB&(OK9iPl!5r3ETjRS*m7( *;@cGeT S{Va#i^HW+Den=uJcsR-X& zux2MGFOXg@!!(gw5?&s^Nr+dWy 8d~P@1T0**cE}SRt?8FAjGYt=%7}w_BmRlFWk1Pb zbK4%mpq+dQRB^;^^>NycjVF1CTR8fA;ko-Hfd6U{nNa{6mr4^99x!O#UL`Fn2diB8 zP=25Fr=~XgRyE>n^s-dCY?lO2TQyRP^h0hURqh8ajp@OsE<*X;6-1Jr*l{%TIYp0$ zs*fhh%H^R_B^El%rq?M #EN4qbelLtuV-?I&(!)2H{gO-W#%fxQt+X%WZKAq% zqdWqYGTOx)63b~X<9eGo(;?pk-`t>&s_*`%tUXXCrDh<+UiyaKxfv$tX0^nziFhd( z Q#i?P&J4Kh8pdUT zP9f?ft8NgFc@A_8Lxg(fICUix-Y+Z@FtgxiJFChfTKPK-fGjCXlRDb7hy{g-u9k-) zfJtC;h)@KHhH{Yob!qmF^2iDvGY)wDTM>|c4${F0nX!dYz4eL%)YZ)GhLfhX5DJ1Y zfJh+DBHPm}fs(yxtA!u+G^}e`n}b80@bZma7Xr!a@|Ly<6ay?Rr8&hZPGGuw;9@a~ z8oI zd_NM4;~ezh9T zx iE0KAA#4|^?s!)bC)w-9}%rurM)8>oeuWAZl!ajDXP>tw2m>S!zpu_rVQCeWa zsJ}PP4d$=21kq?j4i&PV_zzETQawhbQB(BNAqH!yPYX-fiic=|ol001A3g;2DT9__ z2=|704zLIh3#TL+CPG!TdU8e5RVk+ig7>8hz(~ZT5aZ55UgG@cXH1U5opRkv_n)EN z{MLv!8hyHiyW{Do(?Ig}a&CcbKeC-EmkyoJAv_q&(g`v@Wb#>6e8RgHBPcG9z$2O$ ztcI-XpQ|NAH|n3{n fQSmY&t0z4@=lT^@qh?w?uV zSr3*^>d`K%K}`H7dj>!>$`I4Hch@vOgiZ-+W9M^59vdw_!1xoDgjc7rB{Y|~t?}&x zlJ8PGf!;hz_BXygf|;pRG6-mVVL@Sl$Mz;Ow~TDP54=i=;vng%`x&QL{SB$Hw;mm! z02VO;eYrT{er^e$8J3!yqk{wyF|@;^vKB3i{Atjxm|}lT$sT^`f}zMcy+)i>KJbM& z3Mk(RJOqP(cl;EDZ06VDBBtW)t9vLaCR*h^AEc0%#mxD~WUe|Y^S!;!<|a(EDy!L? z(L4p_JNOGyJZc*^%)w`9*%Tz$d=hjc+6D72&O(_)o@9!mx$>WSS*EHfxW)HKMY^A5 zw@~JyhwlmR8eSOprzNWiRM2cp_rAjV(q$!{Hu8Y`S|l;8nMD|(=*iGkVT}y|LBd*p zywhaUefL1RiTk{%1zgVlxFn>>eLkmsgxB?bqv07Yu*XCp8e$Mx($cPHz#K5-s%~y? zA>|23kWC7~Peu_Xwc$bNW&M)Nf?sXnV+BR(1L)HldUf#tI$>1OGCm>9M;qw402ofu zf*2NxZv{s^7sZHIJZ{rF?-g(22@zy`9k^!eY4>ZXia(IVOJ7W5!s@{Tt1Z~rMzKSA z 2^K3hrUg;r$lZK)lE+#819_-t@X*V_GD=onv8rptOC8*H+ zz_UYbUH6OITEoP`_Wz1sLZjbey@!w>!*gBVt5Z1J5p`Rd6@%)C}wIAlP|To1!HZB&(w;vkeo=F2_VrZrlV z;tG-n6n0P`qFgO6x|v~5D+xEvn{;XGN}^+O;W)WSk|x?P`RbpBTq!Or8(tcY-Irlw zpe{l1vX*Gj?p+D6J<1 tvja%HL>`&waw zkM$3>kZsb2XbZjd7m@v^Hy<(e$zl{Iii(gf9IVpnHh8D&Kt;pWDEopm1xG>8NpK}( zIV$|y1NC^$^SidEqAiUV3hpUm#-6+~xmN=Z6tgIsV=jztf`8YtO~%OcvWTyAZPVml z9hURo`# ZMC% zY!Wvdu(+%|drGGY6arN#MtEFdYz@gm^AMu5@I1ybVVY>I4wJMOhGn2JK-sM3WQ_aO zA3|0XFHC_P7Kxmp^bIiVW{l=PuDkmc<<$v_Wc$=1j?v%CA*C%a{;1OznCmHAVNC zHOjEJCMAiNA1+&mWYUI^C7Nf6u2;v*;QPEoCn<_A`lLVTXNvr;k+S4Ag)p8FWRUYu zDYm+BEuzl ; 1EldcI-EBoFjUnSv^&)PSGy+p#yzL)>d=g-0L{*qv~4qJ{ie2 zB4EKNlA)Dv9hwLA({^O+;k{VH1YxtvA8qj-CxCO7A;fXR6mLM=JXrdIMo#`!!<_A$ z^B|P6tLpk2cw@T5MZcRAnK;uYpGF*LP;g-*xhW(0uEs(Io(($9Fw=67@w0n_6`=I6 z79%K)BndX=w!N7L30JWFl_I+BIC|#Gs6kMzilrHDDun$ROfXg3mRhYIMBM;Bht46R z_a&!lFST4Ai`;jQfE&Cz(*x*lQDN#Hf#uYd7Hcd7-L_3YG7;n !`46F{nn_(GxIns#f&x9Xp&e^%@POhoxvq1mjxh4n))dmH&RU%tm9A zsYIhY!^d5EXN-bRf0{Yoo5V&hyK)nnpj4&T_MZb}L810UmcJ22GTWQTJbJffR9aI( z_No4*pzq#gZ`+< Q8p5JuR;EsirFdG1u z&Ga8-g8A)cI a;HW^&3 zNjr@qd#@vZr!Ud8M$1(kBR+MFV&(JdJ@%%)XS8%_unLDA=oABM{x(5!GSD=rxw4^9 zv?}6W`*e2b8Mx2~@$XWPr4O!rZO;@Ri7CA^#RCwaVIUjR+0Cl5swdrW$fs3+VUAfl zqIgX8!9be^*JvTL4zHc%!#M8d*oLItx7XKXg+a!6^M)M?j+n@tE6vf?r8Jox*+JpR zI`MhT6vrkrm736 R;73AUJs_{wSISRlqX-L%~~uncS MHPNyMA+{rlzw+f?WT$qs4<1v%LAw2~{whs$^O ~o5T7{* ziy7b1qVzE)M^UI#=l-cSKJ6~6&x5@K$D|4;e2G}n ?zo}yE%a9-dY^uM;2jVUYMZtxvPcaTyLx(65t6m4DU;%( zcxa_qc7W(bVjaeMl&3p7J+;}p3Tq-_Au_F`f-O (#`$VbT_2s$AMU0D#mAPHK3m)MF<`^iF&*^@K`F3gG$fS_WiLxIQ=zJL|qxH6{}W0?1p+~ea!4mqUB7E&V2RYy!hN=8c*G6aRq zs*qZ4Jc?WIh&ng-pLdBvcH-9>t>>~OKgduo2-9MtA0F905m)tDlkbJ6QmIZCy#a8_ zK(6Y(9*lWYx2?2uOXpsM+!(vEWas?#)IVK)S=n66M07GVcaxavBDhruQIyI&7sY-M zGLlMTcdfpxaK?`{uGB>@W-xxRJ1|&0*YwAzIzHW$%v_F1)5OQPK+&Yrw6P%N`yLQb zQZ7oB57T{p+H^xpz#P;$hgWYeF`-x8nq>N*1G0jrc&`e_*}#fx9CntnwiXe1GX#0M zE#bJ$oDbjX^nGMISl>)Ew)$k$c$Zl`xGaeOX8(0x6Q;GtX5BjL?rhvyP@zRD=2Qku zf5;tlpUKvg(3xV;M|DhSf$h!(ia?|z7C|T~4c>auh#@kVo#23h>Wz4L!Kzqf#rP7P zBg#5!Mf`Q;B`%qg#B87gA@#nEwzc8ZuH?REgf&yP93MM5Lu9(}b#imG Ng2ku)h4(INXVt*#8#H~ZF$mhFcgD~A qqE8h7Ac z19Q7#sSu~+%zgttSwqD`z1}b__$`xLb=Bmy0|g_Q=cUficG@zoNe!27e}^J~ F-SSxT!2sni_^fLKg(_FE@xlnht9hH)CU4<~NXY65Z z*yz)Txw4e{@Wb&2G>Bp$0yI4{)QEH?uGu$C(tZ=Dc^Y#S?XisQRW}Uqy?}2g{zVoL zl)$<_-6{lU_U1s DcrjPO^tnpOWk)1z6TihR95#>yKjNuq(o6EX2PK9J~iyThV7Eoxw2cnL}t~x(l zk^rIjsD~D)!Wb`~HZBkRZAn6bpf4r~ni5s#wKwBslZGT5wdxh4`mxtk-po7})<;|G z0ngq8`kem+OE}xU+-dmNwloSbt`g8?Q;Mi(`h8p0L_CKkL7WI!3Vq=vl^*{ztJeZP z!Ab@5hjnQ1i6rg0ckD8!zHImlQ%e8Kd+9|rejBTTwa;)}8r~yVQ13PQWF-so3Fx1U z(AZ4vYO6qb53S@vm@7U66^rV1RFYH>n~Js&O)m9oD;)VbZ?Km5n94NMLz_13q1e5k zeurXC*$*^^^(WUOSsTkLqazu~wYrtCiax;wA2g<4#E~|BXDf?|gTn^I%5Sd^!vJrh zJo(iQVQenyrm*c)GnyMP8M$!gAC b2mTgeUTcK3lTzkiNpXBOnz^+ch_I<`|ho z9eQ95HjPov<}TqnZqvzbY5AYu64j_6CT}awTT%}~zmJ^Y4_d-U1FNvBjHtrC@61;( z4u$slCb3*}dR2{3@CW7}D|((f`!<1E1CE%yTUp?Hn2~XXCtUw(etfZAJC+ikm?YCE zOT$^ J8K6I+o z4_4%pB>5EmwUfJ`y{9abJl_lGg1i)TTP;eMAv{&J_8T`v`r5AZ_ERCn9JwL&olQ4l z^g>4~lpYva;`g9O(S#mLUW=~t(*Eyjv@wi`lN6 r@J^TFRToofRJT#RtH=aUChlfz>zW!geT|Sracjer? zcHBd;eD0NL;S1D)!L>Fc#}ml(dcr0cuA00|0*!Tk?Eu!%KEe_eIxIVv!O3&PULTzm z0VtIB9Vs#T5tAl(i{Y#dqIfh|f)g%q(Be5W+E)9&m{Top+2?_d fGW}vtX1>KnH#xf!bFBVkF%Sri(%ea@zN^np$sLbj zKJYAyqJ1LY1`vys(vHZ}Gkk?!<%x;m^*W^>;qR;Hyl&)Lk}@s|#~|^s=`a3)1Bc%y zw%g&n!(F=uVB7fKzusu%e_CY2s%L~HTN=UWjiCPE%$LsGo3vWB?m40S2kKOL925xV z$u)mF-!eIVC9H*C+)4x`Y|+z%LTeif!hPeecP20!-F=PcZ ZynQ&%jZ!yP5QYx;$3OLLxpFhWf2Y!7~Z*gOo$Aifi^$aCG8J|f7Bw<17@_IyhEqIlN14~B40>@{ zY_JvXLj^R|wxNnQ9E3OCa_^N>zAsu7nd;ZBsq;njtW$MJTzuY*C>E+228tp;)+VcV zeBuUQUXdD-z;>duW0W)cqIJ87tr(iI9*~E7RNiqD-aA`q_lJ360He6rjpT_kfLQE& z!gk99tmY1#28yKze2Wfa@srz$3eyqnlhI3 +h=Jng`eJz0I>^X>eWU#GxR6zxWdHI$rr&Wv@L z7(Z3}=FVVv&+tgRqC;Rjx5^!^9kY~$lGeTE(G19GU3mAxEs5@5EA2)ed~GEODmQh< zE>Y9e5cpeMpPG1Qmv08Hg*KSk;O! RTMx+pS gD8C5z;}f0-9J%Fvc;H*v~79cKbYizUP^ zneIjrU%{v$s!y0YCf#%ap!Y(-lzc7KdwHjwjHrHaUPMBAvs@z3e8yhk(EvtST;mJ& zTiZ(UNQO`sy=C(@eSK_7JEAeexOR91%*w7J?O?WlYN!R{4D+MnAKa|EsAS1{E?-`~ zi)*eP&;aty^>oH~Ph6tg59cC~Yq9`lpGnhe2Ng@SFw) SVF30uwb`dbK0siusl!-Kqc!EDv%@%t*a9oyD&CYhPmGMZ>xjiRv z)htx$il49ALaeL+SOKH0}Jo%FtZZpbG z4^imE@vKXQHQ<|lJ`_b$rQk@{Q2P+rJ&(X)Gyx2OadDB;w8lD2#9s4zlU6 %TW!m76Ohjyqo{>r%kg0LR*UZaOI zk~~(hIlQdt9DHC=9Pf!du0z$Xs;0-+ClvY@wbz0vZALgx$ZrpZkTL(aB2-r4qpa*c zMg%gIz3E!TE$pqiMb<;;xyh|XVrbbyH4kS}P8okkE6kd8;>#zDnbpo33eRBStg`)2 z?nUJO0P4#Z``G{}#w#&_23**n{H@sDq{;0 iOFa3dGs zN!3b$_RgSr47@rjm{kD5sg +Fypl