From bf017732cb461af83d7dd45b3c69c46dca0a9dda Mon Sep 17 00:00:00 2001 From: Jackoder Date: Wed, 20 Apr 2016 16:39:32 +0800 Subject: [PATCH] initial commit --- .configs/custom/application.gradle | 2 + .configs/custom/base.gradle | 10 + .configs/custom/library.gradle | 42 + .configs/custom/sign/.gitignore | 2 + .configs/findbugs/findbugs-filter.xml | 0 .configs/gradle/android-artifacts.gradle | 38 + .configs/gradle/android.gradle | 33 + .configs/gradle/androidJarBuild.gradle | 15 + .configs/gradle/application.gradle | 14 + .configs/gradle/checkstyle.gradle | 23 + .configs/gradle/dependencies.gradle | 87 + .configs/gradle/deployment.gradle | 24 + .configs/gradle/dexcount.gradle | 16 + .configs/gradle/findbugs.gradle | 30 + .configs/gradle/jacoco.gradle | 40 + .configs/gradle/library.gradle | 14 + .configs/gradle/librarySimplify.gradle | 8 + .configs/gradle/retrolambda.gradle | 21 + .configs/gradle/sign.gradle | 35 + .configs/gradle/sonar.gradle | 29 + .configs/gradle/upload.gradle | 28 + .configs/gradle/uploadJar.gradle | 29 + .gitignore | 34 + .idea/vcs.xml | 6 + build.gradle | 42 + config.gradle | 21 + gradle.properties | 24 + gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 53636 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 160 ++ gradlew.bat | 90 + library/.gitignore | 1 + library/build.gradle | 9 + library/gradle.properties | 3 + library/proguard-rules.pro | 17 + .../platform/guide/lib/ApplicationTest.java | 13 + library/src/main/AndroidManifest.xml | 10 + .../webview/library/BaseJSInterface.java | 43 + .../webview/library/SafeWebChromeClient.java | 322 +++ .../webview/library/WebViewDelegate.java | 226 ++ sample/.gitignore | 1 + sample/build.gradle | 13 + sample/proguard-rules.pro | 17 + .../platform/guide/ApplicationTest.java | 13 + sample/src/main/AndroidManifest.xml | 29 + sample/src/main/assets/background.jpg | Bin 0 -> 384604 bytes sample/src/main/assets/example.html | 124 + sample/src/main/assets/js3.html | 17 + sample/src/main/assets/test.html | 68 + sample/src/main/assets/zepto.js | 2185 +++++++++++++++++ .../android/webview/sample/HostJsScope.java | 122 + .../android/webview/sample/MainActivity.java | 44 + .../webview/sample/bug/ShowBugActivity.java | 77 + .../android/webview/sample/bug/WebViewEx.java | 406 +++ sample/src/main/res/layout/activity_main.xml | 10 + .../src/main/res/layout/activity_show_bug.xml | 45 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3418 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2206 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4842 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 7718 bytes sample/src/main/res/values-w820dp/dimens.xml | 6 + sample/src/main/res/values/dimens.xml | 5 + sample/src/main/res/values/strings.xml | 11 + sample/src/main/res/values/styles.xml | 8 + settings.gradle | 2 + 65 files changed, 4770 insertions(+) create mode 100644 .configs/custom/application.gradle create mode 100644 .configs/custom/base.gradle create mode 100644 .configs/custom/library.gradle create mode 100644 .configs/custom/sign/.gitignore create mode 100644 .configs/findbugs/findbugs-filter.xml create mode 100644 .configs/gradle/android-artifacts.gradle create mode 100644 .configs/gradle/android.gradle create mode 100644 .configs/gradle/androidJarBuild.gradle create mode 100644 .configs/gradle/application.gradle create mode 100644 .configs/gradle/checkstyle.gradle create mode 100644 .configs/gradle/dependencies.gradle create mode 100644 .configs/gradle/deployment.gradle create mode 100644 .configs/gradle/dexcount.gradle create mode 100644 .configs/gradle/findbugs.gradle create mode 100644 .configs/gradle/jacoco.gradle create mode 100644 .configs/gradle/library.gradle create mode 100644 .configs/gradle/librarySimplify.gradle create mode 100644 .configs/gradle/retrolambda.gradle create mode 100644 .configs/gradle/sign.gradle create mode 100644 .configs/gradle/sonar.gradle create mode 100644 .configs/gradle/upload.gradle create mode 100644 .configs/gradle/uploadJar.gradle create mode 100644 .gitignore create mode 100644 .idea/vcs.xml create mode 100644 build.gradle create mode 100644 config.gradle create mode 100644 gradle.properties create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100644 gradlew create mode 100644 gradlew.bat create mode 100644 library/.gitignore create mode 100644 library/build.gradle create mode 100644 library/gradle.properties create mode 100644 library/proguard-rules.pro create mode 100644 library/src/androidTest/java/com/nd/hy/android/platform/guide/lib/ApplicationTest.java create mode 100644 library/src/main/AndroidManifest.xml create mode 100644 library/src/main/java/com/nd/hy/android/webview/library/BaseJSInterface.java create mode 100644 library/src/main/java/com/nd/hy/android/webview/library/SafeWebChromeClient.java create mode 100644 library/src/main/java/com/nd/hy/android/webview/library/WebViewDelegate.java create mode 100644 sample/.gitignore create mode 100644 sample/build.gradle create mode 100644 sample/proguard-rules.pro create mode 100644 sample/src/androidTest/java/com/nd/hy/android/platform/guide/ApplicationTest.java create mode 100644 sample/src/main/AndroidManifest.xml create mode 100644 sample/src/main/assets/background.jpg create mode 100644 sample/src/main/assets/example.html create mode 100644 sample/src/main/assets/js3.html create mode 100644 sample/src/main/assets/test.html create mode 100644 sample/src/main/assets/zepto.js create mode 100644 sample/src/main/java/com/nd/hy/android/webview/sample/HostJsScope.java create mode 100644 sample/src/main/java/com/nd/hy/android/webview/sample/MainActivity.java create mode 100644 sample/src/main/java/com/nd/hy/android/webview/sample/bug/ShowBugActivity.java create mode 100644 sample/src/main/java/com/nd/hy/android/webview/sample/bug/WebViewEx.java create mode 100644 sample/src/main/res/layout/activity_main.xml create mode 100644 sample/src/main/res/layout/activity_show_bug.xml create mode 100644 sample/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 sample/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 sample/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 sample/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 sample/src/main/res/values-w820dp/dimens.xml create mode 100644 sample/src/main/res/values/dimens.xml create mode 100644 sample/src/main/res/values/strings.xml create mode 100644 sample/src/main/res/values/styles.xml create mode 100644 settings.gradle diff --git a/.configs/custom/application.gradle b/.configs/custom/application.gradle new file mode 100644 index 0000000..4a84824 --- /dev/null +++ b/.configs/custom/application.gradle @@ -0,0 +1,2 @@ +// 自定义的application配置脚本 +// diff --git a/.configs/custom/base.gradle b/.configs/custom/base.gradle new file mode 100644 index 0000000..13c9463 --- /dev/null +++ b/.configs/custom/base.gradle @@ -0,0 +1,10 @@ +// 自定义的基础配置脚本 +// +ext { + downloadVerison = '2.0.0-rc5' + + download = [ + core : "com.nd.hy.android.component.download:download-core:${downloadVerison}", + ui : "com.nd.hy.android.component.download:download-ui:${downloadVerison}", + ] +} \ No newline at end of file diff --git a/.configs/custom/library.gradle b/.configs/custom/library.gradle new file mode 100644 index 0000000..55009ae --- /dev/null +++ b/.configs/custom/library.gradle @@ -0,0 +1,42 @@ +// 自定义的library配置脚本 +// +ext { + frescoVersion = "0.5.0" + parcelerVersion = '1.0.1' + blurVersion = '0.1-rc2' + webViewVersion = '0.1.0-rc1' + methodBridgeVersion = '1.0.3' + + exerciseVersion = "3.5.3-rc6-sdp-04" + + framePluginVersion = '1.2.0-rc17'//'1.2.0-rc16' + readerLibVersion = '1.3.0' + videoVersion = '1.2.0-rc6' + + activeAndroidVersion = '3.2.2.3-rc3' + + blurs = [ + core : "com.nd.hy.android.blur:core:${blurVersion}", + glide : "com.nd.hy.android.blur:extra-glide:${blurVersion}", + fresco : "com.nd.hy.android.blur:extra-fresco:${blurVersion}", + ] + + reader = [ + pdf : "com.nd.hy.android.reader:reader-pdf:${readerLibVersion}", + image: "com.nd.hy.android.reader:reader-image:${readerLibVersion}", + html5: "com.nd.hy.android.reader:reader-html5:${readerLibVersion}", + ] + + video = [ + video : "com.nd.hy.android.video:video:${videoVersion}", + videoDoc : "com.nd.hy.android.video.doc:video-doc:${videoVersion}", + videoExercise : "com.nd.hy.android.video.exercise:video-exercise:${videoVersion}", + + videoEngineVLC: "com.nd.hy.android.video.engine.vlc:video-engine-vlc:${videoVersion}", + videoEngineMP : "com.nd.hy.android.video.engine.mp:video-engine-original:${videoVersion}", + ] + + exercise = [ + exercise : "com.nd.hy.android.exercise:module_exercise:${exerciseVersion}" + ] +} \ No newline at end of file diff --git a/.configs/custom/sign/.gitignore b/.configs/custom/sign/.gitignore new file mode 100644 index 0000000..db019a1 --- /dev/null +++ b/.configs/custom/sign/.gitignore @@ -0,0 +1,2 @@ +*.properties +*.keystore \ No newline at end of file diff --git a/.configs/findbugs/findbugs-filter.xml b/.configs/findbugs/findbugs-filter.xml new file mode 100644 index 0000000..e69de29 diff --git a/.configs/gradle/android-artifacts.gradle b/.configs/gradle/android-artifacts.gradle new file mode 100644 index 0000000..ffdcdac --- /dev/null +++ b/.configs/gradle/android-artifacts.gradle @@ -0,0 +1,38 @@ +apply plugin: 'com.github.dcendents.android-maven' + +install { + repositories.mavenInstaller { + pom { + project { + packaging POM_PACKAGING + name POM_NAME + url POM_SITE_URL + scm { + connection POM_GIT_URL + developerConnection POM_GIT_URL + url POM_SITE_URL + } + } + } + } +} + +task sourcesJar(type: Jar) { + from android.sourceSets.main.java.srcDirs + classifier = 'sources' +} + +task javadoc(type: Javadoc) { + source = android.sourceSets.main.java.srcDirs + classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) +} + +task javadocJar(type: Jar, dependsOn: javadoc) { + classifier = 'javadoc' + from javadoc.destinationDir +} + +artifacts { + //archives javadocJar + archives sourcesJar +} \ No newline at end of file diff --git a/.configs/gradle/android.gradle b/.configs/gradle/android.gradle new file mode 100644 index 0000000..66891ca --- /dev/null +++ b/.configs/gradle/android.gradle @@ -0,0 +1,33 @@ +// !该文件是从远程拉取的模板,请勿修改 +// +// update: 2016021701 + +android { + def conf = this.ext; + compileSdkVersion conf.androidCompileSdkVersion + buildToolsVersion conf.androidBuildToolsVersion + + defaultConfig { + minSdkVersion conf.androidMinSdkVersion + targetSdkVersion conf.androidTargetSdkVersion + testInstrumentationRunner conf.testInstrumentationRunner + } + + packagingOptions { + exclude 'LICENSE.txt' + exclude 'META-INF/DEPENDENCIES' + exclude 'META-INF/ASL2.0' + exclude 'META-INF/NOTICE' + exclude 'META-INF/LICENSE' + exclude 'META-INF/services/javax.annotation.processing.Processor' + } + + lintOptions { + abortOnError false; + disable 'InvalidPackage' //Some libraries have issues with this. + disable 'OldTargetApi' + //Lint gives this warning but SDK 20 would be Android L Beta. + disable 'IconDensities' //For testing purpose. This is safe to remove. + disable 'IconMissingDensityFolder' //For testing purpose. This is safe to remove. + } +} \ No newline at end of file diff --git a/.configs/gradle/androidJarBuild.gradle b/.configs/gradle/androidJarBuild.gradle new file mode 100644 index 0000000..4fdfe4d --- /dev/null +++ b/.configs/gradle/androidJarBuild.gradle @@ -0,0 +1,15 @@ +// !该文件是从远程拉取的模板,请勿修改 +// +// update: 2016021701 + +configurations { + jarArchives +} + +android.libraryVariants.all { variant -> + def name = variant.buildType.name + def task = project.tasks.create "jar${name.capitalize()}", Jar + task.dependsOn variant.javaCompile + task.from variant.javaCompile.destinationDir + artifacts.add('jarArchives', task); +} \ No newline at end of file diff --git a/.configs/gradle/application.gradle b/.configs/gradle/application.gradle new file mode 100644 index 0000000..d16f1b5 --- /dev/null +++ b/.configs/gradle/application.gradle @@ -0,0 +1,14 @@ +// !该文件是从远程拉取的模板,请勿修改 +// +// update: 2016021701 + +apply plugin: 'com.android.application' + +apply from: "${cacheConfigs}/gradle/dependencies.gradle" +apply from: "${cacheConfigs}/gradle/checkstyle.gradle" +apply from: "${cacheConfigs}/gradle/findbugs.gradle" + +apply from: "${cacheConfigs}/gradle/android.gradle" +apply from: "${cacheConfigs}/custom/base.gradle" +apply from: "${cacheConfigs}/custom/application.gradle" +apply from: "${cacheConfigs}/gradle/retrolambda.gradle" \ No newline at end of file diff --git a/.configs/gradle/checkstyle.gradle b/.configs/gradle/checkstyle.gradle new file mode 100644 index 0000000..f153a11 --- /dev/null +++ b/.configs/gradle/checkstyle.gradle @@ -0,0 +1,23 @@ +// !该文件是从远程拉取的模板,请勿修改 +// +// update: 2016021701 + +apply plugin: 'checkstyle' + +dependencies { + checkstyle('com.puppycrawl.tools:checkstyle:6.5') +} + +task checkstyle(type: Checkstyle) { + def cachePath = "${cacheConfigs}/checkstyle" + def file = new File("${cachePath}/nd_checkstyle.xml") + def fileSuppressions = new File("${cachePath}/nd_checkstyle_suppressions.xml") + + configFile file + configProperties.checkstyleSuppressionsPath = fileSuppressions.absolutePath + // Where is my suppressions file for checkstyle is... + source 'src' + include '**/*.java' + exclude '**/gen/**' + classpath = files() +} \ No newline at end of file diff --git a/.configs/gradle/dependencies.gradle b/.configs/gradle/dependencies.gradle new file mode 100644 index 0000000..5b82a08 --- /dev/null +++ b/.configs/gradle/dependencies.gradle @@ -0,0 +1,87 @@ +// !该文件是从远程拉取的模板,请勿修改 +// +// update: 2016041501 + +ext { + //Android + androidBuildToolsVersion = "23.0.1" + androidMinSdkVersion = getPropertyOrDefault("MIN_SDK_VERSION", 9) + androidTargetSdkVersion = getPropertyOrDefault("TARGET_SDK_VERSION", 22) + androidCompileSdkVersion = 23 + testInstrumentationRunner = "android.support.test.runner.AndroidJUnitRunner" + + //Libraries + androidSupportVersion = "23.1.1" + daggerVersion = '2.0' + butterKnifeVersion = '6.0.0' + rxJavaVersion = '1.0.14' + rxAndroidVersion = '1.0.1' + rxLifecycleVersion = '0.3.0' + rxBindingVersion = '0.2.0' + javaxAnnotationVersion = '10.0-b28' + superToastsVersion = "1.3.4" + retrofitVersion = "1.9.0" + okHttpVersion = "2.4.0" + jacksonVersion = "2.4.2" + nineOldAndroidVersion = "2.4.0" + + //Testing + robolectricVersion = '2.4' + jUnitVersion = '4.11' + mockitoVersion = '1.9.5' + dexmakerVersion = '1.0' + espressoVersion = '2.0' + testingSupportLibVersion = '0.1' + + //Hermes + hermesVersion = '2.2.3-rc3' + + libs = [ + supportV4 : "com.android.support:support-v4:${androidSupportVersion}", + appcompat : "com.android.support:appcompat-v7:${androidSupportVersion}", + supportDesign : "com.android.support:design:${androidSupportVersion}", + supportAnnotation : "com.android.support:support-annotations:${androidSupportVersion}", + recyclerView : "com.android.support:recyclerview-v7:${androidSupportVersion}", + cardView : "com.android.support:cardview-v7:${androidSupportVersion}", + + daggerCompiler : "com.google.dagger:dagger-compiler:${daggerVersion}", + dagger : "com.google.dagger:dagger:${daggerVersion}", + butterKnife : "com.jakewharton:butterknife:${butterKnifeVersion}", + rxJava : "io.reactivex:rxjava:${rxJavaVersion}", + rxAndroid : "io.reactivex:rxandroid:${rxAndroidVersion}", + rxLifecycle : "com.trello:rxlifecycle:${rxLifecycleVersion}", + rxBinding : "com.jakewharton.rxbinding:rxbinding:${rxBindingVersion}", + rxComponent : "com.trello:rxlifecycle-components:${rxLifecycleVersion}", + javaxAnnotation : "org.glassfish:javax.annotation:${javaxAnnotationVersion}", + superToasts : "com.github.johnpersano:supertoasts:${superToastsVersion}@aar", + retrofit : "com.squareup.retrofit:retrofit:${retrofitVersion}", + retrofitWithJackson: "com.squareup.retrofit:converter-jackson:${retrofitVersion}", + jacksonDatabind : "com.fasterxml.jackson.core:jackson-databind:${jacksonVersion}", + okHttp : "com.squareup.okhttp:okhttp:${okHttpVersion}", + timber : "com.jakewharton.timber:timber:3.0.1", + nineOldAndroid : "com.nineoldandroids:library:${nineOldAndroidVersion}", + ] + + test = [ + junit : "junit:junit:4.12", + robolectric : "org.robolectric:robolectric:3.0", + burst : "com.squareup.burst:burst-junit4:1.1.0", + mockito : "org.mockito:mockito-core:${mockitoVersion}", + dexmaker : "com.google.dexmaker:dexmaker:${dexmakerVersion}", + dexmakerMockito : "com.google.dexmaker:dexmaker-mockito:${dexmakerVersion}", + espresso : "com.android.support.test.espresso:espresso-core:${espressoVersion}", + testingSupportLib: "com.android.support.test:testing-support-lib:${testingSupportLibVersion}", + ] + + hermes = [ + frame : "com.nd.hy.android.hermes:hermes-frame:${hermesVersion}", + util : "com.nd.hy.android.hermes:commons-util:${hermesVersion}", + view : "com.nd.hy.android.hermes:commons-view:${hermesVersion}", + bus : "com.nd.hy.android.hermes:commons-bus:${hermesVersion}", + data : "com.nd.hy.android.hermes:commons-data:${hermesVersion}", + cache : "com.nd.hy.android.hermes:commons-cache:${hermesVersion}", + rx : "com.nd.hy.android.hermes:hermes-rx:${hermesVersion}", + compat: "com.nd.hy.android.hermes:hermes-compat:${hermesVersion}", + ] + +} \ No newline at end of file diff --git a/.configs/gradle/deployment.gradle b/.configs/gradle/deployment.gradle new file mode 100644 index 0000000..926c615 --- /dev/null +++ b/.configs/gradle/deployment.gradle @@ -0,0 +1,24 @@ +// !该文件是从远程拉取的模板,请勿修改 +// +// update: 2016021701 + +ext { + isPushSdp = getPropertyOrDefault("PUSH_SDP", "true").toBoolean(); + isSnapshot = this.version.endsWith("-SNAPSHOT"); + + if (!isPushSdp) { + deployHost = "http://nexus.huayu.nd" + deployReleaseUrl = "${deployHost}/nexus/content/repositories/releases" + deploySnapshotUrl = "${deployHost}/nexus/content/repositories/snapshots" + nexusUsername = System.properties['deployHyUsername'] + nexusPassword = System.properties['deployHyPassword'] + } else { + deployHost = "http://nexus.sdp.nd" + deployReleaseUrl = "${deployHost}/nexus/content/repositories/android" + deploySnapshotUrl = "${deployHost}/nexus/content/repositories/android_snapshot" + nexusUsername = System.properties['deploySdpUsername'] + nexusPassword = System.properties['deploySdpPassword'] + } + + deployLocalRepo = "file:///e:/repo" +} \ No newline at end of file diff --git a/.configs/gradle/dexcount.gradle b/.configs/gradle/dexcount.gradle new file mode 100644 index 0000000..d7cefb9 --- /dev/null +++ b/.configs/gradle/dexcount.gradle @@ -0,0 +1,16 @@ +// !该文件是从远程拉取的模板,请勿修改 +// +// update: 2016021701 + +// A Gradle plugin to report the number of method references in your APK on every build. +// https://github.com/KeepSafe/dexcount-gradle-plugin +apply plugin: 'com.getkeepsafe.dexcount' + +dexcount { + includeClasses = false + includeFieldCount = true + //includeTotalMethodCount = false + printAsTree = false + orderByMethodCount = true + verbose = false +} \ No newline at end of file diff --git a/.configs/gradle/findbugs.gradle b/.configs/gradle/findbugs.gradle new file mode 100644 index 0000000..2f7c69c --- /dev/null +++ b/.configs/gradle/findbugs.gradle @@ -0,0 +1,30 @@ +// !该文件是从远程拉取的模板,请勿修改 +// +// update: 2016021701 + +apply plugin: 'findbugs' + +task findbugs(type: FindBugs) { + ignoreFailures = false + effort = "max" + reportLevel = "high" + excludeFilter = new File("${cacheConfigs}/findbugs/findbugs-filter.xml") + classes = files("${project.buildDir}/intermediates/classes") + + source 'src' + include '**/*.java' + exclude '**/gen/**' + + reports { + xml.enabled = false + html.enabled = true + xml { + destination "${project.buildDir}/reports/findbugs/findbugs.xml" + } + html { + destination "${project.buildDir}/reports/findbugs/findbugs.html" + } + } + + classpath = files() +} diff --git a/.configs/gradle/jacoco.gradle b/.configs/gradle/jacoco.gradle new file mode 100644 index 0000000..a562ef8 --- /dev/null +++ b/.configs/gradle/jacoco.gradle @@ -0,0 +1,40 @@ +// !该文件是从远程拉取的模板,请勿修改 +// +// update: 2016021701 + +apply plugin: "jacoco" + +task jacocoReport(type: JacocoReport, dependsOn: ['testDebugUnitTest']) { + group = 'Reporting' + description = 'Generate Jacoco coverage reports after running tests.' + + reports { + xml.enabled = true + html.enabled = true + } + + // "gradle dependencies" - shows configurations + // "jacocoAgent/jacocoAnt" and "androidJacocoAgent/androidJacocoAnt" + // The Android version is a newer version + // Use hidden configuration, for details look into JacocoPlugin.groovy + jacocoClasspath = configurations['androidJacocoAnt'] + + // exclude auto-generated classes and tests + def fileFilter = ['**/R.class', '**/R$*.class', '**/BuildConfig.*', '**/Manifest*.*', '**/*Test*.*', 'android/**/*.*'] + def debugTree = fileTree(dir: "${buildDir}/intermediates/classes/debug", excludes: fileFilter) + def mainSrc = "${projectDir}/src/main/java" + + sourceDirectories = files([mainSrc]) + classDirectories = files([debugTree]) + executionData = fileTree(dir: projectDir, includes: ['**/*.exec']) + + // Bit hacky but fixes https://code.google.com/p/android/issues/detail?id=69174. + // We iterate through the compiled .class tree and rename $$ to $. + doFirst { + new File("$buildDir/intermediates/classes/").eachFileRecurse { file -> + if (file.name.contains('$$')) { + file.renameTo(file.path.replace('$$', '$')) + } + } + } +} \ No newline at end of file diff --git a/.configs/gradle/library.gradle b/.configs/gradle/library.gradle new file mode 100644 index 0000000..0197c53 --- /dev/null +++ b/.configs/gradle/library.gradle @@ -0,0 +1,14 @@ +// !该文件是从远程拉取的模板,请勿修改 +// +// update: 2016021701 + +apply plugin: 'com.android.library' + +apply from: "${cacheConfigs}/gradle/dependencies.gradle" +apply from: "${cacheConfigs}/gradle/checkstyle.gradle" +//apply from: "${cacheConfigs}/gradle/findbugs.gradle" + +apply from: "${cacheConfigs}/gradle/android.gradle" +apply from: "${cacheConfigs}/custom/base.gradle" +apply from: "${cacheConfigs}/custom/library.gradle" +apply from: "${cacheConfigs}/gradle/retrolambda.gradle" diff --git a/.configs/gradle/librarySimplify.gradle b/.configs/gradle/librarySimplify.gradle new file mode 100644 index 0000000..7e0f5ad --- /dev/null +++ b/.configs/gradle/librarySimplify.gradle @@ -0,0 +1,8 @@ +// !该文件是从远程拉取的模板,请勿修改 +// +// update: 2016021701 + +apply plugin: 'com.android.library' + +apply from: "${cacheConfigs}/gradle/dependencies.gradle" +apply from: "${cacheConfigs}/gradle/android.gradle" \ No newline at end of file diff --git a/.configs/gradle/retrolambda.gradle b/.configs/gradle/retrolambda.gradle new file mode 100644 index 0000000..b5b3a00 --- /dev/null +++ b/.configs/gradle/retrolambda.gradle @@ -0,0 +1,21 @@ +// !该文件是从远程拉取的模板,请勿修改 +// +// update: 2016021701 + +apply plugin: 'me.tatarka.retrolambda' + +retrolambda { + jdk System.getenv("JAVA8_HOME") + oldJdk System.getenv("JAVA_HOME") + javaVersion JavaVersion.VERSION_1_6 +// jvmArgs '-arg1', '-arg2' + defaultMethods false + incremental true +} + +android { + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } +} \ No newline at end of file diff --git a/.configs/gradle/sign.gradle b/.configs/gradle/sign.gradle new file mode 100644 index 0000000..33b0bb9 --- /dev/null +++ b/.configs/gradle/sign.gradle @@ -0,0 +1,35 @@ +import groovy.text.SimpleTemplateEngine +// !该文件是从远程拉取的模板,请勿修改 +// +// update: 2016022501 + +android { + def cachePath = "${cacheConfigs}/custom/sign/sign.properties" + File propFile = file(cachePath) + if (propFile.exists()) { + def props = new Properties() + props.load(new FileInputStream(propFile)) + + File keystore = file(new SimpleTemplateEngine().createTemplate(props['keystore']).make(parent.getProperties()).toString()) + + if (keystore.exists()) { + signingConfigs { + release { + storeFile keystore + storePassword props['keystore.password'] + keyAlias props['keyAlias'] + keyPassword props['keyPassword'] + } + } + buildTypes { + release { + signingConfig signingConfigs.release + minifyEnabled true + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } + } else { + println "keystore file is not found!!!" + } + } +} \ No newline at end of file diff --git a/.configs/gradle/sonar.gradle b/.configs/gradle/sonar.gradle new file mode 100644 index 0000000..e741710 --- /dev/null +++ b/.configs/gradle/sonar.gradle @@ -0,0 +1,29 @@ +// !该文件是从远程拉取的模板,请勿修改 +// +// update: 2016021701 + +apply plugin: "sonar-runner" + +apply from: "${cacheConfigs}/gradle/jacoco.gradle" + +sonarRunner { + + def url = "jdbc:mysql://mysql.server.huayu.nd:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance"; + + sonarProperties { + property "sonar.host.url", System.properties['sonarUrl'] + + property "sonar.jdbc.url", "${url}" + property "sonar.jdbc.driverClassName", "com.mysql.jdbc.Driver" + property "sonar.jdbc.username", System.properties['sonarDbUsername'] + property "sonar.jdbc.password", System.properties['sonarDbPassword'] + property "sonar.language", "java" + property "sonar.sources", "src/main/java" + property "sonar.binaries", "build" + property "sonar.sourceEncoding", "UTF-8" + property "sonar.projectName", "android_${this.group}:${this.name}" + property "sonar.projectKey", "android_${this.group}:${this.name}" + + property "sonar.jacoco.reportPath", "${buildDir}/jacoco/testDebugUnitTest.exec" + } +} \ No newline at end of file diff --git a/.configs/gradle/upload.gradle b/.configs/gradle/upload.gradle new file mode 100644 index 0000000..52e348e --- /dev/null +++ b/.configs/gradle/upload.gradle @@ -0,0 +1,28 @@ +// !该文件是从远程拉取的模板,请勿修改 +// +// update: 2016021701 + +apply plugin: 'maven' + +apply from: "${cacheConfigs}/gradle/deployment.gradle" + +uploadArchives { + repositories { + mavenDeployer { + def conf = project.ext + def deployName = project.properties['deployName'] + if (deployName == null) { + deployName = this.name + } + repository(url: "${conf.deployReleaseUrl}") { + authentication(userName: "${conf.nexusUsername}", password: "${conf.nexusPassword}") + } + snapshotRepository(url: "${conf.deploySnapshotUrl}") { + authentication(userName: "${conf.nexusUsername}", password: "${conf.nexusPassword}") + } + pom.version = "${this.version}" + pom.groupId = "${this.group}" + pom.artifactId = "${deployName}" + } + } +} \ No newline at end of file diff --git a/.configs/gradle/uploadJar.gradle b/.configs/gradle/uploadJar.gradle new file mode 100644 index 0000000..d9686f6 --- /dev/null +++ b/.configs/gradle/uploadJar.gradle @@ -0,0 +1,29 @@ +// !该文件是从远程拉取的模板,请勿修改 +// +// update: 2016021701 + +apply plugin: 'maven' + +apply from: "${cacheConfigs}/gradle/deployment.gradle" +apply from: "${cacheConfigs}/gradle/androidJarBuild.gradle" + +uploadJarArchives { + repositories { + mavenDeployer { + def conf = project.ext + def deployName = project.properties['deployName'] + if (deployName == null) { + deployName = this.name + } + repository(url: "${conf.deployReleaseUrl}") { + authentication(userName: "${conf.nexusUsername}", password: "${conf.nexusPassword}") + } + snapshotRepository(url: "${conf.deploySnapshotUrl}") { + authentication(userName: "${conf.nexusUsername}", password: "${conf.nexusPassword}") + } + pom.version = "${this.version}" + pom.groupId = "${this.group}" + pom.artifactId = "${deployName}" + } + } +} \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c95ad6d --- /dev/null +++ b/.gitignore @@ -0,0 +1,34 @@ +# Built application files +*.apk +*.ap_ + +# Files for the Dalvik VM +*.dex + +# Java class files +*.class + +# Generated files +bin/ +gen/ + +# Gradle files +.gradle/ +build/ + +# Local configuration file (sdk path, etc) +local.properties + +# Proguard folder generated by Eclipse +proguard/ + +#Log Files +*.log + +*.iml +*.iws +*.ipr + +gen-*/ +target/ +.idea/ \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..d15d573 --- /dev/null +++ b/build.gradle @@ -0,0 +1,42 @@ +apply from: "config.gradle" + +subprojects { project -> + group = GROUP + version = VERSION_NAME + + repositories { + maven { + url = "http://maven.oschina.net/content/groups/public/" + } + maven { url "https://jitpack.io" } + jcenter() + } + + buildscript { + repositories { + jcenter() + maven { + url = "http://maven.oschina.net/content/groups/public/" + } + } + dependencies { + classpath 'com.android.tools.build:gradle:2.1.0-beta3' + classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3' + classpath 'me.tatarka:gradle-retrolambda:3.2.3' + classpath 'me.tatarka.retrolambda.projectlombok:lombok.ast:0.2.3.a2' + classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' + // A Gradle plugin to report the number of method references in your APK on every build. + classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.3.0' + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } + // Exclude the version that the android plugin depends on. + configurations.classpath.exclude group: 'com.android.tools.external.lombok' + } + + configurations.all { resolutionStrategy.cacheChangingModulesFor 0, 'seconds' } +} + +task clean(type: Delete) { + delete rootProject.buildDir +} \ No newline at end of file diff --git a/config.gradle b/config.gradle new file mode 100644 index 0000000..115d615 --- /dev/null +++ b/config.gradle @@ -0,0 +1,21 @@ +allprojects { + ext { + getPropertyOrDefault = { key, defValue -> + if (project.getProperties().containsKey(key)) { + return project.getProperties().get(key) + } else { + return defValue + } + } + + downloadFile = { localFile, url -> + if (!localFile.exists()) { + new URL(url).withInputStream { i -> localFile.withOutputStream { it << i } } + } + } + + cacheConfigsDir = getPropertyOrDefault("CONFIG_CACHE", ".configs") + cacheConfigs = "${rootDir}/${cacheConfigsDir}" +// remoteConfigsUrl = "${CONFIG_URL}/" + } +} \ No newline at end of file diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..6a33f9b --- /dev/null +++ b/gradle.properties @@ -0,0 +1,24 @@ +# Project-wide Gradle settings. + +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. + +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html + +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +# Default value: -Xmx10248m -XX:MaxPermSize=256m +# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 + +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true + +GROUP=com.jackoder.android +VERSION_NAME=1.0 + +POM_SITE_URL=https://github.com/jackoder/webview-assist +POM_GIT_URL=https://github.com/jackoder/webview-assist.git \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..13372aef5e24af05341d49695ee84e5f9b594659 GIT binary patch literal 53636 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ⅅ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 H-+%o-(+5aQ literal 0 HcmV?d00001 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..122a0dc --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Mon Dec 28 10:00:20 PST 2015 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip diff --git a/gradlew b/gradlew new file mode 100644 index 0000000..9d82f78 --- /dev/null +++ b/gradlew @@ -0,0 +1,160 @@ +#!/usr/bin/env bash + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn ( ) { + echo "$*" +} + +die ( ) { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; +esac + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +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" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..8a0b282 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,90 @@ +@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 + +@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= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +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 init + +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 + +:init +@rem Get command-line arguments, handling Windowz variants + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ + +: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 %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="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! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/library/.gitignore b/library/.gitignore new file mode 100644 index 0000000..796b96d --- /dev/null +++ b/library/.gitignore @@ -0,0 +1 @@ +/build diff --git a/library/build.gradle b/library/build.gradle new file mode 100644 index 0000000..2c14b74 --- /dev/null +++ b/library/build.gradle @@ -0,0 +1,9 @@ +apply from: "${cacheConfigs}/gradle/library.gradle" + +dependencies { + compile fileTree(dir: 'libs', include: ['*.jar']) + compile libs.jacksonDatabind +} + +apply from: "${cacheConfigs}/gradle/android-artifacts.gradle" +//apply from: "${cacheConfigs}/gradle/upload.gradle" \ No newline at end of file diff --git a/library/gradle.properties b/library/gradle.properties new file mode 100644 index 0000000..f71221f --- /dev/null +++ b/library/gradle.properties @@ -0,0 +1,3 @@ +POM_NAME=webview-assist +POM_PACKAGING=aar +POM_ARTIFACT_ID=webview-assist \ No newline at end of file diff --git a/library/proguard-rules.pro b/library/proguard-rules.pro new file mode 100644 index 0000000..3e2e8a8 --- /dev/null +++ b/library/proguard-rules.pro @@ -0,0 +1,17 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in E:/sdk/android-sdk-windows/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} diff --git a/library/src/androidTest/java/com/nd/hy/android/platform/guide/lib/ApplicationTest.java b/library/src/androidTest/java/com/nd/hy/android/platform/guide/lib/ApplicationTest.java new file mode 100644 index 0000000..d17a238 --- /dev/null +++ b/library/src/androidTest/java/com/nd/hy/android/platform/guide/lib/ApplicationTest.java @@ -0,0 +1,13 @@ +package com.nd.hy.android.platform.guide.lib; + +import android.app.Application; +import android.test.ApplicationTestCase; + +/** + * Testing Fundamentals + */ +public class ApplicationTest extends ApplicationTestCase { + public ApplicationTest() { + super(Application.class); + } +} \ No newline at end of file diff --git a/library/src/main/AndroidManifest.xml b/library/src/main/AndroidManifest.xml new file mode 100644 index 0000000..551f080 --- /dev/null +++ b/library/src/main/AndroidManifest.xml @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/library/src/main/java/com/nd/hy/android/webview/library/BaseJSInterface.java b/library/src/main/java/com/nd/hy/android/webview/library/BaseJSInterface.java new file mode 100644 index 0000000..b6b3b09 --- /dev/null +++ b/library/src/main/java/com/nd/hy/android/webview/library/BaseJSInterface.java @@ -0,0 +1,43 @@ +package com.nd.hy.android.webview.library; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +import java.io.IOException; + +/** + * @author Jackoder + * @version 2015/7/14. + */ +public class BaseJSInterface { + + ObjectMapper mMapper = new ObjectMapper(); + + protected T convertJson2Data(Class model, String jsonString) { + try { + return mMapper.readValue(jsonString, model); + } catch (IOException e) { + e.printStackTrace(); + } + return null; + } + + protected String convertData2Json(Object data) { + try { + return mMapper.writeValueAsString(data); + } catch (JsonProcessingException e) { + e.printStackTrace(); + return null; + } + } + + protected boolean isNull(Object obj) { + if (null != obj) { + if (obj instanceof String) { + return obj.equals("null"); + } + return false; + } + return true; + } +} diff --git a/library/src/main/java/com/nd/hy/android/webview/library/SafeWebChromeClient.java b/library/src/main/java/com/nd/hy/android/webview/library/SafeWebChromeClient.java new file mode 100644 index 0000000..90c2a80 --- /dev/null +++ b/library/src/main/java/com/nd/hy/android/webview/library/SafeWebChromeClient.java @@ -0,0 +1,322 @@ +/** + * Summary: 应用中使用的WebChromeClient基类 + * Version 1.0 + * Date: 13-11-8 + * Time: 下午2:31 + * Copyright: Copyright (c) 2013 + */ + +package com.nd.hy.android.webview.library; + +import android.text.TextUtils; +import android.util.Log; +import android.webkit.JsPromptResult; +import android.webkit.WebChromeClient; +import android.webkit.WebView; +import org.json.JSONArray; +import org.json.JSONObject; + +import java.lang.reflect.Method; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; + + +public class SafeWebChromeClient extends WebChromeClient { + + private final String TAG = SafeWebChromeClient.class.getSimpleName(); + + private static final boolean DEBUG = true; + private static final String VAR_ARG_PREFIX = "arg"; + private static final String MSG_PROMPT_HEADER = "HYAndAPP:"; + private static final String KEY_INTERFACE_NAME = "obj"; + private static final String KEY_FUNCTION_NAME = "func"; + private static final String KEY_ARG_ARRAY = "args"; + private static final String[] mFilterMethods = { + "getClass", + "hashCode", + "notify", + "notifyAll", + "equals", + "toString", + "wait", + }; + + private HashMap mJsInterfaceMap = new HashMap(); + private String mJsStringCache = null; + + private boolean mIsInjectedJS; + + @Override + public void onProgressChanged(WebView view, int newProgress) { + //为什么要在这里注入JS + //1 OnPageStarted中注入有可能全局注入不成功,导致页面脚本上所有接口任何时候都不可用 + //2 OnPageFinished中注入,虽然最后都会全局注入成功,但是完成时间有可能太晚,当页面在初始化调用接口函数时会等待时间过长 + //3 在进度变化时注入,刚好可以在上面两个问题中得到一个折中处理 + //为什么是进度大于25%才进行注入,因为从测试看来只有进度大于这个数字页面才真正得到框架刷新加载,保证100%注入成功 + if (newProgress <= 25) { + mIsInjectedJS = false; + } else if (!mIsInjectedJS) { + view.loadUrl(mJsStringCache); + mIsInjectedJS = true; + Log.d(TAG, "inject js interface completely on progress " + newProgress); + + } + super.onProgressChanged(view, newProgress); + } + + @Override + public boolean onJsPrompt(WebView view, String url, String message, String defaultValue, JsPromptResult result) { + if (message.startsWith(MSG_PROMPT_HEADER)) { + handleJsInterface(view, url, message, defaultValue, result); + return true; + } + return super.onJsPrompt(view, url, message, defaultValue, result); + } + + public void addJavascriptInterface(Object obj, String interfaceName) { + if (TextUtils.isEmpty(interfaceName)) { + return; + } + mJsInterfaceMap.put(interfaceName, obj); + genJavascriptInterfaceString(); + } + + public void removeJavascriptInterface(WebView webView, String interfaceName) { + mJsInterfaceMap.remove(interfaceName); + mJsStringCache = null; + genJavascriptInterfaceString(); + webView.loadUrl(mJsStringCache); + } + + public void refreshJavascriptInterface(WebView webView) { + genJavascriptInterfaceString(); + webView.loadUrl(mJsStringCache); + } + + private void genJavascriptInterfaceString() { + if (!TextUtils.isEmpty(mJsStringCache)) { + return; + } + if (mJsInterfaceMap.size() == 0) { + mJsStringCache = null; + return; + } + + /* + * 要注入的JS的格式,其中XXX为注入的对象的方法名,例如注入的对象中有一个方法A,那么这个XXX就是A + * 如果这个对象中有多个方法,则会注册多个window.XXX_js_interface_name块,我们是用反射的方法遍历 + * 注入对象中的所有带有@JavaScripterInterface标注的方法 + * + * javascript:(function JsAddJavascriptInterface_(){ + * if(typeof(window.XXX_js_interface_name)!='undefined'){ + * console.log('window.XXX_js_interface_name is exist!!'); + * }else{ + * window.XXX_js_interface_name={ + * XXX:function(arg0,arg1){ + * return prompt('MyApp:'+JSON.stringify({obj:'XXX_js_interface_name',func:'XXX_',args:[arg0,arg1]})); + * }, + * }; + * } + * })() + */ + + Iterator> iterator = mJsInterfaceMap.entrySet().iterator(); + // Head + StringBuilder script = new StringBuilder(); + script.append("javascript:(function JsAddJavascriptInterface_(){"); + + // Add methods + try { + while (iterator.hasNext()) { + Map.Entry entry = iterator.next(); + String interfaceName = entry.getKey(); + Object obj = entry.getValue(); + + createJsMethod(interfaceName, obj, script); + } + } catch (Exception e) { + e.printStackTrace(); + } + + // End + script.append("})()"); + + mJsStringCache = script.toString(); + } + + private void createJsMethod(String interfaceName, Object obj, StringBuilder script) { + if (TextUtils.isEmpty(interfaceName) || (null == obj) || (null == script)) { + return; + } + + Class objClass = obj.getClass(); + + script.append("if(typeof(window.").append(interfaceName).append(")!='undefined'){"); + if (DEBUG) { + script.append(" console.log('window." + interfaceName + "_js_interface_name is exist!!');"); + } + + script.append("}else {"); + script.append(" window.").append(interfaceName).append("={"); + + // Add methods + Method[] methods = objClass.getMethods(); + for (Method method : methods) { + String methodName = method.getName(); + // 过滤掉Object类的方法,包括getClass()方法,因为在Js中就是通过getClass()方法来得到Runtime实例 + if (filterMethods(methodName)) { + continue; + } + + script.append(" ").append(methodName).append(":function("); + // 添加方法的参数 + int argCount = method.getParameterTypes().length; + if (argCount > 0) { + int maxCount = argCount - 1; + for (int i = 0; i < maxCount; ++i) { + script.append(VAR_ARG_PREFIX).append(i).append(","); + } + script.append(VAR_ARG_PREFIX).append(argCount - 1); + } + + script.append(") {"); + + // Add implementation + if (method.getReturnType() != void.class) { + script.append(" return ").append("prompt('").append(MSG_PROMPT_HEADER).append("'+"); + } else { + script.append(" prompt('").append(MSG_PROMPT_HEADER).append("'+"); + } + + // Begin JSON + script.append("JSON.stringify({"); + script.append(KEY_INTERFACE_NAME).append(":'").append(interfaceName).append("',"); + script.append(KEY_FUNCTION_NAME).append(":'").append(methodName).append("',"); + script.append(KEY_ARG_ARRAY).append(":["); + // 添加参数到JSON串中 + if (argCount > 0) { + int max = argCount - 1; + for (int i = 0; i < max; i++) { + script.append(VAR_ARG_PREFIX).append(i).append(","); + } + script.append(VAR_ARG_PREFIX).append(max); + } + + // End JSON + script.append("]})"); + // End prompt + script.append(");"); + // End function + script.append(" }, "); + } + + // End of obj + script.append(" };"); + // End of if or else + script.append("}"); + } + + private boolean handleJsInterface(WebView view, String url, String message, String defaultValue, + JsPromptResult result) { + String jsonStr = message.substring(MSG_PROMPT_HEADER.length()); + try { + JSONObject jsonObj = new JSONObject(jsonStr); + String interfaceName = jsonObj.getString(KEY_INTERFACE_NAME); + String methodName = jsonObj.getString(KEY_FUNCTION_NAME); + JSONArray argsArray = jsonObj.getJSONArray(KEY_ARG_ARRAY); + Object[] args = null; + if (null != argsArray) { + int count = argsArray.length(); + if (count > 0) { + args = new Object[count]; + + for (int i = 0; i < count; ++i) { + args[i] = argsArray.get(i); + } + } + } + + if (invokeJSInterfaceMethod(result, interfaceName, methodName, args)) { + return true; + } + } catch (Exception e) { + e.printStackTrace(); + } + + result.cancel(); + return false; + } + + private boolean invokeJSInterfaceMethod(JsPromptResult result, + String interfaceName, String methodName, Object[] args) { + + boolean succeed = false; + final Object obj = mJsInterfaceMap.get(interfaceName); + if (null == obj) { + result.cancel(); + return false; + } + Class[] parameterTypes = null; + int count = 0; + if (args != null) { + count = args.length; + } + + if (count > 0) { + parameterTypes = new Class[count]; + for (int i = 0; i < count; ++i) { + Class cls = getClassFromJsonObject(args[i]); + parameterTypes[i] = cls; + if (cls == String.class && args[i].getClass() != String.class) { + args[i] = "undefined"; + } + } + } + + try { + Method method = obj.getClass().getMethod(methodName, parameterTypes); + Object returnObj = method.invoke(obj, args); // 执行接口调用 + boolean isVoid = returnObj == null || returnObj.getClass() == void.class; + String returnValue = isVoid ? "" : returnObj.toString(); + result.confirm(returnValue); // 通过prompt返回调用结果 + succeed = true; + } catch (NoSuchMethodException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } + + result.cancel(); + return succeed; + } + + private Class getClassFromJsonObject(Object obj) { + Class cls = obj.getClass(); + + // js对象只支持int boolean string三种类型 + if (cls == Integer.class) { + cls = Integer.TYPE; + } else if (cls == Long.class) { + cls = Long.TYPE; + } else if (cls == Double.class) { + cls = Double.TYPE; + } else if (cls == Boolean.class) { + cls = Boolean.TYPE; + } else { + cls = String.class; + } + + return cls; + } + + private boolean filterMethods(String methodName) { + for (String method : mFilterMethods) { + if (method.equals(methodName)) { + return true; + } + } + + return false; + } +} diff --git a/library/src/main/java/com/nd/hy/android/webview/library/WebViewDelegate.java b/library/src/main/java/com/nd/hy/android/webview/library/WebViewDelegate.java new file mode 100644 index 0000000..705b181 --- /dev/null +++ b/library/src/main/java/com/nd/hy/android/webview/library/WebViewDelegate.java @@ -0,0 +1,226 @@ +package com.nd.hy.android.webview.library; + +import android.annotation.SuppressLint; +import android.annotation.TargetApi; +import android.content.Context; +import android.os.Build; +import android.text.TextUtils; +import android.webkit.WebChromeClient; +import android.webkit.WebSettings; +import android.webkit.WebView; +import android.webkit.WebViewClient; + +/** + * @author Jackoder + * @version 2015/7/13. + */ +public class WebViewDelegate { + + private Context mContext; + private WebView mWebView; + private WebSettings mWebSettings; + private SafeWebChromeClient mChromeClient; + + private WebViewDelegate(WebView webView) { + this.mWebView = webView; + this.mContext = mWebView.getContext(); + this.mWebSettings = mWebView.getSettings(); + } + + public static WebViewDelegate target(WebView webView) { + if (null == webView) { + throw new IllegalArgumentException("Argument 'webView' cannot be null!"); + } + WebViewDelegate delegate = new WebViewDelegate(webView); + delegate.removeSearchBoxImpl(); + return delegate; + } + + @TargetApi(Build.VERSION_CODES.HONEYCOMB) + private void removeSearchBoxImpl() { + if (hasHoneycomb() && !hasJellyBeanMR1()) { + mWebView.removeJavascriptInterface("searchBoxJavaBridge_"); + } + } + + + public WebViewDelegate defaultSettings() { + //User-Agent +// if (sUserAgent == null) { +// sUserAgent = UserAgentUtils.get(mContext); +// } +// mWebSettings.setUserAgentString(sUserAgent); + //自动适配 PC 页面 + //支持html有viewport的meta标签,例如:设定支持缩放,最大两倍缩放 + // + mWebSettings.setUseWideViewPort(true); + mWebSettings.setLoadWithOverviewMode(true); + //Zoom + enableZoom(); + //Zoom Controls + disableZoomControls(); + //JavaScript + enableJavaScript(); + //Database + enableDatabase(); + //Geolocation + enableGeolocation(); + //App Cache + disableAppCache(); + //Accelerate + mWebSettings.setRenderPriority(WebSettings.RenderPriority.HIGH); + return this; + } + + public WebViewDelegate go(String url) { + mWebView.loadUrl(url); + return this; + } + + public WebViewDelegate setWebViewClient(WebViewClient webViewClient) { + mWebView.setWebViewClient(webViewClient); + return this; + } + + @SuppressLint("JavascriptInterface") + public WebViewDelegate addJavascriptInterface(Object obj, String interfaceName) { + if (TextUtils.isEmpty(interfaceName)) { + return this; + } + // 如果在4.2以上,直接调用 WebView 的方法来注册 + if (hasJellyBeanMR1()) { + mWebView.addJavascriptInterface(obj, interfaceName); + } else { + if (mChromeClient == null) { + mChromeClient = new SafeWebChromeClient(); + } + mChromeClient.addJavascriptInterface(obj, interfaceName); + mWebView.setWebChromeClient(mChromeClient); + } + return this; + } + + @TargetApi(Build.VERSION_CODES.HONEYCOMB) + public WebViewDelegate removeJavascriptInterface(String interfaceName) { + if (TextUtils.isEmpty(interfaceName)) { + return this; + } + // 如果在4.2以上,直接调用基类的方法来注册 + if (hasJellyBeanMR1()) { + mWebView.removeJavascriptInterface(interfaceName); + } else { + if (mChromeClient != null) { + mChromeClient.removeJavascriptInterface(mWebView, interfaceName); + } + } + return this; + } + + public WebViewDelegate setWebChromeClient(WebChromeClient webChromeClient) { + if (mChromeClient != null && !(webChromeClient instanceof SafeWebChromeClient)) { + throw new IllegalArgumentException("Argument 'webChromeClient' is not type of SafeWebChromeClient!"); + } + mWebView.setWebChromeClient(webChromeClient); + return this; + } + + private boolean hasHoneycomb() { + return Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB; + } + + private boolean hasJellyBeanMR1() { + return Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1; + } + + public WebViewDelegate setUserAgentString(String userAgent) { + if (!TextUtils.isEmpty(userAgent)) { + mWebSettings.setUserAgentString(userAgent); + } + return this; + } + + public WebViewDelegate enableZoom() { + mWebSettings.setBuiltInZoomControls(true); + mWebSettings.setSupportZoom(true); + return this; + } + + public WebViewDelegate disableZoom() { + mWebSettings.setBuiltInZoomControls(false); + mWebSettings.setSupportZoom(false); + return this; + } + + public WebViewDelegate enableDatabase() { + mWebSettings.setDatabaseEnabled(true); + mWebSettings.setDatabasePath(mContext.getApplicationContext().getDir("database", Context.MODE_PRIVATE).getPath()); + return this; + } + + @TargetApi(Build.VERSION_CODES.HONEYCOMB) + public WebViewDelegate enableZoomControls() { + if (hasHoneycomb()) { + mWebView.getSettings().setDisplayZoomControls(true); + } + return this; + } + + @TargetApi(Build.VERSION_CODES.HONEYCOMB) + public WebViewDelegate disableZoomControls() { + if (hasHoneycomb()) { + mWebView.getSettings().setDisplayZoomControls(false); + } + return this; + } + + public WebViewDelegate disableDatabase() { + mWebSettings.setDatabaseEnabled(false); + return this; + } + + public WebViewDelegate enableJavaScript() { + mWebSettings.setJavaScriptEnabled(true); + mWebSettings.setJavaScriptCanOpenWindowsAutomatically(true); + return this; + } + + public WebViewDelegate disableJavaScript() { + mWebSettings.setJavaScriptEnabled(false); + mWebSettings.setJavaScriptCanOpenWindowsAutomatically(false); + return this; + } + + /** + * 需要额外添加权限:ACCESS_FINE_LOCATION 和 ACCESS_COARSE_LOCATION + */ + public WebViewDelegate enableGeolocation() { + mWebSettings.setGeolocationEnabled(true); + mWebSettings.setGeolocationDatabasePath(mContext.getApplicationContext().getDir("location", Context.MODE_PRIVATE).getPath()); + return this; + } + + public WebViewDelegate disableGeolocation() { + mWebSettings.setGeolocationEnabled(false); + return this; + } + + public WebViewDelegate enableAppCache() { + mWebSettings.setAppCacheEnabled(true); + mWebSettings.setAppCachePath(mContext.getApplicationContext().getDir("cache", Context.MODE_PRIVATE).getPath()); + return this; + } + + public WebViewDelegate disableAppCache() { + mWebSettings.setAppCacheEnabled(false); + return this; + } + + public WebView getWebView() { + return mWebView; + } + + public WebSettings getWebSettings() { + return mWebSettings; + } + +} diff --git a/sample/.gitignore b/sample/.gitignore new file mode 100644 index 0000000..796b96d --- /dev/null +++ b/sample/.gitignore @@ -0,0 +1 @@ +/build diff --git a/sample/build.gradle b/sample/build.gradle new file mode 100644 index 0000000..1ee7032 --- /dev/null +++ b/sample/build.gradle @@ -0,0 +1,13 @@ +apply plugin: 'com.android.application' +apply from: "${cacheConfigs}/gradle/application.gradle" + +android.defaultConfig.applicationId = "com.nd.hy.android.webview.sample" + +dependencies { + compile fileTree(dir: 'libs', include: ['*.jar']) + + compile libs.appcompat + compile libs.butterKnife + compile project(':library') + +} \ No newline at end of file diff --git a/sample/proguard-rules.pro b/sample/proguard-rules.pro new file mode 100644 index 0000000..3e2e8a8 --- /dev/null +++ b/sample/proguard-rules.pro @@ -0,0 +1,17 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in E:/sdk/android-sdk-windows/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} diff --git a/sample/src/androidTest/java/com/nd/hy/android/platform/guide/ApplicationTest.java b/sample/src/androidTest/java/com/nd/hy/android/platform/guide/ApplicationTest.java new file mode 100644 index 0000000..4fe768d --- /dev/null +++ b/sample/src/androidTest/java/com/nd/hy/android/platform/guide/ApplicationTest.java @@ -0,0 +1,13 @@ +package com.nd.hy.android.platform.guide; + +import android.app.Application; +import android.test.ApplicationTestCase; + +/** + * Testing Fundamentals + */ +public class ApplicationTest extends ApplicationTestCase { + public ApplicationTest() { + super(Application.class); + } +} \ No newline at end of file diff --git a/sample/src/main/AndroidManifest.xml b/sample/src/main/AndroidManifest.xml new file mode 100644 index 0000000..18d6653 --- /dev/null +++ b/sample/src/main/AndroidManifest.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/sample/src/main/assets/background.jpg b/sample/src/main/assets/background.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8be467cdd6e04ccab13214b6b6349df2c0d14258 GIT binary patch literal 384604 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�szkz8)IqB{Vki#0m zZh?$XIPDM`zu7A)CI*m~@XWCt2v=|oFf*4uT9Xgu%)Cl_S3mVq*E`w z)<(M8uc~YQQKE8v-eY`5!L{^)s%vdcIis{UyL0_^<$o|;zHUuvD`+x^=s1Qyx9dJU!Z&=KF*ES>{A$y2goz=TbrPhzg=SC?0J4>%atDPPc{wP8uXa zg=}tm!rFCt*x2L`?F<>S2a3tU9;6eZb$s%QcEd764ppy9A6*%&^;dSD`D0ka>`Hog zrJe_L%qlvd?UCayMUkG8aR zm2^)4``guB+=|h0p*e=+@zk-3*O5{+)EIAFq%C0s4MH0DYE+7DLl5bJQ=t`8PX^7kgyobxQd3}Z@Lnh zK5qM@q5Bz*y>a$6L%SQ#kur0iCS=AN&?ad=yCbsTg0uAbf6WGjChs94{38h-=LFpw z2f=wZNHkRQ@B(o{j_>Uph8A}RC5dt|*cK4UEL#B4x&;_|pn1`t$qNo1RWf#~{M)FI zjg}DyYcRbgu>=E=BIumU(%Jq=n}goU3hTgg1mbYIvAu4$H~oy<`Cb04zBlcx1lbmF zihVH`F-}49RWf1~B!i#Xpx^s?bBh)>?Wfx7okI-NKP_d?XJ<}V!iiN)m4s`>z?-Gp zs=5KeZ(#!@cDRoK4a2^i-Z)LgrhcNJU}o*hkt<(4-JiI2_CuyM=BFmoo&_6!zh`)P z1e{*_5X!RY&arc*f&14xfr&vl{jmP7GU0;J&)uOGW8`DSnYGSnb6c;?UjL+#N$E;G zFvI4CoNOw@ZpllhZ3B(NZ4!5U<6!W5iM*+Aq;J2>WKUeRJysmK_Ak zJ2Hcns(MUXB+U-0At?jX|s!}+)Ngqy8jn;~$XW;k_Jo5f9V^84L z`gqj|c5Vp|G-@pQ4?%<4&hhVu_HX*Oaj(5{I3v##JkUZ|WM06auD@8q%26QQvOR8# zSqp>?_Jug`D992G%3+a>Cp=7~+~KU&l^Zjp^2@+xrB$uVo2kazt!acWDIf?CYqI6Y zc`dz&(gf|!`GVP+)J<~Gt<9b%gW0B&3i3uv(SvL4J3i+M9OLMQaP*^W2k^gt7+_^I z?Pv-|*n)qIy1wD)>x~K7CKXkY3%p-`nvOtI{$WT>ahZA6N!#c@!zo{lAZ<3bR_gtt zyYBeGTSoLd>*av+2HlY817Qi6Ffmml|N0UsZq9qh1;43c12(@z$l|NUdXcV{R53{$a10DY` zM7eXI6@h)>8zqslKzLM$z33wEC3C{sp(Iiuld}AxQNLZuP`NcYZsb=T2D?NwdAt>l z^(Q64jJ;ad3<_Y#d2g&Q1zsAu`C?jTR&lBxRslqIiQb9+z1#J6uNvFEnR;aCS1fd$ ze~IZ3`~9n;{I@ZHEa=Tu(|Q-|k-{Z+ym>QwrqpE8U;K3Zf-*a63*UHI6BL^o8);FY zWTbY|!zQgop5K|xZb?2*7r2SEt$?e6ZBTsf3O!7jIsD*!WeCst{8(0&^^nCNiKql6 z#`qBDbf)C+-wvO;{I6*oTqLFQiI~k)>bVV=4!F^PFdJ-f5g?K1Z}_hlRu}u`>?#nI zW&I{$R@dt=!28sx(Pej8J9nc2){odbC%BU8%U# zj$4Q56fk2fQVjj#&mBnp2_m4E^wn*64{x+F(A)zIo-?>MzbIBIpjrCxTELS8d zLO8{ZLDHueEM0WdRj{c52Z?~iasS^6Q38h_yg=IZnCFvg1A+bg@0o7~SQ{QKic}jl zV1G?xVG9!qVkuiW$Cn8GiL9~lT$_DbRLd)&IjXhbLL~mqBED%h{M`yh^l5N_2jo2Q zdJbA(%79wHfVDgrW}IOH;1&QIIztMfdo8>V7!R*`!V25yRz!ngZr~^axDN0~s|ukO zO{1o~C92|sWlauzmn*Inmca1W#EfN4PhWpM)r^+8>C(G%G5N6;GVCMQob!$YrmN|3 zT~r-*-jLA%q)5=DySZK4WbHVV!Eu597$*nizUyZIOOfOVp0#x#3X22YkHAL^_`-Cv zcmqEiKB@Voz((t5Zva0Gh7`|QXX@N&bTsF?ll&){qonS5zslJIi_mdmFgiu%-MYHW zrdreSPc6}V24N*z~s!_2l9F?+8bUyDfom-T&X{D!tbZMxOths^StdfXu4Ehxb9wqVzW2Zt z)Xctoq~hCpv0yL7i52n^>$h6Fg}&Ps$4@BlT#qPV>huaaW1|GCcu2h{919d5GiwRy z+TDxj&~>J2kjk>-J?W^S3Nqp`t03c=Oh0_gO8&L)Q5>AT2-us_RgF~#8q0A8=aV*3 zO6T`!sAb>gsXU`vb?MJGT>)#>4GJ+z!-qMn`qPf7M)fL>n4i-4J^d+TvLN|Wlh^P? zjdiYJ>BsOjZ-QVeMq$FgUcvru?M)>=)e(6o7Z0lAFW}fq!5G{bJyi~N6y4x-U!E<6 zS-sowfzL)gQM#dIs^4X%|KS96f;uT^^vXQYv`U#M#?%y$*7C6aMQ#Dp%B2{22Tne< z;;XK(3uY6yn`i-Vk?}gd!_fP-oL_yZr@6e}S=UrMdGsnqHmgNNT^up1;FGf=@bam& zTXni;{{o_^BpO6H60%*k0D$SQ--C#Km8)b=<@89|xL1Ql$WJ*GkMi?EMhuhoyie-H z2-c~IRY!PFZlllMm8qL0Hk}hMio6~~MrCX)UIz!n2{DvSj~vtlx}xx^wnACy4G}#L zrZudSYzcbcPTR4^NhR1XD&P3LOBxINUGA99f8M@*tY+b})7pwOD%j6uey1`s7wm;o zayTDBi4KMi*nxbqRL{bjR(6`)#oxcw zkVZ8=xZUQ#@5E~hJlrq3Yn>I6(pb^{{8q%HkXr{TFV=sSW-fe8kXaB@PBezz+mIz| z`I&OXrIus*CJ*&2(E6sIS&79TM~q-1jAac=M6ryK>W6&X9M|W7;t#~<`9KBD4?<@D zaNrD2U(EVH&h$wJa8bf~z~r3x#}TMpY0vU(7=Ozds6~bP!j9zNNQs$Qlo8wx!1f;D4M^_p-?|5)OAEk9`OXuQ(!`n7xpF z1)X(s{`-kW5}z+5KTDU#Du!bNsL=n4s4De#mrm!i%{|ib$uBx6_YVuVT>JKZxEquy z08V=5L++UMkB%+@*LHIXMoge`KsuDVl(KlM;W%f&WTKg6J>fzS0VW)Qe4{UsaxNv2 zg}n{U^H|8~;n7*5_e1Ndfux}yq28N|>QHk|i_az-Oc#QJ>W1~?Cj*l-9>JvHp_#F6 zX&I>l%`v}^PP>VJy3;H@ewnhm)%0lX-9k-7XBRxLcTVA4EK}{790l>Eqr9Aeq*a^X zyi?%vJ!BuC+qWiYYcFFICcJ|N>M>Fm#A_7n!cES|%aQkEwZbw-+?6)<3(oZ~d)skH z;m^k-s#ADx%c;t~b3Rd_36DWTTg|_m<ITFbXfK5T|5uR3|6w0~%g2KoZ!_``@wr zxf>-87x!jt?D7vEX;o)EW8xb({|M+Gl1iS~4J*nrx;36@oxJh2>5?U-C?UC*O>$)H zjmN_yn1@Kd(uYSXDe=7h5kh4v?$aBOZ&$g5+)pP5Ud7kcYc%Wc9K3dsDCWL4c!jU@ z!B)z$k&F?d0!2=oC`GrBiM9+n#t(@(&QUvG2n`(n?} z#OhMn{aTcHCn)&WJH5^f#R5f8oCkzt{P2vIkY0afv0|kdFVWXkt>4nmULmLMTw^&5 zy(umdYH#i;&nag@v5q-U_IvSUm#UA;k2Nl@J${L`xLsHD9J|tCd#UL_Mw;?_LP>vA zsoDLX8o)Gc1iwi?Yl^bZjUIcr^81=K$BQM_*=Pek0U&1p`Z^$(GEIQb9hY!2=ynCl z`rQxF+*8OC!1axd@#fsz(|RR2MN7^I;DQ=`*=^q7eAdIj=I94?+M zR}Y@4x?0hLejeQ%!@=`2bXg(zJfFIRwVVEAUYmred`d#<&20I*=RTh3N*U-TpLwa3 zD!cxvI3zse61o5Q~=1i5%(FT1}}}rb`>cg=NPJ z;UB1lhoWg^A4Yn_O{~~#c=cOst&caqhQf9r)r*MfHb zT)52&B{RQg&KSC!V1_)20mC#d>_D82iU$$-qAqkm@ip^_9wT?RxISZ>3&%cWW}X~9 zY~Vo+Ve)ae?YwpEIXr?GP`0zhBWkmJlrZHvnN%+zv5Ib4AIejUF1h2V%x-LZDDGv# z%k-|GQ_Z(9NF8jg@(-yA{spXY`k^WzoGhir1^@CGUm0;*IFb@Ns&eIvT(iJLIj6fR zKGZ^VcuIAkhGf#*6<2=Mr>7!Lhf;l|ujPEVoF>XYyp}h6IXBB_t&4wyop76(xrR)7 zT6bN@AOmGDIuTaAJCx5Sggi9&TC^eDuUkbm;XthegxB1nDLnGmWDE@VJ9Rho8`$4) zk2t#foM|0j1m<__XL)jU9B?Y7=DKbFFpRUY2tAF};VO*-+`7)Ej7vYvT@-9ku@hT* zB6m&=ta+5M5ni$2p0CZudxbJo;E2SkY3JTLfokf8xkX)HwSe6Rw;r()RcW%?Ea#e0 zhtk)(3bkq~?T&Xn7Kw03U}|?^@|oDD!nhN0(}7vhOXBN8ja@$ORt!{|)P&2L{CPTK zXOGADE2imj619Rv$|g@T$7Uc?VC%y>LlgZ1!T~?QUdV;_Bkhxr}n)zS_5H*F3p+6yY2Xi6~`5 zA9MF$AWWU(rX7M7+f;0g_q^1>62Ugp*QLA%ixwqhTnKU{O&zM>&%B&}`x z4$#1gTjj5Js2YwY+0^g_azE-ob%nGKmQ=PB`VQ>o1=#kVql@Ay2d z$7{B5h~~XaE%2+Gs&sg4=cRt)i^pd%;U+dVS(}HCg&K&(+&?4*jJ2HlT^4VMn>B#) z1&0tmzC+TkXKXty#>%^d%6JcFlAM(YPgF^s{)&{5S8kh~%$+V>w^~$O%Apy}_UkWu zIsb&)Bc1C*1RB3Vj&1+geew^3cPo#)^b(_hoWh4y)Kw`cb|Q2t^0HN!Y{D4L^n!}c zglO`h$l_ugS+Dy=|8&aY;h_6%pg>E@!Urz<{>QNDusI)U@C zlb3DMI6m1rFErF#+qVPVV5#7~y+Sg#K>v_zv@`ir5_)o5?)1m=x={HV;4|Mh&@rr- zg@P(2vP%Z)Z}_<6s6Yr9lu-Sh^Qjx?^b&=~5{LmQ+9#!SC?CKllB+@9X;g;kAr2b9VO3nKS3S z&g=PjD!Am-V%a?SE&CTV71kee$MpU!Q#@lZkD7i+GQ$X4S_F_`=Y9xg@XE5iKy{1P z($|*f1{COG5U?=qRQ{39QD$Gh371D-6U|HL(l+1?2D(xG9BP`MCY;N@a)cFF+I%Pv zW(mf^VMGw%0a^HrJcDx`&z9vnxZoY&teIe%3*u%0TZL2ErtD?(Bf*<8~zFUsuKiVe{Ofe`xET`U6EKh#EoU0w|-k$(>nvA?(tVvBY#(34mV_e2o4v-MyE#bP2FlsZ;9s z{hY>L1$v~56;M!#4ry5(?|k>=Qx4@fGpfn2e#f%prA${lOZ{LsT*}nBMS`$$h$|Bw zvqMk%%r&9#+TPfHV}3bVvk<#Wqh3LBnck>s;!+zqkRt(o?R_5pny!SQjfK-mbT=K1rio%-j*$~B4t zzz8h~jyL77)qPQ^WOQPjLdU2p#Z>+E+{D*{*#c8mSfmHTrzfyVZna^X1_-Yl36eS_ zgiE2BHjb6$-C;Ok$BBxct%C9U2twPfsvpxYIYvoBrI%RrOcqh_F%WRoJlqD=pdupUax^TH!{MZ7yE-m{wp75Eya- zGvl{_p6<+OWf_XH{U!UfHUE5CgJ_Xy3Yq75g`UJ6 zcTP%}Fc(%C;1-RHW4rkJ9FrG^gyqCm;w>1LQ8Q<3aKNy*og`zogD+#Sf-*Qc8%&-S z@&CdT#>lQUidh$nht%tr^J|rW0uwgD8AVi1xg#Vo)az27)~v-2VBx*<_KAs>UMKT& z(m5cHbt8=Y!^DI|aAP}_h#pgO40O?_z)-7WWW%^x%P}b5#RRu{Qim1SYDdAie--~0e>s%90l zwy;pwF$#H;odhO(W{g!Uq=-Li`LxRT1&{d&FLzR%tdWm0J~RCp7B896xr085mZehg zOm~opd$Tz_j-bpHwT3ip!6JNJDzxP>@@NGn;)W>HW~I&Oql@Kc3+CxEPQ8&x0s54Yw{T_Kkr$ zi#@e3J;$Bq8N#-(NY$NRfgt!h5Od7t`hlB!EgP#9)idOg~cbmELW z>|!ZdLLVElhV$zph?z0XPS%n}Y7{ZV76>18DbedNc#x`g&iFp*%Q-4ULjH&wFvw;& zeo5lmcPNd8VYT%0^J<~b1gZTQda1oKAj$cDMAQhYtQ0@SQ1|e9E^X!uXbsLbt%2jJU1rrDRr58<})X_LwuRT9a*qa|58{7**09S2M;g zlZ*eJWefPLgREk+Wv;ji|6Cbxnrq}bYLYZD(L5~7`XS0)tNCM;ex9pl%pEV+YOC72 zokLgVP(Qui#b`~3%F_)NXP5Def zPDZFUcB8YU1A@8Wt807xaRrl=iAP;I&8ce>U24n+z}hvVJ3+whOy3VFVyM<$UB=+< zVWCGhJ`14x(vTqJsBcZK+7kAO+3_Ic7Gy^4{=QP?<`tt4yHUZmuFE_R`JD8TSirzn zG{dy1nO@At0Ff*PHw~ruk-hKWG~)DP9p_k!b)0~-;ZbKW4{4Wr^djok4|`?ip~+>) zmFR^6geNRQ)VW-~6alQxl+S)$I}C&`CQ~S@yu*y==(lLjFxdK2mWOJm_v(D}%AXs) zuqsD;(k(p>?PpDayfHQYXz6hyvd)QYu2(SUXEZ|iu39r79z9aiy?irmcb8zz;h`S~b8dN5sT7{Igszd|ldJgw^# z^0H+lz>kY%b0}$(WIa?XfIH&(ya(j0q?Cuidnak^%N~`11B2Of{&C}C8#k(=MCaR= zE;rnH+u#!0!4iOO8rg2;v;ac-{<3IHRTVP1OFqrg4U-V?flIwqVkFE<1!n= zUT@KTV*Drx5A4qaOWtY7Sl0r{1>pRtr3@d`4x9e=sduUzuesGLf+E0~+{iP7XM}Vc z+e~;>qY5LcyXm~ku&#~5kTx?Z80MTIS%xW2`E#eUUyaPXMb8*-&yO9$zW3-iznRjM z_G!s$jHLksBS^OUsh0*kXGt5$``l8T*f8x8pX_%o9~O66YMEJRg26KoR|(X8iAQT2 zfuFOr^gEgUWD#5@Mp^R2)Wo%RX_Nv9wue5WQw zzkS9x?!Kru?f=kLH1f5|@=xqbkw^UXH4e-P!wYoBbmmZvP4R^#Yr<8-OO zThMKSUcXT4(L+0`P;IuE*w^{ic13*^P9TA8{6V4I#fLtPFQFfPTVN6_w-#{ zD0pu4oIVy%`xfar?MCGoV~wm8vm^!Ms%!GJoU3nHqw6gunFH9`rB3v$eCqt>(U0G~ zVm*Iq#Yygh*Y!)6nRC&7C~&=U7$ugzGyJGF-p%RHUOoFIp!y|CML3l+li^KQRF4g> zu_y#ipUN;r(c70k8e99y;F%3~!a;|oqU1OW6sD8dU~P@_t8rncV|gzQOLx0QNz~yT zC$TN+EfHyIrZa*|gKUWvSim4Xiw%AnhZEcFkxyaqjgz1tmGEOBN=HHca>~4g#IR1{ z+gDR$5C6;4u~UYFK@(dxihRz*ZE+ZV8iYVAl)`kUy4%I2S>LpRi#=8a4Ggs6;H=LK@}@mL2fL`LMg|pTBAb!iX0x93k%74W zFYmZ5xL-E4?AsU3?=^m(rC;QLSq@r=Xh1>&cr8N$Tqf3&1C35dxRS z(6cP|j6M@Qc0K}ehj9&O)Fkx-pS0*GE!!62TR%}e7cAd)qK-X$A!0sAN%{4!V#p8U z=S(XpBVBt8E=dG`K_O$?yq8m7?RhraWLB7vm!~TQJ@s8G?D@!{oU4oWu`@=vl=rf` z_ljZl<--knEcBMZSy%tsHlLwD4{G{wl@%))_QbklXrb)Yk3tc(^3&jr923SDbdb=V zoAs-m3;D{fEOhcj1FnmYSOG$c?*d}PftENx7bW>aG5A2V& zg#+p#m9t{6gh^vxkXrcZ)^B%f& zu-*XVNNTFk)9BTR>FjbZ{HWsy86moqTECVA)nWd0ZZPs3Ehkf0+*-rRK~(WO%W7K9 z$TyYIZ=ug?JWT`U*2kTvE^uP=q_SXchl0q3d9`N8YCo=F zSi)!5dn66HUStDa(>ZSgQ5W^Rol;z>$C>0Mr(p%}=#qz${Ep{w-#mQDtMB<>_X||5 z6rW42u;ia^qoy+nkBh&c+nKT74y@|%-;<4lG=D)VErDMS$jJi7q!!^s z+R#x|!}GKw$GNpDO4<`T!B3nB>&tNMp;Z}WG8zf^Uyz;WE>|f2>H@u7#iqin)77`` zTAQJp+}<(CnIU&EzeaU^tDkHuGzT~HZDu)wA^q4cpL{xp!w)PD`6F+02Ck~UoV@b? z(F0>vma%CDBFvDXyR|L;0QE<|4=z8mo`yFV=kQ)l&Yyio-XvEAPQ7>DL72#F{{9QH zuF<$!pJU*FN?frnul@-WbO<;k`Fgvz;Ht6I=W@$k5dHA31E^YHt_%w#-BGIwFZ4+qgNa z{SK+Rb(HB!*^%V$JoLKwMyZWUp&spbrbo|@WKT^7FAF|-&>2dX2UX`fjRgwiW${tD zANu^1ZF{k=wAzIov41@kV+M`2K6x%>tZ{8)dr?%e5*B|#9ZwNI^TUBrfc!k~ZY~um z>F6hU6i(G{IHvDeq~Q9UAc*+czmnbj_kNqRpeXQxEN(os9}&!4J;g>nl3K9wcdNNMmT@?&Zc= z%~ySGV~MgbH_l(C*VpuW!B6x&!>n}W1%>a+0|nlJ_j5&}i~;a#K5-T@-wX@tBct~1 z1M9vhv)_yjo>)3dVYr32p{Ql!Fs;Lz=78R}b3%{RYcbQu12&ZHi7#I$U}7tx5Yc}@ z_0pYh7dNE`8J7i3hth{H_kF}xYrD;6ZR|x_-9l>WchW9dF>RL9jAp;OImvL`=R<@! z^PN`J2L`+9O+Jf)9TeON@~(wht#&C1WWPSP(m>mgd%hWpZ9j4O(B~`sQ~7@Q;C{~S zP|}q|z{pleUrWf{gD2z4k9r)+Lrs`hnsR$0^I<3=#L)~QcXng=EBs{&XLG2sAJys& z7G=EaXyDP6#^SG=;8&b&zH(9LAqP$29jPr>-KjytzcZHYM>dadO9+;z%4c&1EXIQh za;z(~+BhgrbeeWfo?C}riN07DQKIj)e3{^TQL{Xm(&{ym)kEm^tM-x5UaXp=dK68W z%?|+y;P$?NpnUI%O+e}cK*3rjhLMOprhhTqzVpobsrBQ@nA}ycbP{V|24UhC=LDXD z7kos7e6rrxKU~*RJ|bSpRi$s?HT?zEIb8RlF#71M^acqRJ!+SrjDsV4IxNdlP$|{hQ`);Ynt9WpNr;J(5E-Ma4 zNtl=;_L3GJ9sIt*8x)Ka#q%*OMqJ&RCg<0tLZImvsJNo?w^k=KlIYhYCd3Xe8p(f< zkW*|X_4s;onO^f&K(SdGESIAVf|AWJgF&y{$KONZM`D9N2;fi=sMQQk#@#Px0;10( zv3_3HdJ#+I`v@M=T4V)(6he;Wk+2-e(_pTzr&pwO?U8)mTnW!1l7w#vCZZl@L6PE{ z>N`o`rfVTiS%--Q9{jn{^)lKKwZ!6Z;ZY;RSB>j8Q3FO}^OBFG>d4ey?e=BC=q31{ z{?c^WIcmbw@#ZSY9;n_?sPptQGCW_U&puf)625$e?qpIu%7JH>WeAp8JZzUZ%6l^D zF7xsw>*Ii0QXK1#Ih-bqCz4WJX~=0NaxLa+ctI*T()dR4(Ic-8Uml;pj9F1w68fu6 zw0G4fj%V5a1ClMeSzZfVi{lmuXfCC%eoDTps=52QpTOvKZ1H;mwUT2~ismn(>C<81DVxFR@5dD1ZL7GKPxdbE=*S@C|`C?(FMquA=vr?_9~3F`C4@%a$;&N@+@Bo8t7l-JYGix7CNA~f3HS$?7P`n?F~@@qrg zmyi=;omcXclcA&!h&CY^Gwk)|!i@{#xq#bSTkhd6t~6#)Q(2TG&m)QS8hpdCAbNjF zJ{1DpMQENXYL;a<|UV^)sDLlt(EigYjl$<6vStN%#?h_~DbphYGX_6T) zdG$!3i{zddVVL`MNgU~D=G+46W009TnI>##l);8535wtmn#CacXnUl-B>l&TYXkL& zpRiIv*T8s3i7?9g@n?G5IIhUAX^}oG&g|7I9=>anaYir!AxnUSd1d(&kl0ZmatSJWE`|+xn|-k~o~}An_F5!;X~i z@#X^7boINEBe!Hoc~b2QD`c|NM+Et(x$Q+@di6@ymwE-l(P9a_VKoem&~z0->9cWq z7sI-7g#sU25q}%`*KkU0`T*V>!A}#SE1uR;O}~ova-uXUbVBk=vpvje+^b!kDS@7T z*=gqIq_Pz5`I6Ef)9&(k5+!@^=krV10JVm%E~#P}IN(Ji&sTx9PTpj4!5X8e#}jRC zS4x3TzVVHSPKdKVBsOjqh_(41=Fgg;iiAX(I283;$Auic=iV+ex_S64lY+^>wsT_W zSl{9$EzfLvGVR$_ct=v}g7*~->jXV38|i!$w~5W+oRd>udOW8X&R&2vj&luQy2}<# zV;|CJ*s!B4u3qQLkZDl(fgsw02TfLZIcM5KS4+#ng_fk7jOR-rt2@UBS>HLX1GK)^ zMcwr!3AjM-cUF%%c!=b)P9;x{F-bYJTl=GtB-Rm@i&j_CKHw9zCQtvgy~M%{JbL~Y zB(lmgx0KQyWb`G_&J9iGME4n4mlDqV;2G7Fq{aL>sb>}Fkg9F!?F7ZXjvmaq&IQdsn*mQ~#H)^|!GP5+gSdedHU=P?~j zqTIAf-$0@s0SSIe6>|S3ObFfLCwlG2`z@J6;gg8WtZyYqFSez;{ZU5agEsDoMd8MD z#6-6)g9;>x3s+|z%(*zz^09-aC3UJy6qgS!4 z#HIj=<(LmI&6#6I)M#QN(Z`~LRif(XTaYgo!w?Hk30c=%J;#L~f+4PjkAk(fv; z&f%nH?Yv^Dai40M5wF)3W*h~rNWyBhw56LLk|>*iAMw3R(QLkRj@3-{{TWdw5?syL z*dxzI-RB*^vj-&P+SWSd$M=e4_OhhK9d==;}^Jr38XRff(xF9Ryv^_drAGZ+Y3Cyz>0m(z(8=vcg{O zQ4>#h^p&@P1b~uz=SajdwO}XE6^d1VVIORK8EuF@!^t(al9|LVw$glgUQ{;nA(wnKCV_VyDnBq{ z?P1@iO z8Kk3j)7pzp>8Mf5?~>kaIgr}`RBOhQs%3i_D+@gE{3TKVG9TYPifwijmNd8BHEUh; z>ZM#cuc#H5S}Yb@t&%NXK4eYp6QW0w>GgIQCSt3<&J9}PV*at%`IXz1=R#qFC{lfo zu)$iyh3CZk0*kXs@4I?`44E>Py6P8bHBZ!`q`GlC8tt7i(&G7B*FRqOazD>(FNk{! z1#;4{2GB&d)-m`9-~dt#z4`|VH`dguS;A5sz9dIZY)Z7v;JWvB84BxA$-P9A+E08W z+WZW{Om*lnK89{D#uX${Yboy4V#pr+oO463uc4Nv6O^|D4#MGA2J9=_hrMlx_%;=W zcmx#AHs5VX+Zj*7@h(>EI?=!ctYrbE_q>VxDUzbhrgv(M8Nkm<(HIct20@c`b;`nd@pv3=+Htb`TP%+f?=Q${ zL~k(E9dcAgv>w~?{Zmp8o{y~YgO{|H^+N5!SK4J7MnomkV;_3u89}_dreo{P_~Yc- z%F8TnSxmaE@BYvc@*~WjJ2@9S^3lhW8&?)Ie{7IFc15z0DRU`RyaXw=;%(}jhZ2Iv zS^}7ailD7YTfoBK%4CYkCLoE~vGiTEDq3)Fy}@>Q$C-Kq*; z9nH&7BlF+}yFGaOOy1E+S9-Grf66%hVriUc%efd87wVCah4AA!VR!A~#WyjsZmO{w zOuD||SR^qNC_($?<=8z=d)ZngnF1}A+!+4X3B1H_#Q_cBE8T)5JCbk~B?9F?Bm$(C zwt&(e6FC_J$h)2at(wXbT+am{96RoqQdWJK(a8JxS|vsa)KhF#HQbSY=(`Sayj#u) zNzvYk3To%BaOIGdskrdVNl~%R>re5JQCWZC#!MugW9*(5WG$JlC)l>64nqT4oeoR9 zB0a|qp5t=u5PU%X*dBA+*qYtnA2kfE6%i0N#}}Z^4*77fwG4=YMiarvTF}8L?YW~R zR?YHdtHOkCsYmV^7#R$vYdMm1^xr9B&dI8(S6_NR8@29*(2o%R(P$x;-$<&<&9oQa zn8!)_Xvk(;pqMjf@kBy;oo5T;3FOsnL%f_uXy*Z$B_Lz>ZlUPMEgbP3E2hEi2Azv7 zhAlN-BYl(sH!357at{_U?kkI*^``YpH46uAtVIHS$x)_T!7CH)`)qHhl6jyt!*`+$ zcuLpv<~4fVkU`gKQ+5g|+~?-ct!b$fs30sW8j)FbTrjt3uf`S$-NCQLb*zm;2rqUd z3Xn?`m@SjkHPtmSnvanbLo{O1N=i`ONS*zHt}6Qn@Ys zE9s?Xyl*BphhS^C3Qa3Mp80^;RweC-i{GTP4IP=H?+-cs@7j{H0JYT!2FWU@t!drk z(`I?f(K})KhEdsE1jxVz=3a@eD1c?-Gu)aqmosNcQZJd)Z!YpB(Tn^%SwL79jnz3$ zyvN#j?3+WZ@pxgL?`u)x(H)Vc-G*htop?HHT(tKPVqtLreMv6!ZWPE(Z@iO`{$LC* z31V+Fw8eN|JGK3Qkxt3AO&P(qtKHV$rdSduLJh-mkM8(-mt0_cowJ|SMBw4iJBB%i z?++j>R6i6b-0WBss<4uZJ56xMsBCk;`CI^?W-{1;v~31iaOb_8U@n&+g3fr((!Mo` z%YmKWmSTwXY{Vzyixbk-F3lvBc5T0uRbOku5|Gds(ao71`aRV%ni>k9u~w%D`3CL@ zpA5uHqnn)h;zAQ^l5lD1n8f^e7GVjb$m28uNhEyQvoOvCwd-e|m`INVKqN<OGjXI56F}TuGe|aO`yEPj$+$@=vmxcdVYVMbPE49zU1Vj_Lx4KG2$;Fu6U*HM ze^K7QAW4;|Nx#JU+7}o^P6xNe=z>`acqB6Iv8x?D}|T3_LAwl z7ru%&I`(B0F>*1&y`-&a1(g& z`5j#Q@#WKZ7bg_)qi)pMf?TjsO{yb{{{U%f#4GJM_;(#$EKiS0|18? zxV7zh;D4HA2_V6ZYPSQx7`Xoc_3>^00N;HN+<%Dt28cwULV$uj1wa9utF~A;UvH=1 z3j_;IsQHa+9Bce;Ur>{sN6qE*UvDKowiPUy16bU^9WwKL2$13*&H=m8D_0RErzXP-lUf(rdlYbC;fF`422HFM?!2tvb@Ha9UDpvBvJR)8RxDrfo z{Pknt|NH3fRgg~}-$#oYfsPAc2Hf{w|N6MTZ>Th`pMmO2cCD*zO}b|S+>;jp2tM{7 z+WUHHaRM~`0GjzeV2;R{1Lz?#N^U=pjIw(5ILpKWOhDu#dMAMj`0F2=gZo4O^~mo4 z!_lFge{Hk?t>M0m&3~c$fv>q&$0n`uDx35F^Z9?9u64lgfbrAq0DAcQD-4I;mmdj! z0B}A5yuiN!{r3aid-l_R2>X#hleVq1@}#H%e$D?~K#S9TGY5PL{&n;YW+P?41z_8C z|J(kli~A2osF0=Ie+d37ye2@X7|;Rzr)Z#nFuMO7eShx1O9KiAx((ZZ5*LAX1Y~mk zPr?7$GNFET-@N{N=YP2c`~|%;0+u0$?i4}_^F2SBEB;ep<3Bt9`^bOx{Od5_wEI2(a}MRd3;geMc<)R5-^2d-p8qT0|Mz?T zDf*v1|GpfcfQJy^(*CF9e{J;r!~I9Q=l)v|Q>`&!FisB7D_z-m1>V~^e6s{xMIINRP`RbQPq04Q z9&Cm~T{^Dn`@irJd=W4Zb@i&Dxt$&#o4UwmJm;-ao3g|xQam{+`wLo&I79?60doS5 zOZdWj6fo`q?uU72`hw@$DLZwu2;`kV(Vz5J$`hQ953llFtDpPvd$0hUo2e-niC`Kf z+gx&8bS09AwlfA(ytYl++4(y4FUV`Sgz7mNun|V%MLriT*a;vhOVSF|Rs16cP8L?x z-d8c+$O1{NjMu>f^8l=in`YB9fSWAk^*+E1$k&CxVNNX5m(BvXfRF0quM=7{PbR3C zUt-2=Uft66AqN06T4(6)Q9)iVunN)YKCkR*pRYndY47qVbCaDfs8$Z*`ukgj97Hyv zCZhBg@EhB?B1#2r7qCV58J}*Idk@KLqs+P}y$B;Wnx?-VJo8lsYvUBxmG^2Mm{fYSHf3u&u%b0Baw<2*k8YLJXLNpSUg*W=tADJ$~2FX zN#kUaC9QEW+XIUQw)dDO(uiZuRXR}uNU^IxDW(6(31l;8PG6b%Oq1`cbl31q>X8b) zciG(o>_($1qZ+m*RVSWwjqi+$56@{ST_P4D~0o7qAZzebNd*l@FmJYF^7c$gL8od}uy>r=MnACR5xO7%1P<42{ z7H@sg<5!n-Da1f;qaM|x7V<+!=Uk9bMzYGO#I*Aavd>5P#1x}4=uyo)+@|_nTMz4^ zRK&{XD?P~V#{TWlRlH#G?8;BZ2ESH84T`k%%}K5Y=dE3RK$J00sj!p~OLdbtvx?P= z&H2N?h4g!#XM~O^k0ruJue^540!qYh)UMb|KB(<7^wD9`hXBqoB`e&oX(Bflymw2m z9S4Wb>Dge0hznI-C{o);P$C7@#H)Oig-l&8s?` z3D)?k^XjBF-BB(rnpo zOaW49wawv=RhyH(+i3sPPqny?FIG4>#mH@8&H+@L#uD}oeEADmc}DFg)#k+R%NOoH z9fFd6iFj@pZk@i)ml%-BO39G2ATNTv? z+*ZW)3ONbC#QIQ}9){GVeCZJ82w7F5tHLm>9h)&?(=5eSKAHhT-(t#NU8gZf;`hd+ zhH|?2|CXO@1|+)hrMTDhIip%+B2jYI{AR9WQVfdPC6LW?Knp?N)u!X!CrXs~P6e{j z>yR}*=2bpx@rT~Ey z&7txE#i?1Q=H{+W$@TEm+9(Y>0do5(Bx@BYqar2az$}9X?E-sBM%Lv|8c_`2h~Nj- zE9moQfQs|3IsLB5>Q?CRFX*J^Haf)S^JjqOcWQBQbJ;D;`MW3nCu-g1xZ>9K_lpa^ z+n|v@QHfc?w>AAIHSuphG z$>iRVIP5g@wkD4={VT_tD?Bfn4YT=XDZ?Y0B%a(xZ+ye!YZ-0P0lPBN&q5;UcOOBb zIrXL3{g@PqT1j03pAM^n3UP4C zDalDX9@|ey_m82yVZ{nq^2-K)2*qDs4xzMh;JE91z_;&U7aWNm277VDvK?cV^^|+q z<|~H_VCvPdD%8yN7u1A?{cDALDW$;dPJ*uYZK3=A7(#x>wvGXa@x@cIBWH@lRsMpi zBI)KwkRLuxX!xuv2d0MZmc2Zg;F}56dlD-+M^m)2;8hi%eY`P>{=4fg?k~vfFDNj~ z?CwLD($Qz#JD|PRXumz~`-r%k?OT0^=v$QtO0aOn@gVSauOkhtN@X=XuRo0AP%u0L z^Av_F@ND`|cUeDgxZsNjxccPK%xz14-c^i7J~b6LpA;H*s8$w4$$a0L0Yi;(;6V_2 z-J(B&HyyDs){c?WREju(yMc7+0;^W-pScTq;{7ROW417O?}eji-UCu+jzw_Ojs-5bb4_h~0~qeB{RGlGzw1ECnZpT0tN)5A+jO$9G05xc|LewD3Glp zi=O_%a3QG<%-{vx_mB+-muHq{Ds+`UQH#xTHcbIGb{CIk4?it8>UMQRD3S9`$VuSr zM;j7W5rErBsTtEMjNv%#)vBLnMK4@JX`k!ejPvT0ZEz6wlm+#% zkQEkm>Udf3g!7WM=|)GC)8a44K?+*DE+6O-s#9|jUUmeET;!Rl8J=h)+rD8eDo`Ufu@mbj|+aOH4p5(2KrvJ{5J<^h%HgxuewE4KGcr)aM>*cJMo!v9K3}YaX7kD0ql(3GuP|}Ei{*;2 z)En$$8_$U9zaZz|NTRvB9$@?>?TmMN@VW2&UA3IY>gS`b;=BBh7qd6X5o^E;{^InC zdA;*52qwP-be2bq&kjD9FgDB0e+=`u^}L(-8hYB>;Ys&75ZQakrjq3aEdh`8XP@eW znrN0yWROy82ku{ZWb(9i1d%)9nJn?8pKx4tzA zScF{|MIrEl>w}q{F3Lau3u>8NY)}iY-TMn#VLSk;|1;xa#FfnR=Fr^5KE%7SPahA$ z8~=jb89bI(p*=VA2LzlaIyW3wxhVNgc^A8CmRi#WXexhtS8iaXIfXcds3_fNN0Hbd z?`sp>dU2&k%PZ~kBOR(UllGDqmfEfS$w^{J6l89Yr4{clC_Q2f!SL?8;IAj*cmtvo zF4*jY6RMF6J`}_4Xg&|NEq&_XUGV;OeIWjs2WEp zO?h7_7ML`fZ74Yjubi&Vv<2p9kfq@is&sATz1_9i#IRSDzr5j(iZL~`*Irk#ioTHk z3mTU>0KztOLVrLq%_;~{_ub*v%qRG00>+OHKE?BzE36#!>qhq>^D9}m8`!){Qbh@Tpy@du8B(907`ID`PC!U=YD_{J`k17va)(ndI^WJ2nBm(3p@ijaeTK)5 z5sNbJbHlrK53g3VAa#;EP`?a4F!fvYH!qI_tP@FgpJflv7P*x@4W@;G$ab=9j#5-~69ep&BH4Vtz z2m%N^wXcFXQfORH*4dQVcnz%V@=c^?_P?w_Imo~4wvsZjSn`)6Et%SL@zxHNK?HI7 z&x5~9*z38>NHnZ)(>8dgR7-9yn4_pWpT>R9+?J+zcxW zJ~)|J39MmE(H<0hF1lr_UE&&u-BM1MKo=dl&b1H>?NelXo^JfBkIKLRmzGy1I}Ou+ zjrrX+iyjn0+{It*yUpYk^#=1!KD#^1fw@OBRJzVACZyFuX5q)()g>kN=R&c( z6o=TtH{z8g&U(>xR_JuiihOx_z49^r(yjpilvw<^dzt~T^~fI4d6d-uB#-+6DDSIF-t?wo z49yru7I9KN(P0bUM1gnJQ+>VwtLg&J>Zbx-0^Erh4;!E)HS;o&^E6b^upVP}4!NwX zLNyIzY3SG%hxvO_&K+%OSc=syM2)U4CIvSq=H3DlKv9ALmmsmmtSAl0Lb{CL@i`Jz zjoxYs+t?%UhO#<>-Md`?T%p*G0E?x&E)?f`oEMsMf2q zT`l4yyEPa#+cZ=8^AaDYmT5>ri+0YME(i@Ed=Th+QMm0D*4u$Q~&99 zU(+ENNZXDuoU3?kCHr8%1j`bu9hY8tax~xtvdV@vE0b9`0*FNdui?3z0U(ga2svpL z*>@~)G-fLY7|AZVO9ln}@fgK$135~G;X42Y?L|th7(YwPy z#!mmYlA$f}a?9Tt0zc!wXP_x@97NfQta10nRt!bRB)WRocDlAzzTbF;uNXzbzWBSy z24QvFgCbdm$DK@lVJl$x@N_o`-if!1AGwU)KyL!7byDDFi_A`Ftsz*mdEq@+MOu{VK4{&_rO8|_qM$bjR4!ZXl={~hph=G$4Rr*s{4UtW6q$ZXJ6AN z4Ha|g^AT|83d%l->N!p)nu`SkFrmAvEF1?Xi@DX#ztU;yiB1uyyCGZ^9{rtu^G>5G zl=CX}lJW8()nWMO-v%dt_@r!>ZNOWexzA6H);2?1O!%DN`Zda+Y8qN&P9|Tv4r{h1 z*Of$v#DTD=Tbo~JUTSA^ggp8SItmtfb6^&`d!1rgz-mVlyAq7+lYb5@bzm8lHyGD0 z$A0o?R$V6CN}A4{SZmk(ILY|Qc+T|B@ZoLE?I)Z~V=^a8N8QIz_+_C!6{fya;DX=B zuGccAtVT?vp~0*BtFDB(#Puwe&ZY56z+ASzG;(}~!->s%T9k|ofFAV?;EQUql%^;_ zDV=!nR(Mp+h|}tl?N=rp1Sl=N+d2amy_}HkX7-phU-=T1>_l#WNVUk?#O*%#+^H$B zDJMlUC#Hq{7O*Yd@h8Erm$3A1<%hQCl2!iXNL3tUJ-@Q_252Y&#azQJ)uA>eH-e2J zpCZh|hi@bndOpR!LiJ7|m!`hC6-X7-qWOu199zcpc(DAGjwln@Kpf64|EhKhli0T) zdX#e;l)snyJiJ9tGqv~@1J6c1q;Cv<_#~Z>uJ_%(Sp6u9=rwi5Wqj=ryI+;Rs&li& z(i?(!cu#iPX(lC<{WdE>L5yfOt{HI}Rz(Tnj>0T#KYmr$T%3ZW z6?seOcfNUMdS?{zwNj*txyy)@-CDkfc75pywo_`Q2sv?U_6CclqdUShwg&%T1+M>T zv|D*HmR?}&aKDH$00_dws?l+8tu4X8+)rCGyIy&cpGSd7b&5HY4Z+QQcwkN);?5ll zD!O{0dP}i^adK=fU0q2V3n$5}vHPl*4FQ8~%_PeLKiNx2>foFyVUu zyx}JkOhDy{d0+u7OSV=ZzalnMh3=InJ93|i%F-3Hutf~M00yjDo#^BElofjZKD$??IBRoQjET#qh%rmug1UCss8-jKhDOiw>)tDvim04W=(cNugeXs>K64B`*w`fPph2 zb4hiY*ZPMHL;scvNuAC z%k(Xv$F_V2aK5v6bCuL5CIgW62x)oLrr2TYc%F>Qwlhrh<7Xny+wxdI$v_Yte>kAa zd$H#1Pn$-62mX=PTqQB`=Et+1W#!$VW9iA37QrJ9IzH)AU}*hIIBj$uN7mu2l4ITT zQ}bC()A%SDl(OYJ*SDr`0i2xWi}~`OKCw@~0*N-nB0)(r77kYnNrmR|aHzGqajiU-US{HZ5q;~=g!Ee`M5wJ< zErLgxY&w)~No*#Y<^6sfi^)la`Nu8Rnzq34HoMFST=KG)ZCqN?URI|11Am-fJ+LWZ z0ahoj6@^cnxoEkB9tC8do(3GRq@S;90dOsVZf@i0xNRfYZs`>OT(A7nQ2=``rM*A= zt3>C0r+{t1X7c;0p5@L99fyh}22$PWQ=r$DBzaEPvGHEp=}^t-%%i?F=B2fcqhc=6 z)tc|o%Uo;jRreNDS7LDS)Hm97B^mz{Jp<)HFbkYYE*xqIw>XI-&+|c+xZ;Z z41d8~THkIa#$zVaSx&+)+NBbLQHk$r%y{3KeJk*5A+tyDdY+L?2;s#PRkL+Wya7{E z(xnR8Be!SGv1e>Je>*8>-3xd_q5S~qB`JGAV@Ti~AUUxt*TrCQ#C*!lkV%lwx{Z(x z{7Ozo{(p^9cOhFq`}+_2{Xg`8buO^kFrE$E)^xWTi1aLTeYve^hX;TF@v84M0~5(h zv(B*Wemmzk{m5eVI;1dFGq#2uWr`As`XEU`6$ha6NHSne`byd``=`d#54 zfhSo9Hc}$73s4BAq*5$KTr4)58pJ!JKJl_AKkws*C*H2Laxm59HbuiLD9VL3&0hw* zYA-0_UgCMYQqAFF_~^8e>TQ>oZ|p4~B6FDu zXfgK*I0oaaxr}0K?+V9JQG1);b$Vm@os%9{skw$YamD^|Muh(gHFi<=-+vZ-DHbhn+1a7 zMTbYh{0#i4KP*ywmd}jsLm3of{D)n5(fl-WkZOGpcxHdj1vV3xnda#25j=+0iETU_ zc{JTB24XOXWe@q8Q5)=zwi=ig5n}jk&}|p;M&Yjv+HC^preh#NUjW{cH$^fnFp!|Z z=Jn>a_C?*bGrE(gx#G~gi3=nh z^^bsdMvF7W*!bxfX7r#Yx8|HB(-a~d8=o`Jx@8YFxc!W zd-oB0)d|wz{~JqP^op@={~M*r)A7JrpsadgoZ{1{+-m<3NG{1iKr+YGebY4Wh7X5C zYX+&4!By<_Owj=lGl!TBewgUjys10GVQf69Z|Gq1fzPhv=R6&npdiYia$-Jy)jE?H zt4aby-dAs!aWi84tDJ4DlFu_H!DP4dPt5-@VOtM-+eViE>)G22B>}1u&z|#rdcnM!eoGucytv$-%O#R!d*g6;&m`CsSaJ6J)O?te?x0#G=Y5Gp*>Qpqv;k4z2%4H@c1qYla8d3U5~&`?NO1ma$hEwzVx*C#c6Z%$3i}R z)AbsY^{TVAG`-ESiN~!%Us`BJF<}5UFmFx22V?q=V5BBSA;c1pP8+@@xxqa|%{x_< zwpDoCunOuAZ@+wGtphkl-nOfIS<^zSB5J8St2S&l6o+H zB5i{rZ4;6WrBQl-0{G<}`kCH3s7i+72o2f zn+Qqgzkly&>pvW=T`;Sm&Dv*$8Tp%Gv`@%D&R^xpdN5hXxr#2j09V;5I)|8-pQ+}Y zYwkYWOhByLbj#VC9>m(il51QpsIADLP16`i-1sTHRh~20zzr8MeEHep`1)iX+2_PIl&Z+-D~T`N>%IPyns_KG-@pdDigdxxQ^ zEq>TWOVVZRi-XPtGx13g!gdx-Co+kXr?W_IqDC2e%#9&b7EV%k zv?|YIc8qDe%x?}zYaTK1Z%vrIUB9%3=N0Wvds+S1fsYxzOUeB;JM~vfhQ>wJ!>lG5Te1iVX#?)bvY1!Y&IuI)~Rgq%$ zy&%EMK_OT$rDG_8*OFRwQZ#MsEe;gKWyhvgA5euw7p+}ssspew%QtTwVXlHBp`JfC z8S9mm0W+5R|67*6%mT=xzu`Hnd&h9S3*9!_{CHrM4QX+PTuWkHWNuourbM*W?A@>5 zsag9&&03MqbBqr{gts$h_I{$gBtKSvk>WDu{Ee1OW%THg%6b#5fYi-B+};TQzptw9 z;uRb0jNy9bgQUxbn;3_Be;Be=X*)qAwpWm zcooJTF9FC;JHYr04L0d*Gk~NQUjWM0E;-`$ivbw9hs~4h73R^_j+=N>sirB$JU& zW!^b5i&49i05vtGUSIT>oB|UPKITdt8kWz7DizGa?}j#+=CUc~6A*66HquLj5&}+J=FVw(gZp?gT;qydcEbN^ z^@-^y9La!5%{WTT%?7SN&7SvtAJ%c!nbCZ#hiO@^(<>1_`Z*h@(a#4k+!GvZE*=U96G+_&iu@Z#P}e9=6-W7rj`7OvqVO7 zM$&uL5!E*`U&8Lzr^0m(e(} zCbw$8K*Ql^My=ml_}GNC;N3b(cSlucw?s>o-2c_>DO7>u=BfrVEcyL6$>XPdE!S2gIof?q{}JUkwN19+o;fmk1@g34QJXK)e7Id<}4E=geN%MJ5xw!MPCsC8Zz3 zb&qvS3H19ZsfKNHH7z6)?$Iy{4$_ks=uRlOV)1~b5iwScZ4d~`o=e=iO=WjnsDCaPQpsXnuBrKyQ&exE3A`W5xP>b=PROhWr z70=p&$-Q4a?HwNM*9ONT?*u}|X-}1MY0AjKT==h9}zFDdtnk6>vM8dYJh625HdJrCjFfBpzu zf`FRxf^kCccv+M08moYYSQ3l6uWd%d!fNO++~&2oO-Sg#rump1rdgBA%g7kUMU?cd zQlN@AA9{bGB@=!tD=t3kE0@2?oQA7WpzgZIFNYhWjFM8UID=3&NYmmuo_U=i~zW>LG$;bhk!e9 zAxK!+e}$khBvi}W+wbrABEA~nY?DCpT6HZ^RBbIkd0`Wumk%O89jNrvVZ=2-H` zUfguYG5PEVjJ%x8bIjQkWQoPL6x*bNUA?@6Aq(1BxNZS5-Mk$8J8^2;gNt7jW8stYO!c$)b>+BowY5VNpO#$ZvG3m9 zh=AlaSrln@n11Iw0MN<<5%Eae#Ciq}b0@0*T(Rg;N*Kuz)XF9uo~q#@E`gt}_9@@@ z?Ea_(O5TdIWOAFkk5P1~Gp7md5VJ`=a!2Xn9042U2zg=dGT!D%w;9k000xr?S|2r+ zdn_HWVpDp7I$z6jtlcb1kU+pUC6mo~{d(F{HTZ011E0dSi;2$i)m0*3$p-C`!j;Z>GP}eb_*O zXY9VRsEOsmR7yL;>wK|x^$sJuzuK286hG<;$%)@zOY6VL<8TfpFq`ua8{b9CerW>%S|8G5{`>2$~D z(c@Z$cF5H7cG~uOPMl6(T7>NKcDY?jT7;0ag8Fy)pO#Wa&Mb6#`Wnxk#%m^|Ed&o5 z&8B6&aq2W1N=Rj18BR6&zMEz?Xd!bhbJ!rhKa570Egx*)p;d>m2CEUxS!WwVm}Rr> zu2mD0^ob8vH3m9$TaQisC>U!$ByALl#>3kE=NcaQ$;u!2To`nA_Eyf|o7cf}hrO`% zO|B-G!GR?XB-5wy=YHG_Ew1QZPFWNUDyV3Qvj%Z^mDl zV>9-fk7-{0fu_8vFKAU5fO}bh(T(sAG;*DCgbTe7ud^I^Oea4bv}5$mmok$kSXE)h zZjJZ=i;e*15OVmtq$g3mLN&K3J|U$-e3lZuo(Tov{t@_%2K){;KVtYY9Ra-xx|Kb+ zEqw1E0iI;-+5!El9xEtRFg7nw+eX15_uym9lInCKyYqRwSKa7NU1Hb1PO{s7;1EDz z5lR7^BWE@a<%iA!6UjUbetJ(7B?iunoVg|CI7jjny#~rg68Xfodg(egiJ72-;(rz0 zVKl>Jyu-mTo=PU@ZLV)3#5vKJelVp7*>Y4j?K7i7DG4X)!i4|^O^aMj%a0~pb}anw zX`B{qO!6U}i`HVVp=LW*K5C1=qf*IWS(Y)}sV+vjO}o)}r0Qe9*C_r6qwN{Pi6y*q^cfX#Wov56Y|kToh+CeBYz zZqE0r5!PW-HXYQsda(ZGWtXa%%K;*;y0{+(S4g+p-5WjvNLB2)gWV%>rEuotW%7psBbwY97 ze=6|rixcwh`t8Rx-So@RBm>|FKh591XFdj~gx1e#a7IgnEV455NV6<6jGqBlLj#n;)>7kJ`^p)Dlj{QYTk_Kiz1sA>mZ{r^pUXf4MH0!S6_@=fA2aC#xy)Jn zs<(HtY9VjUv>SBD;&*aBU*@o{i!$`&TQ4F!&+}mpzi?N=RBR|wwj-V;v&&R?!-Ct7 z*n(E4eb#RNrBFH@-VadRNU#5{o8MR4t>iQOC|jEo<6_&xd!65WJzn(dUsi8@6(*^r z^e=eFMEHfn)Bn1`IytNNcu9F&ljjvdV9wUPwOQ#@Yduc@0j^hQ=-`~1wxk?r(UET> zd8`+g+i%Fe^iB>LSkOpw$+WVN{-8(1QDWpitz6~suDpwBNh+o5ba`~sE)OEy{KwoB z2tL=PQg=NTJrXEl8_{RqHLX2#cAV~R+Sr{Gz$FD?fN1eDRqyAEJWN}V*1RPy8)tOv zT(e=PX*99bC|CD1AZ4k}pVV2CYOCmp4Rk}OYa$4 zQ`gY&V-ezx>7n(jA^SSfXwFyLr@8r{&NlOs*a+xj-~MstNEmu^=<+?oa)Z+$d@~Zq+3J2Nm!)xDrvbtbZz2uw%tt%fx&$&@1 zxz&%uwnB`P(yUJs{lCZ0@cU`};d@^E_~C7Y7d=#~7L}H3`Na5o;mhP6T;~+<+fvm` zl`e;ab0f8_8ck?{h!yw5R>0xnuNjlI%WNp8sdH>#;hHck6YDj?7t=(4z%ON4Yt<>M zy?7jOMG-IDK{+TKM8=`wJq);!0Mt!H`QJ>XG@2n>cfFmc`62&jwGt&ABDQa#x*6QTJr&x_4a^ z4zt}{S}y@(a`>wG_RGIu&mjF;saIn!jFw!CASdJrL5vR?AI#P)Kk}>wS^)A z3~aZ;-(L|IjhbHHx~`wtQmVhAxfz>52ly}V9cG2&Ru#3xAzZK~*t=&PJ6(3Vwj6)XHWE^=Y+BY^gO0#}#8r&(% zs(#4;k`om8^t(K2kprDMG{)rY*R-T4?J@G;#A@;@i4q&%y&#%|{{HOG!L)!Y3Oc)y zd$qchnlyHyUn)pa8ODPMojxgxbj%yQ?7}mB399R1dmyn=eo!>|Ywy}5t#3I0kYFaW zUkj|W$mv>C+LT_+C*V=mkfKzDLZ7Gom#4#MFa0u3FQ8`@Enm={>SFJ&c8|N&xTXEf zF};KXnOOOS^Ob2PSX+Xlgdc9KDiL2EiM*>RNKhWLeor=MJDHVnf=}#`c*Y~Qmu-5_ zmZ0gS^FpIb@>R=vi{4C{bK;uJ;o2+pb4??^ect($eM;$#SSxJq4q#36_z@(4_Wiy- zDrS=XDL<8Q*oh(As8}Ss`mJ1+4aptNIK33--v_4j^T}kQPX7I*wlnzj3b03HDIrE4qN*{m3P7j7+_XN2H-VK9orX^Q&{U`qsvO{gBi9s-j2tANn^%j@%go|E6(a7!m!IZV^jQwu>!QgTi z)vhSoMz{ZN$}8ivwZlpKAx2of#h>~q=QA@h`pUrSA%A~9Rfyq&o9UlMG+ZxMNM>Xr^2y_v#N7$GlIg7&&NWygm}Aehdf0ae)amc_wv zF^d!4QFM!PFg{&|`Kjn{9%iF?3IAwHBrL2A|7wZ#!$6oPew$_OXZWwRo-@m`+jPkl9Ig<=L;-0z3XJI#pSY`v?tfGcnm;$c4kg2u8`KR)z@) z=kL(0Ovr~e+uiI%OER5@8A0R=*D*R->2Tc?pYWU)EXP{4)(+0jI8e{wm}qpA1Yw$e z3gi*PEqJ<`i(J{9(G~B9BjRj0o?rM5m-{Dh*_Xrj@9rt0zkS|CYHE^tg$nAH!AuxO ztQBY_0Ub9=A#p1X9W6dSHueqDm!fR7spe%<1xeA zIv-WXhn=}(oP~f+JBKkOV)sQqjfPVILr&7fkTZ*zGmT>aq0)?1eoZE^F|y}V?Vp-7 zowt=af<+`E$x%q^u0_6QT0g}Bi2Me>vTxYIJ z6YB>Y%bVvE3CupyKjaSkH+_(%VWh2RnoEc=};*mEKvOR!&ptP zf#5vwao5SU!AWa~!_GBFb z7^@qF7&EYEr8k^B{ze(F=hNdI3cMs&=9!D0+yZQJ?pFOTB)Nrnbr2AqZBie#H}tcg zNT~G%n7sQT(+m(^qVU5Cj-p{J{<$ryPuqU!hHVQ@=`9GKh4*%z;95uRTrayfhcQ+L zk)b^vmWrFzXAD(5LpsSFi^4}Lvzz|AovlDjuESN(i}BF5>*B$bgH5amKCEf?YJ_7o zoCEdU&2qBp#2E5qN%v*v-#0!V7&+fVyAyn>zrdoJnR@t*3^ZODIeK@#Z}_1HIz+db zg=QOOfe{~*LCBd0iQJ183gIh<29EgqCcD+UO;QNL#pZU5T>}r3#d)@NP2y5c?Ud(d z7a{n~dvtZRe5!rCUJT-vW=izXDY-CxN7Cc6uQh+8upo6%vlBIFZ4-VaP;>tD#P%OS zTiBD(b`84n_b#SChpHXztSr);4OkxYFA!!cm*id!)~Bd2U__R&GtHN$5j}zAG1fqu z%G`c&2h009T(5o@Fvg-k2tj0A3EHNz2=95Az9<`T)Zu`91y?0k;4Z+>r0SGm>R*9j zjY;4kK9|avf$i;#I|~k@!v-{oL+B`i2`AX19g7a9mv3%bpT83h33p+y_%k^bD(!!r zJvqLXvMbjFyu+w6(2iWm_s36KUly_vaxQChtrFdXi|I=g7%Sz1)jkd{q+E_Y?o|19 zzIcCsOMmdr=;tR(Wh*t)53*-Xj~PcMM}DINhgHqD1{JOSq#yH%ooV(m$XW`zKjani zO|f@hK}7Ot#zK8SBhuod_Ezu+1Z6PpEum8l3rWNP#;lG4CVG;tjJR?Ilx{l}a9D<- zw0yLX(9E(zkQk3W*VMOg8I-p*;>wP&VQkswLa^BUJ>6BfZ?(x`Z`1EL<+?<^hv5xf zu~mrd0m@l*CsH)RrDdQJ0aiOXIjTYE)|NC&mf@r9i< zdNN&EqZ9uTbSdlrTVsPIw}>Km_uaD-87}j+Pf@n1E9Om^pZg^;S>C+xv?tr>q4KDY zbqV%MA+x5wz3AS|>zI~f8@dQRPr-dizc{4u+DC))j~`g%7xEC^3^)H)D8|}d=l8l| zSdO#J>Ci9Y?(r5_vuSw6K=m%Cb(3eTU(0@DL_t==n9V!_`|D`B!a>a<79~kv*ioE~ zs6&(cI2*wL$1XWdmMV_mre6m<_LE54E}mD-f+0H5XZp`i#L|n80lIbsm1T!NcdbvaNd|&2i$WtA{MU^_O-hNOe~kiPXcr& zY#i7~X#I_WMYI3*l3zAa@TfR-Y+_)t72<1Kp2i z_b=Y=Z}ZXQ`EQ3nI#NOou4JmTn2Yu?^Y{noH?-oq&OS}IAoC}YG%^jlzhLXH*vKU~ zu5K+SawXv#$mKgWW|q;#G`UCX90Ek0uXr-|Bil8fz202QvrMWqyRfS{p}U;K<*1(^ zR#6+D_R%R>i;*@z@WSTny%m2_-oKwZFCiAh(Z^$7f1A^#U=)<0XAyJyjpAZ>+4rJz zmXWpTM{4c#I5We2+=NVLkq#T`)Hbip{`$f6{^OM( zMKP9&RB2H3D>AFqnJZ_l+}pG~^_(-PR`(7Q(z&p_}N4{=R3IL|3J&*J{{Qr^x09A^Ol8L~rorMR3Pe{T1C| zs!6DM)6Mi{-ujwr4?+ZG${^41n465H4?RFSX-Vy0FtAHnV@NGN5xO^^YsFpAB}>8XE2!KAu1{546td)+s5>M40CQljd#uM{~_ z?TFqvm#Oy;&uNvptgDYb*sNu%HSMB(!C~nJ*uzE1=i-9L*8Ayk=ve$n$#CAbTuOH$x}&`eWzPm$m0sN4}uT z4}2@1&zEcbOo^7mpY1j-Y`EO7F}GcXo0h7f&|WD|Pf@&YFOO-~PuutMkl+eQPuHdr zVy9m*qzp{S%@S#AmRB)K`J3pnhU3cEmKB{bhnP0HlRq5OEiHo9zrT@}V^@?dqRd>F!} z__fyn4^o9-S`YA@h6JlfAj->S1Bv_P^yH-Qwx`)uD%5Ao_xyGan@VL9yo^+sT&F$m zr>NaX#CYh+)HtG+CVkk+$5C6$_uC$^eiH1HDZ3z{fAT*9o80dwe{@?qlsguG{Q>7- zBUd(^0~=N`x*wXAn%|A#DMG@Grwu5t%uq0IU|cO!VML}wGjSC@X>I`A zHZ1lizTU(f{v&V?<+-3*CIp`LUiQ6O*O6)cH+Zp zE4&hTg}0kq*hC*T-Ks*zF*87BC9DDdn<}Qpa1Y(Vmp#pu$5Ut zcE z40OE*nRXp_y#csMuJap1OVQw|ZQ z2$}jFx1Nn7rSV0?cMsi|f=J!2bn^10)7K?9a|3u5!Dq~ZRpA%%2V60$I6M+%RntqU<3FewrJUJ2`RalGT*>K;V9C|4LmPyDrf0`%dhsS}+)z8Frz*kiPN@al!rk@wS>#HK`wpz=8xBWe*k)ZBmm!n@rB|^P z5G~?;pxs_8#q^cBvObKGWM<*Yhtm;TG*!QAe_i=Dp9bZRigS)@{OJiHCXQZr5r1O` zy1DisuCe|{V6xd3F@&Q@UGH55pB{a<)&u@u7nntrHifdy+sRG+G5EXh| ziAI(7t}B&)ETL$=UV4S=`EzvtEV63j0DmKaE^cDOB73scaOU{=6;>E9zzs`XIdKW= zQpj)4=bu}gvi9q@;UI^zQ!9bHq$Q{b9nO2Lga_BI(WoZ6(A28$dFPREOC4uc{Yd^3 zwoUu`Q0joSUFtiWU>>>Smrl)cMPu;=&#f=sEKJ3FAX?DHFNx96)8FU==;A7Bdy}*U0371~xrWQw#H(?-b2OJ^*8#mPX!Qv3F z^}5Kqr99Uz)pK-i#=<#d#qxeyyaX?4uK8nbZ*q?u0ct5BbI+`Li{{kF3?$Tl14r7; z%8kt(%FM>$ba6ruZ=Iy{f{Q&;uKuJdbui+M?cl2h5zgSrlBn3p?3D*~p6uY@&r}4t zJIUpJ^e@cHzmDuIIz@~HgRDkWxCsA}tE!{IU(2Q)v}>E>SP$Rtab=O!!j3}(BYq8| zhb-$+Lh3oc1YDq3&F8(Xp&#Z8J&NQ>+m4U{*Z%lDR~#$F5P5a#r^{kUUo`HjM`-6i zMUX{r`pYlXaOBD&_Q#cq@g0)QX4xzD^^;|yJZ=5FG*Ue?^awW> zxCLK%9dZa&zfO%8keyCmiX@A_POPH!37qr_uFHR0dCR%?Xjbge4)n6E(o!7PW)hpp z5UNVs{F8t!Y^QY{+OV1eC&8W0UhD_g~uKf^?@py41${)AK=>}TmcZ*e4-U?bsD zt@V^ETXWdVo~bp}iF#)}GifKI>4in<(I3?Q?8IvJb2A~7Uy63Xt0e;R`3@ztOB(iV zvvo75Oy)>D&!Is<&U1~yTg^@1kl0u3nPNY)DMn9n-n^)dFx^u`Bec~q$+YBQ0RU}f zpv6Doly>HbUCsPJ=J_tRjWoN?xH{s9R9};OcDYC~{im!vH(q5qxp4EHys#LCZv((*PE)hJhm z&1BF4VY-|`dwhNf5OT;^Lhr<^g=B`8KB7AXWA-1}L9xQHR}`O8MIy-rdoYu`7z+E6 z3`J&(McXWum|LoBVgsHVV`qAI)t%vbI;1~+)9TDq; zaAhl_^8yyHa6w7-)^5Xo^G3XvGMDSslJQS8jH^qkc6@>*p^=AB{`|mwho)L1MsVpV zW}+A?T98}Y^K@q~HU=^|^TQy$`Q^#<9%lxO4=dOD)amUwBGK%qgPICg7n3KKm@P&# zjwrYXvZ0M&&i3T^-9JGps|k%qd<+(a4Qnu#zOXE1IEou%h)v6IJBW|z%Pp#dzblUe zbANwVYxVe5qm8YI)MOKlxUK(ns2<919hB*s)s@T_Cqlh&S_(?S7d`dJWs;#Yf0KsB z&@#fdU42>kDtMww;Q3h(${NHq0;5Uqep9gMI+B$ALtJ*iIy-Z&-xk=-`DaqnpTfRR zN(Ujs^Kn>3=jiKd>0MN<-;Up6MLm!-vcq*@uHUTqCyC4`j9xns;^k#Fo;w9LcoBqI ztPMSB8H}V+wc>_?qO6pMMvz>Qjsdj+UY94!g*c`}_Nt<&Jt=>op{d-W9giYX$xy{CNT6%3(J##%b8gkfzM zq?7V;XF);ae_j1zkwmjW)B>w|I0R3X!kjq37$seD?JZpD)2aTTrEA;iH5R7{p?eQr zmznx4D!Mq)p=R4uNf%v+HQ{5Pt04f&{=l#{-w_m-L+*XreLe?-3F{&oH2 zfb}|WCFXZSfBOFNX@I9uT7$FLu47o?heZUm1c&ur4WS*}Bdc=sv5swc{5WjJX7tlnwsEE9mdF%!b;?gWK zc9bf5*Kx;%R4rE@0OrosYTI^L#XX4uydqiRP1D%cZsJ^)z5H-ol;hZztn-P5)siTp zvd$D1#1SP=`6IfH0<(#@?z&ucVYcb8DX#2n5t7juk_yW@orMb+CgybQTNHK`-RAF@ zL3Qt8BAw1p-tTE<*1jpOw%-rAsqI(eyI15kuG4Z$j(Ls-Z2nVDn%q*2=!HTxO|5n*ZXjn ztB!!$pbCmnT=@f2=FJ;v0D|&}M*FVs-9Hbe-oI}Q82^MHQRA>`#jy2M?kY1DL%a5$XKxW z!%@ymo1zFOp-_QUJ8$K$70Ps4&Nzu%t~3#1ep1T`!WxQS!3v?;u^tE!TbAb0KQd2B zT>0!dF9LFZhu5MM?#{QlVx>0E{`iML@pqsYcZt@sh}z*PJGQR}daOcQMWSQT?9(+yOAVK0hlt#Wm`)bmBzZbDSb~ZHu3fuWA1NW5$)1G`ktI-ihw}T&lGwDCVzn%u zqXu;Vn3Cqrcz|8TAeF6k7ijMj=y|fxYvu6nl#+D&jrx(wF_CfEk6L>rwrff27v_gY z{fafvzdlDvjWecu%FNvL5kS^&*!@@||qrBS8>y#>&ABEkixeTho zsd%BLQTc2uoja-MU-NdQ6b>^kr-kq90$-HCQ*&ayKq{;!C^5;A6Ay$V-^qH@udZ~| z0WP59{0~L@NQpQRt5j;2f62_JQD@ff<0EZz)AE;ZTp{C6E!cdVtF=@heXd99R=BJW zurM|sAejTa44RNN9&q9yHLw{oWsYgC&u-Sdg_@|FZ@c^QYr;A@W~WrCMsh-wy5fP< zm+YhC!R2oy_jUqNB@M5=}CUT~M53#o?x zXAxbz_Hs_0zm!#v@|uXSwwoOb_BZTjpz`V!dm1jM@>fWb)L{0x3^#IZB&I0YmCEs? z;dFNC{qk1{$Z ztNY}j1;2Uxv>l7Kufu zc36pxU#@?p`+l|vC#7vMk4JgisLQ=5M}i{ z2^m^G|8x0)PtKas`{nBnYs&N!OQ^%w1ULWJ{91Fr&>Z!-LjmugC(J=MNZ0HBm0$I) ze0dYJI;BCR$|6*YjTf*#ze8=kBEA%iE$vxd3$94IDNmD*KM6GZ5&l@(h~PPFwhwl$ zSQkxGr!K{y(ki}?HN%8H`>7RoBw4{)j->!6llI(cSny!bk=_4U_$Aun3e6M}x6=zD zl-u*Oogh(uuyNmgsnWhVS37&V+9ySz>REyt1}`X`4yiUp@VNA$Yn4SC){B^(>zvw2 zk7XJbjso|$ye?9bGdgc}&t0MNcHoI~HZ7OhFrp=vj8dGgm;YGoL5@3xGfqR}ab*lJ zZDx=-G)CyN9qpA2#$YPDbkX+%ARetiN5PO7snse(b~@UlG0 z3+g|Q5ijdTYqE||e;8(y0siX(}RAl)nwDtz@4$RF;`w> zQkVZ!TGjI3`}=eCL6o=93TcqX8BG@TK=C(p6okTTo25N@@|!t9V(Sfzk%7YHIDTVhPQg_hD@%&hy|@75 zQZ;4**_JWCRcr$O5$L%Jhe8@&*ST;&FV-aJY(_1*;;|QXQ`Q}Uf0NR#YT@pSSNFmw z)7n_Iv$=ip(W2?#b7^y_JOpMf<%OG3vj$0E!V}mr|4XY#d;1j+rQ&)Z1+Bx6hh^jY zT%_*74dT+ZZmV=OATNNt*z}89;)H2>C^}D%S-EfUYtP31LGaj)A~oD$?3-Bo-2QcF zx5R7m4lBlW0~(O^!s+h@=1;`Rjs?cX_y*y3)>9}<>0{TIa!ld3+iXMRr9s_5qP$pL z^$x#9kx$>+dRL3K(Nsv&qaWYDcqCd>H6lD4ok<86_E)NdC|PtXtZ!6dZzt6N-W9q_ z8LapQ5je~rUP^qAj?h;of5x&c6&C#wb{)y|ZA_V|CQ!iOlAq6q%S{&3eJm>L&F#u6$||J+g6oEM#eUP4S&(|;;}0#9S7NP>?qDMD zcol2q{-Y${-~_=Uakn!$;hk4oXTe;HPpTmwq z`}*PFOk55dk3%WCaVF5$=k*rS8qZBcQ!x4?RM2wL8_*gG=^D0#c9n#zP_x78Nnx4( z=9p!yzmq@NTAd58Exu9@t2B5ooTPC9?h`TZanj(kBld?pe*FVn6C-~i)-otAxAK#q z1$>1?g@`g>NA!uWp+O6_`7*#Nj#?bbo|uGQMpS>A`F0$7A@UZUJcLF%3e3M}HtYHk z#*=`^!M4>Cb@1W@ZT!tk(B`hy(HL13+n|*7^hsQB_GGXV(}DWvOO@mF%iH_EQqyq_S#Nu0*D~7?52m#d(C-=CVFY(uOIwA zV+IR%i_K?e=^6!}p$49wfa*Gkpefa1unS!qY43ngw3kw1F1QEpbF-qhtVHEAZNe5W zn0(0s?Y&U0zNZ7lZQ2J-*P@kp()t|g@gg>_`8$d|E(gk!a=N=nGz;)V-ZKLCCeM&6 z4^;!n@oenIlf6GD{EJmA;0o!hq`1$R^;o=sL)W2dXs2(p2j5y@2OC)JH^Y6CQKzfd zzvE-fd7mSX$t6gg=Fxfbhq4>In2cvaR?`cpfqXHd+0?#dH@p%N|oN5^d=xBR4E}8DWOS`lF++C5~?I15YCr#{&#(A z-L)>83}GgO+3)Ph>^<+ZpI=3t(gmFT{F0P{*=~PDQmUvdn*hWTzJ-CppgoSKh1r-% zYx`sl^efpa*h}Ay(IP?s0@FdIYteZbVz&w7+)rBnrs;H})qOJVNj=5h=`9UUk5P71yC zHoTDp>heRCGyG6q-{B?Gs{Fy`2HeX5@2OUkapvh>K zRkwi1t4x^+Pr!H*&^hA7DhE!?mUv-bh-&2B#!;^kk-$-xE{fDF!EP{8t zvFnwoh%g!0EM{-E`?7t3f7B(n%)nT=I5LGW998mhS{L5BWLsRYREpgT({t)^RNx39 zJj0uRQ8w+ZHOHXc|bF(pE#xBfX1!v?031+ z)Bwt+z7ZbgTJLt@V;Ba4PJd6i;hbQE0Hz3)^5S!vpdujQVtN&$7XNW>!vaqB&mEp*}q=j$>18$2;>vScKt+SX%=2N)N2W@={(f6ypuSWyOdRIC$`6-X)9=p5j(>^3W z9?%z7vK4-9Hy@It@av(0_Ex2=uWUz+iWY9@m10l5{El+7SyCXzX$(5#N3B-d9$P*F zD4`QakU27mo$_yU4&q?U@4Qa2bD*?74@MCqeQLDu_(iAI$N#is{UdWlQ=gAuB* zs5mXpgeAZ2`&qUO7PT2Q+Al^l z(*%C7-HB+5r(d|dcLDrEsH_HL>Ho%{p)rIQEWr%Yf0*nV!~k3P^Y_+?@~`}F7h_9o z>2qxHsIb=S3%oaN<0WlJ(Crh+9$t+Z7@+g<-#6SY!et+^2Cim{A~S|9*pS+cVv8{Y zo`m<)KX|#ei&sGVLqmZHUpzdO8~f~?2K(nu((F2-5T|F}9FxxHD z_z&E>tT=qyY*Dlph61A|qGa}ELNM1KB328LgHz~h+-NY=>Edjyunzrh@*O@d?d))| z`%;5w3WZlV^zduDWIgMc#}sw24NvxsJ@YX8{@;j=i1D%7ZB|>1?$<291mp1M_;D z5$&YitP{L^Pq{*mOUGQ8vFCw1f{;VFJ~DME*br@Yt4p%wPef!fycux;uZ<{a}skB zq5eKUoF!5d-#Da!8Wxh6emxz|XWQC3C!PgLCXyqzia)g`pM4WQ(a||VRw`ur%3&cY zHQlci%)~=0n_T=_B|^LxmgNmJ58v5*bl}0kyJ#o<6-g{wV~ZMatGP1Pt?muKY^nU^7_*I;hXZpcVL%jISjA=!)~s}#d`3Uif!oSZAZ>RqpdjEUpPA;%s>U> zz400hwfM{*8a4ClTP0d4s);lFheh>XeMkDJGbr=TfcS#~cMr4X_=+N^w4=!1PqNsc z>&E-Z>%48ef;9_`;1XbMBL79j&-?vSpMR1+XICB(X#`74rn&um(P6DlLg#mJMfPjg zkpyMOH99dS#Dl6E!oZek*iXTwA-5_ARR?M6YbY4ipv(d@FU6gqr0NSI;-Zc?8_YWN zW32htNtxGWJo!b>5!o`fH%;$qCRI(`Hy`-jl>W=&opm$3_q}btYG(6&KC-#)pEDtKECdBMN-= zM@Af;+0Dj?Urqi%7VbN)et3m@`H55220XdxUu;?z<>&e45xFt-za-i*4YTPDXBOLI zKQIPP$*(4X?|xtwLHpzi+(OdTL1QR)$yOE8)Ct=$<10G0^e?BelC&Ez89nUZy<;UK zkJg*uG`)cPrpKE=jXPvzg4Bn{LrdIqQ_6LB-iWb;e0)9FLn{2Je+yZoDQ*Bo)-6|S zE;rD)DP^MXy9UT*4+m53W8@J&!meOOt}$h0q~@bH2c10Z!Z5 zP0_U3+>G}j+L|o9Cz=9PU8*?lc2}Wg6uzh+dBC(eBNv|mcskH;J&X=f9Ml(>A7x;- zn&#d5vv?AKW|MjN?6OK(4eE}iof{zPM3*x9rBIHIn$2g}s@3?;U>MN9aCQut-Q;rd z8;E5-fTI~}_QR~NJMb(>rO@5S2+$z~60|Xc38BO_hWe*xag>{^l4yQ zFpgblgDZy%QI?u)8)PF>wa+&B#`N^r^;e7%hf=|htiMB zH);EI$#vftBN&JD-j%z62Z4jC0~M!jc9pCjZ~YX@%4MLD(HDSow+E$T3p4QhT9^Nj zbQ4$ zJ3zib8+CnnR#EA1@R3uevS00M^aH? zt)#aE8fR1Jxip~EK~WsAlC#V+QxoF$aai2-UgQ{q4L=CR7|;Ve!6TbUU@C2mAqO3c zO0YPr9Cco1+r^rrH*PUTc>aiO5l4gUE}DT&VkgZB38xgHr@vkHuS?Eo?Q7KeEil*R z`$6Jt(eDd2Z)E>a&F%*lmas0cZu>f4mcLt$v1!gfU>;$EWhVSKiswg(8~*nH`CEd5 zbi`~{^ta_@OVPXg&GPq>-qPt7$7$u)JDu}Oi|y>Kc-?b&jD?^GYgM?>09Y&o4kod|Y}l&UeC5z7I5V6v=pg`&FVvnG%8zjKQqx0%^427I@CYRQ5;aN+glNA+0aB5_QX#U zYHBV{va4adCKA^>IQJh|>IIDG8~~2?{<{XVYv}Q9?miT??aLX)FDHTPoZb-c2s+7B zhXzL@@S=;8ukkb}13wpeoeQUVTkh%A?*|1nD3x-+_-R-Tfn&d)ptq-dO=uhimvsi! z9-0!-4oEfyj%=*OMD~*WSxcCUcr%6no~)3YZC{Y0kF|=OLnp+IB6$pd-B^SsG|$x3rb&w%4w(y&!09*(zT4hIg+^Zu6n0k+9^_zWuw(S!ib z<;##?0+)qQ-I}l!CaPUv5AgRc*`d1wM+0aJr8I`L)ocQTXZdEtm8U~E1lQ!XZAQSJ zltq&cf7k?XHD1r)3Vp~l7nS%(7kvv?FegFYZTr@62N*6{b?3szD4S&gR4-q<;$3k2 zC>K_G?%k7$mDOspUF%j2n8eIqVde=um?Gccq~pD00M4r*Odlrz3@z~#UYKllAZ1J~ zTs0bT5&xTzsU;R-6Knn5^j*Yfl7BOz0b!LwXS#Sca zmnuQHgBRa$md9+xV%@c9rqT-kd7FTQbnbr(96jUOD7gjjxFXHdaH7pRPlsMY&6MFc0Sj~;nxgkZ4F`OSeR>2}V zJc|vM6cdBnZcj4nwzq~Ck{VathqjZs5#QZCMg_w|A1UbO2*)LPdPPsXd?hqtuN5H2 z?SAt2-iro+| zEWyN6%K!Sq!Re)l%#7t-rmi6Nk2pSD$Mz+I-PBGZWYXvruC9o~;>QbQt)t|=RGuGb z0!vt&+H5q1^}NCOWy9br+9r6Fjwc;7@30;3*DS`tDo}h<&GeniPe&WH z^ezBaxZnL9zEX|1b9B`yJ@Z-vl+0h6w>AGw5Vga%WL*9>Ir9tx5ip&bM})H;Gf`_5 zY?y0rM&ayk$G9#MuH}UEu@BA6sGPYJF3e4pG+{jMCT0=OTz_hz15f9lDj)rYcH|xkyo4*a$ehUd zKYZys7LG0KAH=T~rC{+j3=G6RY1Q@D%CM@f&;YERHBhIUI2Lj&Y%kjv4RyOv@x~7s zDDYX}uFR>4T20Mug=;~+%NGaKnJX~9_a*!66$iQi@WSzB%{5GA-{2L7>AKme66}OK zY{PSa@G1sp)PI6G!?DUUb*Kviz#)9RN4J?Ctii{^;d^>uz&Y)Tz9U?ps6B`%8`GWidQ?e~$w;hj?Dxy85h zBU??UBIYb_&6a*BR;b3(TgG;2Gj0_?7;brm>k2Y)6iL|&4R2@C96xn-w!z6}>&@zGJ^cH#pwQNdZD=xJ_A;mf-hT?m5 z3+@Y@Q;%9DE$YQ36R2OB^eua8P}TIaP>E4W4vDgje!$4YC#g=_Z)GW*YY{v0WTXP; zpo!Vza7q?kvhx?oayEs^v%x!_(#=HkS0bapmr&EyyAsfImfEVh0GVVK0LL#GCflEJ zwELywRo;UaGK)~6C_^qn9wC;Y?o#xU!c{BGsmHl<|H|&bfOu6-^*N)(b79R@JmCYo zJ#Uo|PYQbQo~yP#qB8r3t=q)+Kht;=qeIv}`yx#ZzudaKk%kQ-O1R;<3m$7{Nc(1L zgJlF)>;ABA<(ZVl+CL>c|>HG!8ZO<*5%n14?yru*x@<*wZ+JD@zoz-psWHtaP{k-?6B3Vv@H9PExW*t2uO z1cKc3_Hveg7junSpxGpk+KXOYH2(y&_k+iNUWdOYBB(lLTn`yL59<{8bcb=GR-hUF zWu@ks3l(5*Fr*SJXVz9D>Qp&|!@3&Fus^(wA(m<`DVMsRo-R>x;p4`!moek%IDo(nG*!eOY_hYE5XN`d7= z$drr~H}NC{a$qq_o(%$a39jrG5d?IW%4)%_?dRBQig96<=3};vm`6Z|?5cUFH`HL* zAhoDeF<=Sp|Gf@`pT$YAmyTP%Kdkod<2kgotG7rddhv8i&Z91U+v@jCgK@and7n8s zS&Un#u~fQ>uJgU$r%GLZPD=d#gI-}oHLh>SYr-}3kju_XjMef?y-i)9S zGr#iPgA{xKo1#W%C0H!Kyp$2&bOw^mw&px?*De!~kcArsXGJ;(ulunGVatoTDvAdt zlM-|MmJFS^T+`Vf72KaazTZ5S5aWgFBX5p-D`FJtRwDS);%}6cLTPmCM}6jpYRos> zk`^ebwe$WVL3`@Py^*9^{`(RyQJ>%BtpJ5}nT_~bPq|OLA<`d?Peg}A2RpA`LkHuo zjIIz-B!SCBOM&`nVjGLYE?xrGp3AF9TZ)17aI#r4d9%!xEbkqxiNJ`FdI6^R3l zdCht!o@SwYX74~{E+xHAzM18+SR-vmjx;`7(dY;Gx9>o=G||< zbLEbJY6|t!$RwQ2W0Az zXj{964R42SbQ3i^oAx6Thw5>ZEgo9 z1R2YK$)e**fXZ;Iq!*?4ymVLSChDLzoBUfRknUs_0Cgfy9(^b{r$8?{T&EQv5`}6I=ex>9=`72B4&?Asl-}!gDM7u%` zK|lq&i28Y{U7TG!@I31Lqg^!5xvyQUUIMRPJf}yC;0qzsoLX{fx#%_RxQmq_o@v?O#9f;>+gwHOs|_$%aU3Rq&&Lmz!a`ni*W|Ec^akMJ!5Jem5xkY0 z=&f&B64R<>Md7@?L9DJE92gr4x5CN#gSom-XsHXR;pC>!uRUOqHMMJuW#3XoO3lpv zJw*e}eFlXQ;BB|A6+XVqfsIa$XN^iM6gp&1N_*F9Gv&B7)t+EJ;-Rh!o&tP7?Ect) zY1|S78CkWPUnwMT@3vJrp0Md(DFuj5iJNRygnJ>puy77>?Yye~7m^&-X_0b(#!o-A zLhlP9jAw1XQ+baSj;lvb^n;>K%6l{$RRAJ7*utk$rn`OVo*uIx{NE`}dQ-3Qh~%=gBe;+mQu@*$!@tcb5%0+v90m$6a9@hPYMRq-d^| zhrgA4^xyN@S0-TVKC>n{(TCOAA1uKm#ta*y(I>8*jPCs-i^rj!$d$GhXBe4vcW=7P zhmPctx&D5k2&DHm=-Z1qi@gh=4ckHu9!oFRxIh^~wNuLhP~Mt{5=ex z2L;?qAz~MCg&m1$d;R1ZhkBR~e|?tTCEA{c1w4O=3U@|n=R&Ajp=uURUe?cMfDLJ{P`Qso|B|3lUWEi16%SP%FONN)owtip>(g?Bw&F>byEc2b4kZE?he zQBX~rPxZn{Xj<(0Nnk^;0APIQExq8mRm-1tU1>WNncOF~{dHUUjqqkAPl`oS{**EM zt%)tqAi!X@?C(Ji8+1WDas~N)FXJB)C9}B$SX9xS*;jzJ#Uu8)WX}2Gl#49mvLCsu z{T91o8~!QF*z1wgYD5?mBuI;tj{r%w{SX2qVVZtR5Z+xtxEqk{@fe}tZS=3EsJWei zKo7c;P`>8Cq4Z7}&BoM`wf?CEgD?&5^MEVo__VYAw{93YR{UWn=)wKX7ZCP4^y3uU3Bc3w?lVb7+qMmkKxgw_( z&781*yX8kHwSoFuCczS+>1en&1m@qG5Pbs{ZBNJ+bv&IAiKZ^o{=DZlEriEzuLyE_ z3&j}6wLHXipbbc(D)RpeU&#+3;#U#d7 zX-0X=HsH#VkBVlFYI|EX*4XDa`!KhR1x*d$0%U763Pm#Z1Mjn%~Q`DMOc(Qz|`D>Mv zz-J4e62y7WFq%xboH%6f|BY>KjaP`nGK#OjnsHZ}cJjGh$ok{c#>~#_=LZGZmG(z# z5m-y={@`XE%y=F9M$ztRQ$aJ_AR5gU{#(D-p;x@UxFe={s#(b%O!K1OCJkA8G+zZa zDBqGayhI@B9or7k3<$n8;#?jESaR$Bj#!pbd{!JQFz^X|1^-e}5N~C!jV&S8guaBq!J;fFlV^6$zmMK7!n57jrb6SfdzVTH zw%rJqCfiE!pd<<8t(9PIqn*{gRkVu&pA*(7hB&Ooqh1CO;%1*Uzxx{VD!UQvYPDvJ zzqSPIvG=Z8XSsAUh`Fs{F%AMP{1cjfB>4=feK8ZKf~>o5mVGvLRdt@|r(EoAJ~N#EP-4|48yB(-Al-c8id7%LxQ zL2yRlXpCQAeikF`YG>Zu|n^s!ibF89d_1GbQc#&3@R9b4bb;sI$w6i+CS zF8942$6wQh{6j)bd2|fzO}lz3+82H$2K_F7^(eVMq2{{#xuLyKBcoNpY-n&~4Ad(1 z>w5e5O4|pI3iQoCG>EU(@R=kj%!?t9aN=hhZN3#9X%VDR5v10&W|hR#3N~sJLzz$} zB1txN3~@8>P>tY^ES5Tw^<>7`DF%!Fx=^O5Q87lNY7Ibp1;PB7c%{2u*G%H?l2Q|D z&aqm~eudN37!Se{s-&p#Irv8jF^dh3dJ4=J(y0j+LCibUpuj1PNy`11SyW1CFA^hf z`yD^fd<8VP;kbe7bu46(hdfvXv_*czZZ+pO~$RX86K!##7spXOr7G~OA0QIr2j}@E0*o8eoPzXY7z6h$vx`~e`k0>4kc^_C zk&j)F7qm?*l-)aZ5ni-k51S>}tw^Hmo-g5GW6?7N20JbsF6c|Xe4zM$1=0+yvHnC4n=yS2^xc(!-02`@8gtW zL~ffFcInzh(VzP-oU7VJxaxh#L9P!%?m_M#H`K{#{FAASA{@)y>f+MgJsI+4OVA1l z84q=LE24NxMkTwD;WsZ~1iXfOtCh|BL(S#TUE`=)azUx+j`$(7c*=z)lvbw!0Nj2> zu0egKrt%uc>V#MU6&p^3O@EmnGq7;>1s+2xTMZhVIzzj7pTEyp(?(-)k(t+zJzPB){eb4_$F z1}#b<)$#NC$uVhK^7JH$oqDvUoxrCq*fk%e8 zD>8qCVTEh_dP4)1g^jf~H7V16Du#Z9xvgleU(eTgRGQ^6AOnJI~p~49<6Tcp2U0 z39FrndNI%WIT*u2t`C34ea^iqEAx)>p~$}%y$}B_@@`V~kh2zjkTQo(@Fn(nhjbRd z`e}b&Yg6g;gmZpe7#S{@%U<|bw#KkA^RwuMnN_#Salai0h2i+pUSps_?g10jMRpF9M;NVfQOuIT zRa@b8US?b=iZaX_y{au2%F??==p#?#syj;h1-D!n9!0)5mriloGcAAGSuZVJH?zSN zQEU296UqN|#Xmz;nUely9<9~P`OQyibNg+@b|G7y4H*uUeKHUNf6Vam&u;M+(p; zcIhk_t+U!32S|QXzMUlB*jYryTkH6QBK^iN^1{aK?xaqmW!?HteKOrG%lQfj0#PkJu$DqQv~(|vtfGobImbuvu+XgsK_MMy105C zYA6GJff>47k48V{6~Ugl2A891jHZkF(m!9zk*q*!UN_4JMOJIz6j6*1}vA%!HBLH5^H1i)o@=`gg3w!CwqqR5hS3B2Q|@nV4|g`1$I2 zEW3DaX(^SaS{H>z87#!0dPZC^N-1)#lzyXOT-=NlYQzP~++B1ieZ0!47Tr#3*>9Yw z6BSomml*yoo`tEQ_h|UOd86Fscg-t{4!w`DOFT0k6Sb%Khw%AvYJC_>qvI&OW4?yr zmNP|lN{4o|m$K?M`dQNr4r5jlJk&rNq)Nj8v-rhXy%~Z6+E_*{T1#|BI%Je3Gv2cLS%|EF&e(=)ZMz4gXqdDl0d{)=MT;qu+AhB-H z@MHPV0uQeo?va!uA z-jFX8l?nK|rJ|6uM=)-4Eyd~e6?U=iu&$6W4eVR>$LQUu**c*qRW-Mn~}{`uCUVXhv~2)z7cqtrD4-k z8)sEE?WIpIuW>g6DDFThWfSsXjFhWHxQWVG_v^aFQ1?To42yj_CcogCq?)Rk4^HlH znm%lBLpPh49D}1zP>O(&tP zmSE=gdE4s`iI(W5Zmp*J>@^KjmZExGym&~YDjT1nYLe4~!L&GeJt5zjPdp6oNU9&D z!8Q2Fi}MYQrEG@EHos?ihq%>0EzJAYYHa?+Ls{ULs%fFe92NUr?EVy|9^G^<9DDerb`$d--HCNeDpHW(QI*E}PO)?*q9{Kiw-`vkw*@Z^kiiay33X-eK~ z=l19!m4#gJ*he?UKFKo7lEG0z&+Redu=OtH=y~2Ps*O)K4L6@S)P2gWNahfmRF+VS zzwS0-c6b~;@QwS;MIrSUOEn|OA-bWx)4 zw2_ikUi>r3XQ{oqL_jO+eOSncpJWzMwZ?KOn<6QL$#FbvRED&=hMEtPI9;~*BK$*I zgPiD&Xh)=ibK_t``?M17dKnD|Mh|X+QpabEZW<(I(u+%Hvp%Wa;LNQY(0-u&w7?Q^ zzuLFA^1FM*5N)-eA*_|((IEkol3_KdmQZgCk&8x}yLrOdTPDxDq#q(J_u!gBLE>`W zjUv+f?v?I)FO1xs8B%h}xm)(#XkRS{!9$~6+oqbF7>p}d9_G_fYpxVUC~VJsd9^%t9Tra6h^~B&=N- zXZ7ush3_}AbTGf|JHeRa4s0 z-j2bQ4|qT17C)v);0oS!rv4soVe5Z4p(K6dQ`B1G@bVK)N(nC4mzTD`Wc11uV*|Q`r*BDT^29arbUwEwjQ~GOJ;yknM1aNfxe!~vc7`G zleGMRun@uf??ec1oDS22weyjD9jeFsQMW?$?mON}-H6INnjl7;SOkwfkCXDK#$)b1 zt3G~Dr-dfuK-m(k)Yno&~hOqQC7=@!S)ql)gu zrP@S!RqS9$bk8HAqxRO|qC9WuknSs1XG57!!%v5I#fJ{2D2X&??REdRk)L4=iu#x# zXQ>ur2zc zUko}oS3s}pWGq3m)#@2F?7VOrzzabiwxGI4lIAhTfi)(rbPRKajd0Bvrn`^KhPXdQ zYt~trr!z9sY^rL2I$bq=gQM_TRnIfeuJq30%oR2etB8u{{r|){+A) zDtXRBrnZKS9apk9|NVwMRfn*pJ6WbXJu{rYSKI?lNSC%_>F&a4%)haBa4>b%2y!xzU!l<=|UirOJi4U}}=gY2-u83%o(0skcg&6gN zJSmhO(!cF7`qWcX@*59?vw(Qp`Z42X0fa4k(-tC>O?<|W+|nj4h!GOY{($KPp6{H` z|C@{ZW|!b{j<8Dt+z`DnWi%(P$owy#SK=r(q)C){<~g>@4WRHZ%3g%$yUxd%7o{8j zf|xgn06&+1NVv9KhK9LJxfSTQyUvoXfi1HVu5SrTjQ8YcO7H&)s?{D`@qHL_2gzJnzx_?? z8?2t+He|cY@`0JZy6sAcI~v9>aKEy2qK93l4{#GC551GUWeE{Z--?}@$}AeX_nuGP zq*PBs+7*%hz!6n+bi8Xp9um*SEs7Yc-1=oW{h5gHxRt$?y=4oLLjD(%O(d~I{i|sC zPu9Y?#Z27t-)3Tr=+E&)oJ2tge^m-4>XAIw>Zm`$&)km(nkqRhyoE;E2U5jkG_nP~oG zj11PZT?m;V##a*hAUp2ApUgA!e0mnSz9OV9Tb=*o=(0fBW{|-Efn#KxAOg50e>_5r zi2r}bBmsi}ZrnY(5mH+i|L`hA6cK);4v{tAiVC4T#&(gd6YoGnqsnoR7(a3yJptT` z|L(FOal{rv-9-VQgx)rf6#V{gSZ*FMhGY7G8=XfhAz!-80g|H3*`)RVCkXVu5B~$J z+fa1{6L*viNo+g=?b&xXY^dAKiFjaQB?>}nJ|an>^hEr+&8@EBe;@z7@wo|I-xb7zQ9#@o zV*m^E4l)wcOWa9hbQdpxR`gy7S7EF?vGPNm#Ko=GbDY5y{3`!dkm}RZ^u}pkVnusX zLmr9_rCq%dk!571Od>k-0J2O!-w`kcR^KaN2|M2=1leCHjeFsesNp$LxP_F{_<_0g}%6s%unsx z_ZG5Z;T!Ih#6S9X>+}D;aLSxcCywVEu?#+(GDBt4>HP1l%s#Y`4c^_1@=E-FmXH5u z?MJWw3USZZZG8XTV`3@(ruOamH#OoKQ{?}uwpssK)>6^8^S>$*Ur4O;KZ_){Z``~| zu0nFE^@*<%PFUoy6jdaGJF8?gCY^=ZOyHLqbx<)*8yEY=IFkHQg;XM5x% z=KYEzEd#O?`UBHq?!F}Dx)leWU+{>pv?{xCXwZ9#GZ>YVQ`q6}`)1XpMw}j*c~86H zeMEW#aphDH1s|V-e-H(IXZ5`(?|EP)ALwSETj@U}+58QY4+n|rJ>FJnxwNvJAJg~A z2$AZ03ZxA_q9;z5%7fP?VXkaCo0@oyifdL==+Wl5`T1ucZ!CrQY)nqJJ-%)BRYZ;z z?ZLy`UmxzD3&)@9JaYGZBkXXaoZqGlPncSRn&+rSi%~uapO?L@(-R9HmL~y|M+@gQ zxZ1i)KS;SzLP;mw-DTqL$aIrfmpkbEXT+fFAWytc_w@C0o>C4bc0_+*n4sX}NC_^+ zQh(px-ab^_+mZ8{-itTMr|I=7dVc54-Wt#QUySFGYT64?rR@BkB-FxBrf%F5@d)?f z+;Kgmy%EPd&0PL5=)vv%pE_@ofr(!xMG2Gde*JNX^U@V7+ANJW8h!Ijjrj$e-lnp{ zXi3s*kUNleMluh!Q;W&4PdN7|KRsr657@_oIc?O}fu z%A46%k71t{b_aIx0q!7ybCkhiX*zkl$TL-i4qjB$D<>GmgIlMUy#uMlIr?dsoK z)vVRUx4Du*0*=COd55E?mOjlqXkx1SBjRu?{sWLRrENw0p?!H6Dck(e(+=HhT_5vd z9|q?XU1;ycjli;(Kqw?ZJzqpm2&gR z?Cx1zZ367BD(_qF*2ZOjhU>rGVkR*mp?~^V0&9uTR(Zv(YiE%u!q4#X_09z4OFPRd zopk2=!552*GrSrGe%z`6vI8#_0C#yNk>}YNyJmLd+#xFLhxgF_GBB<5g!L!Wbvi{A z*ArC{hieOXRi2PZB+2VMsRH-K|C(M3=5%HE-&2Y_Q(3oHw>q!)0>1Wj@Rv)k<4)ne z(50S7F)Q`y5@Yf9VM=fX!=Rhh3VZr%F$M=OIyzm0UR?9Za>jB;{_fxRu-103Xba9i zRL@DDe@SB^y_l`Hd*6uw$C30&^EW4$^tkKN2)WaVC!i@m|51oKVdnU<#(d+`?E$}j zhNpu$x%ZitbY9Sp8XUrkvb)1a(w#qj5(;S{X|kBViC}n0YJMQt((xe4SX!C$$z3jc z%vyQG{mR;y`;7XtJDqv+Rj$Cf0-&3%CDM%e1Z+0DAqemO_T_dv0dZl>XGf*k#N=@G zSmeG?L{mh*u@&l5tJn|j_8Y~whM~`b!3?v`3Gp83ACKMmw5@%^71VCtN$o#%N@9C( zYpGH^mj=vr^}N)lt3iErx+MPUyx2`wyTQ(3;;yr5b&7+(zdr-15(OU}Rz&|V1@Uu< zQGk@u>LeJY8?37lkuNsiZWtk94xck}0=c-AZ|^+sJ=8|o6hwGuY@eR)=xUVr?LD~h z9LTp$rDsC_*JAI0y`eh18A{o$uebSj(Z+bE*FKt?>Isqc<|S0#lGPe8VLayTmlx|s zt}xzs>$RBJ&tBK)pQy&4i_D|HUQ8Se`K9m{vu zh%rinGo#=Ml>Lu8frrw_V#NOMuOLP) zl&Abmdb-!l>g)DZ>H710$dt1w^yv#;@ZpTQ9T%4RH2<@jf6!gpEVQ#ufPSk61?W~x znU|Cd`S(R(jS)TAPyme;3KA;(H)uf!2mG}=NF(t3|6}R9!`c4c_hXNsv17GHYtPtJ zYtPuK2x{-W>9T9rCRVM8v|`4lwTpzBX{snnYZfh9UGLwkpYQMd;c`jhdgYA!xu5&F z&pEP2IoCd2*9|=)7xX5&NLoD(9{rUFmv>1Wf{aHe%7NdFCqi#@bj_$VS_`i>e--&= zR0vI%n-R{nhsm?$+8G82;BdE6$-rj(avO06dnI#m`|xs9=GU*2Ehg69ui5PFYcf5o zb45f%;+QV^g|%03;_P5I*G1He*D1ZAIr4xohnJ%FAQ97pjZg~Neu{#O&>;Z)fd;_a z$WE_4u@O;J={q%5ZI#Rnw)#cKp2+C`&C+tEGGz*AB&UQaQk0HtZ$R?d_5wRy4}gt~ zO+22@Q#x5KKT@YK7cdtZxTt9h!WsDFx_69jB*+yK)7TmtR<}=s8ET8EOUUi)D5lyC z89V6I#s33QzJG)K6n&5|;8<65QWwo_W2NL)GVJ4BhI6Nus^y-^F^YInX#sW3U)x}C zq-}Pc5&3P}5YUzKE4tvTb0jSIOKf+k=Qt%KHXWj)90gwLGAR@+yei#_ukz`Pu5LB` z^t)wx_E1>*dkL#ypvaH-d$;O|9KvWcdV>TK2nrPGw{mg&Fjpl{c~Vi)Eulu-@pcFc zTjiSVe2Y|{kDk2wS&evl55~&>Vd5O5Xy1Q*MN&3Cg^+Wz_rfmv zXFEqSv^KZUCXckHNPN3M#P1DiFfb;iq?4|O%wbiQIjw(7W6$eG z`GwZLcK`K#c-;||nwmdcgjF?igkG{=9Mko2C92c}$U&$Cuvhr)1tGocMEEHz8g{MF z{ed@M!xe@F3dVxswJ3MX0v%tJF(D+*@Mr4`J$kFx*cA8@D2#j*U{%d1{NoUvhZ(mJQG?}8 zjb6iS);HF@s5!=Exkgy#+Z0D*yw3fa~nPrO-Qzm^TY~B-;olG76n8@>6vVHm*q}|80Ug&Y} znoM*Ig+nlemUnK03i{Me>dI)J1hEXvLGt6MVLZMN4bXCk$~KAlgupl8j=&goih_cI z;zQM0+|J>d(_SxCKPqSs7!CgxB^r^qATx8P*y7#UZV9o80VYL1v*Et3VNK8(QAjFr zc%r9URab9?2ZbrPwkY^-)kg!dedv%c7T|T{I&YoH^f?7Q>imj4Zc>to7rDu>oM$i7 zi{GmZFi=Xqkvpj_+9XTt!dOPTl3&aJe6xK|{)u62PMwd{{WztfYto+{<32e(zJ3~0 zWbW@O6};f;Z3WzTqD)c^O}(?gF&i+I2eO+qzP%gPk(K-;tFhx?ERCG%Z&sR&ET-F^cuLTmDoAVp!hK*1M79 zqX!lgo(s%}Yrx(9pz)W_j;2apx`$Ib6sg&yC-nt*(Pm--Y_@3~Uxj?5Z7}owAXS|| zZRn4a%^wO0u;|7~RaYkYC`ip!$lqth`I$+?p$2Or-X{D*l_?T$9+(mzb*aCZ`aiU>vWaScp$x+F{zh7#le*V*H z)YK)utPnl_)$Ct0%?3W)HABx#<}M4Y*dW`;8n0ArU81;;TS~|d&)w$Ne@bk6zEyWB z<0=_FjVq`}6IJx8jlNup%`r}uk6vxcvaKnW3OQ8b7koEvR&vo;-4#%^h<&^YPTmc^ zUCJSSdMX05|GKJgqJ*Rkwi7J7iiUcAc&brJ%WS~=e$3r(RY8kwltC#b&!L0XMJY4s zcCh2^(96y6qEF4=U&zaF)XAo|W z@&x3X*4oO!)O8!ztSu8B{4FT|l8>m`dYL)IDr33Q$?L^cJ>hncDmiCgCl(fQ>g~7FNqYRO{v>5xe!>!Bs%RR(qVCqH`CpvkfTLI|gb;6ZV0Mr23 zJNbudH>IC17QEDX0trwlzR0>lM^Xk}xQU&s;2hza9pL$2P?*9;d^Q_70!K9H@6bwX zuSs}Xh}!hRAOog#iVhH2eZJH-9%W$7>!kuC`t%ho$a3 z6l)y?-PY%YkEff<;h97EA-W{303od-29+ss_`5t-UdWh0L%h%jO1YH5>JCiWIB$=U z2ifq#I}ds_q?45PUPuWWiySN4}x*UZ?!*k1XaEQe-UlGHgvYV z{VxDkQ~7T|gn1A3Qs?{fM0TQV({ zx==-MtlE618cSCLMZ(lxTc-sC$Et~n5@u;iFn*UUjiXBba=(gG<`oFc!Gqf1D}Q=9SaanAhLHt*ZCJ2JI)3v z4T3$hmk3a%OXh~AiT$9uE&f|Z)H-1gJM^0&Bfp#q>fFtF7oPqZcAwLk#@E~_#<8N} z+5eUpKCA<)`arJYz|3qoruY%>aOe9MLL3t`Hr)lpi{$NZR^w`^+uKb%WYUECm_C_* z=!=hdiwR0?9v~@a?9WzI_?rP~#8;r#0DeN^&7z6^Y%|jBf6-i4yn9dWfKXxkbA9fa z1-$&GO_#8ZqErGf$ktD5N4AGJcKL=F$t-~h4u1FKx`?5~w{B6dJswbxZsag?$Uv)h%b;OsAV`nv>89?h*_weX*-u8VA% z{^eTxWAV_E-lO4arI?d{G=-PyZ6<(O)TmQ0peYK9zfg-i#wW|M!las<{NK!Gms~q) z^>xYU9ERj@$oL-&ZG%J=Eo|q5XwVH~4$l%^?_7PhYhk-A8qhHETiVRYKT=gAFtuVT z1@Btqr$6MjhIkRy(^);y@oMg0Fk2VHw}1#`)-SMY zYHv+VBE&Uk4h=FH6tQW$@FzRGjTr*xIh|dEVGeEb6B$-lz#Yc5$gJzsn?SQ`l6k6W z9sHn+CEUlYVb9*;KhO-Ei)?|_b5!b?QIF70H%3sR$;l@1R+dZJ=Fc`N8o|#6NJ<;y zDjmwxw+xyvsLZt~rq^!YWIxof-2djiM|?vM77|-nUUse@-bcKM4YYblBVzUPp$RZW z0eFb>jq_lZqu|VxUk!a;DC39^x)L6J()yEn*wr)*S7TiN6Hr-d2J8ONi$7EbSo`~w z8U;{=mMJjJYsf%uQ8ZHj$7i>90CA5-MB37&?MWTSCZeIUhhzVMP}Nru6A}IE?k5r3 z83ujAN-C;d^sI9C9|8hlVk7JT!3@I4d8-lMU;?!jWT+#C&p)ae-P`#?iWGiRx*G38 zW&l`vq$UKxVyOZUscwcz2IgToT-s)uE~8Yq$5-<;?TCB0nP&D4JS3E4&)C5ro9;SGY*}9)=q4V=`_*nFSSHgvk04DTtPSflQI`>7BTsOv{-?IOKss}Z0Qxs3Rtq7@{ ztyWa9=GIuVYX$kj)8v%wy>v%JO*8mV{U}vc4Rvrau+;yx9b&zCk?t-d4e4Vcd$0ED zLZ82rVv8>#A*e<1R!G|yi?zrGc$Ikwg(ldg106m2uXp}+4_ZWOzVhGi!9Jr}2nA1P zozlQH4Pu_-bv=iiy|_M;jKjG2_SZr0JWDExkslk8JfCR%^Wg%N}3fz10Ss1>#z{+g*T*ejaP_%fLaYm-P|w$6cKx zKL5W-_P}qWHyz&Y#D)~DKgPuV8e5k-SodxWSbDZAk7ayrZTyH6UE{-Y|E1;L-rm8Z z8jQwm@QF$T8*s*FTO1QAkTO&#pkfMja~Y#V1x&u}t-iMoagR8GTuDUu$%~W?jyKt# zuNruf1>HTmM=P}^5pG;v6IZ767`XSSnAp?d4XvG|b^)0t126rH4r@~edVv9M@?lttCEClR()cc_9G@IkajU!eWPQ>xRF zq6@ZDlICWbT5LLE#8S6RRYw&deeeqmn7sCk;b(Rb6;%TO!b#*oCrJ@>JLC zgj|z^X@LC#xp8rE04+ja(M}mj2Tsi*?YCY%*N&n!_kKZ9B%n?uJ{89hhNj;C5n1W` zS&8QCO#=SDKI)YP5X|o0i39MwaHk&y#!Wt@;Osod?hMw%9t<&j_qF|4?tg=;bh-pI z^6ufbtys&yarw7+fEH8%unPdI0fo7*!n*iN(Md|&VhI3Fi%;O0;SHYO&?#Fft?YE` z32k86s?yf01SZ7P4)}(}_JmcJ4_&3*)$SSKWc0~oHclGF&nXYpxs{_o;f7-?6~)O#2!NHrBS4cof3QHgd4TXS-PNjD>9 zU(q;R5>GLa-YQ&df^TDOMiSh~iNEpbydvq@6fkw~9}@UJLRA6#AKAt88&mbgW25}a|T6;ina za&~6AS`hluq8kxQWz*_^(iB(=4|J19!R*XZ3l;2SK@2-V*fojBpscAC>yi%Y{k6SH zg;C>L?%XydE?@&>L>a=sGU(R&82lsKWEq}GQTAv5UD~Ht*u~m?T1@T&BND|KCo^)k zpIZOX;X)*W&~5vr@O&UdBl43OqDBMA<~0}h4YXl7pWxPGIrgW(#)+nhGk z%Z{(wPkW&njb7ro96Hy6=cpATJYmX$-~#t}_BL9#wMOjE;?aTOM5KY!PKb6JS2 zphb;?iguoU4@jkb~eonWDq)nQ1Oy4^s!ag zvN@ybZzXdc6XoX zGZs$To?wERkjxWRcR4&nrnfF$;-*lYe)^*VlNzp8RaMr1?bnn3aN351dMI&KCLfp% z3>h9V%yoHZfA0nv=6Sgl#r>aA~39ZKC|reV-cSv3+rS(Es!`%@dK<_fZQ87dBwo8xTl z??NAn*2qQG1SX%2CnQ@`qN%?W0Z4>h+N=!PbGozdbO)F~(Z)YQh<(NT>tcJP=zVYt z>>sQHfE1vYC@YT?`X;YO3<>pJ+rJkz; zEXTEsUl1#-Zt18;Uer56TC}5dfp}Kx5@NY1*_v6QLkJn&r8huf*2Jd%me7;6HW?+4 z(s)V?WsN!)w-8K(u?)@(M^LS&bPdmttgMSCKm^7vohGc zM12qtc`+geJc9K2ys$LPCE?RmPiJm!X0}iP1i7$vML)!vybMyE`WU_k6epg8NrRa{ zj8YLP+yYoLz8PyYu7(1#Gi*bCWy*fqK6jCvFoi+L5(XM&y?9b?DGWlahZJjo^%_Bz za@==|bJSV;BP|AIHXI7db(j-z&_P?SnaE;SWxzkc>xy+*|w7~U5cb>km? z=@Hnn@PiQo58ZO5Ux9Jl3L~ON?VI!f0Kc8DYJzvo&F8v-Ton**_JM5E9Q$BuGibar zs2R6ESQ_VVLt)EQ)*4J-e39+jMqbr3R~|mN-nSThy$mN$vAB4mK|u%j<$cV}Ym`WP zMHcC~c7zw_n1tZ^GN+BYg7qHyT!sHoCCmw)zD2rB-~-NQ^L^w zxVIbh+_kBNBgXAS0OYCWfH|}0@>?@Qq>prdYsMWi(T$+`0j!d;$}4H%@2)!2)!D}(#ZCaXsXaCKhw~fXr3hDOPvlU$G32KkzY-&znUEB=3vo5 zXqzs#TTQbV^HkWd{C!MsDIrTQFL^S9$-cq-I zuv;jhyI}E5y04)42uM~A{*hNe@nK)I3N_<{N!OoL`3(((l^gYM2uMV=+1g3FgbWU z8#xw%p1+q^>aVs8k^Nrji;t$r1@Nh2$;a*VlQKUy2;tRfXl{-e!TQGri?nc@P;2dz zk$arNo>`r`i=f>(pU~pXiqTo?1#V*%mBt~%FXgFT*)lG4FOIDJ~Xix_61TkcX1q`q3hoSAELA<*h3RVF+P}+vLRX%( zuVB-)e<42)e6L3|o140lM&EySw1|5u-Ht`;*!5U_IZS#fb-lo$JBk_HAPB!RW`sr1 zhgDdb6XeJ~p5#WKnXoo0HU`!ry#;J$vwyr<*3zkZr z;v4!aYdeJQsuXK`)t-GdY4Icyz41=c=C+_m`%@_CxF(iP=W9&TU*h+5gkagXMr^W6 zBE-P#+&wYC!>jKt{loX(9K_-p7?k!Yk6C9=c%^?P?=4|vAGpX|^mMPPI@1&!E@N&P zF;+&Pq#7NV?UrGs&L!U*Rv#VLFPt>7o%6e?&s!gNqM@O2dw#{sr2_a59wM8MC+Tvp za9%U!_@iUBKG&VNrlS0>;)QdGF4%A=ZQ$lS|r0r`N)>{x!eQuOZ0`=@ybIV z{J^R}#+llRo<*xoPcp0gwYEuoegJ;#C*IWO>6Y#o&$A^H%S zIxS{-<2{P^u{2Px9KI8yp1siyp@ys>hO*5<|Sqhn&$kFB(s*FL+EhNc;`F{MkA zrgC5>IYm}hBLaplk$akTv)1dj`}3jyKxfK;tHeV*vDCRLgRPl&gCwV}0~v6vhn*f% zm!-QYXKpj*y*Jo&{iMW0jEhTtk@VK_-wKEH2J> zS(iA(9lUUe1FoXj1Q3Hkox}$q$4!x}z0I56=5#;!p1e?tF?aI6uf0CkM?AN?T7{fQ zW%~BV^j<-}D?o~Qhq=nLQkRG}ulDW~uEl2Q+TUEROh?e@9ih9XO=*p z2p+Yqm7?o_#zhGNm6($x2y^j9Sah}BGr+0BThRzr@^N|&v0!EsvnkHm7_gIKBKm8? z!=8ZI1zQmgxS&&b=0RMV&6*&gr@LUhZ_9;!gv{CR9_awEYi$3%a%s?bn1ej&iI}dc zdg<{6xj6D+?pe)k?MKPmf57*(0ep2bA<1goC;xyLX}Sgx!EToN0eC(&(%BohRKw#s@3?vBy#35h=PnNjQS1U`|!)d<)Mr#V2ETBHL)kvutb?pxK0~Z z-#)b;V^hW|ke-WnQA#ps_?DRWwRz}JT}zz|XCu-^@%G53VZ;*W$DJ#u%?UB0R=i9H z0fZ8Kwp+vZdS&^O=YxQU_LWwf;4{nhws=Okry-p{I@Wxy@^8|h#n8{bhUL=s0*gZ3s9_@U1c&GI`4Zt2h^W|HubuY-7%run18+kN`{waXp_Q4Ue*FzxpZvPDL zzvw>DYt2xnX=FRR;uLeWs_NNS#=bFq&4|R8%vhC;7{t_1PFoM4Ch)b&-&`W*^94|r z8dVDmowY6~F}1sfwpwLBIJ@;&CoP+vWChc zOzim83P*gorxq783qVXau+F-*$*t|zj7y|XS%ZYts7iHBU;E+x9bbO-iooM0OI?|D zSA6`nIyGI^*{t;#lvRRQHu|@uZpRdGu3M~gU8cD+lP}m!1hmd+F;Z3MgICB{nrjVH z0|r-2*>O95r%*pf3g!*Bi@+|7hm{r+=%g4Wm5)*Q@(~FD`ykxmK9YURa_kK77A^i}-n(B&qI zFZ=z91$dksR8`eiaVw3C=7G;N&NMEO-d2y2Ppv|L9ugnI-;OyzOc$qY zn#kYEmiQ(xs4h#LJRyDE1!0;&QPJWT`{u~W1d#WFQeIgsRoGs>u<8&tDxrC`jL_a# zlNOFV_|*m-e}6=qfQ?n1*SRKp-8)+^TL`u0N_Zf2VG{yrh&?})g_a)uZ(wqAl|Jv%$jjsEz2?Ry-8qU+31y~YdAv;eq#Db3 z@PG}Fr=ER71{DDXp@P<+XJ;b9uR$#iwaMF13|qAp9L|I=%A?Y>#ad;THku|MF-@9d zcnBC?Bd6p8IHW8tTG%9QBs6idU2hO@Iqm5OB&C(Q{c_Fwv-3IVL^k@F{oP-kBd1=+ zWYuzACcD>J!t%3jPQ<3=OzOw0-;uALg&-*}Ugu=feN-_wH>cYJ9O09Rryvb=Xn9lx z=nV?ffhv7I*KHgJ)S<5e)u$iVoN2H>QyDk9b39KO9a&ODnDGbGfr`fB9zp2?s zn}H6j((wpjpOtw-@1SrqRq!EDymIM zWsj~P*>Y$0lPbOS;vdHSg2j=4q@3}Pfhwjot(~k|$c6V*spit-lD@=)2o#(gJWcx1v2#S5r`#O(+Hik4@~k!qrSD=&spDCvm1-OPbo1KNQu)9h z&xPuvgbC^B9&tf<20iRx2%452F!wCUuL2EjwX)w;|HF9h5(Xq_rj&{>!6kCnuy+d4 z=-O1q)SOBzA|j^}pA=i{K9JK64F|DL>)tK(bVh#}_A8t63*`UK??G@qWL#LnkJa$1 zMxITe4F{YA>!j8Xr>M1{^yj?SC>oal-DOO`ESFtG3ND<($L*HwS1py9 zma!$3GV+z=f>k6Nsvm9jL+?RMhs@99dmes(s`on^{JWC7WcFDS){0fSEu??wJXruX zsvgKEBZwz6Hv9Uu9Jwug>^%b+Jngfvth4d zn)spnq?)4eH1NTt#T=6_LmchyAY%GP(w{>E8m7OZkDgoFn2@0Yv5hfrod+Vt);BTPO^%p-myAtjMxnhUXzlX<>LzWrn{$OogzgTeki}VXl`O^ z!mf#pQ&3i_%?n%AFRmiF7{74m-N=l(*1?22*(4~6-&kCaY)NsvxAcs2Zh4+T{ zWRzwmtE!=}c&1yO(syPL*jx#oO{h=J1i#JLN`g=((p23NGQ0!@c}Ui=`YJTWZkH17 z=FxEkvU~;G5tULY@hFnkxz+-`5_I)13cef8XfkU~KE0_x8rLrtce8o!3#H&Vb@SY! zpPbW89?kOR2$*QmDO?{Bw-bS$7@m8jmNcC{vpFGEoI{aYv za#G~itZT42+bCzGQRDa+NPi+D$N^t>NmiC+m>d&6r70didg$+W$HPZ}x+>d7Sl35$ zHlu*VoCr!Kb z{Y19A(2e8?ITi&-FR-bocx|kIbx7AzVQkKRnJWV_VKJok+TO~`q=ad-k>O&;(N1eC zy1-Hr6C3M7H#oGUWr_sHMM*?4a60Ps=_%GkGO&c+zvmF(!A8n$wJRNG&YoluvnjK7 zmy#Hjl<-le$}>U)!9B&Zq|L#P^-=nqB9ChZ(CEUQKI_(CA2WEeoFbO?RA>(g(gY@= zz+NTdHVdi`$!scTQ7Y*6UV3k7EU0A2y?p)6h<3d-;DDo(wUpuP1U;(>Nk4gFwdruu zCg2B|OUvQd5g!6EZDJ@WAx~d0p~ec7M1?P|-H}L%9emBElCIChrW7}PWpaG4&WezRxOb*6%IhT`~d# zir`m~C8LUH-l?hGwU1RdOpm;SAKe%$`715s&*M-V;?L-$rYPGvIBFF{FMw`PpajWF zqqJQdjk3Oy23xSPG2WpfQOx`L2eB3W6|)^5Uc6|F#juV|X=I(dL?xe;t*~ZH2 z*m~pFWW2QJE7%$8qB0Xr7$I{GL);S!PvmYtCtmCs`C0{{5l=Q zPytmV0i29H^d|2^`_*#!(qXHBgL#qOGTM8&y-@YCh|U-*w_id(@3Q)fiY5e?>LvIVu@Cwh#0|YFfT{^O=w*iyLlIBmdk>ldETbZpYo9_UpLO>l0H7l+w zuh{kE*WB0KJm=zCuPPC<5!M^(?UfQS9X)>fJQ3d+4d2j=PrR{y?r1cp@I9|OSxS4s zS|IGSc~eh8Hzq}CnPK-rT0vGRNX@P%Y|~>vzfuZ;Yp@S{=QDYiMKr3dmbelGQ;?>l zJUPA9Vd`U44$8Reb2;PV>|vNnM~H#;^I2`JCie(G?vLL~ZsB+kIE8uSp06F&p~D)? z>9u;Q);j9oA*(0x@pkT2H*SsPIVmOYl*hDJ!=1Cz3o(&A$Gq3LiC?r#y_^G@Wvwt+d#i%Q@Qmh zgly!T0Hu>0EaV|6<$b4^8kR_L-?CRvT*CAN|Ft`Xi%}&s#M=if**!bT1OAAGm-By7 z?&r{ei2XR=NI&`l!GSUJaJD^R!wj356TvixX|VPu7U=@Yn_W&{2?B>n&-3Z7b1S9S zmOB|sTNB(y5z?D#Y;B=QrauJl0pKCMant>JNQ{e zxJ%gMsgcE$&;KgX>J*C^ag*iXIjND!YJlzJfz_fqnYaX$Sg;CJZz_a!`&=h9sS z3OqGnO%bUK(PK;F93}kNFotU$D)na< zrLHA31>Q)uz#mKZPZkH=P0KFzk*Qx8Wfv|p<#U1~XM$MyOQJFanBx@-x$SuLYP6(| z;tIldl*7e=>=zFIA+37bTwOU zL>AEY<@+S(KbpUOUiA{k6^qOTCcXE%@c8)_H|@P`(_f+fj{4(cKP@}t@4zxG=Fdh`DNNe#0`yzBe-AO3Oy?=!W{83 zb;|94(3SWoi)rXs56EStC6l@7egEeci!I&{TNMLjz_3RkLuW2Gj@->r`&&3&W-{m8 zQX#CBCGIPdh~yS(64o;kD^|Kc=fMYSj{Fs6h>RXsef1t{BK!vu6)vuw37iT4E%d=F zcZk*%CmvZH+DJ;3Et@hU9UhKheQUi6=jBm<0qrFX^;{3&6llvLwfad?m>i;gvV`8l zv?P5w!~bq<&G?NMs1nptai#Ky3!x7 zJOoe(-|9Th#~3Bf8W>2|9b3O-q&qC#felEN8eJ5OMWC2rpq@~O3!$g=DUf*M1G=s* zvvP9y1`vV{4&8Vp(m}tw07D%RWz7S*AvwY0ufJKu`?VWWmW42F>u8fiaZ1V1ZF)3_ zL9ALNd0WhE6o&yvc$p7vmWsH1XcXDx0DpZhJ6FZJ_!mg7Q?mC+WngOR$>fZ)P7NNT z*J@FP403XS>42JAs%Wsr8coqSv^{htnd;KJ7A()eiViyWn#k@jvyr0yjPOohY)c=E zQPOe?kh4l)R?JM-DoscvhbbGg>P+a+U5LKdICc7!MgL8PMXZSw7@x2WtDWsp`q}SrrWNN+c!u%pD$2-8;RK{D* zu7Y6Dd{E*LVw!A)l(j(8ZC3nrC}$|RwsNbzCuEH3Ga#Y}1t?mA!=JmMds$%>kdJ%V z818el@G$LO(QPWIQte!l_B+2`=T9cWk?%K4-78qQ0P+My2y_NfC!-BR4ZUV@(AlsS;+ixe)!)tn)+$AGT2MEY3+<}drv4?S@pCbYh z^Zv+@nYkl#1u3~On3-xnI(~Fl{^2Vfnro3wZ0=z+Xwv~)b7+8epT-dG8XOjYAMy@4ZpaX|5zbAE2kMBOZQ9kq zmM!fi5=Iwdd7Yzy!irjqaoTc=d}*FebxGUMlkcYy!V@jr1gd&E5~yWQM6X^Zb8N$b z9g#f6taMzo+M83&txjJa9bO-kpKw!bC{2yrw3z*4$T3&7Gl2A~_tK6!Z8R*@H)Rvn zHq=)^`Z^jY_H#8HYL#@uoXUmgZt;e6l?Cb&HPTxxm^*l2j7D91U%+vw0Y6LXI#Y>C zz1ditb*#)UXuvRCYHF}HS*D}`TtAoN9ldbGT)G(c0Pvq17j+u?ZJAYeuhL)w1cL66 zt3SL?`jd0$Xfh^M8n>dSnY^*Skpruc7X}7XZLU>}ibMB~dLzEpV?r^$#A+mQ8rhk4w!a&2x4uIKHGeFzihnZnsL7J;r(v3$*)-Cy5oa4rc zo4ILP@eTsgA-)A%9Jpq>MKxA=YblmG`CSN*w>AvlEXWe_m|tYsTzm6L?q%)Vlae&~ zUM1Lkfz^AI1Axu1pPN|QsrMC}?O!q;(H;CQ{rjd3W`TO-Xy0OTN33;(V<|5`o59f^ zG&8YS(}aOtVeQMN%^b`3o3q`uZi$w6iU(l8mS|4dAY zA4veGjt-A45DxP7fJ;zK@qb!77;Hz?2%4q7sMgX@;W6&UiDxyIN%tE9$d_)&vX3%f zy%w@mPR4i)zo7#=fTVhdsA<6qqGZ4Sa!4yDFi_yg_ANua=?6_UJ3xC+slVTK;}CTF z$mKyeyzV1ldE?2R9`=FSEG{Oo;3;XDHm(k9v24tL^ZSEyiTa-7T$7h?){@)muItq0 z$(hL0ge%A?*~sbSv(~ebP^B;SYC@ZGgw-M&v6Lf+Je`$(f>h%33B6{x8zI>Vq`zOk zRXykYv12V-kw)u!T)$Y+Si3K(cm()x>VgC!6(5>66g+{b1?|PWS(cJb37zP7C|&jwTv!o;I0`X)X;k zu{O|E{o+B@#Dvv;x&CvdX^6(`OorS$J*%KPAHw0UR&Zkir1ON9Lb_A;4&{0KAy3~U zJ^beAh3nD)RB}he=vFrDh1#OR;*T;UACMb?oD^%k?z8e&(S*<#YSX2(|8#TJNii@Z z)`{Ewej6wvSBo0SQZkb+d@kx7lm8~X#mR4~;p*3w(kdjEFM?SfZHDR=L%~G8Z-hN` z9yb(C*UK6=E3T8Kzu{(jU@l=w zr7!9=4j;L97`BG$nIkn_T+}`ZV=zdhR7Ic~NreVx+c(F$K5;{9_G*+sBQ;_f85X5r z_lem=6#kMBE+psll1B(h`{X6m4f6VYGd+c1id15O@kt;Z%9$oU_VG5JcxBvr+QdGZ zm=-GPYmU;;(0wb+`P^=7^7F`}Cbe8yZSwoe`97NC<~s3n@hSV#_6$Ez25gdbo|WT+ zcOn%{wikni1Gk`>TjR`W#ngc;b4CZX1;#f;EnQ^xh)LQMpm&->(0;WjQ61a4Aa2Jl zea4mPS{)cr>lfz_`j_)s#@q8t?WdwfU0btidea~1l#1I<+(f=*n&~IXt}$U?MsA;! z!MH6F-&M&RRflA1`%-mejU7_OBnid>*9NaEmHJT?Ni$5kc+WG=P7pB}AS6|8xeCtB zUqKGcQreZSYAuw~`;Zg;JLwN!(OA$**n5(LFjdJ!k%Jy_5hfz*OaDhbj}Fc=E!|NCq-yum#>XGP=4ZC4txBKkc7Q zZLg>7K{^AL6SzH2!kVixa712+_qos)KY3y1v145UaoPuROT(Cu&xCeX{>=0%F5H@q zWges_oSkW>V7oX~X5td_4f?oTVYSqH4}$jYQxE>s$18OAMGSjf^pCrTeob z#IzE+WT28U3Uv=(2Vw5O-7BLpv+h=s}f!y^^KKIaLIvQt_ zsh%U1e{Gd*cD7Q0x?1L8$^iCq_vm9gCyOBdA79nfp>rb-sH2){mY)6j_A2}XCm(e! zmldpmKy7>DmQA%lqSrUK>lO9+Fi4Murbu@xT+}b zRWWL{lK#SHq3`A7a>55`pj?pKB=630FdNx|ysgb~x1dPK|AVhru}x3YO?aT%qTplT z_%t%PPHZjN7w#ek0z?+yQFve_kfBxL64S!9_il0)C+sLzPBLOI`e>A{VAYfL-getO z*C+Ew7mb&8km6Zmxyao?wlq3(I2) zYyI33l-zIW#b{DrvzX=Eq=yhPQz%jtJY%PgGtb^R#>HJ&mW*UfT<5t}gRxJCjL|@p z(S89I`2)BYbMpOW?RP&nTk4!4SV)6}lH9mqcrMpsr!vMWVINLi$UvD0!HwKcMG=Bo zHv=y3qX?7GD@3aBbk5Au|3C|M8*e~LymP64+*vkPPJTuXDhXnh3KuMK7U`JWd?sDe zXc$?w3=_Mj?6|RqoK;G1HsYtEP`AZW`G|yt&L#cm;i-zakY$c%yrf@+Oy;-mNyj>KWl62MM7Q|jeE$e^Ehlc-&iS1 zuLmFyTS{vBTXJRZDC9ctMi=hp+8J+dHb@xR36ue`ZX7~xoy_no!2E*VcwB#+7k4nr zjLTNo_}bx>ph#UTZbs%~+he68@W$S^h33-YQWBwNxAK-AdLd^~(f6&W6MScb&`&+X z1DB)zB!J{1CilALx~bnwe-VVx4+ONR2BsgKE!hSkj-5IOeO4|oFg~w4yR-Ml zB9a+AYbxQIMv$i%vITlr))4=g0OT)(&D!u(J+Z!J#@aSjIArfwZCS{F;J{WF?(FB- zll_s$ZO%meUh$5s-dX(9Q`(YGSu}rn0cpX3RlD7bTErrrJlO+zRFsizmqK72?6<^pPfPz8o>A3#+WyUX3s}cg+8^l`b3(f$7XlP`?!7W z@K7=n&a>kuX5VWsqWn^eb zyRwNz{1{idePRj$_3f(OHcG1>XTo=^*y~U>>UmYdNMBSGWgWxtg}dOQKNY2GgRL9e zBaMIZiV5qtd(12`=~zcDuYRDV)p}w}f)y&wfDWFhqV9ekSin!(WPROjmm;DWjZzCY23XDAwo*^!&T637(=FFS$8;4H(`E`@WpRfKdC1mD zv&1}9`{3Z&r=E)HUwbStjldIzl5_l4EFI@NQj(%mn#r73i+ ztTYeR9C|ilN&(e5v^J$Xz*Nm)WiFs=8)1NcY&9k(jGnh%)@EqA5b0L=UAz92`?kQ-Swb(u7y{>_?~}s6ry2q=BH_- z)Dm`dYC3O`p;5{k85;#^%L+x?(!cvI@83F2g&M4ZY#QSU8foCcLx$W+{%VS1z?AEu z)q5_o5k)N*O!d|ZI6LV<(#fccAY~+wKQ&Hf$y&(&KgQlVD9Sf}*rh|dm+qxuX+fkx zkPbmox*KVvyOCTaSBKc=tnScx zK8;{4=+khZJ)V2bNol8^-5ckz6`n$f?BqJRbhq9?ey8Sx95PGJ&#auj|BtqI} z;@FI@$QcZ&Y@<$KHsYpkbZ1%eB$of&e^9L*Xm2Kai2)tYK!v9ao9M=mg069EimL1R zHG3b%=s4Akkl5Jxv;(J;@9?swr2$Ea9F?o|pQ06Y2mHfGRv{I5sJJ>GR$s;PehZ z=yT;q=^ElTYI_eroQfh@QI~|Y8T8baa0j?_DktM*YkjYO!mU2Bfv=ypH{5PmGc8{0 z68(`{cjF&Q6B1!AAp0FG6rM+D_POY2cS4dLAI-Iv+S&FeMPfmd1=J%bZ4-^fejslV zPQ7uoKf4sXB`bDVlGHL*d|Lda26_8+m$Hl&+H;J2tp^A99nH;8yu(HZWC2&9bAA(t zDPv_q01==!UY!4^F||({JVE2m0DNugb~Xf&Z^ z=y&WKq)EM1vjfL<8F`GNSix@^n1sBWUr>QKe*-e9iHmI^E`xvMCx1msb z?&k;XyqVA*Y%*G!_^be8hCLt59jMuNc>9%ygEhB8xU4yyC+ac@LvtUEwk4lN99g=A z4i5Eyb-qTR17#tpDm6Afenqdo`@3mTYg+R;Z zgql^b9IXi9#w|~DAln$SM+BwS{@IaM*;}jYDJD=?QcIct)PIs}NWHrFXuX_^H@V>P z0!&!=v<0hgzAuXx*FTpqJ8w3|qP3_XABM$H=b*&)bV2~l&6QMZO8{+*&0*6RRuD29v zA}FyB&LB5o`;#{|ns0 zlsRLX0Y<*gQ@r7ij2o5h;mzKc5uMSK4D^euE;?Q3gH{Pe7tnpbj$Ztcpymi=-!>j? zcfLrO7XQ~;>SI<9F^r{A@D&c_q>KG-uh{Dm_je zj_L6P7ZLC!d6ZMY{3KsY_;M@W-_S_=6^>=(<20J~*PAfK#XhUpC!bdkXeKMF)OpCw zDompk6iXc=ji?qKf9hGLKv>?Rc!uVs5+^!|?{+frRbg!kUWe+Zy8z`y-Xfa#9-(IE zu09OfgLpYyrOroltsrKnk6H>S?I;J}qz_1wx{}NnEAf!f?H}1Rp!S+}VqNi(%SMjDQC0_<-^7+*j?$b4@O~LBEmUmg7yfMb? zh5n(??P!_kI>(2`S^v167fSI);5KsL`R{QJUnkCb$%|lIj7iXW4&BU6?3+C~l(Km! z{uC5XYU=c|oZEb}!ge5DF_mTNo1TM=TU7e+#>G^su|C}(ijA)b_^=qlCcOo5s%#lr z_t>#6TU1hQP@x`OOO#k>wH7*cc7hUP$yL*8%Ym>&)bdpS;2?991B!mTpK}tHnFw_g z7W4teOUmq`cMyWoNjjRm`Zi z^4g#C2=A}IH|xeCWiy`{bNS|r%nY2H;yd>Km}^K@LQDzwnHXoqEoV#wsNc$wE8<_9 z8}Y*lxxC=3VsW2MT_lxKVX>c0y-6ccpaPB0X)c1Vs{Wx=d;IWbi7%H|BkeZVB+7P66~kZ>$=Ar_;-S5_;+$+RO}S8wdhYqmR7(2#Z^ST0^2 za3zuT<8!-PdZa0zvZ25(mc;Y24vm;rv^ZfjrU}ZYSiv7Mi2jU3DmqClKuu&m)6@61 zKJkVuAO~N!=Tv7`zJfg2K=oAYMGp2>>jX&5s)CSz6Yp(ROXc{-vB!VR>sxKc+^1u8 zi}^+~jH@Z$XpGGNF<7rNwtWzn6aAF3Q|?=JVsAQSA)kJWh%%@+Y*4Rq(l=KCOB7jN z`s#{9cN@fXAt4{AqD!dc!*l#F%G;~julSG_d(@-+uQXhT4BE`kl*?!B-s0iTHlB5# z6*6tKxz2!2z&nkI-Ir0}5V)AeJHhmlI2^0Q;XkcqvyLrwe6$arhqKfxXG+voH^{O6 zag9qt-lTP?MvcKiY+{8o#4fGpKNZ3sqQ6mlmMS?cC?ddz5dqzvns4!pyM(k< zUgs{a9_ey?-u^{>dTF&nLR1UU)YXBlS)(@xQDwn}1gW}hgcZ0=f)|QAAr{nfGf!Re z_ps{`xw(edu=#4z=`4>D*4TJY+aV&du8$Pe^=LuQ$H%hO97rqOQF>O5AaIl_ZcaRh zRs;@a<74Mo5#y}*6-ayf7r`wOB?PK8sp=goxxuGdSA(P~>)5CT!NONZ7bQYm+PNo< zj3#8b`kK*{Sj7XaeeLP8t_^!j`1jjKOTiz1;m$y!xV8 za=M$n_-NK`mP2z>K@GkFq%ViVJOq(SHoqT>ai+*WL3oCtIUYvggyKAiz0CSPampam zzT&eGX-LS7n=y-k#n7psXgichmxRSn{?z9tnlS|A>U^`_k7QPzk+11hn|7Q1P!CK{GS;kSv>UN3TA9#y)nhcX znpoASNFU~l)4tL)d0C@4RjU9Uua!?VUYqJ5!vM9rx~f?TnT`^ZC<&!W^hUD_OHQG~ zx*odYcLM`aDNq?J8>;kkOl zPhyt$f|OZf?xzAIDbN#3rd?lUe%pX;FZNz;f{9!!^y9c1oH6(qyT^$Uy21lAeR$ff z!{lp2zLZ^xn%bb=NHvgm(6e2Yjk$pQ8e2|lW~}Y}J9cEXb=x7`YK#b|;uz=~9zRU= zjx)2{Vj{^CB(8QfFZlzbCw|X2)h}uHuq4VM>Onf$d+oj;RYk3IjIWXNIHo+?E2c2N z`(1b4=qi$RU->0c`*doE(|0^Kluija;KXX-xOvcnTrrQ3=!q^B3eRdO9m1Cg!)L~P|UN$?o zY(xxU;m8qQe@e=FTZ~1!sppPo)7(K8sTH+m%Rmml09fn)-Nt!;Rzm#ew;V+Tw`qHR zIfJI4U`b^WM{flJ|G<&}D8r;p@uhDix$sAlNuVC^uRen2?B4_o-jgum!w4%og;?&I zmM+%S?DP)V{ij64scCRbKPS*y`&Hkc6jLr=f9DBvJDieB-tgxr3&|_8HeYXy^U3vD zg>J;o9IV6-crWi0(%N&Wq(7V&+8ZaodCbKpHP<~5v%y&|MqQ{<{`%`{UKc?&!x7QB zXCRVuM=%}F9>h83Xqz3p*|-r3+fnxbYjz}36TyA?s&k3 z849No0l^+K}+P%xi;2ub; ze<((+HKsa@sU6(hr$)5Ewicf;J1cJDC{9Y0ZOzJltQu z{*=tY{X22{_j(U-(?+v?TTTsFhbcm$ONyhBRMy)KBKxl#o=72CA(hG^#8G3--DHpi zKF4&mO@`sp3*vUuPcFI@o35ZlxR=F)QPck7y_rYGhLUjLBOTa+QCjqvqA>G`_>H&% z75t;t8EKG4AqEIkevXZg)U{c&WL#z_Ch6)`+NHG;1>>VVKB*NvFz2J94wg++m{&w+ z<}ho@&mUpvUSTWqllFNHsLyp<=+IJ z1YBG|mAp9)m2TCdF^R3-8eg%cR#3LI@pbL6_jRbUT-?(!GVFxKD&HbLYSUTr`qtm1 zpXOBBMD1gmyZZr{Zx&TQ+QT@C*{qro_3v9FTh3U13mNHOIhl2TI7o(3QPK-pY8Z~WJmO#W9wVZ*9JxYUMsf8py znRkUZA&rZmG;M~lCV3LnD*2vTy_5{BNBEU!iGj zCjIDxUoNVrtss4}s@Fk9b4iq#L{?19ZOY{p7ab5ZH%(sj+kl$FVbvy`;LB>WhE0aC zqX=|$jAtfkT8vDb7App-RsIqg_A#GttfD4CO6|RX^WA9zUV%$wJ3Uhgzi?x6A=i!Q zTMH?yRLwct3b&*&8$n2AIk{t90da|~ zZ~>nN((&(YJbIz#x#Q{&)IHQ!!jZE&&R#7>9Yfcj1Lrhm%8OhvNPe{$KOY}=GpG|E zEfe(aJ|?w{eaQV&=zP{E>*M<5DK*LH(=#kH__s;EdHNFFQ}1iT-O%=pToO#R)S!-B zsCAV1oFUesr;xp^sN%HlX(PYK=kx^O!!<;R)wX|5@DNJWo5nFwo=(3%9}0yC7L3E+ zSdDqLc+HO4sK2&z7kjwrzQP`o8rqKY-I^&d7U9j4e50CA-qZwHCce#QJ?3<0tY{4p zbfSqw+fecrwq2_4p>9e@@M-~gvz*>uuAU8Ou!{l;G_r>P&TIqfi*2YW?zt!6hp1h_U5)W9L-7@>+$e%QdKohU1>oEPa( z?+H|AwWZ}EFKjzD*8A@3qvgv(dE0{n7I?}mH@?D9EE}-%W1|ySZl-L|kLewU zgf@p^@sZb-l9r|t*-|kqsI|uit<30bl3672vGu6Mm|K+nsddMX{nL7+YbA4N)EZ0D&*&Fa_ZcEnuu+ZSNO9R3eNZ8*rG2@ZYq?mqa_G+O*309s1y`?aOq! z_uUflfLR8GlfF;@(&G%*q){D~8!{b*^g=${#BF=eHz*Us>2TA7lcM|V=cT%yB4exF zs%tN`B@2gfMa7)oYsr=O1xK1OFOI8^ny6#YDd#@Xy^RPCm>W=Obcl|Ko^YWI`5x69 zK$>S2hGV^MRuQ3qTGT5k_?M4`)Dok}aFVrCj{lf`AYImul6C;=3$Dm?$H#?wSoY}0 zbo^z~of8Z}QrXnC^5#pi2^7Kb#AN;#41OKBeANkxf0BQ^IM9|G$Ti~Udvmm$04c#H zA&yJf(JlD|Z>v`RX>&A!gSv1N~~`hmXeXi2F32f+ zsDY~$g!&1VD_*Q%bn17NRE`GXqW1Lcu@IDjkg<$km?7g_iY$OjV{_GFsP zHcyjZH^69yp)Ds)G}%Z1kL&4FhZ-<9nevLh=gJptZ%>a48IDuXJ)IJxei#pJR7L1< z(v7AV60JziS4n7NgL)Gj_Hj5r;nF5U%SeT}z`A^hFa~UZF<3iJ<))ItxrK&wn1VM4&nb(iY=kEVdZbbx# z@MRnnS^kV=Yi)a#b&bQj++2q9UvtJ$qsSkQ|9HK7`VZx<9H#V}8SO!4KIwA*YRSrJ zOF&|HlMIAy!MHNuuzW&q88Af8z$x{y4B+p2hA0LB+f?qt!7!qImj+82L?D$Ou z;{^qM$`jP4`6ewhf`@x6hes7!g%j5n9pms$-$XCbNTvtKk@en$Ea=>DDv?hmx9GOh zMt^_}eKPhV6XR3uGc^9CJd=Xg&*D30t()xSV`%HRKlQ0z;vTr07-i)amBw6*xkrb0 zL|Gr=(?2P}S=q(HPdhMW{j5bq#yr>AzPlR8^FdF@EI^r?$ zSdqUBzgxPEs+%|>g5)>z!{EY@_&glt@fhg0JWW>=CL#d`$W}sE`PdtwDDzKAB(IiA zV7K!(6{kiC_8;Y@sNm^iihfDH`JhQLie%~R`BBW?1;1d&8@@zmwL^K085=8ngQRD# zR~F_diGp6Xgcul6Y5CQeIiCkCqKhfRtYX@=5Z;e+!+QI_CNQy3m*PvvnKtEk!8duv zC$6(C6Id_epecP^x@_j}Pm1h$ULt9*=T{}<41?-m9cx=1qd8X8@~AjXD@?@A7a|cR z3-5!2GDF;ctU(Bf`hv!KNKSF4X^5;CgudLbiykZL4#Gi3+F{pFjKVe z7So{F89?25UAvsUnJ_nK{3Aga2XzNx8AED@L(X~q4~4Vc+(r(j;6%paVv?V!PC{be zE{=HjLg@SAb2pajlMx#$sSHIc#wxTz>1%wwO7(z7bT2tuIHdjc2iqTVKNwo0l_tqD z>x8AZ@X0*WM1{(S>*&opipB z3(Y30jbnCsl~RU}N{($I8NA4EZy7Imbb3i-G#|TYY#=|sWoVIw1DBil&BD>Qzee8{ zl7>N*2;fnta9Am@R4Rl9#YhYF{8#TgMJE%Vf%erGp&FGxDj8gD*L8$Rh);W_pD zL@-OnJfq-jZZ3p>H$_`wl;LM_Odv6);S?-YDabUw1`H!N)AB0A0~74tkf^b!8dH>s z>G|d_I&E~GN>9&p%r>^RY^lRgL+UlYTo46*RUc^o!bsb@`VWO_@G9SF=@Zs1jt|#D zKvL`Yn#%{4Y!{n^dVIFofO)p4}Ir^9R2OlUkia5m1 zJWgRXif^f7r`QX4;rrFtRjg$I6r@q-9xFPrC8WVIPZ?!?>Xi9b4CJspho9$H)Qk;? zczB{IS;n*sP`x4Br+1jhf2br(`zkS!4z6q`rcjNW@sj|aTw4VIH=Uu?{(44PAB|(t z#0)Fm#bpok{*cTVe7R8w?m=+)aPXG{GL8r-%xA|0u+0H!<(|Yk0{XFV>y?z16rK`b zQrjFAmGf$%wJ5I7Z|0*nV{RW`A&%y9EeKvv{i-9hOICA3d%AfdWxi){x~e#lB>n*w zH8|InVxz9pY-4VqZm|11$Pg*&q@Q(+x4|+TyE@m&d5Guz^h++`vtPNCzpOxe--%Ae zVKjz%R$>KDJd#d5WMHsu)7r^K2mc?65U?IJt1IG#dlciZqZ|8A=9A&@1pVZz(o(PK zCr(*^thPya_+OW66Mko}E*|J{?+iJGdbBL9s$OJW$A7BpYyF9_ExB-ENk%P*sd&>D z5;Z1YK2uoXQK`p6rkS%)B+Q{tfd;)Sbc)nAGm5FOTNrI~Du}9aatr8qNudSUrEUzvrI6-e&5fAMi>QJ*~9c=8)f)+A5FGcrwYE&giv^^8$n?+db;l z#t=eGgs&XX@q*$P+S9bqq+U9iaw zkey)DmwV3Shkr>tehLOZjKjcB$D*sx>?f6JE8d>QmHA2;S9>!r?iG}ea7lx^MpJtX zj!lXY5Nf0dJ*9KV1La4XtDo~zn~na88O+(jL4}!rWVi0-c*dr+i}51iVr)XP078hX zkMIVBMO|77JyE5fwcolUJeXM{<9uviIWf*%ckGd)%-j_}ekqFgHGfJxI0)M9D?Cv$SP;v*I5!Z%wQlC23>V+fp@ z?J}(@uB{8rt_V&APY^(dmXENtam^TjN)pnI@Yi>78p04F3+ajzLI)p#cHR4Fw5mT3{cVzP#`f1&PD;f&PGQ@jGkk1gxwEe+p>A(>n&Z!SX)53I|UZsun3< z$*$P52D(-fHMn9VK_*LG19!jof9_huLH2LJivpFL5AC%~THbOb_3N&3?ZOtL@9Dxm zhT&J@&Hy5B>{a}>j+DiVpKkbz02$XzTaMH9Me%afdyL>diPxS+porBdr`~M|%+)P* z4BOn&S1BzPO8xDdZ2N2jm+2X}Vjvt|%1@%ykbQ~SL-&z^lEuVC6+t`k52ZKbZzYf_ z4Z!K_juYn8C+GXpWFw`s-*ZVrMR)8}T*h4`X-0DhNj9twCLPU z<4owSzgfSwvh8{XrO*_&m3VG(ip?k&36gOM64mi_gS>xUR#cuUr(+~B@<)VEi)yw; zJNu7t1)=1!%&dkDVB@KoQ1ZbF?HqNoD$D4n4YInR*q}Tgu2rI_iQzDS7&1UQO+$wC z+l98GQ=J9vwG*E!s?^<9B0>c_aN8`^#+jQF@F`V_FX(x~2ithM z7arJ9d0_`E6mieJeg1Os_pYnD>Eu`avDIRoI-Y0MB+IEXn-0}v_@0!%3mw$k744s- zFiqfVe|5)D^1ghIX@T}3YX!HqP{23rWyDv6qB$$uIWj)tf-EGp!IQmjtWC3Rp>~L# zKC@)3hi&ul^RX${8HRZJg6!OA4$Z0WNx`i;GI{4vlKOQJ^#P`TddbtxAzC{>K+f>$ zK=%LaR`aoz3l~~)*Bn58L~=|Fk=Vs>LuXe&#ro)`iVqI^B;_Q&bL1T%*zd43~_q z^5m|*%^-&d6^9vRB}=H9>vAdE)XFDpRJN?Ii3o@SALhrN#~KJ6rc!)$?4|qtzk4+* zd1%4iVeB$~OoiB)X!_G!F}Q-aARJPXFHLM`?N{q#P5-KDJYABm7eTLX9sPWQuSF{V zRhOhsYo>(M*tw?~QjzbEJgKv?i=l#$9ZWM!UYv}CsiDDTxr{?@&Dc&o)x{^)t|TB{ zC)|Iq#|brypH5gtG$m4pjal*xRoql|`8_4gbT%_-@xWONu9y3h*tqO{r!#F70qH|E zZwk9##=;JkAb+a_s`ltc16<4xAx?JD_UW3^ervEkZl-?SjG&G&n?3Qd13q*nyfK{L zg1&yAI%}f&A9-w|IGN~uNh3hTBU7JTkXP`OxMh?-Gpz2J9DL4=Pr=G9fn|Gy-Ls_W zfX^II6@CU;1(=~=C^^5^7@Iv<(K(Nqt;5EUstF+U;Fi$Bvf|a?^<|_~eJDrVK$)ve zTP4Nr{M8fI7+Darl2Y*$*Q44FkL3az3ibr{-!6Mro3cj2vSD#=*&8RI)7?jXwVPsK!q9L5K+ zI_%qGXQ2cOMq96u%aIrflAkyVg#ORRqc|%@3ckqYKh_t993bc1{Az|sLqlcrxx;4} zU#LITj>Wy*Wj!e~L z8-CY9I6=`NlfeLT1Mih&LDjEAuu4qeYhL!GJU=#PwrWv&*CgSB3ObpdIM~tDKgJSu zcX&a(1Gs_II+SBzCU`j!>Gu@yDfa;0Hz7bv6U+j$LOzbWmCw!&wdz&?PTw)vWLpYR zYB0JYiaDQ;K9zxQPRY`5YR6kmbwY>bns*FPGOd|Hy8IZHCx zUOzZ|Qtx1e-x(2vGS|MSXXh(EXUzQqPTA2Kibq0vsMn5x7c`ERR|QBL3S!irAiTVi z&ztK!6JIFNmij|9@+g9-+MDY&3v4{+PAR5`&%NRhr!gx$*1u)@;dKY1%)IITj zF6J{c`97VfK;-g{MR%R85nH&%+~7T%4J1Ybw~2WR{}7o(R}=4@8YwKZ=_G6gT@!^m zc3!={G@VW#;^h1chrzE#SO7CufcSdcmucEIi_>n1T3q)RUV|=|rS{~fbh;j6yxiwX zD6j`C5|cs|xYKUpaZ_ABOOujxEyF9R-HsMB$@$ybS+;hj1_p2Cg@vgZDg)E=@hzUr zJtxvGjyN!W6dAZAG1oEv+5)+yN9aLyNM^M$dg*XIpJFW>i+gFLWBtUHQ)8EOS(r|; zq_o0Ke`?O*!{&*R*oJ(Rfa7UR*>hY)s zNQ%7!VBG0u<5qMS_ml zwb{sk$7OHr=-&~eS)jMGSjIg#Z}Ga$ZryRGd;m~A74fZk)Vu=4(%R+e#+4%~LS zPD$4nvs8z_6b_1h(XuFGrLLn&VYk`(XlHnY3MmKV~XtY3YKtp7Eo z>@};qZZ6|tmegqwHxw6XyrD43ys_DYRWXqNC%$3JVlKMK+g==jb!H9obNWe-MzzOb zwEgXirJJt_!bobZ=Sln@Wco4&@g6Fq;_jE=tLI?mDxAb7V;m>5yZg?;L<318{fFXD zB0!N#U?WOR`cv7aWF8mVp@A?fc_WQx@#qn3Iu~o(=~gA=YD4`}9Y&TLku)3{{A6(O zmQTI?Za0Q5t&rL5IAn7r8$x|p=6opX@%?Tq1|nz#ZULjnOD6Qao|h3xaKpXj_y$KE zwT#cDjQW8+qIF=5H?zI9wYj@&Z))UXRa)nJ^UY6cL+{V0jo%R~w-?@toEIob@Hd@N z%de&gh^scTLM)@BniU=RtxcR#eQLD>UVO!RRy?(2c{I3tF}u`mC>`pRfjukTX!wBt zm8Z~&iKHRUiwY$kiaL|08=t$!gigfhd0icl0;FHgyQ-Ex%CWsxz&GEw#bQ}NSE(3D zGsh0q1Qg{I(^YtUPr1JeLM&XNv4XAQWw`#jC_cF!UDlpj9^Bu}9O z{OS`seOzPny09Vxf}vH6@InNF!DPJR%h6*rDt8(3f?RzvRdaafx z;;oi%4V0Os`k3DQ6xnm;Hpv7yf-}8d0wh)#71qP>NC2sCu$sGnFItI`TH5C` zW$OCB@>a|r=m2Hm`&I5-yqzQ1gkzS#H8{Aq$2bMV2+lXF(W%%tL{tNALAui+e+_PWcd^1<7`Br7qnJ$9t)o)cBN%cZo`Br_+i=D}Oa)*W6%D`y|EDV{EJ2%Q=Ea&9nvC zHdZ!zwYGLyJJ749hLt#d913RPNQ&+X5Pq}`_%LQu?S_x7W^$1S=gF2Q3SgDc;%csFulC|AL&Zua|lYY?7>tLS^)VX)Zx_S_K>q}lv% zpvA%Jk$lQjCjTrmd!d(;D`xc7orroeC%TG(j_@u%WkGL2q^J1Y1a3owm#{n?XS+h%${bTpFx+}C z`6+ehJ4GFhV+YfRn+=34Mu#{>_Q4T?D=v4mJg1i@j2@s0h>SIRS!R?MbfXDZlG<(A z1)q!4q6fl<5}=cVR!IPj{ITSQFIEn30|XYnzV<3~_5ebo6EmN~7idigDZV%s>Wg>Q z+-a?w?AmHV0#V)r2rM z$*(3wb1s&-0#WA#Tcryv9ruD>{S|7vyqNQDMP*9bL* zE2uU~=b40YEQ6`J7Fi9xXc-1U13>v1w^urBTJugFWF985Fi!8d%l2w5*mifed%Z1U z;CW)~VnLFQQ~8gs8kT6QN$8mIqf%od`5e zZcU$U5E+n%>ic>Tndq^^*X(GtTnqTE+$>y~&&#{WeVFa@@_9~Q;j`{B+2#zE=LQ}U zE}6FwYPT#!IgrO?YLhW<>MllCO4|d$o08dL4`F^7%ZUnw}jTH zL3rvJfeKn+z6tDcuz~@Q5Y4p#%C2-t4LTKw{c0$^*C!t?Rd6hPls)G7w0th z#;`$Z5#d5`VBAgm7*>CynNlYwQm`#pG9ZBwyr^eR${tCGnJ;{pIrivUhD z^q%wljwbu6MtAL@aG4|F;Y%t!-*HJmS82N5Re?hi5s zJ=(IbOa#;6?nQ8e-_a+8HhoSs8IzU>S4fJhbCA4ejj@X-Bd}X5rLW?%&UFj;!-*C+ z)C?c|LkUa>?oVp?sjoi(GkHrxpitXCdSZwD|c_U#O%2M1z-^QZ0Y~T|B#t}eL2hh^{ zVI2GI+q%NX?&L@GK9wTkog9eGYL3ch;M#?A8<~5lZjA0H3!Ml}@5d+PGo2rs29Wi@ zLA1p|qeB&zGWs&2Q(}k>_7COhhI$IC02x>#iJ+~`ynJ2l@Po}klWWX>9w80PfeSu$ zan5sZNJFA}41Py#fb=G5L+p;pJO^;(XgFRVa)Hj&bynUNJ5azx&J6)jG948%%Jlu= zqv7FK=oF|yh7Ils^-{aP5qnLA&i?a}0q*N-2$`n=`{}gW;+$H&^}T8Ie41taEe(G?Kv~Sxs>*@a)?CK!454hs-aLaLxCoeijZYl z#VBsB$h*+70W0$_Er>v8oxKI*h0aG83e~_70-V)=UaZ-B{JZWR09`*&rfY*C&f@uk z`a=eE%uWv>B=M_lFRYft#h227ImBFFyJ%-0)BiGqQbjq8LRivHlR9D<9en|uumCMH z$B|vh)jF($z_q@gPXa*-1Sn!L8~Ey59k>7s-T1&vZFfG>H*>w@;T<_2%sfTDLgc z0Dvl>*$54}-_07#X@4)1#j_H#U6@mp1%zV$AL_5ZNp2{jX1BdF!A3`8v2-;iDZxUv znu2)|C5@080(oY)1XVw^38AAS`63bqy3d_v;m) z{a6nz``D((?B4D(+9Zh(D&mgipJJe; zZK5QaRp>ZoQyG_Wefzpjrp)=9N=`5hcM1@|;f23(YM z#Wr0Z(;?Yab4UEa){wMQWu!)da$I6WQq_bN?-$T>%mOjp`T6(rt%5^vjYv#(KM5=@ zDBOEAb3euCfqP;|Vxh?UkKU|8Mjrse1ILw_>Q4DB?yd0KIT(<9d{Xc~AN_b%_eK{e z;*YtO=nC|@uz@SFV1LX3baFg}SjOosi9*e`nn3jAJ-$w>ITH#Z?(~nwwZc-pvigWco&&*OZ9dgAQM0QkNc7%@X=c2o!nYtItf+j3E}j*qPsfisJtGhjP!12gj9Uj_yI<`CtBX(;|=m@eWEnB6>0Q;nB>Y znZM*MM{pu|^?&aV-r@d_-3##U|6DLo)O3OG3!{Cjm*gZ?m7Rx{5k|YNAmxE^8eX`&!>d}Ip(&DaGxEs|IdRL|5i|NP|?w_ zWKjB!utqewmKeabb7lS}`bzwr$vnp39B~_jt3jOtgLj;Q9OKVljPEok>KN((tu%G& zb!3CB!s%I;f#*ppiSh#8IY8yvRFdd`KWwyEQFVy{L&y8ojfuOK@$1noSzn-ww!yQ9 z;$7H*7=3`@_-LNvEdrcdURH-0II4x#If{UWV032zNz3A1zFc)KH72`u;b}Pb)mcC{rVXwprv*F>U9yE^BDRxd%S#~T}VLg>P7e!HMs_GYhQE% z^#jnZ=@#Xa^ljHaN04s=%Zekoo9dsJw5S;@nLsm-2sO2?xx{JH*%Z3S(1}cNy&Y`P z{YZtb-w2Zx6IfWH_-)yn^S3avc9=4;XChHpdCo|&Ep(F?^Kx0TgEi7-F3||oD`+c@ ze!Y!J@JtB&vZ&_CUwgO$cj~r6k?mh=wPcn8wMgIo)E_(<_)`YH0B))6&~!?#?vX^v zt7-ceG`!n7)CgB~iN(A^wqG5_-A3^dS|4VzzSqI1^mUuI8n9# zptW?^T_zWf&Rn<;P812cPeP`;a)E#edpro;yon6L>%#uqxN1F1!;b#@ zUxA*#MCWf}gV3jAXs{?{9khB>M2e9x$)-KnTMocIlvmM+zA`)Q+_df6AlZRZenFcK zbv7OpEXNWJ#|>^hB>ysf$U3*6Gxxr&rsYaC0t*+h;{3>}B@tqn7<;@9m7`usj>x$n zmK|2WTjc#Tl4-kE7WIXXkJ3c-pge8eK_h})R$_F8s~pTECGPmcaiwl@k-klJ=m~)~ z@ydYUFZ5ecK`cgqhs6vIslG3>g=^;)AEE0)^>Zr*&Sfw7**x%GjrF5;_1rHejO-7> zi!uM9@Vy}~Xi&O}mp%RSIqxTm11f6h_Oz@_CTX`Y-7t}hG?I(pNU=F7zPL;S_b{+l zKAXP@xztuFRAYc(FiIuyphK^RcEbSS;Aczi&Tv`M~4w{3mXkDjLJ@ zfvb2E_Jk=MW!p$fF=($Jx=_g;w%~lVSH%AQlbf=+;-&7&}3*9FJPE z+W36w;Oc7fZI9?&mD8vg3biP?Vu%*848g*9S`0;gr;Z&Y0BeDhKA^S@!LFWCdqW)a z5P_tju{z*8B04}zkN2uM{&9`c{lKo@FJZovfB*x@#AJmZ#9$JfBc__oRv50XP7Vtd z#b_R!@+>O()8_~6dg6<5gkt+pXrTuqDe1soH~mqr=|;Mc9tLj$e`_8plkS0RTm*_E zd+HwGojfgZ;~TxL@z!jf-oq1O;mYXAdqjJ{EJRXfK=btN3|J|>lmHMGo6Faoj@kuD zQv-M6YpFLGOu6U=qgP6gAG<^dgOy%6D48MxV~XK_!63?dn1FF!SHA%_?c z36buh5rjcv=K9O9>xb37z#wsbWY=_i9eVpVY)P!V8eOVcT&(hQqNQ*u8fd`Ta7_Mi!3yePp!&FE_^K zpVbgT;_V05qMC`GDQey0PqT?st(F*1RSQs-HhO}7B2T|{*6jT8UFdoq=oJ1p?!NuY zZ-4$p1MZr&f3y#DV&Yuq_JjDp9{~0SNmkDY=}z-95|>1XV*_oSjXi3!y&ffz`{KB( zc+^eZhX=UWD-c4DMQ`ip8@V$@B2*#wI3Rq|l_~G9g7-*I;SqURt)Hz>I#m|I!X{&i zel0`xiv`LFSu0W41KuI_$LyLnF1CD_#&*mr_kg@m#sYHcj<)2n@UZ+9bNOC__`z<8 zdP;?(>mlX4&L7Gh?R!klC^<7#stU{UqjBVmws5|#=}bFIb?jLhY!C$Tvf(D+8m@)OZ{q@ z$ZfOu@ZvA-bJ0OIGIH{FsGz!&6|0Y zb+I@)&{z<`g_5Gz0`LJCgDxnxKfgh;fm{%T*JnhQqv6~|bHimtUV3HMHud_@bUQ&S z!FH)`vH#xCH7~quXRZ4|D3KA8PquEfyB+V^ zzK?N{3N-FYIVxP=nam)^tl2edH~ZS3xVoOW{mlvK_m>}8JomYYA$ZYWMnri;nrp*5 zz!i1*{Js_$=SmO97H71>b17-$iA|UD#cAL`+I^39A|ywMnqj|{XpBzzO}RZthDTjJ zWs=UG50S(7gbMx6ehR}0%#u{!^mE%D~?lq|OIjkg=M zCQ(~T1Y3myj400Rz~0?7@gcVN!^qUWkccK2%|NXkkOE%Y2|FemAbv3%ZhQod8h8=c ziEpc`14TR$1^4Gw4p+w%bN@R(j-DEtOaSyIA49YE*uL;l^)zCu z*^o=kHz>_DGI~hh_g@qSi1moZN5wiW;L@~M%GalM^kk@0H|`H0_H!VPG0dG{SaK^d z&bLFjJW42T6is)L690b@BJ`mtH4N z-JawkrNN_2OrPaktwb~UMiC#m718CT;lh|Orfp?TzgI@Tknz;S?tSxzez@KCi4a04 zo8T;q3@y2kWVO(M2uS8y8T48EfZMZVN+#>us{!bLV5m_I?!xCK*OT@!%^u-va?KLn z0AM^6cPXiU=ZkJYd)u}eNb^OORBsBt0W{_;zqR2W%Rtv*IdU-K zoN@8Y+}T0KWLGC%LpM`ObzG&YMzqwMpjTHHpeq314^n_U0!Ni1US9DCZV%WP`kDP} zT{x(*qxBFme#0I)IcO~fod|sG6Zlo`3=9Rb=dq21z^^b3k4Z~)Q%={i7O6oY)TQ#x zy^*d8LMoZdd@x&(n49>is0U+L40e5ojbYy;nlDop2uRXgz$I}L#8fD(M~642gY!B2 zJ@JxtE;VVWcdUv`h8^8&!**9Ifj_zn9;bAoBKw~?d~n4w7#vK9ZHGyH;3^Mxa`MW|q^w6D2t;WXfL2X2(u?YaEGyb9kbR`9O(wRKsbBU_l znp38Gt)gvjEjPe`m^7%ZTk zvDzyR0uYY7sX=_z!+yz4ce7at9=4Q_j)z88TND?uErQ5I#j!%W>TZ8wdsGR40iw8L zhcfLFuU{@}9jwNTP1?VU?b9wE%4Gw|_Qw?eVW~REaO|I=Uz@N!Bn|YKsWBaCZJ#u; z6G3RL2;Kz024ySwKcNbWlrX}-uf93;q7l@l^b!mp@$MX2wz|Y&h*)8Ktb-a2+=}g> z@XKSRy(L}E0g&w60?sW#sa1O-f3bl;IcoW`UV5Ltpe6}$Wgg9$qThonbI|S$yv(F za4`@R%AZULmx}Fn`vlrm$RYW4#B3!^aE8{nHbcpd%`1q_&lq}BstH4z5 zII&7Hy*QDQ+ME~0j?e0d&++T5ILe733o<91Vv>Whz_2iCI(1uWM}Z*WKi-(y!BznM zbO3B}Vb_Bz=pVYF8j{q3-YJvgv9Wlu?n&|0bHcyq!+F2a{SSa0ng#f<2Yre=Yyc8J zKEC9_B|o#SKdchQaG*A*g5A1{I6Y>`P)&0Ypn7Ds>;{TfU`OZ!cv&w1-3=~(@QraW zS32%~12d7@JMsK*g(Npfme%9YzX{jS^y#9bXC=KA32N%!X5T;L+EQfZ*A~jWonQU$ z=MUu|xYKUS!ttZ3ieDKsh=3oz84Ef+tmR`Kf_3bikgV{RDHP&FiaIn)_P+*7hO9cK z1J7TxWJzi+#~a_c|1kjyz}DaWx3wWYW`R}ekYcd=4;U7*8H%Qy9gIzsKWl*}%x*8m z?uYqb2Pe{h?a#(cFF$^_v$=lReV5z$l1Ds<;2D#hwI#f>^6|M`$6^H0=W0A?1tis| zv<@iJx2=5=7}AL88w?#&4(mv}D5Kh>sVjp7EEYQwH=yu12tTxW798EN;;r z`uM}d2EcLuDgjB7UQ_xYlf{*Zg?8~=58smjJY7W~Y!wzqZh;F2x^q2eM&T_S-?VN~ zgw~@nD-dCTW>AgQ@`{ zh;>JN$<-g$$xve#jmfO+8O)N+zT!*?y2hw&vFsZN&EuBK&?;3VIMd73K3J+HR~uq7 zY$5UUdtSj*9J_vtu>pesItYL~uibSYfD51sV;kqm#D0D(HDW^8b(t+2lp32q)&+h6 zsGhsouIq~V6j;6i^E0=_SK@DR4^66aUGw@rXVmd9#*>n`Q%eUl@J((t{dwmScGVyZ zAqu%!LA=Va{E`~dxdJkR_(9pAZ(uNV-BT&E73Oy|bahr(2sZ1gT}>H;xCNNT`C!~1 zS7}EH`Gv$2!wh4S3EyH12=Nf_Rcz<0lceboFqw_%>kk}L40z1;5=Bg`ah4FtJied+ zH>URZQV_?!x1Ha*QcVwShG)P8X2w;GZiaR)C2T>$1tEc*6?ioP1VVivM4V<_qIdoh z-`tBjK$BvcWo|&?CungQcmjH&xE0@lcjta@9c~kPTHCBN>eWSYX&9PD{8!Vx?4uQX9pcnUOu@|Nel=_m5?Azm!LLZLe|4Dr|sCk}h-`qkvf6-onu|Z`| zrCggbLM`*6JBt&&CO4PX+;NB)@%ctgmW|n=pBHRq3=rZn+>tO4s!w5&n?5tL1&lFP}IervMKsRH8R2f6kmJuc;8yS{WI9l7cgx_v8YbRIZ zinj~tfCSm7kOt#QFQd6On1JghBYV;SE;uV+hoU0n;p3MRguU~tm!kc)e@~_li<83LPa1U%pMbgHL5x*P}6sY zYE0SNpA#w-Ok$6|4*Y5~p|+uEb)rmqDNJ8mS}h$XaLR@ul2yExy4< z?=9!xj(tn)2MR{>xfca^oOiZrJ*jGu+v#KHi6F%7X)gE64O^TNe60kotV2Ci>z0dN zvJ`(IYf@mf5E&6sET1B2W0#RZpfK{qVL;UydHz)!HZ^aV($Kdoke02y0=`|UX%`nu zup(Y`R3Z+eZB;VoYn)0_F7Yg7ghWI~ie>hc@^f;_#d+ImmPTXq50T>&5#3oR5SxQY z4kFwK?gaC21-9L4X74-}2k!3VK5PFX`$~-&DbS-^e0C zoP`!)I3G~9S@qmhr8!LgO%x21|yaZoSyDja#j^$O}1+eC~lE0w4L z`XdmPz8a51;P{}~$0%|`xm4EdC!i42nedVQ_X_JES{ATxMrm|lAV&~9or<=gmK+EEQ9Z56N z>;K#ATDQKf#~N4wHp6_-USNl?b!X=qNIc*uJ2D_edz&ioSE&?AR%i9j7782D_@Q?O z>50dO#pi2DgJQ-U=~8#p857R1#GfN|wrLwMc@12UFD} zQ%JJtPyQ{?9f6DTMD8y%S|w~nDA#O2tvO~aT7xPYH%o{;bLUza=>tCKMDPKR+U9fD zdZW`vwx(*hBFAq8^#muP=j1}BK#7`NSm|}kkUSyY^2Yls*XS+UpJ#UB{;chsBCxMC z5dFox;+WlHq9S&o=QwEf1aD3c2A;V3BKM%%HN`z|IgFWJghzrRFi!)c3Auu+-#%DL{^( zxQBx^S&yvttj=;dCDPBG;liiErnGscBl~QM_Rt!$^DF9R@%tiy+zN(73MR7^ zV@L!9gx1cqAD9B*E;X!=OT0yVJ|UMy4yiHYwsuf-D{-!bgTPoN1edHQI#R{fuZ4h+ ze_wxS2cUH5b1Tn2xISp^Z7tZ$;drYmyj<&B`eI?D1#x6%A6eFW2>M=H{IACO}}W0cB~h8;i|0(|HOaT z?^Ey=b1P#P_G{~HC-IPw6e{D%b%R4nYmN0C&w-DQ8%mT$e2@it$^{DID3a;6v$@yb zp=t3R#_hTcYci~KQ2nbrw6|3T7oOmS*VzdE;qm3))6>#xC2LFOv;?N^%l@{VJ++X& z*ICUEbH7G~A&IDEoH+Kq^shK#BIs-Mn5@C&w&Lv8O}_H z0O=#J+kLUNLT;nJ>!c9OhzGXn0M2Q1S7U4&*A9o|u*U*5^7aIr}W?2{f zD~aAR4g*Je*z>Zh-JWX8)j9N&qhOsiG;k2bfw$8GL-5o+)FVG_ zO^4mIQ4j*h3=>1D~n5dIK`=9L5z?mW9P1<@1Ik4eX4H@F2-wtsG(;DAD4JO zb*dNX!g}m$iCWaY+i*{mnyr6Gr$go@_itprd9)PCC(7iIM|};ZBL|AR?6FJw*dEe! zp7>fyD!YA=6Vatcte|@d#yy*D2h@Sm%%Qm|9`#_h7eJ-2P6k{RI{lf~ZuG^@5IccF+Q*-BV=+ z;Dh-$e+9PH?&50+7{k3(*-wBU@=H}#vGb$A6*f0xQVPVOwMIw^cy4_ z&;)mVGND3!pkB9B&&F~IHk?6c4>P*NBu_bNjlJOXW?I6o!Q(`A2x_PqN?UUSg~7*h z%7H1DBGo*WnEt?R8{naSi5ln+0C@&D1Ts<^newM7mGG8OT;VuvSk<^8Qo&V$)dzaX zE6f1ioe2)3KhRhclAEwVbgkZR%Y~XPx3dzgud@rf7R#EYygWqdNt!dyh4^AoJ&~THe6;zWqe!tnT4aCt?Z|L@|X`>Fz!_Ev4d%!&k-YriJ z#;Ir|Nk-&5m}^XvTyqW43UP!{mPA5hHr*d+I`evOs3$PD0sflbtsQI2&u?wu>?Mit z(*ZGs`_ey>dyY@%%L;^`{WCx`Nz_QgA#2ON| zVd(=Tt)hKkF!^UR8TJNe#?4ND;A+h36=UpNwI6MWXWn&Ny4c&26;Zi z=@!DYS8bsQk<9>_ljH`#aa8FzG%**PBOo<4rT0FZbSgsTk$~cUy}aQms1pmjopo?XNw{amat+Zfw%)S zo9VVr;1StJh@Utj;wAJ44&wkiS}(?Ez1s~@DeG;@aE=(3lFPC5odN@*XC?i7cHZ=F zBfnIsUG404y4z4R7n+?oTLwCM9Xx*6kmqT;jMJwZ)C_zlwKKf}k3b+MaE;jdh54-t z2kZDAWO-*U)^h;wCa^l{#&TO3Z=Np3jHeCRzf;+qjH4E#CCFJ!rkaGX>01$Tot*;! zapmMN*}=*}D@$y-p%vB>5$jKjg+&*lKM8>Z!*A=LTuLf9zJ#-_n~XZYE`|ISS0@kx zlZKourY{cGK>N=DU)RFku}1fRzGp2%%4_6J^qGHxj%DrPLo zXWHy=wdN4f9SF#eb7WE=f9ZAG*;TbG5Qo0xg{!Qgy;$a6AUnw21NMZ2fXA^tY9vvXEh9F@MBG~fbgYkb~p zyWu7oao~|W!}fy247qAx$Q4qoEMQX-&a;Lu9Lhc>7h8}K zON3F+04Hls58WoYV(s;e+Y#K~dz(O_B#TRy8rHERnan|M4Kq_A$y6|3D1BIR z7y``7M+IIpKoc2hjwVZUf-p!qZAdHpCJ)fZ7=IzwvoCHfO_QOXDxgcrK0^$8mfo*3;a*Mm}AY!|%)4w6!%JLH+|LMyv9$ek?QSjP) zs*`H5UYNY(lJ^o9T)r6@e{qGjg19e}Y20{+I&-$fG3!l_v0OBKdz3|kdt5psc&n`K z31|eRuuT}n@42Q%;znc7{;7-O_UJWrwRg7?#CjJx%EfV4_x(B&ggynzRd|ZOnvjxU z5im6Zm7mSU3-EG-(sAj%VB;p6j)v4VT!xue&yp#Yt`4?scj}d0?!goAf(LJUD6l-F zfRHx*d595%?Z~Hs*$pO+NHF@mHSLX$fFh~dZjE?Q)+?D3n24GlyrDFx1&+4`yenYj z!S6FfT-$BbKzF+f`yqrtDwZl4Q7!?tmw_G7kpHZ;77-HIiU?ixgib9A|JfRfdeX^C zrorSgrk;^WzsJ=(B^gdxn_Nq5h*4`tl28AdzrkG6uh^~7nPjCf6Il~kx$L$F!RCzk z7*wVzVT?TLOg8`0|A^_UGLXME-4r<1bCbh9v!$~Fk*M8Kim0n z7*l-O+FsV#@p&mt__t4E;SQ~(!{{!_1 z!`O9dr=snAzK=PUyaP4*rncajeNzU++kG*hX)0-I4eYKIkTX4(U{?x@T9aK6_F~wz zW)r#nRbhf}x{-1#D>Kd7?7PK*Nl9Vd!*tIl;2co`Mg?qax^HcrQd~Ro3&Z0mG4r33yxvr}-;g43&L$7lPWZjZ zwZm?xYy0`S)MC4>(^I!BB~#nr5`q7X;8TMq6{Kl({QN)}z@v`^nVW0Ml{b4&>IR8z z?$u(=Ou-Wq3(tqIeTQDI|WagqUo zHlN;&9aQzG^a1K#FHtTGD<)Xh%X#f{n-cr zk(UEBUTfdKLabb`lKy90%s$QPu?%9LzuKM8Q#411_&<_p3>&mOn2Wu+Q&@vCue}?a zn5!SyV_C`26#9spdiuDOshSplHSiWIE-8Y@l{;8m*yDcjexsGZEDsC0LOj+KGGhr! z8%6@F9#|7jKwDcCL{$l)T#XB4g(QNASKa^g!0RD&OsN3dDwQ>SD0Am_r4C^LN8M#T zi1=9u0yHp=%-Ld(z6VHTK`<^>0$`oL;r^g=SEAnM-1k(|5k^X}c@b94rjmm>cdog* zFR6NEl(WOrup-wY8}n~{mGU#eB|AGyI@OD@Rd-2!+C0P2QSg7 zEb%muh0=sHm5-6@k!?Dao^u--v6vRG2YaSWopZM0k1fBvXD-h!vT}#6 z7fz^ao?oE%m6>;5S4hJkKSnn^E@!dRxC+|`qv~#(*lL@G%LR|&=h1Px3s;b=vLK0B zT5mV`%NVPD`(5p0w0%AS#&0vv7;mR#Z92=Q^ce4i6j^z4d_@gPSy71Yu}y6O*p7V) zRz&j+Tj+%_t*%(p$&HMyDYmr%$Ft9+1`I~Oc}!^T)_6_ z{~)o}WGIZqGUE-uc|7-kah~>yQ%hv5W9S*7*(=GI^Fpxa@>H=ZKx9q-x!ZE!Ro6ucrE?W6xXNY+#{aM?yBr??xS5eTUz}DD-7-Ex~%I*}@JWjCA|R z$`iaNO$xBfy)$9>WzfJaiw>vomyzT_HAu!b6TPTJg@3M;7DR(PvC~Nv^G-!VRT86M z7b=T2LVB++DrVfrf<5KB%?RI_m=j&nLr;Y+RdL|TeH=NW5Ew>j+As;H4z_*%i*)X+ z<>QLL4^grY@oAE{IgiGp()E>U5`2iynm|$Xm*jzgsN$Xok1_JkyQH<2n}?K;OwYK5 zQk^WhT)xvdtf>;PhucIgZS-Y|YW+Opu!JWti<|Y?<9)1rMnX2LZH6Elv!*T317asJ-miYNzQjNAP=+x6SY?Db9s z?D3hsRAEe-ah{yRjpN7yJ>jzPrta?9zkJ2G=pQHvv);x$q`t8D%ZINQ3Kk9p;^Z~w zHT5?qoMCsaM6_Q{+^H&pdb*EW4aP}tSG6C2-4JX^;ee_EhG8FU+%$IWNr#V7k&y@E z=u(-5$lHbpXUWSLIlG~L04$6z4GxC)!9&gyJR zt_Cex&7{2c-F$ZyE9H(i_H{h3HReMH6j5{^=~a!tnc}O_Rp~{%^Z%hvAII`B3lac$ z>iT|5bqI59UxzzYkjIXZPu_X)7@-m~L@zyoCzrTs{Jw2%F&kk!yKR*D29){w-5Gr8LGEJ=8_7wj9_ zLPT&KJ*id`Q;QU+xyBm{Ur9+YF9tep z+cVS-OU^se?fv0PvKGzH>IxpjysLS#=6+Rg7eYX$5p6>5CcOL3 z=|VA~DZh-@w718AJ|tMHZssM9yeyYuBK^<0&j#UA5}s4>vi~Z)Ry&EDzEpAjNQ8tx zdNVXBf~nR^iF0^=TD4~nlOW~u7k3r+`tCll;FC!Frh96gjKx|q7Rjs`zy8#r;jSDF zUrOoY7Js>9758@O^BKKCu%gIFpIxM1I5qM}#{Xd_hNL6vCy*ss+kL*1p3hM&my$Cx*%0CogHm^-f-Z zJ+`g!cv+ikfjWTUav!7(-@Z#@{ullf^}JG=HB*w(QJ~2t&O`%;ZfAQ_vI zmpZDPgfYFNV4czLbL-?x9Q<9Bi>x(_s%rg|CZ_Al4O&gpew(|&T}(V7t#}i{Rf0;* z3(g~=M)Dr;S!RU2aMDu_dD1OW3_R;qBf0hbnMnyLuRyJ;UN3ftV3bkPu&Q~p-qgr~ z;;x)5=^dorn-k667F`(~82y3uZszTy3?Tuh@WF1TiL|a&FC=_;WsS4+UOolyYIvKf zgK1~uFqywxU^w-b%2f0sRZEET@_b%+a>f;EM&+`?GQO>wEpM?MS73n2^b7AC>!^YS zQ^ndIX!h2~=p60+v%YAxrR6iFtiGgdP8=q8i#eOZm*&x7=p#=D8fj`Ft8!hy*ITz8 zVu^j9Rk;+#g5y`JxFc}25jjDP&m=&cnn>Fy%@s8z!`Y$h=Ym{HNg8=Mk9t7>YA0M3 z>`Zj0vf3~d49*Olq?YWfJKY9BW;q8VtA1Q_)BfXW()8LmtM~o zkZn)>vh3~6X6_p{R3UPvCE(=xmnoaF_rzb!!?7i4KaM1I=SN+yzY{@{1J0xH{qnxh zemn6zO^`T=|UG4YNgZnD$>lxe!AZEh42?&L&YDT{*KBftE~8o zG}@V2|B%D=-OiD{9g+4%C2-wUQlgpW!TWR}m7j9o?R&4&xn{8FMWuRL+29WMbXCqO zhG6$}%?CIf+^mGf0bYg0x?jK>m?rqCb5?p+mk?sou@Dc#Bp+p4g(x<-J7p-|_d4+b zB8@Z8+h|82{4B1a#KK<>Q9NhoEbi(}IN@;>(kNNRoHz@~k3G5fMd$Q`7i$N0DWn_$ zQIpj`uMtJGY#O%-wPv}Mn3o!*X>TvJMp;?!I)EHGI+KXusS5t6j z6Ifei)s&Q@x+mTa+^7A%Cyy$*ZZz4bb-az4vuPgPL|nz_V)q;$W@L{^Zv$3EZ#yIs z%tKbAVOKF{+3M1b{NCRhl(>QRcD12eK!=>ahGa=Q>=Wm)j(a{RO~o54aXHAMCF6mD zz-J{7 z>)F>`sgTdI%ffOf=|mTk z`udNPz#3RcV>N%>Jrs!Y=H~W$R-}_!Sj!~$%fSF)Bn2&-Csy~h>&eTI=ro-uh&;@- zLrZhk5Rai^xkv-*xx8=T1J_l`OeBK*x$q*9Yoa7VpAy1X^^Mkfa;K&l4?K8v*KDa; zj+?qHUs`fy@^dw5hAzg`Mm8e9*WVXU3m#cOn9ZA(>FvE(6gw*c0hB6s*`5s&v>~}O zE=O<_WJHJd_y&-Zny6tevhlT^^u3H2=IqsgALQB@U#Qn4Zo8Q+6=ni4FZNc*V_nhZ zBk0|RNsWoC29gT`rKh@o(8Q@4SYy3^JW-~#2<1)|a&oIj4xV4sTWnT3&vdziq(>g{ zMZ@lEXE$S);Mv7dVO$Ka4hLIQ%7mzBY&nB*!ID7@2q8l{8$;=yjDr%al411UU@fW9 zUAg9t05HX?-q(}SAn_58?WIo_gje>BH@YKe4^HlkY>j{@td>e?MzI%i4hZGf#rlP~ zH0w3|vBT|87D1YmqxMU^0q2&4Tl6;wfotP%@FcT}3BXbM2vJ@oBP3AL=H3RD5>l?(PwWFqgyymhmlZjzjZM9^>AM>X)oOgVeA zifmDY->$E3SzhmF@eavmiBQqN02=ON=s}TD$V<74IeU*nxT7tuWfQMO{DbWL8PuKD z6EGOv(j>LREKt&sNWA8JQ{(g=g)krX?HUQ$^p>d1ORSP3 z3NNUvIrpaJd$nZnhCz(L{y~$RWj}{a-<`IfS{AF?Z_<+!QbU*kuYqCMAXFbwn??{z zH%WEw`?1yox3Jj4D)-;oZa?DpI`7y?@aGr8ie?kLpY1X02el|B0V4uK3?5f5zCgr7 zDp9acP(z2_DshdSnD9JQ*qu3E6(CNBCNAFMjvJz8U{O#*n~Fh$l!c|LmEw zT&A=?J0^>(xX%$HRFSjJ~ddMHF@*4QC1-V9#~=*-eU4DT6r9&l+TE?@|lI z{~D20j1(SeU=%{8+lIF(IK1Avxp5^dvFv!wp8k`5?Cza2WH9H1O8cUZ_iBJH&$#Li zTL(o`PJ^)7nvUo(m-wcOU<=!;!p>uc-yn&mkH0E6DV$VF!lKn;4!uv~W6U_p4&%3N zqXK!@hY67=i&PC0G_l_{w~eEm(bkBj&wNbqWCz_Y3(4o_j`T5N5E|Z=HUQGfZGt7IC3l3q3u99p(n-K;1hWgDtf&dJj$*5f|g}A3BE&rf9 zc+hGS#Y7-#O+lTOt(nr1g{kUda_Ajy%+a=Vh`)go2V7jc4pn`Ay~*spu9@ zp9X??rZOO08K#5H8{D6;E)WMjvs`(8#Ns9Mr- z@N6Ej(UGx-W=|7t%0DF6P7{A|B@%;WC49v@oB-YsY0n+%Rf0HZ9V#!!gsND2M{U(J zp{vLkwrjA28LUiE3$$GojANnBdO&Kp?MffTNC6)!VanIfPE73xMeWYhI*$^c#{V*s z-Uqn_^i|nBQL&VMeV2lM+j;&Oed^3xcGmX?DZ|cX6U2XDm&E>bUF@lyEf`LMIa|uy zON`6<8Jau}`lT;={n6B;qZFH?WaDLL_|IA`LXM6FrV??G?~dVOnhb<>5(=T=Z+cAn zQMakvz2mfe1}75F-{>%W;Ro`AZ)w48b{Z>Jra+S183ElQ_grKeL@%WaYlg7wo0=r< zB6qt*uG{0#36bp66>|y(;?PgzJ*2V!CTST-3}VAa0|9ivfs}tgy0R|Wwu8g|sT$9d z9I~!}Q<}N-SvHr_f~k zGa>fjpPxa|ya`URtux`N2FUJPi0{Zrm~9mBPgnm*Qn^79k1pB)mvYca4oIeeuYWdO_-zl2)PmZ&vJ@C?R9fi@g!Hn`iu9{u*jd7`u)a zQ`{w32#ljC-PIMCYa0cI8)ZmIli5hp(=uQza`Fn-iH}7-=yV8)F>*AGWpCoEgwy}} z@&GO=+EJW997D@s##H*NLfDuWLuiL`5zf)4p=1C%gjKI$5){1USs);f<{OM!l53Vk zX8y5+U5rG?Sv^||RZLL2JMUsm4lT%&9_o`8kaW?EC1Pf+tZj^gX6Q4J9bGg3pbjAq zahD_!vZ>SRB5i%?oBU?ZvW0!ML$uAyK`$>wUDG%b?{I;Oi~=EZYw9;|@`Su6b-34q zC7}eSwH}5uuS{&|L}hLsb?4+2usUp)xDcTN>!F8O$k9a?E+ULyWpU++wHc92MrJU8 zG#JNNv2O?cht<`4+I&x`YLZUl%T(25C+@PtUz$g&k=VgqQ&UeJN?{aQeD6}KSn|zt z^6vYttZ=bJ)cRD7kQq181f;LbY)!;S($?{Ly5K62I^h=G!|ewM0eaGKO61ma5;8J` zCh&n_aj_adm@-nnArpSTCfk)2GCEiiCkU&*@E9cchJa;b{Mth6Qcmr5!6AuVeZnwe zxi!7(GmINHNfGqxQ|8+nn1rfcK-SQu3i0FNr83z2MzH)qlttJ%W3VFsuoP1bb1;2% ztz=fp8uDq6zoXioF<&ws55S7r5tM;)CcJU#bF3zI_#QLhGZV+BJHjwj*}Jk3X$VRn z6cW$xC(%N_scCcWBu1v<4`&H1eUtlybHWoVObfTPbVsP-;_BdVlgQ+}%Aw_}`hfRh zMM^?k{b(`f6|G~CxEWOrw!<46IeFobfH4#vB$KRDRk9p!k9AbCc0rI}%%N`upXH*> z3rFeDQA>$3Hs`B4&4jqDYKn*6$3y(kyje99-xcnXLE|#5>AI$yn-3Sj^ElG-GXIo#bRzvWB^~7!YKVhipO95>?9LP>~Ic9Sr<| z9>S3h_6BdnCaJ5M+m#zE#w<|f8@z3Jholz+`kvN##UtCW%BydPNeFaQITPJ=5;ol z)@@lprgmot&7@cVAC_CmCz@N6+Q+(&!N51yIIK^&=^@d=IgeiXe98i(`C8+ARikZB zu_+5hQ*ta(`o3g1i}f3IJYJ-@%7>xOCLNS!vL;iF8m*}0@!%!4lRV5sfWr zD{KGXaYT9=tapWfCR#}%GkU0!E-u5%$dX_*UCBX?6lH^t?9e_tli8djE=NX>_+=O0 zNIgRP>}dg$0!E7JtwFC&A}5R`w}4(4$fCb;JN;^Ml2$BDxczRBeXboL6dJ%brmGlk zxo3JWzFWfSx`9s$_T%rc9-@thZE|!`8p|Jx+BW*MR5Dke#>qY|6A#Yc=ZXK;5W&kC z;x>@He6Se%T{z`f`HE{EGmQw36P(|xmD-bIN*RUMNlHi+@g^?NT2O{;qSy6vvkzo-mXSbX z3!Vfrz(W3c9o%~ZS}5jJi#SZ)XCWvUn9khu3gd*Du?Fe$<_vd=?+ca73KZsDD4pXn#_oF zZQD*!g}RJx5<@;MMZag)tKxlUzj<}a%E&)!RUtz z4z!fMoso(xOw}j-c`|X=#i$TfN1tT!oWvsci4VOaYcwH}tEKhQgS3%-5J9 zcePbMP0HC9vc-S2wyjKp9j0tyB?E;f8QMxXn5!jc4VV~(I}GF^#$G(#FBp|1nn6&m znX1i9sdgAkM=|L5qG4LlgOzBI>up@c{AFTtjm{|RtDq3;aytBcajvv3fq8psRPnpn zXT3>Uf^6wlyAH$oS^z`{{F-FxNA?0>;%UQOPr%u0g;=dK_b@Aq>(l~%2i^&V8IX3< z6?;h91g2wELc-O;5AU?%GNKUCZtiANYl2Ox7K_o@FdEBBQe_do>tny zD78?ETpj6>=dP;RXZZbx{{3x3IUzWgDbdPhmE3CgQu%b(=%gIo^^MJ$rr7L0xq$jW z#UWULZ+dhwoQ~G($-02k$eA9BlJ!7}m6^IAJe5%R-$FTHd8Yl{-QDV4?%Bqn@^4;n zcl*ZiPvpa)8J{v9?oYcoj$tCRDsA5HaurVSo>%;#EJW&2G2AiO@eb8IQLNYr>jnRG z!z!JqRj8LgPju*t!_FNxY1tWw1#)Jky^?s#WaURffA{dmT(|Ds{- zp6=9xElzfq5z3PmZ}wb^*A<=@ErcH>x&OnmSGn6>0YfjY?FTqsz1N{1t#K; zcwROOyhKYsTd;{uOslpmz{K|I9cpX-?bV+^dtTc8vktfrO4oGr8hNacIU>ydqedakzpk^;ARHArJv~ zUV$eV2Gj|UGRbN}kk?Z8kt-T@f=d`Gr)_XhM9NhpPt`%HvZb`n!0YrZ1F|Un5ja|K zBZCMC&&^PYPHeh67s4X=X(6f3J4YB{u&BF^O6`h6{ zK5O56edI@D?lpz|HAmGiV)G7q9@hJD>~!^a_XNrcQX)*T=(*VT0m|BxDW!(Tdp2nS zfF~F!>1*0*cGX3Ew*M(>&XhYJHX-&HzwrKtC3uaavh{w?h$%cLd(WyLTmC<+wnTyF zHx6PC#277}PdH6^g?plXPJIwLD1u@OG?RVLdgX>ht`ZBgvAw0aXu*?Q(F}+;bt~mc z>r}Go`=)h*lDD!!Uv_!UnrKwbfVu$r239OOC_>uMWvi^f&%bWASFF6j4W#E3;aKJ+ z%v{B6yDn{wS*d6LC4f{KfdB%(8%XPv8|pRbwl9p*nBXapy!fFdg}|VY&&WW9Hx+=+ zGmKmYQF7)K>i^Ekm^xc1aufel?od|Z(JJ1gjwTcd0aZ5+tYT9zF-jD@4;}1T=UhuB zf)DGuQV!u7StvQvM|NWiBI+*zvsJaCO}?YycL@&$y(5+e#QrR_$hY~Mno|N zVanTZ{b~8;Q5GIkvgYE$ZO=os&MLiisJ*{9Su#8q`opLc$F97$TG(&D;8nG0vEh90 z&VgCQ55w{6^Bx+>2@yTpTp2s5m^0#5?Ljs+xCiNbf7alx ze^;|k3(VY=ZUS6X+gR8p!2dtY?F5@MRZC2blRaO?aHCwf?uZ|xCBl2AhS_L-SmHA) zRSTPF$r8t_($fXU9k_{z*pOX~)d+8!-W7tl%)cE?l30AznL03Dbi-D3;WemK>C2a` z`SPnN(Bukb{MfmqAAwRh!U05EV8LN;8Cu8BqJaui%Okt^R!nH@L#2txt21B^aS1nq zNh<+vZLrRvzHAo$9p2o$=ulRX-#m*8_feV&y=zrp-C+{oKmC$8CR{e?__|*-C{$T=~MsFH8;vGm_MCKnwONO<#>U#X?ATFNhipWxDcku_s6zYWKzu zsbZxCdq;WL!ZE|-ib2WAh$nly-(R$fetPDl_HTe9aJWc%UQsKukZ#-ocLN>LvGfwK zqOqT;W)E}B@`ep9XNi#gtNed7opn@H?f16_K?LbeY3Ur0RJs`&>F$zFLApyChEPHB zk?t5I29Ov)X^@Ulqy!`s!T09-TkkCYVBuocnVB>9IrrZCb6pL#Ag5LxTa47(Dg^p+ zOUJ`z8M+^ANqK1_|9u|X92oo6Y7)CDMTXhzY_8E7$>`qc9VTx38BuF$4|Q% zK|4S9=O>Z}KQ#7R70Gpd*X5|TARk9T4=Rqve6sJZ(tj7~QiVj=WuDmBib|3eta?yxsi9pYw zCj}38%e3f1R=b*n=)783*kYqvwqO2guJU4K?8<+Au?7PZk1 zHIj^}O~^Fc;7UrX+X?G-Uv zdA7=BFBSLm>P2Hq3G`&VJTdc65E~L*-d)~|wBX!>DWv>jb zrNlr-pEHn-FIIDhcL=Q48q0ul8^{NC3>Pf-YQ_mUtuZN?xaigEE0XPu zui86A^9l*>x+1J3f`sH4k;D<2)>+x)4r|ptcK-57*;f_ne^bH9*J7e~odEc_zm4_&=EwxYSm(EK0~u zk(ixHkIdFg~Qvjf0{>B0sE#;JW_Fl0oJY3dq5jrIt^rH0(^)gKaK~5s4T?0&JgF5YA?L z_>mYGpT4r7?mz8|*J_j?g1nYWLgNOP#?Bzef ztlSWxxP1Js^6ZQ8LxX(v(&tX5OSzC^a~H3l=xveCW7lo(ScIRmvcc~!N-u}!4XC-T z9@1}{R=iNF@Zu1w_Npah;4jD{H0RA-@GFPn4m?~aKueP!*tvpa3X?o>(gZLXk(I<| zdH*W$cGPYa>ma~*5-(&Xgw0oF>dP$ZFDwk6(oCmvE;{DRz+hjSjnjw};rGeJl<$^w z4}71weGqF5PUvjWQ3Y}d$Ulei%A5PQ-EAT%{-2BzEF3*<;`lI0bV^nRZBfz@YF2QJb1UvtrfVi=aFgvxanBM&kjs zvAI7BLNO{FD=zUr)9c^1b+#^(5v*?xeiii@un~IYSbfQ0&yIx3#4VP_7NZixcyx*c zvanVhSysRWwa&+3;*&huh-cABFxoG30E&%yUeJm4wI6$5Ae7pg;8;|ShB}@nCm;{~ z>RPG5M6XraoIQ+1Rigie+t`{Nna5R(p<6_>X_7s(cC}HI4~)*mhQ>!@GlA&SPtQiB zRUF5dQRsHgn(g_Z0UXf|M9ad*>qf>3uK|+ukT@ zZcAH>HGU$qg{ydp`RcBsZyLHef-1-%;8cvrVbVDAto;zpPl6m=Y^`1hvLUf_l(S{U z4HfTNTB8opA%XNS12(DY)wcNTNAbxg{7fmq{~*DYKU;IyVMQy^dYcyL1c$A#+z;M_ z#go?`vXEmNf>yRyLow}ahA}b*SU-COFolcR-VfaGq#Wcuc3qBZVUE&(4*Io1VVQ*C zgRu|9=U+e62fxT{(}1$C{SJcrKGRHS<}owf)aWK-rI55l&~;Lj@X9W^#qYv=t|8`( zY(d6tdAMccj!ZR3oaRJbCNXYGw)7Ix1pK4fkGOz!F^$Yt82EJf%6U1^%bbfWNbl=1SZr`LBHV98gcl8~A)wiS#Pt1`jArQ=is zu9+Ixy#_F+9)kq~$}r{}zN@8QrSk|Nz`l={vrwRfd%5_ui$h~m9_&ID!M0`nq_MSxdn$e{<+~~C@a$LKsag{9f)L#KLW;*0 z%*9M^g}TNqEB-WiV`8CR^sBwc?BQUqpVVm0P6cU`{{$d`jX_zpj^}*ci+O9|)h20Y z_uq`zP@f2s+J8U@#&ykDhlr^O&UR2;BRa~q{JkP6+#*@5NgH+C*b3%0){ZqhP-`&_ z?Oa$XG0fcGv3zacwK3?-k*Ni(1CRQ9#d}{113V}F^t3LaXKZ;mI36~!YD?E$; z$fOUU%#$ege@lPsax<=s%jim}WZLO_C1K8b$+!NJNmYUgKkt$Xx--K@EueR4%0;t0 z_YDni_AtCM7b4d=3=b~J5N>P>q1Z0gNLPWTPYF?zTS}FzMBkDNmJo5=6Z(2+=w$UC zPBfjY%6S&t9%s?pE=vduvgZ=rj5?Sm|{-zhyG?nqU zCwFcK#JOmee@L*QOa`Bvh0PGLj*G`8xvUCo=V1*d0Zx1PyAt(WoT^; z;2lGV#e!I&m4l%`y5{GY6h*x71pfpoRp>s>bqTQ~(97+%}S z6lyGxyw7fM>toX+|5RR4WXBpv^>WusdT`S}J)q^pM9C~2JS)ivs9u?w82VE)u_x>P zwzfL?oGzx?+oI=tDa-N2SA73E|L~-}2UpG8nTpI&Tp<;;xxr9K7>Tz2Cj$isOAScbk3LE zZ(tS*Co{Nx6_z)!d+7`(VN2s(KZsUfzIDcVR<-W9Qu7b;n5DhWm;>3j*6O-=!57eC#iU6{yI7 zx<%M#9hvy1{h}l&$qL;_s)kZC(|yM_Vm;=UgL?N-AHO{uPgt<1+?VF;DcAHRvt9F_ z1wlA!=QSVqz6bFP9?S52R7fIoZ~|v`o#PpGa%4vzv!gZLc|lc)R|*n2*q1*x&@4iv z?I60!<7(zp?5qJvRB4pJVg8!Lzrem`=jrhN2UimjUdLM#OL_4Ft?`*^uX0pRn$1xA z;JY+3>S0owLpR31uoBB7M|*Eyod8v~B?64HC-JqL-V*T=*!&}p35W%RM(e$_bB>@8 zPy!C>QV=Oz{klCSI4(r=&V4zVi<@!QGfypalKPlrG(#K%Cy4;*N{kO1qDipByJY0M z86Vr|N-l%F89?G6AM}%L#s4mJYsG!qd;xpP_>yxQ^Mvb*f=`q*`_DL5{0Bee6;Y?6Ae+AhN8DgSrW6)5Dwq z%D_ITED9yuvKV|N+r28By+_ zE&%n6GA9#z$NojerRGnK@*Zn(KYooe>iOV|>EE&?z1P#Xr3PP93O}cyy4F||Q<&f( zu{9<6(b$3pX?B5KeFD>~6s59%Dp|czmL6JHiC2+nH6bqYhlHGdy*(kl6>hfU zJ26g9V=Q}~Ty?~ncoW(aLvCzXm}Lvk+}x3~MPSwZBJ>`v&r$BC^nr1o2*VcSKz2OS zS3o8tM(K`(!dx9B_;SXR^lR$29F8V&+THfb(JR8nDZJhEX7oW;VqSPW>`rJ`1*7r= z-c?i6E!Nm$^%?Ko-o(GcXu) zLbcF?X&NUd@jNc4O;~s~rkeO?z46{>4Q>Ou!6VPAm>F^_=Y30&MoRB@v5r^xn21z1 z9xBchy=xZsCiRb20(u9h-SCrsA?#N;g|4jUNlQE9JN;pnBdaUU;lQ*i$t%Ywne1pH+pKFt17(@@ z&%PhXXdo5)yH~li!x$cg)(QV0@NAw1uCBza`u11*4N07j|3Qup>d5y3%7gM8MVSIV zJ{{v?G5Q&fZ}FkP0&TvX7D{yy#cV?r9zZE9eR;;|Bq!+(j}Rooqgz|Ju~y&xj7p=c zT@ICYY%5l3N2@I5o`Q9?5h_O0|M z9fx=MT(PZr(lt_&a3B;Hwde0!Jyw`xfwPBg+@tk{bXZy;$M=~T%-Ag&gcR_?@!a$} zE02z>?N{HW&5rOA9QZ+0{6qry9YS;6)ua6wY6-^XJRss#mi$cGIe$^KG$q=F;W1iW zuyB2!etR^tcF$=O)9#mJd3v8bduFXHY05G9{e%d1N@QX~zUna+!(4yUXi)XE+LOv( zlgYMxN7NWG4VU*yg!+zVYNdeqU>R@I(7!&0XFg_%moHwgD$iuTZI}AByKcDN75NQk zZ}p45^%@YAD~Q6@9>xV{W=B|n)Kh+jUuJLifj>vTzCF=vC{W6@P?hd zj!)?4owt6>I2W8!9Z#LdkNL)2@O=>C3=<{sHg5w5jboccW4VLP1d~xEp>q9pS=i2+ z?x=LjnRG5K&UBPVKk^Q=b8}7^zn;~#Gky(BY(&ACR49Z{>&Xdf`FtUzLO4G#7-s-b z_VidL1(hb#4Hb`7ADoo)VrAJ}lW|t@L-(#mT`*sla#~;ir_I(g-tEgE7c3=go3Dh{ z4(%|({quRSj=t_nAj3F%sPc;v#s_RlxEUhm2rg^6LF3lV}c!x|ggmWxBGd)k2 z9NC}bek4RGb86FFEfb_w2t1o|%<#KiU6gxduSDT&(xEAH!b;16cTT7xqTcg!D{6)* zE#Yzqo~}Y5qx8Ni)-HcMY5##8096PS1h*jR%?>GJWMIUK>sR;41)jdSd~{@GPH7V} z^beA^ge_B}&Y*C+rZ8HUU+;~3K8`iti#9LJ*M5{IVfQn=Z0*xw;U$CRo|v(Qbal#r zPtn(@EeRC{?cUep&^c&^{5XpKPZf|3SJGClTtvTb>`Y z-(f$wp=JAU!?M@Ow{RT_EK+sTC16$9&JWT^mAYL+f;1h1$sHQ)SXX|7gLAVb6eL(`RpSpf$GJa;H7-D`fw)f zlQY_L62vahjC9Qjp-5WcSo_bL>;usl*w+(5h*>|Q_84LRE#zOPQGHo_z} zKB!g5?M{z#8?(JJ_79RY=ie>IIbIkvyc~Xd$i6<`Ql}s8W#P11VI@ry1sgd4Z-@J~ z+bv)0tKF5U%NHxbuM_*?q(+kuq<%D-bcIzsIJ01)^~9i&KUI9xq-g4?I`xgJ`&V_x zlt8g)H8zRfTc5n^Y3gHPvB>C%m8?xRdyKH%n?#-hFo`-J=)JjGE+=||^QWl}Eu0%{ z-gNHGqSQWGmUU4`JR+YX`p2eoRl6UfGWAz!+Lw4{-1goTF;(fr2Wp%uzP+PwDTVp{ zWMU%q{HD4(ijc+QSz^>tE>)Qnr|$JDO}00kK{?1YdlCh4C2W4Sp8Sx_9Na@Ax+yL+ z`!&ni&wr4(h0jei5B|EjO{`uxTu4|RP5;goW?#MR5Y_Neaj8mPKQgP4QH(D6aOxZL zWY4vcQIahridt?82fIaS>%b=OIKPyoX)KTLrgrrATgu~rJX@~xxP(f(*LBk0Q3{O~ z5*BA~lY4H%4i^(_-XQwm{~)}V?y0<>oDzu66F+{l+w68iE@RMxWG4zLl*FXM-ll$? z7xE7CGJhRWm!XY5?X@W8)rxZ*?asHoB6WEo3_dP)v-m4@`af3Bx>rkjL%vXVSb5C3 zehb>YyyDP)>oH0qw&nSmmh0&Km2o}v+vGiqWk!5Ocas9n?becaNxXxLDh3$7(so`q z3jy%a$4C92GM!RVDtQcU?R>w9iFc;V1PWodkvb|MlLsr97MtX*di>rWg#)ERgUeUnLst=geD7Pi(zPa75Az zGgG-fHB_{vj1DyJ^yKXF)d1Ut74Ku3EH;gZn*^H}dklahZC`H>_woT1lhU`Yzr&~! zqhy3`675k-IZOPgXUP|zI6nGbr^vK>EO@Y0!Q}k}VVCvFN?GZH@)_4J8P~(x-zQmq zPr3|@g)4du`eb%49BKtl1^fMOcbiKtiSuJp!CTrK1B2q8uAPOwLZ^A-EwEhUufpL? zBg-t&zu#jEpsh+QdcDnmr(R!wMkT^aSZK4ab1pB*^^SbSN}&P~3}{u+uoIv7}Nny;yOJzS;8PgqoPx>SN2c^_3MBsPk?IaNC}AJ!Im8&Vt^`8k1^%|1py z=Rfz6U_1UV$9T-~ys{)2NugH)w)Tmc9S$j1JqMn1SPFkXybjKWt=OR*G;&XA^wbK4 zL+>fopjep=IebpU_}@`Mlf-$4_&$?P3n!~^ajre~`5t6}&R%L(kglt!7vjdmszdLY zqb`Md?cK8_`W^7f>s|a`chHRT;SF5golIzC}vmF`3uveP5jPD+SW)clI+mea>9F1U z2SK#3w4X0`TzW39G#RY;98JIbk6O0cYx^dCY_NBydpz%o`5}+Y#dh9J){UGl*zVOq z0!+bWHWidf+wwTk+wD&c*c+`R0@-ewx%d4Lo{3=6LA)ESK%FmLqf`BKo-4dKugg@H zQMZlISUu?&RTt-8^#hO zff_jb$v?=1W--)HrOo~9A7rh5F8KMULJNWItGdgj%&>#%&q%$lRSC~n7On3U>^H)X znuTwfQ@z4XlVg+P2@45otpqZB)za5I8HvY|xI~-OlQ4+pFo?J)zQ5wcn!065)txH6 z28A9&m1oVAQi3G;(FCfe@W5`W*P#kHlFwXEI5Ka)0pwHRU;>Q~I*UO{-#TB#iz$Go z{OIJmLOgh4eRG1iAAd0n!9rd7XRv<8w%dZpiIn}Do103}#J4=v-+3Q3R2CgxcOl}1 zZ$9}J`ahDVIh|V0BPY4p{o^S?rLit{d)N`b8k68^B(S2p*6D85=5dn0YY{rQiBCe6 zJ~F5n(vXWJ`WaE_^TuH$n10eq_$7&8pSGVKiUfIX`|$UJBdzD?-><&@HMWH_#^+L( zB*|RGJsGbD`8du_Ux_AhqlA)#Lyc!JHYDz?vuyJ3Y%qk3sJtNJ%Yi!nLelHA$XMFz z4nq~GZu8?W;)PFnV@#m$gxnd(8MtC5m$H7>{_$kMbuW$`53WCYyL@&W`rmgNZq;H* zw)H;YAPq{xbvgi{yoV_|1?;iEnv4O=rdE;^7wx?@$sUFlZx@ls&G>@uG zTE;`vcVxV7XTD|rgS5)$~sNLMOC=(?b1!>RNd3#>!^DwiwV@yKYGtzuUtyoc-`#3WU#e=͠(aS+S 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

uaMB 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%0Ase=i)ob)!twq&U+Hsg#+ANKMC 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 literal 0 HcmV?d00001 diff --git a/sample/src/main/assets/example.html b/sample/src/main/assets/example.html new file mode 100644 index 0000000..8b31240 --- /dev/null +++ b/sample/src/main/assets/example.html @@ -0,0 +1,124 @@ + + + + + 书呆子精神院 + + + + + + + + +

+
    +
  • + 确认框弹出
    + 代码:
    +
    + HostApp.alert('我是确认框'); +
    + +
  • + +
    +
  • + 气泡提示
    + 代码:
    +
    + HostApp.toast('我是气泡'); +
    + +
  • + +
    +
  • + 测试代码执行时间
    + 代码:
    +
    + HostApp.testLossTime(new Date().getTime()); +
    + +
  • + +
    +
  • + 获得设备IMSI
    + 代码:
    +
    + HostApp.alert( + HostApp.getIMSI() + ); +
    + +
  • + +
    +
  • + 重载方法测试-执行整型定义
    + 代码:
    +
    + HostApp.alert( + HostApp.overloadMethod(1) + ); +
    + +
  • + +
    +
  • + 重载方法测试-执行字符串定义
    + 代码:
    +
    + HostApp.alert( + HostApp.overloadMethod('12adadad') + ); +
    + +
  • + +
    +
  • + 过大数字精度丢失测试
    + 代码:
    +
    + HostApp.alert( + HostApp.passLongType(14102300951321235) + '' + ); +
    + +
  • +
+ + + diff --git a/sample/src/main/assets/js3.html b/sample/src/main/assets/js3.html new file mode 100644 index 0000000..dcb7f49 --- /dev/null +++ b/sample/src/main/assets/js3.html @@ -0,0 +1,17 @@ +javascript:(function JsAddJavascriptInterface_(){ + if (typeof(window.jsInterface)!='undefined') { + console.log('window.jsInterface_js_interface_name is exist!!');} + else { + window.jsInterface = { + + onButtonClick:function(arg0) { + return prompt('MyApp:'+JSON.stringify({obj:'jsInterface',func:'onButtonClick',args:[arg0]})); + }, + + onImageClick:function(arg0,arg1,arg2) { + prompt('MyApp:'+JSON.stringify({obj:'jsInterface',func:'onImageClick',args:[arg0,arg1,arg2]})); + }, + }; + } +} +)() \ No newline at end of file diff --git a/sample/src/main/assets/test.html b/sample/src/main/assets/test.html new file mode 100644 index 0000000..8100c34 --- /dev/null +++ b/sample/src/main/assets/test.html @@ -0,0 +1,68 @@ + + + + + + + + + +

点击图片把URL传到Java代码

+ +

+ + + \ No newline at end of file diff --git a/sample/src/main/assets/zepto.js b/sample/src/main/assets/zepto.js new file mode 100644 index 0000000..4fc013b --- /dev/null +++ b/sample/src/main/assets/zepto.js @@ -0,0 +1,2185 @@ +/* Zepto v1.0-1-ga3cab6c - polyfill zepto detect event ajax form fx - zeptojs.com/license */ +/* modified by Pedant from line 508 to 515 */ +;(function(undefined) { + if (String.prototype.trim === undefined) // fix for iOS 3.2 + String.prototype.trim = function() { + return this.replace(/^\s+|\s+$/g, '') + } + + // For iOS 3.x + // from https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/reduce + //这个方法的作用就是累似一个累计处理的作用,将前一条数据的处理结果用作下一次的处理 + //比如[1,2,3,4,].reduce(function(x,y){ return x+y}); ==> ((1+2)+3)+4, + + if (Array.prototype.reduce === undefined) Array.prototype.reduce = function(fun) { + if (this === void 0 || this === null) throw new TypeError() + var t = Object(this), + len = t.length >>> 0, + k = 0, + accumulator + if (typeof fun != 'function') throw new TypeError() + if (len == 0 && arguments.length == 1) throw new TypeError() + //取初始值 + if (arguments.length >= 2) accumulator = arguments[1] //如果参数长度大于2个,则将第二个参数作为初始值 + else do { + if (k in t) { + accumulator = t[k++] //否则将数组的第一条数据作为初绍值 + break + } + if (++k >= len) throw new TypeError() //什么情况下会执行到这里来??? + } while (true) + //遍历数组,将前一次的结果传入处理函数进行累计处理 + while (k < len) { + if (k in t) accumulator = fun.call(undefined, accumulator, t[k], k, t) + k++ + } + return accumulator + } + +})() + +var Zepto = (function() { + var undefined, key, $, classList, emptyArray = [], + slice = emptyArray.slice, + filter = emptyArray.filter, + document = window.document, + elementDisplay = {}, classCache = {}, + getComputedStyle = document.defaultView.getComputedStyle, + //设置CSS时,不用加px单位的属性 + cssNumber = { + 'column-count': 1, + 'columns': 1, + 'font-weight': 1, + 'line-height': 1, + 'opacity': 1, + 'z-index': 1, + 'zoom': 1 + }, + //HTML代码片断的正则 + fragmentRE = /^\s*<(\w+|!)[^>]*>/, + //匹配非单独一个闭合标签的标签,类似将
写成了
+ tagExpanderRE = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig, + //根节点 + rootNodeRE = /^(?:body|html)$/i, + + //需要提供get和set的方法名 + // special attributes that should be get/set via method calls + methodAttributes = ['val', 'css', 'html', 'text', 'data', 'width', 'height', 'offset'], + //相邻节点的一些操作 + adjacencyOperators = ['after', 'prepend', 'before', 'append'], + table = document.createElement('table'), + tableRow = document.createElement('tr'), + //这里的用途是当需要给tr,tbody,thead,tfoot,td,th设置innerHTMl的时候,需要用其父元素作为容器来装载HTML字符串 + containers = { + 'tr': document.createElement('tbody'), + 'tbody': table, + 'thead': table, + 'tfoot': table, + 'td': tableRow, + 'th': tableRow, + '*': document.createElement('div') + }, + //当DOM ready的时候,document会有以下三种状态的一种 + readyRE = /complete|loaded|interactive/, + //class选择器的正则 + classSelectorRE = /^\.([\w-]+)$/, + //id选择器的正则 + idSelectorRE = /^#([\w-]*)$/, + //DOM标签正则 + tagSelectorRE = /^[\w-]+$/, + class2type = {}, + toString = class2type.toString, + zepto = {}, + camelize, uniq, + tempParent = document.createElement('div'); + + //判断一个元素是否匹配给定的选择器 + zepto.matches = function(element, selector) { + if (!element || element.nodeType !== 1) return false + //引用浏览器提供的MatchesSelector方法 + var matchesSelector = element.webkitMatchesSelector || element.mozMatchesSelector || element.oMatchesSelector || element.matchesSelector + if (matchesSelector) return matchesSelector.call(element, selector); + //如果浏览器不支持MatchesSelector方法,则将节点放入一个临时div节点, + //再通过selector来查找这个div下的节点集,再判断给定的element是否在节点集中,如果在,则返回一个非零(即非false)的数字 + // fall back to performing a selector: + var match, parent = element.parentNode,temp = !parent + //当element没有父节点,那么将其插入到一个临时的div里面 + if (temp)(parent = tempParent).appendChild(element) + //将parent作为上下文,来查找selector的匹配结果,并获取element在结果集的索引,不存在时为-1,再通过~-1转成0,存在时返回一个非零的值 + match = ~zepto.qsa(parent, selector).indexOf(element) + //将插入的节点删掉 + temp && tempParent.removeChild(element) + return match + } + + //获取对象类型 + + function type(obj) { + //obj为null或者undefined时,直接返回'null'或'undefined' + return obj == null ? String(obj) : class2type[toString.call(obj)] || "object" + } + + function isFunction(value) { + return type(value) == "function" + } + + function isWindow(obj) { + return obj != null && obj == obj.window + } + + function isDocument(obj) { + return obj != null && obj.nodeType == obj.DOCUMENT_NODE + } + + function isObject(obj) { + return type(obj) == "object" + } + //对于通过字面量定义的对象和new Object的对象返回true,new Object时传参数的返回false + //可参考http://snandy.iteye.com/blog/663245 + + function isPlainObject(obj) { + return isObject(obj) && !isWindow(obj) && obj.__proto__ == Object.prototype + } + + function isArray(value) { + return value instanceof Array + } + //类数组,比如nodeList,这个只是做最简单的判断,如果给一个对象定义一个值为数据的length属性,它同样会返回true + + function likeArray(obj) { + return typeof obj.length == 'number' + } + + //清除给定的参数中的null或undefined,注意0==null,'' == null为false + + function compact(array) { + return filter.call(array, function(item) { + return item != null + }) + } + //类似得到一个数组的副本 + + function flatten(array) { + return array.length > 0 ? $.fn.concat.apply([], array) : array + } + //将字符串转成驼峰式的格式 + camelize = function(str) { + return str.replace(/-+(.)?/g, function(match, chr) { + return chr ? chr.toUpperCase() : '' + }) + } + //将字符串格式化成-拼接的形式,一般用在样式属性上,比如border-width + + function dasherize(str) { + return str.replace(/::/g, '/') //将::替换成/ + .replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2') //在大小写字符之间插入_,大写在前,比如AAAbb,得到AA_Abb + .replace(/([a-z\d])([A-Z])/g, '$1_$2') //在大小写字符之间插入_,小写或数字在前,比如bbbAaa,得到bbb_Aaa + .replace(/_/g, '-') //将_替换成- + .toLowerCase() //转成小写 + } + //数组去重,如果该条数据在数组中的位置与循环的索引值不相同,则说明数组中有与其相同的值 + uniq = function(array) { + return filter.call(array, function(item, idx) { + return array.indexOf(item) == idx + }) + } + + //将给定的参数生成正则 + + function classRE(name) { + //classCache,缓存正则 + return name in classCache ? classCache[name] : (classCache[name] = new RegExp('(^|\\s)' + name + '(\\s|$)')) + } + //给需要的样式值后面加上'px'单位,除了cssNumber里面的指定的那些 + + function maybeAddPx(name, value) { + return (typeof value == "number" && !cssNumber[dasherize(name)]) ? value + "px" : value + } + //获取节点的默认display属性 + + function defaultDisplay(nodeName) { + var element, display + if (!elementDisplay[nodeName]) { //缓存里不存在 + element = document.createElement(nodeName) + document.body.appendChild(element) + display = getComputedStyle(element, '').getPropertyValue("display") + element.parentNode.removeChild(element) + display == "none" && (display = "block") //当display等于none时,设置其值为block,搞不懂为毛要这样 + elementDisplay[nodeName] = display //缓存元素的默认display属性 + } + return elementDisplay[nodeName] + } + //获取指定元素的子节点(不包含文本节点),Firefox不支持children,所以只能通过筛选childNodes + + function children(element) { + return 'children' in element ? slice.call(element.children) : $.map(element.childNodes, function(node) { + if (node.nodeType == 1) return node + }) + } + + // `$.zepto.fragment` takes a html string and an optional tag name + // to generate DOM nodes nodes from the given html string. + // The generated DOM nodes are returned as an array. + // This function can be overriden in plugins for example to make + // it compatible with browsers that don't support the DOM fully. + zepto.fragment = function(html, name, properties) { + //将类似
替换成
,算是一种修复吧 + if (html.replace) html = html.replace(tagExpanderRE, "<$1>") + //给name取标签名 + if (name === undefined) name = fragmentRE.test(html) && RegExp.$1 + //设置容器标签名,如果不是tr,tbody,thead,tfoot,td,th,则容器标签名为div + if (!(name in containers)) name = '*' + + var nodes, dom, container = containers[name] //创建容器 + container.innerHTML = '' + html //将html代码片断放入容器 + //取容器的子节点,这样就直接把字符串转成DOM节点了 + dom = $.each(slice.call(container.childNodes), function() { + container.removeChild(this) //逐个删除 + }) + //如果properties是对象, 则将其当作属性来给添加进来的节点进行设置 + if (isPlainObject(properties)) { + nodes = $(dom) //将dom转成zepto对象,为了方便下面调用zepto上的方法 + //遍历对象,设置属性 + $.each(properties, function(key, value) { + //如果设置的是'val', 'css', 'html', 'text', 'data', 'width', 'height', 'offset',则调用zepto上相对应的方法 + if (methodAttributes.indexOf(key) > -1) nodes[key](value) + else nodes.attr(key, value) + }) + } + //返回将字符串转成的DOM节点后的数组,比如'
  • '转成[li,li,li] + return dom + } + + // `$.zepto.Z` swaps out the prototype of the given `dom` array + // of nodes with `$.fn` and thus supplying all the Zepto functions + // to the array. Note that `__proto__` is not supported on Internet + // Explorer. This method can be overriden in plugins. + zepto.Z = function(dom, selector) { + dom = dom || [] + dom.__proto__ = $.fn //通过给dom设置__proto__属性指向$.fn来达到继承$.fn上所有方法的目的 + dom.selector = selector || '' + return dom + } + + // `$.zepto.isZ` should return `true` if the given object is a Zepto + // collection. This method can be overriden in plugins. + //判断给定的参数是否是Zepto集 + zepto.isZ = function(object) { + return object instanceof zepto.Z + } + + // `$.zepto.init` is Zepto's counterpart to jQuery's `$.fn.init` and + // takes a CSS selector and an optional context (and handles various + // special cases). + // This method can be overriden in plugins. + zepto.init = function(selector, context) { + // If nothing given, return an empty Zepto collection + if (!selector) return zepto.Z() //没有参数,返回空数组 + //如果selector是个函数,则在DOM ready的时候执行它 + else if (isFunction(selector)) return $(document).ready(selector) + //如果selector是一个zepto.Z实例,则直接返回它自己 + else if (zepto.isZ(selector)) return selector + else { + var dom + //如果selector是一个数组,则将其里面的null,undefined去掉 + if (isArray(selector)) dom = compact(selector) + //如果selector是个对象,注意DOM节点的typeof值也是object,所以在里面还要再进行一次判断 + else if (isObject(selector)) + //如果是申明的对象,如{}, 则将selector属性copy到一个新对象,并将结果放入数组 + //如果是该对象是DOM,则直接放到数组中 + dom = [isPlainObject(selector) ? $.extend({}, selector) : selector], selector = null + //如果selector是一段HTML代码片断,则将其转换成DOM节点 + else if (fragmentRE.test(selector)) dom = zepto.fragment(selector.trim(), RegExp.$1, context), selector = null + //如果存在上下文context,则在上下文中查找selector,此时的selector为普通的CSS选择器 + else if (context !== undefined) return $(context).find(selector) + //如果没有给定上下文,则在document中查找selector,此时的selector为普通的CSS选择器 + else dom = zepto.qsa(document, selector) + //最后将查询结果转换成zepto集合 + return zepto.Z(dom, selector) + } + } + + // `$` will be the base `Zepto` object. When calling this + // function just call `$.zepto.init, which makes the implementation + // details of selecting nodes and creating Zepto collections + // patchable in plugins. + $ = function(selector, context) { + return zepto.init(selector, context) + } + + //扩展,deep表示是否深度扩展 + + function extend(target, source, deep) { + for (key in source) + //如果深度扩展 + if (deep && (isPlainObject(source[key]) || isArray(source[key]))) { + //如果要扩展的数据是对象且target相对应的key不是对象 + if (isPlainObject(source[key]) && !isPlainObject(target[key])) target[key] = {} + //如果要扩展的数据是数组且target相对应的key不是数组 + if (isArray(source[key]) && !isArray(target[key])) target[key] = [] + extend(target[key], source[key], deep) + } else if (source[key] !== undefined) target[key] = source[key] + } + + // Copy all but undefined properties from one or more + // objects to the `target` object. + $.extend = function(target) { + var deep, args = slice.call(arguments, 1) + if (typeof target == 'boolean') { //当第一个参数为boolean类型的值时,表示是否深度扩展 + deep = target + target = args.shift() //target取第二个参数 + } + //遍历后面的参数,全部扩展到target上 + args.forEach(function(arg) { + extend(target, arg, deep) + }) + return target + } + + // `$.zepto.qsa` is Zepto's CSS selector implementation which + // uses `document.querySelectorAll` and optimizes for some special cases, like `#id`. + // This method can be overriden in plugins. + zepto.qsa = function(element, selector) { + var found + //当element为document,且selector为ID选择器时 + return (isDocument(element) && idSelectorRE.test(selector)) ? + //直接返回document.getElementById,RegExp.$1为ID的值,当没有找节点时返回[] + ((found = element.getElementById(RegExp.$1)) ? [found] : []) : + //当element不为元素节点或者document时,返回[] + (element.nodeType !== 1 && element.nodeType !== 9) ? [] : + //否则将获取到的结果转成数组并返回 + slice.call( + //如果selector是标签名,直接调用getElementsByClassName + classSelectorRE.test(selector) ? element.getElementsByClassName(RegExp.$1) : + //如果selector是标签名,直接调用getElementsByTagName + tagSelectorRE.test(selector) ? element.getElementsByTagName(selector) : + //否则调用querySelectorAll + element.querySelectorAll(selector)) + } + + //在结果中进行过滤 + + function filtered(nodes, selector) { + return selector === undefined ? $(nodes) : $(nodes).filter(selector) + } + //判断parent是否包含node + $.contains = function(parent, node) { + return parent !== node && parent.contains(node) + } + + //这个函数在整个库中取着很得要的作用,处理arg为函数或者值的情况 + //下面很多设置元素属性时的函数都有用到 + + function funcArg(context, arg, idx, payload) { + return isFunction(arg) ? arg.call(context, idx, payload) : arg + } + + function setAttribute(node, name, value) { + //如果设置的值为null或undefined,则相当于删除该属性,否则设置name属性为value + value == null ? node.removeAttribute(name) : node.setAttribute(name, value) + } + + // access className property while respecting SVGAnimatedString + + function className(node, value) { + var klass = node.className, + svg = klass && klass.baseVal !== undefined + + if (value === undefined) return svg ? klass.baseVal : klass + svg ? (klass.baseVal = value) : (node.className = value) + } + + // "true" => true + // "false" => false + // "null" => null + // "42" => 42 + // "42.5" => 42.5 + // JSON => parse if valid + // String => self + + function deserializeValue(value) { + var num + try { + return value ? value == "true" || (value == "false" ? false : value == "null" ? null : !isNaN(num = Number(value)) ? num : /^[\[\{]/.test(value) ? $.parseJSON(value) : value) : value + } catch (e) { + return value + } + } + + $.type = type + $.isFunction = isFunction + $.isWindow = isWindow + $.isArray = isArray + $.isPlainObject = isPlainObject + + //空对象 + $.isEmptyObject = function(obj) { + var name + for (name in obj) return false + return true + } + + //获取指定的值在数组中的位置 + $.inArray = function(elem, array, i) { + return emptyArray.indexOf.call(array, elem, i) + } + //将字符串转成驼峰式的格式 + $.camelCase = camelize + //去字符串头尾空格 + $.trim = function(str) { + return str.trim() + } + + // plugin compatibility + $.uuid = 0 + $.support = {} + $.expr = {} + + //遍历elements,将每条记录放入callback里进宪处理,保存处理函数返回值不为null或undefined的结果 + //注意这里没有统一的用for in,是为了避免遍历数据默认属性的情况,如数组的toString,valueOf + $.map = function(elements, callback) { + var value, values = [], + i, key + //如果被遍历的数据是数组或者nodeList + if (likeArray(elements)) for (i = 0; i < elements.length; i++) { + value = callback(elements[i], i) + if (value != null) values.push(value) + } else + //如果是对象 + for (key in elements) { + value = callback(elements[key], key) + if (value != null) values.push(value) + } + return flatten(values) + } + + //遍历数组,将每条数据作为callback的上下文,并传入数据以及数据的索引进行处理,如果其中一条数据的处理结果明确返回false, + //则停止遍历,并返回elements + $.each = function(elements, callback) { + var i, key + if (likeArray(elements)) { + for (i = 0; i < elements.length; i++) + if (callback.call(elements[i], i, elements[i]) === false) return elements + } else { + for (key in elements) + if (callback.call(elements[key], key, elements[key]) === false) return elements + } + + return elements + } + //过滤 + $.grep = function(elements, callback) { + return filter.call(elements, callback) + } + + if (window.JSON) $.parseJSON = JSON.parse + + // Populate the class2type map + //填充class2type的值 + $.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { + class2type["[object " + name + "]"] = name.toLowerCase() + }) + + //针对DOM的一些操作 + // Define methods that will be available on all + // Zepto collections + $.fn = { + // Because a collection acts like an array + // copy over these useful array functions. + forEach: emptyArray.forEach, + reduce: emptyArray.reduce, + push: emptyArray.push, + sort: emptyArray.sort, + indexOf: emptyArray.indexOf, + concat: emptyArray.concat, + + // `map` and `slice` in the jQuery API work differently + // from their array counterparts + map: function(fn) { + return $($.map(this, function(el, i) { + return fn.call(el, i, el) + })) + }, + slice: function() { + return $(slice.apply(this, arguments)) + }, + //DOM Ready + ready: function(callback, jumpHostAppInject) { + var originCb = callback; + var mcounter = 0; + //尝试等待(1500ms超时)让壳注入HostApp Js + callback = function () { + if(!window.HostApp && mcounter++ < 150)setTimeout(callback, 10);else originCb($); + }; + //是否跳过等待HostApp的注入 + if (jumpHostAppInject) { + callback = originCb; + } + if (readyRE.test(document.readyState)) callback($); else document.addEventListener('DOMContentLoaded', function() { + callback($) + }, false); + return this + }, + //取集合中对应指定索引的值,如果idx小于0,则idx等于idx+length,length为集合的长度 + get: function(idx) { + return idx === undefined ? slice.call(this) : this[idx >= 0 ? idx : idx + this.length] + }, + //将集合转换为数组 + toArray: function() { + return this.get() + }, + //获取集合长度 + size: function() { + return this.length + }, + //将集合从dom中删除 + remove: function() { + return this.each(function() { + if (this.parentNode != null) this.parentNode.removeChild(this) + }) + }, + //遍历集合,将集合中的每一项放入callback中进行处理,去掉结果为false的项,注意这里的callback如果明确返回false + //那么就会停止循环了 + each: function(callback) { + emptyArray.every.call(this, function(el, idx) { + return callback.call(el, idx, el) !== false + }) + return this + }, + //过滤集合,返回处理结果为true的记录 + filter: function(selector) { + //this.not(selector)取到需要排除的集合,第二次再取反(这个时候this.not的参数就是一个集合了),得到想要的集合 + if (isFunction(selector)) return this.not(this.not(selector)) + //filter收集返回结果为true的记录 + return $(filter.call(this, function(element) { + return zepto.matches(element, selector) //当element与selector匹配,则收集 + })) + }, + //将由selector获取到的结果追加到当前集合中 + add: function(selector, context) { + return $(uniq(this.concat($(selector, context)))) //追加并去重 + }, + //返回集合中的第1条记录是否与selector匹配 + is: function(selector) { + return this.length > 0 && zepto.matches(this[0], selector) + }, + //排除集合里满足条件的记录,接收参数为:css选择器,function, dom ,nodeList + not: function(selector) { + var nodes = [] + //当selector为函数时,safari下的typeof odeList也是function,所以这里需要再加一个判断selector.call !== undefined + if (isFunction(selector) && selector.call !== undefined) { + this.each(function(idx) { + //注意这里收集的是selector.call(this,idx)返回结果为false的时候记录 + if (!selector.call(this, idx)) nodes.push(this) + }) + } else { + //当selector为字符串的时候,对集合进行筛选,也就是筛选出集合中满足selector的记录 + var excludes = typeof selector == 'string' ? this.filter(selector) : + //当selector为nodeList时执行slice.call(selector),注意这里的isFunction(selector.item)是为了排除selector为数组的情况 + //当selector为css选择器,执行$(selector) + (likeArray(selector) && isFunction(selector.item)) ? slice.call(selector) : $(selector) + this.forEach(function(el) { + //筛选出不在excludes集合里的记录,达到排除的目的 + if (excludes.indexOf(el) < 0) nodes.push(el) + }) + } + return $(nodes) //由于上面得到的结果是数组,这里需要转成zepto对象,以便继承其它方法,实现链写 + }, + /* + 接收node和string作为参数,给当前集合筛选出包含selector的集合 + isObject(selector)是判断参数是否是node,因为typeof node == 'object' + 当参数为node时,只需要判读当前记当里是否包含node节点即可 + 当参数为string时,则在当前记录里查询selector,如果长度为0,则为false,filter函数就会过滤掉这条记录,否则保存该记录 + */ + has: function(selector) { + return this.filter(function() { + return isObject(selector) ? $.contains(this, selector) : $(this).find(selector).size() + }) + }, + /* + 选择集合中指定索引的记录,当idx为-1时,取最后一个记录 + */ + eq: function(idx) { + return idx === -1 ? this.slice(idx) : this.slice(idx, +idx + 1) + }, + /* + 取集合中的第一条记录 + */ + first: function() { + var el = this[0] //取集合中的第一条记录 + //如果集合中的第一条数据本身就已经是zepto对象则直接返回本身,否则转成zepto对象 + //el && !isObject(el)在这里取到一个判断el是否为节点的情况,因为如果el是节点,那么isObject(el)的结果就是true + return el && !isObject(el) ? el : $(el) + }, + /* + 取集合中的最后一条记录 + */ + last: function() { + var el = this[this.length - 1] //取集合中的最后一条记录 + //如果el为node,则isObject(el)会为true,需要转成zepto对象 + return el && !isObject(el) ? el : $(el) + }, + /* + 在当前集合中查找selector,selector可以是集合,选择器,以及节点 + */ + find: function(selector) { + var result, $this = this + //如果selector为node或者zepto集合时 + if (typeof selector == 'object') + //遍历selector,筛选出父级为集合中记录的selector + result = $(selector).filter(function() { + var node = this + //如果$.contains(parent, node)返回true,则emptyArray.some也会返回true,外层的filter则会收录该条记录 + return emptyArray.some.call($this, function(parent) { + return $.contains(parent, node) + }) + }) + //如果selector是css选择器 + //如果当前集合长度为1时,调用zepto.qsa,将结果转成zepto对象 + else if (this.length == 1) result = $(zepto.qsa(this[0], selector)) + //如果长度大于1,则调用map遍历 + else result = this.map(function() { + return zepto.qsa(this, selector) + }) + return result + }, + //取集合中第一记录的最近的满足条件的父级元素 + closest: function(selector, context) { + var node = this[0], + collection = false + if (typeof selector == 'object') collection = $(selector) + //当selector是node或者zepto集合时,如果node不在collection集合中时需要取node.parentNode进行判断 + //当selector是字符串选择器时,如果node与selector不匹配,则需要取node.parentNode进行判断 + while (node && !(collection ? collection.indexOf(node) >= 0 : zepto.matches(node, selector))) + //当node 不是context,document的时候,取node.parentNode + node = node !== context && !isDocument(node) && node.parentNode + return $(node) + }, + //取集合所有父级元素 + parents: function(selector) { + var ancestors = [], + nodes = this + //通过遍历nodes得到所有父级,注意在while里nodes被重新赋值了 + //本函数的巧妙之处在于,不停在获取父级,再遍历父级获取父级的父级 + //然后再通过去重,得到最终想要的结果,当到达最顶层的父级时,nodes.length就为0了 + while (nodes.length > 0) + //nodes被重新赋值为收集到的父级集合 + nodes = $.map(nodes, function(node) { + //遍历nodes,收集集合的第一层父级 + //ancestors.indexOf(node) < 0用来去重复 + if ((node = node.parentNode) && !isDocument(node) && ancestors.indexOf(node) < 0) { + ancestors.push(node) //收集已经获取到的父级元素,用于去重复 + return node + } + }) + //上面还只是取到了所有的父级元素,这里还需要对其进行筛选从而得到最终想要的结果 + return filtered(ancestors, selector) + }, + //获取集合的父节点 + parent: function(selector) { + return filtered(uniq(this.pluck('parentNode')), selector) + }, + children: function(selector) { + return filtered(this.map(function() { + return children(this) + }), selector) + }, + contents: function() { + return this.map(function() { + return slice.call(this.childNodes) + }) + }, + siblings: function(selector) { + return filtered(this.map(function(i, el) { + //先获取该节点的父节点中的所有子节点,再排除本身 + return filter.call(children(el.parentNode), function(child) { + return child !== el + }) + }), selector) + }, + empty: function() { + return this.each(function() { + this.innerHTML = '' + }) + }, + //根据属性来获取当前集合的相关集合 + pluck: function(property) { + return $.map(this, function(el) { + return el[property] + }) + }, + show: function() { + return this.each(function() { + //清除元素的内联display="none"的样式 + this.style.display == "none" && (this.style.display = null) + //当样式表里的该元素的display样式为none时,设置它的display为默认值 + if (getComputedStyle(this, '').getPropertyValue("display") == "none") this.style.display = defaultDisplay(this.nodeName) //defaultDisplay是获取元素默认display的方法 + }) + }, + replaceWith: function(newContent) { + //将要替换的内容插入到被替换的内容前面,然后删除被替换的内容 + return this.before(newContent).remove() + }, + wrap: function(structure) { + var func = isFunction(structure) + if (this[0] && !func) + //如果structure是字符串,则将其转成DOM + var dom = $(structure).get(0), + //如果structure是已经存在于页面上的节点或者被wrap的记录不只一条,则需要clone dom + clone = dom.parentNode || this.length > 1 + + return this.each(function(index) { + $(this).wrapAll( + func ? structure.call(this, index) : clone ? dom.cloneNode(true) : dom) + }) + }, + wrapAll: function(structure) { + if (this[0]) { + //将要包裹的内容插入到第一条记录的前面,算是给structure定位围置 + $(this[0]).before(structure = $(structure)) + var children + // drill down to the inmost element + //取structure里的第一个子节点的最里层 + while ((children = structure.children()).length) structure = children.first() + //将当前集合插入到最里层的节点里,达到wrapAll的目的 + $(structure).append(this) + } + return this + }, + //在匹配元素里的内容外包一层结构 + wrapInner: function(structure) { + var func = isFunction(structure) + return this.each(function(index) { + //原理就是获取节点的内容,然后用structure将内容包起来,如果内容不存在,则直接将structure append到该节点 + var self = $(this), + contents = self.contents(), + dom = func ? structure.call(this, index) : structure + contents.length ? contents.wrapAll(dom) : self.append(dom) + }) + }, + unwrap: function() { + //用子元素替换掉父级 + this.parent().each(function() { + $(this).replaceWith($(this).children()) + }) + return this + }, + //clone node + clone: function() { + return this.map(function() { + return this.cloneNode(true) + }) + }, + //隐藏集合 + hide: function() { + return this.css("display", "none") + }, + toggle: function(setting) { + return this.each(function() { + var el = $(this); + /* + 这个setting取得作用就是控制显示与隐藏,并不切换,当它的值为true时,一直显示,false时,一直隐藏 + 这个地方的判断看上去有点绕,其实也简单,意思是说,当不给toogle参数时,根据元素的display是否等于none来决定显示或者隐藏元素 + 当给toogle参数,就没有切换效果了,只是简单的根据参数值来决定显示或隐藏。如果参数true,相当于show方法,false则相当于hide方法 + */ + (setting === undefined ? el.css("display") == "none" : setting) ? el.show() : el.hide() + }) + }, + prev: function(selector) { + return $(this.pluck('previousElementSibling')).filter(selector || '*') + }, + next: function(selector) { + return $(this.pluck('nextElementSibling')).filter(selector || '*') + }, + //当有参数时,设置集合每条记录的HTML,没有参数时,则为获取集合第一条记录的HTML,如果集合的长度为0,则返回null + html: function(html) { + return html === undefined ? + //参数html不存在时,获取集合中第一条记录的html + (this.length > 0 ? this[0].innerHTML : null) : + //否则遍历集合,设置每条记录的html + this.each(function(idx) { + //记录原始的innerHTMl + var originHtml = this.innerHTML + //如果参数html是字符串直接插入到记录中, + //如果是函数,则将当前记录作为上下文,调用该函数,且传入该记录的索引和原始innerHTML作为参数 + $(this).empty().append(funcArg(this, html, idx, originHtml)) + }) + }, + text: function(text) { + //如果不给定text参数,则为获取功能,集合长度大于0时,取第一条数据的textContent,否则返回null, + //如果给定text参数,则为集合的每一条数据设置textContent为text + return text === undefined ? (this.length > 0 ? this[0].textContent : null) : this.each(function() { + this.textContent = text + }) + }, + attr: function(name, value) { + var result + //当只有name且为字符串时,表示获取第一条记录的属性 + return (typeof name == 'string' && value === undefined) ? + //集合没有记录或者集合的元素不是node类型,返回undefined + (this.length == 0 || this[0].nodeType !== 1 ? undefined : + //如果取的是input的value + (name == 'value' && this[0].nodeName == 'INPUT') ? this.val() : + //注意直接定义在node上的属性,在标准浏览器和ie9,10中用getAttribute取不到,得到的结果是null + //比如div.aa = 10,用div.getAttribute('aa')得到的是null,需要用div.aa或者div['aa']这样来取 + (!(result = this[0].getAttribute(name)) && name in this[0]) ? this[0][name] : result) : + this.each(function(idx) { + if (this.nodeType !== 1) return + //如果name是一个对象,如{'id':'test','value':11},则给数据设置属性 + if (isObject(name)) for (key in name) setAttribute(this, key, name[key]) + //如果name只是一个普通的属性字符串,用funcArg来处理value是值或者function的情况最终返回一个属性值 + //如果funcArg函数返回的是undefined或者null,则相当于删除元素的属性 + else setAttribute(this, name, funcArg(this, value, idx, this.getAttribute(name))) + }) + }, + removeAttr: function(name) { + return this.each(function() { + this.nodeType === 1 && setAttribute(this, name)//setAttribute的第三个参数为null时,效果是删除name属性 + }) + }, + //获取第一条数据的指定的name属性或者给每条数据添加自定义属性,注意和setAttribute的区别 + prop: function(name, value) { + //没有给定value时,为获取,给定value则给每一条数据添加,value可以为值也可以是一个返回值的函数 + return (value === undefined) ? (this[0] && this[0][name]) : this.each(function(idx) { + this[name] = funcArg(this, value, idx, this[name]) + }) + }, + data: function(name, value) { + //通过调用attr方法来实现获取与设置的效果,注意attr方法里,当value存在的时候,返回的是集合本身,如果不存在,则是返回获取的值 + var data = this.attr('data-' + dasherize(name), value) + return data !== null ? deserializeValue(data) : undefined + }, + val: function(value) { + return (value === undefined) ? + //如果是多选的select,则返回一个包含被选中的option的值的数组 + (this[0] && (this[0].multiple ? $(this[0]).find('option').filter(function(o) { + return this.selected + }).pluck('value') : this[0].value)) : this.each(function(idx) { + this.value = funcArg(this, value, idx, this.value) + }) + }, + offset: function(coordinates) { + if (coordinates) return this.each(function(index) { + var $this = $(this), + //coordinates为{}时直接返回,为函数时返回处理结果给coords + coords = funcArg(this, coordinates, index, $this.offset()), + //取父级的offset + parentOffset = $this.offsetParent().offset(), + //计算出它们之间的差,得出其偏移量 + props = { + top: coords.top - parentOffset.top, + left: coords.left - parentOffset.left + } + //注意元素的position为static时,设置top,left是无效的 + if ($this.css('position') == 'static') props['position'] = 'relative' + $this.css(props) + }) + //取第一条记录的offset,包括offsetTop,offsetLeft,offsetWidth,offsetHeight + if (this.length == 0) return null + var obj = this[0].getBoundingClientRect() + //window.pageYOffset就是类似Math.max(document.documentElement.scrollTop||document.body.scrollTop) + return { + left: obj.left + window.pageXOffset, + top: obj.top + window.pageYOffset, + width: Math.round(obj.width), + height: Math.round(obj.height) + } + }, + css: function(property, value) { + //获取指定的样式 + if (arguments.length < 2 && typeof property == 'string') return this[0] && (this[0].style[camelize(property)] || getComputedStyle(this[0], '').getPropertyValue(property)) + //设置样式 + var css = '' + if (type(property) == 'string') { + if (!value && value !== 0) //当value的值为非零的可以转成false的值时如(null,undefined),删掉property样式 + this.each(function() { + //style.removeProperty 移除指定的CSS样式名(IE不支持DOM的style方法) + this.style.removeProperty(dasherize(property)) + }) + else css = dasherize(property) + ":" + maybeAddPx(property, value) + } else { + //当property是对象时 + for (key in property) + if (!property[key] && property[key] !== 0) + //当property[key]的值为非零的可以转成false的值时,删掉key样式 + this.each(function() { + this.style.removeProperty(dasherize(key)) + }) + else css += dasherize(key) + ':' + maybeAddPx(key, property[key]) + ';' + } + //设置 + return this.each(function() { + this.style.cssText += ';' + css + }) + }, + index: function(element) { + //这里的$(element)[0]是为了将字符串转成node,因为this是个包含node的数组 + //当不指定element时,取集合中第一条记录在其父节点的位置 + //this.parent().children().indexOf(this[0])这句很巧妙,和取第一记录的parent().children().indexOf(this)相同 + return element ? this.indexOf($(element)[0]) : this.parent().children().indexOf(this[0]) + }, + hasClass: function(name) { + return emptyArray.some.call(this, function(el) { + //注意这里的this是classRE(name)生成的正则 + return this.test(className(el)) + }, classRE(name)) + }, + addClass: function(name) { + return this.each(function(idx) { + classList = [] + var cls = className(this), + newName = funcArg(this, name, idx, cls) + //处理同时多个类的情况,用空格分开 + newName.split(/\s+/g).forEach(function(klass) { + if (!$(this).hasClass(klass)) classList.push(klass) + }, this) + classList.length && className(this, cls + (cls ? " " : "") + classList.join(" ")) + }) + }, + removeClass: function(name) { + return this.each(function(idx) { + if (name === undefined) return className(this, '') + classList = className(this) + funcArg(this, name, idx, classList).split(/\s+/g).forEach(function(klass) { + classList = classList.replace(classRE(klass), " ") + }) + className(this, classList.trim()) + }) + }, + toggleClass: function(name, when) { + return this.each(function(idx) { + var $this = $(this), + names = funcArg(this, name, idx, className(this)) + names.split(/\s+/g).forEach(function(klass) { + (when === undefined ? !$this.hasClass(klass) : when) ? $this.addClass(klass) : $this.removeClass(klass) + }) + }) + }, + scrollTop: function() { + if (!this.length) return + return ('scrollTop' in this[0]) ? this[0].scrollTop : this[0].scrollY + }, + position: function() { + if (!this.length) return + + var elem = this[0], + // Get *real* offsetParent + offsetParent = this.offsetParent(), + // Get correct offsets + offset = this.offset(), + parentOffset = rootNodeRE.test(offsetParent[0].nodeName) ? { + top: 0, + left: 0 + } : offsetParent.offset() + + // Subtract element margins + // note: when an element has margin: auto the offsetLeft and marginLeft + // are the same in Safari causing offset.left to incorrectly be 0 + offset.top -= parseFloat($(elem).css('margin-top')) || 0 + offset.left -= parseFloat($(elem).css('margin-left')) || 0 + + // Add offsetParent borders + parentOffset.top += parseFloat($(offsetParent[0]).css('border-top-width')) || 0 + parentOffset.left += parseFloat($(offsetParent[0]).css('border-left-width')) || 0 + + // Subtract the two offsets + return { + top: offset.top - parentOffset.top, + left: offset.left - parentOffset.left + } + }, + offsetParent: function() { + return this.map(function() { + var parent = this.offsetParent || document.body + while (parent && !rootNodeRE.test(parent.nodeName) && $(parent).css("position") == "static") + parent = parent.offsetParent + return parent + }) + } + } + + // for now + $.fn.detach = $.fn.remove + + // Generate the `width` and `height` functions + ; + ['width', 'height'].forEach(function(dimension) { + $.fn[dimension] = function(value) { + var offset, el = this[0], + //将width,hegiht转成Width,Height,用于取window或者document的width和height + Dimension = dimension.replace(/./, function(m) { + return m[0].toUpperCase() + }) + //没有参数为获取,获取window的width和height用innerWidth,innerHeight + if (value === undefined) return isWindow(el) ? el['inner' + Dimension] : + //获取document的width和height时,用offsetWidth,offsetHeight + isDocument(el) ? el.documentElement['offset' + Dimension] : (offset = this.offset()) && offset[dimension] + else return this.each(function(idx) { + el = $(this) + el.css(dimension, funcArg(this, value, idx, el[dimension]())) + }) + } + }) + + function traverseNode(node, fun) { + fun(node) + for (var key in node.childNodes) traverseNode(node.childNodes[key], fun) + } + + // Generate the `after`, `prepend`, `before`, `append`, + // `insertAfter`, `insertBefore`, `appendTo`, and `prependTo` methods. + adjacencyOperators.forEach(function(operator, operatorIndex) { + var inside = operatorIndex % 2 //=> prepend, append + + $.fn[operator] = function() { + // arguments can be nodes, arrays of nodes, Zepto objects and HTML strings + var argType, nodes = $.map(arguments, function(arg) { + argType = type(arg) + return argType == "object" || argType == "array" || arg == null ? arg : zepto.fragment(arg) + }), + parent, copyByClone = this.length > 1 //如果集合的长度大于集,则需要clone被插入的节点 + if (nodes.length < 1) return this + + return this.each(function(_, target) { + parent = inside ? target : target.parentNode + + //通过改变target将after,prepend,append操作转成before操作,insertBefore的第二个参数为null时等于appendChild操作 + target = operatorIndex == 0 ? target.nextSibling : operatorIndex == 1 ? target.firstChild : operatorIndex == 2 ? target : null + + nodes.forEach(function(node) { + if (copyByClone) node = node.cloneNode(true) + else if (!parent) return $(node).remove() + + //插入节点后,如果被插入的节点是SCRIPT,则执行里面的内容并将window设为上下文 + traverseNode(parent.insertBefore(node, target), function(el) { + if (el.nodeName != null && el.nodeName.toUpperCase() === 'SCRIPT' && (!el.type || el.type === 'text/javascript') && !el.src) window['eval'].call(window, el.innerHTML) + }) + }) + }) + } + + // after => insertAfter + // prepend => prependTo + // before => insertBefore + // append => appendTo + $.fn[inside ? operator + 'To' : 'insert' + (operatorIndex ? 'Before' : 'After')] = function(html) { + $(html)[operator](this) + return this + } + }) + + zepto.Z.prototype = $.fn + + // Export internal API functions in the `$.zepto` namespace + zepto.uniq = uniq + zepto.deserializeValue = deserializeValue + $.zepto = zepto + + return $ +})(); + +window.Zepto = Zepto; +'$' in window || (window.$ = Zepto); + +;(function($) { + function detect(ua) { + var os = this.os = {}, browser = this.browser = {}, + webkit = ua.match(/WebKit\/([\d.]+)/), + android = ua.match(/(Android)\s+([\d.]+)/), + ipad = ua.match(/(iPad).*OS\s([\d_]+)/), + iphone = !ipad && ua.match(/(iPhone\sOS)\s([\d_]+)/), + webos = ua.match(/(webOS|hpwOS)[\s\/]([\d.]+)/), + touchpad = webos && ua.match(/TouchPad/), + kindle = ua.match(/Kindle\/([\d.]+)/), + silk = ua.match(/Silk\/([\d._]+)/), + blackberry = ua.match(/(BlackBerry).*Version\/([\d.]+)/), + bb10 = ua.match(/(BB10).*Version\/([\d.]+)/), + rimtabletos = ua.match(/(RIM\sTablet\sOS)\s([\d.]+)/), + playbook = ua.match(/PlayBook/), + chrome = ua.match(/Chrome\/([\d.]+)/) || ua.match(/CriOS\/([\d.]+)/), + firefox = ua.match(/Firefox\/([\d.]+)/) + + // Todo: clean this up with a better OS/browser seperation: + // - discern (more) between multiple browsers on android + // - decide if kindle fire in silk mode is android or not + // - Firefox on Android doesn't specify the Android version + // - possibly devide in os, device and browser hashes + + if (browser.webkit = !! webkit) browser.version = webkit[1] + + if (android) os.android = true, os.version = android[2] + if (iphone) os.ios = os.iphone = true, os.version = iphone[2].replace(/_/g, '.') + if (ipad) os.ios = os.ipad = true, os.version = ipad[2].replace(/_/g, '.') + if (webos) os.webos = true, os.version = webos[2] + if (touchpad) os.touchpad = true + if (blackberry) os.blackberry = true, os.version = blackberry[2] + if (bb10) os.bb10 = true, os.version = bb10[2] + if (rimtabletos) os.rimtabletos = true, os.version = rimtabletos[2] + if (playbook) browser.playbook = true + if (kindle) os.kindle = true, os.version = kindle[1] + if (silk) browser.silk = true, browser.version = silk[1] + if (!silk && os.android && ua.match(/Kindle Fire/)) browser.silk = true + if (chrome) browser.chrome = true, browser.version = chrome[1] + if (firefox) browser.firefox = true, browser.version = firefox[1] + + os.tablet = !! (ipad || playbook || (android && !ua.match(/Mobile/)) || (firefox && ua.match(/Tablet/))) + os.phone = !! (!os.tablet && (android || iphone || webos || blackberry || bb10 || (chrome && ua.match(/Android/)) || (chrome && ua.match(/CriOS\/([\d.]+)/)) || (firefox && ua.match(/Mobile/)))) + } + + detect.call($, navigator.userAgent) + // make available to unit tests + $.__detect = detect + +})(Zepto) + + /* + 事件处理部份 + */ +; +(function($) { + var $$ = $.zepto.qsa, + handlers = {}, _zid = 1, + specialEvents = {}, + hover = { + mouseenter: 'mouseover', + mouseleave: 'mouseout' + } + + specialEvents.click = specialEvents.mousedown = specialEvents.mouseup = specialEvents.mousemove = 'MouseEvents' + + //取element的唯一标示符,如果没有,则设置一个并返回 + + function zid(element) { + return element._zid || (element._zid = _zid++) + } + //查找绑定在元素上的指定类型的事件处理函数集合 + + function findHandlers(element, event, fn, selector) { + event = parse(event) + if (event.ns) var matcher = matcherFor(event.ns) + return (handlers[zid(element)] || []).filter(function(handler) { + return handler && (!event.e || handler.e == event.e) //判断事件类型是否相同 + && + (!event.ns || matcher.test(handler.ns)) //判断事件命名空间是否相同 + //注意函数是引用类型的数据zid(handler.fn)的作用是返回handler.fn的标示符,如果没有,则给它添加一个, + //这样如果fn和handler.fn引用的是同一个函数,那么fn上应该也可相同的标示符, + //这里就是通过这一点来判断两个变量是否引用的同一个函数 + && + (!fn || zid(handler.fn) === zid(fn)) && (!selector || handler.sel == selector) + }) + } + //解析事件类型,返回一个包含事件名称和事件命名空间的对象 + + function parse(event) { + var parts = ('' + event).split('.') + return { + e: parts[0], + ns: parts.slice(1).sort().join(' ') + } + } + //生成命名空间的正则 + + function matcherFor(ns) { + return new RegExp('(?:^| )' + ns.replace(' ', ' .* ?') + '(?: |$)') + } + //遍历events + + function eachEvent(events, fn, iterator) { + if ($.type(events) != "string") $.each(events, iterator) + else events.split(/\s/).forEach(function(type) { + iterator(type, fn) + }) + } + //通过给focus和blur事件设置为捕获来达到事件冒泡的目的 + + function eventCapture(handler, captureSetting) { + return handler.del && (handler.e == 'focus' || handler.e == 'blur') || !! captureSetting + } + + //修复不支持mouseenter和mouseleave的情况 + + function realEvent(type) { + return hover[type] || type + } + + //给元素绑定监听事件,可同时绑定多个事件类型,如['click','mouseover','mouseout'],也可以是'click mouseover mouseout' + + function add(element, events, fn, selector, getDelegate, capture) { + var id = zid(element), + set = (handlers[id] || (handlers[id] = [])) //元素上已经绑定的所有事件处理函数 + eachEvent(events, fn, function(event, fn) { + var handler = parse(event) + //保存fn,下面为了处理mouseenter, mouseleave时,对fn进行了修改 + handler.fn = fn + handler.sel = selector + // 模仿 mouseenter, mouseleave + if (handler.e in hover) fn = function(e) { + /* + relatedTarget为事件相关对象,只有在mouseover和mouseout事件时才有值 + mouseover时表示的是鼠标移出的那个对象,mouseout时表示的是鼠标移入的那个对象 + 当related不存在,表示事件不是mouseover或者mouseout,mouseover时!$.contains(this, related)当相关对象不在事件对象内 + 且related !== this相关对象不是事件对象时,表示鼠标已经从事件对象外部移入到了对象本身,这个时间是要执行处理函数的 + 当鼠标从事件对象上移入到子节点的时候related就等于this了,且!$.contains(this, related)也不成立,这个时间是不需要执行处理函数的 + */ + var related = e.relatedTarget + if (!related || (related !== this && !$.contains(this, related))) return handler.fn.apply(this, arguments) + } + //事件委托 + handler.del = getDelegate && getDelegate(fn, event) + var callback = handler.del || fn + handler.proxy = function(e) { + var result = callback.apply(element, [e].concat(e.data)) + //当事件处理函数返回false时,阻止默认操作和冒泡 + if (result === false) e.preventDefault(), e.stopPropagation() + return result + } + //设置处理函数的在函数集中的位置 + handler.i = set.length + //将函数存入函数集中 + set.push(handler) + element.addEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture)) + }) + } + //删除绑定在元素上的指定类型的事件监听函数,可同时删除多种事件类型指定的函数,用数组或者还空格的字符串即可,同add + + function remove(element, events, fn, selector, capture) { + var id = zid(element) + eachEvent(events || '', fn, function(event, fn) { + findHandlers(element, event, fn, selector).forEach(function(handler) { + delete handlers[id][handler.i] + element.removeEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture)) + }) + }) + } + + $.event = { + add: add, + remove: remove + } + + //设置代理 + $.proxy = function(fn, context) { + if ($.isFunction(fn)) { + //如果fn是函数,则申明一个新的函数并用context作为上下文调用fn + var proxyFn = function() { + return fn.apply(context, arguments) + } + //引用fn标示符 + proxyFn._zid = zid(fn) + return proxyFn + } else if (typeof context == 'string') { + return $.proxy(fn[context], fn) + } else { + throw new TypeError("expected function") + } + } + + $.fn.bind = function(event, callback) { + return this.each(function() { + add(this, event, callback) + }) + } + $.fn.unbind = function(event, callback) { + return this.each(function() { + remove(this, event, callback) + }) + } + //绑定一次性事件监听函数 + $.fn.one = function(event, callback) { + return this.each(function(i, element) { + //添加函数,然后在回调函数里再删除绑定。达到一次性事件的目的 + add(this, event, callback, null, function(fn, type) { + return function() { + var result = fn.apply(element, arguments) //这里执行绑定的回调 + remove(element, type, fn) //删除上面的绑定 + return result + } + }) + }) + } + + var returnTrue = function() { + return true + }, + returnFalse = function() { + return false + }, + ignoreProperties = /^([A-Z]|layer[XY]$)/, + eventMethods = { + preventDefault: 'isDefaultPrevented', //是否调用过preventDefault方法 + //取消执行其他的事件处理函数并取消事件冒泡.如果同一个事件绑定了多个事件处理函数, 在其中一个事件处理函数中调用此方法后将不会继续调用其他的事件处理函数. + stopImmediatePropagation: 'isImmediatePropagationStopped', //是否调用过stopImmediatePropagation方法, + stopPropagation: 'isPropagationStopped' //是否调用过stopPropagation方法 + } + //创建事件代理 + + function createProxy(event) { + var key, proxy = { + originalEvent: event + } //保存原始event + for (key in event) + if (!ignoreProperties.test(key) && event[key] !== undefined) proxy[key] = event[key] //复制event属性至proxy + + //将preventDefault,stopImmediatePropagatio,stopPropagation方法定义到proxy上 + $.each(eventMethods, function(name, predicate) { + proxy[name] = function() { + this[predicate] = returnTrue + return event[name].apply(event, arguments) + } + proxy[predicate] = returnFalse + }) + return proxy + } + + // emulates the 'defaultPrevented' property for browsers that have none + //event.defaultPrevented返回一个布尔值,表明当前事件的默认动作是否被取消,也就是是否执行了 event.preventDefault()方法. + + function fix(event) { + if (!('defaultPrevented' in event)) { + event.defaultPrevented = false //初始值false + var prevent = event.preventDefault // 引用默认preventDefault + event.preventDefault = function() { //重写preventDefault + this.defaultPrevented = true + prevent.call(this) + } + } + } + //事件委托 + $.fn.delegate = function(selector, event, callback) { + return this.each(function(i, element) { + add(element, event, callback, selector, function(fn) { + return function(e) { + //如果事件对象是element里的元素,取与selector相匹配的 + var evt, match = $(e.target).closest(selector, element).get(0) + if (match) { + //evt成了一个拥有preventDefault,stopImmediatePropagatio,stopPropagation方法,currentTarge,liveFiredn属性的对象,另也有e的默认属性 + evt = $.extend(createProxy(e), { + currentTarget: match, + liveFired: element + }) + return fn.apply(match, [evt].concat([].slice.call(arguments, 1))) + } + } + }) + }) + } + //取消事件委托 + $.fn.undelegate = function(selector, event, callback) { + return this.each(function() { + remove(this, event, callback, selector) + }) + } + + $.fn.live = function(event, callback) { + $(document.body).delegate(this.selector, event, callback) + return this + } + $.fn.die = function(event, callback) { + $(document.body).undelegate(this.selector, event, callback) + return this + } + + //on也有live和事件委托的效果,所以可以只用on来绑定事件 + $.fn.on = function(event, selector, callback) { + return !selector || $.isFunction(selector) ? this.bind(event, selector || callback) : this.delegate(selector, event, callback) + } + $.fn.off = function(event, selector, callback) { + return !selector || $.isFunction(selector) ? this.unbind(event, selector || callback) : this.undelegate(selector, event, callback) + } + //主动触发事件 + $.fn.trigger = function(event, data) { + if (typeof event == 'string' || $.isPlainObject(event)) event = $.Event(event) + fix(event) + event.data = data + return this.each(function() { + // items in the collection might not be DOM elements + // (todo: possibly support events on plain old objects) + if ('dispatchEvent' in this) this.dispatchEvent(event) + }) + } + + // triggers event handlers on current element just as if an event occurred, + // doesn't trigger an actual event, doesn't bubble + //触发元素上绑定的指定类型的事件,但是不冒泡 + $.fn.triggerHandler = function(event, data) { + var e, result + this.each(function(i, element) { + e = createProxy(typeof event == 'string' ? $.Event(event) : event) + e.data = data + e.target = element + //遍历元素上绑定的指定类型的事件处理函数集,按顺序执行,如果执行过stopImmediatePropagation, + //那么e.isImmediatePropagationStopped()就会返回true,再外层函数返回false + //注意each里的回调函数指定返回false时,会跳出循环,这样就达到的停止执行回面函数的目的 + $.each(findHandlers(element, event.type || event), function(i, handler) { + result = handler.proxy(e) + if (e.isImmediatePropagationStopped()) return false + }) + }) + return result + } + + // shortcut methods for `.bind(event, fn)` for each event type + ; + ('focusin focusout load resize scroll unload click dblclick ' + + 'mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave ' + + 'change select keydown keypress keyup error').split(' ').forEach(function(event) { + $.fn[event] = function(callback) { + return callback ? + //如果有callback回调,则认为它是绑定 + this.bind(event, callback) : + //如果没有callback回调,则让它主动触发 + this.trigger(event) + } + }) + + ; + ['focus', 'blur'].forEach(function(name) { + $.fn[name] = function(callback) { + if (callback) this.bind(name, callback) + else this.each(function() { + try { + this[name]() + } catch (e) {} + }) + return this + } + }) + + //根据参数创建一个event对象 + $.Event = function(type, props) { + //当type是个对象时 + if (typeof type != 'string') props = type, type = props.type + //创建一个event对象,如果是click,mouseover,mouseout时,创建的是MouseEvent,bubbles为是否冒泡 + var event = document.createEvent(specialEvents[type] || 'Events'), + bubbles = true + //确保bubbles的值为true或false,并将props参数的属性扩展到新创建的event对象上 + if (props) for (var name in props)(name == 'bubbles') ? (bubbles = !! props[name]) : (event[name] = props[name]) + //初始化event对象,type为事件类型,如click,bubbles为是否冒泡,第三个参数表示是否可以用preventDefault方法来取消默认操作 + event.initEvent(type, bubbles, true, null, null, null, null, null, null, null, null, null, null, null, null) + //添加isDefaultPrevented方法,event.defaultPrevented返回一个布尔值,表明当前事件的默认动作是否被取消,也就是是否执行了 event.preventDefault()方法. + event.isDefaultPrevented = function() { + return this.defaultPrevented + } + return event + } + +})(Zepto) + +/** + Ajax处理部份 + **/ +; +(function($) { + var jsonpID = 0, + document = window.document, + key, + name, + rscript = /)<[^<]*)*<\/script>/gi, + scriptTypeRE = /^(?:text|application)\/javascript/i, + xmlTypeRE = /^(?:text|application)\/xml/i, + jsonType = 'application/json', + htmlType = 'text/html', + blankRE = /^\s*$/ + + // trigger a custom event and return false if it was cancelled + + function triggerAndReturn(context, eventName, data) { + var event = $.Event(eventName) + $(context).trigger(event, data) + return !event.defaultPrevented + } + + // trigger an Ajax "global" event + //触发 ajax的全局事件 + + function triggerGlobal(settings, context, eventName, data) { + if (settings.global) return triggerAndReturn(context || document, eventName, data) + } + + // Number of active Ajax requests + $.active = 0 + + //settings.global为true时表示需要触发全局ajax事件 + //注意这里的$.active++ === 0很巧妙,用它来判断开始,因为只有$.active等于0时$.active++ === 0才成立 + + function ajaxStart(settings) { + if (settings.global && $.active++ === 0) triggerGlobal(settings, null, 'ajaxStart') + } + //注意这里的 !(--$.active)同上面的异曲同工,--$.active为0,则表示$.active的值为1,这样用来判断结束,也很有意思 + + function ajaxStop(settings) { + if (settings.global && !(--$.active)) triggerGlobal(settings, null, 'ajaxStop') + } + + // triggers an extra global event "ajaxBeforeSend" that's like "ajaxSend" but cancelable + //触发全局ajaxBeforeSend事件,如果返回false,则取消此次请求 + + function ajaxBeforeSend(xhr, settings) { + var context = settings.context + if (settings.beforeSend.call(context, xhr, settings) === false || triggerGlobal(settings, context, 'ajaxBeforeSend', [xhr, settings]) === false) return false + + triggerGlobal(settings, context, 'ajaxSend', [xhr, settings]) + } + + function ajaxSuccess(data, xhr, settings) { + var context = settings.context, + status = 'success' + settings.success.call(context, data, status, xhr) + triggerGlobal(settings, context, 'ajaxSuccess', [xhr, settings, data]) + ajaxComplete(status, xhr, settings) + } + // type: "timeout", "error", "abort", "parsererror" + + function ajaxError(error, type, xhr, settings) { + var context = settings.context + settings.error.call(context, xhr, type, error) + triggerGlobal(settings, context, 'ajaxError', [xhr, settings, error]) + ajaxComplete(type, xhr, settings) + } + // status: "success", "notmodified", "error", "timeout", "abort", "parsererror" + + function ajaxComplete(status, xhr, settings) { + var context = settings.context + settings.complete.call(context, xhr, status) + triggerGlobal(settings, context, 'ajaxComplete', [xhr, settings]) + ajaxStop(settings) + } + + // Empty function, used as default callback + + function empty() {} + //可参考http://zh.wikipedia.org/zh-cn/JSONP + $.ajaxJSONP = function(options) { + if (!('type' in options)) return $.ajax(options) + + var callbackName = 'jsonp' + (++jsonpID), //创建回调函数名 + script = document.createElement('script'), + //js文件加载完毕 + cleanup = function() { + clearTimeout(abortTimeout) //清除下面的timeout事件处理 + $(script).remove() //移除创建的script标签,因为该文件的JS内容已经解析过了 + delete window[callbackName] //清除掉指定的回调函数 + }, + //取消加载 + abort = function(type) { + cleanup() + // In case of manual abort or timeout, keep an empty function as callback + // so that the SCRIPT tag that eventually loads won't result in an error. + //这里通过将回调函数重新赋值为空函数来达到看似阻止加载JS的目的,实际上给script标签设置了src属性后,请求就已经产生了,并且不能中断 + if (!type || type == 'timeout') window[callbackName] = empty + ajaxError(null, type || 'abort', xhr, options) + }, + xhr = { + abort: abort + }, abortTimeout + + if (ajaxBeforeSend(xhr, options) === false) { + abort('abort') + return false + } + //成功加载后的回调函数 + window[callbackName] = function(data) { + cleanup() + ajaxSuccess(data, xhr, options) + } + + script.onerror = function() { + abort('error') + } + //将回调函数名追加到请求地址,并赋给script,至此请求产生 + script.src = options.url.replace(/=\?/, '=' + callbackName) + $('head').append(script) + + //如果设置了超时处理 + if (options.timeout > 0) abortTimeout = setTimeout(function() { + abort('timeout') + }, options.timeout) + + return xhr + } + + //ajax全局设置 + $.ajaxSettings = { + // Default type of request + type: 'GET', + // Callback that is executed before request + beforeSend: empty, + // Callback that is executed if the request succeeds + success: empty, + // Callback that is executed the the server drops error + error: empty, + // Callback that is executed on request complete (both: error and success) + complete: empty, + // The context for the callbacks + context: null, + // Whether to trigger "global" Ajax events + global: true, + // Transport + xhr: function() { + return new window.XMLHttpRequest() + }, + // MIME types mapping + accepts: { + script: 'text/javascript, application/javascript', + json: jsonType, + xml: 'application/xml, text/xml', + html: htmlType, + text: 'text/plain' + }, + // Whether the request is to another domain + crossDomain: false, + // Default timeout + timeout: 0, + // Whether data should be serialized to string + processData: true, + // Whether the browser should be allowed to cache GET responses + cache: true + }; + + //根据MIME返回相应的数据类型,用作ajax参数里的dataType用,设置预期返回的数据类型 + //如html,json,scirpt,xml,text + + function mimeToDataType(mime) { + if (mime) mime = mime.split(';', 2)[0] + return mime && (mime == htmlType ? 'html' : mime == jsonType ? 'json' : scriptTypeRE.test(mime) ? 'script' : xmlTypeRE.test(mime) && 'xml') || 'text' + } + //将查询字符串追加到URL后面 + + function appendQuery(url, query) { + //注意这里的replace,将第一个匹配到的&或者&&,&?,? ?& ??替换成?,用来保证地址的正确性 + return (url + '&' + query).replace(/[&?]{1,2}/, '?') + } + + // serialize payload and append it to the URL for GET requests + //序列化发送到服务器上的数据,如果是GET请求,则将序列化后的数据追加到请求地址后面 + + function serializeData(options) { + //options.processData表示对于非Get请求,是否自动将 options.data转换为字符串,前提是options.data不是字符串 + if (options.processData && options.data && $.type(options.data) != "string") + //options.traditional表示是否以$.param方法序列化 + options.data = $.param(options.data, options.traditional) + if (options.data && (!options.type || options.type.toUpperCase() == 'GET')) + //如果是GET请求,将序列化后的数据追加到请求地址后面 + options.url = appendQuery(options.url, options.data) + } + + $.ajax = function(options) { + //注意这里不能直接将$.ajaxSettings替换掉$.extend的第一个参数,这样会改变 $.ajaxSettings里面的值 + //这里的做法是创建一个新对象 + var settings = $.extend({}, options || {}) + //如果它没有定义$.ajaxSettings里面的属性的时候,才去将$.ajaxSettings[key] 复制过来 + for (key in $.ajaxSettings) if (settings[key] === undefined) settings[key] = $.ajaxSettings[key] + //执行全局ajaxStart + ajaxStart(settings) + + //通过判断请求地址和当前页面地址的host是否相同来设置是跨域 + if (!settings.crossDomain) settings.crossDomain = /^([\w-]+:)?\/\/([^\/]+)/.test(settings.url) && RegExp.$2 != window.location.host + //如果没有设置请求地址,则取当前页面地址 + if (!settings.url) settings.url = window.location.toString(); + //将data进行转换 + serializeData(settings); + //如果不设置缓存 + if (settings.cache === false) settings.url = appendQuery(settings.url, '_=' + Date.now()) + + //如果请求的是jsonp,则将地址栏里的=?替换为callback=?,相当于一个简写 + var dataType = settings.dataType, + hasPlaceholder = /=\?/.test(settings.url) + if (dataType == 'jsonp' || hasPlaceholder) { + if (!hasPlaceholder) settings.url = appendQuery(settings.url, 'callback=?') + return $.ajaxJSONP(settings) + } + + var mime = settings.accepts[dataType], + baseHeaders = {}, + //如果请求地址没有定请求协议,则与当前页面协议相同 + protocol = /^([\w-]+:)\/\//.test(settings.url) ? RegExp.$1 : window.location.protocol, + xhr = settings.xhr(), + abortTimeout + //如果没有跨域 + if (!settings.crossDomain) baseHeaders['X-Requested-With'] = 'XMLHttpRequest' + if (mime) { + baseHeaders['Accept'] = mime + if (mime.indexOf(',') > -1) mime = mime.split(',', 2)[0] + xhr.overrideMimeType && xhr.overrideMimeType(mime) + } + //如果不是GET请求,设置发送信息至服务器时内容编码类型 + if (settings.contentType || (settings.contentType !== false && settings.data && settings.type.toUpperCase() != 'GET')) baseHeaders['Content-Type'] = (settings.contentType || 'application/x-www-form-urlencoded') + settings.headers = $.extend(baseHeaders, settings.headers || {}) + + xhr.onreadystatechange = function() { + if (xhr.readyState == 4) { + xhr.onreadystatechange = empty; + clearTimeout(abortTimeout) + var result, error = false + //根据状态来判断请求是否成功 + //状态>=200 && < 300 表示成功 + //状态 == 304 表示文件未改动过,也可认为成功 + //如果是取要本地文件那也可以认为是成功的,xhr.status == 0是在直接打开页面时发生请求时出现的状态,也就是不是用localhost的形式访问的页面的情况 + if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304 || (xhr.status == 0 && protocol == 'file:')) { + //获取返回的数据类型 + dataType = dataType || mimeToDataType(xhr.getResponseHeader('content-type')) + result = xhr.responseText + + try { + // http://perfectionkills.com/global-eval-what-are-the-options/ + if (dataType == 'script')(1, eval)(result) //如果返回的数据类型是JS + else if (dataType == 'xml') result = xhr.responseXML + else if (dataType == 'json') result = blankRE.test(result) ? null : $.parseJSON(result) + } catch (e) { + error = e + } + //如果解析出错,则执行全局parsererror事件 + if (error) ajaxError(error, 'parsererror', xhr, settings) + //否则执行ajaxSuccess + else ajaxSuccess(result, xhr, settings) + } else { + //如果请求出错,则根据xhr.status来执行相应的错误处理函数 + ajaxError(null, xhr.status ? 'error' : 'abort', xhr, settings) + } + } + } + + var async = 'async' in settings ? settings.async : true + xhr.open(settings.type, settings.url, async) + //设置请求头信息 + for (name in settings.headers) xhr.setRequestHeader(name, settings.headers[name]) + + //如果ajaxBeforeSend函数返回的false,则取消此次请示 + if (ajaxBeforeSend(xhr, settings) === false) { + xhr.abort() + return false + } + + //当设置了settings.timeout,则在超时后取消请求,并执行timeout事件处理函数 + if (settings.timeout > 0) abortTimeout = setTimeout(function() { + xhr.onreadystatechange = empty + xhr.abort() + ajaxError(null, 'timeout', xhr, settings) + }, settings.timeout) + + // avoid sending empty string (#319) + xhr.send(settings.data ? settings.data : null) + return xhr + } + + // handle optional data/success arguments + //将参数转换成ajax函数指定的参数格式 + + function parseArguments(url, data, success, dataType) { + var hasData = !$.isFunction(data) //如果data是function,则认为它是请求成功后的回调 + return { + url: url, + data: hasData ? data : undefined, //如果data不是function实例 + success: !hasData ? data : $.isFunction(success) ? success : undefined, + dataType: hasData ? dataType || success : success + } + } + + //简单的get请求 + $.get = function(url, data, success, dataType) { + return $.ajax(parseArguments.apply(null, arguments)) + } + + $.post = function(url, data, success, dataType) { + var options = parseArguments.apply(null, arguments) + options.type = 'POST' + return $.ajax(options) + } + + $.getJSON = function(url, data, success) { + var options = parseArguments.apply(null, arguments) + options.dataType = 'json' + return $.ajax(options) + } + + //这里的url可以是http://www.xxxx.com selector这种形式,就是对加载进来的HTML对行一个筛选 + $.fn.load = function(url, data, success) { + if (!this.length) return this + //将请求地址用空格分开 + var self = this, + parts = url.split(/\s/), + selector, + options = parseArguments(url, data, success), + callback = options.success + if (parts.length > 1) options.url = parts[0], selector = parts[1] + //要对成功后的回调函数进行一个改写,因为需要将加载进来的HTML添加进当前集合 + options.success = function(response) { + //selector就是对请求到的数据就行一个筛选的条件,比如只获取数据里的类名为.test的标签 + self.html(selector ? $('
    ').html(response.replace(rscript, "")).find(selector) : response) + //这里才是你写的回调 + callback && callback.apply(self, arguments) + } + $.ajax(options) + return this + } + + var escape = encodeURIComponent + + function serialize(params, obj, traditional, scope) { + var type, array = $.isArray(obj) + $.each(obj, function(key, value) { + type = $.type(value) + //scope用作处理value也是object或者array的情况 + //traditional表示是否以传统的方式拼接数据, + //传统的意思就是比如现有一个数据{a:[1,2,3]},转成查询字符串后结果为'a=1&a=2&a=3' + //非传统的的结果则是a[]=1&a[]=2&a[]=3 + if (scope) key = traditional ? scope : scope + '[' + (array ? '' : key) + ']' + // handle data in serializeArray() format + //当处理的数据为[{},{},{}]这种情况的时候,一般指的是序列化表单后的结果 + if (!scope && array) params.add(value.name, value.value) + // recurse into nested objects + //当value值是数组或者是对象且不是按传统的方式序列化的时候,需要再次遍历value + else if (type == "array" || (!traditional && type == "object")) serialize(params, value, traditional, key) + else params.add(key, value) + }) + } + //将obj转换为查询字符串的格式,traditional表示是否转换成传统的方式,至于传统的方式的意思看上面的注释 + $.param = function(obj, traditional) { + var params = [] + //注意这里将add方法定到params,所以下面serialize时才不需要返回数据 + params.add = function(k, v) { + this.push(escape(k) + '=' + escape(v)) + } + serialize(params, obj, traditional) + return params.join('&').replace(/%20/g, '+') + } +})(Zepto) + +; +(function($) { + //序列化表单,返回一个类似[{name:value},{name2:value2}]的数组 + $.fn.serializeArray = function() { + var result = [], + el + //将集合中的第一个表单里的所有表单元素转成数组后进行遍历 + $(Array.prototype.slice.call(this.get(0).elements)).each(function() { + el = $(this) + var type = el.attr('type') + //判断其type属性,排除fieldset,submi,reset,button以及没有被选中的radio和checkbox + if (this.nodeName.toLowerCase() != 'fieldset' && !this.disabled && type != 'submit' && type != 'reset' && type != 'button' && + //注意这里的写法,当元素既不是radio也不是checkbox时,直接返回true, + //当元素是radio或者checkbox时,会执行后面的this.checked,当radio或者checkbox被选中时this.checked得到true值 + //这样就可以筛选中被选中的radio和checkbox了 + ((type != 'radio' && type != 'checkbox') || this.checked)) result.push({ + name: el.attr('name'), + value: el.val() + }) + }) + return result + } + //将表单的值转成name1=value1&name2=value2的形式 + $.fn.serialize = function() { + var result = [] + this.serializeArray().forEach(function(elm) { + result.push(encodeURIComponent(elm.name) + '=' + encodeURIComponent(elm.value)) + }) + return result.join('&') + } + //表单提交 + $.fn.submit = function(callback) { + if (callback) this.bind('submit', callback) + else if (this.length) { + var event = $.Event('submit') + this.eq(0).trigger(event) + if (!event.defaultPrevented) this.get(0).submit() + } + return this + } + +})(Zepto) + +//CSS3动画 +; +(function($, undefined) { + var prefix = '', + eventPrefix, endEventName, endAnimationName, + vendors = { + Webkit: 'webkit', + Moz: '', + O: 'o', + ms: 'MS' + }, + document = window.document, + testEl = document.createElement('div'), + supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i, + transform, + transitionProperty, transitionDuration, transitionTiming, + animationName, animationDuration, animationTiming, + cssReset = {} + //将驼峰式的字符串转成用-分隔的小写形式,如borderWidth ==> border-width + + function dasherize(str) { + return downcase(str.replace(/([a-z])([A-Z])/, '$1-$2')) + } + + function downcase(str) { + return str.toLowerCase() + } + //用于修正事件名 + + function normalizeEvent(name) { + return eventPrefix ? eventPrefix + name : downcase(name) + } + + //根据浏览器的特性设置CSS属性前轻辍和事件前辍,比如浏览器内核是webkit + //那么用于设置CSS属性的前辍prefix就等于'-webkit-',用来修正事件名的前辍eventPrefix就是Webkit + $.each(vendors, function(vendor, event) { + if (testEl.style[vendor + 'TransitionProperty'] !== undefined) { + prefix = '-' + downcase(vendor) + '-' + eventPrefix = event + return false + } + }) + + transform = prefix + 'transform' + cssReset[transitionProperty = prefix + 'transition-property'] = cssReset[transitionDuration = prefix + 'transition-duration'] = cssReset[transitionTiming = prefix + 'transition-timing-function'] = cssReset[animationName = prefix + 'animation-name'] = cssReset[animationDuration = prefix + 'animation-duration'] = cssReset[animationTiming = prefix + 'animation-timing-function'] = '' + + $.fx = { + off: (eventPrefix === undefined && testEl.style.transitionProperty === undefined), + speeds: { + _default: 400, + fast: 200, + slow: 600 + }, + cssPrefix: prefix, + transitionEnd: normalizeEvent('TransitionEnd'), + animationEnd: normalizeEvent('AnimationEnd') + } + + $.fn.animate = function(properties, duration, ease, callback) { + if ($.isPlainObject(duration)) ease = duration.easing, callback = duration.complete, duration = duration.duration + //如果duration是数字时,表示动画持续时间,如果是字符串,则从$.fx.speeds中取出相对应的值,如果没有找到相应的值,对取默认值 + if (duration) duration = (typeof duration == 'number' ? duration : ($.fx.speeds[duration] || $.fx.speeds._default)) / 1000 + return this.anim(properties, duration, ease, callback) + } + + $.fn.anim = function(properties, duration, ease, callback) { + var key, cssValues = {}, cssProperties, transforms = '', + that = this, + wrappedCallback, endEvent = $.fx.transitionEnd + //动画持续时间默认值 + if (duration === undefined) duration = 0.4 + //如果浏览器不支持CSS3的动画,则duration=0,意思就是直接跳转最终值 + if ($.fx.off) duration = 0 + + //如果properties是一个动画名keyframe + if (typeof properties == 'string') { + // keyframe animation + cssValues[animationName] = properties + cssValues[animationDuration] = duration + 's' + cssValues[animationTiming] = (ease || 'linear') + endEvent = $.fx.animationEnd + } else { + cssProperties = [] + // CSS transitions + for (key in properties) + //如果设置 的CSS属性是变形之类的 + if (supportedTransforms.test(key)) transforms += key + '(' + properties[key] + ') ' + else cssValues[key] = properties[key], cssProperties.push(dasherize(key)) + + if (transforms) cssValues[transform] = transforms, cssProperties.push(transform) + if (duration > 0 && typeof properties === 'object') { + cssValues[transitionProperty] = cssProperties.join(', ') + cssValues[transitionDuration] = duration + 's' + cssValues[transitionTiming] = (ease || 'linear') + } + } + + wrappedCallback = function(event) { + if (typeof event !== 'undefined') { + if (event.target !== event.currentTarget) return // makes sure the event didn't bubble from "below" + $(event.target).unbind(endEvent, wrappedCallback) + } + $(this).css(cssReset) + callback && callback.call(this) + } + //当可以执行动画的时候,那么动画结束后会执行回调, + //如果不支持持续动画,在直接设置最终值后,不会执行动画结束回调 + if (duration > 0) this.bind(endEvent, wrappedCallback) + + // trigger page reflow so new elements can animate + this.size() && this.get(0).clientLeft + + //设置 + this.css(cssValues) + + //当持续时间小于等于0时,立刻还原 + if (duration <= 0) setTimeout(function() { + that.each(function() { + wrappedCallback.call(this) + }) + }, 0) + + return this + } + + testEl = null +})(Zepto) +/** + * @import core/zepto-touch.js + * @file 提供简单的手势支持 + */ +// Zepto.js +// (c) 2010-2012 Thomas Fuchs +// Zepto.js may be freely distributed under the MIT license. + +;(function($){ + var touch = {}, + touchTimeout, tapTimeout, swipeTimeout, + longTapDelay = 750, longTapTimeout + + function parentIfText(node) { + return 'tagName' in node ? node : node.parentNode + } + + function swipeDirection(x1, x2, y1, y2) { + var xDelta = Math.abs(x1 - x2), yDelta = Math.abs(y1 - y2) + return xDelta >= yDelta ? (x1 - x2 > 0 ? 'Left' : 'Right') : (y1 - y2 > 0 ? 'Up' : 'Down') + } + + function longTap() { + longTapTimeout = null + if (touch.last) { + touch.el.trigger('longTap') + touch = {} + } + } + + function cancelLongTap() { + if (longTapTimeout) clearTimeout(longTapTimeout) + longTapTimeout = null + } + + function cancelAll() { + if (touchTimeout) clearTimeout(touchTimeout) + if (tapTimeout) clearTimeout(tapTimeout) + if (swipeTimeout) clearTimeout(swipeTimeout) + if (longTapTimeout) clearTimeout(longTapTimeout) + touchTimeout = tapTimeout = swipeTimeout = longTapTimeout = null + touch = {} + } + + $(document).ready(function(){ + var now, delta + + $(document.body) + .bind('touchstart', function(e){ + now = Date.now() + delta = now - (touch.last || now) + touch.el = $(parentIfText(e.touches[0].target)) + touchTimeout && clearTimeout(touchTimeout) + touch.x1 = e.touches[0].pageX + touch.y1 = e.touches[0].pageY + if (delta > 0 && delta <= 250) touch.isDoubleTap = true + touch.last = now + longTapTimeout = setTimeout(longTap, longTapDelay) + }) + .bind('touchmove', function(e){ + cancelLongTap() + touch.x2 = e.touches[0].pageX + touch.y2 = e.touches[0].pageY + }) + .bind('touchend', function(e){ + cancelLongTap() + + // swipe + if ((touch.x2 && Math.abs(touch.x1 - touch.x2) > 30) || + (touch.y2 && Math.abs(touch.y1 - touch.y2) > 30)) + + swipeTimeout = setTimeout(function() { + touch.el.trigger('swipe') + touch.el.trigger('swipe' + (swipeDirection(touch.x1, touch.x2, touch.y1, touch.y2))) + touch = {} + }, 0) + + // normal tap + else if ('last' in touch) + + // delay by one tick so we can cancel the 'tap' event if 'scroll' fires + // ('tap' fires before 'scroll') + tapTimeout = setTimeout(function() { + + // trigger universal 'tap' with the option to cancelTouch() + // (cancelTouch cancels processing of single vs double taps for faster 'tap' response) + var event = $.Event('tap') + event.cancelTouch = cancelAll + touch.el.trigger(event) + + // trigger double tap immediately + if (touch.isDoubleTap) { + touch.el.trigger('doubleTap') + touch = {} + } + + // trigger single tap after 250ms of inactivity + else { + touchTimeout = setTimeout(function(){ + touchTimeout = null + touch.el.trigger('singleTap') + touch = {} + }, 250) + } + + }, 0) + + }) + .bind('touchcancel', cancelAll) + + $(window).bind('scroll', cancelAll) + }) + ;['swipe', 'swipeLeft', 'swipeRight', 'swipeUp', 'swipeDown', 'doubleTap', 'tap', 'singleTap', 'longTap'].forEach(function(m){ + $.fn[m] = function(callback){ return this.bind(m, callback) } + }) + if('ontouchstart' in window){ + //如果是触摸屏,则将click转为tap + $.fn["click"] = $.fn["tap"]; + }else{ + // 如果是pc端访问,将tap事件转换为click事件 + $.fn["tap"] = $.fn["click"]; + } + var QueryString = function () { + // This function is anonymous, is executed immediately and + // the return value is assigned to QueryString! + var query_string = {}; + var query = decodeURIComponent(window.location.search.substring(1)); + var vars = query.split("&"); + for (var i=0;i mJsInterfaceMap = new HashMap(); + private String mJsStringCache = null; + + public WebViewEx(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + init(context); + } + + public WebViewEx(Context context, AttributeSet attrs) { + super(context, attrs); + init(context); + } + + public WebViewEx(Context context) { + super(context); + init(context); + } + + private void init(Context context) { + // 添加默认的Client + super.setWebChromeClient(new WebChromeClientEx()); + super.setWebViewClient(new WebViewClientEx()); + + // 删除掉Android默认注册的JS接口 + removeSearchBoxImpl(); + } + + @Override + public void addJavascriptInterface(Object obj, String interfaceName) { + if (TextUtils.isEmpty(interfaceName)) { + return; + } + + // 如果在4.2以上,直接调用基类的方法来注册 + if (hasJellyBeanMR1()) { + super.addJavascriptInterface(obj, interfaceName); + } else { + mJsInterfaceMap.put(interfaceName, obj); + } + } + + @Override + public void removeJavascriptInterface(String interfaceName) { + if (hasJellyBeanMR1()) { + super.removeJavascriptInterface(interfaceName); + } else { + mJsInterfaceMap.remove(interfaceName); + mJsStringCache = null; + injectJavascriptInterfaces(); + } + } + + private boolean removeSearchBoxImpl() { + if (hasHoneycomb() && !hasJellyBeanMR1()) { + super.removeJavascriptInterface("searchBoxJavaBridge_"); + return true; + } + + return false; + } + + private void injectJavascriptInterfaces() { + if (!TextUtils.isEmpty(mJsStringCache)) { + loadJavascriptInterfaces(); + return; + } + + String jsString = genJavascriptInterfacesString(); + mJsStringCache = jsString; + loadJavascriptInterfaces(); + } + + private void injectJavascriptInterfaces(WebView webView) { + if (webView instanceof WebViewEx) { + injectJavascriptInterfaces(); + } + } + + private void loadJavascriptInterfaces() { + this.loadUrl(mJsStringCache); + } + + private String genJavascriptInterfacesString() { + if (mJsInterfaceMap.size() == 0) { + mJsStringCache = null; + return null; + } + + /* + * 要注入的JS的格式,其中XXX为注入的对象的方法名,例如注入的对象中有一个方法A,那么这个XXX就是A + * 如果这个对象中有多个方法,则会注册多个window.XXX_js_interface_name块,我们是用反射的方法遍历 + * 注入对象中的所有带有@JavaScripterInterface标注的方法 + * + * javascript:(function JsAddJavascriptInterface_(){ + * if(typeof(window.XXX_js_interface_name)!='undefined'){ + * console.log('window.XXX_js_interface_name is exist!!'); + * }else{ + * window.XXX_js_interface_name={ + * XXX:function(arg0,arg1){ + * return prompt('MyApp:'+JSON.stringify({obj:'XXX_js_interface_name',func:'XXX_',args:[arg0,arg1]})); + * }, + * }; + * } + * })() + */ + + Iterator> iterator = mJsInterfaceMap.entrySet().iterator(); + // Head + StringBuilder script = new StringBuilder(); + script.append("javascript:(function JsAddJavascriptInterface_(){"); + + // Add methods + try { + while (iterator.hasNext()) { + Entry entry = iterator.next(); + String interfaceName = entry.getKey(); + Object obj = entry.getValue(); + + createJsMethod(interfaceName, obj, script); + } + } catch (Exception e) { + e.printStackTrace(); + } + + // End + script.append("})()"); + + return script.toString(); + } + + private void createJsMethod(String interfaceName, Object obj, StringBuilder script) { + if (TextUtils.isEmpty(interfaceName) || (null == obj) || (null == script)) { + return; + } + + Class objClass = obj.getClass(); + + script.append("if(typeof(window.").append(interfaceName).append(")!='undefined'){"); + if (DEBUG) { + script.append(" console.log('window." + interfaceName + "_js_interface_name is exist!!');"); + } + + script.append("}else {"); + script.append(" window.").append(interfaceName).append("={"); + + // Add methods + Method[] methods = objClass.getMethods(); + for (Method method : methods) { + String methodName = method.getName(); + // 过滤掉Object类的方法,包括getClass()方法,因为在Js中就是通过getClass()方法来得到Runtime实例 + if (filterMethods(methodName)) { + continue; + } + + script.append(" ").append(methodName).append(":function("); + // 添加方法的参数 + int argCount = method.getParameterTypes().length; + if (argCount > 0) { + int maxCount = argCount - 1; + for (int i = 0; i < maxCount; ++i) { + script.append(VAR_ARG_PREFIX).append(i).append(","); + } + script.append(VAR_ARG_PREFIX).append(argCount - 1); + } + + script.append(") {"); + + // Add implementation + if (method.getReturnType() != void.class) { + script.append(" return ").append("prompt('").append(MSG_PROMPT_HEADER).append("'+"); + } else { + script.append(" prompt('").append(MSG_PROMPT_HEADER).append("'+"); + } + + // Begin JSON + script.append("JSON.stringify({"); + script.append(KEY_INTERFACE_NAME).append(":'").append(interfaceName).append("',"); + script.append(KEY_FUNCTION_NAME).append(":'").append(methodName).append("',"); + script.append(KEY_ARG_ARRAY).append(":["); + // 添加参数到JSON串中 + if (argCount > 0) { + int max = argCount - 1; + for (int i = 0; i < max; i++) { + script.append(VAR_ARG_PREFIX).append(i).append(","); + } + script.append(VAR_ARG_PREFIX).append(max); + } + + // End JSON + script.append("]})"); + // End prompt + script.append(");"); + // End function + script.append(" }, "); + } + + // End of obj + script.append(" };"); + // End of if or else + script.append("}"); + } + + private boolean handleJsInterface(WebView view, String url, String message, String defaultValue, + JsPromptResult result) { + String prefix = MSG_PROMPT_HEADER; + if (!message.startsWith(prefix)) { + return false; + } + + String jsonStr = message.substring(prefix.length()); + try { + JSONObject jsonObj = new JSONObject(jsonStr); + String interfaceName = jsonObj.getString(KEY_INTERFACE_NAME); + String methodName = jsonObj.getString(KEY_FUNCTION_NAME); + JSONArray argsArray = jsonObj.getJSONArray(KEY_ARG_ARRAY); + Object[] args = null; + if (null != argsArray) { + int count = argsArray.length(); + if (count > 0) { + args = new Object[count]; + + for (int i = 0; i < count; ++i) { + args[i] = argsArray.get(i); + } + } + } + + if (invokeJSInterfaceMethod(result, interfaceName, methodName, args)) { + return true; + } + } catch (Exception e) { + e.printStackTrace(); + } + + result.cancel(); + return false; + } + + private boolean invokeJSInterfaceMethod(JsPromptResult result, + String interfaceName, String methodName, Object[] args) { + + boolean succeed = false; + final Object obj = mJsInterfaceMap.get(interfaceName); + if (null == obj) { + result.cancel(); + return false; + } + + Class[] parameterTypes = null; + int count = 0; + if (args != null) { + count = args.length; + } + + if (count > 0) { + parameterTypes = new Class[count]; + for (int i = 0; i < count; ++i) { + parameterTypes[i] = getClassFromJsonObject(args[i]); + } + } + + try { + Method method = obj.getClass().getMethod(methodName, parameterTypes); + Object returnObj = method.invoke(obj, args); // 执行接口调用 + boolean isVoid = returnObj == null || returnObj.getClass() == void.class; + String returnValue = isVoid ? "" : returnObj.toString(); + result.confirm(returnValue); // 通过prompt返回调用结果 + succeed = true; + } catch (NoSuchMethodException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } + + result.cancel(); + return succeed; + } + + private Class getClassFromJsonObject(Object obj) { + Class cls = obj.getClass(); + + // js对象只支持int boolean string三种类型 + if (cls == Integer.class) { + cls = Integer.TYPE; + } else if (cls == Boolean.class) { + cls = Boolean.TYPE; + } else { + cls = String.class; + } + + return cls; + } + + private boolean filterMethods(String methodName) { + for (String method : mFilterMethods) { + if (method.equals(methodName)) { + return true; + } + } + + return false; + } + + private boolean hasHoneycomb() { + return Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB; + } + + private boolean hasJellyBeanMR1() { + return Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1; + } + + private class WebChromeClientEx extends WebChromeClient { + @Override + public final void onProgressChanged(WebView view, int newProgress) { + injectJavascriptInterfaces(view); + super.onProgressChanged(view, newProgress); + } + + @Override + public final boolean onJsPrompt(WebView view, String url, String message, + String defaultValue, JsPromptResult result) { + if (view instanceof WebViewEx) { + if (handleJsInterface(view, url, message, defaultValue, result)) { + return true; + } + } + + return super.onJsPrompt(view, url, message, defaultValue, result); + } + + @Override + public final void onReceivedTitle(WebView view, String title) { + injectJavascriptInterfaces(view); + } + } + + private class WebViewClientEx extends WebViewClient { + @Override + public void onLoadResource(WebView view, String url) { + injectJavascriptInterfaces(view); + super.onLoadResource(view, url); + } + + @Override + public void doUpdateVisitedHistory(WebView view, String url, boolean isReload) { + injectJavascriptInterfaces(view); + super.doUpdateVisitedHistory(view, url, isReload); + } + + @Override + public void onPageStarted(WebView view, String url, Bitmap favicon) { + injectJavascriptInterfaces(view); + super.onPageStarted(view, url, favicon); + } + + @Override + public void onPageFinished(WebView view, String url) { + injectJavascriptInterfaces(view); + super.onPageFinished(view, url); + } + } +} diff --git a/sample/src/main/res/layout/activity_main.xml b/sample/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..f864bea --- /dev/null +++ b/sample/src/main/res/layout/activity_main.xml @@ -0,0 +1,10 @@ + + + + + \ No newline at end of file diff --git a/sample/src/main/res/layout/activity_show_bug.xml b/sample/src/main/res/layout/activity_show_bug.xml new file mode 100644 index 0000000..1607e38 --- /dev/null +++ b/sample/src/main/res/layout/activity_show_bug.xml @@ -0,0 +1,45 @@ + + + + + +