From 01c5295a86abffbb008ffaef504583a9fec2f355 Mon Sep 17 00:00:00 2001 From: Valentijn Scholten Date: Sun, 19 Oct 2025 13:31:38 +0200 Subject: [PATCH 1/3] deduplication logic: add missing tests --- unittests/test_deduplication_logic.py | 185 ++++++++++++++++++++++++++ 1 file changed, 185 insertions(+) diff --git a/unittests/test_deduplication_logic.py b/unittests/test_deduplication_logic.py index 82ecfb177dd..1be76d911ce 100644 --- a/unittests/test_deduplication_logic.py +++ b/unittests/test_deduplication_logic.py @@ -819,6 +819,45 @@ def test_identical_different_endpoints_unique_id(self): # expect duplicate, as endpoints shouldn't affect dedupe and hash_code due to unique_id self.assert_finding(finding_new, not_pk=124, duplicate=True, duplicate_finding_id=124, hash_code=finding_124.hash_code) + def test_identical_endpoints_unique_id(self): + # create identical copy and add the same endpoint to both original and new + finding_124 = Finding.objects.get(id=124) + ep_o = Endpoint(product=finding_124.test.engagement.product, finding=finding_124, host="samehost.com", protocol="https") + ep_o.save() + finding_124.endpoints.add(ep_o) + finding_124.save(dedupe_option=False) + + finding_new, finding_124 = self.copy_and_reset_finding(find_id=124) + finding_new.save(dedupe_option=False) + ep_n = Endpoint(product=finding_new.test.engagement.product, finding=finding_new, host="samehost.com", protocol="https") + ep_n.save() + finding_new.endpoints.add(ep_n) + finding_new.save() + + # expect duplicate: unique_id match dominates regardless of identical endpoints + self.assert_finding(finding_new, not_pk=124, duplicate=True, duplicate_finding_id=124, hash_code=finding_124.hash_code) + + def test_extra_endpoints_unique_id(self): + # add endpoints to original and more endpoints to new + finding_124 = Finding.objects.get(id=124) + ep1 = Endpoint(product=finding_124.test.engagement.product, finding=finding_124, host="base1.com", protocol="https") + ep1.save() + finding_124.endpoints.add(ep1) + finding_124.save(dedupe_option=False) + + finding_new, finding_124 = self.copy_and_reset_finding(find_id=124) + finding_new.save(dedupe_option=False) + ep2 = Endpoint(product=finding_new.test.engagement.product, finding=finding_new, host="base1.com", protocol="https") + ep2.save() + ep3 = Endpoint(product=finding_new.test.engagement.product, finding=finding_new, host="extra.com", protocol="https") + ep3.save() + finding_new.endpoints.add(ep2) + finding_new.endpoints.add(ep3) + finding_new.save() + + # expect duplicate: unique_id match regardless of extra endpoints + self.assert_finding(finding_new, not_pk=124, duplicate=True, duplicate_finding_id=124, hash_code=finding_124.hash_code) + # algo unique_id_or_hash_code Veracode scan def test_identical_unique_id_or_hash_code(self): @@ -829,6 +868,66 @@ def test_identical_unique_id_or_hash_code(self): # expect duplicate as uid matches self.assert_finding(finding_new, not_pk=224, duplicate=True, duplicate_finding_id=224, hash_code=finding_224.hash_code) + def test_identical_endpoints_unique_id_or_hash_code(self): + # add identical endpoints to original and new; uid match should dedupe + finding_224 = Finding.objects.get(id=224) + ep_o = Endpoint(product=finding_224.test.engagement.product, finding=finding_224, host="endpoint.same.com", protocol="https") + ep_o.save() + finding_224.endpoints.add(ep_o) + finding_224.save(dedupe_option=False) + + finding_new, finding_224 = self.copy_and_reset_finding(find_id=224) + finding_new.save(dedupe_option=False) + ep_n = Endpoint(product=finding_new.test.engagement.product, finding=finding_new, host="endpoint.same.com", protocol="https") + ep_n.save() + finding_new.endpoints.add(ep_n) + finding_new.save() + + self.assert_finding(finding_new, not_pk=224, duplicate=True, duplicate_finding_id=224, hash_code=finding_224.hash_code) + + def test_extra_endpoints_unique_id_or_hash_code(self): + # add endpoint to original; add original + extra endpoint to new; uid match should dedupe + finding_224 = Finding.objects.get(id=224) + ep_o = Endpoint(product=finding_224.test.engagement.product, finding=finding_224, host="endpoint.base.com", protocol="https") + ep_o.save() + finding_224.endpoints.add(ep_o) + finding_224.save(dedupe_option=False) + + finding_new, finding_224 = self.copy_and_reset_finding(find_id=224) + finding_new.save(dedupe_option=False) + ep_n1 = Endpoint(product=finding_new.test.engagement.product, finding=finding_new, host="endpoint.base.com", protocol="https") + ep_n1.save() + ep_n2 = Endpoint(product=finding_new.test.engagement.product, finding=finding_new, host="endpoint.extra.com", protocol="https") + ep_n2.save() + finding_new.endpoints.add(ep_n1) + finding_new.endpoints.add(ep_n2) + finding_new.save() + + self.assert_finding(finding_new, not_pk=224, duplicate=True, duplicate_finding_id=224, hash_code=finding_224.hash_code) + + def test_intersect_endpoints_unique_id_or_hash_code(self): + # original has two endpoints; new has one overlapping and one different; uid match should dedupe + finding_224 = Finding.objects.get(id=224) + ep_o1 = Endpoint(product=finding_224.test.engagement.product, finding=finding_224, host="ep1.com", protocol="https") + ep_o1.save() + ep_o2 = Endpoint(product=finding_224.test.engagement.product, finding=finding_224, host="ep2.com", protocol="https") + ep_o2.save() + finding_224.endpoints.add(ep_o1) + finding_224.endpoints.add(ep_o2) + finding_224.save(dedupe_option=False) + + finding_new, finding_224 = self.copy_and_reset_finding(find_id=224) + finding_new.save(dedupe_option=False) + ep_n1 = Endpoint(product=finding_new.test.engagement.product, finding=finding_new, host="ep2.com", protocol="https") + ep_n1.save() + ep_n2 = Endpoint(product=finding_new.test.engagement.product, finding=finding_new, host="ep3.com", protocol="https") + ep_n2.save() + finding_new.endpoints.add(ep_n1) + finding_new.endpoints.add(ep_n2) + finding_new.save() + + self.assert_finding(finding_new, not_pk=224, duplicate=True, duplicate_finding_id=224, hash_code=finding_224.hash_code) + # existing BUG? finding gets matched on hash code, while there is also an existing finding with matching unique_id_from_tool def test_identical_unique_id_or_hash_code_bug(self): # create identical copy @@ -858,6 +957,92 @@ def test_different_unique_id_unique_id_or_hash_code(self): # expect duplicate, uid mismatch, but same hash_code self.assert_finding(finding_new, not_pk=224, duplicate=False, not_hash_code=finding_224.hash_code) + def test_uid_mismatch_hash_match_identical_endpoints_unique_id_or_hash_code(self): + # Force UID mismatch but ensure hash matches; set identical endpoints on both + dedupe_algo_endpoint_fields = settings.DEDUPE_ALGO_ENDPOINT_FIELDS + settings.DEDUPE_ALGO_ENDPOINT_FIELDS = ["host", "port"] + + finding_224 = Finding.objects.get(id=224) + # add endpoint to original + ep_o = Endpoint(product=finding_224.test.engagement.product, finding=finding_224, host="same.com", protocol="https") + ep_o.save() + finding_224.endpoints.add(ep_o) + finding_224.save(dedupe_option=False) + + # create new with same title/desc to keep hash same, different uid + finding_new, finding_224 = self.copy_and_reset_finding(find_id=224) + finding_new.unique_id_from_tool = "DIFF-UID" + finding_new.save(dedupe_option=False) + ep_n = Endpoint(product=finding_new.test.engagement.product, finding=finding_new, host="same.com", protocol="https") + ep_n.save() + finding_new.endpoints.add(ep_n) + finding_new.save() + + # expect duplicate via hash path despite UID mismatch and identical endpoints + self.assert_finding(finding_new, not_pk=224, duplicate=True, duplicate_finding_id=finding_224.id, hash_code=finding_224.hash_code) + + # reset + settings.DEDUPE_ALGO_ENDPOINT_FIELDS = dedupe_algo_endpoint_fields + + def test_uid_mismatch_hash_match_extra_endpoints_unique_id_or_hash_code(self): + # Force UID mismatch but ensure hash matches; new has extra endpoints + dedupe_algo_endpoint_fields = settings.DEDUPE_ALGO_ENDPOINT_FIELDS + settings.DEDUPE_ALGO_ENDPOINT_FIELDS = ["host", "port"] + + finding_224 = Finding.objects.get(id=224) + ep_o = Endpoint(product=finding_224.test.engagement.product, finding=finding_224, host="base.com", protocol="https") + ep_o.save() + finding_224.endpoints.add(ep_o) + finding_224.save(dedupe_option=False) + + finding_new, finding_224 = self.copy_and_reset_finding(find_id=224) + finding_new.unique_id_from_tool = "DIFF-UID" + finding_new.save(dedupe_option=False) + ep_n1 = Endpoint(product=finding_new.test.engagement.product, finding=finding_new, host="base.com", protocol="https") + ep_n1.save() + ep_n2 = Endpoint(product=finding_new.test.engagement.product, finding=finding_new, host="extra.com", protocol="https") + ep_n2.save() + finding_new.endpoints.add(ep_n1) + finding_new.endpoints.add(ep_n2) + finding_new.save() + + # expect duplicate via hash path despite UID mismatch and extra endpoints + self.assert_finding(finding_new, not_pk=224, duplicate=True, duplicate_finding_id=finding_224.id, hash_code=finding_224.hash_code) + + # reset + settings.DEDUPE_ALGO_ENDPOINT_FIELDS = dedupe_algo_endpoint_fields + + def test_uid_mismatch_hash_match_intersect_endpoints_unique_id_or_hash_code(self): + # Force UID mismatch but ensure hash matches; endpoints partially overlap + dedupe_algo_endpoint_fields = settings.DEDUPE_ALGO_ENDPOINT_FIELDS + settings.DEDUPE_ALGO_ENDPOINT_FIELDS = ["host", "port"] + + finding_224 = Finding.objects.get(id=224) + ep_o1 = Endpoint(product=finding_224.test.engagement.product, finding=finding_224, host="ep1.com", protocol="https") + ep_o1.save() + ep_o2 = Endpoint(product=finding_224.test.engagement.product, finding=finding_224, host="ep2.com", protocol="https") + ep_o2.save() + finding_224.endpoints.add(ep_o1) + finding_224.endpoints.add(ep_o2) + finding_224.save(dedupe_option=False) + + finding_new, finding_224 = self.copy_and_reset_finding(find_id=224) + finding_new.unique_id_from_tool = "DIFF-UID" + finding_new.save(dedupe_option=False) + ep_n1 = Endpoint(product=finding_new.test.engagement.product, finding=finding_new, host="ep2.com", protocol="https") + ep_n1.save() + ep_n2 = Endpoint(product=finding_new.test.engagement.product, finding=finding_new, host="ep3.com", protocol="https") + ep_n2.save() + finding_new.endpoints.add(ep_n1) + finding_new.endpoints.add(ep_n2) + finding_new.save() + + # expect duplicate via hash path despite UID mismatch and intersecting endpoints + self.assert_finding(finding_new, not_pk=224, duplicate=True, duplicate_finding_id=finding_224.id, hash_code=finding_224.hash_code) + + # reset + settings.DEDUPE_ALGO_ENDPOINT_FIELDS = dedupe_algo_endpoint_fields + def test_identical_ordering_unique_id_or_hash_code(self): # create identical copy finding_new, finding_225 = self.copy_and_reset_finding(find_id=225) From 2ec11d97996914d941ab577752a29442af44c961 Mon Sep 17 00:00:00 2001 From: Valentijn Scholten Date: Sun, 19 Oct 2025 13:31:57 +0200 Subject: [PATCH 2/3] deduplication logic: add docs --- .../deduplication_algorithms.md | 67 ++++++++++ .../deduplication_tuning_os.md | 120 ++++++++++++++++++ 2 files changed, 187 insertions(+) create mode 100644 docs/content/en/working_with_findings/finding_deduplication/deduplication_algorithms.md create mode 100644 docs/content/en/working_with_findings/finding_deduplication/deduplication_tuning_os.md diff --git a/docs/content/en/working_with_findings/finding_deduplication/deduplication_algorithms.md b/docs/content/en/working_with_findings/finding_deduplication/deduplication_algorithms.md new file mode 100644 index 00000000000..f0efc473081 --- /dev/null +++ b/docs/content/en/working_with_findings/finding_deduplication/deduplication_algorithms.md @@ -0,0 +1,67 @@ +--- +title: "Deduplication Algorithms" +description: "How DefectDojo identifies duplicates: Unique ID, Hash Code, Unique ID or Hash Code, Legacy" +weight: 3 +--- + +## Overview + +DefectDojo supports four deduplication algorithms that can be selected per parser (test type): + +- **Unique ID From Tool**: Uses the scanner-provided unique identifier. +- **Hash Code**: Uses a configured set of fields to compute a hash. +- **Unique ID From Tool or Hash Code**: Prefer the tool’s unique ID; fall back to hash when no matching unique ID is found. +- **Legacy**: Historical algorithm with multiple conditions; only available in the Open Source version. + +Algorithm selection per parser is controlled by `DEDUPLICATION_ALGORITHM_PER_PARSER` (see the [OS tuning page](deduplication_tuning_os) for configuration details). + +## How endpoints are assessed per algorithm + +Endpoints can influence deduplication in different ways depending on the algorithm and configuration. + +### Unique ID From Tool + +- Deduplication uses `unique_id_from_tool` (or `vuln_id_from_tool`). +- **Endpoints are ignored** for duplicate matching. +- A finding’s hash may still be calculated for other features, but it does not affect deduplication under this algorithm. + +### Hash Code + +- Deduplication uses a hash computed from fields specified by `HASHCODE_FIELDS_PER_SCANNER` for the given parser. +- The hash also includes fields from `HASH_CODE_FIELDS_ALWAYS` (see Service field section below). +- Endpoints can affect deduplication in two ways: + - If the scanner’s hash fields include `endpoints`, they are part of the hash and must match accordingly. +- If the scanner’s hash fields do not include `endpoints`, optional endpoint-based matching can be enabled via `DEDUPE_ALGO_ENDPOINT_FIELDS` (OS setting). When configured: + - Set it to an empty list `[]` to ignore endpoints entirely. + - Set it to a list of endpoint attributes (e.g. `["host", "port"]`). If at least one endpoint pair between the two findings matches on all listed attributes, deduplication can occur. + +### Unique ID From Tool or Hash Code + +- Intended flow: + 1) Try to deduplicate using the tool’s unique ID (endpoints ignored on this path). + 2) If no match by unique ID, fall back to the Hash Code path. +- When falling back to hash code, endpoint behavior is identical to the Hash Code algorithm. + +### Legacy (OS only) + +- Deduplication considers multiple attributes including endpoints. +- Behavior differs for static vs dynamic findings: + - **Static findings**: The new finding must contain all endpoints of the original. Extra endpoints on the new finding are allowed. + - **Dynamic findings**: Endpoints must strictly match (commonly by host and port); differing endpoints prevent deduplication. +- If there are no endpoints and both `file_path` and `line` are empty, deduplication typically does not occur. + +## Background processing + +- Dedupe is triggered on import/reimport and during certain updates run via Celery in the background. + +## Service field and its impact + +- By default, `HASH_CODE_FIELDS_ALWAYS = ["service"]`, meaning the `service` associated with a finding is appended to the hash for all scanners. +- Practical implications: + - Two otherwise identical findings with different `service` values will produce different hashes and will not deduplicate under Hash-based paths. + - During import/reimport, the `Service` field entered in the UI can override the parser-provided service. Changing it can change the hash and therefore affect deduplication outcomes. + - If you want service to have no impact on deduplication, configure `HASH_CODE_FIELDS_ALWAYS` accordingly (see the OS tuning page). Removing `service` from the always-included list will stop it from affecting hashes. + +See also: the [Open Source tuning guide](deduplication_tuning_os) for configuration details and examples. + + diff --git a/docs/content/en/working_with_findings/finding_deduplication/deduplication_tuning_os.md b/docs/content/en/working_with_findings/finding_deduplication/deduplication_tuning_os.md new file mode 100644 index 00000000000..5c81f488079 --- /dev/null +++ b/docs/content/en/working_with_findings/finding_deduplication/deduplication_tuning_os.md @@ -0,0 +1,120 @@ +--- +title: "Deduplication Tuning (Open Source)" +description: "Configure deduplication in DefectDojo Open Source: algorithms, hash fields, endpoints, and service" +weight: 5 +--- + +This page explains how to tune deduplication in the Open Source (OS) edition of DefectDojo. For a visual, feature-rich tuning UI, see the Pro documentation. The OS edition uses settings files and environment variables. + +See also: [Configuration](../../open_source/installation/configuration) for details on environment variables and `local_settings.py` overrides. + +## What you can configure + +- **Algorithm per parser**: Choose one of Unique ID From Tool, Hash Code, Unique ID From Tool or Hash Code, or Legacy (OS only). +- **Hash fields per scanner**: Decide which fields contribute to the hash for each parser. +- **Allow null CWE**: Control whether a missing/zero CWE is acceptable when hashing. +- **Endpoint consideration**: Optionally use endpoints for deduplication when they’re not part of the hash. +- **Always-included fields**: Add fields (e.g., `service`) to all hashes regardless of per-scanner settings. + +## Key settings (defaults shown) + +All defaults are defined in `dojo/settings/settings.dist.py`. Override via environment or `local_settings.py`. + +### Algorithm per parser + +- Setting: `DEDUPLICATION_ALGORITHM_PER_PARSER` +- Values per parser: one of `unique_id_from_tool`, `hash_code`, `unique_id_from_tool_or_hash_code`, `legacy`. +- Example (env variable JSON string): + +```bash +DD_DEDUPLICATION_ALGORITHM_PER_PARSER='{"Trivy Scan": "hash_code", "Veracode Scan": "unique_id_from_tool_or_hash_code"}' +``` + +### Hash fields per scanner + +- Setting: `HASHCODE_FIELDS_PER_SCANNER` +- Example default for Trivy in OS: + +```startLine:endLine:dojo/settings/settings.dist.py +1318:1321:dojo/settings/settings.dist.py + "Trivy Operator Scan": ["title", "severity", "vulnerability_ids", "description"], + "Trivy Scan": ["title", "severity", "vulnerability_ids", "cwe", "description"], + "TFSec Scan": ["severity", "vuln_id_from_tool", "file_path", "line"], + "Snyk Scan": ["vuln_id_from_tool", "file_path", "component_name", "component_version"], +``` + +- Override example (env variable JSON string): + +```bash +DD_HASHCODE_FIELDS_PER_SCANNER='{"ZAP Scan":["title","cwe","severity"],"Trivy Scan":["title","severity","vulnerability_ids","description"]}' +``` + +### Allow null CWE per scanner + +- Setting: `HASHCODE_ALLOWS_NULL_CWE` +- Controls per parser whether a null/zero CWE is acceptable in hashing. If False and the finding has `cwe = 0`, the hash falls back to the legacy computation for that finding. + +### Always-included fields in hash + +- Setting: `HASH_CODE_FIELDS_ALWAYS` +- Default: `["service"]` +- Impact: Appended to the hash for every scanner. Removing `service` here stops it from affecting hashes across the board. + +```startLine:endLine:dojo/settings/settings.dist.py +1464:1466:dojo/settings/settings.dist.py +# Adding fields to the hash_code calculation regardless of the previous settings +HASH_CODE_FIELDS_ALWAYS = ["service"] +``` + +### Optional endpoint-based dedupe + +- Setting: `DEDUPE_ALGO_ENDPOINT_FIELDS` +- Default: `["host", "path"]` +- Purpose: If endpoints are not part of the hash fields, you can still require a minimal endpoint match to deduplicate. If the list is empty `[]`, endpoints are ignored on the dedupe path. + +```startLine:endLine:dojo/settings/settings.dist.py +1491:1499:dojo/settings/settings.dist.py +# Allows to deduplicate with endpoints if endpoints is not included in the hashcode. +# Possible values are: scheme, host, port, path, query, fragment, userinfo, and user. +# If a finding has more than one endpoint, only one endpoint pair must match to mark the finding as duplicate. +DEDUPE_ALGO_ENDPOINT_FIELDS = ["host", "path"] +``` + +## Endpoints: how to tune + +Endpoints can affect deduplication via two mechanisms: + +1) Include `endpoints` in `HASHCODE_FIELDS_PER_SCANNER` for a parser. Then endpoints are part of the hash and must match exactly according to the parser’s hashing rules. +2) If endpoints are not in the hash fields, use `DEDUPLE_ALGO_ENDPOINT_FIELDS` to specify attributes to compare. Examples: + - `[]`: endpoints are ignored for dedupe. + - `["host"]`: findings dedupe if any endpoint pair matches by host. + - `["host", "port"]`: findings dedupe if any endpoint pair matches by host AND port. + +Notes: + +- For Legacy algorithm, static vs dynamic findings have different endpoint matching rules (see the algorithms page). The `DEDUPLE_ALGO_ENDPOINT_FIELDS` setting applies to the hash-code path, not the Legacy algorithm’s intrinsic logic. +- For `unique_id_from_tool` (ID-based) matching, endpoints are ignored for the dedupe decision. + +## Service field: dedupe and reimport + +- With default `HASH_CODE_FIELDS_ALWAYS = ["service"]`, the `service` field is appended to the hash. Two otherwise equal findings with different `service` values will not dedupe on hash-based paths. +- During import via UI/API, the `Service` input can override the parser-provided service. Changing it changes the hash and can alter dedupe behavior and reimport matching. +- If you want dedupe independent of service, remove `service` from `HASH_CODE_FIELDS_ALWAYS` or leave the `Service` field empty during import. + +## After changing deduplication settings + +- Changes to dedupe configuration (e.g., `HASHCODE_FIELDS_PER_SCANNER`, `HASH_CODE_FIELDS_ALWAYS`, `DEDUPLICATION_ALGORITHM_PER_PARSER`) trigger background processing via Celery. +- Hashes for findings of the affected test types are recalculated asynchronously; deduplication relationships can update over time. +- Allow some time after changes or imports before evaluating results, as updates are not instantaneous. + +## Where to configure + +- Prefer environment variables in deployments. For local development or advanced overrides, use `local_settings.py`. +- See `configuration.md` for details on how to set environment variables and configure local overrides. + +## Related documentation + +- [Deduplication Algorithms](deduplication_algorithms): conceptual overview and endpoint behavior. +- [Avoiding duplicates via reimport](avoiding_duplicates_via_reimport). + + From 12f1107ff5cd6ed4a9d0fe39bcb93d90580869b1 Mon Sep 17 00:00:00 2001 From: Valentijn Scholten Date: Sun, 19 Oct 2025 13:47:56 +0200 Subject: [PATCH 3/3] deduplication logic: add docs --- docs/assets/images/hash_code_id_field.png | Bin 0 -> 64286 bytes .../assets/images/hash_code_status_column.png | Bin 0 -> 55762 bytes .../deduplication_tuning_os.md | 33 ++++++++++++++++-- 3 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 docs/assets/images/hash_code_id_field.png create mode 100644 docs/assets/images/hash_code_status_column.png diff --git a/docs/assets/images/hash_code_id_field.png b/docs/assets/images/hash_code_id_field.png new file mode 100644 index 0000000000000000000000000000000000000000..af767a684931b4880b358d03466f5aa8f676555b GIT binary patch literal 64286 zcmdSBWl&sQ6E2zrf&_PGumHg!xDzx4cNkoP3>q|OfZ!Ga1c%`6?m-79=-?9|ILzP! z408DDd*5^K{c)=9`ElyjT~$+4dr$ARSNHDK>*=+ho+u49MVwcZubw@7hVx!YPV3n- z)X-JqT-EM7hxW4bCCx<7k{ z+y9@>bFfRP^|NQU4e#Y-bbL&Y)-a8AZ62gf5{{5;borR!RME_Dek2z)3#W+uSTb{` z9uuVc0Gjhq&TLe8TjJO>aR5$Jb4WLg({rePLs?44mj5N1l{Mxl<~k_HeKO3C8)3?o znU6RR^gMTMTWyfo6`4Ahn3~xczM1(z$M8?fG%vaTAooub{L=eBf1v6!$0zu2OT@9@ ziTtMxhx3sCD{d{jeCJ#Ir6KAcIfA7~!BkYI^nYcm-Hwp8CCC2vp7r$DX#evP ze6-Mi>x{nk@f*i7ND>2>;l z)M@u$mt*6j0rBTkPRWWE$v>f;aEAKhXYwDX#UKOnuGCAaDtGm~M71v@nEn-4{ zDpJFvdaCeq)4#qkqeAy*bN$0;LN~nU5_JEn0iFor94KznKKWdKhQ5<>)N5%%r-asV zfg*ED2>q4ZmihZCXX)A@v^hace;!qHraLV{F()(PIGB+~%&Wl*TX3s_%rcoyZE!)T zcDyu9ZEzirR~{2pBo9#lpM!<^92=kG(ssxoVT+#)K7N$?5pY4z=i-C*A#nbFjZKB- z2yfB5-^x8#Ga=}9*Pzn~PX6QQ7ZvxI^tZ*`M3+r@w2*(M6<3TNF?RW{_(h>w*=CGa zG!fpCnZXtiWdHkS%R29O$l$3z1wvq%=DM=QT5KvC5Rp})_USx$imteT)Zkl?kPjMZ z_ix}$o#iF%k^T?eSN20)23u!-OdzS5^FXpS`=7=lTlnadwuUQ zbZ)&3?!wZ0F89L;YC1!gQ2yfCUmqdcWlAYuqo3TkYuBpSOE4mUHSRYAD;4`K*J0HQ(Q;o;2)8VI1<{ z>BI+&7}udTcTX_^96xK+zSxdWm=;2-`KXCs7=^3Iri9N9`KZ5PndJ7)B@W$#b<{$K zHqxs<*%K`|SKV(lW`pK?oTPAxF583WYh4ngB*b6j&~(sqJW@~EyHK_IP=d??DFHAd zB#kKU2g{NSJXCuXm=*GBub6Xlijil)3|Ku)d)$PlW6YsXMx4Is6M2kvF|gM$foi?l zUeH3Q^x`UOT!$>ylP2ULZ}}6A+TQ(uqj>RMAl~}5Igy%60Lm<6*qtWa&7A|a=O6DV zU24iP*Ek?J(j>iQWUg1^mn8~!Gjse^zWCawICtT!NI}R0Pbg4*YbycYscylZTJ3j; zn2@J-2VXjIxU*2%2fy#0q5NbF$A1WHFk29cE=12+-^Wike4fz1cId_6BrhsC;9r>Z zM?G&Ibva6)aDf0YzRP4!9;+T(Ve~bAQGKj!_jC9&Y+v;HTe%Qz%>Ap1z~$Jo`^FZ^ zg507l7U9dGEpDk||62K^-C3hF;gpov-)3%QPu43?Hh5{?OFFIEmt zG`lr}Q%f_s*!#@O(TfihCx)U`pbhQFcU5BsUA<)PKc@OSC)yWO{c0UTNsa4SQ6G%- zD@on!UWDE3CN{g^Ed+Iub4%UxlODz=iQq2xkP5Gz_^5jG%I^t}`xpmFJN&zJQ5&i9 z>|NM{Lg=gHnP;vXVpKOsL#GSoPGe^zePwBc_LPU$gHvjze#s)R<$9i@@LtDvoc`WQ zIyuW6s||$P$27zmPGPPw&IRbAhS3ig0-68YbN*QIJZk9jtx&m$M#J9Y3_{?oouPlg z&qLTesZ)yE*Nk7BXbnBS=x>XAB5jjTJ#fuWGeMW_t|qi4J-NZX2$kMGfy{3|OrBpi zDz-#EkPBY%j{DrZSKiu_e6%z9ol$6wC+Y83bro9cN4pac)Q0%+k25^!Gdwb8cF1Qf zJls$x0mmI!!;=b8?A8c(aSp-%YQOdONJxmM-q7^Kv4ks~M#oUJi!=$=3P^~}jZj@$ z_7g1_vXE0etqBl{&8(jM9=_)Cr{C;QEdy#fa5a(1UXp^|_t)d{lf$)H4_LqM!^tw% zl=;P47Xj&BY_ZUvvR^p~I~M8UHF*gZS6BzDwtl9$B@4JA2A_lDe~pz?U71=nDIx+L#B!s}5PyEj+e|Az?5(M1=8W}0^$KZ!<=o8* ze}`eJyIWaesiEZb#xUBjR=zmg4J=iw38Kh?cD$!*^g}J~7Jsp(5~t|FOJpCl{E1Qb z=mG!y$5^SlUu@=su!6WaiZiBS5` z;=k~{nB2E9a47GX9h|*}LL6F3udE_|_M}rh#gfR+7xDwcO9RRan{f$ObCo5pQ_L!Z zI7@oW!c$Z+)ka_zE?nB}JtA@b1XI}fyNi<8Tg6fZw8*E2fa68R_+Qs*cQjJxQ9_d& z0zFT>ut_^xjaYQk!qPLY{I#DA*xcWD(4arsk0Sq=R}?qTFk~_0;~8Fo0+$Q{OD=wG z^xsyr$=*$H>Wi3C)kO2+65o%d_r9pkzGu6bN-H0a*A1qrQSTiC#sBGSZX?-EFh71m z7wVIJ+k)8IfEg;`rK~GPo=f{n_mWiZ0b8VzB=uZ3FvtnJu*u+V*@$}j_=|?y*)zS# z0Mr6g==9fLIxnyMn>A?2S2)qQB`LN2?gr}gZOMqh@MEDxli2^-evi*yzLzfV9;5T7 z_wC*>n$8iDT3Z2Er^Fk;gO89xh~Op<*Ex}HW-B&v8L94keF*YH$AZI|e>|<_F%&*~ zxK7HS>n1w@Il)sl8bei7w8%d+vD#?93vTb=C4ls^x;Y$djFm_#L&iYQKQPcycnQ9Cjjd)ThGwlQ~SBeA1tixXk-*UI2JfU*x3 zgacR62Vcva?W5tin$*GHa>VKajW2^9Ix%6?Yp|r9){$V(EH5+vu z$bx{0RuQ$6ow7q8egu9itirS5aC2}EQ?1y^Yq(8*u;q+E!{rXaY z@n8nfa^IXfF0+L8lS22hou^Id)u4$X%==vAD`<}hN&jsVnWCYezGKj1M~UUe0nW9< zB+r1H183wF?ALP;xTRY7%akdSdX!d9Z7>#z!yv=f@^Bp^JavYl>uBT6`)_Q^`wyV~ zC(<$GgN!Rc6#u3za-0$W-{&p=_YCcSm4p0WiCU?=DzH`u$dEr~F+Co&OsL7({QtX5 z?fG#sYiyacje4*usI`*t9%nV? zh8?`JhC!pYsp2;(uSiWqu+f^Z(L#rbsj$&f7>*+hIE+%Gj~p&(yy4OwNmaqduM%6u zNYa;)uf)``$shDp+G~hbn_40>*!*U-?m(9ov%$mRt``HG1vx{>^ufzia{8%vP|2aU zW<`BnP#=y!w(mC_0u$+RX}o?CGXtC7O4bJo0}oaNu7)=A5{OddlX_Sjo}q{n!>kIkqw>L>in zvC-xbnfbQG`*lkWWi}EiVY;K8jWm8fN{jAxE{i1tA*AX+h8^3%>>+*UjU&H*nsiy2 zLyn3NnZEc5qK$mk1ev(UM)-K@F%D%C0LV6C#(JC z<2^I(>F!`xS3B|2OWjdqymQWpryeONB?g*Ge!tF0j29n(A=_t?f{3ad{EyYsM?Ls+ zatWgF-ED5(Mx|ZZWL=?{ym>Nrte(5^*jBCG8Qal9;2b!DKQ$NUWvH@zkyUr8M`T~V zqA+t84}q*GWjvNnrx2;Olo~(qJ;HuG>F`Ld5@~_ed^{y*r23p6KQSPm=dOF@H~WbL zRi+Xd59r^& z0Go=J1`FPhPiSlsIbH>?~mK6ZHhw67=&Hih+N(u14dz3?MdrDcw7q z(0DT#$&(4iu(+L)ZYoHid5}-2UTeI^Yf0klG*1fB8^WVKtAC zXs_ShekIxDVc6sIo~2#D%03H?m>nt1h%ypn#He)0N$e=CAsz;h6lu@&t=h4+UdMS z5ubYVFrH8xWlU5;x(^P{v?PiLmBS|DOn|N2B5Y|q+koGSt2nUfWk-X2I2HY@l^OQ_ z-{_+)OoKC*(+-1T@R-BnCzWf2FB7r7RMO||qEdeC4Q@7Flw%yd0P>Da&bz9+0At3U zm0uPd*{8ggctF2Lx(XXx#;USlx-wC+rO(Utuj8vRE-oAIKJB0qR}t07X7XL=#U2Go zSUPvns3*khpa@_ZDsgv4mcN><=^N+Z#3zo5vT^~}c0;xVPbK=d{q*=QyP9e~=?H>3 z!y>C`IZYR8-pxE<|Mc^gGa_2zWdkoN@RW*@Kr5AqQ;gBE)31rcAqx$lrM5n>4i*lI z?qcI6dZB^l$@s&D)%fDKC}p^k%I5&dZexCu*<|HApK&7|K!qtF#v)i(3F-8vIMA0| zl}2>u40GV*vx_AO@TG~#q~pK`cZj)nFuU_-Yf`-~DfAi@%~0he)2uLVvgnIF9BXG_ zbkIE$kaOCmS1Zr+yZ%Phh&#^}yrOb6sEUE@s6J))%H(wC9Qs$zk&P_3;rFLu(UelV zJud`Rjrff%R+3)vlpm?E(0Alf>{rrvpo9a{D+{r<9ZwI*Md7H)y zlf|h9_eN5D<$)Qz?t$?Zl^#=*?9!JZ`O~rxoS&VjWQ~Kj+l=c2h=p!FOZ$-9k(6An z!N!-VH7S$Zrce_1k1V8I*VsX3Cjx;2BC@Ll{$+Qjh-EshmrbPI&QCfX|KK`I1zQ36 z@aId=she6j_?|2*$5Z+VL0XwK-TK>toXCkQG0bYbF%M%laAtS*P?Ez~m?r6OC8NCC zH5BHnc5n(fscB08qR8~|-d)_8cbDnE5#gHW zfVE27nw4ewgjG?*UOaO7oIV$Q--o)?{hq;s!4aIU*yya z(GE^-x(~h8(mW*ap)xh(M>i9^x#SP$g(;*?$Qp=?W})n~6iP^0ZFl?cDIY0I+uh}! z+(92gUUIAOoZe!Yrk}8gR{$`|hZR>J1BXbD6&;S_|BP`bO-x~wphh=SybMy?{DAhA ztHvvld`1(vU`rO#O+a0p-%E&RCG=vtA`v{vJcK=SiFG94i)-38yC*#ote863TV~6D z8(nEWvfQs=GUxz~DqTJ09STe@m#hn5(?SNAkV0$=4g7aeZ?e0FEN_y#T~!{RYnwqs z#v>zY?{4-)3A*phNVlR=(p$IdZqhzAkXo0I55iK$>NcO|`KWSSHp;sJRhRLCeqL!Q z{Gv+|>azh3x!0Wu-dCjgGfQ|a*vBD_xn97wN#k=XG#eK4L9)ZT4WDXJ(zt6_X=a4Q z=3Y0(T({2tY%2qbrqz!50)Cg3`yKk7(*vnBBlYZh(5U$;n&&ufPjMV%I(jai!rB6x zuq!b8BeLP(vaM-RNDm>hYuEVzlihO=L^Tdu15C<0>e10=2~)^k6dQA?L8Bgr9-^Jv z-NIF}fbUh23{L+3fLcotOYca2!#CiOSG~U#hpa3cbNLoQNA;JB$#0_V7^=MDDC2Eu zsUq>$5OynAb?P-9>I1g9_tD3@gSOj?3Tw{&TSVdc6)jgwl)4NzRp4lsty-i?+02Y= z_4xu4)_I5!4l@E5zR1#eaa-%~62B-b>O!iiBZGI8vzt%hvyAJw()Z+;V?cEH_ zarx1B9pW$rhVp_6U8tt4w?rdVI0PNg_klr*lE*@_c#!<%aZ{b07g#)OS6PY_>aywE z#0(dhR|HlfLqE$B*m0=`UcXUsyO+5!$p&?>60Jb0dmYw92R)}NrZi%2f?6m{$%gFp zD5xsAY5BXkjgMau*1QrJGOqe~gQ8O z3t4Cxr37D58@)3_c0T<4^P^h!^W${@&5!Do&~FttRea4>7c`#dK8$gcZ|&|pD%*7* z15Kg}Q`}DuxR(?3Hq&GlqNuOvXxn-f3!~A#2mb_g_l^=D+s1fUp+)r=(mg2nLB6+J zUCV9mznRV__NP4To_x1=f^l);85TMYC|7n9yvJCmdFW@gBZ#&ra31)g0q_~6sqBvI zJF>bq^P*EgRJ)A-{AgqrZ(vrB9**aX2RVO}cC{~fS@3DR80kDnv+;1^F}+@1F1^u~ zbnSWXvS?91A78F%wQ{ubrKd)!?4IuPraBSr5RLC=o6XUwlWn)UKQzGDaAmD`HRkU_=rA8)i$I_6BS$tNY5mKJoKA6Xjcb zoXxn~LmSvyq-q(3L5~;74g?eRecP~D373c$rlNkEE5q!&-nS(0m8)kkTNJ2XQxdHr zF9)BseaniJGmONF8`4O3OZPX*j#8z1J7{3J0@Npc>p!sXu>+mc6C*yn! zslNbdlzhWuSkb2}CPu~Xd-9m8j_8n518*R@2TZKg;*ehkxBGtJ!`P|Q!OLrpc%7kq zir-f+HiLliJrhQz?yGBzzN}U1n+O2kUWR5?PBqP}2en8shaKOyWF{{BN7~4lny)5A z=Qie2nkZJb%*L7~b+?quM++lB;)i zqaD8e(B#g}_Q!d-Et>$ioAF|DGZV67^$>52dP%rnr%#tP%2)R=n?TSZN~#StNMNj% z7(jR^>Vw$|k4!?#0L+wl%X}KqYx#8d2gQ!pUIe-D6-@g1{CtKh`-76G zaQoTO#;TfYyt-UC{Fhsc>!r^Kmrt1(?<0v@XCsJ1sanX`sc4&a#^h!lC~G|^51Y#L zvA1EEF`f@dMG`T@=dI?JeW)pRE>hKCm}yO?nRtRAsh09N_seVp5RsOJ^Qb7jGw7Nd zb9?k4i@A0aO85m9WSz&-X?;bn_<3UY-+FgC=fvEYSNwJa8Z7ECyW-458_)&ODgj49o%SqH8S;M41cC(xsYHQidqzZtKAjSz$FhqaQ@B2P&1UMwtIxzt*dEK zgKuG1XtWI(G4Apy*gTzEE+6R0W(iG8cpcF+wKwu$!OMJyM0X_IZ3F@?jqxx@;km^2 z+fWw?pRiBXFy&Bw>+(FzxEzW0Fk(Zdo0dinhnX5#tLcY_-n@vd7tLPa@3H@h0;qCxsA_G0Wy{W zEoc-tqsO5u4^Rp6r7=JbZqY$=l)gn%(qi`^@7YF&Yv$F+j_Xxw&C@W7se1u@_)Mr_ z-m_>(Sh&<$>HPd;t`IaoG9$MD(7sL?XWD&+E_Fdky!KaGBPq&nea7(o^dP)n__bE# zC#k*dh*6c#j|7M!zy%EL?1A-w@x$g+UssZm&^H9wa=XFBaz9X@)vCJ^YK)+5%AqEw za2CP0?j@0Y%0CRVW@uF1Hg~4{iDbjq!t?4aSEotn8H=|4G$u-MlmD@-=LR56H!>Y41J_Y zdbFz8D_-fIOBLT2&C#RPek!pGpA<-Wtm?{!pKBK6f-A*9Eq0qX!kvt4%7;D1Vcm&a z1VxY;=C@OLvk&*gXg+o>7&m$~vtRRtITAx%#Ju|o4U>4~TvUqhXg=`XkD+!Vb(tgs z*a+i~8Qee}mr7#(7yXq;5qmrm@6dW+yt(!!o|dkTAF# z=G|LQUM;pQR&xp|T!}P&1CXvpx^X^ z<}V8R*?M_s%~-@lS;Os*Vba8Z^%#gGC+b!nY{w}gKbxagIVd5aVy0F&a{o}r^&U-D zeo&6vAmzum$ZBu3p^^fzd7Uhq!Ce=S_UR-9lbjAX6NO+yRQGkbg-L@~YEQzD_{AR} zM6XhQj^1_U=hs#eNz&Aqm66%syE1*`B!+~;&gC%;_}trC*IUdpS)bt~LR@5LnyaR4$@*KgMAl2~iVys`JzfZBiMIMEhU>!~rH$ z{Au5UT^>&f9=!Q!qf*ugY_^F)D`qwXd^VwCiE!4*>6NV%e~5IGUO=_p`GmqQ&ZK6m zfF+3+d+>=}s5sX{g4{2J;HjUc?YzWZ<@A?MArCrc$(^XzJz$1ep;uP470ACsIyuP*Hj*)|Eh$@URAQJ89p>sX8+G4}rdL-17iOR<7byWxB|kdymH+3ufdpE5F_-B|Qa21iIc#UPvT^KY*16-vxw)?;Yt~%K z-_~00Ag={KW9fNNhvTi2?3<14g6*o}y^p7cQ1T8CB~_-;2AU;UQR$Hod86u)$7s0+ z!~)WwZs)OA>`C=EaTGIemD_;G5lsE0N<61bJf9}whFMHuCj`-3FNW1H@x8I~a`E7KJUZF$(P_b>m z-K@AE@sOvFNHd^=K^}<_>YDJVV{!de?LktPwbE5}bd|JFd)_Afm4PiO^Mib0&2aIr zrvY+n^Tvi|t9}at;4T&k0^m6{&rf}pV;pw!6e~(sgBpVErA_PVz7OuZfAVbC2cip= zQP;&uYkD4;e?Vesc(7`qhJF_@h#?E_9LkLfefu}bnD3Xv=Bj?BS$UB9=NF`eSl_`< z(Ku6PHa8P7Zwie#7iE|xRnHViM6r`DUOBvaw2P%+TW41%4pS{~f^)I0-KOC79(ZPG zP_x9V3;YHRnBlOEeODiMUFCk|H0bB;z{&7pnq7<7wE~a6Z0AkMGUc$uNAjWTXiw&n zg>k!-Y=0$df*kVYn&(kj*nhX9GL0FFoYwLh*$zCX?7F1C{r&Qd0M8=UAAXJN_}0N5 z-xE@s@pN`w!k8w3-Ib2E67w5|*V^<4iUj$pIV#uqAv4AKk3(920+vOS21HY+B8NL$ z%0m0`f~2|enU+2?IP@v4GE~>x(JkI^ChZ+%HVzd6aV zAct){LsY6Hn#G*8d|%-Hb7a^Lf=cYX;YbYyn-v8A{I$YTjyQq9wSlY3o79{Ou)`z= zXRD30i+10hplz?N2*5(Er6BK?Ly@&=VCV(swQ2MBs8+lLszwek`NjTz-qq{i@oA63 zR$)5Fy;{+I@VzhR)ci{|`HTlBoI&DtJscc2lQ4B`#cNt4P?}$7Z~S)!?*Q*7=UJ6A zq#{N(d>$=?DK`=}Dp;I7Es;P5*;p{%7R#ZiA;b7CF8AP_Aa1^7&?6ulpsu*i9@~zB ziW{lb-C>YC!ZC}M!Zj-2+`GLQ{d{U{M2cC+kB-%S#Y3FmFXc*m?0YW_#ow~2CQ^)7 z08#3iy*PAYE3UDm-Su&E3i^P{AtGNrh%9tW1$!R-b5N68Ks#y|;Y|7?3F9O|q; zfI_J98yYiC!)W`MA6E8n(L)#_B-VdAn|f|QD-dsqJn=-T54H+y zp63%E%4N&utpOVv;*93Ky76M9vSRRP-});V>z}Xs)hFT7&sL*bXOdJbtvgzpVrXUj zOxH+{bLm+(Bzog@arL$1>`WFit!@zw`xX6SDxac($7__06)!U2-WGIU1K+_%(MpN?)W!G3CW!4_{Wm79m>}%%QRsU`?L2Fmu&C=D_ryBNt_2z$xafQE z#fmwKMYilAvjzxa-=_vKJ4~L*ttBm-UJG&jTC?KeQ`gbQ(KKy)-iFl+%v?`k-4`(8e&RN z|1B|?|FvPvsLPK#{Xzn5`#BLpp^-xakc`&YbNb_P$AX;jVka5|e!sIcPCk_Zd|W{# zTO2DWvxAsDP)RytA$O5^kF7Q}xL`q7zo){$#$UWyA8BFNm`>-xcy8*hvNJL?Gdu4Y ztsIzr7Hr}j8{{V`nI@ofWAaxuKwdZRRicbl<)+C-6gsd zHbcF4*sbt%Mnf)6YNS&$*@^qQ%oijL&7%S}l^1Eq~fwkP7PCWZ)U9$PfMJoPs>vP6W+| zlWVziMf;DT2f%~yv5MmdFWkH>t|w?RU8^$4Ja+rjTtly9*|p82_cCx$--G3HxE@Im z6U!r%7iQ`fv086V`qO$cZ@YZr^tn5)3l>sJJo>^VoHiefkr{J}$e;10Osoi%Bu_j| zz1V0S0AKc~-X>abJ{P-G>eZ~JIR9rZ(*RqXh5MXf|F@h!4;SOBY+)XUMNk@h-x^CrCz%ggll)ej^sN&bO#$qJc>CqmT>niDpc zj`e@>BkEGDk|A8q6^>Ve*vuN(^TwdY(?V+ z+%hO1nPuyzE;o`b4nFM%RH#SlK1YW(A9xqpq>~f%m7jCzYLA$e7fjH=uIH~^3O>Led4<;7`kruB}zW^ZFtaHU< zT_9ZG*z|@0oLyCpIMCkb&R0wGRFu=geRXBtyi2+&3+tdEm5O)%S;JrM2IG3VS$c6M z{3dwGp7y^bw3>@MO00704DJvXt%FdR)s}jK+}f8P)=gtEr^fr{yagF1288t?AxA{} z!#}plvURXP(b{E7BR{q(ZRom~?E*;m%g(xtHLF4C%02XlXPK5&^X8E~>3Eq+ET05t zQkm7ki}voPEjM*(fDT$HYzkGb+r>2qAIgcsN*}z_y)s_<97lCahT#!HN>wFJwW3<( z9@I>UI&)PNo@=`m3g4ui25owDO6H5b%c}Sm#Eg zjj#GoYLod00blMdy+*a1@E&jP*$(az_$;%IJwaRkWC3T!Uyf!opiU!IG-Nk!ur|Kh zm4jPOYesD#@If*MAF+k`Xk0yy$6+7tr+z~}06<5RQ=EU4o_;}vffg0I27X6Y@TuUP zJkDoJRsD93sVzW!=4}}#S@VdS%7G?DE=Ez2b&XPgsi{um43oH1i|B`FzCqr1u8+Ul zEz*C9v9LENrv(^_oxev}Fid3`8t1EX?$STDJ6`4$O^R+jV=JT~cnR^6NH#R4PANXt zRTAZT6%aJQXqweSulW(p^>u}CbYoGhS)G(-y6O7&J2OeWg4vb7=k`)J-yjSo+eNR_ zuuN@iN9OkFoC(iZus9!yb@TZuIR%YmXT09JUG#qe7jMqu?QV^Us9TIi29x76R8wfa zH+tN+?3b~qkqOpZHs4*R#~|7js&#K&?ivs?rm&i5v5LHPS4?akoO1X;?zY$-QLqt* zVWZD`^Y{HBn;va~)BA;&y_uZwrtktI)_TFx!}S2xVve)~UHDXApDnDPT*R)J5U%P6V0UPLW^FY{btWP5)9oIyKPFFR zJSFb3CQ`lHLp>{{DjjWwK}#+{i)908@g5L)^pPZ$qH!WmCV+Bc)u&&|U&k3Q@K-b1 z3JNrFtyOeWXj6_(5}Cj=BL_dVetDU6I=Z)#{Jffm9jh+j80q7!efXYH)q)zoT@OWO zW@(M;bjPo$>XQSo69{+II)?V#?kj{k>*$+Gz8Y(k*EXik&=IMuFvclu6Q+p6vF^RG zGC)96(z;Hl{2K!SUWFgoQPjq&Z3FX!{sf~Ntyq}?P@De92@E~Y1Bv1@vAjzYM<=pu zI+ebv>HGSo;q(B_q_v3n6fo7hXb-RoJNqFTey~U}*0hkpt*Eb=z%{9&!7N->GdVx!mq01I_qEj2SEfOs zHrV_dtNGvn>sELg6Y_2J*N?6tSXy;3sEcJ(8L9o#3v8yLPww#QewapvMP^3VxU?pN zB=8MU8+$mk3^yDoTe-U+V<};~S!;ru&w;#+xROr}9Bc_KWsM4|m$&?;>ur@@vCFOs zA$6*+Ke3$3xgGns;G;a_>G)uYZ3HF5u9$~w|egvntna* zb4xNXGqPk5d=sjSC|%*tp;UmptQE(F8XUL-v!mfb%JL8CDy_&-huSO#&EiYP0hWy0 z4i%<>F$BtV@4@qW%0C9>Q6AY*#6=(UN(FJls<)x^O!IRO7s)J^shtBy7r=GH8eaR3 zvNIvhLFfRE%QWr{>cDdtO~2b%03+{l?)mAy-Dgwf6!U!nRY|uS1D#vaIC<`+89qxU zNsU0-GSn#RF|zGl5r-m;hr6;;Ca%Yh2kD&!_t)_HZy?9lkPI<+ zlY(6-<(z;>rVYJd7uT#MhZk9q<=}W*8qYa;(?~-DpzjIMqvxb^yrL$Wce9Nzd6%gZ zW<=oa7H{LLCYE73Yg4CiY2j2nV-(dvD3|j4c|VKVV44^s0dq(9eokS|DE|?&R{%>B za=8w>A3+kPwCs{xUM)w7hpmG?EzU9ek~w2p|Dl^0PvR}QwmvzY*Ba^wh{to8L&c=b z3)Aa@47@*yP#}?2WHMx<6}mUk1fy%T;T+ zoyrVnd%}IEWpWs7?bJ#d-BiU1JSxt@gZI?B^O*~5_gu#_1qrZ*psazziU-|NwI44< zpGbMBKIeFszkF|nb~PsS>~?Dw-hMsGT25lO718$bTe#~k+I#U1;z6gR!BY1-uv9aw z@Yul$MTB_`ji^C$6afKk{eDU^^Kk~vS#9n~8;6;K@;hrh^3=o~`69JveF{Py?=xbK z;p2luQ~s6M?hHVQFgZD^Yeu5eTckVB`(`%onaexg0t%Q!6uR6?MUcugu^<6v@C2eq{7Gzld}}R@YH(-C|A^vm?q9rh%wg zHpNg0RMzLW+%HBBQDq%Z_d3v$f+Hd3`44*DaFT4VX>w*jXf8Aa4?;--;S<{IHgAhPQ=o-+Uty%^p8eF2&#mDNfn?Xm*`h%Y< zBY4V)-r2mCy4SD#mU4|zK&m~5flGdJ!c#;@)3d4Cd7c^7=O>J+KY-f_OGMmL7V(8`RX#Ey0&$@pwA194mCs|N)v@6HNGdPaG1ZM76#P3 znaAtaBV%|N6IkS$NmY-%_Gg^YEST|SOzxtu1BS zOob^BPYqPw=^YUpyrgH#IL_z!rIq3Ax_*eklKwE>EY}p`ZHAq=;`32ro!6I7uhSbx zFOpBTE=aij^VfWLSNiBF_%GirJ?^l!;UD(Og}GzK*gYJpjN#>5WpN35Sf1Y%y;XFE z45`9_4nx?l22M^77C~Dnyu(IOlME&!9;tUIl23$ajrO=Fi`fGA`C}F2G)aw9-Y|WVGusOKpX&!&(*(r z!?dY~JqxlX^5{QqWt`I?dngu;TeIi0vrJIa4C|KEWYLNY z7a#&jJ9xDhZaJI4<+r-mp8at~vl|U%ijDSv6aEAR*{y8AgA8FY4$^zePpJHWiIjAY z8OTR3re0N$mVKx27s@#^YvP^2k^&Hy zW7)uP#iURVD7DjA4~6d6lgh>E97dDRM6Vu+8@E9jeh@C#wH_iQx19^Qt70xaZ$3UJ zX@bijQYv%51mZ?+8uU&_e8o-*_-DNdU}^lemi>XJ*>O2C*Q=QBP>v0kiOIYl@;KNb zb)@J}htlU9M2tmyTqgJI@B}kldz19;)4M{p4jB2pfs_XiYl|pjrT(+}Ky|ryGhF^H z5-*on21T2z!5tNdEtMt|-}@Uk@nskSEd)+@t`UGq?mA_#>TAO2a9U;HHmY{#Ay>>J<_13v34l>p+fa6C z;aT}*WDvCbq5rCw8?c?xt`jq)k?q|SNf8&_DyAh-iu*9Q9jaBIh zIvHsZBgoaq0spq}IlKYV+v3gNn*buL?>^DttOz*`Ou@}RCPx!(8s`iXAm0GRFZY6RZM`kW5{WAxKa<7VSVx~ToyVm_s*>6Q z|H^X5#u2Z0cWNNJ^;}3tD2rDuZUh6v_ zYt=w;K}MJ z@%T@%*xl6ai|2)VNq$QT;RH5sl$Z_F2_QtDT>!|-3#-t!g*Lg{J&AUm4=s-Ft@O9^^HBVJmUid~d7C`&};# z7;RxOAn~K8&38@)Zsebq7p*>#@akuMw`*Y!$J@>PJaIxy2@u{>p@%iGetKS9KRlMr z4zsJRfpl!@+W;)fp5abQH;L)Hyr2f8a@#gU3kyK9H zh4p7M<1qDR+k$0A!lc1_MuUzZ@&>PEucX@na}So!cjey#TpLPPD_nqw4tRTe-s$%5 zWl+L5p9r}9O_NR=44-Ck|77JVp-3vAd|GPDlhv2fp;ea+-?!~o5T)NC4f6SkoxXy% z@$;(swS-ITyU5IT9KRI*HyHQMuYz+6%HXBQj?G3aR~-0P4Kr>J*aEtcqH)6B^Ly9S zR%eq68*dIVoo!o7_wTnSKg$lsR5`=c6VxzH&lG&%rj`LFbC;KxUt& zMACtxN6UzJLQ>wS-Z8(b60@gk)KQ&#itx}Hy$Rk+0{rCD&wlpG4jFw?zETi#$CfG? z9nE>$zWN(0`|>P{?vd{Zni{%!Mt!6a!pGA1qnURepi_U0UB;)?!9%e8t==8QjB z`7cBdU-sK;a=J?oXRB|_hN)Z3Ol0F5WJIZs(nUroaa_vIP4u6P9-h~p5ESfdB1etEU8sL~5o zna1DbX81Uj$MLf`@jY!D8dV9j5ce(52j#5w!~5Cck&U0cy)Qno%UgzsvhKphwOV5? z_#V;?4IXARzLL)qpup3k)gJ=^;a^)B9$Up*7;sW!`2CRv{&X`fr^$yC#YiO^{MGK) zWuu~7A3EneCjlV-xO(>doNIJRA4j_UyI{umpL%c^XJ4brDoBNK?@CznOa#aZh&u^M z|B)6C^k%tU+_h}EUUwnfZeVkB66eLjQdDHyePb%3&IiTl`$n*pLQzmT6=Bq4DpWCH zL9cb*Za}o(DN|!Go_53B?Ic%&3w}OLo=*+IPlV4&oon}>nM$pSUJ1&ziO`+bUau-7 zN;X0HBU!0cGK5I9opFPaZT-qdtI3*S&O`Q^UJb}pm4;x~aXqOP$s3MUF`R+q)M6{G zo}EC4Rb?Fq)&26z@Zrl{VEb;i@cqMHZfG@#Y{_pW7?ZwooXYp}KMFb&6y8v-c zd%kr5Cn?kMTil$y>)A)D=oQM9vzEc^p?2<|zKp_i*2>z5k{-Me@ncP&2d2O^_vYs) zNzr)JHV!x?ss5lyL1I|N zlj1L>oCZco_YbubyinvRHuMU5E5t1O#ygxGqz``-H~wmryIWt~DwTF>eu=05_EO4L zztP|a2P~0j7laVc(uGTnv?z0Pkp*XJKVih=3ph=uMh4$0^Tu4qs-sV9U}JE z0IEMOGriy=YLZ_acUhZs{bVUptd@-l8_kx&^RX+DK4nYJ=Ec_@fbbx30b&ade2oUy z0hsstKz`v)n=bN#kR;^I!LxSA*SA!>R#(1-msC)`&?GH(?das1b+A;>Shbj%a>2F5 z_=koQ>43Mv(@ip|W_D77rgTG7neiK()7wpk)>dmDTo|s5%{tFc4TxqTLaKKWv%FID zs6=MD(H5NeTWxy(lusmu+M7)ja~hO$Hho)f*#dZ*;7L`f8G1^-Gz-YUu6d%6)nWv- zF6+{HZUwpS-S(LKlqSuTzqUXM`sQormDoQG#~_K3%I(UywO-dWRr7+hlZMDzXvzm&k=35qizvNnC9 z`aC|=iLM)J3oCA2dIPj<>pHYvd09ThdJ2>9QrD>SQe$@sb3IiCsLBP_)EP()+Vx>p zL~ikae$#w2WPV$Lpn&a;T>9)c#VMV3;lz-w>ccsFbz=TQuRk5VSi`f_G`nOgAAR4e z|Dh$%i-{BP)tjtm?7d=M33aOkAZp(?Td#dRdLQ8_|7}K|5g5q3qhV7mUkCrmR6U;6Qf$GOdsBEgV9SKyZg9SdifE8X&m4ySuwXaCZpq?$)@wOXKeDE`R4c z_g0;kQ*|Hj{r6*c)m}Q+o@>rA#)NBPuDz3AK7LB6AyPT5BFH7?B$|RM9un(socpD? z{IuowbC#iy1)2AinMSp||6>@a^x74SPVR$M zDdtB0QH&Z(fyh7cK)U^Z1Vt&Q)M-aI$H$xWUcDeuX7Ya;mc_iia8kehga|d+-9_-v zqjJA%K|qRXLumhu18Yw4j~ZiMF1Z4X!Lu1WOy?vXS`+*FNldB#NtDkW_GE#a&6=7U z?O(Ispku-GlK=4MSdaq*BEgfF+N&!&s!Jat*%H^j6Z*eMn}>`B|AQ_EyYYW%cWAK! zm_iP(!2nT1IF0{nH8;#0#HNy}ijg|rl{EgtvCFkkQdj@eC?u3DsH#eC61^M(GaGvFTO zCiNu!U!_d)f53P9?*saubX8{d)Gh4;${b9PN)7{=Qw`^w7BOc#mHH8_d8vPM>*i?u%h^z z?;Fk3R3DB-R5S1*LaTTq1$coL(k~6d%G$}C9HFZ1o+PY=2PG>Pr+(j27_jfU_yavk z2p9-?KeFh&yOPEj6~hSDUODv-y^!?hB0G*R?v(cRE?hQr?=s_u;>^Y-ARxN6>^_D( z5TYX|f|$#7IxsDwi&wS}aU;?%I{hZQ7jSxYoQnxjhil3T=-fm#M=WaSIK-L z#9eZ45%ZwN=?3%HwGoD95kSB@SyXordmGD($SKI1dEqG2gyG@5aal$l!~WhgxL^a& zlQToPmjV_1TW?I~T$q6GjAUVCBNVF2vWuu@ac6Rt!J#_TU|p0{q-ndT4h7pO{Jl}* z1mLap`28Ji@shiGqUHf^pzDQTKt~ea!vQyqwn8?w9@poC8UCTZ>#a%5ZQ&^EYTcwY z=3owM#{^NN7(9U{mp83hx+>mWt1Ne7t{>c3WpOL|mm8Vg74OR;mCb^xEG~(0g*3A( z=etTNt+jz(apqEP&AXqh9xnsN*|DyW_alyTIzVwJV1{-sw81E0y0V}D3|!YR zR7a%v*Qm?;D}LW@Fa(~8W9}`(sftfu0ETb3h|=-n#{OzIkbIS*6A2Cl3!w`;&%!e`k)|;Xz(U!Op%>!n$PJ-}=dgq90op+z-p<SQxr&|?~xEcaLz1am`h7xg|B1668DhjW6bHWyKswA`UiHQ@|40dnp?r3YqI zFn8L|$n7Q?NT7!e(2o6IC9mFJF7&{z>b-!}y)<>o3#l?-#!3Rqv2>zm;exk!j4s|H zIuFC1HRSf~9oll-FYHTH1PV%9Q?*SDR%*nEN-x=2&SMk!(Y+csygkpNdcNDFG??WK1_kqX|&2pjtyMm)uoD9;0LL9 z(PHOi;skF&%k-4V+HQ)BeGqFa0=V?IsiF;HX`(%b(-ojpk5dGDBy`&iB!>U6`~ zd+d4jgd=01T79k8VE+be#uP`Gl{oe}Fj&7Zg6(`U8|x5x&?9mn*{4|!Q*`XEgCEGr zs`IS-=E3(j`XQ=WcPj9Jp{6SQT23+iP5Z|^*DO?TW@-?_+FTRO2zY_2-b3Chx0nC^ ztd!C!XavH(7;N-vKJg{qsf|D5b0* z`BiF;Ul|ocer%quYx-rEX-s57ileiwZ;f)HVzRXv`gyOxdn+ zuLuFg+1?CbmdB8O_}%4xK3VW7)+Q9S=fC7}F-R%@Mj-yX_LkzGetIRfN4Y(j6a`j>z>)gj1!SGm(%!qCP9df5c(C@vLd@#5JBH7+JvF@b+YbDiM zgzJ6SWEa0D>%CpDXz0sDIa_+Hy4hHP|GMGNg84(~w^E*;Hzc>gA_YCNj&`70{zQjn z9>B=%{dthP?+S;#nics+=o!FWBSm$nH&gHrO}@0r$US>EETX(m;}0hjKyBX@0js7> zhQG!J41@Lp)2z#mOBoOjE_i$HW}f78@ALhibkQchGw#y2Yq*#-_=C=hFaDn^;aN8# z7yddN#1K`bYBT&fnqI{NB`@v1wCv3b;sEu0;8 z)xOI?qR`GL%=>)-Fs5Gse)T}aUa;Q@J60{=!v6Ek%-Pdnp@$g)-Z}Sp%BxDKhZeqU zw}YC9ix}ZsJ6>TYrQ);PprR*VVI|nI%2&#@qX@1i^d;T3-&S>s#s~kpc=xRXR4$)C#5wWSsK5yNFtj96JHbq1-Dhl6J99z_zW1<)e}Sf z7m_e*cdjgek1EO(4VZjnP#b?rj$?9eIuGSYK_6U22(^~7`DpX*jvvpI?1z-FE?A>S(j!TT(AG(mKd@HohUopbk_ zPkMU_C6x?FoGT4a0V5>-W>Iy4W24_)D`fXE#Y;{BDob)PdcDoOZs8cv`f`H&5Fw+yqhe=s%&==W z1{NO-81(&xw^Sm7d;n_ZQWh)0t-ogwS8-yd*HW+l5E*;$^#Uw#-{Z)9%Jtq_F=Yi`Nm~>*(!snt0R}$-3Oj62_zjhf=%3^zBPp(w0EM8f_e^eU8336 zDXTd*ELndfM`ZWnM!a}CVJaZB2?Z4Gv@Eip(m4ubt#4m=K;^NULGHITq2Mf=+|J{J zNIs)XaOk&o^f^H9xHAiX4;wAjJ0OOeUFJ$w7_PLTKWO51JT8bLMMIvE!?P$>z8sem zhmULb0mwoNvDoUvcykiHpDn<6X|`tjBs}r|`uz%F*bVvcjd|lu)c#}*&#Mn3wr;P} z)yB$xd~^Cv9@s-Y;GY#|F~HQ4mmbZS87fKeypuZjS0mOK7~+*|R-zN*s)Lto5M&9Z zpN;MT{>b@Taa7@urNGJ z6sk)$)5tydl9LaJHp1$ccXEzgU1E>UWfOf)Rbavq%`EJE9}3d@@1GF*9&?l({ZLm( zHA32&gaHIqrmtd03q>UpzY4htt?*+yO0BaM_=Y~C6Kh0)h@)FV9ryN2pedyf7C_I! z6f%8u;wQE1hgG+lUwh9OI`loFwm}*D0b-;todc(fLWYllKc8wCz2`FLQ|Bfs6OY~by~7G>qD-;(IP;N)Wol; zgY-kW@6YvHt?6Tv?pVMkvrBQ^Xc)pkK*|htsWC?oRgtTO~Y?_q{Gx6%;0--$5=YBB<<% z_H(*k!bLIyQhr6Y;?Uw2e}9RWKIY4?12rqVOX)JY_b2(fKZLfe@o4W!G%fA=aRARx z4xZM`#_KH=S)1)P51Wdy@SKiVS!c_LMnCy>ZWhNEV2p648eBYRk-=Z5Yc@GUB$TojZwUpCIBr|>N5}4DyiriO+1$m>r}OGZc$YR$ zZk-fk-d3!}R3{#)Pb)0}0dj8oB^)QNS|c^+3iK?*O|IN%&VHJi zBrK;9>6v8g%utLcVA|J@xE5vq_Lhk@T_vH44u0?Q-Z97^C~`^;V}&K0=M2UWFXO(c zde$(T6NG+yZ&k?W%HF`AR-gKT#DN*m?FSo6Fg6(+VWJvWr$?ha+FjGyuN$*)yuYd@ zv9gNUeYV>f#12Y8aSxA2Y5k2*9|>GrWoJ=Z{FucgT?E-IT9Ii)&&{ZdPN5OoVft@}-~Iu*#x)!K|(ypkYniAf|U z*iv9Yv~Z?Cxcz*f&Lz0Jf>Z))-0cJIq6+bM7H+gq9wtX~HI_$IxX;SNAivfvD4+3% zXDeK=IACh4(&RF_Bzh}{kIxroAZ%~A7v)?&F#iIy74zy1X6PmeWZWtOD%`3Sg7SVA z)uXCm%*Y&SJru>o{e}@ zen(vTq-f`jr~K~x`@W@5P(eqQkL#JCjsA}4wwMo5eRTOwYca^C;f{y?j=2>h79TT0=KZyVb25nYP&SFp|!N~fBme+Am$pp9IjdM{R$>uI*!#( zk&=Gp&!UE^=x1mA7+o7idOq(avD2{2L5unn)1d(BlXP$!jrKx&CJP32%X{GNL$GJ*wIaG+R zU_v`A&Y0qjRYhG^V~AOp9{OkEQ9Wk`GaTyN)n98|L+_YPcM~+Gl#Eip(wpjsc$tRm zjouX1S*c6n(&J1cgQf)fz?O#sEg z;Fix1)4Si0Z%AjHseXlj*LXoY)h(g^nzj)~SMCHR48yx=AHdcx5l zAPwgivrqh!~BZdlCkB7hLAJ4>vRod3s>EpC)h@GkFi}BV8%LhJPMjzg>ilW3s%%(Y3h6`ilzJ zw}>RYB*)WGwlSBmIHb*pM>cL?Rx_TOY(mHvQd8zHc{YrcNRPMuTGO=!qeQ1-NmhQ# z#F9~BDqiR%EOLkqEHS+Z0e10NF)rLv7NlSPa%EB`@l1iUnn_|T)RSb!Ym)kihaQ6! zre!*;a3P8Tsu)Jw6M392^m1lzXzqiew^K3zYaaS*+8aoFkkQ)n#OZq8U!;}}?Pv17 z3dnay7o95_@GhN0es0nR!@ZEHh`*q`5eq}r!)YY9mo%U+`BsPsb+>kiXWKp}P*XMt zCszae(brsw8zzYEQkHGGonFjeO;V>V+_WO@R1>fRds0xMcA;BQ}C2E*IWLj2ek9s;$ai)EdF zd)C}s2AoN4Ja`h?-T=B)v=T*2iCR>IqS^_L5@)op9f%pn++Gh|*`1REtyNLK2;A0p znl_dLfI`<`L1=cJ;giT^^K!$#ecGzQ$f)ghA*m9Bjt_K zLgFuKM7)5~XoY`1{kQbj>IHveR?Okl654#dqXP{K=pyG+F7czVhx0GJpGp~18ZZri zf~C!Czv&+i^f4UdV&K%|pQz(v2c>^gPY!kZJ=~TDchdAD?Hjk#v6225*#Z4+!iGX- zkmFjE7DVFL4c&7Wv!Sow1EFr5Xb>$REjVBn^xq#CVHc2-X7>{3UmxhAL)OL1(wW4> zSOl=I(3}S{P|O$s?X4g*WA<3Y0uvQ6M(_7?4Nr^PWp~YXSsAmpPEMg))RIa#5ru|# z-6DD0`p<``?o^zk%ubZ}N8+C@0EnbvjDZSRjt#7sfwb7XcTjD**DT-J)aIS4@R!x5 z;ZDbJ8a&Y!YR<3h4p*U+ZEBTHsCtIu&0T~QP6Q9=YYzUi5yur1fa-2ND`5~Y0FTHX z|6xI4q7jJ1g4%*1Y3jF263H}HBqqM)ux|>Gq?8jx61)S9U_QP~eiUUs8R<5NXP_!? z`4L^p5=CCymr-uV&i*Di{(iy8#KtHd`atws0!kg4&)gVh!gDa-)576V$EKG-0;=Xp zrwIHHFu=D6Fx)!$X?69`j})+pIfdeN{=L9)Ufs4ywdnM@LAi|iSe@pJI<|#yG$7D9 z^VFO5MM~1+#iH$QBT_Xv0qXH7&F%Oca>Ll|+3Gh_Aryg+lka9kow-ZR@2k)Od`8@S zmkzt_PtHS2SpE6x5B>t z;*yP=tWnX??D4-1E%FL%4EANziobzXL6QgNaSRHqVxB%pS-o$EHj4j_izpa)`JuC% zJ@70ZWz*%~Vjt#%b?bJiHuhduaAjUw?UKb^)Q!E^wBmiyl5je)yILY zH)3rjd4D5P%)D9u>(3{`NemM~tH`KLyr7*g0Ezh`GXwt4F*3y=vvHQ3_ z4)&`h8a;CTaR`*l;PoXTreVL0`b}q{lHda;1`~JOAzkdIuavqlP#~z{h_a#P$SkGV z&#&#y88!uxlf!Rnvc!EsF=JSklgkXiSlOAPLcL?nw^Gi$EPjyZ3+9#p)jfVb3C3?S z_A-)1%4#N0qhw!VX-NG6&PScqTCmmJ6xkuGYaJFr512q)9XyrQh)P=V2lOCUBF3 z&{g#t^l<-;+c7phP#J#dfLdmlMv<&S89GPG33lL;k1wKyPG&F;idd?h2M_*xxcOtk z%y>4(tiM4tY(s&Dd@W;p8!42%Wju(lcV@#$s@xGUb-{Y)`BC^r>(qM6c@*wp-O@Jc zWz=Q3-qx^42}$PTjSK&-gB1^f)*w8`VQ5^+hu18dzmLG%@#jFrc~ZR|`vRZB-zB-V zW>a{_I;YgP@i-`xXhuaVXeeIi{1iS5`pd8(C@b~iv@a*T1N*+O&Q&j_z&AdIrjlcc z$N<9w0?3&81@%bG2+e ziK&)KTa};G;=_@xQh#dfi1@NSPtIQA@esyz8t(m8esR8QH*1i>WD@lRqA;4XCqm~T z2K0ITKp>|ojme~4INE@+&*ck_(#zeI4T>+C$f4jsDe6-ecJ6G;Av~!MswzlN(tfDi z-};PY^ta!WW#eBuh0K7ySldkX?KnN>lK`l2aa^n!EV?C~g>89ijAJw00QgjTo-*2wp? z+zTeg=;tHI)QaJh6ir|u8G0VtvbJ%1{WxBQjNK;O!{_v6nlEAhG5Ap8vS}(M%N6_C zFSmDiB!zWg;`RFbKCLVK=#F_n*w)syc4E|ALhs0;0AdCwOFmN&Hzjf$Y!PICBT6y zSvGV#yPNrq7CX0LPD?R^2<6nQho&O_*b|M;sF;gC4IG7d%jFKlr~5DJ#3lAz;X_KP zyaH?h*I<7={y5pt^|~)f=B%`1=Xl6g%KX(a0$!{NE>cZ2F@9_BZ^lZWj|dfBIvoc8SQ`*YsA+ zqLpAEr&9|e#y0nv7S%OP02zgm=-WlKIN?Br4f8VvO$uPDsB?M5;)D(_w!kN2_$rlG zuBzse%fS4)<+9`YRYmWOvv)H2hi8B)jwu|zZ~Ay+QhCoi-<OW@N)o7DuU;lDK$!lT@G^&_L~BamXO+s$DdGd(i`_ zSq>+Bv<t1kVO#jS%xW=n|a|7#b?-R#U>*bq`N#D{` zd>z8Z1*V%`A`;M1h1jL^^1HaUo8zppk#Y^~Kh_8&=g0+TJHpDYLg56@R6%0W-17Pq z0e)X&#?m_v>TRn^(%+uRbkuLrf=q|D20o;^N$)4PKaQ{lODA+4;LD>!LJrkUK4b(m zI&vwgBF)#w4^KNbE?;oigb;DFS={IZjvLv3V8Cqd^W8C~Rn9-UIGg%p@WeR-1bf~y z9^HJ%u4fc%bq|!Owa}vL!)dW^FF(*QsGfG0`yPOSgsUWwtq=IU3sx(!37G+C+aAj0 z&j@yjw3n6Tzuau;BH9Ej;-^>vC>SC&9Ha=HHq*R5>?nAhYQYyX!bfvds6Oe~0nU+D zL|N$pb;4L%rz;S=H1f-n0zJkKdpd^4xn(OA*1Mh%@aP6&*fsn<*qwoQHT?i%r>sbN zj?IM`u)@`~vBllkXF@{bhUHxJS3vn#?{w{zg!k2%V8+uEMN|Gy?y+;Tku3R;p*q{z zLhUVAS%Z+e?M2|b7L_eGFTx9|%U0|7ORV!Yx_o?mjniB7qrDd3{y?So3YhZbF%K+4|XL+8ChJdwz)W2}v}+)vm;v4k`FyrH6+ zMojr`HDb$ZRyBO_^wi|(2v}7@fNi|$zw=&N%#8Wd-gzpt&!0WACkE zICUb3b37+GCtJDcPokba9%~0pKepzU;zdzG6GiDva{5>i3^I}YbPkXSA#m=er3UN= zfFO}Uk*>*8OYzK0Dw&>15eeI4fAaGVHBB(8W4qOh!`8ut|2Xr^eb5Krn_HE5P z&$L@Zl>zLY+uur80(UCq*odcuzB|#n!N)nQB4e%*WF(x~{u;V_AL6!!C71u`y7)S1 zyDy0w)n_x1rW0?MvkY+t9o_$?b<4WEj-*81xMi!1Q;HInesK|?Yo%2wJb3vs?Ww5q z`Iik&XvbN3D0GHkZL>%QT8sSTiu*#Nef9JK!uGj2mz2j0 z2Ut#^5h249d)&imSGNKOyW645>qQX_yY}8^EV+&nxWmvD$5d+t(80o2J*z0)$!SNx zavh$Cbf)kh%?;qVD8`8c@=2L9yx_;7bOm#Y7&v$Vte-iMs*v0y9LwZ^>*Z<++ToDf zObXy2K*0!%nohZWFkz6B4zd*JqCu_Yy(`WJJ6bWF9(bG(clmd321N3r31XbM)x<cvx}vt5SC=(F58oZ~cg=@_CUP~`9ke1& z&kyn^oc6ojifSmo20fyi6<&(6X-6U9Prdy7OEJ=|@ zjXxgr--jBMxST2o-!0wNRF%mcUBj7Py(Fv9-6pN|2zAV6`{j{dH5nA~hQmBN`O1K^ zCUKA=Mf<%()iCF{AAroZ{$`^LNZ?^1>Y=(U`a=sR z@`HBX6<)s=pV{d5A=ZqotqQw+7VynxA(STIa5<(Pb5^;4Vpi!OA^h`}*QEY^hG(3N zkW?2KZ&@KChMGk8j#;9FXlsTQcFDg4)%wi@v1nTpY7_ODoSRh}-!Ki_(DC5E_Ajq} z(*Y;BGZ0%%5xpBY|G)}B=jOYf#e;#J%8*9eAt~WFK=Khk<@Fk8_6Lv5cBs#J!O>oLXIk0vmNMFUP~KchzAPqG4K6Ht z0wHIoUqotD)odYl9x#h9G`7||h_DaHcWkg~=$@F@hfu@UR`i5JUK^n)X$MlYT9%Oz z&~Q%!g1N%poSTBvX#uKQk+0iur$a-7j5}Tn2j@{Dt?tCjgDAYf&I(}2?JDuB?dxY} zbc>5r+kyp)NNAfCCkWN$ekkkZ=!Ky%?ohMf1_I_B{I@Gba;!l1rEWP1|3r*L(czyx zwY|ckDjTI`@v1(qZzpua8!hENe(@okzC3wNDiQzl}ETZ;G6q4Zxlq z2HO$Q9v&O(cw`Dck6W5Q-`Ni~(d2ZHstRifi9fSwh1PQAr29(QU z;qz$Ht83N!V?n!G1h>`$_=fnWj1EG&+n4pM1Ieu~=iuE%ot-bQ9J|}~v#^|8=GU1~ zH-m-Wz+}fPZT{c()gq?ZY-A!(o7ygCJdi5p?F**cjVyrzi}NTC>r>xvT7g7!Ent)y z2Pa3aNeJEkhPij=FT*Ku4QqB4ZVp0N8Rr-Qigt`9l$R6I8L!DtZHpx+5aK*U_!$lS zF>}y4-rCFd5?4K=O;B6Y&cu<}+7ppKqU7?)fy{!QoWNF59j&!#g}+PzH>-WOc&OXa z!gAitO%)1Y2%Y&XwDp8^b51)${H@>Wq!I6X;Rr}q~9UMA-=8Gg<;}GZ0R-5Ph{(ij4 zmxHNr#b;EMTe~NIct&$w6Nrdbw7L$N*YKk~o|na)?T^NUFP^;m4yAJsEAF}p$(~KP zB24x*#C7O)9LjAIiCc!l!gpNd=rbIjW;u&1(qxrF@y%LP<6^=K%#4N_>O{DZL|j9? z?yv0yqK_FZX^NHKrT3x^^4g{a-|g;%0oQpE*=NITKOe=WJ?X@M|SUKl@ZM^e@^+3l$knazu0QC*fxH z#Za%>02OD3dzPB+Shw?LzSXacyNar=5PVq*8&&|7i1UMBJ~#6xIVTK6!-UP^XNBG` zP5q-FuJ8&p!)MNUYgQfZTuX>f+i>mCC#w{KO?)fmk5_OeW7$-Hm;siM!H!q=H z<;Z5r%JNVT>s;)A5d^%JZ5d9P{cg69im5mnO#TlArm}t%*~?6LmFLPH$tBPfqd4#A zfS!RCW^_ivP8KA!^9yGIFwvdR{={Caq`CIm#?TUuN-Jy0s}^NxRDu9}e4&uI!#TSs zh6d0o>FT(rUT4;Xg`u9Z8|-7E5b4x$Ia(Y`~L;VkO`THXH6A zQrw1iKE&A$${e{+B+}wRKBG>i-7@`+sLiEb{(csuU%pD$aZ--EYJY3r+pKFO=kV{O zBD2)6!`YV1NKONh-kxpx^Q-w)R-$hthO^(%LAk7A6&D1LFnYFY<#&%UvdHG2fv^td z__OkYsm|f#G4Gm*grNNcN91eP$Us#c+xC&Ubmtw-Wfk@i*|pioRiwKHH&9RUs~Z4G zF4f#ZD=zZBK(^YJ#4Ii#1wsie5xGXI@-q9@A6cxHIpEI<=r;y=P*_#y@8D+sVIta4 z<{0W3Q0Vea8#NJ(&OwPE=j_2!TV{^6dKsymR=!dAjWfhc!VPS`3C8BxTFatlIjgY4 z%}tjmpHYn;0A-d2)}gh9XsYoX{XfPD;!daBM(S8cnKraG+Xp-67VWo9iiB zhCOOcd*(^6s)lJFZm0NAlsSQ2M3Z(9(4h?+Jl=cE4c%E`4r|5x)sQK@bO2X9Gsn6c z0+(O87haa9{eX%UVR@2Io0PbHvg4HQ(nlI)8g)% z(=^aViRj!_VC~A#eqyJ|lO<$x=fp2|M85ai`C$Zqi){(&&z}t-@$APAY^NHGxE%y2 zJu^O=)$A|Jv^hc+Z6MbM0j>l^>_P}(Qtz?KYTL|lJE4f81*6e1Cy0dY_;UNRR(xdK zY-&}SA44#7gJ1OQVaS_@wTe-Xl-@A@L;BK!w4}h^4eItb4~JDu*ct4_{4Bu9fmK~~ z8OJ$QCXigtSU%k_X0{WUsg(#DuSTThv{R(nGwtv+;*p$D#RH%l5%*@Xhm&fOjPssb znOttSulSm_i2D+wSvvjnaDq?s+O^f$vcykJ4Yp8hTezeZp7)A_tVlLT~l)}F^UhKB`L+v-}c?Kiru z;q={$HI&>p0BY`Ao?vYLbxZ$o>^-*;T7$qSm2E+@z8wa*V-Ol4Ps zSSukxIi-a*Fe1G8sJpa3zud_th1}g-fB~o4)5oR+6Z_xo23(oV@9aweXRG;+MF`MU zpr$xqJr7lv40M)$b8;FA+WJ=UI=P8j;Z%<>oZK|W8*C~I}@LQpAoLVFT z-bqPgAX^-VWWdsBjatM=R@ce*kTM^yiQ;MsI=VwK=#=$6#YX~GKiCu^h6ulUxA0R0 zJR?TqwNS{+o-_s4N+HdH-4^j&OacC9?gXflAh+zIq}AD*@Ps50m^#XOe*cDwrqd}G ze!}lo2Zr>z&DOeSE#u4-wKcidaDDiE(PkPG+i&p*NYisl{vt1v&YrL4{%f1uvZb`jGd-)IHHLL!HF7&gGqHvT z*;fBUPFam>AhIq4Go|>qT}!R*Ocb1!1f1MgE79<{e`cDp!s_7fg`DT~wH*DxBN7Z| zm$28w=WFApN8U+*$n=Z55q8}uhLVx8EsYd)8K{eGFoPs;abU_`>eaHqR+Lv-SuTkJ zhaxP(J7^KYp(Ah0@bRcf72q@Ww2N`#N2gaXq8HfEWAo75-9zx>AZZE4yXzy#87zDt zoYBGGpXpwFnYC;!#UAojY5lQ*?KD~&`{NsiZJPmRL(WGuj+ELr>UC+0j*`U!7V^G_ z;c@GokZzPS`X^2-7TeQ3|Jc~G%VO)-LU>YDH)S+;ob9vz}LZiyZW=X;p;91u&2tP11Q^HPWE{D z6XGz1C}YmoL{Xu%oqN7KN%JG$A||O)2xvJJV>xmkw7GXupM_V!G5ePQbJ(jUhIY>4 zgfXMny(R4I$am3u9rOFT+9=SX2iKg_=CH-7ulZeSG5O?kwc_8_0xye;Jeu+6SAkWk zRw&)+3j8?>;TCO9-6I--lvO#8nf#seKXzUL3{C0x4v?xIKBla9-*5Ii2#P@_0h4xU zQ6)cB?!3AIbV!mN42#)&&tctXHO0{sA8hu;`DsvB*(WZL5b>BEYz0iVo|R3d91qC zEevjBvNpB?u2=3Zw~mQic3)G~T2ksJoA-jl86gv;jnr_wxyzv?2TtQ4<@VHvFbBepf=I#RxB|I>9_7B4KP4{jAH8qr129?@PBT>qVD z2+e=J&p)q&2+)^wRwFcKd3yi;)s&P#J^I~9EZLp`s``!K#)6Snhm4GP%oQ3E`~2VRz=YX5vC~NS+h4E?w{RwS>7XOApdcB|p)H zxxGpV-ml1G^L!Z#Qcaq36_runXHZP$TAN+C21X;>X2+_#5+z#JuA9ep$pj5bv9a2j}_EtY!XP;^!DfYrb zO^b)1si{xYM+f291ab^hQa|Fg{@hY>1=ip7?czb&UKr6*X~x#CjvWOmBJd{PM;*?q zX|STsOb;IiLyfCDS&!ekKZn4pzBHB0gxSiL?fiLmOJhHz#XhZI>8GgZG7iUJhzgLJCG_qq@$WJ*&c0zG00;>?>G7O#mThQ_qRvvHdDHc^ZbtsnX z&*vw)op`r?)BLvS% z@~U!C4aNdomdFZR!XJGl&X(mje+&$cT*|(o42t;-uq(_=?(Ph7g3NyM4pV@D)g0Lp zm-Diz_I;b5=^L4=|w~x1J_w&C3Wm;YOZpJwv4wh(&CE`#h;8k`|wy6*ZliD&WQGj-qeMR?2I$OthL|5 zgRGD=F~mNS8q1BvTpvD{49%!)IM;HI#3Wb>)#$7l&_*)~7s`>+a7N8LT!|{oi^UDt znr+7P5JDh2?jW`Ir{c3YL-2}f1`Wz7W?A4#sQwq}mjR1TTWBCO-u0;2yRXn~cz+}y z(X^sDge|k1e56&1ty#u{yTtJhd4tMYGwV=A_wDscT8GW(HDyfFPLRuTJ7H*l!&n_7 zmDDC-Ts0;995=9t)7)Tg=;B?_v+3P?&eDKqP?|O1jF>8Cp53+ny=VO2@*c0TqM6V3 z2%k#uMzYn;Jyf79D=RWj4x622&_BA7= z>PcE9h4@Jqsl@4o&lF4-iM#s-`u;(7X6DVh*Il3bhJu~#!7}3$`UTJ7xI51-eeL2? zy<=C?TpN7hH*Z1Dm9fiKy+OYsmcXoHwN{&j_=<*sBe=py;JT2pr{Jf7r?RIs%l^ia1{eS62sABpv)63V9fZ>fB@th`eGzatK#Xg9wa9pG^%05N(L%M-xiIR#EoQk96op$00r274E*S*GzXd7>*XopAjlWK6^;7QfF zQJ$_7gpOq}MmyWUe^-Zjogz)_^A!tJ^xi<2F6weOpsRB>yjWmv6!VfeTzi-H*dl?f zta%W4TF3D_ppPr;uAx`A3GTJ6^$QW(0uNcO+M7a7CG7m?5OAb}-4*!BhN4dAS@#`T zCNK%zAZ?LAD@Mk}$|w`{U_a!(@O~)<9*f?)s+eV@@NBIe`Ao0sJLoukq*<2g0qfAo zCvgqujh<5!uj)h}V|ylSb6w2RB&fxp*hR|R{2HNU!dm`S9{LsU# zkc^5G*LApf&HklZL#v@GvOX7A&P<<6#5o9pq`mC8QblG`yW5px2;wNW9PMBpBG1b= zZ%{@r>WbYTV%@bRJb2-kB489=__28kXEJyZw7X}%{v&F93ocOWB1+cnbk7b9%N@)` zC-Qo=%j!&GrK0L{%4v0us1m#b-jBEYB5Yf`G|}>e*T;G{e!3tBId@h_jH2N>TB&td zJ5lRE#x<_F^^4j$3?kT5x0N!MFU2VwbdcPg{*3Z!Wet(wjBL6C?)=sv@SQ%(un4$Y zzPDtj>?k6mYurzx=Z<;^-6_^ISg!e~5!Zy#>UWzdu-W4-0cE(;>OHR>SANaOuOBmQ z{Zern?{)pnc>bYUJnP;C+AR%78J~n^+}UaR+Hwzw?j{iiu$lPvu3MgYCSO%&e#%8X zf|NO6bg=BGyuq5@!N<=PJaDp*p|SSz`$!<>p{V(md(;47!DB44O6trcc7V5KGsKPs zO;d48*BGKhbpB$dQcDGRqLSa5g`|{gV$=Ip^02O6#4GP1dD2N1sRj7}MM7ee@Z^k_ zpWeQ{dbLgCeYo^{S9ry~dO)66NeAcGY;%42{@_9e)5%N}1pJYZvjZ;H{+~?iaoGu5 zm%(_Hb!@^xu?mhR_Xjd9e2vpOZ#Pl-iza8Oax`3>_+OtK) z{iJSC)%$hX`K9*Fb(teW6|1fJz&UBUOp-;w4rgwe+(U8-BJgJ;mF=aW7u&HpV4U8Y z(Q4nR8TqBY(;Qc%Z^%y4Q6QQ!^=rr%n?ibxixh6eZQ?0Rn$~}QxnPsjAR3sZM_;FD z_z3~_i`bDkp=eytphF576Q`C-)o<>vD}Srf)7BArN20K6xiMq#g}fK&z0VJG8`dim z*qEKByJ~MRwv&kFnPMFGgyES~Fo-o&*6mR@@@N{x1=e$a6+-z7699)tbuRr>x; z3@j%va-J*w1itgc6FO=IV8XB(`C7YBw=hWP)f6XcWPxD){Eyk(8d|Qj>0D&3@}#vu z3e_M)9U9cTWy6zOV+M&e>>UUwf=(huhRr6IBLDvDx;)j1VM^iRs~naS=IEIJXFIQF zeeVQ1eeUIuFw+uuO$p)knFaWGn^JtROxwjLZX9Yj(|L?V@`ti!gy%nQL}U8ivY~-> zr0kScqv44o8&;DTN7AP!qii8g?n`EaV&w{!t^Xf+ZxvL@7Hx?ZMHLk8?(R^yI~#X* zcXyWp3YU$$yE_z4;qLD4?y#}uoW9++Z}i9edeQyjW+!W1Rg_}xBS`dv!ny?VE{Z!GfZ-uk~-iWb9n(tHczpFWt?Bl|ICv68^~i@LBU?d z^f}=aEt|CyO$8jAV9@9p9u_OZ?)mh|U3Bfpo0EH+_n{W#vBJ_M-30PzzVJ!?Pc8OFH3~l@6H& zJ$FF|fomTjF71zY;~x4Fvc$HpzD7)q(7DqdVMR#)2bwH;XXQ9g7vrG$**#pcNxiuJ zpwD5v%NRJNug8N{IqiaM^}=<+==tYajCVfieMEm7`iBt~f`BVa2VZ zFYT$X-3hlUL+Hy*>CG3?QL{~s)frd2EE_TG(_d@pZAu_G@r$*qKd1J}LD3q4r|YBI zOkjM;(XdbKqEv0*Sl_y7x%^ zJJau}ga+$%&U&VEOy+pm1l41ttmf_xxSND_fju|L$CiNvW^Kl22!7b4;{tKs&;8`i z2I&dH%?3+L1V?h~wfK5wWb1)NhhraWYd#h>7To{>0 znzR=i3M`j8IecpmzW+%M{W!@VOtD77a)U< zc4aSk+EOTQ=xDx;BA{1_(zu7?oii){QEKDaIX0Wunh82dwkM?&hQm)1waZfR%CSh? z*O+R2BQXYywL)6fjI+Ua$KTvS3Ad_I`Nu6OiG~+pI;X7aYk$2NRCc$nXHy#WAi5^E z8=Gg&O_{u{u3tY}d zIP6kN8>PH6)Ze`?SUM=*%V=5KSL%x)ZS7l0qaE1D&xaMh-r1cYt$r$hNQybYC)Vmi z#}L}q*dqmjb)1Qw_v-w?DU@_IL0S~opxW5IIOC6xR4HC)tfvg9<%#N6}X3-rY7^(5`RU&mUT8tS*0=X zv6Iz`K;gbLm(G%!X3?s(<_CvLdf3DO)P7coX!{6$@&MaA0Ct=G*RiWy&23{X(6#vj zd&7AFn`-?07iW26%4O-i(*>t%Q}YtInhNOZ96Egmff^|!Gr)FwHq=mX;tL`jI$n7TC9-$Xwu8NE ze)_;U;_?{Jf>A=R{@OY++f{L%1-UU68B24L>5Kuq$6JIE$Wd$6*Ap%w$^>Cf+kG!g6?LS zP{HUq+U1`<*!0f~6^4 zfILT@mIw^npT52cD!(29SQ5TA4zX)ZUrh$|teRS=9z!sf@AJxFH!tL81KV|VxruJx zr5=7jS^IZ8^pV9^CKE_6dx42Dgj*3UX?37CNJz~=%HC+o&yLm+mmsjPs;+Cv;Lk$n z#*CK*9=rXW`-d9)wI|25*-} zqiL%Wyk%}Qry?!2+K=|6;G2o>w6CT_7HKup4Wptd6~^}CswQO&&IP__ru+O__Tvi= z74(fuqQN+4D&}{!jsU+J$~h{6uHSdJ-$%46Lul|5!I#2e6m|I$_Y2h@1~qyQ20@Z0 zT_VHq7pBSM10~Jo zwaW*I2l+T(I?9kG(4ldx!W-kiDx_HVSqs)l?Vg?L%pEl4O`%cP_BoBQt=q1%5e)S_ z$+)E7mko*+SYRb1sRhMFuj^cU7p(AThf9t1q{tLsiw56(YM>j|I9%P3#~wz6M^6?~ zpP{fHKPI*dC=c-Ti)y!qLSx8DUmWY*VpE;C-Yno9mFia9SQr=Lu9kIZ*2MdjKWtZt z^f;W;`DA7!>g$FzYrllg2%o#Pb?ZP3H0E4&{|1QF+ zcO{~>{I2G`JlUUjRXH}H1~)|E?7512PWTdUmH19b@jDb~a)^%IU>_z$ucFDx8i`|j zh009=-F-m+0EslrwSkz$vw;hTEVtDzUU*_8E&M6f>7IwhV^1HgB92n3(nmO4Sfo%HyE>`=j^1{kvstanm4-WEKj)#eu zd~bT>TB+82Ml8YdSTiCm!oya^8dbTAzo#8&Rq@TSvMFLs6VIgE_*0DU*msspl19(# z#B!#2i7T~j#dk08?rTpl(Nu(W9f`o+-F0PuuL@t}QSOrlzP?<4O5D}y& zs(xY0b`l(O*>JD*6YGPo@G})FZ)$;Z+(Ti7G+T4aClGB?k<9&Pn1hl1-Mr)%Z9gn{;ZNn2nd z51dHC+*4XeCc@54s^l?SD8f5!&M$A5!Omt@);B4_J*|fmdh4j1RAQbq7&(Y{X)7&M zpOuilt)-iwx8Xty|)=M>tAAtbLro@vTOIXgtc&6Yhkn3cNQ z+i(&=yJ!mCUb`+@8QO)Bh(@3sm{QpO)s_8WZN!ydjfbm-`r0UHb7@oD2wj4R)pDKk zWn4N_b9HRAxhuB~C#!v!z|CT|Pz@bzclWnbQk!5VGDddN2dKF$HG#@tg7`6(x*t$N zKi@j`ZEaQss7(=yyPuB3f%gT7eC26!0Q@F?vtXLVgLN@}8~qafjoX>S`Ox=x*WB8Q-zeBXz2(JgXvoN=)9SaKcVhy=_^YA;vDJmVb%% z-P}#Xp#kMN=jpJbIXUd|9w|G16K9vm_F`XUsmdA7MF29D!Mrl4E@H14Il7LI)>ck7 zlnu0j>DP!>kWO1kNk_|&o72aUq7%lW5o&?x)jWFEP&ZN&Lm&1vPEk}*^PyBui>Chp z$B%w?j`D#Cabp?>_+TB8{PL$aZnc4t%2E?bb?4CAqslTHwT$l0SnU^x>CO^0La5E( zP~lg+9p_5d2lIWpE+1kx{3Jqs1y!U z$V7o(P%CfKDZXIx=eF8i5Nh_=W8tR@D^@u~4N1MMkMiKrM_5Px)9bI--g>c%Yk5&9 z6pJJ@Y*EeR()eP#x5fwUSTzUCJ@ETnjO%#q9&=8SjtpCe8Pv*L9K>962n?HZNVR{O zdPjLXuzAN_i%R;uiM7D2krEA-cXri@9&`{X<2&;jSNSK`O{bPNKXMXfMV=iCH z8uJ$?$f4uc`C6L9%ea$opfyCglb=yoRr#g#el039Gflc`jD;`x!;s1cvsuzmY&&1s zMk$Kp;@fl8W4*qIrl;C^nl5jyYH#-L@Q|8MTQ+W0vqGZKt1+{lHt!6J^TVn#f#(zm zWL9~Jb$A$HF*Tm5s)3b`O5wo>m(bD=PM+i)NLDUlN3FB@(EphJPFZ0gq^TGsSvVic z+uFper-@BP;}K46oVAD!uq{1UwLv_wvR%Uy<2fl`Uv9J|=7L&LGUVXSt4=M3Ch2I1 zJT^pAtT4AI*E&a4f7C#Gf{E6g?<8RX017(-YT&y`}G4yFut+?|+%|46M;j-21Zh$EEL;?;X=8vsvPqv*(Wt z>x>kvm18Q_;m`d)^-rW7BFE`E#8rie{OpkzXram6tOo;StfMNrbr!cCg<7KeT6XPI zi+$3ubz$|T0`=ZDbFD$yq+E{Ss^jF<$MaU3(k#O45VS0lL{2xwM z`L6!MG2ORppJL_$lV8LNbF8K$Ynzw$+^DP9TMetIJlCZd@?S0A61jFZHo8L-{jaKY zn`wpsdoQjfl%d=$C67 z@C;%gLt{wxyL;E)FNM?v$r|xX)nlvp)n5cK``)AgBdx6<`= zgNx#mYOPFTu|CmfxQv8--Xg^ohx5>!9x09cu%DF}p+3)bJml01c|D%h*A0(Rx#+@` zW)8{p-TKWCG?$eJEFY}P9BLPxIlP!tr{OjuN4`X%9dwwJZgU$y2g8{}lx7`wCsP$x zT4*D0m6x?hzR`dn^>6O8LZOf!HIvyWJ9GF%N>#!bZsr8^QoO&S?*&)o@sXcy$lzD? zYN}PNl_}yB9JPj9==6nCU)8sGR)jT}33n6f-_{D@&Pgg0b^E$&oDZ64{$f9PkT?4p zk1;SkYw2g~q-q&xL8a5rbvghn?dgt(3#V=<>F)5c3dHyLp7KY{&)H3C#ImiYrFmz2 z!Ue^~nZeCj;iO?+e3-G~O#7d*q3hM6;y{wGjp^>LVQ66CN@U{GuA_sK`KI=aK17*c z?X!Uog?XrL8jC5%)>M7GGTTSzrZ-R;|C~|f-5ZwBQnI=m`ux`jTZXQ0&VBOG9=4irqV~e z@QJimphd4a4Cm~YHON~5G4|0-4Dz?e^tyn}8}?&T_Q-IU=3p{C(^%$b{lrU znk(qKD{~-$*Q8_>id)ZzgJf_QN);w}A!^q&kGrmoWX~dgwaja!Wj7&%r3XKkI5X-N z$>axTP6?A|5f#0rTAb8SLSPOy3{CJg_(bo-rVQ(}i2FBK+`fURmC^{-&QM2ryGRvT?OcP+*w!~_mE>kia)G2K9 zn4|f5z(7o3_Zk}{kuGPbTE}+oqvdw%|Fx1k^UTwt&Lk`wC1LwG!CL_ssFQiAOh6cR zDv1kwpBo=mEB}Tozv|VM`>4wMAL|RAf?q=5izfEYUmaO;!W+vM%RL+yff5rNtUM@- z@h}{2}JAahG+&Pmv2_LbBI`Lw{ z>cOBNm3V$+4V93hV&RV@9fXiH$$MW^2?&ytlfG*vf6)-Qq>?<8bZJn|aIVJ^(vi(W zF5k2sy%{Yu2s{Km?@ofP%= z7YzserbB9sFSs2YKiz)es_2qCQVU^wXesvYtl^Y7ObAJrSba0A8H~cPQr}fT}75XMTd;b}m_=bD^rI-ewiL{DF`Z92;37-z@5pFWP_F1WRKW**gok{RF9=NOnF*i3A2yt6X zPT`=XRIXEJkw{#7je_Ubolkkb?}q99O)a7AQXj+WzX5>! ziL+T6ZAN-i*<_EXI+f62fmv*}akiQzUA|KbNRO^ADiaQ^L#vkN@uE-eBN|E~BQz|$ zUU@?7qlN%ZUuB3S7Ee6%L+vCCUK64!X=PPuTxK`9YwnJ_P0NH5=2gz-tt#=xV_!N4 zyKrZv3%EqGM9Z{42dy?kton47hI>aP*^pc$0vno=Begfbr9-e8Y)m;aKcj+XFqdf_ zr5B6W`e3WkT%i}DVTkiz?>FeW=B8O0m%~!Aj2XEhLEO!zJmQkh&rqK)JZHLL&X1@ha=<3T>upDT3{%PFge%Laz? zLWVq~9|GLDw8DXvcM~KgekH~clpX$oX<ND1B70yie`IKO-8pu3IgQ1@KUeNq?2*bwo&LOPwYE?^7S7$w z&z<4FY*Isdoz~w00WeDmi#N5ULJF9hYL>t%-<=|2)x#rF5@TD;xo(_%F0Wm9h3!is z>c_gve8pp)^pIyr+A(Cs{I3su_|4Pf@bvH}z6IHwK(yA8tq;3P-L3qRi%$QK<{+u& zP2=z1m1i7hq0L(w5a|MdG2z;2kTBl~%1{$k0rKu5U_K%OA`vA59~Z%CN=MbX^W6j+@pwaXZm}a2`rij-MJe zpH)%P51B>*@+%8h)xKKd@|jX)B_1 zq*3G;+*_KfcSZY-X-4dlJ!rHA`|#)*RtjVaHiK*`IqJ5zR!s zuBt|z=5;;W?F%`+r}%8{z=cf1c!W&me%3UZGYnpk&-L8n$3j#iS^RO3IjT)ke7%h@ za&P>pcwU4athf4O(b7$O(%{g4cgZvhfjk`yLhMwf*2;#@CHVsn}&>g#azWRe`m z1LxqQbM13Dxg8&X{5G8m-x}f4xM-+)7;D!?zF%84-N44RfMn5V3fI6s;gl}ojPV_S zx9jfbiwa|Xh!utGU{;^D^33z{hV{B%(@Nk7Fsf9G@zn$D;Y4N3l-;`spF8 z26%VPbwn2}O<+}tkb<~0HtTv}PIPTw*-N6b!}htt_ia%}-$2yYZ}XG8*&)!i8ru1E zT5O1mCNeA*NxvR;cx<^ZybVqUd!9KmxIEAcWlpw1o~#ay&8i6AJ`gXGWx2a(d0z>^ zJuSIkbk;F@dGn_2w`uv_9~sZ?*vBR;_j|^7RxBxJ?#-S7OJ@wv^NdJ~(OI3o0uFc{ zI*UDxhO1sI(gK4?_YR9d>@CsSH?qO5-tz31J7)$>ItexMa4YdWZZn^!Q!}zBZSPl) zKu=8i1(p1j?|WXr@Blq}SZ`O^z1%$0L{@j(iyX1s ztCwU|SM5-;<~+(^BU`K9Jf>R{i)T(I;6N>x;VL>yRJ=?Le7x`BPn8qcrLT)Dx9lPt z^0U(IiaA5{?w43SSX<&MhuSKY6)u0di4mLfC@TQxnp6dMDFFOcQ@ahH&PnaCP!%s0 za!zOzbn_ItJEN^Fw#e2!lw|l~0zTmzl~v-8(_d>t0R%R?Zg5=j_PAy!c}!|>R?n!o z09MK(wECJJ?38u9W=3$@B4k{CIZ@iCgmy+*g)tp}?R+Yl^2<24m9Pxx%*)_Xbl2W1 z76poO6m%AWgOl$ zmv0TPk>S=2s}bOIaPuFdDa?gAs?hi4H;Y{Cb(9>=Lv64rN9kib)jou~=+B>f`Q;$= z5Q2gV&0PUH+FI4$Ux9m%tdyTe9I8dkX}Sw?R5mF%fmL z1)>oFS?kHsMnZN{KTU_=D^~G0B@j>3~jV@31Rkpqf}g` z9=*>o0^vQhw3274L^$2SI-i|kCbI980;*vi09uGfJm#!q%$czNnP)? z9BlV@ch4vAyTic~&qBH7T)$U&MyTkrU6X;WlH7uC_RfOG1>Y_$_x(A{#`|1oCYD|D zI=vQwIJwE@>KSzO-8k9a4ABv7JdGlACVTe9s>Ic;f(cle0IjVmf-oEAR@&w0V>6eN zPnF`TYA9Sz*ROUQiGNHT-{*1Ca@5Z4@0Uk3?HZGJ4e`v7r}7(dB`GG>OObg@zHzDO zGR(H|BFtJwfBo?>1!>JPGQL0TpNG_v8lN6|(LTQ*wbNra z>AgtPblT%nbiU}Gp70KillJ8y-J<08N-D=b)w_56Toake%ZvAdy~JnDyoAA!zX?Q0 zNAQk-`e>MpVaV)H&qJ=2ISs4`y`5QdKHQ!`9CR`x${I$&Y8tbW4#7E;x^5gZa~-09 z5{XqamjjmNefAz2y8;!gCs~e*jR$K1Ll)?ZT)6 z%R&U8aQog5;%3q&8?Sfg>oX}5r-cdc+FA)$G)9=?4B%$XUPLyUGDI@eh^|wQTlRw| zdVDieETF{L^0cDZZCsDI3d%2wuF0nRU1^EpguW6WTqigBZ4M(U&!#Td=nB98^ahHe zaQ=RmxRa)Ifz$eB2XkRqRb2kh;pH87P)}^UEqKqN!&XfDwUSf;RZHc(y^!_k4(|a) z<i3R z+>1DS>Si0%+!FP2i>=M~Z6sUM<&L6hgvYek|I&Uc0nH@B$Ma=K19ee)Y9=s=uRPgM z&wps}9Sy{l+(}Q_7oVLuz!!_~0_-@`@D-f*%0 z#>Aa5qpUhX+?N=&olH${KnW1$Vw_m!k6<`DR*BY+Jxw@gnRRf8FZRt;`@IO@^vcte zagJF`J^M~4COMQo!BnJIoaCb1E!e@H(5?|r(ZpX=Ce$&XBChp=J;b1-LG3)?EXgS> zF&drG{Rx0?k93fw-}jAXaxgtV4@{*ub^@#I&Mdm= zoAfO)JSCNxFLHM_krR1H&j&>U@=+rc#w~;)<{pxa6YmWMWyEv$J2V6NJGiYa7C%e0 ztkx7i#RT7^eGmtC>dgLO`05lP<7^j48M_@5jLccF#HFt;idqc~A~Pc@qn*7}eDf$| zoq8V02{SLN(QGaTe6@U@(9bNz@I0l#&UNDD^vebP3UwwL4f^(42C$jq!Z9#MQqioe zE-i*Do?viX_G-u#hk+{}rb-q6bbR`}$~tM%w!*TTdZc)<^8z!}c57@D9~@gxL8|VZ zhl!v-nD9yc`~A7my}AcHrgk&1=Wi1=a#y87nnMOF7%_fNzfD5b70WfnIXtm1>jJ@J z=@naIQbKV~vp#*Sruk!2=qvg7E&UJuPP!{xp;mBB2--5T3SG*%%oVgF=ZQi*1~DK4 zKVRdBNgkXI*(%or?)fSNWt!iBDWLCn8t9db|LLk~p9-kFeEza1;r+Q=;BPC6-KU~f zQKE~qRKt+zZ}buF}T?oh}0BB)N)aophBR%Kb!k z|G}hOGrsI|V}_se%k|JLcR$nwmWW6q_~C!hr&}rilT#i}f=e#?FGod01Xb*Ref}Tz zS)ZNNkM!@$|H~KL`Cq8)4!^tq2U9+e<3FkF3b+RU(^HEw`agY^{%`yHf|c)r9bLwf zQc?=`M^fJ2N0Ff4|9<1=jasM>8e+T0;~wf?I@#w<<+mgntmQ07^7B#RqMDvh5Sz_P zNp@%`J>7xCb>QKri~==Gl0>e<#Q&GuZm!sw(ffX0&3yK=Rv@e_K*{4Y=Ap}u$m|i!U2aGY zdFn201Czs$)R(uJCT(E~y*#e{Qm(Itle_V8onW-Dhx;D)_l}s#Xnc56(Js)=)L_u; z`Sb8Lo8?!r76U8+BYL3U0z91cVm@aS(3=wjrOm=_oo1--DfYHj>@8HwO#hx4d`kIE zJ+bCBcU0B_sp)l-;CkU>)t^@nwVQ(9>P+x4J=kc;4^GrkYr!FmnkGp?=$LBHuN~Wh zrt%*90X7eMpJr@u0wLLGAO$tj&j+aMjvO0>z^#W9k-*3t(>eWFQp<sv=-XzZWnpdU!{9Jn&bpDipT86WJ zgp>R_uEgXZtb7Qgm9qTpQ)m$pQ!?(_t5}Pn5vK`GOxQe3?69D++TxD)BogXB5sb$V zt|yOqHQv{B)&^9f#t!6qPth>e~ zlwEvr5!4`*Y{Elf6^F`27?k8n(TPpvtQvAS6u*N>q$`l9Q}h;KfjPd$+l`jGgFBYZ zlx+d6gdi+b``X~}bdq>|i2KB)zb5s-QwBazP}$#-G)E98_UPS;|V; zkngo-Gb2H&+_7K0_o2J-!SQV=W>#UXEZH~o2Eq}R*?+5k)g3{)qACW5rYcPVo z$I>QB;=D!1&EuD&@V!n6b4zVsR%}8l6>Xr-+$5P-EJ6N66*qfPL{a`;H-jA>aIbAn zvg0(y>e5C)1Y`2C*j~B=aA-{GW*z>`sIz830`vK=NUYM4clN>QVl6uiiWfrf+4;&~ zkL;ML$wH6L3CS{zDm){ONkVlU4^9Qb?hte0OdERmX6oUAG{z=fa&{{vD{fks=$)iZeX`A_Sx*8HS4M5@{p$n`(p zIWNn~hi|3sPAJQ)-$ctoSlnaZyOUxTv5{12lFqj#k((w5BQfe~4ryl5mR&K?%WpUr zKkO65_jvqw86QfW_fifCk@wx+2b{++neiixX7YzpAKxTAmpezTS~&|2M7)eC2i`e@ zh4sUZW`%hyo3NhSG=swrb01^Sq>k;>Q42Xt$uo_BD$9B_SBiCV0NJ zw}JUo9+q;gNWS1>X&VWFJCssM9eMuqCaBTVWNy=jm*7|lz04q0CYHxN1$!edFe9_b zJjRW=j&Ej@99BluZP&KD_&B9QIs2|-z539o@(kS$n>_yGP(rGole`HGU>d0%Vfa|)v@i>MO0;kB#M`PiTD8k#1G%}&GvkIH^DZIwXGqArHvz7^no zuvL!?_)kR@TqjjK)oxUU{k3*%&qD_U(GC2PE8AgTo$=lHfUw7h8G?MekYU&^9MGSa znCB12z~BstEWOPrFuFb*&arW&0Z1b+5Fy~+^u{M9B2$#5#2LYnUtVj|S-t? z@^nmkHXAq<-q<|(+pw=j_4q)a0(dNsDO+8qJ$$g}A*v()nBryp&sSAC)Pjynv%BbC zt_o(o7ZGO#4~R)I&=@KymT)s!C59Y2`ebTo+okxxl39Jso# z=0DkR87#JQ|4{M*F$FUmGd@-r*g8**@hXL@;WGg~tTW!@fe}z4*UL{)e*)|oB&_f1 zp8-y-ul#9TyIGYdxT;2?mM%?Cz`a=72FwCGT37Ic2_4zN&(BQ{k{B+!d~dP12pIoR z1S2WO$BU$@9?hqUvs3GplB$cbg7sL<40Kizmc@67@N=}uOR;4BqLh57f1VD*c<)9f z-dR+-ADza)08@XNUN*U`fDh2Bxe&hZ>=n3U`p&+(&hnQZLt)>Xs77^Q= zYqsCdDBDDLy3$p2?|_$^8J$JaE`s51Vt`^!_xAiT*=+OJUacb-*V>31kNk~4c(S}| zUSkc!@i{Q#4~&T^20HM=N^XWe2A+$M0|lKGp7=J)Jqbd;HfA{)$A$j-CWj0Gi-Fdg z%v}3m$Ei+-ogWWDQ5tN{m(-Q-xr@sU&7KePDfAyPSp;({AK1sQSfx)(`mPnzsP^(j zM+{y>?PHC5(4IxE1FpD_qU>+?$s)5_+$jC_f$_aE837afi4*GiTHGhn@dey=r&6j+ z9j@v)I$=|~zusSLr(=u!%qvutkwcrZme!5og%O6@yW>+FRq6;=i7qJNho=WR# zbIKbDA(3R&CmCFlX32igr!e#n+n=2$i-*jDxhzw;LkxYIT1r}tyWNW4P1g)?Dr z(secnC9`58W}h-Y$)NCE!4c-BtRXVM(#^ZK^sFbZtT2}sF|rPN8f%+k2g?27PkBh{MI4S1r21f#Ss%Z9kDU7^66dutwJEojxwYy&;{aywAS|5Eu3<({}3BWb$ z)mc9wu3svm41C0`=3nJTJ_+4G8<|p1{Lc@?pB;E{`sRJp5=%0-@a|N1OJaoC1WBSd zBD6AgEq+ ziM7)W-LQ6gbmMbdQ6}G+=e^g?hNQHq7FNCSlXMd|T^C#=`MaFj-9^sErB0~DM|=>t zzgSqe+ek!4GCHx+TO@&A*ul-_ryQ*Ci@=iWU#8!r{6-aBHz$6Pl|@vZcS`*|56O&1 zEhqE#R?wiQKz>DT()EfBLkjp5FH+P3ql#(uCjNmYT20+!0_fd>(@Edb0NvA=7Jan3 zhFph(=crJ_5-9}C$R85^1{LPJf$Yszut^ z{Nu*fA~wo6tIjGmf}Q?yO~yQq{@}&H`6Ilz8hqRlx3Fh;KK8fM^uqWmwPeI9Eixfj z6rY5E)``HhdIhCqF_b5=n=m~0P5=Qizn0_4R@zJ0k2toye)=@GO_)z3l#;Kp_b(&( ztAErhf~nEj*4|%M7JJO1O0KQT+^M%Fd{2AQT<*9i*iT3g-4ypPm4+alc1S~E+1I59 zeAsqDKP&SU1^`?KSCG;P6eZOkidF0esH2TZchC|Tt!_dzxTCeE1=7OXrQv*f3Eo8u z>j2(L$DlmvL${it<+bZsNLwRC#usjWwya-&CA0ov5#d;_2$sUjn4#n-?a60ji>eUBO1SO?d=^u&z813^K?xSH8i*}2A8%| zdW2K1M%gg%e!q;hn?n##yfr<+LsHSnJNNnUj=VcGfQ-5Cc@pRl-7|oNm2Se5_!vmRplopc!yjSsZZ(wA{Zg}ESc^$XQ{p!9mkaB&y_Amgs^GA7#MEy<*zH0@U=x@uUS-2Hqk zOxgz`j}y(=^>NoD-XUz~x(PcGR4s|FRAA{F@wg4eXag4JCf$q*j?gi_wYp8gO%>T!X^h=1= zO;6y*Hl$Zl^y0|Hp22L4#?lwK$eXLaPs;Yj$X_SIUkQO&f&Fe|ay^<@`jSV{-Cc~G zHWcX5SS74C5YZYx>|jE?3rBfVicWAemwiK?=qnXC5RIZXI&H)Z4JAu>!a~auJl7c= zroCb7d5Bnl{SynI@(53SS4DWzvp!FIoTHYO$in5Ij^5i?jOnud8UMKa;VBg93Lelu zDKEcXh#$U62_$3+^mAf8;Q#q$eYIr3s-wt!(GK>Ym|>vC>JE6;`hcAitQ$scdh!dg z*w^HF*9d~LR|@FS73jyk+MR?G~RBqbbn2>=x!SrPa)qZ$tf?t+%?bx ze$$>j+#egiU`&^0rqhKUu2e9clysA`^wnggxJBKpFMx|QzirnZS!XsKLjRX15Xe;P zk0ODhqn(AylTJ3WA||3SH~sp_iP3eD79Am(+^KZKFp|cwir&KFL4mnE4l1JlOET)D z7e=|x6)m`up10N}$Xh6%u&M*l@$dy{(!MrQXWlx}#t*o4QNSsMkUuZ3=fG`o(`^p_ zy&E;;&GXHH=~`uHnUZP$K#q8!<@7Q&fCd~JgQG9e44(i z&g!Pzb!oU;HFfCDewnBLaZ)T*)X;$XJ)~14eZe2AI;_OI6Ldn;U_oLDBch@+%_WV) zBkXrFQ^{NdN(D2?E)Jr{`Y*Uv?LWA!3g0^vmz;r=XWGa0>hPQAPsD$rLuJ{2@=b+( zrPlBD^E?po?-f~z3$8o^8zb`n$~h`{{A)3vC@18@!aBfWbxS4PvqJ`tVuEYEh05<<6&6}jr=N<7?e*U+>py?=e+q;AuZY#w|BeW{0Hpp!1h;!b zrpr`l?op7Y3;TJfe6O@okQ7Y1nW$LcQ9f-b{=LFU{(lClHniq_B7C7Er&rs(=JREV zpfE$C?Wg$@Je><~8Te8+R2mgBImwLVk_{EU{`iRbwvniPgwJ7yP8%;|H2MDwq}os9 zj3yy?B}ewYWxr7{>0*8Zg68rXerRp_V%b%!{O$*oMgfp4oRxfC7}IO5tWRK0sF94hr< z2-dCUyE5I)o#R|m!8#5782X#i@OA>3e!@DP*8<7=0@s7r!CT_SXtztS{F~zAu$r=& z5p8tPb%tMQb>$&CEQPhE;{+h81ly^0(q6?HAzVs`Ps%nlWD#C-)ozd^?V*L66_K z&_Fc76qyN&=tmht8d}9*-f&k>0<9J*#fl9T&oAB^8f=fL?LoW%JvijM{eNI_$|}^# z)BvJ*wZB?rd?nPD^MVlr_m$O}hw|=wQpT0ua41=N5dmdL2+>g;@31ZJZ6_~$ zVsMqhI{J9sr(G;%dIlSOnQ!XPdTQ+@Nj3F&Z8>UHuC!5?m9#Ii$>sb8A4(YZ-5)Cq zd{Ar_cMh{m81~+Gr1v<);e`Z}c+@png6xP={6WwI%&d(YgX0X0 zNOwy3=9&SHz=A2_1s)Y2jRz$6W9j6W*=X9*Ath^!?v%x@6yF-ejM)W!_%o{6b+?(n*z#E(y!N z#ET-#f(w!nY)_}o%iA0<9i2BsV?O>uf(M}tlnP9RG2o+(D);8=9bp*nS`BbMeBuJ0 z?L)o=3?RNZIJ;5|9KEdQIn-;X&CcfCi(~bMPJub%z~N^y3|>ZTVcW&zbFUY~NMA#w z&ocw>LBbq!y(V=&G`As>mxsX^NHe0{OTft=5L>}S{JjX_E&|An9u)Gb!iFE`cU$(( zjq3^dIGTNE34luv^nxjH*2>2Zt(WD>iJOtYfY!zRV^Nt`SX=cgMu#v z;oUY(PkdtgHl+A!ZzcZ(93^D)T-Hm{JIR0j5NPz6UcLPY9Ldh^`F&h%(EqS&S^86` zQqFs`*oygTZCB2!i{SQZ*8R26`izpN82tz3@MwQs%k9r?1D|!rWwAq3eI?zk46D`B z0|jdJ`k(HZhjP1{IMSyty|Ygp=iH%`OrN8g1Zo^&yY|BeVf1|pMF#IHjV~Q&yLSK5 z;B7DKN0v_U7p;Y%fI6I&<%8v$H{l84J;3B9f23gU4j}Jq3K5-*GFjO+s6biqzkGTex8VPZhZXXx`v`lewj^j(gw zSMBeZ8LfL<5NayTUEx9Xkg^~N!ph^^2BHqWL614I#p9XcJ#xtC*!Yof|0Fo+t*v~1h}cD zOLN%sd^N>3*r~31Dduyr@^UYOn6vGyMx?fYJi+fn!)ugP+ucVNYwgY{n~rx3aaS@I z#L`&2@KPjWjaV>ITy6ob1b17>2E_rPXI^LSyR7Xs^@wy;r{V95dO@O_UbXMz7}rlD zfgI&Yj_0om-dC>??zZE;-kzO|o@=C?w_;HacM&$~PiNUz{>Kd%RX%Viy1EfEV!z;Z z`Wy|H@zp{nyEcF(3=ATmuDg9rT@qh68I*G$UO7mcmW?c~l}QljVEgz{`m}8$&{J&B zjrOk-0oS+xR@+yGwY6>SwzL!q#jQA$7Wd-ru5Bq4*WxaLAlXQ9ZE-K|RvZGwCAgOW z!994e5V-7f_Wqvl{=Uy0KbIzR&b8K@C27c%Z zY{BXnu&yXofv18i@33w^U0h{$_cvLaEe-AsdR-yp$cCC&=_WB}_m`?cpE@fgE7l(fe5B;7mHosW+#KaN6xilebw$Nd1$xT^h`d{8ig)J&8z?mYtQLWqDWy0 z%$Z)5R9I$DtM%&9L>Bv|DbzOcLjl1tA5X~q{j+moyUX2YZ|nW9IYOHx z!ZdY@H-Z@!^W=!121{@1*5AmhX`{oJFh;~Z{T3Shp7O?C4qRX$yJpqI?d7ai%LXcv z0(BGuQG6>AS`#5l$qWN7t?K@7FMM8+A6u>3R`Q-a$u_KeL0$)#9EwSO&qW!Hp>5?R zJ!%xJ-(;KSgb>;P()9QhK}ThoAlMZ4x(NRC^u0#Y@smPkbpoPzu3|5Ge%Q4zQKPBy zxZOJoIh%wn;9Ka;`{a`~J2Gc}L8P<3b~i@1CVtovm?d0(5n?PCBgelv_L}DF*XP0P z;=jVp%_MM>OPWS~%h!yHR%FWN#|!%RofIN;5ijb___o`nJ%mq9M^dFvQhiH&Th|2s zU=JXvHTH6z`1mYL*Gse(;>tGx_us!;OXrM_Lpx1l3>t&R2ZHkiggn;4(vRbV3W|q- z`UMB0Ps&@QuguV*`Z^EX8@rdB!KU_&dMOwv-!hEvnM*;QU)I~4TgdP(o0jn%7l}&U zB-ET=NGutjf`iQqHymXrdJKPR9)`e{-Z7;L#qzgcAjS=a!!t(*@J=;YB z1#!Di%I)(e0WdlfFTvY&e2Ho!B1a?&O>pogPHn%TQvuH-D{h8skIv1#@74~`5Vv1nt zQw@#KtEtC%Y!gAp!Eqm(DvgY$`|n~)Hd3*KKns@f)l&mQxga?URklcRWt)SV=5{DU z8`ciBXc5Si)YjmQU6hwTr4QK|o;@wT4xs{mAwk(Y3fc6`?LnUHao3?aNKu}l&O;hcD*6TiiRgrf7PRe7xRKo^}GxUb0FC24@>xXD#3=!QR@+lwjJ z-#0vwg1*KpSCbkyI3j$2h0kWpdbV<5l=ne7QEdm}IwO~r1Cd*7K_&+mYYr=fpw8mR zQ#gUR=~SL@)r4^fjTjOWYRu-P54G2+ z`2BX4KcoC6G0$90g=0ToG6Z<`S{wbxQ+l|v`PuAq`{=I@;bvy(+3?v9OsnA6nvXMM zOTQfUK3bYDft8-VYk^EAU6CXFdgon?4!5h~?Pr5@2HYi$mpPdW!rSu@1S+2ObEAC^ zr(igf!db=!&a=pR8gzEWT~znXwOQU;g5%5s+Mr9=vY^h$;WAYBQj{>p_Jb zw@!KE3>K-0S;uh_BVhgzpXl)QXOB%=HWPJNJYY8YH5byXTXPt3FWpncH`;2WX^t6y zBd=Lma1?aEIBt|HSwa8O2txC>eYy*#ODkeswk;{Nrta^>b}C%^9~+ zef4SBoQ`x^W#sl1@SK8$2 z6#i6X^=oFx*-Yu8fk9g1d`UBQw)uzV8?$`GO(3J^?hAhw@D;vx`=2%+bgb2`-BL}4 z1`t`jqc$xfCgZQLbF*|2eVfPvS_p81a}!huGOu-J`S9@r&lZ^X)pXe;`m<2aCtj8o zke@~i%^zmCocF?cRcFmDh?`~XO)tZ0aFn_x6!ghtq(aMV6S<*{%$y1^Yr5^3$ zAwV-8{dI*Q@0z6K$49DDv-$5VslUi~g?-SC$*1LM7q>R|0~UY04l*g-o!94_AP;WH zL6#mpA{}#*I>g7umhEYQXy<<|Pq)QqGt$ofp#_u<1Sm9c$Uw7$>y^;~R_(z?+Y07; zwx{CmH8P1m92Ifoxl)W0BRFY3u0F$Xq3_L?8Y81Tzki-xWhK^d(0v8iqYl%E0->Z6 zzt}m^BZ&rOxVO2!=b@l(n6nu}uAqk2HDyDg!pkPtszr^1jgx0TG{bz@!5LQJ!!`jc zoX||^jTx<)-xiyraT(5jqv!f3yFLu27k#{^26^6F@{>H!0!Us}vrRx~3AMgwvsFpS z!%aL7h`=lDAo(mbuf!Rs$(VZ(he)@9QvlV^JR;g&W+7U)j2(c8hZ84dw9u8w`P&*| zO|GR`6Th7f-I~FBIYVawQjTS86IYCjcKWgw97EBAAjWwG-YxyPDV;jp1#Xd?cb#)a;nOi2COa3JHHUOI+SsBPfSNsa;u^SNh!HM z+0mp3OmZcCO3UmCs6NDRkPGZ?lf~nxHR*(_g_}I{J_))O4vreo<~D>T667H9#x`KzX1^ zB%4ikKLMF74ZO|KZkpK#$x_ zv71ikjlHLV^yXH7NHvEI+fn-#N^osT-(Q=X{(lw>+Q>dIMR`g*l1QtNjf6Ux=Ze)j z=XV#E81#2JK00w^H)%Y9b$jpsM3u})YR2EQHZ(Hu-*?U$n~Uq4%6AB&u>>C1-h)xd z<%dd87A!rqC2P0xUZAGBD>_>{MyoQ`KY$K-xqv2pf7}#s+fL0`t5EF9cx zzruB~W+uQ(w`ro#{u(pSJJ|&V_TEF+)@+w}ihl53&WQ6FEsbpy&v?aeUoQ0lx*O(O zln=KghjI0Tc*swMWw)C!q1C-8jBRj?)s-jq66T@UtMTZ=pdv-VHx@To4tGn2xk9#) zPLjvP;PdF+xNHpoF(sl`76R*8dWlN#0G3~ZlUw1`MSFO|`-kMj*+Py!S#s3%Hp?#= z2Go1Y@vgopX57?9<#ps3I72uv- z9(CPnYUU;v6ZMN zQ#7dfoU-P9D<~-Im3tOYYm#x|GZ4Yp?B9EQvR|*Qlq_A6AEssc>cP(SeSrIcj?Jfy z=0=m_V_mbnMP2%>$)Qw<0wR$)iJvGZ6qCui<+Ib9lCYCIXAyZpa(->9axZDEW3IHR zsSm_dw}h2d;k?A^a`e;^ey=O_8$L*Cv%jUfx^ge7D|z6w6Sx(2d0hI@a{fj1-YsZf zyM)nK;v3E<^mG0Q54N;C9i6j+UZ1LB4e)LxlWxq;M$H}llrIL#1bW4N6&pz|@tL%3 zI=dVD!6r80L7ZowMoLbH1X3`u@cuE;&WUSLmA^l)=x6E2{>eEzPm>1KlR-v*@(8sR zWUfSV2s=)Sm!3Tj3J*X0o1v5!r9k_Yw9ij!Yn4{P>w@HO%DQ&nxzk|(nu&OD+h&2_ zBln*;So*&tf1Y(^9|}!8dk984zII{1>3_?uO)@3T ze5AMk9VLXjOD(^EWa5|qCA*o7l~i{9O6>Fm3q~k1o2$tn)v? zs`1FpA2Ks%Uji)~R*d zQsJ{-kwFoIAMbv4l)k42PT&(vBdB0gTQ_UW?x_WjE>%kX(5e5YdJoTpss27g z-J6nwuTCDi238*$@7B$ytGkAMQz5CK%k1d-B-`-wibA#ivC74HqnmH6DSF8!v8gL; z%{2Y(dW^gY&b?=^6VEekcjU$)Why9WY30GC4h!&wa+2kHW{tyzT3O`P_sdt`(?)v) zHy!bKVSsS8AH~X9*Q+fVp+NK%Oxb!g9jdtv>1+*B? z8)lb3u`pOJk}P&(`Sh4+rxa2zLJ6>FN)V1Tj%gvCMKv@A#Jp|>`?imoF^a*fe5;&b zjOL+d=Dr=HGXZ4IQD)>vi7V(yOyrrB z^oL!4%x#ykps7}KO*T8>;>I+DUQ*>!878mIY`!Ai-(z5ueY6gMZ{lZEL8e0pM&|w+ zOv5|k(%l114x#;2Sz@u5EFrwI$yL$({9Pe>B51oGQY*tiY0$Vetp9VK4a6%|(7}ex zRqD4oOxy56S}1&$(h1h9bna?=wB(yXDt{)_`S!lX--%+K5%kH?zGTzdJWXn5I~n=ja||d_cn8A%MPfRcSziW;ppzop@0qT%~o{&TnnMOTT5{J z!#!K&qcVNxOM+U*EqEc@GnM{;k`xY`g*Hv=x9fC=qu=$C3`qL^9_oFHUIa$0kFdjM zOXe+(J62ywH?S!*HIQ|)>*BrlR}%lQ9-R=Q zY|&bdx&Q}b4M~N(THd#E8YJp9-L59s2^KB+nNdEfjS*j^eLZ+9c>ycL2S(NnsE90N zFDE=Ei;aRfPue_kxX%rIG?w(GPeAVyI_15X=%CH}F3&wDm0BBH{52hg!+lbjdzSb6 zks(!4jdgvab;*;2*pIX8N6l?*oJ(ypH%%S)k=BRBHw$}vOsCuQ>rGEjV2c}AT>rRH0Mw6K*M4}Aox4+upafK_p3~dU}E8ml4T#*=1 zTrOrQx{oJeeeOWS$TNL;i7UY}*Z&Rbo-!kIr^8dB%t-c4aRy2UtXVg0bQqD_Zmw>z zRr2>59_<|wDHD^424JpMfm(S~PF!ygWWzZ2pgZA_$=|;fnum^t z_tpMsFjgVFSR9Y2{$PYk$vxwK*)79qxl(tW?aJ)e7Ubd#3og1BNHdS5umBrK!F24= zICKLllEf8FktzVz=B3sdyE0G&GrOyqXlxjnPvPX~)UMqEbQdT}`c1Ywnrk-M{dG#2 z1ep$gR>{KGcc+oqIYJ3oTt~%LTN|z#vY&b-LvN z#bOhEo*<@%=tGS|Nu}FkRG1FtBJG2)9@>(1dXuz&9Ku_U2lq?N!z@m>N=sJbxt-*k z^v<$oAqyn0YY(CV_wC(ET=LPIQgj;kPhAq7?~`bSGQyXJgrBe2n<+nw-5aLQO7v&% zgfEFY7@V8}ggTSYnT50R2M;3IKj?erya=jZa|mf&8ktYF+zZURMCBn=c$x>f>OcGjW5 z=D%*+Yr!rmm~9M}2lTEdlcbNT2Q$CO<55xbDTWjR3P{J5vM z@62tG%W=R^fE1%au!>*aUXPR^zTJ}H$c+3HA7-OpB^D!3{~=(L^PwhZV^xg9TU>j_ zY?wg?7$@-H)d%NiOm5Sp{O~q5(L#Yh82Q$Lh3h)z?m^)L@qp+q1?hmR$&U0~WTk>;@V4-i?y*1k-&>!t zG|7u=_uMGcD#v@i_gQ%c5q>m*+a%M#InEVD_Ve(JGSL|ap6_}gmub1uXqUs@-FuSn ziN`a}7|G~p3r@4v1l;oc0Elf#gg_;})C!;h`hjE)({XYIchjb?GKOAGemL~YY03N! zGdZkz(7?e7Ys+&QGddF6wE5ynmt{k;BNyh#N8w#$_G(RTQ5Ty;=#Mp+!-+nwQ$R6f zI?ypKn$P{7soE&bIb;YLO;3{mwE3oAy(F3N@_IbUy<_vt@TJAh{>_i+qdlrByxN@C zmQI5$no$%3E#H>58DuAXa!L;cV_R5ix5pp^EK-Rr_v5`1;c|&K2Qf*EzN3+y;BnC5 z#c#dS#w)czvZkAGvE;QghK(zNeY3I=?s?~n+u$3$X6B8|=Byl^8P7EVaNBSvMBgc- zOmcTe&yx7(Gjq;c0YM*Jp)4pZ?D0?mm8VvW&l}U{9;bnR$IwSoRpZBBSL)J)e{|mv- z%Y8V`3Im4H= zaldq*j-Dth1%Pt%-k1P`duZNj?M*)LGSczu+L@=AT!(SKPLhExpZxamXhAu}ro1_4 zQ0-ty{y`$-E@Ag+h6CqSZRHRLO2N*X(Ti1t^wU0h7tW=y=^xq@y8td^C(YD|J}`H33?tqE*R)GdSM?4{5_ zO~O*eFuoe+lsCf(RI0{AoYjdl_*MAl0xe&v#RQWN<_1%O^zG#g}{+N5P&V5%%s(0rW%>eF=_aIlwWOw6xGM8T)zl z>%i}=Ou%Lx4XGGy^c`;6ct#j73KgZ*kB;rRk8+>dt31oN}I*kJattD>R?4@^X14Il&FHLD(cu+}f%q3tVfdHLOarmO%cxIxD-} z`}FBzDgik+`T|b7Az6m7w_aPxBf1r!VvJhqASbeyk1I`*?zJ(M63jN~s3lQYDf@xY zA1!zJL8sh2VvkuIJ|%RA;vc!9q-JvmVoX8)UpxUb5;;=QyYAA5O(d_rJHBeX?(DER z`98S(%3nLBfvxFNAdScqy--K2MO}k&OwW!AfNMzIm@+EJ9KZ*f$(c|?W@ydfS zE~0g^5>*KM zG!<}PzF=!8IEYaXupJ+ls)uG>2ly#mX?LKk@Ut{*EU4S^G>yNepg5RxkSDgqd#gSk z=kP?_L1vr5?2G|`sL|@`#&;hHVcB3eq`6X>m!H{N4)niI`D-D1mo$wq7z_2|1@_=a!7k@Q-1Q31e3sz3>}biURe9 zQ`N^qO^3-KNs5K)lV~#Q=8Z41sCA@T-kqDly@yj)ez5EVU85fp0H40tYy?=SQfAXp zcHF;G1P8TRD*QxioL1I)tnXIYZ%=veQhCJ}&S|qf zvezH@m~A~>8XB%!;jaCZ3Bdv8w4>7LPTi97SI-RxL*>(Qgb)GL@nDuPor9L3{+M9CSimG} z5o8~SHfid<`-kvihE`i+7kpIFRkLa=G)8rvz5q5Kq~+~G zp9k2cdb1i|=Fhg^`Cw@Avo7acXi&lGftfXGma7Xz0Ry zyiak4dm&CaKJA~NT;P*WIDr#b;R}Y=+fuSEXMP}AJ;RKj8o723FK9utqVt3{E?9F1 zPyg&@Ul892wUmXG`bk42i?{0iy-fOBM31(bIn|;!;GB3a%BqmH1H4-*Glgt?C5Zl= zG&*CwF{RU#2K!W->~Uvm0f>Ps_RX?_arL4}*lLzUlSYW!Xye~6Q$d-PSK9ecE{tN- zX-K{}KsXp`>T@d`Yp{Ns;%oB-@oIpf7HT%+h0_}*vlS20LB~(*j2PAHbF~xWEMuAX z;n4~42PB4SFZ3ttyC)=xN7Sgv9*oSu(54Non(&^eVHWk#Fy37WkI%Gwtfm>=S=CWW zv`$2khuKwl;}K=|w938y08qQEagUwwuL)aj(!)I=VsXv-7m`a`WWYXF?|V)pcXS=x z`s7maTwG&E1y+R#2F$d}1-2{eECp}pd>Bxly?|r^%FRgE&U?9c`bw@tDH!b_?#o$i z+&K7fkt7^^A9WFa<_po{MI$HQcOp|AW$s!VLSKysM;hYCxcJi~)IFzgxCv)4pvl|f=k<|Snx+r_I%hxe<>Ds1 z&0bh74PRP|eCM)R(cP$7>DcMq+1d#b^H;90>5S?DM==`F8k$*hJwqZFxZL!w7Qbj# zRNG+Ga*;vG0ZzbXCvj#+F#55*&vY{wo|lDP{5y|hG)XXSsya)_#~nS%;H%U54A!He zNrEb{-!>~mH|nJ9YRh^g+u8rkj}@a2C{wLTR|rvFy=d4zSUO`ySE0;N)=bWfr)k89 z{_iJd%C~V4@j^UH>Hv$frQD@Lh(rpg>)~TP3#@41=}kVW%A1J)K{qV=E16To!bt6` zxHaX4C){;BHRJ81Th;I{^`An;M6TW3K2`k7{a;IxS!+gj5 z9YQq9Z#~KSPQBVg`*;!o;j@}A9)5TnY8ns>Jo>4@y`fA&jYLp011ZgcyfxEoVmfA8 z0%#KBx!gICK;9siTg(uvI@0bUoZAzO>t9JO*#-^J9e|h~Xfw5~Lhj~x2f|R^A%hw9 z_7k=2Jk)|5E^Om%{#8Tb1#$~v?mrat;n_smwhw)$4aX@Ecd|P^s;*{@ z9swztsQPMs*&Z_|X0}?*OAq|@yFIzqT1HIAFU5!uJc?GsYCFty%129cyp)~ccRL5N z4-$g)=Wi&sE`8*J!cj4)aV1i5E%fA>VXu8+_|+*PH_kRfg*wub+1t5!3%UjhtC?|f zgK>tlJ!m^)AHHG+`i)wV@0|UeNqO}+(}sxsZiRhEy2%>M8G>ATbQTjbjwQetV-cLq z*-Ue50w^|ubMutFIRr4q!`4o5cc8D8*6Fgr(AH3uVIRCMNtXPhdh8oZjb64p<2;+M zW{c0R6gz}Ne8LJhvt|4vn@R(A5Kxm?u+bS-g<@l9nvBPJlIHW;a?>AFoOEk}6T{O| z7eCVfuRo(+$)EtEj{zl`qcS(iO@3E->#U5m)ZJdV10OVEc5YspOtvYP zr6FUP;bpww8s`L}QmJ?UL0EpBy$BXki+)V?;Rw%TJXVKc{CjiWg6TM2r0OBLrOWOM zN5V478pFR;~=WBSMwaT$LinzYlJ$a7lfwP5wW?j1Eay1VP_Z6hZo{ z=l@_NH~&#<{RfcwfAVbl01wJtA?k~PLz~J0|KK}1!9~JD zwkQC%u(0soKlLao`b&l18sGQXzp#={g$mjKz*%{bA4`Lz4@v(09iM8iZG8T2uE+TQ d;%)Wp`r*#I+wK5JE2Bx4(VPZ`^V2ICq>o&K>uUyT-`KTyw28Gc)H~p83Ad zT+eRVm!?StE!UlYI$oLksCIpA+> zZ7d*Al`OP#=iuJ?;d?h+;Q|68?f?4h>kKLP5fGU0x43TX_`q|SE|i;u*yXPwW3_np zBhS}i9jCotIGg3jn<-t=y7=c;#;facl{c*&U)YRagZfD7z0!0k`%~fh1)7eg{RN4h zmpwO?eBc4r6@0edqy{^5KK}$@Bf@ZUo`B~P@a=2@ZWRG8;701K08I9}vUkW;WQ8;r zy-YSFv$-+%I^PyHzNMm|;jDtu?_=7`%oE=J&h=2wsMm^4=-H%-@o(S1)8GB3prF9K z^{XRMf+3>2Tfi0jcS|$H8^6Z8BR1%12h^10VQuc*X+4p9i!!ec|NF9yrL#pJmWCv( z-g@oY`3PY!GirAJ#J?})rdBS_J{0V1uSmXn>EAUv3U+ztrgWriq7SI=`*)4Nb%Wos z{w@hzlzMdYKgDDJJR$J#sri4J6S(^MpC1)C|Ls`UfxqwlW9@gJ-~KK>eemC#Z61ly zn7s4v`iCiI45A>>L^iCwC3|Y_c-~4YYi&tYZ>Jy@#{1@)y+Z;ryKXpup8@sIytF#U z@5nO!qDj`S&w@ds?exmanoaRaR4fih=bx*bJp&h#= z9jd-`b`nhv+S}VtzWbRd0T__Hf9vAk1K}8GE(&EcfvtG{4gUg=$ul4qI+(@`J61xV z0)L9JV4=^T*ZGzEr%_{E|Hu~n%9dEk){&!^_Q`2j{{7z`rr2ktb?q=^5K@LDN!OWd zqBPkA1R|5XRGipDN|RN`3O$k5Q8SiKMw=ymFJtUpw81+iv~Wz^$7sA`VgVAe<+Y0g zOs<{UC#x=Ff=cW9^S{mCoMhMNle{#&Z&32j?dFaGeb_DH1Kuvuf8l6D{t}5lfsIvJ z$2^Ylg#jaAkHtM7r1Q2IKriUpA%%*5S-lx>3-^-}8RHI<^>lXfci-T$)8`;SI^5DYLT|ES znqdc=+VlvDWvq%5-oN$E7nj^EtO8I*MPXi}4r1D-__8o9T@+r?#Mp6B%W(z(P*-aKF9 zq|-zMvP9hToU$Yx%gW!YCyH+N_)oPIfG7pu(Uxty<;@$ok++8Q4X*|#jo!M_r%KHk z?^rbsTAQ4Pv{poe$dAk9##wc6qzMeD7gp()NB{&_^uNU|SALXK8JaLhLe{R!J#{_3 z#5fjwue#RwX72WXRQ};}F!2@vkV6W`>i<{_3K4M_*X${X7nv|%rh#h)r9x_xfYc?gLh8Uh#5}*0@u=S zqxV+38i^|1fV5n@@buZef8;kewWp;QCZcFj>4j|&&w zF>P7Q`|2({`~D?N!Q7Vn6FW)vu)_-^eEOb?phQ; zDY8w(Wj}xQC^z~FWs_h+U(73M_qt4WDL7wR61F7vJa+KSn@o9;e{8wwc2P`hJ_qj8 zFxJnz;W}_*Vb4Tti#pK(r!oGkal=_!Vb-dv_K-CKHXoUj<^}x{jtS~V6V^+Y9NW)A zYV@YEcGq33Z4ZM(BY6!2Nc_T(6&9xZ{m5sGJG^Y0oxi#}_j27^xoElov-Hx$3;MB7 zG|DQ8YS|F;r0Q`-zL@dNlY&mY|MoE-EEaw_?+uuziS#X^TiFsLnphjkjp2DT5f;6i zO`IyPCG+ub0r$b2q+{TS2du=Ab%wQ^=_vfz=oxx9h1i<{GwyF79UNPK{@eBmOQJ+ zbd`CgZR@SESnT0uUUA;iY3SPSaOLzfWAb{}Rr3A6J=F=nWWSr>^34ztO9pvV%ef4| zLMyK3Bx@qJ{D|U6R_0QkMVmYN-3Tb4H^0ECWXzXPzu>#gd#B3kIJD~7o49H?m{P=0 z0CL~1PolIdqj9xtE9LxMw`0bi`m+soRHQZBPr6cDT@*_4A2=iM#pFNE{OwWf_*w`r%1pQ} zChWabTLbYBYXPH1a$9k=OlXKHZfJ$e9k_M*AAjC6$ZV?7giK^mi_qxlE+~9m{Y&0j z3O#r(g(SFi;oMc70GWS4hfTea8@kB`^W>1f&pasq{U39bVxR0zEBDN!GW8vO#zJpPit5z;161U&a)Rs;Wk6lA zTj)XG6(o%B-nq{vx{T-7xCa^keLRQ!&rq5C>%URg{|x~2zX@0UkDFCJ|EdYjutEOb zDFlhRf7@u^)$UiZzm=DF@dX6r-BbT3SnYq@=Ko^|`2RO6@V^aS|Ch0yg0!7wz7Jvy zMXZ>4r&*phoT`{x4*v&f!yzOiPVWg^*ktja;TpKpYBAHFd-GO&D{Fm z4u=@|D%RN<=_*KhII?uWp}tm##_!>ExDzW$2Om0ss+h_m!6U;NWs9s>KPU|#xMJtr ziVDKyFHY3Ni90r!@B3hJVRA=xO^nzD0imLcq~?b?NNdea8=whP`Pj+dJL;GBK<^e%nXAG#nEH_Du9 z>d~7|GRxBST_q*U;qnBMQq&Lo1iR^hXp?u6H)AVrrR%>`f3Icj?Me3w_CE4Duhh6` z*eU(OY_yUX-P-y!kNTOl7llx*OW>DVjq1uHo{kB;|-3(^nxk1$;|4AN6_XY<|_(9k>^0%W6{YIXjhGij1~|6l&IE zQ5r^9&LL@MTI#4RKPtV78al%5a=ETk)u!9`lDVa$TMBSrg8rmiG&6AKs8kllR7oM! zT@&*>o-zM+rq1u{8AQdL&6^rWiJjPkIulXqPCzr|xdb7Bk{V@`5Iep!Dp3zaJOzr3fefYf5{y+9rqKBv0NfOR&C2RABlhHlHrL3Hu+L>!# z?2VcK8Rwc|L3JYwP_|ss#O@_l2>DA(*J--rISwLOnyGlI$<8Tk>){AsvyTvm?i+93~*Wxh9@BV(LYj$F?XkR!xQP(zRQz_b~E-qWI zvBizRFz!tU#cK;hBjUHHt4vDHz9}N9E^HPQ58WO&1gg-@CN-vsK-~h7%u=&73eXWbI~H=@xh_fZl zZ87d6Qwdvt95_;}IMM?sJ81xSWf!K5{i1UsrxV;b#V8y1&70ClS3g~3;!xpjj>kCr z2~NhJ%Ub%@1K~B>TDHT{W^dzp^E08G!TBC<%#k_ zVav2uG+rD*Id9QcnJ(_S9{T(9SA_ZAn(wR`e~{R+I%fNFt1ZuV^*MB`Hw7aYF7!9I zKm>I=Al?4^1GLldN2AnHQ80sjQd|RwxfUMgmKN}An%(l z{O;60m(oqZFa6%n3oC#dN~wt<;lW|dQ{%ztx|ah%hq7|;Hw)kjBa;Eb>HyL9^aR5! z^-Cf{nZ5(+>muON4HBXwACBXY-eBTX_^T#JPc85)BI~*eBcdsaYXktq^OQkN5=lx>xk?yD|BbOj| zww>t4V8(7*4#54URA!y}o)vANT!8`ve(!vJ&i7^(8bEK*8`%YwHw#xVfh8!vt~RkS z+8BVH7F`;s*p(6GBhLy?32C+e+2>1tVMA=o>!>^&I=$8JAYr9kX?q}PK#9V%M-S|Ga{1^%tkntpXa(+T+u?gl-Zdn=M5KGU>&ZoIU_n_Etj zF&XXjh+V!~&iiOQSDEXFvyj;{Ez_QTo7G#WWSr*`#9BZ0uZT(Aj%D&)9Tm!eK~O|V zGL3KYQEjpISrBlVJyhF&A*tcbxgr4@g%Tm32;_kikuS2z8nH@RgRB*LF2Bp8g-BJ} zfUmggS`>lwr(ZzxE3=gPO}e+WvH@t^eP=bjP&hlwB3v@IXfX?@h+IpyT&#ov0hZihtp$ZLH#5hLuh|V9x~c}& zg0onucX!@VuTulJ$l#Q^`z@S-Y?Sy!M^NB-ed`pl$mq^y>8+>ktRiPv;-*nXpPZHS z*gl9&5IBL7F5Ch%3Py3iPZan4}l%sVm#jtLGrNfH4Q?fC! zo@E&voQA2U60C%Wrl3jHg{#Aw`XMeA4QA7CrlWp)=-^m)oz*-7FU=9m5{oZ~+dp>y z?N29o|9-Ee*q9;tiCLu-r&mHK^idmU!IZ<2nrsP~Wv(#ZpsP6@I3ItrpVvOjvWcJk z6|>=bf#X^=*NlN^OzyC=FWBS<&o|6tUqgc^Xr1yB5~Ks$=SH0bM)@=;4uzfjTH>IRfh)X2-D`_=>V)i>{6V)|h zC8K5o9Xv5=ZhrIxT&z|53fG|blCqn_J!!W|?x&!d4*7oJzdGv9E=)<_NBac5>xiEZ zDkf2QsHFO!WQPKUfpA>zxCY--8|F)By+ToyOU!`yyvgx2KMi57KbCHMp5_^@KQdt0 zP#OY+=8w5>y-TuoztNe$ex6H)`A;nl5lF(N=DdowORC89s{3Zu*{+l>nH){X)!RAa zNyq;d%OgHg9=zZf^D78GzGN{X-kp_7%Pve;A^pTWj=EKV^;q<~f*|vE^U<&`U5cg( zDhvBqtkho{=`GhFy^|r68I>Y+xqVY;=vYmHyP`Kd+d2OC*4*QT;^lnINNQAKn#)0v zn3Rf=`HM!Cph($2StG?PUq^!Xl4U=gDS~Xapb$#F7UoPBs|43=sTRne(YNN-b+db{2Hyzi~) zoj2A~)7??9H?*RV%58&SsnV8#k_$yCbhwUH%4xp?Er*}3Ac$@t!2Yp_FQ;RKu+2x6 z*9|@+Z#wf2u*b3XARsY3G~Q%q{0@X(R3ko)GO4|bAp#x<*xa#$-ka96CQi@#GSB3I zfBVzgJAUgH_pkItfUE=eQ}fpK2Jr>Mhy4!g1?#CS2;sE#*;208&su)q`j?P!qKR)H zDL8swWN|vDcA+^pyRNI5~N$>|vT_IwhKNK{afpz)EflL1QEkc~3B75}J$NBuR z9+Ki0v_vjYOKI#8Z;R09)m!GZS-ZQlJN_H@Qu%cn z=Bop)vxcxg7psP%N5?lRUGZfdh7%uAaG#1&6`|9Ql|QN-nMt*Oes$i^_p;Zb2!(8Y zIN$5qOSeQa6&`xH{BdrH>h6L__T@5MS?W7%wz$U$7x3lPrJ&%SUuK6$h%L@REKlBc zj&Uy9PwKc0WJq`v{>>7Lf|Z(yFe}Cq@A9O!)U|>>L^D;9B{dLMPB`&Wx=3tr?zBo) zp*Y4>f(=e;dXHD-RV(KHwVQ3=U&8AR+;8h%HgBK5;k#>x8>KbJ$Oeyk$`}OU=Auef zAJ;t_DXdy;zgKq%8lI@1TjM}nfr`;;QBD4_vgj(O$5fhhAJSl{=1R@XzDcX^dY%lF z-Tms#tg?u{PsRsV+FkMc4hAh0hX{qo*@H5`-{4{U%YX0NZxQFYXE*!Zvvr|QBQ9xe z!JNOnRrgxR@OmzDjyqNc$s|wV$l7yY6U}dFCDeI{bCCfVR;iNzO@6{ks}S_&_?w7; z@l;dl$y>E21&-J?Wq%W|b6y`uMJ#2BJQrpN{y_}tHnxOjy-k;lET0}!bF1yZWW9K` zs5nNHr*jx$U`3#zjaD%VGDW>wt$UyXqA4?>8E? zeJd1azG~}@LgUPxR2mt)%bmjQr!-o&qB*X+HSXVk^&ZKmU#`R5ia9)TC2gs0ue+M`TSzzMO-| z$W-*B3D6Zz+wHt>g?E?G2#QZ)?s~d2&a225ehGGiOJE*UvKpC>{!#nF-o8^k%@A|G zUkvy|TP3LNxMtT#?!%@=hp4tI2U{-Ua@9PrKx3{JUY?a`9V7dE3mW2*&}6aVHEA4D zMvRT4mc?!9vWsFiJew^&meZm}VB8l(ogG#TY9a|hRG*-s4wx27>KfL;=C0%u-SwV(eeD%A8vlFF~F(zU^cDAi?8e7B_S(DdEr$b-!q)~-`x zlt%Qz6bxl`Jn$9lAw2ErHmeCMXG9NDy=-DWLohJM9G#DRe)_P@9c`dUn2!4o@ zCjZcqB@9rS+grCaA05Q_Gar3j{GDVkr!>{%Q~rXmr&vNwNAEC#uYx zv%9!t$C-TWWe!}KI}rJV1`&Md;F5G&_~*{;F}XHt&E#@uD0C9h_-2E+Y)uj4jQmBw zcMT;70j(!8qgc|tnlS-lb-NB8Kcp?M&H2kB>|nwLbsabhHNODqy5N&#P$ogD){+?3 zLTZpXDj+XZ(2N01Hp|v?eUx+5?0Nc^(7}P@NTe^mk^Q7Br+ND9k;R$TVStc5lg%ix z>)X^DF*p$)ev8{0D)=Jo94;@dNQnAC_<@w#*6c}x-uR)aQxBh){q?Btvabs3WQ}N? z?WtKE@RmRFRu*+DO+SEEX1%n(y=W-IBi##l0S-&2e37+1TVx<=$g`p6_j*f|yGkM- zz|rvrO*d%G5%>G`GmADE_F9x^e1uk5tG>%#sKtX<3KAES1;aBkE(N+h`W!y!om@B2 zHt64?cMU%a*#8H%v3Dc+e$e(XOmx;a;4isXz}t4O7Eg6lAN7q`t!=&xS7~ZTs5s4T%%(|G2tkG)S(UE9$qjAe zihQW9fZ}@>t$_LN{Qw2lyE|^RWQfCXx>J4yyf{$+&QwP{#HphQmHpZblb_K zmn!wGZ2T4{s~~9l0pqi-vys@7YN-96;mi2f4)c(S9<6NMx3}FvG566^%>p`h_gg2@ zV^zImaAwA@y1BbQA1E=S@34Bqp2$smwpn=nI$7N{?0?ob6`9W9p&%zUTF~J8rZF=b z@C~t6(*22oh4%NL_dB>e4*GM&BL<=6f=SNKkuS5+!TA=GUk_0<<$sU(?IFhJQ6E+* zZC;`2l+pE#$2>hB&t5YWL1GQ}_#9TrEkflqO%rlAyWW-cHd%7C-qm)YVrOyD6RPDP zXzSN-#i>FmZ<0APuW1bq5Z&HVLH0Zwv5sz5dB6JdmMBIJ#Qv5wSltrer_gu@5?H4& zFA~{%j%>)+f20cdBWlK^WvN2Xv*|@gWQ6W!YztK`_H52+-(Mac$K2|ilOchfJHQHv zO#j-dVR@%)SXao?$RVK$%LXb{jq#=QtOMPqu5gs_z0R18C66N);R`m1OmFV;hx#%Z z+#$*ACbCB1XeAHKyq8o8)V*m{lNX(rk%ChbEh9L&?7=a(rUsRE} z(wa6>g(jzf7}J)l9Sb4ZTjzZ~W51Dwi0}EvM4+}+j7}bM_@FU_6pJAQX3#9g)&m4bYU~QANvxqIB`uOUi zY(5H-cwa+7%iK={=!6V^z$K-?6@6Jrx^4r!VURif(sdz?_AfaAv@F&++LAWb-BVbj z)t4EaAL3}Keq;JO7jO7Rt{hddp|F1%&`Oso63P@tf>b)(24*_xMYZ<@SwWym%XtCC zr^gSfx9C5H3=*m&&K!2c+TD#Ibx%3H!qhF}6LR!jK~sy4tN=*xCLU5D<*>C#ozM4b zY5r2tD{ouHzuYgG>tl4Lws~abQIoS+V)XmB$R>x^h)0sK{vWL^SRcv-Ts zUW&G2Hg-YT6`|z^$B52Y;EM@E&}#bE{?8T4d+Yr(7!i)>Qi|rX6RH1(SmL?GLx0pT zpf@BK%|A50G_jr%gDRzdCtJ;F^`GPp{2}Wq%A@=V>57u8Jx7jeG@F`7#E&f%ttHF$ z1e;%qtca)2ANYKNDjJFbbX2f3WXL0BCvX>cLIPum2sgt%&xF4|u4Ws23S8oSr=#W+ zzBfrhAy}`RJ2tDyX%YclKMc_lHtx0pHqqqcta11y+n=*???$0mH52^@K+O)tdK}|! z8t#t8r2>mH#Yny+2Bse&mAYQLsm7jq2STeC7Uo3_exqxeckT4emRakSC(DI+tRhy| zJ(8dYx-~F$mSaED2kfioMeVo;G+IuL-weQC5XvLUDHY3ow-zZ{*9`H3iZqzN{1mAkRbXS^=IjRs_J%g#`JWSn^e!G0 zQ2iq6BSk9~onG^?LZm&gzA$mO&JUV5D-sDZ#+}57c#FZ-!Owz2itW(pgAOuY(N5j5 zDgoluveavVf{9-04l+bJMI0e=AMQA&qd}O`2TCZPQ1F^JuuK%}8?APgAS8jGK? zBYz*&sYs4*tG>CBuMTnh_F>S_7k3kxP?B@JIYNmIs(6GWiDu5r2U(bX{BraOX7Z+J z^75;KdRGTCMuVUjEws5M8QU=lTq!s8@~L~I=P+^zAS79dr#XCQB!de6f(}IWH@$v9 zd7vyMF<#>v$W?RW3_K8C_@T=`y5wPLIra-V5Ane~{(03!QOlVRO2AkFNm%RJyUCIW zynW+Zj^1}&HOb%fKg2&aBJ(V zo^|j1OUFVlZSpT%mUxUieMhkJ$BW{kgi67Z*KP(?$;W}5HPr z17(3iy`;iE6Y`4`a+z->@!W>16?|3QzcgO6!TeV>6OoUy+UU5%txbf);ynu^lGG`i z=TVvhsct2NMGf!#ZZU~QR5EI8+W{uq_TELwtFf1NAs}ZsTF(b4vKQ+);{*bFc~q`V zkzU3w7JjWMJxD@Y6&Wx|R+!9%Q%?A@QdiRc{H4^a`bP}ciTsNOz7Z=&ySWo%@Z9XG z`KB??u{VVmGzC$AnvQbXeP18Gh0GAISN(yG6E|MZpv*UpA3;hY@Zow)qbf%?n_ z{+HahtrYTMNA5A3GIwX0nXv5r=dXq4?Z0LBn!oSrmnsby35d9^XX%!=x%7w7GG<#<+L);7UNC zjgzP?(GGj4$@EvzXkb9BYy`UHzuxD-ih$1VtXbMXD+&4afXm@I(vq69PrisxS7okj z{)gwK<7?_6k#*|W|2aMQ_S@UUn_gv(692HkZk_ul>HGgq^2#fkMGj$J`8xyq@SENW zzheH2ScQFwCG+WXWkbU$NyS%h-h2~z5;EBs%6t`f{GX2gSGwA2ZF_i zeIiC!y=U-hUQTf9gh1+1j@-lN&v!%x6q8nWTN2Q7p8qg31m1qS_#Yb9|JM?_|BK1j zGD*XzUjXFz79Bag@JUEDZ2Id1dBuK`RAjyWNtB4F;j&2HwhlnxtxuQHK1avdSb_5zc|I6Hcn#wEG@~iO6HcosS z>}WFzt`$OYYUj6l5R)1U_Mf6xDMvJ6bOC*wA;jWoq>tL1id{7##(L^UlDy2EmX{1N zw7R9g`vsh?_Aw}Txw!wc?c}jzmyv6K)Gcxd;pgDysaYP%s6oqwXNokS-JuOS|4}|P znmA#EV*dU%$}}SX-j80{>>8@RmlA%X;c_5()Hr!5=?{ENyWEc^l(Yid9J&7eN6o^R z-p#>bAoD2@!^*7l9BClP^h}V90@`1m+Rosf-jhJNWcvf^@VcEfl|}t6VP6moheJ-{ z>N6zC)F#`7t;jxM;K!R+shf}HXFKFCb>ymTq{AfF-ljM(j{}WDGxRPY$t9;M=<{gG z0&^c((|;01{Z#ehdGJUtp@bBGi$e)9pt*D48J-?HOp+6dH{{-XCWVT6etLBW zuODRkGcMhz0DV|`_0)v8fWU|Dvd@qDnqQuc@MB#dFQ=mcUJ*C7V^vz5@5-q=+`NqZAlPWK71IloHcV-Z>0$i~f+e zbG>}Z!!|M29?!xtlH_eWH+xCU^LqnrqbGaRhe=svr)NrRFNK*?;@4wplOcesJk^Zw z{uo<{-sU5hp8FhBOF8cJB^rjwE%%RpoVCZLa+P%spQfVa)t=q<%c8cqSxspsw_vk> z5d0`vHKuOsQ&9NUOz}GBH)}T)I<>S3O(;@KwPYc@Gq$N(i1>8)&)>?DGzNyG`KyM& z2Xp)zZ81d?t3SQ}#UQ@u)%{x*ipE;A++g=yA{fkcx0Zg(`Fz9Nc?r&ZmP`cU?#E?D zmMzxG*^WSZhkeDW%X7=`G!WnQg-6rR&+jWy)fh40yc%996+p|cp+S}VQXlaoj0Oeg zR}qKT^va+o>Y%<;l~E>`)_NlmC_i2|Vo|lBJdGUgyX3C<84B0Fk!VyV+4PM1Ah1n) zAjUG9rn}Npw_xa@8gj4D8s*xn75bjtYid{lUokkGGh8JhMG@+ehxO9o_B!Q%klAi=Q z=8q}o6isI0pr)en%PAr)i%Ob@SFX8Efs=pr@Bfz}aoiIn?pBsN@_Y4}FXJ*%c@AXp987NXF~`LE zYY$8hGxSXaW5ROYdm&p+FCz|Na$!JpW`#=lE_C%baNB_RnX;v}du8}@V#VTm&qFet zmEV8L#Ezn?POTW3Tc-p&rPc=wa6jtvs`lu%>u*sH=uX!C#7P`2B)B}fH-C7Amk*de z;+L?iR{7$M|B8M8pBmA`OV6qNN1n0wGCjSn*hQ~Cu#qSVxkb^ZqPr&&YJ+j8a_Kge z8|1F531ildZEekkB#frk^eWm}i~)Ip8nj{hOO5q%YU@Yt{Jf5(N#iA$S7^TJ)3doN zZiW*trRzU;M|z+NZjP?x#Rq&_4|KBn0WEC-14ajipfD=YON8pY%5X@4bm62ger}$LY49J{bwEwIp{YX$74Fh67F4>pgUao^TP zK8p{t-EyNOL4Os--F(vbgnr5jE09TMKcNH(Hlhgsqzy;lPH4 zbM!$@cwNi@ zv+Ix5Sh12=F{q*X`bh!C8p@I(;TRxkUaM$@ZCIFHj!KYU=w;Wc%$O^&6ONGqlqcB( z<=#zh>dU8D(a@wZDQrkVasv`l2shMVco(RM@7laSQT@`XqR7Yz5F5*L^AcM(ao0)8 zWJwu%*MvJg)1bN7f^u12JSBLmlz7W^FDZnaV*F}`^$<@LKe#yQ<+zc&=9izb_&9Dl zAk+r+S{BCvSkhIOyzg-Ncb`K0gXL;Y18=Tpn4nW@G+Or&!0V@ z{C;{HY4^qN$826z-+u{K-(Rx%1=`PUzEK&aP}0!_XOQzB3JCA9#2hls;Cp^ zF!cqTrst2A;`Y)BT-9XAVy+_sXyif+Oiy$}&WLCv>hosQvbmIczn#-91~GZrFJm1X zq$S=GxrUW$a0f)>OVrDl4ey}C&h~?(HxmPF#>=SjsMv>6kqg!(;Z+frvx^!udTLS! zPqzSvireS*YjRk}A{y}%DoBnuHLnPMe+*JoHv087B4T$)mwIZ%GPxhsNp~*8PBqz1 zqcc^#C_gB<=l^O@cGc4AD8^{5CUhnZVa15j2VOV$=B4Mf3B$(jn?0CdF_p465UJTm zW56Lvb;I3s|BzPPzKonz6|cg&Y2pd@lKPIMF@lU1Su3`!ae=CAhPt3TPo)5}c0j3P(40bAs<^4}j%`uPpJ9t6PcK)4STxj>wPK($vr+ zgH%4Iwkq|J$lKyiy&3DZ!CMh7${gAe3`u~uDuE!$drumE}3ph^_49(VU6ljMY9QjkRMcaT+_A(YBkM&6cY4KZMX4$%3p(ly}SMm%nZr;gPnJ^Q3x6 z*s?L8JEkfcoHWE53j^ZAV^T@s8KAm%@yVN)NfYs9ZXG`ucu>G6uIERGJqw-thpdp# zp`f2rR;G(&K;e#6Q}ET|o+m+*Z+(pwtmSTG73wqu_3hZ_7~VZ;uAfy>FZ(@cPSFwo z*npa7qo27U!XH~(?VvRn!4IZ!>Erd&bm$LyIAkuK5c$^WjYgw0SZ~oDzfh!tT@BL- zo#QWzDYdjZRkY%^YqZ{*G=--TF4hvPkPl*~D~;Rz`d8lZ5=5x6y$Rj!mEI5do^!ji zFGF4SwIes@VKSpz?14;^rRkC58Y>7S-xRxCHu#%U&R)t^OMO9)R*Z@DL+}u-5Ra!| zFTJ#CSjVpn>Lh+yQqYNolw`#Q?VR@9%hmo+BV!(Y7DaXKS5L|3)(m7Fj?OZ%D_n}6L}&m$_2;04d;cB~r_3Tge&yG(7khT(7qbNpUZ)4UAv zKuk(fUf7qW0Ug=|D~u+rruV%vj+*A{TkYC2z?06iYssRz8#{#fdsSLtBj0)@pNg4= zMl}t%O)Ws_C2=acG)V|onjARo(ciDV?6wj5^U}Zk`n}22%dcD&df4$auQRf(x1^de zPvsU}iGcOi)b|EcdrHPJ*!bntRFuuF!??6rC=q8n1%;eB21n=-F_Z7HqMEb?+`tzrsaL=?!a7SD{jek>JPJ(afod?{;RK+5UH*CoWWh78Nd-Ml*c}ZUL=@% zQgU8k^Pg{o{V-~xR^2H|SAF1GlzAnz$?*>U^LY~@76CinO+@E7nTmNpk4>E zGGZd8wv9hpZ6%TC`SM^?g*%x>n?o+K4&q^d@sm%P5*+)9qX5qMeJt;jWQmCz@$R!G zl}U7cKV91Fe#4Ttz8S%!w~WiUGhY{xfp#s3c^%XW9_abeiuL2^-B-GBQb%K;=YDZf zQ_p~EiD#;GDzENT@ynr-Ivb=JiUaQDZuV%zA-HK{{uzt)a?)falbof;MG0ZE+>lLt zG61^JtQ*1X?hcO3G@Zbxw%w0GZLha;B7ps?TCk$~16QP_ewh(tYUTDO`NLuR>Z|hy ztLE)4)J}So={enWS~`8Mll(10FQ^D<(HpA}T?S@b>b-$YB|4;+jh52ZSemlR?V|nYYirsEEk@ zl)2RoPc2-JyJv@5Zeqpj>-VNJv>a&K4Xi}MMFYAm`Z5} z8`O`3Lvr%Bgi}4nIm5e&5fh6)DxDWosao9e5XX+^2go^BfN zu;SS}{sYi5$A&HZ$okx+1Y*@Q@oj$gYoblaf$nxsulEB@p67Im*Lj@V`0k?0Hb#Zn zhh*(94mE_bBTpOPoBG68^Q7%LK;-o^Neg1cxVIZ&#yVU-zF*63-|s~DyBHa-Aq|bw zkgWvwIuoap-VF(7abBBq>HTi`3w-L=`ZZ2U(t(ACqI&Lz^n%{@aD*K*y=F4ck;N#w2CH}CEZ{LUwGkx+CwOfmmAUVAubkR}I zJfq%ftoUGW-A+G6YoW>q5rn81;E+UG)avp1t_xsgzP<1bcPtrW(ssyW!N#rhex1*C zuf!O51{4wDB2#(%_KWGE^)w7?pz_$FFGyK+#v*xUJ=HuY=xyL^&`>X1Zi&Sjf>Kx2 ztRq&e;lU~Z)WFb9fR^un$FA;}2d1jj8ulCb+A=#3QWylaZN0h-cbRMDM`ba?UbV&Ri#BOlak zsnf!{;^kxc`H%i(2d|~RhoU6OA-=o8E@hI={z7jkz$ z?B|iP#J)>Pqut8q*YNn&YW@_fP6BPvmf}3Va;LPs|B0!f{;_yGXdy9eesvD4b^8_B z&Uyy+ArARNPs3s=$7&X$s8L!vGSox(aKe&WHGxZyvahh~4GvKY`9dAc6I$VWEE%fB zdgB!3Wm#X&vD&_$W)&M{;O(0$eP7)VB=tQByd zn`&@G;N;Jy5Zn25Z(7|1o&fukTCh~CA-i&H$dG>(9~+c3qAxY}G#Kk>ghT5B=!0LY zJbXhChk#HpRBQ5e87ZzVt|_)DzM<8$fgcS%9CH(mo(I%xQAVG*wcN=VYu$L{THy?h z$l_Lg*|r;pN+Z7zKGa7gHnS?AWE^Ijq*8eu3E_bXS~!n*`{!51wFhMfx_&d?RU+Ol z&M2q}j}Mev@5Q$YXL_2q?d_CIM|%`!PX&QbFB*^u<7n-C3^-q8s+k9Sy$#%~HEZT2 z)*_11rL`OKD3hh;dU8MZQqB%@aQf2)d}OVDCU-t!fT{t?!o!1jp1ZZ(xwqPptx~y7P9-KTnJ}O1ftS^+kh=3OsS( zUC{;pL^(w|vZMH6w-Qw|)bfEll;W5dyGltv7y`@lnw=SJK0xw&U< z-`H*< z@dhhyS4`kGk0ocZxv1TajQ%wA$yLx|GQPwohy5 zw~d&VI0ocG3W?oS_B!#8NPXBTwh6E-ITQwsP{rv}wo!kN#q*11!k zL8P4TM3FWodH9P2V%A@yzeKD_#`?_)-`J2yaoc)n>K2r~((6FokmCh{#E>3CweRSy z48jwk%`98}Og^IFt5`*F%ZJ;ld%}@~IethT>(WP$cQicy+^{GQ8_3tb?JMnvp-d-JLeN^b(m1hCQlcSgNo0{_Im2Z?&r>Jw3h47^_(f*CW zO`T1Es*PcHsyxcBc9FJ1Vcw(trKt!Q+HZ?QtiRR=qLSdjmq=5->*a!B4Q25BOc$aL zD+yAx0^d!vHccJTd{-tzdJ#6v2H|rI9=@f{1(#1AK~Q#* zH(}|QG8YPR^t|x4S%qBbSW~N5F|q0sAA9_yFlEVPneU7rtXj>)2cM(ZDg4EkFYuHP z5|8T&T%WpGSXSw|=`}l%P-7qS83+2Ol)?9$1QF%1QViu5wh}R2_1Uwn!kJ;<;58&; z(uXwEw^G|;(uyW`Y+?<99{E8!rm?KB2y+m<-qK?8a>!q1H>=VCov!t#a)E#;z_^fr zz{3-TpC8?HdTvL14Ns%u)1WKvSY3PzPSz{8q7*DOvZN|}%Y^usw9W4Y+UotVyYKDO zov)0*vgHonO{bQM=DtB--6|~XhH4H`Dln&(dZOJilQyw;vyDo-N2DAmX8zFLZxq%x zO#AaUts|J< zO4FnqDpxhhSzedbmI${bin0Sfz`wJuY9O<3q!CSFZMBxETB`Cuq3ea^+XU_t#}v6y z&?u#MB{D@(T|<04EQy#Cu+G!E)&O`uwsp!mU&DM!1YCkk zwkA)?wXBy51rI(n#-4fsT*PVQEJXyd_3$fG%&|+2Lpb-P% zEg^HVa1hL^-&y=hIIeVRWN^UBk|D-pe7F$3%G>Vt330kR+H4I1>Mt7B;f{@K{E`J9 zg8ouwZFY|EF(mDvvGqK@6V`}5D#XJ(m+vA~8gUKzD;)E@mPicUcmT)uPY<;UY592- z4!-qRe?aIBb3_O!SKf_k3&7Ng_~q;RdliQRQ&@rch-y_qe@`?`nqa*GEhy87*)hXl z2T=8r_AD56F-tBbZTRz%w@jxo++)S>vCU0!*&ra8&!M`Jtf_Z0J{W+t^e4-@V=e4A zGWm7`+Ax$mYr=Mj@Qq5_T=s6@9E#ivp542a8~*F(odUx@+qg`9@Pj)FMC|pdlWFt* z$%&KtjP|&erN}(04nVPdFX&B)fsckQ>sz*#ZeDnjGK4$GLvVjVBbNJ*L7lQM;>zE5 z8TGz$QiKO9w{XH}_Gvn*4h4Nfk|Pahznn)AiWQl%s*fDbaij$t&rS0plmC7LNnxI; zRa8{7zTFUcW!UD?Za!XEAEDGFS+~wNVNU5H2dB04e|fr?mdH= zjKY0iD~Kql2&gns5u{45p@@orbV3PDrFW!-j*5tMrFR7BA#?}?0#XDaKqyi}2pvL6 z5C{Q6;6(R6cb`3TX6~FhbHCht%SwU#Ri6L<`8_V5RCg;ff6=Wec}#KOu3%(T*H1{RlbtE`j^>!hb6Ke=u#NlK;@CqkgNpIQ;qZ z2e147e--)vuM=*;)5cU?JX8J(^%1C_Z;jgI(EmrH&HvwMv{dp;Cr889Op`&q^Mo%| z^}Rcw!?4MFhVS-{&KYLre?2Z=TSI3P@TgMx;eTf4|4mQTuz7yw-y?RE-W3-g<@jeT zm|J=h`CllQ8|l~INhrxy<$CaMC;i%-X{x3CL({xVy!bz1760E_1(NhT=5QI(?lA$) zgwDio?W3#dgmmieX@%qR-uSIV;Za)SO~dMV$fCCkJIXdWE^s#H(d-n9x<-l>yZfN* zt)^b{j$`rHRYj=Gipx3mNiPVZyd;0)fV>J#bEM8QcEWNH*K!V9$egVc_()6f#xM8uyaudD_J>0Mspb1UW_~zMzs-xB z=jS;H7dv{-_xXkfdcnxsYPNn?8GT#W+;Wz#AE#ZiR+=P#Tk?M!nYyuqVdXBOcQ(^( z&j}^Ivn6wC=E1mizXY>*ls6y8GlSu;P8Y99cUeJ{r+3`-rEVezZXdv-IIZysnFk3{ILw*S2B2HyoG*fK2MNcnsP zOhLvFx0h(VW|je`dOr16jn;n${CLZia(P@N>uy5o-NV&A?%7=dKfvkmYk9z|U~kBu zfGV#Q*i+Mo?tf6{J2BwF&TqtPYo^iyv6ls6siRToGG{)ZV|M&l`MrI{Dsgze@f{^$ zX!Bg9V?VO|bjnysx8sJavqS@IqNT;suEDMt+826PWOVscQ)SRzYvGr7&S@Vkk=d_4 zObs8R8y;-9SWuKd2U|Qm{LJ>FH#c=^Vr*caoO;b?RGkYz(1tw?e3?P3RlJxJpJbGV z<6QCAWB=LLhTMkFe|_8-ZoFM_Y=XvJm{r)ovn#c(x`@V~dVKVm`P61EFH&LY5u|kb z^;{9XyBRXaOVBiPT^QWUS?g8^<#>Hj6@Z>^Jw7)}Hy}JQ)t7K;t!`=o>pM?nLjCwt zZ&x0W8U5PPeWnlVeN}Yh_LMaKQc|Jd?hp0}sSybN94EpDIks~BO{B51`_VP|ZKjEP zJCL$z#$ltOP5}ce@qHe7nV}9+ukI+iJ6Q$y{c-v-#=3B$EFoEUJs3GAC+{3N0nc#$ zP;1b_xzI5KwzDX=mnYz|B*Yk}VIO~$Mlm_i!=YH`WF7S!$vfl`wUw_@+Qb%?CcDjR z*bzniQEsq*ZH@eXK)fhp=gRA8fqe56w*lC|i(wzshc1p4c4FPZ*i?N&fbX@Awg+8%&=uVBCK8xs-?ly8 zCdgBg4tyZ=D&0Bh&*AIbZ%Gyloy}dZWCbug0gxQx8CGgi1Xm1oF!~5T#>xp|RqbM1 zv5O2e9_L(5HOp!Lbn7o={w08f8k+i%dm!{Wv z0r&CF2E~yZkeklw;y6x^e%I7`M|&&Xo?!P!%|Ts?1jbPJl!c#|iHljw7qcMfHfgn@ z%EjFHr0~b1h?}d=bYHJxZG$i#Q!1O~Jib*B^C>hgH{$lb{|d(i2GRkeabu6GAJS*1 z50yMGF1{L2*chPwMQqbm$eNDz*OVdle4XK8b@0~I{WjB2#aWeRh0myT58X>%dY6Z* zKUoY+HcwNh{^L*0Tc{bD@8{*}tBUFMwK_O*PXXeDS)(zAN&*@Pcmg!OqCeK2-uf!% zC*;N(paI=Z_T3HBEHiO=S5A*8{5}hiQ&vR&I!5KP%FX(MZYXAB5DPt_t ziqt2V_I^lpH<{zSN<8Flk9uP-$1is*ttsrs9%D@?hGMdPxgkEv(r7qJ&Ztv~<{WB% z$Uf7(buqQ45p9`2@F@224!!)ZMXrxklZ;OG$kQp2V=t&jcu{KVk6_)H`-hwKGh06A zaw3#amqcW4c$5cNn0;8uJ()=m3Ky*0UgYTtE60Ytog@pdwO-+vd~qu%p2LA&!`18+SxBS)fqzC{PBLa0#GZ9 z%{I5Lp}5}d^D(EyW~LXmVQ&X5Ca`|%QPJ_b2>%lS)C6#l-gQczc^_QimqW+fO)P-;Y%sURpUIT&*djOJvmHK%;O;< zX~Msn46}~!nGErLdz#Fv)iR9|tNcK@g+GeOwKNLxj<@WyN?G+2k$Lz;!RF3>r?DdM zKzYK$Rz|D$8}>>!;lLpPGWg^^FHcmT5&m7RBA6+5LeKFpN0U3O%WmftWI!L~=9fypE=3Q)GBhClGQ5Lq(t*{7zf z70K>56JY*j;VjHaSL@B4$t`FEeU3gT95&bc%Q0@+s%E#kH)1!v!-agu4Qi-U-pFq&Dw)VImdNgAK(#60i%c< zvyK6^@;X65rJW$luHdx5f$i3|w|K6W(R(q@=8xwa)Hv5$E|L5g1x|%=KKFl9!fNBS zo?nL-c-`uW1LQuABYk;q3cL9_@A4Gm{L;^P4w%YE6SpD#>ivCc%mvB==+1tyum0K^ zKD&2%eU_c^WWY1+_9qxB=EACt@A;%bq%+n+$xK&;XmpSs9_ylSZid#M)*H{oe!$?E2J6X=X53VFjcJcbYENM;d9-5g+f=9(* zIOBYF7n8@k_qdI&p%onb>c1~K_VmM8b-kEu0ar3If9q=D{oLw0wgA8NhMt?W54e9@ zs7#zPB0L|#?8PE=Uf744p2dDJrE#wmR4}@~)!I|-rNL}CRX;INIqz$K%912peDU4Xlt+U{ibeKRfrj=)S>QIdrs`PQE6Zr|lr`Qixj z_A1RHz0$|>L)IA^Gm+KTQ%XOUIpYsSbnLIsN-x=_S}mmxZYvBO5MP0+xH`>GJw}kW z%W8^;ap{8r2it>c0LFAh#vVHhGecCUU>$=p`Rq`DGBL!#XB;Jf*^JD%t_rMBuE;~A?b!>7!wCOD^F$DvQ)!qc!O@%LoLfA z9Le)a9<#IUwyU%vr$o>6jbHq^Ek#u=BMU}khGA_-8D#x_EXseQH?>1(eFagu>BaZ- z%Xp`k7JWlDzIg!$6=jq;%ptt#>{YwsHF(%Cwsk>1C|AaAsy{b^rtCmj+3br~vIJ!GhO{w?85gx36-v2)D~!bb(k!N`ONz8WQ;( z+04(n$~N_6hDtt(_OJ4G+ZjN@-;?ABo7PyR$)!pettk3l+l;Z>CW@8sjl1)Us9XLM1)`Vj&NZ4 z_Qg3Xp1QRv+0CEq3A}c)#ldnZ7{j-7((aOLy7fe(?T~+S^3mWQJUgwnE;>CIXinq_ z#)oiz`$f5CX=%Q>DAiBlD*5*4lSf0nNsr$z=Td3j+}#SmSko@Q#Vcr-ajQw0f)jOv zp5~}+hvjn(zeKo5r>PeJ0dA~fp2%zME{Kp zkI}%a6f-e5<~om$29y$ZKMmiThE2QroEtU-5kjUF3fc5pfHjA$v%zxA_c$~i=4KiE zLF<`euK-;jI;QN{`l(Jg@TQvA(S4^rpAw?AuzeKyjDuaAEC-P3(=DFcDvMrP|q$LORu5q}r80#g$_h2+tv!V3q)Z znGKA?Bn*`a9V>G4Nxu76muON#t_V9Q>c0rNIZj=ca!h#YgNv#)k^=12=FJz)=ZgZX zQPCYAztUb{-GuA?rl@XHI9?9-X#a@^=W=n$nekkt&$#->sAf^=^BYdsyr8s$BmVBh zW`0AxOpl+8!dOGFW{eJLBM)(9rzHP!T4UcneEGt&Re(p6BI>mL=X32QY>xXu#{#^!icvAH9STLE8>5rpfWjfGWLz zeFuSCR9RPgT?giA*#TP=2IlJv7!EfsJamYmlf zl1+q&Qw6)tzk`t~jOG3u|wU&e*%SenNyHmohf(QFU4H|uyz zyL<-R|IWn`_m>#`-L?em4UiAx`9V{bFa?$2Rn4O-EKhOg(*M!9MAt_js>I%r)c=0w3p@)G5c@&=z;UILeLBC|Rml!@WAkB3gf`AtHB{8}%A2=bjhe zUNaZU9bQ5Ft*)1p> zx1v~>B1iCr*s>81qJkKDRJ8+JF%VfQ}zu3U);S@+8@+C zD2Ddz79{+>;r89hw~IyUKk8J@u|K;kaIgqIy*}7lqY+3`0JWlJb*tiCI(&^1xk8uY zyQ^{I0re&Ru!B_HZ0VM3iIOQ&r3nf~wa-Q6#(xA0vwCXrJ^3LiJmW1g=zqQY52xD+ zhk4^f?76e9oN$rmq#8Cu0m083UYoZH4*6qI zUU#k`W&ai_)VG@Stm<1MR@8V}p-&bZ)t8CH!Iy<*6eK_X%`U0i`?|j_>QqrPsAGs~ zJ}OZ~d_VFSf9!*|<;$NM-?O#Sl ze`B@=Ad?L8hd^%1BAG=@W(J1m(ZvIz9 zr^6QvG~tGBfml#Z!@=PGlyRYHvF-;hUb_g#?OWKz2A48$vvlSx`6oM@k@^*Py0D&u zl$D)kQDL^cc;IS_0QGnSh|szN;_;dRa~=Zrk4WoIBQl|)z5!(L^dhP}0()WbtqW%W zg021XFSY&vE!fUeLXJZ8SF7?r-hy-W(3}JZ%dz?=xz0JHd1$B!Zh77~VXCabei^3d zI(=BI_PM23kv7ayvt?x9WVn5raNeR#2#k*Z6UTKTnq<2-tR~xcA&dL1L8)WL`1R$G5Sd;22!s^_D@L=q9`S7DzT1}(`Aav_BK&slV5wv;i<9`b?Qy_P zbsfUHM(TDc=B}Tj{?or}f=PSpZj;@ui-(}JiN?pHfR^2k`!S1veuW?4W}$g2=}kuj zfve;Cc(pY&OlnN~i0cn+Z>l zW`HL`oaP005D%SKD6!1TaWD-bj1<4BBtEm$A3WyMlmGZxq5lJL*)DofF#`2SXvXWi za*kMzW1h;c`^a`4t>ha+xSRs)d1q$eV9H}t9$s|3ZjtPSRGQb8&8y^JE=v3cu@S9> zy&Tq<>i6Y0(kXT?0L3o4p7+5vT~oz-d0P@olh&a9m(D=1o)iwql1*T&3DzJ{`T?Yc z{(%Q?Sj) zsjn#sqy)U^;&H$)ueMyJLLlbX`h&YKP$5Q=OxTSA;Lg37vc#2p@*-9CT~!mck5xv0 znC7IbZ_lNl`m&vEQ$UYiz@L}rXdxx@bcOI`)y8Qj92MCrgUoo&e`wHI0x(7-e`@8q zbUZpsiL0-qH#N1#ew<}IBn!V%oG(vojx{nf2-&zM5j-%EuOqMiiF9&VQpA1#$nwNr zS&qi7n5b-nu|d0M)rG3Vdz?>?xL|hoa(8)-ZNs_eOo$dnjW~`fi~XR@tMnuHD^Ke_ zkwn+<@g17Z7b;Rw3JM>xqTlxf7zb-xhA|&%-BA zeozbyaoi~I2jY;~?*3S7@+!^SOeUq&c%=Z zaJ+nBQ?1SQ(hN#vT;K)h0N<8izSzQC5LmTX@eb>Meg6+$3G1<=e!t77v%lZn3Y5r_ zV?2pue4A_h#U-yoiK-`@b!4@nM1zkba#>la!EA(i<|$FcBYoZlqV}V%y`eoc7qm-% zw0XnNl_8`**(3L&ywp`*N=Gj}6ex0RvKQ2I3SVv(Zl8e3Xx#cWQ(PGTz;SZtX{@=_ zb7*kRW~~HiaPZD{O~xAmtdtJ>#ahWIxn@ZQ_<}8|Vwm9VD8jDyohq;rih-TV{*N3@c+b z)=F11zvczcZV;;fK`Hr4o5Wq8WGc276J0XZb7NQoN($w-(vtt?n2DtnJmPIA23avZ z`0O~M)L9VP7ALgj&)QT$jiQW8s;HBSop8o#7)FHO7A-k#ZFvyu6yc{)Bu=<*3Obs( zo9kZ~x)_AHUJ(1T7IpUN8HlTVxE1klxsZ3?sk{$F;K2PFJrSe!KF~8`$mpxxN%~3ULto^$RjnTDhZgsmh${+4nW-RW;3I2EsdM(E=bSXAQ@Mpc~DA=W_Bp8<=^{T39Kphxg@jdx=aALshn99JQY)Oo%syBM_ zO1PI1r+H$TB3Ns@Xt#ozX;nI2zf5^DgkekD~7bd>04q*cNR)` zO6#j`M$4roKn0bSNX5N=(NDF-9V?L}M)!xcQa6p@l3QDe9~#D*9s6Eg4cIW}nI3%( zF*4^~wq^_}0k5t;Dg#4uyztfM{9EHirZB18>99C4$zwudIh<-@R|Lk=6fm1YZ^qR?KqpZRinGR{ z5~{SmiUqrtVE)85u{miX0DFZR=86PgY=PCI%dmGc+-abnIPUQ; zvHJsAQZ~C{5=CQo2Y{@xR*FvtTIdh_%i<^2OMAr=#wHCw%|g~o5d4{E2Rn0 zgOd!|>iBi|=qi*w?_;}BX|oJ5OU$4*b|%~eQ4HSv?kH<_vVnQX^#N!K(>OPqYDaV2 zTB%^G2+lkj=+oPOyW8FEo0v-+C5RE*t#Yf0NZo%Dc5Y(0#F5un;q5TAG>Zcp$$xmIs#{F$h+8 z0dF1ZWO$xw$X5c&Y2%_IV`3hy8=$ghvvTieFn&cu3^e$|bXpuW0*U@SY5?Ahx|Z%c zOa*=Lsnzu6Y@b3ZB8d8#voWZ-k>0k%Y*`lVD|+8xS*CJ*ncFa~`g|T=wiX0y7?8O*8;DYc-$Iw=(T4{0fVv16wykO%f2&_M4&#y6n+bt#W? zMzH~9njuyFB{to#Dw>8ztJwXt4j!U`6@ic`=`f=(%sCC-{zicXu>*5}QJz@K<%6W6 z82#EjfqIuXwk`>V3V-A1eu>EQoZED7KxLAI(wvDj@9ftjV^k)s#-7&V6B}1BzirRY zBWi|Bak(ok5URmSbRodDHQts57D~QiIgSQ&m%k`VsgMqpe+X#{h0msz3+IjVmKMte z{=Mte()Sz%F6B8ee-5+fVFKBdTA`li{`Fq>fyvqRm)HJ5@Ly4rMEnB`fBlFOGC_OD zFq{;cOCK04cSyMn?J)D06p9G>ei3{2)@^9%NBpTLO;8tKoUfQBuZXIq{c_qKK0hU7 zi(krNeA+FJo5Cevlia>LnQeQq{|=;`=e@m=A>z5`6T_4In}H#p6TY@*1j}G3Y@a3@ z@9?+u+xj;>i3E46%R1iqT~j!Xm3~?3l|m(OzgNl*s`e?RfZe;4#(P(Ktf0&xe6>p-_-W^5%qTfj)$R#I52&N&of}4BK?rN4>TIluAv1@Ms&YR>E z;=Wc2M+pObvxLTJ&mKIfW4L+9y{~HV^Qe+Z=`PixLrn;LOHHmas>~CZX@BMEnPnOB z2I7CuK}N9~cO)`1S1{I&T5Q8f!^&jia$9_G8O|4n;|fZ#lG?P74=d%1WnC5Av`3o{ zx9+X*tqOo2r|}P84tZ#icgMGWxyJbW^xMnU(>yHSZzglu#OjBUiyT*mgq?ILC7x1( z!0E}?>%*cdu^{45TDa-i!ggtdxYnp8U64@ysI;2WQPQTMs#;CmS~{nbzt#s(gHt8v z`6I{4Nk@&-9We_Qg7)IhQe^uxfum52ijr|xLd1XgVf3gOA*bDC6-2OE98=OCFAuES zZfLnv7MEKSZ&LbCqWAQ3LPE-^{*iWbGZ*efg}=16X^wv8Dh>VH6@KSz`Oh~di}%3g zELW_@${~Lp?ht#V%&vdjNQ$4_Y$R}#YxDiw&W>SDauZV3r94}8tu_m>kDYsYQjIy< zVEqEU359b+I84hs*V#=eXt7B?1thNXAN`OT;22ZY5h7KjSQ+>3N;`CZ8WJhq8mLM6 z{;V^=q3c-irw>PksQBzi-?Bix9fbyJF7rHivuydI0`9tb&W?5i$3KJ74?5i%WxGP; z@4LOn7P)y^ty+}ZrhPAAWn&NdTmQQGxdhT2i6(As>yI|fo4LH2FPN5S2kDn}$(;A4 zI<~2pP_NX?wm*Pmg~qlcEbDX7WvZFg+V5-z%_SjEJ25# z_2-nU&x#OPH}i?4WVL&um{eL@b*xW%amL=b1QC}}pjev~MbaBvcxgHMtoOT}(=sIZ zCPYC910Ovp?|wFZqv2670?ZQ}FF1e@S5dc6TPl95o)y}f9BIpsJY{8r3?Rq+^&veH zz864l7G3VSt$yCXY&jo0vXEyUvDwMo&?gG&F^+o7Quj1x-2E4=n+Sqj$ zNvTtzwVqF&sq1|RByu8)oz|TQR6LaPpkZOQxBRWY@9(?C%8&0~ zmV%Hc0ge7iHFkRjWci3kK79{j8YZ{MB2_ z!X@;cP)?b5bAUfH&qLGqDEnjw@ELDq9G85%cG8b(tpIQlbN5TbR3q-rwC70~^_~Iu zuo7N{n;n5;H^xqT$D@!r5EYI@35VYgv;y4H0_q6mzo{u?3{lU^oix}V>qDK@O$k>F zRxeO3+>FGvG1Y9e$(F_bXo1e|O^jz_Hx`#{{8Z8a6_N3%Z+){En#o`^E7pjZX0)_f z6{1WxmA)R?oVSPb;a_}u?(I^_scMkz2sqSb-aUNxwDutn>)5w+P-ffh%(iXUO!0||2;z$Zjl zP4cDOzgh5INA`a|dq;V=AQu#$3mK64o0>`Nq-FCnip!CD*q60&FiOmC^Fnj1(*Dtsj37-JNt zA=olOu+EeywdT^IhL3WMvHGDfue309s?$0$vChFZj=`v+h$ghvg2Gu2i75!t*pM`3 z!^8ObG}A>S^xJO7N*+Ud*XJ;SK7;p&&Pq?xEk^?`1o2MR*|FV8cXd$M6Vk%30j$4Q zp`M8PcNM`bji)=jZQUf%HnHMpX7E7$`b>2j{J{lAalBb>(W+H8BeSk+SQo^+}2>rEo#~jPqvn%-B?i#Cb&W2v!f|Cl;q+VdyvDBJj~&Ehug{SSuP;X z#u1m)o3W=2pYSA?*`pYow(GqF&87TuihPKdRk>!03Pp5$+L#KRLN$JGft9|&Hxm0> zaizU%<(5OSUp6wRp!;d(u7FBMz`0f?8&EAu930WS^>=umd73hEQB3b)pTZY^s$;e5 zk^An0`ZjT`iPkC&)f+AM)0x%AvlQ1A_JjVN5H$_Dn3-7)?QhqF)TJ>O+oF8%%wNgF>I^oGjAdxDd&~L zuVI0`>LWAhgq$GPTgLzp3ihy4m}L~);{os6K~U{3!>DK^ltGpwR+CY zzQ0IPNwfmcOZtEW@?J-pifK9O)dgO8`Z2WFS@Y^|uin(rz;{;9n~LiyQU-s*n)1>sv-!kJcgB|Ex`T=FCr@=~IJ& zXb~!KDtYEQv)O+-p?Q9CT*fxOU7X?Waa4=vB+}W0khfq*6hbJWweyd1MlSoL&KX^? zrQ9?8{5wi#N@Q9w*{XL(HT^G&mHuY|u>YShrT)u6-7*@-2{_7>cOmbi-HBxE>1=Ss zVqS@a(k@OMlb1L;tQHSf<&_@1`rmBFSp1;g|7>5;|4sYS{=b=sE4`_uM`-JVhh;G6 zyzm=0ZX^vAC7#Hg0BpJ5D$(-8tuu*lc>hT#qsUCm*PltvCg-8M&I>*G&tm$PyON%) zSLXuVo)JQ$B(>KQIJfcm@` zlRx!UI}S|#1lo`!dV!zHk`HNZTaQ{B;O^8H*<*+A*g0tJ&Uj@J(A|WsRTvT)=CVe+&{05_(?6UB9EmO@HuHCK7;On$&#q<*r zLwV7ZwbhtioQ0uxE~3O2tN@jyogwkYjuM;sSJ%!FCYp*jw&SrIqhs!l+e49{y)hkp z9dkQl!0D8IGJHPpE0lUiSwR}?zxv4@@RR*^m9ceEmFQx{y!T)%L@hVatd`5Iti+;L z(rwTetdS*C>99fFwZnQshoTw!Da+aAgC=i0X>${sD&HS{9Zhh_RWz+#{En*UG%Q@2Z~YjRp9 zVVJ|e5{FA)!j;U$EnlPyN*?exYF%H?(TnFFBNO)$Gt!SrK1s>z97(Eq8Q43FMP3;? zai@>XkkJq)TjHsBskXJ%T#O2JI?M8=hWR8I_cd8F*^XG&FD(mJRgKpAyqynoX6%%sc^N^q4gY{djz$jrWnGL{3@}k9Ca*DIQQ1OeL3xib`*`hA;*@OnZERfXAyz_Ntbfw-8V{*-)dyMj4n}tTF99- ziDJC1t47iuQYJF?xF&gebHHCW;HTD=KCXG0Tv^{pzMMWvdkghko7VZ2@}Urpg;XWq zmEZ?vgjk(F=@Vt{*_HAi>M*N#ujZ{0cVown@7bH)FJ8RRFII#4&{@7|G&Tx(`_Yvw_TpAdPkq&xTQc6sm-1r z&fav)l6prOtZk{kV?VGMH+4Cn!Np%MyB|!*CJ;-vgHyEiYNjy+B% z8&r~WTdpM}Op!8n+sq*|xm^)0gLDJ$+SbOO)V{8Gel=vqF?zSXSkkH6{;0L&#+PtG zf>Ne2Zn;>k3`T77$A}+48?ZPHBbTOfft|*FM{0x&r4KsNdgoheV@o>~(aB}$zUZu6 z=W+l>FxV+{O{RsSn!8No+?4*C44tCK2MNh+*l3*p>f-D7oeC4Wp!}I z-w5a(gatuMVv)sjrwgPApMDQ_^OkTL9q}Uz6HZfkF}!$oHM zONLaE6zb#$yU&lv>%Ofv+0Gn+8j@#;FDnIk$0Ya)j!wVhg3fR~zv*5< zU!SGd<5_<&?7L1maDmE#thP3T3QF^p#8($NV7N+mT6u1yNirP16FPvk0y`RWE7gTB zZu8detwC}fjgzP0^BG8DaqS5Ny0Oad|J!W(`jT{Je$XlYDKU4a)oA&+97L>myj%XA zo*@MKOgv|di4a22wp}V8VNxw#Uycp*?k0#xQ^7qO7OxmG*rA}uz_8Qm(R6${{qO$% z#Sw8R^}MPx?mcm=GPcE-y^Ik*v8Y_Os6c+-pWMB*y~!V}^Ozc1oBJqWde=)w`}2>e z`wtu9DAM*=MY2eobaBD5ztx4nGk1zNdgKZp>twFcS!+B3Dsbb>ZJ}PYs%81Nc7xtM zIo>!wF#RUS(Opab1DkZ5Q`$G*WUb4z8+$zpey6T`AZo^X5#4U_Mx+X9eO5)s;pmud z-B+c`cS?}UdF#FWfCPSzF@BV-6P^AilepmJJhn%OmZbE)hm-JXlK5CUc<1Iqi?o!3 zS5?A?5EhhoYug-7ZGc3(9$6YKnFkrO9(EBrsZ!9Sa~(HhdMWpttAy45R4abgwE<~y z(#S9@$7>Ij^3&kpG=;oXwG)tEc@C(4mEH{1Hbc0_;0h)=Dsk?Waw?bHGr{8{GKm%A zEnLBFS#o3EN|)}rBS8rJ6HB1@;O%)Ha(1djpm9=$qJo*bl6_%fGl~UOlR5D#Ftl21 zC%4wC{vf@$e*cA#4-zZl2H*b-wER3cta!5h1urqWMCh5)`8C@q5IS8mCO)966n;Vp zK&4&FK-3f8ZY zKX)rmVqV%8aeOIH&B2#+uV|B$oTX&|Nx6Yd(|b$4kEQ#6NLTw&W-iHZepeVvkHP0&ZuJSJGEb?a5=ZHCzhy3WC;DP#rfmekfuil zC|`}o;7r+5^GXgXhidbeiT%WhdSiX`iFbwgpzq-FdcsYJIR9zMX13A8W&=}MdtA&Z z!U$$U$5x{>bFHP9y7-@A zm;M`HkJ>@Z@3TIS6nT0H0?>l-!{Z8^3(R8K3%|gO2m_*wt;zDG;a1I2f3)1|GObM{ z-3w8jy4nrQ-7Ol#(`$Zq&n$eCF?zb+_3e8|hYvF4c zY%$i)vCqV8Ak-C7^4;Xrhkuaq1<{#?lj~W@oejfqA*{00HIUz-ehWSgu8i!48N8fT z;W$<_%M>?u{1ZbLkdMXOv8Q~S;|XjYyYM3Ej^(-$ao_0FasVWu8M=E~o&Une+XCj7 z7>_8HJZ!tb`8$Keik=AfooG^uS#letp)#nb+lyUPXTLMBfy$tA8<4^Z+uM3$jRaaN zLRJ}8<#!q3GyLxZB-Ex}vpO8BOf{F^wJl%&&CudU5q|rwC_dN_!3N45(@WLsl%Q0z zz~|PuIZjTTT`^TEg#Prx>dsSqLxgD(p?*;D0uVy6PATqLOgs_RHQjHS+Bs-O=TZCpjMk`FZq31c;xf_ zey!v-O1tO!VP&AD*R`g=7SCTgO2FBu5 zt%5U=OuG_b*>15hPn5xgZdBgy0;;2 zDL966ywO#=g%qxhXOQo;)ZEN4P1T^3_4t#i; zPI-?W8$YQJAOt6N)@u&|PulF3D#kwC^`CU!osgS|K2Hm5RpJV&WN#iP`Io)T1LSu( zQQWJ1?FaRk|6!+OH>Dni4x@Z&RaS8yJThvgPScCx17`5%YdO4@ze|i+omSRS^_@XV z<8F-N=4}o=E2zDbfYS+ISS%{nyP&1w5%pcWq#1cW-B%zD?Uj}3qC`tF19yo=L0PE6 z4?EcCT5TR%z5>-A(oq^W`(RM$r;l=z1QT;d2owaLJdV{HMVH4powLGJ)M}ih(asd+ z#DV*p^wFG`gheW|xZWUhinC`1ngX}l+L!rzD(u%-pO)N&%5muLE#w11#C<`;flU+~ zqpLPd+u+>3HhW|S2iG6V-H{259WSS&+?gE8u6w!c^oI#S++&+6^Fe<<$^@R<%(ev) zQIa4jlKZ;rf8nOM)&An9#-q>Etk?Uj^1uGU6d=0g>g84;=HJeb0332-HZ6i@K9|{G zid`5gdt(N z-mMcwllz%UYk~5?D1FkV$o77Tw^%jVn9Fj91Sm&?!;Xy`7m9tPd_q%J;F$C zt3bYI{FwOBj@T+&@OKv+=O-OULYKYkYJ4?+(DArp9~2jMC;lQhPi+aUAle>!uRbA5 zJ8wPTl`hg#c~lxYFpdDYk0ZSPDpWw{^p>JT8bw(Pq$Rvlp??*J2(_Kc{dqDA>hOj3 zT^WC4+Q2e1`b3%(B&QUsnLmAK^l-oWT*j~3>6YWiIvU52oRF$)(6Q+AVPHNcp|I&P z-#c7UPfvPg@Lz=rU8Kd;)Op<{G%j&4sZQ-Fx<;dNOKhqyJAU0A;AR-KRkkwYts2qe znM7$4U(=9UGj!xaSDvl!(!*M*D}(;H23%pX?_GsA!1Hl6#WQ$zne;Lv~7 zm>V5A^JjVD?C8eY#5iGAKRFtRY=$DAWEX=Zp-zi-xxtGuf2w`*@amkUyt7B3qoA-^ zr3cxVy68{72qWUc;ONvU{Q9UB$pLJl)Dj@4FkKq2NR)8fTwb%!klB7q2ovG9HDX4bXgA@_ZpTAQ*fKHvWQ^gL20eh(KwRQ;>S1)g{h zDAM_EOviQe&A2260$C*j^E$JBlR6s%m3@4598tM@wG$P`2DQ(9$vMumX%L;@ z>GtDZ%qOb?rE$h9`&7Ypu95%sU4ya!3__zxN@Gf#cD*4m=dtv>$U2VJ-3T`9oNQd1 zsSnp@7Z*e1e|(&YVIv*+2mHEf7r;Jw_+{|B>bJQ#*YTPuqg$g2Ee~1t8(9jABDHmv zGVMd}{sl_0z`+NxW%bVQ_2Dz+Ny8!;5tF>X$qo37Z7r8-&Xaqp!1_i49md3<&+_Oa z99E^Fwr@meMT{ZB#%7n55eKF@`IUi&ivj-2%z9d5fTq&?^1%=}_+OkDFggkD4h6$GS1=slEx)X)(XkP<>k=n1_g z1cVTJd4v0$bDwA2?=#MGzh!>R$Xa8~Iai&(>wjHw0u6+ez^O(OjC^Qo!;O-vG0^mV zsk7C?{dhEBCy#H1aBR}pMwY6kcUs&$d}4llC_bC}LX8vcup^I8%f-No*Bo2CVoQ== zH$X?%%usFL_+Dep6Gju+CrutL8K6(*M(vJB??Z0VAdZ}JqjJtqA5x(FKy}I=bx8eN z9hHzFENqBvOz3FO5>;8{<@S2D2%jM8{;F;PzXyZ?I=s&N)RTpaGZN!wHhaA?y}U@v zI*H0fYZjWTGS$^Sy;%H;8Eo*7JcmwOV|2-0!Y4)>^B$<~db5g!g<@q16mY_SZc&!S zEm%!B3j?CCMA7%+B@P>19YN`4{#-!1Dq} ziN2cX^DWPMhk%q_oJJ9Kpoz65xP1K%ciH(D2IAnBQ+c*@dPgl>#y~w-DLf~mXkEl& z^bSq>mg~t&dt~d=-k0;DKI>eY52%_X4WxFPx&ugFQubwbApr9sNP%n9fSRvAC)x^n zyayAtT8k!`U}mlsF^Ekp)mqD+a&%3#xW#$yNS|)kkvHpB#lptC+R)O?0>F~H(3xeb zU^7j%x)h228}f^P1R~nL{jZi%EhV!<={IPFp{fd^+$f$Zn7f*SizRf~te8P15lr;ZdOF z_M&9h5_zF<**pfzz-MUYoKpU1i&0>-#M(eNnb@n>QDCXWOtaS}Yai=i#D(u@$pytanU8DmBHBnH!Z6)Wmc972jGpzFZ8FfJt*ca8tL@|%0pJy;L~$)QhZw?CNQ6+-*-mt6W8d=rgam&+Ypm zZ1Ew6Tn7BEo0Z66GUUpBm~6P^QD|>K{^)X0WzX*dg5A zB8+2-wYs+*8!@CYTIyt8M)CBZ-oQAE5agkS%4is$(57*G@s{q%sfF<*xqdeev<9Kq z*BlS^F~%L1HcWFp(lms|lI@PRS=SbNb8uMsdwC?o`h~p|zhK#@Y;E$dnLrgsoukj+ zdU*oR+OTJ4VzS$Nv)lK2J|E#j*Y%KoYLAaW?y^c#dX4BhFsceMH*H7U;X=8@P&W%?cEVYv&x zt3EaoHvhZb`j3e{Sw6dK!zAuJ4Vw)qpFKa@|CgW8{{q7or_qxCuzI>jyvbtn-+1(Y zMmZvM!7mn7X##1?Zmh<;ql`X}RG65GC(Ro*Rd3iUr4!UDlR;eX5j^Xa_ zU8H?C_3%^mXy3=|F9?Zb$JZ{YM4sGvqNsRAafz;Hu)_IDx3WsWr?tUHB3Y zZ+bNtx2G%K#2L+NAAe-LI(|L=Fvfb+Rq^H*T<}zA` zPm|6cSaKM?1YpzAZwSo4vC<-F{vGTqe$0(vyPQ<@0&$1h)v~ZI8FOgjpVeXes`kOG ztWlOiYk<6{fhNMN0DbPkEgvi1?g0I6#D6x(wvDEwsvg62!8bp6l2Qnuq5h=}jsHcy zl~p+$tJn)x_;4qrl=t#DDWr56jXjm_s>MoVw$+2bf)gt1GL5>r!6J5JI<_}2!1u$E zwbfdrt-B@)`U0M%r>b{OF=#j?Qsr=`M}V(clbg5n_)l9__t_j#4Z~zYzCQYx*fI(_ zkPoc$Kt1E4d5L1NJX_K*y|pnuQj#-P%Ync3Z?Q@!T_UnCJc^`*>bLu(w-bCSb`oI= zmaj|CuNf7!8x!|c$<6Q6?cQl3X+N=n_W9m6l_TSdL)N;^6zZ5SPgyqIHe#Q+A1BFq z)Cu1{!tDX`XFRyWjX-G*ds~q^B=oSW$%fnauVS!KH%GrgMcu2+qxrS>>s+QO*5rM6k_68@s+@bbGaqGqr5M`Z!6_nxqf( zoJs~xdVF{Q^(7@FS@P>+PcZ})!`QzQl4d@GXXVhHnyW_@syTU%eKHzh6~VyPkrMD1uFH!<>?U<-}{&F>_6hnA&;fRLv{(Z2(dEH+P|J|9YKqzG~eMMVgzopi$^ ziNSHUr&F6=`%P${b%}Kqwi%4Zd!-nYvQsOd`P)>+SRhLA%bPt07w1D!CU)!I1~RV8}_c4gC*0jCUDK zj@~lK`^6{jH|~fRmU(47RWVN~BAm~Rs!c0PnAe!DkJZ66DM`$_m^WN(4eFKbpveL? z@rX#OmHCy2$;v5#7{s8yUc@7%tKh+fPX!BstBN1@YL30#pcCQgBxJopLe}>2S3w)A z^_AwxgRl3fa8n8e3cGIAE-4^2HT^L~wt-zcc_qC55#Utx0M(>|M;RB$$Be137_EQ4 z>9S`Gj@)IuV?H>2dDM2SKnD6UC86cFyXV-BfNje$DC00Eco zU*~A0$uT{XZr|VNaNHILv2*e_O{zOJxBcV9VfpM){?(P{o2#FsNE-I=M5MI?31VV1 zYK;GA`|n;4tJl_*6n&%=Bmi# z(2N2$$I;?$W z5cB`u0qR!Vwv!TZImNEz3XO+13GzweRqdN=%Ww!gcF*j${t7J9*|iR}9g z<2ws#Mj}g>QXNp#R z-EhagC>LnF8`K+yaxC}V_A=MAJ|;OncU^ntH@&N$*`48Czao1Qv5nQ~KmF@Nt2&d3 z)0uds{xk_)1GjC8Y?VtVhYn5l-X?2o%9)BITrD`=ChrBOoo8khC>AL3EWXGLSlMEb zFb_m&U65;Gb(2}!;@;Uff^r|`yKXm6L6h6@58cfgm2U|B74AXb>xq)U%H21{TZXOE z5)CE?{Ya$m+X#}%)|eA`UZrKnOUCx(WkjkV=}zD6(BTE|TTYxlaG}Ndt|4)>nZ8g&3O$rTrRvBD&_JuDQY62d;q7)`Kngu=PoKM zMYJM{cOHg~w9-b&Z;za3icqjdYTt5GXw8o6c{P}MIG8D7zY-+5Dl)sZI^A>Y=Wd7F z7b2K!%k$1pQSUYJiN~*f_?9gNdUWEo?K|9%FKDQdWIk<)ZEKQkyD#HS&R@lj%;wBP z2o=q<5amtzytPjq$2qHBFr6l$h%o>|WM!|RgPxwYo@ z&@2m0c)e<}?jWVQg{w@7#^-IRZLp}+h#!0&ENuJX8TN&7Kf{#2tfu2>LUNy!uI^n< zi=kcnNXF$)H3dD6uHP=9tuxozjgOnG-|euxr4@guwm&AabpSvCK)gdxnHt3^r z_(N)I6(LYCzA4By)DDrYYknwRXFoqSrg>H>5mb< zTX0sG-R%k*n>*`d4vMR`TxB{&)z?r`@wUYwIHmiCd8LOC^{ADnwp$Oi!kfv&8sqx= z+OD8lVqRvXeoNg+poS*Y_M+ zAGX~OjBjjSM}-)01V6w?e$m7GE^+RJ3|2uoGAB*?T`-rrzT=ragaM-yN5n`!xJ@Lub6w+wxnok z4o=*Bfab;1%dVquGd0QNl?^8VEI+RfLW77pK&p)WY&r0xVTd9*-$V`+iW{vv!LJ8w z(!^ou2o&VplhSb7zc5a-Gn-ia!?l#51PkXX8RNiA~z%jMrRQ9Rn6OT^Q^Y#Hgp%^O=3FLPwY5D(T<4b z#MIR_jpgyLGUV@-MF@^l=ELyIV2g&9_=1HfQ#8cAT?w9@4}qWYwvc%E0HIq z2uH0B4X5+DztoLW%!~EmWBaQPgQm76$zx~mQG~%00wvGD*iHwv4lGcrbUHkkRNeGK zRss||;sevVUW-aiT#y=;U|RkfWTjHe2jhbPoxmWXO>^im=x$1J%jA3-WnF9?MiDbhVlyjgWu|17Ig zT0V594#}JJs2-bprhUg^G`f}^Xc18C!;IL6?Yv4E=e2b?dU5-(=$ef#&c7dU$HqSuJv{^0KVoOsE0u9f=rX? z&R{C{I7Gf8BvRn%AA%fWTM`yt7|Rk+IX!T&aGRNR%1ln#htGE8uhV7ALG(@ra3CRO zs&RW}G;PmkxSvn6KZm6-HN^(-D}Gh1%lYzNRa~9xsZwyAb5x|Uc|U>=!?8(M`avo7 z>#}y8epMV}sU)t_Fjc<2LNeNbsb@v1K)|R(-%VDx`M5DJGSxr3MzJYXnwV$FKnxz5 z$m9an&)03|ys`$5d}((AFbhEb$12D8@SF|%dUjhHbrKsm~IJJ8#m~% z;|qtBE%+vT=sXr?vlGlF2IHNJ#lb z9R`O^8KrOTSh1UxZtuT$`dSVI{Ib>|i`c~iPeRp)m6h0t>w%8lN<_WXl)di{2+FTS zP06o-TE`GrI0or*jb4(Nv9wmOby&Kb}SV@0)MV85xi{zb6)fsms1hSm81KF@NTz0*Yqiu6718h&GGEsxWcKUd;VbDWP-53HdBAv>x+3&oi zwpx?FvzIE%D6a|^T}5XjMfL*$ftVLW|6R$&`zN5b-5xDj8AoW;m8-y@`*0yylqo){ zC6UD`!eQ!%<*sV4w-E;hDEEs3j`8}zrvqCT#Z@~BkX`BQT8AE4g)w!D3RrN+%r1jr zQu1qzAA@jj<812d9dG7yTW*wo&7_UlWGEX>w2%;Zoimy%M<#k|dLG?;K)69gD~z=z z-uPTI8>&Gjl@8^ka2)#llzFIsz*kbID%ALXjw=G#U7!Jq@U^F6pEkyG1_hyz1JGVU@#Rmm_h)kay-tPu@e^{LPQKqWU;<$91 zqX)9A1T__I422E`te`q$1D52YajZSnlAaa~+RCy8+|d-P+XR@2!Imh=v^P!jaOVnM zH0G$nzAz_B&KQWi3PlmJYsCBscXdTEa;cR3m8uoZp@l1}e&vS+i((T^bgSL#u|fR> zDV9HI%q(#++o8ietB!T)nx19F!67foHmmL;o|i!hFVG#=M#!>&D)v4=u(sS8F#;@W z-OSE%4%We8iVb{(4C`aYU#K2Mcee^_)~*hWy_07~p#98HWC2djRncnCr|L)u&8-@Yfxvok9y}j!H6RPO8{TW2*%OBCDRE`m%e z(xgM}`@K&^u^p)lYs)`xqK)bd`r%=cDU3Pe;RsS-d$ic<$D7KzM=T}OX)9-b(?J>x zsEPKOi7{H2Uz-&|BIlLc`_r~E`WOQ!T-Y=TBt0EK|LZvhO0*eaQOX)J!AJt2UWte2 zeY$fu3(gK^B?Fq`n4)I#vn1_l9JcnXD~?`I$c_Vh_-Y5!tLn+wMEyptwCx*~NRuP&apwlbPXLl3p=q3wF(?*px$qyr;J0o z)@RcC*OfqDunDSOD$3Lh4jlwN2R%393EhbA2fH(uPv2Yxq=o%zI~PSAtv;LR%U8lJ zgYuGFV#^(Wy2Fojxw8QGC)dJmfh8ZlsPE{nyZWD%rXD$`)e_RkhQE`9y7n_Nz)5r2eiF4bgEp`%RL)Ue&n(m0+!=4 zK==s3d^+}Qa`3{Kvhzz3qKz8Lo&)%qiY$Zc1321)UySgWb?D7=a39*WQcySJdX?ey z+za?8-)p}WL}18XbZ0hfW3pCRJwv>HYu>4GNUmz{wOC-Kr?9El8MC{yo_2awIii4o zTJ9JXYacCoPs>-Zq4-_Y3L6vPkD?{ECOxQx)Ij6~IcxP-zCD2k)NgUsKkldy9~^yC zs7AiWR>IpRShLLa3!r>TaY?@?dxKT1Y1z)-Ki+b_EuslqF&hu(d8dTh@PuIUgJja@%1iW1oL7%8%fv;HB}BA-xvnI$ivoVPV`5 zal)&`E25i(7gjl}n(7p7JA-kE9UwFl_8EWup=2&Frow=(3_XN&o)czApX?!p{8{+x_)lY}c>V zse^IDzdu_x5LxG_d(2*Wb*^nu=oC(`<(B22k-aIi*7S)5&v@3hww8_jS-nb6 z8a6~0-JLtuh-AxW&)&+eK8gM(fM@>~6}}Yruln>iJ^!Nvnhher1@~nB?!lXAeY}K| zXFq&rXQzfi&*kaUr+YKTLPA1&W`|t&?@xG9qck!fYx8|>a+{SCbDf!Je_tLJY$5qe z^74}|tmxo&EoGw-*Dk z9WCoN33JO~mT+~R{f=_a3%1~FkCZi(%=#ev3Zd`H%5q6d2$^%Kj1NmHmzUaGUMcP6 zm*^)o3!Qp$a`H(p`>r29CcKtYKYzADNDkfmZKd?TA1nd>&;HF%jQj71=DU570$~d^ z+P)DtKB4+}>o_RNnn%-BC?#U477zZ+Np=)$eQ{VCB_3Cmp0Pom+M66;u5h;FfRj}g zM8HxTVUEStv-e#a82rAREDKS_`Y9Wi;K@_f+jW#Pj_+!x?k6_hs0!pU_n=W?&e4o- zyVO`C)26{QkzBSEmxZebfKDu^Egi=o*OiEnDb7H zUkc3+(x%0Z0fC)#K09B;TicYT@hzlt0U{%C_j7s`3L#qoF-+lG?Y2^skF?q4B#UJjI)9^|)_*{PAmgsKM3k+&*4;{n6WAv}fM$!1_h4aALUFz2>lll6I(C zdkX~HaG%%Np>>R{ddrY`d_A%mgdFm3K9gcQK77-DvLqXm@kqD7L((-BN=Xfb*ExdQ zx8Fd6lt74R7oBE@kkkX)e zqS&D(Q$e#;&ydU$va#WP(9svmPDikOFKBdiRj2S%T~YV!UKI1~hjaq^N2~1KlS?ec zKR~!TS3T*#%QMo2yB*v-i=GBf~m5Yh0oQSey(mSkf}r$4KTA-1L4)@?tQvR!cEu}L8^dA)l$ zT*Y?!HCJW)w?K;W_BM#hHl>ck^Ut1kaFkPf>(?q}qLdSpq{`ydSkhonc?95~nsiK; zvPs`-1Nm7~Np>?0cu20W;ofCR>>7Zs7|62vV?2@$l3D!OWG|ROr~?R4_S*r%L#n}L zOrsOBvBiv_4C-;yu^CflR|=uH4W__Y;m0`&86(NAGgo~b`E!ogPz5a>+%BbZQ$X2` zu{^5YD3(dnPP@%MiaH`OEg(OX4Uj{ zClxZD4M1m#jz^LiSzPh&HL{-3u>)PBkLkZ(zB^AT-VRqC_1xh4s;?JM%4X_+ESIfs z<3a64U}QR}xIJ!D`W0SnY{N=3Nc>=&DwRsItSL!gBUHUJwPlrjV;)>FC8b2R^y`nK1$OP*Vjlw<3fZgUdd$gv!T_bko0K#Ls@9tmM=?h`pRCvYy$ndf z0EB0Nt(Aw1B1ewaQ4eA=)_!&!dbd7+Pv?^{I9>M7CY~mxR~l~%0{Vhx(%3`gUh?8- zrsJdz{o_XL5y-R>wq;iTC-zPTQ|xR2VtX+#EIES!P_OUfN2ZR2Q}@)!@z=LQJOrvP z{9u4(r1K|So)6L5hSqE!dpi<@J!T3eB>R5eP%t!~@HxHB{Fu z%3*i48e5Y~Bg)YkJXk)A_a$D^6Qbu3J z^rTPVYq_mkROaZ&vi@{8|t+m7=lt|2Sb*U2E(_nbz zx#C`o_5zp{Jt6sxM_Mlrw!(*gDE+Y4r4r*(`L2|O~8`FOB)ql#E-MB=5i@sO7 zues&cYlfDm}e&qq~z7Hz7Bo(5@^Y*+3K&fVvTM=|mn)IhuY)ot4lE zf*a?jK^{Y;ZWm(gLKXwdadSPr-3>o@Q2rDQ&{-Q)I+d%0MS=ZieGDvm zQ7oJcYqYPry$P8M!HiVu_wf)4l25;Xc>C%6`sG-~5<)UFOEKhQuZeGd^0$hB!h)a% z#-7EY_rwiKUy3DL16b44$ylRotzjU7pkV6Hdi*-?^(-d84U|!KEbF^g2|h2u<8(#s zMgpgnS0pm7OaAIqlRexQQ$a|VzDeR}(7?4Q z`1)WVhy9Cu@i?wZe(ak|x0uVh7N};i8{;C)Tai-z9!+&*ZRV#L!lj_7 zelMxfrgA|kZs^0X2e{?F_AM&(vaN`VPItU=jIht4{q5aN!mI8bHLf;rUTjs7(`NKA z^R`jNZHzinYmrkRz_&mcT~F&B-~4s^q-eXkn@~U}A+7&0E{&6(3qTwNOseqcZgDXm z=jqoaBya=vgcgG*ahhwm0x5r{DWe(emq!ZM788>frxiR@4JWry@#Xty-uazrV(fzs z{GZPr_s`tP{lmHgT*Y?m^!8iE1WluM9lt_(%(RdC6}Ib{OReX{3Ht%%iz2-y+ht8T z8;FOXykv_42lcYC6f^r(0I_PjkLQNg^WN3hTjNhd_@sK~95Uo&%SgTB%CYv$tkCo` zcq`nTG^m+*0GYfUQY!B1A+sMO&Tqn}$TEEz=@nuv@_qIJ+~w$=fIszn=YSi z@ji{QX(e;^o3C4y+!nuzAAn-(EJRK;IB@OdKIWXCI3K90j+n(3<*S>(Mj-LezMt}y+>sJJJw2)r~ zCi9V=w!%Fz*O44H^KqJr@r*4~`LNVk42`I5#CE2XFJl!Ue?f^#)WQq$ppCV3PHLo* zj@QQmp*!`(ImRcev~+GhbPQR-8RMxmscpS$7bFjQH0T}LH?hW;cXA|+1ilbNyPR6? z>H5~rd=C61snF2YeuSrEu>4J~X%|Wo1IHbX_)6w@NzeMqk5S~p=m)L7I>|~zqG&0< zKE5l3i=V%L8AC%fdnvIqIp(E$B_ra{2QV-agiGKi1PRLrlNO2$j2KE-YcOo6@2zVB zW@UP*n*)bARSnHtkul79K7+iMo$5sdoZu;$o5TaenbV3Mro|Z0^X85V=dQbHiM>C0 z>FMc;TFTCzsp??W@nV!`NP9Ioep942NQL5htO?98QX7``w2kx_>CkgW++eI6i8@TA z8=I&uoU7GW5$pRyep{LNrK7S7>-$mfIfZqHz@xo#pe;(aaaT?*F4LR^I(6V+94tb7}%@~Imc@(1H}vhi^07I zNt{QigPN?~sf&c(K7cav`@VL}nrT2w@Yd!l61BdLrYLiBc4+vke`L_DQpwlwYm6sK zRXUjnB0KbUFC|m2zk=*zRW1ItA*t3`QeKCID8J4AAW&-h(4w7^<#yhiNU=JJ)q9*D zq0Oan9)8PJ2M{EUvSLn&DUNb;3Nr}HD2me+jtO^zWHZz2T>xvb1$lULXkto;&PN?7 z(Q9LKvBVAOVsJCiJxz+qKEwaqqRM=4WM`s&Po#Wbv*e5nG)|1QO_B0-u!7{2krsj_ z0|!)m;%W#^Wk+r;Yx}>E^#donvtI!#$U}rFRg3Td(Y(as*6D7GPK*nXFW2(R+nD{& zgmtBT-U~UlJ4)~2=k?`(66;Qdv_nyR9NakA&QCFWNj_^ax$4Vb ztu^3k!diooRCxkOZa^{{g0<;H1+KvnRp-3z+^KIcQO)FY;~4R4?}}nPlJ0=Srmi z$0(M=wA%w5w3$mb>AX)`QG32VhHmyyC5QQ)2=K;{br-pq?)ZnlNLU&Q;_CQ=-T@8P z!<|1fGCY1Cf08xj(DkCWE+7`jW~a6;>0~9>EZgI^N9U71IDO?U76ms z;`40J3oQM`a}WGfMP3YOvX?VXb+Ekar1holiva)mhHe`TEZ21 z98K?pB~(owJ`!AdZ=O#r=*TsPSPC3#>x>d)4dl`^|Tw?0ZH%ppWV8Wy{a>VRf_11YDWmUKkwZ= zkd9@Io2GX{iFhiD4ah2&8IULy>9HZ4QICuFf-xm?8ExMFt% zQrD^V9cEv|FrHQ{oVV+-pv>UruM-qY;LOWA<3*RV0?V_s&+msi)6|1_6w1dL#mo>I zPOC>irI5&!=F;yN;eVhI^~wWPP;(!Q+YN>SJ#yuOC2LT17y5<4%SCI^6wP z);mcWCS-r0bieNu)=1VVdU31QU1bQ65qO!1u_z|b2`V!0CY)9Tr7eS0T7+Q^@PKjN z{=sd3vj{_M=!I8&U(vTPHNbT{gY3oo(~6yU37;kmL#Xoc}yxSj-G-#~yr<)KZ`1%`cza>1q6GZcJj+9u=a0v*~XP)v1;q z*)szt98lB!on(8Wi1)R7euog_Sw=2?O~a$82$cXKrCaEX-qjZ=Debq5dL1v&G_RC@ z))-WJpB6nP5MaCv5ED?@-df?An>SJyH+|FAp|XB%QKHYANM{S;moN7VZ8R*r$1Hgz zRav_@K}ivpg{U+v(e_XQcYJ#+J{r^fmpK5#SdJM)_fTOhR{T}$4s~43Zp;o+UKbL# zpOkWua_KgRIU0cAI0JkhlCZSf+YvOo$=8D>?u!*Nj4g6}J z0RJv!g`WkNEsqe6XDW3;wd93|GuN}+GJlTD80yqLsA@LBoPU1siLG2>F=zB`dgAVi zYB&-;sB12#F1CVtIp&4dv_|%`GG43;j;oQkq)6y$`7Zh>L<*~x9EmJB=mxaw0gRx7 zzW7*R&xXb(>kn_IkH+^vSy?OupNR8RP7b?)t*I%fM8C*iT6FdMoc!t{uBM87M~+^( z;2PcCMxOF=zu}fr6<8cc$EBVp0H*0aRxO<|14&^qgL^S#6(l+hB#C(3^AytiCY)!E z8sw){usE9-#u-yidPylv;5f}AEZAMK)Jh>r}Dm!`u83737J03P1k1u zX0*tpy*I#3l0Mlzm6XVveZ~#l5swx_H+0HlOP}X`=MMVd-qQ!E|oV@lCh>r16h#@Y%MaW*E;` z$?;`>lA|Z;I(>V#0YL-(QGr{g>*X;fUV3F{kK6|`BZ~ZFxY9kM&yU@K zkmVGTVadYfxV<%kV00pjv}CoSNC7vtcXhS}B9lX!?Zy*6`kzU0CcgN)Zbd-Xod1aleQ=gX7=uW!!tzJT zy@Z72%H>*R0>0wcW_RE~sPcBA0icI?@AT(`Hj!5~)fAta^L>?-ue*&xFFWm>-nA_* z3}q z(<*{Qys<4G$E+-$-pZr&loQ->Dj9m(9UAqmNF`JM0!?QmiCULN#Uiyz8VuJA=kHL| z&EwO-&4-P8i`251o>JhG?~#;`5I1WZ)>K#N7nM6uHDas15jC> z|EalM_1Np&(tFXDZL41Cj;3YZmtFBp$=v-^H)M69Qo0>%;(C!a1r07u)=g;qbWgY_ zb$!rcW{S|LAr+kD3vzW^-Z$HKjcR|GOhIToW!HEKgYmI!To@kd>vujW*6YCi+2y@$ zF!}vmU1gL zigi@`0zsc{oLY_XSI-AL7DtttvTxaLQCa77wX#;e`F5j==7v7<$8+V$g#bw9_Q9Rb zy|u4&i|Dd~07e*-CH^5B?Y2u5yV7Zi`Nt?MM}Z&EJ=U*_af|;XIY_Ky)cG}bCZX1k zq}f_OIK!TLw`$92dwl;+E6HgYvhswHonLuc_>=71v^riU#8kVeo^ni!AlVb>;lCuPJFWXY>m_wV%C;<9G8=Ws*&n{ zJO;N8Sx>oMH!6y)Wsf^3TN}MmApWOL9JMWQ$1eOqYNl!g-8h#4nghDjhH($T@)9#sO!8UHOF*NW{Kc#nSDOW&Al{F*hY z++j41L2mNvYldKxR;n?e#`xP{o$q_6yT|lOP0~~4ElqgiEl1?L`*2~3RezC}i=P5~ zu&L*oA!9u-OMkBLGuqWF=mMC1+H@0!na!O4o9Nloz~DO%_*{#d+9SG8EZI6qAvF)# zexHG2+Vf9}TZ8E6&ns^$6Scm^t*e9_vlVSZ@-*UpIL>c4)QhyJ&QGaaNJR}qiUR_2 z3jqfl$Pp8t%HF05&b0ND$4>_c6R%k*R+4S^*|C0kYm-@>QID+654YAi1BWw)r&p#CzvMA;&w*W|!%y}4@@!^m%zox8RP*ZXpJ zlF!tP25v5D{3;b}RO!kc0sbe1ZfuGQyl+IMVaJ1FO|wql_K!$wl4amqueJhcwYkLU zQmA=_wmQm{Bsy)p5NiOHiU;`W?S2}k9qkfWEZq^QcTJtlufR=?)xP20p&t2={!uCG zW+67v&~)`duj3&lqYaXyKY@0i!;VK-*EkTtK7?^85R1BLmArGi(seWBk6+YUenDj`?TmREa?@bPo$a)Bn%lHJkx0;xF}Iu!{dQP+Lzg?gxMQh*o= zwx!jNJueZ2IS+%~VgX-pTJTTphO5jhrLTTHQs?k|@3eK?$NU#}Prs4!fjgX)r6Tfz zKpzb8w4FU?0F{NBSf)=~wc1(WO_9DojnqStMsdavB@sng5v^c1DEC%QhkmoLp}Zpp?wy9e6%D{(DvYCWMj3ec#xSk!_=zSf}qn+^*FD44MFH% zGHg9cboKl%=i|7`N6X9UytaOm=u9q7+CwL@E@)Z>d+Nv!I(>TLs;x~!--+@Y1GQ@{ zh4ibbsFet2(PIGlE_=aC8grX|)j7l1BbrNPvB6FLe}m0?h9SRxa=hU(V%o5PLF=E-LCR{|AXq)JYVf`(;G?RBg^g+C2ADXbE6$a3z}rrb*BG z%6p_rU3Uw+kbXwciBn~YvjD22RpsZoRb@h3Z{Q8Tcc<$rr*b-p#~%LFq963U2fSIl@HE$_C9zK)irMySDxo6JE?;2i zQ>(61U|#;T0emL+QeUY{A^kw+^N{GCAMcfVEOzh7 zno(^K`oa*`F7ZVk-Fc#~_#580lkyvX!+ZUrTdxuP{}{9f-PwSSckliP91J7T`@h@& z2-E5xcUd9+QHS05BCy7bv3}-SLCQaVfzaVbj;Hh$-t?1%0~^nt?5{5cEHW#|J?Y0M&>gH!9X&trs_%D6w+SyeKfm zQ+sHg!OW5BoRFa-WJJK?>@hwfyEy*YRibW=_~o6Bd8wXzfh`?IO-3Rko^1VU3f+#| z!7)k4TOQ0J2#YPI)e3CJX)@sXCtGUI{1JyN+ubzg6WB685Pcm({; z=iu*3AR`^+{3; zgnN;R&Fz2G^e2xbQ`=xk?iXhx=pEmHne+C`%xv_9-4aMWP)iQ3H^-B>wJcyhG`*|m ze6HaXsH=|K>^*HE*;7&CK^d`+eYe_6Vb;0QDsySaq%TVCxD+SY3mSlR-D_?H zPS*!V&YR{kc zjk)=A_l7q=#qWu01iQ9j;^hguytvA#=h(@+zJM=dy#H5e=l+)T9mR3Wtd%9rvQjDY zab{L_QOa9Rw@T(c@q%f@lGFk(p%5dr%;j<=Dx0EciAa`;;w`*Y>K4S*L{kwF!3AHB;U2x>ePSu>jUHC) z65)nD03yn?NRZaIs#yBe6L+YwRo#3FL+`>=f_>Q!Ty!vREK{z+G|MTrU{k(D>%uU>QtASfmC7M=)3hQeR0IJnEg(m_)_Nd77{>t^ozn$_QiJ;dhN za6ac8r&N2k%z%GscqAOsvn{}F?w*ZQ84pF_i9*W>wzoJa?*5kgKqQz0iC?Oe^uIa& zL7myNJpgGpQ+->87mS=In|43jlp@bDUESf>+WA2`nlo9e=PJ%)nv|F?i35w=6nVGr z9rn{UBV885y33AfLRb?KCGo-KurRyC>@1Y>HuZ*!l@rl8%YefvH(KFpPP6Ov*~c+$ zc2DgOxop{EQLPyprX>+MFRpV&&-!>>`hY}s{>l$+p0rb=*>SU11+4P}VAWT&Y{EV1 zuqs?jV`n7X#0vU0O2+i#9h1S(=z@k&vYn9mkQlqGUhLRwcs-ZJbLOF&XIye>08|9u zJl){cgNh=$0g)cS5NuLK&chv95yj@N2U}u^#G3NHq(thPBi_3{Nj9@f&j{f8j5U;8K9mFi*!V5W8+hQxdyBvNFf#c zkgYZs?><;#-BlUUw)H6Lm2CsX8rDb4>q@5x+z8*-o~4e*2-_E;*B%)Se6K&Ua>wFw zJEUv!uvIeg>>129%mQi%@_S3bDH5$j8s*g=;_f(dnU3|DsBIXm%)i-G?(ki@DIDs# z!x}GRUUK98bmz!|R<(9qsWWY;USxX<$GJQ2fgfwMS8UWTNv0gdhx1%LEc7@KME~5q zJD4{2z~DE*n^#&$UA|aQmxuMqW_G~7gx8?xI3Gj#6Lw=f??Nho*e#e8I-Iy0q|R`A zP2t<_CyYHiU{xC$&n6Zz7j|k}3^&`ygn0-CvSSDX=bAdE24dH4^6t>!RaGZ$#WpdN z3e`l@l>^b|Stw~d$#-!i(gHDw9i=cRZsNunbDdCK4u@NSvHeTHMH#F};k2`XdeZ$iiQE2X#cT{R4LF~6W6lD-)4&F>Y&)$ z|3sX^_(%1fY|rh5k9R9Gk73lGq`ywxtxAMU7k-m8fV+pE=zG0r7hJPOUQ*mZit`os z<^AkwlAa|CY^gKJSG4} zgxk5!J4_&{uJj^#RR1FRBRY6`{YL8Ma&CFr%Skn@McFN{7rY>!$zKctyJ?&Se+q=j zdU@;dwaylqN~Uk`xdnO>JzJsPLv4Q%X1-Ibs+TAw2S5A0;BOtJMEh)$$^9O)k#a%F zQ)*0A(rTtr?X-X6AJznuo0@w;(VrS_an;-3IGNB?_YSAjPiUdv@^ze#@4tX|39iLz zb2JBTR?zqDUg0D674iv#AswsYj7nDj?RA#DQ{XWS`rpjX7#C|ISKexPSyp%3(vdJT zW8Jjw4>@xgV*NPHG%l0pF1#!HUrgP9a+@Ht#p|*KSPEi?J9oKAE~h+CvcCQ{@lVxy BJDC6g literal 0 HcmV?d00001 diff --git a/docs/content/en/working_with_findings/finding_deduplication/deduplication_tuning_os.md b/docs/content/en/working_with_findings/finding_deduplication/deduplication_tuning_os.md index 5c81f488079..162b683d4c0 100644 --- a/docs/content/en/working_with_findings/finding_deduplication/deduplication_tuning_os.md +++ b/docs/content/en/working_with_findings/finding_deduplication/deduplication_tuning_os.md @@ -103,15 +103,42 @@ Notes: ## After changing deduplication settings -- Changes to dedupe configuration (e.g., `HASHCODE_FIELDS_PER_SCANNER`, `HASH_CODE_FIELDS_ALWAYS`, `DEDUPLICATION_ALGORITHM_PER_PARSER`) trigger background processing via Celery. -- Hashes for findings of the affected test types are recalculated asynchronously; deduplication relationships can update over time. -- Allow some time after changes or imports before evaluating results, as updates are not instantaneous. +- Changes to dedupe configuration (e.g., `HASHCODE_FIELDS_PER_SCANNER`, `HASH_CODE_FIELDS_ALWAYS`, `DEDUPLICATION_ALGORITHM_PER_PARSER`) are not applied retroactively automatically. To re-evaluate existing findings you must run the management command below. + +Run inside the uwsgi container. Example (hash codes only, no dedupe): + +```bash +docker compose exec uwsgi /bin/bash -c "python manage.py dedupe --hash_code_only" +``` + +Help/usage: + +options: + --parser PARSER List of parsers for which hash_code needs recomputing + (defaults to all parsers) + --hash_code_only Only compute hash codes + --dedupe_only Only run deduplication + --dedupe_sync Run dedupe in the foreground, default false +``` + +If you submit dedupe to Celery (without `--dedupe_sync`), allow time for tasks to complete before evaluating results. ## Where to configure - Prefer environment variables in deployments. For local development or advanced overrides, use `local_settings.py`. - See `configuration.md` for details on how to set environment variables and configure local overrides. +### Troubleshooting + +To help troubleshooting deduplication use the following tools: + +- Observe log out in the `dojo.specific-loggers.deduplication` category. This is a class independant logger that outputs details about the deduplication process and settings when processing findings. +- Observe the `unique_id_from_tool` and `hash_code` values by hovering over the `ID` field or `Status` column: + +![Unique ID from Tool and Hash Code on the View Finding page](images/hash_code_id_field.png) + +![Unique ID from Tool and Hash Code on the Finding List Status Column](images/hash_code_status_column.png) + ## Related documentation - [Deduplication Algorithms](deduplication_algorithms): conceptual overview and endpoint behavior.