From 0d6fc00216c5ed80c876bfa68ba1e06682549cdc Mon Sep 17 00:00:00 2001
From: Manu Sporny
such as when a DID resolver is performing DID resolution.
However, the fully resolved DID document always contains a valid
id
property. The value of id
in the
-resolved DID document MUST match the DID that was
-resolved, or be populated with the equivalent canonical DID
-specified by the DID method, which SHOULD be used by the resolving
-party going forward.
-
A DID document can contain objects which have their own unique
From 83b7c0c578538a45c9ccce6e0ce15f7cd9739d3e Mon Sep 17 00:00:00 2001
From: Daniel Buchner
such as when a DID resolver is performing DID resolution.
However, the fully resolved DID document always contains a valid
id
property. The value of id
in the
-resolved DID document SHOULD match the DID that was
+resolved DID document MUST match the DID that was
resolved, or be populated by the DID method with another DID it
determines to be the equivalent canonical DID for the DID
that was resolved.
From 7cab8e9f66a9699c9d39e8a481ad299867ef4ea0 Mon Sep 17 00:00:00 2001
From: Daniel Buchner
However, the fully resolved DID document always contains a valid
id
property. The value of id
in the
resolved DID document MUST match the DID that was
-resolved, or be populated by the DID method with another DID it
-determines to be the equivalent canonical DID for the DID
+resolved, or be populated according to the DID method with another
+DID it specifies is the equivalent canonical DID for the DID
that was resolved.
id
property. The value of id
in the
resolved DID document MUST match the DID that was
-resolved, or be populated according to the DID method with another
-DID it specifies is the equivalent canonical DID for the DID
-that was resolved.
+resolved, or be populated with another DID the DID method
+specifies is the equivalent canonical DID that SHOULD be used by the
+resolving party going forward.
From 3ebceeac11c1d35d085d23f0591f8b760fcfe5ec Mon Sep 17 00:00:00 2001
From: Daniel Buchner
However, the fully resolved DID document always contains a valid
id
property. The value of id
in the
resolved DID document MUST match the DID that was
-resolved, or be populated with another DID the DID method
-specifies is the equivalent canonical DID that SHOULD be used by the
-resolving party going forward.
+resolved, or be populated with the equivalent canonical DID
+specified by the DID method, which SHOULD be used by the resolving
+party going forward.
From 3d919cb2aad6c616548c0922619a5995f75c1701 Mon Sep 17 00:00:00 2001
From: csuwildcat
However, the fully resolved DID document always contains a valid
id
property. The value of id
in the
resolved DID document MUST match the DID that was
-resolved, or be populated with the equivalent canonical DID
-specified by the DID method, which SHOULD be used by the resolving
-party going forward.
+resolved.
@@ -1441,6 +1439,53 @@
+ The deterministicSameAs
property is an array
+ of one or more DID URI strings that are verified by the DID Method
+ to be deterministically equivalent variants of the DID in the
+ id
property. The resolving party MUST treat the DIDs in the
+ id
property and deterministicSameAs
array
+ as references to the same logical ID, thus the resolving party MUST retain
+ the DID URIs from the id
and deterministicSameAs
+ properties to ensure any subsequent interactions with them are correctly
+ handled in relation to the DID Subject. (e.g. retain all variants in
+ a database relationship so a login with any one of them maps back to the
+ same UUID row for the DID Subject)
+
+ DID documents MAY include the deterministicSameAs
property.
+
deterministicSameAs
MUST be a
+ list where each item in the list is a
+ URI conforming to [[RFC3986]].
+
+ Unlike a purely self-declared statement of equivalence,
+ deterministicSameAs
only expresses variants of the
+ resolved identifier the resolving Method can ensure are deterministically
+ equivalent, such that a requesting party is able to rely on the veracity
+ of the statement to the same degree it trusts the resolving Method.
+
Unlike a purely self-declared statement of equivalence,
deterministicSameAs
only expresses variants of the
From eace50cb076d1c0ad0f639b30c828107a2373277 Mon Sep 17 00:00:00 2001
From: csuwildcat deterministicSameAs
a database relationship so a login with any one of them maps back to the
same UUID row for the DID Subject)
DID documents MAY include the deterministicSameAs
property.
- The deterministicSameAs
property is an array
- of one or more DID URI strings that are verified by the DID Method
- to be deterministically equivalent variants of the DID in the
- id
property. The resolving party MUST treat the DIDs in the
- id
property and deterministicSameAs
array
- as references to the same logical ID, thus the resolving party MUST retain
- the DID URIs from the id
and deterministicSameAs
- properties to ensure any subsequent interactions with them are correctly
- handled in relation to the DID Subject. (e.g. retain all variants in
- a database relationship so a login with any one of them maps back to the
- same UUID row for the DID Subject)
+ The canonicalId
property is an single DID URI string
+ value that MUST be from the same DID Method as the resolved
+ identifier, and MUST be guaranteed by the DID Method to be an exactly
+ equivalent variant of the DID in the id
property. The resolving
+ party MUST treat the DID URI in the id
property and the DID URI
+ in the canonicalId
array as references to the same logical
+ ID. The resolving party MAY retain the DID URI from the id
property
+ to ensure any subsequent interactions across them are correctly handled as
+ exactly equivalent variants of the same logical ID. (e.g. retain all
+ variants in a database so an interaction with any one of them maps to the
+ same UUID row), but MUST update held references and other interfaces to
+ reflect the exactly equivalent DID URI variant present in the
+ canonicalId
property.
- DID documents MAY include the deterministicSameAs
property.
+ DID Documents MAY include the canonicalId
property.
+ If included, DID Methods MUST only populate the property with a DID URI
+ from their own DID Method, and MUST guarentee the DID URI populated is
+ an exactly equivalent variant of the DID being resolved.
deterministicSameAs
MUST be a
- list where each item in the list is a
- URI conforming to [[RFC3986]].
+ The value of canonicalId
MUST be a string
+ that is a URI conforming to [[RFC3986]].
- Unlike a purely self-declared statement of equivalence,
- deterministicSameAs
only expresses variants of the
- resolved identifier the resolving Method can ensure are deterministically
- equivalent, such that a requesting party is able to rely on the veracity
- of the statement to the same degree it trusts the resolving Method.
+ Unlike a purely self-declared statement of equivalence asserted by the Subject,
+ canonicalId
MUST only expresses a DID URI from the same
+ DID Method that is guarenteed by the DID Method to be an exactly
+ equivalent variant of the resolved identifier, which the requesting party is
+ subsequently able to trust to the same degree it trusts the resolving DID Method.
+
+ The sameAs
property is an array
+ of one or more DID URIs that MUST be from the same DID Method
+ as the resolved identifier, and MUST be guaranteed by the DID Method
+ to be exactly equivalent variants of the DID in the id
+ property. The resolving party MUST treat the DID in the id
+ property and those in the sameAs
array as references
+ to the same logical ID. The resolving party SHOULD retain the DID URIs
+ from the id
and sameAs
properties to
+ ensure any subsequent interactions across them are correctly handled as
+ exactly equivalent variants of the same logical ID. (e.g. retain all
+ variants in a database so an interaction with any one of them maps to the
+ same UUID row)
+
+ DID Documents MAY include the sameAs
property.
+ If included, DID Methods MUST only populate the array with DID URIs from
+ their own DID Method, and MUST guarentee all DID URIs populated are
+ exactly equivalent variants of the DID being resolved.
+
sameAs
MUST be a list
+ where each item in the list is a URI conforming to [[RFC3986]].
+
+ Unlike a purely self-declared statement of equivalence asserted by the Subject,
+ sameAs
MUST only expresses DID URIs from the same
+ DID Method that are guarenteed by the DID Method to be exactly
+ equivalent variants of the resolved identifier, which the requesting party is
+ subsequently able to trust to the same degree it trusts the resolving DID Method.
- The canonicalId
property is an single DID URI string
- value that MUST be from the same DID Method as the resolved
- identifier, and MUST be guaranteed by the DID Method to be an exactly
- equivalent variant of the DID in the id
property. The resolving
- party MUST treat the DID URI in the id
property and the DID URI
- in the canonicalId
array as references to the same logical
- ID. The resolving party MAY retain the DID URI from the id
property
- to ensure any subsequent interactions across them are correctly handled as
- exactly equivalent variants of the same logical ID. (e.g. retain all
- variants in a database so an interaction with any one of them maps to the
- same UUID row), but MUST update held references and other interfaces to
- reflect the exactly equivalent DID URI variant present in the
- canonicalId
property.
-
- DID Documents MAY include the canonicalId
property.
- If included, DID Methods MUST only populate the property with a DID URI
- from their own DID Method, and MUST guarentee the DID URI populated is
- an exactly equivalent variant of the DID being resolved.
+ A DID Method can define different forms of a DID that are
+ logically equivalent. An example is when a DID takes one form prior
+ to registration in a verifiable data registry and another form after
+ such registration. In this case, the DID Method specification
+ may need to express one or more DIDs that are logically equivalent to
+ the resolved DID as a property of the DID document. This is the
+ purpose of the sameAs property.
canonicalId
MUST be a string
- that is a URI conforming to [[RFC3986]].
+ The value of sameAs
MUST be a
+ list where each item in the list
+ is a DID conforming to the requirements in Section 3.1.
sameAs
+ DID value is logically equivalent to the id
property DID
+ value and thus identifies the same DID subject.
+ sameAs
DID value MUST be produced by the same
+ DID method as the id
property DID value.
+ sameAs
DID value is logically equivalent to the
+ id
property DID value.
+ id
and
+ sameAs
properties to ensure any subsequent
+ interactions with any of the DIDs they contain are correctly handled
+ as logically equivalent DIDs (e.g. retain all variants in a database so an
+ interaction with any one maps to the same underlying account).
- Unlike a purely self-declared statement of equivalence asserted by the Subject,
- canonicalId
MUST only expresses a DID URI from the same
- DID Method that is guarenteed by the DID Method to be an exactly
- equivalent variant of the resolved identifier, which the requesting party is
- subsequently able to trust to the same degree it trusts the resolving DID Method.
+ sameAs
was chosen as the name for this property because
+ from a graph modeling standpoint the intended semantics are identical to
+ the owl:sameAs
property. sameAs
is a much
+ stronger form of equivalence than alsoKnownAs
because the
+ equivalence MUST be guaranteed by the governing DID method. sameAs
+ represents a full graph merge because the same DID document describes both
+ the sameAs
DID and the id
property DID.
- The sameAs
property is an array
- of one or more DID URIs that MUST be from the same DID Method
- as the resolved identifier, and MUST be guaranteed by the DID Method
- to be exactly equivalent variants of the DID in the id
- property. The resolving party MUST treat the DID in the id
- property and those in the sameAs
array as references
- to the same logical ID. The resolving party SHOULD retain the DID URIs
- from the id
and sameAs
properties to
- ensure any subsequent interactions across them are correctly handled as
- exactly equivalent variants of the same logical ID. (e.g. retain all
- variants in a database so an interaction with any one of them maps to the
- same UUID row)
-
- DID Documents MAY include the sameAs
property.
- If included, DID Methods MUST only populate the array with DID URIs from
- their own DID Method, and MUST guarentee all DID URIs populated are
- exactly equivalent variants of the DID being resolved.
+ The canonicalID
property is identical to the
+ sameAs
property except: a) it accepts only a single
+ DID as its value, and b) that DID is defined to be the canonical DID
+ for the DID subject within the scope of the containing DID document.
sameAs
MUST be a list
- where each item in the list is a URI conforming to [[RFC3986]].
+ The value of canonicalID
MUST be a DID conforming to the
+ requirements in Section 3.1.
canonicalID
DID
+ value is logically equivalent to the id
property DID value and
+ that the canonicalID
DID value is defined by the
+ DID Method to be the canonical DID for the DID subject in the scope
+ of the containing DID document.
+ canonicalID
DID value MUST be produced by the same
+ DID Method as the id
property DID value.
+ canonicalID
DID value is logically equivalent to the
+ id
property DID value.
+ canonicalID
DID value
+ as its primary ID value for the DID subject and treat all other equivalent
+ DIDs as secondary aliases. (e.g. update corresponding primary references in
+ their systems to reflect the new canonical ID directive).
- Unlike a purely self-declared statement of equivalence asserted by the Subject,
- sameAs
MUST only expresses DID URIs from the same
- DID Method that are guarenteed by the DID Method to be exactly
- equivalent variants of the resolved identifier, which the requesting party is
- subsequently able to trust to the same degree it trusts the resolving DID Method.
+ canonicalID
is the same statement of equivalence as
+ sameAs
except it is constrained to a single value that
+ is defined to be canonical for the DID subject in the scope of the DID
+ document. Like sameAs
, canonicalID
+ represents a full graph merge because the same DID document describes both
+ the canonicalID
DID and the id
property DID.
+ The three equivalence properties defined in Core Properties
+ —alsoKnownAs
, sameAs
, and
+ canonicalID
—are subject to special security
+ considerations related to attacks against DIDs that are asserted to be
+ equivalent. Each of the equivalence property sections describes relevant
+ mitigation instructions. In general, they are:
+
+ The sameAs
and canonicalID
properties
+ that constrain equivalence assertions to variants of a single DID produced by
+ the same DID method (e.g. did:foo:123
≡ did:foo:hash(123)
)
+ can be trusted to the extent the resolving party trusts the DID method (and a
+ conforming producer) itself.
+
+ The alsoKnownAs
property that permits an equivalence assertion
+ to URIs that are not governed by the same DID method (or may not be DIDs at
+ all) cannot be trusted without performing verification steps outside of the governing
+ DID method. See Section 5.1.1 for the recommendation to verify inverse relationships.
+
+ As with any other sensitive properties in the DID Document (e.g. public key references), + parties relying on any equivalence statement in a DID Document should guard against the + values of these properties being substituted by an attacker after the proper verification + has been performed. Any write access to a DID document stored in memory or disk after + verification has been performed is an attack vector that will circumvent verification + unless the DID document is re-verified. +
+ +id
property DID value.
id
and
+ A resolving party MUST retain the DIDs from the id
and
sameAs
properties to ensure any subsequent
interactions with any of the DIDs they contain are correctly handled
as logically equivalent DIDs (e.g. retain all variants in a database so an
@@ -1528,7 +1528,7 @@ id
property DID value.
canonicalID
DID value
+ A resolving party MUST use the canonicalID
DID value
as its primary ID value for the DID subject and treat all other equivalent
DIDs as secondary aliases. (e.g. update corresponding primary references in
their systems to reflect the new canonical ID directive).
From 44488d3f6de2e0d1360077018cc8171ecf06faa0 Mon Sep 17 00:00:00 2001
From: csuwildcat - A DID Method can define different forms of a DID that are - logically equivalent. An example is when a DID takes one form prior - to registration in a verifiable data registry and another form after - such registration. In this case, the DID Method specification - may need to express one or more DIDs that are logically equivalent to - the resolved DID as a property of the DID document. This is the - purpose of the sameAs property. -
- -sameAs
MUST be a
- list where each item in the list
- is a DID conforming to the requirements in Section 3.1.
- sameAs
- DID value is logically equivalent to the id
property DID
- value and thus identifies the same DID subject.
- sameAs
DID value MUST be produced by the same
- DID method as the id
property DID value.
- sameAs
DID value is logically equivalent to the
- id
property DID value.
- id
and
- sameAs
properties to ensure any subsequent
- interactions with any of the DIDs they contain are correctly handled
- as logically equivalent DIDs (e.g. retain all variants in a database so an
- interaction with any one maps to the same underlying account).
-
- sameAs
was chosen as the name for this property because
- from a graph modeling standpoint the intended semantics are identical to
- the owl:sameAs
property. sameAs
is a much
- stronger form of equivalence than alsoKnownAs
because the
- equivalence MUST be guaranteed by the governing DID method. sameAs
- represents a full graph merge because the same DID document describes both
- the sameAs
DID and the id
property DID.
-
- The canonicalID
property is identical to the
- sameAs
property except: a) it accepts only a single
- DID as its value, and b) that DID is defined to be the canonical DID
- for the DID subject within the scope of the containing DID document.
-
canonicalID
MUST be a DID conforming to the
- requirements in Section 3.1.
- canonicalID
DID
- value is logically equivalent to the id
property DID value and
- that the canonicalID
DID value is defined by the
- DID Method to be the canonical DID for the DID subject in the scope
- of the containing DID document.
- canonicalID
DID value MUST be produced by the same
- DID Method as the id
property DID value.
- canonicalID
DID value is logically equivalent to the
- id
property DID value.
- canonicalID
DID value
- as its primary ID value for the DID subject and treat all other equivalent
- DIDs as secondary aliases. (e.g. update corresponding primary references in
- their systems to reflect the new canonical ID directive).
-
- canonicalID
is the same statement of equivalence as
- sameAs
except it is constrained to a single value that
- is defined to be canonical for the DID subject in the scope of the DID
- document. Like sameAs
, canonicalID
- represents a full graph merge because the same DID document describes both
- the canonicalID
DID and the id
property DID.
-
DID document metadata SHOULD include a created
property
to indicate the timestamp of the Create operation.
This property MAY not be supported by a given DID method.
@@ -3706,18 +3598,128 @@
DID document metadata SHOULD include an updated
property
to indicate the timestamp of the last Update operation.
This property MAY not be supported by a given DID method.
The value of the property MUST follow the same formatting rules as the
created
property.
-
-
+
+ A DID Method can define different forms of a DID that are
+ logically equivalent. An example is when a DID takes one form prior
+ to registration in a verifiable data registry and another form after
+ such registration. In this case, the DID Method specification
+ may need to express one or more DIDs that are logically equivalent to
+ the resolved DID as a property of the DID document. This is the
+ purpose of the equivalentId
property.
+
equivalentId
MUST be a
+ list where each item in the list
+ is a string that conforms to the rules in Section .
+ equivalentId
+ value is logically equivalent to the id
property
+ value and thus identifies the same DID subject.
+ equivalentId
DID value MUST be produced by, and a form of,
+ the same DID Method as the id
property value.
+ (e.g. did:example:abc
== did:example:ABC
)
+ equivalentId
value is logically equivalent to the
+ id
property value.
+ id
and
+ equivalentId
properties to ensure any subsequent
+ interactions with any of the values they contain are correctly handled
+ as logically equivalent (e.g. retain all variants in a database so an
+ interaction with any one maps to the same underlying account).
+
+ equivalentId
is a much stronger form of equivalence than
+ alsoKnownAs
because the equivalence MUST be guaranteed by
+ the governing DID method. equivalentId
represents a full
+ graph merge because the same DID document describes both the
+ equivalentId
DID and the id
property DID.
+
+ The canonicalId
property is identical to the
+ equivalentId
property except: a) it accepts only a single
+ value rather than a list, and b) that DID is defined to be the canonical ID
+ for the DID subject within the scope of the containing DID document.
+
canonicalId
MUST be a string that conforms to the rules in Section .
+ canonicalId
+ value is logically equivalent to the id
property value and
+ that the canonicalId
value is defined by the
+ DID Method to be the canonical ID for the DID subject in the scope
+ of the containing DID document.
+ canonicalId
value MUST be produced by, and a form of,
+ the same DID Method as the id
property value.
+ (e.g. did:example:abc
== did:example:ABC
)
+ canonicalId
value is logically equivalent to the
+ id
property value.
+ canonicalId
value
+ as its primary ID value for the DID subject and treat all other equivalent
+ values as secondary aliases. (e.g. update corresponding primary references in
+ their systems to reflect the new canonical ID directive).
+
+ canonicalId
is the same statement of equivalence as
+ equivalentId
except it is constrained to a single value that
+ is defined to be canonical for the DID subject in the scope of the DID
+ document. Like equivalentId
, canonicalId
+ represents a full graph merge because the same DID document describes both
+ the canonicalId
DID and the id
property DID.
+
The three equivalence properties defined in Core Properties
- —alsoKnownAs
, sameAs
, and
- canonicalID
—are subject to special security
- considerations related to attacks against DIDs that are asserted to be
- equivalent. Each of the equivalence property sections describes relevant
+ —alsoKnownAs
, equivalentId
, and
+ canonicalId
—are subject to special security
+ considerations related to attacks against DIDs that are asserted to be
+ equivalent. Each of the equivalence property sections describes relevant
mitigation instructions. In general, they are:
- The sameAs
and canonicalID
properties
- that constrain equivalence assertions to variants of a single DID produced by
- the same DID method (e.g. did:foo:123
≡ did:foo:hash(123)
)
- can be trusted to the extent the resolving party trusts the DID method (and a
+ The equivalentId
and canonicalId
properties
+ that constrain equivalence assertions to variants of a single DID produced by
+ the same DID method (e.g. did:foo:123
≡ did:foo:hash(123)
)
+ can be trusted to the extent the resolving party trusts the DID method (and a
conforming producer) itself.
- The alsoKnownAs
property that permits an equivalence assertion
- to URIs that are not governed by the same DID method (or may not be DIDs at
- all) cannot be trusted without performing verification steps outside of the governing
+ The alsoKnownAs
property that permits an equivalence assertion
+ to URIs that are not governed by the same DID method (or may not be DIDs at
+ all) cannot be trusted without performing verification steps outside of the governing
DID method. See Section 5.1.1 for the recommendation to verify inverse relationships.
- As with any other sensitive properties in the DID Document (e.g. public key references), - parties relying on any equivalence statement in a DID Document should guard against the - values of these properties being substituted by an attacker after the proper verification - has been performed. Any write access to a DID document stored in memory or disk after - verification has been performed is an attack vector that will circumvent verification + As with any other sensitive properties in the DID Document (e.g. public key references), + parties relying on any equivalence statement in a DID Document should guard against the + values of these properties being substituted by an attacker after the proper verification + has been performed. Any write access to a DID document stored in memory or disk after + verification has been performed is an attack vector that will circumvent verification unless the DID document is re-verified.
From 8888c8b8c0f7c6cb6655e2eff467e1dfda26c284 Mon Sep 17 00:00:00 2001 From: Daniel BuchnerequivalentId
properties to ensure any subsequent
interactions with any of the values they contain are correctly handled
as logically equivalent (e.g. retain all variants in a database so an
- interaction with any one maps to the same underlying account).
+ interaction with any one maps to the same underlying account). The testability of
+ resolving parties is currently under debate and normative statements related to resolving parties
+ may be downgraded in the future from a MUST to a SHOULD/MAY or similar language.
@@ -3704,7 +3705,9 @@ canonicalId
value
as its primary ID value for the DID subject and treat all other equivalent
values as secondary aliases. (e.g. update corresponding primary references in
- their systems to reflect the new canonical ID directive).
+ their systems to reflect the new canonical ID directive). The testability of
+ resolving parties is currently under debate and normative statements related to resolving parties
+ may be downgraded in the future from a MUST to a SHOULD/MAY or similar language.
From 48995a4b762a14e7e74048c9b84461b2282d5d1e Mon Sep 17 00:00:00 2001
From: Ted Thibodeau Jr
-Note that the value of the @context
object member will be ignored, if present. That is, this field will not have additional processing applied to its value and will be added verbatim to the abstract data model.
+Note that the @context
object member, if present, will not have
+additional processing applied to its value, which will be added verbatim to the
+abstract data model.
<={{`Jw0u{{r}jei3+%@kvZE#dHWO< zHjCVaWo5NNKH5aLCU@`u+SUc|1^H79K}Nz;QO}3|>|E#;7BRxi9Q830psS7jV-C>G zAVw=vNzTrm{+CCEDkDr3>Qvd%adc$=7$>xt5+`#GgOE`1e;sQ#1=O(;jE0rc{Exqk zhC1tz&!6f3i1&{ebBdq0yVYa=^(#-s{qXbos1a%DEX<_ z1Qz#}l6nLAFPCk0yY2fwRF^8UH`UnC#Gi6CHB`|0mc$rI$g2{SY?(ww65=zSa)R z97m^!SE5sGLD@& >D#X6;aSFi(>>%X&fafjtF8;))|Y?KqaT7?tF z6ZC|9VKeUS?~kFrkL055DwEq^?3fDX9!cY$eT~u~Y_q`0cRnT_$j6m6MAJMfr2kd` zx;@zKS4FOOa-!~ngwjW#&Tg}I(Ke3Qww^K%!|LJg+VOONZU`Ejwz_c?za(>*_f`uw z^Zw-xg4-{_zAT93UiKncQ6Bg#`iwbJ5wS%@MR~fkjN1tb3BcXLf&%+}X=6G(ZPqoW zTh}FrkR_*4K~X{SdPp~W$Efvsci0N;-Swz%0t_62+hv33A2SXU%Pc8*tH6K284|51 zC-+^qpw4=J9aQK4jI0wVC@7d$=W^16uVY8C+UV3z8PeTdM2^aoG?s85&!90Fh#|Cd zwF(XQIuDv=fWE!*HroqcB@2z?A; Q8LnAS>$t2}xkqvz!hld#xM7 zTJd7L-S6^al@Eb9T=I? z=C8%Na?n+7qJGux@Zex9Ls@<2P3MyD<9(IawWC!98$u$d-OAGI@JF#0#G|l?rS|qD zWE|T5{rT_D%5zvX5duxnh41Y7b_;UuET3Qa+`WE}@L!dPEMc|t%6bCVf^bOS95H}9 z6z&@lJo}O*2VkFD`4yjAn~oG1XZTFelONpTwp(Ew6}(KfUaXbR3?AV>Y6b?Ds%mHq zU7c)f#VHD5rJA4jhhkCRIg@*xE0tAMDK|R*qDnOIX~-B6r*6H6=p+L{MY&Gz=$t8c z1)%^dSFKom#pTA<3#!GLhA~r}I@_8Rd%uC>wXRZ6WJ%PUndNWZ5*xDJs=B(L>BS o)pcM8m64Js*m4BoB+095Mz?g>!*6ejI&Hf<4OinPx%9g^N8N6zy?^kE%8GW$ zTT0`1b*b)Kf}6qDbB-Y%?M)A8A;0BYqW!No4Yh+M>KM&JoT@r{xW5DwTc3j;A6)y~ z4SerwHb_VVfAN;-ldNpG$j79l>>YyJ+Hy+9X}Uf>cPfr*y%exc^||>KSw++`?x4%` zU`uMSN^iW|)o9!oc?k6qOAhER+_pRpa$+l7=d5bt= z0(u_5av>!ib%qCRP*ewXad{(-1kSK>AX!=2cJ`fy!g^4%9_us1AANqfQ%8;sZ(Y)? zz&uEK6pS}J^9ykf(kOj`b9*)x#N`{T^#qhPyKgGi!Cq%SK%@ybhxsFMZhs>8A<}-! zzo})SlMt8f#<+Zvtwhdc&NAN22eo6Nj0>^%J)|t;!G4SyiA@Fs?HHWDB#%bP=`Gm!& z`+A7fGjdEud%_}?H7@l_(n?E*jJ4K~n=+e7(Qd20iG?1DlqaAvQ*OYrgL_cfN0yh= zeB6n;g3QvKEJWOTx#5)5^lylAP*@G6j 2hi$A`vcRH5#1@1rH_ zFGI*Y`W G)QdJi15lNbJ9{1jB}Luwn?F|3U9g;y ziSu3TosvO7PU9V %?0U?{jNZXiuI#>vrfh*dwJ1^8^nrb%QzZmC1 zm;t6 )v0r_05tUm zd}KfD` 3CLm*psv#O(Jw@^JWVGY@fBIX& EC zF4mS_)<+(llTD&W@sQ6#SH--guL9=&n-X=4dxxdy5whW&jOLIKg3z1_eYwzZ5DG8( zxF>VdKD(z{LayF@RkQo9uln{Ly#$ ^kx`NIBy(3|CS@_lZ`RX0?_lAG75r7B(S z7#-Em;2aKQh0hZt$<@6XE%F5oDV#D@XYb)(4+;DiP558Y0_xH-d~OCD?U1J?ri(R( zVx-AFNbVpzH@|WRejFo8wG#6%I%ZrdK0wyT>!4{G`8Adm_yV`bB9+|ds)K0EYFCNe z+aDDxc6m~QU(jb(c)y|xUdhiW8Jn93W65P78OQut93~11b+P>Ja#J0+q;ZFLH6GLJ zdo(6Fo{vT7{zl3|o!wEtm;{AqXXsHLjl}uMMHuR(ApE3I&_os8Ed!Hh>wK?Ov&gG4 zsOWuvMDL~mToMkahg 8SZEvS2aNpx|v#)n_So(YM1j zUKgnYb>-fm_ AUoK`c8?@p4oCH0e~cJRD=g!J<%us@f}MILRP4ECk( zdbC%hFUB3YLyX5)AU1NGhaHz+>y}+oNZeNaVeClDfYRjN&h5s-|DseGTi7H!B!}|@ zb(fvj!x8WitHilu_1!^%D7x1B1G8{lKEu{sAYz+ 8%^&2H#20}?Y@1YKOM#kbw^%n(taeuS>86!Sv z(@UZUQx5Zyb9Mg}9X&fhb1+dQR#DB8F6_8lwl{`Z0P7@zZd(?TSRUi-zaC;h8i41e z`JK|o8;5qNimsk7<;1(SZ}l=VIzc9h2DNwbJ$5s26&S>WLfaACpT2)Hl5Pi _61uRFea|9vaUdtS4YS{qK^ll;3wQYeKZ-fb`8iAzF1OdRLj*J(pIBilV4o-| zL+2R)7V?OT61pkilH@?Bq&j>B1ONvYh{Yz+Nm}aVm>atJ$6(=nr6Wmxg|?N)`0OWs zIOjI|T0@t{+3E2t2tC|RaY~ } zf@g&u*in$`dDy^iI*5DJERlrzYdxIBWvOPFxP6u?k~N+HEqo+UimQ4Bg;$}>7||H! zBN`! D9WqYB isd!_oVK*8#bq?TpKy9CI)cp&erXR9~0 z^5r}5eVW^PSR^Dcd4%bGaLWWs3N>SVYuOn$PtxrP-p@aPNDR}jtjdbex;TD`Me+XU za)vh~`7(Wq>PQ{z(dO6+O1^J28{_KR)6TH(L|(Bn65r->)Kw|nUD*(Ry!)QP-Tk?p zF3maic1lGNR4f-;_rv8!UOIIoP+rID;+sdJ<}8Xjss}ON$B3YseTKIThU{=JvdrpM zYTSPWk>PpdKvdP#Uhae~AYL1(uRvjGFHw*o%i`RD;N{ZfS5?Zf>kc%E$_)H)Pmw4> zN*;MwjtFuFAdCM_;v5^5AQ4==Jb(QkfFcCb)byzVcz5bODg1b?I5gC`+4Wp!V DVRn)r;=M1}-kHnN_6o-s83Qb~NzZWvflE2wJG-l~I-eeDQtPwhq~e=D1T& z<` v{I#OB9EwbT^8bE5~3D;aZ&yC|4sQfZa|)#ZMbQZeTFJI&m`hrWWeP zDc- #PCE!_?u8<+6io(4oRA0p?UG# =pVuH;mXwcAmxx0bHk(?j;P!QIdH>>58nlDlHe1yT_H#@dV<40(3Xd?J{ zclHcHi^du0tw}FX@og*|GO-7T?A00f(-E119Uk*Vab$8y3x0Q0y3|+|UYz@cER}H| z)mZhwiNR<_o662cL90^yGt|2w$*SiM8pgkmgjZO8h+>(c0tC19#ovN1=fP@ZxJPkM zF;I*uvpkbH-kJ65`7dh6?X>KNPZ33(p2`B%9g74{bnX5p_|GrFK1cRL4I7dC`&zOs z@|77=QHeai`P2vsK#cF@a(31$A_vDLg|HCrpkL~m&!LO8kK}x~q;+$#XMVk4>_u}2 z$yZ3zHh1oxtKoFi$Rk$VoU1Z>f-s>hut~Z<8~0cxb3+yM$~oFXy-tF6cIw*?f`}s( z5~!s~u&&&U9XGO`M||KJrGyeEGO$P#MhF19&F4W`
xL4EqWdV>{D$Wu zUPB _$=Ju<>Xhv#I!Gh{JCj&3K!}$+ FGw z5}u(vMOi3u +A1+enN>Q;|HWU!0#cbVV9e3 zd8G2cB*rt`pHau-Kn0y@snq}d@`-GshuhxzXM7WLL|gq2A6D;VHhaa1sT>SSelNR` z2$Wqz7;~5X-9`tNkIz3vT@{yC7`p+gB$*}ry(f&~Pk@;@7X{<2|C_K|PiWtr_D`9q zGX4MSjX@pWR-3cO2Ra4TXFq?dtP=~G(Wsa1MR=kFMS_r2RiD<`cgtoWwAyAbgFGzN z%|e{!FdX!|_Gc*T)`uj(BKM?x2kF(qd <}XvPi1_TQwW$S`vARklo<4;3-b z4NtBLUCi0Y*(iqVlh&6myKjDL4;|@Sk0|lne|S583(O=o@y(i9iPsF03Cu6FDnv|H z1V$Un_Q0S-88b6IY4Oo0sQIs0rvIjTkmaBnHY6t{R(P5NCHB=CA{Jvuo>Gnka|`F( zL`Qsh2siw!a>7%F$Nw9Yza*!Na`0A49@f*RS1~V-2J_&_DQT5{nf@l1S1hKitV|=! zFA1y}h@XsH7_vMOT1H*}wq*?s<{}eV7Av}&GdhBDCAQ3D3z)^8+aM^$A(97pSdLUN zogSpdU+fmDARZJtAnH~z?7aGPFXfxs>9oE*IorP&w>{L@sjSsz(uiAX@KQ&8Bw->O zq^w@8Uv;*qg+Dl8$1=~fFtB;_z}P@~8N2khF4ca_*70FguyYb~2D${%y6|7QQ15+| zRV0}kBsLG5Bp2KtAVK ^C*OQh8~gX1z9pWUcg(NfmC$0#gaHi%qobILRt zrhXdx_vIh-Qbh2@O^#fPoXSrA$>(=SnTQ^XavW5&=khwMvuz%SCi7pK+Nxjm$B~gb z{-FE=gk>na;1BD?zuD-FVz+AVm4 g_#>k$Y73WZ| zH>zlS$DB7``BJylo8MMmjCA%d8kfoZ0FSw`Ra%!#byJv6^jH8@ |lxeJT zm>)(M`q%{Ux|%K5X0(9&y% 4br}`2grCO=1j?DqwM6wgKLW^;5NBzJEsl#s?-dDEdVxc)f>G^_{d5^$plZ zXY+hgl9j K^Ob#9fTT}*6juUh+eA{v0d z9o|{v+mM%9?wBXMX5Gy#9Ph!s4l2E^rSot9*+bFI@Vl7z|MVx7NTc1f(b!_j^$XVE z+U-r)jxnC%-L6$Q*7dYDQaIM`mD9T#Y7DE*4b((Sov}r3)W|Hf-L3{muGHlZqthRt z15yO0f2}-BwmsD6>fFF3SyeT+J1xCPk{E|kX`gNm&g!kx_(_4w*-HiExo1x3-P}RE z@Pc@8uR%Ft_$5Oi|LAg-WQBl2RI5pMR#Ny$Le^PMQb5Vcc1UNNP^W;@f6&DxyrYw3 z?`N!rN1sCZj&g%Lnw>%vSF<}#`u>D>FbK%6zZlIIs>P;(nQc9CEaW^;HYrrTA&HnQ z1`CzJ#Y72s4OEa?iy^{vl5QKOWrfRvE=C-@sUdKn*Zb}e8x@xSp5-xBU@@;}_2?WY z<*Ar-wB^I31%tU?YG= A!@m|O#9GdUO zW-XSHmLm*396d^m@QPbbPUgC-iNzRp5qa5S9#2D0--kN3F{&+O$_pKc;X36 fD za)VqT<61c9YHA|$# FLe2t~0W%t#+ zsB^wW^3Mfi`Y~gz7EigzhZCpVT&+XV+}i`XUqgv s=a`cHsqrCE?ai&8w-aRM| zzo=C5JrtelY?*4LNhlqsl$7}`qU&!UHQmAs@4MUTSb3h{2K35ghP@%4{q`l1&helI zU9Q#6`|r&meSXB8aW3?3X81t>wkAa1)TgN|fSXM+63`8la7j3bGWht(ml1Ou^KyQE zKA~MvBU}(tnW^#~L9t17Rl{ YLQm(V~>s9ruaqJ!+`1CoUrWZ0zf{-YY9}&ga zHlis>RN{aD0weNHGGrsNS8Anq3GsS$4kU7U+E>NrOn#O7U5!!CI?1*i1f-v}6{2pZ zD2Uq>t1D;w($sxGYgg^Jw%-$u+s! r z)eMa$K%VhU6nXkSK@<2gOs{wgxP>QOfAqt;#r%m0mTD&Uk1Ad#z|(w)Xs;`mANpJ$ za?BI3;tc n}LX zZO6O_&2R1xzA5%D% z^6o3~>gMhU@P4f^d%W$SZ#X!?vn(Gw}Q&bhGq z;X=de)fi~N4@S9+G_;!3j@YsFVS!V!>vrnR;3Zfm{O+P$c`+ws>fw5niY}d=`Qp~~ zSIw9L<3Ap`iNK$<%@ni(!jWigQP_ROAJJ>0vd (_W2|RP~n*Kie=4LxXF5Ip)=I1U%MWblJ*SB!OiB$?P3u?J7tDinSn&Ej?Ftn7R zHLHg44=Rcc0!Tbu%!XSK?0iI6`RLd;rIIy +wxR6rr>Lu?_Hg-YD#Ojcom8<9Ao z!!}TC XrfrY4?(-XYd{KM@Zr12lrgatN5O0fWvAhNUjX|S61cGPfel|IOyMTj+Zpgq zNOI$`E{#hL$^(YC&-zYFlgp+zo@R2yJPgoH?58^2v1$i;veb)6L^Y^d5RFH1sZb*q z?0wmB!UXkUM+~akb!NB>ixuM3Y6TFTF?3TI8r4@CKMU-aq!x6aJZcLUS+atsxAQoa zO|xxOHaXOd8DhraI~F;jd}2zv3H`g!aR>!?_Y>|K57`quESDleUOH#uK#x5_YKFrZ zP1)}rZti$aw{Q}rz0~!n&o6~sio9B{LCJ3W<`bpYwua5b>hbjO6ss}&R@8R~mw=Oq z5x|l+>zYQP)P4t%5m*AyNeuI)qaJ_;Z#$kHyjjSFc-sKf(ww Ymq(`c9iC*{rBf;)U*OU)!b=`@AIz)LCyjZdjAUte4gygo1Y4f{;i@?D?~8m-pD z{aTl&HM*2+R2a{v?(wazP7lLKTT^WXl&+H2#ZP^yF=iPAsX2tb*p2XfppzvMkkr>c zz=Eao<(tC3(@SxU>P$PuK9OigvivT!NCAm>30_gBZm;By@uqmF6gf72&LF%Su!zBU zQ-Db7SK3F;@&fn^AK}u7))2foVO*#v_%d7WWyu84ilr>j#4hE?eF;P4{f)EY&(>Q6 z-kmtp!NXQhlVBm{Vp5@GUZqX)N6dx|baQbiv`|W9=DXfZyS8VV;1N@wI3dfX)Gw_z z4BRda_Nm3Z2z%lcBatPvb^;~9w%3jiO1FD<^BnAZIsJQux6CBb$71A5^bk=>ltSMq zb;qMz=|SO1D^m~Akc!*mx?gM}=)6bZs_n|St*z-Ox1*iQ2` +%IV;a9WCUOEb2X-J(v z@Y#`h;N^K(=}ot_eL1R4F|o{t*>22}$Kfey#0>mu?+td*LcGcd@f%5H1R{TpclL7* z90 f-40JeZ$! Em73G0N_1LMsjGV&EEw~oz4)YxIzGBIk z&F2B408?Q|zD4oCz?t_*zWcS(u^)3ldB{d1Ewi{-3Nqk_8kWaIbU2w?Cc5)(wRu=6 zr@Q98|5PM2fnT>oRpt*zdQhRT?#qu%a1v>s-}-Q4pVOHwz*LvSP>##C1 pnlYvIT)L+Zp&;)iU2y=&-!ivquNtL kOCkw3onWxSKc^A@Hw8OMkL z?~P%pGx`QyaVohc;IZJ R}(#`3cu*Mpt~?siWKM zXh9TuAQ)@%zI7=tZ*#cyf45(NcQ+D8H{=m93eFZs1TBvwphcWczFqd+FZ{WaldJAs zt=C7kcd?hB3zphB^2N9EW1!lb+ZM0CbHsX{yeo4&2|n3pJSnv^D1p!NzC9p=u@e>r zSNGR}Kan^`)6HH@=H$EwKF<@NvMbSC3ri2|=et?D$3|GOG*>+58=?$xgXbIUaD6N) zzWcQI4U=m3@a5Ip)#j!nypDUSQZ4ELt<>$|ll{fVkYWrVl8l=Ut8>9)3ng%BuiSI+ z*cTd3>R R!U@ky*hdp`##V}_#*}u^^iHsGNYYhI?Eo4 zoXLGG;c4H`@?5WZ?pI8@N2J3kXDx?Rif+Y|#ooQIGR4`{bBR=SSR z@$7WI1^9+qGlExLOFYlW5-@y2QX_r(l0;!aSghG#l0G3k&AYWhV}vs!8$6DB{O$HW zayXC5Re6yz^o3!MBSDokW4&T#Q7+%>@OlN|v}~{ff*66%VMV90BL|H{x&Ic?hhc&! z`j48em- uqZC5JY6Bf$?MFS -n+X)>2xet6_^0C|DC`wtb&QOH_|XQzf(ka&UkjyR_k;@}$s5vvgf`eU?};5nY}lwB_o54mM94={frt%U{E z!R`p`IMrao3+Y-%pa1w=;|39Uysd4} 5N1wh9|`8_16}A&LJ>b?gQL6E^N8KyoFF+>Q0*IlyayZ7V;sC*N^I36%tA zjP>zJDT=CyUX5zG_<8Z0C*48mn@@w5xg`i5Zvq2?3-U|iVpoMf-4h5)AdxfbnC1#p zLyTU }fp2m?rl&4m6hNCIYE0VP Ozu2nowi0cIJH6g44vv1BiqkWGe1bOa@b|lD$gcNI3%C$75K1Gz6)gu(@B*jZbc3V-8a*v48Z8e_>Y`{8y4!ywZa{BTJO+s`> zi>Sc2w# B zqoFlEX84hC{IlkTy|E~J0Djy;yO^D#f!EqR2kg>5^{nPq~B?QVN@f`yC2jhGeS_ z8?!MAMY0F!5VSNT@3M*fC^`dkEj&gUv#~PsQ4U^wTP~SA(mC#n#WUC~<8;3l4E7T6 zP)16&U1$M?ho*U)6`KCFSLxJ2d3$QM6z(G7$=>sna}Gs^xogP~G-$!2^+cHeXw-o* z)wyI==-A&*YIgwp;=O(vG&!{=fin*$wZp=oO=T`Gs5O #U8~*~YCZbu^ZNfx8xRjCr(|Bu8iZSDu$YlU{jtJtuRB8iBdns7$&Ms5!u$ z&QCRR6tJSMUDLtnh%#9S_IU4Imp}hqlDumBN1z~4Bwt^h)B98J#m}`5N4{jJP|8h% z3=It;5A5yQwQraF1x+_{JU13&c`NqB7h=AE)%Sk{#k9-k7s7&9c8t+6_B)MPx(?c* zdV+Hbvnaz77z$4qAOxq M|aKB87+MFtnOza#K z>$?uGHujGMWS>_LPKi1~9UTI!%bMLI8Z|kdFAWl?ep}=!Maz@H8DZwy(p^6b?|#N! zPf6I31BsUu)}RlzUbR2(7rZ>zje4dOVs;}ZyzxZ1j{zl`pQPj!_|?n_-ZMBidG=1i z7~5!yeypmhR+BQ&s{e>GEqE#{2iV&A1|pz1G7<>@BHpBy20^Alk#?;gI22S9S=toB z@};&Pfl+}k9&k9W#m-Z>`Q@In*%YwwuU}hj1z6z^G)v}U73k3r;HQV`@*=;Mmkscg zDbQgR^PQfFPmp|!a(uxl^g(i-eP}nVO2(yfQ-yP9x%Juo=7F)$m%GniZBBT$_dl@j zTFZodo+XRILaFW`;Tg=WiisTRMP2W{vuX3D+?(*a84E_uie<6wESaMfy}@b0XK66s zv`M{^*KmZ`)V%8^Yd*^{-Ek4E^?22Fo_K%gwvmG1QfnV%FI+YGo<;PvAUJHTb=fX? z?hBpt?ncgC1I;>9-n(b;O*UEe4E62T%0R3P!POnMF(F`K>?MD%xN^5Xhh{^+(Am)d zi>a4(D4et%)r4o96rIt6hM1KO %g_-7ZN+7k%aww0)v83#Dav`KP(e-Yr98V ziqdH(U90N`!8n#;fxV3Rtfss#eNsroR%Nzm$>+2yTh(aYhmosD{HX{vx1xCrn`I4` z`Cj|b3i$z#kbh(Hs~ijc*K(md%j-*r3%0%nT7P@Y;}>_KV{ygIgrG1Vl8_X|8Yr71 zRRTI-yvkEet7p&?=by3smP8bB8FloQw~eQDHvC2?$c6$Ya)(DIlm*< !H)&YngIr(o7v}ph_T0 pTx#97a+ zt(S5nfy8@EB%K`(Oo;tD(!Lb#za9d0f8yW2&Q}0-j84-9?P`62C!%=|-?lu6p+VNP z!-MCuxgjqSk20!uxlH$6b=bC>M!r?{{$>&+VpfC>DZRegt8o3|&4NGejgyYMM)PA; zmlF`E60sU$s>=_Yv92a6n|fmwz_?F=Cw#gl_DqhC@vb-V9-4FAI(h62PPYNYIDRu7 z5_q_*SnXo!qXE@bQJt+mhcW93M&dC9D&aF;L0poOoeoH`re5qcB0akq;im$o{~w~> zGA^p_{T`N3LK+1TVQ8dFK x 8mzavS8arkUok12Ae}B9lZH7XsiGN*R?!yV5(60tYBGCAVt$mz z_cgGsVm9r3> jWfxGJqj2RJlQ;p=Afu+tBE)7EY7~nnba ~#wy-Hi zu=)vl!Jns*%F KVj?2w5cgG3ZUn1b z{n~oAoA$K4@$Go2Y6X(^gIVF?hbG05Od+~YIgkY-jk?ACUW;z^25^Ace(*+A-g3OP z?Y&OboT0Uy{EEz+PCl6|6G=EannkF5-*j8MR8~HjJ>Cw-dyrGZwOQ01hh0Zjk$J$T zBC}#XV5ePjTOMdBs?~}KLTdr|$Gl+KVahrMzpUJ^uX(rv2bxag+Ohrc=zfo>57`Xp z#7l%@x*z`*yH$1FrQlWQI_Bm74(L_lPp15;h>>Z^g0My{_1K#Q|I+3!U+Ienb@j|a z=!|i@?E+!_l=A8^>2EH3E*1F%)sy*{@CkSJ*0mCv8Hn7`XkmP#Mg z+f5A`SeSv6dQD8rFnDZs*(+ w4D>-XvnkQ$3RsF`6_Nq GV%Bpu4WylC-rm zQ|3VPEhEy;4_SDdKgq2GU2gnt=H2M)+Sb!h;#MFIVvgg)7XN&$GlKLENzgt%sjjWX z2R~XCLi*We9z8s1*NFtMFAut0wsdz_7*zAF8#Z;k*u5=J-9~?1maP?2=)e0|o{Evv z=cl5BaVgS87ed9x^0EK~CR7QdGsm~-`8RZ^h#>tbkf&GH lYtVY!6UU(-UF2kBqrG7p4 z )Yh97L7*QBJ_-&t4oqqYO?F)qp2|0?oxmUX>a|j=^>6v^lR4 zDk&O&a&}T j2?lya=L{o~ zhnQT-BbW5+_lBa$TANL2!U6QCdXwmeGclIKE<#4tB_+FBl~RKT`a{lb7q6rLG(Y2{ z++=ryMZFa4X@bf*Pt|{lF#_T)^zU{wh*j&8iEp6%mL?-3WI2ni*Y0>Y;rOKkocQob z;YxrZuNHqumU?R4sn0vqz7~2D^7`2(C!h)dCiho7HwOtSGl}mz5Wi4|LK!>Nx7xOWA@eHqAnY?%-(`;Pp5gp zHu)B zBnRNo_ZFk!$IV+H@^Oah3Qtn*Pw12~q#EM1K<6QXlvCU5Q5@Vj+z@$7V zu~YQQ^@C1Xb!pP=uKMz^eht( MD AKG#T36F#nWzH4h) yn zmBKQDKW zXzu4uPVCoenT^#8H|bg(*D%lYb> zd@fGf9&@|NJ(PLM{?kbSBGw6O?+|~lP-yHp_TA!EW_`(Hj&aK|T8@o#mQYQdqeu~K z@=RgyUXfh-Z!ZM~>W==Jx88d^yoZox1KJm6`rR~ADhI*u15cP8vt}fp2vX7osDX%G z({y!9&J12TY1WiR2Mbd(b5Y-zDysi|F(+obhh%YHewNYxN6u!=k}mKq?IS0Gr%;@! z@5h >zq0sCY}C73a{}$zr82B1y8Fc zokQPAv)Z$D%EV5^NK9bAC~mu !D+kLprBQ@*v7bvw7`EP_6mn;!1_0W;I#&&@pB@vXxDe_Itb2_pbL>;Ze zQPE-%_*P;O%&z@%7sF9B9IH*0`GTT$M?_zvcF1SysTOB^@Hj!W(9^`)#HtGSwjp=* z nJE=nA^L~Gx1)^V7 4@1s| =HOC56DbLZO?F?*vilc4do`W{kcW4$ivTSD^{M2`e|G(p>BC(Kxj05!){__8zhM zi_^WU&2jMPj1$(>tQ$iMn&)Z%jP?nt`SvZYa~Ni>O1s`x)Q&v!tA*=KsdkHI-*vfx z=3S-%)P)vwdg@Oi6bX3$9qN}}U*GL;2V*Lj=`s;<=73*Foj|V!tQ&XF)R-dnxdCA% zAx3voQH9~n$GHd38!YE_bV%`|k=?j?)n0ec`Ln|?H{x7OGKFx$2HN(=XkvX|q$Mn4 z^& b-tg3;kU@?9eRdA1V{y8wTG }VJjYmm 6vG1HvO0CO0GKzt#mj|F z37h@;g+w@`NspN0%CEA5!T7K?qW33V^#PL} 3+Y*lh428^qEjY( zjD47!_0lo5kBYz_R5X}%rXu|d1}_-b7vhrjUv13*YOA)zUUU;iPS%VF#~csC w+;O`9YknU*e^0C}X`>gp!xbGKR*+(w}m+ykDH>k(hV=D_i9- zMpIs#k(QeUq63hkaioNwRKT&xJE~apDgQ8Wmc!72x2vzM4`D^cCjp $ z*jX=4^{TGhYB}FX4tOvWpms|rY20Il6+uRPqM|#TsGLG3?S4_8Q^{{<{^yj6OO%k7 zdT0#$^cON?GkV2N?91y8yT9nnqSD=qpPM Se~xx;+;v5?a83PkhFb4dSxM>FS&X#h+-jIIpWCG* zML24b$D*6xA@$duW~*!A coHl}}fh $(n8$)vubHjSv;PDHftQH(?j(bu (_?v^|l*Kf94ht&aTOyM+I%M{Q8r8X_E`f6p>6a6R9p^*gEW!?#{ z=1((+KcQbtt2m&n6tDM8%JaV7mwx*q!aO%3*u@ g`c(A6Kp59Q z$s#&Q_LzEm7+LnfcLz;^FVd%RRvxQ2wO^tWCX+nVlG5UsMN 3f1*i=T$1a?%s;{}B9%dR-Ck9IK+jj_y0Xu#?VVwU&YdV9 z0?~l+#|pHD#`2c~^<@3APh>&>75DUk&@`CSN44zX6jz?wLxE-)`$Y#Ny1{9) As;S0aHzjBFopO__(;IOIq^qJZ@>8KfWhe4T>qPkEAJCzZ#Fp4G)tC2F#l6Gy z3a_))JXkObaUm5y1CZRT>H7n`#yK{7^)PL5{gAd*4~ O`6Q zhEo{kS}XtoiLQz65rNGo@bcYR4S(+)+PV4ag1no;r{qfCaPRkS&TUscVpaj0gajQ? z1v|2yBk>IPp+4U4(_i%v`JEZLAAaHts{`ETpkNpBWOmmN^Lz#MjEJaw?zwI;M?{>7 zZhtFEe5C tWPY?&Iw;buX=owC5?@o@_l zRfS=#7hfq#jdc+a@P@mf%k3m5&LC@_Nj-Rdo4Htz!>0Hrh*a8|YNbeTZZZG9&gx@% zb=HK*kT)hMC|q=_EW5a!d58 zU+8jEzDWD3g&!i$Y2|b5AiLHHM>`j!H93YH{ueKVd$)0i$Nf@0B$LB`akaA=n5(dq zvRs CLls4|F~Sns1mi2ZtH16KE34?uVEqO?U40RV`b>OuNqD1*Sqkn#AI= zrEtkN8gAs7Gxd?1D&)m7F4up$HL^fcYjT+OUY=?4K0%0ogwbG+%zeYjuI$P#MGj%{ zGC&}_(%p%jo3Nh}jP-o=IL>uDRZP%;6ucyiQiBTnI c zPoxhl#yHK-)_pSas}Fw{S&5_4T^OvkREleD^W+paf2*#w?J^a2eN~zKp8&X$?q3)7 z0{2eu6f*6`f}od~Z#ZRV)n93lf|Q81m {%wX~LfbehaxjC%pUx@qa@t^Q>I55`;E;z51=^sJ`_4Rjr58KArxqezVN1 zYF`xAEXC3>*v;S?lyQ}f>3oUv9=}?FW(zYi6h!68zBQaNw=7`x_4c+MLo+4o_>=wb zrn5;ARLLe%y7E|}iwbysv5B+CAVjlo%K>H95Fxhsyxaj7m+{`8Rv$USa;R8Hds(L0 zDzt2L7>y?~;|hFpmF|O1ZNY@oO^?>RBQN5wcf*6G8*OmO#=mv{Cd0Q_iFvK6;DFLG zW}Z;&r0HT7@;~`sry}so(%+C4bFz*A<`}(8;_us6XH(Jh!oNKbKm5*-a1Ar^#hZmT zkEe8(m`a5ANOi9-oLC1>%)45y8O;{Gi88S6Q5*&}F+i+W;qH|3Z@{`TIqQ3EkBj@O z#Y(x{EsN~_+OO<01r7sm;I2#E422t(7}9k~aid`2%K{66()yVuj>Xhf_#J<=i?Ed& zqHQgV#_Wu!!2<4sS$U0-A28Y)Ms_b@_LIE+-_O^Es@U5u;)f5_8MeXwc@62$8ZL)T z^tVT _P5Aq$nOun!HpQ-mhrx6hFj5GW9TD< zZQOF8{#5M5&ed}8aFOa0Cn!n9iOp|o94QX~_R Cse- z^5R#Xl&^&*%I>*XQp29@80|lL_-B_0qya8+EF9K>2#tfVQ#9#~1rC%wTY$&pvSLpg zMN1gS`TnQyN&my)0~Z^CIMdvjYWP@iiu=Cv%_+yIA4xbr8vXTZGg$qa^1V|hPF#+C z1JVp$`#I%ThIi49{iDLnH;S4bcw3urY~gqR@NJ0HzhkgX?Ye{$YL%OuKTCK{`X(qq zxrdCUkmGbZb9FFbI>kXm{NNeVgtLwE>geGs|HM&)?C3RhmHA1*pZ~wSMB=>Y02_JJ zELR%q>)W~^Dl^`Bl)VwYGIH8IXi{J)$Y9bwhH}{o0YU_=lfG-(vonSmzzIZx FF(%FI$JVe=kl5{ulBXd55*`ZO5uni@B*=mIC}xQ0Ysy6@6cw?;TCtw|ucg3F z0-DS$r;A|OlsB8N5nb1>qqITh0jhJX^21c)!rnb?m56t^U-~3h;8-Gb 8JIxGkEg0D4!~AP1?-y;wQMc?`uM z^Z;tv9t}~#*l3=XJk@oaKpJoaA!Oo1)Ro70&2wT71+#tjUTvx17q`J!VoU%)(r6C~ z$ncN&chL2IrZ5m;VMeaV lxm^v;jH&iX z2c7)lfi5y|arkqt@L0zICRPb%Pyoizyz8SPezJ$p8Lq{-+HCUG)s9eOyL*%=_?3U3 z *jk(c;M4Ykil6hx@_M0pUlQ-oC4d065cHi)-^ zE5PO8o7d7}Y4k5*AkdT1th+76mYh?x*0`zv!sjT~E+ZV4Ht8ATHfN=IzL^}^a~#_F z&$K9vhU+Jc?}!D2C4$10=+7e6IZBX3sI+2{Sbi1lLp~u-4%Bsy4Q^Ds1(rBl!LfTC zT=C_>2gjRTAuqRG<^SX`0QBHQ&|ahof*n=cw3iAXDi0`lzRr@biu10-Qe<&?Qc)Fe z)A@_nM! lBZ>VDpp>~2g4iwCQAD@0{Ib#223B=-zOGSYg7)&XN0Z7c-=#B? zwVJb5b)N)1Y}wBA@54+^g?sV-A?a(%M=-H&f4 Y_Dh=g zmwmO0CI`W{SL>IVvz)-0-y!~^zH_w jvRA!flaTagC!$DG+gTFJPczoW1z6N$XAh+UChr+lL1!f z{Jf$BnHb8dz;oKl% ?v16yWPj=kt+Kq2!Qt?nX8aolm|Ib<*h)1!}^(GBocrs zCr{x?ViavI9!dCDZ%aV;?cJr}ubOOa@yK-A>nx$q=|G(cD~7vF;&lWZLXrzt)bV%D z)?W`%{Zsf59T1&k_u+IvLi`%8R=~LC=Y}vtu;TBgtMDHWd%F{ivRD_nuO0`y5|I%I z#LSfeE+?hz_ygXHIl>8y9tbbVv|&-*TRVqXot0~iEl4$ndY=2Zk?q;R>iXt2XV=|G z*a~zjO!>~p?-rLg7;_B}J2(3!Es?$aQEdfF0>I75Hdn)?j;;S@;u