From fe9b89369f4c62255e83a6f3a24c0c0ae2354206 Mon Sep 17 00:00:00 2001 From: Chris Rankin Date: Thu, 19 Jul 2018 16:35:36 +0100 Subject: [PATCH 1/6] CORDA-1816: Migrate JarFilter plugin to corda-gradle-plugins. (#3651) --- build.gradle | 1 + buildSrc/build.gradle | 27 -- buildSrc/jarfilter/README.md | 218 ----------- buildSrc/jarfilter/build.gradle | 46 --- .../jarfilter/kotlin-metadata/build.gradle | 84 ----- .../net/corda/gradle/jarfilter/Elements.kt | 181 --------- .../gradle/jarfilter/FilterTransformer.kt | 356 ------------------ .../corda/gradle/jarfilter/JarFilterPlugin.kt | 14 - .../corda/gradle/jarfilter/JarFilterTask.kt | 288 -------------- .../gradle/jarfilter/KotlinAwareVisitor.kt | 159 -------- .../corda/gradle/jarfilter/MetaFixerTask.kt | 128 ------- .../gradle/jarfilter/MetaFixerTransformer.kt | 278 -------------- .../gradle/jarfilter/MetaFixerVisitor.kt | 76 ---- .../gradle/jarfilter/MetadataTransformer.kt | 319 ---------------- .../net/corda/gradle/jarfilter/Repeatable.kt | 8 - .../gradle/jarfilter/SanitisingTransformer.kt | 81 ---- .../corda/gradle/jarfilter/UnwantedCache.kt | 46 --- .../net/corda/gradle/jarfilter/Utils.kt | 92 ----- .../gradle/jarfilter/AbstractFunctionTest.kt | 69 ---- .../gradle/jarfilter/DeleteAndStubTests.kt | 188 --------- .../gradle/jarfilter/DeleteConstructorTest.kt | 165 -------- .../DeleteExtensionValPropertyTest.kt | 52 --- .../corda/gradle/jarfilter/DeleteFieldTest.kt | 99 ----- .../gradle/jarfilter/DeleteFunctionTest.kt | 81 ---- .../gradle/jarfilter/DeleteInnerLambdaTest.kt | 84 ----- .../corda/gradle/jarfilter/DeleteLazyTest.kt | 71 ---- .../gradle/jarfilter/DeleteMultiFileTest.kt | 90 ----- .../gradle/jarfilter/DeleteNestedClassTest.kt | 90 ----- .../gradle/jarfilter/DeleteObjectTest.kt | 89 ----- .../jarfilter/DeleteSealedSubclassTest.kt | 56 --- .../gradle/jarfilter/DeleteStaticFieldTest.kt | 74 ---- .../jarfilter/DeleteStaticFunctionTest.kt | 87 ----- .../jarfilter/DeleteStaticValPropertyTest.kt | 91 ----- .../jarfilter/DeleteStaticVarPropertyTest.kt | 106 ------ .../jarfilter/DeleteTypeAliasFromFileTest.kt | 48 --- .../gradle/jarfilter/DeleteValPropertyTest.kt | 102 ----- .../gradle/jarfilter/DeleteVarPropertyTest.kt | 141 ------- .../net/corda/gradle/jarfilter/DummyJar.kt | 103 ----- .../corda/gradle/jarfilter/EmptyPackage.kt | 8 - .../gradle/jarfilter/FieldElementTest.kt | 32 -- .../gradle/jarfilter/FieldRemovalTest.kt | 212 ----------- .../gradle/jarfilter/InterfaceFunctionTest.kt | 61 --- .../jarfilter/JarFilterConfigurationTest.kt | 272 ------------- .../gradle/jarfilter/JarFilterProject.kt | 56 --- .../jarfilter/JarFilterTimestampTest.kt | 107 ------ .../gradle/jarfilter/MetaFixAnnotationTest.kt | 47 --- .../jarfilter/MetaFixConfigurationTests.kt | 79 ---- .../MetaFixConstructorDefaultParameterTest.kt | 110 ------ .../jarfilter/MetaFixConstructorTest.kt | 53 --- .../MetaFixFunctionDefaultParameterTest.kt | 96 ----- .../gradle/jarfilter/MetaFixFunctionTest.kt | 53 --- .../jarfilter/MetaFixNestedClassTest.kt | 57 --- .../MetaFixPackageDefaultParameterTest.kt | 39 -- .../gradle/jarfilter/MetaFixPackageTest.kt | 66 ---- .../corda/gradle/jarfilter/MetaFixProject.kt | 57 --- .../jarfilter/MetaFixSealedClassTest.kt | 37 -- .../gradle/jarfilter/MetaFixTimestampTest.kt | 108 ------ .../jarfilter/MetaFixValPropertyTest.kt | 49 --- .../jarfilter/MetaFixVarPropertyTest.kt | 49 --- .../gradle/jarfilter/MethodElementTest.kt | 88 ----- .../jarfilter/PackageWithDefaultParameters.kt | 12 - .../gradle/jarfilter/RemoveAnnotationsTest.kt | 176 --------- .../SanitiseDeleteConstructorTest.kt | 234 ------------ .../jarfilter/SanitiseStubConstructorTest.kt | 250 ------------ .../jarfilter/StaticFieldRemovalTest.kt | 102 ----- .../corda/gradle/jarfilter/StdOutLogging.kt | 262 ------------- .../gradle/jarfilter/StubConstructorTest.kt | 160 -------- .../gradle/jarfilter/StubFunctionOutTest.kt | 74 ---- .../jarfilter/StubStaticFunctionTest.kt | 127 ------- .../gradle/jarfilter/StubValPropertyTest.kt | 46 --- .../gradle/jarfilter/StubVarPropertyTest.kt | 70 ---- .../gradle/jarfilter/UnwantedCacheTest.kt | 54 --- .../net/corda/gradle/jarfilter/Utilities.kt | 97 ----- .../net/corda/gradle/jarfilter/UtilsTest.kt | 42 --- .../gradle/jarfilter/annotations/Deletable.kt | 8 - .../corda/gradle/jarfilter/asm/AsmTools.kt | 47 --- .../gradle/jarfilter/asm/ClassMetadata.kt | 48 --- .../gradle/jarfilter/asm/FileMetadata.kt | 33 -- .../gradle/jarfilter/asm/MetadataTools.kt | 86 ----- .../gradle/jarfilter/matcher/JavaMatchers.kt | 81 ---- .../jarfilter/matcher/KotlinMatchers.kt | 195 ---------- .../template/PackageWithDefaultParameters.kt | 9 - .../resources/abstract-function/build.gradle | 34 -- .../net/corda/gradle/AbstractFunctions.kt | 13 - .../net/corda/gradle/jarfilter/DeleteMe.kt | 20 - .../net/corda/gradle/jarfilter/RemoveMe.kt | 19 - .../net/corda/gradle/jarfilter/StubMeOut.kt | 15 - .../resources/delete-and-stub/build.gradle | 34 -- .../corda/gradle/DeletePackageWithStubbed.kt | 12 - .../corda/gradle/HasDeletedInsideStubbed.kt | 28 -- .../gradle/HasPropertyForDeleteAndStub.kt | 21 -- .../resources/delete-constructor/build.gradle | 33 -- .../corda/gradle/HasConstructorToDelete.kt | 15 - .../gradle/PrimaryConstructorsToDelete.kt | 21 -- .../delete-extension-val/build.gradle | 33 -- .../net/corda/gradle/HasValExtension.kt | 10 - .../test/resources/delete-field/build.gradle | 32 -- .../net/corda/gradle/HasFieldToDelete.kt | 23 -- .../delete-file-typealias/build.gradle | 32 -- .../net/corda/gradle/FileWithTypeAlias.kt | 12 - .../resources/delete-function/build.gradle | 33 -- .../net/corda/gradle/HasFunctionToDelete.kt | 12 - .../gradle/HasIndirectFunctionToDelete.kt | 13 - .../delete-inner-lambda/build.gradle | 33 -- .../kotlin/net/corda/gradle/HasInnerLambda.kt | 19 - .../test/resources/delete-lazy/build.gradle | 33 -- .../kotlin/net/corda/gradle/HasLazy.kt | 13 - .../resources/delete-multifile/build.gradle | 32 -- .../kotlin/net/corda/gradle/HasInt.kt | 9 - .../kotlin/net/corda/gradle/HasLong.kt | 9 - .../kotlin/net/corda/gradle/HasString.kt | 9 - .../delete-nested-class/build.gradle | 32 -- .../net/corda/gradle/HasNestedClasses.kt | 10 - .../kotlin/net/corda/gradle/SealedClass.kt | 10 - .../test/resources/delete-object/build.gradle | 33 -- .../kotlin/net/corda/gradle/HasObjects.kt | 20 - .../delete-sealed-subclass/build.gradle | 33 -- .../net/corda/gradle/SealedWithSubclasses.kt | 12 - .../delete-static-field/build.gradle | 32 -- .../net/corda/gradle/StaticFieldsToDelete.kt | 17 - .../delete-static-function/build.gradle | 33 -- .../corda/gradle/StaticFunctionsToDelete.kt | 14 - .../resources/delete-static-val/build.gradle | 32 -- .../net/corda/gradle/StaticValToDelete.kt | 17 - .../resources/delete-static-var/build.gradle | 32 -- .../net/corda/gradle/StaticVarToDelete.kt | 19 - .../delete-val-property/build.gradle | 33 -- .../corda/gradle/HasValPropertyForDelete.kt | 11 - .../delete-var-property/build.gradle | 33 -- .../corda/gradle/HasVarPropertyForDelete.kt | 14 - .../src/test/resources/gradle.properties | 1 - .../resources/interface-function/build.gradle | 34 -- .../net/corda/gradle/InterfaceFunctions.kt | 13 - .../resources/remove-annotations/build.gradle | 33 -- .../corda/gradle/HasUnwantedAnnotations.kt | 33 -- .../src/test/resources/repositories.gradle | 4 - .../sanitise-delete-constructor/build.gradle | 34 -- .../HasOverloadedConstructorsToDelete.kt | 48 --- .../sanitise-stub-constructor/build.gradle | 34 -- .../gradle/HasOverloadedConstructorsToStub.kt | 48 --- .../src/test/resources/settings.gradle | 6 - .../resources/stub-constructor/build.gradle | 33 -- .../net/corda/gradle/HasConstructorToStub.kt | 15 - .../corda/gradle/PrimaryConstructorsToStub.kt | 21 -- .../test/resources/stub-function/build.gradle | 33 -- .../net/corda/gradle/HasFunctionToStub.kt | 14 - .../net/corda/gradle/RuntimeAnnotations.kt | 11 - .../stub-static-function/build.gradle | 33 -- .../net/corda/gradle/StaticFunctionsToStub.kt | 22 -- .../resources/stub-val-property/build.gradle | 33 -- .../net/corda/gradle/HasValPropertyForStub.kt | 7 - .../resources/stub-var-property/build.gradle | 33 -- .../net/corda/gradle/HasVarPropertyForStub.kt | 10 - buildSrc/jarfilter/unwanteds/build.gradle | 12 - .../net/corda/gradle/unwanted/HasData.kt | 16 - .../corda/gradle/unwanted/HasUnwantedFun.kt | 5 - .../corda/gradle/unwanted/HasUnwantedVal.kt | 5 - .../corda/gradle/unwanted/HasUnwantedVar.kt | 5 - .../net/corda/gradle/unwanted/HasVal.kt | 17 - .../net/corda/gradle/unwanted/HasVar.kt | 17 - buildSrc/settings.gradle | 3 - constants.properties | 2 +- jdk8u-deterministic/build.gradle | 2 +- 163 files changed, 3 insertions(+), 9930 deletions(-) delete mode 100644 buildSrc/jarfilter/README.md delete mode 100644 buildSrc/jarfilter/build.gradle delete mode 100644 buildSrc/jarfilter/kotlin-metadata/build.gradle delete mode 100644 buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/Elements.kt delete mode 100644 buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/FilterTransformer.kt delete mode 100644 buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/JarFilterPlugin.kt delete mode 100644 buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/JarFilterTask.kt delete mode 100644 buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/KotlinAwareVisitor.kt delete mode 100644 buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/MetaFixerTask.kt delete mode 100644 buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/MetaFixerTransformer.kt delete mode 100644 buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/MetaFixerVisitor.kt delete mode 100644 buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/MetadataTransformer.kt delete mode 100644 buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/Repeatable.kt delete mode 100644 buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/SanitisingTransformer.kt delete mode 100644 buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/UnwantedCache.kt delete mode 100644 buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/Utils.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/AbstractFunctionTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteAndStubTests.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteConstructorTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteExtensionValPropertyTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteFieldTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteFunctionTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteInnerLambdaTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteLazyTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteMultiFileTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteNestedClassTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteObjectTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteSealedSubclassTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteStaticFieldTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteStaticFunctionTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteStaticValPropertyTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteStaticVarPropertyTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteTypeAliasFromFileTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteValPropertyTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteVarPropertyTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DummyJar.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/EmptyPackage.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/FieldElementTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/FieldRemovalTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/InterfaceFunctionTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/JarFilterConfigurationTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/JarFilterProject.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/JarFilterTimestampTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixAnnotationTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixConfigurationTests.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixConstructorDefaultParameterTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixConstructorTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixFunctionDefaultParameterTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixFunctionTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixNestedClassTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixPackageDefaultParameterTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixPackageTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixProject.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixSealedClassTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixTimestampTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixValPropertyTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixVarPropertyTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MethodElementTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/PackageWithDefaultParameters.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/RemoveAnnotationsTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/SanitiseDeleteConstructorTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/SanitiseStubConstructorTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/StaticFieldRemovalTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/StdOutLogging.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/StubConstructorTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/StubFunctionOutTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/StubStaticFunctionTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/StubValPropertyTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/StubVarPropertyTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/UnwantedCacheTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/Utilities.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/UtilsTest.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/annotations/Deletable.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/asm/AsmTools.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/asm/ClassMetadata.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/asm/FileMetadata.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/asm/MetadataTools.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/matcher/JavaMatchers.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/matcher/KotlinMatchers.kt delete mode 100644 buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/template/PackageWithDefaultParameters.kt delete mode 100644 buildSrc/jarfilter/src/test/resources/abstract-function/build.gradle delete mode 100644 buildSrc/jarfilter/src/test/resources/abstract-function/kotlin/net/corda/gradle/AbstractFunctions.kt delete mode 100644 buildSrc/jarfilter/src/test/resources/annotations/kotlin/net/corda/gradle/jarfilter/DeleteMe.kt delete mode 100644 buildSrc/jarfilter/src/test/resources/annotations/kotlin/net/corda/gradle/jarfilter/RemoveMe.kt delete mode 100644 buildSrc/jarfilter/src/test/resources/annotations/kotlin/net/corda/gradle/jarfilter/StubMeOut.kt delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-and-stub/build.gradle delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-and-stub/kotlin/net/corda/gradle/DeletePackageWithStubbed.kt delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-and-stub/kotlin/net/corda/gradle/HasDeletedInsideStubbed.kt delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-and-stub/kotlin/net/corda/gradle/HasPropertyForDeleteAndStub.kt delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-constructor/build.gradle delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-constructor/kotlin/net/corda/gradle/HasConstructorToDelete.kt delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-constructor/kotlin/net/corda/gradle/PrimaryConstructorsToDelete.kt delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-extension-val/build.gradle delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-extension-val/kotlin/net/corda/gradle/HasValExtension.kt delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-field/build.gradle delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-field/kotlin/net/corda/gradle/HasFieldToDelete.kt delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-file-typealias/build.gradle delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-file-typealias/kotlin/net/corda/gradle/FileWithTypeAlias.kt delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-function/build.gradle delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-function/kotlin/net/corda/gradle/HasFunctionToDelete.kt delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-function/kotlin/net/corda/gradle/HasIndirectFunctionToDelete.kt delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-inner-lambda/build.gradle delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-inner-lambda/kotlin/net/corda/gradle/HasInnerLambda.kt delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-lazy/build.gradle delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-lazy/kotlin/net/corda/gradle/HasLazy.kt delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-multifile/build.gradle delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-multifile/kotlin/net/corda/gradle/HasInt.kt delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-multifile/kotlin/net/corda/gradle/HasLong.kt delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-multifile/kotlin/net/corda/gradle/HasString.kt delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-nested-class/build.gradle delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-nested-class/kotlin/net/corda/gradle/HasNestedClasses.kt delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-nested-class/kotlin/net/corda/gradle/SealedClass.kt delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-object/build.gradle delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-object/kotlin/net/corda/gradle/HasObjects.kt delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-sealed-subclass/build.gradle delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-sealed-subclass/kotlin/net/corda/gradle/SealedWithSubclasses.kt delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-static-field/build.gradle delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-static-field/kotlin/net/corda/gradle/StaticFieldsToDelete.kt delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-static-function/build.gradle delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-static-function/kotlin/net/corda/gradle/StaticFunctionsToDelete.kt delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-static-val/build.gradle delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-static-val/kotlin/net/corda/gradle/StaticValToDelete.kt delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-static-var/build.gradle delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-static-var/kotlin/net/corda/gradle/StaticVarToDelete.kt delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-val-property/build.gradle delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-val-property/kotlin/net/corda/gradle/HasValPropertyForDelete.kt delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-var-property/build.gradle delete mode 100644 buildSrc/jarfilter/src/test/resources/delete-var-property/kotlin/net/corda/gradle/HasVarPropertyForDelete.kt delete mode 100644 buildSrc/jarfilter/src/test/resources/gradle.properties delete mode 100644 buildSrc/jarfilter/src/test/resources/interface-function/build.gradle delete mode 100644 buildSrc/jarfilter/src/test/resources/interface-function/kotlin/net/corda/gradle/InterfaceFunctions.kt delete mode 100644 buildSrc/jarfilter/src/test/resources/remove-annotations/build.gradle delete mode 100644 buildSrc/jarfilter/src/test/resources/remove-annotations/kotlin/net/corda/gradle/HasUnwantedAnnotations.kt delete mode 100644 buildSrc/jarfilter/src/test/resources/repositories.gradle delete mode 100644 buildSrc/jarfilter/src/test/resources/sanitise-delete-constructor/build.gradle delete mode 100644 buildSrc/jarfilter/src/test/resources/sanitise-delete-constructor/kotlin/net/corda/gradle/HasOverloadedConstructorsToDelete.kt delete mode 100644 buildSrc/jarfilter/src/test/resources/sanitise-stub-constructor/build.gradle delete mode 100644 buildSrc/jarfilter/src/test/resources/sanitise-stub-constructor/kotlin/net/corda/gradle/HasOverloadedConstructorsToStub.kt delete mode 100644 buildSrc/jarfilter/src/test/resources/settings.gradle delete mode 100644 buildSrc/jarfilter/src/test/resources/stub-constructor/build.gradle delete mode 100644 buildSrc/jarfilter/src/test/resources/stub-constructor/kotlin/net/corda/gradle/HasConstructorToStub.kt delete mode 100644 buildSrc/jarfilter/src/test/resources/stub-constructor/kotlin/net/corda/gradle/PrimaryConstructorsToStub.kt delete mode 100644 buildSrc/jarfilter/src/test/resources/stub-function/build.gradle delete mode 100644 buildSrc/jarfilter/src/test/resources/stub-function/kotlin/net/corda/gradle/HasFunctionToStub.kt delete mode 100644 buildSrc/jarfilter/src/test/resources/stub-function/kotlin/net/corda/gradle/RuntimeAnnotations.kt delete mode 100644 buildSrc/jarfilter/src/test/resources/stub-static-function/build.gradle delete mode 100644 buildSrc/jarfilter/src/test/resources/stub-static-function/kotlin/net/corda/gradle/StaticFunctionsToStub.kt delete mode 100644 buildSrc/jarfilter/src/test/resources/stub-val-property/build.gradle delete mode 100644 buildSrc/jarfilter/src/test/resources/stub-val-property/kotlin/net/corda/gradle/HasValPropertyForStub.kt delete mode 100644 buildSrc/jarfilter/src/test/resources/stub-var-property/build.gradle delete mode 100644 buildSrc/jarfilter/src/test/resources/stub-var-property/kotlin/net/corda/gradle/HasVarPropertyForStub.kt delete mode 100644 buildSrc/jarfilter/unwanteds/build.gradle delete mode 100644 buildSrc/jarfilter/unwanteds/src/main/kotlin/net/corda/gradle/unwanted/HasData.kt delete mode 100644 buildSrc/jarfilter/unwanteds/src/main/kotlin/net/corda/gradle/unwanted/HasUnwantedFun.kt delete mode 100644 buildSrc/jarfilter/unwanteds/src/main/kotlin/net/corda/gradle/unwanted/HasUnwantedVal.kt delete mode 100644 buildSrc/jarfilter/unwanteds/src/main/kotlin/net/corda/gradle/unwanted/HasUnwantedVar.kt delete mode 100644 buildSrc/jarfilter/unwanteds/src/main/kotlin/net/corda/gradle/unwanted/HasVal.kt delete mode 100644 buildSrc/jarfilter/unwanteds/src/main/kotlin/net/corda/gradle/unwanted/HasVar.kt diff --git a/build.gradle b/build.gradle index 702b3f3e2d..c66c7cd5f8 100644 --- a/build.gradle +++ b/build.gradle @@ -99,6 +99,7 @@ buildscript { classpath "net.corda.plugins:cordformation:$gradle_plugins_version" classpath "net.corda.plugins:cordapp:$gradle_plugins_version" classpath "net.corda.plugins:api-scanner:$gradle_plugins_version" + classpath "net.corda.plugins:jar-filter:$gradle_plugins_version" classpath "net.sf.proguard:proguard-gradle:$proguard_version" classpath 'com.github.ben-manes:gradle-versions-plugin:0.15.0' classpath "org.jetbrains.kotlin:kotlin-noarg:$kotlin_version" diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index d792747fae..1af9bc66d3 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -4,21 +4,8 @@ buildscript { ext { guava_version = constants.getProperty("guavaVersion") - kotlin_version = constants.getProperty("kotlinVersion") - proguard_version = constants.getProperty("proguardVersion") assertj_version = '3.9.1' junit_version = '4.12' - asm_version = '6.2' - } - - repositories { - mavenLocal() - mavenCentral() - jcenter() - } - dependencies { - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - classpath "net.sf.proguard:proguard-gradle:$proguard_version" } } @@ -28,23 +15,9 @@ repositories { } allprojects { - tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all { - kotlinOptions { - languageVersion = "1.2" - apiVersion = "1.2" - jvmTarget = "1.8" - javaParameters = true // Useful for reflection. - } - } - tasks.withType(Test) { // Prevent the project from creating temporary files outside of the build directory. systemProperty 'java.io.tmpdir', buildDir.absolutePath - - // Tell the tests where Gradle's current module cache is. - // We need the tests to share this module cache to prevent the - // Gradle Test-Kit from downloading its own copy of Kotlin etc. - systemProperty 'test.gradle.user.home', project.gradle.gradleUserHomeDir } } diff --git a/buildSrc/jarfilter/README.md b/buildSrc/jarfilter/README.md deleted file mode 100644 index 0f627cc415..0000000000 --- a/buildSrc/jarfilter/README.md +++ /dev/null @@ -1,218 +0,0 @@ -# JarFilter - -Deletes annotated elements at the byte-code level from a JAR of Java/Kotlin code. In the case of Kotlin -code, it also modifies the `@kotlin.Metadata` annotations not to contain any functions, properties or -type aliases that have been deleted. This prevents the Kotlin compiler from successfully compiling against -any elements which no longer exist. - -We use this plugin together with ProGuard to generate Corda's `core-deterministic` and `serialization-deterministic` -modules. See [here](../../docs/source/deterministic-modules.rst) for more information. - -## Usage -This plugin is automatically available on Gradle's classpath since it lives in Corda's `buildSrc` directory. -You need only `import` the plugin's task classes in the `build.gradle` file and then use them to declare -tasks. - -You can enable the tasks' logging output using Gradle's `--info` or `--debug` command-line options. - -### The `JarFilter` task -The `JarFilter` task removes unwanted elements from `class` files, namely: -- Deleting both Java methods/fields and Kotlin functions/properties/type aliases. -- Stubbing out methods by replacing the byte-code of their implementations. -- Removing annotations from classes/methods/fields. - -It supports the following configuration options: -```gradle -import net.corda.gradle.jarfilter.JarFilterTask -task jarFilter(type: JarFilterTask) { - // Task(s) whose JAR outputs should be filtered. - jars jar - - // The annotations assigned to each filtering role. For example: - annotations { - forDelete = [ - "org.testing.DeleteMe" - ] - forStub = [ - "org.testing.StubMeOut" - ] - forRemove = [ - "org.testing.RemoveMe" - ] - } - - // Location for filtered JARs. Defaults to "$buildDir/filtered-libs". - outputDir file(...) - - // Whether the timestamps on the JARs' entries should be preserved "as is" - // or set to a platform-independent constant value (1st February 1980). - preserveTimestamps = {true|false} - - // The maximum number of times (>= 1) to pass the JAR through the filter. - maxPasses = 5 - - // Writes more information about each pass of the filter. - verbose = {true|false} -} -``` - -You can specify as many annotations for each role as you like. The only constraint is that a given -annotation cannot be assigned to more than one role. - -#### Removing unwanted default parameter values -It is possible to assign non-deterministic expressions as default values for Kotlin constructors and functions. For -example: -```kotlin -data class UniqueIdentifier(val externalId: String? = null, val id: UUID = UUID.randomUUID()) -``` - -The Kotlin compiler will generate _two_ constructors in this case: -``` -UniqueIdentifier(String?, UUID) -UniqueIdentifier(String?, UUID, Int, DefaultConstructorMarker) -``` - -The first constructor is the primary constructor that we would expect (and which we'd like to keep), whereas the -second is a public synthetic constructor that Kotlin applications invoke to handle the different combinations of -default parameter values. Unfortunately, this synthetic constructor is therefore also part of the Kotlin ABI and -so we _cannot_ rewrite the class like this to remove the default values: -```kotlin -// THIS REFACTOR WOULD BREAK THE KOTLIN ABI! -data class UniqueIdentifier(val externalId: String?, val id: UUID) { - constructor(externalId: String?) : this(externalId, UUID.randomUUID()) - constructor() : this(null) -} -``` - -The refactored class would have the following constructors, and would require client applications to be recompiled: -``` -UniqueIdentifier(String?, UUID) -UniqueIdentifier(String?) -UniqueIdentifier() -``` - -We therefore need to keep the default constructor parameters in order to preserve the ABI for the unfiltered code, -which in turn means that `JarFilter` will need to delete only the synthetic constructor and leave the primary -constructor intact. However, Kotlin does not currently allow us to annotate _specific_ constructors - see -[KT-22524](https://youtrack.jetbrains.com/issue/KT-22524). Until it does, `JarFilter` will perform an initial -"sanitising" pass over the JAR file to remove any unwanted annotations from the primary constructors. These unwanted -annotations are configured in the `JarFilter` task definition: -```gradle -task jarFilter(type: JarFilterTask) { - ... - annotations { - ... - forSanitise = [ - "org.testing.DeleteMe" - ] - } -} -``` - -This allows us to annotate the `UniqueIdentifier` class like this: -```kotlin -data class UniqueIdentifier @DeleteMe constructor(val externalId: String? = null, val id: UUID = UUID.randomUUID()) -``` - -to generate these constructors: -``` -UniqueIdentifier(String?, UUID) -@DeleteMe UniqueIdentifier(String?, UUID, Int, DefaultConstructorMarker) -``` - -We currently **do not** sanitise annotations from functions with default parameter values, although (in theory) these -may also be non-deterministic. We will need to extend the sanitation pass to include such functions if/when the need -arises. At the moment, deleting such functions _entirely_ is enough, whereas also deleting a primary constructor means -that we can no longer create instances of that class either. - -### The `MetaFixer` task -The `MetaFixer` task updates the `@kotlin.Metadata` annotations by removing references to any functions, -constructors, properties or nested classes that no longer exist in the byte-code. This is primarily to -"repair" Kotlin library code that has been processed by ProGuard. - -Kotlin type aliases exist only inside `@Metadata` and so are unaffected by this task. Similarly, the -constructors for Kotlin's annotation classes don't exist in the byte-code either because Java annotations -are interfaces really. The `MetaFixer` task will therefore ignore annotations' constructors too. - -It supports these configuration options: -```gradle -import net.corda.gradle.jarfilter.MetaFixerTask -task metafix(type: MetaFixerTask) { - // Task(s) whose JAR outputs should be fixed. - jars jar - - // Location for fixed JARs. Defaults to "$buildDir/metafixed-libs" - outputDir file(...) - - // Tag to be appended to the JAR name. Defaults to "-metafixed". - suffix = "..." - - // Whether the timestamps on the JARs' entries should be preserved "as is" - // or set to a platform-independent constant value (1st February 1980). - preserveTimestamps = {true|false} -} -``` - -## Implementation Details - -### Code Coverage -You can generate a JaCoCo code coverage report for the unit tests using: -```bash -$ cd buildSrc -$ ../gradlew jarfilter:jacocoTestReport -``` - -### Kotlin Metadata -The Kotlin compiler encodes information about each class inside its `@kotlin.Metadata` annotation. - -```kotlin -import kotlin.annotation.AnnotationRetention.* - -@Retention(RUNTIME) -annotation class Metadata { - val k: Int = 1 - val d1: Array = [] - val d2: Array = [] - // ... -} -``` - -This is an internal feature of Kotlin which is read by Kotlin Reflection. There is no public API -for writing this information, and the content format of arrays `d1` and `d2` depends upon the -"class kind" `k`. For the kinds that we are interested in, `d1` contains a buffer of ProtoBuf -data and `d2` contains an array of `String` identifiers which the ProtoBuf data refers to by index. - -Although ProtoBuf generates functions for both reading and writing the data buffer, the -Kotlin Reflection artifact only contains the functions for reading. This is almost certainly -because the writing functionality has been removed from the `kotlin-reflect` JAR using -ProGuard. However, the complete set of generated ProtoBuf classes is still available in the -`kotlin-compiler-embeddable` JAR. The `jarfilter:kotlin-metadata` module uses ProGuard to -extracts these classes into a new `kotlin-metdata` JAR, discarding any classes that the -ProtoBuf ones do not need and obfuscating any other ones that they do. - -The custom `kotlin-metadata` object was originally created as a workaround for -[KT-18621](https://youtrack.jetbrains.com/issue/KT-18621). However, reducing the number of unwanted -classes on the classpath anyway can only be a Good Thing(TM). - -At runtime, `JarFilter` decompiles the ProtoBuf buffer into POJOs, deletes the elements that -no longer exist in the byte-code and then recompiles the POJOs into a new ProtoBuf buffer. The -`@Metadata` annotation is then rewritten using this new buffer for `d1` and the _original_ `String` -identifiers for `d2`. While some of these identifiers are very likely no longer used after this, -removing them would also require re-indexing the ProtoBuf data. It is therefore simpler just to -leave them as harmless cruft in the byte-code's constant pool. - -The majority of `JarFilter`'s unit tests use Kotlin and Java reflection and so should not be -brittle as Kotlin evolves because `kotlin-reflect` is public API. Also, Kotlin's requirement that -it remain backwards-compatible with itself should imply that the ProtoBuf logic shouldn't change -(much). However, the ProtoBuf classes are still internal to Kotlin and so it _is_ possible that they -will occasionally move between packages. This has already happened for Kotlin 1.2.3x -> 1.2.4x, but -I am hoping this means that they will not move again for a while. - -### JARs vs ZIPs -The `JarFilter` and `MetaFixer` tasks _deliberately_ use `ZipFile` and `ZipOutputStream` rather -than `JarInputStream` and `JarOutputStream` when reading and writing their JAR files. This is to -ensure that the original `META-INF/MANIFEST.MF` files are passed through unaltered. Note also that -there is no `ZipInputStream.getComment()` method, and so we need to use `ZipFile` in order to -preserve any JAR comments. - -Neither `JarFilter` nor `MetaFixer` should change the order of the entries inside the JAR files. diff --git a/buildSrc/jarfilter/build.gradle b/buildSrc/jarfilter/build.gradle deleted file mode 100644 index f4067d6e7a..0000000000 --- a/buildSrc/jarfilter/build.gradle +++ /dev/null @@ -1,46 +0,0 @@ -plugins { - id 'java-gradle-plugin' - id 'jacoco' -} -apply plugin: 'kotlin' - -repositories { - mavenLocal() - mavenCentral() - jcenter() -} - -gradlePlugin { - plugins { - jarFilterPlugin { - id = 'net.corda.plugins.jar-filter' - implementationClass = 'net.corda.gradle.jarfilter.JarFilterPlugin' - } - } -} - -configurations { - jacocoRuntime -} - -processTestResources { - filesMatching('**/build.gradle') { - expand(['kotlin_version': kotlin_version]) - } - filesMatching('gradle.properties') { - expand(['jacocoAgent': configurations.jacocoRuntime.asPath.replace('\\', '/'), - 'buildDir': buildDir]) - } -} - -dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8" - implementation project(':jarfilter:kotlin-metadata') - implementation "org.ow2.asm:asm:$asm_version" - testImplementation "org.jetbrains.kotlin:kotlin-test-junit" - testImplementation "org.jetbrains.kotlin:kotlin-reflect" - testImplementation "org.assertj:assertj-core:$assertj_version" - testImplementation "junit:junit:$junit_version" - testImplementation project(':jarfilter:unwanteds') - jacocoRuntime "org.jacoco:org.jacoco.agent:${jacoco.toolVersion}:runtime" -} diff --git a/buildSrc/jarfilter/kotlin-metadata/build.gradle b/buildSrc/jarfilter/kotlin-metadata/build.gradle deleted file mode 100644 index b2b685dca1..0000000000 --- a/buildSrc/jarfilter/kotlin-metadata/build.gradle +++ /dev/null @@ -1,84 +0,0 @@ -plugins { - id 'base' -} - -description "Kotlin's metadata-handling classes" - -repositories { - mavenLocal() - jcenter() -} - -configurations { - proguard - runtime - configurations.default.extendsFrom runtime -} - -dependencies { - proguard "org.jetbrains.kotlin:kotlin-compiler-embeddable:$kotlin_version" - proguard "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version" - runtime "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" -} - -def javaHome = System.getProperty('java.home') -def originalJar = configurations.proguard.files.find { it.name.startsWith("kotlin-compiler-embeddable") } - -import proguard.gradle.ProGuardTask -task metadata(type: ProGuardTask) { - injars originalJar, filter: 'META-INF/MANIFEST.MF,META-INF/metadata*.kotlin_module,**.class' - outjars "$buildDir/libs/${project.name}-${kotlin_version}.jar" - - libraryjars "$javaHome/lib/rt.jar" - libraryjars "$javaHome/../lib/tools.jar" - configurations.proguard.forEach { - if (originalJar != it) { - libraryjars it.path, filter: '!META-INF/versions/**' - } - } - - keepattributes '*' - dontoptimize - verbose - - dontwarn 'com.sun.jna.**' - dontwarn 'org.jetbrains.annotations.**' - dontwarn 'org.jetbrains.kotlin.com.intellij.**' - dontwarn 'org.jetbrains.kotlin.com.google.j2objc.annotations.**' - dontwarn 'org.jetbrains.kotlin.com.google.errorprone.annotations.**' - dontnote - - keep 'class org.jetbrains.kotlin.load.java.JvmAnnotationNames { *; }' - keep 'class org.jetbrains.kotlin.metadata.ProtoBuf { *; }', includedescriptorclasses: true - keep 'class org.jetbrains.kotlin.metadata.ProtoBuf$* { *; }', includedescriptorclasses: true - keep 'class org.jetbrains.kotlin.metadata.deserialization.** { *; }', includedescriptorclasses: true - keep 'class org.jetbrains.kotlin.metadata.jvm.** { *; }', includedescriptorclasses: true - keep 'class org.jetbrains.kotlin.protobuf.** { *; }', includedescriptorclasses: true -} -def metadataJar = metadata.outputs.files.singleFile - -task validate(type: ProGuardTask) { - injars metadataJar - libraryjars "$javaHome/lib/rt.jar" - configurations.runtime.forEach { - libraryjars it.path, filter: '!META-INF/versions/**' - } - - keepattributes '*' - dontpreverify - dontobfuscate - dontoptimize - verbose - - dontwarn 'org.jetbrains.kotlin.com.google.errorprone.annotations.**' - dontnote - - keep 'class *' -} - -artifacts { - 'default' file: metadataJar, name: project.name, type: 'jar', extension: 'jar', builtBy: metadata -} - -defaultTasks "metadata" -metadata.finalizedBy validate diff --git a/buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/Elements.kt b/buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/Elements.kt deleted file mode 100644 index 17810136a8..0000000000 --- a/buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/Elements.kt +++ /dev/null @@ -1,181 +0,0 @@ -@file:JvmName("Elements") -package net.corda.gradle.jarfilter - -import org.jetbrains.kotlin.metadata.ProtoBuf -import org.jetbrains.kotlin.metadata.deserialization.Flags.* -import org.jetbrains.kotlin.metadata.deserialization.NameResolver -import org.jetbrains.kotlin.metadata.deserialization.TypeTable -import org.jetbrains.kotlin.metadata.deserialization.returnType -import org.jetbrains.kotlin.metadata.jvm.JvmProtoBuf -import org.jetbrains.kotlin.metadata.jvm.deserialization.ClassMapperLite -import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmProtoBufUtil -import org.objectweb.asm.Opcodes.ACC_SYNTHETIC -import java.util.* - -private const val DEFAULT_CONSTRUCTOR_MARKER = "ILkotlin/jvm/internal/DefaultConstructorMarker;" -private const val DEFAULT_FUNCTION_MARKER = "ILjava/lang/Object;" -private const val DUMMY_PASSES = 1 - -private val DECLARES_DEFAULT_VALUE_MASK: Int = DECLARES_DEFAULT_VALUE.toFlags(true).inv() - -abstract class Element(val name: String, val descriptor: String) { - private var lifetime: Int = DUMMY_PASSES - - open val isExpired: Boolean get() = --lifetime < 0 -} - - -class MethodElement(name: String, descriptor: String, val access: Int = 0) : Element(name, descriptor) { - override fun equals(other: Any?): Boolean { - if (this === other) return true - if (other?.javaClass != javaClass) return false - other as MethodElement - return other.name == name && other.descriptor == descriptor - } - override fun hashCode(): Int = Objects.hash(name, descriptor) - override fun toString(): String = "MethodElement[name=$name, descriptor=$descriptor, access=$access]" - override val isExpired: Boolean get() = access == 0 && super.isExpired - val isConstructor: Boolean get() = isObjectConstructor || isClassConstructor - val isClassConstructor: Boolean get() = name == "" - val isObjectConstructor: Boolean get() = name == "" - val isVoidFunction: Boolean get() = !isConstructor && descriptor.endsWith(")V") - - private val suffix: String - val visibleName: String - val signature: String = name + descriptor - - init { - val idx = name.indexOf('$') - visibleName = if (idx == -1) name else name.substring(0, idx) - suffix = if (idx == -1) "" else name.drop(idx + 1) - } - - fun isKotlinSynthetic(vararg tags: String): Boolean = (access and ACC_SYNTHETIC) != 0 && tags.contains(suffix) - fun asKotlinNonDefaultConstructor(): MethodElement? { - val markerIdx = descriptor.indexOf(DEFAULT_CONSTRUCTOR_MARKER) - return if (markerIdx >= 0) { - MethodElement(name, descriptor.removeRange(markerIdx, markerIdx + DEFAULT_CONSTRUCTOR_MARKER.length)) - } else { - null - } - } -} - - -/** - * A class cannot have two fields with the same name but different types. However, - * it can define extension functions and properties. - */ -class FieldElement(name: String, descriptor: String = "?", val extension: String = "()") : Element(name, descriptor) { - override fun equals(other: Any?): Boolean { - if (this === other) return true - if (other?.javaClass != javaClass) return false - other as FieldElement - return other.name == name && other.extension == extension - } - override fun hashCode(): Int = Objects.hash(name, extension) - override fun toString(): String = "FieldElement[name=$name, descriptor=$descriptor, extension=$extension]" - override val isExpired: Boolean get() = descriptor == "?" && super.isExpired -} - -val String.extensionType: String get() = substring(0, 1 + indexOf(')')) - -/** - * Returns a fully-qualified class name as it would exist - * in the byte-code, e.g. as "a/b/c/ClassName$Nested". - */ -fun NameResolver.getClassInternalName(idx: Int): String - = getQualifiedClassName(idx).replace('.', '$') - -/** - * Construct the signatures of the synthetic methods that - * Kotlin would create to handle default parameter values. - */ -fun String.toKotlinDefaultConstructor(): String { - val closer = lastIndexOf(')') - return substring(0, closer) + DEFAULT_CONSTRUCTOR_MARKER + substring(closer) -} - -fun String.toKotlinDefaultFunction(classDescriptor: String): String { - val opener = indexOf('(') - val closer = lastIndexOf(')') - return (substring(0, opener) + "\$default(" - + classDescriptor + substring(opener + 1, closer) + DEFAULT_FUNCTION_MARKER - + substring(closer)) -} - -/** - * Convert Kotlin getter/setter method data to [MethodElement] objects. - */ -internal fun JvmProtoBuf.JvmPropertySignature.toGetter(nameResolver: NameResolver): MethodElement? { - return if (hasGetter()) { getter?.toMethodElement(nameResolver) } else { null } -} - -internal fun JvmProtoBuf.JvmPropertySignature.toSetter(nameResolver: NameResolver): MethodElement? { - return if (hasSetter()) { setter?.toMethodElement(nameResolver) } else { null } -} - -internal fun JvmProtoBuf.JvmMethodSignature.toMethodElement(nameResolver: NameResolver) - = MethodElement(nameResolver.getString(name), nameResolver.getString(desc)) - -/** - * This logic is based heavily on [JvmProtoBufUtil.getJvmFieldSignature]. - */ -internal fun JvmProtoBuf.JvmPropertySignature.toFieldElement(property: ProtoBuf.Property, nameResolver: NameResolver, typeTable: TypeTable): FieldElement { - var nameId = property.name - var descId = -1 - - if (hasField()) { - if (field.hasName()) { - nameId = field.name - } - if (field.hasDesc()) { - descId = field.desc - } - } - - val descriptor = if (descId == -1) { - val returnType = property.returnType(typeTable) - if (returnType.hasClassName()) { - ClassMapperLite.mapClass(nameResolver.getQualifiedClassName(returnType.className)) - } else { - "?" - } - } else { - nameResolver.getString(descId) - } - - return FieldElement(nameResolver.getString(nameId), descriptor) -} - -/** - * Rewrites metadata for function and constructor parameters. - */ -internal fun ProtoBuf.Constructor.Builder.updateValueParameters( - updater: (ProtoBuf.ValueParameter) -> ProtoBuf.ValueParameter -): ProtoBuf.Constructor.Builder { - for (idx in 0 until valueParameterList.size) { - setValueParameter(idx, updater(valueParameterList[idx])) - } - return this -} - -internal fun ProtoBuf.Function.Builder.updateValueParameters( - updater: (ProtoBuf.ValueParameter) -> ProtoBuf.ValueParameter -): ProtoBuf.Function.Builder { - for (idx in 0 until valueParameterList.size) { - setValueParameter(idx, updater(valueParameterList[idx])) - } - return this -} - -internal fun ProtoBuf.ValueParameter.clearDeclaresDefaultValue(): ProtoBuf.ValueParameter { - return if (DECLARES_DEFAULT_VALUE.get(flags)) { - toBuilder().setFlags(flags and DECLARES_DEFAULT_VALUE_MASK).build() - } else { - this - } -} - -internal val List.hasAnyDefaultValues - get() = any { DECLARES_DEFAULT_VALUE.get(it.flags) } diff --git a/buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/FilterTransformer.kt b/buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/FilterTransformer.kt deleted file mode 100644 index 164f3bf5d7..0000000000 --- a/buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/FilterTransformer.kt +++ /dev/null @@ -1,356 +0,0 @@ -package net.corda.gradle.jarfilter - -import org.gradle.api.InvalidUserDataException -import org.gradle.api.logging.Logger -import org.objectweb.asm.* -import org.objectweb.asm.Opcodes.* - -/** - * ASM [ClassVisitor] for the JarFilter task that deletes unwanted class elements. - * The unwanted elements have been annotated in advance. Elements that reference - * unwanted elements are also removed to keep the byte-code consistent. Finally, - * the deleted elements are passed to the [MetadataTransformer] so that they can - * be removed from the [kotlin.Metadata] annotation. - * - * This Visitor is applied to the byte-code repeatedly until it has removed - * everything that is no longer wanted. - */ -class FilterTransformer private constructor ( - visitor: ClassVisitor, - logger: Logger, - kotlinMetadata: MutableMap>, - private val removeAnnotations: Set, - private val deleteAnnotations: Set, - private val stubAnnotations: Set, - private val unwantedElements: UnwantedCache, - private val unwantedFields: MutableSet, - private val deletedMethods: MutableSet, - private val stubbedMethods: MutableSet -) : KotlinAfterProcessor(ASM6, visitor, logger, kotlinMetadata), Repeatable { - constructor( - visitor: ClassVisitor, - logger: Logger, - removeAnnotations: Set, - deleteAnnotations: Set, - stubAnnotations: Set, - unwantedElements: UnwantedCache - ) : this( - visitor = visitor, - logger = logger, - kotlinMetadata = mutableMapOf(), - removeAnnotations = removeAnnotations, - deleteAnnotations = deleteAnnotations, - stubAnnotations = stubAnnotations, - unwantedElements = unwantedElements, - unwantedFields = mutableSetOf(), - deletedMethods = mutableSetOf(), - stubbedMethods = mutableSetOf() - ) - - var className: String = "(unknown)" - private set - - val isUnwantedClass: Boolean get() = isUnwantedClass(className) - override val hasUnwantedElements: Boolean - get() = unwantedFields.isNotEmpty() - || deletedMethods.isNotEmpty() - || stubbedMethods.isNotEmpty() - || super.hasUnwantedElements - - private fun isUnwantedClass(name: String): Boolean = unwantedElements.containsClass(name) - private fun hasDeletedSyntheticMethod(name: String): Boolean = deletedMethods.any { method -> - name.startsWith("$className\$${method.visibleName}\$") - } - - override fun recreate(visitor: ClassVisitor) = FilterTransformer( - visitor = visitor, - logger = logger, - kotlinMetadata = kotlinMetadata, - removeAnnotations = removeAnnotations, - deleteAnnotations = deleteAnnotations, - stubAnnotations = stubAnnotations, - unwantedElements = unwantedElements, - unwantedFields = unwantedFields, - deletedMethods = deletedMethods, - stubbedMethods = stubbedMethods - ) - - override fun visit(version: Int, access: Int, clsName: String, signature: String?, superName: String?, interfaces: Array?) { - className = clsName - logger.info("Class {}", clsName) - super.visit(version, access, clsName, signature, superName, interfaces) - } - - override fun visitAnnotation(descriptor: String, visible: Boolean): AnnotationVisitor? { - if (removeAnnotations.contains(descriptor)) { - logger.info("- Removing annotation {}", descriptor) - return null - } else if (deleteAnnotations.contains(descriptor)) { - if (unwantedElements.addClass(className)) { - logger.info("- Identified class {} as unwanted", className) - } - } - return super.visitAnnotation(descriptor, visible) - } - - override fun visitField(access: Int, fieldName: String, descriptor: String, signature: String?, value: Any?): FieldVisitor? { - val field = FieldElement(fieldName, descriptor) - logger.debug("--- field ---> {}", field) - if (unwantedFields.contains(field)) { - logger.info("- Deleted field {},{}", field.name, field.descriptor) - unwantedFields.remove(field) - return null - } - val fv = super.visitField(access, fieldName, descriptor, signature, value) ?: return null - return UnwantedFieldAdapter(fv, field) - } - - override fun visitMethod(access: Int, methodName: String, descriptor: String, signature: String?, exceptions: Array?): MethodVisitor? { - val method = MethodElement(methodName, descriptor, access) - logger.debug("--- method ---> {}", method) - if (deletedMethods.contains(method)) { - logger.info("- Deleted method {}{}", method.name, method.descriptor) - unwantedElements.addMethod(className, method) - deletedMethods.remove(method) - return null - } - - /* - * Write the byte-code for the method's prototype, then check whether - * we need to replace the method's body with our "stub" code. - */ - val mv = super.visitMethod(access, methodName, descriptor, signature, exceptions) ?: return null - if (stubbedMethods.contains(method)) { - logger.info("- Stubbed out method {}{}", method.name, method.descriptor) - stubbedMethods.remove(method) - return if (method.isVoidFunction) VoidStubMethodAdapter(mv) else ThrowingStubMethodAdapter(mv) - } - - return UnwantedMethodAdapter(mv, method) - } - - override fun visitInnerClass(clsName: String, outerName: String?, innerName: String?, access: Int) { - logger.debug("--- inner class {} [outer: {}, inner: {}]", clsName, outerName, innerName) - if (isUnwantedClass || hasDeletedSyntheticMethod(clsName)) { - if (unwantedElements.addClass(clsName)) { - logger.info("- Deleted inner class {}", clsName) - } - } else if (isUnwantedClass(clsName)) { - logger.info("- Deleted reference to inner class: {}", clsName) - } else { - super.visitInnerClass(clsName, outerName, innerName, access) - } - } - - override fun visitOuterClass(outerName: String, methodName: String?, methodDescriptor: String?) { - logger.debug("--- outer class {} [enclosing method {},{}]", outerName, methodName, methodDescriptor) - if (unwantedElements.containsMethod(outerName, methodName, methodDescriptor)) { - if (unwantedElements.addClass(className)) { - logger.info("- Identified class {} as unwanted by its outer class", className) - } - } else { - super.visitOuterClass(outerName, methodName, methodDescriptor) - } - } - - override fun visitEnd() { - if (isUnwantedClass) { - /* - * Optimisation: Don't rewrite the Kotlin @Metadata - * annotation if we're going to delete this class. - */ - kotlinMetadata.clear() - } - super.visitEnd() - /* - * Some elements were created based on unreliable information, - * such as Kotlin @Metadata annotations. We cannot rely on - * these actually existing in the bytecode, and so we expire - * them after a fixed number of passes. - */ - deletedMethods.removeIf(MethodElement::isExpired) - unwantedFields.removeIf(FieldElement::isExpired) - } - - /** - * Removes the deleted methods and fields from the Kotlin Class metadata. - */ - override fun processClassMetadata(d1: List, d2: List): List { - val partitioned = deletedMethods.groupBy(MethodElement::isConstructor) - val prefix = "$className$" - return ClassMetadataTransformer( - logger = logger, - deletedFields = unwantedFields, - deletedFunctions = partitioned[false] ?: emptyList(), - deletedConstructors = partitioned[true] ?: emptyList(), - deletedNestedClasses = unwantedElements.classes.filter { it.startsWith(prefix) }.map { it.drop(prefix.length) }, - deletedClasses = unwantedElements.classes, - handleExtraMethod = ::delete, - d1 = d1, - d2 = d2) - .transform() - } - - /** - * Removes the deleted methods and fields from the Kotlin Package metadata. - */ - override fun processPackageMetadata(d1: List, d2: List): List { - return PackageMetadataTransformer( - logger = logger, - deletedFields = unwantedFields, - deletedFunctions = deletedMethods, - handleExtraMethod = ::delete, - d1 = d1, - d2 = d2) - .transform() - } - - /** - * Callback function to mark extra methods for deletion. - * This will override a request for stubbing. - */ - private fun delete(method: MethodElement) { - if (deletedMethods.add(method) && stubbedMethods.remove(method)) { - logger.warn("-- method {}{} will be deleted instead of stubbed out", - method.name, method.descriptor) - } - } - - /** - * Analyses the field to decide whether it should be deleted. - */ - private inner class UnwantedFieldAdapter(fv: FieldVisitor, private val field: FieldElement) : FieldVisitor(api, fv) { - override fun visitAnnotation(descriptor: String, visible: Boolean): AnnotationVisitor? { - if (removeAnnotations.contains(descriptor)) { - logger.info("- Removing annotation {} from field {},{}", descriptor, field.name, field.descriptor) - return null - } else if (deleteAnnotations.contains(descriptor)) { - if (unwantedFields.add(field)) { - logger.info("- Identified field {},{} as unwanted", field.name, field.descriptor) - } - } - return super.visitAnnotation(descriptor, visible) - } - } - - /** - * Analyses the method to decide whether it should be deleted. - */ - private inner class UnwantedMethodAdapter(mv: MethodVisitor, private val method: MethodElement) : MethodVisitor(api, mv) { - override fun visitAnnotation(descriptor: String, visible: Boolean): AnnotationVisitor? { - if (removeAnnotations.contains(descriptor)) { - logger.info("- Removing annotation {} from method {}{}", descriptor, method.name, method.descriptor) - return null - } else if (deleteAnnotations.contains(descriptor)) { - if (deletedMethods.add(method)) { - logger.info("- Identified method {}{} for deletion", method.name, method.descriptor) - } - if (method.isKotlinSynthetic("annotations")) { - val extensionType = method.descriptor.extensionType - if (unwantedFields.add(FieldElement(name = method.visibleName, extension = extensionType))) { - logger.info("-- also identified property or typealias {},{} for deletion", method.visibleName, extensionType) - } - } - } else if (stubAnnotations.contains(descriptor) && (method.access and ACC_ABSTRACT) == 0) { - if (stubbedMethods.add(method)) { - logger.info("- Identified method {}{} for stubbing out", method.name, method.descriptor) - } - } - return super.visitAnnotation(descriptor, visible) - } - - override fun visitMethodInsn(opcode: Int, ownerName: String, methodName: String, descriptor: String, isInterface: Boolean) { - if ((isUnwantedClass(ownerName) || (ownerName == className && deletedMethods.contains(MethodElement(methodName, descriptor)))) - && !stubbedMethods.contains(method)) { - if (deletedMethods.add(method)) { - logger.info("- Unwanted invocation of method {},{}{} from method {}{}", ownerName, methodName, descriptor, method.name, method.descriptor) - } - } - super.visitMethodInsn(opcode, ownerName, methodName, descriptor, isInterface) - } - - override fun visitFieldInsn(opcode: Int, ownerName: String, fieldName: String, descriptor: String) { - if ((isUnwantedClass(ownerName) || (ownerName == className && unwantedFields.contains(FieldElement(fieldName, descriptor)))) - && !stubbedMethods.contains(method)) { - if (method.isConstructor) { - when (opcode) { - GETFIELD, GETSTATIC -> { - when (descriptor) { - "I", "S", "B", "C", "Z" -> visitIntInsn(BIPUSH, 0) - "J" -> visitInsn(LCONST_0) - "F" -> visitInsn(FCONST_0) - "D" -> visitInsn(DCONST_0) - else -> visitInsn(ACONST_NULL) - } - } - PUTFIELD, PUTSTATIC -> { - when (descriptor) { - "J", "D" -> visitInsn(POP2) - else -> visitInsn(POP) - } - } - else -> throw InvalidUserDataException("Unexpected opcode $opcode") - } - logger.info("- Unwanted reference to field {},{},{} REMOVED from constructor {}{}", - ownerName, fieldName, descriptor, method.name, method.descriptor) - return - } else if (deletedMethods.add(method)) { - logger.info("- Unwanted reference to field {},{},{} from method {}{}", - ownerName, fieldName, descriptor, method.name, method.descriptor) - } - } - super.visitFieldInsn(opcode, ownerName, fieldName, descriptor) - } - } - - /** - * Write "stub" byte-code for this method, preserving its other annotations. - * The method's original byte-code is discarded. - */ - private abstract inner class StubbingMethodAdapter(mv: MethodVisitor) : MethodVisitor(api, mv) { - override fun visitAnnotation(descriptor: String, visible: Boolean): AnnotationVisitor? { - return if (stubAnnotations.contains(descriptor)) null else mv.visitAnnotation(descriptor, visible) - } - - protected abstract fun writeStubCode() - - final override fun visitCode() { - with (mv) { - visitCode() - writeStubCode() - visitMaxs(-1, -1) // Trigger computation of the max values. - visitEnd() - } - - // Prevent this visitor from writing any more byte-code. - mv = null - } - } - - /** - * Write a method that throws [UnsupportedOperationException] with message "Method has been deleted". - */ - private inner class ThrowingStubMethodAdapter(mv: MethodVisitor) : StubbingMethodAdapter(mv) { - override fun writeStubCode() { - with (mv) { - val throwEx = Label() - visitLabel(throwEx) - visitLineNumber(0, throwEx) - visitTypeInsn(NEW, "java/lang/UnsupportedOperationException") - visitInsn(DUP) - visitLdcInsn("Method has been deleted") - visitMethodInsn(INVOKESPECIAL, "java/lang/UnsupportedOperationException", "", "(Ljava/lang/String;)V", false) - visitInsn(ATHROW) - } - } - } - - /** - * Write an empty method. Can only be applied to methods that return void. - */ - private inner class VoidStubMethodAdapter(mv: MethodVisitor) : StubbingMethodAdapter(mv) { - override fun writeStubCode() { - mv.visitInsn(RETURN) - } - } -} diff --git a/buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/JarFilterPlugin.kt b/buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/JarFilterPlugin.kt deleted file mode 100644 index ae33419b2b..0000000000 --- a/buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/JarFilterPlugin.kt +++ /dev/null @@ -1,14 +0,0 @@ -@file:Suppress("UNUSED") -package net.corda.gradle.jarfilter - -import org.gradle.api.Plugin -import org.gradle.api.Project - -/** - * This plugin definition is only needed by the tests. - */ -class JarFilterPlugin : Plugin { - override fun apply(project: Project) { - project.logger.info("Applying JarFilter plugin") - } -} diff --git a/buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/JarFilterTask.kt b/buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/JarFilterTask.kt deleted file mode 100644 index 78100b2613..0000000000 --- a/buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/JarFilterTask.kt +++ /dev/null @@ -1,288 +0,0 @@ -package net.corda.gradle.jarfilter - -import groovy.lang.Closure -import org.gradle.api.DefaultTask -import org.gradle.api.InvalidUserDataException -import org.gradle.api.file.ConfigurableFileCollection -import org.gradle.api.file.FileCollection -import org.gradle.api.tasks.* -import org.objectweb.asm.ClassReader -import org.objectweb.asm.ClassWriter -import org.objectweb.asm.ClassWriter.COMPUTE_MAXS -import java.io.Closeable -import java.io.File -import java.io.IOException -import java.nio.file.* -import java.nio.file.StandardCopyOption.* -import java.util.zip.Deflater.BEST_COMPRESSION -import java.util.zip.ZipFile -import java.util.zip.ZipOutputStream -import kotlin.math.max - -@Suppress("Unused", "MemberVisibilityCanBePrivate") -open class JarFilterTask : DefaultTask() { - private companion object { - private const val DEFAULT_MAX_PASSES = 5 - } - - private val _jars: ConfigurableFileCollection = project.files() - @get:SkipWhenEmpty - @get:InputFiles - val jars: FileCollection get() = _jars - - fun setJars(inputs: Any?) { - val files = inputs ?: return - _jars.setFrom(files) - } - - fun jars(inputs: Any?) = setJars(inputs) - - @get:Input - protected var forDelete: Set = emptySet() - - @get:Input - protected var forStub: Set = emptySet() - - @get:Input - protected var forRemove: Set = emptySet() - - @get:Input - protected var forSanitise: Set = emptySet() - - fun annotations(assign: Closure>) { - assign.call() - } - - @get:Console - var verbose: Boolean = false - - @get:Input - var maxPasses: Int = DEFAULT_MAX_PASSES - set(value) { - field = max(value, 1) - } - - @get:Input - var preserveTimestamps: Boolean = true - - private var _outputDir = project.buildDir.resolve("filtered-libs") - @get:Internal - val outputDir: File get() = _outputDir - - fun setOutputDir(d: File?) { - val dir = d ?: return - _outputDir = dir - } - - fun outputDir(dir: File?) = setOutputDir(dir) - - @get:OutputFiles - val filtered: FileCollection get() = project.files(jars.files.map(this::toFiltered)) - - private fun toFiltered(source: File) = File(outputDir, source.name.replace(JAR_PATTERN, "-filtered\$1")) - - @TaskAction - fun filterJars() { - logger.info("JarFiltering:") - if (forDelete.isNotEmpty()) { - logger.info("- Elements annotated with one of '{}' will be deleted", forDelete.joinToString()) - } - if (forStub.isNotEmpty()) { - logger.info("- Methods annotated with one of '{}' will be stubbed out", forStub.joinToString()) - } - if (forRemove.isNotEmpty()) { - logger.info("- Annotations '{}' will be removed entirely", forRemove.joinToString()) - } - if (forSanitise.isNotEmpty()) { - logger.info("- Annotations '{}' will be removed from primary constructors", forSanitise.joinToString()) - } - checkDistinctAnnotations() - try { - jars.forEach { jar -> - logger.info("Filtering {}", jar) - Filter(jar).run() - } - } catch (e: Exception) { - rethrowAsUncheckedException(e) - } - } - - private fun checkDistinctAnnotations() { - logger.info("Checking that all annotations are distinct.") - val annotations = forRemove.toHashSet().apply { - addAll(forDelete) - addAll(forStub) - removeAll(forRemove) - } - forDelete.forEach { - if (!annotations.remove(it)) { - failWith("Annotation '$it' also appears in JarFilter 'forDelete' section") - } - } - forStub.forEach { - if (!annotations.remove(it)) { - failWith("Annotation '$it' also appears in JarFilter 'forStub' section") - } - } - if (!annotations.isEmpty()) { - failWith("SHOULDN'T HAPPEN - Martian annotations! '${annotations.joinToString()}'") - } - } - - private fun failWith(message: String): Nothing = throw InvalidUserDataException(message) - - private fun verbose(format: String, vararg objects: Any) { - if (verbose) { - logger.info(format, *objects) - } - } - - private inner class Filter(inFile: File) { - private val unwantedElements = UnwantedCache() - private val source: Path = inFile.toPath() - private val target: Path = toFiltered(inFile).toPath() - - private val descriptorsForRemove = toDescriptors(forRemove) - private val descriptorsForDelete = toDescriptors(forDelete) - private val descriptorsForStub = toDescriptors(forStub) - private val descriptorsForSanitising = toDescriptors(forSanitise) - - init { - Files.deleteIfExists(target) - } - - fun run() { - logger.info("Filtering to: {}", target) - var input = source - - try { - if (descriptorsForSanitising.isNotEmpty() && SanitisingPass(input).use { it.run() }) { - input = target.moveToInput() - } - - var passes = 1 - while (true) { - verbose("Pass {}", passes) - val isModified = FilterPass(input).use { it.run() } - - if (!isModified) { - logger.info("No changes after latest pass - exiting.") - break - } else if (++passes > maxPasses) { - break - } - - input = target.moveToInput() - } - } catch (e: Exception) { - logger.error("Error filtering '{}' elements from {}", ArrayList(forRemove).apply { addAll(forDelete); addAll(forStub) }, input) - throw e - } - } - - private fun Path.moveToInput(): Path { - return Files.move(this, Files.createTempFile(parent, "filter-", ".tmp"), REPLACE_EXISTING).also { - verbose("New input JAR: {}", it) - } - } - - private abstract inner class Pass(input: Path): Closeable { - /** - * Use [ZipFile] instead of [java.util.jar.JarInputStream] because - * JarInputStream consumes MANIFEST.MF when it's the first or second entry. - */ - protected val inJar = ZipFile(input.toFile()) - protected val outJar = ZipOutputStream(Files.newOutputStream(target)) - protected var isModified = false - - @Throws(IOException::class) - override fun close() { - inJar.use { - outJar.close() - } - } - - abstract fun transform(inBytes: ByteArray): ByteArray - - fun run(): Boolean { - outJar.setLevel(BEST_COMPRESSION) - outJar.setComment(inJar.comment) - - for (entry in inJar.entries()) { - val entryData = inJar.getInputStream(entry) - - if (entry.isDirectory || !entry.name.endsWith(".class")) { - // This entry's byte contents have not changed, - // but may still need to be recompressed. - outJar.putNextEntry(entry.copy().withFileTimestamps(preserveTimestamps)) - entryData.copyTo(outJar) - } else { - val classData = transform(entryData.readBytes()) - if (classData.isNotEmpty()) { - // This entry's byte contents have almost certainly - // changed, and will be stored compressed. - outJar.putNextEntry(entry.asCompressed().withFileTimestamps(preserveTimestamps)) - outJar.write(classData) - } - } - } - return isModified - } - } - - private inner class SanitisingPass(input: Path) : Pass(input) { - override fun transform(inBytes: ByteArray): ByteArray { - return ClassWriter(0).let { writer -> - val transformer = SanitisingTransformer(writer, logger, descriptorsForSanitising) - ClassReader(inBytes).accept(transformer, 0) - isModified = isModified or transformer.isModified - writer.toByteArray() - } - } - } - - private inner class FilterPass(input: Path) : Pass(input) { - override fun transform(inBytes: ByteArray): ByteArray { - var reader = ClassReader(inBytes) - var writer = ClassWriter(COMPUTE_MAXS) - var transformer = FilterTransformer( - visitor = writer, - logger = logger, - removeAnnotations = descriptorsForRemove, - deleteAnnotations = descriptorsForDelete, - stubAnnotations = descriptorsForStub, - unwantedElements = unwantedElements - ) - - /* - * First pass: This might not find anything to remove! - */ - reader.accept(transformer, 0) - - if (transformer.isUnwantedClass || transformer.hasUnwantedElements) { - isModified = true - - do { - /* - * Rewrite the class without any of the unwanted elements. - * If we're deleting the class then make sure we identify all of - * its inner classes too, for the next filter pass to delete. - */ - reader = ClassReader(writer.toByteArray()) - writer = ClassWriter(COMPUTE_MAXS) - transformer = transformer.recreate(writer) - reader.accept(transformer, 0) - } while (!transformer.isUnwantedClass && transformer.hasUnwantedElements) - } - - return if (transformer.isUnwantedClass) { - // The entire class is unwanted, so don't write it out. - logger.info("Deleting class {}", transformer.className) - byteArrayOf() - } else { - writer.toByteArray() - } - } - } - } -} diff --git a/buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/KotlinAwareVisitor.kt b/buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/KotlinAwareVisitor.kt deleted file mode 100644 index 7c50110626..0000000000 --- a/buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/KotlinAwareVisitor.kt +++ /dev/null @@ -1,159 +0,0 @@ -package net.corda.gradle.jarfilter - -import org.gradle.api.logging.LogLevel -import org.gradle.api.logging.Logger -import org.jetbrains.kotlin.load.java.JvmAnnotationNames.* -import org.objectweb.asm.AnnotationVisitor -import org.objectweb.asm.ClassVisitor - -/** - * Kotlin support: Loads the ProtoBuf data from the [kotlin.Metadata] annotation. - */ -abstract class KotlinAwareVisitor( - api: Int, - visitor: ClassVisitor, - protected val logger: Logger, - protected val kotlinMetadata: MutableMap> -) : ClassVisitor(api, visitor) { - - private companion object { - /** See [org.jetbrains.kotlin.load.kotlin.header.KotlinClassHeader.Kind]. */ - private const val KOTLIN_CLASS = 1 - private const val KOTLIN_FILE = 2 - private const val KOTLIN_SYNTHETIC = 3 - private const val KOTLIN_MULTIFILE_PART = 5 - } - - private var classKind: Int = 0 - - open val hasUnwantedElements: Boolean get() = kotlinMetadata.isNotEmpty() - protected open val level: LogLevel = LogLevel.INFO - - protected abstract fun processClassMetadata(d1: List, d2: List): List - protected abstract fun processPackageMetadata(d1: List, d2: List): List - protected abstract fun processKotlinAnnotation() - - override fun visitAnnotation(descriptor: String, visible: Boolean): AnnotationVisitor? { - val av = super.visitAnnotation(descriptor, visible) ?: return null - return if (descriptor == METADATA_DESC) KotlinMetadataAdaptor(av) else av - } - - protected fun processMetadata() { - if (kotlinMetadata.isNotEmpty()) { - logger.log(level, "- Examining Kotlin @Metadata[k={}]", classKind) - val d1 = kotlinMetadata.remove(METADATA_DATA_FIELD_NAME) - val d2 = kotlinMetadata.remove(METADATA_STRINGS_FIELD_NAME) - if (d1 != null && d1.isNotEmpty() && d2 != null) { - processMetadata(d1, d2).apply { - if (isNotEmpty()) { - kotlinMetadata[METADATA_DATA_FIELD_NAME] = this - kotlinMetadata[METADATA_STRINGS_FIELD_NAME] = d2 - } - } - } - } - } - - private fun processMetadata(d1: List, d2: List): List { - return when (classKind) { - KOTLIN_CLASS -> processClassMetadata(d1, d2) - KOTLIN_FILE, KOTLIN_MULTIFILE_PART -> processPackageMetadata(d1, d2) - KOTLIN_SYNTHETIC -> { - logger.log(level,"-- synthetic class ignored") - emptyList() - } - else -> { - /* - * For class-kind=4 (i.e. "multi-file"), we currently - * expect d1=[list of multi-file-part classes], d2=null. - */ - logger.log(level,"-- unsupported class-kind {}", classKind) - emptyList() - } - } - } - - private inner class KotlinMetadataAdaptor(av: AnnotationVisitor): AnnotationVisitor(api, av) { - override fun visit(name: String?, value: Any?) { - if (name == KIND_FIELD_NAME) { - classKind = value as Int - } - super.visit(name, value) - } - - override fun visitArray(name: String): AnnotationVisitor? { - val av = super.visitArray(name) - if (av != null) { - val data = kotlinMetadata.remove(name) ?: return ArrayAccumulator(av, name) - logger.debug("-- rewrote @Metadata.{}[{}]", name, data.size) - data.forEach { av.visit(null, it) } - av.visitEnd() - } - return null - } - - override fun visitEnd() { - super.visitEnd() - processKotlinAnnotation() - } - } - - private inner class ArrayAccumulator(av: AnnotationVisitor, private val name: String) : AnnotationVisitor(api, av) { - private val data: MutableList = mutableListOf() - - override fun visit(name: String?, value: Any?) { - super.visit(name, value) - data.add(value as String) - } - - override fun visitEnd() { - super.visitEnd() - kotlinMetadata[name] = data - logger.debug("-- read @Metadata.{}[{}]", name, data.size) - } - } -} - -/** - * Loads the ProtoBuf data from the [kotlin.Metadata] annotation, or - * writes new ProtoBuf data that was created during a previous pass. - */ -abstract class KotlinAfterProcessor( - api: Int, - visitor: ClassVisitor, - logger: Logger, - kotlinMetadata: MutableMap> -) : KotlinAwareVisitor(api, visitor, logger, kotlinMetadata) { - - /** - * Process the metadata once we have finished visiting the class. - * This will allow us to rewrite the [kotlin.Metadata] annotation - * in the next visit. - */ - override fun visitEnd() { - super.visitEnd() - processMetadata() - } - - /** - * Do nothing immediately after we have parsed [kotlin.Metadata]. - */ - final override fun processKotlinAnnotation() {} -} - -/** - * Loads the ProtoBuf data from the [kotlin.Metadata] annotation - * and then processes it before visiting the rest of the class. - */ -abstract class KotlinBeforeProcessor( - api: Int, - visitor: ClassVisitor, - logger: Logger, - kotlinMetadata: MutableMap> -) : KotlinAwareVisitor(api, visitor, logger, kotlinMetadata) { - - /** - * Process the ProtoBuf data as soon as we have parsed [kotlin.Metadata]. - */ - final override fun processKotlinAnnotation() = processMetadata() -} diff --git a/buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/MetaFixerTask.kt b/buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/MetaFixerTask.kt deleted file mode 100644 index 5c120cc926..0000000000 --- a/buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/MetaFixerTask.kt +++ /dev/null @@ -1,128 +0,0 @@ -package net.corda.gradle.jarfilter - -import org.gradle.api.DefaultTask -import org.gradle.api.file.ConfigurableFileCollection -import org.gradle.api.file.FileCollection -import org.gradle.api.logging.Logger -import org.gradle.api.tasks.* -import java.io.Closeable -import java.io.File -import java.io.IOException -import java.nio.file.* -import java.util.zip.Deflater.BEST_COMPRESSION -import java.util.zip.ZipEntry -import java.util.zip.ZipFile -import java.util.zip.ZipOutputStream - -@Suppress("Unused", "MemberVisibilityCanBePrivate") -open class MetaFixerTask : DefaultTask() { - private val _jars: ConfigurableFileCollection = project.files() - @get:SkipWhenEmpty - @get:InputFiles - val jars: FileCollection - get() = _jars - - fun setJars(inputs: Any?) { - val files = inputs ?: return - _jars.setFrom(files) - } - - fun jars(inputs: Any?) = setJars(inputs) - - private var _outputDir = project.buildDir.resolve("metafixer-libs") - @get:Internal - val outputDir: File - get() = _outputDir - - fun setOutputDir(d: File?) { - val dir = d ?: return - _outputDir = dir - } - - fun outputDir(dir: File?) = setOutputDir(dir) - - private var _suffix: String = "-metafixed" - @get:Input - val suffix: String get() = _suffix - - fun setSuffix(input: String?) { - _suffix = input ?: return - } - - fun suffix(suffix: String?) = setSuffix(suffix) - - @get:Input - var preserveTimestamps: Boolean = true - - @TaskAction - fun fixMetadata() { - logger.info("Fixing Kotlin @Metadata") - try { - jars.forEach { jar -> - logger.info("Reading from {}", jar) - MetaFix(jar).use { it.run() } - } - } catch (e: Exception) { - rethrowAsUncheckedException(e) - } - } - - @get:OutputFiles - val metafixed: FileCollection get() = project.files(jars.files.map(this::toMetaFixed)) - - private fun toMetaFixed(source: File) = File(outputDir, source.name.replace(JAR_PATTERN, "$suffix\$1")) - - private inner class MetaFix(inFile: File) : Closeable { - /** - * Use [ZipFile] instead of [java.util.jar.JarInputStream] because - * JarInputStream consumes MANIFEST.MF when it's the first or second entry. - */ - private val target: Path = toMetaFixed(inFile).toPath() - private val inJar = ZipFile(inFile) - private val outJar: ZipOutputStream - - init { - // Default options for newOutputStream() are CREATE, TRUNCATE_EXISTING. - outJar = ZipOutputStream(Files.newOutputStream(target)).apply { - setLevel(BEST_COMPRESSION) - } - } - - @Throws(IOException::class) - override fun close() { - inJar.use { - outJar.close() - } - } - - fun run() { - logger.info("Writing to {}", target) - outJar.setComment(inJar.comment) - - val classNames = inJar.entries().asSequence().namesEndingWith(".class") - for (entry in inJar.entries()) { - val entryData = inJar.getInputStream(entry) - - if (entry.isDirectory || !entry.name.endsWith(".class")) { - // This entry's byte contents have not changed, - // but may still need to be recompressed. - outJar.putNextEntry(entry.copy().withFileTimestamps(preserveTimestamps)) - entryData.copyTo(outJar) - } else { - // This entry's byte contents have almost certainly - // changed, and will be stored compressed. - val classData = entryData.readBytes().fixMetadata(logger, classNames) - outJar.putNextEntry(entry.asCompressed().withFileTimestamps(preserveTimestamps)) - outJar.write(classData) - } - } - } - } - - private fun Sequence.namesEndingWith(suffix: String): Set { - return filter { it.name.endsWith(suffix) }.map { it.name.dropLast(suffix.length) }.toSet() - } -} - -fun ByteArray.fixMetadata(logger: Logger, classNames: Set): ByteArray - = execute({ writer -> MetaFixerVisitor(writer, logger, classNames) }) diff --git a/buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/MetaFixerTransformer.kt b/buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/MetaFixerTransformer.kt deleted file mode 100644 index f6d97c7a24..0000000000 --- a/buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/MetaFixerTransformer.kt +++ /dev/null @@ -1,278 +0,0 @@ -package net.corda.gradle.jarfilter - -import org.gradle.api.logging.Logger -import org.jetbrains.kotlin.metadata.ProtoBuf -import org.jetbrains.kotlin.metadata.ProtoBuf.Class.Kind.* -import org.jetbrains.kotlin.metadata.deserialization.Flags.* -import org.jetbrains.kotlin.metadata.deserialization.NameResolver -import org.jetbrains.kotlin.metadata.deserialization.TypeTable -import org.jetbrains.kotlin.metadata.deserialization.getExtensionOrNull -import org.jetbrains.kotlin.metadata.jvm.JvmProtoBuf.* -import org.jetbrains.kotlin.metadata.jvm.deserialization.BitEncoding -import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmNameResolver -import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmProtoBufUtil -import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmProtoBufUtil.EXTENSION_REGISTRY -import org.jetbrains.kotlin.protobuf.ExtensionRegistryLite -import org.jetbrains.kotlin.protobuf.MessageLite -import java.io.ByteArrayInputStream -import java.io.ByteArrayOutputStream -import java.io.InputStream - -/** - * Base class for aligning the contents of [kotlin.Metadata] annotations - * with the contents of the host byte-code. - * This is used by [MetaFixerVisitor] for [MetaFixerTask]. - */ -internal abstract class MetaFixerTransformer( - private val logger: Logger, - private val actualFields: Collection, - private val actualMethods: Collection, - private val actualNestedClasses: Collection, - private val actualClasses: Collection, - d1: List, - d2: List, - parser: (InputStream, ExtensionRegistryLite) -> T -) { - private val stringTableTypes: StringTableTypes - protected val nameResolver: NameResolver - protected val message: T - - protected abstract val typeTable: TypeTable - protected open val classDescriptor: String = "" - protected open val classKind: ProtoBuf.Class.Kind? = null - protected abstract val properties: MutableList - protected abstract val functions: MutableList - protected abstract val constructors: MutableList - protected open val nestedClassNames: MutableList get() = throw UnsupportedOperationException("No nestedClassNames") - protected open val sealedSubclassNames: MutableList get() = throw UnsupportedOperationException("No sealedSubclassNames") - - init { - val input = ByteArrayInputStream(BitEncoding.decodeBytes(d1.toTypedArray())) - stringTableTypes = StringTableTypes.parseDelimitedFrom(input, EXTENSION_REGISTRY) - nameResolver = JvmNameResolver(stringTableTypes, d2.toTypedArray()) - message = parser(input, EXTENSION_REGISTRY) - } - - abstract fun rebuild(): T - - private fun filterNestedClasses(): Int { - if (classKind == null) return 0 - - var count = 0 - var idx = 0 - while (idx < nestedClassNames.size) { - val nestedClassName = nameResolver.getString(nestedClassNames[idx]) - if (actualNestedClasses.contains(nestedClassName)) { - ++idx - } else { - logger.info("-- removing nested class: {}", nestedClassName) - nestedClassNames.removeAt(idx) - ++count - } - } - return count - } - - private fun filterSealedSubclassNames(): Int { - if (classKind == null) return 0 - - var count = 0 - var idx = 0 - while (idx < sealedSubclassNames.size) { - val sealedSubclassName = nameResolver.getClassInternalName(sealedSubclassNames[idx]) - if (actualClasses.contains(sealedSubclassName)) { - ++idx - } else { - logger.info("-- removing sealed subclass: {}", sealedSubclassName) - sealedSubclassNames.removeAt(idx) - ++count - } - } - return count - } - - private fun filterFunctions(): Int { - var count = 0 - var idx = 0 - removed@ while (idx < functions.size) { - val function = functions[idx] - val signature = JvmProtoBufUtil.getJvmMethodSignature(function, nameResolver, typeTable) - if (signature != null) { - if (!actualMethods.contains(signature)) { - logger.info("-- removing method: {}", signature) - functions.removeAt(idx) - ++count - continue@removed - } else if (function.valueParameterList.hasAnyDefaultValues - && !actualMethods.contains(signature.toKotlinDefaultFunction(classDescriptor))) { - logger.info("-- removing default parameter values: {}", signature) - functions[idx] = function.toBuilder() - .updateValueParameters(ProtoBuf.ValueParameter::clearDeclaresDefaultValue) - .build() - ++count - } - } - ++idx - } - return count - } - - private fun filterConstructors(): Int { - var count = 0 - var idx = 0 - removed@ while (idx < constructors.size) { - val constructor = constructors[idx] - val signature = JvmProtoBufUtil.getJvmConstructorSignature(constructor, nameResolver, typeTable) - if (signature != null) { - if (!actualMethods.contains(signature)) { - logger.info("-- removing constructor: {}", signature) - constructors.removeAt(idx) - ++count - continue@removed - } else if (constructor.valueParameterList.hasAnyDefaultValues - && !actualMethods.contains(signature.toKotlinDefaultConstructor())) { - logger.info("-- removing default parameter values: {}", signature) - constructors[idx] = constructor.toBuilder() - .updateValueParameters(ProtoBuf.ValueParameter::clearDeclaresDefaultValue) - .build() - ++count - } - } - ++idx - } - return count - } - - private fun filterProperties(): Int { - var count = 0 - var idx = 0 - removed@ while (idx < properties.size) { - val property = properties[idx] - val signature = property.getExtensionOrNull(propertySignature) - if (signature != null) { - val field = signature.toFieldElement(property, nameResolver, typeTable) - val getterMethod = signature.toGetter(nameResolver) - - /** - * A property annotated with [JvmField] will use a field instead of a getter method. - * But properties without [JvmField] will also usually have a backing field. So we only - * remove a property that has either lost its getter method, or never had a getter method - * and has lost its field. - * - * Having said that, we cannot remove [JvmField] properties from a companion object class - * because these properties are implemented as static fields on the companion's host class. - */ - val isValidProperty = if (getterMethod == null) { - actualFields.contains(field) || classKind == COMPANION_OBJECT - } else { - actualMethods.contains(getterMethod.signature) - } - - if (!isValidProperty) { - logger.info("-- removing property: {},{}", field.name, field.descriptor) - properties.removeAt(idx) - ++count - continue@removed - } - } - ++idx - } - return count - } - - fun transform(): List { - var count = filterProperties() + filterFunctions() + filterNestedClasses() + filterSealedSubclassNames() - if (classKind != ANNOTATION_CLASS) { - count += filterConstructors() - } - if (count == 0) { - return emptyList() - } - - val bytes = ByteArrayOutputStream() - stringTableTypes.writeDelimitedTo(bytes) - rebuild().writeTo(bytes) - return BitEncoding.encodeBytes(bytes.toByteArray()).toList() - } -} - -/** - * Aligns a [kotlin.Metadata] annotation containing a [ProtoBuf.Class] object - * in its [d1][kotlin.Metadata.d1] field with the byte-code of its host class. - */ -internal class ClassMetaFixerTransformer( - logger: Logger, - actualFields: Collection, - actualMethods: Collection, - actualNestedClasses: Collection, - actualClasses: Collection, - d1: List, - d2: List -) : MetaFixerTransformer( - logger, - actualFields, - actualMethods, - actualNestedClasses, - actualClasses, - d1, - d2, - ProtoBuf.Class::parseFrom -) { - override val typeTable = TypeTable(message.typeTable) - override val classDescriptor = "L${nameResolver.getClassInternalName(message.fqName)};" - override val classKind: ProtoBuf.Class.Kind = CLASS_KIND.get(message.flags) - override val properties = mutableList(message.propertyList) - override val functions = mutableList(message.functionList) - override val constructors = mutableList(message.constructorList) - override val nestedClassNames = mutableList(message.nestedClassNameList) - override val sealedSubclassNames= mutableList(message.sealedSubclassFqNameList) - - override fun rebuild(): ProtoBuf.Class = message.toBuilder().apply { - clearConstructor().addAllConstructor(constructors) - clearFunction().addAllFunction(functions) - - if (nestedClassNames.size != nestedClassNameCount) { - clearNestedClassName().addAllNestedClassName(nestedClassNames) - } - if (sealedSubclassNames.size != sealedSubclassFqNameCount) { - clearSealedSubclassFqName().addAllSealedSubclassFqName(sealedSubclassNames) - } - if (properties.size != propertyCount) { - clearProperty().addAllProperty(properties) - } - }.build() -} - -/** - * Aligns a [kotlin.Metadata] annotation containing a [ProtoBuf.Package] object - * in its [d1][kotlin.Metadata.d1] field with the byte-code of its host class. - */ -internal class PackageMetaFixerTransformer( - logger: Logger, - actualFields: Collection, - actualMethods: Collection, - d1: List, - d2: List -) : MetaFixerTransformer( - logger, - actualFields, - actualMethods, - emptyList(), - emptyList(), - d1, - d2, - ProtoBuf.Package::parseFrom -) { - override val typeTable = TypeTable(message.typeTable) - override val properties = mutableList(message.propertyList) - override val functions = mutableList(message.functionList) - override val constructors = mutableListOf() - - override fun rebuild(): ProtoBuf.Package = message.toBuilder().apply { - clearFunction().addAllFunction(functions) - - if (properties.size != propertyCount) { - clearProperty().addAllProperty(properties) - } - }.build() -} diff --git a/buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/MetaFixerVisitor.kt b/buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/MetaFixerVisitor.kt deleted file mode 100644 index bce68310bc..0000000000 --- a/buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/MetaFixerVisitor.kt +++ /dev/null @@ -1,76 +0,0 @@ -package net.corda.gradle.jarfilter - -import org.gradle.api.logging.Logger -import org.objectweb.asm.* -import org.objectweb.asm.Opcodes.* - -/** - * ASM [ClassVisitor] for the MetaFixer task. This visitor inventories every function, - * property and inner class within the byte-code and then passes this information to - * the [MetaFixerTransformer]. - */ -class MetaFixerVisitor private constructor( - visitor: ClassVisitor, - logger: Logger, - kotlinMetadata: MutableMap>, - private val classNames: Set, - private val fields: MutableSet, - private val methods: MutableSet, - private val nestedClasses: MutableSet -) : KotlinAfterProcessor(ASM6, visitor, logger, kotlinMetadata), Repeatable { - constructor(visitor: ClassVisitor, logger: Logger, classNames: Set) - : this(visitor, logger, mutableMapOf(), classNames, mutableSetOf(), mutableSetOf(), mutableSetOf()) - - override fun recreate(visitor: ClassVisitor) = MetaFixerVisitor(visitor, logger, kotlinMetadata, classNames, fields, methods, nestedClasses) - - private var className: String = "(unknown)" - - override fun visit(version: Int, access: Int, clsName: String, signature: String?, superName: String?, interfaces: Array?) { - className = clsName - logger.info("Class {}", clsName) - super.visit(version, access, clsName, signature, superName, interfaces) - } - - override fun visitField(access: Int, fieldName: String, descriptor: String, signature: String?, value: Any?): FieldVisitor? { - if (fields.add(FieldElement(fieldName, descriptor))) { - logger.info("- field {},{}", fieldName, descriptor) - } - return super.visitField(access, fieldName, descriptor, signature, value) - } - - override fun visitMethod(access: Int, methodName: String, descriptor: String, signature: String?, exceptions: Array?): MethodVisitor? { - if (methods.add(methodName + descriptor)) { - logger.info("- method {}{}", methodName, descriptor) - } - return super.visitMethod(access, methodName, descriptor, signature, exceptions) - } - - override fun visitInnerClass(clsName: String, outerName: String?, innerName: String?, access: Int) { - if (outerName == className && innerName != null && nestedClasses.add(innerName)) { - logger.info("- inner class {}", clsName) - } - return super.visitInnerClass(clsName, outerName, innerName, access) - } - - override fun processClassMetadata(d1: List, d2: List): List { - return ClassMetaFixerTransformer( - logger = logger, - actualFields = fields, - actualMethods = methods, - actualNestedClasses = nestedClasses, - actualClasses = classNames, - d1 = d1, - d2 = d2) - .transform() - } - - override fun processPackageMetadata(d1: List, d2: List): List { - return PackageMetaFixerTransformer( - logger = logger, - actualFields = fields, - actualMethods = methods, - d1 = d1, - d2 = d2) - .transform() - } -} diff --git a/buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/MetadataTransformer.kt b/buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/MetadataTransformer.kt deleted file mode 100644 index 1701654c18..0000000000 --- a/buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/MetadataTransformer.kt +++ /dev/null @@ -1,319 +0,0 @@ -package net.corda.gradle.jarfilter - -import org.gradle.api.logging.Logger -import org.jetbrains.kotlin.metadata.ProtoBuf -import org.jetbrains.kotlin.metadata.deserialization.Flags.* -import org.jetbrains.kotlin.metadata.deserialization.NameResolver -import org.jetbrains.kotlin.metadata.deserialization.TypeTable -import org.jetbrains.kotlin.metadata.deserialization.getExtensionOrNull -import org.jetbrains.kotlin.metadata.jvm.JvmProtoBuf.* -import org.jetbrains.kotlin.metadata.jvm.deserialization.BitEncoding -import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmNameResolver -import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmProtoBufUtil -import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmProtoBufUtil.EXTENSION_REGISTRY -import org.jetbrains.kotlin.protobuf.ExtensionRegistryLite -import org.jetbrains.kotlin.protobuf.MessageLite -import java.io.ByteArrayInputStream -import java.io.ByteArrayOutputStream -import java.io.InputStream - -/** - * Base class for removing unwanted elements from [kotlin.Metadata] annotations. - * This is used by [FilterTransformer] for [JarFilterTask]. - */ -internal abstract class MetadataTransformer( - private val logger: Logger, - private val deletedFields: Collection, - private val deletedFunctions: Collection, - private val deletedConstructors: Collection, - private val deletedNestedClasses: Collection, - private val deletedClasses: Collection, - private val handleExtraMethod: (MethodElement) -> Unit, - d1: List, - d2: List, - parser: (InputStream, ExtensionRegistryLite) -> T -) { - private val stringTableTypes: StringTableTypes - protected val nameResolver: NameResolver - protected val message: T - - protected abstract val typeTable: TypeTable - protected open val className: String get() = throw UnsupportedOperationException("No className") - protected open val nestedClassNames: MutableList get() = throw UnsupportedOperationException("No nestedClassNames") - protected open val sealedSubclassNames: MutableList get() = throw UnsupportedOperationException("No sealedSubclassNames") - protected abstract val properties: MutableList - protected abstract val functions: MutableList - protected open val constructors: MutableList get() = throw UnsupportedOperationException("No constructors") - protected abstract val typeAliases: MutableList - - init { - val input = ByteArrayInputStream(BitEncoding.decodeBytes(d1.toTypedArray())) - stringTableTypes = StringTableTypes.parseDelimitedFrom(input, EXTENSION_REGISTRY) - nameResolver = JvmNameResolver(stringTableTypes, d2.toTypedArray()) - message = parser(input, EXTENSION_REGISTRY) - } - - abstract fun rebuild(): T - - fun transform(): List { - val count = ( - filterProperties() - + filterFunctions() - + filterConstructors() - + filterNestedClasses() - + filterTypeAliases() - + filterSealedSubclasses() - ) - if (count == 0) { - return emptyList() - } - - val bytes = ByteArrayOutputStream() - stringTableTypes.writeDelimitedTo(bytes) - rebuild().writeTo(bytes) - return BitEncoding.encodeBytes(bytes.toByteArray()).toList() - } - - private fun filterNestedClasses(): Int { - if (deletedNestedClasses.isEmpty()) return 0 - - var count = 0 - var idx = 0 - while (idx < nestedClassNames.size) { - val nestedClassName = nameResolver.getString(nestedClassNames[idx]) - if (deletedNestedClasses.contains(nestedClassName)) { - logger.info("-- removing nested class: {}", nestedClassName) - nestedClassNames.removeAt(idx) - ++count - } else { - ++idx - } - } - return count - } - - private fun filterConstructors(): Int = deletedConstructors.count(::filterConstructor) - - private fun filterConstructor(deleted: MethodElement): Boolean { - /* - * Constructors with the default parameter marker are synthetic and DO NOT have - * entries in the metadata. So we construct an element for the "primary" one - * that it was synthesised for, and which we DO expect to find. - */ - val deletedPrimary = deleted.asKotlinNonDefaultConstructor() - - for (idx in 0 until constructors.size) { - val constructor = constructors[idx] - val signature = JvmProtoBufUtil.getJvmConstructorSignature(constructor, nameResolver, typeTable) - if (signature == deleted.signature) { - if (IS_SECONDARY.get(constructor.flags)) { - logger.info("-- removing constructor: {}", deleted.signature) - } else { - logger.warn("Removing primary constructor: {}{}", className, deleted.descriptor) - } - constructors.removeAt(idx) - return true - } else if (signature == deletedPrimary?.signature) { - constructors[idx] = constructor.toBuilder() - .updateValueParameters(ProtoBuf.ValueParameter::clearDeclaresDefaultValue) - .build() - logger.info("-- removing default parameter values: {}", signature) - return true - } - } - return false - } - - private fun filterFunctions(): Int = deletedFunctions.count(::filterFunction) - - private fun filterFunction(deleted: MethodElement): Boolean { - for (idx in 0 until functions.size) { - val function = functions[idx] - if (nameResolver.getString(function.name) == deleted.name) { - val signature = JvmProtoBufUtil.getJvmMethodSignature(function, nameResolver, typeTable) - if (signature == deleted.signature) { - logger.info("-- removing function: {}", deleted.signature) - functions.removeAt(idx) - return true - } - } - } - return false - } - - private fun filterProperties(): Int = deletedFields.count(::filterProperty) - - private fun filterProperty(deleted: FieldElement): Boolean { - for (idx in 0 until properties.size) { - val property = properties[idx] - val signature = property.getExtensionOrNull(propertySignature) ?: continue - val field = signature.toFieldElement(property, nameResolver, typeTable) - if (field.name.toVisible() == deleted.name) { - // Check that this property's getter has the correct descriptor. - // If it doesn't then we have the wrong property here. - val getter = signature.toGetter(nameResolver) - if (getter != null) { - if (!getter.descriptor.startsWith(deleted.extension)) { - continue - } - deleteExtra(getter) - } - signature.toSetter(nameResolver)?.apply(::deleteExtra) - - logger.info("-- removing property: {},{}", field.name, field.descriptor) - properties.removeAt(idx) - return true - } - } - return false - } - - private fun deleteExtra(func: MethodElement) { - if (!deletedFunctions.contains(func)) { - logger.info("-- identified extra method {} for deletion", func.signature) - handleExtraMethod(func) - filterFunction(func) - } - } - - private fun filterTypeAliases(): Int { - if (deletedFields.isEmpty()) return 0 - - var count = 0 - var idx = 0 - while (idx < typeAliases.size) { - val aliasName = nameResolver.getString(typeAliases[idx].name) - if (deletedFields.any { it.name == aliasName && it.extension == "()" }) { - logger.info("-- removing typealias: {}", aliasName) - typeAliases.removeAt(idx) - ++count - } else { - ++idx - } - } - return count - } - - private fun filterSealedSubclasses(): Int { - if (deletedClasses.isEmpty()) return 0 - - var count = 0 - var idx = 0 - while (idx < sealedSubclassNames.size) { - val subclassName = nameResolver.getClassInternalName(sealedSubclassNames[idx]) - if (deletedClasses.contains(subclassName)) { - logger.info("-- removing sealed subclass: {}", subclassName) - sealedSubclassNames.removeAt(idx) - ++count - } else { - ++idx - } - } - return count - } - - /** - * Removes any Kotlin suffix, e.g. "$delegate" or "$annotations". - */ - private fun String.toVisible(): String { - val idx = indexOf('$') - return if (idx == -1) this else substring(0, idx) - } -} - -/** - * Removes elements from a [kotlin.Metadata] annotation that contains - * a [ProtoBuf.Class] object in its [d1][kotlin.Metadata.d1] field. - */ -internal class ClassMetadataTransformer( - logger: Logger, - deletedFields: Collection, - deletedFunctions: Collection, - deletedConstructors: Collection, - deletedNestedClasses: Collection, - deletedClasses: Collection, - handleExtraMethod: (MethodElement) -> Unit, - d1: List, - d2: List -) : MetadataTransformer( - logger, - deletedFields, - deletedFunctions, - deletedConstructors, - deletedNestedClasses, - deletedClasses, - handleExtraMethod, - d1, - d2, - ProtoBuf.Class::parseFrom -) { - override val typeTable = TypeTable(message.typeTable) - override val className = nameResolver.getClassInternalName(message.fqName) - override val nestedClassNames = mutableList(message.nestedClassNameList) - override val sealedSubclassNames = mutableList(message.sealedSubclassFqNameList) - override val properties = mutableList(message.propertyList) - override val functions = mutableList(message.functionList) - override val constructors = mutableList(message.constructorList) - override val typeAliases = mutableList(message.typeAliasList) - - override fun rebuild(): ProtoBuf.Class = message.toBuilder().apply { - clearConstructor().addAllConstructor(constructors) - - if (nestedClassNames.size != nestedClassNameCount) { - clearNestedClassName().addAllNestedClassName(nestedClassNames) - } - if (functions.size != functionCount) { - clearFunction().addAllFunction(functions) - } - if (properties.size != propertyCount) { - clearProperty().addAllProperty(properties) - } - if (typeAliases.size != typeAliasCount) { - clearTypeAlias().addAllTypeAlias(typeAliases) - } - if (sealedSubclassNames.size != sealedSubclassFqNameCount) { - clearSealedSubclassFqName().addAllSealedSubclassFqName(sealedSubclassNames) - } - }.build() -} - -/** - * Removes elements from a [kotlin.Metadata] annotation that contains - * a [ProtoBuf.Package] object in its [d1][kotlin.Metadata.d1] field. - */ -internal class PackageMetadataTransformer( - logger: Logger, - deletedFields: Collection, - deletedFunctions: Collection, - handleExtraMethod: (MethodElement) -> Unit, - d1: List, - d2: List -) : MetadataTransformer( - logger, - deletedFields, - deletedFunctions, - emptyList(), - emptyList(), - emptyList(), - handleExtraMethod, - d1, - d2, - ProtoBuf.Package::parseFrom -) { - override val typeTable = TypeTable(message.typeTable) - override val properties = mutableList(message.propertyList) - override val functions = mutableList(message.functionList) - override val typeAliases = mutableList(message.typeAliasList) - - override fun rebuild(): ProtoBuf.Package = message.toBuilder().apply { - if (functions.size != functionCount) { - clearFunction().addAllFunction(functions) - } - if (properties.size != propertyCount) { - clearProperty().addAllProperty(properties) - } - if (typeAliases.size != typeAliasCount) { - clearTypeAlias().addAllTypeAlias(typeAliases) - } - }.build() -} diff --git a/buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/Repeatable.kt b/buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/Repeatable.kt deleted file mode 100644 index 4123fb3de4..0000000000 --- a/buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/Repeatable.kt +++ /dev/null @@ -1,8 +0,0 @@ -package net.corda.gradle.jarfilter - -import org.objectweb.asm.ClassVisitor - -interface Repeatable { - fun recreate(visitor: ClassVisitor): T - val hasUnwantedElements: Boolean -} diff --git a/buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/SanitisingTransformer.kt b/buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/SanitisingTransformer.kt deleted file mode 100644 index e4dcdf822a..0000000000 --- a/buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/SanitisingTransformer.kt +++ /dev/null @@ -1,81 +0,0 @@ -package net.corda.gradle.jarfilter - -import org.gradle.api.logging.LogLevel -import org.gradle.api.logging.Logger -import org.jetbrains.kotlin.metadata.ProtoBuf -import org.jetbrains.kotlin.metadata.deserialization.Flags.* -import org.jetbrains.kotlin.metadata.deserialization.TypeTable -import org.jetbrains.kotlin.metadata.jvm.JvmProtoBuf.* -import org.jetbrains.kotlin.metadata.jvm.deserialization.BitEncoding -import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmNameResolver -import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmProtoBufUtil.EXTENSION_REGISTRY -import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmProtoBufUtil.getJvmConstructorSignature -import org.objectweb.asm.AnnotationVisitor -import org.objectweb.asm.ClassVisitor -import org.objectweb.asm.MethodVisitor -import org.objectweb.asm.Opcodes.* -import java.io.ByteArrayInputStream - -/** - * This is (hopefully?!) a temporary solution for classes with [JvmOverloads] constructors. - * We need to be able to annotate ONLY the secondary constructors for such classes, but Kotlin - * will apply any annotation to all constructors equally. Nor can we replace the overloaded - * constructor with individual constructors because this will break ABI compatibility. (Kotlin - * generates a synthetic public constructor to handle default parameter values.) - * - * This transformer identifies a class's primary constructor and removes all of its unwanted annotations. - * It will become superfluous when Kotlin allows us to target only the secondary constructors with our - * filtering annotations in the first place. - */ -class SanitisingTransformer(visitor: ClassVisitor, logger: Logger, private val unwantedAnnotations: Set) - : KotlinBeforeProcessor(ASM6, visitor, logger, mutableMapOf()) { - - var isModified: Boolean = false - private set - override val level: LogLevel = LogLevel.DEBUG - - private var className: String = "(unknown)" - private var primaryConstructor: MethodElement? = null - - override fun processPackageMetadata(d1: List, d2: List): List = emptyList() - - override fun processClassMetadata(d1: List, d2: List): List { - val input = ByteArrayInputStream(BitEncoding.decodeBytes(d1.toTypedArray())) - val stringTableTypes = StringTableTypes.parseDelimitedFrom(input, EXTENSION_REGISTRY) - val nameResolver = JvmNameResolver(stringTableTypes, d2.toTypedArray()) - val message = ProtoBuf.Class.parseFrom(input, EXTENSION_REGISTRY) - val typeTable = TypeTable(message.typeTable) - - for (constructor in message.constructorList) { - if (!IS_SECONDARY.get(constructor.flags)) { - val signature = getJvmConstructorSignature(constructor, nameResolver, typeTable) ?: break - primaryConstructor = MethodElement("", signature.drop("".length)) - logger.log(level, "Class {} has primary constructor {}", className, signature) - break - } - } - return emptyList() - } - - override fun visit(version: Int, access: Int, clsName: String, signature: String?, superName: String?, interfaces: Array?) { - className = clsName - super.visit(version, access, clsName, signature, superName, interfaces) - } - - override fun visitMethod(access: Int, methodName: String, descriptor: String, signature: String?, exceptions: Array?): MethodVisitor? { - val method = MethodElement(methodName, descriptor, access) - val mv = super.visitMethod(access, methodName, descriptor, signature, exceptions) ?: return null - return if (method == primaryConstructor) SanitisingMethodAdapter(mv, method) else mv - } - - private inner class SanitisingMethodAdapter(mv: MethodVisitor, private val method: MethodElement) : MethodVisitor(api, mv) { - override fun visitAnnotation(descriptor: String, visible: Boolean): AnnotationVisitor? { - if (unwantedAnnotations.contains(descriptor)) { - logger.info("Sanitising annotation {} from method {}.{}{}", descriptor, className, method.name, method.descriptor) - isModified = true - return null - } - return super.visitAnnotation(descriptor, visible) - } - } -} diff --git a/buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/UnwantedCache.kt b/buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/UnwantedCache.kt deleted file mode 100644 index 5a8d28bc73..0000000000 --- a/buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/UnwantedCache.kt +++ /dev/null @@ -1,46 +0,0 @@ -package net.corda.gradle.jarfilter - -import java.util.Collections.unmodifiableMap - -/** - * A persistent cache of all of the classes and methods that JarFilter has - * removed. This cache belongs to the Gradle task itself and so is shared - * by successive filter passes. - * - * The internal method cache is only required for those classes which are - * being kept. When an entire class is declared as "unwanted", any entry - * it may have in the method cache is removed. - */ -class UnwantedCache { - private val _classes: MutableSet = mutableSetOf() - private val _classMethods: MutableMap> = mutableMapOf() - - val classes: Set get() = _classes - val classMethods: Map> get() = unmodifiableMap(_classMethods) - - fun containsClass(className: String): Boolean = _classes.contains(className) - - fun addClass(className: String): Boolean { - return _classes.add(className).also { isAdded -> - if (isAdded) { - _classMethods.remove(className) - } - } - } - - fun addMethod(className: String, method: MethodElement) { - if (!containsClass(className)) { - _classMethods.getOrPut(className) { mutableSetOf() }.add(method) - } - } - - private fun containsMethod(className: String, method: MethodElement): Boolean { - return _classMethods[className]?.contains(method) ?: false - } - - fun containsMethod(className: String, methodName: String?, methodDescriptor: String?): Boolean { - return containsClass(className) || - (methodName != null && methodDescriptor != null && containsMethod(className, MethodElement(methodName, methodDescriptor))) - } -} - diff --git a/buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/Utils.kt b/buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/Utils.kt deleted file mode 100644 index 9b52c5419f..0000000000 --- a/buildSrc/jarfilter/src/main/kotlin/net/corda/gradle/jarfilter/Utils.kt +++ /dev/null @@ -1,92 +0,0 @@ -@file:JvmName("Utils") -package net.corda.gradle.jarfilter - -import org.gradle.api.GradleException -import org.objectweb.asm.ClassReader -import org.objectweb.asm.ClassVisitor -import org.objectweb.asm.ClassWriter -import java.nio.file.attribute.FileTime -import java.util.* -import java.util.Calendar.FEBRUARY -import java.util.zip.ZipEntry -import java.util.zip.ZipEntry.DEFLATED -import java.util.zip.ZipEntry.STORED -import kotlin.math.max -import kotlin.text.RegexOption.* - -internal val JAR_PATTERN = "(\\.jar)$".toRegex(IGNORE_CASE) - -// Use the same constant file timestamp as Gradle. -private val CONSTANT_TIME: FileTime = FileTime.fromMillis( - GregorianCalendar(1980, FEBRUARY, 1).apply { timeZone = TimeZone.getTimeZone("UTC") }.timeInMillis -) - -internal fun rethrowAsUncheckedException(e: Exception): Nothing - = throw (e as? RuntimeException) ?: GradleException(e.message ?: "", e) - -/** - * Recreates a [ZipEntry] object. The entry's byte contents - * will be compressed automatically, and its CRC, size and - * compressed size fields populated. - */ -internal fun ZipEntry.asCompressed(): ZipEntry { - return ZipEntry(name).also { entry -> - entry.lastModifiedTime = lastModifiedTime - lastAccessTime?.also { at -> entry.lastAccessTime = at } - creationTime?.also { ct -> entry.creationTime = ct } - entry.comment = comment - entry.method = DEFLATED - entry.extra = extra - } -} - -internal fun ZipEntry.copy(): ZipEntry { - return if (method == STORED) ZipEntry(this) else asCompressed() -} - -internal fun ZipEntry.withFileTimestamps(preserveTimestamps: Boolean): ZipEntry { - if (!preserveTimestamps) { - lastModifiedTime = CONSTANT_TIME - lastAccessTime?.apply { lastAccessTime = CONSTANT_TIME } - creationTime?.apply { creationTime = CONSTANT_TIME } - } - return this -} - -internal fun mutableList(c: Collection): MutableList = ArrayList(c) - -/** - * Converts Java class names to Java descriptors. - */ -internal fun toDescriptors(classNames: Iterable): Set { - return classNames.map(String::descriptor).toSet() -} - -internal val String.toPathFormat: String get() = replace('.', '/') -internal val String.descriptor: String get() = "L$toPathFormat;" - - -/** - * Performs the given number of passes of the repeatable visitor over the byte-code. - * Used by [MetaFixerVisitor], but also by some of the test visitors. - */ -internal fun ByteArray.execute(visitor: (ClassVisitor) -> T, flags: Int = 0, passes: Int = 2): ByteArray - where T : ClassVisitor, - T : Repeatable { - var bytecode = this - var writer = ClassWriter(flags) - var transformer = visitor(writer) - var count = max(passes, 1) - - while (--count >= 0) { - ClassReader(bytecode).accept(transformer, 0) - bytecode = writer.toByteArray() - - if (!transformer.hasUnwantedElements) break - - writer = ClassWriter(flags) - transformer = transformer.recreate(writer) - } - - return bytecode -} diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/AbstractFunctionTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/AbstractFunctionTest.kt deleted file mode 100644 index fb4bbc63a0..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/AbstractFunctionTest.kt +++ /dev/null @@ -1,69 +0,0 @@ -package net.corda.gradle.jarfilter - -import net.corda.gradle.jarfilter.matcher.* -import org.hamcrest.core.IsCollectionContaining.hasItem -import org.hamcrest.core.IsNot.not -import org.junit.Assert.* -import org.junit.ClassRule -import org.junit.Test -import org.junit.rules.RuleChain -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import java.lang.reflect.Modifier.* -import kotlin.reflect.full.declaredFunctions -import kotlin.test.assertFailsWith - -class AbstractFunctionTest { - companion object { - private const val FUNCTION_CLASS = "net.corda.gradle.AbstractFunctions" - - private val testProjectDir = TemporaryFolder() - private val testProject = JarFilterProject(testProjectDir, "abstract-function") - - @ClassRule - @JvmField - val rules: TestRule = RuleChain - .outerRule(testProjectDir) - .around(testProject) - } - - @Test - fun deleteAbstractFunction() { - val longFunction = isFunction("toDelete", Long::class, Long::class) - - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(FUNCTION_CLASS).apply { - getMethod("toDelete", Long::class.java).also { method -> - assertEquals(ABSTRACT, method.modifiers and ABSTRACT) - } - assertThat("toDelete(J) not found", kotlin.declaredFunctions, hasItem(longFunction)) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(FUNCTION_CLASS).apply { - assertFailsWith { getMethod("toDelete", Long::class.java) } - assertThat("toDelete(J) still exists", kotlin.declaredFunctions, not(hasItem(longFunction))) - } - } - } - - @Test - fun cannotStubAbstractFunction() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(FUNCTION_CLASS).apply { - getMethod("toStubOut", Long::class.java).also { method -> - assertEquals(ABSTRACT, method.modifiers and ABSTRACT) - } - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(FUNCTION_CLASS).apply { - getMethod("toStubOut", Long::class.java).also { method -> - assertEquals(ABSTRACT, method.modifiers and ABSTRACT) - } - } - } - } -} diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteAndStubTests.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteAndStubTests.kt deleted file mode 100644 index 40e61b2706..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteAndStubTests.kt +++ /dev/null @@ -1,188 +0,0 @@ -package net.corda.gradle.jarfilter - -import net.corda.gradle.jarfilter.matcher.* -import net.corda.gradle.unwanted.* -import org.assertj.core.api.Assertions.* -import org.hamcrest.core.IsCollectionContaining.* -import org.hamcrest.core.IsNot.* -import org.junit.Assert.* -import org.junit.ClassRule -import org.junit.Test -import org.junit.rules.RuleChain -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import kotlin.reflect.full.declaredMemberFunctions -import kotlin.reflect.full.declaredMemberProperties -import kotlin.test.assertFailsWith - -class DeleteAndStubTests { - companion object { - private const val VAR_PROPERTY_CLASS = "net.corda.gradle.HasVarPropertyForDeleteAndStub" - private const val VAL_PROPERTY_CLASS = "net.corda.gradle.HasValPropertyForDeleteAndStub" - private const val DELETED_FUN_CLASS = "net.corda.gradle.DeletedFunctionInsideStubbed" - private const val DELETED_VAR_CLASS = "net.corda.gradle.DeletedVarInsideStubbed" - private const val DELETED_VAL_CLASS = "net.corda.gradle.DeletedValInsideStubbed" - private const val DELETED_PKG_CLASS = "net.corda.gradle.DeletePackageWithStubbed" - - private val testProjectDir = TemporaryFolder() - private val testProject = JarFilterProject(testProjectDir, "delete-and-stub") - private val stringVal = isProperty("stringVal", String::class) - private val longVar = isProperty("longVar", Long::class) - private val getStringVal = isMethod("getStringVal", String::class.java) - private val getLongVar = isMethod("getLongVar", Long::class.java) - private val setLongVar = isMethod("setLongVar", Void.TYPE, Long::class.java) - private val stringData = isFunction("stringData", String::class) - private val unwantedFun = isFunction("unwantedFun", String::class, String::class) - private val unwantedVar = isProperty("unwantedVar", String::class) - private val unwantedVal = isProperty("unwantedVal", String::class) - private val stringDataJava = isMethod("stringData", String::class.java) - private val getUnwantedVal = isMethod("getUnwantedVal", String::class.java) - private val getUnwantedVar = isMethod("getUnwantedVar", String::class.java) - private val setUnwantedVar = isMethod("setUnwantedVar", Void.TYPE, String::class.java) - - @ClassRule - @JvmField - val rules: TestRule = RuleChain - .outerRule(testProjectDir) - .around(testProject) - } - - @Test - fun deleteValProperty() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(VAL_PROPERTY_CLASS).apply { - getDeclaredConstructor(String::class.java).newInstance(MESSAGE).also { obj -> - assertEquals(MESSAGE, obj.stringVal) - } - assertThat("stringVal not found", kotlin.declaredMemberProperties, hasItem(stringVal)) - assertThat("getStringVal() not found", kotlin.javaDeclaredMethods, hasItem(getStringVal)) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(VAL_PROPERTY_CLASS).apply { - assertNotNull(getDeclaredConstructor(String::class.java).newInstance(MESSAGE)) - assertThat("stringVal still exists", kotlin.declaredMemberProperties, not(hasItem(stringVal))) - assertThat("getStringVal() still exists", kotlin.javaDeclaredMethods, not(hasItem(getStringVal))) - } - } - } - - @Test - fun deleteVarProperty() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(VAR_PROPERTY_CLASS).apply { - getDeclaredConstructor(Long::class.java).newInstance(BIG_NUMBER).also { obj -> - assertEquals(BIG_NUMBER, obj.longVar) - } - assertThat("longVar not found", kotlin.declaredMemberProperties, hasItem(longVar)) - assertThat("getLongVar() not found", kotlin.javaDeclaredMethods, hasItem(getLongVar)) - assertThat("setLongVar() not found", kotlin.javaDeclaredMethods, hasItem(setLongVar)) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(VAR_PROPERTY_CLASS).apply { - assertNotNull(getDeclaredConstructor(Long::class.java).newInstance(BIG_NUMBER)) - assertThat("longVar still exists", kotlin.declaredMemberProperties, not(hasItem(longVar))) - assertThat("getLongVar() still exists", kotlin.javaDeclaredMethods, not(hasItem(getLongVar))) - assertThat("setLongVar() still exists", kotlin.javaDeclaredMethods, not(hasItem(setLongVar))) - } - } - } - - @Test - fun deletedFunctionInsideStubbed() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(DELETED_FUN_CLASS).apply { - getDeclaredConstructor(String::class.java).newInstance(DEFAULT_MESSAGE).also { obj -> - assertEquals(DEFAULT_MESSAGE, obj.stringData()) - assertEquals(MESSAGE, (obj as HasUnwantedFun).unwantedFun(MESSAGE)) - } - assertThat("unwantedFun not found", kotlin.declaredMemberFunctions, hasItem(unwantedFun)) - assertThat("stringData() not found", kotlin.declaredMemberFunctions, hasItem(stringData)) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(DELETED_FUN_CLASS).apply { - getDeclaredConstructor(String::class.java).newInstance(DEFAULT_MESSAGE).also { obj -> - assertFailsWith { obj.stringData() }.also { ex -> - assertThat(ex).hasMessage("Method has been deleted") - } - assertFailsWith { (obj as HasUnwantedFun).unwantedFun(MESSAGE) } - } - assertThat("unwantedFun still exists", kotlin.declaredMemberFunctions, not(hasItem(unwantedFun))) - assertThat("stringData() not found", kotlin.declaredMemberFunctions, hasItem(stringData)) - } - } - } - - @Test - fun deletedVarInsideStubbed() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(DELETED_VAR_CLASS).apply { - getDeclaredConstructor(String::class.java).newInstance(DEFAULT_MESSAGE).also { obj -> - assertEquals(DEFAULT_MESSAGE, obj.stringData()) - (obj as HasUnwantedVar).also { - assertEquals(DEFAULT_MESSAGE, it.unwantedVar) - it.unwantedVar = MESSAGE - assertEquals(MESSAGE, it.unwantedVar) - } - } - assertThat("unwantedVar not found", kotlin.declaredMemberProperties, hasItem(unwantedVar)) - assertThat("stringData() not found", kotlin.declaredMemberFunctions, hasItem(stringData)) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(DELETED_VAR_CLASS).apply { - assertNotNull(getDeclaredConstructor(String::class.java).newInstance(MESSAGE)) - assertThat("unwantedVar still exists", kotlin.declaredMemberProperties, not(hasItem(unwantedVar))) - assertThat("getUnwantedVar() still exists", kotlin.javaDeclaredMethods, not(hasItem(getUnwantedVar))) - assertThat("setUnwantedVar() still exists", kotlin.javaDeclaredMethods, not(hasItem(setUnwantedVar))) - assertThat("stringData() not found", kotlin.declaredMemberFunctions, hasItem(stringData)) - assertThat("stringData() not found", kotlin.javaDeclaredMethods, hasItem(stringDataJava)) - } - } - } - - @Test - fun deletedValInsideStubbed() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(DELETED_VAL_CLASS).apply { - getDeclaredConstructor(String::class.java).newInstance(MESSAGE).also { obj -> - assertEquals(MESSAGE, obj.stringData()) - assertEquals(MESSAGE, (obj as HasUnwantedVal).unwantedVal) - } - assertThat("unwantedVal not found", kotlin.declaredMemberProperties, hasItem(unwantedVal)) - assertThat("stringData() not found", kotlin.declaredMemberFunctions, hasItem(stringData)) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(DELETED_VAL_CLASS).apply { - assertNotNull(getDeclaredConstructor(String::class.java).newInstance(MESSAGE)) - assertThat("unwantedVal still exists", kotlin.declaredMemberProperties, not(hasItem(unwantedVal))) - assertThat("getUnwantedVal() still exists", kotlin.javaDeclaredMethods, not(hasItem(getUnwantedVal))) - assertThat("stringData() not found", kotlin.declaredMemberFunctions, hasItem(stringData)) - assertThat("stringData() not found", kotlin.javaDeclaredMethods, hasItem(stringDataJava)) - } - } - } - - @Test - fun deletePackageWithStubbed() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(DELETED_PKG_CLASS).apply { - getDeclaredMethod("stubbed", String::class.java).also { method -> - assertEquals("[$MESSAGE]", method.invoke(null, MESSAGE)) - } - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - assertFailsWith { cl.load(DELETED_PKG_CLASS) } - } - } -} \ No newline at end of file diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteConstructorTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteConstructorTest.kt deleted file mode 100644 index 8a8651ef41..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteConstructorTest.kt +++ /dev/null @@ -1,165 +0,0 @@ -package net.corda.gradle.jarfilter - -import net.corda.gradle.jarfilter.matcher.* -import net.corda.gradle.unwanted.HasAll -import net.corda.gradle.unwanted.HasInt -import net.corda.gradle.unwanted.HasLong -import net.corda.gradle.unwanted.HasString -import org.hamcrest.core.IsCollectionContaining.hasItem -import org.hamcrest.core.IsNot.not -import org.junit.Assert.* -import org.junit.ClassRule -import org.junit.Test -import org.junit.rules.RuleChain -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import kotlin.jvm.kotlin -import kotlin.reflect.full.primaryConstructor -import kotlin.test.assertFailsWith - -class DeleteConstructorTest { - companion object { - private const val STRING_PRIMARY_CONSTRUCTOR_CLASS = "net.corda.gradle.PrimaryStringConstructorToDelete" - private const val LONG_PRIMARY_CONSTRUCTOR_CLASS = "net.corda.gradle.PrimaryLongConstructorToDelete" - private const val INT_PRIMARY_CONSTRUCTOR_CLASS = "net.corda.gradle.PrimaryIntConstructorToDelete" - private const val SECONDARY_CONSTRUCTOR_CLASS = "net.corda.gradle.HasConstructorToDelete" - - private val testProjectDir = TemporaryFolder() - private val testProject = JarFilterProject(testProjectDir, "delete-constructor") - - @ClassRule - @JvmField - val rules: TestRule = RuleChain - .outerRule(testProjectDir) - .around(testProject) - } - - @Test - fun deleteConstructorWithLongParameter() { - val longConstructor = isConstructor(SECONDARY_CONSTRUCTOR_CLASS, Long::class) - - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(SECONDARY_CONSTRUCTOR_CLASS).apply { - getDeclaredConstructor(Long::class.java).newInstance(BIG_NUMBER).also { - assertEquals(BIG_NUMBER, it.longData()) - } - assertThat("(J) not found", kotlin.constructors, hasItem(longConstructor)) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(SECONDARY_CONSTRUCTOR_CLASS).apply { - assertFailsWith { getDeclaredConstructor(Long::class.java) } - assertThat("(J) still exists", kotlin.constructors, not(hasItem(longConstructor))) - assertNotNull("primary constructor missing", kotlin.primaryConstructor) - } - } - } - - @Test - fun deleteConstructorWithStringParameter() { - val stringConstructor = isConstructor(SECONDARY_CONSTRUCTOR_CLASS, String::class) - - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(SECONDARY_CONSTRUCTOR_CLASS).apply { - getDeclaredConstructor(String::class.java).newInstance(MESSAGE).also { - assertEquals(MESSAGE, it.stringData()) - } - assertThat("(String) not found", kotlin.constructors, hasItem(stringConstructor)) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(SECONDARY_CONSTRUCTOR_CLASS).apply { - assertFailsWith { getDeclaredConstructor(String::class.java) } - assertThat("(String) still exists", kotlin.constructors, not(hasItem(stringConstructor))) - assertNotNull("primary constructor missing", kotlin.primaryConstructor) - } - } - } - - @Test - fun showUnannotatedConstructorIsUnaffected() { - val intConstructor = isConstructor(SECONDARY_CONSTRUCTOR_CLASS, Int::class) - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(SECONDARY_CONSTRUCTOR_CLASS).apply { - getDeclaredConstructor(Int::class.java).newInstance(NUMBER).also { - assertEquals(NUMBER, it.intData()) - assertEquals(NUMBER.toLong(), it.longData()) - assertEquals("", it.stringData()) - } - assertThat("(Int) not found", kotlin.constructors, hasItem(intConstructor)) - assertNotNull("primary constructor missing", kotlin.primaryConstructor) - } - } - } - - @Test - fun deletePrimaryConstructorWithStringParameter() { - val stringConstructor = isConstructor(STRING_PRIMARY_CONSTRUCTOR_CLASS, String::class) - - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(STRING_PRIMARY_CONSTRUCTOR_CLASS).apply { - getDeclaredConstructor(String::class.java).newInstance(MESSAGE).also { - assertEquals(MESSAGE, it.stringData()) - } - assertThat("(String) not found", kotlin.constructors, hasItem(stringConstructor)) - assertThat("primary constructor missing", kotlin.primaryConstructor!!, stringConstructor) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(STRING_PRIMARY_CONSTRUCTOR_CLASS).apply { - assertFailsWith { getDeclaredConstructor(String::class.java) } - assertThat("(String) still exists", kotlin.constructors, not(hasItem(stringConstructor))) - assertNull("primary constructor still exists", kotlin.primaryConstructor) - } - } - } - - @Test - fun deletePrimaryConstructorWithLongParameter() { - val longConstructor = isConstructor(LONG_PRIMARY_CONSTRUCTOR_CLASS, Long::class) - - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(LONG_PRIMARY_CONSTRUCTOR_CLASS).apply { - getDeclaredConstructor(Long::class.java).newInstance(BIG_NUMBER).also { - assertEquals(BIG_NUMBER, it.longData()) - } - assertThat("(J) not found", kotlin.constructors, hasItem(longConstructor)) - assertThat("primary constructor missing", kotlin.primaryConstructor!!, longConstructor) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(LONG_PRIMARY_CONSTRUCTOR_CLASS).apply { - assertFailsWith { getDeclaredConstructor(Long::class.java) } - assertThat("(J) still exists", kotlin.constructors, not(hasItem(longConstructor))) - assertNull("primary constructor still exists", kotlin.primaryConstructor) - } - } - } - - @Test - fun deletePrimaryConstructorWithIntParameter() { - val intConstructor = isConstructor(INT_PRIMARY_CONSTRUCTOR_CLASS, Int::class) - - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(INT_PRIMARY_CONSTRUCTOR_CLASS).apply { - getDeclaredConstructor(Int::class.java).newInstance(NUMBER).also { - assertEquals(NUMBER, it.intData()) - } - assertThat("(I) not found", kotlin.constructors, hasItem(intConstructor)) - assertThat("primary constructor missing", kotlin.primaryConstructor!!, intConstructor) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(INT_PRIMARY_CONSTRUCTOR_CLASS).apply { - assertFailsWith { getDeclaredConstructor(Int::class.java) } - assertThat("(I) still exists", kotlin.constructors, not(hasItem(intConstructor))) - assertNull("primary constructor still exists", kotlin.primaryConstructor) - } - } - } -} diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteExtensionValPropertyTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteExtensionValPropertyTest.kt deleted file mode 100644 index 4723caef19..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteExtensionValPropertyTest.kt +++ /dev/null @@ -1,52 +0,0 @@ -package net.corda.gradle.jarfilter - -import net.corda.gradle.jarfilter.matcher.isMethod -import net.corda.gradle.jarfilter.matcher.isProperty -import net.corda.gradle.jarfilter.matcher.javaDeclaredMethods -import net.corda.gradle.unwanted.HasUnwantedVal -import org.hamcrest.core.IsCollectionContaining.* -import org.hamcrest.core.IsNot.* -import org.junit.Assert.* -import org.junit.ClassRule -import org.junit.Test -import org.junit.rules.RuleChain -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import kotlin.reflect.full.declaredMemberExtensionProperties -import kotlin.reflect.full.declaredMemberProperties - -class DeleteExtensionValPropertyTest { - companion object { - private const val PROPERTY_CLASS = "net.corda.gradle.HasValExtension" - - private val testProjectDir = TemporaryFolder() - private val testProject = JarFilterProject(testProjectDir, "delete-extension-val") - private val unwantedVal = isProperty("unwantedVal", String::class) - private val getUnwantedVal = isMethod("getUnwantedVal", String::class.java, List::class.java) - - @ClassRule - @JvmField - val rules: TestRule = RuleChain - .outerRule(testProjectDir) - .around(testProject) - } - - @Test - fun deleteExtensionProperty() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(PROPERTY_CLASS).apply { - assertThat("unwantedVal not found", kotlin.declaredMemberProperties, hasItem(unwantedVal)) - assertThat("getUnwantedVal not found", kotlin.javaDeclaredMethods, hasItem(getUnwantedVal)) - assertThat("List.unwantedVal not found", kotlin.declaredMemberExtensionProperties, hasItem(unwantedVal)) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(PROPERTY_CLASS).apply { - assertThat("unwantedVal not found", kotlin.declaredMemberProperties, hasItem(unwantedVal)) - assertThat("getUnwantedVal still exists", kotlin.javaDeclaredMethods, not(hasItem(getUnwantedVal))) - assertThat("List.unwantedVal still exists", kotlin.declaredMemberExtensionProperties, not(hasItem(unwantedVal))) - } - } - } -} diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteFieldTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteFieldTest.kt deleted file mode 100644 index 4be9530f20..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteFieldTest.kt +++ /dev/null @@ -1,99 +0,0 @@ -package net.corda.gradle.jarfilter - -import net.corda.gradle.jarfilter.matcher.* -import org.hamcrest.core.IsCollectionContaining.hasItem -import org.hamcrest.core.IsNot.not -import org.junit.Assert.* -import org.junit.ClassRule -import org.junit.Test -import org.junit.rules.RuleChain -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import kotlin.reflect.full.declaredMemberProperties -import kotlin.test.assertFailsWith - -class DeleteFieldTest { - companion object { - private const val STRING_FIELD_CLASS = "net.corda.gradle.HasStringFieldToDelete" - private const val INTEGER_FIELD_CLASS = "net.corda.gradle.HasIntFieldToDelete" - private const val LONG_FIELD_CLASS = "net.corda.gradle.HasLongFieldToDelete" - - private val testProjectDir = TemporaryFolder() - private val testProject = JarFilterProject(testProjectDir, "delete-field") - - @ClassRule - @JvmField - val rules: TestRule = RuleChain - .outerRule(testProjectDir) - .around(testProject) - } - - @Test - fun deleteStringField() { - val stringField = isProperty("stringField", String::class) - - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(STRING_FIELD_CLASS).apply { - val obj: Any = getDeclaredConstructor(String::class.java).newInstance(MESSAGE) - getDeclaredField("stringField").also { field -> - assertEquals(MESSAGE, field.get(obj)) - } - assertThat("stringField not found", kotlin.declaredMemberProperties, hasItem(stringField)) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(STRING_FIELD_CLASS).apply { - assertNotNull(getDeclaredConstructor(String::class.java).newInstance(MESSAGE)) - assertFailsWith { getDeclaredField("stringField") } - assertThat("stringField still exists", kotlin.declaredMemberProperties, not(hasItem(stringField))) - } - } - } - - @Test - fun deleteLongField() { - val longField = isProperty("longField", Long::class) - - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(LONG_FIELD_CLASS).apply { - val obj: Any = getDeclaredConstructor(Long::class.java).newInstance(BIG_NUMBER) - getDeclaredField("longField").also { field -> - assertEquals(BIG_NUMBER, field.get(obj)) - } - assertThat("longField not found", kotlin.declaredMemberProperties, hasItem(longField)) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(LONG_FIELD_CLASS).apply { - assertNotNull(getDeclaredConstructor(Long::class.java).newInstance(BIG_NUMBER)) - assertFailsWith { getDeclaredField("longField") } - assertThat("longField still exists", kotlin.declaredMemberProperties, not(hasItem(longField))) - } - } - } - - @Test - fun deleteIntegerField() { - val intField = isProperty("intField", Int::class) - - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(INTEGER_FIELD_CLASS).apply { - val obj: Any = getDeclaredConstructor(Int::class.java).newInstance(NUMBER) - getDeclaredField("intField").also { field -> - assertEquals(NUMBER, field.get(obj)) - } - assertThat("intField not found", kotlin.declaredMemberProperties, hasItem(intField)) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(INTEGER_FIELD_CLASS).apply { - assertNotNull(getDeclaredConstructor(Int::class.java).newInstance(NUMBER)) - assertFailsWith { getDeclaredField("intField") } - assertThat("intField still exists", kotlin.declaredMemberProperties, not(hasItem(intField))) - } - } - } -} diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteFunctionTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteFunctionTest.kt deleted file mode 100644 index 8e035fead8..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteFunctionTest.kt +++ /dev/null @@ -1,81 +0,0 @@ -package net.corda.gradle.jarfilter - -import net.corda.gradle.jarfilter.matcher.* -import net.corda.gradle.unwanted.HasString -import net.corda.gradle.unwanted.HasUnwantedFun -import org.hamcrest.core.IsCollectionContaining.hasItem -import org.hamcrest.core.IsNot.not -import org.junit.Assert.* -import org.junit.ClassRule -import org.junit.Test -import org.junit.rules.RuleChain -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import kotlin.jvm.kotlin -import kotlin.reflect.full.declaredFunctions -import kotlin.test.assertFailsWith - -class DeleteFunctionTest { - companion object { - private const val FUNCTION_CLASS = "net.corda.gradle.HasFunctionToDelete" - private const val INDIRECT_CLASS = "net.corda.gradle.HasIndirectFunctionToDelete" - - private val testProjectDir = TemporaryFolder() - private val testProject = JarFilterProject(testProjectDir, "delete-function") - private val unwantedFun = isFunction("unwantedFun", String::class, String::class) - - @ClassRule - @JvmField - val rules: TestRule = RuleChain - .outerRule(testProjectDir) - .around(testProject) - } - - @Test - fun deleteFunction() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(FUNCTION_CLASS).apply { - newInstance().also { - assertEquals(MESSAGE, it.unwantedFun(MESSAGE)) - } - assertThat("unwantedFun(String) not found", kotlin.declaredFunctions, hasItem(unwantedFun)) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(FUNCTION_CLASS).apply { - newInstance().also { - assertFailsWith { it.unwantedFun(MESSAGE) } - } - assertThat("unwantedFun(String) still exists", kotlin.declaredFunctions, not(hasItem(unwantedFun))) - } - } - } - - @Test - fun deleteIndirectFunction() { - val stringData = isFunction("stringData", String::class) - - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(INDIRECT_CLASS).apply { - getDeclaredConstructor(String::class.java).newInstance(MESSAGE).also { - assertEquals(MESSAGE, it.unwantedFun(MESSAGE)) - assertEquals(MESSAGE, (it as HasString).stringData()) - } - assertThat("unwantedFun(String) not found", kotlin.declaredFunctions, hasItem(unwantedFun)) - assertThat("stringData() not found", kotlin.declaredFunctions, hasItem(stringData)) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(INDIRECT_CLASS).apply { - getDeclaredConstructor(String::class.java).newInstance(MESSAGE).also { - assertFailsWith { it.unwantedFun(MESSAGE) } - assertFailsWith { (it as HasString).stringData() } - } - assertThat("unwantedFun(String) still exists", kotlin.declaredFunctions, not(hasItem(unwantedFun))) - assertThat("stringData still exists", kotlin.declaredFunctions, not(hasItem(stringData))) - } - } - } -} diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteInnerLambdaTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteInnerLambdaTest.kt deleted file mode 100644 index 14f1f4edc9..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteInnerLambdaTest.kt +++ /dev/null @@ -1,84 +0,0 @@ -package net.corda.gradle.jarfilter - -import net.corda.gradle.jarfilter.matcher.isConstructor -import net.corda.gradle.unwanted.HasInt -import org.assertj.core.api.Assertions.assertThat -import org.hamcrest.core.IsCollectionContaining.* -import org.hamcrest.core.IsNot.* -import org.junit.Assert.* -import org.junit.BeforeClass -import org.junit.ClassRule -import org.junit.Test -import org.junit.rules.RuleChain -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import kotlin.test.assertFailsWith - -class DeleteInnerLambdaTest { - companion object { - private const val LAMBDA_CLASS = "net.corda.gradle.HasInnerLambda" - private const val SIZE = 64 - - private val testProjectDir = TemporaryFolder() - private val testProject = JarFilterProject(testProjectDir, "delete-inner-lambda") - private val constructInt = isConstructor(LAMBDA_CLASS, Int::class) - private val constructBytes = isConstructor(LAMBDA_CLASS, ByteArray::class) - - private lateinit var sourceClasses: List - private lateinit var filteredClasses: List - - @ClassRule - @JvmField - val rules: TestRule = RuleChain - .outerRule(testProjectDir) - .around(testProject) - - @BeforeClass - @JvmStatic - fun setup() { - sourceClasses = testProject.sourceJar.getClassNames(LAMBDA_CLASS) - filteredClasses = testProject.filteredJar.getClassNames(LAMBDA_CLASS) - } - } - - @Test - fun `test lambda class is deleted`() { - assertThat(sourceClasses) - .contains(LAMBDA_CLASS) - .hasSize(2) - assertThat(filteredClasses).containsExactly(LAMBDA_CLASS) - } - - @Test - fun `test host class`() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(LAMBDA_CLASS).apply { - getConstructor(Int::class.java).newInstance(SIZE).also { obj -> - assertEquals(SIZE, obj.intData()) - } - kotlin.constructors.also { ctors -> - assertThat("(Int) not found", ctors, hasItem(constructInt)) - assertThat("(byte[]) not found", ctors, hasItem(constructBytes)) - } - - getConstructor(ByteArray::class.java).newInstance(ByteArray(SIZE)).also { obj -> - assertEquals(SIZE, obj.intData()) - } - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(LAMBDA_CLASS).apply { - assertFailsWith { getConstructor(Int::class.java) } - kotlin.constructors.also { ctors -> - assertThat("(Int) still exists", ctors, not(hasItem(constructInt))) - assertThat("(byte[]) not found", ctors, hasItem(constructBytes)) - } - - getConstructor(ByteArray::class.java).newInstance(ByteArray(SIZE)).also { obj -> - assertEquals(SIZE, obj.intData()) - } - } - } - } -} \ No newline at end of file diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteLazyTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteLazyTest.kt deleted file mode 100644 index ac217fea87..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteLazyTest.kt +++ /dev/null @@ -1,71 +0,0 @@ -package net.corda.gradle.jarfilter - -import net.corda.gradle.jarfilter.matcher.* -import net.corda.gradle.unwanted.HasUnwantedVal -import org.assertj.core.api.Assertions.* -import org.hamcrest.core.IsCollectionContaining.* -import org.hamcrest.core.IsNot.* -import org.junit.Assert.* -import org.junit.BeforeClass -import org.junit.ClassRule -import org.junit.Test -import org.junit.rules.RuleChain -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import kotlin.reflect.full.declaredMemberProperties -import kotlin.test.assertFailsWith - -class DeleteLazyTest { - companion object { - private const val LAZY_VAL_CLASS = "net.corda.gradle.HasLazyVal" - - private val testProjectDir = TemporaryFolder() - private val testProject = JarFilterProject(testProjectDir, "delete-lazy") - private val unwantedVal = isProperty("unwantedVal", String::class) - private val getUnwantedVal = isMethod("getUnwantedVal", String::class.java) - private lateinit var sourceClasses: List - private lateinit var filteredClasses: List - - @ClassRule - @JvmField - val rules: TestRule = RuleChain - .outerRule(testProjectDir) - .around(testProject) - - @BeforeClass - @JvmStatic - fun setup() { - sourceClasses = testProject.sourceJar.getClassNames(LAZY_VAL_CLASS) - filteredClasses = testProject.filteredJar.getClassNames(LAZY_VAL_CLASS) - } - } - - @Test - fun deletedClasses() { - assertThat(sourceClasses).contains(LAZY_VAL_CLASS) - assertThat(filteredClasses).containsExactly(LAZY_VAL_CLASS) - } - - @Test - fun deleteLazyVal() { - assertThat(sourceClasses).anyMatch { it.contains("\$unwantedVal\$") } - - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(LAZY_VAL_CLASS).apply { - getConstructor(String::class.java).newInstance(MESSAGE).also { obj -> - assertEquals(MESSAGE, obj.unwantedVal) - } - assertThat("getUnwantedVal not found", kotlin.javaDeclaredMethods, hasItem(getUnwantedVal)) - assertThat("unwantedVal not found", kotlin.declaredMemberProperties, hasItem(unwantedVal)) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(LAZY_VAL_CLASS).apply { - assertFailsWith { getConstructor(String::class.java) } - assertThat("getUnwantedVal still exists", kotlin.javaDeclaredMethods, not(hasItem(getUnwantedVal))) - assertThat("unwantedVal still exists", kotlin.declaredMemberProperties, not(hasItem(unwantedVal))) - } - } - } -} \ No newline at end of file diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteMultiFileTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteMultiFileTest.kt deleted file mode 100644 index 4c7333c41a..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteMultiFileTest.kt +++ /dev/null @@ -1,90 +0,0 @@ -package net.corda.gradle.jarfilter - -import org.assertj.core.api.Assertions.* -import org.junit.ClassRule -import org.junit.Test -import org.junit.rules.RuleChain -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import kotlin.test.assertFailsWith - -class DeleteMultiFileTest { - companion object { - private const val MULTIFILE_CLASS = "net.corda.gradle.HasMultiData" - private const val STRING_METHOD = "stringToDelete" - private const val LONG_METHOD = "longToDelete" - private const val INT_METHOD = "intToDelete" - - private val testProjectDir = TemporaryFolder() - private val testProject = JarFilterProject(testProjectDir, "delete-multifile") - - @ClassRule - @JvmField - val rules: TestRule = RuleChain - .outerRule(testProjectDir) - .around(testProject) - } - - @Test - fun deleteStringFunction() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(MULTIFILE_CLASS).apply { - getMethod(STRING_METHOD, String::class.java).also { method -> - method.invoke(null, MESSAGE).also { result -> - assertThat(result) - .isInstanceOf(String::class.java) - .isEqualTo(MESSAGE) - } - } - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(MULTIFILE_CLASS).apply { - assertFailsWith { getMethod(STRING_METHOD, String::class.java) } - } - } - } - - @Test - fun deleteLongFunction() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(MULTIFILE_CLASS).apply { - getMethod(LONG_METHOD, Long::class.java).also { method -> - method.invoke(null, BIG_NUMBER).also { result -> - assertThat(result) - .isInstanceOf(Long::class.javaObjectType) - .isEqualTo(BIG_NUMBER) - } - } - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(MULTIFILE_CLASS).apply { - assertFailsWith { getMethod(LONG_METHOD, Long::class.java) } - } - } - } - - @Test - fun deleteIntFunction() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(MULTIFILE_CLASS).apply { - getMethod(INT_METHOD, Int::class.java).also { method -> - method.invoke(null, NUMBER).also { result -> - assertThat(result) - .isInstanceOf(Int::class.javaObjectType) - .isEqualTo(NUMBER) - } - } - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(MULTIFILE_CLASS).apply { - assertFailsWith { getMethod(INT_METHOD, Int::class.java) } - } - } - } -} \ No newline at end of file diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteNestedClassTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteNestedClassTest.kt deleted file mode 100644 index 934a2797bc..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteNestedClassTest.kt +++ /dev/null @@ -1,90 +0,0 @@ -package net.corda.gradle.jarfilter - -import net.corda.gradle.jarfilter.asm.classMetadata -import net.corda.gradle.jarfilter.matcher.isClass -import org.assertj.core.api.Assertions.* -import org.hamcrest.core.IsCollectionContaining.hasItem -import org.hamcrest.core.IsNot.not -import org.junit.Assert.* -import org.junit.ClassRule -import org.junit.Test -import org.junit.rules.RuleChain -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import kotlin.test.assertFailsWith - -class DeleteNestedClassTest { - companion object { - private const val HOST_CLASS = "net.corda.gradle.HasNestedClasses" - private const val KEPT_CLASS = "$HOST_CLASS\$OneToKeep" - private const val DELETED_CLASS = "$HOST_CLASS\$OneToThrowAway" - - private const val SEALED_CLASS = "net.corda.gradle.SealedClass" - private const val WANTED_SUBCLASS = "$SEALED_CLASS\$Wanted" - private const val UNWANTED_SUBCLASS = "$SEALED_CLASS\$Unwanted" - - private val keptClass = isClass(KEPT_CLASS) - private val deletedClass = isClass(DELETED_CLASS) - private val wantedSubclass = isClass(WANTED_SUBCLASS) - private val unwantedSubclass = isClass(UNWANTED_SUBCLASS) - - private val testProjectDir = TemporaryFolder() - private val testProject = JarFilterProject(testProjectDir, "delete-nested-class") - - @ClassRule - @JvmField - val rules: TestRule = RuleChain - .outerRule(testProjectDir) - .around(testProject) - } - - @Test - fun deleteNestedClass() { - classLoaderFor(testProject.sourceJar).use { cl -> - val deleted = cl.load(DELETED_CLASS) - val kept = cl.load(KEPT_CLASS) - cl.load(HOST_CLASS).apply { - assertThat(declaredClasses).containsExactlyInAnyOrder(deleted, kept) - assertThat("OneToThrowAway class is missing", kotlin.nestedClasses, hasItem(deletedClass)) - assertThat("OneToKeep class is missing", kotlin.nestedClasses, hasItem(keptClass)) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - assertFailsWith { cl.load(DELETED_CLASS) } - val kept = cl.load(KEPT_CLASS) - cl.load(HOST_CLASS).apply { - assertThat(declaredClasses).containsExactly(kept) - assertThat("OneToThrowAway class still exists", kotlin.nestedClasses, not(hasItem(deletedClass))) - assertThat("OneToKeep class is missing", kotlin.nestedClasses, hasItem(keptClass)) - } - } - } - - @Test - fun deleteFromSealedClass() { - classLoaderFor(testProject.sourceJar).use { cl -> - val unwanted = cl.load(UNWANTED_SUBCLASS) - val wanted = cl.load(WANTED_SUBCLASS) - cl.load(SEALED_CLASS).apply { - assertTrue(kotlin.isSealed) - assertThat(declaredClasses).containsExactlyInAnyOrder(wanted, unwanted) - assertThat("Wanted class is missing", kotlin.nestedClasses, hasItem(wantedSubclass)) - assertThat("Unwanted class is missing", kotlin.nestedClasses, hasItem(unwantedSubclass)) - assertThat(classMetadata.sealedSubclasses).containsExactlyInAnyOrder(WANTED_SUBCLASS, UNWANTED_SUBCLASS) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - assertFailsWith { cl.load(UNWANTED_SUBCLASS) } - val wanted = cl.load(WANTED_SUBCLASS) - cl.load(SEALED_CLASS).apply { - assertTrue(kotlin.isSealed) - assertThat(declaredClasses).containsExactly(wanted) - assertThat("Unwanted class still exists", kotlin.nestedClasses, not(hasItem(unwantedSubclass))) - assertThat("Wanted class is missing", kotlin.nestedClasses, hasItem(wantedSubclass)) - assertThat(classMetadata.sealedSubclasses).containsExactly(WANTED_SUBCLASS) - } - } - } -} diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteObjectTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteObjectTest.kt deleted file mode 100644 index 5e6db4a4b1..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteObjectTest.kt +++ /dev/null @@ -1,89 +0,0 @@ -package net.corda.gradle.jarfilter - -import net.corda.gradle.unwanted.HasUnwantedFun -import org.assertj.core.api.Assertions.* -import org.junit.Assert.* -import org.junit.BeforeClass -import org.junit.ClassRule -import org.junit.Test -import org.junit.rules.RuleChain -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import kotlin.test.assertFailsWith - -class DeleteObjectTest { - companion object { - private const val OBJECT_CLASS = "net.corda.gradle.HasObjects" - private const val UNWANTED_OBJ_METHOD = "getUnwantedObj" - private const val UNWANTED_OBJ_FIELD = "unwantedObj" - private const val UNWANTED_FUN_METHOD = "unwantedFun" - - private val testProjectDir = TemporaryFolder() - private val testProject = JarFilterProject(testProjectDir, "delete-object") - private lateinit var sourceClasses: List - private lateinit var filteredClasses: List - - @ClassRule - @JvmField - val rules: TestRule = RuleChain - .outerRule(testProjectDir) - .around(testProject) - - @BeforeClass - @JvmStatic - fun setup() { - sourceClasses = testProject.sourceJar.getClassNames(OBJECT_CLASS) - filteredClasses = testProject.filteredJar.getClassNames(OBJECT_CLASS) - } - } - - @Test - fun deletedClasses() { - assertThat(sourceClasses).contains(OBJECT_CLASS) - assertThat(filteredClasses).containsExactly(OBJECT_CLASS) - } - - @Test - fun deleteObject() { - assertThat(sourceClasses).anyMatch { it.contains("\$unwantedObj\$") } - - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(OBJECT_CLASS).apply { - getDeclaredMethod(UNWANTED_OBJ_METHOD).also { method -> - (method.invoke(null) as HasUnwantedFun).also { obj -> - assertEquals(MESSAGE, obj.unwantedFun(MESSAGE)) - } - } - getDeclaredField(UNWANTED_OBJ_FIELD).also { field -> - assertFalse(field.isAccessible) - } - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(OBJECT_CLASS).apply { - assertFailsWith { getDeclaredMethod(UNWANTED_OBJ_METHOD) } - assertFailsWith { getDeclaredField(UNWANTED_OBJ_FIELD) } - } - } - } - - @Test - fun deleteFunctionWithObject() { - assertThat(sourceClasses).anyMatch { it.contains("\$unwantedFun\$") } - - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(OBJECT_CLASS).apply { - getDeclaredMethod(UNWANTED_FUN_METHOD).also { method -> - assertEquals("", method.invoke(null)) - } - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(OBJECT_CLASS).apply { - assertFailsWith { getDeclaredMethod(UNWANTED_FUN_METHOD) } - } - } - } -} \ No newline at end of file diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteSealedSubclassTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteSealedSubclassTest.kt deleted file mode 100644 index eeb90e4c7f..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteSealedSubclassTest.kt +++ /dev/null @@ -1,56 +0,0 @@ -package net.corda.gradle.jarfilter - -import net.corda.gradle.jarfilter.asm.classMetadata -import org.assertj.core.api.Assertions.assertThat -import org.junit.Assert.* -import org.junit.ClassRule -import org.junit.Test -import org.junit.rules.RuleChain -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import kotlin.test.assertFailsWith - -/** - * Sealed classes can have non-nested subclasses, so long as those subclasses - * are declared in the same file as the sealed class. Check that the metadata - * is still updated correctly in this case. - */ -class DeleteSealedSubclassTest { - companion object { - private const val SEALED_CLASS = "net.corda.gradle.SealedBaseClass" - private const val WANTED_SUBCLASS = "net.corda.gradle.WantedSubclass" - private const val UNWANTED_SUBCLASS = "net.corda.gradle.UnwantedSubclass" - - private val testProjectDir = TemporaryFolder() - private val testProject = JarFilterProject(testProjectDir, "delete-sealed-subclass") - - @ClassRule - @JvmField - val rules: TestRule = RuleChain - .outerRule(testProjectDir) - .around(testProject) - } - - @Test - fun deleteUnwantedSubclass() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(WANTED_SUBCLASS) - cl.load(UNWANTED_SUBCLASS) - cl.load(SEALED_CLASS).apply { - assertTrue(kotlin.isSealed) - assertThat(classMetadata.sealedSubclasses) - .containsExactlyInAnyOrder(WANTED_SUBCLASS, UNWANTED_SUBCLASS) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(WANTED_SUBCLASS) - assertFailsWith { cl.load(UNWANTED_SUBCLASS) } - cl.load(SEALED_CLASS).apply { - assertTrue(kotlin.isSealed) - assertThat(classMetadata.sealedSubclasses) - .containsExactly(WANTED_SUBCLASS) - } - } - } -} \ No newline at end of file diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteStaticFieldTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteStaticFieldTest.kt deleted file mode 100644 index 1b3d668035..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteStaticFieldTest.kt +++ /dev/null @@ -1,74 +0,0 @@ -package net.corda.gradle.jarfilter - -import org.junit.ClassRule -import org.junit.Test -import org.junit.rules.RuleChain -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import kotlin.test.assertEquals -import kotlin.test.assertFailsWith - -class DeleteStaticFieldTest { - companion object { - private const val PROPERTY_CLASS = "net.corda.gradle.StaticFieldsToDelete" - private const val DEFAULT_BIG_NUMBER: Long = 123456789L - private const val DEFAULT_NUMBER: Int = 123456 - - private val testProjectDir = TemporaryFolder() - private val testProject = JarFilterProject(testProjectDir, "delete-static-field") - - @ClassRule - @JvmField - val rules: TestRule = RuleChain - .outerRule(testProjectDir) - .around(testProject) - } - - @Test - fun deleteStringField() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(PROPERTY_CLASS).apply { - val getter = getDeclaredField("stringField") - assertEquals(DEFAULT_MESSAGE, getter.get(null)) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(PROPERTY_CLASS).apply { - assertFailsWith { getDeclaredField("stringField") } - } - } - } - - @Test - fun deleteLongField() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(PROPERTY_CLASS).apply { - val getter = getDeclaredField("longField") - assertEquals(DEFAULT_BIG_NUMBER, getter.get(null)) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(PROPERTY_CLASS).apply { - assertFailsWith { getDeclaredField("longField") } - } - } - } - - @Test - fun deleteIntField() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(PROPERTY_CLASS).apply { - val getter = getDeclaredField("intField") - assertEquals(DEFAULT_NUMBER, getter.get(null)) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(PROPERTY_CLASS).apply { - assertFailsWith { getDeclaredField("intField") } - } - } - } -} \ No newline at end of file diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteStaticFunctionTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteStaticFunctionTest.kt deleted file mode 100644 index 5ad8102dfb..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteStaticFunctionTest.kt +++ /dev/null @@ -1,87 +0,0 @@ -package net.corda.gradle.jarfilter - -import org.assertj.core.api.Assertions.* -import org.junit.ClassRule -import org.junit.Test -import org.junit.rules.RuleChain -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import kotlin.test.assertFailsWith - -class DeleteStaticFunctionTest { - companion object { - private const val FUNCTION_CLASS = "net.corda.gradle.StaticFunctionsToDelete" - - private val testProjectDir = TemporaryFolder() - private val testProject = JarFilterProject(testProjectDir, "delete-static-function") - - @ClassRule - @JvmField - val rules: TestRule = RuleChain - .outerRule(testProjectDir) - .around(testProject) - } - - @Test - fun deleteStringFunction() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(FUNCTION_CLASS).apply { - getMethod("unwantedStringToDelete", String::class.java).also { method -> - method.invoke(null, MESSAGE).also { result -> - assertThat(result) - .isInstanceOf(String::class.java) - .isEqualTo(MESSAGE) - } - } - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(FUNCTION_CLASS).apply { - assertFailsWith { getMethod("unwantedStringToDelete", String::class.java) } - } - } - } - - @Test - fun deleteLongFunction() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(FUNCTION_CLASS).apply { - getMethod("unwantedLongToDelete", Long::class.java).also { method -> - method.invoke(null, BIG_NUMBER).also { result -> - assertThat(result) - .isInstanceOf(Long::class.javaObjectType) - .isEqualTo(BIG_NUMBER) - } - } - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(FUNCTION_CLASS).apply { - assertFailsWith { getMethod("unwantedLongToDelete", Long::class.java) } - } - } - } - - @Test - fun deleteIntFunction() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(FUNCTION_CLASS).apply { - getMethod("unwantedIntToDelete", Int::class.java).also { method -> - method.invoke(null, NUMBER).also { result -> - assertThat(result) - .isInstanceOf(Int::class.javaObjectType) - .isEqualTo(NUMBER) - } - } - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(FUNCTION_CLASS).apply { - assertFailsWith { getMethod("unwantedIntToDelete", Int::class.java) } - } - } - } -} diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteStaticValPropertyTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteStaticValPropertyTest.kt deleted file mode 100644 index e24afa4b99..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteStaticValPropertyTest.kt +++ /dev/null @@ -1,91 +0,0 @@ -package net.corda.gradle.jarfilter - -import org.junit.ClassRule -import org.junit.Test -import org.junit.rules.RuleChain -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import kotlin.test.assertEquals -import kotlin.test.assertFailsWith - -class DeleteStaticValPropertyTest { - companion object { - private const val PROPERTY_CLASS = "net.corda.gradle.StaticValToDelete" - private const val DEFAULT_BIG_NUMBER: Long = 123456789L - private const val DEFAULT_NUMBER: Int = 123456 - private object LocalBlob - - private val testProjectDir = TemporaryFolder() - private val testProject = JarFilterProject(testProjectDir, "delete-static-val") - - @ClassRule - @JvmField - val rules: TestRule = RuleChain - .outerRule(testProjectDir) - .around(testProject) - } - - @Test - fun deleteStringVal() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(PROPERTY_CLASS).apply { - val getter = getDeclaredMethod("getStringVal") - assertEquals(DEFAULT_MESSAGE, getter.invoke(null)) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(PROPERTY_CLASS).apply { - assertFailsWith { getDeclaredMethod("getStringVal") } - } - } - } - - @Test - fun deleteLongVal() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(PROPERTY_CLASS).apply { - val getter = getDeclaredMethod("getLongVal") - assertEquals(DEFAULT_BIG_NUMBER, getter.invoke(null)) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(PROPERTY_CLASS).apply { - assertFailsWith { getDeclaredMethod("getLongVal") } - } - } - } - - @Test - fun deleteIntVal() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(PROPERTY_CLASS).apply { - val getter = getDeclaredMethod("getIntVal") - assertEquals(DEFAULT_NUMBER, getter.invoke(null)) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(PROPERTY_CLASS).apply { - assertFailsWith { getDeclaredMethod("getIntVal") } - } - } - } - - @Test - fun deleteMemberVal() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(PROPERTY_CLASS).apply { - val getter = getDeclaredMethod("getMemberVal", Any::class.java) - assertEquals(LocalBlob, getter.invoke(null, LocalBlob)) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(PROPERTY_CLASS).apply { - assertFailsWith { getDeclaredMethod("getMemberVal", Any::class.java) } - } - } - } -} \ No newline at end of file diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteStaticVarPropertyTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteStaticVarPropertyTest.kt deleted file mode 100644 index 9bac98c37b..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteStaticVarPropertyTest.kt +++ /dev/null @@ -1,106 +0,0 @@ -package net.corda.gradle.jarfilter - -import org.junit.Assert.* -import org.junit.ClassRule -import org.junit.Test -import org.junit.rules.RuleChain -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import kotlin.test.assertFailsWith - -class DeleteStaticVarPropertyTest { - companion object { - private const val PROPERTY_CLASS = "net.corda.gradle.StaticVarToDelete" - private const val DEFAULT_BIG_NUMBER: Long = 123456789L - private const val DEFAULT_NUMBER: Int = 123456 - private object LocalBlob - - private val testProjectDir = TemporaryFolder() - private val testProject = JarFilterProject(testProjectDir, "delete-static-var") - - @ClassRule - @JvmField - val rules: TestRule = RuleChain - .outerRule(testProjectDir) - .around(testProject) - } - - @Test - fun deleteStringVar() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(PROPERTY_CLASS).apply { - val getter = getDeclaredMethod("getStringVar") - val setter = getDeclaredMethod("setStringVar", String::class.java) - assertEquals(DEFAULT_MESSAGE, getter.invoke(null)) - setter.invoke(null, MESSAGE) - assertEquals(MESSAGE, getter.invoke(null)) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(PROPERTY_CLASS).apply { - assertFailsWith { getDeclaredMethod("getStringVar") } - assertFailsWith { getDeclaredMethod("setStringVar", String::class.java) } - } - } - } - - @Test - fun deleteLongVar() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(PROPERTY_CLASS).apply { - val getter = getDeclaredMethod("getLongVar") - val setter = getDeclaredMethod("setLongVar", Long::class.java) - assertEquals(DEFAULT_BIG_NUMBER, getter.invoke(null)) - setter.invoke(null, BIG_NUMBER) - assertEquals(BIG_NUMBER, getter.invoke(null)) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(PROPERTY_CLASS).apply { - assertFailsWith { getDeclaredMethod("getLongVar") } - assertFailsWith { getDeclaredMethod("setLongVar", Long::class.java) } - } - } - } - - @Test - fun deleteIntVar() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(PROPERTY_CLASS).apply { - val getter = getDeclaredMethod("getIntVar") - val setter = getDeclaredMethod("setIntVar", Int::class.java) - assertEquals(DEFAULT_NUMBER, getter.invoke(null)) - setter.invoke(null, NUMBER) - assertEquals(NUMBER, getter.invoke(null)) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(PROPERTY_CLASS).apply { - assertFailsWith { getDeclaredMethod("getIntVar") } - assertFailsWith { getDeclaredMethod("setIntVar", Int::class.java) } - } - } - } - - @Test - fun deleteMemberVar() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(PROPERTY_CLASS).apply { - val getter = getDeclaredMethod("getMemberVar", Any::class.java) - val setter = getDeclaredMethod("setMemberVar", Any::class.java, Any::class.java) - assertEquals(LocalBlob, getter.invoke(null, LocalBlob)) - setter.invoke(null, LocalBlob, LocalBlob) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(PROPERTY_CLASS).apply { - assertFailsWith { getDeclaredMethod("getMemberVar", Any::class.java) } - assertFailsWith { getDeclaredMethod("setMemberVar", Any::class.java, Any::class.java) } - } - } - } -} diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteTypeAliasFromFileTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteTypeAliasFromFileTest.kt deleted file mode 100644 index bb2dc6f2a7..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteTypeAliasFromFileTest.kt +++ /dev/null @@ -1,48 +0,0 @@ -package net.corda.gradle.jarfilter - -import net.corda.gradle.jarfilter.asm.fileMetadata -import org.assertj.core.api.Assertions.assertThat -import org.junit.BeforeClass -import org.junit.ClassRule -import org.junit.Test -import org.junit.rules.RuleChain -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule - -class DeleteTypeAliasFromFileTest { - companion object { - private const val TYPEALIAS_CLASS = "net.corda.gradle.FileWithTypeAlias" - - private val testProjectDir = TemporaryFolder() - private val testProject = JarFilterProject(testProjectDir, "delete-file-typealias") - private lateinit var sourceClasses: List - private lateinit var filteredClasses: List - - @ClassRule - @JvmField - val rules: TestRule = RuleChain - .outerRule(testProjectDir) - .around(testProject) - - @BeforeClass - @JvmStatic - fun setup() { - sourceClasses = testProject.sourceJar.getClassNames(TYPEALIAS_CLASS) - filteredClasses = testProject.filteredJar.getClassNames(TYPEALIAS_CLASS) - } - } - - @Test - fun deleteTypeAlias() { - classLoaderFor(testProject.sourceJar).use { cl -> - val metadata = cl.load(TYPEALIAS_CLASS).fileMetadata - assertThat(metadata.typeAliasNames) - .containsExactlyInAnyOrder("FileWantedType", "FileUnwantedType") - } - classLoaderFor(testProject.filteredJar).use { cl -> - val metadata = cl.load(TYPEALIAS_CLASS).fileMetadata - assertThat(metadata.typeAliasNames) - .containsExactly("FileWantedType") - } - } -} \ No newline at end of file diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteValPropertyTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteValPropertyTest.kt deleted file mode 100644 index 75d59b4e54..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteValPropertyTest.kt +++ /dev/null @@ -1,102 +0,0 @@ -package net.corda.gradle.jarfilter - -import net.corda.gradle.jarfilter.matcher.* -import net.corda.gradle.unwanted.HasUnwantedVal -import org.hamcrest.core.IsCollectionContaining.* -import org.hamcrest.core.IsNot.* -import org.junit.Assert.* -import org.junit.ClassRule -import org.junit.Test -import org.junit.rules.RuleChain -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import kotlin.reflect.full.declaredMemberProperties -import kotlin.test.assertFailsWith - -class DeleteValPropertyTest { - companion object { - private const val PROPERTY_CLASS = "net.corda.gradle.HasValPropertyForDelete" - private const val GETTER_CLASS = "net.corda.gradle.HasValGetterForDelete" - private const val JVM_FIELD_CLASS = "net.corda.gradle.HasValJvmFieldForDelete" - - private val testProjectDir = TemporaryFolder() - private val testProject = JarFilterProject(testProjectDir, "delete-val-property") - private val unwantedVal = isProperty("unwantedVal", String::class) - private val getUnwantedVal = isMethod("getUnwantedVal", String::class.java) - - @ClassRule - @JvmField - val rules: TestRule = RuleChain - .outerRule(testProjectDir) - .around(testProject) - } - - @Test - fun deleteProperty() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(PROPERTY_CLASS).apply { - getDeclaredConstructor(String::class.java).newInstance(MESSAGE).also { obj -> - assertEquals(MESSAGE, obj.unwantedVal) - } - assertFalse(getDeclaredField("unwantedVal").isAccessible) - assertThat("unwantedVal not found", kotlin.declaredMemberProperties, hasItem(unwantedVal)) - assertThat("getUnwantedVal not found", kotlin.javaDeclaredMethods, hasItem(getUnwantedVal)) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(PROPERTY_CLASS).apply { - getDeclaredConstructor(String::class.java).newInstance(MESSAGE).also { obj -> - assertFailsWith { obj.unwantedVal } - } - assertFailsWith { getDeclaredField("unwantedVal") } - assertThat("unwantedVal still exists", kotlin.declaredMemberProperties, not(hasItem(unwantedVal))) - assertThat("getUnwantedVal still exists", kotlin.javaDeclaredMethods, not(hasItem(getUnwantedVal))) - } - } - } - - @Test - fun deleteGetter() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(GETTER_CLASS).apply { - getDeclaredConstructor(String::class.java).newInstance(MESSAGE).also { obj -> - assertEquals(MESSAGE, obj.unwantedVal) - } - assertFalse(getDeclaredField("unwantedVal").isAccessible) - assertThat("getUnwantedVal not found", kotlin.javaDeclaredMethods, hasItem(getUnwantedVal)) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(GETTER_CLASS).apply { - getDeclaredConstructor(String::class.java).newInstance(MESSAGE).also { obj -> - assertFailsWith { obj.unwantedVal } - } - assertFalse(getDeclaredField("unwantedVal").isAccessible) - assertThat("getUnwantedVal still exists", kotlin.javaDeclaredMethods, not(hasItem(getUnwantedVal))) - } - } - } - - @Test - fun deleteJvmField() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(JVM_FIELD_CLASS).apply { - val obj = getDeclaredConstructor(String::class.java).newInstance(MESSAGE) - getDeclaredField("unwantedVal").also { field -> - assertEquals(MESSAGE, field.get(obj)) - } - assertThat("unwantedVal not found", kotlin.declaredMemberProperties, hasItem(unwantedVal)) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(JVM_FIELD_CLASS).apply { - assertNotNull(getDeclaredConstructor(String::class.java).newInstance(MESSAGE)) - assertFailsWith { getDeclaredField("unwantedVal") } - assertThat("unwantedVal still exists", kotlin.declaredMemberProperties, not(hasItem(unwantedVal))) - } - } - } -} diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteVarPropertyTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteVarPropertyTest.kt deleted file mode 100644 index 392f9466ea..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DeleteVarPropertyTest.kt +++ /dev/null @@ -1,141 +0,0 @@ -package net.corda.gradle.jarfilter - -import net.corda.gradle.jarfilter.matcher.* -import net.corda.gradle.unwanted.HasUnwantedVar -import org.hamcrest.core.IsCollectionContaining.* -import org.hamcrest.core.IsNot.* -import org.junit.Assert.* -import org.junit.ClassRule -import org.junit.Test -import org.junit.rules.RuleChain -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import kotlin.reflect.full.declaredMemberProperties -import kotlin.test.assertFailsWith - -class DeleteVarPropertyTest { - companion object { - private const val PROPERTY_CLASS = "net.corda.gradle.HasUnwantedVarPropertyForDelete" - private const val GETTER_CLASS = "net.corda.gradle.HasUnwantedGetForDelete" - private const val SETTER_CLASS = "net.corda.gradle.HasUnwantedSetForDelete" - private const val JVM_FIELD_CLASS = "net.corda.gradle.HasVarJvmFieldForDelete" - - private val testProjectDir = TemporaryFolder() - private val testProject = JarFilterProject(testProjectDir, "delete-var-property") - private val unwantedVar = isProperty("unwantedVar", String::class) - private val getUnwantedVar = isMethod("getUnwantedVar", String::class.java) - private val setUnwantedVar = isMethod("setUnwantedVar", Void.TYPE, String::class.java) - - @ClassRule - @JvmField - val rules: TestRule = RuleChain - .outerRule(testProjectDir) - .around(testProject) - } - - @Test - fun deleteProperty() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(PROPERTY_CLASS).apply { - getDeclaredConstructor(String::class.java).newInstance(DEFAULT_MESSAGE).also { obj -> - assertEquals(DEFAULT_MESSAGE, obj.unwantedVar) - obj.unwantedVar = MESSAGE - assertEquals(MESSAGE, obj.unwantedVar) - } - assertFalse(getDeclaredField("unwantedVar").isAccessible) - assertThat("unwantedVar not found", kotlin.declaredMemberProperties, hasItem(unwantedVar)) - assertThat("getUnwantedVar not found", kotlin.javaDeclaredMethods, hasItem(getUnwantedVar)) - assertThat("setUnwantedVar not found", kotlin.javaDeclaredMethods, hasItem(setUnwantedVar)) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(PROPERTY_CLASS).apply { - getDeclaredConstructor(String::class.java).newInstance(DEFAULT_MESSAGE).also { obj -> - assertFailsWith { obj.unwantedVar } - assertFailsWith { obj.unwantedVar = MESSAGE } - } - assertFailsWith { getDeclaredField("unwantedVar") } - assertThat("unwantedVar still exists", kotlin.declaredMemberProperties, not(hasItem(unwantedVar))) - assertThat("getUnwantedVar still exists", kotlin.javaDeclaredMethods, not(hasItem(getUnwantedVar))) - assertThat("setUnwantedVar still exists", kotlin.javaDeclaredMethods, not(hasItem(setUnwantedVar))) - } - } - } - - @Test - fun deleteGetter() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(GETTER_CLASS).apply { - getDeclaredConstructor(String::class.java).newInstance(MESSAGE).also { obj -> - assertEquals(MESSAGE, obj.unwantedVar) - } - assertFalse(getDeclaredField("unwantedVar").isAccessible) - assertThat("getUnwantedVar not found", kotlin.javaDeclaredMethods, hasItem(getUnwantedVar)) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(GETTER_CLASS).apply { - getDeclaredConstructor(String::class.java).newInstance(MESSAGE).also { obj -> - assertFailsWith { obj.unwantedVar } - } - assertFalse(getDeclaredField("unwantedVar").isAccessible) - assertThat("getUnwantedVar still exists", kotlin.javaDeclaredMethods, not(hasItem(getUnwantedVar))) - } - } - } - - @Test - fun deleteSetter() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(SETTER_CLASS).apply { - getConstructor(String::class.java).newInstance(DEFAULT_MESSAGE).also { obj -> - assertEquals(DEFAULT_MESSAGE, obj.unwantedVar) - obj.unwantedVar = MESSAGE - assertEquals(MESSAGE, obj.unwantedVar) - } - getDeclaredField("unwantedVar").also { field -> - assertFalse(field.isAccessible) - } - assertThat("setUnwantedVar not found", kotlin.javaDeclaredMethods, hasItem(setUnwantedVar)) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(SETTER_CLASS).apply { - getConstructor(String::class.java).newInstance(DEFAULT_MESSAGE).also { obj -> - assertEquals(DEFAULT_MESSAGE, obj.unwantedVar) - assertFailsWith { obj.unwantedVar = MESSAGE } - } - getDeclaredField("unwantedVar").also { field -> - assertFalse(field.isAccessible) - } - assertThat("setUnwantedVar still exists", kotlin.javaDeclaredMethods, not(hasItem(setUnwantedVar))) - } - } - } - - @Test - fun deleteJvmField() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(JVM_FIELD_CLASS).apply { - val obj: Any = getDeclaredConstructor(String::class.java).newInstance(DEFAULT_MESSAGE) - getDeclaredField("unwantedVar").also { field -> - assertEquals(DEFAULT_MESSAGE, field.get(obj)) - field.set(obj, MESSAGE) - assertEquals(MESSAGE, field.get(obj)) - } - assertThat("unwantedVar not found", kotlin.declaredMemberProperties, hasItem(unwantedVar)) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(JVM_FIELD_CLASS).apply { - assertNotNull(getDeclaredConstructor(String::class.java).newInstance(DEFAULT_MESSAGE)) - assertFailsWith { getDeclaredField("unwantedVar") } - assertThat("unwantedVar still exists", kotlin.declaredMemberProperties, not(hasItem(unwantedVar))) - } - } - } -} \ No newline at end of file diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DummyJar.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DummyJar.kt deleted file mode 100644 index 7e768fc80b..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/DummyJar.kt +++ /dev/null @@ -1,103 +0,0 @@ -package net.corda.gradle.jarfilter - -import net.corda.gradle.jarfilter.asm.bytecode -import net.corda.gradle.jarfilter.asm.resourceName -import org.assertj.core.api.Assertions.* -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import org.junit.runner.Description -import org.junit.runners.model.Statement -import java.nio.file.Files -import java.nio.file.Path -import java.util.jar.Attributes.Name.MANIFEST_VERSION -import java.util.jar.JarOutputStream -import java.util.jar.Manifest -import java.util.zip.CRC32 -import java.util.zip.Deflater.NO_COMPRESSION -import java.util.zip.ZipEntry -import java.util.zip.ZipEntry.* - -/** - * Creates a dummy jar containing the following: - * - META-INF/MANIFEST.MF - * - A compressed class file - * - A compressed binary non-class file - * - An uncompressed text file - * - A directory entry - * - * The compression level is set to NO_COMPRESSION - * in order to force the Gradle task to compress - * the entries properly. - */ -class DummyJar( - private val projectDir: TemporaryFolder, - private val testClass: Class<*>, - private val name: String -) : TestRule { - private companion object { - private const val DATA_SIZE = 512 - - private fun uncompressed(name: String, data: ByteArray) = ZipEntry(name).apply { - method = STORED - compressedSize = data.size.toLong() - size = data.size.toLong() - crc = CRC32().let { crc -> - crc.update(data) - crc.value - } - } - - private fun compressed(name: String) = ZipEntry(name).apply { method = DEFLATED } - - private fun directoryOf(type: Class<*>) - = directory(type.`package`.name.toPathFormat + '/') - - private fun directory(name: String) = ZipEntry(name).apply { - method = STORED - compressedSize = 0 - size = 0 - crc = 0 - } - } - - private lateinit var _path: Path - val path: Path get() = _path - - override fun apply(base: Statement, description: Description): Statement { - return object : Statement() { - override fun evaluate() { - val manifest = Manifest().apply { - mainAttributes.also { main -> - main[MANIFEST_VERSION] = "1.0" - } - } - _path = projectDir.pathOf("$name.jar") - JarOutputStream(Files.newOutputStream(_path), manifest).use { jar -> - jar.setComment(testClass.name) - jar.setLevel(NO_COMPRESSION) - - // One directory entry (stored) - jar.putNextEntry(directoryOf(testClass)) - - // One compressed class file - jar.putNextEntry(compressed(testClass.resourceName)) - jar.write(testClass.bytecode) - - // One compressed non-class file - jar.putNextEntry(compressed("binary.dat")) - jar.write(arrayOfJunk(DATA_SIZE)) - - // One uncompressed text file - val text = """Jar: ${_path.toAbsolutePath()} -Class: ${testClass.name} -""".toByteArray() - jar.putNextEntry(uncompressed("comment.txt", text)) - jar.write(text) - } - assertThat(_path).isRegularFile() - - base.evaluate() - } - } - } -} \ No newline at end of file diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/EmptyPackage.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/EmptyPackage.kt deleted file mode 100644 index bbb76a8036..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/EmptyPackage.kt +++ /dev/null @@ -1,8 +0,0 @@ -@file:JvmName("EmptyPackage") -@file:Suppress("UNUSED") -package net.corda.gradle.jarfilter - -/* - * We need to put something in here so that Kotlin will create a class file. - */ -const val PLACEHOLDER = 0 diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/FieldElementTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/FieldElementTest.kt deleted file mode 100644 index 0d54ecba27..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/FieldElementTest.kt +++ /dev/null @@ -1,32 +0,0 @@ -package net.corda.gradle.jarfilter - -import org.junit.Assert.* -import org.junit.Test - -class FieldElementTest { - private companion object { - private const val DESCRIPTOR = "Ljava.lang.String;" - } - - @Test - fun testFieldsMatchByNameOnly() { - val elt = FieldElement(name = "fieldName", descriptor = DESCRIPTOR) - assertEquals(FieldElement(name = "fieldName"), elt) - } - - @Test - fun testFieldWithDescriptorDoesNotExpire() { - val elt = FieldElement(name = "fieldName", descriptor = DESCRIPTOR) - assertFalse(elt.isExpired) - assertFalse(elt.isExpired) - assertFalse(elt.isExpired) - } - - @Test - fun testFieldWithoutDescriptorDoesExpire() { - val elt = FieldElement(name = "fieldName") - assertFalse(elt.isExpired) - assertTrue(elt.isExpired) - assertTrue(elt.isExpired) - } -} \ No newline at end of file diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/FieldRemovalTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/FieldRemovalTest.kt deleted file mode 100644 index 9e99d4e470..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/FieldRemovalTest.kt +++ /dev/null @@ -1,212 +0,0 @@ -package net.corda.gradle.jarfilter - -import net.corda.gradle.jarfilter.annotations.Deletable -import net.corda.gradle.jarfilter.asm.bytecode -import net.corda.gradle.jarfilter.asm.toClass -import net.corda.gradle.jarfilter.matcher.isProperty -import org.gradle.api.logging.Logger -import org.hamcrest.core.IsCollectionContaining.hasItem -import org.hamcrest.core.IsEqual.equalTo -import org.hamcrest.core.IsNot.not -import org.junit.Assert.assertArrayEquals -import org.junit.Assert.assertThat -import org.junit.Test -import org.objectweb.asm.ClassWriter.COMPUTE_MAXS -import kotlin.reflect.full.declaredMemberProperties -import kotlin.reflect.jvm.jvmName -import kotlin.test.assertEquals -import kotlin.test.assertFailsWith -import kotlin.test.assertTrue - -/** - * Demonstrate that we can still instantiate objects, even after we've deleted - * one of their properties. (Check we haven't blown the constructor away!) - */ -class FieldRemovalTest { - companion object { - private val logger: Logger = StdOutLogging(FieldRemovalTest::class) - private const val SHORT_NUMBER = 999.toShort() - private const val BYTE_NUMBER = 99.toByte() - private const val BIG_FLOATING_POINT = 9999999.9999 - private const val FLOATING_POINT = 9999.99f - - private val objectField = isProperty(equalTo("objectField"), equalTo("T")) - private val longField = isProperty("longField", Long::class) - private val intField = isProperty("intField", Int::class) - private val shortField = isProperty("shortField", Short::class) - private val byteField = isProperty("byteField", Byte::class) - private val charField = isProperty("charField", Char::class) - private val booleanField = isProperty("booleanField", Boolean::class) - private val doubleField = isProperty("doubleField", Double::class) - private val floatField = isProperty("floatField", Float::class) - private val arrayField = isProperty("arrayField", ByteArray::class) - } - - private inline fun transform(): Class = transform(T::class.java, R::class.java) - - private fun transform(type: Class, asType: Class): Class { - val bytecode = type.bytecode.execute({ writer -> - FilterTransformer( - visitor = writer, - logger = logger, - removeAnnotations = emptySet(), - deleteAnnotations = setOf(Deletable::class.jvmName.descriptor), - stubAnnotations = emptySet(), - unwantedElements = UnwantedCache() - ) - }, COMPUTE_MAXS) - return bytecode.toClass(type, asType) - } - - @Test - fun removeObject() { - val sourceField = SampleGenericField(MESSAGE) - assertEquals(MESSAGE, sourceField.objectField) - assertThat("objectField not found", sourceField::class.declaredMemberProperties, hasItem(objectField)) - - val targetField = transform, HasGenericField>() - .getDeclaredConstructor(Any::class.java).newInstance(MESSAGE) - assertFailsWith { targetField.objectField } - assertFailsWith { targetField.objectField = "New Value" } - assertThat("objectField still exists", targetField::class.declaredMemberProperties, not(hasItem(objectField))) - } - - @Test - fun removeLong() { - val sourceField = SampleLongField(BIG_NUMBER) - assertEquals(BIG_NUMBER, sourceField.longField) - assertThat("longField not found", sourceField::class.declaredMemberProperties, hasItem(longField)) - - val targetField = transform() - .getDeclaredConstructor(Long::class.java).newInstance(BIG_NUMBER) - assertFailsWith { targetField.longField } - assertFailsWith { targetField.longField = 10L } - assertThat("longField still exists", targetField::class.declaredMemberProperties, not(hasItem(longField))) - } - - @Test - fun removeInt() { - val sourceField = SampleIntField(NUMBER) - assertEquals(NUMBER, sourceField.intField) - assertThat("intField not found", sourceField::class.declaredMemberProperties, hasItem(intField)) - - val targetField = transform() - .getDeclaredConstructor(Int::class.java).newInstance(NUMBER) - assertFailsWith { targetField.intField } - assertFailsWith { targetField.intField = 100 } - assertThat("intField still exists", targetField::class.declaredMemberProperties, not(hasItem(intField))) - } - - @Test - fun removeShort() { - val sourceField = SampleShortField(SHORT_NUMBER) - assertEquals(SHORT_NUMBER, sourceField.shortField) - assertThat("shortField not found", sourceField::class.declaredMemberProperties, hasItem(shortField)) - - val targetField = transform() - .getDeclaredConstructor(Short::class.java).newInstance(SHORT_NUMBER) - assertFailsWith { targetField.shortField } - assertFailsWith { targetField.shortField = 15 } - assertThat("shortField still exists", targetField::class.declaredMemberProperties, not(hasItem(shortField))) - } - - @Test - fun removeByte() { - val sourceField = SampleByteField(BYTE_NUMBER) - assertEquals(BYTE_NUMBER, sourceField.byteField) - assertThat("byteField not found", sourceField::class.declaredMemberProperties, hasItem(byteField)) - - val targetField = transform() - .getDeclaredConstructor(Byte::class.java).newInstance(BYTE_NUMBER) - assertFailsWith { targetField.byteField } - assertFailsWith { targetField.byteField = 16 } - assertThat("byteField still exists", targetField::class.declaredMemberProperties, not(hasItem(byteField))) - } - - @Test - fun removeBoolean() { - val sourceField = SampleBooleanField(true) - assertTrue(sourceField.booleanField) - assertThat("booleanField not found", sourceField::class.declaredMemberProperties, hasItem(booleanField)) - - val targetField = transform() - .getDeclaredConstructor(Boolean::class.java).newInstance(true) - assertFailsWith { targetField.booleanField } - assertFailsWith { targetField.booleanField = false } - assertThat("booleanField still exists", targetField::class.declaredMemberProperties, not(hasItem(booleanField))) - } - - @Test - fun removeChar() { - val sourceField = SampleCharField('?') - assertEquals('?', sourceField.charField) - assertThat("charField not found", sourceField::class.declaredMemberProperties, hasItem(charField)) - - val targetField = transform() - .getDeclaredConstructor(Char::class.java).newInstance('?') - assertFailsWith { targetField.charField } - assertFailsWith { targetField.charField = 'A' } - assertThat("charField still exists", targetField::class.declaredMemberProperties, not(hasItem(charField))) - } - - @Test - fun removeDouble() { - val sourceField = SampleDoubleField(BIG_FLOATING_POINT) - assertEquals(BIG_FLOATING_POINT, sourceField.doubleField) - assertThat("doubleField not found", sourceField::class.declaredMemberProperties, hasItem(doubleField)) - - val targetField = transform() - .getDeclaredConstructor(Double::class.java).newInstance(BIG_FLOATING_POINT) - assertFailsWith { targetField.doubleField } - assertFailsWith { targetField.doubleField = 12345.678 } - assertThat("doubleField still exists", targetField::class.declaredMemberProperties, not(hasItem(doubleField))) - } - - @Test - fun removeFloat() { - val sourceField = SampleFloatField(FLOATING_POINT) - assertEquals(FLOATING_POINT, sourceField.floatField) - assertThat("floatField not found", sourceField::class.declaredMemberProperties, hasItem(floatField)) - - val targetField = transform() - .getDeclaredConstructor(Float::class.java).newInstance(FLOATING_POINT) - assertFailsWith { targetField.floatField } - assertFailsWith { targetField.floatField = 123.45f } - assertThat("floatField still exists", targetField::class.declaredMemberProperties, not(hasItem(floatField))) - } - - @Test - fun removeArray() { - val sourceField = SampleArrayField(byteArrayOf()) - assertArrayEquals(byteArrayOf(), sourceField.arrayField) - assertThat("arrayField not found", sourceField::class.declaredMemberProperties, hasItem(arrayField)) - - val targetField = transform() - .getDeclaredConstructor(ByteArray::class.java).newInstance(byteArrayOf()) - assertFailsWith { targetField.arrayField } - assertFailsWith { targetField.arrayField = byteArrayOf(0x35, 0x73) } - assertThat("arrayField still exists", targetField::class.declaredMemberProperties, not(hasItem(arrayField))) - } -} - -interface HasGenericField { var objectField: T } -interface HasLongField { var longField: Long } -interface HasIntField { var intField: Int } -interface HasShortField { var shortField: Short } -interface HasByteField { var byteField: Byte } -interface HasBooleanField { var booleanField: Boolean } -interface HasCharField { var charField: Char } -interface HasFloatField { var floatField: Float } -interface HasDoubleField { var doubleField: Double } -interface HasArrayField { var arrayField: ByteArray } - -internal class SampleGenericField(@Deletable override var objectField: T) : HasGenericField -internal class SampleLongField(@Deletable override var longField: Long) : HasLongField -internal class SampleIntField(@Deletable override var intField: Int) : HasIntField -internal class SampleShortField(@Deletable override var shortField: Short) : HasShortField -internal class SampleByteField(@Deletable override var byteField: Byte) : HasByteField -internal class SampleBooleanField(@Deletable override var booleanField: Boolean) : HasBooleanField -internal class SampleCharField(@Deletable override var charField: Char) : HasCharField -internal class SampleFloatField(@Deletable override var floatField: Float) : HasFloatField -internal class SampleDoubleField(@Deletable override var doubleField: Double) : HasDoubleField -internal class SampleArrayField(@Deletable override var arrayField: ByteArray) : HasArrayField diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/InterfaceFunctionTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/InterfaceFunctionTest.kt deleted file mode 100644 index 452f26d140..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/InterfaceFunctionTest.kt +++ /dev/null @@ -1,61 +0,0 @@ -package net.corda.gradle.jarfilter - -import org.junit.Assert.* -import org.junit.ClassRule -import org.junit.Test -import org.junit.rules.RuleChain -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import java.lang.reflect.Modifier.* -import kotlin.test.assertFailsWith - -class InterfaceFunctionTest { - companion object { - private const val FUNCTION_CLASS = "net.corda.gradle.InterfaceFunctions" - - private val testProjectDir = TemporaryFolder() - private val testProject = JarFilterProject(testProjectDir, "interface-function") - - @ClassRule - @JvmField - val rules: TestRule = RuleChain - .outerRule(testProjectDir) - .around(testProject) - } - - @Test - fun deleteInterfaceFunction() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(FUNCTION_CLASS).apply { - getMethod("toDelete", Long::class.java).also { method -> - assertEquals(ABSTRACT, method.modifiers and ABSTRACT) - } - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(FUNCTION_CLASS).apply { - assertFailsWith { getMethod("toDelete", Long::class.java) } - } - } - } - - @Test - fun cannotStubInterfaceFunction() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(FUNCTION_CLASS).apply { - getMethod("toStubOut", Long::class.java).also { method -> - assertEquals(ABSTRACT, method.modifiers and ABSTRACT) - } - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(FUNCTION_CLASS).apply { - getMethod("toStubOut", Long::class.java).also { method -> - assertEquals(ABSTRACT, method.modifiers and ABSTRACT) - } - } - } - } -} diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/JarFilterConfigurationTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/JarFilterConfigurationTest.kt deleted file mode 100644 index 1e52fd4198..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/JarFilterConfigurationTest.kt +++ /dev/null @@ -1,272 +0,0 @@ -package net.corda.gradle.jarfilter - -import org.assertj.core.api.Assertions.* -import org.gradle.testkit.runner.BuildResult -import org.gradle.testkit.runner.BuildTask -import org.gradle.testkit.runner.GradleRunner -import org.gradle.testkit.runner.TaskOutcome.* -import org.junit.Assert.* -import org.junit.Before -import org.junit.Rule -import org.junit.Test -import org.junit.rules.TemporaryFolder - -class JarFilterConfigurationTest { - private companion object { - private const val AMBIGUOUS = "net.corda.gradle.jarfilter.Ambiguous" - private const val DELETE = "net.corda.gradle.jarfilter.DeleteMe" - private const val REMOVE = "net.corda.gradle.jarfilter.RemoveMe" - private const val STUB = "net.corda.gradle.jarfilter.StubMeOut" - } - - @Rule - @JvmField - val testProjectDir = TemporaryFolder() - - private lateinit var output: String - - @Before - fun setup() { - testProjectDir.installResource("gradle.properties") - } - - @Test - fun checkNoJarMeansNoSource() { - val result = gradleProject(""" -plugins { - id 'java' - id 'net.corda.plugins.jar-filter' -} - -import net.corda.gradle.jarfilter.JarFilterTask -task jarFilter(type: JarFilterTask) { - annotations { - forDelete = ["$DELETE"] - } -} -""").build() - output = result.output - println(output) - - val jarFilter = result.forTask("jarFilter") - assertEquals(NO_SOURCE, jarFilter.outcome) - } - - @Test - fun checkWithMissingJar() { - val result = gradleProject(""" -plugins { - id 'net.corda.plugins.jar-filter' -} - -import net.corda.gradle.jarfilter.JarFilterTask -task jarFilter(type: JarFilterTask) { - jars = file('does-not-exist.jar') -} -""").buildAndFail() - output = result.output - println(output) - - assertThat(output).containsSubsequence( - "Caused by: org.gradle.api.GradleException:", - "Caused by: java.io.FileNotFoundException:" - ) - - val jarFilter = result.forTask("jarFilter") - assertEquals(FAILED, jarFilter.outcome) - } - - @Test - fun checkSameAnnotationForRemoveAndDelete() { - val result = gradleProject(""" -plugins { - id 'java' - id 'net.corda.plugins.jar-filter' -} - -import net.corda.gradle.jarfilter.JarFilterTask -task jarFilter(type: JarFilterTask) { - jars = jar - annotations { - forDelete = ["$AMBIGUOUS"] - forRemove = ["$AMBIGUOUS"] - } -} -""").buildAndFail() - output = result.output - println(output) - - assertThat(output).containsSequence( - "Caused by: org.gradle.api.InvalidUserDataException: Annotation 'net.corda.gradle.jarfilter.Ambiguous' also appears in JarFilter 'forDelete' section" - ) - - val jarFilter = result.forTask("jarFilter") - assertEquals(FAILED, jarFilter.outcome) - } - - @Test - fun checkSameAnnotationForRemoveAndStub() { - val result = gradleProject(""" -plugins { - id 'java' - id 'net.corda.plugins.jar-filter' -} - -import net.corda.gradle.jarfilter.JarFilterTask -task jarFilter(type: JarFilterTask) { - jars = jar - annotations { - forStub = ["$AMBIGUOUS"] - forRemove = ["$AMBIGUOUS"] - } -} -""").buildAndFail() - output = result.output - println(output) - - assertThat(output).containsSequence( - "Caused by: org.gradle.api.InvalidUserDataException: Annotation 'net.corda.gradle.jarfilter.Ambiguous' also appears in JarFilter 'forStub' section" - ) - - val jarFilter = result.forTask("jarFilter") - assertEquals(FAILED, jarFilter.outcome) - } - - @Test - fun checkSameAnnotationForStubAndDelete() { - val result = gradleProject(""" -plugins { - id 'java' - id 'net.corda.plugins.jar-filter' -} - -import net.corda.gradle.jarfilter.JarFilterTask -task jarFilter(type: JarFilterTask) { - jars = jar - annotations { - forStub = ["$AMBIGUOUS"] - forDelete = ["$AMBIGUOUS"] - } -} -""").buildAndFail() - output = result.output - println(output) - - assertThat(output).containsSequence( - "Caused by: org.gradle.api.InvalidUserDataException: Annotation 'net.corda.gradle.jarfilter.Ambiguous' also appears in JarFilter 'forStub' section" - ) - - val jarFilter = result.forTask("jarFilter") - assertEquals(FAILED, jarFilter.outcome) - } - - @Test - fun checkSameAnnotationForStubAndDeleteAndRemove() { - val result = gradleProject(""" -plugins { - id 'java' - id 'net.corda.plugins.jar-filter' -} - -import net.corda.gradle.jarfilter.JarFilterTask -task jarFilter(type: JarFilterTask) { - jars = jar - annotations { - forStub = ["$AMBIGUOUS"] - forDelete = ["$AMBIGUOUS"] - forRemove = ["$AMBIGUOUS"] - } -} -""").buildAndFail() - output = result.output - println(output) - - assertThat(output).containsSequence( - "Caused by: org.gradle.api.InvalidUserDataException: Annotation 'net.corda.gradle.jarfilter.Ambiguous' also appears in JarFilter 'forDelete' section" - ) - - val jarFilter = result.forTask("jarFilter") - assertEquals(FAILED, jarFilter.outcome) - } - - @Test - fun checkRepeatedAnnotationForDelete() { - val result = gradleProject(""" -plugins { - id 'java' - id 'net.corda.plugins.jar-filter' -} - -import net.corda.gradle.jarfilter.JarFilterTask -task jarFilter(type: JarFilterTask) { - jars = jar - annotations { - forDelete = ["$DELETE", "$DELETE"] - } -} -""").build() - output = result.output - println(output) - - val jarFilter = result.forTask("jarFilter") - assertEquals(SUCCESS, jarFilter.outcome) - } - - @Test - fun checkRepeatedAnnotationForStub() { - val result = gradleProject(""" -plugins { - id 'java' - id 'net.corda.plugins.jar-filter' -} - -import net.corda.gradle.jarfilter.JarFilterTask -task jarFilter(type: JarFilterTask) { - jars = jar - annotations { - forStub = ["$STUB", "$STUB"] - } -} -""").build() - output = result.output - println(output) - - val jarFilter = result.forTask("jarFilter") - assertEquals(SUCCESS, jarFilter.outcome) - } - - @Test - fun checkRepeatedAnnotationForRemove() { - val result = gradleProject(""" -plugins { - id 'java' - id 'net.corda.plugins.jar-filter' -} - -import net.corda.gradle.jarfilter.JarFilterTask -task jarFilter(type: JarFilterTask) { - jars = jar - annotations { - forRemove = ["$REMOVE", "$REMOVE"] - } -} -""").build() - output = result.output - println(output) - - val jarFilter = result.forTask("jarFilter") - assertEquals(SUCCESS, jarFilter.outcome) - } - - private fun gradleProject(script: String): GradleRunner { - testProjectDir.newFile("build.gradle").writeText(script) - return GradleRunner.create() - .withProjectDir(testProjectDir.root) - .withArguments(getBasicArgsForTasks("jarFilter")) - .withPluginClasspath() - } - - private fun BuildResult.forTask(name: String): BuildTask { - return task(":$name") ?: throw AssertionError("No outcome for $name task") - } -} \ No newline at end of file diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/JarFilterProject.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/JarFilterProject.kt deleted file mode 100644 index 1a2e3cb128..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/JarFilterProject.kt +++ /dev/null @@ -1,56 +0,0 @@ -package net.corda.gradle.jarfilter - -import org.assertj.core.api.Assertions.* -import org.gradle.testkit.runner.GradleRunner -import org.gradle.testkit.runner.TaskOutcome.* -import org.junit.Assert.* -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import org.junit.runner.Description -import org.junit.runners.model.Statement -import java.io.FileNotFoundException -import java.nio.file.Path - -class JarFilterProject(private val projectDir: TemporaryFolder, private val name: String) : TestRule { - private var _sourceJar: Path? = null - val sourceJar: Path get() = _sourceJar ?: throw FileNotFoundException("Input not found") - - private var _filteredJar: Path? = null - val filteredJar: Path get() = _filteredJar ?: throw FileNotFoundException("Output not found") - - private var _output: String = "" - val output: String get() = _output - - override fun apply(statement: Statement, description: Description): Statement { - return object : Statement() { - override fun evaluate() { - projectDir.installResources( - "$name/build.gradle", - "repositories.gradle", - "gradle.properties", - "settings.gradle" - ) - - val result = GradleRunner.create() - .withProjectDir(projectDir.root) - .withArguments(getGradleArgsForTasks("jarFilter")) - .withPluginClasspath() - .build() - _output = result.output - println(output) - - val jarFilter = result.task(":jarFilter") - ?: throw AssertionError("No outcome for jarFilter task") - assertEquals(SUCCESS, jarFilter.outcome) - - _sourceJar = projectDir.pathOf("build", "libs", "$name.jar") - assertThat(sourceJar).isRegularFile() - - _filteredJar = projectDir.pathOf("build", "filtered-libs", "$name-filtered.jar") - assertThat(filteredJar).isRegularFile() - - statement.evaluate() - } - } - } -} diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/JarFilterTimestampTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/JarFilterTimestampTest.kt deleted file mode 100644 index d57aca4b65..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/JarFilterTimestampTest.kt +++ /dev/null @@ -1,107 +0,0 @@ -package net.corda.gradle.jarfilter - -import org.assertj.core.api.Assertions.* -import org.gradle.testkit.runner.GradleRunner -import org.gradle.testkit.runner.TaskOutcome.* -import org.junit.Assert.* -import org.junit.ClassRule -import org.junit.Test -import org.junit.rules.RuleChain -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import org.junit.runners.model.Statement -import java.nio.file.Path -import java.nio.file.attribute.FileTime -import java.util.* -import java.util.Calendar.FEBRUARY -import java.util.zip.ZipEntry -import java.util.zip.ZipFile - -class JarFilterTimestampTest { - companion object { - private val testProjectDir = TemporaryFolder() - private val sourceJar = DummyJar(testProjectDir, JarFilterTimestampTest::class.java, "timestamps") - - private val CONSTANT_TIME: FileTime = FileTime.fromMillis( - GregorianCalendar(1980, FEBRUARY, 1).apply { - timeZone = TimeZone.getTimeZone("UTC") - }.timeInMillis - ) - - private lateinit var filteredJar: Path - private lateinit var output: String - - @ClassRule - @JvmField - val rules: TestRule = RuleChain - .outerRule(testProjectDir) - .around(sourceJar) - .around(createTestProject()) - - private fun createTestProject() = TestRule { base, _ -> - object : Statement() { - override fun evaluate() { - testProjectDir.installResource("gradle.properties") - testProjectDir.newFile("build.gradle").writeText(""" -plugins { - id 'net.corda.plugins.jar-filter' -} - -import net.corda.gradle.jarfilter.JarFilterTask -task jarFilter(type: JarFilterTask) { - jars file("${sourceJar.path.toUri()}") - preserveTimestamps = false -} -""") - val result = GradleRunner.create() - .withProjectDir(testProjectDir.root) - .withArguments(getGradleArgsForTasks("jarFilter")) - .withPluginClasspath() - .build() - output = result.output - println(output) - - val metafix = result.task(":jarFilter") - ?: throw AssertionError("No outcome for jarFilter task") - assertEquals(SUCCESS, metafix.outcome) - - filteredJar = testProjectDir.pathOf("build", "filtered-libs", "timestamps-filtered.jar") - assertThat(filteredJar).isRegularFile() - - base.evaluate() - } - } - } - - private val ZipEntry.methodName: String get() = if (method == ZipEntry.STORED) "Stored" else "Deflated" - } - - @Test - fun fileTimestampsAreRemoved() { - var directoryCount = 0 - var classCount = 0 - var otherCount = 0 - - ZipFile(filteredJar.toFile()).use { jar -> - for (entry in jar.entries()) { - println("Entry: ${entry.name}") - println("- ${entry.methodName} (${entry.size} size / ${entry.compressedSize} compressed) bytes") - assertThat(entry.lastModifiedTime).isEqualTo(CONSTANT_TIME) - assertThat(entry.lastAccessTime).isNull() - assertThat(entry.creationTime).isNull() - - if (entry.isDirectory) { - ++directoryCount - } else if (entry.name.endsWith(".class")) { - ++classCount - } else { - ++otherCount - } - } - } - - assertThat(directoryCount).isGreaterThan(0) - assertThat(classCount).isGreaterThan(0) - assertThat(otherCount).isGreaterThan(0) - } -} \ No newline at end of file diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixAnnotationTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixAnnotationTest.kt deleted file mode 100644 index 1fdcc44e7e..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixAnnotationTest.kt +++ /dev/null @@ -1,47 +0,0 @@ -package net.corda.gradle.jarfilter - -import net.corda.gradle.jarfilter.asm.bytecode -import net.corda.gradle.jarfilter.asm.toClass -import net.corda.gradle.jarfilter.matcher.isConstructor -import org.gradle.api.logging.Logger -import org.hamcrest.core.IsCollectionContaining.* -import org.junit.Assert.* -import org.junit.Test - -class MetaFixAnnotationTest { - companion object { - private val logger: Logger = StdOutLogging(MetaFixAnnotationTest::class) - private val defaultCon = isConstructor( - returnType = SimpleAnnotation::class - ) - private val valueCon = isConstructor( - returnType = AnnotationWithValue::class, - parameters = *arrayOf(String::class) - ) - } - - @Test - fun testSimpleAnnotation() { - val sourceClass = SimpleAnnotation::class.java - assertThat("() not found", sourceClass.kotlin.constructors, hasItem(defaultCon)) - - // Rewrite the metadata according to the contents of the bytecode. - val fixedClass = sourceClass.bytecode.fixMetadata(logger, pathsOf(SimpleAnnotation::class)) - .toClass() - assertThat("() not found", fixedClass.kotlin.constructors, hasItem(defaultCon)) - } - - @Test - fun testAnnotationWithValue() { - val sourceClass = AnnotationWithValue::class.java - assertThat("(String) not found", sourceClass.kotlin.constructors, hasItem(valueCon)) - - // Rewrite the metadata according to the contents of the bytecode. - val fixedClass = sourceClass.bytecode.fixMetadata(logger, pathsOf(AnnotationWithValue::class)) - .toClass() - assertThat("(String) not found", fixedClass.kotlin.constructors, hasItem(valueCon)) - } -} - -annotation class AnnotationWithValue(val str: String) -annotation class SimpleAnnotation diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixConfigurationTests.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixConfigurationTests.kt deleted file mode 100644 index 84944f6a3f..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixConfigurationTests.kt +++ /dev/null @@ -1,79 +0,0 @@ -package net.corda.gradle.jarfilter - -import org.assertj.core.api.Assertions.* -import org.gradle.testkit.runner.BuildResult -import org.gradle.testkit.runner.BuildTask -import org.gradle.testkit.runner.GradleRunner -import org.gradle.testkit.runner.TaskOutcome.* -import org.junit.Assert.* -import org.junit.Before -import org.junit.Rule -import org.junit.Test -import org.junit.rules.TemporaryFolder - -class MetaFixConfigurationTests { - @Rule - @JvmField - val testProjectDir = TemporaryFolder() - - private lateinit var output: String - - @Before - fun setup() { - testProjectDir.installResource("gradle.properties") - } - - @Test - fun checkNoJarMeansNoSource() { - val result = gradleProject(""" -plugins { - id 'java' - id 'net.corda.plugins.jar-filter' -} - -import net.corda.gradle.jarfilter.MetaFixerTask -task metafix(type: MetaFixerTask) -""").build() - output = result.output - println(output) - - val metafix = result.forTask("metafix") - assertEquals(NO_SOURCE, metafix.outcome) - } - - @Test - fun checkWithMissingJar() { - val result = gradleProject(""" -plugins { - id 'net.corda.plugins.jar-filter' -} - -import net.corda.gradle.jarfilter.MetaFixerTask -task metafix(type: MetaFixerTask) { - jars = file('does-not-exist.jar') -} -""").buildAndFail() - output = result.output - println(output) - - assertThat(output).containsSubsequence( - "Caused by: org.gradle.api.GradleException:", - "Caused by: java.io.FileNotFoundException:" - ) - - val metafix = result.forTask("metafix") - assertEquals(FAILED, metafix.outcome) - } - - private fun gradleProject(script: String): GradleRunner { - testProjectDir.newFile("build.gradle").writeText(script) - return GradleRunner.create() - .withProjectDir(testProjectDir.root) - .withArguments(getBasicArgsForTasks("metafix")) - .withPluginClasspath() - } - - private fun BuildResult.forTask(name: String): BuildTask { - return task(":$name") ?: throw AssertionError("No outcome for $name task") - } -} \ No newline at end of file diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixConstructorDefaultParameterTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixConstructorDefaultParameterTest.kt deleted file mode 100644 index df36c6e08c..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixConstructorDefaultParameterTest.kt +++ /dev/null @@ -1,110 +0,0 @@ -package net.corda.gradle.jarfilter - -import net.corda.gradle.jarfilter.asm.recodeMetadataFor -import net.corda.gradle.jarfilter.asm.toClass -import net.corda.gradle.jarfilter.matcher.isConstructor -import net.corda.gradle.unwanted.HasAll -import org.assertj.core.api.Assertions.* -import org.gradle.api.logging.Logger -import org.hamcrest.core.IsCollectionContaining.* -import org.junit.Assert.* -import org.junit.BeforeClass -import org.junit.Test -import kotlin.reflect.full.primaryConstructor - -class MetaFixConstructorDefaultParameterTest { - companion object { - private val logger: Logger = StdOutLogging(MetaFixConstructorDefaultParameterTest::class) - private val primaryCon - = isConstructor(WithConstructorParameters::class, Long::class, Int::class, String::class) - private val secondaryCon - = isConstructor(WithConstructorParameters::class, Char::class, String::class) - - lateinit var sourceClass: Class - lateinit var fixedClass: Class - - @BeforeClass - @JvmStatic - fun setup() { - val bytecode = recodeMetadataFor() - sourceClass = bytecode.toClass() - fixedClass = bytecode.fixMetadata(logger, pathsOf(WithConstructorParameters::class)) - .toClass() - } - } - - @Test - fun `test source constructor has optional parameters`() { - with(sourceClass.kotlin.constructors) { - assertThat(size).isEqualTo(2) - assertThat("source primary constructor missing", this, hasItem(primaryCon)) - assertThat("source secondary constructor missing", this, hasItem(secondaryCon)) - } - - val sourcePrimary = sourceClass.kotlin.primaryConstructor - ?: throw AssertionError("source primary constructor missing") - sourcePrimary.call(BIG_NUMBER, NUMBER, MESSAGE).apply { - assertThat(longData()).isEqualTo(BIG_NUMBER) - assertThat(intData()).isEqualTo(NUMBER) - assertThat(stringData()).isEqualTo(MESSAGE) - } - - val sourceSecondary = sourceClass.kotlin.constructors.firstOrNull { it != sourcePrimary } - ?: throw AssertionError("source secondary constructor missing") - sourceSecondary.call('X', MESSAGE).apply { - assertThat(stringData()).isEqualTo("X$MESSAGE") - } - - assertTrue("All source parameters should have defaults", sourcePrimary.hasAllOptionalParameters) - } - - @Test - fun `test fixed constructors exist`() { - with(fixedClass.kotlin.constructors) { - assertThat(size).isEqualTo(2) - assertThat("fixed primary constructor missing", this, hasItem(primaryCon)) - assertThat("fixed secondary constructor missing", this, hasItem(secondaryCon)) - } - } - - @Test - fun `test fixed primary constructor has mandatory parameters`() { - val fixedPrimary = fixedClass.kotlin.primaryConstructor - ?: throw AssertionError("fixed primary constructor missing") - assertTrue("All fixed parameters should be mandatory", fixedPrimary.hasAllMandatoryParameters) - } - - @Test - fun `test fixed secondary constructor still has optional parameters`() { - val fixedSecondary = (fixedClass.kotlin.constructors - fixedClass.kotlin.primaryConstructor).firstOrNull() - ?: throw AssertionError("fixed secondary constructor missing") - assertTrue("Some fixed parameters should be optional", fixedSecondary.hasAnyOptionalParameters) - } - - class MetadataTemplate( - private val longData: Long = 0, - private val intData: Int = 0, - private val message: String = DEFAULT_MESSAGE - ) : HasAll { - @Suppress("UNUSED") - constructor(prefix: Char, message: String = DEFAULT_MESSAGE) : this(message = prefix + message) - - override fun longData(): Long = longData - override fun intData(): Int = intData - override fun stringData(): String = message - } -} - -class WithConstructorParameters( - private val longData: Long, - private val intData: Int, - private val message: String -) : HasAll { - @Suppress("UNUSED") - constructor(prefix: Char, message: String = DEFAULT_MESSAGE) : this(0, 0, prefix + message) - - override fun longData(): Long = longData - override fun intData(): Int = intData - override fun stringData(): String = message -} - diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixConstructorTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixConstructorTest.kt deleted file mode 100644 index 35630a82a3..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixConstructorTest.kt +++ /dev/null @@ -1,53 +0,0 @@ -package net.corda.gradle.jarfilter - -import net.corda.gradle.unwanted.* -import net.corda.gradle.jarfilter.asm.* -import net.corda.gradle.jarfilter.matcher.* -import org.gradle.api.logging.Logger -import org.hamcrest.core.IsCollectionContaining.hasItem -import org.hamcrest.core.IsNot.not -import org.junit.Assert.* -import org.junit.Test -import kotlin.jvm.kotlin - -class MetaFixConstructorTest { - companion object { - private val logger: Logger = StdOutLogging(MetaFixConstructorTest::class) - private val unwantedCon = isConstructor(WithConstructor::class, Int::class, Long::class) - private val wantedCon = isConstructor(WithConstructor::class, Long::class) - } - - @Test - fun testConstructorRemovedFromMetadata() { - val bytecode = recodeMetadataFor() - val sourceClass = bytecode.toClass() - - // Check that the unwanted constructor has been successfully - // added to the metadata, and that the class is valid. - val sourceObj = sourceClass.getDeclaredConstructor(Long::class.java).newInstance(BIG_NUMBER) - assertEquals(BIG_NUMBER, sourceObj.longData()) - with(sourceClass.kotlin.constructors) { - assertThat("(Int,Long) not found", this, hasItem(unwantedCon)) - assertThat("(Long) not found", this, hasItem(wantedCon)) - } - - // Rewrite the metadata according to the contents of the bytecode. - val fixedClass = bytecode.fixMetadata(logger, pathsOf(WithConstructor::class)).toClass() - val fixedObj = fixedClass.getDeclaredConstructor(Long::class.java).newInstance(BIG_NUMBER) - assertEquals(BIG_NUMBER, fixedObj.longData()) - with(fixedClass.kotlin.constructors) { - assertThat("(Int,Long) still exists", this, not(hasItem(unwantedCon))) - assertThat("(Long) not found", this, hasItem(wantedCon)) - } - } - - class MetadataTemplate(private val longData: Long) : HasLong { - @Suppress("UNUSED_PARAMETER", "UNUSED") - constructor(intData: Int, longData: Long) : this(longData) - override fun longData(): Long = longData - } -} - -class WithConstructor(private val longData: Long) : HasLong { - override fun longData(): Long = longData -} diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixFunctionDefaultParameterTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixFunctionDefaultParameterTest.kt deleted file mode 100644 index 65ed6a300f..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixFunctionDefaultParameterTest.kt +++ /dev/null @@ -1,96 +0,0 @@ -package net.corda.gradle.jarfilter - -import net.corda.gradle.jarfilter.asm.recodeMetadataFor -import net.corda.gradle.jarfilter.asm.toClass -import net.corda.gradle.jarfilter.matcher.isFunction -import org.assertj.core.api.Assertions.* -import org.gradle.api.logging.Logger -import org.hamcrest.core.IsCollectionContaining.* -import org.junit.Assert.* -import org.junit.BeforeClass -import org.junit.Test -import kotlin.reflect.KFunction -import kotlin.reflect.full.declaredFunctions - -class MetaFixFunctionDefaultParameterTest { - companion object { - private val logger: Logger = StdOutLogging(MetaFixFunctionDefaultParameterTest::class) - private val hasMandatoryParams - = isFunction("hasMandatoryParams", String::class, Long::class, Int::class, String::class) - private val hasOptionalParams - = isFunction("hasOptionalParams", String::class, String::class) - - lateinit var sourceClass: Class - lateinit var fixedClass: Class - - @BeforeClass - @JvmStatic - fun setup() { - val bytecode = recodeMetadataFor() - sourceClass = bytecode.toClass() - fixedClass = bytecode.fixMetadata(logger, pathsOf(WithFunctionParameters::class)) - .toClass() - } - } - - @Test - fun `test source functions have default parameters`() { - with(sourceClass.kotlin.declaredFunctions) { - assertThat(size).isEqualTo(2) - assertThat("source mandatory parameters missing", this, hasItem(hasMandatoryParams)) - assertThat("source optional parameters missing", this, hasItem(hasOptionalParams)) - } - - val sourceUnwanted = sourceClass.kotlin.declaredFunctions.findOrFail("hasMandatoryParams") - assertThat(sourceUnwanted.call(sourceClass.newInstance(), BIG_NUMBER, NUMBER, MESSAGE)) - .isEqualTo("Long: $BIG_NUMBER, Int: $NUMBER, String: $MESSAGE") - - assertTrue("All source parameters should be optional", sourceUnwanted.hasAllOptionalParameters) - - val sourceWanted = sourceClass.kotlin.declaredFunctions.findOrFail("hasOptionalParams") - assertThat(sourceWanted.call(sourceClass.newInstance(), MESSAGE)) - .isEqualTo(MESSAGE) - - assertTrue("All source parameters should be optional", sourceWanted.hasAllOptionalParameters) - } - - @Test - fun `test fixed functions exist`() { - with(fixedClass.kotlin.declaredFunctions) { - assertThat(size).isEqualTo(2) - assertThat("fixed mandatory parameters missing", this, hasItem(hasMandatoryParams)) - assertThat("fixed optional parameters missing", this, hasItem(hasOptionalParams)) - } - } - - @Test - fun `test unwanted default parameters are removed`() { - val fixedMandatory = fixedClass.kotlin.declaredFunctions.findOrFail("hasMandatoryParams") - assertTrue("All fixed parameters should be mandatory", fixedMandatory.hasAllMandatoryParameters) - } - - @Test - fun `test wanted default parameters are kept`() { - val fixedOptional = fixedClass.kotlin.declaredFunctions.findOrFail("hasOptionalParams") - assertTrue("All fixed parameters should be optional", fixedOptional.hasAllOptionalParameters) - } - - @Suppress("UNUSED") - abstract class MetadataTemplate { - abstract fun hasMandatoryParams(longData: Long = 0, intData: Int = 0, message: String = DEFAULT_MESSAGE): String - abstract fun hasOptionalParams(message: String = DEFAULT_MESSAGE): String - } - - private fun Iterable>.findOrFail(name: String): KFunction { - return find { it.name == name } ?: throw AssertionError("$name missing") - } -} - -@Suppress("UNUSED") -class WithFunctionParameters { - fun hasMandatoryParams(longData: Long, intData: Int, message: String): String { - return "Long: $longData, Int: $intData, String: $message" - } - - fun hasOptionalParams(message: String = DEFAULT_MESSAGE): String = message -} diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixFunctionTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixFunctionTest.kt deleted file mode 100644 index 1aad6b1929..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixFunctionTest.kt +++ /dev/null @@ -1,53 +0,0 @@ -package net.corda.gradle.jarfilter - -import net.corda.gradle.unwanted.* -import net.corda.gradle.jarfilter.asm.* -import net.corda.gradle.jarfilter.matcher.* -import org.gradle.api.logging.Logger -import org.hamcrest.core.IsCollectionContaining.hasItem -import org.hamcrest.core.IsNot.not -import org.junit.Assert.* -import org.junit.Test -import kotlin.jvm.kotlin -import kotlin.reflect.full.declaredFunctions - -class MetaFixFunctionTest { - companion object { - private val logger: Logger = StdOutLogging(MetaFixFunctionTest::class) - private val longData = isFunction("longData", Long::class) - private val unwantedFun = isFunction("unwantedFun", String::class, String::class) - } - - @Test - fun testFunctionRemovedFromMetadata() { - val bytecode = recodeMetadataFor() - val sourceClass = bytecode.toClass() - - // Check that the unwanted function has been successfully - // added to the metadata, and that the class is valid. - val sourceObj = sourceClass.newInstance() - assertEquals(BIG_NUMBER, sourceObj.longData()) - with(sourceClass.kotlin.declaredFunctions) { - assertThat("unwantedFun(String) not found", this, hasItem(unwantedFun)) - assertThat("longData not found", this, hasItem(longData)) - } - - // Rewrite the metadata according to the contents of the bytecode. - val fixedClass = bytecode.fixMetadata(logger, pathsOf(WithFunction::class)).toClass() - val fixedObj = fixedClass.newInstance() - assertEquals(BIG_NUMBER, fixedObj.longData()) - with(fixedClass.kotlin.declaredFunctions) { - assertThat("unwantedFun(String) still exists", this, not(hasItem(unwantedFun))) - assertThat("longData not found", this, hasItem(longData)) - } - } - - class MetadataTemplate : HasLong { - override fun longData(): Long = 0 - @Suppress("UNUSED") fun unwantedFun(str: String): String = "UNWANTED[$str]" - } -} - -class WithFunction : HasLong { - override fun longData(): Long = BIG_NUMBER -} diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixNestedClassTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixNestedClassTest.kt deleted file mode 100644 index d460e9c453..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixNestedClassTest.kt +++ /dev/null @@ -1,57 +0,0 @@ -package net.corda.gradle.jarfilter - -import net.corda.gradle.jarfilter.asm.* -import org.assertj.core.api.Assertions.* -import org.gradle.api.logging.Logger -import org.junit.Test -import kotlin.reflect.jvm.jvmName - -/** - * Kotlin reflection will attempt to validate the nested classes stored in the [kotlin.Metadata] - * annotation rather than just reporting what is there, which means that it can tell us nothing - * about what the MetaFixer task has done. - */ -class MetaFixNestedClassTest { - companion object { - private val logger: Logger = StdOutLogging(MetaFixNestedClassTest::class) - private val WANTED_CLASS: String = WithNestedClass.Wanted::class.jvmName - private val UNWANTED_CLASS: String = "${WithNestedClass::class.jvmName}\$Unwanted" - } - - @Test - fun testNestedClassRemovedFromMetadata() { - val bytecode = recodeMetadataFor() - val sourceClass = bytecode.toClass() - assertThat(sourceClass.classMetadata.nestedClasses).containsExactlyInAnyOrder(WANTED_CLASS, UNWANTED_CLASS) - - // Rewrite the metadata according to the contents of the bytecode. - val fixedClass = bytecode.fixMetadata(logger, pathsOf(WithNestedClass::class, WithNestedClass.Wanted::class)) - .toClass() - assertThat(fixedClass.classMetadata.nestedClasses).containsExactly(WANTED_CLASS) - } - - @Test - fun testAllNestedClassesRemovedFromMetadata() { - val bytecode = recodeMetadataFor() - val sourceClass = bytecode.toClass() - assertThat(sourceClass.classMetadata.nestedClasses) - .containsExactlyInAnyOrder("${WithoutNestedClass::class.jvmName}\$Wanted", "${WithoutNestedClass::class.jvmName}\$Unwanted") - - // Rewrite the metadata according to the contents of the bytecode. - val fixedClass = bytecode.fixMetadata(logger, pathsOf(WithoutNestedClass::class)) - .toClass() - assertThat(fixedClass.classMetadata.nestedClasses).isEmpty() - } - - @Suppress("UNUSED") - class MetadataTemplate { - class Wanted - class Unwanted - } -} - -class WithNestedClass { - class Wanted -} - -class WithoutNestedClass \ No newline at end of file diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixPackageDefaultParameterTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixPackageDefaultParameterTest.kt deleted file mode 100644 index 74bb986fac..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixPackageDefaultParameterTest.kt +++ /dev/null @@ -1,39 +0,0 @@ -package net.corda.gradle.jarfilter - -import net.corda.gradle.jarfilter.asm.metadataAs -import net.corda.gradle.jarfilter.asm.toClass -import org.gradle.api.logging.Logger -import org.junit.BeforeClass -import org.junit.Test -import kotlin.reflect.full.declaredFunctions -import kotlin.test.assertFailsWith - -/** - * These tests cannot actually "test" anything until Kotlin reflection - * supports package metadata. Until then, we can only execute the code - * paths to ensure they don't throw any exceptions. - */ -class MetaFixPackageDefaultParameterTest { - companion object { - private const val TEMPLATE_CLASS = "net.corda.gradle.jarfilter.template.PackageWithDefaultParameters" - private const val DEFAULT_PARAMETERS_CLASS = "net.corda.gradle.jarfilter.PackageWithDefaultParameters" - private val logger: Logger = StdOutLogging(MetaFixPackageDefaultParameterTest::class) - - lateinit var sourceClass: Class - lateinit var fixedClass: Class - - @BeforeClass - @JvmStatic - fun setup() { - val defaultParametersClass = Class.forName(DEFAULT_PARAMETERS_CLASS) - val bytecode = defaultParametersClass.metadataAs(Class.forName(TEMPLATE_CLASS)) - sourceClass = bytecode.toClass(defaultParametersClass, Any::class.java) - fixedClass = bytecode.fixMetadata(logger, setOf(DEFAULT_PARAMETERS_CLASS)).toClass(sourceClass, Any::class.java) - } - } - - @Test - fun `test package functions`() { - assertFailsWith { fixedClass.kotlin.declaredFunctions } - } -} diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixPackageTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixPackageTest.kt deleted file mode 100644 index 37948f219b..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixPackageTest.kt +++ /dev/null @@ -1,66 +0,0 @@ -@file:JvmName("PackageTemplate") -@file:Suppress("UNUSED") -package net.corda.gradle.jarfilter - -import net.corda.gradle.jarfilter.asm.* -import net.corda.gradle.jarfilter.matcher.* -import org.gradle.api.logging.Logger -import org.junit.BeforeClass -import org.junit.Test -import kotlin.jvm.kotlin -import kotlin.reflect.full.declaredFunctions -import kotlin.reflect.full.declaredMembers -import kotlin.test.assertFailsWith - -/** - * These tests cannot actually "test" anything until Kotlin reflection - * supports package metadata. Until then, we can only execute the code - * paths to ensure they don't throw any exceptions. - */ -class MetaFixPackageTest { - companion object { - private const val TEMPLATE_CLASS = "net.corda.gradle.jarfilter.PackageTemplate" - private const val EMPTY_CLASS = "net.corda.gradle.jarfilter.EmptyPackage" - private val logger: Logger = StdOutLogging(MetaFixPackageTest::class) - private val staticVal = isProperty("templateVal", Long::class) - private val staticVar = isProperty("templateVar", Int::class) - private val staticFun = isFunction("templateFun", String::class) - - private lateinit var sourceClass: Class - private lateinit var fixedClass: Class - - @BeforeClass - @JvmStatic - fun setup() { - val emptyClass = Class.forName(EMPTY_CLASS) - val bytecode = emptyClass.metadataAs(Class.forName(TEMPLATE_CLASS)) - sourceClass = bytecode.toClass(emptyClass, Any::class.java) - fixedClass = bytecode.fixMetadata(logger, setOf(EMPTY_CLASS)).toClass(sourceClass, Any::class.java) - } - } - - @Test - fun testPackageFunction() { - assertFailsWith { fixedClass.kotlin.declaredFunctions } - //assertThat("templateFun() not found", sourceClass.kotlin.declaredFunctions, hasItem(staticFun)) - //assertThat("templateFun() still exists", fixedClass.kotlin.declaredFunctions, not(hasItem(staticFun))) - } - - @Test - fun testPackageVal() { - assertFailsWith { fixedClass.kotlin.declaredMembers } - //assertThat("templateVal not found", sourceClass.kotlin.declaredMembers, hasItem(staticVal)) - //assertThat("templateVal still exists", fixedClass.kotlin.declaredMembers, not(hasItem(staticVal))) - } - - @Test - fun testPackageVar() { - assertFailsWith { fixedClass.kotlin.declaredMembers } - //assertThat("templateVar not found", sourceClass.kotlin.declaredMembers, hasItem(staticVar)) - //assertThat("templateVar still exists", fixedClass.kotlin.declaredMembers, not(hasItem(staticVar))) - } -} - -internal fun templateFun(): String = MESSAGE -internal const val templateVal: Long = BIG_NUMBER -internal var templateVar: Int = NUMBER \ No newline at end of file diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixProject.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixProject.kt deleted file mode 100644 index 3891f14aed..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixProject.kt +++ /dev/null @@ -1,57 +0,0 @@ -package net.corda.gradle.jarfilter - -import org.assertj.core.api.Assertions.* -import org.gradle.testkit.runner.GradleRunner -import org.gradle.testkit.runner.TaskOutcome.* -import org.junit.Assert.* -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import org.junit.runner.Description -import org.junit.runners.model.Statement -import java.io.FileNotFoundException -import java.nio.file.Path - -@Suppress("UNUSED") -class MetaFixProject(private val projectDir: TemporaryFolder, private val name: String) : TestRule { - private var _sourceJar: Path? = null - val sourceJar: Path get() = _sourceJar ?: throw FileNotFoundException("Input not found") - - private var _metafixedJar: Path? = null - val metafixedJar: Path get() = _metafixedJar ?: throw FileNotFoundException("Output not found") - - private var _output: String = "" - val output: String get() = _output - - override fun apply(base: Statement, description: Description): Statement { - return object : Statement() { - override fun evaluate() { - projectDir.installResources( - "$name/build.gradle", - "repositories.gradle", - "gradle.properties", - "settings.gradle" - ) - - val result = GradleRunner.create() - .withProjectDir(projectDir.root) - .withArguments(getGradleArgsForTasks("metafix")) - .withPluginClasspath() - .build() - _output = result.output - println(output) - - val metafix = result.task(":metafix") - ?: throw AssertionError("No outcome for metafix task") - assertEquals(SUCCESS, metafix.outcome) - - _sourceJar = projectDir.pathOf("build", "libs", "$name.jar") - assertThat(sourceJar).isRegularFile() - - _metafixedJar = projectDir.pathOf("build", "metafixer-libs", "$name-metafixed.jar") - assertThat(metafixedJar).isRegularFile() - - base.evaluate() - } - } - } -} diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixSealedClassTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixSealedClassTest.kt deleted file mode 100644 index 53ac03edb6..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixSealedClassTest.kt +++ /dev/null @@ -1,37 +0,0 @@ -package net.corda.gradle.jarfilter - -import net.corda.gradle.jarfilter.asm.* -import org.assertj.core.api.Assertions.* -import org.gradle.api.logging.Logger -import org.junit.Test -import kotlin.reflect.jvm.jvmName - -class MetaFixSealedClassTest { - companion object { - private val logger: Logger = StdOutLogging(MetaFixSealedClassTest::class) - private val UNWANTED_CLASS: String = "${MetaSealedClass::class.jvmName}\$Unwanted" - private val WANTED_CLASS: String = MetaSealedClass.Wanted::class.jvmName - } - - @Test - fun testSealedSubclassRemovedFromMetadata() { - val bytecode = recodeMetadataFor() - val sourceClass = bytecode.toClass() - assertThat(sourceClass.classMetadata.sealedSubclasses).containsExactlyInAnyOrder(UNWANTED_CLASS, WANTED_CLASS) - - // Rewrite the metadata according to the contents of the bytecode. - val fixedClass = bytecode.fixMetadata(logger, pathsOf(MetaSealedClass::class, MetaSealedClass.Wanted::class)) - .toClass() - assertThat(fixedClass.classMetadata.sealedSubclasses).containsExactly(WANTED_CLASS) - } - - @Suppress("UNUSED") - sealed class MetadataTemplate { - class Wanted : MetadataTemplate() - class Unwanted : MetadataTemplate() - } -} - -sealed class MetaSealedClass { - class Wanted : MetaSealedClass() -} diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixTimestampTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixTimestampTest.kt deleted file mode 100644 index f96b94558c..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixTimestampTest.kt +++ /dev/null @@ -1,108 +0,0 @@ -package net.corda.gradle.jarfilter - -import org.assertj.core.api.Assertions.* -import org.gradle.testkit.runner.GradleRunner -import org.gradle.testkit.runner.TaskOutcome.* -import org.junit.Assert.* -import org.junit.ClassRule -import org.junit.Test -import org.junit.rules.RuleChain -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import org.junit.runners.model.Statement -import java.nio.file.Path -import java.nio.file.attribute.FileTime -import java.util.* -import java.util.Calendar.FEBRUARY -import java.util.zip.ZipEntry -import java.util.zip.ZipEntry.* -import java.util.zip.ZipFile - -class MetaFixTimestampTest { - companion object { - private val testProjectDir = TemporaryFolder() - private val sourceJar = DummyJar(testProjectDir, MetaFixTimestampTest::class.java, "timestamps") - - private val CONSTANT_TIME: FileTime = FileTime.fromMillis( - GregorianCalendar(1980, FEBRUARY, 1).apply { - timeZone = TimeZone.getTimeZone("UTC") - }.timeInMillis - ) - - private lateinit var metafixedJar: Path - private lateinit var output: String - - @ClassRule - @JvmField - val rules: TestRule = RuleChain - .outerRule(testProjectDir) - .around(sourceJar) - .around(createTestProject()) - - private fun createTestProject() = TestRule { base, _ -> - object : Statement() { - override fun evaluate() { - testProjectDir.installResource("gradle.properties") - testProjectDir.newFile("build.gradle").writeText(""" -plugins { - id 'net.corda.plugins.jar-filter' -} - -import net.corda.gradle.jarfilter.MetaFixerTask -task metafix(type: MetaFixerTask) { - jars file("${sourceJar.path.toUri()}") - preserveTimestamps = false -} -""") - val result = GradleRunner.create() - .withProjectDir(testProjectDir.root) - .withArguments(getGradleArgsForTasks("metafix")) - .withPluginClasspath() - .build() - output = result.output - println(output) - - val metafix = result.task(":metafix") - ?: throw AssertionError("No outcome for metafix task") - assertEquals(SUCCESS, metafix.outcome) - - metafixedJar = testProjectDir.pathOf("build", "metafixer-libs", "timestamps-metafixed.jar") - assertThat(metafixedJar).isRegularFile() - - base.evaluate() - } - } - } - - private val ZipEntry.methodName: String get() = if (method == STORED) "Stored" else "Deflated" - } - - @Test - fun fileTimestampsAreRemoved() { - var directoryCount = 0 - var classCount = 0 - var otherCount = 0 - - ZipFile(metafixedJar.toFile()).use { jar -> - for (entry in jar.entries()) { - println("Entry: ${entry.name}") - println("- ${entry.methodName} (${entry.size} size / ${entry.compressedSize} compressed) bytes") - assertThat(entry.lastModifiedTime).isEqualTo(CONSTANT_TIME) - assertThat(entry.lastAccessTime).isNull() - assertThat(entry.creationTime).isNull() - - if (entry.isDirectory) { - ++directoryCount - } else if (entry.name.endsWith(".class")) { - ++classCount - } else { - ++otherCount - } - } - } - - assertThat(directoryCount).isGreaterThan(0) - assertThat(classCount).isGreaterThan(0) - assertThat(otherCount).isGreaterThan(0) - } -} diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixValPropertyTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixValPropertyTest.kt deleted file mode 100644 index cef1cb2a77..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixValPropertyTest.kt +++ /dev/null @@ -1,49 +0,0 @@ -package net.corda.gradle.jarfilter - -import net.corda.gradle.unwanted.* -import net.corda.gradle.jarfilter.asm.* -import net.corda.gradle.jarfilter.matcher.* -import org.gradle.api.logging.Logger -import org.hamcrest.core.IsCollectionContaining.hasItem -import org.hamcrest.core.IsNot.not -import org.junit.Assert.* -import org.junit.Test -import kotlin.jvm.kotlin -import kotlin.reflect.full.declaredMemberProperties - -class MetaFixValPropertyTest { - companion object { - private val logger: Logger = StdOutLogging(MetaFixValPropertyTest::class) - private val unwantedVal = isProperty("unwantedVal", String::class) - private val intVal = isProperty("intVal", Int::class) - } - - @Test - fun testPropertyRemovedFromMetadata() { - val bytecode = recodeMetadataFor() - val sourceClass = bytecode.toClass() - - // Check that the unwanted property has been successfully - // added to the metadata, and that the class is valid. - val sourceObj = sourceClass.newInstance() - assertEquals(NUMBER, sourceObj.intVal) - assertThat("unwantedVal not found", sourceClass.kotlin.declaredMemberProperties, hasItem(unwantedVal)) - assertThat("intVal not found", sourceClass.kotlin.declaredMemberProperties, hasItem(intVal)) - - // Rewrite the metadata according to the contents of the bytecode. - val fixedClass = bytecode.fixMetadata(logger, pathsOf(WithValProperty::class)).toClass() - val fixedObj = fixedClass.newInstance() - assertEquals(NUMBER, fixedObj.intVal) - assertThat("unwantedVal still exists", fixedClass.kotlin.declaredMemberProperties, not(hasItem(unwantedVal))) - assertThat("intVal not found", fixedClass.kotlin.declaredMemberProperties, hasItem(intVal)) - } - - class MetadataTemplate : HasIntVal { - override val intVal: Int = 0 - @Suppress("UNUSED") val unwantedVal: String = "UNWANTED" - } -} - -class WithValProperty : HasIntVal { - override val intVal: Int = NUMBER -} diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixVarPropertyTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixVarPropertyTest.kt deleted file mode 100644 index 9d904f610a..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MetaFixVarPropertyTest.kt +++ /dev/null @@ -1,49 +0,0 @@ -package net.corda.gradle.jarfilter - -import net.corda.gradle.unwanted.* -import net.corda.gradle.jarfilter.asm.* -import net.corda.gradle.jarfilter.matcher.* -import org.gradle.api.logging.Logger -import org.hamcrest.core.IsCollectionContaining.hasItem -import org.hamcrest.core.IsNot.not -import org.junit.Assert.* -import org.junit.Test -import kotlin.jvm.kotlin -import kotlin.reflect.full.declaredMemberProperties - -class MetaFixVarPropertyTest { - companion object { - private val logger: Logger = StdOutLogging(MetaFixVarPropertyTest::class) - private val unwantedVar = isProperty("unwantedVar", String::class) - private val intVar = isProperty("intVar", Int::class) - } - - @Test - fun testPropertyRemovedFromMetadata() { - val bytecode = recodeMetadataFor() - val sourceClass = bytecode.toClass() - - // Check that the unwanted property has been successfully - // added to the metadata, and that the class is valid. - val sourceObj = sourceClass.newInstance() - assertEquals(NUMBER, sourceObj.intVar) - assertThat("unwantedVar not found", sourceClass.kotlin.declaredMemberProperties, hasItem(unwantedVar)) - assertThat("intVar not found", sourceClass.kotlin.declaredMemberProperties, hasItem(intVar)) - - // Rewrite the metadata according to the contents of the bytecode. - val fixedClass = bytecode.fixMetadata(logger, pathsOf(WithVarProperty::class)).toClass() - val fixedObj = fixedClass.newInstance() - assertEquals(NUMBER, fixedObj.intVar) - assertThat("unwantedVar still exists", fixedClass.kotlin.declaredMemberProperties, not(hasItem(unwantedVar))) - assertThat("intVar not found", fixedClass.kotlin.declaredMemberProperties, hasItem(intVar)) - } - - class MetadataTemplate : HasIntVar { - override var intVar: Int = 0 - @Suppress("UNUSED") var unwantedVar: String = "UNWANTED" - } -} - -class WithVarProperty : HasIntVar { - override var intVar: Int = NUMBER -} diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MethodElementTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MethodElementTest.kt deleted file mode 100644 index bee8d58568..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/MethodElementTest.kt +++ /dev/null @@ -1,88 +0,0 @@ -package net.corda.gradle.jarfilter - -import org.junit.Assert.* -import org.junit.Test -import org.objectweb.asm.Opcodes.* - -class MethodElementTest { - private companion object { - private const val DESCRIPTOR = "()Ljava.lang.String;" - } - - @Test - fun testMethodsMatchByNameAndDescriptor() { - val elt = MethodElement( - name = "getThing", - descriptor = DESCRIPTOR, - access = ACC_PUBLIC or ACC_ABSTRACT or ACC_FINAL - ) - assertEquals(MethodElement(name="getThing", descriptor=DESCRIPTOR), elt) - assertNotEquals(MethodElement(name="getOther", descriptor=DESCRIPTOR), elt) - assertNotEquals(MethodElement(name="getThing", descriptor="()J"), elt) - } - - @Test - fun testBasicMethodVisibleName() { - val elt = MethodElement( - name = "getThing", - descriptor = DESCRIPTOR, - access = ACC_PUBLIC - ) - assertEquals("getThing", elt.visibleName) - } - - @Test - fun testMethodVisibleNameWithSuffix() { - val elt = MethodElement( - name = "getThing\$extra", - descriptor = DESCRIPTOR, - access = ACC_PUBLIC - ) - assertEquals("getThing", elt.visibleName) - } - - @Test - fun testSyntheticMethodSuffix() { - val elt = MethodElement( - name = "getThing\$extra", - descriptor = DESCRIPTOR, - access = ACC_PUBLIC or ACC_SYNTHETIC - ) - assertTrue(elt.isKotlinSynthetic("extra")) - assertFalse(elt.isKotlinSynthetic("something")) - assertTrue(elt.isKotlinSynthetic("extra", "something")) - } - - @Test - fun testPublicMethodSuffix() { - val elt = MethodElement( - name = "getThing\$extra", - descriptor = DESCRIPTOR, - access = ACC_PUBLIC - ) - assertFalse(elt.isKotlinSynthetic("extra")) - } - - @Test - fun testMethodDoesNotExpire() { - val elt = MethodElement( - name = "getThing\$extra", - descriptor = DESCRIPTOR, - access = ACC_PUBLIC - ) - assertFalse(elt.isExpired) - assertFalse(elt.isExpired) - assertFalse(elt.isExpired) - } - - @Test - fun testArtificialMethodDoesExpire() { - val elt = MethodElement( - name = "getThing\$extra", - descriptor = DESCRIPTOR - ) - assertFalse(elt.isExpired) - assertTrue(elt.isExpired) - assertTrue(elt.isExpired) - } -} \ No newline at end of file diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/PackageWithDefaultParameters.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/PackageWithDefaultParameters.kt deleted file mode 100644 index 8665cb17cd..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/PackageWithDefaultParameters.kt +++ /dev/null @@ -1,12 +0,0 @@ -@file:JvmName("PackageWithDefaultParameters") -@file:Suppress("UNUSED") -package net.corda.gradle.jarfilter - -/** - * Example package functions, one with default parameter values and one without. - * We will rewrite this class's metadata so that it expects both functions to - * have default parameter values, and then ask the [MetaFixerTask] to fix it. - */ -fun hasDefaultParameters(intData: Int=0, message: String=DEFAULT_MESSAGE): String = "$message: intData=$intData" - -fun hasMandatoryParameters(longData: Long, message: String): String = "$message: longData=$longData" diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/RemoveAnnotationsTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/RemoveAnnotationsTest.kt deleted file mode 100644 index ba074903c8..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/RemoveAnnotationsTest.kt +++ /dev/null @@ -1,176 +0,0 @@ -package net.corda.gradle.jarfilter - -import net.corda.gradle.unwanted.HasUnwantedFun -import net.corda.gradle.unwanted.HasUnwantedVal -import net.corda.gradle.unwanted.HasUnwantedVar -import org.junit.Assert.* -import org.junit.ClassRule -import org.junit.Test -import org.junit.rules.RuleChain -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule - -class RemoveAnnotationsTest { - companion object { - private const val ANNOTATED_CLASS = "net.corda.gradle.HasUnwantedAnnotations" - private const val REMOVE_ME_CLASS = "net.corda.gradle.jarfilter.RemoveMe" - - private val testProjectDir = TemporaryFolder() - private val testProject = JarFilterProject(testProjectDir, "remove-annotations") - - @ClassRule - @JvmField - val rules: TestRule = RuleChain - .outerRule(testProjectDir) - .around(testProject) - } - - @Test - fun deleteFromClass() { - classLoaderFor(testProject.sourceJar).use { cl -> - val removeMe = cl.load(REMOVE_ME_CLASS) - cl.load(ANNOTATED_CLASS).apply { - assertNotNull(getAnnotation(removeMe)) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - val removeMe = cl.load(REMOVE_ME_CLASS) - cl.load(ANNOTATED_CLASS).apply { - assertNull(getAnnotation(removeMe)) - } - } - } - - @Test - fun deleteFromDefaultConstructor() { - classLoaderFor(testProject.sourceJar).use { cl -> - val removeMe = cl.load(REMOVE_ME_CLASS) - cl.load(ANNOTATED_CLASS).apply { - getDeclaredConstructor().also { con -> - assertNotNull(con.getAnnotation(removeMe)) - } - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - val removeMe = cl.load(REMOVE_ME_CLASS) - cl.load(ANNOTATED_CLASS).apply { - getDeclaredConstructor().also { con -> - assertNull(con.getAnnotation(removeMe)) - } - } - } - } - - @Test - fun deleteFromPrimaryConstructor() { - classLoaderFor(testProject.sourceJar).use { cl -> - val removeMe = cl.load(REMOVE_ME_CLASS) - cl.load(ANNOTATED_CLASS).apply { - getDeclaredConstructor(Long::class.java, String::class.java).also { con -> - assertNotNull(con.getAnnotation(removeMe)) - } - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - val removeMe = cl.load(REMOVE_ME_CLASS) - cl.load(ANNOTATED_CLASS).apply { - getDeclaredConstructor(Long::class.java, String::class.java).also { con -> - assertNull(con.getAnnotation(removeMe)) - } - } - } - } - - @Test - fun deleteFromField() { - classLoaderFor(testProject.sourceJar).use { cl -> - val removeMe = cl.load(REMOVE_ME_CLASS) - cl.load(ANNOTATED_CLASS).apply { - getField("longField").also { field -> - assertNotNull(field.getAnnotation(removeMe)) - } - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - val removeMe = cl.load(REMOVE_ME_CLASS) - cl.load(ANNOTATED_CLASS).apply { - getField("longField").also { field -> - assertNull(field.getAnnotation(removeMe)) - } - } - } - } - - @Test - fun deleteFromMethod() { - classLoaderFor(testProject.sourceJar).use { cl -> - val removeMe = cl.load(REMOVE_ME_CLASS) - cl.load(ANNOTATED_CLASS).apply { - getMethod("unwantedFun", String::class.java).also { method -> - assertNotNull(method.getAnnotation(removeMe)) - } - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - val removeMe = cl.load(REMOVE_ME_CLASS) - cl.load(ANNOTATED_CLASS).apply { - getMethod("unwantedFun", String::class.java).also { method -> - assertNull(method.getAnnotation(removeMe)) - } - } - } - } - - @Test - fun deleteFromValProperty() { - classLoaderFor(testProject.sourceJar).use { cl -> - val removeMe = cl.load(REMOVE_ME_CLASS) - cl.load(ANNOTATED_CLASS).apply { - getMethod("getUnwantedVal").also { method -> - assertNotNull(method.getAnnotation(removeMe)) - } - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - val removeMe = cl.load(REMOVE_ME_CLASS) - cl.load(ANNOTATED_CLASS).apply { - getMethod("getUnwantedVal").also { method -> - assertNull(method.getAnnotation(removeMe)) - } - } - } - } - - @Test - fun deleteFromVarProperty() { - classLoaderFor(testProject.sourceJar).use { cl -> - val removeMe = cl.load(REMOVE_ME_CLASS) - cl.load(ANNOTATED_CLASS).apply { - getMethod("getUnwantedVar").also { method -> - assertNotNull(method.getAnnotation(removeMe)) - } - getMethod("setUnwantedVar", String::class.java).also { method -> - assertNotNull(method.getAnnotation(removeMe)) - } - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - val removeMe = cl.load(REMOVE_ME_CLASS) - cl.load(ANNOTATED_CLASS).apply { - getMethod("getUnwantedVar").also { method -> - assertNull(method.getAnnotation(removeMe)) - } - getMethod("setUnwantedVar", String::class.java).also { method -> - assertNull(method.getAnnotation(removeMe)) - } - } - } - } -} diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/SanitiseDeleteConstructorTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/SanitiseDeleteConstructorTest.kt deleted file mode 100644 index 2c8c442410..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/SanitiseDeleteConstructorTest.kt +++ /dev/null @@ -1,234 +0,0 @@ -package net.corda.gradle.jarfilter - -import net.corda.gradle.jarfilter.matcher.* -import net.corda.gradle.unwanted.HasInt -import net.corda.gradle.unwanted.HasLong -import net.corda.gradle.unwanted.HasString -import org.assertj.core.api.Assertions.* -import org.hamcrest.core.IsCollectionContaining.hasItem -import org.junit.Assert.* -import org.junit.ClassRule -import org.junit.Test -import org.junit.rules.RuleChain -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import kotlin.jvm.kotlin -import kotlin.reflect.full.primaryConstructor -import kotlin.test.assertFailsWith - -class SanitiseDeleteConstructorTest { - companion object { - private const val COMPLEX_CONSTRUCTOR_CLASS = "net.corda.gradle.HasOverloadedComplexConstructorToDelete" - private const val COUNT_INITIAL_OVERLOADED = 1 - private const val COUNT_INITIAL_MULTIPLE = 2 - private val testProjectDir = TemporaryFolder() - private val testProject = JarFilterProject(testProjectDir, "sanitise-delete-constructor") - - @ClassRule - @JvmField - val rules: TestRule = RuleChain - .outerRule(testProjectDir) - .around(testProject) - } - - @Test - fun deleteOverloadedLongConstructor() = checkClassWithLongParameter( - "net.corda.gradle.HasOverloadedLongConstructorToDelete", - COUNT_INITIAL_OVERLOADED - ) - - @Test - fun deleteMultipleLongConstructor() = checkClassWithLongParameter( - "net.corda.gradle.HasMultipleLongConstructorsToDelete", - COUNT_INITIAL_MULTIPLE - ) - - private fun checkClassWithLongParameter(longClass: String, initialCount: Int) { - val longConstructor = isConstructor(longClass, Long::class) - - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(longClass).apply { - getDeclaredConstructor(Long::class.java).newInstance(BIG_NUMBER).also { - assertEquals(BIG_NUMBER, it.longData()) - } - kotlin.constructors.apply { - assertThat("(J) not found", this, hasItem(longConstructor)) - assertEquals(initialCount, this.size) - } - val primary = kotlin.primaryConstructor ?: throw AssertionError("primary constructor missing") - assertThat(primary.call(BIG_NUMBER).longData()).isEqualTo(BIG_NUMBER) - - val noArg = kotlin.noArgConstructor ?: throw AssertionError("no-arg constructor missing") - assertThat(noArg.callBy(emptyMap()).longData()).isEqualTo(0) - assertThat(newInstance().longData()).isEqualTo(0) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(longClass).apply { - getDeclaredConstructor(Long::class.java).newInstance(BIG_NUMBER).also { - assertEquals(BIG_NUMBER, it.longData()) - } - kotlin.constructors.apply { - assertThat("(J) not found", this, hasItem(longConstructor)) - assertEquals(1, this.size) - } - val primary = kotlin.primaryConstructor ?: throw AssertionError("primary constructor missing") - assertThat(primary.call(BIG_NUMBER).longData()).isEqualTo(BIG_NUMBER) - - assertNull("no-arg constructor exists", kotlin.noArgConstructor) - assertFailsWith { getDeclaredConstructor() } - } - } - } - - @Test - fun deleteOverloadedIntConstructor() = checkClassWithIntParameter( - "net.corda.gradle.HasOverloadedIntConstructorToDelete", - COUNT_INITIAL_OVERLOADED - ) - - @Test - fun deleteMultipleIntConstructor() = checkClassWithIntParameter( - "net.corda.gradle.HasMultipleIntConstructorsToDelete", - COUNT_INITIAL_MULTIPLE - ) - - private fun checkClassWithIntParameter(intClass: String, initialCount: Int) { - val intConstructor = isConstructor(intClass, Int::class) - - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(intClass).apply { - getDeclaredConstructor(Int::class.java).newInstance(NUMBER).also { - assertEquals(NUMBER, it.intData()) - } - kotlin.constructors.apply { - assertThat("(I) not found", this, hasItem(intConstructor)) - assertEquals(initialCount, this.size) - } - val primary = kotlin.primaryConstructor ?: throw AssertionError("primary constructor missing") - assertThat(primary.call(NUMBER).intData()).isEqualTo(NUMBER) - - val noArg = kotlin.noArgConstructor ?: throw AssertionError("no-arg constructor missing") - assertThat(noArg.callBy(emptyMap()).intData()).isEqualTo(0) - assertThat(newInstance().intData()).isEqualTo(0) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(intClass).apply { - getDeclaredConstructor(Int::class.java).newInstance(NUMBER).also { - assertEquals(NUMBER, it.intData()) - } - kotlin.constructors.apply { - assertThat("(I) not found", this, hasItem(intConstructor)) - assertEquals(1, this.size) - } - val primary = kotlin.primaryConstructor ?: throw AssertionError("primary constructor missing") - assertThat(primary.call(NUMBER).intData()).isEqualTo(NUMBER) - - assertNull("no-arg constructor exists", kotlin.noArgConstructor) - assertFailsWith { getDeclaredConstructor() } - } - } - } - - @Test - fun deleteOverloadedStringConstructor() = checkClassWithStringParameter( - "net.corda.gradle.HasOverloadedStringConstructorToDelete", - COUNT_INITIAL_OVERLOADED - ) - - @Test - fun deleteMultipleStringConstructor() = checkClassWithStringParameter( - "net.corda.gradle.HasMultipleStringConstructorsToDelete", - COUNT_INITIAL_MULTIPLE - ) - - private fun checkClassWithStringParameter(stringClass: String, initialCount: Int) { - val stringConstructor = isConstructor(stringClass, String::class) - - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(stringClass).apply { - getDeclaredConstructor(String::class.java).newInstance(MESSAGE).also { - assertEquals(MESSAGE, it.stringData()) - } - kotlin.constructors.apply { - assertThat("(String) not found", this, hasItem(stringConstructor)) - assertEquals(initialCount, this.size) - } - val primary = kotlin.primaryConstructor ?: throw AssertionError("primary constructor missing") - assertThat(primary.call(MESSAGE).stringData()).isEqualTo(MESSAGE) - - val noArg = kotlin.noArgConstructor ?: throw AssertionError("no-arg constructor missing") - assertThat(noArg.callBy(emptyMap()).stringData()).isEqualTo(DEFAULT_MESSAGE) - assertThat(newInstance().stringData()).isEqualTo(DEFAULT_MESSAGE) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(stringClass).apply { - getDeclaredConstructor(String::class.java).newInstance(MESSAGE).also { - assertEquals(MESSAGE, it.stringData()) - } - kotlin.constructors.apply { - assertThat("(String) not found", this, hasItem(stringConstructor)) - assertEquals(1, this.size) - } - val primary = kotlin.primaryConstructor ?: throw AssertionError("primary constructor missing") - assertThat(primary.call(MESSAGE).stringData()).isEqualTo(MESSAGE) - - assertNull("no-arg constructor exists", kotlin.noArgConstructor) - assertFailsWith { getDeclaredConstructor() } - } - } - } - - @Test - fun deleteOverloadedComplexConstructor() { - val complexConstructor = isConstructor(COMPLEX_CONSTRUCTOR_CLASS, Int::class, String::class) - - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(COMPLEX_CONSTRUCTOR_CLASS).apply { - kotlin.constructors.apply { - assertThat("(Int,String) not found", this, hasItem(complexConstructor)) - assertEquals(1, this.size) - } - - val primary = kotlin.primaryConstructor ?: throw AssertionError("primary constructor missing") - primary.call(NUMBER, MESSAGE).also { complex -> - assertThat((complex as HasString).stringData()).isEqualTo(MESSAGE) - assertThat((complex as HasInt).intData()).isEqualTo(NUMBER) - } - - primary.callBy(mapOf(primary.parameters[1] to MESSAGE)).also { complex -> - assertThat((complex as HasString).stringData()).isEqualTo(MESSAGE) - assertThat((complex as HasInt).intData()).isEqualTo(0) - } - getDeclaredConstructor(String::class.java).newInstance(MESSAGE).also { complex -> - assertThat((complex as HasString).stringData()).isEqualTo(MESSAGE) - assertThat((complex as HasInt).intData()).isEqualTo(0) - } - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(COMPLEX_CONSTRUCTOR_CLASS).apply { - kotlin.constructors.apply { - assertThat("(Int,String) not found", this, hasItem(complexConstructor)) - assertEquals(1, this.size) - } - - val primary = kotlin.primaryConstructor ?: throw AssertionError("primary constructor missing") - primary.call(NUMBER, MESSAGE).also { complex -> - assertThat((complex as HasString).stringData()).isEqualTo(MESSAGE) - assertThat((complex as HasInt).intData()).isEqualTo(NUMBER) - } - - assertThat(assertFailsWith { primary.callBy(mapOf(primary.parameters[1] to MESSAGE)) }) - .hasMessageContaining("No argument provided for a required parameter") - assertFailsWith { getDeclaredConstructor(String::class.java) } - } - } - } -} \ No newline at end of file diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/SanitiseStubConstructorTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/SanitiseStubConstructorTest.kt deleted file mode 100644 index d0f55cb00b..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/SanitiseStubConstructorTest.kt +++ /dev/null @@ -1,250 +0,0 @@ -package net.corda.gradle.jarfilter - -import net.corda.gradle.jarfilter.matcher.* -import net.corda.gradle.unwanted.HasInt -import net.corda.gradle.unwanted.HasLong -import net.corda.gradle.unwanted.HasString -import org.assertj.core.api.Assertions.* -import org.hamcrest.core.IsCollectionContaining.hasItem -import org.junit.Assert.* -import org.junit.ClassRule -import org.junit.Test -import org.junit.rules.RuleChain -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import java.lang.reflect.InvocationTargetException -import kotlin.jvm.kotlin -import kotlin.reflect.full.primaryConstructor -import kotlin.test.assertFailsWith - -class SanitiseStubConstructorTest { - companion object { - private const val COMPLEX_CONSTRUCTOR_CLASS = "net.corda.gradle.HasOverloadedComplexConstructorToStub" - private const val COUNT_OVERLOADED = 1 - private const val COUNT_MULTIPLE = 2 - private val testProjectDir = TemporaryFolder() - private val testProject = JarFilterProject(testProjectDir, "sanitise-stub-constructor") - - @ClassRule - @JvmField - val rules: TestRule = RuleChain - .outerRule(testProjectDir) - .around(testProject) - } - - @Test - fun stubOverloadedLongConstructor() = checkClassWithLongParameter( - "net.corda.gradle.HasOverloadedLongConstructorToStub", - COUNT_OVERLOADED - ) - - @Test - fun stubMultipleLongConstructor() = checkClassWithLongParameter( - "net.corda.gradle.HasMultipleLongConstructorsToStub", - COUNT_MULTIPLE - ) - - private fun checkClassWithLongParameter(longClass: String, constructorCount: Int) { - val longConstructor = isConstructor(longClass, Long::class) - - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(longClass).apply { - getDeclaredConstructor(Long::class.java).newInstance(BIG_NUMBER).also { - assertEquals(BIG_NUMBER, it.longData()) - } - kotlin.constructors.apply { - assertThat("(J) not found", this, hasItem(longConstructor)) - assertEquals(constructorCount, this.size) - } - val primary = kotlin.primaryConstructor ?: throw AssertionError("primary constructor missing") - assertThat(primary.call(BIG_NUMBER).longData()).isEqualTo(BIG_NUMBER) - - val noArg = kotlin.noArgConstructor ?: throw AssertionError("no-arg constructor missing") - assertThat(noArg.callBy(emptyMap()).longData()).isEqualTo(0) - assertThat(newInstance().longData()).isEqualTo(0) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(longClass).apply { - getDeclaredConstructor(Long::class.java).newInstance(BIG_NUMBER).also { - assertEquals(BIG_NUMBER, it.longData()) - } - kotlin.constructors.apply { - assertThat("(J) not found", this, hasItem(longConstructor)) - assertEquals(constructorCount, this.size) - } - val primary = kotlin.primaryConstructor ?: throw AssertionError("primary constructor missing") - assertThat(primary.call(BIG_NUMBER).longData()).isEqualTo(BIG_NUMBER) - - val noArg = kotlin.noArgConstructor ?: throw AssertionError("no-arg constructor missing") - assertThat(assertFailsWith { noArg.callBy(emptyMap()) }.targetException) - .isInstanceOf(UnsupportedOperationException::class.java) - .hasMessage("Method has been deleted") - assertThat(assertFailsWith { newInstance() }) - .hasMessage("Method has been deleted") - } - } - } - - @Test - fun stubOverloadedIntConstructor() = checkClassWithIntParameter( - "net.corda.gradle.HasOverloadedIntConstructorToStub", - COUNT_OVERLOADED - ) - - @Test - fun stubMultipleIntConstructor() = checkClassWithIntParameter( - "net.corda.gradle.HasMultipleIntConstructorsToStub", - COUNT_MULTIPLE - ) - - private fun checkClassWithIntParameter(intClass: String, constructorCount: Int) { - val intConstructor = isConstructor(intClass, Int::class) - - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(intClass).apply { - getDeclaredConstructor(Int::class.java).newInstance(NUMBER).also { - assertEquals(NUMBER, it.intData()) - } - kotlin.constructors.apply { - assertThat("(I) not found", this, hasItem(intConstructor)) - assertEquals(constructorCount, this.size) - } - val primary = kotlin.primaryConstructor ?: throw AssertionError("primary constructor missing") - assertThat(primary.call(NUMBER).intData()).isEqualTo(NUMBER) - - val noArg = kotlin.noArgConstructor ?: throw AssertionError("no-arg constructor missing") - assertThat(noArg.callBy(emptyMap()).intData()).isEqualTo(0) - assertThat(newInstance().intData()).isEqualTo(0) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(intClass).apply { - getDeclaredConstructor(Int::class.java).newInstance(NUMBER).also { - assertEquals(NUMBER, it.intData()) - } - kotlin.constructors.apply { - assertThat("(I) not found", this, hasItem(intConstructor)) - assertEquals(constructorCount, this.size) - } - val primary = kotlin.primaryConstructor ?: throw AssertionError("primary constructor missing") - assertThat(primary.call(NUMBER).intData()).isEqualTo(NUMBER) - - val noArg = kotlin.noArgConstructor ?: throw AssertionError("no-arg constructor missing") - assertThat(assertFailsWith { noArg.callBy(emptyMap()) }.targetException) - .isInstanceOf(UnsupportedOperationException::class.java) - .hasMessage("Method has been deleted") - assertThat(assertFailsWith { newInstance() }) - .hasMessage("Method has been deleted") - } - } - } - - @Test - fun stubOverloadedStringConstructor() = checkClassWithStringParameter( - "net.corda.gradle.HasOverloadedStringConstructorToStub", - COUNT_OVERLOADED - ) - - @Test - fun stubMultipleStringConstructor() = checkClassWithStringParameter( - "net.corda.gradle.HasMultipleStringConstructorsToStub", - COUNT_MULTIPLE - ) - - private fun checkClassWithStringParameter(stringClass: String, constructorCount: Int) { - val stringConstructor = isConstructor(stringClass, String::class) - - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(stringClass).apply { - getDeclaredConstructor(String::class.java).newInstance(MESSAGE).also { - assertEquals(MESSAGE, it.stringData()) - } - kotlin.constructors.apply { - assertThat("(String) not found", this, hasItem(stringConstructor)) - assertEquals(constructorCount, this.size) - } - val primary = kotlin.primaryConstructor ?: throw AssertionError("primary constructor missing") - assertThat(primary.call(MESSAGE).stringData()).isEqualTo(MESSAGE) - - val noArg = kotlin.noArgConstructor ?: throw AssertionError("no-arg constructor missing") - assertThat(noArg.callBy(emptyMap()).stringData()).isEqualTo(DEFAULT_MESSAGE) - assertThat(newInstance().stringData()).isEqualTo(DEFAULT_MESSAGE) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(stringClass).apply { - getDeclaredConstructor(String::class.java).newInstance(MESSAGE).also { - assertEquals(MESSAGE, it.stringData()) - } - kotlin.constructors.apply { - assertThat("(String) not found", this, hasItem(stringConstructor)) - assertEquals(constructorCount, this.size) - } - val primary = kotlin.primaryConstructor ?: throw AssertionError("primary constructor missing") - assertThat(primary.call(MESSAGE).stringData()).isEqualTo(MESSAGE) - - val noArg = kotlin.noArgConstructor ?: throw AssertionError("no-arg constructor missing") - assertThat(assertFailsWith { noArg.callBy(emptyMap()) }.targetException) - .isInstanceOf(UnsupportedOperationException::class.java) - .hasMessage("Method has been deleted") - assertThat(assertFailsWith { newInstance() }) - .hasMessage("Method has been deleted") - } - } - } - - @Test - fun stubOverloadedComplexConstructor() { - val complexConstructor = isConstructor(COMPLEX_CONSTRUCTOR_CLASS, Int::class, String::class) - - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(COMPLEX_CONSTRUCTOR_CLASS).apply { - kotlin.constructors.apply { - assertThat("(Int,String) not found", this, hasItem(complexConstructor)) - assertEquals(1, this.size) - } - - val primary = kotlin.primaryConstructor ?: throw AssertionError("primary constructor missing") - primary.call(NUMBER, MESSAGE).also { complex -> - assertThat((complex as HasString).stringData()).isEqualTo(MESSAGE) - assertThat((complex as HasInt).intData()).isEqualTo(NUMBER) - } - - primary.callBy(mapOf(primary.parameters[1] to MESSAGE)).also { complex -> - assertThat((complex as HasString).stringData()).isEqualTo(MESSAGE) - assertThat((complex as HasInt).intData()).isEqualTo(0) - } - getDeclaredConstructor(String::class.java).newInstance(MESSAGE).also { complex -> - assertThat((complex as HasString).stringData()).isEqualTo(MESSAGE) - assertThat((complex as HasInt).intData()).isEqualTo(0) - } - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(COMPLEX_CONSTRUCTOR_CLASS).apply { - kotlin.constructors.apply { - assertThat("(Int,String) not found", this, hasItem(complexConstructor)) - assertEquals(1, this.size) - } - - val primary = kotlin.primaryConstructor ?: throw AssertionError("primary constructor missing") - primary.call(NUMBER, MESSAGE).also { complex -> - assertThat((complex as HasString).stringData()).isEqualTo(MESSAGE) - assertThat((complex as HasInt).intData()).isEqualTo(NUMBER) - } - - assertThat(assertFailsWith { primary.callBy(mapOf(primary.parameters[1] to MESSAGE)) }.targetException) - .isInstanceOf(kotlin.UnsupportedOperationException::class.java) - .hasMessage("Method has been deleted") - assertThat(assertFailsWith { getDeclaredConstructor(String::class.java).newInstance(MESSAGE) }.targetException) - .hasMessage("Method has been deleted") - } - } - } - -} diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/StaticFieldRemovalTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/StaticFieldRemovalTest.kt deleted file mode 100644 index e174ed147a..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/StaticFieldRemovalTest.kt +++ /dev/null @@ -1,102 +0,0 @@ -@file:JvmName("StaticFields") -@file:Suppress("UNUSED") -package net.corda.gradle.jarfilter - -import net.corda.gradle.jarfilter.annotations.Deletable -import net.corda.gradle.jarfilter.asm.bytecode -import net.corda.gradle.jarfilter.asm.toClass -import org.gradle.api.logging.Logger -import org.junit.Assert.* -import org.junit.BeforeClass -import org.junit.Test -import org.objectweb.asm.ClassWriter.COMPUTE_MAXS -import kotlin.reflect.jvm.jvmName -import kotlin.test.assertFailsWith - -/** - * Static properties are all initialised in the same block. - * Show that deleting some field references doesn't break the other - * properties' initialisation code. - */ -class StaticFieldRemovalTest { - companion object { - private val logger: Logger = StdOutLogging(StaticFieldRemovalTest::class) - private const val FIELD_CLASS = "net.corda.gradle.jarfilter.StaticFields" - - private lateinit var sourceClass: Class - private lateinit var targetClass: Class - - private fun transform(type: Class, asType: Class): Class { - val bytecode = type.bytecode.execute({ writer -> - FilterTransformer( - visitor = writer, - logger = logger, - removeAnnotations = emptySet(), - deleteAnnotations = setOf(Deletable::class.jvmName.descriptor), - stubAnnotations = emptySet(), - unwantedElements = UnwantedCache() - ) - }, COMPUTE_MAXS) - return bytecode.toClass(type, asType) - } - - @JvmStatic - @BeforeClass - fun setup() { - sourceClass = Class.forName(FIELD_CLASS) - targetClass = transform(sourceClass, Any::class.java) - } - } - - @Test - fun deleteStaticString() { - assertEquals("1", sourceClass.getDeclaredMethod("getStaticString").invoke(null)) - assertFailsWith { targetClass.getDeclaredMethod("getStaticString") } - } - - @Test - fun deleteStaticLong() { - assertEquals(2L, sourceClass.getDeclaredMethod("getStaticLong").invoke(null)) - assertFailsWith { targetClass.getDeclaredMethod("getStaticLong") } - } - - @Test - fun deleteStaticInt() { - assertEquals(3, sourceClass.getDeclaredMethod("getStaticInt").invoke(null)) - assertFailsWith { targetClass.getDeclaredMethod("getStaticInt") } - } - - @Test - fun deleteStaticShort() { - assertEquals(4.toShort(), sourceClass.getDeclaredMethod("getStaticShort").invoke(null)) - assertFailsWith { targetClass.getDeclaredMethod("getStaticShort") } - } - - @Test - fun deleteStaticByte() { - assertEquals(5.toByte(), sourceClass.getDeclaredMethod("getStaticByte").invoke(null)) - assertFailsWith { targetClass.getDeclaredMethod("getStaticByte") } - } - - @Test - fun deleteStaticChar() { - assertEquals(6.toChar(), sourceClass.getDeclaredMethod("getStaticChar").invoke(null)) - assertFailsWith { targetClass.getDeclaredMethod("getStaticChar") } - } - - @Test - fun checkSeedHasBeenIncremented() { - assertEquals(6, sourceClass.getDeclaredMethod("getStaticSeed").invoke(null)) - assertEquals(6, targetClass.getDeclaredMethod("getStaticSeed").invoke(null)) - } -} - -private var seed: Int = 0 -val staticSeed get() = seed - -@Deletable val staticString: String = (++seed).toString() -@Deletable val staticLong: Long = (++seed).toLong() -@Deletable val staticInt: Int = ++seed -@Deletable val staticShort: Short = (++seed).toShort() -@Deletable val staticByte: Byte = (++seed).toByte() -@Deletable val staticChar: Char = (++seed).toChar() diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/StdOutLogging.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/StdOutLogging.kt deleted file mode 100644 index 7cd785cf8f..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/StdOutLogging.kt +++ /dev/null @@ -1,262 +0,0 @@ -package net.corda.gradle.jarfilter - -import org.gradle.api.logging.LogLevel.* -import org.gradle.api.logging.LogLevel -import org.gradle.api.logging.Logger -import org.slf4j.Marker -import org.slf4j.helpers.MessageFormatter -import kotlin.reflect.KClass - -class StdOutLogging(private val name: String, private val threshold: LogLevel = INFO) : Logger { - constructor(clazz: KClass<*>) : this(clazz.java.simpleName) - - override fun getName(): String = name - - override fun isErrorEnabled(): Boolean = isEnabled(ERROR) - override fun isErrorEnabled(marker: Marker): Boolean = isEnabled(ERROR) - - override fun isWarnEnabled(): Boolean = isEnabled(WARN) - override fun isWarnEnabled(marker: Marker): Boolean = isEnabled(WARN) - - override fun isInfoEnabled(): Boolean = isEnabled(INFO) - override fun isInfoEnabled(marker: Marker): Boolean = isEnabled(INFO) - - override fun isDebugEnabled(): Boolean = isEnabled(DEBUG) - override fun isDebugEnabled(marker: Marker): Boolean = isEnabled(DEBUG) - - override fun isTraceEnabled(): Boolean = isEnabled(DEBUG) - override fun isTraceEnabled(marker: Marker): Boolean = isEnabled(DEBUG) - - override fun isQuietEnabled(): Boolean = isEnabled(QUIET) - - override fun isLifecycleEnabled(): Boolean = isEnabled(LIFECYCLE) - - override fun isEnabled(level: LogLevel): Boolean = threshold <= level - - override fun warn(msg: String) = log(WARN, msg) - override fun warn(msg: String, obj: Any?) = log(WARN, msg, obj) - override fun warn(msg: String, vararg objects: Any?) = log(WARN, msg, *objects) - override fun warn(msg: String, obj1: Any?, obj2: Any?) = log(WARN, msg, obj1, obj2) - override fun warn(msg: String, ex: Throwable) = log(WARN, msg, ex) - - override fun warn(marker: Marker, msg: String) { - if (isWarnEnabled(marker)) { - print(WARN, msg) - } - } - - override fun warn(marker: Marker, msg: String, obj: Any?) { - if (isWarnEnabled(marker)) { - print(WARN, msg, obj) - } - } - - override fun warn(marker: Marker, msg: String, obj1: Any?, obj2: Any?) { - if (isWarnEnabled(marker)) { - print(WARN, msg, obj1, obj2) - } - } - - override fun warn(marker: Marker, msg: String, vararg objects: Any?) { - if (isWarnEnabled(marker)) { - printAny(WARN, msg, *objects) - } - } - - override fun warn(marker: Marker, msg: String, ex: Throwable) { - if (isWarnEnabled(marker)) { - print(WARN, msg, ex) - } - } - - override fun info(message: String, vararg objects: Any?) = log(INFO, message, *objects) - override fun info(message: String) = log(INFO, message) - override fun info(message: String, obj: Any?) = log(INFO, message, obj) - override fun info(message: String, obj1: Any?, obj2: Any?) = log(INFO, message, obj1, obj2) - override fun info(message: String, ex: Throwable) = log(INFO, message, ex) - - override fun info(marker: Marker, msg: String) { - if (isInfoEnabled(marker)) { - print(INFO, msg) - } - } - - override fun info(marker: Marker, msg: String, obj: Any?) { - if (isInfoEnabled(marker)) { - print(INFO, msg, obj) - } - } - - override fun info(marker: Marker, msg: String, obj1: Any?, obj2: Any?) { - if (isInfoEnabled(marker)) { - print(INFO, msg, obj1, obj2) - } - } - - override fun info(marker: Marker, msg: String, vararg objects: Any?) { - if (isInfoEnabled(marker)) { - printAny(INFO, msg, *objects) - } - } - - override fun info(marker: Marker, msg: String, ex: Throwable) { - if (isInfoEnabled(marker)) { - print(INFO, msg, ex) - } - } - - override fun error(message: String) = log(ERROR, message) - override fun error(message: String, obj: Any?) = log(ERROR, message, obj) - override fun error(message: String, obj1: Any?, obj2: Any?) = log(ERROR, message, obj1, obj2) - override fun error(message: String, vararg objects: Any?) = log(ERROR, message, *objects) - override fun error(message: String, ex: Throwable) = log(ERROR, message, ex) - - override fun error(marker: Marker, msg: String) { - if (isErrorEnabled(marker)) { - print(ERROR, msg) - } - } - - override fun error(marker: Marker, msg: String, obj: Any?) { - if (isErrorEnabled(marker)) { - print(ERROR, msg, obj) - } - } - - override fun error(marker: Marker, msg: String, obj1: Any?, obj2: Any?) { - if (isErrorEnabled(marker)) { - print(ERROR, msg, obj1, obj2) - } - } - - override fun error(marker: Marker, msg: String, vararg objects: Any?) { - if (isErrorEnabled(marker)) { - printAny(ERROR, msg, *objects) - } - } - - override fun error(marker: Marker, msg: String, ex: Throwable) { - if (isErrorEnabled(marker)) { - print(ERROR, msg, ex) - } - } - - override fun log(level: LogLevel, message: String) { - if (isEnabled(level)) { - print(level, message) - } - } - - override fun log(level: LogLevel, message: String, vararg objects: Any?) { - if (isEnabled(level)) { - printAny(level, message, *objects) - } - } - - override fun log(level: LogLevel, message: String, ex: Throwable) { - if (isEnabled(level)) { - print(level, message, ex) - } - } - - override fun debug(message: String, vararg objects: Any?) = log(DEBUG, message, *objects) - override fun debug(message: String) = log(DEBUG, message) - override fun debug(message: String, obj: Any?) = log(DEBUG, message, obj) - override fun debug(message: String, obj1: Any?, obj2: Any?) = log(DEBUG, message, obj1, obj2) - override fun debug(message: String, ex: Throwable) = log(DEBUG, message, ex) - - override fun debug(marker: Marker, msg: String) { - if (isDebugEnabled(marker)) { - print(DEBUG, msg) - } - } - - override fun debug(marker: Marker, msg: String, obj: Any?) { - if (isDebugEnabled(marker)) { - print(DEBUG, msg, obj) - } - } - - override fun debug(marker: Marker, msg: String, obj1: Any?, obj2: Any?) { - if (isDebugEnabled(marker)) { - print(DEBUG, msg, obj1, obj2) - } - } - - override fun debug(marker: Marker, msg: String, vararg objects: Any?) { - if (isDebugEnabled(marker)) { - printAny(DEBUG, msg, *objects) - } - } - - override fun debug(marker: Marker, msg: String, ex: Throwable) { - if (isDebugEnabled(marker)) { - print(DEBUG, msg, ex) - } - } - - override fun lifecycle(message: String) = log(LIFECYCLE, message) - override fun lifecycle(message: String, vararg objects: Any?) = log(LIFECYCLE, message, *objects) - override fun lifecycle(message: String, ex: Throwable) = log(LIFECYCLE, message, ex) - - override fun quiet(message: String) = log(QUIET, message) - override fun quiet(message: String, vararg objects: Any?) = log(QUIET, message, *objects) - override fun quiet(message: String, ex: Throwable) = log(QUIET, message, ex) - - override fun trace(message: String) = debug(message) - override fun trace(message: String, obj: Any?) = debug(message, obj) - override fun trace(message: String, obj1: Any?, obj2: Any?) = debug(message, obj1, obj2) - override fun trace(message: String, vararg objects: Any?) = debug(message, *objects) - override fun trace(message: String, ex: Throwable) = debug(message, ex) - - override fun trace(marker: Marker, msg: String) { - if (isTraceEnabled(marker)) { - print(DEBUG, msg) - } - } - - override fun trace(marker: Marker, msg: String, obj: Any?) { - if (isTraceEnabled(marker)) { - print(DEBUG, msg, obj) - } - } - - override fun trace(marker: Marker, msg: String, obj1: Any?, obj2: Any?) { - if (isTraceEnabled(marker)) { - print(DEBUG, msg, obj1, obj2) - } - } - - override fun trace(marker: Marker, msg: String, vararg objects: Any?) { - if (isTraceEnabled(marker)) { - printAny(DEBUG, msg, *objects) - } - } - - override fun trace(marker: Marker, msg: String, ex: Throwable) { - if (isTraceEnabled) { - print(DEBUG, msg, ex) - } - } - - private fun print(level: LogLevel, message: String) { - println("$name - $level: $message") - } - - private fun print(level: LogLevel, message: String, ex: Throwable) { - print(level, message) - ex.printStackTrace(System.out) - } - - private fun print(level: LogLevel, message: String, obj: Any?) { - print(level, MessageFormatter.format(message, obj).message) - } - - private fun print(level: LogLevel, message: String, obj1: Any?, obj2: Any?) { - print(level, MessageFormatter.format(message, obj1, obj2).message) - } - - private fun printAny(level: LogLevel, message: String, vararg objects: Any?) { - print(level, MessageFormatter.arrayFormat(message, objects).message) - } -} \ No newline at end of file diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/StubConstructorTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/StubConstructorTest.kt deleted file mode 100644 index 56352be355..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/StubConstructorTest.kt +++ /dev/null @@ -1,160 +0,0 @@ -package net.corda.gradle.jarfilter - -import net.corda.gradle.unwanted.HasAll -import net.corda.gradle.unwanted.HasInt -import net.corda.gradle.unwanted.HasLong -import net.corda.gradle.unwanted.HasString -import org.assertj.core.api.Assertions.* -import org.junit.Assert.* -import org.junit.ClassRule -import org.junit.Test -import org.junit.rules.RuleChain -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import java.lang.reflect.InvocationTargetException -import kotlin.test.assertFailsWith - -class StubConstructorTest { - companion object { - private const val STRING_PRIMARY_CONSTRUCTOR_CLASS = "net.corda.gradle.PrimaryStringConstructorToStub" - private const val LONG_PRIMARY_CONSTRUCTOR_CLASS = "net.corda.gradle.PrimaryLongConstructorToStub" - private const val INT_PRIMARY_CONSTRUCTOR_CLASS = "net.corda.gradle.PrimaryIntConstructorToStub" - private const val SECONDARY_CONSTRUCTOR_CLASS = "net.corda.gradle.HasConstructorToStub" - - private val testProjectDir = TemporaryFolder() - private val testProject = JarFilterProject(testProjectDir, "stub-constructor") - - @ClassRule - @JvmField - val rules: TestRule = RuleChain - .outerRule(testProjectDir) - .around(testProject) - } - - @Test - fun stubConstructorWithLongParameter() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(SECONDARY_CONSTRUCTOR_CLASS).apply { - getDeclaredConstructor(Long::class.java).newInstance(BIG_NUMBER).also { obj -> - assertEquals(BIG_NUMBER, obj.longData()) - } - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(SECONDARY_CONSTRUCTOR_CLASS).apply { - getDeclaredConstructor(Long::class.java).also { - assertFailsWith { it.newInstance(BIG_NUMBER) }.targetException.also { ex -> - assertThat(ex) - .isInstanceOf(UnsupportedOperationException::class.java) - .hasMessage("Method has been deleted") - } - } - } - } - } - - @Test - fun stubConstructorWithStringParameter() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(SECONDARY_CONSTRUCTOR_CLASS).apply { - getDeclaredConstructor(String::class.java).newInstance(MESSAGE).also { obj -> - assertEquals(MESSAGE, obj.stringData()) - } - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(SECONDARY_CONSTRUCTOR_CLASS).apply { - getDeclaredConstructor(String::class.java).also { - assertFailsWith { it.newInstance(MESSAGE) }.targetException.also { ex -> - assertThat(ex) - .isInstanceOf(UnsupportedOperationException::class.java) - .hasMessage("Method has been deleted") - } - } - } - } - } - - @Test - fun showUnannotatedConstructorIsUnaffected() { - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(SECONDARY_CONSTRUCTOR_CLASS).apply { - getDeclaredConstructor(Int::class.java).newInstance(NUMBER).also { obj -> - assertEquals(NUMBER, obj.intData()) - assertEquals(NUMBER.toLong(), obj.longData()) - assertEquals("", obj.stringData()) - } - } - } - } - - @Test - fun stubPrimaryConstructorWithStringParameter() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(STRING_PRIMARY_CONSTRUCTOR_CLASS).apply { - getDeclaredConstructor(String::class.java).newInstance(MESSAGE).also { obj -> - assertEquals(MESSAGE, obj.stringData()) - } - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(STRING_PRIMARY_CONSTRUCTOR_CLASS).apply { - getDeclaredConstructor(String::class.java).also { - assertFailsWith { it.newInstance(MESSAGE) }.targetException.also { ex -> - assertThat(ex) - .isInstanceOf(UnsupportedOperationException::class.java) - .hasMessage("Method has been deleted") - } - } - } - } - } - - @Test - fun stubPrimaryConstructorWithLongParameter() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(LONG_PRIMARY_CONSTRUCTOR_CLASS).apply { - getDeclaredConstructor(Long::class.java).newInstance(BIG_NUMBER).also { obj -> - assertEquals(BIG_NUMBER, obj.longData()) - } - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(LONG_PRIMARY_CONSTRUCTOR_CLASS).apply { - getDeclaredConstructor(Long::class.java).also { - assertFailsWith { it.newInstance(BIG_NUMBER) }.targetException.also { ex -> - assertThat(ex) - .isInstanceOf(UnsupportedOperationException::class.java) - .hasMessage("Method has been deleted") - } - } - } - } - } - - @Test - fun stubPrimaryConstructorWithIntParameter() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(INT_PRIMARY_CONSTRUCTOR_CLASS).apply { - getDeclaredConstructor(Int::class.java).newInstance(NUMBER).also { obj -> - assertEquals(NUMBER, obj.intData()) - } - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(INT_PRIMARY_CONSTRUCTOR_CLASS).apply { - getDeclaredConstructor(Int::class.java).apply { - val error = assertFailsWith { newInstance(NUMBER) }.targetException - assertThat(error) - .isInstanceOf(UnsupportedOperationException::class.java) - .hasMessage("Method has been deleted") - } - } - } - } -} diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/StubFunctionOutTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/StubFunctionOutTest.kt deleted file mode 100644 index 333fa2ce56..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/StubFunctionOutTest.kt +++ /dev/null @@ -1,74 +0,0 @@ -package net.corda.gradle.jarfilter - -import net.corda.gradle.unwanted.HasUnwantedFun -import org.assertj.core.api.Assertions.* -import org.junit.Assert.* -import org.junit.ClassRule -import org.junit.Test -import org.junit.rules.RuleChain -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import javax.annotation.Resource -import kotlin.test.assertFailsWith - -class StubFunctionOutTest { - companion object { - private const val FUNCTION_CLASS = "net.corda.gradle.HasFunctionToStub" - private const val STUB_ME_OUT_ANNOTATION = "net.corda.gradle.jarfilter.StubMeOut" - private const val PARAMETER_ANNOTATION = "net.corda.gradle.Parameter" - - private val testProjectDir = TemporaryFolder() - private val testProject = JarFilterProject(testProjectDir, "stub-function") - - @ClassRule - @JvmField - val rules: TestRule = RuleChain - .outerRule(testProjectDir) - .around(testProject) - } - - @Test - fun stubFunction() { - classLoaderFor(testProject.sourceJar).use { cl -> - val stubMeOut = cl.load(STUB_ME_OUT_ANNOTATION) - val parameter = cl.load(PARAMETER_ANNOTATION) - - cl.load(FUNCTION_CLASS).apply { - newInstance().also { obj -> - assertEquals(MESSAGE, obj.unwantedFun(MESSAGE)) - } - getMethod("unwantedFun", String::class.java).also { method -> - assertTrue("StubMeOut annotation missing", method.isAnnotationPresent (stubMeOut)) - assertTrue("Resource annotation missing", method.isAnnotationPresent(Resource::class.java)) - method.parameterAnnotations.also { paramAnns -> - assertEquals(1, paramAnns.size) - assertThat(paramAnns[0]) - .hasOnlyOneElementSatisfying { a -> a.javaClass.isInstance(parameter) } - } - } - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - val stubMeOut = cl.load(STUB_ME_OUT_ANNOTATION) - val parameter = cl.load(PARAMETER_ANNOTATION) - - cl.load(FUNCTION_CLASS).apply { - newInstance().also { obj -> - assertFailsWith { obj.unwantedFun(MESSAGE) }.also { ex -> - assertEquals("Method has been deleted", ex.message) - } - } - getMethod("unwantedFun", String::class.java).also { method -> - assertFalse("StubMeOut annotation present", method.isAnnotationPresent(stubMeOut)) - assertTrue("Resource annotation missing", method.isAnnotationPresent(Resource::class.java)) - method.parameterAnnotations.also { paramAnns -> - assertEquals(1, paramAnns.size) - assertThat(paramAnns[0]) - .hasOnlyOneElementSatisfying { a -> a.javaClass.isInstance(parameter) } - } - } - } - } - } -} diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/StubStaticFunctionTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/StubStaticFunctionTest.kt deleted file mode 100644 index 79a7ed3b7c..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/StubStaticFunctionTest.kt +++ /dev/null @@ -1,127 +0,0 @@ -package net.corda.gradle.jarfilter - -import org.assertj.core.api.Assertions.* -import org.junit.ClassRule -import org.junit.Test -import org.junit.rules.RuleChain -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import java.lang.reflect.InvocationTargetException -import kotlin.test.* - -class StubStaticFunctionTest { - companion object { - private const val FUNCTION_CLASS = "net.corda.gradle.StaticFunctionsToStub" - - private val testProjectDir = TemporaryFolder() - private val testProject = JarFilterProject(testProjectDir, "stub-static-function") - - @ClassRule - @JvmField - val rules: TestRule = RuleChain - .outerRule(testProjectDir) - .around(testProject) - } - - @Test - fun stubStringFunction() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(FUNCTION_CLASS).apply { - getDeclaredMethod("unwantedStringToStub", String::class.java).also { method -> - method.invoke(null, MESSAGE).also { result -> - assertThat(result) - .isInstanceOf(String::class.java) - .isEqualTo(MESSAGE) - } - } - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(FUNCTION_CLASS).apply { - getDeclaredMethod("unwantedStringToStub", String::class.java).also { method -> - assertFailsWith { method.invoke(null, MESSAGE) }.targetException.also { ex -> - assertThat(ex) - .isInstanceOf(UnsupportedOperationException::class.java) - .hasMessage("Method has been deleted") - } - } - } - } - } - - @Test - fun stubLongFunction() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(FUNCTION_CLASS).apply { - getDeclaredMethod("unwantedLongToStub", Long::class.java).also { method -> - method.invoke(null, BIG_NUMBER).also { result -> - assertThat(result) - .isInstanceOf(Long::class.javaObjectType) - .isEqualTo(BIG_NUMBER) - } - } - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(FUNCTION_CLASS).apply { - getDeclaredMethod("unwantedLongToStub", Long::class.java).also { method -> - assertFailsWith { method.invoke(null, BIG_NUMBER) }.targetException.also { ex -> - assertThat(ex) - .isInstanceOf(UnsupportedOperationException::class.java) - .hasMessage("Method has been deleted") - } - } - } - } - } - - @Test - fun stubIntFunction() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(FUNCTION_CLASS).apply { - getDeclaredMethod("unwantedIntToStub", Int::class.java).also { method -> - method.invoke(null, NUMBER).also { result -> - assertThat(result) - .isInstanceOf(Int::class.javaObjectType) - .isEqualTo(NUMBER) - } - } - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(FUNCTION_CLASS).apply { - getDeclaredMethod("unwantedIntToStub", Int::class.java).also { method -> - assertFailsWith { method.invoke(null, NUMBER) }.targetException.also { ex -> - assertThat(ex) - .isInstanceOf(UnsupportedOperationException::class.java) - .hasMessage("Method has been deleted") - } - } - } - } - } - - @Test - fun stubVoidFunction() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(FUNCTION_CLASS).apply { - val staticSeed = getDeclaredMethod("getStaticSeed") - assertEquals(0, staticSeed.invoke(null)) - getDeclaredMethod("unwantedVoidToStub").invoke(null) - assertEquals(1, staticSeed.invoke(null)) - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(FUNCTION_CLASS).apply { - val staticSeed = getDeclaredMethod("getStaticSeed") - assertEquals(0, staticSeed.invoke(null)) - getDeclaredMethod("unwantedVoidToStub").invoke(null) - assertEquals(0, staticSeed.invoke(null)) - } - } - } -} diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/StubValPropertyTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/StubValPropertyTest.kt deleted file mode 100644 index fbc26f2211..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/StubValPropertyTest.kt +++ /dev/null @@ -1,46 +0,0 @@ -package net.corda.gradle.jarfilter - -import net.corda.gradle.unwanted.HasUnwantedVal -import org.junit.Assert.* -import org.junit.ClassRule -import org.junit.Test -import org.junit.rules.RuleChain -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import kotlin.test.assertFailsWith - -class StubValPropertyTest { - companion object { - private const val PROPERTY_CLASS = "net.corda.gradle.HasValPropertyForStub" - - private val testProjectDir = TemporaryFolder() - private val testProject = JarFilterProject(testProjectDir, "stub-val-property") - - @ClassRule - @JvmField - val rules: TestRule = RuleChain - .outerRule(testProjectDir) - .around(testProject) - } - - @Test - fun deleteGetter() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(PROPERTY_CLASS).apply { - getDeclaredConstructor(String::class.java).newInstance(MESSAGE).also { obj -> - assertEquals(MESSAGE, obj.unwantedVal) - } - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(PROPERTY_CLASS).apply { - getDeclaredConstructor(String::class.java).newInstance(MESSAGE).also { obj -> - assertFailsWith { obj.unwantedVal }.also { ex -> - assertEquals("Method has been deleted", ex.message) - } - } - } - } - } -} diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/StubVarPropertyTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/StubVarPropertyTest.kt deleted file mode 100644 index 4910e83d62..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/StubVarPropertyTest.kt +++ /dev/null @@ -1,70 +0,0 @@ -package net.corda.gradle.jarfilter - -import net.corda.gradle.unwanted.HasUnwantedVar -import org.junit.Assert.* -import org.junit.ClassRule -import org.junit.Test -import org.junit.rules.RuleChain -import org.junit.rules.TemporaryFolder -import org.junit.rules.TestRule -import kotlin.test.assertFailsWith - -class StubVarPropertyTest { - companion object { - private const val GETTER_CLASS = "net.corda.gradle.HasUnwantedGetForStub" - private const val SETTER_CLASS = "net.corda.gradle.HasUnwantedSetForStub" - - private val testProjectDir = TemporaryFolder() - private val testProject = JarFilterProject(testProjectDir, "stub-var-property") - - @ClassRule - @JvmField - val rules: TestRule = RuleChain - .outerRule(testProjectDir) - .around(testProject) - } - - @Test - fun deleteGetter() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(GETTER_CLASS).apply { - getDeclaredConstructor(String::class.java).newInstance(MESSAGE).also { obj -> - assertEquals(MESSAGE, obj.unwantedVar) - } - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(GETTER_CLASS).apply { - getDeclaredConstructor(String::class.java).newInstance(MESSAGE).also { obj -> - assertFailsWith { obj.unwantedVar }.also { ex -> - assertEquals("Method has been deleted", ex.message) - } - } - } - } - } - - @Test - fun deleteSetter() { - classLoaderFor(testProject.sourceJar).use { cl -> - cl.load(SETTER_CLASS).apply { - getConstructor(String::class.java).newInstance(DEFAULT_MESSAGE).also { obj -> - assertEquals(DEFAULT_MESSAGE, obj.unwantedVar) - obj.unwantedVar = MESSAGE - assertEquals(MESSAGE, obj.unwantedVar) - } - } - } - - classLoaderFor(testProject.filteredJar).use { cl -> - cl.load(SETTER_CLASS).apply { - getConstructor(String::class.java).newInstance(DEFAULT_MESSAGE).also { obj -> - assertEquals(DEFAULT_MESSAGE, obj.unwantedVar) - obj.unwantedVar = MESSAGE - assertEquals(DEFAULT_MESSAGE, obj.unwantedVar) - } - } - } - } -} \ No newline at end of file diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/UnwantedCacheTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/UnwantedCacheTest.kt deleted file mode 100644 index 53abf1de1b..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/UnwantedCacheTest.kt +++ /dev/null @@ -1,54 +0,0 @@ -package net.corda.gradle.jarfilter - -import org.junit.Assert.* -import org.junit.Before -import org.junit.Test - -class UnwantedCacheTest { - private companion object { - private const val CLASS_NAME = "org.testing.MyClass" - private const val LONG_ARG = "(J)V" - private const val NO_ARG = "()V" - } - - private lateinit var cache: UnwantedCache - - @Before - fun setup() { - cache = UnwantedCache() - } - - @Test - fun testEmptyCache() { - assertFalse(cache.containsClass(CLASS_NAME)) - assertFalse(cache.containsMethod(CLASS_NAME, null, null)) - assertFalse(cache.containsMethod(CLASS_NAME, "", NO_ARG)) - } - - @Test - fun testAddingClass() { - cache.addClass(CLASS_NAME) - assertTrue(cache.containsClass(CLASS_NAME)) - assertTrue(cache.containsMethod(CLASS_NAME, null, null)) - assertTrue(cache.containsMethod(CLASS_NAME, "", NO_ARG)) - } - - @Test - fun testAddingMethod() { - cache.addMethod(CLASS_NAME, MethodElement("", LONG_ARG)) - assertTrue(cache.containsMethod(CLASS_NAME, "", LONG_ARG)) - assertFalse(cache.containsMethod(CLASS_NAME, "", NO_ARG)) - assertFalse(cache.containsMethod(CLASS_NAME, "destroy", LONG_ARG)) - assertFalse(cache.containsMethod(CLASS_NAME, null, null)) - assertFalse(cache.containsMethod(CLASS_NAME, "nonsense", null)) - assertFalse(cache.containsClass(CLASS_NAME)) - } - - @Test - fun testAddingMethodFollowedByClass() { - cache.addMethod(CLASS_NAME, MethodElement("", LONG_ARG)) - cache.addClass(CLASS_NAME) - assertTrue(cache.containsMethod(CLASS_NAME, "", LONG_ARG)) - assertEquals(0, cache.classMethods.size) - } -} \ No newline at end of file diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/Utilities.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/Utilities.kt deleted file mode 100644 index 443d2a3ef0..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/Utilities.kt +++ /dev/null @@ -1,97 +0,0 @@ -@file:JvmName("Utilities") -package net.corda.gradle.jarfilter - -import org.junit.AssumptionViolatedException -import org.junit.rules.TemporaryFolder -import java.io.File -import java.io.IOException -import java.net.MalformedURLException -import java.net.URLClassLoader -import java.nio.file.StandardCopyOption.* -import java.nio.file.Files -import java.nio.file.Path -import java.nio.file.Paths -import java.util.stream.Collectors.* -import java.util.zip.ZipFile -import kotlin.reflect.KClass -import kotlin.reflect.KFunction -import kotlin.reflect.KParameter -import kotlin.reflect.full.valueParameters - -const val DEFAULT_MESSAGE = "" -const val MESSAGE = "Goodbye, Cruel World!" -const val NUMBER = 111 -const val BIG_NUMBER = 9999L - -private val classLoader: ClassLoader = object {}.javaClass.classLoader - -// The AssumptionViolatedException must be caught by the JUnit test runner, -// which means that it must not be thrown when this class loads. -private val testGradleUserHomeValue: String? = System.getProperty("test.gradle.user.home") -private val testGradleUserHome: String get() = testGradleUserHomeValue - ?: throw AssumptionViolatedException("System property 'test.gradle.user.home' not set.") - -fun getGradleArgsForTasks(vararg taskNames: String): MutableList = getBasicArgsForTasks(*taskNames).apply { add("--info") } -fun getBasicArgsForTasks(vararg taskNames: String): MutableList = mutableListOf(*taskNames, "--stacktrace", "-g", testGradleUserHome) - -@Throws(IOException::class) -fun copyResourceTo(resourceName: String, target: Path) { - classLoader.getResourceAsStream(resourceName).use { source -> - Files.copy(source, target, REPLACE_EXISTING) - } -} - -@Throws(IOException::class) -fun copyResourceTo(resourceName: String, target: File) = copyResourceTo(resourceName, target.toPath()) - -@Throws(IOException::class) -fun TemporaryFolder.installResources(vararg resourceNames: String) { - resourceNames.forEach { installResource(it) } -} - -@Throws(IOException::class) -fun TemporaryFolder.installResource(resourceName: String): File = newFile(resourceName.fileName).let { file -> - copyResourceTo(resourceName, file) - file -} - -private val String.fileName: String get() = substring(1 + lastIndexOf('/')) - -val String.toPackageFormat: String get() = replace('/', '.') -fun pathsOf(vararg types: KClass<*>): Set = types.map { it.java.name.toPathFormat }.toSet() - -fun TemporaryFolder.pathOf(vararg elements: String): Path = Paths.get(root.absolutePath, *elements) - -fun arrayOfJunk(size: Int) = ByteArray(size).apply { - for (i in 0 until size) { - this[i] = (i and 0xFF).toByte() - } -} - -val KFunction<*>.hasAnyOptionalParameters: Boolean - get() = valueParameters.any(KParameter::isOptional) - -val KFunction<*>.hasAllOptionalParameters: Boolean - get() = valueParameters.all(KParameter::isOptional) - -val KFunction<*>.hasAllMandatoryParameters: Boolean - get() = valueParameters.none(KParameter::isOptional) - -val KClass.noArgConstructor: KFunction? - get() = constructors.firstOrNull(KFunction<*>::hasAllOptionalParameters) - -@Throws(MalformedURLException::class) -fun classLoaderFor(jar: Path) = URLClassLoader(arrayOf(jar.toUri().toURL()), classLoader) - -@Suppress("UNCHECKED_CAST") -@Throws(ClassNotFoundException::class) -fun ClassLoader.load(className: String) - = Class.forName(className, true, this) as Class - -fun Path.getClassNames(prefix: String): List { - val resourcePrefix = prefix.toPathFormat - return ZipFile(toFile()).stream() - .filter { it.name.startsWith(resourcePrefix) && it.name.endsWith(".class") } - .map { it.name.removeSuffix(".class").toPackageFormat } - .collect(toList()) -} diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/UtilsTest.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/UtilsTest.kt deleted file mode 100644 index b65a31130a..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/UtilsTest.kt +++ /dev/null @@ -1,42 +0,0 @@ -package net.corda.gradle.jarfilter - -import org.assertj.core.api.Assertions.assertThat -import org.gradle.api.GradleException -import org.gradle.api.InvalidUserDataException -import org.junit.Test -import java.io.IOException -import kotlin.test.assertFailsWith - -class UtilsTest { - @Test - fun testRethrowingCheckedException() { - val ex = assertFailsWith { rethrowAsUncheckedException(IOException(MESSAGE)) } - assertThat(ex) - .hasMessage(MESSAGE) - .hasCauseExactlyInstanceOf(IOException::class.java) - } - - @Test - fun testRethrowingCheckExceptionWithoutMessage() { - val ex = assertFailsWith { rethrowAsUncheckedException(IOException()) } - assertThat(ex) - .hasMessage("") - .hasCauseExactlyInstanceOf(IOException::class.java) - } - - @Test - fun testRethrowingUncheckedException() { - val ex = assertFailsWith { rethrowAsUncheckedException(IllegalArgumentException(MESSAGE)) } - assertThat(ex) - .hasMessage(MESSAGE) - .hasNoCause() - } - - @Test - fun testRethrowingGradleException() { - val ex = assertFailsWith { rethrowAsUncheckedException(InvalidUserDataException(MESSAGE)) } - assertThat(ex) - .hasMessage(MESSAGE) - .hasNoCause() - } -} diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/annotations/Deletable.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/annotations/Deletable.kt deleted file mode 100644 index 3c9597c75c..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/annotations/Deletable.kt +++ /dev/null @@ -1,8 +0,0 @@ -package net.corda.gradle.jarfilter.annotations - -import kotlin.annotation.AnnotationRetention.BINARY -import kotlin.annotation.AnnotationTarget.PROPERTY - -@Retention(BINARY) -@Target(PROPERTY) -annotation class Deletable diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/asm/AsmTools.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/asm/AsmTools.kt deleted file mode 100644 index 4c488d9dec..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/asm/AsmTools.kt +++ /dev/null @@ -1,47 +0,0 @@ -@file:JvmName("AsmTools") -package net.corda.gradle.jarfilter.asm - -import net.corda.gradle.jarfilter.descriptor -import net.corda.gradle.jarfilter.toPathFormat -import org.objectweb.asm.ClassReader -import org.objectweb.asm.ClassVisitor -import org.objectweb.asm.ClassWriter -import org.objectweb.asm.ClassWriter.COMPUTE_MAXS -import java.io.ByteArrayInputStream -import java.io.InputStream - - -fun ByteArray.accept(visitor: (ClassVisitor) -> ClassVisitor): ByteArray { - return ClassWriter(COMPUTE_MAXS).let { writer -> - ClassReader(this).accept(visitor(writer), 0) - writer.toByteArray() - } -} - -private val String.resourceName: String get() = "$toPathFormat.class" -val Class<*>.resourceName get() = name.resourceName -val Class<*>.bytecode: ByteArray get() = classLoader.getResourceAsStream(resourceName).use { it.readBytes() } -val Class<*>.descriptor: String get() = name.descriptor - -/** - * Functions for converting bytecode into a "live" Java class. - */ -inline fun ByteArray.toClass(): Class = toClass(T::class.java, R::class.java) - -fun ByteArray.toClass(type: Class, asType: Class): Class - = BytecodeClassLoader(this, type.name, type.classLoader).createClass().asSubclass(asType) - -private class BytecodeClassLoader( - private val bytecode: ByteArray, - private val className: String, - parent: ClassLoader -) : ClassLoader(parent) { - internal fun createClass(): Class<*> { - return defineClass(className, bytecode, 0, bytecode.size).apply { resolveClass(this) } - } - - // Ensure that the class we create also honours Class<*>.bytecode (above). - override fun getResourceAsStream(name: String): InputStream? { - return if (name == className.resourceName) ByteArrayInputStream(bytecode) else super.getResourceAsStream(name) - } -} diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/asm/ClassMetadata.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/asm/ClassMetadata.kt deleted file mode 100644 index 313a562f05..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/asm/ClassMetadata.kt +++ /dev/null @@ -1,48 +0,0 @@ -package net.corda.gradle.jarfilter.asm - -import net.corda.gradle.jarfilter.MetadataTransformer -import net.corda.gradle.jarfilter.getClassInternalName -import net.corda.gradle.jarfilter.toPackageFormat -import net.corda.gradle.jarfilter.mutableList -import org.gradle.api.logging.Logger -import org.jetbrains.kotlin.metadata.ProtoBuf -import org.jetbrains.kotlin.metadata.deserialization.TypeTable - -internal class ClassMetadata( - logger: Logger, - d1: List, - d2: List -) : MetadataTransformer( - logger, - emptyList(), - emptyList(), - emptyList(), - emptyList(), - emptyList(), - {}, - d1, - d2, - ProtoBuf.Class::parseFrom -) { - override val typeTable = TypeTable(message.typeTable) - override val className = nameResolver.getClassInternalName(message.fqName) - override val nestedClassNames = mutableList(message.nestedClassNameList) - override val properties = mutableList(message.propertyList) - override val functions = mutableList(message.functionList) - override val constructors = mutableList(message.constructorList) - override val typeAliases = mutableList(message.typeAliasList) - override val sealedSubclassNames = mutableList(message.sealedSubclassFqNameList) - - override fun rebuild(): ProtoBuf.Class = message - - val sealedSubclasses: List = sealedSubclassNames.map { - // Transform "a/b/c/BaseName$SubclassName" -> "a.b.c.BaseName$SubclassName" - nameResolver.getClassInternalName(it).toPackageFormat }.toList() - - val nestedClasses: List - - init { - val internalClassName = className.toPackageFormat - nestedClasses = nestedClassNames.map { "$internalClassName\$${nameResolver.getClassInternalName(it)}" }.toList() - } -} diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/asm/FileMetadata.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/asm/FileMetadata.kt deleted file mode 100644 index f7636c810c..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/asm/FileMetadata.kt +++ /dev/null @@ -1,33 +0,0 @@ -package net.corda.gradle.jarfilter.asm - -import net.corda.gradle.jarfilter.MetadataTransformer -import net.corda.gradle.jarfilter.mutableList -import org.gradle.api.logging.Logger -import org.jetbrains.kotlin.metadata.ProtoBuf -import org.jetbrains.kotlin.metadata.deserialization.TypeTable - -internal class FileMetadata( - logger: Logger, - d1: List, - d2: List -) : MetadataTransformer( - logger, - emptyList(), - emptyList(), - emptyList(), - emptyList(), - emptyList(), - {}, - d1, - d2, - ProtoBuf.Package::parseFrom -) { - override val typeTable = TypeTable(message.typeTable) - override val properties = mutableList(message.propertyList) - override val functions = mutableList(message.functionList) - override val typeAliases = mutableList(message.typeAliasList) - - override fun rebuild(): ProtoBuf.Package = message - - val typeAliasNames: List = typeAliases.map { nameResolver.getString(it.name) }.toList() -} \ No newline at end of file diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/asm/MetadataTools.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/asm/MetadataTools.kt deleted file mode 100644 index 5526c5056d..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/asm/MetadataTools.kt +++ /dev/null @@ -1,86 +0,0 @@ -@file:JvmName("MetadataTools") -package net.corda.gradle.jarfilter.asm - -import net.corda.gradle.jarfilter.StdOutLogging -import org.jetbrains.kotlin.load.java.JvmAnnotationNames.* -import org.objectweb.asm.* -import org.objectweb.asm.Opcodes.ASM6 - -@Suppress("UNCHECKED_CAST") -private val metadataClass: Class - = object {}.javaClass.classLoader.loadClass("kotlin.Metadata") as Class - -/** - * Rewrite the bytecode for this class with the Kotlin @Metadata of another class. - */ -inline fun recodeMetadataFor(): ByteArray = T::class.java.metadataAs(X::class.java) - -fun Class.metadataAs(template: Class): ByteArray { - val metadata = template.readMetadata().let { m -> - val templateDescriptor = template.descriptor - val templatePrefix = templateDescriptor.dropLast(1) + '$' - val targetDescriptor = descriptor - val targetPrefix = targetDescriptor.dropLast(1) + '$' - Pair(m.first, m.second.map { s -> - when { - // Replace any references to the template class with the target class. - s == templateDescriptor -> targetDescriptor - s.startsWith(templatePrefix) -> targetPrefix + s.substring(templatePrefix.length) - else -> s - } - }.toList()) - } - return bytecode.accept { w -> MetadataWriter(metadata, w) } -} - -/** - * Kotlin reflection only supports classes atm, so use this to examine file metadata. - */ -internal val Class<*>.fileMetadata: FileMetadata get() { - val (d1, d2) = readMetadata() - return FileMetadata(StdOutLogging(kotlin), d1, d2) -} - -/** - * For accessing the parts of class metadata that Kotlin reflection cannot reach. - */ -internal val Class<*>.classMetadata: ClassMetadata get() { - val (d1, d2) = readMetadata() - return ClassMetadata(StdOutLogging(kotlin), d1, d2) -} - -private fun Class<*>.readMetadata(): Pair, List> { - val metadata = getAnnotation(metadataClass) - val d1 = metadataClass.getMethod(METADATA_DATA_FIELD_NAME) - val d2 = metadataClass.getMethod(METADATA_STRINGS_FIELD_NAME) - return Pair(d1.invoke(metadata).asList(), d2.invoke(metadata).asList()) -} - -@Suppress("UNCHECKED_CAST") -fun Any.asList(): List { - return (this as? Array)?.toList() ?: emptyList() -} - -private class MetadataWriter(metadata: Pair, List>, visitor: ClassVisitor) : ClassVisitor(ASM6, visitor) { - private val kotlinMetadata: MutableMap> = mutableMapOf( - METADATA_DATA_FIELD_NAME to metadata.first, - METADATA_STRINGS_FIELD_NAME to metadata.second - ) - - override fun visitAnnotation(descriptor: String, visible: Boolean): AnnotationVisitor? { - val av = super.visitAnnotation(descriptor, visible) ?: return null - return if (descriptor == METADATA_DESC) KotlinMetadataWriter(av) else av - } - - private inner class KotlinMetadataWriter(av: AnnotationVisitor) : AnnotationVisitor(api, av) { - override fun visitArray(name: String): AnnotationVisitor? { - val av = super.visitArray(name) - if (av != null) { - val data = kotlinMetadata.remove(name) ?: return av - data.forEach { av.visit(null, it) } - av.visitEnd() - } - return null - } - } -} diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/matcher/JavaMatchers.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/matcher/JavaMatchers.kt deleted file mode 100644 index 19dc03a3bf..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/matcher/JavaMatchers.kt +++ /dev/null @@ -1,81 +0,0 @@ -@file:JvmName("JavaMatchers") -package net.corda.gradle.jarfilter.matcher - -import org.hamcrest.Description -import org.hamcrest.DiagnosingMatcher -import org.hamcrest.Matcher -import org.hamcrest.core.IsEqual.* -import java.lang.reflect.Method -import kotlin.reflect.KClass - -fun isMethod(name: Matcher, returnType: Matcher>, vararg parameters: Matcher>): Matcher { - return MethodMatcher(name, returnType, *parameters) -} - -fun isMethod(name: String, returnType: Class<*>, vararg parameters: Class<*>): Matcher { - return isMethod(equalTo(name), equalTo(returnType), *parameters.toMatchers()) -} - -private fun Array>.toMatchers() = map(::equalTo).toTypedArray() - -val KClass<*>.javaDeclaredMethods: List get() = java.declaredMethods.toList() - -/** - * Matcher logic for a Java [Method] object. Also applicable to constructors. - */ -private class MethodMatcher( - private val name: Matcher, - private val returnType: Matcher>, - vararg parameters: Matcher> -) : DiagnosingMatcher() { - private val parameters = listOf(*parameters) - - override fun describeTo(description: Description) { - description.appendText("Method[name as ").appendDescriptionOf(name) - .appendText(", returnType as ").appendDescriptionOf(returnType) - .appendText(", parameters as '") - if (parameters.isNotEmpty()) { - val param = parameters.iterator() - description.appendValue(param.next()) - while (param.hasNext()) { - description.appendText(",").appendValue(param.next()) - } - } - description.appendText("']") - } - - override fun matches(obj: Any?, mismatch: Description): Boolean { - if (obj == null) { - mismatch.appendText("is null") - return false - } - - val method: Method = obj as? Method ?: return false - if (!name.matches(method.name)) { - mismatch.appendText("name is ").appendValue(method.name) - return false - } - method.returnType.apply { - if (!returnType.matches(this)) { - mismatch.appendText("returnType is ").appendValue(this.name) - return false - } - } - - if (method.parameterTypes.size != parameters.size) { - mismatch.appendText("number of parameters is ").appendValue(method.parameterTypes.size) - .appendText(", parameters=").appendValueList("[", ",", "]", method.parameterTypes) - return false - } - - var i = 0 - method.parameterTypes.forEach { param -> - if (!parameters[i].matches(param)) { - mismatch.appendText("parameter[").appendValue(i).appendText("] is ").appendValue(param) - return false - } - ++i - } - return true - } -} diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/matcher/KotlinMatchers.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/matcher/KotlinMatchers.kt deleted file mode 100644 index f5e0528927..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/matcher/KotlinMatchers.kt +++ /dev/null @@ -1,195 +0,0 @@ -@file:JvmName("KotlinMatchers") -package net.corda.gradle.jarfilter.matcher - -import org.hamcrest.Description -import org.hamcrest.DiagnosingMatcher -import org.hamcrest.Matcher -import org.hamcrest.core.IsEqual.equalTo -import kotlin.reflect.KClass -import kotlin.reflect.KFunction -import kotlin.reflect.KParameter -import kotlin.reflect.KProperty -import kotlin.reflect.full.valueParameters -import kotlin.reflect.jvm.jvmName - -fun isFunction(name: Matcher, returnType: Matcher, vararg parameters: Matcher): Matcher> { - return KFunctionMatcher(name, returnType, *parameters) -} - -fun isFunction(name: String, returnType: KClass<*>, vararg parameters: KClass<*>): Matcher> { - return isFunction(equalTo(name), matches(returnType), *parameters.toMatchers()) -} - -fun isConstructor(returnType: Matcher, vararg parameters: Matcher): Matcher> { - return KFunctionMatcher(equalTo(""), returnType, *parameters) -} - -fun isConstructor(returnType: KClass<*>, vararg parameters: KClass<*>): Matcher> { - return isConstructor(matches(returnType), *parameters.toMatchers()) -} - -fun isConstructor(returnType: String, vararg parameters: KClass<*>): Matcher> { - return isConstructor(equalTo(returnType), *parameters.toMatchers()) -} - -fun hasParam(type: Matcher): Matcher = KParameterMatcher(type) - -fun hasParam(type: KClass<*>): Matcher = hasParam(matches(type)) - -fun isProperty(name: String, type: KClass<*>): Matcher> = isProperty(equalTo(name), matches(type)) - -fun isProperty(name: Matcher, type: Matcher): Matcher> = KPropertyMatcher(name, type) - -fun isClass(name: String): Matcher> = KClassMatcher(equalTo(name)) - -fun matches(type: KClass<*>): Matcher = equalTo(type.qualifiedName) - -private fun Array>.toMatchers() = map(::hasParam).toTypedArray() - -/** - * Matcher logic for a Kotlin [KFunction] object. Also applicable to constructors. - */ -private class KFunctionMatcher( - private val name: Matcher, - private val returnType: Matcher, - vararg parameters: Matcher -) : DiagnosingMatcher>() { - private val parameters = listOf(*parameters) - - override fun describeTo(description: Description) { - description.appendText("KFunction[name as ").appendDescriptionOf(name) - .appendText(", returnType as ").appendDescriptionOf(returnType) - .appendText(", parameters as '") - if (parameters.isNotEmpty()) { - val param = parameters.iterator() - description.appendValue(param.next()) - while (param.hasNext()) { - description.appendText(",").appendValue(param.next()) - } - } - description.appendText("']") - } - - override fun matches(obj: Any?, mismatch: Description): Boolean { - if (obj == null) { - mismatch.appendText("is null") - return false - } - - val function: KFunction<*> = obj as? KFunction<*> ?: return false - if (!name.matches(function.name)) { - mismatch.appendText("name is ").appendValue(function.name) - return false - } - function.returnType.toString().apply { - if (!returnType.matches(this)) { - mismatch.appendText("returnType is ").appendValue(this) - return false - } - } - - if (function.valueParameters.size != parameters.size) { - mismatch.appendText("number of parameters is ").appendValue(function.valueParameters.size) - .appendText(", parameters=").appendValueList("[", ",", "]", function.valueParameters) - return false - } - - var i = 0 - function.valueParameters.forEach { param -> - if (!parameters[i].matches(param)) { - mismatch.appendText("parameter[").appendValue(i).appendText("] is ").appendValue(param) - return false - } - ++i - } - return true - } -} - -/** - * Matcher logic for a Kotlin [KParameter] object. - */ -private class KParameterMatcher( - private val type: Matcher -) : DiagnosingMatcher() { - override fun describeTo(description: Description) { - description.appendText("KParameter[type as ").appendDescriptionOf(type) - .appendText("]") - } - - override fun matches(obj: Any?, mismatch: Description): Boolean { - if (obj == null) { - mismatch.appendText("is null") - return false - } - - val parameter: KParameter = obj as? KParameter ?: return false - parameter.type.toString().apply { - if (!type.matches(this)) { - mismatch.appendText("type is ").appendValue(this) - return false - } - } - return true - } -} - -/** - * Matcher logic for a Kotlin [KProperty] object. - */ -private class KPropertyMatcher( - private val name: Matcher, - private val type: Matcher -) : DiagnosingMatcher>() { - override fun describeTo(description: Description) { - description.appendText("KProperty[name as ").appendDescriptionOf(name) - .appendText(", type as ").appendDescriptionOf(type) - .appendText("]") - } - - override fun matches(obj: Any?, mismatch: Description): Boolean { - if (obj == null) { - mismatch.appendText("is null") - return false - } - - val property: KProperty<*> = obj as? KProperty<*> ?: return false - if (!name.matches(property.name)) { - mismatch.appendText("name is ").appendValue(property.name) - return false - } - property.returnType.toString().apply { - if (!type.matches(this)) { - mismatch.appendText("type is ").appendValue(this) - return false - } - } - return true - } -} - -/** - * Matcher logic for a Kotlin [KClass] object. - */ -private class KClassMatcher(private val className: Matcher) : DiagnosingMatcher>() { - override fun describeTo(description: Description) { - description.appendText("KClass[name as ").appendDescriptionOf(className) - .appendText("]") - } - - override fun matches(obj: Any?, mismatch: Description): Boolean { - if (obj == null) { - mismatch.appendText("is null") - return false - } - - val type: KClass<*> = obj as? KClass<*> ?: return false - type.jvmName.apply { - if (!className.matches(this)) { - mismatch.appendText("name is ").appendValue(this) - return false - } - } - return true - } -} \ No newline at end of file diff --git a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/template/PackageWithDefaultParameters.kt b/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/template/PackageWithDefaultParameters.kt deleted file mode 100644 index 186c1eb634..0000000000 --- a/buildSrc/jarfilter/src/test/kotlin/net/corda/gradle/jarfilter/template/PackageWithDefaultParameters.kt +++ /dev/null @@ -1,9 +0,0 @@ -@file:JvmName("PackageWithDefaultParameters") -@file:Suppress("UNUSED") -package net.corda.gradle.jarfilter.template - -import net.corda.gradle.jarfilter.DEFAULT_MESSAGE - -fun hasDefaultParameters(intData: Int=0, message: String=DEFAULT_MESSAGE): String = "$message: intData=$intData" - -fun hasMandatoryParameters(longData: Long=0, message: String=DEFAULT_MESSAGE): String = "$message: longData=$longData" diff --git a/buildSrc/jarfilter/src/test/resources/abstract-function/build.gradle b/buildSrc/jarfilter/src/test/resources/abstract-function/build.gradle deleted file mode 100644 index c67c80b303..0000000000 --- a/buildSrc/jarfilter/src/test/resources/abstract-function/build.gradle +++ /dev/null @@ -1,34 +0,0 @@ -plugins { - id 'org.jetbrains.kotlin.jvm' version '$kotlin_version' - id 'net.corda.plugins.jar-filter' -} -apply from: 'repositories.gradle' - -sourceSets { - main { - kotlin { - srcDir files( - '../resources/test/abstract-function/kotlin', - '../resources/test/annotations/kotlin' - ) - } - } -} - -dependencies { - compile 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' - compileOnly files('../../unwanteds/build/libs/unwanteds.jar') -} - -jar { - baseName = 'abstract-function' -} - -import net.corda.gradle.jarfilter.JarFilterTask -task jarFilter(type: JarFilterTask) { - jars jar - annotations { - forDelete = ["net.corda.gradle.jarfilter.DeleteMe"] - forStub = ["net.corda.gradle.jarfilter.StubMeOut"] - } -} diff --git a/buildSrc/jarfilter/src/test/resources/abstract-function/kotlin/net/corda/gradle/AbstractFunctions.kt b/buildSrc/jarfilter/src/test/resources/abstract-function/kotlin/net/corda/gradle/AbstractFunctions.kt deleted file mode 100644 index 8d22e90854..0000000000 --- a/buildSrc/jarfilter/src/test/resources/abstract-function/kotlin/net/corda/gradle/AbstractFunctions.kt +++ /dev/null @@ -1,13 +0,0 @@ -@file:Suppress("UNUSED") -package net.corda.gradle - -import net.corda.gradle.jarfilter.DeleteMe -import net.corda.gradle.jarfilter.StubMeOut - -abstract class AbstractFunctions { - @DeleteMe - abstract fun toDelete(value: Long): Long - - @StubMeOut - abstract fun toStubOut(value: Long): Long -} diff --git a/buildSrc/jarfilter/src/test/resources/annotations/kotlin/net/corda/gradle/jarfilter/DeleteMe.kt b/buildSrc/jarfilter/src/test/resources/annotations/kotlin/net/corda/gradle/jarfilter/DeleteMe.kt deleted file mode 100644 index 60ea95420b..0000000000 --- a/buildSrc/jarfilter/src/test/resources/annotations/kotlin/net/corda/gradle/jarfilter/DeleteMe.kt +++ /dev/null @@ -1,20 +0,0 @@ -package net.corda.gradle.jarfilter - -import kotlin.annotation.AnnotationRetention.* -import kotlin.annotation.AnnotationTarget.* -import kotlin.annotation.Retention -import kotlin.annotation.Target - -@Target( - FILE, - CLASS, - CONSTRUCTOR, - FUNCTION, - PROPERTY, - PROPERTY_GETTER, - PROPERTY_SETTER, - FIELD, - TYPEALIAS -) -@Retention(BINARY) -annotation class DeleteMe \ No newline at end of file diff --git a/buildSrc/jarfilter/src/test/resources/annotations/kotlin/net/corda/gradle/jarfilter/RemoveMe.kt b/buildSrc/jarfilter/src/test/resources/annotations/kotlin/net/corda/gradle/jarfilter/RemoveMe.kt deleted file mode 100644 index 5023cff43a..0000000000 --- a/buildSrc/jarfilter/src/test/resources/annotations/kotlin/net/corda/gradle/jarfilter/RemoveMe.kt +++ /dev/null @@ -1,19 +0,0 @@ -package net.corda.gradle.jarfilter - -import kotlin.annotation.AnnotationRetention.* -import kotlin.annotation.AnnotationTarget.* -import kotlin.annotation.Retention -import kotlin.annotation.Target - -@Target( - FILE, - CLASS, - CONSTRUCTOR, - FUNCTION, - PROPERTY, - PROPERTY_GETTER, - PROPERTY_SETTER, - FIELD -) -@Retention(RUNTIME) -annotation class RemoveMe diff --git a/buildSrc/jarfilter/src/test/resources/annotations/kotlin/net/corda/gradle/jarfilter/StubMeOut.kt b/buildSrc/jarfilter/src/test/resources/annotations/kotlin/net/corda/gradle/jarfilter/StubMeOut.kt deleted file mode 100644 index 5d148dcb58..0000000000 --- a/buildSrc/jarfilter/src/test/resources/annotations/kotlin/net/corda/gradle/jarfilter/StubMeOut.kt +++ /dev/null @@ -1,15 +0,0 @@ -package net.corda.gradle.jarfilter - -import kotlin.annotation.AnnotationRetention.* -import kotlin.annotation.AnnotationTarget.* -import kotlin.annotation.Retention -import kotlin.annotation.Target - -@Target( - CONSTRUCTOR, - FUNCTION, - PROPERTY_GETTER, - PROPERTY_SETTER -) -@Retention(RUNTIME) -annotation class StubMeOut \ No newline at end of file diff --git a/buildSrc/jarfilter/src/test/resources/delete-and-stub/build.gradle b/buildSrc/jarfilter/src/test/resources/delete-and-stub/build.gradle deleted file mode 100644 index 8e356b4936..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-and-stub/build.gradle +++ /dev/null @@ -1,34 +0,0 @@ -plugins { - id 'org.jetbrains.kotlin.jvm' version '$kotlin_version' - id 'net.corda.plugins.jar-filter' -} -apply from: 'repositories.gradle' - -sourceSets { - main { - kotlin { - srcDir files( - '../resources/test/delete-and-stub/kotlin', - '../resources/test/annotations/kotlin' - ) - } - } -} - -dependencies { - compile 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' - compileOnly files('../../unwanteds/build/libs/unwanteds.jar') -} - -jar { - baseName = 'delete-and-stub' -} - -import net.corda.gradle.jarfilter.JarFilterTask -task jarFilter(type: JarFilterTask) { - jars jar - annotations { - forDelete = ["net.corda.gradle.jarfilter.DeleteMe"] - forStub = ["net.corda.gradle.jarfilter.StubMeOut"] - } -} diff --git a/buildSrc/jarfilter/src/test/resources/delete-and-stub/kotlin/net/corda/gradle/DeletePackageWithStubbed.kt b/buildSrc/jarfilter/src/test/resources/delete-and-stub/kotlin/net/corda/gradle/DeletePackageWithStubbed.kt deleted file mode 100644 index b7d4baece2..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-and-stub/kotlin/net/corda/gradle/DeletePackageWithStubbed.kt +++ /dev/null @@ -1,12 +0,0 @@ -@file:JvmName("DeletePackageWithStubbed") -@file:Suppress("UNUSED") -@file:DeleteMe -package net.corda.gradle - -import net.corda.gradle.jarfilter.DeleteMe -import net.corda.gradle.jarfilter.StubMeOut - -fun bracket(str: String): String = "[$str]" - -@StubMeOut -fun stubbed(str: String): String = bracket(str) diff --git a/buildSrc/jarfilter/src/test/resources/delete-and-stub/kotlin/net/corda/gradle/HasDeletedInsideStubbed.kt b/buildSrc/jarfilter/src/test/resources/delete-and-stub/kotlin/net/corda/gradle/HasDeletedInsideStubbed.kt deleted file mode 100644 index 3083c2b4d8..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-and-stub/kotlin/net/corda/gradle/HasDeletedInsideStubbed.kt +++ /dev/null @@ -1,28 +0,0 @@ -@file:JvmName("HasDeletedInsideStubbed") -@file:Suppress("UNUSED") -package net.corda.gradle - -import net.corda.gradle.jarfilter.DeleteMe -import net.corda.gradle.jarfilter.StubMeOut -import net.corda.gradle.unwanted.HasString -import net.corda.gradle.unwanted.HasUnwantedFun -import net.corda.gradle.unwanted.HasUnwantedVal -import net.corda.gradle.unwanted.HasUnwantedVar - -class DeletedFunctionInsideStubbed(private val data: String): HasString, HasUnwantedFun { - @DeleteMe - override fun unwantedFun(str: String): String = str - - @StubMeOut - override fun stringData(): String = unwantedFun(data) -} - -class DeletedValInsideStubbed(@DeleteMe override val unwantedVal: String): HasString, HasUnwantedVal { - @StubMeOut - override fun stringData(): String = unwantedVal -} - -class DeletedVarInsideStubbed(@DeleteMe override var unwantedVar: String) : HasString, HasUnwantedVar { - @StubMeOut - override fun stringData(): String = unwantedVar -} \ No newline at end of file diff --git a/buildSrc/jarfilter/src/test/resources/delete-and-stub/kotlin/net/corda/gradle/HasPropertyForDeleteAndStub.kt b/buildSrc/jarfilter/src/test/resources/delete-and-stub/kotlin/net/corda/gradle/HasPropertyForDeleteAndStub.kt deleted file mode 100644 index c40d183929..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-and-stub/kotlin/net/corda/gradle/HasPropertyForDeleteAndStub.kt +++ /dev/null @@ -1,21 +0,0 @@ -@file:JvmName("HasPropertyForDeleteAndStub") -@file:Suppress("UNUSED") -package net.corda.gradle - -import net.corda.gradle.jarfilter.DeleteMe -import net.corda.gradle.jarfilter.StubMeOut -import net.corda.gradle.unwanted.* - -class HasVarPropertyForDeleteAndStub(value: Long) : HasLongVar { - @DeleteMe - @get:StubMeOut - @set:StubMeOut - override var longVar: Long = value -} - -class HasValPropertyForDeleteAndStub(str: String) : HasStringVal { - @DeleteMe - @get:StubMeOut - override val stringVal: String = str -} - diff --git a/buildSrc/jarfilter/src/test/resources/delete-constructor/build.gradle b/buildSrc/jarfilter/src/test/resources/delete-constructor/build.gradle deleted file mode 100644 index 8503573c6c..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-constructor/build.gradle +++ /dev/null @@ -1,33 +0,0 @@ -plugins { - id 'org.jetbrains.kotlin.jvm' version '$kotlin_version' - id 'net.corda.plugins.jar-filter' -} -apply from: 'repositories.gradle' - -sourceSets { - main { - kotlin { - srcDir files( - '../resources/test/delete-constructor/kotlin', - '../resources/test/annotations/kotlin' - ) - } - } -} - -dependencies { - compile 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' - compileOnly files('../../unwanteds/build/libs/unwanteds.jar') -} - -jar { - baseName = 'delete-constructor' -} - -import net.corda.gradle.jarfilter.JarFilterTask -task jarFilter(type: JarFilterTask) { - jars jar - annotations { - forDelete = ["net.corda.gradle.jarfilter.DeleteMe"] - } -} diff --git a/buildSrc/jarfilter/src/test/resources/delete-constructor/kotlin/net/corda/gradle/HasConstructorToDelete.kt b/buildSrc/jarfilter/src/test/resources/delete-constructor/kotlin/net/corda/gradle/HasConstructorToDelete.kt deleted file mode 100644 index 6e142646d1..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-constructor/kotlin/net/corda/gradle/HasConstructorToDelete.kt +++ /dev/null @@ -1,15 +0,0 @@ -@file:Suppress("UNUSED") -package net.corda.gradle - -import net.corda.gradle.jarfilter.DeleteMe -import net.corda.gradle.unwanted.HasAll - -class HasConstructorToDelete(private val message: String, private val data: Long) : HasAll { - @DeleteMe constructor(message: String) : this(message, 0) - @DeleteMe constructor(data: Long) : this("", data) - constructor(data: Int) : this("", data.toLong()) - - override fun stringData(): String = message - override fun longData(): Long = data - override fun intData(): Int = data.toInt() -} diff --git a/buildSrc/jarfilter/src/test/resources/delete-constructor/kotlin/net/corda/gradle/PrimaryConstructorsToDelete.kt b/buildSrc/jarfilter/src/test/resources/delete-constructor/kotlin/net/corda/gradle/PrimaryConstructorsToDelete.kt deleted file mode 100644 index 4be16cd208..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-constructor/kotlin/net/corda/gradle/PrimaryConstructorsToDelete.kt +++ /dev/null @@ -1,21 +0,0 @@ -@file:JvmName("PrimaryConstructorsToDelete") -@file:Suppress("UNUSED") -package net.corda.gradle - -import net.corda.gradle.jarfilter.DeleteMe -import net.corda.gradle.unwanted.HasInt -import net.corda.gradle.unwanted.HasLong -import net.corda.gradle.unwanted.HasString - -class PrimaryIntConstructorToDelete @DeleteMe constructor(private val value: Int) : HasInt { - override fun intData() = value -} - -class PrimaryLongConstructorToDelete @DeleteMe constructor(private val value: Long) : HasLong { - override fun longData() = value -} - -class PrimaryStringConstructorToDelete @DeleteMe constructor(private val value: String) : HasString { - override fun stringData() = value -} - diff --git a/buildSrc/jarfilter/src/test/resources/delete-extension-val/build.gradle b/buildSrc/jarfilter/src/test/resources/delete-extension-val/build.gradle deleted file mode 100644 index 2bc54db421..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-extension-val/build.gradle +++ /dev/null @@ -1,33 +0,0 @@ -plugins { - id 'org.jetbrains.kotlin.jvm' version '$kotlin_version' - id 'net.corda.plugins.jar-filter' -} -apply from: 'repositories.gradle' - -sourceSets { - main { - kotlin { - srcDir files( - '../resources/test/delete-extension-val/kotlin', - '../resources/test/annotations/kotlin' - ) - } - } -} - -dependencies { - compile 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' - compileOnly files('../../unwanteds/build/libs/unwanteds.jar') -} - -jar { - baseName = 'delete-extension-val' -} - -import net.corda.gradle.jarfilter.JarFilterTask -task jarFilter(type: JarFilterTask) { - jars jar - annotations { - forDelete = ["net.corda.gradle.jarfilter.DeleteMe"] - } -} diff --git a/buildSrc/jarfilter/src/test/resources/delete-extension-val/kotlin/net/corda/gradle/HasValExtension.kt b/buildSrc/jarfilter/src/test/resources/delete-extension-val/kotlin/net/corda/gradle/HasValExtension.kt deleted file mode 100644 index f1219ab1ff..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-extension-val/kotlin/net/corda/gradle/HasValExtension.kt +++ /dev/null @@ -1,10 +0,0 @@ -@file:Suppress("UNUSED") -package net.corda.gradle - -import net.corda.gradle.jarfilter.DeleteMe -import net.corda.gradle.unwanted.HasUnwantedVal - -class HasValExtension(override val unwantedVal: String) : HasUnwantedVal { - @DeleteMe - val List.unwantedVal: String get() = this[0] -} diff --git a/buildSrc/jarfilter/src/test/resources/delete-field/build.gradle b/buildSrc/jarfilter/src/test/resources/delete-field/build.gradle deleted file mode 100644 index 92dd13a5f2..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-field/build.gradle +++ /dev/null @@ -1,32 +0,0 @@ -plugins { - id 'org.jetbrains.kotlin.jvm' version '$kotlin_version' - id 'net.corda.plugins.jar-filter' -} -apply from: 'repositories.gradle' - -sourceSets { - main { - kotlin { - srcDir files( - '../resources/test/delete-field/kotlin', - '../resources/test/annotations/kotlin' - ) - } - } -} - -dependencies { - compile 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' -} - -jar { - baseName = 'delete-field' -} - -import net.corda.gradle.jarfilter.JarFilterTask -task jarFilter(type: JarFilterTask) { - jars jar - annotations { - forDelete = ["net.corda.gradle.jarfilter.DeleteMe"] - } -} diff --git a/buildSrc/jarfilter/src/test/resources/delete-field/kotlin/net/corda/gradle/HasFieldToDelete.kt b/buildSrc/jarfilter/src/test/resources/delete-field/kotlin/net/corda/gradle/HasFieldToDelete.kt deleted file mode 100644 index d3127ce7d7..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-field/kotlin/net/corda/gradle/HasFieldToDelete.kt +++ /dev/null @@ -1,23 +0,0 @@ -@file:JvmName("HasFieldToDelete") -@file:Suppress("UNUSED") -package net.corda.gradle - -import net.corda.gradle.jarfilter.DeleteMe - -class HasStringFieldToDelete(value: String) { - @JvmField - @field:DeleteMe - val stringField: String = value -} - -class HasLongFieldToDelete(value: Long) { - @JvmField - @field:DeleteMe - val longField: Long = value -} - -class HasIntFieldToDelete(value: Int) { - @JvmField - @field:DeleteMe - val intField: Int = value -} diff --git a/buildSrc/jarfilter/src/test/resources/delete-file-typealias/build.gradle b/buildSrc/jarfilter/src/test/resources/delete-file-typealias/build.gradle deleted file mode 100644 index f4de2588c8..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-file-typealias/build.gradle +++ /dev/null @@ -1,32 +0,0 @@ -plugins { - id 'org.jetbrains.kotlin.jvm' version '$kotlin_version' - id 'net.corda.plugins.jar-filter' -} -apply from: 'repositories.gradle' - -sourceSets { - main { - kotlin { - srcDir files( - '../resources/test/delete-file-typealias/kotlin', - '../resources/test/annotations/kotlin' - ) - } - } -} - -dependencies { - compile 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' -} - -jar { - baseName = 'delete-file-typealias' -} - -import net.corda.gradle.jarfilter.JarFilterTask -task jarFilter(type: JarFilterTask) { - jars jar - annotations { - forDelete = ["net.corda.gradle.jarfilter.DeleteMe"] - } -} diff --git a/buildSrc/jarfilter/src/test/resources/delete-file-typealias/kotlin/net/corda/gradle/FileWithTypeAlias.kt b/buildSrc/jarfilter/src/test/resources/delete-file-typealias/kotlin/net/corda/gradle/FileWithTypeAlias.kt deleted file mode 100644 index 500e6b9be8..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-file-typealias/kotlin/net/corda/gradle/FileWithTypeAlias.kt +++ /dev/null @@ -1,12 +0,0 @@ -@file:JvmName("FileWithTypeAlias") -@file:Suppress("UNUSED") -package net.corda.gradle - -import net.corda.gradle.jarfilter.DeleteMe - -typealias FileWantedType = Long - -@DeleteMe -typealias FileUnwantedType = (String) -> Boolean - -val Any.FileUnwantedType: String get() = "" diff --git a/buildSrc/jarfilter/src/test/resources/delete-function/build.gradle b/buildSrc/jarfilter/src/test/resources/delete-function/build.gradle deleted file mode 100644 index 5a5de263ad..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-function/build.gradle +++ /dev/null @@ -1,33 +0,0 @@ -plugins { - id 'org.jetbrains.kotlin.jvm' version '$kotlin_version' - id 'net.corda.plugins.jar-filter' -} -apply from: 'repositories.gradle' - -sourceSets { - main { - kotlin { - srcDir files( - '../resources/test/delete-function/kotlin', - '../resources/test/annotations/kotlin' - ) - } - } -} - -dependencies { - compile 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' - compileOnly files('../../unwanteds/build/libs/unwanteds.jar') -} - -jar { - baseName = 'delete-function' -} - -import net.corda.gradle.jarfilter.JarFilterTask -task jarFilter(type: JarFilterTask) { - jars jar - annotations { - forDelete = ["net.corda.gradle.jarfilter.DeleteMe"] - } -} diff --git a/buildSrc/jarfilter/src/test/resources/delete-function/kotlin/net/corda/gradle/HasFunctionToDelete.kt b/buildSrc/jarfilter/src/test/resources/delete-function/kotlin/net/corda/gradle/HasFunctionToDelete.kt deleted file mode 100644 index 81997e0857..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-function/kotlin/net/corda/gradle/HasFunctionToDelete.kt +++ /dev/null @@ -1,12 +0,0 @@ -@file:Suppress("UNUSED") -package net.corda.gradle - -import net.corda.gradle.jarfilter.DeleteMe -import net.corda.gradle.unwanted.HasUnwantedFun - -class HasFunctionToDelete : HasUnwantedFun { - @DeleteMe - override fun unwantedFun(str: String): String { - return str - } -} diff --git a/buildSrc/jarfilter/src/test/resources/delete-function/kotlin/net/corda/gradle/HasIndirectFunctionToDelete.kt b/buildSrc/jarfilter/src/test/resources/delete-function/kotlin/net/corda/gradle/HasIndirectFunctionToDelete.kt deleted file mode 100644 index 5a85f74d8e..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-function/kotlin/net/corda/gradle/HasIndirectFunctionToDelete.kt +++ /dev/null @@ -1,13 +0,0 @@ -@file:Suppress("UNUSED") -package net.corda.gradle - -import net.corda.gradle.jarfilter.DeleteMe -import net.corda.gradle.unwanted.HasString -import net.corda.gradle.unwanted.HasUnwantedFun - -class HasIndirectFunctionToDelete(private val data: String) : HasUnwantedFun, HasString { - @DeleteMe - override fun unwantedFun(str: String): String = str - - override fun stringData() = unwantedFun(data) -} \ No newline at end of file diff --git a/buildSrc/jarfilter/src/test/resources/delete-inner-lambda/build.gradle b/buildSrc/jarfilter/src/test/resources/delete-inner-lambda/build.gradle deleted file mode 100644 index f5725b6e52..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-inner-lambda/build.gradle +++ /dev/null @@ -1,33 +0,0 @@ -plugins { - id 'org.jetbrains.kotlin.jvm' version '$kotlin_version' - id 'net.corda.plugins.jar-filter' -} -apply from: 'repositories.gradle' - -sourceSets { - main { - kotlin { - srcDir files( - '../resources/test/delete-inner-lambda/kotlin', - '../resources/test/annotations/kotlin' - ) - } - } -} - -dependencies { - compile 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' - compileOnly files('../../unwanteds/build/libs/unwanteds.jar') -} - -jar { - baseName = 'delete-inner-lambda' -} - -import net.corda.gradle.jarfilter.JarFilterTask -task jarFilter(type: JarFilterTask) { - jars jar - annotations { - forDelete = ["net.corda.gradle.jarfilter.DeleteMe"] - } -} diff --git a/buildSrc/jarfilter/src/test/resources/delete-inner-lambda/kotlin/net/corda/gradle/HasInnerLambda.kt b/buildSrc/jarfilter/src/test/resources/delete-inner-lambda/kotlin/net/corda/gradle/HasInnerLambda.kt deleted file mode 100644 index 774ebb80d6..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-inner-lambda/kotlin/net/corda/gradle/HasInnerLambda.kt +++ /dev/null @@ -1,19 +0,0 @@ -@file:Suppress("UNUSED") -package net.corda.gradle - -import net.corda.gradle.jarfilter.DeleteMe -import net.corda.gradle.unwanted.HasInt - -class HasInnerLambda(private val bytes: ByteArray) : HasInt { - @DeleteMe - constructor(size: Int) : this(ZeroArray { size }.bytes) - - override fun intData() = bytes.size -} - -/** - * Do NOT inline this lambda! - */ -class ZeroArray(initialSize: () -> Int) { - val bytes: ByteArray = ByteArray(initialSize()) { 0 } -} diff --git a/buildSrc/jarfilter/src/test/resources/delete-lazy/build.gradle b/buildSrc/jarfilter/src/test/resources/delete-lazy/build.gradle deleted file mode 100644 index 74de278f40..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-lazy/build.gradle +++ /dev/null @@ -1,33 +0,0 @@ -plugins { - id 'org.jetbrains.kotlin.jvm' version '$kotlin_version' - id 'net.corda.plugins.jar-filter' -} -apply from: 'repositories.gradle' - -sourceSets { - main { - kotlin { - srcDir files( - '../resources/test/delete-lazy/kotlin', - '../resources/test/annotations/kotlin' - ) - } - } -} - -dependencies { - compile 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' - compileOnly files('../../unwanteds/build/libs/unwanteds.jar') -} - -jar { - baseName = 'delete-lazy' -} - -import net.corda.gradle.jarfilter.JarFilterTask -task jarFilter(type: JarFilterTask) { - jars jar - annotations { - forDelete = ["net.corda.gradle.jarfilter.DeleteMe"] - } -} diff --git a/buildSrc/jarfilter/src/test/resources/delete-lazy/kotlin/net/corda/gradle/HasLazy.kt b/buildSrc/jarfilter/src/test/resources/delete-lazy/kotlin/net/corda/gradle/HasLazy.kt deleted file mode 100644 index ad824cab4d..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-lazy/kotlin/net/corda/gradle/HasLazy.kt +++ /dev/null @@ -1,13 +0,0 @@ -@file:JvmName("HasLazy") -@file:Suppress("UNUSED") -package net.corda.gradle - -import net.corda.gradle.jarfilter.DeleteMe -import net.corda.gradle.unwanted.HasUnwantedVal - -class HasLazyVal(private val message: String) : HasUnwantedVal { - @DeleteMe - override val unwantedVal: String by lazy { - message - } -} diff --git a/buildSrc/jarfilter/src/test/resources/delete-multifile/build.gradle b/buildSrc/jarfilter/src/test/resources/delete-multifile/build.gradle deleted file mode 100644 index 417c8d97fe..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-multifile/build.gradle +++ /dev/null @@ -1,32 +0,0 @@ -plugins { - id 'org.jetbrains.kotlin.jvm' version '$kotlin_version' - id 'net.corda.plugins.jar-filter' -} -apply from: 'repositories.gradle' - -sourceSets { - main { - kotlin { - srcDir files( - '../resources/test/delete-multifile/kotlin', - '../resources/test/annotations/kotlin' - ) - } - } -} - -dependencies { - compile 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' -} - -jar { - baseName = 'delete-multifile' -} - -import net.corda.gradle.jarfilter.JarFilterTask -task jarFilter(type: JarFilterTask) { - jars jar - annotations { - forDelete = ["net.corda.gradle.jarfilter.DeleteMe"] - } -} diff --git a/buildSrc/jarfilter/src/test/resources/delete-multifile/kotlin/net/corda/gradle/HasInt.kt b/buildSrc/jarfilter/src/test/resources/delete-multifile/kotlin/net/corda/gradle/HasInt.kt deleted file mode 100644 index 0c4507d568..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-multifile/kotlin/net/corda/gradle/HasInt.kt +++ /dev/null @@ -1,9 +0,0 @@ -@file:JvmName("HasMultiData") -@file:JvmMultifileClass -@file:Suppress("UNUSED") -package net.corda.gradle - -import net.corda.gradle.jarfilter.DeleteMe - -@DeleteMe -fun intToDelete(data: Int): Int = data diff --git a/buildSrc/jarfilter/src/test/resources/delete-multifile/kotlin/net/corda/gradle/HasLong.kt b/buildSrc/jarfilter/src/test/resources/delete-multifile/kotlin/net/corda/gradle/HasLong.kt deleted file mode 100644 index c4c6617e33..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-multifile/kotlin/net/corda/gradle/HasLong.kt +++ /dev/null @@ -1,9 +0,0 @@ -@file:JvmName("HasMultiData") -@file:JvmMultifileClass -@file:Suppress("UNUSED") -package net.corda.gradle - -import net.corda.gradle.jarfilter.DeleteMe - -@DeleteMe -fun longToDelete(data: Long): Long = data diff --git a/buildSrc/jarfilter/src/test/resources/delete-multifile/kotlin/net/corda/gradle/HasString.kt b/buildSrc/jarfilter/src/test/resources/delete-multifile/kotlin/net/corda/gradle/HasString.kt deleted file mode 100644 index 3fe9965c2f..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-multifile/kotlin/net/corda/gradle/HasString.kt +++ /dev/null @@ -1,9 +0,0 @@ -@file:JvmName("HasMultiData") -@file:JvmMultifileClass -@file:Suppress("UNUSED") -package net.corda.gradle - -import net.corda.gradle.jarfilter.DeleteMe - -@DeleteMe -fun stringToDelete(str: String): String = str diff --git a/buildSrc/jarfilter/src/test/resources/delete-nested-class/build.gradle b/buildSrc/jarfilter/src/test/resources/delete-nested-class/build.gradle deleted file mode 100644 index 9a74a8e3c3..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-nested-class/build.gradle +++ /dev/null @@ -1,32 +0,0 @@ -plugins { - id 'org.jetbrains.kotlin.jvm' version '$kotlin_version' - id 'net.corda.plugins.jar-filter' -} -apply from: 'repositories.gradle' - -sourceSets { - main { - kotlin { - srcDir files( - '../resources/test/delete-nested-class/kotlin', - '../resources/test/annotations/kotlin' - ) - } - } -} - -dependencies { - compile 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' -} - -jar { - baseName = 'delete-nested-class' -} - -import net.corda.gradle.jarfilter.JarFilterTask -task jarFilter(type: JarFilterTask) { - jars jar - annotations { - forDelete = ["net.corda.gradle.jarfilter.DeleteMe"] - } -} diff --git a/buildSrc/jarfilter/src/test/resources/delete-nested-class/kotlin/net/corda/gradle/HasNestedClasses.kt b/buildSrc/jarfilter/src/test/resources/delete-nested-class/kotlin/net/corda/gradle/HasNestedClasses.kt deleted file mode 100644 index a8f8a2f2f4..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-nested-class/kotlin/net/corda/gradle/HasNestedClasses.kt +++ /dev/null @@ -1,10 +0,0 @@ -@file:Suppress("UNUSED") -package net.corda.gradle - -import net.corda.gradle.jarfilter.DeleteMe - -class HasNestedClasses { - class OneToKeep - - @DeleteMe class OneToThrowAway -} diff --git a/buildSrc/jarfilter/src/test/resources/delete-nested-class/kotlin/net/corda/gradle/SealedClass.kt b/buildSrc/jarfilter/src/test/resources/delete-nested-class/kotlin/net/corda/gradle/SealedClass.kt deleted file mode 100644 index 1e85d6564c..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-nested-class/kotlin/net/corda/gradle/SealedClass.kt +++ /dev/null @@ -1,10 +0,0 @@ -@file:Suppress("UNUSED") -package net.corda.gradle - -import net.corda.gradle.jarfilter.DeleteMe - -sealed class SealedClass { - class Wanted : SealedClass() - - @DeleteMe class Unwanted : SealedClass() -} diff --git a/buildSrc/jarfilter/src/test/resources/delete-object/build.gradle b/buildSrc/jarfilter/src/test/resources/delete-object/build.gradle deleted file mode 100644 index 9958740aad..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-object/build.gradle +++ /dev/null @@ -1,33 +0,0 @@ -plugins { - id 'org.jetbrains.kotlin.jvm' version '$kotlin_version' - id 'net.corda.plugins.jar-filter' -} -apply from: 'repositories.gradle' - -sourceSets { - main { - kotlin { - srcDir files( - '../resources/test/delete-object/kotlin', - '../resources/test/annotations/kotlin' - ) - } - } -} - -dependencies { - compile 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' - compileOnly files('../../unwanteds/build/libs/unwanteds.jar') -} - -jar { - baseName = 'delete-object' -} - -import net.corda.gradle.jarfilter.JarFilterTask -task jarFilter(type: JarFilterTask) { - jars jar - annotations { - forDelete = ["net.corda.gradle.jarfilter.DeleteMe"] - } -} diff --git a/buildSrc/jarfilter/src/test/resources/delete-object/kotlin/net/corda/gradle/HasObjects.kt b/buildSrc/jarfilter/src/test/resources/delete-object/kotlin/net/corda/gradle/HasObjects.kt deleted file mode 100644 index 03ec14bcb4..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-object/kotlin/net/corda/gradle/HasObjects.kt +++ /dev/null @@ -1,20 +0,0 @@ -@file:JvmName("HasObjects") -@file:Suppress("UNUSED") -package net.corda.gradle - -import net.corda.gradle.jarfilter.DeleteMe -import net.corda.gradle.unwanted.HasUnwantedFun -import net.corda.gradle.unwanted.HasUnwantedVal - -@DeleteMe -val unwantedObj = object : HasUnwantedFun { - override fun unwantedFun(str: String): String = str -} - -@DeleteMe -fun unwantedFun(): String { - val obj = object : HasUnwantedVal { - override val unwantedVal: String = "" - } - return obj.unwantedVal -} diff --git a/buildSrc/jarfilter/src/test/resources/delete-sealed-subclass/build.gradle b/buildSrc/jarfilter/src/test/resources/delete-sealed-subclass/build.gradle deleted file mode 100644 index 38c76d6f7c..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-sealed-subclass/build.gradle +++ /dev/null @@ -1,33 +0,0 @@ -plugins { - id 'org.jetbrains.kotlin.jvm' version '$kotlin_version' - id 'net.corda.plugins.jar-filter' -} -apply from: 'repositories.gradle' - -sourceSets { - main { - kotlin { - srcDir files( - '../resources/test/delete-sealed-subclass/kotlin', - '../resources/test/annotations/kotlin' - ) - } - } -} - -dependencies { - compile 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' - compileOnly files('../../unwanteds/build/libs/unwanteds.jar') -} - -jar { - baseName = 'delete-sealed-subclass' -} - -import net.corda.gradle.jarfilter.JarFilterTask -task jarFilter(type: JarFilterTask) { - jars jar - annotations { - forDelete = ["net.corda.gradle.jarfilter.DeleteMe"] - } -} diff --git a/buildSrc/jarfilter/src/test/resources/delete-sealed-subclass/kotlin/net/corda/gradle/SealedWithSubclasses.kt b/buildSrc/jarfilter/src/test/resources/delete-sealed-subclass/kotlin/net/corda/gradle/SealedWithSubclasses.kt deleted file mode 100644 index 52e28a4475..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-sealed-subclass/kotlin/net/corda/gradle/SealedWithSubclasses.kt +++ /dev/null @@ -1,12 +0,0 @@ -@file:JvmName("SealedWithSubclasses") -@file:Suppress("UNUSED") -package net.corda.gradle - -import net.corda.gradle.jarfilter.DeleteMe - -sealed class SealedBaseClass - -@DeleteMe -class UnwantedSubclass : SealedBaseClass() - -class WantedSubclass : SealedBaseClass() diff --git a/buildSrc/jarfilter/src/test/resources/delete-static-field/build.gradle b/buildSrc/jarfilter/src/test/resources/delete-static-field/build.gradle deleted file mode 100644 index 18040b9954..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-static-field/build.gradle +++ /dev/null @@ -1,32 +0,0 @@ -plugins { - id 'org.jetbrains.kotlin.jvm' version '$kotlin_version' - id 'net.corda.plugins.jar-filter' -} -apply from: 'repositories.gradle' - -sourceSets { - main { - kotlin { - srcDir files( - '../resources/test/delete-static-field/kotlin', - '../resources/test/annotations/kotlin' - ) - } - } -} - -dependencies { - compile 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' -} - -jar { - baseName = 'delete-static-field' -} - -import net.corda.gradle.jarfilter.JarFilterTask -task jarFilter(type: JarFilterTask) { - jars jar - annotations { - forDelete = ["net.corda.gradle.jarfilter.DeleteMe"] - } -} diff --git a/buildSrc/jarfilter/src/test/resources/delete-static-field/kotlin/net/corda/gradle/StaticFieldsToDelete.kt b/buildSrc/jarfilter/src/test/resources/delete-static-field/kotlin/net/corda/gradle/StaticFieldsToDelete.kt deleted file mode 100644 index a16350d5d4..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-static-field/kotlin/net/corda/gradle/StaticFieldsToDelete.kt +++ /dev/null @@ -1,17 +0,0 @@ -@file:JvmName("StaticFieldsToDelete") -@file:Suppress("UNUSED") -package net.corda.gradle - -import net.corda.gradle.jarfilter.DeleteMe - -@DeleteMe -@JvmField -val stringField: String = "" - -@DeleteMe -@JvmField -val longField: Long = 123456789L - -@DeleteMe -@JvmField -val intField: Int = 123456 diff --git a/buildSrc/jarfilter/src/test/resources/delete-static-function/build.gradle b/buildSrc/jarfilter/src/test/resources/delete-static-function/build.gradle deleted file mode 100644 index b2308fad37..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-static-function/build.gradle +++ /dev/null @@ -1,33 +0,0 @@ -plugins { - id 'org.jetbrains.kotlin.jvm' version '$kotlin_version' - id 'net.corda.plugins.jar-filter' -} -apply from: 'repositories.gradle' - -sourceSets { - main { - kotlin { - srcDir files( - '../resources/test/delete-static-function/kotlin', - '../resources/test/annotations/kotlin' - ) - } - } -} - -dependencies { - compile 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' - compileOnly files('../../unwanteds/build/libs/unwanteds.jar') -} - -jar { - baseName = 'delete-static-function' -} - -import net.corda.gradle.jarfilter.JarFilterTask -task jarFilter(type: JarFilterTask) { - jars jar - annotations { - forDelete = ["net.corda.gradle.jarfilter.DeleteMe"] - } -} diff --git a/buildSrc/jarfilter/src/test/resources/delete-static-function/kotlin/net/corda/gradle/StaticFunctionsToDelete.kt b/buildSrc/jarfilter/src/test/resources/delete-static-function/kotlin/net/corda/gradle/StaticFunctionsToDelete.kt deleted file mode 100644 index a9144140c0..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-static-function/kotlin/net/corda/gradle/StaticFunctionsToDelete.kt +++ /dev/null @@ -1,14 +0,0 @@ -@file:JvmName("StaticFunctionsToDelete") -@file:Suppress("UNUSED") -package net.corda.gradle - -import net.corda.gradle.jarfilter.DeleteMe - -@DeleteMe -fun unwantedStringToDelete(value: String): String = value - -@DeleteMe -fun unwantedIntToDelete(value: Int): Int = value - -@DeleteMe -fun unwantedLongToDelete(value: Long): Long = value diff --git a/buildSrc/jarfilter/src/test/resources/delete-static-val/build.gradle b/buildSrc/jarfilter/src/test/resources/delete-static-val/build.gradle deleted file mode 100644 index a67c4f7760..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-static-val/build.gradle +++ /dev/null @@ -1,32 +0,0 @@ -plugins { - id 'org.jetbrains.kotlin.jvm' version '$kotlin_version' - id 'net.corda.plugins.jar-filter' -} -apply from: 'repositories.gradle' - -sourceSets { - main { - kotlin { - srcDir files( - '../resources/test/delete-static-val/kotlin', - '../resources/test/annotations/kotlin' - ) - } - } -} - -dependencies { - compile 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' -} - -jar { - baseName = 'delete-static-val' -} - -import net.corda.gradle.jarfilter.JarFilterTask -task jarFilter(type: JarFilterTask) { - jars jar - annotations { - forDelete = ["net.corda.gradle.jarfilter.DeleteMe"] - } -} diff --git a/buildSrc/jarfilter/src/test/resources/delete-static-val/kotlin/net/corda/gradle/StaticValToDelete.kt b/buildSrc/jarfilter/src/test/resources/delete-static-val/kotlin/net/corda/gradle/StaticValToDelete.kt deleted file mode 100644 index 51de79e5c5..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-static-val/kotlin/net/corda/gradle/StaticValToDelete.kt +++ /dev/null @@ -1,17 +0,0 @@ -@file:JvmName("StaticValToDelete") -@file:Suppress("UNUSED") -package net.corda.gradle - -import net.corda.gradle.jarfilter.DeleteMe - -@DeleteMe -val stringVal: String = "" - -@DeleteMe -val longVal: Long = 123456789L - -@DeleteMe -val intVal: Int = 123456 - -@DeleteMe -val T.memberVal: T get() = this diff --git a/buildSrc/jarfilter/src/test/resources/delete-static-var/build.gradle b/buildSrc/jarfilter/src/test/resources/delete-static-var/build.gradle deleted file mode 100644 index 2d601a37c4..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-static-var/build.gradle +++ /dev/null @@ -1,32 +0,0 @@ -plugins { - id 'org.jetbrains.kotlin.jvm' version '$kotlin_version' - id 'net.corda.plugins.jar-filter' -} -apply from: 'repositories.gradle' - -sourceSets { - main { - kotlin { - srcDir files( - '../resources/test/delete-static-var/kotlin', - '../resources/test/annotations/kotlin' - ) - } - } -} - -dependencies { - compile 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' -} - -jar { - baseName = 'delete-static-var' -} - -import net.corda.gradle.jarfilter.JarFilterTask -task jarFilter(type: JarFilterTask) { - jars jar - annotations { - forDelete = ["net.corda.gradle.jarfilter.DeleteMe"] - } -} diff --git a/buildSrc/jarfilter/src/test/resources/delete-static-var/kotlin/net/corda/gradle/StaticVarToDelete.kt b/buildSrc/jarfilter/src/test/resources/delete-static-var/kotlin/net/corda/gradle/StaticVarToDelete.kt deleted file mode 100644 index 1b941b8fff..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-static-var/kotlin/net/corda/gradle/StaticVarToDelete.kt +++ /dev/null @@ -1,19 +0,0 @@ -@file:JvmName("StaticVarToDelete") -@file:Suppress("UNUSED") -package net.corda.gradle - -import net.corda.gradle.jarfilter.DeleteMe - -@DeleteMe -var stringVar: String = "" - -@DeleteMe -var longVar: Long = 123456789L - -@DeleteMe -var intVar: Int = 123456 - -@DeleteMe -var T.memberVar: T - get() = this - set(value) { } diff --git a/buildSrc/jarfilter/src/test/resources/delete-val-property/build.gradle b/buildSrc/jarfilter/src/test/resources/delete-val-property/build.gradle deleted file mode 100644 index 3d6f3d4224..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-val-property/build.gradle +++ /dev/null @@ -1,33 +0,0 @@ -plugins { - id 'org.jetbrains.kotlin.jvm' version '$kotlin_version' - id 'net.corda.plugins.jar-filter' -} -apply from: 'repositories.gradle' - -sourceSets { - main { - kotlin { - srcDir files( - '../resources/test/delete-val-property/kotlin', - '../resources/test/annotations/kotlin' - ) - } - } -} - -dependencies { - compile 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' - compileOnly files('../../unwanteds/build/libs/unwanteds.jar') -} - -jar { - baseName = 'delete-val-property' -} - -import net.corda.gradle.jarfilter.JarFilterTask -task jarFilter(type: JarFilterTask) { - jars jar - annotations { - forDelete = ["net.corda.gradle.jarfilter.DeleteMe"] - } -} diff --git a/buildSrc/jarfilter/src/test/resources/delete-val-property/kotlin/net/corda/gradle/HasValPropertyForDelete.kt b/buildSrc/jarfilter/src/test/resources/delete-val-property/kotlin/net/corda/gradle/HasValPropertyForDelete.kt deleted file mode 100644 index 26f9ebfad3..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-val-property/kotlin/net/corda/gradle/HasValPropertyForDelete.kt +++ /dev/null @@ -1,11 +0,0 @@ -@file:Suppress("UNUSED") -package net.corda.gradle - -import net.corda.gradle.jarfilter.DeleteMe -import net.corda.gradle.unwanted.HasUnwantedVal - -class HasValPropertyForDelete(@DeleteMe override val unwantedVal: String) : HasUnwantedVal - -class HasValGetterForDelete(@get:DeleteMe override val unwantedVal: String): HasUnwantedVal - -class HasValJvmFieldForDelete(@DeleteMe @JvmField val unwantedVal: String) \ No newline at end of file diff --git a/buildSrc/jarfilter/src/test/resources/delete-var-property/build.gradle b/buildSrc/jarfilter/src/test/resources/delete-var-property/build.gradle deleted file mode 100644 index dfc29b78b6..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-var-property/build.gradle +++ /dev/null @@ -1,33 +0,0 @@ -plugins { - id 'org.jetbrains.kotlin.jvm' version '$kotlin_version' - id 'net.corda.plugins.jar-filter' -} -apply from: 'repositories.gradle' - -sourceSets { - main { - kotlin { - srcDir files( - '../resources/test/delete-var-property/kotlin', - '../resources/test/annotations/kotlin' - ) - } - } -} - -dependencies { - compile 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' - compileOnly files('../../unwanteds/build/libs/unwanteds.jar') -} - -jar { - baseName = 'delete-var-property' -} - -import net.corda.gradle.jarfilter.JarFilterTask -task jarFilter(type: JarFilterTask) { - jars jar - annotations { - forDelete = ["net.corda.gradle.jarfilter.DeleteMe"] - } -} diff --git a/buildSrc/jarfilter/src/test/resources/delete-var-property/kotlin/net/corda/gradle/HasVarPropertyForDelete.kt b/buildSrc/jarfilter/src/test/resources/delete-var-property/kotlin/net/corda/gradle/HasVarPropertyForDelete.kt deleted file mode 100644 index 4726ef9e3a..0000000000 --- a/buildSrc/jarfilter/src/test/resources/delete-var-property/kotlin/net/corda/gradle/HasVarPropertyForDelete.kt +++ /dev/null @@ -1,14 +0,0 @@ -@file:JvmName("HasVarPropertyForDelete") -@file:Suppress("UNUSED") -package net.corda.gradle - -import net.corda.gradle.jarfilter.DeleteMe -import net.corda.gradle.unwanted.HasUnwantedVar - -class HasUnwantedVarPropertyForDelete(@DeleteMe override var unwantedVar: String) : HasUnwantedVar - -class HasUnwantedGetForDelete(@get:DeleteMe override var unwantedVar: String) : HasUnwantedVar - -class HasUnwantedSetForDelete(@set:DeleteMe override var unwantedVar: String) : HasUnwantedVar - -class HasVarJvmFieldForDelete(@DeleteMe @JvmField var unwantedVar: String) diff --git a/buildSrc/jarfilter/src/test/resources/gradle.properties b/buildSrc/jarfilter/src/test/resources/gradle.properties deleted file mode 100644 index 0c744a8a05..0000000000 --- a/buildSrc/jarfilter/src/test/resources/gradle.properties +++ /dev/null @@ -1 +0,0 @@ -org.gradle.jvmargs=-javaagent:"$jacocoAgent"=destfile="$buildDir/jacoco/test.exec",includes=net/corda/gradle/jarfilter/** diff --git a/buildSrc/jarfilter/src/test/resources/interface-function/build.gradle b/buildSrc/jarfilter/src/test/resources/interface-function/build.gradle deleted file mode 100644 index dbea447e6b..0000000000 --- a/buildSrc/jarfilter/src/test/resources/interface-function/build.gradle +++ /dev/null @@ -1,34 +0,0 @@ -plugins { - id 'org.jetbrains.kotlin.jvm' version '$kotlin_version' - id 'net.corda.plugins.jar-filter' -} -apply from: 'repositories.gradle' - -sourceSets { - main { - kotlin { - srcDir files( - '../resources/test/interface-function/kotlin', - '../resources/test/annotations/kotlin' - ) - } - } -} - -dependencies { - compile 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' - compileOnly files('../../unwanteds/build/libs/unwanteds.jar') -} - -jar { - baseName = 'interface-function' -} - -import net.corda.gradle.jarfilter.JarFilterTask -task jarFilter(type: JarFilterTask) { - jars jar - annotations { - forDelete = ["net.corda.gradle.jarfilter.DeleteMe"] - forStub = ["net.corda.gradle.jarfilter.StubMeOut"] - } -} diff --git a/buildSrc/jarfilter/src/test/resources/interface-function/kotlin/net/corda/gradle/InterfaceFunctions.kt b/buildSrc/jarfilter/src/test/resources/interface-function/kotlin/net/corda/gradle/InterfaceFunctions.kt deleted file mode 100644 index cbc782794a..0000000000 --- a/buildSrc/jarfilter/src/test/resources/interface-function/kotlin/net/corda/gradle/InterfaceFunctions.kt +++ /dev/null @@ -1,13 +0,0 @@ -@file:Suppress("UNUSED") -package net.corda.gradle - -import net.corda.gradle.jarfilter.DeleteMe -import net.corda.gradle.jarfilter.StubMeOut - -interface InterfaceFunctions { - @DeleteMe - fun toDelete(value: Long): Long - - @StubMeOut - fun toStubOut(value: Long): Long -} diff --git a/buildSrc/jarfilter/src/test/resources/remove-annotations/build.gradle b/buildSrc/jarfilter/src/test/resources/remove-annotations/build.gradle deleted file mode 100644 index e477038ce9..0000000000 --- a/buildSrc/jarfilter/src/test/resources/remove-annotations/build.gradle +++ /dev/null @@ -1,33 +0,0 @@ -plugins { - id 'org.jetbrains.kotlin.jvm' version '$kotlin_version' - id 'net.corda.plugins.jar-filter' -} -apply from: 'repositories.gradle' - -sourceSets { - main { - kotlin { - srcDir files( - '../resources/test/remove-annotations/kotlin', - '../resources/test/annotations/kotlin' - ) - } - } -} - -dependencies { - compile 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' - compileOnly files('../../unwanteds/build/libs/unwanteds.jar') -} - -jar { - baseName = 'remove-annotations' -} - -import net.corda.gradle.jarfilter.JarFilterTask -task jarFilter(type: JarFilterTask) { - jars jar - annotations { - forRemove = ["net.corda.gradle.jarfilter.RemoveMe"] - } -} diff --git a/buildSrc/jarfilter/src/test/resources/remove-annotations/kotlin/net/corda/gradle/HasUnwantedAnnotations.kt b/buildSrc/jarfilter/src/test/resources/remove-annotations/kotlin/net/corda/gradle/HasUnwantedAnnotations.kt deleted file mode 100644 index e0732943ee..0000000000 --- a/buildSrc/jarfilter/src/test/resources/remove-annotations/kotlin/net/corda/gradle/HasUnwantedAnnotations.kt +++ /dev/null @@ -1,33 +0,0 @@ -@file:Suppress("UNUSED") -package net.corda.gradle - -import net.corda.gradle.jarfilter.RemoveMe -import net.corda.gradle.unwanted.HasUnwantedFun -import net.corda.gradle.unwanted.HasUnwantedVal -import net.corda.gradle.unwanted.HasUnwantedVar - -@RemoveMe -class HasUnwantedAnnotations @RemoveMe constructor( - longValue: Long, message: String -) : HasUnwantedVar, HasUnwantedVal, HasUnwantedFun { - @RemoveMe - constructor() : this(999L, "") - - @field:RemoveMe - @JvmField - val longField: Long = longValue - - @get:RemoveMe - @property:RemoveMe - override val unwantedVal: String = message - - @get:RemoveMe - @set:RemoveMe - @property:RemoveMe - override var unwantedVar: String = message - - @RemoveMe - override fun unwantedFun(str: String): String { - return "[$str]" - } -} diff --git a/buildSrc/jarfilter/src/test/resources/repositories.gradle b/buildSrc/jarfilter/src/test/resources/repositories.gradle deleted file mode 100644 index 2a25f5bbd4..0000000000 --- a/buildSrc/jarfilter/src/test/resources/repositories.gradle +++ /dev/null @@ -1,4 +0,0 @@ -repositories { - mavenLocal() - jcenter() -} diff --git a/buildSrc/jarfilter/src/test/resources/sanitise-delete-constructor/build.gradle b/buildSrc/jarfilter/src/test/resources/sanitise-delete-constructor/build.gradle deleted file mode 100644 index 6fc9780cf8..0000000000 --- a/buildSrc/jarfilter/src/test/resources/sanitise-delete-constructor/build.gradle +++ /dev/null @@ -1,34 +0,0 @@ -plugins { - id 'org.jetbrains.kotlin.jvm' version '$kotlin_version' - id 'net.corda.plugins.jar-filter' -} -apply from: 'repositories.gradle' - -sourceSets { - main { - kotlin { - srcDir files( - '../resources/test/sanitise-delete-constructor/kotlin', - '../resources/test/annotations/kotlin' - ) - } - } -} - -dependencies { - compile 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' - compileOnly files('../../unwanteds/build/libs/unwanteds.jar') -} - -jar { - baseName = 'sanitise-delete-constructor' -} - -import net.corda.gradle.jarfilter.JarFilterTask -task jarFilter(type: JarFilterTask) { - jars jar - annotations { - forDelete = ["net.corda.gradle.jarfilter.DeleteMe"] - forSanitise = ["net.corda.gradle.jarfilter.DeleteMe"] - } -} diff --git a/buildSrc/jarfilter/src/test/resources/sanitise-delete-constructor/kotlin/net/corda/gradle/HasOverloadedConstructorsToDelete.kt b/buildSrc/jarfilter/src/test/resources/sanitise-delete-constructor/kotlin/net/corda/gradle/HasOverloadedConstructorsToDelete.kt deleted file mode 100644 index b5b257ab99..0000000000 --- a/buildSrc/jarfilter/src/test/resources/sanitise-delete-constructor/kotlin/net/corda/gradle/HasOverloadedConstructorsToDelete.kt +++ /dev/null @@ -1,48 +0,0 @@ -@file:JvmName("HasOverloadedConstructorsToDelete") -@file:Suppress("UNUSED") -package net.corda.gradle - -import net.corda.gradle.jarfilter.DeleteMe -import net.corda.gradle.unwanted.* - -private const val DEFAULT_MESSAGE = "" - -class HasOverloadedStringConstructorToDelete @JvmOverloads @DeleteMe constructor(private val message: String = DEFAULT_MESSAGE) : HasString { - override fun stringData(): String = message -} - -class HasOverloadedLongConstructorToDelete @JvmOverloads @DeleteMe constructor(private val data: Long = 0) : HasLong { - override fun longData(): Long = data -} - -class HasOverloadedIntConstructorToDelete @JvmOverloads @DeleteMe constructor(private val data: Int = 0) : HasInt { - override fun intData(): Int = data -} - -/** - * This case is complex because: - * - The primary constructor has two parameters. - * - The first constructor parameter has a default value. - * - The second constructor parameter is mandatory. - */ -class HasOverloadedComplexConstructorToDelete @JvmOverloads @DeleteMe constructor(private val data: Int = 0, private val message: String) - : HasInt, HasString -{ - override fun stringData(): String = message - override fun intData(): Int = data -} - -class HasMultipleStringConstructorsToDelete(private val message: String) : HasString { - @DeleteMe constructor() : this(DEFAULT_MESSAGE) - override fun stringData(): String = message -} - -class HasMultipleLongConstructorsToDelete(private val data: Long) : HasLong { - @DeleteMe constructor() : this(0) - override fun longData(): Long = data -} - -class HasMultipleIntConstructorsToDelete(private val data: Int) : HasInt { - @DeleteMe constructor() : this(0) - override fun intData(): Int = data -} diff --git a/buildSrc/jarfilter/src/test/resources/sanitise-stub-constructor/build.gradle b/buildSrc/jarfilter/src/test/resources/sanitise-stub-constructor/build.gradle deleted file mode 100644 index 0eef51c207..0000000000 --- a/buildSrc/jarfilter/src/test/resources/sanitise-stub-constructor/build.gradle +++ /dev/null @@ -1,34 +0,0 @@ -plugins { - id 'org.jetbrains.kotlin.jvm' version '$kotlin_version' - id 'net.corda.plugins.jar-filter' -} -apply from: 'repositories.gradle' - -sourceSets { - main { - kotlin { - srcDir files( - '../resources/test/sanitise-stub-constructor/kotlin', - '../resources/test/annotations/kotlin' - ) - } - } -} - -dependencies { - compile 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' - compileOnly files('../../unwanteds/build/libs/unwanteds.jar') -} - -jar { - baseName = 'sanitise-stub-constructor' -} - -import net.corda.gradle.jarfilter.JarFilterTask -task jarFilter(type: JarFilterTask) { - jars jar - annotations { - forStub = ["net.corda.gradle.jarfilter.StubMeOut"] - forSanitise = ["net.corda.gradle.jarfilter.StubMeOut"] - } -} diff --git a/buildSrc/jarfilter/src/test/resources/sanitise-stub-constructor/kotlin/net/corda/gradle/HasOverloadedConstructorsToStub.kt b/buildSrc/jarfilter/src/test/resources/sanitise-stub-constructor/kotlin/net/corda/gradle/HasOverloadedConstructorsToStub.kt deleted file mode 100644 index 47e4882957..0000000000 --- a/buildSrc/jarfilter/src/test/resources/sanitise-stub-constructor/kotlin/net/corda/gradle/HasOverloadedConstructorsToStub.kt +++ /dev/null @@ -1,48 +0,0 @@ -@file:JvmName("HasOverloadedConstructorsToStub") -@file:Suppress("UNUSED") -package net.corda.gradle - -import net.corda.gradle.jarfilter.StubMeOut -import net.corda.gradle.unwanted.* - -private const val DEFAULT_MESSAGE = "" - -class HasOverloadedStringConstructorToStub @JvmOverloads @StubMeOut constructor(private val message: String = DEFAULT_MESSAGE) : HasString { - override fun stringData(): String = message -} - -class HasOverloadedLongConstructorToStub @JvmOverloads @StubMeOut constructor(private val data: Long = 0) : HasLong { - override fun longData(): Long = data -} - -class HasOverloadedIntConstructorToStub @JvmOverloads @StubMeOut constructor(private val data: Int = 0) : HasInt { - override fun intData(): Int = data -} - -/** - * This case is complex because: - * - The primary constructor has two parameters. - * - The first constructor parameter has a default value. - * - The second constructor parameter is mandatory. - */ -class HasOverloadedComplexConstructorToStub @JvmOverloads @StubMeOut constructor(private val data: Int = 0, private val message: String) - : HasInt, HasString -{ - override fun stringData(): String = message - override fun intData(): Int = data -} - -class HasMultipleStringConstructorsToStub(private val message: String) : HasString { - @StubMeOut constructor() : this(DEFAULT_MESSAGE) - override fun stringData(): String = message -} - -class HasMultipleLongConstructorsToStub(private val data: Long) : HasLong { - @StubMeOut constructor() : this(0) - override fun longData(): Long = data -} - -class HasMultipleIntConstructorsToStub(private val data: Int) : HasInt { - @StubMeOut constructor() : this(0) - override fun intData(): Int = data -} diff --git a/buildSrc/jarfilter/src/test/resources/settings.gradle b/buildSrc/jarfilter/src/test/resources/settings.gradle deleted file mode 100644 index 7e0a88c8e3..0000000000 --- a/buildSrc/jarfilter/src/test/resources/settings.gradle +++ /dev/null @@ -1,6 +0,0 @@ -// Common settings for all Gradle test projects. -pluginManagement { - repositories { - gradlePluginPortal() - } -} diff --git a/buildSrc/jarfilter/src/test/resources/stub-constructor/build.gradle b/buildSrc/jarfilter/src/test/resources/stub-constructor/build.gradle deleted file mode 100644 index 857ce08d50..0000000000 --- a/buildSrc/jarfilter/src/test/resources/stub-constructor/build.gradle +++ /dev/null @@ -1,33 +0,0 @@ -plugins { - id 'org.jetbrains.kotlin.jvm' version '$kotlin_version' - id 'net.corda.plugins.jar-filter' -} -apply from: 'repositories.gradle' - -sourceSets { - main { - kotlin { - srcDir files( - '../resources/test/stub-constructor/kotlin', - '../resources/test/annotations/kotlin' - ) - } - } -} - -dependencies { - compile 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' - compileOnly files('../../unwanteds/build/libs/unwanteds.jar') -} - -jar { - baseName = 'stub-constructor' -} - -import net.corda.gradle.jarfilter.JarFilterTask -task jarFilter(type: JarFilterTask) { - jars jar - annotations { - forStub = ["net.corda.gradle.jarfilter.StubMeOut"] - } -} diff --git a/buildSrc/jarfilter/src/test/resources/stub-constructor/kotlin/net/corda/gradle/HasConstructorToStub.kt b/buildSrc/jarfilter/src/test/resources/stub-constructor/kotlin/net/corda/gradle/HasConstructorToStub.kt deleted file mode 100644 index 5683a97243..0000000000 --- a/buildSrc/jarfilter/src/test/resources/stub-constructor/kotlin/net/corda/gradle/HasConstructorToStub.kt +++ /dev/null @@ -1,15 +0,0 @@ -@file:Suppress("UNUSED") -package net.corda.gradle - -import net.corda.gradle.jarfilter.StubMeOut -import net.corda.gradle.unwanted.HasAll - -class HasConstructorToStub(private val message: String, private val data: Long) : HasAll { - @StubMeOut constructor(message: String) : this(message, 0) - @StubMeOut constructor(data: Long) : this("", data) - constructor(data: Int) : this("", data.toLong()) - - override fun stringData(): String = message - override fun longData(): Long = data - override fun intData(): Int = data.toInt() -} diff --git a/buildSrc/jarfilter/src/test/resources/stub-constructor/kotlin/net/corda/gradle/PrimaryConstructorsToStub.kt b/buildSrc/jarfilter/src/test/resources/stub-constructor/kotlin/net/corda/gradle/PrimaryConstructorsToStub.kt deleted file mode 100644 index 1e25467643..0000000000 --- a/buildSrc/jarfilter/src/test/resources/stub-constructor/kotlin/net/corda/gradle/PrimaryConstructorsToStub.kt +++ /dev/null @@ -1,21 +0,0 @@ -@file:JvmName("PrimaryConstructorsToStub") -@file:Suppress("UNUSED") -package net.corda.gradle - -import net.corda.gradle.jarfilter.StubMeOut -import net.corda.gradle.unwanted.HasInt -import net.corda.gradle.unwanted.HasLong -import net.corda.gradle.unwanted.HasString - -class PrimaryIntConstructorToStub @StubMeOut constructor(private val value: Int) : HasInt { - override fun intData() = value -} - -class PrimaryLongConstructorToStub @StubMeOut constructor(private val value: Long) : HasLong { - override fun longData() = value -} - -class PrimaryStringConstructorToStub @StubMeOut constructor(private val value: String) : HasString { - override fun stringData() = value -} - diff --git a/buildSrc/jarfilter/src/test/resources/stub-function/build.gradle b/buildSrc/jarfilter/src/test/resources/stub-function/build.gradle deleted file mode 100644 index 98a3d6275a..0000000000 --- a/buildSrc/jarfilter/src/test/resources/stub-function/build.gradle +++ /dev/null @@ -1,33 +0,0 @@ -plugins { - id 'org.jetbrains.kotlin.jvm' version '$kotlin_version' - id 'net.corda.plugins.jar-filter' -} -apply from: 'repositories.gradle' - -sourceSets { - main { - kotlin { - srcDir files( - '../resources/test/stub-function/kotlin', - '../resources/test/annotations/kotlin' - ) - } - } -} - -dependencies { - compile 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' - compileOnly files('../../unwanteds/build/libs/unwanteds.jar') -} - -jar { - baseName = 'stub-function' -} - -import net.corda.gradle.jarfilter.JarFilterTask -task jarFilter(type: JarFilterTask) { - jars jar - annotations { - forStub = ["net.corda.gradle.jarfilter.StubMeOut"] - } -} diff --git a/buildSrc/jarfilter/src/test/resources/stub-function/kotlin/net/corda/gradle/HasFunctionToStub.kt b/buildSrc/jarfilter/src/test/resources/stub-function/kotlin/net/corda/gradle/HasFunctionToStub.kt deleted file mode 100644 index 32c3a17533..0000000000 --- a/buildSrc/jarfilter/src/test/resources/stub-function/kotlin/net/corda/gradle/HasFunctionToStub.kt +++ /dev/null @@ -1,14 +0,0 @@ -@file:Suppress("UNUSED") -package net.corda.gradle - -import net.corda.gradle.jarfilter.StubMeOut -import net.corda.gradle.unwanted.HasUnwantedFun -import javax.annotation.Resource - -class HasFunctionToStub : HasUnwantedFun { - @StubMeOut - @Resource - override fun unwantedFun(@Parameter str: String): String { - return str - } -} diff --git a/buildSrc/jarfilter/src/test/resources/stub-function/kotlin/net/corda/gradle/RuntimeAnnotations.kt b/buildSrc/jarfilter/src/test/resources/stub-function/kotlin/net/corda/gradle/RuntimeAnnotations.kt deleted file mode 100644 index ef1e66b89b..0000000000 --- a/buildSrc/jarfilter/src/test/resources/stub-function/kotlin/net/corda/gradle/RuntimeAnnotations.kt +++ /dev/null @@ -1,11 +0,0 @@ -@file:JvmName("RuntimeAnnotations") -package net.corda.gradle - -import kotlin.annotation.AnnotationRetention.* -import kotlin.annotation.AnnotationTarget.* -import kotlin.annotation.Retention -import kotlin.annotation.Target - -@Target(VALUE_PARAMETER) -@Retention(RUNTIME) -annotation class Parameter diff --git a/buildSrc/jarfilter/src/test/resources/stub-static-function/build.gradle b/buildSrc/jarfilter/src/test/resources/stub-static-function/build.gradle deleted file mode 100644 index 75eb1e2cfe..0000000000 --- a/buildSrc/jarfilter/src/test/resources/stub-static-function/build.gradle +++ /dev/null @@ -1,33 +0,0 @@ -plugins { - id 'org.jetbrains.kotlin.jvm' version '$kotlin_version' - id 'net.corda.plugins.jar-filter' -} -apply from: 'repositories.gradle' - -sourceSets { - main { - kotlin { - srcDir files( - '../resources/test/stub-static-function/kotlin', - '../resources/test/annotations/kotlin' - ) - } - } -} - -dependencies { - compile 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' - compileOnly files('../../unwanteds/build/libs/unwanteds.jar') -} - -jar { - baseName = 'stub-static-function' -} - -import net.corda.gradle.jarfilter.JarFilterTask -task jarFilter(type: JarFilterTask) { - jars jar - annotations { - forStub = ["net.corda.gradle.jarfilter.StubMeOut"] - } -} diff --git a/buildSrc/jarfilter/src/test/resources/stub-static-function/kotlin/net/corda/gradle/StaticFunctionsToStub.kt b/buildSrc/jarfilter/src/test/resources/stub-static-function/kotlin/net/corda/gradle/StaticFunctionsToStub.kt deleted file mode 100644 index ffeece6a04..0000000000 --- a/buildSrc/jarfilter/src/test/resources/stub-static-function/kotlin/net/corda/gradle/StaticFunctionsToStub.kt +++ /dev/null @@ -1,22 +0,0 @@ -@file:JvmName("StaticFunctionsToStub") -@file:Suppress("UNUSED") -package net.corda.gradle - -import net.corda.gradle.jarfilter.StubMeOut - -@StubMeOut -fun unwantedStringToStub(value: String): String = value - -@StubMeOut -fun unwantedIntToStub(value: Int): Int = value - -@StubMeOut -fun unwantedLongToStub(value: Long): Long = value - -private var seed: Int = 0 -val staticSeed: Int get() = seed - -@StubMeOut -fun unwantedVoidToStub() { - ++seed -} diff --git a/buildSrc/jarfilter/src/test/resources/stub-val-property/build.gradle b/buildSrc/jarfilter/src/test/resources/stub-val-property/build.gradle deleted file mode 100644 index e92e2b68c0..0000000000 --- a/buildSrc/jarfilter/src/test/resources/stub-val-property/build.gradle +++ /dev/null @@ -1,33 +0,0 @@ -plugins { - id 'org.jetbrains.kotlin.jvm' version '$kotlin_version' - id 'net.corda.plugins.jar-filter' -} -apply from: 'repositories.gradle' - -sourceSets { - main { - kotlin { - srcDir files( - '../resources/test/stub-val-property/kotlin', - '../resources/test/annotations/kotlin' - ) - } - } -} - -dependencies { - compile 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' - compileOnly files('../../unwanteds/build/libs/unwanteds.jar') -} - -jar { - baseName = 'stub-val-property' -} - -import net.corda.gradle.jarfilter.JarFilterTask -task jarFilter(type: JarFilterTask) { - jars jar - annotations { - forStub = ["net.corda.gradle.jarfilter.StubMeOut"] - } -} diff --git a/buildSrc/jarfilter/src/test/resources/stub-val-property/kotlin/net/corda/gradle/HasValPropertyForStub.kt b/buildSrc/jarfilter/src/test/resources/stub-val-property/kotlin/net/corda/gradle/HasValPropertyForStub.kt deleted file mode 100644 index b9a6c042b4..0000000000 --- a/buildSrc/jarfilter/src/test/resources/stub-val-property/kotlin/net/corda/gradle/HasValPropertyForStub.kt +++ /dev/null @@ -1,7 +0,0 @@ -@file:Suppress("UNUSED") -package net.corda.gradle - -import net.corda.gradle.jarfilter.StubMeOut -import net.corda.gradle.unwanted.HasUnwantedVal - -class HasValPropertyForStub(@get:StubMeOut override val unwantedVal: String) : HasUnwantedVal diff --git a/buildSrc/jarfilter/src/test/resources/stub-var-property/build.gradle b/buildSrc/jarfilter/src/test/resources/stub-var-property/build.gradle deleted file mode 100644 index d02be34534..0000000000 --- a/buildSrc/jarfilter/src/test/resources/stub-var-property/build.gradle +++ /dev/null @@ -1,33 +0,0 @@ -plugins { - id 'org.jetbrains.kotlin.jvm' version '$kotlin_version' - id 'net.corda.plugins.jar-filter' -} -apply from: 'repositories.gradle' - -sourceSets { - main { - kotlin { - srcDir files( - '../resources/test/stub-var-property/kotlin', - '../resources/test/annotations/kotlin' - ) - } - } -} - -dependencies { - compile 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' - compileOnly files('../../unwanteds/build/libs/unwanteds.jar') -} - -jar { - baseName = 'stub-var-property' -} - -import net.corda.gradle.jarfilter.JarFilterTask -task jarFilter(type: JarFilterTask) { - jars jar - annotations { - forStub = ["net.corda.gradle.jarfilter.StubMeOut"] - } -} diff --git a/buildSrc/jarfilter/src/test/resources/stub-var-property/kotlin/net/corda/gradle/HasVarPropertyForStub.kt b/buildSrc/jarfilter/src/test/resources/stub-var-property/kotlin/net/corda/gradle/HasVarPropertyForStub.kt deleted file mode 100644 index 8f346142b0..0000000000 --- a/buildSrc/jarfilter/src/test/resources/stub-var-property/kotlin/net/corda/gradle/HasVarPropertyForStub.kt +++ /dev/null @@ -1,10 +0,0 @@ -@file:JvmName("HasVarPropertyForStub") -@file:Suppress("UNUSED") -package net.corda.gradle - -import net.corda.gradle.jarfilter.StubMeOut -import net.corda.gradle.unwanted.HasUnwantedVar - -class HasUnwantedGetForStub(@get:StubMeOut override var unwantedVar: String) : HasUnwantedVar - -class HasUnwantedSetForStub(@set:StubMeOut override var unwantedVar: String) : HasUnwantedVar \ No newline at end of file diff --git a/buildSrc/jarfilter/unwanteds/build.gradle b/buildSrc/jarfilter/unwanteds/build.gradle deleted file mode 100644 index 0f2deeb1c6..0000000000 --- a/buildSrc/jarfilter/unwanteds/build.gradle +++ /dev/null @@ -1,12 +0,0 @@ -apply plugin: 'kotlin' - -description 'Test artifacts for the jar-filter plugin.' - -repositories { - mavenLocal() - jcenter() -} - -dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8" -} diff --git a/buildSrc/jarfilter/unwanteds/src/main/kotlin/net/corda/gradle/unwanted/HasData.kt b/buildSrc/jarfilter/unwanteds/src/main/kotlin/net/corda/gradle/unwanted/HasData.kt deleted file mode 100644 index 87e52bbbf7..0000000000 --- a/buildSrc/jarfilter/unwanteds/src/main/kotlin/net/corda/gradle/unwanted/HasData.kt +++ /dev/null @@ -1,16 +0,0 @@ -@file:JvmName("HasData") -package net.corda.gradle.unwanted - -interface HasString { - fun stringData(): String -} - -interface HasLong { - fun longData(): Long -} - -interface HasInt { - fun intData(): Int -} - -interface HasAll : HasInt, HasLong, HasString \ No newline at end of file diff --git a/buildSrc/jarfilter/unwanteds/src/main/kotlin/net/corda/gradle/unwanted/HasUnwantedFun.kt b/buildSrc/jarfilter/unwanteds/src/main/kotlin/net/corda/gradle/unwanted/HasUnwantedFun.kt deleted file mode 100644 index f66b53c8b7..0000000000 --- a/buildSrc/jarfilter/unwanteds/src/main/kotlin/net/corda/gradle/unwanted/HasUnwantedFun.kt +++ /dev/null @@ -1,5 +0,0 @@ -package net.corda.gradle.unwanted - -interface HasUnwantedFun { - fun unwantedFun(str: String): String -} diff --git a/buildSrc/jarfilter/unwanteds/src/main/kotlin/net/corda/gradle/unwanted/HasUnwantedVal.kt b/buildSrc/jarfilter/unwanteds/src/main/kotlin/net/corda/gradle/unwanted/HasUnwantedVal.kt deleted file mode 100644 index b19d043345..0000000000 --- a/buildSrc/jarfilter/unwanteds/src/main/kotlin/net/corda/gradle/unwanted/HasUnwantedVal.kt +++ /dev/null @@ -1,5 +0,0 @@ -package net.corda.gradle.unwanted - -interface HasUnwantedVal { - val unwantedVal: String -} diff --git a/buildSrc/jarfilter/unwanteds/src/main/kotlin/net/corda/gradle/unwanted/HasUnwantedVar.kt b/buildSrc/jarfilter/unwanteds/src/main/kotlin/net/corda/gradle/unwanted/HasUnwantedVar.kt deleted file mode 100644 index 7406028cb8..0000000000 --- a/buildSrc/jarfilter/unwanteds/src/main/kotlin/net/corda/gradle/unwanted/HasUnwantedVar.kt +++ /dev/null @@ -1,5 +0,0 @@ -package net.corda.gradle.unwanted - -interface HasUnwantedVar { - var unwantedVar: String -} diff --git a/buildSrc/jarfilter/unwanteds/src/main/kotlin/net/corda/gradle/unwanted/HasVal.kt b/buildSrc/jarfilter/unwanteds/src/main/kotlin/net/corda/gradle/unwanted/HasVal.kt deleted file mode 100644 index 7aeb75ca35..0000000000 --- a/buildSrc/jarfilter/unwanteds/src/main/kotlin/net/corda/gradle/unwanted/HasVal.kt +++ /dev/null @@ -1,17 +0,0 @@ -@file:JvmName("HasVal") -@file:Suppress("UNUSED") -package net.corda.gradle.unwanted - -interface HasStringVal { - val stringVal: String -} - -interface HasLongVal { - val longVal: Long -} - -interface HasIntVal { - val intVal: Int -} - -interface HasAllVal : HasIntVal, HasLongVal, HasStringVal \ No newline at end of file diff --git a/buildSrc/jarfilter/unwanteds/src/main/kotlin/net/corda/gradle/unwanted/HasVar.kt b/buildSrc/jarfilter/unwanteds/src/main/kotlin/net/corda/gradle/unwanted/HasVar.kt deleted file mode 100644 index 74fa87062c..0000000000 --- a/buildSrc/jarfilter/unwanteds/src/main/kotlin/net/corda/gradle/unwanted/HasVar.kt +++ /dev/null @@ -1,17 +0,0 @@ -@file:JvmName("HasVar") -@file:Suppress("UNUSED") -package net.corda.gradle.unwanted - -interface HasStringVar { - var stringVar: String -} - -interface HasLongVar { - var longVar: Long -} - -interface HasIntVar { - var intVar: Int -} - -interface HasAllVar : HasIntVar, HasLongVar, HasStringVar diff --git a/buildSrc/settings.gradle b/buildSrc/settings.gradle index e493d16467..c46d96de90 100644 --- a/buildSrc/settings.gradle +++ b/buildSrc/settings.gradle @@ -1,5 +1,2 @@ rootProject.name = 'buildSrc' include 'canonicalizer' -include 'jarfilter' -include 'jarfilter:unwanteds' -include 'jarfilter:kotlin-metadata' diff --git a/constants.properties b/constants.properties index 128272acb1..5316805e68 100644 --- a/constants.properties +++ b/constants.properties @@ -1,4 +1,4 @@ -gradlePluginsVersion=4.0.26 +gradlePluginsVersion=4.0.27 kotlinVersion=1.2.51 platformVersion=4 guavaVersion=25.1-jre diff --git a/jdk8u-deterministic/build.gradle b/jdk8u-deterministic/build.gradle index 2e4d0a2153..5bf793708f 100644 --- a/jdk8u-deterministic/build.gradle +++ b/jdk8u-deterministic/build.gradle @@ -26,7 +26,7 @@ dependencies { task copyJdk(type: Copy) { outputs.dir jdk_home - from(configurations.jdk.asPath) { + from(configurations.jdk) { rename 'deterministic-rt-(.*).jar', 'rt.jar' } into "$jdk_home/jre/lib" From cad684fbd397b24e12d8f0fa286d334017e6eff3 Mon Sep 17 00:00:00 2001 From: Jonathan Sphar Date: Fri, 20 Jul 2018 06:55:32 -0400 Subject: [PATCH 2/6] Add Ubuntu environment setup instructions to docs/getting-set-up (#3608) * remove network simulator references in docs * Added environment setup instructions for Ubuntu * Revert "Upstream merge" This reverts commit db4920fa6801fe9903e45f54feea8b81772fdf25, reversing changes made to 208ac49da0caaf0dfc5ade9f8bd8a49d13f17aae. * Address review comments --- CONTRIBUTORS.md | 1 + docs/source/getting-set-up.rst | 36 ++++++++++++++++++++++++++++++++-- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index b6d01787bc..5179b3cff5 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -97,6 +97,7 @@ see changes to this list. * Johann Palychata (BNP Paribas) * johnnyychiu * Jonathan Sartin (R3) +* Jonathan Sphar (R3) * Jose Coll (R3) * Jose Luu (Natixis) * Josh Lindl (BCS) diff --git a/docs/source/getting-set-up.rst b/docs/source/getting-set-up.rst index 8fa4f8060a..a96dfbb0ab 100644 --- a/docs/source/getting-set-up.rst +++ b/docs/source/getting-set-up.rst @@ -43,12 +43,14 @@ The set-up instructions are available for the following platforms: * :ref:`mac-label` (or `in video form `__) +* :ref:`deb-ubuntu-label` + .. _windows-label: Windows ------- -.. warning:: If you are using a Mac machine, please follow the :ref:`mac-label` instructions instead. +.. warning:: If you are using a Mac or a Debian/Ubuntu machine, please follow the :ref:`mac-label` or :ref:`deb-ubuntu-label` instructions instead. Java ^^^^ @@ -78,7 +80,7 @@ IntelliJ Mac --- -.. warning:: If you are using a Windows machine, please follow the :ref:`windows-label` instructions instead. +.. warning:: If you are using a Windows or a Debian/Ubuntu machine, please follow the :ref:`windows-label` or :ref:`deb-ubuntu-label` instructions instead. Java ^^^^ @@ -95,6 +97,36 @@ IntelliJ 2. Download and run the executable to install IntelliJ Community Edition (use the default settings) 3. Ensure the Kotlin plugin in Intellij is updated to version |kotlin_version| +.. _deb-ubuntu-label: + +Debian/Ubuntu +------ + +.. warning:: If you are using a Mac or a Windows machine, please follow the :ref:`mac-label` or :ref:`windows-label` instructions instead. + +These instructions were tested on Ubuntu Desktop 18.04 LTS. + +Java +^^^^ +1. Open a new terminal and add the Oracle PPA to your repositories by typing ``sudo add-apt-repository ppa:webupd8team/java``. Press ENTER when prompted. +2. Update your packages list with the command ``sudo apt update`` +3. Install the Oracle JDK 8 by typing ``sudo apt install oracle-java8-installer``. Press Y when prompted and agree to the licence terms. +4. Verify that the JDK was installed correctly by running ``java -version`` + +Git +^^^^ +1. From the terminal, Git can be installed using apt with the command ``sudo apt install git`` +2. Verify that git was installed correctly by typing ``git --version`` + +IntelliJ +^^^^^^^^ +Jetbrains offers a pre-built snap package that allows for easy, one-step installation of IntelliJ onto Ubuntu. + +1. To download the snap, navigate to https://snapcraft.io/intellij-idea-community +2. Click ``Install``, then ``View in Desktop Store``. Choose ``Ubuntu Software`` in the Launch Application window. +3. Ensure the Kotlin plugin in Intellij is updated to version |kotlin_version| + + Next steps ---------- First, run the :doc:`example CorDapp `. From e5d82cc9b44a7dd8f946c97c0ba63b150d92df88 Mon Sep 17 00:00:00 2001 From: Nick Arini Date: Fri, 20 Jul 2018 16:21:24 +0100 Subject: [PATCH 3/6] Na testnet explorer docs (#3660) * added doc on testing deployment with node explorer --- docs/source/aws-vm-explore.rst | 19 ++- docs/source/azure-vm-explore.rst | 20 ++- docs/source/corda-networks-index.rst | 1 + docs/source/deploy-locally.rst | 7 + docs/source/gcp-vm.rst | 20 ++- .../source/resources/explorer-cash-issue1.png | Bin 0 -> 115092 bytes .../source/resources/explorer-cash-issue2.png | Bin 0 -> 221715 bytes .../source/resources/explorer-cash-issue3.png | Bin 0 -> 181575 bytes docs/source/resources/explorer-login.png | Bin 0 -> 57805 bytes docs/source/resources/explorer-network.png | Bin 0 -> 409205 bytes .../resources/explorer-transactions.png | Bin 0 -> 348701 bytes docs/source/resources/installed-cordapps.png | Bin 0 -> 21882 bytes docs/source/testnet-explorer-corda.rst | 127 ++++++++++++++++++ 13 files changed, 188 insertions(+), 6 deletions(-) create mode 100644 docs/source/resources/explorer-cash-issue1.png create mode 100644 docs/source/resources/explorer-cash-issue2.png create mode 100644 docs/source/resources/explorer-cash-issue3.png create mode 100644 docs/source/resources/explorer-login.png create mode 100644 docs/source/resources/explorer-network.png create mode 100644 docs/source/resources/explorer-transactions.png create mode 100644 docs/source/resources/installed-cordapps.png create mode 100644 docs/source/testnet-explorer-corda.rst diff --git a/docs/source/aws-vm-explore.rst b/docs/source/aws-vm-explore.rst index 7dcb725fae..74928b713d 100644 --- a/docs/source/aws-vm-explore.rst +++ b/docs/source/aws-vm-explore.rst @@ -106,6 +106,21 @@ your unique Corda instance on that instance: .. warning:: This command will execute the install script as ROOT on your cloud instance. You may wish to examine the script prior to executing it on your machine. -You can now navigate to the external web address of the instance and -see any cordapps running on port 8080 (if you have any installed). +You can follow the progress of the installation by typing the following command in your terminal: + +.. code:: bash + + tail -f /opt/corda/logs/node-.log + +Once the node has booted up you can navigate to the external web address of the instance on port 8080. If everything is working you should see the following: + +.. image:: resources/installed-cordapps.png + + +Testing your deployment +----------------------- + +To test your deployment is working correctly follow the instructions in :doc:`testnet-explorer-corda` to set up the Finance CorDapp and issue cash to a counterparty. + +This will also demonstrate how to install a custom CorDapp. diff --git a/docs/source/azure-vm-explore.rst b/docs/source/azure-vm-explore.rst index ef64a86782..cd0c627725 100644 --- a/docs/source/azure-vm-explore.rst +++ b/docs/source/azure-vm-explore.rst @@ -131,5 +131,21 @@ your unique Corda node: .. warning:: This command will execute the install script as ROOT on your cloud instance. You may wish to examine the script prior to executing it on your machine. -You can now navigate to the external web address of the instance and -see any cordapps running on port 8080 (if you have any installed). +You can follow the progress of the installation by typing the following command in your terminal: + +.. code:: bash + + tail -f /opt/corda/logs/node-.log + +Once the node has booted up you can navigate to the external web address of the instance on port 8080. If everything is working you should see the following: + +.. image:: resources/installed-cordapps.png + + +Testing your deployment +----------------------- + +To test your deployment is working correctly follow the instructions in :doc:`testnet-explorer-corda` to set up the Finance CorDapp and issue cash to a counterparty. + +This will also demonstrate how to install a custom CorDapp. + diff --git a/docs/source/corda-networks-index.rst b/docs/source/corda-networks-index.rst index e10db32a70..296d92738d 100644 --- a/docs/source/corda-networks-index.rst +++ b/docs/source/corda-networks-index.rst @@ -14,4 +14,5 @@ Networks aws-vm-explore gcp-vm deploy-locally + testnet-explorer-corda cipher-suites diff --git a/docs/source/deploy-locally.rst b/docs/source/deploy-locally.rst index 9180c78247..bf2221d3c8 100644 --- a/docs/source/deploy-locally.rst +++ b/docs/source/deploy-locally.rst @@ -155,3 +155,10 @@ Run the ``run-corda.sh`` script to start your Corda node. Congratulations! You now have a running Corda node on Testnet. .. warning:: It is possible to copy the ``node.zip`` file from your local machine to any other host machine and run the Corda node from there. Do not run multiple copies of the same node (i.e. with the same identity). If a new copy of the node appears on the network then the network map server will interpret this as a change in the address of the node and route traffic to the most recent instance. Any states which are on the old node will no longer be available and undefined behaviour may result. Please provision a new node from the application instead. + + +Testing your deployment +----------------------- + +To test your deployment is working correctly follow the instructions in :doc:`testnet-explorer-corda` to set up the Finance CorDapp and issue cash to a counterparty. + diff --git a/docs/source/gcp-vm.rst b/docs/source/gcp-vm.rst index 8f5f8e9606..02ecd600f0 100644 --- a/docs/source/gcp-vm.rst +++ b/docs/source/gcp-vm.rst @@ -116,5 +116,21 @@ your unique Corda instance: .. warning:: This command will execute the install script as ROOT on your cloud instance. You may wish to examine the script prior to executing it on your machine. -You can now navigate to the external web address of the instance and -see any cordapps running on port 8080 (if you have any installed). +You can follow the progress of the installation by typing the following command in your terminal: + +.. code:: bash + + tail -f /opt/corda/logs/node-.log + +Once the node has booted up you can navigate to the external web address of the instance on port 8080. If everything is working you should see the following: + +.. image:: resources/installed-cordapps.png + + +Testing your deployment +----------------------- + +To test your deployment is working correctly follow the instructions in :doc:`testnet-explorer-corda` to set up the Finance CorDapp and issue cash to a counterparty. + +This will also demonstrate how to install a custom CorDapp. + diff --git a/docs/source/resources/explorer-cash-issue1.png b/docs/source/resources/explorer-cash-issue1.png new file mode 100644 index 0000000000000000000000000000000000000000..dd3990e01ea66bb8374f83476d0720c6ddfe8e7d GIT binary patch literal 115092 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 z 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 N*PUE16D|hc|37mtYhnNZ literal 0 HcmV?d00001 diff --git a/docs/source/resources/explorer-cash-issue2.png b/docs/source/resources/explorer-cash-issue2.png new file mode 100644 index 0000000000000000000000000000000000000000..3a9ad3ffa2f84c62e8b2b26c21d9125d279d6c8d GIT binary patch literal 221715 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

<{y^ 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 z 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ෘHEvz`N#Z=!exP^= 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 literal 0 HcmV?d00001 diff --git a/docs/source/resources/explorer-cash-issue3.png b/docs/source/resources/explorer-cash-issue3.png new file mode 100644 index 0000000000000000000000000000000000000000..ca9b126941dcdd74749f613f9f268cd1673ab373 GIT binary patch literal 181575 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

8OyH6434 z9lg#6VM zj5B@Gy78lgt?757;DOzTQLsVE`&3cXo-%=tk~mr4^9ZWnXr{Ih*-LBwj0AeCljbxV ztBcdU9!O)mI@wY`d9j+2KPc2(yMRn`IwKPL0(27I*Sl{mWIPD~9WAsfAv44ZPB!Nv zpZ#S)HZ$Zz2A&jzaX2xkr_hN@zb3E%9 zZZZ5nwsi3Z=l^DM&hw$3rt+o<#AtRXd;U!&sVE=-i8fhHmTkcz9-DpILXKIĈs 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Ʒ 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%0Awe9BhTqRFFdm#8!23H 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%0A6YY3MA*n!f>r^1t| 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%0A%W*Mf_I=f+&f`M%rH;PFmmF? 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 literal 0 HcmV?d00001 diff --git a/docs/source/resources/explorer-login.png b/docs/source/resources/explorer-login.png new file mode 100644 index 0000000000000000000000000000000000000000..c10f33831ee3bc98f1932bfceffb6fe47c5ba458 GIT binary patch literal 57805 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 LDM?mBjDr3T8(6oM literal 0 HcmV?d00001 diff --git a/docs/source/resources/explorer-network.png b/docs/source/resources/explorer-network.png new file mode 100644 index 0000000000000000000000000000000000000000..230816ea6f03a5dfd0e05c82aba13450b15e0705 GIT binary patch literal 409205 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%0Do^s;%rB z(ryZH)=-dWz$C$siqW*20Feg(U3N4?(nD@OL1B@INwEB#BboEu&*8_j$zedbg6qk| zU1yT@k8~za;ov#J3p=X4O}{gJAy3iX#QANahyJPaQ`93Or35#$TMVZ(+!s{fBZq^R5` zKpun4jQ#u*{JLlZe)wqywUiAgEh$35rnLl9c|7xV=?fJ2lJW*za?MM4 z=E0LN=|$!vzwUE%>C%O+7fr`O${Tw5l3rP+qKJ5=`tqZhIj^_OEa(eAxM?x4YW2#- z#yx)p#CAqJ&GsuP1o3sbP?fdHqziMAo-q>0@VT{3#^~Z0rL#8upxt?Pwl!~^c)!ff zU1Z8KvsZ7`&gU$UI^P3nmrVO+Po-gNBxM7AG`7cb`Xap>A75e**UlD_k&8h*(l`XL0R z5afoTfps>N6tXMEslY>`e@~cmLloWYkzw*Ns0fz%zg9hA~&4j$yA( zWst*I{N>EY@!GTJV){G7=qEo0=@g7rloKd%4d$*{ZPMk1a7~4AO^MvWmuo;q zB2lRn5->9II%d7tw!|PUB^Z^=$RI{m&-zj5S;RF}!ka@AQxQrLiv``cecHaVzfyo} zmgkB$HKsJf^4xEW`dh1?ds2@ze+mjGKFTgO1#Ak~6lkP?cx|$V?NeF{fbVK==gysL zqQ>iffpcljKm71RnrkO+NyWCSb+zVwUVu(c3SW->9Mk5l!Hl^}5fc;5joNL}iY%Hw z#V}4gJCMunR8 zDczX(MS}V&f>*CUZBv?SoDMRWF5X&ER$&5cZ5fZQJAE18t(+;nr1=&z>Y}DwmC~xz^>rppnUX;v(HG3^yKyX9r&O*HJy zZfy2ZfpeTR3$NpNrDc&bLlw2YwL)Sltk{PPAQic0JhdK%*`H&fEMluMdTuw&pwou| zizGBCdJOt>2n+F_)E96bkS= zS#mgOKkgtSq&`|#O{=6c1rGeKLG$VX!TP3Y(OOZEKwr*Zh3YhYv+mG$P6{LZ*j@$w zH8pNug5Cg{&ev3wQJY_8G=2Uw4R?Bkc+&pW5lB>01L)~7y#WH4N{m$0gy^dIqMm-{ zL_YkB9F}R^jdb#wrbjjDx$-Xk8yKbf>gx0I_-q&+&E61_RhY_308H2%U z#q`(I#h`N}8mc!fLstKb@a~)c!qAKul;$$%7Mb*@UyB)vaSd4l9DO`N+ z0Bm0TKU{VGN%$(W3sR$)m)wwmYnfWh05`Qy4EEPF@C3G2C?GGGi2IA7yFL`fC7BungMhTT6=g%WDIJ#Z#z1RR<#Nqiyp`xOZCwK3U-1S*JBZG_|dO59%%1a6v6q7<#?vrksTI)RV=R2=+ z+(C19MRT|IS5dlsi{ANK?v*+>+P_Hf`%6)V9a(7XE%%81g^u<(Yzpj;6tMW;b{v^NdMLH%O@X1Cnk{Lw72SOiwQUN7 z)%5$_>7JfbeaeMCZ{9rg?b{bQ)b!qP!wp7rzPG`-#^MF&0t;V!_L0$`FUihj)M@%4 zakI`{w;Bt7olF`~+epx4n5pd$K?mZlYS6b+#jaguJ31C+CMj)<4o$VK{weCHfVOhN zn&`kC5*9Eh8Y7~w$xpx~7aofkS1!iB@E%qKr!WFIg$o2uTso~>WD03j+1iZDwjGsV zg2CRR=?>%eHd#&UACZHjW zk-ZA*7@Oe22kypk2~ouPv;dg#B_5{Fd1&X(bgKx)U(X+er0^0xw3x%$%H#hm{fe`#SJR?h#8e27H5tzXoRtd6=5{67=0 zuc?bh>$lcUHF8ZEdU1jIacp}_z|&5nwVSaiU{hcZDA4Wzy?GzylfG`a-hq^eg6FUNKQ`1rI%icFTVI9737>SQwCK?~VYV%BP`S;L&tEKxL>3#LX|TFw0dIB5*V;=(_`Xq>e+_EgZ-CR1p2 zkRV-AhpCOGK!+V}lcw6NQuSBb@48B?!-zy5%g<{$QK9Z& zz}%dKTb|!re^>#=6nt0d7Ta$>6+L8apa5}IOoOI;<)UG$7q%lls4KIxM0ZLxz_vr3 zYr8#QT5QnTOu}m0w0*aUXFp(5;DDh(`-@#Yq}AaUA0KbP`5kxMfxGX%8)Y=h6u4HA z&$z($o@~U5%&sze^k}0!pTdA=YD-#mZ$5UDYOEa(Gt;3R{4k0&1F&ccO|x8{NsL?? zW=zQRp@IpIJA@e&`(pY^=0tvP$^)w+w!n{|t4dl@{_co{>=ok?IFU-uq&aXh(z_quErDR80pdk5lWoE{?MCOMX%h3O_g>l_#iOuR&2CiE5pLCs z$<${RG;2-k+MWLK*4t38YcxaG95mGWBZX^B1`IU>?A6TO=eeyTjKJ>00Y(A6cglq> z(W;5!et?aCSBI-}YxDX{l$8|FeJj|2L7j01^pb{N@Y}$^okr5(ISF^Q{awmP@R7`$Rnv=J73X`U7?%Cfm z`=cO)Lr{NJbU^FiZfMwhIazl$79aW@SCgLJvh56bzu6amTd@L+RRaemhSQi}a!r|c ziNE(=;d@4Z{CYB5joS0Q*PB1wG6f7(j7iYAk{WB&8k3K>*Op{&QoXTP_Fo4s1?UFF zy&#m)u!|_TlOOt?2)+*l`W0>7$V??n_1OCmo@bUTm&PqOE*@+i5^U#<*8aNXo_3@b z+ZBM7CcUA)ru~2)$EwtGb<_qoR7t6@9lHEsQdoiqoomvh`_k`!UoOVt!SG6LMX!CC zI(FY}3fL6zQlQ-dx;AlvbNQU#ci(*&b^rZa%G;}mf98glX)8xF&k~Vr6rZmd`oxR*V>!{ zTrWmwLQR=cw#c{Jn9y~A36b!|&)1_dV1N8-{iyX(C^oy;6tF4KmK2cCw5Ga}83al^ z8diyw>`l5Qn!AHTp!90uMT(h0!Q?z=KsaA!TG$4F>b&-nk$akgwMmohV#N1$2kLC! zL2EVvSP4Me)?!MwXqI4J0YJ-m?pT8PX8cS`1m2@-G6}CY{^ttbCs(>{=3MjCKFa^y(dPjIeM$IVw}xxvA~7&B%Jq)FES z*>t9*%({J`& z{b$i3?zv}+S-T{o z0_Q3Up4O*NpPlu&RlYAMC@}RnJ5v5hgKItDR);OMpwgxre`3Q_d4aD5;9G?dtyD=h zBiyR&2>@)RF4)z0C}1oZ$j~UIn;3F`rri>AAQN*FF_!P*E)@w~WR|XX^bh&V$$yhR z=oB&u?AO**nf_QJv|Z|neUnWAn*yysfsUJHqZJ1C2dglkQzqN|rwl3q)TVngPEcd8 zMR2Y?v6`tvoi3&}GkdAry()|qncThhrjS}Yd)q4;EbBf+Ru2dYgWLiP8QO|1VdWA! z*OTu1WMThxChH8ggTn2TGiZ0(rodjIK)V5SX{{Amec-@>koH^}a!FvlKIh)i>snhL zFajF_m~*<*bv|?BsFl zYs>$=fqBLixmJDBQnA7LE)mbZ$)-RnQ$Xj2UA9L7qut~l>0(elxe3V+U3;g5-nvYLF*kQmXax61xuhwjWwqt<#pk72w>HY{wbVA(#m}@CPouo>JQO@<3tg(( zW=Mw9k!kxrsd*MSCr>M(kJgD@Yzo*Euqm*s6lgbqu87$R{5EsuOiY?I34i_TUp?TV z(d8*4xJd(Ep zJk3AvE^YSK{l1Kh?dL~7>Y9C2Qogqc$JzH)ZgB!=!z49f(&T&E07ly9H8E5CpKD$M zo}Cw&qe}y?7zm1HEDeBfJ)yN2SHm{#xDKU}VUlp(#5Juxfy|r$dXv28JFdb0)~0|> z0h6ndK(}TmZrhGGuU%k}{c^OE3ANmmyzW%ZyV7c(IVSNsZu<4hqCw;1 zrG2KDl%ld+qh&>h;x+df3fdjDDRAIYpj`pFwCE~lo_Qud|NL|FTc5oWUu|I0Y?qgp zd$h#*b`OdN6SVZCH1xp?4(AO0ahxADrb9Yd%>1I%9I4YHQw4%)992XN& zQ(Zx`;cD|)V8~x!iibj7&9?sFqP2@bZwR|kUb%Op`D(t^AC1wE0JE%Y9SRCU&^amC z#3e8T-ba3T>B=~>C}X;(aKHdN{%CqM2)pZ`F+3#ioEw0hBKv(Ca7UwmOS=`uSP2(4hSG37*`G;t#06B3xh zqiv!*>tI>9aG~i~PEL*m92&dXj(_bsP!aRsEy`&thQatXk+~=?u*OhZE#J8Y3!uxa ziU7T7Q4Rjoh-R){W-fQ`oJI+_l0of-1CM~5)4-h4Y~4@byb7HYk3j!}3-SGojp!Ug zi-9I%HXZJuKMY;TsCem`l$1um+ei~r~o1$(9)fB#IEw?OA=%5p9 zcgv=LO@X$dfHs#7vdQp;<+ZPF66*ays+tb}$o#1el1evRP&k;L$;;U|s@fI;;)D(8QeBNv0xe?RwmD=d(zz zU5;Cxcn(QP=^ij?s@dv?F>yBhlQgudwOL_%zWgV4K;~}S@L4T=uWB4*W(v!(wxkA; zog)zAtirmrz!M*QiDAcY!fnTQ$5TJ2qf2rPDrznBZB}LGYO6L(+hm?tr{>c1gY(%! zPn&hTbw4`UcGj9qTz~t&(bYE#H;sOJ$8;4lCs%HEyg6Mphq|uc1`Lz#GN)`_EKRsS zDps#R&;>W+^;<8%ygP2h9p5fRTIVoSkvT9-Bj?=spwrykhX7mF6{Za`5CYw1!b zap}yIK->gmH8ZoPHQCSE6tF39AX8x1oKahuLWPBe2BfRnlTSX`fOP%sAgGjvT}8Rl zm8V>v+v1;#`8)SMIM?yhr0nL|YMFcSc>*{Aaxn@{V~S^`(lNlu3+~8RI2}6RYH;K^ zm*cYY4zn8Ob6fX9Ac}R-N8jO7kLoHOjMRL(-A-BnWUj6=A*x)dXz{<&3B*U+UPtitq|aIAuDS!R{p*g z3|9aIQq$|_V!Mh!&N`|kNq52J0f!=$gVq2}w(Dk{M3bl{C{8ieIz7%m?wD%{m zYor+=^C~)ft7_mqPL9_>MzDqeSQM|1PC)O0haoLY?@pm%c%7`n=}SLJf@+3&Lr_R4 z0t3l>vZh-3hO<4*m&2F!u${UFt`D}OcTgP{18M|V1lW2;X76Iib|(t0#mg!JZw;Tf zEIP!v*u|!RO@aSs?>hkWsLHO-_TEdf+4MpRp?9PU3Rq~06ahg*u%Mv$p`arC9|9^U zh}Zy?PZY4w5$O;R=_NgzWJ@;Nd++}_&%CpFclX_1((Z-beczcockY~-%yZ9EcV`6n zej(Y?`y?}Wu6gG8O6To`iWHuTDOWX;>arr#locDv(j2KN<+S()?(;$qypg#rj-}aR z;u5zTf%M+flbc+3;C(THg$#55PoTVzeDkH$z}{osqWhv8D8gQ!O>m8MuqilBI7rr+ zlAG%j*Bk;40f)d?5!i03YmxMn6qe|ytHa4BpNwaoc?O3cemE0^$*M;h$-fN^4P(8o zo#Z$PwV-D5ZRA4E?`fiu!b_xBP3~3gZLPMz2wqh9gua=v#LPGA^|jyrFZGB*bVLO< zZ))^5D)zm6t9{POorh=={4k!UzF-sTY^z9Lv)31Km^FKv3G0gdjcB#4ik%OPg-py_ zJ{_C2eby`-eCR${`))nI)MN3&`MCa)!*IR!rOn0sY@oC_4-F#g2p%H~v*&O@K*Cs9 zXd|hEHHmMjAdos6vv~-U?ek1OeINEV-YOaFZ&?hzUMC7 z1Ccyl$^uzrI%rWht2!5|_I&vZFWI}6pNTSC7>rWhiXN{go=vx7>_o^GyBGN;+QPb6LQ9khu&4!UzH zc6etuYkH`6@uW8Kbi9T`X7;Yq!am3cM z;)m`n{5xq~kP=(rV6DxK_Suv?p$~Ce9Rdykhrpl+h|_GhCUP!!ceOLlI0IK-eKj_0 z*kIrNGHCW?m;KdGtQ%V#CuQW}ZOrs;TIWG<(@po66u~nPIggF4LP6m&Ty@7kvA(1f zWg9o5Z0iO*de7GpS-hEs?s&A4oM#_*7XJRqT9lPzDOf#1R-Z?8sa*(Uy!VblAM;qtRmQCQG~qT+J=_3uyNna3W--48sE z^2$nVEi1(vPu!2s#g_V-L(a% ztk{Ucjcf6{@0^QIn};!#+LlDA&Porlm0r8_EX4;3$KJ8N;_ zZTDeg!B&(OtwnjsR=j-IEy!K>0g7rrL{0Ly@ydT*$K8Lv4KKd86;&1Mu(fzK?*8%R zD9c-q9(pN=Oe+V3h`JUhazmBNy2Ymltl(x1=eFJ!v@r8rK)ELXhmH-GSAnb`LH&A< zbsro84uM@C0ea@>-6FD;l0FU9B}D=2>-N9&SjLmrRhC&ePa>0&)iFbR9h1PdHaFON z%d-*(&r|O{zTgJF@`F1~$!EP+nC znEEBF5A%;bKqvTVC&8?S)%EVn)Z9}Gj&2y^E)dKHHFIMBjdkLz#wC2slJ zsfaFFg(shQ9Pe#P#HTL29e@1Cmr=|FbCrjmfZspx8=QVv4nA1%ES`Ag6=cmh0{1-d zH(Y#lHOgBq!fiMH07oro!GE5A3QxcA9e^`1ZCqEjo_ArW(C zFTnAi`~*%uA`wqN`WW6>vjqp8d^WDS;diw9Z$>2DybaATc?E1iTl*pS(apcWEw|l< zGxzEtaqU7(uirk09B<>v2FhaL8ctkmam@|4Kt5r{q6YtNgu(cf;=34%fqy#YI$*efKLs;rdp()pwhc$MCath!)oTH)$8B4g8-Ak>I3p zieXpAcuSDO#iDO*(6cDQE~Swr`56e(c#(I?1Hvshvhv2Cv{zWn$_bJshut6iB+?M*rLlMb9w zR$6=C1`)=|o{a99>cubE>tHO}_iziZ%ciGSVp;~h_xuF4#A+N(*A&m#ew|A>Q5snC zPDEJ>iK%#IbPoL}M?q^tJ#VvjpQU7y^4b*F+~3Xw$9hgQ->sY0plIFue3s&RpPg|) z;0|>NI0SZ61h$)tyN|bCcuE|n_}Ik6M3&jAVMc1tP1x_V+x+#}(3me+@x@#)NH`9+ zU|@D_wMfPxceZo!5l-RKOpR~cIXLN@gHW6Q0QTJfEYF1+i}C1+xA3XszK&1fH;6gm zLL8NujQg)S2j|}S7aQm3Gq1)i-#!hwIY-ccd$+z&W`)|eT;?ita-1t6jzG5j3 z-4A&9S2yCRxieAm<9=O$=`h!doGy+JoPHB z`pj`iE`A$l&N~_2+#F z7ytPC_(d(lANYu@`PctqpObF#dK}V#+E>rUUi;XiyZcs_tKx7n;vU)Xo43?K_rE2ay1*SNQJDuh}{RO95aTb`zWm zbP7E`wYQmLS|Qe_PN_|}J0S|*m#?CC#_wK32I&!rJgPg){{AKzSz65(`+LKp1t6hD z;Huit;FDla?%H90k@CB;EHIw^dW6grFZ9zzEL;3e43DaX#n7eSrSLTJ--b2=YitAG z@Fpv}ZxPRYqC0M5JoVQ~A0aU~@xMcNYlC8cKP5Tl$KB5u8ugL=@yC)W>C4E_IIp@i z+NL+KN_Y~U^H>+B6VBV^l*yqkd}&rDdTDYKP0O*&b}P@D?{%E3#$$!v;}J;3y1y-O z)#fZ(Me!anlvOqO#PbgGe*LK^;h^e3%jE8(s1edHPE1Rbq(hIK_t*Ccl<0^cv`3J< zS{%0yB3HG;q~Tw6W0 zh?YFFhU-$IhuqM3q(e|wq3qi%yUK%+85)x5M4n2T92{p=cl6h)w+aY-Bhu6u7>pV< z8hobqczhK291`pC55ny4-Y$0F?0rbp=ZwNPO(Sn@KV2y{k3iUxSqLyTG$8|GzL=0e zHb?0J`XS5RFHi`M#^Bk$tF1o+^QN+E6e59Cyt6&5q#!Ow1t`Lk58OamQaiv*a2Btt zGb&vA1dZKC)Or7CJN%;&+`Y~u57UHcNtBSj3w0MQj8)TvdG!r{zv!j==yqjb?CyDZ z{Ma8ne4O*(9uu)JOe4>wx&m-317(s(PxdLe0Vg{Q-WB@TXbXSVb_0NYyr9m+9^SDi*sy+L){ z#`f+>v&C9h1MFNAxt;(+MiUSi1nBoiaTi%mv+` z`GmQoL?Nl0^07VB+!|!2_w0}!41}dEC3sM^$&pIM?DZ5_~eM zI0Zc;IQ18UlwV4y8XZUx?Fu8!fy$Z_Ja|kS!|A(Kcih0ul043%0H=reV*GZ6O~1>G zVLN1jG2_b`G;=dCWpsaJj5nS4-sXsY76KF0xN9jEe9FLx%&!-51M1>hWG)j7V@S-V zdG7AUla`Ef2s-?|SXuGNoYQSrgBc^5qK$uCV63@;I8W2xZf8b2@&IGc{lOz2p`t{1-U8AS1UUg85=ff ze622{1iJCIe?aoZ`3N^c0BtBoufuqs35rWjMQ8b>ZOcQ= zR8{uNgM$(tP1MTd&&8bVnv{T){v`k>pLg5W9Sm^SGB;bQ-Q|ij%xOi8&<>fac5r58 zl-%?+86G(`@UD6^QnLhp2KSchFioC)inHHif)iJyVr{d%pn;voOJ zTO^7Du0?Ks)!E)wIV+e+uV&f0N3O70RYBeC;jZ~>rYPA55N&xy*Lbs#kk&#E}Wz+a4jGNgTt+=o#6-I>-%19Hz?qV~<#3b4HT8R9Vr}Awv2#?Iv z7)Xbby9D>s39XjVj+P4dH9pLkB8 zAtFvH-6n8a7`S8%yJ{JQ5gW>|I*-}B+t`#YJ(!)}@F zg^Uib77+egcn_rco`k2jJ|F+}ek*DAAmtY}xpf`gWXDE1PN6J4(mewqYn{e2I$>oxH92VWHEq922%1vGbe*87tP z=lyHL*?-vrv z$9t*fP*?C&omUE+XCEzeGUkXl{v}_0wU9uvD8&xvRg`E!EZbYinwrR>#i}AhT^}NU za=GgS<|XD!0)*6L@3bup<>}STEKYhUosXW}u|Ho3wZZP>b4D-7JDe1gKqzIi{yCx|+{&AxG30G3C~3ohw-iiQXc5^Wq1Q}_K{OiJSAXV`CM^M`YC_w7aBJ8;IeNWA}=Dbqbc*4d4?D5 zKSLOEO*KmIUyrBZ6uy}pQqtCAF8zj{e}V-aG2M)RKk!pULuLz+hKOI%1HTO25WqS$ z{cCBL`ESy<1`i@K-GqDpb&6Adg&a>3Z~N^C3OkM!krT@ia;B$aBpe*TJG;JTv$P?S z;uAffj5?$8aixF=M6>OSNWvqzOJW7UH0>nVt1ZQe@7)33aJD)w&531nLYQbaBf=`x zBRPIQB6{7t@W_oxQaMXdUA{j}G+TpHU8dpm6h*QBFwu6v-t63VceooBcz>=Kp4`Rf zN40-)|Jd1bxlE4Q38(Qw`$%U)vzOt7*uXz_FaX3ry=4G)Ie0{SrBu97cv>FR>gVj% z=QWCQGGc1lm`4L1G=+!KZ6&SAOuK#{x zmtQm;uQ|mkP&JDC5RnJ|1z>3=(pyeodjx=+3m~22(%fqPfI|eDT>Ga{4~&nuT?N`( z_l%h|)>XQoGgrP6bb7y`INf|xpG|XpNM7Ge)iuQ*SsH(P-tm6U!rhAord<`(b%l6) z-NTrcQTLQhRd#cW(0$9geldsFy83$luuaAK5vJ2;kkti-Kqp74bIthsdG_v67F+$) zB@uO(cwclLyiIc&qpq9x+xr3o)0N)5J^nz{5`GgEp9Sa+Yz)pLp_7@KrrD9BzVoi4ucil+Q>woF3{ zRf4T3kwcgf6(3<-@)($;h}2frL!i_-y!@ijM0QR)3fFPw3J@x{KcwO_A9PSmLi@>= zR6JexYqvE}+qe#u4g`8YS;&_AAmFIv7ytSQVLtxu>DgF1E4etKj$rzoCX=%JXk0z` zSowI`Wdt&XIL^`@#l~9$;)}$}1y|Tk;&7$D1^3V;Jw8<|jh{8qos0Cyz-A%cvV)X7 zqG=Q5^F7}52*Dfsq=o#Z%NxOyq>|o+1`Pz|i{{Ssg-))`lim;kn?)*1qIdSo+2^=f z!9XF8BX&DHg};Pqr_am~s`#QMIztBk$}?3eiNS6Z!VeT1c_bFrstXyux02ILCdJTZ z4gBc)aQRVHMctG7YS$mv95mCvuBzeN>u9ae9Z1U4*H(bm&e($JW5=LOthphGWQ?Vf zY64aJE|qvdJZM9+_F+Srim-JwC?e~V@LM&4WeF9(wE}(M&V9Rn3OfuV1p&GIr!Bx! z#=hB=(rWNU()rrY&m;fb8C{ykkY|{|{WkUCdLO2WerwI^SbzKRFjtNB?wo**f*~AA z>v9N*X1oXEXnb%KOI^7nSqYUw?BlG&RE|L}D*1oNJH_#a)E+fG2 zbwU!-8B?0m{M%lcM$E$w!Q;cHHGXDj&(G zh;)Vvq0*?_=zY*U5&oQVFfsM%5oi)MRDLdMzH)m#os}v0)ixt-?N4IAC6>qZX0g`? zRXJH%-FIL%$8itDh5rrw=1!v)oUN?SZM> z{G3;xgZ0_O%}_J{;hPu~`qNb{JhN1M_ay`bkE(G&`Lwt^df}1TO zxj#*x&T930UHzyZxBX70u@uVzLD6~FL*v={SAaHx@PtUeW3YL8+`9s&^ZRL&l&i(< z9@i44u(A;uXRBZ^L+o;*{9qmP0~pngV5<0DKR-J zSM#dyIhW0L&s=IO;JSow1vzOcVl;<$$%x#D#4c~XbyUrs`{J5mL@xPxfs;bbeQ&H2YJhQxw-jg7w4Q(C6*HvX)rFTc%<8_zD5 z8xeq{h```R1P66?lr+MoRz4^<-OX8Q30+d*(wf9Z!@+E_M$KMcBRf%1U15v1-8?l-A%W8DykZWJR}7MdR_zu%OxrQ(fZQ z^mVnHu);RA@0evbvN^35i*|J0dfypJ=_@b|a?Zk_MSrINJPxsLETLU~m+dldXsr#> z`K1{hP)&&_xkDR|i|$dACGhVdd#sCcm%U2gCGwB)@>F|6+u19)kW&ZcrPY`r?SX+( z1@p5Lhc`RPdMI4iHspS{#b6uGt{pV4vN|vd5zC4!XZ^j`u_ON_?GN-<0z=*Rb3#k< ze9&JUXlgM#$A#4<4um%$fm`%0nejM-b2Fvb(ncb5drJr`Ul|yXZ@L4qO|;t+Mm%zx zt=LD{USMHhbK-UdU=m0X?RF@V`0U^I?T_DvG)An9ZLdi7-q}Axdt5+wq{Osi4}KGQ zOaYjBEu~w3KLLFl*l=-hg5^Xi6RsM=p?Z2dWyPFo8yA5|=KK`j=iAK_Tlbp3gj zw%_b}meeJ0Wf>@V4sufCzuYF_8nVHp{xnw;Zcc$dBOU{*+AooSXZuzXzagMi1iSCW z_BpyX6i|H<0yhpJJE*M^${By4aVb3Yr4VKch>|TIc7=n&E^%i%z8Zm=t;Pj*W`jJ< zHf=|9$wAbgeB}%pJsvn#NkU=41h70UI{x>k$J(%*J8gD}j(Yzw10lgdS|qkmD5@tb zD?&&*s1Qqwn{>y!$n(@F80t4L_QfurmnNRw7)H369PLx&$Ot(O{ADm)>A7%^)`-V z*NIx=hx?6tJ{xsObb#1a+DS{SW9+d;UV`SMi(QP-C@JmdOG5k=?WWHb~##B%I%H1UU;VMucHcx|rfefh#85&H|{ zbu|cyBDK9=2=|=8<#o#gBWmP@)K|;ZqCOJ;(Z??$J@G-?Ojp^kmzorGYmbF2&uz-PMf=PnZl&A;?gC4Um5x)Oj zSLyL$d1CA&A_*mx(%NE#V(S+Xpki)mBnP@|dIpNWojM*zB2L7I^Dh0m_nMY!MBw9T z1WV4rCN4Uk%*Z(Z&x(1byIRJft7Jw+mBs8h8r1~lP`$>pQuS56ljo$&nZ74R{6PDY z%H4*mkmCIBg}fF5QeW$$&V;7W-UI68M!o~mpEpFdZMbU*A4uzI`t$3h_@i#@j)f_l zY31M+R`kP43{QTw+=~~xn#`NDRD~8x#LSBIQuz+wtazp(hBZKlcG$$%5{9H{Z1Ek9 zDqxs3X!}yYHdIVud|krvknDQfdtyJ<^oRH~QRf!H?hNzu{@&C8zbp(c&}H@3h4c#I z`HEMvb<}Z%jP2&pQE0UZyV^Lh#j>tLO)56rP|XD6cS(d6rD;+lHQg1lQ@DNquiga? z3O#}tnqnHuh=4|O<~n%}eve~OtW+{eyVyvb!<$@6nVB;itWf)bI`Cz81(0K*8+jND~Vx$WMT2M!xOwbdZW&P<|gjTs3h9 zpx^tx+-2<#RzqXmGwF{v1P!$i9K?QDx>dt%s1!w` z`Nw~imsLqZ*4xZ{Sz9+8kV#9lxQ*i%lKKIO+p>BlLO-`}45_&=_m66R5Y!a}>nIoq zTho4e_qN>vjL9V>hm}>mfGlo!GQ7V_Gszs#kZo4h(FD7lD0WE^m_zv9g(>l6V}OOZC?S++a&` z^Bti)!1zILNuV2*v3*NkKEUIX4v=tC+5bG9;UK;<3&l8nP=k)5@JN9*^P~bzZlp>=*}GRY*+TIi;*lU;uO?zl|$Lg-o?+0(DFvST3{(r`~V z0DgpK$0Rgfeu4??E8OZZ+@iesb8_UQKu8uo*6O$ zd`C3nomCfmsQb86Wla{oh5%sCc>c|Gut0?if`fBX=+`T*B2?peYryG6DSNK-onOAV4I`9v#Gorz9FCUsL zC(cx{Ntw2b-{p@F_AU=R*1HW-8dp1if^8{_W{F8 zZis@nqiEVAs<54DCtp?@nt|s7R-55ETK3F=He9vvUFaWP zm#~~q<87+fuRn{aUC?-%^>yaw8TX>I-k|~U<-L0{72So7*4sCI4|H~!spH8Pq2|P3 zps~7G2I?772uEU{#>-=?x)X$ITXABfWYU^7E16%Q$;e-D_B$^?A;UkOHo$pplD0p0 z$oD_pk(4m|u>F!3gu5&C`BQ7RU&hxBXfRP{DK%vhb-P{{vy)gNu@gxnFm@fiTEsNO zntp&uQ*Rsw@`ADvQPDyqNFmWZaONXR_eAr$b(R<=FMicV1%3%-f$oHM&nh7^7VY7(cW8QZ?evo|p`Zj5#! zK%{w3>&&Z9{X z3J6pHooZ^~5bz@Wh!s1Qw?(%q1{{YIJg5@0Ft#tw)`J89tl+71H$>&PJr-4$)le5I z8n`4KkDNQ}EINo6tU4O*#|zlUbt`YdSG}U`pebA^&3mGBr{6!lJWg;PcR$vn%wEoe z`=-9w@z|kCOIh`AeB2Uwy#C}78QKxq$)y2|)I|1IbiLsmI&()=dF^p>UMVtiyFam9 zj~GpD-*=A_rn_=bIWQs*RbN zLoQt%;{ByZRGQiOMmn+dBYGx0Bxtq}hq>9$mxJLqIng*%=CWE0vFDWIeG(i)=#rO_r*Gxv;qUx1%f@`gT zL1VJh!?eDm72u6Je_(ewN~F$W_!bHA`|RR#q{m>!&17X4gHeuOU9qGk77W#(v!*V zG7`@p0FFJeJbP)%{wO=Y8`u=K9VguA#J9!7+yY0OPP?Zp+pRwM z?P`NcUSHQd@1I4=S%0Dc4ag?O`MH0fj#FDt4m*d?YPf_$$ft9`b&W{6Y)dFup}81 z&zBQ>)Rk6QJ_^romN1Uv35dD@Wpu;?(&BBP^UDT&?{y&eU@ zl-r9y&bkveQPD!YKgnm9hDKF+Wu1eHa5zM8mL~MgPR1oNW0__T*7RJImhzWLpF^tF z_(eEIJ z3Efv0s<;wl`}As};c$&G6&&}~Zy8w_2A2yMFi%WTNn|<1DZ))>_nFYd$$LlNQ{Pjn z3+q~f^!+PA%9rK(=yewO1D`l|PaChmIng8@@Af4+|LAN!Vq*bMXtrZ1s(QPu-@kEt z&gmdzWd>EArrJh3z;XLd4A;gM&|;)CL_e6nlEnMOa%7?+5wCw!%O;DI!O)yg^S|qn z!i@X?{s#O1B}VwM-KJy5D}^dfb{WBcudsUg*dKTkY5~^5%`$_DDWGECB0098NwR%1ZyK54wW4MBF0c%ZW7ym=qv6JGUxz7pZ<&`|G(x0+ln@wEM~HN2 zWGdk<#P(38k@C&MskoDt*Nvo5<0BF_O;(g!kOfro;``L9#&=^4>oL7OP5BZ}gg2W) zmiWc0GYzeWpNE_kY|y`(x9&((cu$U)(WB9bP_|2Pal|5v{mS&5f#$Qj@?JLG@qT4l zRWn#M(NDfkMMd^F{?xOPiD_?muWH~#q$}Kj#|`X0<4p=#kg8{9XsU0A1UE1qezTvC zB*U-Hx)VOZLvB#m2*kRIZ=wEx^=%c2EvG@0>sYz{aWu@k~7A{`bxZos~^?&L04j81h>xaPrz>cE;r<4EdUI$1-W#RCT@57&cX zyTdCT>v{G;^H~KnmecGtCVIopd}Gv;);fT4=k2`v`q8Q`Z_^gvTo595j=hS+WEhk`RsIK2lW6@tc#8G#Lm`@*HPn< zMNAr%*VpDvb$q-!P{n7}5FSR{%>@NEUAtRE31 z!)h|s8Tm4g+4Im!-NWJAlbDis^pR?7KtzbE3Efkt@P)dW4~QW+`WE=|H~$Pr0+G4k z+T{a^8(6@S@ZD=KKc9|3E!G>KFp;BFaNTeIbg{i4db~}$qnuF=WHqOPQ7LcoEY-p8 zOKRWB)i*$pd3h znd_0YvhAE$F~glI7fC@DIO_j6oAIRTpbl!$JY>_d(-0D33XK-~>>O4D$dVpXDdYC7 zvaIN%PjuC|o>M7TAh)nzdVv6o{P~pS1%cUoZ?P``JR_?uS0$G)HUKTs3AXjVD<>+o zrn%vYH3l6!9KhV_FOx7@DKxdEi+yV0{)dpd@o2w+iK+^!8ev?RS~1b*JGbdDa8|RT z_jN0HhY(f`+j{7e=VH+4Xmx^rwpSSYO6jsuA{ePfM9|7?0|Syob5U_(x8%X%Ewv?@ zPKXhKF~2zUL6Uzl`Bu?S)J-jwe5*Ejh*gaD^Q}-P0zOP6DuCC zGT>$FnP5rZf5>z-$1>kBw?CYA*-U(F1}vn7RhuuUGdelyo{hp^Zw`WTIHDm{BU`D4 zE#Y**%Wx_Q;w=YKrDYCHRdxm#t^3S=ydzmJ(uNs3l4Z8sqOM;xp~=SUgfs{#xtwfy z_oSVn!_O;)s${mIm}uG%jPfqs)h1P&-wGpD13KS9mC=y(4%|O_o+lh#Zet*xni4TY zJ|92Z`{*|5@<^BgO9vv+xt^6E^9^Fjx>IAQ-TJ^y3nqx3&z*!P=>LbXcB- z5_c6&sOui6lEnIm;r)8BQ8S!imxxtS=uAjFW-=~O24$WoNI~^fk`C2#vWY9;l(q;& z7~6&l9*ujGS0+`~o{Cv-Kk)1pOYsvvOI{sCT&wg%+5|m={;6W|r@M|=((!UUePwv3 zu0+*VVwE{`Di>MthSFx@^FP}_e!9Bh1pizxr4tP|B^bGf6Ay_3@0g20U;88MMmr;e zb!|&^94cBPng13XIX=uwLUn2$0~Hzqb;hfZm&8fU!0=38JT}f(>sV)t^gk?0WWqIsT6;9-RKOvd=DnF05-h zhngZQJfQN#I&iesXlGAX~wF!k8O}w1;1! z+gg!fGha5g1-1Ofy1u<7plaNn?OBRQL$|f&@wE{IlQY3TEgFFc?Wo zZqCo%6M2lG7rt&Py=~w3$wRNx^8f7gFwbXBsl2q3OeG3Cy(fq!Xpj7{F@BI@s7gIv zn?A-~nz}z{Lc_R11o+|_9oin%B-XPjtEGo(qPMaxYw&w_A>6geuB4wW_4hpfRjuNX z-9(<-`G#_y=O4=BKCS!;mQ^_|^?>L~Y3*je+yQ)`K@L{s7QO$cBof4awyw!3ZJ90}_1AyzcW6XslMx>gln1SAkPF*bR}5QqBZ>&*N%@3Y?) z{6yZbi<_EJ;%*SCdq>dklI9G{LHO-or*MQpvBvDIXWPrfT*%^nM|qKQQksRvm=yqS zHMbU~#IqxY11^XrXXr-1pyLRSN&3XE-S9#CZtxM{4PpPLTr*%azjiU=h z0Pg?RZvF<~;4fV9jSIS&g0hdBiQ!`TwOZB>y?3~(^3|L65QhDPle#xSjo=ZKdDtNa zoOijN@VD)q#|eqUhPthcBP-X9sI8St(XUA;R{0Vx5L`FplG1LqY_#lC1ZpLcClL)w zqWLp9aVs+fgII~Qn`#dn+EXAX-(fW^5>PF5Yr9#~imqnrbhVK+y(KLPh=IFx`<9ZT z#g;Gh==oAP>?QF+~OHuxqU}GF;lJyfd=M`@#Ta;EcxIU;wFXKG?UGu*{UfADfGfx||4hkOz z2MLx9oa5`mSOOPO2A)zzImE`QpoP6HFLMB=<xJ=U#tl_kc~B#LfrN4}v=GvaQVKo7^M1Hx-MRaXGiM!oUybh(o+?|;Jz{)zxZ5uzm#M&#INVr)Aynr6IQdFb;0c4yjU>~=d&>{-S3kY^Rj`b0J|tLutQ2BWK>o{A>k$Kq>CjqDV*rf6^-<-AbJ zSF(K;L}I=qsp2;$4!RNaZW{d{kfw{T)$2W!`mS^-iR#AXZv`Y@2KIPMJy}CNJbEy* zEUF7XHRta`aad*fy439Hz}#WXc-sCWYdb!tViRUy@`Vpn=Z=+#l}L1tEShj0f|-iC zx5EpWnmmra_(y@yf~s<^pzS^jep7C zzjI)UFzwEh2&IW)LUmRwf>Tm`;N(Tui^#8T6f&|-;&w>Q(nb(7OA4ER+ z3yB(;0m{dRR!I$7iPw)cF8kT@<=_qf`>1K27KH{RuCMHWCXE?u#onzbnFvyxdA z+Hsfu%6t7XQxlrpFl0wqWTH{R&J|2vRd~hK(z2u!zk-ESEIEtCRR;R8I@Gf$np1;o zd6xYxvIov)?LSp0B!Uf?X8^C1bdwi~tSV=h!d7uF*qB;~i0lQ?k zm``Z(m=GoPOkHGgROB`4Z>__dqU2^eC_`xB1;+%7w$pkNx}C`SDRIK(&DCD}@Jt}Q zXT$HRe@vGR|hM_#Fxv zf*DJ#D1e-ZNNK{RrK2nt65?8>Y3`i~%cVkz5}UZp@)?*iUdugnHPbnR;JC}zLunLr znzlsOQ@OusI^3dKfK2Fh=t0CccU025+ErzxI8RDv#Ti#emM(o;YhsS<>;`-U|ArP+ zuUZzaZmt}8@a>BKN%cs?rB;J8Ywc6FC@0q(Q~6LJx|}*_^7iHSdD^vLJvz6apHZ0Z zNcPiYsGA|Oxj}+7e4Y98BGNtodks0A6K@ZD!C<_sTCahn7kvC+_g^0)Dvqy~IxzI` zqbzG3-6V6js@}fiE*r<(IF>@b$8~%JWKcGd^wOw2J?0bIhbhqGnC*J%vAmL22LEr; z!cjpwni3=>_BHjynGVV=5h;Hga*<#t;n#|)3kz}TlS1U*F1)DG^Hy$}zn(IYD@9xt zI}i`e9&Y1(?QmM8 zw!}Uc^==cErT*f(IVxy-;Xt?a7N$6{L}s2^wfMdCO?$HZR-XR&rMS}HKy-varXBSl z6XRmtwLKp3ZsDLDstXKC5pj5}uMJ%B=XK}&%!PIisyupVJxk4a+V0*#Y89fZJb67` zik|tQ0}hMVYdbApWr46eRb|(|fueu&z3$2hV)I?&LI%yzKFeu@Wg0xbU*VS!vnI3= znpUbL`sI;Op_K?~Q~^um(jYnwYE4N&8&PC0!7C9hK0RtQT|1H%kg!-EK)x@;N7+&zpb9oPtyaJ|R{JN{k?FtsoWwedW+-RS-*Kn)Uu0mA)*N)vt!7@q&Y{^vI4|1sUR&Y!4nW?N7ck5)S` z6;+~q__6Jt^dwk*y+NUJneG}!=XsBBKg7%i(kl00fkSt_n{9+ZUAX3iymcYG{&Kg0 z(s}Ae^g>9}^jm$x#eJ}VqyXRKQvdebZKYi0<|c_uI9Xzr+EwWF;zZd~UF1taJ`O?7 zVNEM8IRUYXJCSw5E930gt#rikJQjMCGYZ8^TkjNvVtYbCa>2g zG~_li6vr>fT_@;5l^SX1`=X{K4pkyVJTa8fnz*qOW66I$;0?;oPiJ3 zo@?rjF0ss=u|p*OL)i68eftcS<>{X4sms!i64Mps6W^@^?tig?^>1uQ{~~?7Lrgh{ zM;DYF9+0?zQ*^Ih8A3jSI@wGas)A%mTn)6co5ba0YDpc5&9l5QKNJ`1DP5)qhAa3$ zWDR>d{X-~iRG^s$DwXH>1mZxVvP$h|JCwyJO$V;pT~{Te!|_IEdr~`U419e28@1|t zt=L_ zkgm%j>J!!o_GFDkQ(BCRJA)qSnJ8iYCVqUb{bt$(R;LzISW7tfKO%wM*3a!!-(~$;h1H2 zy8k*g(Y%8f5pnFAhNcJo(Px^Ll)0VuiqXRG4{-Tvp@3X}i?K7ZOj6PWXs96`Fc|?< zooH1oW1L5!5+uT8BzOkZSA8K+$(w1tWhZFDuq6jap?@ zt9zkbS`aMuDvKY7h9fK`*J{2T#f;;?^1<1X<*gDHL?Bj*iRGQ)%(Pf#><}%)`I)Y^ z6BUN2NI6e!cq=MY+nc}T{_uZ36~Dci_6SM~TjWjk1|9oKTxhKR-3`7gSVRa>Cc)}9 z_T3d4<#2e0Cw&LAN{Usrn2&dcX&vwP|E_d0(8%m4XuT zt>zFAX|?%L2MmQU=pF(iW9(ot(cKko4f8T2v)++S(^Z;>*`_XFl)_@Z%P{v?UnYfP zSQtkDOR5haQZiq5|2urdV1k4}@d)yM^t0*Ljn5h)`YUDy3obFl1fuGuPfEtl2$$%_ zZ>jK1kss`j`7RTNjtd3=D_O##LVtbBWS=#Qe0~AY42Qt$E~_Tt_D9Z zxqFaB{7rI;jf{prDPBc9+61g4^QO%Z+-KD_H1`fSHCD_5LT%XJ_J#*yugdC~dLRxN zTs|FAqRUz^Kj~PCP#Xtd9qB1E(0`(DtJ2m=YT)|+ulYb9f@7q>eZg>p_4VThwfdn_ zya&?GMICK5q%el>>XfEhJ5AY9?}a5#V@MELYckq|Fnp|9pbDzrgbtPnAOH6mIA1Tw zDJ{v9ZtB{D1RV>>T&%E7`U3+-OTB?<@6sPkzZ5)gj^aAF zmm_ZQJ8F*Iq%`wFT}^^Hw;B;VGvps+{#XKlJ@O9mBtLDPqt;KKhIPN)`85Dim{z+s zqx-HfrtKN6r@lrfa7<;+l~x3j<~{^g*!ZF0;X$B#qTe_{7t<7{61ypXr<6k__sN$cxT|!u4X&fzy8%v4-zF{w4{MXSkIpE2` z^K~sCn7DVT9g5pXOso0C{*M}%m9%<7FbM0 z!>9U7vGSvZi6>Cea7sO-90SB|GQc%WrQ;yRo;-o|srbL|u^Ht!iHZvh| z>TSM~Cm%VLne&cmzj>nQpP#(!IC%xrt`8a=B(cZ|_nE z3Y1MOP1$NSQQyC}z$D(Jh}|GFdEmIcoaCSz%wg(H&b~!+Q!Qm085t(wi%xC6cEAb$ zl`Ht}2aW}@$Jp#fU0`Au$IQrm3b26XH>jn2xsw5Q8-z!0i%dn3v5x;wNB=LG&)Fl3 zSq*?|{`4+ivBJDNrKj3-`)f>dd7(Zp=6})le>{Cgrn6-PL-Rju;*o&i^4DyyOtBcg3kn(p~$5 z2C4=>vc>it2DAB5DOx;|;1@*VDQ@Co6^$n2trzncO%0R{Z%IjOKHx^mC1UQiHKw=s z^}3+w9IJpE7zQs@&&OO#FQngogiciPKe7OC>~|SwGy3KBq)%2F;WaZjL)P05u+XZi z(r(3bk>JTtsdMiK@1&IrThDX7Hv{-_-tea1#AUZ@57Piiz1Q%AQOVPB%_m>I(^#D? zymIl$NBcz6yf2a|^hUPCX74s%QLv=h$uHjd*tu|sZ3%7TPa+mI#s?it>ju5Ib-F^F z`2Zsxym&`7H$`;Ij}AtSn#V8yT2GM!1OL58QIiSHqDv#25zpSS<#>mozW=~?PF5Sw zS+FS0uUxK&3zZWo63?!Q3`7i|vZf@1q zxmCXdZ9BH!x&E}=c7JGnFn<^Z zbbQ!k=}^Tq@y|1h+AVdDSiK){=emU8(?0P83!-@B&fGr?-NxU1zO23X^sa$E`YQTP zSdsTw{tR4x<>=meA3Fc^yPgrx?wfG7bIVy#W^SoZ(oC!xYo}j2w$d3lho-03av*1B zAi+Z;-}%LjqhBd4Rm7Zz(82Q@Vt(y)+_~c#StE2a$S!e77>VXeo(dHUn+d^_A*M$H zL7GW<7ZZVCLoI8iUy7vSC)_&yo_^N!t(nP;jwY=N%{Z2q)F6)?H`JS~K=1H9m zo-Z`*S(9Rg$Zi?1F>`Z>%qAOVLT8#N;M`OY2hk|-=xT$#&W$eRw}t({f$5bVl&fMIdZ2kMJ~w30G4laE=5X_vlD0M zxq~Vh$w|zyHJ90OJnkx z*c$dYiRE;gW@{xAo54=Utjwk#D(KZZ{ln@!p7~CGX%A{LhZYU@qqE0%uTDrE4MgM7 zSKlI4WzDpC(X_Rl8!RU*IUX~@I)-zFX8CQ(%71e?B=&&R^jP1pP+1{w2<@S4yyU6{BFI9!mNeF(5mm zZ&5^G{(1Rh1CPOZv02>VUbX_Dn`V+IvWiC z#H=OBKWO(C-tqj#XNrNOSuAAhQr6l#JY+}cY#q7{JjHrO@PvsE?NRj`NDv-f|CK_= zVTU1Q87?ID$4^gBq{X%N9~p4=L4Nw-ZDS~+U#sJs=z1v81&t@TawHddcvoXwlPKkv zuX)FW`gFb2)RGuHdRhK*1?EwliEEkLX-KnpjSdV_ut*!S;qEBb2FFVHt51l(ih;di zsQEd7OjV=ME#~u>BNL`OVnZ}2HunAM%r{_MzbiI}{NO1+#P+p(7#~4kh{L{$y2yJ3XU53C9c6I$L*kQ?yVB9o_X+C9=9yu^%_6X9Trdp+(>j18j`}GcX%= zi!QG%WH>-0@-O`T|KpB-Nq_%Eb%m>^0?oUT0qN&FRZQ0=S#VzXlCVcYr4TUyPeUHF zsa3(I!xQ$F*68h|#ntpkX*sS%OWh56Tf>JZ)-CdEXPb8`(h|egW^MHLr`a zSg$b&3C`LqP*!^x9Q=;2UBy8Er}20oB5(5LSXnNFg7#93Es+AfP{tw>w4{Z(zoU?D zj$QU7SC%m}CVM4qULH<)O;;DsLm(Vj+FNx{J}NiqvpDh)w;$jFiIJ1odG^$6k`?Me z?o@5z{x**1LRXhfoX3yW;<$#J%Nf#1cUp!hRbtz*Xd89+NWb83$Zy!3R%jv&cg~}w zBfsb};YK$RKNkOeWvRhh9U|=Z?wf%ODrX+vjjDE7O;y4HwAb#5TpVEJl!+sE;L)c) zfX?MKAjbJfYc9b)W0sf*xBTr!BYocy7I0TSxS11_n8wbj+>5K# z9ZgM56q!a<6%|x@94bOX!ybA{nKicNp4yrk`xqwq2V>tc)#-DA*rbV&tbmDJN}WvW zvDWriu$`Lu|3ID`7zBSB7s$#uS*$$SIf=tA+E!ziIdwuMlD+myEITtKu5L&MnNqf5 zVLbPzu}3qBm|Af*U=a7tbx=vuj-LFc#=Ng{Aq~lI_58U?HE#rQ|3tzywU-}preuEF zZ$-nT`ZLwRG>G(y^d97;H(sA-VO#vsHT0fiqK$3U*21Z#X~Hm4i{rm2pmbvb4;`k; zq*k2^G??nu8sTOf9L*@t^`=b4!*?N{DoeqyU#9i_77F*o218xR=PX#yED@Yh_3GTa z)wTGePwe-!zreFNm^EtJRvshE#_$;+ z7}ngV{v76g44jz(;hd)Kp&T>VKJxSr95l! zdPTFGcb~v%47g>H}ZXe^y^h_mNe{wv6+&=n!Nkr+-A&0BjR&-;{m z9kji{^C-t-n^+KSJ2oK3U!`?x=_bC1HAcuoj$xap18X$@mS0&;Vs4ULqN!>otN%!N zB-SdC8RK=*k>5V4*!H$M=W;75J#DS2hrwo# z15K~8tNLt#AJOFOv@~-|V^Hpw&s)s~j|92C{r!#fNZRy7Tn^ayIrlENPT7xYj8?ivlr zf4E2f`khT`6R6$3G&C&rE_e<4GA(D&*q^mf7WE;raP*z+sf?1q z5HVerDJklfa%){j)=F36&9e@1dVPk_3B66fqGNmYGz{tcZ3E=~+A z4v)l{pW$oy!N83D{4SA;=>~G!#uP9cQygG&kHWN`o8mZv2@AH=FEHn|f3#koD3JR5 zakuOXb!m3c*4rVcl$>0nR_jiJz)lFpZ{ViS-t8D8XY`Bz>qWTX`>7_^{j}(X61_l} z4e2%KhARg8vBl$G;*V)i=*h^0@tB#Pl~jw~C(Oidr%J{_m5AGx_SNcP;)U4f`h z5gLel`s?7fOrf6DjUy3zkmoKs)|Zpj7}U_-1LrZ)qGqAb2`T&s-ri}}b!hSZr07R- zQ&&@B)1H^1nI90gQZj;|f_9vRcwDE+aL1S;Yq21bLMMGj=8D3RpcY!YB8w^I(1Gc! z2e#ofQ+K3Ax|6t_XhLvN=F{n2h;K+?_PbL-;4inWzINP-X<;&mtKfe&fFLaFgq1tV z62n_PaIbNHe^?^mUh=Rbu6hoVel_>{e5ehGHI3u`GDIBEslDlE!mw2LD|7vTtn8rk z<+M`zesOOq;NuSY@N#k`O9?o9sKkKTCovkaTwC2V5>a|;h*NDiaz$^EfdbpKf$m)%Us$l0z``Hx$wsh(Nt9$Q zZH;Fzy9PE$de)~Kl?VWE{qx;?{fdVdI~(+nrll}+Vo>qnDJ49*mx?41cDtf08-wAV zD;ov5F?V`P4`>_Ov^dZ#;MI;{Pam-<>D+#znORImFX-k4o}7oR870FS*>;GIvwPZc zFQXQ&*lV~_H{+Jz+e_J&lN-7#$$~~^t3T`-K2`M6I(zjChi>{e;rTW{SuiF zx{>+8(qX+T=X-wr&h(vrmh2^PBQyFkl29~#%n?o%UYTCR#AMg*Yk)BNOfPxRjjZG1 zQcsuzXpIM#zc+i-Y5|%&4lnI@F=$1$0JHL|Ijaff5v+@73%Fmyn{5v#2i^ax1%T?l zw(66z6ia3&i$ME3A&9%CvVEPTHeJhuNl}O~?Q+B{x*#%Z{K~@Ofrg6PpP92JWFNU$ zPPee@Qisj@uTt43g5JN}loRR38rIherMjCYBHROFs6SKU#r@P>_~LF(n5)b%(g7y* zbwF>C1o;cqOYDum&_2Yw1HW~9{8{Qe5|oI8E^*=)IH?cMY-w=qHU28{ODv{dPewDN zun&s;*vn|-Ftf^9fA7-vS|VAe6GZDm#l+5Ec5O?e)e{;;y0~jO=|GUFnjTD$H5p26hlP~Hrowuvc`4FwAE-DJz_X^yv7HioMP#SB+e81aR$74nb2Y%UZEGX$tOeFg%BJoU_3x-MWHgYJp=8Qf@ zLg`LI9hSjibcV$Mh3$c)$Ey_r@RfI#Hfy2uN0<5(sjq75(Vb^oVYe(#K$&#GlEIsW zqE%QCXF1Wf;QzK7rJ&v8GJLVIwXHkK^%1$*vsr`s`-i}oQKkFZj62{k!?G&)BiHLN z?pH|(_pA!AN%J!%BA*36!gul;+2{6FAi5%mYP^G zz_Yb-YcY|J|Gv>Vw}Za^w};FG*!k86C%t*&ic1YU*i) zAw+0!)~q*?7$}l9CWtyVwAXo9SHA@Kz9`E<;N;a~zFusEXfDlf2h|$H7F||*9wu7e zERHD}yZs=G@@7eh!LM3ViY}adB7MxuiOY@S>3r=|_4HEzj!icr^nI-JM+6`)nXwa5 zmbE;joMC7UMIdAeKZzNHGpS&mVckrz7nH4q|2<5Fu%DxO>`SuB)HsKf5@Qh^i^3D`3MQAfkPJty5kk6s(oliq-vGY z!)LfddA+MAQJk8wE@P(xKXHA4Lcr=&xI>F^-CZ=7hlcLI2wY=Gh3t^h6_>?FB^MM` z(Z*V0oNzz*&D}BSS7hFngf-uL&l(iByC^ie&GlU7*)yGlqab^3ZaZnu-;JgUdU%7# z^{2|P+3Sa+i)_2TL#NcARX#5fOxglFC7w9<@9a0iKL(f)MROI;X#M^VGOz-v$v_Jb z4^%E~kKXM_K5wB*A6IQ_A1*aU*x7wXZfloB>&u1)Q?T0vZyF&Xdd`bSrs@wXi?UW9 zDULZpncr`rg>azHpbcBWrUc$GH9B7^7DCfY)*RXwcXz9~?i%uXlMY_D!v#OM(RaU8 zHjF;q*{3-f`+Dv8)P6Jmki4F-t@*2ZWH5LE7l8;%WZj516B-rf=zCj2;B-eVNfx)? z6)eJ7(S{xWc`o6538T1u7Vsgs?l|cWdv*HfsOJeG+woS=ak8{Ka0Ny`(9i%V4l+La z#ojTuKE>((1Xc4gbK!aM4xjBcbJ2P*sy$r$!z3@GjL{FecJqP3{^`un(dcpPX*h|s z4sB>>(I+5Cw)?l>E>)*Fvjc-42It$cOY8HJ_@5+GN1%g4?@|0ZBw>?Vg!C`=-CKm4 zoH52;!mB1zV++jHVypkP_n(KsQh{spc2(3{OtMB7Mj(b#uUaw3Mk+R%IqxJk8ofjc zL*hPTySJG}Z%YxSU{y=@W_n16ST&I|qD3bArfH_yEl*r8WQv8TWK4-Oh3lk4i54~` zo(|DYc2u{G)R&Hl_S%yE)B{Eo-3EtJD}5X#09@h|U(U7fkbK%4*4`0`_>LPU;%n{+ z8)X~}o=e`b($$gN+x*6y^D_B!G)|e=X1nxd041w51TIBO=&tQEe)~<<^rbXlGM?$< zUKO*^)w~ky=!{aad)AXQTa{;NDx*L585)LR_?Ybor5(h)5RSbc{EFm(^7fA^P{V%R z4PAfxuFf~Dvp4RydZlh$-v6tfLzR=kTxJi`cl)&MPD_eKK{86_rJS{Hv7Gs+V}*w3 z81;a4K<-*p+4n!N4~R}9gXrE$32OO$#VL*Q)4(qSn13JMEUi-}Q!nqcTxxI(5=}uMAIY+edvn z4-g1$sy$GRCWfU>5UTWpkScSM2Lf`HqVu+%=(D|Fpq~PO9|Q=GFHn;_=Rzq5 zSdPj|q00ca@w1f}VgoN`hPGYo-%3c;XLf2{EeY9>N4|UTdcw}#r*(OIDe;8SbBrI< zQK~3?>|5_}kD`PY`uE(vm&4+oCxZw~mOW%nlWrb`-#i$7ZvhxT+vSgcO?&(|(Vx4+ zz6CsXL;i`Y@cvxe^ig!5;|;;Ca20+h+eS&8Mne>@3xZY?iqS&FREr`dggTjpQZ9=A zDfBZWovh@b_4+hh~U3*@3-~q*1 z>ONN^zQ5ihU`;X`0`rutV~9m>#=4h$lBbl~bjHkJF& z5Ehd~tl(Z;_c&p@5x%Wr{*5E=Eg~pBSWnbrB#6Sn{EnaXh8Qfkzbc8QeX&v zoY_PFlGNmQFQMQIJJG8VYaGwR>(fokV_(!LWwU$$=a&G;lAV;oM^OuTIQy<+l{Y7C zI1PT6?+V?!L@E6Td%wxzgii>jOhd?W+`ZD%~^4WH$$_lug! zazWP_0q>A!x~mB}Nqz2T(#uqihFJFR6Y)+Hu~)mv>c#Heg|URm_gM$3rC(znM>((e zY7L?+m*#gzcmsZBIp~I_NW*NSdMhk_u_(DMwo_N0ciq8*8R_*t_%{SRpQcdAXrxw>cY(+*X~(oZN%L zYRo6Q2N(yFi&+mU*s^*rHaiwPS^l*Js4Le`s@&#PhIq9x-0-kMl0R zkr#2DV0*BrD#oXiLJtwdcEE?mY>9UrTihcD^Vw}8FbW171%e3bCG1Zb^Kp%K2f&_l zL8t7p&24OSbo}$}45i2j*!+oY{BJjiXO--N|J(rZZXTL2x*1hTP%g#AmL4 z(eoJ!UXFe+Q`yvY%2kMDx{D?Ar>*HYrL3}!7%&&?L?6n>n=nfv#OB6g1-SxC4%l=y zQNz7r6@9ZE%$0iC4|r;g`fwb<8$Jq78m5XqjwqDqG>S`}V=r|iy7YMgPwD#P%k|!N z=X2aZVWvnEhVpYEDJUu|1Z~BZ<8)C%b9Q!FKu^riJ^w>T(E+WTap!axn{emt>P=0_-R?7>Fl zw#s<2rM>pxKHRTE>@$ma!H2fnnK7s*&9atDZ{f^6@=W8 znIAmx$e6B2deY*72SBo4y0KAclKX9Zr&JuT*MmuMrlaARG^%d&l8<$}pD3|NyN`)7 znJ$~;u<45BFd>GB#+Az003}(py%DyI;^2(Gl?AOTKn%}4t55flZ;u|0(Z^WNZza0~78klP%4*hB z`mFn3&xHR3|G7jCR9<_}#M7grrA4UJtQ~y4>Tz)7Bu6*<@&jYV5Ch(bp%;1<9-(kCle+QF1319fvH>?j+msmnbM-`14I4T`Y_6t2E+W zIw{zhkpsG4!N0m*m;SyI@G(88P=8vt6bwFTINU}FXeaPd7&mTD?@s*r>KYBE%Leyw zX4tFf;04Bvf!y09_(^(KfKi7_RB#|7iMd;tlz?3a8Jox)VLX5T(uzr*oNrqY&~nc} zD55dnDodLOYcpGjaQzOl2H2T%zIn7|+=~n+?jyeP#Ko#2u9T{vsiNigb0sGm=3teN zddW$(Nz@?BEChp7zOh=N0$=}3hjH9%GWz$}My-ElQPT8YsQnah*zj%*(gu3ltHN1RVm-Jl>n++0Rvpz6aC=Z*N*m=GYkm8EU+U-X=0(a9X2y!dtTiE1k~(iL;-mmClQt0PYUJpi+$Q z@JHM%bT!t4JOj3gr=))CUrV0AXI#BFTTSsGRMX{ZL6g3Wyd1V@+-s%As*N%quXrmJ zKg{cz;8j=ah1j?Qy^fgn*N;}9*ME}Tc{eI-oR=gR(X7tcmhM5`=Ub_tE$eJp@x<8Y zp1q2FS6`oqT%N$jW!wAXnz9Z}vSn$+jwU~}ABM|EKZas!x_9G=eM0-w%NZii;7^-d zTMyM9w~a*Q)|m_to%sdKeljg`sb!h&mLv^ zhlbD={aWPl>KqiF&cihJ6-I}md)lE}y5GPb1^21UDCPufw4r)6I@Rjn>Qu3}Qy7Ut zu|7Qs8M~XmA}BsXAj`%5$=qd6`=ASR`3iUFLQ&V^K7engz|bFpN3C^}$9o-sp!gS9 z+X_L8zndT-wsbfLB^6NHNVBMKY=c#e#(etCIFerL&X~2JAqutU&HnAN-PZAFAfC`&E09XVO0HDBL`H-t(q%?UJK+0OXuvM*z0r9@P0!ZNnQTjoQ` zjcq*u1Ey5VvBzG0qYFi}fP%LjcAP|X`y1XU4P=vgeeb5)ZmDkt1uuu1QxC=#H$P;1 z=u^LDc+~z&;@iSPsJQH3^ifoQavl)&T(+N$Tj~*{CIGr21xde}?bbLy?Sz~520$|NFB3aJ)-@GFsc2MX~SI<2Hfhe@3jxR`@dkaJU@jV}B+B_F#5MT0ELJlL;^gM6qTdyYPeg|j1BUM%~0|B+Wsg}9@e?PsEfCe6DCM)11{HeH^ zH{!~o3`p$&*E3y&NWx4t8vQMUs=Mhu6chC^SG~J?Z@%|!yVk24&YQl!>D&FHl=;RO z)7hK|-?RM$ay^0a>t17d*VnIOPBJoxo1ar_N`PK59f*57#r#drf#9G2NCU{4bX`$* z`>}aDY@vVuosn(HC`3V(99qKm2~R!3msR zC4YZjeko9fOEw*WrTwi-7F;VmhTn+V>`ZS}wAg85Th6@6`dG{u&`Vy#Qx99$-u*=jE*kHFn?7eE|5sLKfVX}Dgy=9B>#?RydDNPNH-GI;6yc`7u zh2|>^1upPg;m@mpPg{W#o3ov8;%3{P_X~%c%Z{tv+JJXjhK_TVv6f5X8NCRZi%}Q@ zoyVdga-XnI7mw$<8R6h9z}m3VQE}<^&QKo6i;jZ z7^VgL#+IgB{g+z$9R^xn(EY;I?kE9K|3kVTaw=A;R0cb^7wuO6z*Z+>x`7vX9N($d zxiJ0n(3C*Xntdxlt!s&?iZl7>(t5n@XG&mgt}hibj~NHNgBN;$mM_xvg!nR0Rno}9 zk3F~ZVhZ3sJwsJl0a?z4P9s}qVaL$Cn3Q-3Z)bYSY1U+XH<%hxONPesi8>E*Esw@t z*r{;Hix-W1C(XFn0>L#ni_!V{3&5TSsYsRsJIJb_F)3*mi#HIe@^Vyow zp|;|-K=4V9X)z!CjBYX0ZNFWWp2Zg)SAYof#|j3esqT&UCX?sarKP#PgLWf^b?tU{ zZuX6g;ZkmII%8BWoO+sNjm|*qFBsaE9MI%&0uoG_%J*kVn(D^H1JI}#c?l__UM?yt za8W9bRI4vx=2sb8J%_q!Q6`&&6YZjgC!L3D>Jh_5nWe-2=q*u~)A7G);!r>2PzYB;DK^qmwD8X510tL}|L#Yny(lInvM1udSa)^&(q4ZcY$ExtqdDMJLO7r4gFFWFeRZYg({)ys$>V}A-hlqR-)z#If9Wt87&h^nY z;{{%h1+uXIGHyNStFvK4k4DEt^(HIwMYW_k^hO~aNEIFGpaXeGi{xpy3imnU?)aHP z^5qRyZ;{Ng00PWQyb54UIZX$#fb8_%Z3ngs zQm1LTt$~G9xh0ID?qsmC!YNM)VdUHLK!?JYtes6{y+gwFYOa4)40dO5}On?77;%M9?TehmK-XZxk{S~JShfnXzj>jE4#il z^)Y3g9W8BFBxa{CB??AH?T0#5YkIS8tNg>cd<4{Jguj1YUrJxC{SSNKA^Hdq4a6-b z-g?+M&`|Y5hu#=tZ65or0ZmuN%bllWhpdLtYBqCO_%;)Y?k{hU^sstMcEMbz$jOeK zxgVE#op<$c2atFR!fd>h_KBbM1se#D;;ctmgSz8&y#9W*uTT79Dpo9R@z55=-#jCo zaPIWlKQJ0hlw_LlUcdGU`L1+FTu)w8{IIU79KeRJr5!0d+XRhtn&HSv@Q`)U+5vE1 zPowB9IEWR$81^OYF38GDk$tUU|CR^bp=1bW5ylS(s9RUF-bDk@jEIcMJPvgPl2 zGl27}(Kd_2j^*$TM3C6#jtb*=;6Y`}yqnX?+Dz)MRaFAKaTJCI59_tN+gqhcHM6}Y zSo;|>cS}VJF&CCoNL}O*UhUKDuj2CQjO{Khi|Q~bfDgv;-~;_ad{1<{$Qv~xZ?gp}C;EBSTFxGEPL{!FP--O=Hz(KHV9;*F)Y6w7c(O zljahs)s5a(Y!Z5XX)G^IvbKz0^k-h6?I(&Ie_b~MT;Ai3@Ikc#ak8sA26wz7bGI4$ z`!GG!VqqM_!i?@8=~Z|PKH{@zg$iJ9Gi7ApL^ImnVY$ax|DNuBI1uPR@VELrIHLM^ zhh`;OlR6QhtLlxS)YjoHI|kPhaO&PQ}phU3-y!2@d`8+q+NqYaVP|$Ud7cnKxRaz^M(5SE85^9oe6|Z0A3+tj5KK z3%D+XK4nwjk-#NT;0NA-gV!CBqK7Bx?t5x$4KXza?Xl%ONV!zE5Ml zRn%B?9EfN#91Tld7MsmauUcDo%l%!Ybzvx4c#W&*()MZh&D+~|(C-O;WxaWM0`to& zM4c;kwT;tm3z?my4~k|xpP3y;FI`X?qbD{m)?)3H;iLXy=rY~+#~=Q!M94hTa^jZ& zJSB($#8lW7V`~Z_Hn$butR1FP?&@GLhjg(j3XmWNNXs&Qt#|^1m(py%Ocoeo*~Mzq zXys^9peQP<-VAz+!F$x|9hJMMSVu#JYnY)zkBTT!xp(XJCy(CbmrUSDQoLDx{HG{5 zqB>%wuS-Un=5(oBOO1HpvRn#hMl%5J2tV%Jo)Wry4>q@yZBQfuGjLt*g` zE>oK&Rw4h#w~h2fer8c2MbJT~pY2tB%cbwHomGpbDx+a+dRIZ~?!f&DANJ7Fv$Sqg%EQ?L+5(@Q82%XUg$K&a+96hY16_jPm&CyI z;$VQ|#MFMK6D7L%%?^`F3S;49P62MJGLHk95XHkdZ&k|d zEC+33N6g^6v7HOoI*Q9`a-}fTTKct^@~-5qHW@2KtvU$4F(Fo2i@ail-jr7mYf95&h)io=1^YFV;>hMNa%Ol_S>gzaRwoF#%++A4CrfK za{phhHARN#PlP{C`}3|CBet};xMJp${WuK8!aLhMTBW^2Xc0?B(S(XatXPr&&gx|# z9x(7*dYL**CnTgp(;c)4yuU%=!-W&rws%z{+Z)w1DX0xCzC6mevHI5|o;1Ay*QQK1 z<`?$e$|b8CCZG5**2L-`|jX6Da!gywFqi)?~caBBSi| zE-EjLH{PF(DqXI{ujo6J_-c%i85QUn8X|uhUI%{>XM78v!ukrsk0N>%wiNX5VdRf` zyjt4I*vd6?GZ?~zV>@BSm~O67}wPED=lZ>G$B=??k;7v?3y&zB{; zLU#}dCy%ttxVtw)2l+f7q+bAw(+zB%$2TVQ(Gi%BC@3hn4gsbhV>O!LDg7Skd4}Eo z%gu#=H|31Abfcqn+s&3DC3xRL(*1Kx>lgq}#O$RfsRvdU6si9`J?TQxMZ3`TXvlQp zj|&E|f-jf<$sL0PP$Ae9DfdHmeOWBuaa0TMA~7xSozVX19qT#kU<2nYO8&0f9A4Ya zcOJ=SnaZ`>Mp+6wde+LtxhaT0c@nVi9GErVWeCuduuqW2gp=yI8muZ7BdIFf+YOwZ zd+mhAhkLo9S~%k+aI{u*_P_ld$VSLz@xeq4t?dVEPQc6g16Cs6_>?5x|45%TjxQ(t zk|IDKa7q_k>s-uvURGCj1;1KhOPwv6p_*C#CKN8zR~|G~Q3NK;rJ}P2J^?qhtwPs6 zwFtkI8W&o*vA*@Iy_nq?{GyBk=i+;Bdk81`*Lih2&Sd{K>+7NqTj?z7a-&1^7W@`y zk(d*W;}CCyfJxrH{KM$?YX>1WHmNkLFVlq6e2B*+2Il`!#u31~!krzM4+CH0 zueb9NIGLKh%XdD?AK9U7tTKQSD!aH^Iwk-2?=V|WgPcDKKOS3pHiD%+P<_J}xc3u8 zw^@#TE{dy`;i(Q$k(0Ej3SKP*UssqcC#%=^KU)DcN7`4K#Hgsh%AeC$I&|;RBbKF1 zjM^+pDxKbhd88980BzaMV7h37KoW7F!T-hN4l?+Kk4aEtfOU^chUse@spyX&X`2ac zhtfXK6I)npPbE1+!j6N(ufD%AZFZI>UyngQWVF0Ve&>T)@W77Z3{_TG2%jvN7Ig*t z%eTs+D;EoY5|&%a7dTlD@1!lb$HbWO#`n`&C*3`-D|X*Y9XhH|jm{Z1J9&e&?XEc3~nlq`in*7rGX6!!5z112}*dRSX+k@K>3o5YEO`f0KCX8&iO zLs14_PF(u>0V>>nKC2w*X*&oQBH3>Y;4!!DLrLX}JmtpQJh}mW4d4S-JT<+b;ktcH z1y=Alb+m=i(_3y$W_oTsFAu+~klK~z@hS6*U+wx2=a+$>$^jJ1@%fJCjnRi&dWgPP z4_1O(KDjV~8|V<1A4Pr%pA)HJL+H~h{(t-i(BP5Lcz&n`O-p5V5+I)!w#{q>invN; zy4pR0`lX*HJ-SWhUOakUH;ClgeJXt?1D?kWR}~LbJfg?4i38qlEEWZf`$Cu&vOD;Z zpRi3%RZGwvsSs(N89uw^(Mm@(nh1TDp1Ca;~ctcQpa2~cJ$N13BO*0ysz&; z+5Ati(6Xq|Nn;YdkNDU3p{6Cc9fDb)pNBS5C~h>fl$q}?)mP1s^X5^z!)Swv`PA8Y z4&~@J>w|DW8<51ptO%AjR?)BV9-o-&mVF;#Uf^DEeK|SkVTv!aXQg`igx_ zVcn-|F*ghEFT*-=<85*q9zPg4OEyV}eT5z;f)|6UA^pQ?-bpYweDn`Bfy3kmh+aDG z;Gta9=Y~meE@JaG25x>6k`7rT-HTzjEkHdo)fBR?yS!j$sW&Qa0P6HdagLIl$CAOIDNevi=8vFO z1g$r0;Xifr3mv%LDC%7w*!-G7Zv1ml6?r0y@0R%)R-YiZwCTc5hZ@zpVPkSZm zf}j>yq=aU#wLhfi?aq<3W$V2##6S8YVKK$s1#dzyVz@O4ben(F`M?DIl<0!h-!e!WJi%<3rDq99_b2Xl-#{CYd&ro638qp>`Im^ zn9ZGS1dJCkYdYhY=*SlvBs(;`{Tz^5P@g*oT#Bvo7SE(!)&CWG2+lwy>Fd%!8z`p6 zoU=w7S{dmMf$NGRi(#};fYN35OEu5>acF6LKfvYgE!@`vFivoDg`=hJ-@xr^P_7~eJeO{ zAs(Ipcgvxu@JEbq^A)=D`Dd}A(C{IR$<;g{-q+3X z4Mpv`o^@3T&httv5aon=+NnCp-bf3W;yw=7Mv6+!%m_qlTxcrDzT`@RL??^TJ5q~@ z0bP?*EH=9XpV~G4ATJq<8aOUC#>FtUT9dw&+z>kNxIb4rQCiv_(oPsr@WP zU5ZHHd{+O5_yc6U08IP_aqUj_Im{4uSKg!gB z4Iv;QmHBs>>xE8L_RQ+tOnx4vtph-gPBMr%9aYw?L0z4_ev(73*S~X?Hz_@biYKnp zJ5b&p->N0oxys~k`*Rv~50IG%X{~5^;Q?UwQTVv*ZRGe99`EeNJZCW~ z#nE%P3vq*m{y1_ucHIvJCv;?BYxNHB*>aw}Ac`QRl;4fq%{4W9hh?U97Lbm$)%rKj zf5RO0mgrpANC*`*cb=#UKs2gg;!|?vlMm4g&d+6LK14`=oO{p`{{WdB?%Nk(fSSxe z?`dpIQq#H%?~~@77tJ)yZixX+ zL^NEJ^nElQ3SHbM=XknSV#9>*#;PM*rb!8l^Y_^$emrvmO@c(Sbs8kYkyCR@+=S0Y zT$*t3b7E7|x-q-N|MLPk3>5(PL4OAnE7umMb$`-nZ%g$7ThVE27kVw zne+*k&r8vMGo(3Ebt&NjW4~wA1Z&dylB{~l%-j)_^CX$2*lc{bVMc?6B6NwI3655X z-ahQAm+8@~C2)Njz9{1`&{gxC!rg&uTYO5p{Z*PP9~5{;iyP(q2C9Mw4uWP55Nwwz-9voXE1IBHP8ylAvOVQxj2RN^et$V{h_N%RmYV6 z{XZkVp`vXYx^~O2>iWC?C{^SFibs=9_~;!P?cRGytW!DjGTyp354r0cFX;`y?v2h> z?`9&c#tVE#w7JkwKWI67bIby4DhtdCp(`4CA6Evo%C})9`}sKLbZFz`8va_llld0v zatWFs@0qI5A6x6~f^%$HYrC$jHR2Ccrr|@@D$5Fyss5PA0_Y#4rxW}5Cb492QQk$J zGW0ymHqjo_Eayxa0Aa8_x~wK+rN}WDjD?&fuzO4sHQ6>y(1&ySstJ}Q%C^c~yAr-h z$8E5hNawSPV>axGO0W;PQ%N#5r&FDS^UYX>y4sOLjh?6E>c ze_$f04SiVapXtx}?2Ic1ToQfoFvL7e+Q{D<(S?0F8AKC74Prxu@U?nKMQli0aEi1l zZt)S1cr5iA^C-694{Ajg9P;T!UDU0YwnHe}(D_cubJ_Efgx2(5^xYUw~;Y?SjO}>cMieSI*z# zi1HhKj9wpNM^?hC2joHSw zlg74fHnwfsJV_ecYMeCIiPhM4dtw_WdGovf@ADD%-gE6W*BWD7GkbFEChHkv>i58X z+G6MKlq1dyxVD8fa%H~bn5mVb2oP6&&(Fh=E3GZa2tt)K^N@$m(&>Sk|5d%3xfKVo zqdRE(13T+`orjoK@7Y=1^8wI^C^zH5la0v#@P983FrEwespPxiJ`M}8J z-I?nwk|t=7dLRwCUG^-d!A!<|@zY+WDOOIw=Ajy{Gm1ksfAhYa%Kob`3fk+L(3j}b zn6@D<0u6f|{L_=K<*&q0ya*92Wy|Tfzx#yPXCv_z%dB_vD zp_OI`g`8MtJuWMCS#wRTx3zwyk~oc&cx#) zkQbWoU@2_sh6{B?xCgYvGR-?F#s-RVu`vdsIwI5^wo^y-S-cR;(ME_I64HiObHXk> z4p2zqWkL0wC#Y|e9)t(58EzK{tJ8*hs1e5lS|JrFnhPj0dVESqSTJe%8cxCz(uZ)aob#h z^#~vEHfeDC>J8f4e~m0tBn&&D0O$8dzH)i{dkQoTx|=`+CZx z1(}iV7|}g)3aSQ<3-5}(7#=m3fO)T~UH&59c_6kz-hnkSoG8a}x{NJT3NEGMy1duN z*Zau^fy;eFueX;evv^6j45{+Yq`66p0p`pY(R6HqC+&ZFTPFAp&mnQv>MAYRu>L8L z8?3iyaUq`089MAgkK*MO#C#W_!<-=9HYZHUqmVmaEP=Ua6$fTaM{+rwtu6&-WTa#f zW)_9Hqj^b63~)M0V}An`0CR2mrE6AEd1aUUIO&%mD|9H3;LtBwu852+A2!T@X7Fg^ z_xbM`o*gNdHhw87BkF*z2lcdFzj6co+n~)xSr%asuDhsF@{o&;{dv4YDUa)Iu?9y% zOZX%k(fX*5&Tw>G^b!(7ad`;vC)-vEh%|=IPKNycMvVU|p^UizwY5y&j6Yd7PR3WJ3?Cjmxp`7`oIV&JqYz#bTug!4&))#*3yR}SqSl(sSAVf?&WN&o#1u+r zZiWoW`cjzjQsi6xIz(Bn)|G3(17mTjg*OL6r!Trd%D6qLfK0U^93cAbuX05W^JH7m zK$Ulp-FgUtNvPF0kvEcwq&(c1KRGk(e7fCN>`B!y>l-aE)12r`NDo&_;@ulqZP3Ed zbk9hjX$I#uQ^De#qp)pua1ej3m7~clLlWA;i#^Tj)}Q&6^6p2cDK8*m8tzVYJqV^F zJ^_u9BE`Q~JI4GSH(V9gcZMfNEOoVGoS$GoE&S!31XzOz-zGRRS=im|1;J`qCvLqI18uHHK|!3 za3a$*eW%`vMH5_pDfD$hrp!_)lc}z*E2S2UB1!{o{nXiUaIOFGg@d)(bhc#$dwO+2 zKjj3Edq~YNg3hG8apFa82O*aNfsVtmEEr3*^8NA`LmP+b06nXD<=F*#SAQ|tm2rG zk|Hiyp7&P?S7C=jIpNCsXkjfZ;5fG3q5oec;<~_FUltXr4ox^?(5{az*5L*{7v`Wg zwL!R0EcO~Bm!21y*QG2VS^MUZ(}_7Tp8Ln&TXZbW?MYPBSJFybtbyvletqZXZ{huU zbD$YuhaYe%;T8HU2rVXtQtRVEDPnwRorz4hJc= zH&Bb@P4iwumP>lvPzA}W;h14IP$5pYfb^t&;1M>uq)4xMC0CMUtVDXAZL9#qL92%d zw1I{R!wg6=RDkn|j`SEe?jEN1Hu(IbHht4?>z1#=tPQ%W&Msi-vHqa7qV?@kod^p( zn);vDJQ{6q^5p7pt~`c`jg`#R5DgW93#9}IRm;)Ow!}(UCqhEC^tsl{y*1~HNOblI`QI1 zR)-{}iaFjS=eI$@Py{^heyTQS{IC?>Inq@q!y0#8g~BF34VAI< z2wkigjc~uHNVUHwcVCE+m!06+T2%7iH$&%{&X$3@EPEM-;PYq#wxsc&7Z{Tb7Ww575^G-N+Z|i)#XX4A>7rnM-PMwdx{J(I?=3h`4;Q0JT0{J#-n;H)la&1AYc0&FexLSfv z&9S>=r=h6;|1iZkhDzLAda{^)sbhL3_5+#h68_3D)8mDnKa($1Dvg^Pz`Ep!-yQNY za_n}&60p4oF?o?>mhuA@SQ!u-mGdkGDpyoWrE}j7)+E-KD-kG03M`e(Qa&8zG1!S` zbxS5JEHYPOS90M(lEQ<#+W0HK2H>Sj-GrFcoQtv_q32EvwYTs(57{SIs=tmRaF8afMz6l0ZLURD%0lEoB93=uF?y!2x@rdCAv|j*ik25=wuZ$<(@kJ0>;69%^5>o5)iCj@C%>(kEltUm+=qFbh+>m4>+#61$3O0FJT){^4n~rbg&h3> zSga5jxOswp1Lmzc;fmEl&CRKZ;pK%tbYM~#EcE20T44?Wu>ennEjSph!}5m*%~DGc zIeRZEm7NwY)J6trQN7FEW9KI@^#rwoi|tQO4P+_AOrfPw`4eO>L7{xMyv>Rou6wPk zT}&Cvsj0V)DnNY?;4|W_m%l^$*^O}O0y>0|0kV(6ti*{3PE%3FB)I;z0>~?yRL#tQ zsD5v=RYtPH9_859U)nI@_rsEFjAUs3vtg#QM3E6m#!XE>(er{AIpl&Pe*RKqe)r~e z{RR%=@iipO?*-GP23JZHTL=-#voj+)Zs5dtQ-`9p<=|!IfQ)2g8m-GKanjOc zWTLH{HfC3kC|xiAj&r=oV^QAvPkghluaxxHB~H%5uCHxG%;8Qg2`e{MAc!gr$JNkW z+D(-Y3VoilbH2YvA!lR#8iR%?GU(XaRtRk5_wq%)jH3wKk&SU>$C2Y8urbvRDmEEf zU}m7!)qU~g;NVF3;)LCIzV`W{`wwdmbrL508+jwQDrHW}SrEy$-vVA?5yOC_OyEw+ z0I~4?tfvs6x$4W$rPNm!^=0Qx3AiMNY@(HGAj`x}L^O#+|96~d%tE7Vd@H69?QvC^ zT>3TZxo|}mK-6iyl0s_uYNshm#`)K@Z(*#IU79}v-d6m1Q7@)zN?KF#D_TB&WbAyb z!&Y;--Q@Hd+KXL-+0gDPG$Io|gQ68S4756kk!7kQD*|I?byi!ecS8n;_9+J>dT{yM z-MQKk#p$SxDq?x z!;$^=k$FPz03u#^TmwaJ^;#>vQAB*{BIls+If|9)D;pnFWM61kH@1eBZuAVp-?%ur zehjVlbt)W;Y?E`|w-twbpdRHB6s4I_eAc5%ow0=4k#xii)G<*dU#Qj}E8=IRkY&x% zEyX}XptFm_Q>s2UPcr!E33rI~N+Cd!>H++2@ieRoM;6)bA!m!8ZTEdvRIxwOYkLR= zM<4JfQ>K*t#Ix*oW&@%Bo0hZhqA);ISyo0T+RTgVjzaS>iwWD<$)u2+~n_wF@M>AKhr@^~Va< zrv`~)$1?Ezud^+VjKMW;gt6Dy2jlhj?NUg*$?(ER#c2} zPYkD8GBt;d8be$hM;+z_RNF0>@N`SeY--M`!_DRp0TWMf=)WYA4bzcgSPz?LuVUds z8oz}w^)sz>LH8pPR|IG*>+vHLjlLMet$v8I9B~j-+!xQ@iU*$jbQuM?G z59NUHRWM(c(2&*ZwyFY%aMi5;kcHCd0y96urn{!C@l$o zztZz;HtX+?Dt=4xy2@!v95gVmx8NWH`QN+^vUJfB+ZFhs+0lngb}M9;U4L17nsh;G zFdIhl_7i7}wNw^!7^gOyPHKh|3i2ji_J1SRbf_yfGQy`i7k}}nd#KuZ^uZGRzlZwfP&TZ z>9PoEVb3qc)6J+L%x(=xqgpqcrGJ{u{28L38NAf?uuoXc0hKqnwhci%AlH?aswurq zRrnNpw=T+QG^Su&QZazzeYF7-XXYLG;T@FL{xqwLN$k&hBJ2nA{=AFV?sC1>{$7sa zyrSq;5^zev^D-$+7Uy|}B@syF)GO!alRl93i~rF&wf7ZL=$WJ;xq{Cs4^VOW3^U)9 z!eXb!0d$#E9W(GIQkv9`7@P(RVedQ$1zwejEiSSVDGcc9d;Hsb+9FEJ3|N$HKWyA! zEn|fII-Juem|uQI@=gFz`w0HlsRkkB$YDIzj4&!C$!^hNnurpS;+!L$&h(;&1 zft=Qdmz00L9go;Hfw}zux_=A!_NP`O%XugXl7vXHq?IrnG`W;aF@~T&4CUt4>?tN@ z2|ofPS|wmQ?I_%Um}Pgu$}>5^F?R>pDf64Z{EyGm-Fm9J7c&*)6}cD`ENK>s9oSRA zm3|DQjHQyCcB4?a!MnyJb4`erG!w&(uQ0OyEb9p7X+#@F*}`!mQdqh`b?ww8H2WDc45~@#1y7G1KKqxdHf0 z`}QzwwA*W^Rb&aOXhb>HcYb-N9b1Qzwm6f$f7^@B<-(EAH*jQea44?VQb#hK&umk- za!r|%CZkrQ_BhTgciX^c_4p&C08^nSgWQC?Fe5^9_3FU>Gik&RwO(({GD4| za->q_f^If`D7$T^(#PXwv5nC;;ef=m%lKraWTM4(1K011F?DdRJAO1x| z67rWvv<;x?gL!JV3lz}nmgemq0q8O)Ch&MaQ}VDpQ}|vS@${wxX9nvQ4SZOZmf8G3 zCG@eRb~Rnzt;8`j10!>^{h`TSb_dKWX-q;%qpz>^TNP)0Xj4~|*bnk;zSTBe&En@7 z7ZoV!RYX2=1>WSnx{SygeTuH`-^%H64YE>RJ@$#w+Ap&Su1|jd==)87byb1VmlV@| z*xd6|d8C`u5%&EmiU3tFGrBbNndcw8@v+^K`7DOYOd$(}I;`{)@bP#WQ3m2sjN@#Jr8*=2INhQ~> z0hcB>C0Xcx`;aU4OUnc}f>B-4^?1@Mr+-hS_UOeOS-)^ze0ouCRkgmij=bQbdk<}d zm>nH<|Eb`nV_XRB*O~TW1B;pvGz*SW?&ReZ{unqb_2;L`RYj|T`{Yg&XkJ|$5zTd? zz7Ui3$X&sq%;;EPTH85F(d_iR*N^Y{w61*ahDo8pHQxF-)x@ufPAHGdolwvHHnRZ$ zIr6Y}tln!HLf0WQp1*}Kt5zQ$gY17j7R>0<9w7LV0g6@uZ3qU^Zu~x0rKWMn$-bFimBal1M#Ci&gUb4S)a4)|41D^%+j%oH6N5yO}q-{yq zAO@^>WrfarqomDI7gggH&+lI3S(R1{*iG)Fg6lh+yx5~h_dbuI!C|9gmUDbV^gZIn zGN|Zv3Ff-!X>SM-WAxe9qkl7Widpi4KJ;{B5Js5>A`0d@psq{e9;DrGM!i2r&IJ1M z0-uiERA$veqYA)qTvBCw6IO)rX%oci7Ns7`B~(AZu|QA7MJ5JVXAQ-{qA!SA=FF}A zkeF?5jgz#|h*Kzg%C3y|iNhEi zn(5LrdjCK7aw_RAI!Nl*>!iEIH*4x8@uM(LHdgBZ*4BB2QypKRa}{~^1j^>;jKSHk z3%z&~jZJ*BKB9M{!y_u3&~wj*Jc)b63s9f6vtQH2JlF+6wupFnOSP8*;d4q~#_n?S zW8lijpQ8Ew2MsSkTK?mfa;=ulaX1jGc3X!cU*z1%S3WOM>*^L~#wBUdYExWs_4YO69ns1EXPB_S79g@*>*~3q zto`3goCgxI?z51btb3|M;8I}yn=y>8sonKULH^z)G{-U@+U9xjYn1LKu4H4g^z%=) z#1irtdj;}?JH}Aap5lGB>s}h1gR&dQ&9+u7EQ>a?k7A|fC+O|Nf@`xkD?K*HKvS5& zZf7I+^bFGPS@=&&Gy9-kp$K(g5O-@m(=Y+bW^j)hzDku43sw%Aykk)0-T7Thbxi*p zuIDSN<7Yt33l$z>D)F{aaX94(26F86{J%3;v}o`U?*?`f6SWSSqlW;8r8vMd{5hWh zib8HYAKex;folVLdr>!s%N6&rpSE>LDK7Z;A6?ia2eAONxPTM<>~nnz8^k%hek2o7 zU1Qo$`W3Rl@}|2R*kK|I>RC1U3AZFv&m)Jvx>uZ7{2ueVJ3_SlXhV){Xmw@rI`3jA;C|2D4gc&u#vz7+_XGEM_`k!b(a4eHf{(U^P3wVkp=p4pjq2M%VWrhenp zq9pEo*wyH{qU6&p%y?>W@getui+wurO6vU(cDl;ZsYp)kDKZ1)NtF-)kM?w3%@F-YbuR6yD)CzaEW~%-p*AiA^Z<1A( zym=IPYXz&ly57SXkM=AH(O&x?fHnRSf zk3#kV#r5qYtgFRbL&g;r|8x;~(GtELY$am*)bGyCDOvucUYu(*`#JZ|JI@=|tl_dp zA!+lQ`4VdXGhX!o#>bwd+B0T56MwrSmVzoIyiUK&ta&58w^_yy04^Cwh-* z+-#A`0oZ@9q;KUW<*kD95VGW^qQYxw0m@Cb;jgV4y9oOB(R}|Vdp_lyKa}47vFtHK z+S#;(Ksx$|E$(wzk3>MvLfhgbq5K58J%a!J%HwXfyt2qrB>Iqq1&f+JM&Nrq^T9}O zcSMZjGwqsvGUTZke!xbK3^E6t-7jgH*LSqRUlFzXnMtaR-ZwGQSIaky+KokoF)j)L zVx?+Y1|k2Y`cmoYv>bZ49R8u!m|QH6bY>f#K5Ws~OBtb}vQkL=FB~+220i8+sUBk< zlv`*f#zkq4IaXaD8M2v->&}_gsNQUZApKM65V+*{BzkU(qQ2W^xo=~GXNI8`+FIvF zBy7iem_(b~NQ0Q^7#|N?EBrHMK341E*XSJFSqOWtHv^)pEG9G^|H;Yq7<>KhWqtPq zW~GagJpt?dP|8>Ss)ic_sq_kL>YpJ9^NUIq$U!&Tczz_IxiKk<@MPYPZMgo{7dukI zhq&A@nn6zA!hF$XwEu7}SVpYyvtVBFFyXQ}kmLj&3XV*BO?^GWQS6*++17Y~iF2*> zQf2Cz$r@lqG+509(@b+ zIvK`s%TG>@)t0i`0g3}Sxe?!S+=#PM0gIV3Y}x#?tMlRM?U?2kG_%NgAvW2kW4YXT z_%){h3&U&7a@7r!Ngu*XdAVq^K^;l3&rfoY0NXd6)b_ST&7$-)auJXKIqb2`cw~d# zm~afQvT5mBX0)evyb-8#maR&JBrl6=S-X1 zsLTD1eUA_rU0{=5=B^#NdwW{Zb%(nJ*8NKT0T zxGj5B3+0p!5ibjY*2FIn5_rH-kZ>lMe zC@uA1g!dKVx@*O1>2(dFL~m{ey!uH8SRDO_qj}IrEE<|>_l2Je9EALQ$SS7$&y`i|p7F^EKQyFtC=NrvI zu5eq#%9~jJB_>+s7%B|Q;k!YcfOZ7wVKamzE2jwkC`lEM8`?j6!w?MgJL&{Mp=pqE z20#DC++<_RBPX8d#*LEiXN($^33XP8GQQ>k?>rA`DNr_;c1qXI4Wp_p?HO0Owd!MC z?`e)*f+5Ssez(uZK%r+61w);k#bZ10p_a?xV_{01VZHp0_x0}#t{c;W$G=M8Y0=@; z4pqTV*2F$&+r?g=ZP~H1@vc9|Mo%03H_a-a1q6KqiIO#iE`X|4vc2S38O%#&PMJOPvp7$eNQP9 zl=tYFt8gY0ykY02L2CR;bshUau!mhf>H085YUioJ$00?`MhhDN0MyPnF0(`^$Vp+V zB_E*5me-^!1b7&rDgkHGBP&DCOT@lHF+;6|N`8WJIg6XC@{y}bu$I*~YjU+^r;C=6$APJg}3 zt*b@NCsUgrmZxaDO|o_ozz0%7Z|e3El?|ULen*U(2ULDL3(LnM!id<9KdmhSbdys` z$$ufEb3;boFK$RTyJ2p`lcb#lh`UkX85%lUi4y?0GA@eg1H+DivmT}Ii!13S(hdx+ zuIgz$P8H<1&2##-HC3?3YrN4FEQ2Ic@7%a#l5J7m2`1o?ukRT@4OkGyT@<)~ zT&NCz{xd&Q37O&|m+cSGXuIo&u)0I;ZL@+kRK??OuWy`Iwps)pD_ofNC41~mw{btY zZD0i#(a%bRVv1T`;ns_SUw)(ha`WQM2+*%8$BQZ?sI@ER z1O*@X35kF<9abzHqo9}^b4s2W&;H%zd3$k?2;k5B_MmdR+$OOEZW4Cy?y_}X5TXBk zwkz4XrFgFWJp98jYS{AJi&A~(o7=`>J$Gyvd%qLk=XrkqUc0SrPyxoP(4z4tD-2Lu zRzlN&|IU-E^@8%r^A*L(#59jwzS&a+xZ>khx!av;KDM{@|H@Z@P80S7)tGZ|ao|Bv zRxu_|?$KQKB-YlX7-_)!Qliq$)_ngBbGqy}VmQh?;)>_!zl%od2T46D zU6d7~6MfK$6a=3|S%G5;nv~G^ky=#TIo^ECWI!uM$5;)|Zb@V8w}!pAIL9oEi?gv+ zMfN#3Op*3waa_Cm$Qu^RAF}s(P@XnBcTlm9gg~C3IAn@o!ui50D00wB@?cvJ``~_R zjaJTVH?`H3?eL!G#;xKYIt+w+yE&^8i&OBzo?ZiaL#-^XKp&$I5lNJeawrnppVfw` zv<+7ob52XgB{Qkhf-Av4lhR|;hWMK*+zQOHge=Gvchpt%TBkGJ zB#ltatNh!d-dq*d_-*P6tQ0!qD@pvyq7|~5PB;96p2KO`1ld|hs)wPG(KYEu`oDlY zYXDkqcI$j?gSl3FdOh@YJJsQ9H(^-17YL9>Z!ptsAFoGToN7CWK-xHAtPI|j#@7qU z8!+ycpjh3H62?13`OLc}bu*l< zJGbCH0|zTe%R;cnbI*G#rhL=YO|72u0NzfYy0Tzc5cqY+`@BW#>V&?2_aBat>Com< z`$xV}k*^yopY<}Xw1dMn2zt|ZXXolfJ#lxvx_$&p%OHZ_{f0%e_lg6Uyab4kcc@u$ zqZ>vYw`Zgu6s0i?jUxV_SK@a}5adoD6Qj~xX-nT*FwzImkbnuMg@Rl8m!=f{%>mc07%_V-(F zGzr1S1C__;0vrk^;d@)ypDEbDG|Rv9pz~Ej$Ivq%hx1mzSt*Pf)a#j(%Obec^TO)7 zajO$z7%;Bj2D#MYjEqiN{r5B2rC0XPrg4Wg71!zQuegT#Dt)~1uZLRKXyJJU5T;Uz zg-CG+1bi!)ZvIP51LiH|t<4@8M)2L`!@GcK#^PM=J!gGasoCI_O1$ESy}xhN6Vow< zBx62Ejf8b4Te>zN@A7?YbmQ4N{ug79-h<&y-mD*MO~lO4t3rMe^XTQZ#1QOr7{r@Z zaNxIQnEH1aQ4zP|7IQzH=ngDmmX*j5Ww4BgpUC+McmYV~#n|E0&f_2we^#E>)%e#D zF}P9aECkq8r%A;d9}}yR%fmHYK_{iKgH*h#HfG?iMQhjcz|x|}PRkD|eiJiS^)4o7SNTB4!$?fej*rgu z6d>-r#3pPp;#;l{L_^uWM*gmg;WA{EF#5rN!NLICW0GjjjUM*uji5_GoLk+@E1&HZ zyj=ay#eEeKoEhthZV~HV7chi|YHQ>kk>R+blY$(Du_Hd&a2K*J`U5r=&pl2*sCZ7p zD2@oZu1chOqYb;ne9HBusDk2?L%JY9kb>VJeH=sHC*geYi6y`H5iy{;wlBQ7X%dNe>4Fc?{Npuq(U7mkZjP-n|Upn~B&jf@WO z>?KdQA)t30>cdf>Ik57N!9JU-_y9qK_cFlNY4D?(N&+!1vwl3dNF*syS&l~bx-8J>EjKW<9C@%qS;qp z6CTLHde-({O%j>FetW8cc{=F2d4VPFbwZeLdxIN2?_yROhq|b98rE>VKVSU&t33ei z#!1xc3%hJ|$*(LgMJRs$F^QXWuAP9=LR8VO(=R7{lLANZgn~AZ#YdySGht=3VLs#i znzd!29jD~tk!k+k7=Lp7iH1Noq6fYs?a8d9;t}$gk2Q#9;;lSV{<>7>vT8=vg6t!o6FhNF8OvS8; z-~qN_z*N~tE^`1F+y5onsdzx^*o)gR&J7sEf6?_0>3{#H;NX)(RF)>nVSx54-nD$N zm-l~V$`bWu&4uC*W`i2_Qd09OnrKOYa#Eg${Uk3!`^DDsT8QrjF%-!!+`D;?g4HH` z+v?{tTC;Vkqtpjqy=y*&?4HDbC>gRnnHJ}__kd%y3CyBvgz;$Q>6UjGA%pk7ve%7I zJJR$no2+nI7O89vlr$p;US0yRVUKxcgF54j733<3?~6dG(%7GRt?qa^B_8OE;rIky zcyE1H(C^r0l-`QD9dHz_IBH!+iF^+~kkdJe!DPNv?X$R&lu_sc&_djsK^wMvn>Gr~ zKadhi1_Drf?vxec_X2>z38<#gfvft`Bj&eycGBK@b>_MizS6mmDOZ1WQ~U~+0n^us zpM8we7TkvE@>Z~le!!o&;uRc z=E5OpE_=VxP>PX2t8j7LUPsr8@3@Bj!lw1n&Bi5gRKjGZq%!=ZFe0@^lFvG?%4^_O z9!1da(`|{*RpLBM_N$ZlukmDE0hrfWZ?{XJ(Dc!TVl3MewZRtVVO(C^U4ni)@SV8( z<>DWY#SZ3VPD%*(PW14>$~!VMm(w7U-2$tHrI2ZrP*J)$(FsBH5A^4GS=EWOzYoK` z6p^If#bFAyv87hEl(Cd1nvH^yuSnPM@{r^?-&K+g!*|~Pap`+clF0zjRqTwg_ zUUV7WrwTM&Dy$@vW0(`@KeZz;-eEysvyTg#(JCHOzX73$Q^dbz2fIBozJYKjOIB{6j-U{B?zGuPC^FdE8n?oO{ z--wL51hY@SPAjXZXiJcZ#T}b0a(|c}c)=b9t@C<9jGWG=dQhl5hVG(^^Zt=q{=ih? zI~I`}Trs;w8P3Hqxj4h+Xqg|aX+nJb0BP|&T=g^t`O-gBARojeYrfdAec5WK=<>VIjlabflW9f=d{+3iBI2;Ud}hZg2X3P^ z9RBnB@fGBqqOtI-EOYwRx=4d+s|lN1Ljsk}Y`b;a7>wM4>Y)&|oI2J=ZJ~@O0ki9k z+$##%KBezhov}!MOQ+>fXY)Tle$|`4lSg5|ieD^UYz3P_%6OM*_+(| z15Ftql}jEHwz9!Dgu>aLTRT+BsFXgg*4ohw-X%U5m4Le*EX)3AtUGjMT6a%p4m7`( zY%?Z`l6d@l6=wNjvij-NdS417>}rW2fSr!LrmC-JFiFk7e=3}G@Q1KeD%SBbK;UvT zzw6F57r5Is@MP_EM*pK31c|9In0V2FK%*qz_Zk$0(8f-%6>c+!{k-Kc3{HPGhBh64 z<0nwH@c8QXM~fncdSA0sv(Ru-s)la7|Nf&LXXkYjLc8}b(dONX^qf!t)3kmwJP!E9 zE83oRG@?yN)W~rst|p|Z#!xG^U?-4-iT9jkvEC?D@8bo&%FObhhJAWuV8FUL4Jd8X zW=jmH^jQeL$+-TL;xwBTfNxt>UG(Jol_QKfn*&Wt-(R54c&b}g{kaWWxZ{-7|B>FP z7<3fW{!mwOw3Hut+v^E24Sx7xZ7Nb;Z{R^uu8@RbuC4J%G+fZOLH zDKj-GG`0+7|C$@m-_e$#%G!cdOo*Hu8w2Uo<>G_L+N=DZqKGJZ%MD=)ia;QvZ`6N6 zA^--ShXYyBDBv~p=vkGH{M|n2-^HF#>W=ATJWFY?D}UAoDAKo-ef3v!#D*M~@p?X- zwxJ6vR6rUJx*7M@D`ueQaRw`y@Msl@-w*_kbw6=4kFBJpl&%)W)LX#J;0%OpM<#D? zFtSIL%_-KfVCsY3P}K_=IS(TRPNhzV%=jcL(wBIO7$(D)U->nk^L2`L0XhK8;cUWs zp?8V;hjmfowK|vZgOCxNDeo^1;V!%0gN?mV$0^Q6IPY#N*CO~w)phlX!<<*lrflR# z#W(~>ySdbWmR3s2{bG*(^l(+a!#Z_V9bH4;j8fG_ePpYo+2D9j?s1_{14_U!KfWwH z>V;|FebVkouM8?4UPJm@J^h80*POoVwTruTD+Zjtlq{4mJy^RF9}1Q^!Mhiw0;_+I^x1lG+c2}0Il4UxV^>gK#&cw=a!XV0 zZ%P^sZmVNltxweN8|8$IFPNdF@DkW*&Qo6JWbFNsM5>fbkYp;kaNM~f26{a_+jEe( zNHD~UzEBW3`dJ|}z4hnuJloxE>{I{U&~2CXAWa&=$a}S(IAFQ*Im``JAJ5fdeC1YJ zz0_uS^mwlO)JLbff+A-MyjbVQ3%L>cwXa!E7J32fLP5xU-!t|%QyvBnNO-kKygk1f z`oA2~nj&)Rn*C)S z@%Sul*lX+UM$@yyYczb`RP6eku( ztyrrI&<5ooqGH92-(_S#10x9XhRB)1BTGmO3I40cGe=ZsT#XG|84XC0G9sYsRNL+T(m072v15lg`Y=(##vy*Y-fyO6< z=6@BOwe7Y~ZQq7hPXp8HxSj;QAty~1IEcY=P6}#eGhpSpwUm3BZoZL~M;AVcuInWP zZDP*D>mr#(iXpg4+1L2jQC#g|G}mdHhwNcz>&A4v;d60x3EwhPTVH($}Ui$3w`PB{x#Bj->%rYfV z{8ad#S}UCA!E_5%?(AzZYqTs$ou^me{3_o8>(L&EQOTI92fhn>1XA70SD=`b4n)l6 z%|%dtUz%_?a?&^qh@QMa_?Z0}G67GUks3ng##3bU>6 z3Zb--2#OggfLRuU|UkvFt8AL6G*)=q3L`^zBriIG zJ;B7Nzs570wmYbT_XM)ynasE(wvijTSa8o~pP6P3n*J1ANzO#iV8Xw+usK6?q@_#S z)3D>he%x#H{ZYNd$3bX!lb$}`Qbf+Uug3^ zaP|HfNYgC9q_MAY%cnFrZu~zMz`>`?B#%#&BuC`XV}n;8E>H`>>|%vv5}1dn)Vdxyz@ zs&tX79vKU*D`LOdFzv&^DTPt8jzEzp>-A+HeE%u28MB}|w^Wfop{ui_j(%~j1L?fl z$?>sUTy0!;-OHl9UXwaZeIk&h1mdWdN$NI(wRTEgG2`lN{FF_yCnqtpP~`oqQ_g9b z4HG|kfxj$LeORZki?UZt$D(OiPW(;P5R=u|lYXd}uNzAaYWaWGxKaj@Y3Ntno*E+8%(f%6WuD!XtRJ16VhBt}P_zqi z4Ch!(T7%^6TAep~EO%eAvAwQV!cJ!%;#XB3lLHi(Q4UXR6sz0w!=N4P zBROi(-PSzbo;>;dPwV5`hrTz$aS?Q?h0^E9)ecl+)WV!gFw(=OAIX||5eV$ncr=r^ z_ctskdR%AWJn)3_iD;}aF3Dcn)fb}P!g!nb*_te@<_$!j&MfYkO^`W)=T-9)4!lIc z&Q>$UlPw^{#XIRD@jYuH0e@_ae_h&Mhw4415XHn?f@8jzXlFRHopQ)?dG+6MBcOTu zz;i=#7?F(*I#B;CjSC{%0;XhKI+Lj6(EC)zazJaJ@l1^I1w%5cv7jyD~!5 z(A&r|a%&QPIA*ah=Q}Z;%?+oWm^wk0rwXK_GSY)IG^P5mD*8`UJAS{Gv9_v(iay={*srA{=0VF}69OLmcAM+sHo zVNLtF-YrJhU$}*xAS79%{NR!bZ#7QoITJxLr)F731l;<`c*AMy^{|B+bl`7bk(o*q4;e zrFoXQQCOIgJu*!9o1QX7vO(*8dM&=q;${8A#(G1Z(QaPEaz>~i}uy@MJ}}uX<0pQj4Hl+Y*d>k41x$7#v(ji%c+Epf$xse z>=%75Wn7#U*fP$t6~*Y?zjmrWxaV|D-8S5i*_A)YK^ky~&gQkHKFYUrG-`w0rt#y}I(Y~=tQ#wPW8&;0bYa1^+M6_+ZLB0{4m0!- z;`Yy7|7Ap)qX2$u6MDi`;<>ga^qJ>vzbS3I8hY&wjtV=Nx2u!B{2JE)Kz_lwJ>*QG z#UWW+$pmI_ULmuc-iEQ3hO?GVj-=7kcb!cx5Aj+v zbaY!)MJe*uEH~P6X`!@UG;kkJL~J6u^xxkQz#=5|!4Rn|P9Vrpm$3k722xOMSrBn5 z!qzbUTC==0S^pD*+Cap%Jd8_#LB@eZxSn-BytH7dr|K({aJ7jDaMOtY#Ok`iEbXzi z2fNl~>ith`L$^w8uUm~J(kH&&(ztr?vc1r1<|7wPYfci_S%M)pp%`<`!4|{K6AU9{mw9nd;+^Q5sS zeCWGiYun8#@#cr;;+{(n#l+X=VedyL)7elToOj8oNFYsDN0V@) z0}oEbd(Te5^Z(rommYgCUjJ?p4tZlT{`ji`ha5fx{~7)t#6;HOEykH>Eb@QA#3>(R z!q^db|NDh_?ZszN8qygTo_h}Bg1zwc{gbeo*7O+}-t+?Rg2hGxuQIU=jp%{rX1s%< za_$i)5IXNXBs7Q~@n_+JD<%*wPGDXkIN_?t5kIoPwNGDXt5PdenTyBoxdC~s!~G9T zz+uPsacBPY8|A7ona0(UZb}y?|*V?Y0;%IwS+dC zVzB0Yd2Z_={dG2aFNapkUiJ#L@ zo(l1NCn~8$p>I-?Q@0+`m~h!G+|PIyF1qjt+;ryvj{gSC`D7xdh3tik`p{XBY~vgJ zkshCk%Z80Y$uo~)%*DfT`PKItIQ_^yS5>USi_biQ(PJkfA*lpR^)Mf$Jty+SL(jvnkh(WX& z@X~_yD9O(?#GZ&Y9}#}6Kr7-=grSS+<}E|(*-qb#CYXe&G0_xdDJHbd`m;H_h~N|f zDneWNnLM|W+234QJL0?A(AK0GX2EQoYAMNT(-z#RzV?~nUg`t<6Co|!8$w;0^?zDm z2eHh3X$|4k4ioZEtIu|ZSIiT40Jj-I+qsZEJUfk#25uP@qp5pyhPlSd7S1=@3r&K- zSPyaj)V!;CRNC++Y0^oP>dbMC=Xw#4Y=7a=}F;gbXlCw9n=bi72 zaDuQHEk3_#K2bc)OPXsm^JsqEcx~AP4F9s%!p|nq{x8GCPOPp>%j&q;d(%7k^!MJu zFN@Y;ab`Y(9M=Ahijo3kE&ZLH`tOh2P^XsmptN9}F$3(#WS}%P)Mz9mXP|RR9F{Ho z6NOcE@Y9hSWV$QLtC5kMhOWK4VfC_Q$Xu6$P-hJ?OG_|d*nhBpdMX?=FE1w%_1jxh zv6y&E%g8`&HO;AwOLP|^Sx#e}6Cp9((5q_{vR2YmJii7Gf0^G%a_2?Qz)r-(_d&Oe z2rOSR9|fgOL(uv0tn)R6RoHvjaC8rsQ?y2`nEfl}tjt781|88ksfB5ZM*sd@P*c4E zfBjWV=Rkqn)3_GdISn}A*yE8N9)|kL0!;h(OT_Ly2nWOkVe#BQP(%jZA#=X^Qe@|s zW4|MZV_>%w9{)y<#LjXoUhp}7nNxtI)Xrq)oh*k08ojpXtXq%$4?Y|jDcll3#y@+_ zANc8)m53vA?#+0Owwv{q>J!fmNbf!Xsd2&PY+n(e3YwraITmlo!;<-P5Y}@q^h!^G zH~WP0A!1MK;?a zjlzOz3I&vjCwMU6!NBG*;L;v$KH}~lLj;k|mi4A5-^~WjLtZ4@9D$bONfV#*MiYss zps)zUrFBDeJe{rCQ;Cbg)%+#mN?McE3w}f4`n4?2(twB>dHsv zozj3?&WtP=TE*+YgUXavOa!Jcg%BNCYdetb4vL}%%Zp+FSKi z+ZqRZ%2c@3`+q=C+lfw6KhPR#>hlkPduM&|SL4l6 zxQN-cEmC$y$(t&pW&FD|;I4?a$+?-w*_O7Tb5r?j$$RB#1U{TMWIbxmb~oDb7Qvns z$C~HOn(%jhZA%K@1LImV`5suY-MLCF47wi~^mkhr^Z*@?;ERfq4IO6CHMy3ML9gaM zJ$3w!1T9$3s&W(+mm(%Ek=k%B#7wC4zMNdjtIBx9SP9RyjiM*rAT*J%3Z$pq{FSR{ zWZn|OQ_>N|aaYYfD9W>K&?Hq~Q-b`0azw@?Akbkk=XN}$sdeU~ps*Ivu?b|HWpYnQ zsI3U36T7_CtBgZ9#Se&yLqd2k;TH2L$y+UQbMvYEk3&)%J(6-V;HE=*R0lG%*4jmo z$V}(9^GxK?k6UzHJZ%LmZ2+k?!sCO?%&g|P<|Zf+of890IbxQZs5ufbBJb{*t1{i< zhNE+O1gfg5nd8QFS47pXJbyhZtu2{uXizaZOl%yT;>ni_C9@RT z`1>?sO;%2;$YGI5h>oP0J)PYNUQh5~z=MGfVqi~V&^h+~d>w}1)^eb!z#@pO`A8VC z*9lw05)d5jlC4_8L1|dJ?tL&~64Ojv5m}rF%~5N{%$xI_)(bJ%%l?>2hQ8L!fy!4V z)5c_$-+jcylSynMezmS>ZZ|?o=A{|R`V~NgO?)%2n#VPtDy=uyC9^M`^RUiHCouZY z_sX}1n)-f7;&EyXWE`0T|6CWw;eYFmUNe!|driTrK8VR=PKs>>`<8KCxtO_DWeI;0 zde|QaTXRgfNz-Rdfei!U*-X&YK>gOqr+B zD%knz-Uiuzr)R}8W$A_=^v#sXe469&U2}%IZxd9S@NCDoKilOgt#D$&FK^T&5X?tq zD}320{=HX?F$H@&hgw2Ro5sD}2W;%Wa=)#jG5nm1- zNtW9#QgRTZbJ67q(jo?wK$;m&+PqqUl2?AOr=)D72|yXz@wj;V`N}zv@^U4$FJ?01 z-WPt~2oAeE#buEquyl5AOCUTn(-8wLM{_cn5fRCXwZO^zO}>=i`H~V)eOiOSJa{g< zuNG}rkSS+9P3{#e?Sai*yXx=Kf~!0o6STP?g20!!G!r)~BBDS+I1>>i6C+Jx!mStK zb%#%JEaIXy+#-ln_h#aT`H4tvAdWo2gMpogfz|}BJ>)g~6 zpqrG&6FFiiunb1Q+7+1j$!jh^5_r}8!+iW{*;A{NE$EyhIGG!KYEVIKI>5c@^pj!L zNvCb-S@jclE&*i_{1YN6^lifWYzkkYV>SCCEzF5Et5@(jj(-Zu1L!q)1X5^D?@i~V zT9-5*HgJ&<1Mf{7X}yuKppiHUpzznpZCur~2J_ck%W}Q7KU8ZS6Y5#(h}JXpyTAZ{ z3VWq_B_IKa))eA_ zRWj>};BF$Y4z@duaM?eYKht|LA1C{Z57%HnrV-wpV!*g&`Z2wag!hbF!?jaz3734N zVBKlfPIfC(e||M}*6A=RR~54Bu0H8UTuN{tI28O`aMTdD{@hxodeG4{0=OP)PihTe z5^mL&zJyb4OR!B@`k+VUq@rr*Ye3lw|0-9gG&Bq!%@#Ap58}xvrX1lziJ5~x%krb; zoC_qq{MQE24{B$NxwQJK>Cfy33KGbupQ~S}A)45+e2Bl6Io?FugMUP?wb07KMcXsG z%~<4kGFB%1{;v-jXa)@)Tx@M$XyHt@HV03-?Ti7ldUQC?EsNcft(ea`E&lBU5f?@y z?fRz4NCZqBi2yN-7CFN~=Nf$a>iX|`#SgAUw24{^Ew{ z@BF|!GSrsIkSn4oPpR}xaMaO++VW&Ba-QgH5c^%`h?x6)t9f zOM}b;Yuhc`l@sw{+Jd<4XfSo(g7_WH*Avf!fxp9mh&PQrI~dKG8H{|xt36&6Pb`<_ z5W`fEs8ckXd9~h&=(hU4(YW$n3`6rfGe3~X=M*KT#Sq_i!Mrw?rF;G}02tsb;$7dB zujU)&Y33}>8TR}k80-*4lVv02Z?1#VXdaUBMbG$|-^$ z^Q$DzBI9G=TULlazMF}~l@45a)zRqJHx4Ujy^n8K#Nz)R8Hh@5Gs@%1nce$jz+VD@ zuvo-J1R^h=!UGB&0GAans5h3txtiyu&3otjc6miMP=$aITFrLRA6c_*pkJMbccm-A! zQP@F(y{e|sSXVj7WY*A{%2~tpg#EZvLMr-pj-g<{hm0W^RBs6b)DP%HkE~^lgdP+Y z)HZtYxK5TyMwpx_iV6x*?DR%rOc>Wq9#0w^057&n6SoZn1^T0=cs+h!l#PJ!NR(HU zn{(d-c#LTf+dGlRkk&ZMP}N8VzP1`w#7QvAs;BvKr^qmPQ479$?Ru0q_#!zrjMi2~ zXbS0sE-}G8L8KHpc?GEP4@6gPeXA`iL2gkQ3Tgf3pg<`I;?f>e2Zb08TFup0S0Q^tIYPMYA(BUpdK35S*RDee zk5ld3DTJ1AMF@zF0(YTd`LZ<#N=oO^twCn*ytBLl`9+neX5Mmi<Q9_OWU#qxD;EQ6q&e6fh7cO^r3&4wsL@ zYF|Xq*hK4|7p;?Hl4m~LuJ-r51RrQRGOW|Zuh z^4lre^U8yP-3tTKfKdx8E0m4}5pfd2{e5f^G&ZAcV)EG?L1n= z(f8)~g2$dmnqM~G1aTXWVY-{&ST|O_Eop7q%ao(a>4kgXJ7Zos~JyTGhjP)$-e3xvsCuOKVHtzJ1ZHTUX=wQi2Ux1xY(>_NG(YTql76y```E z;Zsa0O~NN1PQtNWV<~_o6C@3pjVlQuC~A?$-OPus_7Qx>`iIq&R&wK@nz(8%0R{6A z|JjkCBfn(88h0a%k!3;$>)a~u4m_wWRE7~2we5o)NzXVP1x@|gIPYT`w^r>yDO($53rp!> zbSVlN8ZE05LDtCg-}BZk!aGww$M>u25bR;nH)=4Aa|u~>HT0O~9#_y@BMVAd;+Sue zaBM|iwDa5DuNrf*GHBVWPuT_MOId1|`nxKiQz*$ub+?5jk%jAWeunI!GeiUeMwriK&7;`I7V&HQiox&pQtW z_E-$4#~V{naw*0?M2Ds)ji1e<#AZ&LV`|(rKeWEtD6T%YiQjGC;T`(sNyw~XCy+a`8>v(stYj2K1D-xl3W zVS$7zUiHXbz7W4G-GBi{9g6gQ2jlkG&KTA$-Y{&Ajn2qzDOB^Id(&$VCM~^L4@;VS^@@3SRuiOF^Uz;%76@?u}0wBE0_ec=z25V@@hP$+x2OzMMB?w(AkHMy<7}{ z;)-c>4_0|@Z^TeAUptnrvZ62+6$C@CO%?2S_Eq1!t1HmNz3ejc zT{rh9eBqmbbNh8RTb1m*?f6!6+0fWuTi~$c>5H`{S^YzBTHge)D?MM@!X(wn4vJ^u zn!4C;TdsCK&CIp|%F5SHXXht88K%sXWtS}+S@2kS30Bp?YD4>-O0?Uf`JEd~_B*@3 zs3|SK1Xi8xK4HgWX8NyIGbpfI)hbtIsXw$sD>Rp>6vP=VHGF-l@ayck@Q>?-fvHhQ zNF9JNXVzf#!yhBJA(&e}tiIfWwSV`W+Q9B>>|CvoA^aO(5Y!?|cx$%U(ZbNrL1(?{ zD5kfxO7hQruqwpCpGBi}XgY<-Tdh1(QFsM<{K9VvgO#IYydwuKpZ2{(yIo7nK; z0&fuwT<{HnxIMAm768w)2LrnS21KCI^ic$e#fXWSYG0_e8$i3uLC{>$Q13)lEuB>c z@49JEaJ0-@Vm$>5+fr>urnu;jpD@Ea0LL9X0EZ<-n`Nh&ArclfFPiC1bD*_GS--B= zHl~@UVYKXz%&Ga7cSb0nvQ3t*FD&0(=WfGEj=C9U!D8w_Gj+2|o!q-EC{@vRzPjI3 zu&pcf-G-@|*=RSBaHi_ov4t}$qW#Xgx?WQJLXf$SgGY|i7Vzti8%CaTj zw#D1|+wWO>HIoS~-!@Kf@X8-^Wg#tb?VMV!ZNIfVZ=9|zo&=9wy3)0zZGo}vJAK*Q zJNJ4rvi_UUUK!R0wWSS-^0(TkExcAP_OId#LuBM>CSQ_Uj19F#=#k{W+NBLh>mGyH zI3KK8!z~Xqlec1;=$@a=U_e4Tjmx@P9xujwX^v$9W7?AMWj1e*<;`TZTYr{QJi~~S zA$JezrxJqF+TW~`wzIwV`n`KP&%Fl&9mPQF9@o)So_N~{1KYkF*vr+n=hRXqOCr4u zIT9#KQtyI}l#Z1ffA!y`oo*>{7u*?wz{Xzd@{P=$47oc|s2GYZ?T=>}7dAX$Psf0I zx|nkj9LAJ)Pp|NHsGkIR;_RfyV9ibQll`{kyWTL*j)acHawlrt@2$Cb%Y{N6DRXnMw_iQwOkoGNMVL^{6G&px zVGQuu?nWEDxr{gSy`!+3c>L*T{LK`*$uHJ{ z6Cccd`8jlgD5rPzNaxkjA=~JahvS(jiylh_dQ{^#(=dhv&nn| z5FOQsucrNh`8hs_3iWt%-`a+2ODl=ylkWzN-=-!WflJf(T4%K}3HOy_Mtki10~mHo z=&)%4p%GAUtBdMN4xN|XXu{vx2KA)dZ7{G?8Fb@N!4P`8w*HzR+`W|VT4>x#--fX* z@?{&6w*avnCm1o{f=QEHdy}}#qSO{fqrM%>ZK=$r?=~&vlxb$$3E2&^>c8#6YPSHd zn~bw*csyS`7})(Vz?Qy?Oaq(uo14W=eV^V&`+wc~|oUea+& zp;71@&3)a}aP4j&wyumipMrh0o_330cREJHM1qdC%f@a2s0Rpl49Iz<8p`r**n}8* zqz|E~i;ko7gzb$1Yukcxw8)u8Cg2S^nTNw!w4piX(0v?j@8Y*Zeme5c9GkY;yi_Sq zC)zBUJQ21C13R2S7b7GlEGRgbM}|mZ-;P6%EdqJlBMT;-_gY$7N?yu>Z`*U-njG2? z9_F#lyUk>4$KHNZ!}iO`2Hh~=Z1%QHy1onlG7H_A4(V(Sx5{omw0-Y-R(u;hl9uX0 zld`$D9`#OV)Ovyk1A7DpOn-L?(OT^u-Xm(a-78^^K%-K%d7jwrC2V7coUgnbAqe0m z=Sm(m)g08$ZKu8FkGtZ=;&$2dh)avm-xW}Fs7wiTHxlZ0D5WRTPRD?&lXDz2lJ3}R z$Z(8Wor4#DD?@a!uQ?KNr-QVI7iiI0^q}wS#bfyF<79WM$!3!+V6^?4{ObAO!N88i zzz%27)xm?wm{(R-qKbdJQwRwOK}AKyE(FO?zb)mvh~btOo4>Pj&~#_tZ$6dH7~7t0 zTT+PMG|q%5X|~NDTfT1nouwrgq1FDxtmAzwGji2p3u?mrZ11zp&}s2iMcN4x5{N-> z9e6G=z410tyHv-sJvW9>nlXCyrTJ-^%-9H{R7KX* z+?#s0F3da`s{+PrE3i^If==(-uR%MR?SxlqAKN*T#R-c&_v&+S<<3w7LDz&Q{gS4tE{oq*v8?n~Sza{J z^QT913HaJp$vu(!gWWHMtIfgap0@41?ax7Q>aRn=9vAJ^$@Q%xxM!`|nR&MGW*89R z$TIbHhfdZg_BgO`EIiwFu_muzW`wlkIE~_Kw9raChC3CJX0pX+R&%EsNAn~R* zkHM1QwjhURpH~E-Z;uGmZ#K1l>};Slb{cr@wr`NkTRq{QfPqFQ_eB@hz(0u|9JxN% zv;X^h`Jqd4FzRNNm@)8AsK-AOMk1S&jISer6Aic8NRz&s2aR!^D&Ywp4D2cl>~ID> zGBOgy#l;voawNu&AJ5}o>P=m3;>^CbWmH7tY%Q^%w3-B32zgVaS>Sc2_fw`!!2=IG z02@9l#_sUDWwqY2*e&&I(0Q$7RQ>(Dc`Q)9!L_s%B->CeQzYI6>u9BxB%8cbssOq` zZQ`*wHMKgTrTwTzv&=FLgWOIW!?YS7ON69@T4*`1s^&!M?=9v zK&UPJVw_tA0_)AAk+L$gxmrgdDK=T5KrRWM*2~1jQgJg5FDw zmPbrT3-fP?Ndps^95=>FFx1g>s-dYK0o)5Gyo*WkqX58*ILt0BL_|;&zga|dD|mPE zgW5JEC=lgkMc7bSYD)JG3`S~v9O`STQLBEWw{ng`raWuiIt#+^PDr31rJ731M9d8> z{LXr*uMqFPJ|VJ<%ID9BLVV9{eaRLJ2%+0}izK`e> zhXB)870V86N5U8!;E(dcH7F>z-p3~=Q)3BK)1lNBIgt{K^c?G5um0j><#aSvOaHP< zZF@EKs;NYcw}Y_oxG(iJM$*w!L^%9dP0LuQ!~PRp!{Spb!U59L4M_A-}tR9UQAZY=5;^b0e9r|Ii=e zLZUSzby7lOSaLzZ{%3w8;)kbO) z*U&Lp=$pEL-DgbfR&mt&Eotm{CQqhootG<1UMyJkY^Bz(=JJ@tM8xoFgvCnS5>b&m z9Ga84=V9PBFHAmm&FxGL?5*l1=v+bX1NZSiuqoZxo_>(`Zr7n9yD$j*$B z+~YOl%&lxYiJjBm!Di>BIvX(b!v`y0tNrYJ+Pk(btKB$u-tB#Kd)HoG?Y(nL(tNwQ zc-$vFtOxqh)9C@cR}^= z@oqpT?>ek0rV|nppANrZ6cmt=W=Kj&L4!Pr^4=~*f*_+2)eAA+wbdw%NWu9dPDkD9 zKk)iD3y~D#wiQEhoaLyB>xPR@Jrm{2X5+2TXJORX>u~BZ2jJBQZpDXxY(Pp(pwXnO zT=!trPfp`n%-$P#9~u}4Kd&GZ*A!7(BmqYNin6m%!AkAZcOa^(HXygGb{8_~2D@bN zys>KaY6Qn-;K(8SiEKvUx*W_~w1ix043dNWQ6~f!=VDz-cZ?Z34*es&@!{()V#eG$ zbnYI(x)h_)$sR=^iq#VAYu-^5q6Cn6%Og`j9J?c}-Fsn!r7n8Yf;9&?d|Q$wrarg<*Sg=yC*WDf{?d*1N=jLQD5x@d3htK z(8{nPYpH>{Yme?^@^=lBt}$wjQ!z0vB(k;=9JM@KJ-7L@qA8sn-F1~LLgd|>z0>&>t2?GIKC9@C@UL&&3Q(&!xm zxOK)d%>4Ro3=ZdfYG=5at9yB^qqfG$rsK6q)r?5{#wJZzbB-(fZR=DWe`$~T& z12Moc&9zx)(>G60JFv8^&02G&_Rq`7o$*4y*&eyIC3(_$Fwi~*?CGlguiN3RO^nzk zp3TnLG`o^|5HX>>;0qQkFpk?cwTKv|str7CweI$3vpDb_w@9Zlu$=gTuc*Wk{HpW@uZ5^&E2C*!3b)*&OU z6CDUSu|B&NuYEKHvA)Z&|FBDumXVHH67qgDUG}90&jc1$%d;S}65%VRl#?HsAs-)_MH3Y@we_Z)CdI3< z7+MjSGAH--rIwA%ja^SaYTmN5GV$LrcjA$8=Wqq)S(S_|2CS~S1fNcS594mR6R`#iN%TjAw7_gQq@?MOre=#+y_o`-=c$J=Gul z*+=TwXMEVcYjetR^TU&H^OzB44EwUZ7yR@kF28CVeq2?6#2{}B8gVvyhj?M;4_~7q zZynb3I}sm0b3gWq_CaMWGp2^Tf#vwK!!`H?AiQi9?t1=XoPOCgsQBb547*_hQaiKH zQ$z1pSA?~`eew2J?;tH}1`a&sG7LZQGTeP^94`IoWz5ZvLwG!y2eyN^OzmqckdDi4I%Ri)U&3 zR3o!63KPHj0LS#rz_0HDHA32#z84=>`c5`Q7T% z6p|1(+FGJ9}XaG4Y1Of!UQDeI=xdGrsq7U@8+3f+Wx0~ z*UDIV>!Yp~j0P0Fbp=77K+U~`Q4|hTRaId_em(_fO~$f`GcTNcSIzMxA*P%&`BJ#G zV9p$@2}(n>PbFr5^$q+I11P8!;cQAZd3v#51O`!HONQTU>!I~bSdc%en7*)}5Y8qC z=h!$z2GewvTZCi@QAe}k@UURcoQ)_gT#r&Gt+6PO^x+)l!vo@FVItfqcyT_d=X_sT zRbzxtRaH(} zB4J<+2(PupM6+f!>t0k`4rhZm{owdh5LAhB%7P-JA`uZn3zJ5cU+F}3gBKzqLO3@x zqKq_2QE3f=!^05~76=Eo>S*3AtDw~oL6?pV1&&R$aH0^IYp!~OA7Rl-T}zYh0B+-p3}@R=K$o|^ z0Obw7=oAx9!J_KJ`GWn-K?|uMR;Yn-WbIhd=!Y1#9|xi759)>f4z6p=(^%4Q?3GqH zY2Hu2LKO7-aLh;$YSuY2U4F!UW1SPlu5z>E9!f z=^Z3;YN|?+nd{2Ol{zIgg+#wh>T@Y5&`X^sTV=kIMnP${xkX}9q7kC_Qqz+|&9XvN zOalCU$yjQ#BwPxP*se(HnvS17eg_M(3K2?T=dh!WB|LW^(!UDlU-zJir=P^+R71e| z(bO$#O{RID9?AbRo#b{*7!H`H`nIte2rcQhai@u+PdB4r2 z_Arh_C0n4n7^~O1*S8bWQUgd#*bIQ+w#smHN=0%;6FRZ{c}u88>~<(Vdi@!6jSs?= z6UO12wLnUW_I-OBfr=^A^^=g2iU1NG#^j#w9GwzKWRu_^q2uRW&-j@pW@1v3%WJCD zr_}yh7>)TYHJo)Ma5ohK1O1ShnT3a*egoHBb_Vx?{)q?feG7Rd4LJOikvQ>`bC8~z zfMbUrgIpDN+%Y(q%=w%bZpMC>+-I^Ke4ztr>?d*l)KD|1+$Iup3IQYlJ7+{7Dnw6Y zyaIwywKfy$)CFB3At4%TGIJ3YlZdi{e4Km7Gng>$Y%KWwb3FCb6!bad3|x7^@p$G* zKMXl+D01me;FgIiyI6ZQQM#JI5+;i(5FV%2Ad;CB+R&K#>h+iBdd2{h>y zAsZYV$T63TtGEs4f+2^QDC?8VY0HKnmR2#4RDY&5h?=uV&FGBum=Ju;`Y*raA`BaM zEpD6n5$>AK4uyQ2FyT$yJosSz_R9TudQLXt)6zI`G*Z|lY_$X`Q=ttFF$p19zed(E z96#(&a`NNDF`2h^CB$Y^tVeSNU!=vQAtzp`K<0cY&VA`k+;i4{kUe!09vwf?ypK)n zh2(I5y!ysR6aa85Kx_hr9XA{gKGlo;G#igj{sU>D)mUCmN;xVFC~6r?A#pTyrr>Yo z$`vNBND1CZ#EW3JdX#zH{G-0k(bgfNNH>S6lWWF-r%?#_xQ=j=#r6`Cw zvCOco$Yy;ZL&pqT=V@S49wPc&a~bbdtje(9w(_)p?X}7sH2a&b1_maU$jyiIV#WLg znD@s5gX17-2E_lt3d$wOw-#2nb8I#$O{(3UA`XUMhuB*3NaoI~@h^P#8HH)V4uppU zkx`W}i7S;DbaGWS6oyEM8RQ^isI;7CB+yh_ib1ccu0}y|rD4EB4TD~V5;jezsBq3d z+*U-mRelwx!|3o}!=RUv;mt3tMHsgMM1}I`JTjPdWGqTJhe&p;Emale6)3DGgH5I{ zfXtx;%T?swB?J$pus{rY0P!CzoD*IrnaXksAgTy%h!}XbOEohK2n|K2Fbdk(AF6mn zUtv)>D!3*E(1czLr5JQCGOen&gZ-(vun4OQiTRiaBt!&T40?GbDqL$*3xiHr0v(7B zB@S8E`g{tS>wSSjr z85%iWN-Ao|pa&t$#h{zM&oowL zdUKsD=XRc4GUyKCFwijQ++M}B5?F=ssKJOpIjObkX)5da*&!Iv+*Z#y(T8oI6MW2s zw?j(WPMHc`&J9L6*gW}er@TGccrefb3|L%F2O{o>C}PmXfMjP|#Bb-$osBa&m8HQf zX}_-P*RRK@QKJkKuQ>VC4$PiC8&5v@qya09M5ZLqHWMxlqO`=n|NgsS(Cz$eLdPW9 zZGX0Gp|E4y*G*MRcr+&Cu81Ng6nY+b96osFR-ACz-H7SgnQy3_R zTy@P@B*aEgIPS!+Uww+{-~NiEv%f27Tli=aE@&!1QZ#3e<_YFLSp4}EGUoxf-|$=Qw=#;oJDR(jUn*ug4jVEDer!mzlnz6P(nJqoGO3vu?PW9?VwI_=Y+aqQ?LaPmn9W6t|OA+UP}#L}L5(op!8=HTVmpS9w1 z&JsZ=Sq)0cu!`E3Gp@T4-OD%Nj^`%g1Ty(G%YMa(1Bc*SlVT!fQR?u;J(uBsx1EVo z?|K8rokSr)?=&(XJe8V#qJeE7&2jFMKk?Z&Um`573yM~)MB<<`am(cwV(!fE&=}j_ zSZ63p8SVRdQ@fs3jN{L}42Sg2AQ4}Sg|olGYtz0)VwY}+UAYX$U3DW?eDn%#xc4bc zpFRkG4!H>TUw=A^=Y5CMF1V2#N-BbyoLH5WheJ-j2t)Vp%66&8;t$@#&!O=+EhP$H zy|)M_Up^GYnZM(`kH0`X$7CtT+up~XjsyCJ;G3y0VnYoHVrmY(#LzPQ_k~yR^o6G* z`@PpN=#=x2o0bZ!$>LnjIxhGU7rNoT&+seo>qk#u_$lX;L7xdfTBcl*9E*7$eTThn zz8YQ0_?2d_!21)Q$3l*kGtN8@NkL8cblPjk@=ZVpRj{TDnUdT7Xw0^Kx2b1~LvB#p zDh=C(EVR)KS}FKl)zf!7m^jT3Tz{w(H{ps=LRz=J8IbOG#E zklIX)u&U5N%bB9wEM#XkQY-2}#(-W%(^*$kj6c_HAah+#Ew&iV1}t4jiwE|Hu&@xL ztzDZ_f}qd{ge8}tjMgd2*C2>R3U+B>H5P)X(I%^Je_}k(C+1ObHv%)rKZ zJU)unO!NVgm1DsxivfE(nyfbzWDVjhb0U93oe^B<_`eX}29{NbJQgOju}a1=rk3MZ z{nww?6+T|ow45q8jEUft!%LfiRr$(S0+7a%Vp>tiKY&HYNjRe5Ep0d%bAL%u7{8)| zzF?G2ZR2X6QsQ3QhkO`MTS;u;mfEUG@zrjO+tgHv0v4)gf@%fcD4yUIj#P;f3MgdZ z!z@i1Y9rGo{3bdwGL**(s+~9{{K)V-DEx@vH><5&`Fbup6a%L1*=`czs6W^aDtBn1 z+mN~DQua>E0q{2D<4Nklz}8~GupV2Rcx%(i6i|azW=-;<{=^ecn5+s53!A;FivZB% z>7@DY)TvW(!U-o>QdU=?XPT$AQW&v^^y&K`0u5+;eWH|;PF>J z5mO67X4L#8^+%Y-?dW=gHAq?W^Ng{?Y>8GVAyD zYAMy<|D2og$5n}l<}&Y3^F3UA5gxtrGF&_5eNhC4MDTWPVjFn!>3C%9nYeSQ12qH4kJ)pT7TQ#587N z(Vt5&e9Q&7?t-(?iER-zdK~sHUV-ZtzKoA(QqJ|5d)EJCZbewQxTv|9CHZ6=NSs;Q zb+ZwE@KKmC`4tSzNH$tHFPgWG8C!xLJ)>~@4Hu9>pNmOPKZ@5YX?n_B`tQ{bf6iNg zNNRIsk+JO8e2kkr9w%p{87=R)2Oh@HkKT?q$e?%b)`NY9jOVhI2$5#XKLA~sM^)Dz z6mvAdxnc!g`S2~=a`8|M8+9UXCWGEoOm1-RBPf*Wi|jw9xu(;f-a>^Dy$^iFlU%D5im0#5xkK=bVEwo|Wypb_u?Dc@(bU){gMJ z>6l6e-G|zy3THHKy8B@aP0hm56JMl;Ri>p))T*vS%z5|Y<%`cl*;i9>%m^~)3F+wV zQ;$VL7lW7@g)Y7N!MA(?7JfVfIXRWI28cE9V~#xz6RsQstjdN@Vk~ueWZKB|ol3z; z|HIG0KBLaXxZwj)TreLC-=Bv7Y(SI0=+tBif-Hu_WUy5~_H4qbkN@=F4qB&Lg|^SF zK6dP(ZJuqPH_F9;)CP`?B3Un#mlzi@u9BDd8sQkfvEMd`BXR|^4yrGkXKJfyCf*(v zE#D*3j9N|@9b7kP>_Q=KEkYxr5ueVn#di`oW-gqAiqc{V2WZ9~Y|V9It;BoX)d_2$8@yHq?!U6Apw^w5V=<<( z0BB@EY6k;`3y<3F=T8d+>%3>-iL!N?)Jqs8W=fGYkL!c}$r4KaOFJSl-}%v zK$F`}6{U%q^Kv&Ow&zkYb*jW-~z zdO<+}&6`6_`f@Tz5fKqsM~~7no&W2vzs#a(B-oPf?h(OSqU?prUf|kR&6;Rzjg8w^ zG8taZe2f@*4%Srq;`Rx5U~ltTdk{5&T3w@(O!)28k_H#d#_2~Ngs_kdT=nJ$=z7dZ z-2MD5nEU!|71ybvWYi;iilN{*E~2 z5Cqm1Y8fa+X4skVEIKmEv?kf z`QoJOU&TkCeu~dO|D1nc;M0#kz%y43rHP}Qu~87haNYRZ4Rik1|NW1e_F$Yg<{oO2 z6ZoYGmDN=y&RdgS#hcUKM?%k@hB-gr)NwfF@O`l8mme{k&3gJ?y>Jhi_L^mLF_MJn z@aNt|Qd}GbCZ*i}Nt;&XruOHbo~rn+nkKo9)HvXiNtiW%HM$*e436cuwe_XWV%s4!uG6jz$GF;n8~^jJ|wY@aru6PEPyi z;Rm8CAHIPCoq;&wkOPfX!RO1VU9Ky^3-3(i*F-E?vH};}@*GC&+a0ey zd=GxD4l$;rMkB-+g{!l0$Vt~@+?XRU@3WVXK{MsR_(So@!b+TZ;Y~P;6%QJyPPQ`5$u!L-wjWdP~;$F@)+)H6d zJhg32+$>vw6?prT`H1azAbnOOBTH!po`HS4#o^~4-^WbJEh5P<(B8e*fv4lAhp$KU z>iHOR^eI?MVOn=ubyU__nl&*l2LDX5a`6HzC2szA53LV)>`{KPMmGs))7HdsWdSZa zpbvsWd*HF3=b_)A6L4Q2;F>2V!Pyv&pj2yAQe9`#d460NQ1|Ao)z7V~Sp&8bL3Op( z{1KCwj=1#h=-mGRT4?k^2Kz%oMo)xBb)rTx0D;twr}P}i=HTfW)Q$$w@nS$|BpD(< zBzEqFps+}K^ruO9UXIy=s$poDB;M$1U=-kg6RbEEvn8hA{JEufe{TM+cqV@MR_+x1S*3e9nv^RZzStJ;208d;$kGhX(2y9^r+Wo?&d-#5d{7ka1A62~gj;EQm$ ze{Xqb#c7?!%0njK62<6SoqWfTxmP;TTJrCqlN#igz-W_A{;s^3M(?%oDXp~PdRAVw zPFVo(j`WlST*BCnwtFA3DwfAh}MR}Wg@Y(`@Oa09^LSe_T^U}Jm^-G|+=V5=h zo9yFURN&U&Dfj1l36TyRl9fSc=LOVBT0-rZ; z9`3p49`xzc2QR$vf?>|ZVB4Wnr%uL6X%X~J8`y%hS z;|>$Y)|`tFEGa2LbaXVNm6x-)(W6IW#*7(82%yLsfV)1paeM}-jziRT^4L^uEK|ab z^Hu%*fa(d+&?S;Pgtth%-+z@yNJRMM;Oi;R@|ld3i_tP4 z^&?aLz(|~X_hd|bWfCS*BR+rON(}6oh;KihY@+#c|6to--tfoZjr;?*Tx02scX7r& z&mf^kcYHSSK8)vn`k)>eIPg%WriW_xTqMLWTB;iL+hfpga91qqT@*PQ!Qa z--$C%KMVIf`TlCy!3kY){NOD; zKi>ZSXJpc6#KJ|3k-2;sUVmtuF$K?KyNC>|r%5P^v(5fw^)WfE>fWOd9f$RY1Zw^I z^+mt_d!c`yWFA{ag0V`*qKD$ZJ_leG&7V)d=?TPl>4uM9dkFV(uQGSoQ(JBI?ylWB zqdS@NWPin*Ur5__wW&F9uX%9iH1 zHQttx;H{5-L_iwbWb|+oZ|KQ~B9LBwr@j0R9RhSU?<81ha)jafufM=8M-Qe0yz6n? z9rq)HRysf?1rc))(5*i{n)e-Ecd*b06ufybNbI~Pn0~y`{xaRt^kvZ>6+;}^g_Q(vHkh2|0JS!BD&N*`AU}_?= zF=g^o2;c809GLnWCcX3{n*36*&;G|VRxTQXBYCaB2jBf*OmZ7I$G$fH0S=>7o?cMH z7!>GmZ1$tc_&c}Uiz#2uMYp*1xbKW}@$K>wqv?!ioGG7wg0i}JoOJ3CJ^@#rd^BQ% z^YQIlZ<=R%$D_y4ZIv_DrNw0;d9`Rp?kP@o&PAItyZ75x0? z8iY8kdBl~q=dvR(!13EDDIGobJrte$?T^$R0}vUT#O~9LTW8YfK#dMqIj_k=OUzP8 zcr=na_eN}LS9BYA5W4i=AKmsIjM(JP=-hXI^gm=6eHx^;5_Ikeuy<*mh7pks0JU$1 zx!tAESd1&@L-~%71%eMXmUI^S9-w>rL(YEndWO4 zO$a-8>54yRynz=cPC<<$l6!_(7MWcUZVEb*i!Fe6pBRq^pP!0uha8VLraZ~h%GOXL zWigD=WE|=L7b9+X2;aW>DxP`!J-l=6r3kK}6QSr%CZD%ve1?XQE;#r6Lx3a3qJMG( zzIpE(^G%-0n`_Pm$BSmrUd|Qxa5|ZM?iPt7DP4DH&*n2=f4A^IX zdLd841$VrIN+*RhW(afFDV^5kFShU>#=anTXtTfnlirpq$jDpFnDSmr<{at!h0f0Lqt8eT_YDo#A|Xhf83z=vzN`wVJTc;>(Zg`f z#19deG7zKAJqM$XI}G!uzKLJxz%VEx%rMH~w6Iv4oz1=7Z2Rj@#t&2O$90dqgdTl* z&=RE%k39Dndegz-16Pg$*>y@9a^R)Cu0AaUYFMP4F(qQ$y>DaMq^I%PJM(eR{{~S@ zS%Xj?vDFOg{-RoY81A_690Zk?p^4hgaj!ojH}7bqS+YWiZwQIs68yY&J*8Ap@QG$$ zM+p{YEkPBvQ?YznJoOFC=P_w}A9k9O;Lst1c%0p@xa-}uNRkYITMYah{wQAi2S#5o z8b6o%;j-JG#Qz3#!K#(n#%s6IX-=svE5w3%zvIt^%ekMuE2@j~aL!SC;fF<$rp@J4 zs)+I+XIFkj*=gjl?ix)=$W)xB7$}OnJig!+_=kF_t;X}y8i=hkPmLUiK*yrJ00hq0{`(C*y;9xS~Swr(=m7MTw}&= zYtHRSPg-y>)_d)>7xvwEUxQ$o#!jC;-DuN4_~3(P#@sAG988Jye0=Gpmm00S%-p4+ zvh$PKyxwUqn6&Wn?5Uu%yInBE=4L2P!{m`Bt|+IekQ|?Ip(3NbaUh}K#+YhR(?Z;; z-b4W%x1tk;7#ChW8iNOXfg7HEjAwH@P*b|fWa%Uk=Ia}QbUIc+A@?21ZkZt_B%0oA zOQ|ns5FbQ1bYvQ-d}L+j<4LyD(KIuEYvK#|eZfNf^wn%U^x-r*=MmxU;+xn8;#(DT zELfv=2JaSN`j?Aw_vslp_NZ|f*x3hPzW9lW@hsoUrnA|JztkPsN=rHFkjdaNZhtg(ab9S~x0;N_jMov<;0yl*z)Mgi+-> zF;x?&2M00^T#AvS#^T98==AKtDJD+6_AXM}@$P-MVQOI=l0yPf!LhL>n+z7)qciQL zXFUEc)=)#+{gBfzp<5JcDst&i>j}CqPo(*xCCIX2mNvPz$U;sbT?r?ITjqiGcl&Ay z4}k2|Yv71D5+`0Z65ro56{&rD;ofV2V+JI z#XH~rj2^UjsCLy=U`T_m5#dE5ugQ2Jc5gci|0>7k)fL|_HU(Hj^ZVIU%Z@ktE zi6OOk<@L#o$m5MD5L58h(R?&Vf9-|IIQr}>@ZgM3vAFksm{}T$I659W^0-l0df)#L zf6*EY9&!{4zy1=7`yY>G7o3ZtU;Z@v=Nta|6M=(H#bXcOjb-z`!x3lPh|WFx!>e=w zkZ?E#AAGp{V&S$o=Hh1JOXD^=Aqd{dW0CpS5M14NZytX{;Yv*=o}%-)#U;rck4@Z{ zy%w44*}ioZ=#rX%Wm)U+ zmYjBV5yz6%R!K=biJ>9Sj00c^rhfhxkHw>4V(3_!w+G;-cRw}h4WD06hR)ZCZ$Ek$ zFTV03=K6Hun7skFy!j%&>2oBq>Z~@`+`D1X*EsXM3r*T})(2@U#n_3UE-lQXQ^56V z6-4l~2r<}Ja351G?&2UuNDQu+Tm4yW zU;))k2e{_#Ed^C0v^kG0P23z`eaJPq)$gcC(HbQ!znPl}o8VSZSzg4e(f%tQpB411 zernTu=H>SOVOd7d!THC~TZBvX7i{JzNPgEo{s!*xH+z-^+g9RrdxO3^<)=0>!XODV zc4PdQzDB}Cbcg&$*tGNRgi8-B{|*f7l2t?+Z3X-4j%u5MmSZ>j{+x5qHRq(uA)JD( z-POH4F~`PA*VFQB9$Y^%g_oCi1v|d$({6aN7M@K5W*wCk93E*HbS+K_h8b_3^dtck zF=Q=%hA}6RuT{^r9GV43d(%Wl`NxqtS@H|6y!(DQ5_+Ipdb-hk^AkQ_IS1?gLUGm= zxAG~E%=U5|aN(^uabP;~SNwsW6p3f5`gjG?Q@S*F76X{vHw6_1zvJ|aF2h5QKaHQG zIwL(gj*FPZGztihck5jcLencE<~^-URQ`wfK}8JlYr=O(${bhxRb-6QGh%Tf)%|m4|BmiQjiBjeZ=MZYZ8UW7 z((yPx*ypHIanaFTu;91fNR1wei%%X5|Fvtd^1VFc2+K(GUGQ3a2B|3_bHferShAps zo~=jW;^TmY3;yJhHfeZq`V74O?DeS6$>G_+WV8(SEy&G6PltQ4gh}C)^Dn{5yh>bt z>k~Nbr~&5P_iN^31GQP&BJkz3cks$VGcw#nYV_svWkIOKGU zIdv$O&H5Z)<$}2OH|GhPjQArWxwdE>V)s7`x7>a!M(o#vJ{n3%3~f9G=vcUT${OyX zW<=|BXVzCcIJsZ5{k^cj<93Mj2ghYeuTZF z0x@RT-gtqY*ABfw*ESOYkdF9Z}^qk;_rX_4I7GTP_k+%zWebP6w-L&_iwpx-I0z1yT{_=X_N5k zYm-qLax5Nwa6I=Io1;=4GZX95~{B$UA_r`9hfy+e=J$vi>eb_CYsaZJ9z)EQ_r z!3^V+NBt?xdFe)6{o*uq>U{(zzxohLGgq1SMl0cB@Vcfa;vovB=F?f=xtGxL zgTqMH0%RkM_CotdEh?QC2_e~!Y^JYb>Bp$boCzO#nm1A&le_0Few0p`PPfLCmcb4c6Xdj{WAj*~(e*RhH--`%elA^)bP*qk@4`8giDQ z@u2ejIfwaiEi=c35hew5t~c-N6qgoR&B67(`Pp-0+FpIsOb@#$J~VE8{Y8C92=xE# zT?b%Q<=K9+cR~gPvIs*#1g!(DmDa7Tvs$fK`>VCB9op7yt+kFi>mIoG-dho=N>x-q zL_zi@lK>%P@BGj6o_lU?!VTFA?+3Z}+;hJ3jrUvcei_bF?G2;=1o{{P+hgZ_+S zGj%YDqIDP$UPhdI4md|@-aO21jZt(g6-&74Nd*z{U3VFa8TVh0C!dntuM?+L-|L@! z5wE;48)F&jE9cv<@GiYp|M$Ubk(|EYJrho7u*1!8O(#+elqqIQ_cxq6HU~_(}FN!%iB0B*KKADM6zuAn;^c3VR zeFrbj0kTGsFmj17R_TthR4HRAagCs)m1LiXsndWe65rJgPQRc3^fMy!nRxc2Re1Nk z8TjP62Qiwld_zdQQ3yu^>nM7i&7_ti!=RR5&sZVE7|4n2;XgIPHD%9~Lcmx4#0c@oF&os6aTPs1D2=VG6;{)|=g=iuG< z|BJkrp2i7#jK}7jJQnH@l{24t9W~KONE#Ny&}wg4`A+yWyR?tUm?)6OV>mr(np}M? zuKvR>dB4h3QQbM==2l3&@T6>7GQ5W?uDJA++{XW*N`T|G)WD?$b z{9gR$v3D>+FH)Ki6UkV|JlNbMX>&BqAS~PtZ#rs;4nh_j!f~U@t4Y=Q?4Dh!;|=$S~&CPe}e_z{0~PS zIM%8yT9S*%^oe+qUfibr>2!u7%Q5w9w~yf*vslI^wpFGzvWYyg8jZ*sjV`SjtOHioqjQ9&6>ri1D|8szb-`O z8pfNaM#TU9`q!BH%TsXjFHgnkzx+A!%R*7S_h7|+f63QJb6!}TZr5bJ4nR6&Wi*eNNABe8tJ2l!}i0W#8uV)Lr$ zc>E)-$uVK5mD>q2En*etTHc|VCXUa-6X%?a$3I(#JoHeo5Mzt% zi+dh@8WHKc;?4)|wmiX{FH*aYFbSjw>I@MU!*!-O$4a48bq}WI3@3;E4t(?;1f&LC zU0IH@lFi0Y)4pr_SnpLiXiFAs%sajI75?={G6p2qg$N9(wVTA!gA4RndsvB4=qp}TGJ=Ii2E=zU`#uuO$0 zm5GMnY3)^+?xElTY%urBP~sGFJ}Vn~NnlO;tBdvb*mw<~f;2Y4bnI!G5v|}ifST!P ziu^4w?4agYz=UDo4bS(WMa|fBA9dE|?M2gH!h_dbgD1br!^lx%uyNA|_~%uZ z;WBDCj7l3y8{;h8deLb}4&8=h=}2qW(OG!+{@YMBd=iFN=UTay43qTPCm&+bauS+M zroKwG$cA9*ZR0!4{QMhwjUP^1>9mtS`KO0r!uXMt{ymJc$Sh>WhdQB!XcxQm%h~w)%a^cj^nsXq z$Yg{Tt-wQfKZQTsbT`sz5S>Q{cXL1c6gg`Otv$JGR^Zc5W+SJl0yL(@2M=6{Q#Tdi z>c5?BVZCaqR^Y~e-GhJp`vs&7%kUiP&HfeEE&dvxaV+Ry997{J7{l;jGakMUSM8mR zvk%%IllDFw?|l6t&N=!NtbXL*_|-uNU|f6>HoWsPF1hwHJooK-WYCs7EIJhbd+#wU zT6rCQ5Lbk^9wmci=tz@JSVKJ@b=8iF_Sf%xh&d#3XUtt@PfVTFH=|uMer{D2L&Ig^ znR~B7KD7ugy^w13qjn)NPANhDGTi>3M{&_@4`4)AHi9;+qrG!JzWm}-tF;wndUzw%lVEK6cy$s&hKhnoxy@+ZKsMUw(l2 zdzLnkB($x-ug+~FtTo?CCiQ3s61*pwQ4{Q7OU;f8dviKXkc*B+W zgzt=^lfS0Sq4@9R=i-i$qw&*>7#uJm5jpvdc;K)9hmSsfAAdRaC?uj1PcTZr5i>r= zS)(0Igi1!Hrd|l9e>xApIbjU`_u&jRgVJtBKM-H6ZWGN8W|1ki((acxgq!X9xtIJ4 zDR*9iVVpN&27LF`7i{}?mZyrg{258Hc=WEjar8dBGvWiyX!s<5-f}X6KEcXD%_GOb zT>0WvnEk*1VOhRp?4e}7l@TGACY6pa-(7(}1F6R#ptCfbjF6$}qmY=&P?#R(x%O6_ z%MRVqx$~;W8aGf2;&k*wyY*RXrHQ8fPJg|bL}1nPOqMSk5ivWgkMpQOW_YwUbItBT z$ka1`C43glza75cPDfO~h;tGB3N0wMtCh!j>OjF&mEQqOY|xtb5)u6}eNt(zmZIvA z3cKN?WC(2MiQLnV2=3+D)1@9Q0$p3V){OqX-$`Z+9=NrF_dtb<_P|DJq8RPL>p%)X zpf4ey9jjMoojkJ3_WOz}t}q*MskNVU(n)yx?YGT=n{32=lbiq2OD`p|c>}q?JP5ei zDL$#YR5TCrjId>#z` zoOm_2ONWruuC{G1KxH}M$PL82OzWUvIsOhk?J=Qr6qCykcS^%)cO4|6Nwa_mFVSD* zX^hUz__;c?3i9*4k7!7X;UgMQSkQ7D+zcbq zv(Qw#0fkmg7}7I_l7OYtE5)>~%BB7BQJC}T3mBKUh<5Bh!Mw_Bs#90fmf2^jvLg!V zQb8ZNYXh0nT#=@L!Xf%g=^2?sK5EHS zp)KB)d=!WWKo$IqVbLVrI5$fQu*LW$Ly(pl$+^UN$wGq^iizW95RV_haii7?@8#vT z9HR+GUx4{jn9z4XO);HLHuqgo9<V z?EAS$yk!_c!nvI5j=_*rq%$VD<{f1zoJVwomY3^zwI4bh36$uDkbut3cjkFa$_Nt9 zLD-PvyB3_{6VoyfB}|R5%5Sk&yw%%9T6%^dz3$r8j1LQHB!kFVlj$5Y*mC^h6omYCzAuEaD`DYsu_*+bdRU zky6%(DB82Mk<6x?bAR;2$>zDermBKdSn8iN9pQSG8g(E!5U}%@dyTdfm-y@t*oY_; zG3eTF_f{K3oEzb(-O+Qtw604qF^}=wv%*QZ8llrVQ+Iz0;H+Pv-=xkTN`hVZoaUzL zmwK|ZpE~(;-}Y7RQ8rk7*HvL|V4rkPM861emFK+M+(`97jBR5KG~eF-O6_79ia#$n z>HKY7*7h&$M0W@$3xn(F5}{!x0A>zAcnpffMmxeI3JJC6u}^^%fIweCKq81fO`704 z+N2bUM@dfPswlZqJai|1v_nJcnH;_;sVvtX-6iy0&+eAN=VM28`ef_l%kD3BZF)-j zcH@8QfN870Ix|F+WoC~t#J|em&6_Gf66~Nzj2^oS51=~6q36NE7aB-HW{)1zJPthI z6!t{YYQ=h$#5$c0*}_TO1d*7KdU;b*2u5aSOLNUyrvp>SUK5!C)e7wuoQCXC5o`;~ zsip0CR0P(q&%s%Lx*gYF{ad6Z1>x>%r(qsxo$PF?tXH*y72DNF58-iXnHWk};0hNe zW`g?HBJsEQ4^I2_M973P@_=BQ6cM04ES}GYl9NvfFAMO_H*(QyWgEwN)))a+U^uQIcr2%Y#)ct}8t7U?kPQC2g(|Ax@S<*bt8K2-c;(*gdDvCXQPa3DzV6z{ZX62_j4~D6tRY zd=lfTbp3K9kYTlTYdP~sk^$_p>sa>PA3?yjRFQ$h`54M^8ktS|Ku$c(QN^ow`>5yX zS@cc78C}U3_6|_3X!}q;&FOTGt<*`r1i z9-5;xtEdgOeuQfL2^WQ`3sJd*qxefr90M^nB0TnO&9!q~l8CMrGUrt2w27Z}O~J?- znQc<_DiXgow@BEAM5eN@R10-R!C+p;Hr8<6#uL7&k?g6rOwB(cv9*oJ${q!Ffrv*L zwtV(2zFxKgmmYI2iVIG_mhw6b8%xcMvQ@bGp*yS%M;?9|Zn*aM$QmArhyQawK3)!F zXLFsK(gOE_;8?;SndPx=GTN+tybg-Vz^G&r>KyMX!aIYo4<+n%Z9wJvtEXl{_UO^Z zEUBU={9qFAqp0etFod<5GfnI-?~Uf%s@a^6ilm8n@rB3n;_bKLu_qrlEf4q1u*L>H zdK3cMDQINIMz5qfBF2CSS|znZQe;P9Acn<` zH6ZP!E_|5kG20_%Q5YGhZaofO=$yID{s6>K^0bZPp*BmnVEZ&5NKzh5?IdqfU;Mz& z*`FOeLO4yE$*IiZej9wae&l5F`#|K`T;N%*Z)Yw#Q`GPv&C9`(G+&5IG!pL+qe+Y$ zhw)_#j`LhjtqSV*miAUBC%k~;g$nKS9cssLlg zjKO{P-Dgs#Jdb2canvP2*Y9)BJ=c)5IdkS%5x!-)WyUkCkq(RU@^V8Y-1|Gjw|o5R zTO3~{muX=?{CsFbsV9Nv$lh9RE;@j#JP!5TjYs!tI4<0YJa~XO$PU462Q}-^##JRG zgn6AqjgGfCw#{X@EoEjq)R^B}4-a^WzM1lK7U88A9>g~vzk?^=_=KU=(wR?OZF}7E zgY9Xgb1L!!EP1oo!RVW{$!WibkkNtRw#)it{qq#U*W72$L8?PtZ5Ly~LmaXqAzbRO zZ<0iTXRxChr%juG0*Ahp-0}po1`;imRMl?Xv0AMM%k8v72+sC!6cd4M3Xa0ppU+0o zypQq9W7lK;+IVU;P_>_9;Wr6hY+!{N$>jFaZ(g69vbn3{yUMSg)X<5X(-%)B^-s)> z3P)z^^j3Z67`M3BoL}MTDjBC-$;t0<*GZ1Co@xY9eLQc`dpP4)3m9f^C6ba-P{#0o zE$a0Y=YFYu4!m61amzmHd3_BTIaaA#tNXU|t*(f$FL(Ha?$CK3ia|pM_?D~$4seyl za@Q@vhhFPRj2pb1Y+eudmP2i@dE$<;CzI#P-IG5^s+>jK+ z#xs;88Rtf%_DHRRu@IS%kxAG>(xx+tF~_+VYF&!SVQZM%x0u`B^{jbr=ZtT^wN8A_ zP2Wd8*R^D9Y3GsCGVMVcBb~$A3wKCB`jpY`rP?kcTuBV7&PG@-XoZ6 zI+z4bZ%Ffv_~W@FqFjD>Y~R}shHeY>t+U1XE$O!y=sL%BQ&QdS(hkaU>f)=CKxmX)8QuJGi<7Fo-&63?42m2}T@-l;)AfUH8Z+=ltujbvB6L5@>4g zL!i$IbWLnY#g%fY(yF-SBFJ4Y>msmae=g!&D(xcBpLymPxCD4cMh2$SiI@JArcRw| z@4oWNE0B7;8@A0J@*_Dp*{kxNnwm;Utq+IP%`{NH+dqr9YpD)qCC6Thgr^;v&b{q2 zclQPlBDaZt4_r~Btqv=fXlSo$NjIf({lPnr^Uukhkwx2WN(?<+Y_ACKb2UNqtJ7Mi z#nuj=wh>a!ChNXsAam}C(c$*gdCxg)Y)AGq#yI!lp6Y$hY1^=QsYBlq>#}>w;|_=F zxBI#$B*sJVJ8$gpvn3qKAfePbEj1j|uD#0Mi=qTOJ&i;V4-vO5J1nrX57}2CFL0#eY|Rhs5L*N}PK~0@In6bt-S4z{+V+%em2sR#LU3mL>^V8A+Ia z+YS8lc{h3}vgi;_nh&!+c*g$pG@Wa*Uj7WcliKHSGFX(gm)cZ8rY+|lY)u)F&SJ4MT_$-hD5a?+L^cjKfPHY`UvKPPQmRs<`3oqdBfB(Bp zda12TdahJf=GZgdcq3!@9&`{s{q$257Z>vok~+0xSEPJ$45xeNo#)t23R&~r0EY}2 zVlmavWSF)KFTBts?TWLm)Si^tGWGh0&tg|y_OsQ!cG@6Y0Y^Or>z{a-P<3tz~3qBT`6}!C58)G*uwtq5X6O*JPB`5PR6L(tY^L}M^a~R2q!+1jBYqeQ)Pu1^Jf$Ej%PMC#R^LfyxmyVsf!GfAS?Ij0h%{K4t`t!YrCj zvu1_vb80gA&iujFJEy(2wtbtfzHzO}Ns%;XTxW&8SpwGq2y_PmeMX?WjnpJhNJy~1 z%PzYNV|UpFC;#FXW>;?ZzC2*0iY{sQnl)>TkiYldd+oPdhVS=v*IkDvo_GQ&DJdzF~-aR8nv#J&%gGXbDn6udcBUf zQD>KKvt0Qt(b3l5cGM=RWqZ_D=j`oLkGlPmm@ri0Hk`6OfsbG&BF;S4_p2bK+uinC zfS5-b4>xIC1QX5Go!Xfs`zgZQ)shKB7I9}l;JYUv&@Xx!TD+#B#P46wqq}U(OG-*0 z_4TAA#&hPMh;{vzv|ZlTWs|;j>sI?KEiE-Ca=-oUZ*k?7S6V)m=e{cyd8xXeaKZ^D zT^G049G0-Y{@l}|El-EI``32qoqs~O z68=4t-1a&MN6(bm^QE}55L1Vz7K8Pl^UFcZ`0YU;+NxQHRv-l+5P(1c0)rO<4uPaI zRS`Ix9Zl-3v{~P}2}OBp$w1zM8ZuO5C%v;JBS^I8Gs!m9OE`P(b)>(Nh)eUzC1@la zmtC|G=PH0@i2w+vv{>rg-a0x`cu(fBK9TrmTlzCOxFe(bP*OV}a5ae+FF=yl4;c#Rq+_2V!pnZR#rs_@nB2y>2aD{fTH6@jP+jM60uPI42S0N>Xt@ z^2j6YIx#WPh;;km`H(HUzod7h2JhD6FVBFw=hCL_G)ly|ICkZ9)+6qHC_O?ql2~v5 z!0KQH?bP4mF%J#raO$Z|h2`{AQ7szUb3dGeNW3jEeEc&enzb2}NA!9#?45BM;GOI_ za0N;VKp+5toe~0+lJWemC@m%%nE!~N+vd%!ZR7ftC|tK36ZSt0(FqF2$xxHr2z~d# zK@Ae_=Z?C$;|Qz$v)6xbjZrJG>3kr3M3{StbN{b6dG$;OOJ60nPiLBqVPDnhryeoF z#SF1|)R+DD(-z$lOcV}Rnj}QV+Q`M*!U6bPZ5Qs=sgbj}LGuQh7xk}Nzowj{vhLzH zE@Of&am-_TRe2eO6%CB2QiDyo>yW>4F~n-+6p^%#M?&Q(D2&A1F0)0lH`#Zo~wV=_XM_UYY*`CW`TE5;(Fho3asu+B7f+ihuV8BCb`{lHX6@mKYq1ZV7Bnw)z?O|_*iOnWt2>a zs~Ve_LgYupxqm{jjZ%DWtG-t4@Oj$arM<0B+fEoqs~-0rHA8xG@DllL{5(vjnybIpJf(k{Ou>`FqjWbi4 zJUr2-ZvX&507*naRHiUo{B~b!A&_=%2=p0&E`nM~(rn)iMjSXfg1Yn0JMEb!pF1I2 zfS&hTA6IP?NPLs|qkO`?xST$Hi{N+L)1r?4{$U+#?xnvCT2Uj zZvFKOw|4u~Twl9c{bVpCLSx3{*+;y&%z*}vp`PAIY@=soI~;#+E4p!E9di2S5a-RX za*+jprMrlg^;?V+kFB~lZ)-q#9|SG}5C}jZ0D-{|0cU?~V$AedQ_t?{Gob$+2LYY}&zGf9Mi%&YiBd3x(S zRD>7_1wyE)*KaEJ?4PL+v+Keid#kS+lddGeMdXqZ>0)B|J>wlhTR5Buxy}%*>a&<$ zwbYc1icMhgeL$S44}`n^^iMFaswkz&N;%donGZ?J-TC0+N2ZF;IT~T zY`i+t*RH^SAiQIeaQ0m^hQqYZls{#w}=_nH^A9mConnbgF3stu7WHH0TJCe}7b9h}Wc?>hOL@AcIc>-L4C zHg*1W7BO=X5_jITZoPXD=swYvmUXty-0j~iU+`zY#QD~Ba~GS($zL@(K%GO>MW>o` zX$%8t;6R`^k=udO%Roy45a>Gy2qCZ7R!jtaI3l7LUd%Sm{yLj_uHSYX5CNABbk8K6 zlRR1&uc@96;zYd3R#|6HR zWZ?v3snQ-57w^UYdURg)Y^QsyG-(MK%xJGz`FrlU$9lPK+csMeJ=o<=6xHgW z^ZwMvOO7!&WGzN<&y9mh=0>no**qI)R~?NB*4hxlf}2ojq3wENqu0jH!^6Yb6_?LR zD%;yJ&prQN8ksAR-P5t)*~Qb@D7Mcr&T}VVr|e;UOrmq*vcw?1&gJLhgwspsK26 zT}^CH6rTn2P^@Ab^}Ex_`WcEaA{KQDRoLkQ0xtw05P(2y2xyN8C2}7gKLi^$tfs1F z98$B!*m>seBdy;VEWaHox5oy$hZ}9gIO#P>td+F)37MB_t1GGWSEYG?CsClb3BE0) zmD(3M9vw+uhB99fq3KoQCo_V+xGD7|0pgy&9VxJf@~BU0kIkJ<^rwfa?{G0Lej>cB zZ8-5%BMcRe%mVS!%PUifrVi zp(z#ijT=^Z>)D*Y-c;G0HOxt(aUpIhB3{y5^+^n-VHuDA2KX4hyw_InB z217AY1W3(QpCo2XH8l`6tXPENf*gZuD4A}8y^SUFx+_)Mr(%q4DOiuKMY#@xjLbSK zk{^nwP?WnC(Qyg9*Rmd;Dg&2;90I*gplh?Lq!-tim>ArA^UVVaTyh}i#$F#d4I`1t z4NnVD2ewq9qylH&Q{9EA#n0sa>`dFW5rlE0*syN3y_S}dMVeYM!@Ix8rEcFyM;Y2? z+zm&EkuefHZT7ZRU7-C%@H(NL^!w`Jl` zdz0R8U8eV8PhPlNW*5t38)Y-7wi*%HCvEOxTlE^-7sSK4IzJDE`W-tA83|OaV~l#G zFwVuiyj;6ZrgSVUL}P6~d-Ox29>!Ubvu=%*J0c^KPAH^7LM8|Q!Z{b#uXUa!r)40F z9Q;lZ>1?#tRb_s@^)q4Ea6|`jta`K;fx-e1`2Ima2&4AAraEV1$e|s&Y%1gUS8viK z!Ng}T9}FN;pGW}fJPwT@qO5(Whc`YE$Rc=DwhnhA^ms;+a@rw;bjHdCU6OPo45cE^ zB1F_ngH42^!h{WMj>8RfgKr!+qaT2OTB_ zH3+C;-6JhIrUJ&3M2j6+)jBm@5G+s6IDO67F6FqMtE?84lX_D6J$}+o` zk~Y#*pEZ`@B#L#8bt`c!MLbrOZ!?CPG+)BW94g&XWCW$0;AzYyF?WYub5*w1!^ciA zhJo6o_H5g{(FlBL32533x^>fW287oJR9D8@&gl#4zmXFX0k^KTd( z+kk1$-AfGz66us&`%Bt%^{4vVYJ+i(S+&D~cS^BqVhJMlg2fTmK0{)=Q4)3@Jmfe4 zMFq&IXU|iHV@zB)R%dD8bCQd1 zc-yLj&3!l!zSUqQ_uKh3AU}<0EzC#OkAH?g9=r!Wd-oZ9_H_j^(xYtH@<`DB^rt7| zh##clf#;sbmP&>I;!vt~*=$iw*-+E9bM&=maU!oOiy`AXdX z&{K#=&qN3j{IKA9b`ZS~S#xsUGVWemJt$iy<<+>+W z2f?KG!|8L!fjiGv&;Dg~lkr$fb$Qh;q+WSliM-2nkS)C17ZLm3wyMqilVntvVggt! zcAejSus^CDjokBt886Zo6@oQc*@n_F(zG!_bLcfQh3h!NSarK(7Zxw>pIjWb%^BL(cE`6CL&^@fpsgf>!C;C@5fw-)bb)+_}u## zx7#=@U%DKJ{{0R-aO3${^u%4bo`aUoc^2GAO%u-7TFqCM8A{w)8ZyMEtzL5)$!qQD zp;X^j8a8ov9P+cn@!s_nKvfvRh6*X6?4EPlna9m5%w7n51RxNAK*u1U^G)lU1fOgt z6%&1U_O3`Co?%3ZqY*Wj)|W$6OUfBc$+nPj?Oi5OZUZ7BRwQ{AfvLQf2p31anWPVq zYe~Bs$rQ9Rj=zQ6cO@Ay&KKSGXrB{PTg03+@C=z3b6knzqR@BB+uAdG3*wyl93q~? zp$H4UFGdA7NGs1NtoJ^xPi%vTShs(@S6lZ>7JPh@ev81>*w+y^;z4QSVG>aekhB$y z>El@j)pP<^Nj2!^c=OI&*;||6=V`M&zAx_AvGt_6Af|!rphb|cUO2}H zYe~)pXO*Jwwg^c*6CRbfdWo%rxWu8RZY^7Mm(k-3hn@XeYewrx<1L0#9r2DWwAbI1 zx6U)hTGN^bj(>?R!-H_wnwGOZF;(P?%Hj5Oxx_*DqV^-3V}yB=t~r;zd)A=q&5j$~ zrv&Q2iXN%JRqlohg3UyZe^9m2XfVk%5o+lGb54q#T!sq)Vh#lWM)MZ zscED(KuiCrnGXdgBLbk;q z73}28Mxn(92LkRea9S`t*cXm6Il{!LNYHY?4Y$*oqW+0s)7V>|NiY}DXM;NfY|iP2 zU_c@|DmI?yk;a71@(2?#bc|53H<*$C&74rDH_JD?&;_c`w-^Reo8L^Pne56nN5n`H z6TxLLG>?YQi>)p-7i!5=U;EuWM8w2l*S&s3TlAsEfM}KV`|*==Sul}=eCx(sY9kcb z7)XGmFq4A0G$f2U<1^no3mlED_MytM5})t}VYyg=?wK)^jLD@ryQH&p6EO180TWA0Sy+zZrtV?|u({PKNM#CcSdi1R%B@~_up z_QJ(jwQ?0!EL(_Y?!5>bDfw;+SXZ<)6YnLp=)XT2L*O&bb@w8Js{JG_r`|2~uT(cIZ zo^uOkefTO4-y;|~xw$B;J{0%8HXX~@hLx*UVgBql@!J#Ak+Y$Kw$OR_&mH&U^%q~j zH8($Gc~-1kfe&7L7C#$ai2O=Q(`CcwNrJaF$VmqsjbBYY9?{{IBnEXjx;X;hoD>EG zArAF5b#w$*g+H8o1x`C)B9^S*X3qpJ($zL`68XKBjF>b3bql`vZYjrk6&8~lfBm0N zMI?F)t+Wzx!zNSeg-;BhFU#9y{_q2WWw zsme!9;=XL}7kK;im(Y}#j|L(w!GQ^4;~w}3K%hGi2y z63Q*lBdyVIFOt|sJ0yLSv`goX2q0IbSVXBkx`%~6?5iO(z6DQ1=X5m`Y3-68Suf((`|XA0Uw?_!#nm`)${~3Ag*_29^>94;Ryf|7`3R2LBNhuj{~TNE zqA>X^1vvqsH8$Wa3Eu69(3p=Op8|diQVzRThHQ% zgNEa~d7of?X(;yF|9IT}WEN^ePQcTz6l47Oi8$`3Q*cOW4!)hg0uc!#aKwqfLP|t1 zrXO<}f`?>N;$KBxL@1&nD8Z@B#7%cTj6-Qd{qNr&iGMxv5k_WZP<3B%W&_Ec5kYc3 zQ@Rlk-F`jJy7qqD@aWz6aKfRGGK0+-euRd{Vryj~esRllc;MpGP_2OWGkjy&>6GM|=X!+H|#6=evq zjh^;&WqGW0UwriTbC@tD2ABW!LDT-oq@H}OR0#qp0D%Amx&;AA{Hhs4If9I6N$wJd zrJ0|Vt`Y{_YD_0z7NINTP)MPhOnschlilYtB_rHDdCdE|q^A5WqRXV&W^?SQyPNdW zhY)iSPEt5-72W=}_7a(IkD1WABBw1L!rV`L)OPhr1hu{$MnLOQ+}{op+?<|q4yZWI z1+OZP|u-vBQ43b)RptrEH!fwf9pX$ z1XwU(63lRC%TY;(ZqbZ~E}~s0vdWhevIJ@cM#T-GI(#I}Np>+fdroZTaFQhGVi*b6 ztgEhc;Ou9N-TXWHmIjE%acKG|I)Y50uZfkmzNLC?(FlCj%Z|z!%+EAlGD)bbVXX3% zi%?d)iT3#w#(=T$Ck(VslzjJ(uJ&1TMte>KCG{G4necrNz|6Vqm{s_$4}-7vUNZb# zSa%h!1M$6PR^LEu-Ok=7&!(uwr47?|Yujo&+i@+~9!T8$gBv9!-4&<)?qmd2Ey0O< zj>6$b9gV#wrQ?l{@^IX7f5oX3Z0_^(vvC@U^Vu)lgYo+ufS(?52u}F*g;<%l4U@+0 z#WL#g)jQAO+|v%k-Ul9v!wxQ~`yGU%4nGhFpK=pIV}F3ZoPM5iqlOOTDEh=r zm;Z)@{o(lGKD%S)oTbS6!2w`1v87htMhRfEPnVkBCd^;-6&5Z246E}+ZpLzLo3b{q z1IdMeU=l`V&Fc9N;KDm!K=y8j;DLLuwa4OE>d+73fdoSN52qi4t>3s+4%PJZ;(9hPK(IqwcbRNWRUW9m6m>9=4lPX9>; z4&!{?Z?7yo_2zP3{~6~@0lwQ5^gX9y?;5 z?Hx^Os|Z1vkogjut>0JwMVzTW>bEcA?3>qMqdk_Aa%arN+;u#I8*_toiCC1cf(Dt- ziQo|223;cIOFY9(f`{N@j2IgW_lfhZK8m?fMMm+uC0`p6*H*vXG0~f{JujuSykN~T zBg#djs|+zo6gztzoy=|9Tu2Q#`2zBVqwt_6L{jo9CYhK5UagLnP3zDvF{8rhPbPEM zJ&f6wkTMLTCrzfW0(yJb+V<1u4i!8YG7*j%U;T-}qL6fDTQ^z1H5Qu7zU#pmKkaqh zODad}DT1M^qZ!6h%$Dw#+PyaQ+1ny>2ycH$8cDwJ_LpZc-t%3(gR%XCyv@x^%dYIh z{{(Eaqnxl>wB1h*cec806F|;u#`qX~``?%GAqnNZ_WdD?Z@{B3zk}NPSnPcevy49w zL3Jf~;>Ab#Y#8>KI02u&aTmt#G8Q*I|1lD=09RjeA0kGci2ELR7!N=4C{90SBpT>E zgNEVO+}%=>sVW_Wm~n^DjyS{Vf)0JE{#9%sfqv*H5=gmt=c()XY&`ZRv*6qJFUN;- zi!f%_k(OU}bmde*W*X>lh0bh@BhT<9)geer3&o{poWS-T zj3+;GN|iW{Q(Yxr*mE*= zkD(QMZ36DO`yM>?^i#O|u798@EC>l>Mj?q=W~^L-#Ka-^^{&i*)G=84<(K$)=4>2% z{GoiBh24^eAb0H?h}2FDr<#~|6Q*ZlBD;}evQhQw{kZGxnalxv{MaAtn zOm^q{V&tSDSTgGkyuOHb^Ly=Q`5t-xHB?kaP;=u4z?yo7hzrKTk3Y9(KiGF4`<7i; zB&F*Q@&4oqi8$w1C*ko|KE*D(jA4iwstNYU+Onzw9{~t_?;#+>eM|m&453$QCkC+2 zf}S|P`X01Ws}#Yh^H+PNq^BZSL_kTRW`tR*X6e2;-tz8otupk;PvH=91iO|_NHwIR>>Q5N}huJyp>qJDi;aESV~Zd_rR)RSxWN6hzgI5ochB5I-bcSB#~5);nPdprFo^>Q56BF^pD{omF z8)}_7=i6Y9b{G~+Uxdn&Xd}Mp3wx~S0bBx1a$?kkEd|cI)g-zlbuTQfMH!hvp^5VC z;HVRZMMdca67J4qswd(Y#R(T0MRiTCf}b6I5FUQFg5nu8pIOBq?V&_srfyslrpn zUb)rQ8WMvUyG}As?4C{2(?acVY_}&leQK6)yZ3kWZ3GMJFv43n35zs%2o}5_%=qO& zJmU>t(Ze>AU?)jB=LiW-X;}=Wv)Lr#oC^YgYtCR!;JkenJc8+ip_GJNjhT74HrujC zH<+~vo0bnOujU(*m?=?IcNftXmy}}8FWr^S({dCJY%i0x=0mUdj9R`JB1z zd272bF<)Zh6Ole<0-d5MKDv;toi_=dX75kjLh9;bjwmXHv_iHNZm@e|O35FmNi!QkLo4}+mE9c|+PBG7}8 zn4C;U%HfonR-$A}32HqATt_>j@zH)Xgr3mDXm`A6Te)rUo!R(0T33JPvp#8lnsk`` z?rehuD{k!T_+H&Q+21yj5vSv+GFv%tKPM8re5$Sp1f%fUOU`z z$8xHX2wR!eX_@$;F_bd;#&vZZ%S22%ECVk-xC)i_+P>I(9KFQnN)?~UyxsATl3$r< zHQssO-^Rt`ksiG(v1SdK3QC;)BZj7Nqa%aB2T8GKfe(W~Q=>M&3{-ygBCfu2GN%3K z0-Qf;Pa;q`bZEp!TQ;L4igs~tzKui9zMuuv_StP0Y#x#bESN#t^fDavv#Cf9i^bk#^L(k{{(;e?P-XpT8%g6FF-iCEVUl(3g3b#pR%8^42>o!OhlAI@Nt~^7ZOG; z4prtWHU(kaBNRKru!vsj?BZ+EZc zzI|KgucW;~+J!XAnb~$kPFqcKH=nkiclN#q@zLHU0#_0}5q?{#?ks0vA{gX_JvD0= z#-Vo@l-d9rBq=9RAp*-1@5ydhPQS!R=q%o(u~oS?n!Zd59q7Di5`C6y`P%9u^XhqT z5jkyD+Y|Q%FTqpo*I0yzSZ|RW(*dcZZzXf)6|~T z21!+gI{Sw++t$=z4#tL$9E&xJ=W}Q{)}E@Z?dk{1)flvpu(Pd}G)BZb(??G*n|HU* zoooHz%I&WA8am-CT)%>2Cnt)HW^XQHU8XKt|2;8pZ43w=2ihK(^SA1g)P5M_pNlD| z2sHl3xR+sT^S}`f+8)7v@7M=L&$LHRJ=AmfQR)i%cBOzL3TE`Q|2??>`D4~-E5$ADnbX1|6gC%vMsm@`n4Zrm= z?pSB_ekeJhC(yy#F(({_2M>5cW>ayhdx41Wdbhx=Li`>*9@^b!X#k~G%?zaWjd{_L4$<3}(e!|Rb>7>&E8y@;>A z_!OrfvMV8L3F22VUuh!N@BOZ@BwVeDUJO#_kHCHUP*zr@O%E%@7w4`Av~51=;4 z8pP5L-_L7Sf8ZkkfdB+L2?4G*Az1N=DRgvILWfr?Sb%eeb+V)Zkv%jt+}X4GNrI^J zUuxx>a@Wvv^lEze{st?)o{fAu9Mf(o;$g_p5g5JuzNU&U37i-TjWX+^G*^s;T1o+> z9^FWUUr}7N;q^4$BtlQbi|~$)CbhxEZ#w!;f96wLmAu3kK5gd1p8aMrHC3SWn^|mLXnpY);@6R7Ccyvvp(h1qLvc*O6RYt z!q!hpdbTm(YAMNgOhx*B?-Zl0p1yg+VAXt(Hiei4{L$-MxflUrAX?IxkRd5X>CT$^ znKI#kM#Lepx(pjB0X_PxbMf;jyJICKZnsQ((_kJK6+tys+Ox*e&WUqThkI#hxgqKt zDXQ7TQX`u-RwNiuUy73QTAX(FWk@gm8n?bO6GMj$vk(+z^awrhlE1~}?_P7uZ8PV@ zw1ducjGbrA+h}uMe^+klL5x!#m$5INeUpSP;ivK<7~gf?yU%0#%ujK{9T#ETm3lpRc$D_gw!MJof5axVyX>aWRqj=-n6b;1h3P zePTV{_}?$^^WXjpm8V@qDfu>(ZQG27VZjLZNWBYYe2IC#T8m?Ub1|0CxyUh-4@P}( zI3gLdRa$`9a5uxJjm8ZZ{|!&RyBPP@1R*ZE5&wPfM%;M!bJo2|PKqFLsznDTI=!o> zDoil%HEGB-X$UX%F(gEXNem|Ka}f5~KNaIfCGfYnlC-A|*r5{^&HHO8)g&V+A`fL4 zGNmdy;~Pdz@xPq*7wkXx6O2obqj`XU4%~I#)tL13?fCtF?!syR;9QB1L)r3$xZ$Bk zP#I6#gVG{=uxvj5ij%PJn`QV`&e|DCecmVE;J7`qv1IXF-9S`G1Il(Vk%PnNxs-oF zL5?ar(F{~^-xxuYi|cMV7ZWEugHwNVBg#*?9O0a=QD;pbC5LDTLHU+q ztX=#S(IMJzQz|a=0olR}VHV;nsd@a+R5ncnul7$8SIj45R|I?zaVm|AF+9U$%h@cq zQC`D2+&;PE)5(6CBvzoYv)FScyJh|kWV9p?&qPAfF!SgxLQ!KWX|~{GMB@&6tFabg zlex=8RM8{6!p};gE*o~4NDL(*D02rnos+abIc+3L=>%;{{syzF*W8g)H02BGjP}S5 z+BA?Kna>@nuNSUc;mk`io8&dW#oFj*2Q*j0h=a>-LGp+!Gx4aDZvu{!#>yc?gOI!O zJJXOEN;UW75t;V9SJsAS&8d$zk2z=DJw(g_S6e`HLC!DhX`U#CpMzs{ZccXwbeh}7 zoDjO-d)0KNNxhc0e+hJ|yABO4!={=a;IY^4$JB$zqD-9J6Hmt3r=5!n4m}d@SA`=r zt_~ZwI>dk=F(hFKO170?NL(~Z7#G=5&L$F`F^mLy5sp3O42&y`H3EH8QIP>JK0bzo zy_>Vw;MvK7J+q5n&GXFPl{R{ptL;3u_@GoXavAp>o2yNz;UbEmz0w1(xZ>wi%;K4#0KiHCxj&I{ zTLB34A_SxcN^($07S%O}rjImdSq|c-Q*1CLoxgH`MolmhN4DK!cujf;qmvG%ISywyvLFw3T7J(kQ8hZt@q%#}w(Tmu=jhHD5} zXOh%R^$H;mCUe4Zde@AzSSEcae+zKVbAf$pInFz(b#Oityft<*y)7%=Y{a4N^<=WO%rQx4B%Gwwbj}yX_a;uQ z_3f+^r#`_vj@rdF6^@Wn@AZ7rzT!A}1i=?XYnRcdA$oC^}5YVJAG{Z^TJ z`e)A$K~J}?N6ORa_D?tIbuV>TGB$23!tIa0hYNnSKW;zsSX}hN7r>OWu~_HaSx0|5^(>4{2*-*gGx5QvYmt-~hvKbe7<EGA|MAy8N6O0A zaN(=p;>gKa_?$!^%}NnRBE4(?5b0s$wAXQ=iR1mot1scpC52eJz6dc4`J|0eoVg9l z=Nre2WI2Vr4sq@*)aG%wgOUrPWOIQXwjJ3tw6BEHn{{qZPIE!6u12J1@Ei$6ct|Bf zg1DjShznCgC~+v?iu__n9X>fT8`Zh%P{Btj!!!6krTUa^=B{1qv08VE%F52R_?)A6yfcKvd1Qo~*Yw6F=T5mXjg?oxmPUYGkJo~Wr91&Vl?-Vj>HmE%XpiYz{m`O!><$}+#jc}A# z?Us0e_S9gE-}fM@EhpJC+0AcQ`VIHM8b;~JG^b*5G&yMT9?P}RX<~qqp(4WH)L4nI zn-rdSiV$%jK|DpUpu1Uq>zNUzy3b*iZM=|vv)$!0Nsc8MWTox)R%MBxRoP-V z43?yJ>p-(MYrgQeu4RM1V*aNFi|)*Mm2YPs%hXuKr=%jD5_LImOQh4*_LE@mtU0}J z@a0?s>R4BW6M;mJ1}pz>$Kjn zv&MzHzL`90Et;l-6ZSjU;}PF+s;K$lyDs%x>&l%sno}KFLrz6)d}=J&6n8#}aU+cy zs?sn-G1nXG>`amhyt^;9rdc{uP9U$dIz6+bZ^02vM^D4(9IUW@Km2d$`>36FIgU8v zK}Pr*jdd&6;J|Y)!fAVE;kl-E|DUy6p-a_0L=J;48Cn(*D`llDCO=so9jKeTUNyoq~@@zsJW#(eYFNs=Ip$ zbP||vy!J9?FWi8|s|)EMPa!!%QNC>p)mXl92y`1A5h%@z(j6%+QXP<;A<*@%7QF0> zBEsbe#w|_j(D4#kCB0#;*q~slIg?<~87o!rTE^9^Q`~WPbGC9w7%`6yZ7u8?=5fjt zVnF1N1U4D%WP;c6UD{togpgY+J9MXBA&62j4kmG3$$CW`N{v~b<5iCS+_qXPSWa~{ z9dz)A^@GG=7%PzHZr13%7tVWCo_kJB&ZpD&DE6JiBPF(OJACte@2?5;AR_ru;h_vo zS7pSxyG09rQkj$npWtW1X!$u;G>!ruf7ddcUY!mPOUy-vTr|1vLbPf`wDW#2k+did zL=D~Zw@sXTitxjbH?w8&vZir>r~O-G&6dcQyzF2=qQ3QJpip?mdM>`7qnBE2&;9 z;vh0+@c4|;Stle^5@g$mv~l!P5h-froR}~JTBu9N>;0Trq2POP&`B$Hq7J|m7TS@P83{;M^AQbyt z-tQ;;@GyrVqj76dhdW-nE#`sd!)mOj_G1!-BJu<;Pvjc23VJCo%3W*aiSaXp4s|8n zmHC9m+bOo2?eA9S`{HH7mPD#F43^HBMc7oD5KS=eOwu~h8jv=Md=SX!EYY^x+6?dseao=JH<5bkrj(pB^`3a}F>c-97D28M9wA(OSH}*dbl~l92_?W#h zZ3ghz+lz4Ou|GBf{i?%{L);6uA@h&7;OI+V!UZFe^ac@s#%8Q5!s$otg%5T=1>e5; z2+ld_EE4EX5E++kR{s*{)<~ZZZ2)Gw!OhaHwLrK~_`wP8EL2-CKJU1f?l$3myZ3kW zt+K>DCvCr7vT{5Nv#GJpD=qhC^w~31jt<-^FCpg5#S0P34MsTo-mR*X>Q{4W;-ON- zP-=G2YqKCHx4yQyH)=|K9SJf&ZMA+VzZK^+%-_A{+Sn@VyZ`ch^L?+c38N-5LL_-s z@)>f2pF)f9d}&UW-xB-M=ayaj|InsSCJyI{()RgP zM+4`pQ-`+({rWU{yYoOXUio;_|TMecfAN;35El00g=U0qyf53M7%$ z+S2bR`il_b&dz|Y7Tm}0i6O21NCatrONn$^4ow@yuusJ(+OW#2<}Q#3rb3YO*DON< zW6w*?J!j=25^u={^Bmf<3L&rN-W-#VXbfxZfhJ8OlHEj2I1$CRXWE12vsvXg@1-8e zw!$kU4{bLRdakc<*lRC ze4{yk6M-f5YK^@#G+2X01rRf5^rZb5gFDt3R4#tnT*Ji?aEH+UFoOZ zz<&3;Z*VcagD)6&IKKGkO)0Kt~R>Fy|8=Q-3K<(29Y=feWDks+YZ3gaX|G<+@t34sZ7Eo@+~6ww zQ|%Q)LHUG#1}Q`i%XIKjsyp+()ZXPBE`}cDDLUbwa79;BuDPzkf90$#X~~Ewp+9q; z=rgZ7(?_izN0WjK4{C#G-_Sm&Z~1djOm#6TwSGB>&bsSN1zpMOSx&aD#8|VwX%_Tc zk~u&S`{y`G>?7Oso@;);m(*_rx>TPc6vB8(F(OOram18~xblg2=*X=K)wPv4_@^gh zkE|h>R~e1_9=#e1UU?qxea^5)DVd0&YPizP|MyeOns*6K-E9w?@TcqP)NB&ckNy+L zn?zkyg5{x)XR4HhkTdL=cpeYpo`?PW<+e#%qpt10+Ufl1v%TczalhNkzoX}NXflJN zrsi3_-ZuKY>2Bcs?n=^z?i9;b`zyaIg$CXUKp+5t00aUM7{CzVe$O*Q=S%+D-?g)(KRYWez+i?974q31meD#oMLbFEb_3(ehf;G;gw=M58AS{zF1p|^DSCBf zxe;=DUqpy`|MnRIryQE4k@%PQ=V?Wg%`2~=~R36(!{HpJ+8nJ`tb+;m)_qDcIzUHNvFNRwg zV#u}-KAR~a&t0*|%+>@;F_w%VWLsUPPK$BoeK)z!#cbF}iF+hfvZLY>%t2i=za<%V z^SJK}>Tj+iNwf2%VZgo0;6nIzEAf4;JNax-l$?4xzpW@OwsBAth6-vuWbd{&=epy^ zp<8uz-3xWP4(5Ws`H$0WmmOjU8UwnY;|8OJj zSXGSMUU?hC_BtI;Jbo`qXFQ6$&&m-Ux)l%KbS_@6JraNZ>)%nbR{E#Wc>KQ~BWe0g zB+hTa(x{Jd_x`(Bhnr~U6Y3?z>&fG5=DzBBuq3tAcMbV#cgK69lKkY>=B$Ekla{@h zCwVX28=h|+j@;PWPb`4{#TYRsGJL_*=J>n)UbSC(AV&ZK0SE*j5P-m7gMdT0q>kLh zhzJL%_j4`{f^J#cd7KHMZa3-N>YM z#|TREo8y!t0j|{dMf6H-Jd9cZEeOoE3hImdgrAvk(Z51D|3nb0ZO!($o$GstnoRi0 zzJFNe7^}zT8DA80MxOrVaj$$U^xzRXWiQ=GC}WR+M7tyjdjBhYj;(!XOZk4~?>7RSq#L$uDPx#5 z;Eq53ABK#06Mw(vcKqUR|3pk;D)JY8iAyg2GiHPzjHy#k!D|bf==5zZL$YndmO61? zDzR=2L#kc%1lC+~7h>xh@#cT7vC#`6r?R@%acV-P9a{j6e6FO$H(*m27L3~)z3N_X z-#@87iBNWO83?r5imN5{qz=PG2u8;^U)p$F$%yQk_@W2)ZMSm!b_ebRAP|5+00IFB z>=Y0%1eMN`D20on8m^?Eb~gB991n^PJ7=66ySA6q*9M-0LdGTOmUm>~A}-<9-uwQZ z6P$K*OA0EYOOkYj^XkZP?!;FnV?k{o!dzKig5rW4i+Alx@QhF)0W5o2*(-O9G4HRX z&G&>C$c%AE*h+J5|5w6WoVi0>f@pmj^XHWh2llkVccGQ(6-{B#MtdThN;%e-S0~A?Vl`NDYb*|1l3hyQ)DcX>&tP~35Q|k5yxRH9lceQY{JWL zz2_-q7EalJ3Vwd_6qKxANR{@b*mKWGNaWLN&N&WuJbE-v+BF%4b7$iH<%PT(j=TPS z9>QwfkWVGJ{-1wELs_nsS5jI!fabq#1)hHLs~Zb*N3Yt3Y@3TisB1wezto{RQ>otT z@M5yvNL>>WqpuycQ27EW0D%Am0uTs5VCRN_LJi6^fJMn^V_XnJ9ojF=>prmSSH=C5Oq$*(2Ygg{C)23&dtW~_ zypOBx*lyn2jUx9bIW_`YHZ{l0ju?wArR4wsKmbWZK~ypnk#*&$2ns`Jc`4*aQc1^# z`C^WU!O)m6Y$~=$%JwWNDG4<^q$)hZ^Kc$q!A+E=dpv+!IHg)Y?!fKszWZn$X6?%* z1z5VS2+@(AFl%H`IC0Qh$24u(MosFDgjq9>oI(^N{kCtGqwh{8^8l(tx&ujwi?ca* zAafu~00IFB1R&5~5a^&*P=7VAGxbWMHBjTA>%5W#c__mPjh?t~XSy|D^Xi;4LYGo( zlj?fTRrOWGkW^)5d%S%9XLPVtKw>)5@=KB=m2!nYOCFJFgtGE?o`4c_AOsuNufpnu zbBwTd%IMhn?nt9UQA^cld3jGCGr^?sQki#=W|b!y5d#b$~p((g^3~%go-M##R=BYxgt>ZYBQZqqtb^6k= z_2svDgqN5YlA0@W!qD_ltwPu7tv-O4<_Vc}Vz7wG*Vjq&ROf;EYEd0}Yku~1$9k~7 z?(eug(HJg(Vmc3qPe`DrL}w$csoaWfwek{Kg%D2UArZ7SqWw}WIi}GZ$V$GmsV)>T zbWjl%qKPJ(s$%+YClOCOj-aMGR50GQQZz$CprHnpE~RdF2jGXT`ED%yHoD}U_flt9 z>QWUQm!1cRa|g_U&j17h5C}jZ0D)!*h){{3#8w1DpGb+CtL~L65#{QO&OGzdEY)?^ zB^n^)4K?+Y(^ySY1&*U`8hreeFR$MnH3{_d zdY5mh&1#d>*_EshnsB|9JoRbbsTR%ob&KayqF#pd(GyHPT!d{~aO$mQ^+dU5l0xED zVbE4Bnu8Kb(>1@uXzH@b2jNvo^8on;Pz-wQ3u0z8m>FavArm>wuY^HK~DIgXPy zuQ8E&pxm9Qh=D<%6QYW{T)NFwOK%Bcaj-0Addu6?tzjHxs*bfzm2`UIn<^_>{`P$~ z@UFYIK%2K;T{%n+yJs7-=U&$+a}S7AhFebCP}9ccB{bgU> zQ8AVB;3gE(EB01~-inBdMQYYqlc>9SI|Le@@v2*~wnda}qOTrF#Y9N7SB}~)>2o6y zWf53;tC!M~^j>s27i+e+E>R^3muztxO;X);v{CI*+e{MK#5Rh^?M700BGBEq>c((j zcreW>gR|j3U8ukV7ik}QnGzgNd81YmV?mLKTqcv_nO%}<&1*jA`;uI{D$8AHLAPIN zZ|u8WL8}7X`lL0Y>)aLJ*&t+4n(nNP!AGQP{%ef2u98zTQJlX4(PUuhclp-M#-M2h zh7SESZ4{QRBtl)1Y&S!Ys=EPaywRg%UtI0r>h5I%c45@s}&qO`F0?C00IFB z1R$_eKtTIH_h2I&IlOSuiA7K3Cga4ns_kfZtxz01A zym#Hz<=RZ!>6z(q7z{i>(1;{-#1%z}qFHg5A}Q{kU5fUI5+E9Y6hH_I9y*Ycz!eXv zJ>;%dIx9-6B}D@ghGsYb$ItZiw71n=rn|g1x&L?LMY_t&%B;$)%Ibd6os}=&ix+X@ z#*K*U;)eFL_L^%w^G$nD;w4d>v7DI& zy2N+0vm@99;T#15La}*T%A&*ZW{iV?=j?Zrzq5n_@P*RC1T(ft3Ws%4B&1vWv5bQc z+CcsGP83v(Yu?4M^dKgW?;3M;AHH>_&B@lds@hn0&@bP@SWv97$U^qt zj`LI%bbIqBkj>1@ohk4?F~UnSo$hDYV0>B^q}?nysAjS7xoV7t;4BDz2{c+I7JT~y z6^#zRj);;SSD8{>STKu4NW-KT!s_gEqY#XRAs&JocQ~xP%HToLRnmQ7g8W!H$20f! z=C~j-@ipZKO|6sc9GTH(*!&In7kOXg;R*CGg;?NkcY2z#)gPFibmhB70c{>of2d$ucdf(-5TJXH&RL62(hV1LB$yG=owO|J$69~qGcysbw2HV8c| zRrDKxnm&cp^QABW)iUmSWWfMsS0FzQBL0NsZG1HfUL#yK&asiGOlwd6Qaito=k$9 zJXXG&=_<+?nNIVFY|^^CB~gE@V7}9w#SDVk!PMrW1UT?_!?$DV>?G5lOd~o+-vND% z{;m){8pW89=*`}1?Mnaj{P4tK2!OS;y&W{;TM2ZYj#jU`R@=AW$kPuuTt^qDC$dS| zG@rm3A165Dy$Wi(pTff`UTKu zsGpQPoM4u_ioi8WrBS686>@{H$IB@AKQD)1Bz$w=+apXzmYABc$_uiQCb7nZk}aS= z*?@zkx5N}xHvDGf5Jcyov*hP~TVwGLX|FrLctY!U?ytyd+||2EEoF4jX+uuyM5;^> z;ZCxAqLXg&n|6T1u3l=w-AJhoW1n$ltJjM_K_SOiW;N{7^>Jf0(lQ1aq!@~}0z>N; z6e1VBUesRZGa9JP*4@={MTIoNvK`jC#CfIzDIUm}2_2f*b4S&I}CP^D+V&2?68j)h7$ z7MagSid3cK$zLFsYTnmC)4gY2*Tm@`qhcg~6`A`GmAD{T(7V%X$kHQd{$afi0snuNY%ZyM|6LA)1!~nG~&9YK6 zgwW6ken(QFy?~vAW7q9z%0@|3$51o4DHv$}lRyNIv9D{wsAm_2QuUXbP;k@ixG99t8hZ!4fe&TpBa$=z@*lJtD2 zy3&8iEZ?eU`Zu3W$5Geoe}a$&))>jukWBCV`*l>SFxrrHlG6gRO|Svo;u02~+>l=! z@59{+7Zf>TC(r;Gfyld?*io;kPPktr1F|pY2TB64GvXkIc*ayQ=3inn<0U#JL|^`9 z;B^$bTm0nd<*0Ywg5(>t$$?@(CpELccVzh-CP(Wo9$Gni3u7S z8~AApLK?&|=fT6|UK}vfCr1^}!?*j~Urt67;<>)==vnG+_#5q1XRWOsuEoGid^|q8 zho7SVJgRf;2ZH-nx7wuH0+U&-f&x* z>M|dNg=%788gG+G1opy+Vki4|dc(yIllv)H@CY3e@HFW@2#{#yhLFO~&@fd>FQ*a^ zy5Rs6Y`;lCNp%NEbl%Yt^U?X(3Ct`3Ty@xBq-DLE!0rqK&r(|%-tC=yUeEuyX&gN7 z{vn=Ej||CcN_k?^=d~CPY-DuX0u6y?tL*34f^kkX4}9;-l%R_Vj9Y{(WkKJ%8+d!P zu9U~1mF5E9;vAK24%$5OFIhZ2hhMe$(oAw`*BW!L z;PEd9Nc&2t!Ah4gzRt6v!2{FXzFy9&^f1hWl*OK^~9r&M{t)75e?A@;iG|lB0n7QZ|`vZI>Krt`8oD-=pm~NHNYYCu_x1Iad za7yqOgjM%1zJtr8CLc03i37U?S@&4ocESb?(#hZV4CC^tHvY5mMQ%xSftU_#3{wC= z$Nl+Rkn345gs+&6GWlm3Y+bX?AP!bT=>BHn>8QLY5HuwJEQk&5d$UVO^?gT81mLlz zlU<+-#Sv&huk{sB-U=9M6hV9^db(Y5P}5Ttw@7tqw89dj267%Ama@9*e^0s7VBTu= zSiGlM^W5(B#N#@#_1>$N7u*OX7EIiu{R9b~i$Z=Q>SFg z8y{=)OD?NrO~OPxHWS@nj2Iyod`WX<(&%Y4oLp0;L0e6S5gSfo>BRjnh8_@M(HPx9 zEz<-htR6VKwP`z-d_d)qE#p$kx?gb(0V{*zCg^N*q4eg=&E~|I!3>P-Wy#mCe_}Y` zSDF`UHL?Y6dI-tp(Y84enGJ!-lAcfyv&R#3ybmw!d}I#}x|<`B2Sl(0bk~hAJ-{L0 zG_VS|OT+TrwW0RUFX>|BGkEf=HE_in`Z}=pCmUJ5o24^L2&7Kf<{lyC;BrOTVQANA z+;^zchN6M;K&@*_k<@|Vf{Yj9af?j*;pO6@71=o9 za)bL_cr;%$yEYk|l`QYo~>OfkjeD zQ_t^>?)qQaoLgSP`Egnk^$;dE8_+GVb8N2n8;u0_*S}w{XZ2TN^@TKHJiL{J4Fk|8 z!FD~cFTZk?aO!{2>mpfBNvb&+e*;MW2M+(YE}00^sn#ck*y9}=@`UZ^4m7BVrnc0| z2+Lk?do_Mh{$BY)$ofo}7z<_SXtx;Do2EARZTLm>8uB838I>_$LjYVn#2cvuU(SyT z{@(ecSHf`6yB-@tlGNP|!Yq|NZ^3Z8G9E_z zqngI44}bAbVCYo5H)wN%?|79`DNwa>#YoHE+O{G5%I)?Cjf98jZ_!5-ZsgcU$c+dO#`^j7|GyNy-Cs`($Y%{TFr7=a(IVbwe|lK)#DknW~-IuJT67Y!vi2z~k;k zG~VSc*{aG`jPB`73k zE*1L|MS9IR8x=ZIdemAqy}K3CMUQO-1b+HuO*Tc-a=_X8B)f(A28*vZV0W}Ti)%An znf(V6eqh1|A@cOfPyW~^h`-q&ZiZhUM3WFj3d)gqP~Q*%%H!4!BdWHxg3fB)!x%$Z zIQ6B>CZ%(~1}v-7Q;Ga7A4uQW&q59!M$1l$U|ki%|MzK>n$+>cY<5d$#wmSC`AD#I zWbhczS5z>IlH(;>+11`KAfA=Tz~##iX-+i=Ld`$7*QdIiw26cWh1haekcqXz{H|dt zFTQ-F`w}V*X3%g1#M#)*DJw%QJgX8?T3aJtAQqzl=-V+ph8i(1JGaXun6>Vb-PU3P zloDaNo+c2gUTH|(cp)QbR`K4lDqsBm#xl^{MPrmoKu505_Po0c0;naz9ax{e#JuxR z`C3FbsneyF&6NsJO^DOKxyuYE6t-RDdVha?DAdSivVKiO3f_iw^LX7Evv^Y{pe4Ih z5_y^~x-#3Owlc}x=N-L+;>IDOS%^qW7*hkgjTuG8wzM4Sh&Abmz+bQprBR0-q9avq z+Q@iBALqW$QDWg(Z1BQrRxby-%H{+(<8(xcQ|YX-p4&b4K-m4L*TpHyUD^Ci+ll^v zlNdIv<}|vdO#zIL*xpa%6^Eu)yFV-`%yZ408M`9mjbJ_r%>g0(Cw{imDV?x5t%U06 zTuXI#JaIuD47J=|VX`}%b@0E>b)Zq@5gfZOAY%?emuvW*MXMlQUzv>R?3zkUN>W+Z z0{YG7#Dvfof%yIq0^0|fC+PE2>_p_q^*>N+D}I;cgh?&}8X?`S`GVWNF>rNV3<-|FZ3)B|9osM zq&=L83zxb|58pKkT03CGM6uzoDWZU?$mPBG%*?Wi&~8$Y1x+!m1JPbjf<-=n$C??}a&KD)GXL=H8s2NKnMXX~Kueu6cei{?j z^hNIU7OrzDDf_ilJkrimocU(KmQGX>0oyfcK=-}%#^BlZqF@jt5gX}pGRQWurDG85 zgVR~LBU*pTdP9s&O|W2Qv;KAg7}dtJ@Ue(2%1l zi352MaI%W1Yh3B*D%o9TWYCCb!omz}-4sxU9Kw2~&d}mG)OoB4AN~Qc*L>D2-Q2Sm z+q{`qU`{FZ9k0br#MW4dvvM2R&d+*QKK7|&99UF;GpJLg#RnUk)hHQ|qY{Eh;RKHb zheFa|vd)d@M`!muFWZII9n)`rzo)|w`8F8ABPA?I%oVEA1Hd~NNm9pFUI9?;1a`7> z`9BNton*rw=0kp<^r|I}TvN~=crdkP)_zo~t>H2Z_AEz_9j0eOmH$iHcz_8N1Z9UZ zb(BE->Tu&H+v`ZJ8G9)j*E;z7y^8_*b9tfnF>LXtAlg-G14h#$&9W}bFvlt`{lsdr z(`CQOd8h)&P`ecCfW?g?Pk&YZ~`ebg{ zR()zBSQso^6F~TY44#s}I~MX;kEx;XryT)U(K0F_@V}0~Y!qsI$cPTke+o2DrwxK4 z!MTIc>&^Q`=g}h@Z@GLfr;av!uLzIA9@KcrQx{2aIN?<+31Tu;aCF4I=og|7n-NEj zsoD0$mCB5_-+tr1IbR(dxs|TM<&waL?n=qg`GFqw=2Y3g%7o$u1ZepOc8|PGv0XjFhJSgP= zutXlwBaIRph|tWvnLC0kPGU!?InMU99z=|%>Yoz}UAUn<25-xI7uC6TpQae*HM-4L zDuG+7{5FfXWxO%ARw4)(Sl@uFi(J+fQXo%+TqTj2_}&n1BCUf*Te&WPb0VRB_k#sK zp`bhj4er0&F)H}gNI~XRBGkp2swqQM@X8<1DF3JQ(2d(^n;-6A%ZyMQdNe9r`?&#Q zWh^(Y5apeYzE0Vvz2B^vBAn5y9A}6~(ypwHHST!aUm#f^(b>}Qvov;(9F>UQyj~Kb z#qznj1?mwWF4N{$d_3wN%s?TUgA>oWj61x7bTq({GY7rLjr3t^Yb2* zi~(C3S!$b%??|_xe0!<*OUgfKK@>EWJ&FMoq)0UZ*{E!MPC}8~udV9U=2Vr9lXi1K zFTzYjs=+vd=c7U4k)(tF8xh-rJrFk?sL6$}_-v&E1)1Z^`hA#4O8tq{OQLvM8#xKg z|D&X6%~3Rs5!(_*w&F75xT-g@m@-?tW!T54MNaa>Zfl6KlJ#3lWS|}LB-<+MtUFYM zcwc%8vfWs;XYRpq2L=ws`<nNfelK5cUbx3{^Sn@Q{$)PjL6 zrQK_RoW0XJKkV={;bH#uX?!U%6*=aTh}uOl)EX%0hC(#1DPylgo_-GCL;PLr2Pvql zjGFB;e%U-11Z+Nl*4;+Zb?luQz0TL-s&U9iV;Q3!MZSZ-oMYOqG&~0CETsII)srM-(Z-p)&|1VS+D`M_T>a z1zxa-m;g{$>917JLUrx^ySwe$guTK?_5Ui%IxgO&Tv@8q8zNGSKGl3EsS5nc{p8qO#EU}z+mqFAQeKb=_pt8wG`;t5Ocp^BHp()+-DOx=~Q;nej@*iw{SI^!TQlJy1iM$Hq}ZAzUsVMr1R1k z%%abxfS(9@jN66-gp2|*}U-|R#=AklqptqmftR7~CV^H_?Za%#C^ikS_PnK=r4grjM zv|+!B?1z_`zP28FwXpGq@Dn!3p%L)&`_pB?3#9XQpM!B0!MPocm6Uye>bvKc6^#x^ zA+w<2OPUY_ZebQlQu3-imlgT}sAqG$)sZ8~wh-WQ5mIn?NaT$QZlQ>n^QexR_y^yw zhUUuuqq*{H;)SP@;34O{wi-qK)+IKA`d%$97?yoQDhrEbc`fj9|8|ed-)%W}jNdZ4 zdZA}s$6_95=HckKxITJ6H_MvpjBucr#Axl&Mh^DW3nF@1kljEf$^}B6N@9bF0;_HOKUcMskY_!#97-wVts2DHyIQY02g* zRWO}kxR)6PgzXOx$Pa#Rx&8R|HED$Oko9m^W*Wz%j)A9_;uf)Do59Sb@Q&=lCwXyQ zQ&>?%vv)2Tqrx2R6FE0Vy74fewlrFNHD^kdU-tdO|f@rcUuV1OmG0?1)t32jPh zG||OS$JZ&e`ppsnyJO8$Z3hZ@x>%5(PB}3fVl+eFaLfJ8D-sqG+7GpV3X9(aR_1X5 zFaU0#XTKJCR0BcW8HMPUuXRH!bR;r)1=o!@k4y6kmP8_>dv!ln86l~j$DX4Z5O-@N z9vY=IZz!Sc@<0%+{+HqH;;ZY0OW93e)NX@H@ip|HfruATZCv)vX>A2gU+fz?qrx#R z58$08iq(m*CT9V{#_Zqea}}YpuwXI})^mmFP6x*2wtL|kRo|>-c^nh8RIR#@P!_9s7MiyKss)&r=w;>f+ygap?1>xn*ncX!yg$a9K-gmjJt8ni11y zw6fSn^=}vN6~Gc{vjQ;2G_`Y)A&is%R{&fHgEY}hyJ(;S^*)Rklor zdKooNUL0G1Lq0~t?FDRu#V$l8S~4nl%OP|Cy^BM^g1?6}3nyInON=s)2Why%GSJ8m zoe@I*?XZtA7_sVxSw+2Yxr>b66E zPIun5)#vE_d}3x*@m@2YQ=)UJ3KYY96p&k>9+hyj-5DazW{Ie$7+=N?QFqQD~MzNcxXUK{Pw3IQ;qY-!Vy8_-0R z`!$F@h==WL}i;-|}x@}~U9AO(^tFA^As*mY=W%{Ha_i$WRUCig;=0y83-zDxFg2?kpo++Si zpaw9is0MA()Z-TvZPLtrrSY9;o`d^iI=p>5gIe$#gVJbGY`54_Af(p6Pjj6@HZW}6 zYCZfP!qZ$N=cPf89GgpwLM5s@@f2y?`Mo0;@WYT*%E`$;dL?S~jAj%Fy|c4q(kQ!w@9 za9;57BdZ`h96LFH#-zXMn?BT#Z-~20$)-7ytHgcV9k4M!maKnwB#@GLhw~urcPT9( zg@V-AMfi$wS%uB*CLaFz#3j|s22sPBkD6y1cbvGkKz>E;?aI}j&d~Jkbh$<6#Pn-wVD(b^@5diKmZ8=8#M_gX8q5YB{ zoc$yT*_Pg;q;{kX3F^`UFWaBH8b(V_V7nHT7G)Qw+M24)eqJ0!r-kA(d<_755W+B@ zy&T^~9%iq4U;fP?>au+ptubC2J9U3K)u|nxO2>BD>fZUYfZBtdJwj&|@w4SJ0_Hwo zTO5xpfJonGdmhS287Zqe1n>qX^%%y&)E^%Ix+5b}KSaBCZmto| z9;h7wF#Wcoy>$c^>qr!|DLpOVvR;04n+3BMe38<9{A6ISR~45jJ zA1~WbzCj8ezZ@3U;ryO%%t}r9;Uxrwjb1og6@?Pym5AJQ2+I`Lk?=Z`7Phwp+{G{@hg#*gipd>cHI}gwrku0)NHs0D`#=qfZT3K_mg_doA6bs zuino+_XTAYG|uycBfEVbMWnTkdJl@3FPf|t4SL^I_n*D6Uri=kcqIN{L1CuLtg z+ma+Ax66 z#o{*d5aq?s;#Q1OA4>hV-e3`zMv*q;aq z?N{{&Z>b(YF|^q~Sd?7fRw8TiZQyHalG?a^@U`n5N)hXiJ8U`PsCFpsp3Kv9fnJ(Q z>Uw>Q;V1~j%~@=g0JZ7tYCC8I4+D&L=edV^b*bc5R@T2j5OB`iOh<=B5eiTIGN@W9 zkt`vU4R26Ei>0kWBhw@SC==Nr^|#57rh(sE8Ek83@19i)DDIkS(8`_f!m*%6juB01 zKcXn7_}=#@b1aI-Vx-CVc|s}R;kMuT`b#d1NaW4o&b(pv2^%>B#jrz{kor7y)# zeCbQEJ)J(XO_8R}*}0<>sjp=3Q(sY(Vfh@K2#a`5XeUV0gLEhSNZn2QsoTOt&hDA& zI8p<)ShT)uDYe>Z-ayis#wy=^LWT)~0mDn2i{GRY-6~c1IuxX#zx?i< zkz>kTUlU)}xO?%XE`V?!8}jh#?-KG5CoKGA*zYn&_0Z??T$Oi-1i`>Y8BdP=5LjsB z5N{tHL+N96(s`rX$Oe{t+(8#Hwox&mnAx$*cdnB{wZ4X!cZUiFMi$mxm+XMhlzYgI zmoi;no2s(2wJLli!>aGh#9c?~hlA^@&IV34&V7sR>5%ZJH?vU+ifUrA2)*4kNc3p# z_IfS`kBVIv3PPjk^mnsCY(QKWFdP?V+Y(4(pd=W5+4mYWuwPlm{hzSb?HdcJ<-mTF z(yP=>R`UpFcD^YZ*JRwgPA@Gi-kp^|$ifKraXxo8+&9WDqk`Y^XzfAkL!$VbC(P~i zERDGtZY?P2!$ED*l*DOBIT+!5(|e|lE90}Sm(pKP%JY_(RfvQVDNmBZf$^7bJuksx z9Q%1QD(NAbIJZniH|(+mv1-D3;|W@ zy|VJA+w*-`O|Y;zSV`zg-|+X-pp%R*P5bqX8rp3@JiiZ~Npt!A310hKa9D$Z<|bTe zn4e+n1Gx?{H@Sv`yY%m&cpeUx-NOc7M+sOO$4g1-4lyav%VfA8L@cZZYhLDW2s&LN zwQUgx=`0!_*oFt<*Icx|=nRt$x#_;^;>IUaV&j+EJORwVR*||xR{)Mk*L3EnYiJ`h z+!sMlpo_~xX(i_jgm1YcQ3F?&LVN`rXA<&+2ckKGkR-)!xD6#)m2}(g*zWgEsxicl zdD-0BPE}&6O9Yn-;(Vts<$vu?q2Zz!KqVY8stMbZJ_(47=Nw~afsP7%qsahhFoa}c zbtbSzIrUDe3-YL;j%ihQL^r{1L{SKK`uLZdq)A~TO5jFY_sij2&YI$UAIZO5qD!eJ zD@HW%a`Wu(at&q<)%ovA4^v~R?#k1Mf|kEpq&mPm2);+?Mh|IcNEXU@w;c5*2>I>U zPfvpmXcHVFB2Zv$9knJZ$TA@#5)>M24!i5*79G^*XI*2Lc}nvly}5!5mx+(Fht@;) zj4jIY5&i}3kxg>07=|gC`v6paCpnkL^FvCNcrTf zzK6-w?6^N0K1oOgJC+G>P9-vN=%+Usfx>RVJKV5FuVzPJB>x6Y2Zg`*FF~ijsMW>aStHMtFOIL?0fBhCndqGyZcB@N%?6vxEa5 z38yGXg}ZNJCz9<;vBb2Z|GX_oayk|3JX7(Qh6B$$h!%-2Z{d-rI0_-?kU)=00LOtr z;)pHry{6q7*As1$mO72pI2_}lm+e$s83Q9o5Xxft!|H-gXzR7^HEx=CQ~Dz`&p_q3 zej^^e%q0n7r?n`Vckx>5Lzj`N#k%KTxU* zQQ?w7+8H~4DU_v!tFIOd^!-YlUuK&?9$8f8n}TqA#*x8YQ0sF%Xgd4|LLXPYqJmR0 z13Q{{0A-E$vRgP8cIf39Rf|6;yEE9@ChU%H6vM_I{f6MqQ^a%QQ&`HVhR)7IHh^99 zq?L1t-2xuYw?$A_uDABEcwQx6zU4s`(i^?*W3>M49HB^sjtndhN-s3srr`^^cxs`Q zh}~ba&d1WN$@rR!iH4%hsg2zpC^-zRm;d)uHDrj?>fZFgLj0om$jKd#e1wbetxe}$ zs1#1On2z&uROA=>cFpmP0*)Vi$DOV2@HGY6^%i;o8r@u8z-C?I;- z4N`Y;?hwm6^300 zk=eX)A%$PY5|SHL?0bR5`qt}O#H8R*c9JAm55GwP0mlVMD}KQbUrRwdNCgiV_B)jrw0P5TWd>`84l9b9PPMNU%A~rhbD!# zZ3E8OA+K{;s)oZ2|Hy~J5z4#y-t-cNs+M;)D>6xc2M86Y=+>Xou!GP6x9=3xawUP3 zX^xS_e@YdV9s$VKuYVwcpq8i!5|EDd@P+_sHc`7sZRl`8Jy z2D1u-JW%WtZ`M>jkO=eKJT_5`Z_ zC7S79sQn743`H7s^7HQh-1~}cnT&mR)^HZC{P!o$@u>CSI)?LLF}y4-)9rkm_K2!T zH)zBz? zE9DFrjwqsWg$61-=1IrF4*Vv)m>*}eEpy1mf3z;pfrgW(Uo#DP%-*I3%5B?x(G%e3 zVmNSMh8moiGA=#0w^>?t8@+WS!oGczIDn+X;nB^A<$wKSlVIqrp?u=#Dy9X+i89$OtT`2h7hiX&rfCc z#hy*%ZSjC>16j)l4jVa3p!X+B_bxB3EVbRnHW0Q&q1WVNCZQ3IXlE+bjZkd+SGTd3 z)Qb;#f6Xz|q|t=9;|}zUNKPH5iE;|n`anufU9J&eBUpLJI5wkpt1pvan0Cx-zBS;& z)WrRxcTmqMd*&XlrFE`Yp`6oHzLo(vjpbY54GMz_tH+0IDHytW(8TD;fu~>lN$1j3 z3Ef4@bl`NcGx9F`@kKL_yR76+ru-kj&IiMcCRh~GMRb!@wRT7%4tph& zeD&mqPXLK6yrDNlwm2HegI%Wo#%gCi@R6u%y;#`WH%#G?0ZZK?VltxKX{lDk($md!;~|Xdx%k^iYFM_?KbB(VrMOs4lxd35W$c!V7gt%X zo9Vy_4g&VOXcdohw*us0F=$4|o5r)(Vp3<@oJVO}$xDL7yEgJpDlqDE-H{9Mk1pqa zW9KE`$IOE7ad4%bjCVa{^U_B&Djr5}5QM1py=&W~qJQrKM?k03 znHksRc7t|<-RmLD!z<})ocDfBUqt?|F_a@FYf_cW|0J5v-mLVDO}t zKKAC1HFYfekd6Z2kt_zNA5!g0Zi|R01a&%V@}MhT^LD4KTLW@YrTkEI!^kQxo1isg z>pGndg4qdSC)E4#;Q*KEm*kf=z)WR-K+E`Ur>^#O@=r^I(E5vEXBG;cpzK-ARo-^repMEH2*)r&|rPyxvMK`NKHUjTMor3*7H|JrRlGp@yFOP+H zX30}DB9|*3esoZ7Gy5Q-fK+s|mDwvQtw|f-(;&*6BmmEU9-925%pT)Quk5J;PGmx+ zF=F9XcW+?Z9U6JP8h!}UFQpyWHVoVr!k@%RiS{@px=Um;02K~Oh1vw4QyoLvJ~q~t zkT}(B_RMTty?VM7oWG3z>Deoej=6*thGwN)H9v#cQ{t%*Y|JP7fkVKz;&Ab7UjUbA zij;keIRfsd@-SlHdTu1wW$Y5Y)wqy zbcT`5=YQN+2|n_ZnJrYM!oS2Ic(^HmC5<9Wl->PLms;coz4du5}E@^jPPpj3a|QAZ*0Y_>BS zi77mVrYf4l!vnF?oC!jNP99(rC>QDwZWx1|VA5@;&rf%6vXSL?Up5Z2;(ceUK&zQ# zi&{P^;TivXVHR-LH#FYx^orzEr8pNRLHW8q5;v1S~pmo3nHFyj%!LQhKhhy z>|!5f+n(;ZW=k-;5T^3KoHQH8-W2zWKczmHL~E@vQly7RmqQyrS%|= ze3D}Ap+#hTf56m#6fU?>MY;z6{?kGDeX4{-W+E2q7@3HKK_RQv7`%3R@$B3+t7Ng z*7Xxdv0ZXa{*-sak*=uon7ePR&By$d$Bu3y=SPWw8|KGx+xlw1yoB|VBV=vj5)se7 z`qxbNx0jDU?W8xo&1m(n#Re`nT{r$`%^WQw0nF$fu9oaq4gS}~*p}yE=~;I_ zU|f2l_CV}l+OT;?D|WrTnNv<(;wjC&sYh}+({kl~m!C>9oSe{e!8FH7&y5+Y@*e>0 zQMJ^DecxezqWKD(UUW6=hDwf0;atW)ScL<_n2%UkL&vTDYTcx<;d%>Mdrq}P9m5wD z403T#l2w0lbY8h=uE|G4f!qEDGG9{ufDpmF%{~6g+Ow za7hiH8@;x}uSv#Y@-7P47(dR>pdZA1H|1?)V|N608_FQBaxZygTk{gh-{iH9ZuyGCQe>?Y7~}}PzqW-u zA7VUpZb=2LdQ)ime=J5LR*m#-7%LAb)05G^6ztGsVOVN(7=Or()V}8v!%6Bai$zGh z|E1rqi>RMU+kb_%qd#QG+Ng}YFGG1prg2#M9YYR{vu!|aU03-le~W%6+b8h+FOR~( zfN;0%j0esJGbuU1Sl$9rl&0Y4?-G>lGwwBh>*vU#~>YNI_UIZ<8t9D)(I@%g_auil8zo@v$5J{fqB z3~$ePeX4g8See>QHQBqXlRQVr#xl@1S_F@pzqij=I^GhWQG)@!z)(U3Bp)Xa1>iHl52rCF*m!KqA%t+jfiD9@T%$?O(CfVmEEQT3ceU zBo+OZoQK|${3%Ge<-6zjy}GZSKO!U}ePl5JLg4n+RgFp?6&@B%(WP`ihe~ z3M3-IJ5bA@f!CdvIASoxqb z_4@W`pT?3~V_vz%1N!5`!9pFH3eBPNcOTR5rlV`c7f`)3b|mhf@}>^oV~#+Qs7U^F zXAE-whOWorcImbg+`!+nFL|Ai+0~izK5KsOLh(U0q;|*t8?5m&Wrv&l*LFI=B0DK< zb0NS1bXV;g#+hozrbE{a3uP>;Ep0!F<;B zY@;{k?jNi3Hm0$@8d>$kI>*~^kkK`ADr-5LTovz6@)7-C69*648wHv+(41{Lq0DmC zt9ga5?O|O9$APkwy6LO};fPt7S&mux5?w!U2O718>2Y~)Dt(}C7A*eQhY`h$D3$#W zF&LqfE$^)aZsJs~|7znq5Xrq^>-p~JeHj4ulo+?rfs8VbfD6`I6m$dEk#xBABnot+ z=&#JhU;|Um@wE`pqtJcOE{!;*qy)?#hcUubZlSd-6;lcb}d$`vo` z{&>N^jYT@+V8s+nC;=P}pLY^sGcbaDPZM)|M3~5Z=7hQx`IM3!%(YYJs2(n8}r997q|}ERd(#{{nF;wko4Fu+-Yd z^VZ(c#=Kuf97yoESl^NE2_2ZhGc%Rp$0)ijsVVjQNU&I`n&dar&z-BG{f1NxMd(fR zuRxU&AV=W=-9-+k70Td|-rmRKTjlw8kixWc(n z$=CdxuU>8BF`Nr6BeDMd3-vUmMf_j1F$^q~6>Z8;k6=N*?GgN05H zg>E8wW8|gkq$3H6|9_Q1sT{%tjDZPBu@jPZYD+7JD2F;^u%XnBU)iFeqQWPQ6QWbO zsMqm^K``V>Gy@vNY%ADBBUrH?kJAtj?Wzng3bguGQYp_G?3`Llr8Vd%-_R(2xl$IV z1g}Ip#=|B1^M=X+>n2rLl{tRtpdo;)hMRAXWKr&!Z{*T_@k!z%vqmp#)r`wFcAvrS#dGNq+AU z^*f&5J3n2)MRp@UqA+yE!j>A*!(^!OUnh0`vsWpX8~dB-dAHpf%Erj-vjxTvMT6UP zdk+1EfK;q0O|^fLb z0~C6}%bT|#p^n~8#982ALWZb4>n01LCMw|~Ck*S8`dADC0mlT z#hGkEycoL3iZCyDrr`QOf@A9BWMQW(;Z$TZm0W|lG8 zU?LC{^Ow;eCshv?7jK|X!$5l2c|GF?Q?i3dZNz(h&dh{RtuJN=zuGSUi7_yVUtq!e zr43eIO1|zd2wMowW=_+^|FcpeO|al;w`+&>|9$KsX2TasdErq=55`S;VMD7_P&#P9Y5Um9{j$HnT)E?V5V6(}?bli{Exgel#vnHVQV*8? z7k;|@i2OPTzGUo4hc4f{pnFqqKWZ%Druhhq9y9DOU-XWVJ>5?EE)9J$B$V;e(ulae z;F=@l;RF)6>s>~oWvYDhpsDD<2s$5ud9OXLt7sd#5Q6Js=Va)~bh=%Be-CaH5+Z^z zGb>fR71ciPP1)ZcKjOi6u1>Afx?&ZzP?jYAZiKEmZ}JdQ~S!i?A=@KD0A!kw1t1|HITf zaA(#<+q$uB+eXE}*TF?s);!PCJA#GOtiUk7V5}7~9E#CJNIDx^2aM%BBR?K#!VLJS?joo1 zDF|AV=7@GrdJlS!*lMPDusU?<9LW>yoU8t-p`NU3ObANRg~oPR)sQf%rfG_)5&>{x zvo41UJFfz+KfkW0MZMBg8FcL}+v+)TfP=%GRKubp9LkT^u+Ljj9qW!Ly~D4(RtQ~N z#uEMu$`Rv^9k2e%FgUXLA`)a|41IXStIjX#bqi31S5lm z0vZxehTGw=1Ue`9*H2k*i6cyT81T&CY*i3!-@v2PgS@+YUWp~OW_gzA-LPGk=GggG zj@|?g>19$o^Bc+M2KwWzIvtJ8?RF2OlQDFhp?yFK(SK?*oz76oewdj?*kcO_g=0*5FC%f=-y^*=lHhUV}fOT&C$H z;eI0IEp`lm##oi>r+oKAs~(qwgX5&0;Y%&+4LTUN7Rjrh!lG2yqv3Pj`&?y+Off6u zI+pYUd9pOBK{VZig@20*7!l#yJOGZ8E45K?KO;8V`utkX^@818UOuV|3Pcykz$0dD zae&CGsOd2r2bsA{=KR9dUs|yy6!?ZirYj@rLOJddTI){*s6X3TOZ_zLE6pEC3{4S^ zY?js};cu&Q7=A5`nZzgVrfOdYhpVY97K{@r=st<$hMlD_LR~u-{R`J4qz4Q{-Tm1s zy=y}7wrkL4fe)H1^iqY{+I^BwYH(>IZjartt4`JBM`S^6ZS)(XF1MNX?d0ndx8>;x-sbh( zU4xJNaP!K@_I4OCI5xK?EsGPi7ndo^o6)ZuJa=O0 z()M7-n!uW+H?A7t^(I?W;k4z$GqiTn4eQ9Rp?dA#8G$KoaO_lj<`k1N+)wBN~pQ05J!4ZBbT{H!; z9ala;2;^^CTyNW!fTZrzrn}DHTR-Bth1K-V`M|{eJ*#~kD$EC}(J5!(4m=Q!V`9+L z$hK;vQQ)ZvJTO|(IPITETw^9)*%(l}tDh4cExa2#Mn7Mc={?({`k@|WyE~B7L~z<$ zhdz~#jK`jnFslRKk4+ua$m*1Ix4}YGKokBw;2T~j5;+Rge3e;!m=Vvt9-~c%QWRE* z#OZl^g|+d3nJ0(L&WbPs%=ql?|Q)VOC#%};zm_^J?N)XykP0)4dzi({-UA4I?% zM5LirhSM8)D|W@id%OOxB%t=06-2cb$r$DPO6FnlL%Cp#;vovr84H$hf;gy$9)*q5 z0?*LF9F-$-XoKjU?L2I0Vr;NyQDP}?rE+w_HM5I7U9HkVn>M2Y;2A3j@TD21N83Yf zKNRkCGowS*z@nYaxW3}?@42(mckUJA?;d=X{|4uv*>}I*{mEJrAsywHz4fgYDUpBk z5EVIs;dj;8z{fHz7ElrsI#d1Y`*XPy3^c}aqF?aJ>Uy5liZ;ar_77V5d=fiUwxOc7 z+`?{X%uTx?vxicSB33-5_fOF`R@f70=jk>jJ~=6gT=wbs5YPhrM{;9?i3&<*Trj=W zJ8*#@R`bSqT~Bgm%63f?oT-f3nQa$Xt68|2AI*6Nz$>fTp5X-gneqL6+GelgMg)^q z2mmFam_Ysl6V-^V9O+thvvm~w&ye!+dKiYYUECw-qIupCfJ~Y3M_C)q1AFUpwniEU z@L;i%MM)pR8K~~l{lT&Q*V#ufUi6=Pg&v|7LOQs46|Sw~wU0o$aJ*}3^R zC^$`vi&CUJuV}652d!Oye?Ufdnkvufok}=t5ehG-CqV8llAI-^KGKsJQpyYSKRfCz z4$P$2t?eKWF$Kb(={t9AA}maS5YkzO>_5`?oprz#f7K`^|Jd5)-zFeWUg4cqH%Py2 z>QxN`?0!*t0Fzd}wAE)@qF9+*X-u)zLUww`){c+&%dOB5a7Wy>;=coLeHf>w#+!U4 z74mAz>HXy@qbBef-rH>>ps&x2?QBuq&RJZ4a%7ROZ+qO%VE#}PZD*}=uoyaUNPsW^ zOJU=4p3!r=W!^kIwdTv|lo5r02&zRCyDpe9o5y^-mr;VTL#CyB3a8#KGlR(GD>nxO z23Sc}SJ>GXPP)E#z1TJxg5=RXSiNwrF6Kd;vVlrBPG$O0Ci0J2Q?-XaW|__QXpJiL zCA67<*Be*M(t)Uf9@P>C>{=hR)U?%&j^%zIb43zGM6h{(E773PJTg-;IUEL z*t6gTJdF}J?SR$D)DFelID!N=>B^Y+D+N8|&W_QfPtPRXZ7EGyHOdGDcQ#7&)Gg}x zjhBAGytlkwrl{MwGiiC5ENd8rheX3OIH$%5a$Q@#dFriT`>bpMV{9ESm^*jzkP+I_ z)vrXTm83E%fY81=re~vDrD4-rwrY)%+X^I18jAN|UZg*XrA=vp&fY$fIZWQg4;EHd zu5xk{09B!9Rlq{dTM$(=>$B9?jBT6J=lIu=sm8jl9Qh<>-`UF6<$F2b`vc!59}yp* z-Dxm$&(>mFkI!}4`!=|tTHU(BKliYHVY}?Z#^EAEYjB7tcmHO ztyd+Ws$yY|qDloq`ryE}-T8_qBg4RMLWSl}3cg8r&wtyaQZxjXGtVOJ?4d&0-Kahq zB=GFlJNL7dOh>!a$^tTQL>%@w$7<$kK-OrmbAtib@`RWR>7s_|Z%q zSJ1@SdLtDT%Q_t=$Q=&266cF|hS`BR)675x7c|o;7y7#`5bIR<87bN5Ap} z_IVOn^K{>cXOU<=K>(+!uGcsUwMBVl`ex`8CPdFpN-$)>xeWd?(@AQpRdQxi0&Pz`+QGCVL*5`=YDzr}B}nq}<@5Z+>UdMA%(6yTRDE7| z-bD0P>u+i#;Tr$x7L})L59)p{mIc>iK(?)X$~sF@^gfg>JJ-^(#JN3HI$ROU2;_=; zK?&SaQjexWJGbY(>(vpL!wI^IB?Uo!P3PyK{mL8iXC7=TFJs^Q+oMjp6Q!Z6^Qal+ z3`Iu4;bV`_(mAHYgx7Ub4^Ms4l{(6_md9t3An`(p6!F^Y+2quQ0%_S z0u08yu@Z!iOjsTocltMxo5dDqi}N`AG_Xk?i% zIy@>=RqJruqScj0{tsCP)3_HW5b?liAezob1VI}LitM=ejpIOMJ@yi?#K-XdOUM8` z*HGf+Y_@HIR?ei{8b+L@%Nshj9qH^=cY{da`*8I089;5hS@Sj6p||t( zkO?e)_RaCkzb3c&TQ1HA^A~6bBSqorxlOc%hS*ePYN$7lZG-6?^xu$z8 zU${KfdXlOT>EJ~IcO8MyF{va9U#dP&y2;yA5Jfy!LOF9ktp`bZ9RzP?2dGL7zG*I0 ztqD83i_hs#vn|gLbc%gJ(M2rPmGVtmSrokY0l59#5692+D;wE6F4K~s`q7+RcgpID z?`E#7xjvPsTM!p!)jR=$f8%sm8=$?%Hv5+m832fHe>q3eFB*m$rbHG?>cryYHrMmS z?jwE@9w{cmAd1bHIv3esnBnmiPv#38RX2`L6foba8~zf%g(3<#8E_FXL#nBGyzjf) z4~V5#_V<~BJeh_+6|So_2jI$mJtFJwk0WY0Ue>lEF%F)Axd?*{y4uY;d%vA*zKy2p zd?J6<=)6u~Z|&!JZFBfeL3h~^Z>#DnrIYR5_^8?J57+9vZS6F895H9ZW1Dn9%YpuW z9j+qWd-oG;Z88=JEh4daZMf!y9muCz$!^{MJd^U>n(_v!RvYgY;^Qw70iQ;;c6_hd zt6M})9IAh`EnI)_a=E?50q1kNP9+Q1d~T0ixKcIatoS?(49LLU8bDfMoezm*N3%(HVtNuoedk_xcRKgD>N6)Tp~lSJ6qMx_f&Ph0b7G?5FLn zH+P`X4L6WsI#+(zfvJoqJh(P{Acm9ueJ13!5q-?6ux%47$yRPEA3?zm`~x^;1q8++I=!?w%{OFo_tDixP8$+tR4fBE%J88#q<8?5K2+8E(Y>iJkbQ zhB;Y`vHN6yyIhf)5See%OG$<(q6Gg1UY&Pv1z7j}w0`c|d7T2h9kyo}T-aZGtSkUt z@)R{1Sgy9c0QZ0y1EQp%ciQLeXa4>3rRjA1ldYx+jV%JH1PZg1(p^R`*0M0Dt%$~1 z`U`nB88yp&8S^}qTwblErbOGkhnJ-P-pJ|vL4*8wEpF_~#2l|r1TZWtk~LV{A!M~V z;I+1KThMlgOl;7>A4=MOTW0k-uc$N*n_y&RCO0vigWk7%CH$+P^X+}NYg}4tU~ZGE z5v(y0Qq@EdPKfoMIYjKYbyMHk$+p-*#gV{gxqU^u;E$prhCqCZmt$M%%yV@Mkx=Ys z3vlm=aj5@D&8LC)(CEG5GVmVS3>{uu@zG#~2@_-C^ilwhN&OXE$oYe+NjJq?#6%TkjGuyTW>uBM9yN~FK%VJQsuKu~1g=E|xEBNX1 z9JfzU84d-E$z-v54=_ifl;e4+RI9rERm8Gup?jYj9e6mX*~&{bg_bON4VDAvgag4X zZ$gQoic`$56!=$+FHcnw-#i`-wtczk+xkV6N8IU})R}4$#iDy9Qdnr(l?70gprD@e zeph8;&HGT0?`^|DV!K5+ydyXy7P!>@Ou3ejI!gY!z2l`8qy92%So3|oPoz+~LJ3~@VmL8?qNqgwJJhp$Qt(!L;-yF|qDJzXm#LZJ z-PN(ub)R+Z*i>)m`iR`V?T>Z!mEBa#yw!2m{jei=GOeHP01k|4BNvdfX_kz%D#%yH zqUp+vO+`3=BFRfZhql-H#?2vuQ}wQW(nKqp^Kho=2l60MRF(gPUPpyGg_@>(`hHMJx9tU40%|%%rV1 zBB%j|QTw6qng@0%dMWWlHPO3wF|&$3^yvDPo8fITM?eyph>)s}*97B%{6~`pH_ug= z7fvhBXQPN!-dc=+Ral~9&f^|Z!cZ68pQ~%Wf_&~Xi9Aj-+dopq`QolulD%kQ9Z7x;Io21ZKqjPx5eQKX%{Ux=#5)Ja)m; zn?TLn;yN;vm0p)m%)Oh8iR*Y=BDBXVbl)@9rQJAXI3C(-XW$Nlra=yW9RZ=vquNHcDP=cZ}t4mbo4#R_-nXa+S(TDGtc<7gsoR~?r3bhsQ)zRmbka}d*BP-+gF#E z;RNO+qXOdHu)L3rtt}VQNM&xzxl*?S%4Z-wBSUk!>F$S9d-8M#U_DFb`IJ;bbEjnV z--!vTRbq(rVHSWnX6A2a9R?p0aRTfYDN$BDS$KH@d>rN*LCti@D;RWT22f!Np@ zSO~SH4dToDj73+{!SS#^OfgMl7)_jM)GXU_WcI3^ZQq}qU0;7)%_Z}ZfhC)j->>}Y zx*9`vEXsNLY+hO`7d6}^Qt$Sg@#C5(GV>z;OBR-(KFHl{iOj8oP^)r%!Ds$#Bp=G$ zb7n(thlg4t=KfSG@2foiFwvED1>eHdZ4|}f-@JOS==A(lt>2*E08OCblB$crq1niX zsd>}eXIy{NzySuY-KBdE{Hw&G{$k<%L=Qrm>^$xKJc4Ttu{oRqk;QY>cCAZPn+gMj zMp@Kh-~^K;B{K{49>JFjyH-Pl`tft$CMLjwJ$R?tP+eeBE8FEpdt>y zw~oR>SDtocN;p|j_RL(EV3!{nM{*rzBGCDD_8J={hJ-zD7A-GrLYPWrkl=`Ms4{|a zA0K#6GF+C*((y&8;kU3rz}w(VM=`Q@7b)1q>%K2gjO+gXtA7c}969N{LhUz=@cLJ% zAn}S+lZ>^pCO5Uv82`eOe>mn9kMDjhaNYLRbY(}R7w)N|rXzT;QpfV#K@9lR5qyTa zvZ~BH6=9hexf6udu>I+?lF44*epkAwOZ%*+%v_PNeD1-j@HlS+VoVcYvp1S*n$?$m z{h{kT^!(qjyvl>XVyPN=HNAwt(#Vbjb8kN=Wul(W!8(xHi;?O~$!_-RJwR)p;O5^2 zc9)&L2JT)B9iEO6iJ@@x8at8Y79sy_DL%i8w&-R26to&KKk{mU1(wj}D&=VX48h*h zOTzUJ*Bfv#si~ok7!qymmo?YvW^l0WU!ov+NZ-?zf?cE!OYQn@}4zoJr_3P`bw z&0DsvThor$X&9f=o&AJVZRNKuoEPj0QcAeh>O^0?@g22E%`q1zjf&8O&+Z}dLg=j) zl4z5;f*W)nOf_>W`KChz4i3UIW@0~#GZCjj1#K5>=BJ+wRZqV+9(Ioc!m3x8axw?2 zO~a~gjhHG-z&1F1vfXrpsldG0*%Q zJ(NCk68X*UeZf2SuRiZuU5IN zWs)a2v}kWpn*mL(mJ3l$-Kl4#Y7#fYvvXdSQ>fT%mxTyZBtimS=i#8m z%A=t|Vl3D7oAoAxI(I?j4up1^ZtDcC&SaN!Tb)tNpdlW1KYW86AcbSPb0`NnLM0?x zd49_ND9`5|`PBwAWlkAk9j4UbYgsiE%2^t}$lr>Ad(gedf~Vi(sF3R92hQAH-W;%V zS+fCFGDBLrQfwPJp%d?njLSY*JD)ozM+FKvy1h zdcFlz_ZxcAl?Rg4F#n9m5O(r7fbDu0u|BID-b>KB3oG8=2{<-ie@vzr-=}+ARd??7 zx)Ch+w+6-CD#&&M=ABEM&6cKY&+xwGE*dmd62M=AFN=a{m7ZH)Hx&cbo;$ht-9AHE z?;$^`K6-`g`Y?HM zZ~_$VF0A5erl;Xm-U7aDZ|m%W)rW%S?lEThej`?S1aoP!)ubItI@hu(||dA@bN9D(QQ!PD&eOBPjUQ}qZ*OGn4%@(e+7l?l!|L|l$a>Vc_f3~~ z`nzt8{;tITXhRt8tne_>cAWMQI&1S#Hq1HdF;k}{A3BgSlYX=9`Vtf{EnvY7kz-#j zh>&|J1_IyLPlrfq4Bk$vsYBM6j7oJtn2-1?kPOU3y_*hKsaG@hNWESZMQtFJGgvj( zB+0C23F-y32U7BC&T;#3hAw&zE{S-(bpNboU6Q#pFvm;BfS*EqX5=l#%F8E@m(bF# zqy8|~6x{Y~jJ^Q#{nzlcwl(?auVcXXNX@XbV&^WMr$#5;!sSJzLp)@A>%E)(f9hwWZG;nkI9Rx+u5N z^BV_Dt3r@?S;}5&>x6>t;Fw9zWxKJn_BWy9n`RY$643j1*Yp-4v13Zjj*A|F^?WCQ z>3xj2eMYH!M*wJ-6VNaQFU;iUEGgZ!e$c%iGSjukq>pc3;Z%##TV4N)(ZM_j4{r|6 zee;%~ZjxD-uTTQL4n;Qx!UpxcNv2=6H$sq|<7oLvae038RJ(v(WMu_w>mh1dEG4d| z1iG||_Y?iUodpv@tul*VJkE)^yOGU-ngEWWz1i&!3-X32Y^FBsU?y8zLrq7ziXluM zd*w+cK7ylG-ceh6y1t9%@*hNY4I9{PH90LmAo_RCJb8%aqWG!t+L3^qOMumM17Qtq>?00E zHWkR?^@Fo%{K`lAad8|?s8Zm@m9Zw2q!ZOw10Cv={uHNgf}unL?$?H8APg8N;Sn~R z%_-ZY>js@`L&`7ahjAQE6V-^QXvOd>Kff@$?84iyNUr1Qbw85#qQFj6a!cI9-zTy zKeP9EkjaK)j7~?8?@!eT8ZHdwZ2UNC#hrDYBOk3DAu9V9E52Xv1)^q(+7^bwxbhRt_qYBh?-#B@&a-JoJgQk&#(zRht$eJzI_Aj7Sbj>CiZG zcRx6qqmn)(H-e?t586uA>Zn%KAjxeASg67CC4vI0lIu zt}^m#;PDcYkxu9lK1-`s`~ADF(?xH ze=P2;aCXMrx%9Yqz{r%<(m?WD?br0@HmABh*Do=_(bkJlWSU*!oiB&!Lx>+IOs$G; zB}iJr#M59NW(n?7uLD_jis5QihYR^-tQDjM4$52C*>=i$Yr-@+MB2Zj*88_B!T|I( zPb)rsQx~ef540-}(FPZmJ)a-x!X{fkU9jBpyKBDA4BC&r-bQSW)+e^RJae#0wX@FL zsi$1J#1d$D(I9q2`ko@+KJ!N71#>U>-VSB)H0H-EX&iu27vB51o)6(njvNNssi=9L z&rMI&>du^u>hYX*=R|y)0wT^%%@@l7`JlzJJ5GM9;{V2TfU-yU0%hB!mkJY8ddgm0 z|JjlSf=z1%Zm98d)a=Kr1sKTcAmnTB8gb&E>Ce>0Tb4GQ~ALB7#YpK zd-e`!#$XOiC?=LgJFX&%ap6-6WxSICa&ELy1b9|?>SX4-UaLZtb>yXJL*9zhWB3UD zX+ENCH9%G;7}itgy&m~IuoiIU^Eu2QX%0Mo0jH;L&Ah7}{(^m5x zS@L^X^{JjbDxs#tRyqU`H&EOPhx7OW2{?XnnC9ks7_wy2A94;za3(bJlEiYk@qE0D zY^LoWmu*_7clO} zi)nSlXoXN&Iciu^RRiZ>C)6KfZZzeFz4Pm(?=DHc3D}tZ@$3$?UX{VGE_`_0I^cHlDA}wyK4@ z{X3hNq4^R{(!mzzNAuW^+FL#GsGcJ4BR8T(xiX{bi$vrSV1h;psL=(YpQOd#`ZJS456F5d1um#*17OE{Sr3%oa=${J$Sce%1o}dfs$+% z%9;986TOEHs%;-deI|4`b(kyhz&eCnH_E~K#GHx9$m*(r0Y5&@T9)T@L#>eX`N(gG zeQT(dz{?RgD}=V4@Q#}5ZzMx}6l1)i3_?dLlR(Hx9WhO_iMXdTt4^T%(12|nf`dEB z>Sh`L8x;y=iEOSN6qhN_O4roeT7V;a@R9TqZ7zPUF-8koGsxP@KNU zl{;4zd2JXJVDIKe4IfB=;K zHUiChWLz9Y2f`TQQths_@8i9`_Iv8s5Ewd8}rgG?~ zWn=?8iwf0c-`|>Z^vWzR^uSOD!`|z&MbH={d^JNs-Se)N0&~J%7kpRR!^fXa8E!g5ei9$NlO4 zI4yi9lwCtz@Eolf=kNFe7>Vo+{t6#a!{ImUYZgQiV>gIG?27lv16q?H#YpA0UH(N# z0o&rgP3~joqcj3qs+jPns8OQ1>Ijiffa^jo3XX7U9W_d95ot4}_Wq?d;_%HaSOP9} zNgUFUb}s5Sn1hV@JXMz*ivKq=jr(syOj})-yfSy77Gukg4+5* zbRLRHl9#^LKEuXS7)COc(9g{@sMp80>85*q?ioW_SF;Z$@sVJ=0Z*2!VYLda46V}d&@!hs)!?Bg39PZRT7mesWjXis)>8mxf%3jB!tt_W>DBCjmybh(biE7 zUrIorYwBq?IkjGk?qXnv1&WOy`t`s!o1yry)e{&p^$W)7EZkwWB(f<})h4;=``O8K z2?AicS1uEP(ZAEhw?YXM5vXdAP#W4v!;P|tO)=VV(o?NJVqsC^*%C0fgldP~7)g+e zntIPjx!pi&?Axq1*lfUt<5KEV{?l9VCN+@??Qb9le_k8>pHyd6?~_<4Rg^<#*!4HP zokX@(Qk=B?$lEeD(XTr1#o?-;vaBMrSfTtj@(O56L-}U{90y}PjmD+l^SU{z2Xf%ZHa`PGZx5-Nxij-qZ=wLfM!b zl(+|5gRRx5_4s8Y+Q%<)@t3yai%5^ef6@m4q$mr~xfMgp+dNHzu#OoN{|Dnp!wePW z84u!rq%arXWF8z`+4(qFgc%C@7}_cT0l5iV_i4oFFCt8Hg1-kYV*dt6g>^YLDegBy zL0#o*_r#>!ka}RMp1#y&A^psD!=#+Sd87APSMVuUF~JB7R34nuVzKsTy~Cw@*QhPb zolE-ktblfk5{NwUcV1?!Dmb=O#Lt(+6B}*<_^%*kRXZF$sG{xLoDy8MAY8-Dew)8r zztJ_$Khns;cDjrMBt_-%k8WZi*hB4N;5nrNNTd9aD_KbI*hk#mK_#LxaO8(KXK$q# zN^za3^m=Gn0$9OMHe=CDGK!@0LQvYzz#&utgz-Se0Fzn=E&aZgCf{DNwrg`CNI!UQ z_^)lclNp=rE-osrr^yziJb z7^$crR*Be}1z2v}@K34MlnefTV*9ul{`bU3q3Zg-h`ZdBr;+44G#e{9`Mpthcke8H z^X8JcmA-jd^W&qcjXer!mXS$QuG;xC3M3+aB4f2l7~|WQTQoUYG!&V0;)x7yAe3Z2 z%k;mwMS6*`<%=IVAgQc+Wo5oz>@myPL?-O0rge_2oLKeF39sibAvrtATvRT94!rw< zC)`49WqZ5{0PZe)uLK0l4bo?E))THb;C&}M^l|%SkTkv1xQaQL-UaQ}Q^Rw-j(+V6 zUZ8Fx-5^Hk#5h*|;uBEN$RDm`Tl$L9Se8xX%G1Be{1>I)ioPe?)AqZ1ndw5!(l7bl zD|+9*6-&|FNLzfkzL3lqpH*sA?b_-%2cyEs~zn1U`Z@C{^!R2GH z6NI4IE|fvg@_)}NAQ-rIVxwW*jhwDsMZ2j$#Da~HaAhDb$a4p6Tg1TRZ$e?aA5h{m zrssh3`Ha8w&pPQebpEK3#0a_>SxY)(;3aoPQGpG_jeR{24UI;>1C;Soy@S+s!vb%9 z(q6g`bA-cLm0$}SWjn1$8j87{^LTCAjoJnT23v!&XliB{oub0^(qh?;4|$AeZHkQ$ zHwhaPKrS<`9H)hMg!t-e@C0VgOdhs&*ne_(+J5bd4YxAN-2hJ4YG@9+OoxWS#Mn|1 zYqnKJS*2m#I(Nv7YBg*&pq2QGN$NE=w{$d)@-zNW3JCs!x*AOh$c^S8EJnt*@8+R? zpX}&fULWk1c|(cZ9({xlpoJbutqCA(Rl-*mjIQ{A4l;YY+0^JhCGvQ%j=3L=o`!(F z$9N%b^O=K}ungUkd}+D`t)zpel-4nhg+*bxHd3-HNo2lsmU0_mOtWu(|7vh0^82U1 z)FpJ@Rn^$#+0|jwYLs4ghBOohl9zJ0he8sBR_o6%CLM;@DNJ&RIxgoYMH2(68bBMe z8kCM5=&9wY*UV)*$5}OA-t~38`C6!DK`|v=Felyas=>bFwew-a^X&7?_vJV(Al0h_ zaVyjdMY`S^LOGsYm7yy=jFS&aHT*u$fuEH;S(Nvht^bAdkdNT^DHE;Kc1$rTB#b6P zFylxjjeGFKpm<-&9((jt`%8KfxJMD)XdaayQpr@SChdp#@a)c;$wM&5O!;DlctY1sXmnxO z(JY`d`8TL7&TIcr3m=ZM?hrGpx4qKuWUa>d5M;S+kI+il9AgHvBox=BFpeUKde}97Z%b*aLwy&sycI{zPZh;;CLy z53vPqKV)ASlx6~>z&185%6G8{VC+IlNt2~Q_^v4^anvp9(vV0_r6IH4*+CFJb3Qtp zKq4C-g1f-A>~isd`$M6c>98mnQwOo<;h1GZf`PiQXkR82lS~#G4f8?Ly&w*RL4ECR z6IKuD*8VA)Y}NTYlMF2?Vlg?n`WWL&xj-PF`eL}3SFR!o--{n*SHgf;Zlw9^3k(z) zMBf4Ve*IP7+X0EnHMHM>&`JXX2efmjV!15@GdeD#06w+NRMLB-5HFfN+$E0|EHRI; zraQOqnbR>A-1rLeB-MeSlT{xVEuF;=4dIE`VtsBk=kh#$*e3bu@&R~=Y%i;1;C!k*q@6Og}TdX)|d%Qx*QxDE92A|n4 zLfp%?j4=44##VnfAR17Ol#|i8GJ@j~X*%mGGVZY3+87U8nA5X=TOm)GnaSC1|@U2^xT31V6_I7?=T!WAVr79zb)hOI<@igx$+qizhs%1Xz< z9~V=u{qXP5^#d=Zm?YFc!Di5}?zXyA#apNw=V@AOG@#qbadr-Ab{@Ci&c`gtVw(=P zgR^}Ob+K)U#uk`@l$dme4z!G2AhDjpK`|7u6LzR-G=~K-wc%Nn=K!6rfX#N3Y=iD4 z=yh>Jia%jZn!2ZQOr~D6puuw&QaLic|5aR4z`f)!+ z(o6#ys0Xiq$!#j_SPY&Yj|G}Bu1!?VKd}D_vaolOjUDpxw6cQkiZMRiXmpnNWbFY| zj3wK6u9qbLmd2Tp6i+Yp&!pQNMVy@jMCu?rD*^?AnfC$M3W+gqlq41iF~3bLHNxoZ zENV$=;G#d)R9`{NDu<;LqkSa~zn3nLTw{6d)GZHh1K%&*vUK)-T z#=7|i;+n2Woz0Bb-~R8iJWT@xdR(ErSz#>7v{It_OaW*~;zS=6Wcg8O2-vxlx0e&2 zL-sk;O+D6Ycxjf*8W}}pb11}{4GP8g8-%+HW@sOh_}lc>S~l{f+SCdx+H%5Qbz;CQ zo1}91JrKX1)!sH&%@3$df@DWd`9~vDRDyZv;gf%SUlV7whGTFm4q^#G>SsGJGISM| zlzu-mo#*1X&v;QtMiLxBY_`&c{9OE4@NWEf0W;|a1x|up#rjhtqZ5VAL_QprD-Q=3Ti^sQ^7eX6 zS^3<3FQP?nhPBb~YP_uyVMysoO>+jtCK1NGMZ2mWjP0{BL!790zqI0@6ke*FlErd% zUA=-4hdb*4*QAP)wdHlBw2?{gNOeNYyXbL)efkFaLqa;ZNLceLmH$nZFAe@cOHaQ1 z4DW%_=9GOzKe z?o*g#FGc3%nG*;Ec+>qJ@N(3rUj-5oYelB(8*yo6R{fwq^lusT=^5@)Ey6#@9bq?< zYv)kK@DDgnv5zpEwv4L_)xANZ1PDl~P^yMyKLke2c6GQgivO_YiFD`Zw`lizF5GJn zxdz=A#IOiC6TjQKmDzueKo9B&TA3!7oJE)q#4lSEoNWtZx=gUKWH#=u&P7<$k9-wm zD%6(Hazoq%X@|{eunR^5q0gJ@9D!Z{-;vE+sj^ex9@=xX&A&*()Q06Z>?G659@C%bKsc= zcl2_Icy-V}hZ3RBg_(AD*I7C;I_g5meDtARK4%Bce(&pQYCQAFPB?x93*S@f0xW3Za; z=gzB6j5!}K<_kg(1|rO37%;d=o);_;7ubwzxJ7Gy0%q-AYHM--a;C}I>%{JB#~-SW zu^T)Cehl6S>52C z+D+9Q(qc2e^MmJ*R6`2cr+8z#ke&hCCX~!w^XJnQb=5uH%WqbPEQR{+Z!t7Ig`h^C zr`@S!kpEl9Sdg=SU15IwXl8OgCZGZhfvVb3A3BvNfNph?6p*4;EVp&rwW|+dE?dNM0bp_uVvxL#;exxyBs3oWz6^9kG*28P%^D&Vv_MZ% zCyLhn_Zh3cafn~c>38P*{q_mU4>)wo7rrVIa~ECDCsq!oE9L}PpjNZ!^m`1U4d6Hv(D!4@Uu1H<=jP#mKiz@b_vX4QP#KMH{owM)uF5k$4xpq-^|l+ z!AkJI0{N4wr)hcva2b(L=dVXva?K1;e|vv`Ix)V(r(4^_Vr6r6ZQvQ$r8gNg&b2?Q zS)k7Gcf40EKioxLovO~%1A-%~4ts6zL8Kg~Ad*vvnm@awsy>Ok{{;55FDrUUQR%l2 z*CsQ>J#~Df{cp5#6fBw0I9=UR_v&MTA;jZPn94D+T|G`Mz(A%TL{g=2B1bn~n#u}%r% zQnzcl-;VXVgi)fAfg-pFwad6#U;+O;tz8!NhFyES__$`T)=QJ<u2*PB5 zN*yB^9h2bM@LtG&cbrNXSMGn(FZg65Rx+%@$7=mJo^vx6s`cz>VP0eUSI0N0^l|?v zY(lW!vQ+>z8{;oBx&HlnbWWq@a8<&usiYxlhkhL9CHBG@+yBUzA{fnu?Lb?SdfzSq z=g7#>LcO8Byt>;M$KnwYK;r+aj=E*uD7r@8+IM_*_e>}2-*h}nflhlLUd>nhqu^CU zEp&$(9$*~>Pq-osQSb`+8?=lqht@Xb(GBFeNLpBlnE2{1H+b;E*Y)my>03q$62xckel^>G^K5sc%5ZiU!Kf+@pTlveBbcZ z+?O7${<-N~kBY{c{RV;GdW45>E@Tu)Es78QlvR7q^?#T;3$LiZb&U@tC7^(mgecwJ zDIy)x-O?ou!!RHMD$>%8gh(@V3=PsH9Rm_W4K?&Ia5?v!-#vHjwdN0){at%M`+eT` z^V}8Dps@DQ-5~pO0njeh@YyO*7{M^zD5U|Mw#E6kL{Gr%Q^(*J;wxokY6>wL%Ri=w zX*}*h`8PLk8ET6+S3c4nYv<#1e1cJ!Mnd*F`q&1l^lq+GGIr=XLlIx1pnXJSQj2z~ zri6MNnI2f$93D(pORb-_PA`D#cNRM{~`j<0hLUR^L z3<~^p?>)fpnal1cGVWDYm0=f+K`+nvlq<$Jv~R9R7C!FZbq{g)FUXy%x&+KX5EIS3 zkgt@|OB}O9ZS9B5v&Y|n2NTgSD>uSt?wc(RrZ8kx0}ew_x-aZhT=MLA*WhyU(g+Q| zTO_{KSpfT%2)o5McCJKK9DqD(?jAZ!h%JCgGk1NISMY&qC^y$3l%Yf^q zw?hqDjF&s(XA*By#7{4GS_fp3)-Bo{0r&y&(sd3|+!mmg8D2+-`RTmO3Ju=egh~Jm zMoCroHiGE2a5NE51TvbKOv4{ zk6uZAXB`fo(vcGeHV%X0u4AJP8+uB$18kpROcce0+9%2;NTdn^W~E2iJ4d_BP4!8E zDdAWHKDx$38bigao1z1+l4>PZOj387r{f+1Nu*CPC<(H52$79k?@qUxLvG+>S9KQ{ z#L|zNW3%7VJj3RNJm?080u9{{6Vxq0y{9o@EU-_))}^my4%fx4piD<)c2F%N<)?O? z4|Fi~PnW8TvbDz3xD)zhg*>H|wRce+)=HHyCqmh4kuubNM}4Jc{m+kcRph%2C|gb# zu$?ZrJ9B1iZvJC7*u&Sdsdo`}^^#NaC!Ri;Z)??Nfn zXhGD%iYV^F2tH#e0zC4s_y9`wZQG%hyjVgT1oiN`PD;Yuh37&Pqtm-}mv6)+ugWhW z(<>ZR-#=;d+?UB5gUZm;G?I5=5Jd05o1e^62S+`?<;Tn#QcT;=4vON~bzc0l#>qq3 zKTdYNy4e%tIc{1KV}AKb-zvCvZf|Q*afbdYHeB z2up?t-UrbCYt%Yj_(YAes(uw5P>~&Q;^%U^5HpK9aTA#zCd{82+IOk&nSoSX2AnD7T4{>7bKYI4q{iA!7EK#Qz@ zjW1wqJTd&6Mr%*E(3c2P{cUDO{fw-^ft|hl)2nIFne=pEu{J_wKIZjByEaIzzhvT^ z`TSJcVkN!uL+tnc06PxO?>>7Dm0J#`ho$x3?p?|S1nb?(+cxI-E@sqyzhwhM%&4RL z(;bBkRtI%Bbm^K?l8;2PbvguL(o-h9sT;qxh=;6)Fz7#_7|EYK232oLY>ly_L$CX@ z+MU*QOuhTBzc!iV+KhEy_oqbMJ@=H^PYS@}BIlFj;ncE!lhXcLl5?9V-hwsyqtfAZ z#StgH)->W_d;_v+u8F6|LQ~FVD(q6r556jMawY%FqmNgIby~f;_Zpwl>hs%ALYSW< zh^B%>NH>Yibu74ER=amjF5!#oodNYjn&nVwmqgFv@59$6W=O!rQTxiF;_#=zHI`^2 zRLJOnRZ8yWW((my1&?QbI^_?UQN2@Nk}g%o#O<(frtOd0gf$5BpSqu0Z0W+{zQ;$y z39Ko{_l~p1)L(47Q2j7#9vs;k-84RmrdjLWc|5*c=RDEA0e!NkSi~?;d85YJu}e1V zwY9Nno!zt(y$RC!z{POeLU(^_z-gQh!n3??BXUor)RY`mHL{C)fV&025wl?b68*b{ z%!=F1SAMsdqQ=*jcVC37re33vxvfq?PPv7AG1fiORhM10LB`W$0t#_$Z9&8$v-mFn zD_iLHcceFTnH4CRvhP&Vl`Xqq%;GT#Lis8)k>;m2Iz zUF*x79nKt`teWCKk&ABhLW>h*&mI)l<$u=}I00oN3i!QQG>Ul(iu)J^rx+g;8j zBsUe5YGBmS>iFE>;+U;oMSlwPTZb7L3vrPc=V7g19Peq~ez@}DTtAEFzj8*@L^ShmAv!H#EmByi8IT!Z( z(B__-qvj<|*Vgep7+Qk!`p@OTrWVw>2#kDM7UGrc8*;%55~psu9+Y^8e^*uZJ!lK*zGWnH`CGF54L`}dy*ZN^b5zBaWr!d&f4 z*zMR8s0{@P$Tg@??mw%OojkO;t2}GsJ<->t#|k5oPc<>Ll^r25ao`L$;2QCMJd!<> zmN*j+x5t+hF1AfaVmtGaTdH&G_g(v;&mgiiC*LcX?ASaX%)JEpLxrmLq8bPR~soj^wV%QE~O2RNURwEONlk_gXC{rv$HiMC${Uh>>3rEU6+nSr* zXlgk$(x^qQ^<8JR6;V3)*-6ftbi6Ccx)>g`Tjb}9H=lSyy|Zqd+#M^&(m(mAv*Y0^ zT{>q3{ZidBj!Q+ZoxGX_pEh;;R?{-IX1zyX`CV;|PgtC+^|kNEt-2&XkdIt$PAf!= zeg)s3lkH!%bT%I%u2)IQw>>NzMo}d5`J(1d%=gfRn-Fjbk^9uDPbCc4ah~GHJJIM- zpJ>qcy5o*RvR0nawlX-i9-Xef#c;(d>37bc+n|^6d_|;?UUTLIxF#l8Z&&4 z-m383(eyc7wvYH=(Vmq&sns+;d!kabVQ5cdyCf_hb6INJKL1nt-k(S@;8ey&A5o_54?DYhVN0%lK{2q~Mo;Q--Cx z>b80^mAp5Lmp{gar@q>`LLA?%Lar>F5P?-GzBokA=Cwnk(}9)4n>`qz(f<2Nht2xv zg-w?0_4MZ(&1Bs3I$@>!z+i`34?KE;Y@=y_%As+qYPI8|MeQA#@c>Xz4qzpA(C6{C z8dpOa7?cs!PC!Ss%It;5YGv_DTo&H{c6!C34QpFhsmRV_Z?Uuld8~%*_Zl-xac_io=Ot&w!+=w0L#+oiFZR>rBr6V(1vI1N-GEQA9!JWhEQzvK5#PL3-uF4!f zO>gGZTS2De{F{mi!Ic^qtltQ;6;9l)`U&ZZV({WcFl&5$w!o>|K7_Vc($V{=AAA<1 zV%MTqte*3zVoY`1(ly-QZIUaY&P1mzm_;?|q>cS^rui?NIt!Y|zT;5v#w8;1=(h9j zd`Wc4*oA`qkGkKsQ;Tr%Kh<^Ruq-yf4`PV-ELm=;bc==p@WV7AW1LIkSqpZP)uV6t zIg&-ElmWj-L%ix*i9h$MKehj5T3idre-dYGt$QX@r8{5!HhoE=nsP%pSI5I6PQO|o zki#~x`R$k7bdSI4g6CCeoGHLWoI;2MqQKhV)G1Qy&oDtC%~^!wVO*z&Ld`XgN4$|d zWSWv@jipaHw=dmxjeea@SF6#uT7Y6{uwujhvP(9uT}0c$ZBjoLfhWx>an?5DpW>hmG_3Sd77Z(z#iAMYsbZ*UTf1?BY~A*TsNS~h}-WN%_E z^`J2CFV~p){)n?_=K4|0jl@N1FQu!B)Fxj7&)f-{MJ8?_DhE*8oJ*WV{)c;dxDsM| zO>!-5Pz1AiQEo|0Z}QwHs8MRbMJ_X=ZsHdmg58^`AtiP1GH+x_l4Or}*_|lHprBnG z3lq+)JRZc?p1I33o|(3M{PD|w<+#-^@+YrCuX!^XWiXV^C>F1UIlA~Be_epTM9GKu zOF7b7|GY)#*ko80PCPV3sr?n`F|+-(I3VMPk7X6SaJ0|ztwqF=)au7$$X}H+>Xw3; z9#xDa7i<jpMP{d2_*GrZ+67X9Tw z9&rH%qu#~A{7g64mQ9CQ(dB{b0vKN6BDxIiUt|V89#<$3A4o{XN>phy)zPOzy^r3M zzP@di;IaCC;E=l$duyqLlx6b+|DD|~aqrLUy-6mDIn{OHiV#llf9Dx2o;{H~2n78T5d&xKLwB@3S6II<%!PF0H@yYuT5chcUXo8rGb_EAebx;*~r za+G;~xfA#8hHb_pA_zk7G#NKMYhJ9*%q(%JS)b%8m=?f)cD~2Fo@kl^`+r5cVmXY< zo{v$-0!yu+B*CJ3ffFLl#J9D*r7+B|^25K6nBt&G3S-4$Y*aj}2DcxGJr9Y?0l#b- z5`$Z$;A9}h7wagt{0DD=D=FL?apU`PIC0xwWal>nYIMON zSSR?|Ed5M9QG@@!eL5HyApne1`9^(B787Vgr^BUJ2m<(YZ$1s{dI(Ui6sk{j*tY{W z(tTHGLQ67eIDLWy9(Lary4oA)%#NH%qTqJF5Vqw>Pkf*_iXFBbPjKG2{4|$fm=ids z_Kd~BaG5r83c`@6R|Uy(47QnO21RO-uxU9&1}748INo^5gbaUkXHz-dJ(-Er^vq*? z09{t?W>MtmlKK*7Px&$xDJBScCR!ATYgv$*@I)89uX*~JiNDF_VOZfI8&H!dL|Ug2`eQ_;#^n=h zWI}#+cbhdaW~cOaYbu!>P=~3ryg+>@rw-fmcoSElBM~Baf#`n3-u`fFaY!2`o0eY% zKUF>w^U}u5+BmGB>mpuK@2(pzMq9&VV*hG#)a4Q;_o_u5b^FfMF9cZ-ynLZ8jYl3h z`!T7~bw^LkWMnIY3MP{UWpB2!SPcf%?QFRUrYK+mk$E(GcRETMntV-vwt>Kn zObb!B_ePMJvhg7uRt=nqYg5|`B%ULHcWeU|o((&Fd>hHoOeHK#%kZ=3~#5rH2!V!N{)9vzW3`tZpup>`$$Z_75aPQ z7ijYF85~Dq-)P=pA~Etj^T4Xt*$0$Hs-1!ECL^RkbyTFkj89eQyDAT&W0ZdJk?xgR=adH7LMIlJ<;NCeD>bb=Ow`_R>jW&)4kFxxtWyy^o?|xNBC>B zLAz1_F1k+|W+o#~+2gTrggTC0wDnCrVotpQM)V|no7$(JjGw-?cEYrhM_KM5o=X|x z5&x^S%I87SO;sLEa7EAIDmqXeLyu}X6z|UkzYCXPp@ze8YOoC|s(p(x6nnnW=I{V3 zc*kqj;j9t1Rj>ZnsUlDe%PT4nX$#$`9u51EHvPH;BQz+VliLb3k=$|0Ax=B(&x4=W zY2hox(T=IE(p@IP+*|^qrh*jGodDf+LiGVIG>sEh1=qCzBxL}Ul>g&3#ghonXn_v~ z!d+Zod&hm$3VfY@Cq3Wqm%%7!zckF-`7KK5?N<3pqD-Kr@e=w(2fkul6cXTA&wr?) zsT7){{W8P_(`kI!Dp&e;LgB~HcTlVP3a5(8c1`uV|2vkyCS!Uo0^UZ5CW$mcn>A|2 z>l=lX*3ueRzwlFYuDY%6v3>mbnVO_&khz(Kgxg-Do!g>*tiioy<=3zM;N0z(=(jxq z0WkNua!LP8wRL`v!cH-A0M`ZrwBY2>WH23}ZX)VQKgiXu8yqtGSnfXb$VmyWGo!a{ z?A(~Tgj3w|^cktOkxyHiAc6&mv%1MW zO3cq`Ieyi4mTz+Vn)?8R&<*q(B5xHbi0+&_T9B?dY(5;5-q$V zg_`?mF`3QA@lbuZcs&bV^V47D%bt~3EUSZ`Og7B)HL`vE{XY9V;d_wax7q-~qvBab zdTu!m@(PA2HkYsb@cwO9NV(}aRvR6SE(|LFCj5_J;(Pq*oS2Z8g;WR6O7<;|OWKD5 z&BLk^3IOkLk6Xhi(ajn24zQ|A_bT<3FHL;u@Y3Lb#%VKV-4ADk60G2B_XI!T`HUGg z(9<)O&X+&+DaZ&yAYvD)I!(ZFnTj}p=HI`|6AWK8TQ0h2lt+P21A#-&Wo)0%@irvy zk3sxHj!l3Y`bX6$u>TLxUSzo6Y`Vz0|UOy?HjtJ%I^P#!* zK+5cpVqxdW5IZ=JbkTa27Bkrvy7`mbHp5Zf@p9M`4$h5s(wX zf2z*)IS{SpUzM7jZG-hqV}uT7`-EBoo!fbJH{nISbUCf+)Q`a(H^wsfZup6WtE1m1 z8+_^o{XRWpyEiOK#4$i#p)T3fvp@Y!+v+E0=VKLmRf2&*E1lXCXhv;4B?Zobv+T{O-ObZDPAQ@ zHvT>*-1y`V@wYN5x{j?Pxsn#HyTssN)`5+c)Eri{ShK@s^QQl4_NE#%2^q`^9;`n* zO1N%H$x<6n&C(hgI?LWv>ELDO9L(KR87qNn#3s1}&+Wxwf67tC^tn_XUS4eJT)l)| z&j0NrG=F7oXlPq6tbbG1Km(ean`;@I>W_JT(0?{Cotd)yK@w}j zVm_K=5jt?OBnmz4K#<5Dt2__}8VGqFl2{g5JfX9dH)sB?(--CqrdFr~REPukK1a}X zKMc#jP{%sX&$WTl94X#vZtZawdahjH&}Cv9wC0wpj!y6 zo;$97Dg6FUT+((Jt6_i2a48P#+lp8Ys&ZRsUb#cbf}MFSEZijH)CibIgVg^~e_@!8 zZPgOaIst_^YALO(+XQpi5x!8PolTQ1@*W*7w~Sc7&iLeH%@w{Ht+hw;;)`c3{Wz6j zT?8@hU7_@=u=LgS>B$nK?d2bU0|r3QZU<4{knChT%g}cpq(K)0*y%R|i0afkvlX zpk5>*&?I=9BTc6T(z+mo(}$i&9yQIhv|2jw0vCo6uNbaBb6Y~qUeIzYvQa;(EGZeV zxc!?t@7B0t-RdXfx?kAW&m`krP^28Dr`T4B3 z+i<&Vqbb8-tzgb6&~Iztt}5BDqjwd(yM&mE3m$-;$y(ZM#VuQl!diM3c>=z+UsTCB zMFS-cYDvJ82IWQ$l(I-;ze(LC#06~Cp_O6PhQtK2a(2m31FvMS&%8sk`c+%kpzjEI zAzJ9+C`2k{`=6l9v4&dGbm)Mv5OSgq@~<61e!}efTUrc#N4!Sy7y%q}rPIe|nj{FVMvZnriiaS99=-yNWIh_0m}GsrC0Z9A3CgnszU948<4C_9%!uEa6) zYEO6{k$n{0y5ia6f1qC#Tx5P96vt)>ZH@)8u(}R?!tdQUjgAaDh#$QsgfPO z42zqr`{Tr~D=_^EvCuyKNYu<3c6YT@-f)m6?Rg~Xa}jeAND28bh-`HqoiP^{)h`{b3(UPyZVJ?>*9K$G*n+ zsg7ifI&zRg;MFBgb#$qff?6h(>gy7Ga?J%Emm3MJjicg1o3U*PEOlAyA+u;Udj^-r z!D8&6g0p4gVz4kh!vX$%u|;<}C1MklZL7HgmXVfLn>omWP%OVxRj1Pe@|jZ;pE`6a zv;->SWIvpCWS!d)u4;~?*LY;a@+n;lRa(Ai>>i@Yb^7&}bIH10qn6l{r)Z4k z_X1=`Ng}HQ%BCC+YOl4|U%r?uam2}nM5JxhO>+mpk5|3H6u}CDDVjzJ%EFl@1O1F@ z{c2lkf;q9QNDT~&7j1T-?NO(CO=|M>RI`JG@RGZe>5Hz87L#H)$$W#`Qh9Up0zL46 zzxALN2B~+^g2)2*E$0)9Ts{gm@b59$dE~8bv0~@s-qw;Vb}4|_<;wYJg*6Ne&7DQT zmpvDQRZ^}FZ5Koa5akcIi-t>-9l`DOj;#SeV7<%YbJH=M-SGxOI}6K&_TMt6MZBi^ z-Vfu$GBy?G&kPJ2yT|lny~N`own~VGeVj3^)(LvcC8tJM)~SJ_4lhb))I z73jj@&B`SLWC&iRs1R3J!rHXw-@ARFGH(+l> zM-F96eqrSC^OSjGNo5%$pF!%gGi4@md|mWGKK!#vP^pLb8bUUruvsjcER(PcJ z`zL3M`OS0SumKg9$Vm0#@z$f*+4Uacpi~65alNtNp7k1p<-bxqLyXKKo5OX>%E@$< zRbLK$y!f(4B={k;WgN{>S1A5H-FGW+O!@xYmGMtEMDn#TSo73uw2e0wp3(dL*ddr= zgvi6wk3rs(&DzJQ+BL)3C-k&^VdlB_Rs!Z@bLeuL)i0>cwGHaL>TWvZ><1y@Syez0 z={<<}400d-D2*MelIr*U8T3=W)}_lsFE>eRb^e5--9&GL5)ua|ct9Zdv9f^6`^|VqLU&6R^yb{OtFz^tdPm^VqF}tO=5} z#4)0Qp!b4o5BiQVssjyzTpMg`PACR!#!4ho<5c3_Nvq-}DW``OU+Lp}qZJn@-0 z`$;#$$j;?1o$zZzffr!X3lTa_IW1LyJ91*SLpIlAQCURG;1f z_Gd?Q!yhTIe{fJ6^L)HU3$#b(cd_8G@XXN6+9PN>^WeFFf5+u23IVG`eRY%C_>kja z*3Wj{$>yAkK#%$(hWx?X-|s4VdfoTUFMc1=Ck==#`Jz}4aH`bPOOm|LAqTtr4Ga0W zqVtD)@}|eI#>FG^yOwo7KQD1Y0GeR$Z=L zE-Tt;RLMChZ%;25%K^pI&BAx8s66AONY!t=CXGJDAtL9@Wev`4R&PrG^yr!mY6$`xmq@8haZ=zjz5sp zp1gXR_dKln&6R->Pnc8+W+CHo;hjFIg!c9PoC=kEL*Utkk4k39d@Swqem6nqMpK)n z0hZXMK+X2~#YIyf(02H>v0kL~hGQ$}AYH++7o%8W>^tD<7UK<{!=(^M6`(cJ8{m>_ zY`3kMJDEcUS!~o(UVGM4^*#e9Np`@y)L7&i^Xr8sSMS-#<_E)pO;M$1+zH#3J!!|% zUwNTE3pB0UJzxhnx9EdR*llrl`{P9*43*k&Q770xlNDD;HSDFR5G~_^SoY?v7Q{Xj zRYtAOt+>s&q!ef6iMidtLUtVq?EJcGx=T-gK_% z0_<`@q~4$5_vu-Bq_*#yv;yHEzZFzZ&iPdDGrQC;{OnZP4z;!0UZ;vu6zmYxQ~r;(OlRktpYwPa4ww&HSt`YQ4pSxVb1zW z9Ee&NaaiSImMKlyqrnEpEvHjrOS+LDoHs$t%4zJO#3Tx`PbkVIHl!qx_~X@z zoSI4Oz?e+P^hI^DLOYrA9LZ5;rr~~$GydvgN>#)3Sjb1Ap6KAXdP2cs<^5)VNdu}P zQZK8;%D|r62?kRJKmk3b8eCjSmC}n()NGhXo;6UKX(0`p;M|d8+if+@ct*%v`P1jC zM62ha9^>i7E!(;^#1qU->817dEsk`wOsd!^CB8X+Z;5VvVhqBD`&qUwoAXH?Ew@uG$pM2+ua} zil7ee@5*(HA$q*Hg>_#K7!#WHxhy?aWT9hsTm5PW*}Q>8E2piLE^db3dUO0xe`P~@ zLuv;$LC}$G*t4{{nwEe0Q45+F+#gFEy)d0K^xOaT9c{Ocosa!0&YhYM)dwleu*2bh zN&3rQ6R###J2}!}q>7h>w$ibEYZE0?5cA=&y7DBc z8A6yxaI2XoxD_=3BK66w)Ew7t28<5vnUqakp|ZYvz5);;80YxEAh0JOmMM=X+SFMN zMlvxFq5}dw+?Kz^FvKTw1Z9>bg&3MW8knScR}DuQB$jv?J&bX34u4p9|58xKlfial zc2!Cr2@;!mq~3#;62xmdP46BVcKA|Lj?b>0k5eVejMH(_f3!pdyADI|H+nQcX1Qu* zxIbbA8P{rY%_+tNS`_2dLCTgc7!K-+qW3CPPw1w5Dq~i}_^X3_85msa9ApusWdR2~ zs4jEKilRzYll{8nG(|PSfXg45uDQ}Ht5dq0^GJa7pw8iS(ILXCmu($!Z<1wD-yJNNz}u+u%F;d&vw$zMVCK?_ClgL~ zbzyH@Xyq`Wym^)vUj)q6cr8*-eB}qZiiF+Z*NXF@oiWfpAr*ovsqZ*5v_Fan3zj+J zSXpG*G0$!%_)Bz(3G-NE*k+ilG1mKl1WlR(->&K8ZW<7#BYTF6ixG*ne+U*?n*E=lQ1V$W9F8X=h%P;x= zjpsIQ@2XqgWhi|!;?Rs(Y*WFQ*D3u_Uty_JCH*6DTk~&3HaS_xze~IJoH$0_!$s}J z)d3OMg@F?ig=vMsm}k}Z)ZE4Dc74Ht9~1P=`I?}Ox-@npi7H7Lzd|;+?(mA?T?q@H zFastZbL-ml$CP*hd_#maX>yNY^%2tMtgcA6j#H!kq}dC&fXp%b-t-NUw;@IGRPogl zAx86l_FQ0~LCZr$U~qDG?Y{7$gdzTY=VW+XkrQ}b-1D&kf3SO&7rdLLS8rjG z6YoyRj}@d+Ro;vd+;6YzE7NpY4*39tlssn`unuqs@7ZG+c+=bYn(O#SfEg)lajjsL z%=&%n?6#tm-+JXGB-4eH$Pe$w{@~l-d2TVIfau{(WF%YY7ApJc%%18Qarq+nO9$(K6WwF3 zKn%_Im?C4pw?PLFzBjDhiec7F(tyk=Ow=59xauzHTC6D+G#6dr2K7q>4NlJJ;u$ z{c-Qet;YD3>@$<5btMwZb)Cl5I?YL6Grk$s%@72%L!lPXevT-)08`UUI;nsO6H`+} zXBd`dC9_(Jk&;r>{fQ?tp-PUUv0k5ggGa$v3oC03jqNofy64~VgS50JBJD7xyd7SRvj_Kd@f1e-Xsu)!15`A@*&vw!dT5>$5m`0qe>OLab zLNA}h)4ul?UjDebx-N)>;|0l=yy48LfsbXfeM{~XUjnF-dgkzZ=VF-K)PYNZaLf z&8Eo-Yu0iZ10PirSdGC2-&-V{8Y^H7VP;{qsT_gtQO`8Xr|;Go?z(2njcu12+#sA) zZBtz+CE1&IBLpm~^%pV(k#s@Pb{gnm0Z6F^FjvoEn%@UKx} zV3{f|Ck3d!ib|1eCsKJ1K^J>O8|EHr{;f9Sb5kUL+NM5tv&A<)5llwiBj0>T2r#Xq zkuOovX5F?WYH{v> z?kFG%q`um39GY`p?l6eDs=tV~yzQoW{v0u1W2;M5`H))he{FJSI)Dnw5jm)QSD^{_ zvD}DV8mGh1dF$iQXS%cGp2Zd?!x*CYMk?-)(wdteFj$If4K4PKW#B&XJ$%StKA_%@u7m^f|{y~y>^5(pS@H7M1i^NGR7N4ann9_;G=@aZf zLe9WlbLIvMuy*wKuBy|s`c>%;4Q>%NIvN@=F5|h#EV!7M1IGILbtkTjl|xQo@xLJQ zXRu`wx%<=9jswN@pWOeiGs&h#qtXd(Z$T%g0j7lRDSgI&7#AR;L04 zpKXlfYB-zb8*2!$ft!@popsB>C%`XB5?#~jrSG&_z7_&;5^?l?R*@{uzqYm(ZL`v> z@1Q3qsS*(Lq9=Bm;Ce#2A-@ib$*>QM9#K1!Gavr!e&kaed9SLFyM)9?@9fLTE>Ur8 z`NL@km_N0@;x=g>tFWJE7?%lbpwm9emzFHI1iTZCx=t!595hpvWawu*K(cDyo=%US z*7y<<#dtfhuiX|-uZH2iXWEK+!Q_VXnNO4oLK^Yccktsz+47A{!A^c|(SeE*-iwyV zmal?^)NY?1DMm0w{WQA89bv{+VD_RKh2Yq$i4yVBBIC=Gt4WpAs#r6U^M@{YUC^}!>IsDi(UjBx;VI!Q~s!b{n;`kaa*B*H)ab z!awNZRw`A-x((@NjQYK7I=9S`x4Ml&GPJ`D#&y{>f~x9PyUIo0_&iLp*6FxJG@8TA z3>l#V;Okwu(Z)x`d~+W~6OT}q^Ct-d7$v8%$yu71@QIQ?UE+b~q8Hq@&x9`mXJqx_ z0&ugSxsP&Y}f zXQ49Cbf%1psG9N0GvCp>qL~g#bFBG-KNgBn{+x#9aYfTn$K=`v#P5VxA=x;D2(huX ziC=RwGvaI|$|JK3K|74NJNS;QvRjyANm9WcD=jl%@B1%gthZtz|F(Jm^-E5M699f@ z`cWk+ft`1>N+HW;AAVM^M4Nl(U~`J`3ZMkHUVH4ogrQe2YihqbJeSSQyI(@&l;9+a z*xyaL_D5kv@GQYij55SGqe2;s8?vugSdo(oK>wy55q{TYY4qTJ7!Pw9y?Y#&C)LXK=D=_gM#BP`3$u1?x+g9HCz0X)2L zHqr*fm6j~$n&vZ>QXXzOo4F}gx8s%}T^0o9QdjOLL+L|YZ-^yoc9Jb+{W0e-KYinb zI;C#ikE(J(Jev8Xv5;FEWxP3B9Ra1{=tq4MlbCgkfnz_vp788yVJqSMlxio4*$S;@ zDZ^M>rlUGFa~_-K@r0`vQfHnVU}%NKp$5cJ^jxFsctUZi6E z{&3hY9qNC``h9WV@;(T-yg?7QLT7o8eW3C4^Ic$-dEo9B$)QYFPbq+dY8HR7p|=sd zbsdr+%gDSBC6#zn4mOK@68{$HFL783tqjkLqHe-SO?G-^S^eEna2=%CncDLvmZ_v_;u8rbYzsFn2=@tm9SFmp6WT7Rp&a%+qK09-x$4)vFqpPF~?wXm!-w zyT_NxLCg#TER z;3{>{mCoBwPL>hfEkgc!c}O4`?qeq_p4x+q{v!DrPkn+N+(L%@je~`$W#ma-F!lw- zL`Zm%PdLKQ!@m`UDTOr>)ZmFn0WX>0QtMK&2EeT~S&1J*+CYo7&%P6Ii9CM&knk7( zC2$JzemLcNeJGieXu#t(VN7h}G4OiW(%llhXSh=CTzGjdi=LLPSL1E}gJfa2S6f}I zYTl-~4@8cNF8R)xJ5+_7m$@Ymg&YB4`*7Z-HB8(c$Aebvou{O|j}p*jVxLt3ZztG*QcaExO5R$kjf)}%*!kcz<~2&M#F?;#uath4 zx>ct{s8#Iu@=LaXtLWzIXEgnMv19n&s{;V+9q-o#=3bKg?v=(UnqHKx$Dfe;393F0 zX`W5r#Qizh4#<1v6vnScwDi)L-U`~`v7|6tir$DJq%c{kotdq5Y<7H=SLPrYFV_0u zEna9pw551#$&3?u)lzIfNl8j#qJeLJvu@OI9Ws_{s89OId2n@?{Jn3E00@d9#7f25 zp%yri^Fy)ZAi-2fhZ&9@-q$moyhy#aSUYe`xs3cN*MR%|Gx12KP6=Y9{=LMFC~W9) zH>c3mCt9vbJ?#^cXuOlbh5Hx-TJ8%(Bg|bZPS1MluEx_HfQ zJ+$TBmgT{u62k-cZ%0AlTI>aHmC#}9ZgJ+VNx{30{mRx`(Q{h?t!`@b|Fel724Gb& zL=!Z`?$RCY157Wz2fkx0)i4H>t9xT7(FC`QWg+>8|^V3-rqkd5ASSj>Ph9LXi``g2tg-GS&(%&JMZLE&O1)U-!}@PwiqY z_V&2?%S5aj-XPRG_JMjZ6cJ17;uGnpB`XeA)iIV}he{mS%5E(N$oj-d5|hg*%B^Eb zTigYk{TTcH{vk?M>71Ft*UmU{94yz;|El;_=Y^3jrJhIm2QF?^PvZB4s`x^1ToU@a zhePAbg|AcnT()0E+@Wa4wFXM|9)3U1oN8vHM!|dGy~}%_3Oy_84>^aS+F=mnnB;gB z_&A)QZbQIufGg+wf#3l4otpOu`oVnOK5O2`Z!9~CoiTU^ZS9~CBu!_`==_V+D&7^ zhgk7Hgu$1sFgFsZ<521IQmykeI3b0Vy`3NWd~OMR2L~^1rCPd=16Pq|WcR;c#RaJQ zTvQ${H%}inZ4k?Xr|5uJZaCL+^YMM6d#rT{h$l)qnjWGnvLEz7sB}OuE)}Mp%jPF{ z#752zu(2oPvU`lblgxX$zH3^&)+fg=qio1XYMdAIDfZLDZ<=P{jw^NP`6N-@xpt#a zzML*(aR0B8t-=jJ*jX>Et4>cqKL3k%d#x(hlke2!1@K1G{8Qq?RhIoP`ln;;gcQjw8*PX)NJo6HIsp|{4>7%riD#TIR z>+eqBvUtL&lBK5Ol?~g(%}Pr3pdA9;Oy`PRWRSscowR@%mcW@Zi}&EGDDY0kWnq@7 zdvl-0W)iHfbYe}aR5IkBCbu^P-;^*`{a09HP2Iw?e*N7NN3@Hrf^?g=0jk{|-D=`W zmQ>VtdKpq`M~bL#gI-S}uU2O2>T#yr{TJU?_2 zb4Xmt)or{Mq0Z^U4EO%LLseHDxhWoF-UX1@-brf$@0-GEJ%Tr$Ukn*Sr=Al$hFh!2 z1r$ecVeAhIcZz>{e}D5}!L4ttDIXR@^ANl*rpROZ_MFDQ?kv=w)WlC{zK;FBZz>E? zZ@LshN+Nl)a3ar41J6Sb8;AMuYqoNX5#UqOLdUoE&O|D--{fu5baB;nIct9(QdqLa zTfADIA_(O6NE+~N%QXCb)^3tBAkS@Gb+#%0*G^KMiuvLOD{p(47FWAl4R@GI8dd=A z)`h=$h*OZWgkeyPFVo1Q9Zyj8yzLVJkKa8~=Y&?Z!Z=E{AcE#OP@Q?s1*M789Ddx# z&Z!lsN2)2)IzqNfNPH4RY#&Md0HayX`eT;$Qo|@5*RI}7#@3X%|ERML%jfghizfm^ zal4KclkOY!bVvJ@!dj+mo)nkuN1*W|j5ixQ2=Vd2*vpp>?hleIJNp89+0MIMRrXxe z{Y-+5gfA9fG6!af%$S?c5O%q}6Z{{d-hn-{C0ZAaZQJPBww-jGj@7Yk+crA3ZQHiK z*tTxgIeVY`7wVa_YK)gNybIfJ%Ps4s0`Gsc8qE~JPUMsS2R31xq5AC>6$jq8^vgVy z`hXL?=5zsuY__UuHkHSoaQr0&trBpIC;n|UR24lVe1D(y7r@0_0($G@%| zdLc|A6y--Jxc(=!X6W5Nx$F<+K7bh(GDsKeI-|>XzJsmt$K#jV>d>o(;%0KS@1SMD zj&zDm*_E18o`2rQKeg3#aT6-j>I>Kkv6gyZ_ngYP#rXe3fP{;kot$3u=AoVnV`X>L zweJL8K6eP+*S}74zsB~{K|6tW{d~yW!UH*NdL7?ca$jXR90lxl{kpzlzeas-?{huz z9%p>N?p*+b(2!r@p|0zw%KtwkBFhMgs*Hb>w`hTWjrGM@!z&t5bM!e$s2>lrDl*nR z{h`KguW)P>1LGGwxd90oC{orY6A09=b6zh0#z5f&^Drga16&S7-EAuD$g#w~a76kO zP(*NCp5ZY??0;#MaAkzQmu^Z{f9a_g3n;Z5McQsdfrGSW-lLBw>;}`rzNkRlz_>f* zrPpXLl(_0%+Mi8TSJhHbCN|h zt^@UIQ%)P%rNf8-Sd=MAig$nQ>R%<+h@y$?^QNpD<|3XlExO_vy^B$ywU-VvB|u#&wG)-=0%BTO2V+vNW>B&B7s=h7fm;gx1`y^UX*pUZ%N$ zenX$EK}o%Oc!~tp+IC z8;gKRQ9)Z&mfeCk5K@$+zcxx)oje8_jEY07iPr}orSJRU=0!k_kXFf1r8DZ{-kQ+7 z@_T;Oz^v6uUqPY9S(9Q8W5B^jlYJvD(EkLCA7L@1t3f$uy8Wwl)SjTxcd4BOO*Xsb z3!iFC^(H0{!Qeu@Php1G#YT*T!dTYlftVzMSphH1CkdzujVJt2F*Fi^6UN>{S??$Q zUCqaHa?OAT$D`}@id2+5$h8!~0RHe`xiX3)s(_ey7QB$Hy$2O{F@9u z6S5nRwPIx?+5djH4F&zH(I=%|z(bU~)i%_+=Nn1CElR{g5I$knXnN0?p`o{vdH(5xHe zi9*Mv;ARKI(^+Csj$2vMvGA==?_|-B zmO*T%r?$5aJubxx_2nXIZ+=$W{*dUozUqV=l)!Bu%W>&Eub8yy0%s*d0)_NY1bheE zOS5Syvz1tUo+F&6La!diNP&OEh%J%4CVOC6Lxr(&{~deUGg@yatK{MRzzJyiMA7SM zed1;Iv|BIP{?OKn+Z^uw_&@Sl9@e>}lIdrfL51i>%cUmH80qcWd!M+73?Tj-XpujQ zblF=7>(2Y)$laTg<7$i(SLd`LQLH&@dGuo-UH_-J?Pz`lvv- zv|LIXbfTyy2^X0;O$F8dVwMrRu+g;MMGDZP1$qVuQ5e&3FpM5w(t_Q`WG$c)K{+(? z0vi+V58FHAI0m7;MXbGRvLx$C>-4*tM$lntUVpY^SdKIU2=Xa4owjr3AqgbOG3iC# z8&}d6Xt|Qd)#)!r(kS}Pu9l#`rTIUV++J=0Sp>RlA)p^Y%f zzt0%g&VlUi%dL);6b8L3-Ici@byd~1tF4a9b<3Kj1qFdEND|_=9~~xK>}6UVrRR)2 z3MAwAm1~bBXZS|_-^i|~rW$7ndx5vP*bgyE==9{#UK8t|~o%%1e`K z*U{@;KcdoOm;sMA`@-Y|6o9o|T?={yQ()z%YLJ=iY<=O)-)P!lz2g*G#r1wma7V*} zB^0M&LU}0mQAq2UQn^O-yPB_6Q-->5iaak}BC-rtB%-DgSLpy7*xrVpZa2h^v~HL# z5CQ>7`Ir?G$tRyr!cLt3d%0n(_;WD5IPBC9Nr1TWQ#KDdjgdtxiD?Zn+WmRE3UM9U zd>?asZKo6bRK85`UXdSEerQepV6H?wXH52O&CO*UnA>v{c6)Fb@A)`nXxXson3~~WV_Q@3 zeN+BXzD`(;#Na>mf+DU4BJ!UcdS5x_I^IJH{;c}<0v*K!3^z$k90?R=Y83;UC)O8Y z|CdjWQU;=sgVUYO8X%Je&nl3_cF_bKfLu{$CUXq#qp!2MEUR38e`r*lXgbQgvI zq2)d7UiLU@x@fm{_Ny0_0r1PQ+~N!`&NBqQFam|Zc znDHQwKih}&=*o*^FsxgiN3ewdDOFuvy`zDHOz8&*;Vr_JH4ix`V(>20ahel*TB`9` z0(SYKmAe4wHMNlp-K+Qe1OoBQx3xthN|b20yIGAEOVmFsUbhM14^De|{dIK>$KsB% zn_FuYEZJ!wM7P?#CPQA05i*N`)lLKCsj?~C9C_m>=Q6@t zc7{Cmh^^LWADreprnR)Nx~Y_i!E5Tc>e_j_6e#sRUOyr~;wfH}03J^DRnC!Vs5!42 zO3VZ5tQFh>ES;lAzK7vk3g~ZTa>`m>jD7jgOPtr)!7YAd~24q;zfP}#rq&s-!oG6tT2gX9LfX4Mbd z@qGMSP_1b)N7nCw2xzW3z&!_Pxz@Rj2nb&jbRO02>u1b#k@O_cl{H{(MQ9Z_;%6pD z1V84guBd2W@O_c{M!?c>Gq;B7(Gg*OEr)a?0sJMY5c9W|nlUH-Key@LTn7OY6EtxgPb|c4uRA>1#XwMJ<(>y_h4dq@`7% zW4FD3VcPQ%eQYo8*x3(g0u=ZSue{>sDo?JxP84G9?4p@Rrm-OW)X2mMM$w{V_am6t|@DoDrtTJk9KY^8YTJ} zhV#d5I>gcwB`r_2o4RE0f+IC~U(9iGZNnnQ7LQbKTfD3i-i_E9Y-7EnATIl_kfRUm z8MhD}`yuq4+_5RJLmsXpu_60}mnp*67YgDo5T}Nbj{?Ha(%g>QVccj&t3oFUr_&za zr-s~DXW5fmy#N19e%vSwZ4b|*8hpG%`{x?z%vs0Yh2P53YkrQ@zf{F^n2q%6tist? z7kM}lA5&kL)*lXKFecJ1VvnFnBBe0yFX*@9m^FBu| zJ1&mp6dYz7o`nWG431Wf%}j^V{(j0Jmk?WcxJ2QBeA7*|n(XF%n!y17XBXGMkKN-< zOAT~A@4LSX@+yq_(2jlt*J;w8_7IT;8g@2)KprTN_(<6oObU=Y&;vpRlF*{ZyvGT) z)#O(Xu>^b;0$;bWm+-c3fuEl{-(8?C)de~)KiuKf(d~uIvF`lenYKy(k3GbV|7Z+` z9_bj;gg0K1|2JZ%fuhag4mL>^bf9draS9vG{M&{%2icozW672>pGizrDW*luQN}KF z-3t1X3=IFKaZLj@pM1x@$$^-jZe^za;LiHJ`3L=;__$5up(_$Tiya26NHrO6sET{v z3$dp4@oVGnRkxny#L4IECCtdO^G7LLBQ1(T6w5djo&Lgdg&_l$0^katKUl_2u;nM- zn~len3fHLj>)z-xcFo>ec{iJJXJlxgY7bWE7km`dcBTS!o)$AA48*KG#>)IWK=a{P z;QRH5DRo(K0*yl?bleYrajiH_Veln z0$}&2HcFsvmZ8}Hg#o!_fOUNkVjgYMql|KHx_3X(Xxkk~Re+vLf`Z1%fdHtneZTLk z7kf6>1}dpz(u>nUZn#droQvDqH9qk2fh>_dRnKuUt$#xF+8};ZnmzRep-)_4aQcYE zg@1mGA{CapM2Q!>Nwm*wW(deO5js-a#L#i&OJBD~VlwE{Rg|W@$iuZeE_`0OJJ-@8 zRnYfb#Dc<507Y=oNL_=bT~QkwcL;T`f0$B0yhFX8`Bvcg#MYnM3qVP2u|&dFx={mo82 zaLrx1f#1vH1!^ksi}+9tc;J|ld!7fv1fh5}7!>u8(Ahhyeb86Jjz2=b;Yc)}$WP$E zC=GQOMqiECA6;(UlBuqKT0Q8K{F4(;uMku?+PVs&|0(*UH)#t#o!7ueAPZ;da@LhN`YHRKLIIIYosrTWDMI{Wr)LL)Ui+uu?5(s)r^6-82gs!H%xqnX-+X8i zsP*}Bi1yz%d@6ncAx8PGFo&JEc6>x?hI)6Rbw6;1+GXG@~IQ`XJ(i;@%b z;QxF+Tr&PQ4xwwvN$4U6K)6jx9w;yJy)48N;<`_jYi3ix`)~K{F9(dmW?@JRSZMm) zNTHe*1xyZu3-KWP%6?ppUR!_EsF1oJyLZ-}Ag_|tKD8^#ENgYmkL0P*u=2W^H!Efb zH50=gyM8ti>$!*pu*G+kRtA-Qb(ETzd?2Th2m^oN>K_eq$mK@!ANd2YDhIUPJ9&?X z94&8I9L;rYw}9T&9d)QbN9Uf#VKEJkK7a}$;N$KVZ7jBQ+$_lR2&38iRolPoJVjV15b!vO6dI>o4n~m&+_j6I?8t~`fcA0Ot!6!`J4>Hv7&07C^m*G5YhxDL zdOkOLn)E&Zm^Nqfw9bG$J?ACWoa_7C?@k@ZDYpLun_gd^oYekD5F%{9Qq;xr1vpWP z{mrZ;{%y#GdUjy4m*_BUqQmfMz*&KW~-bC#Wb{W+5_U8rZ+Fd4sTZ z!UA0&n^Dhil1L*Iu8UO#l;g9EqG6{r;FC8Kkhfi$H-cUnS;P zuP+#wSz`KVGT`Ys52FkOJ9*aKYoF&IhoA* zTohfI5D@P6^8DlhhhwR6ukt%a(;K|X^X^~4Uor8N3*NWd|ItfXc|Zz2^`8)O?qaG< z&ICMGh(BNh6s#IE7}Ds7=F-ZBk!Oodb5m@`=<~-kw&A3xL?ck@cmWScTsP`^Bz+|_ zie2;uZI|y2R4i!^!jSkgn-0$M4=lJ2P%Y^|3TDclD&F3I^395zokK6nSCnVPFPS{; zDWsE$DmxMh@LW?DAez0>x_bDSOPzP%Ya36cLdW}8!a=geG0hcYiFW+>v|;<)^WfFg z)O3Xw|k9A<>^V^$i?h7K69R)f#pn_ zqz~8`$iIpAjt~yHluKD0_1^2RFJPLI8TadFRwrTWi|gcCUr{aZXa!uYnm7#l^S$?(PG7Ib z9c}MF-KL?ePd>yx#&Z75msMq@qqHmb=5d9>MGle)u}QkyqU03rrb`oIhz!LHOH0f= zs8izn#SQfe=AgNazWuL6+(c89JEHqpYF@(wh0|-Sh{a7)lT1=}>3R#v0V7L9@Y53b zi3Jjj{xmDR8D*?GjtJ3G(aT}@9Z#!yPXjh`!)8i^MxMVhOgf%;kIqMTdq-7`i%XHu zr&2(Giu8{-9UVC~nuooHaU zNi7=-z6oER*CfV)m8(<3>DpXFg#T%xAoJBgQD0h|VEHy85S|$bEGMWwrUb8YvMb~s z<{eWIOQa9(?(Zk#H>A+{O>DEciZp`n4-ZmXRyZkXNlh+)tJ}EVX4Z^~`q**RKH>Ae zv4fNGU^Ei5rnU2?_TS8@vw!pB17Fb^(tZ5Fh~Jp%=8ruAx7Evrx@v0FW9B{m)8Gm( zMsvYpM<+R3A)Z}g>)c2Le+jN&Dyqv=!oqBL)+(@k$p5MZv+$=!J~>5Bw==vKswF2u znl$uCSOdV7sr{v+BTiec=$n|R6cDYY+>@77k~>D``TwXVC8>>~6pX(e^gWQx>wga1 z3jdXsWNF6_vOB5U_L0gFi@amNPJeuJ@ja= z7t-f5lkM{gS!+W7l~*g{Qnu;BdDfl!tINJrKZ<=JV7|r2OeH-|!oa|5T|>3RWT5Cl zmOj-Li^^sZa9-ZgsJ%bAd1>-xK9g}I+H`dF?`=C9Q4YfU>by?p?p$$u(a<`n%A-Nf zxN6Z+ofx&!Cwfb2j;Sr%fts34-Kk286>(~%L0vV^O9uyZj*Bv%THv0*!wla5ZjIrO zYF{@m7l)G8FulA&+j@&L;cR*-G86`=hZ!dCfFO(+)v zor6seXRKpvlt&-0H_N$l>Jv6-&_(%$fp#>%5bUVp&a80rK1uVKaNYJJfg?o#QUvj!6cd8U&A@@x4 zWPZ*a0;Cwn#0{A5@VQ;Mg4_Ce5MUAUaPof*?rAbnysCReDhOZhvk&elg*(44LsXtDgYwy8sJVq0cNah|ExITbVJ zw5dImsjym!xx}u9&n;h(sS#3$s{P>9H{kqElK=@Lmw4WoM)iJr!0eh_ZdzUyaosj? z6=)wh!_6d%`JLMw-QD4SOI<+++?qiv>Jl>@=TmIrPiL7jD;m8tE0?AbH9>yCX>S#J ziH$SPt<~J9_?L`8l#)6`F@86%+*cBb{YPL}p{A*z-ZIluekb%J+ddzq{qh_tS6$wy z3PV6;sR^RrL07e{P-By-4FnP_?!U9s+O{8TzLuhpYkFHHF%Sn9YG2nb zPqow=q2EYgCG9$$g0)uF33irgWg^p%?8%v83Z(A~Wuvb%)p;R1-)xv-zuso(6a9<9 zpi9xZ9NMnD61v=61ac1QAp|mAaq&`(pJI;w`F-IHuAjX0{%yLYQyDn7wFN^G1{LN+ zN*tgp7zY7tE+nk^Td*CStWc!gQ>WIXtM2mKeR?Z+4z#bQr-rB2^ZLE}nC~{rl~f;(D7l9O$YlaU_M>sg`Ps07^N(3!JIvs zEpDjIIx-&lVWuTkN&^rO2qQR8F%rgt5KfDH8te)aM0Zhu^1XdwfP;{D?#~ja9$)b7 zMjGY4^uiSYFV-|~9zkYi737B+=pR{MiFASxl!@sP8yz zHh=H<`1nL{rXFKpU{HT=h?i~;?sg_Kw{km=GO-PVierq37KV4vGVI2?h2G zLdcQu(8i<3Z*KX*|Bgf4E@IW%h-{$+1p#mMr1>kS2B^B%*+1W`#7Cbjw?haAgn1>7 z&XO{vrwba+cT)UFK7x5vzM~4>OpRZxE43J5lYhO!79G$9pcHqL7VDqe^3=I6P*`nu z{`s_CtH=Hs;tzHhux6{c`$;Mpo#!krHoMU?+0F0F?rn^_lVyBG>0C)g$xP<>PpFvp z(nX5&DZQr>b?`#5iYQ6v^T03&IAeC$t48L78*Xkp(BsmQfRqc!f`U^A!=QTr@`7mD zRKxa;JyBwbZv!Vbj0ADSCx(JM31Qevdu064$N~OnPupaBLJr zGgi9;nf=*p;#O`@Fsavp$vu@L!|*+T`< zBom^g6`@sL%ZTy9rX@inyya-(ayrpkLW&t&Sg0XeTE2rk$yLaBc=Bv4%m|WMln~$~ zzr+cB8jg+5hoiB!zVPJ;b7yPad;!3krz>c-O%>i^&*HL?e?h4-<@#T zxGxTy`#G9~uYq-yr<*<68V;$8!jEj-_tUqXJ&utHe3`y?q5|r$ME)5j&!~xOKFpF_ z3TXE9B9v_eknfg_CA-PKC?NF|#*->10@D=%DnR}{pulUH#`HgJWTdKFsUj$%a#lnIem~;h&r_2b{Nr0VSYOJ7Q4g~lFqQ^h*!sVh+SXGBx zoVrwV>@i$(7IOX}`SvV}xjdfJK5u}nZecH3uO1oXcw*lsY$ zcib)aBK4*8ikoEhkv843{GP=0k?YI{@;hJMfNCUE5S1{e+i`lPiLLR*CKe*a66L}e(cylfAteTH_2@6 zG@1|TH@9RpV(@Utrdyv)XT?P%)GyY``lXL0^4qONDFp3)^LD3qgQIr8A#r2J)7m0B zO^xquy;ao~D&haw`g;$=Joolb{lW@iG`ft~)>rNaKWmBbKF&!Z)NA}>-+la<$)*1p zeLmZzSkr4)!<}(h_*E97iN#3@3?9u4uEJ0hJ9VQqBfe0f{jFFL(IIp!G>PL$?HCJ( ziBGP=e@NK3-z~WnWL8zTI{AEXKaHp&3+fv_;}3~K9{`7jIt_}SL2qm)FRAw+$yP*GQu?ZIXcgA`4=O6H z4QJ=AsRW7*VdUuxTx6xbbn5_hkzNl+Tn860vX!5J9;{G8*WcgQC8XZK+4fC@lC?Qk zdkdMSSB;0~;nMe#4Y_xCHGHeTH6zVy1^2*=glrp0o~f31EOBTj@J9V~(FXTS;yl|b zMwrB)4$rrt-WzkiI2i^Tay|W<`aNqTYZ2QR>aTIP=!W3(3aCS0wD#?JM)FIc4LBL( z`~JmAUT!qY@0t6IZ3PVH#M5c7HgUK!uPry9XW6bz_NcPPjiihRxNkQ07=l<^em z&}PDBkxfvAw3GS808Kn`t5jefqMHP)I%b9ija*)qlsYgLFpF~2nObooHWV^Hu_|1MQ1CL?mH9jJPL~S!)ub4ZR9?xqS5m3J+h;lpApm| zo12SUybPEhAL=54@TqQ8M{S9Tgdt}=?Hu6I?;L`Do&hKjP}{{@xVp3SYwE1!SHMoR zrqDBhzl2w83~p7sb23Ck)NA=uyE^p=FsT^wv9D6Mb2z6p7aKKMF9_c<=_Ezy=B}ev z6Ve58T(6|lR8pkY80Kw93SnCAlx(-%9+bq~O30@+Vlp(zuf6BTtjDmhm@Fa&^O8UH zL$D;suW14`o6$YD0n1XY7Auy0H?}HY3F_e6FwaP7UH;9VxsGHkG<55rRwPF(>i`RM#vh8zc5imLnHNWcu-M6Nlt|n{N>`pWEHy( zC#510D5_Q=F9j+i7voUP6iXnUj=BL7Qmd1BRkPKmuqY?Wd6vdfqFICH`n$@1`{%%~ z@;x#sW;FASDiHs9ep9r!lt$$uP?Ue*Loy6TnCIqO&zM9AK9>|e?29d++Y>aJ@^Q1; zL>eU|CYN^i_k{Y;l211Z{BoaN-rm*pN{VR==H+MJk8g9{iF9m6G617v0jcWXnmg zmg{GLw1jLNyb+m~SpSzf*jKXW_Hd#GYXAIH@E96>a}3RYcM^3EnX;E%?LFtX??$_o z?2nw=9Z8@FfEP?$C9jpyaOc9y-g2`48pPIJOOU!T1ZY1Yv6M4IzJ%^I%<f1K!?iC-+VO}!Wi%YmQmR#(3`X#-J(L>S61 zQ~s^ZfnMTDC_FUmJSI36j0hY*z>jloLi$T^;iwb6-LvgpP{z~;e`pc9nC$EHKvEpd z8$7O$6cW&o0DSB&sLyHP^N7w*Vo%^<%y+hI9to7Zh7K!#DYC;YcOzB7zS^Kq{!n^m zD?QcPYg&m*iHTT!?DVENixeXnNtuWHrO`yuc!;qrjSUiyvH7 zZ%0}B3!_HMUzad-&x6ko7UJ*T-zg+MZ5)hYkFW!m^&VRVu`I$@XXdlUZ;F=bh*ftB z$Zgx-goIw&a1E)!1N{RD6o_v#l?pr41U9Uvaa^iRkF-wY_C6d39A2xH*z&r7h+jK| zBfgoTh#pTO9ghn)=Xo5> zFYIsco3+T!W08JMbD`YLJEA9qhzZyd92G1F(0(I<8M_UE(H;+JJqj#l z1Xz4g62*0xj`CA_iuoiQpi&%m#ck9!I{LvEl?%h6Ul70gZ#UdST^KW9blAx7NRYp( z$#36rQOwY*I;wvhhc&8!3Axhe1SN|Qw`WPIKVqk6^o?y{QXFAW$C{~xE$RrLh2L|( zvgEPw*dw?JJmtWg7e_BmZAq@V$&_*sFGkBwafKQ?da%pi=d*XGn`Ye0s@#Y*h+L+k zVRS)*yi7G-D^lgd7cFN&S%fLT3?_vv7SPr_L^1~iJm~rRasHNx3=5TNvMAN4YDd;|jFS^xGh-!w$GafnfM%o30FjG{Kf0Wjf24 z6Bp<5U9JIHEXx}D}m+G|uF<>wNP?S1+TRY^aV&*@!1 zTu@|T!6Q~Ii{Jv%@+`ML1FWa-M{qJIcH>CD0aX+;48O*)dc3-lQqhz#udjH-Y6o`YD_A6`~%Hld8NNV>L3?c8od2cGr0(2PQ8RQvo_fhp2x|dG*k5_;0|i?;2T#7p?L zmNJ!VS3z93`5tW2wMy`qd0HwwdQ4d~?PU-IDB|z*Q8u`iIyl~9xuhr^M2Uh0ivb$S zBJCc?yg{@(!xDY3`U<;qiO3j(GIqqtY@9h`_RN;vEvNSfI6bd;r*rtloL>oNORGyS zm8oSkc%MJWC3F&Ww3+2E)`AI(<;m@B0wYw*?`*Jq)~UD&vvOln&a`A@KtKcMe0Gs8 z_`S01di<1qvwJ(G3hWtpu?!Fg^GM(!N|^}_E~0N~)b|HZ8(Mo^E;aZtou>w21H~Qa z!6QsUk&fj$9{Qg6Ac>~g6mq$O>1fOlb}i%pyeWJ1(s>Tn3|VU(a5>xXc5F}GhP*%E zlmT;tU4FDD276V`xMz&h^q=@0(>jv{CL9Kh-oEj`mGH_~P4vnd)m(;~jcyTb#4L`I zul~282F0N$Z&(v=*)INSSmi50nG)HbA0s&8FS4r-e@e~jIQ$r{T!ynzH6wG=JQ9X^ zkU?b1-f9_3d8fCQ+P}IM8ZLc3lQIWS12syvi`u))*>ngae;6L z{YmfaZ&ufUIj33951-vMoM#rw7=zcrywQ9MFWC_Kbd6!w8K@A6z@wMH=eBU*9tg*+ z&EKo_7+X6P`IEr1X5;sp_Uh3d8-&6cj_Qh%aM>S7Otd#=U(E(z&l8wn{Gpo6fR|Dt zbiv&zK|fp~4$=-`g4){p1;!0R0+*Q@At-6$mwp>P#c4;j@+;a3qAvEI^{^gu!Yyp7 z1!+0rG(Ps$O|hu|cYIyKCx2r9SQyVr8F;F2@E~W9Qn}Ch2UCy(9%?=bvco-!O%7i% zlucb?3`|McPLty}yDp$QazOoXGis*MsTFE}a3;L{>zffAOkDWF#L*V*1sYZPjd~r} zRw?>JjL~Pwbl$}Nh*HUk$rK45k{r%$s_tt<9*m6`+}jNmRBmuHP9;xv+H_XB24>+~ z*5}p?-jbA)Y&%5n+eTE4qv2YYF)zEG)+H~HwshHtau-AMIWwYY2hqRH0Ha#34MxON zPxixy3*cBQ%A_X|M4%lkrY^02*S~jzTw=EQZ<=7;Z>Ga_&vV$$)tNk= z`fQbX2^(bK<)=E~3BBmN+2i)b;1;oSKDZ5mFDfzw*q)!=?eFIf&1vZ$Kvi%IQ4OY65$`}Uur>l zQ?CM7_~FT~-^gX2MGxoymSTFr)2LSuU=En%n}~7PC}FD%wEN|Wyh)<&UY+_2=lT9~ zj@(&n^3vwW3?YQv6Dq`7A3zk|4LU0C2#KxFnOa7Rz(AKfF)fLor#MZpVu$BTuy z_V!!%xwk(!uvcBK%(LE;WQnp{raQf8|7#{d3B;qID_GD?NKGQ&fgf&hKb0ox^}dmd zHP^_WPzr8ONedio$tJw?=Deq|iqjQBt8(~&^973`dj|FSz^UCOl?$a-ZKh}rG@g1R z{BAiUo-~~$Ha!JI3%0tUOMLGw{VqyF)ol8L`(qP~^!E=8ZrRaJxdk@aHvG@? zo-ZMuJUSi#sp9VAV*O0!ZO^OR&rh|m#Y z+jABruoB04#9KeR&WSplq2$-0C`9H&Q(%;um)7)&D?Zyg(s?*nV&vTp9Yrp(Pg}EP zw{HUUhL97nrX1QEhk(GK*NMP0>{zvFNkqL^9zmaNxx0#;VTDGqLGei4l|;Df@E~X< zi!y@n@^^#^j_`rlB6+vd@D7n_7@%W0TOnm#I3&JrVh1+PY8|-rxE+el$EmyDsTMvM zqbtqm>tS@)GN7M?9m^na8PVRQUOuw!IN%2t#Pi@kYcmW&`%%w8%YtI}Dh*`iEt8Ln z%_lbAR^Wa=gDe?Y76HFuG%&-;W?v`Nn{8?Q8)tV5aU)-Mz=IKMl_1iG8=8S3baNCn z!{o#F^&lvbjYKkvh&^EUmuTiQ%zO_lNI-4H?cOWdsHqUOUvH+rU)KHNTOQd`jBxlM z&0GXVb5dg!jdVL=uaZc)F-T8Gier_8MvQHUw5_R z?9mMsRaOqWI%6gW13Q93Q3I4nh?oLNR>5Zy$mrfF6%bDYMGxkX4nRozcJ%Q1y-vSn z5*pM)ErtyNM2wW>Uz%0E@01|8<_6~Qlqe+A)4}>OW9h4GJ)Ebr)3FGncLximVMJAq z^di#KvZvOwtga3{m5rDyk2~(vkt#E*DZW3nNxyV3g88y;_d`HynMjGH6f<_;-%Pr_jL1V2(xX%|sb5}IfSxY5{r4$t z3^q*(cbDt*7`xtMiLwzEEy8WzydmBXB;mdbv87c?{S2pL(rVusI2SGagh2Vl9e(}N z*$S?qgqP4LrZlmJAL#q!v45FGpTu7QMPBh4c$gV(U|ha59KSI)m#l9Xp6eCCTCN~H zTdE3e)@e6-OR(l-btKs|SIzF_B9YN5L<9W3n9gQgH0OuO-eCyX7+Ep8xQlcu1dJh> zWVHUE$aoR)UxO!gK1l~ShFcLst<%iBl@I0|xI!gHeT$4xYCC-oAJsl1g)~$yuK+Rq zGR&Aq$G3qBGpZyyWjMm8+z?hiL{`gZewnslo9MH=ksv+E+EabSSj69}C1fVbcT((- z53>021nE&>j-8D~sdDkHFqb~3><*Hfr{TEn6hdbzxp2{TneuCAaOr+2c0>%J8(F!2t(WDw3Ks&5@?Qt=<@gBnaq~KCo?WW z#o^C(KM|?23E9xq8LEUYsmV$MTMg2=`c_s#bNY2|PD^h!TFsD`zwMD|dd`A&WjdIg zK%jk?MV&_NkRkO9ZQ@%HiHY+rd~swiyO3O+xy7e6pcY834I~bnFTSiHr?cRPF)uB5 zH>bJM_^oKHI=k!*&oM4KQNbOXS!vWC^*US!x1mL&4Hot!03XY_mWs=YZyFF!gpC8~ z?_4L#Lx|Q}MX^Vv+T-Z<2FFZEgMZ8F4}VXNfU_*;21$gkn|&yP6Y)n3n*1uN&%$l9 zTltESM2)e-$lBs~ zkkIcXt`8|zd%3rAzZuTxwfrtpWpFzG1kP>{10>q-quF2iUU0A$J})^OO6O@D3*8)N zr5bn%CetK)SsK3lV%~;RVmgXU`K4Nn7va{i|DM~@yHtYr;o$=tl-qZWi!czePpfo8 zJ7xTvQWj*XwQCGXgR21^!%84T+B$@EcNqGk+X(S^PiT?8C^kBgGbht%_W-)0Q1NHW~V}uhE;b-Th%x7?bJ)gJDuHa@m0n%}){7R)xTHMn zDt}`#7?qHZD~=FC5TRd~$s_f9Pp}ya+5LA)d?phEXzevivQ^HiOuakhL`AgPiV=kD zf;iQcH0jg%PjXFvBEQlOGnsi~Q5;!kB5ku$?o;l;dGBgJn0a{F=szPSsUy6>!p-n18#J#@ zED-HMZU_@Q*B0`45+f2rOF0y7Zt6Swa(2sL>FLIm%{DMS1zpHofC_(1Pt=!=fN)cY z;x9wb4^KJdWqJ*n94<1THFPOs_SYj#tBgypt#Z==c}Z9cC0vT)g#Xj_IBG& zUM&VK4x1@1dnn?lOw%VT7`K=<$O;@n#)cHzQ&gZv^Qi46qP;ZB2XG~*EGenhQtc&K zxI<>H`V+&&2@P7^hAg6QxqZ77goeZ0MrMn)zlvqCV!3_v0O#kFO!{-|tMhFt7H6O# zwgp$Li95YlNk>D5oI)@l z9W%?#=IXOvb^#Q>7!-?wmA3U!s350}4X#7_>~wiG$_;!s6{nM>fmiyG2{Nk|@7WN6 zD3L9h)4APlS)g3h!do#d<&SktBxODQ7}sBMI3pJ|45_8X=|PIv@6F0+Otnsty)+>7 zp1#0_rCjSy-pe|hLx_u(ffW&FceB-gDK1K_9p3>*&PupwqRA8R2-mEAY5ykFf8gM2 zC15amXc-`f#g8;ULxQfA4k@;i2^TCt31(aQpw+3vqt}Zj3uOmNrf%zv%y=o8aoj2< z>)&o;%*d25nl6;bVl_n9o@gH2G*_Ojw}*`S9wvkrz!4*a2zHMvBngMhjDX(}N?lLJ z5++MD5^_6S{V|`C^*NxA@eXP_odBs@I=DJ6JwBSn#3K><^YI|YyAyW^E4G?=(uhYD zWkZ%P+W~~k`ro-nofgFsD38atoHCeN`(o;vL7_J&6F1Lx3Nf0H6KXB);L5Xk@?5NK z@z%N!&YK?vi(=Rm%WUW>wVdI+dDsMZHbFYQWd{7@7i_W+MTSQXIb*iH91zqFw zte8!5Bpc;L#9hd)n?poWsysADtH>&|>p5NN+_L?g$}?r!ag&2%@XrQD#0ht#5S zp*K*z88DP|BQ2yNSPl45vDrPn8!#3x2ur#C2~~Jxf2mjC8PpaCVEQaBdmlH+?0Goh z()D5$Ee_h>Dt_FPTL|t_PBpxQt{*#F9KIZos5PGRXw2rpODC=IP^ipyA!%*(nwhRZ%e>)=0t_t8X=SK%h7?A03ll$oE z$QfyaoST9yi`q<_o;9a9 zQnS0K3vMli61~Gq31i6+xmm)wwbMJ!Aqi@Cz@Zi!)lJMKK#55R4XUNW?{iNn6@;vm z3PXS&;>tX}RzN*(ZN*4q0 z;LTTr5og{xFZ6+&8hI-*ff{#uyC zQKY&R)xZWBCx@s1^90p{9Y&2WuD?B-vN~S_LxEp{(-4R}PgRDgx-IMAoo@tSD^Ghf zdC;HqSe3D-P0EpL8o5vz9H#6GBWSQb!IE^t#V*TAvlkWrrhz2K^ml8(teIVZFndj4 zEDi~P`u_lAK%2jAZ(bL4nL|SaRL8`NzXEagMm&70=+av_aGUnJ@AsO4DbrgaJ@5ql z`t`uVUDue;9b=cx!6UTSkZ&|h)$nk(kc>RaKIPSr(@z*U9fV7K3Z;Wf&-lR2KwB@qCzpM z?R!{qCK|p)i(ub^spx8GgHuG-n^dg}kU*Evabg$j9~h1Xt;VDIyWY5U_(x3m`5Fp& zc~dH`A>8HU5>N8sta0L?{_x~G^H=_eo4oe5GQ{m$38+({31-h34RaDrq5>|u2V$$e zXIX#j*uRjBisBgm<0yPUQL&{7)fV~B%9h+oYh4_t^i-QPDFB`tjQE~Wl-&LxK`QaFj(KJl8aO$O952?$6<zY9{4eS7s`(5Ryg6oYJ`B4 zl%i{lyJ0ucqW5t4b!!ceLToG7im|adV~9HJMJX4~q*z)i8)d+?kOM|{XpQkw548chkD7+bJt>{t_9O1qt&4pT zNfJuR0|(I2V+MzM)<|u@axkR>rUKdOG;qI#s%tzXaKSo5Bk`$a1lle}{0KAIW0~~n4PLZgu3fpL zt~1C`fr%@;%rY^4^w;X1iwn&{=)K(7IPb2&N9=};SvJD}0zYmUi#8t?$MFr{W6%&k zoC+kdT)h>hES-Z6?Po(TGy&~~{;a~C$-KRK`GP7tm5f>=YDReEL}S#5Tt*gZBQ+%% z_LhbyW)JL7&EeYNycbZWY3DsV!(>FlIxB%;+ybt1&u~Q|_j-35&e=aNBPEe)gj89V z6i5E;kCR7{eVBw#del+o5^_H_L9^E5?~xK`6n8=kmTaG_%;ukuhJR;D^og8mU~H)v zgT{q9Z}1ng$tbvU>lT0W_%g^rVu~)cU%aWlKSteiar5MR;?VHXoKg=Seh56D_v~S& zXaC@<>TNBe#r3C4AYSI?1HGJ=bDaTUqsAp!W@7YiOd z4FL_YD=Oud^w|_eB3M+=B{GhZt`gQB#mZ6B!2=RIT~wmQ%lh9<+Veq(M8VhOTK(1* z%xkI3%Dxcs7-K~vJ#q@D8UKWsd&;ie*wljO28jYWgfu5nZYk;pf4`v91gsS@Gx z&m?uSzLlz!fun$i{d%4KJr@#hx@|hJbFe{7)IIbWxe(I_cci5467FU?V%Xdbbf&Zv zO}h1mrMoMlLc)k9X_EuIt)mbSZI2(;F2KIoZL#v0JWC=`zZog>`eH1Jik$2O1ksgn zOojuWMbW`nlC}W#ZDnmv30pQCjFS;{m!jS$l9iJq)x7T^?-H=#J8>l33sNowIG=R% zHDsioAa)x3n4CU&Ktw5w=P^WBJ;@{q!q^@yP`-2kKCDs|)yt9i zqKYjeIIg1&|IjC=Bk-z*0O>Q0>ehXlQDfvbPM*AlAld-Mra0i!0Ueaz1l1t<$lZLjdytNv z$c`@|lQ!f!g{)vLwBQ{QVoqjACqY!GRxuJ+1`Hdh(HxOYOg~jv2c^)jYisCJdcI^f zrG&=z&|&A3Rl(L+w_zS`UfDv&B-~tO=;$agCp8v~NCy<}isntK@<$9Ry#Fn>G%{wp z(qLgD@4*cY&m-#&y>DvA{^OxtHVEJF($yd3OkWL0mI^rLg!kx^HH2NJde~^e- zy*`Gm=LL*>rzUEZsY(L$dU$$dfI)QIVwOagNfhGM$=lZ@V|Wq7cT_EpS}hh3O7NgRwX&Zh18?X{_j6yMCeJH zF;If8pebcN!1+tpV9MC2X&EWFmqwuRp!OgWAcf`zaew@Vt|t@W?f)k#R%{GkmXk@w zfTWAZ_TV(_-Norz4oxGnsUeZhH4|{R>RAtQKy$5ujr%mcm(O%^FmNOnISu0VyRH2@OmIypRIq&_k-B#HKeUN-%QB!#MLh@wNPKQdDoqrHSRtf@GG zLs`)Cq53(ql&DsWM7J*OAvJ`xdWjsX>}-yeK8YO81s!>0&GkbE61mDBDF1$6d{D0} z`;~%re(TVAgqdQ*`S_M)W&^YtwiTrtpTXE(gXzbCVc&T7(#ieUcjq3&^Sg{$4w;x~ z8L8Y~_R_?I>xv+L*bnZBqJEd1rI9d5yRwJ~D^SbDQ%M$x1_n<(%Et|X{ZsF2ZsvLW z<#h;>CgGO^K^OIE&9soh<=ukxPeVZVGO_=ZeWrl;`KO`(U#L$bMK_{%c4zNmxOMKh zTKoC!xse$?c$2_;M7ZVm&4PT7L4X^r?7O1YE)wfB3I*>5-&S_k7B&vbtGcMCn_Fw* zrYFTk|80gy-qS#KctxP+HcH_&6o{Ew*(lX^IS<6|z=KR`fbm?DYhfUYC-=Mb^zP_h zSV@A#8@)(`MI~ReUkM&Tj6oeF+8X6rQ{Q7SczB`B_wdHUAL5hakzM}7+i&TIG*b3m zifM(3@fMQ6FiV7?)C!dJs(U=Kr?-$OZHXHyx>4K^6Hh@ERJPvMKfS-2Uge{4HSdpavN0TfYN$HewiFCbG<;v<>LWbpp z-r?^ms8xj0#O#}Sh*KeI=;($ES(0$#v?+?PC|5N?nQBddd0P=hCueb7 z_*P{aQcbiq0?+?}X^Xeg&wz%2&t}Ye^)9)$IXN1lG?6OMLY3=_hv>id&$j|S1+m#*jXJfFrk(r-&jIjJi2 z;4I#$TnRK2&P^TB>C+A`v`x*-(ZFs0MSnDH*aVI0b;Zh^E65Nji96goK5tnYc4j%) zcKx_2)12|!>3@sT^Fe6lOX>OYSy*%~3?4o{G(SjIHMV4+!L|wniXLaFZYDXgSI>K)QUZ48m(By$QG4pG* zoj8XaQn#L0$`JHVDD3#iombSms^%bVh>fyrlfj?`mOzNDpDGDdKv;THZzqb5yeog zLPc!deilZ>JQ2u@z22(`GlDUbJ{Bb1kBg!tnC{#fl7JpH4^bI9NC@?(`+)kG@_h%y zUfz!>OMYdv1Fo@LW`lY$mw;2fqdyQC8Qs)0#Z-f}Az`i=D@2jeMlL~)frbH)z?iR+ zD!yBr>Kdz&$bQ|UT{%iL!;CR>NO*QPrvJ172QLSqF1_r(Q~x7uI5+kk_;HM5PL~7&>Ab!_XDMEl!ta?^ULT78yUeS}I1=7`S!y7VNBz zQLBD^lExxA&LMKdgMpAOQoK5>^)r;W|M0{#)w}RZd*C;0v8qS=;as>3Y%{p2WY$0` z587hnHVWJC7Bz_+O(GDI>WSeK=ffuDHh%nJCK4??NdB|`Pfs;%k#G4se-(?3VGcKW zL9|4QqAMFdp;VCmVF-|6B21=ij)9n06{G?PylDssQ6THw)``w(J)@Lu`J<3pFRG2s z#^~!w)Z9g*%AGN@b;)4OJqlj*V!^W~A;2*ZB2bT}Tvql@NW2wIoF+l-y+W{y12+Mz z?B1gGu9$Wr82dYkhmeMFX36qfaql%mq7dS?g{Z+=tSpR)@1-RrGPJK?zmLuUc}JhP zl#G8&co6id0bp)zM`nUG%@{p7r-X4M+COCalW14begyv^!7D;N@c=J$RIVK$${K^(@FZG7+kDF z;3<6En9 zw#_@?`;F_+uU>f+ZqNjyS8m1h#&t=Y1HCtG!rW1VP>o)L+YFhG9h<*Ls~V21xjFXE zn2ZmLJHn}2Tl~1>2*#DB`Xh;R2Zq!6&m=WtW%Cx~m5YfTFGR;x=lTR;dUtwMBl8afxf zT9?6%8#i(D<~{WPavnbas2Z~37?SN`F!MxF&2~RBEL|~X?OwDi>Q3VP2FiEni6!6p zkwKJ!U8fI8kucWL5c>oAcBZ5(3O~*Nj(4fPN@=ln&FWElo*>fmO7Bp5-h@QNNlY5G z3^sJIl9rMyB_q6a4J_f#*wh|*{yaUs;A$f(>QtFcA{#=#C_ee1z4FgpsdjH1xbhvG zNiZgp0DQRhNX6WYv>WJyj2zf<$^7~gnHQwVy7V21ksp`FngtJ$vE*O8c>AN^HwlOh{TUmMlqndBb}^R!j{c6WmrwMa5< zA3(oP-lG@lI;cp8Xca40N1;N6@aZ=@6@kBH)*!eQE00wiKmGd}4TPH2%Au&YAsijO zF=xe2w5eU1w)r%H$PtbRu=x9R2#?l9x6fx|M8CT5zj+n$4t20%^J0{BHp1C`XB5*z zoTllKsqyikp%~Mq32peV;ii8ux=o&m0WGT_J^BjH1(F$I)Cbdl*p4P8oe+KL4#F;QuW%90uWF{+tz|FQ!oLu2 zZ{7GCk4!Usz3?c$5D73-mG(WbJ1hbxwyy*&BXIkE3Vk1to@Jjp)ho&zZs_huM|9&_ z^B_v2io1qTHK5b8r{K=;5W97WrP)zrO%yAE;2n_$Ryi}6*HiYzY( zT}Sw#&0Eyw@MwLl%0`y1|ane`hu0be!u!les0(Wc8} z4C_`88Sxj%WZIze?PmL9_^a25X&BeKz9Pb#e>MSg`*u)FgS1>EB=X8Gv}yG|W6ak> z+0vy^qlRW~&!hPQQ6S78-WuLz-$Sf3ZT;77V<@>)H2IQICI)s>eh^$L*2Rw}&%pn} zeth2aeMUAsj2%bG1T0hqJGQS!dAA7MGbn=Z=Fh;SZ~CEWy&CZ6He*7wsW*SjtFFJ% z54H8PL_w~IH4q`B^Fr=N^1C4Yvk*`SDG@hiGy2a~T~OP91Ogi3Kt~Z)qPng<_g>U} z$s=*FMGZSK{vPgA-C37R^ZdN~qH_Pc&xk)#%T3~wJGgl(oZFZh3gVni_FdVNNxl-+ zF%PwB-Z-peuV+X$(WWR|rizM%P70EY7<1S-x~Q}M@e@FZO8W94L7zgw-CYvv0awl< z;PPqQX6*IrXAU!*+i?|#T?l+VI-e8A#^S#~n2w@lCi|Oc3dx@&VLoWnlXFQt-9M~f z0HQspv@blw*ad;+`K8Jg=7#1B69QP96cJ8%%RMpelzFe(!S={Kv9FJ!fJ*ulub30s zH{akl+b{JBb3@}bU(@dV*6@&C$nOjJ%9owN@KPFtecqBe@SQ}*V6%Rt-R5+pP$hZN z&Gpz zd2a*dCEdWx8D4HSNWOm=6TX{>{h@Yr$8-pT#?8d?DI?Hw+$=JGb^~6Wl-h$$t3pRlGf4`qfuEu zd`W3xhcBlxPJAKU_rHxemSJaS`p7XNV=q(38%F$-l*2V+PS4@N7ZzZ|cXcsmVmnM& zdkh`NMbNgsC~f%Z0Bq)1tT{-jbx9+LP`bkmdT#f%!^uU{uIO>43L`kG`yu@nOQoZ zLvalLdJcSw6vIdFb;bU_njs+Y9!#xC#5+^n`tAujznhFe$~`^w$StMjhNNt2ONfBp zRB^7!t|?p?SC&u0&<2$-t#d2P+W9B^0`J1!+e0y0wk}?QWdVFK;1GUYcM!un)Wgqv zPGMpc4?7!r(!U%Grz&o+6cZ3hEp_QUommqx8fm=W-6)V_G`LgWMBq!W8pBtI-RweC{`B)_D@{ zH0_7G(J63rDF$2eOfH>WjS*vJ!m5xL61X>yoG={oW==-mujy&Nb8nc~x-y)j4$l6* z3=_x9qRG4$6=Ei1^t9@jKB@(#Z#jpalrR)8?#q=Kfhp6*Vk`N8MT&Xj@`6bi*{~93 zwrPdYbT-*NG>*|hoH(~m-~ky-HjEOYz)wz0R8%z8*EM}Grqo}OzS4m=p~e=uU_9(| zEPbiovmbu5zsJ&{U!(8r<@o5!vCwmHq$!38E*{v5#U$X(DS00|@=JL6Eq zJtSrs!^zG9_ih})r13*ocp>O!rXlm0XK-#qR4e`kAGytuFFg|Jg3O32o;beLB2xc? zR{l4dppZC*j$Zi-`!PbX3fxp1D~)tXYUD-7H;Y zhaMFk01I0OCGCCLdk+gJ_>l(!8VRqlxdn;isLzV)i z9oo4iCIKq(xy)T@zqCW13)4v29?f=040sd5RG3MYG#5|~_V}V)OS^c*sr}7-sy+&2wc{$^FHZu2u`kc|>Nzr~ z-fT@*+;=XX!_pt7;LkI`4C`c$YVUr4mh{-XY~DWf9oSXH^!>0^d-Up62|jLCxOwIV zHvN%<&I6hu>e@LRITgyvOQ3s?*2wffiw)=*2 z2`Js*eb|Q`$Fhtf=*@a|b?J^nR3F7(zr(gy2Y66ow08PT6zbjwy$4T5=MS5~I`$;S zFW-Z7Ya5!oCo4kr)q9-(H)ImZgp<^vLwj7kb`uw_`NM&BlwwP&0^C#eLbFI;UamMa z(x`U4Ja66{!d1GT$hh1jxI^w-#qOQIBbyW0i7Lxy|2l*%2d*QMpDH(oCUPGy2;G@Q0Bb&B90k;lf&;APxD#fjrbIpKE zqNDrv;9?jz2Zpc9pq;+Gof-C1wLLh3Ua=V}DxJ2kgy+)X2|!;4n2U(r99`eaCj(&oqI%lNApC@e5Ae zjDj(p4Q8jMA)4OecWqySt}O@QQZ&s>9Owj$9NQCXR^!jxp*)btWo6j2r2DbBcyJ#k z_V13FyAH#R66XxQ&xP>p4$!oMjt1yQ;0%^8U4fWXdco%*l1_(^@iDkbFgXlz=!81d=mimRLu8-n#ek3#D%hu~Q_1;-BW!uc!lWO#9olh}DG zar4ijhgPfTd)TmG0ZCnQSGf*3_;kbl_pyHSWy6H=+B9u{;RTQ>ZNk2(**T|;}gnK8r)?UNNZKat+= zZQO8=DhPZ2I6ymYI=XSN!u4}I$UHp^W2(~V(`SS@c?%D{jE$>iqieh2@TcDeJ35rJ zwz0tlj_I1;4#J+=Nuqrd?0*?+SI0?Ge9PpTw(rK z@yidB(XRhDh%j}4v#k}%2mV}#-gJg};0pa4xSJ!LYxsH7 z^{Kg#uNzb|B;uqz!R8~sATOepXh?+UMM=&UQN0t@J}cTqO46vWYP{$wWQa&mLHdUv zAd@B+iF=5c{zFy&*Q?1dp7nnnPHJx;u_DAxY-C8jY<;z`$>5oqLZ{BM4~d$y_Wu8M znEdnY*X+9@Sx&xBvrn4lIk zM2E2S*e>QYqA{iNa_Wgk-Mb8-)7zojuJdqcI1bz9yoY(Usv&dM4t$Yt3^n{Fsp5xj-H-QA%t8H~ zv`5}P76<#8;M3paQDyudvk7TyCgP(33sqj{a@Enk!)F-L^IaUC+zBmb>_s6;MDE5= zs;F|joex16#f!S6?c29u!=@crv2ia-QcC=Qh;cTF^K?3q$j>GylPl{1?Qgj_UNuP{ z4e3xSG+Z+_PA;y{p-o8^7psXZm?%#C)I6mUc}GUHy5T_So-RG_>*x>}G{{15NJO5D zxjzjZ;puEhB0yAHbjaBvVjCWW$S0cW%sAw_RH4ZfqJZ|q^n=Ct(P2-QNBd$=Puj~c z+ziM_&^o!$yehB|v)QnSyXuAm z%_8)5MB*xBO8%09Cz0dO(BQ{juye8FCK99Wxwuh6Oa@&_1UD49Lk^>hr5PR&=4$!U z_S%#Z{J@})$I6fkPpW#Su}|4-lMyArp`p3`=BDCCkMoMC5=8HH6X%k|$4tIQ$Bl}i zs{>bhCs!W-xuNT1#8Z7;t92li2&+Nkv%$v6g{A}#*biOK9U~P3{K;n6Ia3;~mr3G_ zg_HSWOo@F|V9?X{w01@zOL0Oc zbCqQ=zl5jDiVhcZX_eflYM#N(nVo0b4G|O&q^mpRde$&QkB1AS42=6!Pcv(mVhHQRxvvfNK67usR#WGaS}94|&} ze>xc^_mX6VJW4KZ9^7v-)VddS22=Wd2&C%#lgZP|od>99&F2vQrsTprxjqWHIU_O` zmaa5^5UzUO{Zr|JEliX zmmuxB%WbIG@>x<7D2-+qh!8#QRx!hfT;nqCTH z?#`vZ@-0P|w`6{b5JJw5VwLMEFXYeLU;az5e67B6e-$DyGUS%>2T-b7BelN^ku1cj z5Q;a>9wxyV^+vQ6WbB04H>Z%ONcmbyi$Y7B%lRzFgb>`~49=hPLKwoYJGP4OWPuOY z73)?N5Kwu`ls>Bad~QbJogL56xO)*wbI;kQn2I(a#I`Vyg^+(h=7LgR&w~!i`J^GH zHT6k(O2El;O_-dbAt2|cwk?uh^_QO-tX|tr3Ia)gh==`Rm1--AyH;ZVTI2hYm&EC? z*rCg~yeyHtdGjfU$d&`O7a{{wP`4gK5;ZH1Qs4iC&`c`~=+y-=DFIkSx9tkgReg+f~8X{kU(c#S;L~})n^SurcJ`8BQY>05z}<=2=s{g7|S@eMhsI# z!3|Y}4N0s#>V^?HQ$|$T#KkGtANeWzF1m#D<(uHyup{1MxT}>BH-Rq}BKq@sSWm{m zTyj?WGYGbU@*?%-VexM+QKm=6gB*BL-J8O1BvEpd!$~8XL^>sPCbsUd6`M-QNY&6Z zdP&#O^C7(H@i9@5dpa5-fsjr|Qy!k)MBarH$JH)n@EzffJtT~nJCnqvuA>{gNvP|| zu0RQ{AcCp9FQkZ?up|)D(sd{?^HPqdG@1s|CbpHEjClLjG>9({8BNX9fu|SiCc!6+ z1!;SBZkeos*R-FZbkfz`lZ1`|`#`SU6T~^QDcqDa6=6|W5$eg*YZpRTx}M)8dBs-8 zjddB5DIh6_{YgpAfVa0VFVd)uK*E9d&0O8+WQs%q?YA@7ZcRO`k3?Gv85$nB{nzw~ z8W&{3q!3QhQh{v-i2*kcZ>|$PmY+o8T!VB=ov)oZZrNn?m^pdCNeC9KItThide?YC_QGTB^(k8?HeE&YeUBFA3$APN}TG+n9t@j!-trl!9YL=_!YTm+Sz? zU-H>fN^VSvX*P*MnR^o2OjMInsMemJ4NUSVkLC=a=;_6I%sp7=aQF1eH4o9u zS;czlds{^j9M}XUG2KNsw%Xut@tk=VX5swMPx|Bt4QO zW29O0L}8TFEWaFo&HDwPuLA)s^k3)Qf_DlakRJ%hIu}peP9DC9y&Ial?qB|eBtt%duOEmY?g z%MoVFi;}!AdwwB~x3f=iMVyOUsLU5V%iA8+b~#I*ku*;6 zG*c;+nx;W<=aoIVFeig=TvTVRsHO`JDs9!+Z$Dm;l>eCKF!SjWenOn9TKQbwRfIk7 zLbebh1p*1VK!A9 zQmpATDI_I80z8?F9DsW_n0dQP17X!!4XXu@KjH$a4zbuhQ ze`5XGwT#W&5+A>Jf&}_(%-gvWlfLYLPuq3HvWcOTa`_{U$bQz{5CkRC{xvtnhKC|F zDn(uOtJV}zi^rm7^-8$9XBF0zXa{q*67)pW2WuJ}LDR41pb3%npq;;9__SR#M75xr zMe<`qr!Dt?^;_nn5Unby$(h?z{?4K#KZ#Dy9!vD1OlB5S-i?{W76|~N#hUrer_bA1 z#BoGQ;u9kD$10EuA&N-MDZE@$&-2RD;RF{#QIW1}^Rx2FB7H#B`}_Qpq}`m(aOOi^`LVXrK^!!hvtbK+QN`~S(3geRWz0H@lg?C zT$n=-;m7_wXP6a(=VkRt`!)N>^XI)ZLs}tBoF|qTl4!c1oa-pZa?E zA&k9b{ymvA2Yl{bVGwZ4{=Mn(F?y<iZ%IPve)E!zu@QN5D)@QOp(M{oSf}~^U66RCukJaxzmZ0i<#2P#^v!+ z^Imc9mi?VXpj+WmaB%lg1iy^Ec5hL84vAn1p(p+?ENO0LLGuMs{}$r-_3O^tj%WYQ zTedI=45$GrxP!D$l2(f-Z(G%amwr48?|U9rqA5(lfs6sMp}&3pgo3;HT9EZ2#Pl0Y zvd@zdqG60kh_@H7A$j`Z*8h#xSy@>kf%d=JME(RLnro7soh@TJ$7&zt`L=`=y>2Ju zX%!v1BVL1hseIzbOrg&@w6n_%!6i<*B+hV#geX$U1mAAmfs*0pF}dGYi0wNSTc>oz z>2F$~+q{#xdGdbg!i)~*l0^dimeapQ#r-XJv!M6_2oyk|00RHFA;1GvqZ;=*-H@~7 z#Ru@qN);q4|0?c8zR5Isp^Cfqc%z1ZFbO5>oKkTo;_#v*NTg&DgzsfY#f!=*c=lol z2(lT^6nFc=2_5n;%=KT2CwM# z3vsSTn*|#c@+uX_E(J3tc5nPa71p!UJ0W(%R{S8uxt$~29Bgw#UKzlS9(ye*91!CC z#o$uSDflRWKmh~_AW#5-|8WS&8TR)$=>PO-BFNl}>l6u%Qm=c(u@eMRR4zr*qDAap zv511~`GA1TIZ4705jcyQrI;XOQ5E&ShA`&?Tm@NP0|GL|gz;x#W3R$&i7C`$T0+k$ zQ|6}l_6WUsNtsDKWFoyi8Q*hS^1pPO8cigOWnUJxYKccK8f(Io(~#zxJze%+ZIW@& z?h~??YtzI1A(yDPc5sG+i%#m!4_Ll@lydMME#7vfC?WWEe-3z7!20E|8+g@Ib*

%i)$KQmx^w{3FZ#$GEF2o;;=|IUh0Dg?;m_&}W9PfB=foAMXGj*wg!%T&#-|@!* z0S5#e5O6@Ckwbu&mF}&EmyUFU2^G}MS^cpYM2>Kg3^cI9J|BwR3brVlIu(t@?+`%04}28v7wM8fN4w&&AaDx|5= zj;g$B^R&(g^oniDcGY-puK3XYolbV-QTw381!VVhZr<^?xu9$rHE5Fr0NXQt*rfxR znK|%p%GlZItMS|P)h0(^^AMEm++qAq%h`~^4mgqn0uBf`AmD(20|Mm`FbGp)C4ht~ z=zk3o?_ePylK4paA_UT6niE!h=SZ~&0m0dx^j-0Po#_x%h_#S)^Q^Y*Bkc`3J{vs* zw0?w_i@X>5VzWx?L35Uu zy;qbWnn%Pk6q%w0l_4yq9kn9@4HH#$A2=_nQ-rAKCCh0X2~0kd){eJ-AmgNW#ioD$ zL@D#w+dEOtcq#phD3>2BU2QB z0RaaD91v)L5a7jIbDQ(}KVE~F5fMDv`_D*L7z(h2=3@>Aa>s7og)j>CLIUON&ygGu zs5t~If-I<6I9hf&70FxvrFymE>K^HIuX~&ky#;7MU-2KC$#;mnNLDhlVyng>Ymw+l0Ywq4!UMO7_%mlHLk+j-%+P4!{ul$ph<{Pwa?Ak!%$@D48yk5m^j%9b}?%0{z(pKs=@x$+LkGo#=CXRQZqiC zv$E-LMpJ@(hL_D}ta?e;?Xa(l!8!=^x`65lRHsn~CBj#F7=+9?wBZ3$!vAt|AwPeG z^agsU1EjHm&%S}}7urGN#lNy=Fsg{H~*n)I<{}vZ!^|f+GE_SMylc_qLJ#CMAjV+ z&6!eeR=KRyf-?WjrW=y#mWJn#-?>Hzhz~#H`n?O4vR7jDdSk~ z05I3qPX~csTaau(^=PrVQ)R>5m4_<(ZQt&?> zN^IPD2_z>anWCZL;V9!lVGapi_zg-zt&z*>1L2fSlZtuA>JUl(whce{ThN>Ff zKSGN~_u7pdICpn9v$-wgzYGP8KCq7n=XFT$ot||5vnMeTd+EKinZF<0$dNvHj26-A z#ysw{{mjjm;f8(uN9reG@1Z(5-vo{`58Of?G=;PuwI>nKPK2*vwD8l3wl$s}?uTfB z?UocGzr+b%9A80xE{aNY(c5ZcdEP4U^7LS~JQUF5b1B>6v2HOU?2R7q>1O8Ea)hM* z$U|lURk3Q6$kp}q;+kM#d8jQauF$_jRH$yd5l$Y2Qz6$;Az@`7k_PAD{F@(BA1 zZw^u0ksh-K10$+V73L$K<2;Z+R2!b&UT~!&&D=a*46L$91dzZhhK?iE8UzIU1L0q5 zl^?T;v|7to>>*p#-l~fv_(|%ZdqjIz-%VTESdLVC5a1MB(ljECgteUMI`b~q%pXxI zR;^yhF|TE->L9qP1-OQl*_?em6Sz&ahHA1~MWkrI?@3QZYTO3eOLr2&(y-uA&w6Y2 z9AQ|inlh|Uc(gH3sLK3sZ78XXn6EnHU2P%Xnzv|WL5$NZ;(eQ4(ri6#B!7jc(Ltwy z0R@Z1CF9rsgQ#}h4Aa8Sz^JRiItcW-f^0plS9{Wpmw8fRLZv-y9u`g;7ZC#1#awA7 z`$H1lUM@Z;bCt(^E8KwnRr#ka52%T^J0SsQUf2%-bV{-Cw_o8E9%i^v<#`YD#SrJ@ zB&H-;{r00{6JKYlRXUNtbt^+c{5DhCGbjW>)Y2loSOrw|Fby8XD>hBy)D!XX@dwx9 zO%It({75wB6L}?Pv~VZlQ;QJOtvfn6l^|&cLjc;w=udSTALkM?7F~8a7?Ts@Or6cB zM&?q+*tka+r6KY-p$Q2G_a!Q-g&|(0qEuSO`Ihirmo?idPDzHaS-T8 zBf`toBGPrelkjxTW%*RASa?L3sn^Yk#JuA99#ETpdypBBSVlJYhKLc`!iB*@d*3r=oiuoP8?K~te= z$Ja_BaHMc2l@_YF`hWOjq$gVNb(Dns37%4US6G?aB^v9f(+#9r z3sELxmD6WAb|O=ReHT+iM3SUi)=IN6oOo_I^L($)@>4zXN~}9a_kr3}EOtkDw+6CE zs@zR$Zl%`l7Z8lSJ5z0%FEu+G?CWk1>j|O#vg~%Xb{wgO5FqSCq!&{oNkn>;iRwc& z$Gxn2bQsixaaxX>m^tOV61Ug4g$SWur%I>lAmZIC6&HVF`I z+V!gzVe-UxkmenPh(J$Ddb#8xg;OSX?r)Ws02}wt|T_3GQ#}qg+UIu z2@Xt>Y$j96eCbV(;le&m@#PbD;jg{XXyucMEs6Pf;EA_zO6LH4^2#IlacK@Bn$vj^ z$L1`3dM1OwlvgU`<$!VVoqdz-H{S9xRr{izd$O-0&if7;hH+y?AR;7yDnVt~wr(|E zf8`m>U$GfcEuv9Ykb$Ivj+i*>Wen}r13Q+@#pV5mVbIM_qW{?e`24ZEu`nwf;hxkL zAVHU$oQ&aPKR~aDG`#Zcqe%B^0S_lhR*9q;sTjGOR6Q!=xUKQAFWlh?Nh~+|0gS%k zN@^OoBX37MK78X9eDcEr(~lxLi9sIYaQeHDkK%;pG8TC4EIGb875`PiP&@IV7z+MRoJy;DxUjb z7GC&v9(oon$2mjqM)SxhI7<@Dq`rHQFiuQJME{WwW9$u=Bi!E&c^SJg(eQgKr}GWjvIrPjvp(?7+OA66nNBG@9hSyq>dGzruL zjnAFLa8imBZhq=jTo~nv8PB|oueN8RMIgPQmgFHJs~C5F^d5R;?!>E4jmJv2a5N$F zq)dB(^{5Ymz12r?sqJ&H|6102XEHGMCMTiIfa~zewO3%nuV3J$&%R^-BG^A^l{mxQ zDUbaL!aeUzz$v)^a6pg0JMqr*6Yysm@X2rU5EQopmyNs&;VoiNN(}|&XM?5>s$YH4 zr^d)%2HD=f7Zrf#_)1t2euPx*CPCa@r~R{bTR6D3s zD;%4Vx^PW8Qq3WtJ4}SLVS13sUNIS_2p?Eyp|$6={7e}#6ZPIMk*ip);&*d~@%+*H zP+Vqb7wZhsbMub(dNCQSs>jq-v9RNNgM@(QRri;F(@?mQxH4x$4M$??qUnV~gk|m7 zZ9IXO(k9xv6KhzhqnKgDY2R76gQa0uBe2-^aZQNxgWI#ta)WOW@6mY>7Tca)=eIM4 zdY18CuJzCulg2F7{&Dr}a?cF$@2$}0)HG@dNg`0A0|!b}|LgnnPVRRduDNjp&O56YPCe~ZoZtUqJooC`_`iko(6KB7IVD7}B>k`vxONbcyf7EH zGr8;{ZeqH0LUdHPc`c8Ixq11tGxwyFp3>o>Y$HvL?b-9YgpwpM4Vysrt?X)rIN;*;$P6P)MmXRqKp~guuuo!xk-jV8r!T;GWxW!m0e7=<3e;xMj%T$w}RV z@WF#{*QhZVGN?ZSt>urXP94xP#)6|W_m~IsIg^ux469a?N60K&bRlmd(uKr0QZ*sKwW)n8 z$+#GRt~~22C61YA-~JX8kVG`k8QB)ghE3kG1Zsvw_B8REUTSRlojI>n4yf8ky4ogAoKg#Nn^ZS=|{HhHI94k!8 z)>rLqrBX`q_H6hY1KamPe6vV|`gr4xCnjRtjRWxX>rY|usK?>S$PL>mwF?QMiZXpl zYH`WiXFl<)$YxFW%(AJ@%G|3ev6n&SeO*c|Rb|GXk0t>pg13M~dw!vXoZWK$r6#Y3 zALBYkdLTD50lQ3bf3%47G16XT2n~;<%5?=5Zd=ETD9tR)D%4c-wuo zY3h^&zJN%bk|!A_@mmti_gFuUtM>rh`oKtF!&2OI&Z(HfsX>nm@aybpxZ#cmFmuvZ z_$ik&!9%Xn4M;hnT-%Dy@R;jWwY6!UHP`kmZCz2}u zyQtExrQzfjf!3`;@%x{`+r8B|*>IL5@pkWoMt zvt4`4JL``JoZSkri;KeBzbOKJX}Um_eFxH10YrA>royA6`>GS;2$<5*HE@K|YX9(w z=p2!7BIZ(KJ_bqmh7%c#A`(l)93>*-NL7P?h-MMOc7nTVr7GmoJ;gO{g~KEKDbW<- zD5PG9r0Umq*_X>5iBy2o61SK*-c7=zxK@Pw9nUkdp-jY~`>8!FKNHf#l%F7L-wHP+^NsK| zgg5u$LCia|&sDE=FKB-1A{io`XG@ciNcxA$qCNUDxDyZ38B_6K3*_D1)5n*7gZvDWDxF%A#_K)95QapzHeu_Gc5yZKLhZ6rsysSJ#&QT8r*lin zucc+VFti;diaBu`anDV+VNGHt+IKnEbZ_*d^Re`wPvN#Bm4~hmQd3iL?{mN6pXHyy zt4O3EHy}5DP-J`j`p4f$-t;flZQ6n*i)P|<+8rmQlk(=FB95#ihe{J?&c)LIn}d#7 zJCR(t3wdSdV9HMmkhUitD^{&Tddfyje*SuFPf0RT?*qYOm*DSM0}Q_H8@%(vCHQy6 z`{;fuiF3DTvWgGDGr?(?z`*u22ld`wE?@U4~6_*UZ4NpD(2+nBgNk#;{6zkyI zFVR%MhIfv-Z3u0kv+&g2Lkw}=zC(L-?bIGWel!V_-u{9P)11+b(&UG}_zp9MUIj0& z5WJeP2kZX&22`j<8Py8~*S%Z$k+uz+}Y+Qq1|kf3P=Wmzj?poTF{qwvo`^jOTCYhgAOd zcZXq6y#M+HL=-3D*0C>QXFfFyZ1dvoUPx)ZGj4lyGB(oIf6dAjNZGv$zf5}#ZKIQs zyxRvcT+;WBz8$McN8kG51f0SCzWeM%boAVb7j7AgIR0+y=LQkyz3+JnE4FOMhBa%* z9o>On-g^hL{#k`-kB>u(HY2zWlQC&*U$e%1+)A(`I|?)ZT8jmrbFDIInoG%yfoD?; zq{f6&DZ|thZ;Pjj%K%*3tBrXk4uf6U!>&D`7h5)M#%u3=g`Mds7&_=e>~w95wg0Zi z2XDWNg-cg)Jy0VcbtmS1|1l;0>B!D0Hq0igQpaCGz*29oO;{XwF4Sh-wN#h7SVxH3 zp?W9;&V^@&J|#^TLa8&skt&CPkXnO;^Byn~Z9A8-^6XW5s<_8WMw@}m5~0eDcpp=_Uy=+BGXR z4{3?EZ6b`c)>6#?n(0})XsTT+2kng*2I9<%E=5d`E2ez>9)4V~7N?v(2=9OSqKV@u z;=)Q6G8PaOh47eY>rq-5zM1v`hFy3T{$21RKK<--tlJ)hTOaxe?>==YCGiPV*WF** zB9(hNudnd_SQJy()%d6eI9LmvoU?j6ny*Z-{^eq zrFiYLw;|==zt^sXU$bajGW0^zkL0vs3^;q3vB^){u+cmty=d%<-Svg(w((Elu_vF! z(EirM7&?i+^S7VYry z!oAqK;CK8)f~u$}2aD%?huOa^1}%z7rBTXBPwpLuTtLF@T3mb0H5fu^YQOW&M_5yF zC8_G@$9$RF@!Zt+am87uW6Ppn@xdpbqu9GOZXG!otzw(=5T{_>X$P*jWFVe=`%|=S z-vP^4tiefF-iMxa(6@5+Mr15oiJyP^8QX}gWo=l2=`&|zOo1-@;$X*uuZVFCT<3mt6eccc1Z>lI*1Quhgu! zTfdlwH*Oe$j6Z(H(;t6}Fh6guIj$xzs%$Xr+C#?x=LqP_)tf!uLBQEUO5gG9ov&F;1AH}(;_<8vXw7y^*;@1a{8GN`ECaPyek;8nOApMLNG{@R*^ zb1uCJpTGGQGWYHzqm7rkDed?p2nfG95tF1a)kPML8cw|8q#9UG)CqZaq=O(J;zo$J zq+yb3*JiR1e9P2Jgt`6;_b>#Rk#ttCHQjq+AQ-2B?6dl9*42r+v8o5YdY8LdWGvdB zat>N`InC@-b1x-RHm~j5 z2cRG@8d-S}c=3go(Km!8uN}HF$ht)+cAvN z*KfpuU|R6$_xR+RUbv-iGd%GdC7pjih{0Vi#DLcK;|J1Pg9e|5qV(nX{L61Rwibr# zsQD-^v53;ypMQn?F3s`F5|W^vfyghC+E&HH!^wCXZ_Y!|4ZHF!BC1&GFWvg$ksF4> zpPt1F__!=L6My_R9bdoqCRX+6j*G(jVA`;oFxggJAyw4_0>bdp=ReX*Jqcsma~*y< zfOoB01^SnRN6*`E@#&{w*-xM0jEiox<%-5X$t3vvWPZR$wDFILZebAP)b;B~U3bOT zua8IZp7nTp;)ABllOzT^)84u3-@jngy-$+I&;n7E66Z0*j#n|W=s?#3(4t`~AtG0t zN8-0dDDd^WnD^LY=->BTbitEY%~4)*?m5U?xe}kwSdH-3(MZ`GZ!Y;_O5m@5?OnWl z-C(TwG1A)wuRS^*lfPev7%~##PVS3`9=Hz4%YMe4&(A{V>z^iZE-t5#T&wSw3?GE- z8~P5!>9G^=zr<`Zpju+y^LOLz{-@)ybI!o_MStSau`j{5bz3+W zwiG4vE*>Qdm!AwA)e zxe;FzW=aZq=SBw5*HgYi=NF&Ez!Br{_T7{CCKf|4x&XUZ%)yt5p?I}p6RvGj#1NGE zTw6~*`xfpRc^SU{>NQ+GbR4xuxVNbOE_=d+Rr7FC&%Rax{++RGJqDbAC3=V6fq8rK z5#>$q^v6iOxx5qg@QWoqx9_fc*ugsNl16Rqh&pVfvZ{H87^2RZPCQA>Nt$bH_fB+z zjuRp$LKb0eA=(CfwllXfP}cOBr3PzT0rvX&DIWnMwrj$;F)H|ED5wreO~uSLp&&J{ z$7P|_6gu^+oPpo51EA(lb0_cA;VnC0>zXCT36=wTg)$mraaj?Xghj#IF9<=5!lbn?q)l+IE^)5>4g$SaC#+_biF@s7 zyBLqvK~_l5-2rXR!mrCkZjcD1q}zikhztLif{7DfHv`e#ZPaS`%f7KJ6OV2^%2RL#?V6|jFJZrhDQ>Ey;F6K{>K;PkJrfJQ{*1rE z(Y3Qb_UvAap_g4?+7F|Yw}^4W4OL>ESgKQ=bo7X5%Iv6wWz0aB16--pBnA)Zr}Px9>3XyPq+%?+~0bpcj64JrL(~ zZ%OswSMgucT2ZZ>QIu^Rd4(jz!`Y9?Pv2z`(B8oa5AviGUmMQWDf@?$s96#8gr|)F zD%h2dfM(5c#<^#siR}D>Ll6_}jOFowOAM>K!{w{p@ z?9=$Sz>~J-Y>5B%W@O>AG2?MM-%}=yj_upQh2ib~oNw8ApL)tkSh92lep|2xZ3Z?q z3=9!sWxQ}RlebXmK9Z{Mv(Yx(2X_p=4|DznI<$zuI@(El>oDMup~A^80*TF=imHCTLfC+=w%1SHEJ?EJzoj1Lr!0pSd}Ch`MkXKEKcjNx%JI zh;#4uoe*A-iOnm2#UjL3X0gz%mVRdp3tX{qh z7m;}X?%7+g@Y^>r?zuP7zGDZh|92fGKlvC!i;^+$^8P0Onv`9L z`Pp#w^&x?7tMCN<(4MRAg}Dz@IvcnlD@})cS80Lc@=#;1`S@$6%aY#8DV1VvTb{{} zEt9%-Mo}BJP@SC)KDBbBhVEnzUhDp;joK@(n~$-}9B1Ir3A>TRe#~`no9Q zm~_|M)#q9Hkt=ZIr~m;H0AymBy-MQhSR`{MP(x3Q?GVPfcA^v{c{8=RC>eCA!00|= zUpUvoDUF7PG9T)=JYq$T3`Yfl1NNMlFY(c+o;j-eD=W;iM1lg*3S!1e#r}BT zHI;SqXrFPIWU5-u@gm!Hfp=iA8M918T&cdQ@f(}-1LojJ?TSg8xod~P4;=*hk)Tz_ z?={Iq`LqQm0TbEW&lVS4reR2 z+sUR6rQ`@nhVD;$E4?`vpm)Q$oaJiEP1ey zDL^7ODkjDvy2&xiXWa)KINXFT?!hd-p3>zUv}zfQR{XUiv^B%0&BxGzgRo`8zc}~4 zS1|YKQ4Eh}!K9D}nNkUv2s9ir-(86)$@~1wXJ5xp=E=T4k-cuk>8FVaz(nMytc2cu zsYa$$SYVYeq*F0F$i00Si!@~$((~Q%>)JoiwOtE5Ic7NC{`?2DBY~f{gY!&vb@if* zNR?7mX}5gZ!$&dyhu{2&`)?kMGp@J`m%5*gki0#3W!k5FLwFdi0ye>mL8|U?30a8g z)d!PkpFi%kuTavmC88sO@Y54_BYN&UJUyfjg6UO#$MU~0GdmPNeepbUORPD|+_sD! z?#{7xHpD>#xxIS6Z+8Ivpc235dQ)lD)S8u_H{_U`*|3J9!+=y>K`7c`cdCt;cU)@~rjcOI4W?$8=S4 ze+s#mw|x2U(frgEgG1vwc*R+oE}<=2)5CjHByL)bz3JP{Iz4hfBrz;u< zvojSTQLW6LHRI$v`Q|u?PN+hs-KdqEPy788##(m}=v4q%oo6wt+13gVG9Ap~W{Y|# zA<`m*vbK{h;XKCid+Pa#`&AuA&(^-~rP!&bRFC#_35MjV8|VN|DT=D(JbrC72vxwT zrrY_P)1YJcU#c}LolR-AXR$L@uHVc$e9H6coz7|9;ik@Yd-yv5y#`+dOnU}m zQ!Bt1oqG?YG5D{vDYxdRckk{z7nr(Z->?MZO``y&jz zd#uT?Kac;l9L@4~V&N~Js|LjHal+jHPDUWT-uG?S8@rWh(<=Q%_aGO;?{oh$gw19;MFca@s|3&j$(gH<6LTkWbCyF_degJb9gip;rZB^^QF3qO-X(ADxKX z&+md|pTCJ~?iq`_V>@8dW!K@=NB_n(&%R@dEn$d_8zcH-^tC-P=0AU9EuZ#z{&w_e z>W4*S09a``=FM4zQP-T0S0AFZFnKM$oBAU>L)s#L$3~MyoMx}4EwO6S+gN=6U|jy% z*KiJLk7YAn!LQ75GHw60M(oLhNY9$zXQIo6FJN=d3OxSgyZC3p>6p1P4P9e6XUgkN!=v-h$@?TEeTIX zJ4Dxn_ZfGg%&T^+#nu*w;O6-jsp{(QeF@OLkNOz!^XNJzG^(M*OVf_UZ zRLLG&ldmwGZJP-VCPO^wg`c-J+bt!nYj9r0eJk4_i_KQOOdqp zFTD9n9O-Qz3VQb~Ru`$fv2B0Wzkb>*{NM5voO|sH`1-R4aM6X=V9K27c=Ybu&^6pz znjVy{?4KCRoy-Lfbup?n=1hMQ^(3a=pv-jUJStm`Kf$X3#d`QXa*sHI=HMiY^ zMZ4qi)x;Ojwj>>?d6t8-cfR}uPJXB1s)4cib6P~`N2fcEq!bd&>4oHGUXcH$qI^iiSU6+cR9()x)PkjqlUUn&ljvRyUNVs2r z;c57N<}`fxlZ`;*;UzV|iuad&bC*dVo?B=n5~6&*NHR1UIq=-k7xj*LUxRmGk}&NiIz={_)2#e*9y&hmv70 zCraPb>GiYN39b5Hj)#X|jkdJy&La?vr+U*M`)B6uz_}2E##$@0zxn}a*AboQsO*m~ zryB-O0EuMc7*^7HD-_Ju;*5vx!6wfZc=i41xK366ZykyP{4n6bm+<3D6L9eb7vrh# z=Hl_5Ct>xhS@`&GIp52}M_+w|i%xBYx!+7h)a6%T)TmJyIpQXq*P{zo&UzI++J@1w zVJMn1c6rlg&Cqt_3)quWgei{Ye?Qc4{uGl z8O~c$7-;@7eDokg;*=DJ_j?t zcn6=&`Wau09cDP5WT}}v;Vk>s)VZ92ZWww+NBr;aAMpDYhA0fO%{JGU7%@(6Vppxj z)Sv&P{d+gEsCLrf;!CT+_jOKhIMV10e%{!cW zC6>atm`&*Msv*AEVi^RU+j@0Y=r%7QP z$kE}E@d{4KVPj1SX(sQ=VnP@dV4ef@BAI^Fa$ksWYR`#KvwH@Y^iH@=y-4hvY-6kP zU(T;&yL(LjlW8MQ-C|~_y{h!Drg^M!9SR0k=sjl=T!z4^!dk6(0$EJJdNI?EPS_z} z+mm%6__LZIEyFf;CT~N2PPSnJ=y#(`9GCW}!dGruxsU>$q;ltq)f=y+u~JBF>KzH2 zjn;vpY#dBwRIgS??%IL?FDzYR;^yiC*99iKpAt^KIUGsINZNMv$=WDov=1vG@h7q` zhmPCIO6g$AwukcR$t<)9@ci2oamE>KFzE8zaMqw(=$Y_e+At^6lRJq9bC1(wBUO4g ztXz&PzxJ5=-AtpVw{`trc=)lKZC#~`JjWxOZ6$eNFJQcMiyyoM_dYNh?sQIf_3#&P z#ZW57m+r;PuOGv`cYlc{p)HKsyUN+OcQJ{+TuRh)C=tcpB6Mig6dz0&i~*;w!KM9g zCZY8!?wIfr9&8?lM<2NjuaT(JxU%CmVd8U-V+u98qoRu7*(w5S=6-}fH{6UXx|U%6 zjMrEpxnIV!np$LHIip&}uR&gcXhId1GMlRZeiXIIETJvKSb0UlCus>Ty6Red@$Q?r zaLDcGd*v;ZPVmAHnGaAEt z2jQ>pKj70~IF&P7ifA&DLz4+h$KpSqe~lZ?I|I%OX5rhvR+>5r2}3F>pu_^bu}dnl z5ihg9d<$b+cEjYSZpQSlp2y%j=bEs9>sKs;&&e0#`#HnS`dvH!2Rv}+2y%6r!b$UJ zYCb{#Q~|*}I>^*Afm5x{n3JMPCCD1Garo=eYOo=Wk|@iOQKNDo$8{%rMZ4N#T{&s0 z(&Sf?$yzyFyLGrfL=Z@g-@t+Qfe3dYw{=G-R5DP5zI5i2&m#;>sn4frI+N&&L(%3~>I-?`s$aEfT&ig&eANs%xVcX62z-yAFtI z=7$acEMdqladdp^ z6zsQ-G#~D?A<0fmp!6CTaK#Wru)n38*R)M*Fl+w*;2Ro&02eYT_GH3~4$e9U2O@sO zKS-tRybIN%n`n$wmEN$NV=VJDPQoW;4euevVT2py>X;`s*14HJyAZdFVI`rv_ zPX0cKTeS=uvx?wD?SV3K2J@VK(XCTQIHhmJ@&tvL+drP8Gyt-87ohuTCo`rz`?hQe zoPwH(qhywAE;$WtJM}yQ(e&?b& zReOr}reof;?-3smf)>8c*qc{O0=)x5ngy{=`?00{QHo9fuECCsOva&iGl!!ZEhDp} z%*!9$+Ql-=-BxVePFPdT-j%B+DRnna=`{dtS_E((?#6G^elkuAn?%H*OQ%y2n3sg5 z3l^d%GD?R1aHHdRrUB1HZ%X`Vkm?PG`(~=^p&wX4?|zaw$?)e2*=k zzJ{|$jw@dm|6RNjCxt9QyXcGI5*ACgN}kb*P^iC-t%I;(?Z4Pdr-X$xDTxdW;$BY2 zj!a6|Xlvf2Wp}jlE5+KitFgPt1szZA0r%`ZSpDw?1o%L%lr;mS? zJ>UvS@bvPd7FMvi8xB26#mp^)kAE;)wCjF^yoau(F5d`=w0kvocH!PGKfUU*)w-!$ z5_6rsB2eokLCQ0;)ZRz?Ia)WMD6ds()hw8G+7pXYT+j4yETFK?r2j~hd@_3ZJ;cw zX_EzjkkByJeXwL+^~$k>Q&~P$y3?)ZC>4$H&P8&{UaAs@k#Hh>LI78U^y=1bbX z%j9dyI=v}6&8MVS>h0Ti>;ULlJv_*lA+A!43plkaMjS+FP?-l`zhqDESr6iSlI_5VgB%By*cr5u=O0y%|j9G zNvB>Vc}Pn3!Ogb~$H<#U;*1_4c;((paR0<#5JP+FJZcpjm~`mm7i1x0cQ(SpLb(YK zf2av|uI`>B#0n6f#IaXMQ88o!P&1;4j^~VO486SXq-uNs$KxdwPGj87F;d0AK1O?M z8h=iDDw!sXQLlL;@$5!BuQD)T-6BEtccrG^>vAh-#<7=b`=FHdTlOsgHN&y!AWg2=omF$@D&dWCmJTwGFl)@Iby@NzF95>klm zX~z2knv;>^Olf=>>ye~h;n0$kHNIdpq4j&_u!j*p^)oIy{E6mZI6G8n3gRV8(4<{!fn6XBG?%UjrB*>HLlC;Vlp-m`T4U|c7>sobr{R~6 zUP8Z{A7nl&g@#AKjm*7*6P!2~G~|@bT9*~piVaQ&e^fku4t`tt6V+Rja)+p`4heLH z%#;JD`bwbNAz~aF5vJuHq3tgkz^4dMA;a45bs@2;Z4g*K0FEsa!4M2&VB4kX2Jflu zfgPeg-5JNSy+d@Poiy0JJ3O^t8?+-i1}U z2CLF_?ISWDi>QGr746h*8>&*O@#W#Vmtd-t_jbGPXPZ!KcCD!+4c4N$T#-S?&6`#% zWOmE+wYH|{NbNh`+aPc-fj*lA`funMLjs+ITPY?hTRt5CB8Kcqj!vZ3 zCe>}_7a<~*XL}Nd*42$j0UtUUwt5g{-Y z+qJ*1>{E_1TopFQ{*q&pihnsBsV~$3aAP0K$7~y;E5}&=%wC?KmCc)d?2^vJ#l_*u zo9@MVr!>W+XP-rSA$=Nna*lX#R3u<^K+Cb6eI9if$b+(G+L&4FH%QGbDM%8_ate5; zzeBc2H4?Je#O!lcBO$%%-Om=k7`4 z6BEO|zVM-;QmNJHvu`ET_c7O<1f6F%8HIj9&FejZt~nBsYY*KcLax3i zowd4iqyT0~&Dm#blh^C6TlfUyB+GH#F-``*;Q1=F^jLZG*LWQS`jIADFw#9$gsqh9 z$(y_IiNhsBpp#gW^gOCvS0jvRNayb1#@5i^8QW$GWNIsE59v%Upj!L3wM*&XESZ8M z%dD`r+Gt4iXzlC15)9g$+>>`~Q-fn3`kWEc?`%w&i%I)QO+Gy(!3eFi%MOikHzcSu zpuQeVpxY$ql@aJi7?*XSR$ayY2-P+E*TRv+M@UKCC)sWq774e~LV7K?I93f62wDpw zJX2CE$#hd{4aiMW;2;11KmbWZK~zV8V}sZ3jA{+Jxw|0QrU7tZ?O~BLqadTG;u;I0 zSp(g(k>OA`Ys_2<#d%0emlg>fKT?Z9ME#*Jg#&wiBK#)od3j0`rJ$?QqK3CRV$B<;4zxqt18)gC#H1*M0mrVmZfW@#>r>i09E$fT$AKbMI6uT z9s-tGiS{;yBej(@*E};U!ZO~3*Rz|h)K(J>tsdCT9lrw(~~kj*@T@ zVT95W%gWekIf$d}xt*C?i?h_wKuhe835|LiXNRIvyVNvdx`RHpqCN=1M6VYbu z{Im&eNX{{7yb6tI4@wHGZb?(jtg(95$0`iN5XExRcg&NGkzuz-H-tL-p?TLcM>>8G z(ArkaXRYb{+$_T+vlAJW_DcCVXL;F~NZIl)ef)H{m@N%(KU6xt2KrE;`?Q~qK54V6 z9!t9-V`oaa^sxhBS=!PjX9l985zok?-X z+?{6dlZuQ{$Ehc1I?@RT0U>!sM!GJ- z+`5bZ$SJ)F{`?vijNu|^aIO8f56ci#R@DWCRe>elrLXc|hB z8b&Fhmf!JZ0PWw$6XlngGtS3R!CvJ_oabiIn?E%qWV*1E3>Z1K4r(5by}NcCUHy%0 zG6Zw^*b?QvBXJAkq$k3M>h5A{3$+Y$K0*GDt27bK~k{jyMY)a8eY51~_&*G9w9&LfA;_S+WORqaxsrRZ^4*wX7&5 zjW1c_5&|y7-q?WG13X1c5JRMwIGee5Dy0?$pD6-}Spbc1BI?J8cvNVQ<rLa;8M4( zN7n9iIyBp47`fNg#0E4on9>IWULgw;ck4m6#(^aj$OD-gI$w$Ij$9#(7RL1b$RII?f7-w4|41J&7kx*EnzEMJvex z{U23@Ft?X*5a@PD9G6eUq6S^@2ct!JDAj=I;E8dMdHdK1b-gD7sZ31zyH7Ppwhi`t z=C$LG0|E{RI3VDFK(!#y*f0v~t~e41%13RxTaJ{!-o7XD=`6%vVss{{(8@`shGmzg z8wPkS4nPt_NfVDptngYK#u2NMt+0sR`kai@IL^HY1!**Bt|cY3h{%0=LGSh7V%%^< z+5mhle5x@sS!!$UtYd5f%S}>ZsqdD(cokDY#mKHNIjk|UJkr$ekk#5$5VdPb4-tqP5AyB_h z-=iO2y{^H|&GPaKMypOIp(t}FcBLj72Lh#rFfWDFfV_PD&E+F?GsTq@;*pn~Wx`#E z8&i`#XNY@lIKw5cCs5K@+}*w5>EVRjoLq*bvhLA((!DBm@Fhi2k!+VYDt47l&Ojb^o@vl-$%@W(71>2(`pjBRHUsi<}-F8W^ zm|~6V7O6igrFL$u`ZJye))Osj9(uk32x=Av@5o3ri)?A);-zd`&38`plIRC7AD?nU z+9<(uv$%VD!KWzDIBCd8OE$56t2%hqQ79<`0|I-vc<|G{jjLKiE#%Wd%?s6o2vrFg z4}}a)?(XJ_q@*~ja{my7`B*W_8_MPvT#E?TlClzby3$7LSizO+0Y!O8+`b*~3q+W& zC)dkynA2KV7LF<$5IA-aup#WnuEBcOl952xyIvhdhj_1;G3iX?cd0?kA&;}?QHEvX zacaCzQ&8{h(im;d_lLP|4?6}Vk6XWrdNGKs8dbfXj*7p9GHZQ zIMR_Jp#4OA&DG7rc=(s5r|{RBB(t`J$5P;wym>7O^0E=bSm~B80ht|DGEX&W=maVw zn414445f7r8ZDyA)_gVKqB^yw@)^^94`X&qi^8#GssX^G$ZF|@9YqC>qBVzrani%$ zg*==}7^XlQ!7r#O?Q+5yjv^QVO`5}p<3M8(Tr0JeMzDCM!zl5sNn_?1> zfeeq(#H%Ta$|zx|N}<}$!wp}SlYxZzcqHc(!P~ zkx>Ilf~!B_+SI4{v4blQ-!hs;IES>sEq9N_ppLOf-J5M8sSN~fj&3?2aNHnpl*r3* z>-W(%EWDay*WFU_emUA|>rMHJ7$nD86X~2Oqw|$8k~ecpefq?ZX=v;&vORC0$(eo# zL`*8l?7^tFYfV)4zk!bN*mv973zj!CD&26fz4B2Uzb`tQ z2t!M2L~Fd*NX{iG*V=cM^GfD9+GJ|rRNKu*%(NYSwMW~n6QaC>KtGPtY#nsYNKe{C z)sfvs1w|@(`fmy?5wz#= zupbbh&fXx!G~}ygvNV7Pi%1YtO!^43P>OGYaFiR zQhHF8%swVJ!KeH_r0OB(Ms@g*LE}}JiNY2gFz%V>F|^kiKyEhG-Q9Sgx|EmqVh9Y6 z{k#p6!NdC92w(RK@U_}0Z>VO#aFlXDpdmnj0I)z$zgzQw-PsU&U8{W*@u_pPF((s} zjpICIs(3~d7J`SE;6()mMha`U#g;VoL`m8glA1NxWLwk1VJzoyC;Co5+L;tFNG(U= z5i+?nCJ+_(O--xkJc*zb&YQYzgV9oPoXUp)W(9Z){_?q?|N1T%nlOaKgGET2WZMIW zsIBUc*{;F08Q#*H8k$m{ckHIBgYRf^R-g=yrW!}tnn1vEWTKKzR2#C?=A8HQ5Mguh1w&#Q;HUCPVF;HY`NVY(|CA$li{) zl!|ds0}&nVi@ZEOIa8uq1-ut++PD5eTM-+PuJAt7$xOMVLtkD}Dy9r2q| zfvZl%qc4ufF9W~EkK1;jS<_~i^4k6Q=X)P4pPvq&CIKkp!IN}A8_mKQbJ2xyP}%FG zq(oCcwc(Ldp{4N1DB5Ey&w;SxSZ$6@oM=;1ayZ1TLVbt-x(}|NAuR~kT?k}>9W-+D z)LCi6f2~8#6Ua+PdF47V?;7qICbs%P? z)r4*e&67D(Yqt?cZHIt>gFrt7V2;IO3pKJ1r^+ru>wwZ`wC#|?bV^7Tb6Gn{-wi^c zC+4Z%SjqNND)mK0^nA*vB;)OGO*u)$lM@qw$S%0^w#(5X*pH6uGO+OHshIO;93rD4 z;Y2Q)i1S_-UyuH0cZR2n6H=2mV&dx`0aWpB5tK{fJR28XIR?E>CPD4ygru#@@W$kC z0Iv|7a_U*Q;GCXRwf92XE63rMmTRzh_7}*`%%qbuSM1I&Mu4Xiw#6l&_f1gn;u5Mnm1&T-84maY{uV2KOU78~&E0d1w{84=8aEyQSM!fR&N|wsQ zs25(ti+A6JK-WTKcSXJ6pd`|iL?_jkp$=S1V1g}|dv&cH*DT@LS( zeB=~3!;jMU!B_Oeh>>?<-Cp3vn{LCve!UQ%x&vWNgW=@n33um0oZIOETtEJGv}i#> zzCaRxXR6B=A|cTWZ%z3EeNPF(%MXmf$8$CyG9rl1-6}|{4}fu%e%dC&f~#hA|0KBP z?2SiktD*Sp+gEY+$)Ofpef&{6_6AIN;ubtN=?|QKUT?hg(nRcjD4pT={5TdDc$0}S z=GuX{dHA)My*v)++80x&euN>NqDfTe8aw?_B>a8JP5sw)Snuw9DZZKf3a;wZni}s} zaP{?r^Btqm=Yeq;^TB_BHaFnW2``aB@*ug@&Ednj@nSophFy&@*PVwMD@qU*>`YAv zU6PLEfI#DffX+lG%bjy07~p}Y`C*2nL!Wnp#&1*>8x@nnHf}>ui1|P}WNIFX2$wpj z98tN^B*{GExXp9s)!DsYvYn;-Jv*U(RKyHUsDV2Mdk6?no(g~C8_CN^xyv;+50SsB zk41>O&|Gm(S}Jm)G7#t$PTv^jh^lH84JM!coY9yKPR?znXC)-U%SaQ538Lp#1PY6J zX!oa}Gn+5#cC4&lXQa-`e40xZ(HvC~q|`@+$FqCjuiH*IY8M3T)Sv?z#{mLmH(;Qm7Nb&-u_?G68^APzdvPeo{~uOC`KlA z#UGe(uOZIg89xfX{sB1a;s=pZ&<>A1@d`SVI1lP|DJI;17hDq-S{ zV9;>PV=0%ST;vyIBR7jbI^2Z^9=sfT*UiU(?&0un-T^O6UW7Bwy91Bjd#mYjUOrW! zc$jQjH3Olv$v*A8!H7>U#Q8%;Tkp$gn`6eTP&=~i_dx3|UD3Wn53~p&CzxY#scqXr z`=pp2=#Su9f;}A5eNWtHi1QDgyaP=M*VFrr!?vu}c;vB{a1wLw$z#k)5)4h76k`0? z%V=ZnjThdTisqerq3^(JO^tUv@Q5MKf12_P+R?-R>DS+Z#K15F&`!OGk|CvA$319> z^J(usj95Q^oHXcKEJOfCKQ{qGIxqvn*cFwyAkf_jA3s6{2-~^)$=L{r?T)L*^e0$$ z(B90!zcave{Att>IB2^z*wJbvmEHuEjz~F;EhDAO<@Z9RIUDvv5#Ul&*QW?`eVXy| zUJ%5DC_7RG2na!!2W%<;<^=z${X(M6OAdx3V#wf9OzhgFq7_*vCvy*@5>>)5 zYiQsX-f50w65@oDMUa=Fupplrsd)x=(&UjkzuuYb{G(4fXmq2ue4SP1yt0qI&iA9V zBoxMZFXGm%z{X_@uwmJs*tGm_el9>-!dA+<9Au+?I_mn<0qMGi@Db}TBX>$0w#aOP z)NSioLXr(@Qy;OoEko5%3`=EYU!D7xlIl!BW-?u;_eQsKT4Br5cX9i(A0V=28!Y(kP7Az6nMIfccUyJ!YYn{+1j&>R5SYk*V~i12KVH@$l#yuzG7Q&g>F=G{ zMMiBA^j4o&;EiD4M2s6d9G6~kF+TX|A2e$gO1thNQ&(O65nKy%q!)B5PVUnd@hd;Z zs0nW)D7Gz@{q`DOeS0b;*d1~8P&aJYRcy=w=6vuG-u~n_67j&puY82;+(JZ!_?j+W zb!rFXuU~?PZ+Hxe5v{O%`p0OVEQ3yIgN&uW;qEanAT6d1*3JGJ3^xTJ4LnEc@mSr8QFALz44#F zkh*mp{T1bKJaj@QXN&BcJ{{@ULBIj+V+ZR)v?P1DLbPq)hW|Ujg$}@YOqsme==*Wc zY&B?O>z)4Fx2^qfQ%O5AV#~hY$A0@I1dmi z-{Y?}@z}+~BB&$a9Tbj&J@JU&@+;p&!rj{$u`#9iO)WK&G`7Qwed(JlOU*5H(;)1 zGg(}0b;{k#A03+dn!4OAZB6)+t+sLddaPjCmVT}%Bub5;1Qh;LUS zqc*rWIqCT!;8YQI{4TB6V)@bFf7MyHNpuDMJSE5dKYLdJSXJ4-pLMfjz&2o`B^5tR zEIXOedw3bp*d=Z-2L5Lx!n<`x zaF`&QCCQTJweA_UI`dHHdggE4LLcT_u73@o1=h{6YXrZ_WBpNj$KUcXG`=p%CzB*+ z;(`-vrsKD~^hZX`Q`n4P(yhWB;XNcQV9d8bKTyYw?h(Q0#7&}d6SI^R!K+gQ0)zVU zPO33sPe@Ef&;ElAm>)g)GTd^@DahP77cac<9B#gG3TC{vfSU{@geEi{;h`2k+f&8< zAdo>poQapUf0Y+ivug0KJ64zjS_jS#jNsQH#p4u(%Ouq3Ku*^XV|>tl~9Aa^J|DnMv!B zl$6ZB1SAVFCa%HiWrg_9*fVh15x|mv7V=_WTz>HccvWR#;UB>Ie}1CsJqQ;vz?;&_ z)oU?k@~xQr<7`}e`RRxWCwM0i|L*ZAxc`C2@%8t=q2GbMxXCE^h1E8JP&fLGdv_y{ z%uY4s2vt`QEe0{`yl*z5$|o9^UUe_;#bfdER2+NxGZ;OhGuEzIXY#wT9};5lqb5lR zVYKv4gz32Fp-A%?SvcwR%W&82H==t8F>@KEl&!GwIqSEAdz52I0lSp40g0q*vgk?y z1Bw=7<-gmo|LBRh`WRsO;(vINe&Ls$%H!B_@cYk6hz$2KCQ%x%?MWt6?2{y~Oh2b5 zBYMPW+hktbsM*h3M&coDLB^{&g$N0-Vx z{JZ)a{_?TPtSzwNoDnUZmz;fKW;@vwuqn_%DWLby4jX6(?Wf(XCQzXE>!%5i*;)4; z3dlN8z)_m>9{q=+*N}q{&?(g7z3OU48cP;39Ri0H+>>%LQ;iFxlZ|U^5qmP9`Y%3O z$&;3*J6I#N1_R}whnC|G$~9AC^Zzm6+q7@{Lf1H!GALY;6n|6>S^&NIb=Xg~oB|fd z-|}+o5}H8)D|)UQf!tcmpZz`h_wLMq5z>BFP#RfC31Sg~Bf7xb*V4EObjx2|8g%)w zNMcu3Tui`Q)`-O+g-SQ7cd3H*p-uS8U%tcHS5Ct#@4k#9 z54jVs&Q8H;zbr%4po1~EM=-v4=U#j!RKM{py!^?zxSGeDty?(|>r=CF#L=VSU7m^M zYretU%Fam1_rQ&BuEEfY7otnd01O!z$9Bfk44Y>+G9|4^MnS1J&Uoqr{Pdsqap{z) zaPtnJ|F|Cl=@Y%|tH<&2yrXcz#Cx!Q$uU@;?S&&pABy6f-|+04Pnt5k{d|}|06b}} zM#AV#&>s*G$RpNF7GBpqPxyK>>^lVw)2H8$gAeEe-!1EK$7|mpgpuA$6zRPM$%*kr z*UwsmM*UlQfi{?6Eh&{)5L8NBf zGCTr-o?k#P`~yP}LQQ(Y%72iXl}Z0f?bUtv8+@p z3Ct}X%8;)a{cQ}{)psd>6uhxDl8MAlJfS39P|d)^C58D&S-ad}37~qMtHxxr|Je%^ z&?wxy7wX-otCVk-({z2(q;s%}+UKR~lhHMd5y1%X#3>1+OA9PXqCbx~lSHeyU>geZ za<-ezkc!emSL>{Ahh}_tgq6w7Hl8)!fAGQR5=@hJ2CI;1yB4eu&z{WKuo^$k{t>JG zori_13eh8WKg7j$K~-T2-h62~F1_I`bnV&`!GXp2=&koqMv3Wu^q=n*7K&91=i{0w zSK{m6Qc#kdgmoKp5!tf``ou+3OFs`UzVup6y@cj*Z#wK?)Nr){r>-96C>mYx=}N1c76J^Z%agY&;Ov4Upzkh zVkTB?^g&>tj+6`?3B0zUV(>0G2KI8T0;Hj9{KQTIlABAqVV-rN7L_+&}(7 z(aJyYQLjCGuDPg|C;bM`Zur=oiCt=u2|( z`SXwBx?3NhuQ{vD>V%PpcEy?%3-JB_mLix_FL!eo4nHCq>sHOj>^Y0kiO0NEw)FV9 z-AzdQzD)rapnw30t1*BUS*nd@M*DMPk{Du7M*rO|)NSA?F??jqrN)B~=a$&5AoWRG=Qjgw`yXo8=yikwYp=5(Fr)~30q zqrC)z1<(x$HaxCth*-4GRxtv*%-Q$EoZ{3qXQ9^@ld7pS7FNj1-emr^ZQV?Z++_Ow zr(knxJo0n0jBuo>W!m}Mh60-HEkh=4)2dz17jnN zd3P0q#+4Qq)GYkKkZ{9rZQY!1Hmuqkf;NiE3Py{h4@_f{Vc-ZJ)6>%%%-*G2G(o!? zQd3fQ%G0%L46l`P(h!8Yl_D)e-swB0=;#;<3`$vt?B#b(J|SHYN(X8Q12fWP`)#G* z=pM*ROEy1(8Gs~!QPHX^i;%Htt22w^GlFNA(-fSNjPx|CAK_i2;7LJ+Cj+mgrKXvD zVZ7!|%K+yD7e;5-*)B(&-r*1e>xL{f;S$*EIgQX=&hTc=e{JZrzM;=~mLAs7{Vf(a{KGf2*r=NLTry zvz{3GkI{g@(>)jInF=STYf-#r9Rp}C*#FoR=)e?^0JQeL>MC6oGvyo5$wd0q9<#e7 z!LP4hAOgwM?lM33kSdyH`Ui!gd%purURUh@?)ux3`!Y?Hk89fpUusD!_x!V#dllb_ z1W6qw$wkb#)V1_Q-%$wC%KgyZAEV>zRP`RSM6Y73XbL<6oS}+ z2Ouc4v%`FTR}bxpd)3r3(~5Nufpce%6bar4K$^WS6?D!MnY2uZU-p*);zm)(0W$(> z#v?IN+8gnnakk0+Y+DN00KIMLTW{$*0Q9d3&_8b&pc6`&h2%*MiX@744H32ZH3gun zL3&1-6CXx9ubbqLXw1E-QSzecju#`Xn+;Z*B>`|5O~IYYW-+zi%%eC%TGQI3%lW(| zeBkpm$@X&8Ax2Yqw6~PdXWlBq&D7!T?a5Qncnlh^yVLyL$H&v;Q4l#v41IKVE$JZk zR4;(?@>2e(ylQy+_`-_~D5g6Ax0!mc)$XI(;G<`}+*wC4&CvB!>m);0Mx^&~hFh;y zteC+PMX6^8tM|e<+Zw(H!k$KnnRT@dO2Tj?1DcC7RX{l8Ysm;25*$xJo zb6l&{1^cT_feuRn!mm!!r5aP|#M*JH4mOyT2WFqi&O>iM6dI>QbfUzXk9#R}6j0NqJB~B5R+V zj8q=g^()*7Vq3DOSirxG{HiZ{4>_2@=xB8)CazA>Jgu>a5tHf2qvvaK*M5%Ioq6gM zwcDSS;=x#l@i(ts=5C*CSqAm5lJi)u15Hm7xOq@$vYEn@--#Kx_o)xOrZE!uSNV2w zEebTwZqBvZyic{p1c@VvEF);zF<@Nt$zV1;`LZ|UcCF2e+nNLdX6`piRH)=ps2{Q22io8qlDml=QN8;*ZeW|_{Ncl6zAdF>p{|8D47t{4Fgl;NP0Hp7bg=xWGT&Hh`uac7@J`=TOC z7w)`PLE2U@BD|rIlkSdAZO>C?TqK;ow~v7;sxm?iwbXfE{_YZV)V^kZ*#FoR=*Sds ztjqS_#b)ki+&{!5_s% z;8{u?SxcxLYNPlY{pr*s@lr}^w*(2hv=XtHE0f>+!{0J%S5ge9=Jv@H(2RdfTiGYo z>*U!QT}-XzYy=tXi^`FH$MmDat@lP##-%fM92+K=CUeUgXBMPkpITN<^PaX|*1KB2 zW}!EjVRtY4#=SUqT}ShJws)V}JzaO-zTMH*Dxu@iZugY2bJ!GUECrg(>@>FEJ)Tco zSmXB79hxTQmD-eAJlqbq?H~Ih1)4FB_C+%7Lw$DcllqjBLCMS8m!{sdqNF9I^S<~E znSY1UZLc-7veM8Ce9JnsxNsZmskK+BEwVI}HkiO%^$L{B+K?HI@49IppEoWJ%;(H& z2^grAW_~Gk^o(gQH$s`~n`7hZ@U=!D!Ftrky^&1(DuooSTNT36gl)Q`1Qe`_rbtUZVhC=rWBH zv(qtCN84-aFlW0PG%{~u+{6HrOWR#;`+f(ffEaaS_G&;#2kI;X#oDR)6wtho7Fz&T zU{-=a%hZ~5)xJ?{@6ek<`TZH-);A!?XseqgICM1EfJc_6d8y!LnCNJF%&3ld=5D?a%Ts}?xd{!|# z_|c-^caAPK`@>D^lK)9iU>YMDm}GtGT`gLuf6iO_Eh~mH0`c_t)f7n3#IqKEEt=TL zH7Q`5xVz@K>|?ERZZg}utxd>IHU(@7>|F|wr7=3$j=CBxMsM%ZcyHG(2Cb5ew>v-g z9cE1?p4Ra~Hh)@Y29jSl41R}t2iqW|&L}tjCl`o3RTJ;EE@33z*wjxJ9y#wmL z<&2h{QH<4B1BQ)hIpZ=A=r+3}yYK4mbFj@audk%lfcnjq$~N*t?PMEE3i6Sa7SH3C zi;QJ}PtZ!hJ4B6)73F&8z@aYI*j8$ev~5ntyp@V< z@5OL2h{>0xPyymPR1z4o7ki6_R3_vG3=0_U4g^#9r6YU;LnDxrncA#+1@Z+(BcgiH z+`QC)bD5pz@(8!B^luMgz&HWx3YuwqaBOz~=}oS2=l7J+$g{8RjzGL_ZhIdtnKp6X z(pU(bYv0z9%%V$X(s~2Hi}UmN)@4i)&3AT7N8V|?q+Pecd6Or`UVUKi&$zwXeYJ{MokmK%*4xvNySf4j@StFm18o_M*I zF}SYVw}x6~#$O$`lc9jLqzbZS&YZSsVpG6L0dDlwJg!!1*xl~=j%Q3huC0JhA$qJ? zVp{D-5*W#>U4h|(`InWROh8_av<<5e6cRxI??I5t<8|E>0IqG4wJ+}7eL}!o!Vy`v zD4?eR`L?ZD#yX)mf13%ethfNu{Cm-K-w?eXs;eA3wI2%D0KNT;)jrVD`Zf=3jP+gL z2gqS}(WZclQegXv+{OBIb!K1(o@;xLwv${LcF45-R)_i~=FgMNFoQAaSWH(Rw+=;n z*XWEaWdwXYc}!Nv6x8es>$nZ)61B*d*0#QVvVnS;)q}_8wluy)er`4j^K#%#zjA?8 zflL9^(&9q+(v04VQQkXt;{HsHxncn1=VTL@Z^l+?#Y+nFO}CBP0l%4O`TVp%coW8{ zV-v4k_s$0B?Rxk+a^v|zr36*Xf)xqW-f%kdXxn{jXB6lVAg(skUi*7H8;e$Gt{6ZC z50Vzf_*u3>nXX)f0IAWudC;eHA5UWFt@D+)N8;{qBr!qa_U$#^k}iW zi>?yhK7IyFE5KQEgnw2%1k@bqD=l$paRG|9uoJzGB$C zR!FWUIBb5Wr0HsnW06{csBKT>fN1!=#&H0S{&Sm;uUS48Mx;ri~wc=z{R+J%e)xXHeNHIS7 zqN)7J)$fkm_kDS_ZSTA5a!=daXn)%$DIoc)HXunyoAhefC#hw3+NOZ3QNY!Gd|OBM z=VUuwVUKdQrFk zgTUZ0<0CDLNC8R-0{w$Sx&E5DU-2>Vg)(#R$Vu-f?NN%np1V1NCjS10eikUV=W|CM zduQL8w&I*m*`GEA+L!{`+@0DSE0|LoS7;Y+Q^2M`t5Tqv5oYzbZ=_~2o2^P5F>Os} z-1LOBQ;OcL@p5XaTD57eQkeQl?VHX{7GT(ylfb#&t?rDJ-Juf4)j5X^m@$&LeS55% zJ-&|h(i|R46c_zNyF~L$^w1i9&H#O0uPD=g(+u-;ZdhuM0BeU&q?7h5Yd$x9Z}0H* z>EIo-0eXiS;EwwOvb5+OW}xhj*c7lSu-7TDor&M;O=)BUEX~QTGV2}C^!I>ar1_)? zHsmm!+*K{@`JMoQjwVuHi5}W>S6b9|#T#JQFJm&>k?3H?mwhWQD`QYCE2e@zwRZM# zc}(->ivu7w)d$^FMuKZR0z<;lrAKcQ-$K{Dd9Ha_mly)~D0ngO+wS+ZT1{t}m6hcP z3hRt89<^o(6l>k@Fkdxa6`0S{(9g@;*H|%hnC{sfX%q!)fZixFwS!FN?bCGT%+-6= z9LcS#_sMRbO#zz%dzS)jXWrac(AU^}4mv4&75~{Ks3cQoH0V~@hVj+cdjA}Gbem=B zh^^+Bu{v7k8XtNG^3Q0SoS(H?Ca@r2Y6KDHeOc?~KJ-=NEJ2QkcgND4JI7Z%gXVzF z(Dw52HIeBp^X!htAGPVUB@L?-pMW5-x#s9j@a-Ge2|oUTX8$TK$TI=nIuT?C@tkyx zTVsMvIbuTZ`UdM%3#+*7+(pqP~XQd_}H!GdK_B>gGzWjFD_b6Zk^o}y-W&>@!B(lA9+XCkH z+qJ!nm)*{NlLCejbATS}yXeqNuC9$qxM!?#)c020w@gvHE04^u;r1MWWLH6$n9r?> zf6OBW*?{#nru*)TXaCg22Ens#^1SX+`c9j66O0J}Fu&dtrVr-3YO>~@wB@yZtd+mv z^7UNDPL(wG7I^K5LJBv68>5YFaQ<}cv2E?%8NnB6>CwdCa67j{Am4+)ybFr*a}g2M z(;S(Wwqd2w&eyEnogb|C3U@6NcuqGZaB6?a0_GBk>Q8;pyp`#GX?_8=WF#XyEs00T z6&Yae<>O=RZSAk4c8gm`0UMyVkbti9c*g_hhPLKq+a5Pz*O?i1OKb|XH3h_g3HX@6 zaHcZXT(bfu2BftqK?EclN}|iI?l<&YW3H=g*Q9&BtrxhaX}wc8;AB)SlUi9#Ir}4) zT+@r-oSHLpB$z;^gN#2l2tp-;6qd0VmEPFXBeZvymz5xI%O-+XA9Mu6<(o*rHu5S(-0sVFOjyL`_H zeC*Up6cBQ5Ebi6bzngtupfr-f;`A9pllLA2h7pAN8K9n#xYjgUVB72kyDUo}z0{b< zhj;6Vpb#D7#$ywm@1Iuce#?t7u-v#@aAuM``b`%T3K_TXO!Lg7^(ZSXHvN~i0w=K9 z3l%p(d2L|c@)2n7CD;JHy^r8N(SDg?I?UG^{l?fQ2xE8BrobMjKz)pZaYbn?Gq=ZE zZ0#R=kAbUA7;(LAncBMimbYC|)UBg~6h)jq;bg2$s~y-%T05CyyAw=GBU&@xoFHJA z%zMk**AYuFX2hmru0KDTM1Rf+W3@x!gS(IIr`sgj?IyE8qXcN~1dLpSJLe|tB^c2? zcdlar@7*P>b**PFYQKB*AI7!MXE-G#m`hr_lx3A!e(COlCiT>5Dxldtg?5z`@JS0D z6dJy}YWKo@%dB4&mlhR5f$<8qZ8hM$Xj?9Q%rgy7tA2}i&Q&Se)a-YAq1ASku0;VG zpu5(1*sZCT0*X$|WI+19a;|c{gs?B#6mS6wka4PyVRM0&HP{52M{@&_oneDn+Wy9# zsJkJiw(WbjyBfrJ%ByID!TUOD%mjwpgLUqSsuX2h zAkvd2!FFm33N*ZD$vs6F+E}>od!@0^Q1C%sG~k^E?ELO2A8OuHatcYEAk+%*=8i5s z`yenZ0%b)-*p#{v1-V-+%bH!Rd5yb#+N-N#YRYX33N)uoxqOut7GQH)0&+4_3DOHp za7NL?1Tl2ZSM`s7+U@LQQ=l#dY=B;uBKB{Wq=2G#TIOqdVc6T5OAeCVD4PNSJ4^Uh zL5(^Ea8jfgfvB{|?#8FOhGpZnpl75x7HGF3xKjhq@`A&2Ki%o%gD6o5*lzJYr zFWD5>^AsSHZG2vBaK7hhZ`Wv3paW2VjHXkQv*&xWC-yDXvG+l`Vb*E->SRI%o;(T6 zbyScsX|3Vb8y*EQ{Q{G<;~X@c+rHBf1%$2Sn=MxY(X(SE%XOuSU~uox`i@0e^+rHk z@gSVBBFalkxE^KpPHj2;s5zkwz;>>4chBvC8U?sz)u44O%MCBOALvitw~v)2JaRrS zZF&VQZ2UWgBBt*UvsXLs)upbP$!wq6Br6K1X1;E|w)?FXSbwIC+N=1de(U(Rq}7Wl zJSgFjaQ>EHOt~F-8tPNqwbd@Uy;8si=~`A}uqj|uz@|WxDB#rWH0hyM$-JE{ zZI$90EM)J3Fymh?hM5{8G4ax#i+MI0&Ia4O^9?;OFfTB`FFR+juQZwh(sXu6P{3(n z1U{Vd9kPFo9^tmhXlP1MY1Se&-V*Xi(56ol$gvjGRtvPwJt%~eR=hS~*7Lk;{`6fS zR`;EL>oQf>Iv4oYb^Q+S8iS}_`w_60*0P*bEsn%7S2;3;FDWVHbIwyAoEh5gQ*=>% z?(~z_pZwv~76~JY=x3g=a*>&j#8WfQ5qpG6PXv)dK!kvt%W!lcto64jrKg+Nz zWo-txx#MGi5YGqia7jQ;+Fe@J2_V_24Jg1hs3Qywz~*;1hgFN_l(z!M)t8#G&Q1Ap zcd^XfCD5~6V66GtHMXD8MsMAeM(sQ66VT@~vV!sp3g%CD0`wdc*Ft+m+b8RNA>duc zGs-uoCYYn%e0=?>$uBkm>vFR)=@*}80^Qj{qqZNBj$VVkvvu?l?jZfsOTjQ~Hm}w} zM%34vC92fS*o#SKq{_iSp`?)7UkmiP` zx8~cP0B7xoHm%lD?T^*^b1+@b&sM8odqJ|W@nC(jxREQ2)}ugqub~HF+m_8pk6(=v z23<2+Y336kmLI!P>iU&DSG^Ow36!g=6-2o8=7V!z(Aqagz)@nDMPQzhxDEwdvn}fa zqrInj+Wu#spnwg~_laR{|D80Zsd`!1$)H96a%Zs?21}kK@FIX6QH+J-^7s1oVJ>E7)_}_Ln|h=UnaFOua%jq zzAH&rw67wq+CY z36>+Gd(x_+>2lW^5U!5yFr8=x#5JRKDHewO-8ZMjBW3L}LlQ4vKO;!sKYWgR0tVc9z7PHRh47cCV++>XnmCftMpI1T$&2ZAo z-OBb(GAK3~C!{D2W+q>~)gjF`020NCgGRy|f`q+&fllt$hhc`{z>tu31 zzvF|}FZH2L_WH85=$esas{~e5<*baKW<0z+j1-$-Uqv?n06+jqL_t);y}O}qbQ@Hk z#?z{@;W65Mfo=?9Lx$9hA&;;22H13Kj?BUo8D+$0VX*z2rg=uZmI^FPG zaPFs03N)?UCU&pQvYT~6t(t(Ur?;;GwWdd!Tij!Hzbz7XQb~Axe2=(!THouo!wDR!x&LS#nE6&W(=L8HwfI{9 zn&X;RX1;Pxsw_oiSE>(eOW>fssjbGWoo!VTy=38F_I8%h-jlN*#(dw=$M)VQS8Bh` zICs}s-I{C8wXug9C^s3!7jO#CH2<~d1O|sAG%^ZXH>JYYBdBJ-@$~eDk6%EOTBkLl zwWQC2JO-Mh`Md(sRXBoLYVDQtB#Qi;ENtVS)|!C4(|lde*~z9rTT`HAZ@IQ^on3yL zQ9#(!-A!hDJ6GXkFm}FE_X?SX>N2DxXPO&bx^)vO;`jO(09M5FZ{4d)nLneZpl(r7 z21xDjjM_#Jo1317V&)7Ak3x`-z${Ig_|otvV-%m1Qd34`Ob_^ZR-&ZLff^kk)|W?I zR2FSTN_ws%uP=J`ib4ege3X*_YNa+>4{sm%cvc}XF}0@5h%P-4=vRfJBARbDmZ5Q! zMTG@Q$w=1jlc~qchcA{YBqVRIr(2Jn@S$B+355{Odh~K21=v2mKpe2fw3YwVGh8)o zZt)kkUx8qR4=d?UTH{gR7>_)TM-eOW4(N>VP9BuW=q1H_=KdI+kuf?5$W&CF)U_ZtcI#iADX72vZPj>Ky>$> z@T%TE4sI%w$Lvl*GqaS|g8P}D4 zD}oG&>+J=ZFbUG6C3TR#h6ZNV(}Xa<&l_n8iO|YYatjJWY(yuXm&>zo>o3*HxYNG^ zd|vSN_QdAocobMx%?Rlnjj&*U6c=)qH#lh4xbIXXFX*@@t=gSZ&HQoRYq*S^o^A34 zXB|y`aF-8gzKdxV^X%b92AcD+yiCU%aoij}qq{7ig*Q$86t)>3&sG9t2IQ%%ohMww ztz};A)6%$Ck_Mi&+Tx^<=8h3qa4l5P#N1s%LjvaACDBwsMD5Z>uQJT{T60R%Qfo}_ zXbF^zMS-IY6$BJ!JPfc>#+r#|=CjJv`jSwhy(c5MAYGjA%=X?NS8Bfz3~>UQxm|k> z?ZHO6bDuGSU8fL@b6o8T42?i|w;lx5Ter7HQ(X(D2}x@~k7OpUMe2qXX5DE{?X+gN zZY}VycRnlFOY~?$*X*nvhypf1??8jusIEvNTAq(hTegFM9iH>`MOddGcr%{`LUy>j z{Ri*6RTLt}w+F7c>2mmNT89tc{|x9BMZhJHUMCTpyHyk*y}UCnx$aW@XJBuntoRiV zzwj;}iFSZ=>lqIs-1M{z96jM&j2s$?`QLtkU)EM5Cc+n`xhaUx2M!-S4$dIf+gPJ;qc;1Ac!25 zG_#%*0u-mEAcGl?8ap0cLIP+mwFzI(p3mGq=+Qj_C8ZWfXILWSW@Z}U1aIz;I{Agb zKg1W+jYh9KJl^mRw$VgsEzCw*9yLpx1Hsj_UFGG+__J~JLEZ7kyw5TB zm#v73@-`s7;X)g}qnEAx%Tkh)Os4S@PKG}LSXRb5{QS#OL`FuFegpx#69Sla6Eu`> zAviC=@R7%$S5#-?v%2Dcv#^#Eqibv|+=~hc4&C7E>$5|h0R->`x!IUKXD-_jfS8z2 zBSkMN&!Oa8XT9#6y!?U@5=aor-7`BQ6ZPlf)C&%UpP$dJ*Aa`?-0`IqN^(*>5HbKK zoid2Nyl%+ev=Q?bEJk2hI6_!XnY4D|(3_Ars_=5JLRt!iLKIkqzzaS>G(~Qx7?n@q zMY&f`OuglDl&AlLSKj}TAf1A=`qp)=wg@ecb3uePqj@nYvshgNt>l)fG26_K}(t{ zYGlyu2-wbZvUt{EVcL8Ys{FZ7A*38@JtYKRW&M8U9OvUQH0-S5{)A z`;|`fVm{~RL%^Jwk5@kU6qipLYnt`jrsA>rsj5W0=@2srK}e0a+}n0VxHP^o58{Q95p%(K%m zar2H~d{AI6oheuUV#SZt-{FL>B^y!zB# zIA!#~gh@)3Sn=Dpc<{b^@X?P;(5Fu=J_2OMb-EbFK#l z^hE`w4u_sP2@hO$Bp$4oPk_D={sBEvTx6YLx`TPR>6`VBVOS*;A|RK>$25)q`1l48 zC?{g{38&)02kyrq!v~uO%1d+c#iuiI)_K#=DIywyUUD_4RbZX3Zqf!7ry&hP@X~t^ zVDcFg5a`4Dn6eYr;IpS5$Bi$(g}~TY__6-vCWL$)tb_*f6Uw=*h!`Z!K7;*#jV$0f}y=5%+1R3 zZJ0Cb8%(?5HmuoJfG7fMr^&vU7jpy-a|$@u=aQnb{f(e16W6`-5iS`q6h%4f@#IZ6 z;nRP%Ai9fBO?jGV(h7=6sm#s9rqCmBE$3y~+$Rk{_afsj#$GIdHKyz<$FXKid0pT< zi{QNTg_q*}+it<}{rm6$9iWV7!+!JjOia7(W^9R$K_J(9rE`u_nC2fqtCECDJo5CH zIC)$@Y)#*Y$ETf$FV}QMk8n>0=gC7_W(1yl?IoN)=~RSJXr#0)I}IPc_5vQb<1v&( z_kedr>2`3;v6AnwW`eZ;mHbn3Q@TzxDInC^K z9&@vkS;tOuZz>m^QkSypH_2a zM{sVH(m>-_w)OxImhIf{o#W!DediC2nFEBF@ubFG?J@!dM_YG($hEFG`47=b{dM-; zwOZMZTO*osYty@B?R>*gY7nL8`=}A00y*ol^ z0&jvossM68jlUBn$;v`+A+94nCySK4>`cTj|J%IJ^jrLs=1~JH%~6i)ewa0&ec2&! zlt97I&0Zg_J7|q;nGMhzNvIByjhm3RstWp97M7GyLt8;+QTrCT3IRJGAM8JPAi}D0 z2{4$EFLO^1GN$}ml$VFB+&qG&NTWS8)<9xLxN-6=Z}vZbE6KQ}rC{uohw;Ya zHz3r#0N=d(78Vzl;)Ih<#kk2ABHX6}2cLB*+&fcKjS+a`p&2;s!0uSJWHx4f`v31>6_-&{Nw9QfJK48_-h`)s}Ed@=nzqY05K}k zeEL#5m)EH;UVCc>&Nv_z%cz0=^ygJLaO^2K`S6qQ;U{)(^v(_gtoZSV!*AJiKP*)C@V%5wU6$8L5PS5B`B%l_z_%igKkVxS%E$@ z59gN~Z@dK;A9a{{%&RKNXoqD9pd?X^{?iLmn$FVVJfv@~K({Vo@O7h$frJ>Ulk-g4 zcpoxRr3HD&$leOSkT9ALccK*qeVPf%D)SR*S3VMtyznwc^y-2IUw?|(zpudLDOcdk zb8kW*g(>4Neh{7FVo@a%b=J6ZayPCG3AA>5e)ddUIc@}Ul2_o3cW0rzM_-&i=`39S z>EEbXB z7VVsV({=mc>*tH)#6(QE@*ceW+^y)uRr%d#|HWS`H)H%66LG>BlMoi$fV`Y+6j%EpLQ*PXg$gk_Qg=I&#?+UZvCoh*ej12}YRSOvMz|u`S8ebU*z5e{t=(6F9zW2;@J6cTiWH&9!{_ z^hXg)x}S6Vqlja`X18P|l57hPGXsDI_{=WzLigHc3K zKI8Q-Ih}i9(uJqumirz=WkC|AKm9&>^@?M8r3M6fb03shw z=V^_3x0}di;1$`g#Ncl zn>t9L#=Szc)V!3Sukq8WO(~#xs`Xw;>np8!ts4o)`V2eR1Z~@tyuqAFo|m)P?9~G7 z-c%Hs#I6(<@_m)E0e*qOMi`buANCSj)Je#vvdlVc(;l>4;oAE|AN`dS7trdA#x?AJ zIhAC(*OGmu?OJV@+*k^T4YHF9Qoy-4IyaEkc!^f>?8rcxlV^VW3dYQOWv5=Bc-@2e z`q_b4xb!D%MKgf+$y;l zssCmiF!?@ACOA*{?i~y`;X-o{58R7||2GFuoHZ6FUUmsSy=Nw`hvA|-&qJtJA)Y(` zOkDrocP8)M54?f@{r)wMrpEk|gPz6AzgOb0$(%f|T#f(!cL~n9;+&cQRvAed7?b?i_arPPpa_eE;+(ydH#3;RK5DzhcmVM>uNP@gq7W zikjV*V=tPs{LY5X{O5`|j^CyeR7v36PDMYnzf9%(*9IMvG^S2w#^rPrvAfHQbxR(|n zDLtLm`w^TsgHfEFj)bH{=JP|}elb|jTeseLfdS`pKYkr!&a!C#*gHR9)zTj@?##<^ z+*2=MPC@}0?P(|0&BEV(@z&;}t>292 zAmD8h1Lt_icFelRkM+^?6FFJ(|8c8ua1hXZnDaI`$idu^OK6pchnm7*~PZ21Ac0#`n5+S)Y0771y#pf<$?vn@cnA}2-g$2gq;@Bo z7E7fZo?28j^}6~$22^r3xCFE3V9t%z2*IT^>IS3{C`*_o=6qL4X8G#R-togG5S9>+ z4K%@~YB!Yq+EdAB&E2`WIbW%Rw`i#K-41}RML)KgW2hv}s)P=W63*-?0=Kt%IPMa9 z$&$lZCe#%=xj=uss63Jzh}!8~JF)@^4)1DOm!G=@IhiTQN{Kh%Tz={Tr~;}A^rmCj zbTpy~u*m*8fxZiLtp!csK1RCq8Z-j_H1C&XfGlMED3~v$(m?dsx;d>~3m{rRoDT75 z9r166=u^Azgx=Losh&4|!UH-5*GT&s?i^qHyL-X%zR?0kL?JdV&S;2w_3n%QvE1Z* zhv5Dju0iRxjd+s45#cmn-mnoBC!LM2e_4dhYgXddUw*-I`dI$)!Rt6GAQ_1zYz=+6 z1@hbj!tm&uA0Tnddi*wj0hVPX;-eW4Ba~*-No4G&KlUy*|M@Pu`&ME2;b&pfrcLj z8%EY0_>kvgN{Hawsgt=Lcjk2%-Mu@KzW=NSoSPdNi!kQQ^KsSf_t9inji**P>u)^8 zcHZ&WGyD~U{SO#st}j}&(tNr{T9Vjm2V-R}*7`@5#%a)a8g)_$>i2@1$2`35?okb3oiZ$uciZh{m$rU3e7$I-OC zj9k7o~!k3^A z9=-WGblsMPY15}8J;2?>ArR21Nt|NTpQG2nY4~Bm2CP{0Cw~27A=WJZ1=pT7ly#=j zT-hIP#aobG8G?sC{FZ*ztMKcuzhKddHTajpkxLHhiS_F&KzZmHV`y@bjn^Kzj8$~O zupxthj6X2*^Vx6gZ9IKe!Y?T z!K3)U`mf!d2FIhxl{OF-4g5(F<|>?9+b$ zdhl8-1uN4|J`8E|zQMikeT|Twy%_hPC)bgcZ@_;0nP;ax^*j#h?~kwl`x3rgO+iPW4<|`knb6@-42cNGrWNxHIFIh#9|HyqFuC4+{vCdLQ-E=b`Moir6z5(2 z82;Umh~@wOiC=#E8|f*l@bdGQBa;FVFCX=fVh{$*OW+i`iUNvpv{L!_;fL{cVGgYt zs5LO?mzbLjPBE=rst!E~|M%@8EdJ+r{QCPpNZYs!4@@6P?w6B?W3J@2Z8Oq`4#$h1 z&O!R74E)Z$;O`adv1Z zNA=kceL4f17Q9Cbj$8z?Pu#(%q4z{S!Fl+E^YF!=E3jtK-E4(~j4BT5L) zm4Zk#4$&rASZ=jG69+KsiwiFU;8Ycd+ch2R&2w(+20_&ECQpBx)?`A5am)} zP+`PKQOKC{7{+|?7rXCZGl?3q%`6taasCQekm~9F}x{i!Z$c z8Hua#-It#uD0(=?j~a<*XS{{7?BRIjUov|6C3yUY_i*#EM<8qcYJ9)oclZz9AL9=_ z5ih?Nhx{>v@o`ENeV{|IId45aUP5hfj1RWb&su54FTbPw@-xxnz=7ts2Vbt8JQ-}w z{BrywX4}yxH-b67!srrVSvbgawYu8c+T0A%^TYm~iRhS?u8Bu}wKvY3em~}{xrP=M z%W?4W=VRJcllk&b!7t0$7>Z8HbmR&_wIG#0=TZPgZ{@eRtX)THs1cHfPj5V|Ebz?f;9*4(*Q(fB%lT)Y^yj8jKU@8t~u~o>+6xv6w$N5|NCm zzBPUs)~unBAkG^(+bTF?fbW+4gZn0rLGPXtfc+lga$B*A&{iYK9=Y(-MfBIAK38})_S3e6X+L<^Kr55d_b#P+@eNXl*y+0EZXu`hq*Ev|aaSH~H8AF$ZJK!4*j6Lg4v&Du)>_>N@JXD7d z;adC~{p0+N8Rha{zr>x_J&f##?g;0p5F)2z+M4(z=7jb8M0G)`L6;tf0 z$q6J3@a8yL{-;)JE#Z#VrsZa0u8L-6a*3GxW^w`)fpQ6+HUABboE(39Aq(4U@k0CV zSUM%}P6}9CLeqAbDq5$B=XCAFeTY1;=BnCie9|4lXsvT;(xpW%VemKIr*64spA~JK z3NKgdqjUdisC~NcLmpiMN8@hiSfjcwVM=)^gQqTEXae4OGw5y^f0xtcQC0&IVtDf8 zAUm~R3b^{JY`>IkM$4UxRWHk6`fzIj8b28>PHj2?j0!DarA6q>>#W8J+MP^^^SZb? z>z+(nErwM0%sOZJRr!Lrak%8-GpId}#|w`?MB7dJawaALM}#6};oo>~;deOyo=0nn z{4PElV-7k92lLARs6MiSQ~y!ash7GPcO zJfyDv9;cmgyQ93}xayp9$;21nsT88`>-!&jAHMwPZqP!No0BdvNC>s6-Tin} z3^yJxnwD=^zaB^5`Z#VnX*f1B$k!_`e`B5vA|fcEZuO8Wr(;szAt+o$z`%CyPm}TK z2Of?CJ5R&$_fTWbBhEs2L|c?sDK>cx!n2RwgJCiLh$Qgn9`1|JpSc;gz4SL7i->GXF%y#2_;@jV82xkQz_3;u>>i>qS}3=+3?r2=rhOu5xNGy%~{v1FaKI zf8=#sesn)1&HfBCKKcV)2yQk7c1B>e2YMZQHl`B>u3fqo)e&(ReacWAa@0VCoO>Q# z`;H(oYzU@abrJHjmSb$>Q2gm=&IPwVhqoWS785U>N`QU`Weki~O-*Wjse4>+6tW!{ zbt$f&aw2jU{fz4$m zF1r`6oO>@#&Zpxdg7f^P^O$cGmO3iG=7aC?!ldJH%E=QL?2f+CZr&(LSh781uH=d6{}-nf-v)DTygr)W%<9 z!1=mg-p8mTCmU04ic2u_v!8MC#Qs98=2`TLMt))fzFRvVmt1r?GOVk3_}hiJ{YcKu zKEV7aANZ5Zn^vblVveqqoK#nGkKy;?Opb4*&MPpB86H)#d5OYfw_S&T>LfgO`z5AC zce6*)3|JF^n^XnSbfgzBkuDE^Ec_H#-0(b3KI>+7#t+>(M_}c@b8!5`>(MQC0Fn~d z;HDd|B{&bl%$p}+%99_OGSTZu3Iyk1;-3I~gJU-BnK;x-SD%Jk({H;&NebPY; zoXmTzOZ=23-TAn(wox+C#aXv89p|U3CIvAxT3`~zXaT7y(B;DYcRQ zJkBhE;Jo+MH{*>*Z$>qJQ}3R7Cf0Oi)Oq^dl$%X27z6tb#QTrk$Y|RH<4hwixdrdc zcofIocs;J4^?!JFbs^1zWku>r34?fbjYaLn-4-~7tfvh?H^IdC+k)$*`26#y4LBcqz;F~K|H}ya zGjZ9OV=$z@w2r_*Lx&-ln&$W4dD?*UA^Q(OL0UTAoOU^qXZ;7cs}>o}GT926{?klN zi6qjrRK0{}`pNf<)rzs>uE)tI9KdmP_<4LfHxyf5d=VdAbRwo4ItB}t z{Eg44fv==B!MIb8BRvU-N-5}a^!>1rC*ZmXhtsK`0_)=AQB=y$@~KZMf1zk+MY*S*a6XFqk#Md-#pJ@V2F^nGXU^M2>ya!MGNP06Va=Kw#1YQ_aPJ`cj|AD+yig#u{MR4wmp+g5ComK?*FhJs& z6P{qOGp$(GR+Wxvlg63vgAP3!BN>n_kb)|S!7v7_p`xnLqszVH1;;@%ss#68cv%%?hI*q~TcF(74faw$$f|6)Y=x*;iH6A~DkVZ`um z7;!>>JpJaAm~+lqIC;!rn73*jW`FxV+&V?!r14`Jw}M*mY971h5F`vA(uaF%F87;F zIQ85M(5;gng>cCbcir73H2?51fckK70`) z$DM`i?wf@h?)e0vec~8DLY5wy;m+jzuAb|=^SARpuMnJTee95QK}2okWHhUs`-Pf&-V9ofbGT^02YC9QQT{A#NOfcza?J}<3qqc9K0D<0N`V{TNJD7miZC`b( z)u6TuxCx-j?7gEW0WQ;D#t+cz(FxAY_>u21(LS3%1WU{6;_F*u%)Uv0#2)jH9jCHD zeU^2pj!cuUwFKs(hs%Rf_DB1wgq{&mJ^8f?xtlYLhFrkAZp!B|uu2Ay^HXzPd$hQ4 zGwviu-91_~aCthIUfKWbiUK>&hF#^h@3jd9BmpCOGv@5!-C~V2Fe7oL*?cUWB2AKc z#8ECaGiGzv07OT7hc3=>}KzV(%>xK=U}*KOn?!v^9?22v}@+koevdVo2)5(rV_ zTakz4z`l6!g(q>vDaSDSF`HPxv!uOz(KR##MPzIl@5?0BU$IHPwA?r850lH_N=ixV z#i;ur(ocF$YSsvbbjK1HP^(5zq5YP6W#kkkD+{9?=V2=~$VwXuHgXd>h?+koYs2xQ znRyZcZs!Z8;;R{tqj$w7+)Cj0>auOhF&>_N2JX1?2`u>RM63zx zjT25e3&R=ty^!YaI-}W#{?@;joAN_qDLKgps`%Y z{1oO;GN=*A=3%Bu8Y(3#tmuC85z z83gDj-up5x8qp8`zH~qC{_qd0`M)Jt@Pyh+X|nTj1>*%9XhKSOnpw_yLo@LFJW6x} z_%%76^Cy?{g1*Aas6j2uM@~vQzXzdk%N7(7#D+7J^|zmV#(B;L=J5>lsxpMfMwusc zPOzK&2be}Z+CQW1jI_W(%zKl9vl7hs)Uc{%=>Bohp;nH(2M&qOb7kU-WUNyMkMmG`7Gs4?a#X-WwmhFb(Hj`;@t+f1Y}8K5jg3 zG#-BLIUINDb?6)y%Ryt5|AcsipLrY39km~lfBFK`Kb=SIc`t%23xw)fe_C}YK-yhT zUWYzW)Sf@_3g)xA-u*mKDpE0?!||LuBj}56%^jWrPqVc@%kyzR0eWozzL@#MEd;!7 zn0n=89Dnjel8}O+%_(^NfroMIbq~YLi#-W1$0I* z3ASAJ(@IC2iRl-egR*7wamAGTt!wNsRv}_&?7|a1v2}QvaGH^KE9p!b||6<%a^%QJM`4SVRJjonN*(jy9ldLC-rGlqv z`zBhg96afIOqqHqwk7<7Nt2Jl_rFga`%w_ zxPzwyWRZ!Jp<@*}*#Q3##sSy@-^iXUcP%cs@KVfp<#8N;#KAc4;wff*Cjaq0o?eoR zdvCfJ`2_;eoP*q#={v%C^At`a(DUS8r;`kPC>*F_M19Zj&L-b??>~Z7b7o-8g86j2 z3B`VcqB;LQ$DOwxiaDQ6qmTU|%=ZZe5Cn;gfne>B=FwXJSo6Qu1?y{_{oY(`Agfks zOOoC*auJb+N+lUhRZ9xogU^bAm9R(*Z0)2z7>1USpm~$G^jH4~)PAm`f0y=DR#9fG z33de5OaLyvtJ+QCc-H2B+D*Hg*-#^p(3tW4ARbPE{!HSSnXznaxy)ZdkZ1h(U0krC z2<{qVnYRnrDyi=ksMG>^;&zF15$143}* z3FD1#vZs$fBTjB25T}HUfUk@`&U$eg?Kv0r&Kr=VX=M1QU2e)E_2Dr=NgE4r-SfBL zfJn>teEw?CB-fA8$E%UNIUgrZe+V~Ta1z{BEx~(pW+Of$odMj^arMhD;y7yGtG1AM z(xPk6Bq|h(-JsTYA?ai#Sl zD@ju;S#hvcU+m!VI6gW6OMjk=%)b3-ZYxdX20U`dnHV){6UGdP#-O3Vn&0L!%J*19 zf9ILs?w)QOt1NU53r8gZn|lNPJ{n`cz)nacI1fARCVcz&Lx^RR^P4Zc7_WS`l9B5N z@(8DVR1{|+WWP}u(7hY7vNEuxS1jDiis0F`KYj7nB8|d}sw$c`u?LkDV))VA>)-D` z!lQ3|M%VTT-jj5_47pqLuq`(S72!cB{{D5Gv-nHC(InsyHAr%{yC7G{5g32sNF&VX zH-0kKjGe@><9y=Fud4@RAoMwgXO*wVtao3+)H|Qy3sS7DFT5*h)qv#;MAA(%0VW=w z=H-v_{3@f7_fmvlZ$EhW3%vZxeEj63$lWM`3%imh$VQie!V*Tm?uBFcYaUgm{T-UR zzR^R>w94LSjo++KAHlpIo~JLq{HNIlzO30%21P4EctkZy<+Q){A6#+V;kbYQgE5FP z0P?d_@#o^zxbuIDIiOWo!MV%XjiU$mKvv>!2AoIt>W?5Fiic8H(KPyY9=G-zeWYpa z!Bk562D+C}tIQ+Zrd~|n^D;a%<5_bru!_Lgd=sPKgVNjtYRf0$qVvY`*scY5_Kpt- z%41PRyZmwj*vK_M@m%|{@Fp|mJpa4)+$q^sh-hlUpS%BN{@saVjy;m7xft_){uRB) zUy5n8@m{oSm8tRC`|iXE2M@+Se}94>eprvxq-Dq|AA%QOzJq}St?m5GlSg3)*P}H6BP}?(L0G+J9fQ}A;UYK>CB5KZjn~rCaLxR$ zG3uNvF#ezeO%T8rUwOiS^I^jVqnyH~f4+GE&wX+{p1yv$SX$_2dweTP3rpBE? zAY2->`jRwEWmUyyF4*|oK_QN_c^7IPiH^?C`UvQ%*Vt~OJy&1!S2G`6wZScKm)tds zMF`(r&Lp5_wCQF{omU(F)Y=v=>FNR*2_2-s@?;zu=h&+4#f98!*Df{D*)`xej@4AtPA9J}rJ9sdrZ4>T^$(;=R)2(d;|qdG09@{?@*P(sedlvKj-D2$o%S^f z*Z_Smj<|q^Hk7caI2vc>af7w|sdP;YbwOT^(VSZgR+3_E0d*4dN+PGlZ(gvxT_aI8 zJI2nYE@HwevJ-&rBQRysY1DqM#|uwCL?A=$IW2{u^l)4_ED*0OU1Oq?D>C(IN6`GUECp+LHnmCGNoyryIs&Ua z0?KNPAh4P^8u)xJ8D5h{;E*E@Bv8qaB9kcq1qA2$`<;tFUwa-yeG72k>1X5K&%QOe zS29|+QVjX~f8U>l^|xJ)xZ_U20eBFL*Q_<#WZfTd!~p(FQ~8X|`ib$UUyJG29fg-~ zABn3T{Rc5UyA$*XlpIBdJBaOP6H54#LXcI9{y<(GS%Y6t2(f-czCKoeJqcDfY*aq)Egv z7{Rlj-OHBJ-hl8nIRUu@tdU*2;FHfj;g#*_{L8L^8yj7`B_DnszWC$M4cl)zzIEo= z+0t&u|MnYxD$1cmoiHee|&~T!?7ov4!k=DYuFA@kTGh?t$6H`6Y%%*%ufy`Br0+Zt|UcA!5MmZm=-2;{#Xouw(U*#6BiN%GVbtc(3ri>MoK~g z_V1IRN&(dmk-%-hd&s-uqhH1_XkQ&1N&p5u*By0f9v;EHt#s}g=im&U7QZtt!)+rd zfN-SiUKvBY!wBV`+;~`qW!u-`sxIwt^S!rY_J>nweyEJz_+OXn;KthmHvKxqluV3T zk6-84hCfZ{y?i97WY9k@J>R;)q*!vXp8}+P2dzFH%FzbYR%m8EW7v0>WQ);n86aVi zR*NM_h@#5f|BDeOC*%B(wV&LzH8&g*g>n2n*X~4KaF?=nHv`4+J1DquuumA zF1rbRDI7^I2iUfO@U(2XYea5 z+YrwTYK3<`k7A&{Q0yRzz2o*E&M~lo)-Fm^eA#H){66Y`%vnI(F0*7+YLf7c{oV1X zA|J%h<_sdEYX@1ZNb&zHFUOu^wBdxOv}#O>OQP>3nK?_~t@G2kgB3c5{-uql?ls4{&nxg(O-%B?NmFSq2Zr^Fl0lW0W!>AU`N%v@?3%gLlNpGj4I zFIcXGj?Qv?bQ5D7rW9(M1J5|yn2Bemry^qO-$+S1VAg=(ay*h?Yi$<7-qC=bs6F8q z3m02A4Ct9OjRsuv$MqWiOfRufNCAt)TYYn>R|WGX;`sn8)_0CB?+rhQ)&;z#j_P3%)+z@oSbW$Oqh1?|$FDk{ceF3WSMwJ!AMo4S)p$6s3mzIW9?4#B z;_ELKp?%N0@a*Gn&@9ylfBw1}Gss&9H06Bc1RE`&DX4!4Slw@(BjJcsvfypagdXRl z#G~GYT`~KsAvm|OD>lsd9d4IiiILrUQfrn2dNtN8nTfYv8%?Y6K)m?e)97^h zdH8S0NGDG$mSBG#-!8X3E5?|c>uX#Mf>=&zA`!8Lf}^|x_0Cu7>T)3DYQ-ihD; z+=xf7zZ#R4F2IPPBe8JPcHG`~0G=E58X6KCE@UtuzfuuABZHx_@SyjXT=o$FMc)G4ztgc&5ww_$ijt$~`${)&xBA zP-ooO=M7BEtb@_-EWmBA48{WkyPJYJvP)-*+8bspWZM1Tb9g?=1#1{P;NHic#a$h^ zhZDmY8QsDe<0t=yySrS5fv0=pU}UWzG8^jD|~-i}B`%BhiqS2jhSI5ep+2Ly|(AA16%4|J`yW z9{6xFTmy#TyT$+F;@-V6__2X#7_k9&cl_LH_tzz4&>zH*H-6{bzKcn-*I@9AAK;ni z@8|mj%v?B*pY@0^Y&>m>9os)#V8o_|2((OHwcu>h@#v~njnYV-sAL!nHEtggg*svg zUlOxQE<8(&&pEaIhB@b%SyDN(8IKJ#g?e&w{Sw8v}%p~Y>Jt+reOn_+> zCbMDDF0xE4aUGnLBP`l!?GuY()KDc@ldYlky=d-2Pefz#{686z@R3aq>(JC#y%@OF zD=^gTdHq%}G~F%~wR02VBX=89cRjDXM7+xXWyvaKn7OWvFch1f$1_~_tBdhg6!i>R zRmmsbgS5OittS0z)nfqBW{j8OW9G}y@+xO5)Ks;x$U4Bt>+#1`z)*ScsIKY1g21t# z=>JtuPoZ`^XriQmSFR*#r!!dBs()j7w{8M_bPp5tWyuG5=kRX%qGU1n1u1DE8~z!j zLv4udT%>UzK^+s^8QWIQL#TTgu5H&6OQQl1M1^s- ze1XY$cpQ#GWI$U?{rXGv=y0B}6LLua?OC@H|1h9gH@7783ONtIgx-V*YA%yDEW>v1 zhPbtDYX-t%R87)&JN}%G$NujD%-!sVklYAFH1CD*m6H*-{xh_@>R~i*(Snw|I}sV( z8DCC#8~yuUOgu=Ow^C#htop{#UsF z{s9O}4}pJnEUy-6g;8IBh5vQDjFE~NV9?c*KDU`zvT!^DRrSZ#++eyKFhEj4`9Xm` zND!o;aavn0{Pdy^^7d92W5uckXuf?OTAj%&>=^YtY|~~8{_0n}dskb`7&{Mb@30o2Z^a`q2+pxbpUl!N4y zEYzT7M)cOd@W_J?VfvCyv`jgSb9+CH&)y%7HWZR&QH$v2o`n_Dmm>7a>k+^0eO!Fy zQwV9%oE8+)g0hz+BqWd%tVe9xf*0D1~k{F zn~0Zt8h)KK6K8e31KIONq18>#(;?g>q?D>58+zCRWt2i}PwZ#SgThunwbkK6Gt-X8u8-k-FHHX!L}bNgKw zGjaqjZWc^`db+3h_|Z(C*TGF5hkNe02d+&*7)Q?yVc~ml!>jM(gGV1ktJ*aGXW$HP zwtFZhjC*uAhKw1rgfweT zCL)8Yw){y#Rd2tVMpINQ(WyyR;yf#ffb^z?lRvNLEH=N%#eWQuu7I0$=nHvKeqITR zMMNGov*zfB-AsW`yRV{lO)?AA@zv7kns_V{JQEk?Cr6zsWnVQU3l}qHGyL*FRD`}X zU8Zb)<)_aVja@L%+)AKf=GZYO#C>o%cGaMJcxU!i%m=y8nF3+Qo)$c3#_M ztzBn9N8!ABCt;SZ->l91)_whJ;n03ZEGW|AV#*r?H%E;+^-VxZxuohkWSOz+o!k+W zY+S5QgZ=X7NP;mpq$VB2&c9bN&Qr4a%@T#XQvLfhgn-sc^-B1UC;kY7?m-6qN37Z$ zi_LrD;Yr_J5f7=!iHO+tr_rDvrZ2JXK9|(ajnZLXGLO1a!XOoHav`XLyv8Z@@F8w;*HF8cbfa4EH_%5?c8C@T#F${QSYk*g>sPQ>vmA zVKdpi9{TpY0qKd`Fn-eS2xR2vTr%S>IZ=ouZQt{u$8cUiLoyeK$>5H}k~Y`l>C0PS z)r=poEFzQ4-&wesjFlf5ZSl&IVJZpfDX`JOP3tjr_HTx`_SnA{QDl<(4tf+9w4{$L zk?G;sJ(&9ThbFRkNRwa^@7eTO&1S^seQ15jZRmY-JJe$ocSUvIwR0&x`g8^x2}E!} zE(1&vCN^DZS}ppIArexO;M3wF+=41I`%}T^XlWLk3L6@EAB+EF0BdtOzhn78^%pvg~nuR@_0bG(T_PL zG6IJhHN*W3R(1v%G!aj0=FGtCH5(Dwq={ivyvaC4L`31L+xz1Bi!XvN&7BV?#bVme zZ(}_zheJY|Fs^_!(fK_r0(8O8lgxiqL&n~c|9l2EEu4XA z|L#RlO|ty7K(P|dWf_nvCMFBF-+w!rHp;<_N#hZp#Qo_hVOo){7XN@5B^Yr@O+qY# z@%6dyL0ouFD-#4LX>Sx}ee)jv(=&7(M;^y9VL%mO*gKPRH^wZ(#1Zo$=&F z=V0CRDOh?a521{_9u^gYD|-$=*UQeNivrb$LZz@898X=v8q^y6OrE-l=widYzb`HdKQj9KHo~U~ z;ge3H)rVt^h>b*cU#8M>yA3ohzu_C@M=mh_wsG(`8{hf|y!o1%-wtjnE8SHN2HZD}6#PWZ!(LZ|r1UD)~8Dw>pwp)W-l-In^1P1?hgZjI)~C9}^g99UZl+u1l6YMagL)~+ z{8rjH3o$u{&iciqd*;x;Coa+Pklv(0A@GfkfS%Oh-QK==8HkSCXWoYfHl)vHe16_q zK}}Gb1a?}675KuHp2@K!@|A*u0!_4deU~MHw|frnWu~=&o$3Xm@%|VJ2$<@UDJ3J3 zK_AwAN%EU3IW-OpqB4|{boSkw!REr9>r^pHK|`sIPR+2!D`r`NrQ*Z)fV^&j6x1XX zE;LEaRMhqYgl2(kPCuBB1VYZCSR^=nZv*KgD`7$wpCuMSw942jWujuhfIwJF~)LckoB?j)k!Qw|_vKmF95QfRYKq%-ok z+R+mB@$p7@c(_vze)VXGkN{6=D>+9zkjqLs+&n0>%1a0XY9qLj58+-gNTd4i!MdWO%_>Em`hl!l zE)Rrz!KzFDrM*Vtz>8PAg%|Euy~b!trZg z*u=D9ejR-)Fl4qV21@yq?6XW-bKypEjWwmbN8ZUf`L&L9-P)L&v>m1F=aM$BzH6Qzc~C-g-27Nu4(;h zo)jyhurNh|ghex!l(g>zEA4TkZReR#(t0SVj{p2Q$7?aVT9#yr9YQ3*A(Qlm#%luI zaV;pohkU*xXmu8|XR8t9SxebQMpo}Fykl7#39r;4O(>ity4%KK5>|T9#k4-n(`BOW zM^kkoA*&A*@aE$+HedvZ)?s1Zi?2gT#yU;iFmuXY6@}DUD%Scl-sA&|TqU#oH4Z4uAw9kqHF61O6 zVQ+d(qz>MSG3c6ii}3X!VJ=Ohw3Niu#eeWVL8>nG5TybKYG9FUK9( zx3S`c>hjbm^TGtBui>w%ADmY3l?KaQ+omOOYs3ifI$lk+IEcC$VldCL3{%qW!c z@}k)uzpEl?6E%lLV8M6Ry0C&YsvRB38Qcf?c~u_;ATo~@dn(jZAsg;YC4$ z2Lni2b84AXI*&trFPsc4Siocy3<N}sUOZszokVn`_a50e&QM}+AiTk0js;yxV1MjG96lF z=Ss`@U41W+L3h-V503&2dOeP#C|tCF#ONBLlJ9+M*3CC@7jY^$m~*C_{d3M{GYAHj z&M)lm2Cn>vZI~p$I)CRw^+Al62XSBixR^&luuR|V{C1rc{1i-7m)6qhk}R0Y%EMag z#f@9A7Sk&QK~+wspFHEVZp55BuL+yEs_J7nTKH=05?*N@B)Zp?v`@h(^r9cAd?L*pweugu?b&7o-0XYiH})teYg;WFRXYZOezye_{|@Jag1O2S?2gVl{A_{;HDZDcVf zlV=45i7K~s?GhZMvQ5mrepjc{6ar4`oTN~7I#Cc1Qcx1|6a!aW5)u_LWwZKQXJYN{V%p2+fr02KebXMrtOr* zpkVol^{OW85VhLKbZ7#t!$C+>xs@xI!8KA%5VCyiN3-NKB2)Fp)dw| zW9gK#7EaDt?04DHnpw&<`_WN;O6!w@R0kaFww#}pSh1a%pScuxr1G!K#4)B7GsZH@ zm6Abonn5kMNzQ#DvyozhpTq!vI;DbZMst=Y20y=mBdcAXQ%NHPNK4sl5X9DKkLQk_D3UI10RQ z{4lVjdx;ESESyj){TQgsm@N!VIyawa~Vzq61L4iJB8p2dJE znRADImMci5q(W_0N}W}>5}5=S$Fw~3zNvG+pxdam(X`#?LQVr9$M!m;Jj+-M$4+M}{A5l*vU#C#l&og|bq78Il> z_1yWLou|rwI_+EG1Q#g?oStdU^jzyhcZ~Zmc1PrnO{6OsV}$gz0%?lY_G852z-F!K zQyxHgQrN+PYud7lIQaFRh$~;6#9x-I_T7oDYIx+EDX`pp!bUScF%0JEirv`du{ysv%Gf zfy#n_h+IolSXnhzQa!@0!lAMZVwECNr6tl?A)=hrropqi!9&Sto%F>*z(zQuyapFD zuVsx>EJ9YP;uFh>p_X>;STvYAH>4p{fYfYSgxEgQV%TM6V;Fe#`zVseC}E%#xXD23 zC~7&`iV#-inM%S&>q6_sSRhr=VTx`kK)X2i(=i5(H=EXI_H8uISxWkDEGy(1Q<5km8e_6N6(GVJHH=a zcu{apTo)U*&5WZq-OpmfcO2(79RsfZsPYh~X3$UI6xpc35FJ7jP6w$FtIS&u@#+O3 zinPN?hVUtjEbJosv=L3YheYI4u|(pHQb-YcLSV(V=s;-s2SX_hSYu&*jF?_Dv2XdB zeZDnaJ*rU_t-AV2H3X_5Pz`|!LcnNp=}J-<2UoC~f+9Bm7*JGFfXPyKPF z%YYblF&&0MlhENPlC)uB&QFIZ-!^#6ymKmwtl9i^pt-V=V4KI7F~$VicCWHup5RZ> zN;$^OsEm$q9ZI{daZA`>)^;gH?Dz&oBd>gfm9*5disHSurIb9jSK52(qqd4@s*<$g zYDIfm0xCNqc&RO`KDyY6{xX_$1s7(tca2leTy#~1q1{TYrOLn5dKL^_&A1BT8pqm} z&_#ES``4~(jYmse!zbL0FtYF{ShC6!by}S6cK`UZqwNfR#_tvFZ|NfDM_Zz6A_r@)7%%Xruug^1garW4S~vn zfHYZ#xUP~!t`I6mO5CX=(@C4y)2I3Ec&C6$29KNPBm+1e;ccUJV>vNtd}!)9^6B_l z_`_~bIGg`f3TV_H_D!x&78B!U7!(oK(ykv(BVtr+fkojVoQl77X3C|ZsQa9y9h3mX zd2Wpi{cdA}a^77IQAaQ#qJs_FL;%YsI1)itmGH553ngC5+N7ITroGc4WnI zTzpmJ1I;UI$#feUip;sXU_wkKpU7)W7P!oHz(nYtT;|?2EQ+ z(?fhChFt!h=5Qra74ekHJG#Aix1u6f3h9a(vx|r%v%eRu`1m~0Az&y%iyo|aBX&8} zBk8Vc;CFMV>Tvz92UPJ9RF|lRKs5wTHwX|h86r>2Ou2|=Au?e%8=={Vuki0<0Hmpk zWOy9)$+!cs99`flH{U^Dj8bXHa}OpKU{ z{A4j5x*{rvf)ZUlT6j$PSqptpUq#H9rBN+Z?4p{HnfZ4*OvQK_jVfWAmnWfx z6%E}m>^h3=b)hmkn@?a8Eg!h&D@Zu=>qO2Z3q^y~<6QkT@ej zGRTr4wj4-V--WLj3V{xyYVlV){oyc z9A{=p1g6DY=vCn{9%XL`Pu;@c>Q*qSxEWqPtjj-GG3OS;;>_?LW#3MgVg^oxk<+3u zaNzmsWv+pen}aMAto3XAY-?Q`rv3zv(-x}8v|9|iepe)EzBQKO6K}v_KuQUDY}%u6 zKAE};Ugcua1?y7!r+!FSpzR?)anq(#elhG4kVu;EumNCq^sk?CR%Kj~Q*}}C7 zxvP|2b=Anh@d*!!K{qif2*Zl5krO)*OJI|ha)|p-T7BWpimmYz+yCm;k2eHPqtohm zgYqcqFP4_Ev=aVx>O1zUeZWYI&NhsOq}YN-(SfQ{#3G&?gV`KrX7E*~ zztugdhCnq0sv#hvymXSPEL>gI`|`rr>P2PMrdCD#+JQ-Rx3BQ9m+VYl3WR-=`{>iA>2=yh+#a++m@IfCF6Tu-a;pNJ~1lt-?xYedoTnXpBn~H>z3MF zbM9&$onTxQm~(c>Fvs%E77buo4BF!;|7VGesWyt%5$i885k^|qwsORRDP3I1Xq!L7 z{1c91zNu+9%%Kw;t$M9-h>5fXUD`iIl4D+M4Z1$Hubk(lNSV?eupd?*$@o>(xEZDO zzXI>f9CJ>LPk&`1zzX!?XtPRaqbT#%p0jZH(biR6?$m=oHG^Ii=ak6WgLh8*^A1M) z01=|*V}r1r&j5Q%pJaHcLQvNMZ4re!*iPk%*S11{$Bt-#pGn$Hq$JaN*t#$_IkJI5vy-v((UzTG~g_o&1)BxWF~JS zte4TA>2n!*is@z1M{HYW@ut3_Z%?Tw5}?QxM_P0v&^w`{Bizf2X0(os0;>2mdP0X$ z-FTINK=sO~3e#Y3XoKf1WG^B_47#pY6Vj0>nxcJrFffLlU0t`2E$3(D9g+sV1s+QCz5w7|xseckcc##11Hg~sLBPe+& zM?Xe$kd@Mpionk9h5cE4S?jH4T7;GdgEWt1YnF+koulHo%_@1cBWf%?n?8bIpo5vV4V)G%Dsuces~Dj0=}29gY9)k=9PWZ-R@= zvkgO7sQZG2m;z%}aExH+F*i_!D$raC zXXNmDJ%caGIj@yH1X-<^bz5e|!mB`HTm%m7k23-sdk>UZv^v9S1A%HE^eQmbR#afS zBQ}9$eQLAoK#;kUU(MR^_Vce4BHNV&ygRS2p#o$rz1 zVcXyZViO(+G(n592~+cG8j=aU&K&SEB158VavnN)0Nkt7-=@& zIS4~fG9%ep>B!1vjVA~>+db8%h(jN5FJw}xp2b6hrw9H1ym*f(@3v1%H*Ayo?&9tV z_v~~;gvXfT^&1DkgL&MUKYxr)6^l4^=T$hFytB1jNo{bhy}YceW3sYyDdh1q%v(lU zn$-_hWTM1UE0twyt9alErX|sETC-Wahg1S1X$~y^I!A6UCTT9jAR04O)^ad93aPw^ zwNc}S#Sr}LBX273@$xiR3udwp?u3iCmpcO`W*|F9b6T#^TA2)7J>V&gA7dE^jyWQh z%Bq6pG*2F!r#wpIvlv{*G_2>W%Zo&BP6p?bV?X9K#sPUqt5QOzq?I-EuZ>y3q`n=D z5xhZo2f-yb8oPE`l>`L`ay`=AvO)l@U|7%vuq?2aFsa8IE^OS)t64Kgv2c#H ze;Pmkgro8i%dynSAqb|XzC!irTojX8($!Ncmy?yj^17z2{K4c3HFMJaG(8ZgcDgZ)j2R`+t$l zTGl!+bVtc8+Bi*D`9<&AoFC)B?A?-!Rlhk6AyCbrpTJ2srh7ynhL|uxY&;A0hPXxd zIQsb4FhP2ZX53phOLf`wUQJ%j8VK~O zK}MSM!JjU=clFQ#M5f5RuNLYz@WNRgJEMMHDmHA|1}+ps$eX$~v4odv?qR|!$vkrY zr*?xt__|Z8LLihf(j!GQW-|9ki$cT!$77$m2&~O(b4p|MSx(x&wCHH;RWV;b1lOsJ zObM$b&`3%~M6%VtfFQ0hGW`}sd8Fy`edBmZw7F&`BP#B2=|yTaK!7i`UF8ujIBF6- zl98T;vpZaiI$o*R^w$a;cDoEOzjgz5|2rS!eprs6pg@`fmQ%n}dJn7L7Jz^@!wED> z;~F;jw_F>gK*uZXhpd65!E)mnQ#pw+6^_utc1k+K)Q@NQn0K|QzsgN)#qM_gr~RdJTdG)X>Vx)ARp?8_dS0R2W`1?kgC)FE za6hecGuMUiM}_JwXJ&It1cmNpC9QEOIN~FB8~<}zUlgF5%c`LI{b>V%%EnNq4d5ze zpyr?=5#cx}3U5-OQ@xXxvaG|Tyr|cUT1_!yFOK{i8&|K!(&a0$a^)(lUcC-KP5c&J zJ9a=A8A~rRB`#zn3Y)L%Ky_yw?s-{=kMqFL&p*a<_xHm7ef!AM_*3iZL1BV*__=1L zBF?7)Uj6!WJlUt40ofCe55;REUqHJ~b+I=pi&{hrfqJl<`6F{z94_^wb~T2~d9UX` z!MtTNak+mi;&N-kBP{|khcCjopZ>twRdaA*P$u^7r_Uk#AW5bt$6@!$o--ZT?tE9c z9pzWwk0lw&e{L2cqvP=WtM6fFSTy$U-^ag1Y}vRDg9qM)=!giodi%p8BMST5bjOU9 zD>32Y_b}+L?nqBKh7fq6@R!KFU2h)pN6??!Da&EI2VVljB+JS>>}EgBq(K?;10 z23C?{8-51%W_*Mr8DBRt=dt_hW7MY;v5#|mb$P6{9{>JJ@J@?CY7W;MCrhS+(#mV@oc~;%CQ{6KULu7ajjqPH zMZaU!viW$b$9e2u95wU~c_j0zZLJN#O?~n5azSi#BJTP0du&>>7|*pk4^d>+Wg70e zKN?ZNXW)~S%dl$V=Lq8SL|%>Kralo~`StL(r1%zdqBX|4o%*JAS_4y2bx`R8-@=Vj@KUSYZdXNP|LY+_4i7FKw2bdn9`Wb3ZQbW`IeX*Lmug*=WBSN6AKC;V*4kb!V8piM65g!9|BMQ&;m z4v1-@c~;Lp_hRA?6VdCcW(Yr!f!s`LK_jI#w0fcgG(BY>na>pJi7ce=TemL!YxtW6 zc5dH+@bEAsr{r1;zR_g6!mnOkc+>Y>>H9A}z{l@>K#jK>{HTI;p}D%7G4T$gnK%C; z5~vmTq8YaY-a1q)t&ppSwNx9P9fI~3wnalV@520vLHO>cA8=RC%c&v!8NaSgKyZ*B z86i)aRY$Y`k%%O-mz16dABT^3W?C$w`7YO?nY08UE=c0Dn3#h_2nBURu>kz2RduIL za!E&>7=Lv$Zf^pa6Y=d_{{|@gDe+)4Zdk{(H>Eio( zpvyVUF!P;f(DlBdh~=;XHO33tqJhqmY|a_s?nWkEDYW$&Xn#pl_)r0#oa;iylIGZ{ zhY`gw>MtoJn*xbEjxUCD;DP9UsTltCCwO{LAB1gRi|@Xjh?tCqc=Gkpc;~st5fd3f zK@0Hc7awC(pPLXH6^RTrl#`C6q!gqiCE;LJ9xm+E85g%~ghPo3a5(ue;!`pZ5gm!< zSF}a%UR_keF!x@ZI1URvZt0F2uR0$-%%fD(uO8|Weo8K6vOO6|C7S(>NjiX-{fF@C z)MH4L2W8B+z;wDk|E{o#xN}OLdrRYo7dk zys(#w`}c=EkGrnE2JJd@z!^a`O}ifMgrTbke0X@PZLJN#jN}^J$T)i<4S%fv2cegC z#FOt0!x=1We4jshd!-tVT*dOHlg3ydP zaFA9F*8H127!!l&*!||2S(_ww(^9n7BWTJV#xjJ1Uv1R$_k$oFyL$!Re*bfPI)0&f zm&<#kOIpJwL-jvL4*>(%69--S!y3GKg1VsfsikU}G9Nt{O-Y0Qxm6r%zesInOB6p) zo9SamiWECFALyR#omluJ;pfW5WB-;E^X^#E-WQK$8w#(B}MPZ2osQuS%t6mF954 z%`e4;buzJY)4wd|XAbp42NF#kciwj&ne8-e`14o%y*V1q0xW-HnYLw9g03`m+61^9 z&Lm?3)T`x%usw8+4QPcPeQrQ)9}n!0-Hu=8EQ3$ICaCL8(`Hldh;&^N@bvUdxQX-F z*%Y6RpNqS148f#v_oHwBacCUejD1K(c=SHB>ChP$wrol+D+L>tPQgFq6$1krpjMNs za8X-dY~Qk(ru@1K)fFk3d1%$XGyHv%uw~tDYPdZOvK74C$s9*gcwmxCEd)09Db`$C znt{lOF!USz3GVK7J+{uDjB~r(0n7NFrM)k}rtK^7#E@ZF`16ODxyc3XTQ)@YfoS~w z+fsOj27sJ9eS|YO#tgXnszrY?or*YX5nZ{AZmV~KW^Hc|goW<`TAYnuH=GX|c46b% zIoQ0*4PCligRL7DG1pn>fBQAqw&rJC(!QrE1fKc|{~lP5J8r!iPrvm6nqPl8f&=QK zQ9uwbKC>0_$Yk%D@F8yHpOr4f(j5!ozTgXV9rTXlne{P$*fY4{+HSZ6FJm1U$`*Oz zKI`JTPVI2$-=!Emahb_zeDNJ-)gEanG`UYe=bpEr7Jaa$1)huBdR&9O3#OpmwY?Fg z5`&+_Cu??KV88ou?-#FO>_54<@+!`cANL8@gdwna*vTh6Hexs84kp9bza|;fUAXSP zS25`JE?Bc_6I!$gq$b;Rfd@3r{j>KVj8c%xyWD~^1MAYnED;N*{DM8GfmW@XW8;@^ z;qkVY=~BQnVk7hGHyySHya5*ND%JCT}^g{Eh<#|5?0v2DdX47zomqhr8Z zzwW@jwKt(t*B<%L;8GjsU2!EE2;fxA*N@i!aBl$3d>0`t=(c|N0}1RDY{92oPD24Imvz zs2>xbBdnw3s3iZKu$~tCukxsv`Lnc@cJX5KAE$>RK*i{ZD0Y!RtUP@$p)cCwsz*3q z8nGftNU#Jr%lB6P@J3otq~NLbz-Wf4B^0CWl8@}lKSs@&%-m(}F2<#76Z!Jjou89) zp?&^Q2k#HHhxa%WlA~ zuqb^0^%u-P9t#(*#67p&fIYGCG-tLBL~~fO#7kd}!{WIU5qcm25wUx4#npqbcIh89 zuOEj`Kl=jHXU)gr86)AfKN8ul)TA59yOyanQW0$~F1ZN%3wZ6LAMjwmmY6;DS@gYU z974!A`M72n=6t~C`gM%KTk%l_Cbh=Ph$YGLR*IifV-Q; ziub*}6MdkgG5i@Z=XG%QS*>yIxov>-jd*X=NUUA97Tzw6@cN7e7~Q=ad};(>_~O5? z^3!2t6PaAyc}C=77x^zlY{iys+p&4Get?z$BB0n71r!G(x8sVgx8t8Bi!f!t^}vn5)zZfWY9zGMk}LMR}(qb>WI zgq+BIz&-ciiWc>-dhzerWO9ipll2Az!SP!Z;rafmHJCg8JM=iGIn5L5pe}vkH~sRX zVb0rKb~!?s@9pvPkzO|xS9R~lU+H-5y)W?VufJmYFEcP>+B8h1Wx~9cnYM>1G|$ZZ7eNOSljpPgsHl^QPmg&p*e+$5U(DOO4>vsVI38}_0q;NaEb1QEjNvyuK&eO|>bY=@kvSjm#bhk{ zZ8pY!{Us*-{0mksU5o{@XXBOo`=MULPMA4kCPoap+PD_@xTg@N7vq~L)A7*@eGp6c z^UxNpa8@ghpUIc|#MR9UP5C{j#hEx$&+`tV*9RYB(%Y{fWd8xA*Qkm8T$?@Le;r*NSdjiO@`ht5=Jtm=cznoEb6RrFN&R{{~^Ys)j}Sd!+=x;y~=_Akb z|D0JAv&BEH1w}KL@2_Fb^!yY{x@Jsc6>XBIYEHe%QNy2JY=~8}5E;IFf6(#53=XKu6X! zVcJ}p@O$9OTW>ZshjX~yskuFq3jaTTn{S@E@Ng4MWf`S(-K}@vrdw}EhYLe#{(XpM z9f^Wdp=V?8K%`|EL;#`_U_C+o>yl{2Q1)-i!%HH{i(c8C$<&H5rtlrpJ_ zO-adwc=t&Yene!p7d5}V`D;Hl(ZG`o3Ro-SAQnvggaP5S3Ur9kv@0Wp3^VY-y1(&6 zyNfXW*?sU0`!K~%KqFz8VY>Q05Tip@1x=_t>^81%rnU z!NYy8#PXj$Lhsvd#o(8}MBO&m?QIlni&h+Vo9#$NCi?U|UQs+EW0d zv^y#pUAp(hc_BVnv1oyLCO3i%!cxiVVV-d>NaMcDR3us^H(tNzOYN3cTONfZO0Ih5 z>kEtQx(V;R^%R0@rQ)sUA4Jby_hH56nrPRiAp>QlI_52#0w>`Y5+6*Qit2PcARyeN zpqJ$(@QU=oo)~L2kDTPThf?#UQO>t}M60%5UyO)Tr4rmMh#Z8mBSs7R;+tQ3yEJq3AZ5ze|W=X~A8L zrG?gp?GjP6u=T{gQqKrL%3Rl+9qz9~)SMrn%bxb@(Vr6~^{D#!sRn^#$LgmVME=Y1 z6gbl?DX-DMn9W|`Wr@8ihBhfNuk#CCi{(`(5JR4M9628T$fDU#|NaB0b#=vr+231P z<(DQCbJG>8C7Do}XC_A$18;dFcIP5=y7f-0%(Pjk*{~sA9?%W<+;kS+o10<~lijvC z5J^Q!|9(-w8*%1&bufGE19)`U*CxyKpVuRD*F(sT7pqDhKGUHkF~9hm=Fv6l2IJmG z`kE*HUd=(naGI!tQLD45r38lE+7UGlgkvCsV@)-=enI-#=V0K~_u^BiL$l;e3K!hc4q(#Qck%J0#qf=b zqtvz~wtg}eGiZ^ZB!Z@fPaX7o;4$irNo*Pdoy0%q!jD1A5;tWbl>-gw`WV`^Y=$`# z-^K$kjxuF`{pBYFZiz;RCcOTPg|o>lHft7Yf}w5QvISS(bT7Ug@hHMJ|BhkLj6|av zwej0mpWvalUqi#FJ@{e9Eci5OiaKP2{a#Q`*L8H(LI_8ZeXclx1!Fnkw{z=m~sJ=5*z@I0Ux23{T#9s~Sh9Bt%Tprc5xO`sbZV%hA9y3s3fb5cAd? zpq;`2oZ0gMJa}(stex={-kGu;=ilkWd6dbYjpiER>K<1jarbYyuGeE$T{CB+N$ZYy z_|_|M4UG#H>`KC!XSKk#@uM;6zMgos^A!mDV&} zLZzZIQs;wP`z42eg1Ir-<)<-aqz}LL&{fZLMf2uvnDp)-Jpb0ud_uv`)J-@mY8jeQ zkY=&ulqqrTl%a$*Wvl-=MhI}vaHn$39W7yOX1Zu6go6ui!-9E)BXn-$7cVVy!J?J< z%Vv7qC{(J9q`e@~Af95@wNrC=-WaC#L<$co0VZ+-QP4j_tDRUd zSHfscOch!mS_@RmSZ6HHUHPn&W9QO!2CB6OwB9|u%4vWixL=Hl-`3D;h521mwlAXu?EGxhLUZ(WEfo<^8t0ORsTE#bB9)cih zO}`rR5?&qsqsb;eb@hjqxA|wQtSE)ZEPSN^W_j4Ue51+V=E952=eoEZNF#lE_8B2W zZo00`Zq+KQfrO)1T`TOLzp-xF&Sci zHq4uhFDI==o3?%M-SnrC5Wd|+%?6FA1M?W2yH+6H`s*)j{O2G1y+wvJR&!s z?JWaLzP}O@>2~fyVMc`c&4DstVK!*g#wa}KucWjqF6 z{ipQ(w?84-qdq!a`yhXH#N`*Z!r%YS!t5PD(_k0QO*!{C2};d{V?~+uqCF+udr%`k z#w0j^b+gEv`!+?Jvs?1%1}tH~g&gez{!-E!D}6q#eAWM+NC;?#OPZyUo;&xKd6dmw zD9*3`gYP0@B|NI^YrCY$Dm4`YnqnT6TE)rwQn0BE?YS90=g(;NIEUs6SZAORe<%`q zz6+jXor-}`%oNSL1R^GG0ORS1S=4uFCyk(_xbxDv{uA(B7|}NC7o&bMCld%y^F{)x zATxO~kLpD9-9nyb9dixaH_f;+zR;0BOZX@=d81G(t(#o;%9Ba@FJ{*k?v=8xFD|XJ z>UXCb1T1RvbQ^V58E+*LQWdSrlbY}3sMWZ&*WJkUX-Wny2T^;rVf!8icRQmw4({4* z=)9cV3boG^zYYq=)eoEj_62YnW*aCt~C7CvbVkOK|<&0ccz^ z9`BBozP&Cr&qw?hHB5E`4H&IHAu$<#o{V^_2ZfTPscznN`E&=84<16>b3<@Nb6{Dd zKk97XfZMK>ei^vnkr7z&&LjM0%~+0uaLE;Y;4o`;r4%HSunS+f1KY3@5zOmKMmi;# zSIEUtvrpzu@DmZGYth_2YVsHPLWkDMuZEvt$kfd`wf(Sf$4=D0;s#8fJ`P@K`_S*! z>#%IwL9}iijI_8IPLaP6xa84YK}pw#l_zCn<{-2NF#D@n`1i^Ca8b7hG1&7wcpr?V zCBnC~O%FnzBWka%$;(Iz$HLVy=z85vnEm-M-1y+D@Nd=}Ud@}K>C|7*dFnV^dwX9r zukDX*UwnZ-9)1-`w_cCENfD+yoBrB}3;GPk@aG0%#k_I2clcLm!-)Pd8`j|5Uc+$J zC9U9lC>kr5FQ>U0uOh2m7qx48qsI$V5ON{?%%IQmWa5<`cK!0O3YU|Eg@n+(pIzgKNYr1A$j z?;h3I0fxFCf#NCF8Mb%k#Lj!v$#D?M#F=Ov1>av&}nl=Z+O%{VefcHYZKH z>^17rdP0J&O!?zd@SqjMZObqZj1N%9TS|LgwPvlW+6;2&Lg7f!m0Ds;)h{Xw0$dwn zSj59fFk-%xt8Qy;6`NJBG?~s>9Jqsx5E+=&P$)yOH66EymKKka+5G-gPE*qAmYS?3 zUm%OFBD7#%;PI*T!!iGrZ7E>Pz`1_Sm7!{bf99$(TH$DFji0Uql7g`U+!{v3(VvqE z?v{x&acNmXpenv{Box#BlQWvVTjUmUI$bAsyr!t|dRDMOY1*y$7{wqTr;g~Y#Oqls zBdebBlyNFv{q;15fav_{RAnHb?aV(L!u!&fuNXw#LGRS7V)li|CvEFRzy(2ZBp4s6*nD{yB#7r_U^zx^p^SjqafgJ+^j@ zY4FyoJHjg?7faWzCui$z%xi6_u9(|gY9;G1=Snhb>6taq_0GHbD-M5c+Jb2JcKCVz z5_~+ohqc+PS(x}XnU8+;?8|5}Zy)1y#7xDNSbGdNXd z2#?g{1E?R`nvuqDV3f9GBQ!8Co&O<&o}FjuD<}N26z(<7z^l~sA}bO*!Xh0xo8pr} zcfx~F<`=CIJW1>b9+G-Ha_GavAmFDj8GO`liom8JXxvDwAQ>>@Q%&~-e&6`ldLGDL zxa#IR%)51e(vqP@XLRd)F)JaH$nGRY??Tdfm*Zy!f~(6bzIwC?z|_?{m_OA-26vIK zrnDWpAI{$ruXbZ4Fej{Egl=8hW8#)LbQ}0Q#@u}!BKPb@bb~hdcIO^!n?4r5Pnn1> z#GJFtxTo%iKbhx0ri?RnAhZL%A29?G%jTlP4fmL5|ByMS&YHdik(fV!Io53F^>Vz< z%}tscI^pL~h`<}oc)ObB<`84y7=}{=)1j3=r6`xrwl@EcU#Mp|kghRo419j~i94 z1pfRPzWz`C+Y*;?{kl7Ea}!I%N~r*wOilmktrZPC?YfPzZivMie|tLFjaKskDgJ{L1fL+HorgY^Bb5 z>0PYcw}PX?Jl{wkD!2CktTxS?JFW5D9gL&qMHUZbTA%!9Jv=oUGB*K8@Im^bxbwR3 zC^;=ACGL%)7Cr6M7aA4@K=toqf$S%CKQ>|f&%dF`MIF%ns&?40U@XS3VbHX*ec;Wzq&*FT#GA%=hboYDXsTq|J?Pk zQEP19^erBI>0HeF`bm88@$cAw_O*Cx%y$^ru_NAExeFJ3_Z{}vXoTDD?u~l8|G~UR z2O}r2C7O`qd1u^w^y_y$EjBIk>IYKsRn^Z89NbIHfn$!8^h3R@b1u14^FMO4z)Kh&vzG+U9w`LHDBZ)G7GCF_Uocz-<^Zb0*ep+l(h}xd%IctBa{? zH{gVm_EV_CvG@t%G@g9-tZg7_$ysNL(%ZWg^DT`W8L-S0HsB zjDx%pVES7<@X*J9n+W;i#*an!&M)A%sK4;d)Vc6%bSdua-3fdD9*;*KPs7>$U%;4w zJrJ?O8jXJf^720Xm2 z8v?n(4$%d{+R0X3ro!rfjz0vr=ne5k{9){WXyRCMa-0DLc2)7Y&05ih5;8QO%xBtg zJTrCJ^%Y;oae2xXKv-^!VSaORXhNGuX{+N*N~ei;(DG(7^5$2i2-+Bf*!-~z`~cl z!(I1!;FS^2qU&AvkkQRS`0StYH1F)5MW(-r3oqYl+ys$p-^KEO9!JncshIoyM9Kq# zk)7t`i$-|J#9k@p@9o%I#}|Lcvhy@r%HlW+Cux~;T)fbzehPYZZHKo${sDLP>WcmY z&L!LGM&Ivfyu}FW&%g62nzU+#$nD#ayf+TJ_JrY};q|RL_tRW@`|dC#ia~d$c_I7Z z;+UL-*a+MMZAIIFiNpqul@$~dYR21*FH*=ndZ(bOQCL;!;%gz5o*qn*@VJ+|Org?l06=KLs zLsa-KxJB(XL$=qDeq@uN3##Xa^}JGS<;s3&lf8#mzRjeuMKHB6jH#gVO!1Ln*pnG; z{a7*&4-R-1b3T0oo&K*6d}c1jlQ;H9*3`Ff=XD+NVB4$U%4K@UU-x1AOKMj zzVx+DLqhys-VJ^YE|CPA5Ok6*Mq^h0Q%fLkg!d`0tR*)Hk5)2u8ljp-Hfc=oALJGp^WKHeRVFQ%TqHw z@UbDdj&FD0MaZGgYO z#Nv%lQE1|e-+uUnPaB!L%uNRVW5d$S>%K^{A6ivyJ@4gSoAC5wo_P64!%hRxI#yHG(xdc}=IOGTtmuA|r zokbkm-0nj4=kbC7=h6IUOoK`E6PFY=m*m6pwXSS3^;Vt41*RV7qI_=Nm#?Qc?PPs0VB$3wxGl~d4KY0RYNP-eIk6iR?wGBa`N0bGofw9R6| zTquyXl_f>i<4N^EF$EYehi9UzlkoSX8bX!mEaUCa&CFPgknSkoek1HD=uuGPh;4t9 zer2o(xqu2!SEp(SloJ9v;;UCoIe}GK**vIW6Z7Iqf7t0iPr<6qvDgw84_}#c^PouP z9pT|y);i3|*s48C=F`&77}`w43pajJVjNNrlW{EP<`?4F7ZquOOa%mrc`3|na!D}q zwQDZ#SvCx5;gNfzaUgxYSuQ3eNS|m%EALE~d_v!kgImeSGVSfPk9$ zOr@Qjlp-1Gbj0$mZl${Q8}gobhj}l5D++xqqtz=lVtel19!TbVQJG9ez83wyYw_l~ z2*wD|1M-}W8`C$QYntC{bDn)AJfd4goauwfQt%(Inlz`U1&A$S;#a>>NTCsIm5 z>xDp??`M&y^=1&b$jIW>Y&`@w^+8rdGWO*v4UfHSJwrGA8}<{t4*ZA~7v6(F z2}rV13T##9d2Q4-jo{6-c4&VT@3k-bo}TfHM|%ht z-1s&YOnn5ue*Xyi4ETm_EKM2Dpx6S%RZ{(|G9kddU;=>_hdhdDM?ybuznYdtvn2d( zKPT>xX4TuL2K;N)zBTF~o zD+b+|Ru{^vtFjcRNm^dBU!2|>Q&c|J-a46*=Fc8aW_r4@TC#o@9EGJBm6nt?GNsLP z!D6NUQrlwswLVYhWZgs{hKlF-Nw$89&YR`3pfw@}v#5ZuXo>14M<5^^s`X%)bHcAe zdyP0Yl5TC$J2#VtU?ikU+NVc)SN-i&hk#DD>Qq%AU>H7&@iWqK_RFH<$m}>woYht9 z5Or{eWY8_7A!1B_#c+)(x!t#;{Dm`YcTT&Ib~Cmt^DetxjKrPdl&E8 z3`)l~SXK;{yF1O{X_}p$#>iXFV^Npb37&BR??q~_((OSuntwewS( zC{OvO%cIaBn*7rKdt(W}XQYsUai|8*&dE^&1kA_W=Rz@?^^?%X)Wv5ql4flN=~i2b zjt*KWBpRiu z{g6h{7n~casR@d5r_%%f6qZTzMaGe!MaT9PNMJ(G`f_p?O+i##0v+sdKYcrC>CTEp zc3eJ%Q}RwMlQteV$8T3wj(qd+I6{IDid2>@TZgnQzJr_o@(vC=`(w1alCb^m-{y9K zPiaALFG)zpmDk)xt@`oEoz{k{Z}^SKqA;YLebQX^e)P60@94d-0t?f-otTOOf~^j2 zpU|rs$2O*}2OhnHN3Q4Eyrur zz8fcqdSRR}J{(}1_3%B@m}HOf<3mW8O7)I+8u!8t&dDV9aXKcWplU!M9|c@39{P@w zR!p;?_5)WMH$>;e3>?Ea5UakO0?Pa+(`z%faW0m(aciEZ)e_%%IdC&tUe+lbL1Vr& z$gxJ)5sn-uZyuIscT3n69jy&q6SdC-!(*9QQ&`Q(qmv%QwM|X$hVL92OfH*a9J3DM zJ1NI*W}FG~T@!EhZr0PZeNEX4BV2U&y*c)v(bw4l=%eRhm~*fu1Fa(j4(u0O6SfIH z3k)qbaYBuvohrqmDR{w8-H07^)@N4Lx zcm#zltd|y%NhzA-1-LuWO7PwglLgkl z|M4i+EKNa8E4`SztEc{oyB_`kIrLl5+7h^rsSfJb{Q?V?ci}cJuFP?V6pl%2 z$mO|BnyE(@g$=EpyeA;Te6$rHrqkMg-nw=<9{KGJSn}p8cL&;n4$TNBOm8SYkaZZ zcb&i?zZgEVhvD0JF|UvIc8)=^25`CJ4UOy^q}{R%kZ?}H2I(4$+zHk;n!X%HcO`Hx zfq)ap0rn5mw|J>}UwjF_@M&y0EvKnkIZ1(`UbRUG2P4QrjS*c`DD{H#5X#b6qj6?k zMKNXUopg{(e-0WXo#1dFL=I?Xa(YgPOdDvg2#x84N7@v?lb|&uZ zXIg|BZEl3dPYLs+F&1d@oeu>zG~Su}UhZm6Bs0tcS6JMu1xZ@Jc zqFJI#vv`)kWSpcNrhcl&AbV6TGyhKGrCX-$R-MDATT%Y9;;{t)URF9^>^l;Mh&Q%_ z)XB~i31T*-`b45V%=@M>O@f&a$27Ax;5gM-SA%bsyh)I6DW4)ir<3QV&w=ob@|!-d zB3HvfL?od|PeO?sxr$8GoXH(Ah(Y6RM@JM23TK(~qdRC7&_>fQ^T3KSsXryT&EP)! zSXv{r3lKUX>>Mx>a%!z(X{JAuCWGFt#d4_OW?$-{HBaxULWmG2b>U{S6VYWfpKO#YFfIJ0)so<7rw$b>i z;tZx_hLK$$&Yb}hmu$FmvH{U;v>(UbHz5s1geGO{YRwIS}HKOY* zGvB!QM6);4&2OC}t@L9WNSg%gtknSFgD)LM+sSrr=XNQxFFKrN=;WQoC!;-&K->A& zW71uVALNf2;Pt%;@JGTdTPS6}OOvi$B1o{t3nOqG0XP>~;;Fhx{f0H>ST%DR!Y0sf zBFJ(l>mfMc0Q4c46Y)p(T1Jbk-q7zy@7=*J?AUfzgT)(o-%g<%e6I(_+|=%9uI-?g za4KL-kZG_n`S0b!WUjFV%(%VU2@&Q%H#<-xy;|Lm|tRW-gF3vmj~^R1^V7<3LTCW&%_J_BKxo zt<5%?tykJ#+fGp4-r7RY+irlnfT#FkcqpGm}j-K-VISf^g{xL`LOA9r5RO_Mk*$EB@Lgj!jFb_4Y6W`&0%>j)+W~AeI z6cS+4@NIxPFJ!811Vv*srn4;V)0EaJybDqRYisthXD02@ZfU4P&8l)9$GM&kCYz1+ z*OV<5h>-;F0}hW|pr| zWrE1lX030nJ&T4|tqvJ1@MT>aAnzr`y5DDVX)R7=JZ2K<(+Lg-91b`f2$=)Y?W9_r%c&xxdRZhC($g+Idr^ZxWrlTy(fDAcd z@(sg{!PeN_mm-$_B*d?hr5~C_bz0_h0y4{cb6>3RT&Zk3Zvmw74VECon!CoAk_lTn z+sl~$Q~YCtS|eDIP=AsJpps zRts0_Y`*z80DWBB-Yg~hDDeB)_h9&|Q6wEc^UWlNSzKz6Rq%f6m%X6#U3}WnOkBVC z8l{zH(=nUxt)+9}aKPcfSa5*jhd?7CRLG?X%<7-D=p3Udo&%!BJl`=gG{QB52{7tp zk{Gjxys>tJF=co02uJOmt*=>&Mrx+w=)v5~cPvlA9-qyR5qt=!2(*Y_k=G|MAu^SgM{OhQ4IE`m?y6qe!*89c5_%sS6Cx*2Ap+(4(>p2iWo@(2@5vbS zzDVd`d@krL*3CQ^$BWu(G74}mo@$KJ__U^cxpTDIX5Od5RsG31!i1~#L?yPq=8!tKz{g^gqCpI|_=H1(rdxcir7%?G1w68}s` z_}etAGcSe2JpprLBCft}G|-b%lP)mX*&*-!JW7mpio`n=5@W|HvL$Tc2@w*ujN)C8 zP*f)Jt4h8x+aZhqWEA<06FZz@Cm07DfIg8L#H@Mj)lhJRg%&%wJjXkh){|pDw)J0d zj)n)C?CjjMaE*%c?twIw(t?z&Hue=9O_iLq4hI|#j1vb0TIC@<+MHz^ED_espig@& z8ZsrvBNJDHuM$|vElscQJ>d~PGyXbs-vr(0p+=TR57POj8UK2pd87DzSLppepA?+9WvO0Q3ph zjP}G39ATlww(`{A;o`o#7#_>hMoF->A`7m(NXL@oF;>z@I%VnLKFopji`1+*`g|?E zx;a?GI=an|S=QvIMJY97U7Qr{Rj^;Y5&h)E8W+dCl=5awkII|VL^~pWIf)z&Oacz* zJ(iZMt+g3CzguRt!7cu1a?XDoZ35R)!ySXZ%*e;Zx-^6Gly3G&bFr?_Mz82H{qAV< znCAj7x{fC;2`Oo2k-xsWoWGN47M>AcTTfs4qFca5Cf>T%0$FvFleV=L#b~7CH(Nug zdIwieLuS}MRIchTdS-69qtT>?iw;v~<{j$})we*{s@E?gHo>^?*d{{!7>{`>P~WoJ zro#wi)Ccw2=-p9V^?934y-_j^SHCsS_?%3%t2Al8jYCS-Lq{0e!8l2C38YU>s{p$m z!F=l-SNnwpoO4Xp*j4`3CuaN#*LV?3J)Ah3HU}JlK9SnjjPsEl?3H^gC!orTQd9Gs zTzakT(J@SY3#l<-i6%8lFXMEUEf;*WwlZgTS5=f*#V5@`enu=hx-^OVQluZMMZcTA z5ys`ZkFRB>{Gs{EiGe6SY#?0>YHvoxnloESa0+!e5LONd5?G)> zUdv^AEi-Q`Xw(TD4EXT@76W2w_|yW`3(Td#Zf|Qvb6pL;3C6tuU3)4e9I(NZ0K7^~ zOin{Waw-z2X|AtXhtw%k4N!?opb&wk;tJA8Tibj1gJns$&`D6<+FXwYrm5qRXWcv! zO?%B1%$dQu;M_1?i(Hi}t(y2DU?zdF1Qa$v6L}*J%-bAk)_+19adx9k7)?QV2hWU; z?$Mt3F`7?Vj`raTAZZ>q0vm!vqqWwWAc8@4)Nz1nPjj9;+t==A)-i!Gh@lmTp6j>z ztVq&vn#Qk#eoJX!H0YMoI2Z3}E1P*KB1n5Uv(`J=t#;@8X!BjXQJYxrc{ocOue{Ws z*?6p1Z%||MxB8z#IKa6zR2{>L{x5;L914hJSI2LukNNhe5mxuu15Tjyt+amyaZM7(z#<05>p5lxG6Eg~f#6i{CI z*}G_MY(Q&Mz0nLBV8U_9oO~C$d{9TwUdz4O3IaRzHERgk)2UTYMG{TJ6I0Xa z%q__{OHv#Go^>=GU(dgm#yaB>TlWQalwPz>l!dMMV}up;88|Cqti0nnAl=@KiV8*z<0{5e4h;zwMquNA3)` z;h{sKzNi|vV<}CJkE2N?7jl}^db--t;_)?!k3xI`H99O@@uPX+;Tez}ojSgQd2#P` zLIOSTMrq*WVu1JB_?*)Nz=dJ@{)gd;Ll@$kr~Zhims9)8kX0}nGiMfJ{xmI&%4qIR zGs;AojjIf<8A%2_+>7?bAwg;^&M^QwEe^6bRgcH(W;MqUL z@W0)0bTCxigd@+n7K^rM#_l^lg>}>_CB?LJVL(E>!Q!i%eC1-m%h&GCHZ-?*7(>$e z7$hYnqP@L?+YmHa>YgR7Z*6Ng*Q$36JsT%54>Fw$=|TOp0vvVP>G*8rQUlOkoM^k1 zR~$X{auPA|DB*1(Uo2`|+-Dij1&hu@jWcbe#j^I0dep|I0d1yBC66Q~HJ*R8MS!)UY6PfnkTyt!MOxnphl3e>Ewv_Jr9_FW*G zMRi}+6XHs|*toVDnYlAL4qIcW%|pA+a*AiyqZjBJhFMHA3wZukKJkeu6j&sXzm`yT zLR6AO#E2f#R|3tHVWg7tiA<;!d_kZrIHCw_q}4P)oxJwtb0`!Dd~2?=wnOC;R6KatKu!jn2+gPvgz~tj?V}bZ67w1f!C(pUs0C)3jsNDEWb89g1 zhRG(>#}+v6viKihejh2{L!~1U@w+8(G3zW#z~bAR`(M+Nhkb0cLGO&lh?+GOSY5W< z0q3J-sFOY*2ONMNkS$|$)0#E<3Ns^#|INO~LtO=%ia6PX4(>sB#rHsNcxpL)aa!b+ zm5cCP0zq+YNeL_+iIqm5GiMbMWD`u%DMp+-8l}Z6`X2HsVM;c#l3mn#(`2!y86_(# z`aO@$%0od`B1)<}Se=`X<4!vs|NQ-FxW5c2C@R8DXYYlJ7i~m*`V8derBeUgj?$Io z{qn$+d=#W;j*CHAX>tE&-d|JlX0mP_13@|$kKG*}G`000nE+J-?dXG-sm!P&HjZYf zO-SG^i87LWGS>tWpAd(J($WEZEi9VJ1#=tscQ&DT&1#=ieV2Lp`9{FuPDn;uWf@lW zJp!5qtUd5_SX%QK($U4^K34k1;dNd?A-5E0p;V3162FJupZSG(T)2o5Mz9$3}4PfwHc=PqO7v0)7-rC&6@uk(6up5BDp-+od7loYq zZHsj-Y9-?`z5r0Fn^<& z=lm*1iUQ?51kbWKQ9D`!dGj)uvQ7JWL3gnIaIko0iwN7jlLB>jytMABO<(=&zG9PV z2?i`n3SR-5{X8Py;=flQ5$nrazrqAKjTSwc0G4SKtWR%^f@urCJR|+n2p!nYqElOF z?D5XfuV&x_J?m`|bJ6>2gyeaZCKS-Et1RWX+b0MeVTMjJhXVmQ-~jZ1Y#FDUX56rc z#0b;C#f5-4|Mw2UDp6x_LZS<0C8gN*+07zhwilvh}E%f^$Of^BooN*di%fe*ry-kHy2%wv|}#8QTylOPj~$a%WCRSUFF6FH{Xqg z-`X1Tty5F^3GTb)GQ7Dgm(*6^lFNUA8L4i3QqqVMjynK6sT3*ZHupN!`FEW7U7O_jzd9O zG8Yq#c<3bn<{f!z z4s1poFd&idyu7^YxFB;bGZ)rz@ks`hh!t}3razAtNcMtwY1fTq6Tz|utS|(B5F>DE z?vX~bzntIxal%k+#Ig{ut6uSi(UfIO&o#6Q=vdzB+l}T_Ta4OhiLjPqu!J8jYJ-!~ zG6@*l*e=|@#r9~Xsl1zQvW{`IpMU0-J29RmsE8Qx!DP(#h$6V`;TAGk1IX+-5<&e- z+HIq`WSIejmlk94PS4`DMS}Xc1RuVD(Z3G~)T>!dJ778%Ae#kYO!Yw>*e>_UuT z^+|2lX{cGtvaPKVA!g!4cQ`OC2ONMtEQ=x;!Efjo1sDo(d^5mHLQ?-C<9M`9S;ET}>JFS@@t^%o3_r${Q?T_3!XXC63{$iMN>$5N6r$-!&x;0f;)7Xv$3--r; z-~BF5TeJ`_y;p!o-*^r`+H*G6&?9bhS3LGzumF2+laJkZ`w>#8P1tVkEW~j#&E95v ze7mCszhSQ1@4Ns%K4TmF_tA^-&ezlM@Z zdL7tz-ve>T!aY!1zYYx>8xfnBf&KSC09$6KW8V`mKt|Clbn7S)ntR8)TTog$9nZe@ z3=Y{n6Tdk92e{>tcQCUsm)`6x$04I_ZEL@#m5Xody1jhecj47|za@UK=p5uvI~g^rYO%4|gPg+s@V))^L`>&CxbLquD9lfQr`_4dZndWK z>2P2?IN(1*52Qh3jzEw(GKtI4=BPTZp|vpYgr}*|XvLxl$PECq7p_{i`VLS7vmNyv zUjXELJ?f0dCD+n~w^SBKZ6^Hb95u6MBoBX}~yH~5(+uyxeMCi-j2BAJ7r*iBlrY^Cx zG*ll@oeZzZUwuoU(80cCjuMO%jiww53FwQ)XwLb2$l&F_EI-r-3_q2iN5VYTfkHqz zRvWEzwLmn8MhRDX%M1|7cMLHO?MSE5n)ChgeHI{T7;njhp4(rz=B@bVGcUan9!SGT zy_41C;()J`Z*oz-Nl@!IV2@vjh{S%~j1IEZ;9p`~mYes|Lu z$S$0NIkWQcv%B6!{!Xz_3|L>K=0ho95@eh%_xWa5Lb ztFZ09hasO&8aUU>TdihEPXGLFMLj*9H@7x$mq_V95OG z`DYQFN8#Q}kH)Nd^N>4zXFRuZJ!_|lUxxL-ndhEPaNdbuo^cT7%%6{f%ryMz%QZOQ zqKk0u-i%P$K%oTCQuQ&;S&)Z$^XA}yMfbpyFa!G^wI?IgA|}p}--(w_a5yl290*}- z;sRV|vz;`#ZrZqknp**NEhxPj$VdT!@ncTJOSa9BSM!Yavadfz>6ag2*@v&A?5mGa zUHlbv#GK{v-8xTM09PjL0;IAaFy`z89&8wb3AeF!XxO-p*VOvyK7-mQTviMtWr*mJ zhkXIFa0c;Dc^gf3kQwU~0D*7;L6esK*9LADXqSUS?OAU(+Y1C9ZC(ahMA)OL4Mn52 zi^Q<~W9jQh^y{9q(E`Y}23v8pEyXx^WgQ|FBm|J@y#z$+f58Tg7t-<@FwSqaf%)_L zvk_2N9Y!0}=LNKla7cm}_CJ$vKUyui6;In3BmlAB6+@#DfQ+7&VCrJpn7pZ@psj>L zJMq`H^av)s6UX5|s2p$rdZ-+Wc>J*$Yz9_C6HGKb^azf;oiKZcOf3EHL-_rx%dzcF zyD<7<-1qQP9O!3Y&xOF2+b=*uPYdq){hcPOt+$+u2k*QLyY8_!9(e8pOiOzoXP)?d zJp8{6_{oJo#T8dvfvvK+qrA0^X6TkF-Q4t4r~@YC?m$oOc@{~U(CI0)c^S3i-`|$l zdo>=v{|r8xi5<7i#@~N?0$%^D7Ta$*-^6z(CZc6^DSms|?~%9VcIMuSufIWJTomRo z%i3lheW3xL6F^&=3%NPXICL-${11y! zu)|JB=H1(Ge*`tIEbKi0VD4G(qNBQQyz$O6c#^!{c1z&hXSnFB?m|Xffr{bQ07|sY zmGj|nz~R8;-~a~!j-gtVk2h$U9Q+E7N@Jo=Kp_pT%-Ho?T3czKEf7z>3$*Z03whr^ zy95b>1%B3)tw0q$KYQpCKxe?$tSTP^A+b%xAm5}}^)LWwkSHU$ZM32iM2I&*2X9<& z8ueodKE!JYJWSv21&|h)3_9ybM6Do-vE)g-jRvF z@|9pfeKr(;-pit1Qg}gnB^*(HMzBCIZRieAd~f-8b8c^@ z9B@=*6RF|NU>Dkm*E@!WS`Q`UKrWqfEFG)F@?TFB|8zeoh67<2%9b^mTs`zKKAl%9 zS2du9Qp31hI)F<^LtEWiwAOwDBp0FC(}{U=XJh%&PfZ$R?}^7A{~dmK@Rn$(U(0jX z*CHir7R#(Q`?3_NLlcLB%9K|*JCFtXl}0UbW1RtjCnItjL<^6 z!4zU>+Ev+H0lHtpELsC3WVldU{RJv%%C9r-$tnm++nPje$m zzxWUvGO`Sj$!SxNF^!X|#%?nKhnM!Ca#P*(Kh&{b@x3%FZ9m@VH|HuH=Vz=qMgyk2 zWmq$yRU;#S(%d>;JPV4kLq`%gH6H8WWfm?xH zLyz5{tb}M3&BlD4^^bA!eW2;P(ijtc-wemF%~dbaDuG(rS4((OQH!C+)Yq3L=i1>w zm^ok}o-k+XWH%ZP*dtbOd5joJXL}+ibTzesTMMIgkrHd%-yONow$I_cU-I_NfV3Aeh;(f!f@RWaLZHTvbnD zLJ2Q&F~5LEudNlLWYC1bKudY!@J`n{YRv?F`DROvaBOr3N=i#mQoI5c4NU~T+`nYS z4$G%0jtde`9k8*!8I6sNsH+oSY2v4Q)X<9X*8{?sBbj)^^&9Eoy^d$CPd6Gt&4uF?1g>RPF0=8Vf_IL!!KKWU<;}id9T-Pu zzygWB^Kel42OG(r>w}Fy0pmqe8!U~marQ_)ntl87iR0y;rETu&1+L<$;wac4QRd#h zzXklQK&?0XnzYqs3xoG=IKBj?wRJ&SZ#lh_AjW9GDIDk@xVo^{X{1}}484Jt8S01L z<0F-a)+gf4cm?rSYecn8=@%dIWQz3;I3KUZ*bK{c0Qz_~x`ns;CA$vkLR~J{9*~bRfR@{8LQd_at0)(NSn?{06VQ z0(|zyi)f(9_yxbX4Z9Rg!}8*CTzcE1c=qoP>aSXh+JKOVPY>L>o%_qalEyShfXco zSG<)ezX7Vow4e5kTvJG++(qCnej4X!0<(HfZL|@v7)`cJ{`>aqi=Uv>bYK7gKmbWZ zK~(xJP;AyjVP>#2=K|1XD+3$Z)}%{IuJU9C-_Nc!$z3VAN z4m%#V-S=~RYscTEUN_GK~U8`~LO+UwLG*j4VTTZ(1 zE}F+%Qe&Cvs~YY^?!WR%$shjZ{WxguRyc}I_ST+s7NQbU(AjKR6eN%r3J+iLD;$tr zh!bwU3;UmSA>yZIBO|&EPh5Qq9{G|H@}rQDKwrXMM{q_)K_!18kJyWgw}u6~P9{U= z!{LC#0fz$)2SVb2y~v-t<8FvgPDSx&@1eD+!R)0qK#OB~J&$TywelSFdaQ^*h~#1aVFf@RfBpsgpy5}@1n1Eq8BSsXBC z-`o<{+y3OYg0}0KZ<&B|y<}xNR89DKY;{K`Qjy(od8=A18u9*N*5_Or=v~bd1ZKRDuQ6~VUiO`&JOB1@F z0tcQ3nzN^-WYW`bHHwRiQM_^`R`Rd7qy!(o{~o^hBn%`F(;$CBO6oKy^E(_`V`%C zTGrvI$D99q7?=M1AvAhw@ZM|h(Cm5&lD>Esi@#WbPFEB*u2_b*{`Ftfr>2mu68z_X zp8|22c;)dwVreNSrkD<_UsHycp1BW4{NQI;-(5sAeAVD0XSW8I6fq1BCzYhTCTU;Gy z8tRckzP4;!W%0Gx;%iB92|oGYeSG@qd#GLhCGP*j`$$ZdN8gQD_W2vQ>FRTE#{=)6 zAU6j!)IM~__Tae6q3(@vE2Nw~s!9){F#hL1;$t=O5s%%g@7AkN*QX1)21c--yiA zCVcqeTX_G&l}JubMng*{rlvOIqYvN2yB{oP+e^znPK!l9{yIM$4s5O*&^!@}u*~c? zH4FXWIVKPl>k16GhEMIp7>)zI?Z&yfh34$*SCx5%#(gOT1R6K4M@o7o5>wK>YlD%` zMSVGs>`G?KT2~lQr9IwWQglzja?Uk$-gdn;FIr$Hd{$~hmpr+j>IgogH8v9S!Riuv z-_V$#H}KOMo}RnO|<@k3FySvzsRp#Bx(z&Iafw+t z4K*le0F;DJ$3C<))q5qFLsv%m#Zrn{Rar4;#GJeWBOK^yD?v4#kN1UXC@M;Xha1&< zIN&ExQ(aoZ4e351yP(iGG3(ZZ&{l!9>-rvQc-9o}&dfzt94Bt_!BbvtoSi9FM&T^f zmY3)fQ>N!Zirlz3p7mW)YVO$|IeD`Px_R6NwGCAj<>q!4X^y2im5w*5WS$CBa|__^ zp^2UOWwA#N@$9-Mrsp9enWj`EYP3^UFnrA>jS|kFV->1a`3h8~lCR0|=-ji;HmqL9 zGv*lb^9#7Aocp;tTd`)HT*7e&eohX=+t{``R8p{GhqNi_sNYC|1w(F5HsjD@praWT z>uT*N{Enh3Iod^WT+~rj!v-xxslkm)NEtS&6Jc~5ka@4>YwZX254tbY@LAjJY_^!0 zZBnD2k^D;u{kQ0lpBe#nnI_Adw!iuGaJkA%S@p9tp~J;?o?B+!bPN|Hm<@$vR$EwJ z(}!ADhLUHvLn0ZVosAeH_|v zXn-C|fWAItfZj@g9_%2Zcy4+LPoQ~oUm8j~Igx51(dr?1WY37AL$^elrbkB$;`VSa z4)>P%97)D(m=Dd#35u0K=5MX7)Bx)NgC_Na_;`9UryzmnbGH!$%6!^Gb8K!iH=?0v zrcF#pKokWHP0h`ScEwXrK_NwRD`_*?z#W%}I6A6Rf^JHfTX|HQ6uVYE5@-${jTWZm za?{+4<6bV^Yxdr=a{*03)@Vl{$2Di>ft^$ z#bE;=fm(2vu9=DU1$yKyUq89UAvu}xJJjCZa=iDtJ3XY;x+e;q;BdgJE8Tut+{+)E@CSl1$6qx8ekPyi1sgHnw!jBsRf3kdY zgdF$GSA6q1)>ag=-|LtrxStttPOAc0iu8eV zIfQfiZMb>urAiP7BE z#41gT6C4gW9B??`aA4EnfPjGZrpq~)IV;q6Itfrs0~`b%d;peaqW;PBD;$7_d2sI0 zu~~g*YX>08@0Oh4#*CAbFF#Ty&rh}|b?D|Sddm!5%k%!NI_k=J`wflB&FUr0xsRH> zvCKg4k@|KF-@Ddk`rj$}8tbdeyqa?grJUe!V4OMN0Q7NgfPux^pl{%lKzBlm9ViF? zd)CD6e|O}+{V5E0{v)R>_>?xy{&lf)(EUJDU7&k*+`;m)^X&gE$+G0@T9Y}F-Tu6B zemNX)IN)$#vT{H(ft%*-IxE@+-M+JfHT%fNi=NB1h;<5#?N!}q9tkqErOZ1)7*^OC zYy*@9%zT0k^7TEWxwGaSYQm)vkESPU{_x2q@TKtp&oog{&hj!ahX%hZzdb!s)~PaG z+=FO@BAWEW7`TdHZuYi?FlIbSvNFJ&Jk?(JPWtp&x0=q3%a$8Q%PtDaob}ZtX~@lh zOlJh0NR4dfzTqdp$dEi%<%V~%i3~6Na}~|v&rr1cKC|Qc-t*0Ku=~Do23}hWF{Y(< z!kI({^2fR3aKPb!!-2`h0byS4y%k{a1?hG@G+Wp+hR&9ba#8CS0JKHN^c_p3xk8@d z1(uc8cHC;_4Hl^9-2&cxt}+D-ZSB3D3FsShcE(j&7agw#1I`W2OdF&8oDebx%p6Yv zjQHP4r?57d3^}7A5=bDUzR}z60hJ3wWH3n|*}PQW?4mHMZvAR{Y5xYb>sFa}PmU0s zb=4$o+)b2hXA~XJhP7wiQP41QSZ#wy74CmM3W5eCwJ8ikWe4OP&KtfwP`)>|FrheL1Avf-A`sKoB^_y|@jYs=@tyGyO%1wre95py zSU^KsLdy%a0o_bxe=7s}@&>p9G#YOs^yN)XFEUS;qq1&v8ngQmf$hjlfg*d;59GbP znd^8v^@(r?nbFHzxr6}y*E!)XY2xIk_d$XQy=%4WsfU z!=Yp|JZO3w zFjohzw+%Li1$fL;n)0Zafkb@+d!*sE?8LUsiEZ1~#I|kQw(W_{jxn((HYYYZxY=i) z^W5Li{nlDvVU>{5eGI+@&K}5sE;{@Bfc1Qc8wFP8+cdDQrv^@Hf>GEsxb@deKp0w9 z(CBo6b3!y6yb z{(_8I1%ml$>%r=d`|+FIiOCM$S^M4XY(S|OM9NG#|0>H^Ho)*7lWVR30`z$$>l}9y z@4$cQqHl9k0vKqibQO*{(eHRB1js^}pta@sC>#iv#KhbQ)`ni6aj;)Qmb{Ps`OV?^ zB@lD9odXt8l!=$qB-n-Y2z7F2C0)gpe&m5j(nFSuIF&3jy#rjtL6J}Il8Cv#!5lY4 zGWafl4{-y~*~8C|h}a+)-Np#5N6WN*BC1=E!wVU~UPuq|p-UB%%&hnels}<3E;(JB z*rT#s*j>SiF08sd_6byl_^|T;Y6zH=D$jNbFZar9uRHf&1k~B2DfRt46~yND_q;4e zT%A1sgAL!qb{8MH(z<%*beRKbNdj20v|8)ekF$86n4f0%1g1kV_Q`y?12E~iZvE)_ zYL8#|xAIP$xc_m*k*x*SV%Z057|7vBOz9k0T;S_&-ntM@DE_eqGvL&Jg`{1A?MO(y zI}RWgPFy!Iv#%EZ(7z4@Xk^fd9z`=w-OXZD94wyt7^&8FsMgCzg9*njkYMQ-= zN1?=KxTE&vj#lLti=eNm#i8N!9&J3V?i`3GsMh^=vPldE-4e=5irgP(N&N7%Oxzm7 zy1aLvck#K(twqjAwUzr5h5tqh-vQf8Bqr&TH}mbF@!8CZ6N-^L4_PThl-39kF+*g0 zAiD(4J)RZVyL^^?7jSeQn(ET!K}aM!eB+p=M}g>oeB3i+Zu6I0TYFJ-zb`v~%Vg>n zsv7qOC}-=_cIx@TH(1;0^+|hFzIq|^T#~csH`hZ&;SSo(o1Gj>9wc^#qI!(S4nEA4 zk9{JlwxN;Z$&2}2vI$2zkN*!_6pP<5w#Q_CW{QD>7+RckxJsY6q-!uqHf6eSA>pes zvFo~K(tC!OJsWkwWrV~dXsUZ{*bj?GA z+rpnbR)za51^N3&Ap2uM`mOXzDIjcgPM5x)D>eeEhkfcgO=bj=Hl~Z{nV`bkM__Yj zI`Nnh;RSCIsj^*adjFPxHKQCZ=LAt)6=8z9Z$EiBh@2S1a}`EOm23b1hy7;+Wcu%A zK4z-l2h92g|0sTYbL})&G}?IUm#tEnLotmQ-r~dViSEIV8A(S&7`IxJIi9jxB$v5d z)0toGZyMAAVcq#?j6!=)^#ytuM z`LGS+UQ$oSMusRaRJ~fMF3-h>Uw>L1g$MGPT9jYP=*dxzeg}l`^bsJ2W`Q9JA+d@|7HmOF&Jx&#XldW8I~lD;8NMZJ)HW!a)f%A&pZn`pnoMS8~Nf|5>vOxE;jOfDSYH)1Ng^Je`w z{L%jndEm*xlbgEbrzBAFlkX|&F5264ChoR(-}4a}4O`y28|0KBzmdS7zCGR~h8dXa zcGZ$lPAn$E`Ed%Vwh&FSAbezL$AwApkW?qz|E?tnL->!gCXDT5R3*@Fc0L#CFx|x^ z`9EllRx}_1GKKJ}&1hMKEI|zvGmH@x4L}^fuXjtXT@m=lrh8=7Xi*0obNk=brvE?x zhe9U}g|=hcKD=4JdeJj1SxXsOJ3Z(Wu7io8uFwE$CwW!DTbp@`g=B>e>gh- zxOA_;T)l)sAJ)-=JvKs_hnE)Hw5L|gxh zZ4@w29f9XXT1_)5@rrU1)7dg5VTfMGW&-Oz`MEq{KC`NgK{GYUDy)gQNh3W6q+{@? z)-!AgN-!&YW>#!uYQq#swcOG1>`^VO{0An1F=3g|L|Yt$am4_NX|JKtN6p)_?$eu= zY;T@jUp{RU=Zvab-gE`tjdk7zb5Yj6D`LOi@T?87ZWdhd0ujbQ3p(^3(9-i!6H13Y zPrWO@7u2E-)|FW~6QpHYNYo{)?rUp9x|12xqd>V<@EQ7PZmh`EF0DaqH_T6`;^^WM zoH)u40&s;DTwd4zO%#DT_s6zA0Jgt5M511hZ}Co8sKD#rtp8{1|2V}4k`?`ni@ZUgE0cX#4-w3y`80qkv|9GssmE`1Uu*0n-l~ASVvO_et~}@Xci9j zQYjMR0zn{Ql{&T)pa`MT-4=xFpNdwspT#gZ7Yrpd6q^)u;>O7`uB3>yk=5*D>~3E7 zCwyzP#U-^GPzQNin@rrkFpJpsznK0#Q!^cfOln4r6lF`?TF#_o%>?YN_q*A{U4pRD zM5n#LvBF4I;e=T&8u)DLu&HlDDw@In%;d6CMXZiW6xMx*vo7gvy079DN~#jne2}zf zlLU|z!;xt$<;f>Qj=Qu|{aeB55!}otqrhe)CvK*B_1MM+!;jT%TSw^dKLVgkKHupR z^YdpkTwa)`B(#H!-vpc0kN&MITUuL-NJ~?f_q+-AJgrEM%PA77rCj}Zh*}Z^YjsV0 zh$FR1{K+*xnh&P_+xm|A$EM{(Z@qxQ!?ti>NK{s!9|Z?6tG_F04uW|%*6$-1^}m`2 z(<>J;hB&2VI=CzN@FZ$A9E>!z`R3Ki3xBY#h&-twSzobp>Cfhq@j#9lt?Y>0SM#~! zB#aPd2O>5JY$ByhK}adrEeb7M2{h#6K}`)^%VH^@rx@2}WtmuDMqC^6>0n$1bwGwk z3u?dLP*kU|W2QH13PgTC9bGZoIc8x1Q!Qlcxg7VE$C;FMylDEruzN5X6ckgnCzVvL zd*E%+4fUTbh{G-X^^#13fFVYiKcg)YI)Y+_0J0Qs+AkBcBs-*KmB5<;7vnWY&bXOV z*Nzzy!69B9FT{Cpp3A$Wyl{dCB+I265Hxq|di zON|^l28MFVR#;b8SD+sgeyob1LSf3x;Gjs2rZAdEx}J7p_Ot8een0mJ$m!m$cgG#m zi?<;eLYm+1YS($-W6=voQUQ(&JtARtR!Y(oOl#sn$>7bCuh!R zYuHT>)$>wu`x+f>VoLZikmjO+fW7ipeUh5{`XBX41)-ceF$*^V(YjC4G7WF{K|S-0 zuD@k6jK~xf97jf)1wwdNUB~xi|qpnyU;^G}sEzy0rjgvMt;s6U(cCuhm13EST8=pFEjeszDB8 zQn(taGzXDeisq#4|JWPwA&|Jn1&M`Y~|(kJ=GmAT(kw10*f!<(FAVv=GKQa z5uSV)iyO*)e^#e6J_fs3=&|f=I47f8z7YWp)i{C1nhlynWTl>}`R+J=ijaNIKi+nG zqTW-OVh3lGFka1Zn^D=g8=0o%labHG+xR-}IfL3B>0T5}O6TRw^~I#vB<7mTg3EK57qO-YkG zj#vbbt4WooPor@Et-VgrZT_X+hkv0xyfN!~`Q^Vh z3(xg@T;;RkcWqc08WMUF3m#&6wHeO`WxHw?APEqw2)%JBycWMCfcKpIVS|X+!@>yo zniNDQSRppdISbw9RZE}9XxAcu69t7QC?0`*dR9`iEuN)NUKTxL&9SuMUUueUBH=O& zM~E+B|2;Xsu9*=3#DVzxpcDK&$3w&@k=cs#q^%pebQ27-tmv?{bEI|bK%uSoM^}I4 zvGr}zqQ5qAp$+tPZ8jGVFEv3s7#7N{t2OeZuzpc`VNuffI@g&b|SC<>%h zBOjfdBWzNktNGO9(Xr0Ul+k$w+zly{N>@u1%-OEd1_s!?TylOpHiQcT_!@88{L)RB z(u9W9;bqdgxO@uwKwJAPE8W*Bc5<)l!+V9}GIU(%sdnsfTEDK-)bYz`!WMdLv++Wh z#iL|ZxXDH(haKWxcO9g0p(JUY2nWG`SW&6sBgu^R3p)}H*=$3q+4GPqyxEU&2aOn) zb{DF20pq?ng5fb_k1(n{0X}@Sr#ChhjjRkLAdUMVP=;CV?hss}g!WrgqA_Q6b%;;53>{~wG#ufN zs{TQ&Y+6z=MH+sF_+(HNioBLQRv9bL^hOGFUsEqAl~>+K!=k-Va*PfOwZ838<|6`f zXmj9%0mU8?udU7U>pU%zHT8UPB*#+df+DqbW6y&Yd}p%k55LsdfTa^=+%(mBgzX#a zWoH*ehXh&*X2a)zLUcBuS?}A{Rm`rgJPTrG$)6s$y7}ZfK(WW~P5|bA(&jZiq~v85 zcY3Y(kZ~MebBn+pITG@fOyk@EX8EsAA`yxlBemw{WgGjtM%i;JEg~tMnnJSSLumSR zKk`lCbHb0T*FYOitAAq`mF>v1C4l8WZdnvrJUpQ~8d`EBqPdHIMGi~Q_}LJlHEn7u zne7^!>>7ZdKM^ozXEwG&t_o(p+QH^NxLNZ1rnMPcq!&HBRtp}4@06hqL7R%Zssmhi z44D69GV|y86t5b=xbK(nDy#G?P)eXjA5Tg6$o_@^tQD1TRgrfTE9t6SpdpRZW`lV| z1lD41t%TM=z;tOV_cS$e+P|mTnpTWB4JhnRL^6;TP28#6^BGAHvcS;sXsrobFXzk} zVtF%fIz42cS6Oso2+VJ0vUdj-mW9dM(0bge{a9`8!XBv=P;Pc+;^ju92gmqG3|2(n zkxiri<4MOe-iHB5U~*Zpbwv?s!=n|pDI%I=Dak%pQaO_~pz-2Q>nTqRe#O~F=1+UQ zSy4f#?Z2&rs%tR zQdg^8v#bLP7&csgpmYA!`2zlk#URm@qfz7=cO^-}$+;0YMKaK$hzY`&#t1Z8tfr~q zK-o`9VGRqUZm5uJRn!$h<-?P0tnOkQ%cN#aEZCQTJGVjjz9cx(AejCrF2ds6qzVtM z)^{9fKM{|rsIJ48mCTM{4^!x?g5XZAZT#(0r4uWvsi`q&=?Nwkb3-k>gJ_tHjxUq6 z1UMWWsT*W*_;sE2PK=ERXy_enL_;#{*Qq$kqWCmT)<(t=snSx?Zt!+lKm)$<@&Oee;!_TN;%Jsaj5uA#;I$l4E zdgHIt6+3-RqNB?TTU*l}TSuWU*r>oIhq{o-BJC3N5^>6 zUFHs_B$`f?6~+nNF4KpG9!zB`rhEIOt&5Ap;?~q%#s~9y2I0w&yD!a*qYU@3Rgc!g zV=)G!2KwGmTCZV_s=R+imC%<};`ecPZ_s9kJv>$i@h_C`&VU`)NtA(Som8cee?{%e z;)G~rReB1!Zy3FVX(5O#HN%q{bOGubner9W4quBpnU@2 z0W`9zk}AB}TRV31$5ByJi%X{3AsLECQv}+QKEPA$<^tB6n0*qXOx8pacbsiQdoak@k~L^nbq0vJ-D{wysk$#QQb&pgT2tjHG4Y zN1dHHS!(OVQLfDtWPm}udW|j&$lLk;GGj;N`4q`@zIaY#9SJ+}4?y#OJPk<7$dDZX zeSSgFefF$wROFLfM+Q8&-`xW!bgZ}%KLmPCf8@Xw5Vlwa$_+0Z5 z-J+M#0Uzw%Kj%+^mhcZLJ%&W-o%s^1|JgE#zS0h`vnUIhv=HmvcjEbA8;hSG}(SA2d zb%a|OG)4ZZ(bQJ%DCugf?)l!4)~Uo&U`WRhg68 zuK+E;v00st)3A(VYT#YlSN1P8h=!US(8+ux1Po}k2q;CWQ+F8xUqj;y^BE02F%>N2}~j@5vB}Z*8F< zc`bD+1t^+Ce|PVMO?aE)N3EO zC_B(Ggw!V3ffC8R?@8VnIy>#hCW85+HEY3zwh=d&Z0v}lpq?xAhyTM^J@%>CpEocF z=@~|}ZtJyibZ;YcZ((4#ixGSwQs8}aOdT#IZ98>*KLFr4o_e&KNgjd*3V~yNf=ddz z3(oK#$+#+uURi5LO-%XS{FSutM?(CpGxL@gVcRSScz5d9n@YK@q=aZjJ5biu4t5}L ztuHTcs-_t^@R@6Y);ly0cTcb)^TIuvD+j&E3AMEfw|prQs7VX>3fO6bzjt1VrZVE zWr{HBVa04iJE7Dtmh|$W$7zfNTE`Haj2(=>3!3ZsP~bGZRtdK2z!C5D&hUPdY(Q%Bk8dfRehe_C8w?Eaqg8=vkO92lR>643 zvA;Ic{{hRI`t#1gysaI0`JM;Cbrnf)v(D&0#W5v8*V>Y|)P_V*s;3~t&HfmXSO?{Q zt12h$xYv7fJr;~sH|%Q8Z&I&%`|eOLWG+(hq(2BU^D??#boYVfI5mjYKvD4nW((bN z{9Wh4$!L9iP;YI+WWHEj>eg2-Pyx-ktsdlbiYz^)rA<)E(R7^!+QlrUU1-l8xECSF z16^Z{kqvK%Wo;hRP5yTFm<0RLK#ozD1?B$5a zV4z0JWlpULwbLgr%3#Nh^4P+y#P~8pN?M-f)$+F(lKdlDNse-t6UCMHhji{+ZS7pc zo{g^Go%GB7zV+deO8<~QuO>3r^;z}cn_KtpE7tYEK!k4uu4!w+zW^A2=XV3gM{dgf zu(;05tYZ-zAV$MaLhpBVe7{wH@JCvwiD&nIUb{}Je^pSZ?t@z%+fmoHIT4S)ISRS> z({6)$6Zl|vc8tLYzqWq89G-KT$|rGi$PaXSUYJM0lon0h>+#+8ldW2G>$0`ZfiJdz zP$y+^w{GU)MLP{aP#)xG$WkH8l+4va-R2Rdx|!{jReVMJxvwKWmJuBkHz$msIk*-& znxkq@PRw_XJ>M+(wI5Uxw9NxhTkzuEM!5Ed1rKT_6^1A=)~KfBO3Ng0%BT1+7zG|= zze^E0tPXr+h;LI^6^DEO=7rH-1%SC6&x}rd`}j{IPWAvcjQ#N0uO7_=!}RhEFwzV? zkAtGC&yg;PyfL7C=Gt$W0!IWy*t7ps)pIm=d%n+o@)7;jyH~wnrp<^kh1Dz8>o`qz zxfy2VJa{>{7E!P#sg2TZFt3I4;D4~e@BNB5XW@jii|3BqTS+~ZdB1o!aT+ra6j3%} zsI`O49{Wunj5O3+F>rD?oQsXG6mVAj*@+JEr=?E95wd-5kS>*&Vqga(^x|DV-7&%!6lHX=+f0hd{Y(x! z+FxpZZCWRJjAeN{9$>->vbrEn?#zwg9tVAPt8C)D@T5pDUaL)YoTG+uM`;32+18P<#78?g-5k4HbX7 z8OH?0=4Bmb<(KKOD9v`3ZE;*gBJw=Ve^2|8VDDZjCgD)|0?Eh+^f2w>#zq~Q@Ui5i zG{{<~=h;^>Rge}2`}>OU?s1YL$hqr#7L&01w!cUcc)Tk;-A*dc7SYH6ZOX;BKn+#_Pjuzj$XQ!mucoO16ER6qz+!3&hR zT{~XgI|RtHI99RurSYcYxlZOZ&q2qc;~oMQS%nq*r|(v;r}Zr`(_^ZtV?UQ@KX&7K zRMLQMj0jLCX5`J%x&so3wL!~K4JS|c7|vVIx%*xlz!!dg?S-7hdc2!ESvM#!b={O5 z=Xr23iJXxVdzFVc;F9NBBk}>r~8-!=d^^=Cv<;euwS}E$C0-2 zZvzVXJ6ai3kRRIY5P&ZI9XB{CFG{;hF}*XE*TTuhVI^6!iB=d8;sg=INX4}a&h~*& z=-L==@9fy`flK7HtET3)iH4Bd(o(I2FbK!W_ri_h`&55fliKC&2*^=~736UaFr}mn z*@`URVUCPZ5EH%BuBo%g@fM{6wnZ!e-4`l|n76)6!J;GzPZB+M1R+14Vz2 z&FujDzXrQs=0DjViFF_wjYnW<%XtwXxX&a^cGooHQ|$l=-F3bA&B+^%JM35oS)3XB z{Y3fEvWhyPv~_)8*S)u}+ohPAO9V}SIWp5A_}l~`C{Er9mA)qaaNs_HYnP^`*9;DD ze!x~-x5jvlq3&BsD9A$4hd;g{5*AZuo)&8HIzF>{>@fx3FVug>M^tm34m)sQxg2q0f|8BWr0a$4lO*dG{pioDKm0z0Mx^T0AS5e$LhkJ_w z0?`CWJV^utpr_NDqw^E|mz(C(N)l+!Dfp`8N5tYH>FQ4ztJ-v*Co!5pH%RS`%108R z3ObzWJmyv4DO$r(EKa2LT#VG1=%I(P3aE@m-C$XtKQh#H(nO5B9q?6%>4F6fAPI?O=MRk9j+irS8Son z(F0#xSd-nQQ{)4Qu(sk@w1rm((sCtaBiWkiOMB~3t6bvy3Ho{@_3H{mb5uJ;2sC{i)~jkR_DQep5-8 zwd^se5~D797gvNlfjb!Ja%qByvXm3dagTJX1?-DJh?PVsVNb_?9BrVMAQJYAFXZFM z7RnO=2XXUP8n2f&9*?qlFx%k9#x6K6;oA4ez0_a=#XJq=G*W(gT^P&cuJ2f8akt;fMe!EOxS? zL&xUndY?WjoCa(ZfdVXlEw=6`-xD?JzmE&ZxLRbOISqRN!nzU+Mm{6*L)|h5bG`;l z&N+>jOFRrCt}o%B3yHd+BT#bN(|Z%po>$@O?Uamn*ZKf~5duK;3VeU?8UA;Vj*r)$ zT<@EHCwY{VxE3?5+flcmS$v;&MVTor!lRnsKiY3+?olyI zoMZXy_4Q)=dbOgOX7vZZ)55cPQ>pwl)`LrA$3>PBd; zFQ-L#4OSQ<;hy&npcz?vUXw(1hjz$oUdbE#^pas0pKT&$N&YRncP~fHu#5F4r zttKFL9xyXewyStTQk|+c(9u`N^Na0_SrceszdRYNJG;Z`N1n?F}E3Uf4Gch`5xw;gJHZ0 zpkSCc9k#}65mY?@KP0dEc>mGp4us`3%fiF7?l8wJUIk=1wZ#E~mJMLF} z8h#m}UUlqgA6|H|AZ`fY&{R(^hjpF_&AY1(JYvdlsx=Ut7>*I3-5zfgELMxe40HJ2 zqa4^aBl}#5$TLrO?Cf$RI5*K`yieQJk3MSTIZRwVH*O#)dr!bnz0UG_zSPo~Vxlk9 z@WIN{#-Q|V%rD&(1UDsohA`$VI*zwDS=QBYvcT~_+D>(DnEcj@Zg4uvS-oyRn@eRO z_;cMGGDP$SDr@~2^SW^r>N~36Sp&O4=t+Qi#f(>0@PW{M?S^Q#J&lh8YC_1QSCtTTIJNB7ave3^&#)&nbx?roRXBSG>ef`a%L_1e9-|faI3JfMQ zsuvboa;Pg)cx)>wuoPa#pftKr}#ASfZJ1@7=e6#|(}`TVU5IZ&?@(r2PJ1iVGj>X|nWUo3;%6vo>^ zCE}(8$)c25J|7W^-Y|$AiBm&5R;ibM9L>XVm1OlcFQL~f06FUTfMT{a`oS9vy+}B0 zF_)G)VSW7X#KL2E3$&^>sUfRrc#SpY7$D5uB^p$@;`fF$yEpT^F$i2c-rcqH+oEH} zvVvnNY^(xC-3N_db#U-PJC9Is@J6#=AI$f?zx+}DokAaSenSmhJP$UIz7+Ec_db$> z+*HaJHQwt}T-Rq#;tsjd{dv`V;S%)h?ggU^8ri^jhjLv>}7K%~84#U=Mc1|$Y1Zh?k{e9IRzP$F-HMEZT>?HvFdZ4(sM*H)Ol6 z8%rGkxFckYc;$Bmlk52sB=wVM_;-OpE4D$sB0I&Ugp2j-E}j%86yk69^@JQLpfis8tTBD}FoD9gZf?~s|xu0I`@{9Gle#dK#xTVe$%2m%L z$nb3bSWo&vgkUE@yTQGQsbU#q&c*5HquUEGMz#Zbw>TB(jp4oi*U)dvS}4|ITt z1WMEMCGY08&%5Bxjtk=nzCzMG@L>DdtKj7Mee}5<0L1em+=;~rl7?&V&*2z9YY_%) zKvEq=u6GK(FQ@123EK1c#&oJ=&vX{xhW%_I2naZ3izF0U{j+nkHK=L3*_dHHU#Di| zF6ugEHN35qf1auinFqSt4c0x^lTC@27jso$KLRW;H+k(KJbfFnPGvlZxu>&PSaPZy zWd3k|&z%oK9*nibD#b1176U%xe-+G*oWS{yR)h7bb(Y=-%@N1y0`a_C{L(&Vh40;ml2(n# zpH#)W5n)`xz-XHAx{Uv2^H*v-yR8?x)HAQ&sERzm_6qWHKq_quj!%= zXpnyL)uNJ9{PwDkG{j7ng-Z0&f!Vfs=fjs{X>>lY1}JKGIC~94=8YsDozJ&hsP?E_ z%Ksar8|4;grr!&_c(Gh2T=guf$>AogQ({k^jb2m~V_;`RRWVlXF?Fjhos|sH$T#8N zKb(NJ`V*!3uuS=4I>=T9**2q(nh)9?@DhI>Y36l@%pp6phSu$LDn+{O-%Fa^!Zxxg z??k1sj54D>%7sCb?0iQwky^164-O8lD&lY~Cy@g&4YmNSBW(L+wXiZONH6~Ni3SOB z)$S}Yt`!hxE;~agK!cwimKH}Ee!Z+s^3u{N9*2^Tm93@&?Iw)w$>8E2V}Lz?bjX)V zUepFYHeQH1Ew6Lx^Q+jWeEm-ogvV~H06#W3TM=9qo-wWz_QcC+vZc3`Ns-m3scN(E zMLohulmx)H>-}q`J$gjJ&BF+DlXS_A_hHB;Y${-WF4>D#!O{U-@7Q87xT zv8obz?$UvW^lj#OT#O76O>UEmf*p=ROL__V=fGtE%veIj?bK|rq!Urcx~fZtkAo3q zd#c})i(LceKuuIHhfDZ`5zKT zpJWt9Tkml@dw;R~l$6TA=|9F+c45B<=3fqh+c$0O!?{}bspy@lzwuP+h(=C9zEs7r z?w?3nGo#^_o%GJrm&KzUnSI9Bi zizAVgxrXL&ig63%#MV}qF$Q>%_E?s)`TU}X@)YZ0Y_p2eEDIyTTbj38-9ZF)yl~BM z*@f%d9E|rL9GpHviPE7!Sq1as+ka<_6cK3{U2g9f3R@i%27S!?y-;#>UHMGOGK)sd zEoyq~|G?kkGqeytF&t2~Tq?&BAlS_5dN*3_wX3pDz+p#Y$lH`Q2c!CFij9v-O7fug z$q-eiTq{241upwcxGSn?it3MwDm&-6g`2|4m4X-uKUG>#%S@bWVD+~<>+897v98fY?d=vlMo^aGNfcQ3^#^{IlwH z$%X@Tk-{(b%{6!hAWZH1wFR$xm(bt2m|g05^Ki`+IPBH(1tIt5PH3;$RlHUBEz59g zlaEk?mHr+RjA1Y+7 zSf1DQbSaw~+nQE1WIHWTZ0gksk*BRDR`5@xX6GK(U^xfm!*%E^AU|doZlhseh{sn( zN>?K~(v2W-r3pzysd^Z=Z`duoNYUYH$Q!Qk3bQi8Mfvt1QcqGq5~%z3$G~CGz~;ng z?D;TbwX=Wi53Exznc8w;N*m_5LR9fm7QZ7^xVY*lNy}EZXP>I46q82#S8#aj&Pu~d4Rm?W4!MvO#bh!|GNcXO>8Hf z)C9%BkQ3f;F6@dn4^r_|KhjkYPxkYwW};x=(Z*N_r8e7#c?bT2%NJ((+=E=$0M0%UM7Q7I<$f&0v&7Huy~~;Tm`*ePJT{W4@JmXqnYC=_ zPYARcJ$Q}fOyC8Vt{@{Y9!>=fl|+_$cgadDbmTzXL(&ryY$lAwf%(dey8OlQ@0Zd^ z8SaCNPznqW#(I-6hqq&|cY5i7j3*aGZN4~KST$FV1A@P1H<9|4*<4KZIhY_}44EXN z$p~X#N|eNpWNIVX3U4XyDS(EUdG3X>dqc~~@CobhQsBy+wSM;$B15 ztIx-0#8mV+Z5O(;)46LqD^^TAOI7mjG}#$E{dqfNN_K#~RBxhcQ!szFYvr92VD|Vg zl**Z69Q!mmHYgM+#Q~;*1{ao8x8qWG(d?76Z+Twa1*T0L8ulmC{&uwq1z&1;!z?Nf zD+^!b)B-s9h*z`+*@fxze%8wKj_EIKeI;`a#FuJTP-$>6pgFUgnB&C1BAUh zEk;|iZDhw0{QDIK@q2Cm*sjtnC`>xZe{&xgzUr&jI^E(%ijU8P^x&=?8Hf?8eGVUU z`~VHI)PF3T?Bd9qQ-9HAn7#A)N&@> z2%`t&ajUzUajs-kq+L+AnVF?178I(b*BWU;^HKZMICwMK>To*?% ztkwpW!29d6BQd7Bgp}ol7!%eMuwt|R#g8z^T9A^K3a^bJvPF0|((2?$pZ#t;Y+-hD zbTyoZ$-G$;v+Z>y_&K>?w1E-8LdFIvt5JWo5%IWoC%Lozabp}uV7XpRgxe=>Mag}} z!UN^;75O=IJXj)zQ>q$m?RZP9?Z*vgfvF%KpAlAlHT}~ar4@IXytqig{xQ8p_PD~9 z0}}oMo2l-6UNQy+^m}IIF3w;q$;4dA- z{Vns>Z%z|3)$5Y1#YP)BU!&?&GBif;ImR(h4YkMZZrb&5~{)WS@p)QnH=*JQMc zJ%tmol%Qvar!mdV*f;kXqT%BAt?Uj3E1co+;im4;Wi-QHx~7p-YMWV9PHE&SDQc=dvDt0VZO4Ca?iIfY=(7+^2X@gf zl>6Na>$s;a^TCM>>r;HnyG+M3Yo?vl>_~8D+;uJ;8gZU#>h-O7{8z1M)8m=}bxTjAf{smOgXwJGXD<0Cq1GKSeXmE>Cn&zF!D z7wA)&+-cXDO29zGgF1)>#jSH}!D=WRFW2u&W~wn7QzE1WkPqC%)N$@>bObm~rbgJfa)38L z@|vw)qyCSZM{{~)=R0Wi`qd~E#@^^I#-1Q?S#^^0EqBe&bE}s*{GVw8Ob^mXLEWN( zVt6>^QOrp)E`QdVLrFtJsk-n`=#w4EoUTTCpX;g;B}LvNQ)YYs8kRx9dXAz;T`Lt( zA%VLVTI2u(_{w=9b3r#;bQjhL3Md|j7i+#ld_T}A)e*78P6_iKl|D*V{oLD6RY~Xl zOoo?z>1<62uP&?y4!1YCprwym%`RBo0$1@kU`N+XW!rM^E zGHQ=b1%5IP?ArF9uwVx3ap&K3E%;ZH&IVK3(a8_s-pYj!^~arVO%qO@=Nfx)bNQ1N z%Fa9b;SeUgF|nu3NRUGjMI!(`4y53_jAD&jQ}G|lq~H7@W?LI{wg>}q?(Rui-16EtN?VJ7v1R&jBFEyS^u>$fAxx9Ub7SQNj~Q%!&k4b z$MQ;6cqjV+$&Wjdr)T8g5YptPuc9U!pGN#Q6!Dy`wUmm18dLI%D{$B*)-Km9mJ@eL zGRFVl2E(p5LNQ-a@e064CC$f$A*rp#h4|G*RFsN&+|^NH-^+u|;m*NgsR4Xl2djM6 z*NDaA21iWAR!Ino!2T6X@7%Z-@runE6k2Kb^Fr&3K>xwDzme=~sA{o@lx4()9d8dK zd_bE$VY>(z8;*6UmxtFrFu`rIYmpWgqT@eWR*8*0SEZE)iE#V2i`2li&(k%#S@>qm zsJ{mN)8|Cy9kD#yl`596M@Z1A<6)9RJU63GGpfvd@8L6URTdODk`ZG?vw=d9*I32+aDL26UKa5X)^Qeg|OQ&A)0io-$pg@aTjszC&K<4*I*_?F(hGbVxJ#ELK3`8 zF)W<2x+P35APIjNCsR79u9WwJ?4lt8>Gso-LrBL+48nM*Jv7QkTFt3-uu8R}!ElnW zg(Ap)K*>INLjA$q*KP)7)UAN+h<25A+gsh5)cNvsI%n2T#!-$L$ql;MXv;D~4yMfW zgu+V}A(f5p#hu1{TBm-$?ViH@y+akCR3rlNZB#TFTe#(V^&(0&PW^$jttg`qQifvp zJROIP$bjwAw-d@hZ@s_SmUg;oL8{x+lZM7cJrsru3hE*YtbPZ8I6$$=C|&yQCEujdXaT zdQ^pDDRoATFLC+!rz!cFR(jSNv7bS7W>~Ao+4K4#_uiASPPM)Ez-3?S)1D+4us5dcskrG&705hc#pLSWJNZuyS9iGOBZg zl>!FSj*W{Q56dqg+MVI&Xf^39_kM)U_aQT1$BST8)gL@7P&VC-1HfTHj9~LtPr-EJ zH?4j(7G`fy(J7V1r zHAOvrf)aftQT)~Cj4^E!pBac;mqI*sx`F8O8NKUbZM$?H#&2^{Vg-ypz5DRc^xX`s zzA#8GQGxh?L@??Q@!;a&+J8OKS3k;%tfgG+dWBQ^ihDcVY6J0K#Rxtav+TRx4{7?T zi{cuT|1ycQ08^qai94jEU#b|U>eJ4$xo7wY@Qr=-hZDG#3zwPAC!d32k^5O@LO$o# z+mWRlP!!Q`hrA2FC*V$&S%j*ZysKA7Q!~zo8C!;)*721PPAf6!P8m!iWOTuz0e_*pKt zFIxjA0LYJ7CX*&+EJ6blZoJB6%#?gqXzK}V-#tHu<&^p1zr%*a$|0$W%S{MrRl1v5 zXG&fauScz!Ua3&>2q(65hA&yQhcgg2iy&PH$5V$2V>0R#+&K4?%2Gkjteeaic}yaV z;J3k-b_uxW*w4xTc3m6OCUI0HDZ@0-t0!~$p#^P_v$|zSU zoPex$cw$06U5Bx!DgZ0+h&e8by^jYSiA1-3I2kGD?C+j6IjUK^7C-f%AMjO28(SMg z=#l8Vg7#oJ1H;4-30$IvkxqFY{FeM$apSLb!?5t&I}C)3y+OC_NAUcCq4GT{x)j1YKvbuy)SxYe`+5&! z3o?Nd)224&p)%UfOePPAH&^?hIW(R5UM)#)tLIRNsIy%BTKJK~U0&|BCXUMW0D&Lz zwLT@YIgd$iV+wTWKCYukf&qunHQWUV)D~?XG;osjOmA+HX5b8};pWXn@HuAAJ)uGs zX{=ea>zKBgWaI9LEA|C7k@v7^w259Kc&8tW4Ii3VJv*xq0D;^^HhgBLLVL(bs?1?m zWplA?>{r$^d^EE&M0ijNUQP&{iyo2>67t1+Zk)k!`K}^tcK0@GNXO{8W?%az8k-v+ zfuZ8rt46bVB}=X4m_Iiadh5pHSa+?>!Cm7HlmBRfXA;eEz^9Yg{{v}2mcO&LWY|Aj z@A5DX&qZYL1=Jcb1AU*biqQZ4fC>%Tt8%oD=dl0sUexY25Fh=p5T76PM|xZs49Gkv zS%J)jV^p&z0iBa0bGkTZE*TH(n&N+0Tu0xAwY6gGX!q?~66Vw-IlpHC=KR?iQyW!< zn@6hL84EnU=KKS*QXx^Y2+&tX5 zo}w}H(@DtmX^v5JaG08Qo$okd_p+~1iGPwjikIMeGDq6Ai@i()IDz}O((SeXTeUtr z^(g0W^w}av`Q23574c3yLYN`qfQpFF6A1tbvnTx#(@Mo85|#YFkpzcP&JDRa>hPJr zQH=f-Jp>*)1nxB-DXOF3g?lee6Aifsi)mpxztd>0kxCjzm{|8qQogFA2zbHYTV3~S zf&Tg5gMiwTA8ccmOkB|j;|cq_v{NeaIf!%sWBa ztQpjTs?GwL6ujECC+gKKiSFCq7GoH8dMm1^Dt{r$`=^S3&o_vaxP&ZzrS8P#@ z{bBulep{k?b;d#`QFi?3HvIU%qp04k9^7m_RNmsWInGXr#9|@NOOsqx6BW@~Ligp&_QwAs5_B8ZoDd@SKY0xUgG zlOkK}v{}Z+g`c5yuSIzEwJM6pPl^k~*$dawQfE(fa(6M`S{Ndn>@=iub zNK7F?%{h2m5}+F)fS>JOdXD9h=TNOKexWo#Bm-*QFqDxY3HupaenYP#+wkT~&9LY2 zcPLx>)7wgtA5NY!x#{06N}yPpLn(vFM4k0)G9DylDUq>ARpfWxbM-_%q&-DTLa>_{ zy1|^&LQ1i=u?B_vFmv!!$WnZ?Heba1^R%;ksJ5@hm<#und)6>x$A`cakW79#j%xK(J*@6|Lzse;Ip!Ms%lE`H|p?tTqtW!b;@Dn5Jf zEf}8sA3pnjEj3)|d@v7Q={e+Na|RgDLp_`u;QdZrV4QpdqsD!Li1d~li#$>L{gNK%iKE4mFN_|0(1p*5(+oOGrp#w%i9b@+ZS>YwW&@Q5LxBb*iSe3!bk z9gwS2%ou3`-2IDXFtD&A4oiZa>-=8t>WaKskM71jzKKfd)8m6cfdj9=&-=AYH_$?{ z-Fj87?!CQ>{aXCxD{y?RC8g($DdqYD-+VHkcD26b4vCnPn<(8vXI#62*edOCaPdr3 zx6i;=-MV7L(zWXO+0)`siyF(M2P2GXVA+g?sA(OB;mzw}{%K-l11`SXi({SLo11ewH8t-HA z%2#lX;Q^=4+>GKr-teT?ZZ+w3$PaUhDxoCJ)=#G2dnh^aTbw^D#4qsPaAO&W^sFZ1YeH>e;rkQw4(8}J!6R9PF{=CAUYZ0`!lxhpozfS zXj8u*mH0Q|Pl2nXQr%IfQZ>@+=Ma2D?iEvv4;`8(ttxmZX!n@))}|mOk=en}OLP+V z;gHeT)@d@%pHsInVn_=jN|`uxUW1cqP9j-az=yp%!yzjfQ)f(98O^fNk)9`=|Lf>( zd^;yW33`l)tO?1V%<0plc`KClw!o(Kn{b@o<|Re>rz+OMYi~3n&AlDRPv~a1GhTU> zCIf^)OoGN7Sn~4$3?9%D@3iiMg`-#F_{meMj4!))14EQ!&FP<&*#t5zX&%xGzSpba z5DD}xSID_i=>@bdQ;lmsmf_X7w^SYo8+u$n_scK%f(|fssbSOC)nyK~UL=*Lcldd; zhU3D~B{V*fmK*>NM%K_N^f95kLGY?D7kkAeMG6JM##4t^)VbB znRmaif7mTqJKA=tz4*623k>4lDntL$(*gn6yTs#nI?uk4%coJgYE7DZm@A2;ju4V> z+3T`MAc>PW-Tg<_M^aUy+MM6v+#{>&87x?K7@angy1q*vh2Rz3%_vW+>Mq%yh}*)j z5jFe=nR{|h2@@hEA&zE4f62+E`ujw5NZ*M6JOp&~l&HEFXR|!`rRP&uiV#=!`rJWIzpzT=Xa=76jo;b8c3jV)I)h|_J|>%87gKin~%#x zBuiT7NzW-QHO)ytSXy~H=bDIGr5QFT_$tc1)egUO=nVs6od%ZH$iC)}8AH3^mn&Pa z`>*q8^xo^3we0{ZtyqnKYzK7gHwe{e-@Au|`1i+BC_yYm`_Nff-?szaeZ3)09^Zml zGdAIsw(ZchS#3(~j$y@$neg=XLwK-1?UMxY2dYw)_{yH*SjHI4l^ef@Hm_Ac%-LVD zaVm-DiVbl*ir$?&kHmJvVmKIl1NGazhu2C`dYus`ax_)O+66ygV6#SO(|sIvIF!Y< z|LumA$BXFMr5$|fTx;{9P1sFZfFQtz^^4H9?&s*UU^R-@S%jZYTtT^NHSun*j#R_X z!u%hXAdvZdxG-srMQMhrLVZYW8B`s2%&;N@<-Gj*cIc~?}p!sr3kdBfbO)__oCo6orH+7DJdKhz@l14 zF92F$x=$XS*}1078;7sylo=&_&jVTKda+7k4~ zOf28f6(c(~!QOxaSiE8zj2tSV1I-LP9g;DTQfOh^n6UlIfndI=E|;20JSD=S0?K9N z==UP_hg`(cIZNUE{LARr_AMABM`6**4a`kOz&oE{`j8>i=O8mB$_Vo|Y^Fws1;;N7 zb`BOeyz3_nA3sgy735TdxwJJE)}F<2cJpfd&cA|bWX+mn`Y`7$k4Q8qjZR&9GX}Z=wk=(QjoVq4 zj}g^dsRn7Pl_Us{a@xbvWap4SiFa;HeRpLy%HLX|l$RP7lIpe{ixZ4ZzH0p?G^02D zIyK7R>gf$w@zXZgdz3@ip1>O+`@hDfpE{~}yZOjwOj)>*w(9NCxBE*Bf42|cf3*@eo_lo4yslv z%ZFk|$;H96?&rN2I;1~p)$5C6hyAc>)lcxM*b0MsH{jE&bQbwFzn$Uj6out;=A!%C zbGlcz6L>ojyy4ho4Gjgqv*bh1V+Ll7Cc z7DMw^CDleO9zDetDf6@`RwS`pcQ<_1uRlz)CSzcSrWiP4BFQe6kxj4JGrz!y;p1Ul z!WXF|TwU!=(WhxoSp2d8&1*Nq-1!YjY?vVE$`K6hJq$+zj8UPS0m4~qB1^e;@eC#{ z+Khgq2Vz{EMvC~j^5;&B8P^LN#nso@otW_P6ns8*BpP?@iiT|4^$DqMh_~@fCXxQo<)NS4xCbacRO-jJh?>&jCTwF`&=t&>J{?1*uY!lKrfpE@(qgzWb3Z@a*trn{-nYWXV@IQ2 z^S4pE5eY=X&5)An-J4cp^pN4W8smbJepc8&dlY)xWl+_+CmM7gfO;Lt1R;`^lMsO| zj6FSm(8sXzEsOYoi&PDZL{e%zxppFtHKep91HN9KST?8|Ea<6z5($t_L&hM72j}5+ zOR+u88SNXsK&N;j+2f%|4x#eM&R+!+eYC>c$4?P>f=$RcC&gbQk!g<&hgW0ZKr4*FioC>Zk?K7*#6?K{pz?jcIQ^ax1jmwxmdIaYFxK-tIr}l#-V{oTY zT2=YQ*YG?U1p*gMie-fG^XFAQ`ACgPMPgjCvXLhVOs8(yu=4bTQ=ZhGJG5dbUAl0I zj?rk}ot6kYGNcfb#C4!K3R7$LW{I~h(o%C!j8l17-@(W=or0d->SOfBFLV5iDS^F# zAHMsB()BN4?dpweB{dUSy#|1k_z2pPJAu3qm{a;D>;nnSmXr{C)4`o~7GxrwF*~pS zxfQe4Ttpvwo}WCKp&c2A{>;J67}ReR&Rlgs>5}odOg2@IH{XCY=h>3kvs6RPIhLuc zQ)(5vSVvDUGD0*4n)Kb0-u=#5bhOCLH&po0jAA4?5!v?dnTp7=Q{6=+S-m!NaZC80cZ49P+Zco;W1cg4E<>FQ9B(7tS@IOXLJ=fnT1#j&q6kHpi$e5}xtyNDb2O67VxA38K|i16CdwGf zKBG?>1au~u^6Nq2^1%6tgR68O{6Me={RnBG`qw^%Fw7*!)Q~F2n>MV)@8_=Jd|(8T zT=C#Zf`}VfFr~?2k9OCA=faYKlLIs^`Wgw61dgN(`h5^WIdr+Hn%TR+yO<{t-#~_} zil=ikGa}x%E8u3+o3kegKRYW+az4d7VV*}~shG$^E^SY*N8CUfy%n2f#!&?~9;IKc zhvz(9NrYxGZt;2S{rxPgi~GWXw(6NAend4dB{rBUt+}Yz>@B!5K6*x40*?N<1tFn; zkB<-1ND${{Y6Os*r3nrn{)5z8Wi;@kqbRD`p8nr%+Ns+yuRW2LTm**%^TkT2U&f27 ztywt7=OL6T*Q!z$ae;xjL5Zjh9iasVTvcP-tk+$sClqT9P5Y(x}cG7#&M33~3*|&RV&mtd|SoLe9ZIg|5*k zk<@Vqr4D)5oF2gg1K2l*ig=@XaXPZk#)VV65EyQOTCdeWLQDwfQ3}1m(>~lF6rmwm zs8IEF#+SCDoh8S6|Njt98s5vtms0ukdlEfDq?=gU!ne2!j_x}s3InM7MgvOSIZynL zGz#k&wWAPAKN(1`#Z0a(?INoT>30K}utyqY*==Vw~z^&^W@|(+P1A0k}c$ za;Aj&9UCX-LpBj-JGRr^(g30UK}g9Wyzf3u1Vl_MiD3;)b3ze9Es2V?>Z6>8Bc)ck z2oL%T2mZJMJBB{9rnkgQYC=eHa=2!24{@VMQ3tLe|EpIt+h@W%n@o+8zFtU9h(dUH z0*PHA^fMW%%@0o2DL8oaEF8S5p?W1}68y>deeXf~cCbQms^yDmLWYqA%F-d7Npd*O z1%|>{VwrPp-D_`A?I8oMxK9b#$@&QhVAw?VoqLio{UIa;1uDD$T20?Xakf{OAPHfC z_~jsVF08m0*^^nuHX75kCMPunH)vu|_l;(7rpkC0!vkL2w+-iF$vpD*AVY;=i?}x$ zr-p+5_vja)9;&#zaGY`x6B>wJEYp~t|J^NVC&qaj78(Lj>T_c@jf_{nP&aTkp#l ziiBMDc`+{(9N=c+wMgN_Oz7!^G3Q90GuV4e|7BmIV_Di3ihqTBg%P|78~w#2g@CrV zc#{K&K@5wvGQ@ed2q$JQS`+ zM8J{KZ%ZB;StR@lPD&v`;^Px2p%W>zAe%B(WXi}N5q1)aZgeyyAvc7LD$bJPNd!mh zW|X-Td^|`fQjJ&qy{XB@14%rV8q;A)pm?atOD^su$e^IZFiNzf9rBk&Pvo%_4SIOE zB0Dx3VKKzUncRo~Td+B4;)R^0niE0JN{&NlM2vdw?ClF161SoBUT#B?oVmb>^;&RI zh&Dh_FgXEv$&{kFVs4Z`GMt=5bX312MGlB#@p8y*{Mkgi%5ieI5v5Xh)9fB(rICIWB}q4wNhL>N%UD5G0r3jB&qYBiL+K18#fY3D7n$=cRCqA zqK_fd)fG;5=1367&z_#N z?QBfB=5H~Eq>W}|_+?WX6n>3x%1ic+Zg6B&fMl6pMSz#?y?cM_3G{oz=fCk(q^w@0 zD!{|1?4u>*WDT+|!7Joj&g!R=aD2k%1@{aIPp0C1>-GkIi=#i;%Ty>fem|{A2yU4# zM%<4JQ+by?JDF#L#6C}miBOt(Y7c)}JNzuPTjrZ?EE6{5=%*PnT2G)CgxnMG`zC=-M0C@7O3=?zf*wQ( zdQk~p4l~odxO_0z{lQ=@yW*U+OL_DbMASS3RWN2svE$f>mK<$i0Gfiu6#yr4YbKpLI6H z@~%Rb3h9INRr*;-5&7Us7jo2OAmyi|>~|Xrsi!FE)_lodtBfPLC2Ah!zkg?m`Nv2k z-NG=Gchx+)Z9H{zLn}k^zTbO5eOA4l}>vkt4QbrzJxdwGf z%S%L&fEUvRon*hz^(5~AI1 z-5n`!AJOd%vM(xRu|UTBb5EO3;@D5Z1<82cD))|hWu6wo*_PtvpjB%kuP!O~Zg~qd z=K+4|3G@d5)-#<|;$%zsHTM#X_MrB*zu#Ti*VLNPEwH?z)cPR<=!LrglK>2ldeDPlWf{LQw-^s%pvh%5PdBemrfkg?CkUHxleuH zpUMu1j~X40^i+1>A2(XoVSWPr<(FSpWfmmR?^cnHhA3>0Eci@*>+;Ddn(jN0u{;MB4!kow<5om4DH3Cx0TcCh@c1(z8A>Qtt1c5Dj z(vah#ydje{i(J=xB}JU(WzZ4bcgrsaosO2$GSaJwx%z+8|8csmh%TS>S55X9@=GyAse1%4EL4atiNrUgn+@GE4%^XF9#r|x*~ z){XnEw_7=Hzsg_7?N4M6<2=kPFa`xP<^3-5n&G$zL4LpKUD(_!Z2u{8y=>=g44k|4 zLw{QjfrkSDaq?+~pz|kGajwPv?kqNsNRqQv@PqtGA%|-J(-1{j55&+FA+GZAUA5+k z6Nsv^5Ry8CGJiSx>%R{H!PjKp73N0{1uL?Dh=#&5kvQj+a6y>Z?3-u?7>YDq{z<<% z-{PaGnZ!9LSgMAvJ`+8Esyd;Kg`B~n?Lhx9RN#;~DNL3Ba^mz=`N!Y3G|0N0RN~swQI>j(GJmEN^Ufwg7@S<7m*}X$=@~zdZ*+uyFg6o^Q`yRFPWFcX zGI1`NxTf6mWR6BfM#8IDF-1TtxIBVk(h=xUQIX25*xcNLrg(Q3FX##MM=%HvTqMt4 zjnL+soG`-C;ukk@A-r$rgx{@f_5R%+>hJ3zpof4$T#1pYHKsAX^gz)=Ko0>u1fCWM zXvDXuNXFaUxNNnd2=@YFXk-7`xUP)_tEd;ux+*~bmnjoU` zOv=!Ra}f~eu?YpFhxs809g{Fe6jLPc_rt8>i7AVHQznU=r($;>cJVBt!h+O16MFDj zWJ)|Su)j}3G8tjUmcFBec^At)M9lI2%SrstM8_o1FHt7_5k>Pm6*e~FG_@#u;Jx-r zHPH(xhkkTeM{Haio%}MI5gjgDTL{yt@KMkc=!L`O-?^(BLw+ljG9Hpy%3HE#-zbOY z{kVqklvJIVfvByEG*gEO3W6>+?NXlnX*R?9x%MdM zl}Ih~kHMp?>#>*3IVHqj4(DTRL^v|iQx&sFW>`_xdmnorp1}sl{7Z_9R;Cq(Bu@X! zM1$;mqHZ2RN5O{<9YMQxtyE;3Yu9dQ!kkAi{=zI3e+<^PjySSsA5NdU3J+I%YA+RT z`llz*AHg6LxkyeBN#aaR4oiu9Y;0<-aacK!cVVg&TKt3LEwljrO+5tuLlDrZyi1oA zp`N!EZ-GEi3H_?N1rPnzPMy0d0U15@gJfO`Cm%XTk+VQ&S*TExrHIa1y(>rXdqG& zVl{1!JI>wz5`-RKUuCb*uX)W0t_!0i?byAKQK8cCdY#&EaduMLM-N}qLo}d_5XZ<^ zzi;1-9lL&otCQ_riF279dIJ6Nt&y8GYbx!+<>p~3Hs*PRfoyPk^z0^>^cQ*vJX8qi z4k+0)g`1i`$+MgHhz#Gn&Ywwtt%raf0(uBM1_%fto|=+~=<6X60$tSE6>%;q?D_UG z-5yt16O}D=VGs289ti|QqAcU|pGZ7E#lAO{;eW;9tFa+XEo6=o2BPLK3?@B(`}k(U zz4nF2*Q&=;vuJcU+S}sS{l8`S`Ps|1RfUz1c?(5;4wEsX^ZX$TPIg#N1mTJe_UPmp^miWs0s`m!1lLR=OW6-c)xbmJ=GT77y<5KyYMtXnp2b*)B6_=-hOy4gWq zRm@(F-Lsm6U=-n#NY9gnK&JpolHj;e;Xzb+Ptxu&pFZg!@T5RMqF9JzTjuYh{1awC zLE>EYa+UJdgpTQ=m!Ln+*>Q7F@>@InJDZje9KyxPpX7jlQ0|clZQQ8C#83fukELiL zo@BE#RX7223riRoQuQe%?Qd~VW#c!br&?J|`I9g?WRiZ6A2ch+4TdK6mVy>1o?V~OH$d)@ac zLjUYphd};W_^kI;-@gZefFN-qMYpzdqO_7eY{Ur}_b8oao(h~qndn-0k<8%p8XIB^tug!BXTRy4Teq zmzf@kv}`k2nOooX>}I9{7t$7E6Eo(`MsQGI-cxgU`+6aV(w8jN5Gb#|24te76L}B> zFP8*-ViK7JLaj1s%p6hwVY@k3QjJVFqUngsF@~chnJz>)^0k!tvyhS;k8A^5*jSn% zG$=ro<5{eDK1q+d#jz6q3uZ7g$b|pRHUeJ0elTH}mJEpx;Cs zdwF>jg*qYz=_cqqd<-&!&tu^a8%d;l=Mm{FMou3RIO)bV7&vMylCK=c;vcu-%S9_u z&Mph12XsMLwl}PdDTx)T?> zX^Su~k|P5Un+i00s}*cWcqUvA#;z6k(1HW5su7Se%qF33WMYA0^k$ir zMNYpU6O`L)tQ>w(N@J6iia1jT_#q89V#AS=Ye|ojLZr(`Wg;!d4z8Xgun~>ZXCm=- z-(e`3a}7%uuZN+VD-2nuv|QR~L_{(@CIDfH2B_1t6+CUtkQ5VzpLhNbu=RkqoiWFn zPGyQP*>!zRjSq%73H%aBq<+hNMJWY6*U?8)SN%N=zsSGq*~CPtgdP$Aj$CO(Fxl%x zimowE6rdlVfTts?U;yI1JvBK&X?J+~mE#<}sEBr*y8F}7lV`J)+FE}$`}VB$N>89a zNhA6X_G>wMi}JdenF+!J0x{zApV9Npmr1y!sKeTn;oah+L$G+>0(|xDcPQcOOI2G# z5}V}6r>3)XjoWTwVh&SN9yCeuNQyE?x6vbzvTcPT&~5E(8SgSp5$WlqEDSSJ5N+j+ zULTLbwUyHqf!?5QGgS3W!}9sAIJ=VscL{n-B*AB5tVz9v2$NW@8CgUsG<-shkg25^ z!mos)-PGCW_jW0aZBh;E6DqAiEj8VS>vwJqfiV@xM;p#2$_3=d}rSI`< zr+1fLSo_&voL=-H+MoFzExV1t8yWlX<#(&#M(MUl+)XK!7O8QP|5ccjdmU@%%|Hvb z(U6P?(JVOm>sov`q$~CWQ}e)92v}2?h}yjBsqQ0}34q@;3eS++TeZqZ=ippuW2$?t5nE;>z~f$>dWz^YM0(RblG zlqp{x$>-1Gdc$|Hd&P8kAKs1DEjr?wmpAMP6H_ydNg{J2E1hwLMV(Jc{i)@_IV*Ea zrvV^nvbjj}Nr+#);*Z8}55la`Jz;?iWC@ds3^QZSztcN@!e<{3#lbXpcw2HF(>x#} zBa;#`mYvsaS!beZFNduOH5g1d?$mc6V@eCLM6L^&Y+Q@^fMuZUAMasepaZG?TMq#} z1fCiQh=W;?mJ6{i(n<$cFGWPl-XP0g_KbYnfYvYB`y_GS;(xi2kDL38`jPKLSB{*2 zqA7Pz^QV08=`Zs^AP?k93qc3}e2<@K_qL zNwkZb7n-+x8(&WQ2Du3rF?IO~SRo$C%` zeEzH^ftTmLrAi?yS(CnI@h~E-sM4r`U14LIhU4ccBy^)qFOiA>f2~X{2S1&>;bWak zd+b}P%{oRZk!6kE0y`5kMZi@}onBY2 zFdecpvJevzfE3;|adLyJxe2n_K4TJSfqD78ic=GyfK9!j5QZdtjdg~WL!ESo4IYIJ9^MW^6ft%AI>) zRLgfT^OFQrdi#B3JNqE)swU-Eh2;M*cc8T2isJ&BXk;Ul&lZgP05!e6d6fivYZ9$Y zGEGI5-XJ{&{via=&146^(r%C${mqh9=-cKkbe%8;Ka)V;pPI@N$cPv}8TDLj@YTvi zIL+Tarbft4iAP{S*v(R4Y0E(&hlR<3m)EcJ!om)o_Lhp67B>T$Nr=hka-TX?Q^Lp1I=1a5YgsMfAGqK)m592UkoL%7Of%uB|OZg4XtHn#iIj$z8CbDdI;zt@KixS5IkW5itV|T zog=lM$bjQ{mfzg$zAIg2&~n`?uRJqiJ=r`P1*w#}_31$%AR29CN((bNkD>k`Z$Axr zWk$$6v9fhgngU{X9(64kwmh%woZXQa6RDW*GDr1E4}m8Q0^-Z+-$-JLq*j1#!Q7=% z!PNBWu|c4~CRN~PQJSTDBQseVe}e2?B+Ai20d|R+XA%fJb(mx8@$o} z1C%Zni8agCBgfPkq2bYJ(rN%ImWs#vWy|?qNfJG|NQ_HFqvmbU;;qIMf2ZKs(XCjt zbO%bfyD|@JRGYDOn43{;*o~^YNKS&8or@yQtGDQYcJ*t)mQwBbh|5^Fcq)ztxX@n^E-^PTmj=-->8Kg&ELRc)&d&F2gSBlI9 zw&}#at(d=dCv078@%$S-@kXuU*z?mG{1qAv2TI$6)6LLz@MzfPUc!=@zrd!LW1g+F zC~V~*G&oo)WFj$G+*+xA7sOA*VP2qrFh2Zxz9P>5H-91;^d6_Z#?M((CSu3YP_*dS z16}5QiAxT3(6f3)Fycd;KCm0>wyeSk{%NTeUVgnLOb+~v4@Z5S zcTfA;_2&e1tknq3`EyH#0m|eERay-VUwt0ee&2(sJIRTGy<&pslqPRnJddne^)Rl@ zo5||Ko_3TbQ#*t3 zNTT-($m`GbmM|Jn-ue=sx8Y{QBuYe6fBmD!<(qO}}1&-nD$O``b@2 zV(qUeQK~G`gD&D)W^wc$IULXVIw3nT4!?dk59tlNz$5%J4hC9d;9Jk(;PxM}`^*&- zC&eBTk%IQUKZK`EIKG*>irNUY)l0vQMRSK?@vk~B1i-Rmm(l69M(D~m|Ljv0L%LVT z+6}*jc~STNSiorKd7Hn5@{d$WOq;OBn^KcpC8Vv9H7$hi@6S{2rDr z9&j`>L})1IuS+GknM!vuo4ybXL5|#KVd+a(iyOaZ#i5Kyo7)=f5L-m?jliF_@@pDEdsps zS@aP2Hz1%}i^(aenxCadSgA~ZD+<^;@XP2V1Y4$aPC-PGkU^tGT(c`}-` z9)X^11F-#jAigydi_cGlyIcFIMu#&iK^X3xfEA3wQBqVaw0Ecd|wjhZY5Eg+5ow1 z_mxYRFlFpuTy0n#!Pj!obXXU>TZ4o(r5-JZ3`h0T+p&ZMx~L+HYS^`NQrbmakgvRy zM&5>aV>hNmH9F`5-v4+qrcWFNi<}I^C#B=v4(~A5swHf!!?AC}bX-Y^!B@V)u4*8QBAGf7ljVrmj=c<_aIRCv2^-ec={Fs5dl( z#7HIxQ)a!E_}|(ks892WX*<`jT(SwMHW_^UxO!fxN>xOi`U{&6oyNqLHBqD1TfmN$ zXwj|{>QvLz)N`5No|1e?vxi;9=KV*gr4bFcx}7n0WJg^7Z7Dj;{sY&W)uncX$eE4k zq~gt^&Ace$v4$UUsYu^Eubb|NSq8a%08-INI z>Brb#Isv;oorIxXGK@-h$2ZfzLj0lWia-~5h{=ePTP3#d6e>UGh0`a`;!H4g0802N zZG_q{)W&C1K1KhbbOdE(LFC5(cD6R?*!Wev*Wqm(^iM~Vp+nH$!xh8h6X8Hndk)ND zOUHaoUw9sEx(rbo1+R4(gAe+3#z*foKp>eK@?3>>6aebe6AXb{d*2h>NPW{D69hz( zEnc#dVj~gDnCNcarPcZPD4V0a#VdyKy>N|3*@CCIY@VBJwc75m~dmqJj#MGus4 zHOI+I8cCRv7>k&g1muty)HN-c#7ImGC2)$?%0_Z>Dr}3pW6tNJ(SQ8cC||b=R#D}= zQ;%*~K7Kk*q%(9F?cCEy6iAAVi-jn1D^k|3HTsZfFpfBbPF-4I)Nvw13Y<(Dek=AKx1t zYgWRJCF9Y!`vjnJee7Mo0?m5$K>N8fux8uQkuLPH zqnCDS3uNb})2`nSdw*GvU-<{`lK8cCBkWte0;?LngsHVl#x`$Ao0Ukk+c z`3nF#oum2z$0n7w{e+K6X{=i`6R+i_VH~Bs6ZifJ&$g8jK^trPnhk;JE0LO+3X#M2 zd)Wu3{LW6bf>dZjN-M|YR8eAr;PCSAij zeY+v2)EKIN%6t)ESs)-J2@_`Yz$?!=V&>S+82s4^l&{wt>(|dfx9_zKE-<^&JS&yfu_xdAl|k-=5ASv zJ|xiNlTvZ@+)Qje_%SL~uMcm0#d!(5^G*|3(NW%7NjC z78bQzqty#l5PLlcfAOwIT8i4hGg2<1(_1aD`$!z-ui1{CZ5pB~;e6148@)J31HQh9 z+pr9cJM_ajk5{pJ%__8irz3`~TaA%h{y>NKyPXhb3qSd97-aVns{oBnFMvkLfF{Jp!skx~Roxfe0{zW|m9zFzQ?PZZT zHzl*Ib(==0SfLy&NHpKeF8rUiA~Q3Sj(~%)dFw8OU5kJv>${sIU3N$vjrULM)xTdv z2$*m($RHWg)_2o}wfOzqHJlIRKv7C5($l24NCaOzMya!eO}YEN zm-y25MAGeyvJiSBlEgM0rm;P)&MqkCZjZq507OS+6Os3XtyMZg!$<(oL6}S;J4#dS zXfqua7WM!3uBExHStQG(;;K|Osia(~%GR#LDZk=4GqGnZ&1gmv^&lxxe7_$c^L?jpgBKtGg5bRY zl_zT0zy)|(0&&r|Z$G~7d-|L{r%z*VYp+b*n3fd0b^hQ-Kaw|oV?`zql&nSEnQo;eK`&dv~+rat)fl*Ux?~AHFKeorytthynYh zd%r5f=^dEmzSOg)*)q=MhcNHX6bf=3$6O7-^m}!ASza%{fB+105ePUihKG<`#Dc+P z8Ot8ZfB)>4GE$h7LpW!X!OQZc+mo_5|4g33Tlnw@Ai-mIW=tj^Y(IN356|)Gs=^I@gcq?dd}?Y6mEFT0 zz`kVPXRsNWLfIZx8qzTNpUw}+!m}5$jI<}!rEYFc}?rcb~CU|@ID|@latc3wIs945Y(YPp}9Jb zV=IEm7?{2)SD~eTGLIwRkoLwTywoHAPk~jgKLtqg*o=R%)$)*ZLCr*efW|5 z5L+YOfv5N_cuK!~>y`{7zh|F5lmm`O)cellw19TW?EFhzEMT1|Y9B(F&t0C78`q~~ z=KY7V0)c*H2%g~KOX2M|G1it}%4hSd7%P`#YJ3Fy-r#|K6Iy)aIX(%Yzqlel_`w5= z*C|d=o0V6n+^_%c*I_;JNAwM8>bn#Or6WAUEY}U%e{_uV&;!xbVO8 z?oCN;EX&iU%XU-}2X@BwW2XCZTzvD0`Pqwwa=`j!XooyRPWMR6XJ+0_BvLI_y9IB|+GY{4(X z#}6LJ_y6mM^6h{87nR4T2&^XSk$Tsb0AsA=Mb5gWfDVUc6zDcqUNdXo+%r*uv zL}FL2N~avA2>4u_&jyi5oPQ`!<)~;EFU=mR6MsY>u6gJ>9KVi zf*1s3EFSPTio}A6Yika|w+iPxi^c~n7w2)q(_J=;jp6m)7zot#7SDd{r&q9=X>o(v zd7L}GgEr9{II&`Kwvor&ZPDvIBK&+tC^&X<=${OPNbZf_fRNvheTM^R6uo*=c;1HT z%mGZHb6D`H49sgA-o0U9C;1%vfPIf@AfF=Yn}yl+5eqE~@RSa%IV4x@!{avbSqSN< z=MK`dJc{nS@GxG)g3bW?So1;wWathM2ft<@i10i=IH1S;(VqarK0UEB4~!$Ojc{RL z8_!U<&mkYSi$Qw@`5ker!m=Vel!Ju<>HsEy{kVZRjVRe01 zhTss6N5C;}zB{vXYchU0k2<<7B(E1CgpU{SuHqd59$d6pz+zW^IFJ75l|3vbEMmM* zPK-zz+a-z+(9(xH@)(N>LnEUyig#=M<+>bT>=p|37yXE_h0aERBdJ6*>NSOQ-vsn} z2zAsw(&GKS9eL}EzbTim-3EPw08D}waUici{z2y>_+6>SSe{lSo!OE8>2YIBtn(b~ z`!FZ+UO#AVsPN&^9j z1etPQ276zXzOY;f^F#11&A>9KY~~Qn4N{}y>QFXkv3!)l$(w=i5YJG@qbi&+j@P|t zTLxzN+BOJd%%c~3eaG-&IZTs<099%~p3Cqz()l_wF9xkE^906_q22R7UQ+~Vf@^*a z4$?5&)h%3q%}ehDe~@oa27)pg;>)FQs%?Z2Uchy=z-XVInqvmyph6|CbMP&|;M3?2 z{PArW%nw134%)&4JBSUVeA4cdQ%#e;aQf}2g)>OeC+)H6WVi*fR9H`8b`||OH{n@T; z?Pr{8p2zr79C#BUn;Uj{qHa1~5#I-gHU(r=h8Oe1`!Iqs-18i-j)BZzL8&i4D3b*& zM}Vku!HEk&+?PLgbzI|E=M22GPv*dYAq|uC!xsXa&7;aZ9u4m;FdZMqn1p2m$0S29 zu(@>`Hui|%q60Na(^F$;BOM1i0*&K~KNjx&j{p z$eZ{KT^-RrVO`>yd|V6cuOVOvvQJAe9u2p7I$17 zz0EpSYcJz{(DI#P)`!0`to(Dn_;A06^YRI+#hs|9&kWxV zqvIa&bt=n;b@MlZXNh$sw3YSu#hff3t@8OnIOg$u;h=fLvcm^w+2VikQ9N^eTl<~c zP09l67m8z^-patI({jRTP?rwB zx=2p?5;2zvn#3&>#Y3E;0Zlp=8cTGs0SGDEt8W+NLt5qnX{&#jo^nb*e58KUT)KD& zjWaa&T@lcJ3h8R?pv&eF_fa!<;+8^iLUEZ@7i|O^um{Y{2pFVC@@y3 z@F1xq_o^Ih46mZk*C|)(W6g!TkglwLV!Im$0u>{m;%6KsTAqf0AZ|sk#lB0SaWre++u4>rSfiC~YiLiktW-mw z3IfiGm5iNJCWR?amE=uEaUtXgX0oR(i17YCwmUle(k2VD$09~R$Aq7nBF@{gGXxBQ zb0a{)d7xg`<00VZuApTQD+0Al(qb*tGB*UyfB-eJujig(pSU~T@(hojDJjh`d1M&< zi_{EAQ)Z4%X%wWBenDz3agvD*J}Ugm zUh8v11sNC~L0_6hS2y)_H?+mmoK}4+Av^^*6VOiqDBjx@OuotH@xpDn8v^G z^({1s<7IU$uphZtW5Eze7y_*j(6z}8kYzJ*Z|mTwAW+(24fI-D>uiM^0v8tnzMXM0 zycZYQ4rsaS{0^w7Rq-MtKtY-2kxMUM$nd4h6@qj0$fy>br=UO>nk5DLWT3w_uj{!lDP@!rvMc1?LY)C zqs7NRw1eZVfaPuo7y=Cx#QegUR$_$2w1;gygu*57Sl^Q9dpgYd-m;jal~TG z^osfSP)iyxo?*<+#ps4J!nK;lW2-jJ!72Q8MxgLbLEJ4~90cI; zVco#M#fDz^w9u&~z>by(x(JL|`Va8w^rFN5IM($@tt+?yQ4&fztQ}U}i-CY2pZxaM zQMcUZeVl)N0nY^VsC(c%`6;D#g#2LNnNl8iE;JgTs+1=UNz?vCeRCRiE z-W=_DL!dnfkS$QBT`dr*+S9^|U8)oM4zVR;N4k$c?G~+A79Ke@n1FsNL~$l4=Z?54OlKh^XnmO+ z3T~hWqFq?Rh2AK+-K zt8)F$JuD{X0~6~;9!`E5(p~P+?oE?-^29lr^*(@Sdz!STXwrU;cZ?p;kKpy$<%jtP zztw^uEFdHk0&RB>78!E+VbnS4J(g4utzNA_fV4&F3xsD1;IuGvmO31_p4KqtNVc}N z;jGdL^n8YVVJ4fwwiGT(Vf#uT+WF^7`2=);&omNDKyL)4mZUir)^(6z1>AxmUcX7y^bs(hwjQL9^)WU|ur0!N3XGF>jHy`Ziym#u(h@ z^Kbr1Jz*)P`>lme<^QIWn_B~0)7R_4d6fp5<4@)8dw(qbeZ8Qs`%>&L$mk%pqZ~l1uG;oMLJzVy>T%k5=IK7=^4^JJf(R4P zYa!E;c=jImiyi2yXt6J)Chk1Lw0@u`)1sc6NppBTdZhjXcGnOv1kQ*68K3>VU730C z0UX@CmcD)*6H}FFpD|-gZU`6xhCnO`U{Mj8)?GNWTwR=30Uazx7lmW9)1)?v`17O> z^)?^%p7CJ*q2NfNoF5*|#(9c-AWdnxK!b@&?QD5wJmm!y;M)Wk>q_4NTu>lytET!% zTucCF>^si$#M8pXLf{bZEW@!7?S6+*=sChxlb)=6`Ms}WtOPgGn{#qYZK6`fYP!kB~mn@?E_Kh$I5W89PS?|A>*~{KtH>3u;3cc zP@tz7n+gkUBy?OP;9d=_SIa=Nf((K95#UibJKG!BcmA20x0`StKjv0~Az%nZgaG)0 z-L1`FLDBON5#`;+Y$)s%58-%ClFho3FQVX_g0L5N;1;aI;*Q&Tg>q>E-wXb+h&}LJ zBv2uqaTMI!6v(R%jgHIk*o3^Eol!qaiCgUE*g~IetS+e;el_j6E;a;AD{Vom~W>W#^_r_)pigpC2ohMW-xWiRH>CO{yro zkoc3BaRRVl2y_hsB&Z~=`2QSc?XPAYDTBlJz=9!Q2p9rMM}U-y3;dgFE3&t}r94C< z+M1-di}h2U2wG0^AW06+sT5B?C3sI=4k!d}GKX)yN#aI6&RXJ>~4d|dM!Fy%6t4r0*sYVI^G~5 z@dG1jEI7D$R11kJi8}w4c_U>U_iRu=*Lp@>1Iy14XafSEv(!E;yqbks`=T;Fd>1Sj z0)~Jg&=ClLUiJ3&;Yi3i-I|lj-ww=*JEHcdR+9XWvm%5AANi962Awl7mymC2RUmJ8 zw2x!x0!a9qrL!)?Oijy+s1f2@A5at2gZuJnMoxtf=h-CAt*jHh=2r_ztZ%h?T3izd zpx=3l7W+6Z#Ut}Ri_B&MdK3K^-6Pc*e`?3w0CB`!i7X^^5;pBzbTWxuT!Dj#ntD!t zEVC>GD@B}ov<{`;WvT3kA<%IMaNKjeFTa{AIfaYwE$cXVtipzXA!${td$?1K8Eii9M2UGU>*g}glTx%^n2dx73KCc)k|Ub41t6rz;_G_Vid;dUt#vq zecfI{M&hDQR0;1ftDYfX2sDTQ&6!tV>aN;mHEnLO)YxD>&zg+PuNv{G*W|N4-HP;W z!Wr`!7iM(pA?LPGP|N~P)uHH?UQ!7}fh0dNCfD!YlWT8%zO;zY(u!DN)e*pZrQ@Xf z-L8)%&*wkY8XM*b!`D7-IIi-Vzx_vLJ6%+)Cj9x_uzUFU(ym&MK>g0CS09qza`Ia* zb@h8XSYUQUhi@D(+#jTZxm(t${!m3MSFtS^0v(9}#yov2(AnY3nNQ{6`#;3K&H3Os zHFJL0k$q~FHUta-MS$}=9my`goRt@!e&n2lb;*29-iLw&6$6fW$vcYL%DCAQnQ-CxJ{ z-C#4##JxeFl9$Xo8z8}}GYKd?)S2SA37FXE1vS-+^%*?Mr+LhqADqVtPru@`j^v)6 z)>0S(NkM>Po%_vqa9;4t{r6>Q{<;398DKN-K~maf^)Lhs0YktepmYw4kPFWq$>nQr z%D_-T9dvcPmP`d-a2{knstUouJp$p=*5i{rU=e-m98!lZi>R2Y*&N^uZ_Z;U`dAk< zaFj0`w9&JBtLHh^hh_5Pd>mmbC;Tn-=LTI}tM+5nCR(H+5IF+=eemCr7ZA#j3sj8^ zcN5S?;>d6B0Iu1+ zwvOOZ(`bemtsgs9V)F=a?7MSnpTb$q;_OrD&ki6v|GqSzvps1D7y^bsk`SOam)p_S zS6@pmKYUVfOHyUeP#5w%6hzS=B;$fwY2IQbn-kNCI)>qgvFliq^z z*d8+dJb8y!6IyO%Befom7i>|LN;P0#un*WD9E&OVSmGXedQ0EOiA6Mh@1gtoR#&W4 zL%X=R2$1jN&~tmkix`t97Ple`ot#~y>hg@7d*aN{k zRHDoYh&hq~vioVW&f`cJ4)%9(tcBZ~)C0{qory#exTmR#Kf6fswoD9x7!V+B+=B<% z<(JQ82_FjQZf{%+g;|z{fFWQAv=IUF1P5>qw!ZXQCZ=vWfwqnHiL7V}<_P=S+bVdI zhO5vAMTIiHP)dLmR%Tlj7$E%I&csu4;$*;CCoT~5rg8pwz=$(0?w|@2KvGpW4+^JJ zr!Pz1j~rrzp~@l&bN9jseH?K+0vE>9u-4Q-;Uri*a)L_pwbHh?5Np=}``hUVaNMP_ z$VY49&CN|I6bib~6&HPAdHopwJ8Sr!a|PD5aGZCPG?b{|X>P1D3p1MJ01=(6ks`#+2m%pYy1>3w4K>>2ts^T-CpO&PSQ3&e6L`!jeSV483JJhQlJ}q z`$bqEr{w9=r*iGuHOc4mI%dP^qPpf7-P+nhSu-dXei#lwuPTm243}jBdKisPy(Uqu z2sGuQSN1d~WZX-^>njK-VC^shNUHb};WWmegie;Tbxu!E6JyUlhO@_@!pjz9F8jQ#faR$QK?$K&NG8idK}NHdCSF>fV@j zCGqEecb3WV#pe%b#*TO@j@*I)OLgJo!cdQFZ>-Dq)>_a%%`=ggCa)u}HQCu*FZH!A z*S-ybY6x&VX0W*T+02|geE3+t_B-#%<0nt_9jKN*syMzM1)O5==<#Rr!7o0R(cwJG ztga+70X-_z6P6DNCU*NM(bUNagRyz?SEX^mBn4HqY&=63ojWPoz{Lj@xQPqeQZ48L1%ziFy9av%U;sgy?MHgz zqE-pGr`DOc$H061u(itPF@FT^DL(}7*OzftnVJrD@VIKCT7OtQ7++=v2DC5K1U|^O z)+1HpSufOc^zv1Bh2ND!XykioRf_n?LmgZrFUvA)2?9lo*UMu=@|}PCcNrWUkT2YO z7vH(k@Cm=+98vu3zqNvh@I%d~ExR9Tg~lV%&d#2E^6-)T^S^#a`qOv`LV1Le>!k_k zm58+CH+wFIkV5Ad_niq?4B0C&Kg8hL-`R#IPCD7LUfnXx1Lz>08r#h)8w5C=q zL%yE^Jj+xJ(!0B?^B>Yfb-lVai`l*P=_>n%zcL* zpx+;w!>iNXP`qB^849Qrgwx2AdAB5J8&YyWll?kn(iaii&+QJrzHUU&487k8=+MMd zGfrXL?df+54r~d9c;ce?;I}uG_w8&*ILC9$OI1jyFUO?{{)jtU;KBlMhE+gzARn|T zM!f6bdbWC7>ZBmRamxiAI)?k!-~63?`QBZb7$1{E#5-ycT}^e&%oqWNu@%G3+drAz%n}FaloA1ao*11BE~SBfYOB2vV?Ar@9ap zsUa^Gp+(02RPs<1Cp8D8q2}2O?-c06CiaRg%1~h+8hP(IzIB)f{YyTtN?)t?9Q(vi zZtFtpN{_k|PWrRdB0B!G2Oif|&BwpMfT0$Sdb5E)ERXqTaKu^$!u8hriY^8qvVo_4 z5^B%cC%brl4Mzx$xW#weK1(h>w@AOy4ri@Eye{T@7b%`GX2x+yA$@Y9ARoij{ih$? zFTD>@7t7&22q%rBg}e^Zdcrx&HUT~A9yn8eF~7JRcp$F2GTihkW&H+`P}5YHXKSk2 z6gRqiYG40RyK4xv3;|B$`(Uo9J?9=o3x#yT>VXp|nAL{` zPkokYE1n5G-t?u;Z8h4-edo@U9FBycSUD~D_J-3{iwoax{2KV-U%Izn`ZGD9(^d}4 zaugfOjW9m`<fJz{P@z67a7;|UAq&qR$=>cxY3wxcv?XZ+ z0;CVc;*kvH2c$4O*xW#Dq}~|hEQ@>28yV{+pf>_)TxnV|Q96em^j6y28^iG$0X8&+ z;)FyGp`4IfN)Y4fAIrBZ5FkNJV|*^Ynvqp#(CILdaTW{#L%NjT%_rIhTHi3e59S5##qRAr_E7@;x)Z2F!moNnr&&CeA1svj_(2}Too3{8 zMpr}{f2^$v^@!vBMug-OZK)T*y0iQ$fzIE!0FlOiaTQvtq-jUgQBN=rpJO^EmO9S2 zx6}z9+o5d)9)rUpGB$NX7G6A&ZR}4cpNhM&HkBUb2Qy=8cF%D~GyI;O_{)v8Q5Ph0 zT0L-mCn>>HN$u>3cPOVnPuinHqi1-v^N$E$c zM?46a20b2Jla(uo7YP&{d~j8_7V$oJr6~+y!s5y@9mlD;5r`&Dt1v6+Iiy^fwqOXv ziGVw5Ct%1h-Z<``eew(0*;-deII)fYI2&bo8v=%aA#er++}5_DOuzYSk{=#ZA+l`2 z{0w<@N79h8Afg75pK*ej=$>PEmvUBw5X!iRouRic4Iv%Q&{RHj7L9Reu{p2l+{V50 z6^jWJ-nl@Kw7IV&GM6rz>=^Q%;BmJ$;KhAs%k7m%+#dMQ*+=(PbMCe0iaqeD#Hh)V zOOJ5@sBmc#i($89Z1S37ox_3w`41lJ%B>Jd!@pE{yGSGgCZM;qTh2?B8mv4B6;0bn zz+xv5D2sx*-wVV^fh)G0tjI7N!tJ}?CuPEVgZ*d88bW|$n~cyF&Q{IB`Aj;4afgZc zHTIpaF22+SqS(iOLp8NThJYbp2*iT`X&mR+>9^jIp^0Dk7n)O!#VHwP>YIwf!#bBNL_EV!7s*;r>dqQ_jTmh@Ym7Spo!d2 z7YePT6H~IXFsJY|kxSVl^tZ52-vNQ8oUN)0|lek`WUPs|QT!-e%u_rGQ0;bMvYi~zI9O^fMCRm&isNHU5AaSI|-VsSSlM9aV zAWfv;Zov?U8iDQgb$R^J|H$)CY0loG6aUQp_pvyIK^K~&qb}F-GXx9)Lm(*#+tbl%&+LCH24@;P&04G+f6XLIN-av{I;;d!iK4xs3r5A+1b24`?hth21a}DT?(XioaoaeX&7X7b{qH^B ztM^vbs#>e3r+d0*rh8_(CsJ8a3KfX}2?`1dRYqD|6$%RW7zzqz`s0VckQ=|#Ehs2B zd@C_AWg9UmF$Y@*XEjG-Q!^z=p=nsAj}t z-E#?#j}V~$6%zg%??axJ3NgJwnLG@q60%35-nLkukJ0MlCM372S&|s%ixa6y{ZT1$ zL_G9$iN?4)wD(H_snDq|$%DypGmG#5vv2kk|pnt5D`2oY;d<49Pnso#KBYtA= zNfPCi<F=Cnv zIHuOSQc<2XnAPh((9EHGd&>vc6WOMhaWm}vYNwWS3p_mK$QbwW5(mF@cu7C_Ip^|R zocJDtLQ)wKz(s)MV4Q*Ah=4pvkq6)&q;^9V0~X(!;7}%jDX{=ek9ps~uK0Lb4h4^E zfm9Cn>?Kh3_q%v~wDZpzoevc%F|kT(jIF0<&nkmcc)q#5p_~guhpKIx@BZf`2I8$Pir=k7#_jfird409zN(Qv1Fp6>7S9pU?@Q_ih{s{w@O4A;G zcAM7Jv(fVznDv1kY+bk$aG-V5>^!VH(OxIte{QSo;-Nuc_hBFRdNzG9a*!D0baSAE zF6o~-nhvbFGvL>8U_z6u1i-&oKWpME#)?c1?FmzJ;(Yy_HPWp}cP5Mpw^%}q= z@Qr8hckMDclDZfTJy?SXbhmwQy*@WvoTS=R%92so;*j7v_i^s37_;6|qkJ?KRaps4 ztvY+f&1KFJAVxDKJt}$C?_$z~j(n|!xl@2>XsDk!CespYIw){=iD1Qi75fpB%&Gp^ zq6Nw$PfJ&q{-95x~!XQ>vxW~WOCf3MMd1vAA{Gt1W)zklN;bddLr4q>avyqE0yLXd(g-iLb7g|R3>opVHQKq%U8-@H_u7=T#M#{O{_2{{+Y_U0oe{nVCI2JeWM#m>irf zm|1vuc$mMjGPANW{>5N)@v?U{_GGkoq4+N%|34jZGZ#~5D@Ru=2m3GoqHAp8;N~ho zPW~@O|MUD;J6)~J|Cf`!%YTdYS3u@}l`yj~ePjL~+JCF^{|m~itQDHb{PPKrqeLYw5#U1$Iey&>Rk!rST z_6|b_yddPM#96xfy5y7BAhyVPK-&YLi zZNbWQjf?+#@n39VDCm;k?Ro!?`e=b~|0=&i$lekEzcTn2Ked_7&;PH&9{-=h6aHU< zv3md6#2qDa3}WKg!osglzJkescD|qQU$d%P{@wHy`j6rg5_v5xpS`@iFrTGZ7CU<> zME5@t|EF|d4h(5&>2Fb9W>{U_lJr^0|CW3w03ooUf&GVt#nsGr3z2Q;Pk?_&wo?-< zY+^!w3j)RV2zcKK`}*>ajg3KgQ5_R`|E0aacQUw!b*qcD#;0ds?qqezb*P4g$U7+k zN_E+Ps21Fb@r%_^TRY<5;D^3rFZ}UFE8CA0C%uh#!?$zY{lCfv`(ez$lw;qux&Ze= z@eGA!Ws#hnor6$aaa~38G>|q^EgoOiHISPhh={0}_Wrkbdi=wFPO%IP4&uZ6fuC-; zkJ3zM^289>R@bM+-S+;whyV5&}?SB*uRaT*k6;N)xlP5BSyoGjw~UFQ%XElN3!dvQ8ojn{H58h{eaqe>jWK6%^3 z`ttk~P{KKV`_RP4KRritH|I6~=Eb+C?B;!V72~+oeoMsEoWj8$GcZ2q2_i4LQ0xLU z&2bxzyKiW^rvu*`f=CF3t2z6d?jGb^b^mfckYGc(0t=@i|6}r=bA7a|1JZ-?Dzlo8 zrMYTmrd3GNCepsqu#`lqPc&|_3bK%N(QJ;uy1;fY@bBRrs`Y-O?vm$Bl2;<$LQJZf zPHte3Cae_d=^tx>_0#rO4ie@I^6k8*XZb~XfLFS%7*REGsPc)bXOSXTRrD6-Yr>qZ z0hw8!XZjv=I!Y(m5ozX-Wklttaf(bXdrvP2+&KJPUv3JKJZJ&0a-E_gj}0C?A>Ww; z{Cy6wWo>drVT_Z#UBZH#Pl6VRRfoi|=G>LqR>H>d<`fU3rKcqO#(d6DfQOUoWS7QP zPd=v~6MEHZA~kP_l37N6Vba&2c6vq8Z}N_3PHTpJ4+FQyKq4gzGkX;MgR>Ez?o*4)t&%=!Fut5)+n(J)vA-_B{K707f zZ}*vVI*fBWY|GU_|9N-1J<)u8WoBug@oci&xRo#p2vUsj6Xn(mDR#&y(CLF+S$kLfcQ-NHpHvW#~dy~)8V+m zB7mWFvK#G*VD5GsiRb~zf2;0$Gv>-_yLUX@@frbB*cxv2#r})D4rXT-!$O_Yx8xs^_-UaQcv&9O$hGd(w!%Cg{-_!3K0q<|6 znpFf*(b2)rDL1G}fIu3@0IW z;ac@bLy6^sAw7gJ>%Ka=Ar#!L@;G%`dMeO4jD6>wY~qKLxbQva5_>V!#ye0qG;>xq z8yhr+eVH+_t|}v=H#ttumSeX~ z>jkhriH0K6GF74ykq|Kkc4u4bL6s1%m2o}|hnIg-k#t9p(_79#q9@c#ROMD5X$KZo z?pWPmnB#!oj~&Q~lBDgBOKPW!jcCO*{2Z)0^QLqwU@5!bJwC7D&SpHkK%=_05uX_< z;@s?TQ!6nu;b7yiT!1kHqOByRx?*+G>5|US>5mDh`c#oB7=Sh>g!9e6uZFa&0@kLB zvIK_=X~_@QW5zW~wyjMx-e;Rfi?W)F9VD;bzejAZRVlRuNN)#r3HtFZ0fw$!mg71_uTMk{%L)xn;rcAN(;(R^f_4{9x)L5@8Wn5&OFr(zG%Hreq!KFl@ z&+G}}gI}09shqu1Qb5<5vMMShIAWxXkXoEWlst%K5Ytu`i=>2)rxY0zSq_p5z8O<^ zyx#M841Y!}3$q|J%Pb_a-MAx0BD&KCxgUQHhcddt}P(RX7BaN#!fBX}L^Ac48?-(5x^;t^h z!-I&rPT8|Kwi?Pq;x@Nh*jsX%wCk9Pd{#(7w;}CCN5rp-5G!gSWa;0sQOJ{@F=KJL z7Wis6Rxu}E*stRAoHhEIuzhOpmd&5&2v~9La^_&2t~`+<>4koVC(MG*nNJ;zoD895 z{UEi60G6?l&*M&7eS;rKUy;uNqL<%h$$uT50DHTw34@6bP!_6u)u=F1K}+@A5cB-e z-0K7(uTu^;_@}sGPqgoP0TO%?YH|5}Fv;-# zTwzor!=x-$x{k)L`&ge=nNMHIQxTPsf6#YFrMU*^2%!x`*|8woK6q%WPHb}9M(YgZ zLy9Mr-5EbfW9Etnko&oKcT(Naa*Qr6JKk@vk<67%)W->-TJ{RF z5{U&c`FXrprfLw6J+@V!6WR6V%9PoYEAZ~?Rx0~V@%*pR-oaQQ{3wlh{qltRx!6#K7tnJSGUtlxotY{PgvGJsH;Sq8+AT z#zo)MG?F}QHW=<#?&ekambC!1gCIJ9fnwk$Uc5*v{Ns%(uC^u{I3wB=Y$ic*ne>Ut zfgrA}!IEgL-|S?l3Vb9{g5j>h-tzbOmT0`#BG9_hUdC&Uiw&;udAKJA+FMK3Y;f@^T|{&<_Z3KUY5 zOQom=-qF_z_DLIbAO7?RX8tvLQRTKq9Az4J9M`s>8KnK;p#IH#u<>(d)0#M) zDCV%%Z@W2dFmLKClmcx(;8|5a$#+nj`%IBP$?>DTpw|~wIi!~FYH_IB0YP55exZx& zNWYXz$k0ywzP7O!x5h^c6Xf>t4yvr^d7Zob@jpax6{br%)Q^aYW*j~pJP>-PuiRD* zN^Vn_DUfm?+W4A{%seO^@n}4Y^=P6gL#XfbfKjM2%7nU5Hb}>4PWd8xy*iM<$+S3#6zV1_!?e|Eiqv)H`-uvb2c?T2(p1RqbFjSp#n&k^f_bE`8MHlk z+R}FHuZ>Wc0&s*L+*YiYHe1KDjPCu_eU*01%JA$gC}?=i$e9qZ`GIi;6k%wo$~<}3 z>KM5T)AukbWC{t-{eCl66`@!f+GOCJ=L0B?h^9k}VbSQ3AY?Sec*im7h?l6SSLrsu zYj8*mq+yDamchGRJIs42D7|~V<=oG0-i+`b&W=rxau;_Z!9#3?`aT>b+Q{`ZaVzPr zVUgWjlYHc7u5b5;$+cEoTgtr&EmTr-6yvDRZT!#q7-^BKEX$S1JGsWfC`#s>oHA|x z>Yb|PVc~##QF8?}UldvSh+;#XtekSF>Wdji00qXWj-eO*$H5pVBH1KorfA6Po!asG zjGW+2G7RH0_I5hIE*!?i^IiSP>pY0qBCsvww`mD5Caurwoy(qpJ_82?!s<_DZ}eDkEnb)U6Cta$BLVd~fNa z3Wc4`8;;ti|Cj`u%VpKio-%YTFva4G-m?0_JVRc_|JY4_V$kiFlAqFu%%wt_-GKjs zT<>YC^T6n@R~rcuAvG!EX7U9Y6M2CnJumpCP@?Od-a<=uN22YA(QTZ6Vd#a`Yy}W= zZ9C(U_}yVn_+GzXU+*g!A4%*xy|f_TjJFZdwcm{BzVcMJv@lO~9WWlu^L8Cq$+3V} z)UG!+in3;$@t{(kkF)MQ?M~rP1Yb?SX=+gyLS6ALl4v~#Jnxd`__aIyGju3Tv5;S5 zA5zv^Ea`rd3P$7%X9blAu0`AiX|&w;C9(MS1wUD71U}yxK$b|It`7Yi*IJp4`C=R7 zw%buC;s`^5+q$*~Gu3cLI#gSJH;OT*e4i|`d9b3nQdN0Au|xZ=!uIL;73j2ecZ0`7 zO7)Gc=xQV|Ot`Oh3BSEefWAR$muu5yzc;*)|Nfp_7r$@n_XO$Jas-c->{ZT}7!M8+ z^@>*rRh`a0KV47q&3atJb#&4Y7Oe*iQtCVMyv>zdzoxQ|6%{}Id3ggkE(uBQ#z_$F zj&DZLD+)m4@xL(J?iA*HP#YtrGWzWwUA9&fN;ts`$Rois9`)1;q5r2{~8Zcogzh z^ex19`oo^0b7sl@nWG`7n%sZ~uiD0(bD#hOUtoRc(60piIbR;TutEM4`6)Vg>@d|3 z64L5l^14}(=0;NW;bu;c`xH4kazee!XHB282k;6L630o)lgXOwK>5Jy@gqCQ-em`^ zb^@9hBa*N>TR`O-e!YDM+;Gg%)&8nSsh-ANXYYIr<6Djn=M1h!UN+J88_?>G;2X>| z(-V$Lkyneu9^74;qd=Eo&ZsZlLYKC!-Ycy=@4IxC*RI|OV|;&DuDR*NOimhPLyLw1 z7>63G#mca6qQ&m<9h>3#lNv%!MEz9G&*cDvQ0F&X+6q6eU$n!Y@S+#q8y}W75*X)@}E`X_uQFdQdQm8_=Zx@;#j{+@(HXy!KH@;r2 zDq}V*mqu70a?CrBJ2yKh@fn#%smyd0oz;)dMf>Y*cj3RvenDV5$EWXj8Xb>h-p-aZ z9QWYP?Jfui*}CNZzVLtSX0QXV5sl3z+;;W;o^vs}2z+zc;{Qrbohi3-F5$QqWy>J< z;|l@p_*lJcJD}!t;lV*+q`uiq#VSHFo0m31NmleiorHVgAOqecNi`uWO<017AhX$? z)75Hm4ntwGPqf>l4@!H(O1kGSQcFG)FAuRokW#z@a4H^o`Z`eT^XtbWGiH+Unuxo;xK?vlSOW#ETPL!w>t`<`z1e!Au z9q1+tHOzv(q{LLo@xrDb^B)L$oq?G1G|e|Mv)T_wE-m+?hum!e%(n8;W-c(YG?7Kg z;`3t}&#zi(?(2)(*2)14kjOD&FS)X)-G}%4@vYv%dXfP|!1NF*@IkC|^b*3{KnvbHMnFL+mk z;V|n8&NI5PaS3;SvSAsRIn|^VzAQ~UbDJ#dbMb;-`>uq*cPD8%xx*mES{}tOsk602 z0cL|ETN#mwPuO3zqNPk!c~5Hdi#-%npI`3RG$eW@+8_q{M1^^FiG0aWWN&o@CkOl ziR)(U*S;kOe1E|i-d*!~-3j#>&NEJAfBw1czAu*aFbiJ7j@VWR#bmTKh zElq5k1caG%zucdCr?FsYj|dVbC^P5&92JTmYfS2aV>>>Ue=mSmMxCrXyCjp=#63E_T<5s{7<8{#4r3|=KAj>p^TL={+D6!(He zau;5RXR$rQqg<@xR-JyTB4?^Rj*z(g(DBWbK=8zk$h-P|k>>e@v5bY_ikCoHH7&YI z=UH01B2wLcT&a8&s`gZJ0fap9?RV zTKc^9H>6Hp@}PA)c!QeHv`eZZCG*YsfFfNXyu&gA+Ai;v^t&(ev$D$8&cQy_T{WP6|x`anhujJY7@6w72jRopJ8$0AuBpbZYjUaw5R{xdb{upViEM1dS@Sd3sKRtd~yPqLeG>e6Rh0}%2N zKZF|s8bqgwtcXl7Rovlpr!$f%oW;L*vTivqE17L^!z;+L>D}p}LNNXUKb?15T)(T! zFa1$|&2&HMkJ~B?zw36l<6u8?fzBrTkLst-HJwkeRFi3u6zj_a#cpSqNxuSXwE`kZ zN{)WJn;=HHH0?!G=kx^PZH216sP=Bup%JbQp%pOoT7<_zSySE+RZVc5Vli8*I$91E zC3f7kFaLoOyS{7{oB6_naK@GT+Z+V(^xA!0QPn1<cz)P4ea!MFUfaG$QB(rs78tGeJgCQTWazXu3LsB! zdoXqhd44*|TE$t;;fCiIolYHJ)BTy-?TKqcsL(T@7B3llEZ@Y2gt~^>kC*Evsz__G zr+&)$1{N^Xo8Wm63vM}9j;jU1mNL(A0Mi++^9j#SlZ#Vdr;Et zr?On`Vs5e>=dzfijPo~@6uEY7pEL2aCAaB!@H{ygzIl+^b}9RUM*Iqf-5*AiiVkb6 zbsE$KKUu*{WzCZ+oDGv%=rO6Dx(9{?&(UvRfx>pHyIy%PWj*vnhLn>O0x*C970xrNNN(>q2gP~%2afV>A_D}y^QST z^=Et9-Oo`b-42^=3C?#S(Z!7z5@tfYje=w%37$P8K6l{~xh2TSip@AuqHUbS#a zZ?EJGtrjr2^{5+*4qGg>8!z2KQs^W;Pfos_t{k7vh(oZ#i97DPzVIkC=l+%$(#2pa>iUm=I!Uh^&NGmv)O7oi@$=HINt1Xv<;Ef z2BfTl5zr+iCBt}*@?2}wy6(4J3Ag_my|Jofmo9>DsX_ug8nnz3I5Sj|Vq>XcSxu83~i@vk+)MEZMTldm~i)}{JlP3jh znm2hzIBYyp3`vX@{C}7|(~pip*n+$B^=|HarO11(&>Q2--7$ZIe|dio_K$`hn7hHB zy1}>6DjRx@)}d3`e3?&oC-Vv&9#>nED$9SjL*=qrE4aIpJZw%7R5qur`}x^sgAam` zWvrH`6OWmT6*i8{649~t0L$8LhqV-KzrEI$r;M|N#sjr1k3(^~W%V&8K};Em%x^v~ z_bn$U%#LrJ9(&&vao-2)o9co7@mN!r1EWNYRvW5g^w*S*6RrZnSTD;!n}Oy$tS8}qWrw?)FKyuBr2csHX& zJ6Xoc^!LLDY~K=f85xAM#i9)!-|Rd70D9B>hFO7>f@ULe&+_vx8dRzBX&yZ~9*5>F zR}ak>%7-|g(1uXwd4HQ%u~$Nv;@j1&s7y$$L<-q$FfZGGpyWjH5XLLOT!ok```D7DgiOlN~DVJf8M!(02~;FXa;>}#R2J*`y#QK#eW zQ|<9m7?QV@U>#@GP*kv@aOT=c2Y;MJRBNJYqB1N(^Xboa063`1SCJy-=)4|5aTJ3T zFL)cbBPyXpX{be}c{f?G%2UyciOP^4O{Q_HH_bm=xx)?fveOF6++UFBaa$0cV?3be zZk}rQ&PeWNBc_&Lu$`nvo(C4tVGuEjz7cd;2Jg9_;PcH5GJWiQ!ICwDm!FKZiAga% zcuq~y$HrJ*5HRnp{dm~k;_wj9{SJwg-hDov6NS*p=dK$?zI)&g{`Fc}jV%syR-OkX zlAb$p&23&}CrPzbFkDTv;gn!(xJ>}a@y$h>#Lo%5< z2?|<%J}ea?F33gb>3-VE^5$8}@+6tcb%xFNhrpE>@nJ^G=3gJAQ~zEv?sqh*`LQ4q zH$<(!0W+LCg!{Nx@MH1O^ZUwoe$O4p4ZdgHh3yAE5&;X=xHmicBZW?k$)xfEk8b~g zU{hzmz5{m#!4&kUTa0cFI|sbOc^=#0kjsWQcA;KfQ@iI9(iH)=MDWy6(ZJ5X@oRnRS&3Y=$S_9JiRNUahv<*Z8umfcP>ONO00?6B|1Mu{QenE6To($D&wK9M;PxI>5RYli!>d z#m!Ce8qLH;ND|d{Tt6Sjp}P)oL?K5q_uzHqbMc_j?v#&V{~~&4RM_I4a!(Ur?lebr zUryim1)uvRB>EfVyx`AaGndn0VZzhVqm<)%QEp8vFUtC{T4CiV3k~u8K9daHyADksJ z>r&3ccmh<)=;>+#lk9!5@HhlMBV3zQb8qiT)4zOp_q4?11lFOBc0lLq^@wGuAbE*- zs`4-S-BC?F0i{~b2fZw_Py4w#3S+kG*>KlX$FBA-gE!o|_b%0H26x6U#o{^d6Q1w6 z*jolOGq2oUJ69KfDHC2nK-Rv`hNM|;qufLW9)w%o=d37v)`BEHrc@u?s>1knLlVXa z-xuQv`ui$l^lq(mj%HZ=Dp>R@4L%tL($>U}x#&vrbqGGfHdxJnIFV@}@vx7~?S8>9 zdT+y}CY^_t!|M!9uOSKIx!Q~>;G5MQ_p4E`ex9+rMgg}3?Kj=o=s!HD>R%u5alfx9 zN-iHee*X~VjXw0MO1`os8uu9YhOiql{En^_lNLXWZXIS6P;|t$VF{!0G#dv6olo=h~)sLA*kHm{Pwx5_}MnsT&tbPS5Iqk zfy-SX62Y(g(y8=J-!oyN(FlgyECr^tLP!O@QPIuadkbo|B18}t$ptrO*$Z%WJKEFQ z9d1>|E*>R9RcN&D*{WL|F$|4Fs%+0bpm0Cx-tjb0c9$#nm@+w8Zd^*o5D5@!8SoL* z@H=5>GQOqQUBs5u@W3>xK5;|_S$+jr>}IE{T`!T9>|{g2zce}WAeHu>M#H?Q3Ns)~ zqLX%qq0c1q@z_h|YQ7k1Ik1-}h51wK_pppp@cLdAah;E_+>)UQws6d0?a$P!xq$y% z!}>P=AeJQZ$H**+TY^zvRFw7D?(%b5w`&$bPHVJT=6qv>_v;TsZMk34Q}8!5%#lGi z`aSPCqx}$`@sfr_{8_ZZ?GkKH}uX~_0)`VnE*Dx|7iXP zSE3@jH{(~hxh2+)K*Ku?p2gQnh|_Ny$!X(q7JE;p{xB!+rn)HA+v?xlDTZ-E$VuIa zdC68nT$1IEy80OLNhgiMd2RRP*ba*}XY(I0Xo23iMqc#G)eBtElNB z`0ErmL$D5A0X+>Y{LN!4@RbJj){S6mbK3(^h=!_%}*|)Gu$Z z_o8p={(E+3nqO!7mh;89%)25ObylTUi(!)(ojhO7X(p#d+(l@cA2~(3v0nGGH^@y_ z*4hG#6EmdtesRVsCnv?i?9vwurqbf9 z0L1aU>i&+dTWz8FrrfrV66O7H)ph=~TaIARysLz`71vW0? zhv)-$0Ni{BV6SxHZ60Ve(y2rF^1_PSY|f@-ui9g#M$Ha;RG!B_3! zg7xxKgsBj_?H^QRAx~W9>J3Xl_$Kghjid4;8H3cgS1(nE>nu)MEiV?Tnx`S353Dmf zNsNy}c7(egU_X?PI`35j-9$frDeEjXeY*1I7w0EWfUqqYV_5QgEFfo~Jv^p&xCBj{ zAfEll@Hn;vd@k2BHO4rR;+@~&9E|tgL;5^RsTS-}YJpxjtjdVo4vC)&=8K15A}}(N z&w*4cCt$*I<=Q_;pXpYaegSxhwEP}~%-l^-!P@#$l+u?kUcLd}7vG-S0sHg^QBVE; z_FfS+Nl%!(eIC<9Z_sprWOM&LVmplOhInX-UE2GL=~I~IZDQ$5!beMY z3iSTPq8=z~9F<|dTlgwH+Xmk4TWKpzc*D4EtWl@?+L1MjAAwuftcqr&)nF$wkDiSX zpVOt`LDLUkVv!X|J9tsGHg)1gxdg%r+BhUJyS1;!Do@f}-~66{4RSNBI!Kz`uT=J# z^=R{3ekd1St^>_1sZ#2m3h>iCXQEP@!re}X*40udl4p{O3H`6MW0r0X3w0D>Ga2Q? zh`gqTd1&ONu zP;a{4v^xXSG{F2NCCwTmog|xInil<(KMl+10=~YX-lZTGxuMQlt%EaBG`cH6hS9EJ zGFqKS)b@o9hg}vVMn&I^Zh*(zbyGds%Q%`x>RY-HW@9j~cPBz)%NH~K8ZAav?UHH@ zpH3$5Y9?^+AL+3W2ACHH)nxPGCHSKZ)fIM?h1J`?S$5k8N1*lty)v3{jr~F83}yd^ zRf{7Xz|bf`^5A&x!P!EY>8;S)omzwKD(km|d-|ZP)kHp^M2F>=Jm(|~bgo-qGA890 zI4j?d0l7PW3q=~Xa>7X~1=bVVqdJ}w7)ZYQUFmfSupAD{O*$DkT!xUri%M$Ws`xv| zgu3mp%{30UdS$?sXrmSxU!uTg`Qh5mC{SkJs2@?ifw1^?$tDM3>v|k!gLU7{<)K66 z-V@vTEP#PIV2&%bEHO`OySihhGGaSsTH;d*fHVBzFm8rtWWQuR-+HjXw-x1A=S*0X zJX*@{{19yRo#)j8&k%Qt?p%X>muAK`lQkR#S_%anTMM!((7nyANja;(Dt#1H@dNmW zE^w%W$cCQP3b#_T0=|vZi+#(NYuHzpA?Gy*i|6_6vj3IEw$GIN^##Ck`J~x#Ban+k zl446vCLWsJk@Y9$XwX|n4!GZTV|p#Q>cs8f$hQDo(*L2^zg$r|l+-eT7k?xcW~z$G zyt2o*ao7NbM{V|nVk&%l%Ll%Be$Rc(sa5;wYPt2J@>J$ifSAHo8)OMovvb|={o8-k zWFz1#$&$mG++T+q{qI!`mxrj_7HQ=$FBc=R%O-p74m-PnR43!Z(wpOveRK&PyIx{0N z44cV4S=l(IYztPcJ*!VSdnFxur#9#AY~``mo6!1%Ebrw8UEFcQ zqIfw6C!wCa?pWa>se|in;7Qm;#DgJrMzuGS6FgH$fhXPa)*Zu|O1Zcz5uT`pcw9$fo3`6mDUep*NUPQ9fO$bmdCWo3%4Sm>@e_g-NfTpjrlslKJrX-f$kV zSF)MFRK_ig0uCtTeHk0f)hc6`3e=al?VF)<)`T1 zDOrq8z&^rHsQMrS?}&3K?!dk-cCxb~(EaA{? z0Qp&`qVTQGyCzLT)H9MGqB$eVwOoX`RG|OXuA*7iKeIMUFt2sZD*MWLv6rc{3q#)T z=9P+deK=Lo>+uu-8dnySKTgh9Mc+dh!$N`FHY*R97?)RZ>mJAm%_I@ zD3xh=rG5~6S<{SK`*-(4&m8Et9Z=05FLlzb+|<%mfhC62lS09{)-S)bzaZZ&KV3Gv zHJ~)H061}O^v{MHawti*(xVWrZe%PJDz*mV$E!u>nPMB)GxRF)_TPYA;`=hxwWusB zBM#C=k2CAsE_)i>9TEzrt?_b4v6~z^oDKy6EI(xolWcQr9Fs8D#{)08_yjF3e$Y*n>dE+}vp69QmWih1D#iO=Z z4#!(vKR8l-rA#q!+Q@aE^xQ8M2Dhe!LoIo_p%o-rzNRjXiTzv`9FF49;V$(MzS zC9iAeJR3ZZuX~z~LV;}{u*ZuT(M;;*TRzSt#qUF1Mb6p;Nl{F&VLRWZ57hmL6%K8Z znDK{IpI0E82x)Kl%%=tLJmCP-qIqY?o=~oob%Ex_8ew!lWEL+o8nC}wf_KAa3NH4# z)D-8q-3{i-IZOu=aCeBguwS{teFOPaZvBde&7drZiKd|B8NZ>A#~aWRinhDXGcOow z*w~7Ad}^(;muj?lcj3FwkVt!-0&=^K!I$=~FC`=fLJy+@pRnSbt+_~}*lr-v%mt4! zYS%N_z%SX+SbOgmXXqJ>GwL;7rtK49PTc2dNsa@(qa8i*eg=Q=>9y=dyd^(Hah6cL zG^0PsbaUwYT1I_k0w2RP*5nxdY;ckKOxYPSOyTV1*!aN%;rI-;NdMQ2#rR&*fDe6& z|E9kosz5x+zzs2WVmD4sR>@vwPv(-D_4!r+_Y0AFxTg7K+{pOQ7>A9QW*6C5GxH!t z{IsZZ_|0cFTO#;{**Mz{=XYdv@0S9%dG@$z6BqXVl6b-1I!5Z>J_>X%L^her;IQWd zf0J12>zmKQuA&Tr&(36;c7#74X!SAnSRynUyt~KFDz84_t{L|ZmMnKe2$G~8MA#ry z;{|emOitpTK4-J!7)gDHHxm6 zc!D}nVjob&s~ER;#`r9Z@8CN|JMBJf(@M--eJhewkZql#DWU9O>Hf8}#>?@v9!a*{ z_i3!h0|)O=Tw@@VlhIn;#*hC+D}D%!XW_E!igJ}eGmw!eN%ICanAlQ|3r4q#C%9+5 z9^5D0eZ1eF&4Wfa0IBw*2))Pfu-|PD+$fJlqr8JA7>L|XC)2#n(l;)8Yco2rkqtA9 zu|3f!V~cx&KF~k%9>Hf*S8qpcrHF;2aXfkwIggMXy_GuU!7Eu4n|aN?$Nn8dX1tXW3tsLLnL?SObmH|q`r%Ho+ljLic01$0FjCPlW-`!?%Q*t zVH{x%K1Qe!D`Huv&?TMcC#+f-N%NbAv4+ZPXU=4B3eQbFc-lli)rA&FS77%xer!=2 zW`$Dq8aEB59@So^_s@ZBWH(OUI_CYy9XPbWP0^o8D10{{MKm0MDx=NQ(PSp7T!pJ1 zBtzZ04u5oY8vaC;=VoS5nzE2NuP!HX_Vcj8H*A2ByC6Z)M*L;f+4tV{dY1d=>6tPk zn}UG~CL>iOfA1TTjg3MoDwLDZ^CF|&DC8^Q?)l>1P8Z@|OPYpwq)0=?hc|v&*Hh=g zPa|{-yb5+mM^F6O63nq+l!T>gpjf|UA~S?bbzEO9%}rK1Tf2~Cu^N&abtU1T?c`)N z3cv)|$qX&fD;=S3j%r`$K01vz#_yyd+wVUAu=gsyZFu4H2ZC!oobD<3eR77Bm~k9a ztt;!`rKKH0lZImZjw2~%>!w_|tM$Zeb-R}LmkLg=dG6GY}L)2 z_7TzH55jXtIGzvH(bx9#&}p0bWDZ3~_)eGijZZqZ99)H`p|I;{1Nc&#;c7KGVI?J5 zQRaCj4hRGUfvb*98rM zxFzMinbIrEjd`HBsm|g6e}XxfG`EWcb_;gP@7TLx1~{q>G@E}{(wLu>O-~C^_?wew z3|rlMAZ3xKRiVp2ZxoekpfvC&PVC#wk$KBmB4%lB)?od^<4&%_;-G<2lccMR;9iDX z-?2*gZjhS2@H)UjQi)o$)%)>$Tup-P=c$On&0}8ltJ%dUzM0e$YCJO)wsC zdWZ43gE5!y@A^9qZ$u$IL~)ezX*%g~r! zVX%pLdw3sDX%{V!Z6-0w91%|;>Z3nR@q*S9VlOP;W6!VP;+=_lhn_dC>^N^338MYS zojB@%UStp?wjW*kXcP5);JySLaT{JE8sD^dJ#L}2S4k)|sKaH{3p&*|nH7Kn!;$&> zlPrIluAoMd$gV6(<9LQ)xD+DU%;4I&jDkr91qn>}AaN;H#LEqlL?1M6@9(PBK)0;t zxloWa@9c@IpNfDNmNr``3wWmpmk71NJjF(?c&t;cm)t-e+%u;V$8e98U3R)r z7K`;8-pGwBEORWZ`JW%8VN!E)k$`+K$Jnq)-6^_t)gc@}jOyOKk|Nhj z-d)YiSxV#IC^3}Ym$T-l)ra($9@1XgLlWSD8twKQ+l?7&E{AN6_371b3=lt9KBq7)985mbK=xT0QL8tQ9LsG zlFwTIA6xGjUfH*$@m6f7V%x4*72B$0$CZk0r()Z-ZQHhO+u2EO>&k=im2!pU>KB zud&t~W4?2|znQ^<(NId6Gse7Ud(l64-GfwLKejHptEBV%<90k`c=#37P;9(AaXf<4 z>Yhv{mC1K;6g2*pq-L%vJutUf%jPkexmbtwJD6BTV8|Y7O*(5C%VsBmbim!N=~S=t z&;+OBx<#)hTUo$>wEA{FTxB2E z9wc!JM(b@Xz~eTnNuh1Z1<%=pwhrM}ouK^)HHu15TculoAy;aB+1yfB7(f*@K@$7H&(`uH@ zz`<9RmxI)Fz!`?S3e@YNk<7Qv<)Z(D!&KM{Lg&9Mjb?4f9wg7takYzSDVM>`cg%BR zqYtoKRU{UhVTLJo7X&N3!}|N0A*JK-(AfN(h@I@U0fFVZKE_$yLqoSU4Y9O!2OW8^ zD^6{_&KM#+q=>ohV{XSdBnsqJW2Nbm-qYF%JhB$I&U|2qAK^hwT+dMylFi*3Ioj@b zY>Kfto+_hqyXURv? z+1ZL^J9M|q|9}Co>*dT}l;~kDiX1q|GrW#j1aE%WRBz%M6nNvzway4-g+dS=Q^VGH zAG0=L2GWglUpZ_7CbiM(pHG`GE~U8G(Mkz}$1dG5VCJs6B@Kt}YDKJOtfwK6_@AIx zmyTo)3M8@YchaaLI}np(vBC={&h%Dd?PQwMrCz7~TF(5O5vNhB_8_(8IKhS%CI;z& z7ONDQgirV!IPyB&AW-BtE|6Vel~FlQoDUxNky?QxeL=)wNi_3VwiKBH-tdUQ2UwJ{ z*hqv=0>-GT#@>JJgEpm8=}q{(NC>zSo*1qJy(=rQiaw%3q{YIX!CBR$T%Udd<|31U zyLl2Vmav17?qE>+mA+M1E(~e}Xe-(O!vc^I93x{GCMO8i+H}Ks+H|BGgy({!Pvz*@ zCGRpEPD$GFofFS-lR)$qNo;l(p{ZB zMU=>+VsJdqR}o;eE1Vp5kJg*HYF|xX)X=q83cw*6Lt^;ekBQm4&H13}RTIv}txAe{ z$=*n+DM|O4XEm*;Su8q##VAQgih%+f!W~iAGH_RZmPv_fKqItt5fDEV2g(_#qxC($ z@;ivRa>L=Vu8qrdWU(z3T{lqQ7t4i_htbY^CYI!Gj9lmkPr{@*Ot}6G3Qup?E60jWBB7 z@c4ajxt;xCvV-mT%wqH|J!Z)9_SXTDW!e8zfP)9ES$CofX!&x!Pt%{hzdo?WiL@bX z+$Q>F3|qErdA!jFBH#|bRT}s?Bo>x3{rIr}2y|H158Byuzxwe|qQiq7LD6Mr^|>)V zRwU)RSg-kzdbl>X(!Nbg9gt*e>y$8bx4~Q=IAA;2Kpy9iE~#3k11GuOt358A&Q=$C z@N*`2{i2;MlJ%#RU!`ImMnWv_=I&%zKuZ9?xJ*>J8*Z1S>EOEEjMr>&-=dl*33Koz zTIQ@diz4x8q^{ZupOJ5`DOP#TT*0)gukLJJN6tKrA0%;XN-W_H-U*i8l}DzSOL6IG z!xO-{TyG23Xvyf$$N=%ca!MSaM*jA0qg{_7jn8g82Wc@p`V*Tz>_o-iyyzCqSY>iz zSLA!Q6k+g;+8VDHu7@xMW8E%Zy{6@8>LiRQbA?;_-mL)_^_rJ)f+_X%4DZsUyj6`? zp1K6{_TpB1yMbnHoNHk^xl2tdgT&bG%QFy_@akKc(WI{NQ9KbfS4e21E=rY2@_-y{q`EO zLuv?-70bB*iz2!aNfkNjyg@h9OLhy5t{BX1TSD+Ff#L~UMcF+Kj=UN|8hc2nMa8cz z&ap5Q=@OU1!W%rcrtGshJMnuv{i)9I0`hkKzE*(4PK)b@Onxzj?K#F= z=wt-pveW@@)B;7Jx;R3l_stAqa4(>dm>;5Ky|L4XmC@GlE%v3YJhS`e4+e@!`@S^` z4Rr$C?~g4q0h7UikksNq9%vE6wOlWH>ft>^NNtcF+rG{1Si;@qqJWi@<=Ba}QLabj zXP&abiU&6ilk+n^<$ikL*V))I_yKQfvI%zZ)_B4OX0Hp^-vo&@^I$@2a<>dYqf zO`+YUUBl#u?c^%{^kQ$k-9Y(X;S4nd&6rPjs39R0d`(bXPWmL+x;bL%QB|qkgji=h z#eSuFAyfP0Yl3bHxJulsM6<}wlJy3CS93EDU7{7S<>CFFHBM>evqMe#d0@+nt#?~7 zJ0ZSTdQ%ne(jrirT}H>@m~7oJWxSlCvuGb_Jg3m99`POM9N2JDHYfd})(Iek(1wH5 zw0TbH)F-NZl)OotWq{B=aGNERWu#P~Z$P?6NPel0VJ+=*X(mP6y3;Kf&PsOdk!88IW=q0CEJ){xjBpp;U8g#np=qb)NK(%n zsLy)lo4gdm7c(?SZ}DUPr8CWqQEr{g3yT^(#%rHkmj*%2n50kRri!39goXTg#w6$u zt5v!|L*lYOOdEOpWtw^wGKeWruk}|rSVSWwul!Z4an%sds9`khPwc5UX)LTv2CBUF;efbb)9NIYWe{c9hMnTM;aE{^ZtrAx2h)m*I-9N1 zhFzmPu+B)JP!n)th;qy^YVut)p|pNdFmrz{c}|07XF29T)mB@`WI7vpvxYQX=F>h$ z)B#eM)#_PBGopg!Hg6_%`K6*9bmB3|d%l)XqDXq?{{1fFZz(sKpA8dBP5KIVCBKm` z({!&?IfLo7aVgs9P5ypTN9hNsw9k=hCSSt${Yen&*E;!ip7$fK=WhJ_napV0`0?K!3 z#+|Fef-krR?_!nT2rI;v!9#F&$=Y6nf&NJ)vhAQ z_zcPNLpz?cw}QReG@k+D5br6*nJYhkHn}}mh3M07b31RubW(T3Tke$p%ym@Y`dPTN z<`{0o>=C$0^Q5FXcU&rJhn3Zsq&(`R$L@O0Be<~EKgg6kZ|-*CQ3($Ps({MXu#sy>+gkG z%X8sC_#VEe^}e(bR?9^>VNWRut8GCqDcT4%>P*`OvN<_6*}`~gw<=Z+6MLs(KmXPr zYgbPBaY_b9GD;)|w0K!yq7#5jY$cNOM=jwZmQWKRMiOq>&H{xqNjpvP2Y)slSKt6! zSi^J3;#A;hEq}-05i)@cG=H3enzYtpq4dg)^ls6^;ac-4o1@~QP$q3s-2pX7R=$YD zNa<=w)~F;%oyN;p8D0WKop6qC&;@KljS=l{*o37-79e#|7cH4{KzmQ^t~f}($1sc& zeX&N-2h|N2u0@f_zDQB=Yh$#79R{4Ak)T=}%5dF7X?}_HZGaE?1<5o4S{Rd4{8Xbv zO8lJb0WtxemKOtv>paCQy6IXy^={P~`kyvhO>-p~-12lOm|ZLq$}{phALw!);LC-r zfcv}GKFx2oFeQoz9y%KC^(<7q-2#{wZO!hLxB@34n{ae@FNHq2z(F2f$^naoJRJWar<&?0;bT8)WUeXEZ9~<9Clj^#Ng{@f=CSUz(aWgS^J}|%x zhnThr84<;F=A7Bpb1t;KR}mc{e&0OiG}Uul(w{}Rn_8@IZN;vAt~H#n*SD5?ZWbtn zmX=SgcJhbnB;NnIH_IJNYs!l+w7g+GSwOKrHlMZ5N%C!DrDQ6Ar@enI9ku*jxbN=Y zN&fzFA1fW&@H;xmpz=ZM*SwMblJ8%~Mt;69H3vI1>K=<%_(laa=Yx{+^xtTV1tk-^ z#+#lCmb^Ao%{SZFD{F!dbm+yfn(mvN;akE*nM-%!m_O z?j}|pm}Zd%frygY9am*w(xz4Ia~xFIh1=GTza=gP<{0(b)~lfON)2j*k4EQTzY4KDbj#In zUPWU{Kp&yJ;!zQn*wY$fEn+Zs!TzEdnv<@gp&32aKf0(f2#Bu>(ceLIyb$B*FzUFe zrWv=Ed{LbN5<_V3*`j&kzY-qvDDZju>`)0&1S$>FLo0PB4P7sO2=L24w&h zVW``0?O-o*<0|@o`@he$R@2>owb5iV#j>y?3{$=g2!Bw%J{=eIk4Z6PZgM}HG+vvp z0gcDMcj2Dk&fd-Y{o>Wr!@yNJ%DeYF(V7X%I*skMHfkV_`#;+>L&($qQ)TNels-~R z?AD%A7xT*U1IIIY&Sjg=E}7N|4Rm_H?rt~f#Uhvgd+F~R>PANO5$(%Bt{hrKx3F;1 zr1Z`kl|#1(b`q7J)S#)h|Kq-O<-Niu^t8yhS1vtXyXDt?*0fduVDa1%L{t~IGG9jA zE?2#?aem9fgR9bLIZWsFEVr#_Ih64^-^oMfYD;0SDcSh$m)vN_Dvhf{&zf}pXSlw1 zA)+C`GCoV3@xa59D06sPbGjh=Q-+b!>;E*S?|n6j98Nwv;8$hkPDzpEs> za2|L#N88u`J3nWGg1jMCobtT}p*yJR)AzIzF@)$yl{U7INfRSFFZ>dMEjuo_UcKFM zc>J|!Y>E9zziruyVARnF+aL>vq#DFf7Z+Q3P4TLrPCT%dgMBDzS-W;ke)q@Caw-Y+ zgG}q1tj~s$+{??wVB1ywcV&LDw9|ijnia@Fjd->22dQi_h1`IkreLtNjV%iBBoS@PCM6-Z&t?rXLF6uH1Rj zPY4vJ2j;D))z@h%LdSlIE_~LzdpD@+d`z`^utYzN9wwMOH)fvsaILw3U*Kl@-nYXmWsK%L5Ewc66kKldPgo(yHk3 zW7%Gg;vZLR^YQ6aw5nj-Xmb|-(h1AjeM~SlxKaOm%rYGGu@$ms>8FAD95dP#) zqKzoNd~Ghm*K%;2p#S}w&sC(^tj7=#5QE~S>(s|F3bv;IQ4IeBB>2ooy3G*s#t25B zqwU~O|LX!#-g)Z(fADozfKOfaRo_RVosOnvD-yYl>VL%hKR|rlAHM$@n3q{S>YBmr zI9({4=1CS%w)mfS{=XQ*M@;Z^-_9tv+^+~9zB!BI*@FL>NHyXQ%7p`S=n1p;)&{?y z=zVX1dNN-5Xyxm)A94ONO6IJ%%JL|k(|7VLs<@7JChE&CTDz_=wJ#(T1kGJc9BIes ztD8I)hI@-{zTwn)YJX0?T6iZ}8{f78-{Jmx{>Xe(?Z9~V)b2{itF`e?s$yyR3_X$i zxi!>5A?;>ian7IEtNLFb|34!1uV?p$^Dk!N9zpcNI=A(DVaq=v^1uJvTB&n8@y)?A_qN*d4Iw>}C{$py`1s9?s$k zsd4P^&7OAuws5T(LDYPYz5bvKwxfQtnI4T=)-|DE%`PEe=b$&sl1tuALU-8#7e|o> z8*Rrmlch0LPeWBF+GI*pCau3R)>cPVme@r_6l*w4BgwJ~K@vA+vQHpiN1h8wl1Y=g zDkGj1o-P8x4?r8DB6cLZwc(Oq%FF9yl0`X%fv|fp0#_I_jN4=+qXFXyJuykZ%iGQ? zypLE^!%HiTw69L%?DCRvU9*qUC%6*b8c%__!+|D5nF?J`Y>6qWI!WseuA};WL)n$5 z-jp)j@19`Axol#eaK9$5)xxO&$j73w8oX0ED@unaQC{v1+V01qNq{4;>4v>Dyt=cc z`^8b4RSAg-njGtzWzlh?UCV-@7YJ}Dluguq#uI+Yud{p{w2YB3WtZ2N=&V?iRuElJ zL_l)h#vSaNg^DAc$ITCk#-tkx&QTWH_C)Z zf8pTP0ugVuGGX}~HeCvg+V6Gvz1gf@sPkDZYug{|wpzZA8RRKU2D0nsC{K5ooQvDO zljb18ozx48i=ndmPf8<~j8D$?-tkR&w-QuY?AXfl9g0r^qhH%!Xw0)Ln|VxgD@H|k zPYRw6ucTU&D3o~9b)W0#_avi&WsP1MJ&3|J*uw{T-JV59H|IXmeOsEx5SaBv}8)KE*pC(}CHZX{G)UCyWZchl5 zgU^PCC$7(~Fhvv0TBTtU#IpNO-qz<7EY(r!m|`PE7~K^0GI{klLCy9ZT=To{sRjO5 ze7!U_bXp~Bwb*&r|5|J4OB2dODp*HT2p%gQFqk+|}9S*7k9lYg} zM+MHXt(Xz-WL7*hJUqBxN(?J)>#0N>futBh!BjKGyy_c_u5(t?#* z_=Z%A=?xg|>fi$9brH&u|5GcM5eM-CdNGYIpqKtns%CA9StJvhOI%JMxG5A{NBP znqX13`^@r^ZBzoFjLP=LmWrPKr@p@8v1u9hJ~7tN3RZ!w|l9PwKxxnYR7=H{AhEN>jgD@zc_=-`Z1%&y`j8* zZPS~T_1zXeo>P#M_1MKT5BSF=^!dov+U4~s{%V&yVe{jKHaOd&*-~XhcsM*dCT7}b zyJm{=^b^B}cXC?_c%o!ME^BL+x81REG5FiK3;Nzc=JeqTYyXE3h}d5{GIctsIJv$_ zAdHe&IF{Ea%(cS2)}od!G!MUo7zz|c%ZHtT;1T_iJWM_{qk_7`TfCfg?emb9jxCo~ z)Mtrr7HmrGPsn_|b-m*#NN6Ci<9DLE1{G=-+_f4$P@o?o*uoz8AZjqlMk_5!Dy)$L zrNxHDVsHwtV!?z$o+a8R@X?w;NVh+Q#7`^jp)$DXifk15%Z0IyDB+))_`gHjO(-Y` z+ZxF7reTgA02(2AeKy%MKXa-P>=(Z(P}&rGWZD=^Ubvbs{6t1pyh*(7X<+jExWq? z<+y@0olX#+t2mk#8IBxIa^KGtQ4)T7jh9bsw2Fw8SsHcI>Z&fM#$TtCeIl@w1-Xeh z?jF>3Z5?6tGU`9OI{x)aZ_5*ZZ3HCskBHmJ{fzP-<(IlEmYg4YKchMobp5g`yupHW z@P5?}RnyK7|K|JtFC7_}fn43HZFFb;m8p+9F3|6<5odh^I*|y8H_q9vU+$WVbHuZ( zp?a@$Kxxsq4fE*_?)%6s`!2-kpsKA%q$%84dny+7`mP z$Mr?(tuoh@8U9vxxzq@gUQveT1U{k1Mn(y5cZGFdcA9^-&9T`oXr0$(xn0R1%S?O> z;HvF;!zNuu@m=A&ekRj-H^z6-e?Tz3_s?@QIs>P?8w00rdFFd8w6Y4|v02-Q{0o{q z9)Ig6dQ|bvDw~&8rmgM%bmi{`3=3296#NA|AFPN^AA5t3%_aP9hIYD!ep z9?NG`F<5Q4`xJQW2bd9j_C4{X_8LW7cXDkDMni9WLGRRgZ~R zjb&eHRy8~AcS}U8a2H+b#!BrV-~7{I33>Kx4LV^ISeDiIVAa#m+iELe3RJTt;Rk=L zxpL^M{*6Oj;wvl6jVsvY#^n#%^=4RsiV-0{c1s0Her}vQ76R9qp5L@r>h9*7ZyyyB!!6I zG#>~1ouZv7Qj-d)OnXfNsG0mh3yqc$b#p48wmVHFc8QSIf*@VxWkLS6bY)CFi{xw} zmrmT4)_p|{4GrC1=-57|R-t-7$$e7S_5A(??4&4NX&F8^JnY?j$gRog@z^pKI7L+* zL3O&v1pGCK46(6lzH~nL4#Yn{LR@OI!ML2Ym!EhL_az01AsKjChMj&v5&p?s(r%7X9abkHPZcJy zwHP)mn!D}IFoTNxntxG}lHk#;w6ri^E0jS@Tt=h>Ts$$z0g6&*?XhD%QvmK#k7#;_ zyCQH{Ez75}mWx;aL~m!=nli_vq!{r6PhjgxkPzqebeb^jZ~8qr8l&&wt*nQ-2;5XJ zA-obkr><}xo_E@!2a1iJCsLuh3l$b=k$MdtIAnWAaha(gK$Ai#Zdb;M9&qetyd4wUK_=Bj(gd4SPPZd_+JzNieCJK%aPt1N7kGJzL zXR}K$#9%(_!^&1f*%f}z&Ica)6qP7q7zd7AP9KzMo<}<8-vgUBQFxab1udxl0;0Gu zS=hRIgnrikrD!*V7-!_qly*Tc81Ad}ty~tTrUTfHEhvz$n2# z*gw6HQilmM^JVt)mp`VW3a$o*f@IJn?vQOZBrORlSs)?Bvy1A!BTQ%ykB&h|@(+}7;m^n&*UYRy~l zt}Si8UL!{qjdw3LNTbkVP{0DM)2D4+s1w`c<#bp8mq_(D`#ar^r^|;sB6vW2L`+;# z&h^)zEPYsyb#&w^>B^JSQx?0(>yX?)X9FSMnfp#{pwP{0{MyeXJ#8(mu*OFAa;+vr z#`bH_ubVObZDfSd(!U|=vjv>k60x^ueY6Apl6b22wmvSlWU8I!$@jy8NxE(D18^5r zT$&QdJ+8i|Z#bZRv@XeqQRa3eg^@SPumnd7QcRAIvn|4j(`NZUA3sygr@upYeVmLv ze;c} zqijJTllRWPzKSUNP71=FOO;g!=!U8*HeSXXeZ=rf=;es5Gm#%1V?0jKtSw5LRyvaLNI>ARy zsJ*Jaa9%tC_u0C|HlhtLZ*eckDLOSMx@mJ!_3$u9c7FFxxyVh!CJfbz@4ZJBe9P8H zCtz49KBDrxK`Hy44toc9VKCum9>3B9`+hwb&~6Rdw&TGAy}*mOy+4Po$i_7y9!};| z;Dd^Ujm~fH_O@^5${v>71^I8Y>%82)DhERAtB`?3Myu?>ZoO3nkK$*HM#8|V^g@+R z5jhxAMb~Zo^xr8u@jm>8ETRURrQ(XM=n~Q)icWnvDJqS=CqsSxPVY>;K1f+ToN~F} z02xRCfey4J9>RXss94;;ku)ZN)B5RY!HvZlZp3k!oP2!%de}zQ;#|!ZjiKP=azL(RgeYFJejQ# z8M5?h=!k=NLc;*nfD;cAH^8qd;wbyODLYFpml$OBNbEx#(hmoAz*ZEPv2kqDtm>?f zOU|>1#u~2&`LzJ#nBEC;a#A-}YR z+4U^y@i>5av)1*#_FUxsN(n~Ez%U8@)a?`i@RXNohQvtLP!f<~*>u(FLcSMli6riPPSBq-~)Am_$av%a1yqzhJ|dkrr|* z3hK=PUThU}Z4jc&C(_W;PMl_%5Qciw$-=_Ij+^Ngb2;3>CG*hgT|f4bdV$rW z>1Ff;F#llVP%daK=|I{%R$I?Lb=P!*R6@h=sVHiQp*eLtE>y^hPYKJ#yR60~Qu%wx z;G`miO46*XtGX6G?yIzK3qh0(*!3Hxsyp4%)(tpwtO%Bn5aDn5sxKwJF_5sSFXeFX zLvW>xv~y&7hyvcYwG`IYBODkAC=|OfWoDYYs&FG3mS#4^FCrIdR5nh9#s07_Jhmy! zO^?cPLrkblSe=9knf}6FXd<0n*!0D@taW;Fi-}GT^zHTNFGcoW+E5HyjCA>(kGPF7 zwmITpitS1@oM3Z~w(ZW1rRJBIsnbtZM8eVajoK=mdsU$VVltCogtCAn>)~wBRnY9i ze`9sx+W+@H1_n`r(Nnb50*AE?7kMb>mWXUU)X54L9o$GR1cR<@>fin~S*!($@U$0?2$N>&P@^#=WXy(6*a0U1GvlA{{l2lmmM!bDlesd8k#pfvp) zdjk;(1xmp{OE5(wh~tR}{$UcDSC?yw=3g#1Ay6R|k_eQu@~vt)~e^nLE7 z8acPSWZ5D2ttpApTwQek#kmg)l)i;)NSS7{V_5s_%vf!$jzrbG$kAznmpq5rX=-$8 z!d{r^ zSYhVyAWp(Xiy4qYEr)ML*;SY*u0I=HmZ4clvSj0&&_ZAuGl$c#bz+pvE z`)))OV08V%(2oEt!)<(0lq5=YV>{B>TLrInIg$m<6|;h|ww_qiytE`?8WHI&ynY>Y zzo^C=r7`28*z!zF$&6&RjCO`Q+K1$lf_W7s%t*_y#Nkgk z-L9DxrJ%$~s{MUqUs-1nRsBCHJ62Tddmi`p~8X`Pg=^3b;s0P zq+pQT4CN0xIx$DcY7oDU(pu}lE4f$U! zFXwZ3vRHM{J>_d(sF!mzK4usyx{)IfpOXbd(DYXo#?>@4#f@YAttDUD{Q|njk{U(r zV(W{&NbVsxQ)VV@@R$5ZOI8{#G;El4fWAOV5BG^#DeIo_Zwp^mt7PumnRGTw^YWjL z_-nsK(D#mTEAVaOOrb!Y{RMi_lRaRUFEwi;*kj0}%;bI_ii(J{MC>cWT;0Zbn5~_f zENfz2x+n_?CT$mPsFW0W@8NEBXMLPx;pl4zmv%3PV7-2PJat7~c^vU9w>r{(oK}6n z+8>THf6!$2=DG5}^gt1^fp%tgeZF;BhYy)zZlcPGz_r~J`5c$Jq25U$Cn*XnR9L_a zo1%z9zT@EH$~JGt#l`|3FvDa1Vt)6VEW};@a2DuWy!s?8m*tREuh99_ag{Rp^Flf!Fnu-H z-w6h63wX$(2mn~@`uFn0ZzV@F`xp824@U;?t1(**QU|KFey_bcb3i%e!7*q$DEu7?aw(Szo?+d(hYb0T5M!)hTvxL)Uuu(T!!q-4jYzKJo(agua8Vc~6e z+8??-hBRH;0vY|G(fFaP!JGv5>!N}4c~OgV3H@*Rxrkh^`E<$;v?u`}5iCsh+v4~3 z278WE5;SV2K^vtl|Kivc7l%2w-**;GO%E7|9S`hs97qbm(n9ivU~YD!*TZ>HM0E|2 z;u;uJg6NeQe1A1z|D*{#U>TS(ZZ~KfS6{XqF~|9uTDzk?UTp-7HDnBrO9(rgv$o&- zayibCrOMT;NkS_pt?CSDY?tY`o5ku`F{Y)=q^?s(j)KiE?p#5ZRla8ynOk6WxmcFv zy<3qd4YTV`h>A3L%GnFv`z;VD4lS21At-?P$P(sR_s}hc0K8R|dw{YwbXJGq|14Pu zKC{gE(=De7$ng<u`>;-R1MC#7(M+0=-EM zB47n=JqhlA{yEvmC@=p5@j}02^H`k1ba_rEDsx!L!p($q^ltB2JBVY`1??=$1EtOm zzw&&~HezXO`LFDh7vv0wK>tnM#5`h1-&@dAp3AD4g+@~N;_04?r!&H>eca6Krf3^J z%DJ;vG><(#!6p--q+$o>{Ul=kxMrAanDHxC8)nech2U-a!?HvskK;X6<%0{dsw;{+ zHGqEQnh8T$kg!r_@k{>+T6Qe_p7q`vcWhnRZ(h~qR~}AxA6t``+x*r&khCjmelvUu z0f5bs0`~ZEP7jH?t>&BDDP-O_W#^!2)W0Z}XJ$^p2t@U^H^5V_OgKifZvR`l&P&$Nkge`X ziutkHa$UO6f-yM|Rrj_v*mI{UF*+&4hB<)aMygQrqR*?48nsz!?qd9;=u)e+ zeR3>fw@F9l#IgO3cBEmgSnT#hR4RqJccM!Eyxq-S|A#O1h+~52t1|-8!@-7!!6j+W zUf$?-ZGj+N>BZYp!2V+VZQ1>qk0JH9O-xu=j4Xa~hsF0rhBSGQtT5N0M}6y42M^Oc zmDrTfb~R5EflaxTkSYs+k9kq#_PHahjUvadEyv_K2iC+Qgl(p=W&DJ2Dr=;qViS+1 zyny8bJ+wDJ>=#q4W6Oa{?JE7rR!T)?`mK{E-U}D^C8zO?Yg4+BYX!r7zIo=ZV>rs{ zG|733RCSx7mHjJT( z(G&wAoXr>N67KhPE-qr3QTq{`_3uUwjNb55N`g(irwNpa585Lut&=MT`DHh&dE_uTC!~j>ya%62g^| zD93pz`pNuVE~-ego`zJp{sGr!h54YDvPQj)TM`ikXm9H`+~Ube5zrqn@U3?+Fbh~(ur_AaeTMUucwd+Q{I09w z_kP8a16b|%D&sXY=ZY{^rgNX}6-eQ&Y6T7Scag>HZAgn>Geu!dj_>udqdBtIPILh&68Uai^A8-p z$eT+sF~T4n5n-&%H2^j<5fwM;p-fqT&0a5-ZHwJ4)+U!5Ud>4U%eS$ul_*stet&Y- zFtK7*?}LD^#aprh?DCCf+o2lglA`uRQNs>Zi#TWtJ8{Khb#K9h+1w_BFP^D@4&}~I zp)`Mcm^IW%RXuFCx?X>#di)Q0uUj5iALqOY8x3NAo(8n0N4dy zxP2gRyCsG$0llM1i3~mC$tvR}Kvq0{M}j(bhI~Ca#c3HCJbq?2!=NeG?3<>oPA)$M zEa#)at#|%Q>f~wJfD%%%7Jy?#`b}? zyV1jswBm@nGWsxyf5hx=u}5nA^}bH(wUcAW zNJ(M+$;K+ZGjP#9yy-MA{(U>9h~Mv|(f} zNdarsHJI{LsSguSaA}@o)5;H-rn4TJLe0CR>--%mGE;=lxdg7oW@a#>B6xSj#oz*G z|Mtrnya3S-JmukJb%r6Jlk7VneY4H|0Tac0NA>3qIg2OxrrQMq9={iXmiok?ai(P7 zXFCw*u+kkbOv+xAxy~I+-q9I>-wrd1u;&Dak-&3zE?JiQ$p+JI>1>Tkp)2Yrb8{Hq z#0<^mss9T&O&?Vuj_535Ca@fp6qPkNkO)yM5%r^85OtM?ME-Ui!`aiM_S+_g9FQvf zH@$|R_!6C{P&}0J7LU&c)D%h4xLx>9qy8)jGuZ(IP9Dio331(3J~|%CD%bv;!%=FB ztrtYAd3rH!$_HCOx@q%b=n5`j&+W@f{LE?fQN;x(a1x5jO&^VA8A^0+G2q!^TC~=h z#IiZqXW4>xGEc+0^A#4gu&O&yl=YXKZD$k|6k5xsh`$$r-w~RU*0B0ugp#SuXYPGc z>U^UG{|&K_*!zs;vYMIj5Whg%`fPa2Ha}$vExKY9aP5>=-$z_dc-_)mmC3GYom*#5g$I^QGWV}=`{BivCoQ;H_N zZO!psu0H(9=XyI!zXB)Fq{_qw%Qaxifcu3j7VQn|QP+#IC%RdxTU-QIP2dBY?EK9d za0LjVBuvv^&E8G@7zk>5Ep)Nc;;=P#*i0N!jLC}ZEHq!fTQy&Px|G}(XoW2~Z^Pkf z=Da?R(@@kAygcbUxnSIx4jI!B1mO!b3d?Ne zV47OD$LlNy^Q97_;GOPTAj%5pDv)EofLA6Wb4xGcNiM#STfoDU6Z>1GRZby0M5AZ)x?3sSBZ zsOA+Isb4{yEjBpV(@;u`Ts;%NevRyF*1RXm^s>cP%Hz4dyiB?we!DL~pN^B5N)!~>#eSg`#koJH+9hQTC`*+`f_hA@kKW6K7 z)yh_`9l@B^yvEB5<*0vVp7&UI1uU(`!3xBU2d6sBaN*_dh^fg0fh4WWX8#&0IJp65 z$_klK8EvP-Z`tt}785@&BKrb)=$8V1cHuC|t&-hnmCgAso5j0DK%aD`Qv7~bm^4Qz zb@mjSWGQV`o;ZH z=QT>GI$wCu{8TgsC6b*5w?l9$dlowmi&<~ZYG@Z|AEQ333=zaQr_eL%^hH~Jha*6J zE7pko>R6*HQcL=9hN1xcekOfZEBUhdGIQxdfci>E0%F$cG|C%j=<&9;#g1RYl4N5U zVChL)30d)FVmh6}!k$wuy+l2%P{xy`5JgWr{0l|U-FDS!o@)Z7Euz|9awvp=gX(nE zAi!MsA>zG|H+05)k1U!V%+*FnJD zn4Q-Ua`9PAVN`u{n>GCm0IMZYCDq!d7aFII7aX0Uok4t_&F-?Q_P^2z6Oi#3Dk=gw z_&hXf=`KT!L2{*1x>xcd*y^)+#l0J|n<4YPEa-E^zvvfs>gBHvaz%R5Uy^mYVamX5 z3ki3d<7Unx2G>JjNz>ti_Ipz_SnI$qmaKAPU{FKH6w$Xr##GrJMVHi7L(Dg+#`pUH zlerf`47?-GO5g5zKp&MXoj#Ocz1KUYU#uRblIwosJI5pu7k0r}0&MYv<@WPgCb8;N zR=pbIG%kJU(&Tpl1T)ylI*EPt>npMC=%OG6Q8aPuIhI5SBzB`UCnH7G$u!qA(vz`J z*Zsn0F_QEkJy%A+dzDg+GFZNeX24wNE|eP94gki$F0|%kPOHZDYreJjx51Eke#PIB znr8D_pQ&nB4OoFo#M((m2z#8at!Xu&4xlaFuz%91KQ18X8xQy{#)+A}errml2QWn& zF6n^e!BcAF-2}+TVpxU97m9+j0XJfRX35#v^^2P2Rs3 zg^RFZ=xUEeHRB|!$>3bFb8~--W;J9^RN_pU#>3C@`+-C!W?}t(frI?pXe%%qr}OWa z9Tl8_TDYOB`i>voc|Rg>As5TDn8xi+3QmekGSP;?hdE?GqtSzza%ns*ELM>lC;Jv0 z6#Cl!Im5%cbW$9jK2p@kkQ$Sl3XRzlee{TKAotd!bbARICqO6h2RfjOa*XT@oTdxO z3>hOw0HG6u>E!SrcO7U1H{OfRg-|djMcpr=kR~-KT#&dK=EA^G5o1$1PF+l=*$4^Y z$&0E~wWg)PB^l{`NYdd(KZEX}8Hv9H`K&W_z< zqCWM%LmzkxDLA%wV$$ycbegcMh zD?Dw(OkF63AM%=eH>LGkQEgAcYAlEY><6M`dU93ecT?mm1OqYDxG3g}Fmrt2S~b5Z zw9x?6{=S@a@ai1QOLi3{ncdVeCH1xdtoRpRN-p`VFY!uu=16_jW=nc6cw_{TW~d+w z?l65Rm69nJZnzT3j}r7h;EnZ(6MMbYoJzY0?8Y#5M}|0TgVIZPDlCr=mlIQxEe@6a zyXT-gB&cbQ6j_VBqhv>gB!7W$uez(!e5J4tHyOypN`M7MO0$1pZowGUZ_4Z>F-PHr zg6+_IoU3#iBC^d&<}e%cDxDpJY=isl+XN}}gz@}DMCwsk zXx4QI?j9saf;$9v*8qbDcL?q>xN8U=e6Zl|?luH>clUw8oy&LDJ!hS}?*3K(cCW79 z-My>oeX5Qg)Tc3NWDEQBwc+=E>*vEgimTCW64%Ct+OeCjU1kV_72LBbru|L`&F4bT zNNPrx^f^vr_GC6O3`-iHO_l_$X|#U`9JvGa7qyqvozDByJU26`NMbqJk%|~+UoTnT za17rb7tm#q(FS8k`_ecpemn8vuc9Cy|L%I;W8DcCdH$*iGx5&#yO!}c`@wcuN`%FR9`AK`Fzo|nydAiT_L%_};dBG}&x@d&U`W9?`o z=K^u^w_L1Ri&Hok$1qs5ifru8oa(j0p@^~fs&=K!&#QTosav!rg?c0iSg)!?w=abX zS6mHPm`HnKxEr>IWj#>0SDrI?)fVMy;l!|76p*_1gWuKei~Pujz5nO~?^UEPi0ut} zb0yCIuE__7>9|ot&iWN*yiPcm%v}w2P*`kvU5lmWx2&nG$I8i=22W5ry!aHE?0m>k}KD8HNKe#vhmS zq4gptBuuSPQX}gA{LAO!+2XWiLYi%WW7zmT!VV5!?gKib%dkFPmg5Zf=g=@Lrm*@#_diiK(W$sEcy`GDB6^ zb^0TDu4rA2MYl3WT^iBl-9U_eT8CqjR}2_+=~owVcl=_MOdDh#r`8gZnI%4QE#gyZ z>vTj-H^J9ix6xEgV-WLw8R;MWVu0RECfi3C;>*Msm_1W3zRYhi``YH2ML!k5=7QGC z`Fm7bG!22fBz?B~b2qq1iXMDN56W0VyD0#JIG6hvyELDa?f`pALIE~VJ>XfiSfQAm zF{sZ2;in_XloXFwzN)F*xMjP_Kfn&()oUrYn#@|#0Tkm2%#TtsblOHyBBy>3DP2;f zq{)Ai`?IHeGM#MnUkOa^mQhK%EHk~#`jlF;!Q8)2L1In&#xMST{K_$0&A-eQpW`@- z*p}vE^Yw163Q<)vaT-s>FN!1dFhkEn^3g7wKjMew?uJ?}TNrsVv}MAJe3fw}eVv~f z4KC&bo6^kRcr%a3#C{7qWDNHaoK}@J6A?}gcsV!HZnGrVz6g|gcYR2_x|??Gc7me#y-#=6T~=NVoz1ZEvz2*1jmx)8)Eqs50zNcM z3ZaVo%}oQ#X7-pJKOZ0Vvph>ZBBrLxIu!-cds>A+J3T;p zAI@+?3ljm!hQ~TMw(D#|I^8LfLBj?4U_$5)#D{7V`1*VxGPuxr%XLN1_}+v;Q`VHC zP|YY-xo53Ptq8D{()C>M-ZP`_XLRHVr&p<4f>GB~TUV6-+nqnp>&6QN2(|FPwK!d+ zj9xzfPfgCY((A6$D9fWd?j$q%bv-V*n>|o>$i6ud%CaiuFc%pj`K?O(h$iKvVFA*K+E66RD+>WM;%M1>RbCUdUN~80y_q;-adlk`jRP zW9){%0_*rBW6u&sFV4`D)#*=2x?*Z}Z{0jdP+Db7UBD3*RBk=6p0>(MgeKrq*B&pV zf5?_d2l%A%g&$Lc7P0u)h8E#rj{_U{Ld9SeQWlxmE)HRkwK5Pii@&74@wA*iO_!V2 z90yNPS>?15$!sh|WtA^2*4vUL@Z}O877yGmtV5O9*R0S!yhb1tvSP8Jpw^MC{yrKh z2^zWDyU}FbUhG^u1ONt;t>k!}ELmB=e@w3S2Lu<=LL{^D*85zdeZ@i7zYA6B_5l`R z5*MMGBGI@v%8v3mziNh}y6kO^8ry$WkuD%L*0EgvaSHo_*VsIHbQJ%KKRhuX(@akHfk#RPB$M(&#OF{&32NRh`>=Vb0CTBo@kA^T+ zl#}o5D)ctNeu~((CAF_xcIkVLT02tb(=N`A40&+XnhF<`&`DB{YiakR0%Ei{k%iT8 zWTAnaIv)`NPs}UaNFIRvPgVb}Un(Sj3omLAWt7e@qPx5u3H6Nk(*!ZI&>eW+ z+soZc^b@1u14?~aCC9m{TlVm{dNF^L_rG^i*KjT4m!I<#5i$6dNphu-$7Fa(=6t%< zN0+-nBWS$d2`xsotfMl1hhDMZX!bZR--LGBI~e=J3xrTw19p z1>b|F_R?UkadiZbf&sf!t`bQ#!9q}hDLp-;>qGE7OuCBV^G_` zLUE-94HKLtE%*~;lJ%olxObR}xq{?9f?s>t=I zu&1M`fJC;Y9fFsZ$nZzh^PLLH!Ks1F0Z=c_sBR}-L1aFDbj>$dol83jcNOHqgUj#V zbso?DBpE|;GB{e*KeNiqf%kC9|9&47SBJ^pY7=NQUWjCjIc7oK*@FDCbjWniS5JmP z*;h3m-Iu((97?QbU$q!tyHsWdWbyVOXI@e%6arJ$dYzs>%Kz+B7gqG5J}un;1pQ#m z49IS^4ocddFGy_GQR)knRxU&oYV!azC$&lSHCjVc83mG3mhO#FB6et%$lh|WJB~kF zIPQH4MW94#+8HgWJN*6cFE}(c$$x51P(;r>M7F20O^$0>8pTbAl08Nc5Lq}zd(9in z5-NhyUm=)aR5V7zFq2U!#GaO%XzF-#Dz|Doa}!r?>A(o^_dtNG0Z(&kT?Co`B911XMkI9eNsjztFv2*ID8_#Y+`#g$)I$2crw#| zFd{$HLMLKBMU+d!K!Q?Z*tFkKn4pLMMm6+DZ=Gco$&=Ue9Mxs`x{p2!upy=wOuV2-6K=Fky)Pnx|)AldJehURHT37KK3O^odM`+{;5P1Hgc4gULR|ei7Q?GO5EOrmH7_37D`N>({sIN(ORN-`RPP#>c zSt;E{ClDh+kt|B61UwbtF1sbi+kARE80Fd?e~oMFXaT08Vaxd$3I;L8@R|uCyKpD- z1&kn{%R-p>A~*K-#fANA|FB&#PECI@MVPzQv>8hp%Hx01Ko_nCDptzOus%zi#6eSj zWv%ba%JN^6+`sD_mrZq(x^l}8VuL3;r;v}gqwzBJ%(w_2e~kV*7?tkbQ}Z}^QIlmz z3-z&zFYdtx_$%>5H#XFCG-GQVU61Kvey^R!jj-2!6&I{Veap*Z8<>cScGiRHzlxB$TUtfDXh(xxit*I^WzCW9GCuE z1~F+iat*xMnCu&Hy9BVJ8)pf-VGpHg=R9Ci9pL@#YQpAmP;E=v(PbDc72bBgK76t~ z`t%Glt7+IHW!+HBipzaTTIVw5JImRG3sg7SLb^kRKlRZH+bEy;nZn&uzoa*qVN@S% zUmr#!cBaG=5j{X(`5Kf-Nrdz5r>{jZvY%9?is{q=x>bVw7s1j*N=6()UMU?9l}xrjZDFqu9x$>i_Gk2 zJ{*q&YwvIl`tzdWh0+Gy$>+Ma0Rg_QAd8lHRo^nQy;&8!j5{~r_WnbL^d=kU?w4Ll zk8ECAFY9lkl@}#sv-aR#wJ`hLt`#?5&Yan)KDpwqE+-nIPpa8PiTAvk)Y#aN?gWwi zgP(eMRX>Kh!)FsbZ|1m}4C_9bw?nLthCMy5x>xSck3S2_6GrJ0u;#E7U@4`a__vlM z|KnJamhpwNZ4sUA>vPQHN~y8&rbKD(-SD^}L7z4^9%(1~c>wU0r;0XJWMl@*aE|{G zhZTUYXJ--|>JIL{Dg6i?KSML1cR${>Z(nZ2I^ikbY_I|e9+4Epx~F&bJEpX`x^u^n zE%(^i6*?_MEaW=HS1-s%<76K0sqq(+&4j&Lwp?GK3-jCjPavFHxv$n=61o)RU%a?e!yw~)=$V> zlqRezB*-b)XV75k@NgVaHEmb2PFyRG3K(L2f<0?RyvI&=d)Zb(;a)Y{(J)~*;6{JK zIFodFQ6N@2-g6U*R{vVyc5Q!fY6b`NTwl54x6UitS_;?10yf%h@0XGSdRt)a)FEl8 zC%G~YS9%2?dSs{LqtneA1eIjheSo>RKS#{zQdn82)J3Cy!B~g^(~9g)fHW#E?A}a~ z@j|EmqIB7bHZp1Z_R*(h{=B75pZ1ZH)JqOkr^CKJkLYD=#vfHuEE7`(yK9$&+rt;V z$@n0!jvh1YfXRHXn|k276s&TU(Re+H>xJw@^fFwz=bs`hJj0vX zW-xlj7z|j!QUC!WS=p^5^Y!4x9@6@Os2@2d#$-{7_&}Y}$}U%=6)PlWfw^Et0+z2d z*$0ycyn}c@l`>-N+DW$-@YXNs{%Bm5R)0cCCCfV*YnMymgh)4L@%~O}$x*8@!T+h; zbaxrx+J4;T_cWZuA6HQLfuTSvNi>`lk6Wn_9D5@XL3wsavz9@Mo7Wv+ zHu=++KrkY!UfJMvLp>d!f~e&${NBCM0pcR~GR1i+{}rJs{IAqGlObtsl8U(i`B**Y z%W>68weuVbN?#{q2}wQ3oym?!r$^*s*Mi`1TQC_18&Zm%yM1M!S1N}7#4JF z2(MmjD5m`f2VM^GXt)Zrx=q^aLT%R4*JN9%}BY-20 zY$Q)Og@wYx9sZL7a9?`KrRb~Oih#$}g28A`%~109>Ch%US;xi>YiBPQL1xXSI9yWPj1NkIb+Go46!_= z%PFv6P34Dj5N!EVXX#PB$@s~9sm;`Jw8fL_ccVw7%L3-uM83pYL&e;}$#FYYQ|P6+ z7N>W5uI@*NB09NeBt#F&f34^R`-dTmN|)9nEtnV6kvf9yH&%aWc-xG__Jwn_3-Gms zqmFk345eP&bj-<%`wF7a+ub&e|J@p@i}5A1(hp>~d1xHYL#E)4&eWx|SblJCQB{cEVs3KW31Ms{)b=hM6=(1}%4SDL!tbT3 z8H2u|KADSOO=M}`>Y4l#7c88orf;nbSR`HDSEQ&BahdUeH;#}21g2JUhagKUHY&#K~5l7#}6WvsKJC&l9Gj955$u1YP2zL{}5Ez8PceLpl= z47sJ(%%=2zELITLx5ZIJL|lja--q81DftHxar_iL7;)oyOrVy(xLt9`5L5rO&f~Ct zN_j;V z>B`QwVZ8k$P-!3C7pfi&Sn6F0GCtK?RP-jh)%y$wZmilVJYor|Hm9l?u#+x@7SN3Y zq$wuE#!>|^ABLcu{G0(x?Ljt>RU$mwkD*!K(aFH5s>9OA_BkCwMnM7X*}rMaD~IDe zauyxbKh5&KjI65((+OhZ&+AhqsMdOP0n_WeN0G&dLoY~lc9TZ_4R7Haw0p(6fd)?E zToD~mDga6&Lm?@Qe>xPhxx8VxE43p9br$CHza|Gs(hywLTHcTFn(w;okNLQy<7LN$ zmi@^4?T(h-tOio%C1qT=6o~eWDj`(5{uOl!4wY}9)9%EXQT4rJX)|I_a{fyGZ8e%H z|5vUDdlvBX$*X>rP3+#wW+=QYrvNs{b;i-az!;gmcy4M0*qP+nHB+*_wT8uKboxAp;GeMd z%LZcWba}>2>hlEtq%}8m2;pK9oKGrZl-l^Z^>eigQdshrig#9%8 zIbXuf%@O2wQ$VLw_GpIShhbiWGD*hkcus?v&(T5C)LM1c$kAXTh!pV&SGFJ>rQQpt zf=15@`EUt!e0rK9>XNm5`$&?fSsl7piFRC;jMu=8D(W6pyY`g_JSoAfHUe;?0%(;* zTL`VRwsw&$WAPBA?4sLPAcNBwWbgqRCvFgrXG!})Yz1rG$prOgZzhdqU8nD0mILFa zc$vGY;@(g_o&tW;41TYsm_V(#XllVN{CGOOXBhwhUYns!-43>7&EQ@5=OCS z_s(qn=j2{*5Nez)OAU9or-4xX-9lYv@wi8FTY!@(y6!ZEyCLj(^sUiQ>E0=x9tb?WIwTJeyv5WPBc>4uJ zT(+286u%gM7+HCKRr!~r!aZ0iZelHbX({a&FsLn=H(HMb5^y74sw3}S_6%*mtO>Pa zLmknq1pBZcJYY%Etk`m+>w686$Jb9lKM)9^cx(WFVpx?8sN5Q%W z@^L`04%Fi_y=V~;uIhm*>(}{+G!+@+=M-6<*v^#Pv2mdb2y+;X{3){Nn28|FQSC)k zg=a<##Y)V1+(usgHQGDvS)lia3%>^oF>7XhTUps)yo`>zSapRd3;`ykvga3d=&IrS zFW%_Vz>IP)rJj%=`<}T$L6oLZ$0suqQ8O$ZSAgkT-|G-jZZV8#UQUZ=ZB?!n59!k| z)uoQ`IX}T?DP>>bjF-Yk>m4LUz)rr$c(*yutv1oADLdbw+(G7zCkZXJtBsQz^mr~6 z>_ovuIjGeXyZ=#vcyLRQY{pTxaLv#9({z|D%%Cc%`FB`j$!IXSn6ytshpSx`8KY6m1C)0Xf~QhG?;s2iWM9&j7uDr zM&B~8o#!%w`dI!eW1$o1q2XeD_FFzINnyt(ody_sqNFKf!?7sDf)SpzEnB8F0V0uM z94_SW#7J?Zcs}E@=z@Okg3(Va4B|(hT_S1kF;@9<3vPqkyOm({JVe{DG%R^PihvOPfpsDKqT7&j!4 z5oT0$C^?CJmkcTaLQmTt?z7Y^rmh}p^}TybQzz08g2O!46%ll>)4KQ;dFnDjEG7?W z@C>{^;z6E+zR=Ba)rRzd8mke)#1=vk@;}WzcPPM757s{i{mJl&hm%Su$bx4KX?Xh5 z^22Nn?=uNYDlnky^3mXrt!K=F6#9ThfcQ4vrU;2+0h#bgSee64(i*eJY3M|^1Lvw7 zyKPpd(ZM&p4Cs1q)te3G_aB0xztUR8x{2y+m%GnJS7EzsQ4GZHFXed?^ui`oM!IRU z?msfWgtHb!@}gDxIXq2IMKt+8uzSsmgei^fIH5FM4IoG7vHlG;6?v$C7Uax~5tNlE zCJXm)Gn?yX7rfiWVeuL=l=*<*_}ZZfHP#>!e!0eZ6AuYJF#D$EXPEpNUT`((^P+Ok zu29@W+U0jd-Jf#B--pk!hTI=V3Eb{n>=V5`u!NpiHvcm0to?jK=AD%;5EBT<$iDIt2v8LIF4EUks$8&zT?`eGNy_rUT-zYa3 z%G&&qlCsA%>p8{!A~?BYF5+EMXqpieNnX+12YSAd5cYIIY7u74Wc9W!4-B|RGuQ8< zl`&|?;_yDHcdIqa>J~wl`3&?uk>nc%g9~O{eqa23kid+Mf4S6j_-is#)Z)0yw5#(W zc#kj(0R>wM){0ox6qWTEP0gs5?n{eQV|{B0Jxzr%AE}D`_Ro;<0>q{+We@FF5#Pu9 zc=?0z%+He>d?O>ds(`rcxefn|9>n*$q^+6K)lyNMoQB675kB1yJpA+L?{LvD(Pbf4 zR>rGA&1RwUDj?qzC;9W#gBxGwL{c}Mi4qqr=xjs1&#wGltF0Hen^+8<$Ixm@)1$ny%Avq}H?6CY)PZqVtBURdt{;P1iq`eoxe|9B)= z^@|M$UA;MXfCKA=P3HUgY$$5bWjz}+z$XSSn2_HBN8g;s13M;z>@`6k)cN8E8N}i9 z(4BhcF)hF6t6=)w2ZGc!9*OFJRERTgJr!VhLsNviwgnPz9!=}VP%{I+so^TLKvtLU)rj8s=A~s30FeMd_Nn~^2f!@OF zT6lMJk<3*ITF<^x&dU2$+r^5OQww&yO4tZ9$VvyJuJSidr;9INTPa;GHh&smgJm)7 zzklVj#JuzXNoO1czoOIuT#+>FA9dS_xbQlIjCR<<0;@b?&O&9a51fE&-_FOl<%e}W zI*WP&pc;390O3mLV!w(YV$oNslrTJkO>;Yg@l$^I1AKP!0e7RvkwI7c`{aE&zrp_=! z1q|-a;T4~~ZaON}|7(L#v+4(+zh#wA?djq2qq0_31 zj0|xlc;~?Wiw%T*bdQ;?cdRhwR*RS`|J3O|?xxD?7HVmf40st)dPsY8p5kM(zh_hk z9LfvWm98sE9d|!YwBi)j>BO9CT4ixB^lw{}1QHvF~gK1cQaw3*=oTb8_)hN{#}N6xbmvynSHHR z?xM`fH(zQ6f6AgA6Kzz<=%|t>4Z>2}kiVt&vgBn>D{b1@@sRGwIJRyNW9cah@^5lv zUhwev)EVWDkWkV|%!IURN0wJ`exMR&PYm~a2l_Qdv1%$Inix`$&dcTRc^$N198K(P zi!F!;@+t|ialj?iEft86+S(}orN+#+P77Lx`Jy2xerrQ6W4uH zXgF3Ih3$CDQi2G2EY>u_dWIYDwx1Z&|;74K76^sOD6 zdR@%T3%)VX%za=a3}FEEQi0^(3_}wVop||>H{6TnQT&2f-!lL$E~&zq2qL`N@rm7E zNvLvAtA;*JqT}Q}7neKV@_oPdW>`$7zxPza-xikn;bwXwBh^t=#L+pF4iOq>zQ{Dy zd_q;)E+k1A?00b%s?>rqF&f7d)!9*}A0(U!UwQPBqn68NY3?mwHMbR~!coOKz$<&W ztlbGh2-`k553O{cv;YZPkVblnR66TKPVVn$4a-UiM8Fi|`6BfzbvZ{KXLYfR)n zX9qi-kyjGdRbPPct2-7lj7|HeZU;nk+=Z;NWb22w*NwN&|H*?UGwc4Rpl-4h4Gwl5 z(gG^qJ3?z4uRre%W~>0|Q?Ze&?aDOk z@@t9FKfA(#*+^+(F(CV!Oav{ykUrq;=j5*5-Us!HjqcDqX!mr<6*K@3u5VCDtTXY} zYM2YsqKNlGTNIu~n2ttWi%qEi5(&OCvUsq!lyw}1zGX4-BV7#*k4)>yFx-onz4udW z{_P*Fs2_nr9&RP~)~@@R2E6-Xp_%^%C4a*fx$nUo{n-84q21X1 z-2Xa{JT24pYv_?+Z1jCaNKK;VL6LIXjpnUy9~Qz z@{TOG?ilrZ_fXV~nD7WIeHBUr?BnBLcp1y(8}tG5!)qxWBTBu2il!UpH@ccdFV{sP z8hC$_lf&?;?GSw*F3oW#)?+J4T}zg1U_>=*hve3L8Tf%qMHGI^3WXym@v@jWLQ z8_$KPKUg5PGctHrV*^CPA%5MT2@R`pU{|R5Nn;lXeiC<~&mpMvniq9r<|Yeclni zy=_vi(=aSqcQCZZi2C+kF>11XtiyHIxRQD9;QzGpABuFeKh;yHt9HNI@;iJw&ErtZS zy<=qG|2K*6+Px1bvY#res(2QBbTcd=wlo@|1nkbWAOo2#-q4Q?Av;!_SVbZyrw>j~ z6&9pbPH{SI?$`OBsx%Nw;0}Lr>MzYtO&P?aJ-qRiHf&=s_T9K&H7*7{2%{Z#Vsqzy8N?d{Z-0g?HuQ ztI}`#DIDF+)Fa3+OnU0C*$iiU20AHkDesiO(GBXHTYKBW^p98tksP#h?;r{wAI%@7 zH`0NZ>MUZRwWtW(J`6$)#aQnD&#L&JxBQoJM-G3wU(;rm$ddD}b4}Mj{SSKJembQy zq_&owG61s)mc@+PNM38L-IL?>s_PYXi6Tb;8cExTm~jyz`Xz`yf|qh5-G>&=fduORU-;dCko?O0u7pvgOLGz zWP6#V9?>#Oy=>svkHB79V8YL5HZsy_^+AVgoK=Bu!uC2!lCQWhS38wc0`xPP`Dvrh z0JmqF#80@H3;C#r%Quahr5z9Z8TS<%kIa-gu|Jf{{=W8JO_OXAl1TcQvcxjPUUB4ogsi9|yC zao^()uymV?%pA3kPy}TaIeS$u9opyNDyv4?H6`zO-hbb0C4~K;1UDMnCVif-@IH3- z5xzNShJucQtHJw}mWk@?>lf<1U0}WiROmJli#@obq)WKn(q{Xxf03JIW4MIK{+N3) ze7iARTUXl`8ogI5Way3fU*GWm>#amUV62p=!+X+I{Gmjx=z_=pisycLq4VeL_+aUD zg}!s9yrvJMYpgWiK+3=!E-fInZN}Uc5Vl>Ika&!w@j;=*eziHUOtUJzY*%_3g^=|* zDZH{`M(yC5)~iMom7x?@H+DxOh7I%-_0d?krR&&*;``14_Dv>kycprWuNVw;$Sm67 z4!%b?FqBQO*E2E=*2$0PKkMsnz?nR!KYAM*ytqpDWyBl=17F7Py#h%s!Jd6aV~04e zoawm+=}`Q8=^jpk|3xr)s>p+4a#U<=_$Oq^h?3*wm6d2?!8P0}m&?Xp8Wh8CGXqfs zW7r?Q4ND$)Uhc}h@7ffUlzk*hsm0ErTkCCjliL}epsrNXIvmISG_9noZL^PNCM(`;~U$QNz=?%vw#)V%MGRg@3^4Qzxajz+DeHtIA=+oWmEbebELv*x5*_?|zB) zuo2YQBAr75^6gG!tgjjD3;pS`G$In`jE4&D6^RgCCWiGm-k5AH9mJu9LzT01EUQu3 zmj@=lEUr(HDR&wt#6~r>t@av@Pmhv*0xdZjBZS3fN-BM3C2ZVWYEFhoTsB8Pq5=d~ zn+9aIyiz{1_=h6P$Yc8I@_@R~$xmjY`yAPrGf(4Dp^=}Qf;^q`uNfp9m%F}Vv z7y{6stZ|Ri+6E1&oTVpKGpkDT=M?1!xWSqWX4@49?YA1?;49|?j@7nMyDN;jal7T3 zi|kDzEuYpSqvzm#yib+AyQ>##_rKvLwgqsMTDJK4qMuJ<$bXwUeh02@vI%H5`pN-; zz<=LpdDpZ$nH3dQl|%(J`NGRk<)e)J>a4EO@M+%SK>}Tyf~&?s*d+EZ;(I4CjO*3D zk>JludZ=8i*n$J^uxGZNgnjlN`(h=>-*WdqzV@Dj&$SjBWQ=Oyxcb!-P2xhiI%o#t&JL>5{N%fMj~fsyz{-Qsmo%bC%cB$_^Jo3? zIN~UH_+)$`I(A(mG&Jb!)};%v5A_uTegjTjlK?DAH{n%&y{-93ZBm!y^Rx_*FDhHEqkA!ozS2IfKA_-OFrA@!57y- zau$cr8>9=5OGO^yfOeBt-p@5YCI{5qkTc=`JA|D*l(sd&_X`MlxB#5lh)E)%f9!tM z#n$v=g`*eVt~AJhrqqLBA%^t*bEJ}1nG z|3j%L+C}XCECTG{gW|;vZINI@sp<3L!|ygq36xHdKvg8uMsvznG)GlBtOO;Be*(DO z$%(2tjx;*}7@pWgKc>}`-vVjpRslar+?Y|qA9k}U$C1ShdNtkx^7M(aQWTIP&rx%d zd2Ee)eIpAb@2%*KJo*<>{!I+4^<3fH@P+wva-(w;p`#uqm#S@+4E)*js!c={q8)}m zz>=}ryf?&rKZBUy#V`NC-6nBwTwJZ^2Aqj7fp1qXV{R}- zL|X9J+Bb=HdIc|s_Cn*oLm(Whg4?&`^uD~OuSEe{@P>x$#Ig5%;j(@hnY|w$@wN#T z?v1K1HOXi}h10Z1ni;X(E5IjE1k;*%&4VSE6(LzB5?(LcITuQVkPl;Ym?nhlx$ho; z1aE7&eJE~F8Q8(n_J(JRP4^`{fK)#fQtP`v@r z#1Rbc0*(-YpU3Gp50J@`o=CrgYmEE$xa~iBnW>|l6UE+@%&G~sZG1a*efn%LF6^wQ z%0InLIkh?&VF0TkJvRF#p#HaQ|1~hLvmlfIS$JaWy9dFmu!0AdJi_Ek1lT=lNdE)r z*OJ5yBRGvLmDo+SbKJe4tF%KwW}hcc^SY0VlK9T5o8J{NBJh;L*7VgxpT8Cr8NS3( zZb>$Vwn_8D1t{OIpJ`WOE%{J%Na{XWJmHS;B+6sm%-KG5a{NlnxU+1Dmp)E?en|l1 zWTjvE$0on7V-WajtvhyQ$lbujl>JTLQWRdJ?Cp>Nt{k+=e|1NB?rdtIx;V@{Qv<)# zPO6^)=lLry(gOYu;vM(HBn*cJS9LGp7merpa!LC`?!!Rd>2xv!AMQX|^pv}1vyxgx zw%45?3#2bFK0R`QYD(qUF9cITAkvJW_OXLzq(kib(Y5n432$9PQL?4>w&toLeC7(F z<3uzLcuAy(ZvoByc-O9+d5yu?CaPEq3t?oPrM4wQP)n;)9{R+@#Ay7BI3sY6%Lk}z z^trUDX+vOgI$roZhB5m$d&{}d%E`!oYZH=iWWOT8luD=zfE-%N323)B6PtSSzhX43sekMYf!FEq zlASBmbMUe`3j*X(1m9)aWxFCT-9B+DwPrRdf#%}lI)Q4MUq@)Y zQUfM$XmzBdr74r2cPiHdVOR%SI-y(Sd#ta>k(;|7r633te9H(-Y3qaicKpUCvp+gq zkInk@wr&vn<4Sm*eM5f!tF7dy!B;yYQA^4E~RuoainW2>&{1V1=c64?B7#pv;YCsqj zXt~ZXK!p3~ArN(RZ;#nONValI{x@k4`^lBkqVEPx>Zx00CDXb5{8Wo;QKsqZczSI9h8^7>!Yhd;8Atzja$)@)dS!fp zaT#(*Gs`vJr}=t*fbI0~wt3(^PMPMk(nbT21+uyM+3hV2yN5>~w2jHIojpk&@KLdj zL1x*{Rf?oaE9VjPitQxDROl17|BeQT5Di3b_KMoN;tA>zUc`l%9>vkZR<(^uv|DDb zqbsd*`2779Axg5A>;Hh@#hWSxrp~nmGyU1K=pA9io8yTt>C}RxHfu>beyvZz z&4jvQrw7!XUm=mp;ors83F1sTD6+>Ep8@O649!+1Sj|>q-%^)_mnc$G(CqCLoAp+@ zZ@!EdD`XtYxazSxF^k&5!85bcjsvw0ra@7WF*()J#{ND_ml)rO(?>7EGBjx#S!?V> z7>dtmYtJTbn_j;0G{n}NMOk>Y9y{KA#|74N%9t+Qi!gA9?&z^>{}ntuOWfr812Kg< zfh%Q;&eJILWA{?p4&sqmCMEMqj@iczTElMbF%wkT+3fZe@OJb6#$Nq<6`)?#ig@}4 z#zvpx@o1~u_J8ftr}NwNEY}4MGx`L3hH`E>SA$f%GuXWpCg zlGO$@#}?b6F84S(VZ%Mt2SjSbyiwB`iCx=^j=SNi9zdG^zS01QYf4~Mq490suZ%u;zyby8!$5pa{>*;FCKu|RyZ)$!$ zavY;#T8khORIWbD#Tkfl?dk&c_q}1Aths8&p2Wr7o`SyB0Z9Wi@a3Q6&!ewHM89CA zPYX<{?N--)-^(=R0f!hZd?lp&`gQ*ApY=1Rzh#I^vi;2_D&HNHa>dE~! z0&^uY#@E91VZ&yMy&wIENF7W#y4KLy%zbv^T5-3AKVd%QwzV;{FQYTZ-qo84=C#fNEe7kwh@UR_qymuz~BiB0GE{Qe$!`y>a1)+?D zbUesGRRk4P@q-d?8}bM@ZO&l#I+A0ZI*NM_*#Vgpk{Q9*0rMrbahq*@5H_dc%o14N4bDj!ereYO5Ar#6lgtq&5B9sQ5*94Vx`g zKg9Yf{yNy;of__bD?Y~s z@-Q+JOlb{=#Cn*6!!^a;q4`kLqsv}2-$z87SNTCD^7a5vkqViy%~IKavU!)Vjy1r5 zC`F837TztJVKUzg1d6^7YNXlqk2bz=Dy`;Vlc69DB+Dh(3h|e@(&lazhav>EWcd%@ zH=?*?FQHw~;kSX@zRj$Q133N3Lc-dQlr)?W5!iAMl^1H{S)Rvx)jxswPmGv@+)M+k z$sJDqck`zXOWXfe<##RUf(zJnLK%-4-KGt#EDpWxdMJsvrY#YX3Pf;*s%) zIk5>Fwx3b&a&uA<#nlQp*TwjuEwOXcDjW&F3}0VY#Ka_^Zi~)n+b|dr#|~os_I+^m z_Cd)nArIzH&Qpck^T@9J)vn4ipr&ZqrS6Xe_E3EbFP#2tx5a19EKUQ7GTl9VQ5O9EeUC2-KF)N z1`9rMA}E~c%MU+Cg8*k`HhA{n28^5fJPPf-G5gWJoMB~h!sI|+L(_MKN90wuoG?-9 z%jeftd1n6C>Y#6xT1w+LDi zZ(w7U)kTVD2rMM%_@Q4bx)PGFJ*}q>u3L!v$IU?RM_7u3~qa4v@he!6|`>{gKSCrc}bC^{TW!%X9yg* zl4(r)#AF38SsqJ6bA0&GJ7^g!ljwY$Ke`g5Cq0H#`^9)?a(h@83jWx`hWM+@Ud1X$ z;Sa5H2xL(PDEuL%a2AGaM%p_%q9E!xo}alIzYl%@PPPR|%F^(sK=_`~WL@D8bIPLz z%2fDMQ8*&`h{FE--apZ6#3ZyC{w)5SJQ6j$osn=c3=7|T8IKH|ibd`JCA>MVVVeo3L8B*}P|*wA2%dN-`p+IipL`iT#?6M4vkmsH{sEJJi^C6Z zPKK{jA;dV?$KS)Sm5!Et+@c~%ebK{;(yfrI(m6T#uy$~Qbw&oheC`E|{`o$1B~2!C z6;)WbHT%w*P|g+Y8}UrgA)BkOqQtSVbA)%GvnK1RZk0~ef^HR)&p{$zbvFA-a7(P0 zxiuz7QNJFuC6>e7vFy*6sNe?Sqn$nCAk^H%4OgkYQMzHyDeSe~5Njsnjml zz{^jr!=TRnk(7}I&jzhAf5(2f`T4-JY98L4{uo~QU=<0n0FC=k#OVQJ;1XB^g$aq6 zHMSMLSr>&zKm0G|jvJ2ji*xVzFKc|;!wc3ue#DZ04?s><5~j|`ho6%LHg3=wdh?`xZJ0{lMQCnd zGNm;!*Usg}Q%IRoj*d{q_cxx~wZF*c054@J?U63T@w4&}_1d}Kz7(q7Y>!+ywDHP; zqc8(I*DgnveFL}@9><^S4#2{xDq6Phj`l4=Kr2|pT{w!hyHBHei$*xUbuA8@jwY@L zqg$_Ds2k)(wpEBrVSBLQ&?R*5*&AMVWQ-gXqb2TO4Epx#flFI{$C97dp-z1Zto-H^ zoV}+t`g3*0iHuMt{&#cG@leMT9Y6Hzo!K^u4HU4llFsAXk7puy;8S>Y#&`rdSt5gi zjBA}nnDpYCh&|g4AAYw4?VHSkM{YcR{f%aTO}e02O+RfFD=QAauUdnkmOWA5F$Lc* zT#RFN>L7pp63mM|h912KpnCpcEM0p6Oh zV(pGJbnMd=zAlVn-4Y|V;jiuK=sB<}E*@Kn9~b|Ln)Msu_pd*~$wtl5vvUVHTW~Nh zVn%l+q@`A6;t1YqYQNE<%ixb?&)DCbq6yjttv+aI-jpRckfcZ*gBYv~O7p z4nq4;$FO$iDKu-@2q*tuhyAB6DcbMavnT3R^H#JU9kv(i4@RMTFQI+P8KnJ~vy3}% z34KWW(OZ|3_Sd3reQT`x=3|84E41GX&V_kOuooD}KM{&jQ57|6hN5n;GcvOa(V$)k zJ`O*Em)Ebtgb_VZ-Gye07xrVr`b{_z77I%UKQwRGgY^x8GbeOWr#4{65ujGE1y-+E zjoJ;{piwmkELgG|b?R8*r!PK2(-s}kqJa%o{kaRxI`_oA)hQrSwzJO9q{-qU#5jkd z*L}@lTc}MuDy4&@5W`rb-D=~G&O`KT#ngqc7TQm~fbTzn0vj7vrL0o{;s{15!Fcok{CA(nIOINhijdUWmx7n-dL?Q5`+n*zi- zx*@1mT@Y<(R%?X@b%XFl?0zoD{EcTGYK;(YTO@=X!=`oXaU}8*@|?ZUs8d&TZCYR9 zPu%|P*myn@wftpEk_@0(Hko^1U3)rUCSybHS5vcxZIwxee2p=c4} zthV#mSfyjZsCDLyFUdNdd39s=WlMxGAJgr##6;Nj| z=DqL)>iF7oOJ@#hHfTlu|2lTA=s_O57tQPR1b`I9GtSOc+g&r-fY>^dx5=)maMO0yJsMOLyYs z?u|HVUk$yxwS*HD31VrHczPF>?KqG21Ny-;awk@w&qu2|-Z-#&B@QQLqe_i?NEcmE z$HPHQ0IfL*%{+e!EB;!IeP=Jh#=AP&QHE+)CkPgKH*Yd+j2p)HH-jhFK%;VAldBh6 zAuu=uRXN5xaDtw2&>MdC`KT3I7Xi)%oal-kjLKD}vo1`*z76ZJVcQ`t-dLkrXiIeO z(H=Fatc?rXjb+Q1!J>XG>|Oa2K0S93oqF`8HH|HzkMC3C!HJ7;u=ET>i>{Pi>(?Ov z=Bh8{_H-(41P1)Ct}^6WQ4x@G`XK(?coYo=_QkzkE~+lJIf>Z#`zj<>ZH0cV>!C32 z0=8^ePnqQuk_+uovt?WK=+GLzR04@2N46*DaoiGqnwNAOEB@S%kT!i#KbT5IZb8mZ z4Z}*t)ow#snd1;kMpE=CtXZ`hN6uV=lXnn0QVwcSKNy9#(BI{B!c|}Ccp(Y&d$|gH zWIWb`Zlxd!5A|MuVRWUAp@IU-wIoqEl2(C0)N})m?b?Y$5!`p>UJtHA0_bdQDTeq4 z!#D5|9L{NlzU|%7f6#agONqpo&<3bE;7#t~wMARz5S7V^vAaDs{qk=jVjzAwl#7uA z$E(T~Slc16h6O%)el+~*55UnZN6eV_8tv)_V%qqJuzTt22&r2WA1+vj!DFAtqYVJ3 zds^b$j*aN!5rW|6kC6%1!NX(tA}k3GK|V;`yBM81w#1B!diOAg8`kQOVK&+Vsz=|4!I=DjdGophC=9Mh%7 zb1O)OFlB+Q^l8Q8N@e$nF`h`-rlf<4Xq(heOzM)kQnF|d&4?f91Aj*gBy%f`D5la= zQef*=6@wm{g3}ww8Qwnj*tU2&`gNX*ohMUaXHOhEzX{W3EJ0j4 z1%DB1srXBd+KlNlenf04;h95ACFYky?Rp{=ohkI?AzE))ow-}^M{q=f-hVnT)1OU! z)yty?6%M~ttC98({P_&VjOvZ&KHUlz(thgce`DOR(OCKSMfwu3L6Xq^RMP&)5m>k- z4BixiHy4xfqr5%KinVvE>_y?Ac+XQXpkN0Z5)CF0HKLMA%Wwg(0+V;3RelT zk(v;XBwEg>z7sl8eJK6Nd&0(oZdS9iGLV@e{#w$w>R<;SA78}N7Yx_$kP*EN)BE(n zl+TW$iceJvP-`(^_#iA?7s36;c8EE?4pXK)gg(RO;cygJN4ZLzk&(h}WyHn2OyW)) zQfbyt-2;A|^Bfj#K8PGz1jwpsT6{RBJvIX;qcXXQ!c{OMVcpbyBl%wqk1Lv&7}NfO zoxsEg`XWGRKed?lZCnE}aP%aEuUmug%bBpsPsPX2K8HOKREiK*>@N0eGCqHK26mo} zfhB1_nY5oKw9l=C@d<=CSC7&!pTaxSCt^^)3HWAp3~Ap1JARpg{#{BJQoGm2?nEW-qTRvG!oChlZ# zwJn|alWSp*D&AGu+sVkY;P&1&v7nC@YdQi>rFCK|$F3}-#$QGvw;Ed5<>0rOFXH=^$5@7#uUaFA0{RCN zp2e1P1>Ey4tH8yRy^6vg9T(W3B0i#U=SIsakVyqqbO{%+ZTB`jHtv1|d(p9R3SrB4 zsoc(K>lK2}cWuMOJ}qEH_@>3~#7j^2z~tw5z}3G7EK}EG+=$Nja`8drSyT4Rh{62N zrea8+{`hUrMfgzJ^7f3!F?rIHc<#l2BiF?X`4@NMvC)IEZ2KwL&CfWC1RV*cPma#djVe`J%BA-ahyMI41Q#u zLp@y(xo0arn)j_LVg2vBsL|�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�tc6FAH<0;etfE-ffv6v%!i!#oD0Lu9LF2;{#VODzmbM| zIEL49ia9!K4AW_2EI#f2^n(g?ey+;_Ef>k2Sz|2j%&EASj;uExt|fg<72|_%ry7g@ zm}|U0_%Jh}&xn>Pnbm4;bG}nQ4swe2~HE17Y$RKW}FFN31tmiaWHo z@%_w2#;l(|GMW{E(W&n=Lp}6&b-mG{B#d`{J*d(&lRj7b{KQ*6uiau++{Xiq-H}cDg z#+31+jh3ZF-eB|_K1sDDahH!6{hJ5VuevdI(hOteiY3O#fe$K}_kLXLdIIOKsUIr8 zS({HNCTN+^a#*xkA zRouIt8D-3zHO(0ETx;dd+i{q2I7(oy8Z#a(O}`w*wEdD^j4^d|Z3Q!N#TkX<;=v!4 zyGq~hj4P_?m9|+0CHv9d(J|3(&#Vcc=I?~ukk5Q{%xWj% zjag$}P;myn`+vr~In#~j?yIicbGMlN=DOJfmAlK+9~-~^`h)S}qYacBfiD@mRraHd zS>sIEd2H}FW67VZjNhkyW^@$VD)cedA2FW}y0~Vx!MQ%4{p@G_Fnf;i&8tr;Jdgdj zRMB{ z&up3!X#)^zq%pQJjJp4qG_DChv)gDTw6}f5IAeA3zl`j!=o!D*6ufPtpH=R67H%`~ z@qB@n4UYtPBEZ`-Yi1vRYW*yQXXReAF6>`9O}Wvkzj5S>iE;6G=DXNq#z{p>oU!tk z7ZuEd℘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

tLk7I{@1Nsm9UE%u^rWd<``Gk zn&6F5ZR!L;N79_XSDh)<39J9AOC-Aa4JUk7dlJJb{!_ES3%J)qg_oTCGpSKTYAfs< z8l}a>_(YdCBSe1(7m#vRhcd2L%RF? z^km`ekpdgj+3tDYv$3I9xp^Y}Mj_ba#;988IeZ$;9nMrufA1yf#hUqllb{NPOYY-) zQEl;MN?%vp<1%dU81}Lz(6vwKFmjfgg^z?4)Md zCUXQx_8Q^Cpt|*<_c=#2{C~FiVU6afRo5Ep+SFwBMHC?Te-@wrN;baM`l}&iOL=Mp zYmk|E&uII>?eSdgg$NO|!DloyG$yM>CW1Nb9}Dh_Xc1s<9;)ZHejYCe2ZtczOoog- z+yAqn-z0WnWb)ncAPQZ>GLL`tdsqDY#tiW)?bg)Vda}u3z1-E?D^iv_QrcKt6>)p7 zly1FG!p5cy6UJl%tja=Lxcc|I{`+h9Gy4w)!ocs7_5Tg+e|$8!^4sK?_g;;wc6xbD z*0~$o0EXLu%I#O^Y!$%&Y5ZR=^#47(nuRv?zGtU>*`BY|i_Xm@wcZ^2wmeq$JvnUx zGPt-aB7V-1RonArz(;m%2uuXkRSNvye|0sBY@%uE2xQo^OP!prwlk>8{;Qs;zYw%m z`GNj)}tw2Y|&gQzm>TdVf*E3NKhe>*M z!!7By9lq~AgQ!*?W;1_~JOckLkZI0<5pTHo(N7^C;Z3);L=u8gzxF@A@&j+GY(g=~ zak^in&Z82loaldD^WU)G|Nr#A4ikb#-^6l)Uelh#=za*o((MX_Luc}R^FqL7gLP1C zh8^GkXgz@8@}p=dWQ4I3|AP{~rmQhS$OeAF#>VF9kc~T7CLO=Pga>usm|b^uwnT~9 z>%s2xmoLlrMOm^K>(ai}x-#jEs!#MS^q=YeBX6Rx%1mw#SPHJH`CL~6EcZ$B1QYNm zv^D=u6mHS3*v6N+NXAq67N`VL{0JeRohVL&56mo{pUN|1{M)4JY9)%I&vL135|w@t zObosb2x;zFsj1?&-|+1mzfi;&b{4f3G%eHI zO1_Ie$B3>f`-QO+{ed^t1DzI!CK@?Br~aIDI0I`GA=-~E+2V*=bh8Wfy)4i;iAubf z)vP|j6~6n+>)wv?U%BQ~Nzk1~W(N@MEc#e8wYG2vfh}>M7GVuTpEz0hMolx{+4LW) zCbdhooj~YF1_Hd3cU~WX0ZSX{7Y+>bFEU=cnjh>Ex+F(zon^(HjmC%AMY#^-sfOu- zBfN42>ZZz)6Xxz6QA{BbhL66%Vqr@9k0zODz<25B=`sb?#~Uw9gt1PgE6!`)+mH4? zS_5y0ZANYwiB5ufX)hQK;ad#1Oa{m@ga!ZvxA2dXIU=Z-n1yOn6x!o_Ne4@{rj`)e zs%tBaww1hi+=|xEcV})N9I4d~dy*d^)XAJ9>U6)mhX<*E0AZe3RL@83nEjeh_mOf_ zKd&SvW{i#}5Hu%JirA{$bs?EKlz^VrEtzgkp5fu&Qv|f>?F&bG**a8iIIkyPSwp#h|c@A;`hj9qQZeR!$d|kKUeMDCl{8bac90A<2TLKz`+oY{F>~U za%HV?Jd#yW=0BG5(ZgjLg7J6LDBT10W#N~A;opEy>EWC!;u6o;VW+orX+$uT2;VnU z0rusdU;W?VA+JPV)zZ&f$CZpnZj>6{4)`#fWor{Ul;de%_qoTKtxQa^tP}O`9#6Mu zcOyu-c<-i6UTWIH>%I!sW2o5Uj|q)qi+{4)buaK*A5DS&g}*g|WDFPYl&|nd8rNz{ zwmJFMp*%$Tfft}N%7?#m=;BaZ#&5XhhUCQD6)QH>YfndVOO4t>0D|DDWWoL`rKE`+ z^i)%~98iw;Pi$T*wn>CONx+Mh!$V3cj824wRaCh@F%(aAdp4CP&it`j%sl@sgWUm) zvr#U55YnFMjCMD(rbO<&(LkQgONGbAIY8RzzJYIZUH(*Dzn5|AhB|2)vBF>-MCqn9 zV}X?6N{L}4N;JTTAGPkBrZBrl2!#F?)AXAVjP-l9hZ}Uf6uK?O4t#1_S((NET>K(^y5@?4)7%dWLbgr-=2SBb|!~!=D_ZhaM(VyHx=}o4q+eD)oh4MKz*X(kK-#9egkg%K`;z_Di~S z{vIZAXj2QAl>-{4n}L@VQ6osU8248zhLs@|lCr#F=uXIv-HQ?C-&U+Y-2Pa{S{flE zq4`XVFeNG64FdiJOc@bc#t+XPM-bBHI>Rc{9(5=W$Ru48BM!dk5Mu$bMxdc@-?*A< zk*}-e(B8(%CoCQEkm)jh&fRh$Qw;ZnBRAALCAos+R4!A%+al4;pC1vyr$Wg>j%uvUPO%{Ruj*GP`^PEXfCMcEv1A&<0@vm}xBt4R;) z+7K7&Sh#)?S8>jG7eVIl>j-o7e#zaNXiK7nw(s}eK0YeSQk@WZF8A0^F&%yhBT`wL zbDZEW>Lth;8SoCar|{~Dmn;3)(406l;Z{~&^^&dJye8@SlpMh$BJS-L&A9hx^MO{s zR*vBDxm9H_{OId5UI6M?9E@l1jNa6WJ2f%)=4UEjb8hnnW<_YBx9)n=s)%&Zy0$%3 zOv5IAbJU-=qv%uH#_|2APq3}4eSrITZ~mN8$0RkpM@Ddf+@&*o*!X9jb^rsJj{kDY zm1+I&ISv(Kb9^%n^T~Cd3Jtu07{M0Plm_aO%hp-P`#b$s7ey%-a*GYp*X6yEM_a+X z72eV*<0p@mz{c4yZL$JX@sh<20cC=+E3KQ#BH>U+vk>t)(Cd6o+@DKdJFT9HdQqu2KCCF^gnrO)z{=2iuk&Eq2(kxr^|&3iIgH%PExlH;vprDpPts-pxJUSu_=?tL?+ zD3L4V%YQyC(Zk+JCdCt6X|@7b(0jYN5rkLCS3E_j@dgocZvZADKB*2@5I^b;sZrVItK9m#R4cXOC=S)O`Ds*i+2|2Z(z=mRi=BcrR}3%W8-b=U;EJ$FYo9CFl)bWCiPV))oWbVwp>IrFAfL+5PM-N)*rwOUGa$FYmtZK-K2X z&k1h|`uPnSNJxP0_a9^uD_d|VYcdDDwxtD|u`YFe#!vL@?5f7!s|N_BP^?DRh(AT+g*-)S__N=^$Pa7SkYSCRm9U+#VYU3tgyI0)^KAroXg*#MJq7 z#eYwTCVgw5z9W{V zZZPWK)e9w8TZIs9`(A))KmZO)3y=HnOp8$#k4PUq0*P_OkOr?3;I8A$ilCA?2dHuy zxg<%GRi|uab{lGlhRmiYb(LK^$KJOdMCpb}buNz#U$LM-y)SgIdx1Ac=KSFGYF1CS zfZ~_%k%AX+gF3Rx@6c!zH!dVnvgPOgJMm_5Id3RdAp@5pN7=j4YLp0EY2xfup{l8! z4Gt1pBl0?f@zl9ioG%t&mam7ARd@!Nl;*#FovWbNcuS}({j9T~xV19sdcs-BwBdg& zU#g&BE>inIR1~S4gzPSCe24}=n>+B#V$sWcqTlw}IhF@e!{0OQAs2zCSa_l&y&?Qqk(;pdu$L>7sUS4un1CHFH<7-9#cpPtLJz)YF3y@p?N7{HK#1#$=PzL z|5L``Q}sXL4KZX(Gndt!BZkTb!m~K^jo+sf{ea_{qUh~d3yi79=m(ihK8+cbdJ7eA z{ta{tz+=_~#*HI9B~FKnhWOlI*+~iNeYBdI_(1W3?_zoT*wWE#M%pZ+WkYF`_sZOX zZF{M%_q|g6{>S}3pG3{~SJUJABt6v&@8?>c7?s2@a)RZYju*4SR2Jj#r-u`Fnzuk1 zT;p?%5SOwnOrUa@dqIHTX|Lz(M1*R|4o{j_z2U2Hz5NJDz3%|&?Y<>r$q}odl4avk zpyBwJ%GW(9=j&T*w4r-1lthkKYs_tLIj1GaEE&A9x;+N>CR)1^ehdCWw*L@!1vvf{IKW|_&xuxnMc zrfXMnK~gcye7jhu8M|r5Xm(OD(faB5LF~sFx2dy@mhXpO(3#uT33l_adgJv9PVK07 z`jh?pfU%U|mGD8oOcwol$T4!KQb15%QsD_#ByG1Kp_*qrY?0jq(|bAz(hK=gORaXr(5{f@yO1~=f zl%2D?iFw<@-&pM0h(Al{i8-naJ}ugg67?iQ^Yzucs|VShmR%zX;((V$D*iEYJcwGk z+RrzRljEmYi02yF>z+{qFG7JaN)xNi*@OFcUwv(uuqv+E)-bBwj?s!F<^ zQe!K1;utKi{s~`aBh?CvkBEGL9Qgl_sdoyjELysSJ006rC*84acWm3Xo$PdM+qP|Y zY&+S(j*X6!Kj(h;{P%laFSV*_)|xd|)fn|R^c&+&dR_r9&l{SjAS#CPbmD2H4Wv~M zBuNH2ftr+=&-4IwDgnA_&KkA1rr91XFIu-|tqz}3ZoF1a-+$XQR;Si1O97^xNlfC} zW&doos&d*t$uXUuT~E6;^~>3K{^7f9c$8fKx{$h6wbJUi7(0OU3(Do{*D5gE+|*pc zy{}tG?^KWO;r%V^fe+;75M(DF!SHq=zmk zXI7FI%FWxkB2ysNq(3+M%j*^3Eez>D;M{f8-_{somAj9) zDu1j*H%99geFPBKwva3jxaajp59-yPX8ou;(if$Ki59IcZhq>1Q_ zJMk$B06JtlWyt}*%(aItU)3rP7Xh!Pm9m1V4%!;$d-5u5J91X$5oHn>mCrx9+I_bQ zD_GsV%uCB^iMo~fZZFWP{ZsH;g_=d{UMwqb_?bi8D2)A-!L3D>&UqAzaqc!sWw6p6 zt1E;1ilh44(PkM&iCpTNE-x+$tIL&(@#Ev;Uq+j5UuUT_MlrIs&qyCJxkemDUL*E$ zrfbmLH|g*q0eXkxq6(9klJLiV|jNW@1-*U z`m5DBf=g{s3VGVDt?%3H(MYx21v5*c;~NbKhPzkL9~W=>3kIK$H7UL=SV{`K^mEid zwa3G_yAFIb-#LnQT00g=GHmX2)ARcP!4R$(A+-6kW5`j#B;GHu?@xJ%E9EA|!#Zu^ z_Vk+QA{{{w&UJ4Gq$;ixLkw5{{`%UB=P7P*TP$=Tp{)pnDY~>{8HS$~x^i~s!r7adLlncKrn@UthP@5R0(UsV=+17KNb*YP#2 z)b_j^FS{|Dr}-0uaQlz23A48)t@ zBJabxb0h~`Rja<=b<1P1dc7$;-z0PtLnHRzG9sSX+J{*O>&*H>@mmXk8N-|n*^VzU zA|o(LMG=bU2M9Y*wl}QGRjVD~$Sz^RFY&sZf6Uqn*jCO@;3B?p^eVUz0?_SpI&o{G zPGbe#*Br=SFYhls?D7O+*gDk>uK5yyGpuI1nR2 z;<93fl0DTTZ1w+OoBje~f-j;>iYd7mk&hI<{@Q@;C^a&gxr2(Cn`1r>Qu0|Gfa&E< zRA}eUAJ^!NeD#GC7+IZg=wbd49e1d>t~Hy^*^qPTGh_3!MNE|&=6a>_OI=IynS$;1^~HOShs*Z* zeWy-Fq5(Sd$tFfCIjRE)vj7R$bOkc(MZ0Y*S==tiJ0TrkO_-Rg4LFEs!4Wmu zOmcpBY3h6@2jhEU_^7ou_?djjgn!l089PBK(H5maI`uI0*R^wKfn1Fr55w;`E44`T z=*IO>h)nIa;KN{Wky5}@!kEi$F<`kp_RrlLp=*A$NPS00B5QI^MkLP!YX{bv_I&Ib z-6n!?_kX`FP8HwkSP=J#FX6OYg$xZ*b#!%SUrs+H&Yp4i(3urf@AU8m5@mOquo^R6 zZCRZ-@l+lgR@f>$@g1B9@!1Lc9%O~%oBZ%|L-LIAPmNbkPl*;`-id&V@52`!U1gYW zpymeCDV__?c_w@Lb|)A?irpHRs)ggCci8erNO z<8v!qdj^AVP!&p~~d71*Bd=S(9c{g7(1@p|B zn(5a!H(*QSpKORA5J>fK^WHCm5fyskq0%qBNPtT1qrGbgh*hrjF?a-X#_Bh_YAd z;qT~|Vr>hsGJbDb2gn`-q1)bQyZrQDDnE2><)+HKPhQw>ybnlio*wyX`xUHkYFdR- zc6w#Hxq$Tv+--~};5KG$_ak)&`?aXut-*Cz5*WaY%ilz%Q0|Jb2#_qksDx ziNZ+qL6#QQCYH_%@P(xQxl`4Sb|Gd zQ2b_iSAR~+{2`d_cVoT?7|Xsf@v6;=^g?79gYyGmNQkGWQHRsQpL})XuW<9y`Kud_ zzw2mzo}x~Y%;fQqy?<-{+ZPRMFc!EB8Y7a|Nf+xkb1&w;Cs z>odxI76-WRWe4&_28T!{lI>iV9zs`k^lj8Cb02Gt>HIW-2D{}7>e^ijDNA;f3Y$1j z%UiTkmHrpNjP?ES(G_-a{ex`7K1yosHO^T@T$yvN{SaH>eqeH0R*_)`SC$bklH)>H z#@+aKA$*uBIC7iwRI(L^<=f*$!C3x2WF7n^2Tf+0SFetUa~^dMf5SR}MWBW`!UE^&+prL8 zM2uJi>99#M?E|V@K8R{_CJ6R&+HLxYasP97hMgvQKfp?HDKDn;-y}hGM$5!JS@^`I3R-l%w?3mAU2+-{s4##WAjq z{`P>!($WcCMlDmHnR^>)vXYe&;~}>pA_HEL#9Hj59$$8%J{#Q$fvT9Yud>2uKVZ8b zWA3+wt3v$lFc4C}IPWG^L&3D9j)>4W=?=x>hJ}!j0H61^zneMFalVq3Kv~p( zyFS0$^qyYJ-pWqj%3fpc$#zWc#xzFh7knDYfcETmYG zkWy1a0>L^!v`BC2TzSPy56b#!AI~FD#{ngqiqj=qyqRV4z%IbzCqP1TmsLLO^HurN znJS~Q#*e;*F9j?4-<81Yu$WSnPF6gjGu95>C#v%H+Mrde`&{$=u&%^N$c6ZvsSNRj97cM=&i6UcxhVc zt-GZOiFgh9{@SC>hg&id6b%|kgNdsWN!)Yu^FRtA_hg{$M0r8BxB~3+IJXwUr1)%r zrp}2kTu*=2aa9=4^QMXjamtciOI;7PY*b1yn{#@`Mrv2&_E`&Or0U6JF=3NsOl4fl zzytHEb(DcyOjMua!yO(vCXBDDa@H%!Sw7(IABvPu2Wi>`6Cy7X8mgpB+N91WWAF$3 zwBJ1n4$--cTT?R9r{GWT!O5+&t^sh8(nvB_!``y)A72~EK+6~61RnF!$I9RnwqUFp z8C#LKwq3(6PJo z)c%p$Vz!Mx_hk!v%hQ3r#%1fpVzRcThB-Vd;JvbU=-^Skyq}A~aA2$uZCK!*HAmYG zIiOHLlx|s+i?_TIYLOc9!#K++&ajXr)&5xUY`3jZ-51Fu{XzwEJG;Yhcsdd|!O#bt zcn4SibmV`O?fKiDyeM~ix*#%Zw&b&s6Q2WrNE+skkULg3sdt*|rP)peZSntdT)xK#5I&x*+^K;4*`^?mapN-FJdTnwN zxTgRZhLn}7pp}&%gX@p?)mC%(p4?9ez05%$+#AZ4X>Uy5)1)J-gD{fPU%A5vQIXz` zqTb~4H5L^9!9Prcw2&jgTdAQZ)ttKT*EW**h6T6 zuQs8k3AREJQ`e$==XfFPKfYVGpJ+_1>20M{F>z>_k-=~F`H&hAH6=gp=UZH-x59T=^9_Vm!^J9c=Sp8t>pa~I& zrFPQg*F{)>Gsi9_&8gF7<}db#R3>VkoQhqpJ6@fLNO98I@0NB>&k{Z#upO5~mkze$ zG$$c;?3S{ITF5NX4rp4^dBR-s%`f>c%4Q!Y;b8{c2lQ(LS$ldO%*dCjv||a5K=+(9 zN^+JbF=&5SwYdp)ix{xmPCsTnKL!Gx6#72h8G(>z!cK$!tqUCeV53vyS{n&g$XXl0YesXjjA{Th>KzuP1Zc@8(0Gv9(JcuzzgsB#}ybF#f-Eti(B9Kj5`^E@%LYZ`BQpc1{!i9&&u@h_IwWMi%3j6)Ohy~UefUlI-bDj}8+RY@gk zr(~wpU;C=dY`m#HsguR4SqC&(vuS!p>#j%AtCZvrXyhrzmzR5nMq^%GN^~xSw7sv4 zXUXo4K2y}ZT!)4-7TZK04Dvup7ri(XyRslo-~MEpeE1zdJZCNyx~Qbus#jM$aJg+K zENEJ!O-ATRy9-3|CeqDy0)=rknF%UP9`$PBL9oQ@`6}2pXF<(;4R*!alkNj!&VnlMhROhpj`cV}$9i)q=0Z{YCgZ7dN@ zSYOJ8QqCUayl4#{1+7j0ZNfeK_xH!%zg>d25#27RBXW&w+{lzes+C`ygRgvY6k#PC z-265jt?nH5vbD;op3{NP8Ls}AXO40*2p$6>9gd#$B&$S&@YKzxWnJABPTWWTNPkdf ziHOGE5w8T_Q7q>v6SHHQ)4+fj+9EtTc}kT)3bj6b=Ns%%&6*3$u z_RA>vEd*jkE}V#33r1!_r3ZZ+u;M10i|(d zyr|gDM7@r_d>F%(BI8{7CZKg3)>l~G4Sz|vNaY^1#PqUha0PprK!kheLhw3|-J|1; z8ji)K1|9q;Qe~zpfk^QGg!qjKy6K*~*%scdkdEKa7zzp*H%urnWVg6Iw?OrY-9{h} zRMcaf`A{S~YwM$$t*K)4bzw)w>=@j?u4n4`{qhIR^CvwF(7aw9aM1^Cgl^;qS3ph>byMBk3XCig5 zUQ-zto}aIPU!w-sYfNz)CZDk!aT1Sdf5N`m;OAFf2j%#42Fx`E>*;9}caZon;8TcAL;N@H~Pej`k zQZ3{$Ys<})3`yV6wA>)=sf&}~jwi@$O8X`O+&Z}-c{Zu=h3H0|(I}Xb{%w*Z&l5Z+ z?{LiCP06ldNGdtb8FsO3i72!8arbqFYc`J!bSr9O#HZV9sES!?RIMcu{sL(p&;(F# zG8^fOeT5ywTlp@!auP=%-d95mJavTCSd2C?F z<^6CT*<}Z>v^}XavzhDZ%bVKhw9PMnrvrN&)xh3CG5)vT9n|gd*w+*4#Pw$Mu|~s`TK7?z+i~=o zloV1E(T{8C;I?~0#|$HZD9NOavoWeU&`0zAz~nRZS2d&ldA2YkQ_8p3yLSYNOB9dQ zf7$)r%wkbQk;MAB(QG4w8Yg#P!Kv@p|KMi|KM!6Vv|YQUHd%~iuVnEU=WuYEBTH%l3bZ&N|$PmlhZ?e*?(JrhE_R@P*E^Uib28v!TNmYM7AjF9{~zb-$EAI{qsSJf~)} zh%B``@{PZu8y3~$i<_wa?cz+#3lybsd~5T6!R8bFWj0tep8;Uv?csV z0Thn+Ek9RoHGp@meFnD^lg2%wb33mmrN+Dq&`B)-7l(eKs-<*!oYeqT0cf@d+eFR zalLYg%3?%Bp2iDHRktxRcE!r%1=E!|K?sc+Du`77bFu7}q<$Sl>EMEfUgP%r-FV^*A4t`P?KJ6J zXRdliw{L9b=47VxDU)R)YH(hD$Lu8}&-;w~dr-#ItFg)8x2_fk$O6yJ)5*k^S3qto zvJbVPMQ#gRiQ8HJam<5<{RxAF+8vSQ>f3(j)1i|)!s(n&KSu2iT;LUy9>5b-j=XMq z|D4|b1Jb#NJ1qUDcR9c082JTb3F7rJk3MObYtHcyyg>Ee$*ELEF9mf|^iU;N#+!Or z4aR-Cb6(;pt2p%(27s`Z z@&d+;i21m*w4ks!mM4p8mr1QQ#4Eb2e&`>! zGXAvFIGiw-|7pSW_x?2H;5&&nVaB&DUlAYn_r7MZy)F@3^XE*v7E%*((C;5E)Py5* z84}9eZ)6&CR^jW)Ocei-H^1>F=1wZBRV)lr@JjLI{^v~$N#i$n#&481-o&N1(~s(A zgugX(w9(hiC7a<4tC_f}FrGV!a%_OoXfkaMGvUVJoN={n7`wO=$9W zYTBM@`&{ob(H8o=$@R3Ad~4^Uu5}f^XEP5Fb~B=!!d(l0r&-va;T36J!PE(v-_6rV zt}`=duGS`fgFwvX4kf}{3)`8PFJL>ui0X(Z;|S^T?#&Ir<#@Nm6OcH6+L&|adFU=Y z^nC!^@s;2$DqSul&R;_hp?tEWX*sqYRk2z-=)Cp>?Kt1=-~S!uKYb5ogMKF0a1(om zdZ{VJ%Ze#|gvnsBt_Z-r86b_|sO_FWELa;1wzstmbu`s7GvefP_f!8zBf^pk2zeQO zKaIXD0mr^irsY0SS#R^nlCnQeTDu=TE;;qxtu@DVQ=%7}E4LTr=_NdR-EXHEs++QW zL6@I@fApyIFgEL!M=c-LWkYbkc_cfHAXKrGL?`~@dnEAb3^;pxf_CB8)W2|ZqSJ32 zwp6v+%vf)-7nikGSKDd6!Vx(`vdo#l^ojAXIH>abYVqiyJ&>zNFDtB2zlHT#6nWu$&o*3#}1d`gkJqrm_Zx9N2*F|YioZww96j<$VRHJGME=o-96zw z^gK0r%4*P86VEW;#6$k8xbG53tdPKJHt@oYVdgJq-UbiPI2*9PRYecZUKgrP zo`m#$nxNm$V2hve49OVHx7|TdIO*xoTChAFI0NNI?|jKoq}+L(HeOIybimRwB&+ps zC>IMH&QVwn@LepuMi7=F;^^wnoCD;aIdD0n&E$zIwu#d_gA;76NJ5cnedV6r3Aqx@ zWRq#6g%|*ig1UsmsezUEd%hfVl=-cLC|-wS;$>L9t!eMD!J~90A?#tmO3qhUncmlv zHC!h?>arPaedQuyQS&q`OhIL@mBYG}`^Cma*WThsjN49|dt1uvW!m|su2!{2$uLXZ zhdE{H?pLB5(ZrDBTiqT}{aCAot5<%~^a1SzqU$WK?KvCalsJd}f-z zpRP*ktBYg)T;{&u$maUgdi7TCU~m%|Z9B;){e7IADa+rz%(fYWRJ9W_}V}?|RQZyD^GZ%l2Rj zcjA^@3JEwLQhV@;4p%QbebPc7)bXyxGOSEj>$EGG(xWM-*qLIzOs2C~k#|@wl$>fV zp7W=c1*BH)eFq1h`x@RQ)3x{bM^5}~6hdze&&BEd_G3UvI$u2%%K@`GFJ8ryTvVqo z$Jp?Awws36Xl9Ut6Y`>qrywiqJ~At~AIk2{3FSf?*}Ce(-{;79i`8=Y zingO4z*VBZ*U?+q>&u6#FplY*?l!~)tFW5tXZ6Uk$p6d7W4Jc87hfq0zvk| zv6Jjaw>JL_v)~!R|LHzsD5bxda!01kDz#(0u}qNga6!EyXA5_KX}|@>YJs3eU9N?^ zB~e$q+`y-GV}kK>fq;>0@VPoK&FIjiH0D6*LBpO3vz@d!Igx*JwHUlk%U=ps>{=-|Zz!>)EC4f6v{B5de-l+3Po#mO{@6w|@ufpZFNTC*x zW-x_`WqtQiyL?Vu^#(H1Ut_^h>)|14HG?WG*ZbSnU|>_h*Jy8eR~*)O%01N!RLEHE zm!jlHO&9p&r2joK!PA;M0tE)alw)oTl94rezuDW{x3%9;;cOB`%nN;5Pa0C?uQ$)8 zWu%P1Ms)WPQoCGkYU*~rs9UoAMJW(|ccA=1q}$C?SS8Lxm;1{;g{IwdZngcDvV#38 zjJ%k+{wPnt%H>{+Z+|nAX5?{~fI46LEM%M)*Rr0|=Z`#{;mKv5{_ByNZ!3q}-+s?LI^7)b@EEwEUQ5_;=I*$}6 zcE*$`?#eG>CK~#vjWb=cw5eD|r65*R1gbs=d7p4LnX(|g=nB?!Vsk$nhtkuXQg8mM zpt=)zYc<}VPV^}Zhd*UM3+H)lQ3$Pq%fSnIg%{^A-st&Obkvsbc-C{gQ^{1j5DCE4 zDrV^8=!PU33aR!+nZ|NA{UV7Zbtht=w0Sp;mAAP*_O7DHAZk^77i|E zT*X6r!#!J_Kw_Wti&GuNQbm^gwr(EkMqzA1$`0*4GqGUcw=<32x(NvqjzybIg6*x2 zf|gXA@kT=lDO&x{qsSrx{yD)DIrd<8nqaZ1%zQIZ+jYA-oqp~A)VMDR&>5#HKp<3C zaC1QdtmuhcqwUMI{%?Z z@439Z+^qUQ%D%laNRyoST=}M3#(Kv{<@V<0!!bBj8dUGnFroT^MSQ~uiVumuolV>{ z)A6j>5dQ5Z$s5WU!+2|#m`dFjxAi=p_HHten!OBtsyb#U9vjev@y2fSepC3Z$Ba8- zdEi*Vhw16>mFO9-2sZb?(V*CURyo6`#t{?vxfiQG_p|3|*#=?%xo_s1kLmrYWw2FB zBVEqV%ax)BJg->S4A0^+I^F#tRQ2>Ag$)+C?>DVEc_>}A1G7-or@2WhYz8)c%aKF= z+EL&on@ZsKFAs|4Xqhn1nRFF=X@;VRvkwLPy-||FQD~EXU<}n=CZ^{Mzi#ElG4ubq z|9ESK5wCvx?Ex?KQX|bH;(|NoO3aK;JCXVVhYneKYc5(+W3emp*F%AfR2M1@F6Yru z+DF#zgBi`wdDiYwF^-I!pII$2*{$ZI#n-yQtIC1>jg`7UrFf8JJoH8}hnx=bIB8mT z?qwuOr)5JTIAp~GgWHJkQ^E->VG0=(wu z38pBGM;7l_pEvSb&_%8$uezXeS-VDUQnkxqKa31d{6WnnDK6xw*^hhA)tBx%m(tT! z#(TS;!La#K$9YY>|7UI5j;aB1jfB;b>h@8&6x5|Fz52>$`sNf6qIO85k4dU;)H<9EC36O7LzmI825(?zY8vZ8I%;wSF~8 zz&|NplQkoc0@AO&R(~$XLj#ik-3IaK*TyGihc70vvI|M86JDH=DZtbAm=?)!aW+~y z>)h%Kv>kZeeN;M-eh@5ObH2+wt=@-@3|( zY?IaS0d^VZFIaiLn`H%@z${$wQc-8W`P3g-%U@9IVgFUUZVueosbTT+hIm)2%Yqw} z`~fe=?%?*UW9Z66{O7^&3xxWU4GxJP$9Ld&IYkclG^DtLMJD}0>%Wq~l#p7OS|a9~s`&C6&v48X#Pk#JNJ*I&h8Np3a~z*OE6$m!@oZf)Ui-V?U=2>HLZBy8Uo0 zDz>QTj-g6H;HiWWbv;noEonCJm{ zR@tXHz4vFxzqb!eS%dSJ;~n&I0LIK{@&OO8?o-Za8Uokc{N?!ddorx#VX~y#XTi3K zXnhhi2?@WLzlUeiZzrn{*2oC!XKjKyPJ{ov+5h>Yfrzvk%JqrpMMq7Cr15{A0Q~~N z-8ND(gBg&g`J|FX@sOtzpN--;_+RlxVu=ST7=0U$OK)*#t`aj@=vbm z!%s|=j~bT`I3zWl|AB8c2--wB`@CM%9NDFwhW<_e=?+*=C-*{}UaA!t5j%E!RKvhM(Kc!Ke=`PW}F7H`a!g2-C zULH5picH60+a7;Atrg9wT}9?uEA45I;GTZpp9cGJH(NcmZ1tr4W_0X+K$&4u^em*f z4%8}tvouqxP$EP1>(?su%jXV45AKP!nKwt^nOe^OSkorTr7-%@_NgirIUg(f{8>A1 zxoi91&~k)=b5zK~HD30VgS({ek;UPURUVOf7fJ;lYIIu!;AL@iRHII3^M!`95dZ$v zN>1zCzSgYAlcfVBge z(+dA@z`xGQkUzc}L$F5q)*=`;=*AUQSPBDq5?2>Rra%rC6r&>nTN~K)PJMk`NKLfN+RJ zok%<3iw%E)=rU6Oa3-YH-Q4DpYs9^{lWKJ*Cp|)}X2{_R z{fe~SOTFu(-v^XCWehNnoj=VMKXh<(7Shwpxv}N@fBF7@N(B@&oMwNWhw*>&>&qA@ zXuH#I*$qnZYEf58A}EI+UEg!uW%{<+c7Su5vA|}so!yI-T(Q8tv9K{GVe;5EYqkr2 zj_pr`M}%XzR02(X`#*GmREOP_V28UX5eu|e(6Q~qr5%xjI}=Ab>gML=?lickV@d5x z-N*kn#{ZN3KejyCv-~aC{;y{~FrYu6e4Uh$!_f=S3x6uq*l5}S&R}Iq5PaTdEheqj zAcrE__mAYa`&V(DaVv;Y+)ks!iPEF58^!C~25Tk4rc6HJpN!^KJl^IMHJI(cISJDP zo4M>I8`=n5u;^2tzj1@+QP5n7QVW}5edTJJ6YLm=z5Z8%{J+5cr@Hp-^!xYrlb)3z z&juqq-h@*gf&8281u6m0p8F9>T>~HI;J(*3AK#MbbO{8e{nXwG0>_hX{uU-)De93) zB?T!jd-5`R<-O2rZX!BL`qXaFozuemYqvSj&Hs-puH~J9_Qy7F3zXQ&xv~Q5dJzFl zZ~w1m^+h`auM`+QBfz-hLfaN)lBzXOlhPxCidZr3u7x#Y6C`BAL=zgJ$2~E`-OQk} zbhmcZCLt{)9mC`&e{=C)Y;iGwGr^W$Q|qJJt>K2rN{C6uDmjeHid%W%IWNN!5fSB` zyA+w4Y;l%Wl`ObMykeNaNm+b}$3 z6R*F#@NgNZH4T^reN6j&JXqd9C=z{UWo4^|Dv*bTJy{7I;ahhM$Uk#AbBl684*E|c z5n4795bzY4rKcGNmmVeA*H6l58$ddnR%+&-cLored2=?qtIODQJ`1;?zBN%jjWRTI`@l?pu3@y8><3Bz3DYlXPU_3P8~9dJ+Kruq zc4na0#N_Ib&p7EU&R1=Cekzt<>k}*eUQhxhoZV=sGx&ZO6 zCO{B&<_K3Q#C3>hCO_^=wix&QiT$rh+(Y9u~>5Ny=XcH1!WDshOvOGDS)qy|>#>0Ijz~zrD!`Lhq~v`DatdO=)TcOJD`PRU6G_9xG)ZUpO_kq& z9i9bu*qh7=mo}3L+=^I=`W1u=9ET6K@7paL-t#yI@PO@01#Qat~}+ zD9)M@8e|X{@eI3Oo2jH5xx4WGHDoJ|Q{ z5Kk8RN~n5k3^i znuDZe4*Xefe3c}3&8Ps($a81>hX`D$WAq~_`1bKmA@k+g=SM3a35yxl0RjRcrKJ#oE0{8cU1iv9ojXY zGZ1;$m|^f+E=5nQT!E@xINxK=|MuV2muYw6>0}{*IU)Xafr=!x zHEkBLQMCs*l8%*6!c2)mva9Yf5d%LC6D1`Q zZ)NuQ#T(}s!{ZEtAEWzw$g6pG_b(w&vCSQd9~VZyPV1f$^Hauz5+(hL79QxvJf7vw zWzWaxrw9sx6C`Xo7v;$bB!`@Sb%i4r1vJ56M<5ubek(ig+D;V3bH-IY#iQ~5m~@#| zEx8no6+wx0FX0qTsJr1tu*YJBGG96oc1fO5}H@TOlK(s;R7wVIUy-2tcusX ztpip^$h@VSH*38W7l4Xerd)Wdnn(j_Jl49{Prz;r|JC@s{2dbQfOXq0kNw;gNK_Xt z92Icy31Fk8MPRd91lqcIO$m?9WC|L)iQ%Cs&o4IDnT>pq=Q%Dkux=oj{xaAYj+Stx z2^}}(L&ZN0mGzd(bDHX)Jh5saZ2VO#wjx8pLQjCtejzwE&ZgKAlqt(Dfq+g0k+k7Ps@s zuFc^&bW0+N?&~x7{hOjejv8zx!LEgUie)kj`K*dy*;fb~#fc2Ayj`veU1qCPp*@3h zQ2ctO4Q;P50M+FNZ9gM?kEj?|ed?!Wvr_6^13C(x6Y6gK%_!uVIr8$181Zkj-sE7g zg{%aOSea$%OS_IK?DS_uh%}#RIay)SN3PMKxz{36tuH*W6Es_kip za&qlqJ!pS@|IlQ~AxYtI3xzs+;(=0JxFG!d^TT8(#KxG5fx{nWcpQKJ>3?Utn}~rM z7^ZuTQ}3py?&!R>)b5Z^Cc^iRt5eVkmkvnumi!{e(o41JVOP>RjI5B7Z3~F(Hw;tr zC6m8wbo9gnH;q6XNs;Z0Q*FnhPBEz-c^FM{KlGkX7PLc$R;==}P1OTDb>Fp z9kla`HZiBa`8uL58F?e@Wr(C_$P!8BqHNt08Fu=O@40C1hm;sWWx4 zot^gqC3NZ=k&+Y1-}G%B`9ifGPX7$a_3#HFw#8x3WrN0(mCbV{>&AA31ywaz?XR%X z28O-o?dt)bjL2=*7&GFrL{qLpJUNbJHM6IKJ3F~=Z*Pm8C#CtfpP7bVTYCrl`-uYA z#2@2JWec(P@`e7fba^((enbmN((Uc-5$v9a8GoPv>cRND26km0?Jf4;m!Ae`HfC$ zY3OMOUWTXm+qwj=yBF7}lfVC)|%>I#-{a z8|N;Yf?Rx>0Nonjp-Ws?EncYF2K+%kXAeDfsg<~Jm&aX<(;{Z>W#7nPDgk8kuu3u1 z6T_kNbuStyRognnTQTn`zV?t5)S-ubqRj_Xb6(6NmVe(@tlVc^Kfo^+iGE2+#FN(u~P@ zHbpL$T4nQ~>fbxRPiJ-RTo4-WJ*hqGOfnSGJ7)j&Aiv<^Hq;n2ZG7BDtsqCvma#nJ ztFshJEt{E$ohlv;ol|tt&qR&fsB>qk4IHf6kNFZC8H>ov70Ar@P$(~{>C6`I6{Qfy zC{&T^*Y6$Q4Lq@Eu#!m{bSYy^$5HOddI1^^dvoi?9gc#G2g-O6OU}K`zBFYxD20{S z7Ep3VTfuwL-yavw3cZz{^%5=YyUc>s(zAh^LongxSjvVX-fPJw@3nd5co{Z ziI=Odua6MRXZtCVS~(WzmmsK|@?xtcwzRP+j=kTM#l8_^^cufwFJ+DGvsysSfCB@J97zSeAGY-&pJ9yAOwk5aQk{N^Sx z#MOM`Y{%m}Dxh>HYLW<4sjISiV{~yCNZ0)BCdT^oL>d~PbTLoy`^<7& zvZOguU-71b-KJ=uBgP{D2~vzoCm^P}a5&3s!R?|P^KANXDpPU8O}Bi>cImi27C>6v z98UV3W1+}@Get9GrToWCPSbIzGI!QPuT#BH(|NqN3X$unn(9nAyxN@UR1WYOt7mg_cviGUm#k>&UTsXg`YgRK4&tb6J zSkqCf=YcLht8YI)op}_aGV$v8u^8NXRqfo7#dg|1h*q`xwOwawY314ompN+QKtL9c z^xX9UbnmH`-6HgI&;4sEi>k&D_rua%j3aT}CmCICQ`H37C-IT8^&zB{mEPvfAsXED zESuJZb>QXzkxc5^wu}~hg4Hr1OP4{0nMci>yEOj?z9%z(BsjWjOnbVE)6(}-dd_8Q z;Rn##iJg`kV;`_xvnH6N?0xbJoi`Ys$Q#7xFF{)3)IEYyDaR4mh$?J`rr$uDcx@4N!x zF3nYXGY4GRCTe*Qxr|C`(KtR#Xt6MhLBUDNiqi;*_1ozz<``)w6vWJVsRCz@$alaL zqP$+#jIOKCzGV{HDyNL(Ss$z*s$>0YZD27j_F?V(o|t2_o1_j@$0Y%enAv$- zVrDrmUV?lak!8(Zc%&S9R7?YGQI4Aq{NUPEt9%*YOc5iago%c+H(%-c`4-cP!vJcC z5;sYDr-xIx`NY1JsNjo^YyD$_^x^&bwU_#-u5rZTJ)^nFa{_C<$r0Rkr#n-v=dmC_ zv+KPogzI1O%jL_g(QPM=kUs^-d{Yf6%_YT-Lt!DtuDE=ol6dXc_P7d)D8%zz11`8~ zS1huw%1PRQhVSZ!OmUW!fUghspnAb$uYd$9s$rAy13opNw-lh79oFjezi>JabVVX$*3Nm>hue1rz%fMeQ zXR|Gyh@bsT#3)mnC8zssjm=-}09`S+ryom&v*bA%Su8rkaa0%6+IiEwqDp??f3_uMj%UX{wLhKikxu?JdqGPO;!o&A3RXh4_0hC?j# z)lC1lcOO)|TDo4!Gn)3U*KO*7*S|9+Fp1)Vey7gNzhN`JqJYpiiVE?icc)7ybPOE~ z(mex_FJ=cLde?W<-q2SA-(Eto3Qz7>h|Dt)aCm<8>`~XcX$hRMqINF-O2-W zlSe{hOl*v8fG*$SOdb@eahv2HwDJ%if!VWKU-bSMdEo?Jzaf|Gm(>lEZ0Ya}WA#{ZR#cX8Up~Uh`fGv`yOD(=Z1~ zd4&j_w7>)8jViS5%oP>EoGi7+CW<~P1McQ@FhnPQtq062}~6mdC>wl8{F!3m2tmTM&icm7R% z_fXE9VdPZ=Ayrg!ok#eVJE&&{2M%V37rm%r0~Ff^wMPE>4S7ERLhhs z|2;hURfE2}aJAMmC#_Ns{YKti?Pz0!eNx=S$eetL-n4`o)E`I(_+;*aPUD$J5r;O? zBe&@?<#l9Qcsx*ns)4!5*aDHw^v`Tru4tJx{~HQnUY+&bMt61Kw0g~=OUZf$D<|a) z&6d7kho@=xu}c&e9YjAZ9IxViz9CelEV$VEpqEe5Q%y8JHHS^76Alw$g`so&$M@+r z?}>Cp)v?0$t7K9zt_;v4Z*YJvi?TW`J3p;G=qwE^_xEzZiA{Um#SBG~WfQKP^avdG z*#kc|?{+I+4;?#sud zy0s8^a1YL;l)$jTccHSEn4#%CttwqkJ&nzh-Ml;@jY9kJ%XK*J6)O|$wAe80-nAFO zQORiBu_x-YC660&l)0NE!-5ATOBQ1@txGt%XB)zk^3bGJCwO;g!X~f0$5!pL2BL%g zvD@bmqEiSRd)>j7(yn}!V2(1^k#xj_>C(C5*mK}060=>=t?wPkb#+sRB`TtkjEL+i zcz4-mjOo)sqM+B1shB_d2drX#CSovZG;XbaD$w}*Vb2#p-v=?E6R!_2)VkHPfQE15 zr;n$gvf8cCA0Pd=3l$b@LUICMS6JN@LF>QA+>rYC#b+@FRx7SjnmF%El<;~Ni5W?3 zP6x1Y)m8jtLBw=8AuVz*-k7--PknL%v+irD;#VI2Jbc%?;s?JRWO6~op5Ki_xCe({ zpMoaU1f&mM_;3+EYBmkW1K&Z@N(uP*#XE7-V-e1rYm8U#?TKtQHB?TSV`n2Q;1CWT zJ&V{BXVhxg9^JaMfR{Vt#p#PFRN;;oe`kgN@#S;zSU?-BSUD3PzxK5~5z2Gn3(mTnRWj;N_$ek*xtWPL za_}Jh&V_*7OQTJvE@;!JCWGg3J#(_BaCA*+*la9E(YcrJKLdxa(C%7gA zp2RMnBeom#_78WB709kThK85QZL0IWupbW( ze+13H-;Ko{XV7E%H*y$)j>~mR-Xi=CVegTXh-H4&Y|$27JGMk=m3}I&WR$|IpZtbN z1GrnpuHt}kSoX*oyuW8Z;`2tKA}0_Qd=LjP8pmgkL!%l3)ecX*xDda6GKtON6VS0P zb2%>;PGWwYco82?9E~b(EyibY>+xkeZ?}*rQYq9Hk35_^>Vy5q{gGF^68iS(3TNI< zmCNRQQX+ii39{1@xQ-lv|AjE1cp0?o?2T3ps&gIT@(~!z-82q}$un3-NLh$;%1wd) zvAsBQA{ZIPDxhWCuISjJs%p=oTXQp`;p?*-r_V*hrF3m{VBOlRZfOqBLBNT_NN}x; z4o&O9nUfO};q&a5=vEo+n$%TtPx1*nwjcYBo<@RG2{i7|72R6Y)8?Exsqj5~45iuh zJ1zJO_WFgR$AF<|S-Y%VcdB$*Rr8HIdA$9pILi^iyhxF%sIvc=aw{(*5eN3{!s)isq+m*GP#D#qQmE5gMI}CY^er4huFnHmYVRuJXE) zn2jm3=41B6;qYR5YE5E(j1zk>Z-EbHZ}Z2ay_+b%%2Qv#A--04 zgL68P*r!}!%1KP)MF!=CV&&4O(c-?9_~OMOOar@W_hR{(pYhJu=a81h-^l@3%OY#> zj;C>ZYmwH~@!)fBV$;@k*x(z9!5zwD`!91a>+J^cIXxeTzql8hStjf9)A}Oe%4zs; zUn49!17#{VMz?O>s9rw5X|!Zr(3yHMe&3I{@40U=@4J;a|MAmEGxVZl!b2MtTii#C z55)5ijK=u6U!Xzw8XV8${slW{u|LlA$CCN)V$jTuc>l3}%D+aHiTLTTGv=>jKC#TM zSS}O$mc9?)L676?><3U+m@)K0d^7I=x_q<}e!~Z$U77r*+A1ObGwUELIh;9u2uDu@ zASK%g4V$-xH_P(k!fHduXU1Q|?mhc(;c^-(a9_1Yk1nWO%2{o_5<0SD!r;So>n!&H zt9R&u_S_Hlbk0Mzu6~H~2Aj>;AA*clzB?H#2G~`?3v+#Ndb>Bi zTK^zgPwT+LWIl+ybQ!p$CnA{p(%X(+fNS+S=yrQg)GMv~a6IDVzBFG|og9mRvnR02 zKO7!)B(LtM>0xX=VBN|4F_0H`1*d!tVqZ`U$~A1l{R!rY2!fQ$SpMjp_;lzp1l(H> zul4DP3_fp1oK{!d|GRu1yY}u!Xgv4*>)eLU-8!KbZ@&nqgHB`j{=>XI!Wmt9_d_=Ky`8x4En8Nk zPdqq?(S!#n7aN2gJTvi#okNjfQ$%;`bY zg~#P@ukqy%7UlAn5=6at#rCb=56TyRN6-(`w29cD@snt1BT2s{Ek2@W>VkcLRCT*S z!}`>saXsok?PWR_rDqZyXV$K4`igp1ZAKq#JE>=nud!08GuHp+%v@sVDH_|UH0M=? z#!VbgU0T(nK7;yF_3~ZGCs3_%(W-f~sB+EL)U|6n>NR*2jT+Qh;r7~+b!1EeQ?T!5 zVpUD3)|n=bA4RQOHl{xPx>D!957I?t&P(LKbG3?x7JX>q*kRPNb#v<3qaF1h^$bND z3uHMtS(*+5*_^nGG^HM|(mnBoZ6!@ie)-k}1##u%CY9!=8}y1rcKk7##OB;De0h{& zqXOvHAHJloR{TOo12io<*%bP5LLX}Q_#(O-A4La#|ACf$y@EFQ`fKxc29i|`nOT;V z3!NW7<=vP)57_=1=R1)0o{ymmC$`X6%fF=6zwMkf0C}Z*@}Pp`6=2LR-T0 zssLrg(@&4{s?4C-6kt?jTUo0*X5eZp$N2Bo^|w~10gS^ig~QnA7g7?hPEm#*O=$pn z?h~UPW~AwQoUn(wbN!t$UvIw%{^0{^Ua)MUl_8v?V?z>B+)8Vy66k_0T`imE+ zMvcaFN2gBIali-~KU8lo7`$*5MJZuIbl}}bs9dAA)VFOr>NaEyJupDG$tmA#AXUOq z!F1r*X@x`TuBC*^U1&#wVM@Thr@x)6wp>)Xb0j@DO3R_%Z+%IZZS64IX7Vchr<6-H zt4mGlGwB1pZGpYQPAp^GooVqpEwi|m(~)&Av0qo(c2b+F>S~`yd*2yPs6B#C#i!Bk z=lW627d~U-Pj<{_{-f>Ryr=lk_Kx9n|FFK)%DW47Y*LG+y`R%67zgdUSyFH9+@IoJc*|)~DWs`cW0u6WdOQt90T5 zkJ5c@q>oUO_4GLE%zC=-pgvTyS}!`x)+^#<6)`*C(s2qcnsG0o(l`oBk#@!{lx482 z^a-80iNQ36bCU8L@Gr-_qC6R#CerS5N%zp)=7i>)MHk!^S= zL!%~6pq_2GU)HZbm2KUHRv4xq5xnv*>3-mIPUFp7Iq|fxc56{Nsx1P z7mcd}>eBlTYTdd!jhpm<+OmNmkI?=oy>%~f|L=59bA(FQU-nd!eplXZaQaloYG?t(vUKsDX(v( z6hr7-@msCZn)|ipajwy4yu3+U7cBFOrpUGL6S|D1lZrn&V&H*w+_z(V>UE=u<3>`e zmQAR4pU%{M(4!Qt`aYTT-Fv)kj$sCjdVt0bldX(gpFdq^Y+KR&M#1&Zn79|Vg3jqn zVOzg{ng_S~0KMy&_f?yUIKD*HukQ~S1G{wIhx^Kd^w}ycqz`^Kjl=IEUt^0*(xsjB z)T7gB(@_>yIbk%EO{y1c)&m{Yj8a2rR39(;V4WVcU-(|kZOhVEC$s>jv}pQrTyw(R z&yWmrqW#vW{HMLRm?DxzYUJ-cm;G~jrWiUv3I89|GQETK26p|qH5CtAwLoK)s-#+RE!^GXdJSB#{ z|7f-CS$x;c;SSuRAazc8r`iGRqWi0hW8bdJvK*wW+4R%zSrbp9_|16 zS*ne0Gni&WAx^--5O_xJH1H;yxnNGVLog`z3QQI%Zj5#gLuFA*w;wr zj52&yaNI_;)=*^G#y+U+OU1Ok5!Yj8U|Klc%QP(bSr0Nli>9W-e)?_;ji zfrbpfgLodA_n$pZ`vbIMj`I1I(`ZYp&Z};&>PQGuSAPA7;M$h98GE0vLe%hxXVd6e zGaskT#sHs3gY?#e9jVTwdE7N;mvofIv;z%&>32Q&WUsTkKj1t;-|Uo5eH?wr?F|E; zpd+!W@F>=I13e&kj(>{$jJiQdmuT_5b%~eP>FHNrqsQ;4hitpzO6T59-!q zOrj<8nHKdqzh}0cQ5daxv^_O^>2sTTe&WUbN)Fuj$}(HK*t>eZqVM6?mMOUwALv6f zX3V1PC(H?~M0#ah3u--mp)skZ3AvR`+>PR-t4!Sg1$)r_)c}1E1xxivKBDT^%ukKU zXr72%^Yt8>{nmOl(2G0st(t6GzEdO6=sOqm^PRnagL8^rI1PF4u!XT@h)) zvx8{x%U`IvknXpIdUJhx{6`<#!13_HC%L|~qxDx<`lVi=Vck8c)qt6F+Bguz&@3uD zbAX;5;6oGmoRWLqG0#IV^@;*3@=u$=5}n*2Z3gt|y2BbaGoBW|JW=_r*rIj+ncY9A z@B3f*g5tH>qhlL&hkO3I<0{_oA3ek{^=R#pAoZOd9Z1jJ--Z3^(9W}w?3YK&p5-$q za69chquYOC*h!k&SI#}@K}W;lRXi=ea>?h{W%TM>Z_}KqqT8#}x+52LxS9-O4jXcA zzv_e3r-Q+UyvPlwcc-?eu6$O>@V*VGZj1gj6L^=ShsQV@Fd9KCh(rpkd^#%y%2mr@x*p z5XLmy3VL<3(o2k1OexOOf*@#7CEGO4pG@jTqn=)&!sIXL z@Dggv1JVf(jGzV;Yg7NhL#a(Q<`eIK{&wp{4Ht2oCi4FJ8NZ!S-+6}2r1SfUk6@$JV}dwIbaLi{?!ZI54nrZs;+ASeKy;RaQllqd8R>_-t?9c{dNL^YvOm4kpY>$vR`f%#S)Q4+=S`9Io;3NnSLmhbJTbv(Jh%Fg z9^{#fvti-*l186DF^JDqd4$f#>PC>jI)4DipY+kM3UI@GS%4T%2QC^j?(7@s|C8GD z-eT0ZB)!Vqb3QbVGb~OcZEmlp>>M38Z+LffHbWWF7d>=^fSkP zyIbWIz4>cu%HN$|T1;wwhkehl(QR_}23-ycQ2xRW(K=Qr3~FjnTy)t3VY+ER9bndaoE4=drbLY zHF`Iz&bGq2@T}Gp4?Q*q3)eq^JRyQzF5`{1GcjdEPd1g|$WC4uJbpTA&RK#}0hi&; z@_*+qVfc8%G&HH~$tLl6sMfqE9)ErY?w%V4S2puWJQs+q`+>JUn1ouT-6Sj2>v$Jt zKQj{V9!*wei^3x@Qge2aQ^%wE^wvxyu*r99XgK`NUO=NtEfkHK7fy&cu?vsR-;OV~ zEg5|4%vGn(S7hK_aBeP{nMtRbq8MzYvYFEZY2=TW>s#B ze}mt|d)Q<*3n#z-46VjIiuXFV!l#3~A}Z(@*6uo?PW2boXYi@Fx3%w!F3oGeh2w`{ zFZM^hiOt8JK+9Ss5XI);v+wJVey?~V^1DY+sW_X6W#_?_Psc@O5Z<5D3Ev!j0;krE zLTUEmxdu*EOyykoC#Q5WYYo%DJl9GXF>^lef{4eJi)WFXPKe1U4wo9mk!jeSUD&n} zdqX1NCMVDHX`>m=rO>7S9k{JrNd*1!Ii{^Ei&YmMgVfYiCl^#^lW12y#a&!6u3rg3 z2Qh2%T)eSrFWOaQ2J+SgcdiC528@_SxfL&o@YKx+!Y9~&aw-~Dc175!)tJ)qUQC$R z3C9ht=&Yr~}Hox_9&c*QqJ8%y zK!kV*Axd25o7p|*=H})GLLUWQ-`!tw&pCT$XJ=<;XLk4O&hlrP6KA~fT$lbBIb$)F z_ML?%3Wa0lW6criy$357u2tO7Es1Z_Wm7;4%%40Om6$G(_vVj1i;wEOguh%a;I$qN zkuN2Im-~&t>}LjpXaBiX6hP-EreFat&p+(uf$1%Isc<4MBz<%ira#_|m$b_o|03x3 z^ejwRxE?32`rxrTZJ5W}YrpcU%^fJjmn~@IIbZts|@xTfczEo zayt=CIk6!rJ^}%LafoI)zIpvRE_ryOX|=X|5&*Y{Ti&>M!IyPcRg~nqF2Zhw>M_9{ z7q22DrY)+8kSB#>^WtH+G52%K?cJDj;u04u#_98`x)pl-+|S`6U)N0c@IMjvho)#3t1Tb`!BzucEO&?w$6BM zo$)r2>z3_+(v3zGU-&Dk(lXMHLS2vGKhw$(Z#-nWu zASyHt!xxWZS!ID_gJCllnpb4G)qp4Q^2k+e53k^bL5*;B z+gglVv=NWCslx!gy`_9zOrALxE4~|pJfe$JBXIodKQQx?Kj74u*AcPtELpudX3Tz- zZQr}0|m z(7u*hQ_PIX&nGni#}9vpS61%F#@W45sz3rxZ~K7#flb7x9XeyhGmY6M6a(CL;bfop zaP-UBXv)ir!(4V_PKSY*w5B!AET4r^(Sg{y>kv}YwQWmFNkZA$tuVx?HS*;vh(eWv zuz7Pn{B`0ShIFoilv|$od{KAI9I+g2{k}$rTD*Lmw`znqHI%HX!(E>)bG+0-5XRxlKWn~{_;A!yweT6gf-#pBaVxlkCzQg$j3AxIUJuX zn1X??ti?0E8>#pLh1k}~J0s-HFP)Oh_{zBt4(&e=r{-ml5blZ(=C;OD<5#1t`zkcb zpMm5^-W{Tpn3~718H8;A1aOB*iqvxf9=`-pb$c zcr)n(GS90t!Q>ZT!NT1$c=5c}F3CYYIDgrTKY;T#E8gB#B&`J4cL6*+-4Phy7PX7z zMTpON>^^bzBOIdn`Muc_(TW?B^dZZ&?uP|0 zk3r9EhY&PtD5~)(Dq#$>bQW*BD#BZ7mFq;q}eQyqB*kWMp)4Bp1M|26moT=rlHbLx_pAvX40|$=_yd8(P`<3P+jVS#F+s;cITL3uLw(uqlY!$Kmh+a#v2dO_hI;{=zsR82PA!Uv3iiX{?U7h_ zUA%dac7!pjTZ!orzDP&S_!OO8_-QkxFxP$@gY(b8%%3bOKc z{tHXyUf@Ndtbn9ZbIuLhRzzZ2veB6?jI>l4{D^*FF5B7HMZ7<^I1kQ6f#kM>p%C&< z9x+Tw{Qawj+CYjlrXfEMrYcpb$sH)(qhoZE(wT-1otlDmur3%Yh&+W#q8UHN@iBQB zJcwcYhI*CF&V4$UB`<2#tB*>>{FLdGeYNSRhdLEXG9;tnBb@TFVyN4w5%QgnGMJ?I zO`~XeJom~6c#h#HDH2~VnT1hKvvDD48(LH=X7DBnzi#+|7csnu5#4z{RB0k1koV+Y zVL#bRUsr?k{8F2Rt6}uiMfiN76Rvo&HEdmiI|Si8z?p~FCd%MklypI~82uc+_-PKN zcwEEBJV58K6j=1eGBj*lhf727^bN!-t6Hi7I&X;Oyo%t>WwX@aT#QA zusg!JNENv+l}`re8KGFaxC37QVkq`qSb}CeD&iSSR^p7+*xSU&R8aNIcX=ru$9{hw zvtC$+h=M!;RKGkjZe8Qal9q-Tq`~LNHZ1@8An#4D#*+{cxR}-m-#PIBJ^Bhhdg3+o zS-KhBcz=CjVltv)ctDqY3(;XWkzBkQ3gu0}*0syv+I||o@Ae4GK_VYZ7lXuLuG8p9 zByvZlNC7spsnW^of>+;U1HglG(dRXqkHRZoKY_mEJrMONuLCJr4vm;U{H4bzgSzlm zF6K4+XAsHe9wCly{}x{z2tk8trMOe#kK~3U(7ktml!*<*JBt?LHQsaAykl2XDqRBC zkMBao=ejFIY%6&OVj#X+{RVz5%6V{8kcp_+vQ;MW#c$z;|Zsgyce=JYBUMO%;ptw`Q&!IwCW(* zH>!Yi9t3-(S4WFp!}(iQhT6CO?W*P2UVzKPL`X+JqChjWCq9CQV_NiC0?*Tp@zKW{ z@b2EXbWEoB?E zKn3ogi6Y66eQ5cLq8h`vaC=iAEO3wT-ZzMj-zwk z;@GosG8TT+5J%lVLAR#5T~8d_505q(g=N(nW8Iwg@ZA0-W^6Cbovnc=k(`8N_U{m% z5RHriw-6rBokiKV#~pE0AB}1y`JRL5oxHrCwQ2i)@Jmh==|Rd(AH2WpHN5%h7PRQZ zdlyR;L%{CcXtZFECRnBXcmGJeNVP}>ajjVjn|Wu6dO$aP9FsKGf(`NFs^5@z<$D;> z|7}G}hmkMi{l&bWxJ5aXsOf|c53R?0E0&{Ims$M20*20b74N+EJepQ#9Nd0oGFr-I znmx65*(j*;N)UYvpDmt?uleX9;f3turdm7#OJ~_2cGDk_A6HX=z%faDyhDbbf)BE zfvyQdFqkUgdR`t>`JMj}FU=W?Urseb_b%0VKXwB4o~evMqVhOId7Z--^Ohs2V`CIa zPl1F0$%ELR19r@vej7yg&Q&UmNkk!HU@a z(LlDV2}np``+188&aBs>5_n%S5B&3TA18qGdgp_AYH%(SC`HS+!sM4f$CAxIAt)q+ z?RqJc=O)7|A{AXq-uW(tk8F$MuAdxlCc)?2KD_kyHnvNZxDOBypOkXg*s3=V&{Oc+ zx_2>g`eKx0KO!}%^83KU+@wb9l&O3qS7l)DmXCSgwj7rxJsJLwtipZR0!T^X2~*Cx zOTEfU&nn%^VpODNZM3dX8EM?V6ef=Wq z_(u7j#~W{~K;tI0RNwNVC)@R}yP|FRqA0`@9J_y9kC6R8Nh@Hv=ROe6iVSR+AF*+4 zTWb!*e*Yu*c=c+0v3e2Gigw2Q)xTlHg{4?_JV~_;FhA4Km?wdy&9Zp29I@1*Y(OpXTSl@F+0LV5(!bXX#|K~<<)3Q>NMyxX1C6WiB{bsj@?b5FXou{;G)sb(p* z!F&X$B$N*(a^+xN<(^npB!{|HwY`%T!p0M&tJhYO>0C6Rv@fvkcW+D{UQd;8)|AKb#`reqIKMh>{V^Q{uI$62SHH#c z-yKGiA}Qd*I}me=`*B?VkzvuiPocEpa|+6#Zbe-u>?xn~&yU*m8}NkO1(~bj>WjzE zYv0FnvzDPs%eJUdxgt{hcA`-A=~>Dql-{dgG_!k!&Vk3l0h0rw_$3rW`@S==wbyuD z4+(~s+djNLWCoTMuZ<0F4dhwEsu=R@+jw-$%ea0$h@Gc>$6u9)qEanC%pb;Iyt&=x zfTtw-r^Gu{M zD9=3HNzb+dvfxf=D5uZ=-GcT8~0DKS_$+L;| z%2{B1y}Y@@QGo|LoHXGk_8mEe8m*nss8R`@oJiyI%gdtwGf(lf=`2L>d6eJ*x^yH$ z&mY9BPxoW}fz@gtV>;U@R-!zrbI;}~=ch^|%9nBHV`p@QxhExG6}kJs3az&IlT)1) zF+gIt#1T)y!aPV|9*QDw(B%nudaWS(FxnOzAV8Q#}V*$U> zfsHiRP%*Znhc<2C!TEmte(VCeuyHS2rT{j-^E{TjCn(val$rn)$=kqzb1@;T*)Ph!mcMS5_~<>ziTDmU(pu~W)o%cTg;kl=B6 zGhd^z_W7r=mOD2hqw(Qk{B>dp>VC8ryL^5`J(*w(+JhT$si;|!zgj506NfA3oRPoN z2vz>0zpUfI`8jNJzK9MDYoc74eAu{TD!#ZbdMdMQ|K>YOUGhz4tG8dr4~7pymDXQ% znvcLoUk}EcJh>g<!aFmX<oag@r-P7oQN zgnDI)al4h+R6ZNo7e%X-WZBNkHkDG#?Ly?u5MJBE&#EotMG-Et&-GAAY_Zc} z*8}0jwnlV;3jz;!35@arx>fR4G>$MUq|c%%Cpp z097lCT7#a&pVyyZ8IWh4XFhh`iJh%6y%TdH$(NR0gA-=tH;r8`qz4J&U!qRWvc=^DjYWqn9BXfFF9?~9%JF< z^`xa;Nj(-~o~B0nA?YeG_KP>LWWqos$HcJhEu!pl3JX}N;&~An;)NTjjqv)1KjW1I zK4ZN|Np9|bn7igMJ6~R;R=CJ&i2}F+-)PnaJn-e#f{ME3R9{C#D3<%oF$GGYdbuL(c{QV-DG;b3H=q=Zj5_v+Mf4Xp^JExAMXZcu#A#>Jf z2U5Iq?)cUy7!Mw%lru!fKzAo)Nug`om z_lOw4tozukaY*!cqwm&zNhkgFzGpMugtLF;J?QF13Vpj&_Nh71(Mx)7+pX)DXzs{H z9M_#r`)QoNfBdSV_1!Ipwd0Z0So-;0-iOArcf?0Frp3_0$9O+nj~B@^RB!qUxqOHQ zvD2(3y=Le==n26ziT8rHd14tKai#YmUE}k)+cSN<@hL@`Y)`#K zKd8O69qCMf+62e>CD3P6dGGn~1!SD+qmF9Q+n~~D-#5=NZM|v7S$&?P?2+HKVIs#> zr=O4OjaWAiZ>9>I*Frw8*38Op?`E|(Y2r`EEqfcY^H1}g5F-l zG=B)|q~0IUb;Slgj%LksoNqJQw9}g%_@q;O>@A9ojiaPwy^l`L29=N=e~!kqDoyYI zrT2l|ys}C0_Y>pTHA=fd->w+SagWg zMZ;_J{Bi{P002M$Nkln=uERNx#{SVPo>{O=7Q=2GK_Bdrk({~e^@xH`KSKl(s<*3m&+7Q zQ`he>_Mj)y>Gca#+!|vKw#!G_f#B;~j%mj_d$;aWg7RQ zgT^syiQdj?k8r1VzqOoOd~Nqe;yHL)>&k5=J(Py=hpHCi-lZ^;R~ZTP+b6Qmw+ZV;vzORGVg|+epH|L(CN14eF-io|$@vexSAP~CJtSf4QgO2LH2L1rWeWE^MUS%# zKDyvbN>r@X{QY0tgZ?m_gMNAEdMZ_XBn7fPOuTuFW{;gtTaId7#sWp#*T^2~c_gP? z24DD&#uFb1h+kEZ|amE z_gVaNgdG2i=03lW4u`O9N${b5?2u~dw^{~G9jgRMehk}5u{YROtY;nKt?i*1ZvnJ_ zW7^^i>S#IkL9zY3-g}xHNt@mlI|JThtnK`jV_S(k{PZ;YQV7>(kKA^ArC>hZq4%l( zu}b!!Kf>)n?~hK1@S(*MyQsLsSM?tB4GV|yb3Zz9S@#EGg5Bu(A+QCM8Sid*Z;pWjzOF3N&KAugtTPcrOra)J{7x#mo+;o}v*Yo&V zh6la6Ueim#t~8UMJ1_f&%Uu;RkmLAYF zC!C|v?2}~F@}u&SLn@u#wp`)*e9!ImJSD}Dm)jY`E;`exa~J5`t{-VMJJXx_#a23h zHGmR$4{?Z>2c15BnnbUiJaw8}&z+!GAMZ{>Cod!C3+@zlO9Mj?#Z4e(nWoXkG@jk?XeGt4W$8t^KzLHXFMxR5!&GPGM_&C_f zN71Pe8%qB-oA+~f8c$c1&55FQa~W6j*Xd%Y){$xPUbNwz=V|5FdQbA<#p5{tHuUpl zjU(+kpZz|(IiI85o_V9a_WoMeiFnD$e zxtYFZTzArA9M{L#gP!2BllY@GHJiPPybR~WA;*4F$ALcc{b7|?IQR3~N}5F*b>Ebw z#%ISGW&d8@mFWvWaXt7fJVL& z@LQGlUU%*DBRwXV-k;Hv_p(ptWBqhnGu!`(6L)_Ox`&-T=vJzAtS(tPSMlBl^ryw0@cvzBZS7G~@T}Um_PD zZG{hPct_Pu#}QA{h{PEtG<~fjxpFV#PcuG^kLGdLC<`(OAQV~ z&S>W{zq=TXN?RhcEnB>Bdw-z^&to?2(}PML1m>*HEy*pOY@^wO=Xmyd&hypmt$r$X zZP|i)wAJ2{4|!<^d0#KqosPzhAE6;*C(^jVn%2c@ck{4Bhij*IXm6I)+tc)E?AfwW z3+l{94K+uRx6!F~-~W^H-iemIY5L@+*gJhIYFhzR$7!a;1MJyt8xQinE`Eu< z=}Vp?=&xg1M!fbdRye^6v3vC$NZq@1Ag3N3dDD^;ZTwR^2Q<&l%!rqBZ$XQ;Y9pP- zoy?Up*!hRZ#FSYyVn7EfS4!}Ar(IXHVUTiL(`DWpRg&eB>a3OYju>sE?e;|zuPblt zEB|oUd^H@&T{^fz(NVw8WP0<>+0>e8LY`@KtMLeWW+doIZ)VHf*BuYcl>l(*6W9=;D6e-tu&Kmgdcwq#g3L zdxI|O1I#Jx=vFl$fTq1@+7$M3+_VX`;|U`4dydWnq zNbVf*^O%o+pqobHKK6!8tbv+0Y)HMwO`@rfc2LhVzuBn=>^vc2@;7|P$Na7+?Y21U zOQ#Dze4yZq4tt8`OyB_#<7&TjEt&I??)$!1ZMA&c!L*dy;iShpDVVo5{bgzM5&rvV zRJ~I={K>gLTZbg|;-XQ<*$rovf#PTWT9!-lfGoq~nLFcejb$ zlvNq>NNKfO(w~?lw_NwfalB9M6=ZIvp)%9IKTI)0Z(otz#Fm-`Tny zXb{AYEm_SHBAv5I%L5MiO}J#Rxc{2Z)8=JveDp}63mSJWV`!W+hb4nBJri8hkigE@ zsgXvl7W5w1%0kDS2NpXCfg$%R0wnqCun$E6VH@(O&`j91Q`tga2fk0W_N|zK_1{k%pL6)wEL>}mg_3r!2YphSwAh-!h4diQ5GuTz!5ec7}G7ySlR$r;UnJyI zBH=SxT)j;^BOxNZ-w{%IeaLP74=f^;VhwI$*AQcuCzU%Wd8Z2qWwQ7b?m8HZsWMt} zI^z5Ami|4H18`Ui_Q8SEH0P$nL0CMkf8~Boy*9nCn8Lc0_sbN|bq)aM9|z_f;y5p2 zk>s$X7@nlwiO2QgLld=YDxq-@F{ZHa9ZU*;`YeiT*0p!q5-iL(?lx~90?ZtBR zv~FR#DWs^sRx|h8g^2n&4@;^u>t024*2zINZhg~g#Zl%PYrqqQwS8J_&9(2|18;Bk zJ%^zx=?fwJ_3SUtI%dzarX_&9#Mx@LgN;K8SVP94;LE}i2r4E7Rx{X1)&N;<1y@UBrho$LXI=#7q$w=EQ&QJAXVNp@T)5Yq?_m>Nm^MAzR^w>MYiX)DM zAb+hqWYZ|&8y$6ZEDzTblY{Y$GoQ624l*TL=xZML;0K;Wkt{me+1M$63OPKU!*G2* zvD!Z|p&qi$sG9RTKtqUklfQ6?_)bE`mN=nFOom{z})10(~ z9l;oD&)FFC zX^c+=s5O_kZ8C^g{a#5U#mm*unkxIqt5&Yog{+m9DRbAEO=<0m1BfhwM%xNtJ9kHO zZJ!C;cK>}|w;b~l!AnO@-_7uvw$=Kdh=d%z#manBITG%Ct<43wDzpa&0KNsVj@_j{ z^+lshAIX_}uE7#ZdMjF>^;?E3O!oNP#tsW&mb2J5`X!6CdL;VKb*#vS@a^dWOxvX@ zq#hFHDfb{~Jy?KI*M6nI-Nq5P)>*SVxUlnE_T{&s{70q-83+A8mSZ85v^}|qyMe8> z7u&7_vT4^Ng|K_@WUIRoxOa%6@wBqt)|N0*d$*Pd^dyhYr`77+abDd0;wQtCO1z@C z{osb}SbSi2y5x;RE-839`Qsw>II z0-S*>Kd$X#KB0aiL%iVbYDap`RsnBQc}mh`>9`$!ueh3So}S~%#=XdJ>G=7#Kf^tT zjQ*-VUu9C2KRj+MJo4vj+bHc_3;9S063)YU1XmwiNnPyv7sF{R!V4rm=SvDnRujf?p5k@*=oa)KUB|o3Ejx z^h7JX)D~!aI>3v@lJ1*TFoJ?vEqw-B|I6 zdB^oH1o)8Hm@u9~6NKNKb*756v<8t6Ij`fS%;sI97eIJCZh;dhdou_BW<{cOWu=9_ z!XY$vuU5GuWtomjZC;}le=G7LnGAVYV?s5yA~WQj*cP{?T4pPc90@|)lys!x{$ml| z&fA*nJ0(g?m)TjOB{JEri#?A7-9?xppZSpga4{u&=7O%P&F}ETdiBmsso+ccgM*gD zSP<3Na;|p~#`0FerHXlAN*bOc_KP;eRGS{*>@MkzbckjlrrSFOV!9EuzelG1Qy}eR zDK34CF&`s0=!oC~(BYN|a{A#zq|g?T!^Guu7GZscOTA{+0Gf({zCR0URpX$)qxUs; zTFJKAASkALSrK7_fBKoKfdX=uYUEEuQrfKYT= z90j_3AtTg>-ZoHUU4<;aaf7LJ+c=tp3M@^D*5{*ZU*8=7>^I?;t-(e~JzKqORV>^* zx$(Fj71svZ?HGM8zru0^POJ~-BdyY=Hsh?HHYa^he>5RSy#`QalQu3iAdG}Xi?enQ z+XWht z*-_iTCcWK+DEKTkeozRi)2sYjfnC#_|9esbXSTQm!#Yx(xo3L<#jUybE{;X7RI!v# zVsl5~$6QpItumooTs9uJzt_G>xahL^rNRx`E-M$FTjZ?Yxe|=0P$@WyK!3{PhMkeo zq^FRRT!V_ChaMP-;!R|Vbl!h;({70gmo3_JkG0srJ$wUeJGGaK=PxF35NWVbJ@Z3O zTHuNbVKNRso^7Wbi1B_*Q~Q?M7KUU5u6y~#;|H=(jIlqQtmkiOoN>QW%B|d5lu(M)>p*$_F_c)_FT+0dk*|XiPg>v(|_Ixp_s%>nlm3Kf&JgPgz2zqND z(u({Y_`5mlD> zmSM?bDRRUu(e{6beJ{%@n)|Vf4avXMPS-uryga--+YJ+@3J$(FniS>38z)1~&oUA% z-n`Ir>|uV2eo^JETq4`XdgboM`AMgGv^mWX1|i}L*}BqrC*2`}Y- z=B@VrK>E~RLs=l1k*`yxbv#|iM<~VIdj)BIS$T}dZC@pb>f$FuCdF+O$s$AF^6E!W zX?YOJi#4BOj}`K;b-no71hpnFwOYys^y4c#vA{6m9dR@P8d0ge87+UPubVV@Zy@`N z)}B-8AZIjtYgEFvinE)E%fWa1fLm2ENDI+KM-crOt87Sg=PORIk$pI9mm%tx>qK)` z>^K}Y==1{q9nKda;Uvs!btqQ4@BG#J@=%$&-Cxqffs59|H*MZs5_RkD3T6)y-U#D3 zM2%2w`~J2(1!3Ef5^TtNk|$?FuB`GVQLT)Zf4yz9efZTB?PBmPB(#9WnJ;GLZk=Rw z;`=?dd^6cX3F>jR5npEfX1loVD(ua{eOpwc`eW^Df?(}@#?(Lw+=CjR)Gts#5=$0u zElBC0DdP&|p(X(*N9=-c)jQq_LHj~-v@RaT8vthl|02ubMvI95;&@PQmJ11T$BDx} z1tA8d)Bj4$`1gr7=sU^ZU3cbaEe|LC?o%32&0a_Ze32)}SH){(_^ERgP!H4#Qz4(? zHONOoC(jPf&Z2LhLP>Vwk58SB3|2LEmhD@Qq7qptgl>E>gv=}H?9Q$LhGoe z1{9_zAy^9VE{+TfBto;g8zWig2Kz4?V2RXx(|Iq&6M~`E0POPd;L=S{HIK+&r(nE-95Xdt2=kCE?i7nGEoO45GGg6uk{3g!C zqjjA1q?tV?@1@vZ3P@N2<4Q!eF$nYLwO#;iS0I>(?(+LbREGy9`*%zht{r5Z_! z{r>*01ldXQ5Vx{C%{q@?5hep1$aKgst+K{kNjr$QIOkvn!tB}UQif_)8N**0weJ%t zifiW^&uSqPtjHQBFgnw1?0c<#S3CAP{4pr(h>JwyfN6}|;qF>=x7oLm$@FbSwMofL zU*5?WHrxl$+uX@+wR>vFaKxY^2h!XRZ6H?XCGrkz94TkwUEvPyg1@`h7!|TY4~oWGVg?8en@)UTt_va85-bf) zx5~4wG$g6#|57S^oCxYf+*7AkXI#YS&lbp~O^C)9UCLkWOy;mJe&J3aEqaKp2Vy$V zRmO`vU|Qa#(PkBxK=$`iKAu6YI5se-Zo^_{FO;f9$+c`DvAlL?u8OVK$dQ0N}=VzMiF<)~(r zRUwb9SD=TjRKWoOphP+pT)6Zo3CYp@%&uc?u5I)Gku)Fl7Wxk16Gpfx?oBCuOGWmxzKv6UK>PZEe#tWHCv^lrJ`Qb!Gu|^_?q=I@b`|{U}#JOW|;Kj zHBb#Gi#Ac3Rh&jZL(wuE24i8CPZ}Z=*ENG8`%)z?Fw>_s!;!N^lO%034;mXc+=YKM z>y|PhWqU5UW%4T=NX2lXIv0_Mqq_UcxVloI))IHY`*GX8(ll6rp9It?`Z1F=8I-uh zX@#pW5uw%zdStBg*A|H?*AvsuDr*`=$iGkbbdEDkH&rM(BdFRDCdz?7HAkI`U1@5@ zKIYGqp$^FSN8RM>et5k%V*Z}b=dG2&bpouZ{ss?XL!*w*3Q;LGs*kvD)vrZE;Llf) z>7KOId3{u^rtu`^Y9-C{6EiIga(IS*fq zJuA1&1nR*eHA1hg=SxrH)f^N+L#W=X9Fb4ir1$@w*bVC^@)$AqW(q3>qP*L!Ds+ziFkwvf$r8QZzBj zZWaJl`KZ78DLXlb{UH~R1Gk#@PZvd~vD(M-1x~1M%BhN`Yg1(@!{Uc#f#1lTa!yn) z53eOdXwUkDO%DD&nUP?^7o7!_YpWAgZTpS$x9Xts(o&zGb)dblgeTI{N;U797Fvz^ zKmnv2Ia!dxj}@PVrw^Z%-YA6{Xp_r^iJfRXx#H;W4Hny}6soM^*q(i_{_*8*3+;2O zV5k&foGRL3G}q9TUaFeKKC9S|*rM#NTTYmO(9^r~UU*a&BUm(TV9(~SN$!l6m6;=U zb2r1=8-YdT8(PNFamMY6ZM8hR+x>za=w(KKt^2~EJ*m+>>3va>-F*&iw&nXbsLI(S zRgu{m8&$GZ5$0p1L5&SO0N|`@^|7kIZerak<1WTITkvoC716|?q_~u>RC@SSqpAV= z6=LIql+R<`u2DHOEGv-=bP$f9rz z1$bjio_u=IJj%H#Z{O9|w8GV>Mn12Re6jS~!4a{>qH3aHEX6e+k8F)|uF*-uq1$LX zj?K7Iv)oQyzucPXMBBynbkB&g(!4a~YzS7SLF?ry^mS!0L1s(FjR|?V)3klCjrnjm ze9+4@LXGQreqt$yP&-^ao~jyUU7E|1fLU*KfI9}l;*Pk+P)=7mR=Sxn%c`=u#4p{T z=0s8J^_kPu)0B|Uy$o!xnWS~qXEr*2)sTF;U2Q@^UIlGbIwR9=j-L+Zg^lEXpk`Xh zoi=1Uo6KKJ{b*>I@NZt56D;M`83G;8{IL!qy2)Ur{ju7t zoyq+13H*KOp&HVykk?vF#7z2uP zx8bfI|G7d5?zWsGWin_8v7|?kgzR@E_o&7#dyePqPKJTZLLl5t&?q8HKAYQBkv)^& z(qHBB&g;Fl3>)0nxJ;#~@&ZH=oGddR4aN39cOAc5pM_B6skk-QpF^*-+4FF5Y;JaT z_&^L_z6L=e2e^ zqYGM%$ODhwY>FK$8d5WU9%);yG$6P?oU7<<<;T(5J%^<`!481^AU=5Un$*r18`)?Z zZSOfAZKf0MhfVuK&e~A3?DH&SJQ@~O7fn`JydR!q_a0kaN!K!hN{dq%s{x?x$rC^ixy zAb=S6^C68-%nk)g9-ggjXO~Y<9K>~fC*Ed%fB*Fr0OmM2#gT7Jf4)rPaIKZy>-9>k zx33R?UCf_eU?;!#-!Fc)rQcqscL1i#RiZ|VBM^;^PEIZ3Yf40t3zNE>w6w6a zH2m(`hg;Q>=0nFgqSzDu{}}wV{EmvaYVg!pJ|-a}Bl5Ya7K%Y{fq{Y2lxOa)53P-nh45C4NN;LpygmERD*sR2A163|xlf)s{*un;JZnVN zqWP%V1)ELfE`r?~pR>4}{@If))BvRRq{khJUHGAn=kFB=cZ#G8D!wp`>^A+UBm5T@ zE*#NuGNZ^z`26%pdtbnRe7;erRp1E<3E7>@)2d_^WqIMOwYrFXZUD@cdAz?q%`Mn# zFeRm@hrhi%7@f?QV?2JwlZc54g(>dh$NvH1KM$As9KT9eb~`MWYJR@7d%d~cee9>% zY&Rcd3azy`p&KyCC($nIk29l`#|3S@wKwA5vlh_lI6W;~O6OCZ-e0GG# zWrLslry`Ui7+}A9z&yd@*O*8@aMAG=m_V(z-5-G)O@ACK3Uw9v8C}nWT=IUf3ZnC>XoR1XQ7->Ac zo~}%0$KAY^`uGQ-_cctW$F&4H{RLs~pSMW8Ny48K{)GRr@qq_@4sdV9)pmh+;a8)K z{I(GZVJLLICw%d?^61p6h<#z4)y$C`Q@KyATGr_U0nK1Kj>pQ8q~QWnqb-X!sSds5 zLN{`N!)h4}35T)yDQK?V;#ks6;^%-}%(9^}uks zmzBGf)%_y3Fa+-PrU&V7GgUssj=Kj?v)AoG?dwh%LCd+iHuc4%(?EJ`1z=8A>hXUD zV6TfawiQ+G{B~WI6JOzfqQlNZsrxudB?VPZ)775LU0f_nTuTcUJ%eXSU|Z5(Y)u%TG0N=u_z_v2G6 zK;Cwrfa7lS(eA%c{hw|MJ^a-|%wFZ6vQKF#b*Ae!OgJ7V%74bsfrg<>$Lf!Lf;(u* zDiVkPLf{kR_M4qL7u*wHqp;uPY3z~!XZxG4lQ}}R_V$XmL-tLdU9ALgEEb8Upx4Xo zbo^ZdgWY@dM{Q-g2+CAM9Tb^%c0s?P_35h6fQpX=;s!ky8!sc*>ofO@2@v<^-*iL zKfDLPCiCLwJ7DE=aI#PHf}lO2#^&Jg{~0pa>BLX;T!%|D;)fy^3N|;}y$`)zrFwPlbpxHQ4m2WOaT7Jf z`BqPm5Y$19whmrzh!S?Qq!aQ6`5Nx~`+MTe6sV|uxs2ZL_Vd@W zjp{5&GO|OhR#9fl6VCr&XiK-(qUQRJ7-f9jbN_L%`J|T5m}qh>0+|b+xYSyiu}X7Q z7qrqqu)73*zYge6k$+Cbt~_Bo(RyJ>;au`-z%-?1Uox;43KH)K9Lapw?Nv8xLSTXm z*C9*3#a457wOonjO@6^5-$Uk2t><9dtBNgm7fMC&!p*-24#VcJ_|vXA>)T7T7U#Xw)!G$FBQs6nl@rxwAt_BNo@>R~6ybeA(S6O5zzt_{ZHPEFwZlUTJvK=NXss9iSxTsl>8`|Z~KdInWcA*;7X>Tm|2EFUSHtaR(-LEu~YT+fCz6{!9 zTO9JI9an9#EgRCstYL(!PnhiHu9IGzay>N^Up!7LX08aDTz@p^H-b`HJ+QiXDf2X3 z*bxh?i#Dr_6y<6rmg~kq@-zu3>@VsaN$$4V)>4#p zC`;4&<((pw7JTXlM%+s==usMh?k?y~hC}?&buDzGHO7!Ae0G#fcH&wJfJWaq(~!pZ zBo6B67m!7w#t@@Y&Y?WZ%H-hfdZ{xV&uCQw^!So*)&`t6i_E=NTm>``l_#0`sKFqe z4!4Ja?nRvmReWGckvwI}rA>(msC57;8_s1|OtJx*I-lsERva}$K*p};y8K?-KnNA{ zX205yB1b)zkdTO$@PL`7KU`_7wEvAc5oxHh7P@M;wklJ#?^|D97ukX9@$ijJY-I@G z9__dmRMzY>rr|- zrZrGKtx9~XIjuv<_SL4NFo)N_4a1x|Un$Z^fmg9F8@S$`hwiw6oF;44=+UD#nE4(J z&Ov(=7T#j|WyAV|DOP&B&P&GbMaVeM;d`5i#;|{RpK1#P4jV3)vy~nMm?*0}ZTL(D zjn`A`iwu}{9Nd#w!PZ$AZe^g(A7@vc(%#&yHq)`-Q{S1;>TaQT_7Mx++D-~CWq@hG zj$?zZN&CE-#fl+*)()7}6Ke7kS)T)pb_`LVT4KFKw9g}<_iN7i*w<#BA40}|=-g-9 zpO2~Gaaevt@!n%q=z{;Xf#Jew02@tqB${<*UokN;NiR|85qFK*yv|pfuOBDfoH|Zm zRSG~@UUk#4fpLjwQQ2SkAD^FzFWs;dHQM_&cSW-a17la=aPrHhH&MIas@)&>R)b~s zO*;q1uwUeKg>i5Z5)ZkZ+oXBeJ=dyVI_-LkERM@&!?#O!(LL_)?(v-jLjPhtIV_+f z=X71(-wO;zhC75*Y(RB-x>I>(A^9}yKLB$+xc9-c6(qo|El0dntQ-{jhk zTjCh{?Uy6X5>X}^yZ!U@1i?m+-+zGA4&*?9b)4GV6{k8b zHq`|xBoiU-+`wJyaQ z396O`NI4W779l42Pr(4*?3xlO){dkXQ+IvgCk{brG^}o)?9&!>Nn^3Tw`(oLXm+rc z=xWAZUt;FR?b0vkDcy=iP%mW6GzhsF9Vcb~@lsy9bswT*6Ia~Wd85QAh1!inDaN#9 zSxaGItH%QtK1AQkLPOb)(Tnh4Co`<}2q)8@hA8S%w&~lAPS(;grek2LTI`Z1xIlF_`GH5qlw^JAGeA zv_5BI67-xdAMKBYP0XL+kMWM^m1I{0@W2OBHDrl3mtdjnSa0v%svLz3lSJ#7#nFcN z(BP_H4PpyF9eEX(6xR~5$aoPXEPGHuiei>2AerbmZ$(81OL9(h#cMQ?q{N@$Lah(o zRaK@A4@(c4q!zn^u61T4hIS_6#Vc%WDg&$8?er(CAH{l)nfCwojw&fzNV{S!l(4`0 zRg$E@QM#$`%(Q6gqZsvU4KTF7FCY(i5}&jWuG#jDvePpCgl;O!l#H}iQZ3ZG?buCn zrH1w5TmSI`Uf|n<%Wv5k%A;o4Cr(~Yg0Gf&o)u3dsW4;9^d$MeNiTsoCj8MWGANB{ z{=czwI!AMV@Ck_;HhU)+tBEpoSzY9}=1&)ilKgoNSv4Wna7E{R-SV}GM%nfQyCaft z#8?sDEYgH+D(-C!y6Ppqc#_-3L1STViHvK1a-+H+>o_Fa6G0Yke1@(n3dW!-sNYNq`&kz6uC5#)R{9neie zoQx^V6Ro=72aSY+R6OUt&Yl^;Mlgy>ucCIv>wce4CX-tH0-PzFBJ_Tj@KA<(`efkM zwydLdeX?}it~`WIOd1FDxbr{BH&|*Ud@NQQp=Vt81g7%O4${X21wntFZAz@A*&TQ7 z4|tFRj4tlkY%T^!ZWadnZ*Hw|K8p8kGPvecoEj-%fA^!F){o8i^|$5Jo{rnbTukge(U%|jEp~NyHLfM4RE`8E zUJG1p7sZl3(%1(SkESl<(-~+;#wbve*2t3JDVaYU4wS&0jdz}cSM9q=*+jHY>Rou+ zFDU3Iw|HwTR3xl?@oY3H71xz(*^w>dx>uw+Q8OG59uIs8Vx;!Rb8-0y&d0Mc&!0Je z<*kl|GOhGDXa#WtLozJ+v?oD^ticNz@N+wSX)L(wuX+KzV9j-n|rmP-kja^lu9 zqDKm%-mFLcppyO1w-zrx-svVdt7XDmloOZ2*I*jpda8!$e)LVoY>>ZtBbX&m&B~n5 z7#1IXrZ>f&%D!As`v;i+&hDRlE4ydof{sW5?p<=?rqqdAxT2Fnxh8fyTaifCdETM% zSEH8QSQH^>zI3sIrtmqcn#khG_{0n6oZp}U(Bg2YuoiTfrR`Uzw4u!Yc=|Pr+6LY( zK)amO44|dv$w_d*^w5{s_iJqK;bxJIJZfRJV2^0;OxdjSJc>Qyl)XWTnnkze`4|rq za5FX~A(lX(wH=gkobWB7G#B79c^h>k8EhEez58*d<&Q#gq+K@X099azF9C9TVoh3A z8#8P%jcfctd_xBp-Zi*W8TmWhGtK(P{B4~y7RaQHtOM0!eC8jJqS1HvJFMuVp}x^mLa{Q}`_ngbl^hzGCrdaHiFgq%u&%qK;a%=JqrSxA0#I)D+57Q=AKiENL$7fBG z5VNUHtA)HRSyU~{H=_@?u1Veg#COHABJ$O4Mu#uFx-A(@e0^l79ZNP_Z8cRB*O@E- z+6KjQKinHQBea`TSH4N5VRSo*tNj%&@_PSk)f2aiS&m|_N2K(TQe{6Dk6lYwEC1_f zplnEi-okk9aQ*QN^+`tUp3SoQ2L1_9erK9xcQ3(FCWmQ8>mc<_*D=rEA9wurb@5)g z`GvWzXRhk=;C=C$_r5!;*TU4SryeUo^?2x;(RF0yd>4&P%M`TKCAUyH*1!Z^3x3M; zFk6J1Y)BFR0$tHDyk4mQ38|?cIbD9(SIHjD+me$^xe_HE0&=zD(o@G;F}<9;b4@lT z%aK@;jFxt3>@b%NStpJSR$VT7t(4hY9D5O&P1BvD1MXvScPnA-7lJ-5@zYCKMTx-hv% z{rZBVEqbK$-j&{dfWujh9eor4=@ckw~H_A5Q?dw5A)yv!I3M@ZyjeEx?_p8^6YEh= zPTzIJOhsTg83K*w8^rnzd8*5Kd^ zSP+g%TN*|j)j-C2kYfYmpNZ_O4KLNX0ZecF!tBjI%kOJccRUAiXH+Q{eM+}Ca$2+g z^EMstk}J+jIXRAijmlg9x*N=m zyq|MP>()10dFn_2gCWt}yHRTMho{+GAYtStGf#5hV}Q&UKyyF7;m8yDscDPpCf$L6ve zsz6zg`5rRK2a5_+Z6?#V@u@H#hJ^e1%_T@jl|A$0A)4RDoR*?kxRF?g>k8r%WOOYwJc<@w0Z`?Df4Zb9ddBad0$0BrwC2!(HTZ85RC4N z#%(^Nry5+xFkpYc6u=F9*$g1 zaEJFbs2_YT+TE(H8KC6<9q1k_lrULc4}tz#PlN6rCqe@U4k~}K+wiw|-2aR?OHASq zmnPm2xB3}pt(_ymnq0wUWR^8TdVOV^Q-I3#&(S-5>WxVfHhXWvCs6h!zTxaK%L4TWQg}GTh|GJ!;eY1tM4yoq^m>>Dx6r$|j#& zsN^Zxoc|d1ocUt2d>wM0)?Q=RG0aT@?d~@H#Ie?7=K^s%;tX|&)Em}%SM<7mx+?Q6 zNmXYrBdLg-9$_7UAf1FQG0A8D=Pnl8QWlxi=5Nd0y)$$wbEtSC);U|fS%qqTaY zbw=nLc_QVa@xvd2fVi61oh(E})9#%*EuTlTuP#$TV1MvNyWcWty*jJe_EO`%B|Pmc4?Jjm zKQecd2g^@uHPmrwCM9ODS~;hffzhB@sy(%Oz9I%+p6Y7jz>$V%Ei%|+XKe7 zO^}sUuj&mZxMWC2M99T#)`+TaPtabRcCd^SNP=f3__G~uz}HtdJGefY z`z*}M@4G0c+U&Sr&S2iPMS}O;z(ADGo)JKPwQon0^^U6hcnQCr+^Iu}$eN|$gW7k!lP1NunQ$81 zRD=04^W62+vt%|lv!abdqxZqtZpMge3Qo*6c*63y)s(Z0(1uidFj2p9QWc|FR5}Zp@sK}mbio+|vj5|FkEryeKzZvp+Gz zL<#DN8Fh6$s}KF+mwXqB*;EBDL5a@it@$KcM8(8neHV__rYlu{kK(y11g=J#zrJ`` zIqZ&kDvB`vSdf#W4XGuk0dSbmq?9&6r`-C(E3OW&3=~Oe2?RYa{9wPV zL|s8~OQ=SpuXP)~{u{Z>#6oSG9@jj?t~wfHqGMAfR?KLL#u8r_+qal+Gv7%P+u6QJ z=91z?4wxF@3m$K(SYTey;O*0b5 zM+yo=JMB|5QQ#UK4s7o#_$87a}`c24gTU^%HQYQ{@ z$@53;V;f%ebxgc%iOgEe*Nlw$bNiR^V>iJ8W2Nu@JPE;OD=O^FZqNZP9q00a0Ok%i zyU!*l+S^!%r(xH@|Ko}XR>ZAmjvkR#t5FyRSXE-zw0RsTsDhJc=cKFFOT=>sTd^uG z^1?P|=eKvQ`p#4=|10He8u)vk`u*b+4C$dVaKrbyd47&4657iB-9LXpIz3RFm>m}yBrz0-+x$YrxaMy^p1_1eN>Rm@5B zL{nX(325Giwne&FA`l`_C(5wHuQvYumkXdTuU-&dT;W}TM1|JH`or8(j1lk288*~Z zwE`L*pC9f)&a`t^uOWN1N;Ut=orPI1uw|_wS8D{NP`ZT+T)n%Za|pg<$wVxVjK{v| zjQG%*+4)T6K!dER6W|;+BwN2lecgsxMIs11I3pL2rK6TiqKue@F~SBb$eao3@%g{x z_%+$jKm+X)1hz(}q8SX#l9w*PD`HizvaF{#Pn43oGiiR)IS;{~7ys*d=sNEcT;c^H z;pYqtX7O}?kC6iy9z??Kr4`-5c<`6ucsgM(t3CjO5$Fn@AP8~mx_lrwi-~uKAwjrs zwwLih?gNMo@u@Aa z?;A$y)SdimzN(`El5b8SQcv^l&`~s6%7mVUv;@| z>SDq1<3P9r^)f-*9r<8x7ftv~1Eh#}A)874mY@dQA3MKlH{Zm!HGPLIfEP*M?QL4? zKbh2UEPFC_wibAY0#7ztIFPt76_f@^oD}A5{w-)aVE#cFD>je^oup7O#}SS*5498r zEDt<<*!wX`2@0meq))+I7@U-^6yw<1@{xKVAQ8QGq)`8db}etp>Y)uBJ^1>`$*k*f z80IK4oGUIJ$w~&WRhAatVrL@#;yyq6)!gxuAERQrRHc!91O%BO%QJMcKM0fUM#`ok7Z&4K8Y5))m!-f?z|irp3jFa zf~;|<4)*@UpuQEAi;kk@T}iJ!W?u(!(fRp`y1&C`V#;oHCP0g)vtkY>()lP?mpjLw z=ixSg{5YU*+8Ly!&mT-c+LJ^RP*kZ)wzk#^Aj14hNGB~k#xsn`Y|!2Cq%QwPVtG1` zo`trhk_p!g{c8JdAMrJK`8VnV^bXH_C)gE&=425Tf@;4%&p~Vw@Ml zL$0^Iun4nt{xaGW*I&r9XT1FyLc-y2MCY4JF7kEUR9{?LR!ups1iw8qH&?-GkMM2c zWb(I2C|aT1!R#NohIAz?)(h3-+xT?8gP3m7e&R?<9hr73m(ecH!75bNxAWfv+Ug^~ zm1iiOt;eE)^V^4xOQQ!2{aPob47ulU$sc14!8!yL5-bA?Z*T5{uVi1 zw>!R?#!|{*mnf9ip;c~6n&ktoN_LmKKOqbc=52;oCWigYNkyJaO zSP18=94vsaAPq|#QdUf5D<*mhLyv2zAC@RjgxHOFgJS-*SuiQbMHBG6nrIDj)m%0T zoWqoRzm>_Wr6WjRv(`^(nP<|0z2_pr5Bmc(#!t7d%WgcfTu|fqM8@ep#`LuY=ROXd za6a0S*L3*pK-b>zL{p>9GT@Zw4EtVGT~2@QR^kP8*TMRcG`Umx(24gf(^_VQv?0+HDqNMLLAM_qQ@cS_Ber$%2rzsWk-MImS9YQC1m0 z?R(L@gsO3(Q&jql_lu0grqNTIEDGhCXNxO{H-4OxXhv1jW)eL*uaqwb{K=C2Q-sl2ljeucXbLfR;{PY3?%%*D)QLEqUQX0cxwbSk8W;7@K`QvWxwVeA5dY_!vsr2~j zRPD_OFXDGRW*Hb933%m3<2yL0GlE;YHq=c<1nA#@lLNb8Ija4?x6k|W@3ALRWD-8% z&G`xu=8DhlHeVin6I zSxdB8k{k)RR?3EcUi%=Qm9tJ}i@=pc^TUiBBsf9yB6uLmeN=V`xa<~t^+)1sxyln3 zBJGZ*D4nmjJ`B6k>~=gSy(c&?6;m){D(lSQTlqLjyy%{P)h z(v-io3i@l7dm5w_+pTA`2kUp3>SQIJjPKnTFSzbf)_T(T@H}k>*ulSn8P4`{3sz>? zZ9l4PZ{DizeZOVwWg;)=URzzP#+I#qZ{7;d#$4DPxsPTV!_a8+lgDMp*o#`esu7TuiR}=#FB7q%%GNk;e_nBy$ToNp8-4<4K4@mOrUGmX(cc{} z#7Q5Oj>xT)H9kGi(;%;H%j(%tTDm479kxi3k31|ka0qzSm`d8r$i2Ib<%2+;J%~q* z_LYxmnq4(UQ@`Vq8r#xlOEtA6l}m}xVNH?m<4bqUdoxB89FTw-~FUL``A zagEC8K+TD5ZynJwxH!spB%ZyShv8Jd)V7CAwA^>UTUNjVwgn>X+o+zZ%zO)YFZBWS z>HU*w+h`EcLc1SfB6TRuf|mE}AWUwzKX&U|sIox1s%hG&*R+|GERaRqnl+@n&LiuNUNz9F zZWK}o$xUsAUO@pMgEsNe~pYMyu zHA{#FUOy!RsXM9cZS-DCDa(0BvAVM9rbQdU_s+|tYHA%r%Z{c^r3A<7)~K;$%wJS~ zxboD3Gs3(p%x30;{pFjF@`&4zZ;eGrXpkdcyyTPenWSN#d5TS$^l=F(*?Xou^Y)g5 zTi4O;cexxs<7t6x{|$I@K$_*rC*Q5PAeX3juKIPI9Hgb5pREfhAGE0Lxhxq=*%^J1 z-1L1cv-)J024Czmt%QbHxVUq6k5uHIA1Mk-i>CF=*qVGcK^~c@@sYWG;!B0ji{z2d zQ#rhImHe{!S2=L(#w&c{DXnm8WK1LV+}z~dcd2(YR{jOa(RZR;^0WH6x$+w+nlZaH ztXV?}6st_SxAdI~U(S_VM(zj8*8ZHchC}6sAwZiKcwLo2Y^(YAI|;X!Oso@2Dt^7$ zjDd%XmQL(-OGdFwvG3NH{3B{Pn74_XzvnHU$M?ySUlz-jJ?`RbPro)#!j-v$EqUtJ z@I9%nmYpar3x8Qfz1gycc#}MFo*5H&?t3*kdHS8>*9QOD|Gf8Hk|s@R`gJzey1-ol zn>cZzd9EAjm@#99!KfQsMt2v!DG&2KU$9_-j)g)k=#@51rv1lJJQ!rgw510GuI>KQ zIQTm^=!S4y2md#HcW`=P!yMxqeBhRC-o=Hj$uTuOMpHDzuPqnJd%VxCH~8Of7*Vi% zH_~!BXgg}QVL0Ab4;WvZHODCogYQV&+8HEK@ekzKb<4l?%7Hb;%x3CFOM$<(+@h0N z?l$xBz9Tc6QNT7EA}WR+o>^=9`=IZ1x$*QlH)Bd820Zh}8N-d0mdVTKs}Ebk-4-z6 zB_sK!49v6@L-CY#wolEu-ODJ1 zAeG-6B99G6wFl_;RDS*88=3a)H}Xl-%95>OQ#pOdQdNv{6vlu9WKQ2Yf+`=&JwL0i z&;32pJV#<_)vl}5ES6N>DOOcV^IOufD5P5N8RBINx|3Vx8C)znbe%=+$&dz+Os(h0BbVtpxrxG(IQ?vj zhiT^K3QJ+EG?H{?#u6w;zSqMZ$k_eX_|MPPIiXOVzFZzC8B)2~IfY6X^X8nk%<9}H zTITfKc}Qlk{?c344sXLU1!T>QSLyH3w(oc-RyNGU{pHoe(wc1*9YPoktif{XCyO7= z@v!^>4X|u;{i2yN_1kZycWXCETeOyVT(^X`rEmMm>bc4XN=e@l6XmPnU5($|&^h}o zUS#`I`kmZl{3&~FI%S$&+pW0d8a7KTPC@Q*^N8@AU+NE-LB&WJL6B@)IL?f>+o<_Q z*?M|qpM2P^gRFPIX4;UT$1J|c2=E3zSDnHE+u=w$##c7z{H-anI!@ic>eJcW`dvLL6*;DvyUv@Y9eg?) zo2QqzneqO7=sx+%Eon-#)rs~Y>fyDPyF`(u-Q=pCO*6$>X^GKu+A8Q&QVry43$PMu-z@*a)WLOPdT(y4+*l%_R}1rodO=5lQv}_8OwK( z8@6)pcYn8uLz2IG51BZ1f^==nO>d5Na>&!#Jvp#BpO=4Do{>jZ-LTdg1ANHhFWOO8 zX(C7Myk|E&q&{JPf9%huXOHFGSciVk>o1$%LEdNO%a1cKuR{3do6>Ll5-pckdJLW* zBJ=Hybinl!GNM8X zLE?h)i_wijWkcWkf;??x??X$^47_wu+7kAP-)uD9?O!;|jAh}Dljiq}$5&-oyNb+9 zB%4pDY~+7s499w|kXz`mnd`vVGTuwA`C;HlDT3lsP!AGwY;~Iqudx1>QU*UsP2Zdq;k< z-66vod+ker{4kU+s?hpxN@0zVu^T=9W?|+ek~dQj#HeVX0V} zYlSehA30B+ytH`y)0^vzYl-SJxv0C9E}F@dd4J#vd0^Up2i;L=))K6|XON zZI}M;S4021zGW<+Vr8Urhvt$vPD-g(-8u}&S-%JMXp5)#-#Z|KyL=#vc52_69?QI; zg=EI8IpXVM=?`y`C(g5|Ht1?=@Q){MjN$F&W%}i2J*lZkT_KsB1>oV@%1Rnz+8$T3g!9X%9>cOAsT=biBK>SmH!d+!aUz=WRr?V5csH(l zg&=QC%Mk1Rwylsk868;(s;fz}nu}}7-0)*OecXm7^vP+G&EXicF7qhLKT1)FEs*jZn%{%o$zu`aQ zB+Um)B@}F5a-L>Yi%^)6a>!edwOB3mAKwj)C*MbGS{nOYx{NKmXuh+rD{`icuNG6t zTd^62^=*PFr=Qzn6B^gi{8oZ+@7ihXzx)!9u3p81fM~dR`wj}E&tuGDDQpOTG@A14 zN2iG!@Xdx3NE_e6NAzg1ktn?n<}dKT*NbK}SAkvQE6(P6r&9F+C zv!^pW7PUcgHp#sMv1^%`N2ht8jzD>crqGzF@qYgw&?4|To;_oUZZJZAd;mmi1_zIX;uk5yzPM>_GiSLe(&JLL(;>` z*hrGGBwA+h!lCQ;&@yWvmhAxgZRv%wX%ZURN?W!OdJk)i<){6^>{h*QU&qzQw`lfW z5I$Z$w6s+>q`SCw_cmS>%Y=B*LvZf+A)N7ih4cu~uEgxK8(_W59qf z3c>HeP26Yr_vD%Lp%!23@AbHh)}^YWQP+MLU8fU1O6-d+4fErf=QfP(KEa?vF<=ti zT7cXb)U7o#aWRoPP`qU)j2|)-TMnNb{K7D!E+rg>eBF6i01Iv7WXd@3>Ob?A+@Ba33+1y9t^T$lmVgGi^b%vxbbW{0RS zJUqDvKcP6*DGVeXA?JAaz3#YH#0|02CAGk0lQAR&4{x5s{xd%C<~qFpG%0S~x{ab) zk|HLp@`C*D;`+5mEFS=WA8&Yz5A@fq8+Y-2olXY~Gd0G`m_f) z+mP||b~8bErFmk}jvRmJwhm(ZtPah%?}8y|c= z0{(Q}x_IRYvZlMmTSD$*;&-`OM|dm1W2A2L2^v&VmnGg_L-X%yZR=z3WlQ(Ee`*gl zBq)z1`Ln|7+GX5{86RniRv|^t#F^{2QKLvKJiF(E_lACmqS;cJHp7?zf2n(!!X7hk zdCY(M1flU0a}8PRBjPxi{aT7GwPzI z5Z@=*_v-?*=sgq3V*2CK#fM0gAQ`Imt%lF`UBR5tr#QNMEAlm3fL3*KvIhBP;(X}T zi@bg21O$g#qY8d;pON{{~ z=&_7k58~}0X>t}r`NG+a`vLv9(YIr3sAr(Cew7v-@xeDku-oGbT9r@Gdk4cwg+D1a|!4LK=WMwQg;}|!JgTp zFsoR5xOZx7WNS!FGP~$>G14;3i5~2Wy?gfIf!9mKjzx2G&P&WB8BnQQX(Xb~a`*IN zG#liO*&CN5I|;;(Zf4|srXSOU?*r`HF&EjsT8`F5v$4w%#LiL(ANL!H5e+^;h$=qM zZ(_%`wJ81J5@ZbW;@lB?iBgfCtD*hw6L`?QI!9_6}CK(i_ZIo=S&O_2?qd-lVq z1@(EGkTrJ~PwuDgc^~m&$0ABXIfJoLv~&ezOOuH5@fPmz)|=oMnc+qL=;Iwk@Vs&N z#w`RE&x+VY3J-q>HzV15-NE7g2N6BiZI*eA8@KMjCm;_J#}TBh*a)*p)6bthF;UhT zwjSxqr^9t)^6Y~{+h-%e7r&rQi5v#bSef3%$9;!l=#H**crlpAwf(zrjJKD#>Lf)g zlt+%F@lm-!N8pRPsM|3yzUtHf(Vlu@*68lkqkyWMG978WBXti;rNls2rsd~RLG?iFXy>8A-0pS!ro+YS;F_s!jaZSI%R zyG|A)P8k!s7R*DBFV^AWFLjVAt~cw9M&*_*k+)zW3~8B%Zkz#l$TmlR`Vrot%u{)l zt6nQCtTP#3>^cPB`o$2NH(flSQTn{@ZIOj!sG3cY7SuII4#Y~z{UPPj8+r_&Ff&?| zHSMaXA$A6u(ew5b)fK9K&=X1PbwQmZaWS@8MZ~^-0^>*b$4T~CldDPjTC8}9;eC{@ zE(HeQFkJ=SVWho_hc}>J>3SHNs}O#f)B*9*mcf`=Wq65^-Z11z&mmG&s&^1b_aSZL z&n9b){n=K2XMGh)@p)~E3RRvUyi(hBlRjj~5R@!g5)2rJ%$YNT0pQTOb!(I>SI+pD z(L5f-xM9nbDU)eO{b`~~&OAl+{C_F`pB`(BcqAjAKm__LLsMBm(xkFuKFKbEUj_p7 z-w9O)6(=K_w5@?tr%&N__LMkzBQ<`U`5|ttsEpHOa=|A~qGAmd&DU!27oY!BqL}KNJT3+;&pD{b~B7yPk)dwLITqP?O zK_Xps6hbNhW5iEJ?>nN;_c_bO#Y=wALq?*B5yx31CUWG?gEaAPn*~pkB5roFBUf7E z0L3zT%}`9_&YvIAPd`)eiKOV}kOADdbs0VbU5JCA=MOM{NLSP?)eEQZu0#PkFB#u3 zwzhiSB%pd%G_At(L&Me-KLS7c@zfpq1vsT_dJXi%{!n3*K%~?|L~FHn6kp%Y|!Zt z$i9FtC-mj!Jc-#PWX#_X1E+j~6%CH#;bi)mri*4aNGco_d|4ZxO(}-;?qgAmJ2T}U z#*faX5!0CYW79&k7dW!<8w?mS5jT7@kXIx{uory-gG$(k8NoQu1CeH5tzvA0+}yC; z$KjyD*tE4Aa>lrVX>EF=@`#0~l`|RLutVU>`KX0^+TZ;>V*wIO~schuc37A6nOFA6kZnUgw3TYFgEIaOdmTE z6J{<&@|^D=MZ);FyL}rn^q`R)6RqfxFJ{-%UXweNOr|HE%LuqH5Vx6HWsIL z=fU_Xv(e+@2lORujjuMY!LQRBz~_aEZGz5qkfKCoWYWzmY1Pm&Hy9ZU0JpixHLIOv zk`eZF@mPfYhU$8wFKA}&Uyk#t7)`nX%A2zQQYstZK|%=ETa36#kd;4gQ9daZ#dvMw zX7P*=UQvTed5|%sVvR8HpeS0jxX7B9ijB$9y8IG18QKk;h7UNmq4aNQQQlAkadZ22 z@xu{3dR7M8H(bI;OUK~cixW6<=>oF(-o}-TO~_x;vaGfjo&Lx%c-5+Yh65j_>#_q$E{)~&D{+~pQ`b|DV4qj8Kw4XrrTBTa8Z0OrL&^8(TV{ple33;%s zNui7i@1}suAKggnnu(t_FBV=rhp)#^z@(vl31bp`{P}1stbP>3=3GVeIPB%wA@pzj z0a7$th2>)#Ays@f6x0(9r?o+g%6)L;`Z5&HLa%SK2Zj04`bGHSetxWK<;HEW1((WB z-RtdG`W-s&U194dJgD`#g8UgP@ye-}l)s@UP%I}bmZ9=DI^w6ugBlE4@iN4soP#R{ zqT|44SiNsA8kAF91Km3`#{2IyK%Z1OuxxMzUd=|HU7!$BC~M$)7-a7!RI8OddLcXXJs$=aZE z(}!{e&H7~r#3N-s`Cpc#rE&SGkJ%{r^OUbZmh1*T#k2lPk|s0%n=BkzGZW)i7R83+ zwGcNbn6ir3rv<-60Ogx653&=*iw2)ln=yRY5)7mtZh-{kJG?s7{{>|kKYe&@mn4XT zXo22XIe#4H?0$p-8I!>8&OyYfGz9BPmqDW7o0#`y2jpz~EjKplc%U3i8S2N4STOv! z2@Yix6Wz*$vdM~hGMG(2EwCulV^D|7fx_{rKk2$;y=Ww{LqAPJmu<5RK2?AR-Mxik zWdq^Mm?VKOlAuu0+~5>j8)*_k@>H3);UeW*VgqOQtwPIB7SUHf3qr_0-Cw50mgQx* zL4SrZz3bpW`nEVS>kDK_p#&C)77eGMDmQRhj^0FrqKwU;i<1x+tJ@Qc+8Uvjz{snBC`)Eps-cND$0}mV0R5Q57T}lv4E6dncnggrNzh zi7k>KTMm>;9-r5VYWpG7Nq!2`Nup6Fac8K*O>2vr4SJU1b#U|4ZcH3E83THBL$Zwd z@#&-usJeVA4tP_8q&yAuy9`w8hXGw%!x9Gx;l{(dK?|ng*y*zf;RZcruBLeA)sP1r z3C%&V>d94F_MyM_1S~&v7X7(FKfZbzrmZiJt*5FXmeNS5FP>9pd&z5c{a%to#O0bJ z?h|uqEdFK;_RVK3B#uC@PkV4X6$%#Nm2K3IgS}4!l}DlPr*)Akfl^{pRBG`VhOM21 zJ^QZ%W`oW{pOkJq#IfWTUt?2%#zp!p$#Kd1snLz2@hZRs1#2KPV@Bwzwyr#++|Nt7 z@2!5}eCZHB1L8OnPTDb|E8r!3_dP_ciVSnZnrZ5GrjC&clP6Bc@Xp^OxL6Gg`EC=M z&Tfvc{en2dY(2!6fAeAFz<%7ETe@kUQgtzH>St*6&2~KfssqyV#l)g-24c|YEl80y z83 zY#zVgsuk+isbjvYa=vrtPV+|Yw@%Eh%_3>nWfSk@h4uSC^2IEWe_$+@xT3L6);#R( zF*fWtgo?S`OppxST&hKb22fc4;{xO>Ma43y;ch5as}9zzI)KgGTxYIP3GbxKhN{)e zVDs9Ih<4^O>NjjD%p!n=>p!=E%~ z)r}D|7TnKWhd+lC$H}BHyv@gP<1#oM^HrYTe(KG?8Odj@ig#|^!UI2AhcK67oI>m> z?t1BlF9pk3OZe8c>tvoub#Km16yFpu$XB}jWsoCP0<*D+$UtzCEX8Gs2NdNrFTvkgh1-$`LMwN#86ZMr`vYIB80jQ>_o&$fV3n z?J^GZj79|uXC2Xb!k#cGr77o1nPIN7E#c+W%qTnLT844OieoY1bQx4zh=cg?O)rEs zlyASNSSCu${HG=mpbEt3Jjq`6bsMxFmI$j3EJ2+TmO^MY=PcOAJ`J$N#~wKm5p7ZN8<0Ph{UFp0u6+E264 zYX5v5gj11XaF>KR1Mp$?eE4AYQjDTt*)e7XyU&Rpt(%Y+@r0I2&YhGwajI8EEZ8&z z+h-3))~vcMje!KtI7u%WU?hGbDr^*BLF_YL@{HWVpTa@j+u1TtGS0P5rr@gQS-vc( zi1Zp5DtdAZnzRf9c&1_$VJg|G(kD*DbE<`N&};N8{Ic~B%ID9{pf<7b%Y;wy)j2=Y zQuOGdxPu~?GUj{KD;Xc&KEa5?w~#ToosAx!v~*(+)h3<=JmjDmtjeK3@2eLHdOS;r zKfa1}=YWwj+M3OIC>6!%)Ow56Yl;>aiIexAP^P6q)2`#tpz}D=BVp#8>wF|h5(oDm zgpgAJUw!#C8WhgVgDF445YKF6Mc>S*)d%T4MZQ*8u%Znut^ANUd2)n4-iU!4feu~M zvNjVBrJfu)3tIURaSX_0)+;SV?$QZ^v}MSVWu9HUf~O?aObjw(iikfRUgDt-tsqP@ zT!-hcUpH^Sl9TQYhYIn-13pZ~x3F4AY0A{q3MOd|LC`i%U*l$pSWC?wIaY2t@bvxz zL`#~Q0sZ`N=#V>-Ieh{#iZ(K1+qHZqdXHU6ONq@Woi__oCX0myqq|}L1KtF0u^ZNj zBykRHBuDbl!cn9T{^CsCnCqHX>p4v$MvOqacI~*nvYOwj6PR^u5roN$_~-Tcj9B6y z_-(@%H+6axE}0BJFWrbv^@<=NWv1#x(XE{T4s0aR^O!eRW{cltFHsIzXN|>%HS2Mo zZyEDvmrg(Te=BM>10$rHH#YhXf)Um&6Ri)AA&+g-KU=sA3 zG!LJS@tO$xwhGy2kK#BoYbh@ygf~RCNV&l zFE{9ki8qdr!SufGISj?VT8Wy>(+#p(A1U4V-vF9_)*oZKHe_&HA4H2C2XQC}gLuhj zviQE-$O-OTy=VAfOqSOa;BymOc{lWjW={NYhHtg2wi$*xW^*3IO;s$U%~Kt%2Nyu6 zeYZ`W*gPDC2j8la_oQZ^EX8}Yke7IH{~3~HNQYSDb$;iMGZ1VrgPg@7Y%IWC>g5x= z5ZCQPauL?cTMfsrdWX@oIgE~_+fTNoFDCYT^1Vn9Hwk>huJuC#@#Oh6#No@YXsQR1 z9bCRkhR9@C0Xqrco4zOhv5`LYbL?FI1D`y?SN&UIe83CRLlAB~poLlJC&;^{Bv!9n zfJ8?(Vi!w!jT;E}>D*{hZoPPT9XWWQQ!(oqjQnLbdez8}(ciAYNOlq?lX#d+5sIfb zj)2B>c#?HCK4`XzmT*A`4tRp-If22I(_!PtW%%LKs))z3CvQ{Uvo8%)swv>!9h~51 z-W-r}UIWMqYxWw7C9NtUh=;Hw05f+X9DhpFAi>;1@B74@`KPq?)k z4)3-nbPd)1^d`n1NVOuP`?1rjbL_ zn5#Ngonzb+DvkQuDEQ23^rL||A zm>}7p`{42Tuv$U*di!!}EPWw3dThR+pt_lj6MiSI4G;B1p7zI#9v2A{XCT=rCWsmy zjt4*9j(g@sACY9}AOKIEcvH_zVD!)+zDV;sbs7&}vQ7fEnAVB`VBBS-p?AFkV_$7`pi6bRJy#1(0mMD{cC-UeCCZ zWioXVr_aig2@pRXVPT@nuF=^NCg7X(;5&%RGlC1-zeU^L2QYipCe$gN9w`#X!LFrU z;OWN$@weoIrtvrYQHuCS|C3RMU32E)Vfhv~zE|8Vg(cU#&Yjh71H$O;<~bv`{w`lJ zr>(<>51V$>hh5?Lr^oK}_jmfBhavFq{z9#r3IKWB3kDa_0B*@-;kKie&j+)4iY&{f z_BA-3Y5PrTaqlY!rAg&1%+DlqHXqY0Il5tnkXAKQ$!9aSo4gAP)Nd=E{CLK`I)cY;=T^;^e&c!PH;-N)o>|T3Ib`E;%fHR> zPcxPIheFSMeaRqiD;NGEN9}tMoqVTUq@S#7dEC%1Xh>7`Q(F$(*TVQezAOV<6=7a^ zaldYPiT*l$5P#F(YxSWpysfqIvs3+!L!L?BdPyX`+W@)t#Bz>#YD;eVP=O z=d$+uuIwkL%w2cI;4a{WzxcmkfD}7uj^nc#;&)716iy}+)>?sZ9$uJd;G4DCy7EH( ztXE8F!8~4xd2-S@GjE1wGv_wNlX^`t#M|ZO_T`y9cBL z{i3q8;8j_g7s8kXZL%>aO?NqJGUx_+dY3fjTvna4f!TIunP@j(yua+g-Lj%+w&V_1N)=MN6cgrT3yhNE0_ArECDX^VEVa^5B! zpL6@9D=$pIhyCQ7I&*nll756I@8{FymI25BB^Q@jKH-x*u0;k~SYGfmPidB)KA!`> zw}PO!nD3{y3DkdL;7=3q~KJLNy zq%MPrm+d%Jo`vBmP&Ul@ob6|nofmao(PwUWKKi!zl*8BU1;E_Lo*RS~h0^Rx%h&Jz zc@Nn`I^45+m+aWJM-K1VF5})SE(JRdkkxxVs6|*e&(Ni z@`;>0Y5AHeRLZa4if6kFA)*iZKYb6nBa1v%X^aU5Mx4DyXboXQ7$k?+%{TdN$1Mrx zqYR=tqGKhK-(&m_X0|l0K&@mk85}jI%=*=mr{o;+&5#E2&PP+kcIRZfFJ$KM#*(G= zc(eBWPi-=CqSvqc>{+L`=+W&mV(=HTUn92pdrHj`kdccH7?>O$8-_w#c8cF4*|Ths zY@(m9f!@gvD;W6~hjy+WSZv1g%^EvUEQ=r8Xvvis>yDbrzBe|SSS%eU?XvylHQSed z+ih95hHQ7DQ!@90@kK5w>u%feR_HtI$mzMC(~mh@D+YeD7XSlXE}u14CNA7$`q}?e zJGNI^maEUdrhwZr@ALA^t3)4kD-O=uskQjKwd}kQ9;3qh&TeVNz+h!QU1zF2+_8XV zApO@KviLURK^$L5ew3|_?0Fn4{#W;!=Y6KE4)a?-yw>vd?Kf$$6(r8I6#1VMTYfP0 zKbx`2iZ8-q$Jfj@dGmH&FqIa5q4K+w>^*Mt{*|W!mM)t0jZcTDY?T^2a-3N|a zzUl!FrB^-5xevzCzg=6Q_Q-&JGrk-mi?*u|I{P|e$>wiYUo^k<&o%e?CP-ty8P*zq zwr_=0X5UqY&kqaqdT-xib4_B$r4|pmyLPsbaV;h<7lv{$$G3Kzw|xw%;U|oM%z_pp*7g z8T#k{Yw$Picg&bEX5#eo`)s;e?4LgDLXKYRhjIR!dugoIRj0-7W21R!jbv*nskar z`soD9dE$9Qnrf6(WRp+(_Ga|kB2t7w))cN?m#qVb1*#nLcj}C}<-Jb5r1N_gto^2} z3EQk(+P6wFvkcy?CVl(#kW%^bOMY7DBXd)^Vu#v3zR?o?nJYAuexG%fqPg=4&nG2Y zXZdQv2&rE{`>ZC*c37M2D?9ZNM)R^WvTHM`Tf4f{sZ&F8=dCLX)>~z0 zI%mcZ`uvbl9l;A2GYN8FR79zm+3EWyK&-W zHi#i|bmLf)m$iB~88)P+6wvbNK4lO_D{9=`ZHo;4P_}{e?cH6fp=Ddy>dJ9D zaMPp9Yo&f>=Ao7h9Wz!s)Q`{a*=5cKPlHeWbL~eVA zP37L^5sx>hk`YrjhXv~kW?;IJrhN9+U1Ug)4~6eIBy<1Ca>d5gvGvv_D{qzeWYYBM z^63Yv-1ByXnajlAW-t%0te2V;`bzUd#!QuoUwmreq;MB;ziKxWHuCT<8$L`WV5DAK zC*p%3*)VgsX}?PIkECbkR+2w^Uh}(Aujz)L-8i_?{7zP(iS+N&Q!3@mVSX3yGR=4Y5-)^3O0H8{{Rk2B@OTb=T{289AV<`QCKk43~qg z=d$K|3%-gi`pML3Q{=Pu+|;m6&qWS(OK(EI)6PwMhtkc1%8PuFtaw{g>svdW9udo}B!hN#<|1wp`C{?vfUjwM;4L zKXQsp9y>rvC*kk(Eg2!*+QdtMx2ztnhX;_FpY)S~ZR?rujc2Z4m@Q2&W!01c*7Nr} zN{^23N&XzxT5UaePM8i7k&ilefgiMk+9o33a(l0%eAd4iOnN5Goc3X1k^;vl?6Fy`V>;Aj!M>dm;Q1HquZgz@&B$kAwe2YXTIWj6j zRr53G@j3&?lH<-wn3cKpInS-X%*u`kvn_9aLtfE-HOS z43l=H)0yWJ_gM!LFCJc&o>j7%yl%bw^45;BQaFz_<`s4jVbv2H*ql$Bz4NA(xu$OJ zDlKKg)M+xb*9Ycz_1;st5w&n(4q|w-kRB!s9z9jYjj(9)-I^2R(gRBexv*rish7Vw z?5;=wlQTs>@z|}4*b}BFVlXY-1N4Ev_>EwX6fu7 z^cXD@M)#1^gcH?A%USy%+yL{+A8#4`9s@!Svo_4^$UOBtxXMJ;k5;grj2JdpDrV6! z7n0rQ?pn1&AIs0PzHk?*~#R$8uFEl>!AlCkZwOa z!7#b{7@YG{1{2l*f1gsv=-0T6DKm8aVKYaecJSXrYi64KQq4Y=@n4OUl00xn+Oo3i zoc#jm(rT&BJqq4wECUAgl8PlVnDXDxpD*5jL6A7}_MgE2<4H}`^e)r-_3Pu8#fxeB z86TWU%S0vuG+ao=Jn6)V6L3Fr1Z&rg(=bugAW+XNa)W2Q=OXY9?06+jqL_t*H&XMw;3kjpMSA|w6YI8lphWfh$dUSW8guaX;>J0w z+j|n3D%V13-YM(kTOGXlFXfXl)q8g50@iQZh5KI5ktu&!RA3OQL;FslI8FL9^M1^; z`?lbEaB>vN6c^hzZ!@O1IcbJovsx+8l}Fu^jH%m=vxl&G_Yru%2*SH%Ya(CDV7Q-r zfEo>JA&I))FkL#f8{77upwAdDW2)qa%yFLKgy##?ZcrI&2&H`P!qL6hxNQdmpLipF zstl-5xi+elEnu1dvc#2>yRrM+bMQI~B-Nl&*7R7lZJK-eltI1ddT`oa1`3z0i;{W6@8w1C zefnzcK(c)Gc%LuL8<}1_y@0Koci}Sc%1)lCEGm~sj1xz1piou%JEdR{v#8b=^U3l} z8;YE0G;s{1S=hRL7w~Sqy2#B4I9gZ#o1~vCBQLzMb^RtJ&tH+SrQ^I>fs5!FMnA&M z*tp{u9{2_$X}Y{{t6Pt;3kWAo?bM7-(fRDcK`dLf9+#fHM8d2E(707I6iUuJza4yA zy}j~RA<%W@dFlXm>_3WUoQUF;t07Iar?~ti4(ik_ZQbilW4G(4w_?-ovj%@D(icLF z+7*!@8BN;Qi1vT~#6E1=a}&nnZy zqdT$tX&jWvogD6)w!qV$arW~SLA~k~kkTHBGQ`53joWcMI405+Dv1VF zN|}IHI{(_5%9EGZPh!pCYbepMKC;DC6F{ZJP~14M6`N^p?;8>WDf1Ra?P`^fhNguM zKChfSKwNFd&AU$#H+fo=t5g%!DiksE;jDR|ho`V{{broH^q9W#agiZMakvrRIn?jO zrZJn!3=U&N3&EA$8*nOmM%1oY6!D#g=zHwJ`+N_ayu$b#2~nk%8=^lrhuc9k2d-S$ zz{?;QxrpkhoW9MEKk(-z{SwuU zE>XfnIB?(q@53&GxO7{Hk{|qmK7OkTj~GZ>YH%8ill!+|+xA1a^OPo{36r95nQEw4 zqdXESE$Q0l1SlOox_AOxNN?rqHbEBSU>brmhqmGP?bvA2urd;G4XV4*slA(V`DIG* zx;>aI=AG2M7b%!m$^^ZlQ!&jnH)6->%kZaJbeeZbca<39hjK;&ys&xQCM0GMxU%_p zhmx)Z1;Rd)hp$rmy1oeH_l`2mZQkoq!9zh zl4rWW?0olO@U;!=x8gQkOybkzw_KH)D3nuq3s*GfBH-C2Y}~jFSMT{DN%|6~S&2O6 z@G;)aT?YlTShVLynX-Aq1{^>4fDS^jkv0q0ecjr;kDdm!G$9t6)JJ2G%2V6cVb}Rv z3_KPWnTnN#TY0)M5DNxcd5ObxH92&e=C-jDQ|8r1$eq)4ugQR#72Y+mNFw6VkpXwl zAHkt3&ry^7%#HHI>nJP6l|;&tOZe{%sV)--yJ#2)j%Hl z5j!+s01Ep<7)h;4ub!t4kyle^dhCN3aT20H$qJ}bjqzQmAMrhdF~5KQ=nQ%FCLB9M zSBMyikf(4Z@}){hpG2hrWdi-AFEZHR&J!2m%iw@zs#iy%o2PL*`8%jxEVnVketG8- zwrt!1&u8R6`AWd8P)3|Oa0D5uH$=hYmR|A7TC-tw=HLIxZLC|fmVsFBFd$h>l&)F_ z^{OcU4(E%yes^tIi~YwgA%Jo%OTiMTU%Lj}J8Cq3}Rad$gblY;@v7XlRCE->ktF>k*Rg?|fxpE8}x9o!#_12{H{jXZ9 zHnOMT>Avk^f}qFP$5=AEk6wj;DBZa7ltzR4)sQZUC5&HQJB9Tp@1QWR3%a>`3q0;V zNBm4VP|K}0awaAdWb!$G7@Itwqg3H+I7hla^CSRCa^!~4=iBM2K7-OQ%alU=n`{j54P@Pyd<9(q?hXS4t$Jr7ayZy<;o^j zO5`+Wh7(4QyjtAw*1UQ1hUIAqrAcR%S~dQmzZ#J_Ns=VsbtpK(O?UC)8eqxxTmB6g zG%(DvWy_2o+Ne>Z%)la6aYc&Lt_oodFqbAx8q=@l|6A#QX@jmf3|BNF!>C2@4#RPs z8*AZf9T$PFt3y}3OLFR%bz|pio+hVVJKO$vwNK5Aq*+teY1^(Cb-}O#uYYkC{p(Mx zoHsvLSUG+UIVu>Pc3F~ztg=pC#7_$^QI*jaw4+y199h4w;U%o2aCjBqh)RT0Eb97B z3H@|w%Qf3PQdpy!-|)iW{g~2W4=g;qxqf8h4r?Idmk5O;{Ip6($aICxnd8@+wI;(b zW7dz1o*ls)v99ay2wl5A;&;Uj|3*PO4xGQ$hCU}oBQ8(PG|6el`ThE5)bs7sjdHC} zVH7IRzvbtu?P!V&j}AOmnW)DRkuDwB!s{y*ew+5A#%DMlBDU@Hp`TGb(-DSoNT(Bi zMzt1Ao4@tkWi9?&8+0cC9N%u^IRp76N|Xo_CQJaYY`q6mlTFku42U2opeVg6C<4-Z z=pCeqH0dBnhX4t^i!|vdozQz#dJl?p2pyz1A+*p!Z@E$Q{l5F(f31*}MV=%xXU@#o z`|LB%sNTJcVM*Am>G6@Cp`UzVIXY07CWp?)05w3+_}W45jj~qTC5`=7 zMCn}j!98>SS#`0xZeGcyM(~EwyS~f(D zmlnp$T5rGdrh31Em#~Rhap|gl@ADfMb`n)lL?x{?Ju~RqYFc6JztrA$=D}R$(FtJpykWY%LkD8$@+=wR7`!WT}p`!NbM@=LlguWCD z8m6e>a*&QrVm+81dTpm1Pw*~E&q!&*ZNN`hq%w+!wkaw|ehsNoyfL0mg}b2H z&#AXUn9&uATvqlUdC}y3ksBn$FRCa2rqVSW%~Z*;6Q{;qTH$r)R?)?3HUgQ5AnE%qW3MYrI8WWtQ2Dud#BHP}jTpt$bNN%|C z-9|n&TEyD8qTPDwN3rd2N%>RT*@^RK^}*LuEL5D;Ne673}%L%$m@++bC3>4 zs}bW77xAt}c?4{9wMOL1uwsXmXWJ^DZwIm7Gd;BkQkZ;PB50rLVqrCJwBSl(X;+?s z-*T&orw;#f6={24O59pOvbe7oPvmpr7qeD*oS%Q%>LIVoA8}#KcE>WPVAQ|RtxRGk zap=(c>5jsZ0OOz#xn{4Q)Vdc+>yr|^Ss@4+&LXiLbr|KMV|4(3SdhU!1jR&t`x(+^(oK9gg^fIxi5b>jKtoEUL~7p;Ai4zQ22j zYc?^+`tFIYhPK~QeY7CqXnB@C4o~$(BW(#gs_i0kXG;$NX-$xucqIZkk!T1 z&!)q{Eu`(>d!sclFTwd2-VLyp$30)1gil|e$xPZwv#QS1U0tI0(c^!qtE=+}7ek-0 zHJ0z8_AUi`osl)}iBgn__Ot8-9`kM!)u{rt48rq-5G`iIMqc03CEQ;~EG(51X75?nR~#a^2ldz^)LUP#qxF!koFj-Bgc5kGKx5*&3bvilOLh0hY{y-3 zSp^Hl)D&|zZV$SOwpLv@)6VMFB2zCX!)20J`aM41HZb9QH$UX(PUY$5Z(A8eS@i_} z?c{6V`L(_yfY(GYEUQ9CpNH49otA>Irh0ie;6mjc^&=Ur&J7`Fz`YEOg4vRcrNJD% z5WRVq=3?GvMM<}5xAh-q_F@F(X%B?djIOTq(YvxXEZ+<)NJZJ^Eu29x7v009FF8TS zJ9AArwv*-0U->^EPSTubr9+82Lh(NAaTR&mJMpv8C7|+q{U&)5J$S$eIFz9ggbeKi zGpj9O6NkxF@8>xkgRa!@)#QV>?4GNI-E)OJwlw^(-x>PpnDmRFk1XF4OSVQa%c=^- zf`}2d&s*c~RE>+aFGIIIenh2JJ`f`y_{rH))XQq-qaoRJ)xCdh126YJ8fOBYg*(dR ze-aXOvG36G8@cT6ZGN3@zm;UD!5g`aO6Z|L>F?XfS9l^`v81WyZ1Pt+72chjc~;P> z%fY_&y{2_*R$ewol|s7fIH2B^s=_Zig{i(b=Z=O+iqrWBUF^4&h#q!3u_xEV+%T}* zg!~&1G2RfIMzI|7MAl|lU+|Z6Q{(UO*G^aX5v~-Iu4y(8tcQC1RxBBBor^XuP|aL3 z5FLH~rdXy|!%gLCNDn=7)$d!!di|{oI51AF`e}OC_Vt2Lf&E;XF`N&;XFI_=$cw6* z7PyTPzm&(@SWt#Zd3)8K0;MjX3w6oS;zG)hzPjYWI%edvSJ!q|0yS60p2z$vm#k}u zUD~SN&vg`ibU}fe6ARPVbU|CuV_vCemxEE0X+LB{H^rZT$T0{vMhikZgVl{ed}i=S zywmfoih;G+*nO5=5;s3B{6N0#@Nwr48Gc%B&?XvbCcimHKQ|Q0;x^6kjPlV;X`bI( zYSh%xx!S#JzxwF9tO|5X+;X~06YJK0)%^_1T3KK@B)w|3kM%1qsiT>kX+!eAGw1>m zdKmEdZh0|s9~;kQvNoUd>-&5kukaqql(aA_E3j=0^Bu)FO2&5}i0CYt>>uL$qSu$e z=7gB$`!xu>O{oDoMjsfL3ZIUys4x;k(W%5L57E6ptgwL-xm=@=FH!GiQHiD(0zGR` z|3v8BU}(vlAE?zAxZwAcFs(LiaN%yBxcardiB~H3ha(m4(`Z83TWxvhdmv+5HT8L= z+$DW+#|5Nc@0f+hTkx?WrOoCw1uC(iu#;A+^;R2D)UEew0gf_VL~-uHx%PC*>lQ{Q zc9}2W@@IZ*mqezE6$y!`;;<$j4$3pFt6n~qCVV&t^l~Jrbqmzhtb$}vYGj_I2YH^) zmm3Nr^F;_5zS@jnfGN+8y6F6P5nGSj`~Vx|DEzhix67|b%}~aeJJ5&=6t^8}?Gi<{ zci{GI&#mSH2%FqRTvYrB7)?N)d6}Lu^+E~kfEvMHT7YKOcWJ z>&o^(qPpfi+7z`lFHp)bC(B!3UMRu7DiYY5QZ=6n#f9`!JG>%ar zhCbB%K4t)4z(Y2yaXpfFfP$(dKgY5-{A!M1BPH;bDZGjj{uwSGD7-0stqGF{*4*$=^7})v25~_mh%e++&2WEymWWDR=TysD$p^zx?YxfH_$LklV z9D9cD*Gp{~DoZ3T^DHN$8P{V8`?foYAv&-;8vWQn=;`;zG=txkuo!WP*c-92=rOR) zUeb4rW1QS}L?2EH*dLtG2ihx!nz0KkSAFbCe!iOTr+wky`Ma?g*!WTYJS{)yGAyG8 z@Nf-J((0O!bFQxW94&{hFF+%TOvCeDyDD21&{iKK747drYk1cgs7ofF!(sWuF%7lh z0f7a(fv*JRw)XbpYajrG5H3=H8wv}+xZ{s;=NBEO?_n}GQJewzXPpkTP) zE(GU4Tb9z!^dK}spC9UjH(NX7pajqG6Qglo4EVtjvSOk$FwnOUhoa8W$~fd`b&Lyt z?DL>Q;NJZk6G_m|V0$CgQ~~Svg2h8ROBTFCS{fRXi;Ig3tEzZ+Jkoo-&iZNcP)mzYWJ9kmfRUn@VjHfk5#00WB>pX9>_}7anJ~v1OEd=+Y#WuXNSl zINXQ=eJ}`Crm3Sd8uwJmF7T2h!7N%hY64`0k;ob)wARI&PR4ork2yF4Bmis4X>LPD zg}694p?>$@K5WDHv=gH!i>w;?JY2g%F}T{=vE}t_3lyM~e;&i!lq^EKQ43MUd8@Px zKH;M|Cf?A0!rjP$d9Vx~ga{`Z`5b9A0a{lR^z{Y|47rHX=vHPwe94fAWXef?On^ln z0|@Yk3NceCcWQH2GP~fs40zTg59`n)p>#2*W@j4%v}TS z@et*y$N(OA@koz^onjg&kdNkNE-H=|nuNRUg*K@0R)Dn% zJp{E7_ccCZyIM?wyjh9fW?W?6dzr=Sz;Q_QReo_Okwco&hYyXUE^&;xn2+ycVE%sG zp^s^kWvxg8Eo!-Vm>T%k%s%IT_)h(oi<7tUEgnk;YVt#@-|l#jiniKA!F3@pVJ_O2 zmcGy!*!&s_kk$F^9rPJ^j9(BMwN3DIP6kj;^7DbN`6qKnEwTcy!?6F3CZmFhw}s-X zZw%Vo%t~JBPEKKGyn0{_S=o+bkhL}N1zzA&lJT`wel10-Um;e%uo%S~!;RkGI083j zDLedNSaRXU6`eyR0GD5^Duf0CKMA!|R(_Mt01*-1ri2CvUg*Bo}wQw+kddcw^QsKp zl*7`vi`E(63K(*uF9JvM=nD7CW(aRAepbhYRCw9;!*x8pysWgmsE)MwUh#STB3aY0 zz7nl&Yzmb7SkkjoCBVA*?j4Dyk+uzFm5U`mxR?uRh$P(Hp~($Sd3oViS}*8r{M~)4 zW*|JnOP!+&Ssf+AhO&FldD9LTNCe@DA&ku&rqJ1d;WY8C1n` zr;5N3w7h@#(&O%cHF?fXy4INSti-_4Q{L%ORT>`x@W|JYS8!ZZrdNhn_$DP)s9dOa z#ZLA?uU>J{^Zak+?0P)fa(p$byt8$|=eVpzPI5FPCoZqNcJK4S?6?GOc@}|OIJCxj z(P=Ga7WTY&pFV4p1}af?+Tym4>n_J=u`Z}E3&>oy$s04E;{SCRJd0A;xsSw5S1$2B z3HFndyT?el?OxBM*vwsL1a|?9Nv+pa%}PcV3ruJ<{ja+_F`&Q|ONq z6S7~3j~qXt*PjlqEgOBp@UndYeQyhrKiEw#R&W~!BvQKP0WMYOq5V>LZfpqj);gT#C)}` zTTv`}g)<0`VUa5_nd;)8vMJPmjfOcQ_P%xsPdJkelX?TW;hoE-r?q*}Z`(yr@{Bq& zkGw0NFdZ|Jio$U7WGCW>SBvuVRHEh+L@Ze|II+!^Ki z@U@!O3e}lko`lXKbKZrn%fLy8Qt#5nu!NOphzr=yMQ`%VZi~ClxDl3U;XycJ^qg$g zc(OH>?8TFz=CHRHe;?8Z$>~3efGN@0@DqkTG zyjHFS8t?e{)Hz(h1iH7_2(H%hC7>$E3Rt{7|D3t^MO3+~UKQZA?7N&*i+G=y-g>L4 zw|eigmp|fAQf*U`^}e;?h6&Lbh%pBT2Y1pOzBr~)`HMlsFjyM7_$UVTiw;A(T&+s?e>;Or?ff9T)Tn(xs z?z0Wld;m)d_r1;{}Ch`L-LStPXk7?B^tgmuG4Z zpx5?$Eq+68YQn*^r;c=u2kAW4zDf`6p;LB^``H8QLFJ~Px}1mvss@7S`na7Yb6n3~ zI>N&!?~KB{y!X@7IQ1Y8GHC&|myV z{48dPsa%@SQ`(TA#bq}Lj4%#f7p}XG=wB8r<5EjcOduV`|0H(N%ewvnvAMpJk*+-7Zg0p8UsWLP!!xo0O`t&z|e%_%DEysGB+Y29#4K0nQ$JXtj@I)&VLQJuV_ANIR zL`ps>v4^19S{ojH`PlGefMcjl<7D_O(MVRwO)ROrabJ(&@R@z(s%iB_g4y8^!O6%1 zN@nbhzLafa;;Wuul(gEsvxtk2V~Y!{WRud`Mdug-S}^n(b;AA|(31dI&5;!nQs#`Y zKTg~7M+d_8)fxUGpLlF@RNrp_!qPueMXzx>)AbK7LEzE~<4Zn!X3+4c6OY(dSc99quT`0lnGE=3dO z8P=w#q{23GNPtlJDlw!>@vOTri!CA_myQW=o}N><%@IBHz2dU&osV04(`_Gf3uYEwG8o(A!9UkIP6 zJV-_mmEJ%~We%)LB%94xP<_Xoa{amRx`+{N)Ao~4N^$NR*h?St7^~Gopq+I+D>foo z^i1|C-!mkw&r!Cp6;h*Ba&i~2(A;D{RGKrG9oLFkTw<6icG1Bx+{3i1NGEo|?i#$C^iLY+9N-8c&kSmG@AVNI|(hGrwX_U5WuYHQn`t?xM`V;l8%#oFi@SR4I zHjcl;cZ14qo;k6-RgcZv%zsJ}mEj=`H)Dr~;ttWLT)nKjTH^z(j!9b~ro|}vRY5cB z^e${oiG-q7#^;Ad7b8GgpQw4D&rnoJGZ;tfFgm!ietYon7t}cCs@3DsculKuXlh zy!X<}X{VDdE2=8K>)0)~Jk=cICe^#i9X|j3?|*lon=&8*uzoqNyJuW4w$5bt0# zB6k>Rrj}cfaQJ$(pTgoQZCzMrRxOh1(qGISPT;u&c?v#rQ_VW+w;cP~VN~fJ1G`=d z1b3kzUHR+5i8EHgU+cCbiBxvf4!>^_7gJJY$r9}!gR?K#FCK^v^MtTl8>^zutSIKd z-4lnC#s+d6DI|x}DfrwOx&n{KDwdati>=G^1dPO@TanPg5lLh3Bwwcq(y`j=NWB!> zFQKr)zkDa30CS+uD&U(PPdo6}e}JJ)ruQ}p_ji%%ET0hgm0 z`M~SFd(&CvALpScokQ`Ht8bbPYHr3zR=oqtlH}d`jcN@<$0LC$5&g?{}+vo}~_p7=bj`B{DDV0CP6M!M#RP19K4nm>a`1E^NuWOP=82-Gw(RAW;) z;vH*B(RL*-Xw8nY5YSThn`GHa)8QY;mE-wHxROb@m*BaQ=B7P4+}{Z(=CmiM*vOhV z)<(XsXR&c8%F4Rt*PCk}McNdX3-~;z%Zj(}6f)LOse<#4tiK{FGpOl2o@ z-Wky_WljF18B|=z+fiS32p-P{`zm>-2feOP1`o$xo~M1O+kzO#cq=I%-~!p`Z$eX|)vsM?r8_44L@ zZke{K4jMww;5Y3r{xZ@>*qDPI((}=*%SH0h<}9?p@EuI&8}~g8uKK7;CxVEy6L)NGDl{3W^N~e=^vX0q|v|H({JV) zT>Ie>ta_8vz<%f-NZXIYNB`;-wzu0lzKuWmy*vJGxp<4aKXM;@|3i2E+jtpbb{ZZM zda^?#f=<(n+4mu9KFp`_U#)$;xxCSK!oFjYu7W`Gm2E3S1gxGn%?eD2J@J|_72#-?;n^>1H-F%?>52s0Z;0t&r^)ABnIuf8Xv&) zA1&otB7aEf-@MW4flCO0-TfD!0!*-i>fh5Y78P6weK#pA#Qc*-z`%U6(0mKG1!M5u zLI8W4>05=H4_iN5goxu?-4?CXV2e}Wkx06Ab9sOwv45bLqJKl-&J0Uz_?1k?Uv3|c zu@*fGpj{{UW8Sty1`J%Ea~e>@zob|*b~Ed`k>aD935m9<`Fpe@D8C9)`Paa|?fEn9 zV|G$!9Ea{+fBuH?&m>$}qaNYH(LR7^@vl7CuWy>k9-uftlTP+Ep^<<-1BE@}L&k&( zGr_)jGwlB2nOP(3@up_Bq8b~Aee%I&J+~E@M$FD+B zO!!X98-NV=>le(-iuTu>jSl{SJH$OJ&31#VY#pWpEA64>zmZSdXX2zN&>iD9`vZ8_ zlK%!(^UfCz{^2>*d18y~U&*V@!E^bE$d-OP+|m6EhIm@;3j>0N*}5Y01Z(!Nvyf8k=Zmkx^O?>% z?6KY~a77kC*x}QEISaCF<-duIEmR$2dEdyi13puD-{ad4DYSZyuHS+8xFUEG3qed_ zAogxMNx-^`i;Jd)#zQ^}_L8!)NEX(g_n_kcWl6k9ILI8y zO#0o{@PBQ^wEZE|EGCEjNrCZSa})npb7jn{MMf-?8sSgHikuZ!MHFS3#;^0T6SuCE z-YGW}^Ng4B47b|yl%bPkr_j_1R}H}c148Dc?!uSlCmcC}(WYq)xyae2eEeQXIJ|4E zKUum&ry?IM{=70X%juXJ8Zzng^z^hk-kz$x2fcCD|LfU=8#~*TjL}KsdEvl&r=ck! zI!emy)xN}0_NHyARQp;A7j*6(eP(u1NlCctyocqqb03>^$48Qc4zPD8`#Ph9(BB2+ zW~KP!LkHL+Elrv9)Q1NL&Rc0n{$tjP<~UlfZLSL*+ld!?mF9SeszI^CA!(xFhiW2{ z@H9}=+$IcI^sb=wzI3BnoRs+ot{Vo(s6bCpf{9oAS(J-MU2Y&gNU(EzSVrl_!A-H$ zK}sJrokt|$b%h61TB}U+`daT;F9e`xDgb0ZPZ-V784^CqH)$Y!myA7^%Ar2MqCZK} zwxWgK5IigkUJSt1GeE~y=C^^A|2iQtPt1AoAg7iwe<@GQqYsM)_s_gcdK6H2X8t-s zs#oYtv^+om*)rSurJRWGy05wU2kkOFlB-}5K6j@@j|)JbbNUgX=r-rH+k#IRjgt|V zWokGXNB+X)n!wn|h?I|yPw&em#xq7mbcX8tkr)UvqwzpEn zHPNHjOSKaScU+c&No~b*R`3>_tez$WX^2^J&bt-0<%L2 zKs1)9zSwD+fe#w{UAcJO@_*;C+VV>3_lPdNclz5=35*grvqT{N%|Z!gjH#wuOE#-Q z>opUg`9_#3zi`Kawu{k5d3kv);W^rCB$4pJXzEe6+Mn-_XF+Ou)mE`C-xJvlDT`Kq zsQI01OndFNFwFdH*zTkP=4z-41%3K4m=8VQESZS4Y?yPM833$L8hNonoH{97o0<;W zS$>^y*f|X%Z-wssUY8`;A3V=w+mR$wm0WEAlMj*IM8R36m_t&xbTdfI5!=poTAy2w zmzUSZh!RI$NkwZ)V^fp$ROLJMxs}2E{i>CknwsNxK!YCGnIaQJ#%<0e(GU;LT@I(G z3$tvxRaSgcB4@u4&|m!AXD9 zgfym@BNDK0XBt!q767sE$N~7(UCx3A^HAp%sO+gK%Nb7(b!toZ+gDST8F>{x2wU*! zQpgNh>pt3k1c``^0}&yhpLkny(G>ux3;;U8+w^CIx~taHNYA7|u&=~z@?oE1wl?IMvy%@J|yH-tEd{H-w|T7lO+#epzF0hD9?$-Gw?2*$d3S%tRi zu!frGJDtgf^uGG`%l3_1go16od!S8fcNd?snu+X!43A*;s~)xW26%dv>Zzp|l47P) zjlJQ+$H*Nz)Tun+`gEm?eQRI)7?;j_sFi*Pz1;!+M6boO#=hMGf03*Lo6*bpQQH@; z8=@AVe4i8aB{_n}RA`Hz0hv=}4x6O7bF&=K$Jk@Fo-vgWHkPLQ?SL{Eu4CIurkjt_ z>RLgIQO-v1XLU{B1~}h1!dDQx$O*$l{&{z^rb^fWN9*YmpMy^s)r0k@ZMb+rZ9Hok z14pd`^vV^0UYi(g7Y<-ETMz!PW%EWaq^H2z&iDvTiJEEA^}+EmF==yPh3>Xqlrjw5 zA`3}{fSvk1{F|=~d~;QC29LJekTxRFCCI`AEI?-vK9FiTy4{SloN$ka1lk2AmhDj4 zSI7DUiU`B8#_&~_D!^rGxqYxl*%G5S9c+-wl+Yfeur&9LV3djhtpezE2!+lu|Hwlz zf|#Nqf}={_4CzArC4>Os@dNL(2lCXCzqL=FX9j8DsCRrS~TauY(>Y#NruZ7p-ZzUI+{CUMAQ6mg>eP7wA0Zy)%4{vjPbL&kyVXtS>M2 z@hr5T(6||FyK~Q|y!pF6s$%yy>py?Y9jEYwx6+`2@cAPcIqvT%uB?LvJ0zwHL~E2O zfv}lT+(_xG{VuwhD0CG~$l*6!x}Usi5!=mG53ko!fg@zlQ`w7&V;Z;F*gwI>p$So% z!_M$Ith%IX)K^udcfkWra}j}dYq;eY^a=r-N$j3O?-+j~g_eD}%Xnwzg}RG9bBXc( zA5?{TKj{gUt_KbT0-B$P&Gep?ZKW-YHpfHia+OTrmn|pr4A*NyAubcTU1DZ1*fCm< zE6ur%@OVtU6&5Il4qHtvSJxN2b+9YC>pk3y4c==UfOt4;LCBKAcP&l4rPh7_ZR2)j zU#ZXaj%SvbSNh=uz7qDoh}$OJR&@nqh$oYcJ>!b&4tL1;bTg(NQuH*VO4`(ijg5e< zOeB1moeQWl833_&g$Wrrb&&9)l^uz%qrd z9(8&_&U-h@OwavAgxl@qT=_M5)xyjSI?WD+zbIAWHFny@Q)a^luxU~^hgYq_FjX$$ z`3WIHwe#kukh(&U6%bg*)#td#wsEIX`@VE6C4{{) zI`4E_Lx-vDlWtw@P1)$xUpua9YSEA6TX>`Ht|lM&B3}!l6?RW_Ts@B5HQ?Z`L2y!Cs6oGH_LGl*t{(ECL9M?W(ye~~Nb9QlA*;*Uy*p4qSIImN0N z3%AjcsPa8Kj89w*7Eo8+SL?a~0LsG=aBB0X2Aijm+s(wV0H_E1HwP`Az_|Fc%}pEq z8oMd(rk61Nt*I%?CN%h}9n3=N&*zE1Wzty&3&ItuJ2RS6y|>wuH>LBpRaf_4)*`^%_w|XH zW)khXnMUel%)!Q=;wKx05~BK}V`b_C_dCfe#JW1ecKjub9xD8n2JN0Qq)z$|pMf6^ zH9_Y#p2pW!E@vWZ4^vVow`Ki;EKh6-_)aLY;J_q6KjiK(h(`c-H*&#HJ zuB}AE+nkMy@9&m23m)1fLOgwIy#opOGfT=Fds`cRuNMXAGKTqHcH`Ex<9RROMeWI? zvEN*)Rn+R)Ct%Qa?##Cpont)r+9Gr4Lrk_c=LPglv*MQx7UPP<%zGWQ36)bQ6`5{* zed?6bn54}UcF6W1x!ScDBO*W-lUnB9W8j@!v~I^;8y7o3m9%cfe`nnu0f5-d=sFE~ z)TA2sYwPRVLadEw;B6(#)b8}&@PN8XzmukgJamo5bZat1XON8DzzXW(yH!>xkb z)2$d3vGhfwBhX0jU5@6M)`R$p`+idP(W1xn6HAVBE|XJ(74{9Q3E;EU#8I(}ZL>aI z!kbw9TbRZPz-qLLG!T>}=IV@O`MZ`W__w`Df%lX)GpZ(Bd32;M6vEI6jwv43B%z;( zO$(D3T^ndPG+Mn9C9GGFUe_SN&#x!s3R|6WNq|^WUv<%XMGy)uV(1U*&!LMrUbMSL z3GWDQtqTYUjDBI}U}OHepb167gc10yzDsF*ujrwUbL#ZC#O;4_9509$Jw|cD^6cl2 zHxd*L(>t2Y2BTir?gU+Mm?a7h1_$ljtQpFWF%e!uqe?GZdOrrTi>}!3Y|8*!jwZnK z9`Gp=kW=H-QUYB9oUFA+Y2i)qEuuHAey~r^6L+DgYuBL5>QU7kG`yPjz2!4wUsn?a zfQm#xK!jL3Cs0(&0J=h?7jS)0>!zR71x><5Qqj^9wiM0(de~ln!x%o=u)Su7SQ-cjl z!Ns0m?anusj}{6(5xo=hHRyaCi-K!U^k;0lO$#yR0*V%NU54@sF6CT3kN`S61i0#6 z;(j!C`ir9v%!ExXF`R=%P&6{H9@o|%et-M!lM+M+&PcXw_-|O2lM@B_$Uo~SZR-%u zR+}kJDD>fU>X6LH{hLDw9GF8U_2tDtN6;Sg2QJflH$iLaDJKp5K5f;dc_P2wO=jdd zHrBKbWZS)RGZP6~=dtMjf`*%x9l*woXBP$lqW6$KG)kXr^?@vm!8~XSf6)0HJ`hE7 zwCb($Cb=~GiHmPUz9wj#1q_9gc;Z2u_vJ3IgkY#kxOm-Q%^zZc#+p-fMv`#n3Ap95 z$Ba+b2XH!l(0A;Wn^Z!mip1K?&(}fveITZ_!SAB2S@35xACo)RpKmoA-<6%)v&A4iuw?HZfxgeUTL9;mg&ibm+NNxm8UElWk z9_G*ucaRy|L0ny7XJxz8r&SKWQ;U~r!W9X~aJb+e&*qCR0ep0ElCZwEx_a!xPnC8# zUm)NA=_B2@u{xdDKHsNMWK@67&@Om`B@bf#cRL-mb%rP?-QLq!xQ?6=Y@>^YT#wH4 z5{bHMQzzF#M%w*?^36-DlUGDwx4Zk+eXgigjTd}vC zlT2g-Z=>t64$uf<tB3)hC;fMq3Q(^dJ zdw|aJ8Qab!^@V-ioE({fV}OrsvmIUi_4(FD1P|;>w6=t5tT7otxI8+QnSmWgew@NG_Hu>fklZMD)6vT7a=dFOrvsq3w%oA->Z zt4D&?E(cs($AtEJ(Wf0(RKWoJQ1nmgL(0q9n-F4iCiV^L~7LH|sYNpVR@&d$z`0_}e!AOHjF(&4idXe7sYk(Sf( z(Tx!6FL8|b=tCg;4E|3=c)XKuyD;=o6w;uJBfJEidRP#LC-$xO>(9)sK!VABd{v|c zHSYeZHjev(vxX-p<*%-;Vh5Y7&(dBZ z@ntE~z!ZL}kpz%`iRb@eD4~j(i_~D+GQl;^U#;AR(Y$}HpzMYUG0R2 zdgV9Q3YdMenCb@FWRtq@;PUTY06RTPEZjh|F3nVG9)*9si^CrIQpMUs`k3&qV~xJ| z2R;z8WnGWwI~p5%CI7S|XUwcN%gwbS>~2eLeUe<4979uU_{)z)-3HGiqN3E_+0%^c z=&1W$;BV6M?^bY4?7oBE8lL?QbwBI)%rUhFtGOTobLRZY5IkxE67OirV|)rXWGoUi0k#f;fs!y zV9$S0DF`iY46Kv7&67-yy#Yc%)9wO|Yx%TKBuW8_K9+!*9+vs=Mqg`;9VxvDYTnK6Lm={dfD9q96GCSHv0DBBd4;cxs* z_A;Ph{-2Tmn+3hj}B-TDi*90a4&TX!@YFX$q&gInEZ2CC1=7Bc%1lV|%q zZHz2wwGu&wWNcfD?jpPslS%f6X1qE1liqh*+?t=H*;pk@-m)*T$}6_!jqH+kZfkoc}08dUwAzZwL6j5fMlfeA$DsZKHe`B+4>YCuXA6|A~%K<;{$fl{esERWAV?e zM@2M6rY01ko^Y+h6V#yw$dII_Vn>P9o&2A|<4wOfW1~~3KRdS)z_!Ew;MZRzPNhv? z*8(P~lSA=>B`eltGTX;>D)f49(rqIIcSlm(j&r^WugUiq|NLlx>HZN%eq4UldQza6 ztp1MgGoRzoIjgH03-vzBsGL;}KN%{73w;?+UC@NsDd?~xFMR#mSHtzqEyB!jfuB(< zYM0Lp8z%Y3&aQ=dzf9$W&vn$Y8=7|2bXu?2eU{1#*2!>pl@UNuHQT5wZoay);dU~= z^mO+N$MdTJozZ7~DD+KJ>$0k%#KT~-Z!zb-=BHU`5)K#p`tH&E;~4owm?XZ?ENk^5Pp2dCl@_1oh%CPDa+sFK z!`{cXas5Jmq!?=Wa;v zxT4?HK3?_CvGB;_Nin&0xeBNmv(IL|nH6-rZ=?CP@aX#*qC9;%k01;05ppU-Hdp`R zasAT2V(dr60dJx!&e-Gdt+&bV{#jQgb{_1NWm>`{1y*)#cDeOC!_u2K3aVGP5$m~C zsOWk9X_Y1#7j85~ql=JXD>Kwks^S;_=!?4O+SnH+%B>j)pQW^LZEY2TXok&kiYU;Doa=kW*c$n!TZXo@1W+mI4oPa0r3P|-o~N3d9;>A1XX0U$sZ>QRL?!SD;(vpNA13kZ z+KZ7(46qe24|}!X!-z?!g)ckP`F6DR z_Vlgw+}l-FKbr-2Ad|pck?U zyh9Nhsz!9}IXc3`gkYamS*qTzm|#|wuFZ|mvx$JjUx81#EJuC(d_JmPe*ac|qMlK( z00CjR5FHOobBHSVoeg5xHyzFM)*dK&`Zy{9F19R32xll;h9!&3W4TBiENqsEqK|sRl?t1E*@qbfhD&&*P`j~A8`~Oc z1zspHE6pqMRBd)22&sWL6WjIpJ6>d2$@(wc^vwA7c-~R(REYG~vo*l~z!=j9p)b4_8R-@s@d;%^DyZtCWFB!}x+1kLVw1I!Coy(Dg#sd`}OwCVz08P^#-MzXA< z*qerYm$$$3v?}@OSF#zR+HAomYGU$pyVrr~t>MB)Zl25gvehSFjSH%v-f2DJYIWil z0x4%_JnM1D==|doosr^N?F*0Eo$}*Cfr^Ta?aU}6*Pq4(4~ayhc69Zmx*(3cN3BQq zM8}~KDQk9896l$co-NL|0I2Jyhr>?`hL`1cvy>dXg9=*%wB4fo4kNwZV_i0hXXRXyqsAxl?GVh79q_>|LMj6$TYQ{Oys!N2HSUlXn(T9(xax?@h%$9>QXHUx>ulyY? zfXTPu>fwpIMMa2(!|&X_)`m~V%Qo`IbHp_B0Yq5Z7?pl82SFaKhddYZ_u1C4Fw-(L z{2rZ>E5lbf=eop`c^m;50-u&}4DWX{VV(NXdRLE#`k9ZR4@GqagEc@^Q`ur8Dk#sZ zprLLSTPq76p)x!Byy-@ZVs>K{AauX7%+?`UCD4$y5S06oa+75sd`&y%ip4{bWT22a zPwN@9Um+nW-OaV?B{PYOi>^GRf8y{h(z#(rtBltsU6kqEUu?T97dhAx5p{9>RFivJ zeph6Vd=5NXB2zVy->`Oe;%4lX9{FmeUzc}!{^cA)7JT$zKo%}6(9zMMsjV%SXVEAA z&unxXJgY(X-^;11t4pq~t{%_v2XU%K{FRNGu-&iCjbG3_&Ph*u zaf04Ot6{BsTWeDDr`FB`x*ua&I;nY%$k+8+tliDXfe&JvMxqK@ z=+bj;UWveVpX%a*4=lP4Uoy@^2B_v)Us^eu42eV-sjlX<^I93PbS08J?Nme{DDvd0 zwtcVgE{1)Ys8vH=7(}0=T0(uV3L750no)2mqZ^GIaW3XQ{@C9kA3en`PJP^4&?^ML z8v?E#V7l|Kd%033->F}J0rj35FqE6zoUrtDe)@as$=5HC{k|vz3Yvd{O&|7Yexu7Pj}C(nEIrBSbh@rC=DYY0 za6B*nL-6@`>Otk!Otyrc`JIo<1$Yrr>hk(c9v5B@wLT|~{M^GR<6>QPPBrniA*_7w z{Qm8f$1$PK?(nx@7=t{|11Hht#6m)82WUp{r~;;ZVoKRA>@|()3F(_U714R<2yI> z;E@>SAd?Bc-w^rZe|(1kU7MoOE}B!8Z)PhiCwyn+27#VQw;}P8E;mFx@&7UzUB;MT zA#|k?X|zsl%6ELvT7?{%Kkx+y8y|eTC3MVAH`6Q)$C4@d&hJkM$!0z$K;ls!rU7!- z(S=JleUsq76ES@1Tb0dQ>TaGhXmyjM&)manljLYK6Y=d)_YZ83x#?r2k_n|?g_-r6 z{q7w}N!y!t1---|^u(mqt+B4akPmtMH=`0S@fc9CBO^rMAZ31(CTVtaEi<};DxJG= zR_h18=MF8^;k`fFYSiy*lb$1Ycx6IX-B;&X{&X*~z~~ zH+gwSriIbrrKi8#4JgGA@IP(=1G2t)xE6hrR0}om#mifPsrW{cx7@xN-GEfMSdK-VF`?MHawoVD}3x z4(R{&PlZSc^-6&nQS|;U4YQ0l)9fzvA#r0K8Z;R^Z4io+!MCDsp>ER(#Ypn37uJwng zSH|+(83HLu<+#8Nax_z7o_sj?*tWiIRS5NNo4Z@${?4HVwpIOXne`;zng)IR9W`jt zSBV1dq6c?r$bCu}w{r02TS3LDi_eo)z0O2eM1#lh@M>#yg)-PB?PJ=+pk~TN$2U<+ z>AbIgTU;Fp_r}ksiK&RIa@AC4+}@cTiFPN{X4!95cPo@`d2i4Q8K&C-jD+o?138C| zrTJD+(JqFs^uU6uGID(vBj`OkJ*(8SP@$}mA)t=Vq!VEH+}*j{5JF}cmS-3h)Szb6 z`zAUt;pj678QEyk|Do)?-#a>-zOJ` zp?a}i8p}P8`FGx%hJOz(j0gS(X1Ts?e0<`eWUs`~74&&qsU?kFe~5+M)lAiFWW`5K z-@=H>DE*WE^y(zhwotwC>Rk2uhBqs!0ybgGNft-pC1~Zvx{qyib2P@CZ&a(`B^e0R zK=3D)EBCE#B%&zQM)+z{PySdZ-wiTU%LO{m#rfDKV4iOUy0%@qZ8dp~s4_=R+%Kd| zoz*~g6vF)#NRaFy>ViGN`io}dw_@)jM7Vxv$4?_2`<68P51n{=xsxh z8Kn1f|5Z35t4l6e6f)`Hpbkn3{46LR50BYkD>#jw6?}*7pQY)g@TG2j_wKzR#t%|l zu33cpydCD%``HcJV^F=7xBHV`^j#OpPy|KG-^Qd$exZrdWgAJlFpzi13V8&df1>6<(S@n|wLme0wD0A0F@d z!#mBCRCiZ@%dJhlH=`}`*jyR=FB<0zpA~h5*0G4R%B~O^T6KZDvj2IPQ@;3-IlP;y zy5v$%v<~SJrBMhc`6Y6+`zhz&f#vz-9Z?Vm?ZJV0(0>l|oGQT{` zX^FkPCxH#*@QlUV{Z5Y$=+;?xp8xx;|B1TeNxvkRoR|Peyw`jQlS~88Pi=!ny|&{{ z$v`$hXx=*Q-#2%a_GY?-C9y&+2%g$L$dOi}(1Rho3D0;&PoFn92s}@&i96Ghq%>uX zkVsJH5GVpV#&z<d#V6u&ZNyCo4PUas;jShzYpkcxqhbg z8QifrBkgl6==!y=nL+aC(YuNBGfK{AL18Fp5VEtek#%)-wX3?S9ON%bEj|OU^mHdJ z9Evll+p@1&sZGWDa7C~up7Bs^>(R@P!+Z^y;Vx%L!xqiG%(4M>Uy3oI3sO0jU4IFN3;aXF>)s0=$zqYQ9#Xn%C zN{NWLky)h6c7A!WDJ(|0?qpEHN!91-6oajqFs{N{?5w^*(Odizm0e?RER@e#CK}mv z5D6-;TX7DN?~(Dp#EYgied#SdBO~U4&%9abqf#+LIwrpHS69caWFpvqi--bMzFZ%b z)r{*`iVcdT^Xqy5L;i=iTp+6jl zEz{ihUzYXdhMSu-;DhTd0D`GrWjd;P;U=}`Xz-F7U17#qjLORH`!@O#7gj?&f#?e( z;>0MOBj4#D3VUoXGpcK8UXc~29mdwY*ds+$mf?IHLWn~2=2`N$-s`Vc!+tAp@Wdnv zB}B55S;(xu8W%vtQ_KL|9h$s!v^SX6yah}5vxY3yxhj5#5Y>rBi}v+IO^#GlXF6cP zJco^RBl}(WApsUNsZ#Qw-Dku3>1jn0iHq_%IA?K(sC?(yl5ht^u;2BIfYDFewSBy< zWO&E#SY&zbcDt6D$FSjcahTTj^dGdZfUm1#@^~0NE+!^9*!l``yS?053pjhZrw;v* zp72DBPN{|Kp<);ZVw(i_zGWTP3_Rb!Pb2Ef=hrB!>95Wup>y$^<#>Zv=}s|Osv(O+ z*2ZSWM!bg zFrWnKX*$h-|7iZrQpBuS>V?^>(tWjtBK9 z(GJ039&WF=D|#BeSdY7QEqo8*JQKAEBepugJ$+^)+lo?ihtxhd<9u0pwx9a z!A}V5URujHjqrBDokZ@91{vS}51iy14{T*|MIL)0~nU89L$jHcK-PTVu{Pg2C z#{px+?q5JI$#?SzdNRkjY=KB&&*n#f3fFZVqFV3W_f4~#&p%mR7P-FQ=xW-5E8#Vq z1V%QU-bY3g*y@+P zPddU>J{A)w3|gBU0|60DUp^*dH!@%?N7L@)5EB?>!~2Jec5Rp`Zr|PrMkff= z=GOD7YcWKgcQ3Pp&S{mHwIO!aMf<%+@tAjh!iJWXOf}Wjx-1ZkWctH=o?lW>#WP#` zRMj_E$~R0j|0sPu;rxbI4r%y(%XRtjZzGDI&u^xad5TZE&p6nkR0L}bj!0daEx8oR zlfOM#F}l}Wvzr|yp5-y`g@|N-Vtn`Z4gAm+9uthuY|pYui#sxxZx3b1{J&-#7}+b!ykn%mQMoG0yD^N&tbW>2aATiv@_Dx z;rmQr&14x6h}WUK?cNbtT1ZKH74s0|MQmxqbIL&}dhY$A!otiBVv+uBNrM*e!)mji z4-qdC&%d;?H~4^Ei=BjYTydVSMrqvp|B5g%U+X~(=L%NvKX=C?igz>);@YH+C3_Js zuL6E?|1hZe6z_&_%m-Z9LM*s2XxNHVmo-}6L+L=KSV^(fl_Zo{!W7r)30mpN*9MXykF6d%Pn_$p2QI= zPPgXAg=x&cKxkw#O&^+Cvi?-hMiGNq)-*R&L(wf9%<$&*OisZp+O8 zP9nG;Lbk@p0sM0}Ueu!}Dr9%^{Orut>%qD~0>K~Qw|t`S z(3WUDN2&od<4rgmjkB3bj*T);a`asj=9%*1`SIl3>|$!L_ny#tER#^znXB~J#02WE zs;F@O&&JJbsU-)$Wa5i((c|RnA1}U0a@;bSGdgPjAwd=Rmqa``I?`u>T-QF&iIVIr zRDt%g)>&{NZ0y1PgHm`KrKG*9jN1(=84g-BHT^cdTfi(2VX2Q==WL&BY%)ek4Hwor zZzi_`e?%oHQaT^yNOQ`&F_%2sEedYfry=*Tl>4HZ75$;g`|*4XSw$||O`qm4{v6p3 z7^NuFey5F-O*bc=bz)s<2I88z6019v7n_~8%3w8C&w%70&w5I!pP`YW0U#fb= zCo14CYkMJ0&33)6XM+aX^YWeD_W1k%4}8!d$!f2oOhPrEl}~`rDs^ zO_P`haQxa9^-N?;>>_OM7h?{YR?u|h@%+8+lty8ZJ=Z7vmvmIGXcmKJq!d>H8xMq0Zg7EzEtGlAJK& z``fmHr2_UZl%Ow%FQX_v(>6&($#1+%-v?|J<9!qC=pfoW*d&pq4EBuE^n>)rK6~|T ztYH^7T~=QnRW}3eyznTCL(y8){Bt3iiSupPM)e@hRY8gN6#`xHP1U3iclHih6VAOg z4cfRHPQ_Nw4;I? z^`0QBiSuRU%_8jGQou_CSNZn#FNv7O3567o3}T+S(ii?aPV;m-B2KcshO`Eju5fr;Rkj zDnL}Vk*_H9Og54Ar<&kuB8ZiN<9rQNxrH6KW;6qUhL^10#TN7>^ej;7j1PnjSeQd0 z|H}JH(-94->T5VC{^8q+ac1{vsNA25bq(o);~_!W-}==Jk8YHCj6@ZD3-Y7CoL#5M z6%!;OhkN5C`?O!}A=p3M?NNDn%hgzU>N?C;s=@g_D@JuG@-d@Q;Fk-rXd!Z%fAOhb zb?=ZiCX@Bu*vKQlxo}8Gdq4}gYi3{BmuZ~W$}UxGf^{OG*blie80G`eZNRsbo?mg7STsOha}4>|@@ml%=0-zXo#O zdbXAGU~vbT^M|~#5^{{+Tk_1b`$Q7YmGuyM_d6_UjPmlOgx&FZNa#EaT7Rz+pB-)& zM++brCjVCv`!)Q@kCdIfPoo2q>mUD_*2{SO;Fr`;X7)3;rJpjF(mIkK+3-z_4ox-r z)aPoGcNSwQk9ND(C7)A1SUh8*jFk2}zUkyLw6lWQ^0g?w zf+dO~XzLf$DcGp4=`^`WL&g!YWS`->U?wXnAn5U0rr~;B!U`$0q)d5c*w%rYO3cB$ z(snNRoqb4irzu@}fTv$@HMTU^`d zWo^x)ndOZ0VpQWGVfP98h&`yF)OCiqFUn*g$eIDgkm|bCbn3Zvx^esLv2awbF*rHG zQD=jnmvaRfnl>3L^d6XquTiAX`pn7IlPi-%-lFO(dw9c|{{UZp3^rg~1eijecjb$T8Ft20F(vdta(b$t)?q5iV8MWs=vLkM{OgZ z;+B7cQOy5SFnaZT<+ADJ8Lb_Sqw&V8ac@|OL87wnPkhBxr;PW!@fKt#o@K$YlhFX& z(X-771Db#-0a@c^=ho1Hg{R^sLY)^)q@?Ap3YV_aRgG{S=*T;?Ph(@hHH&t#LH>S> zySbw(5o`IzGYWT z9{TZ*+s$AN7FqA5V?2`x(2>WuP3Plbusa%$`Hjj@hC6Gr2uc=4_A`3OFFT6=_gFRE z^MgCDOGBYUN;OcQcw?Q+?BmBTa#MP$<soa|c6hePDJrqr0@?@Vim7S#3Sr zWLxXsSDk5pVrm_)0-izMA)wz*CF2V}36{%v8Da1^XXF--u5pI+1JO?5<`4nj2H2`Si9?q|K;Jt zR?*1OjFT!JTNVmqnm5z#LXFSTwA5_=)vEZ1&Wm~V#V+C1S1H;%c~5R$oxc$kRmNAJ z6cyaHAKShu>`3E#L>QKzCHOw2ySl0>38!KGFaX;;7OVQ~|8O-2WFJk!>*}0p#FyQK&dwTKptxWhKu!X)G7WZ1VY4gYlC@a@P>OVHFS+?gxC( z&cJX`>VPSMCsNkf9@`8IE9r3&PySU~4XfQMM){)MU+ql)bd6q03Ya88OSj5un{mbS zA!y%m7o=I{M4|xet_q-jsqXb@41jZGt&2FZNovBDCWgYR&ViNES8(ktg9irMy4$-^ z5lWAE$q={ZO_w9a6 z3VM?g?`U$P3T^-?&fBOPEhV)ow3guztjK(I)LU;E<58pGpnAq~GzpKx;sp-qoLSD; z=E-4K^}Iu2PC(k)b63EcD<@`p>@W*qsXsUnmPXU$nl{m99ed8~t~;&*N^1wW3|3K>fA@Vs>pAnW+tm(V=$Pb zR@QhU#}J{8sG!j`K{9a)$Z8)5?;u0N*VnxZ$;6^V5+}Ao@DcT_QKgg}t*?WeOaN9r zy05d~5NnyEY*9m}P-WQs++COJz3N$^WsOlO2Dt$kkM=Iz$*T!ZwbH9C>}v?$r_JGt zdw7|^gAE%$%&p<9eH@1YRB+lx)-+EhCgFUgHfp%=${$s^jjp^IhC&_mMUo2$R5jNo zYB3s1gnu8D-pC(Vo|CtNIX61ju6q6HvBj%QkxXPt@*CA~{3&F$CverO+F;TU^C`lj zhir*QImTwJm`Rk66JE-CsYR$(^ExKwu@qLv9o)B48ggPG7##X~nwy?zJPCR+Tb)4&KIqk?HB5q{F z+z8iQeMLbf$c+a4#g{$+SX$}?Anj-@UqA2A$JU7X@`qL)9_Qs3<68)Va)l(JzDK#r zW+P)qzLpiMHLz3)u{y)LCuLmPEq3yC7^VBYe*y1i6{98I6)jGQR+Hfq4A7V0|_lyPYv*j>b!28DCQ|uNWf~np~WkA%K&6eT7tr>(iu0D zncx!<{P|TUtR)hf@eHNFobCob<3R9V35VBP!t5t|>%^0yRS?8hcpj%5&*L~ym}f5; zh`0vlOLhmD{<|IfU#&Pv;FCAviHB{Y2d<8I=SDX$%LJA1TOpu;F5P~ABb>EUpu4+2 zw3$@}F_&R+9@n?mK8Yq}vo;=SAz7y34Ez_R|KHy!34ii<;W^zUJ~R=B3R?uIMs}+H z{PPKK<=B(SH?tz&uRDo-bebrusc!|x3JNI8tj)Bqe75Hi{YWp9Lqg^FH>X{9_z1$Q zJAD|&oGa>N>WA`#R?GM6xJ%W36jMEH)$;FbUK&B>jWYkQs&UsC$>l2@@bO%iI4m%L ze&F>E=;A`gjOBgLSB|oh=hSo+#GWBuy@s+bPlz5p8ZB@cQ3?$zaKn;PbJ^zU@fLLy zW0U1IEz%auR**qyv;B36_77)UM>6R@;htrtoB`N4d72)D5;awlu6!p+Nu^~r(pT<~ zxy{F;Z((s>SXBqz*r0i&0sk6fANKPf`v1S$nfT67$oa<+#y_VH&coSMXtzj`@{2!` zCz0V|>&z5oYRJi64r;ob#H)i>V*40M8(9wtEy2Nzz@}}LCWlrgt@y+b{+QH*%YdWI z1xFX*OWYZ^8c3Fbh$cAp_Ke%kiL*-ePVXgw!*PPUO!1!=tTTd5zJASRvtwW9jaOC^ z)GTF_YYG~NRAwG)QN%BOsvT+}sGM=` z&6$yp{t_g*DUioeRiQ9Kwz^tT--vPgAzKlE7}pa;m4eh?Q)5Yn^R)(C$ z#`e9;ysRNzM;(Uq0&y>Uxf&d{3U*wJt+r16VJbhf54LXZF_)QfKPR=E$fnVfm{$ac z9twTG7WjU(5E#1Yq{YC>ZVqR{m&?e}Iu`Um|7aOOG6>C3h9lJvYoeZ0B*DS&0y0 zMdWFSyhtsdE4RvtO2haCd10?tv^9?zIT%+IYgKA7sARRgnQF*`%arH&8)i(|2jN?P zuDjPkjI+#r8;^zkb5zy25dvw@UjxrVJ|#wk64e3Y5pkw8qg?qcPhR@+I><)}9r!b= z4>_z~P1&EEDbz49aibNvi;UyLZ2EOqJ1S~(QLu;tK(@%zGb~T-KpPr|{EnM)e=pjd zR^nD#ecI(c8f3ujwj@+^UBZ26YCyKpfqwB}OhU^s*0JeDV1b{WF#mYZ_3a65$@z&o z0?R?q&fj;03xANwV*?RAY#)3{>Ut{y?=0|FS{6y(SEc<c=kr8J1vz7 z%~D=WpfxKXRTA;*RZF4;DD~hKhQs@jSIwBT9(zJ!RpC(x(~%mnW+yfYR3{25|SXxdGimV zBA+E^sTZ+r=QouBp!ApJaqe@D583F6OQrixER{ub)bu9PZEJc;fKe$l516b(8s6HC z&PvRG_=r@7DycwElh2}`Xs-EJ7L|pTMQQ!%CgH964!PgI?X{<77P4cxJwqc; zF5tfn75FSp?$CXp%AWa};mZ43htJA*2H(4|l{Sjmsy|vrJA57u>fDWMKO{S&mXAWW z0DxYaP*H(wd(X2HoN(#>xS?e7Ox(J{=D2Fl=d+hvE}KV8NSM4}k)O2r(yj4_IB&F; zZ|8T`s!CI_5sY_P#49Arx)RM&cdqgBF9Euia&Juw2hY{cS{ixQU}|F8vYt?)#1A=! zckubjao>?am|G(9>U&8xjm^;OMhDe$rn`|Uti+*YwKM{cvDwvR^td}B>O63iTj6^Jh-a4q7}=20A)T=UVSVh^5)1B5WT=c>{w=^rTjeG{`AP4g5*xj+s{eaHvoz$0VieyI=j0s26nb zI}cS^wuIDRAqi3r8#pBwUy)_j=e9>y!RouLJDNqA5Y-bzCgt$`_wTo^Tc-!Nr=4e% z`53SUldy0dBvb7X_*z*?)2Lp`Bzf(rR@qiEpZ`N&yiv=osoo-B4?C!^V{v)ba3pL=;yE-U;sPk*Q_t)^Gi#)2` zjyt1ju;J&?oWuQTzm^)C9Y(lW+B(lZuVjZglja9wWig}D-($RrZYp?(Fb(MzyR(9V zoLQk??-*s8#o%d0?1+LE2dYD&cy)8oL#@Q9(Z%5(!USQ3CC%T0&b)29kX$Qqi68dE zt*XRk?MoR1cmjN@53&<&Y^S8DX`f}pn7XGUl)Z;V6CJ?~(az5V7N}_1xhgCf88>@C zO^kVS+93AKAnJ|caFmgique9)^CImHI*vT=Dy0l~-tS48O2Mb0r7OVSViE8z=UUdiaKpsnW_2%LI^=3PhtT3m~>A-0x zUq%q$R{0nQVD&cx>IHNrUc71L(X`pbZCgbA`H04~5CnME&k`Oy?{wzq==$IK=6}G* zD*spAE1k;Q0Rib86|{+}ol@3yAR86RmQUTTznf3_I)o~HTYNRuwN%gPj~%=%64BK_ znHrauGuS1Xq0EUQ)vW8Q(R59f;`N4w1-V2MH%d-NT(%yL;XT5~UBmm7+i6&wB~9u6 zj;6eS{XWYg>q&H$t4y~vE*78tv&x$rYIQwOJI>9Wun zyUZ!6H}yhBXT1&32&lj}^e@u+CvON~24;E(o-v}yoJKb142?^Z(_sG(J zK&U4{=YCtW;>|$k;oHAf&EGO#4~Bo~a1rdV;0<*4_UJTj%TRWqig2wWn{dVskbl|r0mZG3}ysGs-V6eG3E(w1LYW*Ws zz;$PA!3pm|USHWcJ-Nq4u%FLw1+dEiZR3W4{O|}1REDlaA}1bnoQoov2^iNeoa@Cq%-i zksz)7^-ib?)>_cSx;FcGI9m{+Vj_h9`K}RRHpiTw)`wbKgMrsqNYu%(FG^}2*A*GzVMh;Q_J)xXcUI# z>_1xs{9D%d*t=T5h;}g}Kg=R>@(By1sbfeWiD+k2F!&btgzI!OEiC5~1>_)rrr@C4 zWRwU4QMk4X#n?Bo`1-Y8u78m^%2gSMm_sf{L%n{hS<FI2V*bT~4pu3uS;5mJ>%3a8PkY?sfzf0vZltqWgqRZ zD`;*^{?xB>3m=jEl1q2Z*S!ARE8@2lwc3Y)v)m%{cKmm6)g9hzu~t@=@I%ObY@!ZF zKEs^11fB1%AgfJTzMa`(?0{@ADvMGz3nF;^z2W9A@d(BJQI@*-PyxNNWPy|EV_QT3 zTv5GcLym(vEL%`32SG6%_4vKg^W!b8PuuR3x_!9Ws>9 zH#v|8T%TFngb6e84NH8S-!PUPh=_Q%1Ao7D8PF|7vc+7^zV4&EI+b;tQ*7x`qQeM3JJ%ixXD8K^*gR!))7Q>t3|;!JY7!sf*(orAeY~xhV?5!t z`Jk8p(>T7L+odgJ<%{1kuv7&aN$$+n8TnLczBAg~Yy+$xnM_;Uqboa6)8$ndt7|a} z803|)mGHTE>F}eu$E9Ct3i6z$mXcJ{JlZuLL-Q<4d@? zP`~DRUXmYRr?F9Q*q72=x4^;en#Cy4;rrX1a$f-N>iq+#D_NI&$cQc9dMz?4?`vo@ zI1L9tSuRWjU88Gt<)_bdjCZeW?B1OeZwUY%J;rjFs%OzWc2( zH9-VkefS|kpxq^oE|*Np5u7W5?-TGi+Dcbd?dOX#=)T`eJ35rt1+|dnFlY}I#&R47 z->xg2lEorV7mt{7o>7(Y=jaLhhE4K)i%FQ=2=brep|7vb*To444OG%@`aB&}n%3^& zu6Qyi9~n^HhL)4#eUMFHTTVMOyqB4xCY;~lHh&eCJ~@0D4KQyJ_`{ctxxc(FZDQpnGO#OLbp{u`$WR^2_+odS(e_&$VQp5^!N z=uxs4q8mI1jtkEeqn~(-2@vmnrua(8pVE=-{2-<)Y>a2UT8N6iK#f*(r}v9cyUP$X z$~bQErVeW5MKtWQgxZ1l>!05E{o78Te3O3J^8gt57&fpXsFMtg@oeho&ZQRiKP!>73}ujw^0sSh0&^?Gg(GF;vECceCx?)CZYBkakW zc*YNDfA-`-Sp>l+v`b7ogWF2r~wC`^0PcNZ10U6EWBK= z_nu_c2(>u{tn(*H4{=4f&|*U+Zyf%3BH(GTY>*)$smRRk9ls_y$o#Qe%Vp1PZo{-q zW$8obi>7-9+|IT@B7Mk z`Q`!XOio!YzuW*_N~ddl8nbOOOYA0yst1@*;4Y63q?^Y+nj}_#ImJ_CiOT2TC}Y^o zn3%5EX8`_^w4axen4VCAm$k|_2^C%+uS_h=aU!%gimH5A?4#nB;G+fDAMKzWo380W zzW4aW@6$E0)RaN)Q{o3U4o&zN3I#6rnB3&ozsZ9b@RVyLV~FS`09LcXe5~@@wfC@C zS_}T_8TZF%Sdo>(&+Xrry7d3&Qs>ycXm8vP(vUF(XPpvCnS4#jmDC_ zhmga$K?axzA z!4AZnd1kYPOQ@N1UybzgwzAGeq))kL7q8pe8*0o3h^JC`f8u?#EpTfa$M^WG+VO^E z-z*76?4_yY>y|$er=+TWZu;VTQrs>>wfnB7r4>)u`0_MRiUfU$J0r<8YQ(tDuiD=%X z0m>Aqo6~Xc2cFaYh}jL2<@+v=7|q`}sfJuVDc!Osnxro0|7iDX{7dOggWI+D{{Evr zmH)ZJUE_sf)TO^V^^D{-%XCwKjh6XionKb-nq&X*0#M)*xS|cp3D$rNpo21W;&Q!oAg&gBEb(#+LTeqOngmG^|PkQ30tx zcfA=ba%4L)x7ZiiTEquse3rv`k@xR*&h!Qnu%R>ZQo=3NFiHU+mdIaBHV;9qr?eZ| zuchSNIQoeu@4S6+0T8g&+z7O}bHHdy0_=2DL4(wzr z=v&lruIS_<(33mIip&ny zq6a9GVB#DDi*3Lr2n|y-Z#w;82rw7NxAtZw38#wajST*ktvzr(#R@QmYa43{>XiK{fwW4e|EDcCqikPUn`dWCQMX&8DoI6+R$F*=f zfpV&L1=fbGzuf1Hgn<@w8W!E?~t)Do4BPw!cev+QfT4r4F^qmQSNWxE+ z+qPKjr*VNc^(bn2T@COkW_=oO7ToejcY-owclE=Y#V!j^r}vCM2quYBn@MiOWmtD% zS5tVHea?LJU($?m-2d96s+3D+4e(M`@(5P9?2FZv=or<)Ey@KbI(yH2I$1m?SF72f ziDM8$sX$fO4GZqrUpTUs!1QiWPn6v!?|aI8y3w{8LbiA;-zSaRVETyLYh5I9`XZ(J zr%(VB{lGak+*W*^1p)oQzWedEryrQk6LYHbVr%X5aC6ap+BpF_@s!4ga0BND_Y%2p z$!q&OG`HUVQs!rTLxrB}Cd-jMnNyvAskB0jiE$=ofRHUjsDazClJMZQ+ud8Y%cS?r zyE?6B&Aws1_TMrtNveUK9e)JSPQufSxe|dq^-}TrDw&R@>IbzaG|pGc1O;<2##x>6 z8@n&{6eMD*9_w8cNWD9Kv|3L6g*Iv0r(~rF%p1O9l|;_9QqbIg;%!L6%K)0irzHS= zu$Hlv54$L@@(9kkEBKVHo_-DN&Zcq-P=0PBp)K@?cfY0`HTfeWvf~E1;C>&cA*Rg6 zaF@TY7`0&viTcL=>>PHoE(CyNeRy+34imPIWEVZs!oO{UY$|P&6PDV}Ynkm=m3XTggHGGI9c|CDgF z1-YbMgVXU66+##aYuasU9fWnkXUUwOt&ey+ga=QH_{91(6`6@sZQYWD2WTf;giA!& z4O>)o^T=+q*Hd-7;5)s|TDl`xG@9@3M8_iyAM#n{{KZX?S<9Dai-yd#vQPw8KtzpJr9*bXXk@bs9=A{)A7%% zZA!31XwV;^de_|N?gaMW%}Tk3=)07{t@q*0*L(80EUS?Iypw$DKL+pSy=2)g?ykn`D#N^8c$*3^E2rce^^fG5*=1$6(*Nts%JvxBs zsnF9f38HfnXn+~NcN_ZkpNp2Xt5svvjc8VBJ8Oktoqy zh4@V0Vt`tv4^@Hky}F5Stse&(2NsRt#G+Ghda482OrjPA_;aHGZiNLM)d=A`yv?+!JBmFZr>Xv~ZE?~_>Hk1~yo}&OBJkJPwu%BV=qT!kQ)--|NL{Zy0ROKtz01{>EeNWRThd}hbNnEOgHJANd z13B?MrgjlBcu*t}Lmp;cgKnQ#C&F{Ec~Q*ya!p^?yNK<;UV|p|Y5$j>s8rLAwr2%K zt$cS*w!ev;M}2FBa&zc@zEw2lbUWfx;`jRDhi^drI>Wo@k>P4)-^d8qpoT1N>}9+5 zVf6{!FQ6OQoixgLr`+)6}Cr@r6?01q$ z{@md`#~j&ZcE{6qHolRR-9-Hc`IfP%%427=@ zX3VPcAvQ}$yed6M}BX_dh8HRQiYOEd9;eVC@4B~ECjxa9L)_r9?yuWo2 z$kWIMloQD1)naQ+im)Mk%($Be{+64&M>B>c+K^qRa(1P<7j}SgYfndW%;K2tkuzKa4YMilVw-k z%He4;Gez~0TBImJ>La<;a>K01~5ESy|>JeEi zr-plfRD`nYg|f$~d~o}?7TOfO;ZW|d&-AUagO|)&x{ix8Q&UQOz>4_bo4{OwrP=Ze zDdhL~ArL6Wm5qVix+85;I4utH5%6=*Y*#boMN#Z-F|wbAq|saG1guEe(Mc*ssmF@$-{s{H7FQFV$kWZVs>AXy|Xwy$Fq5 zQnW%BS8w_R_KAx?qLP72DNAehk@@XN!IcdcIs~n@XVJwPn7ux$mq15#h=^$AwHT`p zxsEG-AMr|1e4g`uN-H^JutQ7tf%(~o`c2#*M^$A0-o);JDIFBmf6;&96~TU`4TgH5$=JuMi%2c&)z6A02?R3qN!0Mhi8iZODueSfHZP^G;af(oT5N$y>7eI2j

C#FjPcH`JGaovUuAfjIfyb4GAVWkAA?CYN{NNjRZSP^Xtaj~Fp8ozBT70(S6DwIM zC|ATMYRvdhWF%_RQpX)Q;Z;zcJl-$A^j1_5xRiRj;jJUoKcuCL&c$DNmZgMXGdVo6 z?+yB?KlxCv;0n$~%)U!LH`SLe5j9x|(6VKNAv6CN=CTW&v$bx1)D{B3=>=9&Rsb+9 zAr_xva8O0nXaJ0iycU^gYBj%BpJiTO-WK;Zi_~?gZ>ooCL|_<#SGpqJ$?#GKH;iCi z9N!g1D?r22yTbX7Upz*K5O&h?<1O1<4o!&gB^g>)gZ-d^45K1$Gy=*(Va`t({N6n``T9)_ zX80t8UHmqtgoT|ddH#`(XsJ(N@x|u48!fvrVctq%`5t*>eA$X~(zOLm-)K=9(k730 z-#s3-h|~e&PXubD$JG7;I>p}lc!4K)l41|*39HKX)m`GZL%HglyLm;r3{Khb^~och z6DyM?Rw(MQoJyi>chfT&)xW#BhkOWQ7oXZ)q16DCQIvJZy}a+*t(Xu*OFy7Kc@6A<6+dBx#%C9m^HSqW_qL-#RgkpyG%hn1v>gd zj7fOK5L#DA9p^brxhsHVKP^8WYs#*F*IYud9{=0m7ZiRSUb8|r>a|UITc{9hM!{(2 zl6?ywrc_{`&{};mu&b&Ab^3<>y71zuFVN5Z;*d|r)aV}mI842k0hkHeKH;@t%IgoQ zV;2?Umfb;4xVZUw>-H9SzNWrA;i9Dvgp+g2n#boMOMS#tdEx2ZrcKZ)iX4<%d}?`? zIdoU=nvLUDchsO#8@ci+VY(f3k5^6kqvn|-hKRSoYKGd$2x$UL@o8o9@2wGo&9~ZL+xny zF``}mIs}K;g5?)lH(RcutzicN@0yq)LMw{>gf32GDwF?1TF{lAP5%Rm-Bua%Hs+z{ zVkTl~jM?@ZBg(0C3!9_;K358c=JYNqmX<`kWKwa1nkSr)97 zPOMApi~5@XplTnqm>X+_5NzUuAS8&2ed3@xe*TGEWv8=*7b1G&&B*Q(uiRc>aP8N0 zi2HUs-@I5;JkhH#!hR9OHBX9f*R3}`fVY3Hy|lVnFAm|4oj{y_~w6ZnawzXKedYSL%XwgSBC=tKnm@yPU?}(fA7Fzu>qrijMzNg2FRK9^dXw-ZMAY)E1hNY$exkmKF6JVj_v^6+$B? zrn9rM-gP|I;Yd^8`tjfN(tpz1zxk$FVxm6;-iC&0p0h&S7p1^ChudP@)Xf9+{u4sh z74@#{+9eM-^{dOFQmq4r7FBis=R5y0`lYE!WOJrYRTi{m(2_JPFbpb%i!emf+@sl` zr+2TJKdrG;viYBhu7BVBH6_t&gH31x%YuaEN7RBawVKGA%_cyEwWqsn5g+W2VH-K! z`Sl${Xo6`YY6So%WQW>TK4ec1kA2yz%H+kGa?dUDmExu`jK!Do(syPR5HA6Gnm+>?S-LEP=RW> zChb=*mpaq!S!f8b`{}K_ePP{X^M^RO3kfe-Cc;kGXvqabUgJ8Y@5BDMd9&ktr-NVf zWBU4|R@V5$9Eou*kVJgt+67e*=#n{APMxEDF?xy!#0Qm7dL7dvE!~O{(>1=pY#%YB zd=$!!mJZh5u&2_9jFiLnE7G$A*iWCPE24bGO8!h**Po%5{#D6+fFotPKr5J_R(9HW z=w9g_3WYD;@M$I-^_!t%U@%mB$s#e&+3-}`E9DgH0@96YLUxd+*^WUYvp*s+_{`@_ zm6xW~sMy!5Q;n=^$5*&uF<3iN2TQB-W^6$y0`e`jKRKt^B+V7iqSX zOUd?P7$7h!sk$irs)E()n_t)fc3OR|4c|aTe~GY&`fm$twCq<_N%S7%+I#hi9(Q%X zjb$r5hEX`vXe)3fhchIT)xMjbNd#>TR^N>|pM@i!D#mTyTp z_z)gh98B)d{w%-Y+d}}Q_Xm6;WB2c9M>>W81c! zbUL9UHR91PHo*zGUsCyiE#6 zoO|EZ#aM@A?nhPj-_`L<(tf200aK!|KS3Dl&&vo>0)P_lY|*bw0zs-b$sxp9Piej% zfs1e3-+{I^fX?v1w2$R>5$G&C4^-EB=B-AV@8^v{I6w7Vq1EqQY3^H`ZwPXp35;=2 zKlW_n$;zguoxET}g;sr=077em6i*Ri-#d0_+csue`hGYb(&e<(e!^$fZ$ zUcF=EkYg(Q!E_Br!hs>R`8;270 zga1pk_vq*Q^RF9YH}l&+A{?#Zz0B;K^KybJs^WQb{|K}0=?<)FtF8mfO*y1n1AW+yg=l1B* z0j4Hj#$aoD!5qdU-YTa2?N(dL&P!dV?Eky>YPh6naNCv4tK9L0JlY?~ZyO^i1X;df zOP{>49VetrEuX(yFW&5sH~!+cB)>B-b=(AaHJ`7fe5P0n`}+1)*Y$s0K1E|XyZ1ul zVq*i3vcC9#JXOz9&t|^Au5sup%**DF<))ZHVm?dF@zs&ER9kgk7d2|XJ;2;0TtmVrLEO~|Oe>1C@`Hxv8SC7{Q7G+~_ zM>W1M=P83u;$jR67a3g(#!N*#x(H|KOA_Dl-=44Pw*|)R(;M{hv@vC5GC!|9Rj52M zhNRQsuS_`$SHylJ7Uf)0)|}u$NOPF&-p@{3^Xk8~M+f-DJ+ZaT1k$XW_6FaovaqrPcy==nl(}mT zjh?f)&BCR13iZ>U5X}mSD*5#e%U|%f!^t>d%GHn3Pos*SWDt(K%8XjCDM>80TJszF zdZUo=0cEj2gc@9m5|Lh7^`d(&qnTqz!pvvm=x&V7 z+NCJ$2xXq%n2-Kul^y0|{GOIGZhdf;svW+w-(Q5pGe0&K*^lULM)IhJn%Il6R zdJwg*=isaP&@DH7bCcV;c~nB^%cWE@p3}_&QWa>)*{6s(^IiIV00T%=8B2P68R?== z@U?ejml5~L%7Pe3@L!dOVP9CG-KP3PX zSE*}VvkYrD*qU-HDQhqf?rvYR0qQ4yXPB#-=bL1>B>(FB(ZVB>il7Mv~+6<4>r(TF5A8X|KGU@JNADjRwNf=q=h5 zy)$u`Q}9?Mg+}#U0R`(L7eVxM$ z`2D8g{ghShYm-j%IK?F1YGBqdj*1Oq7Hw>KHEVIXfm+VdM-QTevjM`g4%qp16tdwl za5_UrL>r~%uw#Z=htAN2E;Qe678C_4y-D;`z6}WesA45eo6DVx?_Gk|?PI;CEh5ds zMa()|)J}~k#bi?ry5(A~UNHX&YQ;;Hx6LkWjawuQU2=zt8a7au+%x3>@L4=Onr0bJ z@ixr0kIj2#u{9r7J)fS%kAM&XWUp>UP<$fd*9m6WV z?s`C(Y&s@;2NBAjLTw^Gk_B4@L~1IS&|dZ`k!L78dND7W_$`e=w;BE%%k@a#^7HRH zwscmkC0F`B%CDa`1N?h!W+s3Y{27iN+$=W#f8Vm=@EXNFQ(*W71V~v}(9agiA>Usg zaaPA<)bRD=3p1&K{eO!7p75r&klMaQTzQZf)|tWMd5XHAl^ zn@>+q1Q?u3Jer4@bJpxva%#24N-|-8+iK^6cqhkG6>U@V6J6KMW(ae>!bR1 zaH8YpJp%T6nIRJ}60KPC-@>e{Widtr;3nY=rSkfWX&6{;DorfpjoyR3{+$VPy*%) z5`T$2tMH_6PM$CCoHbG>;7Ql!>`WaV4QKrqyHs6g^ zz*<@yXW-6dP>Fbks>ZOeP>qAZV_{C;B>ixAK!Ao#j8b2Jt+o`Pd_{~(i&32TV_4^y zb1x+xVs>}=JO2?(QJaVGZUA)4O3X)`DadIMBF+`FiQW*ZlpL)>6ZBp6m=U+ASY@?* z5-3p5u81;UKB*!Q&%g2Wa4yblOuDc>c+G#7N`2|Hd~_hvI(aCNz9S1)H7Lxz1HJUE z=u>=F1ButvR<;mf2igv%5ohQg%@p$&QGt1Oy{*-PAnw!~9PN%3lu}WB>~Nxs_3cFH zx)<+#=$||J9J~Rw1*T*`_>d@9?Aw9{vS3JubeqiX@1s&z`M*Le;rM`avGeVUw{n{B zg&1i?TA>ov?#0&(TG-=J0t^bF$IGZEZn$=AnEC-O-`zfCVU0FvuF46*W7bjNDsn<1 zhK$qM_{6IN&nofe#@uefwjeiN7Wm=V=4BBo2TaM3q5r#=4>&?<;A=#S*ufyV`}VP?tq>EIIOp5zS-(;$JkI7Y~_6w zQ%8vC-e4kA=JM!2aV3kb_`37u#H!`hS8qe@-8U2rkYu8@qT(*}MXK4@PIo+`fOX)g zWgw&6=->FWgi1ESJ^Y|Kd{UO|p+?c6mZ9j7tdrM+Vet?#cX6Z{Ta;k_OLUhiNc&~A zQ4?=@nSy7r1z=34+||@%?3^=iEaZYg^$|Koz{fRiRGcj9j55s zHpH zk2g#mw3c?<%9VWd?sCv5Y`>QB<2VUby^UJVMGxYDPAlz&I@#aMNdLE~kEjZNP@*8Y z14Y;k_QdplhqY=5^S5Jz;VUy8(-KV7dTjMk6vLy*TZ@rZNJoC=p?0mc$Ch=<~Yup%C#JC59+m2iIc)kL$sHn~xOF&q)4TTlH9}pQLktN(jSPF%qs+ z*$wcyN(2$r*$vmMl$%Oj%>3rzJe|Vs&fc-C)GZ3@`A}#S z!4hW#$EtxKjxXWRfjVG?2Oy$UpJkkJK^AnTVbYv+ZuJv~7gmz+R7vkap%|+D=}Y83 zH;@5f?n~Wk#_N@6C+pI7H4an*$!TUK=V6caa zhGoIK1ic*07Auc$K^RWAQY5*vw!JkJDtp{di>hA0Atyn|10oF>D8g$U*y$@*GHodB z8bnl)AVZb$Lhtr&^P~ut+RW?arD)z2&-gu+N_I27L4fRa~l+}AUEetos>ottb@pO^CEsPH1jc7ed2qt zT_3g$0Bn#X}~-A`$eJ~r2mhm=QkJx)h`BfK|WQkN3tKO1qj&G#Tb;cdy!gbBDoP zgI}9?(Upx2Af|SZj{Pq-wjpOtsmGlZau?r+R8>=+$*L2_Co(%XGi+Jaj77`UT9`G# z1!kLM3wL;$n{n@S!C^If^A&ojW&^dEC=wlLO?FTKd^l)YF`mHapwXJw`tFjVEkrg| zhVribD$t24M6d?k-g(aeQ*Qqagiq6Y8Mq%H2#b$sV2|XI&dM@VhsgFFl z&L~*+>ASm0rKaGZk7g~R=WK|$!1zbiS~YGvoY(@U=}(Hil;HV#^+JuO^|iu;rIXJX zmT5~S>kBmL5|SbFRKj{hJ|VED$%OCd(`cr}wvT^2sExQpIZYU-LlIqNDczX}!)9Cv z4X_Urd?c1Sh27q$J?2y>b9egZ%W5Bo$#KkdllFhdr{*swW(rYcXQ4rfQnfu2V9IqF>7r&fwhVK0Q+9HiPV=d0Ns-gf{Uab&l$ z(a3{%B%Rbp#k5%CWc?{)Xw_!ix1&m-6UEeSFlC=;;cCo#j9-yApc{;ia~!)hpPlZF^P-9D0#x zc+^2@Sj}Lj;{Ku?OLW4PYJ&8(h^ew5UN%p6M@jq@0}QS6QaCHL2?#>kU{WVg<}NoT zxc)JBeIf8$@E0M~7`+?>@zxvLgJ%bNbh_j^>&>VNw&|3zIXqtnyi}tvZoZ2|l}^-> zxIoB$!hWwP6*1R}K3@xpRC8^lat(q8o$fa|H^Q(6)Ti-AzcWBk>DlK<#de+PUzn#k zfbX6{A*wXi&na>zT-ibOZMWWlYTtftf55SR=ST9ERt(y%;fV; z$;Qu)g;yAzcjN*`TfJazWyv%%Hah^AHtF$E|M_7~v;hy(#>aEl4h+k^Nb@T?k3Q=4@L!r`L6utEkW>>Euy{ltf5fep&DYO$ED6s=M6-3U4k40L>rm=2m< zaeKp$!buc|ntH1%?7`#k2-UlY2LeV^r}oR1{4S^Bi1AaO9ptJ<{@H-6}5S@97>aL-pQ-PEZeAq5pW3X)^Giu~UK4K=S+xX%cRXFQZQI zcnV|Rpj^scfQPeV=OdnJZ;pV{>_*mFRubcaLk_i6dnsT)MhxVBbRhT!OUD$BRi``=m(k4m_ImEGy5au;Mq9(zgVzMIKcXn8lm z@6Gf$ zGFPI=<$qb%ObM^za)6Yi^&%(2{GTj?VIMB&kMhCM8vE+X4zYQ9+SYI=7w;&rO zitGbtZx&nJdkOUp8g;M6xI5ALeiLG~?~fsxeD7E559{dIg$)W3m|4d~fqeX=KfryT z2iHcK68K2cQp5SnK~y_(Ph#idBjK)awZ5&fGjg@!SA#W~7Z#6vt;nYraYea;ajUfOlLeL&E&D&wY|2;cHF z9*Z=TlG1uq97IsLd8@FRmaUavF1rfOMH9`i3IN9Xm4$d}xn7&v~QHPzU+ z3A>c1N9w;mkqA#Jsp^!6asLS$jf~nAY!RFtAJdK#gK?P6?Nf*w=;p4_hoJVbMN*Tp zKYCx;;xo#hCAEL1g0G3gsPAus^X@;rM74?Xj=&V@v^8L8Sn7naS%t-S_4Yjf^m@z` z`J_3H!tEr~W*p!b{p5o8l8f3yL`P-HQeeeul2h-IvIuuDDmuA1Y!QojH$9~lRcb}N zetm3)Ui)xrC`lm6%DVNfPTPQwnfr-;>RB?y;l-1LR0_h5d&0XbyT{mLd)x94Uj;K= zHfuaxOQ8|Q=!(435Kk@=*Hd$zLNgtN!X&A6XB_a9y6Z=>i!`g6uRURec28PhpQ7y` zK9mF7fhqq5j-Oz=hB3)nRFD+R{xkI|^_+dyfMz>J)iv(j1F~fIyK_C{EW4*YiX_6f zjOMD$D(cu@Di41n5etsw=(6=T8o|bKJP4KWU|u{f2MfH(0UuExBB@tTAIK}AV|vAZ zbz>Ab=mbTL@A`-8le4UEnFTNCQEEhZEf+ACJxKqVBNKmoy@M{)VN4IlredGBJsXJYILN(5smP-FHgkNU&Hj5} zAkAo_@fSypRx5FAHu7-LijDilh*gKZZI1I15FNb5?%heR&6XjDpClak17~*l7-iGr#8rcL-qo?rvPl5vnozXCe+ozQZ}tFl=yL z@&?tz(>9yw-HR!CJD%v7?qRR;y>CRp4;BIxP29h2dawS$Pqn`pvK)K-GtJUQYQio$ zwfmDI$7n^NHEfkL5or~_*3{@{LlNE%E9mnFjyG@*yEWbQ8ts9cD0;O=)v zS5X^alz*(W6R+xTN%&!Gtp`QStcjZ|iN$x*SKf% zES{}ZG9b0rtDgzHE|6$3ekJa}rb{h3k_hAd)t^~buF->LJyHUJQX+>w;U_fm4y@sP-_F{#R8r+%PtaO|$z-oCNfgXOUKFS$5#{n+? zWRf)u@ACiQKI_J*afKTp*qhGVB4hg6ggkDQXv^>tPds(;0h7Ogdxw+wm^|!;v+&cZmp_b<~J)y7n0SBr}$e7vtr! zL=fVaV|1+TrS-(Z>VY3 zmdD>ox`)N%)P1s33*!84MmUUyf6zKP|Mulsnlh6WnO1g}-lPoJft+fvU1W@(T$>Y~ z26Wl1I7DI;XQXDm`K?B2qEK#!8^>|>Zq(OVcC3F!4s(+b&J=J@tq=yGlMc_?&>S|p za=}FE%k*N+_cibBe=)D@L25FypP&&P(GPr$iSH-lau`z1*a_ha?PzZR%}7A3N%n5u zOvo6X9<`>My~^%!?xPKy*6G3pNmBk$pjP=>BTITO)BwH)Y?hf zC&6+!2XL&`5)PKa9Vgm>iz?fP7DStG3^+)#4<3;Z?M8)@*H8LQ69G=F_o?WgaBFmB z?z>I+Hq%;TbU$!oIJ~BY2%OrAhnz4W760|B7ew3k>>o#|{s{E{j8Q7@c)xP2Tku!+ z!W3N<`c%cQQ<^Ck+meBCGcd1booR)x9No{=15Vp1DensroNO9AOCVYE$5kZe9MsLP zq~E=bJ&r?-R}Mczb*BEzBj72|p6wA>Nxt&EPNZ|_%8;Kvfp@cB@)Fm@Sq{CD#|l|* zN)YKYU5n1vLLK8qa`6~R3Tgj|O8LgwvM>MbpY8{K@E27MW;!NNZHF-c-1B)PT!wLl z75VNm$3BXjY7FyETBy}s$LR`U$Ur~|@;8qCMiYUUDVxP7;_DN8GluMzUJPsl}<0ds%uL=@3znVZ@w_7uw%0VcNer5 z%VEGX<7s=lI?2YSC$mSLZ@%l?oufTPK~VB48W=XT`v@S;2+OtisGB%$1Yhq;N>{JH zURgIFwgMl#*ih*YJelL`Xhw;Qzk-ez&Iq;M0^NAc1J_xifE$V zAtxj9-8uMc9r)rXwj5-(q9bDS6#L9G)O$T(R;rA(pZRGH*dMxi>T*iZv8RR>sSaDU+5*4CDC5NbH}rK{YByiq+et=~ew|}@>F+ve zClJx4XO_+37oxuk&W@&+4%;r<1fbL8Z@#r(OG>*RARH2A}_jU$Yh z$Ey59LjOL#yOMOTNF(-L3he}^0Uk=|wiGHIvyqFDi97=8osV9hgm1ZsLYnX`7O0fe zW@NpgXm|Rum!Z1H1-ni5&y@DQXez^!&ma0XMV#P$MZkubg2trI4OpqR zv$5T(5YWG5lmhmUbUYviJ%N#I$Y+^KBfuAy;LR@@N<8jeudCeydxF%GkvJEhHxCQj=BXYym_4*3ev9jkB}AgYZs#lc zOo6(H&h(<*Ip4Hik*Y)L@-)GqQh0=M6aJa8T3v;3Lcb6cgLHeBx19%Oq( zv#}!qcy71UOLSX4oJq)u`qEO|QLmSiUmoPyzq9o2^y0V>GKL>Mp&F9ppR!g&9S&y~ z>g;&P^Sf2@9^mn=CRmQ#pjxJVJ*orO#Ot(jHfVF%U{72U9n9D{m2UlzE_5w6OYE|BfDmFtO6{O^ z`1$8#ON@UFY!YU7?fdHS!*q%3asjLX+9n?sX2Jnsx9u1~l7sIzS6geaE`chtrjr|r zCOZ}Ab(b^$#;0Ceol09l>ycmY%!1qP{H_=G6r7csSnF=5lCdLbQ(~r$x!oJZvhbS` zo$E=%Iq$C~{c9X2^$a=F@TJf0{I2nQqO32(Yl;L|^!>lG*sGXPvYoWBGeN3*Z`YBt zu?QJcoi9e&7~;A|JR7ckEAlcjLr+kRUOs>;iF0;ZUfAEC&opesY=TKR@n8Yg3>R@z zC~r*Ge#m!M9R@%lXUQ_zT&ePRr^1HM4?7|)yc2%=vax5tS3ULPV1|j+?d&+-f9riQ z-3iEq4L`)lC2+}UZl+-SzBEntcTI+K#_Py3ZTx#jvJe8366Hhk(%=;ch~iIfg%4=3EUgO4W5~8RL zq=5S}S=Gn)ol1x3p|(4EtIlDa@7*X!V*(=660mR}8kW#HUto^|4s`fac=VqhKo-88 z(C~K_q3mIn&hTL*K^B>Q=v+bh(@w{E7M>plJo~|rmd0S_Lwi7=+yy@96=IOYGrlHs z44(1i1mZ%}+<(ZhAj?o)L4R1k@?*fz_Z3;lBN7m_+p?&sPafGzVpto}*}W19j2B$V zHuHSDA9O0n4|kIXYziMk=Kv`g8L+zv4Ip=Cajpxz^JM8ES{z&1X5bk|3S5fE z0Vmpd0ue}YHvT43eST}}7|hu(;ZA^fYrCUpoNse8=df)* zS6(nT)py%-p~8#?ld+gSnL(Vv(^Gof4sEKtB@d;)b%RHmUetX-psLzc|zm=UoL>tGoY>fH4mSA zZ$^kAid`g=cVj|dSpIMkIFCbYkwOe_)MfVya_L0s&?O`5%s4OJi6oz<9osW~3|0S` z_P&exFp0oS;V}{t3Qw@uNz!X*@&s4B;_R7Gy9EyKnFXpqNe?UNBXfgYE)sE2MvTDt z6jW=hbtD)YcRg|8hUVE(fOi78exCC)d_B|TX1luLatZi13&9nJdFPUKZS8i!YfInt zNoaTrLPN!4l2VQo?9Cb@m1<;udofoce3@j#JHEj~{Ij5XZk1R`UxOUor|LUWf52tP z^Pq1aq`)>)evgYdRtbu%qtoxlxxadGioz1p=Pj0df4=<4n0qN)X7s%iI*c5Sd7iV& zDs=xy0QS)Y6&je_1xAf`aYx*#+iloJq0!GdUTWSwf%gto-(U}!dQ#hI%-T`m-X{8! zrxy*+R+Ag&U2?Qg?U9i1%lxSZuFI77hY6EhND)}a@;`DI;QW?_OoUJJ2mL$_y{ifO za92}(^{4c{U&r({1Z)E_NPtko$cIjDL+Y<)+9voiUwhwZ;S2g+#YFV-1r>@0u}s?CMCA`ZNF{>1PQjvFaHUDC= zhsATh7oV+M79Toc265&}_U6TNmPk>ba$#oL>}noE&p&g6=%?RVV$U^?UX<9dHzrVrp8M}(WSi0z@=kYy4I9~W0ax!9+P>MqQAQe@3rYt<8J}X?X1tqt zrnbEgQPd&4C<32@463~i$qO-?0u3g5Y_49`J~t!O9IuMb0I#VLkmvIX1`7_#n_~kI zF%;U!4H|$%82^**&PrLWhdJBEhi3T9ZUuoEKYo7}uhK^l^~7T7(R7Tm4y zjFj6Fd*<{2Gc3tA-6&Nut9NbyWB6)K`*C+DMfM54?J+9FA9ZgEAuzWPv9=-I}BS6<^y1rSCA9vX{ zq0KADPh5~x*c|AY0>Xvp-#=BTeIuLh;J`VWzML^j-M$5tLHD9%#!>IN^pSgmR4Z2| zuvmts0b4OhIgLhlQr)6M|0vNOW^k@v!mtA{yGiwUJhxe=srzQ<(3B-`3nVrKPLP{4 z!9fP@P*l}df#k1`!oof1?p;eLC-)brj=Q|0ZiXC|98gA)mpo*O!Q@`v#s@2I`Mm;L zju#M}yMi|m7y9>TF4m$-3;lRnY=U40?>`A$DwIk{I{hDdGkkU?V{;(k+C?1F0ZA=v zb$48T(}F&T85-@H9i8p6fg;SV`~sAo6gh~rgq{4kC#s}(7a*-hS914DT_wLvG<4#A z+hAvBCb0NfpmLG8*purzpzb)-|LXM&&9l*&)YI!6ITWRA=8o0)Ipiwa_Z^I6f(P;Z z*ar$LQaU@LITxS5;kL+0f?xZJX+|m11Wtd#{1;cy_)1N!armc#AqA@QI)R1 z4AVIOQpsz1!+WD#fOjLd8%>yw=M9(T?s_AUih+2^6CBD)QUwr)|Hc`Bkoyhr;iHKQ znx*EKAy&+blzr53;UL?Zu~d?3R7o=U4KTL|-U$~x;?De>Y-Y-MMui>5a2zs0-^>>lh>;ofiet-b|= z5CVr$FQ`%^9xWahJiZ=205}?I-Dmm>-21KEv`Df)J`iBE@B~ByKB4JFN``fL!^E_3 z1$)M-QM{>np7WM(ov0E+BlL+u3ADH|W%0UUsUUKNFj>?Da^==gx<}SRhsC|Htf8Mu z)=?{?>u@?ihBoB}ehY)n-Lx@wEQC=m*E4so;_9Kw1*@1)=61THVD~5xtP5E+rd<>( zE;SlS%=XtIYQdpFBznCMzVgEj>+U6jA6TYdnVwscDTf{hC)8;`(5Tf$HmKC-slDum zP}oXG(C@~BR2X-nlMWPp#128eE$Pv0SXO?cwOs+Ft%7$-Ymulx(Z7y;{Kgf6PHD86p1Co+1K_?#*1k8VS;a5O62;q1T znI+i)sofH@Rc04B`(xuN5 z@{SoNH|Mc7g_=jOf7jCVPGqJfm|Z7a>t|~eA84Gl;Gx8urY%TYpWwP!ZvKG zo1K3{dGfCN2*=gdKC)CZLy&+k2qE`##4cQt5I+?xrVq6N!+7pyoSo4l(02v}SKR^L zg+Kt3Q91rrgg-srN-du&1-BM<6)=A{p{(e)RmRUWxh1-K*bf zTmNe9BY4JnPYtfhQzDjb{h9%Aj3wq{(AmQmYw=2o*du zx6EQ$b-fCw6l)04ZU2cu`{RdIE*yV;-c!aGfcRhqfsChXb9<-nbNmerPUvowj>igk z0xSq!-xo^VgB!!nmBc~OJ*@uBpQ`~w>C`@ND}_td_3stXc6D6E1xe0+f4hawbd1R>n7 z^|t4FBMIL#5g_+Omr;ksga?e!Y3}wNBBBv`C#R7Q%;9ji3_A+7W4DkjRkOLYrMtAb z(q$o%`|K-lcl;9U2}9kjp9>~E=!1qU{@r*g1hZ4R>6jDJpTW@HpLpk#Y+oJHPgsjw zXLHW$em*F2)qiGGrk*3IIO_+FVFLc*&5M#_t?*k#mr*C5vg3J`&+)6rc~$yPJXh8) z4bJn|UesfrvluT%Ntepa?$lLpl<`g{5E5!O>okSLPYoJV$d^E8v1m2MJ+=1poA-k= zpH_z{j$SyqAbUu}hxmQJ&pM0cp2SL%Hy)C^7wesGmf82-h$MRi%;VhPRT9@CuOCqP z*OB@v^3)eaK+o}q&APy)pIn9gq^u$(vli~(*&~i-?wDJ=cUe!_aQniks2Cwk>@i|2 zO;78*UygS+pLpCqpNRuXGx;VT*~4yUMi}pI(9;g}u|VFB+GQF;ffNj23T<6*s+QCp zF4+eqpZ_Q``j#6sd%^(3MGw7p2QV9&^>`bZx!v?+&piT|xkL}&VJHsaxxSy6Ec<=X-!H$A@kkf_)#lbfP_?O-yW zV7aa>+(okJ)fo>IJd%HLxWq`6`Mmu4QAjwhCiUcjM}`J*taia6MEO!oFK3d+#8+tX zzz>spGc?DXp_d;Z?C>%z(U5VaE!;46tE}Rk%gjg3LJSkmn0H&ZtJ}86fN$m_SR;@Hy%!y2|7HQ^> zq(r<3Era{beCaW9*+$Tw*JvCm>il@yspr!qgyZ5|@g}Av+i!&frqPjJWk^|5lRP5DQNwzawxG z;Zayx$WD1hM@&iP`xCn1<{r%Hn9xViHj@6iX5MIsQ{f^tQxn^{3>?jgR;Zo@ZMN#h z2zNeWLX6AW9nPP(^aL;W>~caMPQ-}iAp3V%;mtmKN9)z;tLw(2y1R9mEAdv7Bo4gF zy#|xtKP$M-VIVU*A+cWF0$~voE&qg(FU|(Z1mQ~?|wCj^ABemsX?lm#AAAbuqf*R5Fz9PPce<5WGv`!8bIkL3zWz7V{q-q2gbtEgkC zc@Gr_ID^a-ni6~LFZ6o-KdXBjc15^7nvgDdBvJX0yuxm1kfO^`6`$X^pK?3kk6pR^ zA4`&t$q+(khv!RbC*e*zd&UR@gkhB<~#QCJB;Cn$zlF zP%-EslE1jY^3c|U%T-RC1@>4>;-GbW@SO;CKrYmHV!t#OS&$4oiH%JZWBM>8<2QO) zxr5d;w6vQcz3(iP($os!zC;q&h+g?cOM08k4f`#|iG!yUOm_<}K_N8?0Fir)=b-$4 zg>?o2;=KrD=*vkV;lFbf!CB3o zFvaM(X#$2wul4D4lAQS&(v4(j{`3y&sOnZk$;F5qu+FLONK*G;CYK4t%N2I@=VsCA z)<7iX&2sR@2qtT*kl;e$uj&u@2|}jx{4468yb~|myfUsA5#|yc=xeo1Uz|6Zn&F&^hZ~WAg{pI8i^5HDf%7#rITiOXOPVxpwtS95oitgT1FYr z>NPcdtFLA@9umaues^;ZQ=5b#^HpIDh!vgOI%YkkQ^>s~zsbC-z`xY1}T z_7uC4^rjCJ#COf@Qq21DoRXhtW{xS`tN%8zad&ubzS@`T4)k4sD$^+eYXqzj7Ic06 zR3+V8)P>y7`thzb|oQ#+|;>zGxH(MyE0)AKH2X4FZ=-a}%M+=&8d^v(Nk|f%J zK~TRb%9F1`dZRHjjrybzjW_T~$~2Q;onJakFz)03Km;l6SC+o%nYqCA7OaEN9Y(!a@EOm5HkStt)3Ig?Y+-|_O0yQgb zRBb1{9)iZm-7)`G%Q8feb3xl-xV03+|u<{g|g{7y;a-n}t{r>nrt4Ey-p3D{Hy#Sq*B>yZOJ z3CHQ2M2Adt`meztSHD!mukAkEru?}N&jSiyx9J;CUC9!2-5e^qh(n7(OkAsVo|DNm zE|MM09w#$1&n68Zm5Q|hG?o8Df2?z0uq-xn?Of^sAofB+xK{kc{q&$x2; z8Ge84nBeJbYA^Nda<_Qn;UF3IMy^&Be;bZ(62bZ8`bTh^5TfWtK}oV1GtfJ#6KlW{ zg*-?!wRb#{9+>_8IV&oV#>Qx{`EK?1DLe5$Du-6O4GweJB861&=Q|u%BwX2~@?f2O zzLx)D>l=eB4V!HzlT0$1IGJQ(+vbjK+qP}nwkEc1+qR9J?AUkCJ@uVBRrmhuKTp@& zRb6j&_v&6NVIn4bf{GlZKw#9R{-eUhhA(DBbgo{W>rhsfkJZdPV3m~n=13BL-V6fy zIf%+PD}2c|t8OaDv(-JY;Y=BDzpGV#xwR4cau?BEfu+R_u;2YXe@qcc=sr)-#tiC& zYBe0OIpr+nuHJ@Q0C(cnYnTXCWyd1NF+bE8m(}%baYU8FFAumg0cFd$&135hx&ETgva;@(koC6ef82u<}tT!<6~&^ zsd0XGd5f;g7Ds?H%LXt@TNLUy0y40rWYTrq{FNFux!J*cd%3fyZB<*_GX0~ZjDB|Z znH?Olo5|4jsq+y*^I^$@S=6_Vv`YM@*hh6AaW+c zL#@Q_Yu(zYEe~R5Ir3#vnj$$}a{LA_!5-$WmN+aSmsl>31s>z{r$o2J=i9(_CQ#v7 ztW-x?^V;$kcbt?0fdP)R8MOH;Dd<{^`7RgnrOP+ko1M-uC$ToYp4#gK>>ga*I69ev zCu%Oy&{fJJ=e1MOdC2J`2NtF@%#yt5FeYz%)t-1twECPOL*px=-E`eUS#2DMt9b+w z$BE*I;)dpaqnlv4K2C0AdGMU$v|{1;xFMSmA~Y|^L={Q9*jTD^ipBeCOQ)UJJBcH; zadJ*pADH84W3lyZAqM~Slh>85VhvmV6jx7iiOg_`Tk zuY)%+>Xd*BJ;sS`?%TFWXz1cOcMPn{loHs8<9xD6>p(6i!BjA7`zu=2VRpWiiXN@G zclTGmEHeNsRk=g4UtbPr5+58xMyXKNl9a+t8JF8Gp&?6$ul#TyqnF?uCY?k0$}F`I z$3a-bI#rD7B~TLnUaJMhwiX~X%t(PM>BGpN9VZIkNqM%A8P1=>A|MOaY=}X=x;Qpf z2+`A_P~uH{DSTHCH|N&N?8SACQ@BDplu(cpMxduvI|0DtoqB~JD&FZE2ItKe+P)l3 z?ZG#U>go3uRx-L-0%!Fe=p`PYu33*Exs^}?Rf z*9x*wyBPvf5P(6Mp1yK7+_>9KHq*HJ{Kj6l)!ya{b)gk?uYpuHVe?Mo76%+Km>9pl_07uC8Cin;PHTIMq< z>uhp}vm+yUQkiL;gS^&%q{H;LZy#pLOmvK|8U4!MgYrB&}L1Hqn zdAnwv$x6#$%|K7CL)EP&BZ zJI54iy?9Z`9fT2-NZ(LdoEb0F7#kWTiy%Y>L^5IEl&(@4#*c+a>X7=$YC8ge|D|>G` zorV^w;v~4Cyr&`RL^|iw>hZv;^$WxOjQs?!1cDq)k;^BPd{BhsmrRueahxw`$%gcc z8g3?(%tu;At5?ykNH9as{Jx-o(C#dC>QuWKnhc{OPx{}~I}Glml1g>aXelr*EGlY$ zH}uQe7mre{9J_ITeoikeLES{x)+z_^Q@XfHv}Mm*jt5+mrcI!h@YnrDbpGKv1c4u6S<8fvt?}b^>@UV+;2e*Q+usW zW?;i!tuZ*=%pQ}`X`*Q>HIU;7Ix$dIWC`L_5q8)`nRP+b7|u3Uiwh3;`XQp76A{KI?Qbeuw6M?2u9O~c_7|ccz6Ut5G zDePPy@d_cJ+#^cR!)VSQRIDPtneYX>coaN=R9FeG8oZIkzQESkEyT5j^qA7(H5Rlz zt+BYlF&Gt*o^bBl1kyI>wh50Qd$5CD-h>t81wsKY4aNC|ww2_b2 zc8Wx}rif$KQc}#P?;9r`5yo6;3Iq$WM3s z81ET>)>{9P2lCLUG8GKCLNDr;OM%>unCs>fT_soF#Ns)tbodv)ahfx}N)|>fSpJz$ znHM&q!aKv^!x*KkaWa$6W01+@oDPH88q-!JAkx-*a(GyWeI&ATTClJxx%0Bv0)riS zIc(mS`IC{Dq zfJDd% z#?n`pOS8$H;_3-};%pFfJjlllBQEJKlsyvY=yfRRw%9`MKo*2DIgb~^_ip}Ms!oBv zP)yCYhq)BTR$(5&c9Ew` z*Q*O{wAGIbLs0#;8fP_<&*l(P*$p}Q&{EJ+jBco(d5Cy6YdESw*(Hd^IYmLe-krO}A5#mkn>M2P(=GQ0%${*NIHkmx% ztMi*v7Ti0L&WS2yhIX8|M|OQ^#rMV^_4U>Q5Z7AWkr9o+Cdy=iZLKxLhh4OmdTc&U zk7_Zo>}4DbCd_q!7}3o9oM4+1N2K9g_0=lR8_K;;4FV(rPDrF41^e1N#%oJu z;e~g%2%g?QI)G;@H(#&W6G2!!PV}t{cS1&6<)~~9%qAmeR&^C8w-0VFEWijKw+Svdx=ld*zl7S`+9^evN$1?P+ z#^nurnIvR-P!gb|{cTilJnmmTx*}a}_zNNF{t`w?CrFZDZZv_3&B1sk;H_hMw*qwo zsm}qX)&841=&-kuB{Yt90LH`4=cpIc39kXxaK|h_Dj+m@hlq*Z^&EiRj#=ppAid{A zoBB#K1vU%CYke2go&k%>eBhqec%bP2f<2yk{Y9r*73w90K-&p>g={OyWLGctQ_pTJl2e*}@A-CR)sta$wK452jjjC0x=*W? z?VelX71ScRE_Maorr~!c5*(igbQi0RVAc7aUQQvpA**12)QMVPv(#jIa8Ot#S>0Xe z#U|yjIQwwQ0rC8!^~TLv9?x?g@EdGVOjFq%@;q8a1Rhzm&=`OYUogeMEd7eU1_nM@paKf84A3)$yMoE zq)VOTm%D^0-zah8P90pas#)!i%-3-FlG08M^s2s8QWlCqy|`7{b}846 z6aiGNovPHVRV2qc$0cL88{!osU3SSFWOZ#|bN)s6Q;(3Su%aZ3+xfV@h?3AHLj;u~ z?&jd!BGd9oT{8meD$N+v&T~_a&U|jO(2y6gK3cktT)v$N>hZNHp(Jc{YnDqakyhl^ zOkO(cdA2X%aT?BpQ@t=%Ub$Uh-Clet4ZE;#BI?_cz-c#uhf74*{-au2A28DujmcvW zSFYX_Myb*X0nGX2!|BmS_jWR@IF}ck2kpj36e-E)hYBI|0 zd&g1HL zvH56UJ+ho}j4nWxmy!EEupr!yO@Z$VJqVFwo0)ro&K>RBx(Q*5xGKaKO3Ga|Gf{ea zp7)ZRN9E!&HbRf)_1!nm){zio%-W)~jAU4v5rFG2UD#^MlG=}TGK7&gDpg|xe(s(m zR5;aExuR**=ZDrvLce9-=}P6SGe8aSuYboc^e%u!+77#fi`9|G_>^#HpF%Y5k}~Hf zee8iE<$c*27}-Yz5spa53>1Ae z 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

ZQ{=n)lEqhQMH=RV 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

SigU-!~d7W b*wl1Pwq$PYkmNWz$UXxdxb|x;hd=)V-corda/corda-finance--corda.jar + + This is required to run some flows to check your connections, and to issue/transfer cash to counterparties. Copy it to the Corda installation location: + + .. code:: bash + + sudo cp /home//corda-finance--corda.jar /opt/corda/cordapps/ + +4. Add the following line to the bottom of your ``node.conf``: + + .. code:: bash + + issuableCurrencies : [ USD ] + + .. note:: Make sure that the config file is in the correct format, e.g., by ensuring that there's a comma at the end of the line prior to the added config. + +4. Restart the Corda node: + + .. code:: bash + + cd /opt/corda + sudo ./run-corda.sh + + Your node is now running the Finance Cordapp. + + .. note:: You can double-check that the CorDapp is loaded in the log file ``/opt/corda/logs/node-.log``. This file will list installed apps at startup. Search for ``Loaded CorDapps`` in the logs. + +6. Now download the Node Explorer to your **LOCAL** machine: + + .. note:: Node Explorer is a JavaFX GUI which connects to the node over the RPC interface and allows you to send transactions. + + Download the Node Explorer from here: + + .. code:: bash + + http://ci-artifactory.corda.r3cev.com/artifactory/corda-releases/net/corda/corda-tools-explorer/-corda/corda-tools-explorer--corda.jar + + .. warning:: This Node Explorer is incompatible with the Corda Enterprise distribution and vice versa as they currently use different serialisation schemes (Kryo vs AMQP). + +7. Run the Node Explorer tool on your **LOCAL** machine. + + .. code:: bash + + java -jar corda-tools-explorer--corda.jar + + .. image:: resources/explorer-login.png + + +Connect to the node +------------------- + +To connect to the node you will need: + +* The IP address of your node (the public IP of your cloud instance). You can find this in the instance page of your cloud console. +* The port number of the RPC interface to the node, specified in ``/opt/corda/node.conf`` in the ``rpcSettings`` section, (by default this is 10003 on Testnet). +* The username and password of the RPC interface of the node, also in the ``node.conf`` in the ``rpcUsers`` section, (by default the username is ``cordazoneservice`` on Testnet). + +Click on ``Connect`` to log into the node. + +Check your network identity and counterparties +---------------------------------------------- + +Once Explorer has logged in to your node over RPC click on the ``Network`` tab in the side navigation of the Explorer UI: + +.. image:: resources/explorer-network.png + +If your Corda node is correctly configured and connected to the Testnet then you should be able to see the identities of your node, the Testnet notary and the network map listing all the counterparties currently on the network. + + +Test issuance transaction +------------------------- + +Now we are going to try and issue some cash to a 'bank'. Click on the ``Cash`` tab. + +.. image:: resources/explorer-cash-issue1.png + +Now click on ``New Transaction`` and create an issuance to a known counterparty on the network by filling in the form: + +.. image:: resources/explorer-cash-issue2.png + +Click ``Execute`` and the transaction will start. + +.. image:: resources/explorer-cash-issue3.png + +Click on the red X to close the notification window and click on ``Transactions`` tab to see the transaction in progress, or wait for a success message to be displayed: + +.. image:: resources/explorer-transactions.png + +Congratulations! You have now successfully installed a CorDapp and executed a transaction on the Corda Testnet. \ No newline at end of file From d2446be69e71d353679c37115cec7f75c20f599e Mon Sep 17 00:00:00 2001 From: cxyzhang0 Date: Fri, 20 Jul 2018 08:25:15 -0700 Subject: [PATCH 4/6] MSSQL support (#3382) * MSSQL support * changes per reviewer's comments; doc * clean up * CONTRIBUTORS.md * minor change in comment * another minor change in comment * minor formatting * Comments formatting per recommend style; contributors in alphabet order * more comment formatting per coding style * Change MSSQL to SQLServer in codes and comments * Change MSSQL to SQLServer in doc * Use generateSequence to build repeats of ?,?,...? --- CONTRIBUTORS.md | 1 + docs/source/node-database.rst | 32 +++++ .../selection/CashSelectionSQLServerImpl.kt | 114 ++++++++++++++++++ ...asset.cash.selection.AbstractCashSelection | 3 +- .../node/services/vault/NodeVaultService.kt | 6 +- 5 files changed, 154 insertions(+), 2 deletions(-) create mode 100644 finance/src/main/kotlin/net/corda/finance/contracts/asset/cash/selection/CashSelectionSQLServerImpl.kt diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 5179b3cff5..b947c7644e 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -171,6 +171,7 @@ see changes to this list. * Sam Chadwick (Thomson Reuters) * Sasmit Sahu * Scott James +* Sean Zhang (Wells Fargo) * Shams Asari (R3) * Siddhartha Sengupta (Tradewind Markets) * Simon Taylor (Barclays) diff --git a/docs/source/node-database.rst b/docs/source/node-database.rst index 0a89c1de63..cbb44c9548 100644 --- a/docs/source/node-database.rst +++ b/docs/source/node-database.rst @@ -71,3 +71,35 @@ Note that: `PostgreSQL documentation `_, or the schema search path must be set explicitly for the user. +SQLServer +---------- +Nodes also have untested support for Microsoft SQL Server 2017, using Microsoft JDBC Driver 6.2 for SQL Server. + +.. warning:: This is an experimental community contribution, and is currently untested. We welcome pull requests to add + tests and additional support for this feature. + +Configuration +~~~~~~~~~~~~~ +Here is an example node configuration for SQLServer: + +.. sourcecode:: groovy + + dataSourceProperties = { + dataSourceClassName = "com.microsoft.sqlserver.jdbc.SQLServerDataSource" + dataSource.url = "jdbc:sqlserver://[HOST]:[PORT];databaseName=[DATABASE_NAME]" + dataSource.user = [USER] + dataSource.password = [PASSWORD] + } + database = { + transactionIsolationLevel = READ_COMMITTED + schema = [SCHEMA] + } + jarDirs = ["[FULL_PATH]/sqljdbc_6.2/enu/"] + +Note that: + +* The ``database.schema`` property is optional and is ignored as of release 3.1. +* Ensure the directory referenced by jarDirs contains only one JDBC driver JAR file; by the default, + sqljdbc_6.2/enu/contains two JDBC JAR file for different Java versions. +======= + diff --git a/finance/src/main/kotlin/net/corda/finance/contracts/asset/cash/selection/CashSelectionSQLServerImpl.kt b/finance/src/main/kotlin/net/corda/finance/contracts/asset/cash/selection/CashSelectionSQLServerImpl.kt new file mode 100644 index 0000000000..246842668b --- /dev/null +++ b/finance/src/main/kotlin/net/corda/finance/contracts/asset/cash/selection/CashSelectionSQLServerImpl.kt @@ -0,0 +1,114 @@ +package net.corda.finance.contracts.asset.cash.selection + +import net.corda.core.contracts.Amount +import net.corda.core.crypto.toStringShort +import net.corda.core.identity.AbstractParty +import net.corda.core.identity.Party +import net.corda.core.utilities.OpaqueBytes +import net.corda.core.utilities.contextLogger +import net.corda.core.utilities.debug +import java.sql.Connection +import java.sql.DatabaseMetaData +import java.sql.ResultSet +import java.util.* + +class CashSelectionSQLServerImpl : AbstractCashSelection() { + companion object { + val JDBC_DRIVER_NAME_REGEX = """Microsoft JDBC Driver (\w+.\w+) for SQL Server""".toRegex() + private val log = contextLogger() + } + + override fun isCompatible(metadata: DatabaseMetaData): Boolean { + return JDBC_DRIVER_NAME_REGEX.matches(metadata.driverName) + } + + override fun toString() = "${this::class.qualifiedName} for '$JDBC_DRIVER_NAME_REGEX'" + + // This is one MSSQL implementation of the query to select just enough cash states to meet the desired amount. + // We select the cash states with smaller amounts first so that as the result, we minimize the numbers of + // unspent cash states remaining in the vault. + // + // If there is not enough cash, the query will return an empty resultset, which should signal to the caller + // of an exception, since the desired amount is assumed to always > 0. + // NOTE: The other two implementations, H2 and PostgresSQL, behave differently in this case - they return + // all in the vault instead of nothing. That seems to give the caller an extra burden to verify total returned + // >= amount. + // In addition, extra data fetched results in unnecessary I/O. + // Nevertheless, if so desired, we can achieve the same by changing the last FROM clause to + // FROM CTE LEFT JOIN Boundary AS B ON 1 = 1 + // WHERE B.seqNo IS NULL OR CTE.seqNo <= B.seqNo + // + // Common Table Expression and Windowed functions help make the query more readable. + // Query plan does index scan on pennies_idx, which may be unavoidable due to the nature of the query. + override fun executeQuery(connection: Connection, amount: Amount, lockId: UUID, notary: Party?, onlyFromIssuerParties: Set, withIssuerRefs: Set, withResultSet: (ResultSet) -> Boolean): Boolean { + val sb = StringBuilder() + sb.append( """ + ;WITH CTE AS + ( + SELECT + vs.transaction_id, + vs.output_index, + ccs.pennies, + vs.lock_id, + total_pennies = SUM(ccs.pennies) OVER (ORDER BY ccs.pennies), + seqNo = ROW_NUMBER() OVER (ORDER BY ccs.pennies) + FROM vault_states AS vs INNER JOIN contract_cash_states AS ccs + ON vs.transaction_id = ccs.transaction_id AND vs.output_index = ccs.output_index + WHERE + vs.state_status = 0 + AND ccs.ccy_code = ? + AND (vs.lock_id = ? OR vs.lock_id IS NULL) + """ + ) + if (notary != null) + sb.append(""" + AND vs.notary_name = ? + """) + if (onlyFromIssuerParties.isNotEmpty()) { + val repeats = generateSequence { "?" }.take(onlyFromIssuerParties.size).joinToString(",") + sb.append(""" + AND ccs.issuer_key_hash IN ($repeats) + """) + } + if (withIssuerRefs.isNotEmpty()) { + val repeats = generateSequence { "?" }.take(withIssuerRefs.size).joinToString(",") + sb.append(""" + AND ccs.issuer_ref IN ($repeats) + """) + } + sb.append( + """ + ), + Boundary AS + ( + SELECT TOP (1) * FROM CTE WHERE total_pennies >= ? ORDER BY seqNo + ) + SELECT CTE.transaction_id, CTE.output_index, CTE.pennies, CTE.total_pennies, CTE.lock_id + FROM CTE INNER JOIN Boundary AS B ON CTE.seqNo <= B.seqNo + ; + """ + ) + val selectJoin = sb.toString() + log.debug { selectJoin } + connection.prepareStatement(selectJoin).use { psSelectJoin -> + var pIndex = 0 + psSelectJoin.setString(++pIndex, amount.token.currencyCode) + psSelectJoin.setString(++pIndex, lockId.toString()) + if (notary != null) + psSelectJoin.setString(++pIndex, notary.name.toString()) + onlyFromIssuerParties.forEach { + psSelectJoin.setString(++pIndex, it.owningKey.toStringShort()) + } + withIssuerRefs.forEach { + psSelectJoin.setBytes(++pIndex, it.bytes) + } + psSelectJoin.setLong(++pIndex, amount.quantity) + + log.debug { psSelectJoin.toString() } + + psSelectJoin.executeQuery().use { rs -> + return withResultSet(rs) + } + } + } +} \ No newline at end of file diff --git a/finance/src/main/resources/META-INF/services/net.corda.finance.contracts.asset.cash.selection.AbstractCashSelection b/finance/src/main/resources/META-INF/services/net.corda.finance.contracts.asset.cash.selection.AbstractCashSelection index eb11e0083b..decfa4fadc 100644 --- a/finance/src/main/resources/META-INF/services/net.corda.finance.contracts.asset.cash.selection.AbstractCashSelection +++ b/finance/src/main/resources/META-INF/services/net.corda.finance.contracts.asset.cash.selection.AbstractCashSelection @@ -1,2 +1,3 @@ net.corda.finance.contracts.asset.cash.selection.CashSelectionH2Impl -net.corda.finance.contracts.asset.cash.selection.CashSelectionPostgreSQLImpl \ No newline at end of file +net.corda.finance.contracts.asset.cash.selection.CashSelectionPostgreSQLImpl +net.corda.finance.contracts.asset.cash.selection.CashSelectionSQLServerImpl diff --git a/node/src/main/kotlin/net/corda/node/services/vault/NodeVaultService.kt b/node/src/main/kotlin/net/corda/node/services/vault/NodeVaultService.kt index cf9b1ba9f2..91608e13b7 100644 --- a/node/src/main/kotlin/net/corda/node/services/vault/NodeVaultService.kt +++ b/node/src/main/kotlin/net/corda/node/services/vault/NodeVaultService.kt @@ -471,7 +471,11 @@ class NodeVaultService( if (paging.pageSize < 1) throw VaultQueryException("Page specification: invalid page size ${paging.pageSize} [must be a value between 1 and $MAX_PAGE_SIZE]") } - query.firstResult = (paging.pageNumber - 1) * paging.pageSize + // For both SQLServer and PostgresSQL, firstResult must be >= 0. So we set a floor at 0. + // TODO: This is a catch-all solution. But why is the default pageNumber set to be -1 in the first place? + // Even if we set the default pageNumber to be 1 instead, that may not cover the non-default cases. + // So the floor may be necessary anyway. + query.firstResult = maxOf(0, (paging.pageNumber - 1) * paging.pageSize) query.maxResults = paging.pageSize + 1 // detection too many results // execution From 7853cfe0034cc769358193f26afa3021c38a0554 Mon Sep 17 00:00:00 2001 From: Anthony Keenan Date: Sat, 21 Jul 2018 11:54:02 +0100 Subject: [PATCH 5/6] [CORDA-1482] Make boolean config variables case insensitive (#3622) * Make boolean config variables case insensitive * Address review comments --- .../internal/config/ConfigUtilities.kt | 15 ++++++++++- .../internal/network/NetworkBootstrapper.kt | 3 ++- .../internal/config/ConfigParsingTest.kt | 12 ++++++++- .../internal/cordapp/TypesafeCordappConfig.kt | 3 ++- .../config/NodeConfigurationImplTest.kt | 25 ++++++++++--------- .../net/corda/bootstrapper/volumes/Volume.kt | 3 ++- 6 files changed, 44 insertions(+), 17 deletions(-) diff --git a/node-api/src/main/kotlin/net/corda/nodeapi/internal/config/ConfigUtilities.kt b/node-api/src/main/kotlin/net/corda/nodeapi/internal/config/ConfigUtilities.kt index de1311ef78..cf3245837c 100644 --- a/node-api/src/main/kotlin/net/corda/nodeapi/internal/config/ConfigUtilities.kt +++ b/node-api/src/main/kotlin/net/corda/nodeapi/internal/config/ConfigUtilities.kt @@ -121,7 +121,7 @@ private fun Config.getSingleValue(path: String, type: KType, onUnknownKeys: (Set Int::class -> getInt(path) Long::class -> getLong(path) Double::class -> getDouble(path) - Boolean::class -> getBoolean(path) + Boolean::class -> getBooleanCaseInsensitive(path) LocalDate::class -> LocalDate.parse(getString(path)) Duration::class -> getDuration(path) Instant::class -> Instant.parse(getString(path)) @@ -276,6 +276,19 @@ private fun Iterable<*>.toConfigIterable(field: Field): Iterable { } } +// The typesafe .getBoolean function is case sensitive, this is a case insensitive version +fun Config.getBooleanCaseInsensitive(path: String): Boolean { + try { + return getBoolean(path) + } catch(e:Exception) { + val stringVal = getString(path).toLowerCase() + if (stringVal == "true" || stringVal == "false") { + return stringVal.toBoolean() + } + throw e + } +} + private val logger = LoggerFactory.getLogger("net.corda.nodeapi.internal.config") enum class UnknownConfigKeysPolicy(private val handle: (Set, logger: Logger) -> Unit) { diff --git a/node-api/src/main/kotlin/net/corda/nodeapi/internal/network/NetworkBootstrapper.kt b/node-api/src/main/kotlin/net/corda/nodeapi/internal/network/NetworkBootstrapper.kt index 393e905c6e..2945421170 100644 --- a/node-api/src/main/kotlin/net/corda/nodeapi/internal/network/NetworkBootstrapper.kt +++ b/node-api/src/main/kotlin/net/corda/nodeapi/internal/network/NetworkBootstrapper.kt @@ -21,6 +21,7 @@ import net.corda.core.utilities.days import net.corda.core.utilities.getOrThrow import net.corda.core.utilities.seconds import net.corda.nodeapi.internal.* +import net.corda.nodeapi.internal.config.getBooleanCaseInsensitive import net.corda.nodeapi.internal.network.NodeInfoFilesCopier.Companion.NODE_INFO_FILE_NAME_PREFIX import net.corda.serialization.internal.AMQP_P2P_CONTEXT import net.corda.serialization.internal.CordaSerializationMagic @@ -289,7 +290,7 @@ class NetworkBootstrapper // The config contains the notary type val nodeConfig = configs[nodeInfoFile.parent]!! if (nodeConfig.hasPath("notary")) { - val validating = nodeConfig.getBoolean("notary.validating") + val validating = nodeConfig.getBooleanCaseInsensitive("notary.validating") // And the node-info file contains the notary's identity val nodeInfo = nodeInfoFile.readObject().verified() NotaryInfo(nodeInfo.notaryIdentity(), validating) diff --git a/node-api/src/test/kotlin/net/corda/nodeapi/internal/config/ConfigParsingTest.kt b/node-api/src/test/kotlin/net/corda/nodeapi/internal/config/ConfigParsingTest.kt index 07de31c51d..cb92e9431b 100644 --- a/node-api/src/test/kotlin/net/corda/nodeapi/internal/config/ConfigParsingTest.kt +++ b/node-api/src/test/kotlin/net/corda/nodeapi/internal/config/ConfigParsingTest.kt @@ -1,6 +1,7 @@ package net.corda.nodeapi.internal.config import com.typesafe.config.Config +import com.typesafe.config.ConfigException import com.typesafe.config.ConfigFactory.empty import com.typesafe.config.ConfigRenderOptions.defaults import com.typesafe.config.ConfigValueFactory @@ -8,6 +9,7 @@ import net.corda.core.identity.CordaX500Name import net.corda.core.internal.div import net.corda.core.utilities.NetworkHostAndPort import org.assertj.core.api.Assertions.* +import org.hibernate.exception.DataException import org.junit.Test import java.net.URL import java.nio.file.Path @@ -41,8 +43,16 @@ class ConfigParsingTest { @Test fun Boolean() { testPropertyType(true, false) + assertThat(config(Pair("value", "false")).parseAs().value).isEqualTo(false) + assertThat(config(Pair("value", "False")).parseAs().value).isEqualTo(false) + assertThat(config(Pair("value", "FALSE")).parseAs().value).isEqualTo(false) + assertThat(config(Pair("value", "true")).parseAs().value).isEqualTo(true) + assertThat(config(Pair("value", "True")).parseAs().value).isEqualTo(true) + assertThat(config(Pair("value", "TRUE")).parseAs().value).isEqualTo(true) + assertThatThrownBy { config(Pair("value", "stilton")).parseAs().value } + .isInstanceOf(ConfigException.WrongType::class.java) + .hasMessageContaining("hardcoded value: value has type STRING rather than BOOLEAN") } - @Test fun Enum() { testPropertyType(TestEnum.Value2, TestEnum.Value1, valuesToString = true) diff --git a/node/src/main/kotlin/net/corda/node/internal/cordapp/TypesafeCordappConfig.kt b/node/src/main/kotlin/net/corda/node/internal/cordapp/TypesafeCordappConfig.kt index 73f5633350..31d9ed54b7 100644 --- a/node/src/main/kotlin/net/corda/node/internal/cordapp/TypesafeCordappConfig.kt +++ b/node/src/main/kotlin/net/corda/node/internal/cordapp/TypesafeCordappConfig.kt @@ -4,6 +4,7 @@ import com.typesafe.config.Config import com.typesafe.config.ConfigException import net.corda.core.cordapp.CordappConfig import net.corda.core.cordapp.CordappConfigException +import net.corda.nodeapi.internal.config.getBooleanCaseInsensitive /** * Provides configuration from a typesafe config source @@ -71,7 +72,7 @@ class TypesafeCordappConfig(private val cordappConfig: Config) : CordappConfig { override fun getBoolean(path: String): Boolean { try { - return cordappConfig.getBoolean(path) + return cordappConfig.getBooleanCaseInsensitive(path) } catch (e: ConfigException) { throw CordappConfigException("Cordapp configuration is incorrect due to exception", e) } diff --git a/node/src/test/kotlin/net/corda/node/services/config/NodeConfigurationImplTest.kt b/node/src/test/kotlin/net/corda/node/services/config/NodeConfigurationImplTest.kt index 22d68fab17..93c45b2c5b 100644 --- a/node/src/test/kotlin/net/corda/node/services/config/NodeConfigurationImplTest.kt +++ b/node/src/test/kotlin/net/corda/node/services/config/NodeConfigurationImplTest.kt @@ -4,6 +4,7 @@ import com.typesafe.config.* import net.corda.core.internal.toPath import net.corda.core.utilities.NetworkHostAndPort import net.corda.core.utilities.seconds +import net.corda.nodeapi.internal.config.getBooleanCaseInsensitive import net.corda.testing.core.ALICE_NAME import net.corda.testing.node.MockServices.Companion.makeTestDataSourceProperties import net.corda.tools.shell.SSHDConfiguration @@ -67,16 +68,16 @@ class NodeConfigurationImplTest { val os = System.getProperty("os.name") setSystemOs("Windows 98") - assertTrue(getConfig("test-config-empty.conf").getBoolean("devMode")) + assertTrue(getConfig("test-config-empty.conf").getBooleanCaseInsensitive("devMode")) setSystemOs("Mac Sierra") - assertTrue(getConfig("test-config-empty.conf").getBoolean("devMode")) + assertTrue(getConfig("test-config-empty.conf").getBooleanCaseInsensitive("devMode")) setSystemOs("Windows server 2008") - assertFalse(getConfig("test-config-empty.conf").getBoolean("devMode")) + assertFalse(getConfig("test-config-empty.conf").getBooleanCaseInsensitive("devMode")) setSystemOs("Linux") - assertFalse(getConfig("test-config-empty.conf").getBoolean("devMode")) + assertFalse(getConfig("test-config-empty.conf").getBooleanCaseInsensitive("devMode")) setSystemOs(os) } @@ -87,22 +88,22 @@ class NodeConfigurationImplTest { @Test fun `Dev mode is read from the config over the autodetect logic`() { - assertTrue(getConfig("test-config-DevMode.conf").getBoolean("devMode")) - assertFalse(getConfig("test-config-noDevMode.conf").getBoolean("devMode")) + assertTrue(getConfig("test-config-DevMode.conf").getBooleanCaseInsensitive("devMode")) + assertFalse(getConfig("test-config-noDevMode.conf").getBooleanCaseInsensitive("devMode")) } @Test fun `Dev mode is true if overriden`() { - assertTrue(getConfig("test-config-DevMode.conf", ConfigFactory.parseMap(mapOf("devMode" to true))).getBoolean("devMode")) - assertTrue(getConfig("test-config-noDevMode.conf", ConfigFactory.parseMap(mapOf("devMode" to true))).getBoolean("devMode")) - assertTrue(getConfig("test-config-empty.conf", ConfigFactory.parseMap(mapOf("devMode" to true))).getBoolean("devMode")) + assertTrue(getConfig("test-config-DevMode.conf", ConfigFactory.parseMap(mapOf("devMode" to true))).getBooleanCaseInsensitive("devMode")) + assertTrue(getConfig("test-config-noDevMode.conf", ConfigFactory.parseMap(mapOf("devMode" to true))).getBooleanCaseInsensitive("devMode")) + assertTrue(getConfig("test-config-empty.conf", ConfigFactory.parseMap(mapOf("devMode" to true))).getBooleanCaseInsensitive("devMode")) } @Test fun `Dev mode is false if overriden`() { - assertFalse(getConfig("test-config-DevMode.conf", ConfigFactory.parseMap(mapOf("devMode" to false))).getBoolean("devMode")) - assertFalse(getConfig("test-config-noDevMode.conf", ConfigFactory.parseMap(mapOf("devMode" to false))).getBoolean("devMode")) - assertFalse(getConfig("test-config-empty.conf", ConfigFactory.parseMap(mapOf("devMode" to false))).getBoolean("devMode")) + assertFalse(getConfig("test-config-DevMode.conf", ConfigFactory.parseMap(mapOf("devMode" to false))).getBooleanCaseInsensitive("devMode")) + assertFalse(getConfig("test-config-noDevMode.conf", ConfigFactory.parseMap(mapOf("devMode" to false))).getBooleanCaseInsensitive("devMode")) + assertFalse(getConfig("test-config-empty.conf", ConfigFactory.parseMap(mapOf("devMode" to false))).getBooleanCaseInsensitive("devMode")) } private fun getConfig(cfgName: String, overrides: Config = ConfigFactory.empty()): Config { diff --git a/tools/network-bootstrapper/src/main/kotlin/net/corda/bootstrapper/volumes/Volume.kt b/tools/network-bootstrapper/src/main/kotlin/net/corda/bootstrapper/volumes/Volume.kt index fa514dd168..4ec5d47f02 100644 --- a/tools/network-bootstrapper/src/main/kotlin/net/corda/bootstrapper/volumes/Volume.kt +++ b/tools/network-bootstrapper/src/main/kotlin/net/corda/bootstrapper/volumes/Volume.kt @@ -9,6 +9,7 @@ import net.corda.core.node.NotaryInfo import net.corda.core.serialization.deserialize import net.corda.nodeapi.internal.DEV_ROOT_CA import net.corda.nodeapi.internal.SignedNodeInfo +import net.corda.nodeapi.internal.config.getBooleanCaseInsensitive import net.corda.nodeapi.internal.createDevNetworkMapCa import java.io.File import java.security.cert.X509Certificate @@ -36,7 +37,7 @@ interface Volume { fun convertNodeIntoToNetworkParams(notaryFiles: List>): NetworkParameters { val notaryInfos = notaryFiles.map { (configFile, nodeInfoFile) -> - val validating = ConfigFactory.parseFile(configFile).getConfig("notary").getBoolean("validating") + val validating = ConfigFactory.parseFile(configFile).getConfig("notary").getBooleanCaseInsensitive("validating") nodeInfoFile.readBytes().deserialize().verified().let { NotaryInfo(it.legalIdentities.first(), validating) } } From c5e93cf5a443365fd6aa0944756950069c50504f Mon Sep 17 00:00:00 2001 From: Anthony Keenan Date: Mon, 23 Jul 2018 09:06:43 +0100 Subject: [PATCH 6/6] Remove files not wanted in ent documentation --- docs/source/corda-networks-index.rst | 3 - docs/source/deploy-locally.rst | 164 ------------------------- docs/source/gcp-vm.rst | 136 -------------------- docs/source/testnet-explorer-corda.rst | 127 ------------------- 4 files changed, 430 deletions(-) delete mode 100644 docs/source/deploy-locally.rst delete mode 100644 docs/source/gcp-vm.rst delete mode 100644 docs/source/testnet-explorer-corda.rst diff --git a/docs/source/corda-networks-index.rst b/docs/source/corda-networks-index.rst index 3fedfce5cb..cbe7d5e66f 100644 --- a/docs/source/corda-networks-index.rst +++ b/docs/source/corda-networks-index.rst @@ -12,7 +12,4 @@ Networks corda-testnet-intro azure-template-guide testnet-explorer - gcp-vm - deploy-locally - testnet-explorer-corda cipher-suites diff --git a/docs/source/deploy-locally.rst b/docs/source/deploy-locally.rst deleted file mode 100644 index bf2221d3c8..0000000000 --- a/docs/source/deploy-locally.rst +++ /dev/null @@ -1,164 +0,0 @@ -Setting up your local environment to allow the deployment of a Corda node -========================================================================= - -.. contents:: - -This document explains how to set up your local network to enable a -Corda node to connect to the Corda Testnet. This assumes you are -downloading a node ZIP from: https://testnet.corda.network. - - -Pre-requisites --------------- -* Register for an account on https://testnet.corda.network. - - -Set up your local network -------------------------- - -For a Corda node to be able to connect to the Corda Testnet and be -reachable by counterparties on that network it needs to be reachable -on the open internet. Corda is a server which requires an externally -visible IP address and several ports in order to operate correctly. - -We recommend running your Coda node on cloud infrastructure. If you -wish to run Corda on your local machine then you will need to -configure your network to enable the Corda node to be reachable from -the internet. - -.. note:: You will need access to your network router/gateway to the internet. If you do not have direct access then contact your administrator. - -The following steps will describe how to use port forwarding on your -router to make sure packets intended for Corda are routed to the right -place on your local network. - -Set up static IP address local host machine -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The next steps will configure your router to forward -packets to the Corda node, but for this it is required to set the host -machine to have a static IP address. If this isn't done, and the -network is using DHCP dynamic address allocation then the next time -the host machine is rebooted it may be on a different IP and the port -forwarding will no longer work. - -Please consult your operating system documentation for instructions on -setting a static IP on the host machine. - - -Set up port forwarding on your router -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Port forwarding is a method of making a computer on your network -accessible to computers on the Internet, even though it is behind a router. - -.. note:: All routers are slightly different and you will need to consult the documentation for your specific make and model. - -Log in to the admin page of your router (often ``192.168.0.1``) in your -browser bar. - -.. note:: Router administration IP and log in credentials are usually on the bottom or side of your router. - -Navigate to the ``port forwarding`` section of the admin console. - -Add rules for the following ports which Corda uses: - -.. code:: bash - - 10002 - 10003 - 8080 - -.. note:: These ports are the defaults for Testnet which are specified - in the node.conf. If these conflict with existing services - on your host machine they can be changed in the - ``/opt/corda/node.conf`` file. - -For each rule you will also typically have to specify the rule name, -the static IP address of the host machine we configured earlier (the -same in each case) and the protocol (which is TCP in all cases here). - -Please consult your router documentation for specific details on -enabling port forwarding. - - -Open firewall ports -~~~~~~~~~~~~~~~~~~~ - -If you are operating a firewall on your host machine or local network -you will also need to open the above ports for incoming traffic. - -Please consult your firewall documentation for details. - - -Optional: Configure a static external IP address -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Corda expects nodes to have stable addresses over long periods of -time. ISPs typically assign dynamic IP addresses to a router and so if -your router is rebooted it may not obtain the same external IP and -therefore your Corda node will change its address on the Testnet. - -You can request a static IP address from your ISP however this may -incur a cost. - -If the IP address does change then this doesn't cause issues but it -will result in an update to the network map which then needs to be -propagated to all peers in the network. There may be some delay in the -ability to transact while this happens. - -.. warning:: Corda nodes are expected to be online all the time and - will send a heartbeat to the network map server to - indicate they are operational. If they go offline for a - period of time (~24 hours in the case of Testnet) then - the node will be removed from the network map. Any nodes - which have queued messages for your node will drop these messages, - they won't be delivered and unexpected behaviour may - occur. - - -Test if the ports are open -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -You can use a port checking tool to make sure the ports are open -properly. - - -Download and install your node -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Navigate to https://testnet.corda.network/platform. - -Click on the ``Download`` button and wait for the ZIP -file to download: - -.. image:: resources/testnet-download.png - -.. note: This may take several seconds. - -Unzip the file in your Corda root directory: - -.. code:: bash - - mkdir corda - cd corda - cp /node.zip . - unzip node.zip - cd node - -Run the ``run-corda.sh`` script to start your Corda node. - -.. code:: bash - - ./run-corda.sh - -Congratulations! You now have a running Corda node on Testnet. - -.. warning:: It is possible to copy the ``node.zip`` file from your local machine to any other host machine and run the Corda node from there. Do not run multiple copies of the same node (i.e. with the same identity). If a new copy of the node appears on the network then the network map server will interpret this as a change in the address of the node and route traffic to the most recent instance. Any states which are on the old node will no longer be available and undefined behaviour may result. Please provision a new node from the application instead. - - -Testing your deployment ------------------------ - -To test your deployment is working correctly follow the instructions in :doc:`testnet-explorer-corda` to set up the Finance CorDapp and issue cash to a counterparty. - diff --git a/docs/source/gcp-vm.rst b/docs/source/gcp-vm.rst deleted file mode 100644 index 02ecd600f0..0000000000 --- a/docs/source/gcp-vm.rst +++ /dev/null @@ -1,136 +0,0 @@ -Deploying Corda to Corda Testnet from a Google Cloud Platform VM -================================================================ - -.. contents:: - -This document explains how to deploy a Corda node to Google Cloud Platform that can connect directly to the Corda Testnet. A self service download link can be obtained from https://testnet.corda.network. This document will describe how to set up a virtual machine on the Google Cloud Platform (GCP) to deploy your pre-configured Corda node and automatically connnect to Testnet. - -Pre-requisites --------------- -* Ensure you have a registered Google Cloud Platform account with - billing enabled (https://cloud.google.com/billing/docs/how-to/manage-billing-account) which can create virtual machines under your subscription(s) and you are logged on to the GCP console: https://console.cloud.google.com. - - -Deploy Corda node ------------------ - -Browse to https://console.cloud.google.com and log in with your -Google credentials. - -**STEP 1: Create a GCP Project** - -In the project drop down click on the plus icon to create a new -project to house your Corda resources. - -.. image:: resources/consolegcp.png - -.. image:: resources/console2.png - -.. image:: resources/newprojectgcp.png - -Enter a project name and click Create. - -**STEP 2: Launch the VM** - -In the left hand side nav click on Compute Engine. - -.. image:: resources/gcpcompute.png - -Click on Create Instance. - -.. image:: resources/consolegcpcreatevm.png - -Fill in the form with the desired VM specs: - -Recommended minimum 4vCPU with 15GB memory and 40GB Persistent disk. -Ubuntu 16.04 LTS. - -Allow full API access. - -Dont worry about firewall settings as you will configure those later. - -.. image:: resources/gcpconsolevmsettings.png - -Click Create and wait a few sections for your instance to provision -and start running. - -**STEP 3: Connect to your VM and set up the environment** - -Once your instance is running click on the SSH button to launch a -cloud SSH terminal in a new window. - -.. image:: resources/gcpconsolelaunchssh.png - -.. image:: resources/gcpshell.png - -Run the following to configure the firewall to allow Corda traffic - -.. code:: bash - - gcloud compute firewall-rules create nodetonode --allow tcp:10002 - gcloud compute firewall-rules create nodetorpc --allow tcp:10003 - gcloud compute firewall-rules create webserver --allow tcp:8080 - - -Promote the ephemeral IP address associated with this -instance to a static IP address. - -First check the region and select the one you are using from the list: - -.. code:: bash - - gcloud compute regions list - -Find your external IP: - -.. code:: bash - - gcloud compute addresses list - -Run this command with the ephemeral IP address as the argument to -the --addresses flag and the region: - -.. code:: bash - - gcloud compute addresses create corda-node --addresses 35.204.53.61 --region europe-west4 - -**STEP 4: Download and set up your Corda node** - -Now your GCP environment is configured you can switch to the Testnet -web application and click on the copy to clipboard button to get a one -time installation script. - -.. note:: If you have not already set up your account on Testnet then please visit https://testnet.corda.network and sign up. - -.. image:: resources/testnet-platform.png - -You can generate as many Testnet identites as you like by refreshing -this page to generate a new one time link. - -In the terminal of your cloud instance paste the command you just copied to install and run -your unique Corda instance: - -.. code:: bash - - sudo ONE_TIME_DOWNLOAD_KEY=YOUR_UNIQUE_DOWNLOAD_KEY_HERE bash -c "$(curl -L https://testnet.corda.network/api/user/node/install.sh)" - -.. warning:: This command will execute the install script as ROOT on your cloud instance. You may wish to examine the script prior to executing it on your machine. - -You can follow the progress of the installation by typing the following command in your terminal: - -.. code:: bash - - tail -f /opt/corda/logs/node-.log - -Once the node has booted up you can navigate to the external web address of the instance on port 8080. If everything is working you should see the following: - -.. image:: resources/installed-cordapps.png - - -Testing your deployment ------------------------ - -To test your deployment is working correctly follow the instructions in :doc:`testnet-explorer-corda` to set up the Finance CorDapp and issue cash to a counterparty. - -This will also demonstrate how to install a custom CorDapp. - diff --git a/docs/source/testnet-explorer-corda.rst b/docs/source/testnet-explorer-corda.rst deleted file mode 100644 index c9217dfca2..0000000000 --- a/docs/source/testnet-explorer-corda.rst +++ /dev/null @@ -1,127 +0,0 @@ -Using the Node Explorer to test a Corda node on Corda Testnet -============================================================= - -This document will explain how to test the installation of a Corda node on Testnet. - - -Prerequisites -------------- - -This guide assumes you have deployed a Corda node to the Corda Testnet. - -.. note:: - - If you need to set up a node on Testnet first please follow the instructions: :doc:`corda-testnet-intro`. - - -Get the testing tools ---------------------- - -To run the tests and make sure your node is connecting correctly to the network you will need to download and install a -couple of resources. - -1. Log into your Cloud VM via SSH. - - -2. Stop the Corda node(s) running on your cloud instance. - - .. code:: bash - - ps aux | grep corda.jar | awk '{ print $2 }' | xargs sudo kill - - -3. Download the finance CorDapp - - In the terminal on your cloud instance run: - - .. code:: bash - - wget https://ci-artifactory.corda.r3cev.com/artifactory/corda-releases/net/corda/corda-finance/-corda/corda-finance--corda.jar - - This is required to run some flows to check your connections, and to issue/transfer cash to counterparties. Copy it to the Corda installation location: - - .. code:: bash - - sudo cp /home//corda-finance--corda.jar /opt/corda/cordapps/ - -4. Add the following line to the bottom of your ``node.conf``: - - .. code:: bash - - issuableCurrencies : [ USD ] - - .. note:: Make sure that the config file is in the correct format, e.g., by ensuring that there's a comma at the end of the line prior to the added config. - -4. Restart the Corda node: - - .. code:: bash - - cd /opt/corda - sudo ./run-corda.sh - - Your node is now running the Finance Cordapp. - - .. note:: You can double-check that the CorDapp is loaded in the log file ``/opt/corda/logs/node-.log``. This file will list installed apps at startup. Search for ``Loaded CorDapps`` in the logs. - -6. Now download the Node Explorer to your **LOCAL** machine: - - .. note:: Node Explorer is a JavaFX GUI which connects to the node over the RPC interface and allows you to send transactions. - - Download the Node Explorer from here: - - .. code:: bash - - http://ci-artifactory.corda.r3cev.com/artifactory/corda-releases/net/corda/corda-tools-explorer/-corda/corda-tools-explorer--corda.jar - - .. warning:: This Node Explorer is incompatible with the Corda Enterprise distribution and vice versa as they currently use different serialisation schemes (Kryo vs AMQP). - -7. Run the Node Explorer tool on your **LOCAL** machine. - - .. code:: bash - - java -jar corda-tools-explorer--corda.jar - - .. image:: resources/explorer-login.png - - -Connect to the node -------------------- - -To connect to the node you will need: - -* The IP address of your node (the public IP of your cloud instance). You can find this in the instance page of your cloud console. -* The port number of the RPC interface to the node, specified in ``/opt/corda/node.conf`` in the ``rpcSettings`` section, (by default this is 10003 on Testnet). -* The username and password of the RPC interface of the node, also in the ``node.conf`` in the ``rpcUsers`` section, (by default the username is ``cordazoneservice`` on Testnet). - -Click on ``Connect`` to log into the node. - -Check your network identity and counterparties ----------------------------------------------- - -Once Explorer has logged in to your node over RPC click on the ``Network`` tab in the side navigation of the Explorer UI: - -.. image:: resources/explorer-network.png - -If your Corda node is correctly configured and connected to the Testnet then you should be able to see the identities of your node, the Testnet notary and the network map listing all the counterparties currently on the network. - - -Test issuance transaction -------------------------- - -Now we are going to try and issue some cash to a 'bank'. Click on the ``Cash`` tab. - -.. image:: resources/explorer-cash-issue1.png - -Now click on ``New Transaction`` and create an issuance to a known counterparty on the network by filling in the form: - -.. image:: resources/explorer-cash-issue2.png - -Click ``Execute`` and the transaction will start. - -.. image:: resources/explorer-cash-issue3.png - -Click on the red X to close the notification window and click on ``Transactions`` tab to see the transaction in progress, or wait for a success message to be displayed: - -.. image:: resources/explorer-transactions.png - -Congratulations! You have now successfully installed a CorDapp and executed a transaction on the Corda Testnet. \ No newline at end of file