From 2543998a1ff337acf80fa96c91d9011e37675a75 Mon Sep 17 00:00:00 2001 From: Stefan Oltmann Date: Thu, 6 Jul 2023 11:27:16 +0200 Subject: [PATCH] Initial import --- .editorconfig | 17 + .github/workflows/ci.yml | 123 ++ .gitignore | 26 + .idea/.gitignore | 3 + .idea/codeStyles/Project.xml | 20 + .idea/codeStyles/codeStyleConfig.xml | 5 + .idea/detekt.xml | 21 + .idea/externalDependencies.xml | 7 + .idea/inspectionProfiles/Project_Default.xml | 1581 +++++++++++++++++ .../Publish_to_Maven_local.xml | 24 + README.md | 66 + build.gradle.kts | 423 +++++ detekt.yml | 931 ++++++++++ gradle.properties | 8 + gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 62076 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 245 +++ gradlew.bat | 92 + original_source/XMPCoreJava-5.1.3.zip | Bin 0 -> 389753 bytes original_source/original_license.png | Bin 0 -> 797817 bytes original_source/original_license.txt | 27 + settings.gradle.kts | 9 + .../kotlin/com/ashampoo/xmp/XMPConst.kt | 287 +++ .../kotlin/com/ashampoo/xmp/XMPError.kt | 28 + .../kotlin/com/ashampoo/xmp/XMPException.kt | 18 + .../kotlin/com/ashampoo/xmp/XMPIterator.kt | 77 + .../kotlin/com/ashampoo/xmp/XMPMeta.kt | 766 ++++++++ .../kotlin/com/ashampoo/xmp/XMPMetaFactory.kt | 50 + .../kotlin/com/ashampoo/xmp/XMPPathFactory.kt | 179 ++ .../com/ashampoo/xmp/XMPSchemaRegistry.kt | 142 ++ .../kotlin/com/ashampoo/xmp/XMPUtils.kt | 120 ++ .../kotlin/com/ashampoo/xmp/XMPVersionInfo.kt | 21 + .../kotlin/com/ashampoo/xmp/impl/DomParser.kt | 9 + .../kotlin/com/ashampoo/xmp/impl/QName.kt | 51 + .../kotlin/com/ashampoo/xmp/impl/Utils.kt | 367 ++++ .../com/ashampoo/xmp/impl/XMPIteratorImpl.kt | 498 ++++++ .../com/ashampoo/xmp/impl/XMPMetaImpl.kt | 954 ++++++++++ .../com/ashampoo/xmp/impl/XMPMetaParser.kt | 157 ++ .../kotlin/com/ashampoo/xmp/impl/XMPNode.kt | 328 ++++ .../com/ashampoo/xmp/impl/XMPNodeUtils.kt | 712 ++++++++ .../com/ashampoo/xmp/impl/XMPNormalizer.kt | 496 ++++++ .../com/ashampoo/xmp/impl/XMPRDFParser.kt | 1185 ++++++++++++ .../com/ashampoo/xmp/impl/XMPRDFWriter.kt | 993 +++++++++++ .../xmp/impl/XMPSchemaRegistryImpl.kt | 613 +++++++ .../com/ashampoo/xmp/impl/XmlUtilDomParser.kt | 32 + .../ashampoo/xmp/impl/xpath/PathPosition.kt | 41 + .../com/ashampoo/xmp/impl/xpath/XMPPath.kt | 79 + .../ashampoo/xmp/impl/xpath/XMPPathParser.kt | 396 +++++ .../ashampoo/xmp/impl/xpath/XMPPathSegment.kt | 56 + .../com/ashampoo/xmp/options/AliasOptions.kt | 96 + .../ashampoo/xmp/options/IteratorOptions.kt | 127 ++ .../com/ashampoo/xmp/options/Options.kt | 229 +++ .../com/ashampoo/xmp/options/ParseOptions.kt | 96 + .../ashampoo/xmp/options/PropertyOptions.kt | 357 ++++ .../ashampoo/xmp/options/SerializeOptions.kt | 163 ++ .../ashampoo/xmp/properties/XMPAliasInfo.kt | 42 + .../ashampoo/xmp/properties/XMPProperty.kt | 35 + .../xmp/properties/XMPPropertyInfo.kt | 39 + .../kotlin/com/ashampoo/xmp/RewriteXmpTest.kt | 202 +++ .../kotlin/com/ashampoo/xmp/impl/UtilsTest.kt | 58 + .../resources/com/ashampoo/xmp/.gitattributes | 2 + .../resources/com/ashampoo/xmp/sample_1.xmp | 208 +++ .../resources/com/ashampoo/xmp/sample_10.xmp | 276 +++ .../resources/com/ashampoo/xmp/sample_100.xmp | 34 + .../xmp/sample_100_formatted_canonical.xmp | 36 + .../xmp/sample_100_formatted_compact.xmp | 36 + .../xmp/sample_10_formatted_canonical.xmp | 241 +++ .../xmp/sample_10_formatted_compact.xmp | 229 +++ .../resources/com/ashampoo/xmp/sample_11.xmp | 103 ++ .../xmp/sample_11_formatted_canonical.xmp | 78 + .../xmp/sample_11_formatted_compact.xmp | 60 + .../resources/com/ashampoo/xmp/sample_12.xmp | 308 ++++ .../xmp/sample_12_formatted_canonical.xmp | 278 +++ .../xmp/sample_12_formatted_compact.xmp | 269 +++ .../resources/com/ashampoo/xmp/sample_13.xmp | 35 + .../xmp/sample_13_formatted_canonical.xmp | 10 + .../xmp/sample_13_formatted_compact.xmp | 9 + .../resources/com/ashampoo/xmp/sample_14.xmp | 35 + .../xmp/sample_14_formatted_canonical.xmp | 10 + .../xmp/sample_14_formatted_compact.xmp | 9 + .../resources/com/ashampoo/xmp/sample_15.xmp | 37 + .../xmp/sample_15_formatted_canonical.xmp | 12 + .../xmp/sample_15_formatted_compact.xmp | 11 + .../resources/com/ashampoo/xmp/sample_16.xmp | 326 ++++ .../xmp/sample_16_formatted_canonical.xmp | 297 ++++ .../xmp/sample_16_formatted_compact.xmp | 279 +++ .../resources/com/ashampoo/xmp/sample_17.xmp | 41 + .../xmp/sample_17_formatted_canonical.xmp | 13 + .../xmp/sample_17_formatted_compact.xmp | 12 + .../resources/com/ashampoo/xmp/sample_18.xmp | 302 ++++ .../xmp/sample_18_formatted_canonical.xmp | 280 +++ .../xmp/sample_18_formatted_compact.xmp | 253 +++ .../resources/com/ashampoo/xmp/sample_19.xmp | 509 ++++++ .../xmp/sample_19_formatted_canonical.xmp | 563 ++++++ .../xmp/sample_19_formatted_compact.xmp | 422 +++++ .../xmp/sample_1_formatted_canonical.xmp | 192 ++ .../xmp/sample_1_formatted_compact.xmp | 156 ++ .../resources/com/ashampoo/xmp/sample_2.xmp | 108 ++ .../resources/com/ashampoo/xmp/sample_20.xmp | 205 +++ .../xmp/sample_20_formatted_canonical.xmp | 218 +++ .../xmp/sample_20_formatted_compact.xmp | 199 +++ .../resources/com/ashampoo/xmp/sample_21.xmp | 403 +++++ .../xmp/sample_21_formatted_canonical.xmp | 372 ++++ .../xmp/sample_21_formatted_compact.xmp | 350 ++++ .../resources/com/ashampoo/xmp/sample_22.xmp | 1 + .../xmp/sample_22_formatted_canonical.xmp | 252 +++ .../xmp/sample_22_formatted_compact.xmp | 235 +++ .../resources/com/ashampoo/xmp/sample_23.xmp | 342 ++++ .../xmp/sample_23_formatted_canonical.xmp | 353 ++++ .../xmp/sample_23_formatted_compact.xmp | 335 ++++ .../resources/com/ashampoo/xmp/sample_24.xmp | 330 ++++ .../xmp/sample_24_formatted_canonical.xmp | 347 ++++ .../xmp/sample_24_formatted_compact.xmp | 323 ++++ .../resources/com/ashampoo/xmp/sample_25.xmp | 424 +++++ .../xmp/sample_25_formatted_canonical.xmp | 454 +++++ .../xmp/sample_25_formatted_compact.xmp | 418 +++++ .../resources/com/ashampoo/xmp/sample_26.xmp | 316 ++++ .../xmp/sample_26_formatted_canonical.xmp | 323 ++++ .../xmp/sample_26_formatted_compact.xmp | 308 ++++ .../resources/com/ashampoo/xmp/sample_27.xmp | 284 +++ .../xmp/sample_27_formatted_canonical.xmp | 289 +++ .../xmp/sample_27_formatted_compact.xmp | 277 +++ .../resources/com/ashampoo/xmp/sample_28.xmp | 132 ++ .../xmp/sample_28_formatted_canonical.xmp | 129 ++ .../xmp/sample_28_formatted_compact.xmp | 126 ++ .../resources/com/ashampoo/xmp/sample_29.xmp | 310 ++++ .../xmp/sample_29_formatted_canonical.xmp | 318 ++++ .../xmp/sample_29_formatted_compact.xmp | 303 ++++ .../xmp/sample_2_formatted_canonical.xmp | 112 ++ .../xmp/sample_2_formatted_compact.xmp | 109 ++ .../resources/com/ashampoo/xmp/sample_3.xmp | 631 +++++++ .../resources/com/ashampoo/xmp/sample_30.xmp | 273 +++ .../xmp/sample_30_formatted_canonical.xmp | 238 +++ .../xmp/sample_30_formatted_compact.xmp | 226 +++ .../resources/com/ashampoo/xmp/sample_31.xmp | 35 + .../xmp/sample_31_formatted_canonical.xmp | 10 + .../xmp/sample_31_formatted_compact.xmp | 9 + .../resources/com/ashampoo/xmp/sample_32.xmp | 52 + .../xmp/sample_32_formatted_canonical.xmp | 21 + .../xmp/sample_32_formatted_compact.xmp | 21 + .../resources/com/ashampoo/xmp/sample_33.xmp | 236 +++ .../xmp/sample_33_formatted_canonical.xmp | 202 +++ .../xmp/sample_33_formatted_compact.xmp | 193 ++ .../resources/com/ashampoo/xmp/sample_34.xmp | 35 + .../xmp/sample_34_formatted_canonical.xmp | 10 + .../xmp/sample_34_formatted_compact.xmp | 9 + .../resources/com/ashampoo/xmp/sample_35.xmp | 291 +++ .../xmp/sample_35_formatted_canonical.xmp | 260 +++ .../xmp/sample_35_formatted_compact.xmp | 242 +++ .../resources/com/ashampoo/xmp/sample_36.xmp | 63 + .../xmp/sample_36_formatted_canonical.xmp | 29 + .../xmp/sample_36_formatted_compact.xmp | 29 + .../resources/com/ashampoo/xmp/sample_37.xmp | 832 +++++++++ .../xmp/sample_37_formatted_canonical.xmp | 866 +++++++++ .../xmp/sample_37_formatted_compact.xmp | 797 +++++++++ .../resources/com/ashampoo/xmp/sample_38.xmp | 256 +++ .../xmp/sample_38_formatted_canonical.xmp | 232 +++ .../xmp/sample_38_formatted_compact.xmp | 208 +++ .../resources/com/ashampoo/xmp/sample_39.xmp | 35 + .../xmp/sample_39_formatted_canonical.xmp | 10 + .../xmp/sample_39_formatted_compact.xmp | 9 + .../xmp/sample_3_formatted_canonical.xmp | 627 +++++++ .../xmp/sample_3_formatted_compact.xmp | 612 +++++++ .../resources/com/ashampoo/xmp/sample_4.xmp | 323 ++++ .../resources/com/ashampoo/xmp/sample_40.xmp | 345 ++++ .../xmp/sample_40_formatted_canonical.xmp | 323 ++++ .../xmp/sample_40_formatted_compact.xmp | 302 ++++ .../resources/com/ashampoo/xmp/sample_41.xmp | 35 + .../xmp/sample_41_formatted_canonical.xmp | 10 + .../xmp/sample_41_formatted_compact.xmp | 9 + .../resources/com/ashampoo/xmp/sample_42.xmp | 334 ++++ .../xmp/sample_42_formatted_canonical.xmp | 301 ++++ .../xmp/sample_42_formatted_compact.xmp | 292 +++ .../resources/com/ashampoo/xmp/sample_43.xmp | 35 + .../xmp/sample_43_formatted_canonical.xmp | 10 + .../xmp/sample_43_formatted_compact.xmp | 9 + .../resources/com/ashampoo/xmp/sample_44.xmp | 35 + .../xmp/sample_44_formatted_canonical.xmp | 10 + .../xmp/sample_44_formatted_compact.xmp | 9 + .../resources/com/ashampoo/xmp/sample_45.xmp | 691 +++++++ .../xmp/sample_45_formatted_canonical.xmp | 669 +++++++ .../xmp/sample_45_formatted_compact.xmp | 651 +++++++ .../resources/com/ashampoo/xmp/sample_46.xmp | 275 +++ .../xmp/sample_46_formatted_canonical.xmp | 240 +++ .../xmp/sample_46_formatted_compact.xmp | 228 +++ .../resources/com/ashampoo/xmp/sample_47.xmp | 609 +++++++ .../xmp/sample_47_formatted_canonical.xmp | 603 +++++++ .../xmp/sample_47_formatted_compact.xmp | 594 +++++++ .../resources/com/ashampoo/xmp/sample_48.xmp | 115 ++ .../xmp/sample_48_formatted_canonical.xmp | 131 ++ .../xmp/sample_48_formatted_compact.xmp | 117 ++ .../resources/com/ashampoo/xmp/sample_49.xmp | 18 + .../xmp/sample_49_formatted_canonical.xmp | 10 + .../xmp/sample_49_formatted_compact.xmp | 9 + .../xmp/sample_4_formatted_canonical.xmp | 290 +++ .../xmp/sample_4_formatted_compact.xmp | 281 +++ .../resources/com/ashampoo/xmp/sample_5.xmp | 353 ++++ .../resources/com/ashampoo/xmp/sample_50.xmp | 4 + .../xmp/sample_50_formatted_canonical.xmp | 10 + .../xmp/sample_50_formatted_compact.xmp | 9 + .../resources/com/ashampoo/xmp/sample_51.xmp | 239 +++ .../xmp/sample_51_formatted_canonical.xmp | 233 +++ .../xmp/sample_51_formatted_compact.xmp | 218 +++ .../resources/com/ashampoo/xmp/sample_52.xmp | 250 +++ .../xmp/sample_52_formatted_canonical.xmp | 278 +++ .../xmp/sample_52_formatted_compact.xmp | 239 +++ .../resources/com/ashampoo/xmp/sample_53.xmp | 188 ++ .../xmp/sample_53_formatted_canonical.xmp | 206 +++ .../xmp/sample_53_formatted_compact.xmp | 167 ++ .../resources/com/ashampoo/xmp/sample_54.xmp | 88 + .../xmp/sample_54_formatted_canonical.xmp | 97 + .../xmp/sample_54_formatted_compact.xmp | 89 + .../resources/com/ashampoo/xmp/sample_55.xmp | 11 + .../xmp/sample_55_formatted_canonical.xmp | 12 + .../xmp/sample_55_formatted_compact.xmp | 11 + .../resources/com/ashampoo/xmp/sample_56.xmp | 1 + .../xmp/sample_56_formatted_canonical.xmp | 16 + .../xmp/sample_56_formatted_compact.xmp | 16 + .../resources/com/ashampoo/xmp/sample_57.xmp | 110 ++ .../xmp/sample_57_formatted_canonical.xmp | 70 + .../xmp/sample_57_formatted_compact.xmp | 70 + .../resources/com/ashampoo/xmp/sample_58.xmp | 110 ++ .../xmp/sample_58_formatted_canonical.xmp | 70 + .../xmp/sample_58_formatted_compact.xmp | 70 + .../resources/com/ashampoo/xmp/sample_59.xmp | 110 ++ .../xmp/sample_59_formatted_canonical.xmp | 70 + .../xmp/sample_59_formatted_compact.xmp | 70 + .../xmp/sample_5_formatted_canonical.xmp | 326 ++++ .../xmp/sample_5_formatted_compact.xmp | 311 ++++ .../resources/com/ashampoo/xmp/sample_6.xmp | 271 +++ .../resources/com/ashampoo/xmp/sample_60.xmp | 110 ++ .../xmp/sample_60_formatted_canonical.xmp | 70 + .../xmp/sample_60_formatted_compact.xmp | 70 + .../resources/com/ashampoo/xmp/sample_61.xmp | 110 ++ .../xmp/sample_61_formatted_canonical.xmp | 70 + .../xmp/sample_61_formatted_compact.xmp | 70 + .../resources/com/ashampoo/xmp/sample_62.xmp | 110 ++ .../xmp/sample_62_formatted_canonical.xmp | 70 + .../xmp/sample_62_formatted_compact.xmp | 70 + .../resources/com/ashampoo/xmp/sample_63.xmp | 112 ++ .../xmp/sample_63_formatted_canonical.xmp | 72 + .../xmp/sample_63_formatted_compact.xmp | 72 + .../resources/com/ashampoo/xmp/sample_64.xmp | 144 ++ .../xmp/sample_64_formatted_canonical.xmp | 112 ++ .../xmp/sample_64_formatted_compact.xmp | 104 ++ .../resources/com/ashampoo/xmp/sample_65.xmp | 112 ++ .../xmp/sample_65_formatted_canonical.xmp | 72 + .../xmp/sample_65_formatted_compact.xmp | 72 + .../resources/com/ashampoo/xmp/sample_66.xmp | 112 ++ .../xmp/sample_66_formatted_canonical.xmp | 72 + .../xmp/sample_66_formatted_compact.xmp | 72 + .../resources/com/ashampoo/xmp/sample_67.xmp | 112 ++ .../xmp/sample_67_formatted_canonical.xmp | 72 + .../xmp/sample_67_formatted_compact.xmp | 72 + .../resources/com/ashampoo/xmp/sample_68.xmp | 112 ++ .../xmp/sample_68_formatted_canonical.xmp | 72 + .../xmp/sample_68_formatted_compact.xmp | 72 + .../resources/com/ashampoo/xmp/sample_69.xmp | 113 ++ .../xmp/sample_69_formatted_canonical.xmp | 73 + .../xmp/sample_69_formatted_compact.xmp | 73 + .../xmp/sample_6_formatted_canonical.xmp | 242 +++ .../xmp/sample_6_formatted_compact.xmp | 221 +++ .../resources/com/ashampoo/xmp/sample_7.xmp | 395 ++++ .../resources/com/ashampoo/xmp/sample_70.xmp | 113 ++ .../xmp/sample_70_formatted_canonical.xmp | 73 + .../xmp/sample_70_formatted_compact.xmp | 73 + .../resources/com/ashampoo/xmp/sample_71.xmp | 113 ++ .../xmp/sample_71_formatted_canonical.xmp | 73 + .../xmp/sample_71_formatted_compact.xmp | 73 + .../resources/com/ashampoo/xmp/sample_72.xmp | 112 ++ .../xmp/sample_72_formatted_canonical.xmp | 72 + .../xmp/sample_72_formatted_compact.xmp | 72 + .../resources/com/ashampoo/xmp/sample_73.xmp | 104 ++ .../xmp/sample_73_formatted_canonical.xmp | 64 + .../xmp/sample_73_formatted_compact.xmp | 64 + .../resources/com/ashampoo/xmp/sample_74.xmp | 104 ++ .../xmp/sample_74_formatted_canonical.xmp | 64 + .../xmp/sample_74_formatted_compact.xmp | 64 + .../resources/com/ashampoo/xmp/sample_75.xmp | 136 ++ .../xmp/sample_75_formatted_canonical.xmp | 104 ++ .../xmp/sample_75_formatted_compact.xmp | 96 + .../resources/com/ashampoo/xmp/sample_76.xmp | 104 ++ .../xmp/sample_76_formatted_canonical.xmp | 64 + .../xmp/sample_76_formatted_compact.xmp | 64 + .../resources/com/ashampoo/xmp/sample_77.xmp | 136 ++ .../xmp/sample_77_formatted_canonical.xmp | 104 ++ .../xmp/sample_77_formatted_compact.xmp | 96 + .../resources/com/ashampoo/xmp/sample_78.xmp | 37 + .../xmp/sample_78_formatted_canonical.xmp | 39 + .../xmp/sample_78_formatted_compact.xmp | 39 + .../resources/com/ashampoo/xmp/sample_79.xmp | 37 + .../xmp/sample_79_formatted_canonical.xmp | 39 + .../xmp/sample_79_formatted_compact.xmp | 39 + .../xmp/sample_7_formatted_canonical.xmp | 367 ++++ .../xmp/sample_7_formatted_compact.xmp | 358 ++++ .../resources/com/ashampoo/xmp/sample_8.xmp | 287 +++ .../resources/com/ashampoo/xmp/sample_80.xmp | 35 + .../xmp/sample_80_formatted_canonical.xmp | 37 + .../xmp/sample_80_formatted_compact.xmp | 37 + .../resources/com/ashampoo/xmp/sample_81.xmp | 34 + .../xmp/sample_81_formatted_canonical.xmp | 36 + .../xmp/sample_81_formatted_compact.xmp | 36 + .../resources/com/ashampoo/xmp/sample_82.xmp | 66 + .../xmp/sample_82_formatted_canonical.xmp | 76 + .../xmp/sample_82_formatted_compact.xmp | 68 + .../resources/com/ashampoo/xmp/sample_83.xmp | 34 + .../xmp/sample_83_formatted_canonical.xmp | 36 + .../xmp/sample_83_formatted_compact.xmp | 36 + .../resources/com/ashampoo/xmp/sample_84.xmp | 34 + .../xmp/sample_84_formatted_canonical.xmp | 36 + .../xmp/sample_84_formatted_compact.xmp | 36 + .../resources/com/ashampoo/xmp/sample_85.xmp | 34 + .../xmp/sample_85_formatted_canonical.xmp | 36 + .../xmp/sample_85_formatted_compact.xmp | 36 + .../resources/com/ashampoo/xmp/sample_86.xmp | 34 + .../xmp/sample_86_formatted_canonical.xmp | 36 + .../xmp/sample_86_formatted_compact.xmp | 36 + .../resources/com/ashampoo/xmp/sample_87.xmp | 35 + .../xmp/sample_87_formatted_canonical.xmp | 37 + .../xmp/sample_87_formatted_compact.xmp | 37 + .../resources/com/ashampoo/xmp/sample_88.xmp | 35 + .../xmp/sample_88_formatted_canonical.xmp | 37 + .../xmp/sample_88_formatted_compact.xmp | 37 + .../resources/com/ashampoo/xmp/sample_89.xmp | 34 + .../xmp/sample_89_formatted_canonical.xmp | 36 + .../xmp/sample_89_formatted_compact.xmp | 36 + .../xmp/sample_8_formatted_canonical.xmp | 257 +++ .../xmp/sample_8_formatted_compact.xmp | 245 +++ .../resources/com/ashampoo/xmp/sample_9.xmp | 379 ++++ .../resources/com/ashampoo/xmp/sample_90.xmp | 34 + .../xmp/sample_90_formatted_canonical.xmp | 36 + .../xmp/sample_90_formatted_compact.xmp | 36 + .../resources/com/ashampoo/xmp/sample_91.xmp | 34 + .../xmp/sample_91_formatted_canonical.xmp | 36 + .../xmp/sample_91_formatted_compact.xmp | 36 + .../resources/com/ashampoo/xmp/sample_92.xmp | 35 + .../xmp/sample_92_formatted_canonical.xmp | 37 + .../xmp/sample_92_formatted_compact.xmp | 37 + .../resources/com/ashampoo/xmp/sample_93.xmp | 35 + .../xmp/sample_93_formatted_canonical.xmp | 37 + .../xmp/sample_93_formatted_compact.xmp | 37 + .../resources/com/ashampoo/xmp/sample_94.xmp | 35 + .../xmp/sample_94_formatted_canonical.xmp | 37 + .../xmp/sample_94_formatted_compact.xmp | 37 + .../resources/com/ashampoo/xmp/sample_95.xmp | 35 + .../xmp/sample_95_formatted_canonical.xmp | 37 + .../xmp/sample_95_formatted_compact.xmp | 37 + .../resources/com/ashampoo/xmp/sample_96.xmp | 35 + .../xmp/sample_96_formatted_canonical.xmp | 37 + .../xmp/sample_96_formatted_compact.xmp | 37 + .../resources/com/ashampoo/xmp/sample_97.xmp | 67 + .../xmp/sample_97_formatted_canonical.xmp | 77 + .../xmp/sample_97_formatted_compact.xmp | 69 + .../resources/com/ashampoo/xmp/sample_98.xmp | 70 + .../xmp/sample_98_formatted_canonical.xmp | 80 + .../xmp/sample_98_formatted_compact.xmp | 72 + .../resources/com/ashampoo/xmp/sample_99.xmp | 38 + .../xmp/sample_99_formatted_canonical.xmp | 40 + .../xmp/sample_99_formatted_compact.xmp | 40 + .../xmp/sample_9_formatted_canonical.xmp | 361 ++++ .../xmp/sample_9_formatted_compact.xmp | 337 ++++ src/posixMain/kotlin/PosixByteArrayReader.kt | 48 + src/posixMain/kotlin/main.kt | 36 + 363 files changed, 59651 insertions(+) create mode 100644 .editorconfig create mode 100644 .github/workflows/ci.yml create mode 100644 .gitignore create mode 100644 .idea/.gitignore create mode 100644 .idea/codeStyles/Project.xml create mode 100644 .idea/codeStyles/codeStyleConfig.xml create mode 100644 .idea/detekt.xml create mode 100644 .idea/externalDependencies.xml create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 .idea/runConfigurations/Publish_to_Maven_local.xml create mode 100644 README.md create mode 100644 build.gradle.kts create mode 100644 detekt.yml create mode 100644 gradle.properties create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100644 gradlew.bat create mode 100644 original_source/XMPCoreJava-5.1.3.zip create mode 100644 original_source/original_license.png create mode 100644 original_source/original_license.txt create mode 100644 settings.gradle.kts create mode 100644 src/commonMain/kotlin/com/ashampoo/xmp/XMPConst.kt create mode 100644 src/commonMain/kotlin/com/ashampoo/xmp/XMPError.kt create mode 100644 src/commonMain/kotlin/com/ashampoo/xmp/XMPException.kt create mode 100644 src/commonMain/kotlin/com/ashampoo/xmp/XMPIterator.kt create mode 100644 src/commonMain/kotlin/com/ashampoo/xmp/XMPMeta.kt create mode 100644 src/commonMain/kotlin/com/ashampoo/xmp/XMPMetaFactory.kt create mode 100644 src/commonMain/kotlin/com/ashampoo/xmp/XMPPathFactory.kt create mode 100644 src/commonMain/kotlin/com/ashampoo/xmp/XMPSchemaRegistry.kt create mode 100644 src/commonMain/kotlin/com/ashampoo/xmp/XMPUtils.kt create mode 100644 src/commonMain/kotlin/com/ashampoo/xmp/XMPVersionInfo.kt create mode 100644 src/commonMain/kotlin/com/ashampoo/xmp/impl/DomParser.kt create mode 100644 src/commonMain/kotlin/com/ashampoo/xmp/impl/QName.kt create mode 100644 src/commonMain/kotlin/com/ashampoo/xmp/impl/Utils.kt create mode 100644 src/commonMain/kotlin/com/ashampoo/xmp/impl/XMPIteratorImpl.kt create mode 100644 src/commonMain/kotlin/com/ashampoo/xmp/impl/XMPMetaImpl.kt create mode 100644 src/commonMain/kotlin/com/ashampoo/xmp/impl/XMPMetaParser.kt create mode 100644 src/commonMain/kotlin/com/ashampoo/xmp/impl/XMPNode.kt create mode 100644 src/commonMain/kotlin/com/ashampoo/xmp/impl/XMPNodeUtils.kt create mode 100644 src/commonMain/kotlin/com/ashampoo/xmp/impl/XMPNormalizer.kt create mode 100644 src/commonMain/kotlin/com/ashampoo/xmp/impl/XMPRDFParser.kt create mode 100644 src/commonMain/kotlin/com/ashampoo/xmp/impl/XMPRDFWriter.kt create mode 100644 src/commonMain/kotlin/com/ashampoo/xmp/impl/XMPSchemaRegistryImpl.kt create mode 100644 src/commonMain/kotlin/com/ashampoo/xmp/impl/XmlUtilDomParser.kt create mode 100644 src/commonMain/kotlin/com/ashampoo/xmp/impl/xpath/PathPosition.kt create mode 100644 src/commonMain/kotlin/com/ashampoo/xmp/impl/xpath/XMPPath.kt create mode 100644 src/commonMain/kotlin/com/ashampoo/xmp/impl/xpath/XMPPathParser.kt create mode 100644 src/commonMain/kotlin/com/ashampoo/xmp/impl/xpath/XMPPathSegment.kt create mode 100644 src/commonMain/kotlin/com/ashampoo/xmp/options/AliasOptions.kt create mode 100644 src/commonMain/kotlin/com/ashampoo/xmp/options/IteratorOptions.kt create mode 100644 src/commonMain/kotlin/com/ashampoo/xmp/options/Options.kt create mode 100644 src/commonMain/kotlin/com/ashampoo/xmp/options/ParseOptions.kt create mode 100644 src/commonMain/kotlin/com/ashampoo/xmp/options/PropertyOptions.kt create mode 100644 src/commonMain/kotlin/com/ashampoo/xmp/options/SerializeOptions.kt create mode 100644 src/commonMain/kotlin/com/ashampoo/xmp/properties/XMPAliasInfo.kt create mode 100644 src/commonMain/kotlin/com/ashampoo/xmp/properties/XMPProperty.kt create mode 100644 src/commonMain/kotlin/com/ashampoo/xmp/properties/XMPPropertyInfo.kt create mode 100644 src/commonTest/kotlin/com/ashampoo/xmp/RewriteXmpTest.kt create mode 100644 src/commonTest/kotlin/com/ashampoo/xmp/impl/UtilsTest.kt create mode 100644 src/commonTest/resources/com/ashampoo/xmp/.gitattributes create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_1.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_10.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_100.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_100_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_100_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_10_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_10_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_11.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_11_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_11_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_12.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_12_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_12_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_13.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_13_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_13_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_14.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_14_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_14_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_15.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_15_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_15_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_16.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_16_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_16_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_17.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_17_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_17_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_18.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_18_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_18_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_19.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_19_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_19_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_1_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_1_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_2.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_20.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_20_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_20_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_21.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_21_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_21_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_22.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_22_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_22_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_23.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_23_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_23_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_24.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_24_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_24_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_25.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_25_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_25_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_26.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_26_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_26_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_27.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_27_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_27_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_28.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_28_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_28_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_29.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_29_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_29_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_2_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_2_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_3.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_30.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_30_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_30_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_31.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_31_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_31_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_32.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_32_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_32_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_33.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_33_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_33_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_34.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_34_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_34_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_35.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_35_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_35_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_36.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_36_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_36_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_37.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_37_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_37_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_38.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_38_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_38_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_39.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_39_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_39_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_3_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_3_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_4.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_40.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_40_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_40_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_41.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_41_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_41_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_42.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_42_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_42_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_43.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_43_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_43_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_44.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_44_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_44_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_45.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_45_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_45_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_46.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_46_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_46_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_47.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_47_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_47_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_48.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_48_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_48_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_49.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_49_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_49_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_4_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_4_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_5.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_50.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_50_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_50_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_51.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_51_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_51_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_52.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_52_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_52_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_53.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_53_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_53_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_54.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_54_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_54_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_55.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_55_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_55_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_56.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_56_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_56_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_57.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_57_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_57_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_58.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_58_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_58_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_59.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_59_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_59_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_5_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_5_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_6.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_60.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_60_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_60_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_61.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_61_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_61_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_62.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_62_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_62_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_63.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_63_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_63_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_64.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_64_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_64_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_65.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_65_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_65_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_66.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_66_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_66_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_67.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_67_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_67_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_68.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_68_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_68_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_69.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_69_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_69_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_6_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_6_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_7.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_70.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_70_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_70_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_71.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_71_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_71_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_72.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_72_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_72_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_73.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_73_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_73_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_74.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_74_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_74_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_75.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_75_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_75_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_76.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_76_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_76_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_77.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_77_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_77_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_78.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_78_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_78_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_79.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_79_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_79_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_7_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_7_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_8.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_80.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_80_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_80_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_81.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_81_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_81_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_82.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_82_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_82_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_83.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_83_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_83_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_84.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_84_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_84_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_85.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_85_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_85_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_86.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_86_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_86_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_87.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_87_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_87_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_88.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_88_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_88_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_89.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_89_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_89_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_8_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_8_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_9.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_90.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_90_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_90_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_91.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_91_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_91_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_92.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_92_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_92_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_93.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_93_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_93_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_94.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_94_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_94_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_95.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_95_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_95_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_96.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_96_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_96_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_97.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_97_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_97_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_98.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_98_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_98_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_99.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_99_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_99_formatted_compact.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_9_formatted_canonical.xmp create mode 100644 src/commonTest/resources/com/ashampoo/xmp/sample_9_formatted_compact.xmp create mode 100644 src/posixMain/kotlin/PosixByteArrayReader.kt create mode 100644 src/posixMain/kotlin/main.kt diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..a798a08 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,17 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_size = 4 +indent_style = space +insert_final_newline = true +max_line_length = 110 +tab_width = 4 +trim_trailing_whitespace = true + +[{*.yml,*.json,gradlew}] +indent_size = 2 + +[{*.yml,*.md,*.txt}] +max_line_length = off diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..3ae2c07 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,123 @@ +name: Build & Test + +on: + push: + branches: + - main + tags: + - '*' + pull_request: + branches: + - main + +jobs: + build: + name: Build & Test + runs-on: macos-latest + steps: + - name: Checkout workspace + uses: actions/checkout@v3 + timeout-minutes: 5 + with: + fetch-depth: 0 # no shallow clones for SonarQube + - name: Set up Java JDK 17 + uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: '17.0.5+8' + - name: Gradle Cache + uses: actions/cache@v3 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + ~/.gradle/native + key: ${{ runner.os }}-gradle-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties', 'build.gradle.kts') }} + restore-keys: ${{ runner.os }}-gradle- + - name: Kotlin Native Cache + uses: actions/cache@v3 + with: + path: ~/.konan + key: ${{ runner.os }}-konan-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties', 'build.gradle.kts') }} + restore-keys: ${{ runner.os }}-konan- + - name: Android Cache + uses: actions/cache@v3 + with: + path: ~/.android + key: ${{ runner.os }}-android-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties', 'build.gradle.kts') }} + restore-keys: ${{ runner.os }}-android- + - name: Cache SonarCloud packages + uses: actions/cache@v1 + with: + path: ~/.sonar/cache + key: ${{ runner.os }}-sonar + restore-keys: ${{ runner.os }}-sonar + - name: Build & Test + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + run: | + chmod +x ./gradlew + ./gradlew build test koverXmlReport detekt sonar assembleXCFramework --parallel + - name: Set RELEASE_VERSION variable + run: | + echo "RELEASE_VERSION=$(cat build/version.txt)" >> $GITHUB_ENV + echo ${{ env.RELEASE_VERSION }} + - name: Upload reports + uses: actions/upload-artifact@v3 + if: always() + with: + name: reports.zip + path: build/reports + - name: List files + run: | + ls -lah build/bin/*/releaseExecutable build/libs/ build/outputs/aar/ build/XCFrameworks/release/ + - name: Upload xmpcore.jar + uses: actions/upload-artifact@v3 + with: + if-no-files-found: error + name: xmpcore.jar + path: build/libs/xmpcore-jvm-${{ env.RELEASE_VERSION }}.jar + - name: Upload xmpcore.aar + uses: actions/upload-artifact@v3 + with: + if-no-files-found: error + name: xmpcore.aar + path: build/outputs/aar/xmpcore-release.aar + - name: Upload xmpcore.xcframework + uses: actions/upload-artifact@v3 + with: + if-no-files-found: error + name: xmpcore.xcframework + path: build/XCFrameworks/release/xmpcore.xcframework + - name: Upload xmpcore.exe + uses: actions/upload-artifact@v3 + with: + if-no-files-found: error + name: xmpcore.exe + path: build/bin/win/releaseExecutable/xmpcore.exe + - name: Upload xmpcore-macosX64.kexe + uses: actions/upload-artifact@v3 + with: + if-no-files-found: error + name: xmpcore-macosX64.kexe + path: build/bin/macosX64/releaseExecutable/xmpcore.kexe + - name: Upload xmpcore-macosArm64.kexe + uses: actions/upload-artifact@v3 + with: + if-no-files-found: error + name: xmpcore-macosArm64.kexe + path: build/bin/macosArm64/releaseExecutable/xmpcore.kexe + - name: Export secring.pgp + if: startsWith(github.ref, 'refs/tags/') # Only for releases + run: | + echo ${{ secrets.SINGING_SECRET_KEY_RING_FILE_CONTENTS }} | base64 --decode > secring.pgp + - name: Publish to Maven Central + if: startsWith(github.ref, 'refs/tags/') # Only for releases + env: + SIGNING_ENABLED: true + SIGNING_KEY_ID: ${{ secrets.SIGNING_KEY_ID }} + SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }} + OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }} + OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} + run: ./gradlew publishAllPublicationsToSonatypeRepository diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5b27f24 --- /dev/null +++ b/.gitignore @@ -0,0 +1,26 @@ +**/.DS_Store +**/Thumbs.db +.DS_Store +/.gradle/ +/.idea/.name +/.idea/artifacts/ +/.idea/assetWizardSettings.xml +/.idea/compiler.xml +/.idea/deploymentTargetDropDown.xml +/.idea/gradle.xml +/.idea/jarRepositories.xml +/.idea/kotlinScripting.xml +/.idea/kotlinc.xml +/.idea/libraries/ +/.idea/misc.xml +/.idea/modules.xml +/.idea/modules/ +/.idea/runConfigurations.xml +/.idea/shelf/ +/.idea/sonarlint/ +/.idea/uiDesigner.xml +/.idea/vcs.xml +/.idea/workspace.xml +/.idea/xmpcore.iml +/build/ +/local.properties diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml new file mode 100644 index 0000000..8d78c13 --- /dev/null +++ b/.idea/codeStyles/Project.xml @@ -0,0 +1,20 @@ + + + + \ No newline at end of file diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 0000000..79ee123 --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/detekt.xml b/.idea/detekt.xml new file mode 100644 index 0000000..5ac0d84 --- /dev/null +++ b/.idea/detekt.xml @@ -0,0 +1,21 @@ + + + + + + + + true + true + detekt.yml + + \ No newline at end of file diff --git a/.idea/externalDependencies.xml b/.idea/externalDependencies.xml new file mode 100644 index 0000000..6545923 --- /dev/null +++ b/.idea/externalDependencies.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..35642cc --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,1581 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/runConfigurations/Publish_to_Maven_local.xml b/.idea/runConfigurations/Publish_to_Maven_local.xml new file mode 100644 index 0000000..8ebb442 --- /dev/null +++ b/.idea/runConfigurations/Publish_to_Maven_local.xml @@ -0,0 +1,24 @@ + + + + + + + true + true + false + false + + + \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..6bad5ff --- /dev/null +++ b/README.md @@ -0,0 +1,66 @@ +# XMP Core for Kotlin Multiplatform + +[![Kotlin](https://img.shields.io/badge/kotlin-1.8.20-blue.svg?logo=kotlin)](httpw://kotlinlang.org) +![JVM](https://img.shields.io/badge/-JVM-gray.svg?style=flat) +![Android](https://img.shields.io/badge/-Android-gray.svg?style=flat) +![macOS](https://img.shields.io/badge/-macOS-gray.svg?style=flat) +![iOS](https://img.shields.io/badge/-iOS-gray.svg?style=flat) +[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=xmpcore&metric=coverage)](https://sonarcloud.io/summary/new_code?id=xmpcore) +[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.ashampoo/xmpcore/badge.svg)](https://maven-badges.herokuapp.com/maven-central/com.ashampoo/xmpcore) + +This library is a port of Adobe's XMP SDK to Kotlin Multiplatform. + +It's part of [Ashampoo Photos](https://ashampoo.com/photos). + +## Installation + +``` +implementation("com.ashampoo:xmpcore:0.1.0") +``` + +## How to use + +The library has been designed as a drop-in replacement for users who previously +employed XMP Core Java. Therefore, all the documentation applicable to the +Java SDK also pertains to this library. +However, please note that we have made the decision to remove the functionality for reading +from and writing to ByteArray and InputStreams, as we believe it is unnecessary. + +### Sample code + +``` +val originalXmp: String = "... your XMP ..." + +val xmpMeta: XMPMeta = XMPMetaFactory.parseFromString(originalXmp) + +val xmpSerializeOptions = + SerializeOptions() + .setOmitXmpMetaElement(false) + .setOmitPacketWrapper(false) + .setUseCompactFormat(true) + .setSort(true) + +val newXmp = XMPMetaFactory.serializeToString(xmpMeta, xmpSerializeOptions) +``` + +You find more samples in the unit tests. + +### Migration hint + +If you have previously utilized the official XMP Core Java library available on +Maven Central, please make sure to update your imports from `com.adobe.internal.xmp` +to `com.ashampoo.xmp`. + +## Acknowledgements + +* JetBrains for making [Kotlin](https://kotlinlang.org). +* Adobe for making the XMP Core Java SDK. +* Paul de Vrieze for making [XmlUtil](https://github.com/pdvrieze/xmlutil) + +## License + +The same [BSD license](original_source/original_license.txt) applies to this project as to Adobe's open source XMP SDK, +from which it is derived. + +Note: The original license page went offline, but you can still find it on +[archive.org](https://web.archive.org/web/20210616112605/https://www.adobe.com/devnet/xmp/library/eula-xmp-library-java.html). diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 0000000..e2be98e --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,423 @@ +import org.jetbrains.kotlin.gradle.plugin.mpp.NativeBuildType +import org.jetbrains.kotlin.gradle.plugin.mpp.apple.XCFramework + +plugins { + kotlin("multiplatform") version "1.8.20" + id("com.android.library") version "7.4.2" + id("maven-publish") + id("signing") + id("io.gitlab.arturbosch.detekt") version "1.22.0" + id("org.sonarqube") version "4.0.0.2929" + id("org.jetbrains.kotlinx.kover") version "0.6.1" + id("com.asarkar.gradle.build-time-tracker") version "4.3.0" + id("me.qoomon.git-versioning") version "6.4.1" + id("com.goncalossilva.resources") version "0.3.2" +} + +repositories { + google() + mavenCentral() +} + +val productName = "Ashampoo XMP Core" + +val ktorVersion: String = "2.3.2" +val xmlUtilVersion: String = "0.86.1" + +description = productName +group = "com.ashampoo" +version = "0.0.0" + +gitVersioning.apply { + + refs { + /* Main branch contains the current dev version */ + branch("main") { + version = "\${commit.short}" + } + /* Release / tags have real version numbers */ + tag("v(?.*)") { + version = "\${ref.version}" + } + } + + /* Fallback if branch was not found (for feature branches) */ + rev { + version = "\${commit.short}" + } +} + +apply(plugin = "io.gitlab.arturbosch.detekt") +apply(plugin = "org.sonarqube") +apply(plugin = "kover") + +buildTimeTracker { + sortBy.set(com.asarkar.gradle.buildtimetracker.Sort.DESC) +} + +sonar { + properties { + + property("sonar.projectKey", "xmpcore") + property("sonar.projectName", productName) + property("sonar.organization", "realashampoo") + property("sonar.host.url", "https://sonarcloud.io") + + property( + "sonar.sources", + listOf( + "./src/commonMain/kotlin", + "./src/posixMain/kotlin" + ) + ) + property( + "sonar.tests", + listOf( + "./src/commonTest/kotlin" + ) + ) + + /* Include Android Lint */ + property("sonar.android.lint.report", "${project.buildDir}/reports/lint-results.xml") + + /* Include Detekt issues */ + val detektPath = "${project.buildDir}/reports/detekt/detekt.xml" + println("Detekt report: $detektPath") + property("sonar.kotlin.detekt.reportPaths", detektPath) + + /* Include Kover code coverage */ + val koverPath = "${project.buildDir}/reports/kover/xml/report.xml" + println("Kover report: $koverPath") + property("sonar.coverage.jacoco.xmlReportPaths", koverPath) + } +} + +detekt { + source = files("src", "build.gradle.kts") + allRules = true + config = files("detekt.yml") + parallel = true + ignoreFailures = true + autoCorrect = true +} + +kover { +} + +koverMerged { + xmlReport { + } +} + +dependencies { + detektPlugins("io.gitlab.arturbosch.detekt:detekt-formatting:1.22.0") +} + +kotlin { + + android { + + compilations.all { + kotlinOptions { + jvmTarget = "11" + } + } + + publishLibraryVariants("release") + } + + mingwX64("win") { + binaries { + executable( + buildTypes = setOf(NativeBuildType.RELEASE) + ) + } + } + + jvm { + + java { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + } + + @Suppress("UnusedPrivateMember") // False positive + val commonMain by sourceSets.getting { + + dependencies { + + /* Needed for Charset class. */ + /* Defined as api() to prevent problems when used from a pure-java project. */ + api("io.ktor:ktor-io:$ktorVersion") + + /* Needed to parse XML and create a DOM Document */ + api("io.github.pdvrieze.xmlutil:core:$xmlUtilVersion") + api("io.github.pdvrieze.xmlutil:serialization:$xmlUtilVersion") + } + } + + @Suppress("UnusedPrivateMember", "UNUSED_VARIABLE") // False positive + val commonTest by sourceSets.getting { + dependencies { + + /* Kotlin Test */ + implementation(kotlin("test")) + + /* Multiplatform test resources */ + implementation("com.goncalossilva:resources:0.3.2") + + /* Multiplatform file access */ + implementation("org.jetbrains.kotlinx:kotlinx-io-core:0.2.0") + } + } + + @Suppress("UnusedPrivateMember", "UNUSED_VARIABLE") // False positive + val jvmTest by sourceSets.getting { + dependencies { + implementation(kotlin("test-junit")) + } + } + + val xcf = XCFramework() + + listOf( + /* App Store */ + iosArm64(), + /* Apple Silicon iOS Simulator */ + iosSimulatorArm64(), + /* macOS Devices */ + macosX64(), + macosArm64() + ).forEach { + + it.binaries.executable( + buildTypes = setOf(NativeBuildType.RELEASE) + ) { + baseName = "xmpcore" + } + + it.binaries.framework( + buildTypes = setOf(NativeBuildType.RELEASE) + ) { + baseName = "xmpcore" + /* Part of the XCFramework */ + xcf.add(this) + } + } + + // See https://youtrack.jetbrains.com/issue/KT-55751 + val myAttribute = Attribute.of("KT-55751", String::class.java) + + // replace releaseFrameworkIosFat by the name of the first configuration that conflicts + configurations.named("releaseFrameworkIosFat").configure { + attributes { + // put a unique attribute + attribute(myAttribute, "release-all") + } + } + + // replace releaseFrameworkOsxFat by the name of the first configuration that conflicts + configurations.named("releaseFrameworkOsxFat").configure { + attributes { + // put a unique attribute + attribute(myAttribute, "release-all") + } + } + + val jvmMain by sourceSets.getting + + @Suppress("UnusedPrivateMember", "UNUSED_VARIABLE") // False positive + val androidMain by sourceSets.getting { + dependsOn(jvmMain) + } + + val posixMain by sourceSets.creating { + dependsOn(commonMain) + } + + @Suppress("UnusedPrivateMember", "UNUSED_VARIABLE") // False positive + val winMain by sourceSets.getting { + dependsOn(posixMain) + } + + val iosArm64Main by sourceSets.getting + val iosSimulatorArm64Main by sourceSets.getting + val macosX64Main by sourceSets.getting + val macosArm64Main by sourceSets.getting + + @Suppress("UnusedPrivateMember", "UNUSED_VARIABLE") // False positive + val appleMain by sourceSets.creating { + + dependsOn(commonMain) + dependsOn(posixMain) + + iosArm64Main.dependsOn(this) + iosSimulatorArm64Main.dependsOn(this) + macosX64Main.dependsOn(this) + macosArm64Main.dependsOn(this) + } +} + +// region Writing version.txt for GitHub Actions +val writeVersion = tasks.register("writeVersion") { + doLast { + File("build/version.txt").writeText(project.version.toString()) + } +} + +tasks.getByPath("build").finalizedBy(writeVersion) +// endregion + +// region Android setup +android { + + namespace = "com.ashampoo.xmpcore" + + compileSdk = 33 + + sourceSets["main"].res.srcDirs("src/commonMain/resources") + + defaultConfig { + minSdk = 23 + } + + compileOptions { + sourceCompatibility = JavaVersion.toVersion(11) + targetCompatibility = JavaVersion.toVersion(11) + } + + publishing { + singleVariant("release") { + withSourcesJar() + withJavadocJar() + } + } +} +// endregion + +// region Maven publish + +ext["signing.keyId"] = System.getenv("SIGNING_KEY_ID") +ext["signing.password"] = System.getenv("SIGNING_PASSWORD") +ext["signing.secretKeyRingFile"] = "secring.pgp" +ext["ossrhUsername"] = System.getenv("OSSRH_USERNAME") +ext["ossrhPassword"] = System.getenv("OSSRH_PASSWORD") + +val javadocJar by tasks.registering(Jar::class) { + archiveClassifier.set("javadoc") +} + +val signingEnabled: Boolean = System.getenv("SIGNING_ENABLED")?.toBoolean() ?: false + +afterEvaluate { + + if (signingEnabled) { + + /* + * Explicitly configure that signing comes before publishing. + * Otherwise the task execution of "publishAllPublicationsToSonatypeRepository" will fail. + */ + + val signJvmPublication by tasks.getting + val signAndroidReleasePublication by tasks.getting + val signIosArm64Publication by tasks.getting + val signIosSimulatorArm64Publication by tasks.getting + val signMacosArm64Publication by tasks.getting + val signMacosX64Publication by tasks.getting + val signWinPublication by tasks.getting + val signKotlinMultiplatformPublication by tasks.getting + + val publishJvmPublicationToSonatypeRepository by tasks.getting + val publishAndroidReleasePublicationToSonatypeRepository by tasks.getting + val publishIosArm64PublicationToSonatypeRepository by tasks.getting + val publishIosSimulatorArm64PublicationToSonatypeRepository by tasks.getting + val publishMacosArm64PublicationToSonatypeRepository by tasks.getting + val publishMacosX64PublicationToSonatypeRepository by tasks.getting + val publishWinPublicationToSonatypeRepository by tasks.getting + val publishKotlinMultiplatformPublicationToSonatypeRepository by tasks.getting + val publishAllPublicationsToSonatypeRepository by tasks.getting + + val signTasks = listOf( + signJvmPublication, signAndroidReleasePublication, + signIosArm64Publication, signIosSimulatorArm64Publication, + signMacosArm64Publication, signMacosX64Publication, + signWinPublication, signKotlinMultiplatformPublication + ) + + val publishTasks = listOf( + publishJvmPublicationToSonatypeRepository, + publishAndroidReleasePublicationToSonatypeRepository, + publishIosArm64PublicationToSonatypeRepository, + publishIosSimulatorArm64PublicationToSonatypeRepository, + publishMacosArm64PublicationToSonatypeRepository, + publishMacosX64PublicationToSonatypeRepository, + publishWinPublicationToSonatypeRepository, + publishKotlinMultiplatformPublicationToSonatypeRepository, + publishAllPublicationsToSonatypeRepository + ) + + /* Each publish task depenends on every sign task. */ + for (publishTask in publishTasks) + for (signTask in signTasks) + publishTask.dependsOn(signTask) + } +} + +fun getExtraString(name: String) = ext[name]?.toString() + +publishing { + publications { + + // Configure maven central repository + repositories { + maven { + name = "sonatype" + setUrl("https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/") + credentials { + username = getExtraString("ossrhUsername") + password = getExtraString("ossrhPassword") + } + } + } + + publications.withType { + + artifact(javadocJar.get()) + + pom { + + name.set(productName) + description.set("XMP Core for Kotlin Multiplatform") + url.set("https://github.com/Ashampoo/xmpcore") + + licenses { + license { + name.set("The BSD License") + url.set("http://www.adobe.com/devnet/xmp/library/eula-xmp-library-java.html") + } + } + + developers { + developer { + name.set("Ashampoo GmbH & Co. KG") + url.set("https://www.ashampoo.com/") + } + } + + scm { + connection.set("https://github.com/Ashampoo/xmpcore.git") + url.set("https://github.com/Ashampoo/xmpcore") + } + } + } + + if (signingEnabled) { + + signing { + sign(publishing.publications) + } + } + } +} +// endregion diff --git a/detekt.yml b/detekt.yml new file mode 100644 index 0000000..ed51aef --- /dev/null +++ b/detekt.yml @@ -0,0 +1,931 @@ +# This file is based on the default rules and modified +# https://github.com/detekt/detekt/blob/main/detekt-core/src/main/resources/default-detekt-config.yml +# https://github.com/detekt/detekt/blob/main/detekt-formatting/src/main/resources/config/config.yml + +build: + maxIssues: 0 + excludeCorrectable: false + weights: + # complexity: 2 + # LongParameterList: 1 + # style: 1 + # comments: 1 + +config: + validation: true + warningsAsErrors: false + checkExhaustiveness: true + excludes: '' + +processors: + active: true + exclude: + - 'DetektProgressListener' + # - 'KtFileCountProcessor' + # - 'PackageCountProcessor' + # - 'ClassCountProcessor' + # - 'FunctionCountProcessor' + # - 'PropertyCountProcessor' + # - 'ProjectComplexityProcessor' + # - 'ProjectCognitiveComplexityProcessor' + # - 'ProjectLLOCProcessor' + # - 'ProjectCLOCProcessor' + # - 'ProjectLOCProcessor' + # - 'ProjectSLOCProcessor' + # - 'LicenseHeaderLoaderExtension' + +console-reports: + active: true + exclude: + - 'ProjectStatisticsReport' + - 'ComplexityReport' + - 'NotificationReport' + - 'FindingsReport' + - 'FileBasedFindingsReport' + # - 'LiteFindingsReport' + +output-reports: + active: true + exclude: + # - 'TxtOutputReport' + # - 'XmlOutputReport' + # - 'HtmlOutputReport' + # - 'MdOutputReport' + # - 'SarifOutputReport' + +comments: + active: false + AbsentOrWrongFileLicense: + active: false + licenseTemplateFile: 'license.template' + licenseTemplateIsRegex: false + CommentOverPrivateFunction: + active: false # not our policy + CommentOverPrivateProperty: + active: false # not our policy + DeprecatedBlockTag: + active: true + EndOfSentenceFormat: + active: false # not important for us + endOfSentenceFormat: '([.?!][ \t\n\r\f<])|([.?!:]$)' + KDocReferencesNonPublicProperty: + active: false # not our policy + excludes: [ '**/commonTest/**', '**/jvmTest/**' ] + OutdatedDocumentation: + active: true + matchTypeParameters: true + matchDeclarationsOrder: true + allowParamOnConstructorProperties: false + UndocumentedPublicClass: + active: false # not our policy + excludes: [ '**/commonTest/**', '**/jvmTest/**' ] + searchInNestedClass: true + searchInInnerClass: true + searchInInnerObject: true + searchInInnerInterface: true + searchInProtectedClass: false + UndocumentedPublicFunction: + active: false # not our policy + excludes: [ '**/commonTest/**', '**/jvmTest/**' ] + searchProtectedFunction: false + UndocumentedPublicProperty: + active: false # not our policy + excludes: [ '**/commonTest/**', '**/jvmTest/**' ] + searchProtectedProperty: false + +complexity: + active: true + CognitiveComplexMethod: + active: false # already checked by SonarQube + threshold: 15 + ComplexCondition: + active: true + threshold: 4 + ComplexInterface: + active: true + threshold: 10 + includeStaticDeclarations: false + includePrivateDeclarations: false + ignoreOverloaded: false + CyclomaticComplexMethod: + active: false # already checked by SonarQube + threshold: 15 + ignoreSingleWhenExpression: false + ignoreSimpleWhenEntries: false + ignoreNestingFunctions: false + nestingFunctions: + - 'also' + - 'apply' + - 'forEach' + - 'isNotNull' + - 'ifNull' + - 'let' + - 'run' + - 'use' + - 'with' + LabeledExpression: + active: false # hard to replace + ignoredLabels: [ ] + LargeClass: + active: true + threshold: 600 + LongMethod: + active: true + threshold: 100 # the default of 60 is quite short for Jetpack Compose + LongParameterList: + active: false # already checked by SonarQube + functionThreshold: 7 # 7 is SonarQube default + constructorThreshold: 7 + ignoreDefaultParameters: false + ignoreDataClasses: true + ignoreAnnotatedParameter: [ ] + MethodOverloading: + active: true + threshold: 6 + NamedArguments: + active: true + threshold: 3 + ignoreArgumentsMatchingNames: false + NestedBlockDepth: + active: true + threshold: 4 + NestedScopeFunctions: + active: true + threshold: 1 + functions: + - 'kotlin.apply' + - 'kotlin.run' + - 'kotlin.with' + - 'kotlin.let' + - 'kotlin.also' + ReplaceSafeCallChainWithRun: + active: true + StringLiteralDuplication: + active: true + excludes: [ '**/commonTest/**', '**/jvmTest/**' ] + threshold: 3 + ignoreAnnotation: true + excludeStringsWithLessThan5Characters: true + ignoreStringsRegex: '$^' + TooManyFunctions: + active: true + excludes: [ '**/commonTest/**', '**/jvmTest/**' ] + thresholdInFiles: 11 + thresholdInClasses: 11 + thresholdInInterfaces: 11 + thresholdInObjects: 11 + thresholdInEnums: 11 + ignoreDeprecated: false + ignorePrivate: false + ignoreOverridden: false + +coroutines: + active: true + GlobalCoroutineUsage: + active: true + InjectDispatcher: + active: true + dispatcherNames: + - 'IO' + - 'Default' + - 'Unconfined' + RedundantSuspendModifier: + active: true + SleepInsteadOfDelay: + active: true + SuspendFunWithCoroutineScopeReceiver: + active: true + SuspendFunWithFlowReturnType: + active: true + +empty-blocks: + active: true + EmptyCatchBlock: + active: true + allowedExceptionNameRegex: '_|(ignore|expected).*' + EmptyClassBlock: + active: true + EmptyDefaultConstructor: + active: true + EmptyDoWhileBlock: + active: true + EmptyElseBlock: + active: true + EmptyFinallyBlock: + active: true + EmptyForBlock: + active: true + EmptyFunctionBlock: + active: true + ignoreOverridden: false + EmptyIfBlock: + active: true + EmptyInitBlock: + active: true + EmptyKtFile: + active: true + EmptySecondaryConstructor: + active: true + EmptyTryBlock: + active: true + EmptyWhenBlock: + active: true + EmptyWhileBlock: + active: true + +exceptions: + active: true + ExceptionRaisedInUnexpectedLocation: + active: true + methodNames: + - 'equals' + - 'finalize' + - 'hashCode' + - 'toString' + InstanceOfCheckForException: + active: true + excludes: [ '**/commonTest/**', '**/jvmTest/**' ] + NotImplementedDeclaration: + active: true + ObjectExtendsThrowable: + active: true + PrintStackTrace: + active: true + RethrowCaughtException: + active: true + ReturnFromFinally: + active: true + ignoreLabeled: false + SwallowedException: + active: true + ignoredExceptionTypes: + - 'InterruptedException' + - 'MalformedURLException' + - 'NumberFormatException' + - 'ParseException' + allowedExceptionNameRegex: '_|(ignore|expected).*' + ThrowingExceptionFromFinally: + active: true + ThrowingExceptionInMain: + active: true + ThrowingExceptionsWithoutMessageOrCause: + active: true + excludes: [ '**/commonTest/**', '**/jvmTest/**' ] + exceptions: + - 'ArrayIndexOutOfBoundsException' + - 'Exception' + - 'IllegalArgumentException' + - 'IllegalMonitorStateException' + - 'IllegalStateException' + - 'IndexOutOfBoundsException' + - 'NullPointerException' + - 'RuntimeException' + - 'Throwable' + ThrowingNewInstanceOfSameException: + active: true + TooGenericExceptionCaught: + active: false # Sometimes this is just what we want to do. + excludes: [ '**/commonTest/**', '**/jvmTest/**' ] + exceptionNames: + - 'ArrayIndexOutOfBoundsException' + - 'Error' + - 'Exception' + - 'IllegalMonitorStateException' + - 'IndexOutOfBoundsException' + - 'NullPointerException' + - 'RuntimeException' + - 'Throwable' + allowedExceptionNameRegex: '_|(ignore|expected).*' + TooGenericExceptionThrown: + active: true + exceptionNames: + - 'Error' + - 'Exception' + - 'RuntimeException' + - 'Throwable' + +naming: + active: true + BooleanPropertyNaming: + active: true + allowedPattern: '^(is|has|are)' + ignoreOverridden: true + ClassNaming: + active: true + classPattern: '[A-Z][a-zA-Z0-9]*' + ConstructorParameterNaming: + active: true + parameterPattern: '[a-z][A-Za-z0-9]*' + privateParameterPattern: '[a-z][A-Za-z0-9]*' + excludeClassPattern: '$^' + ignoreOverridden: true + EnumNaming: + active: true + enumEntryPattern: '[A-Z][_a-zA-Z0-9]*' + ForbiddenClassName: + active: true + forbiddenName: [ ] + FunctionMaxLength: + active: false # not useful + maximumFunctionNameLength: 30 + FunctionMinLength: + active: false # not useful + minimumFunctionNameLength: 3 + FunctionNaming: + active: true + excludes: [ '**/commonTest/**', '**/jvmTest/**' ] + functionPattern: '[a-z][a-zA-Z0-9]*' + excludeClassPattern: '$^' + ignoreOverridden: true + ignoreAnnotated: [ 'Composable' ] + FunctionParameterNaming: + active: true + parameterPattern: '[a-z][A-Za-z0-9]*' + excludeClassPattern: '$^' + ignoreOverridden: true + InvalidPackageDeclaration: + active: true + rootPackage: '' + requireRootInDeclaration: false + LambdaParameterNaming: + active: true + parameterPattern: '[a-z][A-Za-z0-9]*|_' + MatchingDeclarationName: + active: true + mustBeFirst: true + MemberNameEqualsClassName: + active: true + ignoreOverridden: true + NoNameShadowing: + active: true + NonBooleanPropertyPrefixedWithIs: + active: true + ObjectPropertyNaming: + active: true + constantPattern: '[A-Za-z][_A-Za-z0-9]*' + propertyPattern: '[A-Za-z][_A-Za-z0-9]*' + privatePropertyPattern: '(_)?[A-Za-z][_A-Za-z0-9]*' + PackageNaming: + active: true + packagePattern: '[a-z]+(\.[a-z][A-Za-z0-9]*)*' + TopLevelPropertyNaming: + active: true + constantPattern: '[A-Z][_A-Z0-9]*' + propertyPattern: '[A-Za-z][_A-Za-z0-9]*' + privatePropertyPattern: '_?[A-Za-z][_A-Za-z0-9]*' + VariableMaxLength: + active: true + maximumVariableNameLength: 64 + VariableMinLength: + active: true + minimumVariableNameLength: 1 + VariableNaming: + active: true + variablePattern: '[a-z][A-Za-z0-9]*' + privateVariablePattern: '(_)?[a-z][A-Za-z0-9]*' + excludeClassPattern: '$^' + ignoreOverridden: true + +performance: + active: true + ArrayPrimitive: + active: true + CouldBeSequence: + active: true + threshold: 3 + ForEachOnRange: + active: true + excludes: [ '**/commonTest/**', '**/jvmTest/**' ] + SpreadOperator: + active: true + excludes: [ '**/commonTest/**', '**/jvmTest/**' ] + UnnecessaryPartOfBinaryExpression: + active: true + UnnecessaryTemporaryInstantiation: + active: true + +potential-bugs: + active: true + AvoidReferentialEquality: + active: true + forbiddenTypePatterns: + - 'kotlin.String' + CastToNullableType: + active: true + Deprecation: + active: true + DontDowncastCollectionTypes: + active: true + DoubleMutabilityForCollection: + active: true + mutableTypes: + - 'kotlin.collections.MutableList' + - 'kotlin.collections.MutableMap' + - 'kotlin.collections.MutableSet' + - 'java.util.ArrayList' + - 'java.util.LinkedHashSet' + - 'java.util.HashSet' + - 'java.util.LinkedHashMap' + - 'java.util.HashMap' + ElseCaseInsteadOfExhaustiveWhen: + active: true + EqualsAlwaysReturnsTrueOrFalse: + active: true + EqualsWithHashCodeExist: + active: true + ExitOutsideMain: + active: true + ExplicitGarbageCollectionCall: + active: true + HasPlatformType: + active: true + IgnoredReturnValue: + active: true + restrictToConfig: true + returnValueAnnotations: + - '*.CheckResult' + - '*.CheckReturnValue' + ignoreReturnValueAnnotations: + - '*.CanIgnoreReturnValue' + returnValueTypes: + - 'kotlin.sequences.Sequence' + - 'kotlinx.coroutines.flow.*Flow' + - 'java.util.stream.*Stream' + ignoreFunctionCall: [ ] + ImplicitDefaultLocale: + active: true + ImplicitUnitReturnType: + active: true + allowExplicitReturnType: true + InvalidRange: + active: true + IteratorHasNextCallsNextMethod: + active: true + IteratorNotThrowingNoSuchElementException: + active: true + LateinitUsage: + active: true + excludes: [ '**/commonTest/**', '**/jvmTest/**' ] + ignoreOnClassesPattern: '' + MapGetWithNotNullAssertionOperator: + active: true + MissingPackageDeclaration: + active: true + excludes: [ '**/*.kts', '**/main.kt' ] + NullCheckOnMutableProperty: + active: true + NullableToStringCall: + active: true + UnconditionalJumpStatementInLoop: + active: true + UnnecessaryNotNullCheck: + active: true + UnnecessaryNotNullOperator: + active: true + UnnecessarySafeCall: + active: true + UnreachableCatchBlock: + active: true + UnreachableCode: + active: true + UnsafeCallOnNullableType: + active: true + excludes: [ '**/commonTest/**', '**/jvmTest/**' ] + UnsafeCast: + active: true + UnusedUnaryOperator: + active: true + UselessPostfixExpression: + active: true + WrongEqualsTypeParameter: + active: true + +style: + active: true + AlsoCouldBeApply: + active: true + CanBeNonNullable: + active: true + CascadingCallWrapping: + active: true + includeElvis: true + ClassOrdering: + active: true + CollapsibleIfStatements: + active: true + DataClassContainsFunctions: + active: false # allowed, be careful + conversionFunctionPrefix: + - 'to' + DataClassShouldBeImmutable: + active: true + DestructuringDeclarationWithTooManyEntries: + active: true + maxDestructuringEntries: 3 + EqualsNullCall: + active: true + EqualsOnSignatureLine: + active: true + ExplicitCollectionElementAccessMethod: + active: true + ExplicitItLambdaParameter: + active: true + ExpressionBodySyntax: + active: true + includeLineWrapping: false + ForbiddenComment: + active: true + values: + - 'FIXME:' + - 'STOPSHIP:' + - 'TODO:' + allowedPatterns: '' + customMessage: '' + ForbiddenImport: + active: true + imports: [ ] + forbiddenPatterns: '' + ForbiddenMethodCall: + active: true + methods: + - reason: 'print does not allow you to configure the output stream. Use a logger instead.' + value: 'kotlin.io.print' + - reason: 'println does not allow you to configure the output stream. Use a logger instead.' + value: 'kotlin.io.println' + ForbiddenSuppress: + active: true + rules: [ ] + ForbiddenVoid: + active: true + ignoreOverridden: false + ignoreUsageInGenerics: false + FunctionOnlyReturningConstant: + active: true + ignoreOverridableFunction: true + ignoreActualFunction: true + excludedFunctions: [ ] + LoopWithTooManyJumpStatements: + active: true + maxJumpCount: 1 + MagicNumber: + active: true + excludes: [ '**/commonTest/**', '**/jvmTest/**', '**/*.kts' ] + ignoreNumbers: + - '-1' + - '0' + - '1' + - '2' + ignoreHashCodeFunction: true + ignorePropertyDeclaration: false + ignoreLocalVariableDeclaration: false + ignoreConstantDeclaration: true + ignoreCompanionObjectPropertyDeclaration: true + ignoreAnnotation: false + ignoreNamedArgument: true + ignoreEnums: false + ignoreRanges: false + ignoreExtensionFunctions: true + MandatoryBracesIfStatements: + active: false # not our policy + MandatoryBracesLoops: + active: false # not our policy + MaxChainedCallsOnSameLine: + active: true + maxChainedCalls: 5 + MaxLineLength: + active: true + maxLineLength: 110 + excludePackageStatements: true + excludeImportStatements: true + excludeCommentStatements: false + excludeRawStrings: true + MayBeConst: + active: true + ModifierOrder: + active: true + MultilineLambdaItParameter: + active: true + MultilineRawStringIndentation: + active: true + indentSize: 4 + NestedClassesVisibility: + active: true + NewLineAtEndOfFile: + active: true + NoTabs: + active: true + NullableBooleanCheck: + active: true + ObjectLiteralToLambda: + active: true + OptionalAbstractKeyword: + active: true + OptionalUnit: + active: false # It's recommended to specify explicitly public & protected declaration types + OptionalWhenBraces: + active: false # should be decided by the dev if it's needed on multiline expressions + PreferToOverPairSyntax: + active: true + ProtectedMemberInFinalClass: + active: true + RedundantExplicitType: + active: true + RedundantHigherOrderMapUsage: + active: true + RedundantVisibilityModifierRule: + active: true + ReturnCount: + active: false # not our policy since we don't like nesting + max: 2 + excludedFunctions: + - 'equals' + excludeLabeled: false + excludeReturnFromLambda: true + excludeGuardClauses: false + SafeCast: + active: true + SerialVersionUIDInSerializableClass: + active: true + SpacingBetweenPackageAndImports: + active: true + ThrowsCount: + active: true + max: 2 + excludeGuardClauses: false + TrailingWhitespace: + active: true + TrimMultilineRawString: + active: true + UnderscoresInNumericLiterals: + active: true + acceptableLength: 4 + allowNonStandardGrouping: false + UnnecessaryAbstractClass: + active: true + UnnecessaryAnnotationUseSiteTarget: + active: true + UnnecessaryApply: + active: true + UnnecessaryBackticks: + active: true + UnnecessaryFilter: + active: true + UnnecessaryInheritance: + active: true + UnnecessaryInnerClass: + active: true + UnnecessaryLet: + active: true + UnnecessaryParentheses: + active: true + allowForUnclearPrecedence: false + UntilInsteadOfRangeTo: + active: true + UnusedImports: + active: true + UnusedPrivateClass: + active: true + UnusedPrivateMember: + active: true + allowedNames: '(_|ignored|expected|serialVersionUID)' + UseAnyOrNoneInsteadOfFind: + active: true + UseArrayLiteralsInAnnotations: + active: true + UseCheckNotNull: + active: true + UseCheckOrError: + active: true + UseDataClass: + active: true + allowVars: false + UseEmptyCounterpart: + active: true + UseIfEmptyOrIfBlank: + active: true + UseIfInsteadOfWhen: + active: true + UseIsNullOrEmpty: + active: true + UseOrEmpty: + active: true + UseRequire: + active: true + UseRequireNotNull: + active: true + UseSumOfInsteadOfFlatMapSize: + active: true + UselessCallOnNotNull: + active: true + UtilityClassWithPublicConstructor: + active: true + VarCouldBeVal: + active: true + ignoreLateinitVar: false + WildcardImport: + active: true + excludeImports: + - 'java.util.*' + +formatting: + active: true + android: false + autoCorrect: true + AnnotationOnSeparateLine: + active: true + autoCorrect: true + AnnotationSpacing: + active: true + autoCorrect: true + ArgumentListWrapping: + active: false # strange results sometimes + autoCorrect: true + indentSize: 4 + maxLineLength: 110 + BlockCommentInitialStarAlignment: + active: true + autoCorrect: true + ChainWrapping: + active: true + autoCorrect: true + CommentSpacing: + active: true + autoCorrect: true + CommentWrapping: + active: true + autoCorrect: true + indentSize: 4 + DiscouragedCommentLocation: + active: true + autoCorrect: true + EnumEntryNameCase: + active: true + autoCorrect: true + Filename: + active: false # looks odd, not sure about this rule + FinalNewline: + active: true + autoCorrect: true + insertFinalNewLine: true + FunKeywordSpacing: + active: true + autoCorrect: true + FunctionReturnTypeSpacing: + active: true + autoCorrect: true + FunctionSignature: + active: false # has some false positives in Detekt 0.22 + autoCorrect: true + forceMultilineWhenParameterCountGreaterOrEqualThan: 3 + functionBodyExpressionWrapping: 'default' + maxLineLength: 80 + indentSize: 4 + FunctionStartOfBodySpacing: + active: true + autoCorrect: true + FunctionTypeReferenceSpacing: + active: true + autoCorrect: true + ImportOrdering: + active: true + autoCorrect: true + layout: '*,java.**,javax.**,kotlin.**,^' + Indentation: + active: true + autoCorrect: true + indentSize: 4 + KdocWrapping: + active: true + autoCorrect: true + indentSize: 4 + MaximumLineLength: + active: true + maxLineLength: 110 + ignoreBackTickedIdentifier: false + ModifierListSpacing: + active: true + autoCorrect: true + ModifierOrdering: + active: true + autoCorrect: true + MultiLineIfElse: + active: false # not our policy + autoCorrect: true + NoBlankLineBeforeRbrace: + active: false # bad style + autoCorrect: true + NoBlankLinesInChainedMethodCalls: + active: true + autoCorrect: true + NoConsecutiveBlankLines: + active: true + autoCorrect: true + NoEmptyClassBody: + active: true + autoCorrect: true + NoEmptyFirstLineInMethodBlock: + active: false # bad style + autoCorrect: true + NoLineBreakAfterElse: + active: true + autoCorrect: true + NoLineBreakBeforeAssignment: + active: true + autoCorrect: true + NoMultipleSpaces: + active: true + autoCorrect: true + NoSemicolons: + active: true + autoCorrect: true + NoTrailingSpaces: + active: true + autoCorrect: true + NoUnitReturn: + active: true + autoCorrect: true + NoUnusedImports: + active: true + autoCorrect: true + NoWildcardImports: + active: true + packagesToUseImportOnDemandProperty: 'java.util.*,kotlinx.android.synthetic.**' + NullableTypeSpacing: + active: true + autoCorrect: true + PackageName: + active: true + autoCorrect: true + ParameterListSpacing: + active: true + autoCorrect: true + ParameterListWrapping: + active: true + autoCorrect: true + maxLineLength: 110 + SpacingAroundAngleBrackets: + active: true + autoCorrect: true + SpacingAroundColon: + active: true + autoCorrect: true + SpacingAroundComma: + active: true + autoCorrect: true + SpacingAroundCurly: + active: true + autoCorrect: true + SpacingAroundDot: + active: true + autoCorrect: true + SpacingAroundDoubleColon: + active: true + autoCorrect: true + SpacingAroundKeyword: + active: true + autoCorrect: true + SpacingAroundOperators: + active: true + autoCorrect: true + SpacingAroundParens: + active: true + autoCorrect: true + SpacingAroundRangeOperator: + active: true + autoCorrect: true + SpacingAroundUnaryOperator: + active: true + autoCorrect: true + SpacingBetweenDeclarationsWithAnnotations: + active: true + autoCorrect: true + SpacingBetweenDeclarationsWithComments: + active: true + autoCorrect: true + SpacingBetweenFunctionNameAndOpeningParenthesis: + active: true + autoCorrect: true + StringTemplate: + active: true + autoCorrect: true + TrailingCommaOnCallSite: + active: false # looks ugly + autoCorrect: true + useTrailingCommaOnCallSite: true + TrailingCommaOnDeclarationSite: + active: false # looks ugly + autoCorrect: true + useTrailingCommaOnDeclarationSite: true + TypeArgumentListSpacing: + active: true + autoCorrect: true + TypeParameterListSpacing: + active: true + autoCorrect: true + UnnecessaryParenthesesBeforeTrailingLambda: + active: true + autoCorrect: true + Wrapping: + active: true + autoCorrect: true + indentSize: 4 diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..4831294 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,8 @@ +android.useAndroidX=true +kotlin.code.style=official +kotlin.mpp.androidSourceSetLayoutVersion=2 +kotlin.mpp.enableCInteropCommonization=true +kotlin.mpp.stability.nowarn=true +org.gradle.caching=true +org.gradle.jvmargs=-Xmx4g -Dkotlin.daemon.jvm.options\="-Xmx4g" +org.gradle.parallel=true diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..c1962a79e29d3e0ab67b14947c167a862655af9b GIT binary patch literal 62076 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 literal 0 HcmV?d00001 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..37aef8d --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip +networkTimeout=10000 +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100755 index 0000000..aeb74cb --- /dev/null +++ b/gradlew @@ -0,0 +1,245 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..93e3f59 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,92 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/original_source/XMPCoreJava-5.1.3.zip b/original_source/XMPCoreJava-5.1.3.zip new file mode 100644 index 0000000000000000000000000000000000000000..330641205a1ae09b4cbf78279b056bfa3a994eeb GIT binary patch literal 389753 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 z zB{K%=f-OUiJx=;ILc?0usx*93~4!5UFS6T~c2_2sOc>qdh z{zXtsTj591UuQX|nTbjz!``i(ai7j7h`#Ow$W5S4D8FTFi%1?*%akwPCnfJXxJeBY z?P`<#MqsljK+_LBApFBq#uG*v9YPxUU2K~ayn#a4^Yy$TFv$20cHR==7<6JTypKpP~utRTX?9rI|#W25yvh$GoX3KV>d1*9< z@Boot@|@}9^D^}kj5B{l+8k$@33lc)F6vu;2rdO#m?M*x)%O^j@fH zw5(>-OGg^Ohdk2M8pQ+!nt6c#CEY$ilrnflzV zMbi+#wSJxqhT-4VQ%p1u$r`bPv2l>L#KD&-{4sE?WPNSP=_##CT@T}x-0A>FO)HEa z>zBqN09v-yI8OIhVi9He(pdfGz1aHB=>p{vW`{>)JNWnzgEIIGH;=()mT&sJQ%r=c zqddZPtr7B5UE5SEcOLLkexy=Vq6bK`9{{yYtE-OrFztk4KAyLMSHH|)ZtM-K_m-v! z-~3Pl+WU3j4fDB|Y%Q3FEnjlNb>@#QxI>bvyxO8QhDVwngjBTeGE$X2qlNC*>QLjE z2#3qM8)`c(o*@>5ULZ+Dw}TTLIdzt6kB@G`F%f}-$D55+>F;3$EXpKNljl2eu_oTI zj-5QYk{@+w6)M5Pe0Yp0sjsQV)xY}7BAx6&V2IE^Myqmi;c?C$*1A1{jCE`Fiv#AM zCtJ8~Z4F!7_=W3X<_yL1oC}OwrdeGy4FoJyA>deOKfx-^oEKx2Y^*~>(}fcH=y3;r z5pA3jULJ|b@}F=Tczitb05xzt?U_SvtXI*jBeX{o zJ9baC&zQIBw`sh+;SPIJlMVW0D9qg$zy^p^G1IQ;VMz?9V?I8$qcve&PkJ7zZcttJ z`&wUB@e4*-4zWsK`n(4LX$TGW7%@CEKOSU?xC+jL&vzq;udMH`N}a7Y4tK6K&1yHMLi_1Z0kL z=}ye7&^PJ_ka7w~rB;I-r1Nd~&w$i6N>RqyRK{grbGNmmG{LhfEL8dR=aCq>Y(`7R zzgCVX4JIFY%F;E3tP5#xe$bD6Hq1|EWS@mzje-*oMbvmc#Fgo{H=k?Z)?geq(=>mP z6J%r~K$X7`*jv_w;=&^bJGj9&Gh{2`Tibme|1fN&u0XTdth!)y3XZm2pJ`MnI^E_o zc`p9g{_<@F#V>6S=+X$~yH(ET3$kVZAQo;hXc2w35qLg*t2_`WO=}O!=VJyJx@zLi ze5`-JpU%tY)6Q+gnD~KviuZ93C_j8SG9Aj*bY_tE_vbUuD1VeP{8dnru-Afz=2Tzp zrNhEU$Cbf6RuFdpuw5hek~}h0B#M=TQwh7o^b~*b!1@yXg*`NQ2K(+5V2K5guvyDg z9_ISZ_#oF(dDw9o>DwAhK;{Yi-Q0BKjZHKR1%Y8Zp8uO=&gZG(!1a4X+5LMDL*hS9 zdH=qHVfB|}_tSdU2g4%oIahmzn^l6*Wuw&O(%1IkB0>Ea;EdL)zTG$K2KzGGtJ96OYm+=z8Tl+9Jl}M_#DOE23}TnZTls%(`Ui>oPvwW`W*BD zOgNle10#-1i^+N8rY8d<;fH}`tr|##m_XSO&1rpD+Sm`Wc_jmcj1`N`uEmbMx0zm% zm>5LQKN{zX1a3@lKcsj}1n^X+yZS&-*)jSFLZ&^Z_8cJ^MXy;(eAd=|0L*~C??e-x zkXK$7Jic|0drKdDnJHpdH5(qfBZj`8mYs_wgt!8l_LX|6GQfh^zpjnaLGh>DO-!F9 zd09%wGA7*AmMPTB5y|Q`f%qioc4RY#AAjZ9qPPq6Bxf(q`+4+DNzolGo%=q>eLn(ByvoHvEuFJ?&7@;T{9MtgQr}TS zQBihE5Os&Gr`hz}Yy*fZdT^Z-d_X8Fmv9ohegJRD=J!+oeGYf=68ZuehAL0QbOGjy z&zAwD`zGgF7Z+1isn<8zo~0ont*rN;RU9^8O3ltNj>Glk zb&l>PDOWOb-wc^}kZe6%wqhrBJgFz|HWk5}eK-Hf&@-xu7a`SEyqZfTrJ7#Fv9L2i zJ4SmF@VJWpi0q_uo>5+g9Vl^bL+)Q||6~!*zo$!Qj4_2xIOSUnEVnbbi8Axkp|zgf z*)r{uz?(!|E3M7w`iPIDLnGnoOX{`k&QX^v-jnf(a2*N^gt?kz+K{Z$A|w%o?bC{N z#^auDl`IZ8_RFFa*j_oFEcx09;qwv3Nr-~DjSviqY)!d~=u009pJwOUpo7mEom{z~oyp5oFDz>|fbq;LgXIrEK0c5!4ahfSr}D6kW* ztB1|?7fYxiyCYK}x+bXLBs--+k2#@dr-KUH-^DI3nI)WZm1nvUWbnoScwQ8i>KV^kCy&Kr^T z!u+o8Lj*r+Wp!n@d*(2w9IR~1c1SS6_$^?(-g1I@&CSa(=Bq^nzE?149O6{?x;MLt zS^oR^2DV^M{nwt^e}2BneZQ9cKj+)O&bJ@dWb`jH1ynXnM|#@DrW_=m;koFFICw9l zV93bsXn(4&=7&XSMeG5gjE>C`Bo~l{_xwhgZ&{uPYjT(Hq)?&-=^<8b>)p9*WmnQh z4>rHm}NZoz`{Rwv865+_8fQGQGm|0wH1jD24Z zML$irz_u7he*y*0YWSXXvFn~!L&K%lmU|5!@>KGmMSl19O1U-x83l7To9oF_I^FW- ziqza_+&NXT39#fzHgf6j+G5)-H2#pbDb#K0W$ZhrxULo{fRLSO7VBIfRRa>z=Y8ih zNfB%j8|o=IfXsUxrkT|{)R`!CzfhqV$&-l^KGgPwKJAR_v3}XPxXdc8VqnS$44f!- ze~M*umzSI{i2_CH7(yBk-UBb1SvdH+gq9}KFz~9`2ze_3i$uD<*hnLjZYVqsLf8@~ zllUW+BzA(#wi*TbGGK|Q_E$19e~YRNsJdAK?W4{v5AJN~UXDu~tC2yK-WsOpGFMr5 zi0-Q2sL^-#blu3T;AKu97PI?1$yR4FAWKEf#B|4*lXIBH>20Y&-FQy*RMdz+&PC;) zDySx!%3u@>=1ydj8d@IK^)Gu#U`gd;+=@Q-36c0;vwCew5II#tR3>J=$x{J0GgejE)PA9)f_B4f4h#Ax^-1_p=+ z2;K3?N}paE*5QeM*Wg7P6dvU5XbJ={2z(2ikS)0gOZQ?aa!J}wQmr;Nx$hgt?l|1w zk=*9x-FxLlLe~I0e~K&YfnR`2a3YA~u;NbNjoUP?)l*MQk<78rqp5*1$viN{+l6En z!Y0C~+|;3OaUV2by#xr{Kp(-0w6q{J8R^@;AkBnq0OFga`s^Z}+afab15K;#4T^{2 zPl<9b8yq0PNa%|xj#KJ%15T2)c(60QoF*`dzVc=HsZxn zTCFn%`sBB+>SUs-o>E1gTh5ECB``#AgK(ll@uX;Bu2W}+JWUc=h^3tE81qNP1ms}3 zQl6r9B6+lYM;3;Duszz|hVuMq;AoHuRPa34cro+C-_5EYi)pOA)@*O6t+$dLceGcY zyP4fX?Km|oCkF&-$HXJ%lV;JRjKH~#WKO0 zE&CF!9ac{Y%B2*r6mzBd%R>2x?hlT$=uB11ZTV*H(}#U!I#%!%i~Qb3ba=v4bk`p<|a zsD04-7#UG7>8v|X{p7nABw zy!N)@D-AP7A=0*wf?AGM7lX{~sGp!!d2W4NN|^hM8heKL9B_2Jl_gMMK^~V@6l**n zxAb}-OxLQ>L_zZIis5uNUPpt7JZst(G`53Xeo*6`s&LagV7&8%V@`B>ph8kHq^k5M z*vo_Lh(>^*ML^1pm9{ASq5DXh|uJ2=^IT9|fdas%T+Hkm6JV@Vkc49$Gw0PgX4lv{YeWkiTk7+LlS! zjARmWX!X`!QUAzTr_f=g46^F1p=^}vTeD;cb~v!wrICJT@KNebRAxO7ZW8dVsj#D1 zb0orosvO+kpmusZ4Y66ooRIBSGpYHyTGAw0`)Ysq{&ek|r|KU6bnBQnzn8P0OTAUn zuMXn2Z^@S>$D@I4a~OBf&IO$;AlKzDhH4(F5AFTzH+hu}`BzJ*G`Cw0i#*(V+7BGX z;5aP^%DtpyNdKoc4_T)@4PRq=ve%qk0GRH7yKC}tplI#C!!*Z#YzI_!G_!R0KkhT{ z{&zdzSj?}9O{6Av?Psj%^Q=b2l1BzYOY`JPx=mo~DxR=WdarrmxYxFZ@ zf(5emY>%@*^ZtI=!Xk7^Xl-3G3lA3RE5>kV6xogw(`R7JHHrIp<@M6)P#{6ikqgdZ zlMHkBH|1d%kK}>%X0$A61V;|apMeHydaW=4w+_}$)0(PW1w6||N?R4KL$y`W;4j}X z>UbBpR`;khwlk1dQ=b;VqPGdOTCMxj1?q^|82GIQq+|3?mkQai_WV^3DU9^p-7Rs} zHO>Adhe#-xZ|wR77)baW1>XAgI@Xd01=bK&Uy6%Dc~!@}b;r8Ej#br7QLs}GEHP_e z4j$QB`G-b0zH0a%5qjy!jrLy=T7q^y&EHP~9ZPw}kY!aM34oNd|JMJ%N9gfl;a+_K zjJ5lc{eMJgNAc=^M(9jLijBV`^oh3I>34*-h-8iXJ3^cMa+BD2E?uQ-kZ8bCWk8a^ zrW#2GFkyYs?bN27|Bse}oxIlV}Hsukwu(aQQ8 z5m;$|BZ9S*e;|U_=f4nvF@F?Sf~UBo8}M8{G&M{RTFydCxlKG-%Z|okgao&v*W;_s zg=g8V?FMIAXupbEjeQiA5At_{&Wk1Wzq_IP-s%7^YrIG@xwRd?anuEwFJi~1JC>eM z!1zwkNuXQ7s+GMO1n}+h3qPpGYbwD47E&Ew6_Y0LKbqtY8GN*;9ag^VUv%ld#t(E! zQeJA`pHP{n_jFMwd0sP}>Jul+3@ccPsUZpMCXBczla)+=6!K_D&(=LjM3RGb%})b9 z4D)`t0f8s?*>){}6=TW7>j5+j&om>m-peZ@52k)zA)~1J4Kksdz0fzjSq1#x^0U}5 zw+YO5eop+(&;JGx<=akp~DLiX_uX9)wS9W}UOK7x#tZ`PYC4>GU z2y~9;or}IjLsC}99e!#L@o_PU7-|f#Zhv~bN631TiQc(C_`H$F=HY|Uy=v;e&T-k+ z*??_w$st!SQpgOCykX!ucikq{IEv}BWl94{*yJCHsBu9fb04`1)`AEUs4%E@dXU&l zzY+o`FFptAeVU9^2mNh?E)CB-Jw*^P-Z;%5G|DnGlilaRW?UQk%Yxh$!?L^G;|eVl z#(ngEvGxu@qITP|XxX-1waTk(+qR8W<|^B^ZQHhO+qUuQzdO!(Z|~cB_uPmXUt>0A z2o$MDLUTlkippL5S4v zgYb^wfpgTG9zU;2j{54904qe?pdjKAlEyz2wDMq3H%QFxH{v+Y$nkOM{?M3o&-4!P z(>p7=jmeXStO0XR{`AhGxFQm+F=9AOodgi&*OpFtsu+_b_SQu-HDN|+=dL8k(43M` z2@zhcN&p=cPGUCt#A>|~DZ>-*D)I~VY$RR1bGCOWAm zIVnYzPC#y9zlRtDJ@)Wv%cI{1?_YUw)PYh1nmRiy}$hr$%{1b*UzL9{Xua>#XR zUfZp8&U5}}iifu1nN|13?!PKsq#9^YgnLpHP+cROmQwV;Lz8OlvPXT6$~$}osEs81 z&IC0i&=1ZiwWiX~J< z94Uo`moWOz)d`2lhbd${n6cneGr)?Jeuz-|%L(FL4xy<$cqRQL5ZTQOQv1bZF?5Z& zK%q9ptcTYo{NRwOfP(XXIJtk1*kHX+I+*FEVg`)k-ncF5HoRD=UPW(OdinbO2a6b zQe*Z9&w*Lc`+UBOMI>^wWvwi@Ch{6Fy*Z0{UCGt>j;~b-VB&Q~Jw@r=+d?%@inF{U z!~qm*;-pZJL*65;0##hon~qNJPw#Aw;|%wQ#?We>?h>bvlX24*|2&5@De>vdv_M3+ ziI$g)^zTwZ^(SEuOJOA)ewD=Zlr`4VBnc37H z8*}l9_H#vv?N95h`v8cIQ{&Uzt0d$GFYKw@>}yQ_3H%|3ojtjxIAG6c%?v?Ll^z0= zNe4^Z_Z|srBtJD9R6%Y@;V%G(YvS19ysA+J0o`r|Q}~&##7X?3INw3R5IZs}HSsK( zxsZfkf4B&4_F|))fTW*0jPpBl4awJT6HQC3Isdi}_x@LMAp$j58^p;s#+>2+$4oa;1tSZh2(stvZFZH$A zJZY3Fj=z-~eMZl+1uUEENQgFRtG}!ttDP1Tf7T&LSp7boG@m%B217&U`NQVGnph`U zD=}#Y{*ie_iw&$Oq&=~`&Fiz2{VtV|s~*1k{u(SYrB`%HKPflx?a3ml+~@oo%r3Y&AIZ8Zu#}?*9kfB4gIv; zq1SHo`Fy=H747|)c3H9gQlzcZa2{#2Bz_kMfb$!}Cfwss+H1^*8S`9{YtpH3-Y)c~ zYX6gG_7|5Ax1cFoHf5xsaPtW{z?vZ&BQ$D8Zr)rN{o{|EfU>45UdLTAo73uB)_G(zJu()-v3t#!?CbA zXL{g7`tAjRWHFa+TRvo1%G+w{nQ4--qJ<}9DhzE8N+%nXX;$v}$GiI@EWSuPo+S{r zvhA<9W%mC5{avlY-n}eGXVd4sG`gp$u6ADf^EK`7wUH9_rRZU+@v{|Nc{_t8_*m(T zn73N|Kp8#tO$%VmeYUJD^`-uP|5sZ}k%Ota_a(M0kY6eY!YJuF7nqaLyd2*JDuT-| zyF;!0B`Sub6{t`dH&yyOGdrX!w@T|ab|In2hVZb*C#=U?w?ycdxM?<%ZIr=j$czPT|Y%FqI*+51S_=e+!3w(xtqOko; zl?U0@R(EI>rT~~V22m+(1KC67QkDfBC>%KhlY7XhM>Y#)S>xbAg9;wlB3m9bYh;Gk z!}x?RgGNzbKANxhqGrECw1RI(jq>R~XZoW%XSa@dDgm*i_--OoCT@=3OJ?~R`#k}x zy%mE2z@-tEEc>hvV&;+Py5#6makmkk%7$Op~m;}I{rcc`9=~)=YhTT-<%Jv z>VNj!z#l$}=|mqs3hBrmK1OzU5mwtAK1w=&o>R>VUcj)wu@)B(7n^ot*ln@_>;XHH zwy}6|vl$GE%6TBptw3sLl(~dbw2GaK0mB~ErfY@Kg;E4mLP4?R?_JgTyuYSy>gok^PNP<#vUtz9n&MHi!%BJ@j(v` za5bwL21yXg4Xw%XGSz5$Vn25AJ70roH+#7(pOtISiLVmc0|zU}O`5q~ZupB(GQwoO z=L$-Z%X)yt=_Si2Afco*kIh@Y35$kqhr|1~=Ft;5^aa)J}#a?;c%RFosn&V2;ynDRx8^rRY&>uG^NU@eYE* z%R)M*zE^|x2tjU&ON8(2OqH|T^@5JS3x*#1aij9n5A`;HbxHMkf=8RvS)lau!N!9@6yTV@a2;x|*X<>Za?N%m2{<=Fq+#j{TaN)5J z)>r5{wBE%AVwzL#(}ecI4V8yv3LNtHs0OU!*cnXOf->!y;bvEYm50tpbS$<6D2hih zbr2GhrsRnh6h%Tt#&!8Nx(l@X3p`=HJ^8z%6V-p^_`a5R%^l!W2tE=FWem~w<~G)TdV@`lj7cV=wkN>`u=i^=j9s)!hmWquM2(AP zg2#((Xy6#JTmkb)TB-?%(Y=4W2HRq{5|oBs*oujnhK7ZdlI#Vkfp$3Y=#L7#Di00a zM*oDO9gMmTbae{D)Zw9F-xu7gE`(*;{3_jzHq)J;sDZ$^shMd=Z$uri9xNcDW?^8B z&|0GhLma>!v&92nyowo!MOt>1HP{t~Yz9vkFkH;*pb?gb#0xN)2VIehMejKqcAgwQ zpB}%%FLt^c{xMT=%e_$0$Yrjw^he_R5*=^gKsFtqlYiF4y)SmOCmwOl*`v}!@g0mwq|5lHTr=$m~Mu1KBl7Pw_t zLOuSfg}sUiKnvCf81`|Jx}+TsrGRf-3tkM5el&Bw5^QODD!q7_gI7MJ-G>!D@ft*? zDL@?#Xj?x9xP{rHDm|K2)>!g~uqw{ggNMA(S6!aD?9e|V$5FzAvKC>*d zS<+rNOw$bL7~am)XKQQCPp@;+{L<@GGI0|JBvp(S?jg%(eK5H3VyTJxm~%w1B*eW5 zc)1CU8X0wew!LW&*vJ|PX?Z4tz&y`AKoY?_oS?$z@xvRd^SQ3ZcHUJH2l3q^uD?KC zjNt9kmXS9o`@G&2t}X`?elPd1tKWI38Fp>!-PWtx`K=X>?tmSXpGZ~DZ<*HJ>-1@_ zb<*rzhQIC=8ao_jubX;XPlESk28%PAYd$6QD16AK9HHi4D0S35nx==8T8)+4|8m#7 zU#~k?XAkfvg7BAup1#SIRAOIq5R5q`!iOsqpub2x-{5zJ#7khFR+w|9Z~{%)T4&$x(?AHW-Jq1y%%g?>JlAek{|izUj;cf=272 zXt+lWKQT_UveyW&Qh#Z()l$`D39sHLxFoxVldQBJ5Pr5VU=6B!X&gGu+-2m5!h4E( z>Sjm_uO`QAZzk9;;KH=Q#JsaQaW?vJm*kN#_GQMu3Fr*cxrSln@23j`x(N989N3vh z3lB=!PiQvwAjAL2t=;;|bKcvmbWqirGcHlTe^Pi31hW}LT3`@FOEDR?pIn8>UE3#D zF+*CYZg=O`XwdUl3lsUk(>0%srW|rTM$6^fjlS;fI#t?^`lA+w_eKk~(3RE#bo@F~ zF9=$ES6ZEP!-V=9nBpXqKb%-q)mN*_r7?;qL9+D(Q$o@>w+JY;!?Q8*=OXo_RAJoc zp9_yxLC#h}g!g!tu2?mcoBB8@9GaLx6I*RH=WwA50?T%AKIvC$Jolpz09N*Z*Msyg zr*}{kQZ~eXiV_5WwWt;lUDml^6q`db5p&OpkU3BbLMe}rpj_^i9}r($B?g;YLlL`a zI;N^Lk9d*(DAES6-GuA*!PxSCaDg~rQC-UX^McnVma61wCcp1hTl(J6y}Vw| zX`dJl)gAd)Yar2CMT*|_Y!whHe+7SX5%r@V(9QOP?Nb%5TL^A3ZU8$LTdZ8HLq3%? zvud-grNWY!Gn2cO_FCk?Kq83@L&4^7$%|Xghhb?~{7D&~%hX|X1zRFff$RW|%$I>q zQQ;|(K%z4$5WW~ED+fk>IK?lm#)Q5idg;hszoM>%E(k>w>kzqBMLNwxm9y&hM1Jk) z4TqPp|Eo#JFQCV3rz8a>YXoCHZsB(w6&lH~x=a+3kwjP*XEn9(u{vZ@eJ)398Azb^ zi0bYZ-xO3sM8|jYoXSLr+?hD#jLbon-nP&kq%G#EYEtS0Okp-%fyQgSQU}ugeW9WX zs2Vuw@fr1n36z|+_0IhQ=uleZucyLP#8+xEOhuLK0g}Ek19qu#|8YxNDZ5YY;&$^6 z*FsdcH0%22=|u-tw>sz0Bs#v!+R`-?rw)%w5$Z!K3?s-TG&|VB)pW_vQ7>=!Cn)TK zz^-o}c!suU+9R{D3p>n7CJ^i=EOA-fmoxdXx1deK8)2s3Ruq)%1QY~H`&FVS48K4h zUg+I!_G@D_yLjmxS92%v?=n%h@v8iI|B$2S8C24=TSA1v(_=8g0>(3|ZhJ8IetjkuMfa<0qX&mifXPGtL*M5f3(t zUq}{*s*lu;RQUaQ?UzS0g16CR{@XB#w%@m>c@5PHSdwid3WzTEsmVFpNMyCTUh^lD zayZqgv?GLFDaUWLgsAkLXgS8v8CT3bLkOgv=a0Q?eTsllyp^*aE|LQ#aV){~pb7~) zCllssKVuV)_-;AiVS^E2cPzGR`hrrfC1d^Y#nV1FpBa9S9?(JfVeOuh5 z-)1BQ{RAm&s4o{Wqrt(&QivM-^m+hBU^Q66JW{4(L+_SSENp@nIBJRbBBZ{b4^E-G z<+aJ>HKx@GiV`u=;s}L+BPkd9P^}M9<2-n|W7fe9!{4YLoa_~D21!eN8tHzQHwaQs zqB%uT@>Ar5tw+oDzlAc|8cqRobYc5ubq_b9@{NzL(LmCNqI^&d)x~^WSwOFDPzUD} zF$XFy{>k151sKEU>M_-({7D!)-cD!*a!Y-~{AF@v_-Q9AMrA3OJDk7FMCaKZB9P_Q zk6O2lrU$yQhfizw?Swl*G_-FR}cz&O6k`P;SHGb%#hlt zE6S8|lxE^5!n1z=_uS=w$BVrGr{M1Y%`y2eF#0b6fq7zcLHZ8?no0T-`}9A5{C~%g z8t2wOUflmIyQUEI#)#F?Tl+PYoP)twT{a}H|2|+Tw&;l@UbiYmfFIDb_ZT&n9_L`G z`lGxw@bv0&bxcy^Y}h=1*2TL<{JT9E{NUtqs@E&r#S5cr(>ie1`tP#L20Tl%nCgts z5aki1v3|?)QwXaPr6*F*{3%n4HMmwr(B{5viO7Z52wO6O5ak`#a`mG13y*pKLr50T zttWS$DxygId>eSEsfdrr>Kb~CPYx8(TzYJ@qX6;NFKo@;eZBksAISiOtk_>RvS3FM z7W|mXVA(4hUe_C+i)_cy&dJJPYj{*Du*hX3l3n0A10{*M<9vWwHv|v7LO|I@E(Wu@ zl(DGJ(!d}Y;0QkXxEaKSPKegq7!LWElD6W%x2*U(%QsVd2gry$XIV-=Tb~d)TzMuG z3Y0GueO(E7m{1rCKQ!q0wjTjq_`{KyQ(iD^(?vL&vN2sH0%MrF*lac5TI){!0~Yh& zeBVB)er~+UDPe0fL9K3)oBV+Yk6y{=P;evvTb{)=s0Jzi456D=#+4RaNql|2obZK2 zjQ&f`0-ax9OSqD{9txCl(ST`ATyy9$XW?sO?ixK_gX4SPtLN~nd=MKP*${&J7{-Mp z9W7CN;`^w7b_UK!lSslyFX=-X`X^u1VzPD=A&E)?TUPjt0aDMG>fzZ>S)$tu?lT-Y zMGH1P>gTzpOlJ8vg9@sJg&*%5q<@t>PV6FaoXR8axZv>*#0EM>sdceUy{a zL-7jS2N~X1G~~_WM*lS0t=S?+Zx~ah3kg&zi6MoFNn&>sc7@7An(#b}Cgzl(DqylLa21?&&>hjSFJjPKyfIdO-1 zIGnQNT~i|(##Myh>m5Ro9xQ(3fNKMygU3th!`2Iu#mwAQ(SZ+N`=u?fg$PKdue=uU zOOB`#ElmQC8S-sdd}~JOd`!o^SwT5z303=^e+BFu?{$?SJr~pM+EP;aJap(4Va0Pp z6KUcIoKSN`YZe2$yWY;~QUPjua9;xb%o2+DX5h#(`k{pncA--`0chSrBAbR*h zIYst%Yoc94A4LdeM?0^cWC}Ui`A}OR9^xDEC1OZ6jB=@1WKIMYF}`9(EH6kYmVWQE zibyff@iqj8y@}y7$I>0L>4?Rp9yJ%aw?r|eyMIG0gM0Z9FLB|R;>6dUUAcek4w$3c z4c(C~g@z$)<}zPXq1`HoFZGYzP$084)3j*ovU*;~m~Ad1s``SfGxRhy7j<&nL#6*8 z8#zG&wAdD=gysOSPK3%B2+qRncyiPd!CZrpfU+sALM=GQARd+-10mH|h6x&sv=(|* zY8|8+bod)CD_W+rI55YSOye?MG>?`CKlk5fn%*bl{g>OZUpMkDBl*hp+qv4GY>3)L%sjVFK0N}m=w)>um~SDv1oK5p*D0&Wb8UQx+b zlk(DD8!}RNsWB5z-^yA z!^K#yn9RdcPp9f-Z=$~(Y>E!s^0>SDc5_k9$>qSl=gr1jpZ8HNYL@h#C_7sx*zl*4 zB1}5%6~JF{OoJ=)6pKfI9jmb=_gdJ4L+JqfD?5KOnCHt?C~d8LbX1BGL%c5g0oad) zY}hTAWSD^dQ6K=7N2Ci!B?U|79;!?m_;(lZzZb$s;u(D*Z~%Z>N&o=G|9K(&FUN;} z<5M+U|H-BJ$Km*w`KAsV&toDHnYoWnQh*3okV+x?#$M9P2cjqf}PPSenU5){ju zSZY6IzPDnR-c7F_Is93JpGWh1=Yj2C_O5#O;UN3iyqsE*ho8ZoHwF^T{zk))Orp+9 z9V86jep>VSNuBSR;7ps;n>n*1-I3#QMKf|AsT$A*_>nJ~&+vHu`If?nqn&^|MU0_i zA~r$YW#at<8UyYOVy02$3BfK_Mo8Mv?kZZ$gbKO38g4DrZd0w*$tNTOwi>`y=uqdL zc%j|ydU!Wkt~$E^<)gK>*?wefR>a<*OD-oAAr`DyC`L4dXpb%MpsyvANB2~6Qp>Uz zaMAkyxe|wkXE>8^;0RMmARGu}6k{>sL`CPtJ*n~{;HHlJK@v|wm%QutbFX6um3;1%mA!dVCxb`$rtmPsV?grTfVi$-SRk^Q$WU?M4u$7Ig!4ERDi&5uNL+Fp zGNYSMg9hnJ+xB6xJO}9$V|Pks=%`Qg6L=kUqm0eFZ~P3HS*i{<2C48j+1^T@;p*?! zk}5?OD_;Iz51AGzL==jSBZSN~>EWRyf)plDMh*D;2IFN$azHK0U1Hw0$FDvQcrpCf zF^<)|maDGxx0xG)Y3jHM<0gqAbz#}k# zvLDk!D;sr@I^<$lB{qBhsF_DNJ=cOt>liMm7jQWd=@w}I2*!w@0W%!XyP(IY)|;`{ zNim@zqt=by&avwC)cS}^zEW5PoO;gcXQDej$8Iu*+=0awGy9_q6&NsZuoAOhYKmgAZmj8r7a z;YiP2NmmumQoBa!?#|6Y-ENzwhb&XV1w>6`V`an}gQ4^%zBXNRcnYIA7-9}v(F|ZW_Gt_JQ%JyoZ=B4U%_qob-lb=6p-nX=hrj8uV?9CJI z=!yCr{KEH5a=i3 zWEPO7PrfQ#%VzR^>l>Gd_DyxD#mD`%g-d&={Mzd=KE5Dr2C5;W8(Kz>YSLAt&WuqXk zpF?R587sqNWrvAWodIZD)3p|VeYL7WItiCb=ekV8E0I2YPXT9?L&)tZY}P zrdWgypG9wp1ZmUTOR=YDlT%ONMbWCPOM2VjoM`0g$GeI1ckivq=87OMOEo*4EJh<}`TB?620{ z=Ul+UQY@UZ(rzI5U#q*x`?;(pZ>s_J>%i2&22NM9L)0@E zvg6xMET1KeC>r6nYyQC2XT{TSY%H3*JUc5{83ZrBJ3Q?Cw)TEIzq$E$;s?KNLwZv0 zs)%0r`L{j>hh)Hr(NJ2o;5;jmPc{@ zt>&_+U=4-wj>Uy+qemU;=)eWT9usnPvQ)Lyq|tu{Yd=N%zoGHJ(CY%yp8nMj zdR-*|0FeBj7wvy5*6OEG|Kt|`S1Fox+7PGCY$+X#k zse;~IzQdMq$F%*gRLj4A%x+&9aGu_5cQ;&M|Ve}$o&U{0*{RU*Mx#(^2VQoB|9 zKXrB2^4S@0_(~mX#;z}c4@U!fMx^z-w>{wV1aK1~n^dBzXA)%{7pNL(UX&R zY=}tPIc1#r!|(DXC9dlYRWuTX=;|1^3SIrE+CtGHPwbU5{uWFkIpkh~VyDd&Vu%hm z{xo9jnR#daPDrs$CEdqdpjGeNvkm`+r`;#99YFYlqSM7Z+jvsZ! z|6Kx|sX1-E?WVw8Sn~iwSgR3tXgsU0$l!u%!JZD65@zNZ%epga&?Hc?eG|4eye!_1 zvWVd%Hp?-?fzQ6|3#$PY+c=&yD==H6H5)@^H9~+5k`bc7BYGcVQIC*UuXlhv480`< z!!FEx$OipLGMg zF#KWCBayklhU}$AwE`g1U z4`=uyuD(`Qu%Ha+xNi2dT=0{%Xaap0QNhG>0sM(`Dnk~;n_X`+)_J@y?BgTgQK~bl zOtR659J>afb=*~6Bl6SHTZyghuF(D;4?1RnKWNojWZQ}fLT>SqT|%p|#dp56)(a4t z%0O97Kx6@$BA;ba+R)9?>uKZ@hcosMUTvg86hYy~K{#8g?a!zN2eEjoSF3))j0B6< zPz}k=$HAvtVBAwJU_HU^jP@}ZjT#LnR9}=X2Wgfk4Xf%{f%D1-zg3+?=PgP8a{k4#GBPBt{lryvjcNnfo>8D85XJKFGF!thc}jAa zf9VSvaN-Sc<{SPsbgK013YWa4CNcPUKJ>JIhG?u=O??drQ$W7VCo$FWXIVqcE#x ztx^+J7Ue|H(c`62I_#V?xudmy!JEWu^q*hymY$baVChn|pzry5->y%N+TpTsNoqK; zf{Y_iR`RN^5)wbQnNzoe4Xtlw;D-NkFYRG=AtzpDQ)e&yaT!GWNa&y{mo>veSocm+ ztJ$3XRvmIgtBBP-Iu&)t8PO4+au6`gw9`I}MC?hyrLH!V>!}^u5&?H_VBq#JHd$x; zx%yXqriNh`s-}NKvyTIM+{m;;MP>Rj>YK{GqP#?lit(Fe+kLOv!8;qyI2F46@s`Hj;6>;CGnRRqmeD&EM^$Nz_N1Q8R7&>+$vYU4%smGWRstSMAU) znqh3Mr;nhYv@j3pu4>QL5>cAT_M@AeEdFhtv*&0$)q8*Get%yk5fcmW*~9$nEa7B2 zUJo4YzOQUCZ()I-@AuCkL^jt&`3lT+EFIhCNTw~^c4g9*E=r#)yrLCG1qKq8!Wl7; z30lHD{gH=QxmUlKS?&;jdVjW35q`EpHCs{(+Q?LArUvzMh5C5F$X(P9%vrOfV zZ-=FI+4CU=hpYAR=6{jGJnbt`{hwD|mn|q6+l1QuilZp|6w-Y+&g;Zme5Ds|7&2t> zdiL}?d*l~*K|e^2HW2a{$xm%i=l-R36S+%vjgCD>l+Q!A`9z*1_f)>$e}R#PZ{OoW zTZ~^0l>StD6q}=nK6)fIb4SDW>#=a$6jE0FFC9_zNkT@qlyj9G;rPMVK5eV5 z*Kt_7Abld=eJF^yOLhYiC28mj9iKHf#1?$LkEsSeCXO6ot|7j&pkOg348MHb93fK& zM&S=FtQ=DoRBU=Xtvi$)%dLN^Nkm}oq9BbN0}OD8$UGUN(CdyWqTpskkh6W`M^Mov z;nxE*7f-xsxM}G!E>Tyx|0&CZD3&GQ58(F(rK&vOf%= zBOx^^+TnzL9?u9FUDBkI;{>IK)&DN@Jz-AfX#@;JI45TSQal|e;{U>FO5^EjtdxTb z?09ZgVw177eMWUHGWvwPm4r{O!^8$Gu(Kd6ih-r46d8AS$78a81l-VLXn{^9K0$Ix zieS+r{VMiD3nN1kt-#vV=qECcyH`BS(lea z{5U||#4yf|*!8YqA_ETTi#`Gy{ENKoz9;?IMgcg`5Gv+cO3D$&viS1s8icz8JrfM4 zH;F!>SP2_Y1#Y#p)HWi9jD2dZ$`31C+VHC$n>0Of3=xf$D~+TG^S}aoG;NczQ<8}H z(33m=enlrvjUJ}X!k(?VQrE(kX!ta@ssvU61w!f58R+e4>A}mxBoxn7np^La5!n$n zn+a>>1geMYz6WIsfYBpqhC=4>v8JSR5p@t1QH-QQGX3ty2kKEkaXg=l-9jub(qoL(gr}42QAvqQfkk^hnWz<+Dl!0~oRY24_|s z={;1k{SGJBJi;4fEB}7JE=+jAY;8k0%3Q~cL>{Av2Iq> zN?YHV6b+C8HI&ic0uPLLu@_BtXHpnooPk}mF9U1bg+Ki`@toP!EBYB2vPSE~t(iN( zG0D?p+3IIvPmjxMpHE=)rGw@-`h?LWyWUEWB!y5m5XFKPJau6K@LMCI`xFhMT4#&M zRRB$b6tWZ|wXnU>l1kXnT5jbiBoW)SI;M)~@8-+|1hz`9#JPMtz0lMdC~q1=Z}$#z z0e&{6^yOMib(&$eA>{docN2y0MmhKFJH@XMbGq%X#X%|pcY+IL8&aFAo+b8nrxN4e zraWRo7~WkmX|if+>|>X~{+bFIp22Yl3itGUPgG(sMMUX}q;(f__W|PZcJyJG>q#4` z%Ou692O%%l|ikc0Ff6xW|CvqJr$~+K$gOO!AGYoVbKVHV)w)TVw~h9N zzwnC_{)#b_clTzLC%Qoj_16+7>)x;x$rlRmmj3nQw2^b*gY zZFm>E-L6_LS_SVid>``Y#m%!H3SRUTGsGC2z)g#SN6V#Y%K7u=mSfyx|JMce`Xynz z4eZFz_vi3l#bk~ne)q9+mXB?_Elf#tKbg0G)M$4uB@B{{)5r86N^5YXpJDL|ai_Ic zlxBl+Vv*lrezWd=pyF>=#c@aexpN8QJ%A%^%@zUV$B!4}mWvaNNpT|_LIn_P#i^!a zj6*|J5(KvSPe5;dg#Dxn0|3Bl_kV?jm$SFAHMVzj{kP^r+ckQh>AzU``Z<5bA=CfeHdRlk2$bGGU;^QBGC8#2q+|3nYnx<7GxUBCXRd!C(r z)qh_OUp{DmI)!X~x!pN?%mLfsy6XCP7{2*i zw~J)>C(nKLX^Lt+XphpQ5}!0)$Z=F(s*oi2oNbhUqjN5ZpT-{yeq3G(47t6)#9{$7jQ=4nm6X^ems{hrFP^)l~ZXd`^LbY0WT-JaWb+CCJ)PRwGOmHB8SRyoJka_2?ty zBMBRbvo5s9Xlr}@@DLtK9Aw`;s_(nnb*SMnc}*S(qsQU{TUmdbc@FCUE!CiO=9Erj zJl`Ui(hF+uCuY#I0j2q)dDNU&hJUM^fleHHD%*acccFdr!}o8YNh+FgcO!zVagVu) z3*B<>;$8^bVwTbtn9FK%^P#^2kB zy?^*+Tz)&&c&BcHvNpoTAryi_hxB6N`tC7iOP-VnD&mhh;2=t(&HSVb2AM7_P4f&9 zb??Zxpd}!aA1|*3fMlX;8Jp0vBtUCiCT|~>D&@pza5s*4TYwTQB$G@gK3l1VLBLc}hh9>7=+ z>7`8SmDf2N5!vsWJw)iac*Y$+!>Gn-eNf{v<0Gjl*zPq>WxyD^$#(8D&&GG2IW*-= zvw9#h&R4*nBH)syuZn9EtK@utw7j0Vz!Ds_zDG{eVH6|sHZ$^$2P!$RYO~+9CF2q2 zu)k66HLnT@5S5M|s--o#g9kP@VwHXKD~S!EZ8E!T!XGZeUhAg%tZ8zX=A4N+bo5(o z6u&b9%sPI4hwfx9rct}l%}VXjjKF2UI__y&nr3Ua?V&MG&YIx2W{(s zz@j?7DWj#w<)B{Er}7)PDwu8~4@bm59)op>g5SxxwXY*{6NpJCm1!q7N{k;~+6EiM zSB^7Be!z~p&7z8QK&55r+3IZO4^i5#gC8RD6*9Kpp~KI_`U~j^O^bjcPD8A*pptth z#mH3@X)!+x#&?_hC_~&JT>2#GQmcqG=Eeyq-x>IzLPQUARzmu*yK_T{=nHHZAg2r= zt;f$kO1V?w5t&2#J%o_S5gAihZ@o9S%$#MP&(Mk7AQlT*bpDeZ-iOR_SK6&`)+Y=m z`Sc3)OYKFO78Np5GY`H5kGO{hg#!4pf23JbFbN*k2{@1`5P{A>LoB2(hcR50JYiSN zQY-WKY@W$2_z)xectF{fdZAX*DMrO2s(E&s80LXB#tA}B_uxm;iXyMdp=%EHx0T`7 zmNl9UKARVx)iB-!R`7Iyq0KYT9?Qg;JCQx?dU4UySRpB^)}t*ROj2-*FW4aBEQe{J zBH}HrX{m~bJD2Sw{18ampTSZh6hwo!&(HKfXxRc-khFS4YLu`cVkhES(TuFZcVJ24y1Q~E} zDUvwLGw$reiNQyxA(EpI=<^|aiq?`D>@y1cuVmh|c+4wawDG*5c>NWC0e;OGja2f- z`8R__>d*xN3En}>vS$`k;aiv}V#h%6;r6Z}!)zZL@t>po^m1oD;?UtOL<&@+-4Kfe;ygq(*3T{=x9$b;$RIzG+cS+=hd@%3eV}L=q?l`g(FlMTxeD+5>`Jxd>wC6%}pLL}|eQaHBQMNe|=E`s)Iu35~`ff}G?eXzFte zf?_wnuMZzxBQDlvLd{n~g1e7s!oq-$X^~C|H&HPSidA$ZutHZb?rR9>Xyl*)?oolx zXFCPU=@}zwma$7*@7pz}KCB<^WyRP>7^%M=R0J1Q4INZNbZjaVu1AosjRX>&OD$h%sb`deS@);2>CMK>o0 z48>A53F5htkFNbrcLq|lORW)YySO6|Zh#nXw@Mho9epkbGO#YVAn|ATJD}~$9^Bd4 zD2cB6W_HS&F&GQXfks{eSfZed7PL^wxtYfLXFN71eACvX+G6=IYxmrotQHeuUSag3 z0ZKe&pwlt`U4KmF5j*FDm7DQUBYXQvjh43CZB#=mfBTJ^yptU)o58lFjiz#K?t1sy z6HjAz{9r>osGQgL6RtEoKBLfKR$ZPQQ^u0}jGYgy;AhVq+4qptb^5Xy|6KHeT!q=l z&W03ili+TPx(q%O?J1+J9?8P`#+7%8Yd9A^yr@!rLp_w4b*00>!b_ACPZMwMyi`te zLrpqkli;4mGPSxW(HoP+(}MJAL+_sFB2+Ohj`Y3{mMl92)?qmTdBPM*#i0Ee!1JBH_^t{znOQ+i zI`p)YvPP@0#&SSBp54;v$DaQo-PDmgj@cdCDarrXKS(8r^W6;*ypb}KHS^agn#;wA zwrlP?3pJMnFkL{mQ5WI>(vCdQM`V#Fmq>^*%Jof3dxo9u1nGFTor_%ZDWl8S{WOAK zMkZ;oOPIAiR3E0x>P zTN=+srKsxWCU;aiBXXT(T?RQW{*%3~?Ves~oyI#&sxXcL3VFQu%q&Msb2fGKmMUKi z*!|A;Jn5hS&92##N1iOv51uS6Y8CxdRuSZ~kCiM%&r`pfMz<^!r8$I`FpYQ+>MgMF z!+J61UGNXgE^pCvia*+lN4#%TdM;IAUydE>qPwK4hLEy%B%|jNb)LHuJ4!|K zi#NCsj6?KA6_;ZYzP`cu#U+C7?5Ej#*t}e&E5!8^yAHuUsOb30vDRw$zP7l&T%AAM z$tDlBdA6$AKmq#!X0W;zV?=7PdV%wLG*y z=!ZE-Xy^c8yYmq!5-ZZk(i!dc!1aRpjxf27C8#(QXEqjsgOtZpn8z`pyyFk7O~Au~ zVlZ>%M_BSMgY?BLKo3^u-n29uSDVpV3^gxIQBe~NYvKQ)Qm+e^x13nhoPHZBKa|eQ4?M3@a=7#!+Ud3Gq4np^r-+d|?pvej;K;4nBkz{t$W} z=Vj`8+EepI1M+c7JO;+Uncm!8DHZVc8$W_l5A{O}L8x_IKnNNVI1L(gw8@;be1bI0 z)VJj#kt*$l#0p_=B}9XSfngNK$Y?lN@C#9k7uVkh!s+%vQeVj;~ikwxIy3}(-#@-jmxJQ z(8D@@+^pd)TmEdpNK>*$Z40iXrmr+sZl|bz0}{hTA_nONC0A0#(Pv%5 zlLyfK?c5jRUiwR=fQgj!jsU%}AZn|bjTwdEfk~CY`X*mso`=4fvT5J({@pPF0OgyU-38O@+n#9)p z3RL$l=co@Qyjzj2>G9{PtwsCvK-W!J5jMEpj7Kg^+Ug{^38-(}k_E8i>&o)2;mw zW>GnO%IaOEe)qOx!9b{Awyj1G5xv=Azr}}sC#yU~e+GO-Oa}LB ztk8m7F+We;U0Gr`KVK;K)`2HJ8XOkH{3!{85i?D>?^M6X_dI=-IJ?Ti5?B)dJe9l{ zedqJOef^^PN%3DRbkM=z2wqMT7 z>AwD9@Lz&ClB1_ptLbe(i-UGtj_50>d-w}J6i}n zrOKIpM+WsaE7A`KG~th8k!3Xpwjk)omTT~C`a1|Lk*Pf`M{2UckROn)@zwmh#z=dL!~LavvEm+Nl3gT3n8hyt~K z{y_we))mzy)mK2)x$I=$Y`!1q1zW~N{Yh;x;eoLIawLX0&uPSXCS1g51g2BujxuZX z<2kkcaxyx-X9+`>fVDRB^ut^a`H`t{ePqAM^jfM?lK0B-?R{ukEA6q4^BhXqKN~2L zZ@Ea56VhO^;zKYQx1AOKicb1{+x#x-%?h=@S6!=sYru}a?Uf&JpbtW8*jwM==My>* zW7QGF{+n~4v!gMV!N|(tocZNReAye19?oDs=RjtKj>=+;qHOX$)U1TzXZtOg=VO1` zUu+vJncGAB4H0DTu+rpc00HUjsr_J$WpKcJo;MHhb-B^ud!CyK_-gO|d44rUA4bHI zJwDyg$^Sxjw)b@Pc6N1)t_2fvZu7IR+|UPvcDRUiP-Hxt=D2zMhp4a1J3J+lz%?v0 z88$+5IE*-mXr-AgZuA544Ps@0@D&OHmxX2$g|G-YG9_ru2rM1C!#G;BB#0b1Dl^%V zb2z)yA_BY3ln=w9j!=pRX-Xp#;ik%804Ui-!=s`9BU!W3?zyXsL))QnNxzb4;{fUR z3K$4a4E+fHuTqXdl*{0aCQqub& zqaB3AJgDbb$+xH@TPg6Vr2ie-b{bUkg^Vj5AwL_1BUb*jTMFUS8tDUtbsk@}&MpV{ z@LQ{exAMa5^L;ffk;q9b@ZZ_^`26_#EZS!4bG0i*q1Afw)8sZG zI6lxTRpC?&cQ(~Wb{ejb26-&^Z}PWv>uzW@au{QPDvgg_1rrhuj z&#Fo7XrLEBIu@4Ud5H~4q zKcF&f`BVmnB$ncT;ilYN)d#;M3Ed?YlB25;Bf#*1jOhF1uaEnBys-Hi)3{%@gmTX{UAt z?v+AxIoxmu;>)hAnQZmQ4U4b!1kpRdb2;Pq}0;`_3x`nzSM0`b_2(8LxXo~ zZsq<$)=8+1SHgs3sXxmoQY}-Xyvjge7XTQ&tNtOAy`G1|juu6UE8yh8AZ#i*)Y2Es zaDHO}!ct6b10qBst;c`&!8G*!uyi=OsXiU59Rm%#n*lzh@HJ-xED!X{ZKFk^!Y*8< zaYpApjUmu`iy8fs!oM58-_WLjvxibC&LllI1?y0Q%{0bXi$%LSw!>pxWiQ!B0S=vprefF3UmzPG-C z_g=W2#6>Zmx5O9G(cu+>!heVscR~(SmX4&et&M_2l!SElJ`7X2Xaf&+TF7Hf9x{v) zY4(w>KD@?!IJ0U=`_v9ulq7UjJiN>QHpP86k+`-X$#B4-jR>@i0<{D@5GtWfhXFPZ zlEi;Fw_)EVSN|qGcOBz9jK@r+9rgatz>;!JwYcq_`nDrmRklteNc$~0sXeZJ5(%YY zKlPfCRWfamJlHR8h`m^|X5AYF3=a!Dp^Bp52yheE07EW>_qKySN)CfKy^^OjmFXSe zJH}aBFG~cez8!5CbIts*yzR z?nrsk4)=Z;`NQ7t2gScY0FZlS3`4 zW0DTl(?T_2Z@K7SEZ)NzF~j*V^AsRA$gnQ}4PyT+LMU>zqzqKJ4tp3mC$c!Y>6DeW zShEZYWaA1!pKm}(Dh_yZ00B3KzBDXw{vkOmO*wAnJyj#U_WPORv*X&+ zey;mykWioEaY$BDOy{n{xYC=W1ZF{Dh#VbwhVl_G*|$U{a5{L75;@2?@GV<*KT7qO_lmVU9rw*>X<~ZH_$r-Lg+H~EfHUd zDa4CSVp17k^nn3|^n&yQFRL2C4kCNQe0zMYnMQfuE zuFi$`l;T|d1^w35v_U)1C$n(FYaJpHl%#vJSws`+Dr@yyO*Sc%Nk?nF*|djE`iYSw zpJK_k;;wX6xan$cshzb9jSQ}$q*sFz`xmLIl%3lB{cZo4gL7-|nRR(CqpbS78`AZ_ zNhA%nv0yuaS~si=1g=P<@auWip;iC;;-aE^!)xP)_yt~3se``CbbISOmX3H&ht-l2 z1A>$ihu81T&{M7^QX+XYWnLf)51j6umHx%C8)q;|ki;OBv@r)2==D1ElGUYD5^Sx4 zU)?ieLJ1A1b11n`DW6hIcD-dE>xQ322g8u`pgJA_0U|8zP0A6kusqeFO7T)$*=|RX z{S)Pg3~!yBMZFGml-m>iPx901DAV7tDT{ss=*jn)$(8zUb~!65PPF%};YYFGk*({@ zJ9Wb{4F2Oe-MFI z>22ni)kP_5Mf|X+%R4Ww)Rf{LbNfVBzui9WL({@cBz7ssU;{W8ISmH=<1Z}&&(j__ z^;>o8uRV;>cuP08nefG0%j(B7dfMQ#N^6VA`lCd(OXu^wb{dj}AYmhQ=d-pmVN+YcrWS>650*Npjw&H)}68_|4pC zSQ&YqpM$4kXl)xQKx%SF9Uu*RSM%p0XIVVnj%{DKQq(9U@h{JH(G$v)%Cc{)q|QuM z|0<(y_!&#RF!-GYW(J2lEC6twd@ZdnGvS2yu`b0jq{psu`LfmOI zValP+^Hy_{mE^7Pc{lH1QpFP#rCBRb6@*8Qe`B)RIC~>QvWP;1E)TDXv#L-Ny^xDT z@Hx^W1E4^kD5JNDQIF2Vk4Y=!MOt#Hwtym*i5Ds8xOz!~mVk1$vx2i~) zg^76@sv4NZ=3%p;U7cu!0JI6WT8KzS#|sb%Feh)?-}+f`8>!35W_Zd5E|rPiqZf=< zokG869>UiJz9IAQR1k>z^i2Tv04!^oWk7-TgNPj#vh>z@c`4PDOPS7%lScNfftJmz zqx+^uc*Hc!)_1DP&#v{6hS#`fRKUguG9hU0nmm zN2qKjt|J$_H@}M`T?1mD#g88}?De=b^!2W;u~I?spDOfqaUOP%|Gy(pBW%-$f4h&pR^dTukSF;?Jt5spleGg+w{mDZ2P?_7Y~sr zPmCc$fFJSHV0~$YM^hkW@3d+AGDY?e@c&&LrL0RwBmI*0_=)c)faIBmT zSZ=wPKfw)5^K&dNdEqH!(secS=h$+{xW|_VsS}GE!;l|zDcXnOt>TtiaFsz zFa9mJRO{3{*Q6{rzR>--+J<*aJDuE~X6^VmK6+BY_W1RpT$kg5pm#%m?XT_d@$-Z# z$%0NRW`pz})r55gAQUYUq|26lKaS0=3C(rFgBhmdfJ>x0?2i&XYu@xYJ?j<)*p5HK z@gXdkkD;wYlXCc&dy+gUL-*HTeSk_p4h9ZUWEbe&f{bbeyTX0OeSPJ{$+;?|7H;cD z+up)l<>d#VmyL>*k&m8MZVH8cfYVQ51V#oo{UMfM=7U};vc^XWP>2jGJ{x8T4=bcW zB|(*u17d%c+sz}QEI6Yc5?^?1OD7G6hd{(bYDDCRx~B*XcY=q-IAiD8fxq{wZT;&x zmH=2xorP+M$M^?HMA|X25*2KhhU#FE{!_1Q^$#;Vl9av%n(3W2=|<||W#ek5iGwD##k5STDo^zRHn=l$J+AkwOKHx{Tw)F zOxXR1^g6@N$I{a`vh5bAXbc!vFk@eOF9Z75(@F?{TQ7^(2QJvSXgbo$m^F z;#kPMN3y-oLKy0XH}xiVPlrp2SX6i~2N#gMFozT~NP*kyCc}*;>-grf`-DPD96szm zr@QsWp5zn+OB;T3{~a}jZ2F&%GcA?gjogVJqR=a+pX@3eyhLil<^;0xCe(D;^QgP~29a=d!J- z0Z<@4L)9{ghr77|_?rzLh_=hUjK?GlrPg(RgX2_=AjCtD*ZnnD-zdO_Ook+hvAqcZ zKQNCX+nV5E_c}4Wpzzk$@G!a5Z_41q{v<_UZA`!~q}*uzfet|EB@`;%IAMyk=+uKs z#G>mA{sicWyAB*sOw;GPl4BI<^+Xp=If`qDGKhWeP%Gf-JAHu`w}`T|uuLTX0{`d* zWd>O?Fuf7LzMU!&yRA2?gfT~*bqz)**&usB2bkrKMdGZSG$}%g9GXRuD`kM2!h-)>I?_uWqCT$kv$4rajNGeDGT>n#-hhFEFL;zCxxR{ z#vJDhq{$i3IaVd_o;3;fPnj{LwW2$DL{A!9|GW*A`S@&K6-GU5dwe_cJ|t*x8Eku> zo=W7MHKTP*WY6^%Jk>~!CQR2kkyj=p>kdfn*-H#DN#P@aGoYjCq^yZ70vafnbf{t$ zQ{Nsyd4= zi0n9+Yb#gMPnwB6a53EV5MNzJwBbVhM*(GrL z*8rcNK>docGWU=Q{W`f~vTs?%PCzk~oj(7LNyB0wD*>eM*q;0}KTmj0{t6hPY>%%~ z;vYO>lwGbGn~&#jxB#AqL_CEkF)GB;Kb|fQ0MRKlr6<90MQZ+@A4UX#Iod$POh`%U z7!gwxZl8P9?C(u`F5Nx^D;q}K{^-MSd8*jwXxXN~a4n>-JpYHovRTK>cmXpUL+rk$l5H&@ z)EEQF)YF|}3S+3gv=zP{94(PJ9y{f!i}(xXGIm#^o1KKE8&v4*d;~8LG*1Y9OP6Z@YI^(4 zWiBYgqvC;DY1C*0g?N!VFw$M&`b5Vvb}p^V@IK@qG_4QtHwf@VVy@yG6d(?x|AG(Y zNpm!Az`{ubzC&o9*2}cX&E$;8{CTV4>xNiui${)dudUN+5ly4BjFk+rT9rY)-NQf2 zltp(SwOXA~#M3D3qdAjBlTTT`t-#l0_=dBYz3VdFDoxbXOJ6X|(Tk+JdXhnu{5-J{ zsGHYznvm450~xeMUeXQDX9Cg$T?e>ZEVVtBlqwynTVY$kYS)@bwhLP_%$S%OY9W^# zT%NzntRj&8(j5jaN}G^7$g&{xp1BQ!8D`S~tsC%Z>d2;;@yR_J*QX)m;DfXuw*yhj z*Po=Q?P9A}Qtr-eweO!vumcI=;|xZjKJE#;t!f{wbm0`^#6m@W?905SqU&@`Q%XvZxca;-U_ox;Yg8L6e3?U0 zQuwr4tG7NV(WO)S(+)FwQ2|FydWxw{psKQkp4=3iy1io>`fCVRuW5LsY;x zw;pw`AqvheJG^wY42Wta5yj{kWY|P>yU*>L!Oq)BV%VO~XMc{sf*xJULVGZ>=*j5! zyf--Gcj3NbOSdX>Sf-y6wn3D50lAgF9_r9ZPw^G!ify;7biv-NDY49}pD>|!K(9P) zlrbwnpkt=a$T{U&mg$U^fs%&q7RjxxJ)>8Zp&aeB)+{-syXhuT0^6m2@#)v;N zwTO_zBudsFrC|-)stN-oUS}8g)$I-|XF+^LU{|Wg?a!$+?t{{nI1d=i{g4oC*5E2eCAxVTDxO)0GN^+V>;j4F(0Gv!_@n-sSzs z+BhCSy+tFU3y;jlznDoi^GejQV?M zG0tFFt-5_#Y2uZt%FvjLoK_F?)7x@fUSbl(p3qWZYZ>gRk#PM!WV#GhFi9*NJyOg? zgt+8$i5^huQladKv>fC@J=~CVty)qwb@C>62T_l|hZs16oJ&i}fABE<`LuZb$FNBY za`Ukp?L>0citD;jJcvQ0e?Nx&A))!YO=Vi<7@I;Q}D88y(&S2Lm*MVr(fQ&g~rVp}9eL2s((x_3| zi($vse?+{o&$oaSozfJItb2fFwz^3X;&`FVo~%qZ1BtUZ+W#0;0RQvPOmIXx_$hqQ zjXL}4B(QKx&%zR=Vx%>4NWJ{u>6I&h&6X$D<^tu)19N`7E2v4mBIQAU_rq4g>%Y2MPcn_P;B*>Dv>y?wN~*LKdH*Hl1U<^`)WP$CQWf~Pm6?Pr^zrV zWn#`<){E)(5T=gw4f*=Z8>{z>t)2e&)8Mo<5Q)L1mfgS_OV%~~d(&dbl)Xs^vZllM z+7m8dgKI4oQ_Gg^S&LY+M*StUR;S`~#?l56t+v3(U%eQ*M38HHt`q8D637I9pz&oY z(sJ==0(#9$a%J!ddHgQW8Uii5-PF}NO#TZ z+okhgELigFA%|M2^M^EXHxm&T)IW8^Xz;+5!lMFrNJ@(C5OaM8wsFv=4YqMs(g&$>`Q8;s zU6oS*EwR8%u1-%wb<-w17Tv`rq)iB+LAD1?`_Kovm!lj&;Lem%Q3^Ih*?gv5BH zWyQ|(!$iP-gPD)spPTWbZ0p{kzM-~ZE~JA16|3UjmY;Mz9kk+6%5J}PuykUZPrVJk zUVoH5oocUlXR9A`m7G6?im93<-$2Nn)5%BFj?_E3c4=pBC-=>f4AJw+J5xN_&_(6hIb*U0uvM$o~>;OZCnt^4aGa?TFy)p}{2gO0!SP zsStSjCtF5qDcUx1dGfwTmAe2sny$2s4K`4A}|B`k}OSk|dKZ$m8YKVhI6><5am>;oFt@ zt9SHZq;#+xNN4w*bv#BVi)8?Onsj@}yzlVXLQzq{7+fNvS>Yy>U-sO#Ic8MC7*vcv z9hzv5pP;9%gw}fYk5A;}NVFIQtC1NVw^Vj6BKDo7U(s<-=o9hMTFR0`e}5rQe_AU% z$j(oar@iFlrvsF7DaA90h-H%iF(m5cl|^$f(0|GH`7ph!dBV#cwhvtg73LlspRw0EL z1u?i-;Mm3p7o_yQA^o*K))*?0wiBo^8Om6&4MKf^TyHefN~O-ELkh!V3%&)`Q z6P!g+@~DlN36oFX3HsoOXHgEE0JnH})6h=+D<#Ax~b@Ty9c> zf(o2d(a>@DYW(~S(_&b-rRu%n zZcP(e^)DH#ScTEZC%`gNlM;1REQd(lzBuF0wX`QZJDSDbUyV zEMJ`Qw&r1FHmzXhgn-eD`_H2r%|a|YNe7rxW%%VNIfQRzt1Ydca$dlaw;danQf5v> zk`=8q)KuWk(al=CM|F>}TRvow>{0{&Li`*1zB<@ofjml%I8pS$fQ)Fl21}c(Q%`hE zES-9+QTx{^xOcZT^U-w;##Y%U{70Z{;%JZN#H_@pV8OmpXy?A-N+}Dpvv$WcRmf&WO7J_` zL~?(}I9rxTaYG0>r7dSIHoXSOMuo)m>}C3atLV6F>K^(SV_%koXyS@|h6*G;SgDFT zoKd?S#z>Zo!SEe^R5DLo#BYKq^&Wj{Av%!qqW;j=`pz%Eq2nzfq2YafaX=ebclNWQS;qQ?6?jxnrH_SkG35qGu znUePKZF#JwLHN`^#?)xx09;d{m}CWoF54Cc03+6lyAbyUNM@rVsT?SQuoaZ_6#9XbE>(?z zrZr$z_|_4t?9dPbb`8Td3X7sMo!=?c2BxITiSwLWiJg(tj+cIj();yLL2E96uq4?^ zb$zBA-o5k;@*^;)n^aX*f+_h~st#VDbb`=cO8)JKGLX8Dnc@YWza;T$)z=!F+sbGy z?`7?GBkgn1CQ*D^cCU$L-v$>0YR%;?oA4+iOA1G)KJ!PzO#v)hy)*4-LktBgMoptN z?&?Oj2W>6A{B15gxVXF&u}z(mjf6SPsg~`+jtadVaTkW(FS_Oa?_Sw2znpiYwAi1& zNHWhY*X_(z7I_R?Eesc_Kc;Oo3je>c;c=w-z3VE zV)g9urP1ra-_63dSq)%gNA7!0ls6%P6>jNEANF$D_tIAOqkSHLQhpzuoeWs z>jD1vvJ)J|jfnEM2bf_drS-#`dqaEEJv#up{X`&e#K4kenOIZMmihe1R+ zy?3E=%Q0LvFL^h8{61!2)?l!H*z_1IOI z#NUVwa*fdyQyTjDFKNa%hMMSdRVJqlN5IuN04r5Qgv?7-P_z)g8P{<;NS{+Uykp#6`oQ9>rf!-8^gV88+i5NtEyfl-wcOXi9K^jNLm1GLhPl}X90(&T z()Z?kCXMX?-L z8-h}b#(2f5Lob2FB%%PNFBbv?QZqp-p-n?3f^pxV3SWE6`#E?9`Djhk?D=mAB0|dI#Oa} zUg~|;Ch+0K$o7;xnA0CbT)6+*OWAM?Do03a9S?JpL*RHBSCT1$j6Y%p0ws%qR}s17 z(>xkJDumg+vv0_`%rG1V(cKxhH5RVRP0ECZ8VdggGVgF>lTl|b`W^ptsw9UkHaG*9*75=RfXuXcQmA0Uu z#&?d|`r+y$Y_;Q}(nr=d6?+`U+ZQk|Q=GHiuY;g4qqoBxoKy`f8n;{ZE>W z!dzt`6NT?&pggW`R}0Zrmz%)LQVVCuJ4zs3e2{H~nr*z(v7NH79F#5HMj%!bV^L(p zj?r+B3p!K@{YE_0i`<6eSaW|A+fdNA0(GQqo?aUv>2+Sy5k~W_qIb`&PDOy6R--Q8 zY+g-k@$vD!I|B}!u8PiCbt;SEO6B^}JQ|2n~x63|EtQLW4qPuv`T=oMX6Lj<64`X@= z(lxzbT{iv8<`wy$-T}Bc{a#TPcQL?&E9Q5Cz*Rj{3-ofj zEmJqZ`PYEY)EV6nF@Z{6R;okXE7z0Uw`qV)ZkJxCzdxlP0C+EXJR#RnopSKk0>6B} zs>zrASKpr=AA8b{HUA!h_9^8Nr-A*~eglAh^@{(1@t!=G`*Q9ZqP*md8nGIv8IH6U zD^xDz``imZC}aF)J-LmC3u2t3c0*%~i`Doa2WS+KJbB^IXG0a5Lj{3$5i=*=gUqlN zV$Tn^s@3L#=l%lzLd=W-(fNo-ra zLFNgM+3^>_ClT$3w1~4AHEJlyloQ1#LE3;)Rw57x)SB072AJaNc17}u8l)cG2*|HM z6>Bn3jV4zDEEV!gitv?lBry5c=MVlyu{pdo{=?0{)nrP1d~7hFK~6xmOi6ML&=3Js zBoTXC2cPG{Y|6S8b&BW~0_WDbG~QhC%-ie8gpGi>=cz%uJ7(A* zO0#2@yK%H+(TzguLBkBW3b@*s0Eu-fJbbv;Rt=gGs`?Ze`pX`|Z4l|FY<$PeEXz=;qlp;x=OWoSl&V-|*S+p_nD zd(^>2Gn$A*keZ$68QD~6aG$u%8xMF&&Vq9uv59R=T0?biDeNQM|8==ioymH|l(r(m z8U}$e77AR>5j@|eOQOU5vYIId9<-Fi;6Y34{vD_3EQNha^TrR?kf!CV@Tax_4Ww(7 z-q+CLO3M|hlJAC%pqMV0?q%YT1zY??5UjI(6zUh&3F~vsA zC31CqgfJWSgbOwp!$fEEKKpe@8x0^Xu5ugjP7HCSewHB_lL-` zj#ri8;_wlILn9931Q%J_0`dwg)$0UHlBabTT+)xNPh^yru}2-e-BIrBdirQD7Z?qY z1vz)&`NB*`?qBqDWG!xlogH$w3p)rwId12;4iU*$YPad28)l~#?BfvgC(R+D#2h*_ zb<3QiAdjgiW*pqTVWsEmOt|zwj0IlJIVzaV#Xjpu=t(=OF1mioWfyc1n^o(JpU8j< zuDUNZfbVQA#-m!l+t?UHl%zZ~=mX<)L9o|{zW5z8oHrYaw_*H8ICPGcAg{X^vdeui zo&2;xY6%Ki2X~6{@ZbcjKK` zCC+4N*eM6$>>0#^I1L;bC>QM%ENZ4sOv0BMz~(jLu-2EDSc)Fv)gLl9OO|oK1T?$q zVGwz0(HMhw6c)E(r@|b>1f5#jW6qG=tY|s>*K4fS#!R_T`cCzms?-eO%0e) zmZ}uUHvCmzb8YG`H95(4AHF6P?R&Xt8`cg9i`U*wdA0!Mr%6M2?vx?~H?A+=lZ+oc zo6R(H;98VCYi@W0{IACZh{@wMIT7`ik08YVeE1w023BTw{MZII?ppEU>NZw+3HRW| zmFs;VuS4VjM8$%)4u*knX@A3PIy0J|y2nI~K=p2;kB6-YzuV#5oUw%L0(|_4_6X#N z`Y;Bax)lbTs1UErBV(w9x^e!tF=VFlNS1-={@f&&1MHTfUNssArW z5ZA)#;{WNLDjhvg$Ydb2A(YNcCW&)Ok2Ru>>93C|Zh{^CohWJe<4t9eJ#y5{e8q1g zwY_Xfe(O}X6@e*e2T)*#E3|5fG)aW#Imi)gsj=jevB%3a$(2N)$uTbnzXkyGU zNZ?T56$Xybjc>+J^3(h7T{q#n9R>=m*K}D%Q!v9Q2m;I=vs9sqfKm`StWXQhalf<8 zQum-Z7y_Yf8U&>Wzar5GWgdGP)u~p8Q@WKx8^>qg-+2;z zQM6O~HWj{YkgL}MBPZSrZ?;nOw$~oM^|z%WR{kJJh@Sp29KVhzELi2L8_Cy4@&-uz zIS_+svrkbOPHMn|D3n9|HW_+`Cg!dFV1SL{!G>T8JDWg${l&SG@_=uqE}w(qo?bI| z7Z)D+RUsE1#Z@C0pQ75liVH25FYb{f0u+p&H^JEP%X*C4>ASnVyK#E3P4?&L)SDtH ziRinFZ9qF-|6^JH3|tP5#h268#Js1_Wjhy?rJDd1J4`J)@eHdy->v{?nv!8M~*b?Euw5>7BEc; zvg3+jz2kC2koq^aeS8+2W-#KVUjCwQ)br+^pGwwnuYU1m|FJt8Ndb+)aUHAQA)?d1X(#@qVg*raXvqnUG9b){|@;f6w244D|Cs#VM$yZ0Lb zT^k4S@)oq<7#JD#QDZ?9EX>}lIRac(V`~*P7tW6=$T0G&9Bf;r-v>BOgTd;0P{dqH zf%C+uHfxe~zW_1E-n4(8ePrc}ra^Grl6vx9xBx`;5EMdR8qf$Rx@WOUqW0SS442i_OP-Y?5}2RBt|L$x8uZQ~QTV&rXBthsWa zARRC_0QIoEII>Z_>bC(E{;=7zr#We_%r_ofx6?m_~Kied3Cse=vGB_%np=C zLtNk)f{EwPq-JL4VXwH{d=S5-Pmba4??BRo2dMcs8aEB zD64#QX~sL@e>hbzFJxr1Fw@_!?3Z=Q?p6Zq>VXu;x0k)RW6yc(vYC z4F87zDM7+`=t})fXPh~@QX24!8@7Y^n>p`&=>?bR9#F$ja75k2Gomm026>APh&YP} zEWVYi$;&ALa7Ssi5J6^FAR#^>|9Eh;O!^uQjm;esSwcvhfoAFo-~ABTJInjk+qX6DW|BHV3|?;zec%NFfp9~Dn6(sJSHjea4|3mk>( zj`n4F8=8PETzc&lPR?{oh7`QOV+>CB8F%XgGD9x|gR3>B2c@1^1w&2m)aQxU7OMG* zq(N=ZNKND`r?h&hcYBEn;XOC6kPn5~_=e(-5m`Ir}JSW}L#GRFz(<8K$Z3vCYH0@V+z2Uf)I z3*rRs`o+<cIr@(n14H~IIQXIO z$m)*VZ%XKS_zM!De>Uupc)+m}$U_n0g}E2)#B{p-x~&m-{^c%G@0nVjPQ-L0 z(pk!yir4+8WNd@v9cYaSGfn;9ndbwZzx(4AOworB?nTwY#5jFZd}YCy+EpRnuG!%Id`9aPq`$m-cbVxMD^Qm zbUO}R3r=s^tBw3Gm+KrT87Z9P#25lCGtsRzhI9|vsc`1O#<@MMlx%#@ixC=5_wjd! zy{%Rgpw(PKKC_7J4n`?By@u3BGrTBf>Ut*e($g#K#-meGtH_DOC0W*!h?O=*p;*0! zU$0cxNgbM;F+tNV%sdvm=~$Kwt8tb@GOrY6XwyyJS5sXBWj6rk+%j~wrvwzg@KTBK z{d%cn$MlqLi*zKkH5FQSBhdJ7m}@FivY+&m3vWvFwnl(4uU~VnE28L+;Er^WhHRGhy za1u3Wq}#3xIY8~JaZ_eSu;zIoKf|!tbUp3gTjQ-kJ>P#NC^VDWC-hU8rOK)ZCZ)t< zkV>IM-E6@&uw1mjR*o@>y=fghoqzCJyM98K3?6@QHMiil31D;4knj>YHM%NAjffAa zINkra6pY8?;!dcdq55Rot`DcasBSZi%v|B|)jg9zyZevPosLGH)UTS-UIB;W#CuK+ zXXz@6yr_$lncd6I#hOcha;?m z<;o=h2DoBi(Ziogcy)z}2nX$=2u8~{mZeD+HQLgBl<;L?{vvBvpQnn7sFE56LdxkI zP+qzm@JK-=Ms!Qy$|OfX2Ma^>;9h{l>*n+ft0bi9=8Qa-p>@xS{+YzZac0y$A z^Suexq0XVBJEh~*T^_Y21+57lJ(jd=|G>A#Jf~)>xj)pWfT3%sO>)26< znyg~2?r~^xMFsza;wtJyoP3btdilWOsv2u@vs!!4(zB6LO05-fAoi=g*{O$Go77SR zyu{2<3ur8Bs7ciE>K#!fxL@vIaiLsFSGU&ET>AYf=!fWNsj4dvtfqxfkKE9bgf~mA z4hvdC<>6;lEp5jIO|Vy#RI+6VOhTB@z)N#6PPp@sa(QFt5W(ECanx`f3wwBq;?QCv z7nAMeh!Dk}^6voXL_yaH0h#T2Hcady_dxMI-P7-spc)5>+@c@Y#~ zujqI3dMkUYX63_QXjpUtWu^+~C>&(__%9f@=#*FnP=vt8ExvejCH9&L`7Gby>_ffo zK;I47(EqEf7T3z|obBNa~#0Skq@1H1G!)b$=@H zrf-N3juxV;f?ud_OKB?dn)%Jx=MqmBKkue^K%D0wWJinX=`9RyHzz+YCqK97>NXx1 zACD*Td-&GaU`rfn;6H}uNQ>Rr~%A(WV&H~H~;6Z zzE+An87{2FC*03k-nEZ4QdEH;;rK666uH~ckJEi1)!1jwu6OoUp}l;_`^@Om5DZ5# zh>;VhbGvpG{<%)xtwBSG^n*yt6i8>w5Qsl)zi*^;b9td&=GpkT-(Q?{5!HOuzD};L zj;`NLh`3nbV%raMwBU@soE)XYqYB*{C#J5)n;t^cyK}Vu7eb7Ru z!||)3<E9y?K$lvn06~{}Q@5Qqjrp_f_<=$D`Qq_mMsBD!Ss+qVIF~?Y0wu%W1)%#2-dd%wl~s@eoJ-N~ z@z0;nbMP$vB0R6Smn!}IG;hYV>@y05|9GJh?y(0tOlAgl#`7(-mHJS#6!1KsN%*VQ zz%aZ`r_2q|`$|N~ga~^GQ-~{E^D&GDl{bNcv$v(YqQJArr*YZ~BLNDdA#mJr_`n>G zkSfZEP+v=McuTqO6o4z^$mxD+5GKu!L79=|j6`c`qd46Ia0D4yulM#Zr3G{xlvw10 z1f;30_2s%P_4kc}(dLF_wbaQ#)S7x%pB`}srX`?;U_`C(wkJ>L83hN861JYf=-&Cq z0licG1{C_q(kA*sD3x^ZA$e9G<-ms#ybhqISb?ss+GPV($?-lJLdMTeishG`dX#vU zi*TbW5n>)4p0>?(U^%L)+|(rO6K@)f7?;ML5CJk_=0F6L0RnyE8;+!bPJ_3Ba(V!D z!M`Bx9*KM9NAjTmEtaz4woZ{ZMhUOpZ}Cf!H-i=k=FUYEL^frffe_zE{RPgfyWNW# z1czbV;&oEd4;3KO9Ad$Rsqv4CFfa$Aqj2wP_ZLE}GfBvz z0b?`V!17v&p7Hg8VDu|W$_;<37q6$Q#((7ioY)s)^)j{AoeGhV_ll*=<|@bPE-BQ6vj}Pw#IO+;EZ@VfR)7bD2S=re`@`hf5Dlna z|LxHIP(tji(U}51)~}9*53bA8r9;yf7+nU83YHWXlUY-x^QYK|c%2Vliq-afo35ks z<=nx9FSQVw1qbU*vRpi;PBH7k$yg|CbU~8&Kwy1XIbNGaxlTbRud0> z!^Gpp;Gzj5oVmTlOIGdd`^Hf0_i;%-q|S7TE~x<(^kUc%H_G6W3j-D?z-%`xf&G^tLhNhD;5j&Qx&m@> z`b2oUMv=3<$ku#%?Ij*aQzzZ&k_Qedr?<(;5}f?hp#0Rq;2^ugDFd$|giE3N@w55@ z&hhXPzw@faE-QC;p2AD#=BDRKnTkn?QhU@I>gXlX5}ig8th|wph>;kWzKc-Rnv|9+ z<3JG~oG3K#QxF2rd5FVruL+u@@uY)JM~3^rO~5MKR+H!aPe{U582u(Zf^NUSK`<9C z!x2EjzMJu_lck}#wv5x?KFxG=T&bTd-PH#%))qm+OPU&50pUeA7)J6)w0rR<$LcO` zFhA=mss(QH!99l?_aCRC)NSwr9sQu_#r;3tQsW5PbQcMVs9Rg9%tPvji3&Z^3 zn_!fUK(_>Y&jy2T=~iCGCYd8rVz-!Z^jXUL}P{<30k94=Q`v1ZiW;t5A zAjSF#j>r;lUlLrhtsf)HR7<5bXVctN_4U~8YNcM3X-0Ifi#2XLE#QZ_G!Jtz3NmXW z612zup|sX)_BjL;$ImPG&0&~K)>NmvBtT#o4i4ekgaj;e=e)~{#e5w`OWNlur{gni z>+CEO?ylN-zH}eQ@$$L4=%+(+)3|Y+nwF{Fu*PVW<}+ZsYNBuCRGF4}m@Fx^g=p4i zW!f)ySv+UHOymE{cyzg-E=r}G%Qh0Pzga$!#>2qM(g#m6M>66}>0y|D>)7e;t!V3c zul+{Vkl(LuKf5g5nIrW3(EU2b3e1sPEibu&W;S$d@yC;9wA?@cA^KAL=_o0hlGY?4&pn~hr(#z*kfl#|(mhI>hFow#pM|VGqAl3ulcNnz z>Q1i50ehS+Y|R*uBK=_zqR;jW=2R0tOIBQDfT!GppZ5S00|&sAG{~nIfsU41=TtCWFX&yV^f8D+;4*Z(L*pb_|L8aEDf`0-P2p53>hajw z^#wSq^F-8ZZM$CfRij>e@Ei98kb|cCr=6=N^ici$J$6G4E`k>2eC_Mg^NTwoE}_F+S3RJp>6cM(pXon!jOVR;=X9u zeNRxdOJ@k^LDMLY-$Chmd-84Ey`ny|pT4e(-u0uy>9v{OSOow3`isA1Uf$h}D15m! zGD2ID9Rg|1E$lyM&>zTK3otR*9^dQXk7t+-u$Nc@DE!a-i~rBMnmJy$KRs3mF~D-7 zsN^(Ki_Qd1$0GCiz(ok_=!4N=0a}9;!`}`j5*2sYreg^G#Nf3;t#NW?0 zTr9JWz6c!-<~mS}4~3Mh$@~L-%ry3dWQwREB1Kiz3DtqBJ72|Fm5z_vkd}rNOGz_g z3~9qz!C8-r|21|iDJ7Vch)mUS0}P**Ar)-e{+gE!U^Q=%Q!jE8NJ=Fb0&$a$%NQ_& z-~MzYnw(HVB5|0^K!+y58}aP}ZRtuAeB(TAr^7&J9c$%~wn7NT#-N+ubgP$*1Vm8`3a z&9fU*HAVHsy-6QVaaL1d#BM$VmoFLHzehI> zJH~^@3_HSy(9DN#0C2L9n@Giz#%ok@)?ZMAJ}li4Uq)YLQl!lGkR*KX$(^zo83x0H zB^AuSL$+vVNd4W9h`Gdpyy56X0UD3)gYQ4-D<%&yvH{*$aOU;LqT z8Jge1!w1Y{117v_b4U~4LMN?!vyfIkOxg9GnGLilWh1B9-YPblK5^h3t(0}fIK+0( zO=hdBMviQjJbFc>S(#u2U__bMc zD$9;Ih|}bvF|EXkDy|bIhs{az!sd{cxEf_;LPmqMNu!W<#1gWlg(eLobWba_jg>rJfN*9-#nuKHhguDP^lC@P?db9)fu!ao+7(i zSoxA3<@2t%K6Ee-H!f%UV+K>2;B6Dum^c+jxuwDMb z@V;BN$s942qubP(W?o$><7$&a&gm3oCi$23A-K?34I3UWn2p8ZRQk;$ z&3T&{hf1ChRx3&ijnPwAXPcP!7{<}QQYCzbf^?4{;^a?ax4AFi`;7%}7eGA`2()Ki z^4J0^IC&nzAnQJ_$@Xx6HNl(MtHK>;Uj2;PxoHr}`!j_!a8`9-q*O_Ar6)fBtQWN$ z!2`S&HG#&4bdRZ&avMUV@f7`IuRhxOPP8W+V&Hre(&V}{jcpCbdWS@O_mn#)jCF55 z2;?{uYmcZU_7pxWTf{*DEq8h%or<{qObR5k{f;>yX;5)^wMlaAO29FiXsAKYMb zSqMk&8_)8~1`ns5j$+KVz#oY$rviXg5woHuHlz<$j9xp@oF|w^^Jbn%xE7U1W%5v# z%K2z&Z@FZHe#9Yz8Reh5afl-eoP|I%FlV^KNi~}=3w^ge%vnSRn370Aq;}%G~ zydiH$bzlb%H>DGTzm#6iJ)aXncre8Q1_3kNtA}(I>)o@IhcI;7B?xsw($6c%4e&{z zcq1g@1s%(^*^O48TL`kbg{KtK=M{CNQ;()xlq8w6dNWH@Mx~N6(K0;R?cX;O0NLPH^^sAljrh?Co04`&vY>5NMJRk;!6hcL{S4aO_?$a6?%71IhN`vWJWuPbUaw-KKYum2&A5u?}stl2lQYjUb%+@+4 z!RC)*9AA}>pXIZe;U_I0uXy!oonC_s}J&4iSb+8%J5nd8gFlu4F1J2D350*#ISkcWT6Ua47z}j>r4Wv_N zvKD(_jd-#$Igrb@)p}O&E(G&(5BBLB#e1#qnqhp4F8qrZ5ka)tKST+J$)~+k=`6)#c0&!`*7gJQyK?!4$$6W6;6y5K?#_*1Ke3LdlVDJg z5x!$UsqW(nt{KLQ^RsNvRpJBCL@l3vKf&FZ7_?F{{&3KI1qGFG^lXj4ETsWVI6D0U ziF%MUk~n_=zK;U=)Zt3X&kaQTaTnIC#C++JpgaSodsW?X_Hw@adTD)7jcegkxcm0H zrwvmPj*RFK^8=!6FqejeVohKrzB|!t8>npkKt)=8xD7fY)gv}soLvg>7o9X%CU0lE z8&QYr+(}LVrhYqgyZl`1mpc1Gfqq&A{R>ZIx98KSgFnfu11EBF)p&K!ll3F;XqpX0 z3JSLpOLLE{E3)Q{aSX?WE(S}Jc+y*HD!m*z1w>zUq>MSS`?=XTy@L9SOt9FWY|(X> zy`DsLOA;;MHC2B}ijCj;_0vXMx$4h%z=mYwW}n)!VtCt9|k zps&*?N&SO z6I>St`zFDtlYgdH)VEA;pAyy2xc!r3g=YUmFYt6Gj^!B#`uFlr31Q3j0r5c}Rdp(Z zfM-1R+)@HA42f#vKys}-%Yux;yB&rhtpQ(Hx0LFS{tEts1*j~3NC|u?KhW4Gz<6G` zlR~tgxSDsVm)h__->1yWO1};HSu~vVCh9b5>Twp*u8+zlXCV&XuQuiC5C1HjTNn(S zBGFB7#4-bi3U?7yW z4IFklL(r1DoWm8jmInm^Ev#7R>grl5SFDo|#yOQRC}a{rhp0AZDtthL=^oD;)0wHw z=^j2d)K$iGIcfxZIo zoefZ<77}-2Jf+c<9N+lSeD3mBp6_H!mO?TL_xy0!@5plba>S_*Y84Jj+^)hoRhWzk zgyI#9dP%rXpI^Pc?UJtuYZ9YxSBhVsOXxfCV*>bak2)qUhz?JWj=}(NbfKLT*`VT; z3ZK3NxVqsFnYJ-o;9YdbC}O$IRgHGhOTh<2^c?@`>+P*9=(l&^`I1+`HH@>R$XttE z7K99zi@9(hSGoX504@ZUZoc$hWh`dNS6@a0^f~0-zW#p=XCE_i=X|090H`$q0Q^d^ z05oJ3gzX$nqzqjRX<6wQ>6q#N#~u1VcE(Qh#&$OJhJWmgOz7Qh?CI_7oh|Hao#_AH z3l9FD@VoXu@Y{BqLM7xs@SC9Y4>V+yF!%GT;71y_@32RDqComW<#PA%|A61*d_F(( zCUvZ@XRR?kcw5eMS8nJz7idhDPw(*JHJ)FN_T$*G(_g?W5HxWd1qWWK+I4N6U`%9& z9Nbl_dAYe$WyFi{c;`W#?g#nHDXrg^oLqI zgMR~fgO&{@Q+;{|@ZhQuHqF}wdbQ$Gui}1rJ8Zy6+2`X zg5qHDd^M)w;}rI$hB(MMv{fO15)4xN2e8L=L*`xR`V^@hhud>)=+yIU6jA)20R8e9 zG;{h2DEu=RSMA?ph2BhO)-t0_clh0RGi7iUfLJ*Gx3hx=|1k%joRquPPySn;or3ZY zB7?BzD*UDbk3hg18z`W`86Rk%$sQZv)_j#glQR)C;@e6K z311P`vV4vJUx_PU#=8lW86X^cXIl~RK4pZRBdXEU19JJI>h|IYVd7wD#DIo&R_efWqv&anpVB?1#6UL^vtp3HNp5oe%06X&^b zFb5@D5|4$4tnWwxBJ1Tu(t3@Jvq-71r-%c5`qhksn`Vb|k=O%mSaK<_%+u%|uR%&c zz-S8XZ5=%_rpF2ogooR*#M?(E-&QX^;5*!&?v-I>$d{?rGgQ>EWAQ3Zj|1)v(EYa4<0u4iS)d!-vZU=Gyro-kfacx(6*~r^-pM{OmZy@wU)iDfcJmK>xI{8N- zv1fsJ3NJLKLB*g>C(GI3;f@2WjKNnB75Na{YtPzvD9F}wmiq{y+w1;W;Z*av{R^^? z(GolnuFUhSakm{x;IA3X_Qo824QTisG+jM6~SX53F8ix2s8@`OvmNfyRr z(Q-5DwWf5e1krN{MfiK?Tf{_&*GM_&t53W*z$S>$TFgsmWG2McHI=U3w;*#JeyMl5 z|H0m}pPAOO5R+@YRn|aSVC{UJ3QHBCc)m5lzZfBYg*Atmm9NTY5CzGa&acZWn+R*480}%W`G~N4Zxk+|G*+?Ga(?Jd!KROs` zwbGUaix>b!@>(`3(z84V@t}OUJ9z=~9ZUet67O%uMP#4#^`^&-a+H%&A~Cdh57hQE zaoyW&Nx-IHnut5EO=|34e{c;7l-W{w9YP_I6*26~m^r&W6AT~wd*+J%OPh8xb3KU9 z#m@-)__)bmFvS{0IEEBh$7)Q4V@fOcom+P4bc%T2-QHrk@s(;`vJANsm*Z`ip<7p! zjeWfj9;$@fxei}xlC2lv8(t)Y6M+YY{Q~H^|Jwi$hw{wMJlTrtso^@*3mheWo6{22 zKN~Yd;N96Bb~*y=NhC(GE}UvM=okEx9uTFH^*3Soa29lG9Mv=}nbW|=tCcWyTw(<% zdz#9imwY0iQ{8zKGB}ptyA0KN`OyYk0t$l{n8A-DHR}%mw;EKe@`yiON?c;S3!^K6 zLiqutnoXHx;<1pB!4Sl!AclpXxi~@OZ|46_B!X@u4n+6QOIh7NWBLEIE zA1>dSD;J192lS`-=ty?KBL?hqc6cuTKZL()UJ&HRQr|ra!(G>{T)P2Ga6RAG$Az0+ z*8tk|F`=zo-%6XrD8a1wHuoPy6D!<|DH^xH1~IpC33Q26rzALG;14Mr%9`v(U@k zH}6*;YE7FLdTp6GA5}ZsvdHe071NW(?&d=pJdJyotC*T}x@x6k_(h$Q)b9*Ad$-G$ zBnR3zU{kL7?iJ^eP78%$j0TH_*-?{g>SmprhnPagIL*r!&){ymEnwZ9=DYe6rTnge zU7i=aN;z#l0P&bqUN8v6yf=mdFjgMoK)mqeY|nR!QfoWF??0n3Oyc$}mv<&p5U#Fy z%t6vUVUduO;sT&M?T#`4^eut#b3qqTeV;J;i5-mODlxdTko~(*d$8Fc?m!SbJ=ZCI zOk;S+M;usxX5(6Y*~Y{*k5MsdJmkUGkq_L~2U*TN)8nP_du_?OR35+;6Fv(G3?vqwdkG=lDsbi*a%BcsCKQ4DJ+j8Lb z7w1i?lEh;Ez1_<7v{9RDwdWAj2pGEalwBO^Pz*$v|72uaKzb7WSTcqEUZ`Q|FaZ=!1s8ODVm57bd zer{?RPWDH^+urOID8lDrI_L|nC)DZ)GeeEGsUAS_up4#l4YP9G?jLBnqs=G6JJ;?> z29v%f*k}ZC)AJRV$n3>gpxFHep&U!?Svt?G9eZJ_xkqY4c_coE#Be&u&zs4w2g^D0 z{y>SZWX)W-NRWBtl3b=kon{!5&PPoi%sZZN4@Yoi8yPx&o-Qa z=tqPzl}Ss zM@{w*x4D--+MmT4xRl;Y`lW(szBbiMsQA32P0Ra2>SF&4aQ zOJ?_(O;0Bhg=n320QfXTIBtRzSL;raQ3ys>%+7}5gXG-@iq@AlHi{(DOQx%Cgyf79 zP`K;{Qp-1gx&L!Ncd(CX3DNbM?G4MfsW2mO>*;4#J)+=}RWSN!i&0Usvr-aNp9&ih zW+uAd>F%fkC5?jDbEMj?x@}4evkOC;u=oql7bDOA zCp@21FHAam4a~2#w;oq5MfF9#NgqLV`-SJ)%@=t0pL3Y>hvcteypMl44L{q`eFIqJ zGFiBIR52-uV`8U@oYwLBY(5w0CWn&#)=U&SjeA0-iea#jJkYE!PeWYmuoq8i4(DamDM^|XNq z4Us*kej<{RdnYRk@-mUdTY zFt-IsCtHKL`TjE%$nb{NR|(C|i(ew0PnL>7-flSgn>lKI;P0w|l+$3vTYv4&V)()D z7LW}NZ+pDi3DbfvIGE$4?{wu2&&4p??{HSzqAap%+|Gv~r$HXb_vUjQrVo+%hVJ?i zg9v#Jkx!Ot1^-cMgJf_wSAo@(; z!}X=#IAYJEh*V+TuYeD1P92iMvYx~~!5KWSg-|Cm3RsJPAVw>|o6U%xw~BK~z`Z>B z`!%J$792elt`_%7DeZC=^(Xpe&V3%w!W%4_DamD~q1g0%@oyC(fIzLEKnFQy{b z6$)((ca^11=fan(YlUk~3a^ZnOvjKeXlcf1=}N98nJ|Vmq!Pb3as0)spa9QGs&+Wf zY<7$oj?gz@xa>pH*;Tepc5un=ge=PVMu+j2#nbR>^#-8KM+OXJ&mL=PVP*cA>RC8G3BmQDC?aBf8M?MBENP2QX()) zLkr0t(P&!9rRQo|{LM;ZTS?E|OIjh>b*_BV$!oYihxZ zEL{^9vMl=|>)*K9tc^BhJC%ldWHIf!x?ZU2;DFLn&-xk?w(<*OtEq{j|Gq03A+?D` zV!6$x7GJCC=mtr*-E*sm-=n0WG#ke>ga@r0uohs_qCyL97IoiWON^Y*J@%@}@_0IV zr*XEl{=C(FCV$lWHW=B>hSn{fs?ZvfF`uU9>XL?wRTJ@eei0$GD{4lz$Nx5Eknf|S}heb+^BPv zsY0&Jw(^_LFPG~3JWT4LNoNvIOsS`xg$KhFTrPZlq_3R~m zgGTSBO$KstV=1|(X^CQA+VxnFm4Q%_y;eg>A{QIJk@DYnJQ)DT$t4bg%#U3MaZY}58uLr|9*9Akf54fCKt#gkKd==A+c0~wCuW!-#xR} zWaDQ+n4AAoaomg`tB#gW0~#+ zqbvGE6JD5_!97_FX^BGoZZ@Vc0__|AA{BE0nbyq5TyXxl$KHAqLHZ}Gnu851t~8UV zd=6(RWSn3RH7s6Vxum$Wb5TR^)5XoW;)SR4t#Zs%nKHG;?OO3X@^ZEifLuX-g$%*E z9MpO0Dp`OLh@OTZbmw(HE|_hrc?%r-g?<8_AE2U# z(Qdf{YTt`*ob^`dU!v5Dud=`B&w2wcfYbu8C?abbW|038-4${M`l8+SN?>Ks_}| z_3W2kQmkr>{`y#a+ML3^;2u|yj<+qxqrdWR`X;m{7hjY1_(&_2-&~k-qQkTd)8a6E z>gK%}^f^~qerwE&T#zq(c9>-Nx9ERf%Pns&n3sybp`Xz6e*+eKM~cV+l11Db3HjVI z2LDVU&vE|4m}fCcgm?Aofu2AVUjJL`LMk6-N5HQHR2C8d;I~ot{~KfepBAS7CI4(u zleOFbm4DVX|MWjuyu@Q@m8+rJYvgxIltgVf^UF~u$wX`pMOZ73_1>%z9x2O~piv^3 znttwNu}37$jPI%Qzp`T{=Jmfu%3Sy8$Giu7Mt^Z$Ftb5`nG_zeXObxBSQ?6uc?_)G zW+Gu>C+Rb^YS4TRXXI62LfdLsFBA_a(k$+YlNEN)=5dkdiq{%4{$nP{H6w0~B+;4a zKp}BK+*4Hj04AZZB_LW1{Pln0nGn7$JodiD{M0IWZlBS~N>Od=|R6&f6x; z+X%>EPd}iBA(92?rI+ws=LPo4Jis{#X36&36L~=CViBT}8j`_EES8`RST)}{4j>WY zM+6p2w@@O@G5Qw_p>STa)U(hmWhQF$`=q_|QP;Ut+$^M`UD(;I6`U(XY*`Pi@#&(> zw?MJ?O_cxSThukZ8xv}ntg}QxnHeSpL#}p6m+2VN?y839F`R%3(`(EOif4zHomfn$ z{@cvRSE@Djr{gG=4gs6jh4+B}o0ZClB#&AWk4W=zN{G(U&MaEV#3RSh4x9jT5tBaN47y?K*z%>LXQ zr|MMa15z|xVU}f&><5zdd(p{EG=H=208tm~-3~+8rjO3C_~hw#OaC{h$#1+z`U-ji za2Q74TObq|2H~C{^!5@zvxE)tJ)?(t*gji@wV^u z;3(ifZX59O)?c@cheR~~nBCdse5!KarpUc_o%PA*^yO5u)qzggDqa__FNi!ieeU4h zWY}z{&8?;2?Yk#81XoaOx5HqsR#<>RMzrb_b1F!G5ixvMgwoqKLHci+<+5XTm;)ml z1UZF_JuuiQ!nc^H&gEI=K&J*woP*ocI9N-z&YVg@gU!}6-NO`AQ)P~?9|lwzqu(Cx zW}Pz19U|@g8~5kD6PukLc-DX+V*r{htctzB_u@L{!p&~S-_{RcwRXjh6PHR2vQ;Se zeTZM=$2gN6sHyy>v>f9P&2TAt0u{VaF6ETU;v$iyy4^w?BTYmTJOP7+r_wZXGP1}~ zK<3F%#cdIk5G8Lq1P<$OnaHKQ=y}$r7VZ4YQ)2>^Fye`&V)XN3b)qxn0H~qsvLAi7 z+Mv%oQ6NwwVcapdNh?dE*(`uha{3^7hjX4gNE#9z6Rx)Y$G_hq6nw8DX>?;vVnzyz zV_DKt_d6z*EQKol*3V^fv%vZXO1VW9eGb30zL#rNp1iZhcj1n~aZ;4P!&LUbzF>#> zgJ|_tMehwyvFoRr#fD&tRO@tu;zi?`GN91FSrVvTM1%%JRR{{C8cpwfes_B&{~cqD z$Jl?T{Z(P`a*>_Ma&m;hkV%R4M{kJSq!Lju6KiMjka;VUzriiEdQ{UlLb`U{mF!h% zU(zBebS-eLxKT2WeC32hgM&sj6|N53H2%mC6_7DB;IfF8*;}5t5~>&uD%8JM3Rrq3 z6#SwNSO?W)Wfl`dTdN`vEioLhKY@i|GR=&V=j0OZI8C>}s^O9K%PYalFH#P+ zl2*zQa?8>YT9a+zDSd&S0%@RcYGp)IprIWw%Sb>&4XzW*IY3ivl`%$@AlDt&!Ol-@ zIiJWf_gFTRqmRG2g?o_2;P3SGy3#f0a%O8MotzHifHL&Pf~gzMtzHW#o5McqLw`2M zKBpWwCi}5kk*{#6k;X%pqSfhlwn(wZFH&kYEAZhVjEcx!=B&Ghd>?`~!tS_WVq2ev z#Aip){qnO062?i2-F4maVVjpmqB;}rVi!&pe3A&(KI>3cXr03s`k&%4NzYnrZRCke zSvh_w1%1A3w<2k6o_6a>cb*QGqP|pG|xS@g#Wx)aE(Bq}=zpW~ow;MzxH zA_x7QXtVadjvc&}$~?-dUApN|vuMk_i(owOjUfx zkN&the@iRhvUelI$u<>Sc7c`}Mz{ov#y<}OYP(&v&d~I>XDW0E{)FftPK%vV=}NO> znkd7bzFoGx(oDHMSs%9i?A^8j033`4hx&lJa}gbZ5_*8CqL1*m#3njwtX=V#yV|e| z@hvMPY(QFWZqS{Q<3-V8`cZa*h#Zn5vWC9$RF{dP9fC<$gtPNB?kP-}+T>O+v+GP> zO65?oeHIJMg{nFd29P0C{{{x|YBU?0pu0RAWE$wOj1yi-3xjECX8mdc2agjXtB+CB zS`R(5$|%VrGV@HN2Ew6}u1HY8vdQs{RFD56>UrpM$^y^9b8iu;GA!p1$SffFXO-Y0LbF1@EY#h?O;6mv=}kCjTHq?pO9wSjf6}IdW)rD8Zj? zFd=6zlOs9>FJzYS^kGjV5{-f&2jeX;1xYQ)n-jlqkb)WYr?xZ4##M5PM0ZhHMI;q< z`SCIXX<>WrE85vJL`W&SV?7){coS&%#lLlqqb~x8R=RjsCM*B4Bmk3aN)_p+r(i^8 zTpJ9l>d%eENccN$Qncb@n;fI4w9k~#u=-0aVmslF+FOs^0iS<@$qFwQiUd+y+xuEH zpXW;~h`YCD}if(-#+0fwk^YKQWIb z+&u+v)>(LiO*Z?9qm{p~lT!&UP2QF7ks8Y49mu(P34xc$#^VJNnue_&zZ6Dg!o8c+i19(!P{;ZpmLt z>$_U-(!eir-H8WY3$s&A8e#@y8g$ctLf-|&Ii-@lJ6@t*Y3za^thwWBMbAH*Fxp@rQa3*Zw{=x`H->lN4IW z;^f_UpS->{U9jC`!*gAa8lrc*($mk~UagDP1yy$(bos40WIMg^_&6Bhv&U20lT;M) z3`{w6_&{q0DBUrSYSN`W-xo{|PdSLonGV2-Sd6lo!=WUGU$>HG=;t{f^7fEO5ABdOV zy{?ZBn#IW}*j*NakH(BA_1+r)*jt;vUfu|_L~8B)$$LER2OCzcv>o$U}RVu*5( z&`yG{qTRa}OB8FRhF0VA2l5Li&!0jg1-H;tAc_4E2ycv+GOAZOta9X`q(y;Xve9h4 zD)uu`-|SkkE%?!3$5uIm#Hv!oz-_Ytb*Ah>t#4lbrm1md_L@VG%N>AxNwQ+xcjBnzT1MRZvToCB)@7msd4-8;9&i~HC77U^#g;dx#UH#hE)UBMPp*w`YX zV6Dg2D71uwo+6^2OnrSpcRD-;v(s&8!>5qbMRnx$Ia%ir#U%I!V)J4KCQY$4a^(Jm z=~X#|b5OC_Xx=LlBNUwdeY+RtbW`nojP++2o?#v)U)X>Vqt|ffq zaWb}s?b_(t2T*2%A*+lwd$bH=4Nq@MvA5Pg-%!yoh7}A%i3aNMvzDZGc_Tp{T2U7; zK{J?{C^cCldjAZrC(4lZylr--_*~zP6+Qx*+Ci3yXuZLM${1#|Tf-5Trs!j2T~YNo z-D6vdF{3)S^t#xLI=CtIuu;$Ck|g-3z)O>^cLHeauG;4=enqgW;f_@sI|)NZ;{2(+ zsbEja{M4gb89l3=lb6DX=)5upaL|DA-9`rE(u^_rGnNJW&I9VsRboC+eUEcFOlin; zs2!tt*o%LjaIs9q(A`Qc3WNg)&S{7~Ua60t8?g|v(J+e^Hju&tX*FmprX8J-wpk|A zV1_Z6a(yYR0U-xbX!kOmkV%IMo8jVrhMl!{+YTpB_kC?x*)|<_uJY_6-sCt}FQ^dD z=t>gUv7VYXhR;Lv90Qmvgsd)bXr^G9y%}SbE()ojFQ9n{OPW!wh)C}>7w1DSLNM$F zd;7mZnt)l<)qORsIK@5EqyKc~$GVCY@j$~n-tFoPY-(dy?+Hrr9%Z1`iHDRmm0hf^ zYzlZWyvgvmNXWDMt4h%ymWvH?)R;v~c}-j~BBC(A%erxJfz*C16N|07y6IudesHCH z+H=w{F!ztU@sqK$Xwk!0b*o`+xZqc6&mvZJL#3h)Jh$8Mt0IqZR@>9Tj!R!s(j`&_ zuKVjiR&Z^k)hE@(H->gfb_iDoLY-N*XBB^_DUwwYSo*`&oGCeY=8GFe@-|j-i5}on z$cOcJ6de@`0nV{DCMs&;Yi+>Cx~E*Zk6RZ{JMU5bH}Qj55pu^O-oIbDL13=uOG z-L`O6MBY%H!$Q7t6Omk!dCn)R4|{?-%H!JE4NWSiGzDD1(LHp(*2cUBQx6YP$Ehu- z`}uSv4ygF{B@TS^8^8IDEPVQn+^d_>oXNb8#%V4Pd@m=ZCV%yZ(Y|R;whpCX;hz-E zj=?m+#UXbe1|x`fN^ZVu&S~b)$-nxXygJ~1^9q)Ac+PVqL05zUIdyBimCOR*3k zImf;Jc0vcJhaL@uT6_aXyfr}C`u?{M&t()1{HDMF00Qs;0C@j*mx=$|h>B_PyGlHA zBmMkCB!P<{qi)Nm4NNf(Z&^gEl^>JU+hkymwQegB`cDt#Z0w@5Y#bmcNa2Rs$=i0> z0V`cg=f}T~qOw~e9&b?by1cI60`WRD5Iegoa6xYC6YRFHZm!_O5~}$K2~7CFGF# z;g3VW2aa;Gj4@0%ruQFYv?z$$<*$$Lov=-}+8_x+oY;Ty(*`$iOE-M&J{SEt-1hcJ z1Jm8_y5z#-nZ_3_LZF54;xt^W_r#3%5&H07@e905{I(#XPDxwB1?FunqtXV{AUD86F~(-zKaiE1V5CDKAkp0NZ%2F z+O<@PlBMYD7@f4q?bMjG43h=l;zuo5*ZuVnQ0UJhJew0uCOkfOKy%`gnBJu&A0$5Q zBcekx)jq~ydBu#r=g)PzvMMoa`NcTqmYgG1s|D-9T3?=W`o2tL<8FMzHatwwW;Y`S z?(ouh`sSLx33T(fSW=RX$Jl}fgI)gzYu^+kYq(`uwryLdY}>YN+d5_2wr$%!W!pAR zRZZRLxZQoH=VhilA2KpuzKG2DW3RRMxAt160m?}i?CDLq3GL+V$Vi|L1?sUz)(d82 zBS@Z#(x{R@?PG(93Oxlp>Mtf$X?a_W<$s0%=Z^f9q<_!;tA4s z8o5MLs#I<%;SbTydk=vPa_MX0lP9Ar_Yz#|gd)-cWaNd0xccQf45sjS3l$bwS%;!4 z4rgj$EzM?M!L9!4ifSGxyu-eKqJ2et<2agjl1!PlR zG?<@Bg&Mr+xI-(;>h@c%YejxGl7NVROcVWUs_B?st`_gh?M$<##gkSF+wCpio2;hC zP;*jQQ7P%-R5#p;xz<`*+g&s>EL(loEz~@p)@^M@$R_?GD26)8R0J*(c}r* z+aAqEM1bD%~(G=dBsF)^I!7Fo?mX59wfXE(QX zsV?9*oKnAGzOWoYK>}}93JerWai;I=)1hVq5tbsBG zjIv78N}W?hTkFB5sqCln>m4`PoFlgrPKT?6;-&(iJnc$qt>*QrDzB3=hjMPy^`Znf zxgvgU-Lyr7O)P$QYfm8)&fj1k4rnsDyG|}fJ^O@^)P)#{A!oQHE<*&=LN+4;3}Ou` zJE9#zIOvSuOakQ5$gW zP|_L}&mT{as51%XAw;ebz$YUPEejV=Dt4D?hKpQS% z`GKNf8Hj@ejjdzL|n5ml47Az(H^!0x{O9Ue^rt(D-j9 zA11z&l80Mb?e|%^w{!VQ&OJG}RuxpmZX7D4UdOGsBJ7Z@!F^iKEox^ub6QdA8}5hd z+@9yDwadT9OlBY7_YdDkC*PB^(W$u}`G1dIa@!I8E>O*DKHKdCBBkam!GCGFs|x2H z_}}@&Pmj%83cEI8NlbE28q+V{CV$m-xV4J z1?x*6P!Rsuj}kOy%#g=Rz-oH``-Jre8l5i1e~|ItU+h1h{+~4J_KtS;CXUV)CQiTp zIk)|3`(>pWiKDZDHUfVQXsl zzhls@H2yu9Dvh9@DBd_#YYt5y)o9+fbv;E2f{-np6^sq8WkZn=FRazr`s9@L%C;R| zA=zf%op<)m!_*M##1($yGj$96(BWG@*Ex54XU7V87Jl$VZNs2#W5)%)26Tg~=$A!B znki8+Hw?Zr_dcnnS?i!ZYbI!8Wk6hEogWIB=TvR5HUy|ZmC^qm7H8cg!cBEJgABb) zhoy_K%ZSOqE6&CML`SyA5`apu3>njt+npti5D{r{^;heEOgCSohKWn?rN;qtl5ebx z&qQym)NJ?oW?w$NA5J{aM0>+dGlwoKfkuQ8u1T?s5k~t98{!b`0|de!(2Nz0@mqpX zxjW2tk7BBLoyju`Qrp^(&jJwvj zRrRPA^)>Pz7?=k}oRt%?O?S`Y5xOlr%JLqX{5u$892psgB?>Z9;$O_*&5mQMV>}^- z5jU3f#9?qOOw9|fgSScq;`p(dIDm!va)cTGsbi7qQ$G2zl^jlMO98EkND+zvJ zZozn-t-P$ph}DKiK{ zd{1bB?=oSg+wA2A7ga94<}Hw9Uzsv0aE#MAV&<27>cW}-1iOt>Si?Dl_q$trF`ZpR#*R4}X$H<>hQF9IqBJjb8 z-+M&hw2l^7)R0pP%{b4RHV0`3nl$Veyva7Z-X{5_=AGO0F5 zOy>Fj;M>!uzMOd7En{)ft?l=PXfZ{lq_JeOr>Xrmx$Q$c0QloGa)y(752k*)oqnI7 zhO!IAnk*v%1zqq|p(Itos+F5{S1sK=#(jFZEIGAKWb_UYSM$;#*wgrkmWMV{$)*z> zU~Ll=^f{i)(z)?P;E28PYobnwyJub}3GMmf+`-1u{SM;AXf_!n7A8p8kGb218SKGE z^dK$$>#?F!ElvM!n|F3H%muyPKQ&w;^EKvddj6TAk0GH zH_ANZl5wDWZ_gJE5W8!>WqV+7>D&Z3rR#&O5<1hsCdP%j#W$Hr8;GB|Cy=vRkX3rX za7Ja~`lC+=w-@>pYrPZ-l0i?5h2B;JD9}*{ZCf1O)IWFv>^y^>`)K+Zcb-vbLzV9E zc!XB53W?()Gxr=Mf^cLIh~h}THR=^mGK+zQtofO7ExXp>LG6i8x)vI(&WaS7TIA;k zxILnoUBz$&o}Gz#Vr4H8{H~S}(Z0-|zJScn!D<%^k-(g>=y*RvW~l#<=CZ zPmdOh7>AlxMLzZ|VWN}Kx#xAL%}VEo-=S@Cv}v^rlIa5uj>0fpvsn%lb<9-w)C3> zr-Ad!Enq4IK#>qZB#UGKNO8zUfHD_}&H|vG=Pz7k_osI|a^Ng!@Kt{V)~f97@T5L_ z$FL^GE1!PgRH<^BN$#OjAFb2*6D72R?!An11ba@4uanqZDNIPoTgoa~!bHK?-vW<;O}dU(;h8I-5VNQz#bf&=7wh9q#7`rDdsRbI@v+;=O^O8BNV`+&X({*5 znlDX_Z0&8n%NKa~2)0R=+GODTW{g_y9_QGe50F3oe{Y4P!9Tun9yX9izn!MOPtyGM zIZSitzk&;;%_ep{GtQcJUill@XRFY2D(;Oz!P%oI>>{mg*W(%1=Pm0}+EcBQ%({0&>CEeW_5J3kG}xwl_JEY4m|GF*`;)r&jPT0ive^&x zp5=OZ{q{(dATLHSy@pCJA3o;`hBpC8jBhp|-EA+ycEV3dSfQq|{# z@PMF~#>8TPZ+Bu9`Ie|aZ9p-;j|x9O|Jr)e+Aj{7f}}JC#pYd!P$Y&vj#1Uy#4cNA z_xSh90#hcmO8>U@8j&SU!|3yzl2s~dy4?oLXTXbOf!WBp0dMSO3AiDf-xpshG#K3o z(kyaK!Au{H-p3LRm7;kt`@%kOsX=8MqM*3qmj6jKKY?pMxFrnXQ!R@;ip!3p zIs}2pb-out>i-xWL>>*cAjF=7NNQQa#NiuXw^`>Yf;pJq*o)^h~a>aY7 zS)TgA$WQQKm;>ZI7ASch2q5qTjXxw6JuyRV4**wllhwp9kwJUFkca_x6^zqhnldov z-I?H}tvmIqkaSK9HS3 zvEbSt?7AYz)MG$B{MOqM2_63H3Rw46cq|?ES$l2l_PWMFdcu7J%`>!mU2(eQEG=&1vtJ-*#>edT8L$nR!ETEMH z1w8TX%qV|L@8g3HiyWE(1ASSxp+;U?Va$%r4Rbg5xu-XUFUzi8STXFgw=e=%&J8>P z>N9v;4Sdv$j4@tFH-~pr#*hLh>Q=W~FUEwIT{%#0(Wk9=NF#U3M63u`3&UCr516nO zO%2=6=_VA~Ydx(0hDOc8Qw+9gtkBOpcO#iQnm*HYHjKt2*D*mDL`Hs0&S=_TS5FEQ zIqsnz;yr#>zNe%+f~_0tE?!qmLXHE=SRkVcz+5;=XiQSjsrd5jaATfCJ(hiWR`k)( zGAIKF$Zpj!TYE{~N+>3Uwj%r!ln`ZSa4-zo67nFB^I=Y=surt7 zwR1!qHJnokR@TRF(ImRT72TmH>^a7Shz1?{t0_reg7_&zyN{O7?NCcj# z6h)5sWps-d5VzP&dq}C{Rzo;iM8g-dmZp_L*qf{CX?p5poUb43UYspI$_2@K=fR)K z6ex&lrh4@iOKnE!k(vR>tQyv3q2IE)?r!le)WiP4Dj(KHDjAWd9=g8ly_Nu+`kay= zc_JHwc9eD%bS%9$J;>PVAMHpNxxW-v6|eI1zv83?0bv6R+2$|w{a7pU6lmowm#6}1 zl~yOEJ)Crqb17HrbBb(*NXFj7)sMAbG{I1ng3=jpCZkvxK5ZCvPUJMc*IFeXIGIGe zAKir{W=_-<1n5BSyl&2pIlqeHRF+v3cqPqlx3_rgFX}UGr9Hqu9K}v$$10PA05vhW z`DL(97qsu;F2x{QmJz+a*-1)~ku&rptfF-Vgj^VAxQ~Go;4(GAzeu$r)OrLWMuFvp z2X%1O=J$Z=mF_BB%GsGumwKUz(puX1tl!^zsTyI>!sp>?>YAmPgK3hZm7dfw8o&^5 zUu9?PXln4JBkL`g8?e%4$sx3rcxiB@Yq`nT%vsV9Nf&U#^y`BcVjyC%BC?927r<^w zc2anK=PzSe!aH!uM!+LH-N{q{ZnDC=XN$CG0pC;SC8e+@K1W-?ng3P~f_La*h?XEk z8O%DZyuBXvXR%8oB|MTER0MZhfr=(Xd~FF|VvtF0f$<_Bllq|d{B6P#B}@3zMT;mi z){BgfjfTQ2oa_njEfkxw&>MtI6O{^Bv5roCKXwhKQIgtX!5sayInaO7W+b*~fJ|}u z;5lXl4gt!y(iGtn{Xkr;=oX<_LY7+WyuOUM*xS;jZA2EqzHOswpr;@qN0@-j#bSeQ z#ZL=j5MR;GO#1tMd4|U&03X{unMA8RRePa9j$381?2nDu0S@>4@CyMruZ=$z&=&-P za2@9F_po7TpI?H*S;qv}*beuui>Zb!HV$?{;ryW+g|JW$vy0JU^{ERx@k9Y>Yf2#< zV$6!dO5WXD?vPuUiL)izdMA+aB0yy(c-IW~pX$4=7F35WiK`G0A*4bEFE%f1W3GXY zXfsHRcZl4`NSTQmSN96sOc(yYm8^DDWHPR-rptfRwK!kzs+xoja4&Ub9%A1PUp6kv zd0YS1UFA%WwnxBH4c07tTJ~M;fjzzihPY3;KVEFHTP~Hc<-LBv=cD3-sQJKRmtU@!pCBfGE4<-# zNoZVq>rc$O`feoGI+^`8ll#i$dHbBnL0Q|kWA{y{yf4k+A1}7^hA8I#-JtDq-jJAr z5oh0bM4K#ohUysP>0A>Iw`Jvkp!JLif1lH{I`Bw7zDQK73iPignw)I&9kjHnvB%zt$J>NY<^ zeuS@>AwTv&kOQGhR15<1h?baCLi0-6E+0W#C!6U_l7_7mh`Zmfsae@Yw9qD~x1hqx zv@@hHuh)NHb7-!tMn7%;`rd-%jMnN7>^{v;Cencrp4iw}wC0JQo8=lr{M?i4tM`f3BS^3YcB6UqJ@akyw1H|s-8sY63Il$C&vm@q zUT24bgWEfz4PJdNcU!_yR}ais{RV4b$SOj6QjbCqU5i58M_4P>m~qTLDytSA-0sGL znW)?+!8NnFM#NeCvC34QqK86?peBF`l(Io-dmH!!et)A$lAaYPi~ur%4mOQ22d)#5 z%|YYS;AJH9FCTG0p&w!MvjRWHcT7xNNoVr1W?Eou&D5`9-j;O2;IZUSd07=hc3xi! z2Htn64%JZ9j@WdNa(sfCGjIXSwNS@(gz=)nh7^N3b~I#^xmEJ(a#PBP)0ap72`D~s ze?SvP464>D{(c_|F5zU<+>Y)s;gbD0rWh0 z$i)1(F?|lyshi~Vk=hB9@QqEuk%6-m&AHz}Uej;C^^F+IQBFvf`OpgM9-8@axAO8Z zVuW#P;xO-zOY<9VT(l=HJ-O5hbISd3!Z({|(xkLyFxTgqrj)jA ztVgBuIzAg;9v3gXGR+RwaU~lZn>SRe@)w1^I4^ojBAcrH2BtQwANj_qt-e~#QfYj2 zo1~Y1KbEIk-_0NROV<@nf1&SnO72^!+%Z3Ah;*&ol>(NLl2&l!*%2!;k3dn^rzm1& zwOluwQxeOAYabnqzjej^t_SlA*|Jba_NU?~Vln2h2FtzX`Y5q1$I|A$n-cab>fEo1 ztNE~AfAKKCg8ggZLmCg*`33|482l-I|IZF0|7kk=Pbutw2)(~!?w7+C|)g&JpKAU8G zYU}i$SUbR0+TqunC=nnU?SLzdn66d9!dUzYk#;f(LQURJsIMdiY-nu3V{&E3IW^#? z?lxIdYiTUTVbo9ovoL^W^!TJ|4 z-A&nfD45ujk=~i#uH8GORfcNV!u#P#+YtMcclPvnum-+~0=?*ZIqX$+NaP+WimAP# zo-|gP7Zsv5pcz5IZQv>992B~Sl2D_P1hq*bCQAF2BHi&?0);5&aLf})7#rfuT*6X) ztj&{6?oBjoA$_t3WTZ(Ad>2tAfP3jW6VbhJ!7?=>Hu$RdI-y!(`p#c&-K_j}u<0bF z@Or^6cr}#;kU1l9Qnu2P%i3Hteu9|~p`dJsIERsAc08TiJNKta#+H{e^!Z zo53zW^Nxm&NsD}!~y4wS(lL)ChLp$z;^fLZKgx$&c8lpvi187YCq%jRSWHh}4{_`>W z7sWNkf4VxyK$1|k6;Nt|#=z2PPQE~PL~dnhb1?3tMcoI#`{lu#@Te}<&P$+RQ*G4y z@hJ7NzIP_@?epWh@u-*0fAjP;eg_C*fYaOUg)kcWDdcAVYu!dbFF}xDT3Emx2j2x4 z!m)aC)PXy5x?pWfd`w}JFVczU_{ESes6e5lG0*8q@E{i7|~kNRlIoyvHo1WTgt=xd$W$md~mK<#GT=iBO53{Ls%8elfHGd(kAP zMjOaVvd%9n!P7!uTq479Ze3q&3#;2y1^sjk!h^)oKBJo3aMcwcp{f z2jI{t8D?UlSP`ii-`||uoD$0s#^u8W;>ubYOsg)=nFoTu0KTk^y+cY{8**#6*Nr7X@qC8dUQd_oZgH@4M=Y6zQ_5J!oU07UHPN_^N z*64mY=;?-y#o9bTI0&@2LMwN&%55V=RN4i@@P~UF+FM&Vk{rjc>RWBlhLL{WwLbRO zL6`;326GHUw2?vvgnWJLVMMA|f~*}1unO-Tp0+}HB&f+-SNz8bX(L%vRxTa1#!3dP zV<4HMaQ(4gUHZGUVM3YA@=l1L8hbUCB%d;jdJ0I8Q>V-lcxpk&W-%ulh5=znNH*Ii z-ia(&CZ(0&tNCh=5&^N?*^u)9$oYMYC%%Ja%E!Zjwb^f^R_kQ5!EDS9iKzq-HXjW= zQoOYsOoJ^tj&$NmeSg}s#53d`7WtafmbPGuQ=oIt5B18JmP=jT4%!*dR`zqenx}~9 ztpR6isx8nm6&00SZ~;)`)(fCh?v6Lj#8y@Jyu=xuEU-!PnIaYguPeeT{b2}a*?#0~ zVCoRT7#+Sl-Rck1Pc7FON}tOhtBzE;B#Of2#Tq3XR`{8iqmcK*8v}4zI=fOxJtV(; zBJHkPnSOFuFus3hH~Q- zlvi%st1)~`Hn=8o^RceP=4pFRYYH5K%Rv*X%~xCaqHd#6-%MND2TWaF&e z#`)5{UP~JXQDsIjd}?zQAmuhu%OTNf6Ej4B=;oYG1=XirgumW7wsEj^U+ERxgBO9! z0C?hqWnc(^8Rkc(K|EN(4boYTEvtfFs`#vnbL1BFSQLZ5)vSg4ni4zGcE`gEUE=AD zFubIxGfA(Z>Vu!YyrWdszh%=@n7=fO;wNF$k+kzrZ7vv9B5fOtw9Ra+CsQ<7UIK={ z+ywTv>2VL;RNt3HmHPLH>T?4|YFtkYCz~hrto2Mv)7j(40+FjJ)v}=2XXsvwP!tCP z%Nn!LLe4h(FmokDORt|mIjM092Zc-c#Wxx3Pgx%Vg~lLKMvjLgj*e7S0{U}EqJ5hU z^U(~NYa-+{b|h15$*mGEzbtzF-YYuttUIz{f|d=v_t-CDe7y=>jK5yxFUG!dt-fcQ z`Pg`VKKM!R%})Oq!G3?vFQ47j%C^eBSA%a__UPOY$Usw80_-{qzXnj8n47bR@^IQL zGt4GLJHqbVx_n;$M(D*G$O$)R&!v{BKfy(}068^cXYz-dq3Ed^j){oQ%-2p)9C;5>FH_LfnkM3|teyrc+VRvKm2As@K zB4hM$a-O;LKR|jol}e2{IBR#YLp*CCP-a-#wn>*097^l}+gVCK$Hg5vV$$4zD9VUC zOO}|D!G*;sHWDy|ue5s>`%J&&&!z}*8ti_g7|I3Yosm4MpL0MJO1L~@N~ITskkU`= z0qe{OkJPO|;emYIz+Z0zr3*4=4@zYWe(9KRdAZx4>}>&`W{cQ+^}5t98nhu+Ax~=f z|0PEA&M*-uF&;_UlNM5wuioPjlcCBvw%MQ28o^{jQRFnrPt8Nc8)9UkVaYcu{`hda zn_Z)Ee@8??&M%drOUq$2<)-%t$qMmdBw1enU2b?V2Mwh7%~A^NHee~5!X)Jy=u+iw zs!F;>!A?arNA;zkdq?z|*Dc$*sZLoGaVAdo7Hr7H`uGE7yrM_9ps7cLqjluQ(l+OA&nxH+Qq?ojjk5TAo9Vxgr=S~SCoghR{3Fr8EH&H?i^k~GDUh$?^!7o9+) z*!fmd@5HrjlMNlV5(319lw?J~3vWY5u-4UvK3P&N5td?XS5PC`7QX@440p9ro;h-m zYh-MMdsUUU(XC#Oed3@?(6VTKcyg!9CV-*gbOl%X8Oq>ZI#e1CxKvJuQSCWLRFciHCH`ex(spB>kAG zl$yD9hNUsazqxlx_MEiom=HS!@X?K4kh0*fMR4-P^8E=@OKq!^x;;lqU!$>7JQ~tJ ztq7uMQFqFZ&8s(DucdZVaJJV^%%sely1@w>6zPznyNX%%@9eD3Lrk8yr3 zLv+fQ>Pws}6l7=oa}&vBI{dk~5i%%ugt4TO&x2A>*Pr|nf@o6V7V4|4EXi44O&f$& zJAXqSxOSwlE%n^O?l9TUjDJJRAmE4@B2MGrq2s=rq3_?937JtyWf#PATnPG(w2?k% zt+uUPVjb*){LQvIy>~oYzj9|i@R|5^2exV#?6nb?PDPfbD&l;4>T-S!CRZGY)T*x~ zHRQVOm_B8$2~lCygyt+LRu$0K;Y0K?$XXx8mvW>`^@VAMP38LA%nLPRqLOC06Htaj z*rl2`N0p&nr#S+zN5u%MF}Y-iBQ(sQO~+j!O*_STO2yi!gVwVj4x=Ry*G>-(9<;P0 zHO6Gm!Gye4X8&wi+anu)!C2f!SSSZ-jLYL&E6ra+9In{b?i7knlJbJ~DXq`(gjv!{Oae zx2wyezRmReYfSz1r@lr9KXJjwEN!-}0cGIDselr!21V3NId0^eo{E)DbGg>O8e8sS z`<|@#o*eXk*qd8n&N$kvN(=pp2Cf@iE9WWOOR@kFN!bmBiE&MC5I?4=?tyNPb^R{| z*3w;W1@5Oq=>1u`_=jfb|5qmT&ko_=g|!<0xxNY&+(E%0G>LQq3KdqjIDQ0g4%xuk z;;h+91-lb$Cmcv+=xP}F2j#6V58b`Zd^R2|)!;V6aowzs-gZ6Qqpa7$$;!bIRv_FT zUlS6FWfOnz>UL=b#}uR=hfGF63C3h13IiM6iv>xOCAvGZrBujqni=bd?BgLSTB4Pb zMPsSeF4m|}%^4@MUNMy^UxsCa2AY0)4mFHL(`TSL<<>`0TB<{BQF`YYWlVs$R@@D` zzkGIgYY{M=!ie4`$Qro8SG?eFb$*!J!OPBY{WJ)ke5drA5X0oQWS!H-NKf`fG z!d6V~N)7N%B#)&rXPl$k-c;?!V1lFIG481*C^T)l=D;? z!cOpq@SPXSg0Uk7Bhp+=IJ*&A421lipms;gD7{A}Z})gs5gGGY-|C;pjx{EDn?1SM z+G_}4l+;mN3PpbkY}rb_V)xO}q?|0ODE)|VOvp1)TbGS%!6@k_dKXRaT$OR%V3J^R zBY037QX2fvn*T*oEcUOt2Pb^^8p5LtS5PS%3z;Kv0k!dPQ>q%otjjzo{{r!gVelEQ z4>MeIo?zKZ*y+y|@DHCb^wl>T?{A?r7OxKH)I8re@7y$_r1b1L>mj%BO)cnW&A0uyg~`SH=1YV160eIf==&jll%gKt^e7IYYhiY&Y|#Y6zl7U{HH(i|AxeQ46UxzlorxUjR@jwsSz zT*=b#ILcQX=(747XCK!;DAC^s^d!g?3%jyRxd{ev<<(>v{(O?v73K zz2^imU1|qBt@s!88PX{``9fIG$!n{O&`=ej1B@vTOf;;uC7#YWBG|-G$Uc%)Xjs4p z5&UtFeekO4X50`AvZSMq^2JU5SdhCJnjDN+z?qA_mpi?G;!&xC`y*_P%8d#N66tYO zCR>O)!@f## zsSq;rsx&KbA#(w8)AVl=vJ>TI)~4R6CO~$99Zz|PFB_`4Q(~%d3iH0^fDU9&J-S&C z>&+}D=LfRRMO>@xdfzEV_Re;-IOMgA1GNZx;kP1?xrudtzK^yxgr9>FAqU9)wx|NX zFj+J&D<%1_1lCM1YC27`qp6d;rL!hoG&|@_UDS>R3=VCt+XH-^_sh}2zxN0D@E_kG zr{9os-^c{_PUQSO!CzlO1UI8Qo^XfNJMR=_?2wwpF9|=RIRKCgB?pQJN-$0M`B>3t zw#)AQ&wzm1SH1GB57fU80M9n0gKx^%tc&&uqzw8odsDKD_9M(lcv244`{rtWMD2~v zEz)ZXeUWzmO6oy&W74~S)GL7G|2P193#;*0o)y^quLviXs_sIlU#b3N&9Q=Mj}H#ry4aDk~}K93acj$tu5 z+k7}U1f_c(vm4+!E6|>vyBQl@5kMhIvY^w7S?;=irvzqX!oC|1DU-#W)}5GK&w=%9 z$Pb4Zsm7S(wls#Ld|t=b?V`Z2i5C2ehDx?(XxA4o|Lb22qR$D6xgrPu&R1NYNGN-FZI+R33!LUcG{__X; zTI>4NZ91}OAJr4O(Y-mb>erIjGfZHtKJ_CY-gKz!d@)I69djME+Q9-d*^SsADRfFZ z0L+2DTikxM!+n#*v%Ha|Nvs`T$0`2bbQo3)sqm)bD$wk1G!x|RO?-Wv89GE!fNPF@ z4@s1A^g{Y|8fZ?70{A%V&bB*k`*W4=rNw^hw-0AAIkfg=CEIPj-9Des)MCup)Us?6 zbI39y9zMmS{j>n^igfl^@e`{o9Lp&bgy=A012L#L_C#`O(dPX5(6*q1Kxv$vJrEg3uN_WLSA3w7=j<8bEVM%;W+Vya zUGe@%u&%X1*Fr+11tUpPgdegD#uOPu z{BEcn(5E#bp|5)!ve1|&U-*Hu_<}U-UkFIA8DWkUz4?KE(A)noN-le8sj0ZJhzDGz z@fZ6P-VXwU8Q$BdZie$tJq|FZcc%oIZw6##Q_%0(IjhDU_H<}Q&Wkrv)=>uno=b|f zvk*o}UFl^7#OIS#gPY`4mDOGQ3LYMOE)n!JnINXB#25dOlA@PyxpW3FuQ(@jP-~{7 zON!v`r`B)~JO$bw7c`<`l3-s$XPZ`36i`{(P_2qaptd#ww%Ix$;{@JbuBd(;iL)QW z!TMXz`tF}#e6cH#BDk=_Y6%@@%c`9igsZ3a4cmFG$q%n7ow4~I!IuDxbVu zn`#!UbOZ4|s9TL+hbzF)yUmY-<4TUacmcNMShp=OMwdcgn&ShU4utEcwM=c2-5g=f zLD6`md7wciDs%g&F(=#Fq72l?2k_xP@~5MUK|xpd5pm`CS&Pkp>8vGV8XF)gxdyf0N3tGjVo>rI+=RBg#E6Q4M!d;a7Gsi3p^wf z6Ap?g%s}A*bANRH?4$#ZQoEb&g`2!1$c^Qu{SEtt_G8ZhRDuqMG;NELT3=s1GouH* z1b4HIO;9qm6>()CWrhfh&9&qsNpC~X7`5pZWV>Dpz5bX9XC{a~s$?AaCn5NPfAZc;?Y~7dawG*d%u}v7(O24O3 zgs#gUSr&d>Y}FR%+<3zl9H`Mpx1ib~@X{4GLQw=a9@pKevQB-7e>LO1a5Gy%-4hr+ zhz{OW-k_$oIcrE+ZSs$6uY4>i-qh)BiQOzP>3DP;%Yyti|5j2a3Ln=NX_CDBV5=;8 zs;+r0tvH0ZJ@YD$y+6uKp8rz&D`e|ODo_sh(b4PXPNi1sg8cD>))9Tom)}~qB~pv; z3?6!V@{FcAmt7sa?U^=HP*jf>zy;s)j3CF@-GVp{AWv((HQh8_(OAr3aQxh&$W~NR zic^WMdqWk8sQfnqQ^2Ahga;RXj@bwb%W!q(c$i^Q%~QUzg^}K`VTO6W8>OW5%i2c5 zXUI4LJ)FONU%uiDV64h@C7sLY!S&>%ntsT7 zrzX=xG(ABjEqcIq8benFVGm}s*QY}-ILM-NUTw`7$Xdu856t_40o$n_*a8cQ2gWPv z6q~@eh<*FHK3C%{AheqR*ix?n!U>Y-b>t$mD?ol>3a z1ll0q3*tg@jEoDU)Ec{H{62VfEC02F$&&;5h&hh^8_au4SSOu(&KOiR+lg767=1kP zq&|zn%^&BSEIePOfFL#h=ty#5->+zque^T{{a-m!bQ`f_(hoz$mcOgbiQIDiGpq9nhSU`u3g5PVsdsg@H-$jtWfv&Ig ztgN`Te(G>6<7&s|@U#WkioJN9_7_@pbFIXyK?jmgUkJ=acX;k*>G4Gpg)sf_Bc?2{ z{^*|2u5ttsYKR|x)NB3DkqI(Cs83~j)=n_(B>PvGMA!XsEZL|T>pbxYn47RnH4%XW zx|lt)i6_D1haVZ9Y!hJ`sKH zu6CMUesemVp%;vPUxPM<6%dgeD1E`_*7p!dQ`dn+5s#S;>!TQCT6jiM9}{xOflLT* zA%|Q%KiQM3PhPlWF(k3^(yme*C=G&u4_5(93+zG^m}(C#iHiD%boVGX^Qscl(S#pU zvW{rVNEEtWR>D?UzyNS&U&hn3&u_T<_GiRN6@a=yA*ZTGf-QN5#}l|qyb9I*yX0+- zfiwA-A?5w)$ksc9^l)0=`<g+K`7w3~J{D~mgN-A0+qOY@*pE&x+}4qRv2tihnA zs|4VtVel0|<^`B~^p8>yL!KraNPyxY5EICI#xbOr&Erg=ORdXZl-TTfF4$l1wyIJ{ zZbc`$EWRD?9nb6V4!4nuBFc{1yKZzdETm0<+w3UltYKrD%Pbr#$s|N{n9+ggHB@`5 zniGo|ebm_&9;T6d6AsgjoC6wCM7(i^jTWOi1Ra3B={f{9JDoF)>vc$-AUA>2)M0vc;=^M3s}Eb=sRT>9xsJ}9J}cHJIyQKnmNb=oJ2YYh-G_* z67+-8))1Mm9%ms52|PcN=Rre5n^Dr zZBAQd9!48`uQRa%O zTY{1otApl|Hz#j1$kXAZE4Dw`xE=C~%KV`a5Vc}gf`>f_%eYngmvlbAqAc9-^nFxS zeud${(LC*JYlp*EuZ5iuZmO1MlU2z)ISx<;SZ{6Ab`i-Impjia0qPaDi-p1pZ;u45 zZkbgAZMUxlunvX0#rk_W4w+^2CyeTSgXC-OFDw+9Bkj_r+69McG4 zjQ2%A2_cG-?cxOGlcFjKgNm{Lmee_mNJZ`V(+5_XH3Q{AkcOceiW2jScCz@7L?I-& zYp+7B-YUuzVQ_2&!;UcvHr%@Ci=A*QxDK@H>x2}@R@sj1sJ3bWlOn_9SQND-HS#Gr|f@RIA_aYm<=4vn508`>iH z_cH_<4+F|x<~)VYFqR~C1Z*bPFo;IQZq>#r;9(unup46hJe1m8la}3fnh^B%#J{=F zaVw``J`PkZ+8~-FcG?@MK{dTIe#x=O>OBu!5jUc|xYf=7^<0=j@`Ah9q6$(G*NpeC3tNrr2f0qd75EvXnoCHIF$|C;@8&e&T-gFPx3Uq7S zk*+VY6BCYvl~XtFh^b*eUO(Fx(ur5ppZ0t14PJGmfQTXN<^hA`-!-3a@MSpKS99Hn zF4vE9vDG-tg?cnNj~?TTu%xi$8^5;k@%l2fZ#Oey@(QVzD|9S$*3uP&>88u6qv zKB+z~_kJfCh~t}7*b?eRZFd^Jo!n?_HjkfN zYizPiHVdG@UT;*U`@GN;YKM8ZJU~jo`@B#mkUb3IC;U(zJBja|gdS~-Pd}-5KsVo? zFL3K~IjtnPHD7;ENV;Rce@XJ4cOU=qQ&>25ye&+qcByENq}GL^j!BZX_vHDd%E&t1 zXFovAoa7@)t`xvamTZ`7u4!{Ml{#?`W3(6Z82GC9vjq?E*c*_twyN{>;#? zaBB!(Xecmz-+pcn(c@MOBQR=t+>HgaxH7-E?_xKb)&Vfir#GE@Agzr~-J6=+POF`0 zrS3xD@3+B?!<_HkIBsw6i#k94tc(*L8$5U2*_*Q%Dcet?I}ZeCG7Ti~_>(O>_Mvo% z^cHTrX3h4>lFZxk6TW*>M?9VT0usbUSd&v{*_<|q3RPm@4o?he%JQW;P_cN5uu_}Q zkr>N-fwbsuDWeHs2_Z(!#Fc(Vh(rbsxB2elWj&n^?;H|_J2U8e0`5LopM^5LF2mzEY0;*K%l^SoZVAfN3tw&tTlWggj}v7u61d~0t04Mxp%Doh3z`i$ z#`2|KgSkkwhIiNl7K^Sy+G5I66v=S$7bp~@KGfay2yp2RoEBU)7e{`sO_id%Q~ZoW zro-w{98yPQr2 zrVvCPal(+H8d;ZX3_jc%M?PzfMx>Et_)&Ggyk_3@iCTidxQMLk4_L48$)7olCue-< zpXECNkV%Yz&IC7^FO2)gA&e1|I@!2!qN*6d)}F1*@EIRFW4#@nLtn+<$MZf8RbLdA zp);qX#YYqfK-@JG-~vh6)mtj}^*Ny0pszTf5QL6FK@IOhOcqVavq#8Q?(06l*CCr4 z%NagtyeuIHTE(Ut2#O?0^j*1+*fx!#UGjs80)!FHgbg4iS{+kNyMg_Fpe+ zf-<$WWYd(<03QkJaSE0~Z?~xsUs*%~84g^cl2yXF!u;!_Y85wf_6ivczY6yr^Vi3_ zYN$xe=mo62#QaY1+DzkZ!T`J@dXXRPs5u^2uHh3?95P4v{naoJ+mrItzurvh{>wcr zw%3}}U`5#=03y_+{MVEY=wmukaM&V60$CCP>U;nvydb6EVtY>Rq<_L6JMMsRHYiTb z0K$4W#wvC%(95gxRqY!mJgQp(5$-91<31$whj8I65k6ovf(P;EEgQ0W+UN%cSp8g! zGRobG_W;+uU8YkC(8!R}Xg84%^jRM@kp|dRpZH;sF=fql!ob~~f}M9_$a%LlUj`jL z(d>0av{*S>ftW}tU9hoa+-MkGRVMZYr^E~Oqw~!`F#EBi*hz&K#pf!T?2#5>6;Vg5 zPbsaMrdVA%tv|Npg$$%BT_$5ecSCJ_^v=5n&6`>u@WTPWUY<6@iyGlp^XeDpE%^Iu z^nO9nf(%--PgziYhEcCyv3!}~<;g))0YxcTD|ok}p}ta}l@~`MJNqSEXwm9Zr@I+P za$i)6Luph$uVB&QdT2y@RikJ~$rp}Hq=b1)cE-uJf1EzsvoNR}lPhn{uY==HOFVX&|?!60Z@5;*ugkiXLm`uE{jqkt_AvGV);!VJ4l>=K*si);sm zh?O+;&6YnEhJxL{gmZgpyMc3}kggweI+T@0YlFa8T;GwQ5u`m60{oK{$fan9ej}u~ zCA)wT3M;vZ@rZFu14aI25O@Kc3K8zDg{=Q115kSM`*$Z*sssaEwJ&%ULtWA0hoS*{eX8@lw1& z8wdwgb zHiN@&PJvXS5^=X8UEy}=F^@XpdJ$L&(zQ4>!Q68Esu-AzKaC!7CM46leR%mO)Nc{* zZTzCpkT1;hSU3C3O3vUFq6|uN?JCP5ZJz&Zg1IZ(QDQzDxc0sv%m{ExoTf-E3kAPM zmNq6ms&YcE!0Kng%d6Lh_6a-iM*r==9!Y{Z1sXYwkWlwDaZ!DwkAL-yEW!m!Zkw`e z`BoOa;U#;W)L3u$*q&^s=l)c}*-X7V)9R9#yj`xh@tlAE`yH`*oew|6;2RDez0D2^ zg(r-A9!hjvy^u70z>sa}56u77I({phvdbU3U++@0)nTsVLBy7ARmUiE(N z>vT#Tb-qw{lb1rX>WMQs3p-&6gG+RXKK^1TC!0FB9!J(}iTn6n6?l9dIdj+-MflFG=o%C*m+Vpjv^t?Slaa)kXFmy0mSWY&Ybc0J`pnQSUXv_TAUY?eIn_2vEcJ=t)v zr5fd9f+U??OBr+V-ed)uqWbk(*qWOpStNAhc}zo6j5KK=hd7$Gm1F5ta)QrF$NVDPHS)Yqi4m2-HXcavrN=#er;=68Py?aP|$lo$wi4^l2759)A!c zU9!SRCAOZU@tDuW`~L4)N?(Yl?1TFj?eT%_@G~n(b{pdTb?4uspAIIarnH7&3fqv* z2d~d39`ONQmkTpTK@NDze6(aRm2Gn!6Pv8ov(6KbBrC#Ev$x@T4~J9PaFpR0EjQ!i zKhIo`qgGVzDUDzl!3R$GpLqZL7ubbve9=}h&UZSNZoKVa#Bub5c%ye-ediP02RQSP z5hkXakP20k$K` zSnFAMfH5>c^q9EVMePkA1jzYtU1Cc?VmGU-Yuu-6D-XSU^u_Wsn#n3v%jKFWv<81h z0X{Y{yj@5nWuEv>*(O4r>BsXWd)aps{1uI7qpr7y;$S(d{4a@THQp@}xm^XyT-G=k zyd6!i$Qd3^Lz{}jwfRUag=<-`uA1Z#)_=j$x#FZWF3pKPg4ynnPqIkegGZDyCVRWT zjU@{h=t8EEv08p!I;#fUnezwFGhU%1CiJnmGkC&uxneot`TV&=e>Cebi z*1R=}_l;Yeerm=)M0$wEcOv7k=JNC1I7LFI>Zo#qO;53cHj=ZQ)&a&=^DF0|61j2v z?$`GUeWSx_I`?33K8Fp_e%gmx!%<8TC-FHf@7B@gRt?mpo-Ki5KR0nedojB3AW5@> z4B6?N1mY$g+(YxBR<)w_@MLo>(c2zvf^9_`aJea^N zv7mGRngT7NZ(l>8)100J!_;ox^!RCQ<|+ritiHts(pe80CWDT)6nGX*fGo?#V~*=c>en zd6Nydduyp89L7`u@zm`tWn-%!*CuZWm&rOaCscF|?v%M=u|YXA&0sD8kmgnI*=`L8eVq0$x(%}j2wz-OZHb-}Og_~x*Uzu}e z!~0SOJRoKisng%w~W+LZRp@)IW$w?~?tfx%T##P%D=fd^5it(%@cFxBY z9GX@B3z#1KmzIM(-@y>yG^UXt$cvj>wacM<{OVd2GgP^fg=e_dP5hI9nu6gDPP$Df z606!lDVAC-^A-_8>&~yXamzk9n{GD7QjA9n0n9NHrsB`}$g?3@I}N_jr%W z(#ClBS##dC19QsUf7wZLx<&0x9-`gbS4M_JJ>p#D^;>vMqU#l_M4` zV+Mx;X1vGqii56kC9X7ap19j*-ZzhA)s)ETQeI*2-aD4xWhy3wj^XeMqupR0RG+TB zGf<8o-6NCNrFmZOu-vANOyOY9HLj1DlYZ8EkHAHjPMPYoA+F!?D}Ghq4pr2jKsmO|s@pR{E$G!Ow<#+}Rzm~9enUk<(E!!`%n!~J-Z z3}*TJXmkz;J0)%Vg7MWPbueic)h33T(|L19U*2#?gM8We!Oi!*S4T#wo&;3SgwZJq z4*wymUSE^>xcWw*F_*t-^+pP#%|!1l&flAeaE6u47)mUN0c4#26VL@NJSuo|VJHlFB-=@yTCRrwLAjMz~# z05yEg_Pw0e0sT?k7zx3+#P!L~0V-bk{gByI%h;*S*!aOM#1}G+?MSso00y#}^3OJj zu0+`Q#@foeS1S}8Y!7{0LyaT0h+4f`4gTK3E$!NDV0ea%e}(2uT~dFnz|nj6w@87x z=W#1@T{^)|@sFZ^)PA{{w5-{Fz0T|^S=}9dBU?|A){p-^TW?K##Q2kiXb2|c0~}x8 zbbO+5z|^vw@L5lv&9Kwff}9=LNH6qrcdU8SoC(GoU#(p<6t<24e~XmX3bNSfB@ln1 z&gIX^&a}VQq~`zk26icG`v&Cvmb${1q$PnM-jfW|aF={r+{FzHTrRly!n$4&blaE5 zi0_Av70jrxOnt*fZdj8)7rbB%_IMAIWbnFR($vV9aa4KAAY(4pyZfa^1sx1U&y@Dd z;Jjoit*(ihs$Qykj@~`WXm_v zyQ%`G_08W@J;w2Bvl+53mb%j8tH>uw>+Z!4ej$qICbCA|{y#XnhkvL`?dLmCN>KEA z1BNBLy1tI{JeO& zUeJfuNBvW7Me|3yi{9E)@It5WODNTHkup^z4R8Uqn0SEKTUOP#!Lu3I+Bc8CQM9C)rpY@=|S?dgTs+CF?3EipPp5M6@{>1B4WcXdM$1&Y(GO z%AfOsr3R-u&V6)PiE;Y^x>SaYzaQ=r)U{B>A z%(H0q&}kM24o_Bev_w*6s6*9iS~ottJSw|qi`lCDXd6oY-k@4QO%5;1(u$XGkfIZt z^o$1wTtFWwG7QcsacgZ%GW{M5T9igzD3WwMB*>+^1ub;2Asilyc@wN16m_b~k7Fir zxJMa)vtAQ`1_UEqifAkdq4Pb;gE;ropw8mjC~ZRS$^w5v(v;vm#yH3>3Eb`d;7Jrg zc~S<;u4sa_9i37M7xw#LEl{2ugh6DEuC?l>Px?Wv4YJx0#M1H9c9hTEGbOwEWr}O+ z%A*SQE5tYrvypGZdf3~<2+RHSMsSt6B(NQ(8C0+njx+1FFh6fKlF1@V46ju|N|d<3 z$=#0AKv06-OaWJk4p5~Hy0j@xzwL}eH_jmGrx^GED=v{ysLUo&EV*I)m8F&ZqW9gQ z?53C$2*!_dIvTZew0J0wsSYXl&Q(B4IGRBw4801H2g>{~I~A8Z$myr{3iy+EMEu*- zX`z71?GzxoE0tMxQ+1f|DTAhk;6UT{m(ZHi0u12f1yo>^3Bs_{<$M)kF3#lK^?AO^ z@#}KFivU)Bm!rjNqS}qXIPqveN8(tZ@?}x(Hh~BfESbJqJ(Oe zZX}nSM-`O0S5USFW>TixX>+LAWiz&XkzTOMR|*8fGPwvIf%}CYTZjiCmU{;fb0X}U zH?+>S68)t&dd`8p| z;&tO37T$5v(93>F2jLqp)+d`3*PB<;3&dbl8-6XbENAEqPUmMCbBaK0zFN}4`>Sqr znIV29tTlnUsXwa(MO6HOq{0da5e76k&1wl& zj&DVAE%rNdM$%}Ddob~%LZr5K~o7^y$0V-s0{3_?~XXkMRY$YN_@Vs4(it@%gAT zZY1nx*&mW|W_pRqtkTX5N$a-PJeDm;${JUyA*dr9tc=8EFH40{H`?U55d-CG2=z$X z+THJc%%$i2?WG$CJ6+~1a!FF*BdT!K^6b{x#@WtLToQVIXO~6do^sZcfh{Njv>2wr zoJAR)KeL#6X(7$ze-ki+9%^|pJ+G5gYGV1IG(c%PeuV4@*5(=jGK8KLa|7~cNdtg> z{l5azm?GsL|Aw8hU-QiWR>H~>{<}TTcKLd6OIRQWX@i6q8l;IBnK61ene4OyGW0Mi z7{S{&7rg|pJls8+@ZAG$t-dV;J^{Os2jFouO2fojvZ&G*1^cE7g3Ef8^mR~8+^g<6O#eD3Pof!Z3E;~ z)Fa!D40{~7P$v+ADH^3!&M35-eyhy++6|TZ|%~ z>hTDl%~r)&pft^3$yvra`ZwwM_|!;2lHz-_tG0jo7?sh^tn^oGwi=fw)x|ErQ=qBv zrZ}6~Osak-dN5zSaS?wDT2XA&n;)wqfAl49dFa7d|I|B>NACh_4NUkyL5EzyN#a~5 z;6Q=XRA;hMq3Q9~+~dUl3K40N{+@5$Nt8g;T`6^C*GveA%dX!WKr4jJdMl}Gy!zrZ zpqM#N#`HF7zWcqJn14Pzuo&6I%R2@4RBnH< za<2`3MlUbRJDP|JPR9DCy8oYWuwpZ(jA= zKG_OS_aL%(dd?e0{0GHw&R6)Q7(fSwg5pYdzc>tCFFqfpPtQOmWo)@(Dpr3WX1ZHK zR$A_mJEB}sv^^8fWPGE+1lO8wDDwuB$kWRSKDh1WMdxcDddf2X+ENFANjZ~y=~zh6zwcm}L{2j>u)w7SPBSSDW^DU<%hHjqIwTiklAo z;D=g`)!?bZvqyRyA;DMMBTaZzJNc@cDpO;(xw?7Je0?27doJ~K<1%acI@$RMbPLx% zTO1dxa-QX!2XcBh3BQs^2@??I%>P;C=(rDIOK@;lvEt$3eT~M^!OOmt%+uWxhbC)FnxxCG%DgJ-CWrs=fr)ROVXZ2U0x@y^zZ4O*!jk0?L0|%wmR#d$Hhl!+;mQ6D&a53 zj$D?N7tmWz5tBgTHrAjER)_)Rh^LIzgo0poe%#8{ql%5!5}VksB0HclF&IjF2+xqp zD>m#HGa(ER6(+%U=G?G7@ue=SjjPif_70khsDM~7$3Ga$OQJ$AiC|43F4lk34P4-+ zqZ7|J`N6ueYe_YRw)K3#`SYdEjNKqG`_9K%4RhzMHSkXCiAjw4bpEmN#s~+CGoWa4 zQ!7z=-eWy;ktl4gp6u*}lmXG?L?cemdai<6VeFf4{4zuo-WfYP8P5efY;T z>;1q@KN~ys5bTcSVO{icLYAQ?0Uog)`1LjOy%(GF@5!a>fSoi|6XB*bn^m-x;GG*W zffO)PYICp&4h<6`eSyD&SqnJ&2r||ks@aY8GQBB@&(wnTl4Hhjr4(4Y(I68HRRkVk z&tVNC)mHZd>3YE6aqa_3`AU{bpI96Nk{aDmEc?zv609#$zub3eXiEH7fvD4C`7@^T z^V%X;!$Rs($pvR~-AtN;NAJx2gtSYIGL$F28GFBuHNuS(Az&Ei`zB|>aG zGNhs!kD0+ZvSr?nr~ZymKN^x2Gs>L(#=hXuZHZj%9+)6?M8^DzDtc0^$j0eXKZoO* zJO3CoY=4mg7)FMnBdm2~D-CKn0}D|SQVXgznjoD%y%m}_-Gk&GC!>g#_hdfgmqX!^ zF8IvfdOBosw7gPcIVPYu+I9AJWul)1h+|EUcqxEnwulY+RU6OY+w8vs!Z}7tva>(dIO}~nzq7`KYM2Dl9Babn@?w%uB!(I&(hq?*)S?H zJ;>Q9pF?@B7`1MCS%-56<#Iax75$qj@r%cXulnCrXP~SAU!394*$IQPbM0DO#;NYA9ks!5B$@x#-&O4V{e?@uI+)g6bAOc zn}E06*jXpI$5w}n!ca{8#ChEVDQRyo%#eOrhwISkidGlW>?U*B=CbG!2SPl|;yCmka&aKfM0^*aHyLZW8}j-{_mhfTba_}_9zHujS)0} zxb*Tlpv?4m^8FH0KuRI|9r;k9!HFLKHh&~krNm3kj;Xx7t zymZ;HLj>qE?i@5V03IwcI*qVuDScK@$92p5 zeSqUFL7;{gd6cz4H)-H=dtx(Vb{U{5aei2NHf2EFoFIIJWt0$ZT%~rQGQ`WE5kDB2 zXk`#mD0=G3OY%!83}6)z!}i9Ot=yFEKK%Ar>AH{3$|YA`x6sfqmHpnhKVb)<(0cP0!k{p1eE+$&Z{wj51R_E^!0?FHfN4YOg^1VH1#b0Y1c{V zIJmF;+`lLN^Y(Uk_xk9Tw09|C{F+jveFvZ-%_xjv=pJgL(wF5-%R>Wab|+@}Q@3<@ zJLXraf7!83i$R|DE@O@%+7_`oe?t!hep|C3bERWjkJb%WFJ$Kcrf~%n`xo+6Zp{`M zqj8IwEpI~d?9K1q`>3WlX0j56Q)!l_b*;TW01^;v21z}Ai8f-~0Iw#crLjNqF`Mdu zdsm2IKUVANO0H}Bz5;IG3(Lx>qOm^IY7Mk#)v(ZFPVH}e#ZJ5GU0aKuk)-@#QRO+d1b1YFFOm5p!zAQu%|7)m}+Cw@R9DI#3%ZeKO9m+eJB`Y$t&^ z+ZPEkMABeY*#RxpS)D^RL1vh0`bWjv%7?x+4RCbGYNltlWlpvAbe09uu;HJ;lwkn$ z_X&M~79%6U+y%^uN}*&CYc=a@nTU6i+=`av{`0Gi@{O9A>29T-{SjjDSY#d5X;8sB z95u|yZnpA0x@6Zd2Q#{4(CyldS8P-a9`dBs5UNPeThitmmE%q9bRA)nem;-H4R?W4 zHI!G8~5Jr zNIEEKTrW|2dkV43v|>z%v}L%l;#9t=56vK|kF+1KpsTV&-5r1;Dy}woZYVb3#yKW* zj8H)1_{=W;u0O!}(5cucR9sEi$+#zUqHYhWsI#6ahv5beoTR!%DWa6%4^BGoIQJJuPO(yOTF!7r-fm zVLudX#Lge9e7$@G&bMM0qH2UvPY21s>Y_wh$#gtz8bHj{cXBc}1=nzR$C?(3^5J3c z9>o5jaY;@bGRsU^1Zh1H!bQh)IwG)wzR*v9(g9!rui=}%puE(1xl$6Yp2G#T>#7jJ z8DfI-*qP%??;HB+ghEk%t@$|w8i3&zL7;Ep`5C*A<_lb>Iq@e44Ab(jRN+LJ=DVy7 zbu1s0J0cge2-~anMvylQa~dk8cK3TU3(r%_Bcs+bP=dy92UlpQ`5ESyoECLF38!!~ zD?!2Y)K}{n_?g#toHh-gId)e7p+KX68nVz9>(67mIb-7xYm||5R=WfyX8UTopO-f! z0C>*oyT|>l&qx~z4i4#{fltt0Nm>o2-2AT8aAuwtJQ`QLP{n&&BItCmGo~VYx`-*! zs^Zabut_e_gQ#VqQ|kBQzZ*!(nD{lsf%+^4>VYg0_< zhvj8W8p6TWw~unLbj+?kWV$S0KMlxSw@_px}a*BK+l_BOe=BA`N|m_H)wlI zJe;9TU2$%#Qf)nIHa^MJU)Ic-{H7jR%MqpP)xRB*G>Il}k5FAVO5H1Wp7Ur{>2cDO z#C0jt?~|hdS+@7{@a7O&*h{)1wZw4hP{{3Qu~p0FER*BfLk1L4!+10S;!d%ZJC$>b z2=$z_sN3GG!S=;($MVhAW%^ETo&9MS_4m2^8?E^AYhzVojWhP}W04mJyN8t9!>sCa zIV+pG+Vj_D9Bor5vtpBKQuoL3y~5I3%WYZQ-3{6Xq+bp|*v-gdlk9zfK;u)ZBd!=d zdMUXZ5Zj^c-U(J_VI!63)xBP><&T&GJt5@31|`?LklV^ybDlou9{Pm8{3)#_GdaI-knfQyOBv-4=5AlF%zA_&}4O$r~RNb#n8}?*@B0& z#g@+Mv#cf%?jIyc|L4@v8&n{c%JykQt{K+4BUFB2 zN%V7flW*=!@g;$Bk$U(Ab7C${jl+PW5H9y>93q71(a~L47J6gh#FubL_jHGesaT=vQpW*MEB;Fj&bm!Spt z|Kwh zHbCem%?j3`LT!vI<~151G)(Ce@85>A1eK0OuZRm+>OUa=LXNdQwxeyClV|0?5v5u_Qd$EPZU^peo*{Yo)JQRCle;M>;s zw!(Pr-Sve#Ug$(Lc3PfOXm*+y`x1graUP1wBc~wEc6Ic>rH%*Tzyj7oS!{_#V-_5~ zH9`U)Hm=e-q5)xj7+Nv)1~6#?8FS>B2;E;SW!EHS%;rF5@OZ+7%x}Vxm;#SIJ)tnic<+4awp`qD%!W@pE&|nKN6f-YB*z37i|j&_ltjgMqURtP#@ny_wE5u@~KraB1aP+ryYdCAT0x&X))(&X$AH171FBDtY3 z@O+s%Zd@!>ZUjW0^xN(rcSEsTw9M!7x}r9dk7FUXi9t>w3RWPHW0o+woVfZ16B#kl z`(dad6G{ET{Rwxb0Su(vwN}7K>anPn(C7BkinpQ_Z!eNJm43m^*>QyY_~jQY0x~A- zEzeh~awaGw?X+5bn1{^*ZlAG=r{f&wkX6Dem^Ha@Zw}HdlkB~`m4_IllViJ;5)wc6 zPW1R@rGtxIjTy=MK+|n1PZvT??y9yklSd%$p6OCae-OhLMgLf(+X+7A0 z0svJ9Q_4_G1IEm_5ttn`NZpz&uwPW3r%%m}p@{m5g-%v1)Xu0SR~L?D#`F(;!&kRY?1}O;JNg zZ)=UK;t&v##qR)_IP8sVZS>st$5K=giW3ScFdy6m%R(*}5lV`+1LH9mUm>!VhId1{ zxC5$L)O8THj6N{FgJ;9Ij@pt5fs}v>F(Z}@c^69hiTj&=beZ%K03b)*!=98kZk{;B zTs&vDEn8#r<`WwdAuRTlo zobO7N>_2L?^|F73dI`WcW0S>T)xVAG*2kfz4dwum0~sdiWxP#D8Ks~+Dq}jJYwVB7 z$&$(eX@8Xg6>#xH-SC(=D3Ti%$VLr&-TbGhd2*J5p5V?Be-hDSx~s@eq#OcB zy&NR&`UjqPwsIpOlVK&PWut*#s|V{j^8yN>H#h@GnQk$$yIM`7ii~pF(jRH8kYk>Y zBCH2Q&O|VubNVn>7EcnuL#n0H5tckDS_E&6N2UpqZxP+^;}dRet_$6f=`4 z?h@{Czy=80tH89<`D4y*a>kgBXI0%$KehLhyXgP75Kj)>0HUB=fB88{0OGFV3Nd=$ z|MCOA`O@w}BWIyOt#96Hbvt1>pd3Pw%eKKorLAB=C6s)<^W92koUVqh3QaqvCB`%z zir*jXf{8|n4r@#@I=&Z>GNKoz7B^s5uh8B`{8gddr%8Gj&)V9jzHe_rRBw6Hsdeg$ zvU>WVFB37v@&w8~ZS25CkMwks_{qUCBa$SUG2V8oH@2|U)sAHMq$?1cKE9x%47O)u z=nINCag?8bg&^;h+u6I$UOpc)955kKiQUjvS!O;e?oRI-fI~_!PstRYoSz9T8q-J6j!=B{{ENtS)@M;DU)XSgK3+Yz3DgE`cfJm9YNUcssmCO1b zw)0)`>$&&ha$aO|Xwx1YPL0N^x*rwi7M2GYuTxF7rTL=O>QnavEW%|T8JC`FNGAEx zx4o%m0U^V zkXijRdqH%~Lx~(lm1CgG(NJ%Pm*myw3`5CmyG-olgi>0XNSwK4}8AApf+$QzZ~zq*K8v6wf4wq*0!(cz=pr69w|aGT^(Z1}jJ!*m2vv92Lb2l`Vy^b*NS8`|?7{1v7Vt zYIh>^#PbkgMPLnd?Pt?>67Shv;KG}gOhGp2D%&?BO7z?M#}Dr{=^J6{YA|=_2JisG z+jpcz)sW_CDxpT- z%HjOP!X}}qb!gWZpo)b9naJcK>uGv@yYpsAJ@?Od)zuA0rgmcFoE)#c#h*N{^Khw$ zz9TcX!M$mf=Qz_X(V6@&`Qt5yMWW^7-AAi+*=vZ3c}giTk$Dw+A;3#lE* z{Lg8vZ%v5iu&Yc0)~D^@pSMhcqz+~u4&jt?WhVGU4`NI%K^M6}pRB1l1{r>P4>AGx zS$De|=zFsM(gUsACqxdBRRJ)jxN~9>^mt2TuZed!K&3X_R6+I>NId{23vF3Kis|hk zQoUesaNqyYzUo*sv|Rpc+>y)nziXHfad5D8_^--F>!N0XAK}|}pR0=HEo5@DN$iBa3uEexXPg-PO$*m5F#8+^Eb%=*CL*ET##j-klp&&ub_9`qAW>=`b-aIb> zVm><&FBaWAxL3s2now#@hU-+KE1Qk3sD04CGaTnTr0jpfYPMUQ_Fvo6*kwEp^UaBs zt%n#Ialu1ATewZ+(PzMse2wT#2?i*8nB~~KQHJ<*F^oti&Vlx;vNi*Bs}wK=v0({y zHbv`<#AiuyQ~c|UfHP5E6V!Avu*}8Aifq!0NWC28<9dw-{ysw;?Mq9A0twX-2Bi18 zaXE^%B59{Ad_^H&{JivtDT0U+;@fCaPsIR+Jj0)LpKl;nRV5qSnJp)nRet+TwcN+542OJ_sSicI;X>c?IM+Heg zsM?Nq0ispRj-YQTQjiuS2N=T$EX|4%p6x=oU>JJD#ZcbKU2VPT#ccX}P&g^tK z8g)pq;ZGJR^j?|z#n@A0Mwce_PDOC|w5XtnK&*+4>3v{#xuoohMh#CD;0&Ao>LCbu zhmV54d(R&Wy-`cskU|2rD`c_6)K0!yg@361MWR{xw~s~1=>Ci|a5Q~$<{Po!EFz#&xrsm%rJ(IZx_&)Xl}hqt_DJQ9Ne|PA zhomqjFoZfj#~d=GjfkZsG`7iO#-J`lD>l3p&D8=5#1z%NgkMqz zHo3o~fso!yw1Wux)`%RZS!YCX1Sr>^TcjE+E^FJIQ@>@%2Lf)lWkJ1VU(6mirL(w+ zez+?ga|{XQ&sm^NgmuNq-wn6sPuU9*|8mw8>Y+iyt6n1hMM1YurLhX>ZppC#EnQt2 zSdGbx$<&X<*GW1%k`*Ucq!w7sm;eQdwfOhgZVce&i>AGoCk_9_TOSxPZ@{z z$A-$oVU7FM;USvSI}SQ+opi;~!$qne0zo49!huWWqHrPlRt=L^<8z7XrdAK!d$Y5? zR5p7z?J-_LC7kf6bI-70aVrupQ6ocs!T|q4n&8q(G%^G$`9Gw~55UbE9rRg%dhprL zZk#TgD%gOwN2)MXHU99nf-}@0BD`;cd&re#aykW`DIr;Q^)f2t=Z;x{zf||I?J?$h zQZ6>AN4bmKyMv=uF<>Iy>;zqdb)EHiev(NS2ZAUAaE_Y#m%FgM`Iu&ZkC8?0G##ue zgm)20H6fT%Tt7gQFTr&$k-4VrNRP*WBVGN7^%@T+%wup8|2cPDQ>Yl9c^rHam9Ag2 zXw|}MHLI_g8?W0TS(mHKORp8+1g3xaZ(hHMhGe(Cus(@%bJ~T-uGXno+A_rs6%HO7 z4WjLMX1WpQ;IQPhbi^239B+sG38xdQHrV`)mu*R_ep}o={u8OUWe_Q&utkkgVHwZ; z(da)0^Bja(>6iyfR&Eyo)=OQ?_!ef*SZRJa%VQ5V8T0Saf1^HhT&nZ|NKm-td;QjJ z>k6agb$fG&=#JP)92xxgk<_|4?AJzwH_ff*d)#fH$-2kiJ;@bgRDm>_?>h6pL00FE9h0K z#cAS8Rmz-MDn;GPy}M3_~WxpZyKL2cNO&+>q%a6Bbf7j&tbl7J;F6!E;2V5Ph|PJi4%9+ z-_}XeKVzl}doG?k&vm0qcATWMOztj2(Vd1XcX|q`hLn9|)WW`em0o^iwtm>0eRT?d z$JOih2$7>Px(g_x@14~zU%l2LZyiMH;@Zm!!y3X%HnSSWJV65aQq{DX%hM;5n&@2Bezu zcP-j)GN-x!8QCx$19A2J>)(-13jo0Tzks|VZbl|{P8PN{|FsDEA34MnY?|f@XAabc zT1~L22){86NJ1GPo5e{7ze&U+YFSMb*6Sib;eT6YtY+P~nZ8X&#_*D-+(Q=e+xTwdQXv#BLHoUUUryA% zvbv!M3h@yaA2s8SImmpd4QoB$m$I3v(Xis)ls;qfRHa(R6v&6yJ7dHc<(d(2HtXRf zL^05aMGrtdV)^#iW9Nb=ziE2Eo;RK%e~ru1rsfEA^PZiZ-bS{YD?L|h^8*#aYMSVF z=p7*_6&JkSUmw3u!cY|Nx%~eoW-AfWPuwOsbzzv^%O{xy7#AE!z*Rs0hq3Gb$Jsdq zh{6TSd2HLZZQHhO+qP}nwr$(CJ#&ZoUy@C>*___>y1LKTRi!Ln0T`0pc<9k74-YA(Zz0>>C#_2>yHrT_u&38eoKY|M zBsc~(N2q+-P4-zYtj{+`ASzxqGasnDJhPZHM4Q+1E{{KXZvI!vHKl}j(tO{x-VP-e z7jHXC+Y1l`J@)=pcG&u}^a|PhiYG{DFd%50% z#SHH$M25jBaQH-n_ny6biMOG%CuAauP@LiDQqh6GA$cb4a$x+ijL(F zj1=Td6bevwY-hfa4f827+dpi$Mr{tIRi3+qmupOcr$|46#PI*0>Z!ySy`A zCA0MShzdsfZ0wF|$J)(uKvsLr%RI&=$^OUFH3sf*2~NK{C<7%%1gT1!vSL2rF1;2T zlcL5_mSUi^v(F|2XQDgy1yV8^?I4cO3#45&%OGti{wcvUJSVo4pUr!4>$1oPOMnF{ z`QW)lfy<1>-0Eq`)dDPma}a=)MOff~8VDa^;L9_RnLAtL3ee*Q`N6~iK#VVUdaS3z zwuU;~jh)IsvTF2=>H^Vbt$sfC-qaK1jHx?{NLdt}Itc?@moG(lBn-JF z4Frklcc|#Td}L2gJ4Xb4jpm>zYSQJ&5ROdJJU6Zd3!_J7XFU@ZevoY9QD}^&@dPH{ zgo5c2ha~4_8rw9p5}|72-e^xLtTpU$o9*tP7?#+3ixqVoBLNPA1iQcXrLTZwSKBfu zr35r#zzk7mA&dd=ca@lB-z<#F+mVH9RHMnKto2T~O=_7pd1Hh|<7X|a#nP*^2IL6U z&>xqy0!ww|%*l-3avGPfUV{3ZWote8bV`rFjps)!ibT!?2iAYqEerK|OW22_Sl zqehhv_G;2L5-)4`Dq=#Nz9w>{%qbuk;H%JKGfJ{W8iJVWoz<>jP#}FZxj%=WJkeoH z8?a@DfF6nR_}{hN1&K^?uw~(c z@>&5no68d~L%!UwaV=EV7qJGZ+$DOg8by2&X7C8WUBrtP z%9-b9U{q6>!&GJDY^92F#6D)HI7&^gIZ55c)e~&L?`Z#$-97`B)~QIusUXBvDUZJC zGJ;j7B40^ zjEZy5NS`?s}$Yxz3tME*OYhL){>I~BNEKYb`VuTD-3;ywTqLXXU7^w$rO&% zu=Fc3{y|AMYTSzer;=tNsFtHX-Iy?q^ zmFp5V@);)ZQA76uO0yAyi<6L(a$a_{UclVYG**BB8O54`lsq{&Bk2h_P-Nko5(A1g zJwDI?83MvSJ;q*FlX;dhZwiCVb~SqSifS6bFe^`01O^<1+pP{<_lVXNr!y*nuKjmt zy1scavn}*kgA?MJbDV132?DD@o<&A=Qci>9(B9A;UXiklsjBwH2)R?5VNb*OTn@+S z*sos4et#O=A5KoDVQFvOR>SyKn4su8ZRcv)_@+07JSb;dOMPIltU|lo60S0Gky`c5 zra-yXu-dXH?5S3vVZay5M*OJi34a;;v`nxo*q<@r#b{lb6xfCut_->xN)P2aT1nsR z!t4j;adQqKf30zgm>jNUelzf1v?IUsooQ(!FQ5GPhoztt@h?{f4lzAd9w%ZmY6M+M znHmwinp`8t=4AnGVO`dcs*v|ERrjvl#4a~h2hm&V>)i1tM$BoLf1OM0uyV%VEUdN8 ze&O6~Vp{tBz7O)qzONpGy+0l7F~Ww0zebF9kHa15MEGodQia@czigpq&qnks7Ht0d zl^_3dqyFwyaD*%Vds+IF3l~rE{cDBjkN&bzx%*Nc{$`_$do&Au?XJ_QZJe63YC3F6 z8=#~oxpUs0jR+BKq4w5$g}a~f7TqHS_!E38wu9=kE65qaW6=(+$c#$z`y|t^9fRQM8;n17>C< z(%)f%j8k4!XN2igvYff+Edw1@)NSpOCSBU!^JeVl0=E>FkJNFby``ZRisL$)`VC;P~Z)AE#$+?uRv61;tJpJlZFu9}oGi-88=( z_7A%AW6l?H;i*%dy&A4{m3!YShd*%R@9;Um7xN~Z6>7=3aBYV`=P_weClwm$zE-2* zdz$05^n4=x`~9uXp!rsl@pJR=^7DM}QNi`5ugM|1nIiV!Yl*S=h8`$XLFIuP+1!Pk z$3vJ@MdyNtW>s-KlyoLU&JK=L=ks!>Pn+_p^Zt{UL}Wfv&a2L>;9`$Jz;H!ajtNI0g)=A1yGH4uft=>zqcW~Jm$&S z=r>(|ug$-KklEd*y`t ziw=cBj$w}Mw@Dc^`z_{-N@c!$ zEh1tsZv=iMNj0%M#)*9c*IaVtG7s|H6J`8q%1+~7xd!Cj0(0CH63UDJO!E?>!uvsp zi0K!BR`!Z78#zn`9$16mK{)!SJhU8(ZG2(Fdqaqae>*jN6693hDp~0Q-|$oh(nQoN z>|_m(Q2ZGF8}G6N)+he9fov__BR`kP)|PzN5PY_^69u2S1GB!R%G1v|Pn5b_9ueMJ zS)dtJ@LEC8!gWo)Mc|=dr%q6a+Pz)jdUB^QJyaV*l3L0pX(4N@`T7!q6H7(Pgg`5+ z>Ct#)KzRAIV~2WisW;Y9IrDC54G}tT+!!sSAIKc_-^l?m=y=@ z-|^7Xe;zYnKa>48+gUsmmpC7}PQE>VbWz4!B@-5pXIN_6S7H{qW5h9K0N=wbbur zibUfE*b)jaHmh9s7VT-kQY;@)Sd}!Y|L(ZqT8vZz%{z5Q7FdpJWQ-N^jQ0b6sHjUw zNin!sXAxXf5F$Cvd0-)tsc4N3=#Gh^lw*=kGjo0^f`puBy*{`jLz1h=-awRADuAs) zwH#Jx1QAV$d8J@yYGfofBIrTT0y$<)J<$zWA3U~NLL9xuPhvc*vNl?QVzgKnx+Oui zpHLAcK<1SN0%`mh5l({C>Q8i3d?EwVG`@$vgJ&)DG~t@0FLT^U-QTW*PFQRRu&Q ziGUQ8Q3$j!AvMUa^;B!cA2}y1Q)-(=P{>+~meec?_i8x|-kFPnWvO>rPMCoLQPLtI z792($TgfUx2c{6D$FLI)P#_VuS*EgGTi!}H zBrw~6Wlp3Zd1ibkkwlv_3!d|~!m+Nx(gsv&l1`RhhH1GSo2n^gN#|nW6^Fd4JSsqJ zH4`UD9)bE;@f!B`;I_V8X%(E>%$h;=Hy4`k;wl-&rb;C?yV_N$T7P2`UAsUS!P-IR zr6|m*r|PShv_1;qzPC0?xEY^dvieV*7}*hr&j2-W!U`K8i@^HuQQIgw8JaLx@)lZK z%zL)i_;?R{2Re&kbV-`5X!-qf;_-BS9KCRI;O;TAePeB0i<~Z)Gd#XQUReeq1!VaSpUkNI=5}JFoCFsI%S%Kw$4-JN=B=&{cN97b7_%sv~(a? z=zt;WKCFumx&kVtP0ALKC(RaaDZ{(!E8?qhrS&f+W{)%*y0?+$i*ro!HS2zCjU8B| zth4?u4i1jb!VVbE3BSy}+21N-X$#bKW6kk#WHvZXS6BbpzJH0?UgOR5>t(dH>vYGt z5F2+ZpT4;SaI+t0DTF_S^(11=kJ=IPu%U8x+0wlS_!7ivG~+3W>%PX#cDHJHs5_^9 zuUkJcn)}j@ffEGO($#5^@sf5mpHgN&~w5R-~!br1(cbsA@y zZh)6ak5J5%X&?5VQ18+&94tgd$3 zzOL=9&mJk;@|Fj_@s&edOD+xI;OoON@N=(o#L?}!q6T(M=h?evX3 zw9jYfRe?Zh4!POe#r4WOX^>q^gK73@xe>+_X-^ezv#6I+C#FqX(tlFLfzbS6xvuf{ z)`4X+Z@q$DF;EW$AC~lYncTC1Z3~}*Pc?Avvt89(w&-{aes79Ti1Wx}83w%nELjez zW_-Z{_~)GV*UhMe-Cqfv&XHdfBmFB8s7()0w)*sDavhRoW__iF;o-fw(!*Uesi)FYp z<^O#R(Hzl^FVRyu5C40PFM;9i`NEE*D%`Yd&;dtWy^r6N)4w}5 zod5rhJnHa4BGhaE0NhAG0G$6H%XC>&7sLNO?%d#7I$yIqa5H~{BbpubW|Cdb7PlBm zX&1=ATMV9UxJh&Ta(8plaJyMeOJ zx09b--~Ge<_x43UCl@bKylMB>;ksgn?;d{|e7p7ub{V#EZg&F4_quhP91Ug(Q)JPy zZnwX`-+tGwCFrqzr`HO;xUg;KEjXY#9hoC`{`3CEZ^1SR+WnWd$FyW)1eZpH_i7K1 zHDe!vBZjN{Mt#C*SZNSI_4&<8<~yOf;ZY_#y@~{C-k!@RH6)wKev9L|8y~+5!ch z5qhg0sN2|inajWbNYR4z-vd}^VGBmj1v}`a-NgieRItF|Nx*;Qhjr|4ZtGZgVKQu{ zO{B@TnKu(A>SXy7C%H0ws;jQd*i^eJmuXV%s$IoPx~YCeOYT&vx3+cFD#NXnOSGwW z)h^Rt0{lZ|hCh>904v;{xYybJtFR6GzpWI^2^c^?~$Dc;o*KL7Im6Vv5nPcV$K&{?MQCFT|QdDrotYk%OSCoOsHbi|Q!%~_!# zHkgBiHz2gRp>=<3Xd}f=AbJA$hj4v&xSFo>JIRH&SyEP|l`Xeo=Fh>^mh_cxq$bUBID&hEJmG#1>QG1_B?y6f zW-Kl#@a)iPw}UVqfKVAAh8Hrw!ujlp0`Q3FQX=vh#DUl_m>X@c^QLd|_%I>t7|p6o z>|DuIdZXY>o2dF z$)PBLQMC(N-}SMw*nNY-#CN4d7M`KJ3Xi%M-ka2 zyy}JZTV~yI9FHW3lgyLxj*uFSd0^%4bFcw+OeDVb4=WC#w;T}*OOWDI9%KBK@GC5+ zz|j}TRjWu2`U>Fw8S&LMyuyJ#Kz}|UKJc5c`)lIr8)%FMxG! zh}5e!_!6ka1FsAcN83mdK}+Dxlkf)10&9<{p~??==yV#v;AlDFQDHV(08XGy0n+7& z3!LDZH*xmEUMb7Kd0E^viv8yR>~o13GDQ(8m=glUSdD$SfOr)t3BpC(hT`eVmhcC>c8BZ9 zz^o7yLLL{e)y5d%Xg}`*nyQmI$~$kHT#OeL+HcEvfEkjg0j4EjniC&QC3IKl8VuS@ z#y|{4hpyRx6sDBJATHTr0Kyy*(hgxCM12J=RF(BKB_LJ4st7F4t)L&x9W&(Gtv z*~6%;+Vv}PU@~fnlI+t!T9Totgl}e!)`uWXwaL@QYQwmYYLTFq03_3KK_k2qPV6~? zD=zxCi1r_L!cO@9QRmf9LE^1w-N70}R-1x~^M2L=3IXw#HOTV-4Z^32jF+T|p^(V6 z)`Cpky-A^*RUy@7-YEjW!3a2hM#@W7h@1?4wpfnoHapfJ29mcA!cPCD&zEK~b0?md z%RInX8ZX8+M3|n}JcyXKp?-rX#V=gU$XnltD1ky3{4y@H0%g&LgC@nqCg>qJU!P#z z5oT@;c_B(`Tx`X9>UPz$!oi3v#y|($h%q_1w)j+H_ke54cR*WCNkbqxrFDbx27lvD zH62Pw;wK?)tUw2Tkwh@*Y=dP;Pm1Tin3ySBP$2N0*IJbFW9fh0cCBLOKm{n$J()Jj zO~Ci?8wq+k^??m@eo@oVkFgt5>J-B{L0!CnuBokQc#g%)ikRRQ0Lz`K;Kx8weg%3x zF2RBWDree*tI9JW)+(VK*rm1$=w^01<53l}fzzN`3;Flph!lVP#^~YjrIsOl^a>|6 zmMFZ~aYccDMrk^Xcg1q3&7E~CX^pA<*L^BQrsYypOtUQ z<2+e4>v?@>4{h!osz)(z@#17FH`KpuQG*WI;birChk$`CHv%etKoZG=D2v{>%)KqB z0v!ae_!sDd(tv02o!me0xdy0P!kAFsl`XH49rLC(jE)Q0kXv?P6$2!M@S`WDCVy)x zA~Z?W`d^ibt;hR?+HYCtlY*4*e0H>w?0j(il_rF1Oo--f$j!zxPiiA{ zRnsa=9V2H5=z}^Bj$}K|=lD$hlw1=v*cK;9G&FmrFGW~36HxHbNt9#$HjhX>OaMB3 zCB0kx=-#0$LR#G}dyTK9sRcv#Tm)h*el=KPtBh--Y`&g1KQAib#l#*pNUE7TzpeCO#!?kI)+n$kN3MBi-6oyb>}-<&5!pNeYEFXP+vrcL)T5cXJvY%nYl9U zC~82)22)(OQ?52o`qA4wLBA6&pONpon3|UdE|USyiRR7ws2esWBp8~vWy6{aVH((4 zQL!R|7{yCO`J*ty0s}HVupx!s&A}a(YToVpzVLnd- zL`I;6KTHmlXnX6n6Xine<2}u%7RVRj5P8!QMSY8Ihv9ADw!dc6`qU!)srl>Ee1p$@ zS^Bkmhp`L*!GMc$sA;4_U&Jq<@-&Ldk}{s+HZrp`4mjcBe~~Ej1?m<-zzHa!neOuA zPQQW=)Q=mu&m%3z#3bkM>g6Y}eBT%I91$xBr|!yEwno8k6z*R~fe87U;llBUBVbyM z34$PMm0$M5dw<}9QT^Xt3T>Z3PHo+`(>hIRx@g&%i*YS|AW_n5Nrz<%a1X%+MdU{k zypv%>e5Fr*OJS|U^Dw8;qMSfVBZ>?f%PMNwu@%hdotUJ%udV4QxUS(=!T$3 zIKhvbuHiLRwM!QzRJ1z+f&w=GK(1$oh^MFVnLj?`f-!dVqDx7G4CG~NSdn?tGmF;n z#F$Zdx?HBwsHZ?-QitTQawn~tM^kB7Rcm$q%_z(Vi`EXT9Lxn>^|ia^XhwAOr0UAP zq?SkLoU`g!vHwqtrl0gvtSomLLKaSMfQKstOA>)<}9gc?CoWM-8tTljSY?&I|(ehn9u~ zui~x%c@bgfjh?o>e!88Zx~+;+Mrv#FQz_)utIQQt@}H($SXinYXkJu`^Q*fs!XiQm zA^L}z^IYr^p@hr|E6-kq%|{OF`%6Dg^R0cb)T$N?-732ggzef-@6*~_VqckbbGr48 zz(0w&5etbI=nO(G&YaD_|L*lB^FzXCimkPGOB?4k7qRl*L4B zRHe18UmlDtr*D7*px0D=Fo=VxS>giFc=t|TQ))c*3)aBG{PXikgX>x6j z*V=1vPoa;u-^3HqC(F+;l=V83N>`fP4f)LP8WW@Hc*{#}r#`Aze1eGlIeSSb4)g-} zIaf+B)QC5tvOMmJifHu_$+_k55-8A$$^}9+@FQ~SDD2cn4QFbE@5$-ugh2S*VEo!{ zNI=SMT~r%wZ!L8swlpT+NQwwh^(is59H2!10-~D108;4*$ zJ%Bbu^CD1_D*7g2{Srg0tUiyc^QGQI1aT1NJvlfj!a_>oa<(^n@p)>0t{_@Z3y+%L zAW&<#OQC4ca=WX|pX&W2^z;xX^WO^oqjWD^-+JEGRh1STRQ+{f;q0NvzbU2hp>`NS#{3XUMLCU(FB^}-4;~}L>N5WmP}lAjG2G03oq)Z zU+w)abTWk2Y~!MP7e9l6ZhU9@Fh7mMtR--V;iziyQx4 z)EpJc>XQfyf~q#FN4&s-lJ8-~-p}9-fx;wM>{3GLA5Bhq96`~Tr01yg!ANe6>w>wlNW*TINiL}q7PTH9ML2@M@ zI|6{yiHEKl(K8D%f1smCyzdPQF`DA3ymh`Tp<{Q-a5my>@%A?3nu_ zC`^~5g|twjU$kYT{LQ^_l{5Xi+DOs1ABHorZoARvN3b5r`T?=x_QneKfbAr1_^%f( z-aRlY1&p%6W|X1Q;;4_d0s~e6;z3Cgf*}8U)m+F(715tVLRnaDUr~d%;!m@8D^Q1- zEDFFsBoNq$3u4^i4q&ffm=ge=7GR)(cKR0xXR;<^S=&Nq2bmFOq!HwU3nkcA@b|X@ z*dLx(-pyX`yZAm2Tw@g%Nx>B$yOW^VgrNy#rIO;o1GRM>(G}5F&g`VC|9gT|+)m@`<-e zXi#9%06PS8E!Iq@jwAJ}*2xQ4wc`Xj8C3%_OXVbWIZ0cX>=j%Kh51ekUg;!!g&dT+ zAQR9cbdg|{d5QcI7Zj4L#V(x{By1-K4%-^P`m|KNMM*AJ8tur)e!%VsR&O0h1Hjcp4gkQbl!qt3y5)ge7~0pv!3dH%66yCTp`} zA^ChfA+Dr%V5lL2RPLaPW?}pR?2T}SxFG(Xet9^!i9ST!LN`a<#u{+-K4uv7)53;0mdX;XtbKD4l&IYy}~H9iH~e*Cva$pD2zM^ zsZw-lj~HqyzFMWm$>OUe)@P2AY*;c&HU$aB0Wf{(R6M)kpGi+x^h-eC`;LOHVBw6V z?Ft~1ieaz7Mh1iJr$;dEYcZAc1;n%z_}t;@>fwBUF0P)tKlg23j&(B!CCej^DSq{8 zmX0uKdpFQJWi7}>Dv68%3b6NT$GqtATkr<^Rj9f`*Ryg5vTwPoU6CW%)XK6yX%&3R z=F(*&^>diktC;};gVCMgaHNIq$<>3ZtBL|{^W-?yivJ_gjiR0sBRyt1sNG~5D&@o# zdnLcndiJ{VH z3=Ni_nYc}q4m<%K%YU2(szi9c<9O0%Ysv&X+zi8XW){y(9%$VJGPi!H_dceI3N7Go zR*8Tp@efMfoLk0_7Sd+1qze!Ny9~7OCKN33NonQVl5J)bag|te$&37H zq*1s$5@^6fN|?nHG}2a4dnSae5Fv}}4YI7fcvc=7kqoKB9##rv5d>v|qzJF&*-)C( zvQDHJnjsmEixXosVtX@oCH=mwOMp@2U18pOY25TtWNC!YQ+#=pb?bXhZCwxEnQ?+W ze|t`wN6=kXIWFZOO!BbCVPVifnagM?K(B`qXGa`o@B7)(B+j`UW|1nSx2T{6b*eCo zExDRxlV(Vr{~j)lwJC5L0P0gOZ2VNvG6V-Ak(PW3oOxtbLNl zirKOzsg;M-*f?V$dLTJJ&uI z{Kl?TtTj4YVw5Qv2g(}7Kd`~CMsjRu9XFnjh7*;5e2a;w2Fl}sj@SWD<64S3(j+oV&($zTmh2oy^kzXN}9d`*21o54vGWq>7RyTeXH#vubMH z>4CbM_7-Y#-{0;dm|q@rH@O8biAX}t&(e0kL$Fp}U}}+{(yOW#df#u3eQw!E6*3mR z9{Q|_D)g+p7Fu6Dgx*dyvx%9C9=7j{V|=H4$p&-i^a;`amiTImPD|-X2F(`xBK6)iIxU5nR0O?!@pz6SvnGV z{@b>O%UKc#9dQ!dGDep|_wjohygB@QcAUTGp~yQT2tA!V9C)$j}7pTUudo zyVfqX!hFHCTe5&d#>_c&``Z6e#!|q9xoS_j>kfgL!f)|)TE*On)Kci7hoNn!-dd%E zo!Ju*X%8MEcx4WGfd>^&#?eAvguZ9`f8B-8*ZFt+-atah6gyIOdbv9P47aPZugfnP zWu;aGDzicH_V4Qa`7BGt*{H%T&@Ddoc6GIArGvd%M(jNS#D2ZR?Wqe1z@7m{vE<+Hd9da_sVO zgdUI0uC78lHwaH+zP^nE!&NtbE~oiD-i+Av>BSMzlmGiOP5@b-XVl@p({M9V|M0NO zzI)%Bh18MJhj1t%)xQK`AntZI^vovOoMwZ1LwWqEd9sz7t5 zDdAZb%Dx3<+xIEfmnChFl49^umMsmf>QJVwYB`|>%WViZRxD-Tzff1JY^_*w(aSM3 zjTftKq{QVM?ZrkCKfvR2s5)hCRjv_|in?F|*6KPasu4>KHZ-iiP3EI5tIRydW& zxS9QTzk2enoyf_a%_9YAGzxAaB9Jt;TRq}JZ{))v9M3t#*~u!wMF*iJmLieUAD-_Bb^+hPYe|k6%(tA%A`fzQZ+BqndBz* z;^$o-M&B!etCJMU2*~)zi+ofqSi*4O9g;9g zIbU_<+L`~Ag**zK#d*qSFE|;(-GeN{=v~9E&)pCXGlv)xf4IMnb4rpksd0)^jYbwX z8d?E8=fXJZ!l?2}6*KYG!uJy4Ef96zzT-z&?%I0iip>M|?k~Noci+0Lf9o~+@YLKM z`6(xBCVT+mVV`K{m-RlU@%A6niX{o0`-f5kaNTF?s86v~G92WYmGJ#cAE>}X=wg_Bb^~08#*U9khRj9Ya-0PUmu_8ZR-Kse~@pcj)pKyag z>kXtm9L77!(}le&pAAPt|55uwC?MHLlpFuphDBiDU|#<;%S~}rKpxIRuVwKLy~H7b zV=rNzE~hEdR=wn+%LDJ__2%XAe&?YikaF5CeYUBa#w=l4vjzzZlY0k>*uq%^V4jrVe*k#d$L+t%oqV+Sw zYxe3Sw<*ouq4P+9Lsh|z9i5jmy$b=|M>bdy#ogWqhIVZaQv491XG(418NaXZ(0?9Q z^!fx7#uh$+c@i5#xGdg_6-6%0;17=5qWm`F&OATmGrJ}i%XV1ctKgns((nc_t5s$1 zXqDPy&mN#^Ns>54NRymi*3?^sO~>Kc*HiZ=zHc*ejAxd(ao?_4myVEn(VIM3k*IlB z9wcIjsq=~)rMh=f{$Xpu%cYSnL?I1K)yK?c^>>jWwBI<$;`QaJ2DWbGf3(L?twY4$IY@YP;Dx0(^&RH#qdlaVw=H$lQu-29Ux54E2r zA*a?w79iTu8AVX^a2z)siAfX9`K_eCE@wRy#9lo4ucWM!|^Mv1$4jLYK`_3Y; z25`Ct2#O4!vT3CLS5u^$Iv?q|-&ly1F@ZZqtaD6LYyG zfpc9N`+G~HG_sy2Cg}D3(RKSi9)#juQ%M%R6^EX2xS-*(+t`Ma6o4!*I3A+i>FKA5 zlZ{)MG76gvq#gNAjZh<`2*P@U&M9PO7gdMze|+I!F((F@Q^~BS;)>rX1MNJYAc_Y? z1yWRMC6^A|R!wP;>R$GOnsjW__Xz2(f-uqAw@{4eh^l6IggEKkg7S1K2KColhJ>t) z&T`RuLdhPv%{3Nac&{O+Eo0wopfAWvCF!Oxos_QXJ?D->KstbUzA2maU`EFr5^?)0 z5TzpQ7xnpz>YHxlZ}gGNnG!L{EdbtoT&2FG}V?%fgFx1odUzT)68TXM`E#*kJX9T41(1S=vha0vSdNfU%`dxp~ z0!&h4v5egv4DFS7Kwx*R>A=I3iRd%a8azr{Di~!HG4?1%l_2FgAoe<^G8-|ispTT9 z!+N`UEig%vW+bX0VSbI;$H*WcKfjjm4}nWj|KOU8Ce{3xK*in4QJWGy*Tx_&(5m4{ zY)s+!<1@G@$66IRN484HpS4o{3u+W$TB&}wJeh7xBT;3HAJCo01 z9j25%EZP`ZcC|0oYvq#RTin_2JfEZ-Uztmrikl83gw95fT^?!WAYCp)yTV+034~${LvMArs-i!)_EiN> z`sD2t{QBbm;^y1t&BN_(^Q*3273C5vt?cA*=r5$liMBfGsm)})G^H=?q=Wk+FdU`G z;8<$}!fa1i_XGZu>{vL%xEiTiNwy6s#D~IPpF~_54BRrRCT*#xgGm&FH{!dmDPMe4 zS-~5le_tRA-$fF)VkJgGW;*$Jsy#EpvGf#S@JSoN;*B%8bPY8y)uWR~*|>m~dVJ(D)-wb| zF$x0C+80*NBA8Q+b>={@jrnmwnGD8dlHuMYrt=)8K-@r$@@y-yAV46tZr7Z999`v= zU4{Hb>ndTj(ZUQweee1NQJR8HJs4;I!vJNxmq~b6}eD@U(hnvIPT_#_`Uq zWJI4PV3DF10|Fmd z3@io*miRINJS7KJs>z2dCZw~wWC@tLaaz`AT=)6h5L|{FIY5Kdh~VrEcsrm8&{SM- zb1E=hey;fx-zOEkCKtn6zbT~Lnk`dXdEVZ#^ovK1?xh|?-;G^AZ?-Q0vw_**++#x% zigxv!x8S^H;aQpNe{ptB&4EB`x{htzwr$(C)3I&a?ASItwr$(CHJO^KQ?<|KzFL1_ zeXpL^qYq_6@+m#aoR{2~wJA zD}a0h+HNDSzN=x;MhLvf@Nxl~0%Czz8bTa)j?Rn>K)xtGz(#4yGaQsl=xG}x_##91 z=&~zaMlHs%Cib?QpYqEW&I$b0)5PQeaxx|Li^vp#@t*=2goiXpQ=&^0gf8Nx{wfaN z13b>6^>Xm1lr!Wzwy)_#^HK_^SpN&adg*XpWRWbWaxj7^j#qmq_4l$h!!L(k)gI!K zb!ANpeaqcF54{3;72mAmX=yA#0Mz_y01gh59(DkrpuqO^qgXF>bwlvL3NB++)MxUt z@`JMSEqfjUX9fA+A8&sS$dYrq<@(ii$GQEWf)|!FZHQo3MNw>oyyS9zT|b0PB9c0;JfDnf5Mv}V0JxFBsL1mtOLs|UES9Y*deFEwu(IqfSedW zfbzfAq_Qksx{k_NvCAr1Ba2MQE?3+O;7E@RZ>77B{|1B!gzKAv8d>^+a&T@?UU00Xgr5aoYkNoB>lwLO(| z;xx@<4av$_%e9{8sgwG;5o74C`Ue;SqmJMhm$_9t@Ibh5X{CuE)mpbBjf(-~0^hz^ zb)RN1(uGJ5s%E9puXNp}#IJPA`m-~6z`pLUK@)DRwNffwHLt%UKzDE^7WAaep7b3#~f-2i3U~JQum7<>D^<0cjl=L+GP7A3| zOusg^Q?A(%f%kqSI)hM2-~{_&_bDiJh>&FSAj4jRvUJIt?OoHF7uay%2ep|F>Kn)K zrb>#kj>IjNpWS(K-j40t`M^v_)YSL)<-4CQ%F-on%qwv3wts{VwsrvK#G_odYz~Dn z@0``XVyh}f(f1rB+U4!0IU~IMY&Nxh8o09FxS8blw_ry)E(*RNV{^S{_R|I%TxNIm z8FqJ&Mr*8|T#R{;EDQ^TcBROk9t_MW>_QAhesFY32@PpyLSeYf}3??v1^8a%sd!ye)FXDNXQpJ@I zo?vG4adIZiCVXp1*f*A4F%Tz!a$;|FUKpOB18P1xoS zcu~F8L*DXe!pLlJMHsXQ2e323VjQu`JBEOw@{brDRoQ*xFegL(r)i4J@L{%}0E2PX zPl{Ih>dZALNE2fmlp@}^${aax!0%M*b2NU}oOQFnJyj2dm7Y~-*cHJt`tZhEUM%Q6 z#S-vG*Z&btq;yUdP2V&I2q9^35{GN4T+!34(FmZy3nOjA|3WwbdvYP4g;G9&v@!FJ z3JwXQih8-JE{!!UNzwJfC>znbIE`LP)sih$VWiun8PeGjXQ&*)YLVpv6cC1IQ3`ky zf(s#&6A4-m)P@dOf&wN@>L-w3Xsvy*8~knSXd;klSRqy`6zB!oRC42hxZ{U(U(>}w zbVdr6)-lO6m9)S4x^T2Tx5qvl8DsYuIKET}Q42Zs!H|bl*4F>n-jYTyX&W(zUI;1a zPn#Nmvq;lfd&t<57&Ezwo$_M=L+rzTd~pQT#e-&ABnL!WcinFju<4NCz5laQ#^w(HSPVY_5$i|MWk8Z)@I4j&{n_i(nO5IaC zxSG16-WW5kr_S}06a8^=L-78_*o4GBp_wFQwC8Yc3;_y8wRb*SlhJSjlho~U{Q`@Q zSlDMd5kVQm__1N#?($mU0H@0m*#{A2GVI8*UBiI7Mg8z^gKQf6MUkF?s7G&2T&vH+ z1&V0M3j?EyV}lx!XaIJbEEdJAUfIw3MDt42_Ue*KVR$Lb_;`0R<>@L1a9-9+7}S`E zc~Up4%He?)9#3@ zrKzcKsyc28ya+&rf`UQ+BId(d5Yi-o)2i{^nx;@ zb&K4AS<5`Nf<=J4CIk?0z*?m|EDS&JMZ1u*5MmL?dPV>mCv?D=gDtm(Rnq`mbJ|1p zBU6&-^wIhB8COx8xw9TY-P50D(ViyiQX@_8Q!KU)_lazYGF#*c&m*hUt>BLQpsOgrA`aE2-Iyxl_6P%~SKO`D}z9teslXJ6=e=`08wP z6$m#UmO_L*hT>uYQRc&FYGR?^`X{8 zpUcy+36}d|L8S}>O~Y>Nd<8C_osW06kuX>5*^_{zZSxb7(%Wm$Y zJAQBc&g)|C{f_et612;7*|5WFcGFnqCx2N@cb`A<0#J6sAA1Squ~Afx7(bLajbjo7 z`dggUCthvJv`z6oJD4XK3ppxShTlh>!Z+O3sW9GV6=PBXyLuxv6>3=4;l$Ve(3X{v zhT+*sKF>?}oaxE+S3oy;@_;5F`SifMLsmyFkq{bnfQ%Zrs#?GMW)LQfeWT(N&@v|9Y@JI) zl=*F>)v9E{v%OPhJOJ%R&+TJ`oc8@*6p!&ScUj8yn3gPFnxie|Ddljo7A$-j7#=?1 z+}g@uht*MA8E68iW{p->q}%%E`dNGk1wMp46?z)%x#)dFnUk3E>cv0=>A&_=6+tRw zp?hS#YW}zMg^f+}f&~!z7`_7{u}IfQ8%72|$}oLeb=RdTMII~{!6%jI4tsb=iG>dz zb+~um%V?wLKp%nd50BdGlgWQVl*l7z4A@R0X+!K@g(+yye~08HXkfa$*8&);8O>{a zy_gDh)oS?mPIMD(OEB|Vv2Mfg{Aio_l7v**=G)9wt&aOBY;8Fq?08mNa-Fn0ECJ;& zEvC1OkK*N`D==wZ3-#2wz7{03?X zpZNO!_H6B?DG37M0RX%_000F3%Ldwi@H%uo>@GwQes?!+>M$U+%Ih;%QVUrGdGpKA zW%0rgJRL7(jqN-8wpr+L@WbuKCh@u*S0!=QyVJ@lvU$zT&HR|XOyl^tI(Thg2y`H~Pnj%~A>gt^0cuIqcBX)iv93B=+a`tnU<#E6}m z%o}d|EO)edw_jdpbL+!1=-gtC!|-u@R4Nm&x!N1?Daw}^K$H=8;P9}(U||r2Y}8A? zLcv&?I9(*oWqcd)ZPGYRDs6oYue;aySIKAyuD0WKHjEp*1kQ7DuWxYiE|VtIGCS9+ z{YuVv@m?$*N-sLB#;>3^_GobMHHlCPKMm?Y?nwn7avQa_~=Gl;M%Lmp{i(2B+6PGQ~K zF|5lVLgou+B~i(Qr*?=6J&L*w5L1se!`cq|nKDP$f6=73dwc1hpta`*E@P=PIM^Xp zM%*&=_GcR#*UP1PDnUknAcX90?IrlP$YQ|Cms(A~51H$Pce5b_v7YZlo7pFP4k}3& z_-`|K@*GQBMF$X|Vu@*_A@1kkAR#J8Hp5v)^+Q{&aD3a0-Cf??N%6hz>*?{q@9+M4 zd(+|TkB+2Kb zqlLq9R$|mQnB*JGYUqWeES1cn+j)MYeE3bJW4v!EI1pkFIlOO4oZee(TpMKht~m5s z-5>%bqHvK&rl}SBlit+4tbW2dmyoiKMTK98rq2w?v6~IVJNu`GhaM+{MATF0`d@d$ zei2qb-}z*2>cu}_;kI#p?;XDCjR=veq9Tp77DAw;!rESn&nj=x0)NyShmi%3Pzb58 zO-!4{`o1{ZE}`-d6EIT}p9LYv5o~%PV9D3{3D0C;MWYVEW*1FddKwM}5HdsHyeIM{ zoQy}g%M8luB=o1J-xh5&ievG4I;%v5es$x<%8JMqdQ=9I+Qc)b`5AEc0M8#gZjH@a zm!PvqhJsT(3Eh))H%ppu$tCmT%lvB+ZxvN`n)+%wjBh z8|009qJ^QM5!6*JKLNxpdFi4$M(jX6yp-{m0oIhu?DVfV<5`^!2%k#mk%r+ej-Gik zG;)PK(bl=)T6SH*v!sb`)nB^<5;(57QrrOnoyjI_2S4V0&-KDNoBn~Y6)>$8ND%}U zdViIijR4c9yfd0NGyEWjXm9k8kKmO~D|2DYuU zl_yaC$HN?uN{KYTw>Nzd4G+ubTG^WyQ@>rCS*wm#rh8=zD?nqlY|dZ6^xz>Rv)`Pl zZx_bfE84XZSa0m+Pfc>Jz*l(c6n33|NduHVQN33iT_tFe^JZ0IGf6U@)N+Z+L8zF& zAk*tj#42>$J2P<~CBOnBH5;Sx{1YQ;2Da>(@Zq7>qCc~O_6)xcbx2K_FH zo0#6=-$&|cyJ@n{$idp#GxDwYg~|i9s4U#pxPwtievmFpEUctI+hXa=8JNydke6Na z3>1rrhdetN-zJy~^ZxulmZ6l2!pH~^br{29oQ3A5b&pehbq7IqTTejRDIz7> zs2#$BpbsL(N)%9GOn}iuWPgEONN6Qa0R=-)I$_GD3~hPRc^U>=GtfmwIm53*tK=^Q zNIPJ_gtzzOn`;xvgi^BhH48C3z5w5k;Um9O!He;RmuFMD+cq{gLh}E;S-QP2LpXz8 zhz6KuAp+t{LlQ5%U>&}9eqCK*T6A@H^L77d4wCp-?A;r)jP7s3gtfPp?uI}}pkR^H zCu*HT&YDcf?{d}OhbhLzw486~V@_SJqW{ z28CM{n1;hvfD!N-(y6_eQ-ElM6#z;S>57O}cje11Qaa?4-jy?NQ8~)rjX;m$$2^Yu z;}+ObG8iu*RTRwMy$T>`DzH7gI=GddTGYl!3HgxJjp}u43I^km`(`ZeZ&_`|a-=Oa ztG$s(MXDpXLBfvA8dmStylKtJyWVFGu*lbL^G>k^OU7B2L{^c2=*&{3Yh1sKxElrs z5$(U?AV6qNObVYUgGsZG?OX<0KR;JM68lhF3j0(B#sb6~O0q^?2{28S$1wad5F&Up zI;Djm*s{aLN1$O(@&Vhl(B|p%h2Nb*e@PK7RK_X#9;r1qk;`?0qej>wl<^9loMcpT zAgND}=h*^smP>>8tk7U^)_lRbX4bVyqN5LQU=-zKcx(8_V=bnGBA{q9I!UdO`|@IE z2hf=N=714&>{|^1->AM(BO>24KvJY?+W8^+w82F2<2LycX2Mr%9B|+L;z#!zJZ16V z7mA3%)2v`ice!5S2ZG3u?V$A6VKt?Oqd&1p{;?2MPB!Rwjop`z3rS2Y&yH5gX(ao5 z{a5j&;%*KtO%PJcJt$IR-9Y(gvD`5nOXZ;tf}O>u^w-L+C>=kN^Ufg-tkRmn?+pvq z^zv3E18u3nV8dzoI`Q^~1NqwRS$DH-Y0Lym7hd^B^xScj**~S~S8PeZNoQ2u!E6^m zxhj=AzupX%$T)1-`NZ_evCqUwUTtC`)RQXOzqu9GiwkeREhOm9%9=OvlJyWFUF0yx zl2OBBHwzRS$Z!drXbhXtNYbc#(=!|3f}_W{{Hp;YKAP3tZXEZEHN_j00#}LNe=E2b z!c}T(8+iST76<7tw6G10Dmt;41VTZHAtT0k(|`7 zl+-Go*?j-5%`(NFjsq=4cP1-Dgo*Fcpl|`2fN+CZ{UZg|dO^mCHQB9>Qn}l=MxT0_ zED=jSm(58|H0C!-qNQCJu1K3DbuzV+Hr*zaY#$sFp{ov8E)Msc$)n-^r{S4ZU!&@8 z4%75=5(+uL>@EfXzEAaTe_bR@xRK5yq)O+3`zw~`fnfDQ!xip^-_y1MWkXxKfS_Qv z^UJ(&UlIzeyBe7JM^XM5k^q3upauT04J)U^;dD3Q8-$BIYRFkb1?`Ip5_`eKg?HNO zFLpB!KK_{<{E-my<>l6kCm<4nd4+1Ni*g;2O;{o;LiQTf#P>qRnZ)F;w^?{g-Y5H; zVi{GqP59vRM*^!|md63Xs_jqh7X%dHb1HKRIvf{1nFT9r0UE7 z75U?&?%$d8UUMs$pAp3{6KSaI2oo%aLq%3o(V@Ew*))36WvGr%W(==M91R-wWDO7L zX|N#!KSjbw-W$M?2ceCnXMSEnDEb>xJNwSxY@`N`KBh5g+(S4CzUm~oto6Abc+CV< z4t$NYXNfhxA11{c|9ep)ZB)S?*u=IfjrRU$*x}`4cPkzUwdnE(v?F$!ON5?w!bAoa z@FPvU=Rs?Ys+AtiGJVhFzntcoVzvTx@Oy_R(A(I|rz7pGgR>T;{?bh{H-Pn%s9I^; z7M&vyaZ-1fE14k18l^sY;tfksXC(iyv8(}|^E-kC2zE0fwZmm2!s{VHV(5J_k^2#& zy|gGz4aaIzN*#(WQBPoe(_LUD^?k7#FX@+$5J!0!^Ttof=_cvFee`P&t-a-x$-=DX zL}Qa_369b&Q?O#{(Q~TVO%*t)8&!+Dyu8UdqaQr}??-vp+yOoJ5bIjQ4>!!aHEgBv z36VM9y?{?77(G1_I#ZbatOO3_yZ{U8hvZTow&|Zpb8lO{7R{;zts9A1=B~S*@PGrb zg@t&s?SBE_T57hyu#@%ij*11?0CIuc@2ogg@d!~sQ*)XT%8vwp?QQ}1$7N)w6`cT? z(6XCZmyd1XxFoouFI>Au|Cp8Ym7!+IBwVUQa%4~I(+>MyfH<(;VS9=t{HO- zyQ}bp6VqOfEV93z*y+()Z$b>3GDmKKV@B*Nfi^Xu8#>TpY%77)ds++;4D_F73~S+2 zM+U08T~D$4aAZrxk6#As?0+9wk<5+r*7g>_H~3A17=e`VQA#}yS?|0kHXr;Tw_8+# z{Bo0wgJI^ef>b^b+hA~#cB^?`(iw<2WFYWEv`+waD`>0;D3;hCBQFy6j`;s`VaD^< z%$Gv^z3)~2yZc_j(D~1Q-1j;jze6(!Ke?FQK@7}IxLBpdM^v(TO~1oJdMtZb1{fo1 zSjr=8Ex$g-|K9g@>WN2#V-s@>z%bb_TH^C~>$+DpYL2lx936aDzHSdf-rHTB2<-Yk zo({fLSz?WEQ+*bV9?QJSxMA1Z-KS=HSz)5-gL;eB-TxeenJFS4%hrCOp3eC2n{zf4r1*B7+>}_bmidZA_xl~G#KvLTMd<1Exnmk; zdW67p*ipG%;PevS^<6iMsv8)gT?G^TC)qXb=5{~4 zvV{;)5-mMloo#oKebO`ZiPqkmhid0|?8&s`0JP$-k~*XR{%{5t*1ynwGny-6 z>_o|k(UQ{-CrpAXp~X@RQxZVGsjz(UxD65{eWf0>%RbG(xwK`D8hM9hU|L<98)~V{ z&5E?4u0BlG5-3++&$KP@E#pIoE{s;CfgFTzY>=$4=p(;UHq^hu#=VnYMqN?d@ha6w zKiCg&#LKUIT~#yK0mMw^J*p+d94^QHX%;c|6Ytx|U7R4`M*ofRoe9pkDZNjNqn*O@ ztn(9G!?&2G0y?bCSvL^jcghH829b=4N`D>)dri-Ub;$jz{q8LM#wp_udwm!Yhbp`E zgt`0WIN^1AJ$5Nya&}BhqC`lCOuad{xpv^yHe(I@Y zktrqygc|4IZl#gNndW-9(#dh(t#&y>IiLgCLEh^M1**H{8O807}t=6`{rY%7`} z91}q}1w#KBicV4_^V}s(`|Gt?)E7KXz+hEt>MK&}<+y>mLNEIAE~b<1{dG20eKrKO z01|@l;Q?nQJx_fDC}y^-a>@JHIVtLO1{4ft<*D5J=JO}-iOVx7Lnms0j-Uy;Da_5f zCJ>E0b!gIzNJXw`I&A~KvD07Rn1Le_#Sg{_@mO?hP*qZbJ3P^$!z>B>FK_UDeL`HQ zFgPy$ufUv-wnw-nOjBwY z18Xn5`ZdGrsDUEc&6JY06w+$!PA_+lDCfh_xfxrMgV(vMd!3WLT72>>(ggpc7M)QF ziphxj^FkO992zJ6lww0?r*aE%x5Jb8{`_4Ep-@dQj{&x+ni%m$m`|55grGLf8!plp zNyOvF%?00ZGOHU%;J&ou7or_At_%^wttd_C$a?<=!E13C^Ba4J*V$Cwo!`?FYtunv zlQYr;JWB2r>n$I$LNQLeElO}nR_0YIs7@bFncRy}dAMobPRoxzb|vENWy)Bw0?rsW z(79U4ZW$*ld2IjXklK?QIzP5LVlc$K!7LL|g`KO1d4>K`+URShE#E?>7$#pmg&aK{ z=Fh?#lddJ#G-o6zI8*;Bzg*}#y2yF;ccj3;Z8O%yPbtZe))jv!bC|^lYJE><RJHpiaA1)bc9$(d$V!+?5X+;UjEpGpH_%|R zCU#f(FKYheUtNW|e{o+V@iy6AIP7o85O2VHf8|7CutN+xy9&cDfh52;XJL3l$ zuz{eg{lGgUdklJ1V=2fCE!M)AgcR~sB8Sfu@f5|; z6E2ZsvPi5yoJwj+_{3;XW=SM4-Ze_$nc(VGsC8hHqCLYuk&{6gPgcz~rG*K=k0+y0 zLb8TrWjw&ZUQyR{6HLHP8A)VzmFr>XVC`6>WMN~D0GJ53*F2zrUn~&ZLjS&kU>rr9 zN(Kz__lh+Am0&~4SZmsZS&})RB~SMUm}5Vd$5^xW(wO->r;$k6wn%$K!XNh2k)&Df zV70TOswgKHSYowC2dXt{!AzcT7kLo_bqq}hV5u6jeFw-FwbXv7+t%6^x{Pgc(js|W!XGEy2zZ9d47%gjD`*9er zi4~&E4h1!x8VHrAjeEj`#@8$=0n?BEwT(!nILibD)cSM1EKiGx%cQ>QTby1^E%Cv6 zEC{X{C}utG8+M$j;GBp?jYOkDTqeR+z5HMasi}o3?25Vx2bcX$WX=I&8x~(s#=IUo$5az9m&G&QMsm57)g3%Myl@kx8jt z&lX1;=gts#Eb*NhVQ;G6OqW~PMxP)>qNLfT5RL-a{yGTb{?5=Ln0CU2ryCdgdGP2} z?07b7D6+z=?}@I;$(Gym^R}>YuLTaVPRU@Oc0w~!M+8qdDV@GEe-9sWb}b#fylu|` zUS?WtbkC-y%=O>nYMR%)86{#EH%NB7^{A_7JABBExG--Qkh7P=O zsBNa-K0?M?W+PI-FpC@P;C$#p4r@!nx_q4h2S&;>7 zdNYO3l_+srOSK_;QX|jmBoUuJZBawl_Uh$Ti{qVu3EJOX?jJ;cM?f{TI)PH%fQ@vI zDX;>t-cK7W@=xL$+x!anZ{qFai3D^9|6;((({>OYI^WO0J!&pcAdl1v&iHVBn8GL( z&sTiSt`ynp3aM&;y3*x}Mt!|Tm}bDGihk{43>Ntz*=d*Dj;}FY-OaQBX)mob!p*b& zmx3)tIw_V;R<+<1lM;u&xG2(+iIm3rK^Z{!ZkI|v-u96-x>T8=U-fTMU*mK<*@DDP*osDwBQN`7X`R{H*F@r|LLN;l z+ABwkt)x*E;wr${=i_s*ywXKD9$nr=K|Op_+PM2?`^xEH`s z01KXV4xS&^G#{%6xZJ@hJO!~qUNzp13X}&pp-6aK{aoIr*UoOuJ zZ{}go*BNp6;ofxBd|k7TlygsW>L&%ys;<2bdJ3#}uTxtLVDC@?HL+OHWdrPxewLDKDep`PP_Vrt^9y zY-fv_8d(+Mo0}qZd>=9vGMh>xY<{|!SWE^&#$~8nU(zkg2k$Ynu_-utMx}|{nqwZcJ)$7;2Y%*eubf))+(iB=*2xt^e&945r0=_r zOJYa{D88yQzr-9)#`U_1<8&QFUzV#HzY}NR&7k9TL9I zClzqFRw$$&+fvE(4APcjFi=1_q^L2m`(~)&3=3WDG7!~+z1Jn(qlYOxk}->(6dW`3 z8=H#-^5u1?-YEOA#j!`a@%?wYoe9(KvNCbJ4}3=ft&ahhw!Sxh6e?KJ0-L3+pAzyi z$>)lOD(@@Vzlds5?dZx*FtcUwct@Na_uCz3AKQL*npWk^4#C2)70nJG4=T9lZ7+F+ zLZsa4r4*x2@j(l1{EtDJ{^iuaOUoi-lR)$^Tc*8wluBQ?D-5ZyX6W1VfH7;EA|l2j zes&Vt7yaSxVADMz%I)^|xf_ht?(m^F(yW~BU(F{);8BS|EBe}Oyy@Ys6QIt|zIfc}NJkapE*u~IV zuP1Q6X@u9%7H)vE&fbm}YC*!^xdBVl!!VEG{dr2z>K_z2(V~_*iF@fgR?%t6b_Ob# z`eC%&Gtf-((B~?5@LtWy`DbV;tF+P8ulpyK&S}%Oj)pb0bZByi#`m=*FKVk(81JQt zp&p7d6*|)=H;mw+>lRmd7Rfb-2hM419LK1A9NT~DSeyz%ch(yo*0lD$mx*dfGJn(` z)v4fVolZ_u?5Z}?2lJY%WBO1l46A#@8}m4 z|NQ*$W&iZZpZwe`y#0JQe{bI`D0Uy~f2VL+BK`PPPM35y9`k=!bB*hyejDK?6)!fz zWx5uL;UsiE6fBV7CJAHp+pmupX7ZVT=Dg$v>e1Tnu6*nV>x7<0JAE4kJ*>Kcb`^L^ z13NiTpG~N~^65Zyv(%W4XJy!x9oB*m4e0-;PD9bcJiqdr!}tv}0to*XISggvKc+T@ zN~Y!(PR@=V|A#=)@p3x&e^QN(T}k~1Pacb*)JBky{=%_4%m71dHAzXV4NY6y?W=&d zw5xi}?wWSBKE3@^I%m0^cf!NZ3Y^??}kfKveM zoWQLPrm5G)ld28V?5mT=ZEqxY(5*FtO6x%WM|W(nIzDD+zkc}#&@Zn8*qoByjxu{3 zrjxErrn(i5XV8m=ooa&#F86v1(2a8|ai6P-THdGT+HSqF+PI|^^79Mj*Y^kJA@z1( zqjw`eKewMSmtO_CyPk4}}=FqaMqCjYy(92OT3cw36N z0|vQ#bm||Qvv!soG?zEK2?@0OZtmXpPd7bqT+kN<1Fb{S5?xGcMQh)WKA#&afZ^&u zX@Ycoh@uAv$Ekf9Q{Z^f+eJR-I>v@^%)^DIOuto|pVN|=8oh?^CDsm}_vfg>%uY12 z!s~dCd}@$9CONt-F92h{7or#6-4eEB^zA?krjcsIs1AbC<%cU_ng&>S=DEBqK@SEZ z4d$#t2A^XzWAPz@OvkkW0#qcF27z80m3zb~&b&^9{f1Ks?nEJb=GFtRoNaLLb;LE3 z{Ss#EuEM2``5`H`ysA0!8aHsfW-*s)sY(&jvu^tZW4zD}cARAQ=%EL9P31Wn)W4U;RE~M%pMtOloI4RIrd4FA~7e= z)iayh3@10Mg|5^%7lDh{k+|sE0N9HnfBr0X!?^#eyXS}n5RI~&GAa?m(f)9*EG3G_ z&`pEg1=(LG;Bi-i^f@=K_m5dhPCW}t^DM9sLoZDuk6G;(LHGDDV{r8Lb@rN&i+vXt zHD$)?1IQ>i<~FVo2PuD?R$?2K*_3uPk{!I}kOvu9eTy9u&bk7@N)Y%7Y)gO_4WQm-4<_NG<8_qL3LcBi9t62l)WV0~u1R5K{ji_KTNfk?n>;1H$G7~?^$pstYrXusJGsH3&m z=(_{XHYn1nVZ>Rlh{J=J_DSS#YD*1!ZZfk1P|k5sOL$KP)qmcJ?4+E z7k^4?(cK*YqHY<14~%euOyt=mgphtZCC=eKBN>c7zvJbi^gy6|b%T+m#NzifiNmXT~ z4O~xn`v4$CaYY6go=qg-k}l zy9SEXS%dHi@_cB;DSvG+Vp5mDRL440SfYEfa_*q(Xf?9ys#9BAa~8*SJ2g%uZsB4L z{H8#aIB0$%g2T3{Ak2gjA4i%Y+)zOD|=)~5g~ z*&ofneu%EBz~i8AQFk@52N*-$C~=oYphsCKUM8%Vw<@i5tNxu5E9-$A;7m{v&{i;H z&TdPr@5cX1Jh!}7DxM4GwKHMdK4w{FZfq)0`TI=~9S6z0_S=4UY={@cq->7_)p*~E zv7V$fc}!oZgarH-AQBg;wwGw{=@%wqA&)9PWp%7ul)>u=WY}GE{LG%t$AnZ~u*2&+ z+A+K+#B$QSi5YRKeF8AP&?uFfZvXCxE=2KN;zSL`MixSsVhUM~&+8>sJ)ou38u38jCmnv8e#4_Vep zeS8eqGYsF?+Z zx@48%31vtOk1^ZIbZocv=QQBgpHe%@+0_UOBIcuP7MP;0tGFWIb_zuOKF{kc0NGfqOc+b<94tRLz-VNQ0W{eD=uf z7Et1oCTRgPMk-78owle#=oR|5D{gBuA84)eH7IK=e)!?jrqm|();v|)uq4<=@bAdj z59wsoXo3#E{V)^B_!rC1zYu%9@B9GCFnkE9WRp+{${9A%QhL1@Nt|ZsgpWpkOjW3S zC}q&n;sg%Ke@sP=hxKv1XMio_o<`kq8UvqZyr~jm#GLyVfi~H-%0S2D)ov{zujSQ2 zU-q=40e0v@MR2yA5=%+F!}CnbYK4UWrW`vJHmqhB5^3>I-H}AnA@QjGB{O$(Z7|U$ zHi@3A3`YqZD7@z<5?H0tDTjp`!JaWCF>rHU;b&(zK9x))=Ser3p698OPe9?tIWfo7 zsNsP`wy@9W3YPP2X2KVNjS+8Qc@-6UrKjMOx-ZWgb?0y9@1vC9XZIoGXZ)eW;Y*WWx-AOmbHLUq!?X~xBmgKG$im~Gd`<}(iKd8V z0i}h*k0Um0xL_7k2Cd>j0LjQyiQfZYS4*CuzrP;uT=Kxb4Uih05Pt)lU|0ZG+6B6^ z7BW)9Xj0%FWr1=QVHxPp2VGkJqA#c2m{_*cns*hCOi}#VL`CyK<8HthttFZ4PMC;hi9Ejmtky! z3122A%ER)x#oNbnzDXl5r;uB} zo7Fn4ZZvz=yEQht0z~%Yv(}!MVjdu}kzo>-IG4mx%>^NlrCkm^FU7h^@t=RjdLBwh zqdFKJ!jE!UNR3($4T5!(ta(#_b%*t^RJu4pnNZ#x? zJIudLKr`c-tuBJ)oArHj_x3-O3%O8#O~=%v$Xdo`la-jv^t835Tt8I%W)RQS&>f8<&+G0Fwj2>Dw}0(Zb_Jdt>mQ)_eo9Vl zCjODW;gXyu?>GZ_!4+=o-;0sdJS-GfpipgnFbe5ESWn9jm9~FUCRgpLE74RsjQ}-( z7nJ@vKxxIA{6UQW(I(IXejQ++2q3ZZtliYIm)J+4ScD%SKswb#snA6R3(EJ195~4% z^V}~zFHj9TZ}A?Fz{;&E6<@LdFDS})U7frc(6R}0xuyd*nQogRi^Af2!;=;?>nox1 z+Z`gx*0vVDDwF8b02O$3_)wATj+eNn@GsULi_0M+0`TgFf9w&^2<(xxCWDp+1VEwxMlARktMVPa5&$Y6-+X<(6vDt`Tba(6m{?o zpH{jb^{rkzc*IVxmyH`GR=M?k{pQf&Gta*l32bGj|47Uo-ZcmfykXZWKZ9MsD3v&7 z*uk4QRkh|s9bL2WRryST`2lXj4`Xc67O`>K`8Hf?*Q~X#Gfj78MX5zg)2G(o8gx+@ z3WKFWWTW2tr31#)fP5C&r}JsFvub-9p6zo%Y;|)I^x`Ip5&r#$s=MLD=*Fl1r*E(C zVc-RRP_vdk=jzHY?+=OI{>1c)zOHYQyYHt(rmyjk23ZTlWj&AOKY?PxECvaacpO%Q z_U0G9PvRVJ`d3wvd49{mvCXtQiSZ)B#5WKEZ34&_hMo2T9tz66mismlb;Cn+4<6pQRT2)B|2ZLi4P z6>;n++`gx)993w~1NT7c-@c5S9xGAW{$gSbo8pozDL2=Vg~W5~JErare^(JlrvnKy zV(+5PYg4@rkQYAfUM=YamNBnJDS(nKL_1`I+>FJ6LM>3*>p778*gCt0_eQ2dTW8YD zy*;MWfV(?q(%@h33HAB*Cq|%j3fI(E%+KF-bm14Dd|X6L{QUYqNuK@F-*&%Va(nz< zjfvN+Sg>_>(DfM$V{$V-G&Uvp4GFhd;$t#kW?6Cx$33D;z=GE?8cpGz@Lh$RS zI%P)3umsSz$Qy5{owk7IiP8@OnAdu%bM=p3U(}F7Jj45<|H^%=uqIksTtdDxHPr5s zM3gF)eO@av>94w}$rGFzNSeG6vVnLdrKu6)^{rre?WfK^x`iA=d#Lur=X0BSM=0~? zcg@jCc%Sx!))iHT&j4H;>cMD8Pl6BFM7jd3fB15Kxe3z}u~*a{um+Ym%3pUtw+q4> z3H{I@0$LyzfF$VxJoUh`XafVBWmnV+=Cgqk+nvZT`(xym;r0K+**67=5^YPiZQHhO z+qP}nw$0P-K5g5!ZQItIJMYCrysw#<|6LKgDmE%JSLU)TQ$iwL=}A?D>F`E_8LYl@ zg>x*MQWxB?o=6VMY5SxZ^%r#QPZwK7LJG_upYMtZsPM=XQ47io-vSj=jP~4b7vFpH zrAoV>z0yM1e(=jYsV2YyqP0~;NM~ZAaV$t_^1A>CK_SB-fgrK$3YW|OK{keBEFz{*aqNxQ`U5i&WWaoX%{lTH@Q9+MD#D!a?ew7Zxa#{5W~4?Gg*iumkFi(&Y8oH z0>)}3T#mrS<$JjMM4>cG8nZ@JAxe%qxJMA>DN5NXc}dK`5lV+ICn%@i^7ZqOWb3Xh z^&}_6$r_VY%C{%}wsukSqXlJfk@?1VqE-|Oyj(7>@ToOnk$($GK>0W%3{V8>iD;<8 z0Vpx1XCy9%5)9GTc$p!ny#c;2{Wc}6fMWU4$YI| zh(EY<`Vm*T<1TyNaIL7(#9_P%1y*5-HXwT(u8;;d3TU8v)6Ugh(%^_5<2<=;FoO`` zqe$imJvjasN;{XcpemzCKO2z&74Rg(gM~ws2^eDg7!#y#m{ZxI)Zs5n@(x~}gN#Zt zkrCv^lQ68(jN{=$YuNG(!o6y|SAg&j46&hf=4W=N>pjh{Q(i5tuYf2WEHoi?az;XN zCPjf0n)``w7frvz!;xpckIU-YRruv28p|7R%DoA%9?}aJ^UlW>Ax<*}QnU3zr9v@y zim~8KO0-x;2x0~s;<3DSQW7rYEtg(xX!kk(!3nr;vd>W;ip27v=DMl7@@T8k)d zdjtN2{`mnLnZ-Nx<1`)#lndnE8>A?wCR^pkrD;;Nk61u3Ibd}?18|znbLhgRyBv8u zeur(cUHmcP`!?qOugPNM{K2AzyFrn`&zWx!nRCg<+V%5l4df*eXSZV<>c6CNn+7?# z4n*|;#Oe@Y*W(djjqo*KXz^mCed=zAaqT4K$cIp@4%&$E5@dQ@UuF&R%XX2iGi7pT z6LM3;PRL#eDit6K9h5PK)S!$)Ol%1!>#j=P$-6za@??98^u%YjA#i_Hp-|_%y(P~H zV0+hgpD-1988dLT=$({iwVWZpdqNo%h?FmdJ<(- zA0^~`3jFpvcQ<}iMmme}qz80XU#~Q#c;=QYgXX0`oXCV0RQk0JrSNTTTzDi;VifkJ zjnU3^HH(zhgQZn|nPdGHu0H3kDqk?CtBs*pl#G%Z1~GADFc|NV2~A^&Ao~l$4JZ^- zfA}}&in2+X(?t?wcminmh_nEHI~7f4XOTGd%wR?J*eMxWl!&}%SAa^yN~X$Kh$dPr zU~jrw!6IUD2L&~O$Ge;j`2L~?=@K}PS^@L{iQ~o&znW~03?{^E7wP-!WMugPr z_JUGksziM5B6t%L4=eRFwQ3c7Ns9 zW+gd7F%2eZP<{g2UO9o z!2cpseL|^JgnkrC8r8oZM#Ovrtfgz z@Rr{t2A3SL%ib6Rqi70VQ&K(D_+ujI1Xgv#3xE}YMZ-n6UnLJ&G zW0<5%Y_qh1CsIciaa=_CEWY0u3`8vnn>^9q^uUO;oGdON@Jf zhA(?3Ap1g8K{d`4)4G*LBFI*b)M_|2BxH?1>ag&^2JBk1C69% z4Zef^&RB5XKQ!s(hZn+*DF_f;?zky4*`u4}r6ZmvCdqqtVde5L#73USQB^xS1GI<@ z*X8Q0wDHdgi)wg<1B|ffoWcoayM=DK6)D(Mz}hY}&(Ugt7^1cYs9qCCiAIHWK_i<% zqB@>;i;+;gZ!WzUf+N^O3{U&s*_w(!mEfq2J~?JR$PiS*X|HaET!8cntR#1MRUCGT#G@Z?`-NqYcdUtwowVA zTJ)XY#uZyAk@K-~X+p@Mkj>|AIp}qTqlH`jeVNreaEH9WO=q94%z@Qdc|Fp)^Rcu; zju`B$wPfO&kjVj4vN&{3#AOdxq;|!lO>F>iX`RI1K)gaw2UU6^gT^zV%(RXM;=eL|ml|;s7G#rjui-S$M zOWtM4Ek<%%VCnY|*}*2->h9wPRz8{sycib1=Cy!uqIm7|xU;kKh%OtrYVO^6oL4t~ z+PNPSUJZ^Cgz zq6FiMO)Bg1XKoe(rAk$NG7ZApqfD_t=03`grcPKFSYuI9UrYva|Vhali*tjG5c1y~q+fZ%PT1uQ0CaUxwiAHM2j z;(Z=oyR%(=JN9)---MiLVu;O zE-K#zyhYMf!w#~!G)1!*TgL{3(?(EPz{|^ZNI=Oq*~wK5~dW@-Q)_9#7=o-Oj!MJjkcX@qBDfAPAZD@ zjKCsC2SuT2^0H(}jC){ZdR~F3QQf}A-WGhlUhHUOuRD-Cm{Lh3urG`=2nCp8n6r2| zxE*{CZ&sX1Oqrbs{AU42p2RqIkZbs27h{u48pJWUIsqU^U{ntx$lO8A9S)bmiPSd? z=#RSu;?NZ?6QDVZZ$xC|{`N(K9^9?~YQ$5+xdVtMh8H3_)uQ{axfaC{BvD zn4H9gMD0#9`o%2z%gGH^%i5lUqqy}C2sj05=?$1?@>XX7W{LAAo>bb88#J`?C^Hb% z|MoL5wx<4KKuHfq7L0(_ijzwI1S3v!%HBA}oh*(#F;C=RzA?ibqjrZpbcmN<-LiRJ zD?7PC3tI*kTM{We?SPfG5`^fc5q{GjsOrej#3S+56 z!VAou`A5rOSY7sc@tUCRRx?N1oEl*BO$uFOh)m#YuXa~L|LJ}^A?Z#FJdoq*)i!1K zY&hkg;YDzP1|}{}w}kbT!qve5M1mw((diUg6f3M*0}$BiW5NlUgJ_T-@mVu!oe(sjTK1g35?Mf+8x56r(>6Y45RJ7;nNRBrDh()-Q^ScVcW|$4ok4kv& z;{IW;L282$sIzN?XFM3Vqs}l3z(Oq+EwVjFh_l=Tw8S$u%A_m$IrJl7=9W+*g=mS# zP%6rBMVa?3qH%NFFsM#O;%FVP;K87t8 z2Qde75H4oyKz!ZuO~ey5#3sQn(ZckglteGJgL5HFYay-WlmMd=qOM*MGOyi{oUW`T_L+t_OH}n zfEXX_R>|mXsXvy>2=M@5RQiKJB)NX&YJ|1G3Igo9E;7PIFOjcy$>x~-gfDFg_{QSh z0Fx(HeUAK?o)a2!+jXHu4iOv_42w4{aD_2vQ29y;+lq&POm<0g=hBSWTJ=XN6J8>c zyhAsIVdA92Z-2@!N``Wmq_b6rH3U%sTqg%YqzI1&w^$22F~#e}8RS6Vm1Kh@0Vg7= z*m3tNJ}Ums2u{(^kgfhD2f^Cq(x5-@#%Ha^Gu!18ay>3>4iKlZGDH9LH*_m9v9z_R3_0)Mm`Xg;SUUocsX9}z7heI$@q#R|IUOQ!uuaz4hve~^A8 z&96bWedkUY-GOy0Bsui?r-&%vl=l6-#S;7zSgW@uSH-euqlL8hm7`yXP6mI{2^G?b zIw-7-NUqv+EL8yzCD9X6~6 ziO-Z4hv>#vh1+}1u#LhK`)O;rbyH7Um0d8yBINk_NCVq~31>acbgDD`C5)F;svp1; zT^xgR6nCG%)pETZCJ$YX3SEBZu1RI1FZ8LeR*zwRJ1lff^eZt&?n4O_1B_I{ zejVAB&Isuq!PG!an0d)t6Y-0ah0OANVhz)ohtlub*ZVpGSGxA~m`#t?sN-T`x4T<7 zjc{?^tlm}Xqy<_omCmYa8XRhmwz}nM?g|uuh;{50_*R*I=Xix-JdXJ!I{3+Chn70=c1wk96PbRfKpW%}EC6 zQBM2af5i&C-hW}FHh2POWr2_awzV0ErnjOR)a3vJ=Cp`s#5H%K@x_EtgYDoNX9TxL zKzncCIGl%0jotfPY%Y_5d#Zuez@2giVdSBA7VAV^ zCyjO`RvRGDx=8=D(Ea^Rim0XlVa|MOQ>Jx@KoN!rQmP zum6)Ty`NoQNo}=i-f{bvK;JlP`Sc)NZhUohf${a==}SbX3uUynqdSk|{G~IqL#=8~ z??0?2UyHxv{H?wZ=}hNt&zW9ildqzuu*aUgkKL}xOfURZb|9{%PII3oio#H@7qW-} z*tsoDgOkO={h45D0M%_)a1OjZUZ65FIvO!8ZOZVLrmzn_RE&CwJTSwP7A5{EB`t_< zmnj8^zTe@vCUxGxyWe~cYn5|hR3>i#P2b=ldhf<+1AyyziDvdZ3Du^PU z@jcPjQV(c0*g|?e#nbLkLlpj&bdA>QewAHM(I1*e4Wfr?8;d3xO-*!>k6Bm9l-@0s0`4>gz(Y6x(FIczj* z5xIzmLS!i&2YJ7eL=G4R3<6)aQ$cM_^Md+el<){j84fu^i2%+SafVR_g1z#-k^1^m zvs<~xxoai5t~(CqV8BQ-ad84_od@zXGzYB*CUDjRHRywBH=GK}f4mSFNM_3 z0rjEOy@hh%gxuxy=g{^id;h1JM9<-hPXh@6Fhu$P=N48ob#k_}x0AFpv;Qwm3Cl7b ziSem3^0zQ9Qk;mHrp`*OfA0WOGd4y&hA}r2XxWg<5?W#j|ETxrIfJq+z$iwnAy962 z-u=0I^?avi&eIF4$I}g-7p7Bwt`XfmpNC6Sj}$_0Sw6S`*$t*(Up-!7%#p0Tm}bxt zVT=1QfjxzZA2R6NrfcQhxs_gp>MTYke;-gVH7ZL{ zgJO8S;5>0^kr{*>^aeNyF^*JHfkhbq4uqUWOg-)^+wa-;@Qum{6Dr(zX_#4sS4@0W z9_u;z5X@@{TCv*8WxIy3LPqk^^>tl(0Cen|;<9lwFi&+4F%iSmLnKQN$l8;_ER!VD z#w$v^#0$n>t0Bbt|SkNl!BngQ) z<8y;yD2~)J8dDs#`>1+z!yH*@4aS!o6G}+OVuRtffPNttAY{0r3`dX0{scyLxwGPD z44z%)djU|Xas`*j4K8N36ABxMOn7@MEOOYLZLLFoK)y_8AYfYHu`J?zCsf% z#KU=r$IM!%{8cZjvRE5|c9HzUH{zp7(n@nPw?qrMj?RqyBo$fo`&*Hq6 z1$fCUbpme9KjC*A^2jmDZ}W@|I7x>RqDLPbYi&AHVt^{u5g_?u?F|pmlFEhX^ugkf zLM*}oSJo!@34|}Aag9c#sgtt=dier4!JnL&Iuk^RyA3_6<<+FevjoPo#GI(FDngr@ zlRoB}`OD>jCL`b=m8ag_i?_}QS~gCTa4<6&^Zkq)l@NaVI#!gKuKuT^)L||`c@JQ9!EF4r<s7qv4$M9D*WgE3NZgXALpgO6qL4T~s9X^V;FAL?kZPNRe)dZT$LcFUWSydqC ztZ9$BmHG^;B@*J9&UijCI_gW<8f4fMuPnV$n9zJnkT!%!C_W@w zo*QoN%mg-pD1nPG2sxF@h8LUt!4@OLB!@Jx+5?{|v=hg9fgR8cx&r}HVNC%zw&B4b zg1LIVx)}FNScScm&&pAnjDxS?CEp86!jBq=?xE3(3;OGT| zq?LT)M0Ei`HD;;TGCx!V5e6YgMPMWJ&BBD`jov@aIS!GQ3OVg8XKdG_TQL zUoq!}Dho?qP>(zxOjfIg3pejotJVu27ZEQqYm+`Kd|Z+b-5nsa|8vuQx4#H?(S7E& zIlF5SvDxJPNWVB^B(y!p1AoaDPni8_sJ?d zlivlSWPJl+`PG9#NYK{}v*VxPW6v0c-zqh2+DQ6y4CZt_6p7Jrp1QHDt!MpSTsid( zZM5`?UQ{?l0XN)BB4$usI~a6%TR6FN?(50}EI(Suy&OUnOH=48)#hdnagMBa1)~m; zzh}xtTvB?`hN6!E?&eryD>Mn<5bgylmu5=6fKvR*ggRb473f&v$hf0@xY5I>*4d|SPxqa7 zl%V-j{viUv5lao+R@N=6@Vl8KXI$eQY}C~{66>4$Gs-$6laYNdAM$?R!xvY8O2YAJ ztff3pIPX!A(lVIq3g-fxAr3{d|3Q*Txb|MnzX@-4q`XTtYWeHRSU&cw!wRIFy zq>7+rw71j{PlY)v^|}|_woU)_E7td|A<@FkgBWo3S&XS~*O)|buPxh#Mfn%+E5={x;z@n$`+w&bIZbqSD%1+`(@w3M=IP87=Lf&g(E<2X|# z+z&H@@>IWHKq*ZawDXM_b@mm!CDr7DX60YI5iK-73*(AQCD&%EaFm?~>O<1H7}jmO z5eM0Az88<6*3BVDH#5y^+gM+mn?l);Z{9(ulQa6 zj@3+luitY${~cefF!|15>P6XGequ6G?CNe<)&l(=1Xde3KXR+JpI)?Yf7*{=lUt(MZf z&RiH$Pp}oz1yDZQ0=B743ie=nxR7m?(Z0oW$a&NvfqBS)tO@0Ki9tGP>Iv48(f-ei zzvhs^xBv4`%+2wu1{xUvV6GDYfcgKWuE);V#n8@$*3Hny)%3p$dUSp5i`Z~}{1WydDc5@HgxTP>q39JJg(mL4y?A!jKY!rMs@=ksai^VNXX|LE zk31Fa9Add=wfzSl|8*Ct4p*n$Y(G{F?R```p|sySY(0fFVU>Vbc)HuUO$^1E7Upt)9QrQYw(jWOjp)At)$M=RU0 zZA*L^YVJMas_o_UeV$G)%VAM%x9fc58XIKhLDqe;nS5rMJOl${a=ocGvrF(ENyfj| zr9QIEDXE_G6b`4s-Wq7(G4VWw%~5ImCjBA@kR9|IFkXUj>O8~oX`f$9$*|)>_>=%{0j0w+{R5AoAoSGT*-%>$E zNyUceaOK%I*}pC+2b#9% za4Sef##xG5h*$#J#|go1JtB0}2p|ZXGRT>4DX`S3F4=FxLudfs8+p1<b}N}m5_nh4dWt6K z%}x%4$5DXmu5TG#Ot6Ws&3^N-Nl~IRl~b6{&az0-KbHGBF+5%pg}lAobVWKtWT3|& z%dh{ZN@WD_b68tuj6%XPLi@+rZgWadQxw_o^f zKPj?R!hb%9%*NJAK0);mEbGL*Z5&2R(xju@LT9o?fySzXRF)N`7}U$3TI`@0TTbz& zENi+Omi(qY;qdhZ_oh2n6eDzNX>B!f*HuDm+g8hO6*ksnZ{XF%cbwGKrJ+up7DHo8 z;6dB`^3lkZ{Vy0FLQbYxUjpe0xkyFX_!ekxEHMz?(YZ8{+F;`#?-nGPVTW>WsGS3Q z3vm2i*F0EQqGb)MF8dw9RqCz#>ITr)(QAR~?qdi?(mXnjoe?2eD}=q)LG~6s$Mgbc zZz4e(+6I<85xRLoC@S^Yq1AR&GaYpv$Rom(emoh8b+2Ez3+A0cZb^$kj-ey>ISbtY z#*c7FPSBSSA3&o;f5MVI`2hDD0CwRlq5mxr*fih`S72OdH<>(iR#sv)wt`$Zic+W< z$Vjrg;Lur5vCX|~#ZtHyljDHB2R%N(Krk=9K88ATcb@G=-0#ve%AQ12r-{8LDvIcv zDP6^Z1syaoW8(t74X*BAcJ|WxJI>$(k3w(DK7e`mgO|q8@W<+k(*T?q4Oh%fW#6e2_-C(wYTe6v9Fzog$PLuw0Q$33K>eW;FfvU5P98HBdoBRuii3@G5ZOVgf=zoags7eA3@?h z_W)Hb$+IM|%P-!KJsgTdc?D6vBNE$!X)qO1u7qI~7OEGFD+C}BKIoxj0mVu3WT@>- zBPIgIu5g5&3qCLT0YJu#LLG(2%2LAl2hBq(5tHCY+?Da|b47}WXQ;w?(2dq75YK|c zJWmnJZ1L|$3rbYpQ({ecL+1k;*46wgtd}ZT<=s0PhGQ+Qz*G+@jpv{_112LuPmeWa zk4PSJguQv!1TqXqwpw<4(<~^_(1dzbQ}r?oqIOm|(RX&6wynK(EuGUh**+u(rdpAMQQq)Ol_n1|Cm-@ooTa7Kk%B>trPbMZ z&0%^)ZsZdlL{t~_SM}J0(qRh5Ue|pa(4*d!ild7=sT@da#@s{Amt`YOoo&L@wE5;% z9bwJaHr<~i3d26&-QQ+RG3hKPkJ6H(HrJXVchKaO8ayR zof}uiU`;l)C0jyjb((_QN*I>~~< z`B27TSV7?W@XSj?FLZ7@U7mxjoj$FbE>EV5|4caF@v@WC`111!RYb60NjwJDnC2i< z4=Va?=NOZuS9Mw&&lGMO%Ege{$;^bsbDnccGA9E-{`@9<^(-XZrZ%wT{lT>;D-Ip- zta6K$3jwrbz5+c(T?}f=E!?AYBL}sys)2_x1 zy91Y~EHp^1xNwWb;J;y%7Yo4N5`geGy(f&I9^ux!pN$&UM1yEaV!-d^s4S6liYF$1 z@4(hNND|uQtYY>*W8|qxT&Kh>e~JISkmfcUQc{Q3ak7+j#e;^a^$aBtswZ5Qqm=7K z+I69ik!6KyVo$HqdIQ_2;c$1jR^H--Ys@BhZJg;}1Ab$h4i+Jhnuo<=gTYU*Qeo?} zOV$0)_htsnNGf6F5AFgY`Sx)i1wy=l6D18zUy!{BQ7B=Bo>KrQ^w-lZhT7~ZcW+EoY)8qd1s)vlHE*ZO0z-lPH#;C#N=Z*FL>R^kc zK5*et_WJXdRv|e+V-v|hg&f9BrJevSPD-EP5r2W57Xqpz5@y!DIEF;HeA?ewp+3iy z@4+<@P7L6Wq0cnp2|;yIIQ0boBFi`EQVjdH8wI7!eXG=G1Q>qP;SIlOpBTJL@`zbh zWSLqK`^qTM^Vnzmn)$U-|MwDWMh^?3kx)2igdlXrDTj~EwP}g1G+kQXRB}Lt8K-$- z0qF)J@s_GR23v0a4NQ2vq^9G+;K78bUL+@ev^R|yb_JtL`15GQ9^Uz69CKsH6zex% zxLb6z9+#l~t#F5AWU_GQ(|SH_S-OyZ+_!!Msyuk6ATIAh5`@ShRqJcXGCvQuHg{)% zC9gcy_6H?mW8iMvH1;$1rK<6;c}ly1%)!B$)f)k{5(pu%Dy6>+O;mLoOE{1S2(X6K zeb8ldyAex8#Bh@vG)@R*kEXY`dvS&rIX^6=^bZlF@cF7$ngEuGsDM$AQdqCtXH_HD zPzlw+W9z?I)IQCc)QgqH$8OZHMssvEfPd3LT1q!(9jmx-vVcNCgmCy5Tic;6kL;@J z=*f&4M8+q0tj6MgiOH-h5AuAmPWd1hQp3dJ`T!1^>Pj+RSw1%4Kp-)wIqWP|)sQ;S zfUIy6vA}LVinb>6qlovbGd-n~T2BkMt2mLgMQ4i>SX=+C&lh2qoWJGEma=EA#{fHx z`{T$!7$*7I`hdqeIhq3vElywG!n zQ{6mE=tu{%e6h$eYRDXB%U<_1HS;fw_Og-K6$%t$1Xpv|mvYpY10)@ewp9^yC%=c! zn+!2NwWnO=t7Re)V@F6jEcLSsDhAwHU;doBjlMtK0K*zfNG7pNMOne`?2#X5Q-Xmo zq?f~W?v5KFPkbn79)6!K6vEcCDs4xJR@hy`g4Wd>q{E{RKAbOGkyAqZNrQyO9cEIc(Q>tC2FZwl^^W^!sjcq zN9D_8RF=KTKc800lgB^nR`t4oA^uM-aMN#|wNf+Iu&%^?6we&RD4)~3sO!a|;fGxN z>B;Au8e~+hbvF>rQ)=#9zs~V<{dlfgeU2CEFK6;@DdEZt35&RE-onZSssgr%b}Cib z{Fck)1~M;A*?8aat&ct494Q@RWLbQ>tUF&~c$rMGy3a~8(n;~2`#WQPQSkWj(B2Us zgPTKAc>N~*4AS0hwfyqi-K54dbd&MV%iEO3J$hr|Jqk7V!CI69RFhE#lP!)fShn7U zW^iIo^yG(fZ$>xcD;?F*pk_)qlcO=@oLO z=phFv6Pm^&*)-;Y=qgD~loLS=?|+XvfHqBO(+OBI#@q8wtQvN%VHhoskMKo1ytSIk z-oB-ner!WE;~m74R+7h%1Apg4-qJP&mVu}hb&2(NWL+g*T%kn8EK;s7Iuuvn;qoCm zI!O1v%Wf-tE9djKt%8bziXG1(-B=YjozYHpp>#BiOqIiSu2uQ=};l zcaC{Cr+as`XUhv#NC=0L@cRaw8t~`j1B>Q6`XBb0e9*3XGbu{5Z#7r&3flFow+bq~ zf&U7YMn{b_+dvQhdGJx#{bmYcUN%Ztp=ec{w340WRJ<`~FIBYefWz;Iv}0{Fugwpz za0fkZ<6x$%``529{xkiuWwSQ>?vz@tuN#)#*J)oEnT}jD8V!6lL-{V24!mqgcroB< z1=Aj&hJe;jHo=Y?lm^z}3;cg_Yo3hI%s3zb06lR3Pu!Y`se_ZLv7w8p39Ze)be;ba zHr4gx7X%Re+3&eySQULNpuNh(D8mlrhI0hkD(}Z>Tmqic>>4`*V()?9X>+$*0#=3T z=h2a~C+oSnAG3SEX`60y;Joig=P|qDcJl_$w#Pkt!SnFL@bR7p?pXL};o^eKppAx= zreV`5kqtfA?)tPbl6j#Ar_GRU@IaNO2R(4;rj&3(g`{EyjgV@cKh-|tZU+I_iP^;O ze5vcT2sF6jd1QFW1=CbIY8ga_VaOQ9_nEaDMdS+Sq4L0{<;6$g1xgX<)$Y=c=XkOZw@_a;&cVh4yXqi5-+KW0&aut_7Y~9AvJy zwm@=G23oO_!n8v2S=TPYMaMS7R3XWlB>kdQ8dH0IqRknr!0B6R^7(+l5|&N9Fx4r7 z^T^&!I;^zKHp?@VmyaeYQg{6V{DJsd2_Eo!HIY#)0lJv9vP3t{Qjfak-PQChI=%^Z zDUAlB5*^zNW^jq!oaIdIbRGD2w505bCbF$2I82iT<;)8lIh7dvIT9;^+90IlE{7_> zsxJ51Bf5z*#^?$0;0O|Y{g!ms$z1?Qg)^keSW(f#SV1lYO0p-%k!noP zWn4+`YM?7SszC+ij@iyhz>%0at>HBgk0067s&{RYZNgJ$IF!Ps8Vdwa{}VC0zGi0| zjA4VDde{rCQ=?eTY3I|eMVC1N{7K}UYe-2aL=-$=GgO-XG;=HIwQ{)glj~LnzKs#8 z@eyJ9&iteIMK1HK5V3->y0b&=kK2On=09@I3LEWO^)%PoIUu@i6G-%Exg)*3+O(|> zs~*Is!(HR%&ssm-+jFE^h*I;K19wK+1*F5?%|?&D9c`iwpr25QtmK}VMO?p0&fY|i zIvvfIaxIGh_Mpc#zy653U~deTCxVAO5UJ=-Rk}Q|ys&QhUXi1TZhG7)gyOeNvy79z z+{?+IRD^WC_22`dtyH8l3$k%6xg(DS4&=Wl5jTs4eG#xFf(R+C)(M5zwn<2^F#$3; zp2|*0)YHVG$wUkl%ib(&8s%N;`tmn1*f>|8IlZwW`FMS=Nh}q7d|^kqJW9J8^tq~# z`@%c5hWnX|KYu}W)oBHu`clu46&Y2HdcjkIi+@7xz3w;ihkyQ;SVSM@s(1WZ^y-&t8-0E^UkR!{%{ox}hDH2-%Z-@??!f!4&{_`l01Hth~Yo^T`m zF=9ZfQ`Tq|1f-Qy^w6L>ZI{gic?u(WBg47yn2pJ?5%7ofon|sI^$&`R`+y}>s;Yg> zX1=)&^LpGpy&2#4Z=!s8J-?&2yE*+`efxt9QG9>zMNxF+=&lFI_vab2E%LB6rBWYh zqH64b(27kpyCVK9TcOtQ!KLPjCx24VqOX%HmZl&YDv|ZCci!gou;Vmf*LNH`_lF6G z?9rv&`|v@D;30_I4c&fA9SJ=uk=S&Y@!ylmt4zVg4bBc0;q!BHnoyZ1HyPEwXW{17 z9m?zbJlsboBfEVw7~<2uQsIVvxRXi7_$;O0#0LzJ-8{+A`P#4vNf( zY^IrDW3v)dAh2?QVL2oH8V4~iOY{|-8rw9hOnS~w;u1#g`GgD3SE^mFy*u+eiorFZ zIyoCcD1kH0i)d|a42Cbk1i~!rZ!c0(KNu8d!>ZrEFC4b_gR1FQBIGF6+6z`*)aHEq zv;Kq4!`2&Mn}Y{Y9ca>xAbM2U($H>|huqHd3C7}G_aQZiWckK|3>ns^rJ5z%tc6)P zxCp_9Oex<7zBu+<7e4;x_b+RuVf-4m6Vu3?0%%K^@i*ne?qH;Ls(lw$2J7=4#4iyrCW&<}KpKww;0s3go z%iq|-l{{Msdf!84Z+_wSR$in~G=|kEBajU4up#VbpeO==hUCb~BtIVahPB6aUh9PG z^h3yG{k|KZ)~NVXS24Ap{$aulK}9(x@H*}FWx;42=@Bf+A=m-mwMwdZD4i05Eo7^h z{f=(c8PN1v9BLyS>tOhbX)3v#{UX@MDvBNp$)Aced7NTTQ_R57ugOsAh)t8dGps#} z5c)L9F-@}vMTB=`X6I8~#Nddcdtidk$Q2Vh+rZ!NOA#~w0;(0z*BoVWo-mb=JUg$b~T2HmW>Ct7JD910gtE2sD zc`R2Ii930&B@o}602Or%sX2%ZRunsXu%wZtlkG}v)|1Y^pF}qPQcYW=Fdn?~c^^_1#mE8e=Fr0IE4M!YwCh zhD#Wjq}MbHgbAS)7=rcah!~H&M&Ytj&_E3H-~2knV1$G^KVT2iNt6{F@wzaxpi#@Q zv63{8DQ5wusNod=m>oqmf+HKv0>?nMNK=r8dz!fh&~?^i`G2|fsUuwK1d(OJc&8)? z4*MnOrPY}qbL-GNYNo2(A}&`1S|=&!;|X;%vB7Xpq41msIV z8w!Azw8x-L%$g_q=RrsBbN`|<6`vdRX=D^$lZvp5iOPKZ35AV-7?tYN!R{00z@{5AqH@75JS-nUCGe+Wd7~8nNHR9H%zRg}LWtv4S!_FPV;p*G z<+O;N)EmR)u0aQVMq8-H2S(==4a_Bb6iu@U)DP(1 zgF#4_ve)#bolse};9bGpNIy!vF5WhZZwO}($sYT=4c8L#t1GwhN4$|<1X=AU!)gy` z-&LgvHcV4)IOqegwBsxxO@q8C;6Sa|hf2zV4^t%ye(m zgQIZ>h(tc5mSL{AAP%}pwDe>wX1ci&3IcsFq#q-ltYneFmP!X6#p@SqgBCLzbM{gd zr!a5Kj4GWX~|PyKLp8-};r z`jAz(Atzvg|Co+Mw|S9S1*43AAgk@#8Df1wev4$x~SIxcMpQphQ9Xin)5~Zv$q|;i6ne0@t zrF#I<>XMLDjw%NcCRbp9i@NE1*Pe#MgSNCqG&I@?sZ#(k!EYo!_oll0KtN#b5U~$7 zz)^!Dd=*pizZh813DvS}x}8?+>eCjRZH2WP0Bi}YCSMZY%VP^s&~D~@xOGHT2|5=qY{}Ty72xq^!K6$1 zaNNm;|H6W~p2N-1DgJx`g6Yg>68<%&j+NIj?rp{68xHah6JJ1}=N;TUmsbFlBL>p` zfaM>f1tXnDE>(LWM`4p5e?7Bfp_34Zdo~AU8Yn=91mvPOxM`BKEoao4y(^3j<3pD_ zCqINzI;hatN-%(bp_*MuQE4{M*X_;nCgg#1jo0+nrzEsOPHY?gC!!Abt5Tazq$d;s z*(@r+thYUjd6y8<14{@}hjZtIG*!cBn9HH>VV>ox03qwp-Svr0Ps(=UF!UQS_TvZ& z)F4c%^(MHQvfK2p5?~O}1*io{@>fx4mEzUDi!6iGMM@a8)&uSkt{vD!Ar7rWwH z2w4=Nvf%!)gql?VtlcB(^0+KF4C!_XMII^Yt1{C!b6%6g1)VFdl=*E^5$CrVtOd95 zkIMWuZFserk2QL+?6e?LrB>ohg@i4Aah{G*C;U96)?Olzy;hvsre|4$a1mU)`F7g^uQuyjw+m9=wGhCCVW17;L#1pG zGz|gnEg4fGWGQW{I?q@j{M^Bl((w=dmVbH#)b30Ks^O;0V<*k3xy%G2uhgoTS?{IX z#(sgp(bhq5VMckgTt$_XF0t+T&Q+hSd$D=PovqBhNAK(&B)x9vZ_OPL6D9v&oPA?( zE^X6ok{#Q|j%|C#wr$(CZQHhO+upHlCnwK&zdBX#_wPJ+O-*&pJvBeCUfrvEEpn~c zDI(XNLvhW7bhUKpn0kKZLVKJO*8SY_W+H9E>q-)CTSl%IdMdp}5Py$>zLO?I=g!`NqN6zf0*GC)r3 zoGE5*v?kot>$i7l<)e9U`h9Zh?DBQryj8K@z@4&2@S{whTjy#$Jm6CQD5d;PDLTxE z{GNb&yT^2W`G2A^0090D7otBf_5b}SeWSpge+BXK=vJ!)nedKyOB|9L|DgH#=8 z&8!WLT&a!CER7s!{~P?m#XlUrfB^tJ|I8D!{{MaGKOd$44-Qs8jb5OG|B4ypO#R(Q z5Ep2#14B{t2Vo5!;m4R2P1|w>^j?R z)+VF|4CjH3%QGBw=9>4iId1>$Yl6~h+XtS9jFglDVx{X6~>AXcRl(JIbU@JSvV9iTLueGJbOC7 zt>z660miOsJbF~h2@KCLeZ(x^K*y;TN4xta(9amLiGyQk%E>(QVypN2S<=Qzb>0=3 zU;?56 zkr@X+4HAKIpeWdw5o~;XXNosbV1RL^WP0@RDdVLK2rixfzg zzleHN+tXig(pC%F#9AEyCgaS?|9ldFt#RM4n8o5h}!VN63^$-{t{kx zHklwObMO#wR^pt5do$lO#Up)4=&Pg9DUiqtej^ZJN|;n@nFaJFP<*W}D`3V|<+8FwiVZJ$ za;uoZrQh&DpMYmg+M6~o5goBC%fG`Bsep6G?{IlQ=^{MGZf?;X;7*LR2`P{Esr7D? zQRi7irYYiE=Ig`}atU)6%3z`7!@zd8#gv1`{gglNND`qSd>7f+WFmdkkH}H#9rIN% z>&M`tYvMC-kh~?w`cdwghCENpFfM?-Bv`clBIB@kPN*fHn8h_Pv^uiOZs&x%hl0iNk?5{S&8AqK@rZK8rO#O%@Tw#vPsQ_jUd z-GIPwk}s)JW0Vjtg1i4jBp5s-il(}EOrF1Vy(a#V;+h}(iWSHXYlrs~s~?#*GKkxz$9%HKm}@=VA(}HJh?aE5a$1_J zMBj>(N<@iJq!f!Z%kn_kV3B=Kk*70c=2n6dKuUUq3*Hb5<>>0U7zShR)|qvRlZHk0 zMblu)_|q6UmAylpYCkO7uw6cG9ziY!yr#lpfT4y|g}N!uJr{H~F(f^q zcy3YhoGY(oabBV2x?$Ukoa|W=FE2!vB!o1XZf4h$ydQpOx?-To5zoYuKlKOTk^jR~kn^o&#nu&ce?duA?FOg0 z?^u)tV?fdrK$|I%-d4;k{gI-Ra;UltJof@%Q%g|ImoXLCCT^`QA0kK~MOiweFCdt)EnDo)dWHg_jBbRow0 zJ^VCzz*6T0F7}B>klpon7$zB#5=z+|t&-L&5^FFt7Ke5iCfCp~qJ48{-qhJ`yeIzp z@Qy0H9%#DsF{?@6hwFY&H81cQAZU5E88OrrwvmZyqOuCiKQdjpH^T8h%Ywug!-l->SV!A}uq#yZ%Q_Cc(ve#C)+;XJGdA-Jx|t>cgE z%?zb$nLc&LEs>tU8`!_R`MCPTUNq+gD+SCM(e3ptnpIWIOAUq*{TuF1fH%%ysm_HI zvsI7o4*I93$(npO0KK7B%^f|Kct~qEJ*a2edGbL(dXD5}(juv1$w^PD&3*h+i3H=L z)4^$N8C2kU)4l8OcTI$@L-JpagA`&A4iA6N1vVh}1$1B%>F=`=`O`6ySwZ_x$b%v;*=LGFWit_bV6q7-oNp>zWc3UJgMuA zKs1AY?*=gBdfYp8w(A|=l&)|zx>kYfjGT91f?f8qI>D;z=K!q+B#HHiterfOH42id zo;mBiG%`anTT9mpz3kI1;?YS8a19j4NbA8YYB2~HoJ1smXs2WSCS&d#Cz+P+RQPMq z{2T(uF);m$bhY(^;>_n$@|(ah7s`}^c(EgeN_~Cg4RVWTLj@1Z+XC9<$jL)Ezonmu zrPFdL$-hkDJ{0^EYs1}7ijoSz=!TT|W=>$+i|3+$OaJgK31X)f|XdD=jo=O_tm26Zj(8py-wpZx? z1{33s5-HUn007!Qa(8V13QW-b2TiDX*!-Z0Z@jQ;TVRM_!FUvwY>U}tl#|7#BAA+< z*o{`J-Y~)qt1|e191Pd&(yO&}_lN;2ikEo4uXa1`UypD!Ij>myTe?WN;AA#tJ=_+p znS1TLz8|-Oukk`gUi-6KG=9h)#bJsga=q^D3$`7}q;cHWFa5e3R2Oa<67SXL5(+&J zo_$SuTKPC6%`SV}DW^OEG;W5xo%Zy6xn5C@GEOEZ=%D!0UY-JS6u~+0UQ=*bbDp_W#yddYg=0*cm{|O3vj>5Dmdk-F_IL-lYW_};g{s&CGp13 z`<3PHx9_`oL)=aJD~FEykzl#m6YWV>LCtzFDkf46jfRdL|MfTp26N6&`|Rfvz@_e? zq@MNebO*U97)0dRo%PV{KTI zf4rxlF`^tXsa_>}Wp9EC`#EnAECo@3!UN0E@X!N8KH=MC@GqWn9bV2(YIQ30*Hwe) z^aaHqC}ubeqo=9vh>7p<5pd^K++dQYNUPztfU&fPGyy=I2HNupI}52ax=X7hImEI&x)@c(H5zFCX*18HJS5cS1VdJ2r?l#7D5G2*h(ayx(abm zv>*8r5@06QspsftO5Q1(rphO`rCuvPIAm5sJ(@uGNUE|l=&~$|*><0^qNF99@HC3M z`%mXdp=6Kpue?Gxr5~Q`+%{ojEo({gS}%$+?PVYIkIHQqN|K>Yx*QR4 zp`-@Zj}P0_JHJFZk~NI9g+gJ#*eSYz8w5)pc5ppA*loO%`&o~Vs7E|5;TyD>C!}e# zTcOixo65x{EiSJJ<0vm7v}_nE!o?(4nU?fFX%w3e?`MH?w>BxjkbkUK1tUjaDhWW&be9GrS6`|KKyJg9;|Dnmn2YXi zr7W!}yFN=nsNtk97bJvJy1AE(x;h|b>_}dx4#cM5qhOCl7J^XZjm3t;iZ6k!vnyN) zbKTZy;L3j+#J_Sath7C7h_@_gI^MU{-Mx)X@V!*ub}sQ;8L;AIrX7i>Qo{5G`SmyJ z0y_}sZ@KbWN&zk&VOZgs-?t`x89Y_K!4qOSWzudzu%ucwjd={6SVD}Q6I@x5pe!56 zDlqYgnIapg02G)_5?C7g#Y~0oXl@0EMvq0N2_s!wF9ald86kgO`8H;R$Z&>~NRhHJ zevSammza~tyT;hjSDPe8KI)*14+D*ux8p(yV9%g4Qu^=^Z0#TQLQGG8*QKrs$PW`9 zA|##j%~l2GnNMM=xbb@`w9(X@Pn^HmbX2drFITY!6j-A>%S0?UmD}Lh7rEMB4e)h8 zEZBgxrRscn#zu5`^0j*Mz0m5w-#vU=;33%Ge=oZPZoWbB5+l<>Y@oDJjj18H2$Kdf zyEY4oOaMP4U=R9bN4PR5-GF?X)q2bf={)bsw#d_|iVGn@R5>014x_(elI6(|E2CoS z^&k~!DJSP(NJO}}-Q&SydxHFT4nTYkR1yEl0S2i5HV6DqMX9RslLL^wMfP~H{eiax z_E1@>t>%_t$kb^acb@_`hpm3bIoGTuf?oJOB%*OT$S;AAZv20zFTcESqT%8BG%s}8 zahwER2bek}!Ng7kaU2g47vA~wXfcJ=4d>O2Igjycdj&DdKhU@#d4yp`6g>+2 z31cEPH(ZELdjPDx5FzJJ6#^Id*)?1Ytgi|DG}>%|MJXQN{@;Ruj+p4^Tn~i)EcgBF z$2|R{TIZQ-V}$obqT;ecas_0D^!jA9JR~?0E(IzDY8lG+N5T(Ad}6yN1YimEY{m1y zF?NITUrp0;3UxB!l7$btG^>q=Ab{k2ey6jr2yS^p!`YdkY$_X|537;Lm*VvF#^KI4 zeD0UUR;EUKh)hRwZzap?95E|3fIQ-ryNuoIq}lw`yGZ3G46}7$b<;Dt>K!-|cvEzK zjGOZMeb#t?DnPvVb7yIDG9f2bd>iUTA0u$eq?(>v1%3Kf?!daFkC;h-)i)jC^@}Y$ zDlurc3tZQ{{eE?j1!GBs>Whs)L^xtpzVi2~-Xs|km?8pWDNOrPmL_}b5OCoJ(YZqI z>VkjnuaJ%qu0$9a;Peya$?Ge-{VkD@EUrk2q#02JCfiprNT_Lc+vQ%gd7TP-n z!URZ$Y5xrpcDxeDmS~U4mUu4&3QjUn6vBWT!;r?V-gNxthmG>Aq&yFx2bRs&=dr*c8e`HJ~Ppi2{gZQ*b}{c|B5PgLAe zsM8`Hw<@FJBs#;9M+0&;WF@~E%08UZ`-d`1^6P&8V3L0@o4Fg4SY+zhv(PQt(bI?m z&}XDf6Iw>aJ`uTQ#{A~J)$#3_WJGjjkwceFqpm;<+h#-H=}LkVYq`>(x2`E;_Ofy+ zUAK9Ytf`y*imPsOIzSkm%n7EJn?d12Ou8%eO1)rx#hEdefkyeeXQv2j@QC+hkg!RP z_sm;~$AN}ekF(Cz4qVi&;LhbzVutu-UFsxGpaweW|4jg8g4i59KR2~OHR8Q&A+9RH z&6ZG;q)@PE&z~$nov%Sq-g+p+JZRLU!cXy9jJbEmQ5xJj2wQpDyqYCttA*IG!L&Wb9mV7BBf7%10VQK{<~nsqb~e_W)kvB#L|l!-I6p@D z(f_HtpaVh%0ykwO(o@`_-=QlQ>9abs)MAd?cUUur(`;6*0#<`6_`wj!i=q{l&PaxBDm=$m?dv3^OLZx%is4x6$KUGD~7L2PD;re&YT{00`2M|&U=B2 zGM{9QKx)hG=(}d=!_S6pb*iEf=kke?h8?sr3u?9ku=$~gV-nnzncVj~npMH>hI$-G z{^rcd{iU)yfeD}__($Y}xAyBJL_}c;h;UKKCsFs)w*+WfPma;; z(}-GKVP`E@Tdm&LM^c3vEbY!s-V&ptpG?2SYks!O+`j)D$tCj;mId&e2xG4P!bfkD zOO2>i5NzxLhPbV?l?2RX?2_^dS zhX59jAa?Lxl=@)PGU**3R`8>h(wruVkgy?B#tj9ZpgIPKBCvVYvW6VEy}$tOVN%PF zfk)=`iKGFEJFiVoOudSqxuG9Up?PZrwG;(n-V{w>Z*#?9#w=Ct$vo8g)F%b(Bq~jM zjRX-C16h3e3V%ZaR)LE>lctR$0*oGlQaf5|(q5)h590pLx)zwb`^-FE|v4#R&8ub~i&+x*+h>5jIEnV?kGk>~o(PiQPZT~Ao{tt7w z$22DZV@t}c8>>Ac#5`1oFhRzJrD3tnCs#{t+&z_;`mJgjcp;(aGij$fJR?`>SJs%M ztlX?sS7BYwEHVJOoGq^5+btJPPH_-o7k@0Bx2&hp<{W2y=lxi|@Nq+00u}MHf1Q5l zfh6TyOt9YakA2D{3=_|cq&x-(+grHoD517@+1W9n$Nqif~ z7{pqB_2PZjhNpa}-O%A@MpWKHrn@dsXMbN(B#y~QUV|2`Y!p4}$YIIw-f|4!G*jzz zjd~&OuhtR}K7WOfM=Th{RuQslRCrWNYNu=Yu&b1|jfasGQ~=dRQ>Nc?FJn?ih}Y&s zwt;p#RD8&|eiA+t*flpzM7akd_rY?a%k|dp`_wK2pQ|li_%jWc-c8yb6R*kbI&-uY zH@2SW2s_jn;}!8@lN1gCd+E8RN%99$BGg5#aqkK8;Tit?ltrz?WVlK4o2bY!669A0 z(bmB_-t zH15YlJXj9+I%Ix-q6ZH}e~W|zZ|f`+qWjw}|2ANCskAgi^(Mh0aR;&yz43-?ib2Og_wv&gyqJ8%pMxQs@K2(40jfSB&dLh7I4Mu-vOyx z)X!0+*I?DiG{LfHa`fZXQ(K?)q-F6*9N31*3qn65m&I+pqtD$h{=_wQ*P_k$`g)%` z(bEvs#Dt!wag{ik38@jieqsJ;-17=ad0ra{HhX!4fD(nlds6G_vy>eJv{NMv!I#KdL*Y@}%wcI^tfP?8ygWQ^JU+LJ z85_1w(*smzqQwWr3qBi4j?teFtq~(dI0&Ud+}u8nX^zTqf%?|KGCm$)Jb14~x*C!M zi4KQ3Fy5KTGOL#w3leRUS-TOQ9=RqIt{V5G`$uxJ_Eq0Esc95nK&_0vN|((P+Bp?T zq4S2n+?oa9;1FWn!$*@!G2g|hOgoSLw79BVSm&3Ma$G?`{bo-C!KDRozoFSLEXshgYr41TO`We(K$4@mIegM%lcs4N~MSqe!jcl$5~*rjBv}HS38DXH1DeB-1L%_ zl_Rhi5jjmIW{JX%m_wsk3ry*k1Fb(q^0^@D%U5?8p+91H08LtV#(ZRV!_A*Qby1IuvmkGTrAKVb?Rb^L`}(SQm^5siUM_VaR^zTNirr`ihil z=~TcE2-is4t{=?CIR}5fxT&!|K`4|$IMKLrl4vCaAQjVvl{eZH7+FZJ^*|3~o z#J;LrT=2E5G@S7P;50R*DpK!duyIVBE;XEvPs74xUv#;}ZD$olZ_d^)0{;>a?G6(* zJqnx-%t_inO4Ul0IPUW?qnMhUzbEyEoM67V(P{TF^$3Qce5n}aquu!?>hu{>et+91 zWzn(M6#6a-64?QY+&9{jDK1JK|B&7MPRRY1@yFc|n|&ml(|DF^gvOdKI4H@Vh!%{= zNA9+|=u9N=c-(lFH?;hESwhCx_-;|KEqVKP4##Uh+0|*!B53$7=*lHf_*T6x9c}#H zwV=4uplH^*8z&uc>uM-a@PiCM1xTOH#UB54Lpt>Ph;dWY=}{TxYil~0bg)GMQU^~H zf)A&Fhp@0zhO8BJug`bnN6nFz{V4q?h3EFX>G#e5s)38$yP*O=0RUog|1HL1{GUGP zx%E#C{12=8Qv(YSjDbd;t1mi%K%NJ&Xnspt?>B?8LNss4!@~_~*k7z#tJIpY= z2x3=H)xv!zDslWOc-N8z%6KI}5qh8$DS9z=8{92j9CMK3Y5aKRQtQUcbY3k3n*60Z z*%a9}9$ErdiiffNO z3>O>Co{kQvM{D4fW*2L9yl`^q3F@Bg!G}+6Q|l&ANff`pNVBnsxiGL#COIZK;-5Nr zqvOSde~-!y%Kt8&bSYDTJzvo+_XxwB;!Qiqi<}!Bf`iPB51xk4&n*{+puXa#4!(d& zE>rsDZYdn@Ty%oP`08~d?0(4YQII4cB1;=}yxpk0{Ie(m_9CYbi+4Nky$aCmx=zZG z;1|uUo1U|*d(M!+lb#2}s41_{Ppji65Al&j+4gmpfZ*o|lA1K8s7BRoWf}qLhl&Q*KU-+wR4LZp8NJr{feyAj6*56IC>f7iQb!Zu#(^-4bSf#2a1jK~ zQk)5>B1`=2XRUZDIO`4|R{=9Me*Y;x!aY=92b(t&mN;sj&OC-Z=J*&NYZemfM)4j1L@Al+)-CnCX1NPbCL&?8bgqUxBzdE!S&{&NEt|UK|YS)NTm{=qapJe%gft`Q9+RrFS6oZt|Zx z7;pEoe9pH2cB0Uz3zCFe3z$@)=W29P(C0Y)aURtXGDLAV(Qz7*$yzmvWLl@94)yOT zP;VS&#PH_l=8LbM3RG3W`4Pl2G=e}l&i$xl5ExK}Eb7pU(vq<|`RUk&w)LJO->(P> z+}+L4GOqCmUe*@&Y~op&dA}$9wsPC-4wj;}-HoH$hb&YaHHnb7E;)Z8kHOt#wxyK! zd-qNy_;-{AmNi|A;J~5=d5EB9nQAP!$qJHQ;Z!>Y5fyDXjW>-gSF4&L&H05h5;J}k zMb`IQ;SPGQi}SA86U*jp^?TidSJY;mckSvuG`&`W8y55NB6*L=gtlN?1+yM_yDft9 zAaK?;SV)8pR5?n)&Bjo$pim9e+gf;l>H|Ca!Mb&_U^exPA@~uC z3iQ2DD>MP@2AK%_=yhrOLAwp=U^e>#{ZNBvHM=HuXB`^+2r-484GLG%nCiB0)*AhR zwUhKTXg4hRL+-S=!MtI|&4TzVnMntfM3RhK#rK`C4d|-^5@53 z{pwW0ky?(n^=37l-W&I$fy-T&JM7hGq+AQl+ijfc|c%`!y zVn7%)nx*ZKnepVXvVd`Kya|*M6Kr41VyE(bk=Ij$jg(8IO(!QpCG*xR9NMqIyBH-`OB%~8OZ_}V5t!CMv9q$uTDiSsb#ANU#E;z-(ZjGCFe;iz$TMz5vL(! zF5}x1Y}K$kTfhm-x{4o13?mS$r9w#s>v~mk7Q))EM5h=DUtmz5h$_#2w}m|31oz}+ zw(e0dtVwo|vA<<6M()bdS|%#hJ(8WV6N|ggF1$FiskXnXtWa0>*tiW4;+F{H*A?O9 z0f9w^*e^4p>^OYSS9E*F;N2y&gb?s5v^@6Tq4Jxnv1{fj#&3X&V(#Tc-V=!51lB&I z{TCmG9siJEZ^uTA&g7qGixNsKLMFIAt0c5xUPhM1rJXLvR!gHJy*dZ1&sIKs+1UJZ zHD6Ah@%Ze=I`yCkRRwRHp;C1eaD@D6R!B&k22SM z_dG2!!+qOuyG|AGKCV@8x^G#IO=M@bbvkemb*39TbV;D^vyFRHR$hZ(MI(C-=cu*V zyuDnbDn6J)v^$iYsPc24g88xsM}vx=$c9w~4Y%&-p{F#V7?a39OBBCOq0@E){CD%9 zpHY8t@n>3SmHOW%Hm3h1Hq7(sdAf(5AAT=0On;B%dIb&|h(Z`p@2`F&d1bF-rG&;G zCZ1TEQ?nHYYlY4T@orDcl4I`;z00{U_YPF9Yo;CTn;Sq!+->jKO23~$p@j(M?HaI0 z%iVaFD=y$nB7%4X3DJx9sN`SMs^bsA*E7csHr{gvo(EuBK2)T)#Jt9mvb2eL3hdq& zCxPeu5!0N8f_+XXf_i+C@p5Zp@!LvHO77T>=Sbt7CU8Xpn&*l#q zdlA8h68l(!jS=TtM7q0`ZXl9?5gGD~ zNCoj>p;ZaY2qvNloM*I#d8_2HiEVrrS}(xcLd(zomh4R$-p<^)C1+EsK|`yxg3u2#EWC5oaiM{T=ULFQ|th2y#6zL^{3+Pz`4mnh2ARi5Bi`W_ydK6 zhGFn@<7<4ZT8=H;?nEc3z)=E>{w+!UB8iAJMQqCbr~>e=?~Q5U01(A3-3Mo%`0V^o zub@+JFi0>2nT#!p@snvPKyq=`msGsk7yv0Uqg}t zOQN_w>Lg4g6zIM)elT^jI{q;6h72UV9vc4uO`V@cU z{W0|Tr#|xeQpgb5a#ht&wBk%3?qpelKIHx+_Y+yQpbxz@t3>K&VIdc&Uh~jQvz%|4 zu#eZ9rn7Q@%pBZ;WZb^VRpKyo=SJXL2-MpX$;Yc!LS#LV+u*Ax%}%R#VAY1j?AzzO z*^rifU+5jyO(2Pf&o6D=P!_C|mlhbVfA-HwB?q&FDaJ&Q#oFn4s7CmsS#~(s4GF45N=L z-T?eGR?+~1N+}^qH4S0lM&-?UOGr5*y5GixwPVue3UnP9eu2qI zli%Dw(7{7+?*u3Me(MbfnH)oxNfy5L%Yq};HNO_tA|2)wUAD$-n&Hm$Q5))kwsQ~Z3Q26SEe)!i1)`)xH4!@rvf&w z>Mu&IK4+xBr;^O2K~z*=LpJo;vqAQcUU$^-ocZBry3w1_)cgha#IQtK*7(J~d;u&p zMo10h^)oDw8UQQ0j~nK^;&?5dYG@E2Z(DIg2X5cIFvt>oaE)vd{(6QRpw;^xmg5>H zAmjKaW3EUMz>lcPz%H{w%fv7%;cepAXt#+}d9(zz(Z)SFknLZj}IyE%;Rp5U5n^QjGs{^lI zG@e3DFLH<)vV1CCAshnK^WkC)BQ`DR+85nv1G%-rk4JLk_$tb3f`l#)j>c>aMr;r1 z2Gy;~qWD(iK)`1B_JNt_YumsY_-Dn(mSmx~MCJX5gZA@d^w_sm|Mx~Zvm)_&VHWvfG@uTaMTm38xH|k;Jx_DY?P@zznsKQ z>CZKCjBK~Pyu37I9c2}Gk9^ay1+RRqkweqK%5>n^YV!Z(K7+SEz)Qk;*RF!)DJcsz zOe|s|IcPohWlUi3ksh^gdq|GyjFbuEC1Ok)d?%V_=K2A!qtF1N%T9X z2;=9ITriu^D=Q$53`TtqFN#zc<3~rk38OJh1*uhe&USB#d5;2%E!vqmvK59ZWzPM2 zdHpIljskTQ;o+)W!o$M*0Sgv69a~I>IT?aI6mI=QL5U=lhk+-9e!nG%C5$HI#;vRT zd^if(#A*E+S`We11|=ua6JSRPM5M-eBoM)Odm|gfCT_XvLEYK~*aZ(n!eCl0z5oyx(uuWQtUo*FS0IGhZ-oT2!-p0sBJl)tR?**ABMWxEK&@3KQEUSHH zE$B83G7E;3!0_GMSw_;0&z;e!*KKTd3+!9}feMb;4YEmmaZ~J(Zq3M%9#a0gR^ynp zAWQXdkskqhaGyvw@4rrPI=Q*f*R`pz_Tl|gA^p^*?r^nq8GdL2NBZJTf!FftzEXtt zA}Sif3M=!2YD6~+taC&@_FS&?Gc!OXSGG@;@T7vJKQ8-sBnW7TNb(3fTr~R&93^qF z6~EmnMT%eOZ=CE*poY;9G}`sEi4xJW)%&D7YzB=KOBKvvO>M&>yaeXuq*?#c23~!p zk&a<7T6ppTo)y{l*Fg#?Me-_L8a>a~jp`(lRHHBn>P_U? zRSrpdQbqJIwQy!L&q_6f-Ravq!H*PKXr*&@PjPAIn9ar2IhH>~p;n$Cgm_>xE^$${ z?`jKOz%f|~Cv*{$P-!%)lQD6%S#2(8M1=^Zjx_#JnMNo7lt-x9RsY$>(b{5?SPMR* z!MmP~I;zWY$Xi}3+TQ;=2m7i#U$d6N`658bg}}ziY*ZreMn&oXbvyeTmJ%TbI$t5I zcH*`aagHu@Up!DN_lF!N1->yj_f!A>K>lbEHIgO!w<73tp|vRuZsO_gI3@Soy+~ zA9MH#*6z(ir7mkR^&L3NgI5pUejaT_oS8SQdG!QWqDno#x(#J>d6-ga+YGrkHiWp- zCo&OjNX0EI<|8IYVqE7bHRWdEozRRT`i~sa6Xqmj8n&&^fMDEEnP{SZ-f4-rJ%8-& zGhUpdnJ)Ko$P`N>R{5(rUd`Lx znP~j=_F2T_;Ski;*8h>Cl3M@uy`~|F@zvuVM_$nLq&2K<E(`QVqV( z&@5U_*rWsc$f|1T`M=~7ehrZEVgHnAig^F_@MZa*{^M!={7?V!I`Z1Kk};gI`LW$* zk&lMr3`N(-YO#<7#;_2wB><|1Mu#1YD`eLZRKySht-7~wDIFoWIEAQGmsKAMqj}Ui|ONB|rNe1d2t$JsrHL?B!20VS4yDXXfpD|1@ zbG6*U{A)#YiPJvCS-UMLf7>bKRIv5m_OMKACkb`BLFAsiEEK^PTixMNiBS43;nSihN_v?Ux4d-eEFVHJkvE1h1KEiG8N!*vcaSVTPsyAV5d;?1d1O|ti?xK9V4W1(z-6xz>r)?T7m9@y zH9=B9os9}P{3cMtQU_^2SD`cJr}$|<1~fE2%#3mw%U5NdR6?&EiHxjFO&u#vVraeC zCmRV;{o)SjDzz9ZQXx|ie-ixwC4C1iDvPq- z15ck9np!id*h*RpWt0@7gK~Mp_$rFpB97w04ntMuK_mr}Hm+iHpK|8Bug3Vsj%Pv1 zq7ubKEtRpnS!Z?L$~&KrUvXNe&3abrF9O|?B+uR1VM*EqxjloiYPi1+gfxuy$bm>L zZA}R`DUb9U9+g}zpWG%e_DlFz&5(M!czccIv_m_7d&CH*t%2>uxvHt5^KQ!$`zGMF z_)F8dJrZr;ZglU)DY=TcRUOq4>WI*UT}%9a{Gq9`y{5CP{MasuWkvjc`C+Td*lzL7 zr+D-^tS1G#wQ968@kk%Y#9eLrkkMml`cP4m!qnc~dX=$V*rifK>m*N^v0d4vN<-@= zY`L1IeaI3OO@~ZH$CT0YP`VMb**fbxipAYS{<&)da)xX%+LR%go~TfZ5ug1?(wwEB z5LnY0#3fEZN2&?Fb&3d+X9~)0L;>zJZU;g372aQuqLz2l-sthPawn0Ufj_% z#jL8m_8)ul3?%d*irDBwfE2J#Ol|9$Y~1Rnc1qd@L{yfE9o+|PsH(mZf(+edcIbbn zMLCQOgooT$Qiym{sI^bFVxYm0kz(tg8#NFupVXrUtdDOeRJw%kHf90(28F<6-mO&Wn1%8)rAQRd(2js`jIX_|!m=rn#Z}UvpO3lwpeT?BxR-7t z@fnMgF662aj>(B%&(4H4$}N=BD7W9tjg$i%bTZx3s%oNMJt|`-17)I)y-iJgQeXl^*U8r zto24OxDdY`VC?ngJPgd7AOy}cfpkI4cJDmAROP}d*TjQLVdIzF;bf&HMcz3fzioZw zW29#3vrSmHXK|3A_{xSgnfo-s=`pawbNZAomF86k$(=%CHxGaV9^shFM&~&Ql0nC1 z2o!cJTRP;wr(|wh0M*+P=g`A4p`)!&By-#t$3XDxOG&$q{NjO{ED#RK=-Jl49&>q? zKeI}=ASmLFD*{1P3{3jV+eoYkBH6w~IB%`$%SY(_JN&7nE8i+x=>i*h`w})}i_k?= z&PkbmPyF^GqGaf>Acu#JX6fUOabN!O+hG5DWcd52&Tj47=VHw6^ee~RRnxua`L&Ld z=WoyfGYMMt6?s-{<5&bSiMlbmh+~G(8?H-^0!YqH%^sAB*GC&DOjm?|AL4c{Bg7>a zEPw^H*Ay9_jpafDIP37x07FZ78e>X-0)y-aP5C8x=lm2bSW&Kaa z)pE1h7exMN^MMW+B3$qS)j6dCLVO_^#ylauFq6L`jN1&9#2KCQ5_Ax3Pvh>W9*5I9 zQ#Ym1s%d?d(WZKv^JwaH|5@7Oa#u#h1`>GVcXsIwL} zW;WJAY0ps`>_o@39>mK`~VCx>$}-TPhg-0(0FaRD=ySEJ7IS0jqnc`Z_m&@Z912W-1~D z4}V)=U<_Mp4}`-rELz*^b#H-Ir&}+sY5{5>l(0Vpz8*|a1V$nB*v720e{L{I zW+WE#M7;rlgm5U3pZ#xtBX7TfQz}X0-|Hj-_}jjm3|NoWpQwxJBX2@P%`krmx3wy# zs>p3UpK*YF@O5%~cI3Y2=s9$|13*ZrB;M;LK!0EWyEGS^0TL@w@{uVHA1a zM2lj+jemA4QEiQQP~h5&FwfRi=pVOl(7*qbO&|E$!mA5H|r2Z&ebV^?@gFrzVr7fw161~JC$$%kK^jem z?gT0|A0}NedsqkoAWdh3G#vc~{6ZAOS`rAM*T6B_G5yBeNy6B44DC&%F)vSt2Z65& z9Kq#-4jvDUQsdIL=hc@ zSGL4$TJZ}>NlKEkf8CuJ^b6VG6mD<&ybtXqFi zF_1BO$R1HZSmbbE_-`Pv9V6ILw9)e0F~P;_4aHCs4PQBqFV7I!@fj@044kf-j4A4x zna1TDnfKs#zF1eiJ3HH9$rso_41hBSBOllDl2ZPj{ehzhm&g-g2U) zo%bz@4Zk1oEGJtcdZ=*h$in@G|H_n&j|O9(9V$*fBJ1G9{4?tJ97Rj^Enb0Rx``Y- zAEm2yZb!sfof2LHkwX7z3^7Gk-4UEFq3a?GMorDGBuuPA!Ko4og&~2H)9mW8DItDn zk@rc?=aUUua-mn{^yw$d3U5aEQ)02~4*kZM${)`{-&8ui|ICl}~tv)sML-M!1%G0YNoH-^q|S z%1sCHM;k|X2;wz5;-Vf;U(pv(4XN7Xcx)19wwj$Ijwo7cJ#F)RZ-Za?c}+{&75Q=X z0U~H*cgoImQwN2WwS@OpIL=p5z4Qua`ggDwDj?!JhofOqJQC1RtVE{~u+|%q$O(yV za?06>|60{P*v@*3RwWlBGbE|EU-7~#rnGOmokU8ISsA!5P$4yeKwpqU31~%YZ-Yoh zd)3wE3Sg%OI?_nhLcwwubLH#Iu&oC+WqHF`WM;X~>_*YRY@1m}3YFgGQ?5a(3 z%igiT*6dw1h_;dcl*X2G%W2^C-r*+mW(7+^SEwh7n2=kN*em#B-+J-uv={8g%Negr z3HH%~t*e0B{PU?%^K6r+WuM*h3X$!A1;;J5o-z~j+!&%9_wGum#{;gGW-P09o=^wn z0op*xieBw!zz_H zmgDYZjZWwMg$7-9lyg!FqanXPm+jQ))`5-owa9?cGVfg~HVKLEbN6I_B$sxuwVZc+ zID=17!I=BPR4B!k1TI2zf@$F|s^G;_Maw+B<);&e>eW16)ObWCG_GE-WW46xh^~;v zX(YUoSse;{p7|=TFv`xiIjH&aC zx-^Jz$B}jaq7>SV;TlVA85kl zNq0q>a?uTF&*c*0j>(z?&+MDLj32lDQT7=+`#tG0wGh3hdi}{4AyzlaYR*JTlq2cf(NxiQWJl8q0 zQi(2WOXB-f2$Z{@{Fqi_mn?&xAgpKlI#KsgsZ)P*k?O8S6_~LRTr@I!UW^daE*SEH z{It7{RO4B>cKrG~+vFQ7Le_<1F(dqK;8d=aR)IYZ%}+*fPA`=Y?d0*Axy5NqMZpM} z3H?Z8y(H0GSaUB-<)#+JZkg_mi`I zHTs})WVf;EsIf#Z{RDJ70 zz=ky}+V^bbZ)~q97Ws#<5FQAyz*>&T;!HlENv(8q%!W7OWN5 zIBB!9k<0`CyXWAczjAnbZy52PTqsnpNfOoZG20}DpeATb#kzc?W^ zc0kNRznEeqx!@XD6G(?vwNkp=UWv&KX}7NlXeZ`-n{{E{Z^!y`M=-1}bOvHe4stm^ zsyFP`DE%g>DKiV8saPG+McXky=pNn|fwhXLuLBjEf(`Kuo{UC5Pt{p@uNOM6^4!)b zL&i^}H%div>DPIpC_E)8lQ}^c7)8wYX+oWP=`;UgiGlE=YBU2~hmoV=8^csNJGRyM zH@1rRL68QE>BGDy#92n?Ph(18E|A2H9)z3^QaBqN$%!Aa)RVip#buCN8~w=(S9ttG zyH6nnY`Kl_C^|L)-FazosQrH7OKEhh-q#rO<07X&Y+%EIW3kA=^Ib1nQums!@lM?> z+v})(3${uyr=R;7u3WZZCVtxj(vM_S&#-hmcNE-QDUf@mv>xdP7~w2(P_B|MALE;^ z5(7c$ZpDb7pHa~W%p_Sg+VK@zVfCT#A@QD`8{40~gzV6e3tjU7) z{-)AxnYr(^Q$fgt7o?eykr}Vx=LQb3Fi+mM)Bg0mdlIH{jOc*cbp|v6h4c4*oGVWG z!;F%Q{d9i!r@5mXb^p_Srzox?^q%3G%@hh2$y}x*JQwyYZ209KTs=orzQN0R3?1AiKX2&~w0cU2tyx)k9zhiKTOV$n zrwYH|$7M&{iDhb4Q=3BbS2Ly(NC|O(G=or1DH*h+H$%0mee5HO+%~itz``O^T21LM zq+1wWYHs|eyjmU3ww}(YERk~s=FAs=I+ZXRD~@Ks7XMDY)s?wcAym6LGgN1mDpE11 zsH>wCIV{^iy;%u}?ye)-i^Y)+7%308MM;~?FY24cU%_S@TaBl3;kE+tN1faVZYUA} zw*M8Zca+RTYzv|5jcVm>CiYQuldxl5Q^U5u1>7OQ_j4>L*q7c76^jMP6#6fb@6OxHC@myscWNE zvK87FL4YD)%LQ`EeC=ReO>$6|)_8qsp_#t3{82ko;nBpX&Po?mAZxa>V^_o7V>WRsme;kx(Of%( z;JL`HeQKY27qDfFAA3=69}zumDYC&wdX)AC2< zf=AlivnSqVK8F=~U1x*tYZ`T=3GqDZy3D9P8+F6H7Y>Ku`wRQOn>hRsa`Rw-u}M6D zh4r7|E4coviKBDo^bZVc2JVJv5-yprMK?b?CWFnfU(Pwc4X>9cvW5&|ge5T%35y`S z)s$S;G1HJrGTq6YC#GpzHqTY_cTEuOlme;u($id0{jcZ_%CHe(Q0gEk+efmH znzp#jV_i{_U~4VKQVhxawrY)1=F~9#4SPOvECcmK%s6zjHhhE3F|*UT&NFNL-Q9km zb8sOC)Yg08>syjuZUmb>PlkSk;Galan_HblcHv^hL$FswQDdE;n!m_>M8G7lbK^77 zgOFjx*-*()*=1oiIzMj9^kkAQ;f={^wDssz21bIRU?ap45(B$X?T6Y!{zSvsq#m@9 zCl%RC1@*0^nU=&!(v1yQf^c()gLh|(%gE2U88}by&f-&F;`l?b8F;H^Q95>cL-&)f zg82BC_9POoOIrmW$??p)Q6{{)gz~PS+6Unb7>3#e%8xzamTQPUZ^wxAbU94|F+!S~ z@g%_WtH3uu)gOLAP2EFQOB~=2U|H&IJLt3PSD8#%uEi#0yr4lWGlph4pi$x>s-R3T zY0XlLf=ZlZGoAE-o0p7JF#)TyVxEUR8HDplQeC1{j{;=peW( zFj}NDF#yHGK$cnULLeL zT+FON?D#{riP*1sDAVi28Azg%jpkPz%+VlNWo8xpmZ}?(ITJ2&d3qTQdMuV0aozo0 zRiT|HJ?`yaqk?@sg(9+AZ7zBAjN1j0SJ+=!2h`YC(Fi5zG3xyCunRP7oVFJpe10Y1 zqB;u=dYsml+5|>zzA~l{4#-2i=si11W~|uPlfX=E@J-?9QdhM|zHLX}Pa0V~b=Ek{;s#uNnKQV@BgbN@ESJ zRob~4jaX{BOLP#+uIy3$fDwwZ{}tfMG*7(|%hC&Qzv0Us1L?I zs=nqgl3f;-?_Yg$de=nl0E?JOUhy&@BC=2B*vCR!UV z6}w%?zuLxCkAVSBb~bC>FLccm%;FU758f`nDr>5WP~% zaQ*a-LriYL1~q6S93l@F*!Qhv`Y+IUM8{`|OQ`!Z2C`AHWHYb1qMV#nN!g)t3-mNtn!MS^bIkprk!%q}bWKVAFz&zp?4 zesD0dle7hzwSuPQNq-wT&qqt9WgwBQUc~@(snFdPg)>_wi@^S@+ za6x^h9@)h+uypB8UNDGhJWz2lh}2yEICa<{A>i-b;XY&c{%&W)?EkesYyj^^1#cE| zfsF8joMe9{fBZ8PKUBEsgiw2%=crDiO)|6>c*ocMy~!CWHzlVRWvR^Nb_2-g`sMH; zzd}G<&|t>=>pZ4qB`4d%bYMaatZH)#8_+)9v?Yf3L@3e)zZG^P=z`U_5f0fBUs* zfjBuAG?l2ge7HI3B_qLQH|q^7^Z*?_$ScLSW-(?-H%rN7-sUwD>gT4cf9;~=*AJfI zfM%KyWEiWg$l~-?3{ny@RDUJg$5=Bll~Q(0mdC>i9W(R4BdgOTaZwLI4Yu+hgQ2+p zEl99S0xX?>T}OW#)v$W{T6&%4)cFrOW*15dpT6CnQ8WQpmRykmi;V#M>Rpm3l0hpu zd!}9om}c$W^0xRo*MgP0T{rFCe|plppSvj(xVgHl+XtF;URUwTukb&|JwQTE`+|E* zpb$h*$xB^!(9eL_kcd6c{=$q3X>2oZqsq%f2dCIg4k_3>U zN)0zuNScW##@fv1hEz~wM2bFwDUy+eMX?z6=rfX-;0^2cH{G6R5D|U~XZj0f2#3)b zeIwDh5fW^AxVuAL1t7M*(7H7vB1fbz&s@5q%)h7uuoG{|Fd)zw^O@*{sIY--$ZW{$ zvN#(bVXqp*!^-yvSTQyjm=o#u&?N&P4U@Afvo8biT&;!!r{(6{vAR^;=K(I^nV{4f z?tF&I6wAPetI24N+^}eJzBgS*8r_vYiyLg9a7y>?vn+p&9W2rMGxn$6A~QbG;`AG2 zLx`ErCp7RT9G3B}cVau@8c_|xt$=0CWwqvOfOb03wlW%E8;zy~X=lhEg%DJfu6wFk z`VCC%!*)X?@sDGX)DpDS%B;L=B{j7n6nT7NBiP0xa_%EZWW$-@jI(H!vO3G?lR)5ivRN^gf?} znKO=K1I&Of_xx~N0OoMcG5n9~l7;3E z*4kX(sU*W>Yfb@!T0PsWU^WxBc=*9sN2&Ewck*t_4v9WwBYB*W6oFyBihcS!rUFNE zlWv>SGWSk|^J(M1DpqUNfon<_{r2aa_!SwJn%6dr{1PV)GT;i*2ez%lS3Y)odw-WO zaQE~Xfbc3r)EwfRZ2EY^G`v1B?Sr`R+#vmcz9oynPj6 zQM6?`lo1)ZHxGlq+?&ttFyg$@lJil=mB=IQHtLzWJ--MTcL0Jg37(V-33!bw}2cB1sp}dx2$8;$~z&OCRuixQdK@$P3CIXado&FgZ9Y1 zX5Cuj@T-(6Eb|}9Ran*^M>L@u!tIg7D~y`Vm$~RPWbY+uR?vRJb>z z(IO^oShF13NiA0Kkw(mA&Y#7zASxdPw=gty66JKX=@Y2De6l(JaPy@9qf$E1;d{*g z(ox4ZG{boBL6dM{I4HEcPuQ1TFJ)gxBy$@BI~ERxhP13)k1)WK=F+yVgM|m}i9BA3 z3%kX3&;O%*OjP*Q1gx2juM^=o=-le2Ts#;7JS`Bb5_j4Ly~>(!fnkv!x^Kw6Z*EBa{KS?v7_N( z$+~iMtKWBt+ut_PR z<+mM@ZFTsEZ-za@4V*fkq(of;6|Wz80Y&sNfP#UHiE%@ z`JEK?O^Nw^JSJ`c7@6;h698g@Z-S)X87Z7|V8d2oRBm=g*NBVUzIi5nf~CN)<6@Pv z{&u4!AM!2scg@F1#@9?ry+TJbR= z@Y4#cf%pFznJ@3avvdMt0vXYNNFM$-heZ2-c4VxXD0#5caV6;Av zdf@Fo?~q-(GWip4y@cf+OWK`kfQ>lepb0=C$v|3bIG{_D^?DmpSX;acot7J#D?lxw zE^{RUx!mqnZMV=amrMg?DH;7uChk-aPPRZ(3ax=A12Xs#`cFUrWiu#XG!+h9l!P?< zXxD%Dc7KE_fxb6)UL>bg;}JP38wpd4jf++CIxH9|xmUFl4JIkH-?F9z{?u_?EGZsQ zLrRWM*Kh=qV7gxrn-x=QKx>hayj5ioH*$)_im6PGQWtxRRtZSZG9#is)!ci{HeoYy zQ5kNzvQ4-BC5i(!oj^wGvuR;O(Skm@iiZB^bWF?s*8CY_(ptz^TyFw|Q`Udpx~>;- zu*D07(64cd3-^SqFe{w=E;e0E@6#$8q3Gvy%XElQUI1s_MzfkN;2m74Zkj@Pbe}~^ z3U~Y4NaMHx?^KF?@%1S5gBOmIvi^JqfyyM`(Pz+c(Zy~gvpCBUiD9!9X_X3*^N88Yki9irI)`cEuy6DP5ES`r%<#>H@EwQTkb8ghJdu)}KIOsfj4Vo#|6E zv83Qvey8tRQoJLuKN=TToYQx*9Oa?$mDo=^DM~@E9_ecr;Wd(C*{GR=^!gNfO(xfm z%xo`kmi9yc*OU6yRw{Tamy7r0s?OfuWLPEZ(U6195&8-K=F#uJ4YiPii$gMP&c)~G zfzE^3EzwfK(2k|ae+GnL$FRWO>sJW`OxTr7^93elrcP)x5l)b`;k-|TF3L2GuaElA zfuAb@)6TDU=+(QZm%I=15kM zY&F79c+NG&U4YLVteGU;oikVe{`IUyAKC>6-8#UUh*g{Z$7I|yU!B3yyI}Lp>atJ6 zLoTPz@i_YzUgRV6TUyB3R&r80>d+@ry=}z~)^)VSPF_$Q` zAY@J4Ymgq>_WPhZ#AX@&3G+ouV3hEs0B}3J$bPhEgxRhPTLpPqB<)_vpgS!*?j_GI{{ z0?EqT43e++X+-{3Z|cWQ(24a=-M!YD+fSR2lXgFo&b{^z&Sv6VFTbnYHmiu6)B}0` z>B%lh7nwqd%o-p|0#Q7Ba+f1^*fQ1t-@dY&c~#i2+=9%_qx`u@SRCg?1#jGbyrKfr zLrW>{WOST9Sw$#cD}9AhKK37JOK#p+f5HBDjezM>x=;ZH1k}LrA9mkZ{tb`S`5$e?A&8QtXB1mQ&fgzC`|;MX&N-?AV4Rz?5Cm2t@gp&3^XHbg$Pdp4a!hFu)@7 zilES<{|@=Q$J=|+nq=hZbA>aj#}5hb5YgVF(~D}C3mpKX-(P(}+(2-WP%%gJ_G8I# zPs$=V5EbOQlVpkb`NnJ#=$;Ur{XPu)k*0^)JXRbP2G(9{t*l1%=dAuXesPW-OfvPE zS{iyJQLJ20{N|22Rx8}~xyx(&x>L8cjySc@kWFI5J<|1OQ8zE5{g$`G2Z!|&h>MBa zO>6>jMYQy141geeZ?&`1TFFn0QiMiXd@M#ZBup$zE^RiYoU^sHal1q_%=YQe6=4$_ zzmOh|Ogt~_lqswzEg&t3HXux@0Kq=;@HcUE0Wn!9|FXh-N-;Rw+$l8xC(9nZCon8i z-uI>(Q^99vvwXS-ynLqcOtF0lJr+nnbxEV}}7m z#p6tToAL3B@Z9CR!9LG7hYBHN^ftmIsrLTl818dt4&-334*?__jnsf&<(Z%P2D4ny zN+-}TJo=0FU7nj<4T}AMHB+=dT2MkMW_I2%hB|)IcUFYXi0iPu5~W#jm^@L4i_aVa zPTK4qnkYCAtxXu!Up{m&0eQ0fw_PVn6u>887li*p+ z05Y^ysS++43yGTK=g)DEzx<7*D4e_y*7PY%u9>7LO*h)%qnetSQ9HryMqP5M*UYnX zCNM$$T<=q#Y)GqGo#B;r8$><%KCQy0rAiag&WzbTt;APb+-60UnS$18J6&GfW=DlU zOMQ(MNtuG?20y$Y6Y0g#ucoqkI9pk~y1`C1QzcDTIkH5C0cgNQ3^%LF8wXrzBx#xc zP)pLXRIHSyYw5N|fwfnXH=gs+zOuvE;v|F;_xuRn@HD6=ncCrF<0ecT2+XJXzx@pBs=Pr#~+4@M}kd(uSR zv5pk;iA?UEm}fYnxJ^s8DUy z^uv$MOMDH`F)fHQ!9zUtNBR1gJ@2__$@cvESRr0Iq9YTb60{M<6hQbj+`V9@zYq%v zrwk!ZpD+Pb+gJXmQsPHis?{_Ptm_76u(p%InN+DNLppWOQ9qcE{#c{EZF81!RPrH` z^P^;$XBC2!#vBfT(*ziq4!gSMC_RYPe;w*&O^XDJScCMABhbTnM+>;r%$0-4FLs+J zo?SbUX;$$pK$W@)QD!tU9}fmAN>HhtSq!os4aQQWB_#34Emx=_!&uN1IYU#bwJj6P zu^A3ctRP(Zk71V#E3}Jcb^xXbEuY1mmLwl;pIR;pRU$a>Yta<{ob?@8SmF^W?c6d= z4z|^x6M=*N%Qtd8u4O!Jz7i~VzZ3YYTBp5KpBuL<5=XK;UJ~2DW<2p9;$z?|jk=)g zt+g%IM*b#D0m9gJ&#hwlmIihNZVPW+g1U@PVz(LEiRQ33YO)NcUAs2jep}yi@rRZ$ z9e$g5k;C8vxpFfGl5r>yK2X^q5eEb%i<(XMV-^d7&51_(T2I;C3Y>`xtC3&*otqwL zZugWcOL*>fJuKENsKW}dZ1kV0aC{CI4TX(W-Bp_Ane?cFi@f7s&} z8-HZmDRDrMy5m>E%%Hor$HG+lEsL$3To%!56r1sSX7zB&H_}&d*tVouIs5w2t$iUa ziDc$PjE`MowZvb-Nu*Tb*cTY+g_%Ai3O8(EI7O~_6qY_b8y}U-p@N}23zbsCY~9;q1+-#T~+>yQIHp9DZ!CyM_<4fPVigriqbv_Ogxf?nPoo3rp)mtVkLyk#is_H7_ zOtJ3*HC0{;VWbf~{oI#ZybOOkqi`x8g}W=_$&i&sf(bxyi%`X>W}%fYoKOIYTw%b% z>`YVXb9tkH8Up6d|0#zVGe&Y109;Np8&+DHK>GuwHuV^)^j)kq)$%o^j z^7II|n?GdFmlFuQ61}`U2qlj%QEy2WCb$gpBfxdyu9)m&^vktzt#s;2f3;3i_a|=L zT;uW_v2~ZXi@TC|EGAf8oo0|>Z*v{5{VQ*0`LM&d3GxCOrSNUrF;N+#m@6Zcf`Y=| zqzeJF?)+bPkHbXm$YjY*`;sJ10}m(94DJM#2}uyw$cG-k#Z?Nx%DN*(RV15{@U+*< z$jISfQ3{^1x<^Ry<`A6RK6$^UJ8?Pdh%yT`{K8{zv9317I{%x@=`w3uV8h$l8jXM) z6&$R7LliSw)-B|das^7lBy;DlmJOB6RW7P3tfK5l*4XNd`c(k{D8BXf>Fz4rwkDWggy4*J z_aY5No!($7)#6*d#2-!svCaL{5Dl;q4nrCig|0SdDtZUZzJPUjebSg9P$=<*^EcV; zY-AoTs0c!4`s+(MIFG3!x$P;*5{;NjMMKx4a~%f$b_0c{P|@~5s11MRn_uiX!Y<|I zYjg)#BmUs`bhq^)wv859lx8~drCEA90xI`hky@$7^Ylrs**(DqEfKD~5I7ML zNg^x8BEiFAClW+?~is-+C0b1wGA{aJod2iaKCh6CbVA}=#MB` zog`FG>MI#~h>9@jLiMV8x>F7TJ^qP664EoJT5NPS=@`T7gW%B#$%CL#dh8GM6qbWp zFA(>+BpGlV`PgjC>ngK9VPxs#?r@da9K{caEN7W~vM34~NAgxOrCL$#ZSmG>2)enD z=!(ow0<~9|C_k;v*=?NA1svd({8L;E_6lns3xAsMq#6hxJVgzZLW3Pj zp)a2}1qwiI2nL?3wK`EHw?X^N?6jhgTo#8=hKNKW)ECeZAY8e zt3?~sBwJPE*w3EYW{CAb0%&^ zqC3AViv;U{n4AWyxk%4qZuX^xJPXL5-FyZ!(7&Rfex5uW^{0aU_`)&6m}W|pW>m6ufA8q`hD%G_8?UQp* zl%l`!H3`^5b!+%6C%JN8&TM*q&~mmDy)-c$GDw z)p*LBZ{d}9UF{5vUREFOM(3ORf^3k*O>QgqgsEM+%&afRw+Q_NJ!`m7S1Kt|%`Ph` zza9k9-Mmezsc{#g8|ALyUGkz(-oBU(4_4K<1g|uks9zxFt9T~)+zSq2(EODnA8y22 z(yGseXgE9q8~CglSaflBF^} zkK%!S`TZtDHHrd!HM9A{=yd~+2lEjWuGmv;@DO@g$;A>zeJZUI^*Z<1PH=00 zE`862=z6uvk2v~<^rLXh-6h@!MZHE^`>dzRT zAkx19L;|Mw{Y^j`Zy;tQF?{-z)yHW5$>>9!#d)V>=eRl1 zYPX0B^*+u&aaZ*Nf8VKwEJ!X|wn{jzWhY5>YwZ)b2Z`&MGYqGvTyiMOL*cKN!;je4 zLk@n7+sc^nx3W(rKXt~w8yExT@6VS-2tM-0qg3YvwRVPaRlcl^!5=8iPJ$JYsEHD* zoA+=9j}}xwW7KDK^1Cc1is@{W!rCziY)g2zpOip;_K zV`d7Tfm87b3U;o@-#6^`zdKa*AP0D%0Dag4)qj|x{TqI!^Z#$vGqAS&+NmhQRLiC% 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

a@s#qEK0}n=L%{=Z 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%0Dy6rUL17{eQF>1;*&LSG#>=k( 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 literal 0 HcmV?d00001 diff --git a/original_source/original_license.png b/original_source/original_license.png new file mode 100644 index 0000000000000000000000000000000000000000..598ae00b12152f7a342f209827754f3b56dac180 GIT binary patch literal 797817 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

_!(;?UDl`PX1_IQnG(~*^4DDma67x_F7#* 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

Ty`{JU+=a`gluAi$&fu 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

$~`sh8ZL!RuQ=`mjG+LboT^3(3oMW zsCo6CSuH{@{d#K@yV%8@s2uX%rE*9u9$YnqfcCHay1ESH%EWiI1r^PseLdmmS z@L8r;?Cb3Q>ai6_Wy-`W?IyuD+9TaDqF>r>`EwepX_X1QcX++e-kV6t!x`L*lPL1s&u27iaR>I z>%X72KM_G65!QWV6N{%gUNrStS3aiS-HjXn?FZcYNN!c0eVq-IriFEEoUD%p4Nvyn z<+guI0hl)}cOM;*JzwAZWZ5wS$VW6JeT8bc%_7m_>~75d^9RuX$#MUSD`%)Wmit^z zF@f)w(P$stM;6JOc8PYXAai^tEfwVL_PKph2CB zO{-7-!6q_goHV-ez&|93RsSYQl<9+n%TvT_pnIZ}VV&E4C6*~N!#&UOHkCOD3MM?i zp5X>y1=0*alVxzQJ=GDlFdX=L;L|TZ3$8IJu@KR>rB$%Fbg)aGvPxS@b(lT&WH>(P z9E0Mh_&g`xGyWpjx5&kwT9p8lv=oMJ zqUpx}l95+(2Y5l>_^vH&;87$vKu4ht$XtKYo4Zw>y2+fuN&9GR6g0jYVksM^@~5bf zXD(z!Us8tfZ|ZP_YTnvnl^Y9|SX)e>BgEx;5W2CPX99kx0|~s>B`kA7_0Tqk^*H>h z>Xfx%z--anN0z}&&zs%(AlWKYzLp~NWK#sRQKCs@jQDC;*T|}%hcXbb8rb-`c&;$V zv?gaaW+ZqV`OTOpp$`Xp4^4q4-@xq**hOU>mj+>)m;`jg-bwu0^zT+pWRt&I{@wGZ z>@fZRL3TKyXRm40o~@1HP=U>*waa`q@rg~0ksfsRsRbZT=vfv8vcmq7suTd9xN)^W zl_`PV%?p{!+Hh`mk7@#7Ye7qw3@Z)~6@7S;8`5#sT>a9MGYj1`lN#a45|Bx$YU~j* z`L;HV*=Pe{GSAq!&s3H6sY-Hf^!5GWADv|Jc%!Tk`f1Cr3$h-n{IrF+rjT(@T|hW( z^JJECSZA`uwr(Mu8a;Bgvd_2Ma8W&Iu-eHK?oeyu+!W9?&E5+Rqz$71P#4#*>wU{s(2wdnLJ$ z^!HrZwyGi6?jQ^yvGkhN58XO=1~1iu6ttoZh6x3gGkK|hRhKZ-x_JTFdtIhiq&)R> zCk)u2y6`8};@XccpX%)PfXM|LEc0#prcNFrs0jBovj1JJs19Z1whTG49j;H2eJ%{< zTPi(r^y*WS>?(-A6UK^dui-tpHS#p9YnK&>Z~F04Xx=z;(AEF7)sd;ClcKBY=?42j zTDd68g(k9w4Qf}H>apKQpYm(C4KlG}qhqmcU4_Z6!eM4JMTYq74s)}~(ff6*Z(h>B z-xm*MXL@t4=Mc2|mU0bZPTOx;Up0(I{)krh+kyTpe8#e1vI`p?I+k!PNjmN@`Mni= zxri_p)e%m=ZvQ((y4;u3!&w+|YkgC<6H}Xp8bG!(asD^*40YoV)y;>Tq^L7e^9$W8 zGYGf(gK_=0EQeczXv3HEYi6g0(L{a?7W)M66JTc~Yy4r@As{QFDx$@0Gh9dN^=hy0 zB4yX&dmXLlmHZ`~>0G%ac=Bt5k_KZn&uZinI;^SQmh2X(BS^M+-CtqCVuI<;vOJ6X z?sJT_?!-TEjc>|dt~t`PiN2r4lB!&nuk|H<&L!F+;T&K|$$RB5uFY9ij=FKK%V%=S zqTl8rcpp9}bM1$egJ-VFX=lqGZlSxZ_3%O z%KFgiUVv>EiR`Z%G{d(p$tHhVzbmAq5w1pC?=va5Jmo?)lcqs_Qak* zh7B7mw{qWr<7vb<-A3W!hQPWj4*4|uJK_&N?>o3H0$NPU(h8b2YYpOcfJO*8!$Tr= zq078GcX_Ek9p69P`@VuB6b~aWTERhxyD1f8n+n4|tXwpv4_Ua+dM8QWh*x&boiMid zc@Q>m6<^R8{W7I$Z8u%(M#G@0Jr z?r>w521CQ)gF3P@WCKL(oK<;hD`<|KR*+Jb^!(l7<9D|MKW~!v+m6!|WQz0;+F}G> zoelNw`Q(1yf0Oy?mMoox&Weug6D21R_BQGcq_b`6d4p;7U+a(b#r3*hPk*MV&F6pV zqtc=>YA)0;D7R(8vM-3i!@e?%|3RUx4uO`nFd7)-7gjp=-^`BxR^X)hx?&zfn*3;! z`T)HQPI|df(f^>Pe>J*4G<#bewB~0Q+jG-zC6mQPhe*}pryuzPf_Xk^dVkrsROrG7 z5YcswO~0Qup9gvNkG91)u6D?Xla%4IcD-^SFm}%HhF6@^U-Umi?9DwHvJ{Tl%jP4x zTs(CX+6@ahUYV57M!{4C-O?D{;N82IKfecLBgBjEXkSct1@n&A-Qu9(EuPz`9qjVf z$<%N^i`gv!GAbbftV_@at|TiG;DM=i!-{;WGN1_+S7i_W@ch)(9m-ybTQwcbe}+zJ zHP;d~3ep*|nQWTkYuBIDH)ZpBRa=M5XJcjA8SVsgy>|j@kobW0RVHm{GAgAuHV-IT zEcU>a(^Aa+w1AJED*^<483CL;x~!fp+be$&bN}sYx~e|}oxPv(XPUGzv+0>+naahw zs8anAXp2Zo#oAYx*N~tQn^6&Um?4(N zhdVM|W0kR-=9_q}7(`%h_Is${l-5J#B*c9xO@8?7_$KQu{tt&#R{DO{-6K0f!*u=U zxvUr)da#|U+#${IlCtKcR_CArxf|Nn;{`CZSHZ8LvkJ(&>?4AWO|~ei4DTe<&Ete) zb{Bbb#d)=o%cOSi!<1>zqK#`JtPs&9JSP7`-tiwv*MIvo>eow}7=D4_pB*@&-M&Lv zA?vbiBHr)XU`CKhc~M&n6KX7!`)b2p1Fiwft7ah{k7tK`J!(!vH; zO*oCJ*DUJmtlQrqRpW_{eFRgywgvg=`!)W?gj+1L)L`5JF5CxPbMLG#ZK^~-7=uJSH^ddD0(m_fDlp;+;1*P{ANTi0|dkej{ z03n2W;`_e)-gEZeXWael^Wl!ej}O4ehm5fP>$lcibIv8t(l`;EW!3YT)6qm?i>uC6 zUN{e{1?<~3tuP}~#Z1V)o$%*w>qbqHH~`{d6`E>qC%SQWi(=Gb$0GNGTaSkniw!a2 zqQ5X0*jJU@9hu1QiFnw@Te6oF-13GU_DQghnY2}y{V(4Ca*p|DAS7`8k$b%9ZEzmO z|MKh4wg{$&U8Oyv?_ssqA#GTZ3hW{AyG)Mk%97?Qe`W6|$+?*vsy@hp1RbyDH>?6P zE0r37y7ezL*BNbLdty@Iz6HG##~DoQ%F+If%W1cqR;LkfCyuvjN~-XY?1oc|ZI=@- z#bctnWxcbPS;!ou3X8&n;47{U%e8N_IR)!UQp0G74}(n%Q1SpUE0H+)zP!ikp6ArdT@qD`7AHxHm=?J>m9#leo(@?x zVdc9fkGmpY94|~f1drGgT+GApYnTTN>?{svZT)74@Rx6^q*~9VPf7g#7!0W7e14er zqPBra*`FIoEgie;xgag3CVz=tN|oJhQ86SYhL`1)SZQmRi@ya6HIL=y{P38E028y|)Nz!1J*b52-Io^M=tFjI^f{3~KnooEw5To+yQ1%P@CAeh2@T z*#ZAdk0g!&Nw|TXB~rP*}rTkz(k_jIC?A6KEa%1Kh zIcgf@bucoD#{XQNp^KSeJAUN?p)HqVvw}gHHc7%WBldvhA2^yje~-s+K}z<)3JzVL z@bhja2Yjyg4jf1b*ZByu&E>%FeAL~`0D3u6(G)fW<-hwt`Zd)PI~kwfQ~<4aTO)F z!`*!2SDLk2y==Ly$z`FT0K8+E{pjjXC)nsRx0H7ulU=$O>S+A?5@(5_O2B@lPbleF1aE;W?rWI`O^Pv3dNdD+D{+YSQ#;yPI(BhwgpLLm}U6^+0)5RO!p2i9=EOiEM850aD?IO0(IF;Uco9AK(EVtH`kpXUNDzn~HWQzJxo!KcQ1W z%vO7>`uawV`N1*Cv{^aL!*RrZf6i8ZU$T|$?EEO^j4?=^XrU(-J#w{!sH z(+9Zo=PP`vIT>~Ghy@Ro@zx|StVDHvmR|)IRfrS{ypxp4oRq@L;{$W%^upB)jJok zz~~QT#-xmyYFV)u=cD5UM@?4Jmao;gk z-mx#{Gm9y5yms@EIp9~u!}DckAdPOg%f{dYiS|t#&`b)PdITMmEZ;ogo=|1M9~eH+-%PN3JGL6WYw1*XKGGC6hVDNW&GBx`ptHhrGjLdfM-Q#a zecM|?=>uRJ<)i38PEbhA8F2C01gYzRMvr)Vf<|2SQ@jVVLwPwK#9F0dG|QA2BEC4_ zSLJo&t~CY91L022BgYHDnp|UyR^&Z&(GT>C1(u!F_BICB)0sPgAmNSd7v?z%>>lQ) z=QW~R5!%M+ii-Uy9L@8;cfG}3{wF2%+W*az)c*~({hua2(hj2juaB*lyHb!N$r~Fa zeVW4M1BbqiSJ*HZFc6D}$f<9BGJGQMmwu*9J#%w0 zi|WW?OJ)teePISC?vm~`u-wpleDEq6pr9;I#9JM>XGSl60ZVQm^&J-9Y@SW6Ou4Gaz)YEr- z(~U6|BAk8ix|-P6_1T_ zzr()P`KIp=s;J#0_Kwt*^1B}`|Hd4TR8 zSnJ+w0v86E$x6DaOGvFwX7JTb`{Ysza%2XOs~6RR=GSdoJlm?Yrf3|24y^*gl%L)9Nf8%Qa~KG z4Cy+SB;$)#d}ilyvj_JkN5CQ}vFA&kcd0LEV|Xt9(-{BX{qd^$AC9N4 z3JJLw@f%N8p#;=lIglRfQtk~VQ9HZW5Q@8)SVl}JJ!~?sVM_LB%*q0OeAh@$rr5qJ zTv>t0c(C3U^+##v#&FvI0&~2Ls6Ft0FoBsflh1T(HK3~})%ciqFrEzZ0LymF)R8QQ z*;6odah6uf+Dr=5Mm}E6!&=UsL$4rv%Ct=D8@Ood-e*r@4GJDS3807OHrX-2rbMzm zJWBaCs!F=XA(mjzE0XRw^2Uf5Ci6ncq=&3bmKE9A=fCh1U%~4R&i}y&=>Ov}cyK+? zuPjc?WBDm3{_R^5Gl#@G|Ihhzb{P#M{+wfJR(o!RD5+~Fb=M@<(wWLiw*u{r6%)CW z?C>V!^@{(OK)2=gb1>r%fi6c(d-lmC7Ab3}}csF2`t#PMNY z7n38!?IL^%(kuU$R+m*1y=Vc%!6`!}y|094Y#Jg%vZpT4P?#s#Q=>E==?)XuZH275 zq9FLu{83UH_utTAtHInbnGSzaz2ySH!wpKCdO}8A%@iApLdCnb%qSRpBKdt^QWOZA|pP?g~RlItk zcNky$-Hc>Mo}{R9wGqhiM^DduEV3FoE2hUIDSUj-j<;0%D>hTwlh)%jLM1n{pa8*O zF+?(sdBc~4XB{?+^;LG$)6TjA(3vzh7xY$UVEFDz^6`evD(xUzwh~3UnnRiT0of#de zaP57y0J!fjy6W^LleFjWCxOZ6h|K{TEIZmf8~osFj>|j=$E6F@`HyyIRocNdZ@a_0 zTklxqYBLBgA8{3?Fl)oM#`3Y-qsL>(+Ic#jvLWYg1B zXS$~Ja>1{es6aGV3SAW2KWrDP+%R>`DU;B#w$9JIoP=IBH*D*CQH=BsTZo8c%f74X zeyzT$JEL~Ae`#dyFIhPfP(#Y~Chu+?=ld1cH@Zqc#zLR*u#OZwZ8Igeh%o2V_8Q{Flff?s>4@4 z5li9TFcC>%k6SrK{$2t3IHf*OsS(++u$u{2ImTFKRVSHP0QMYGo%}BurjKO^E!W=j z)PzI;HYC+dy=uKgCQ7)6zWl_nARdCRlqmj){lm2>Ly3fxobi;HtZ$Gi2qO@~5Fejq zG(K{8J7R|oKOuoQ{`EJ}c@^e=$BPL!yAp!>BST#|ka(q!d14-X#(r#H^rNTME}uu% zGIB0fhE{SUc9n7e7ay8M;W`O5M^usk)I%pyEn0@Mm8=YqDDoo&!*wp`-kvxxMfH3p zl{iSPaF+O|x?K$xV;|VxcDF5snJz@RlBJp@XOG%AAM})v2i@8qvDePwNCl5EjZXBX zM4kTe>e_-+As{l*7F(#c_9%5h52)R?MeM9v{`^!uqZ-V^02Dy73hOyO$4}Ie>YD#G z*Ues(cyqeyUmwM0CO32Xvt0L&=|_u3mUvsaMDSDGzHNyy)4BeL3HdcB;@!JfJN;wE zmcLpJbV^3YiP4PmL7RC;%^+gF$y>a1Pn04 zL4X0f7Qem8LDXac^hEdBJgxxRj`k$&5X2A9MK_aMV1`q&y`%PqaB1trDs5ir#rB+_ zYAEj=kkO)m5bGXs_wkyW^?ja8AUMTvAY%p@w@+J@#J79QoYsG-07Co{a>VAEj1^Nf z1<+ZHt=$x#RD6BZpW$8_S&PNq&%2^iC^j!9;p?7})p)T~C_-FLGRfIbwpyNd~Y&^66mF_7l`NXG1ofOk;W_65=$UoK#1 zR2P>k;u1;QPx0SB^v17#E%bI~>A2V1aHPVKtEQ zMoyO4>Tc*e0Gz2Y3Ai>N^*m+KPr=@SK5`WKcUV zg}kWPmpeCEYWhF=DEcYr4S%~x&chGOGD}FG$+<1!xDi6mcT1*omM%~`7|PB+ihvT; z+Iq>2pxnR7zp#L_?3xi0T;S%rnbn^}%odxX%2z+Ao0P}zlwFfo?l&-}_aW?NaUWz-H81cp&YPPMH&E)!(`LoVgER-`)%nL0rF`PGP4?pMo-YPxPrrX+i@UA8_YF|p zd=~_4X90A~KQo`9W%^3>-#_n-xun-M7^IKx?l$EpgIPm52>lX;?lQ$6T6dJ{9;tCE zvT-eji-hbgs?3)?C$?Q@aHAUtcVFzp2I7n4}8_76_yy_ zNP9rfaP;*Vf6Yf0id&z^pKHBm>Ts6QPS=qZVKA5*zV`_hQ!LLivdId9E7}oBKIrq_4FzcpM!K zz%iL_;Alpn|C7`AfvT=IFx5KI@bKVK5fN+qA`+)fwoCd>AY1h2rU4N(Xb}=_%J9B+ zz90!VyLJrAeCp4v)f>l~%}FZu?DG!Xun-y-MfV%wT6hN00f+SZ?^XsA*h&T z_ed=QOD)^!eaU23kjt2iUV1=HUY%Jjsqq!n4eOw5{K?<%SU)$pal=_ic1}ZWfCASn zEvu!WN)1?u=e=G(5U-u$b43l>PftdpQ#0QfY_@kd=|fakXx7v6`vk+wPryruYFVF( z#P%XPe{3EN_FzMp&nk^SKK?tm$A5gST^q&B3K=Fd>Fm$a(<T)$-(EXae=uqhnIm|MC0H^DK`1%1{t?b~}6>$Gc=y0zjQr73xw@$kO( zsRBTL@yAnQN4F@((YXmf@)mNDvUS{%z%0{!>*mqoVDD5D;=KE8sXw6F1$8n~aFS|{ zB&`Q^Z`Bcgg9|SH-8BU|=Mq+Y=^j@48=c`ZP)}T*jMUo5um54}ITvcffA;y=GHK(S z=f!#N;N_@cJ+lU(L5nq;vBwj3fdhgM#IfGrS=ZFMR)OPBtRy+h=g`tnC!N=-qh#izdMI zz}93<3ybM%)#nACrspR;$ijUT%@62K{nEOGR>&6a95;q$HWsXHYrJ7Cu6$b?-R-@) zc)r5%`JHG}kM~xh0aR6|<`+X|fM|=tc_!bqkwgCWa$0aq|Lq}%K=j$ZsJG+Apg zasb$SD|zmQuPBqy2iriSGYd{9!Kj;d%@n@9g{nv8cby3{;YfX~4-b=@YZ0gO%2t)L zhTGsLLQ7JN`{)eR|MtFqUcq{gLiUB{Cs63wu27$zRb>hh<`1)lH(`4R?~|t z=7qT)l+P`@DaZC>A(i z^FNdxx7pxxA7e*6SiCqlKle9H1<`e7{(7m6PP^UvB`)Rce8#z|a6769^)w$c23cuZ z;bHJB>k^AHb_=yeCkYIVIN8~tQP|GMQOeo>xYyyYZ|=rI{E7F`^8wQ5v!m~dsNU^R zyhBiEiIXiI$&!T#@=nOl@A-a7%k=3$1i3H0p#EU%8ws%PGb9dZNUYL8-bq7g3xMIxF=xU{DPY6kuRLg zUN>5P{&ZG_6(WOlos$+85DaI?4wTEguz0oiL?agQgN0&d^)AO8O@`eQo&-iN24QHV z2A?vS>_fJ8HEP9_#aykB4jMJTcp5H!e8@-#pZOk4Vvc^=@qF|gxr0h=d-af%m!fR~ zRbtmyGSUtlzv`{hz9=f>!I&(~_-t?xwyLnzE~fyR>%3$u2MHMh!svYC@c;|d-jz<+ z4g;qz-Sj3!`2y!jbua3uv3nkUlg+K)P<)8Rx8k6TnNz%W0brhkUmcXP=kw^5$wAsT z-iQ?`zdcm>n+~pA?~PqZ3;6MpOAV8G#iRKV$IZ44zy=qBzn|i*;g^xJJYn8J@^)D+ z;E)5Ts`D@)nc;a3f)@GUI!C|{M7J&PJtrBP)RY}$*1)Y3U%7p zgUL!qbe34fO&XW#B?j-g-MGu+E~h>2wg(XKYh17)uK>MEH!hmgR2U@pGJl&ZxhVs$FUmE{U-R7y#3uKZCyN;{{Ob{oEwHb#{B&8#zTxsbMC1rW2mq1Eepw`};hKYQ${+_x9YW)c- zSqv$&xY@l_MIFQe1+XKj?gF6NMy|Vb;>mx}g3fgG-0s~!7bCO3Cv2h{FSeIY9?@y= zaq!lYPS<%Qe)*1k=)8L_uK!!Kj%=h>9X};V_MMJ(d{NY6F!US3Ctk!4qjp>~T>tgSA0LQ7Ov>vT!^v&cr!M=*otZjVNjQf7CToKZF(>nC!q+e3~)F^hf z=6QOHJbZG*>|}eZa@=xo{fU!7d{v*qT1|UlFVi6JE5b%?(#Dh<=0`d4bYEmDodBNA z$UKcVhL(hyj`ncS?dN^ZOy4~Ma|Epa++WJZAl*i1k|!(=zOU3AY6!>uu=-X@#UQu* zn$SEbgyD2en`}5CxONIogWWC}S>bi_m|NrR0)JEZo>{zOOQ1LUk^wJPN^}aF8L1ud z^QtgxxoQ<#>$f|nmXJ;>iS-QbTF}p@Yz#bk>y6wlj+xtSik%3}T0PotLM39u4@r?F zuz|9Aw!CuzovJ_T5ZK`KwvK`61n3{GwtN!q~Y0YTsyG0lk ztwHrB{C9a}hjZby?9MXkXiwu}u6NHF<-2n4_uFOec8~MiVem$c_8VNXuOP80PkpAM zNH^855XK67Eu`>SD3kL~u5+~UI3r04{j^Wt$^CV4oJ9DL)HzX`3XI}Ewk_=VX%DbWBFTYp^TV~N&y z@>$Gv3*pWh%*g1Z@#{H_D}R!_YeW>E*rfqoxgAA5`Ti%6)!#X3(nxaa!1ddHu8-6* zJ^_U77wKkupP6f%q`I0+^()&%&JnBwrLcaJrec=Sa*OX^gX%cb+5=Az>@?DNM+)sl zdCXz@q{5FQpc&e!Dd~uWUZOXGS+P6ZAHw))1yoqH8g48v)D0zgJTlKhP$djU~l5q;q! z)R$;gS-LHE!nvp7#fwodG2Us4Z`JD-eXUBmSF73AeGfmDRM`5?9Yz(W7R|QOYVQ3)xm&AHN*k#AVX#X*apm+`9&E%T zb7)@F!w4V#EU(VNJdYZ0aw2xzX5=Sf3|3ec&X4||vYwme4(!kixl;-&(=4?(HtIbL zV`U2hHQ^r)$Mo9;{_{wdz9Y!|#;rWOIBC3at!&^^;s#&aYv(E~SB7%@{!~Osq?qHs zF3b&Q+@)8l<5vOLHH3y$4_s-d(IgzsAVbXmZr^irMj7dWBTa=tp!z<%$L8#k|20I>QwB!(d(3rF0DF6)zSlWSQMo^ci|VI=e2!Inkw^beJ6WuM++oodgve|Eb7 zAp_m}Q8j}HfO~trn2Q7;T}aPnyk9otiWD7c2mDYYhh&T3dpL%QGJV|x-ukB6a_7it z7_MTyZU}rGo{`zL$6SRwMz3^seR!<0<~OOK@|2E?0P;-q-xUea;FlupxE|eERiSfD z@l}_&P^R~u@pABX-Qm3PsoNnFKgIW;bKx1cAn%VnsyC)5^49A$ht~KwUq6W#lJ(2N zoAP5_%SXXywudKjy*S(VnF**fZ9?sh#I0FW(R9IvZ>5w+X4mFu73<_9QiJo)b1XOu zV>sMP79oN#ZgZKxwcnws6`!E+-dr&k6g^@TyNd`5B0s={_$WfE+`T%G+QgO2HNu#< zNZD8hEqxtC2iR>v_!*e&EurVKf5tY(ne8p;z-9%~@}+&>DZ54*6X&VSnz&m3)Nq}Y z)|-#@Sl>@}Bvew1Z^lChZs|(Q+s9Bb>}__14TQ8MLch1r%;dl6_yYbs8^k9fwDu(B zHLW?+DP=Fjp>sCM5l#lZW9~bknO6`GFvnd7?HTkt?~wckX8(Y1*gUF3f^jtDV!rby z!~Xd^3u))Ju~*>6guN8uluqQBrIV!3GuLwCn5gpL5drhHbVnIrGT)d_piW6MVYEuD zmiLfhvr7|X?!Cs|SfZI^JxeW3hHoH}kQJWb=U6#My&aOxAY89yX~!pz(#B-28QKn? zVXjRS92g2#Z?xvY1$7a4M@qVeu2 zbcGw0mew4M46FUaZ>M~bdeV@gtN*Cs;JNy4%R|WMlkG_tw1@Hbl*~g$t85#N`_F9# zW!$kUh-z}%jLavdc7ep{;p}itTlycF)qWWYl{-cbF~fBWz3qeA4HWScer^w5+N;`& zgae0r6=c@NAJr>(Pq*VYduVc)UI*HwLDp-u@9>3*XHZQXPxP+B77soni}zoNXD{?d zkCt{0^Y`L%Ow?PdHFs?NMTK~D|8+V3MvPOCWS^Jg^iOv*E}BG0jV4izF`gzjnh{L} z6I>B1^ihlu;cRqj_#CEYWWC#vqr7*I@<{?fWbFwsoqvJvgZ!EX z%2hW^o=mpoUIMTaAm7hiB@xdwAFNON?J4*C&qvR%d?&}~IX#r3TAi`lhRd zV;CHfQIl>^O{r5BTcx@S|+a@`7 zJ?!bQir8I{3H&c+Grbx(0-4sUe-N)z$`94^2EaOvqur!yO z&xrxKx}Z1Ayho^#-giy=cMjXj3+%Ogytn;Ry%$NfoQ@IN@&+A`_f~JQ1-qcmMl|7b z-JNUM%w_|o>-M`A5=|^cFW%xrC1gZ9mxkuq^9Mj;aG*adt_sjth8L+K}Vi*1J%u4FGF7K*G9`6QXG}griQA=!mB_C$~F}q%!1jlm)2$apFbW&?v$wORq${L!Yh30x1^%X z2#a+dy<3S!Z`7qu9Lub;G?VJI!Dn6d2YY$W_s~rSW+&&(a#CP9;$5tbjoW_je$+RS z6ziLuOXGd+ro3{6C+?kIt{z=re@V-RsUng=s{(}hI9zBY)z)mZaC#nP+8x(fkbj7E z42YmyLGA>sCYsxT;O5HziklUwSc81Z|O>B-%jMK%7W*|nCzRTn2(?&&rs#NO%q z0!6d%b8-4Ac1e3(ibeT_%nNhazUJVlZ;ryDTPF0}_qN0DNVOU~9H}KxGYn*u)?2Ar zG2iur8b1NxQ@W$Al&vABM^*%E74|I%dKzb3*fj7kQ_aibNh}1a)F~c%?o?x)R5+2S zJT5uCD&94a$mBvdX;jY!^HS6R5qpq3#B`C#;W}Zxn{F90F7;>TgwG%c!Ma(B%ZN7w zpC`sPwf(r9PnsNNzFYWj2!mHB;_F1767-zCz`M(H zgTou?5yqhX(!g;pbowYxr9f7*h25!lpuP*$srMzr7O{oQUjR5AgeIA}?F1ZU8F!$W zKbB|+)YcQuX|`LE%-taSy_Hm_{>%h7o_#56A%>BYnSQ;k$D^njugO2ig9qG%?xmcT z_&vwjqBet?l=IPFdW)w01Iz)0dcrgvN~l|QBj0&!$!Y*lRO)ql+1{x(~C?E zKI0cZjzDnwBbhcA3Q`hOC>8+F-Tp>oV&SwWO|k6SXg+G2)GbjeeQq&of0rl^Z)6hL zy<-k-;}K4WN<@+Xb4WW&tWQE%)gqnw(#Jr`-zs3vuRPj&m(_W+CHg3LDce|F21*m` z+668>cym*S0nE?;m^66G%h%@RGSPiW{MNt%VU2x%A7Bz?)%n52_m#mO*_t|#*mpTe z9>>CIExp#~+7}ERR@-ZcgSK40JJ=dZ<8-s|hzTU*ma1 z_t7~p9CT(J%G?Dk>sf{qCe4v|&+eREgO?OHJ>Qz@5D+#`nj*CaKIGF4BEK&;vUuzf z-C0(?p#8#Gw^Z+(F3Acmd3Vc{FKaYuz`t%yW%0yQCHJCceL5X!S!j+X7BvDk$F=KT z{61o0sR=zRe00+_kHrh9G@X1n`FsEM6x-=6OxnlSB9(2ooi`)s5`1{x+FZ-+Wy0L` zl-4qpIxN+B8sB<(Ho8pYFJ7&OtX$0x^-Nnp+M`WE3oHsM)hmJFQ)?LvB#R2osq>S~ zB`ui+6T;$P!nM>Zpw!KAH@?vd4>fDu5NXYHx1PQO0X<_{ryUrwHobDX!)EjbNX8}z zxsY)(z`_40q-;6^xwF|TjLm9ncbaP6n7*;V%WHS|`Io}82kQg-CUODTWhGJ?UTmPi z&3XvCUmOz>gzGX5lGg|GQeCRhm)qk##htEDKYhB>pN%*PfO8?6Eu(5gn|i$yGSWAD zq`h;!;XXWZ{oUqhXMa7jCdkDW$hkQe7kl}8@z$%V)WX`Y!%QBdQ?7Z)?d3_MY3#l) zrU^xZ|7C=E6v-A)zEmc1YuU^PxAa=Ag0cR>4K^KyzA%04)qiN-(9HM#FnoT$h%dvF z#Z*?zFxrOVi6XW<$)(6tc58hP_%o!aZzeOA+)3yjNkz@uYPd*m-b* zJ(cBNLJRDRlYE{8=K-|(e;KWZqDLW(R!mF({FEBw% z_A0_p(q2lVUMTwKIN=qllTs%^96WX}M@98b7q+W6;Dkfu&ilt~J&>Kc?OYXqB(|W; z>$5En3GY?#2d);a`A05X?hR7oJVUa3wHRP5QB+>s@}y7Wt=x+~XT%|M`#UH7Z^Pcg zsMW9A9i75lorW|aXGm}Ln=yrT>l1ne2L->6qOs~9#R3vwSW)+1gOXO1bW>3q`FMfR zow25AM|hm*CFFxg<0fUj{lCnnTqYe+KPPQ>v>v9vV}pg&FLAUS&J zx|B344M~EYZ`;*cwl&nSLR@K1)$_bIdS*lCX_{KI6BYwpD6GL%h7{Ce3hD}Aso=d2 zX9cTWJ}GB9aiYv}rSokRFY}@tskO{9|El@Ye>gQlVDWpn_XiF7j5g^;kb3jrUiQz@ ztGTfub-^6o%}U!+4n@{w2|fjfop?6CaXar71wsyT;QeJMd!B$h`t@r1!$v@$+?=e` z8)&DRi1e2X_r|zupF;2`Z;1)B`ynsYuiIC>2_K%=EV|gy-@Xa~=drwx{uFhH_7a@v zLVjIu4LQjz(MOU>jkfxe2AYD2_+4dE7qC?pck+!5(Eifkp#H0%@$e+-yNg-d?K4+M zYryUty4+7{3AL2{A&`$VeeJq|9_*WWzk|r}1INXQq<%FcqIEqTOA3;IfJWV04sf$a zWMn<5CAhdBCnO=~xt`I5WLl9aA6I2(EO__Kim$dr-#l|sl!4QKJTzse;DiJE?Lu*@ z;u0wq0G^~ZeHQcI%$;VUYlhPa>nU9cyISIYW4=PYWyoz0b12^W7bT&&_MD?26N@jO z5XBJ`jv|o1(L3S$MGs0A?hg#jB}Qhmxzj3-dI$rz&(9VINqrFb=dF$3FBoOdfnHth z+wHczcU!^_$9tX7_+@3yMw{bLewZit@~p2r?Y?JK^{6Pp@(=7=D-Ffm$g^>x&@!X< z_#B{6ZL}v+bDMBBpNtzV|BRe7-3j3Vymcrdc3xo*i@bgI+u78=22m$|4J2p+@p>e- z;x}Qqk^^EdDs9|zUX=+}ekRKCufe!ZJZZ$;V3sl5d7eW~mJlYW{N`FF)n7~FEq_7z zkH{A%GwtqC(qz*3v}FdlcSe;9@i_Y$5QXTz2_5Y63XOw5la)78(x4G8r#m_4G*5OC zha@<3!=RnU$K2s!YYefPC$A~yMW#Opa4!A?zQ*02d5|0brv)`OwAN6+uBLQd4+#9k zy!T>hmTJs>;H!R1LojtlbItE&a@?gPx^O6bek=PjgYWEnPLuv??^O>zHocH&;}eO> zknc#j%Thm#aBt@Wow@BXxd>ow`Ko`>m7m(|qpeTrEJ$-r_S=oo7UX8s)ET~JEp#j* zp8Cg0eX8h7UsUn3=ew38-$%J4nLZHs&>U#f2R3tiUwE|bDvH^SgdF04z?)LifU^;~ z?JMeHgINoRbcwz~ncL;&y7xt{0@f=Klh!AYYRxLFg5aA^DC@@DX51I-JMn3r8Flh8 z_=Zq?i_6WUOCvZwZHO`N#2bsGSh*aLu$!25p)*Gr92#;MBDef4P+gMlxs)Fb@9zO# zR@Q)dd-Du8Y2;R|fU$+c+@uz7mGT~|p<3x!!Oq;p^u>vJOQ%~KpMw-H$^c9F&2xV{ z?t}BcMhdrV^fk*qz!oEOj*BAA3*M`ci!7Bxga*p0ANI?AUu?(@)i%qwdHG@$43V%E@B={TAh0nXROT5|+|FHY&CUbXpdyIer!ufK?^ zOb8P6O!u5f`7@W$3uNZ4oPOis9pX*)=F-uz<6?4NJk>;9C3KZsVLEowF{RY`$61tm z*%>#quy&c(dpz0AGKIC$80zNTa(89O^CqKcZ{`b{%+xz;*y1QtK^9K#(bGR5c3u(s zu7{Fg^)71wu}{yuE*;kI>YeKS^^)XnkNw>3)K$XF4kMv;(uJ>`hhYNigdDcHzt@{! zFZbYEiqf|ySWt29lZk1ZtAyc(KH5`i>KJncxN#Jm(CNkp_~q)DuXuPl?S{ zFT>4~urx^5wC@h=C(4j%qBAs@ruvh<5$dbYZVik7#EHP(ue-NcqJe%|VqmfrUv$FK zc{oSHSADrghD$&;>P&C9APvYaW}}ri)`>)@bch*uu07MBFz8oKzP`VWpqR6=_ptJ@I$$JP~;2w{FhU z%Q@*iyq;u{`4+TTVeTclx|!ZN{g$>pFqIE^;z_d(diE+nv-J={W)%Q%iQ5 zW2X3qeV*`Ii0|C69{Uw{=!7r48L-=ns69W=4wRoAk6JLSZZlPd-Kk1(5aF~KYpbY& z{nZb?MzluLNy&OYD+k1HIhw!5;_g)u)b!9-wZs>UPtJFd=0!`?=}@4c0M}-j|J#lE z^jh!S-^A0Xd(J0X(*t#RYNnr~TMEuA5oB>2HV9ek&7QJ4wwIIY#TQ@7rh)_PiHs#| zPRTBq6$``UWz*wE3my;bi^t5e=LRQXUIG(E60)kLqg;9P5BD=1eMf6ibu0EX#^aq~ z$gScS^f{>Z1VoJLcD}I_FvWD9{T^G{;qn7C=GzNw>m`2PXQT z$l!CKS&o3@;-!t%d*|UE(a@W_4rIIbzpKbIFB6?~ctKY>vdF(+a>yAKe42@K8cH(U z_N$~NOg=Xis`XIA2EKgwY_(urNDsQL@)-`XsuER4iM3LW8vCn#Yu zD1Q?84Htd+NNZ z9CS67>K}9yC-R#*BK7kfkLXbYAg}XRqb&iE-TIVuS7VWZ@m<4PU99$dPIBM#gi%ln}vrrhm8+UBNCvf;nQ>^3oGXLVeT7J}ddrt}r zU#R+Wk*jPg^sRd@!SHl`s-``OSaDPM%UlbnIDu_${-=-?6ZHF1(!ShHp+zuplbP@p zk|>xqWFx9@YT2qKVc#J2aAfGoL%tZ*^)y0IR5J3kkTd5b-RqKxTIH5mql@-Q8l?1| z39z3ceiwvCKIYg#7}5nMErqg}^}){YRRw9ZtqkZdUlqnLvu)P=M9)MKc~H_}5msSi zPCq`EY49gWFjFA6rt{`y`(k}ApAUgnT1WT1k{Grhd*SBt1k=cl-mK6;xLyq~nQUB7gc#MRi!fNmRa^KEDAoB8uNVMz$YUq`xs`j?Cf-sjat zfUWwX$)13-(EYaUX+Qlj0~i@5{%i>AU4$l9`ZsOByFWE?oPk`MFXz-^>J~!YrMHlb z?H&@c&;b`D?uURQ+yqN`#=yXSxxyy-VO;B5^IB8n;t{i#Y|18jPoLw}nBz&(^X|j& z(HYNFq))S5i3eR5BonLqT9fc1U~zr{PRNnEIKh@XF5pKry_TPdyWb8tTd~@%KF_IY z{8E&Pom?K&hPb>%(4}m2<8*-qZEp658HT+(S0%n+`~Q?t906?g-fU|$0@vxURix>y zCai*7hpg##IA_$K{cb#WIV+?As<#C-i}z~lJ#(i|VYH>`P<=aG|5VPPF+f+AFy&FJ zZ|-0AmBSTn`fzVv4;BXlhxQfu_#lZ^?qLW$IlP?Mm#$ zX_-j;*5Hy3Ww$EaJ160c!Sd#2BO_7XJP{{H*0YRw10`0BPC2;L>Gmgi#1PrWIhV$| z#IL4!*H!2rd_9Rf9UVOO8bJK0Zu?TvkLrWNGno?cl&YUOLjZ89Iq z9JX#7wJ1cX3_ssWe7fF*4L$E%XLm;OXqI^Z)KYqub_%>_d?9YC@CZw% zUrzJz3MlWTxq)nQ157VMo)jYmS1Pb&r&`e@R1opfLvW(7ddj_h{>FlPVLR|#<9KcE zXt2#+Eqm*3!7J5oDPEn@2|Pay?esvuVW=+wVPunaXbBAfHAEfM*6(Njj{;EFG z38&%4_r4ARu}{OW!OkDBfds(!L%#uR4|~aCe#I?H=6!bF;aV zx6xdGpXvD}TH4RRFG|FOG*F{dlVz%czGT5=HIV%(vTF}!D29eYkiF&;Xq{;72lM76 zwxk_-r6hPOKQTKc8EB2vxruf;G~dXO!aGd6D*xhq>mYN!t2?7RI<+bclH;~!*_IWb zkdur)REs35J18D2n=0jqmk1CPK9D`i^<;u4;Oi3_M8kh9F&Ea4(}NVc(ayfwa=%@0 zj);J{sl%R`I3=B;1;p8}=*!)cg=x^(yZ`0|z&ZFP)g(>Hhp7@1%rWeuSX;kFD!`Y_ z%L$)WCCYnrI$oDJxCD6i7oADwd+kkVy$OlR@wMJvirOg?1||w`KSLN7ahkdbMwl5i zxD4TF*uG@QuGG)2Ke;0GTFgS~U{mRa+%uf+EliC4wNEYMlZC7a+tQ6C@~hmhP9{CH zb~1rYKjbULIUg)S@18M$21$zv1=k^)6L*D>yIq0p6uO`1c*-%_;PdjJ93jAh#mVM? z8w+}4fb$+(f>zGa<)f zE5sg=#4|P7Q9=B49k>NQPl@%{ChY+(m7mp^mfNY#p0q#~JYV71lexW9YwXPTnT)_B zR~Ldb&rR!__~^Mhrot|Fl*^p(*ra3Y5pYeuSj&A@sk3t5SB*ch|2*zSWtHlQ3MvR| zf!JQtGBkFoEs;Aero4ZgJ$Ekseras&;i{ z(2ZDY%!$yDeH58-BLRFcc7+e+@0?+fWmOgndAyVEciiy4gDMj3yOL`~xx#;w1WEl5 zs@^-A?f(D&Z)q=8Em|!#V-&TE+9PdMRTWjWSJf_R3lgKXYBcsmzOP=_=lwh9cXE!uoP!*Byq=HyxIMR4B~Ofck&d%6zg`U~s0r2oXx!ZWwDr-v z%!>IijxZ#ZdZe(_8z@kdU8<+YQ&T(pex+0NcY&He3{lRT>lnO(tka-B$ka4}vKlT$ zH+FS1*IS(9R7+PFw13^7o{>ePe8+<y`O9fsjNLOl8R_U zW#Ec)V{&YyKXMC{_snkYs|YGAw)!yynJocPBj+SaTm5+HrTE`_e67-ai-n_#=N@_$ zI$2|z;=9WJSL`*xA#@1V!g!TB`y}F6pIswV#b~ysx00)f#*-DcO?mfZ{cG*~R+M_3 ze6cCMy0BT;fZEYGiB40Ya=C6)fmm5;bJBb}b1Ek520VIFYMvU zHjs7jwy1eR(w_w6p@-(07sH>^&TPeGaMmL;LKxQ7i$0KveNVO397K?*!ajnX1t|a) z0iGWG7Jq`o$43U9a~FhwUg#4K&n7t0^+Fht!rHIXK=$e6T9ve7hEKazUns*eckYXy z6dAB0$l@uOTfh@~jbXCrFul3<*{jxJ(ccCtUnqM*aHf5RELF$lzAmFDa35sEq-bQ) z=tn4YqkZF-EW_TkhsbpO3OqZxV2jgYP3&yJdf{&VNRpZFnylwmg6z&{&oRozsdfjB zd^<5+bL^biRg+TY+uk{*o2J&gqSXymuB_poZ4rpPcORjArih6zBT5?afZiaMjR~_^3zZRSa$UH8Gw{F1#(qXUAaZGZKR;cO zy}J9j5y43%uvOB!7Pa?%N$-apr@>0L#W~GOh@dsYeh1B*NOoUi>yxs>`_lURE?M*S zi8RlAK%Nd~ncY3i7AjSd1K(tQ6e?Ek-1Sekyo@qNsV*%@*F!Hbq;{wrowmp156mGo5@)>dqu7_);Z(^MEqv}ZB& z&HLO@VvkA8^ik3+bO-gc#m?WjXlTJdW7Ovkf*HX5Z44z*zevohf#kF{Vmh#1a>3%R zyI>$o|3Kk>mb-cMxAq&qZW}7TVY-^n{y1}xSMzQK$D_9|63B-Sc!Xfi58|FYAb%F| zyS}ZhDrMJ>AsB|O;UFwsM!>ofXsE$`x#?N9I_s5V5uk2m3nk~yj`dI%MS*UtO{xl6 zJkZN&p`dbh(5NNSxS463j(t5+sodKd(D&L<9b6Ho3|?P`}N-61isVH`GX2OUK*4yhG;ovMwMn? zT;3peUKRJ$Rc`{@BV4ko-Wf`^lTt=$rZ~goktQU0(}3IVe0e%=h31C-CB;#Y5D%hu zfbAndvVCA6>ay<(BuYzvB{!AHRsIM+dm+6AExYi60a0s>*Sl1YM0%$q854JD-*1J1 zV5?zUPjlxD*yUsQYV1pkoTIOwPP`07rv;-|;K}O&)>||(1!fJs3>tz623I6W$XB=N z#rc{VF)&I|)JhNSrLf(tVKN)DGHqYHR2BG7r>9tfZCV97GlL%?VGhKLUU_gG%rZMQ zd~BvsJFM{ZSEW+_k(8A;p7aKo)?sq%`{b|e)b3E^n&4)oJks+#ic;_Gj^snP^OCFC z`Q@2`DL=4DBLY%DeQm5++fjB<^jocBtt)DQ?z%npd1OI@i68qpUQ#11{t=@&i!DaQ zjLC|9u}uS!*|m`YsB$Z>X8z-}t>)Bnlt zS~_~{FVE903g=?BrAjU7rPY>6uH6l0U|2toq20&=B3^3eONScZE{tK#%l>}h z8#7(&cg#O@`W5#zdpG*yuo8Cqwcm#y?o3o>m`!ZTd1xv5lv!OU`kwKqX3n#yCUCdD zLMCE&M~0*eLT~nHG!1=akrN%PXr!9mc~cw}I07FwxbyDh)^22dWqa;iwcIzQFwHteKh0@bl z8>GpJ#`)j}jcmRgSx%fOWzT*z@(j^Zw+U5gM*mFRwyH*2v-mq)yvFFyz~=!U0cUvE zTd(t%=aY1IL~9HMqDHZq)xY1X)OJc&83~Cv4ksGf#KPr1?oe;e2w6=y_`ZAFU9EYy z;C4CsSL%2YT00yUgY)A*H>sPNQ#SC8_T`aW#?vWYgu|WC#IXw23$hgdxP;y6EiaF}(mvGGLdp4{&!<(}$DWi-oes$iqtIu%*C z<+Sek=zSP|^P5F2kuLEl0pdfk=VM-5(mck>c)EEsDPF zzI)X)`_4>>&s!?AzB~*#eA}BWd>BrSBNFgRewi%2v!~I7eG^fK+(8^UPIgp7SmER- z9IGh%?EgD!%TXl*@@)qHRq!%f)l3`C5dj`y#F0gR_UlgoiHVWQ?g!Osc7n1ErVp}>#qRs-X7QfJ2hvcVk?r5QX}6_RzpA8^PHP$f#AV&dmI5n{-3c)U z@A1Ay0f#xQr1hO}kxL`0W|n1xr<5wJ>+1)|qiHIfRW1EZGtQg4kXON6!NfNl#>v-C z9m};h+^3m5y;Cf3GZ`89KWR+@+ju%Q^~$Y(b{cc2cTBWGUu%wi)j*V0@BQ4!jOpU< zs}#X4E!&x9!V2&LiZ2p8d97=gEl%^YD3T(ItDi0Wf9_ zMwpbUyQOEEFoF!TFpZQtiDM`89K9#M7^F+b!C!h;@%T?AD(sip=k6agMmw%=wdl*B z&$GDTni0YZ8G}e^vzKEqqh(N9z*-{?<{Kpb&gjQx;3Kk4L5*LWit&6U?*!IY% zz|lB0SE$JWi$9OTPR~^p4Q2-Yjd4Fz%K0tK#7%@tWPF*1Qnpe=f>Y1y?>e^UInG+| z{|yr1qpk;hpytvIb>0ZJ#>lNEqVd{4K>YT9EVCB8K}>IVv?HoEYMNT>6es^CbR2WM zPrjfp+JlizIQ!PuHjt5V!pA2|8doNdhWl$PDo|htUk5YeqvjkGF7~H@H!zjH1E1ZV z{u&|!+TY$pV5Vrck#o({;TEp+J8zYvua6ul9&0*UR2*L8WZ&_8WoncI7HV6gxcR0V zNXqjfKW@7KXC{@|^ZY*$^KCu*z3)Yey;Ir1CSK89i!+>QVeLs3f}q4x8Xa0YZ+{$= z&~>YwbJ26%a?CPc$SJa*{_^iM>Ob7pklEkfajM&+cqL~|xxu>rs>7nUJ;Ti?Phi6> zd1Gn5iayAqQhvh_3J&%Hj%vU|>_|Yl`^Ch#X<(5JRLBUi!`#Aagii8Ah6!>vQuT zxNs)?=DiFsfml~-Il$LW-$qA?0Fzlb{weVXFNb^{*eaH$c=NtlL%53mo+=YX za^mIvCmh(0ydRgDx5?rtsK2@DM9be`XG@f-OAKA6pFa4+@Mv}Gv*F4c;Q$J+_Tbv9 zeT$r7q08}?moFD@KR69)Xj=>iA6y#iT)KQwW-Mmw5MOyv7YRD5EqZbGEC}enO_Dj- znGV1A&TBP^rW$aNC0sYL@?4IUrw^)FY{ZcC%H2j1Iz*h+gjD-8OMf7cns$Pctx80_vH@Vcbd|SMnJz~uX^78mPwg5a*KD>&aAh+YrIKpU}J2c zr>@YcNuuw1ln{T1YR6uG#vs`WFmV&Ab{u5 z66Y#qZu%1GAj+TH>dXi_C^6?}a`KARCEiS+X^+R>z2l1(rD0vOD}8Y_pfnu27&+Fs zeAcx;5R72(R-P?whU4y42{JDEcHMH_R_V9Zu5q;Ike%od_6wnF;wTwg3VK`Z7n;$z z$y}X-Ak8<{X*BM!OQtNLA@e&!4U1zx1f9ru?$=DW*q)2zfUA5SQXU^>i3=87*%j@= zNMq+ALMvu+qXuCHDFr7ad7DkEy{Y`T9O=jkZV!5dNoc!cewqh?&lU46r`f;Ym}uak zm07KYnoiKA)(Ebu7R0ZoIgOj#Y*$qt$Vn^_IbBKZ)@T~VJUU80Uyak8PcrjQKrzHJ zAMh@qI{qC<>q2#yy;e!zVSkV7N5@Fuw%_A*)uv1^GP48NhNb=+OEC<~@~+5?lRD&u zdlVEyq?yaj^36o~Ck|;u#+f;m&x}3zSgHeV%^>hFmu&R=gp@NI@V2TYvlCn=Wn+wY zqwo{uUjV`N=`ef|fiP4VW_4-L-z(?Md{xlA)X?fdi~@6pA$MYH-%(UF3r~4>!>QUT zHJ&V0$^b#M{$XbSS<-{1*5VH3DJ|7kPaP|fsI8BJo;_Sgj<}XU6}+H`>x5pV55li1 zMKsQFN14Sxyvjy^4ywycr30l1{B=z~O$UlYNTx!f(j`})LWTorxIYx_M4h&OQi-1S zb2?Tb%Mf?3dmTq>bFpXQ2?1{9{;2GyKq(-wL+qI1Wf8yYjVYTJE^U50K5rUmJ?jYQ zkH8*VW+pIuG1Z`3VNeZGR{Zh4_Wfl!;bmCL)v2LzB(?|cAKs$($X>wV%@1Fj8L>am zBg}=n-h#9JGGadkMCVJqxsa~=)T>m&D668x_h(|UcFla14v0|^TzGt;j0(<=Va*Am z7K%s8N{&;^h`!;1gRQ>6Q@Zd7#yBy9dO&=5X!+owJsXGDjA!eI*7oHPpVt z>j<`rqY~vHx?(Bf7JE0!4(pVLWe1BZ#;)_R-D=$VkVv?08CQ4SLNWi%P57m2MP}$f z)$K9DFwM%9%6;OmQNN$P_b3(661|0LF(;M-asw^L#%AZ)w>AFMn#y&jN_|D`%A)w>mj&%y6XwQGl1O==b7ez{uQ|G(n=H?+_qgs`-8EJYZWC9&(1s1IV;uQ~r+UPCXAtk=?tsfkJg(J(Cgm1|w( zE#XG>i`hA=;fYlTfTf+s!nVw1oN%k)l~}gWjfeL1c>(cHpYTzdb#bfM**+9LeH+xx z&cYb_8sA_WyAp95Hg@)@Fv~sma+ezLMW|4tmx221vC0GXn{0Tp{n`Qn; z@R0g>TL_~hGH-S}Rg8$y>bxxdp49&TNAg#gz-@HiaoF+=`JlZ^8_QA6m|^O77OZ zXw>*DUb=7#6M{{mQ~xI9XkTj6{BHy;Z^z$fz{S&>Zg*@!R#dpvfkJ8yluL!!iQSmE zRN@gn=D`6f8;ZguQ#W$m8@iDr?C9eDF}ol>ONvxQ)bjF2cJX(cCz&|^0?I_tuzl*X zjyYi1$NfM{t6#I4yIA_HEM1dS)Kq4m0PK4+q75c@Zg`YV<?J9_&E`ykyFhBJLI zw~Rucv-pqn>^-tRw$M6C29i~+CQzZY4CdOCms97V#hROuuUG#br{1V=#~+vUk)l%b8Z#)@b%ItGwOeay+kr*>~-DGlZxV*GE*Gv7f(k=)~q0VIAuLO0`Cn z#W(Yfo1O!L&GC?`8F8ZRGSFS(Rxz7VtXddFZTSTrkEy*w+DrdK&R4p}M+Yi*6N3rz z_GFQtvtcs5{aimYvE>iNRGfocBcbR)sknotd5&ViWzSush@lqfqhlK*FD~p^S zZhF`%^6O=n3OV@dQ=QQEV6htMd?d; zU8kjMS&!r|^>JvhdC>Z^c)g|my3DUaefk|cdgU3zl-fb|2E{iyeA^spdPt5G83hN2 zDJ(C%vc0^67e51{wddSMEdF@~3Pzb#^S^^0Ift7)_HGmTaj9v)s1jEi>$TIGRcBzG z(uGkJEd+Bx{c4?R=|jH&mC0AUeg`cNZM(4)CSIq_&WO8vK%`&I4DpjoWH`yp-E;ZN zkEZ9m4!TBm%8(@ka%B{M)&EvK%P6bsQLu74vf5Yo*49%CkN0ljy2dmDUOrdwD8YS> z@I4hXj`kR;>%Ug0-ef>B5ZPEZH*>ArCSx=EY+lLdXG29L_%34&!k)kJBH(i1Fyusm z@ZxFaMjJb6l11u+dS+OQA>ze(wM~W8Hr^s?g+E7qrp6H>UUocJJ>Ul@bzqH(2G3al zasJBfS%sIR-?T4H-S{wLs zBq#9}v+FUehE9dw>t)1}e`K?e79dB<5VN75tUYDR)jns#?crIx$63%@Z&g@M6i!9ezfN!CX+%>x~mdOt8p5~)4HgL z-{%^+y;;-qu>@(_D3B5aOfm7#E1CutzkFC_9H3>sA7XHGi6?qpUDUUa<)IGDLKS&m zdz)|q30{6TWiH;Iz!wq(gM1rzmvGxvYRMTXHUBMyPi?M&&77zHvO)QIybuWx|3{{stV8U^%oKETgfRIzUxxi1x+#Q^KS##gvhp&+=^95jV z5md}5ep;~g-_u;wZv@_ZS`{>A)Uj~#bRw=Cuf$r^m4W`9WI6Jsd+}7e z>5(3UayRJW_ni-gMah4l^2DRcyKe6oGG*G5iti`ZXR{iu$|QCC$XkiJlUHlTC-(el z2;dA4x;N!&7DbouqpvHV%K@4)005`Ix3-0;lbeF&RR0T@bi0OyEk2*c zFW_K_BDz!_PZqln`(f#_;%RRTY%A25Aa{+A;zz_buk7dx`qNk%*3)H8Ll1TuLp)`V zO2p+?16TOCTOM4aee>jw-e!)fV)o|Se-ynJ$vZFO-``I+dnou#jJdY^W%RFQ1BEsY z^#^Q0tCYjtU33}u7shU@_&+A}(!Kr%%yf;zDroVbvZ13&*(CPJGA;X@zekzC5E9ErdoVp$YBOk_rtDTaco{7 z%--CDxbvt2THpJAPGqOOlP3`PSL+(s{~N*15Z|=S)_HX_DQ;f*zbwaA#~0u7S~}w5 zT7rS1=j}c}Z)$i3ZQZE9BRJ|}Tk*>I`;;|73*h!FHxyL~k7Bfuz1jg*Z(;GdvA53m zWllevZ}?0bJ~Eoo1heWs;{<^pH!rqO6my#{({;5AzIro#3=&f6P2bmLHgdX6 z(cQ0_B(n=Q@IoY^bs$yuMq*?KH((&#S- zWXU?-f`Rn_eqQ;j9B26*y_d#2yZmdJtLK%oMQOd_Qq1%}N*q>I7h-2hg(}rtOiJ@R z>eEnvK!`a!_n7h|*OcYaR&S*0yG4P<0IAZ-S4}>9tk-t7D8#S68myA6i0k4QB#~xL z2opADJ*>4J6i2)C-zQ#8k4ea9=8q2{>xl#xi1gBR6ix+%uE%^*t(f{@^;cpK23!8k zQ;1er>3UUNgdc)P_8I{sOT^W{`P-yqZ7Q5}KA_z!-BWF>O*p=xv@i_5Xm@N?IeB}m zm6X22nw;p4gzP4=tugK4rU6yzVE0{xK~C+X7sTlMy|$bp!t2qrGs>) zb{hw;I~~(z{wp=}&Grq<6O6>DLyO(hIZ|l#5hSwl!V9gB`Ozb=^Qi3Lusf>;+~3eT zTB?%Oau;ql{-dh1;JEewH;{JgdU5&6vu;KxGjqAJEyH0pXGiA2MwJ4z_2no-Gy}_T z?P2*HAo{-puu+OCV#{U`m1KRqMMXvBS$|Je@4SIKcD0~8WGK6$o^EpwFR4pw7j;0RVCDE!O7nNuU`x}XR z5G;F@o7faKv|eI*GL4->YO2$^-xjI_|#drd+*h`_nwnhWGo*wDI=wf?+K_yQ5w4KgO zz{s7xXPK|W^(YQzsXreLh*W-;IIKp*RR7U@y!M?Az8@TVBOqGdtF7?i7jyG}GHKb~ zB){&zO_6s6%qPGyR#3oK{e3;y;MZqVQM4?6#w?HR`gnsR-P^PjWwST;HiqHYYY)N)A|BmD zM_5g%!4y1(puZ=Rw64uLbljW+H2U;@YA#RFcoWr-8`7dr$_X7wZUZ^9mL*-3EB|FC zY+aVKcjulE?f1^y{@0~0`~KC~ZOysoqnZJ&@Vl9-ug~9PN_Z!B0XNB&5~<}6$siad z8s1eZp@*%FK1XE*MY~rVY%zdBzNY1fy?XxMCO|cAr?g>ia2+Dm7r3v65MwpogN~RT zatKYcus%1I?i50rZ^?VaR*22|GZM3jWR-bJs@45dz$jY6yJ5d*?HRV(GtkP)8WOiX z2)EQx&Ey&i#BW|!!Bfw@Pa24Cs=tgoC^XETr(pI;{Qjhp8GWbL>^-Fv&?5nIiZxY^ zF*Xz`R0Q*B;e0qRt6Lq?i|8?4^|g$)ykl=(JNH+h4|>IOhD1XdUJXHgo}Xd338|g; zhCH<>jYzOK_l29JL-)+;{)Qx;EK!k2Js`W$xVnV@Hn^$pS3Ks%K;!*d6p=30C&P<> z(QJcq!y?AeRso$T;f%P_9wWX*@!h9Sw0c^d=kCDKm8&7%gWFnD$@!)#)N;ZV7=i!h zPj&{-Bi;D%uQ+bv?0A$XQW&?qd#SUW@#4^t8Q~b}Xq-iC;Keq9p`}49=9><_Pi=xe zzz$Jz+m0fWUP+T59kWnhRy1SEU4chvu{}4STj_P)f+681!HM-b<<}jJvQWS=qUo=$ zG{YhA$9};8zdCc`4{iF{<)j8^;U&$JQUV{5>P9l8sge*y!iQ3D#1nFgGOn#5jUsWk?3`-Z15C zp_E>xT`mm(1;XxqIn0Uddh+zA_vu=0Rk}eCAm%U)sF7&fgH4-$$H7kDzfiR5<-M;d z|1;2bi5q~TieO_)@E_PIyeHu!CHy({AUl>-rkSC^w z9(`R=Im>XBUMh9PLdI`SL3r7GU&K0H?A~`qwNpL9b)htlrupOK&nIOf#Oa7bYPjC- z83aAmEd1Fe0~N983n~Bf-g2TQ@Ad~7(%Zj>pFM7_=Z*Fs8-$jk;L~TSWa;%!y-p{m zjibn;UR0uW35ouA*Ua1a7r+T9BJOUjr|ekmxFZZYNY0ZlBO9hH`Yz(Dlxq*`=s}nN zi|G@*_T0*aH-8^B1HoQBGq`D6RnNW^zz$Z)?bea_B1k>Q$8t18VReB606z@92Cj~>!&_6Rnu!^ekQSz4~kvUY|Wuj zXHkDDhoDrGQ>4V=c3s{z9HuEK<^y}%gPvb#hV$9roQu~PpWe8R-0?v~Q z&}z3bbgzeynOGOlIX2m{QUAlSJ+MQj|J7_@7tnHO$zg4Tk44I_XALbicwOYUFe6|4t=x zU@BFfOs6?DqfHMiTm!h+3uS6T8M3D;DPYLwh4WmC3BbSGupjx5dlUf;dS-(9SV7r7 z0SqV0W`D%l+nop@a2HyCwgobQH0|WQG4P>Q8L-3P2?Lw|T6p{zlTq2p5h+t~&$=`> zxXiQEkeXtt6}+~iyxq=i+$b=o^hpM2!@Gl(3C>vtw8a zRV(B3mtT!?9UAjJf!x-cswjs-i1`Q0o)tg78Y8avOaOAo zoP}o9pRGC1!Q}8Lrr#?{@~Co`BJcJ3jktfJ*H|ntt^1^q2c>(Ik4`9!crY=R9^ZaPYOhZN2cwm_@77CkP73|2r5B%9399Sf5{( zgV!8Z>;vlWf3Fc7{k}%yF8(m&qFQiU-Hq@>x`jsYMc?$NN00NQ?VR`R+3&PO{qhnm<7gS+sjoVCNqgIy6%I0{Qx!=E7IIc$L4)7x<7j58@J{`SVWfB6V1%A%?HhW zba|-#XxPD}&C{?%dF)M(??vVT29>n@&zOR>(y!+mCvbLN>esuf%*(a-h@9Xua^3! z-{SXTtk;w}ff$}7+diteH*zVZR+?A_zi`)(8nT?GKkcIkX=~!nMb^<@5MH(6A zPOrB>!pMC*$$&Ul4!ukgzsZB=Y7L2EOS62P+xXEz#wR?I6gYI?ac1Gy=G^#JzmYyZFYog9b7`y3--5|N$+O1YYA0FMfbrq3jr2WwBTMrzXP~E% zDAy_Hz3FpE=GURaHGb8101T7SOaTTUWxpQbJzHat`$DBfu*ID!PnWOm)mJ6@1=Ia- zuOZV!njZ!xL|pAWQL>JHH}PZ@gs5ypPGUmX^CY}^njQ+y`aw3nw48unAVzB_&bW^J z?DynayyROh81JI_=VEdrC9ROn@LaqEQ`3qlOPfy$H?^&9|}-J16LG4plT z9j@Akh_M^1jGMo$CYU-v!$#IftBi_`5L&Oz0dqn&vczV=6{%>N`aNU+%Nl+*>8_uR zynn7GB!oDfwqOfOTmE8Ov)0#?x0}HO&IIr6l#M1OL|DFTwl<%fPC68O4N~axvf9^T z6q=jq_fUtQ>%C*Vgw{vZ-RgBkh24P66qN*DQrDf6v4PS$fbcRCI}Ota9#S@d^8!@J zsOr&mW~WU!c=_9P=IAoIM8J4k9Nm@vhs~f2h`Y{(g8b9(=rHpF(4yy2XAQ&>=={|r z<4oD`{kbmD<+}e78Kg zMsW(8`)^{4TXRS3ubK}!s+fkmEBsBznjuSp#MU#tolgFFicEL+LYg~8oa(glC0M`|+YOy-8O1 z=hvo}l~kD6soC5wiSbnepx$f2ynZ7EET*xVd9Xgt`!w>GT?mhYXuw#lbXvowOEJ1^ z@~2wQGx49CK2^MK5h@j+4zzx9y+fs&UGpxdS@?xJ&P*l6+er zMMx~m=l~+<`*hbEHoMVqHpaz6@?MIzoX8OF)A%rowa)6;(nlPZzOK?G-RM6xI8{vP z*JI=`(h=NqYNuoeQfJAGLa(D%Xpa4s`)mlpoV>X_WoG}lDY|a3`Hls%MycMs#VS$`LM{yJ8# zz39vE@4NQ;_PfhA#b(8O>nTt+e`93CUzX?_t=ra)+(w!i_RWj4rEuEL)zkg~kqzGU zBsYMe)BxRG(A1saHC`^+P984Z7_R0^Jd*iyov z*OG^7-1xo4Np}4H^F~tUMG-h_(*G7N2->qi{<)|x%ZF$9nN!DibdqY&iiTow`&88u zfD&u7K|R?4Wb~%*iUw5M|Js(7@Y`=q>~<)Q6ogIgb7$F4`1N%GVCLC+0CYRoj5|vU z>$um5>E-D4Te{D*hh39(cLp#zX$$I$tS4E#yxfgUKnOnO-+&dTTZhQ6S1v$ndBPU} zklyuD6Ku#cyQ42=Cspd>i#pMe3}u}dcP#IFPH9?+2Ju)Og?fr=-hKBZ#4in}nx)Wp zB2lECXX09CM3*3v->$HgZB%y02VK4$)ukYJSQ5}}aEWb3|CkJ4-exo{YGuPo64+OWJEv&4%(9=sk zB||`}eIjflf+Z#q&EY}!)+@?2zX`Lj37!-(ehkJdw zxe95{hQM2D5$@E(C|^5mbW;0q>FS1CX%j94>Ulu5r+{G*Y*YMekdBu;>K9pI)96muR5(wEemsb<E`1i*i!+p6T$90r%0LCYvw$( z>gpL+CUff%aZl37Nq0%#ek-;90$rki^n|(i0t&7Rl=kX?&0%F$EwZm zo~GxMPdDGF38zSR0c4f-KI}vk7;D*8mpzN^F+Xm%*pNK(MbBQG6doy28G(=scYQH= zwar03v+j)O8pfWi?-py;=VnOZ@Fs!xN<1?s3Y*t1w0d`@e)Oqa0T6(i-KQeWX9duu zpL%1EIL8{qA6D;P5+9I%F7z+nP|WYjnK`*W(E0@k&|xNCJOOTF;jLGK%kT~U9Nq{N zU5`{Gu4?y`D_;PIfFm|jtFF6qBbAzJ*tBAr$o@K9{!<;!V`C^X_YRut)`Bjky(X#v zr>OlLWXYnvCXUzkp_5qd!I8Md$YfHfzLfB-g*%R4^Mi#s3@i!W! z?MwfYxbjY^3@uR@Rkrd8P>x~W>W_uTJq0RcANrX%#3;vRgiR49KlGi4de~OinWuYC ze{81q0LYyDLht1xD!rj#hIZI(5Npd>H?y4#D3wT(YSkF`gjs_f9{k&ySgX!mI4{f8OyUyUPGw50%+PMVdZXdl>;HC()9fzF$P{(_M6gg}y%hf%Uxv zT;`JKx_|i~J|qONfo)rHU>L`x%{ICKm6X+p*1u?H+Zf(UQLaGzj)ud^_0_@Xm1s>y z@bYqL)$q%sCn5>JEgZULeYufd`2izhmx8t6ukUIZzO=Z)|C@$gXeEwU_9;H^hR?xj z5Lb($Knx#@@l7{54Wq8&qgat1R&2EgJ2klfn(9g?7g3db%&2Oy@P@4I{VcIh+e)lm zdJVVRl@4^w_OHYbZ~3DM14~tokKZx@K>CzUG63Q6+60;?WhXZ}9Dy)b$$Go=>XHV1 zkcQkMqEx5Cwq2f{H%0I^g2ARyI={X5APw*1_oYE$PWI<}iCru3E> z9FC__a!*pYwY`Z^a_u1hVNR&GGwKheU*ZK%1Du> z_R*T6G9#@hOs^N2L5S848|xZLM?zT2Q;hoCk9+B&dj)tRQRN!SJ87CdDq za+`VKSE;a-9O$BpFct3}tb~JSu(p!&ljt^sqs|=a!8w<~?-i9Jl8xvLjUqP@)OwWE z4M@SAuZ|4fE1F2q4D>l{Q^|+b)tz7O)PRFHlR{E+Wuf>~vDYZ5B8E5GxIQ-dO%Q0i ziM!l{%v#K1^L5P{7Zav)pKAY5U}$dL9lE-kYzqmgIt#`A#ddzBH<=i+Z*?V5dQ{r6 zT!+hhrRIbP4TKx}b=FfCLFNPvj?y{V1w zr1s$R{8<7WL(J(g2Wz`9BrbJQ1%VC7Sh#kI*qA@IP`MB9YOmjEp_tp+xS=B^Wtq9% zUinYW?A=DDQD&0#h^b$ZLxz9BQtZNT6hsP3Jxm5v5LUhc_#sYY4ccm-_}w^&WA7}z z9PnKFAm-XYn^q=)>qT5v7ZuATzeR)7&g>XLKqw$~8a4c;VHxXG7CBv3W-@es`wy#~ z^S4TutXE_0F)(Z#DyZK=bf#ZVv5D!Qcn5k*+IX@%1>bugtBwWmtER)o3fL0>K3_r6 z@XNyo+A{Ll!J(^XwqzV4&e_0~LzfKX+q7h|Ss-l*@SyL?A-2Ac`tGQlOZa9TM5Oin zpJC38cFG?Ba&zLQ?D^A^D)4t@=|o16CgzgXkCXG<_zwwO0;FZgrP#pmpEewp0O@+W z2H=UJ>{cK(z5ZJjdOj0Zd!qZoLPZAt$?(XAp3g%B_7n66L}FRjqqyx`S8w;f?D*Hb zg=f6ZrWz98ZD=cD)-KgV%6|wtz1Yp5 zD$|+t?$Nt)3&!Df_t`Vpchw$Ay7S(9aUalmcZ#Ee?!8ufh<`eshj^|Q85W1QXWpi80)P zVlHN&3%J*?jXNgX81Z`Px6U0t`eog5YwcUhMaidekG z_yk|vhat{RF@+6dn78?BjAJH5{^NGF8)5lVsAsL9emonLz04zvewK;S? zR**dUbL#Y=&qS~LsCOJxkUknzJ(!s#zVS!sS5WsJ4V>`qY@4ApIwBmm>lOF9G6rjL z9bE8s9NhJ2W!lfTn|@m5x?~?Q!Hdhq6s9;*M@N!2k@a{v>a;Ou=gulfcC;UAwI-Zi zv&A&CTR-IO)A7f^PWjJMJzqzT8_KM7-`RttUKZx37<)TIyBJE*Sm{kB+56UhXZmO3 zF1!vd@QL#U3GT#X;|A}rz5!v`(sePb)ie={i8KT5s?yVGK!1-4t$Zs^ew@OP=%FRSAXHy&Q_@k71(P|1^xP^4fc%X85yVG`5BIe5mlcwd@xv=DiX1b(H339eLQYA`( zc_1tEqJB7OI$gBfc)g@?FLkQaC~K3rav+Z$m-mD)^GQ-X>g(dYR@>22pRl}KC-OsU#Z!xL-L|yoX?ocTqIqkT1 z`fjBhU+8nkoC}3hQN!jSy*;@sj%WkVl9q#tH^vw|aR;9rxBRX-*px{*6vJ!N<$7oE z&%Fes&ait518F~FJ@J8lfZ~yyO6QpWc!Zzaf?TSMX*l~$QkC1B>z?QUWBhO`g55H> zE&;mcS<*U)iohM2lyjcmdmW$v-TN#=qOp#QO22gJuA1tzCvRUwLGN38$e~xu@1DFk zhHK79%4()!Kb7jX>QzPP$o14d%$t1knDCWRYMKBFR1`OJ)$}KTe2bD#l@({_L8n^C zZ5xquAIF^G7P{#dU6=?=d$YIa=#Yf1fjn3JVypmv$y)7DQ?{{ZDaym(d?EiFsXc^u zmqFecR^2ne(_GgYg-5l62I~wk-ugL*aw3G$W*y~kgMm%^8ze8u?l-2dJw|DiYnUaQ z4CZ=>>yy_hHd+_pGtqnAi%UX#j;n!($DJ#1^%V{IlK0-_O?AnP zF-HnD^E)q{FfmN5O2vMfdz~9;BFf#7CnpP{dS$v*;w>I(4I9~^RH$+l|NH6}5yQH@ zj8#6Yy_gOAK}nwjUfzVB(FCk~F{-jdC|0cF+P%wM@2)U$(hgtfC!L)lrn;UF{u3-R z!9SAw)ATaivqFlH?VQ}3jD)#=7%fgCK5l9Ht|IzrU|ZU}F+C~_PvKu(t%{^S1nO*R zEpULA*UqyIZ*)DQXpM&1EsQ94^MESiN`OdODbuwR?}|>%Lg-PfGMvwHRx+*woAd+d^%|;!C`#M{-*;; zW0_EDz7o0fy-LmP1+xp%j=^*iHrj5hVy~0=6FCL-3lpUi!9=b;%X7;G~lDfin>ZIjp9tXj3#Qye$k}T zaL$Y@<=_0l6n9kN_e6`9JPM`i4=gUmKXDBNXkC+m;ZZKcSqV+^wB5t!BHpd6(+ejc zMV_0;!ouOhE7P8P79Y5i%_2g((rP;_yqT_Zo;ESx8sEF%ED4*7+HZ}gKo25x&V8jw zp*kBQ3<&<`0vB?L!bZ0SVidDbu$@7D$<6&`CO-e_*{1!_pCR2@es7rWY)o)y$#+~7 zGtzlzy1kh^!aRl*Ed!MS223Lg>1b-+sN6-)@S6(-Q-)=bsL@u;gC3 zTPZ&WBF-0nW5MA+-$G`B!ypT+{lnuZl(-A%;H}_Ntysxg&hpRCqS%W9l<(6V1&1}S zk2peql79Y4j)kTSZrxu~Q*n0f(4hDWH?CoYz}nEWSmiHxwNIkDcH`T@B}|qg_VB$l zk7?6AnfIVDrkY|HW^)xgHspeI-bj6GyJlKnJH5c8y;W^UQb@-Pb}8r!4$SO9nlv(b zGtNv$?Va1dC9E`Ru_W>>qe|ow$u|gVK8>34m>Ijafakwh6IvPmA7}3!&IaH154WgM zBUDi{R%=UXYl~H*s8OpnMb)THjfASbH*Jm3s6B&f)!w5hs)Q;cYHJcJ2;TI%@8^1d zzxR2b<9P4uI2=d*NRWJUo}cq`j_>CLpFVx@5kwS)8!no5OD(w5da~&jm-DEf!^fcS zUMq47_rWV{o)WG%WE<ZrSOMU3pSq#&ncZEZcJ6YmO zhTA07e4TAN3RAf^xUvUISi_9D)fPzZSHC*>c9)waCA)=u+EYs(N1t^?8ex(^W9j}{ zfu!0|df(MV$g2pbpV&4pSoAEj9~4us8tqRwqY^DfBt& z+SbG8L%JV)<_B)mPzf0(xgay^`qx#7Ef2w|7|D!ic>|!7itg&0A}rgnAYgn-JE})*EU{3*}L+~SwS_pCsnZ%6DByrZ9w`=36vocz3X zezQ+E=tjeSPq*bJh%v3h1>z_g60ndXJsL3i$cz0sBPAyK)O^h&*rE0NqxAXv>3ZG& z{_8IpW=X;!Z@w`)XmpJ@Jnah397lv;KV?jn3*;NX@2C3g~_z zK`je7G%=v(jiK6zhym!I4Ck66)|t;Z^!Jfrl;9T3tRR7vRR_Az-t@FAHt^QppYgwr zoOmeY4C{`|0MFI)A$)@oWKr~RpE_p%5d&1L&_6n%uIHFmx;S-EPkb7B`>p>Lp>cip zl=^H+pDnkfK)zgmuVJrUbE(AKcgh+dDn!!M(rdKnyg~W*SE_uEq*PC)G_MK!b|a@0 z9(wVj(nPrbc(Pz7Y_*~!=eWiT6;8D7f4%;zH<=X6c@^bA?SKZB<{lOOJ=zMxudnAQ z@b3F2wmb`VSqdk@`$eN$clmpgEhq^FEIiOYLvbEqhwhP`Ix`4z0x<;infB7s&^=D$ zfDSR`G8fFPXCDiDZu9J;GbDV{T*1#K)JkqlZulp_^-|M&SRP13ubZV@A%`3^8IfF@ zx8V2kyM4P~lMBe@bNu~vU@Crd>d82Hnee`fe#_=c0;vkN2{5a=UIc%_nY7BtxiOhz z8;HLd>XE>a&V|MFN!|XCCb2TUGx7HSw(LJ1tYIgwQJ4{>wD6+>F=*L)*;^$M|`ejj9pj-JCK5&zefWTUAy-So*=%l zk3gzJRt_3_PJiZbSrB%r+Z)G1uHF`K`?o*Yv8yhnkK1yNzT$gRmHy1lDdS@q?>Q{B3hA?G@#CWH& zsKOGJCfdQKuF{&zoYS&)I$~sU^pYD>!y4x|)NpFH*o`&pDmA$MdQSFhd}=j{qVg*| z>!D3$xL9Ph`(WG&O+R7?n<_4Ozy!2BksSglAeU0CEN_uC>u7_I-a8_xPTc2sHW*n7 zz`B03MFdh67EWYYmbjP#G;l)9e}mc!JCOyjfQWF(C9YPGcLeqg=AC@BaB(mk;r6}Z~qVYqO6@SOengvg2rY{&K+!BeLPO+b#Wms>e!d< z1-0+{ybT=t)+m8eBMtZ=k)-5g#TL@-?J{d)Ephs_ztLy9q7nUBN%u(X*k%s%tHhZH ze#HLf7i8}Q{l@E*z_&SdsUvtbY>LUYMXIgM+d)F7v-pk@vJ|`h<8J_3=O9tSPrx@S zr6CP|GJbHE8;lbJZ)*phrV7(pBBM`bh#vk+>`ZwW31?ukleBtnw*Z2+lYqf+cvi9jRd- z(eLns*KJ$6gr7G8oA$5UN?I6l!N8vwV^n#UZwsEB4yYlo{I9-Y6s4roevz_q(s61U z&hKfz*!;|6&dIqw^iWapWF;&~y3_NS+*huM7y5h7<6827Il1F|`LCIh{&KFr0Ie>c z$LlOHcPjn&S=~k(7#E>gyw$GI<^mOA`#ah|6E1;X_34-}@(%mfx3$Q!9Z=B|fBdhd zZi*W(!GozbBuey0qVrvOZ%hp^gPZ7eH>%#ou4iM{jf{9Yf~akewE&B$sEU+)l!Jif zwn^AKe2~HhN?)px%?b!-t?KRudlOdxlZQZS*8-o2Q^!+Us?vpA2{VU zuirLRnD!n75cx=o#{-1P`MQ?bVLT}0iHfTepS%T^cG{gLcDxEpTVAYKH#z4jA1rZW z1@1IV+O!$TuT^K7KA8D2z_=x8ySSEvH37}&C0M3%D|LfZ+`$6rmS`o{nCgel`N6%- zGc=vUbr=sjMXUXaP`PC}6k$T&zRWW&9T@}}TAE@hX`Pgj)a#aiGAHKvKZZ>`2D^>Q zX6g2Pa+)Q#XIqVjP5v%RdZh6r@4mM+dLIAStDKw~7k#*}F#dk+Vy*A4V@j9Hx3aX2 z!U_1KeGJ#Nt+B1G;M4l;uK)9d3wpTkyTdB7p4FxWv|fA z#;)^~GQlKTzFCy%EA*MMS9NPR92?T~Z^Cm^usH*2;;JbRu^VvxkqAMi<3VZ20aj>n zzpr%k;46brN-1v? z=4dZbDg4#{Wo!R0LHRFs@c(6tFBzUug$oj7@6dd9aOek4>lv&lw~>fh+EA-5b2 zLhhGzu7C$w;UguFC&Vrra#(C%w>@`)KPKUly{{Lqwzvlw!f5&-P^Y zZ^CQqQ4VnY;F4Qn{-%C!4p{8iCG5Id>yI4A*;usxicRxexDESLa&6P0!O}~GH-n^N z>jP-Gpi%^G2lz7zRD?qT&Q&(xW%TaL*-JOL9Qxusj#ZX&TQm92zh=-nFmb9kufr2; znYhZ;lk@4=`UJ=$b-f$)8&Pn$!m>*5Oz0CG(Y_d%0}1eR{*(FN)y+R!9AY@pw`Be& z=lkDH;;(1!hAZnzrN8^NlxVP%oWw@UG;1($$*{H%EOzB8hI{kYQaSl633j>k@@&+> zk|8yZY=C=3QlUPS47)5uUVXBTzH$x6ur2oF8ijn{00?@VYTM^rg`d-Oq?a0|dUGFSSGq!KTE%6z;5Qvt3=rbNv>{l}y zJgEaar@%5q=;OVAbF}~N1pnJvC^t~L|M)0zur=eUx?Y>OBb~crJYM)F%+AQDD?0In zj;Z#3a~@ADm|y<5$i$iqTo<#nqUnDN#iwQ)y1s_pa1f~YFfy<%s8`UjDR~_hOoQZc za1d35pmSZ7URk3xET6{^U4}??W3Goyl|^-E*Ik*KjLg5x(S$4SH7o|W2xwVJrQ62< zwCwocgI8|5u=1%%FQ!t{SZIC7)yR@9jIhFfEds%M>4nTjTO;!K9pQvJHJ~i?DQSiJ z919Z8Cm$FD@ndDQjSR~^nN!m1z9O-cjraIJ!u|ix!}xla#L!oHd7K#Tnc4fKuJe?= z*HFF3x_{49r<$~-!v7^GJ=tPo@)1S&qH8+H5gjhpGW&Jru^7aUNvS1@Q!G+9VEuM> zZL5@86ie?ow7;&dD1bB_M9gt@fQyMdkkwBKwH$7JAR5c#y|7D{E?r#U=j-17m&EFJ zKE)5FzUhkr8;5PCkT{oH?Gk+*ZR+rP76bb0Ook4>uc+6*P#2A*q!c_ncYOkilNfS) zqPuOq9oLpaSo;j7;>m5@ARwrv#+!B_?Rw>MJe%m^@Z-EJJvL^ z?NU7I=q`b402lTgaU8d5axF@QHO5aQtpBz1PJ$+n)16+mmM3=;bTl9?vM$5i?(ZV* z`k-#w9`<<#J@M`bnG?H9KEq$t3Wk}4^$(Y$1Yvw!2}D)#88cmJ&IbaToeW-N9GCyY z2R1eC6OR4lYvThe4S`FrPM&UCQr=9@2!fc_N*%^Y;XVfGvnm3xIliwYt$-d0Be9WH z?Ns|Qmok*t>wGZVGIHz7I=2`U@9@|L=cJ^uCl?<>A9U=kB^}&nbX@@Oh!W)OX4|sl z_PY3^y$YY5e_2{Z=5X0Z;-oe8Yr~w?407Wk`gc>Wm@>=@^6cH&Y}`lMCnqCz-=KJu z9qz6~0W`U^{Q1S%Q8_l2B?{O%$^9p}q^c>~BKrP(z;x)ocIkeqbch1;#dz4cuR2Zs zfBgCX`h{mV!q@Q)(CfhxT(Ex94l)808mOYhRV=AWV8*niddA=d8DRwOB?cY}P!L8% zsKYO|Il@g6=#o`L0lSJUrQv-DZZXzGeT$Q%OWQ7QM<|J@=m%I`jxtD&eg+Ve$1{4^8JGQfp@zED>lFj%tPGg5Sy2O)F5A1iX6 zc*GROdrdF-CEpUI49S1=@RgoqVvYOD?H(HFyRXz(JUdu*pc_3`5DqN4i-W%BfG8YKHBdIw~rkBqeGt|C6*rDnlFKV7oxvT=)PS9+50Jl8s ztMwUP3jfLj1PrAKoJJPc3$UVj_Epe2(k{#V=D4@K*PFDB=@g9(n6hke?oJMpeAtSj zVFB8XeJUBY3WY$i6tSN6>C1I!l?nmxZ9V}TT(K=AbGf)DN=D)`oSvaJOl1n=Ch%i)I&Cj^ zo2dl#s^bm3l+p8Qh|I2t@d%C=gYX}lykfT0ebsbsuojiUkrcHL4X^MKRm8XQdnF-o zDdTeaPtNiof8#e0nXlm<({UdO(xRZ_>|$HoY!)5PI9XR%$HwImpAPl)+jIRDkF$zV z#;I3D=u(EMWWUMe-?yaeKu>$&Q&j}K^=^A>$t|z;+QZaZh#tZNuo>zRF;^YZD)8~s zCO<_p4P|J`ikxfx{GQ^26o8$qp!pWQhkh9goMv{EeHu3~*^bh`-!=44u;Q&Mx7_)D z;w#3Lu6QMxfkEfX9YpbNR=n<@XN2Uj!JrU@4I1n6k{(A^BiL>*SIakVYKK+K^tb)-!Fv)#q5F?}Hg*O}TkN)OJja`ez5h z5w1bB4Al6D;qKW31pXF;3jpClkG$+4^_Hz)nzEejxOyls@f}ktEY({9d;vX(u z@UW`7*`70_eU%X)7`30#Q~!6Qk668%25`d{Wb(YztfB6OIX=@WpxRG0s!AnHJ^MPjp zB!e;6wPBmetlpdUt7092^?*147t!LT;UBaBEHuT3+Sv+d?n*O4LqCKgtlydAeC0m{ ziocLWnUwNAEaLXr{*)(B-6nZpAmcu^>7|!Pno^{{pCLGuxmO*RQ5TfC3@D0dME8M0 zGF5Pkb&y_ce(HFXV_yVEQ0l&rSQt$ui#11P7wG4W(KG467z$qTFuMKNs;bp2uqx85 zEO@YeTA=N{8mq9FLDa;i;rnuK+Q`9%V|2NS)ct7ka&L_JLUA7e;6xHBsfD;SMim{K zAjtBdnRWuim0K%==v`h;h2k=S@E}(2e8OFER`za(oq0)iB1$R`|1&Sp=&Zu;b@AWC zt1QW19uj!P6o}ThA6ZV@qdrbmUF9oPK*?psfXMiX0-Wj?q5$WPj*Sn7D8PAqx0-M_ z6BNCzX~LQY02LAR(c?wIU4jL7?*j=4irV+C$JwPGdBaT+?&{C`yaIWu74T$L9KM1M zOzc?0u@B}X*I74+tpt--`gX(QMSAhu168_8E=bK7y+qTABATF$rr;+5Kk1M#*;z;*MXtZ9f(E8B#sLeQpp~F5RMCGPA(klbzUm}if#-bs+CI9# z@K;md5`&yYil_CilQ46n+ID<Mhfo9T^&Z%;T*cjc%9_C-bn6b zSj^@t8e&U}R>(FubJ1|F7Zh)ClTAh4<>e(+=Q%A|grIF!4u`)X^qbfIywS$!K8vXeGpwkgV_w48ix*d6EZ;HjiwJbor6SSDB;pj zyw|fVUQ6ligp^cL-eMZ_7(&k@xBMp# zDWdK5S&}9rQAJinK&KljtCkRPyQq?|l9W47rI!Gp*g=wGAp@alGOJdrpoQL4of zZwk@i?77EOSlh2hYOh>$7Trap2FCI^_zwY9TL*QdAqbEy4YE|XWiUf;S_QG54#hpo z@hh*vt-jPhtfy9LAqopVAm{wv?ia6#C}tAKw80hu%$s0@=(zZ1ZDzr~at;cYd#{E` z;)RH?*M%myqOOh+3gLrWd;A)3M5vgmbqCu0n-{TO`R8G~8EO;i3U&l{z zXH^hn!cB%calZt^fgqiCapox+=8N2_tdlJ$_J37)+yJhyln_=4P6oqE#YM8Bj-) zWO1Z`al1Q1It46NCX@}O3ELOcixn-xYl#5zIWp4(pcu<{qD`J7I(>#;h0D9w8Ez1{ z6T0%96pVbh{EE$cF{M@d;Ay*!=_npfOc80Jqb80d*8nGHKFlX(KIA|eN*4>E1P_0# zbA(B56z0i{sijUv(n})rt)v9k>JA+wn`UjNBWU1s+Df=4ai8M?}adq)zsx4YUsnWk4-$k;Iz}mQ?T^ZeiV3%4z!d zCN9c_3>@?>;raz=$_cn6dMJZ2dB4Ak;MfV`j-wWJe|#$OW^an3D~WD&rEkrQ`^GgV*j6FJBbTbF;h)ZE_+@w)xml^{NBERS^G`8T#cqrf~N3uLa) zwN~&IIo9(aZ;axYD%!GhWE}mqq>oKC4o!eaL;0sk1f4MA&8QU=!g5gVpTNXRJ|d^^ z?t|GF+C5PK$5DiG$h0q2+Ck+8BhUs8E0~Q=3KA|3R(>^BmyLvpR$cGmRolxz{!jvc zu}+Iga^j}z&R_u^^E;Jpm4`a*4~Fss+fx0?pJN{N^Khm!)^1jvq(xKkrhIgCia|s_ z&}L)SB{Mc;?|!E-oGh#(XyDSgYGfs#Qz&>pM>#U4ahicxq^eFB7K*3~H%cLTY2f`q z63KvKO@Yf`)YY&x+JEUA?-TFUFNXyhOur=APS8rK>Kz2P-^=2tMMyS%AatQShv)RXuL630zy)CNSGgB?)X@O;$32+ zDvo=@1bpJZq{efK?t&w3j1Hrli9}i8)V0BJ${;wa_9WF7eer7H8#4kubjt;W;DjeJ zYFpggD3mbPVlsJ~s>Wo>W)n+3xDh3DES%wiV=ATLPE8|bYJ0|dZvq8lGEG^7CZj^d z+9K&JZ7&0quK?z0s0wPI*&I4#jP2nNJa4}lRUha_U`q&KAT zWmwB4@JccID~RH4CcvhNA{5UZ^60%LF%=V#Uyt-d4GHKIDx`~siA7#Zh2_#S`eRJ` zK=_J&%E#%M)%Iz#``tqfuj45p$E#+`hw{Ivw!>scMDIk=em8d${$A2n@|!50h#3-q zMIoQ&-mLmGS7BemI(_rQOtRbQQ(jDS$Hkpi1?=?gDcw8KFhbz_+ZT|%&^zon+KPiy zAmj#D;QBHqCgz-@9ltqJw>fS~mFr0u@id@rtw`>arntP@^kNaJREe2$t77|==aB5F zxB9uP@ zHk^6%zDCo|SjvBq;hWN2$l0e+p$%&v9<~oZUfXKV+IjW%II#Ur*%U5Md+mF0vbvpi z-l^v!;4yJ?P-F;@01ZTyuXVqo7NtKq+F@n3unVO&H}d}Vd_AOSHQQXc>SMPLQ}Frx z>FU+nE%vCS=AU$7CnL5EZ^aN8Rqykin1!0`P+I@bMv~LQ`;#J!J@6F80;H|S#_S@b z6w&do=IY>N~)+1QZ|)m90SaXxWPpsJ0O zww_ZlHcA-)_<+jcoW9Atia?voqMdAgA~_~CWlz#fSf&1a#g$ecZo+RP&<7@MX)&o; zdXt$6=sgumpc8_pAX@EuQ-raspP|qsJ@#(W!&Q+Q4Js|i1g)j@C)`QInxVq*drKF0 z)nT(d`XD-Gb>>(4t?}>#YL&x@2doHs??7}FywR_l&jvNA!xdcb=_C}>8>8sw{e>-s zYhq#vcY}zp3v}T`adR+XEB{4zdcqMUakaQzbEU1k$bNsWXVlIMq=;G2%tNzZ-n^nI zM{Anr+4l8B86@LO|CsyLC)FM1;~0OxXRrFL{PfoA*LfF;hE29Q6Vf`)&+6-N+DeoS zjuHEPvcwf0U^A3J-( zg7`V4@Wt__WAfuamNzAOL~shr#9Gsi%F@jIJ}ofp(4}NMb0wKLbMGEvF$osaUEdAs zUD93VXc%MmXmRyB&3r-naIw)_U;5>j%2e)7YI*P%bNgeb^z>gDM6;VwkUY3q`b*|h z=+4}L{b`MeruA&&olrBY4)yBBar#r5A2;3WhoYI>r*M1WDQhBn{spfe`3f6tvW>I< zN^7C~CV%A5lxg?O3~1hMJSDmxLVBbms<8Kinn^BM;o0xHpB8S$=zAG57bwH!O?J=G z`(cL}z?cjQpkYyoO@~$2kB5v?xHIS|ZF96epN7-m(PPK7+fVVbOwL8}U!npI?%frG zEyib<^G+<(*PV?Dd)J(NlgUA$iAS)=L56z5hgC~wC9=P$zt|rmI`tJ}VxAKwircoG zw)Oru6)>@Eq&kSAp1>mN;kty#^fd5f>OOrA6!o20d%u}!t?K?x4S`B9X9X5HR@IUt z=n?5fdU)s5?8H8`)=VMs)4^-a{B7t5?~w>bK&wHT zxEny$P4jTb2+RY?{1e*9N_P`F!4!b2DT-J})2?p}CGORl$)6N-Av>d()g0SM5GtJX zDxjxffaM`kD?sf^SufN&?=zyUF@7Lhaa9LFARL>(FQ5)u0 z;%k*=O7bd`3!Gv2cZC-P6pk}Pc@5)S9v@MY+m$oo6yCyYA9qXUyT2~;HLzWO_|wmS zdOHG2yt#K!(@|4%A^qT@!JEWu>2eGO`C>M4XZ*WmZ_UCs%8x7h&I+ae6p@~jA4~U; z*u3(jPKJSk>s%*$eCGEKxxOm7f7;M^UOw3vy4ZB3nB=BWNS>9!d+`wjbS6><^vv~2 zeoaeg0^4&K&!YjD%kgpNz@EC9n&!{U*G6yBX95qhgCE2zSNpuXex}7yQ$A51O4Q20I%Y7N;Pq6pLPepS~Ycb}} z5G(a9mq~_9ZG&0EZAmE3={fKs^uoke+sEP6PF1!=@{RO7f{>OP5sn^mNfL7cRV;mT z@rgk)^w^l*LVmIwf+hB4o&c?Ram#5JR4zlpku0p!oCSAj0fclz!Oxk}>VmEmY$zqfNpthqI@jy~;ATK0({Y&UGDtXiWd`1u1L3V1ln7E?fw&iJ|;5_=lr9&-+D&@Sv zq1@`jkNJ?JbNh{(EaM#ErYBuTZ%wv*7C0{393qO3d_nCu4j0{&jX=1TAjZ%B2j}dZ zVMHCRb`0KVJes&+SDFJld!9d*;;;M~nr+@QYL>FmyZ3NxU3{g$Q!@Hu)PK<~VaJzZ zA*=mp!Rt_H;KP;VfQ1+Cd)|wr04IlmgBfeSs>40lhxegIY7gFg(B1L&`Rr9b19BKR zw9ZLU=qP_~-?Dik*4+hGD^6Cj#zG8!1q)R;eK!%Hf`^1(s>QG zew4PVZ%D4Sb3z@{b^=zHKh{riWehA-*)4dUKJO-qCb206Sc!i*+xcW6dS+&$Hg$6R9L@Y@?s4WDSo0a}{A9kAqXFMTKO16w?Da4u zhDXDyFEHkDQqBr?xp;Gl;_@==(z3wiwEh_tIxsGW9_WIK+X<2?y?g_2R5BVCjGpjX zpBQkS9h2GlHdij&?Hmi}0FEhOUkh0{{cW-FQYE?U4M!;A zZaX%qMSRXeYrjof0Jq%*#RYpF>wLJmyg#9txS;k)<6`HTBxR*+#)py1Mfq#x`7Q3Y z^7jT5cic0!-uh6^dQWubzo40a-sEDL*u2%=phvNTzfmNX@-%J6R`N<}J6S=DpQb07oIFCwSVW<8thb?Z-Kx^bR z{d<2f&{o6jjj!kLwx_3qlKw8)&b?*c_Jn)Vj;Jad=t`vFXhnsvvu&?_LbB4-$(i*C zw)FFts5#%%^JcTQ+d9mT7cO?rj=uH3`$A~l@%(`;MXT?+Co4;p4}l^$#o#(E~h+k?5h& z#9#d8(?Bk)w$0(q6fvzLM}E!NMRNb_-;}Kw^X?CntbxYB4gQCDEq5P&H)zlW~(aWo>NSB+D!fG-y-R!LomR=Q=X0u7o11Puh#`1tpO$7wr zFsi+AG~sHHRFw|OoR1*(0G-f`EG1R=DZZbPj3oyw^LKxghwyn}3VD`6VP_#9vP^2L zr2uEAhgWkw=0OnLv2&N+v$peJmdjK4K5b-m%{D24=X94f+X_;DyJ!DSWb@+ji@<{> z>2A`FFd5s+YLuKUiv{*Q2j5M7;v)}k3E$EfC|gw8U#pt~nNlT)BfLiZ*@7qDFSq1g zNKZ}0J7ftzs{9K-+b@aC|I!4WI$N=>tk!kSxkbwUdTsqMuSBh#q`>23qkFFMLW$hT zsImGmyn%H9C~UcPlKU=cqrZQ)7CKdMhGY8~F#7TK-WM8)yb^!1?+bpPTjOR@fULhx zzUKwa@mZ&IhUKmR9Ax|b=qrV6fX!cY%dP1s%YW{s?-BuW_f^acT!IW7H!jO7~JezJ>r{^sop8ueB>+p@$~1HSXQpV-BTVzDZe zP)qwvG|_kQv(B;aaw2v@!Ga-e*QcATgTMu~Nsj-rPa_;#?SciU=???UZWgrp^`jY{ zB8ph3Y3&jy;MzUy>3P%Q|NXHTjhy3RK>66gEDLsu*b-HEc3sJ`SdmTV&}MT z_P(QqQb&@qWK+H19VO3GcGKJPE0J(^mv?(|Bt#okCeGF@;rCP(z$p~%Og_D7zBDe! z5=(1^cUOyfR2_MuGFR5PxrTc+%OLpWz8O{T?V-Xhh(?se+l@zT(C=KU zyl5FB1tUbZzRbu-@k^_fk$XS?J<4Z7P(On z_A{tE3l7@!+pH!fsoYxd8Fk7JY#(A>aQdb4U&rq^C|HbDso=2F&j>RG2!2P0A z%~Gt%ye(3w*xSNYM{IC-e`IjJ-R(#0UNtU_ZVut0bkYoEBu)?rZ;vp`70>@-U>RbD zRLMnp;3(^bPSHc{kUN4A#?f?I$Lj`MQdy?fsS!)d2H+qBh>JLiV^Sz&&sTi4C`Frr zBvS8f6Q8o689Y@0C~)I)0*yD0UyaR%4jDheL679QuXp&~RuXY@Nhqd_(FvhuC2&`x z0Wyiu=i)z`RHFn2*Of!2K~J3yh{HPqmfyiU^yNR-bNPr3phUBxnB>lH_m|>I3#f9e z0*C^c`qjZ-z#~;iX5FShV^iYRkDr!dFU(}leo)_J-fh_!RTRw@XT`@()S zWaAUp*OPc>^ScO2eC!l80_wRl4u;9fKv`EbVP3&wkH{_j;Sa5R zqxzVwWomXY)sZ5Rd?|{ugyr#zoYf202>+fgY{CMf_YqWAE)>74xlFNWSzq%ypF3@3 zT%@+0*~}_fQM6-Q(!StRhqale{0$2iU$N7Rc#u*-==1xQ#2hlWtw_*10j5}3Y z9z6C-5lbu&H+%OmiCm9VbXdfT!l#Qgll z$&0{SKVKyM0IBa(X3tm? zCG24c)SxJH=lu7ZpH4O_Ye_D4_Dx2_8;oB+|88C#|JHkVB4;IRG}rS&q~`k!{5?zR z?=XzL>C8=3McDMYuiWN|`_e_=#(QSafXbVoeTq~#8He_WK^Tf~nSBHK3@h_@`X>+mEkh3>ywv-72;O4BXE1vB;$zH$e zmd$gSZS2BthobBBb}Cn2c3!2;J9_&2dETeRlNovYPqWfy@-z9u#(WW5n1k5WEzfq& zr*TJfFU+jKU+%)8jhmuBOjZg44hHhwti($fW-TfS0+TSz;xOKSdELw4H^D{pd?yel zR^R)?{=4~XUyA|{@f)s<1gyjdR@K~j!7-&zD?FuSQaQu!*_NNg*>P_m&%W!*uaRaQ zag^r_v{}72zvmPv;mOjS3a6v1JR_8<|9U&@=I=gq@8oH3^<===KXqUm$91DC@fU0me)vw=Kqv!pkrQl?I|o(V2ZGSGQT?D5LM z%pwh}FY8kWQTNe)>|=|=o&ARjN7mDtAKYlbUKc&xM&5K+gg-Mm!-;Ei85YHfLYNny zb3gqg4r4fXtQCYwv>yBpi@Aw{*zt`UCMB-CeNGDPB(A(-Z%;lTtiaB%)wGp6tR8VC zh+gZb`Hg=JH(aRR7dhzHN+LAh0SB!dGRtS1S##8?zQH9bZ zf8>#^?O~8awPxknrH@jQ`mi}rhKFW{7;&t2?Ku%8!=7z5U<*!X7u`IP zwGWQI67%F?9{RPi5X~``l`b+O8}#|n_2P23W|2d8Bb>vQB9>l>+%Z$r3JgGdYYBj! z3auD`o#=y1bM_6Q^O^u4e%4Ka)7}ZSXFK#}tlsa5Gc&|)5#)VZ#zh>iPhaco8yC`` zVEVnJ|o&^kW)@189S)mqobzBv(EHvn~W+XX;0a4XC<=kTY5rF#1Yr)HsZ3fTS|GF zHvMxaH$|6$DN3w|iu>!LA>sy>RGl zr2V{@>f%nbiK%+*)VCpLx{;1`MARVNkN2LlPcmqq2TbE&nSz&A2h37w4tEbfWw!>xo}L8 zQdELCC;RIkO}*Mr1ZcsnUWlc$k0-=bZ>0wcAQVkOb2*I4 z_r|$FxS9Y5MovZ3Af_v0eXD=Jz%OB7_)d9C2$k=Y30!3O`I8@!Zawc;ZaJDCwofVQ zca>3((|zx%KyIC8&;L$5vmBtlNP4HXtP=9OK-PpfN{S%dT#hX&jdDV@743B^LPwo? zdN_|1=rxk^4Z=Y)Jt<-MGp|XB80WF9{aj}{PObvzZj?K_R#S#s=sp}Mr)JT9|+@SdF)KQn3{l}e6nSa^R1XZv?NL%;T#K4^ASpB_8a*c$L{9N)cG z%jPllLOJkg;Rq43K3C6&Xy1&S8XwB{>-bFYv7db-U^-~)zc9M|mfdq>AJ&_2KpJ|7 z`y587dIci`b$GU&)nMj7?+)cXbyrfB-GO^vjCSVtfJ~2p2;tZvgw5H}m)!()78{w| zK?qT>w0p>zmUyKu?=|)?0qWYpDSSGe=1@cVXT?JMtEfzrV{1=rSgX}NpWrfA_0GYtW@MRXI zvj+vvd^2l_gx>Si(dMiD=f^b`bxJ zw?eo+`aF=GH=Y3E%vq>p25dHU$+^WS2J9Fu4*@pf4Ya@_mJqlHY7u zuYB`$buc+R5pRhR8;f6LgoO)O`KpzAv#t7mk+Yl)-h0@s2fgJfCMw&#>$Cej|GMY? zpCmGKCm^|NdIovnd?xMSnRRh&C=-NXkj#%tI#jv#0fe&jCb;Z(u%A)@2Q zbIDht zqNC)0w}FiOzww+p0ZnLRSGVy$PJ;VpV~=Ng0ECBlq`s-%=+lj-1Kv@?6^=gR$*f@} z%XgaY6HC>>zD2}PoRpZhdDg7Nxb{jz@5Jtg=5-x~(=)$SV3Z2>jc@jwplQJ8tq#?eqm{c7HTUsqfMal@SN8Mz6i%z=*yGvZ=ybQW5@g@!wIV`mDTAYhuNI#(T zN-kA^Ju<#0!XwQuRqy!|3R$Ek$a^Ez1}PwRy3YHMH8OGY{u>mgED8}h><#IQer#^4to5&5;T{{rw+S(>Nq;^({m+2@bD%B zDQ=O&&#^S;wUA8&K#4n~JnPqh4E`W&aiF%2-DHD!n1gzAQyb@W%-zD zsWX$hkepHl?M1)7vfBe34KXTedb9vAVNEn-DoHA~(o2EUY&KBE9Z8zV5#~BQp1s;_ z!VCSdAi4khGqm)PrROxr>12v8C0Z>73?3;E2@MK>`q{mza?duz@a1plq`lkGME|f8 zFuiIVt$1=oJMVG470>(m8<_67?b+HE;iSqgFH_JWDK3jY0J+r}AHtt?Hk4u(pUkKE z9vS6wdiwzWI}DWPk6X&CYiqtHFPd+9Sn0(6 z&EL;c8RA}qgw@`t`}_q8IQ|}A+G08ebaYR+jMJS ziI@n1x(_Gnqd@Z&3>m*=Ugi6Izp{MzdAFuNd$pD!-?IvCd+(Rni`kn>N)&z5%i=e{ za`OR3gzs1i3M5=#=AOd-nx?VU4G+Zf$#UoVCCBoav5;?PDNITst*}r+VLVfE6)EUq zMR%}dg=z~QvA3wA$;o2&F!+HhwOU@*x>*Hu;!7CjYl4QUj3={j{2O8kwsIzNd+GX% z-lYt;LrxaB34%V(n z3Q2YQpajMYI;@cGD@jgGn_53=3p6jz`8l9IV7rw$!!$cAzH&A-CfCuutm|}jibcDM zD?p1VsWsxwg?uMrfbnW^#8Z}H4#ZgK$H<8QX&G6f^1{2O)gN5Z<0+q;6)&K|Jk>yJ=@+DU0ij&8r z{F*7R`eOLT6B&YyyDYTm?V^OJl}!%0Js0FGL6QwlFaEA&>)z*3QePRF8!>eOQ9j{$ zEX;Bsl!=GkL9Z&?_jI})*XGf@s;KX;-O?`mKD<&}4S!t$zkgtJczbdj@hc71^aCUR z(gz=4Caw0lbDCZG)U|>#N zR8J^U$2q6bveF0g zi6q2qW*9s_ykm*AP@q_^{i=S2qKS&=`PfB;wcJm<$W`%3`Nt*iFMj(`xkg9A$vHWR zB7lRJMY1PR8=l$8M4c-s z^!>^<)U&*CYC5bh=A-UBYv%@Rd_xx~9eS+7DQ0iR$iz)Uv}*s*BkP>!usNC zCL7yEt;J?Q1&yGG$$E<7{)&xAm1v4(JBD3^khRq8gf) z?%g!1I;eDr6LqMW#+pS6wUUKcZ&d56ex(?_GS5Vl5x`cB^gcj^&X=_g7S*J0+?V$% zzB_o>;u0o==SNS7tSJXq%47zyHL8P&oKvIO2Dp)45x; z8n#GgZWfV0TTv2l$Jjq?JUiZ~12m3r68yy4W%NLBfI-4lq=50QwKr{Ech9Kd+GC#}B=*2Fy1!U}H}$qDb-a?p6&jZl)hX+jTlaQ<>TjLj`UCfJk!M7cCd;F&Tij2w3iC?DYX3f-H zgj1W%Bt*!mDz300GZCZtZmV7X@U-cYCuMU4!uof8f5avJvw)fa7qepyC-bCY{`T8} z_7bNebt}q~4SVhm3?hTo%d`woUolUnAL+((fY;7-X6mq?M7#06r0lo@(9>^Li=N2d zHTPre6!GC3RBb*R{;1v7c(_N@;m0ZO=4>peD`aIp_0_vlHeJ!;;&LEe{3lZWM3PEl?xx>=*0V?w0#GYmoafF^n7#et`p^QQ8BZxP* z=XiAA$7YP2L;0MKzKF*^2@D7?#&X8ro20jFSw`$2Q?zS!^jUXA*oG?Q*3kjPtSg{qNR)tmhY33JZrI}#HR4mev9+_~4hZx$1GMFWZTdQ$$^1=}Eb1g1+?tQaXB%k$N(Oxs%a>sBT*+Sk=+J z;`G;NvxgKW{q@djVssfi(S6(1W3FcH(ZmduP?M1h9X2s%z65qEe%!|ouTr!}tStR- z1YQmz{G@d07x815O|4|^iT=qJaTg&};V7b~5l$EK{$x(tZlY?Y2b~qY(}2~vB@R4^ zDrCba(@y)|;RN^g)Yn<&R=!gh`Q&2{io!d!O})}*T~ZmS$G#7nY`zOQeLZ|(q#<#- z^|q5>GGaU+=kY3k*v*-AYt^nYawAk&@~}N*=O`$WQ7rNIsTh>CRk3ib;qdpFqxV@E z`K$8Y1Hu{aT4KuSRxYS;v2OWUEcj7oq*{sTy5BcyGWl39`pNTVr|K5uUKsLh^%UOW z-I}F!1_HhA6B?9u>pv)>4v-E;F`Ex%joUks=0>&JmR_sMv0G7A^R?VUSK+3u0^LW2W={bq&-bNC>w zY(TkXsYi>xz<>rTgF;`Gg-71u?fdd~I6=Rnh{t})EymU| z;{!aqQ#-TGb8%)+AH9h}9(8q1eDsU3cN@>ef)~YyKQIc!-(`R!IfNU z#l)ieU7gN*q$Cqjg#s_p@)*7X+1Ve495+JL;}X8A*J%qW(q7=FcW6qr8G75~b?YL> zk5>;~RCrx?FnDCVt)<|OKGslc+6bH3ZJXa{d#x+prX*##!l}M=J)VcOtr)jJtk7fi zgZ%u+dqoWpgPwk{oKcsA+gK%2WDmQPn5G6eg{$sn!2f)C7|{DxyoXKiZa!45lbx;U zQS;jI`);&=Yt`z+MAm}p-mptA#g_|mP!YlUK281PjENaP0ctd9_9W=9G@>(+CS(&h zX6JJ7&6K!O=AGQ#&go+KBWV6o=*qWW<|Lw`k~SbNHhr1>vz#E%>Fy)^RrH#gG~p+4 z_LXArV$T-XEB){$|bN82e+)XtVr@?8L%NP({DE_R}kUyg#khtc> zJdgxbs?N+-msH*%|D8*y;4d+2SHux1#3eNWYiDnIJXsDVpP0rZwzUpO3cHy_(KKzF z*9!|u^@dd%7T<}Li)(4!C5$PxEn<>*Xa%ZpQ?|zrO|r7!*016+G5o|HyCwGQ{fBN69F(I3Vrv z-o1$gDJ~fovr40+N1NcQT1+W6lAz5GWn|yaw7P~|^4hGK3k}r?`hLHe)HD_(l|mQg|p z3WnMH;Aa+kakE=1l3m-S9~XaV7PC9ieBF1eNpx8A3HSQ2oq|;}^6gG$nNhF9U7JM4 zlU}W-#FwrZV^ImrRPtiWYho z>?1S#q}^ri)OjqCQ$mEi(#igabvX23rVZp8ROs=ZFrExqzQgSw#w#;40(?P zg1vF_Jgu6bR%u&05kwuUe=3=-$wQreUr*dA>A1IAg{Z?O3auB_zG&)y1~wxBhv@9OQ=P-mA1V%l1ICP!j&)jnAo!f3< z8{T}b!Ti!fcfgbN!Ml&viuRGVurTWfsn{~6w zj5_l5R_2UL*8V%Pl{A#S%6`)v{-sf+M#5!nDX8oVv(BYMnTK2CP-Ijg@OqK@0M_xd zO6Q4FDZXql4_5ULYn%|9k57=#Uy8Hsyk-krC{`Gjw4S4=5o6PdZjGo4?b!R;t@bL6 zCCIXa8ov^N+mTI}pBRv0EajE4Lf*#8-vI%`oK=bQ8uVLn{VH-}A>7^4@c3zZ)>5jo z0(ERLu<+B#$SmFX&opNNj`%~-fuhVvu9Tj0g8PQxtEU<=YggsQ`t~AE)g8um@<8M% z2Zrn&Jfwc}R&^3i(%D=(ui(?(Lh4kgz{5O?(uL3a`Z?pL{ns~PV&>^Tzu!gfDY?Fm zE@Q~LRFC}S+~DB-)lMZ)Axu0{3yBjFvnReUWKKV7+x( zO%@)I5(c;VwT17P)7=36ZzIgvsL0TLG;r870%NUJuIPykpaZlRBe&5aDIr7EGh5y2N|i#t=C45$BB!_0kl zg{wz~Q5^vntXXdOA&riDK7-|NjL^^>otXY$fOv6ueK7=z-{vcP9HuN8Ans8K@>o;v z?nL0(TIXd$QAw@d%<$?`Us!y0osY)}kMn84(Z6z0QlzXvJ+s_+rOU!t{f)=*LIwZ9 zAld+t^4)4A{VDsQ*5wly!YpuF0dYsIOBZzOSE@<=bEE3=G+YZXYM3GAx}(2K z>eFg9iGwveP=NT^l8@>1DdMLlsCdvrS#R;ko^)GJZ%8{1n5|tvPYs@Zc z6WD=JMor_Z&g`FQfvP-nnDoVPhKK|`wp_aW)n0v>ZWEqIc>Y(bO7_JK9GX^9Y4XHd z@O%ywYE8wvNTfRt8nrQ!2VR+S6JP}U<;VesO)pAGdH=UGJ0CnzmaPJi`-t+@z>eul z$033eQ@jF5A>;24>+JfJF^RJ=IyHySRDuH9;u$#V9bk3bQ-WZq?i>gA(F;XjIFmlB zG?)=N_;v7`&%0?JE$-i#ElBb3!S+~PN1;Em-uwU&H{vF~_Nk)0q(!UA&Q_+o9RD}P zLTIWT*9DJjqOQO1pVqXmsrp)n$-od%ysL0zca8DQ6-v@?dlGLMa^cvjcK-8xsL;Js zj!0>Xj8Nts{)*)s?AnX!DHnCggVb(>qLCY>JuSih1v@EL;dro96eUoye~Rv8;}Z2~ z<X!%Ln zdIr0)ghQo4973wRJJ9H77XzU;2r1DcM8#+#11 zD{*cE`~oG~Wf#B62>~Xi+b_XcWejslLaZ#s^-IV?wv$LKV~n;GPMw_|Txt;{99;!1 z3ivcZ2pVq!sXyL^E0|4ne_o2e#hIcF!H;l3A#-uxB&38f_Ae${30% zxjNO}iDV;e5^PnAT*}+)Hx4G_55dzz_cZ~}UK=DUvBTf78{M4q__{gQvJ~{(Eikvbc4TA9B>kz$7qjEd@C)^@s);+2Wui<{;s(~ zc97*D@kW=p3xq$%3Ka0r%91RR!osBi^`#9x!;Ok#o(w3QJ3RxKBuUxk3u~=2{rZKQ z2Fr)_0uR|0c4avewJwKn{pD6htyx#Qy;b0KtYR;nxN*R{cT#eUEoEXt7AE=Qu=z|v zdulDyZmX=N`}0u;>-f+uDKCfS(LUDr4X+g-bJEXAPv)tPj1lTs81{Lp-{(>)dl z3C7>h4BiUzlbPj#QrI3n`^^=jwmTbiO%Q0gk}wzX%hm~I^Wz7?zh9mlt!RS2YVq_) zJ}=KZjuC>yo6;$&x%60cu6q8voDuUYI z{mVgCL*PB*Do4}1MdH4 z$yEd8>J5q)3!{JR`aE4P=Sp5=Z!fZuk2KUQ9f{kJ|vsIWCagF2g*1VV9%ca)dJ zBVX+=P=E~PUYb@vo3%e%U(hT<*?bm64nkj)_fSDrV3}3pi?9md-W&dXjlQY*l$b6Z z#g;^ACXMoeqkB|ii)(LNVj~Z8e$Vd4{V!>HIinbau&+dZbz) znIVm`_gy3N6?{{Z3omi%05tJl z^hkDZu_b=+Y=;;-{MF>0RV?$ZiHN%zD<3E?A?i20XK%0wDU2k|8}!~ljEA-8mQczZ zH3ClGc0o<`{&fRE*JqP=)(dKsnJTeBLQ&}|NVCfhH&DBnn!qWung2IxGJ>3Nw!=M2 zwPVSkZQnB5WZ~>yUt))^>aAGV_W=CljD-a0H=WNDh6(ksN%OrFkaM;W$LQH;@lZng zOmW-z*+i~@gMov?q*Hz;>^iuu2vjiKC7c*i1~yJ)%p)ri8nl6nZ9@bNSWJ@O6Fu*@ zamCx#os0W|)et#k3(F7|483P8UJ3sRVg>=@&)lI4+cugLfnsTs5lJC#KoA6W~_y)0sp68yKCI|1|dSdpm@HBYTX5 zQ0|rH8y`1)7LM!)-Og5hL&ay+)3ut7csa|A&JD3iMmK)6dM9i(M6V$0|G=ajRP?8D z5I4wKuOW0(3$woFCM2V5`v1YlGNKr1#t{S_Ig#5OnDjO6JiXs-Wn|UkU(rkSNo7;tqzjj0nYC5E>f*%f8 zcAku((mxx(gB=sU8J-;C%qL3qjj9YSJS2SmCDv=Tny>){P}l}V$|8ob-4IW);h|^c zui^2!)j$tjZm|42-JFz>hUI^avqvV2COO(`1aLJHQgHwa#ce$iRpGwNcJ9SqxVB9z zFwnjKHAbjyA=Ybl;zP#glLy=2sF_QM-C5kz|9`qN8Xm zx)9KANp>LUqfpD-7_6+pYDqIZ$M`vBA7qp$;k-Mtj(|8*(zBiHA$D^cML^- zdRtj!s#kZc|Bgm*EG;wb0S6Qx4fnEux+r2Qfhd7to51P(X9`l?2i`<^_r4o+tO1Wa zJ2SonYE{4ZAo#{A!x0(0ZbOk-6*ww%q0OErsjKxU?@QD1+IndG=SO$_od{PdPUodh zchPIM<2xZm6vR4x(vz%MW>5qDO7*F@X;V$V+6^)3E~HR)=sxC8Wtv`4wQds1V~*Rr zC4OQi)iTHMcjd9`tsG0N(Yon`8Uf4g>v;E8vviZToI;aP5L!17ugrmHPFRREzAEV< zDYJ`?ZDl_@2}qJZJz4A&2%0+Hd`FBiltrDB%cdb46*vN;(**zZhP|m>sf+0asm*ch zxu2~Vg^T?pc!l2Sl5H5aViWN+ia$EjnJL^RCQ9MKL zZ3DmcDV46sP-t%CSLiRL)zFIs)hUAs^#`dZW4;BNB z3|W{u0w?l};IHb)l+z1g$NvgJ4flmANOU?b4X}zgWU@$-@nhEYrGzzv?xKJO?4IF? z^3V2P*o0^KX?Emz$)cTrN6S@Ho@)#~PL29j{$?+HMe{$4bvDV^2c;)`R5UChP zEC?Fx#0Pe$)yT`TfoB016J1MQMnD3zK8CNQ0}`_O{iSOlszVOx*dHM=^(?Drkzl~cJUCT0!Gq`$2|tAS9lbrvu}9k zTjH7;ss<*|WkRSzEqY5r@83+}=5vy$7>TFC*K|n-F*~XU7EVc<%nrz$`>WzM!m(nx z6%#7hyl&m1Qj|~jGP>yvU%9V|(bw(hntPm;e+v}oK1WJEwiXy=l8LA=Z?Gz{wy#J7 z=;E(WFO&RPgnhs1)~gW9j}r}d=d37l40(0y{ZjxyO#458NUV~Wrf&2+eH-+;L$DEv z5pk%+yg1rZzM}L7?KZJeH4{-ragZ;OuDqs8O` z-7-7E@wn74rl!4V-?;*N=j(^$v$^eQ(iS*;xhTAGqRY8T4ljL(jIeF^cL^X0&u)BC zXGZPR$-Alx#jkzd2rwHCBib$38)QRnN$6d;-SekNwwp!mLk#yQ;iB|{k&I?eaUBF z4Sfe#LxcXCK+gU7d2aKg1|l;9AI#4vT%6PfedEGL+-yAZEG-91rlL(srsiR8S0Y+h zDN>FffA^`v(xH74lAyPkZ1t$940Z9WKT5CxFgpaVql*n{Cl4!^NWk~^X)vOu_JBgG zAF@C#=!c>v$QK}i@Ra!KU+NfG@@e-=*!Iua4_(zE761xnP`Gzxd~!vERSI%BdFYYG zXcXC|vMps^h$`y(Z9ir?QkLEB{-C`TF}5gO0H9v=S_r5|+tbTI`hjQ+;6SJ!d6wQ| zn(%0zCiV^naMqT7(?RmTYR~6j)MaIhXK?-HvhvA6%C;LZx6S!kZ9dgxKFYnN_iL+s zhl*B3-BLUjKhnFxp09_NZe;% z?}`0NuaJ5;PJAj#q7KVsl$Yx9Y;tXWGquFwIaC@G@@Zc{3n2ifSK~?ExUVFgw7c5| zZe??EK8REp4Op@0_rurEqywX+oc72HM?F?EZv>3+uj;w4Zo`u^%4}QI#Ht*SB#ukG zfuxny+vQHNQ9Qx=eI%m1#mb>oSfPQUGXtS8cECX0@?$~0cPuYLAp?Hqjpo{%IcrfZ zaTgh6W>*0wC0t0){+yv~paVsXz7dVe6Q?$B)94_k zzL=_FVMOz|(mL(w;dQ`PsGBPUq>Dv93U#4f3)yo11D-3nX@<|O<)vPr@mKKRc|+$q z7qtCvwS$7##0ejbA;yWrIQNsX!`?9s+!UuRG0H01>IXTD{hd^=ntAj06 zd*iL{Q5Z2G#+#o^3#rC<7Q{ANn^hcKg)o^XV70Cof=g zjA*a3Q_I=-jzP8)hNrFwlsW(bJt^MnKxF@3ajvJMhDKh)KBU5naVk%92(=7>g|?J0 zPZRk1_oI>Dln;1&>@BDvKv2^d9tA8o+jjEO$Ww*~7_p4RVU_zZs;MRy!sLKB=~ z<1WM-UqwC65GnuUWIj(JpV$=|zl=_pjA?}6PifQ}k*bktO2`O>bB3ruGD^%&fke@_#p@_|M)B{zRoE#LG3q82=g!a>EKO z0O12q;UL%BC&a|1_0=sjs6Bs$^<|!8*y*6IcTp*@r~H>3o}xCTd_kerZ)}!-^=!*T z0xg)@DnPOAV<}N#wnE}(w{SnEZTk<4u^$HmPsDj+>4H*SXO-D9uD;yezOft?aE;T} zfiseN=bpFMPEi!xP+>lfL9xJIrCB!<_1W6x#+f9^a?fO5M>DQHzTB z_A{32@!NYQpnwreBRq`riG12qo-MRwnV)m2N$~d*@~XOjT)PbU4RdaW|1q)ssL%Az z(Q}y@%Y-s>s!KngWYkIq@l6C*DPqhQ7e*2OVh>$C}ibJL6L0cZn67GGz}Z} z&qi#`#gE*O+%$QMcT<8N?whmcZcx$m2(tA{^LMLN4asZg(xvKlsJX`mtfLZv;L)Fe zs$Ht3{o{(`6mJ_i`7@nT22p1_ggqb?Gaup`ny9kZFAAN#!jE`nqsiAkG;g>iA9KOC z==F@uRueOF+C`!)5GV(^t@riEL;aHxe01IXF|0GATL8YwT9w7FGyy$3K75arS`Lwz zIZM=Do_hrM2?9*+J)@R9%K`j*U=cc|tyhLZ!{Q?xQU)~)-v-Y;; zKX|v(otF{(cAiN*Gi*Sf8;FWEu3m9+pS#PIKP(Hn%A%d**sb7iaKmHvTK1jed=R9s}reKcfsfjrOZ*2gvuwLd5wp=+`aqgsH~ zzQ4U9dY<(u8_baCyA8eGe7aR#L5dQQ(dD4264|r`2fUH<>YjF<^?xopLUl~R<|D}p zZ&}r!1|lWbxI#Q6HKK;&(b)L%J1!@f+^rAWTb|SXYlilpK*3{xbb3;{oHI@(Q(t8x z&DI{=n0L^!dfr}iZn$X2to=|nyktm19rG+YLcd3ZRernTM-R0ZswJA4&fAwP8_q;S z_piK19D;l}ac3{Ua?hGjK9k;Cr*na$A({M7)`+pvb_up&pibL2!Fa3U<>H3sUs_^7 zREo>KWZ2;F%juS8^F3TuG1TkM|D2Dr2Psy}uY8W3ui8g5sKYeL3+(<1sW+;}sszjv zYa!Bn$#KH~A1tu@wv50$XvPRD)gRCJEWh?BA>15}F#f**(iF3DAXxjP($GLFcvN7a zUzy2(w~r0{?S$9A(v{49_I>bK&S7#pVnsf_u~`1FT6nvpHy|q;f)iER$xCLqxKtE=j+dil%7V+gKrpP-5DB%l3eSdN+@c69 zk@5sD$=NS|yaPT{o6m92Q#1kHO`ZhkVP3Or%-~ec^3a-EZ%_J+?teq(fY5cryW=e_ z2|3HZ*M5yV8>ZX2$Sh;lLKRS(wXi-79Ypi83@}AYU4BqR+;d$VPaONV_4?%2e_F2< zcX#YRv}HXhC#t=Ski0Lyt7CQWhYJD>*yJecpH)HuRJ&3fn8d*=b$k`l!x!?yYp~|t zJ6pfyVb2RhPtZ?=mI^KrzMkiu?x$?Orns`L$iMYcY)3%(?U%pz>;gZO{h$Xc=|udv z^Tz0DG!Mkxz<-3Fxw*>x$dW>Lzg3sZ2}_0xF_P;s&AoTMJ0XdenUMhNl^fwPu%9#Lfj zysCn1(1=upqotQDH5;F&>=X>Ssaf1#{?r4Qh-OdrbRfc+`rN-2q;xGd(K_8L9Q|7A z51Jy>UFNgVaQ2t~21Gg7Y=(cdJ5&a1RHmF{;3feVsr`O=vs3Q;i8$?cHXL!2xs%uX)>UJdEIbr4OFdg zoOwBM&o>=UMPq?Ap2_q9m zl8)3JQJao$1aL17}ii3|E95YI_wh+I+O3F zVbEN@+&)c0v2Jc8%Fe_w0#=yLhY=3m9>ZN_X%IaOa}NNOMbl5526f291B(nIqvdPD z@w|NPLI)+E>Qv=94Xiq~x9cTbVWP128$$~$G`f2v=vX0yWFl_+5kH#tlMnaacdzW2 zPNF8Pr9;o03mXlDuHz4;`ov7Pa0b0~xZ@2ru#hjn#>xvFC1&n#l-Vm7PP#VqQT>IT zRHKn#Tya%WM*|~h&1bVg#~b5_D$*f*!4vHlkqEJ1quOWWPn>Ah=)&IlId z{G@H-FtA;UP^1@Z>76;Iy4w`qxwDL2#zb0{NTA zz`G_zU-|!P7?IvI?&+;;k675aU4mJ!MQjRHRr5XsFwpwHFwkynN98~O5W~+hho%LT z7p~&c4dB9qb6hW=H^8D^KjtmX>Wm?P4E`&9u?pA|viVM-?%KCHcSC$FJE`$&0sk3= zRonQ4^E6?74mdN?%I2r|Qf)oLF;l=Dr#i=GKULq<*XlB+@A6RD_{QjId!~|1k~X34 zc(PYbLys_tlg~+#FGqCF!X9P{XJB!~@?B><;`2n{BDfQ2Lx{peN((I|Uaun?p}U|$ z+pF7Qsup>aJp++w8YTXLln~CYcKSFnkE2rQd7Uj;c}@W$JVS@IHbHxR_6S2880>WN z7fzI*$^45w5l3@X%N%%7+OKdn@x|th|ck3 zP<4k=NCCx*T6b`5MG$wFcUPN%dZa_37o6=&&56_yS9y5?`1qP7^yeBUNjGCZf!6X@ zzd`=TVz?R$?hjqXp0KX3MO zXqxZ384?0C-D&|fCYEg;yQ4K04%Z@qnpcNO@W}{PB->U4^L_P zgnJGm#e>BNef9>6K%9{`Uy0SO;1t(ruY6QuB36?oSpN35sx_x`U z_{X=`J#R=ps{H03TcwB|F9YDlS9etRZMn^!$H$=&i5QCvkNH_m#2Gq-513*>#`@5G zCBjb;IB|1!g;?b`^VKlf`2Bddw+jGfJz{%9c7sd7>%|P!TFEDhdW<&J3v@nsd3?in zknd8}kuHxiA~ydKuv#24+|T?mHQ^aeV^|F!R+G_jF7T<=D>43kX1^o_{+ZkVg`Y!y zCG~Bw9HxZys99L|>G*Hd0zR$SV$G58iVsy+F{v=;)(^e&*P&)FC45#OvB|oU_er2h~Uqw3; zM@E|tA0@Ma&BszqM|0tEc^;tXzOX;A)z4WwsWhNNHdrF0hlfKp*~cMp9c}@|Gf{Dz zQ{G9=f%DZ3RwQ;GETx`=)V|9j;Vb8fI*peo;5Zj|`yg4U%^SoGbfG@bivRQ=U0$#561LzoS4$33{ z1DxjZFz>)tCGA3$GL=^b|-)MOL@s@`P%x=QyVA*v02FRu3pXN!|5WhE_{85+a zBp)uQE;qUxqmOZL2Y5-foi_ABl4}%_h_ZoX4TjiIcKK+WnX}tL1<<*(kz$Eo2V019sG#WDw;vc zqUOIf#qzE>XV(MUI7kSvjq45$Id{{rUbJe@h@dE>Rk-HI!*TSy^kT#bUze7YtgAmK zyCx7Ik5@4Y+1(EMuxM`P(fXM#s7lDY`;U^*&&AQo-O+bVx69deET02Z2WZ(+2wA(5 z_dd_mwvK5MCvSPZ3*>r4qs0E(YE+7ZP%;xDrimiwbeYs02%L)^XUg zLl&RUhgf4IZ?hpT(t$qO(tPxZP^dgCG-VD+aUvN{yUUcmt)3XZStjL{)+I-G!pZ8{ zvq;&R$$ahC`R`p?A-wmI^SHfrCX2Cxzl9MWML=^;NnaQN8JrhQab1QoMvXAW-%4xI z+_9uQ7Fe?zgADlT7lw{FH23}C--x6<^-+gi?*W8_R+m>3tyeSRxWjZ!O6izT=ZePR zryE(VIuesHt9cP%D9i=96uTkd2RP05zEbRNjLYZ-94o%w4I~KUW+L?Qdex&zW^S##q5hH1?WG+lycSAzYipQE!BhZ-6*1Qb%U_b8zY%Hb3H^ zewnfHqf_THoSDvO{9l}J7r~k@1O8LH-}GL5nXP>uw$U!pK?OF%NeVtUu7k}17sSOtcmlS5dn72a7XORzkA)}L#zp${Th zz69RQH8B@J7&UG2kXZiPBY9=oW$+Y`ErS1wpdP$+3%<$)Q>;yneIavZxS{&nht}xZ zlRw4#HsHB3Y3v+P%YJe+;!N-0lnh)~YcSR#bRIru&WwHJ18U`MeT;n^KK&|?{s!l@ zn}UHWjp}h6F)!~ucW%86rxv{}dUZJG8mHaMPk+eG&C5%k<(uBsGo%>i@ngRMpsMUt zW_iPR8neEU29H?6%+3pxyiKNZ^q9~_n^me%8+dzK4P9S$M02kmkYQ|dz1RIr2+@NLVgw0 z#_!YManx4rOQ?r6Sm8PHHfo_ssTnj{ZvI}FWQPc0pNf=xG=&X!R6mN5WuJmA!{@Lm zPHHLTIB48xqS;_K%4o1^8agOPHY0L6iPqcnD)(UPq6QL0AGHFkP4V!W-vRZ>GiVuE z-&W{30n&XqX+nxUC09lbP_TPH1aVc6KgYW@-WoBCw5D@U^hp=8$T+r3XIT?FOOOWd z)(?@*D;CmT*ADg}g<#=MkMt;e{cOwDW!Re=r$bNwqJ01_oysf6jR9-C z-JGR#UzuEO(HG(eqF!acGkm^1BS;9(JohWxGcK8N8u*E7-+Rd3^3)(rjIT|hF>;-~ zqv-&qx%gSO$P07W)!Gt)JB2vd+MQM(N>JwyQMDf<-ic4*pj;KjneTu z2ywHj!Al3%PX0Xo>5`LdeSaSqOF^Q6AU`maRpFYkqh-02#if8s?vmSun|6cFMFMAI z(zNLH$E4aO}^XU!k$=%9Sh}_;V@W7?e%Rwpv;@S0x=+-JnZX7xj}i z?VpFFE(1jhzxn=&^D8vo2mfB7Ip)^ae0f|(q46M+THXq0sr2j_m2x_x+3aA~cc8~t z;nn3H$`jMf4=AgB4|X9jr&^bHv&te*wkK7AT9z5tVcGy9T$1pG?c0Otr00w5-N0H% zz3^3mr8VEPx)i8y*)R02RV?&Sk-ZP9+L+H+arM?{Z<6DP z2n$J_E4D$LN|%f8N_K4YQZhnPqC9 zRF@F7)+IY8Oi7z%Zds({nRMerImtIN+0^g$y6LsU?@}V+#eJYG`px)x0*Wy6?=`WUIxzT0^6_t@Kcl2}SeMlfrle#!fSWFK33WyRmLKNW0S z;mPo4LU+7wyNo}wPK`OdvK_J`wTi3Zf1MWrYJ)uPZwl`})T~YTo#C49yC%$rqs97$ z?G^oy*c_a(NY{_H=XV%(yp+OMp{z6`AF_0LTO)(J-jW3_DdUu84_}t3AphQTOXsOT ztf6-}WlTFo$1u#s(O0=m$$?%9&dvP^`rw#y8u4oCpieQgWrVPA>I6Sa9_}G?aNzv( zl+EXZmU}LSB|*#vyvqSpUV`T!oB>imVqEuznzy3I-*o%Qop`Nn0To!w{aF8`x{SDL&=MdnV(cG7!X(nkM$jH4$nikJo$<5HbpD&ssJ$4>go8xaeF^b_E|(@OuXZ% zipH!nJn)UdsqOY^>AnY?P=n3dYV+4s=Gl!A>!;L^hub0k6Xw+AxU|1G{|0o85rE9c zX4S^I)WVNs-IssuPu=yv&~^R#yxHuimnFFVt9rtoaE2Vbgu2RUl7(HCw4l-;U_My~ zp7F3w*(j&lT?!~*0T+0`$P8#N=BzK*_~|(&zRlxHyYAv|Pjm7!vMT%%LHc3f1@YG! z!Vet`s}^8}g+Esy1N}`-5hNtTM+Lh)`o5LD=`8`Y`t>zbP z>C%#hDk^sQ9_#KNsOH-2$FYBpU149M9;9^XzU4*4uY5>tc_#H0vSg`ZnI^lodX4$B z*X29;M2`^*9&zrIIFH{5C3(uHK>M)+NAKMS8(|ayQCy4~!F2vNyfI}5#D8yHMFY34 zuASeydI$p|y%tb{nT`!hVHuzxJ9Q3jM!h3L$ywmQ$RU10ZnEY+}ke776;c@NP-tq2NxpR^@dE^3X3Lrp5} zr=;H`%St8L%w~vb=!Tp_Z?4fDut1$cv2I(~Cd~v%N6++#_9M3=`3AVz+xetzY*|Nl z<5qF~ykb5bAq>WkIr~VlddLI6tp*^xg~+(PMM=fqJ9E2K122~U8e-FX1XC=YKZH4Z2Bh=iyy@gP@)ECO@zIrQ3?g zpznx)3(#2ohCYBfgZz!NxI6G-R$FuyK;ZytlO|GrQ|uGDhTNQdtaF>xVK~=Z67lx) zz_^}A{Nt4vH`PRC}1#_XISby!JVDp|q&JQ3366Idv+-IA2=MGbbTUGj6}s4&9J*U-?K1 z0ji)3-nIE_TwyT3(X1-qv385e=>5lm0XM4%1y56Lui3 zd&Iu_emK9z;g_G^ZFu>b9>}BhM=Epu7_N+ChLFDfwD6Pb)5t8>4rcc=kqE@zphSSz z>QZ8B=T0>=PUvaE%!ZR3DUf9bE`ZE#Zuqc1^wXFqeKoASygTsKNhI#+Wq}h|7L9gc zuQP6nPL{Q}fzYAN!{Xm8tvqSiDSWWNr`19ctMIy`Uqk6Cw;!gc=a&)Cet1b}JJESY z{%VOo<8;bn`JDhvPU7_}=eh^c0?Uyg`&pisu=RcknhZEW87+MEK;#Ir?)>w_q*omI zsI<+EaqxYrX!;B!a)Nf*wZ5o2+)#|oRDbVp1@w9Ae!W*(aRnjy)w_1I#0;%DG(glF zmi5hdZLa=B^xJMo2ul8NOqwlkpe=mrugbwuy35!L>@D=`0J7)+)nMaxOz5kg0;#kF zXZDPBrnjYOvPTQsDKz8i)jF0k6S3+FJj*O$))Q6pdR>i#lQ8l?ZN}b}Z1i4>_%#r= zijp0^tKTrt$vsi$@g=@ZuRr%ThOvIO_i)2@sp!;fAr?ec!N9aqG03Q^;Cwlg5lla&R$5m-{#?>~+8pkR!J1NTZUE5EhTi^#?oh_tas?x(sW z1^coyOiBAuvt7xQXXv2h-MnY%NCg7g8;&V%XBbP3>QTy3Y&B-%Pi__oOAM8KI z6>3_~%xMNYl=>^Z1-^ddHvu(Bv6-4($;8H~V+KV5jpFa`s95v=#o1R!McM9aD;-i& zD%}kNiZBc%N(x9fBLaeSOARp6Azexg2uOEIcS?hlbPqN3(BH$m-@VWN)>->}>pN?) z)~uO-hI#J$cm4Xhz!afk-Dd6;X7%rLXWW{*MBBBBC{I}J69J?<}b zcF&7s7gcyxd>g$vq0LEXB!ZpAF0)#@wKg_u{n{Wl)qXMUe$jldCeKu$SsxcE87{I| z5Fc`oB(5I%h+vsa4p)voLCU>vHE)GJV#((q-RL|?X|+>POn~@+B#yy4ok=l2QE4V# zHfJVJmJ(zJad$IK)VTQ`Byg1g!Ra`mAv--ypIW!YZa9@97}y&kGlT z(4e{uHnZqzUMA6~1msr%&EvI+2pR+nX$7u4?=0W6Y#MsoCltf!)kivX9~t*WmCr%9 z=eUe-Z5N3QYc9*xtBGnc@~EBKK8nQRAy+d2R|B42%RB0w2C+sby?HpD_~5iN+vs~J zA0(94G(nJS3@FpII()tIV!n>Qx{KhCXREzVHM)f?p&m4&7Hf=E`=5|YBBW*c+I?Zz zm?ZquS3Pqzxg7HSTTW#@uG!r6&r=W;ADj4=fvHP$pYl^{k@}7@oBs7(_d#WgafID( zt)}wp905o@;|C8i6@FbbSzt@IN2VZ+ z!KC~1d(v%WIo_K{ri*oqy|-`{BYduii+%bITmUmvbef59`Ybe>3kkW+KmF4EYja)TL0g@4p<50(do*6zN@o9eTvv6l`Qte`dH_Abz71y#q z@f3veeb!Q8be4Lp_h;sp^22GN?5a$#Hv#wrg@Sc}@)gDa$b+vO zUfXIpiD`TKOy8O%{i1ScFSMZ=Q(o(h6Xa$3P%>i4R)ufaJaIGhEl2dD<|%Df>&>m% zrOB`c9lT-(Tqu>1VO?$r^Z#)cy-O~3fZ4SMG)YPW%2C-{k=KJUh#S^n%9 z{)hESCl8D`k=U~*)PBR*)0(mhU;0l_ySAlI+9Et@qmCqWGH%t~v2Hx-)~TfDjRs@ z=%Uhq%-Wf2Z~PqXtMxs*rtl)oe{unc4cdvJ`PkRYIJ6iA#Wz7JpOUw?RZj@m>U&N% zKz|HWZ+#s&t(x&9oU3Zc?7LVu0~$xU4`7d+hMy~hhheMcU=$N)NO@G(uVJSp^AY|Qn^9YJrk_w%CXt%h1wBGD$Vl##N`U~hm_sXC z&UahdZ_1aqEW8?a!6wq%Lvd10SHXdWBFG~`GKGmB#zao{$@g(3{^DcE$8~0fxja(%fFhfCZ&N%=&r$)5?{y{8hulqh}D`;!u)X^-}<5p^=a@1S2!xI44Hnb}fa zBP|m?co2X~)U>mqcuo}5*`AyU*{?mX+eu$D#+0guJv0RBPt-1MXDPdUhfkiyADhTMu!c>YU45@mR?@dRd7-Jn>@-m&-NqCt z5r3A3He{A)1fm`jwKa=27k!w=<9bcwq0x*S{B@*Z!T0HS%4bmpydGRSw_g)?!EBbd ztXN#fJJ-dN!%v~ZVUn|3^Tknr)!ItE7aBLw>s>p$Tjm2g_flxiY}>Cv8734J3IKK^ za8yvMR`5{66IuZsBe{OE2Uio?aTnpW-LFyq;3?sfpF&x9>a7dVT(sG=7stBwI=fz~ z_6xh-Wc$TTD7hJbW9ceD2kplzBWGN-aD?+0^1gVpRsV606&CR>G#g0XpWg5{4G?-# zF>AO+x`?@uz8%CGD+tW2zGkA>+lF*bEGUcb^*AdkCGFt9@O+rn ztcGkygf_>!a>*P_ky!^WIC{FFM%dau-LCiy>2}y%(ACU>j>V7D-*QW)nFl4ye!=}T zclLIELFAc$_?1I)QMp5H6%7QiMDs)gcf<0F^djvv`CrK;&1#*@W@rba z1=v9j4goFJx5kSB_KCI2t+b-I{IbOwOPxNqFK)C9r*I;@WzXpsi@+#jz z^rT_uoYBR;7V|h$)Z&z4o1`xwQicmL6^mckpcsoyPtOz8$IP*&cj>zIp5|>pyR-Tw zRyY+C%1Py_2iCXGt$Q(uTOZXdIQeACfAoF)X67_4xTJ>^tBp*wJ5 zuyt)#@^fN2pK8*;waF#JqG`M~ytGkf|B(Z<)w30gae?YKu?$5~=WTTkuX@`pd}~M~ zCgAnZr~h@3^Bmt!^FFP7+3+oPp+|e-x+|m3p}~t;y9&+CiECdO{mV9WghzDR`;Rmp3 zE#qIfWw=_X`Dh?-H)MD-WudsNcWH8+yY@$4?EG*o<ONq&+<;9d`FoOFf0l9}ht{*12;TmY)zt50s4QT9EjA9wK@qQ1sLuWl~smML8J{SO?h zYFH>C+^tPY4WB5J;5suGqt`^&&kaBp_TS^^{V(n4=1tGc#fLUlPf~~Aa5Y1om8r@t z!DSr~gOOisjFtU)Z71G+-qUO?@xm#J@Pkifwc{`J^{T9Y+KX4${XSUUlW^c_0NBpj z6nUy%9qLaPD<#Y5I~$K<-INXtmaMo&C~}wST-oSx>?6caoa21tZZ8qr4kDz!zK=R471s);nH7 zImt0jq>j&<`IC|ovoT7mZR!m)n@0`7P``kF|9;1WE?dV!=e`e0+}5R9#_=|BTT<*&4ZzR6YcuT>4x#&MxeHG3 z4F)e>LJH2|&kJPDjt?ZxWgWtJyFNc(0n{h1))|K$i5a(DI(Y8j8mGDAKHYoN?O*K< zS2c~SG@4XwOcN`#i(fBr|B(CPs%X5#@qGJQ`L*lz$uBTlSw1kEg%zMyT?b{sYVxK- zU;nuwTz-Ezz;s)8;m;711zL0_==QVP>aibc0Ln#cE!zCS3#(#3gY$8s)%h-O4SXQL z&Q+q@fff}7I~!c+UZ`JN=B)1TysS#tsM70>cZ5gxH3sfHQoPmcE*d_EC*GQG2z^su zX-VnIOWWV*-^HIa{<)vqH?ie)H=6M1ewyI2+aH$dH{sotZp6uw^n@G-cpd!gfiN(( zO@~@k{+lcGpgz10Br4VlriHwn(!rGOTY)O4=dDq;$76v|wRkhQ#+|@9Vl&ZM9{yfr zF*Aa!ev}7V#(8r8Z-Mi;c(!;z;G9bL1bz{U8)U`eY`?i0-7RweyYeD8n9)Vyq%u0O zp>GqWVJE6Y`(5cy;k>t?@R=41vl!l;!nwK@)dfpQY{bJu;@v|^@nC`7n08vwoy0jN zNoT%4AaTwINSwo)1Xe0udZiz>z;XQVP)8W;?kA=Ym+IduTgHOihytxTO$_Trl`@uW zpZx1HZ$RQ$a*XjEx=*Ohh-w5S_v2>$jlHdWX-c@0-fJ#}c$4b{vO+b- z_I|GY_}-fA%F^(jOGl3?&F%)L^!2=t5tPT_S-s(hqqBK2faU8xkW<)Wc&Fi@oc;_Q zHF%cL+z`nC|=ELg+6FLauoT;gO|It|QEOzgf) zkCUFETt?2Hj5QHeb2yrzQODlzE$)pV%Y-T8=psxZWlt*QDLt0dAJeV9aA8Dn00QcH ze+j6&j3%FiREOf4RjK`E=o1cKahBUfka5sxHG8}H@ia6!g~MtUHanW%m@t(q!cdCl}_K{DSX z?&L6mM|<~#2QcnezY@Oa7*n%TuwjT1@aQ5*QY1mPz<(Zh{G5$wG59PghVE0`=-^hn zyLTCzmRR4Z$@8>~WxNxpDdk$wG+WRVtr&kj+?^@rkSn6mo8~6WN&^U>jXLx1pOhB0oyoM$O;Y$*6>2gY3;@VxA~;} zwE~S7<6+0gU^+;atowT%U|Nox;_)cshL9gB=vR{0+GP*icHrb6dA|mf!_jnQK87an2+N@HQlC0oX ze*F>-GmhJ0Bn0Q~j>qAQb0If^=)7_2cbwiP9n95))LToaZ{>~oqs=s6di?H; zudaySQGM`v-r)&t&{lJ)$<_6edksjf62@Nj72nJ~TL}H~PD*O^_+&tFy2LbLT+xh^|W=va+4SoTIeaJ9yCNt?=1?>Uaq%qs*D zG|uQ;A(U`6I$8x8VqsoTa>|d~pwRR{{MWU1qJZs$WmxfvNfg%gg*yG_sM*7L#*ape z8tb@M?;*Qr9wFI?2B=7$wLaav$iV$}G$3l{_U_k!@x1%_S^dY4L&ZUXL(NwL{B5of zed~+aVY7Y1_Cp#`fA{r|B;wx=<$*NA2PV#@wauD zfZsxgJmI6S?1v{3Q#N4j*%^+6eE6c?HDTN)7y> z!%vtH4HB$b%1<*cg_m3Aj&deOzfS~v5R>tx{J7J4<_CB;w8WR_p@hT3QI-y#lT=^v3wx^LtDPMHWBR;Kw%4x31wR}?;j8%X!LZ& zSLANekrKE2`{w@rk_5d&@SXM<9>5LX0nIO64DYLh?plEZa3Si*2wb^LR7OVZfKOb8 z*GD=gS&xtlv3h$Ih#IF&juBGp<;*73H9cM}#_GyjEy&s!>q)MPg&nz!u)q6LPhHZ#Y=vb~JgG$!{-UIS+jRFG0j@UJmuRQI zz4otboDO#aG@q_+zZSapkAe;91Mf2$NtaP~aI({Wc14hrl2qhTyI50p`G>G7<*vN- zC32rB+|zmEmaF~-)4lTzaJQzkb%n@|NRmf)`^IJPBraYd&^bU1YN%2>Gxjl7@fi&n z+P({=)R~S*TN0b3`R3?iBQvC{TL$zv!A$E(YL1tT)plE zii4xLht!BDRGDI`GAr1*Cym%`DLP#3AVw|djrcVhScuIF*e~M{D5tED*9FO&&EDB{ zZ@+kT7Tm+FQjcWKt1dTI>>QoXeL4tmRDMDW2(HhI{}!VD)B64qu>Mc)CYYk85sLSP zJ6Pl?Yu(jog5%z^C~8j}8oRu>TxfLi#aaj0P8@~}UnTq&d~N@7|1 z1#^8L6We8vJcWBFoSoHAXqtrYf>}CWz^hN)F2qCiw|LV#D%zcx9A#INYR5j%+n<4f z$_mOf#P$gGyw4w2!7fPM@7(asq!v~_fCWvQLOn)otBU^p0z#^1rkywFP7u2Awp@iX zW+7{w2|XjSfnY|8?^W_nv_gW=w02bV72E4uw1dr6m;?#t{}u!2e6IL^2@Zi%GZ!xp zk|>BeIf*AF(}b}OJM7q1y!`sIsK;ANm_Crkh-01yYZn~R=QNnwgevuw=Li#SF=Q*B znh3G<_W8JVZ~>aF;A;Bpm}qJa2P#zI6p7nXg})7n0J4W}E9(s{B%jqPSC2&)=69Zw zr4&(+xy-}D=6x=w%be<)xm$@L;N`3MRpXGeU)*MtgLbR)1rDv;ZeJK+Y>9?y$^vYG zLcRH7K!SW(IqN551+f{A{Y#%%eBQsN%dE!2>3@v??|mGM_)G{ZpPVe2W!)> zm6p+Ws1k47iyp-)L0AMaD~h@IM&}SdHVp}&kEiKW>hZSjE92AOjI!02HDcCBmLZ7i z@|Ze*?5ML{h7P0?s8NCFCo-j7rZjY$=&@VdGdzGC9z3r3+A*Een29-PI7mI~UPkPP zT^!<>369mgni2J$dkJV>7C8_2f~-5O@q%}v7y&{nzQ@xKk(JUY)7_{^+-#alAX^2= zU1SH5iKEK$JkBW#9^RJPo%AMLa7Zi#X~;nOff;MTP^|xzG1y~pzNW{z*`YK0D@<5^ zLRKrigZ3&MO-hh>w*w@Z)xkdnIt+DBPn8Cd%SzQFKKkWW)MW(;trkMhSsq_W)4ie< z%lb{|UKOpadm0VESFZMBkxqE7(Nz{I=cXqRQOH}xz!W1M&!s#83&s56n-VWL%5hK5 zAr1X|VT39$a3NOdKwOFLusp@fH5);l-YV(?zLx~*D<`ek3Xy!_-79J36d(N-mfm`||bgg9CaQ>H9(*{E{6n*i{sK(OiffNXI#_J_}%j zE!DX@Ysw;Ov8$N6Gp2A3J7nL%LDTe_w6s+83^ZkR(Mmh?Y?qrXd^Dq6z+pn5Sp+X- z#7BOB1uQd-Zh9iB>@Jn+t0E01nAr-no~jdzf$X*1ML4g~e9NgROF;5eE)@3;(ZXDL zvHH-IL2{k4$yF*w_n!mdZ*!GB}#lY|Z*H?R41<7q9ebNOu&q z4Ru^6pdZ72%B02C6#ZdsF-Q3y`Y|u!@=;va1;k3PHv#>acx4enCU?2i7Kh$k0ug6P zv}B>r2KQp)1ZZ; z0dRsa%ccTaqGmf`!$Vq-{_bRZQv+AUlQa<804;2C!A-Q`dcL+}sA|%H#~Cq|F@3p1 zct=l%~ueBPTWtcV7kXE;}+dbPrHAKAF(smHp*T4f~D* zzE~YI?h3a7bSr@89P@JE5&TQk(>(U=G7v$Dg&W>fG7(BGvx} zOtQOO<(WU^3gesSw5~poQL^T5zF1$D_1^C*NgbQCJWtc=5`lJwBd1~sCVL(Gd8mX8 z>{9#4glqouaY{&IEZ2WP^I`2W@c`pgGvG*Z@IMUgr7tO0GkV)zpo5Kgy{yVahq-I(A2?p9k?y5yBG$_+Wl}gi^%V5Dj*8_y2no8d zP6Nqt?5-9;jnN^U%$?-;Pwp3>n*;3JR1vd->earFUF5~gB;&)K^?Vmw(>@zpfAz5L zZ|WQMv(*|VN#{>Sw&k$%oXaI!2SYq;k`WzNv%_IFgg9d5C7^Q|G3Lw7c;&4O+a)*W zV94QL)y=1q^lvRc8y9Z{i_UNp*KRijwQ2eVF*jLP-qbB!!LE}7AQG?HI0>#qHoh0M zWvYm!N;=G~QTl6Y=`H2pDC$DXVG`RV^~$xI+(cI#__gqR>go}yK%MRxrJUH{G+$>26*+z3l z@tW;j6v+kEeSM z+qKDizvla!cV38R+#$ zV0Ws#QMeFZ&gZR0B7i{GhxUr^ZnBhOdv8+-O%P4TLES_&SYHF1A*T+VaMh+|l~-*a zi>1=1Fxm~qa6dhhS}ci_An$5AS4Q0l=Y3?O(f_3JLn)b-)_bQH`FnOhK&U7Y7u$8d zKKe@L@Ir>1uj;1iUaWyd44rMq$o1^(ROi&&t!4P z_acRCQjHk)gBFhWWboOuwMT0(iN~ee8in0|S<%3AWDZ&NT6m67y2%nI#e=g2@djmc zac!kMepA=;=xxnw#m?dhwT*%&b}hT-l(#hVG!o)>drmqZwzBh8V|&PshSK07G$=ub zQS7C>X0b$YiEYKne%p`c=~7jA&0LWaY6;tj%D;5*o0We*pKvBgr1rlW8UHPF0*dM# zNq$dwsgt|ISWWd2ziva=4tijrE{{Rf6#IurL{Tfj0(jCv}rNy#54o8a~;q-OL z^f;PA<2P;dap^3AJQNktQPSQ{BoQ1W|?IhG^4hikYFZRa!<=Ct9uCt*K6n2z|2& zW8kZI1f+QY0qKZL6hJ`g{kG($M;u&U0?xCZX+T8{bpMlp)B+$NEuEl*Nz?#F@P8lq z(~yy(Nq*diO5{@x{Yjo}C+$>d?s!U{A3Om+`{Mv3waV)am`k8Y%{gDxa6Zh); zxMHY%evVKPtZSEA)yA@M<$QO{dDu74MqcYm?(RH-<0aW@%*C0+0Uv#?=OsT8Hg~$v z&H0IS6W3OqaxjkN{7iFEMZ~0M2bsxB>5R+rk8|}$Gz`q{m-(Rfd~OwI0u4RgH;0RD zjG7!d!_LizhEfQxMAkdT+WSksDAoOQF<>Uw6Z-@t^d{*UN8Y{*^1d-#%+(gSi2v<4 z|CJ9vdyXbpbMb_7w{)54RSJd!ZU>iS2WM_XL+~R!!e9?ixdb7%VE4C+gf5l(hH>Op z84VN0yDL=w4a>r&q922OqR8pM9Z=-w(4+@)-Y?=loaYL4+NYz>9fmY4zu@LONyvg6 zPQ?=<#v|TnCDfJ6r*iAl6J_oeep_RXSfMB6B8r@m7a12xeKiZnI!`#DqNLc|m7luH z0sYJlW4LskiO^C8p;2!;m#$i`T$-!10@mgDT5L{)tJYO?!%3v;bPnw;?qRg8m4p^s z0|LLC8o$E?6LP@zeesz#!&_?rOA$Rof2JvKuNPW=`U8UmkN0Sy>T@JN5p~IJhG(}T zBlTM{RQ?rMDN&PHkhRc?JkBX~rUicTTUQk8W$N!Yo=0Q$R<7YH@$?fKcSo(^NWr;MbdoZ#WuChJ1l6v~ z9%v)7l1H#O5bwy1t$(m`~xctd3o_G%!ahU#og9@kXSuR7y#P_hQHA{iNyrDAo z4fRxoirZ~FQS9D{Xr11T_R2v*AvNBJP*lqV{?ZS-6!(21-F?V=W( zQF%{+5uOb>5nK?gGOs<$vf`u+M6k|4G(wo6BDsa}ej)ANOvR}S+OTx})d=Rpf>94Q z=jGKzHDI+0f%~TnSd=nxS;np_jpSKnR{Sd66jK8Y?aW%(jHPa9U@^S8z1hE&=@{=N zNwOklf8P3Z(s|WQb|W*DsqM(*ie9dGhGy2w@d+C@TAhm;zF$c@8Xx4>}f){b_;2Px0gimW~G^4)R2f z$IyMgwd?lmx8HftL72ojiB&F-IXIQ(KFwM4IeB zAE;t1ruB=QqY4#+`vih+)7gW+eS>Hq1c* zu>sY_y2N9zKmH+0D;#kDHPK32NQUNhf_W zBH&-MI`^2VM9ys61!7X_JS{A{;52S>fBxs$Z--lHAA&@}Cn?V=jXr#RYT1+C_2viG zRgTw%ZqnWI&+ey%z~|bK=iCpq@i=92QXIV9P6K>cxP8JQvUGIKF~!&uD;}XHc5Y|D zgjSz9JRrg$IkehFZ*oWP`6F_Hi{|}iB9oO9q|F~?ld5>_V8}S1UU1brF(|df!8NjV zHS%S_YYNz z$RdG#SK;LvXZZ&K@)=~QbX{e}@5g`sQd4AY)}JV@)!KvVZ#C-noc+izS<}s-our){ zp51StY`Q`em~xBlri6_Zi@Pq^d~6ai?|ZBghUxs~!rn0nb(4iEtTNRx%O=m?vlKCr zQ@?1f5?>n|YVYIXhK$u3;P~nlPrL+4gbcaucbQ+iub`?-y_(j)iq+GcP(qXmJe_x= z^K*~u3QfHRK6#@EJT~SImbM>{wLd8+HbB;Jx|Aw^ojVm3e)DB$Y8d#x=!C8Z0-swI zPdcfKrBPb#g>(ITdF)@^XW&EF2iU!RFa1i3R&9OK6@KUs^$tBrj2hyVd()DX6Qt%+ zMi_i$MAZ>O2nm@Xh<=gZX}bLywx%bZ{`cZec-yz=%_d&X7h>duhEe zJ7||qzL!A|!|m(znc~sgcQ;{EI0z`?&&U|DNhBwRD=n3s+9VHL zhDy+{jdPQ{6Y$&&o^6A`-9WhEi)+r}oD`^|@r7HG;^vR0NnkUDhh+5U6wRpDQ?3O( z?Mq^H2@eS0G475Q6cgQgoUgT*N+-BZot|YZj0CYv+{G>es;6NTJZ+5*v-w`6nLoRhB~| zXTN?#hxQ5?rYyQOReEmsLOJw!|F`H~2ux*v4LLUD*c#B5R=@X%5CO89#YW&hxsP7} z_n0o-u;|znZ5vi4ApQ0xE5$)ULWfGVYI4jy@c~|>__@aS{c+L=+}-!SL%Ng(w0_2{ z8>kwc2ZbU(_oIz7PbRHQ>os0KeyO)SsvBbitmS)rsZY2pHx2G!( z#n;7rd_F15GMPtkrF)iW6>xnv&17JIp5F2*FWa#slmF8k9WdwtbK8@sTJG&r=%$$# zyeq_roWQ%{u}-(WUkQj;+020+M6Qf&+cnS(He0_D)6=!@Lo9WEGO$akrHGh`9S3=6lJ!+|dKvpO#%C3P|qfG6cIF!+0nn_Q$xask@iGG&qqPevdF5fIWdWu9D^vIj_R&_k=Qqk#5b3L@kUM|HgspRVVACKH&VZB!m};+W)=1ah)j^<_k)BA3A^n&T@vAR zTH&ql19C4(x&v_e-(rl~Y3Dhy8diyKYdG!pR*#;&PwzDIv&F#(^%66@4J&Zb(o^=u zgrx-??>E!) z&whDA;>T(%OD0}!C<;xdak>Y39fzctyUe(Mm}RtW1ugoEFV!)$w_d?`7-N{3sCTsGeu%GfTh&=S4@)LL#-9NLFfjgM2$=+mzD9hS?2*v@z0 z^W7&zb`96cYS6v|*`OltnvYitEAjR(A0!1@!#N5Tz(EUM*YO$wCdy#327%KP=7o)5 z>Gr`{yV%tVpM0oo{@Ky{-+X+3Pg?!AT(m_6{eH!ABr8pb->_-=d&Z<=4RC-BHU_Kz z*QZ&uYWW_k8nQ+~h-cF{60hoUXpO-7mobUdV4z3lK2c!6{yI<^=tnVZF;4gg7=7;N zdo*I@t|>!zRZdkQqLC{el&5jO{e*ry*CpJSvM=9HrDYWBX=PcVKgz;9LD!d&>3SIk zkHv$x#1W`nbTVA>CvWC(Uv3VE08wpV!?B)NWq;s~;4ILBY9}JPxucFUJD0BCVUkWG zGmHWXs*a2Y?G_aWZwao2|_a32Ym zFK~Qe9jyqzBN!rR%i!7G7Fh*9Nt#XjzU;VrY%vd`0q6r zo1fG&Xm5g+Z-6KQzuk$iA&$J4W50GzD8uf-y@w>jRf;M8L8U6hv(uDDX)CfKFp2O2 zb0d4*??Js57slumv4LNGN}a6t)0V15_rpl1>85_9fIVd9gmXtMEimT94m)B+8m7@! zc9bTK(u#vsw@@0p!g{!Aon7or>8NX7>#qhWb-Oj%o7K043+xV*_*bgLvSn5_*DjN| zl&LQHr&P~ld}~BB#5jCBk&X%?t zVXscT54Qzo#FbO$IIW@sC<)KzLC-$&`P;Cpd=yI098c2g4TZ&rGn^c+B=Dd4Zvzyo ztxxqW7Jewza$t#Q)|G4VOj>3f1=uY>&zgrtu;M5@c^OOBfwFBIW}>0`;m?~-{O{ry zcL8{qK8o!eOK6RYcN3aloU8^J9Okqx!GdnTjrTTF2YwAeClmv{3BAAcc7cfqU)1*O z68TFajR@F+v0#KSp3c}+2Yuwx>1h8{c_ao&)$l0^BRMm84N z{O;|Wu6RB)((!pjgys`0PjBR>gWYKp#pWu-Pd={Bx{l^ecv#8Bi%v_p%pmuXl+T?8 z=|f3$&?-&kpVBjvlPa)_?59MGFfC~EW?_p@vtdbJ2!O0 zo4n#9tUbx{Qr_wjy(A)(r%MO6&GSj$(14?6CZrJeBteC?ZbgJ^JS7u;yr#KhxK)dz zymzEYuWMMQ7n$XQ4lAWbVTBj$msy}zq=LjLec$Q`?8ds@nw{Muqo?9!$}`TJ1YrRY z5wr^Y`%SjHpZdOvth;RuQ3&iVyUM9AyBd}>9(;JB6UB$z_;tkBj~l3Kaf8{GUra)X&q7E}p(UI$23 zgNzSX9rAgRJ*m{%0n*N#$QB~@O3(9b@Ul+7dC34!1G*u09i>2xx|i`CTEMk)en^t={99dtw&Lf zJ`E@}VfRIM&L13S>kkj8y-y}8Kew9K@lLx&984M|CU?cd2A|l!%#VD)HBqYYmT|IJ zNk=GRE?m@l+CrOcmN9L6%*2;TqZg&oe}_%kUF=`F|Jd2AoRs!3;s@c9O7#3J`Ke|5 z*wH03z41Lv;*@r&#t|Ufz%N>%fLM2Txmpz-YsfDSX*#gP)YH1Lw|1gOGhp?xx6*t;I7Xf^sV51Fm!bk@XEPhKP3=yAhvK_O4&)1;=)cQk`X^ z7Je$h5SJ& zOu|{~fG{+gJ^;s&;fGW!@3_>m75noZ(&Lv6exD&(ei|o2Dt|D{0N$dtDDJva70$FI zrP*lm-X`a$msz7QqqQPK6jIfdMN#);JUZxq!hcJNppIqKAR3v!j&+i zK_a45(B9TDvr+Xt4EKW`ED||pG4>%_`55^`t7+*9xxv(ohvhJ87`TojO7m&7a|_dD zIc34iem8Eq%zYUxf!6T!Sf*hz93(kv-q7<$D}96HUAfwUD~HDM7mdVXp|fb3_2N*y zLw_i(EDijy;&VUHsEiR@@&RNBg1AZ=`PX`jclb{VO4{bJX%nz0`In|Qf@zI|Y-*Iv z4$YpOE9h6jBwQa-)LU1XX>Yrq$CoW7#i|VP4^jTnHgNus@(jXVR1=$^VdVVV_gPfn zVQKC2snS}p2OSt_1#7_SbWYYUcrTp_t{79q%xSxF-H7dFpD6?6)}^fhJQeE`sB>y>q7tsTO5Wr2eF(|N{$g!S-}qjhq~5gv&vFg z&9evqLs$NLTTv;lc%7`-2nVsU?|;>yt7gj#>oNAV!i3(;45#12n(?TDd2(V z;mcs3?!*fItlv$rE^>MG#I3{i)1oz-@2$tsCNr^8(^Cvaqr^s>vu%th4&l*t!UQ!F>znPO;FUka@^_5G`#B8t%i+aMH~YL9LQlo?G{ zMx9iKaGR)w4y&J9AMc9bO`T@>{K1P{zzp6suI1fTkc^!7wDOp1la3TgB9)0BZeS>zdsJd13-H68&`=r_rq~;a|Tk z-&yqDte5hPsqs%?y-&`T*qeTC)`)1UXxFnU{Fcy*6y-nZFM0oNH&o;#0I!9%Sk2Z)NqYnn(llPqS`(X+%7|0Y_(}Inn!?NyCDM*qIsmJexO6o_lwk_GIMWT695qB1FWC6v)kl$ z=00T3euJm&hU4^u)8?7^&t5C5;@fJHFA*y5UaCBm{LL-&mgpokj_-u8MCuwNBmrv= zFG}d87xBzbvoSacdx$r!Ck4;<8WgdkWuXfbhJ1<+V+6`f|e(R{lJH5o^#g z$R}B$qTG1JU6Ex?L)>XK(aW6~S3HLyhrV=?s*p_=J7GQ}z~=u4XB&&O>CVK2?9JYV z9Q1|A73WL7mAs!>CC+OtHG73Sf`v{;i|%aR^$@~#dRwLQk;#cY`QfQRD}d3V@;i$; z&GB6c@M*$r=Y(e_m^fCaxY_CFHTVm-#bh!0Lj6yCPDE(}^D=C%zv8G8yBSNanhY#h zZTkYIJ)HH*Yj?dL>^56#aA%@@j3DLQqV37di9wa4e$_R8ma~C0HZ3M`J>-sPo_ z(rxO~x1d4t#pqkKmdgtdEHzc@iF0k`ow4M%xLjYCoZn$T=b5z09Uyp7u9V?v2-AT| zLv1Ug8J+c(O@WN2%KpofVL;Sn((=u8eBoa1!wL#{#3sJ;wRyiE{bY~&I}qUTm?{@d6{g_7gNGv-p-4POReGzV<+8q1_Bri&66a zJq#du2)%1mZqt>iG9<-;n5zuAjmlk~9x990)G}e$q@w{W1Krg%BAy?uPO%xK@xY_5 zBME5Twr6x%P0W7;lmLL=r)AR*o3tLs9+vI#kz0`mNi(8B=))h>xpegV6{~ILp zcTG+UjM`V^VpP!0-thNyPz#muuiM{bmBakr=>gm^#9~-thnx&wCEMjV@T4((l$lQ) zn@I!t!!`z`wzcZ_ED{prIhsZDk=wgx^=*ddW>*uwtpo$3>|}ut$QnDvMDwh_gj#6b zEV~iy)Dp>k(xn2i;9`GJYADeBJ~hTzR6&`@(eS~Y5nj>ir!Yo5naB0Uw{lpL7c$nB z9ypO4xZN12Iu?-4OJFKJ*4o)8Yb%y^z%h_@xvH#4lJ{{!n(m@Syz6LirIPVhm5I-} zyGs}sTiEY;!-t*ZWzv`ZjX4%`(nh)o&nIZkEYpYhenXxfr|2GPakLbPW|#MIp;AG> z$;_fMYZ^tmrq4Pf&Wzopc?aSbHD^tx=K{SIzzIuR zh0^GnhrS-uGh%rLFC_tM)B5@#bX`;i#cT#8sTguhN6B`weJMXbRf&IxTBUZnQN@#K zJLodI3OB@NnGI3=i~?tNs<(Au&fXZJ<~Ge7ZyGCrF5?){xydFT?d|fT(5jZPwineg zOLKLxM$y*)+DrC@5VhG!L<8Aei!-0P?s_*Nt;zQ9L7HrJS}7s>$-_`{dhr_X9)%)z zCjeTu8m>-E&nQthJ+<4uh^q@zl`H{$d*+#@gJ9J2*`_7mrm9p<+A6t~yz28K+9ah| z2$o#jfF9~e=$Q^4v3-~jUwt{r_QDAmxt#v_*nvHwKf=K4OvwINn|BiNE9o=i0`H?* zHo2w|+_UZfiPN}s)UAk~BZNtR0b}otuqlgiJ=81mD)+Cz_Q|5_T0L$xGl$s|g7_2q zou)0}ji&0@)#cgR8u)0$j9YvhvN=BSRz2j$(Eyv0aOE`nWRpez2Sy^4$5_F^ROPr( zbGKOloTir7S|UJ)9(R?wCNhw5L~!%V3hxc|!yiLOJ`xw26=?c!p&<9A;x_^G3Xk!K zioYvm*rHcp{I*tnmJ&Q~81A@E8!ZH+I7r)7XuopP{+a_2Z=udv+P5|q6pm=|684zW zV4AatU)rx-mFbz|8jVR@SXLx-od1Z$3NH6@F-n7#3V(b49*8p~up%Vl@@NErxh@&( zD0o-MO!1yF#X&;dHX7cnQrDLHCCkpkv?PSJ_Zm1F{y(|}-YX5d5#Ze&Qx6%5>v)#? zzMrp~Qc_lC{nNp|@Jw@Ef_$$F7zc_gAT0xkn?9E zM?=ti$ELmv4=1|kWqhHk>E&p{ESu8^1cusC_@>(C^0W-E)kB}6K8i?DR@-k} z2XQ4!xloG@SFaa2LmO4e8yw<#`m0SVO{NH{8Mxcf?Cg<$4TO_e-?oaP09}%(Vy1yU zd*sJCF&4H(yccbRX8qzyhbMRg!D6$!t#4)kS7j^QvAc`dh(mneL?iMORq9Te%hWngj?XPqY0`hI z7+;-UJO_3OPo`hw0NZxn;TYL3489=!d3*6V>~k6~ zibUoxb;;>F=jfuoyg~V%>%|{(g5>J7yLbY+ilI4Ru2iO+{H0GXu~DMi%>p-M^$PnO z&MIwVR-EvKnme?>)TZY$`@YgHka6=Kq^A^m7+1M_%>HA#`Ol=Yck=abH}Qiy@CJ!{ zLcUTAn#Stnotde~=+H7HE>s0V^yzV9?A>7f#{U^9T@UkU5t}K4HZJibR<%&>moKMbd;c5$|8qN{e;qSsA2USYJd#^JdoQYL6FpZ z9=G%@*AKVwCPjBINypBhkwuTOowKFreT!-0@N6`;%1qI%HNELz%g4g~xVl_VE4=6U ze#w?-U&L~esUxnOJvVkzhvn#`p!2BvMpf0;@oo(mU1DNxrx89=Sdn^KlYaEcD7t+% z#i4P}SY$JaBG#UlTDP~(W+YtHsOEn|&P|oOW=ap}3PHet>*x7h6ou-hYu>4LzwV(& zhrQNIUHXRYF_Wz2R+3yCb*s+JzeSPTkJMP8>A`mqJ}2?hw91;(<o|({%q|FTlv<+biv^ym&%>%0QH|=GuBnRy-`+L;8Z)pg{_HiorljHw47P@> ze6mib*<1MO`kxe3*kM^_`vY_cG!`?69bGDF0gI_@Ugakaam~CL%?YDp!rV~=O1%f* zT`a}b%h7=um+q`n8jx37Y1{&Qw+}1-*6Djgin-~2_ySVW55T$TUsE+RE>Q)=+33WnW3N8xQIyoR93+`MfpTUKDm zA4J@h74At&?z;L+(gQCaA%x6QcT+0x%Xo$y(PF2YEIYi%Zh%?g@$96mq$7+V(aN^VYPOf6IDehXs=OXsbLOdlk z*!{{2MctZw%Xye&343ZytTFojmo0PqdjK)_JI|p$bd`?}0}`9tgho#4ZQVV4wa?}w zXLQgd-_5ksT)$E+>@-WpKBEF6Mm0;xetP@Y={9}+ui8Ah9_8QJ>|2DD(B~F0%?(%c z&gc8~O-ko>WL7qVrs+%1kvsCTD~-TRJx?9MsOVASjQ0a8?!Cw~MZ2CBaE+{3$wiBc zZA;^!-PHStt?2+X4P4?I?q>=XX($;!nwzP7)o0Tc9{IcG1lGSX-^SNW$3IQ~t>8{Z zmEHl?pLRcV!1J6fRlr36vOH=GIc*vJ6N>4_o z7ct}DXwOXFJfiGc6A5*iQ;Z`oB;cl9>o8NZqOW;h3+{5^hVS zvQdYDu|S`vsU=}ZxSXmDgRU9T5Ay+JN>$JicmJnp+j70E}9TIqoYMQtu35&X{@F%H1I%_rQzV$=XThac>Vv4&*9ir zy8kpZfa_)@Gb2sXH5YJ{k#Ij&Z@A)kgP>gsFdHsHe)}Yczg7-nh|y-VV`$eZn~E^y zslazVC5jFNiC#~s(mNfI&cVcbnU6;BPO@t^+D2;~p|ExC?L`DAF{B zs;BH;Sc8u|Hgh$J@e0z#cLN969_DKW<|k&?q?2;yUo(#90o>X=M@`m7{aF~XSywa7 z6?U(rJOf-N3bVQOy3MY71M+9UpyhL!d4|whW}3uT*{GfzGJy)1vCylPzgepY4e9K> zqHt&(d?+G%#rZZc9)%QV7_9YKZ=KoMIM&(WIzgJVy8=M=^o~EGABQp8Uu~=npw%lh z%^p!tIyXV_v?_HTkUBIS*o!T^mn!G!tRS|FQenBU8~C0|j5oRRrakG)?IUs5SKt7{ znKEU~8YsHQO;hNL^85J8B%tf7+?$;l+UgklZ5lc#dbPEcr0--GY#@}Blm537wEvG1 zv_uG-rxUg*=P5`bDojdG^<>st*hsBLydJTyrUaP-BT9CQab~q|x=VJMy#NzrYQO{; zp~($+!E7B(K#@n#^vkle?oM-nCdwyv$*%d!n{Z#~sSY(xt8@dHhe;ZH27v9hY;S*+ zIwFhWHof4stkp@z;?YxazEJjd?Lp%pu5+o0x?epcGJq$cvti}5Bw$di_4i({T>9>0 zasJ_qSKjMYX`|y#&aFHnd9JzkYRNowhts)QYV3ezKQS}KKqWigebl5x@MY!$ zs9}qE(W9eO1ndi?(T2y*UyZtR+i{OpzSSd&+>2Cp$7iNXnpykiJemvxBQj8PmVKYc zt@bAtAveM@fA6unwFy0LdSIr0GOV}&;;pI&oyn3;O#fQ5=p|`5-JcS+t3CJ`6yqa5 z)DnA=n`rDQ2wyH;QJ>EBI@*k0TZ7%Ry;u6vQ-8}fU-N6YY4wZy~xXW1AuBD1Yerc}FSlDv6JG(@Ejlek^+l zrH+6!J#G{o0oiY<8nvKL%y++7{*|F|IIeKbymhhp_sVMEmk((qdfLfnTMq_R))vMGzS?+X3HK3ufZ8 zLT4K44Eu7cELuo70Rg<4ezljnnRPQ*8l`s30ddwqZdmL@mq&;G%quUics`*Rp}OPM z6cQQctreWv$9(&~sJ@z<*}YrWRo~q*<;E^_M^Hm!Oh7PskzJc2?oa#Ia$00z;-p4f z1Zdrb2>glYKqpv0zk_mz!>1!^H-YCQ#w0NOXQXP*@k51U?UE{-2C|PvlH4hQZOt0w z%-O7^G&M+gWh?9wiqE!sINc*o8ReBZ4_?Q$f{j%w(4>;iV0JLVeCqW~^i`Jw5D$fx+^8S5yrzzq^tkZht54=LegT zkNQHq5axZ*>RE%0Xg^iHUMJBxUa+{4*e7JX#*>NcbZ-_KM0J0(Y83L?VP6~G^w7`r zo$Hukqr7K0<@w`Nv8g-h=XWrnioZPO7hKjdH!3`|#VnJxaf@H+k-b}1*nwd58!VrM znUpr_9OqHx#f_~OtV>W&h1Nb#^2Xr4W+uS|q{gxgO!PV)@&jTx{r4jr}I z{;-RdADTz;_MDtY{%^pDZxxXY$HFcIRmMwAm-h1JUM)mI1NG4MKR;M1!_E#I^l0G> zTcHZI_~j0(_O8J-bYh^TC)(6FDZZ@l<|a&VeAv2Fc35_yKLT;64EEl46go?*nc-xt zx-fqCF{_5Ilk-MZb#u?XZepp1AssI1tfUCO!N&{~|p8h?#AcD-tW^ zKB_Y_pM-{lbnsc}UunK-R7%l;^FdT^-RlPgO zaf2-8-H7$ac4noHsQXG_h?!bc_t)6)`!+?XfvQeO(@+q)+Wv_=eAP4$x9eMh%w!WS zCVn%Z9Z^+rFTl1qWoOj7$v6?RC*g&k^4VL}}Ey0c$IL-FHt zan7ZU`#-AOkI)r6=UykD#y7uG$eDZvK7Vy1VlH{}*47O8c0KH5#8~p$R`o`N6|kFv z_f^imFrxaKj7Z4&-L10D%O3Uyw)Icf-#p(&8me{DTpBULnSo?@D~VV& zED`YoTYjZICnt-#99CP^Hcd%OpQIDxHo1I?Y^!GL*K*8AV^16Gwz8f*ieTSvt`3|z z0FL@qwhQLQbRy9P0Sg83^!>N?ler0sx`ysL5vAKWFKv9J>&06;Kpdf_z$9=?djN6I z??t)mP1fE~L!J(Dj3?VK2m z9Y&`P3MR(~$FTe3WN01e3zT2{fc1 zyZt_Dd1+oI>AUG)Hj@s2P40T<4z^}kW*}G?9r16uNv}PbQ^WCk?M_-At`8g!X&Bs7 z+F!R}8@?Q?W3yQ?AhXs8f^_LvalMIruVypB`uB{L)tVtx!m>0KCV^zpH9(iO7x~|j z)CnFPJ1>lbUHGo#{d|SAp7)PH3HQ_R!#hvBj51Q)c>JMfk)je@QmM9*rK}DloSwemgAux1M(gB z!4qbb=a?AkFmAL`0ZHikNVW8CRXY ziw9ht2GvAwZKuKfaFiSi8dnS;lFG|Ks)h#ko&&C#*p-52iCDr^(c@8ViPz#Q`?0rC zghB36ei6h(I%jKTvvZiDXt#`*DU7m_D|wx7TDk1OXf_{7Os zwa~3h`^;XzAwQcpBPHA~s7q}wXZxJ5OjdOiqL%7i3cD#9$8_)>OFQhtlQe3`q>x|R zzdo0nFK3l6cD%gC)Rn1>s=%4XVAd~P{Vu`>H_6mwd2R#pN_Ld+xQJ(Rd(`Yn?33&p z?W6H*+b>ni+u8VJ_z{J!(+l2>(#9w2Z*X6&Y9^mQw--3}(&on3%~zm?{Xo#<2XL34 zmk>tX#Id(X8XxsHb4#8qft`P)A10SHZn+wzmwa)2bzV=43*2-7t=d(SMrRzIBlZ=) zY&E3GY1j6NK(6a-IO=aZK9g8UC}%BxM8p7hL+6gG>%_3bBJy6dhQyT%C!d4`Rmzg2- z59F3Bqgg|VwwzIhgTB9WG0vu=Q9ZkJ_E7Q&MrkMW%?$XB-%EVY!Iwj>QOE1(bf?B0 zFX}q(VYa-h<=36(A?fjWF1mXY=4}VVHx$5yCbKmGJj$bnFjOPy@#$A(e?<>de|5p} zD2t_?b0YAkw4-#x2DNm{G*8n>)6U-`TwX8zIcI3Lbh>KrWptg^Hm5f8lQeloHFNdo z1HV0+X`@3Wv*zT_cU=0@YHD?xb`VdM;bDx4HM1{EB^H!X2%S@pQGIXki#RU)g7fau zqwjqeR=&=`2p>4*DL#}h57L<$w_?Cuvm#N4-L=_01ye>!1rm*OiAy8t=XN}PpQBcQ~6mMNcUAm ziy74?3_;I#rBS%#O54z4e8~2SUdef`A-8S0mTJd7)pUI|h5DU)$1h^;=Ew^3~HAsaW>qGVglw-0x zzwZlC9<>Ax3`@|VN)5}{nvfij`VbIEbWzlH!vZQoS}w#vmb88yyLjXs$dvXZ!aMse z4U_tt?J*w2XlKx1_ArX=$ufwr_J_;j$Whrgv1q0Y#UWhfsOh@0Ut|)5tIMMh! ze9|`+yyoy_p@$kI1QR*D44%PUQ5YBj+o$JGSsud1Znkzi($(1?$9K56?4f#AI2O<$sGdQC~h zj1m3^WBP1;kG6lTjp{0VqOtX9db~!(-F4QZ7Iqdw8}?xZNq$0*f(?%ExwZ$4E%k8bY zf6Zv+sWWaJK(;?!ND6ZsG|pF1oPKiMLQ)*>d1K>ga_x<%qx09tpo(_=tr@72FZ?rZ z{eB+ChRwAn%TKJb{ApAjCabsn69e;BjNKn_txE-8Nt8rv#%<_2ds+WgXt~Jp$TkE^)hD3zH~?~UMq2IDp3+i?@(qxHA}pd?sblK!RL&w z>D26n^!tncOzP7a@MMv^z?lCi6opgu_nVc7{sf#cKBq4qXYWtt4_Zx>>F!cJ8t4T4 zs(4jHDRrh%%MErNbp=1XzLvXt!-Mk1`m6KD!w_k}J~PYn^M03BD@(4KqFh>!Yh3t` ztH}rk9mvuYFXt>#(40P^>nS_%_cd#N)cmELzl@dK7G}@OC~nXU=J6XVlQ-@=sG8c) zVDpEL8p3WrtbjXvA5Mdi9riVY0c+2{ToeQV-E~b(vrFXXSBbn< zxl{=%Bzz*xGklSX7aoUo4T|X!p`Bsy!SIbK!j1DEkW)+bP&cEyTekjk8r2!P#mg&4 zpric_1M)MOgvC=g!1Q}&+{S;9JM(O9*k-P3W-P@fsTw~~eP(|e|1D6vRL9V}Zhx>7 zoVU;h=c+q2aVcvou~R_UrLg-*4j+Z0i{EZk_IFO6OK@l%jCYzYz$&*>*6ZL55=#+} zabw~YhIJiK+fr=qE#m*!n$TRS!GQds*|yo(z&nK2H2EfP^T#!Kh^mRZwA(Jh14m@vGfngfcxvzZV%(T(bG)q%v~{St96Tl*mmIGSRq{0??e(~ZfabLuG}LLBpkt@n zSD6}*#%^l^)s7^I&-ET+IRyr1C#4-ZB>{U4Dd>Dru$sKvOqiFndVv7 zIcktZ)SB-#ls0x=gX;~mO?U_wtjrn>IXtO#${F?jeU%vfag|6IBaIKJ&maHeBIz^v zX5f%#>^6Ih0eAOQpPf#kIEw~IPB5Y6RvSh~-%on^8lTl~zI#;RZR7L2?!|>)r2QkN z(yIFTqRUpm;z~Zpm6aLA1z2_`k$Dhuk)4&o6o30 z_jkTWt98R}H6P_74FRwJ8_O0(3L6jbEa#6daJuV0Cv_hD+zra@SI01x>f3CQTn_@! zhhhfhn6#tWei9$fV?XFTE_=%amt0)1B;dpI?ZZp4Q0~t!#JWpB%f|gWy<H&RT27 zSIBk-c^qUzF5-bIWNlbv~&x&n)COIZ4P{19W#y!8T- zyMgQkR_L09R&eTL&)=bnmo&|NuNPh6kTG=S!pYxs;?%isE^iFsb#R)e>5UcT^V}M) z+_brf(u$LJ)Tw@EPbGVCqO{#vDz{V`Ss!^=-`DWFeTYVY&aCM%Gt)^Ji z>atcn@j0G`4&Bo=G^p?l8s~#V(H<=)t}V@_+LU&lWa#z+2e{G&BYk3j${15BFsLux zXCw?aI;4{5haAa>VQ`l}^gET3Xw9pXHt^2ueF>~wc(PHPqAvFHVeszZa6hEim}>7` zW61noIpti!Z4l)c{LL2i1>-Mp{<9tm*m>6XGucuHUty6n32Z7gn%)bvkp}E~%I2oi zsa^#nm%&62CAxTSbFmi#n?b4I^beN~5ks!Rpgxk4vb;++s|UK~ous9Sb-#X23)G^{ zU0x!#rj^iSlYXV1k$EULX21N}CEBn|@7DpPLxkc20VMBxAbAYL9PbSlA2fQlYANvKt@cMa^Q&+hHL#oiUds}y_lH~5^?(^)^bRs7E za#(JI+>!h+b&74AcQyKcfmt9aUCQ2BYA9d-$ug5pcg=)1c0pmS!(jWHaqr`E8{!gn ziq2ouDRyzBqA#{9P(%k6@n79vlTyL2Ch*(fhQl`03_8~Yg>RNGuFi6!s&!BGPWm2n z#`l#aF9rp+CmMOl9?o9?7HjqkfqRSWP-A{ZpOLJ4V%oN|vckNIHiHTUK0ZR)T^dQV$3Z2<(p_xYv_c6d)wt zCyP`=r9RajH79XiEIXejT^ouwCa|GOlMNrr1?U zPmTTTUI(We(~EL4x-9M78z0-?Yi8~fU14yugN*Ckx??=Xju!PIof0nAbH9~yWVCsD zn}v3vr6gwZg<4yXe8q2z<29Ti`PG;X>oU6y z&mOL1(q9M}>XPb>D4%Lh)NRccLy~IO$l*;1ri$?|q>YPBA>;3Ug}SK)GJSTKjE|d2 z)@}UV$ZQmm@b-q7_RLH_jjC3NWZa`dBE6A^M{5X8&(p>u330p6->24=79+m7_kC_^ zvKk-D-lS>-PpsVaH%0`X!Er@OM~QkC@J`wKt`S|N?HVEm?q2Z~TsNjhU>_IPaFlEQfxt^hP4T4NKQAqq zlwwz$z{tfsTc^GXTeVk|vN1$6kICi&SK)LdTxfgQi%o}RCZs}OU?xbA{M?2{yC3hf z?}?FtX_47DYAT$5d1W;Dr>BI(U68RLVc$#8TOEDxNos#?fy_&*85bU7OxJzV zsW+ws5o*N8u-CE`_GEx7B@np>_G*Qj+rerA{(07b) zdNI_r^N?z~;PwFUrYp&I9-o(Fg$k5 zn!$Mr_5Kr~pcC@(9-vM5mFja*JucR0gR%h()Fmdp*DJ8CZqDC%x{m@ym@*KK&kqNj zr46oyj8|)XmNSvHdDeSy1FE$lRwx?AaOUX=bYunDX_k~L+*Jct+<3q7I!@|j=w|pp zgr3rtZ4Rj<7=k@C@X221jYsFFlY)u5Z9D5#`rS0=SnG_mHxpugrXIX@rLQ+l#{-n* zA6Iu22+IH;{HaMnL+pThd^7}A$xCr*{&$8RCURa)ObWZCh@a4{cvY|*vUEn z;Ev{Zg<=Wf(ST+F)<)aYSXKzc=L>g*Mhg1DXuDNMxqevNfk#f`u0z}ms$cxb(25`7 zPc^<$Q*xt$I&7QhhZ(l8f6^kQdbQrlOy@q*wY_UI{S(Tl^s{~6Q1C@oL3r1jB%|yH zl=`#3-q;xJ1ZX2ZclcNyNpejbMO|CjHZ-^rTa`EFHSElHvr;$LD{jmH5x#afrAaey zLiyL#0sbvn*_;app6(^RKa{g2i`O^Y^ZKayK#0Rk1798Sb6TxwW_X1k5r4p|$$Wn@ znBd)xo<#~Rv3g{Z**WN?zF(r|x;4byI{GUJ~xa^n^#@rCjrQPi_Pl(ecZOBlze*>@C z{=wZF;*+iHymcH90d!(Xxf6X~c4|6CuH#xW#&le)l*?Y<{_A(~&mGA_dGdMikVTS7 zzzp~5MvWKbfyluPGT_VgcGNoWv-xb#8*BWZV7&op)~vL{oz#$OGC0ioW$D<29#3FL zQ|_3|u_9wnPeDO3vHvnKVte`_J31B)V%=#3han{}72Usg zvHdK?Rk1Fsk$~y1`|NuSl6te4hbV9vn1__IvMs|xeG-gTnf##vG8+F%mVRL&1BfC* zI}y@i&0>Gci<$YnxpW8(Io&^blCoGr00oS)rehGrM1F;1oa?0>3$=5zYvcA~C{shR097(|$x# zYlfzZ5v?)DG8N-ivsH@yPujJR)g3*ykDt(hL%u%u+OTMP+>sF(X!xEn1v9LWkuXI{ zb=*aRJlJ_K2ccOq1~EqO=0B!xE=-ULkGY@CN_U&aN;7QKQXmAC2K;vy7I*okw`iKT zBscZZG$4bMU0LG^t|p|J0{rc8V9v%HW(i~kIXs8ICL}nlTnINo0TX>_iFX$_C*z?P z>ly5KR9}1(O67CY|4;A0O_rJ1XX@6}Yli<@M6^8ieM@z|UnTcsvLggqn3mb$>v>II z2u>oyc+HiRj7Pu)Elb)>4e^>B3=F&lq}u_`i1quFb8`1~s7S!OTORxJA^uD#(gk`Z z9)2otItC?lmF_Mbgn4I&g^6EKhj&7HwJaC}+sVCJ%By+Bl}?=P-g{`w$7|QO9)lI$ zGLPq!1#YAA$}V$L;g~JMcvDREgo)%FUzGzFPhz;~4fiE7(PNSQYT0OtjB-qy-xA#W z)u3!f5{3(E_VSo~?o^ArPs`&Y$SSOP5&#w~ufO}#tB}f+BnxWIIFu4Z68_^d`48j_ z^TRFX7yi&M210*e6!nBuzcjvFdYUaYc=LU#K2cDD7-4^QX)@80?QVe>@e+p3Z{7pG z>vvNe4EN{`z+;JkA*A9+S-8N-9WH=Rjl9{^F;Q?Xhg=(u$@rN~i}8TRn6Sk_!)@#Z zeUopc`Nn7q>^`{kN-6!8X;JXk?EV0-xh>_E)TW4WqIR4a(W_OrvRiK#_;naIeu`h2 zTgqkF2~4-8MXh$#>w%5%g;+%%r%jgu4hTQ9c}TYCU`S-d?t3C~_+ER$^N>>A;IDr3 zX5)i3_H*8+TXv7WF$;Ix_%k?@9MnQJepCI;k0bHfomB7Y$@^qIgn1F{EIc4AK3Tl0BHEiireJQoBga5~5^}jY)^29& zZi5~%pv3ssqtW+de#4!x?rMSZ$v5rF#Y&`5!OS(Cq9}l}1 z!RnpRs z7lK5T=MDDL&!;(RvaU<>2;MI2&MYn0w`LsBF20J4b{SDlOc1+{r⪙iYBUAHI;>% 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 z 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

c_iW3N4b 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 literal 0 HcmV?d00001 diff --git a/original_source/original_license.txt b/original_source/original_license.txt new file mode 100644 index 0000000..615718d --- /dev/null +++ b/original_source/original_license.txt @@ -0,0 +1,27 @@ +Copyright (c) 2009, Adobe Systems Incorporated +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of Adobe Systems Incorporated, nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANT ABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/settings.gradle.kts b/settings.gradle.kts new file mode 100644 index 0000000..3cd6dd3 --- /dev/null +++ b/settings.gradle.kts @@ -0,0 +1,9 @@ +rootProject.name = "xmpcore" + +pluginManagement { + repositories { + gradlePluginPortal() + mavenCentral() + google() + } +} diff --git a/src/commonMain/kotlin/com/ashampoo/xmp/XMPConst.kt b/src/commonMain/kotlin/com/ashampoo/xmp/XMPConst.kt new file mode 100644 index 0000000..043e808 --- /dev/null +++ b/src/commonMain/kotlin/com/ashampoo/xmp/XMPConst.kt @@ -0,0 +1,287 @@ +// ================================================================================================= +// ADOBE SYSTEMS INCORPORATED +// Copyright 2006 Adobe Systems Incorporated +// All Rights Reserved +// +// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms +// of the Adobe license agreement accompanying it. +// ================================================================================================= +package com.ashampoo.xmp + +/** + * Common constants for the XMP Toolkit. + */ +object XMPConst { + + /** + * The XML namespace for XML. + */ + const val NS_XML: String = "http://www.w3.org/XML/1998/namespace" + + /** + * The XML namespace for RDF. + */ + const val NS_RDF: String = "http://www.w3.org/1999/02/22-rdf-syntax-ns#" + + /** + * The XML namespace for the Dublin Core schema. + */ + const val NS_DC: String = "http://purl.org/dc/elements/1.1/" + + /** + * The XML namespace for the IPTC Core schema. + */ + const val NS_IPTCCORE: String = "http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/" + + /** + * The XML namespace for the IPTC Extension schema. + */ + const val NS_IPTCEXT: String = "http://iptc.org/std/Iptc4xmpExt/2008-02-29/" + + /** + * The XML namespace for the DICOM medical schema. + */ + const val NS_DICOM: String = "http://ns.adobe.com/DICOM/" + + /** + * The XML namespace for the PLUS (Picture Licensing Universal System, http://www.useplus.org) + */ + const val NS_PLUS: String = "http://ns.useplus.org/ldf/xmp/1.0/" + + const val NS_MWG_RS: String = "http://www.metadataworkinggroup.com/schemas/regions/" + + const val NS_ACDSEE: String = "http://ns.acdsee.com/iptc/1.0/" + + // Adobe standard namespaces + + /** + * The XML namespace Adobe XMP Metadata. + */ + const val NS_X: String = "adobe:ns:meta/" + + const val NS_IX: String = "http://ns.adobe.com/iX/1.0/" + + /** + * The XML namespace for the XMP "basic" schema. + */ + const val NS_XMP: String = "http://ns.adobe.com/xap/1.0/" + + /** + * The XML namespace for the XMP copyright schema. + */ + const val NS_XMP_RIGHTS: String = "http://ns.adobe.com/xap/1.0/rights/" + + /** + * The XML namespace for the XMP digital asset management schema. + */ + const val NS_XMP_MM: String = "http://ns.adobe.com/xap/1.0/mm/" + + /** + * The XML namespace for the job management schema. + */ + const val NS_XMP_BJ: String = "http://ns.adobe.com/xap/1.0/bj/" + + /** + * The XML namespace for the job management schema. + */ + const val NS_XMP_NOTE: String = "http://ns.adobe.com/xmp/note/" + + /** + * The XML namespace for the PDF schema. + */ + const val NS_PDF: String = "http://ns.adobe.com/pdf/1.3/" + + /** + * The XML namespace for the PDF schema. + */ + const val NS_PDFX: String = "http://ns.adobe.com/pdfx/1.3/" + + const val NS_PDFX_ID: String = "http://www.npes.org/pdfx/ns/id/" + + const val NS_PDFA_SCHEMA: String = "http://www.aiim.org/pdfa/ns/schema#" + + const val NS_PDFA_PROPERTY: String = "http://www.aiim.org/pdfa/ns/property#" + + const val NS_PDFA_TYPE: String = "http://www.aiim.org/pdfa/ns/type#" + + const val NS_PDFA_FIELD: String = "http://www.aiim.org/pdfa/ns/field#" + + const val NS_PDFA_ID: String = "http://www.aiim.org/pdfa/ns/id/" + + const val NS_PDFA_EXTENSION: String = "http://www.aiim.org/pdfa/ns/extension/" + + /** + * The XML namespace for the Photoshop custom schema. + */ + const val NS_PHOTOSHOP: String = "http://ns.adobe.com/photoshop/1.0/" + + /** + * The XML namespace for the Photoshop Album schema. + */ + const val NS_PSALBUM: String = "http://ns.adobe.com/album/1.0/" + + /** + * The XML namespace for Adobe's EXIF schema. + */ + const val NS_EXIF: String = "http://ns.adobe.com/exif/1.0/" + + /** + * NS for the CIPA XMP for Exif document v1.1 + */ + const val NS_EXIFX: String = "http://cipa.jp/exif/1.0/" + + const val NS_EXIF_AUX: String = "http://ns.adobe.com/exif/1.0/aux/" + + const val NS_TIFF: String = "http://ns.adobe.com/tiff/1.0/" + + const val NS_PNG: String = "http://ns.adobe.com/png/1.0/" + + const val NS_JPEG: String = "http://ns.adobe.com/jpeg/1.0/" + + const val NS_JP2K: String = "http://ns.adobe.com/jp2k/1.0/" + + const val NS_CAMERARAW: String = "http://ns.adobe.com/camera-raw-settings/1.0/" + + const val NS_ADOBESTOCKPHOTO: String = "http://ns.adobe.com/StockPhoto/1.0/" + + const val NS_CREATOR_ATOM: String = "http://ns.adobe.com/creatorAtom/1.0/" + + const val NS_ASF: String = "http://ns.adobe.com/asf/1.0/" + + const val NS_WAV: String = "http://ns.adobe.com/xmp/wav/1.0/" + + /** + * BExt Schema + */ + const val NS_BWF: String = "http://ns.adobe.com/bwf/bext/1.0/" + + /** + * RIFF Info Schema + */ + const val NS_RIFFINFO: String = "http://ns.adobe.com/riff/info/" + + const val NS_SCRIPT: String = "http://ns.adobe.com/xmp/1.0/Script/" + + /** + * Transform XMP + */ + const val NS_TXMP: String = "http://ns.adobe.com/TransformXMP/" + + /** + * Adobe Flash SWF + */ + const val NS_SWF: String = "http://ns.adobe.com/swf/1.0/" + + // XMP namespaces that are Adobe private + + const val NS_DM: String = "http://ns.adobe.com/xmp/1.0/DynamicMedia/" + + const val NS_TRANSIENT: String = "http://ns.adobe.com/xmp/transient/1.0/" + + /** + * legacy Dublin Core NS, will be converted to NS_DC + */ + const val NS_DC_DEPRECATED: String = "http://purl.org/dc/1.1/" + + // XML namespace constants for qualifiers and structured property fields. + + /** + * The XML namespace for qualifiers of the xmp:Identifier property. + */ + const val TYPE_IDENTIFIERQUAL: String = "http://ns.adobe.com/xmp/Identifier/qual/1.0/" + + /** + * The XML namespace for fields of the Dimensions type. + */ + const val TYPE_DIMENSIONS: String = "http://ns.adobe.com/xap/1.0/sType/Dimensions#" + + const val TYPE_TEXT: String = "http://ns.adobe.com/xap/1.0/t/" + + const val TYPE_PAGEDFILE: String = "http://ns.adobe.com/xap/1.0/t/pg/" + + const val TYPE_GRAPHICS: String = "http://ns.adobe.com/xap/1.0/g/" + + /** + * The XML namespace for fields of a graphical image. Used for the Thumbnail type. + */ + const val TYPE_IMAGE: String = "http://ns.adobe.com/xap/1.0/g/img/" + + const val TYPE_FONT: String = "http://ns.adobe.com/xap/1.0/sType/Font#" + + /** + * The XML namespace for fields of the ResourceEvent type. + */ + const val TYPE_RESOURCEEVENT: String = "http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" + + /** + * The XML namespace for fields of the ResourceRef type. + */ + const val TYPE_RESOURCEREF: String = "http://ns.adobe.com/xap/1.0/sType/ResourceRef#" + + /** + * The XML namespace for fields of the Version type. + */ + const val TYPE_ST_VERSION: String = "http://ns.adobe.com/xap/1.0/sType/Version#" + + /** + * The XML namespace for fields of the JobRef type. + */ + const val TYPE_ST_JOB: String = "http://ns.adobe.com/xap/1.0/sType/Job#" + + const val TYPE_MANIFESTITEM: String = "http://ns.adobe.com/xap/1.0/sType/ManifestItem#" + + // --------------------------------------------------------------------------------------------- + // Basic types and constants + + /** + * The canonical true string value for Booleans in serialized XMP. Code that converts from the + * string to a bool should be case insensitive, and even allow "1". + */ + const val TRUESTR: String = "True" + + /** + * The canonical false string value for Booleans in serialized XMP. Code that converts from the + * string to a bool should be case insensitive, and even allow "0". + */ + const val FALSESTR: String = "False" + + /** + * Index that has the meaning to be always the last item in an array. + */ + const val ARRAY_LAST_ITEM: Int = -1 + + /** + * Node name of an array item. + */ + const val ARRAY_ITEM_NAME: String = "[]" + + /** + * The x-default string for localized properties + */ + const val X_DEFAULT: String = "x-default" + + /** + * xml:lang qualfifier + */ + const val XML_LANG: String = "xml:lang" + + /** + * rdf:type qualfifier + */ + const val RDF_TYPE: String = "rdf:type" + + /** + * Processing Instruction (PI) for xmp packet + */ + const val XMP_PI: String = "xpacket" + + /** + * XMP meta tag version new + */ + const val TAG_XMPMETA: String = "xmpmeta" + + /** + * XMP meta tag version old + */ + const val TAG_XAPMETA: String = "xapmeta" +} diff --git a/src/commonMain/kotlin/com/ashampoo/xmp/XMPError.kt b/src/commonMain/kotlin/com/ashampoo/xmp/XMPError.kt new file mode 100644 index 0000000..e61bfc3 --- /dev/null +++ b/src/commonMain/kotlin/com/ashampoo/xmp/XMPError.kt @@ -0,0 +1,28 @@ +// ================================================================================================= +// ADOBE SYSTEMS INCORPORATED +// Copyright 2006 Adobe Systems Incorporated +// All Rights Reserved +// +// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms +// of the Adobe license agreement accompanying it. +// ================================================================================================= +package com.ashampoo.xmp + +interface XMPError { + + companion object { + const val UNKNOWN: Int = 0 + const val BADPARAM: Int = 4 + const val BADVALUE: Int = 5 + const val INTERNALFAILURE: Int = 9 + const val BADSCHEMA: Int = 101 + const val BADXPATH: Int = 102 + const val BADOPTIONS: Int = 103 + const val BADINDEX: Int = 104 + const val BADSERIALIZE: Int = 107 + const val BADXML: Int = 201 + const val BADRDF: Int = 202 + const val BADXMP: Int = 203 + const val BADSTREAM: Int = 204 + } +} diff --git a/src/commonMain/kotlin/com/ashampoo/xmp/XMPException.kt b/src/commonMain/kotlin/com/ashampoo/xmp/XMPException.kt new file mode 100644 index 0000000..c2542e3 --- /dev/null +++ b/src/commonMain/kotlin/com/ashampoo/xmp/XMPException.kt @@ -0,0 +1,18 @@ +// ================================================================================================= +// ADOBE SYSTEMS INCORPORATED +// Copyright 2006 Adobe Systems Incorporated +// All Rights Reserved +// +// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms +// of the Adobe license agreement accompanying it. +// ================================================================================================= +package com.ashampoo.xmp + +/** + * This exception wraps all errors that occur in the XMP Toolkit. + */ +class XMPException( + message: String, + val errorCode: Int, + cause: Throwable? = null +) : Exception(message, cause) diff --git a/src/commonMain/kotlin/com/ashampoo/xmp/XMPIterator.kt b/src/commonMain/kotlin/com/ashampoo/xmp/XMPIterator.kt new file mode 100644 index 0000000..d3959e2 --- /dev/null +++ b/src/commonMain/kotlin/com/ashampoo/xmp/XMPIterator.kt @@ -0,0 +1,77 @@ +// ================================================================================================= +// ADOBE SYSTEMS INCORPORATED +// Copyright 2006 Adobe Systems Incorporated +// All Rights Reserved +// +// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms +// of the Adobe license agreement accompanying it. +// ================================================================================================= +package com.ashampoo.xmp + +import com.ashampoo.xmp.properties.XMPPropertyInfo + +/** + * Interface for the `XMPMeta` iteration services. + * `XMPIterator` provides a uniform means to iterate over the + * schema and properties within an XMP object. + * + * The iteration over the schema and properties within an XMP object is very + * complex. It is helpful to have a thorough understanding of the XMP data tree. + * One way to learn this is to create some complex XMP and examine the output of + * `XMPMeta#toString`. This is also described in the XMP + * Specification, in the XMP Data Model chapter. + * + * The top of the XMP data tree is a single root node. This does not explicitly + * appear in the dump and is never visited by an iterator (that is, it is never + * returned from `XMPIterator#next()`). Beneath the root are + * schema nodes. These are just collectors for top level properties in the same + * namespace. They are created and destroyed implicitly. Beneath the schema + * nodes are the property nodes. The nodes below a property node depend on its + * type (simple, struct, or array) and whether it has qualifiers. + * + * An `XMPIterator` is created by XMPMeta#interator() constructor + * defines a starting point for the iteration and options that control how it + * proceeds. By default the iteration starts at the root and visits all nodes + * beneath it in a depth first manner. The root node is not visited, the first + * visited node is a schema node. You can provide a schema name or property path + * to select a different starting node. By default this visits the named root + * node first then all nodes beneath it in a depth first manner. + * + * The `XMPIterator#next()` method delivers the schema URI, path, + * and option flags for the node being visited. If the node is simple it also + * delivers the value. Qualifiers for this node are visited next. The fields of + * a struct or items of an array are visited after the qualifiers of the parent. + * + * The options to control the iteration are: + * + * * JUST_CHILDREN - Visit just the immediate children of the root. Skip + * the root itself and all nodes below the immediate children. This omits the + * qualifiers of the immediate children, the qualifier nodes being below what + * they qualify, default is to visit the complete subtree. + * * JUST_LEAFNODES - Visit just the leaf property nodes and their + * qualifiers. + * * JUST_LEAFNAME - Return just the leaf component of the node names. + * The default is to return the full xmp path. + * * OMIT_QUALIFIERS - Do not visit the qualifiers. + * * INCLUDE_ALIASES - Adds known alias properties to the properties in the iteration. + * *Note:* Not supported in Java XMPCore! + * + * `next()` returns `XMPPropertyInfo`-objects and throws + * a `NoSuchElementException` if there are no more properties to + * return. + */ +interface XMPIterator : Iterator { + + /** + * Skip the subtree below the current node when `next()` is + * called. + */ + fun skipSubtree() + + /** + * Skip the subtree below and remaining siblings of the current node when + * `next()` is called. + */ + fun skipSiblings() + +} diff --git a/src/commonMain/kotlin/com/ashampoo/xmp/XMPMeta.kt b/src/commonMain/kotlin/com/ashampoo/xmp/XMPMeta.kt new file mode 100644 index 0000000..4694f40 --- /dev/null +++ b/src/commonMain/kotlin/com/ashampoo/xmp/XMPMeta.kt @@ -0,0 +1,766 @@ +// ================================================================================================= +// ADOBE SYSTEMS INCORPORATED +// Copyright 2006 Adobe Systems Incorporated +// All Rights Reserved +// +// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms +// of the Adobe license agreement accompanying it. +// ================================================================================================= +package com.ashampoo.xmp + +import com.ashampoo.xmp.options.IteratorOptions +import com.ashampoo.xmp.options.ParseOptions +import com.ashampoo.xmp.options.PropertyOptions +import com.ashampoo.xmp.properties.XMPProperty + +/** + * This class represents the set of XMP metadata as a DOM representation. It has methods to read and + * modify all kinds of properties, create an iterator over all properties and serialize the metadata + * to a String, byte-array or `OutputStream`. + */ +@Suppress("ComplexInterface", "TooManyFunctions") +interface XMPMeta { + + // --------------------------------------------------------------------------------------------- + // Basic property manipulation functions + + /** + * The property value getter-methods all take a property specification: the first two parameters + * are always the top level namespace URI (the "schema" namespace) and the basic name + * of the property being referenced. See the introductory discussion of path expression usage + * for more information. + * + * All the functions return an object inherited from `PropertyBase` or + * `null` if the property does not exist. The result object contains the value of + * the property and option flags describing the property. Arrays and the non-leaf levels of + * nodes do not have values. + * + * See [PropertyOptions] for detailed information about the options. + * + * This is the simplest property getter, mainly for top level simple properties or after using + * the path composition functions in XMPPathFactory. + * + * @param schemaNS The namespace URI for the property. + * The URI must be for a registered namespace. + * @param propName The name of the property. May be a general path expression, + * must not be `null` or the empty string. + * Using a namespace prefix on the first component is optional. + * If present without a schemaNS value then the prefix specifies the namespace. + * The prefix must be for a registered namespace. + * If both a schemaNS URI and propName prefix are present, + * they must be corresponding parts of a registered namespace. + * @return Returns a `XMPProperty` containing the value and the options or `null` + * if the property does not exist. + */ + fun getProperty(schemaNS: String, propName: String): XMPProperty? + + /** + * Provides access to items within an array. The index is passed as an integer, you need not + * worry about the path string syntax for array items, convert a loop index to a string, etc. + * + * @param schemaNS The namespace URI for the array. Has the same usage as in `getProperty()`. + * @param arrayName The name of the array. May be a general path expression, + * must not be `null` or the empty string. + * Has the same namespace prefix usage as propName in `getProperty()`. + * @param itemIndex The index of the desired item. Arrays in XMP are indexed from 1. + * The constant [XMPConst.ARRAY_LAST_ITEM] always refers to the last + * existing array item. + * @return Returns a `XMPProperty` containing the value and the options or + * `null` if the property does not exist. + */ + fun getArrayItem(schemaNS: String, arrayName: String, itemIndex: Int): XMPProperty? + + /** + * Returns the number of items in the array. + * + * @param schemaNS The namespace URI for the array. Has the same usage as in getProperty. + * @param arrayName The name of the array. May be a general path expression, + * must not be `null` or the empty string. + * Has the same namespace prefix usage as propName in `getProperty()`. + * @return Returns the number of items in the array. + */ + fun countArrayItems(schemaNS: String, arrayName: String): Int + + /** + * Provides access to fields within a nested structure. The namespace for the field is passed as + * a URI, you need not worry about the path string syntax. + * + * The names of fields should be XML qualified names, that is within an XML namespace. The path + * syntax for a qualified name uses the namespace prefix. This is unreliable since the prefix is + * never guaranteed. The URI is the formal name, the prefix is just a local shorthand in a given + * sequence of XML text. + * + * @param schemaNS The namespace URI for the struct. Has the same usage as in getProperty. + * @param structName The name of the struct. + * May be a general path expression, must not be `null` or the empty string. + * Has the same namespace prefix usage as propName in `getProperty()`. + * @param fieldNS The namespace URI for the field. Has the same URI and prefix usage as the + * schemaNS parameter. + * @param fieldName The name of the field. Must be a single XML name, must not be + * `null` or the empty string. Has the same namespace prefix usage as the + * structName parameter. + * @return Returns a `XMPProperty` containing the value and the options or + * `null` if the property does not exist. Arrays and non-leaf levels of + * structs do not have values. + */ + fun getStructField( + schemaNS: String, + structName: String, + fieldNS: String, + fieldName: String + ): XMPProperty? + + /** + * Provides access to a qualifier attached to a property. The namespace for the qualifier is + * passed as a URI, you need not worry about the path string syntax. In many regards qualifiers + * are like struct fields. See the introductory discussion of qualified properties for more + * information. + * + * The names of qualifiers should be XML qualified names, that is within an XML namespace. The + * path syntax for a qualified name uses the namespace prefix. This is unreliable since the + * prefix is never guaranteed. The URI is the formal name, the prefix is just a local shorthand + * in a given sequence of XML text. + * + * *Note:* Qualifiers are only supported for simple leaf properties. + * + * @param schemaNS The namespace URI for the struct. Has the same usage as in getProperty. + * @param structName The name of the struct. + * May be a general path expression, must not be `null` or the empty string. + * Has the same namespace prefix usage as propName in `getProperty()`. + * @param qualNS The namespace URI for the qualifier. Has the same URI and prefix usage as the + * schemaNS parameter. + * @param qualName The name of the qualifier. Must be a single XML name, must not be + * `null` or the empty string. Has the same namespace prefix usage as the + * propName parameter. + * @return Returns a `XMPProperty` containing the value and the options of the + * qualifier or `null` if the property does not exist. The name of the + * qualifier must be a single XML name, must not be `null` or the empty + * string. Has the same namespace prefix usage as the propName parameter. + * + * The value of the qualifier is only set if it has one (Arrays and non-leaf levels of + * structs do not have values). + */ + fun getQualifier( + schemaNS: String, + propName: String, + qualNS: String, + qualName: String + ): XMPProperty? + + // --------------------------------------------------------------------------------------------- + // Functions for setting property values + + /** + * The property value `setters` all take a property specification, their + * differences are in the form of this. The first two parameters are always the top level + * namespace URI (the `schema` namespace) and the basic name of the property being + * referenced. See the introductory discussion of path expression usage for more information. + * + * All of the functions take a string value for the property and option flags describing the + * property. The value must be Unicode in UTF-8 encoding. Arrays and non-leaf levels of structs + * do not have values. Empty arrays and structs may be created using appropriate option flags. + * All levels of structs that is assigned implicitly are created if necessary. appendArayItem + * implicitly creates the named array if necessary. + * + * See [PropertyOptions] for detailed information about the options. + * + * This is the simplest property setter, mainly for top level simple properties or after using + * the path composition functions in [XMPPathFactory]. + * + * @param schemaNS The namespace URI for the property. Has the same usage as in getProperty. + * @param propName The name of the property. Has the same usage as in `getProperty()`. + * @param propValue the value for the property (only leaf properties have a value). + * Arrays and non-leaf levels of structs do not have values. + * Must be `null` if the value is not relevant. + * The value is automatically detected: Boolean, Integer, Long, Double, XMPDateTime and + * byte[] are handled, on all other `toString()` is called. + * @param options Option flags describing the property. See the earlier description. + */ + fun setProperty( + schemaNS: String, + propName: String, + propValue: Any?, + options: PropertyOptions = PropertyOptions() + ) + + /** + * Replaces an item within an array. The index is passed as an integer, you need not worry about + * the path string syntax for array items, convert a loop index to a string, etc. The array + * passed must already exist. In normal usage the selected array item is modified. A new item is + * automatically appended if the index is the array size plus 1. + * + * @param schemaNS The namespace URI for the struct. Has the same usage as in getProperty. + * @param arrayName The name of the array. + * May be a general path expression, must not be `null` or the empty string. + * Has the same namespace prefix usage as propName in getProperty. + * @param itemIndex The index of the desired item. Arrays in XMP are indexed from 1. To address + * the last existing item, use [XMPMeta.countArrayItems] to find + * out the length of the array. + * @param itemValue the new value of the array item. Has the same usage as propValue in + * `setProperty()`. + * @param options the set options for the item. + */ + fun setArrayItem( + schemaNS: String, + arrayName: String, + itemIndex: Int, + itemValue: String, + options: PropertyOptions = PropertyOptions() + ) + + /** + * Inserts an item into an array previous to the given index. The index is passed as an integer, + * you need not worry about the path string syntax for array items, convert a loop index to a + * string, etc. The array passed must already exist. In normal usage the selected array item is + * modified. A new item is automatically appended if the index is the array size plus 1. + * + * @param schemaNS The namespace URI for the struct. Has the same usage as in getProperty. + * @param arrayName The name of the array. + * May be a general path expression, must not be `null` or the empty string. + * Has the same namespace prefix usage as propName in getProperty. + * @param itemIndex The index to insert the new item. Arrays in XMP are indexed from 1. Use + * `XMPConst.ARRAY_LAST_ITEM` to append items. + * @param itemValue the new value of the array item. Has the same usage as + * propValue in `setProperty()`. + * @param options the set options that decide about the kind of the node. + */ + fun insertArrayItem( + schemaNS: String, + arrayName: String, + itemIndex: Int, + itemValue: String, + options: PropertyOptions = PropertyOptions() + ) + + /** + * Simplifies the construction of an array by not requiring that you pre-create an empty array. + * The array that is assigned is created automatically if it does not yet exist. Each call to + * appendArrayItem() appends an item to the array. The corresponding parameters have the same + * use as setArrayItem(). The arrayOptions parameter is used to specify what kind of array. If + * the array exists, it must have the specified form. + * + * @param schemaNS The namespace URI for the struct. Has the same usage as in getProperty. + * @param arrayName The name of the array. + * May be a general path expression, must not be `null` or the empty string. + * Has the same namespace prefix usage as propName in getProperty. + * @param arrayOptions Option flags describing the array form. The only valid options are + * + * * [PropertyOptions.ARRAY], + * * [PropertyOptions.ARRAY_ORDERED], + * * [PropertyOptions.ARRAY_ALTERNATE] or + * * [PropertyOptions.ARRAY_ALT_TEXT]. + * + * *Note:* the array options only need to be provided if the array is not + * already existing, otherwise you can set them to `null` or use [XMPMeta.appendArrayItem]. + * + * @param itemValue the value of the array item. Has the same usage as propValue in getProperty. + * @param itemOptions Option flags describing the item to append ([PropertyOptions]) + */ + fun appendArrayItem( + schemaNS: String, + arrayName: String, + arrayOptions: PropertyOptions = PropertyOptions(), + itemValue: String, + itemOptions: PropertyOptions = PropertyOptions() + ) + + /** + * Provides access to fields within a nested structure. The namespace for the field is passed as + * a URI, you need not worry about the path string syntax. The names of fields should be XML + * qualified names, that is within an XML namespace. The path syntax for a qualified name uses + * the namespace prefix, which is unreliable because the prefix is never guaranteed. The URI is + * the formal name, the prefix is just a local shorthand in a given sequence of XML text. + * + * @param schemaNS The namespace URI for the struct. Has the same usage as in getProperty. + * @param structName The name of the struct. May be a general path expression, must not be null + * or the empty string. Has the same namespace prefix usage as propName in getProperty. + * @param fieldNS The namespace URI for the field. Has the same URI and prefix usage as the + * schemaNS parameter. + * @param fieldName The name of the field. Must be a single XML name, must not be null or the + * empty string. Has the same namespace prefix usage as the structName parameter. + * @param fieldValue the value of thefield, if the field has a value. + * Has the same usage as propValue in getProperty. + * @param options Option flags describing the field. See the earlier description. + */ + fun setStructField( + schemaNS: String, + structName: String, + fieldNS: String, + fieldName: String, + fieldValue: String?, + options: PropertyOptions = PropertyOptions() + ) + + /** + * Provides access to a qualifier attached to a property. The namespace for the qualifier is + * passed as a URI, you need not worry about the path string syntax. In many regards qualifiers + * are like struct fields. See the introductory discussion of qualified properties for more + * information. The names of qualifiers should be XML qualified names, that is within an XML + * namespace. The path syntax for a qualified name uses the namespace prefix, which is + * unreliable because the prefix is never guaranteed. The URI is the formal name, the prefix is + * just a local shorthand in a given sequence of XML text. The property the qualifier + * will be attached has to exist. + * + * @param schemaNS The namespace URI for the struct. Has the same usage as in getProperty. + * @param propName The name of the property to which the qualifier is attached. Has the same + * usage as in getProperty. + * @param qualNS The namespace URI for the qualifier. Has the same URI and prefix usage as the + * schemaNS parameter. + * @param qualName The name of the qualifier. Must be a single XML name, must not be + * `null` or the empty string. Has the same namespace prefix usage as the + * propName parameter. + * @param qualValue A pointer to the `null` terminated UTF-8 string that is the + * value of the qualifier, if the qualifier has a value. Has the same usage as propValue + * in getProperty. + * @param options Option flags describing the qualifier. See the earlier description. + */ + fun setQualifier( + schemaNS: String, + propName: String, + qualNS: String, + qualName: String, + qualValue: String, + options: PropertyOptions = PropertyOptions() + ) + + // --------------------------------------------------------------------------------------------- + // Functions for deleting and detecting properties. + // These should be obvious from the descriptions of the getters and setters. + + /** + * Deletes the given XMP subtree rooted at the given property. + * It is not an error if the property does not exist. + * + * @param schemaNS The namespace URI for the property. Has the same usage as in `getProperty()`. + * @param propName The name of the property. Has the same usage as in getProperty. + */ + fun deleteProperty(schemaNS: String, propName: String) + + /** + * Deletes the given XMP subtree rooted at the given array item. + * It is not an error if the array item does not exist. + * + * @param schemaNS The namespace URI for the array. Has the same usage as in getProperty. + * @param arrayName The name of the array. May be a general path expression, must not be + * `null` or the empty string. Has the same namespace prefix usage as + * propName in `getProperty()`. + * @param itemIndex The index of the desired item. Arrays in XMP are indexed from 1. The + * constant `XMPConst.ARRAY_LAST_ITEM` always refers to the last + * existing array item. + */ + fun deleteArrayItem(schemaNS: String, arrayName: String, itemIndex: Int) + + /** + * Deletes the given XMP subtree rooted at the given struct field. + * It is not an error if the field does not exist. + * + * @param schemaNS The namespace URI for the struct. Has the same usage as in `getProperty()`. + * @param structName The name of the struct. May be a general path expression, must not be + * `null` or the empty string. Has the same namespace prefix usage as + * propName in getProperty. + * @param fieldNS The namespace URI for the field. Has the same URI and prefix usage as the + * schemaNS parameter. + * @param fieldName The name of the field. Must be a single XML name, must not be + * `null` or the empty string. Has the same namespace prefix usage as the + * structName parameter. + */ + fun deleteStructField(schemaNS: String, structName: String, fieldNS: String, fieldName: String) + + /** + * Deletes the given XMP subtree rooted at the given qualifier. + * It is not an error if the qualifier does not exist. + * + * @param schemaNS The namespace URI for the struct. Has the same usage as in `getProperty()`. + * @param propName The name of the property to which the qualifier is attached. Has the same + * usage as in getProperty. + * @param qualNS The namespace URI for the qualifier. Has the same URI and prefix usage as the + * schemaNS parameter. + * @param qualName The name of the qualifier. Must be a single XML name, must not be + * `null` or the empty string. Has the same namespace prefix usage as the + * propName parameter. + */ + fun deleteQualifier(schemaNS: String, propName: String, qualNS: String, qualName: String) + + /** + * Returns whether the property exists. + * + * @param schemaNS The namespace URI for the property. Has the same usage as in getProperty()`. + * @param propName The name of the property. Has the same usage as in `getProperty()`. + * @return Returns true if the property exists. + */ + fun doesPropertyExist(schemaNS: String, propName: String): Boolean + + /** + * Tells if the array item exists. + * + * @param schemaNS The namespace URI for the array. Has the same usage as in `getProperty()`. + * @param arrayName The name of the array. May be a general path expression, must not be + * `null` or the empty string. Has the same namespace prefix usage as + * propName in `getProperty()`. + * @param itemIndex The index of the desired item. Arrays in XMP are indexed from 1. The + * constant `XMPConst.ARRAY_LAST_ITEM` always refers to the last + * existing array item. + * @return Returns `true` if the array exists, `false` otherwise. + */ + fun doesArrayItemExist(schemaNS: String, arrayName: String, itemIndex: Int): Boolean + + /** + * Tells if the struct field exists. + * + * @param schemaNS The namespace URI for the struct. Has the same usage as in `getProperty()`. + * @param structName The name of the struct. May be a general path expression, + * must not be `null` or the empty string. + * Has the same namespace prefix usage as propName in `getProperty()`. + * @param fieldNS The namespace URI for the field. + * Has the same URI and prefix usage as the schemaNS parameter. + * @param fieldName The name of the field. Must be a single XML name, + * must not be `null` or the empty string. + * Has the same namespace prefix usage as the structName parameter. + * @return Returns true if the field exists. + */ + fun doesStructFieldExist( + schemaNS: String, + structName: String, + fieldNS: String, + fieldName: String + ): Boolean + + /** + * Tells if the qualifier exists. + * + * @param schemaNS The namespace URI for the struct. Has the same usage as in `getProperty()`. + * @param propName The name of the property to which the qualifier is attached. Has the same + * usage as in `getProperty()`. + * @param qualNS The namespace URI for the qualifier. Has the same URI and prefix usage as the + * schemaNS parameter. + * @param qualName The name of the qualifier. Must be a single XML name, must not be + * `null` or the empty string. Has the same namespace prefix usage as the + * propName parameter. + * @return Returns true if the qualifier exists. + */ + fun doesQualifierExist(schemaNS: String, propName: String, qualNS: String, qualName: String): Boolean + + // --------------------------------------------------------------------------------------------- + // Specialized Get and Set functions + + /** + * These functions provide convenient support for localized text properties, including a number + * of special and obscure aspects. Localized text properties are stored in alt-text arrays. They + * allow multiple concurrent localizations of a property value, for example a document title or + * copyright in several languages. The most important aspect of these functions is that they + * select an appropriate array item based on one or two RFC 3066 language tags. One of these + * languages, the "specific" language, is preferred and selected if there is an exact match. For + * many languages it is also possible to define a "generic" language that may be used if there + * is no specific language match. The generic language must be a valid RFC 3066 primary subtag, + * or the empty string. For example, a specific language of "en-US" should be used in the US, + * and a specific language of "en-UK" should be used in England. It is also appropriate to use + * "en" as the generic language in each case. If a US document goes to England, the "en-US" + * title is selected by using the "en" generic language and the "en-UK" specific language. It is + * considered poor practice, but allowed, to pass a specific language that is just an RFC 3066 + * primary tag. For example "en" is not a good specific language, it should only be used as a + * generic language. Passing "i" or "x" as the generic language is also considered poor practice + * but allowed. Advice from the W3C about the use of RFC 3066 language tags can be found at: + * http://www.w3.org/International/articles/language-tags/ + * + * *Note:* RFC 3066 language tags must be treated in a case insensitive manner. The XMP + * Toolkit does this by normalizing their capitalization: + * + * * The primary subtag is lower case, the suggested practice of ISO 639. + * * All 2 letter secondary subtags are upper case, the suggested practice of ISO 3166. + * * All other subtags are lower case. The XMP specification defines an artificial language, + * * "x-default", that is used to explicitly denote a default item in an alt-text array. + * + * The XMP toolkit normalizes alt-text arrays such that the x-default item is the first item. + * The SetLocalizedText function has several special features related to the x-default item, see + * its description for details. The selection of the array item is the same for GetLocalizedText + * and SetLocalizedText: + * + * * Look for an exact match with the specific language. + * * If a generic language is given, look for a partial match. + * * Look for an x-default item. + * * Choose the first item. + * + * A partial match with the generic language is where the start of the item's language matches + * the generic string and the next character is '-'. An exact match is also recognized as a + * degenerate case. It is fine to pass x-default as the specific language. In this case, + * selection of an x-default item is an exact match by the first rule, not a selection by the + * 3rd rule. The last 2 rules are fallbacks used when the specific and generic languages fail to + * produce a match. `getLocalizedText` returns information about a selected item in + * an alt-text array. The array item is selected according to the rules given above. + * + * @param schemaNS The namespace URI for the alt-text array. Has the same usage as in `getProperty()`. + * @param altTextName The name of the alt-text array. May be a general path expression, must not + * be `null` or the empty string. Has the same namespace prefix usage as + * propName in `getProperty()`. + * @param genericLang The name of the generic language as an RFC 3066 primary subtag. May be + * `null` or the empty string if no generic language is wanted. + * @param specificLang The name of the specific language as an RFC 3066 tag. Must not be + * `null` or the empty string. + * @return Returns an `XMPProperty` containing the value, the actual language and + * the options if an appropriate alternate collection item exists, `null` + * if the property. + * does not exist. + * + */ + fun getLocalizedText( + schemaNS: String, + altTextName: String, + genericLang: String?, + specificLang: String + ): XMPProperty? + + /** + * Modifies the value of a selected item in an alt-text array. Creates an appropriate array item + * if necessary, and handles special cases for the x-default item. If the selected item is from + * a match with the specific language, the value of that item is modified. If the existing value + * of that item matches the existing value of the x-default item, the x-default item is also + * modified. If the array only has 1 existing item (which is not x-default), an x-default item + * is added with the given value. If the selected item is from a match with the generic language + * and there are no other generic matches, the value of that item is modified. If the existing + * value of that item matches the existing value of the x-default item, the x-default item is + * also modified. If the array only has 1 existing item (which is not x-default), an x-default + * item is added with the given value. If the selected item is from a partial match with the + * generic language and there are other partial matches, a new item is created for the specific + * language. The x-default item is not modified. If the selected item is from the last 2 rules + * then a new item is created for the specific language. If the array only had an x-default + * item, the x-default item is also modified. If the array was empty, items are created for the + * specific language and x-default. + * + * @param schemaNS The namespace URI for the alt-text array. Has the same usage as in `getProperty()`. + * @param altTextName The name of the alt-text array. May be a general path expression, + * must not be `null` or the empty string. + * Has the same namespace prefix usage as propName in `getProperty()`. + * @param genericLang The name of the generic language as an RFC 3066 primary subtag. + * May be `null` or the empty string if no generic language is wanted. + * @param specificLang The name of the specific language as an RFC 3066 tag. + * Must not be `null` or the empty string. + * @param itemValue A pointer to the `null` terminated UTF-8 string that is the new + * value for the appropriate array item. + * @param options Option flags, none are defined at present. + */ + fun setLocalizedText( + schemaNS: String, + altTextName: String, + genericLang: String?, + specificLang: String, + itemValue: String, + options: PropertyOptions = PropertyOptions() + ) + + // --------------------------------------------------------------------------------------------- + // Functions accessing properties as binary values. + + /** + * These are very similar to `getProperty()` and `SetProperty()` above, + * but the value is returned or provided in a literal form instead of as a UTF-8 string. + * The path composition functions in `XMPPathFactory` may be used to compose an path + * expression for fields in nested structures, items in arrays, or qualifiers. + * + * @param schemaNS The namespace URI for the property. Has the same usage as in `getProperty()`. + * @param propName The name of the property. Has the same usage as in `getProperty()`. + * @return Returns a `Boolean` value or `null` if the property does not exist. + */ + fun getPropertyBoolean(schemaNS: String, propName: String): Boolean? + + /** + * Convenience method to retrieve the literal value of a property. + * + * @param schemaNS The namespace URI for the property. Has the same usage as in `getProperty()`. + * @param propName The name of the property. Has the same usage as in `getProperty()`. + * @return Returns an `Integer` value or `null` if the property does not exist. + */ + fun getPropertyInteger(schemaNS: String, propName: String): Int? + + /** + * Convenience method to retrieve the literal value of a property. + * + * @param schemaNS The namespace URI for the property. Has the same usage as in `getProperty()`. + * @param propName The name of the property. Has the same usage as in `getProperty()`. + * @return Returns a `Long` value or `null` if the property does not exist. + */ + fun getPropertyLong(schemaNS: String, propName: String): Long? + + /** + * Convenience method to retrieve the literal value of a property. + * + * @param schemaNS The namespace URI for the property. Has the same usage as in `getProperty()`. + * @param propName The name of the property. Has the same usage as in `getProperty()`. + * @return Returns a `Double` value or `null` if the property does not exist. + */ + fun getPropertyDouble(schemaNS: String, propName: String): Double? + + /** + * Convenience method to retrieve the literal value of a property. + * + * @param schemaNS The namespace URI for the property. Has the same usage as in `getProperty()`. + * @param propName The name of the property. Has the same usage as in `getProperty()`. + * @return Returns a `byte[]`-array contained the decoded base64 value or `null` if the property does + * not exist. + */ + fun getPropertyBase64(schemaNS: String, propName: String): ByteArray? + + /** + * Convenience method to retrieve the literal value of a property. + * + * *Note:* There is no `setPropertyString()`, + * because `setProperty()` sets a string value. + * + * @param schemaNS The namespace URI for the property. Has the same usage as in `getProperty()`. + * @param propName The name of the property. Has the same usage as in `getProperty()`. + * @return Returns a `String` value or `null` if the property does not exist. + */ + fun getPropertyString(schemaNS: String, propName: String): String? + + /** + * Convenience method to set a property to a literal `boolean` value. + * + * @param schemaNS The namespace URI for the property. Has the same usage as in `setProperty()`. + * @param propName The name of the property. Has the same usage as in `getProperty()`. + * @param propValue the literal property value as `boolean`. + * @param options options of the property to set (optional). + */ + fun setPropertyBoolean( + schemaNS: String, + propName: String, + propValue: Boolean, + options: PropertyOptions = PropertyOptions() + ) + + /** + * Convenience method to set a property to a literal `int` value. + * + * @param schemaNS The namespace URI for the property. Has the same usage as in `setProperty()`. + * @param propName The name of the property. Has the same usage as in `getProperty()`. + * @param propValue the literal property value as `int`. + * @param options options of the property to set (optional). + * + */ + fun setPropertyInteger( + schemaNS: String, + propName: String, + propValue: Int, + options: PropertyOptions = PropertyOptions() + ) + + /** + * Convenience method to set a property to a literal `long` value. + * + * @param schemaNS The namespace URI for the property. Has the same usage as in `setProperty()`. + * @param propName The name of the property. Has the same usage as in `getProperty()`. + * @param propValue the literal property value as `long`. + * @param options options of the property to set (optional). + */ + fun setPropertyLong( + schemaNS: String, + propName: String, + propValue: Long, + options: PropertyOptions = PropertyOptions() + ) + + /** + * Convenience method to set a property to a literal `double` value. + * + * @param schemaNS The namespace URI for the property. Has the same usage as in `setProperty()`. + * @param propName The name of the property. Has the same usage as in `getProperty()`. + * @param propValue the literal property value as `double`. + * @param options options of the property to set (optional). + */ + fun setPropertyDouble( + schemaNS: String, + propName: String, + propValue: Double, + options: PropertyOptions = PropertyOptions() + ) + + /** + * Convenience method to set a property from a binary `byte[]`-array, + * which is serialized as base64-string. + * + * @param schemaNS The namespace URI for the property. Has the same usage as in `setProperty()`. + * @param propName The name of the property. Has the same usage as in `getProperty()`. + * @param propValue the literal property value as byte array. + * @param options options of the property to set (optional). + */ + fun setPropertyBase64( + schemaNS: String, + propName: String, + propValue: ByteArray, + options: PropertyOptions = PropertyOptions() + ) + + /** + * Constructs an iterator for the properties within this XMP object. + * + * @return Returns an `XMPIterator`. + */ + fun iterator(): XMPIterator + + /** + * Constructs an iterator for the properties within this XMP object using some options. + * + * @param options Option flags to control the iteration. + * @return Returns an `XMPIterator`. + */ + fun iterator(options: IteratorOptions): XMPIterator + + /** + * Construct an iterator for the properties within an XMP object. According to the parameters it iterates + * the entire data tree, properties within a specific schema, or a subtree rooted at a specific node. + * + * @param schemaNS Optional schema namespace URI to restrict the iteration. + * Omitted (visit all schema) by passing `null` or empty String. + * @param propName Optional property name to restrict the iteration. May be an arbitrary path + * expression. Omitted (visit all properties) by passing `null` or empty + * String. If no schema URI is given, it is ignored. + * @param options Option flags to control the iteration. See [IteratorOptions] for details. + * @return Returns an `XMPIterator` for this `XMPMeta`-object considering the given options. + */ + fun iterator( + schemaNS: String?, + propName: String?, + options: IteratorOptions = IteratorOptions() + ): XMPIterator + + /** + * This correlates to the about-attribute, + * returns the empty String if no name is set. + * + * @return Returns the name of the XMP object. + */ + fun getObjectName(): String + + /** + * @param name Sets the name of the XMP object. + */ + fun setObjectName(name: String) + + /** + * @return Returns the unparsed content of the <?xpacket> processing instruction. + * This contains normally the attribute-like elements 'begin="<BOM>" + * id="W5M0MpCehiHzreSzNTczkc9d"' and possibly the deprecated elements 'bytes="1234"' or + * 'encoding="XXX"'. If the parsed packet has not been wrapped into an xpacket, + * `null` is returned. + */ + fun getPacketHeader(): String? + + /** + * Sorts the complete datamodel according to the following rules: + * + * * Schema nodes are sorted by prefix. + * * Properties at top level and within structs are sorted by full name, that is prefix + local name. + * * Array items are not sorted, even if they have no certain order such as bags. + * * Qualifier are sorted, with the exception of "xml:lang" and/or "rdf:type" + * that stay at the top of the list in that order. + */ + fun sort() + + /** + * Perform the normalization as a separate parsing step. + * Normally it is done during parsing, unless the parsing option + * [ParseOptions.OMIT_NORMALIZATION] is set to `true`. + * *Note:* It does no harm to call this method to an already normalized xmp object. + * It was a PDF/A requirement to get hand on the unnormalized `XMPMeta` object. + */ + fun normalize(options: ParseOptions = ParseOptions()) + +} diff --git a/src/commonMain/kotlin/com/ashampoo/xmp/XMPMetaFactory.kt b/src/commonMain/kotlin/com/ashampoo/xmp/XMPMetaFactory.kt new file mode 100644 index 0000000..690589f --- /dev/null +++ b/src/commonMain/kotlin/com/ashampoo/xmp/XMPMetaFactory.kt @@ -0,0 +1,50 @@ +// ================================================================================================= +// ADOBE SYSTEMS INCORPORATED +// Copyright 2006 Adobe Systems Incorporated +// All Rights Reserved +// +// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms +// of the Adobe license agreement accompanying it. +// ================================================================================================= +package com.ashampoo.xmp + +import com.ashampoo.xmp.impl.XMPMetaImpl +import com.ashampoo.xmp.impl.XMPMetaParser +import com.ashampoo.xmp.impl.XMPRDFWriter +import com.ashampoo.xmp.impl.XMPSchemaRegistryImpl +import com.ashampoo.xmp.options.ParseOptions +import com.ashampoo.xmp.options.SerializeOptions + +/** + * Creates `XMPMeta`-instances from an `InputStream` + */ +object XMPMetaFactory { + + @kotlin.jvm.JvmStatic + val schemaRegistry = XMPSchemaRegistryImpl + + @kotlin.jvm.JvmStatic + val versionInfo = XMPVersionInfo + + fun create(): XMPMeta = XMPMetaImpl() + + fun parseFromString( + packet: String, + options: ParseOptions = ParseOptions() + ): XMPMeta = + XMPMetaParser.parse(packet, options) + + fun serializeToString( + xmp: XMPMeta, + options: SerializeOptions = SerializeOptions() + ): String { + + require(xmp is XMPMetaImpl) { "Serialization only works with XMPMetaImpl" } + + /* sort the internal data model on demand */ + if (options.getSort()) + xmp.sort() + + return XMPRDFWriter(xmp, options).serialize() + } +} diff --git a/src/commonMain/kotlin/com/ashampoo/xmp/XMPPathFactory.kt b/src/commonMain/kotlin/com/ashampoo/xmp/XMPPathFactory.kt new file mode 100644 index 0000000..8bf7ec6 --- /dev/null +++ b/src/commonMain/kotlin/com/ashampoo/xmp/XMPPathFactory.kt @@ -0,0 +1,179 @@ +// ================================================================================================= +// ADOBE SYSTEMS INCORPORATED +// Copyright 2006 Adobe Systems Incorporated +// All Rights Reserved +// +// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms +// of the Adobe license agreement accompanying it. +// ================================================================================================= +package com.ashampoo.xmp + +import com.ashampoo.xmp.impl.Utils +import com.ashampoo.xmp.impl.xpath.XMPPath +import com.ashampoo.xmp.impl.xpath.XMPPathParser + +/** + * Utility services for the metadata object. It has only public static functions, you cannot create + * an object. These are all functions that layer cleanly on top of the core XMP toolkit. + * + * These functions provide support for composing path expressions to deeply nested properties. The + * functions `XMPMeta` such as `getProperty()`, + * `getArrayItem()` and `getStructField()` provide easy access to top + * level simple properties, items in top level arrays, and fields of top level structs. They do not + * provide convenient access to more complex things like fields several levels deep in a complex + * struct, or fields within an array of structs, or items of an array that is a field of a struct. + * These functions can also be used to compose paths to top level array items or struct fields so + * that you can use the binary accessors like `getPropertyAsInteger()`. + * + * You can use these functions is to compose a complete path expression, or all but the last + * component. Suppose you have a property that is an array of integers within a struct. + * + * *Note:* It might look confusing that the schemaNS is passed in all of the calls above. + * This is because the XMP toolkit keeps the top level "schema" namespace separate from + * the rest of the path expression. + * + * *Note:* These methods are much simpler than in the C++-API, they don't check the given path or array indices. + */ +object XMPPathFactory { + + /** + * Compose the path expression for an item in an array. + * + * @param arrayName The name of the array. + * May be a general path expression, must not be `null` or the empty string. + * @param itemIndex The index of the desired item. Arrays in XMP are indexed from 1. + * 0 and below means last array item and renders as `[last()]`. + * @return Returns the composed path basing on fullPath. This will be of the form + * ns:arrayName[i], where "ns" is the prefix for schemaNS and + * "i" is the decimal representation of itemIndex. + */ + @kotlin.jvm.JvmStatic + fun composeArrayItemPath(arrayName: String, itemIndex: Int): String { + + if (itemIndex > 0) + return "$arrayName[$itemIndex]" + + if (itemIndex == XMPConst.ARRAY_LAST_ITEM) + return "$arrayName[last()]" + + throw XMPException("Array index must be larger than zero", XMPError.BADINDEX) + } + + /** + * Compose the path expression for a field in a struct. The result can be added to the + * path of + * + * @param fieldNS The namespace URI for the field. Must not be `null` or the empty string. + * @param fieldName The name of the field. Must be a simple XML name, + * must not be `null` or the empty string. + * @return Returns the composed path. This will be of the form + * ns:structName/fNS:fieldName, where "ns" is the prefix for + * schemaNS and "fNS" is the prefix for fieldNS. + */ + @kotlin.jvm.JvmStatic + fun composeStructFieldPath(fieldNS: String, fieldName: String): String { + + if (fieldNS.length == 0) + throw XMPException("Empty field namespace URI", XMPError.BADSCHEMA) + + if (fieldName.length == 0) + throw XMPException("Empty field name", XMPError.BADXPATH) + + val fieldPath = XMPPathParser.expandXPath(fieldNS, fieldName) + + if (fieldPath.size() != 2) + throw XMPException("The field name must be simple", XMPError.BADXPATH) + + return '/'.toString() + fieldPath.getSegment(XMPPath.STEP_ROOT_PROP).name + } + + /** + * Compose the path expression for a qualifier. + * + * @param qualNS The namespace URI for the qualifier. + * May be `null` or the empty string if the qualifier is in the XML empty namespace. + * @param qualName The name of the qualifier. + * Must be a simple XML name, must not be `null` or the empty string. + * @return Returns the composed path. This will be of the form + * ns:propName/?qNS:qualName, where "ns" is the prefix for + * schemaNS and "qNS" is the prefix for qualNS. + */ + @kotlin.jvm.JvmStatic + fun composeQualifierPath(qualNS: String, qualName: String): String { + + if (qualNS.length == 0) + throw XMPException("Empty qualifier namespace URI", XMPError.BADSCHEMA) + + if (qualName.length == 0) + throw XMPException("Empty qualifier name", XMPError.BADXPATH) + + val qualPath = XMPPathParser.expandXPath(qualNS, qualName) + + if (qualPath.size() != 2) + throw XMPException("The qualifier name must be simple", XMPError.BADXPATH) + + return "/?" + qualPath.getSegment(XMPPath.STEP_ROOT_PROP).name + } + + /** + * Compose the path expression to select an alternate item by language. The + * path syntax allows two forms of "content addressing" that may + * be used to select an item in an array of alternatives. The form used in + * ComposeLangSelector lets you select an item in an alt-text array based on + * the value of its xml:lang qualifier. The other form of content + * addressing is shown in ComposeFieldSelector. + * + * ComposeLangSelector does not supplant SetLocalizedText or GetLocalizedText. + * They should generally be used, as they provide extra logic to choose the appropriate + * language and maintain consistency with the 'x-default' value. + * ComposeLangSelector gives you an path expression that is explicitly and + * only for the language given in the langName parameter. + * + * @param arrayName The name of the array. + * May be a general path expression, must not be `null` or the empty string. + * @param langName The RFC 3066 code for the desired language. + * @return Returns the composed path. This will be of the form + * ns:arrayName[@xml:lang='langName'], where + * "ns" is the prefix for schemaNS. + */ + fun composeLangSelector(arrayName: String, langName: String): String = + arrayName + "[?xml:lang=\"" + Utils.normalizeLangValue(langName) + "\"]" + + /** + * Compose the path expression to select an alternate item by a field's value. The path syntax + * allows two forms of "content addressing" that may be used to select an item in an + * array of alternatives. The form used in ComposeFieldSelector lets you select an item in an + * array of structs based on the value of one of the fields in the structs. The other form of + * content addressing is shown in ComposeLangSelector. For example, consider a simple struct + * that has two fields, the name of a city and the URI of an FTP site in that city. Use this to + * create an array of download alternatives. You can show the user a popup built from the values + * of the city fields. + * + * @param arrayName The name of the array. + * May be a general path expression, must not be `null` or the empty string. + * @param fieldNS The namespace URI for the field used as the selector. + * Must not be `null` or the empty string. + * @param fieldName The name of the field used as the selector. + * Must be a simple XML name, must not be `null` or the empty string. + * It must be the name of a field that is itself simple. + * @param fieldValue The desired value of the field. + * @return Returns the composed path. This will be of the form + * ns:arrayName[fNS:fieldName='fieldValue'], where "ns" is the + * prefix for schemaNS and "fNS" is the prefix for fieldNS. + */ + fun composeFieldSelector( + arrayName: String, + fieldNS: String?, + fieldName: String?, + fieldValue: String + ): String { + + val fieldPath = XMPPathParser.expandXPath(fieldNS, fieldName) + + if (fieldPath.size() != 2) + throw XMPException("The fieldName name must be simple", XMPError.BADXPATH) + + return arrayName + + '[' + fieldPath.getSegment(XMPPath.STEP_ROOT_PROP).name + "=\"" + fieldValue + "\"]" + } +} diff --git a/src/commonMain/kotlin/com/ashampoo/xmp/XMPSchemaRegistry.kt b/src/commonMain/kotlin/com/ashampoo/xmp/XMPSchemaRegistry.kt new file mode 100644 index 0000000..26e1ff0 --- /dev/null +++ b/src/commonMain/kotlin/com/ashampoo/xmp/XMPSchemaRegistry.kt @@ -0,0 +1,142 @@ +// ================================================================================================= +// ADOBE SYSTEMS INCORPORATED +// Copyright 2006 Adobe Systems Incorporated +// All Rights Reserved +// +// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms +// of the Adobe license agreement accompanying it. +// ================================================================================================= +package com.ashampoo.xmp + +import com.ashampoo.xmp.properties.XMPAliasInfo + +/** + * The schema registry keeps track of all namespaces and aliases used in the XMP + * metadata. At initialisation time, the default namespaces and default aliases + * are automatically registered. **Namespaces** must be registered before + * used in namespace URI parameters or path expressions. Within the XMP Toolkit + * the registered namespace URIs and prefixes must be unique. Additional + * namespaces encountered when parsing RDF are automatically registered. The + * namespace URI should always end in an XML name separator such as '/' or '#'. + * This is because some forms of RDF shorthand catenate a namespace URI with an + * element name to form a new URI. + * + * **Aliases** in XMP serve the same purpose as Windows file shortcuts, + * Macintosh file aliases, or UNIX file symbolic links. The aliases are simply + * multiple names for the same property. One distinction of XMP aliases is that + * they are ordered, there is an alias name pointing to an actual name. The + * primary significance of the actual name is that it is the preferred name for + * output, generally the most widely recognized name. + * + * The names that can be aliased in XMP are restricted. The alias must be a top + * level property name, not a field within a structure or an element within an + * array. The actual may be a top level property name, the first element within + * a top level array, or the default element in an alt-text array. This does not + * mean the alias can only be a simple property. It is OK to alias a top level + * structure or array to an identical top level structure or array, or to the + * first item of an array of structures. + */ +interface XMPSchemaRegistry { + + // --------------------------------------------------------------------------------------------- + // Namespace Functions + + /** + * Register a namespace URI with a suggested prefix. It is not an error if + * the URI is already registered, no matter what the prefix is. If the URI + * is not registered but the suggested prefix is in use, a unique prefix is + * created from the suggested one. The actual registeed prefix is always + * returned. The function result tells if the registered prefix is the + * suggested one. + * + * Note: No checking is presently done on either the URI or the prefix. + * + * @param namespaceURI The URI for the namespace. Must be a valid XML URI. + * @param suggestedPrefix The suggested prefix to be used if the URI is not yet registered. + * Must be a valid XML name. + * @return Returns the registered prefix for this URI, is equal to the suggestedPrefix if the + * namespace hasn't been registered before, otherwise the existing prefix. + */ + fun registerNamespace(namespaceURI: String, suggestedPrefix: String): String + + /** + * Obtain the prefix for a registered namespace URI. + * + * It is not an error if the namespace URI is not registered. + * + * @param namespaceURI The URI for the namespace. Must not be null or the empty string. + * @return Returns the prefix registered for this namespace URI or null. + */ + fun getNamespacePrefix(namespaceURI: String): String? + + /** + * Obtain the URI for a registered namespace prefix. + * + * It is not an error if the namespace prefix is not registered. + * + * @param namespacePrefix The prefix for the namespace. Must not be null or the empty string. + * @return Returns the URI registered for this prefix or null. + */ + fun getNamespaceURI(namespacePrefix: String): String? + + /** + * @return Returns the registered prefix/namespace-pairs as map, where the keys are the + * namespaces and the values are the prefixes. + */ + fun getNamespaces(): Map + + /** + * @return Returns the registered namespace/prefix-pairs as map, where the keys are the + * prefixes and the values are the namespaces. + */ + fun getPrefixes(): Map + + /** + * Deletes a namespace from the registry. + * + * Does nothing if the URI is not registered, or if the namespaceURI + * parameter is null or the empty string. + * + * @param namespaceURI The URI for the namespace. + */ + fun deleteNamespace(namespaceURI: String) + + // --------------------------------------------------------------------------------------------- + // Alias Functions + + /** + * Determines if a name is an alias, and what it is aliased to. + * + * @param aliasNS The namespace URI of the alias. Must not be `null` or the empty string. + * @param aliasProp The name of the alias. + * May be an arbitrary path expression path, must not be `null` or the empty string. + * @return Returns the `XMPAliasInfo` for the given alias namespace and property + * or `null` if there is no such alias. + */ + fun resolveAlias(aliasNS: String, aliasProp: String): XMPAliasInfo? + + /** + * Collects all aliases that are contained in the provided namespace. + * If nothing is found, an empty array is returned. + * + * @param aliasNS a schema namespace URI + * @return Returns all alias infos from aliases that are contained in the provided namespace. + */ + fun findAliases(aliasNS: String): Set + + /** + * Searches for registered aliases. + * + * @param qname an XML conform qname + * @return Returns if an alias definition for the given qname to another + * schema and property is registered. + */ + fun findAlias(qname: String): XMPAliasInfo? + + /** + * @return Returns the registered aliases as map, where the key is the "qname" (prefix and name) + * and the value an `XMPAliasInfo`-object. + */ + fun getAliases(): Map + +} diff --git a/src/commonMain/kotlin/com/ashampoo/xmp/XMPUtils.kt b/src/commonMain/kotlin/com/ashampoo/xmp/XMPUtils.kt new file mode 100644 index 0000000..adde755 --- /dev/null +++ b/src/commonMain/kotlin/com/ashampoo/xmp/XMPUtils.kt @@ -0,0 +1,120 @@ +// ================================================================================================= +// ADOBE SYSTEMS INCORPORATED +// Copyright 2006 Adobe Systems Incorporated +// All Rights Reserved +// +// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms +// of the Adobe license agreement accompanying it. +// ================================================================================================= +package com.ashampoo.xmp + +import kotlin.io.encoding.Base64 +import kotlin.io.encoding.ExperimentalEncodingApi + +/** + * Utility methods for XMP. I included only those that are different from the + * Java default conversion utilities. + */ +object XMPUtils { + + /** + * Convert from string to Boolean. + * + * @param value The string representation of the Boolean. + * @return The appropriate boolean value for the string. + * The checked values for `true` and `false` are: + * * [XMPConst.TRUESTR] and [XMPConst.FALSESTR] + * * "t" and "f" + * * "on" and "off" + * * "yes" and "no" + * * "value != 0" and "value == 0" + */ + @kotlin.jvm.JvmStatic + fun convertToBoolean(value: String?): Boolean { + + if (value == null || value.length == 0) + throw XMPException("Empty convert-string", XMPError.BADVALUE) + + val valueLowercase = value.lowercase() + + try { + + /* First try interpretation as Integer (anything not 0 is true) */ + return valueLowercase.toInt() != 0 + + } catch (ex: NumberFormatException) { + + /* Fallback to other common true values */ + return "true" == valueLowercase || "t" == valueLowercase || + "on" == valueLowercase || "yes" == valueLowercase + } + } + + @kotlin.jvm.JvmStatic + fun convertToInteger(rawValue: String?): Int { + try { + + if (rawValue == null || rawValue.length == 0) + throw XMPException("Empty convert-string", XMPError.BADVALUE) + + return if (rawValue.startsWith("0x")) + rawValue.substring(2).toInt(16) + else + rawValue.toInt() + + } catch (ex: NumberFormatException) { + throw XMPException("Invalid integer string", XMPError.BADVALUE, ex) + } + } + + @kotlin.jvm.JvmStatic + fun convertToLong(rawValue: String?): Long { + + try { + + if (rawValue == null || rawValue.length == 0) + throw XMPException("Empty convert-string", XMPError.BADVALUE) + + return if (rawValue.startsWith("0x")) + rawValue.substring(2).toLong(16) + else + rawValue.toLong() + + } catch (ex: NumberFormatException) { + throw XMPException("Invalid long string", XMPError.BADVALUE, ex) + } + } + + @kotlin.jvm.JvmStatic + fun convertToDouble(rawValue: String?): Double { + + try { + + if (rawValue == null || rawValue.length == 0) + throw XMPException("Empty convert-string", XMPError.BADVALUE) + + return rawValue.toDouble() + + } catch (ex: NumberFormatException) { + throw XMPException("Invalid double string", XMPError.BADVALUE, ex) + } + } + + @OptIn(ExperimentalEncodingApi::class) + @kotlin.jvm.JvmStatic + fun encodeBase64(buffer: ByteArray): String = + Base64.encode(buffer) + + @OptIn(ExperimentalEncodingApi::class) + @kotlin.jvm.JvmStatic + fun decodeBase64(base64String: String): ByteArray { + + try { + + return Base64.decode(base64String.encodeToByteArray()) + + } catch (ex: Throwable) { + throw XMPException("Invalid base64 string", XMPError.BADVALUE, ex) + } + } +} diff --git a/src/commonMain/kotlin/com/ashampoo/xmp/XMPVersionInfo.kt b/src/commonMain/kotlin/com/ashampoo/xmp/XMPVersionInfo.kt new file mode 100644 index 0000000..d5fc837 --- /dev/null +++ b/src/commonMain/kotlin/com/ashampoo/xmp/XMPVersionInfo.kt @@ -0,0 +1,21 @@ +package com.ashampoo.xmp + +/** + * We ported from version 1.5.3, which was the final release available on + * https://www.adobe.com/devnet/xmp/library/eula-xmp-library-java.html + * under the BSD license, prior to the webpage being taken down. + * Hence we report this as the used version. + */ +@Suppress("MagicNumber") +object XMPVersionInfo { + + const val VERSION_MESSAGE = "Adobe XMP Core 5.1.3" + + const val major: Int = 5 + const val minor: Int = 1 + const val micro: Int = 3 + const val build: Int = 0 + const val isDebug: Boolean = false + const val message: String = VERSION_MESSAGE + +} diff --git a/src/commonMain/kotlin/com/ashampoo/xmp/impl/DomParser.kt b/src/commonMain/kotlin/com/ashampoo/xmp/impl/DomParser.kt new file mode 100644 index 0000000..e512338 --- /dev/null +++ b/src/commonMain/kotlin/com/ashampoo/xmp/impl/DomParser.kt @@ -0,0 +1,9 @@ +package com.ashampoo.xmp.impl + +import nl.adaptivity.xmlutil.dom.Document + +fun interface DomParser { + + fun parseDocumentFromString(input: String): Document + +} diff --git a/src/commonMain/kotlin/com/ashampoo/xmp/impl/QName.kt b/src/commonMain/kotlin/com/ashampoo/xmp/impl/QName.kt new file mode 100644 index 0000000..0595009 --- /dev/null +++ b/src/commonMain/kotlin/com/ashampoo/xmp/impl/QName.kt @@ -0,0 +1,51 @@ +// ================================================================================================= +// ADOBE SYSTEMS INCORPORATED +// Copyright 2006 Adobe Systems Incorporated +// All Rights Reserved +// +// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms +// of the Adobe license agreement accompanying it. +// ================================================================================================= +package com.ashampoo.xmp.impl + +class QName { + + /** + * XML namespace prefix + */ + var prefix: String? = null + private set + + /** + * XML localname + */ + var localName: String? = null + private set + + /** + * Splits a qname into prefix and localname. + * + * @param qname a QName + */ + constructor(qname: String) { + + val colon = qname.indexOf(':') + + if (colon >= 0) { + prefix = qname.substring(0, colon) + localName = qname.substring(colon + 1) + } else { + prefix = "" + localName = qname + } + } + + constructor(prefix: String?, localName: String?) { + this.prefix = prefix + this.localName = localName + } + + fun hasPrefix(): Boolean = + prefix != null && prefix!!.length > 0 + +} diff --git a/src/commonMain/kotlin/com/ashampoo/xmp/impl/Utils.kt b/src/commonMain/kotlin/com/ashampoo/xmp/impl/Utils.kt new file mode 100644 index 0000000..420595d --- /dev/null +++ b/src/commonMain/kotlin/com/ashampoo/xmp/impl/Utils.kt @@ -0,0 +1,367 @@ +// ================================================================================================= +// ADOBE SYSTEMS INCORPORATED +// Copyright 2006 Adobe Systems Incorporated +// All Rights Reserved +// +// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms +// of the Adobe license agreement accompanying it. +// ================================================================================================= +package com.ashampoo.xmp.impl + +import com.ashampoo.xmp.XMPConst + +/** + * Utility functions for the XMPToolkit implementation. + */ +object Utils { + + /** + * segments of a UUID + */ + const val UUID_SEGMENT_COUNT = 4 + + /** + * length of a UUID + */ + const val UUID_LENGTH = 32 + UUID_SEGMENT_COUNT + + /** + * table of XML name start chars (<= 0xFF) + */ + private val xmlNameStartChars = BooleanArray(0x0100) + + /** + * table of XML name chars (<= 0xFF) + */ + private val xmlNameChars = BooleanArray(0x0100) + + private val controlCharRegex = Regex("[\\p{Cntrl}]") + + /** init char tables */ + init { + initCharTables() + } + + /** + * Normalize an xml:lang value so that comparisons are effectively case + * insensitive as required by RFC 3066 (which superceeds RFC 1766). The + * normalization rules: + * + * * The primary subtag is lower case, the suggested practice of ISO 639. + * * All 2 letter secondary subtags are upper case, the suggested + * practice of ISO 3166. + * * All other subtags are lower case. + * + * + * @param value raw value + * @return Returns the normalized value. + */ + @kotlin.jvm.JvmStatic + fun normalizeLangValue(value: String): String { + + // don't normalize x-default + if (XMPConst.X_DEFAULT == value) + return value + + var subTag = 1 + val buffer = StringBuilder() + + for (i in 0 until value.length) { + + when (value[i]) { + + '-', '_' -> { + /* Move to next subtag and convert underscore to hyphen */ + buffer.append('-') + subTag++ + } + + ' ' -> { + /* Leave as is. */ + } + + else -> + /* Convert second subtag to uppercase, all other to lowercase */ + if (subTag != 2) + buffer.append(value[i].lowercaseChar()) + else + buffer.append(value[i].uppercaseChar()) + } + } + + return buffer.toString() + } + + /** + * Split the name and value parts for field and qualifier selectors: + * + * * [qualName="value"] - An element in an array of structs, chosen by a field value. + * * [?qualName="value"] - An element in an array, chosen by a qualifier value. + * + * The value portion is a string quoted by ''' or '"'. The value may contain + * any character including a doubled quoting character. The value may be + * empty. *Note:* It is assumed that the expression is formal + * correct + * + * @param selector the selector + * @return Returns an array where the first entry contains the name and the second the value. + */ + @kotlin.jvm.JvmStatic + fun splitNameAndValue(selector: String): Array { + + // get the name + val eq = selector.indexOf('=') + + var pos = 1 + + if (selector[pos] == '?') + pos++ + + val name = selector.substring(pos, eq) + + // get the value + pos = eq + 1 + + val quote = selector[pos] + + pos++ + + val end = selector.length - 2 // quote and ] + + val value = StringBuilder(end - eq) + + while (pos < end) { + + value.append(selector[pos]) + + pos++ + + if (selector[pos] == quote) { + // skip one quote in value + pos++ + } + } + + return arrayOf(name, value.toString()) + } + + /** + * Check some requirements for an UUID: + * + * * Length of the UUID is 32 + * * The Delimiter count is 4 and all the 4 delimiter are on their right position (8,13,18,23) + * + * @param uuid uuid to test + * @return true - this is a well formed UUID, false - UUID has not the expected format + */ + @kotlin.jvm.JvmStatic + fun checkUUIDFormat(uuid: String?): Boolean { + + var result = true + var delimCnt = 0 + var delimPos = 0 + + if (uuid == null) + return false + + delimPos = 0 + + while (delimPos < uuid.length) { + + if (uuid[delimPos] == '-') { + delimCnt++ + result = result && (delimPos == 8 || delimPos == 13 || delimPos == 18 || delimPos == 23) + } + + delimPos++ + } + + return result && UUID_SEGMENT_COUNT == delimCnt && UUID_LENGTH == delimPos + } + + /** + * Simple check for valid XMLNames. Within ASCII range

+ * ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6]

+ * are accepted, above all characters (which is not entirely + * correct according to the XML Spec. + * + * @param name an XML Name + * @return Return `true` if the name is correct. + */ + fun isXMLName(name: String): Boolean { + + if (name.length > 0 && !isNameStartChar(name[0])) + return false + + for (i in 1 until name.length) + if (!isNameChar(name[i])) + return false + + return true + } + + /** + * Checks if the value is a legal "unqualified" XML name, as + * defined in the XML Namespaces proposed recommendation. + * These are XML names, except that they must not contain a colon. + * + * @param name the value to check + * @return Returns true if the name is a valid "unqualified" XML name. + */ + @kotlin.jvm.JvmStatic + fun isXMLNameNS(name: String): Boolean { + + if (name.length > 0 && (!isNameStartChar(name[0]) || name[0] == ':')) + return false + + for (index in 1 until name.length) + if (!isNameChar(name[index]) || name[index] == ':') + return false + + return true + } + + /** + * Serializes the node value in XML encoding. Its used for tag bodies and attributes. + * + * *Note:* The attribute is always limited by quotes, thats why `'` is never serialized. + * + * *Note:* Control chars are written unescaped, but if the user uses others than tab, LF + * and CR the resulting XML will become invalid. + * + * @param value a string + * @param forAttribute flag if string is attribute value (need to additional escape quotes) + * @param escapeWhitespaces Decides if LF, CR and TAB are escaped. + * @return Returns the value ready for XML output. + */ + @kotlin.jvm.JvmStatic + fun escapeXML(value: String, forAttribute: Boolean, escapeWhitespaces: Boolean): String { + + // quick check if character are contained that need special treatment + var needsEscaping = false + + for (index in 0 until value.length) { + + val c = value[index] + + if ( + c == '<' || c == '>' || c == '&' || escapeWhitespaces && + (c == '\t' || c == '\n' || c == '\r') || forAttribute && c == '"' + ) { + needsEscaping = true + break + } + } + + if (!needsEscaping) + return value + + // slow path with escaping + val buffer = StringBuilder(value.length * 4 / 3) + + for (index in 0 until value.length) { + + val char = value[index] + + if (!(escapeWhitespaces && (char == '\t' || char == '\n' || char == '\r'))) { + + when (char) { + + '<' -> { + buffer.append("<") + continue + } + + '>' -> { + buffer.append(">") + continue + } + + '&' -> { + buffer.append("&") + continue + } + + '"' -> { + buffer.append(if (forAttribute) """ else "\"") + continue + } + + else -> { + buffer.append(char) + continue + } + } + + } else { + + // write control chars escaped, + // if there are others than tab, LF and CR the xml will become invalid. + buffer.append("&#x") + buffer.append(char.code.toString(16).uppercase()) + buffer.append(';') + } + } + + return buffer.toString() + } + + /** + * Replaces the ASCII control chars with a space. + * + * @param value a node value + * @return Returns the cleaned up value + */ + @kotlin.jvm.JvmStatic + fun replaceControlCharsWithSpace(value: String): String = + value.replace(controlCharRegex, " ") + + /** + * Simple check if a character is a valid XML start name char. + * All characters according to the XML Spec 1.1 are accepted: + * http://www.w3.org/TR/xml11/#NT-NameStartChar + * + * @param ch a character + * @return Returns true if the character is a valid first char of an XML name. + */ + private fun isNameStartChar(ch: Char): Boolean = + ch.code <= 0xFF && xmlNameStartChars[ch.code] || ch.code >= 0x100 && ch.code <= 0x2FF || + ch.code >= 0x370 && ch.code <= 0x37D || ch.code >= 0x37F && ch.code <= 0x1FFF || + ch.code >= 0x200C && ch.code <= 0x200D || ch.code >= 0x2070 && ch.code <= 0x218F || + ch.code >= 0x2C00 && ch.code <= 0x2FEF || ch.code >= 0x3001 && ch.code <= 0xD7FF || + ch.code >= 0xF900 && ch.code <= 0xFDCF || ch.code >= 0xFDF0 && ch.code <= 0xFFFD || + ch.code >= 0x10000 && ch.code <= 0xEFFFF + + /** + * Simple check if a character is a valid XML name char + * (every char except the first one), according to the XML Spec 1.1: + * http://www.w3.org/TR/xml11/#NT-NameChar + * + * @param ch a character + * @return Returns true if the character is a valid char of an XML name. + */ + private fun isNameChar(ch: Char): Boolean = + ch.code <= 0xFF && xmlNameChars[ch.code] || isNameStartChar(ch) || + ch.code >= 0x300 && ch.code <= 0x36F || ch.code >= 0x203F && ch.code <= 0x2040 + + /** + * Initializes the char tables for the chars 0x00-0xFF for later use, + * according to the XML 1.1 specification at http://www.w3.org/TR/xml11 + */ + private fun initCharTables() { + + var ch = 0.toChar() + + while (ch < xmlNameChars.size.toChar()) { + + xmlNameStartChars[ch.code] = ch == ':' || 'A' <= ch && ch <= 'Z' || ch == '_' || + 'a' <= ch && ch <= 'z' || 0xC0 <= ch.code && ch.code <= 0xD6 || + 0xD8 <= ch.code && ch.code <= 0xF6 || 0xF8 <= ch.code && ch.code <= 0xFF + + xmlNameChars[ch.code] = xmlNameStartChars[ch.code] || ch == '-' || ch == '.' || + '0' <= ch && ch <= '9' || ch.code == 0xB7 + + ch++ + } + } +} diff --git a/src/commonMain/kotlin/com/ashampoo/xmp/impl/XMPIteratorImpl.kt b/src/commonMain/kotlin/com/ashampoo/xmp/impl/XMPIteratorImpl.kt new file mode 100644 index 0000000..9c4f494 --- /dev/null +++ b/src/commonMain/kotlin/com/ashampoo/xmp/impl/XMPIteratorImpl.kt @@ -0,0 +1,498 @@ +// ================================================================================================= +// ADOBE SYSTEMS INCORPORATED +// Copyright 2006 Adobe Systems Incorporated +// All Rights Reserved +// +// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms +// of the Adobe license agreement accompanying it. +// ================================================================================================= +package com.ashampoo.xmp.impl + +import com.ashampoo.xmp.XMPError +import com.ashampoo.xmp.XMPException +import com.ashampoo.xmp.XMPIterator +import com.ashampoo.xmp.XMPMetaFactory.schemaRegistry +import com.ashampoo.xmp.impl.XMPNodeUtils.findNode +import com.ashampoo.xmp.impl.XMPNodeUtils.findSchemaNode +import com.ashampoo.xmp.impl.xpath.XMPPath +import com.ashampoo.xmp.impl.xpath.XMPPathParser.expandXPath +import com.ashampoo.xmp.options.IteratorOptions +import com.ashampoo.xmp.options.PropertyOptions +import com.ashampoo.xmp.properties.XMPPropertyInfo + +/** + * The `XMPIterator` implementation. + * Iterates the XMP Tree according to a set of options. + * During the iteration the XMPMeta-object must not be changed. + * Calls to `skipSubtree()` / `skipSiblings()` will affect the iteration. + */ +class XMPIteratorImpl( + xmp: XMPMetaImpl, + schemaNS: String?, + propPath: String?, + options: IteratorOptions? +) : XMPIterator { + + private val options: IteratorOptions + + /** + * the base namespace of the property path, will be changed during the iteration + */ + private var baseNS: String? = null + + /** + * flag to indicate that skipSiblings() has been called. + */ + private var skipSiblings = false + + /** + * flag to indicate that skipSubtree() has been called. + */ + private var skipSubtree = false + + /** + * the node iterator doing the work + */ + private var nodeIterator: Iterator? = null + + /** + * Constructor with optionsl initial values. If `propName` is provided, + * `schemaNS` has also be provided. + * + * @param xmp the iterated metadata object. + * @param schemaNS the iteration is reduced to this schema (optional) + * @param propPath the iteration is redurce to this property within the `schemaNS` + * @param options advanced iteration options, see [IteratorOptions] + * + */ + init { + + // make sure that options is defined at least with defaults + this.options = options ?: IteratorOptions() + + // the start node of the iteration depending on the schema and property filter + var startNode: XMPNode? = null + var initialPath: String? = null + val baseSchema = schemaNS != null && schemaNS.length > 0 + val baseProperty = propPath != null && propPath.length > 0 + + when { + + !baseSchema && !baseProperty -> { + + // complete tree will be iterated + startNode = xmp.root + } + + baseSchema && baseProperty -> { + + // Schema and property node provided + + val path = expandXPath(schemaNS, propPath) + + // base path is the prop path without the property leaf + val basePath = XMPPath() + + for (i in 0 until path.size() - 1) + basePath.add(path.getSegment(i)) + + startNode = findNode(xmp.root, path, false, null) + baseNS = schemaNS + initialPath = basePath.toString() + } + + baseSchema && !baseProperty -> { + + // Only Schema provided + startNode = findSchemaNode(xmp.root, schemaNS, false) + } + + else -> { + + // !baseSchema && baseProperty + // No schema but property provided -> error + throw XMPException("Schema namespace URI is required", XMPError.BADSCHEMA) + } + } + + // create iterator + if (startNode != null) { + + if (!this.options.isJustChildren()) + nodeIterator = NodeIterator(startNode, initialPath, 1) + else + nodeIterator = NodeIteratorChildren(startNode, initialPath) + + } else + nodeIterator = emptySequence().iterator() + } + + override fun skipSubtree() { + skipSubtree = true + } + + override fun skipSiblings() { + skipSubtree() + skipSiblings = true + } + + override fun hasNext(): Boolean = + nodeIterator!!.hasNext() + + override fun next(): XMPPropertyInfo = + nodeIterator!!.next() + + /** + * The `XMPIterator` implementation. + * It first returns the node itself, then recursivly the children and qualifier of the node. + */ + private open inner class NodeIterator : Iterator { + + /** + * the state of the iteration + */ + private var state = ITERATE_NODE + + /** + * the currently visited node + */ + private var visitedNode: XMPNode? = null + + /** + * the recursively accumulated path + */ + private var path: String? = null + + /** + * the iterator that goes through the children and qualifier list + */ + protected var childrenIterator: Iterator? = null + + /** + * index of node with parent, only interesting for arrays + */ + private var index = 0 + + /** + * the iterator for each child + */ + private var subIterator = emptySequence().iterator() + + /** + * the cached `PropertyInfo` to return + */ + protected var returnProperty: XMPPropertyInfo? = null + + /** + * Default constructor + */ + constructor() + + /** + * Constructor for the node iterator. + * + * @param visitedNode the currently visited node + * @param parentPath the accumulated path of the node + * @param index the index within the parent node (only for arrays) + */ + constructor(visitedNode: XMPNode, parentPath: String?, index: Int) { + + this.visitedNode = visitedNode + state = ITERATE_NODE + + if (visitedNode.options.isSchemaNode()) + baseNS = visitedNode.name + + // for all but the root node and schema nodes + path = accumulatePath(visitedNode, parentPath, index) + } + + /** + * Prepares the next node to return if not already done. + * + * @see Iterator.hasNext + */ + override fun hasNext(): Boolean { + + if (returnProperty != null) + return true // hasNext has been called before + + // find next node + return if (state == ITERATE_NODE) { + + reportNode() + + } else if (state == ITERATE_CHILDREN) { + + if (childrenIterator == null) + childrenIterator = visitedNode!!.iterateChildren() + + var hasNext = iterateChildren(childrenIterator!!) + + if (!hasNext && visitedNode!!.hasQualifier() && !options.isOmitQualifiers()) { + state = ITERATE_QUALIFIER + childrenIterator = null + hasNext = hasNext() + } + + hasNext + + } else { + + if (childrenIterator == null) + childrenIterator = visitedNode!!.iterateQualifier() + + iterateChildren(childrenIterator!!) + } + } + + /** + * Sets the returnProperty as next item or recurses into `hasNext()`. + * + * @return Returns if there is a next item to return. + */ + protected fun reportNode(): Boolean { + + state = ITERATE_CHILDREN + + return if (visitedNode!!.parent != null && + (!options.isJustLeafnodes() || !visitedNode!!.hasChildren()) + ) { + returnProperty = createPropertyInfo(visitedNode, baseNS!!, path!!) + true + } else { + hasNext() + } + } + + /** + * Handles the iteration of the children or qualfier + * + * @return Returns if there are more elements available. + */ + private fun iterateChildren(iterator: Iterator): Boolean { + + if (skipSiblings) { + + skipSiblings = false + + subIterator = emptySequence().iterator() + } + + /* + * Create sub iterator for every child, if its the first child + * visited or the former child is finished + */ + if (!subIterator.hasNext() && iterator.hasNext()) { + + val child = iterator.next() + + index++ + + subIterator = NodeIterator(child, path, index) + } + + if (subIterator.hasNext()) { + + returnProperty = subIterator.next() + + /* We have more available */ + return true + } + + /* There are no more children - end iteration. */ + return false + } + + /** + * Calls hasNext() and returnes the prepared node. Afterward its set to null. + * The existance of returnProperty indicates if there is a next node, otherwise + * an exceptio is thrown. + * + * @see Iterator.next + */ + override fun next(): XMPPropertyInfo { + + if (!hasNext()) + throw NoSuchElementException("There are no more nodes to return") + + val result = returnProperty + + returnProperty = null + + return result!! + } + + /** + * @param currNode the node that will be added to the path. + * @param parentPath the path up to this node. + * @param currentIndex the current array index if an arrey is traversed + * @return Returns the updated path. + */ + protected fun accumulatePath(currNode: XMPNode, parentPath: String?, currentIndex: Int): String? { + + val separator: String + val segmentName: String? + + if (currNode.parent == null || currNode.options.isSchemaNode()) { + return null + } else if (currNode.parent!!.options.isArray()) { + separator = "" + segmentName = "[$currentIndex]" + } else { + separator = "/" + segmentName = currNode.name + } + + return if (parentPath == null || parentPath.length == 0) { + + segmentName + + } else if (options.isJustLeafname()) { + + if (!segmentName!!.startsWith("?")) + segmentName + else + segmentName.substring(1) // qualifier + + } else { + + parentPath + separator + segmentName + } + } + + /** + * Creates a property info object from an `XMPNode`. + * + * @param node an `XMPNode` + * @param baseNS the base namespace to report + * @param path the full property path + * @return Returns a `XMPProperty`-object that serves representation of the node. + */ + protected fun createPropertyInfo( + node: XMPNode?, + baseNS: String, + path: String + ): XMPPropertyInfo { + + val value = if (node!!.options.isSchemaNode()) + null + else + node.value + + return object : XMPPropertyInfo { + + override fun getNamespace(): String { + + if (node.options.isSchemaNode()) + return baseNS + + // determine namespace of leaf node + val qname = QName(node.name!!) + + return schemaRegistry.getNamespaceURI(qname.prefix!!)!! + } + + override fun getPath(): String = path + + override fun getValue(): String = value!! + + override fun getOptions(): PropertyOptions = node.options + + // the language is not reported + override fun getLanguage(): String? = null + } + } + } + + /** + * This iterator is derived from the default `NodeIterator`, + * and is only used for the option [IteratorOptions.JUST_CHILDREN]. + */ + private inner class NodeIteratorChildren(parentNode: XMPNode, parentPath: String?) : NodeIterator() { + + private val parentPath: String + + private val nodeChildrenIterator: Iterator + + private var index = 0 + + /** + * Constructor + * + * @param parentNode the node which children shall be iterated. + * @param parentPath the full path of the former node without the leaf node. + */ + init { + + if (parentNode.options.isSchemaNode()) + baseNS = parentNode.name + + this.parentPath = accumulatePath(parentNode, parentPath, 1)!! + + nodeChildrenIterator = parentNode.iterateChildren() + } + + /** + * Prepares the next node to return if not already done. + * + * @see Iterator.hasNext + */ + override fun hasNext(): Boolean { + + return if (returnProperty != null) { + + // hasNext has been called before + true + + } else if (skipSiblings) { + + false + + } else if (nodeChildrenIterator.hasNext()) { + + val child = nodeChildrenIterator.next() + + index++ + + var path: String? = null + + if (child.options.isSchemaNode()) { + baseNS = child.name + } else if (child.parent != null) { + // for all but the root node and schema nodes + path = accumulatePath(child, parentPath, index) + } + + // report next property, skip not-leaf nodes in case options is set + if (!options.isJustLeafnodes() || !child.hasChildren()) { + returnProperty = createPropertyInfo(child, baseNS!!, path!!) + true + } else { + hasNext() + } + + } else { + false + } + } + } + + companion object { + + /** + * iteration state + */ + const val ITERATE_NODE = 0 + + /** + * iteration state + */ + const val ITERATE_CHILDREN = 1 + + /** + * iteration state + */ + const val ITERATE_QUALIFIER = 2 + } +} diff --git a/src/commonMain/kotlin/com/ashampoo/xmp/impl/XMPMetaImpl.kt b/src/commonMain/kotlin/com/ashampoo/xmp/impl/XMPMetaImpl.kt new file mode 100644 index 0000000..0774a82 --- /dev/null +++ b/src/commonMain/kotlin/com/ashampoo/xmp/impl/XMPMetaImpl.kt @@ -0,0 +1,954 @@ +// ================================================================================================= +// ADOBE SYSTEMS INCORPORATED +// Copyright 2006 Adobe Systems Incorporated +// All Rights Reserved +// +// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms +// of the Adobe license agreement accompanying it. +// ================================================================================================= +package com.ashampoo.xmp.impl + +import com.ashampoo.xmp.XMPConst +import com.ashampoo.xmp.XMPError +import com.ashampoo.xmp.XMPException +import com.ashampoo.xmp.XMPIterator +import com.ashampoo.xmp.XMPMeta +import com.ashampoo.xmp.XMPPathFactory.composeArrayItemPath +import com.ashampoo.xmp.XMPPathFactory.composeQualifierPath +import com.ashampoo.xmp.XMPPathFactory.composeStructFieldPath +import com.ashampoo.xmp.XMPUtils.convertToBoolean +import com.ashampoo.xmp.XMPUtils.convertToDouble +import com.ashampoo.xmp.XMPUtils.convertToInteger +import com.ashampoo.xmp.XMPUtils.convertToLong +import com.ashampoo.xmp.XMPUtils.decodeBase64 +import com.ashampoo.xmp.impl.Utils.normalizeLangValue +import com.ashampoo.xmp.impl.XMPNodeUtils.appendLangItem +import com.ashampoo.xmp.impl.XMPNodeUtils.chooseLocalizedText +import com.ashampoo.xmp.impl.XMPNodeUtils.deleteNode +import com.ashampoo.xmp.impl.XMPNodeUtils.findNode +import com.ashampoo.xmp.impl.XMPNodeUtils.setNodeValue +import com.ashampoo.xmp.impl.XMPNodeUtils.verifySetOptions +import com.ashampoo.xmp.impl.XMPNormalizer.normalize +import com.ashampoo.xmp.impl.xpath.XMPPathParser.expandXPath +import com.ashampoo.xmp.options.IteratorOptions +import com.ashampoo.xmp.options.ParseOptions +import com.ashampoo.xmp.options.PropertyOptions +import com.ashampoo.xmp.properties.XMPProperty + +/** + * Implementation for [XMPMeta]. + */ +class XMPMetaImpl : XMPMeta { + + /** + * root of the metadata tree + */ + var root: XMPNode + private set + + /** + * the xpacket processing instructions content + */ + private var packetHeader: String? = null + + /** + * Constructor for an empty metadata object. + */ + constructor() { + // create root node + this.root = XMPNode(null, null, PropertyOptions()) + } + + constructor(tree: XMPNode) { + this.root = tree + } + + override fun appendArrayItem( + schemaNS: String, + arrayName: String, + arrayOptions: PropertyOptions, + itemValue: String, + itemOptions: PropertyOptions + ) { + + if (schemaNS.isEmpty()) + throw XMPException("Empty schema namespace URI", XMPError.BADPARAM) + + if (arrayName.isEmpty()) + throw XMPException("Empty array name", XMPError.BADPARAM) + + if (!arrayOptions.isOnlyArrayOptions()) + throw XMPException("Only array form flags allowed for arrayOptions", XMPError.BADOPTIONS) + + // Check if array options are set correctly. + val verifiedArrayOptions = verifySetOptions(arrayOptions, null) + + // Locate or create the array. If it already exists, make sure the array form from the options + // parameter is compatible with the current state. + val arrayPath = expandXPath(schemaNS, arrayName) + + // Just lookup, don't try to create. + var arrayNode = findNode(this.root, arrayPath, false, null) + + if (arrayNode != null) { + + // The array exists, make sure the form is compatible. Zero arrayForm means take what exists. + if (!arrayNode.options.isArray()) + throw XMPException("The named property is not an array", XMPError.BADXPATH) + + } else { + + // The array does not exist, try to create it. + if (verifiedArrayOptions.isArray()) { + + arrayNode = findNode(this.root, arrayPath, true, verifiedArrayOptions) + + if (arrayNode == null) + throw XMPException("Failure creating array node", XMPError.BADXPATH) + + } else { + + // array options missing + throw XMPException("Explicit arrayOptions required to create new array", XMPError.BADOPTIONS) + } + } + + doSetArrayItem(arrayNode, XMPConst.ARRAY_LAST_ITEM, itemValue, itemOptions, true) + } + + override fun countArrayItems(schemaNS: String, arrayName: String): Int { + + if (schemaNS.isEmpty()) + throw XMPException("Empty schema namespace URI", XMPError.BADPARAM) + + if (arrayName.isEmpty()) + throw XMPException("Empty array name", XMPError.BADPARAM) + + val arrayPath = expandXPath(schemaNS, arrayName) + val arrayNode = findNode(this.root, arrayPath, false, null) ?: return 0 + + if (!arrayNode.options.isArray()) + throw XMPException("The named property is not an array", XMPError.BADXPATH) + + return arrayNode.getChildrenLength() + } + + override fun deleteArrayItem(schemaNS: String, arrayName: String, itemIndex: Int) { + + if (schemaNS.isEmpty()) + throw XMPException("Empty schema namespace URI", XMPError.BADPARAM) + + if (arrayName.isEmpty()) + throw XMPException("Empty array name", XMPError.BADPARAM) + + val itemPath = composeArrayItemPath(arrayName, itemIndex) + + deleteProperty(schemaNS, itemPath) + } + + override fun deleteProperty(schemaNS: String, propName: String) { + + if (schemaNS.isEmpty()) + throw XMPException("Empty schema namespace URI", XMPError.BADPARAM) + + if (propName.isEmpty()) + throw XMPException("Empty property name", XMPError.BADPARAM) + + val propNode = findNode( + xmpTree = this.root, + xpath = expandXPath(schemaNS, propName), + createNodes = false, + leafOptions = null + ) ?: return + + deleteNode(propNode) + } + + override fun deleteQualifier(schemaNS: String, propName: String, qualNS: String, qualName: String) { + + // Note: qualNS and qualName are checked inside composeQualfierPath + if (schemaNS.isEmpty()) + throw XMPException("Empty schema namespace URI", XMPError.BADPARAM) + + if (propName.isEmpty()) + throw XMPException("Empty property name", XMPError.BADPARAM) + + val qualPath = propName + composeQualifierPath(qualNS, qualName) + + deleteProperty(schemaNS, qualPath) + } + + override fun deleteStructField( + schemaNS: String, + structName: String, + fieldNS: String, + fieldName: String + ) { + + // fieldNS and fieldName are checked inside composeStructFieldPath + + if (schemaNS.isEmpty()) + throw XMPException("Empty schema namespace URI", XMPError.BADPARAM) + + if (structName.isEmpty()) + throw XMPException("Empty array name", XMPError.BADPARAM) + + val fieldPath = structName + composeStructFieldPath(fieldNS, fieldName) + + deleteProperty(schemaNS, fieldPath) + } + + override fun doesPropertyExist(schemaNS: String, propName: String): Boolean { + + if (schemaNS.isEmpty()) + throw XMPException("Empty schema namespace URI", XMPError.BADPARAM) + + if (propName.isEmpty()) + throw XMPException("Empty property name", XMPError.BADPARAM) + + val propNode = findNode( + xmpTree = this.root, + xpath = expandXPath(schemaNS, propName), + createNodes = false, + leafOptions = null + ) + + return propNode != null + } + + override fun doesArrayItemExist(schemaNS: String, arrayName: String, itemIndex: Int): Boolean { + + if (schemaNS.isEmpty()) + throw XMPException("Empty schema namespace URI", XMPError.BADPARAM) + + if (arrayName.isEmpty()) + throw XMPException("Empty array name", XMPError.BADPARAM) + + val path = composeArrayItemPath(arrayName, itemIndex) + + return doesPropertyExist(schemaNS, path) + } + + override fun doesStructFieldExist( + schemaNS: String, + structName: String, + fieldNS: String, + fieldName: String + ): Boolean { + + // fieldNS and fieldName are checked inside composeStructFieldPath() + + if (schemaNS.isEmpty()) + throw XMPException("Empty schema namespace URI", XMPError.BADPARAM) + + if (structName.isEmpty()) + throw XMPException("Empty array name", XMPError.BADPARAM) + + val path = composeStructFieldPath(fieldNS, fieldName) + + return doesPropertyExist(schemaNS, structName + path) + } + + override fun doesQualifierExist( + schemaNS: String, + propName: String, + qualNS: String, + qualName: String + ): Boolean { + + // qualNS and qualName are checked inside composeQualifierPath() + + if (schemaNS.isEmpty()) + throw XMPException("Empty schema namespace URI", XMPError.BADPARAM) + + if (propName.isEmpty()) + throw XMPException("Empty property name", XMPError.BADPARAM) + + val path = composeQualifierPath(qualNS, qualName) + + return doesPropertyExist(schemaNS, propName + path) + } + + override fun getArrayItem(schemaNS: String, arrayName: String, itemIndex: Int): XMPProperty? { + + if (schemaNS.isEmpty()) + throw XMPException("Empty schema namespace URI", XMPError.BADPARAM) + + if (arrayName.isEmpty()) + throw XMPException("Empty array name", XMPError.BADPARAM) + + val itemPath = composeArrayItemPath(arrayName, itemIndex) + + return getProperty(schemaNS, itemPath) + } + + override fun getLocalizedText( + schemaNS: String, + altTextName: String, + genericLang: String?, + specificLang: String + ): XMPProperty? { + + if (schemaNS.isEmpty()) + throw XMPException("Empty schema namespace URI", XMPError.BADPARAM) + + if (altTextName.isEmpty()) + throw XMPException("Empty array name", XMPError.BADPARAM) + + if (specificLang.isEmpty()) + throw XMPException("Empty specific language", XMPError.BADPARAM) + + val normalizedGenericLang = if (genericLang != null) normalizeLangValue(genericLang) else null + val normalizedSpecificLang = normalizeLangValue(specificLang) + + val arrayPath = expandXPath(schemaNS, altTextName) + + // *** This expand/find idiom is used in 3 Getters. + val arrayNode = findNode(this.root, arrayPath, false, null) ?: return null + val result = chooseLocalizedText(arrayNode, normalizedGenericLang, normalizedSpecificLang) + val match = result[0] as Int + val itemNode = result[1] as? XMPNode + + return if (match != XMPNodeUtils.CLT_NO_VALUES) { + + object : XMPProperty { + override fun getValue(): String { + return itemNode!!.value!! + } + + override fun getOptions(): PropertyOptions { + return itemNode!!.options + } + + override fun getLanguage(): String { + return itemNode!!.getQualifier(1).value!! + } + + override fun toString(): String { + return itemNode!!.value.toString() + } + } + + } else { + null + } + } + + override fun setLocalizedText( + schemaNS: String, + altTextName: String, + genericLang: String?, + specificLang: String, + itemValue: String, + options: PropertyOptions + ) { + + if (schemaNS.isEmpty()) + throw XMPException("Empty schema namespace URI", XMPError.BADPARAM) + + if (altTextName.isEmpty()) + throw XMPException("Empty array name", XMPError.BADPARAM) + + if (specificLang.isEmpty()) + throw XMPException("Empty specific language", XMPError.BADPARAM) + + val normalizedGenericLang = if (genericLang != null) normalizeLangValue(genericLang) else null + val normalizedSpecificLang = normalizeLangValue(specificLang) + + val arrayPath = expandXPath(schemaNS, altTextName) + + // Find the array node and set the options if it was just created. + val arrayNode = findNode( + this.root, arrayPath, true, + PropertyOptions( + PropertyOptions.ARRAY or PropertyOptions.ARRAY_ORDERED + or PropertyOptions.ARRAY_ALTERNATE or PropertyOptions.ARRAY_ALT_TEXT + ) + ) + + if (arrayNode == null) { + + throw XMPException("Failed to find or create array node", XMPError.BADXPATH) + + } else if (!arrayNode.options.isArrayAltText()) { + + if (!arrayNode.hasChildren() && arrayNode.options.isArrayAlternate()) + arrayNode.options.setArrayAltText(true) + else + throw XMPException("Specified property is no alt-text array", XMPError.BADXPATH) + } + + // Make sure the x-default item, if any, is first. + var haveXDefault = false + var xdItem: XMPNode? = null + + for (item in arrayNode.iterateChildren()) { + + if (!item.hasQualifier() || XMPConst.XML_LANG != item.getQualifier(1).name) + throw XMPException("Language qualifier must be first", XMPError.BADXPATH) + + if (XMPConst.X_DEFAULT == item.getQualifier(1).value) { + xdItem = item + haveXDefault = true + break + } + } + + // Moves x-default to the beginning of the array + if (xdItem != null && arrayNode.getChildrenLength() > 1) { + + arrayNode.removeChild(xdItem) + arrayNode.addChild(1, xdItem) + } + + // Find the appropriate item. + // chooseLocalizedText will make sure the array is a language alternative. + val result = chooseLocalizedText(arrayNode, normalizedGenericLang, normalizedSpecificLang) + val match = result[0] as Int + val itemNode = result[1] as? XMPNode + + val specificXDefault = XMPConst.X_DEFAULT == normalizedSpecificLang + + when (match) { + + XMPNodeUtils.CLT_NO_VALUES -> { + + // Create the array items for the specificLang and x-default, with x-default first. + appendLangItem(arrayNode, XMPConst.X_DEFAULT, itemValue) + + haveXDefault = true + + if (!specificXDefault) + appendLangItem(arrayNode, normalizedSpecificLang, itemValue) + } + + XMPNodeUtils.CLT_SPECIFIC_MATCH -> if (!specificXDefault) { + + // Update the specific item, update x-default if it matches the old value. + if (haveXDefault && xdItem != itemNode && xdItem != null && xdItem.value == itemNode!!.value) + xdItem.value = itemValue + + // ! Do this after the x-default check! + itemNode!!.value = itemValue + + } else { + + // Update all items whose values match the old x-default value. + check(haveXDefault && xdItem == itemNode) + + val it = arrayNode.iterateChildren() + + while (it.hasNext()) { + + val currItem = it.next() + + if (currItem == xdItem || currItem.value != xdItem?.value) + continue + + currItem.value = itemValue + } + + // And finally do the x-default item. + if (xdItem != null) + xdItem.value = itemValue + } + + XMPNodeUtils.CLT_SINGLE_GENERIC -> { + + // Update the generic item, update x-default if it matches the old value. + if (haveXDefault && xdItem != itemNode && xdItem != null && xdItem.value == itemNode!!.value) + xdItem.value = itemValue + + // ! Do this after the x-default check! + itemNode!!.value = itemValue + } + + XMPNodeUtils.CLT_FIRST_ITEM, XMPNodeUtils.CLT_MULTIPLE_GENERIC -> { + + // Create the specific language, ignore x-default. + appendLangItem(arrayNode, normalizedSpecificLang, itemValue) + + if (specificXDefault) haveXDefault = true + } + + XMPNodeUtils.CLT_XDEFAULT -> { + + // Create the specific language, update x-default if it was the only item. + if (xdItem != null && arrayNode.getChildrenLength() == 1) + xdItem.value = itemValue + + appendLangItem(arrayNode, normalizedSpecificLang, itemValue) + } + + else -> // does not happen under normal circumstances + throw XMPException("Unexpected result from ChooseLocalizedText", XMPError.INTERNALFAILURE) + } + + // Add an x-default at the front if needed. + if (!haveXDefault && arrayNode.getChildrenLength() == 1) + appendLangItem(arrayNode, XMPConst.X_DEFAULT, itemValue) + } + + override fun getProperty(schemaNS: String, propName: String): XMPProperty? = + getProperty(schemaNS, propName, VALUE_STRING) + + /** + * Returns a property, but the result value can be requested. It can be one + * of [XMPMetaImpl.VALUE_STRING], [XMPMetaImpl.VALUE_BOOLEAN], + * [XMPMetaImpl.VALUE_INTEGER], [XMPMetaImpl.VALUE_LONG], + * [XMPMetaImpl.VALUE_DOUBLE], [XMPMetaImpl.VALUE_DATE], + * [XMPMetaImpl.VALUE_TIME_IN_MILLIS], [XMPMetaImpl.VALUE_BASE64]. + */ + private fun getProperty(schemaNS: String, propName: String, valueType: Int): XMPProperty? { + + if (schemaNS.isEmpty()) + throw XMPException("Empty schema namespace URI", XMPError.BADPARAM) + + if (propName.isEmpty()) + throw XMPException("Empty property name", XMPError.BADPARAM) + + val propNode = findNode( + xmpTree = this.root, + xpath = expandXPath(schemaNS, propName), + createNodes = false, + leafOptions = null + ) ?: return null + + if (valueType != VALUE_STRING && propNode.options.isCompositeProperty()) + throw XMPException("Property must be simple when a value type is requested", XMPError.BADXPATH) + + val value = evaluateNodeValue(valueType, propNode) + + return object : XMPProperty { + + override fun getValue(): String? { + return value?.toString() + } + + override fun getOptions(): PropertyOptions { + return propNode.options + } + + override fun getLanguage(): String? { + return null + } + + override fun toString(): String { + return value.toString() + } + } + } + + /** + * Returns a property, but the result value can be requested. + */ + private fun getPropertyObject(schemaNS: String, propName: String, valueType: Int): Any? { + + if (schemaNS.isEmpty()) + throw XMPException("Empty schema namespace URI", XMPError.BADPARAM) + + if (propName.isEmpty()) + throw XMPException("Empty property name", XMPError.BADPARAM) + + val propNode = findNode( + xmpTree = this.root, + xpath = expandXPath(schemaNS, propName), + createNodes = false, + leafOptions = null + ) ?: return null + + if (valueType != VALUE_STRING && propNode.options.isCompositeProperty()) + throw XMPException("Property must be simple when a value type is requested", XMPError.BADXPATH) + + return evaluateNodeValue(valueType, propNode) + } + + override fun getPropertyBoolean(schemaNS: String, propName: String): Boolean? = + getPropertyObject(schemaNS, propName, VALUE_BOOLEAN) as? Boolean + + override fun setPropertyBoolean( + schemaNS: String, + propName: String, + propValue: Boolean, + options: PropertyOptions + ) { + setProperty( + schemaNS, + propName, + if (propValue) XMPConst.TRUESTR else XMPConst.FALSESTR, + options + ) + } + + override fun getPropertyInteger(schemaNS: String, propName: String): Int? = + getPropertyObject(schemaNS, propName, VALUE_INTEGER) as? Int + + override fun setPropertyInteger( + schemaNS: String, + propName: String, + propValue: Int, + options: PropertyOptions + ) { + setProperty(schemaNS, propName, propValue, options) + } + + override fun getPropertyLong(schemaNS: String, propName: String): Long? = + getPropertyObject(schemaNS, propName, VALUE_LONG) as? Long + + override fun setPropertyLong( + schemaNS: String, + propName: String, + propValue: Long, + options: PropertyOptions + ) { + setProperty(schemaNS, propName, propValue, options) + } + + override fun getPropertyDouble(schemaNS: String, propName: String): Double? = + getPropertyObject(schemaNS, propName, VALUE_DOUBLE) as? Double + + override fun setPropertyDouble( + schemaNS: String, + propName: String, + propValue: Double, + options: PropertyOptions + ) { + setProperty(schemaNS, propName, propValue, options) + } + + override fun getPropertyBase64(schemaNS: String, propName: String): ByteArray? = + getPropertyObject(schemaNS, propName, VALUE_BASE64) as? ByteArray + + override fun getPropertyString(schemaNS: String, propName: String): String? = + getPropertyObject(schemaNS, propName, VALUE_STRING) as? String + + override fun setPropertyBase64( + schemaNS: String, + propName: String, + propValue: ByteArray, + options: PropertyOptions + ) { + setProperty(schemaNS, propName, propValue, options) + } + + override fun getQualifier( + schemaNS: String, + propName: String, + qualNS: String, + qualName: String + ): XMPProperty? { + + // qualNS and qualName are checked inside composeQualfierPath + if (schemaNS.isEmpty()) + throw XMPException("Empty schema namespace URI", XMPError.BADPARAM) + + if (propName.isEmpty()) + throw XMPException("Empty property name", XMPError.BADPARAM) + + val qualPath = propName + composeQualifierPath(qualNS, qualName) + + return getProperty(schemaNS, qualPath) + } + + override fun getStructField( + schemaNS: String, + structName: String, + fieldNS: String, + fieldName: String + ): XMPProperty? { + + // fieldNS and fieldName are checked inside composeStructFieldPath + + if (schemaNS.isEmpty()) + throw XMPException("Empty schema namespace URI", XMPError.BADPARAM) + + if (structName.isEmpty()) + throw XMPException("Empty array name", XMPError.BADPARAM) + + val fieldPath = structName + composeStructFieldPath(fieldNS, fieldName) + + return getProperty(schemaNS, fieldPath) + } + + override fun iterator(): XMPIterator = + iterator(IteratorOptions()) + + override fun iterator(options: IteratorOptions): com.ashampoo.xmp.XMPIterator = + iterator(null, null, options) + + override fun iterator( + schemaNS: String?, + propName: String?, + options: IteratorOptions + ): XMPIterator = + XMPIteratorImpl(this, schemaNS, propName, options) + + override fun setArrayItem( + schemaNS: String, + arrayName: String, + itemIndex: Int, + itemValue: String, + options: PropertyOptions + ) { + + if (schemaNS.isEmpty()) + throw XMPException("Empty schema namespace URI", XMPError.BADPARAM) + + if (arrayName.isEmpty()) + throw XMPException("Empty array name", XMPError.BADPARAM) + + // Just lookup, don't try to create. + val arrayPath = expandXPath(schemaNS, arrayName) + val arrayNode = findNode(this.root, arrayPath, false, null) + + if (arrayNode == null) + throw XMPException("Specified array does not exist", XMPError.BADXPATH) + + doSetArrayItem(arrayNode, itemIndex, itemValue, options, false) + } + + override fun insertArrayItem( + schemaNS: String, + arrayName: String, + itemIndex: Int, + itemValue: String, + options: PropertyOptions + ) { + + if (schemaNS.isEmpty()) + throw XMPException("Empty schema namespace URI", XMPError.BADPARAM) + + if (arrayName.isEmpty()) + throw XMPException("Empty array name", XMPError.BADPARAM) + + // Just lookup, don't try to create. + val arrayPath = expandXPath(schemaNS, arrayName) + val arrayNode = findNode(this.root, arrayPath, false, null) + + if (arrayNode == null) + throw XMPException("Specified array does not exist", XMPError.BADXPATH) + + doSetArrayItem(arrayNode, itemIndex, itemValue, options, true) + } + + override fun setProperty( + schemaNS: String, + propName: String, + propValue: Any?, + options: PropertyOptions + ) { + + if (schemaNS.isEmpty()) + throw XMPException("Empty schema namespace URI", XMPError.BADPARAM) + + if (propName.isEmpty()) + throw XMPException("Empty property name", XMPError.BADPARAM) + + val verifiedOptions = verifySetOptions(options, propValue) + + val propNode = findNode( + xmpTree = this.root, + xpath = expandXPath(schemaNS, propName), + createNodes = true, + leafOptions = verifySetOptions(options, propValue) + ) ?: throw XMPException("Specified property does not exist", XMPError.BADXPATH) + + setNode(propNode, propValue, verifiedOptions, false) + } + + override fun setQualifier( + schemaNS: String, + propName: String, + qualNS: String, + qualName: String, + qualValue: String, + options: PropertyOptions + ) { + + if (schemaNS.isEmpty()) + throw XMPException("Empty schema namespace URI", XMPError.BADPARAM) + + if (propName.isEmpty()) + throw XMPException("Empty property name", XMPError.BADPARAM) + + if (!doesPropertyExist(schemaNS, propName)) + throw XMPException("Specified property does not exist!", XMPError.BADXPATH) + + val qualPath = propName + composeQualifierPath(qualNS, qualName) + + setProperty(schemaNS, qualPath, qualValue, options) + } + + override fun setStructField( + schemaNS: String, + structName: String, + fieldNS: String, + fieldName: String, + fieldValue: String?, + options: PropertyOptions + ) { + + if (schemaNS.isEmpty()) + throw XMPException("Empty schema namespace URI", XMPError.BADPARAM) + + if (structName.isEmpty()) + throw XMPException("Empty array name", XMPError.BADPARAM) + + val fieldPath = structName + composeStructFieldPath(fieldNS, fieldName) + + setProperty(schemaNS, fieldPath, fieldValue, options) + } + + override fun getObjectName(): String = + root.name ?: "" + + override fun setObjectName(name: String) { + root.name = name + } + + override fun getPacketHeader(): String? = + packetHeader + + /** + * Sets the packetHeader attributes, only used by the parser. + */ + fun setPacketHeader(packetHeader: String?) { + this.packetHeader = packetHeader + } + + override fun sort() { + this.root.sort() + } + + override fun normalize(options: ParseOptions) { + normalize(this, options) + } + + // ------------------------------------------------------------------------------------- + // private + + /** + * Locate or create the item node and set the value. Note the index + * parameter is one-based! The index can be in the range [1..size + 1] or + * "last()", normalize it and check the insert flags. The order of the + * normalization checks is important. If the array is empty we end up with + * an index and location to set item size + 1. + */ + private fun doSetArrayItem( + arrayNode: XMPNode, + itemIndex: Int, + itemValue: String, + itemOptions: PropertyOptions, + insert: Boolean + ) { + + val itemNode = XMPNode(XMPConst.ARRAY_ITEM_NAME, null) + + val verifiedItemOptions = verifySetOptions(itemOptions, itemValue) + + // in insert mode the index after the last is allowed, + // even ARRAY_LAST_ITEM points to the index *after* the last. + val maxIndex = if (insert) + arrayNode.getChildrenLength() + 1 + else + arrayNode.getChildrenLength() + + val limitedItemIndex = if (itemIndex == XMPConst.ARRAY_LAST_ITEM) + maxIndex + else + itemIndex + + if (1 <= limitedItemIndex && limitedItemIndex <= maxIndex) { + + if (!insert) + arrayNode.removeChild(limitedItemIndex) + + arrayNode.addChild(limitedItemIndex, itemNode) + setNode(itemNode, itemValue, verifiedItemOptions, false) + + } else { + throw XMPException("Array index out of bounds", XMPError.BADINDEX) + } + } + + /** + * The internals for setProperty() and related calls, used after the node is found or created. + */ + fun setNode(node: XMPNode, value: Any?, newOptions: PropertyOptions, deleteExisting: Boolean) { + + val compositeMask = PropertyOptions.ARRAY or PropertyOptions.ARRAY_ALT_TEXT or + PropertyOptions.ARRAY_ALTERNATE or PropertyOptions.ARRAY_ORDERED or PropertyOptions.STRUCT + + if (deleteExisting) + node.clear() + + // its checked by setOptions(), if the merged result is a valid options set + node.options.mergeWith(newOptions) + + if (node.options.getOptions() and compositeMask == 0) { + + // This is setting the value of a leaf node. + setNodeValue(node, value) + + } else { + + if (value != null && value.toString().length > 0) + throw XMPException("Composite nodes can't have values", XMPError.BADXPATH) + + // Can't change an array to a struct, or vice versa. + if (node.options.getOptions() and compositeMask != 0) + if (newOptions.getOptions() and compositeMask != node.options.getOptions() and compositeMask) + throw XMPException("Requested and existing composite form mismatch", XMPError.BADXPATH) + + node.removeChildren() + } + } + + /** + * Evaluates a raw node value to the given value type, apply special + * conversions for defined types in XMP. + */ + private fun evaluateNodeValue(valueType: Int, propNode: XMPNode): Any? { + + val value: Any? + val rawValue = propNode.value + + value = when (valueType) { + + VALUE_BOOLEAN -> convertToBoolean(rawValue) + + VALUE_INTEGER -> convertToInteger(rawValue) + + VALUE_LONG -> convertToLong(rawValue) + + VALUE_DOUBLE -> convertToDouble(rawValue) + + VALUE_BASE64 -> decodeBase64(rawValue!!) + + // leaf values return empty string instead of null + // for the other cases the converter methods provides a "null" value. + // a default value can only occur if this method is made public. + VALUE_STRING -> + if (rawValue != null || propNode.options.isCompositeProperty()) rawValue else "" + + else -> + if (rawValue != null || propNode.options.isCompositeProperty()) rawValue else "" + } + + return value + } + + companion object { + + /** + * Property values are Strings by default + */ + + private const val VALUE_STRING = 0 + private const val VALUE_BOOLEAN = 1 + private const val VALUE_INTEGER = 2 + private const val VALUE_LONG = 3 + private const val VALUE_DOUBLE = 4 + private const val VALUE_BASE64 = 7 + } +} diff --git a/src/commonMain/kotlin/com/ashampoo/xmp/impl/XMPMetaParser.kt b/src/commonMain/kotlin/com/ashampoo/xmp/impl/XMPMetaParser.kt new file mode 100644 index 0000000..3007b5f --- /dev/null +++ b/src/commonMain/kotlin/com/ashampoo/xmp/impl/XMPMetaParser.kt @@ -0,0 +1,157 @@ +// ================================================================================================= +// ADOBE SYSTEMS INCORPORATED +// Copyright 2006 Adobe Systems Incorporated +// All Rights Reserved +// +// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms +// of the Adobe license agreement accompanying it. +// ================================================================================================= +package com.ashampoo.xmp.impl + +import com.ashampoo.xmp.XMPConst +import com.ashampoo.xmp.XMPMeta +import com.ashampoo.xmp.impl.XMPNormalizer.normalize +import com.ashampoo.xmp.options.ParseOptions +import nl.adaptivity.xmlutil.dom.Element +import nl.adaptivity.xmlutil.dom.Node +import nl.adaptivity.xmlutil.dom.ProcessingInstruction +import nl.adaptivity.xmlutil.dom.Text +import nl.adaptivity.xmlutil.dom.childNodes +import nl.adaptivity.xmlutil.dom.getData +import nl.adaptivity.xmlutil.dom.getTarget +import nl.adaptivity.xmlutil.dom.length +import nl.adaptivity.xmlutil.dom.localName +import nl.adaptivity.xmlutil.dom.namespaceURI + +/** + * This class replaces the `ExpatAdapter.cpp` and does the + * XML-parsing and fixes the prefix. After the parsing several normalisations + * are applied to the XMPTree. + */ +object XMPMetaParser { + + private val XMP_RDF = Any() // "new Object()" in Java + + /** + * Parses the input source into an XMP metadata object, including + * de-aliasing and normalisation. + * + * @param input the XMP string + * @param options the parse options + * @return Returns the resulting XMP metadata object + */ + fun parse( + input: String, + options: ParseOptions = ParseOptions() + ): XMPMeta { + + val document = XmlUtilDomParser.parseDocumentFromString(input) + + val xmpmetaRequired = options.getRequireXMPMeta() + + var result: Array? = arrayOfNulls(3) + + result = findRootNode(document, xmpmetaRequired, result) + + return if (result != null && result[1] === XMP_RDF) { + + val xmp = XMPRDFParser.parse(result[0] as Node, options) + + xmp.setPacketHeader(result[2] as? String) + + // Check if the XMP object shall be normalized + if (!options.getOmitNormalization()) + normalize(xmp, options) + else + xmp + + } else { + + /* No appropriate root node found, return empty metadata object */ + XMPMetaImpl() + } + } + + /** + * Find the XML node that is the root of the XMP data tree. Generally this + * will be an outer node, but it could be anywhere if a general XML document + * is parsed (e.g. SVG). The XML parser counted all rdf:RDF and + * pxmp:XMP_Packet nodes, and kept a pointer to the last one. If there is + * more than one possible root use PickBestRoot to choose among them. + * + * If there is a root node, try to extract the version of the previous XMP + * toolkit. + * + * Pick the first x:xmpmeta among multiple root candidates. If there aren't + * any, pick the first bare rdf:RDF if that is allowed. The returned root is + * the rdf:RDF child if an x:xmpmeta element was chosen. The search is + * breadth first, so a higher level candiate is chosen over a lower level + * one that was textually earlier in the serialized XML. + * + * @param root the root of the xml document + * @param xmpmetaRequired flag if the xmpmeta-tag is still required, might be set + * initially to `true`, if the parse option "REQUIRE_XMP_META" is set + * @param result The result array that is filled during the recursive process. + * @return Returns an array that contains the result or `null`. + * The array contains: + * + * * [0] - the rdf:RDF-node + * * [1] - an object that is either XMP_RDF or XMP_PLAIN (the latter is decrecated) + * * [2] - the body text of the xpacket-instruction. + */ + private fun findRootNode(root: Node, xmpmetaRequired: Boolean, result: Array?): Array? { + + // Look among this parent's content for x:xapmeta or x:xmpmeta. + // The recursion for x:xmpmeta is broader than the strictly defined choice, + // but gives us smaller code. + + for (index in 0 until root.childNodes.length) { + + val child = root.childNodes.item(index) + + requireNotNull(child) + + if (child is ProcessingInstruction && XMPConst.XMP_PI == child.getTarget()) { + + // Store the processing instructions content + if (result != null) + result[2] = child.getData() + + } else if (child !is Text && child !is ProcessingInstruction) { + + val childElement = child as Element + + val rootNS = childElement.namespaceURI + + val rootLocal = childElement.localName + + if ( + (XMPConst.TAG_XMPMETA == rootLocal || XMPConst.TAG_XAPMETA == rootLocal) && + XMPConst.NS_X == rootNS + ) { + + // by not passing the RequireXMPMeta-option, the rdf-Node will be valid + return findRootNode(child, false, result) + } + + if (!xmpmetaRequired && "RDF" == rootLocal && XMPConst.NS_RDF == rootNS) { + + if (result != null) { + result[0] = child + result[1] = XMP_RDF + } + + return result + } + + // continue searching + val newResult = findRootNode(child, xmpmetaRequired, result) + + return newResult ?: continue + } + } + + // no appropriate node has been found + return null + } +} diff --git a/src/commonMain/kotlin/com/ashampoo/xmp/impl/XMPNode.kt b/src/commonMain/kotlin/com/ashampoo/xmp/impl/XMPNode.kt new file mode 100644 index 0000000..5ac5acd --- /dev/null +++ b/src/commonMain/kotlin/com/ashampoo/xmp/impl/XMPNode.kt @@ -0,0 +1,328 @@ +// ================================================================================================= +// ADOBE SYSTEMS INCORPORATED +// Copyright 2006 Adobe Systems Incorporated +// All Rights Reserved +// +// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms +// of the Adobe license agreement accompanying it. +// ================================================================================================= +package com.ashampoo.xmp.impl + +import com.ashampoo.xmp.XMPConst +import com.ashampoo.xmp.XMPError +import com.ashampoo.xmp.XMPException +import com.ashampoo.xmp.options.PropertyOptions + +/** + * A node in the internally XMP tree, which can be a schema node, a property node, an array node, + * an array item, a struct node or a qualifier node (without '?'). + */ +class XMPNode( + + /** + * name of the node, contains different information depending of the node kind + */ + var name: String?, + + /** + * value of the node, contains different information depending of the node kind + */ + var value: String?, + + /** + * options describing the kind of the node + */ + var options: PropertyOptions = PropertyOptions() + +) : Comparable { + + var parent: XMPNode? = null + private var children: MutableList? = null + private var qualifier: MutableList? = null + + /* Internal processing options */ + + var isImplicit = false + var hasAliases = false + var isAlias = false + var hasValueChild = false + + fun clear() { + name = null + value = null + options = PropertyOptions() + children = null + qualifier = null + } + + /** + * Returns the children or empty list, if there are none. + * Will not lazily create the list! + */ + fun getChildren(): List = + children ?: emptyList() + + fun getChild(index: Int): XMPNode = + getOrCreateChildren()[index - 1] + + fun addChild(node: XMPNode) { + + assertChildNotExisting(node.name!!) + + node.parent = this + + getOrCreateChildren().add(node) + } + + fun addChild(index: Int, node: XMPNode) { + + assertChildNotExisting(node.name!!) + + node.parent = this + + getOrCreateChildren().add(index - 1, node) + } + + /** + * Replaces a node with another one. + */ + fun replaceChild(index: Int, node: XMPNode) { + + node.parent = this + + getOrCreateChildren()[index - 1] = node + } + + fun removeChild(itemIndex: Int) { + + getOrCreateChildren().removeAt(itemIndex - 1) + + cleanupChildren() + } + + /** + * Removes a child node. + * If its a schema node and doesn't have any children anymore, its deleted. + */ + fun removeChild(node: XMPNode) { + + getOrCreateChildren().remove(node) + + cleanupChildren() + } + + /** + * Removes the children list if this node has no children anymore; + * checks if the provided node is a schema node and doesn't have any children anymore, its deleted. + */ + private fun cleanupChildren() { + + if (children?.isEmpty() == null) + children = null + } + + /** + * Removes all children from the node. + */ + fun removeChildren() { + children = null + } + + fun getChildrenLength(): Int = + children?.size ?: 0 + + fun findChildByName(expr: String?): XMPNode? = + getOrCreateChildren()?.find { it.name == expr } + + /** + * Returns the qualifier or empty list, if there are none. + * Will not lazily create the list! + */ + fun getQualifier(): List = + qualifier ?: emptyList() + + fun getQualifier(index: Int): XMPNode = + getOrCreateQualifier()[index - 1] + + fun getQualifierLength(): Int = + qualifier?.size ?: 0 + + fun addQualifier(qualNode: XMPNode) { + + assertQualifierNotExisting(qualNode.name!!) + + qualNode.parent = this + qualNode.options.setQualifier(true) + + options.setHasQualifiers(true) + + // contraints + if (XMPConst.XML_LANG == qualNode.name) { + + // "xml:lang" is always first and the option "hasLanguage" is set + options.setHasLanguage(true) + + getOrCreateQualifier().add(0, qualNode) + + } else if ("rdf:type" == qualNode.name) { + + // "rdf:type" must be first or second after "xml:lang" and the option "hasType" is set + options.setHasType(true) + + getOrCreateQualifier().add( + if (!options.hasLanguage()) 0 else 1, + qualNode + ) + + } else { + + // other qualifiers are appended + getOrCreateQualifier().add(qualNode) + } + } + + /** + * Removes one qualifier node and fixes the options. + */ + fun removeQualifier(qualNode: XMPNode) { + + if (XMPConst.XML_LANG == qualNode.name) { + // if "xml:lang" is removed, remove hasLanguage-flag too + options.setHasLanguage(false) + } else if ("rdf:type" == qualNode.name) { + // if "rdf:type" is removed, remove hasType-flag too + options.setHasType(false) + } + + getOrCreateQualifier().remove(qualNode) + + if (qualifier!!.isEmpty()) { + options.setHasQualifiers(false) + qualifier = null + } + } + + /** + * Removes all qualifiers from the node and sets the options appropriate. + */ + fun removeQualifiers() { + + // clear qualifier related options + options.setHasQualifiers(false) + options.setHasLanguage(false) + options.setHasType(false) + + qualifier = null + } + + fun findQualifierByName(expr: String?): XMPNode? = + qualifier?.find { it.name == expr } + + fun hasChildren(): Boolean = + children?.isNotEmpty() ?: false + + fun iterateChildren(): Iterator = + children?.iterator() ?: emptySequence().iterator() + + fun iterateChildrenMutable(): MutableIterator = + children?.listIterator() ?: mutableListOf().listIterator() + + fun hasQualifier(): Boolean = + qualifier?.isNotEmpty() ?: false + + fun iterateQualifier(): Iterator = + qualifier?.listIterator() ?: emptySequence().iterator() + + override fun compareTo(other: XMPNode): Int { + + return if (options.isSchemaNode()) + value!!.compareTo(other.value!!) + else + name!!.compareTo(other.name!!) + } + + /** + * Sorts the complete datamodel according to the following rules: + * + * * Nodes at one level are sorted by name, that is prefix + local name + * * Starting at the root node the children and qualifier are sorted recursively, + * which the following exceptions. + * * Sorting will not be used for arrays. + * * Within qualifier "xml:lang" and/or "rdf:type" stay at the top in that order, all others are sorted. + */ + fun sort() { + + // sort qualifier + if (hasQualifier()) { + + val quals = getOrCreateQualifier().toTypedArray() + + var sortFrom = 0 + + while (quals.size > sortFrom && + (XMPConst.XML_LANG == quals[sortFrom].name || "rdf:type" == quals[sortFrom].name) + ) { + quals[sortFrom].sort() + sortFrom++ + } + + quals.sort(sortFrom, quals.size) + + val iterator = qualifier!!.listIterator() + + for (j in quals.indices) { + iterator.next() + iterator.set(quals[j]) + quals[j].sort() + } + } + + // sort children + if (hasChildren()) { + + if (!options.isArray()) + children!!.sort() + + val it = iterateChildren() + + while (it.hasNext()) + it.next().sort() + } + } + + // ------------------------------------------------------------------------------ private methods + + private fun getOrCreateChildren(): MutableList { + + if (children == null) + children = mutableListOf() + + return children!! + } + + private fun getOrCreateQualifier(): MutableList { + + if (qualifier == null) + qualifier = mutableListOf() + + return qualifier!! + } + + /** + * Checks that a node name is not existing on the same level, except for array items. + */ + private fun assertChildNotExisting(childName: String) { + + if (XMPConst.ARRAY_ITEM_NAME != childName && findChildByName(childName) != null) + throw XMPException("Duplicate property or field node '$childName'", XMPError.BADXMP) + } + + /** + * Checks that a qualifier name is not existing on the same level. + */ + private fun assertQualifierNotExisting(qualifierName: String) { + + if (XMPConst.ARRAY_ITEM_NAME != qualifierName && findQualifierByName(qualifierName) != null) + throw XMPException("Duplicate '$qualifierName' qualifier", XMPError.BADXMP) + } +} diff --git a/src/commonMain/kotlin/com/ashampoo/xmp/impl/XMPNodeUtils.kt b/src/commonMain/kotlin/com/ashampoo/xmp/impl/XMPNodeUtils.kt new file mode 100644 index 0000000..291f79a --- /dev/null +++ b/src/commonMain/kotlin/com/ashampoo/xmp/impl/XMPNodeUtils.kt @@ -0,0 +1,712 @@ +// ================================================================================================= +// ADOBE SYSTEMS INCORPORATED +// Copyright 2006 Adobe Systems Incorporated +// All Rights Reserved +// +// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms +// of the Adobe license agreement accompanying it. +// ================================================================================================= +package com.ashampoo.xmp.impl + +import com.ashampoo.xmp.XMPConst +import com.ashampoo.xmp.XMPError +import com.ashampoo.xmp.XMPException +import com.ashampoo.xmp.XMPMetaFactory.schemaRegistry +import com.ashampoo.xmp.XMPUtils.encodeBase64 +import com.ashampoo.xmp.impl.Utils.normalizeLangValue +import com.ashampoo.xmp.impl.Utils.replaceControlCharsWithSpace +import com.ashampoo.xmp.impl.Utils.splitNameAndValue +import com.ashampoo.xmp.impl.xpath.XMPPath +import com.ashampoo.xmp.impl.xpath.XMPPathSegment +import com.ashampoo.xmp.options.AliasOptions +import com.ashampoo.xmp.options.PropertyOptions + +/** + * Utilities for `XMPNode`. + */ +object XMPNodeUtils { + + const val CLT_NO_VALUES = 0 + + const val CLT_SPECIFIC_MATCH = 1 + + const val CLT_SINGLE_GENERIC = 2 + + const val CLT_MULTIPLE_GENERIC = 3 + + const val CLT_XDEFAULT = 4 + + const val CLT_FIRST_ITEM = 5 + + /** + * Find or create a schema node if `createNodes` is false and + * + * Note: If `createNodes` is `true`, it is **always** returned a valid node. + */ + @kotlin.jvm.JvmStatic + fun findSchemaNode(tree: XMPNode, namespaceURI: String?, createNodes: Boolean): XMPNode? = + findSchemaNode(tree, namespaceURI, null, createNodes) + + /** + * Find or create a schema node if `createNodes` is true. + * + * Note: If `createNodes` is `true`, it is **always** returned a valid node. + */ + fun findSchemaNode( + tree: XMPNode, + namespaceURI: String?, + suggestedPrefix: String?, + createNodes: Boolean + ): XMPNode? { + + // make sure that its the root + require(tree.parent == null) + + var schemaNode = tree.findChildByName(namespaceURI) + + if (schemaNode == null && createNodes) { + + schemaNode = XMPNode( + name = namespaceURI, + value = null, + options = PropertyOptions().setSchemaNode(true) + ) + + schemaNode.isImplicit = true + + // only previously registered schema namespaces are allowed in the XMP tree. + var prefix = schemaRegistry.getNamespacePrefix(namespaceURI!!) + + if (prefix == null) { + + prefix = if (suggestedPrefix != null && suggestedPrefix.length != 0) + schemaRegistry.registerNamespace(namespaceURI, suggestedPrefix) + else + throw XMPException("Unregistered schema namespace URI", XMPError.BADSCHEMA) + } + + schemaNode.value = prefix + + tree.addChild(schemaNode) + } + + return schemaNode + } + + /** + * Find or create a child node under a given parent node. + */ + fun findChildNode(parent: XMPNode, childName: String?, createNodes: Boolean): XMPNode? { + + if (!parent.options.isSchemaNode() && !parent.options.isStruct()) { + + when { + + !parent.isImplicit -> + throw XMPException( + "Named children only allowed for schemas and structs", XMPError.BADXPATH + ) + + parent.options.isArray() -> + throw XMPException("Named children not allowed for arrays", XMPError.BADXPATH) + + createNodes -> + parent.options.setStruct(true) + } + } + + var childNode = parent.findChildByName(childName) + + if (childNode == null && createNodes) { + + childNode = XMPNode(childName, null) + + childNode.isImplicit = true + + parent.addChild(childNode) + } + + check(childNode != null || !createNodes) + + return childNode + } + + /** + * Follow an expanded path expression to find or create a node. + * + * @param xmpTree the node to begin the search. + * @param xpath the complete xpath + * @param createNodes flag if nodes shall be created (when called by `setProperty()`) + * @param leafOptions the options for the created leaf nodes (only when`createNodes == true`). + * @return Returns the node if found or created or `null`. + + */ + @kotlin.jvm.JvmStatic + fun findNode( + xmpTree: XMPNode, + xpath: XMPPath?, + createNodes: Boolean, + leafOptions: PropertyOptions? + ): XMPNode? { + + if (xpath == null || xpath.size() == 0) + throw XMPException("Empty XMPPath", XMPError.BADXPATH) + + // Root of implicitly created subtree to possible delete it later. + // Valid only if leaf is new. + var rootImplicitNode: XMPNode? = null + + var currNode: XMPNode? = + findSchemaNode(xmpTree, xpath.getSegment(XMPPath.STEP_SCHEMA).name, createNodes) + + if (currNode == null) + return null + + if (currNode.isImplicit) { + + currNode.isImplicit = false // Clear the implicit node bit. + rootImplicitNode = currNode // Save the top most implicit node. + } + + // Now follow the remaining steps of the original XMPPath. + try { + + for (index in 1 until xpath.size()) { + + currNode = followXPathStep(currNode!!, xpath.getSegment(index), createNodes) + + if (currNode == null) { + + // delete implicitly created nodes + if (createNodes) + deleteNode(rootImplicitNode!!) + + return null + + } else if (currNode.isImplicit) { + + // clear the implicit node flag + currNode.isImplicit = false + + // if node is an ALIAS (can be only in root step, auto-create array + // when the path has been resolved from a not simple alias type + if (index == 1 && + xpath.getSegment(index).isAlias && xpath.getSegment(index).aliasForm != 0 + ) { + currNode.options.setOption(xpath.getSegment(index).aliasForm, true) + } else if ( // "CheckImplicitStruct" in C++ + index < xpath.size() - 1 && + xpath.getSegment(index).kind == XMPPath.STRUCT_FIELD_STEP && + !currNode.options.isCompositeProperty() + ) { + currNode.options.setStruct(true) + } + + if (rootImplicitNode == null) + rootImplicitNode = currNode // Save the top most implicit node. + } + } + + } catch (ex: XMPException) { + + // if new notes have been created prior to the error, delete them + if (rootImplicitNode != null) + deleteNode(rootImplicitNode) + + throw ex + } + + if (rootImplicitNode != null) { + + // set options only if a node has been successful created + if (leafOptions != null) + currNode!!.options.mergeWith(leafOptions) + + currNode!!.options = currNode.options + } + + return currNode + } + + /** + * Deletes the the given node and its children from its parent. + * Takes care about adjusting the flags. + * + * @param node the top-most node to delete. + */ + @kotlin.jvm.JvmStatic + fun deleteNode(node: XMPNode) { + + val parent = node.parent + + if (node.options.isQualifier()) + parent!!.removeQualifier(node) + else + parent!!.removeChild(node) + + // delete empty Schema nodes + if (!parent.hasChildren() && parent.options.isSchemaNode()) + parent.parent!!.removeChild(parent) + } + + /** + * This is setting the value of a leaf node. + * + * @param node an XMPNode + * @param value a value + */ + @kotlin.jvm.JvmStatic + fun setNodeValue(node: XMPNode, value: Any?) { + + val strValue = serializeNodeValue(value) + + if (!(node.options.isQualifier() && XMPConst.XML_LANG == node.name)) + node.value = strValue + else + node.value = normalizeLangValue(strValue!!) + } + + /** + * Verifies the PropertyOptions for consistancy and updates them as needed. + * If options are `null` they are created with default values. + * + * @param options the `PropertyOptions` + * @param itemValue the node value to set + * @return Returns the updated options. + * + */ + @kotlin.jvm.JvmStatic + fun verifySetOptions(options: PropertyOptions, itemValue: Any?): PropertyOptions { + + if (options.isArrayAltText()) + options.setArrayAlternate(true) + + if (options.isArrayAlternate()) + options.setArrayOrdered(true) + + if (options.isArrayOrdered()) + options.setArray(true) + + if (options.isCompositeProperty() && itemValue != null && itemValue.toString().length > 0) + throw XMPException("Structs and arrays can't have values", XMPError.BADOPTIONS) + + options.assertConsistency(options.getOptions()) + + return options + } + + /** + * Converts the node value to String, apply special conversions for defined + * types in XMP. + * + * @param value the node value to set + * @return Returns the String representation of the node value. + */ + fun serializeNodeValue(value: Any?): String? { + + if (value == null) + return null + + val strValue: String = when (value) { + is Boolean -> if (value) XMPConst.TRUESTR else XMPConst.FALSESTR + is Int -> value.toString() + is Long -> value.toString() + is Double -> value.toString() + is ByteArray -> encodeBase64(value) + else -> value.toString() + } + + return replaceControlCharsWithSpace(strValue) + } + + /** + * After processing by ExpandXPath, a step can be of these forms: + * + * * qualName - A top level property or struct field. + * * [index] - An element of an array. + * * [last()] - The last element of an array. + * * [qualName="value"] - An element in an array of structs, chosen by a field value. + * * [?qualName="value"] - An element in an array, chosen by a qualifier value. + * * ?qualName - A general qualifier. + * + * Find the appropriate child node, resolving aliases, and optionally creating nodes. + */ + private fun followXPathStep( + parentNode: XMPNode, + nextStep: XMPPathSegment, + createNodes: Boolean + ): XMPNode? { + + var nextNode: XMPNode? = null + var index = 0 + val stepKind = nextStep.kind + + if (stepKind == XMPPath.STRUCT_FIELD_STEP) { + nextNode = findChildNode(parentNode, nextStep.name, createNodes) + } else if (stepKind == XMPPath.QUALIFIER_STEP) { + nextNode = findQualifierNode(parentNode, nextStep.name!!.substring(1), createNodes) + } else { + + // This is an array indexing step. First get the index, then get the node. + if (!parentNode.options.isArray()) + throw XMPException("Indexing applied to non-array", XMPError.BADXPATH) + + index = when (stepKind) { + + XMPPath.ARRAY_INDEX_STEP -> + findIndexedItem(parentNode, nextStep.name, createNodes) + + XMPPath.ARRAY_LAST_STEP -> + parentNode.getChildrenLength() + + XMPPath.FIELD_SELECTOR_STEP -> { + + val result = splitNameAndValue(nextStep.name!!) + val fieldName = result[0] + val fieldValue = result[1] + + lookupFieldSelector(parentNode, fieldName, fieldValue) + } + + XMPPath.QUAL_SELECTOR_STEP -> { + + val result = splitNameAndValue(nextStep.name!!) + val qualName = result[0] + val qualValue = result[1] + + lookupQualSelector(parentNode, qualName, qualValue, nextStep.aliasForm) + } + + else -> + throw XMPException( + "Unknown array indexing step in FollowXPathStep", + XMPError.INTERNALFAILURE + ) + } + + if (1 <= index && index <= parentNode.getChildrenLength()) + nextNode = parentNode.getChild(index) + } + + return nextNode + } + + /** + * Find or create a qualifier node under a given parent node. Returns a pointer to the + * qualifier node, and optionally an iterator for the node's position in the parent's vector + * of qualifiers. The iterator is unchanged if no qualifier node (null) is returned. + * + * *Note:* On entry, the qualName parameter must not have the leading '?' from the XMPPath step. + */ + private fun findQualifierNode(parent: XMPNode?, qualName: String, createNodes: Boolean): XMPNode? { + + require(!qualName.startsWith("?")) + + var qualNode = parent!!.findQualifierByName(qualName) + + if (qualNode == null && createNodes) { + qualNode = XMPNode(qualName, null) + qualNode.isImplicit = true + parent.addQualifier(qualNode) + } + + return qualNode + } + + /** + * @param arrayNode an array node + * @param segment the segment containing the array index + * @param createNodes flag if new nodes are allowed to be created. + * @return Returns the index or index = -1 if not found + * + */ + private fun findIndexedItem(arrayNode: XMPNode?, segment: String?, createNodes: Boolean): Int { + + var segment = segment + var index: Int + + try { + + segment = segment!!.substring(1, segment.length - 1) + index = segment.toInt() + + if (index < 1) + throw XMPException("Array index must be larger than zero", XMPError.BADXPATH) + + } catch (ex: NumberFormatException) { + throw XMPException("Array index not digits.", XMPError.BADXPATH, ex) + } + + if (createNodes && index == arrayNode!!.getChildrenLength() + 1) { + + // Append a new last + 1 node. + val newItem = XMPNode(XMPConst.ARRAY_ITEM_NAME, null) + + newItem.isImplicit = true + + arrayNode.addChild(newItem) + } + + return index + } + + /** + * Searches for a field selector in a node: + * [fieldName="value] - an element in an array of structs, chosen by a field value. + * No implicit nodes are created by field selectors. + * + * @param arrayNode + * @param fieldName + * @param fieldValue + * @return Returns the index of the field if found, otherwise -1. + */ + private fun lookupFieldSelector(arrayNode: XMPNode?, fieldName: String, fieldValue: String): Int { + + var result = -1 + var index = 1 + + while (index <= arrayNode!!.getChildrenLength() && result < 0) { + + val currItem = arrayNode.getChild(index) + + if (!currItem.options.isStruct()) + throw XMPException("Field selector must be used on array of struct", XMPError.BADXPATH) + + for (childIndex in 1..currItem.getChildrenLength()) { + + val currField = currItem.getChild(childIndex) + + if (fieldName != currField.name) + continue + + if (fieldValue == currField.value) { + result = index + break + } + } + + index++ + } + + return result + } + + /** + * Searches for a qualifier selector in a node: + * [?qualName="value"] - an element in an array, chosen by a qualifier value. + * No implicit nodes are created for qualifier selectors, except for an alias to an x-default item. + */ + private fun lookupQualSelector( + arrayNode: XMPNode, + qualName: String, + qualValue: String, + aliasForm: Int + ): Int { + + return if (XMPConst.XML_LANG == qualName) { + + val normalizedQualValue = normalizeLangValue(qualValue) + + val index = lookupLanguageItem(arrayNode, normalizedQualValue) + + if (index < 0 && aliasForm and AliasOptions.PROP_ARRAY_ALT_TEXT > 0) { + + val langNode = XMPNode(XMPConst.ARRAY_ITEM_NAME, null) + + val xdefault = XMPNode(XMPConst.XML_LANG, XMPConst.X_DEFAULT) + + langNode.addQualifier(xdefault) + + arrayNode.addChild(1, langNode) + + 1 + + } else { + index + } + + } else { + + for (index in 1 until arrayNode.getChildrenLength()) { + + val currItem = arrayNode.getChild(index) + + for (qualifier in currItem.getQualifier()) + if (qualName == qualifier.name && qualValue == qualifier.value) + return index + } + + -1 + } + } + + /** + * Make sure the x-default item is first. Touch up "single value" + * arrays that have a default plus one real language. This case should have + * the same value for both items. Older Adobe apps were hardwired to only + * use the "x-default" item, so we copy that value to the other + * item. + * + * @param arrayNode an alt text array node + */ + fun normalizeLangArray(arrayNode: XMPNode) { + + if (!arrayNode.options.isArrayAltText()) + return + + // check if node with x-default qual is first place + for (index in 2..arrayNode.getChildrenLength()) { + + val child = arrayNode.getChild(index) + + if (child.hasQualifier() && XMPConst.X_DEFAULT == child.getQualifier(1).value) { + + // move node to first place + arrayNode.removeChild(index) + arrayNode.addChild(1, child) + + if (index == 2) + arrayNode.getChild(2).value = child.value + + break + } + } + } + + /** + * See if an array is an alt-text array. If so, make sure the x-default item + * is first. + * + * @param arrayNode the array node to check if its an alt-text array + */ + fun detectAltText(arrayNode: XMPNode) { + + if (arrayNode.options.isArrayAlternate() && arrayNode.hasChildren()) { + + var isAltText = false + + for (child in arrayNode.getChildren()) { + if (child.options.hasLanguage()) { + isAltText = true + break + } + } + + if (isAltText) { + arrayNode.options.setArrayAltText(true) + normalizeLangArray(arrayNode) + } + } + } + + /** + * Appends a language item to an alt text array. + */ + @kotlin.jvm.JvmStatic + fun appendLangItem(arrayNode: XMPNode, itemLang: String?, itemValue: String?) { + + val newItem = XMPNode(XMPConst.ARRAY_ITEM_NAME, itemValue) + val langQual = XMPNode(XMPConst.XML_LANG, itemLang) + + newItem.addQualifier(langQual) + + if (XMPConst.X_DEFAULT != langQual.value) + arrayNode.addChild(newItem) + else + arrayNode.addChild(1, newItem) + } + + /** + * 1. Look for an exact match with the specific language. + * 1. If a generic language is given, look for partial matches. + * 1. Look for an "x-default"-item. + * 1. Choose the first item. + */ + @kotlin.jvm.JvmStatic + fun chooseLocalizedText(arrayNode: XMPNode, genericLang: String?, specificLang: String): Array { + + // See if the array has the right form. Allow empty alt arrays, that is what parsing returns. + + if (!arrayNode.options.isArrayAltText()) + throw XMPException("Localized text array is not alt-text", XMPError.BADXPATH) + else if (!arrayNode.hasChildren()) + return arrayOf(CLT_NO_VALUES, null) + + var foundGenericMatches = 0 + var resultNode: XMPNode? = null + var xDefault: XMPNode? = null + + // Look for the first partial match with the generic language. + val it = arrayNode.iterateChildren() + + while (it.hasNext()) { + + val currItem = it.next() + + // perform some checks on the current item + if (currItem.options.isCompositeProperty()) + throw XMPException("Alt-text array item is not simple", XMPError.BADXPATH) + else if (!currItem.hasQualifier() || XMPConst.XML_LANG != currItem.getQualifier(1).name) + throw XMPException("Alt-text array item has no language qualifier", XMPError.BADXPATH) + + val currLang = currItem.getQualifier(1).value + + // Look for an exact match with the specific language. + when { + + specificLang == currLang -> + return arrayOf(CLT_SPECIFIC_MATCH, currItem) + + genericLang != null && currLang!!.startsWith(genericLang) -> { + + if (resultNode == null) + resultNode = currItem + + // ! Don't return/break, need to look for other matches. + foundGenericMatches++ + } + + XMPConst.X_DEFAULT == currLang -> + xDefault = currItem + } + } + + // evaluate loop + return when { + + foundGenericMatches == 1 -> + arrayOf(CLT_SINGLE_GENERIC, resultNode) + + foundGenericMatches > 1 -> + arrayOf(CLT_MULTIPLE_GENERIC, resultNode) + + xDefault != null -> + arrayOf(CLT_XDEFAULT, xDefault) + + else -> // Everything failed, choose the first item. + arrayOf(CLT_FIRST_ITEM, arrayNode.getChild(1)) + } + } + + /** + * Looks for the appropriate language item in a text alternative array.item + * Returns the index if the language has been found, -1 otherwise. + */ + fun lookupLanguageItem(arrayNode: XMPNode?, language: String): Int { + + if (!arrayNode!!.options.isArray()) + throw XMPException("Language item must be used on array", XMPError.BADXPATH) + + for (index in 1..arrayNode.getChildrenLength()) { + + val child = arrayNode.getChild(index) + + if (!child.hasQualifier() || XMPConst.XML_LANG != child.getQualifier(1).name) + continue + else if (language == child.getQualifier(1).value) + return index + } + + return -1 + } +} diff --git a/src/commonMain/kotlin/com/ashampoo/xmp/impl/XMPNormalizer.kt b/src/commonMain/kotlin/com/ashampoo/xmp/impl/XMPNormalizer.kt new file mode 100644 index 0000000..39857ad --- /dev/null +++ b/src/commonMain/kotlin/com/ashampoo/xmp/impl/XMPNormalizer.kt @@ -0,0 +1,496 @@ +// ================================================================================================= +// ADOBE SYSTEMS INCORPORATED +// Copyright 2006 Adobe Systems Incorporated +// All Rights Reserved +// +// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms +// of the Adobe license agreement accompanying it. +// ================================================================================================= +package com.ashampoo.xmp.impl + +import com.ashampoo.xmp.XMPConst +import com.ashampoo.xmp.XMPError +import com.ashampoo.xmp.XMPException +import com.ashampoo.xmp.XMPMeta +import com.ashampoo.xmp.XMPMetaFactory.schemaRegistry +import com.ashampoo.xmp.impl.Utils.checkUUIDFormat +import com.ashampoo.xmp.impl.xpath.XMPPathParser.expandXPath +import com.ashampoo.xmp.options.ParseOptions +import com.ashampoo.xmp.options.PropertyOptions + +internal object XMPNormalizer { + + /** + * caches the correct dc-property array forms + */ + private val dcArrayForms: Map = createDCArrays() + + /** + * Normalizes a raw parsed XMPMeta-Object + * + * @param xmp the raw metadata object + * @param options the parsing options + * @return Returns the normalized metadata object + * + */ + @kotlin.jvm.JvmStatic + fun normalize(xmp: XMPMetaImpl, options: ParseOptions): XMPMeta { + + val tree = xmp.root + + touchUpDataModel(xmp) + moveExplicitAliases(tree, options) + tweakOldXMP(tree) + deleteEmptySchemas(tree) + + return xmp + } + + /** + * Tweak old XMP: Move an instance ID from rdf:about to the + * *xmpMM:InstanceID* property. An old instance ID usually looks + * like "uuid:bac965c4-9d87-11d9-9a30-000d936b79c4", plus InDesign + * 3.0 wrote them like "bac965c4-9d87-11d9-9a30-000d936b79c4". + * + * If the name looks like a UUID simply move it to *xmpMM:InstanceID*, + * don't worry about any existing *xmpMM:InstanceID*. Both will + * only be present when a newer file with the *xmpMM:InstanceID* + * property is updated by an old app that uses *rdf:about*. + */ + private fun tweakOldXMP(tree: XMPNode) { + + if (tree.name != null && tree.name!!.length >= Utils.UUID_LENGTH) { + + var nameStr = tree.name!!.lowercase() + + if (nameStr.startsWith("uuid:")) + nameStr = nameStr.substring(5) + + if (checkUUIDFormat(nameStr)) { + + // move UUID to xmpMM:InstanceID and remove it from the root node + val path = expandXPath(XMPConst.NS_XMP_MM, "InstanceID") + val idNode = XMPNodeUtils.findNode(tree, path, true, null) + + if (idNode != null) { + + idNode.options = PropertyOptions() // Clobber any existing xmpMM:InstanceID. + idNode.value = "uuid:$nameStr" + idNode.removeChildren() + idNode.removeQualifiers() + + tree.name = null + + } else + throw XMPException("Failure creating xmpMM:InstanceID", XMPError.INTERNALFAILURE) + } + } + } + + /** + * Visit all schemas to do general fixes and handle special cases. + */ + private fun touchUpDataModel(xmp: XMPMetaImpl) { + + // make sure the DC schema is existing, because it might be needed within the normalization + // if not touched it will be removed by removeEmptySchemas + XMPNodeUtils.findSchemaNode(xmp.root, XMPConst.NS_DC, true) + + // Do the special case fixes within each schema. + val it = xmp.root.iterateChildren() + + while (it.hasNext()) { + + val currSchema = it.next() + + when { + + XMPConst.NS_DC == currSchema.name -> + normalizeDCArrays(currSchema) + + XMPConst.NS_EXIF == currSchema.name -> + XMPNodeUtils.findChildNode(currSchema, "exif:UserComment", false) + ?.let { userComment -> repairAltText(userComment) } + + XMPConst.NS_XMP_RIGHTS == currSchema.name -> + XMPNodeUtils.findChildNode(currSchema, "xmpRights:UsageTerms", false) + ?.let { usageTerms -> repairAltText(usageTerms) } + } + } + } + + /** + * Undo the denormalization performed by the XMP used in Acrobat 5. + * If a Dublin Core array had only one item, it was serialized as a simple property. + * The `xml:lang` attribute was dropped from an `alt-text` item if the language was `x-default`. + * + */ + private fun normalizeDCArrays(dcSchema: XMPNode) { + + for (index in 1..dcSchema.getChildrenLength()) { + + val currProp = dcSchema.getChild(index) + + val arrayForm = dcArrayForms[currProp.name] + + if (arrayForm == null) { + + continue + + } else if (currProp.options.isSimple()) { + + // create a new array and add the current property as child, if it was formerly simple + val newArray = XMPNode(currProp.name, null, arrayForm) + + currProp.name = XMPConst.ARRAY_ITEM_NAME + newArray.addChild(currProp) + dcSchema.replaceChild(index, newArray) + + // fix language alternatives + if (arrayForm.isArrayAltText() && !currProp.options.hasLanguage()) { + + val newLang = XMPNode(XMPConst.XML_LANG, XMPConst.X_DEFAULT) + + currProp.addQualifier(newLang) + } + + } else { + + // clear array options and add corrected array form if it has been an array before + currProp.options.setOption( + PropertyOptions.ARRAY or + PropertyOptions.ARRAY_ORDERED or + PropertyOptions.ARRAY_ALTERNATE or + PropertyOptions.ARRAY_ALT_TEXT, + false + ) + + currProp.options.mergeWith(arrayForm) + + // applying for "dc:description", "dc:rights", "dc:title" + if (arrayForm.isArrayAltText()) + repairAltText(currProp) + } + } + } + + /** + * Make sure that the array is well-formed AltText. Each item must be simple + * and have an "xml:lang" qualifier. If repairs are needed, keep simple + * non-empty items by adding the "xml:lang" with value "x-repair". + * + * @param arrayNode the property node of the array to repair. + */ + private fun repairAltText(arrayNode: XMPNode?) { + + if (arrayNode == null || !arrayNode.options.isArray()) + return // Already OK or not even an array. + + // fix options + arrayNode.options.setArrayOrdered(true).setArrayAlternate(true).setArrayAltText(true) + + val it = arrayNode.iterateChildrenMutable() + + while (it.hasNext()) { + + val currChild = it.next() + + if (currChild.options.isCompositeProperty()) { + + // Delete non-simple children. + it.remove() + + } else if (!currChild.options.hasLanguage()) { + + val childValue = currChild.value + + if (childValue == null || childValue.length == 0) { + + // Delete empty valued children that have no xml:lang. + it.remove() + + } else { + + // Add an xml:lang qualifier with the value "x-repair". + val repairLang = XMPNode(XMPConst.XML_LANG, "x-repair") + currChild.addQualifier(repairLang) + } + } + } + } + + /** + * Visit all of the top level nodes looking for aliases. If there is + * no base, transplant the alias subtree. If there is a base and strict + * aliasing is on, make sure the alias and base subtrees match. + * + * @param tree the root of the metadata tree + * @param options th parsing options + */ + private fun moveExplicitAliases(tree: XMPNode, options: ParseOptions) { + + if (!tree.hasAliases) + return + + tree.hasAliases = false + + val strictAliasing = options.getStrictAliasing() + + val schemaIt: Iterator = tree.iterateChildren() + + while (schemaIt.hasNext()) { + + val currSchema = schemaIt.next() + + if (!currSchema.hasAliases) + continue + + val propertyIt = currSchema.iterateChildrenMutable() + + while (propertyIt.hasNext()) { + + val currProp = propertyIt.next() + + if (!currProp.isAlias) + continue + + currProp.isAlias = false + + // Find the base path, look for the base schema and root node. + val info = schemaRegistry.findAlias(currProp.name!!) + + if (info != null) { + + // find or create schema + val baseSchema = XMPNodeUtils.findSchemaNode( + tree, info.getNamespace(), null, true + ) + + checkNotNull(baseSchema) { "SchemaNode should have been created." } + + baseSchema.isImplicit = false + + var baseNode = XMPNodeUtils.findChildNode( + baseSchema, + info.getPrefix() + info.getPropName(), false + ) + + if (baseNode == null) { + + if (info.getAliasForm().isSimple()) { + + // A top-to-top alias, transplant the property. + // change the alias property name to the base name + val qname = info.getPrefix() + info.getPropName() + + currProp.name = qname + + baseSchema.addChild(currProp) + + // remove the alias property + propertyIt.remove() + + } else { + + // An alias to an array item, + // create the array and transplant the property. + baseNode = XMPNode( + name = info.getPrefix() + info.getPropName(), + value = null, + options = info.getAliasForm().toPropertyOptions() + ) + + baseSchema.addChild(baseNode) + + transplantArrayItemAlias(propertyIt, currProp, baseNode) + } + + } else if (info.getAliasForm().isSimple()) { + + // The base node does exist and this is a top-to-top alias. + // Check for conflicts if strict aliasing is on. + // Remove and delete the alias subtree. + if (strictAliasing) + compareAliasedSubtrees(currProp, baseNode, true) + + propertyIt.remove() + + } else { + + // This is an alias to an array item and the array exists. + // Look for the aliased item. + // Then transplant or check & delete as appropriate. + var itemNode: XMPNode? = null + + if (info.getAliasForm().isArrayAltText()) { + + val xdIndex = XMPNodeUtils.lookupLanguageItem(baseNode, XMPConst.X_DEFAULT) + + if (xdIndex != -1) + itemNode = baseNode.getChild(xdIndex) + + } else if (baseNode.hasChildren()) { + + itemNode = baseNode.getChild(1) + } + + if (itemNode == null) { + + transplantArrayItemAlias(propertyIt, currProp, baseNode) + + } else { + + if (strictAliasing) + compareAliasedSubtrees(currProp, itemNode, true) + + propertyIt.remove() + } + } + } + } + + currSchema.hasAliases = false + } + } + + /** + * Moves an alias node of array form to another schema into an array + * + * @param propertyIt the property iterator of the old schema (used to delete the property) + * @param childNode the node to be moved + * @param baseArray the base array for the array item + * + */ + private fun transplantArrayItemAlias( + propertyIt: MutableIterator, + childNode: XMPNode, + baseArray: XMPNode + ) { + + if (baseArray.options.isArrayAltText()) { + + // *** Allow x-default. + if (childNode.options.hasLanguage()) + throw XMPException("Alias to x-default already has a language qualifier", XMPError.BADXMP) + + val langQual = XMPNode(XMPConst.XML_LANG, XMPConst.X_DEFAULT) + + childNode.addQualifier(langQual) + } + + propertyIt.remove() + + childNode.name = XMPConst.ARRAY_ITEM_NAME + + baseArray.addChild(childNode) + } + + /** + * Remove all empty schemas from the metadata tree that were generated during the rdf parsing. + * + * @param tree the root of the metadata tree + */ + private fun deleteEmptySchemas(tree: XMPNode) { + + // Delete empty schema nodes. Do this last, other cleanup can make empty schema. + + val it = tree.iterateChildrenMutable() + + while (it.hasNext()) { + + val schema = it.next() + + if (!schema.hasChildren()) + it.remove() + } + } + + /** + * The outermost call is special. The names almost certainly differ. The + * qualifiers (and hence options) will differ for an alias to the x-default + * item of a langAlt array. + * + * @param aliasNode the alias node + * @param baseNode the base node of the alias + * @param outerCall marks the outer call of the recursion + * + */ + private fun compareAliasedSubtrees( + aliasNode: XMPNode, + baseNode: XMPNode, + outerCall: Boolean + ) { + + if (aliasNode.value != baseNode.value || aliasNode.getChildrenLength() != baseNode.getChildrenLength()) + throw XMPException("Mismatch between alias and base nodes", XMPError.BADXMP) + + if (!outerCall && + ( + aliasNode.name != baseNode.name || + !aliasNode.options.equals(baseNode.options) || + aliasNode.getQualifierLength() != baseNode.getQualifierLength() + ) + ) + throw XMPException("Mismatch between alias and base nodes", XMPError.BADXMP) + + run { + val an = aliasNode.iterateChildren() + val bn = baseNode.iterateChildren() + + while (an.hasNext() && bn.hasNext()) { + val aliasChild = an.next() + val baseChild = bn.next() + compareAliasedSubtrees(aliasChild, baseChild, false) + } + } + + val an = aliasNode.iterateQualifier() + val bn = baseNode.iterateQualifier() + + while (an.hasNext() && bn.hasNext()) { + + val aliasQual = an.next() + val baseQual = bn.next() + + compareAliasedSubtrees(aliasQual, baseQual, false) + } + } + + /** + * Initializes the map that contains the known arrays, that are fixed by + * [XMPNormalizer.normalizeDCArrays]. + */ + private fun createDCArrays(): Map { + + val dcArrayForms = mutableMapOf() + + // Properties supposed to be a "Bag". + val bagForm = PropertyOptions() + bagForm.setArray(true) + dcArrayForms["dc:contributor"] = bagForm + dcArrayForms["dc:language"] = bagForm + dcArrayForms["dc:publisher"] = bagForm + dcArrayForms["dc:relation"] = bagForm + dcArrayForms["dc:subject"] = bagForm + dcArrayForms["dc:type"] = bagForm + + // Properties supposed to be a "Seq". + val seqForm = PropertyOptions() + seqForm.setArray(true) + seqForm.setArrayOrdered(true) + dcArrayForms["dc:creator"] = seqForm + dcArrayForms["dc:date"] = seqForm + + // Properties supposed to be an "Alt" in alternative-text form. + val altTextForm = PropertyOptions() + altTextForm.setArray(true) + altTextForm.setArrayOrdered(true) + altTextForm.setArrayAlternate(true) + altTextForm.setArrayAltText(true) + dcArrayForms["dc:description"] = altTextForm + dcArrayForms["dc:rights"] = altTextForm + dcArrayForms["dc:title"] = altTextForm + + return dcArrayForms + } +} diff --git a/src/commonMain/kotlin/com/ashampoo/xmp/impl/XMPRDFParser.kt b/src/commonMain/kotlin/com/ashampoo/xmp/impl/XMPRDFParser.kt new file mode 100644 index 0000000..971e819 --- /dev/null +++ b/src/commonMain/kotlin/com/ashampoo/xmp/impl/XMPRDFParser.kt @@ -0,0 +1,1185 @@ +// ================================================================================================= +// ADOBE SYSTEMS INCORPORATED +// Copyright 2006 Adobe Systems Incorporated +// All Rights Reserved +// +// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms +// of the Adobe license agreement accompanying it. +// ================================================================================================= +package com.ashampoo.xmp.impl + +import com.ashampoo.xmp.XMPConst +import com.ashampoo.xmp.XMPError +import com.ashampoo.xmp.XMPException +import com.ashampoo.xmp.XMPMetaFactory.schemaRegistry +import com.ashampoo.xmp.options.ParseOptions +import com.ashampoo.xmp.options.PropertyOptions +import nl.adaptivity.xmlutil.dom.Attr +import nl.adaptivity.xmlutil.dom.Element +import nl.adaptivity.xmlutil.dom.Node +import nl.adaptivity.xmlutil.dom.Text +import nl.adaptivity.xmlutil.dom.attributes +import nl.adaptivity.xmlutil.dom.childNodes +import nl.adaptivity.xmlutil.dom.data +import nl.adaptivity.xmlutil.dom.length +import nl.adaptivity.xmlutil.dom.localName +import nl.adaptivity.xmlutil.dom.namespaceURI +import nl.adaptivity.xmlutil.dom.nodeName +import nl.adaptivity.xmlutil.dom.nodeType +import nl.adaptivity.xmlutil.dom.ownerElement +import nl.adaptivity.xmlutil.dom.prefix +import nl.adaptivity.xmlutil.dom.value + +/** + * Parser for "normal" XML serialisation of RDF. + */ +internal object XMPRDFParser : XMPError { + + const val RDFTERM_OTHER = 0 + + /** + * Start of coreSyntaxTerms. + */ + const val RDFTERM_RDF = 1 + + const val RDFTERM_ID = 2 + + const val RDFTERM_ABOUT = 3 + + const val RDFTERM_PARSE_TYPE = 4 + + const val RDFTERM_RESOURCE = 5 + + const val RDFTERM_NODE_ID = 6 + + /** + * End of coreSyntaxTerms + */ + const val RDFTERM_DATATYPE = 7 + + /** + * Start of additions for syntax Terms. + */ + const val RDFTERM_DESCRIPTION = 8 + + /** + * End of of additions for syntaxTerms. + */ + const val RDFTERM_LI = 9 + + /** + * Start of oldTerms. + */ + const val RDFTERM_ABOUT_EACH = 10 + + const val RDFTERM_ABOUT_EACH_PREFIX = 11 + + /** + * End of oldTerms. + */ + const val RDFTERM_BAG_ID = 12 + + const val RDFTERM_FIRST_CORE = RDFTERM_RDF + + const val RDFTERM_LAST_CORE = RDFTERM_DATATYPE + + /** + * ! Yes, the syntax terms include the core terms. + */ + const val RDFTERM_FIRST_SYNTAX = RDFTERM_FIRST_CORE + + const val RDFTERM_LAST_SYNTAX = RDFTERM_LI + + const val RDFTERM_FIRST_OLD = RDFTERM_ABOUT_EACH + + const val RDFTERM_LAST_OLD = RDFTERM_BAG_ID + + /** + * this prefix is used for default namespaces + */ + const val DEFAULT_PREFIX = "_dflt" + + /** + * The main parsing method. The XML tree is walked through from the root node and and XMP tree + * is created. This is a raw parse, the normalisation of the XMP tree happens outside. + * + */ + @kotlin.jvm.JvmStatic + fun parse(xmlRoot: Node, options: ParseOptions): XMPMetaImpl { + + val xmp = XMPMetaImpl() + + parseRdfRoot(xmp, xmlRoot, options) + + return xmp + } + + /** + * Each of these parsing methods is responsible for recognizing an RDF + * syntax production and adding the appropriate structure to the XMP tree. + * They simply return for success, failures will throw an exception. + */ + @Suppress("ThrowsCount") + fun parseRdfRoot(xmp: XMPMetaImpl, rdfRdfNode: Node, options: ParseOptions) { + + if (rdfRdfNode.nodeName != "rdf:RDF") + throw XMPException("Root node should be of type rdf:RDF", XMPError.BADRDF) + + if (rdfRdfNode !is Element) + throw XMPException("Root node must be of element type.", XMPError.BADRDF) + + if (rdfRdfNode.attributes.length == 0) + throw XMPException("Illegal: rdf:RDF node has no attributes", XMPError.BADRDF) + + for (index in 0 until rdfRdfNode.childNodes.length) { + + val child = rdfRdfNode.childNodes.item(index)!! + + /* Filter whitespace nodes. */ + if (isWhitespaceNode(child)) + continue + + parseRdfNodeElement(xmp, xmp.root, child as Element, true, options) + } + } + + /** + * 7.2.5 nodeElementURIs + * anyURI - ( coreSyntaxTerms | rdf:li | oldTerms ) + * + * 7.2.11 nodeElement + * start-element ( URI == nodeElementURIs, + * attributes == set ( ( idAttr | nodeIdAttr | aboutAttr )?, propertyAttr* ) ) + * propertyEltList + * end-element() + * + * A node element URI is rdf:Description or anything else that is not an RDF + * term. + */ + private fun parseRdfNodeElement( + xmp: XMPMetaImpl, + xmpParent: XMPNode, + xmlNode: Element, + isTopLevel: Boolean, + options: ParseOptions + ) { + + val nodeTerm = getRDFTermKind(xmlNode) + + if (nodeTerm != RDFTERM_DESCRIPTION && nodeTerm != RDFTERM_OTHER) + throw XMPException("Node element must be rdf:Description or typed node", XMPError.BADRDF) + + if (isTopLevel && nodeTerm == RDFTERM_OTHER) + throw XMPException("Top level typed node not allowed", XMPError.BADXMP) + + parseRdfNodeElementAttrs(xmp, xmpParent, xmlNode, isTopLevel) + parseRdfPropertyElementList(xmp, xmpParent, xmlNode, isTopLevel, options) + } + + /** + * 7.2.7 propertyAttributeURIs + * anyURI - ( coreSyntaxTerms | rdf:Description | rdf:li | oldTerms ) + * + * 7.2.11 nodeElement + * start-element ( URI == nodeElementURIs, + * attributes == set ( ( idAttr | nodeIdAttr | aboutAttr )?, propertyAttr* ) ) + * propertyEltList + * + * Process the attribute list for an RDF node element. A property attribute URI is + * anything other than an RDF term. The rdf:ID and rdf:nodeID attributes are simply ignored, + * as are rdf:about attributes on inner nodes. + * + */ + private fun parseRdfNodeElementAttrs( + xmp: XMPMetaImpl, + xmpParent: XMPNode, + xmlNode: Element, + isTopLevel: Boolean + ) { + + // Used to detect attributes that are mutually exclusive. + var exclusiveAttrs = 0 + + for (index in 0 until xmlNode.attributes.length) { + + val attribute = xmlNode.attributes.item(index) as Attr + + // quick hack, ns declarations do not appear in C++ + // ignore "ID" without namespace + if ("xmlns" == attribute.prefix || attribute.prefix == null && "xmlns" == attribute.nodeName) + continue + + val attrTerm = getRDFTermKind(attribute) + + when (attrTerm) { + + RDFTERM_ID, RDFTERM_NODE_ID, RDFTERM_ABOUT -> { + + if (exclusiveAttrs > 0) + throw XMPException("Mutally exclusive about, ID, nodeID attributes", XMPError.BADRDF) + + exclusiveAttrs++ + + if (isTopLevel && attrTerm == RDFTERM_ABOUT) { + + // This is the rdf:about attribute on a top level node. Set + // the XMP tree name if + // it doesn't have a name yet. Make sure this name matches + // the XMP tree name. + if (xmpParent.name != null && xmpParent.name!!.length > 0) { + + if (xmpParent.name != attribute.value) + throw XMPException("Mismatched top level rdf:about values", XMPError.BADXMP) + + } else { + xmpParent.name = attribute.value + } + } + } + + RDFTERM_OTHER -> + addChildNode(xmp, xmpParent, attribute, attribute.value, isTopLevel) + + else -> throw XMPException("Invalid nodeElement attribute", XMPError.BADRDF) + } + } + } + + /** + * 7.2.13 propertyEltList + * ws* ( propertyElt ws* )* + * + * @param xmp the xmp metadata object that is generated + * @param xmpParent the parent xmp node + * @param xmlParent the currently processed XML node + * @param isTopLevel Flag if the node is a top-level node + * @param options ParseOptions to indicate the parse options provided by the client + * + */ + private fun parseRdfPropertyElementList( + xmp: XMPMetaImpl, + xmpParent: XMPNode, + xmlParent: Node?, + isTopLevel: Boolean, + options: ParseOptions + ) { + + for (index in 0 until xmlParent!!.childNodes.length) { + + val currChild = xmlParent.childNodes.item(index)!! + + if (isWhitespaceNode(currChild)) + continue + + if (currChild !is Element) + throw XMPException("Expected property element node not found", XMPError.BADRDF) + + parseRdfPropertyElement(xmp, xmpParent, currChild, isTopLevel, options) + } + } + + /** + * 7.2.14 propertyElt + * + * resourcePropertyElt | literalPropertyElt | parseTypeLiteralPropertyElt | + * parseTypeResourcePropertyElt | parseTypeCollectionPropertyElt | + * parseTypeOtherPropertyElt | emptyPropertyElt + * + * 7.2.15 resourcePropertyElt + * start-element ( URI == propertyElementURIs, attributes == set ( idAttr? ) ) + * ws* nodeElement ws* + * end-element() + * + * 7.2.16 literalPropertyElt + * start-element ( + * URI == propertyElementURIs, attributes == set ( idAttr?, datatypeAttr?) ) + * text() + * end-element() + * + * 7.2.17 parseTypeLiteralPropertyElt + * start-element ( + * URI == propertyElementURIs, attributes == set ( idAttr?, parseLiteral ) ) + * literal + * end-element() + * + * 7.2.18 parseTypeResourcePropertyElt + * start-element ( + * URI == propertyElementURIs, attributes == set ( idAttr?, parseResource ) ) + * propertyEltList + * end-element() + * + * 7.2.19 parseTypeCollectionPropertyElt + * start-element ( + * URI == propertyElementURIs, attributes == set ( idAttr?, parseCollection ) ) + * nodeElementList + * end-element() + * + * 7.2.20 parseTypeOtherPropertyElt + * start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseOther ) ) + * propertyEltList + * end-element() + * + * 7.2.21 emptyPropertyElt + * start-element ( URI == propertyElementURIs, + * attributes == set ( idAttr?, ( resourceAttr | nodeIdAttr )?, propertyAttr* ) ) + * end-element() + * + * The various property element forms are not distinguished by the XML element name, + * but by their attributes for the most part. The exceptions are resourcePropertyElt and + * literalPropertyElt. They are distinguished by their XML element content. + * + * NOTE: The RDF syntax does not explicitly include the xml:lang attribute although it can + * appear in many of these. We have to allow for it in the attibute counts below. + * + */ + private fun parseRdfPropertyElement( + xmp: XMPMetaImpl, + xmpParent: XMPNode, + xmlNode: Element, + isTopLevel: Boolean, + options: ParseOptions + ) { + + val nodeTerm = getRDFTermKind(xmlNode) + + if (!isPropertyElementName(nodeTerm)) + throw XMPException("Invalid property element name", XMPError.BADRDF) + + // remove the namespace-definitions from the list + val attributes = xmlNode.attributes + + var nsAttrs: MutableList? = null + + for (index in 0 until attributes.length) { + + val attribute = attributes.item(index) as Attr + + if ("xmlns" == attribute.prefix || attribute.prefix == null && "xmlns" == attribute.nodeName) { + + if (nsAttrs == null) + nsAttrs = mutableListOf() + + nsAttrs.add(attribute.nodeName) + } + } + + if (nsAttrs != null) { + + val it = nsAttrs.iterator() + + while (it.hasNext()) + attributes.removeNamedItem(it.next()) + } + + if (attributes.length > 3) { + + // Only an emptyPropertyElt can have more than 3 attributes. + parseEmptyPropertyElement(xmp, xmpParent, xmlNode, isTopLevel) + + } else { + + // Look through the attributes for one that isn't rdf:ID or xml:lang, + // it will usually tell what we should be dealing with. + // The called routines must verify their specific syntax! + for (index in 0 until attributes.length) { + + val attribute = attributes.item(index) as Attr + + val attrValue = attribute.value + + val condition = XMPConst.XML_LANG == attribute.nodeName && + !("ID" == attribute.localName && XMPConst.NS_RDF == attribute.namespaceURI) + + if (!condition) { + + when { + + "datatype" == attribute.localName && XMPConst.NS_RDF == attribute.namespaceURI -> + parseRdfLiteralPropertyElement(xmp, xmpParent, xmlNode, isTopLevel) + + !("parseType" == attribute.localName && XMPConst.NS_RDF == attribute.namespaceURI) -> + parseEmptyPropertyElement(xmp, xmpParent, xmlNode, isTopLevel) + + "Literal" == attrValue -> + throw XMPException("Literal property element not allowed", XMPError.BADXMP) + + "Resource" == attrValue -> + parseTypeResourcePropertyElement(xmp, xmpParent, xmlNode, isTopLevel, options) + + "Collection" == attrValue -> + throw XMPException("Collection property element forbidden", XMPError.BADXMP) + + else -> + throw XMPException("Other property element not allowed", XMPError.BADXMP) + } + + return + } + } + + // Only rdf:ID and xml:lang, could be a resourcePropertyElt, a literalPropertyElt, + // or an emptyPropertyElt. Look at the child XML nodes to decide which. + if (xmlNode.childNodes.length > 0) { + + for (index in 0 until xmlNode.childNodes.length) { + + val currentChild = xmlNode.childNodes.item(index) + + if (currentChild !is Text) { + + parseRdfResourcePropertyElement(xmp, xmpParent, xmlNode, isTopLevel, options) + + return + } + } + + parseRdfLiteralPropertyElement(xmp, xmpParent, xmlNode, isTopLevel) + + } else + parseEmptyPropertyElement(xmp, xmpParent, xmlNode, isTopLevel) + } + } + + /** + * 7.2.15 resourcePropertyElt + * start-element ( URI == propertyElementURIs, attributes == set ( idAttr? ) ) + * ws* nodeElement ws* + * end-element() + * + * This handles structs using an rdf:Description node, + * arrays using rdf:Bag/Seq/Alt, and typedNodes. It also catches and cleans up qualified + * properties written with rdf:Description and rdf:value. + */ + private fun parseRdfResourcePropertyElement( + xmp: XMPMetaImpl, + xmpParent: XMPNode, + xmlNode: Element, + isTopLevel: Boolean, + options: ParseOptions + ) { + + // Strip old "punchcard" chaff which has on the prefix "iX:". + if (isTopLevel && "iX:changes" == xmlNode.nodeName) + return + + val newCompound = addChildNode(xmp, xmpParent, xmlNode, "", isTopLevel) + + // walk through the attributes + @Suppress("LoopWithTooManyJumpStatements") + for (index in 0 until xmlNode.attributes.length) { + + val attribute = xmlNode.attributes.item(index) as Attr + + if ("xmlns" == attribute.prefix || attribute.prefix == null && "xmlns" == attribute.nodeName) + continue + + if (XMPConst.XML_LANG == attribute.nodeName) + addQualifierNode(newCompound, XMPConst.XML_LANG, attribute.value) + else if ("ID" == attribute.localName && XMPConst.NS_RDF == attribute.namespaceURI) + continue // Ignore all rdf:ID attributes. + else + throw XMPException("Invalid attribute for resource property element", XMPError.BADRDF) + } + + // walk through the children + var found = false + + for (index in 0 until xmlNode.childNodes.length) { + + val currentChild = xmlNode.childNodes.item(index)!! + + if (!isWhitespaceNode(currentChild)) { + + if (currentChild is Element && !found) { + + val isRDF = XMPConst.NS_RDF == currentChild.namespaceURI + + val localName = currentChild.localName + + when { + + isRDF && "Bag" == localName -> + newCompound.options.setArray(true) + + isRDF && "Seq" == localName -> + newCompound.options.setArray(true).setArrayOrdered(true) + + isRDF && "Alt" == localName -> + newCompound.options.setArray(true).setArrayOrdered(true).setArrayAlternate(true) + + else -> { + + newCompound.options.setStruct(true) + + if (!isRDF && "Description" != localName) { + + var typeName = currentChild.namespaceURI + ?: throw XMPException( + "All XML elements must be in a namespace", XMPError.BADXMP + ) + + typeName += ":$localName" + + addQualifierNode(newCompound, "rdf:type", typeName) + } + } + } + + parseRdfNodeElement(xmp, newCompound, currentChild, false, options) + + if (newCompound.hasValueChild) + fixupQualifiedNode(newCompound) + else if (newCompound.options.isArrayAlternate()) + XMPNodeUtils.detectAltText(newCompound) + + found = true + + } else if (found) { + // found second child element + throw XMPException("Invalid child of resource property element", XMPError.BADRDF) + } else { + throw XMPException( + "Children of resource property element must be XML elements", XMPError.BADRDF + ) + } + } + } + + if (!found) + throw XMPException("Missing child of resource property element", XMPError.BADRDF) + } + + /** + * 7.2.16 literalPropertyElt + * start-element ( URI == propertyElementURIs, + * attributes == set ( idAttr?, datatypeAttr?) ) + * text() + * end-element() + * + * Add a leaf node with the text value and qualifiers for the attributes. + */ + private fun parseRdfLiteralPropertyElement( + xmp: XMPMetaImpl, + xmpParent: XMPNode, + xmlNode: Element, + isTopLevel: Boolean + ) { + + val newChild = addChildNode(xmp, xmpParent, xmlNode, null, isTopLevel) + + @Suppress("LoopWithTooManyJumpStatements") + for (index in 0 until xmlNode.attributes.length) { + + val attribute = xmlNode.attributes.item(index) as Attr + + if ("xmlns" == attribute.prefix || attribute.prefix == null && "xmlns" == attribute.nodeName) + continue + + if (XMPConst.XML_LANG == attribute.nodeName) + addQualifierNode(newChild, XMPConst.XML_LANG, attribute.value) + else if ( + XMPConst.NS_RDF == attribute.namespaceURI && + ("ID" == attribute.localName || "datatype" == attribute.localName) + ) + continue // Ignore all rdf:ID and rdf:datatype attributes. + else + throw XMPException("Invalid attribute for literal property element", XMPError.BADRDF) + } + + var textValue = "" + + for (index in 0 until xmlNode.childNodes.length) { + + val child = xmlNode.childNodes.item(index) + + if (child !is Text) + throw XMPException("Invalid child of literal property element", XMPError.BADRDF) + + textValue += child.data + } + + newChild.value = textValue + } + + /** + * 7.2.18 parseTypeResourcePropertyElt + * start-element ( URI == propertyElementURIs, + * attributes == set ( idAttr?, parseResource ) ) + * propertyEltList + * end-element() + * + * Add a new struct node with a qualifier for the possible rdf:ID attribute. + * Then process the XML child nodes to get the struct fields. + */ + private fun parseTypeResourcePropertyElement( + xmp: XMPMetaImpl, + xmpParent: XMPNode, + xmlNode: Element, + isTopLevel: Boolean, + options: ParseOptions + ) { + + val newStruct = addChildNode(xmp, xmpParent, xmlNode, "", isTopLevel) + + newStruct.options.setStruct(true) + + @Suppress("LoopWithTooManyJumpStatements") + for (index in 0 until xmlNode.attributes.length) { + + val attribute = xmlNode.attributes.item(index) as Attr + + if ("xmlns" == attribute.prefix || attribute.prefix == null && "xmlns" == attribute.nodeName) + continue + + if (XMPConst.XML_LANG == attribute.nodeName) { + addQualifierNode(newStruct, XMPConst.XML_LANG, attribute.value) + } else if ( + XMPConst.NS_RDF == attribute.namespaceURI && + ("ID" == attribute.localName || "parseType" == attribute.localName) + ) { + continue // The caller ensured the value is "Resource". Ignore all rdf:ID attributes. + } else { + throw XMPException( + "Invalid attribute for ParseTypeResource property element", XMPError.BADRDF + ) + } + } + + parseRdfPropertyElementList(xmp, newStruct, xmlNode, false, options) + + if (newStruct.hasValueChild) + fixupQualifiedNode(newStruct) + } + + /** + * 7.2.21 emptyPropertyElt + * start-element ( URI == propertyElementURIs, + * attributes == set ( + * idAttr?, ( resourceAttr | nodeIdAttr )?, propertyAttr* ) ) + * end-element() + * + * + * + * + * + * + * An emptyPropertyElt is an element with no contained content, just a possibly empty set of + * attributes. An emptyPropertyElt can represent three special cases of simple XMP properties: a + * simple property with an empty value (ns:Prop1), a simple property whose value is a URI + * (ns:Prop2), or a simple property with simple qualifiers (ns:Prop3). + * An emptyPropertyElt can also represent an XMP struct whose fields are all simple and + * unqualified (ns:Prop4). + * + * It is an error to use both rdf:value and rdf:resource - that can lead to invalid RDF in the + * verbose form written using a literalPropertyElt. + * + * The XMP mapping for an emptyPropertyElt is a bit different from generic RDF, partly for + * design reasons and partly for historical reasons. The XMP mapping rules are: + * + * 1. If there is an rdf:value attribute then this is a simple property with a text value. + * All other attributes are qualifiers. + * 2. If there is an rdf:resource attribute then this is a simple property with a URI value. + * All other attributes are qualifiers. + * 3. If there are no attributes other than xml:lang, rdf:ID, or rdf:nodeID then this is a simple + * property with an empty value. + * 4. Otherwise this is a struct, the attributes other than xml:lang, rdf:ID, or rdf:nodeID are fields. + */ + private fun parseEmptyPropertyElement( + xmp: XMPMetaImpl, + xmpParent: XMPNode, + xmlNode: Element, + isTopLevel: Boolean + ) { + + var hasPropertyAttrs = false + var hasResourceAttr = false + var hasNodeIDAttr = false + var hasValueAttr = false + var valueNode: Node? = null // ! Can come from rdf:value or rdf:resource. + + if (xmlNode.childNodes.length > 0) + throw XMPException( + "Nested content not allowed with rdf:resource or property attributes", XMPError.BADRDF + ) + + // First figure out what XMP this maps to and remember the XML node for a simple value. + for (index in 0 until xmlNode.attributes.length) { + + val attribute = xmlNode.attributes.item(index) as Attr + + if ("xmlns" == attribute.prefix || attribute.prefix == null && "xmlns" == attribute.nodeName) + continue + + val attrTerm = getRDFTermKind(attribute) + + when (attrTerm) { + + RDFTERM_ID -> { + /* Do nothing. */ + } + + RDFTERM_RESOURCE -> { + + if (hasNodeIDAttr) { + throw XMPException( + "Empty property element can't have both rdf:resource and rdf:nodeID", + XMPError.BADRDF + ) + } else if (hasValueAttr) { + throw XMPException( + "Empty property element can't have both rdf:value and rdf:resource", + XMPError.BADXMP + ) + } + + hasResourceAttr = true + + if (!hasValueAttr) + valueNode = attribute + } + + RDFTERM_NODE_ID -> { + + if (hasResourceAttr) { + throw XMPException( + "Empty property element can't have both rdf:resource and rdf:nodeID", + XMPError.BADRDF + ) + } + + hasNodeIDAttr = true + } + + RDFTERM_OTHER -> { + + if (attribute.localName == "value" && attribute.namespaceURI == XMPConst.NS_RDF) { + + if (hasResourceAttr) { + throw XMPException( + "Empty property element can't have both rdf:value and rdf:resource", + XMPError.BADXMP + ) + } + + hasValueAttr = true + valueNode = attribute + + } else if (XMPConst.XML_LANG != attribute.nodeName) { + + hasPropertyAttrs = true + } + } + + else -> + throw XMPException("Unrecognized attribute of empty property element", XMPError.BADRDF) + } + } + + // Create the right kind of child node and visit the attributes again + // to add the fields or qualifiers. + // ! Because of implementation vagaries, + // the xmpParent is the tree root for top level properties. + // ! The schema is found, created if necessary, by addChildNode. + val childNode = addChildNode(xmp, xmpParent, xmlNode, "", isTopLevel) + + var childIsStruct = false + + if (hasValueAttr || hasResourceAttr) { + + val valueNodeValue = when (valueNode) { + null -> null + is Attr -> valueNode.value + else -> throw XMPException("Unknown Node ${xmlNode.nodeType}", XMPError.BADXMP) + } + + childNode.value = valueNodeValue ?: "" + + // ! Might have both rdf:value and rdf:resource. + if (!hasValueAttr) + childNode.options.setURI(true) + + } else if (hasPropertyAttrs) { + childNode.options.setStruct(true) + childIsStruct = true + } + + for (index in 0 until xmlNode.attributes.length) { + + val attribute = xmlNode.attributes.item(index) as Attr + + if ( + attribute === valueNode || "xmlns" == attribute.prefix || + attribute.prefix == null && "xmlns" == attribute.nodeName + ) + continue // Skip the rdf:value or rdf:resource attribute holding the value. + + val attrTerm = getRDFTermKind(attribute) + + when (attrTerm) { + + RDFTERM_ID, RDFTERM_NODE_ID -> { + /* Do nothing. */ + } + + RDFTERM_RESOURCE -> + addQualifierNode(childNode, "rdf:resource", attribute.value) + + RDFTERM_OTHER -> { + + if (!childIsStruct) + addQualifierNode(childNode, attribute.nodeName, attribute.value) + else if (XMPConst.XML_LANG == attribute.nodeName) + addQualifierNode(childNode, XMPConst.XML_LANG, attribute.value) + else + addChildNode(xmp, childNode, attribute, attribute.value, false) + } + + else -> throw XMPException( + "Unrecognized attribute of empty property element", + XMPError.BADRDF + ) + } + } + } + + private fun addChildNode( + xmp: XMPMetaImpl, + xmpParent: XMPNode, + xmlNode: Node, + value: String?, + isTopLevel: Boolean + ): XMPNode { + + var actualXmpParent = xmpParent + + val registry = schemaRegistry + + var namespace = when (xmlNode) { + is Element -> xmlNode.namespaceURI + is Attr -> xmlNode.namespaceURI + else -> throw XMPException("Unknown Node ${xmlNode.nodeType}", XMPError.BADXMP) + } + + if (namespace.isNullOrEmpty()) + throw XMPException( + "XML namespace required for all elements and attributes: $xmlNode", + XMPError.BADRDF + ) + + // Fix a legacy DC namespace + if (XMPConst.NS_DC_DEPRECATED == namespace) + namespace = XMPConst.NS_DC + + var prefix = registry.getNamespacePrefix(namespace) + + if (prefix == null) { + + val xmlNodePrefix = when (xmlNode) { + is Element -> xmlNode.prefix + is Attr -> xmlNode.prefix + else -> throw XMPException("Unknown Node ${xmlNode.nodeType}", XMPError.BADXMP) + } + + prefix = if (xmlNodePrefix != null) + xmlNodePrefix + else + DEFAULT_PREFIX + + prefix = registry.registerNamespace(namespace, prefix) + } + + val xmlNodeLocalName = when (xmlNode) { + is Element -> xmlNode.localName + is Attr -> xmlNode.localName + else -> throw XMPException("Unknown Node ${xmlNode.nodeType}", XMPError.BADXMP) + } + + val childName = prefix + xmlNodeLocalName + + // create schema node if not already there + val childOptions = PropertyOptions() + + var isAlias = false + + if (isTopLevel) { + + // Lookup the schema node, adjust the XMP parent pointer. + // Incoming parent must be the tree root. + val schemaNode = XMPNodeUtils.findSchemaNode( + xmp.root, namespace, + DEFAULT_PREFIX, true + ) + + checkNotNull(schemaNode) { "SchemaNode should have been created." } + + schemaNode.isImplicit = false // Clear the implicit node bit. + + // *** Should use "opt &= ~flag" (no conditional), + // need runtime check for proper 32 bit code. + actualXmpParent = schemaNode + + // If this is an alias set the alias flag in the node + // and the hasAliases flag in the tree. + if (registry.findAlias(childName) != null) { + isAlias = true + xmp.root.hasAliases = true + schemaNode.hasAliases = true + } + } + + // Make sure that this is not a duplicate of a named node. + val isArrayItem = isNumberedArrayItemName(childName) + val isValueNode = "rdf:value" == childName + + // Create XMP node and so some checks + val newChild = XMPNode(childName, value, childOptions) + + newChild.isAlias = isAlias + + // Add the new child to the XMP parent node, a value node first. + if (!isValueNode) + actualXmpParent.addChild(newChild) + else + actualXmpParent.addChild(1, newChild) + + if (isValueNode) { + + if (isTopLevel || !actualXmpParent.options.isStruct()) + throw XMPException("Misplaced rdf:value element", XMPError.BADRDF) + + actualXmpParent.hasValueChild = true + } + + val isParentArray = actualXmpParent.options.isArray() + + when { + + isParentArray && isArrayItem -> + newChild.name = XMPConst.ARRAY_ITEM_NAME + + !isParentArray && isArrayItem -> + throw XMPException("Misplaced rdf:li element", XMPError.BADRDF) + + isParentArray && !isArrayItem -> + throw XMPException("Arrays cannot have arbitrary child names", XMPError.BADRDF) + } + + return newChild + } + + private fun addQualifierNode(xmpParent: XMPNode, name: String, value: String): XMPNode { + + val isLang = XMPConst.XML_LANG == name + + // normalize value of language qualifiers + val normalizedValue = if (isLang) + Utils.normalizeLangValue(value) + else + value + + val newQualifier = XMPNode(name, normalizedValue) + + xmpParent.addQualifier(newQualifier) + + return newQualifier + } + + /** + * The parent is an RDF pseudo-struct containing an rdf:value field. Fix the + * XMP data model. The rdf:value node must be the first child, the other + * children are qualifiers. The form, value, and children of the rdf:value + * node are the real ones. The rdf:value node's qualifiers must be added to + * the others. + */ + private fun fixupQualifiedNode(xmpParent: XMPNode) { + + require(xmpParent.options.isStruct() && xmpParent.hasChildren()) + + val valueNode = xmpParent.getChild(1) + + require("rdf:value" == valueNode.name) + + // Move the qualifiers on the value node to the parent. + // Make sure an xml:lang qualifier stays at the front. + // Check for duplicate names between the value node's qualifiers and the parent's children. + // The parent's children are about to become qualifiers. Check here, between the groups. + // Intra-group duplicates are caught by XMPNode#addChild(...). + + if (valueNode.options.hasLanguage()) { + + if (xmpParent.options.hasLanguage()) + throw XMPException("Redundant xml:lang for rdf:value element", XMPError.BADXMP) + + val langQual = valueNode.getQualifier(1) + + valueNode.removeQualifier(langQual) + + xmpParent.addQualifier(langQual) + } + + // Start the remaining copy after the xml:lang qualifier. + for (index in 1..valueNode.getQualifierLength()) { + + val qualifier = valueNode.getQualifier(index) + + xmpParent.addQualifier(qualifier) + } + + // Change the parent's other children into qualifiers. + // This loop starts at 1, child 0 is the rdf:value node. + for (index in 2..xmpParent.getChildrenLength()) { + + val qualifier = xmpParent.getChild(index) + + xmpParent.addQualifier(qualifier) + } + + check(xmpParent.options.isStruct() || xmpParent.hasValueChild) + + xmpParent.hasValueChild = false + xmpParent.options.setStruct(false) + xmpParent.options.mergeWith(valueNode.options) + xmpParent.value = valueNode.value + xmpParent.removeChildren() + + for (child in valueNode.getChildren()) + xmpParent.addChild(child) + } + + /** + * Checks if the node is a white space. + * + * @param node an XML-node + * @return Returns whether the node is a whitespace node, i.e. a text node that contains only whitespaces. + */ + private fun isWhitespaceNode(node: Node): Boolean { + + if (node !is Text) + return false + + val value = node.data + + for (index in 0 until value.length) + if (!value[index].isWhitespace()) + return false + + return true + } + + /** + * 7.2.6 propertyElementURIs + * anyURI - ( coreSyntaxTerms | rdf:Description | oldTerms ) + */ + private fun isPropertyElementName(term: Int): Boolean { + + if (term == RDFTERM_DESCRIPTION || isOldTerm(term)) + return false + + return !isCoreSyntaxTerm(term) + } + + /** + * 7.2.4 oldTerms

+ * rdf:aboutEach | rdf:aboutEachPrefix | rdf:bagID + * + * @param term the term id + * @return Returns true if the term is an old term. + */ + private fun isOldTerm(term: Int): Boolean = + RDFTERM_FIRST_OLD <= term && term <= RDFTERM_LAST_OLD + + /** + * 7.2.2 coreSyntaxTerms

+ * rdf:RDF | rdf:ID | rdf:about | rdf:parseType | rdf:resource | rdf:nodeID | + * rdf:datatype + * + * @param term the term id + * @return Return true if the term is a core syntax term + */ + private fun isCoreSyntaxTerm(term: Int): Boolean = + RDFTERM_FIRST_CORE <= term && term <= RDFTERM_LAST_CORE + + /** + * Determines the ID for a certain RDF Term. + * Arranged to hopefully minimize the parse time for large XMP. + * + * @param node an XML node + * @return Returns the term ID. + */ + private fun getRDFTermKind(node: Node): Int { + + val nodeName = node.nodeName + + var namespace = when (node) { + is Element -> node.namespaceURI + is Attr -> node.namespaceURI + else -> throw XMPException("Unknown Node ${node.nodeType}", XMPError.BADXMP) + } + + if (namespace == null && + ("about" == nodeName || "ID" == nodeName) && + node is Attr && XMPConst.NS_RDF == node.ownerElement?.namespaceURI + ) { + namespace = XMPConst.NS_RDF + } + + if (namespace == XMPConst.NS_RDF) { + + when (nodeName) { + + "rdf:li" -> + return RDFTERM_LI + + "parseType" -> + return RDFTERM_PARSE_TYPE + + "rdf:Description" -> + return RDFTERM_DESCRIPTION + + "rdf:about" -> + return RDFTERM_ABOUT + + "resource" -> + return RDFTERM_RESOURCE + + "rdf:RDF" -> + return RDFTERM_RDF + + "ID" -> + return RDFTERM_ID + + "nodeID" -> + return RDFTERM_NODE_ID + + "datatype" -> + return RDFTERM_DATATYPE + + "aboutEach" -> + return RDFTERM_ABOUT_EACH + + "aboutEachPrefix" -> + return RDFTERM_ABOUT_EACH_PREFIX + + "bagID" -> + return RDFTERM_BAG_ID + } + } + + return RDFTERM_OTHER + } + + private fun isNumberedArrayItemName(nodeName: String): Boolean { + + var result = "rdf:li" == nodeName + + if (nodeName.startsWith("rdf:_")) { + + result = true + + for (i in 5 until nodeName.length) + result = result && nodeName[i] >= '0' && nodeName[i] <= '9' + } + + return result + } +} diff --git a/src/commonMain/kotlin/com/ashampoo/xmp/impl/XMPRDFWriter.kt b/src/commonMain/kotlin/com/ashampoo/xmp/impl/XMPRDFWriter.kt new file mode 100644 index 0000000..2212624 --- /dev/null +++ b/src/commonMain/kotlin/com/ashampoo/xmp/impl/XMPRDFWriter.kt @@ -0,0 +1,993 @@ +// ================================================================================================= +// ADOBE SYSTEMS INCORPORATED +// Copyright 2006 Adobe Systems Incorporated +// All Rights Reserved +// +// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms +// of the Adobe license agreement accompanying it. +// ================================================================================================= +package com.ashampoo.xmp.impl + +import com.ashampoo.xmp.XMPConst +import com.ashampoo.xmp.XMPError +import com.ashampoo.xmp.XMPException +import com.ashampoo.xmp.XMPMetaFactory.schemaRegistry +import com.ashampoo.xmp.XMPMetaFactory.versionInfo +import com.ashampoo.xmp.impl.Utils.escapeXML +import com.ashampoo.xmp.options.SerializeOptions + +/** + * Serializes the `XMPMeta`-object using the standard RDF serialization format. + * The output is a XMP String according to the `SerializeOptions`. + */ +internal class XMPRDFWriter( + val xmp: XMPMetaImpl, + val options: SerializeOptions +) { + + private val sb: StringBuilder = StringBuilder() + + /** + * The actual serialization. + */ + fun serialize(): String { + + try { + + sb.clear() + + serializeAsRDF() + + return sb.toString() + + } catch (ex: Exception) { + throw XMPException("Error writing the XMP", XMPError.UNKNOWN, ex) + } + } + + /** + * Writes the (optional) packet header and the outer rdf-tags. + */ + private fun serializeAsRDF() { + + var level = 0 + + // Write the packet header PI. + if (!options.getOmitPacketWrapper()) { + writeIndent(level) + write(PACKET_HEADER) + writeNewline() + } + + // Write the x:xmpmeta element's start tag. + if (!options.getOmitXmpMetaElement()) { + + writeIndent(level) + write(RDF_XMPMETA_START) + write(versionInfo.message) + write("\">") + writeNewline() + + level++ + } + + // Write the rdf:RDF start tag. + writeIndent(level) + write(RDF_RDF_START) + writeNewline() + + // Write all of the properties. + if (options.getUseCanonicalFormat()) + serializeCanonicalRDFSchemas(level) + else + serializeCompactRDFSchemas(level) + + // Write the rdf:RDF end tag. + writeIndent(level) + write(RDF_RDF_END) + writeNewline() + + // Write the xmpmeta end tag. + if (!options.getOmitXmpMetaElement()) { + + level-- + + writeIndent(level) + write(RDF_XMPMETA_END) + writeNewline() + } + + // Write the packet trailer PI into the tail string as UTF-8. + var tailStr = "" + + if (!options.getOmitPacketWrapper()) { + + level = 0 + + while (level > 0) { + tailStr += XMP_DEFAULT_INDENT + level-- + } + + tailStr += PACKET_TRAILER + tailStr += if (options.getReadOnlyPacket()) 'r' else 'w' + tailStr += PACKET_TRAILER2 + } + + write(tailStr) + } + + /** + * Serializes the metadata in pretty-printed manner. + * + * @param level indent level + */ + private fun serializeCanonicalRDFSchemas(level: Int) { + + if (xmp.root.hasChildren()) { + + startOuterRDFDescription(xmp.root, level) + + for (schema in xmp.root.getChildren()) + serializeCanonicalRDFSchema(schema, level) + + endOuterRDFDescription(level) + + } else { + + writeIndent(level + 1) + write(RDF_SCHEMA_START) // Special case an empty XMP object. + writeTreeName() + write("/>") + writeNewline() + } + } + + private fun writeTreeName() { + + write('"') + + val name = xmp.root.name + + if (name != null) + appendNodeValue(name, true) + + write('"') + } + + /** + * Serializes the metadata in compact manner. + * + * @param level indent level to start with + */ + private fun serializeCompactRDFSchemas(level: Int) { + + // Begin the rdf:Description start tag. + writeIndent(level + 1) + write(RDF_SCHEMA_START) + writeTreeName() + + // Write all necessary xmlns attributes. + val usedPrefixes: MutableSet = mutableSetOf() + usedPrefixes.add("xml") + usedPrefixes.add("rdf") + + for (schema in xmp.root.getChildren()) + declareUsedNamespaces(schema, usedPrefixes, level + 3) + + // Write the top level "attrProps" and close the rdf:Description start tag. + var allAreAttrs = true + + for (schema in xmp.root.getChildren()) + allAreAttrs = allAreAttrs and serializeCompactRDFAttrProps(schema, level + 2) + + if (!allAreAttrs) { + + write('>') + writeNewline() + + } else { + + write("/>") + writeNewline() + return // ! Done if all properties in all schema are written as attributes. + } + + // Write the remaining properties for each schema. + for (schema in xmp.root.getChildren()) + serializeCompactRDFElementProps(schema, level + 2) + + // Write the rdf:Description end tag. + // *** Elide the end tag if everything (all props in all schema) is an attr. + writeIndent(level + 1) + write(RDF_SCHEMA_END) + writeNewline() + } + + /** + * Write each of the parent's simple unqualified properties as an attribute. Returns true if all + * of the properties are written as attributes. + * + * @param parentNode the parent property node + * @param indent the current indent level + * @return Returns true if all properties can be rendered as RDF attribute. + */ + private fun serializeCompactRDFAttrProps(parentNode: XMPNode, indent: Int): Boolean { + + var allAreAttrs = true + + for (prop in parentNode.getChildren()) { + + if (canBeRDFAttrProp(prop)) { + + writeNewline() + writeIndent(indent) + write(prop.name!!) + write("=\"") + appendNodeValue(prop.value, true) + write('"') + + } else { + + allAreAttrs = false + } + } + + return allAreAttrs + } + + /** + * Recursively handles the "value" for a node that must be written as an RDF + * property element. It does not matter if it is a top level property, a + * field of a struct, or an item of an array. The indent is that for the + * property element. The patterns bwlow ignore attribute qualifiers such as + * xml:lang, they don't affect the output form. + * + * @param parentNode the parent node + * @param indent the current indent level + */ + private fun serializeCompactRDFElementProps(parentNode: XMPNode, indent: Int) { + + for (node in parentNode.getChildren()) { + + if (canBeRDFAttrProp(node)) + continue + + var emitEndTag = true + var indentEndTag = true + + // Determine the XML element name, write the name part of the start tag. Look over the + // qualifiers to decide on "normal" versus "rdf:value" form. Emit the attribute + // qualifiers at the same time. + var elemName = node.name + + if (XMPConst.ARRAY_ITEM_NAME == elemName) + elemName = "rdf:li" + + writeIndent(indent) + write('<') + write(elemName!!) + + var hasGeneralQualifiers = false + var hasRDFResourceQual = false + + for (qualifier in node.getQualifier()) { + + if (!RDF_ATTR_QUALIFIER.contains(qualifier.name)) { + + hasGeneralQualifiers = true + + } else { + + hasRDFResourceQual = "rdf:resource" == qualifier.name + write(' ') + write(qualifier.name!!) + write("=\"") + appendNodeValue(qualifier.value, true) + write('"') + } + } + + // Process the property according to the standard patterns. + if (hasGeneralQualifiers) { + + serializeCompactRDFGeneralQualifier(indent, node) + + } else { + + // This node has only attribute qualifiers. Emit as a property element. + if (!node.options.isCompositeProperty()) { + + val result = serializeCompactRDFSimpleProp(node) + + emitEndTag = result[0] as Boolean + indentEndTag = result[1] as Boolean + + } else if (node.options.isArray()) { + + serializeCompactRDFArrayProp(node, indent) + + } else { + + emitEndTag = serializeCompactRDFStructProp(node, indent, hasRDFResourceQual) + } + } + + // Emit the property element end tag. + if (emitEndTag) { + + if (indentEndTag) + writeIndent(indent) + + write("') + writeNewline() + } + } + } + + /** + * Serializes a simple property. + * + * @param node an XMPNode + * @return Returns an array containing the flags emitEndTag and indentEndTag. + */ + private fun serializeCompactRDFSimpleProp(node: XMPNode): Array { + + // This is a simple property. + var emitEndTag = true + var indentEndTag = true + + if (node.options.isURI()) { + + write(" rdf:resource=\"") + appendNodeValue(node.value, true) + write("\"/>") + writeNewline() + emitEndTag = false + + } else if (node.value == null || node.value?.length == 0) { + + write("/>") + writeNewline() + emitEndTag = false + + } else { + + write('>') + appendNodeValue(node.value, false) + indentEndTag = false + } + + return arrayOf(emitEndTag, indentEndTag) + } + + /** + * Serializes an array property. + * + * @param node an XMPNode + * @param indent the current indent level + */ + private fun serializeCompactRDFArrayProp(node: XMPNode, indent: Int) { + + // This is an array. + write('>') + writeNewline() + emitRDFArrayTag(node, true, indent + 1) + + if (node.options.isArrayAltText()) + XMPNodeUtils.normalizeLangArray(node) + + serializeCompactRDFElementProps(node, indent + 2) + emitRDFArrayTag(node, false, indent + 1) + } + + /** + * Serializes a struct property. + * + * @param node an XMPNode + * @param indent the current indent level + * @param hasRDFResourceQual Flag if the element has resource qualifier + * @return Returns true if an end flag shall be emitted. + */ + private fun serializeCompactRDFStructProp( + node: XMPNode, + indent: Int, + hasRDFResourceQual: Boolean + ): Boolean { + + // This must be a struct. + var hasAttrFields = false + var hasElemFields = false + var emitEndTag = true + + for (field in node.getChildren()) { + + if (canBeRDFAttrProp(field)) + hasAttrFields = true + else + hasElemFields = true + + if (hasAttrFields && hasElemFields) + break // No sense looking further. + } + + if (hasRDFResourceQual && hasElemFields) + throw XMPException("Can't mix rdf:resource qualifier and element fields", XMPError.BADRDF) + + when { + + !node.hasChildren() -> { + + // Catch an empty struct as a special case. The case + // below would emit an empty + // XML element, which gets reparsed as a simple property + // with an empty value. + write(" rdf:parseType=\"Resource\"/>") + writeNewline() + emitEndTag = false + } + + !hasElemFields -> { + + // All fields can be attributes, use the + // emptyPropertyElt form. + serializeCompactRDFAttrProps(node, indent + 1) + write("/>") + writeNewline() + emitEndTag = false + } + + !hasAttrFields -> { + + // All fields must be elements, use the + // parseTypeResourcePropertyElt form. + write(" rdf:parseType=\"Resource\">") + writeNewline() + serializeCompactRDFElementProps(node, indent + 1) + } + + else -> { + + // Have a mix of attributes and elements, use an inner rdf:Description. + write('>') + writeNewline() + writeIndent(indent + 1) + write(RDF_STRUCT_START) + serializeCompactRDFAttrProps(node, indent + 2) + write(">") + writeNewline() + serializeCompactRDFElementProps(node, indent + 1) + writeIndent(indent + 1) + write(RDF_STRUCT_END) + writeNewline() + } + } + + return emitEndTag + } + + /** + * Serializes the general qualifier. + * + * @param node the root node of the subtree + * @param indent the current indent level + */ + private fun serializeCompactRDFGeneralQualifier(indent: Int, node: XMPNode) { + + // The node has general qualifiers, ones that can't be + // attributes on a property element. + // Emit using the qualified property pseudo-struct form. The + // value is output by a call + // to SerializePrettyRDFProperty with emitAsRDFValue set. + + // *** We're losing compactness in the calls to SerializePrettyRDFProperty. + // *** Should refactor to have SerializeCompactRDFProperty that does one node. + write(" rdf:parseType=\"Resource\">") + writeNewline() + serializeCanonicalRDFProperty(node, false, true, indent + 1) + + for (qualifier in node.getQualifier()) + serializeCanonicalRDFProperty(qualifier, false, false, indent + 1) + } + + /** + * Serializes one schema with all contained properties in pretty-printed + * manner. + * + * Each schema's properties are written to a single + * rdf:Description element. All of the necessary namespaces are declared in + * the rdf:Description element. The baseIndent is the base level for the + * entire serialization, that of the x:xmpmeta element. An xml:lang + * qualifier is written as an attribute of the property start tag, not by + * itself forcing the qualified property form. + */ + private fun serializeCanonicalRDFSchema(schemaNode: XMPNode, level: Int) { + + // Write each of the schema's actual properties. + + for (propNode in schemaNode.getChildren()) + serializeCanonicalRDFProperty(propNode, options.getUseCanonicalFormat(), false, level + 2) + } + + /** + * Writes all used namespaces of the subtree in node to the output. + * The subtree is recursivly traversed. + */ + private fun declareUsedNamespaces(node: XMPNode, usedPrefixes: MutableSet, indent: Int) { + + if (node.options.isSchemaNode()) { + + // The schema node name is the URI, the value is the prefix. + val prefix = node.value!!.substring(0, node.value!!.length - 1) + declareNamespace(prefix, node.name, usedPrefixes, indent) + + } else if (node.options.isStruct()) { + + for (field in node.getChildren()) + declareNamespace(field.name!!, null, usedPrefixes, indent) + } + + for (child in node.getChildren()) + declareUsedNamespaces(child, usedPrefixes, indent) + + for (qualifier in node.getQualifier()) { + + declareNamespace(qualifier.name!!, null, usedPrefixes, indent) + declareUsedNamespaces(qualifier, usedPrefixes, indent) + } + } + + /** + * Writes one namespace declaration to the output. + * + * @param prefix a namespace prefix (without colon) or a complete qname (when namespace == null) + * @param namespace the a namespace + * @param usedPrefixes a set containing currently used prefixes + * @param indent the current indent level + */ + private fun declareNamespace( + prefix: String, + namespace: String?, + usedPrefixes: MutableSet, + indent: Int + ) { + + var prefix = prefix + var namespace = namespace + + if (namespace == null) { + + // prefix contains qname, extract prefix and lookup namespace with prefix + val qname = QName(prefix) + + if (!qname.hasPrefix()) + return + + prefix = qname.prefix!! + + // add colon for lookup + namespace = schemaRegistry.getNamespaceURI("$prefix:") + + // prefix w/o colon + declareNamespace(prefix, namespace, usedPrefixes, indent) + } + + if (!usedPrefixes.contains(prefix)) { + + writeNewline() + writeIndent(indent) + write("xmlns:") + write(prefix) + write("=\"") + write(namespace!!) + write('"') + + usedPrefixes.add(prefix) + } + } + + /** + * Start the outer rdf:Description element, including all needed xmlns attributes. + * Leave the element open so that the compact form can add property attributes. + */ + private fun startOuterRDFDescription(schemaNode: XMPNode, level: Int) { + + writeIndent(level + 1) + write(RDF_SCHEMA_START) + writeTreeName() + + val usedPrefixes: MutableSet = mutableSetOf() + usedPrefixes.add("xml") + usedPrefixes.add("rdf") + + declareUsedNamespaces(schemaNode, usedPrefixes, level + 3) + + write('>') + writeNewline() + } + + /** + * Write the end tag. + */ + private fun endOuterRDFDescription(level: Int) { + + writeIndent(level + 1) + write(RDF_SCHEMA_END) + writeNewline() + } + + /** + * Recursively handles the "value" for a node. It does not matter if it is a + * top level property, a field of a struct, or an item of an array. The + * indent is that for the property element. An xml:lang qualifier is written + * as an attribute of the property start tag, not by itself forcing the + * qualified property form. The patterns below mostly ignore attribute + * qualifiers like xml:lang. Except for the one struct case, attribute + * qualifiers don't affect the output form. + * + * @param node the property node + * @param emitAsRDFValue property shall be rendered as attribute rather than tag + * @param useCanonicalRDF use canonical form with inner description tag or + * the compact form with rdf:ParseType="resource" attribute. + * @param indent the current indent level + */ + private fun serializeCanonicalRDFProperty( + node: XMPNode, + useCanonicalRDF: Boolean, + emitAsRDFValue: Boolean, + indent: Int + ) { + + var indent = indent + var emitEndTag = true + var indentEndTag = true + + // Determine the XML element name. Open the start tag with the name and + // attribute qualifiers. + var elemName = node.name + + if (emitAsRDFValue) + elemName = "rdf:value" + else if (XMPConst.ARRAY_ITEM_NAME == elemName) + elemName = "rdf:li" + + writeIndent(indent) + write('<') + write(elemName!!) + + var hasGeneralQualifiers = false + var hasRDFResourceQual = false + + val it = node.iterateQualifier() + + while (it.hasNext()) { + + val qualifier = it.next() + + if (!RDF_ATTR_QUALIFIER.contains(qualifier.name)) { + + hasGeneralQualifiers = true + + } else { + + hasRDFResourceQual = "rdf:resource" == qualifier.name + + if (!emitAsRDFValue) { + + write(' ') + write(qualifier.name!!) + write("=\"") + appendNodeValue(qualifier.value, true) + write('"') + } + } + } + + // Process the property according to the standard patterns. + if (hasGeneralQualifiers && !emitAsRDFValue) { + + // This node has general, non-attribute, qualifiers. Emit using the + // qualified property form. + // ! The value is output by a recursive call ON THE SAME NODE with + // emitAsRDFValue set. + if (hasRDFResourceQual) + throw XMPException("Can't mix rdf:resource and general qualifiers", XMPError.BADRDF) + + // Change serialization to canonical format with inner rdf:Description-tag + // depending on option + if (useCanonicalRDF) { + + write(">") + writeNewline() + indent++ + writeIndent(indent) + write(RDF_STRUCT_START) + write(">") + + } else { + write(" rdf:parseType=\"Resource\">") + } + + writeNewline() + + serializeCanonicalRDFProperty(node, useCanonicalRDF, true, indent + 1) + + for (qualifier in node.getQualifier()) + if (!RDF_ATTR_QUALIFIER.contains(qualifier.name)) + serializeCanonicalRDFProperty(qualifier, useCanonicalRDF, false, indent + 1) + + if (useCanonicalRDF) { + + writeIndent(indent) + write(RDF_STRUCT_END) + writeNewline() + indent-- + } + + } else { + + // This node has no general qualifiers. Emit using an unqualified form. + when { + + !node.options.isCompositeProperty() -> { + + // This is a simple property. + if (node.options.isURI()) { + + write(" rdf:resource=\"") + appendNodeValue(node.value, true) + write("\"/>") + writeNewline() + + emitEndTag = false + + } else if (node.value == null || "" == node.value) { + + write("/>") + writeNewline() + + emitEndTag = false + + } else { + + write('>') + appendNodeValue(node.value, false) + + indentEndTag = false + } + + } + + node.options.isArray() -> { + + // This is an array. + write('>') + writeNewline() + emitRDFArrayTag(node, true, indent + 1) + + if (node.options.isArrayAltText()) + XMPNodeUtils.normalizeLangArray(node) + + for (child in node.getChildren()) + serializeCanonicalRDFProperty(child, useCanonicalRDF, false, indent + 2) + + emitRDFArrayTag(node, false, indent + 1) + } + + !hasRDFResourceQual -> { + + // This is a "normal" struct, use the rdf:parseType="Resource" form. + if (!node.hasChildren()) { + + // Change serialization to canonical format with inner rdf:Description-tag + // if option is set + if (useCanonicalRDF) { + + write(">") + writeNewline() + writeIndent(indent + 1) + write(RDF_EMPTY_STRUCT) + + } else { + + write(" rdf:parseType=\"Resource\"/>") + + emitEndTag = false + } + + writeNewline() + + } else { + + // Change serialization to canonical format with inner rdf:Description-tag + // if option is set + if (useCanonicalRDF) { + + write(">") + writeNewline() + indent++ + writeIndent(indent) + write(RDF_STRUCT_START) + write(">") + + } else { + + write(" rdf:parseType=\"Resource\">") + } + + writeNewline() + + for (child in node.getChildren()) + serializeCanonicalRDFProperty(child, useCanonicalRDF, false, indent + 1) + + if (useCanonicalRDF) { + writeIndent(indent) + write(RDF_STRUCT_END) + writeNewline() + indent-- + } + } + + } + + else -> { + + // This is a struct with an rdf:resource attribute, use the "empty property element" form. + + for (child in node.getChildren()) { + + if (!canBeRDFAttrProp(child)) + throw XMPException("Can't mix rdf:resource and complex fields", XMPError.BADRDF) + + writeNewline() + writeIndent(indent + 1) + write(' ') + write(child.name!!) + write("=\"") + appendNodeValue(child.value, true) + write('"') + } + + write("/>") + writeNewline() + + emitEndTag = false + } + } + } + + // Emit the property element end tag. + if (emitEndTag) { + + if (indentEndTag) + writeIndent(indent) + + write("') + writeNewline() + } + } + + /** + * Writes the array start and end tags. + * + * @param arrayNode an array node + * @param isStartTag flag if its the start or end tag + * @param indent the current indent level + */ + private fun emitRDFArrayTag(arrayNode: XMPNode, isStartTag: Boolean, indent: Int) { + + if (isStartTag || arrayNode.hasChildren()) { + + writeIndent(indent) + + write(if (isStartTag) "") + else + write(">") + + writeNewline() + } + } + + /** + * Serializes the node value in XML encoding. Its used for tag bodies and + * attributes. *Note:* The attribute is always limited by quotes, + * thats why `'` is never serialized. *Note:* + * Control chars are written unescaped, but if the user uses others than tab, LF + * and CR the resulting XML will become invalid. + * + * @param value the value of the node + * @param forAttribute flag if value is an attribute value + * + */ + private fun appendNodeValue(value: String?, forAttribute: Boolean) = + write(escapeXML(value ?: "", forAttribute, true)) + + /** + * A node can be serialized as RDF-Attribute, if it meets the following conditions: + * + * * is not array item + * * don't has qualifier + * * is no URI + * * is no composite property + * + * @param node an XMPNode + * @return Returns true if the node serialized as RDF-Attribute + */ + private fun canBeRDFAttrProp(node: XMPNode): Boolean = + !node.hasQualifier() && !node.options.isURI() && !node.options.isCompositeProperty() && + XMPConst.ARRAY_ITEM_NAME != node.name + + private fun writeIndent(times: Int) = + repeat(times) { sb.append(XMP_DEFAULT_INDENT) } + + private fun write(c: Char) = + sb.append(c) + + private fun write(str: String) = + sb.append(str) + + /** + * Writes a newline. + */ + private fun writeNewline() { + sb.append(XMP_DEFAULT_NEWLINE) + } + + companion object { + + /** linefeed (U+000A) is the standard XML line terminator. XMP defaults to it. */ + const val XMP_DEFAULT_NEWLINE = "\n" + + /** Two ASCII spaces (U+0020) are the default indent for XMP files. */ + const val XMP_DEFAULT_INDENT = " " + + private const val PACKET_HEADER = "" + + /** + * The w/r is missing inbetween + */ + private const val PACKET_TRAILER = "" + + private const val RDF_XMPMETA_START = "" + + private const val RDF_RDF_END = "" + + private const val RDF_SCHEMA_START = "" + + private const val RDF_STRUCT_START = " = setOf( + XMPConst.XML_LANG, "rdf:resource", "rdf:ID", "rdf:bagID", "rdf:nodeID" + ) + } +} diff --git a/src/commonMain/kotlin/com/ashampoo/xmp/impl/XMPSchemaRegistryImpl.kt b/src/commonMain/kotlin/com/ashampoo/xmp/impl/XMPSchemaRegistryImpl.kt new file mode 100644 index 0000000..4602af0 --- /dev/null +++ b/src/commonMain/kotlin/com/ashampoo/xmp/impl/XMPSchemaRegistryImpl.kt @@ -0,0 +1,613 @@ +// ================================================================================================= +// ADOBE SYSTEMS INCORPORATED +// Copyright 2006 Adobe Systems Incorporated +// All Rights Reserved +// +// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms +// of the Adobe license agreement accompanying it. +// ================================================================================================= +package com.ashampoo.xmp.impl + +import com.ashampoo.xmp.XMPConst +import com.ashampoo.xmp.XMPError +import com.ashampoo.xmp.XMPException +import com.ashampoo.xmp.XMPSchemaRegistry +import com.ashampoo.xmp.impl.Utils.isXMLNameNS +import com.ashampoo.xmp.options.AliasOptions +import com.ashampoo.xmp.properties.XMPAliasInfo + +/** + * The schema registry handles the namespaces, aliases and global options for the XMP Toolkit. + * There is only one single instance used by the toolkit. + */ +object XMPSchemaRegistryImpl : XMPSchemaRegistry { + + /** + * a map from a namespace URI to its registered prefix + */ + private val namespaceToPrefixMap: MutableMap = mutableMapOf() + + /** + * a map from a prefix to the associated namespace URI + */ + private val prefixToNamespaceMap: MutableMap = mutableMapOf() + + /** + * a map of all registered aliases. + * The map is a relationship from a qname to an `XMPAliasInfo`-object. + */ + private val aliasMap: MutableMap = mutableMapOf() + + /** + * The pattern that must not be contained in simple properties + */ + private val simpleProperyPattern = Regex("[/*?\\[\\]]") + + /** + * Performs the initialisation of the registry with the default namespaces, aliases and global + * options. + */ + init { + try { + + registerStandardNamespaces() + registerStandardAliases() + + } catch (ex: XMPException) { + throw IllegalStateException("The XMPSchemaRegistry cannot be initialized!", ex) + } + } + + // --------------------------------------------------------------------------------------------- + // Namespace Functions + + override fun registerNamespace(namespaceURI: String, suggestedPrefix: String): String { + + var suggestedPrefix = suggestedPrefix + + if (namespaceURI.isEmpty()) + throw XMPException("Empty schema namespace URI", XMPError.BADPARAM) + + if (suggestedPrefix.isEmpty()) + throw XMPException("Empty prefix", XMPError.BADPARAM) + + if (suggestedPrefix[suggestedPrefix.length - 1] != ':') + suggestedPrefix += ':' + + if (!isXMLNameNS(suggestedPrefix.substring(0, suggestedPrefix.length - 1))) + throw XMPException("The prefix is a bad XML name", XMPError.BADXML) + + val registeredPrefix = namespaceToPrefixMap[namespaceURI] + val registeredNS = prefixToNamespaceMap[suggestedPrefix] + + // Return the actual prefix + if (registeredPrefix != null) + return registeredPrefix + + if (registeredNS != null) { + + // the namespace is new, but the prefix is already engaged, + // we generate a new prefix out of the suggested + var generatedPrefix = suggestedPrefix + + var i = 1 + + while (prefixToNamespaceMap.containsKey(generatedPrefix)) { + generatedPrefix = + suggestedPrefix.substring(0, suggestedPrefix.length - 1) + "_" + i + "_:" + i++ + } + + suggestedPrefix = generatedPrefix + } + + prefixToNamespaceMap[suggestedPrefix] = namespaceURI + namespaceToPrefixMap[namespaceURI] = suggestedPrefix + + // Return the suggested prefix + return suggestedPrefix + } + + override fun deleteNamespace(namespaceURI: String) { + + val prefixToDelete = getNamespacePrefix(namespaceURI) ?: return + + namespaceToPrefixMap.remove(namespaceURI) + prefixToNamespaceMap.remove(prefixToDelete) + } + + override fun getNamespacePrefix(namespaceURI: String): String? = + namespaceToPrefixMap[namespaceURI] + + override fun getNamespaceURI(namespacePrefix: String): String? { + + var namespacePrefix = namespacePrefix + + if (!namespacePrefix.endsWith(":")) + namespacePrefix += ":" + + return prefixToNamespaceMap[namespacePrefix] + } + + override fun getNamespaces(): Map = + namespaceToPrefixMap + + override fun getPrefixes(): Map = + prefixToNamespaceMap + + /** + * Register the standard namespaces of schemas and types that are included in the XMP + * Specification and some other Adobe private namespaces. + * Note: This method is not lock because only called by the constructor. + */ + private fun registerStandardNamespaces() { + + // register standard namespaces + registerNamespace(XMPConst.NS_XML, "xml") + registerNamespace(XMPConst.NS_RDF, "rdf") + registerNamespace(XMPConst.NS_DC, "dc") + registerNamespace(XMPConst.NS_IPTCCORE, "Iptc4xmpCore") + registerNamespace(XMPConst.NS_IPTCEXT, "Iptc4xmpExt") + registerNamespace(XMPConst.NS_DICOM, "DICOM") + registerNamespace(XMPConst.NS_PLUS, "plus") + + // register other common schemas + registerNamespace(XMPConst.NS_MWG_RS, "mwg-rs") + registerNamespace(XMPConst.NS_ACDSEE, "acdsee") + + // register Adobe standard namespaces + registerNamespace(XMPConst.NS_X, "x") + registerNamespace(XMPConst.NS_IX, "iX") + registerNamespace(XMPConst.NS_XMP, "xmp") + registerNamespace(XMPConst.NS_XMP_RIGHTS, "xmpRights") + registerNamespace(XMPConst.NS_XMP_MM, "xmpMM") + registerNamespace(XMPConst.NS_XMP_BJ, "xmpBJ") + registerNamespace(XMPConst.NS_XMP_NOTE, "xmpNote") + registerNamespace(XMPConst.NS_PDF, "pdf") + registerNamespace(XMPConst.NS_PDFX, "pdfx") + registerNamespace(XMPConst.NS_PDFX_ID, "pdfxid") + registerNamespace(XMPConst.NS_PDFA_SCHEMA, "pdfaSchema") + registerNamespace(XMPConst.NS_PDFA_PROPERTY, "pdfaProperty") + registerNamespace(XMPConst.NS_PDFA_TYPE, "pdfaType") + registerNamespace(XMPConst.NS_PDFA_FIELD, "pdfaField") + registerNamespace(XMPConst.NS_PDFA_ID, "pdfaid") + registerNamespace(XMPConst.NS_PDFA_EXTENSION, "pdfaExtension") + registerNamespace(XMPConst.NS_PHOTOSHOP, "photoshop") + registerNamespace(XMPConst.NS_PSALBUM, "album") + registerNamespace(XMPConst.NS_EXIF, "exif") + registerNamespace(XMPConst.NS_EXIFX, "exifEX") + registerNamespace(XMPConst.NS_EXIF_AUX, "aux") + registerNamespace(XMPConst.NS_TIFF, "tiff") + registerNamespace(XMPConst.NS_PNG, "png") + registerNamespace(XMPConst.NS_JPEG, "jpeg") + registerNamespace(XMPConst.NS_JP2K, "jp2k") + registerNamespace(XMPConst.NS_CAMERARAW, "crs") + registerNamespace(XMPConst.NS_ADOBESTOCKPHOTO, "bmsp") + registerNamespace(XMPConst.NS_CREATOR_ATOM, "creatorAtom") + registerNamespace(XMPConst.NS_ASF, "asf") + registerNamespace(XMPConst.NS_WAV, "wav") + registerNamespace(XMPConst.NS_BWF, "bext") + registerNamespace(XMPConst.NS_RIFFINFO, "riffinfo") + registerNamespace(XMPConst.NS_SCRIPT, "xmpScript") + registerNamespace(XMPConst.NS_TXMP, "txmp") + registerNamespace(XMPConst.NS_SWF, "swf") + + // register Adobe private namespaces + registerNamespace(XMPConst.NS_DM, "xmpDM") + registerNamespace(XMPConst.NS_TRANSIENT, "xmpx") + + // register Adobe standard type namespaces + registerNamespace(XMPConst.TYPE_TEXT, "xmpT") + registerNamespace(XMPConst.TYPE_PAGEDFILE, "xmpTPg") + registerNamespace(XMPConst.TYPE_GRAPHICS, "xmpG") + registerNamespace(XMPConst.TYPE_IMAGE, "xmpGImg") + registerNamespace(XMPConst.TYPE_FONT, "stFnt") + registerNamespace(XMPConst.TYPE_DIMENSIONS, "stDim") + registerNamespace(XMPConst.TYPE_RESOURCEEVENT, "stEvt") + registerNamespace(XMPConst.TYPE_RESOURCEREF, "stRef") + registerNamespace(XMPConst.TYPE_ST_VERSION, "stVer") + registerNamespace(XMPConst.TYPE_ST_JOB, "stJob") + registerNamespace(XMPConst.TYPE_MANIFESTITEM, "stMfs") + registerNamespace(XMPConst.TYPE_IDENTIFIERQUAL, "xmpidq") + } + + // --------------------------------------------------------------------------------------------- + // Alias Functions + + override fun resolveAlias(aliasNS: String, aliasProp: String): XMPAliasInfo? { + + val aliasPrefix = getNamespacePrefix(aliasNS) ?: return null + + return aliasMap[aliasPrefix + aliasProp] + } + + override fun findAlias(qname: String): XMPAliasInfo? = + aliasMap[qname] + + override fun findAliases(aliasNS: String): Set { + + val prefix = getNamespacePrefix(aliasNS) + + if (prefix == null) return emptySet() + + val result = mutableSetOf() + + for (qname in aliasMap.keys) { + + if (qname.startsWith(prefix)) { + + val alias = findAlias(qname) ?: continue + + result.add(alias) + } + } + + return result + } + + /** + * Associates an alias name with an actual name. + * + * Define a alias mapping from one namespace/property to another. Both + * property names must be simple names. An alias can be a direct mapping, + * where the alias and actual have the same data type. It is also possible + * to map a simple alias to an item in an array. This can either be to the + * first item in the array, or to the 'x-default' item in an alt-text array. + * Multiple alias names may map to the same actual, as long as the forms + * match. It is a no-op to reregister an alias in an identical fashion. + * Note: This method is not locking because only called by registerStandardAliases + * which is only called by the constructor. + * Note2: The method is only package-private so that it can be tested with unittests + * + * @param aliasNS The namespace URI for the alias. Must not be null or the empty + * string. + * @param aliasProp The name of the alias. Must be a simple name, not null or the + * empty string and not a general path expression. + * @param actualNS The namespace URI for the actual. Must not be null or the + * empty string. + * @param actualProp The name of the actual. Must be a simple name, not null or the + * empty string and not a general path expression. + * @param aliasForm Provides options for aliases for simple aliases to array + * items. This is needed to know what kind of array to create if + * set for the first time via the simple alias. Pass + * `XMP_NoOptions`, the default value, for all + * direct aliases regardless of whether the actual data type is + * an array or not (see [AliasOptions]). + */ + fun registerAlias( + aliasNS: String, + aliasProp: String, + actualNS: String, + actualProp: String, + aliasForm: AliasOptions? + ) { + + if (aliasNS.isEmpty()) + throw XMPException("Empty schema namespace URI", XMPError.BADPARAM) + + if (aliasProp.isEmpty()) + throw XMPException("Empty property name", XMPError.BADPARAM) + + if (actualNS.isEmpty()) + throw XMPException("Empty schema namespace URI", XMPError.BADPARAM) + + if (actualProp.isEmpty()) + throw XMPException("Empty property name", XMPError.BADPARAM) + + // Fix the alias options + val aliasOpts = if (aliasForm != null) + AliasOptions( + XMPNodeUtils.verifySetOptions( + aliasForm.toPropertyOptions(), + null + ).getOptions() + ) else + AliasOptions() + + if (simpleProperyPattern.matches(aliasProp) || simpleProperyPattern.matches(actualProp)) + throw XMPException("Alias and actual property names must be simple", XMPError.BADXPATH) + + // check if both namespaces are registered + val aliasPrefix = getNamespacePrefix(aliasNS) + val actualPrefix = getNamespacePrefix(actualNS) + + if (aliasPrefix == null) + throw XMPException("Alias namespace is not registered", XMPError.BADSCHEMA) + else if (actualPrefix == null) + throw XMPException("Actual namespace is not registered", XMPError.BADSCHEMA) + + val key = aliasPrefix + aliasProp + + // check if alias is already existing + if (aliasMap.containsKey(key)) + throw XMPException("Alias is already existing", XMPError.BADPARAM) + else if (aliasMap.containsKey(actualPrefix + actualProp)) + throw XMPException( + "Actual property is already an alias, use the base property", XMPError.BADPARAM + ) + + val aliasInfo: XMPAliasInfo = object : XMPAliasInfo { + + override fun getNamespace(): String = actualNS + + override fun getPrefix(): String = actualPrefix + + override fun getPropName(): String = actualProp + + override fun getAliasForm(): AliasOptions = aliasOpts + + override fun toString(): String = + actualPrefix + actualProp + " NS(" + actualNS + "), FORM (" + getAliasForm() + ")" + } + + aliasMap[key] = aliasInfo + } + + override fun getAliases(): Map = + aliasMap + + /** + * Register the standard aliases. + * Note: This method is not lock because only called by the constructor. + */ + private fun registerStandardAliases() { + + val aliasToArrayOrdered = AliasOptions().setArrayOrdered(true) + val aliasToArrayAltText = AliasOptions().setArrayAltText(true) + + // Aliases from XMP to DC. + registerAlias( + XMPConst.NS_XMP, + "Author", + XMPConst.NS_DC, + "creator", + aliasToArrayOrdered + ) + registerAlias( + XMPConst.NS_XMP, + "Authors", + XMPConst.NS_DC, + "creator", + null + ) + registerAlias( + XMPConst.NS_XMP, + "Description", + XMPConst.NS_DC, + "description", + null + ) + registerAlias( + XMPConst.NS_XMP, + "Format", + XMPConst.NS_DC, + "format", + null + ) + registerAlias( + XMPConst.NS_XMP, + "Keywords", + XMPConst.NS_DC, + "subject", + null + ) + registerAlias( + XMPConst.NS_XMP, + "Locale", + XMPConst.NS_DC, + "language", + null + ) + registerAlias( + XMPConst.NS_XMP, + "Title", + XMPConst.NS_DC, + "title", + null + ) + registerAlias( + XMPConst.NS_XMP_RIGHTS, + "Copyright", + XMPConst.NS_DC, + "rights", + null + ) + + // Aliases from PDF to DC and XMP. + registerAlias( + XMPConst.NS_PDF, + "Author", + XMPConst.NS_DC, + "creator", + aliasToArrayOrdered + ) + registerAlias( + XMPConst.NS_PDF, + "BaseURL", + XMPConst.NS_XMP, + "BaseURL", + null + ) + registerAlias( + XMPConst.NS_PDF, + "CreationDate", + XMPConst.NS_XMP, + "CreateDate", + null + ) + registerAlias( + XMPConst.NS_PDF, + "Creator", + XMPConst.NS_XMP, + "CreatorTool", + null + ) + registerAlias( + XMPConst.NS_PDF, + "ModDate", + XMPConst.NS_XMP, + "ModifyDate", + null + ) + registerAlias( + XMPConst.NS_PDF, + "Subject", + XMPConst.NS_DC, + "description", + aliasToArrayAltText + ) + registerAlias( + XMPConst.NS_PDF, + "Title", + XMPConst.NS_DC, + "title", + aliasToArrayAltText + ) + + // Aliases from PHOTOSHOP to DC and XMP. + registerAlias( + XMPConst.NS_PHOTOSHOP, + "Author", + XMPConst.NS_DC, + "creator", + aliasToArrayOrdered + ) + registerAlias( + XMPConst.NS_PHOTOSHOP, + "Caption", + XMPConst.NS_DC, + "description", + aliasToArrayAltText + ) + registerAlias( + XMPConst.NS_PHOTOSHOP, + "Copyright", + XMPConst.NS_DC, + "rights", + aliasToArrayAltText + ) + registerAlias( + XMPConst.NS_PHOTOSHOP, + "Keywords", + XMPConst.NS_DC, + "subject", + null + ) + registerAlias( + XMPConst.NS_PHOTOSHOP, + "Marked", + XMPConst.NS_XMP_RIGHTS, + "Marked", + null + ) + registerAlias( + XMPConst.NS_PHOTOSHOP, + "Title", + XMPConst.NS_DC, + "title", + aliasToArrayAltText + ) + registerAlias( + XMPConst.NS_PHOTOSHOP, + "WebStatement", + XMPConst.NS_XMP_RIGHTS, + "WebStatement", + null + ) + + // Aliases from TIFF and EXIF to DC and XMP. + registerAlias( + XMPConst.NS_TIFF, + "Artist", + XMPConst.NS_DC, + "creator", + aliasToArrayOrdered + ) + registerAlias( + XMPConst.NS_TIFF, + "Copyright", + XMPConst.NS_DC, + "rights", + null + ) + registerAlias( + XMPConst.NS_TIFF, + "DateTime", + XMPConst.NS_XMP, + "ModifyDate", + null + ) + registerAlias( + XMPConst.NS_EXIF, + "DateTimeDigitized", + XMPConst.NS_XMP, + "CreateDate", + null + ) + registerAlias( + XMPConst.NS_TIFF, + "ImageDescription", + XMPConst.NS_DC, + "description", + null + ) + registerAlias( + XMPConst.NS_TIFF, + "Software", + XMPConst.NS_XMP, + "CreatorTool", + null + ) + + // Aliases from PNG (Acrobat ImageCapture) to DC and XMP. + registerAlias( + XMPConst.NS_PNG, + "Author", + XMPConst.NS_DC, + "creator", + aliasToArrayOrdered + ) + registerAlias( + XMPConst.NS_PNG, + "Copyright", + XMPConst.NS_DC, + "rights", + aliasToArrayAltText + ) + registerAlias( + XMPConst.NS_PNG, + "CreationTime", + XMPConst.NS_XMP, + "CreateDate", + null + ) + registerAlias( + XMPConst.NS_PNG, + "Description", + XMPConst.NS_DC, + "description", + aliasToArrayAltText + ) + registerAlias( + XMPConst.NS_PNG, + "ModificationTime", + XMPConst.NS_XMP, + "ModifyDate", + null + ) + registerAlias( + XMPConst.NS_PNG, + "Software", + XMPConst.NS_XMP, + "CreatorTool", + null + ) + registerAlias( + XMPConst.NS_PNG, + "Title", + XMPConst.NS_DC, + "title", + aliasToArrayAltText + ) + } +} diff --git a/src/commonMain/kotlin/com/ashampoo/xmp/impl/XmlUtilDomParser.kt b/src/commonMain/kotlin/com/ashampoo/xmp/impl/XmlUtilDomParser.kt new file mode 100644 index 0000000..cf2ee0f --- /dev/null +++ b/src/commonMain/kotlin/com/ashampoo/xmp/impl/XmlUtilDomParser.kt @@ -0,0 +1,32 @@ +package com.ashampoo.xmp.impl + +import com.ashampoo.xmp.XMPError +import com.ashampoo.xmp.XMPException +import nl.adaptivity.xmlutil.DomWriter +import nl.adaptivity.xmlutil.EventType +import nl.adaptivity.xmlutil.XmlStreaming +import nl.adaptivity.xmlutil.dom.Document +import nl.adaptivity.xmlutil.writeCurrent + +object XmlUtilDomParser : DomParser { + + override fun parseDocumentFromString(input: String): Document { + + try { + + val writer = DomWriter() + + val reader = XmlStreaming.newReader(input) + + do { + val event = reader.next() + reader.writeCurrent(writer) + } while (event != EventType.END_DOCUMENT) + + return writer.target + + } catch (ex: Exception) { + throw XMPException("Error reading the XML-file", XMPError.BADSTREAM, ex) + } + } +} diff --git a/src/commonMain/kotlin/com/ashampoo/xmp/impl/xpath/PathPosition.kt b/src/commonMain/kotlin/com/ashampoo/xmp/impl/xpath/PathPosition.kt new file mode 100644 index 0000000..fbd9a5d --- /dev/null +++ b/src/commonMain/kotlin/com/ashampoo/xmp/impl/xpath/PathPosition.kt @@ -0,0 +1,41 @@ +// ================================================================================================= +// ADOBE SYSTEMS INCORPORATED +// Copyright 2006 Adobe Systems Incorporated +// All Rights Reserved +// +// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms +// of the Adobe license agreement accompanying it. +// ================================================================================================= +package com.ashampoo.xmp.impl.xpath + +/** + * This objects contains all needed char positions to parse. + */ +internal class PathPosition { + + /** + * the complete path + */ + var path: String? = null + + /** + * the start of a segment name + */ + var nameStart = 0 + + /** + * the end of a segment name + */ + var nameEnd = 0 + + /** + * the begin of a step + */ + var stepBegin = 0 + + /** + * the end of a step + */ + var stepEnd = 0 + +} diff --git a/src/commonMain/kotlin/com/ashampoo/xmp/impl/xpath/XMPPath.kt b/src/commonMain/kotlin/com/ashampoo/xmp/impl/xpath/XMPPath.kt new file mode 100644 index 0000000..4c1c502 --- /dev/null +++ b/src/commonMain/kotlin/com/ashampoo/xmp/impl/xpath/XMPPath.kt @@ -0,0 +1,79 @@ +// ================================================================================================= +// ADOBE SYSTEMS INCORPORATED +// Copyright 2006 Adobe Systems Incorporated +// All Rights Reserved +// +// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms +// of the Adobe license agreement accompanying it. +// ================================================================================================= +package com.ashampoo.xmp.impl.xpath + +/** + * Representates an XMP XMPPath with segment accessor methods. + */ +class XMPPath { + + private val segments = mutableListOf() + + fun add(segment: XMPPathSegment) { + segments.add(segment) + } + + fun getSegment(index: Int): XMPPathSegment = segments[index] + + fun size(): Int = segments.size + + override fun toString(): String { + + val result = StringBuilder() + var index = 1 + + while (index < size()) { + + result.append(getSegment(index)) + + if (index < size() - 1) { + + val kind = getSegment(index + 1).kind + + if (kind == STRUCT_FIELD_STEP || kind == QUALIFIER_STEP) + result.append('/') + } + + index++ + } + + return result.toString() + } + + companion object { + + /** + * Marks a struct field step , also for top level nodes (schema "fields"). + */ + const val STRUCT_FIELD_STEP = 0x01 + + /** + * Marks a qualifier step. + * Note: Order is significant to separate struct/qual from array kinds! + */ + const val QUALIFIER_STEP = 0x02 + + /** + * Marks an array index step + */ + const val ARRAY_INDEX_STEP = 0x03 + + const val ARRAY_LAST_STEP = 0x04 + + const val QUAL_SELECTOR_STEP = 0x05 + + const val FIELD_SELECTOR_STEP = 0x06 + + const val SCHEMA_NODE = -0x80000000 + + const val STEP_SCHEMA = 0 + + const val STEP_ROOT_PROP = 1 + } +} diff --git a/src/commonMain/kotlin/com/ashampoo/xmp/impl/xpath/XMPPathParser.kt b/src/commonMain/kotlin/com/ashampoo/xmp/impl/xpath/XMPPathParser.kt new file mode 100644 index 0000000..795815f --- /dev/null +++ b/src/commonMain/kotlin/com/ashampoo/xmp/impl/xpath/XMPPathParser.kt @@ -0,0 +1,396 @@ +// ================================================================================================= +// ADOBE SYSTEMS INCORPORATED +// Copyright 2006 Adobe Systems Incorporated +// All Rights Reserved +// +// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms +// of the Adobe license agreement accompanying it. +// ================================================================================================= +package com.ashampoo.xmp.impl.xpath + +import com.ashampoo.xmp.XMPError +import com.ashampoo.xmp.XMPException +import com.ashampoo.xmp.XMPMetaFactory.schemaRegistry +import com.ashampoo.xmp.impl.Utils + +/** + * Parser for XMP XPaths. + */ +object XMPPathParser { + + /** + * Split an XMPPath expression apart at the conceptual steps, adding the + * root namespace prefix to the first property component. The schema URI is + * put in the first (0th) slot in the expanded XMPPath. Check if the top + * level component is an alias, but don't resolve it. + * + * The logic is complicated though by shorthand for arrays, the separating + * '/' and leading '*' are optional. These are all equivalent: array/ *[2] + * array/[2] array*[2] array[2] All of these are broken into the 2 steps + * "array" and "[2]". + * + * The value portion in the array selector forms is a string quoted by ''' + * or '"'. The value may contain any character including a doubled quoting + * character. The value may be empty. + * + * The syntax isn't checked, but an XML name begins with a letter or '_', + * and contains letters, digits, '.', '-', '_', and a bunch of special + * non-ASCII Unicode characters. An XML qualified name is a pair of names + * separated by a colon. + */ + @kotlin.jvm.JvmStatic + fun expandXPath(schemaNS: String?, path: String?): XMPPath { + + if (schemaNS == null || path == null) + throw XMPException("Parameter must not be null", XMPError.BADPARAM) + + val expandedXPath = XMPPath() + + val pos = PathPosition() + + pos.path = path + + // Pull out the first component and do some special processing on it: add the schema + // namespace prefix and and see if it is an alias. The start must be a "qualName". + parseRootNode(schemaNS, pos, expandedXPath) + + // Now continue to process the rest of the XMPPath string. + while (pos.stepEnd < path.length) { + + pos.stepBegin = pos.stepEnd + + skipPathDelimiter(path, pos) + + pos.stepEnd = pos.stepBegin + + var segment: XMPPathSegment + + segment = if (path[pos.stepBegin] != '[') { + // A struct field or qualifier. + parseStructSegment(pos) + } else { + // One of the array forms. + parseIndexSegment(pos) + } + + if (segment.kind == XMPPath.STRUCT_FIELD_STEP) { + + if (segment.name!![0] == '@') { + + segment.name = "?" + segment.name!!.substring(1) + + if ("?xml:lang" != segment.name) + throw XMPException("Only xml:lang allowed with '@'", XMPError.BADXPATH) + } + + if (segment.name!![0] == '?') { + + pos.nameStart++ + + segment.kind = XMPPath.QUALIFIER_STEP + } + + verifyQualName(pos.path!!.substring(pos.nameStart, pos.nameEnd)) + + } else if (segment.kind == XMPPath.FIELD_SELECTOR_STEP) { + + if (segment.name!![1] == '@') { + + segment.name = "[?" + segment.name!!.substring(2) + + if (!segment.name!!.startsWith("[?xml:lang=")) + throw XMPException("Only xml:lang allowed with '@'", XMPError.BADXPATH) + } + + if (segment.name!![1] == '?') { + + pos.nameStart++ + + segment.kind = XMPPath.QUAL_SELECTOR_STEP + + verifyQualName(pos.path!!.substring(pos.nameStart, pos.nameEnd)) + } + } + + expandedXPath.add(segment) + } + + return expandedXPath + } + + private fun skipPathDelimiter(path: String, pos: PathPosition) { + + if (path[pos.stepBegin] == '/') { + + // skip slash + pos.stepBegin++ + + if (pos.stepBegin >= path.length) + throw XMPException("Empty XMPPath segment", XMPError.BADXPATH) + } + + if (path[pos.stepBegin] == '*') { + + // skip asterisk + pos.stepBegin++ + + if (pos.stepBegin >= path.length || path[pos.stepBegin] != '[') + throw XMPException("Missing '[' after '*'", XMPError.BADXPATH) + } + } + + private fun parseStructSegment(pos: PathPosition): XMPPathSegment { + + pos.nameStart = pos.stepBegin + + while (pos.stepEnd < pos.path!!.length && "/[*".indexOf(pos.path!![pos.stepEnd]) < 0) + pos.stepEnd++ + + pos.nameEnd = pos.stepEnd + + if (pos.stepEnd == pos.stepBegin) + throw XMPException("Empty XMPPath segment", XMPError.BADXPATH) + + return XMPPathSegment( + pos.path!!.substring(pos.stepBegin, pos.stepEnd), + XMPPath.STRUCT_FIELD_STEP + ) + } + + /** + * Parses an array index segment. + */ + private fun parseIndexSegment(pos: PathPosition): XMPPathSegment { + + val segment: XMPPathSegment + + pos.stepEnd++ // Look at the character after the leading '['. + + if ('0' <= pos.path!![pos.stepEnd] && pos.path!![pos.stepEnd] <= '9') { + + // A numeric (decimal integer) array index. + while ( + pos.stepEnd < pos.path!!.length && + '0' <= pos.path!![pos.stepEnd] && pos.path!![pos.stepEnd] <= '9' + ) + pos.stepEnd++ + + segment = XMPPathSegment(null, XMPPath.ARRAY_INDEX_STEP) + + } else { + + // Could be "[last()]" or one of the selector forms. Find the ']' or '='. + while ( + pos.stepEnd < pos.path!!.length && pos.path!![pos.stepEnd] != ']' && + pos.path!![pos.stepEnd] != '=' + ) + pos.stepEnd++ + + if (pos.stepEnd >= pos.path!!.length) + throw XMPException("Missing ']' or '=' for array index", XMPError.BADXPATH) + + if (pos.path!![pos.stepEnd] == ']') { + + if ("[last()" != pos.path!!.substring(pos.stepBegin, pos.stepEnd)) + throw XMPException("Invalid non-numeric array index", XMPError.BADXPATH) + + segment = XMPPathSegment(null, XMPPath.ARRAY_LAST_STEP) + + } else { + + pos.nameStart = pos.stepBegin + 1 + pos.nameEnd = pos.stepEnd + + pos.stepEnd++ // Absorb the '=', remember the quote. + + val quote = pos.path!![pos.stepEnd] + + if (quote != '\'' && quote != '"') + throw XMPException("Invalid quote in array selector", XMPError.BADXPATH) + + pos.stepEnd++ // Absorb the leading quote. + + while (pos.stepEnd < pos.path!!.length) { + + if (pos.path!![pos.stepEnd] == quote) { + + // check for escaped quote + if (pos.stepEnd + 1 >= pos.path!!.length || pos.path!![pos.stepEnd + 1] != quote) + break + + pos.stepEnd++ + } + + pos.stepEnd++ + } + + if (pos.stepEnd >= pos.path!!.length) + throw XMPException("No terminating quote for array selector", XMPError.BADXPATH) + + pos.stepEnd++ // Absorb the trailing quote. + + // ! Touch up later, also changing '@' to '?'. + segment = XMPPathSegment(null, XMPPath.FIELD_SELECTOR_STEP) + } + } + + if (pos.stepEnd >= pos.path!!.length || pos.path!![pos.stepEnd] != ']') + throw XMPException("Missing ']' for array index", XMPError.BADXPATH) + + pos.stepEnd++ + + segment.name = pos.path!!.substring(pos.stepBegin, pos.stepEnd) + + return segment + } + + /** + * Parses the root node of an XMP Path, checks if namespace and prefix fit together + * and resolve the property to the base property if it is an alias. + */ + private fun parseRootNode(schemaNS: String, pos: PathPosition, expandedXPath: XMPPath) { + + while (pos.stepEnd < pos.path!!.length && "/[*".indexOf(pos.path!![pos.stepEnd]) < 0) + pos.stepEnd++ + + if (pos.stepEnd == pos.stepBegin) + throw XMPException("Empty initial XMPPath step", XMPError.BADXPATH) + + val rootProp = verifyXPathRoot(schemaNS, pos.path!!.substring(pos.stepBegin, pos.stepEnd)) + val aliasInfo = schemaRegistry.findAlias(rootProp) + + if (aliasInfo == null) { + + // add schema xpath step + expandedXPath.add(XMPPathSegment(schemaNS, XMPPath.SCHEMA_NODE)) + + val rootStep = XMPPathSegment(rootProp, XMPPath.STRUCT_FIELD_STEP) + + expandedXPath.add(rootStep) + + } else { + + // add schema xpath step and base step of alias + expandedXPath.add(XMPPathSegment(aliasInfo.getNamespace(), XMPPath.SCHEMA_NODE)) + + val rootStep = XMPPathSegment( + verifyXPathRoot(aliasInfo.getNamespace(), aliasInfo.getPropName()), + XMPPath.STRUCT_FIELD_STEP + ) + + rootStep.isAlias = true + rootStep.aliasForm = aliasInfo.getAliasForm().getOptions() + + expandedXPath.add(rootStep) + + if (aliasInfo.getAliasForm().isArrayAltText()) { + + val qualSelectorStep = + XMPPathSegment("[?xml:lang='x-default']", XMPPath.QUAL_SELECTOR_STEP) + + qualSelectorStep.isAlias = true + qualSelectorStep.aliasForm = aliasInfo.getAliasForm().getOptions() + + expandedXPath.add(qualSelectorStep) + + } else if (aliasInfo.getAliasForm().isArray()) { + + val indexStep = XMPPathSegment("[1]", XMPPath.ARRAY_INDEX_STEP) + + indexStep.isAlias = true + indexStep.aliasForm = aliasInfo.getAliasForm().getOptions() + + expandedXPath.add(indexStep) + } + } + } + + /** + * Verifies whether the qualifier name is not XML conformant or the + * namespace prefix has not been registered. + */ + private fun verifyQualName(qualName: String) { + + val colonPos = qualName.indexOf(':') + + if (colonPos > 0) { + + val prefix = qualName.substring(0, colonPos) + + if (Utils.isXMLNameNS(prefix)) { + + val regURI = schemaRegistry.getNamespaceURI(prefix) + + if (regURI != null) + return + + throw XMPException("Unknown namespace prefix for qualified name", XMPError.BADXPATH) + } + } + + throw XMPException("Ill-formed qualified name", XMPError.BADXPATH) + } + + /** + * Verify if an XML name is conformant. + */ + private fun verifySimpleXMLName(name: String) { + + if (!Utils.isXMLName(name)) + throw XMPException("Bad XML name", XMPError.BADXPATH) + } + + /** + * Set up the first 2 components of the expanded XMPPath. Normalizes the various cases of using + * the full schema URI and/or a qualified root property name. Returns true for normal + * processing. If allowUnknownSchemaNS is true and the schema namespace is not registered, false + * is returned. If allowUnknownSchemaNS is false and the schema namespace is not registered, an + * exception is thrown + */ + private fun verifyXPathRoot(schemaNS: String?, rootProp: String): String { + + // Do some basic checks on the URI and name. Try to lookup the URI. See if the name is qualified. + if (schemaNS == null || schemaNS.length == 0) + throw XMPException("Schema namespace URI is required", XMPError.BADSCHEMA) + + if (rootProp[0] == '?' || rootProp[0] == '@') + throw XMPException("Top level name must not be a qualifier", XMPError.BADXPATH) + + if (rootProp.indexOf('/') >= 0 || rootProp.indexOf('[') >= 0) + throw XMPException("Top level name must be simple", XMPError.BADXPATH) + + var prefix = schemaRegistry.getNamespacePrefix(schemaNS) + ?: throw XMPException("Unregistered schema namespace URI", XMPError.BADSCHEMA) + + // Verify the various URI and prefix combinations. Initialize the expanded XMPPath. + val colonPos = rootProp.indexOf(':') + + return if (colonPos < 0) { + + // The propName is unqualified, use the schemaURI and associated prefix. + + verifySimpleXMLName(rootProp) // Verify the part before any colon + + prefix + rootProp + + } else { + + // The propName is qualified. Make sure the prefix is legit. + // Use the associated URI and qualified name. + + // Verify the part before any colon + verifySimpleXMLName(rootProp.substring(0, colonPos)) + verifySimpleXMLName(rootProp.substring(colonPos)) + + prefix = rootProp.substring(0, colonPos + 1) + + val regPrefix = schemaRegistry.getNamespacePrefix(schemaNS) + ?: throw XMPException("Unknown schema namespace prefix", XMPError.BADSCHEMA) + + if (prefix != regPrefix) + throw XMPException("Schema namespace URI and prefix mismatch", XMPError.BADSCHEMA) + + rootProp + } + } +} diff --git a/src/commonMain/kotlin/com/ashampoo/xmp/impl/xpath/XMPPathSegment.kt b/src/commonMain/kotlin/com/ashampoo/xmp/impl/xpath/XMPPathSegment.kt new file mode 100644 index 0000000..f63c420 --- /dev/null +++ b/src/commonMain/kotlin/com/ashampoo/xmp/impl/xpath/XMPPathSegment.kt @@ -0,0 +1,56 @@ +// ================================================================================================= +// ADOBE SYSTEMS INCORPORATED +// Copyright 2006 Adobe Systems Incorporated +// All Rights Reserved +// +// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms +// of the Adobe license agreement accompanying it. +// ================================================================================================= +package com.ashampoo.xmp.impl.xpath + +/** + * A segment of a parsed `XMPPath`. + */ +class XMPPathSegment { + + /** + * name of the path segment + */ + var name: String? + + /** + * kind of the path segment + */ + var kind = 0 + + /** + * flag if segment is an alias + */ + var isAlias = false + + /** + * alias form if applicable + */ + var aliasForm = 0 + + /** + * Constructor with initial values. + */ + constructor(name: String) { + this.name = name + } + + /** + * Constructor with initial values. + * + * Note: Name can be NULL for XMPPath.ARRAY_INDEX_STEP and others. + */ + constructor(name: String?, kind: Int) { + this.name = name + this.kind = kind + } + + override fun toString(): String = + name ?: "null" + +} diff --git a/src/commonMain/kotlin/com/ashampoo/xmp/options/AliasOptions.kt b/src/commonMain/kotlin/com/ashampoo/xmp/options/AliasOptions.kt new file mode 100644 index 0000000..21df954 --- /dev/null +++ b/src/commonMain/kotlin/com/ashampoo/xmp/options/AliasOptions.kt @@ -0,0 +1,96 @@ +// ================================================================================================= +// ADOBE SYSTEMS INCORPORATED +// Copyright 2006 Adobe Systems Incorporated +// All Rights Reserved +// +// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms +// of the Adobe license agreement accompanying it. +// ================================================================================================= +package com.ashampoo.xmp.options + +/** + * Options for XMPSchemaRegistryImpl#registerAlias. + */ +class AliasOptions : Options { + + constructor() : super() + + constructor(options: Int) : super(options) + + fun isSimple(): Boolean = + getOptions() == PROP_DIRECT + + fun isArray(): Boolean = + getOption(PROP_ARRAY) + + fun setArray(value: Boolean): AliasOptions { + setOption(PROP_ARRAY, value) + return this + } + + fun isArrayOrdered(): Boolean = + getOption(PROP_ARRAY_ORDERED) + + fun setArrayOrdered(value: Boolean): AliasOptions { + setOption(PROP_ARRAY or PROP_ARRAY_ORDERED, value) + return this + } + + fun isArrayAlternate(): Boolean = + getOption(PROP_ARRAY_ALTERNATE) + + fun setArrayAlternate(value: Boolean): AliasOptions { + setOption(PROP_ARRAY or PROP_ARRAY_ORDERED or PROP_ARRAY_ALTERNATE, value) + return this + } + + fun isArrayAltText(): Boolean = + getOption(PROP_ARRAY_ALT_TEXT) + + fun setArrayAltText(value: Boolean): AliasOptions { + setOption(PROP_ARRAY or PROP_ARRAY_ORDERED or PROP_ARRAY_ALTERNATE or PROP_ARRAY_ALT_TEXT, value) + return this + } + + fun toPropertyOptions(): PropertyOptions = + PropertyOptions(getOptions()) + + protected override fun defineOptionName(option: Int): String? { + return when (option) { + PROP_DIRECT -> "PROP_DIRECT" + PROP_ARRAY -> "ARRAY" + PROP_ARRAY_ORDERED -> "ARRAY_ORDERED" + PROP_ARRAY_ALTERNATE -> "ARRAY_ALTERNATE" + PROP_ARRAY_ALT_TEXT -> "ARRAY_ALT_TEXT" + else -> null + } + } + + protected override fun getValidOptions(): Int = + PROP_DIRECT or PROP_ARRAY or PROP_ARRAY_ORDERED or PROP_ARRAY_ALTERNATE or PROP_ARRAY_ALT_TEXT + + companion object { + + const val PROP_DIRECT = 0 + + /** + * The actual is an unordered array, the alias is to the first element of the array. + */ + const val PROP_ARRAY = PropertyOptions.ARRAY + + /** + * The actual is an ordered array, the alias is to the first element of the array. + */ + const val PROP_ARRAY_ORDERED = PropertyOptions.ARRAY_ORDERED + + /** + * The actual is an alternate array, the alias is to the first element of the array. + */ + const val PROP_ARRAY_ALTERNATE = PropertyOptions.ARRAY_ALTERNATE + + /** + * The actual is an alternate text array, the alias is to the 'x-default' element of the array. + */ + const val PROP_ARRAY_ALT_TEXT = PropertyOptions.ARRAY_ALT_TEXT + } +} diff --git a/src/commonMain/kotlin/com/ashampoo/xmp/options/IteratorOptions.kt b/src/commonMain/kotlin/com/ashampoo/xmp/options/IteratorOptions.kt new file mode 100644 index 0000000..254062e --- /dev/null +++ b/src/commonMain/kotlin/com/ashampoo/xmp/options/IteratorOptions.kt @@ -0,0 +1,127 @@ +// ================================================================================================= +// ADOBE SYSTEMS INCORPORATED +// Copyright 2006 Adobe Systems Incorporated +// All Rights Reserved +// +// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms +// of the Adobe license agreement accompanying it. +// ================================================================================================= +package com.ashampoo.xmp.options + +/** + * Options for XMPIterator construction. + */ +class IteratorOptions : Options() { + + /** + * @return Returns whether the option is set. + */ + fun isJustChildren(): Boolean = + getOption(JUST_CHILDREN) + + /** + * @return Returns whether the option is set. + */ + fun isJustLeafname(): Boolean = + getOption(JUST_LEAFNAME) + + /** + * @return Returns whether the option is set. + */ + fun isJustLeafnodes(): Boolean = + getOption(JUST_LEAFNODES) + + /** + * @return Returns whether the option is set. + */ + fun isOmitQualifiers(): Boolean = + getOption(OMIT_QUALIFIERS) + + /** + * Sets the option and returns the instance. + * + * @param value the value to set + * @return Returns the instance to call more set-methods. + */ + fun setJustChildren(value: Boolean): IteratorOptions { + setOption(JUST_CHILDREN, value) + return this + } + + /** + * Sets the option and returns the instance. + * + * @param value the value to set + * @return Returns the instance to call more set-methods. + */ + fun setJustLeafname(value: Boolean): IteratorOptions { + setOption(JUST_LEAFNAME, value) + return this + } + + /** + * Sets the option and returns the instance. + * + * @param value the value to set + * @return Returns the instance to call more set-methods. + */ + fun setJustLeafnodes(value: Boolean): IteratorOptions { + setOption(JUST_LEAFNODES, value) + return this + } + + /** + * Sets the option and returns the instance. + * + * @param value the value to set + * @return Returns the instance to call more set-methods. + */ + fun setOmitQualifiers(value: Boolean): IteratorOptions { + setOption(OMIT_QUALIFIERS, value) + return this + } + + /** + * @see Options.defineOptionName + */ + override fun defineOptionName(option: Int): String? { + return when (option) { + JUST_CHILDREN -> "JUST_CHILDREN" + JUST_LEAFNODES -> "JUST_LEAFNODES" + JUST_LEAFNAME -> "JUST_LEAFNAME" + OMIT_QUALIFIERS -> "OMIT_QUALIFIERS" + else -> null + } + } + + /** + * @see Options.getValidOptions + */ + override fun getValidOptions(): Int = + JUST_CHILDREN or JUST_LEAFNODES or JUST_LEAFNAME or OMIT_QUALIFIERS + + /** + * Just do the immediate children of the root, default is subtree. + */ + companion object { + + const val JUST_CHILDREN = 0x0100 + + /** + * Just do the leaf nodes, default is all nodes in the subtree. + * Bugfix #2658965: If this option is set the Iterator returns the namespace + * of the leaf instead of the namespace of the base property. + */ + const val JUST_LEAFNODES = 0x0200 + + /** + * Return just the leaf part of the path, default is the full path. + */ + const val JUST_LEAFNAME = 0x0400 + + /** + * Omit all qualifiers. + */ + const val OMIT_QUALIFIERS = 0x1000 + } +} diff --git a/src/commonMain/kotlin/com/ashampoo/xmp/options/Options.kt b/src/commonMain/kotlin/com/ashampoo/xmp/options/Options.kt new file mode 100644 index 0000000..19b3855 --- /dev/null +++ b/src/commonMain/kotlin/com/ashampoo/xmp/options/Options.kt @@ -0,0 +1,229 @@ +// ================================================================================================= +// ADOBE SYSTEMS INCORPORATED +// Copyright 2006 Adobe Systems Incorporated +// All Rights Reserved +// +// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms +// of the Adobe license agreement accompanying it. +// ================================================================================================= +package com.ashampoo.xmp.options + +import com.ashampoo.xmp.XMPError +import com.ashampoo.xmp.XMPException + +/** + * The base class for a collection of 32 flag bits. Individual flags are defined as enum value bit + * masks. Inheriting classes add convenience accessor methods. + */ +abstract class Options { + + /** + * the internal int containing all options + */ + private var valueBits = 0 + + /** + * a map containing the bit names + */ + private val optionNames = mutableMapOf() + + /** + * The default constructor. + */ + protected constructor() + + /** + * Constructor with the options bit mask. + * + * @param options the options bit mask + * + */ + protected constructor(options: Int) { + assertOptionsValid(options) + setOptions(options) + } + + protected abstract fun getValidOptions(): Int + + /** + * Resets the options. + */ + fun clear() { + valueBits = 0 + } + + /** + * @param optionBits an option bitmask + * @return Returns true, if this object is equal to the given options. + */ + fun isExactly(optionBits: Int): Boolean = + getOptions() == optionBits + + /** + * @param optionBits an option bitmask + * @return Returns true, if this object contains all given options. + */ + fun containsAllOptions(optionBits: Int): Boolean = + getOptions() and optionBits == optionBits + + /** + * @param optionBits an option bitmask + * @return Returns true, if this object contain at least one of the given options. + */ + fun containsOneOf(optionBits: Int): Boolean = + getOptions() and optionBits != 0 + + /** + * @param optionBit the binary bit or bits that are requested + * @return Returns if *all* of the requested bits are set or not. + */ + protected fun getOption(optionBit: Int): Boolean = + valueBits and optionBit != 0 + + /** + * @param optionBits the binary bit or bits that shall be set to the given value + * @param value the boolean value to set + */ + fun setOption(optionBits: Int, value: Boolean) { + this.valueBits = if (value) + this.valueBits or optionBits + else + this.valueBits and optionBits.inv() + } + + /** + * Is friendly to access it during the tests. + * + * @return Returns the options. + */ + fun getOptions(): Int = valueBits + + /** + * @param options The options to set. + * + */ + fun setOptions(options: Int) { + + assertOptionsValid(options) + + this.valueBits = options + } + + /** + * @see Object.equals + */ + override fun equals(other: Any?): Boolean = + getOptions() == (other as? Options)?.getOptions() + + /** + * @see Object.hashCode + */ + override fun hashCode(): Int = getOptions() + + /** + * Creates a human readable string from the set options. *Note:* This method is quite + * expensive and should only be used within tests or as + * + * @return Returns a String listing all options that are set to `true` by their name, + * like "option1 | option4". + */ + fun getOptionsString(): String { + + if (valueBits != 0) { + + val sb = StringBuilder() + + var theBits = valueBits + + while (theBits != 0) { + + val oneLessBit = theBits and theBits - 1 // clear rightmost one bit + val singleBit = theBits xor oneLessBit + val bitName = getOptionName(singleBit) + sb.append(bitName) + + if (oneLessBit != 0) + sb.append(" | ") + + theBits = oneLessBit + } + + return sb.toString() + + } else { + return "" + } + } + + /** + * @return Returns the options as hex bitmask. + */ + override fun toString(): String = + "0x" + valueBits.toString(16) + + /** + * To be implemeted by inheritants. + * + * @param option a single, valid option bit. + * @return Returns a human readable name for an option bit. + */ + protected abstract fun defineOptionName(option: Int): String? + + /** + * The inheriting option class can do additional checks on the options. + * *Note:* For performance reasons this method is only called + * when setting bitmasks directly. + * When get- and set-methods are used, this method must be called manually, + * normally only when the Options-object has been created from a client + * (it has to be made public therefore). + * + * @param options the bitmask to check. + * + */ + protected open fun assertConsistency(options: Int) = Unit // empty, no checks + + /** + * Checks options before they are set. + * First it is checked if only defined options are used, + * second the additional [Options.assertConsistency]-method is called. + * + * @param options the options to check + * + */ + private fun assertOptionsValid(options: Int) { + + val invalidOptions = options and getValidOptions().inv() + + if (invalidOptions == 0) + assertConsistency(options) + else + throw XMPException( + "The option bit(s) 0x" + invalidOptions.toString(16) + " + are invalid!", + XMPError.BADOPTIONS + ) + } + + /** + * Looks up or asks the inherited class for the name of an option bit. + * Its save that there is only one valid option handed into the method. + * + * @param option a single option bit + * @return Returns the option name or undefined. + */ + private fun getOptionName(option: Int): String { + + var result = optionNames[option] + + if (result == null) { + + result = defineOptionName(option) + + if (result != null) + optionNames[option] = result + else + result = "