From 860aa095f592a24fcdb12b8434cee4b6d3641265 Mon Sep 17 00:00:00 2001 From: Hu Shenghao Date: Sat, 11 Nov 2023 17:26:50 +0800 Subject: [PATCH 01/30] feat: Compose placeholder impl --- app/build.gradle.kts | 21 ++- app/src/main/AndroidManifest.xml | 2 +- .../android_eggs/main/PlaceholderActivity.kt | 77 ----------- .../views/placeholder/PlaceholderActivity.kt | 110 ++++++++++++++++ .../views/settings/prefs/DynamicColorPref.kt | 18 ++- .../views/settings/prefs/NightModePref.kt | 6 +- .../dede/android_eggs/views/theme/Color.kt | 68 ++++++++++ .../dede/android_eggs/views/theme/Theme.kt | 124 ++++++++++++++++++ app/src/main/res/xml/split_configuration.xml | 2 +- gradle/libs.versions.toml | 4 +- 10 files changed, 348 insertions(+), 84 deletions(-) delete mode 100644 app/src/main/java/com/dede/android_eggs/main/PlaceholderActivity.kt create mode 100644 app/src/main/java/com/dede/android_eggs/views/placeholder/PlaceholderActivity.kt create mode 100644 app/src/main/java/com/dede/android_eggs/views/theme/Color.kt create mode 100644 app/src/main/java/com/dede/android_eggs/views/theme/Theme.kt diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 82ff51f1..53f0727a 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -50,6 +50,14 @@ android { } } + buildFeatures { + compose = true + } + + composeOptions { + kotlinCompilerExtensionVersion = libs.versions.compose.kotlin.compiler.get() + } + signingConfigs { if (keyprops.isEmpty) return@signingConfigs create("release") { @@ -108,13 +116,22 @@ dependencies { implementation(libs.androidx.window) implementation(libs.google.material) implementation(libs.androidx.startup) + implementation(libs.hilt.android) + kapt(libs.hilt.compiler) + implementation(libs.androidx.activity.compose) + implementation(platform(libs.androidx.compose.bom)) + implementation(libs.androidx.compose.ui) + implementation(libs.androidx.compose.ui.util) + implementation(libs.androidx.compose.material3) + implementation(libs.androidx.compose.ui.tooling.preview) + debugImplementation(libs.androidx.compose.ui.tooling) + implementation(libs.io.coil) implementation(libs.free.reflection) implementation(libs.viewbinding.delegate) implementation(libs.blurhash.android) - implementation(libs.hilt.android) - kapt(libs.hilt.compiler) debugImplementation(libs.squareup.leakcanary) + implementation(project(":basic")) implementation(project(":eggs:U")) implementation(project(":eggs:T")) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 06097293..8299c968 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -89,7 +89,7 @@ android:name="android.app.shortcuts" android:resource="@xml/shortcuts" /> - + \ No newline at end of file diff --git a/app/src/main/java/com/dede/android_eggs/main/PlaceholderActivity.kt b/app/src/main/java/com/dede/android_eggs/main/PlaceholderActivity.kt deleted file mode 100644 index 510ddc03..00000000 --- a/app/src/main/java/com/dede/android_eggs/main/PlaceholderActivity.kt +++ /dev/null @@ -1,77 +0,0 @@ -package com.dede.android_eggs.main - -import android.graphics.drawable.ColorDrawable -import android.os.Bundle -import android.view.Gravity -import android.widget.FrameLayout -import android.widget.ImageView -import androidx.appcompat.app.AppCompatActivity -import com.dede.android_eggs.R -import com.dede.android_eggs.ui.drawables.AlterableAdaptiveIconDrawable -import com.dede.android_eggs.util.EdgeUtils -import com.dede.android_eggs.util.LocalEvent -import com.dede.android_eggs.util.ThemeUtils -import com.dede.android_eggs.util.resolveColor -import com.dede.android_eggs.views.settings.prefs.NightModePref.Companion.ACTION_NIGHT_MODE_CHANGED -import com.dede.basic.dp -import dagger.hilt.android.AndroidEntryPoint -import javax.inject.Inject -import kotlin.random.Random -import com.google.android.material.R as M3R - -/** - * Split Placeholder - * - * @author shhu - * @since 2023/5/22 - */ -@AndroidEntryPoint -class PlaceholderActivity : AppCompatActivity() { - - @Inject - lateinit var iconRes: IntArray - - override fun onCreate(savedInstanceState: Bundle?) { - ThemeUtils.tryApplyOLEDTheme(this) - EdgeUtils.applyEdge(window) - super.onCreate(savedInstanceState) - - val drawable = AlterableAdaptiveIconDrawable(this, randomRes(), randomPath()) - val imageView = ImageView(this).apply { - setImageDrawable(drawable) - scaleX = 0.5f - scaleY = 0.5f - alpha = 0f - animate() - .scaleX(1f) - .scaleY(1f) - .alpha(1f) - .setDuration(300L) - .start() - } - val params = FrameLayout.LayoutParams(56.dp, 56.dp).apply { - gravity = Gravity.CENTER - } - setContentView(imageView, params) - - window.setBackgroundDrawable(ColorDrawable(resolveColor(M3R.attr.colorSurface))) - - LocalEvent.receiver(this) - .register(ACTION_NIGHT_MODE_CHANGED) { - recreate() - } - } - - private fun randomRes(): Int { - val array = iconRes - val index = Random.nextInt(array.size) - return array[index] - } - - private fun randomPath(): String { - val array = resources.getStringArray(R.array.icon_shape_override_paths) - // 排除第一个 - val index = Random.nextInt(array.size - 1) + 1 - return array[index] - } -} \ No newline at end of file diff --git a/app/src/main/java/com/dede/android_eggs/views/placeholder/PlaceholderActivity.kt b/app/src/main/java/com/dede/android_eggs/views/placeholder/PlaceholderActivity.kt new file mode 100644 index 00000000..baa9253c --- /dev/null +++ b/app/src/main/java/com/dede/android_eggs/views/placeholder/PlaceholderActivity.kt @@ -0,0 +1,110 @@ +package com.dede.android_eggs.views.placeholder + +import android.os.Bundle +import androidx.activity.compose.setContent +import androidx.appcompat.app.AppCompatActivity +import androidx.compose.animation.AnimatedVisibility +import androidx.compose.animation.core.MutableTransitionState +import androidx.compose.animation.core.tween +import androidx.compose.animation.fadeIn +import androidx.compose.animation.scaleIn +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.material3.MaterialTheme.colorScheme +import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.asImageBitmap +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.core.graphics.drawable.toBitmap +import com.dede.android_eggs.R +import com.dede.android_eggs.ui.drawables.AlterableAdaptiveIconDrawable +import com.dede.android_eggs.util.EdgeUtils +import com.dede.android_eggs.util.LocalEvent +import com.dede.android_eggs.views.settings.prefs.DynamicColorPref +import com.dede.android_eggs.views.settings.prefs.NightModePref +import com.dede.android_eggs.views.theme.AppTheme +import com.dede.basic.dp +import dagger.hilt.android.AndroidEntryPoint +import javax.inject.Inject +import kotlin.random.Random + +@AndroidEntryPoint +class PlaceholderActivity : AppCompatActivity() { + + @Inject + lateinit var iconRes: IntArray + + override fun onCreate(savedInstanceState: Bundle?) { + EdgeUtils.applyEdge(window) + super.onCreate(savedInstanceState) + + setContent { + AppTheme { + Placeholder(randomRes(), randomPath()) + } + } + + with(LocalEvent.receiver(this)) { + register(NightModePref.ACTION_NIGHT_MODE_CHANGED) { + recreate() + } + register(DynamicColorPref.ACTION_DYNAMIC_COLOR_CHANGED) { + recreate() + } + } + + } + + private fun randomRes(): Int { + val array = iconRes + val index = Random.nextInt(array.size) + return array[index] + } + + private fun randomPath(): String { + val array = resources.getStringArray(R.array.icon_shape_override_paths) + // 排除第一个 + val index = Random.nextInt(array.size - 1) + 1 + return array[index] + } + +} + +@Composable +fun Placeholder(res: Int, mask: String? = null) { + val drawable = AlterableAdaptiveIconDrawable(LocalContext.current, res, mask) + val bitmap = drawable.toBitmap(56.dp, 56.dp) + Box( + contentAlignment = Alignment.Center, + modifier = Modifier + .fillMaxSize() + .background(colorScheme.surface) + ) { + AnimatedVisibility( + visibleState = remember { MutableTransitionState(false) } + .apply { targetState = true }, + enter = scaleIn( + initialScale = 0.0f, + animationSpec = tween(500, delayMillis = 100) + ) + fadeIn(animationSpec = tween(500, delayMillis = 100)), + ) { + Image( + bitmap = bitmap.asImageBitmap(), + contentDescription = stringResource(R.string.app_name), + ) + } + } +} + +@Preview +@Composable +fun PreviewPlaceholder() { + Placeholder(R.mipmap.ic_launcher_round) +} + diff --git a/app/src/main/java/com/dede/android_eggs/views/settings/prefs/DynamicColorPref.kt b/app/src/main/java/com/dede/android_eggs/views/settings/prefs/DynamicColorPref.kt index e9c6a36b..7c4ffe7f 100644 --- a/app/src/main/java/com/dede/android_eggs/views/settings/prefs/DynamicColorPref.kt +++ b/app/src/main/java/com/dede/android_eggs/views/settings/prefs/DynamicColorPref.kt @@ -3,9 +3,11 @@ package com.dede.android_eggs.views.settings.prefs import android.app.Activity import android.app.Application import android.content.Context +import androidx.activity.ComponentActivity import androidx.appcompat.app.AppCompatActivity import com.dede.android_eggs.R import com.dede.android_eggs.ui.Icons +import com.dede.android_eggs.util.LocalEvent import com.dede.android_eggs.views.settings.SettingPref import com.dede.android_eggs.views.settings.SettingPref.Op.Companion.isEnable import com.google.android.material.color.DynamicColors @@ -20,9 +22,19 @@ class DynamicColorPref : SettingPref( Op(Op.ON, titleRes = R.string.preference_on, iconUnicode = Icons.Rounded.palette), Op(Op.OFF, titleRes = R.string.preference_off) ), - if (DynamicColors.isDynamicColorAvailable()) Op.ON else Op.OFF + DEFAULT ), DynamicColors.Precondition, DynamicColors.OnAppliedCallback { + companion object { + + const val ACTION_DYNAMIC_COLOR_CHANGED = "ACTION_DYNAMIC_COLOR_CHANGED" + + private val DEFAULT = if (DynamicColors.isDynamicColorAvailable()) Op.ON else Op.OFF + fun isDynamicEnable(context: Context): Boolean { + return DynamicColorPref().getValue(context, DEFAULT) == Op.ON + } + } + override val titleRes: Int get() = R.string.pref_title_dynamic_color override val enable: Boolean @@ -32,6 +44,7 @@ class DynamicColorPref : SettingPref( private var isOptionOn = false override fun apply(context: Context, option: Op) { + val old = isOptionOn isOptionOn = option.isEnable() if (isOptionOn && !isApplied) { DynamicColors.applyToActivitiesIfAvailable( @@ -44,6 +57,9 @@ class DynamicColorPref : SettingPref( isApplied = true } recreateActivityIfPossible(context) + if (old != isOptionOn) { + LocalEvent.poster(context).post(ACTION_DYNAMIC_COLOR_CHANGED) + } } override fun shouldApplyDynamicColors(activity: Activity, theme: Int): Boolean { diff --git a/app/src/main/java/com/dede/android_eggs/views/settings/prefs/NightModePref.kt b/app/src/main/java/com/dede/android_eggs/views/settings/prefs/NightModePref.kt index e02e7367..a7175bb6 100644 --- a/app/src/main/java/com/dede/android_eggs/views/settings/prefs/NightModePref.kt +++ b/app/src/main/java/com/dede/android_eggs/views/settings/prefs/NightModePref.kt @@ -27,12 +27,16 @@ class NightModePref : SettingPref( ) { companion object { - private const val OLED = -2 + const val OLED = -2 const val ACTION_NIGHT_MODE_CHANGED = "action_night_mode_changed" fun isOLEDMode(context: Context): Boolean { return NightModePref().getValue(context, SYSTEM) == OLED } + + fun getNightModeValue(context: Context): Int { + return NightModePref().getValue(context, SYSTEM) + } } override val titleRes: Int diff --git a/app/src/main/java/com/dede/android_eggs/views/theme/Color.kt b/app/src/main/java/com/dede/android_eggs/views/theme/Color.kt new file mode 100644 index 00000000..deb04625 --- /dev/null +++ b/app/src/main/java/com/dede/android_eggs/views/theme/Color.kt @@ -0,0 +1,68 @@ +package com.dede.android_eggs.views.theme + +import androidx.compose.ui.graphics.Color + +val md_theme_light_primary = Color(0xFF6750A4) +val md_theme_light_onPrimary = Color(0xFFFFFFFF) +val md_theme_light_primaryContainer = Color(0xFFEADDFF) +val md_theme_light_onPrimaryContainer = Color(0xFF21005D) +val md_theme_light_secondary = Color(0xFF625B71) +val md_theme_light_onSecondary = Color(0xFFFFFFFF) +val md_theme_light_secondaryContainer = Color(0xFFE8DEF8) +val md_theme_light_onSecondaryContainer = Color(0xFF1D192B) +val md_theme_light_tertiary = Color(0xFF7D5260) +val md_theme_light_onTertiary = Color(0xFFFFFFFF) +val md_theme_light_tertiaryContainer = Color(0xFFFFD8E4) +val md_theme_light_onTertiaryContainer = Color(0xFF31111D) +val md_theme_light_error = Color(0xFFB3261E) +val md_theme_light_onError = Color(0xFFFFFFFF) +val md_theme_light_errorContainer = Color(0xFFF9DEDC) +val md_theme_light_onErrorContainer = Color(0xFF410E0B) +val md_theme_light_outline = Color(0xFF79747E) +val md_theme_light_background = Color(0xFFFFFBFE) +val md_theme_light_onBackground = Color(0xFF1C1B1F) +val md_theme_light_surface = Color(0xFFFFFBFE) +val md_theme_light_onSurface = Color(0xFF1C1B1F) +val md_theme_light_surfaceVariant = Color(0xFFE7E0EC) +val md_theme_light_onSurfaceVariant = Color(0xFF49454F) +val md_theme_light_inverseSurface = Color(0xFF313033) +val md_theme_light_inverseOnSurface = Color(0xFFF4EFF4) +val md_theme_light_inversePrimary = Color(0xFFD0BCFF) +val md_theme_light_shadow = Color(0xFF000000) +val md_theme_light_surfaceTint = Color(0xFF6750A4) +val md_theme_light_outlineVariant = Color(0xFFCAC4D0) +val md_theme_light_scrim = Color(0xFF000000) + +val md_theme_dark_primary = Color(0xFFD0BCFF) +val md_theme_dark_onPrimary = Color(0xFF381E72) +val md_theme_dark_primaryContainer = Color(0xFF4F378B) +val md_theme_dark_onPrimaryContainer = Color(0xFFEADDFF) +val md_theme_dark_secondary = Color(0xFFCCC2DC) +val md_theme_dark_onSecondary = Color(0xFF332D41) +val md_theme_dark_secondaryContainer = Color(0xFF4A4458) +val md_theme_dark_onSecondaryContainer = Color(0xFFE8DEF8) +val md_theme_dark_tertiary = Color(0xFFEFB8C8) +val md_theme_dark_onTertiary = Color(0xFF492532) +val md_theme_dark_tertiaryContainer = Color(0xFF633B48) +val md_theme_dark_onTertiaryContainer = Color(0xFFFFD8E4) +val md_theme_dark_error = Color(0xFFF2B8B5) +val md_theme_dark_onError = Color(0xFF601410) +val md_theme_dark_errorContainer = Color(0xFF8C1D18) +val md_theme_dark_onErrorContainer = Color(0xFFF9DEDC) +val md_theme_dark_outline = Color(0xFF938F99) +val md_theme_dark_background = Color(0xFF1C1B1F) +val md_theme_dark_onBackground = Color(0xFFE6E1E5) +val md_theme_dark_surface = Color(0xFF1C1B1F) +val md_theme_dark_onSurface = Color(0xFFE6E1E5) +val md_theme_dark_surfaceVariant = Color(0xFF49454F) +val md_theme_dark_onSurfaceVariant = Color(0xFFCAC4D0) +val md_theme_dark_inverseSurface = Color(0xFFE6E1E5) +val md_theme_dark_inverseOnSurface = Color(0xFF313033) +val md_theme_dark_inversePrimary = Color(0xFF6750A4) +val md_theme_dark_shadow = Color(0xFF000000) +val md_theme_dark_surfaceTint = Color(0xFFD0BCFF) +val md_theme_dark_outlineVariant = Color(0xFF49454F) +val md_theme_dark_scrim = Color(0xFF000000) + + +val seed = Color(0xFF6750A4) diff --git a/app/src/main/java/com/dede/android_eggs/views/theme/Theme.kt b/app/src/main/java/com/dede/android_eggs/views/theme/Theme.kt new file mode 100644 index 00000000..fba6f5d4 --- /dev/null +++ b/app/src/main/java/com/dede/android_eggs/views/theme/Theme.kt @@ -0,0 +1,124 @@ +@file:Suppress("PrivatePropertyName") + +package com.dede.android_eggs.views.theme + +import android.content.Context +import android.os.Build +import androidx.appcompat.app.AppCompatDelegate +import androidx.compose.foundation.isSystemInDarkTheme +import androidx.compose.material3.ColorScheme +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.darkColorScheme +import androidx.compose.material3.dynamicDarkColorScheme +import androidx.compose.material3.dynamicLightColorScheme +import androidx.compose.material3.lightColorScheme +import androidx.compose.runtime.Composable +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.platform.LocalContext +import com.dede.android_eggs.views.settings.prefs.DynamicColorPref +import com.dede.android_eggs.views.settings.prefs.NightModePref + + +private val LightColors = lightColorScheme( + primary = md_theme_light_primary, + onPrimary = md_theme_light_onPrimary, + primaryContainer = md_theme_light_primaryContainer, + onPrimaryContainer = md_theme_light_onPrimaryContainer, + secondary = md_theme_light_secondary, + onSecondary = md_theme_light_onSecondary, + secondaryContainer = md_theme_light_secondaryContainer, + onSecondaryContainer = md_theme_light_onSecondaryContainer, + tertiary = md_theme_light_tertiary, + onTertiary = md_theme_light_onTertiary, + tertiaryContainer = md_theme_light_tertiaryContainer, + onTertiaryContainer = md_theme_light_onTertiaryContainer, + error = md_theme_light_error, + onError = md_theme_light_onError, + errorContainer = md_theme_light_errorContainer, + onErrorContainer = md_theme_light_onErrorContainer, + outline = md_theme_light_outline, + background = md_theme_light_background, + onBackground = md_theme_light_onBackground, + surface = md_theme_light_surface, + onSurface = md_theme_light_onSurface, + surfaceVariant = md_theme_light_surfaceVariant, + onSurfaceVariant = md_theme_light_onSurfaceVariant, + inverseSurface = md_theme_light_inverseSurface, + inverseOnSurface = md_theme_light_inverseOnSurface, + inversePrimary = md_theme_light_inversePrimary, + surfaceTint = md_theme_light_surfaceTint, + outlineVariant = md_theme_light_outlineVariant, + scrim = md_theme_light_scrim, +) + + +private val DarkColors = darkColorScheme( + primary = md_theme_dark_primary, + onPrimary = md_theme_dark_onPrimary, + primaryContainer = md_theme_dark_primaryContainer, + onPrimaryContainer = md_theme_dark_onPrimaryContainer, + secondary = md_theme_dark_secondary, + onSecondary = md_theme_dark_onSecondary, + secondaryContainer = md_theme_dark_secondaryContainer, + onSecondaryContainer = md_theme_dark_onSecondaryContainer, + tertiary = md_theme_dark_tertiary, + onTertiary = md_theme_dark_onTertiary, + tertiaryContainer = md_theme_dark_tertiaryContainer, + onTertiaryContainer = md_theme_dark_onTertiaryContainer, + error = md_theme_dark_error, + onError = md_theme_dark_onError, + errorContainer = md_theme_dark_errorContainer, + onErrorContainer = md_theme_dark_onErrorContainer, + outline = md_theme_dark_outline, + background = md_theme_dark_background, + onBackground = md_theme_dark_onBackground, + surface = md_theme_dark_surface, + onSurface = md_theme_dark_onSurface, + surfaceVariant = md_theme_dark_surfaceVariant, + onSurfaceVariant = md_theme_dark_onSurfaceVariant, + inverseSurface = md_theme_dark_inverseSurface, + inverseOnSurface = md_theme_dark_inverseOnSurface, + inversePrimary = md_theme_dark_inversePrimary, + surfaceTint = md_theme_dark_surfaceTint, + outlineVariant = md_theme_dark_outlineVariant, + scrim = md_theme_dark_scrim, +) + +fun ColorScheme.toOLEDColors(): ColorScheme { + return this.copy( + surface = Color.Black, + surfaceVariant = md_theme_dark_surface + ) +} + +@Composable +fun AppTheme( + content: @Composable () -> Unit +) { + val context: Context = LocalContext.current + var nightModeValue = NightModePref.getNightModeValue(context) + if (nightModeValue == AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM) { + nightModeValue = + if (isSystemInDarkTheme()) AppCompatDelegate.MODE_NIGHT_YES else AppCompatDelegate.MODE_NIGHT_NO + } + + val colors = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S && + DynamicColorPref.isDynamicEnable(context)) { + when (nightModeValue) { + NightModePref.OLED -> dynamicDarkColorScheme(context).toOLEDColors() + AppCompatDelegate.MODE_NIGHT_YES -> dynamicDarkColorScheme(context) + else -> dynamicLightColorScheme(context) + } + } else { + when (nightModeValue) { + NightModePref.OLED -> DarkColors.toOLEDColors() + AppCompatDelegate.MODE_NIGHT_YES -> DarkColors + else -> LightColors + } + } + + MaterialTheme( + colorScheme = colors, + content = content + ) +} \ No newline at end of file diff --git a/app/src/main/res/xml/split_configuration.xml b/app/src/main/res/xml/split_configuration.xml index b9f5db7c..53ca439f 100644 --- a/app/src/main/res/xml/split_configuration.xml +++ b/app/src/main/res/xml/split_configuration.xml @@ -56,7 +56,7 @@ not available. --> diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 7f3c4a6c..a6e2b607 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -18,7 +18,6 @@ kotlinx-coroutines-android = "org.jetbrains.kotlinx:kotlinx-coroutines-android:1 androidx-appcompat = "androidx.appcompat:appcompat:1.6.1" androidx-core = "androidx.core:core-ktx:1.12.0" androidx-activity = "androidx.activity:activity-ktx:1.8.0" -androidx-activity-compose = "androidx.activity:activity-compose:1.8.0" androidx-lifecycle-viewmodel = "androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2" androidx-lifecycle-runtime = "androidx.lifecycle:lifecycle-runtime-ktx:2.6.2" androidx-recyclerview = "androidx.recyclerview:recyclerview:1.3.2" @@ -31,11 +30,14 @@ androidx-window = "androidx.window:window:1.1.0" google-material = "com.google.android.material:material:1.11.0-beta01" androidx-startup = "androidx.startup:startup-runtime:1.1.1" +androidx-activity-compose = "androidx.activity:activity-compose:1.8.0" androidx-compose-bom = "androidx.compose:compose-bom:2023.10.01" androidx-compose-ui = { module = "androidx.compose.ui:ui" } androidx-compose-ui-util = { module = "androidx.compose.ui:ui-util" } +androidx-compose-ui-tooling = {module="androidx.compose.ui:ui-tooling"} androidx-compose-ui-tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview" } androidx-compose-material = { module = "androidx.compose.material:material" } +androidx-compose-material3 = { module = "androidx.compose.material3:material3" } hilt-android = { module = "com.google.dagger:hilt-android", version.ref = "hilt" } hilt-compiler = { module = "com.google.dagger:hilt-compiler", version.ref = "hilt" } From 10eb977e1ac4c8cfdccad101d66786de73fa95ef Mon Sep 17 00:00:00 2001 From: Hu Shenghao Date: Sat, 11 Nov 2023 22:05:43 +0800 Subject: [PATCH 02/30] feat: Compose Main list --- app/build.gradle.kts | 1 + app/src/main/AndroidManifest.xml | 2 +- .../views/main/EasterEggsActivity.kt | 285 ++++++++++++++++++ app/src/main/res/xml/split_configuration.xml | 30 +- 4 files changed, 302 insertions(+), 16 deletions(-) create mode 100644 app/src/main/java/com/dede/android_eggs/views/main/EasterEggsActivity.kt diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 53f0727a..0e1689a1 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -122,6 +122,7 @@ dependencies { implementation(platform(libs.androidx.compose.bom)) implementation(libs.androidx.compose.ui) implementation(libs.androidx.compose.ui.util) + implementation(libs.androidx.compose.material) implementation(libs.androidx.compose.material3) implementation(libs.androidx.compose.ui.tooling.preview) debugImplementation(libs.androidx.compose.ui.tooling) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 8299c968..3469c8cc 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -63,7 +63,7 @@ diff --git a/app/src/main/java/com/dede/android_eggs/views/main/EasterEggsActivity.kt b/app/src/main/java/com/dede/android_eggs/views/main/EasterEggsActivity.kt new file mode 100644 index 00000000..e705e78f --- /dev/null +++ b/app/src/main/java/com/dede/android_eggs/views/main/EasterEggsActivity.kt @@ -0,0 +1,285 @@ +@file:OptIn(ExperimentalMaterial3Api::class, ExperimentalMaterialApi::class) + +package com.dede.android_eggs.views.main + +import android.os.Bundle +import androidx.activity.compose.setContent +import androidx.appcompat.app.AppCompatActivity +import androidx.compose.animation.core.Animatable +import androidx.compose.animation.core.animateFloatAsState +import androidx.compose.animation.core.tween +import androidx.compose.foundation.Image +import androidx.compose.foundation.gestures.Orientation +import androidx.compose.foundation.gestures.draggable +import androidx.compose.foundation.gestures.rememberDraggableState +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.offset +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.material.ExperimentalMaterialApi +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.rounded.Search +import androidx.compose.material.icons.rounded.Settings +import androidx.compose.material3.Card +import androidx.compose.material3.CenterAlignedTopAppBar +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.MaterialTheme.shapes +import androidx.compose.material3.MaterialTheme.typography +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableFloatStateOf +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.rotate +import androidx.compose.ui.graphics.asImageBitmap +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.unit.Dp +import androidx.compose.ui.unit.IntOffset +import androidx.compose.ui.unit.dp +import androidx.compose.ui.viewinterop.AndroidView +import androidx.core.graphics.drawable.toBitmap +import androidx.fragment.app.FragmentActivity +import com.android_u.egg.landroid.toLocalPx +import com.dede.android_eggs.R +import com.dede.android_eggs.main.BackPressedHandler +import com.dede.android_eggs.main.EggActionHelp +import com.dede.android_eggs.main.entity.Egg +import com.dede.android_eggs.main.entity.Egg.Companion.toEgg +import com.dede.android_eggs.ui.drawables.AlterableAdaptiveIconDrawable +import com.dede.android_eggs.ui.views.EasterEggFooterView +import com.dede.android_eggs.ui.views.SnapshotGroupView +import com.dede.android_eggs.util.EdgeUtils +import com.dede.android_eggs.views.settings.SettingsFragment +import com.dede.android_eggs.views.theme.AppTheme +import com.dede.basic.provider.BaseEasterEgg +import com.dede.basic.provider.EasterEgg +import com.dede.basic.provider.EasterEggGroup +import dagger.hilt.android.AndroidEntryPoint +import javax.inject.Inject +import kotlin.math.roundToInt + +@AndroidEntryPoint +class EasterEggsActivity : AppCompatActivity() { + + @Inject + lateinit var easterEggs: List<@JvmSuppressWildcards BaseEasterEgg> + + override fun onCreate(savedInstanceState: Bundle?) { + EdgeUtils.applyEdge(window) + super.onCreate(savedInstanceState) + + setContent { + AppTheme { + Scaffold( + topBar = { TitleBar() } + ) { contentPadding -> + val delegate = object : PaddingValues by contentPadding { + override fun calculateBottomPadding() = Dp.Hairline + } + Box(modifier = Modifier.padding(delegate)) { + LazyColumn { + item { + AndroidSnapshotView() + Wavy(res = R.drawable.ic_wavy_line) + for (easterEgg in easterEggs) { + if (easterEgg is EasterEgg) { + EasterEggItem(egg = easterEgg) + } else if (easterEgg is EasterEggGroup) { + EasterEggItem(egg = easterEgg.eggs[0]) + } + } + Wavy(res = R.drawable.ic_wavy_line) + AndroidFooterView() + Spacer(Modifier.height(contentPadding.calculateBottomPadding())) + } + } + } + } + } + } + + BackPressedHandler(this).register() + } +} + +@Composable +fun TitleBar() { + val activity = LocalContext.current as FragmentActivity + + var startRotate by remember { mutableStateOf(false) } + val rotateAnim by animateFloatAsState( + targetValue = if (startRotate) 360f else 0f, + animationSpec = tween(500), + label = "SettingIconRotate" + ) + + CenterAlignedTopAppBar( + title = { + Text(text = stringResource(R.string.app_name)) + }, + actions = { + IconButton( + onClick = { + }, + ) { + Icon( + imageVector = Icons.Rounded.Search, + contentDescription = stringResource(android.R.string.search_go) + ) + } + IconButton( + onClick = { + SettingsFragment().apply { + onSlide = { + this.onSlide = null + startRotate = false + } + }.show(activity.supportFragmentManager, "Settings") + startRotate = true + }, + ) { + Icon( + imageVector = Icons.Rounded.Settings, + contentDescription = stringResource(R.string.label_settings), + modifier = Modifier.rotate(rotateAnim) + ) + } + } + ) +} + +@Composable +fun AndroidSnapshotView() { + AndroidView( + factory = { SnapshotGroupView(it) }, + modifier = Modifier + .fillMaxWidth() + .padding(vertical = 12.dp) + ) +} + +@Composable +fun AndroidFooterView() { + AndroidView( + factory = { EasterEggFooterView(it) }, + modifier = Modifier.fillMaxWidth() + ) +} + +@Composable +fun Wavy(res: Int) { + Image( + painter = painterResource(id = res), + contentDescription = null, + modifier = Modifier + .fillMaxWidth() + .padding(vertical = 30.dp) + ) +} + +@Composable +fun EasterEggItem(egg: EasterEgg) { + val context = LocalContext.current + + var released by remember { mutableStateOf(false) } + var offsetX by remember { mutableFloatStateOf(0f) } + + LaunchedEffect(released) { + if (released) { + val releaseAnim = Animatable(offsetX) + releaseAnim.animateTo(0f, animationSpec = tween(200)) { + offsetX = value + } + } + } + Box { + EasterEggItemSub(egg) + Card( + onClick = { + EggActionHelp.launchEgg(context, egg.toEgg()) + }, + shape = shapes.extraLarge, + modifier = Modifier + .padding(start = 12.dp, top = 12.dp, end = 12.dp) + .fillMaxWidth() + .offset { IntOffset(offsetX.roundToInt(), 0) } + .draggable( + orientation = Orientation.Horizontal, + state = rememberDraggableState { delta -> + offsetX += delta + }, + onDragStarted = { + released = false + }, + onDragStopped = { + released = true + } + ), + ) { + Column( + modifier = Modifier.padding(start = 22.dp, top = 20.dp, end = 22.dp, bottom = 18.dp) + ) { + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.SpaceBetween + ) { + Text( + text = stringResource(id = egg.nameRes), + style = typography.headlineSmall, + modifier = Modifier.padding(end = 12.dp) + ) + EasterEggIcon(egg) + } + Text( + text = Egg.VersionFormatter.create(egg.nicknameRes, egg.apiLevel) + .format(context).toString(), + style = typography.bodyMedium + ) + } + } + } +} + +@Composable +private fun EasterEggItemSub(egg: EasterEgg) { + +} + +@Composable +private fun EasterEggIcon(egg: EasterEgg) { + val dp = 46.dp + if (egg.supportAdaptiveIcon) { + val size = dp.toLocalPx().toInt() + val bitmap = AlterableAdaptiveIconDrawable(LocalContext.current, egg.iconRes) + .toBitmap(size, size) + Image( + bitmap = bitmap.asImageBitmap(), + contentDescription = stringResource(id = egg.nicknameRes), + modifier = Modifier.size(dp) + ) + } else { + Image( + painter = painterResource(egg.iconRes), + contentDescription = stringResource(id = egg.nicknameRes), + modifier = Modifier.size(dp) + ) + } + +} \ No newline at end of file diff --git a/app/src/main/res/xml/split_configuration.xml b/app/src/main/res/xml/split_configuration.xml index 53ca439f..3b6e369b 100644 --- a/app/src/main/res/xml/split_configuration.xml +++ b/app/src/main/res/xml/split_configuration.xml @@ -9,46 +9,46 @@ window:splitMinSmallestWidthDp="600" window:splitRatio="0.5"> @@ -59,7 +59,7 @@ window:placeholderActivityName=".views.placeholder.PlaceholderActivity" window:splitMinSmallestWidthDp="600" window:splitRatio="0.5"> - + - Upside Down Cake - Tiramisu - Snow Cone - Red Velvet Cake - Quince Tart - Pie - Oreo - Nougat - Marshmallow - Lollipop - KitKat - Jelly Bean - Ice Cream Sandwich - Honeycomb - Gingerbread Froyo Eclair Donut diff --git a/app/src/main/res/xml/shortcuts.xml b/app/src/main/res/xml/shortcuts.xml index 1ffc254a..558e00c5 100644 --- a/app/src/main/res/xml/shortcuts.xml +++ b/app/src/main/res/xml/shortcuts.xml @@ -6,10 +6,10 @@ + android:shortcutLongLabel="@string/u_android_nickname" + android:shortcutShortLabel="@string/u_android_nickname"> Date: Tue, 14 Nov 2023 15:17:14 +0800 Subject: [PATCH 11/30] feat: Welcome compose --- .../java/com/dede/android_eggs/util/Pref.kt | 12 +-- .../views/main/EasterEggsActivity.kt | 61 ++------------ .../android_eggs/views/main/StartupPage.kt | 64 --------------- .../views/main/compose/EasterEggItem.kt | 33 ++++++++ .../views/main/compose/MainTitleBar.kt | 3 +- .../views/main/compose/Welcome.kt | 82 +++++++++++++++++++ .../views/placeholder/PlaceholderActivity.kt | 9 +- 7 files changed, 135 insertions(+), 129 deletions(-) delete mode 100644 app/src/main/java/com/dede/android_eggs/views/main/StartupPage.kt create mode 100644 app/src/main/java/com/dede/android_eggs/views/main/compose/Welcome.kt diff --git a/app/src/main/java/com/dede/android_eggs/util/Pref.kt b/app/src/main/java/com/dede/android_eggs/util/Pref.kt index 7f16b15d..857883a8 100644 --- a/app/src/main/java/com/dede/android_eggs/util/Pref.kt +++ b/app/src/main/java/com/dede/android_eggs/util/Pref.kt @@ -4,15 +4,15 @@ import android.content.Context import android.content.SharedPreferences import androidx.preference.Preference import androidx.preference.PreferenceFragmentCompat +import androidx.preference.PreferenceManager -// compileOnly(deps.androidx.preference) val Context.pref: SharedPreferences get() { - return applicationContext.getSharedPreferences( - applicationContext.packageName + "_preferences", - Context.MODE_PRIVATE - ) - //return PreferenceManager.getDefaultSharedPreferences(applicationContext) +// return applicationContext.getSharedPreferences( +// applicationContext.packageName + "_preferences", +// Context.MODE_PRIVATE +// ) + return PreferenceManager.getDefaultSharedPreferences(applicationContext) } fun PreferenceFragmentCompat.requirePreference(key: String): T { diff --git a/app/src/main/java/com/dede/android_eggs/views/main/EasterEggsActivity.kt b/app/src/main/java/com/dede/android_eggs/views/main/EasterEggsActivity.kt index 051b4b52..0c918d1a 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/EasterEggsActivity.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/EasterEggsActivity.kt @@ -1,44 +1,26 @@ -@file:OptIn( - ExperimentalMaterial3Api::class, ExperimentalMaterialApi::class, - ExperimentalComposeUiApi::class -) - package com.dede.android_eggs.views.main +import android.annotation.SuppressLint import android.content.Intent import android.os.Bundle import androidx.activity.compose.setContent import androidx.appcompat.app.AppCompatActivity import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.material.ExperimentalMaterialApi -import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Scaffold -import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableFloatStateOf -import androidx.compose.runtime.mutableIntStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.ExperimentalComposeUiApi -import androidx.compose.ui.platform.LocalContext import com.dede.android_eggs.R -import com.dede.android_eggs.main.EggActionHelp import com.dede.android_eggs.util.EdgeUtils import com.dede.android_eggs.util.ThemeUtils import com.dede.android_eggs.views.main.compose.AndroidSnapshotView -import com.dede.android_eggs.views.main.compose.EasterEggItemContent -import com.dede.android_eggs.views.main.compose.EasterEggItemFloor -import com.dede.android_eggs.views.main.compose.EasterEggItemSwipe +import com.dede.android_eggs.views.main.compose.EasterEggItem import com.dede.android_eggs.views.main.compose.LocalFragmentManager import com.dede.android_eggs.views.main.compose.LocalHost import com.dede.android_eggs.views.main.compose.MainTitleBar import com.dede.android_eggs.views.main.compose.ProjectDescription import com.dede.android_eggs.views.main.compose.Wavy +import com.dede.android_eggs.views.main.compose.Welcome import com.dede.android_eggs.views.theme.AppTheme import com.dede.basic.provider.BaseEasterEgg -import com.dede.basic.provider.EasterEgg -import com.dede.basic.provider.EasterEggGroup import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.scopes.ActivityScoped import javax.inject.Inject @@ -67,6 +49,8 @@ class EasterEggsActivity : AppCompatActivity() { Scaffold( topBar = { MainTitleBar() } ) { contentPadding -> + Welcome() + LazyColumn(contentPadding = contentPadding) { item { AndroidSnapshotView() @@ -85,45 +69,12 @@ class EasterEggsActivity : AppCompatActivity() { BackPressedHandler(this).register() - StartupPage.show(this) - schemeHandler.handleIntent(intent) } + @SuppressLint("MissingSuperCall") override fun onNewIntent(intent: Intent?) { super.onNewIntent(intent) schemeHandler.handleIntent(intent) } } - -@Composable -fun EasterEggItem(base: BaseEasterEgg) { - val context = LocalContext.current - - var groupIndex by remember { mutableIntStateOf(0) } - val egg = when (base) { - is EasterEgg -> base - is EasterEggGroup -> base.eggs[groupIndex] - else -> throw UnsupportedOperationException("Unsupported type: ${base.javaClass}") - } - val supportShortcut = remember(egg) { EggActionHelp.isSupportShortcut(egg) } - var swipeProgress by remember { mutableFloatStateOf(0f) } - - EasterEggItemSwipe( - floor = { - EasterEggItemFloor(egg, supportShortcut, swipeProgress) - }, - content = { - EasterEggItemContent(egg, base) { - groupIndex = it - } - }, - supportShortcut = supportShortcut, - onSwipe = { - swipeProgress = it - }, - addShortcut = { - EggActionHelp.addShortcut(context, egg) - }, - ) -} diff --git a/app/src/main/java/com/dede/android_eggs/views/main/StartupPage.kt b/app/src/main/java/com/dede/android_eggs/views/main/StartupPage.kt deleted file mode 100644 index d810c8bf..00000000 --- a/app/src/main/java/com/dede/android_eggs/views/main/StartupPage.kt +++ /dev/null @@ -1,64 +0,0 @@ -package com.dede.android_eggs.views.main - -import android.content.Context -import android.content.DialogInterface -import android.widget.ImageView -import androidx.core.content.edit -import androidx.core.net.toUri -import com.dede.android_eggs.R -import com.dede.android_eggs.util.CustomTabsBrowser -import com.dede.android_eggs.util.pref -import com.dede.basic.createVectorDrawableCompat -import com.google.android.material.dialog.MaterialAlertDialogBuilder - -class StartupPage(private val context: Context) : MaterialAlertDialogBuilder(context), - DialogInterface.OnClickListener { - - companion object { - - private const val KEY = "key_welcome_status" - - fun show(context: Context) { - val status = context.pref.getBoolean(KEY, false) - if (status) return - StartupPage(context) - .show() - } - } - - init { - setTitle(R.string.label_welcome) - setMessage(R.string.summary_browse_privacy_policy) - val view = ImageView(context).apply { - adjustViewBounds = true - setImageDrawable(context.createVectorDrawableCompat(R.drawable.img_welcome_poster)) - } - setView(view) - setNeutralButton(R.string.label_privacy_policy, this) - setNegativeButton(android.R.string.cancel, this) - setPositiveButton(R.string.action_agree, this) - } - - override fun onClick(dialog: DialogInterface, which: Int) { - when (which) { - DialogInterface.BUTTON_POSITIVE -> { - context.pref.edit { - putBoolean(KEY, true) - } - } - - DialogInterface.BUTTON_NEGATIVE -> { - } - - DialogInterface.BUTTON_NEUTRAL -> { - CustomTabsBrowser.launchUrl( - context, - context.getString(R.string.url_privacy).toUri() - ) - } - - else -> throw UnsupportedOperationException("Dialog which: $which") - } - } - -} \ No newline at end of file diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggItem.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggItem.kt index b02c9946..3fc757c5 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggItem.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggItem.kt @@ -25,6 +25,7 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableFloatStateOf +import androidx.compose.runtime.mutableIntStateOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue @@ -57,6 +58,38 @@ import kotlin.math.roundToInt import com.dede.android_eggs.ui.Icons as FontIcons +@Composable +fun EasterEggItem(base: BaseEasterEgg) { + val context = LocalContext.current + + var groupIndex by remember { mutableIntStateOf(0) } + val egg = when (base) { + is EasterEgg -> base + is EasterEggGroup -> base.eggs[groupIndex] + else -> throw UnsupportedOperationException("Unsupported type: ${base.javaClass}") + } + val supportShortcut = remember(egg) { EggActionHelp.isSupportShortcut(egg) } + var swipeProgress by remember { mutableFloatStateOf(0f) } + + EasterEggItemSwipe( + floor = { + EasterEggItemFloor(egg, supportShortcut, swipeProgress) + }, + content = { + EasterEggItemContent(egg, base) { + groupIndex = it + } + }, + supportShortcut = supportShortcut, + onSwipe = { + swipeProgress = it + }, + addShortcut = { + EggActionHelp.addShortcut(context, egg) + }, + ) +} + @Composable fun EasterEggItemSwipe( floor: @Composable () -> Unit, diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/MainTitleBar.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/MainTitleBar.kt index 02e1c8d1..00b4903a 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/MainTitleBar.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/MainTitleBar.kt @@ -1,3 +1,5 @@ +@file:OptIn(ExperimentalMaterial3Api::class) + package com.dede.android_eggs.views.main.compose import androidx.compose.animation.core.animateFloatAsState @@ -27,7 +29,6 @@ private const val TAG_SETTINGS = "Settings" @Composable @Preview -@ExperimentalMaterial3Api fun MainTitleBar() { val fm = LocalFragmentManager.current diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/Welcome.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/Welcome.kt new file mode 100644 index 00000000..7496e054 --- /dev/null +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/Welcome.kt @@ -0,0 +1,82 @@ +package com.dede.android_eggs.views.main.compose + +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.material.TextButton +import androidx.compose.material3.AlertDialog +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.core.content.edit +import androidx.core.net.toUri +import com.dede.android_eggs.R +import com.dede.android_eggs.util.CustomTabsBrowser +import com.dede.android_eggs.util.pref + +private const val KEY = "key_welcome_status" + +@Composable +@Preview +fun Welcome() { + val context = LocalContext.current + val pref = remember { context.pref } + var visiable by remember { + mutableStateOf(!pref.getBoolean(KEY, false)) + } + if (!visiable) { + return + } + AlertDialog( + title = { + Text(text = stringResource(R.string.label_welcome)) + }, + text = { + Column { + Text(text = stringResource(R.string.summary_browse_privacy_policy)) + Image( + painter = painterResource(R.drawable.img_welcome_poster), + contentDescription = null, + modifier = Modifier.fillMaxWidth() + ) + } + }, + onDismissRequest = {}, + confirmButton = { + Row { + TextButton(onClick = { + CustomTabsBrowser.launchUrl( + context, + context.getString(R.string.url_privacy).toUri() + ) + }) { + Text(text = stringResource(R.string.label_privacy_policy)) + } + Spacer(modifier = Modifier.weight(1f)) + TextButton(onClick = { + visiable = false + }) { + Text(text = stringResource(android.R.string.cancel)) + } + TextButton(onClick = { + visiable = false + pref.edit { + putBoolean(KEY, true) + } + }) { + Text(text = stringResource(R.string.action_agree)) + } + } + }, + ) +} \ No newline at end of file diff --git a/app/src/main/java/com/dede/android_eggs/views/placeholder/PlaceholderActivity.kt b/app/src/main/java/com/dede/android_eggs/views/placeholder/PlaceholderActivity.kt index 5d354dbc..c8c40368 100644 --- a/app/src/main/java/com/dede/android_eggs/views/placeholder/PlaceholderActivity.kt +++ b/app/src/main/java/com/dede/android_eggs/views/placeholder/PlaceholderActivity.kt @@ -19,8 +19,10 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.asImageBitmap import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp import androidx.core.graphics.drawable.toBitmap import com.dede.android_eggs.R import com.dede.android_eggs.ui.drawables.AlterableAdaptiveIconDrawable @@ -30,9 +32,9 @@ import com.dede.android_eggs.util.ThemeUtils import com.dede.android_eggs.views.settings.prefs.DynamicColorPref import com.dede.android_eggs.views.settings.prefs.NightModePref import com.dede.android_eggs.views.theme.AppTheme -import com.dede.basic.dp import dagger.hilt.android.AndroidEntryPoint import javax.inject.Inject +import kotlin.math.roundToInt import kotlin.random.Random @AndroidEntryPoint @@ -84,7 +86,8 @@ class PlaceholderActivity : AppCompatActivity() { @Composable fun Placeholder(res: Int, mask: String? = null) { val drawable = AlterableAdaptiveIconDrawable(LocalContext.current, res, mask) - val bitmap = drawable.toBitmap(56.dp, 56.dp) + val px = with(LocalDensity.current) { 56.dp.toPx().roundToInt() } + val bitmap = remember { drawable.toBitmap(px, px).asImageBitmap() } Box( contentAlignment = Alignment.Center, modifier = Modifier.fillMaxSize() @@ -98,7 +101,7 @@ fun Placeholder(res: Int, mask: String? = null) { ) + fadeIn(animationSpec = tween(500, delayMillis = 100)), ) { Image( - bitmap = bitmap.asImageBitmap(), + bitmap = bitmap, contentDescription = stringResource(R.string.app_name), ) } From 8e6885bd0efd7aa74a6eca44ffb1a39177ae6763 Mon Sep 17 00:00:00 2001 From: Hu Shenghao Date: Tue, 14 Nov 2023 16:48:06 +0800 Subject: [PATCH 12/30] feat: Add Material Icons --- app/build.gradle.kts | 1 + .../java/com/dede/android_eggs/ui/Icons.kt | 14 +----- .../com/dede/android_eggs/util/LocalEvent.kt | 29 +++++++++++ .../views/main/compose/EasterEggItem.kt | 43 ++++++++-------- .../views/main/compose/EasterEggLogo.kt | 46 ++++++++++-------- app/src/main/res/font/icons.ttf | Bin 3692 -> 3056 bytes gradle/libs.versions.toml | 1 + script/icons/unicodes.json | 4 -- 8 files changed, 78 insertions(+), 60 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 389f0712..c976e090 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -125,6 +125,7 @@ dependencies { implementation(libs.androidx.compose.ui.util) implementation(libs.androidx.compose.material) implementation(libs.androidx.compose.material3) + implementation(libs.androidx.compose.material.icons) implementation(libs.androidx.compose.ui.tooling.preview) debugImplementation(libs.androidx.compose.ui.tooling) diff --git a/app/src/main/java/com/dede/android_eggs/ui/Icons.kt b/app/src/main/java/com/dede/android_eggs/ui/Icons.kt index 4ec147ef..5547e515 100644 --- a/app/src/main/java/com/dede/android_eggs/ui/Icons.kt +++ b/app/src/main/java/com/dede/android_eggs/ui/Icons.kt @@ -1,7 +1,7 @@ package com.dede.android_eggs.ui /** Generated automatically via **subset_icons_font.py**, do not modify this file. */ -// 1699349829 +// 1699951651 object Icons { object Outlined { @@ -22,9 +22,6 @@ object Icons { /** app_registration */ const val app_registration = "\uEF40" - /** app_shortcut */ - const val app_shortcut = "\uEAE4" - /** brightness_4 */ const val brightness_4 = "\uE3A9" @@ -37,21 +34,12 @@ object Icons { /** brightness_low */ const val brightness_low = "\uE1AD" - /** expand_more */ - const val expand_more = "\uE5CF" - /** palette */ const val palette = "\uE40A" /** settings */ const val settings = "\uE8B8" - /** swipe_left */ - const val swipe_left = "\uEB59" - - /** swipe_right */ - const val swipe_right = "\uEB52" - /** tips_and_updates */ const val tips_and_updates = "\uE79A" diff --git a/app/src/main/java/com/dede/android_eggs/util/LocalEvent.kt b/app/src/main/java/com/dede/android_eggs/util/LocalEvent.kt index fcfdd2af..660fc007 100644 --- a/app/src/main/java/com/dede/android_eggs/util/LocalEvent.kt +++ b/app/src/main/java/com/dede/android_eggs/util/LocalEvent.kt @@ -6,6 +6,10 @@ import android.content.Intent import android.content.IntentFilter import android.os.Bundle import androidx.activity.ComponentActivity +import androidx.compose.runtime.Composable +import androidx.compose.runtime.DisposableEffect +import androidx.compose.runtime.remember +import androidx.compose.ui.platform.LocalContext import androidx.fragment.app.Fragment import androidx.lifecycle.DefaultLifecycleObserver import androidx.lifecycle.LifecycleOwner @@ -23,6 +27,31 @@ object LocalEvent { return Receiver(owner) } + @Composable + fun receiver(): ComposeReceiver { + val context = LocalContext.current + return remember { ComposeReceiver(context) } + } + + class ComposeReceiver(private val context: Context) { + + private class DisposedReceiver(val callback: EventCallback) : BroadcastReceiver() { + override fun onReceive(context: Context, intent: Intent) { + callback.invoke(intent) + } + } + + @Composable + fun register(action: String, eventCallback: EventCallback) { + DisposableEffect(key1 = action) { + val receiver = DisposedReceiver(eventCallback) + context.localBroadcastManager.registerReceiver(receiver, IntentFilter(action)) + onDispose { + context.localBroadcastManager.unregisterReceiver(receiver) + } + } + } + } class Receiver(private val owner: LifecycleOwner) { diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggItem.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggItem.kt index 3fc757c5..02d7b511 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggItem.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggItem.kt @@ -3,7 +3,6 @@ package com.dede.android_eggs.views.main.compose import android.view.HapticFeedbackConstants import androidx.compose.animation.core.Animatable import androidx.compose.animation.core.tween -import androidx.compose.foundation.Image import androidx.compose.foundation.gestures.Orientation import androidx.compose.foundation.gestures.draggable import androidx.compose.foundation.gestures.rememberDraggableState @@ -15,11 +14,16 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.offset import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.rounded.AppShortcut import androidx.compose.material.icons.rounded.KeyboardArrowDown +import androidx.compose.material.icons.rounded.SwipeLeft +import androidx.compose.material.icons.rounded.SwipeRight import androidx.compose.material3.Card import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.MaterialTheme.typography import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect @@ -31,7 +35,6 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.asImageBitmap import androidx.compose.ui.layout.onSizeChanged import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalLayoutDirection @@ -44,18 +47,15 @@ import androidx.compose.ui.text.withStyle import androidx.compose.ui.unit.IntOffset import androidx.compose.ui.unit.LayoutDirection import androidx.compose.ui.unit.dp -import androidx.core.graphics.drawable.toBitmap import com.dede.android_eggs.R import com.dede.android_eggs.main.EasterEggHelp import com.dede.android_eggs.main.EggActionHelp -import com.dede.android_eggs.ui.drawables.FontIconsDrawable import com.dede.basic.provider.BaseEasterEgg import com.dede.basic.provider.EasterEgg import com.dede.basic.provider.EasterEggGroup import kotlin.math.abs import kotlin.math.min import kotlin.math.roundToInt -import com.dede.android_eggs.ui.Icons as FontIcons @Composable @@ -180,7 +180,7 @@ fun EasterEggItemContent(egg: EasterEgg, base: BaseEasterEgg, onSelected: (index Row(modifier = Modifier.fillMaxWidth()) { Text( text = stringResource(egg.nameRes), - style = MaterialTheme.typography.headlineSmall, + style = typography.headlineSmall, modifier = Modifier .padding(end = 10.dp, bottom = 6.dp) .weight(1f, true) @@ -193,14 +193,14 @@ fun EasterEggItemContent(egg: EasterEgg, base: BaseEasterEgg, onSelected: (index ) { Text( text = androidVersion, - style = MaterialTheme.typography.bodyMedium + style = typography.bodyMedium ) if (isGroup) { Icon( modifier = Modifier .padding(start = 4.dp) .size(22.dp), - imageVector = androidx.compose.material.icons.Icons.Rounded.KeyboardArrowDown, + imageVector = Icons.Rounded.KeyboardArrowDown, contentDescription = stringResource(R.string.pref_title_language_more) ) } @@ -224,17 +224,6 @@ fun EasterEggItemFloor( EasterEggHelp.ApiLevelFormatter.create(egg.apiLevel) .format(content) } - val iconUnicode = if (swipeProgress >= 1f) { - FontIcons.Rounded.app_shortcut - } else if (LocalLayoutDirection.current == LayoutDirection.Rtl) { - FontIcons.Rounded.swipe_right - } else { - FontIcons.Rounded.swipe_left - } - val shortcutBitmap = remember(iconUnicode) { - FontIconsDrawable(content, iconUnicode, 30f) - .toBitmap().asImageBitmap() - } Row( modifier = Modifier .padding(horizontal = 28.dp) @@ -254,10 +243,17 @@ fun EasterEggItemFloor( }, modifier = Modifier.padding(start = 8.dp), maxLines = 2, - style = MaterialTheme.typography.bodyMedium + style = typography.bodyMedium ) } if (enableShortcut) { + val icon = if (swipeProgress >= 1f) { + Icons.Rounded.AppShortcut + } else if (LocalLayoutDirection.current == LayoutDirection.Rtl) { + Icons.Rounded.SwipeRight + } else { + Icons.Rounded.SwipeLeft + } Row( verticalAlignment = Alignment.CenterVertically, modifier = Modifier.offset(x = (swipeProgress * -12).dp) @@ -266,10 +262,11 @@ fun EasterEggItemFloor( text = stringResource(R.string.label_add_shortcut), modifier = Modifier.padding(end = 4.dp), maxLines = 3, - style = MaterialTheme.typography.bodyMedium + style = typography.bodyMedium ) - Image( - bitmap = shortcutBitmap, + Icon( + modifier = Modifier.size(28.dp), + imageVector = icon, contentDescription = stringResource(R.string.label_add_shortcut) ) } diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggLogo.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggLogo.kt index e8f7cdc5..a82d1374 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggLogo.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggLogo.kt @@ -1,8 +1,10 @@ package com.dede.android_eggs.views.main.compose import androidx.compose.foundation.Image -import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.size +import androidx.compose.foundation.lazy.grid.GridCells +import androidx.compose.foundation.lazy.grid.LazyVerticalGrid +import androidx.compose.foundation.lazy.grid.items import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf @@ -12,48 +14,52 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.asImageBitmap import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalDensity -import androidx.compose.ui.platform.LocalLifecycleOwner import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.core.graphics.drawable.toBitmap -import com.android_u.egg.AndroidUEasterEgg import com.dede.android_eggs.ui.drawables.AlterableAdaptiveIconDrawable import com.dede.android_eggs.util.LocalEvent -import com.dede.android_eggs.views.main.AndroidBaseEasterEgg +import com.dede.android_eggs.views.main.EasterEggModules import com.dede.android_eggs.views.settings.prefs.IconShapePref import com.dede.basic.provider.EasterEgg -import com.dede.basic.provider.EasterEggGroup +import com.dede.basic.provider.EasterEggProvider +import dagger.Module import kotlin.math.roundToInt -@Preview +@Preview(widthDp = 200) @Composable fun PreviewEasterEggLogo() { - val easterEgg1 = AndroidUEasterEgg.provideEasterEgg() as EasterEgg - val easterEggs = (AndroidBaseEasterEgg.provideEasterEgg() as EasterEggGroup).eggs - val easterEgg2 = easterEggs.first() - val easterEgg3 = easterEggs.last() - Row { - EasterEggLogo(egg = easterEgg1, preview = true) - EasterEggLogo(egg = easterEgg2, preview = true) - EasterEggLogo(egg = easterEgg3, preview = true) + val module = EasterEggModules::class.java.getAnnotation(Module::class.java) + val baseEasterEggs = module.includes.map { + val instance = try { + it.java.getField("INSTANCE").get(null) + } catch (e: Exception) { + it.java.getConstructor().newInstance() + } + val provider = instance as EasterEggProvider + provider.provideEasterEgg() + } + val easterEggs = EasterEggModules.providePureEasterEggList(baseEasterEggs) + LazyVerticalGrid(columns = GridCells.Fixed(3)) { + items(easterEggs) { + EasterEggLogo(egg = it) + } } } @Composable -fun EasterEggLogo(egg: EasterEgg, size: Dp = 44.dp, preview: Boolean = false) { +fun EasterEggLogo(egg: EasterEgg, size: Dp = 44.dp) { if (egg.supportAdaptiveIcon) { val px = with(LocalDensity.current) { size.toPx().roundToInt() } val context = LocalContext.current + var maskPath: String? by remember { mutableStateOf(IconShapePref.getMaskPath(context)) } - if (!preview) { - LocalEvent.receiver(LocalLifecycleOwner.current) - .register(IconShapePref.ACTION_CHANGED) { - maskPath = it.getStringExtra(IconShapePref.EXTRA_ICON_SHAPE_PATH) - } + LocalEvent.receiver().register(IconShapePref.ACTION_CHANGED) { + maskPath = it.getStringExtra(IconShapePref.EXTRA_ICON_SHAPE_PATH) } val bitmap = remember(maskPath, egg, context.theme, px) { diff --git a/app/src/main/res/font/icons.ttf b/app/src/main/res/font/icons.ttf index 8172674b0d7e39eb0a8094b78a3cf1b5eb6f1a77..0190ffc12b7a3dd374c7394e1a53ffd701a61824 100644 GIT binary patch delta 401 zcmaDO^FchsKP1GTfs3Jmftf+U+09Mi`{unJ3=Av+3=Hfu+=D}%cKq7$g@J*41p@h zJF!VckNE?TufV_vB!M_`;xop0ew(ih%uGN528M?fPZq;z2?mLYS1cKMH}f%;GKCfZ z#U&U7fbQdXxccGR$15MNdBXMd-gBAfvtCSjvE#kN|NlV!IAr8vNZePgl;D?67>p2=b|`6i1ge?ekSYDr0IF_6g2OD~>m%W9;+&A`h9 z^d<|#3Wgnw>lrsO6*2QOPh~M-S<0%%`kgIn^K{l?rp;$LOqezsa|bd`Ucp;5S(eWo E08RaaRsaA1 delta 1025 zcmah|e`pg|9DkQwa&7I}X5?tnWOtpWuuV}XEp*Inwn7xTS zO?NLf$&NO;yw|0vXU>tlHJgmThd~!ZPS?l=Y7>kT381 zzTeOL@%elo@B2&jvc0vXwY3G5fkB`LwY#0p+Wh(E768cY0F>tU>~Cw%{h9k6fC@VR z;I)?h+jcl6cas1RRa*Yx@oqQ&e)`R70Q7>EXFQy{-SNVul+wDfykf70IJ(^;4@`>W z*h>C$q81RE*T#2E%gwIJoqqtmP6Gf~@XlRdpDln^?!Q5pW-EvuU3WsmYc>0=h^xY~w`UeX8Bn?e%fI z`y?j_oL_UDr%w3&y`4PgI>~hiYmu+>ghxOtZ)p{i(M*Ky8?3$jnm?!z!bZTg4iptf0-#E+dIvu zUB>C`Lnvas+MnS@U`mc7Yv#(84Bi!&Q&Qa8aklSj1cl@%w5s~eG!#X+c7Zhu z*V#}u`!Ab_V0Mjd_DiZ!w{=OqO*b|+J}^KuAVUZx`80wnuUe3lmJwcAu^=RmLAtf529>7(;{o2?W{t9}SUsOi9#K6tId5A==S&pv}t;oj0Vr*JqaL8z6$Q`ZjdJLj|&>x#cUSJS5d W6ZIcWsD49_)^O;;hP~P^FZmmQi>o&P diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d6e0c7ca..35ad0a18 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -39,6 +39,7 @@ androidx-compose-ui-tooling = { module = "androidx.compose.ui:ui-tooling" } androidx-compose-ui-tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview" } androidx-compose-material = { module = "androidx.compose.material:material" } androidx-compose-material3 = { module = "androidx.compose.material3:material3" } +androidx-compose-material-icons = { module = "androidx.compose.material:material-icons-extended" } hilt-android = { module = "com.google.dagger:hilt-android", version.ref = "hilt" } hilt-compiler = { module = "com.google.dagger:hilt-compiler", version.ref = "hilt" } diff --git a/script/icons/unicodes.json b/script/icons/unicodes.json index f31c8bc0..1a687982 100644 --- a/script/icons/unicodes.json +++ b/script/icons/unicodes.json @@ -6,16 +6,12 @@ ], "rounded": [ "app_registration", - "app_shortcut", "brightness_auto", "brightness_4", "brightness_7", "brightness_low", - "expand_more", "palette", "settings", - "swipe_left", - "swipe_right", "tips_and_updates" ], "filled": [] From 161117d84b34da01ee76d33e77b32832dbcffef4 Mon Sep 17 00:00:00 2001 From: Hu Shenghao Date: Wed, 15 Nov 2023 17:47:50 +0800 Subject: [PATCH 13/30] feat: Timeline compose --- app/build.gradle.kts | 1 + .../android_eggs/main/entity/TimelineEvent.kt | 15 +- .../views/main/EasterEggsActivity.kt | 4 +- .../views/main/compose/MainTitleBar.kt | 11 +- .../views/main/compose/ProjectDescription.kt | 7 +- .../views/settings/prefs/LanguagePref.kt | 9 - .../views/timeline/AndroidTimeline.kt | 179 ++++++++++++++++++ gradle/libs.versions.toml | 1 + 8 files changed, 202 insertions(+), 25 deletions(-) create mode 100644 app/src/main/java/com/dede/android_eggs/views/timeline/AndroidTimeline.kt diff --git a/app/build.gradle.kts b/app/build.gradle.kts index c976e090..bbc082c8 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -126,6 +126,7 @@ dependencies { implementation(libs.androidx.compose.material) implementation(libs.androidx.compose.material3) implementation(libs.androidx.compose.material.icons) + implementation(libs.androidx.compose.constraintlayout) implementation(libs.androidx.compose.ui.tooling.preview) debugImplementation(libs.androidx.compose.ui.tooling) diff --git a/app/src/main/java/com/dede/android_eggs/main/entity/TimelineEvent.kt b/app/src/main/java/com/dede/android_eggs/main/entity/TimelineEvent.kt index 6a198b98..ae7db963 100644 --- a/app/src/main/java/com/dede/android_eggs/main/entity/TimelineEvent.kt +++ b/app/src/main/java/com/dede/android_eggs/main/entity/TimelineEvent.kt @@ -7,10 +7,12 @@ import android.text.Spannable import android.text.SpannableStringBuilder import android.text.style.StyleSpan import androidx.annotation.DrawableRes +import androidx.appcompat.app.AppCompatDelegate import com.dede.android_eggs.R import com.dede.android_eggs.views.settings.prefs.LanguagePref import java.text.Format import java.util.Calendar +import java.util.Locale import java.util.TimeZone data class TimelineEvent( @@ -22,6 +24,15 @@ data class TimelineEvent( companion object { + private fun getApplicationLocale(): Locale { + val locales = AppCompatDelegate.getApplicationLocales() + return if (locales.isEmpty) { + Locale.getDefault() + } else { + locales.get(0) ?: Locale.getDefault() + } + } + private fun timelineEvent(@DrawableRes logoRes: Int, event: CharSequence): TimelineEvent { val regex = Regex("(January|February|March|April|May|June|July|August|September|October|November|December) +(\\d{4,})") @@ -196,7 +207,7 @@ data class TimelineEvent( val yearNum = year?.toIntOrNull() ?: return year val calendar = Calendar.getInstance(TimeZone.getDefault()) calendar.set(Calendar.YEAR, yearNum) - val locale = LanguagePref.getApplicationLocale() + val locale = getApplicationLocale() val format: Format = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { SimpleDateFormat("yyyy", locale) } else { @@ -224,7 +235,7 @@ data class TimelineEvent( } val calendar = Calendar.getInstance(TimeZone.getDefault()) calendar.set(Calendar.MONTH, m) - val locale = LanguagePref.getApplicationLocale() + val locale = getApplicationLocale() val format: Format = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { SimpleDateFormat("MMMM", locale) } else { diff --git a/app/src/main/java/com/dede/android_eggs/views/main/EasterEggsActivity.kt b/app/src/main/java/com/dede/android_eggs/views/main/EasterEggsActivity.kt index 0c918d1a..0882a9e0 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/EasterEggsActivity.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/EasterEggsActivity.kt @@ -47,7 +47,9 @@ class EasterEggsActivity : AppCompatActivity() { ) { AppTheme { Scaffold( - topBar = { MainTitleBar() } + topBar = { + MainTitleBar() + } ) { contentPadding -> Welcome() diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/MainTitleBar.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/MainTitleBar.kt index 00b4903a..d105a2a2 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/MainTitleBar.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/MainTitleBar.kt @@ -5,7 +5,6 @@ package com.dede.android_eggs.views.main.compose import androidx.compose.animation.core.animateFloatAsState import androidx.compose.animation.core.tween import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Search import androidx.compose.material.icons.rounded.Settings import androidx.compose.material3.CenterAlignedTopAppBar import androidx.compose.material3.ExperimentalMaterial3Api @@ -13,6 +12,7 @@ import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.saveable.rememberSaveable @@ -53,15 +53,6 @@ fun MainTitleBar() { Text(text = stringResource(R.string.app_name)) }, actions = { - IconButton( - onClick = { - }, - ) { - Icon( - imageVector = Icons.Rounded.Search, - contentDescription = stringResource(android.R.string.search_go) - ) - } IconButton( onClick = { if (fm == null) return@IconButton diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/ProjectDescription.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/ProjectDescription.kt index 01101200..774528b7 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/ProjectDescription.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/ProjectDescription.kt @@ -46,7 +46,7 @@ import kotlin.math.roundToInt private fun ChipItem( @StringRes textRes: Int, separator: Boolean = true, - onClick: () -> Unit + onClick: () -> Unit, ) { Row( verticalAlignment = Alignment.CenterVertically, @@ -72,7 +72,7 @@ private fun ChipItem( @Composable private fun ChipItem2( @StringRes textRes: Int, - onClick: () -> Unit + onClick: () -> Unit, ) { Text( text = stringResource(textRes), @@ -148,7 +148,8 @@ fun ProjectDescription() { style = typography.bodyMedium ) FlowRow( - modifier = Modifier.padding(top = 20.dp) + modifier = Modifier + .padding(top = 20.dp) .fillMaxWidth() ) { ChipItem(R.string.label_github) { diff --git a/app/src/main/java/com/dede/android_eggs/views/settings/prefs/LanguagePref.kt b/app/src/main/java/com/dede/android_eggs/views/settings/prefs/LanguagePref.kt index f467a720..b4b3a842 100644 --- a/app/src/main/java/com/dede/android_eggs/views/settings/prefs/LanguagePref.kt +++ b/app/src/main/java/com/dede/android_eggs/views/settings/prefs/LanguagePref.kt @@ -180,15 +180,6 @@ class LanguagePref : SettingPref(null, getOptions(), SYSTEM) { return SYSTEM } - fun getApplicationLocale(): Locale { - val locales = AppCompatDelegate.getApplicationLocales() - return if (locales.isEmpty) { - Locale.getDefault() - } else { - locales.get(0) ?: Locale.getDefault() - } - } - private fun createLocale(language: String, region: String = ""): Locale { return Locale.Builder() .setLanguage(language) diff --git a/app/src/main/java/com/dede/android_eggs/views/timeline/AndroidTimeline.kt b/app/src/main/java/com/dede/android_eggs/views/timeline/AndroidTimeline.kt new file mode 100644 index 00000000..bee05d2d --- /dev/null +++ b/app/src/main/java/com/dede/android_eggs/views/timeline/AndroidTimeline.kt @@ -0,0 +1,179 @@ +@file:OptIn(ExperimentalMaterial3Api::class, ExperimentalMaterialApi::class) + +package com.dede.android_eggs.views.timeline + +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.WindowInsets +import androidx.compose.foundation.layout.exclude +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.systemBars +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.layout.wrapContentHeight +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.itemsIndexed +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.Card +import androidx.compose.material.ExperimentalMaterialApi +import androidx.compose.material.Icon +import androidx.compose.material.Text +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.outlined.ArrowLeft +import androidx.compose.material3.BottomSheetDefaults +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.MaterialTheme.colorScheme +import androidx.compose.material3.MaterialTheme.shapes +import androidx.compose.material3.MaterialTheme.typography +import androidx.compose.material3.ModalBottomSheet +import androidx.compose.material3.rememberModalBottomSheetState +import androidx.compose.runtime.Composable +import androidx.compose.runtime.MutableState +import androidx.compose.runtime.getValue +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.asImageBitmap +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.constraintlayout.compose.ConstraintLayout +import androidx.constraintlayout.compose.Dimension +import androidx.core.graphics.drawable.toBitmap +import com.dede.android_eggs.main.entity.TimelineEvent +import com.dede.basic.requireDrawable + +@Preview +@Composable +fun AndroidTimelineSheet(visible: MutableState) { + var show by visible + if (!show) return + val sheetState = rememberModalBottomSheetState() + ModalBottomSheet( + windowInsets = BottomSheetDefaults.windowInsets.exclude(WindowInsets.systemBars), + sheetState = sheetState, + onDismissRequest = { + show = false + }, + ) { + AndroidTimeline() + } +} + +@Composable +@Preview(showBackground = true) +fun AndroidTimeline(items: List = TimelineEvent.timelines) { + LazyColumn { + itemsIndexed(items = items) { index, item -> + AndroidTimelineItem(item) { + if (index <= 0) return@AndroidTimelineItem true + return@AndroidTimelineItem items[index - 1].year != it.year + } + } + } +} + +@Composable +fun AndroidTimelineItem( + timeline: TimelineEvent, + isNewYearGroup: (current: TimelineEvent) -> Boolean, +) { + val context = LocalContext.current + val bitmap = remember(context.theme) { + context.requireDrawable(timeline.logoRes) + .toBitmap().asImageBitmap() + } + val isNewGroup = remember(timeline) { isNewYearGroup.invoke(timeline) } + + ConstraintLayout( + modifier = Modifier + .fillMaxWidth() + .wrapContentHeight() + ) { + val (logo, card, year, month, arrow, l1, l2) = createRefs() + if (isNewGroup) { + Text( + text = timeline.localYear.toString(), + style = typography.titleLarge, + modifier = Modifier.constrainAs(year) { + end.linkTo(logo.start) + start.linkTo(parent.start) + top.linkTo(parent.top, margin = 10.dp) + } + ) + } + Text( + text = timeline.localMonth.toString(), + style = typography.labelMedium, + modifier = Modifier.constrainAs(month) { + end.linkTo(logo.start, margin = 10.dp) + linkTo(top = logo.top, bottom = logo.bottom) + } + ) + Box( + modifier = Modifier + .width(2.dp) + .clip(RoundedCornerShape(bottomEndPercent = 50, bottomStartPercent = 50)) + .background(colorScheme.primary) + .constrainAs(l1) { + height = Dimension.fillToConstraints + linkTo(start = logo.start, end = logo.end) + top.linkTo(parent.top) + bottom.linkTo(logo.top, 4.dp) + } + ) {} + Image( + bitmap = bitmap, contentDescription = null, + modifier = Modifier + .size(24.dp) + .constrainAs(logo) { + linkTo(start = parent.start, end = parent.end, bias = 0.3f) + linkTo(top = card.top, bottom = card.bottom) + } + ) + Box( + modifier = Modifier + .width(2.dp) + .clip(RoundedCornerShape(topEndPercent = 50, topStartPercent = 50)) + .background(colorScheme.primary) + .constrainAs(l2) { + height = Dimension.fillToConstraints + linkTo(start = logo.start, end = logo.end) + top.linkTo(logo.bottom, 4.dp) + bottom.linkTo(parent.bottom) + } + ) {} + Card( + backgroundColor = colorScheme.secondaryContainer, + shape = shapes.medium, + modifier = Modifier + .constrainAs(card) { + width = Dimension.fillToConstraints + end.linkTo(parent.end, margin = 10.dp) + start.linkTo(logo.end, margin = 10.dp) + top.linkTo(year.bottom) + bottom.linkTo(parent.bottom, margin = 10.dp) + } + ) { + Text( + text = timeline.eventSpan.toString(), + style = typography.labelMedium, + modifier = Modifier.padding(horizontal = 10.dp, vertical = 8.dp) + ) + } + Icon( + imageVector = Icons.Outlined.ArrowLeft, + tint = colorScheme.secondaryContainer, + modifier = Modifier + .size(24.dp) + .constrainAs(arrow) { + linkTo(top = logo.top, bottom = logo.bottom) + start.linkTo(card.start, margin = (-14).dp) + }, + contentDescription = null + ) + } +} \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 35ad0a18..a5668707 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -40,6 +40,7 @@ androidx-compose-ui-tooling-preview = { module = "androidx.compose.ui:ui-tooling androidx-compose-material = { module = "androidx.compose.material:material" } androidx-compose-material3 = { module = "androidx.compose.material3:material3" } androidx-compose-material-icons = { module = "androidx.compose.material:material-icons-extended" } +androidx-compose-constraintlayout = "androidx.constraintlayout:constraintlayout-compose:1.0.1" hilt-android = { module = "com.google.dagger:hilt-android", version.ref = "hilt" } hilt-compiler = { module = "com.google.dagger:hilt-compiler", version.ref = "hilt" } From 4d5616463e902e00b112640d00aca0e1f8803f8f Mon Sep 17 00:00:00 2001 From: Hu Shenghao Date: Thu, 16 Nov 2023 14:40:55 +0800 Subject: [PATCH 14/30] feat: Add Compose DrawableImage --- .../views/main/compose/DrawableImage.kt | 97 +++++++++++++++++++ .../views/main/compose/EasterEggLogo.kt | 8 +- .../android_eggs/views/main/compose/Wavy.kt | 37 +------ .../views/timeline/AndroidTimeline.kt | 18 +--- .../ic_android_snowcone_fg.xml | 26 ----- .../ic_android_tiramisu_fg.xml | 46 --------- 6 files changed, 108 insertions(+), 124 deletions(-) create mode 100644 app/src/main/java/com/dede/android_eggs/views/main/compose/DrawableImage.kt delete mode 100644 app/src/main/res/drawable-anydpi/ic_android_snowcone_fg.xml delete mode 100644 app/src/main/res/drawable-anydpi/ic_android_tiramisu_fg.xml diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/DrawableImage.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/DrawableImage.kt new file mode 100644 index 00000000..c459b040 --- /dev/null +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/DrawableImage.kt @@ -0,0 +1,97 @@ +package com.dede.android_eggs.views.main.compose + +import android.graphics.drawable.Drawable +import androidx.annotation.DrawableRes +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.size +import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.geometry.Size +import androidx.compose.ui.geometry.toRect +import androidx.compose.ui.graphics.drawscope.DrawScope +import androidx.compose.ui.graphics.nativeCanvas +import androidx.compose.ui.graphics.painter.Painter +import androidx.compose.ui.graphics.toAndroidRectF +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.stringArrayResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.core.graphics.toRect +import com.dede.android_eggs.R +import com.dede.android_eggs.ui.drawables.AlterableAdaptiveIconDrawable +import com.dede.basic.requireDrawable + +@Composable +@Preview +fun PreviewDrawableImage() { + val context = LocalContext.current + Column(horizontalAlignment = Alignment.CenterHorizontally) { + DrawableImage(res = R.mipmap.ic_launcher_round, contentDescription = null) + + val maskPath = stringArrayResource(id = R.array.icon_shape_override_paths).last() + val drawable = remember(context.theme, maskPath) { + AlterableAdaptiveIconDrawable(context, R.mipmap.ic_launcher, maskPath) + } + DrawableImage( + drawable = drawable, contentDescription = null, + modifier = Modifier.size(56.dp) + ) + } +} + +@Composable +fun DrawableImage( + @DrawableRes res: Int, + contentDescription: String?, + modifier: Modifier = Modifier, + alignment: Alignment = Alignment.Center, + contentScale: ContentScale = ContentScale.Fit, +) { + val context = LocalContext.current + val drawable = remember(res, context.theme) { + context.requireDrawable(res) + } + DrawableImage( + drawable = drawable, + contentDescription = contentDescription, + modifier = modifier, + alignment = alignment, + contentScale = contentScale, + ) +} + +@Composable +fun DrawableImage( + drawable: Drawable, + contentDescription: String?, + modifier: Modifier = Modifier, + alignment: Alignment = Alignment.Center, + contentScale: ContentScale = ContentScale.Fit, +) { + Image( + painter = DrawablePainter(drawable), + contentDescription = contentDescription, + modifier = modifier, + alignment = alignment, + contentScale = contentScale, + ) +} + +private class DrawablePainter(private val drawable: Drawable) : Painter() { + + override val intrinsicSize: Size + get() = Size( + drawable.intrinsicWidth.toFloat(), + drawable.intrinsicHeight.toFloat() + ) + + override fun DrawScope.onDraw() { + val rect = size.toRect().toAndroidRectF().toRect() + drawable.bounds = rect + drawable.draw(drawContext.canvas.nativeCanvas) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggLogo.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggLogo.kt index a82d1374..5042660f 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggLogo.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggLogo.kt @@ -62,13 +62,11 @@ fun EasterEggLogo(egg: EasterEgg, size: Dp = 44.dp) { maskPath = it.getStringExtra(IconShapePref.EXTRA_ICON_SHAPE_PATH) } - val bitmap = remember(maskPath, egg, context.theme, px) { + val drawable = remember(maskPath, egg, context.theme) { AlterableAdaptiveIconDrawable(context, egg.iconRes, maskPath) - .toBitmap(px, px) - .asImageBitmap() } - Image( - bitmap = bitmap, + DrawableImage( + drawable = drawable, contentDescription = stringResource(egg.nicknameRes), modifier = Modifier.size(size) ) diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/Wavy.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/Wavy.kt index 58cb6e71..75868be0 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/Wavy.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/Wavy.kt @@ -1,31 +1,20 @@ package com.dede.android_eggs.views.main.compose -import android.graphics.drawable.Drawable import androidx.compose.foundation.Image import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier -import androidx.compose.ui.geometry.Rect -import androidx.compose.ui.geometry.Size import androidx.compose.ui.graphics.Color -import androidx.compose.ui.graphics.drawscope.DrawScope -import androidx.compose.ui.graphics.nativeCanvas -import androidx.compose.ui.graphics.painter.Painter import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.layout.ContentScale -import androidx.compose.ui.layout.onSizeChanged import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.painterResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.dede.android_eggs.R import com.dede.android_eggs.util.createRepeatWavyDrawable -import kotlin.math.roundToInt @Preview(showBackground = true) @Composable @@ -40,43 +29,23 @@ fun PreviewWavy() { } -class DrawablePainter(private val drawable: Drawable, private val bounds: Rect) : Painter() { - - override val intrinsicSize: Size - get() = Size(drawable.intrinsicWidth.toFloat(), drawable.intrinsicHeight.toFloat()) - - override fun DrawScope.onDraw() { - drawable.setBounds( - bounds.left.roundToInt(), - bounds.top.roundToInt(), - bounds.right.roundToInt(), - bounds.bottom.roundToInt() - ) - drawable.draw(drawContext.canvas.nativeCanvas) - } -} - @Composable fun Wavy(res: Int, repeat: Boolean = false, tint: Color? = null) { if (repeat) { val context = LocalContext.current - var bounds by remember { mutableStateOf(Rect.Zero) } - val bitmap = remember(res, context.theme) { + val drawable = remember(res, context.theme) { createRepeatWavyDrawable(context, res).apply { if (tint != null) { setTint(tint.toArgb()) } } } - Image( - painter = DrawablePainter(bitmap, bounds), + DrawableImage( + drawable = drawable, contentDescription = null, contentScale = ContentScale.FillBounds, modifier = Modifier .fillMaxWidth() - .onSizeChanged { - bounds = Rect(0f, 0f, it.width.toFloat(), it.height.toFloat()) - } .padding(vertical = 30.dp) ) } else { diff --git a/app/src/main/java/com/dede/android_eggs/views/timeline/AndroidTimeline.kt b/app/src/main/java/com/dede/android_eggs/views/timeline/AndroidTimeline.kt index bee05d2d..aa2eb702 100644 --- a/app/src/main/java/com/dede/android_eggs/views/timeline/AndroidTimeline.kt +++ b/app/src/main/java/com/dede/android_eggs/views/timeline/AndroidTimeline.kt @@ -2,7 +2,6 @@ package com.dede.android_eggs.views.timeline -import androidx.compose.foundation.Image import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.WindowInsets @@ -32,23 +31,21 @@ import androidx.compose.material3.rememberModalBottomSheetState import androidx.compose.runtime.Composable import androidx.compose.runtime.MutableState import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip -import androidx.compose.ui.graphics.asImageBitmap -import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.constraintlayout.compose.ConstraintLayout import androidx.constraintlayout.compose.Dimension -import androidx.core.graphics.drawable.toBitmap import com.dede.android_eggs.main.entity.TimelineEvent -import com.dede.basic.requireDrawable +import com.dede.android_eggs.views.main.compose.DrawableImage @Preview @Composable -fun AndroidTimelineSheet(visible: MutableState) { +fun AndroidTimelineSheet(visible: MutableState = mutableStateOf(true)) { var show by visible if (!show) return val sheetState = rememberModalBottomSheetState() @@ -81,11 +78,6 @@ fun AndroidTimelineItem( timeline: TimelineEvent, isNewYearGroup: (current: TimelineEvent) -> Boolean, ) { - val context = LocalContext.current - val bitmap = remember(context.theme) { - context.requireDrawable(timeline.logoRes) - .toBitmap().asImageBitmap() - } val isNewGroup = remember(timeline) { isNewYearGroup.invoke(timeline) } ConstraintLayout( @@ -125,8 +117,8 @@ fun AndroidTimelineItem( bottom.linkTo(logo.top, 4.dp) } ) {} - Image( - bitmap = bitmap, contentDescription = null, + DrawableImage( + res = timeline.logoRes, contentDescription = null, modifier = Modifier .size(24.dp) .constrainAs(logo) { diff --git a/app/src/main/res/drawable-anydpi/ic_android_snowcone_fg.xml b/app/src/main/res/drawable-anydpi/ic_android_snowcone_fg.xml deleted file mode 100644 index 1faca7a3..00000000 --- a/app/src/main/res/drawable-anydpi/ic_android_snowcone_fg.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - diff --git a/app/src/main/res/drawable-anydpi/ic_android_tiramisu_fg.xml b/app/src/main/res/drawable-anydpi/ic_android_tiramisu_fg.xml deleted file mode 100644 index 62680516..00000000 --- a/app/src/main/res/drawable-anydpi/ic_android_tiramisu_fg.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - From 5cff972a6e97892a3517a3c2bb39a3fef6e588ae Mon Sep 17 00:00:00 2001 From: Hu Shenghao Date: Thu, 16 Nov 2023 17:57:18 +0800 Subject: [PATCH 15/30] feat: Restore IconVisualEffectsPref --- app/build.gradle.kts | 1 + .../AlterableAdaptiveIconDrawable.kt | 36 ++++-- .../views/main/EasterEggsActivity.kt | 113 +++++++++++++++++- .../views/main/compose/EasterEggItem.kt | 3 +- .../views/main/compose/EasterEggLogo.kt | 47 ++++++-- .../compose/{DrawableImage.kt => Image.kt} | 51 ++++---- .../views/main/compose/LocalProvider.kt | 5 + .../android_eggs/views/main/compose/Wavy.kt | 2 +- .../views/settings/SettingsPrefs.kt | 2 +- .../views/timeline/AndroidTimeline.kt | 4 +- 10 files changed, 208 insertions(+), 56 deletions(-) rename app/src/main/java/com/dede/android_eggs/views/main/compose/{DrawableImage.kt => Image.kt} (68%) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index bbc082c8..875c5801 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -129,6 +129,7 @@ dependencies { implementation(libs.androidx.compose.constraintlayout) implementation(libs.androidx.compose.ui.tooling.preview) debugImplementation(libs.androidx.compose.ui.tooling) + implementation("com.google.accompanist:accompanist-drawablepainter:0.32.0") implementation(libs.io.coil) implementation(libs.io.coil.compose) diff --git a/app/src/main/java/com/dede/android_eggs/ui/drawables/AlterableAdaptiveIconDrawable.kt b/app/src/main/java/com/dede/android_eggs/ui/drawables/AlterableAdaptiveIconDrawable.kt index 748384dd..71a9c363 100644 --- a/app/src/main/java/com/dede/android_eggs/ui/drawables/AlterableAdaptiveIconDrawable.kt +++ b/app/src/main/java/com/dede/android_eggs/ui/drawables/AlterableAdaptiveIconDrawable.kt @@ -22,7 +22,7 @@ import kotlin.math.roundToInt class AlterableAdaptiveIconDrawable( context: Context, @DrawableRes res: Int, - maskPathStr: String? = null + maskPathStr: String? = null, ) : Drawable() { companion object { @@ -51,6 +51,7 @@ class AlterableAdaptiveIconDrawable( private val childDrawables: Array private val mask: Path = Path() + private val savedMask: Path = Path() private val layerCanvas = Canvas() private var layerBitmap: Bitmap? = null @@ -70,7 +71,8 @@ class AlterableAdaptiveIconDrawable( if (TextUtils.isEmpty(pathStr)) { pathStr = context.resources.getString(R.string.icon_shape_circle_path) } - mask.set(PathParser.createPathFromPathData(pathStr)) + savedMask.set(PathParser.createPathFromPathData(pathStr)) + mask.set(savedMask) val drawable = context.requireDrawable(res) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && drawable is AdaptiveIconDrawable) { @@ -94,17 +96,22 @@ class AlterableAdaptiveIconDrawable( fun setMaskPath(pathStr: String) { if (TextUtils.isEmpty(pathStr)) return - mask.set(PathParser.createPathFromPathData(pathStr)) + savedMask.set(PathParser.createPathFromPathData(pathStr)) + updateMaskBoundsInternal(bounds) invalidateSelf() } fun setForegroundMatrix(matrix: Matrix) { if (!isAdaptiveIconDrawable) return foregroundMatrix.set(matrix) - layerShader = null invalidateSelf() } + override fun invalidateSelf() { + layerShader = null + super.invalidateSelf() + } + override fun draw(canvas: Canvas) { val layerBitmap: Bitmap = this.layerBitmap ?: return @@ -164,10 +171,8 @@ class AlterableAdaptiveIconDrawable( if (isAdaptiveIconDrawable) { val cX: Int = bounds.width() / 2 val cY: Int = bounds.height() / 2 - val insetWidth: Int = - (bounds.width() / (DEFAULT_VIEW_PORT_SCALE * 2)).toInt() - val insetHeight: Int = - (bounds.height() / (DEFAULT_VIEW_PORT_SCALE * 2)).toInt() + val insetWidth: Int = (bounds.width() / (DEFAULT_VIEW_PORT_SCALE * 2)).toInt() + val insetHeight: Int = (bounds.height() / (DEFAULT_VIEW_PORT_SCALE * 2)).toInt() outRect.set(cX - insetWidth, cY - insetHeight, cX + insetWidth, cY + insetHeight) } else { outRect.set(bounds) @@ -179,13 +184,15 @@ class AlterableAdaptiveIconDrawable( } private fun updateMaskBoundsInternal(bounds: Rect) { + maskMatrix.reset() maskMatrix.setScale(bounds.width() / MASK_SIZE, bounds.height() / MASK_SIZE) - mask.transform(maskMatrix) + savedMask.transform(maskMatrix, mask) // maskMatrix.postTranslate(bounds.left.toFloat(), bounds.top.toFloat()) // mask.transform(maskMatrix) - if (layerBitmap == null) { + val bitmap = layerBitmap + if (bitmap == null || bounds.width() != bitmap.width || bounds.height() != bitmap.height) { layerBitmap = Bitmap.createBitmap( bounds.width(), bounds.height(), Bitmap.Config.ARGB_8888 ) @@ -220,4 +227,13 @@ class AlterableAdaptiveIconDrawable( override fun getOpacity(): Int { return PixelFormat.TRANSLUCENT } + + override fun applyTheme(t: Resources.Theme) { + for (drawable in childDrawables) { + val d = drawable.drawable + if (d.canApplyTheme()) { + d.applyTheme(t) + } + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/dede/android_eggs/views/main/EasterEggsActivity.kt b/app/src/main/java/com/dede/android_eggs/views/main/EasterEggsActivity.kt index 0882a9e0..80ca80e2 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/EasterEggsActivity.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/EasterEggsActivity.kt @@ -1,32 +1,43 @@ package com.dede.android_eggs.views.main +import android.animation.Animator +import android.animation.ValueAnimator import android.annotation.SuppressLint import android.content.Intent +import android.graphics.Matrix import android.os.Bundle +import android.view.animation.LinearInterpolator import androidx.activity.compose.setContent import androidx.appcompat.app.AppCompatActivity import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.material3.Scaffold import androidx.compose.runtime.CompositionLocalProvider +import androidx.compose.ui.unit.IntSize import com.dede.android_eggs.R import com.dede.android_eggs.util.EdgeUtils +import com.dede.android_eggs.util.LocalEvent +import com.dede.android_eggs.util.OrientationAngleSensor import com.dede.android_eggs.util.ThemeUtils import com.dede.android_eggs.views.main.compose.AndroidSnapshotView import com.dede.android_eggs.views.main.compose.EasterEggItem +import com.dede.android_eggs.views.main.compose.LocalEasterEggLogoSensor import com.dede.android_eggs.views.main.compose.LocalFragmentManager import com.dede.android_eggs.views.main.compose.LocalHost import com.dede.android_eggs.views.main.compose.MainTitleBar import com.dede.android_eggs.views.main.compose.ProjectDescription import com.dede.android_eggs.views.main.compose.Wavy import com.dede.android_eggs.views.main.compose.Welcome +import com.dede.android_eggs.views.settings.prefs.IconVisualEffectsPref import com.dede.android_eggs.views.theme.AppTheme import com.dede.basic.provider.BaseEasterEgg import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.scopes.ActivityScoped import javax.inject.Inject +import kotlin.math.abs +import kotlin.math.max @AndroidEntryPoint -class EasterEggsActivity : AppCompatActivity() { +class EasterEggsActivity : AppCompatActivity(), OrientationAngleSensor.OnOrientationAnglesUpdate { @Inject lateinit var easterEggs: List<@JvmSuppressWildcards BaseEasterEgg> @@ -35,6 +46,79 @@ class EasterEggsActivity : AppCompatActivity() { @ActivityScoped lateinit var schemeHandler: SchemeHandler + private var orientationAngleSensor: OrientationAngleSensor? = null + private val sensor = Sensor() + + class Sensor { + + private val list = ArrayList() + + fun updateOrientationAngles(zAngle: Float, xAngle: Float, yAngle: Float) { + for (update in list) { + update.updateOrientationAngles(zAngle, xAngle, yAngle) + } + } + + fun register(update: Update) { + list.add(update) + } + + fun unregister(update: Update) { + list.remove(update) + } + + abstract class Update(private val size: IntSize) : + OrientationAngleSensor.OnOrientationAnglesUpdate { + + abstract fun onUpdate(matrix: Matrix) + + private val matrix = Matrix() + private var lastXDegrees: Float = 0f + private var lastYDegrees: Float = 0f + private var animator: Animator? = null + private val interpolator = LinearInterpolator() + + private fun Float.toRoundDegrees(): Float { + return ((Math.toDegrees(toDouble())) % 90f).toFloat() + } + + private fun calculateAnimDegrees(old: Float, new: Float, fraction: Float): Float { + return old + (new - old) * fraction + } + + override fun updateOrientationAngles(zAngle: Float, xAngle: Float, yAngle: Float) { + + val xDegrees = xAngle.toRoundDegrees()// 俯仰角 + val yDegrees = yAngle.toRoundDegrees()// 侧倾角 + if (max(abs(lastXDegrees - xDegrees), abs(lastYDegrees - yDegrees)) < 5f) return + + val width = size.width / 4f + val height = size.height / 4f + + animator?.cancel() + val saveXDegrees = lastXDegrees + val saveYDegrees = lastYDegrees + animator = ValueAnimator.ofFloat(0f, 1f) + .setDuration(100) + .apply { + interpolator = this@Update.interpolator + addUpdateListener { + val fraction = it.animatedFraction + val cXDegrees = calculateAnimDegrees(saveXDegrees, xDegrees, fraction) + val cYDegrees = calculateAnimDegrees(saveYDegrees, yDegrees, fraction) + val dx = cYDegrees / 90f * width * -1f + val dy = cXDegrees / 90f * height + matrix.setTranslate(dx, dy) + onUpdate(matrix) + } + start() + } + lastYDegrees = yDegrees + lastXDegrees = xDegrees + } + } + } + override fun onCreate(savedInstanceState: Bundle?) { ThemeUtils.tryApplyOLEDTheme(this) EdgeUtils.applyEdge(window) @@ -43,7 +127,8 @@ class EasterEggsActivity : AppCompatActivity() { setContent { CompositionLocalProvider( LocalFragmentManager provides supportFragmentManager, - LocalHost provides this + LocalHost provides this, + LocalEasterEggLogoSensor provides sensor, ) { AppTheme { Scaffold( @@ -71,9 +156,33 @@ class EasterEggsActivity : AppCompatActivity() { BackPressedHandler(this).register() + handleOrientationAngleSensor(IconVisualEffectsPref.isEnable(this)) + LocalEvent.receiver(this).register(IconVisualEffectsPref.ACTION_CHANGED) { + val enable = it.getBooleanExtra(IconVisualEffectsPref.EXTRA_VALUE, false) + handleOrientationAngleSensor(enable) + } + schemeHandler.handleIntent(intent) } + + private fun handleOrientationAngleSensor(enable: Boolean) { + val orientationAngleSensor = this.orientationAngleSensor + if (enable && orientationAngleSensor == null) { + this.orientationAngleSensor = OrientationAngleSensor( + this, this, this + ) + } else if (!enable && orientationAngleSensor != null) { + updateOrientationAngles(0f, 0f, 0f) + orientationAngleSensor.destroy() + this.orientationAngleSensor = null + } + } + + override fun updateOrientationAngles(zAngle: Float, xAngle: Float, yAngle: Float) { + sensor.updateOrientationAngles(zAngle, xAngle, yAngle) + } + @SuppressLint("MissingSuperCall") override fun onNewIntent(intent: Intent?) { super.onNewIntent(intent) diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggItem.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggItem.kt index 02d7b511..5cf5c80b 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggItem.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggItem.kt @@ -1,5 +1,6 @@ package com.dede.android_eggs.views.main.compose +import android.graphics.Matrix import android.view.HapticFeedbackConstants import androidx.compose.animation.core.Animatable import androidx.compose.animation.core.tween @@ -185,7 +186,7 @@ fun EasterEggItemContent(egg: EasterEgg, base: BaseEasterEgg, onSelected: (index .padding(end = 10.dp, bottom = 6.dp) .weight(1f, true) ) - EasterEggLogo(egg) + EasterEggLogo(egg, sensor = true) } Row( modifier = Modifier.withEasterEggGroupSelector(base, onSelected), diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggLogo.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggLogo.kt index 5042660f..655be4f3 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggLogo.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggLogo.kt @@ -1,31 +1,34 @@ package com.dede.android_eggs.views.main.compose +import android.annotation.SuppressLint +import android.graphics.Matrix import androidx.compose.foundation.Image import androidx.compose.foundation.layout.size import androidx.compose.foundation.lazy.grid.GridCells import androidx.compose.foundation.lazy.grid.LazyVerticalGrid import androidx.compose.foundation.lazy.grid.items import androidx.compose.runtime.Composable +import androidx.compose.runtime.DisposableEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.asImageBitmap import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp +import androidx.compose.ui.unit.IntSize import androidx.compose.ui.unit.dp -import androidx.core.graphics.drawable.toBitmap import com.dede.android_eggs.ui.drawables.AlterableAdaptiveIconDrawable import com.dede.android_eggs.util.LocalEvent import com.dede.android_eggs.views.main.EasterEggModules +import com.dede.android_eggs.views.main.EasterEggsActivity import com.dede.android_eggs.views.settings.prefs.IconShapePref import com.dede.basic.provider.EasterEgg import com.dede.basic.provider.EasterEggProvider +import com.google.accompanist.drawablepainter.rememberDrawablePainter import dagger.Module import kotlin.math.roundToInt @@ -51,22 +54,44 @@ fun PreviewEasterEggLogo() { } } +@SuppressLint("NewApi") @Composable -fun EasterEggLogo(egg: EasterEgg, size: Dp = 44.dp) { +fun EasterEggLogo(egg: EasterEgg, size: Dp = 44.dp, sensor: Boolean = false) { if (egg.supportAdaptiveIcon) { val px = with(LocalDensity.current) { size.toPx().roundToInt() } val context = LocalContext.current - var maskPath: String? by remember { mutableStateOf(IconShapePref.getMaskPath(context)) } - LocalEvent.receiver().register(IconShapePref.ACTION_CHANGED) { - maskPath = it.getStringExtra(IconShapePref.EXTRA_ICON_SHAPE_PATH) - } - + val maskPath: String? by remember { mutableStateOf(IconShapePref.getMaskPath(context)) } val drawable = remember(maskPath, egg, context.theme) { AlterableAdaptiveIconDrawable(context, egg.iconRes, maskPath) } - DrawableImage( - drawable = drawable, + LocalEvent.receiver().register(IconShapePref.ACTION_CHANGED) { + val maskPath = it.getStringExtra(IconShapePref.EXTRA_ICON_SHAPE_PATH) + if (maskPath != null) { + drawable.setMaskPath(maskPath) + } + } + val drawablePainter = rememberDrawablePainter(drawable = drawable) + if (sensor) { + val listener = remember(drawable) { + object : EasterEggsActivity.Sensor.Update( + IntSize(drawable.bounds.width(), drawable.bounds.height()) + ) { + override fun onUpdate(matrix: Matrix) { + drawable.setForegroundMatrix(matrix) + } + } + } + val sensorGroup = LocalEasterEggLogoSensor.current + DisposableEffect(egg, px) { + sensorGroup.register(listener) + onDispose { + sensorGroup.unregister(listener) + } + } + } + Image( + painter = drawablePainter, contentDescription = stringResource(egg.nicknameRes), modifier = Modifier.size(size) ) diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/DrawableImage.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/Image.kt similarity index 68% rename from app/src/main/java/com/dede/android_eggs/views/main/compose/DrawableImage.kt rename to app/src/main/java/com/dede/android_eggs/views/main/compose/Image.kt index c459b040..10257bba 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/DrawableImage.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/Image.kt @@ -9,34 +9,28 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.geometry.Size -import androidx.compose.ui.geometry.toRect -import androidx.compose.ui.graphics.drawscope.DrawScope -import androidx.compose.ui.graphics.nativeCanvas -import androidx.compose.ui.graphics.painter.Painter -import androidx.compose.ui.graphics.toAndroidRectF import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringArrayResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import androidx.core.graphics.toRect import com.dede.android_eggs.R import com.dede.android_eggs.ui.drawables.AlterableAdaptiveIconDrawable import com.dede.basic.requireDrawable +import com.google.accompanist.drawablepainter.rememberDrawablePainter @Composable @Preview -fun PreviewDrawableImage() { +fun PreviewImage() { val context = LocalContext.current Column(horizontalAlignment = Alignment.CenterHorizontally) { - DrawableImage(res = R.mipmap.ic_launcher_round, contentDescription = null) + Image(res = R.mipmap.ic_launcher_round, contentDescription = null) val maskPath = stringArrayResource(id = R.array.icon_shape_override_paths).last() val drawable = remember(context.theme, maskPath) { AlterableAdaptiveIconDrawable(context, R.mipmap.ic_launcher, maskPath) } - DrawableImage( + Image( drawable = drawable, contentDescription = null, modifier = Modifier.size(56.dp) ) @@ -44,7 +38,7 @@ fun PreviewDrawableImage() { } @Composable -fun DrawableImage( +fun Image( @DrawableRes res: Int, contentDescription: String?, modifier: Modifier = Modifier, @@ -55,7 +49,7 @@ fun DrawableImage( val drawable = remember(res, context.theme) { context.requireDrawable(res) } - DrawableImage( + Image( drawable = drawable, contentDescription = contentDescription, modifier = modifier, @@ -65,15 +59,16 @@ fun DrawableImage( } @Composable -fun DrawableImage( +fun Image( drawable: Drawable, contentDescription: String?, modifier: Modifier = Modifier, alignment: Alignment = Alignment.Center, contentScale: ContentScale = ContentScale.Fit, ) { + val drawablePainter = rememberDrawablePainter(drawable = drawable) Image( - painter = DrawablePainter(drawable), + painter = drawablePainter, contentDescription = contentDescription, modifier = modifier, alignment = alignment, @@ -81,17 +76,17 @@ fun DrawableImage( ) } -private class DrawablePainter(private val drawable: Drawable) : Painter() { - - override val intrinsicSize: Size - get() = Size( - drawable.intrinsicWidth.toFloat(), - drawable.intrinsicHeight.toFloat() - ) - - override fun DrawScope.onDraw() { - val rect = size.toRect().toAndroidRectF().toRect() - drawable.bounds = rect - drawable.draw(drawContext.canvas.nativeCanvas) - } -} \ No newline at end of file +//private class DrawablePainter(private val drawable: Drawable) : Painter() { +// +// override val intrinsicSize: Size +// get() = Size( +// drawable.intrinsicWidth.toFloat(), +// drawable.intrinsicHeight.toFloat() +// ) +// +// override fun DrawScope.onDraw() { +// val rect = size.toRect().toAndroidRectF().toRect() +// drawable.bounds = rect +// drawable.draw(drawContext.canvas.nativeCanvas) +// } +//} \ No newline at end of file diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/LocalProvider.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/LocalProvider.kt index 9cf08735..2995ebce 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/LocalProvider.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/LocalProvider.kt @@ -4,6 +4,7 @@ import android.app.Activity import android.util.Log import androidx.compose.runtime.staticCompositionLocalOf import androidx.fragment.app.FragmentManager +import com.dede.android_eggs.views.main.EasterEggsActivity val LocalFragmentManager = staticCompositionLocalOf { @@ -13,3 +14,7 @@ val LocalFragmentManager = staticCompositionLocalOf { val LocalHost = staticCompositionLocalOf { null } +val LocalEasterEggLogoSensor = staticCompositionLocalOf { + throw IllegalStateException("CompositionLocal LocalEasterEggLogoSensor not present") +} + diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/Wavy.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/Wavy.kt index 75868be0..8a331a67 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/Wavy.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/Wavy.kt @@ -40,7 +40,7 @@ fun Wavy(res: Int, repeat: Boolean = false, tint: Color? = null) { } } } - DrawableImage( + Image( drawable = drawable, contentDescription = null, contentScale = ContentScale.FillBounds, diff --git a/app/src/main/java/com/dede/android_eggs/views/settings/SettingsPrefs.kt b/app/src/main/java/com/dede/android_eggs/views/settings/SettingsPrefs.kt index 55641753..0d5f07c4 100644 --- a/app/src/main/java/com/dede/android_eggs/views/settings/SettingsPrefs.kt +++ b/app/src/main/java/com/dede/android_eggs/views/settings/SettingsPrefs.kt @@ -22,7 +22,7 @@ object SettingsPrefs { nightModePref, LanguagePref(), IconShapePref(), -// IconVisualEffectsPref(), + IconVisualEffectsPref(), dynamicColorPref, ) } diff --git a/app/src/main/java/com/dede/android_eggs/views/timeline/AndroidTimeline.kt b/app/src/main/java/com/dede/android_eggs/views/timeline/AndroidTimeline.kt index aa2eb702..87cd938d 100644 --- a/app/src/main/java/com/dede/android_eggs/views/timeline/AndroidTimeline.kt +++ b/app/src/main/java/com/dede/android_eggs/views/timeline/AndroidTimeline.kt @@ -41,7 +41,7 @@ import androidx.compose.ui.unit.dp import androidx.constraintlayout.compose.ConstraintLayout import androidx.constraintlayout.compose.Dimension import com.dede.android_eggs.main.entity.TimelineEvent -import com.dede.android_eggs.views.main.compose.DrawableImage +import com.dede.android_eggs.views.main.compose.Image @Preview @Composable @@ -117,7 +117,7 @@ fun AndroidTimelineItem( bottom.linkTo(logo.top, 4.dp) } ) {} - DrawableImage( + Image( res = timeline.logoRes, contentDescription = null, modifier = Modifier .size(24.dp) From 7127c5dddd171030213091bdaa2fdc3669c32aee Mon Sep 17 00:00:00 2001 From: Hu Shenghao Date: Thu, 16 Nov 2023 22:30:24 +0800 Subject: [PATCH 16/30] feat: ViscousFluid swipe --- app/build.gradle.kts | 2 +- .../ui/views/ViscousFluidInterpolator.kt | 46 +++++++ .../util/OrientationAngleSensor.kt | 2 + .../main/EasterEggLogoSensorMatrixConvert.kt | 83 ++++++++++++ .../views/main/EasterEggsActivity.kt | 119 ++++-------------- .../main/compose/EasterEggGroupSelector.kt | 59 +++++---- .../views/main/compose/EasterEggItem.kt | 9 +- .../views/main/compose/EasterEggLogo.kt | 11 +- .../views/main/compose/LocalProvider.kt | 4 +- .../views/main/compose/ProjectDescription.kt | 19 ++- app/src/main/res/values/dimens.xml | 2 - gradle/libs.versions.toml | 3 + 12 files changed, 213 insertions(+), 146 deletions(-) create mode 100644 app/src/main/java/com/dede/android_eggs/ui/views/ViscousFluidInterpolator.kt create mode 100644 app/src/main/java/com/dede/android_eggs/views/main/EasterEggLogoSensorMatrixConvert.kt diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 875c5801..88293f7b 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -129,7 +129,7 @@ dependencies { implementation(libs.androidx.compose.constraintlayout) implementation(libs.androidx.compose.ui.tooling.preview) debugImplementation(libs.androidx.compose.ui.tooling) - implementation("com.google.accompanist:accompanist-drawablepainter:0.32.0") + implementation(libs.accompanist.drawablepainter) implementation(libs.io.coil) implementation(libs.io.coil.compose) diff --git a/app/src/main/java/com/dede/android_eggs/ui/views/ViscousFluidInterpolator.kt b/app/src/main/java/com/dede/android_eggs/ui/views/ViscousFluidInterpolator.kt new file mode 100644 index 00000000..f2fff27d --- /dev/null +++ b/app/src/main/java/com/dede/android_eggs/ui/views/ViscousFluidInterpolator.kt @@ -0,0 +1,46 @@ +package com.dede.android_eggs.ui.views + +import android.view.animation.Interpolator +import kotlin.math.exp + +// android.widget.Scroller.ViscousFluidInterpolator +class ViscousFluidInterpolator : Interpolator { + + override fun getInterpolation(input: Float): Float { + val interpolated = VISCOUS_FLUID_NORMALIZE * viscousFluid(input) + return if (interpolated > 0) { + interpolated + VISCOUS_FLUID_OFFSET + } else interpolated + } + + companion object { + + fun getInstance(): ViscousFluidInterpolator { + return ViscousFluidInterpolator() + } + + /** + * Controls the viscous fluid effect (how much of it). + */ + private const val VISCOUS_FLUID_SCALE = 8.0f + + // must be set to 1.0 (used in viscousFluid()) + private val VISCOUS_FLUID_NORMALIZE = 1.0f / viscousFluid(1.0f) + + // account for very small floating-point error + private var VISCOUS_FLUID_OFFSET = 1.0f - VISCOUS_FLUID_NORMALIZE * viscousFluid(1.0f) + + private fun viscousFluid(x: Float): Float { + var x = x + x *= VISCOUS_FLUID_SCALE + if (x < 1.0f) { + x -= 1.0f - exp(-x.toDouble()).toFloat() + } else { + val start = 0.36787945f // 1/e == exp(-1) + x = 1.0f - exp((1.0f - x).toDouble()).toFloat() + x = start + x * (1.0f - start) + } + return x + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/dede/android_eggs/util/OrientationAngleSensor.kt b/app/src/main/java/com/dede/android_eggs/util/OrientationAngleSensor.kt index f6ffa2a9..1a3fb0b6 100644 --- a/app/src/main/java/com/dede/android_eggs/util/OrientationAngleSensor.kt +++ b/app/src/main/java/com/dede/android_eggs/util/OrientationAngleSensor.kt @@ -95,6 +95,8 @@ class OrientationAngleSensor( } fun destroy() { + // reset default angles + onOrientationAnglesUpdate.updateOrientationAngles(0f, 0f, 0f) stop() owner?.lifecycle?.removeObserver(this) } diff --git a/app/src/main/java/com/dede/android_eggs/views/main/EasterEggLogoSensorMatrixConvert.kt b/app/src/main/java/com/dede/android_eggs/views/main/EasterEggLogoSensorMatrixConvert.kt new file mode 100644 index 00000000..dd551a19 --- /dev/null +++ b/app/src/main/java/com/dede/android_eggs/views/main/EasterEggLogoSensorMatrixConvert.kt @@ -0,0 +1,83 @@ +package com.dede.android_eggs.views.main + +import android.animation.Animator +import android.animation.ValueAnimator +import android.graphics.Matrix +import android.graphics.Rect +import android.view.animation.LinearInterpolator +import com.dede.android_eggs.util.OrientationAngleSensor +import javax.inject.Inject +import kotlin.math.abs +import kotlin.math.max + +class EasterEggLogoSensorMatrixConvert @Inject constructor() : + OrientationAngleSensor.OnOrientationAnglesUpdate { + + private val list = ArrayList() + + fun register(listener: Listener) { + list.add(listener) + } + + fun unregister(listener: Listener) { + list.remove(listener) + } + + abstract class Listener(bounds: Rect) { + + private val width = bounds.width() / 6f + private val height = bounds.height() / 6f + + private val matrix = Matrix() + + fun updateDegrees(cXDegrees: Float, cYDegrees: Float) { + // Swap coordinate systems + val dx = cYDegrees / 90f * width * -1f + val dy = cXDegrees / 90f * height + matrix.setTranslate(dx, dy) + onUpdateMatrix(matrix) + } + + abstract fun onUpdateMatrix(matrix: Matrix) + } + + private var lastXDegrees: Float = 0f + private var lastYDegrees: Float = 0f + private var animator: Animator? = null + private val interpolator = LinearInterpolator() + + private fun Float.toRoundDegrees(): Float { + return ((Math.toDegrees(toDouble())) % 90f).toFloat() + } + + private fun calculateAnimDegrees(old: Float, new: Float, fraction: Float): Float { + return old + (new - old) * fraction + } + + override fun updateOrientationAngles(zAngle: Float, xAngle: Float, yAngle: Float) { + val xDegrees = xAngle.toRoundDegrees()// 俯仰角 + val yDegrees = yAngle.toRoundDegrees()// 侧倾角 + if (max(abs(lastXDegrees - xDegrees), abs(lastYDegrees - yDegrees)) < 5f) return + + animator?.cancel() + val saveXDegrees = lastXDegrees + val saveYDegrees = lastYDegrees + animator = ValueAnimator.ofFloat(0f, 1f) + .setDuration(80) + .apply { + interpolator = this@EasterEggLogoSensorMatrixConvert.interpolator + addUpdateListener { + val fraction = it.animatedFraction + val cXDegrees = calculateAnimDegrees(saveXDegrees, xDegrees, fraction) + val cYDegrees = calculateAnimDegrees(saveYDegrees, yDegrees, fraction) + + for (listener in list) { + listener.updateDegrees(cXDegrees, cYDegrees) + } + } + start() + } + lastYDegrees = yDegrees + lastXDegrees = xDegrees + } +} \ No newline at end of file diff --git a/app/src/main/java/com/dede/android_eggs/views/main/EasterEggsActivity.kt b/app/src/main/java/com/dede/android_eggs/views/main/EasterEggsActivity.kt index 80ca80e2..41616de2 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/EasterEggsActivity.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/EasterEggsActivity.kt @@ -1,18 +1,20 @@ package com.dede.android_eggs.views.main -import android.animation.Animator -import android.animation.ValueAnimator import android.annotation.SuppressLint import android.content.Intent -import android.graphics.Matrix import android.os.Bundle -import android.view.animation.LinearInterpolator import androidx.activity.compose.setContent import androidx.appcompat.app.AppCompatActivity +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.sizeIn import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.material3.Scaffold import androidx.compose.runtime.CompositionLocalProvider -import androidx.compose.ui.unit.IntSize +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp import com.dede.android_eggs.R import com.dede.android_eggs.util.EdgeUtils import com.dede.android_eggs.util.LocalEvent @@ -33,11 +35,9 @@ import com.dede.basic.provider.BaseEasterEgg import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.scopes.ActivityScoped import javax.inject.Inject -import kotlin.math.abs -import kotlin.math.max @AndroidEntryPoint -class EasterEggsActivity : AppCompatActivity(), OrientationAngleSensor.OnOrientationAnglesUpdate { +class EasterEggsActivity : AppCompatActivity() { @Inject lateinit var easterEggs: List<@JvmSuppressWildcards BaseEasterEgg> @@ -47,77 +47,9 @@ class EasterEggsActivity : AppCompatActivity(), OrientationAngleSensor.OnOrienta lateinit var schemeHandler: SchemeHandler private var orientationAngleSensor: OrientationAngleSensor? = null - private val sensor = Sensor() - class Sensor { - - private val list = ArrayList() - - fun updateOrientationAngles(zAngle: Float, xAngle: Float, yAngle: Float) { - for (update in list) { - update.updateOrientationAngles(zAngle, xAngle, yAngle) - } - } - - fun register(update: Update) { - list.add(update) - } - - fun unregister(update: Update) { - list.remove(update) - } - - abstract class Update(private val size: IntSize) : - OrientationAngleSensor.OnOrientationAnglesUpdate { - - abstract fun onUpdate(matrix: Matrix) - - private val matrix = Matrix() - private var lastXDegrees: Float = 0f - private var lastYDegrees: Float = 0f - private var animator: Animator? = null - private val interpolator = LinearInterpolator() - - private fun Float.toRoundDegrees(): Float { - return ((Math.toDegrees(toDouble())) % 90f).toFloat() - } - - private fun calculateAnimDegrees(old: Float, new: Float, fraction: Float): Float { - return old + (new - old) * fraction - } - - override fun updateOrientationAngles(zAngle: Float, xAngle: Float, yAngle: Float) { - - val xDegrees = xAngle.toRoundDegrees()// 俯仰角 - val yDegrees = yAngle.toRoundDegrees()// 侧倾角 - if (max(abs(lastXDegrees - xDegrees), abs(lastYDegrees - yDegrees)) < 5f) return - - val width = size.width / 4f - val height = size.height / 4f - - animator?.cancel() - val saveXDegrees = lastXDegrees - val saveYDegrees = lastYDegrees - animator = ValueAnimator.ofFloat(0f, 1f) - .setDuration(100) - .apply { - interpolator = this@Update.interpolator - addUpdateListener { - val fraction = it.animatedFraction - val cXDegrees = calculateAnimDegrees(saveXDegrees, xDegrees, fraction) - val cYDegrees = calculateAnimDegrees(saveYDegrees, yDegrees, fraction) - val dx = cYDegrees / 90f * width * -1f - val dy = cXDegrees / 90f * height - matrix.setTranslate(dx, dy) - onUpdate(matrix) - } - start() - } - lastYDegrees = yDegrees - lastXDegrees = xDegrees - } - } - } + @Inject + lateinit var sensor: EasterEggLogoSensorMatrixConvert override fun onCreate(savedInstanceState: Bundle?) { ThemeUtils.tryApplyOLEDTheme(this) @@ -138,15 +70,23 @@ class EasterEggsActivity : AppCompatActivity(), OrientationAngleSensor.OnOrienta ) { contentPadding -> Welcome() - LazyColumn(contentPadding = contentPadding) { - item { - AndroidSnapshotView() - Wavy(res = R.drawable.ic_wavy_line) - for (easterEgg in easterEggs) { - EasterEggItem(easterEgg) + Box( + modifier = Modifier.fillMaxSize(), + contentAlignment = Alignment.Center, + ) { + LazyColumn( + contentPadding = contentPadding, + modifier = Modifier.sizeIn(maxWidth = 560.dp), + ) { + item { + AndroidSnapshotView() + Wavy(res = R.drawable.ic_wavy_line) + for (easterEgg in easterEggs) { + EasterEggItem(easterEgg) + } + Wavy(res = R.drawable.ic_wavy_line) + ProjectDescription() } - Wavy(res = R.drawable.ic_wavy_line) - ProjectDescription() } } } @@ -170,19 +110,14 @@ class EasterEggsActivity : AppCompatActivity(), OrientationAngleSensor.OnOrienta val orientationAngleSensor = this.orientationAngleSensor if (enable && orientationAngleSensor == null) { this.orientationAngleSensor = OrientationAngleSensor( - this, this, this + this, this, sensor ) } else if (!enable && orientationAngleSensor != null) { - updateOrientationAngles(0f, 0f, 0f) orientationAngleSensor.destroy() this.orientationAngleSensor = null } } - override fun updateOrientationAngles(zAngle: Float, xAngle: Float, yAngle: Float) { - sensor.updateOrientationAngles(zAngle, xAngle, yAngle) - } - @SuppressLint("MissingSuperCall") override fun onNewIntent(intent: Intent?) { super.onNewIntent(intent) diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggGroupSelector.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggGroupSelector.kt index 3543b36f..88be9164 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggGroupSelector.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggGroupSelector.kt @@ -31,35 +31,34 @@ fun Modifier.withEasterEggGroupSelector( val activity = LocalHost.current var popupAnchorBounds by remember { mutableStateOf(Rect.Zero) } return clickable { - // DropdownMenu style error, use native popup - if (activity == null) return@clickable - val parent = activity.findViewById(android.R.id.content) - val fakeView = View(activity).apply { - x = popupAnchorBounds.left - y = popupAnchorBounds.top - } - val params = FrameLayout.LayoutParams( - popupAnchorBounds.width.roundToInt(), - popupAnchorBounds.height.roundToInt() - ) - parent.addView(fakeView, parent.childCount, params) - EggActionHelp.showEggGroupMenu( - activity, - fakeView, - base, - onSelected = onSelected, - onDismiss = { - parent.removeView(fakeView) - }) - } - .onGloballyPositioned { - val position = it.positionInWindow() - val bounds = it.boundsInParent() - popupAnchorBounds = Rect( - position.x, - position.y, - position.x + bounds.width, - position.y + bounds.height - ) + // DropdownMenu style error, use native popup + if (activity == null) return@clickable + val parent = activity.findViewById(android.R.id.content) + val fakeView = View(activity).apply { + x = popupAnchorBounds.left + y = popupAnchorBounds.top } + val params = FrameLayout.LayoutParams( + popupAnchorBounds.width.roundToInt(), + popupAnchorBounds.height.roundToInt() + ) + parent.addView(fakeView, params) + EggActionHelp.showEggGroupMenu( + activity, + fakeView, + base, + onSelected = onSelected, + onDismiss = { + parent.removeView(fakeView) + }) + }.onGloballyPositioned { + val position = it.positionInWindow() + val bounds = it.boundsInParent() + popupAnchorBounds = Rect( + position.x, + position.y, + position.x + bounds.width, + position.y + bounds.height + ) + } } diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggItem.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggItem.kt index 5cf5c80b..c339a553 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggItem.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggItem.kt @@ -1,6 +1,5 @@ package com.dede.android_eggs.views.main.compose -import android.graphics.Matrix import android.view.HapticFeedbackConstants import androidx.compose.animation.core.Animatable import androidx.compose.animation.core.tween @@ -51,6 +50,7 @@ import androidx.compose.ui.unit.dp import com.dede.android_eggs.R import com.dede.android_eggs.main.EasterEggHelp import com.dede.android_eggs.main.EggActionHelp +import com.dede.android_eggs.ui.views.ViscousFluidInterpolator import com.dede.basic.provider.BaseEasterEgg import com.dede.basic.provider.EasterEgg import com.dede.basic.provider.EasterEggGroup @@ -104,6 +104,8 @@ fun EasterEggItemSwipe( var triggerOffsetX by remember { mutableFloatStateOf(0f) } var needTrigger by remember { mutableStateOf(false) } + val intercept = ViscousFluidInterpolator.getInstance() + LaunchedEffect(released) { if (released) { val releaseAnim = Animatable(offsetX) @@ -127,7 +129,10 @@ fun EasterEggItemSwipe( reverseDirection = LocalLayoutDirection.current == LayoutDirection.Rtl, orientation = Orientation.Horizontal, state = rememberDraggableState { delta -> - offsetX += delta + val r = intercept.getInterpolation( + 1f - abs(offsetX / (triggerOffsetX * 1.24f)) + ) + offsetX += delta * min(r, 1f) if (supportShortcut) { if (!needTrigger && (-offsetX) >= triggerOffsetX) { needTrigger = true diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggLogo.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggLogo.kt index 655be4f3..d5749f15 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggLogo.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggLogo.kt @@ -19,12 +19,11 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp -import androidx.compose.ui.unit.IntSize import androidx.compose.ui.unit.dp import com.dede.android_eggs.ui.drawables.AlterableAdaptiveIconDrawable import com.dede.android_eggs.util.LocalEvent +import com.dede.android_eggs.views.main.EasterEggLogoSensorMatrixConvert import com.dede.android_eggs.views.main.EasterEggModules -import com.dede.android_eggs.views.main.EasterEggsActivity import com.dede.android_eggs.views.settings.prefs.IconShapePref import com.dede.basic.provider.EasterEgg import com.dede.basic.provider.EasterEggProvider @@ -73,11 +72,9 @@ fun EasterEggLogo(egg: EasterEgg, size: Dp = 44.dp, sensor: Boolean = false) { } val drawablePainter = rememberDrawablePainter(drawable = drawable) if (sensor) { - val listener = remember(drawable) { - object : EasterEggsActivity.Sensor.Update( - IntSize(drawable.bounds.width(), drawable.bounds.height()) - ) { - override fun onUpdate(matrix: Matrix) { + val listener = remember(drawable.bounds) { + object : EasterEggLogoSensorMatrixConvert.Listener(drawable.bounds) { + override fun onUpdateMatrix(matrix: Matrix) { drawable.setForegroundMatrix(matrix) } } diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/LocalProvider.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/LocalProvider.kt index 2995ebce..6c8ae5a6 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/LocalProvider.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/LocalProvider.kt @@ -4,7 +4,7 @@ import android.app.Activity import android.util.Log import androidx.compose.runtime.staticCompositionLocalOf import androidx.fragment.app.FragmentManager -import com.dede.android_eggs.views.main.EasterEggsActivity +import com.dede.android_eggs.views.main.EasterEggLogoSensorMatrixConvert val LocalFragmentManager = staticCompositionLocalOf { @@ -14,7 +14,7 @@ val LocalFragmentManager = staticCompositionLocalOf { val LocalHost = staticCompositionLocalOf { null } -val LocalEasterEggLogoSensor = staticCompositionLocalOf { +val LocalEasterEggLogoSensor = staticCompositionLocalOf { throw IllegalStateException("CompositionLocal LocalEasterEggLogoSensor not present") } diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/ProjectDescription.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/ProjectDescription.kt index 774528b7..a49a25fb 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/ProjectDescription.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/ProjectDescription.kt @@ -6,6 +6,7 @@ import android.content.Intent import androidx.annotation.StringRes import androidx.compose.foundation.Image import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.ExperimentalLayoutApi import androidx.compose.foundation.layout.FlowRow @@ -50,7 +51,6 @@ private fun ChipItem( ) { Row( verticalAlignment = Alignment.CenterVertically, - modifier = Modifier.padding(vertical = 4.dp) ) { Text( text = stringResource(textRes), @@ -63,7 +63,7 @@ private fun ChipItem( text = stringResource(id = R.string.char_separator), style = typography.bodyMedium, color = colorScheme.secondary, - modifier = Modifier.padding(horizontal = 6.dp) + modifier = Modifier.padding(start = 6.dp) ) } } @@ -78,9 +78,7 @@ private fun ChipItem2( text = stringResource(textRes), style = typography.titleSmall, color = colorScheme.secondary, - modifier = Modifier - .padding(vertical = 4.dp, horizontal = 8.dp) - .clickable(onClick = onClick) + modifier = Modifier.clickable(onClick = onClick) ) } @@ -150,7 +148,9 @@ fun ProjectDescription() { FlowRow( modifier = Modifier .padding(top = 20.dp) - .fillMaxWidth() + .fillMaxWidth(), + horizontalArrangement = Arrangement.spacedBy(6.dp), + verticalArrangement = Arrangement.spacedBy(8.dp) ) { ChipItem(R.string.label_github) { openCustomTab(R.string.url_github) @@ -184,14 +184,13 @@ fun ProjectDescription() { } Wavy(res = R.drawable.ic_wavy_line_1, true, colorScheme.secondaryContainer) FlowRow( - modifier = Modifier.fillMaxWidth() + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.spacedBy(16.dp), + verticalArrangement = Arrangement.spacedBy(8.dp) ) { Text( text = stringResource(R.string.app_name), style = typography.titleSmall, - modifier = Modifier - .padding(vertical = 4.dp) - .then(Modifier.padding(end = 8.dp)) ) ChipItem2(R.string.label_privacy_policy) { openCustomTab(R.string.url_privacy) diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 7a827ad9..55344e51 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -1,5 +1,3 @@ - 560dp - 6dp \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a5668707..167aec99 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -5,6 +5,8 @@ kotlin = "1.9.20" compose-kotlin-compiler = "1.5.4" agp = "8.1.3" hilt = "2.48.1" +# https://google.github.io/accompanist +accompanist = "0.33.2-alpha" [plugins] android-application = { id = "com.android.application", version.ref = "agp" } @@ -41,6 +43,7 @@ androidx-compose-material = { module = "androidx.compose.material:material" } androidx-compose-material3 = { module = "androidx.compose.material3:material3" } androidx-compose-material-icons = { module = "androidx.compose.material:material-icons-extended" } androidx-compose-constraintlayout = "androidx.constraintlayout:constraintlayout-compose:1.0.1" +accompanist-drawablepainter = { module = "com.google.accompanist:accompanist-drawablepainter", version.ref = "accompanist" } hilt-android = { module = "com.google.dagger:hilt-android", version.ref = "hilt" } hilt-compiler = { module = "com.google.dagger:hilt-compiler", version.ref = "hilt" } From 4a6b7d6af52546b516fae483a3993fbde2a072fd Mon Sep 17 00:00:00 2001 From: Hu Shenghao Date: Fri, 17 Nov 2023 17:13:37 +0800 Subject: [PATCH 17/30] feat: EasterEggScreen --- .../dede/android_eggs/main/EasterEggHelp.kt | 23 +++++ .../views/main/EasterEggsActivity.kt | 38 +------- .../views/main/compose/AndroidViews.kt | 2 +- .../main/compose/EasterEggGroupSelector.kt | 3 +- .../views/main/compose/EasterEggItem.kt | 92 ++++++++++++++----- .../views/main/compose/EasterEggLogo.kt | 33 ++----- .../views/main/compose/EasterEggScreen.kt | 55 +++++++++++ .../views/main/compose/LocalProvider.kt | 24 +++-- .../views/main/compose/MainTitleBar.kt | 4 +- .../views/main/compose/ProjectDescription.kt | 26 ++---- .../android_eggs/views/main/compose/Wavy.kt | 11 +-- .../views/placeholder/PlaceholderActivity.kt | 24 ++--- 12 files changed, 205 insertions(+), 130 deletions(-) create mode 100644 app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggScreen.kt diff --git a/app/src/main/java/com/dede/android_eggs/main/EasterEggHelp.kt b/app/src/main/java/com/dede/android_eggs/main/EasterEggHelp.kt index 094ee88d..e04c4344 100644 --- a/app/src/main/java/com/dede/android_eggs/main/EasterEggHelp.kt +++ b/app/src/main/java/com/dede/android_eggs/main/EasterEggHelp.kt @@ -5,15 +5,38 @@ import android.graphics.drawable.Drawable import android.os.Build import android.util.SparseArray import androidx.annotation.StringRes +import androidx.compose.runtime.Composable +import androidx.compose.ui.platform.LocalInspectionMode import com.dede.android_eggs.R import com.dede.android_eggs.ui.drawables.AlterableAdaptiveIconDrawable +import com.dede.android_eggs.views.main.EasterEggModules import com.dede.android_eggs.views.settings.prefs.IconShapePref import com.dede.basic.provider.EasterEgg +import com.dede.basic.provider.EasterEggProvider import com.dede.basic.requireDrawable +import dagger.Module object EasterEggHelp { + @Composable + fun previewEasterEggs(): List { + if (!LocalInspectionMode.current) { + throw IllegalStateException("Only call from Inspection Mode") + } + val module = EasterEggModules::class.java.getAnnotation(Module::class.java) + val baseEasterEggs = module.includes.map { + val instance = try { + it.java.getField("INSTANCE").get(null) + } catch (e: Exception) { + it.java.getConstructor().newInstance() + } + val provider = instance as EasterEggProvider + provider.provideEasterEgg() + } + return EasterEggModules.providePureEasterEggList(baseEasterEggs) + } + class VersionFormatter private constructor( @StringRes val nicknameRes: Int, vararg versionNames: CharSequence, diff --git a/app/src/main/java/com/dede/android_eggs/views/main/EasterEggsActivity.kt b/app/src/main/java/com/dede/android_eggs/views/main/EasterEggsActivity.kt index 41616de2..f5caf620 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/EasterEggsActivity.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/EasterEggsActivity.kt @@ -4,30 +4,18 @@ import android.annotation.SuppressLint import android.content.Intent import android.os.Bundle import androidx.activity.compose.setContent +import androidx.activity.enableEdgeToEdge import androidx.appcompat.app.AppCompatActivity -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.sizeIn -import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.material3.Scaffold import androidx.compose.runtime.CompositionLocalProvider -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.unit.dp -import com.dede.android_eggs.R -import com.dede.android_eggs.util.EdgeUtils import com.dede.android_eggs.util.LocalEvent import com.dede.android_eggs.util.OrientationAngleSensor import com.dede.android_eggs.util.ThemeUtils -import com.dede.android_eggs.views.main.compose.AndroidSnapshotView -import com.dede.android_eggs.views.main.compose.EasterEggItem +import com.dede.android_eggs.views.main.compose.EasterEggScreen import com.dede.android_eggs.views.main.compose.LocalEasterEggLogoSensor import com.dede.android_eggs.views.main.compose.LocalFragmentManager import com.dede.android_eggs.views.main.compose.LocalHost import com.dede.android_eggs.views.main.compose.MainTitleBar -import com.dede.android_eggs.views.main.compose.ProjectDescription -import com.dede.android_eggs.views.main.compose.Wavy import com.dede.android_eggs.views.main.compose.Welcome import com.dede.android_eggs.views.settings.prefs.IconVisualEffectsPref import com.dede.android_eggs.views.theme.AppTheme @@ -53,7 +41,7 @@ class EasterEggsActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { ThemeUtils.tryApplyOLEDTheme(this) - EdgeUtils.applyEdge(window) + enableEdgeToEdge() super.onCreate(savedInstanceState) setContent { @@ -70,25 +58,7 @@ class EasterEggsActivity : AppCompatActivity() { ) { contentPadding -> Welcome() - Box( - modifier = Modifier.fillMaxSize(), - contentAlignment = Alignment.Center, - ) { - LazyColumn( - contentPadding = contentPadding, - modifier = Modifier.sizeIn(maxWidth = 560.dp), - ) { - item { - AndroidSnapshotView() - Wavy(res = R.drawable.ic_wavy_line) - for (easterEgg in easterEggs) { - EasterEggItem(easterEgg) - } - Wavy(res = R.drawable.ic_wavy_line) - ProjectDescription() - } - } - } + EasterEggScreen(easterEggs, contentPadding) } } } diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/AndroidViews.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/AndroidViews.kt index 76ddd91f..277b66aa 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/AndroidViews.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/AndroidViews.kt @@ -14,6 +14,6 @@ fun AndroidSnapshotView() { factory = { SnapshotGroupView(it) }, modifier = Modifier .fillMaxWidth() - .padding(vertical = 12.dp) + .padding(top = 12.dp) ) } diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggGroupSelector.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggGroupSelector.kt index 88be9164..f76ca810 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggGroupSelector.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggGroupSelector.kt @@ -1,5 +1,6 @@ package com.dede.android_eggs.views.main.compose +import android.app.Activity import android.view.View import android.widget.FrameLayout import androidx.compose.foundation.clickable @@ -28,7 +29,7 @@ fun Modifier.withEasterEggGroupSelector( return this } - val activity = LocalHost.current + val activity: Activity? = LocalHost.currentOutInspectionMode var popupAnchorBounds by remember { mutableStateOf(Rect.Zero) } return clickable { // DropdownMenu style error, use native popup diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggItem.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggItem.kt index c339a553..5209b926 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggItem.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggItem.kt @@ -1,8 +1,15 @@ +@file:OptIn(ExperimentalMaterial3Api::class) + package com.dede.android_eggs.views.main.compose import android.view.HapticFeedbackConstants +import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.core.Animatable import androidx.compose.animation.core.tween +import androidx.compose.animation.fadeIn +import androidx.compose.animation.fadeOut +import androidx.compose.animation.scaleIn +import androidx.compose.animation.scaleOut import androidx.compose.foundation.gestures.Orientation import androidx.compose.foundation.gestures.draggable import androidx.compose.foundation.gestures.rememberDraggableState @@ -44,6 +51,7 @@ import androidx.compose.ui.text.SpanStyle import androidx.compose.ui.text.buildAnnotatedString import androidx.compose.ui.text.font.FontStyle import androidx.compose.ui.text.withStyle +import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.IntOffset import androidx.compose.ui.unit.LayoutDirection import androidx.compose.ui.unit.dp @@ -60,7 +68,8 @@ import kotlin.math.roundToInt @Composable -fun EasterEggItem(base: BaseEasterEgg) { +@Preview(showBackground = true) +fun EasterEggItem(base: BaseEasterEgg = EasterEggHelp.previewEasterEggs().first()) { val context = LocalContext.current var groupIndex by remember { mutableIntStateOf(0) } @@ -106,11 +115,19 @@ fun EasterEggItemSwipe( val intercept = ViscousFluidInterpolator.getInstance() + fun callbackSwipeProgress(offsetX: Float) { + if (!supportShortcut) return + val p = if (triggerOffsetX == 0f) 0f else + min(abs(offsetX) / triggerOffsetX, 1f) + onSwipe.invoke(p) + } + LaunchedEffect(released) { if (released) { val releaseAnim = Animatable(offsetX) releaseAnim.animateTo(0f, animationSpec = tween(200)) { offsetX = value + callbackSwipeProgress(offsetX) } } } @@ -118,7 +135,7 @@ fun EasterEggItemSwipe( val view = LocalView.current Box( contentAlignment = Alignment.Center, - modifier = Modifier.padding(top = 12.dp) + modifier = Modifier ) { floor() Box( @@ -138,11 +155,7 @@ fun EasterEggItemSwipe( needTrigger = true view.performHapticFeedback(HapticFeedbackConstants.CLOCK_TICK) } - val p = if (triggerOffsetX == 0f) - 0f - else - min(abs(offsetX) / triggerOffsetX, 1f) - onSwipe.invoke(p) + callbackSwipeProgress(offsetX) } }, onDragStarted = { @@ -162,9 +175,13 @@ fun EasterEggItemSwipe( } } -@OptIn(ExperimentalMaterial3Api::class) @Composable -fun EasterEggItemContent(egg: EasterEgg, base: BaseEasterEgg, onSelected: (index: Int) -> Unit) { +@Preview +fun EasterEggItemContent( + egg: EasterEgg = EasterEggHelp.previewEasterEggs().first(), + base: BaseEasterEgg = egg, + onSelected: ((index: Int) -> Unit)? = null, +) { val context = LocalContext.current val isGroup = base is EasterEggGroup val androidVersion = remember(egg) { @@ -194,7 +211,9 @@ fun EasterEggItemContent(egg: EasterEgg, base: BaseEasterEgg, onSelected: (index EasterEggLogo(egg, sensor = true) } Row( - modifier = Modifier.withEasterEggGroupSelector(base, onSelected), + modifier = Modifier.withEasterEggGroupSelector(base) { + onSelected?.invoke(it) + }, verticalAlignment = Alignment.CenterVertically ) { Text( @@ -216,8 +235,9 @@ fun EasterEggItemContent(egg: EasterEgg, base: BaseEasterEgg, onSelected: (index } @Composable +@Preview(showBackground = true) fun EasterEggItemFloor( - egg: EasterEgg, + egg: EasterEgg = EasterEggHelp.previewEasterEggs().first(), enableShortcut: Boolean = true, swipeProgress: Float = 0f, ) { @@ -253,29 +273,51 @@ fun EasterEggItemFloor( ) } if (enableShortcut) { - val icon = if (swipeProgress >= 1f) { - Icons.Rounded.AppShortcut - } else if (LocalLayoutDirection.current == LayoutDirection.Rtl) { - Icons.Rounded.SwipeRight - } else { - Icons.Rounded.SwipeLeft - } Row( verticalAlignment = Alignment.CenterVertically, - modifier = Modifier.offset(x = (swipeProgress * -12).dp) + modifier = Modifier.offset(x = (swipeProgress * -14).dp) ) { Text( text = stringResource(R.string.label_add_shortcut), modifier = Modifier.padding(end = 4.dp), - maxLines = 3, + maxLines = 2, style = typography.bodyMedium ) - Icon( - modifier = Modifier.size(28.dp), - imageVector = icon, - contentDescription = stringResource(R.string.label_add_shortcut) - ) + ShortcutIcon(swipeProgress >= 1f) } } } } + +@Composable +private fun ShortcutIcon(showShortcut: Boolean = false) { + Box(contentAlignment = Alignment.Center) { + val swipeIcon = if (LocalLayoutDirection.current == LayoutDirection.Rtl) { + Icons.Rounded.SwipeRight + } else { + Icons.Rounded.SwipeLeft + } + AnimatedVisibility( + visible = !showShortcut, + enter = scaleIn() + fadeIn(), + exit = scaleOut() + fadeOut(), + ) { + Icon( + modifier = Modifier.size(28.dp), + imageVector = swipeIcon, + contentDescription = stringResource(R.string.label_add_shortcut) + ) + } + AnimatedVisibility( + visible = showShortcut, + enter = scaleIn() + fadeIn(), + exit = scaleOut() + fadeOut(), + ) { + Icon( + modifier = Modifier.size(28.dp), + imageVector = Icons.Rounded.AppShortcut, + contentDescription = stringResource(R.string.label_add_shortcut) + ) + } + } +} diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggLogo.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggLogo.kt index d5749f15..66711f2b 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggLogo.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggLogo.kt @@ -14,38 +14,24 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp +import com.dede.android_eggs.main.EasterEggHelp import com.dede.android_eggs.ui.drawables.AlterableAdaptiveIconDrawable import com.dede.android_eggs.util.LocalEvent import com.dede.android_eggs.views.main.EasterEggLogoSensorMatrixConvert -import com.dede.android_eggs.views.main.EasterEggModules import com.dede.android_eggs.views.settings.prefs.IconShapePref import com.dede.basic.provider.EasterEgg -import com.dede.basic.provider.EasterEggProvider import com.google.accompanist.drawablepainter.rememberDrawablePainter -import dagger.Module -import kotlin.math.roundToInt @Preview(widthDp = 200) @Composable fun PreviewEasterEggLogo() { - val module = EasterEggModules::class.java.getAnnotation(Module::class.java) - val baseEasterEggs = module.includes.map { - val instance = try { - it.java.getField("INSTANCE").get(null) - } catch (e: Exception) { - it.java.getConstructor().newInstance() - } - val provider = instance as EasterEggProvider - provider.provideEasterEgg() - } - val easterEggs = EasterEggModules.providePureEasterEggList(baseEasterEggs) + val easterEggs = EasterEggHelp.previewEasterEggs() LazyVerticalGrid(columns = GridCells.Fixed(3)) { items(easterEggs) { EasterEggLogo(egg = it) @@ -57,21 +43,21 @@ fun PreviewEasterEggLogo() { @Composable fun EasterEggLogo(egg: EasterEgg, size: Dp = 44.dp, sensor: Boolean = false) { if (egg.supportAdaptiveIcon) { - val px = with(LocalDensity.current) { size.toPx().roundToInt() } val context = LocalContext.current val maskPath: String? by remember { mutableStateOf(IconShapePref.getMaskPath(context)) } - val drawable = remember(maskPath, egg, context.theme) { + val drawable = remember(maskPath, egg.iconRes, context.theme) { AlterableAdaptiveIconDrawable(context, egg.iconRes, maskPath) } LocalEvent.receiver().register(IconShapePref.ACTION_CHANGED) { - val maskPath = it.getStringExtra(IconShapePref.EXTRA_ICON_SHAPE_PATH) - if (maskPath != null) { - drawable.setMaskPath(maskPath) + val newMaskPath = it.getStringExtra(IconShapePref.EXTRA_ICON_SHAPE_PATH) + if (newMaskPath != null) { + drawable.setMaskPath(newMaskPath) } } val drawablePainter = rememberDrawablePainter(drawable = drawable) - if (sensor) { + val sensorGroup = LocalEasterEggLogoSensor.currentOutInspectionMode + if (sensor && sensorGroup != null) { val listener = remember(drawable.bounds) { object : EasterEggLogoSensorMatrixConvert.Listener(drawable.bounds) { override fun onUpdateMatrix(matrix: Matrix) { @@ -79,8 +65,7 @@ fun EasterEggLogo(egg: EasterEgg, size: Dp = 44.dp, sensor: Boolean = false) { } } } - val sensorGroup = LocalEasterEggLogoSensor.current - DisposableEffect(egg, px) { + DisposableEffect(drawable) { sensorGroup.register(listener) onDispose { sensorGroup.unregister(listener) diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggScreen.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggScreen.kt new file mode 100644 index 00000000..a8849dde --- /dev/null +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggScreen.kt @@ -0,0 +1,55 @@ +package com.dede.android_eggs.views.main.compose + +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.sizeIn +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalInspectionMode +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.dede.android_eggs.R +import com.dede.android_eggs.main.EasterEggHelp +import com.dede.basic.provider.BaseEasterEgg + +@Composable +@Preview +fun EasterEggScreen( + easterEggs: List = EasterEggHelp.previewEasterEggs(), + contentPadding: PaddingValues = PaddingValues(0.dp), +) { + val inspectionMode = LocalInspectionMode.current + Box( + modifier = Modifier.fillMaxSize(), + contentAlignment = Alignment.Center, + ) { + LazyColumn( + contentPadding = contentPadding, + modifier = Modifier.sizeIn(maxWidth = 560.dp), + verticalArrangement = Arrangement.spacedBy(12.dp) + ) { + if (!inspectionMode) { + item("snapshot") { + AndroidSnapshotView() + } + } + item("wavy1") { + Wavy(res = R.drawable.ic_wavy_line) + } + items(items = easterEggs) { + EasterEggItem(it) + } + item("wavy2") { + Wavy(res = R.drawable.ic_wavy_line) + } + item("footer") { + ProjectDescription() + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/LocalProvider.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/LocalProvider.kt index 6c8ae5a6..3156ad76 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/LocalProvider.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/LocalProvider.kt @@ -1,20 +1,32 @@ package com.dede.android_eggs.views.main.compose import android.app.Activity -import android.util.Log +import androidx.compose.runtime.Composable +import androidx.compose.runtime.ProvidableCompositionLocal +import androidx.compose.runtime.ReadOnlyComposable import androidx.compose.runtime.staticCompositionLocalOf +import androidx.compose.ui.platform.LocalInspectionMode import androidx.fragment.app.FragmentManager import com.dede.android_eggs.views.main.EasterEggLogoSensorMatrixConvert +private inline fun noLocalProvidedFor(name: String): Nothing { + throw IllegalStateException("CompositionLocal %s not present".format(name)) +} + +val ProvidableCompositionLocal.currentOutInspectionMode: T? + @ReadOnlyComposable + @Composable + get() = if (LocalInspectionMode.current) null else current -val LocalFragmentManager = staticCompositionLocalOf { - Log.w("LocalFragmentManager", "CompositionLocal LocalFragmentManager not present") - null +val LocalFragmentManager = staticCompositionLocalOf { + noLocalProvidedFor("LocalFragmentManager") } -val LocalHost = staticCompositionLocalOf { null } +val LocalHost = staticCompositionLocalOf { + noLocalProvidedFor("LocalHost") +} val LocalEasterEggLogoSensor = staticCompositionLocalOf { - throw IllegalStateException("CompositionLocal LocalEasterEggLogoSensor not present") + noLocalProvidedFor("LocalEasterEggLogoSensor") } diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/MainTitleBar.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/MainTitleBar.kt index d105a2a2..522c5339 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/MainTitleBar.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/MainTitleBar.kt @@ -12,7 +12,6 @@ import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.saveable.rememberSaveable @@ -21,6 +20,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.rotate import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview +import androidx.fragment.app.FragmentManager import com.dede.android_eggs.R import com.dede.android_eggs.views.settings.SettingsFragment @@ -30,7 +30,7 @@ private const val TAG_SETTINGS = "Settings" @Composable @Preview fun MainTitleBar() { - val fm = LocalFragmentManager.current + val fm: FragmentManager? = LocalFragmentManager.currentOutInspectionMode var startRotate by rememberSaveable { mutableStateOf(false) } val rotateAnim by animateFloatAsState( diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/ProjectDescription.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/ProjectDescription.kt index a49a25fb..3aaf5db7 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/ProjectDescription.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/ProjectDescription.kt @@ -4,7 +4,6 @@ package com.dede.android_eggs.views.main.compose import android.content.Intent import androidx.annotation.StringRes -import androidx.compose.foundation.Image import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column @@ -20,27 +19,22 @@ import androidx.compose.material3.MaterialTheme.colorScheme import androidx.compose.material3.MaterialTheme.typography import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.asImageBitmap import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontStyle import androidx.compose.ui.text.style.TextDecoration import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import androidx.core.graphics.drawable.toBitmap import androidx.core.net.toUri +import androidx.fragment.app.FragmentManager import com.dede.android_eggs.BuildConfig import com.dede.android_eggs.R import com.dede.android_eggs.util.CustomTabsBrowser import com.dede.android_eggs.util.createChooser import com.dede.android_eggs.views.settings.component.ComponentManagerFragment import com.dede.android_eggs.views.timeline.AndroidTimelineFragment -import com.dede.basic.requireDrawable -import kotlin.math.roundToInt @Composable @@ -86,7 +80,7 @@ private fun ChipItem2( @Composable fun ProjectDescription() { val context = LocalContext.current - val fm = LocalFragmentManager.current + val fm: FragmentManager? = LocalFragmentManager.currentOutInspectionMode fun openCustomTab(@StringRes uri: Int) { CustomTabsBrowser.launchUrl(context, context.getString(uri).toUri()) @@ -96,26 +90,20 @@ fun ProjectDescription() { CustomTabsBrowser.launchUrlByBrowser(context, uri.toUri()) } - val px = with(LocalDensity.current) { - 50.dp.toPx().roundToInt() - } - val bitmap = remember(context.theme) { - context.requireDrawable(R.mipmap.ic_launcher_round) - .toBitmap(px, px).asImageBitmap() - } Column( modifier = Modifier .fillMaxWidth() - .padding(horizontal = 24.dp) + .padding(horizontal = 16.dp) .then(Modifier.padding(bottom = 30.dp)) ) { Row( - verticalAlignment = Alignment.CenterVertically + verticalAlignment = Alignment.CenterVertically, + modifier = Modifier.padding(horizontal = 4.dp) ) { Image( + res = R.mipmap.ic_launcher_round, modifier = Modifier.size(50.dp), - bitmap = bitmap, - contentDescription = null + contentDescription = stringResource(id = R.string.app_name) ) Column(modifier = Modifier.padding(start = 12.dp)) { Text( diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/Wavy.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/Wavy.kt index 8a331a67..a1cf53f1 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/Wavy.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/Wavy.kt @@ -31,6 +31,9 @@ fun PreviewWavy() { @Composable fun Wavy(res: Int, repeat: Boolean = false, tint: Color? = null) { + val modifier = Modifier + .fillMaxWidth() + .padding(vertical = 26.dp) if (repeat) { val context = LocalContext.current val drawable = remember(res, context.theme) { @@ -44,17 +47,13 @@ fun Wavy(res: Int, repeat: Boolean = false, tint: Color? = null) { drawable = drawable, contentDescription = null, contentScale = ContentScale.FillBounds, - modifier = Modifier - .fillMaxWidth() - .padding(vertical = 30.dp) + modifier = modifier ) } else { Image( painter = painterResource(id = res), contentDescription = null, - modifier = Modifier - .fillMaxWidth() - .padding(vertical = 30.dp) + modifier = modifier ) } } \ No newline at end of file diff --git a/app/src/main/java/com/dede/android_eggs/views/placeholder/PlaceholderActivity.kt b/app/src/main/java/com/dede/android_eggs/views/placeholder/PlaceholderActivity.kt index c8c40368..0fe65a6b 100644 --- a/app/src/main/java/com/dede/android_eggs/views/placeholder/PlaceholderActivity.kt +++ b/app/src/main/java/com/dede/android_eggs/views/placeholder/PlaceholderActivity.kt @@ -1,8 +1,8 @@ package com.dede.android_eggs.views.placeholder -import android.annotation.SuppressLint import android.os.Bundle import androidx.activity.compose.setContent +import androidx.activity.enableEdgeToEdge import androidx.appcompat.app.AppCompatActivity import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.core.MutableTransitionState @@ -12,29 +12,26 @@ import androidx.compose.animation.scaleIn import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.size import androidx.compose.material3.Scaffold import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.asImageBitmap import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import androidx.core.graphics.drawable.toBitmap import com.dede.android_eggs.R import com.dede.android_eggs.ui.drawables.AlterableAdaptiveIconDrawable -import com.dede.android_eggs.util.EdgeUtils import com.dede.android_eggs.util.LocalEvent import com.dede.android_eggs.util.ThemeUtils import com.dede.android_eggs.views.settings.prefs.DynamicColorPref import com.dede.android_eggs.views.settings.prefs.NightModePref import com.dede.android_eggs.views.theme.AppTheme +import com.google.accompanist.drawablepainter.rememberDrawablePainter import dagger.hilt.android.AndroidEntryPoint import javax.inject.Inject -import kotlin.math.roundToInt import kotlin.random.Random @AndroidEntryPoint @@ -43,14 +40,14 @@ class PlaceholderActivity : AppCompatActivity() { @Inject lateinit var iconRes: IntArray - @SuppressLint("UnusedMaterial3ScaffoldPaddingParameter") override fun onCreate(savedInstanceState: Bundle?) { ThemeUtils.tryApplyOLEDTheme(this) - EdgeUtils.applyEdge(window) + enableEdgeToEdge() super.onCreate(savedInstanceState) setContent { AppTheme { + @Suppress("UnusedMaterial3ScaffoldPaddingParameter") Scaffold { Placeholder(randomRes(), randomPath()) } @@ -85,9 +82,11 @@ class PlaceholderActivity : AppCompatActivity() { @Composable fun Placeholder(res: Int, mask: String? = null) { - val drawable = AlterableAdaptiveIconDrawable(LocalContext.current, res, mask) - val px = with(LocalDensity.current) { 56.dp.toPx().roundToInt() } - val bitmap = remember { drawable.toBitmap(px, px).asImageBitmap() } + val context = LocalContext.current + val drawable = remember(res, mask, context.theme) { + AlterableAdaptiveIconDrawable(context, res, mask) + } + val painter = rememberDrawablePainter(drawable = drawable) Box( contentAlignment = Alignment.Center, modifier = Modifier.fillMaxSize() @@ -101,7 +100,8 @@ fun Placeholder(res: Int, mask: String? = null) { ) + fadeIn(animationSpec = tween(500, delayMillis = 100)), ) { Image( - bitmap = bitmap, + modifier = Modifier.size(56.dp), + painter = painter, contentDescription = stringResource(R.string.app_name), ) } From db73db44d979fe0222f475be84ec95621ed69440 Mon Sep 17 00:00:00 2001 From: Hu Shenghao Date: Fri, 17 Nov 2023 22:33:00 +0800 Subject: [PATCH 18/30] feat: Add Konfetti --- app/build.gradle.kts | 1 + .../views/main/EasterEggsActivity.kt | 11 ++- .../main/compose/EasterEggGroupSelector.kt | 6 +- .../views/main/compose/Konfetti.kt | 89 +++++++++++++++++++ .../views/main/compose/LocalProvider.kt | 10 +-- .../views/main/compose/ProjectDescription.kt | 8 +- .../views/main/compose/Welcome.kt | 35 ++++++-- .../dede/android_eggs/views/theme/Theme.kt | 2 +- buildSrc/build.gradle.kts | 2 +- gradle/libs.versions.toml | 3 +- 10 files changed, 144 insertions(+), 23 deletions(-) create mode 100644 app/src/main/java/com/dede/android_eggs/views/main/compose/Konfetti.kt diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 88293f7b..62ec44ae 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -131,6 +131,7 @@ dependencies { debugImplementation(libs.androidx.compose.ui.tooling) implementation(libs.accompanist.drawablepainter) + implementation(libs.dionsegijn.konfetti) implementation(libs.io.coil) implementation(libs.io.coil.compose) implementation(libs.free.reflection) diff --git a/app/src/main/java/com/dede/android_eggs/views/main/EasterEggsActivity.kt b/app/src/main/java/com/dede/android_eggs/views/main/EasterEggsActivity.kt index f5caf620..8c4e853e 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/EasterEggsActivity.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/EasterEggsActivity.kt @@ -12,11 +12,13 @@ import com.dede.android_eggs.util.LocalEvent import com.dede.android_eggs.util.OrientationAngleSensor import com.dede.android_eggs.util.ThemeUtils import com.dede.android_eggs.views.main.compose.EasterEggScreen +import com.dede.android_eggs.views.main.compose.Konfetti import com.dede.android_eggs.views.main.compose.LocalEasterEggLogoSensor import com.dede.android_eggs.views.main.compose.LocalFragmentManager -import com.dede.android_eggs.views.main.compose.LocalHost +import com.dede.android_eggs.views.main.compose.LocalKonfettiState import com.dede.android_eggs.views.main.compose.MainTitleBar import com.dede.android_eggs.views.main.compose.Welcome +import com.dede.android_eggs.views.main.compose.rememberKonfettiState import com.dede.android_eggs.views.settings.prefs.IconVisualEffectsPref import com.dede.android_eggs.views.theme.AppTheme import com.dede.basic.provider.BaseEasterEgg @@ -45,10 +47,11 @@ class EasterEggsActivity : AppCompatActivity() { super.onCreate(savedInstanceState) setContent { + val konfettiState = rememberKonfettiState() CompositionLocalProvider( LocalFragmentManager provides supportFragmentManager, - LocalHost provides this, LocalEasterEggLogoSensor provides sensor, + LocalKonfettiState provides konfettiState ) { AppTheme { Scaffold( @@ -56,10 +59,10 @@ class EasterEggsActivity : AppCompatActivity() { MainTitleBar() } ) { contentPadding -> - Welcome() - EasterEggScreen(easterEggs, contentPadding) } + Welcome() + Konfetti(konfettiState) } } } diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggGroupSelector.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggGroupSelector.kt index f76ca810..8e093bd0 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggGroupSelector.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggGroupSelector.kt @@ -14,7 +14,9 @@ import androidx.compose.ui.geometry.Rect import androidx.compose.ui.layout.boundsInParent import androidx.compose.ui.layout.onGloballyPositioned import androidx.compose.ui.layout.positionInWindow +import androidx.compose.ui.platform.LocalContext import com.dede.android_eggs.main.EggActionHelp +import com.dede.android_eggs.util.getActivity import com.dede.basic.provider.BaseEasterEgg import com.dede.basic.provider.EasterEggGroup import kotlin.math.roundToInt @@ -29,11 +31,11 @@ fun Modifier.withEasterEggGroupSelector( return this } - val activity: Activity? = LocalHost.currentOutInspectionMode + val activity: Activity? = LocalContext.current.getActivity() var popupAnchorBounds by remember { mutableStateOf(Rect.Zero) } return clickable { // DropdownMenu style error, use native popup - if (activity == null) return@clickable + if (activity == null || popupAnchorBounds.isEmpty) return@clickable val parent = activity.findViewById(android.R.id.content) val fakeView = View(activity).apply { x = popupAnchorBounds.left diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/Konfetti.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/Konfetti.kt new file mode 100644 index 00000000..b3742b63 --- /dev/null +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/Konfetti.kt @@ -0,0 +1,89 @@ +package com.dede.android_eggs.views.main.compose + +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.material3.MaterialTheme +import androidx.compose.runtime.Composable +import androidx.compose.runtime.MutableState +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.toArgb +import com.dede.android_eggs.views.theme.blend +import nl.dionsegijn.konfetti.compose.KonfettiView +import nl.dionsegijn.konfetti.compose.OnParticleSystemUpdateListener +import nl.dionsegijn.konfetti.core.Angle +import nl.dionsegijn.konfetti.core.Party +import nl.dionsegijn.konfetti.core.PartySystem +import nl.dionsegijn.konfetti.core.Position +import nl.dionsegijn.konfetti.core.Spread +import nl.dionsegijn.konfetti.core.emitter.Emitter +import java.util.concurrent.TimeUnit + +@Composable +fun rememberKonfettiState(visible: Boolean = false): MutableState { + return remember { mutableStateOf(visible) } +} + +@Composable +fun Konfetti( + state: MutableState = rememberKonfettiState(), + modifier: Modifier = Modifier, + primary: Color = MaterialTheme.colorScheme.primary +) { + var visible by state + if (!visible) { + return + } + val listener = remember(state) { + object : OnParticleSystemUpdateListener { + override fun onParticleSystemEnded(system: PartySystem, activeSystems: Int) { + visible = false + } + } + } + KonfettiView( + modifier = Modifier + .fillMaxSize() + .then(modifier), + parties = remember { particles(primary.toArgb()) }, + updateListener = listener + ) +} + +private val defaultColors = listOf(0xfce18a, 0xff726d, 0xf4306d, 0xb48def) + +private fun particles(primary: Int) = listOf( + Party( + speed = 5f, + maxSpeed = 15f, + damping = 0.9f, + angle = Angle.BOTTOM, + spread = Spread.ROUND, + colors = defaultColors.map { it.blend(primary) }, + emitter = Emitter(duration = 2, TimeUnit.SECONDS).perSecond(100), + position = Position.Relative(0.0, 0.0).between(Position.Relative(1.0, 0.0)), + ), + Party( + speed = 20f, + maxSpeed = 60f, + damping = 0.9f, + angle = Angle.RIGHT - 55, + spread = 60, + colors = defaultColors.map { it.blend(primary) }, + emitter = Emitter(duration = 2, TimeUnit.SECONDS).perSecond(100), + position = Position.Relative(0.0, 1.0) + ), + Party( + speed = 20f, + maxSpeed = 60f, + damping = 0.9f, + angle = Angle.RIGHT - 125, + spread = 60, + colors = defaultColors.map { it.blend(primary) }, + emitter = Emitter(duration = 2, TimeUnit.SECONDS).perSecond(100), + position = Position.Relative(1.0, 1.0) + ) +) diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/LocalProvider.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/LocalProvider.kt index 3156ad76..e9ab7be5 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/LocalProvider.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/LocalProvider.kt @@ -1,7 +1,7 @@ package com.dede.android_eggs.views.main.compose -import android.app.Activity import androidx.compose.runtime.Composable +import androidx.compose.runtime.MutableState import androidx.compose.runtime.ProvidableCompositionLocal import androidx.compose.runtime.ReadOnlyComposable import androidx.compose.runtime.staticCompositionLocalOf @@ -22,11 +22,11 @@ val LocalFragmentManager = staticCompositionLocalOf { noLocalProvidedFor("LocalFragmentManager") } -val LocalHost = staticCompositionLocalOf { - noLocalProvidedFor("LocalHost") -} - val LocalEasterEggLogoSensor = staticCompositionLocalOf { noLocalProvidedFor("LocalEasterEggLogoSensor") } +val LocalKonfettiState = staticCompositionLocalOf> { + noLocalProvidedFor("LocalKonfettiState") +} + diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/ProjectDescription.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/ProjectDescription.kt index 3aaf5db7..565b105c 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/ProjectDescription.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/ProjectDescription.kt @@ -23,6 +23,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource +import androidx.compose.ui.semantics.Role import androidx.compose.ui.text.font.FontStyle import androidx.compose.ui.text.style.TextDecoration import androidx.compose.ui.tooling.preview.Preview @@ -81,6 +82,7 @@ private fun ChipItem2( fun ProjectDescription() { val context = LocalContext.current val fm: FragmentManager? = LocalFragmentManager.currentOutInspectionMode + val konfettiState = LocalKonfettiState.currentOutInspectionMode fun openCustomTab(@StringRes uri: Int) { CustomTabsBrowser.launchUrl(context, context.getString(uri).toUri()) @@ -102,7 +104,11 @@ fun ProjectDescription() { ) { Image( res = R.mipmap.ic_launcher_round, - modifier = Modifier.size(50.dp), + modifier = Modifier + .size(50.dp) + .clickable(role = Role.Image) { + konfettiState?.value = true + }, contentDescription = stringResource(id = R.string.app_name) ) Column(modifier = Modifier.padding(start = 12.dp)) { diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/Welcome.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/Welcome.kt index 7496e054..f821134f 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/Welcome.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/Welcome.kt @@ -4,16 +4,21 @@ import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.material.TextButton import androidx.compose.material3.AlertDialog +import androidx.compose.material3.MaterialTheme.colorScheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.MutableState import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource @@ -23,6 +28,16 @@ import androidx.core.net.toUri import com.dede.android_eggs.R import com.dede.android_eggs.util.CustomTabsBrowser import com.dede.android_eggs.util.pref +import com.dede.android_eggs.views.theme.blend +import nl.dionsegijn.konfetti.compose.KonfettiView +import nl.dionsegijn.konfetti.compose.OnParticleSystemUpdateListener +import nl.dionsegijn.konfetti.core.Angle +import nl.dionsegijn.konfetti.core.Party +import nl.dionsegijn.konfetti.core.PartySystem +import nl.dionsegijn.konfetti.core.Position +import nl.dionsegijn.konfetti.core.Spread +import nl.dionsegijn.konfetti.core.emitter.Emitter +import java.util.concurrent.TimeUnit private const val KEY = "key_welcome_status" @@ -30,13 +45,14 @@ private const val KEY = "key_welcome_status" @Preview fun Welcome() { val context = LocalContext.current - val pref = remember { context.pref } - var visiable by remember { - mutableStateOf(!pref.getBoolean(KEY, false)) + var visible by remember { + mutableStateOf(!context.pref.getBoolean(KEY, false)) +// mutableStateOf(true) } - if (!visiable) { + if (!visible) { return } + val konfettiState = LocalKonfettiState.currentOutInspectionMode AlertDialog( title = { Text(text = stringResource(R.string.label_welcome)) @@ -51,7 +67,9 @@ fun Welcome() { ) } }, - onDismissRequest = {}, + onDismissRequest = { + visible = false + }, confirmButton = { Row { TextButton(onClick = { @@ -64,15 +82,16 @@ fun Welcome() { } Spacer(modifier = Modifier.weight(1f)) TextButton(onClick = { - visiable = false + visible = false }) { Text(text = stringResource(android.R.string.cancel)) } TextButton(onClick = { - visiable = false - pref.edit { + visible = false + context.pref.edit { putBoolean(KEY, true) } + konfettiState?.value = true }) { Text(text = stringResource(R.string.action_agree)) } diff --git a/app/src/main/java/com/dede/android_eggs/views/theme/Theme.kt b/app/src/main/java/com/dede/android_eggs/views/theme/Theme.kt index e7dc28f0..30c91248 100644 --- a/app/src/main/java/com/dede/android_eggs/views/theme/Theme.kt +++ b/app/src/main/java/com/dede/android_eggs/views/theme/Theme.kt @@ -53,7 +53,7 @@ fun ColorScheme.toAmoled(): ColorScheme { ) } -private fun Int.blend( +fun Int.blend( color: Int, @FloatRange(from = 0.0, to = 1.0) fraction: Float = 0.5f, ): Int = ColorUtils.blendARGB(this, color, fraction) diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 54cc83e8..abccff36 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -10,5 +10,5 @@ repositories { dependencies { implementation(gradleApi()) - implementation("com.android.tools:sdk-common:31.1.3") + implementation("com.android.tools:sdk-common:31.1.4") } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 167aec99..335003b5 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -3,7 +3,7 @@ kotlin = "1.9.20" # https://androidx.dev/storage/compose-compiler/repository # https://maven.google.com/web/index.html?q=compose#androidx.compose.compiler:compiler compose-kotlin-compiler = "1.5.4" -agp = "8.1.3" +agp = "8.1.4" hilt = "2.48.1" # https://google.github.io/accompanist accompanist = "0.33.2-alpha" @@ -48,6 +48,7 @@ accompanist-drawablepainter = { module = "com.google.accompanist:accompanist-dra hilt-android = { module = "com.google.dagger:hilt-android", version.ref = "hilt" } hilt-compiler = { module = "com.google.dagger:hilt-compiler", version.ref = "hilt" } +dionsegijn-konfetti = "nl.dionsegijn:konfetti-compose:2.0.3" blurhash-android = "io.github.hushenghao:blurhash-android:1.0.1" viewbinding-delegate = "com.github.kirich1409:viewbindingpropertydelegate-noreflection:1.5.9" squareup-okio = "com.squareup.okio:okio:3.6.0" From 6b279e76c8811c80b17fc5e88850749bbed8b329 Mon Sep 17 00:00:00 2001 From: Hu Shenghao Date: Sat, 18 Nov 2023 17:51:09 +0800 Subject: [PATCH 19/30] feat: Local provider --- .../android_eggs/main/entity/TimelineEvent.kt | 2 +- .../views/main/BackPressedHandler.kt | 4 +- .../views/main/compose/LocalProvider.kt | 16 ++- .../views/main/compose/ProjectDescription.kt | 20 +++- .../views/main/compose/Welcome.kt | 19 +--- .../views/timeline/AndroidTimeline.kt | 98 +++++++++++++------ .../java/com/dede/basic/DynamicObjectUtils.kt | 30 ++++-- 7 files changed, 126 insertions(+), 63 deletions(-) diff --git a/app/src/main/java/com/dede/android_eggs/main/entity/TimelineEvent.kt b/app/src/main/java/com/dede/android_eggs/main/entity/TimelineEvent.kt index ae7db963..b89ca042 100644 --- a/app/src/main/java/com/dede/android_eggs/main/entity/TimelineEvent.kt +++ b/app/src/main/java/com/dede/android_eggs/main/entity/TimelineEvent.kt @@ -19,7 +19,7 @@ data class TimelineEvent( val year: String?, val month: String?, @DrawableRes val logoRes: Int, - private val event: CharSequence, + val event: CharSequence, ) { companion object { diff --git a/app/src/main/java/com/dede/android_eggs/views/main/BackPressedHandler.kt b/app/src/main/java/com/dede/android_eggs/views/main/BackPressedHandler.kt index 667a2701..6a41525f 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/BackPressedHandler.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/BackPressedHandler.kt @@ -12,8 +12,8 @@ import android.view.ViewGroup import android.view.ViewOutlineProvider import android.window.BackEvent import androidx.activity.BackEventCompat +import androidx.activity.ComponentActivity import androidx.activity.OnBackPressedCallback -import androidx.appcompat.app.AppCompatActivity import androidx.core.animation.doOnEnd import androidx.core.animation.doOnStart import androidx.core.content.withStyledAttributes @@ -31,7 +31,7 @@ import kotlin.math.abs import kotlin.math.max import com.google.android.material.R as M3R -class BackPressedHandler(private val host: AppCompatActivity) : +class BackPressedHandler(private val host: ComponentActivity) : OnBackPressedCallback(enabled = true), DefaultLifecycleObserver { companion object { diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/LocalProvider.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/LocalProvider.kt index e9ab7be5..8b3050bc 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/LocalProvider.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/LocalProvider.kt @@ -1,9 +1,12 @@ +@file:Suppress("NOTHING_TO_INLINE") + package com.dede.android_eggs.views.main.compose +import android.util.Log import androidx.compose.runtime.Composable -import androidx.compose.runtime.MutableState import androidx.compose.runtime.ProvidableCompositionLocal import androidx.compose.runtime.ReadOnlyComposable +import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.staticCompositionLocalOf import androidx.compose.ui.platform.LocalInspectionMode import androidx.fragment.app.FragmentManager @@ -13,6 +16,12 @@ private inline fun noLocalProvidedFor(name: String): Nothing { throw IllegalStateException("CompositionLocal %s not present".format(name)) } +private const val TAG = "LocalProvider" + +private inline fun noLocalProvidedForLog(name: String) { + Log.i(TAG, "CompositionLocal %s not present".format(name)) +} + val ProvidableCompositionLocal.currentOutInspectionMode: T? @ReadOnlyComposable @Composable @@ -26,7 +35,8 @@ val LocalEasterEggLogoSensor = staticCompositionLocalOf> { - noLocalProvidedFor("LocalKonfettiState") +val LocalKonfettiState = staticCompositionLocalOf { + noLocalProvidedForLog("LocalKonfettiState") + mutableStateOf(false) } diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/ProjectDescription.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/ProjectDescription.kt index 565b105c..88612de1 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/ProjectDescription.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/ProjectDescription.kt @@ -5,6 +5,7 @@ package com.dede.android_eggs.views.main.compose import android.content.Intent import androidx.annotation.StringRes import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.ExperimentalLayoutApi @@ -15,15 +16,18 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size +import androidx.compose.material.ripple.rememberRipple import androidx.compose.material3.MaterialTheme.colorScheme import androidx.compose.material3.MaterialTheme.typography import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource -import androidx.compose.ui.semantics.Role import androidx.compose.ui.text.font.FontStyle import androidx.compose.ui.text.style.TextDecoration import androidx.compose.ui.tooling.preview.Preview @@ -82,7 +86,8 @@ private fun ChipItem2( fun ProjectDescription() { val context = LocalContext.current val fm: FragmentManager? = LocalFragmentManager.currentOutInspectionMode - val konfettiState = LocalKonfettiState.currentOutInspectionMode + var konfettiState by LocalKonfettiState.current +// var timelineVisible = remember { mutableStateOf(false) } fun openCustomTab(@StringRes uri: Int) { CustomTabsBrowser.launchUrl(context, context.getString(uri).toUri()) @@ -92,6 +97,9 @@ fun ProjectDescription() { CustomTabsBrowser.launchUrlByBrowser(context, uri.toUri()) } + // https://issuetracker.google.com/issues/308510945 +// AndroidTimelineSheet(timelineVisible) + Column( modifier = Modifier .fillMaxWidth() @@ -106,8 +114,11 @@ fun ProjectDescription() { res = R.mipmap.ic_launcher_round, modifier = Modifier .size(50.dp) - .clickable(role = Role.Image) { - konfettiState?.value = true + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = rememberRipple(bounded = false), + ) { + konfettiState = true }, contentDescription = stringResource(id = R.string.app_name) ) @@ -154,6 +165,7 @@ fun ProjectDescription() { } ChipItem(R.string.label_timeline) { AndroidTimelineFragment.show(fm ?: return@ChipItem) +// timelineVisible.value = true } ChipItem(R.string.label_component_manager) { ComponentManagerFragment.show(fm ?: return@ChipItem) diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/Welcome.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/Welcome.kt index f821134f..c5d3fc1f 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/Welcome.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/Welcome.kt @@ -4,21 +4,16 @@ import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.material.TextButton import androidx.compose.material3.AlertDialog -import androidx.compose.material3.MaterialTheme.colorScheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import androidx.compose.runtime.MutableState import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource @@ -28,16 +23,6 @@ import androidx.core.net.toUri import com.dede.android_eggs.R import com.dede.android_eggs.util.CustomTabsBrowser import com.dede.android_eggs.util.pref -import com.dede.android_eggs.views.theme.blend -import nl.dionsegijn.konfetti.compose.KonfettiView -import nl.dionsegijn.konfetti.compose.OnParticleSystemUpdateListener -import nl.dionsegijn.konfetti.core.Angle -import nl.dionsegijn.konfetti.core.Party -import nl.dionsegijn.konfetti.core.PartySystem -import nl.dionsegijn.konfetti.core.Position -import nl.dionsegijn.konfetti.core.Spread -import nl.dionsegijn.konfetti.core.emitter.Emitter -import java.util.concurrent.TimeUnit private const val KEY = "key_welcome_status" @@ -52,7 +37,7 @@ fun Welcome() { if (!visible) { return } - val konfettiState = LocalKonfettiState.currentOutInspectionMode + var konfettiState by LocalKonfettiState.current AlertDialog( title = { Text(text = stringResource(R.string.label_welcome)) @@ -91,7 +76,7 @@ fun Welcome() { context.pref.edit { putBoolean(KEY, true) } - konfettiState?.value = true + konfettiState = true }) { Text(text = stringResource(R.string.action_agree)) } diff --git a/app/src/main/java/com/dede/android_eggs/views/timeline/AndroidTimeline.kt b/app/src/main/java/com/dede/android_eggs/views/timeline/AndroidTimeline.kt index 87cd938d..f0722f5e 100644 --- a/app/src/main/java/com/dede/android_eggs/views/timeline/AndroidTimeline.kt +++ b/app/src/main/java/com/dede/android_eggs/views/timeline/AndroidTimeline.kt @@ -1,12 +1,18 @@ -@file:OptIn(ExperimentalMaterial3Api::class, ExperimentalMaterialApi::class) +@file:OptIn( + ExperimentalMaterial3Api::class, ExperimentalMaterialApi::class, + ExperimentalLayoutApi::class +) package com.dede.android_eggs.views.timeline import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.ExperimentalLayoutApi +import androidx.compose.foundation.layout.MutableWindowInsets +import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.WindowInsets -import androidx.compose.foundation.layout.exclude import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.offset import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.systemBars @@ -15,19 +21,18 @@ import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.itemsIndexed import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.Card import androidx.compose.material.ExperimentalMaterialApi -import androidx.compose.material.Icon -import androidx.compose.material.Text import androidx.compose.material.icons.Icons import androidx.compose.material.icons.outlined.ArrowLeft -import androidx.compose.material3.BottomSheetDefaults +import androidx.compose.material3.Card +import androidx.compose.material3.CardDefaults import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme.colorScheme import androidx.compose.material3.MaterialTheme.shapes import androidx.compose.material3.MaterialTheme.typography import androidx.compose.material3.ModalBottomSheet -import androidx.compose.material3.rememberModalBottomSheetState +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.MutableState import androidx.compose.runtime.getValue @@ -36,6 +41,11 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip +import androidx.compose.ui.platform.LocalDensity +import androidx.compose.ui.text.SpanStyle +import androidx.compose.ui.text.buildAnnotatedString +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.withStyle import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.constraintlayout.compose.ConstraintLayout @@ -48,10 +58,16 @@ import com.dede.android_eggs.views.main.compose.Image fun AndroidTimelineSheet(visible: MutableState = mutableStateOf(true)) { var show by visible if (!show) return - val sheetState = rememberModalBottomSheetState() + + val top = with(LocalDensity.current) { + WindowInsets.systemBars.getTop(this).toDp() + } + ModalBottomSheet( - windowInsets = BottomSheetDefaults.windowInsets.exclude(WindowInsets.systemBars), - sheetState = sheetState, + windowInsets = MutableWindowInsets(), + modifier = Modifier + .offset(y = -top) + .padding(top = top), onDismissRequest = { show = false }, @@ -63,9 +79,16 @@ fun AndroidTimelineSheet(visible: MutableState = mutableStateOf(true)) @Composable @Preview(showBackground = true) fun AndroidTimeline(items: List = TimelineEvent.timelines) { - LazyColumn { + val bottom = with(LocalDensity.current) { + WindowInsets.systemBars.getBottom(this).toDp() + } + LazyColumn( + contentPadding = PaddingValues(bottom = bottom), + ) { itemsIndexed(items = items) { index, item -> - AndroidTimelineItem(item) { + AndroidTimelineItem(item, { + return@AndroidTimelineItem index >= items.size - 1 + }) { if (index <= 0) return@AndroidTimelineItem true return@AndroidTimelineItem items[index - 1].year != it.year } @@ -76,9 +99,11 @@ fun AndroidTimeline(items: List = TimelineEvent.timelines) { @Composable fun AndroidTimelineItem( timeline: TimelineEvent, + isLast: (current: TimelineEvent) -> Boolean, isNewYearGroup: (current: TimelineEvent) -> Boolean, ) { val isNewGroup = remember(timeline) { isNewYearGroup.invoke(timeline) } + val isLast = remember(timeline) { isLast.invoke(timeline) } ConstraintLayout( modifier = Modifier @@ -126,36 +151,49 @@ fun AndroidTimelineItem( linkTo(top = card.top, bottom = card.bottom) } ) - Box( - modifier = Modifier - .width(2.dp) - .clip(RoundedCornerShape(topEndPercent = 50, topStartPercent = 50)) - .background(colorScheme.primary) - .constrainAs(l2) { - height = Dimension.fillToConstraints - linkTo(start = logo.start, end = logo.end) - top.linkTo(logo.bottom, 4.dp) - bottom.linkTo(parent.bottom) - } - ) {} + if (!isLast) { + Box( + modifier = Modifier + .width(2.dp) + .clip(RoundedCornerShape(topEndPercent = 50, topStartPercent = 50)) + .background(colorScheme.primary) + .constrainAs(l2) { + height = Dimension.fillToConstraints + linkTo(start = logo.start, end = logo.end) + top.linkTo(logo.bottom, 4.dp) + bottom.linkTo(parent.bottom) + } + ) {} + } Card( - backgroundColor = colorScheme.secondaryContainer, + colors = CardDefaults.cardColors(containerColor = colorScheme.secondaryContainer), + elevation = CardDefaults.cardElevation(0.dp), shape = shapes.medium, modifier = Modifier + .padding(horizontal = 10.dp) .constrainAs(card) { - width = Dimension.fillToConstraints - end.linkTo(parent.end, margin = 10.dp) - start.linkTo(logo.end, margin = 10.dp) + width = Dimension.preferredWrapContent + linkTo(start = logo.end, end = parent.end, bias = 0f) top.linkTo(year.bottom) bottom.linkTo(parent.bottom, margin = 10.dp) } ) { Text( - text = timeline.eventSpan.toString(), + text = buildAnnotatedString { + val split = timeline.event.split("\n") + withStyle(SpanStyle(fontWeight = FontWeight.Bold)) { + append(split[0]) + } + if (split.size > 1) { + append("\n") + append(split[1]) + } + }, style = typography.labelMedium, modifier = Modifier.padding(horizontal = 10.dp, vertical = 8.dp) ) } + // https://issuetracker.google.com/issues/311627066 Icon( imageVector = Icons.Outlined.ArrowLeft, tint = colorScheme.secondaryContainer, @@ -163,7 +201,7 @@ fun AndroidTimelineItem( .size(24.dp) .constrainAs(arrow) { linkTo(top = logo.top, bottom = logo.bottom) - start.linkTo(card.start, margin = (-14).dp) + start.linkTo(card.start, margin = (-3.5).dp) }, contentDescription = null ) diff --git a/basic/src/main/java/com/dede/basic/DynamicObjectUtils.kt b/basic/src/main/java/com/dede/basic/DynamicObjectUtils.kt index adec8bf4..441f1a12 100644 --- a/basic/src/main/java/com/dede/basic/DynamicObjectUtils.kt +++ b/basic/src/main/java/com/dede/basic/DynamicObjectUtils.kt @@ -51,13 +51,22 @@ private class ReflectDynamicObject(obj: Any?, clazz: Class) : DynamicOb private fun pickMethod(name: String, vararg arguments: Any?): Method? { val types = inferTypes(*arguments) var method: Method? = null + var error: Exception? = null try { method = clazz.getMethod(name, *types) - if (method == null) { + } catch (e: Exception) { + error = e + } + if (method == null) { + error = null + try { method = clazz.getDeclaredMethod(name, *types) + } catch (e: Exception) { + error = e } - } catch (e: Exception) { - Log.w(TAG, e) + } + if (error != null) { + Log.w(TAG, error) } return method } @@ -84,13 +93,22 @@ private class ReflectDynamicObject(obj: Any?, clazz: Class) : DynamicOb private fun pickField(name: String): Field? { var field: Field? = null + var error: Exception? = null try { field = clazz.getField(name) - if (field == null) { + } catch (e: Exception) { + error = e + } + if (field == null) { + error = null + try { field = clazz.getDeclaredField(name) + } catch (e: Exception) { + error = e } - } catch (e: Exception) { - Log.w(TAG, e) + } + if (error != null) { + Log.w(TAG, error) } return field } From 0434236ded3153c82839851214d882e895589e1c Mon Sep 17 00:00:00 2001 From: Hu Shenghao Date: Sat, 18 Nov 2023 20:52:30 +0800 Subject: [PATCH 20/30] feat: Snapshot change to blurhash bg --- .../ui/views/SnapshotGroupView.kt | 22 ++++------ app/src/main/res/values-night/hashs.xml | 1 - app/src/main/res/values/hashs.xml | 28 ++++++++++++- .../dede/basic/provider/SnapshotProvider.kt | 15 ------- .../blurhash/image}/gallery/1.webp | Bin .../blurhash/image}/gallery/10.webp | Bin .../blurhash/image}/gallery/11.webp | Bin .../blurhash/image}/gallery/12.webp | Bin .../blurhash/image}/gallery/13.webp | Bin .../blurhash/image}/gallery/14.webp | Bin .../blurhash/image}/gallery/15.webp | Bin .../blurhash/image}/gallery/16.webp | Bin .../blurhash/image}/gallery/17.webp | Bin .../blurhash/image}/gallery/18.webp | Bin .../blurhash/image}/gallery/19.webp | Bin .../blurhash/image}/gallery/2.webp | Bin .../blurhash/image}/gallery/20.webp | Bin .../blurhash/image}/gallery/21.webp | Bin .../blurhash/image}/gallery/22.webp | Bin .../blurhash/image}/gallery/23.webp | Bin .../blurhash/image}/gallery/24.webp | Bin .../blurhash/image}/gallery/3.webp | Bin .../blurhash/image}/gallery/4.webp | Bin .../blurhash/image}/gallery/5.webp | Bin .../blurhash/image}/gallery/6.webp | Bin .../blurhash/image}/gallery/7.webp | Bin .../blurhash/image}/gallery/8.webp | Bin .../blurhash/image}/gallery/9.webp | Bin script/blurhash/image/hash_snapshot_bg.jpg | Bin 351344 -> 0 bytes .../blurhash/image/night/hash_snapshot_bg.jpg | Bin 440387 -> 0 bytes script/blurhash/images.txt | 6 +-- script/blurhash/multi_blurhash.py | 39 ++++++++++++++---- 32 files changed, 68 insertions(+), 43 deletions(-) rename {app/src/main/assets => script/blurhash/image}/gallery/1.webp (100%) rename {app/src/main/assets => script/blurhash/image}/gallery/10.webp (100%) rename {app/src/main/assets => script/blurhash/image}/gallery/11.webp (100%) rename {app/src/main/assets => script/blurhash/image}/gallery/12.webp (100%) rename {app/src/main/assets => script/blurhash/image}/gallery/13.webp (100%) rename {app/src/main/assets => script/blurhash/image}/gallery/14.webp (100%) rename {app/src/main/assets => script/blurhash/image}/gallery/15.webp (100%) rename {app/src/main/assets => script/blurhash/image}/gallery/16.webp (100%) rename {app/src/main/assets => script/blurhash/image}/gallery/17.webp (100%) rename {app/src/main/assets => script/blurhash/image}/gallery/18.webp (100%) rename {app/src/main/assets => script/blurhash/image}/gallery/19.webp (100%) rename {app/src/main/assets => script/blurhash/image}/gallery/2.webp (100%) rename {app/src/main/assets => script/blurhash/image}/gallery/20.webp (100%) rename {app/src/main/assets => script/blurhash/image}/gallery/21.webp (100%) rename {app/src/main/assets => script/blurhash/image}/gallery/22.webp (100%) rename {app/src/main/assets => script/blurhash/image}/gallery/23.webp (100%) rename {app/src/main/assets => script/blurhash/image}/gallery/24.webp (100%) rename {app/src/main/assets => script/blurhash/image}/gallery/3.webp (100%) rename {app/src/main/assets => script/blurhash/image}/gallery/4.webp (100%) rename {app/src/main/assets => script/blurhash/image}/gallery/5.webp (100%) rename {app/src/main/assets => script/blurhash/image}/gallery/6.webp (100%) rename {app/src/main/assets => script/blurhash/image}/gallery/7.webp (100%) rename {app/src/main/assets => script/blurhash/image}/gallery/8.webp (100%) rename {app/src/main/assets => script/blurhash/image}/gallery/9.webp (100%) delete mode 100644 script/blurhash/image/hash_snapshot_bg.jpg delete mode 100644 script/blurhash/image/night/hash_snapshot_bg.jpg diff --git a/app/src/main/java/com/dede/android_eggs/ui/views/SnapshotGroupView.kt b/app/src/main/java/com/dede/android_eggs/ui/views/SnapshotGroupView.kt index 54677362..c1a6a201 100644 --- a/app/src/main/java/com/dede/android_eggs/ui/views/SnapshotGroupView.kt +++ b/app/src/main/java/com/dede/android_eggs/ui/views/SnapshotGroupView.kt @@ -3,7 +3,6 @@ package com.dede.android_eggs.ui.views import android.content.Context import android.graphics.ColorMatrix import android.graphics.ColorMatrixColorFilter -import android.net.Uri import android.util.AttributeSet import android.view.LayoutInflater import android.view.ViewGroup @@ -12,8 +11,6 @@ import android.widget.ImageView import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.view.isVisible import androidx.recyclerview.widget.RecyclerView -import coil.dispose -import coil.load import com.dede.android_eggs.R import com.dede.android_eggs.main.entity.Snapshot import com.dede.android_eggs.ui.adapter.VAdapter @@ -82,13 +79,9 @@ class SnapshotGroupView @JvmOverloads constructor(context: Context, attrs: Attri val background: ImageView = holder.findViewById(R.id.iv_background) val provider: SnapshotProvider = snapshot.provider background.isVisible = !provider.includeBackground - background.dispose() - if (!provider.includeBackground && background.drawable == null) { - val placeholder = BlurHashDrawable(context, R.string.hash_snapshot_bg, 54, 32) - background.load(randomBgUri()) { - placeholder(placeholder) - error(placeholder) - } + if (!provider.includeBackground) { + val hashDrawable = BlurHashDrawable(randomHash(), 54, 32)// 5:3 + background.setImageDrawable(hashDrawable) if (ThemeUtils.isSystemNightMode(context)) { val matrix = ColorMatrix() matrix.setScale(0.8f, 0.8f, 0.8f, 0.8f) @@ -101,10 +94,9 @@ class SnapshotGroupView @JvmOverloads constructor(context: Context, attrs: Attri group.addView(provider.create(group.context), MATCH_PARENT, MATCH_PARENT) } - private fun randomBgUri(): Uri? { - val list = context.assets.list("gallery") - if (list.isNullOrEmpty()) return null - val index = Random.nextInt(list.size) - return Uri.parse("file:///android_asset/gallery/%s".format(list[index])) + private fun randomHash(): String { + val strings = context.resources.getStringArray(R.array.hash_gallery) + val index = Random.nextInt(strings.size) + return strings[index] } } \ No newline at end of file diff --git a/app/src/main/res/values-night/hashs.xml b/app/src/main/res/values-night/hashs.xml index 224efe12..8dbc97cf 100644 --- a/app/src/main/res/values-night/hashs.xml +++ b/app/src/main/res/values-night/hashs.xml @@ -1,5 +1,4 @@ - LNFqFcNxsQS6|,oIj@ae=cxFjvfk LPBpkc1k-SXR$*S#WCsmoLj]R,s. \ No newline at end of file diff --git a/app/src/main/res/values/hashs.xml b/app/src/main/res/values/hashs.xml index 1467c20c..1f2a671f 100644 --- a/app/src/main/res/values/hashs.xml +++ b/app/src/main/res/values/hashs.xml @@ -1,5 +1,31 @@ - LVPO*{9docS$}Nn4R.oy$]${n$bI LYNnBW3k$%S#$9ofWVoKjZbHayof + + + LYOy6uIXXStP}NVtbcbb-f$xj[R+ + LCJI-PjcC,XM:GXvC5bYXvfPj=j[ + LPM7vPyE5555^SD~~DRi4n$+-psm + LLPaQ8IR9Wx260sq-os+%S-m%2NH + LBG24jS20$,,-oOaEm^K-RNGS5sk + LGT7BOpIQ-ZNUbu4V@m-Z$kCeTjF + LIPsdyrC^ibx1IEJ-o#;E0%2r?$M + LNPQc:.j=HR+?@H[kVX8Z%xtJBrs + LDNK0hNmv,xs:~QpwOtR-9nUs?TK + LYPZom^5|^X7]$I;S$sAiwS#soxG + LbP}Q#xuI1D%0z$RXTOQIIr?X$bu + LPReA_Y$TfxDteR#i|xwpXaOn-Ri + LIQc@M.gbSw5FgrUX+J;=LNWx-Dk + LEGxEDMy58%0~U-:ItIqxUE2NL%0 + LOQbzz}$rNWXkoRXWYkkw[N6soR* + LMNU5nabsixm^X9Zoyxu0#In$%je + LHJIxAIBVQtm%}F=#uNWG2Ohw9RX + LJJTFsU[-xH@?IuCx=%NvT9ER*%x + LDR2Vr~BIm5P0r~U,J8w99;2$%9a + LJK-hbXn.mDj-xrX5II;50oaSvt, + LLLr|rNA?$xKtFXWV|ryOh=gRUM# + LLS4wORjL}bIm+e9e-j[bMavpJj^ + LkPYet0fM}jZIVM|S_xGRBJ*R*xG + LTQIPCT#ovs*:%*0S*Mx9_NFx]xG + \ No newline at end of file diff --git a/basic/src/main/java/com/dede/basic/provider/SnapshotProvider.kt b/basic/src/main/java/com/dede/basic/provider/SnapshotProvider.kt index e41727e9..ae5262bb 100644 --- a/basic/src/main/java/com/dede/basic/provider/SnapshotProvider.kt +++ b/basic/src/main/java/com/dede/basic/provider/SnapshotProvider.kt @@ -2,25 +2,10 @@ package com.dede.basic.provider import android.content.Context import android.view.View -import android.view.ViewGroup -import java.lang.ref.WeakReference abstract class SnapshotProvider { open val includeBackground: Boolean = false - private var cache: WeakReference? = null - - fun get(context: Context): View { - var view = cache?.get() - if (view != null) { - (view.parent as? ViewGroup)?.removeView(view) - return view - } - view = create(context) - cache = WeakReference(view) - return view - } - abstract fun create(context: Context): View } \ No newline at end of file diff --git a/app/src/main/assets/gallery/1.webp b/script/blurhash/image/gallery/1.webp similarity index 100% rename from app/src/main/assets/gallery/1.webp rename to script/blurhash/image/gallery/1.webp diff --git a/app/src/main/assets/gallery/10.webp b/script/blurhash/image/gallery/10.webp similarity index 100% rename from app/src/main/assets/gallery/10.webp rename to script/blurhash/image/gallery/10.webp diff --git a/app/src/main/assets/gallery/11.webp b/script/blurhash/image/gallery/11.webp similarity index 100% rename from app/src/main/assets/gallery/11.webp rename to script/blurhash/image/gallery/11.webp diff --git a/app/src/main/assets/gallery/12.webp b/script/blurhash/image/gallery/12.webp similarity index 100% rename from app/src/main/assets/gallery/12.webp rename to script/blurhash/image/gallery/12.webp diff --git a/app/src/main/assets/gallery/13.webp b/script/blurhash/image/gallery/13.webp similarity index 100% rename from app/src/main/assets/gallery/13.webp rename to script/blurhash/image/gallery/13.webp diff --git a/app/src/main/assets/gallery/14.webp b/script/blurhash/image/gallery/14.webp similarity index 100% rename from app/src/main/assets/gallery/14.webp rename to script/blurhash/image/gallery/14.webp diff --git a/app/src/main/assets/gallery/15.webp b/script/blurhash/image/gallery/15.webp similarity index 100% rename from app/src/main/assets/gallery/15.webp rename to script/blurhash/image/gallery/15.webp diff --git a/app/src/main/assets/gallery/16.webp b/script/blurhash/image/gallery/16.webp similarity index 100% rename from app/src/main/assets/gallery/16.webp rename to script/blurhash/image/gallery/16.webp diff --git a/app/src/main/assets/gallery/17.webp b/script/blurhash/image/gallery/17.webp similarity index 100% rename from app/src/main/assets/gallery/17.webp rename to script/blurhash/image/gallery/17.webp diff --git a/app/src/main/assets/gallery/18.webp b/script/blurhash/image/gallery/18.webp similarity index 100% rename from app/src/main/assets/gallery/18.webp rename to script/blurhash/image/gallery/18.webp diff --git a/app/src/main/assets/gallery/19.webp b/script/blurhash/image/gallery/19.webp similarity index 100% rename from app/src/main/assets/gallery/19.webp rename to script/blurhash/image/gallery/19.webp diff --git a/app/src/main/assets/gallery/2.webp b/script/blurhash/image/gallery/2.webp similarity index 100% rename from app/src/main/assets/gallery/2.webp rename to script/blurhash/image/gallery/2.webp diff --git a/app/src/main/assets/gallery/20.webp b/script/blurhash/image/gallery/20.webp similarity index 100% rename from app/src/main/assets/gallery/20.webp rename to script/blurhash/image/gallery/20.webp diff --git a/app/src/main/assets/gallery/21.webp b/script/blurhash/image/gallery/21.webp similarity index 100% rename from app/src/main/assets/gallery/21.webp rename to script/blurhash/image/gallery/21.webp diff --git a/app/src/main/assets/gallery/22.webp b/script/blurhash/image/gallery/22.webp similarity index 100% rename from app/src/main/assets/gallery/22.webp rename to script/blurhash/image/gallery/22.webp diff --git a/app/src/main/assets/gallery/23.webp b/script/blurhash/image/gallery/23.webp similarity index 100% rename from app/src/main/assets/gallery/23.webp rename to script/blurhash/image/gallery/23.webp diff --git a/app/src/main/assets/gallery/24.webp b/script/blurhash/image/gallery/24.webp similarity index 100% rename from app/src/main/assets/gallery/24.webp rename to script/blurhash/image/gallery/24.webp diff --git a/app/src/main/assets/gallery/3.webp b/script/blurhash/image/gallery/3.webp similarity index 100% rename from app/src/main/assets/gallery/3.webp rename to script/blurhash/image/gallery/3.webp diff --git a/app/src/main/assets/gallery/4.webp b/script/blurhash/image/gallery/4.webp similarity index 100% rename from app/src/main/assets/gallery/4.webp rename to script/blurhash/image/gallery/4.webp diff --git a/app/src/main/assets/gallery/5.webp b/script/blurhash/image/gallery/5.webp similarity index 100% rename from app/src/main/assets/gallery/5.webp rename to script/blurhash/image/gallery/5.webp diff --git a/app/src/main/assets/gallery/6.webp b/script/blurhash/image/gallery/6.webp similarity index 100% rename from app/src/main/assets/gallery/6.webp rename to script/blurhash/image/gallery/6.webp diff --git a/app/src/main/assets/gallery/7.webp b/script/blurhash/image/gallery/7.webp similarity index 100% rename from app/src/main/assets/gallery/7.webp rename to script/blurhash/image/gallery/7.webp diff --git a/app/src/main/assets/gallery/8.webp b/script/blurhash/image/gallery/8.webp similarity index 100% rename from app/src/main/assets/gallery/8.webp rename to script/blurhash/image/gallery/8.webp diff --git a/app/src/main/assets/gallery/9.webp b/script/blurhash/image/gallery/9.webp similarity index 100% rename from app/src/main/assets/gallery/9.webp rename to script/blurhash/image/gallery/9.webp diff --git a/script/blurhash/image/hash_snapshot_bg.jpg b/script/blurhash/image/hash_snapshot_bg.jpg deleted file mode 100644 index 33271ae6660169bce262c6cf8f40e554f908c83e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 351344 zcmbTd1yqz@8|eGa3@M$`jUe4Ugmg=YFmy?G$pAyB2nZ4)CEXw?DO~~z(lAPgo>27o{S0J{AH{;U(4YAP#R zKQz==)6`M@R{)`gj*F)km=pj!JpFwQ)gQ2!n!#9b#{e*Z58wd80AOqH=dEj`W(?el zrm8ZF->uSL{*Ro^{Y@PJruj70-SW&WbGQe1xZLvZTc-4IwDki3EW*G3{*Ly}w=8tagucdx%C{^B0C z|HXFy#r}>@Z_5b)%3j{VzAjGA{w&<~_gRFcrKMOj9E02){r&kL+S`Z};EdwF=< zdIkf)Ki~W}7C`>DZdqw@4^Z)VV$OizD=K#<={$Jli{kOk3`}=##2nq%T z1qrw~+6(-x(0|MSR^i{8|8w}S`~?2y_wTx6QE_}?8{qEG^0!j$z1+P5d|CXwZS5Ud z`2XLX`2RTKe--P$%E4#o_{7oI(epMdliObA;^}nT+@20D{w`jgEH0k^vljk8jP_q; z_>2Ga>sz2Gz5yt$1pv}&3SdzX01%7Z+Yr#d+f4`G1o%7h9y4$M)9-KjHvC`i z|HA<%-u?^rb8%w%>#b~P%wiwl8~B%R$HZR;8@L0I0F(eNzyz=Z+yFly0!RX~fFhs@ zXaV|wF<=H*0rr41-~spoK|m-F2}A?0fF$58kOkxc#Xtp61AG8lfDWJ+7z9Ru31Ajj z09Jub00sO4&VWl02!snF0#SfyLChdd5HCmsBn6TOse*Jsh9EPL4af=P2?_v(f}Vk1 zfl@$OpaM_@s2=nY)C>9yngo3Zt$}tyN1zKZ1WX8~1T%u~fd#=*U?s3N*cfaHb^`l= z;o#@s*We6rA-D?M4DJPwfM>z0U=;Wi0ze2L)DTt(KST9?J&{ffbLHg;kE#j5UBYjkSjL3+o1( z2%7<$7h48f6WbKq2|EZo8aoZU6uSxg6ZS0jCiWQ)4h}UA7mg&3296nyD^3VbJWdWy zElv;4B+drTDK0K9EiNxE6jvYD7S|s)8aETS3bz|~3U?FtHy!~VGoA>Z8XgSK6E6xc z4X+Zf3vUW<8}AaI6rU4c245fF0Y4Z&5x*F}4SyVe6aVrK*&VJs&^yL=T<=8Q$+%N< z=hL0VJI4eB1Z)J-1O@~y1Q7%o1a$<%1ZxE6gye)ggvx{#gaL%F3Cjq32)`2^6A=;J zBT^)S5&09nCaNInCt4=@O-w;7K&(mZKpal|j<}h4iufl9J_#p@5{VTFoFt8;fn=Oy zpA?_;9;q^^Eh&QZ9qC6>BK#=l)hacF`X03= zwL5hp^#|%X>WjOKca`os-i^Imb9d@4hK8O-k;aiGj;5Aomga(%g;tf;jW(IKg?5P! zi;joRfG&tGm+lkYK0PJ9EWJH_9Q_CSc?K{84}&2?2tyIWD8nfu6Qeq#H)AGaKjS_V zHIpKfD^n^{7t<~?1+zS}3v()SH}f6~6^jy!J4*)30Lw2{238H$0M-K5G1f~qF1AN( zQEatrOYC>prP!aar?U64|Kecg(B%l_c+WACBnVImC&%$93=Vy_fe|?(J~V zaA|VEx!!XvauabYaQkoWJDzb~Fs}r!3vUkZBp)`P zG@mD5As>>TkY9;EkpDgZngF$cjzE+^i@;Ao4nde;vfz;5jgYvIyHK&vf-t$TmT;7C zoA8kckBGg$8ZSKJeiZPi&xFLp!lc3k^H}9^%Hvg2LDMkP5i>e77qeCvF3bd0 z3OhAdHGgZqX(4VAZ82xbW%<GmiGMTb;}T}P;6isSYZ=#!KuJ5EriH%`0G3eIWH`!32ZSuTgJ8m@V+7&m>l zGPghOkKJoM@H}ihK6;XSx_J(GF?l`pn)K%Nj`m*lk@0!!^UGJ;x6}{hXX)4KPkFnT z8V%qMcoDD`C?EJP@OO|&P{UKQr=CwogL#5ugSX*o@RAU$5c`n6P}b1M(6un7umS`K zVTb4oXAgfKz8Rq&Q670G(k=39lu%Sk)XB5Q&)S|dK96|5@k0H@`)J~5-)Q7Z*_U}S zSTQa!W3i&KnXxx<4sl;z3B5{tbro+P|0O{>nE?r5+xFIlW>weljf2YlFL)b zQs5~YZ*<=@r?RBRrJlUCe)~C1EG;knPI^H4YKBfmYbHl#Qsz~bbJpy;2k&aL8M0%u zF*y!7Q@M({HF=DAuktSPUGl#bs24OB-YZNi!YK+Y+A20F9x9P4sVJo@eN}p0=2^B{ zZdg80Az4vT$xxa29{fJw{ce>-)kL*Qb!!cOO+hVn?W;PVE}(9&-ll%;gZ78M2C0Uc zM$X3UCW@xGW>9l*^RE`?mep3X*2#}rAN$&5+nU-1+RHjvJKl9tbtZP*>3ZJvryJgV z+T-1`-|N)7(P!Pa&~Ms5Ghi?<_DTEG@SxgY|B%v9_b_z0?jp zHhmTU+B7CH);umb-Z~*Y(KabJ*)^pw)jO>+JvgH|Gcv0;J304g?i_nY>2`MK2j(8c46?aQDm+^dZ1``2wZ+Bb`TJpTOovj98?AYkyF|DE9d zOX2@=|Nh|N5fI(MBf`VGg9n0OVc}ro+`+-QLqc?ih~)pb{OJM6@F0cwHV_aS044)L z$UuJv0EXMe>+QS2D;Yq@ zZGG4xlYe0q)b~<|JeXWN#5TmSqx8j%N?{i*{LrUtG<8JvH~oLozRlyG)c?ug|4v_? z>^6Nc1RLj{+@JKKC`WpjeouLo=HJt{CGkwAf8=i>EtbXy2-RcaI7?pYspvY=tLWnyS32Ht@NkTb01$f)8qs) z4fdse8`wrom3Z$++Z=4RSfcW?LypDV0$D28S(e*_ZVDqHtbh;U0-M-!vV&l3!8%c)x7JaT^X7v%VYM6SEpuVTpBPtsMq-`a+tqb+Ec8HO7pTH1A16n4JS{f6YM=;=^+z5Gc@ z6Y4krFRp;DHh1OYX|fWdcS`88^p#CaJy#B*mYS$+&4qHEgoG2fQpm z>l9I(oSqJq*gvcF*I($)c{FZu>V`u$y?lc(M(CroJp&`r)A^;4c}xz9$lAI{YyD6> zGjTVBs;Yx)(IxW3&2B>1AD}y|96>e(9nb6JH7vxN9vD~;fM`^C?$#o$d8m_0ZM(a3 zRS8BDQ`L6PV2RR|Z?F0Tk7&G0{s7@)+)V7yrkK+U!4gkanR@|a^7Sf9yIU8=n(OEk zWLZQr_(^D4k&~v(b!mnr*UB5|qbg6Yn*ET2tVLc;qzQB!4ST9R*OW=kx^9-KqprVQ zl!dTHTw{tQ>NhJ{m^%p`cTlW+sVA@RYRW9oh>sAVd3}9zJe77MXh%STET!SU`cjEv zxkTnyyUt6ZH_i2gjW$bdr&A*`1xL^cvUBY!DQ98jVrqxANATQa*tjl_ZCaf;=(=&J zlP55n@megoWkjYxBm(u)3#r5?iB~ky%ai^R6d93NtS5J=ttfKG*w9aW2V)IFR zOao)cjwo7d-uXD@;HNWzWY09Fw0&CVGRrJ1;HRSxb_-LPYTi7QmxhcN`T5}F)BUmc zh+1UXV?E6idAF4>??<$)`uW{{5;H+)GP3PIUQFV)q;)^i^1@6sEvC(zDfhyj zt?5e8tjKZb95&f+*f}6a6D_&>rUshFQ}Ri_tK4vL0)#!P1gzit&B=EH-7-QkCWB6v%oARqNFq#k`4LBvqc+6F+|r^gNaXc z9+5x4d=Y8q2<9jsSK}x?DRdkz2}_GKJ`j!YMongpn?-yF9)O2`H;Ah@mvc+Pud(b`f@ezrz)4uM=14RBUc}F##v1 zO=Rf(a-mepD*25zJ#hwAaT|)?pPi_>prgBu(em*-HBL^xumt@V1J7}D&3qW&6BG-# zc+~_cB8ES0SNjVRL(F;ve7d*D{V`cS18*ZvwY$xZXiGjUrkRNA+sQv=@=wbjEdT6% zQ{W<1?L?B+Sz~`++1!2#-|=cNcfJgtFUgyYSmdS4>|jGH_#w*}Eb{X8s{oblP=2UQ zir8dWA(u*i@0CBP?+&$85og-vE z!bI0&x9YfkR?;}GxBNzB`Aw$5>upyn?tQft4NTk@GdSwk<7!0TOm-0Fa_ZfXMM$zJ zN>@FO*; zi*!9VF~M#goa{J5%MP9>vX>#pBA;7BIp%b|+&`qM{(kv8(?U+n=BjQEq&$WD61X4UD=f?i*jI9`uybJa+=X64ve;Lu1r~Zsb5be58ooFUI}Qw(3PxLGzaX50|%}zv#b}k zYyJSDC#BLaY(M(uZ1>j2luW%S+A}v$JX-j}@ou%@o;KwW;-*&JV%8|kZN{@dBIf*J=4lXQ zIzQ1`C!wNt?dnFKD>#lTmUkuh8&Z5Oo5B8|whST{L44GLfwmjvGKZpH=e1u~2q424 z;OedtgZ7Nw-F^m#O5P+SQLlZKa~dyBzJh(qlN%0}V^l}~08CpEA63*X++|#}TLft= zK8EGjrP0ux;)dQmp|~=@K6m%Nn6?PJS+XSfoY+0ZK8iN`B-m|TD(~njUJICed9K2z z1;Ynj1X|94J&DVSF8d!RJ3frpt^>;fwICkx+Hw!_@Ss_NoAnpZh(($PyRy{Ur+xDf z7i0III_V4Q9gG*7)a#c`TLx>g_}-oI$}67SzRo*_Or^*6B_AnRy-{16gNNO9-F}kJ z=(gh`fU`Aub9j0_wKSk6w?VQO<};tW>dn48_o8gYs$1&1JZp&GExky(XT+j@`bT({ z6>IP50@Go&WSJM-guU`iJZ9l{WzK1Yv-$HudH6*D>cPm%H1vwD{g=FVA2I0pzl()# z_^cihhTJ3kZo`GwA~No|Y}GLL?pePX=9)N__;L6iJoxlW7+uBQN3}8Qf`{&WM=hb&9(FhIq|RPy)%p@qGHbTB!f#fNGWSI$WblFHaM* zs~wngeP$f2|4S#de(GbNq`+#&_;`y4!ax1Hybqdv`NRvTyBtkKqjiEXOm$&#JJ~As z)rikt5SLxS?FrO!U0uuWC8lD*ed9bBD>Je1z!-N^t%ykPLB`Xl5v!pNbnEzm>C&=2 zM*c>}plx$^FM#KrMaWcx^ts!((2+s&H2rWU=tp>988t3N=F%cH8_A+Flw zT#_RlH#?VN%_-r<6(9S8nYsm))kZ>YmYPv~lK-{hOC+4bawLX%Kb z;}SX=*(dSj{RP*~ zW50ZPM$frz@~zW<_0e;;Bk{QoR6NssLYdkpA^KkP1J%u9K=#46qVx$6Y(ly$SSRKVWxgL)H;-IM*0C39^Z6sGxmu<5 zqXnho-nqtw*trhEzIOzl)^1omYDQtQY^RY1}RDu&&L_R zP488FnZ+PLp5QHE8RC*9XhzZ8d%@seJxI4Pd|ods+gkBu;;Wf;M7n9&yq`>4h^FbY zg$}ZsZ^ey#1!YzV>RulEby^p2RN7Sn!%aZhj351>Q8IF0hIs?7?XH>XH-XMWH&lVX z-|KoUHuQzp(i7)$JcC*H{e8~j)2~k{7}Y)^)EXV+deWN-iM*}2&H9+GjfkObqYz@f zrI&dy`@p5w4L_ZiKGN08ZvT+kF1;+EYAsgCOnlV+hVpEF#$y^eE<2TdQSfG7eD~WU zYhUpb8d&`B@c#EvXC|bZB?AG|VTW+H=4j4+kJYd!eVLHub_BCy@@`&ubLV}($S?01 znMwMh;Ux>W9w!sXqTW>&GZsCOF@F4m2D;N9zqN(A9h0;msvTTXwc2YB=w5l#aQy-5 zc`YRzdlE(B$UB&br<#p_`6^i%Og_P`|}XA^PYm6`zBA)x5sXB39PufcNehX9VrbICFgw2V56cY1@w^%H^-xDhKFU`?V%iB!YFs ze&XX~s(_Buf3!X~KKiY9Cp?2sMVr&TGE^b%zNIraGtFIcNFH%U6b(C%%gYwAf*{bT4+S>6A#VI1@KSgP~fCvjq2{(n5b-xmm9y4ST93IY7vU_eKDvsr_Vq z(Wb-Xokt(m=SDocJ1id99{AyX^Qls-Zf}x48-j2GYdmrc8GgmE6mNTe8y5l#g_L}e zr<4<4=XkR9aLbj(ux{s9t19_O)A2L!wpGuowh9B!=RhR+l>p1tK(4JTc>C*8Pj6R2m>>#J9v+N-W6@ zW1%W6e43YK77C8s|h|H^!La?8d z?bNT<=L~*Y4$U+i02?KhGX*^<1*1{oBiz(^dvZ!7AK7G8CVM~Gnq!1woA-Aa;g`8a z5mfX~dnD!A^Um%ZZ(i6 z*zsqpuG{{AM#sE1EK+~e9(!&INNh-LwNh&n5*vu1terWv87h}elB3{n0sP#zyshQn zHaG6xH+VFv>RPohq~SU-;{x}v%^NQ@4se-|{~hh$*o)KTU|shqF54&?Ss0WN&?Wdh1{AHR*h9-<@tK}um5zGp3wCoU3;6jPZr>3D_WDwS+-{ZF zz@EES%tC-$_EOh%3X9=Fp!TpmOH`9GcGVty_Nh%iQ6T{&IOFDh_DTcG_QMomfIStC zOZByR@!ZYQPtu_XHUoJ+s=<+QfXb0^G&;n}b^~>_k-+XkzKi2D*dD?F$En@-F|9lP2#ja7t)NdSC{S;gg93$1;^05C=W*G=*{1;i80L} zurc9s@jWg5&~r>`f!Ly*l@)!`|w-u2HOulnSmCON?-HEf>t3AIhMkBBA9<{ZKq-CTHX|7(oDH@uv%# zB-?rH>dD{6;l!!br%_NfMnw|qoq2l`RS-}9I)0kq0odl_TN1S!Kht!4)R|YD^m$Eh z3azG#g7W)B88<0*LW(JPuk>X=S=#}{?8W(6yr^dI31oXW|JdI34UIRSMz(B}aP2t9 z8=QAB&za%7JRJEORa79;)gjU%T5pnEs0;sd&E5~oW_S7p{EO5+1ldT zBsKL>>;aYUeFTL#Y8&IdTIPxdty3IJSt?o?gOv107s6!f#JAV3)EFEnve%Ve0`x76 zh<`w)w9m^|?nHI1OY6JQByi?qi>WgYh=|#JE9A8qGTk1MdDyw1X zJy)iQfIkm0SSQuu0OKp@(0FNh34Dk$+ZFXFR^R0q)3gO?y7X{HrQNPU8VAbpZ08CX zenOjvQz5$eoM4TCr%khu5{h^8Sv@`u#5ZfR5!CqDgm7_z6(egTu^Aq#_bzIMzm+!t z4eJpQsGc_!Kc#9WW+qH$+h4>V9`)T^g(^8audX8%&Ri03t5ET70wn!ln}YmgcEBAZ zZKK9BIET-8dCxgU;8cNfm3@b%tM(RJ83YGTLOm1fP;A zGrjv=TnR3lJfI1zHge$(S0~3+ecr{2-p@zsmSa;G?-q;vl%AO#?K}$?D*C3rSmw3g zO5}LZKfvrg;acToSFW|_w82krM9Xx$PQ79q`|u+`!^f;OlN3`4F;L77*Q4!^v~OWP z97bSL`W{*tMytuj%Ef#wciI8GfyB}j*L1VzB*yHdP%`d4yU5?}nkvp?{=|qS%O{xZ zfMjFyNZ!NeN)(te66B`-i_SdKlqrhDJRO58dFP4q9?k;@+Wc+c%Zzj`=^Y2q!kgtwq-)>kf1SLVD%O$l*Dwdnt`f;*n#=NCT+c zUeq|^7*pW!st$#|C=J+nWZZ5OY&<=njr9izMxmz4<+i84W2!kv(2$i=74zMk&UIJW zMHT`z5%>jE_(6|~y%eKgi$#ODw%SZ~&c=#0n(~puFZv?-wm?i*I2_nsbWsF#_+Q_w zG?6;xpX_uV7>dkwZHN*|oM0+2b8*KD(-=nXrR13dOa((rWa85H{-pu`0RnH|)0B4q z^Qh*mf|jREG)`h!t$P^^1t+3dM9hQ}JNjd;yyB)SoW`wMQ`iAQ6#M6ZY)#lh>Q1>E zQ)nAXPp+fMa*omK6XTwjTwIY5eVY?RMZt9(ozE8AQmauS386SCuWLc=FeZG3*2`dK z*snj)N9ML(hCFFP-s{0!1y9n6FTq0&I@O1c#|AW6y;{{IPpFj9E8Q|#xkH;*(|+fd z7)m!h0gxLS{S!q{KVPRH7lOIdw0wmkCSo;$9;hACom4bE1$m4NeH?C%fKIa0L%fm$e=p6$Rv3 zI@K5SH!wEqx8|PmlV`$O^=rZsgDssG+)1{#uO=iyFjsULO(;6z`M{kV?LM1uD6`*a!2l3)+lk~98;D<;E_4LppHts-Ke3bF;h)Ob00+F zJ?ER6{{RX@S^_Cw;kk!p8E3j0^=cA7Hhvf7u2_c{9-o0l6_@6?jOO1}>F@FX25zee7k-_Z5JYZ;k9e`@J49$^Thaa3;c0Fp*J*{oVQtH}8 z*Yxk6Ts)Ms@OXA#|7TRm-H?MaMDkJ5XwZ4M^ik=)3(73HJ_3V$bYRfxg%Sj zz~sI&qA$~jU((IlZK`1tskpk-w#=oVF62PB!--kT)|Kh{!q`%^>d~0uwVXddt%u3hvhl_@`Z-H!;wLSZH$w&`1bPpUvxK*2 z`n62UA6Gi*1!q~Ciz;iXrRMH&v6UfLS_~Uk1+K66ZW=qDd1*#AQ`==tHQ$IaLtS|c zEdpj{4(}win0G(nHuDb*3Ax_gM;wx%=F(>5uKoaCTP{-brtwk)0qrFENtS6do}#e} zOtX?=XV=}8w(c7%S~5jUbia7YBKTR=543}biV|09UQUbGtot8ZYcW_+ATJQdDg_%9 z8?_Il++tc798aYdgXSwqg2(mY1}hf3M>o4VQE`{>kX?h1yMyPbGdAq@kq7W+XxJ#T z^Xr_Ob|Y&qosjW`YENd8l}`QRYFA^urm9%tfNDRQoNG*90b(WWCf`MaZ?EpzDcxz= z_DZcsrHYLky)aQ$;7Zu>w!V`!+g5nCKRA{rvVA2l4{d1vfSms2Ck3JQaR1V6Azb^P zyx#dy&`bYxLQTxk0Zh{k_C{#zHRGE2d#HX`QJ1q>@0W-S_}O&@QR|ollQSTd z99KRl$>lr%RUeH9{_Gv5Jt~@!iV-+Hsc~89M3? z)|JQT?**2CNWy?~7(nm9y$sbZfoFmIj1 zMfs)Eg0+6J+UvX|!c1?HQ|Z{R^s5$pyAg62E+S0D=ablypaE z%&6QIyjU(YJbbam`1b8!*Gabcku$Txu1QB;hYPxiYi%dwXP5B$m*|JjX>w611S@NM&!*}ARV<902VqD8m=CZl+J&Ebe zA=sA6n|mV*Uv4LUF%Qi2uHJnwg5dLzubR4pO{-J9o9cSL(wB#+Ti+)0)l%AY@lDXIDFt zyZh%JdVIxO5YuzD(2JSJ{jfPOi(NAYO_`ppz(vrt=Az?)MsF&|X%hrbe=FhF{fHWP z6w$Yf+0+hb&7@e|z#N;KtTV4%T&hY+tPE9sHO^`yW@20L3f{{P8JmrvIoO|D-*ovt zmTPUz!%$5F4PrWm>3PYFe6ta6u35g?I4|a)O-uJ`*}d8Q+43Oi^885Ejnwzi?nj-XTgrdByq4=~ zdeLRj(#jN263KR)G~!2r{$3){8OX(ScqEpdm=)r&e^%Bqy>hJktpjB>9QPCC(f$XZ zxEwI3OW%opNLzw%WngeiRN?lOWNf&G3ul`Y(e}v2L2~~9pYDGYW|X(`G1ZBRk*o?3zTB4)GsgxrC_ke1fav>})HN-|DP-;CS=Zb=(qmjU zO)NUC{{7AccX3jWOs4Z%m|ZhAtX8j3Es!Zs%g^cC&1o&cFdS93AdvK??1^9LtAi33 z?U;Ux0nYg7g@@yzZ?Z!^Ny;(KwKC2!F@8%#Ts&-v7F*FEF}*<%ZO8}Cb$k{}QL1A< zPRuqmcbnD;J}BkRr59}}%S-PhA?e__J6ChZuZ7Wdu!t{0>i*r`*NL-tR$jjT1L$nr ztGljevKGuL`>?iqQleMogZ%NX9K0XK{R}leu=o= zN_ve7cdNb~fh%vBI9G~^B+YO3W9%pN}5u?XAVJTNX}{LzG}Vdu74%Y8Lp+7WWSvk)Uc zcDHseY0=*@JP-;oeSe+vypO2)LIWD!^_%9C?Z85@|D{3KtwBKeESXcMI$XE3`pF1c zL|J#)3UX6rIrLib;-Pe&zKn!*4%hZ|miR~>3juP1xyi;}KyKsWv~(+csx(* z6)@2uKe>gxHAU#hZw$LI5|l(&3qcj~!kcbwk!s`c!5g#+a6>WVblIuOVSv9t*v)eH z_*9{;z1M>V3qnEpg%JPJwVa!8E1OfX?d=yQd3KRVPzbKe`Fb1Y(Bm1}%B>GbcIFZ_ zgzBz&x=7wc*v&RfGMEw9852`5(vnwz*?*MT)g)IhN{3vue>y03c4O?-$fl}x$%Wnz zZ9Azn_cLceEEUZ7_vt=;D~&xsqEKs8R(MiMbKN<%_oDgiGGwYw`Xb~JT?-PnWn7ex z^!@|9tj5DsVvb7MV+n)37Fx6vUQ{f-PA(hc;k<)}U8JWdUk6OLXl05n{LafO!G8Z- zT>5t3_J-^uhRT>Ppn~&j_&8dXYZft+t?1jlC%U;5SAN~?6%Lo>tf5mDmMXI5=sCMU z!+I&U8`Ts%Q;}wu;|=EWIna{|iQB6P6$|Z_u;KAv_uxi#BxO@_W2tisThJ_OiuhaW z77vumm$@oaqBEg8IiTt3?gdy${`pX;q+kuFOn(f^eawD9NgYMTiq&&e<9?;pJw87d z%~~&Jg#})eaf{w(2zQR$2TEOn{h#W(tY_b=xQwA#Xqt2Ovd2{3y(t{q>)+4Kd;`9< z@@4wm$&2leeEDq3P9|dc!YEXMz&nNrKU=b9$l%27sjE*jmvRO_8V~7ORNC};-B#AE zrhy#g=-TjYHMh3ww=vQ@Wr8j+t4SHUcY#{qHt$)h`HlVD?EVn4(!J5VOk__bU&aYk6w@zr!t0Chde+XN4xt(-w za_s{YJA@+d==*e)+`n+4ykfI}DS>exoz0dPJY|gM?*;22{6VLvOd>_POwrub6&=sc zuxDPBntVytEh~CW0y+*Syq;NKAHTT2ampNQEmbH$hP6pZ6Z_T9dU26r!!m``(Y04- zW-Qt$U+SHm()8xXkk)F)9-*c=|JOsc9u@A55qaqD2AKD0`b$)DmXpwer->M`{FZ#9 zU^}^lbja=-`Dbvimt!$H*(W!8jk*z}HhFND=8OtKh4GDde7x$b=CAacIuvSh53Ajz z5aFCxMwYI3WU98OKTMUHz<+pE(rti2W4_)l{4HC4N7H8|*8K}BXO;w2$~Xq&2PIZ& z_Cl{ju3z8G(${3r$CB}4P-4in>$4THv}fgXr4Q{?pS=4xB{miHJUW_sLKYaKjMu2} zd8*>zL{>m&NBpK5+F__aTkAB{LZ8rK%e{NL+}LJq^)Vxn)pJ=Kr4o!cBmIpZvpZk6 zwz>V|8u2#a7>zQJn(MgwT2lQK2c=e5XY7$EYW~upejj}-i#Ba(wYCncI9S_aQ^`vj z%WWzN6|b#epkDQk-X3+OW3ESvul(vJzTJ0n{l0h%?O<-WA<+%}1h*#n)k6vigPNg_ zVPsZ%W0^g_0^jlx*G6O6EAgs~u-Bxp@wTk}PSDf=ktUDPNM*wxi)T~HEYgrq&==Cq zVk*7AmJag6B8(b)xL5H70cLh9_Xl0-5sO_Vt&fXbxlGwW8p0w9+F$mym{@Tpq7 zRY=bA&Xk6P-~04#SyXHD$v=R8Nw2z4(Y?|b&ccDV_%VN)5$O$v4 zQ%Lc&=-4RW`OW6;i%R5~EHF)yHXi(_t4c{fP17I0>%NmmkxQ?U<9}iIB?Kxl&Y*j@ zPv*2!1#sZ2U>X}$pFm&Q35c^T^`j5TrhAF}&Ab^LMNCX4eNHM45T-{j?OoS4UK_E2 zIY6{PO1MGGgBXr%ne8&%`U7x>8G!AqmPOb>Bf&-x{7Qv>nk?ZPNihWp-_f%vU=>GsB_ojWMlQdh7h9^r~4pkjxvs`=Iem=Bu zHpOMK`H0{AfWysbW8rx$Zq}A+`3DtcNG53ju`zNjf^CY_D`%7w);H9)^$?`5ZP>7pb>)D-r(o;Txi6~0FR^Z`w)qm*5{|i26RhmM*Oc@0N z@@BwZ#0>a-N0pYYQOZ-R9lR{mpx4pc?a$r)>{-ZZp#yrYbO(m3J{Hl$ScGzUi$wMJ z8mPk)9M5Dlx+(mV=o*6;+g6MCY(f(UV0BKT!+FX@z?f^Z&oBpNBLzomSZpM=@k_kC zGmQctFB<$+Z13Ud9ChQj+>ZRepW_At5vC8f@Mojxff)pQ91h(bvFp);vT8Ri-mBMj8qd9t*>!TJk=_<)&4B6^IL9jY!JN0H>flK>>5z~j=Wn}VK* zBN9w9Nv8*G$T^{rx}Ftp?mUuHIp>NXU~_^Qmf=4{A7R`9u;S_H9? zj@j_{0V1KzWi2m7#B6`c{QlrG-CAT%4j~+wzDr>8q0hF?f+w|s=-G>2vg~Wjl-RNV z;tmHB4mqyukG_yusYQk@#}9oY1oz1)q?O{#rQ!$Yqn7m_80;5yWj(z)tr{(pS`{4h zF(AY0PR$vOY9cO`YOXfU7O-&8+Ua)PY1cn>h;g_}U}Lp49aCxEH?;XIJwqCU5@#RChXpSYKm+s?|{e1<|c2-qIGHta#k#&Kf`Bh zJID0qIcv2N9^7Z*qGlxuw1@cZ&+M=1XK)#3g}~V#-_?MGp15r;92hmvaQI^(Orr8c zk#irapLI3udvfLTcPl(h%G?`fEP^3(#GvwJTH5%%Hks=Am>OM?^fpWOz2)-*gW5|u zDYu7rS*+~TSo%LN+MYw!c%Dfjw)edCVj@nvTgSbeZrJ=vlI{+T~t~xer5NC zUjB7(+g18o{ww8K>R-b&va3*Up`9d-wF{~UGSQaQuWr4Ze}D!~^`z07?#-3@=W_9`;DKg+)`X}8xQv~ ztLW#?cdK@I{)&Um!sbKZQz|_{N<6G#GvtHBo3EDQF^*<3p2y@*Pq|TFf%ed%2orep39!MOaozR>O z5@WEqAG^y@ zRj{xp%Q$yaeF8N!LPq`g_GzKbrR|Y^eDmPRV{?FJ*q)2=Nn;W0`VEoWFJePBfHj9^ zPcls*$u*B?V3X@um>`%`MRAbbWY=rm?d#N{=;lY;H-tQk=1R&Q4%EXOAF8b-*my3F zg`Hv%kS}=et@l%qK<@(SLf4( z)ya>Go<;P2N5NbNDY{8tix-3SV}yDX!MXK0BBmT|434+&+oyFWzhHAltE|m&5XAq$ zxx2MbYm)DG#KFZ($RQ=b+Bpm*lZuSK8(aE;vwnne3fEnGF?CZ{NO7lJ)|S>Y%1Ah z=<${)*CDy7qCV2LJse&OS&dB7>&JH~y_xkV0KXlz!fBu%bZ~0&Gqc-^JU+U}K}lOo zt-e@iD23>M36l??Z>@?7+gRgburl|GTtEGHm6WM>VtYbRmZI-tvN#L!sEf@2;6If~YIRuJ9~89NaWC=50w^s?*> zyV`SlS)+FuEQ8Fwme0i$#=Bahn_T!8YH|Yd>KT_I^e-DqoQ_fG-vt5H3DC<=_sRbN z)rf#BL-^I(FU;@G=sUX}rJ=mqG0PDx(#KO`H^*vg=;c#ZjR6jL$i>Zx*G+{68oiQV zMG^|1v&rvf54$c=n=I?*e~;bO)OoYg>BUW!AxpzJUfZpujN89so42GH5>zQDnAepW zc8P>>F`N$fm%%QZASdbyz(>%No3=^OtDT!v zkG0E%xu)Km}C4Vv5))%7wRB$)Jw4D?Yq}r>bA5JO+eoG8K&%U`A2SKtZao3(YOG!*gMD^0M4cB&(>frpYN_uy&xiyWahL#6WX zjN&uK!cb==f@Ncflb3abQxemQQ{DsY3)5BbPqv7zVa(<1lFNbx4r?7e#%-mhDUlL>aeygn4OduB z&A9MFUrYQ1&U+JFjaGJt3VzrUFX-YQ-k5> zpB|du+71UCCwc}>HFV@QWxTSGKqo-|2LSXy3%}_^4xW4a_ljF?5BtV_%^qxf#bwD* zq@5@FqiK`%_WFG5YG)dE!S9}xuDZ3$mpS52V{?1`{{U)EZu$4+=S^;_KJ=|=`_^oY zc#D@CeZP-NH{a{0+;^>DW6M7CDm9fXq-^zzK?L&#D z)OuF7==ZHiw3?fm>pgte@aqe{htKa?{u9j`xOHV_?nonbg$=>-JFQpGy;j`)^q=d! zE%t==({7&J(}DKYd-sanRZ7w`N`_?r0FQ3B;YObS0Fgt6`%G=8)`t?_`maxC%cWxT z5^3EG{Qc+c{m`=R+bn$l0AZ~j9m`#xuKV}an#p8-$W&O|7rr&xa z2dnPB)V$r)uiB(Y$OJJmZ7{Xa&(ZvrKK0Yuxn8#ZP|c=soF1_pjtI8q0@m zH2Fc>`k`(4FcJwds$F%>Zhe*`Rr~KniD1SS@vwk?Th&&#>@+VqmVVQZRri^vvgF`G zM`fwhwvuy$Lx@gv%InkTw$wP5eK!(+k9e)O24Z!oHP-qkgYR5cV4w%>=jrsTTWN!g zv%mF#s#X?A(>?zG0LiSvHl%y_D>D<@cOJBZh!kpMJOsyY>M6K)rag4u+$viy#7EB? z?E@_{SCb>;HP-|pUs(clah>$7YCSfcTY#hGTZw)$u`;zo?LyHl#C((=f3+618pw@n zOs&>D9>b=xOVv_xY<%Vc+GqJxwqHKI+k!p%QywZtGaHP4+mTlS3_z8)uER5oX-I?Z zjf6<1w*LU$V-c)&9rvZ-aQ&t1d)~1ngl5l3T@>fJks4M#KeDsskKVCgJa*fl^MzA@ zHP$!&ly6&nyom{iiE;hT#1DGb20i=hSPqpg9j%ws%TPa`+Orh3(^}|n0l9rQ*0&J! z&YpqOEP7It-+uo9xc$0RnPIC2+cf#&hZ6jK`h5O$Y`een?^F}5e()rH>jb@%H^3NSvu&@>JHL-_Lb>0Ke2 zl84*=DM^o)zP|LWWzVGf9==pA;m%Uruzj$;lvLgs9b5*ue8*{Cc=o86KVH7j&fVzR z7hmUZ-XPN6ef!U)ReNF}Q7#c-T+#!6l4E~5Yfk!SI{kanU&Q`r)o<3Rb=dlkzj{@c zz5Rk$1?TxO^XXc__8kZH^Pzg2YJGC)iwDd1@BP+tf`ZZpH8i|~qlo%zO~14JP&ZCI z{{Hh?S^fM)Nnl_fxb}@}?T)_tnj-FtWmw~{xD_uV5S&5u(`=aj4L031qhR@C-nFm0 zttTygN@H*A0EO?j)`grj{pa7xhu2?vd-67qpnZLhaZIr!USM0eYvey}@_w{sKN~#jF(veMgm1`g_eM65V}YdSZR{9&x=_ewxo- z>_`jxp41f2Mb!S%yZ5KG`DHE@29`olIZvE_@-~) zzdqHLXj`tC$JUM3cm1@FXXiirK|z zKT@PM_ig-o(%ck$^YYit);vEidi16p{#6t$YoDFO3T->C-#71CULg^rvp)0v=W0IFXISvqRgjzuK14L}xI!#yeAyKK=Sq+r*guf0~L~Ge-*7Ra{k`_beO)iVGIO&-)d@J71OZW-`Pziyg2ahuYZ5F zBPRaZ^Cag5K=;;%FWmY2?(2RZPrT5$U;?!C>*X~THrKgDzTe(_`+cc^$@K2E#=mOa zyMI(b)7kC&&(5^nqgawJB3r{!r_z3O@8`GHfU$eWZusywT4`1)g(w2J9U!at0A-2r>%_W>kpM8DeXp2sB8v6J9*0#~_MO7saK7_l2 zS!qG6XwReao|Hk~rml)PhxY06r5rKXokzXBYD#y0fhfS-L(_HXKEGN36bHRCvc(%L z*FM#5P{v=UE#dFm%kTWtSbm*Wcdcpq?^?mFN}JDEmLmXw{rY>&DB^oQ z*Uo6$Z@eKw;}7NUFd{=Ct5`xLNDI$ywLAFDph5ezdqUj7s{SAnfgMXP zOk<){M*u2(PKf zL!%={Q{w53Nz>?)*}|!mGNkb%<<2*aMpw6Oj~+xsbqEJ>RgiwC#;)e-IWIyrbo$Rd~8?&iIX^ zT3&OYenokL;OkQu^tnXf-i`))lZa4!sYtbwuunof_M>kP&$`d;(?2z?;{O1Dy3($2 zv({##iYv@?SabF<>~*Pd_`@3w?=>qH4)5Qd`&Lw4J!?#J9^jei zr{3|MaY>|)x3TjOBBqMq6F`TP6Th)L^M`4f*ac2CdH z{{U5|4%y}VCIP&!*marjTZF-2kTK+O^r3BSDbYt zrrz|caIDUPdXRsXX?T77l<6<~9<|Z%qsmWio`QZ=swuU<2P*11ejA04VJ}y&QyN#P z!}wxXU=ctuvjn{a>y4rC+#GJq41B=y`C`2*I7bWvxf44aGlj6}UUdo&TeN8Ex8aN^ zJthuVm?A&*!qo9^@*|lA8V?sPLT~~va4Vk97%(->u)+wCP5}rK2bimTH^XwJHjq(l zyN+Oko`>>+E4t)(wF~&EBw_%Z?9wUrbJ-14@XxfWh%qGAHm4gq$e8S>^#5RplmS)+2LIO^MAblf!w-OFQ z&|*}UoN8_tGM#o?#E%kb$^_-G2?VrLAc;bzZ90^U;4)Wt02Ttn0#;eNNO3rTfB=nf zmahk?nRf|5q!0=dC0nIo z!?tGCuaVEexxQin<}9?%fSD#p)&Vmx_i=z>0zm=oalq7Rxh8g^I18H6jm63X!kB=O zBHZ%?L)BAVh7h-+B?bA8tC@yaLT0nO3z4SeOK&M7Yqj`5D2<>43_)@?o-xFXl0b)} z$r>af3sm{nia{oB!IINNf%BPKYAPH{&E6pd01q^S4lo166R_5p;LRl%l;QBn{I>!Q zw+p68*~V>w=Ub0(B$93;kPkbVD6A5tnDiRn83Y@F37tfOm8!5ezEcGp`_nRR=Clu-)b%AWHk zM6$4P4m?$$5K1_Qsms&6t@7=CdL1HcCAXZ2-`c^yN7KmjS7nsr)|}vjGqU zJbBK?86LG#v3~mT%(HuISqd%DjiB}SpcO$m7~Ny8{&PahUUYcfK_)QI>}tF*5Jphm zM4rfNh7>x=rX7mhmEl+babnhs=fHkuxM5BPa}EVBjw`;qdYpIzWXd_m*F! z9ymKm27JRagW7ebzQlsqm{9f7d6@1tBCJKV?Kcvdu)HoDJdqKZl^t1GoYIBXHd`G% z9{zQEI8x+X4nzShP{feJZx@AW5AL zuNvvvvD^(2`hfMu!|PHpo`kfCXA2%rb>B|&njeRlfXrq*(eL$iq&=8=ALr_#v9lcx zhco8`-t`(v+)K?APpFb~ZV|+5*HcMu`xn!HQAXQ!`Rj!}-?vOG%ML^r_Uad(T8=Qt ztC2o(WCT8sA2IW;jt>l#4aQa;rZJwIR5-WHXmH?mrQjTkw9v<1lb-z!*|m?=owtX}I{Wy(=o zPyLF*ADFOaUz`!!P!H4~JUPJCV@1BTtlwVY589pq$dcTXVw8HqH= z?l%L6E(0W>8A~DLkkTNEYwcKA3}lFW+CdC!o#`$3jZTm^0EkLJJL%+T*?3r3l+Fy9 zTL1}Ih8=WRT+U|ra7sh$9+GkoG>5*GTX+sxO$IXGV@2nd4(8Nh%c zVLZ%K?1>s=DDL!NEzIvpSZl|hfgLq5xE2DZbT{5RhC#pwr9TYZ2n-jE0a-nl}N z1On_BVJV)K8!pt&PQoO~Wo6_wtyAD^7X{1%z#~=*^XLix0M@0Gg{^y*99$d^i(rKD z0A^BVG1Ou!r|_=jV8MXV@df#H`XSn&-0N#_;Gq_RWXsO0BCGKi0@@*~QO9h89E|`Y z%SlZ$reV9lpATy#BuWJ386`+Z1`2~z;#kI{y$%q@#P>t%Q@`S%T8YLC30m^>8k6Nj z5(kI?j2GL;kO~e&Yiz`Wmcls3XGnlxk51!Xn70Gs5_Y1{oP(4Wd!jOM4 zxWOa@!h6Y3L;cM@8o*3sAhHffD=03fB<6O#NYaT|0Pw8eum8*6b$;3XX9@o@+e!FT|6 zoy6?b8vuW(X|O+CaMd@#0J&c%IVB(`8aFGes(u{6{{ZYve8AnLyVZ2?9Ee?aDc1q{ zpL<9<)e0f0m7xSR9ZAcVN8)&J2~RonD0wUi3tE_aIFDDKvP}J|Q^-J-0 z3wr2B-{o83>^g;$u6G;xQe0dknT>YKLo>Lnr8Y*e#PKe(yY7Aa8&mUo`}xufM!E<+ zH#!_qu;aP&>+kPgD^ia!S&hl(-+yA5QgH4Xd;SG$Z10WN?~e7&t}NF?5(m%I(|RM{ zr4eV_-*rpGJA3}KQC`^$5v=29r3+8LeW|RsFc9+CA;lt!M8dfIjm2 zgH3Jk_V=Y%H+cmx5pP`3wmz%)^O_^IEtd4@?0xGzWVS;7C#XH2y=mo)*B&4iC@Y&X8JtN%Z@6#XI(Nt!VSC%ucoSHwNXQVe~#;{!}fy_^fzg zeg1m;^rU3jkOJfnUrj2UzEp!xwGwkjd_MZu5+%eIUr%ZG?rLvN{{XkY=8eZk@A>ws z)l8KH68+5S)+vafZlQ73dsbn|Ob&a}^81O%Ao}jj-n6U-C%tKB23^f<&JXml z>r4mn=TkV}q3W2YB7UEGHTu@Nh0l;UjduN~A4+>j`}_5zHt(ey&(5Suf}~PW?dMn@pMPSpKK=U@bHI_z)}4Q2oj-clS--LT*1Tm$(u$3v(xk*RTr6n!@8wzh z{(a(wgWe4h^7rl1zyN#pX!Ct56Q8RX&)&DQ>95v~9RPiIHCToEGzmIsVZuYT4)9mNpXGGuc?^u8+ zvtze!ew2Ot?^@evTW?eDYi~P}BEww$>F?!RiFfhuN?U`^r_beBjIRC6=h>*15>`Ff z`~K91{{T})->*+@mHO!s(ur$cq->xxEip<-5wE{~b&cKqAMK~Osk&JY4m|5$p`CU6 zYl;Brk8UZgwLO1-eJJsrJcdHP-bHKn+r4g6*IC>9qi``1@7w9tvA5sv=e24{7dPSW zxg)o~aYgJX8!K{lT6ujdIO59?3w-Hv z-e1-qom8Y?6L-IVI@bmk{`9O5zVq))))xC8Dp?5#GzH#&Z++=*zI@TFZZGZht#0ww zwTO_5x_QB^-&}i&Bo2}2^!AMqbUyl2WX#s}_wRZGipOGoTKUoAWF32JOb5JY8KzSo zNaO?;wHm+gaYOMVx3$|e=HH%QPvWrRGo;6$`t_|!YI4`)kpLR`dDcGv0Dp5^oc#9N z_M>H;_s_p7#6e(Nb1yn#Fnt~~^?oIZNB*$|ZZ`L=Eu#Y~R@>?HJJVQUgSO}GrFG!x z*1rZ)m2+~RKTgr|hvi$Drf}W`D(v()k7lW9xWL41^N*M>y-W=-U2_w^zuy}4t-|4X zY`Q+)bVaas68-v3Opz@RsQLR3rE57RHZbBK#%DMiG3BoKpg7TJ%#WGZVb^+GdGDrRL!e-!>q{)M#){VArg2=-{0R8dWlb@u)odQCA=}tIo{JYNQy;;gNVnEzm_Rsd~%q&RrrJ9mFY`%vNW4u(B6=@rduUIyAXKKkQ$_q8z_di^R~OMYIveMLF< z@99y(h$+4I$Ms4*K7QRT=Ugu?!(V&oZ8-XWdwr^I>sshldm7I^+kH0q(DnE4G}h2{ zChSB2dE?qE-qnTTXUorjDgb->{{UE~w$8ucao0e+AA@~v^-0%PUx6h;32 zRG{YveLH#sMLFfIcomI**uQ?}w+`O^YH4jAp5nJJk=L*DNVHD1ti}#XkxGE+FS+&| z3rF+)(%r)~ic-O_@R$ww&UF+;m>Yela`nar{{Xjo)*Rt|{or)2m@5qAHy>?!(v2|~ zJ>QYex@{EPPQBOP_Y_AE5#{CY+&U>pJA%MJV_NG;`gZL^UDMy%g~#8?d+$+kKmyT) z(t2g%=|<`KX&%1*bfC=kjla5LQ2n&`(yPT8LAZ4Jd;O_6oLyyNdr z#JkT=eKx9=8I{f$3Td_NKSD-}a?@e<}M%&aJ^uhySu|=5uT~##dr-dZGX3YZ8(Z?7=#Cci?NU<5 zT73*ag4c-mzm*$q^uyki@Pm%tU4C?4eLXe(&r0a;tUmmtT-_(BkAEs+KZ>2dUH(JY z)|eCTAKCr9%?em;w}05y8n1r+s@8$)KEC}ZkEfaS_UkV)t3nO^x_cj5*B^fIOLrZ2 z+qpr|;(E??5AE~xsHl1CU!pb@*B@Fjt}*Z4l(t$2O#3v~aR=Oc6+kJKF8(7=eZEu$-iXnu>8^xa18Cdpr@r(H_vI#yw)@hzENAzm z-|kF|F8A-{TTZCqXJPd6q0i_1Ry<5W{!IEff5ljQG>B_$Uj6&|;60z>wbqY6tWmn< znq$<|0EzefBKn$Fm~DKzZ}+ML>FxO{2fnYHTd-h9_Kkdp~MJNw!q;H!ht_Jp1`p7f-)) zS&V9mds5ll=oX&3)r&UueQF6KPj7zx=P&DTWWVZ-zI2yyF$O`XuHgcQ%ie#DDK5Eg z9=`kfZCKp1>~4Eeu}5Ei{VF92UIQMWutsw``hL}b_o$jT0rR43Q>Iu0_wOC)P0`hR z_ujRiF26crdO7X;)re%~05`)J_x;fwSFY8K-p9SY;(;Es=~gFN)D%4VT6>z@+4t>M zw%*?T`c`|#)3;aitU|$IugGHYFH^5U>56bYpSN1TXYEQ3C)3;hs@bh@0JI+@HwE_o zX|4Ikzn7H`2s-?+OQuc^vE^Ee!Ife8j*rv|+}@|!bLU#yntuD%w$=M>S%|l`zJ<8P z*!Mja-gH*IbEonA8f!9QUOBBp$6L+#@lW z0~NS~KRNp68Uwh+SZT_(x(5!(Yk0CoH5-`KV;IrAR^wZb4!Fr|l0xcZI5>3tPAJTO z^@t1+ok`Y6=qh*KKmnPV9#Gr`m~*vMB3c^W5-x7GWpuzrfjK=5ONVQK5`a%##u*|}>D|!a+W>+{V4mj~oP8)=!p4v?{khT=9uE;mo)+q8sw zXFpXK^v24md45`IpU=*R)1kummA6_0O$2#q-|h0Fa`+V?Zj5SmIyf2+HCp2Rzv`Qd z#ros+HIGfFw*K=`@pzUpC&c0H@-h2Q-lzm>pq2ZOe`;H9`N#28K+V0j=ylV*H=F=+ zHczAny8f$JKmrU8Gl9zHe7$r*AvD_G%;SEVRy$z@qY{U_iqly$A{(;{&#wOfKAmcV zUf!Pk=pHHWzO}9~x0Dcmd3scdHw8Zr437F9;P>b#*>+YSVKMs(j|$bI!tAhou~*@V zp8da#znaWLkHL(juM3CuTfve(Um>-6Tn+(;0q0=7B^j<>2Lt7y(dq10vGAN93k*Sh z2+5r@^sg?2^E^$hP+Q>mM35OBpf538gy1cA*6yJsUtaLADv zWQ|=f_+F$CcSHn$0J1>IV&*iGK)&H$dVP7}XOmEnNd&^#|xUIP5k8o?<1E5c3Vn*UJs&wbbcKZpIv2w>-BH z2~g0}T|iN(<)*)mZGtxC8AQm4W)A3_jdEbVXbMP@&_KPiG}a1UGDXS2Hz30#iF(`N z>O#pCo91hvI4PGf4s-`9Q3bdjaYFtdG=fM0hCnh}0|#<@VgXxt(|0N5XpsB(h&mPk zXbxkX(z38$iMa&qL@P*!_8Ts6j*84SS!x8Fkjs6K{eTcq-(cg$xu?{V-LsF+-e1zd# zZ7iqC2HQtp;L-dR;p#I3VD&5s2)f)(8HhHf;(E?d7+c`xmfjOEVHF*AjAo>pP+)Ta zFn>-KM0$DdsXij&fD#BY0sPPEH8TWLi^;n#8Ro+hPM8y^>SCJ9o&-#Ti&I%8+tzoj zb0gqN>rMoYk&W>KK2(-mfKh@^)qe?MNUCuylwqmrp_znnOL*&!kcWNT6%~~qjcbv( zVd3!t+gbU7o>p~gYhQVA7}MpaU`Z+}2PQhn?T_9DwQI{@IY62BBopgdSnp-8V03U! z@BxFCdjuux*J@rL5SRz2k<8*&=L4-RoHR@Nu^NVFnd*HjvyXRiYlW^+3NsQVpFOpG za5*PqaEyRtB9y?$llSYfq4;@39P*VKYpzzJ25B!H8Gs^8C8_~t36&YKw1SENMgamC zSd-J6?0PAmuOpkKVuUv1VJW#iLD&Rde3840D6slr9}ANEjHYFp95Wyt$7Dt{^jl%q zPaGn_4FqFCxj@w*baMJ?e7pl!f?pZJI`Wbh4|6(3vcR}ex8cr!+kyzjyQ0%ac#3ie z6DSk{M`5{dA%e50Q)Z4lDV|~l!=@2vW&Gqzkenzv#h7PeK|y5(e)%XxE%p;V+1!|C z)eg?9_+~^h4hDx={U@SCoXs92^d;(Y*ivQ)(EO=Vm2ognC2TV|40MeSX)U?pH^cS$ zEgl5dO}sDDnVI=(xA&Uo;~t!+qgg2ePO;S2H4N176(Z6&&L>=Mv!x}jJMFf)!DnAQ zP~vcgS&3Ta7P{g7)CtQbA%7cuftt)_ZZ8Dvx^kEGBYyd&0Z&!;Z}=1}v<&%sZ_NDZ zNIi)C^#{_WSlQUz$*&1drXH(Y?)zgf11wN+5Z4ke+gWzoCowe$I;Y> zt$xib3&XQBk&O4w)WG`vqLhh+ue^VB#>om}18jYZtTfFl3vId`aUXrY;)e%<7iPO@ z+>ssX+)X_CPjTI0&?GGFkc|GxZ}X(Q5fYFehX?YIC5!@pZ|azO$cSi-4vWw2KyalH zIZopXQLoEtZViPJAj||*eGjk7xL6dew~EY!HDp*WWx$w6vAdvLfT zA|aO~9*c8>8rHJRv~Ha4lmLSpy}Hy)LKyr>F|@Fkf1xx1Oq*U(3(9aaI#lhjFb|+2 zA_Ni#P)4M7spH}l0jLCLGVUD@>ZDD`?XNPn@hu|r0ANg!g{z%dI_XKmy;@ku`)W4p zJv1{4kHmopXcs6zX{LMRkwb_sI4Fcs!dV&9POv7c;7mprexa)g&oXK<8T1uC7Y_TO z5Lolj5DGiWA3ATsaP-kHwDlRr#+=;0_R+O=xH#DPAzdBvzO~E5#K2E0Vl#pViMV9_ zv93jUKMxl(9L4F72q73CkP!*%T-M!{xY7cZ^*pLh%ByD$KuGp`!qHCvE8&qbl|g-H`|~G&uwUb!cV}cTZusnbDO9 zoHYy}Fb8tgKg3u~rbZVqGs~Pq5aI)qnxWy0fsxRVb{~`yNl~EPI+RG21_dH_{Ko`u zh)Kp{Wn8>I2Qo$MqU^~KF@=owr@w>wuzm>5S6Xs7`hpjLH z<643Tzv>5YHDQk<>3aYmP68-v2lCJDnW)}5j^Gjh08%-o-zU6{pjGV9&f+{F5K z%TZPt9t95(gh@;Dc}Yzmv(eIgHKPLT9AF-enJJ8Z$Bn`e@&o|HWy2>{HVGF?!?dOr ziLR<7fw0=II5Ct-4lov`8w4Le+X^ISH1=6BuTeN1K}~w$RlXyF#Qu~Ia&Q!qq5ul%pb zRpOQ5EAr(s4??=Bny~D|rD7aDAtgv6agqD`ihd=e-Gm#TRX+1ie+-LL&<(q6UOHDd z6XJ^m%g3T1@3)q;_6r+gcw9ao@mk+~{pPUuy)QR^d)KdrQ)jb)-bQ2ZTHF1fdSZ>l zQiH$0rC5|lXUN6--kRa>YR2#1_!!cOHJNrQxIO##6jd+n>-V4z{TE$*>lEGAwdzH{ zprK*RzqYaK^sEMx^`$ps%=uPgN;kaFut|&&?0eRTKG#Y%ikK)7Cc2Xl{{XoAnkKO6 z)7d$ZT1q-=sTr=O=ZKX-d-vTz~s`OdsY^FhnIhv zqVe4pGNZiQ%jp47}#?YGlGu=m;&(_PSM9{jhhwd7@CAyOEkZvDOg08|af-?c!G zyhqlgP9-(R-_+5#d;Y5t{P(P?TE&SL(b8P@!>8ff)cff{c^cP8_g1Uekd^i1IHVVA zzV(juMXUO(!Y(1c*YD*^d0)radQeO4{Q1@v>(k%Lw5`yY^Bb4tLeSUWKKpA#+gqF8 zy{j`}1{dPDHrSkR?9k_a{{VU*)riEPBg?fg8~gY4rRCe}K-=#=`c#QC1D}0sT4{N{ zUfnMck)!(d^Y2wtHvAeI?2oR|pW=n%_wx7Nm{7Kp!y_$8j=uGw$Pc~#bU?|({V91~ zJAZhpx`C~YA76d`Rj#+DW8X>^k9zy{qryKq_qS?3C5|Cghm`<5_xBW}kDM+1zJE%P z8-c;BM?>#QKo4W}-`vqZQ=fWO-Mxy~d7hm;nifb3d-RGn9^!?X(~4TxQzkbbo;Ue? zwxf6PJ^lQv6&sv+e-t^Qdmnz{f(%3_)2Qi7b)EL_*A?V{lK%jia5!*p7agqeACwO= zE9Jk){{Zrt#}9@FTg&+c^)+d4Bii7mCLW$W}mLl%40`|OQJ;(jvAe>L{n z^&|!BUypo${JW2P=Dy%Ix57R`eRi)Sjl^V@OW!{JRd-(#=r%v&RX_Z-rO{8VkJvsZ z{&Vp5zZ=uS3HgA#O?f{N{{YH7A^B{)?9lD0`d8-MLnqL%KGEhCCiyaE zH-GXs#DBG;{{X1{s#gC1@(;v+u>Sz?xAyB_H%uA>MpVOx+eUhHsR+pzD%hNtOOtBndzpp z`&Qu>1Wqx4PWm6)BA1QD{{UC(jEB;i;53wz3GW}l*1AU(_cCjEMIFC=SD(+V3#Ban zt$QyornOu6Zd!#JN3WlH7Vv;Q3`v#VGCZcRqs8l9Wo*~A8v4M@>78nJ@p-aIAh(UP z)cbW~cw0gW78F{IT;p*4#*U4el_pNUOF~l5BF1nK}xxhngXJ3}EMtc}}leHzo z7;VJIr1^?&CF`-+cJGQ};bXvc0$_RcUQ5oB?kXG4e$|b=I%nQS)vdeu?bqIwEsk2& zMv{~Rf4t6pcC2pp{!|5{=S}5VarZX?3p(PaFYfj+pKgt}PzUW9&-X;4b;t#4pTE}> zY{$Q~XVc!41>Wc1y=p}3TJj~60l&{5I$~=Jf2srD-mQ&aF!JNhhY)HrqxbI`*0h~{ z{a$kwh{p6*Yg~F06l;J#wzatyN*cJ-2-%d)AQf;Q<=|04L72lGeX+9OO{+_om<71H;c*`%wcuzilFe zTNAds4|uFCYw7?m^Y@xow0e8YX{|NZ_FcXCiXdd0R9*Vw1J?|*Lo^`U6@`%;@J5x^qpBiZ-&t!=ye{)H&F*WcInqJNxE zT4!MfKE_Qkphvf@2klR}{^^L$49C#p(v7xyB&&1v)8|Itf6YfJYw#lXGo`x!0GGd7 z0AU`U{ml|*q1JQn(yr=4;I{4jhrH3fV0n&|A6G;V-nAEM3uC`u-jSCAK+6;f z=|tz>zuToZ;`PNZDZ}0Y{<{2^99X;lar^|d%Cx1%m5oPa=y@_xU{BPgNh#lT5 zURS(-b%5>DwMn+Mu7tsuWly~;bB|((`ci=&{WqnVp{+fA`!p@L`ZO=&XY2fSqB`}B z#aBy8Sj1D@`}g$CH!OYqs@ETW`c|KQ=hm4h5dw>+-<>`0r@vqU=UDsxJ>r1jjH&DI z+)>6qoqCb1jd<7J)8;E$J^S{kAAi4UHXnZf0Gc&n5Ebh~h<<-s96N^i{`}z6s+d2y zrGs@Eq`}S)ar~~8^{yoiAD(lZ$`s8Io)2$kvzzJ0q>{j4wK9S$vx={gd zTEpk|t(w!t@bw5`N`3zTJ^uiDQD?ut)W+J7lg8z^T`3a>0z>qsDwNS`LsN)t829hq zD*>R#zqL$=SuxV9?|Q99wZy=t)IRy2l@VvX54Bhsp{Kn3>fZxUU|-wz_Z6m)R52LDce4n?aC?_8Mx*X#g zeK+;3MCJ9?von;8XZXtbQRa`Zn#Rl=d;XX6SX|+Hd;Y4@rvZsUd`5dyjvyaX>x$fy ztb0WC(_dQLtj4EV>y0xXYO0!ZIkrC%{AkzH-j%o)5KQYG7Ks-<)|%BXxdqw8fK+zs z^{3|%%a%`N4Yj$hiDj=%coDQx&xbmK4n~N#AmJgPtf5zWeEE45%`bvq5ItT5oB zi~?r_Jz+BPGAa2PAiG*cgQqm<`?3nExE$VRKNE^HV-7^4EN5R2W74U|*pyiSsUX67 zfvAW*Lu)vadW0AX4jhCzwdg{nH}WC_xsq0)koLe#7|SjRDL~w$ktl&Du#yHw5gYGZ z{4N~C1QEl)hO?OfqG;b|FN%9eHvaxyX^949IkcXIE}uTsZAZDZpi9i$Lgf*OdUrag z0a4)b&?Kz=bl<%#{2&|XPLtc#I(pXL3Cf(1QbhPd&K9l>WusPtAx1>AI)U3Q>4?$O z@QZS>F**XuLQdEewn`*`aMBDM?nlg4O%pqP{&ki;OTzkI{+DvX4)h@eT|I_c;Z zx!j5*3BueVMh}~Q))&oYr@{hQm82J}9Ldo+sTt?3dWlkNPOHx$eICAG zX;rvN1V)e%-{d=QlS{z5RN{4UuFMrI(3n1Gf36pIgf+&rRJq}=5b`a_;*d5+LU5#Q zoP4S_oajD7C1E>9)Haf@Zhuzb;nM=n9`MSY+y(N{!bdP^QjDe)c0I| z%lF-Pr5+}rEmqSy6Y27;XhVMTx(s~!)vbA&NH=Mwy}qaTqPoG!_1pNBOLdddW%+6H zFV=_%eJA_&MPn{zu{G9){T_R3?`li9TIb)Fef!h$`K6=}XI*IBaUtP#=m3qYaPTt8 za*W59%cvRG(x@$rd6Ux}XRR;dNYUsuE6X|QMGQpg_dD$KS*h!hKyNr^Fb$VwNHiocK++TgTf~P z;~RN=``21;iHe$}>EL`e>m6q-M{VoW{{S7qBdC_b`odb*KMKx+x0697jl7L|AP})= zAZNaV$w?Y9UUdq`s@l|aaIOLhNRV6x8jU3!gtMc3J;+*45iSTl{d9o}p~)n|Wk}hK z6e2-8fS9hXJ%|zslrlsdt&{MK=W$*_;&_!t2S4FlNf!;|Ku7(9jO2f<*u@SegK)G# zAP0GX(b%Fn?7>RV;2N8IS;BBA_M^ zWG;lT7y=p);&2~`0Kt)yZ!Vh%*bFZe*GU|JT3D`PAcA>?@T^yvW z#(~R5l_@PQFek+pkT3~vmU|m|<&@;%DvuN3t^ptR<^V|Lwk@=*Vo5h(;Z?5T0FXJA zaUH`zAIcccVVdT?<2!-}FNF<}lni5;qBN{CtvrhW4~o=Wuz}N*4rD=OqyGSA%cSFR z$RwR0+h7t(bBHAPNCr%p6o5jqzj5HP|i5>q6ATEtcx zDo{rI!n7$Lm`WInjG_MkQV7(MLyru|B|cIcGa~@Wg@9n@mf+_u(1C*nevaV3R-n}` z8eB8uGEKl3k_RqFDbHgymZ4baoyc9oR)Prt6ml4dxyGw+{{Rt7cOCOe3UwYdH2@;>!ZiE-un1au$L?`GZ7V2I*j&m(ucnG>V` z0I5JCD-A{l(LcmN_^uqoc>$J8k`{$^>9{;li)99m32l<)^G4eTN8&h&2aAR+7$gEn z$s-_$on9*&NFXRA7;kaw5SswfT{cG5?#V;~(YFa6SwW&u$CModUuk4`xp4F?!9EgT zo{M@mS^BQaFi(k1#EXJ&2h0J4xACBWlh}NQHGuo#ao1Y>7m+K7*o~dQoJb%b0umh_ zKgEXtz`-b;K~hSRJXj-YekoF9kij5=PM_=>>M^x*d_M@<$ul6H=0><0wgp3JW;M5v zFv?*N5MLoJa>>$-`hW>w7Rhs$8pq{;F-MPMyOs>Tn9i|EI6fK3K>&gbl6v9p&wA&* ziZvVx@jfQv=SA~Cme1u28aaxAy%cb?%wXm=5Ys5JOQb>>I3p~<{xHI);MUZLIUwxZ)Hg$WASY0@-cEf|3$9gfJ;CNbS(z!JWHCQ&iS)NFE(rJ&4(4yq)?~ z%ZU$N;&tD?D-Bw6HkHP=hXulU*JHF{GnxX-oT0R5_}@=Br-zKtzSbFcvl@+027k-eYP5vwDwo% zae}`I;knx+dFeBvIVTgORK}y4&{**qAP(%5f*MBk(HbnGNo9Yo$|^mMId345tF(4vgwV@|F#`Su&Ppjn{KQFeD(%!zM!0 z8bGPtVR%-911;$XJ|IZLJu6saA+iy8SvvX>>odKsh}u!DeS>wZg%BI0l$P7y zbFMU*FJV;S@j)OQ_DHBGB1cRXb3=*1V07D3O4C834yNs}I&U-!QbguJf#w*2=~Ciw z-kT@CNDte2s$Ihkjn^?T^FfSMctNm90h05-^q22gg@R_2%+}rxf)7EDykvdCkiT)R zjsF03WKd)CLyzCqK9wL7)^mr{X0Z6@Ce3}*)N8(5^#e7o;vj|&v!Ow2*E&;Qs%uk@ z@wbvSAbye8T;O)8b**cWVPXrqy;t$m$Qq&I6M$aXV>!;0wp>>GjCP$n$(kol*hj9t zI%!egp1(yxlPP89PBJhI{WYfH@MBnW)wq4M#>Te>@C*5Mk?AudOw*1evVSurG6&3S zkn4CTBs|HobB1%%4Ed3rsrYto3+deqzd$mm^9;Qv@~pCOt3y45&F;i53in{)YrX#_Oh ztlm~1U1nkyW84WOkIeA9VC%m0+-u;1n8`M|07a#fB#=o%RZM2(Kq+qGv=KKpO4a2DshB@1!sm{Jo0YgJ zofMAPrTk36DG8oro;x66Z<^9ep1&mKKf~};pZjIcQGnM2D}5fS`k} zl`G3)SR<84Af2LMXH6a!(8`ns9>)c^2)vz&t2ygjF*D0r@+vri;#eq2I-9w=4N}W< zOTgjDSuKNvS)3$+e@#yY?Sf$#Bf|uY&Vm#u6}X%WW&jOFL`frk@F2)BTgww65F|FT z!^;8@YEe5?ZL<(3Yn+Ut?vy2&=EOqUAT&c`Ok@L_hH%~lRDs>amB-wK?E!( za~RQP5sl4lQoM}J9Q;ez<$_-{1QMQCfLTHT-33?S@I}FM78I$&hoVao9L&Er*!wBfs z7?FS$i9(~pwpFlYoyK2CkU705+r!Y7R)k<_*-v08gc;&Ju(Nk5G7%dPR!oH3F`-U= zC_qVCiA1J+OfZz-9e1hUVFdxut#ny1JSm?hXq!(eyCeh3wkWa~mGz3~v2b%~K=)W) z!yLFMqY~m7BocOqE+~1+T*J2B5^=UlW@kxZcZRTc%&A-Ru!S*8T%}K@mXxz zS)H8BpAj7;7PTf|I3owGZXEzqL9D*eK)XPXRzeRX$Xai$HM}E}kYAE|MDu-ju1-C+ zkU2-@mACb$QtL)iomk%nS1}^#jN@15ttSTE)9dnN_OC;Y!6kxF2VEed^(6JK9u=Mx zNF*I~WC7GqU26$k+G)v4{v;XKe3WC*uW?fNi%}Rte!nTl%CGSDfIlb;*L5Va`kvL# zb%CZ_YWMFWiqDMx@u(>kiw+CKHI3nx;&`FnJ1_wV+vUfr$sJ)jSj9#;PT^sU_e zs~VjIA#NQzQxo?0wQIfm-i7y7SAxO0X}Rew4DFvkd7>@%+La}l79lr#*!!PKTSlkf z+Z)gUrRGo5_x@?lJIB9&T0i4upP%T<;x*S&Pfor4`xUIa_&d`vSdH68wd7nzB9M0W zJ^4^4Pw(eO)AjYDP=w1dU8#ZeRJNYDE7R{=@dvd=o&e158X8k`F8$~~e*MKN4<7gT zwMd_RU`Whsj-4ak^e(!!w)*3@zuvXSKJn#MB`{nrZTc>r{HWb^5lMd!`1hJ9Zsj*O zUA_MRbi;S)@3jk0zj5c9YtQw)D#jz&%Hj)1^Y=e$7Z0^z<-fn5^H_?j604zrtxI@d zzhnC86oW~Qy8G)nyDv&Sp7X{TkpTIO=1Bmm@pF+w`_>9@I~&F}f?_o95g=BXef@9ai?jcwlj{HbmC`%>L*)XVwz{ZwgXm=8TA z(T(R`{@oBg`*d!&`D?$GX()EUtN?rdDUD(8-t>>knCo9)hJOA302HKueSe5lT^=1j zt@W-%gAupCds3gKXx(&ueR@%}eRQNkxnLJtTN@31eefAfF* zk|c1gbN>MCE*hv-$B{Z{YvF!7{Ds^?@3`E0?bB|+Q+I*%{g2=~ZMX8E&F{{Sif03_pae>LQTi$q)54Chx~RX7=1OUKdVP{_-|+IztWrWcY5d>t;&(UHpu8rPKYCKpYVP6gTvw?x*V>;&) zqP0*qXkB~F19d&29^Dvv30e9&fG3D`*#bX(LisA45`V2LKQAwS=7Ctso0-IS`6%_F zXxHq++wZLbXSeVBp$4?Bq4|6H(BfY7SosgWYjboTU$6H<;Xtu6t!S*NuHo&bPJs9F zjp~*~_C4wIqB_s0^XjNwV)s6Eg#g#_J%{zlSm{f3zd(I{{VP$r-+uAc^r%b&XB2|L zAnpwMgB%AXB!2!`uXp@6{L72Mi*7er z2bSpoYt#|b(rPthQtc8X1f0XeZA(9W|>mocAB1>d+Axu z+RWA%fFD1ny{jE{{_*#tchZ!fLDnj(>%>P9i1MtZ{Jf}sB>j3;sSOmy@8CbDrDCvr z{q?MFh@H0e?fuZ__xpF#deT-i)W+=Sy}#;;{pa8BN-o=IW6#pDzobWBPu{FNgyuIE z?Kj)^_q85sPk#NXJUu#mwiP#4@8?>BSTVk}tvGtdHC@sDH{q(07d;Qy_kW0GHziN%P(%tV*YMb#V z8bSBkrQ!=FQ|~k`w^xs!UexY`&)1-)0f6xb*WbUD8UjAGtqKRcdivFLhRpIbpM9x0 zaX8O?_xaQF`|0mjNJqUr_pPHXTx+hC=kL?!Oa%^NXj^AvT--rWw|URKJwJLP-kp5? z``n9vx+b*h$f5}&^>&O6Kt?2;`x0)jp~c%G^dB}@BCIaia2;!%rjhP z-_o!f`O*=ub3R|UtuP(_-Mp)9LI^h9J-rPAee3V-Ob-5j^rab}e*V>xyNpe1ZvF*p zZc*~uh1TvXJf5|t3J{QAG@l#jQ5y{mCK+>>GL88xoA9;%7A zFrVG{r&k?<`g-;ziLMy0(Q_zSx&XA z%{7q1+3h=f{^-Ac^raVhd-tsme*NaNyEy9*9$xe9bfMGPpxW*8_0#vJH)r3s+$!jk zBVo4FjCL4^; zgE@*`J;8J(Ee5Z7YS7s1^rLOFZkrScd+u=>QuC5j5{E^q15i2{4DCTn{GjX1;OIB~wG|@~$kuTN zdgcCJ`uKx=1t|v#R)@%T+cdlm0Xgb>hPrw<`qKB*F(D(;Or%(Ps>)EKUdHft9_xg| zcE>^hD>~<}8k&&d-7%=l=eKH+;b$YGOy)!wL>#D@rQ&fl1NH-^uVa|inyFxllq+jU zrM8j`7I4eyknG3r#@Oewq5Cu5nM}==R1;7gVXt$fZ5oCna0`ayQr=(9NDNI zZync|q#Q1&M41u~Www)+t8ocKDB?EL$ykLyCqf|wha9{llI@WgpWoBHWb!~r7Mk%fr)_lnIp#QqBKgdw*( z9loAbtg$wS&3iiiX|6WP+$MEX>Gu^Ycuw!Wo5?uz$gNW@e92+2;r!>{?N#CY;vk98 z{ePMSj1Halbz43kb<@kIe?P5Uax(0aDe(LqexA-X`#SZ$9?g98_vKu?9tUh}eXlC? zI2;nTYrZ{t54Cv|Q#L#;rFJ{Gd?T)UWJp~B(J|h-xI%DX=rRlu8V5TNVr6XM^t9(B z{jv%WpL(sfn1juz{JF_RHLPo#*P4_bvZf9x0o((-C=7ZglR3v>Lfd4Ff@B?v5X(a3 zN=M~PF5d^PmoL=_96$%;#}?8P8er{%;n)?t5S4G4jzQvlO~O}%fCCLd@euUa9nD0N zZv-1;^1>oh8-l=6h$JFFGzHrE0*Dg!IBHfU>Q2=xDDC`$xkl3rw16%D@QepLDLJ6vxg1< zw17xR47M3U1C8~m@U1+|1=7@{$>t>HCtkvD@SHdY2%Y&@2G9+pNdRtGQvn<95MbO* zwunGNSscbk`mVAo5N>YC8v%xkV&+NZ5Q=QvGz~7)oNJQtB!UeR&*p5VbwC->Q(Rrd z6a;{Sf%&{d015&D3BWY>U${&HE^XT|gic7yCMp7aYl%SsTV)xHlyL}7dP0S$k|aC` z1mQpRX5%Q*-hyu+fgj7z$N;c;XxnV_CZu!R5JCVD!E6!Gps9(x2@A}x(vp-8K$7`M zh$Rw|hvC{m1cp%nxqD7zz&YjWNdnezkamzsAsp)5439ii_&hh`Aebe`FlBg0gu=FY zlbXx2MvCyQxBxUEmLu}!b%4Nn^r&%#%=Ih7xj~{rx)>v&2x5G020`iiu#*7bgOFsW z6ueF&8>9(ZAIiF*enUZA+d3*nHx>aPp>b=)wXbqACsgVmi*V{BBoLT=CVQOKO{{=3 z1QU=DUSSk5E;NX}%r>scaRpkoO=N=N6EoS63uzmOMQ-CMhtp7Wa1a{m47yRn1WsCl+ddymDB76V4uk=wyto1nZ=jiHbHJ zu*yNogz-IcUV@~o%X2$ct6$~%Y2{VnaKHqXCv6U!zN1a5c3yr_B4=LuLxC00lgW7u zM{%>*2&%Z5ZU^Dm^pPn~eRJPBL#o@tDM9gXfMtv}@wK4R9wCDRQbw#cO4rQjH>crW zj12O|=R?zUkc^7ztZ{9z#|?r+2n3H&gz>R)DyhaT+(KZRSi=24N+t}Xq)i?N6ov|y z;v@iA$Y>Ix7@ZYV@a{T@+U&#^RZPFrbKu{@|gk*GCKC$P+6p!9!EHgbrEB5O@|8Nbr<~ zG&63YWfK1YSC(Q+WKRAL#E>uu5eTpejA%mMkXXnfSkSFDl7iC_2{+;Z@Kz69(cMXn zx-|usEhjAMjOU;rG1=5mu8S;!)SXELWa3&HK#ihJPn4k2FC-ikNF8*0)w`UT!xH)| zfu$(0a_aNgF4|EEv4 zP`ipC{fGf+*XLP>Wvxl9N!xaP`LCTX63Qf0Wg8|+dUKTl?JRkrUl@{`jKP!$1mvVU*u zrql+79{%x&H5{p(9)0@+B$wkEPyck$?2}!QQ ze4s{SV#lp&Cn9ERAj<{;OVk}24CAO`j}L}s;RUrTK;V8;Fb7JN_e4Ni7JFc0Sk%$r z*mCiV$-o2Dk=sZ$xykEV=a}GBgjo`FJNa!3rE9Kao1{O=0tPf#dd75vQn>Q@6BYxm8o~Bb1F&0qDbR63&4oTD;uKP^>87^ewW3L<2Z6xL^mRTbU&7 zd07OJoHvE+kA$?0myordjsZiV8j31>CJ8G~%K*{Q=d`}K;S|h1By?&Mw z&g@h0I3zw`JXkEj-T)zTj4-Ff>uGT?^Jq_o@g!F-q1fO8y2|XU9ojEeblgB;zu|}B zTWAp0_zNMBbAdW(nmisc1SC_EXIaAB!Jf*ku^kJ1PYyu@S_m2vUZ{tYi;T$FvGCsx zZXkjbvUCbU+zk-G^Bf!P4(%Gmo}kNT>87IIEzAKAnDZQrR|=A0fDI_T6=CW23U-& zp6jRsOqy}TLssp{tupkX!kO>#kF{oDN*tJVQ~i7S*5<83Asp zS~VD08qv0q=Rte-?r4$k-@del*FSpN>tH#%-|<-O@3jCat~spW>_7{2_oZd`t<6U3 zVy9A=n!RqT5%#qj;FYpN(;$2XGv z@;;~jMgIUh;qZ?wiu>@NhSUE5W1VsIug?Df%KreLzl(P@<;ww{TULt*>kc%o55*=Y zm68V8o#DDpT?Sen_0qJF`WIsOX2-ItDXad^AI7f0bqCq~t5|+(-_ud&O?BG2lKlEh zZ#piNFWyPi={vX?tvbg(IPuX?f1<955IpeTF>9Vd8Xo? z;J`1pU#6c!+~lHLBY1Mb?03yVNG&I-^?}lb-Il&zwN~86pkrJ#QHRszQnLQK9=RCv z$4U_d+3FVGE%f#%-aTGhd;b6)eJEOC?0n}}ojknjS;HlDC=%Db)X)KXzv_v!mFOf! zQ2Nzx;xis_@e$XF`V=IxV?7_fl>9q23LaLQJe`-`lb1<;{M{aG z>E-QE(>26(_v!Sd0;n(DU=D}A(WsxTU_;+HCU)}lBx{NZ7R$8I`}ZQYGw-kSBDZ1X zMBkkH{++$;Ky3FgzJvJbL66yQ^Yf$0rc7fUN88qvngd#Q{(oxL`}Z_hU0!rl{G*{J z2SWSmFi~vcf-S&0 zQ{QjQjTUD(9fE^H#qAxRWw)nuYNcxo(fgp?Ly*x?LzNADv)d(pMQSlvEqE9 zupa*ap43S6_wGJb98K;3LVA1m{MO#Brh19!~)A;)B^r`_;tO%19^Zn2shJE@`_wRZZ;;ORct#By3-@QK!&~#dR zpMNg2s_GzsH*7OT!_!Zl0o~CyhY<)%?^Y6DvZEh<{pOS%R`kT?jb$>5K3zQA{{UYq zZg>YH`V9X7RfW~6?-Bq#de*+*e)X&`&$!3hvA5rsyi#H7s7y9oW2e%6`qL2f_uJmI z34sXECZ;Y)5(`I~_w=K0zkkIGgk?{^Z#3Lrf8A@S|DUp~Ji1+LWI;?H^5P`72E%u2cYh zJ^6d@MzOk-X|gQqHJHvduX129^7r+vX!nX&@87ticdxx^84hOU{=UCTBc%cF-@MSe z?JC5UGcul^xA*R8tsmCZ9RSr=a0iS(Y*QPypbx*>?@sAc zpO(7NSRDF#(-Ee2>-|tSeQ8Sm>oGY&UofwJ{{Xti&w9`&6#Uh0ivZ^7?ACdWDUT1| zzQ1~LZ@+4)Yg+1Mi^8y)w&IE3Qz|U>xOgqQH0EY_ zlfL2rS9*v8PGlUgQD~t_!U8TR+GCWIu&|lVgB>W{!Z1K2k&h5FD6uHx>U2?T2RqCN zDjtBKAT>Fv_%v%P6Zm_O<>k*%6tHzCPt}ldt~@ior5@Q~z%Zcer8pN_a#g75-Ok@v! z=^GYa8E;LtF-v8p5R6Vgb&b*QS9%l#19*B)`Z>}e%NoZ;7!VOBy23hvtrek5ILh?) zDpzp=B|X1?n67yav2L>UHlnkG7EJn6WGXKzTR94KWn9^Rj}aae0JQwSFr9)s^a z^wPDq^@x98aadaq({g*MTG8Ph@r@r<)^@2AV9_!{$r@wOt^EBf6FdI^81?T8iudo{ zYgu$Xe*XPx%EwyjA}|0Lp7i#W)JsPh^3zvI&#wMcu{i5B=21@**6k{mSAxBf*s7QP=gYhz;3!P;D*kH=1(kPva&%) zEb`ZUtaz^*gM!fr4sRA)Br^6Bh&raW3Nk zcF@aV_kI`=&!5X`xyX`CZVy5P=92ydT0mDEq<|=pp=^N&>NSmKZbUY6+Cpa?2pa)A zL(k3^-}!k*HNc`6Oh~knK~}O#1c(_V8+>Fdjl>iPnIITpaXQ+&39hFSqEF`+Y=1*KD3;Atmgi;eCL{!}pFk%DCz)oVwE#bADCkc*et^(6w}nw{SjZa^Xht3q-LI}@OJ zF;7WivTpZyGfefsV5RSJ$+J&~TpcyTqT+VR`B9ZiZ(dv@s0D9u4vkaFpBK zNn~bUN={(PECVIBciDLyYonoIOlgMrLnWnb9Ajg!lcgR7g@CXw1jLWx29HHTGbL14!(Ncj?mm=z{gzbw>ATg9j>IXcEAl7q}|OZaks_6qF3^~y842R*5- zu#B$@41lvF>Ps;PN(S7LWn(y$n&#o$Gg&R2w9n%~C093Zy z8g(maf;WlKcdB20x;U0V_0}8v8m%_vYg)MygBXcXnG32^Q(kp8&2*p6+fJpGfKH8l0Yi#6I+`Y(WVia4_ zH34Fw!mT zivfZbqp zJ^Aev+)|FZe>x*v;(7ZTTn>IO3Q_cI&Oe=~i+*Pw<|9gbcwijk4=>#7fm7n$~)|MM=&7>UNp9h&N*qETX${6@$FX@&NYjbo)H{{RX> zWyFCZ7%*2@F`5^GVp|Vlp#jmT-j5c@GJe2pcf=vrYN^AWYdlOfHVuXY4T$rQ0K=Vn z6VbSQY+@&P0JH~C2bCz`GBU9lQ>T#5hJ~RAk%Bf@a73Q?n$=F^h2k}>=`yX;Qysj; zR?C>&h$CKzO9idL@~y$*IRltOB!X?1od)G=Ps6ZJ`ynm}SjfhG1X0A{t#va#gl`1v z%60(%05PM3k391a{g~H9g}-RhNV|PA1;JxbTh~F{Q5;raggnlln-4{%1u^j#@GEB& z72*K^5X^}U=(Rh;Dyzf|gZhgI004>T!gKm!r^NUa2`n5k0AY;A=f7o3aFU=P=k*Mz z%P{3d92my|tm1&u5e1as+#1PVLN%kp;sS1R0Q|(Xb`7(z`H7)t!@f{dGoS>3Sjdt4 z;ZpMpPyqf}Bx3KLjfv4#(sZEGs@a`i326pd=77>7Gt+MhbfOLlHs71J^ZHr2R%B@hn4qOx)d5*Tc^sI8+eQWt^1$UZBEn(hFC&Oz6q z!EcH9P!8oJ*+`k`+zAF~i~KF}iA$m&Tyj_up@|fDJWvA3F99A@!7v1gEfb7p zdrtUOrqjB_i984Y03mq0bINkT&tNe#wqyM zt0a@CI)vc>PRx?t$kume?6VM%w=zHlex`@lr@5r~P9aH0>~-@rFZiR%8~|5Y=zGM* zDt`~d1QpGXeshR%Mrti{=fAIO>rHT_<)!67Ei2c==6hnCv@PDXhPS_d)pO(^BfVit zPLz4Q``WJQMhcXVPk5|ttSzXzkk;8)b)j+er8ftj-j%eb>^3>al@EUX^rm%%U>FMA zzj&-^dAjLHd0;@3G#1#3&W=-lH@AUmlDCQKU!{Gf4{YBO$9#OBJNf(f6ljpb1W~%rp0uQ@*8A(dSa|DMlxwJR`~9mr0Q=j| zH58!nHP`rMU$Rni{O{-|j>y%&8t*0$XfIN#6=oxhsjhxL-eniCAoW)2@; zw_3u&4)FY!UvU~x8+v^t?dw|c>5;#`IuvV672K`AgVW9hC>y_d`ijEX)%=(D?rRIR z%=h(l00$2g=KL=YkT5chaJJ8$Py7PtVGLWE9A*E_QVRZ1)go&EMlLy?Rc3th9{rgYLZ zpm#G`di_Q{il-Zfj3Nl`m}$V~A1^9GJ#w@Fj=lV$8aHuD=vs{&t*36G(3}ixfsIa2 zOy~|aqr>5`q(BhMYiBvi^c1`+@ChqaR&z7w2AJ>%DJ{xN9ZtaM)E%T9tPW9-e6cGq z^~U`vxmn0*$%xZZNrWR&NyY(`mY&S_G4rM6_wQZ&s33c|khCnL>Gja0ftp)Jicau8 z-ngN4+hgmo^y+E3H3Y))8@}ZYa=@W*8}JH{um{#>(2=J~+*<~ON6akFC)ReM!Us;= zpqU-E^QJsP6c__Ia*Qom?(;)8lkI=u{{ZveRm0+!YzuB68-w2@fOV3-U!~c2xN}-t z)xmn{6WG`D_4bUo*hwAnKU(^q__zGF?gU)!;TZ8|+k$+OUo0`GI28|&_@}{^)Bax1 zYO|-0PJFOu>cF2*f6WWM`|_#$FT`7QqU%u?2J#45m5sN3YSvwjy8UAw`qrvhp9a%X znhCsXNC)je&%d21IjOmkLHM2PUh4{5qJ53~)r;F-O?VZI55B(p(6fEkYaQZi0k4&3 zUxI?+SbVEmdrZA3^H!YTF+);=@9)yEt!VZ4{nlaw4G(|KVlh65&zHHUI>Ptu(X3l1BOAJUeCu3i=|5hbde*kow%(1S-}CQE%pxLtHSg_J94^0V zLuQ8q-&!^wx1YW1ZK$zDvdy=i=Tq-`Cf=JG-u?R&!lQZq%90gUxQ|K}+{b#y*{wzI zt!hE8zu(kRHJ877P`lsWvugml7To(*EGM3ndAzBSO=f}QYr@5_mzWs_&Gxz$_de&Gl?Lgii+iJ#Ws!O+E(^_RU$LsIkN@u_K@As^2_xx4{u`;X#Hw`uS@*CAa z_q|V5f!WhI`qt`JQLS|$tl|FvJ?j%qkKalhx{o@_s&ViEw8y{ZlJA{45lBzJd)BE~ zz%%!?X8ZiVnmpe>esrtPddfA(Y*r`wpnikeboSkfC7BF9aQ3FU-R0J{&wn}~bqm|+ zv{va#PIwF~&YAu{s=o_^AkR#C4w?Qbcot_){$I6Om~af7lrf~}&2&jKl}*Up$~0$| zU=FfTI=w4!Y#mX`5Q;+}q7ywcBB{f_O`u@8-T-a_Q{_p0jTy=)#l&bffw$7HGn%!A zvceC9KtO|%bZrF2W=Isb+DR<6s#0~Bw8#z^8r8U5E1@X`YLH+l$5MV!w%kE5K>VU$ z90d{+4H6HXSjdwj-N7$HcDRs$*u!!PhXWJGX9nYF$xv{c)xs)w4;eJH5KX=jYlde~ zij)b;8_?s~aCZ?R3CUn7&@RO2TXePtk$xrl1Y7|`os#lFCO$|$U&0qN5&ohz%1r5- zWD`$);|9=(gQFmM76D9*y29Ba&~<_`aLCUwWreh#}1gWRO&tM@6Qa16zv1 z)qmF~Vke|)^R9u!l5xs%0`2qD(a5Oqz!J<9Hwo>iVD%u4s$qjRnLZy9ODmZ^+U`bo z+odV9X$8QHcj>Q{b#QMsz&nC)OhouhlN)R%r^ex*%9(nhjbM<*UYMH8MNZ@m&Njgf zlb80>_vyEf3M3@4>jN2B852^whk_q{`b24~XdRIRg?Cx<8uwy*Zfi8Dde=g-SJ{9% zp{ywcLHR{)SqZ!ZIzr!X-kY31oy&74Zh)pc7g%wSMSfGX7o8vMUrIGG2B{EQ^8>+h<@mAICiFXiNGwrCCs z*XJJb?bCA&9=!xf9d-F;q+bHD?e*!5bnQ_&(9wuGto8d*;aIceK*8$zGUrN(Tu9oj zH2ui;3TnJ7Ne>^sYF6;FeXOI}yS^I2WBKzNZCguR&Q&-%J{yAn0FK^s?boHj_-O+v z&rHkDZ=6>@1L374qfW{1UbhQ`G>Mqk*Xa+vd34Z^TeYmW0E7%&q_Wfh09`cu4A(`7 zpVDqK0HP*^)MxPloX0_C+6 zrzzi{`XNdG0FG?|fC-Y&$vDx>yNnWRtN#EW!wXUy-RM}I1MZUwgX4MfhIsH+E#v{zEcIk1%N3y zd@ux?ffk&A$+Yc;#6fMgNUUIL%$0zJ(F>R%!MONH1DT%+1(TRmoFRz>x5`VkJgcSL zLSf{=!0P7ac=VUSz9qI1lTu?l@E5rhD9LX|s`AE(xoK6XWCpMBlN_l_m za5@JWhSTCIEP{b9-c)%=g8GvalrUv;aYAk5{YQ!ZlW>L8m8*4i(PVQJHw0$r0E8F~ zgj8hWqsF+}$^r=xLIt4N<+}|1TpkiyafEODXyql4jAqnTrI96$Qhr#eABhIx$_=)Q zNRupenI!7P#f{mz<7^r5>K&zraDgYqq&5SiV*rpP0>Tgp2CrAfLof}LNLN2OEZZH0chOAY!a&95oi)q zkU?t@tt^-$1%nec$;9}0C^jx6VT@q&8Pgz=1!btj>aJUiP&yzW7jqb84GxH$z4^Ey zxG$818P&lvfz(Y{Sd$E7qk>9Vm<;31nj8)>42y%14a!EjgaBJ$ELT0*#p}@8wgk9* zatb1Lf_Y9x2)8hyb*flk4q?;~KmrZJbs8l5(6;5K>OZvl#I?uR=jLU00@~?m3V`24q+je;&T@7GX7darT+lO2*?P)DW4&i z=m339I9Gshz?K8(IfUEX?}}@+9=D!@SBpOGude{VOSm^9{Hr1b_o#UhEkY^ueHP zSqnmNN$T+(G2VdUgf?mxHR}HWaH`x+86=q85S)Texg9a)DV&;o86U)95(YcSQM)>R z)Z7j-8XZoPH4~3GqQ1^aSO|4UqM9)5GC@V%U^3bZR<=1ei6|Co`>mP8C&| zn>o7T6XpO$AhIBmhzZJowYQLEgFcwIe-r>w!@{QcUOOqI4sbSqtD`93RizD3(qqk zjS+VGJqAx{sgH*u)(QZgx};O)V}4n|%~Dz7Z;Rog{{S#HvI8)H^V|d`>=r6~J{cp! zI_OBWl-wx<5z1r==)ZzPKa{~4p1UEFl9rVtWPu^g$^bYekO3gi>R{2jw>KZB;(nG>GG_*9Tnsk zaWf?6ImER80Hsj)i7rRIvDHSK)7{2hJ7#z5+e&k6;FdMpvDeRP=O;`KOSoNI^XLIj z%~Kv30B70r{pqh7ck8@&1f)`hmOOoP6`Y5P&; z-gL$~l|tStF`b{DpJd{&lV-5!0b$8B5C}9#w_2mDH}+ z8{%)4j`JCk*VPRKP`G#K4mLjj0BUQkhVpep?TrTc@~w5aI4TQdnH?118Shmj!UeVv z3Jt?XM&rzU&su-Qw{0}HSTH)^~(S-xJFGRL+n{qTM-8d5-dI44z8G^Tb zK^EkksbEMY4O!Abie3)~H*1+FbAJAdVN1l~2yBQXsahLx2dc$kb03&aho?;&DhHiq zJ$>^t5L@CdEQJ|1jB^jLWRBtDwY(B0G6~zZ5hP<8ttm!GV&jbXR-JXg*&RhwhWUua z(ajRxlXj6PefmUP!w^_baW_F3fN+CY(Z(wL91$e4wIq$TV+0uOCW+t#00&m$&`E;Q zBX=0aO8!3R44zaJ<|R(UNs6srb+1!1Dh2`oDZEIB03;;lP6jhcXTsWNKmvcLvjpbQ zPQ6V;55x6osfa?4%2Ze$OA!-?9i*Oj~NJxXFYMN!-%Wl;%irLg`;!GCx0T4F%pg-8oB4D-R2y*i?onRz@d!vAjZCH+( za&&w@3}gn_D8K;9&s(ra2|UsGzlBTmf_A{_aD8^!RJb?J1YE(HXKtcW0@Z-)r{X>- zFth++11J)knSmQBD28YGNPqE+kipc6L%2b29%`j^$QxNhu?NMZPjetv;&B8t5}smU z$#?)0LF~Tnu>zxQ#FAbor1aP*J#k4QkbF18yM?+kP{1Ux4!FZe4=T0XD_F=52ngi1 zzDEn@)_hp;a*5Cs^SK^VIT|sEXqhsm9=!nRr=@BZ0$w;27J~*y=Ftx(e9M-5*1Lgi zrHClRfe=osXOIPRABZ-qgs?mAg7gfPnAgUHyw&&RPsEer$)9X_Pc{bc^4;DWA3P%C)Dizbev|aR?v}BTLKg>-3M)QDJsS#S04+|f2tuCw)2{?#1J{Q-fY%|M@f_NBBx+O(<6rFm&f z^P>Fd{?*A?3w6}jTIodt*W6a4fMe2=(zEy0jUoZ96uwkPzSLDP5NEX#DLIT{j$zT$ z1Px+ncf~IveOKP9MF}+KfE1)wY{+YG7}R~K&D1Wl@AJ>MOKn(HT@grEooj_*ZD4om zyL%sp3lz+-c0Abux9)Oe3e9xU%{z?A;Be#KLIsG>8*RX8Y zmnR#NEWao4i*N zStQTV0j2~Bi^%efL_WO^^H^}_a?%(+ah{!8p>5+~gEKor9lm?jKSfC;3jp%ItM`HZ z4NWb)GoOCusePgp`67O27}4cW;ogyYwLTIsav9s(7HweOhzA%8I%h6VkRqu{~UPCmu+~OghRUgKaLgF>o=&=k9cUzRds@HUg z0dKl(@1}`Rw6X?}HucL-CrW-N48SGqEk$A%)3VY8z>DquZQt6by5lWlT#3`JSUNtH zxOOqL{O|yuQ>OH`*kt>d^PHzcMLz@sGod?OsEn=PR>+Mr*ePe|H#myc@Gx)-la&$x z+vn9*vhtVa2hA^-jfjNI5km&Pd76trjGs7+^MLxe`B5(003rlx{Te+4HH`p%QC ziYcro!a9-}0B5Xkp1aW?42fbHk%Nq5b}%sLS_>&a=7~|hVXpbb2{Mhu1+G*>Fy7}= z9d^}Lw*8K;DRPKz3}Yrb(pb-g60kG$m5Ef`f>Xz?^Vg(MMniEvB3^~{1c(?Gf} zl_=s8qXn$IM9J*St#~oK$$hnmT5nDik_m?h0fwRxje7~9ERS>kEB^p1yMR&u0QP51 zL)P4ga{Fah>pu<0w%{(bgKfzX+P?}8XF+Ksghx(}-Jvp7eINWY{!#cRl(WMnmX)s; zH=XVK)tetL@o$B#vU_cp_gJN$=iL2R`t+s0-+$(XmxCffkU@i34}HG1R}=I2Y1~sD z{{GD{y0xZ*qlac|0P@lu{rmb;8-4rv)=TNVRn%e&PI2$meJfjaH4lHaEaZs}ZKb-E zcdUIYG^?&9Lvwrbp>?czQM&&Ce*Kyjf%l@d{{SQiKK}r!#8&0~r~{|JesxLgJ zi0u9ATG2~r_vKd^WVu2&Zk7A#K9dx}@0Y)GNG{&0EDe9Zf5mHVIomzH(Lwd5C#&;b z)kL>$3EM{7{rmPST6+8bb5Hnr{+ZNttvFYIVo9yLZL{;~SOM4fG(Q*E*WNKel{oLU zXLc;Lu0X{7-@fXFYcKYF;)pqZOYd5OrfY8LLzmymk2PU;Pd_hOm|X@N2e|d2ZMyXL z{noVBFQrS~o`v zzv{8KKTq0+E~C?G7oUFmR?^^6xvMXFP`J@IR$=4;!zcJUdsJO(Xo`;zgm~}nDTwRV zwZmUxhcB&Z-NT z+)xz9-|c563@C4i}j_w}vHH1_GN829N~N<@!svGk^}4wI3JYb`Un&Wrc{YSvgz zQ17>Yvi>zqjtz-tTztsaOvdJ|ZI1{P%;gcc&vDw2T94i#?VL;c&2(GDEF?hy07(0= z8MYe^YosWIb7eS|bsa$>3<$=FH|0yn;j&vYI{Aor$upX-A#FhfU7;WaI1dCA-AdaG z^5W1IpcCp$K-UrwHDKjB*D!KO*pzY?G`E@M7!uCzlwOs^5g(#S2Bc5p;>2agyGo2ZCa^5HRlS zbQ(zzM@bsC>G+%o{{ZR<*kKLzT%*DtO6TD)gfRJ3w3#JnLDC!<35=qwCPT$T!zfG~ zmz`EZM4&S;_i&j5#LGbEI(FIv9ZOsI=s`p~a0D|2CQ)t#sV=8~7^GB)IWS5i1OqQZ z-oRol4CxLmSB3D1v39Hf0Am?)#=7doCBGEp2?dafi<}TKJ}D;$ysrro3NyB)?p82- zrY-Q~69oW|MvH)+*o{_drj>}(#N4fTe=#5#0%sD_4n~-$6S(l1a*1iE!BFU5W85@O zl6NSgu&W*qHZdq1i$U^bYPZx@Vs37g#BYe=My$SolajaesoC)4sbz!!C(E&NcL%)= z9}JyFsg}@1`D*)6vy6fmB2V(8YYC@ zg`{OH^2TxW$Ip6OI8!go@B2@kTB9sVka(8rp{Vr}uT=q1M2Rr+Wa{I-e5ei)of`vu z`2U~Xm)q3x@w+jfARbN4^Os&O_UARnKvN=_w&dHNlXoiWD{hav#=mF8mx4)hNT zedbus+vc$+CnvA=b*bEDD-)Impr_$%y!GrSf0b)^Z$5GC5AKEhLf_ASdehn@dk@}~ z(I#ZS1AuZ*SHA0d^u7~Z@!^uXq~}KPvGMLXybPf(hF-xOYGR4-3fC>zuXot9}i|Nt8+?5cLK`VHgvsrQ%$C zOT=`B10)!R7JHtix<$@XOq4At+EXn2;gFzCO2%pM_69N0ev&sWl1BSaR5AzUBl8oc zgrC?EJryP24#_Ouu0#mBROpsS8QN)?ZGbPfbqth%xaK@39ukaCH7~>Q07^NTAiwq` z5uCFPZK0vVu^kK@0006}nVn01C*N_exU+4qJ{E0_9uxpH`_?&~B5ZGpw4#cUkaHTP z%hVi@jV}h%02T$JJu4B+?S@3SJXL8j;P_3pf=r;lQ4DDW2a27;WF*brE@3&t zEruZ&Y&zd;AUqJ+Xzm`+@L-zf;(SMdMlc(9G{Tbt3_hHooaAX^VXnUDK&t_Vv0+1D zxm_z;!%E|Ev;i>7j|vYXP)-Td({Vm7)4Xdx`pH)-i6~6L){^r85_y9Jl7T>g$RxFr z9F?^pBKQe!6cS{RNF?($wn-yBd!yb^*Lo<2CZUaOpau-=wC}F2A}M&B zTwu(e=|=s3vwy-2mx(eY5aH`RvL#gi01eyBFxRK`kOo1bS>#znhZpAwW^ldfT>$C) z!0)`5{L$h(W3EbvG7gD4orD8}uFMtN4<6fg2%Mcf9w7DDVo?F~9e1vR2<0F_#tI83 zuc7d@T(%L7VIjUr{eb(viwuUzg2XYo_HZk;Fq1gcblGYENWnnF8DNrGBO_b`RN~lB zF!~Znw@n%ZEijJs{4ni!0F|K&RNwuKlY$h{;1n1|iGl(f9BTpTlU*8Fo-FVUkW*a1 z85?T@M#qW%lLnme0T)3R5C|D+Fwg}9j2p9>%n|`Y;cOGPDFBy{$$$(hOSmK?qr-G9 z%Le8(1DUxiN31#+$F9Eyx8eX2S`DW^mb3fdWG#S4(}?m;<)Y z^G2Zd!eN-C;_;kXIf2heVF&;c0XWcL(YoM_0!SA;1aft95)xDb$Qgr3PA?TB%2bYQ zOL%yYO{w>;Z;NJUI3x_r05cH?^u>2^0}w}x7JS(YeL}!B%s4_pEY1o>L0!9K9qTO{ zrNzbJ@kwAnNC0q#c2VYZHP6fD4!uv)?KN&a&=U#{JXt`k8yyu-jbtqW(|oSFqHCX1 zs^oKv0?OUxuR2}<*V9w7^53O(S>oChb=G}PpQP_PKAlHu!&sdpji+Zh#;0F;S2zU! z0IyEn{pr11iNML)4CU+dC;FuP5%h=ltkjfqI-*ADBLorO)646c9295Ggveg<>YQ6A zV~mObfsH2}bp7it4Iy;%p8K4}{Z`bMUFEC~Pba6=id&8S^{sacWis+Y+<9c+cBrCm zZvkw(dDFk`k1BKVJrpN6+taR;HEeI*bn_l`hlr4smG&~uI?{i&zB zhJ<1p03OiDL`;HXddH0$$ufFv1~k*|*Iz6ih%HIi26Z1Q+_jFfGRNfQ7!kfp53Yd6 zT*U$*giGqs)oGNvVz(CZ2Wb!*-%^nF=3L%izFFO^)bte<+Od?ZFtj+-k&sI}z$Rhs z8chiS0+yt7Y2l~SNs3Mtq2b`HIY?^A(0!4=l83e#7yB2K$_WZFyaKu7f>Ivvaq_N2Rkpky0}05)`ygb37#I}uOA&>MyWl2ALr zokx5oYaR(86_h#Ff?m%d?K{qZ_6A(|VYj!X(JVAZL z+jC*n($3FhOpdRDqoGct~rg zO_S6>ZI@b09wc^fL~>OaQE#HxgcY4&-SX*FC&)V6sSd zmJ~#owhF4a{^Np)d99?OP92m${9 zVQL$s0q8-UE3WP!T-Sb3khL-VlppU=_)>vpBp|^qSs3U6z!=D>@$5G$iVD&brVF)BgZm?wQKpr%s~18%Rn}>JekjB2Q_GP9MVa zEd|4TqXcUQI$?CXr0+Q3bBk>z8D>^>kqiuBU{_BUiUaakJ;E9x(z&>Q0E&7PM$CyX zU5-gQ)wq8KjHaUE62_2%F|}19sN#HJq7T1*=7BW4vJRh5e(_$iB=?MNdL+{Gd+Ga8 zC*Qw#qyuu+=AbU31sdX0bA2P<^+b<u@-&$J?{XP5Ei`I0ZZ?{$~#m2VT`qJBC-i^cG?^?=U zCU|RHga+b%a`vq2Uv+D%DPdxm5$~_JL<$z&?|Q(|rbsgCKD209eKgvzx{g2r_wV`5 zJNa!&VtxB{xvDicK)?(QD3MC2a0dD7TZ>GLEIGcgx`C`sVi8Ss-u?d6ZPI`>iT?ip zewA9tjBalF{J*---%o#9LLD>Kvgt|$81${lM9?&rQv+E0`_^;~)Pe@@>aq3xsZ}wn z5Dm=hFMoR0ic{OydL*&|vg$USI#wMhbA0{%DH9-4Bk$(a)4r9teLecp*ggCA6>(S8 zmLN9`H^<(&f6D&=lDCCnzT*Q;Nze|b-nD!9s&V$-zbyX%m;V6Ce;VV<`79^{gCa(( z_XJzq(WbSp+3kKE*lO)tSpNW3i~4nEm;P7$o!o9Ay5z~hE0klDKT?4%cdiS#Vm3{` zrWb7ds;A-5ZrE9D^bBea%fpbvJPSxA5e-4PMnoRIE`-(((`Z!DPVE*-$rCojeT+<% zs@eG}TgCzzC5b4M0qmn$qh-{qYOpM`5HwcjdX2>jxH6Yqz+`n@AZYM% zz#~FM8~7}=2%H?PnC2P`XKIbWF0N-!SpjXYYOmnJiGpFU0V8xU@o~pNj4%*bwtan& zLG^WeEHVnUGjW7QP=Yy=<&xwI=Nv&0z%1^141hgmdQ*$lr^ETbDcNLqA$G_Tz_ljH z_SNYie$)Lb2FX$93+xY`snxFIG63A+Ymg3>$wBq0Tfuz+e6Iy)56is`C&X`vA`*30G4ZfNSr`VaS0NF^vyM#CQkaY1m{^2o}EB0n$T|4B4mah5|sK zh1M}NZ%Dj=02;W+{{T<~5Q!u@em4%?$ioE?9(9#~fy9}NWPm_(vO6#V1u5Usp^40i zxs4+e>m6QW2Ukyhsl=!(V7!TNQU3r{Pj3X;Z8;eVTyOFr!Er!K5?KfVfjV{2V5YDtp`sK$O#!l1YttuZIK8xy3|;V7?IUIno}-fhZ6p+XQ|4@OT+J2AU|uM6Fhbx=tm-Pd&2`qaJhGt#!zra!Cge zaL^>kkRWJJMwX1?Ln$@r99y^%9+pS{*zib1uGSnAT*6y|DJ-i@LE?5VqjBV$M+KAyD zip9`$+^A@Ls+>Xta`v+Mr=;2-kx2;p%L zg#JQ*N&f&-(CM-7AEOJtQHuN`?ldg;fpQ583(=gloY(390PwH*AL3cbasL4IEQ0fJ z(2!K=^WAB1J~QKA4v+r;$l0rZvikl10B6&Y*V9@mhc#k7D_u{Ift*tN>qD9T)Ih3~ z16x_vGzk7Fjo296Xix&N8inuPX$S_(sV=%7Oe`MXDspwDv~?9!W3Gg1M+TPa!`Q_b zUbP|$Vk>iZ-`{!*%7wT0*W7%KBQi5sJ$BRCre6K~?Lg7K-k$r`oV*K#jdh)*e;CKg zhcEX}VEaeyLhd8-sI%Zf&A!jSrAqPMn(wC6w;Cl3q2>N*tvDE^<~sY@wbuK`T0?k| zj0e3v>q&9`{qE?U{#C7_LI6*f&YJtZ^{wxEU*G9gGY~PmQ%lWCI%0?wcT&U*{{V`| z)z$#|`})!o=)aG1Q7IP8a%oAdO*g-O)fJ5+AAf4bfi;b_BZxI>H(fy0QUh(&3G$jy zX^7YOblpkZkimBo&`COb-ifVgR2^90AUsM_?|**vqD>xZB+^za2b!?@(vd(9eg3-B zbwz+|9`>xiYQl*hDz6eix7+XEznwJ)L1wN+7#cTHUGKdRYY`VDgojv)&apJU1pyQZ zepGCr5AoW!81fOsVM}%1{{VU<(X>>UyD5#dq|pYH+f`$8Avb%P#_xT9y3|G9@kYGL z(*=dN_GyTUOM3p;raVu7MeZq8E^JIdF6-~!)JW<4P@_k!YwutP``((`3Kzd_hLpz< ziL9-EzkdAaT}{jERl&$GK2?{>htjh5`&EE7Yilo;&X(%TNPyZS-@Pky&?Dd8jkkR? z`fo;)z97Tjy{URrTXkYHXsRk%vN5f<-@U20U_X7Q z){Up%zm-zX7P$GDk%;fDYL&p|!ONx&+V|?!TYx1vk<7j7OV5^rg~CLZ(<@`;-^;45 zoA@jY5(9{lk_kx|BcT(D>XX3XQx}QFh7mz%j-!_n4j>@&Pi?*M4=6HJHJ$VWxDJzx z!dgnTg8_-b%wYiyxu@cA1*=_k8{!#BWDU2f=1f}xyds6zwa5k%oi#kNA|IMv!!TJ4 z^A!l>f_&f}VS}>hxIA1+KtYEj25wNCBOn+R%fwp}LWPh4M+=o1ohw*ib5~*ET3I%t z3q+8}88?U3z+u$*L-TTuYlsv1n&GJ@P=n;sr( zfrd_!2?ZD}l5}R0?j&TA2j$7!v|>@!&MGWKNSE=z(ohT%VTe6$5PvVqn}P>24Z|=< zmyJXMVD436cQXilfhYx(M3VtNn546Sxr`oB;xmzjar8kz^Qf^mmor`Q80{pzw1N;J z0jL9GQyij7L}J}hAff28VINnLpM?wy?yn6{ENdyT8ZS;T&fq_|RyJl%5 zCk!UzuA}KQ=}Y*Bsety9E=nA|QO=docmVi;%=!h>2P-8SUPA;B+)gJ2{{XCX522|J zEN^&?r^HyyEOdV3rVz7-26pUroI-Mx#8ZwJG0ey%$C<%CXQd0RxAcv*+-v4%NY#^5 z98JkS75KsHpi=>_T7SfZPCC5m5kEuwwZJnga1jTv9$h;rJZn=00|*VC+QUt0y-3TI zi7BvMWH5_a6Zal)*u_tYer0r=bdv#0?O0joo}Vmr){~223><>G=6ca4RgNIy-7(Od zzP|BJOx&VeJ>$z`y52RMKCAYVvr*-(KMw2+0wzD5PtK17Qb2Ob2S3?kPhVQrgF1np znDe4_Urj%EuWHxcQhmkpp`rw9Y?@tBB?v4WI>`r|ZAH>%Zanf45Ds^Qrtl3vurrr{y*1@VHv~>UL;mw@Pw& z)zp#G@cbPB^`5Kbje1`Td&Y>CAT<%N=>`g^aQ+l1Xmv($*=1Lw!r+D2DJVa%BBFQL!*aA1skNZ7pd^;I2Br+t(BS=Hqid+6Av1s2; z>=Y#^MO>ufyCnyP?o`@Q7L)|qEuN=B^XC}WR*2NcheN1Eh0qd$I0|Kd9}~)CGioH0 zkRMK<^dMBlgvG%T1du@GaS+C&0)t=eM~#i{+UH2&7AxTvEWR-EozviEI?~SvV~`%}(n|V%Z?c(1cqCCLrk4 zP8^y-9vL8q%b-hQIZ8eyk^vfO=`P|EA$VAb7Xa|khp0Y?6Mr09kh>5J=IKn6zbV3P zgpIs1K?38=YqTwfswQNU3#BcAu4FibTaWfUf;oY>Ih+(u+H|QF6b8e=CJ`hc;DRoC z4J!6=!T{dWU_%(Vz!TAleOg)Z00t9e_+|h=ybFfr_Trih`3`H1tp+jCtV!ZN5lLm?FMha{LrU3a<-|*r1jF12T<45{{@njo=oH0xB9C08J2v)LGzy{Zi9?o~H#s^Ju z7vksr7uv_s5sssSfPV!(^a z+9b-1B#(E#@tU6+@DA(d@Y0#5G+R7Jw$s$_+g;b8{prHL8{}tQJ^iYD8&~s#zwfnB zShEq+EdkKO*XLSE;2Cd+xe``1`oYhy)sDMunbt-=y*%~u=HQ%e0BrYY6y$@IoT}=) zJTR@sSo_X_MwQZ(;PI=(dn_KinG!^uk-N;A>G&^*6R0+rFgswSoe7QEjg}np;xn^{ zIVa~XyLf;f5(VL-9yA6C(!PqR)yH8lAUFB4vT6 z{hR@x{g4@z8i1Xp5aL{mz!;DL9U|xaXB0TZ2>^2h83pB-o$w;edf60*^H_(G+DP#%%KMOTk=KuKgYhKL8#&*f9R4(nMyZ=*{MZ$|4`!9&CcNAy|UQz8$< z;V8S%YIX-iVC-4YP~h5PAT43!&tJA;h2X>obIAt>2^9OyHH7Md1`Gj`0891{trCQg z$kraLc)W{)j)T&-2FQP!*Q1P$CVt09P4M@H`IPGbf@BlqgE|~h;Xw%=x(4@Ku^`~q zu(>2|4#NP1f7V1`rdHFvEtVL{lmTKj+<-M%8p=Y!MgdQ%W%bO1RYw6l0N@LuBZD7J zs;nT(2mVfkBdW+C2|D>q6NOYc+$qY^a1a_83?1q`6DXNYfQlQCv>MFmT|7I{CzjMo zA-v=X3nYR8dl?hhMo*wKNU=?fV3PCLGe5{GFU!UVZ(E1auCoC zU?(6OfKFbAATJYuLx1(=?i&QJo^hI984W)UgCjC>)5&9|NTViJEyLkm3gR_rB-b^f z3uS&#`n6T%910cC3ap=ySH(mk);*F2~cYp-yLzsV+ks}J# zkVK?QOAl|(I7csCxa|B#{$&cvC4@6!Hvf& z0?=X6_?{Y2IbnE@h?5Z>5defEYI1i21e|T5mu!t>jFLo zlYsCo6qctaL_jQ<(q!S&@VEd#+f2(+C!0gE8LTWrYo)=H03w_Xbv@y`V>2uk@j{Xb zxM;uwsn%d`)e5Dy+He3w-G<(7+Aubd2vt601~6wPI%%q8CDy6%+-sYk5xVFD0Be(O zL)~?qt{EA8P{W2`Mq<$-F|VI=Sj{&B;fOL!{*i!Tb^#gdgGSyoPL`*ryEhdD$OBmo zRL2Deq=rtAf((>2hPqaoFrGlNwb0NY0rNd_F{F@U026$`kW ztTDR7bAf;cr#)+Z9XsPw4AQf^+$_Wh`nN_xz!^- zm%o*3?Wme>TGtXFTz&m09wsC0ieNqa`BILtx4r910LF`@28g+N)>>u2HtVfnN=+L@ zWz(6Es#Wi5)|sF!`R(uct)&>0Hyyp}Slnw`zk14$u+!J%1kg8o#SvQ3wP&eCCIouX zIQQj7`>PXLn=58W37{y@te`JHPe0;`G{o1R{%`!q;PCFemcJ-ElK_4DIC^ZGXwwx60O{ZM9i~8iF8Xu2~r4swPIxNygdAE zt!pt&#qBr*3C~wJGT>D?4xr3LkR^%5#~>BxX#6?V0DwwK@k*SnHh2{~^ROw6kw-fE zW~k0JuhFfsU5rR)>W83g3?e~3D~m;#%#sKM3Kv=Wh$=9nAVfjs zggSTJEKB0*@A4^&dx zsl?)wpbbC@(m);{ZA{wQFgK*Pg5W2D^2rmaAnz+-LQLI)+dozVAgRulyup{IwLTvk z=Yth9hYNfZJNE(_AeQWq|-FFG9qoH08(y(7V9=1Rc!H zrE8f6O6YZrHA~FW0O)`XdNbZwZ93c*+qcD>9;=oNpd)yxTf>zB$F4Gvl>6mSiE$r+ zXeV$Z61O3b{{V|5W|Q%Ih+FC8umlFXO}IY|fg-clgp6EXmUc2ORM?AC)y++dVWQQV`0J0`^4(y7Gb0t^yXLS7LW9f@4OH&W#c zGDWI2KR#66xEsX?r!lP{=%KjMVnv`%CjtR9+(ZO2GWP_mKM8{c$1cvW;f!ZZ7+E%^ zKP;VE%BflK{<{N_K87PL;)2HE5txG@lRaWG7pHnQaa62;j#1dQ!B~gbQL}}l1sfuF zYbim3BdOqVfJ|T(4oN5=2qH2V`%tgU*BxSxpL|8IrALiBx7(1o&gH6P{NK@YJ$vDme!Bbb_SV~(9MbVC5)cUds zK>}q!Vd8OJXnAn;o`YS7N!q%s;7m@@3<8DN9xUSo$RN0005r zoN&j8K2V=2wX||hNCH6wvNjYYRVRb``yBUN30AV#=2{Mrv!Bws*1L!Z!@DnGjeF>~ zE~&-%U@Zs#0BE@bA2R;{Ph&~|M6FOLoe4;t61alVj-zs-!dqb}?z+R-m6-sw(vAEH z(?$cq4>I7WeT_d0;s`Iu5q7z6Y3+e3scpl;z}Dk-V{Tm;!HF>dP>r-tg~J5N*^%aF zb-r2@IKUP`9YDYx31e$Uq>ilaHx$Dy_@Yqr#u*4e9T2wSx`~1LZF4`SPx`|f$V0?7 zaD1{Bg%*{?nHn<0q(`6od)xwTfierOauP_H4Gqpb&5+(93TjM+gp5iz!-G3mn%N{a=?D(jET*$NXK~JFULY3OFZuS+w03 zYrS!f5h#KAwm=OU7y!s|RleW~Oh^)ZNdBeQ2#n-~Lp4&WTdwnpKW6^`75+qVEEf+x zhfy1R#dNCt!~P5YY;f=7FPDj}$u|TI91PEpf2dt`bzG0k{vp`kW!kzw)!jZ{foQq| z-<=elZ(7qmX}P`Tw`#;zsbU3SP@~&41!Zeqz!uw|TEtMc-+uo9ifgNH5dok`n%5Zm z`}3n&jKE{59{c?_papA2Yg=?{{B1{laa zx+Us4gPG~KQ}+HbHGucMJ*Vb9`}$O$zj{`&z#-K#nb1;PJ^T4lvhsEJ=U8b&Y#Zs7 zK;2kg^^U)~qjr_3koTW-2t|g-=H*22|Ydg^{u6zyn_iI5+fl$Xr`g`{kf%n>q_wU%OJ;iTY*P&nvn(6lIQu8l^KRYQ$FI^gv};8W!E}rnDcw+MBNiFtEUT-{0>>&wZ;A zTCs@%Y17_)?L(fiyZX-5{Iy&xbpD_M+SeLWbrYpn;vNGUQYfklqFI#Ingj2pVOSs9 zwHUw(t#uM;6IoIMO=EVO{Hs`N16Ck3IUm=*d7!9UbsN3?>oFD}6=VHYG`H78q(p|% zOb5!850z5E{nTiT!ry1!^#6H46CgfW2rWY^Gm)Zl1L~5UsGj2a8n`S+)*c$F@vfS3Xw^~_+V`c;%&GnBH|P#{2Z#F&OH2#m4>hH?Rv2?pX2Mk(b3ee!(LG$NC1*cBO*kLh9rWbsrX3p!f&x6BxfxP zkJ6Ke!$kmc8M-o2WNDE-e2relu|n|z3-cIkBu`yf$%I#0QsvstAtpLW^g^2EjiG=6 zyA7!bgWo3v#U}`!QUNRvyE+M%E-MhOZ4L0aAixTG5*RQ_K$O9fX15oIqZ$>Q^)si4 zIOyTHMhPbxd59uoa&|$wTe#?w!7@T7>p<8IOOY}3P7hZl<-nHOq!y$OY#3w()3{oy z98+qwOcB>VeI%?*Q`=~Vv1F&A);naQlU$bE3x$S;1{|F4Aapq>0LN+oOkjXpwfcxcX7 z_NZ~M@-hi*_d`jFBpuV-xs3X^*P*HLI?IRq>QuT!;%^bl-R!5l8CmaGaI>NNFRcrL z=m%%(K3i5iTp2ouiP(R2h;d+6zyQyrF{J+h8)B02Xi`bkNd9})wf#WH&%DR)LfZzh z_0A3_WE|5TMtOsUufLvv3h3aE*vFs0Dqa@~bsm_m?}zwt8S~hC#dN0Z#dRcG;XWJ> zOf0?k`bB!52k^jTHP$_!+LMFuZa#$_41V3~)ZzR&Vg{#YjCBL+rFnGHdYz`wKMoL^ zM1V89S^#~J^yvIW8j+Kvh=HSQz$-Mo4jNKqXJytvPq9x%LHMvpBI2i(3yhLaP>5I} zC64Jdcuwr;zUUB01Zs)-M;BuhbOZIdeO2aXf4L!DUwL#hYU%dno>8R#k}e0nTt}oW_4)1(vruEK$y&i zlQ4{s&C?*z_?{5ZJo12HtZJkfe_N=+<|yK|0iIsCln4R_S$LXMM=+a#n34lPk`1f` zU1@&F_f`9eMrix(*DwOW^0H`7|;OYyldz-5a- z5fTXnETJXjRW1CW8G;E30%Wq$B?cB>YTQx~0otw>-ON#C67JR@9%H+I`hbYUf=rQ)T-yNlGUDHkL3EaUL=2Li;Fd~qvO?=T zB0&Pvo@i|DXTl0BTF*nYI9v{50J$Lu00;~`nKIv|*=X8p9eNSJfDO_cf(S^45)46L z5+vQMC$i8*yrR%dh$3VICP>u~;&3Q%E;kJM+Afiz6NWjMGIDucVZ;|1D)O!HqXaNc zCfH;aVM!va8Wdh+y>LL;fD|%3EqG+s;d2IjKmJ)H&aVM0mghA-CE*gtLIF!ZMlV zxkDL&gQ(DNH2iy53S?T=E*J>Nv;x@-^5%`U>jnY~C-jUo?IW5pa>1-Mk<$cA;y~EA zGMEZT0SMR<$iR_EcqEY3fWUK!1xO5&fSd|@_)sy-VU`jj8Dt5#Wgd_(IJ60YFwU{! zS}l<^j82Kz*5M%pgjnT2>{h*FX~>KQ0U)EQ!G+L?J%u%#7|<=`ld@nO73yNO-w$++ zo!1PYGo7%9T9ENAux!WTNPt2ldT3>>%sCD#mxp-;;h!*!Wd_Eus=RUl31cnBFeFT4 z*EC8n5(7W%{X@`U76}zD&Wg(cE*p^CodXa+89hT?s+?;DT|p=G+raCPc8$89Gxw&-(! zzW)Hj2B~GDM$s@9xZItZ)FW9-%&kI!tN`f))vmj!^Hg|8NMym=pk4g_r~}M^6Y4g4 zc|Wx;zA@4!eFODf>uDK$3j95==cc1$=b}~D@Q0{B{{S?G+Q!IZb3EJ)fkB-0^692} zS5L$62|>i`fHS_~E~VE>V+45B9lsC4&ogIHu-J?(Nysn+(_4A8Gj>K{tOc?M$-<@J zaQ9F_+Sh_~5e{ZsV!AkXgisQ5=7=d2j6C@<(I`AhnNDJjuu=?wK?E{6hgFbItxti& zv|EE|4|AM=w}2Z&QbC)1q z13(*go?N&mK#UB6x>T*UFm#as>C?8G_qCiq2mpABCKzoJbTY~B6r3&@f0-Zk!Ve=Q zH;{iaa205i0&?>lA(piRGXDTD1eq-iH(Kk<1l$o3)&UrCCV7EmQ*dq)K^TH{BlB)r z!@@ackP>78AozxYAP+=Ocoh+#aPPq&46&dmV+Ezt?!OntXnvhe9x*b*$UD;z0VKR3 zFttmkT}Y+;C~e!3{Ja^%bsr;2GbBDBl2?bBpuFL3e9EXE7Pup+GIu+@-8GhpGT1ZI zLceia;&0_cE@!*WAz*i!<<#z#;SjjIfKC*h_dnI|AI8tZIp%TfeGbQ7$KIS{o@4J# zh^%ai3deRrj=c*J%8_J8*_mY}p^T!CA}NJF-}C(g&ikix-;dXQy{_wdiCdTyzdIh4 z=+g#Q=T3cJ$`#xc?KBMGR*$>QwYn#!W#SmW>s%aT80+-Wq3`hl(`THi%mMmtl}?}a z^V6kxp|F*%aQ5#fyY#K^mT2@u|3Bo*KG|S8Pe1)`j^QuqOnH1s#mwvV!t3>uY>8nu z-|tc+;yv)4p?(n79a+0r8FnM$BGObyf?iqckf(Q0S7;-FWKilT{yGq8B zui^h3+T$VdTE>s&TfX__J9=i6i@3k;j+d$q!Vl7kT)AWJYx|EsUHtNk*=tMTZ-Tq& zM8FYr;k4iNE5i2)esF%w^TtWOKBlOug6fk&57x!cHTWBLN9sZ)=4%6@lOFAK&!hR- zWS9=4gJ+_7j_+GCPV#NZB#5*rDyEBTbtyTAha$T*8^j}edHh56REHUVt@A~{`RKa0 z;i<0yj!^lzB^!OaGHh!sAXhlh%dD>0mBY@@GD{cIMr{C}5;pTyfhc z;iw(O=?^`(Ao>Z19MBh^hhz@pq00eB&ngb=;xPQ*{WVSL zRhf#Rw;k;)W|4@r#uW8f+XDhzUY-v!)B&vd>jHBZrfcJw?6Tqpwv)XovpYa8!#~CD zZ+TC){!R*9nmteoM&~Zf2&9(M`!0U_$VZLPGP*}2SV`vG>Xn_B;~y7lWuh@SBVEt; zgBT;n`2*F88-Q143-s@*l9KN`Z{W?~@D|3bTK$UX2wszdQ3e@N{*_P(%h#Gzl=tl~ zZ6n%-wTd{qo>B-SK3ij{0*iW0g5M$xdwbn^Mta26qn34;_-=$ukW<$Cds3BoJEsf4 zN^7Dl1l4PMHn9)=hXD$U606e%#xxvDbC|4)4;JLbl(#b`k652qIB9H>W=0H?Jw{*} zJS4Qz;v1I1y%mTU?n}AnvEz$7a3Jkb_0#|$Ng}&P-#cc8q1r^1Z=fi@kmH^t%**BK z>F75lmtEIf*&D~}r5@&ifZ9jQcOgU@L25M+Xz#LP(_08WMP?YbysnAIo*G6*jq2pel}HmPhlWcCluM1UL|wZ?@nK8A9Xnl)(F@QlA)&xbzoX&URe`H*6Z&s3tfj zp(y8^U>EYh*@w2@=Qh8zYzr>tEO8Kl=P{J~IQvQ>;rD^HDm@pqpEO`4pr{@!^o=Cc z0n(aZlO~u0DJqoTC-<@MT}INk?+5;!0dP&s3FoGFv=}KQUdGzA&r?xNcb<>3zsE8S zy-@uRP?dOhXA8g>epDtVFM?1AQV_p!CiKVu&%MD-kL!E7d|LNbRsL9UrGKy$M1d>B z=zV+}0*++*>|ZyZ3i%fQI@xG`{vu4Nf+~5jDOB%S7a9gF%)L?P=j+Lkvk@s{nUM0T z<+7vC`IHwdT~W@=`2%AEc#2y37=buUwV@^((dL~tbVkm)?>onOcY0jVic^gLn(!&z z$H+J8m1dRiMY&7D2lql~l%i--9U|R^pxuK3`?H3nzJHvIK5-C1G#)eRXp)Qi-W>_= zI@?)|%rMj%5*(Z$=*5uUFV=H<3x`slz*gf9`?Ns7GKKo+BY4Lugx%!KDt!Y}!=Ili zX{E+O4Au0rptfgzQPRWd+p)@92agBP{Yi$jDHBn?6Ol{`-2sXWf!ZknX)pwPA%r(v z4#FB5x;qs!d{y5FQ4w8y=xN_0F(3RWX3oi40NP}u7=XvxbgD*unPK5UpbkJPAaFSseoaC;4o^O@HLpt&>5v}@ z$9I3J_X96#gP*H3Y(=C<%?kTw6PEa~ndy67&J&_;Gr`HB2GImf?SY8fux!Ez5Zqo- zi1Cb`yJ{g1M+F1?RTt>oaa!asewMZ*%cKF!K^pb_6ax z3Io0ms4#d|;%p9|>#4*lwgvbN>Z)ucsnb;XY*t1gt)0qEwE&a@R^VcSB*EuDrc z;xt*#eH?_otXHE%FDbWKhaJ@4L~=`LKOiJWC=YKgd*u@gi^kmisg*p&g_!q5!@TeU zkU1+F(Q3v8cjuAlJiS@LC0z%PYxN`(#JyZh;l^v2YN^A?l3Mq=vM69Gi{80|Em*64h z)h4o&rZlZnkdaf|Npq}Mi*1}Qb3jk2^v|!6Y<2|}(h?_cak|3OkEc)^Nh!Z}Qt}iB zo(}oO_TZEd^E^aGV!Pkci%g*LqTXBlyL{hO#YhLYw8P(!uh3+)g!pj`U;wEq93Y0c zS0f$!TS?w{9Qp*%h+Iov+)CPPhpah^j82=~$%xRjxRmOq=DNWb(kUc|-yR@I+v*!8 z4Yuab)P_zODhL(9pAxMoFa_<7W;v5BIa46YQXdW=0wmj~O62ab4u0xk_u@n%%u6~; z8L&Cx!{_P>+A{!fKrMp?l@LcChopCV60XAtrb9$KE9FO3zeNWR0&tKh#v8 z2KHcg|KKHt;|CxCMlajT>wlfb-N9}Pa{dx+?TO(0$U7gQ9)?VL94qQpY}m*mYHgl7 z{A9xaV!}1wo7}=*cT((V`vEBmNJ;s1-oPVb#mZA2t~Z{vs_vJpacSEZAW9q+-|CY2 z-XJmU%NbSm)Bv+Rxztblk>Q18KT=0ieuj-kfK{p|mzBT8Zqt=D^^Dd(a{uv>8DJH` zCDG}K)1ICp+n|Yjb=_AF5HM&Nq?UL!Xo?O=&soBGW$P$(o3TuQm#!2(Rgsli+){b& zF;mnrev0o_l1*IBKvz9<49^FyiEXh#0AdRH47zMgDaQX8!4*b*Biz03wvktOx3y#} zVC==uL%pK(xGv5`?{U_pp22BhpEuSpb&A%RcdrB51A4ye4#r zTZbzEZti?oM1U{@;y=LO#zv!Hh6LzXHnf}N7msM2eL=W*V1l3@xg8Cx+)klcp-MLE zL#;V+WM6U*RRB6IMzHdr=g&3C^t$q_28CeC#Jzvj9!X6P9qdtISvauRhMAxw6NX_? zzY{7`)Ls403)%^nxZ~MCvqhKLm12-J>P3i@*MWI4g6PpqleeFI{HZF}+)qeh(bwdBxzLU*gFHD+G>K|jmsy+3wCTOxlVqGqvWcWlXk zW5u{yDgTDkd;T5`-sg!OYL~)>5mYcd+*JS72zDML)F=(n^u9SbMK_Tch&k?uRWYq|Q7c2ef=@20Bj&gGt_#X%cfmvk@A>=)(O zLta=_1#Z*?!o`wQS{}4LO|A;gGvC#S|MzpN2g-8Kmg=UR$qZeq>n}9lI?}o7&bTuGlpPqFt7U(G?~qwSt|?sX z8&l!vCzKi2^tBz~k2inc=I9B`@mmGRBhqR!m2t~4)H>3qS2Jf~-cSUe|7_lOl`@nA zu_o2-$_ZXv1oTqaMbCayLWAtwN@H$^5||%*la#hf-zE*fcxR|t-t%l2GG_b z``^zffe(aRm_KoO&hIx!j)p`sw4}$|0xmeVfb$>-EuY1LBdI?0z&~cgw#u^?ZC| z)7{ITw?kgxkup-L)V}NMo6WgC{rji=Iabz-leX<(ja9^+ekEv4kkd;Y_OYF1YQNHP z%aXa#`1EGj)K5cHa$J8}t*T5g+AzJ``(p>5K*Xb0@przAL4G zj81AG_$Z`$ER^qT0fpx})|QVDoExa>!%w{VAsz)!ON_0~*q(0Fn&$9HHs;%TKK}nEq_vOa7%U=#6At}JDM03UK;oH@nJeCa!y2O{^ddsDT!XlLD zh*(LttZ;`P3(18N^X3>c@g1rHL`5mI~kSr(zxulzE3GCB}svtuaH+s zRFCL%CI(N%uMWXyry2Vd5of*ionDZ_ua^R8K6)-z4y1_7>~oLcHG7tx@>`^kLiv&- zs>QD7*X+6-A;}CA;tlu36*}9;hVEuO9=~G$O^Q?YV~fhk&1}t1DO)|nM2Nxu*`I8? zRWd1s&O`SGY5fL2t|o4T2E&@iQkT<&9rB|pL)R2ONf|o(>TzWX6Reb0FQ3_8efFbT z^Y`%|$IWHIkKC^py6^k5CG=<=tf-`3S1Ala%D|`_ELYTn_@58jcK@8jeZN?688~>D zU6c3K-=*a)-OxSVM*`>lT5swtP9AYL)!A)!!y|KBde{nY?Jt~Kg7vTe{!p-)z^%-% zkGK(MQglOz$@>HLhHmadqSkj$2j#n6!R;Gvo9e!bZMQy#ZL@itOIz8K@_2Z2BD+EZ z)seJ6)dTX|bc}l|rMiZX1ZsSn8HLD5wDRpAO(xAPP2E=^REdA+t$=YkuI@!L;PQ}p z%>zZG5o=o2?t0ld`FQybLecGI#$e$;#9D!hr3bY{K zzcpI+UpIv(BDvFNsLK`btumewef9e*QlSz2#eunuw_Nbyb0M#y4o-BmX0rnZ{TiS zv81lx$0*2;VlsQGNL1^!Vg+V|B$d?dU@;-5X9dq=hG z2nGs?D%rL=;^)gGhj1fxeJ&SH9J!u(n+lUxH)*$A-SFq#F6|GFWah+r%Ri-nYL^b* z&5Rl&7~H+yj?H>*YE)tinwSwdz?TPvh5L%QZH|u3CYMRNac7r;BCjbpQ6tZ#dX+zt z9n1Ho$>I0?+}8xTAp}*3i86kX`!FAPWC)${-OZahqCNDO4AnmXEQ8o+lokjrcg2VK zl7ugpx&n|`K{%iIap2vZcGr`<=RGiPB2e{P%N@!rFh;8RFiFpw@x8nTjf6rgCCtmM(R8FR-6J?^u0n={i3xJKT;m*&me z5!9YVM(5*UNWP*5-2dCY=hWY>g=J!F&;)e%g0%)2T&QK3*}a&+xkCh0feDIESoOsakon&$CUBw9HYN@<&AzF}=~vnmP3j(jdR;0PmaWV7+Lgq{)^h2VZp zI%|&fI%KFeXy6rl;aKfcC#8C|9_i5QFx1oOWAR(pQy-=h&358s0q!8@8z0e@Kf_wX z{y0gXQkXy;vV-cpnwC1h9u;WjyGrTF$ffa5G)?dNdqu=vY zT;9&Qm@q{62Co$fS&;p`MO)1~K4@pC65UG^x!rZWDNmHtbXPnto_=*oQ-MPS)NI(c z!S9QDsIz@@RQx02dgUj3_~VtJd?%m6z&w_=fZ&8CSTl38S0I=D-2(9-}6ee ztdX`40e3mT`OV`OD`A<(g*Bv^(z>sr5X5=jV-Ug*7^##s}8&sz>hD zIj9>*Bhgw{1yu@E7-D^o5d?*1&bG_n(;S&{bWI#h9=xOYcvtbG7MV8NIA?2vA7upI z{ep~|_x3v2wb}SkMzrMdK+INtz0)zTEA-&FR-^LC^MsCvHXrR@SRq}S_Aj6SF)V}?EjA17dqrm*RH;aSa*OT0ota?zY%u?eHwuK*<4l` z{enZ$jH5NWD^a*13OX_&dHJ&Em03?dTtRhvWr)CxplIcQIGrlR1#Y8`_R0U?Bc%LQ zB?yC_sFHjxyx-0Qz-)Xo&Wy=>^3Z(7i>4Kb1sNK$E>~5?*&l2Gps2`!>5rd~AXTtw z&lX#XX3BzR)}o>#P2_)oty0K_hF*pJ@w05^#mK-I#QBq?bml9pY;z%$P@VJ*Uj3UB zKi&kzOHHTGEd!A`t!7bovRu{&P?qk1?C*6!BVjJLavm7(f5^QYYSI_CsNR`I8b3H5 zb*e;FbNPQ``<_OL8qlWP%YVCWy0f5VYp|t$9h@6K>Ufsu_-yajzndZUs>R9+20~uZ zv>7Apioa4XH*`6_@2k4v^~rUAMf?0;hoCsy_+`v~ohw3J%##?e*I~EwGO|A}_fmaS zkR>T^>m9>%KzsCvoP&;HymqgqTFGMO$?oH$`2sSnC+6up{p0!jCI%iOa+vs1-H($E zv4AS*$iMej?he(T*W}damV7956_@;-^8C*qyL=hmS6t&~Zqx+Jng79>Pg6Yc9{n8f zUb)a4L5>x#QuK@bg{g$1BJ+(PqxQn{+*?AQc-=zRxuvC-2iY7ur=nhXTq=bB7M2p* zMG>UpZ3}<=D{Ab|q~5=UK*MN~ZNyhLbAq4gB4g68KhTwmBX*PTO{Mp2D3<%#KLNf! zS-Nl>ubQBG*~U`_!Z4JA=F_6jW<$L|WDQ;TE3lbB-wf3#!l+oEBmj)sWPAcrvtLtn z54w%!qjdPFWUxV+ROZ5oYuq1@1rT@4I6bDJl{dpq9jsUSxFRS~ayGC$L5-z&!Y7l(?()`+j}xhGYF7A_76T z^jFaZnte%&l>yArM$rsoePbT2&^;fyxpX=LB}$1%ttP!@8j7ctWrggRdnmCRm70+~ z?!5Q6dCqXVswS(H=_6gSHG@ce@BHBl$vFC1BnLWGNnEK#+R>ROi$gUPZ*VhYN9=Q< z4N(y$A@cCi9r}VlzQxu226sEFaSmEAp|5yg&SnzLUB{a1qtt8@h#+^l{nTGT^ylrS zVAmrh7BT0DL@98o2T=KSJe#P(bE)g>_D`>G%Yb`ma)iCrYLu@>cKzuyl;^r23EVlu z8wGcpGK~ns-d6l;=6-7{STna}sK%0w1(N6Jz`lCR7}$7AZpP_VGGkXDUw$U5-11J& zoPJMi8VH-3Tb@*C{2$S}GW_j1lK#%NokaWvctx3zxj+ zDVogxmf*7iCp1#`4jDaiW~GC4cUHa9%DVR>{5Z&v9EC+psNAI;-&R$lZ>VVO1pPZs zao0tGH7s}d%0+s~E zi5Rok2ho7c$~;tc-h#hMpg(8I(0>3VRD0AIuZz5iX%jYpNp;jj0hWDcL)7t1tnvO! z_3xZZT^yGAP@oH)AmBAB(E9TaD5P{mzEQmV!`B;nC%dMUn>Z zZjOjvcA^AsaViG`Shxl87u?!XFAhDHcVnSWlQP#F+~r<;By?%phS z>0VK)-z)c)*GoU$(EEJp6ZLSCre-!a$#Phn1Yf;jqXt`^C+swF4uA;dLQsZfk|OAr z^Kr=!(tcNDedZB6z$1%hf&kRtJvrk18J0c*$D>=Eb6FHb*+crP`8ZSIBBTC$d`$Vv zSDW57_n&UQoW&jfFd9^@1X%QqfPmIGszNIxn>bX+pH(!F)!;qzS3jyC5Q5noaGCx? zaf!02`61kwQ3>^vai(evW@Qfp-!wEE zN^R6K=CVUMlOir;is_5pQ>+f%qrx!gW(ko}1pL+qBy3y6sgj!|3z!!G=wr)Aaih4J zzuHkw$)Q4jlaU?8NoIhOY~f7-#hOPP8xd{I;i%GQ01!I)UHhlj7+PO!zkgn4o)QL(lhsRg>kRRY0G^D+ z0!|WtO~W-;IU0uNLKU1-ipx+%jaGkKXXsRPu`4qI(dIEO+d{@e;~TT0rYGj)+?fmR z%?mu@z3t9V2|m5rN2ggQ#8Hl$ z@4zFNq$77bKL7%J9Hj_+x$UU-qacto>n2+g6N4GHtaG7B$$GkHEFOxcdc!6GKAVkm zl(c~&hkm695-%~%j9WF?%oD@$0++}`IKpbrAn4o2eGta;c2|OK>9R5r%|YA-ka!*h zR8GP@lp)qo5jKcC2#~q!C$10jO%bk-HA+reu@fpWp|#{|xp%u~qjgRVTn!11^@AVC zj4PN8ZoQN;G9IXfsg4IvN0OK&>(&U;x+o$%t9ruH(bHfZ{nWv|=Zc=P$X{~2oRNoE zjKka!z0vF^KBHRykx&El06eGLvZuS!K#WQ~rdKYjYVDie2pL`lUQ| zKSt7>0eH*_6XdgS@98H5_*%^*++P}OJM=O$1S*eD3XoVML^4$aqNhxm-aSk}@#qQ@ zVaJdV^Z+vTWhU#+7vt>-p_GsAFaRC`cX8$S2J3KN;O~)IaTl_5EhReop72uWtB%u9 znrAdyhHVR~cWoZfS{m|mZNA^SMy}MV)48Iutth;3J2fUzl4_L}3yg%a7hPJ@^jKDw)(Yx(kz5#O9Um|TSo@#p*Mr0#Q*MHobDR+w< zmIxxqnQ^ns^7$A@W<1-HyXyn(-M1Lo*{To=HFdr^F=G$WlMsG8eak(Ssv^qZ%oD%b z3~@2W{|CT+6vjhYVE(oMh7;jP8+|NK@K~GMwG?P$n5XS6lfpHCQ65=Zi?mIga_<|5 zLuUsW3SIe&%N~3@Y)$KXPbA|+0kVJ&^`pzUq5#)DHQoaPY6L_hTB@@n zfMq1y5(x-ZOYn4dLwdg2MxgB?)OE$KZg=wYm6;!N5|XCvlZSXH|Mb!gpK!L)TI~Tg zI9EgGu4Jm7ibSCc@yl|l`>g<*t4Ms{B2Md~8m z;rPNb2eZJE-Kk6Fsar>o_gCRW0J}Frgckt+I?(Wf6jR4Q5#GlU|KvR5r;b%e9j`dl zsoxln8T2aO3^9PhHz4hAh#21NEfZOryesSe_q|^k)gcQ1;=4CA?>oi_s-qU zOY|5qI93f2v-FK@!SvuIhd-~+MLsfB+WC#-MFSrQVXS2b#?Mzf{))!2OPYL6M0|b! z>V17m?-A3Y92KJTCC}N(C~0qCm$Hv%;?=|k^8#k=&1C)mN_Z&noSmuHcP-R=1zUsU zs+n{cf+g#)3}?8PKN4?*{0Hc%ql8VikI;TJDVOjF@eW!cm$x!?zBcvky|@^)Tn%`W z2U<0!JN~|p^>EG&Et$UW5fk)sJ&5@!JrpF_2>yOrE!B~y&m>X%-uwK`?+tJO#jQN0 zd6;&G>Y}EON>Nz3B&oFZ_k5ubn*g-AvY=o$r&5e=OwM9RXP2xQ9;OWVy9Dm1#u;eJPA@zTo>h#V6q57s_=?LMHElF88ZC7yGphB5CH7C9Wo; zi#y_YByEutOF2(YQ$l(#(SfwD4(;8H{;|F!C>*@Q(~ffK_x9_8N!lQ!VukmQN3Cth%}9PmR) z?(h*?NOL+rv&~hi+fhw#E(}XCTBrq?O)vm zLlowN&UN{WH%Lj7*fz8QdBHFZU{HH4EfKRhLg z*DuO8X_~9~73> z!=foWv6)Mcaz%)3Fo)n54xwC^?Hf9YuXP$ICP>foNmoTvl)Z@9f^&C4!(T&6a% zfvAJ#*RSKnNZJ-#!6Ar5waCuDmo@k80gW1SS6|x$7Cd`_GI^Z}0bjN5lNV)7j}&Gzi}6Re;gKN&M0|j<-*^hO8wb$qA^_pQB%FC}H+QtY3d`ol`e#I6R*W6!t4hs<+DKYy!yD7U)Qv4Twy zN=d$78xLLYzX2Ku@s;~x@ai3RRNs8~Y1|hgPoh!eexuG`E5^(_wuGH!2|8U7F3pm75M%(XCw|LlP$RII$oDt6FFPeys z{V)-yyDLs6my=zp+})ne(!NsFkkj_+!nVK7i#o!bb6#sE8nEBtbXIjSrP+(4?nr0XU$+vV|H{)94hEF2us>JQilZ5 z!UL1cV|gnH}IinQ)gt$vPoc=FMqk-emSXQFCuZdJ$=Q>FaX+uSZ@LME>TWDb>8k z7Vtq|66jzXHEcwuXidfy!QoP*O?QoC{8bYS6bT)NjkMRjk?nS$B;wL7-nyl6ORz6p z=dkd4UT4L^$dK>&ExS0M=X`|0LL9usSO_~G_@r@!BD20?LOvTYv&KmbsByX&>|mi+ z9>vmXq}vU)!-ueJS(WKK&}Qdd9>ptb=6r-yp5$5QHCiunkQV?XKKjUq*DIEY?Vh1D zJGTY){cl+@Q;`ZV9`+mFe0u!A48duX$a4%DIEo z%QOrzM@&ovi)MO_l#1Tz&}D(8Qg7zCu{ImGt5<5n0jMBovQTAG-Jkip$gq** zNpbww>FWZ)GJ8Gj&o_Wm(ltR?$vX>BU;Az+f>P(_GIqx%xlHYaa{}^JqLXUsM9203 zuah4AvXSB+GZ?IlsGRe~)!}x;%U$VVIP38qJ_oEQbtwy7oRo8zVNCSsa4;Cg{e)Du zSv6LzC5W0ul?2_W zZ`rTGcC(ipjWx4OLv&Z}e8e{!8yAR&kd2+$L|j-YSnQiRMBJnl$qk<2DYe_SS^ydHYIQOxwxiyh?j@ex7s}?tI|Q%Ws!@ zub#%+FpUkzYg8kN$1NmzaFIEM_^C2;Nhfjy_Nr+8unVQeDoW1Foah@U#3JD01Tqg|uaVpT%YZS(%TU$T#rv zVygB+P>q}i5X;Wg5v2h1{WeIppY2fyjaaVMR=b)d5C8#RVW4+Trc1q6Kcr`nf_TABOv(Q@9xjAkADPfBngIh4iHB2g71a> zc;YiF10*J+4*wzHmof*frg~l;IG3Hjg#3D)#{RbNP4}8umf_g)e*n+3SAj-@}xWeKM%ZiZshq2ca4&NHAn}0U-REJ|k_pWOhMP*wy74*)sh8t3C zTKx$fLS0kK5A)TOz&`!2T|=32x>!#Xl|FaQ*(#}ET1*FoBA}Av6Jv|&w~TUio+TWW zC&;e)RlDUrb~o511ei2I1g?+o?z}g*0PUBXXfi&1at1rGe;e)#tUeK6DR?f4|IV;G z_tAX8ow?@n^seG>9p3r6NQvUZh7kWZaxX03VD*`KM0h1eC`}<9sWD%K8vn;W)htAh7$F=E;Mt^>k-2wErfC;f>Ooqjsb>dmSJ{Dd`yY zMs}<#Q(tmmXGA2aD0k*9du6t+O<0-jb5k#+{{Tx(alQs#kUOpXO09p3%xMo%q$02m zfvkHXDCR4~HMGn`7|#m#*WWm%du*2ohkGI2io=zS`2DCyQ9EEN0Qsr^l76enWJAop z5lC=VEL?Eo)f-1KTYoD+5XSZ1W5IQX%buhG8VpzRF^- zwtO84>9q~7&xZlGtb2_W(vr3J9!wjqqee@SdDCDqo@Iok%83ZerD4@#wVll=6m6ir| z^DdS`!!_8wN%G~sfG4SbYS73&J&KE4R#{^`u6mMmLy0zpt27_CIo`x^mc)EOk>{4fWd722;Xtu_PF*;fmCmICB~zXk2J=-9@3#AbN# z_oh8gUy93g7BkHG4H$2%DXyP>!AF#3L$K^91)9sGy}k9sY8(gvsvaamVd;j~-Drcr znUktyCk2}Hs7V53Bbvp={xd@%`-md50i5pkP0ZyVy?Z_U<#EZcL`N`b)ycGUas+Y5 zPhnJ9oohA0dXMi*Jxhx-b56|zFS#o&JaB6w+dw|p{+y4d1uG*tn@!m)W=<;?R_(J& zrmeKrxIg9Dd;be@AB?k;Qg;M6^gMDDS$B;A_8qt^f#-`?ABu(&(Mt|FZ_@0WX+@|` zOY83W-pL2nPW~NRwhyHN$2Tt; z>4PnT_xu5XIpNl3D(hlugvYwsNP<#FYahVsyc7Z4X}0hRpf~O&zIR=q$`$YNlK>5g z+l$bZj+`=Mu{2-|mn||WCg*2gdnkvRBS0$6N8;Fiml6$VcbZ82!7>(0ldI=Qym}>C zU4i4I?(O#a5BVSdq|q&6=6RD=QNvH@q#uH!Cb+!fb@N5)Rl$X@7e#7+1?B(g42zT$ z`oQ>`s$P-1EkYRJr-FaDp@#=B2)0^PO2ej zH@1#r+HI&E7FZc;jXe$3!ae3c+o^atAG3cV8Og<34UJNpcAVfg-4Q+*H6RUKUBg@Z zSOXZ@tu4&C>g5HGk?^8sW-{cTj}R%y+(DNc)y@@{ibcPBBws`qxZui1s8_Tj9UMLYvZAM9h7#i^F~Dqj81f=0=-qR1;XcB(r)?fIy)@1iIfZRphFm zFHmB-szmi6tyI@7NqT{iVmB^Gl5eSzdz=rBb5x%Gof;Q_T)P=lPyEZ!E}Et&#r>h9 z6_q%uhDLU7`(GG?q2@tHcy;Ul07{qVu+omv#5SDcMg-F|-ABfxxi-`5Y~i&03T!5% zv3|2fcR9yLPa+o+f(hsMYad3JhEw@L@+6GM{n8?EDfWonXx8GbrSEAFXZSE37r_{f zCBowng948pCmn8WlIs)?wncudm{4B^-3&PM41>)w8Y0fHG9eKCJ@1cxS6MZ3m~Zxe z(uD8*HvDv%6hUl@HKOeH?$#~kWTPclN@az`Tdqgu?k$|#X-dsobaLPhTz+0YO@sDQ zb0?8Q>#Eo%9NiBhfxjELhF@#7Pg-euux=6b*JpnUw+6++MTs#c$X_1t(q6z^so3gvua{0|6@69{g#ih?IImJ;+hSVl8<7qbp>kCjv#{Hx z-%?%dOV-WTq(fGIPlbsv%7yxbij>&WGz+Lf57k|ezA!5EWJe6DxrW5sLZ20Lr5!oB zmr?nMa~vD)gRbL}00J94)?Ja>&K&oxo$Zga38NmgCq{MJ9IoPeR z)!vAb^Q^0jqo5+Wy7>_%qO(8n3>6iI*KD|*W#rjNo5Btwe0KmM;Vnw{C*bA_tA}p^ zJoK822W%=VH-_Mbdt*iGQtnYgOEO_h|@rbTUz)hbr}Tk{Lyh_8Dk)OzJpW2 z;iBc!D(*EtAoF_Ywo%A-1j*&8}_1 zK-oq!xJqq+H0EI)bEmnP?b*P9Z6450u~EYXz*|MAwA)XOBF}I$|M?$L{LGVSJS+#x zR6C6V4-4uIy`T2fQ^msh7O|NcxbgUubdPCLJ18oe=Rd$#4PhK3`;~^Vjl^bS7(>zK zKS$&AC2NgGVoeWubj1a@No1@S*1FCrjhNQZaq4cvg>YwxgEDi>l8R?mIMFi-!eOoMvQk+2p-{8onfDbGU5)^G7D4TbB;Q)E{5fcH#_ccNXh0fZbxW@E z3mauLnZU)@LWUoyfKoOJPf zUr-{psE|?p5^Gd7I6z9Hf@&9+?~Vx98j zNBA2ek_o;~%Q%0uTvlWC5Xm%AUVE%Pnib)7fyH#8po2zK*>ARIY`kEO@&jWr&NKiKPAF8(9+Myo|~OrBLr0;gHEt2{Q zNnCEzgwPG0%O!zKRedD+jgl{abLF>z|Tm=Q;=xhrWMmBf(hFF@D*{<9yH(ZQyfyBFvCu6jXO zk+lVO+TTK^L*L$HR7t2HHt5dH?@(WKciyDEi`Uwxh+0=lYW)1QTLw!xunYgzoY)I` zA3fheqw?qXZ8hJegn#X0-<2=E_9n8A)4x1&{ir|eR$M1aiN}Ug0+*6F`d`G=`GPDY zR9ZM5js9I_3%6`p zD1Jsuh%{)Da>n|Lz1z*f1f%~kbk=W8wqY24*#>On7~KO#Nq2}idIO}TySouk#L?Z| zjkJI?DBU3<0s<;+ph$=gMZRx;z>fX!9(#8`_j6t6nammoHa7(onlqcq`3-ra2HbraDoshACf995Lm^;g`PIm?PM{{GAqpdqWw?To zkik_qg#TIbv3E0H>xrs&Vd8x3anGw^tpMrpsqzmjKB{pXP461mBcj1Re7@r|Q@L0P68Cr5?wGr*N#h zxI{0Rf2~}x`a9!?Wn>_R>rVYcc4=j!y$sL=vTk_8)8RjWx$W-_GtgCp$u`2wbZ3>H zS*37@+*j+{rXtr=Ql~P)X3XhCvn^C@X1_|{rkW`7_LlHJOs@sk8b>nzOGoz_nf!_p zRN2f)I78~P`a`lsqtmJI{{hbaUNsgRcRmoy%Vtq&i~ur%*+iMXv}Fp8PhHYVa$P}A z;9?!&L`B$S@cZ#IZFOtSK~82-w+m#d^l|!&l|2i-op#P`-utFo zh54h_<6IdlTtNDiP({)yet9qnH6J6AZZP^II*rA3Rf^na4o9MMh&WM!&%`o`&}04R z97X!FR>=v&6tDW7PfqvTI96y#Wz%=&xz*X{cpmdln?*YKG|Vz0Mkruz{UjV!MpG;M z&-#Xh7$_vzp~i6MJ>ybii!sxhIpXP(0y$u&m-ZrIv+$~O6^Z?aF2pjUraJpo{Y;qw zR-NpP(^7j9JB`Gcu-u^;bhI^uj$8VAX53vj`!{D?(+D+kiTv#a32{A$%ss*aeLKsJd-#z<70!C5!;k|ispXPUnJCHdqST+C`t!BZQQRKT82!dSM?WK{~15qPJl*-*Wng&ZHwmMVy?LWY18dsaO8`tq{J@YqpYFZ)hTTsjbH1C^&w4 z2mB{iMtG@Q#gAt#<95K)BOFI!$OO}7@v^;S5Wz{*n7K!qQ`eiQ%@Q@}#6gqjH*em! z8jEMl#u7u19tR1r0Ez}L_m_#IFXh*T>;)sazc58rv7Rs;Z@&qWy3*0=wx(P2{EVV-+3EJ{J!@F`jN4OeO}Id+FK=G@#>gZ_y4K1^(@}jC z=6Tz2ZV65kDLAj$j616Up;0Biuu?|&$YRKD$MiLh@5>ma{u9X zyj|=z_O5=q&jLL>5MQ zGgFp{YxR~Hup8~LGsA}!DYs6Gb$Fnp%mo>BRv`=8a;*K8%ow19q^o7*BTpRTcKHgf z-QD(K%}Us1f(9luPVjy9r3_{GB1r)f`vH0Q;}gB8LMhyTRH>TWJqgIUWlVWLe5c}{ zGpHvj$Xi^BYhe{XgqC6QGG==Tx8j*ZeU@%{Uj5l?T()$sC=*!KWIYtCqUUjU-9gd7 zNYp}A#!@+|-u8uV1(24E-j z+})7o0oTE{v(|qATmM4)3?s7WC@wV*m(p}**|pQ*Q#ZrXTg#;1IH{KA(NC#S8H7Q@ zeFX?7_`5>Jb*AszdiKoX;a>!-b{9_6`xCTs7?zln)}jrI;IFAEk?iB7`H)qgor7ud zzB?EI`tU!X6A>b^axD@|QOQ=Ckcox|yWn)e`eW^3F;NeIOv?8v_F}n{u2ZKukpgU^ zRU|u?_NBA%#D!71n&jdm-fb|^MOG{*M&y&b^tNMygow;yqtfW6&!`zz%bM3Zzn3B1 zm~G!b!a~)dD+EMu#;dKD9vGp4qy1++V)Zg%vR<(XoQ_HmIEV{GTQXEbLp?h^eE2UA zE1wsBBSak!L>4rLl$>L?SkdR=nN9wV5+>Lk?MyUmeP#VuS@BV%JCjqAllhdmzx`$9u>0vClA1F=Jm7r{a zTM*;GC(eD`Ff|hCHm?>0q(R7t+TTK6Aba~(>$TY~FMXyXMKlDl;0%OhSLZF5jGmA1#0rWp zL|hSWMD%$pJ%tZ?mDL^GmsWYw|!=9cymnIN5>mbtir?pO#_=8oKl*r;;|xJU0%UdzN{=Ff4ZS_L2~ z_cFIayKEu|6oaW$epV}mJ zp0JVhY>0H(ptnA0rP$-9PA`9*$As51Cc#pZMtOo^e~azuPiUQHfHHC1TZO6b9n#x6 zF}SBpWmgZzzFuGnE|TVcf=Ms*>;9G1$!id;zuqLRfMhi6jv$+M4#PP^gnk>Hd*Dr0 zjIO*J{H2|Y2s?Zs)wk%lmHK&d6 zOI$n9F12^QYKmk67R)=VD+I7?vc_iLt2wPd-XX zoaIudY2q5RcO&WdK`B|0AcMWVm@*qpGo74FbrbP*f{~>3v6&15AOmLJv77$8?eao z?wah>DJ20yGDHOS=KNcz&x3}fOq!ARd(8G~$ENslDsq0Or|5J`6}dK{iZu6GMWS|2 zx7!_cn!Y751%ZoAA^Zr)RGDnZ-K0L}q8@%J%J9!LA6ngD*aU>-3UK8Q4df9r7(NN$)?( z>K?;ssr{&BDO(wPv-slg{ZJwK<;Pq;+Al)5u4|0V6K}(ua~&Q+6rJ=wy`ZA6Ege~> ze)&A(;H@&>LEvBK;MBUGjp<6!-Q_7h^^f^w$m)glGhLDD!LwF-p}|AUksWV7Ufkbf z`wW|2?`KI?8tT>74%h0tteM%~uocN7{=W6}V>ibCgzM=AO*f%3`zpNb@$a?P$9*6= z`1N5+`KA#{m(3mlwK$)8Qf#kmKV18GTDxzTZifPC;l3}`xRSl4!%p(*Su18??R1D- z`kacRm}cv5H8fkr0W$SPQ*CvDvaXL4qWin-Dd%P}!&Yr)NGv!ZIo1bLYP@Y}^u3?` zw{n2xU;cU(MJ0sVm)2WT8}ih)SAL4d0m34kOH<^Vh&y*3G}D-(nbq1bKk9!_x!Z+f zpscNK{T2_Adb#z>#*m!)sK-usF6w-#X*@^_ZiUd`R@EV&znQ}Ww4E2gExK&!%VThQ z+pS`Tp@(ThMKn2~W#qy$#6SoWKk>tOi88{61U+Hkrwb=ucMRE-$dLD5@K9;LGB7)2 zI`J&{P>1mm<{0WgFc-~BM=z@hCkp7u-=>E$4pA5ktfOifg)dd;D(Nd;c&HRg-~$#; z2>)zPk^TJnM=N(V8DHjinrURqXsIbe1m#1+Vi79BH||ksXheCxj4yo>-IcGIBaEgc z&2~r9#6vf$ctT`pfz^DDw6c#u(`gxJnpmxaOw>4UjdZ_k@()HvyTm=`W^(4!D`z;o zh$qiB$D}u?xiE>6T((d&&-%sfbeb!ZOdra*FK&GjX_rVor}dUmO1+C9-eEUDl^MK~ zze|@HJYh5tl+G~91G8-o0=hsDumkvr@~LFjIb~As(rK9Dh>ge%jQ1K9W6=xX%)qq zAL#y!apIkU1oGqwW!Vf=_Dnuxh~+QS-N;5Y-x{5c>xq6nWZ z+K*6?-Lc0yAMBf+l;<=wItH4Xd*S=k%M49xX-@Mx!i4vT?*h?Vjz_o^1XpgT@Ms3T z_WUyBrc$A_H=64GqaXU?Lu}$F8Ul)$wESv&fv(*}@xxAAV@P4oUdh+o4kQnFw5;Of z1iN5e$4t75l~*Lvt|bZ66k-d|BBg$i3?Gb#H>Qq2Os6K)gSA~i>YF%j08YdC&)?hG zWmZU8`S3yIw9JH{M0L2avT8}`m)$VK1(Mlw2&fuu?EJPk`P*pwL)aXN>5R-qEBOeW(h;yZb+-V0>oYqV@yARmEe)Fj zw3>%o1{9P|=4&D7bpw(-L;A9}Ad2H4Qxgqgw6z!6SbM8RWetm^Y}4D=%J}NfVv&Cg zNYXG+X?B+JwFcLhOo;B$!1~^O_Ii~@a;J1goIaox_dAr3PkAOHn+DQS@PRPzvNH)4_IWlARZgc znw6t+S>`5qXFY$t&)Kzk*7at%<6TeRJ26<&snVTiUK`)6&5ZP|saNjNSaa?Uzw*bg zrL^?HYqeya{fmzuOnPQxyVP_m*tDv}SZToXexsgY|HCKr{lP7SENe1Z-6AA;{jvKp zqp4XU%dWQXFE51_VnnLS;*I`ZxcAUk5mad2#lrd_0UnmhXcL-}_hl|TDw_WsPf*pR z5aabfJXyNo_0N_IvS!+bi8&-~CyKr#$EhGkGQaoDr3#_np~9_w_P*PEdt5Qv<6D+y zrQs2|`6Q5&dU9Y)ucjESdiP&_P_F&UcEM+Or+|aeXxIRSO~BFJZz?GDNOPGtZuBXc zqX3TwPw^-JypSEh@U({SYsJ)ihyG0w7`F(zD#jf`KF_wm&%(0z7}3}phyVNNZ}#(4 zC|mV0Hm0TAkFuI5KwM)gw0=jLvWL`NvEAq3Oh^|k>HLMQtub`+whz?GlW$A4D<3Kc zYIAQ7zdr%fe(QHuaKVk~d%w^sx)mN*NAC``MgutBSw2lqAERxnma{)$VWri_KEl** z{ZQs9LD& zCuR8c4wXG518V&g6-DCg=}SyyLVSPUZNK5|1U{0Jt0b;>&N(n`6tqDU4Ja{59QAq%~ z3ResY7a@hkGm4V~QNGZ0_dYBK_gzD>{Zxs@(tx#LR9LUB>5c|xg-p;E0kWdmsmVdfVD?~UO z<>`wmw~rE|yVc})rPsYj9@ZoZY_(i%dBgj)zPM-IjtQkU3}PEv=TlHZBT<_!Qh|43 zhbJIEz|fdE!ZJol9Z9PO`m&+OA>QY>OcADa2(`AwI!9IoQsAHz*u}78+f2c|EGKnq zt{Z1ajL%AL(2Y5da32+oa5POQ@I++Y676gqOP=JW+v8cvnW(BS)qC@SMmEK&w=mjA z6w>Fb18i#DC*O5hYg8}0?!mYu$(9o{$A>blH@mG$VmGVF z?kjT=TudG$TdC#-pko!jPYdk^P)ds&8(DvrE^&et4k4mUbJf~alC}_;18(ynSt%dt zzS5F7>ZGum_vFRLjZjmlF$TfQn%DjD9C99@t)xTly>S6cGX6q(l%rmA^$k>*6W*ul zxF*8Ln(4g>>PNm4A@e1rGba-p(^yw_R>+i%WA4rEw6foU4SP9W{`ke~M|Ytm(f8h; zLMkyd(_-*~$Rmcc2_<}XUgN+^vzKDhA;=u@dhvGp-@c*kp^B0zg?nQgW!QLfhGCe{ zlL3&mW`g9$XC}A!F#LUg-re#io2QV1wOeT|>ObJu2=BYy zQ8I$4Bu_u>j69dhj1ZZ*-M_s!B})M5OuT&sRLzLr$I}9F6ktGr=BkJFzdk`}&CEr}a#X@E3Si+Ab$2NW4ch(TEc!GxmGArt@D z+uEsT1~dMz5*d7v+pgbcx>C7qI?1zki$CM_ma6Pu*9&)BlMoe<4cWk*A7@-9f3K7opKHrRci4qY$Z&$qIIwW+DP|ap| z4{@73m_0JhXHa#fSySfTLX)TNW_p?8CQ0G;rdG7DiyzRYVLFpN+FA zeRzJ!KZRs9cU=)>wBb9}W@sh?DwDeK@!DBxDbpT+zCbLllyY6X@5a{%iEaAmmv~|8 zc=5{TC5^iTqkt?StqKA&%bAHyUbC;^?yB^qsN^iDXjocov)dhJ3J509rnj#$;4>>3 z0`Fg`I@9mFS}euYJfW~=Ukl8j@s6Wn>55M5(QSMCY&QxS=67aZ_5t}?R8^SgfwZH? z**a?i1tN8GvGy*Vb*)SjoOooI5+<)z9u`PkAS4cjjU}Fz!EIQfzmeAdaY`& ze{|scLn0gN+ZlHgtv|{{!3MTkyTYP+R>uTd09Eq*{W;(6tpLn9c!6?UA2F~qBUBh0 z94w_%-V^!K{8I%h^+bRAqjMDob7#^30mjl%a4uV6*Q;H;X&9ENE1Sj*=~fi=zA48v&wDy7(3=aif(z>>c!?j2U5o9#-QjSKkli+toy}>4z=>PKhTp9xdZTE) zR7V~7umk%+P)7%z7Q`paDb0 z$L%+)FaCbHKLjYe_^xhoSV}(IDTR$wjKm5Bg4Qa+nXzp7*dAKZ7 z;x$s$XVBuMsDZmvd<#cw{@zrcZo=@WQsY*usyhXxOwA{4N=EBJzR#%1(fy31lGqJR9o7gqeKY7X(P6gE)r4oCQ=7DZSZ=!Z)v_p%7T;aZ<9`rZ!vftCZ;Eed9H9J2gH{E;G3G!bH9xtWK2HEsLx|jQ@9Z7uv zV)kYa?5>%i@(uvAb4v4N4=~$3oyC+&99BB1Vo=;|b-n3Ta$J)3UU{X}P~xN35qkv8 zS7f;~>Rr52eD`aArH6&l$BAe{fZ?ls2(c7s7XgXVKa)ig7z@t1kd7X;Y^Pvx@0dk^ zoi>|X5hzhx1%qS!4aQNMzW)IPv3gM1PTJQ4`$$0*niO2%Rk}*H?ug`fr8*OQDH@h@ z>&>vZdv-031y{J7ydGgO>!?BjI^`OHvrijUVfx_rH!EpH_6vj9Px(R|I$!~eX%i~M z{^@R4{cTxuNq)Tc^zHB+9QK3ZKhyjjc5`vj6z3f>D~xv*CB6T3iwIqgY&R`Q;c0>- zV-SbM;Yc?ZnOyWN7lkSFCZSguv`txC8bs1>)b&cz0rbR4S0M&`X?10bqSF_gDI>7& zFk*6ofPDttQ#sDX`W+{--l>3Od&$EjLCF!ezQ9yto_bNT?U8)Y3^QBL*vFqQ4Vyz= zh0+K>`PAe3C~*uG@58G)gi4S(QY^ecyndcqLKr{oBJL`c$UA{Zp6Ix^C_h&}!@b-q zsrUSRR%zTV-tf*0-8$YRmU%iEnazBA0ZIY!&|)Ib5Uq3)XE zT*y~ZwQ*zQ*TK{5o+*^{#T$sD1#-Z_z?T;sTn%a<*ObGbFKUcxN#BALJ&|PV6 z6QuO&RJW~wcRdY&8CfWt%hvOB;j1km8%Yd2t#I;==Cs4Kxueknk}3qpEt%cptF&_x=$p+LmPwdbX*?MwpY_Opa&^aN&P=JgMqPyvxuza&?`Q{=s$dhBcnSKWKd!`&L-<@}NoIxO)@Z$0m-L6X&;gw4hn>oKB?; z%VhOCQcFGbZnC3#mC|2c?BPFExo}@zj;+x^)f38&Wv+Nr)AlsUlzTe@#fg~F#GD0Y zvsi@-(nX4;Bt>e(+-!)15Q%(w$)Big-}mLJmzs4px4YFN)Dofk@MfQR)arh;D5?b? zNR+AIBXAIcVrCC$S@5MyHU|(J;s=>iFGjlPsD8Ln$nrF(|Ev5etw*U9H7U~RB1uT^ zs!TN*#uB@M&1Zuq{FC&Ng^-vk_RZMll9*9Q=eP)=YAOK^M2^jnCItvDnG}MFH%Fqf zZJo6B;|6&H&u{F(N}Ky7sycvNaq5aeDQRw1R!-=jOg2^=+~G@kZjW^=+zHM8)I;`5 zOv?$q#t4ZH94%Roq9}~kE?s@L2bO~|f`BKF?|_~HZXtO z!c`PoyG$3}QZN&A;y=aUejPe_Z>aipLC7f5=O~s6U4aQ%^oX8~l0(Z@Gab_GJ?4xf z8&@>Gmm@S|v7VO(^l$yCd%h7nQ98m+yJ1ZO<-O94U)bX9V^;D97y;aMol6$KX6pC7 zNSG$&^GKz%j(ctee?A%9kIw_PR| zX&oY|-4t-r7ag0T0_}3PhBMD1i4>CyCN{}nVLcg_+|E&9dQBNlW z24ABZdIcV9X7I#71g|Fei1_>BZbGI%;XdH53ErnGyH<=$5=;tYA2GO%w`ZcVfRNWX zhA4gndSlChY|r9!glvtMCZ1E(&Di3=XGDG*eSZYkZ&Iht)_1l#%pF`TialHj*Cf6X4&`T)lu$_t*S2&ezEQ9MgYlS+O+iPl} zv1Fj>%$2$@18v!o=mq#3X^R>XKJv63&;f_{2I?6TOHS+V0Jrv}o*fBfEI3=* zCZ>AbYxSz?`wyV_eyy22%7xQ^TS4V70i{Em0X{C2k&l^?Is>ZG{{b`sg6Hoa)MJs} zT?&GN<8(E<+9jIts>8YXWMmWyq2Mx3YY~@a%IIhnh~8vOB+xKsUP<w*!E(eIPFP2D5eyHXbnVX02!Mmc%ElPYgOd*^AJ@ zUuTCGEjqAbtgvfZ20fat-*Jg7Mi(@4QJ+Jz*;XG%?p((fT=$&1rPTMj+Bu&J=|s+lL0b z0pTV5MjF)!$%m;-Bi=8*&VPwQ7jVCp0 zezVHIHCKop8&$GLiOhwKaS@fC46F_lUdxIP_zgKNL9=(13cs{`xopmazB&2DvUEWI z`o2dB@`fd-SNN;(mD;53{EN`l-`iRj$wxc!rB$C5F&X!ylE2D+`@0i-0sgYm71SK{ zW<+o<3B+hU^QP*DO$3L)oTvV>lWoJ7+Vwl7)TmIuu=k@(vlHs@cB(3OaiyPwZZ@*pl{>dtS;=0k;+iT-+oO6iM{gE>%18*SDD$RT36QszZG1(3QA;!hjC^MyCqWga&|av*s1SlOsb;VBzYe^M@wjp-wgVz00!Mcnxd<^HQxnE6NVV`lq@ zi(1+m6VLW=j@HoF=adx>jZTv#|6HC2u{Va9;S%lBaevbGXF{7{#3OFVLoK_9ZwenE z{#wj?&3JtDv*e_GD8yl3A@h|(VzUB7Ef;@aGW_UUWS2$)N=Nv(`I2<#R&Al1$ix9J z^6}ue;564~Q+w#hM@w4~ADwi4IP>pK453MVP+66KR?cSF8F&=+O!O`cg&154nRQ-A zeeRn3YvQ}Jpj3OI2)y*aRhw!L9yeEl)M-QKf_j%XEaT_@jV`%f~jCVGuhAMd{m3<*hyrMIT})8-6Yy8UyL zBfehVC3tCCvGV1{rjJi+?XO$?{wG$*ZyM`5uw~tbQY6hm$v_PVWRN_4E}8U|I?BDE{1=#FlcNfBDEs@**wS zM7o22bT>OW>ii>Oo233bv02Or2Vy?o1xT{`7pdJpxzp<<2Q^YrEUl~F)IjiTC$V*_vdVC!{JG!nmopKr;Eqg#ju2ass-%P>Rf2 zN-fX6-P~|AL(Wwe0Jns6IkP%r6;wQKmu|AAQEIemRwjWJqsbsdHf$1$Es$_?R+pb) zAfmapM<+QbNr$drW{&To3hfZ(D2m8gW8fz9sxpd+vfcEZgS{Nh0#w+N3T+S? z5X)6t8%TVWAwEicu#1C4?V2+&wWygqg^9!v;8R(U$fcg+GI(}PMz%e-yX{{YE%I(Gt^(19m`%~pZeAL}|3qn%?GiCQa4 zf6&r^{qbm<;2?Ovk?u?ejE7>bW?^!jtv(7Y+{cZIr6^*`+dKWufq3$#i}ynBx{;&9 zhK(E`)qR>8nA7ljCP8B)Z4+xX$q&*x(kM^Oo>L(iC@{kt7v=D4qMf<>jTdG?d{yJS z)m4Gp;a2$*b3F3q@ULrUXiHtZ8;pHwBuEk#VzlSl{Em}K!%6#d@o7!cPonBC_neGS z%!aBl)lI`_8g%j0SE}a}6uwmft?J3iv|MGro*aKnrDH+vWb1}U&0!sA4bP?Sr`o+l z(y$f*B5f1M?Yg6uW-B8&L;0qyr)Rf6iPlnQWdm!IAlTB2R@~0DE@a z^xe_dXCK)^5&I#(S=$u&>Yfzj3DSAf|Gt%{tzCkOxbW$B)5i~=_nx*fz6KAwPGMs7`m=JQHzO6}G@3}5=W*(JGl$6*9AY%jk=@}HJv_*Dyahu<$go(w#X zS^8Gi>+!DanVy$L#T&=3JYVe6{{yD)UYRA0gFf*82Q>O}h;f7sE;-5kd4ku!;v`R3 z=nDn+O|JcBz8HNrr_6O4`Ff-DyI}E?Z*9XI@&}Kfx_;jhef`e{uN1QUGqJ_@mq63R zdhNu;;zg@RUGUm!qd6z-e}M9S*f-+y6yGD-lp3_zp-PNovd|$R;|1lJW;BR)9K!9{ST8;6P?32$SR znGZ7+01m-Zp(nEyRlissy@(^^@Ae-*+iN}|r;gvz>7k&Tu?E{@$dJ&v&6UMI)#z4oVi za&g@?j=o`?Rp@1j^=nk@DZH8Vzx(s&-RP?9!yj<0ewD zTtR^;I*gX~+ZkeVJbDyh?gZ*s)d#u#qQuH}i-o;E8}n7%K&5bv+EmI6kq_{hZStsx zL5Pwg5Zmp`E>^Vc76>aGuP><17oz@RXP?RIX>XE_sCx!w!_h~^uiRT$6?xT@x>8@x z@f)jFu4te=TEW2@O>$Tjeze$Oyt^&RSwLQrx5;<}R{4WvB(SYY*qw<&p5@WHE8U=6 z2wULoNy4S8;}^(ggLbRW;~(FGY#wsvFMBgmNCos&i{6S*98}G`N|eFdrT3@X8ty`@ z=AhU5G+u145O8&BXydh(NNL+V#h?mvD7W^Z3m`(W@BYE5Vy`a{4IW=w>??EK zJoj=X0@JP3nN+p7v3uGF-m5=x+EW^u2^>t8v&us0OOuF>L%N4)1J0e!<@e}aTmm5kp0(HJW5leVX)gOTp#Msn51R$ zE$8z&fd2r-5$?4m35a#!p%LW=+BrCHuC_@e$C&=^`>TGP-h#X+p2BF#X^6!990{A3 ze7PWK*Zs@}nh9T7{vJ5Wx1|kxe#%K1vUg&f_iOhUWRFVrxEoTBiQD*UpVY%b6-je!>Dq8ug z{osK&9vbA`T|}~_W+|sTzCMhWkWN^{WV-1SLo|7|i!~{4Y!L$^FJViEU zE<`w;J)!tm*7jg~SsbY(Byg-NH&kghSD`lf5Py7cULevdJs)qO)F}d~R4|Br*LM7^ zb2n_@bRL}l9fVv0!~`!&C7b1pJO538Ogr)A{UAm_#-Q11-+OX(JQL*2jE#BFF+b(5 z@N$2Nrz~^IIa`WEUz+}YZ}c-?UJ z4w9^&zN18L4eiZe2GZ>qLJkLWb7uf;?WVfHyVLtNLX(h9kxxfm=ftv|kXb3;_#-u_ z<1!&IO@JX%OAJs}QIjV;7;05Tc!ZU5$Hmax0?2@8&1h&o5tU6mYNnWz7 zS%js?YV{NGE?btw>x~mS;hlsAgJ;M=paesNQ$?}?Se#eilXMi#0)-H^n>;*8yg*D` zL^#HSQF7sZ2ruHgfb(up$sYc9Ifi>g1aw%b^itFeL6ou-n8*7ODxyxFR!2i})av+| zI51y9GZoHj`!SY7lJ8uJtKAo6sh+X8N5MxtrX~0kUoLRnvppiU%LSAzK$WgXN6i3? zb5x$$pEu7QVR6qFW>z$E#7+nn#O`2X;X zbslReFmm`&))ECmh2mcCIprd>xS-Lv)^Ys3R_$G%7Aa&=X>NET5qHEbMP=IE)_+3f zBTj|*A>E2gxv=VR{abp)ug(&c9SbBfrv*`)uVS6Yuh+6g%`8`3z9UL2?zxnQ@`uz4 z5p`Ml$&5igb}#b$naOl`3>VKBw|r^=U)kI?dsOS`FjG#niKNC`D`f$sMu+EN54C_m zNsQ9S`*2rhZM}+U1Ge#!Nq=JYD{VC4a`k8cl0YZjnz0!)ymsTSI_@57<9DPqYN-I< zutY0d*B`4A#{_hxjlIb~GMHh=v_=L3JqoeJ95gmVqO!2(g;tC1G&35@&<9Z=YZvB3 zD6X5PT_e0-ff)=pfT-x{q=@EhJCy?dU-{}kbVAax>6#)?Uf`!w) zT62=wsFNM{d}XtVUm|8f2O2BBTqNIJsebYVg~W3V55-I$f|d-Xk^Ey|Q7pJH@C2R| z=mj^H9i|z~r>rO_qGfswaAWy%KrnBNKTABUYstI)CvB)r$qjqh= z*Ab=mG>+YPnQJP4{`>5-H)p)#5HQ`N&V4M@XJN~Et+PkETluyZ&S9ty1GCMd5ES&v%=fC({eh=5F;Lax2LBGRCNa#5WO zl-BiNL@IC@)a~dI0jv`JStfa2f1*lhvCN%jE|^$(=kI2k7qPe*Nzd1hlOXp2nNm2) z;3t7G;fdPMl&U5s@&Rsb?zo|gS7A+gBlqcbH2%u4*h{m6E#H_um?WztP&rr7l=fZ$ zA}yY^#pn@Jl9VdFN~A%n`YMTupEObBS2bUZy%&wNjicug@Hxvex|x`AmDo!I;pt#c z#vOCnqG8}EgRAQ@q64DL*MdF5Nup6@0Sj$sC}b-%onjs|2?w_P@}7;^km zXOa$C2CVRVz!AxhKhY}Ue|3r6XSf?D`bP~P_(1l5R?wyUB)+lM2qCFvakQ8MF04Et z*`gG1Z&JbPklFXTTJg>$zvWSBDB5RVnJk<~AH5Wy4Z+d1^>5lA##v_*_Sh>83sCT{X7?`FvrfH3SloOVpB_EKNkq_g`hskJc&m~tL6kOzh|4GaReM) ziJl^otVaPoT6tc4!oNfuRc@(@r_+Q5quuadl>e~kzN&x9Y<~&))c$Q;imxR6qsRpV z1!Cq5F$4h6SYNz~{p*A|IrCeAe4(7EPHoujMtQ8gckZ3X7m z$tj^=;>Yu-8Df<*vCy%2lv>y|V%no}7$@^;bSVCHuE@iweWHFJp5$SmfOH~Om0^3< z3@wLIyZK`j5SG*0n2^bZ%R*gXHhPn1>qe}uZ|!}+hTCVYGQW~*16fU~8HY+Ny_2^^ zKhM#bZ9h{Zd14@cw?s(br_p~v@xeG8_S!ufB1V?- zfcv=eKvVlFTb8PEf@Fg?FjGZ6EV;}!_B&iqzJf*TmZ5N)g*Weiz{z!ou~c2%Rn&PbQy2-8OXroHVfKDMZz z=K4fnenk@}TYeC)sGHP3;NyVb2A0pzeV-ZbRoVOHv?%6nhv!1yM5g*cb$h;u?zcRL z%WemkR+=aKUAL%Hiu=3SHF_3kR%OX$rw12J{QI|PobYf~5}9bpw9c-at2L3Hg-c>F z&Pa&i6gRo5YNl0O)hyW~f62@qqh5Ld-grT4)LaucwgO$wi~3=V9oy}s;$h8d>svT@ zaXcJ%y6?u%vH#oH^1TI{P!o9s={VecTz<>;-DeZUpEs<#W7AlnuQQQv#YV50(r(J= zGKL%nzu^_c_{8seljgkinyuq#_Ug*NOSPLtMX~Gn-C#-OXIqK9DpjBhcKk$o?4t4X zhK>RV-o9g3{Z>lq{_f^T+D05aep&W|MzB_l@eXhAg=f+~0e7nBnGxqe)p+Nb_fmse z6zO6YIF{tu=>Clp_v@Pt**P6fBWadb8S`E|^?LZj$3H*tmClx;hYVzZ0w^7?zIsOs zyWqD0;EYL%TQ6JEA|^0P@>b{t+z>4l)O)|-U-Gvml5g@UmXX{+33n1m*nO4S<7=O+%XrO7c&<~jyYK0ufxw2AfIc9h2v!9wCU@gLt@?LkN(A^dN zRDsGhX0yt0@|YYiJmomcfXWfJU{1ahn4_*CC{DHxzhz=EXP3Ud%wNWpI~z`;Gc6`t z=nB(_R)~e3Rw#v3uye9t$$gD@Owh<|WM+g7v_>``{Lx)@8#XW=&$|U8hHz6bpP3{~@P`VK>@m+8V6&wv0h%^JQjJIPJG_!U%-qyQEDnYJ?G#GS$c~q= zvDt-C++8C_Rf4-na)VSCe%|@|ZR*%NEZ#5aL8Yp2SfD{ZVquel^2{PNB{yb&Mt0_m zjhk(jaVi!^om9Z^Iey<~sKHeQt%(gPGfX-yX0$ClVg&hc7$p683)o&NOJyxcCV}tP zI=_;f6YO!VkQ53y_N3m<=_pcuvF5_{-Xw)vJtTCdnOP8T-7p_2YCQ@Co?wY*MMRn&L`Wdp z9F6&n_8~X+uVYD#l23iQKvY_)L6U0!1eopPq}MKZYPm^QN3+p7O|x|=f!2O;_JBI= z>uJe{MZ%UOMbgA$!2cYbg;$gB|A(KAF-DJW7>q9IP^1LuR2p=Yl$(SSiZHryG)RYp z3L-f|a?%Zgz-X8P9}%!X5x@KW{($W~=RD83&wbzT>-D-cUY9bK-fGwZOLmV4!K8E+ zZ#`X!xkAIST#J0^um8f!`D?XDYM~vWl;-oY4%0)fr=y%9vN^N_N64!T`K;=i>B!=< zZe|mlr5?HFxeC?O#8kBzP{_v`xzvD^7b#j)=gVVdfRoqeB{gjzMucU1g=ANz{Wp{aNQP6IB6;>3zlM0WmY1do8R2d0s#@p;coe zBs@dj_CUSlS=Qn{KJCNvHf5`Rs(ECF$ppB$c*xSct6!`YWg&RVkeiQ&H}=f$i}MLt zQ_+P`m9OU>sSl;?!Hy#2(g6I07#08pkE9FsiDs`w;4*PpqZhC`-&crE~Xvg-FW<`MEvz*?Vz+F96@Ij>qW2 z!)F9x#UBf5Q~K7oxj58{+oklYv&m;v-b4^PCxz4vDnh0OSyCf{!15`1Ril&yE@6NR8l> zx5^3bO=4$}qm;@*reTNHJDElue&rF`J{$FxE;G?tf(Bm8Xe*AW29H#?>-%gxo58vy z7M0gm+CvJed9UFDwKW~hlf`Hc@gYFB2uF0#C(cVr_JGIC1E0e?f3fA3?el`(w{jsl zEvd}kmW|gBcL6?El>&Q{zL=a@KZZZMEzm3Zf+#Va$jkXmJ9lDHPBoT!^Te!?6#l2^ zK-b_<_ehhWOt5+F=bcH=0Fb$}@hVPH!bWY;LJ?R!&!p0$P;CA)^P$Rw8gW!(`s*Mh z)y?=M)Ud)tSi-$|gt~OY*eQ^di~34@FiR2$E#$|l=2N_y=wkK*KL3>nId zKKr_k2S{IGc+`I>^=2y!E1qU@pme7zy;Un=vmdcT+n_flH$Tu4?$FXuerjtp6?Z74sX$X&4F^v;Dd?alEIRH&&m*Bv4L{+Ux_Qpk0N8D$6_+-Xi@ z?_1L1NOqX1=#QQ@FZ`@hiLQNjlYewdqjrrza*#C&;_GwxzFuyf9*wx2YP8Yop4Mr- zaZe%PW{YI-xRCKHW<4_LJhOc@jK4+mimCU{smY69E0wlN1yhr6tIZik4=5<`IYRBs zGw$55z&&)SF)uAKc*At-OKr|!qFTmFfpyiDYAVw~!aFYyu%Bhyk=F90%*D0x`2H1B zl&+Sw@`tk`x~?iCotix9*M8q>S<3nL@VcH1W6h&Efl`sI@?!&X6M>s94>kV*_axM8 zpV7JIduP0wH@KL4mMn?HrQ3TsP*vPh`DpWII}Qe>c%aZXzV@|&(pQ0rT@vk;e?wYp z!87+}RsM}JsnU2Y+p^8Jsg%#Tt>yxpZ-w@?c~udqhr8?x-I`SLLNnO)&FG7DvF!}b zi}%(dOis){@2X;GsO5CD1#}Z)#hwR|R}GogZ*ZMu#EU5|{re7Q7`Z|;0zSoigW(<= z5w*N@y9pV;(5 zqAEGb+o^a)1us1?0%c~fg?~aD=$aY-aa=mntS|T>xu|A%&s+!Fz0lU*sja;N{ec?a zwM!UIq|KKwavyL-@kL(wn^<)g!3+LE3jY|WN3VKs0cxI6ua%u?;ecQdbCVea<70_$2BQ<7fWP^-8G&hs z<)O|(+GM|DD8JBf@a>q61g@7ZCtx@fqd*5wVepTCe_e8dGo8wgX9uL0g3;*D5&<{T zu>jQm3uG9u zffnxR%nZj3b`hw_x6zp})2Hmzdam!`Aq>dQnGAa%Fdv|5+lvpbK8s*>6xZkk(G_sR zq??43>Q;wQtfDiqu|~pfdYpYv^gL@Aqnt+`^=Oos*f4b?npe>wcqe z<~6x4m76}^oNpoj3?KRO&!0d|gSK$T`kLcq#}f74#)~@=!kI>5!nqd3GDC6Pe;!s+ zeCoFt+?KR54Sn*SlWnHD<*}tuta1y1a%tbhKACkfxwrqqWzl8QM};V-$9KSrdA*Qh z%nwrQ)H3`Br2GR;MFa*~eGP07IJi(aKD|!3BXBAI4;a(X6lzb#hiqLIcK-t`+=A+#wljZuINf^pd2qvU>wm4kp7^TX z?KOy5D0OID{qN`ZulI?6O34v`{IjOey!+~X$mgpu!k1|C{uLvY3gFT31DbWG{BGa~ z2A`H|31S(UlBEuE1t(!do|(yh63bTbpc18=t=mJbR7bL%fafUlz{YytvdVO2NL18B z*W~l1;E2-ZYUb*qo|5@j*-aZ0qsB9^TVwWylMR~>EQ&RvA!-^NV@4j!6NbEfLc&ey zv4{5=ECCk|f14M~AnjEj^Q{0_KD!#;$p@i>dmnURvq$d#bk>n&7Md}F9^G3}IqgSC z$nBdHsa-11_eCb1HBW4Z>$!wr_o4fE_iSzE=$kJ>7+@N&uJALn#b%A^V{y29GqXW6 zp^N2b!BM=`^N=qA`k4$XYFF0}H#bIP@GIzr!lMYDX?YG>e~NH|qYd@DE_kJk&)<$- zhIw>uU*{$W2Blxb$*z19Y3k#wJnPDb^a7-jW5>Iya-dUrx&wzT=6a2RSrh`tK+`tw zFS}|+$c5t(w>x?7#(VGwN7{+wDEp!fVtF#dyXOpN8m9!bw4|Iq>%}}s_=|p<%hxm` zsOTR-ccsEyqLL9l?@LIcblPYTQ#xm7t|qH>6(NTM;r@mz0ug-Ax}-(3)Z$hWJN|w z7Z`sx(umI;<5RPI_UtGo9CS`U^Yy=&zzD__rrGVB1+QRQa7KC+7JCe=DM==!*+U9@ zC(f4Go2y|NbhI7X_cpa;s<#!WRZ*Yc-yP$&|Kn%Jvi{)W> zp@F>a*5l@5EPED%KAt^#@B3|qgTT6RtveRV8H-91d6c%S6(DbMbCvb|4jY+#sF6y|P`Q7zERpBriV@pce1ft&>t6%MT(rP*-x9%Rhcx9=#)P2hlzS|A!CEyXD1wmpyvDx!o3Y1=+IDiTdJ&^ zPSVJyuH-~H$|dLbHMu%g0jlx=ey%>;ScwxY3N!(SehaS`FI>2$%S$AbGSNBjHkM1q zFKm4puX_=>aE5LS8L8?uLa|z&F6;l>cF!B{-g2goazl(mx5($WI-G% zaI6K3*=sMtv1T-oH`q=e6TV^6T_PP1t%UST7DGDa^7abPV|kIRsXit zu#PC(6}Y(bjlO{US!0v6>2!ch#*;P;RY&!N>@Bbd_kP=q=pX%}gh78{r$>b5`++!1ai&Zs+nMy*!8;5m^HN2<47$?&DyNw+ z^77q-26*02d=x#50GyY5Y7|O{f2)4zZGf}9I3M|w9YbzHn4p4|Y7MU5XY9OWlj-1E}k9Ncm+H>{$ zo2a!}Cbxwkg)N<`3@2zp%$8n!5}wwc#Mw3%DVgAnEU@`+t5Bzt5CtieZ6&aK#3J?s z?rAG&UWw|}EMvepMJWnN=5o0_^9G(nc`lKcNZrX)Ok#eWV49dS>9$ZoeYIhLC(639E5r9XPn~} z#Ha1x!a!Y`!TQEAb=wRDXS;#FgjrRa zi|V$5Oy{>P-EFkwtPfu1Hh}4z5s?3gJmGahga3rdbQIcCPG3 z*xk3u&&8`v-^BU8w;*QhqgS>wZCn0EpoU37qhW|*x~n(0=s&=|UFEdKh1dN0Mj|yG z8Lku?0)qiaAa*M%KrMN6vd82{p8e@Jb@W*#dU0#3MGDk36J?t+tpb8%7FRFW*ZNCD~Lpaa}LwiJI&Y@nlVI;O?lf3{SlMCxcgr-2&20b#yJ^IC&sU+KTDmLW1L?W{H@pqv*TL}Ru zxQU-hqL6?*5V)T6e)T!i2XnQ+{ps8We$|0%AX0E)5+dCR)1IH1`i#)=`MyXg?3O^% z8M92=VaN1tS9W})LJK^K9czn*^pPgDn7@+qv2L{BBR3Gx;I~`hPKa)skEgfG+?qTK zk+tCN%CvCqS0{bcI@#nYJa)TUst|5-`e} z@UQ9Js(<&9erz#Z=yQ*HTAni&=4?4x@!3=9tTefE3%$fhy(gTdKn)%Ea))DDK70^X zn%XpTrA11gh_{Ufgh&pm`;$OQP0p&$EwrA?^tB&9+cSO$9FGHSho1d=SDr6LZ3A0E z01QL_6sG(w^2BLa`Cu!esIO7oJ^R0oXaE2fTEAD>z5Up``7Gtj;pOAPsq3j^RUh>C z09JWd_j>36mMsS^fu+w?DE(p|U{SMLTOQK0V7B7(Rr8U}TSO!cX#VHrH|?mJMQnT9 zbt!=eQjG+tX}{8ozG#jpwsB$~Rdr+$uz%p^69i)KRlSj$=q1ofE=m%Le@nG4VOUMI zv5uqgeo@`K-ur>VGX8~Va(zHWbnIM)Q!e&pHjrVTJg@?pSBQ_Qkg5N={v8l)>};)0 zdc{Ryy&|5W_uNpPRlJjGwF1Oe?8^p9tndz;u_@!Yxup$qJjlh#mF;^cr)NNIa$Fs3 zK#jI{Y>Fu!nY1Hhn_kP7PwM3>y!NA!ZJ?ty6~9WbK`kbuBy`GruR5V5o65|1e0S;e zy)JB(qiWyjL{(re>(Hz^^-5JB%g!XW9G?JBdX$uwZ!0RkKCJ8zWD6{=X|L*7aokP} zjH+kV{!u3WyiBr@)#r6vtFglMTpydQ<(l5dw#{+hUM&yoe|=L~VZi;8ie`FGJfd|@ zIxOhFzgI6_`QuS((WOuSCLguO02P77gCG6@5;*1bI)3FxeMM5VL@K^tm$we>ROGud z-*TQH(|~6=7;WpN%Pudg^ygodmxgF(v;_;WosA13i)}g2m|r$9usxHDT$HZ_n?JPn zk!^8IW%DV9G_jl9ci^s6oUu?$q{GULTwCk9j~$qzm)T$}ql|{h`#0`72`j)hT#CJS zH1vC8vm4{f_>w2h6=V&Xlp;;i2JJ%;|YCb@Gujn(I+YPsxUGt|Tx>AW9QTN1;J{yk41JGNpOlX1;vf}tmNah%8-p<-8Du_^K$<&w0V?Y~q zoVLVII46*v>^5{`JmE*3jhKZ;kE zj>yzQDP3yI-`tvS5vEme(9?blf&#T^4_UUgXIMdkhnWpShL$H4w?W)#q{UB8Edg`9 zhGxU9(TVo$@5OVWZ*I>hUbWO-2?QW*;dlQ~GddIYB-7YXL2|b|GZpv|2ZBdC^$-2= zGjG%2eLze>5CmCS`C#xmEd@djB!Qf8h4aS<)exE0R$QgTNOLVfl1j}dA2#~aa0`;axYLi4w@WlJM6ZHc3N?EJ=tJ9jl~ z!+09IrHtfIit60`j^`RPyvP8(zk?KPPQ&6?M<6llvX{W}k{TY(^J^m_rfn|qULNbM ztsX8R!>rVjLmwM+M#^2Iv^?)Pq?wezg^%TR9q~`qIS1idgPZIVS2iH-&_^#braE_+ zB6zmGUG>TL57v_WsmZgo^Zu>JufrczXOZ#J#-*sRhxu>x`~`tO3|;)qNCvZz>Z}jw z;7p6H*I^4+D)jj7O!OxoZTTyi3Ua&ak`$LFtivUiVC3!7h{xBmWw%;OMPab+JUGPO zW%K2K&!8_0J&xF$Ag`XvM7aDe6*1r=+&*ACaw2HIT# z%Ko^^G3T#}F1&YDpftkL55+p%Dje7{c3d*AskW_z!~pt?ab4EWVi5r7Q$^P6>#qXv zb4UUwm-Q*NWuP|Vt1>dcS{RCHAAoo`I;iKH$7i-s>QW6<5k0S~m}Bnh7>7c5s<#t$ zAH=?;F8Z9>3jLa-fGVN~^Z43#6dHe4 z6fdhNxd9)iRH64%$;{UL z@r=ckhg>Vq6u=B0&{=DS&mfB$oXUDUjP!PgJZRf<0%5oA4nrzH!Mj(MvYYFqzUdnK zKkV^Rh1If0XS5KpBvam^U9fW^%=T^;cqqqm~gsr1V$tft-jMpNQM6R>Hl{Dr5`nAP&4=Z0cU_GX!FA1~yykP>`V4 z$mi{s>XJHGm^4Bb9lY*K~cBg|j(x zS^EL#z=`w36<(94cgp|8ai!3U?MebzCSa^VT!U2sk~gNBZ7w*a-oVvLRYpQ!sf!1t z=`eAFK;1YtFI-i1kG6nsnRDuMEL&|_QbQq(thQzf1p8B%HI0Z*%f@%$IoA9U`6Tf6 z%;WS2)R2m7=9Vd5F>izbwP+B<03C@%?6!IeIbQm@VD|ksuV<473POwpMNx^hoOSbC zVxfkuhLmUBvO!yxK`YL(aPfBqwx?%_+%UaLU+ccC+ntNmn;;~!mXe%cW^tuA+dV5G z`r~dl^;N3o90;(w$TOZg#jP;(qu3X`H{P%AQB&0GF7BZSC>vfqoJR6*gRfw6rXLbnzm!I9^3T zu`{4mre+Xla-QTBIT026WYMFlo$LcpoGQs|mQQ-!jvf*y_zYUJF4Vy;8`XI&Q6Ann z`H1-S@!eydjH#8|c3$?XJV^@aHMhMyd-lFRx;qr=I+z{uRQbar{{jM2kNL1R{6LJg z+i&DlzMS^as_qT-I(68HhJs+?1|I`^YPC|itH77Mnz6_X?Yz=4!}LPJe%X5B_UF5@ zF#%Vw0a@_7y>U2}aG7_i)Yfszpd%W+g1 zT)C>f-kM|`6TtBB3(Klh+nUcM_vK%~XXf8)V(;GhkL%aodSRT;jOX{X7PV62F$cM0 znf~T^kxvsph&QF06MVu)zWdQUMYJlm2HMYn#;?n_z3@XCzkyovRCpHow0)RG#u?NM zw7`>0U=vRk_V>t?D_6|ej)csj>#py$CHlo5YGxEa5a}hYt9=*T~39eON$~Pi$b}rVF19ml!qq7RcfC;EKN4STFHapF5JW)@W^h>i8fKMGY5Yu(|Qg+`2Bp6H%$jH-G(Zc{Lo7DoO5@J$`9-bv^RLz#EqSMGQqmtk^?c<%KR(*9S4PJ_&gd-w$Nge?Hl`)dh1inc zRhoEz=Y?`9Jkl^BGhZ0l?#{a852ve~jAxt^{4tenR+;Z8SgPA&QvUQX+<+nvSuP#< zr94nGbKv#+*gF2h0bhow3e)nn{vYoxVuszd(R|580;^r(oyTX|*>KweP)-*2J4W-` z`M6`!jXt#xds)ROVI}4IdFG5EwD4PrqA9s2eHPN4AGhn{68BqJSd?& zD`GCkd@_~ciBXj|ZfkZ_njnpe+5_w?YM=Z_{qcC=EHyrvS>M^=gEWUG31gp$<(B2Q7^*TxXtn>`>btR4KEf(;De8Fg%k9^EPO3+YoXBW)@OvX#3$RAHi+>v_9V0^go=13`(r`U9jB`RW~o=lJ((en9{V zk0=Q+8g9j*PmvgRNn4bu2=4ZZ zFXeG6H=Ny!SCYuM&+IU_;005ev1;E^lmL75iHW57U*n@x{sp0?6QK2=hJX}QV+U7M zjsnstLyHi%O!7szD@OV$KwJ5bq|`DE#mC!-*;M|N1FqksX%4n7WU7iFw~^(Xb2?Ys z&h-QR&tAE|vhtaY4JP^uP8{g%?w@HTP|}%x){9@(js|mg<oR7lPbX`6Srs9&-v55Kd$Lpyq5Hn3QRb!%2}+u!QG1MYn0F^3BFi(_QY-Dj*@Q zGwsm?R;-Y1z9qNUbYpF5YvI)gXK1vP2X=l?blZq8+gws0-nzhtrRO)GEH`aseRfA= zFCrs-?RDa#gVu0H>uT_ zL%W5pz+PijAlvhhi9*W+kpxXf@yA$~3c8||eyUJkQ)UTrtOfo+P%cWHN>WB%&i|>r z<2|9DeP=b=w$R2m?1v$0WMvVz`M4~WsX z{$?v$r4CX8Dr8^3By;D&Xx#(i2MoB@s%25BA2-%mA5gZRp)1>P_w?@G{jGGrBlgvW zni~(>JFZBz%!y2R@G{y^vv$V#IDKT=60Z zy%M>*8cCz|w^TpR?%=WP(uqsSkWb~g&F9vUKmY$%l6Rl9N1p||7yc;OIAFZ_IQdM- z&+^Uu6EU}sKaEvYl&YGye|JygR)3~duh$>TiDV2UU!<(87ej-RqTX_!>ioxSo} zQe(o!4eqGC-(}#r8tmJyvT*e-w1Pa4|6Aj^BEJ4{;pN@m9S)|)b0Yp4i+$k3Ff@CA zSD|o@3eWQlTy&I^8f7M0=m_Ja-|y_?lf%IjK;k8qA$<_E0eIa*bqCm*Ki&~g6*6T~ z>9Le$HXGQNzTJb255oeqvLI(!NGx`54=IAsl4sD**)FmDzDoZz$bJW_*3EogPZFl^ z4~|0j2py$6xm>h6$_VW&QmS5`1czY+Kk}t!Fy>W71tOd#j1gAb{zjs!$r^n`+0G9L zMG2QJq0Pw}ZOXm7(Zlj$i5JdIU|}MxOC&C+muQTQDy<&Q!G z2I68?0c{SV+x@~T?+Ha$c{KrH3Lj=na48eJ)1wCUM|R-;5zvPomdysYKXFABtNM9` z4dA5!U*}90Vh^)(lSv6kmimMxP^`}=-I}stHFhPjf8fMH=`cm??8h*5(U<4>A7yuG zbMo<%)oTsXPTTA&7RqHA-iA%*6WITQi`AE3MFp>J&q#4XDziQZnCKqq6Zqi`96_N8 z;xd7a26C2Rv3br!Sw?kyVHEQH1P{P)Q^ub9w0^Q|JFfb*Q`_T{pA+x8eIRRrEh+SU zK`#D#`20c)A{v8tIk%92JL3oDLsS!KF<9BQk2IS}j+sUV`B{R=-(|_vdt^S#xi))X zbOS_yZD19H;>l2nE>Qjy5CMn4+`g&OcHhsv-^zb0G{(=HO=GG;-OBnw(c{NKzoAnw z@f8yU@d)|+EAw8LbJZ;pejRQXKGb-;4LD3^-?57?GA$4 zgEp?s@m3R|R|2!ISUjPLOv8j3q_R4sJ2fcCiu0o))dhiuyxVKa>Ye*Bt(RF_@gi|U zQ*P7OU#{L)b$aNc@o4}>Z3qK;=>yVfTbw4x(6>?=m@!>?2?;o6VeZI;O)a+BNI8uq z`zz#Run5S9U)Cl>HBLv_BJr#XlcGQLQ%BWhtE+%w1jfOWAU)ZeqXd-Su6e*QKs>QO zAv}l^TIb|#4+1}E&o9Cn3T?}@6zr+s!s6+xrp_=3GB$%>9nEUwzlqsT#j190v}wCHMFH5`9RWNM)pqiq4!DhW||XWbxj z1+x0!a7puar^U%@ozcB$?arBKVMf^GbA3W>rU7(rvf?YO#q4L5ojg=)*_{AH3B8K! z7a4yb50R?Jd~yZz=P9AGEgS_BCd}HilOzuv*hjI{Dup^82{IKfwC~LA!-nIvy2um_ zW9TkPm2CVAHRr*@O@rimKfIx5A{=L8P`g1cVJuO8=o?wv`q1hhxit)Pgm{e{)9hm=-y)aIc0Q(BEop*x-9&&QE1W2!OHspQH6+ zM}iB(^&{SfB2v2V$k}8m3#6hD)SYvDguu5GHf^zS6Y1_j@6tEFhu`J=CK#lLlw^K(6|=Bo8cej*HY-Y!cj;# zYkYth!z*xgZlOknbII9UdH=uKu|%zSI^1~_<~Ri+71zUd|I&>yiNYJgts_~kzo1zZ zk@fnRpHX3I8fC1> z%I=qvTfem&NJ7G^e#dJxr2Z~B-m5w|f0nh|J=OjI>agJstc%O{v707-8XqB6GQR98W%UHOvr7tttN3YP&U-3A%0B z`m@lgbM=8L)wrK3Pc!=0E-r2{iLx+8dr6fyD9Cw^HySOp7!b0@K|4nN-uG1LGJOlp zY|?qr;hhIdS0kiS$+IU6N}^|H!Y-E8m;(;}2Ur6_m3{vJft}-cX?#(P=DjMpSKp4`}tRbV47rkGV#_!CiK7^xiid17G_q$^$Bp1lx~i3ubq z)L-~SwhKIY?lI;TET= zDHV11%RsUVtK{*IPdm$ADSu1l0GEHj{x@jY@b7HO?(UIM$sL>RaFH@uk;PsXm1e(P z=qh|KE|jhjo)d^n3z(a+Doo;F0l-czQoWX7Gzu=+OXW&_%C?8FyMr(nAF)%M`Cbgj zhQ6g5{lWD2Fz4^g&66-RRjxK80o0hQ-{%Zdg&OT?y^a-1`v)+ua(^!Nh*G28n#smL`%Tjl?b_HSd*d_@rjC7$cZzq8u=O3Uq1IOnhQh%eiT_zgL0t>qlIBiuq zwlX1a$DB_0(hsugs^5QU?eKaH_2_84U}oD5eW>UkhR>Cyk|k^Q7>~mRr#4FrJDSJB zRD_M_npRS@88`0yc;mVJ4=6u<`mUxmr=N2!Mt_!K{_fME?w1-6SMJG{jV1)0TF>Oi}j_&LYu@74V~FfSQl4sR`$_g zD(Ky{lN$?e_>@Umv4-m;yn7`Hu?07yTpgq9of@fMOHnwM0TqWXy0dmX*#k-SXs|>9 z-J$J6qe_6)##3jWmxfKp3U7H^PkCV=+r@r9OX8IkxK$X!=i|cc&EqSsJ&@+-clC`X zM7cGwUguFQ-P1pphunz8mJj0euJ+Fd8ng!*D?VSv4m?w)>HFY|p}SJ)UnX0jZ;(W1 zMxo8^ZU+Erp#tU>O}Xih8k8TJohzFScR%B_CVeV1~_Ux99A$*)!eXT!7Q}`5Me?NmXIx|K1@aNLiL`pfoE@l?Hz@HG^QJ^B1`IfI!C(F zJyr^j?%&AeuNdZX-9E|CMP>Lo0HVV1pIQEjwwo~x5P-_LKz$yeU!TzPwZ^Fcqz_^&E`&1p)0CVEcmQZkPR8v{nSxM-9~ zMcby9;UHMqh0&TVf3v6lg%xT0?ubhGl4t6Fn0t}V9DyFMbxZt4~ z7ZaTuNDVlvFVjSV4&t4zbOFRmC1yBT8{HVWz`ZSNMEzBBX$47nA%)UNzs!}H#Z zkA^cdd9rbm5~!3C;$;STuq+<9@vG?$o=mNJ%lHvqlYZD|BjF(s=rw2YSPrWiS}|6Z zqFR_DLA*mJm8Wni@pCf=%kP{zRyT4k7G;qB8HLIhNridg^Imw4DZQfz8IGDj1FK}N zSp#g#ipzR@+k#;S)KXqS<1|sho=ubsvx2aD@CDV}iZ+ilqbkdmlgpC983f__-d`!0 z)$QZu#XaQqC?y&j8#_=wXidLkBQdHb`5^%u^1OyNmS&21AXxnOIHN9 zBS|W`3Y2_;c5zRbMA=S1CE$W)LC@YPFWrcmZ0kcsb@TrN#I}xg=`&Ai`C`sfTk$4+ zYhWvRh|tV$ia)lfW}(7c^A(KzESZl>{=Te?rv~Iy6hhqjh&K=H^5*S6R9!ZF`Q9)d z0mt*#{rDW-94k3*x>oSAR$%jzhr75Y^l6CAzJCvs*L01;A#v_PwVzXQ6^yLOdECv< zG#9WjZN$WRp1v^mc&%Zn0M9GKUd6(F5R@vO=Q6kj1tESZrsL=L$mg2yz9-jR847=p zB|;2(Tx6SE!rKp@7pGqu)HjsNwgi5*{4+J~wJs5Me)Ha}w6o6P-a3O1S^s$j_>tOP z_x;D`m*JWcwzyd)1@>Bny9EUkx5R4%w)LtV(@JQiq1VE!H{7tJ%*i~NGui!ISteeC z&SQuQmi;0L#32)Fp8t`Mw)ss6v#BYkcitnK%zk-%Gb4hJnu>&qCs(N}lVfe*TwUiKZJ_BzY(Cu z+zMlV^Y<3TU!652ICZX3TYcn^D^rkoHAEWokxcJVQxuCkC9P8#)GWScI){MTbQ8#@v0%J$@P5Lrvj}S8m{+98Z0AJrMB!k# z5h~wYjQ=BTz7D=pnoERDCILj{ii_SbWMA3Q@aRgsn?KH> zxi3^fHF$ht37}6)s;wJ2iaop z$I+6)3Em1HOi)%{ef9*N8&isx6BDN1a}psL zIzf*{l3b*U8Ad=cgon&JLm=6-8)DgVx?IrABfiP#adzSZ=1lh56X*$PyIM5Uc;zP* zAr<`oEfC?R2y1bq)UO2VGKgK4QvQ<9hXWU7t#>Iq|A_g?0yOd_DFkx_Ok^C6VAO4x-Afy!@D zg^EbUn^|l}aP~_Do*P}ny}FZmV_nYY%+@h6_nxuDDb{?`tS#!dy`tr!H44^()scS% z&rC!4tW)4N0TTqj1sorRkW0mm@UsS7ojrTuL$eyyYUoUeik{um$x{1X^WG^XaZkGB zj_o#$SYdYbRxOQ}$emADXwyMZqFf(u^-t<+WeTuX-%Xpzi(weQHCO*IG5DS4AH zanW5z`w42dIVhI-;wDqA(~ui4SQeJeC6Aj?Tvf^nP+jcR|Jt?_pjD-CTRiJ`FqB1@ z!f`s$^P3|uKOw}D*KvqFPz_hVDC_Zzny}(Ipm6BBW*x4!7ymuuJOqA2?FQIC&Uxqn z%P-L{v}ru5q97=O6vkL{RlXNyuvHTA$cJ6p=Q0qWp0_V_=!_^K<_uWFEQJJ|@|A?% zf|OP+p|EIc1oPMe^>z8Q+}4Seos5R93>QF{U zn#=t*!MKj{h$l6U$B_M?OZLJo#_o@uG|F8lZi4_kr~3`7%DO3|Hc$6InMhyN09jMc zeYlbX*Yw1E2?G$bUljAwz94Pifbkk)?|vt?eRZsg&y#w%Ma@mV$om@Hw=_AnXW+Ue zU4Fk`Q~B{dFZb(zKFKdcDG|*%xx^D=ViaI8Nk<>-2%2c(@*3UCWPwTFCZS2j^=Tdp_#AI=o3?kgp|y?qZOz~h?wShgN(AN9TN`0RO9 zTlR$%gUB-+mTSfoA7z4K)C|It6ZC#(GG80WrI%)ke5 zvIW=Qx-&c1O2MHoi3aoG^SK`P@vY}WxLEp{&s4@=wj7&tW;L8v4PFGS4gfVoLB6XQ z>wLi%GB{H&+PyzNK(_k^DNb+a2k?h=JnC0&3*TeRefKlmSP~^Vi_d!FDsv;>X0jg+ zri`$gr+UTBX1BHCu;~0XjapBy0|}RU8PnImwd4iAkBYEu~1Ox$)^W{o-Cz<_(Vr?y4(S7LaGz-qfV% zA9FBE`y(QBTUe{JN6D9FaN&5lD_)Th9E7Cyvhqejh2`eJBocA_$ZP&Lvh5uYu?nB zLD!a)e<~UE9qFh(yqL&W2&q3oY?PbAjiUK14ckh>-vu`_R=WNgKx$pbBY~~WB zC_7nqg1V{<;MR*_>jl7Qa(-Ku|gV;C|8>18ziNK#ZCWi5B7Iu2tH6(t}dd^gwUI&EcfCbWXH_Q+(^X~ z6Cy`ibLB({Yq_ZkbB z?<1soOMtu{^3*!^XCJkdEQj!C=vW~E$Jr71XD?u0V1Vf;c0!QCT+jsBPl# zsUj`OW3^i4#jOKC@gHE7s(^_!#Kr971=LZ$ zCZCsGUj4T)&~C3pLKMwxA#6lyVCKmJRsoUt94jqvl0v6Thtfk`iZ`>q_K6jQ(7*=s zGaprXK3$ZuKXBx~Vw`gK(fj@6S{M95ftqfdvnGSm@|oVfrURS5YB728Fi{dc`rv=2 z-e8LY(_q%Q=pfCpyI~IUn)oV&N@R~hcy5MZft!g7*@5k$eT5JTP3A&)_UB`KbJ zn@e@&$4HG(C5HgYQ2?N*zAkoz zs7jC&Fe`?7uU@!Qi6d>y5~h2eOh~$$^Rf-TO_4@bArhNbQ9=r{C3o<&vkM11NO-z{ zH@Ex40>>@+b9Cn{BVQ@f4 zg>%zWo4j6;pbpE7i&p*@LTFjape*?U8!DeJ49r7pcJi_(8wT>GVzu|ujdnE zkon*Pw<0=(hqWG0n6)?74IFgusZBZqv{>(Kr`3)%Q#_X`>yl+KC0EPpN;VjiOf0pl)s968w~W{l#85+boSHn?>jCE9-jo!37n2n|BjTjvdr`s659vjsB$e zx09I+egFXWjYqcuibgFe*Ynqz$wLh3AzV)7x$Yv{MVG19xx^hfw!$#@|8dUSs6DNR zk#xbXN3GW)?UCa|;hBJD>(U)@H=jj zMfzoe~u4Q z#b&KMlok^dr?+pFQC9(&Kc{~t44617^E{?}S3h+xsJ%U?cdk4=koFaTOYZvWVQhB5 zBP-YvN&G8-BX`7~-1WkY;jfP*6R#g1qDcI#TNTcl+_kM9*;pky+*^vTq)BK(_TT)v zeoJTAvJ|nHZ>_&QvzTbtb0$ww=_gf9J0}tQ8ZgU6Um4y(E%uyYV7;wN;d=Ga3N)VS zlmFGHi}}muU`mJuQds{}4Vu&U$?SxY_OtzqM@rgmN6dlmSQX`}|F9h1h@5Pd;FM*& z+lhJaowC@tBZc*Am0b7oZ{alLoBt9lJ-XRA>`<>@iLT_oKDd(X~*qxh#DbgLJ-v?@yQY2Os;?P2-StOtnh{7HeK z7A3U{EAGtZo}J)U2D()jeEUYE6*fAEKzTE@6Hs+pG)$QH6|@8ZF;DwmGRSp;m#Mc- zU=rC~&g3&jD#eB>VzD!`6-iKINx-4dBco(A(WW?(K7XT)PnGKGCTPAqNliJP#c4U+ z5fcUpRnclOB~OQTZkv9m*ojHUhLvz7`5Yw>3K;G8V%0l$x)XNE6QdAU`Ev7l^#bd0 zd_196yTeeXUtGRs3ZAEiu19r znKQY;#^^#?&jyCjvq*4qy6hUIg0P!hDN=oAm`mRi}tU7s}5`i1OFh{d?mN%3Kfk0nY zV#oqr-)6yKnz5MU6Eqc6e<+u{^FP2}4Z{q@Jmb?%cWE(=^W0fAo$MGutp5D$ove7nXmrny7FpJWfOMfVo=2IbAn;uTP#aAZxfXcjb})bdKkePnn%&&Pzghv>6|dKb@aL3iXx8ARtvV-8J-{ zL@9_}(*;u$n9C7}3MxI>G!zF!$7sTy1~k#iiwXZBsD(72duN@fuy4ZRf}Aotmv)t% zsT{yoDBX6(`r19G*_ni%AQh*;=hj~9eejK$U^Z}f8^imZ>*&6GU|0U$6p&a40rB!$ zO5OM7J-fKq;;x)kry#=GN)a(b1^Rp|4N%)qETe{!ux(fvD`(R zt-q$}5A2(TQ;(q;Z?1AtuDtiJu0vs&PC^_0WZ~e{tG*8ouzW^Z9`fR2ajcXL;%E&bJo?juPrd9dK-6ZsFIR>ojmVvWme|uJj@JYhNyNT+3*G z>3NiQ9R1e48{3G(gm5*&0hPeeWr)WB?%zSinmA{NR{G4cP0Q?XoT#B3YIe1PDWLtS8<=oi?YPzajM4i8 z^@1^gLzBR;n)$9(VG01IGff=9ud{aoqcoCnkeDEm!k-^~J%X-l#Fo7k7mH*hMgA1u z!*4}><(_fy6~qyPz6oi4r(gw`%j_dHIrGQG)ziVs21xoU7`rwgJObZ z>_NZp;8V?RIzM}++-NI0O~uQe^hU?p0?F=Png7 zhdDYh%L`R5n4Jv(d1d^T+FdV^5!HP0bb-2a!x#$zx|c{kqe0#gBEGDJ6-r^$j+dE3 z>)DumxvMC{+SjuSYBik8l3I|_h77kav{PD1Lp#b*CzE8Q&aW15G^34A1H8@0Gf!4? zS^9{3h!y^=!0<2t@uc^bWb@NaEA4RYwQ>;jtb86aC?f?RFUF8cmb;&&CgVLewInbJ z-bAq3`bP2}a$hVO*j|iDuMdyVK9;FlT9Rp-A0d|2qB1tJ*Bps`x2pC=N8rVtKxUb(H-ga8rKT!Tj9?_X47f!OI zeN)pMaOZAs@saVhM&q??u&Y2YfvhU~`7Zo~G_)5N2Cs?`5-*B>MPR(8Su7%RF_3mj z#TK^10lo0qc>iW4qWZ4+^MfZ;9aWpsDkO-W?_n~${CMRJitmr8v6=c^j?!2UzwZ|^ zQw#!vWs6qaN!2sm%#Irri#4*yq7iYLgZAi4Dt^XU%{9-`^&m{VtSoDgeG7iAh4Drt z+m|rZ8s3@+AoYGe=SE*++9gDS!C%W^?}7-hO}507V*vRM8?@WR`wb`5uAgg14mnZ? z0Cdna#gID(wY%(59EFnHeHF`qO9-JQp<>~Fk3;O}bb)9v#{OXr8bU%S&tucr^JwhkOF7B7mD z-p!3^qyzW^TOP-L0Xlv1pUO@YpCV3_b&_mWDcYL!nhx z5}zN*vFZU>l6n0}ntqDjrZIQ-X{!?^v3wU0Zbhi_&5r~MWK;#%N&pti>oZ?-O2QFU zqCc$;>hnm91rcpN@G2SgJO=P@lUFC}^A#Qb!i^H*VdmECth4oxi5!e8oUL^Xuf{@bf@}n1w({$cGU4s|NHtE)tJ~46Xmm+^T$209v!aOD zTlE-kWyZB;)@H_tcH$^_6n`Qj+1#1s|ByrEt<|?^eX=1!J{Y5?Xzk+;$u+6OH+(3p zWg=O~l}PLjHy_=jxg#T{;Rp;`+#Iu~pjx0_S5@=4mh<^w^d=-MUo{+n74T^p-&Hmu z(d|H8#q@+S*xg(UY*IGWX5yEMpcfMemqWFdP+8|@& z&F(Ucu>n=5QW!u8kXWKbqx`@rlpQjJafrO=_JRum%oNH9c#ISjqUP`fZKGQVghYhs zzB<(sDW!S43m#8W%#fOwEi5>&>T^pVf0HW*JiEvs14vn!S4Bke7{B^{JJ2{R#k>&= zMcqH^yi)4PH-0g`w<-OP2*#um9s{YdqR70XEv@ab zsh5^gV@GMIW6{Aletxi-8lz$QD1prp;>~?FBmh=`alt3^_4$o!KGO5is`4jKy%(_Z zv~my*6M=$G8Uf#?e2uJ-%Z`kUFqXyaYq109Ncw^Bp(KTQ6|>J~dQCUl{1t96pd^1+ zzP(n7>!DPayI3|(g~vDtMc zCFcAdD>GBqHSV;`ivI!HKV^=h8TE4PCpn+dyEc(NFGJMd*JgGKA&}Rm^lZsb8C|^O zeU00JAXpt!CG&sM=s1(md>Wn#xDY-{!nE@xZA3lQdCnb06zSI~ps zIUbZr#@F-VNszQ8#s)K%8Bnl%GkZ}LB!OvDh(&HJfm%KUNlIoBv?_OJCzKSHnlA*g zlq}$2(1G#GG2P3*OhWKeSp8wtSWZ(+#)r7SRYoN*{3eRi?+VJQ6CF7aQ1Kkfd~%So zkk*V6zV0Yd%FktXOl(rKG+(?<0}o5mdjZqe8uPEdC`HQ9q>(=48Nl3WxW%J{3P`95 zyG|nuCTuH*=sgkS^6Ni65bjlF)qcL9S%=mNmG^CvvdReQXXW+=M1);Qp9L&kxH4vk zJ@TaC8)Znn@FwMf7qu98zCLs zh8Q^+GZ9`K;W22{NP1Z}*6vclNX2WzmbBj*)|9rgbbW`N)Q=2o!Xb~4CHZ{6-k~ZG zkmETsahH1UIhf1GnX0kOSvQK#x%wvrCjSwZ$PPws^zK= zRD@|8$g=fj>J_sR6aDOeg7X0iCBC72@`tLLhGEdUsFXv}a)1DWyo8^OmDggboQIDY z1fU|Qa08oF_LCvl*I5C*FBgkD=M?@#Qo{H_|g^dw*B45YLARA(=Sq-MGWws>R zVX;#j?*+^NaB}W^#C?FD=v%dm0kGRak`xxB$IhB*@IsQ2A;P}%GcX?xEy}-}=mCbO5M>Ij*9!db4`kNCfMz8!J8|!*)W%U=LklHYke1)-eF*bXsTc4SwZG-52Q+Vq{ZpQmHvkgst$2d%mlyehmk7J*zJ<*(^>pe>Mr>;XaY&ZI*ZIE2|^Vj4IUe zJ8rgHb@XMpe7&D7j@vR7h7PehLfsx-Bub+v(ut?@U$KS&D$h}WNf2!n8Q2amR&E#E z=SZa-ZTBW!m2)$vhQ8X2VXWKOcf#GBBnBxPSHgiMr*O*;rvw{#0QtmN@h-nD*S3UIs zTq51X$@v1k$0=Y#Xn{B+O`y<(t)ETORguuKVhU=5`x4n8ZgNc29;SZSu?)~s6mbhz z3ozT~_e~UaF9wM?kA^uO^Rj4G@zKo;vJa+t2UI)=%Ln~Kv^DQ8;+*nnP`09+7VbbX zjT$<=EJN{!=*h(w0&5G&t6VnS3Q(nd+Oc>=vv>8OSPaLKI9Y-0eAw5>Q;5*$$1DnY zib$Am_zTw_jnb@sl*yRAyVt7qy0nLsTwsvikRSrXq_3Q__w+9Xwt~JJkn>@wo$vat z6iIpx+At0Se6+BCV2p>D0un$3uXBx6=$EF_;#j#f27|(U#bxHqTyaTE;a3CeL8!>5 z7KG)0fNZ7)MnN^n^YnBDYy76o@QUW=-)VA+D)Lq+SR}+U6RvP;^ODoma)y!8Dhg(t z1o`stp!hFdkNoAJ>dc<6g7L+ObtRb`;n{|NDT^Q%^?{^{giDW~&JG|3sptDSF8^ts z!42bArOH%ud-h*-ox80dvZ9)EiD0FL+e%RUhkG1@tWSnEYPkJ{>;eZ!tu=DxK19Ag zY0-1<%5T?+`*&(OS4;KqcOmO|b@bK@$sBjO*E@Tak1Zx^r1B{r=P0+0hF)sgWsr|) zqEw0KiR!>YtI6E`<7{Kc9++D82;Lw&ZSrU_qOt)C_kUJ@c(jnWSdtoR^lVx_rS0XN zqPri{g#rjKYyCBX4k;Wgct*e{zm|HngG~;1Tulc@9OR&pXOqD!^gLyk9ofwqX_B$0 zE)^P6hvz&3g@HVoT)k#qnscDWs&)O-t<%gsStAEMPrM3^iHJRNN~h*1T?pA zdG$Sti8tJKASZpHpmfpor3rN?^J<9B5vOEoLPL0^NyeIP`GLs|@3WG^A<~HM1s(*# z`dW?>M*HX6{;mE()zuwzWWLG0r-7YbT{Si*-~8_PuV*K((CzbT)5$`gt-LrQSkr>% zF5;f14gORxAMQ65b(f!%K~#OWc+C1;U||EJUTJdq0xC3FzTHn>hIau} z@g3muYw0S(G+2ZxK{D>%#t-Z&#+V?P9>RXi{(-%0TBC+nXz&lYK*Hn4WWUZUYjY9- zC0MjW|}sGCmCThmdttTI_PGYCTi(4Fy+X0*8tGaEkt6 zx`lhZJa-iZrSc9qw2JJ7(g64^r6h{1jq+dCpg~m4e}D;?43qqJF)F#?7@c6@d-8*f zAcvRu$p-vtl*swTh2P7E6o*$va)3BA%w{Gy>Ar4i!OqPGRZ!-B<-u9Nqdp zKTNJ5&1Q?}&t*+HhQmFK0^Ufzr8%ruTd_$~yXfQA^a{`-Fynw_sk`AW!ct!8K!By3 zW1HY5ksWgAH8jS$1pV%sXNHJ8Th|5V)rZ;9_Ej6)_72q&IQ2!x6!&s~?%gN-Ch-D~ zh31>c3Dz5{W`l6ETo>k(`uV>%(`|tdDi-i3%LxyXryl02MA_IE$|)Zhrk{Mt${#D^ zSpE#0y@xBLl@c%>nj1CJ5%)|(uv6tUGliJ_x>`C#_LdH|2V}oQ2)_Q*H6rs;zkm97)-ZGE5}_V*nbYKV2cKB{DB;6ntsorT}%G^y(tx>8clzHvM-7&M$}&B?dH{V8j9+v zUL7VK%HX5kGi{TWWM9kkIBxT~&}#A(dy-Ea8{a2mAB)v7S^*1aP7F%S|M$nqS@zV#I;qbA(rNx6s^7XF&3?sisWR_TD~T) z_qq?bgOd0GQ9`$d0L$hja)9Dt^?e4(BTJle)iOqD3!?iG%vTvCl|u!DJEbc?!ltLF zvk&w=DuUDKC`Q6(WYk1vm6fz2n((j9N5b3%7o7}m+M3arQ`oo!jH!*E99BFi!7RNC z6cMF&5Mrci1PE1peeIAhZ+M3be7h!VLQ)e=QNt9R0Z6s!12`tdm^wm%BIGPdo*d60 zCrJA*!y-C;dOILAjQw^T1#KD{WXHjMRqc_l?800VS|49Z<5K)Hy`)~VF8;Pl;lq7uc6;eN8pS>^iGIV&%iqB(DP zns>9u-t!c?fX0>kW)xQIRmpv`s6>TkgJqtULJ=OdC(kI<5)5?cs5-Yj)Oj4>Z+MWM(fnl+9?#zAI`hXZ9e@GN; z;@Y7RY+q405!-^hG+yJN2)9t3+zPPIe}?;D3gECw2UsAoIyQiXgP-TW>jup=Pq@%_l&bNffKV2xrutTBPf7=3WMBr zQ+eb%)pauwnp$B#MfP%tv;kCnuNCH-YeG zEiEG3J%A_%Cc>Nr@gWFJ)4{{?+<@?=xJSghKjNg7W}2ISLi=N4)F%DM*++4sC(ZBI z_rl8KKYomhg`NL<(G?iU_wf^Y+{JPwp^7d};Y9m7^^~gwNr#xOkIyWa??L? zyYA7xsiVfPZXZz+V=<+Js4Da)FV)YHJ^k^1Z7p8AJ&v))N!}xx^(h|Bd||Pv6?M z6zStf{;@9yh=E-J@xwL1J`SD`FHpNfD*XHtmj}czEQ#+#qL_b%%3!xvJ?}vQzW{ew zu9e)XW3{h?@3lVq8#QnTbff)@D@@C_Bi7BYy>t4a#cizFZC6Wi`+N6Rs6r^Lpz_~n z_`2QS%Tc91x2F~z7JBsbO6*fV*87KqOpgn<(HHF=SC`i^2PkG> z>m!zC_TTlJ5>AmBNpf7=tK3@ef0zu<2X(Ce2XO2BC0gVjrjFeBp!n4KyJ%wbx5yU& z(mT(5a%q44$(7l%Is0MPLEf_TsmXvGYZ$B@H{f{N{PB778t?Baur=%0+9gSt^3*XZD z{`2Cze|7-nADp%)W6B)of6BNOv^%7d{IC8El%WoZGTIyX#}L68MbOc2b&j%sDm!uN z)5qi&G950_z*giw%^7+Uzhea22oOBOXuo^+rzQSIg7`Hmhlfm_gffj8DC7iBnUW#m z7>N#T^Aqn4WtW@D_-SH=;jB(+#iQ@7R@Zg>?);l$`*C05eQN_zT{`gh@!3!x!-Doi ztajR46(@f}VwBRlvyCBZ<`d)k=I|TM*|ps1nL$ZXKa!0WHGyr95s@Mdueyu!Ad02w zh!-O;68+t+K=QCjNgZ;oOv63xaSYEG@-z&EYG*`t2}`%%IAvX=D#{0(GX19ZPd3>e zcL*4KhWj8bJtu@CL$*7qH%US>gTNE8DwEFjE}X=`t^YhQ47HcGqu~bxx#>_@5;FY@ZOVD%%LPd|DGuul?_??N zcmKey&&7P3lB(k}yJBbJ4yKtP;=qfejza298ycq1Ez6j^U9wj?TR>6-N@#>$GOZ+3Dzgvf{gB^5%{G z&S4v%l85lH>i5AT%t3_CBV@ZPF_5PnA_oRwM~k0>-(U1mM%{Y-E7KTDig!nm3QLKU zW>IA3`Mr|d{Ja<7Il|X4J#yh7d}IV-7>T0!POgAExL##Hbxy7Z^K7=O#)>Nc2e>LO zcQ|MRI|Mv|06G`h0k0pF9GytBa+wdDM`13zvoiHxQqeDNeYz>7_`rZV0UfBA^|twS zl^L}&UADT5;n$6rF`d10*Du`SRJ!M+1a^b4>r&!Jmz7mN!G^NjYx}GTnrlL}G4y27 zgZC&{Hn+LZ)cQ@(hg-KVK4oBUJiSnQ{3HD6Ao*Y+cD;3E0@LL9PLf)J$x&11qIBo( zbbC0BweXP{y*v5a7*Sil9^%xG&$6qx>6*rTcq7<~Hq&^RJ_b3n4l*zrs>R1L5>%Xg z$&`>)&NSk?AVA@SGP(~@?%3R`#hw&o1%~z8TMa3by2IK+`a$ZXyiS%<`)5xL7(1sq zL>U7h)GGMFJK=T(;{Ej7VLyI+F^lE!IeI3vxu#L{d@ls(^056ig902Q@R7P}3 zZv@N8b}k@QdYe@Q5)77_erH+$^ZC;8y~RK1Dpt#l50o7j+rc2s!362)SpAtgoYQUx zSptF0m2S<5@(Hg^cV*{#lkx?le?!eir)z1%c;<9Ix`LM_NQ%*zVDM1 z|JunPM{1HIud@ps@^$teH6*NDs7mi6?8IqAd`J4tUc4gXC8Avbk>@>wP(kS+@`C;Y zjGh$B0-@ny>p=z^#5Kz6@= zN_?sR1WV1l2v9d-7hW_}8HUD~&qkx~$;NzdBawNtt%u}l3m6X`bv4Cqg~tx&qxdsX zK(I_4m&`-TvfQy)qXX_iN4AVP+tdJTcokK~kFPkFC= zBv!zDY%dx{r=P`*`2k1{W0M*M#L7!WmNyaCQu;4<^w!(*LMJUm$N+&o8;#uaIQ`*o z06=dUez^p|?1TS!q5^4D9#5Gh`R?RFmM;8WHdVYlQ$cBkI&6TJkG8KTEcQ=`DfedQ z#;&JRv+yDVf6<&pnSfPh=nd4U0NII>?iJV|A{;_YHo8+~x#zY$q0V*#6D}bKUBz(CdZ^vH9VEp~!F&|Um7B7$m9;TLK752`Q%pb=Jtwcd z$Oe`FJ$Jr&PBfr}%MiH&XX`;snx^Sbt&nWSG8Nn2ePT=R*#-FY_bYUbsV^XPMn$i-i34ww;#8k&f z#aTvY55w?T^0hTp=4OyytJ>)5$?RAJ$6o569>Vlv; zUboQZ&0aPu(FgVV3tu;lu*KcsKlvl8W|*<)CeE#qdidFU+vp!W1yL|%{@_GM_|sIi zlP_&K0^bW4#!<1Z|FAKJ(8f<}Oe3o#5F|(0RUFEgVa$iOO*NHp(Lh+HQ8y-t+O(C6 zZlt_0@qzPo{IfGTtL$L0sjEMou6oEF=#72|B^z?Ro(vAZe%al=D z^(-;wo|FZ5gH72;L&!K+W4TEqRugxnj}V}Z8M?;I42E$?kOz)O8#0WDqG>+puq6Cn zQ*yS>!CIaX)tB+|RYR}XJVSHS2x;bC95Yvf^2d7C%v`C>dW``@a3R=6;WAdabNhjG zM}cx;L=`u^QxNH|EkBAKRiC4HIe=|QEGru5nWn$l=zy%>*tLIyWJRkT2TlkaApZkg z|9v|n9fNg7b{iWU8F%4~$o_P<8B5(B?j4@|WGcCT9zXOUdmHG1AggW#37zHT1ND6M zAJI6T5>H^xU@4(a1czxMY(G745>{#caOL}Nnj6K~HUIFAdg*L{?@w;^Gmc#{9?e6; zxsEk^<@d1WL3oqF3F_!~(|r>+d3L9@0h7UsE1U9L$Ib%;?dgw0?VpHG127V={{Ub4 zD+M2}FyD5vv#RYiWKyzgu-WRaTyy?7_D($F((Tgi#-p!o7{B2g8nO5g4iC6lN4ja; z5U(>aT7v16X(3DyYa-wsh{L1#-Y~D2R#>EJ(K?d{sf#gi-7Yd?}sarKeqJ#55V#5 zug0-c)1{11yzSEQja+B*vee4K`Oag?@&5qx{ldR5YDgTrhBfq>_t%I(fbwXWvd`o{ z*%tlD7Fy~*Mm{c{G?+^&f#n?rtgkthl|Od)b}e$^a*MHN`cHI0`cSAqZv{;U8>YTq?T}!|EbCG-FjCW3jERAT~ z1U%MJ_z%$Z_}S3)-bU++B2isSCx`I?OqDEGQ(@1@4z#C zGgz|W_tvwQ$vyl^sj9vdz^P#*bpFa2B(IzSMlW0KUpbBZ`FlIldBo?eE zYK@y}qKni9t9K?ojECLjOct<4OT0e$PU;L8x2;xSux*fEQR*{C%kQvYd*L)vOl1Hk zY|nzbF@q%t4CF9QL`&Sy*zj~25-A*nzYD1eBc!U{XLP=HWzWw&piMC!1^QW2o}p+J z!_9F$yO4I81S5!fJ%m55@xcm4yiZyjkjFzxqdQ|CBt(XWZGcg=j2HPXI7Os7`OUXw$4E?5|~jl zR7BUYCK!&qc)`G)rbfJ)7(CQcVZwdXoRMl~l4q$2(i5#d@%Z5On>-2ZP0KWu5SYiY zM6;8m!vUoaV5ag}q-YcS#@~m-U&AGxe66Q32*VMnL@h($Orz*JBbJqX&9hJ#nIIn} zq-u0dJj<1z=m=ObkaB+IxA?>8+@;{F+~IqY!qYi17nATL4VU2HvsP!_uc$!I&(A_E zFjb|ir9r7pZ#a3=m_hG1g8;H*=vc8p-w;)3B5>V7wE%|kb|euzSHZq=c+^ptz@M{! z%b3g`;T~79q!8`krJMRNgv!e?=s*^ZGAgQl^P5GBXD5I{J_gSB8{V4J^E|n^BsIo) z5M@MJ1q7!Ur!ft{{}6p{yl}Zl1D+X;R2A_~dfkTu>ShynGyLQK=-X@hbgha0P=%vmq`66$zIn%ZH?xi0E25rG9dqMD)2h@;!70;;Ip zKf^pgaok-_c1j&hDbLJvECt2g^P6{AABwUN@7wOv3n{M9(n3f;#_NuJ|HCy+G1H6XHNAp<{W4p%;|AvdiSO zMg0e03UZ(Vq5 z;|y&%nQ0cF-Wak1;jrHOw3Ky->K5IE!DU#D+{-7w)GqBVxGAf_y;u7$s(5dIz1ALi z{<9=4`}r-?+a1O`$I2L);Sg_jk2|*HMcM72f=%(!*8DSKP5KGEJc_lM%O7pYF)>btikR0fWd}ilpnAkeyAG?SPh|zD9rHTT`PCxN+ zH0x8RSfBzlTNOyfe^e2WeveHw%nm+$2GXtvC>owibQs9h`c`ry5TFmmCr-&M3hIrN z_|qT)Ssyvo@WB^H5@XRIbCJCn2+zn!h&*mHT#$dgD!oWMrH_`;uV>jn(8BF6^G6YW zKighZuDr0OF~!WVO!%c2x4f^*isUoWRPH*<#eJAJ5w=sFMho)jk--a2Q7uEH54_U5 zRi&57Kq<2#l&FMW9JLlWU6PRX>@R>FJ;b7&elR<_ZjeT160c({6PxFt?s59Bn6S7h z#sLGV&@?ZEB^K=p)Tq)uTb`t2<)s0TQCirDa^=cMA}0KGX6t_jnL120(5sy)mn3<$ zWjn9OLZ9&3<=32n8N;;%*h@l1Q`p5!?$;og6EmZdoUO3Wr9RTb6U{HYK_W^^L-?m& zk+l2|1TxX)bs-=@cV=l0AMzOtMHUgF{|2o*acOVyrge3IOiO-=O+m1*cwO+^RPHk0 zERE$OZueqHbK=Dm$-QtFX{S?mF16aOLJD0vp$7!o-w8A59{R@pxeZa z05B%^b)EMBrz1$ z?nT+Yp;?grp%B;*1=E-`t)A1=aDe$n@+hqMXRy*b7!0epFdvj1A_@$maOuud$l-Io zqJ0pJe;pab&iB0**8>I>nn01ZcI6ER1yefUU658XC+3$IzR`mLQ`IKa%>FP>F?}El6p*s~Nw!6@E6!)dG_}SMD{aP#vR|MoN|EyjnP{@M}&en9sk9DW|lfk?qx>(^cQ9Cik!G zkrao!^?pu_#NT^65>oYNI;)Wi8Lk|tMa~}yPX;S&S)Ult|9$$*=*o&fbMKbkPW&;) z+Vhvf*`w{Mh5*3y`SRs`Qs%W&0JT%)xIRy==VFcO`%YQQmb&$dP-DFc_%`MFYF2BI z40FUPePzn{@v`k%UCuarbY*Nsu(d(xr=zMYzdtYgm+^-+k#ld4GO|M$F_vKI@zzBh z=wSz!F71;E_AsTC{YsB6lEpUlz&|4FM>;o*di$i>fu4lh;Cp=Cn4RmcS56_6>xQyQ z4m|Sy&Tb^lCGloqvfXSqKnQXFo*;zR9yO_n(I#_a9_9wYyC)}KQQMrU*0aZob-8_ z2}1Bq7VlVl&2{lV=q@Z=-jmM5s;->sly3Efq#4>awJKD7db_f^r0HL{4#a`-&x=ao zByu#jQqGrUB!`56i-f|qSAmsB^qeq?`7%z*C-UhI&GEy5?5BQLCZ+5ur2Sj3p1f6B zB~45P;0}2{Z5Mt}>!8?fcyeic_)LRKihCh6C)Lk9eYo~*62b;SY%Qhiy?k;T+K`Fs z*7@+~VT8+hbGX+ojBIKvG0Ts+FE~w&1n52?sFxCXOX*_^aJ*hh2JPgFUJ9k?px z?aT_tD{|Q(@IWtG%3q|tEKXW%dZ1}9V<@I`QR7e-f5Qn=fIRp*JUAr(TJlJgfJYlj z+p#{o-+H;L#CLHqMeI|B?A+8fziEASZ7NHvxHq!=sj z%>#=N*1vBTKI`^>5{NTM-jwzr{>zHaKuq7G;*w@*qOEq$>eu8MIq3%8MSR5a-Ar?k z(UCl=nM3CXSFhpv7n%jk&~9QrM64*ueJPPN776ThsV+Zl1LOfId#*aSWy(pSd>Li2 z-1KH&wmZLQbT)vBH4)-6!bbEY|H)Lvh~9(QrUx2nt}*|yGFCIBzCuVA`JK}4E!My`U_GViy-hny6_4&CFg(}09ROwF_aHq zatkPL`5yoh1HSv`Wv7hu_A&Gf93e2ds#?Dp1-F1>9CSv zcnZ{N5e}WVfheRKl&2sGc_jfN0&dSN5=|sY?~9D)V7Do4+9aml#9%=bFe-}BS1Dos zYab@PfB-odC097JP>M>p#)3qN0g!LvmumXri?;WgXSJFXU#%10%PIck%IF8LEV@aL&ptV~#yOuj*#%~aU z>R!*~THGb-H>ZDgy`?o3DXjPhucs&d=Tr?%esx^3=o6NY`}#C6K($$DM-pA7>>;at zWa*7(%)dLN$9@2T20$KCTTqUW!LQ%rg-DoShcd%_%}w!in`Hk3BSGB00CC}%-&JuP z@kEH=ZYaCtaUg8W0Hk=lxMM)_@Rt+DIUsxncoA;y%^V#88SJAhdz08uE*Oeo~CPNRFbIf(}Ki@{&>} zOC$3z5S?1emlpEmg6@Zc$?*^xP*Q{FN5p(VFJ4r~`%4BeiL@Xjp7n7v8rP9=!X(@X zBGfYokaoiZT?y$`GA(F$P`H95GPL zwA~|?+=M|OgRAn2<|zZ6J~uBxv^mf=378P!^U&rN~(a0o{i15H2Q% z7lg}v->5YCi35~cB%x^`#CNLy0OA2~vx0!t^TAjzt6c&-Ucl#_|U zB&I+a2(l14s+o(8!{eT0TSSn*DYUd=M?wn%G$f82xgJnTL}K7%Zr$0^2rD$Ffy%~6 zf_ZsQh!h09d_{U|-SGAYf`@?ZHiQ%jNFGuMBg&+6siky&N&f&J{{Wb9_|W-p*1|*o z0P1mf*PyR;SKwCgz+@)zX-Au)2SC&YP%vxkKfwP0@-_AWZxnNd208jQnA`)`TKdl4 z{y$Ye&$8Wr)#KsE#yYcyW%$B>$8TrFVd9U|X*j%LXm=0>0p|0AUmgBS{I&Oy&BVIwb20+h0e}cPM)@2wL~dc{E32z>%U5^vO^4DXw<X}tj#X;MGfp{PRk^IF*?};l^2tp`;#q5}B-HyghCeW|ZR6Qo9sX+OOsoG;jIKDda?(c*E2ofns{tE~O0N*-Z99)M^`Llp4t%H2&l6EF zPnMfZV_I=&SZk*H_R~s{ze>1(lJxiQrEVqLd;Y2H2kqsrm1{UsuylLv)6eBeKuc{1 z%=_s}X{Y=x^R+dG6O*F!pWsqJx1}H7?7sBeJ|Jbk-nIMcT`% zw_0JZZ+_;eHMV+E=A7{33s=6>w~8PeZDeQOeZ?C%S=eO71f#7zw`Z=sbsqX+vcRBx z^!YkV>{VOC^&Z|Te4oFSRKWI${k@*_m*3_EFuabLL!t8ht9~9j>nr;nbOQJH-k$qF zBoXiDr7f5-{8ewiEdKx{Oz-um!83I1exJ=Fr{exKt!r<`+cehj zJPl?NtZd{{X_jYVK0q2bw}R(7yN~6QrPyE_iU9|!dW%JW#xt+q4K*;){${Gu_SQ$t(&=R z7Rj{{aJ!h9F?DnNHyn;f&vn;YK>+gH4hjI<7LO9;yd%s+)PKhR0LZvk-*4gQ)x5Tj zR(cV2%v@!1vm|p8ABlK8TTd;+LJ2Afw60=oz#z{l7ZAb^^3ArxX|So$wWZSdH4Oa| zv+ZcxQ@yils#zc;>T~*WzOCS&mRjHoj}vHNG3+iMzmw zAuq}dvTh-cOM~U`i;7?nEv5Kh@!Ugs7hVCh@{3UAyK8JIa@>)dV&nN47fXf59M*zG zsCa<@jv*Iv_-z*sLvJ}uLnwGfa4T4UL%)C^cw#FgcoVbZU7PutOPC~ zdE5ZHOGJ{8g_b^EP_2Q2Z3gxL2H|i7T7i75+(6|)cW{9>{-7-9@dI}t9Om1tW=a8` zR9L+*Ygxtu(C)I*OXjp5Q!&T^=T~8w0_HhG21(1jczR!-T%e8IF@E6OJVNV{R-22s zgLSrm0AzBX5Sxw0n~lUbH)$lZqQ2-B^2A$xmuLxLlc=ryAIkv|dApkaQ*cPDO{U{% z7amX;*Te;&ONa2In!-5+w{nYksOgb}Nj8Y^hXFREW7f)V`v7@ z2RANHC^8@$?L;eW5Q#T@qRZ|)wu^aJC}#H-+xf_}03`TD+@t_*B)=Eo_=I!X1)+Gr za`SD1<0fC_0h>lSoWIK40kY9?wE#JR1cq&Vm;kUvr@}4eyO!J0HBO1DnoGw#6nJ=b zI{qNOQ_IYGZ3&bL@LT~zf?d3()(N%p^4naO*g0+-HFt}gT7NaF;DVBFypj5?H*?%o z{G=YU&vCrkU6zu;7M^4I`Ryj}6L|y!3YID2E)&AHvYateYX&~q?@AC zaJd1_3D^LMH{)B)WwzaH3+`u2ZRY09#oLi-X5#+tcDi^|mg!8b9Q|CfhAH9xbNZ?Yy&MVA^i*_-#e=1`EHK11`Td{{Sif z059TRPcMSZ1SDoTq}thH(gKOs-~21!y`$ny_fV-=)aECG;`G`*H^e?Kvg}l@@?B10 zDV`GMA!Vz5_s4K}V%uLWqAt4bAtjNC1lx7fa4p+{Ms2Sb{Ga^GgJ`%|d_@uXV1O*+0WOJrMgvZnwdI74>h;9~s(z z%KJrj*wU%y{{WNwd8U0m-}9@I7FlQ^5?LiZxh*+YcqItm%J}d32Nv+IyTgTQ0(Sv3 zjLAbJSDpBt`uyp*VB`?XK0~~A6N>uI&+wkd*_wMTl_{(oOY?Hin%n$KwRVZ`HkCB; zm|jZ9(tpFhq(cmL*JPRzekS&pD0Rp&Zm~jB*=68^70vNe=aICfXU9ZNI7Yj+W z@)u}cJ#9R;yKt23_>j$(gKFmRhiEp3YPg<%8}V}iXo5|qP`mBUGsl*HX})qt;JB8~ z1>dQFE&&Tcv5|4Km=eX;k`kTp!p=|;9EdBqh3fupw)0%B1DaL~7KP|>J`(mhZT|rF zV1hY3U*RiMC@;fn>l$HE%6>o4(}pc_s?X4Pu}v=XPX z`)%bUc)+?jMZjE1Cy*{t0NrRLq7mgvq46XehY!S0kHv2##EVV0IRIkYj1Ye^o?05c zPV>$3Q-96+W(%zRqQXENw%yD>)RrzV3n8-1-HEokFOgy40A0{>1;!1f@?7j7mO_A# z7K)z-h(*B>VCB1)#ckKVb9x~o%p_W^yDOPTSmMExb)wrY9Lgpfi%Yrx0HbEoWb&Ds z+fk{TUNQ6Ha1VyI*&L_xn~3JLfshVMfg;o_pZip-J}(Wo3p`QId`2y3vvDTeU3J8x zfG)1i55`-4#C~A8t?&+Gv1FU%+*QB^5Clr^yMxMY$u@y#1p?7GPl^Hj#SIc}l3KQ| zn^iL$U*i7WXC2?;Y>sYgo#c{_C^=*ZO52R42_n}?#Q08W7Z4J>j#FW<{!?Kh&;|Uw zphdu1Fhe!rfy!5dmfMZRHcy6bcUyNa=hgLXt%Dk8f09~5ojrC}Ev z$N+UbqycTJ(g6|T@md^%N00F2fplCzM(aufE%1v;x0&+3MK?jM@ZflgJ|QFW-^+J| z$;G_Fzy*fV5DD`NxSOu3YEtiiZB65)!E{vU#X8UO(D z3aM>G|#z3W|jKPuq(uk-vH1G|Y}-^4$6 ziS@to zpZSfS4`~ct#6On6L)LDXw!aqt05$%1iO0C##JH27&<(8`53a8@$Hn3{NhFyh>hk{p zeQI_3kHbC_vg}G#>&~e3ToLg-v$xmUUF}Z~zYyL$sc3;%iub3i1!~kussTibJhUyS z4MYNKY1P&g0@E9_6alPF0hL$bzAo!7=Cb2y7$Boly7~arYE&|(7f0#8@jw1jYR)?8 z#K6buA93leevk0nac~z}MZks#ED>MLRrJ5{5Ba7401j4oWX-;egOEVST#ERgihqw& zv`=Z-ZCCwreKZAB=uDIsD=k9b}dH(?6f6j3D*7NYo8jWo`5v6yE{N}x# zR8;A$Ls+JLg%wj;RZ`_JgIJ0Jm|a}D8U+_XipG&3&a$j1Dimix8pO~Bi33rfXx4$N z3c|3g@*$0CG$^iBz94f@Wow_D2A zx+HkjRyPCT(bLFabaC5Q^QsOObOLtnba1wv>vHu>ka9gbj49OXU7RcqWZ3c@K>q+y zkdezZqrh>0mC&B6Z6&@WqyB_}pbFPAjP-ixYKP)_JTL(+*;3(Uv?6q) zZwvw%327wYw2BFWc22aB#zt105(HuMIY7f9pcx2sR4?K9MZgZ>+#y_wXE+`sg_t}; z;^hOB+ygfq2Z+f0-ez#?pj=5op*+l@OI})$%yJYer#XTj8}R}%bmo99kiq3;-}z!= zcStyyBg8`j+4GekTX59sLYk%gGA)E3=A0RM2RekAW}<#0n4!xkf*|fL0@6sdh%7v~ zp;EQ77SD(VK_{48HPe`L0ucm@LU$NuW|r+aN>?#==EcSAZer;JFS={&)GL5Ck)^@B z%ESPInB4JrDFEWr`mjV{a8!IB31c!x14Vx`9686e{kAfmR6hCtBAG{bbRA>(lZ zW3Mbh zwqaaAB#m`KQbdzBohlki+SfrZ_>wRL`dcI!IaedqlsrK-#2~FYm@niykV!>?o|OLp z5yX79lqS);!Q~dXI?H^jgtyk{r|NIJwuF%mF!JuC1D{4TuI?VcC|(k;__I^S_1O}d{wUEoDj({69P<>zS;>!my2K@ zn3Zn00W;0t>z!-D{{SQZ05#xPd|X3z2)BmdANG`313rPysiD@8e5<@7pd_FKAFg_E+55M3j9ks zAo7(2L=ucHxE*Wp?k~k(bepcZ<&tyVjec`cw}qi`p51)r9wxTCGS01Q-5L4Jl{)g( z&)9DN06)VZ6UDGS1j&gKFoHK^37Vzf=eR(AdkVk=F}|oM83;bd@!lxJf`AXt>8Gzs ze})=)ZR~kgUcqkfPwT|e?M=AdKVu&iZT5+>;$<)fjJD6_QEXj3#}k0@aw17Gq`7C9 zHITVSO8joid{H_%le-w{=ngBVh4B~Ji;cc5&amF9v3&p03Q?j^Dd0tYvW1UHx8 z49;uV{{R{P05t@w?KXf02=ij)2SV=U7_JXxQd`ku%cHc=+)er)U-&43IhmOtxWUYl zP6maTRReH?2(kh3A|GBXqhxPkgn-1wMhv#zcm!W$W2 zuw2Qs35Y-zFoMZqxU>X%67QV^T~wkc~gY+F+C|cVHh4qY?rk&rEcvb+qeR#NQ9_{Kz6XfwY0x zBWfw{0GmKMS3e(^C>+0;=u1}vX_gaAF2UD8_>y^0{Gcn5c7!*>ImqQGW}$D!h9zK| za(PUU#s`SNogz|Es%A#`Uy8ll2Z*K(vcVFGQVv-qIi%o|h84Dw0JPf}1EFZ!acrGKmP_T$&`Gp12Z$32Cz#=Y1!UV<+tXTO8!{(*tr7tk zHju2W(>tI6y13sluEmqqh$FJ2NTRC=~TYRVG)@Q z%n^{w=41#A;%A=jEvDgf0^39jW_-p$&P!v;&|jL5^uSgZi+B?bG57 zrXi*S#f}vU? zWcYcIBlQM>fTK7;?51j#SOvkNfBKM~Ic*CdGRNvFt;V=UK{lW>uS7-2uul0^%x(Y) zI)iHP@&do>HyQlQJm#aZQ<9$)42i=e5&$5l%1PB5rE5pwY(ZNtdbAVDNjg4av`m>{kLW6~%Kkp+HKBUTDAsOk*G zC5!_&Cry{`Gehwuw-TZkWw63^h&wldFfuYcI43M)AW5aPuH8@} zed05}ZNcIafXO6u?b=D7of%m^c_$iy)$NOVe>8ZUIRp=$PE#6yK+E-~bAVd32n6-j zm#?ukDmR$={dx+iT+x9#MyCt=`Na#ZAf$3mx$V=pdKX+Y5IShwo#*9L;2e-3z;bl@ zd3|dIz#L+21uT| zYw72jHy8l93r#Wn`crVpWI)U~3E^bt*`=_9k580!-k}Nb!&|<}ufyS;@jdnV(B*J9 zpW`0Rvt1Sh($lPs2f3sYrdNhaD-E8bL!XzGc5s|WSJBT^-a&Q6!L?|}BUtMZ_x-!9 zuo(>?I{=IM`PW2|;#PO?g|AeyGD-tbae>yleiw?_AsB2KPZ2A~^$S?W$>7&XxzzO$!{Iavr3i%5XKF)Kr%fDdz9jbV2iix38c z9fQN@OjNH1-hxmv1^}5W1`2ysI2>1Y5td7M@Q~nSnaS#Fa(KB(P7`Ou$dl&-Xjqm@ zso4-bMYD#E(=(FE(yMFExXzNACkOL4@--vGJl4R@R+2(HEV-T4QX^f$f@bF(P;(b1AK>c)nqZ;nxuD{WpOXdJ4H(o9Y##Dyp+5xxNb z0JrjMlZ)_}>xh0tg#t@e(ZsX>C%GZdO&iXFloFqii6H)>Jl>#>I>W^6O|Url+%U_y z7c31Y2Sk(YPt3z;X}LRO?bBS-pN9k@h#4Xq$NvDs8~N0(CuH*Ff7!z^A^AmSAndLs zmUxJfCtQzM1id=K6)Sj}NF?aKQssSWhlv^$1YAFo4#9;joF=Ngx@~%w=lH8FX&7kO(V7y{Uz0Nrf2<(Bg1y zln7``SjJ%8jZ0<$h-|+S)f!JP6GBXh?uMZaDhG+nkZ_1_zzFHfB_6xxr){1R$R&t} zmHC+gW_pUJ1BM=`AJk-xyA)WRdejjGc>FTD5?B{IwGT4{GIk})son`T8-cV7b7-EV z;gDqEJiw}n7XVZoghirMyGf2+@tqKGE$3= zNdp7136Qn|9KMbh3`-D4HOT0opi}V;pOUI#rvxm%*|@SoBy%~|F2M#PDmJTpHKuLZ zoI6Z{9*?LgmPw`m0LBQcqaiQ?!QSC0h+`Dr323(B7`P&C%aPU|sF$Xci3h3e32rxnmbD+~W0&WI!suzzM2y&1{ z0J~WaA$8Uv)#_n8*iVVzTmc}0fny}Ip0X1enqD6r1sW|TcghpgXG-t7@DxOV0S@5s z!5Ah44D_g4K$9ySa0ntXk1q6!g;cB#OSr`ibO6ZZ7%pC!meR#iPCi4CELri zV=0rI9Op2|a&uhVd&z^S3QBzk%SAK3VCT1k&BcCIKjy8DPLN1D40mO(3B7Ysn-W28h#_5w`ES z!LF_c4GkU4k`P>^V;boRJwNfHK755lpSVyD5n z+$*JxQf&VK?7IepW$2LN$6prJ&7NS~X1+;Yf!`!LgEHuM$U@J>q&4Qq|G7 zh2{j4qC1kHfTDMmQ@H+~ZmCV6c!+>rV7)34a7FKnS+oXHVou>TZ_;ys<{0HL0G1&XEg=dP6kZjj2s#Ty+c{+BL92y~!!2hO$SjAV zcr!Z0Jo#1lyiy7ML-Py*4Z>I~D_90XY!+*t%dX5KR;38a0w5X0x&wnBo5BzvxQGfO zH9Lm}w4WmlEbuNkZIR&;*@-%2-Qo^VP?T2TCVWOjur9!Y$RRLF(nACypAHP0ZDQ;q z$Y%@munA0bIIfR~8Ss&D&7cyTVs#^4oi~V1PN9P;mK(42Is> zZXd)F{Tt1}6jvx5tE}8mkyF2j(6kbj#v?A#YmiFRxXDz0AA=cT3zk42_<$SQayf}o z991&X#o~W2+rYRkTakr>8%PX*<6s8$P7q<_l{ZbnZZQ}yFhT;j?%>EpyyqqgI^qPu zt;RP7F>ay{U8BhmK7X?A&S%4kZvliQK4`T_OfntV#)MN{@fO<15;<`39i@q2V^vY( z@XsE&xX;ZZl7R!=#WGB?Wj?JV>B=LaSWSuI`%3E*VjsZK-T(u zMr%?H$U`Culz%Ae`vdz?Hgo_GaXxx^jRf?hI--Ei>!8@cT6xo3A*O@eB38PFyR8LK zO3Pn_ARytKVaXzKJ*$2Pnbhg#djfPduj1xhlM#_5eLR&l_Yid&ld1Wp0bgNSxFvm% z!4VrBvF)|!E(=pN$>AU zTfv{_%R%MZiGe{*eEnn2n*JZKU%y%a6RSTm{{U({JBv>n;sz?P4kelSZ}rDnt;FI- zQlF6fpL0#jWU-ajbsv89jhddG&VG|qs5cJjLlTM&7&%{BQjq=S&%A9^;|a!^=zM_t z=9BQo27X?rT{bj8TWyD{^Y{BxarlJiVJA&}{i(QI8G=4>5BTd^%YaNVK7DB*fI3mQ z8fOsKx9!nmtKZ($sRG+%PC9${=S^*~okpGYgtqHXVB5IN_8vnr>2JSwT&}AtzpZ9L zg}z8@smS$@=9h#gBY)%GJgS^Kn`C+JI(aR$qy!T&J^lJ`Krpb9i5dBw$CRN!k*s!* zDXb)IFh^}W8e5}dmIqDOW)%R|@XJJ%nPb;!Ii%(5>+M$JN?S|!=`+%t@iGsVar|UZ z3&gigbi%?iw-#jk`Rn$hy9T%k1L-Hr+)~_J<8V5`_tuu~{{Y|0D{(eCbB%rf08~IC_XO(^ z_3gDDBxyfPXIb*59}S~jOal&kV-%L)`}_M;upa(6FXjBD^r3eS42WJ*q329I^fZAE zzfiT>c6D%9MgToRoIK|>Fu)MAiYMf~k2=Kaj-%gMnikq8O^%-Z%~Wn$I*FdurU>w^ zI(t*)iuU+l^4>55{{Yk_Gzz*7X6JP5rm>+9Ihu}Itw{g3pk$J=&&mfqW1 zDXDWw`<-@sYW7ZOsi(=c?0%L10381Sk^Ug?#}pxzc_fd?aUol9Z(D9Qi3HcZ{x{)F z18vMRaeRPtT&=k-TZ!cdQecBD{yV|r+z2+5Mx)cqY0K+hrhmo%0OkXW$S(k!EjHb4 z#G7va0JsH+02_g1Ns!m%Kjc5-kFw8b?80vNybV&@lg+Ct?Z+PqiX4uslQUk~8(EBZZ?p4 zK|6zJwGkYsPvQO-l+P$P_(z0`v^Js{LFg5{zyicr@QtM_gd$lY;o<<0@44WyY}=iR zOI=doJ$@YV@HmK@Y-C+xJm|hr3Opf)Z~Z`iEYaf&iN`5K-jM?q>W3pBaK*FYB)1kE zD=r=@O~CjS{HoA3WZU5}Z#OAC$rP&G8_y4!nIo86Z{+;e04=)gpm{<3w%XcGteSQ3 zSK$48IW-F2D0uEJl6kx+^9$@Jn&z0a+6uI**;oYECm-S4IpzbIS~$1b0~U*s1M^y6 z=_RxxtMS$nV*9)(6_JBzxCeJHjE-T-SzZuo9}#ud3qf}hLp=9tUnsWTTdf0@8NCuo zWzibhtT%CadgtNK22xYk-7!VcpD6g;f48;DDPi2J1-T zU2V3EE_V2ZitZu^lliT<+EK$Jl(Tanb1LTl03Gob z?`g2|fp8>R3)=B4Ar{<~p3P7v^^WMY{Nn zLygC_)6H={8&#&!b(SCr=679nrCy4-w4&%0!~R45MP~>eb89edwHt^G3vRVfF+A5B zjjjkq+J8O&0Fr;mIJ{!-D$;p{mi|yqqzE@Ha<&m)S@4hX-M??EdavQL{{XXC{{Zn> z^~2co9})P@$FZkPKgzc@PTnr@(q-~a-jDpx{#p3M@a$)XFXm3!u0F!_oFHGU-2*b znXrpEq@Eh(ZfzZ4k_I=l60jHE@oeR2xVr9pi?-*bp!iGxZM&990W#0yBK`4?Ch_~% z+JC{n@(;08w9={{WMJkE*GCud>tpmFuNuzwDPDJaNY# zx%d~xT@^0R+A97(>fTR-<&yH@A8~iWTXP;W;O4k8c}yP%B-xh6V45 z%w4xyZnYEt0QB~_TokZ*ZOKBb#Q2hK$Hv$D`|pOhWPk;Z(t#`osYnuFZ)jrYP~w(R zD#2yO>$zJO<*%yw;*V4%`c^L?00*&@D__8hpc;u!se7WYOS!CA_y> zY>SfRv@aCgJVsLhBgzO5Ff;sD^1qeuZ1cxS1BdY6pT&LFgLf^q!F~{Jn~CNn+v2nm z{{TeMw})uD(gJpJo>pg>+%;CncL^n&m|uwD-*B*-MT8It09=PLcUpflAcAjTyG%uQ zSidT;5JiIH%5mWEgg^y!M`R5`RZ~kJC*jfYu@k{0kmr>6tt|qDgdNGWj(K+$l!^R5 z#hXCB>rLF(TW2%QMc0cV184?0nJ<)0Q-kop_-?pB;&9A>8Di8Oq6MIGq%OF?Akg9b z9mKnUYHzwZ2?!fT*nGDFuaXf%GfXvBx^?>~lb7HuCe$tD0C;1R&BO(sYmY1CB^yy8 z+U{;)%uL;J!xiIN;a#8s1h;;OIXpNE|IYZ-iJ!`j8X+(FA|U|LBqJy z$uISDc)Ui}4~n$h4VH5Yg~s4NEC3i97(#BeS_%wZUYX)WwuNoS^o4gIPznUe6LEmZ z=70@&HePObaskXP0do%wmPa$Vi;5!PUA7gFB%IdO(xv5fKZSocY~vmeis0MD<+vDE zUR~HEiDJ-5@bZg6%bBhIG=q8y=nSq?Vj%L}ZPzn#86Xl4Ws~2;;IeN20QA+wg7p9# zj9bcz<|!gkV2|;99~IXTA{rsJysro#84TBbg5Iqoom*74ZDf_aUbta(iak2YydU{5 z{L6*#;apwk7F(X@Vbu8pUzYy>p8o*kUOyDY--m9N*hoHiWc-Ip`~Jc3UeVh>l`D3S z`#++^`*S`+wR}fq+3fFE1@+*5+3{Z$ZL@X20j&yQ?kcz1Pkug;`s+` z8@@xSugdtmQ+94Asgu)Ee$~xiVc7ow#&$b8m0N0^ag;*w&7VKF_|DR`8#TMn7J47% zKhAMD*K=_$HyyACKrlRoaNBiZcke>$tL$i^nkiJ$l1n6d3aWKI>YTF+s8ROlgIh2P z#MZi+`*Hie{isnvp-phCEujUiM2ZH0BD1YRfNPKQK$_N?z)%gu_u7;Sen;=;SX;K5 z)RKU3@X80?DCwu~=k}xmfT0R<1pV~;>!lzSg*DdDr+@fQ^PElv;_C_{BTI(FYCf5- z+y4OLKk|D%BEfa5oAp@c)B9{|`TW~nkNki9<=h@1zRci{_8T7c^WPTuO&zw4>TR@G zK0Kc(LZTag!At+#3q*x=Wy>+(&e%Dt6t ziqtgjkG-O`T`H< zRIoFwr~z7$z!*_<6&`9k-~ek-qUyjitf(3^1{BmC3YdV36kPynzzd~xMFCYLP|*|} z6ImgvS}RjpD_Ic0RV}i$qN{HWQVcc$!mgel2Ty-$+&&*wis&2zoWJMZ^`wp!R1O~w zMyuTWHG4Q~2xY%11Jk8n;rL)rmU6!N>?^B*!U9Z;cC=-A=gPE^;nlPj&_U5DV_k;G zdb(eQv=<}vtjEkxT`RYPY?8_)1~CWFylXwES;8R519V8`22XQ@f;jKEJZDK}^xBfD>!WuFz7kMB0$bgbZYSwr`Es_KxOoRo&A1}V07jU_Q(%YqtLBI+I zWU?4e7Se--RRD2F5CJ3dfHVpQ>kQ+vu3w4Z5+L}kfpw)3cA?|coMZCUkHkJ@Y}y^5 zfD3)DgOANRw_BK?E+7#%WLibcgh&k#*HxsTidDhE41j|H1A>Nmqz5B9gPLv_PS^QE z2IvHq%7z2O0yNfkTWgEC+aRZKI~*{4MC5~aV@HZ24>2SIY5b!AfMz2K;vS69J_QHE z7FEb=0IpzUUC`;H$(rZ0k^CVIkWiDx3cRB2~kh*klkia{wk09Y`}r z;kc`s=5IFmZ6IQ1=0x0HngIyZEaDUY0I&?n1ccHNEHE$vBr1sM8rO%3U&OjwmvA(~;otxYW@;Ak5W~0u%^c8&hnw{+Szr~~zyd)wWOU}{O_3QTjEz}f9!vNn7E#5- z=%0$>*F}SGFz->Dr6PjzIe9^h6udVEh$RHaTm}%P<9JBr2%CX7V@HX9_Fw=EVAnqu zt10 zS;Z;hXn!rNa6XG~y#0-W5kk*>aDIlKl zQVxmb000m{kmo_nVE_>@0z%+O7(mjGf(VH7cMO)4+dQx_sUe!zvj%yGh?YpTN!^!# zydXrDylx?zPzuoyq68#LB=~M1kThV&#Hw;*aI6wck(4+J_ka8E7JovcHK$1`(umj|$lP9F%7CkhZYHX>jYC2Dku;YK`6(B69{DjC&N;{;dR9ccR@&M?tM;rDbjZlbA1-h(KgCt!=B90;BmZI zAryf`zsr^ck(2yB)iA|709gmsjk7h_g{ zxqO+(Dd6@}^+SA6XaZQb#pak}MJv8eT}qJL8(;w3^+6E9LMPX)Z;Ii>kr~M)fLynA zq6~onJw?Gm0UJU;m;s?(!MZ1;)Hp^#I0pw%05S`LR{1pzC3zh15Nw011hAMOrJ^2k zMN@>=DZ}3cEHr>}1}DPpv97znd*R)}&6A*@%){{Wx=0OZ?kcJM&B z{{Xea!)k~bJq!-@gSqveIw8ESsQ)a4^Oey<}I#{{Wi*0OZbB z_&{8L*uWYB0g_|*iTGdgU*&J&9&RPZ<%be-kV-XBJ68$eKdN%04lsQNlU~bZ*=bj) z&$rO^dtTR5wFvcp%Kre!_`Fa*67oclA$kBKxO!r|!^9g)2bjm2k4O~PDMXZW(;iz0 zz^d6{CmA!p*Hx2(&XweU8Ws`h&)f2{JXgI_#(j0DV&B9C6}UZii2*zghPC`mI9q(0 z)yh=%fg~sz%aPMeJQcP8dY-HY)#xO7Z;Irj%g^h_$_?Mo%jjZQ9bjxE`W4?yQyvG2 zZ=mWKAe;?4Iu~244@iV_1mo09Qj3UXi)WfnJ=KH;_zOv++z#p{8NilIZzXm)-XJ>MzEaEq~-{nI(<87o$Jju zSb6&JzuMY}QC2$EudK0rvkYM# zKZm+x&VYjfttZIzHOY+!c}g(I_tyiSA-FQA>@FF)Ge^s({L-+_#gR4 z62c#gp@VIx1L9<(XvNy~b>#pVNr0FLEq+~8VB)di40hgjY%Z@~Qg}9=DZZ=5d1d%K zid|Iy09PF!r!()r$NvDHvhW4B5N+MsWQfpQ4ERA|Nx-h}!~mbt3Fb{}u}Bjxaxx~r zGU5QlYp`PA5LtpzFuvZ$z<-`03(2?yO~>;@C4=YdTq>f|N$j>gsW-c{^Imu#UvcI{ zJwX6XpcCSNpr6bOAZs<%_#C200FpxhTwG);R*gLX@mDXy{{WC2Nw8bXqCB%|3zQdt zvjni*mKh;~(7sdR%t3JsW(k*1DB&Gl|IjfVI!D3a%E$G76qlK2Gj?~|w z)qldPNrHKGOk4yw#IiRJN(9_MZqfNrQ_KN3T4NzSP}db9eSjFc(Q-hM;UR+BAg~Av zRW7T<;}LM?gEo>a1OP`U)pD6^K-U!seRMhQKoAfmTscrIkpy(nODH6U;DO;OylH^m zrtO(Kh%~<$!5q24kX5%53<7m1MDl=-TBpPDId)e9c|arpbq7tdfn;WobpHTb1L5po zr~rOp`GF+(M5E%=$rmjJONYf{l`#fOBm)H&iY6@*Us@-Q1^^O`hr`PQD@lkYu`@^F zK^HJC1OYH@j+6SbB?f;`P`UdXi^8?rARbUbzz6dJQI5qp#+%`}wKsDRSx`n}eG$e} zrMHCg2$&-PjFiB6NVKh?!uY~jH(Uk|O3{gAS_>e{+04wbXg3#*0C+7gt3^vO60i{) zg~j~J10dQ)xI^;*M&UA>&2B3MgC&9n0}4t5!z3ob7%@_|@SYO@4Tu@LL*?rNsidrH zMY1J>69f{)#_huMAPp+KdqFFi9C+=P%EPEr2=>LBN&0(;bt0!cuP zo*`@+a8BYRQrp5mBwEr?z+v=k_oFN!IRpm-^I*v_zi0=nQ*o_q&tL#%0t-wxp7lN> z&p24x}@L`qE!3sOo*k%C{Eb_uYQsO=|>irh#Ar zz5I<~ptzXupnTuj9{z@f#&UH2rFqlx6gmUGo@>){NNiGp5A7aan?zMhh6PN1EyO0o zeUd&{jcGVzmLqq~dk(czDp@07y4S=_RN1+A5z9X$KN;hQ-V>OF))2jM4ah z7JkWs&e|0^c9C6tFmee5$!MELY5dAg-HmidgH=GY;R)Bm%xnNbgZYC;?-hG(G6De- z)Eq4qQXTcgxV%CjYBiB1{QDF#5S#FUW22P>b(9G@!gZv0^*5QV;1F2Coy@QYn}gRB zIJ_f?{{U?mFWCFjo-c?LSYcuWH9j0@G7V19UNk>4$T}}3YM8zvTf-9A=tyyhkt?A& zp~Ed^8Ut(sHSSRXXsLMN8(QES9Ry&`1oglhM3yq|<}%rqNYPnI>0GRYjwi0=dDSv`7GgR+oYV`5nB zA>&+3{ONeNpo@s>)SN6t42s6~TGe_)^y%kZgL{UO@Sa!9330fn&WT8>(Jgi_CtSBN z2^=aMJq#Oj7(-GXU(G!z6K^-=GpXAhWOTzFYjN#l01t$glsq6@AJqip>rxLOBZQiU zP-Dc2dxAnEt{O+OQaNd#mf?t;V;M1n8@F|)32Et!E9!PM;q zNKAmEd{$azR}IH1Z6GlZ3?IA|CUmQOJ;9D;CulL@3>G{@kVxF6bq*N`GDJ=Vq=ryD zx@bQzcnR0xIOTxY0pSqHKzR|$*-24xB~HZnJTw?22<0$Bk{~iUN$5)(px0OfMcv{K z(P{bt$|1;P6Riua0HgsD#HnKhw4RXE+9+RX863RM=Pi($0{}BJWx7Ez9?m3M#PXTu zIC%meFw-lPbfvt9l!<-qKt82}5!8$p=ZuiGkq}d4!6Zn)D6goYW#ZeJ1H=pqqz@E? zN`$~M=T;{Y75IKH<+R#MNDz5^JkAlFfaZ-Iba9d(n`Yf@7JvlhGcy7RnF_ftyO4>x z=goDb5&&&n0LlExtR9ryTOo%5%fs^%bHRhI^>8`5Wys$QZnZLE;$X6qyLMKDM8H7R zt|6Ew#K}?6!x;R>{-A0pKqlvHz~B!P^ERSE4rfy#)7}Gu2{J>$2y_QHfsl%&%(rVYQgDeR`qB*#U}(0+Lu?bYwA0R}r^NU|E@Uyd zAmD1w1c8GGF++vN49T0IG~e;Ql*%QY!!iE=P?q_`QxSB|UN07L;chV+4f7<{;@c0g zWMFC-8UE|4=|d1=4q%ZJ@_QQR_?`}Q(8>{#gU*pPlcHxZ<_cUBq<8zsPNEE%TQi(H zU$SDmfQPV#v*^!aid||KgfL!5VVyP}bq>m-n~A}liO{yjk8)Oe?OfjwStW9T=C|{H zwbpYx9WVw|1Wfb;Dx=1`w@5xkV-Vl-mZ0rRxzA|3$>V4Aon=o-+$)LwMmq=vq97(- z#q=Vqcy9zE5fTNY%xZTMnCPl}zH%Fj2`$fTVrErCtjL3e(@$qHN-6xC>sOJ4rxLetOUMOpkXs~31oD7z>CKul07Mgj8agB7Q5kNx zGsE!^JY1ly1Cz08QOy&1JiZa(R+Djo-dM|KIv7-v%Yh+U{{S_xa6#$IkV}~W$W*@% zcDCjZOoB*|gd)jInw^|myhIGkBT0!tw}@jS6-#(J!sQ`_lej429iX-lii#PAjrc^H ziO~(RQ7{ow_H}QIxVu5O4O-2_5Bm~e5=Yer>z9kfxDls>6KNd8>Jv{e%Nv|l;G35* zF5(RBcT+woCqI|UwIg>wBfsGODcV5=;rNzNAa4Zb86as=;>Zz`z+uk+WAw5(Xud zn(i-zUCe>D<}knYJzRpxPyvwKJDs4QZekMgKK>vr*5RwrioA|74tbx;V}ezsT_2S4 zwt7h2j3TzF@wmW~%nOEY{U%^JOlW26r$-XiHp=Ayk(F@q2a9D$*u1C$h{G995NfYGTIE54o(+Y11wip7Qz7@5FnnR zc3^7bBrE{8@W~+Z!bDH0A)QS06|}({*#NW9R&^-5tv6rL(B!Fn7~h0RO8(k<+^#K5QB?CVhK4T zS6h4_g4u_2fCF67=liWRp~4oZhJQ20s}B*Z_Y7ZPKx7~wln#aLSOqED6rkJWa_1Xj zI*Em?0V_B_kOoP>FtpoQz^gHWG-BZS)4|6#ZK`KRsdlK{ES0`RK8&d)HA1{#A)7%m;iW`mf%hV2H`lX zAc#0)WM2Aq%tDu#H<{CDj)3J72VU;2!n6kYbQ+v28Pz;Q13+BN`H;2r3B+J_iy(-( z0tk^EV2$y#GxKC|(Pn#-FJ7V%A4*~Y2*IAM2+P!DEv3QaU+W-2crqpe3GDZ)U{2ym zetr>&j?C!dr^CN2L5Hz3w@hr+Q-#tu*XzG}BFJw`nA<_pdTrEI0OHzx1P?rDbtY;T z68h_1H;ts3kvPztmQL;}96V3mRiuIEU0+!TzJ?pwO%e_WTfJVZ=&0~-5SV$!Ivj|K zUI>_be*4u0EVd>PfJB$5kH1=&-7kGk)ouu6S~il~17{t&)L?5YxCD0|{OTYRY(SVg zC64;c=9cSP^umqLtvInu&KbyfI33FZj|yQ1eE=P?v+boy*S!uW4tm59^&ay_;l#(0_P%6R9AB|` z_B`gUb|BdX0qW7l&jOa~XTHa(pX*~skq}BFE2ms%RB0@j0(JL_p1^J)I2$6mZ|Uh- zp{VlJ;O)M+9!tWszj@Ew=}utCVINbghvw??0^5N*!t*9!?Jwm|a2elCd(OJSGqnzA z6T5pT*Q7*7^!ISFmW|6lOmBezRBQ>#26pyx*p{`WD>IJ$K7L7xdw5c?QExbr@1`m2 zpPxXwpDD%#Ndj45mFjlg3@<-A7x7;B0Y-H?e*I~M<8{?(*hXR;)eBl4QbYi|?wTt!NuPyH;5nN6#;BOw;}zOM&!{k#quE zc-uk>*JbCN)jkuA%0UcWY=So)gnIpHZQ(|m&WKN$J!-eTWEt}?(AWr?%}~@8IJ!Sc z{{W1C$VbEuUNIcQB>rF>r1G~8z)Tc*Kmb?N@h!cJg1XZ-+k4IE{!?ottn+{c#i43H zh;Y6l;6Z*S!FVbB+9O#CzefK6j{gA4Y~yl*2)qI=7QSnnEL$Q7B-#zKM8P%q-}w*t z>+H?;p3J9bi%b1^{{Zp!=zfpze~d2BmcwlS0FuLlw}pfrD`(2(%z`EG6NUb=DkRV7U=DSRP~^TX}6U;+dCA z$NvB*ExVI8@{?%--~fgQ6Lr>(Zy)P?sF7cvpIdg)rDc|DuDbB&;c&<0{4hu70T^cC zXp*cv%#cmPlr?HqZV7;Va6tS^L6RhZ2_ukyw=X2!=KlZ-@dT%7Xx+jATpEByq@pJ7 zXeinpq@H3#gJ%#-a)40%F)RUaEF6$GG%ZccKf3e3+a3nH<19B_b-bqTQF%97M@xb$ zBp?|b59)p=6oYZJ3vVP4$ah|)!g65qS^{J$9500sEw<}OwDK?i0B32(iDVFYm>`~i z%2av(0OdX>@PRiDQEG#DwyefM9Bq#TB3(tN}3aG;IVAv-3u29FZOE-V|b5G zM*45#k!ZAluD6$&$r_7bE*R!WH^~O)Jf9oK;j51t;boTEKMGGh+Lv^a3;zH^cj|H< z&3~Bx0OX5BqTU6MmU*uL+6qp~NhL}D09hoEYvFz~;;y`#@4J|uq7Q8V*Z>`U@54XD zcKd(l+Fy513~GKDQ{#R|%l6OmEtbYtXIs^A$zR{4qXv(${{SQZ06(-x3?3!K0B*mS zT2z6^*-V_;2>|lRubBA1`4=0Ah1^S#&_Gy}nprPd%kyvY`gupzfVxlatMtyr@LtE* z*Zf;Gz5f7bdc58q5PV;1_@`;@PyR~Wa8_POTkOulpN)4xoQ(Qu>00oimFYdZ{VNa` zysx9}opkq-dZ6)d$=}Q0T_%U(V@0Q3O+OHK8ka2jW3?|e#Ak8WA4-S{c#1XM>9=XD zN2lyRl}C;9!4gPaap^#C{(*KUUwYL7fc5R?M%zMu-%4AJSCLCcL8|iBs|5IKUw%|= zBOayvz3WYAV0o^+_3aeAJ{vz@e)>=Ym*2f;8^4O8m|sEj`_l02I(qqaq=WB2;a~Ha zw$3>w+d&*VjChVMy5T&h1`A=}5%-*5hp~8J+$R6_y6b@?9#L^l(0nm9UIzpocj2B@`3{9xTe6ktFA86N9Hx`@wi`z?&SvKXtast zHk+6{xdQ%CgC^Ey59Ph1vTeIHTf1rq}WE#<|k;#l#7WLF>f-WA3L*Ia?LU(7Bf5^m+RmyS{{V$*OokU-@X*~8)_ z$}f;xb(Vs~stG)*-e(sSG`&@LJYG?7B=cGc1Rzv`PvsXFyPLo*3P*$*haLAyX(^cf z{oI_KABT%iD4)w<5pJWDn}BE>kO>zudAUqa!<&h?T*>^FJ8Zd>4TRazn~#LR(VFxv zwA+DkKqJa6JjlCkwD>Fl3DDe4q6r~?@=$jNYfxEsmN{+1GR?ApwIpdJTS}%@xpCpa zyQz{KPl2@9NCX>#1d-^{_{a^1>#!7q#H2?p#;5_vE{msL(iUeVB% zP0lT2glq86KZSjQ?qSGHtr2Oon@D8gT<#HcGjJFzaev8w<>TS_Y_G+>MUA3HZs;Sq z$4{330FnOy@-*`BS>+t3i*%c4`;Bu!PS!K$BqyWjrgN^Hxf<6yRId(=TW#*aIF6J_krH9 z;b*0OvXZ4jJ_)(IHaxe>{tW|sPMF8enEe}KrxOIPOfKhEd+)qCK^wOF;Jv0-f z>^{`DaO2;zQb4x%R0Y*QeOG^f#U+icHka~IjYcG9h1tN{N({lCIQUgFA#5>}F8&i(G`}^L7-joNY z{{S5S0Fm9mykBo?gNv=(?h1onyMKrO04;AC%XpR+2=fO}dW~!O)mPO20P+6-{H*Xe zoVS1bJIEJLjsE(&+2hqv{6B}n2d__guD%b$ zqHva9(`8BU{4FiqIm++2tDYMt02$XzJodr$HMEZksYT&4+W91;#TIe~<# z!Q(d=iFd=WQ6Vr+2sdGaY-D(Zw}D*OT6{Z^%N)dmo7ypvpkZlUD1yj8^#bVuU;&en zZ{|xPoB)gPz&;ZDU50TWry_wk6NSPe?68cINEsZjQ3I?MnwQ1jGN$JsrU!`t2_oRg z)sC^R2I9@A8=E)~fm*!;;9a#>;y7|lgrE`O1c~O3QUEM`Ap=p=; zL119QdQ$NVv~q*ZYB=4o1h_x;M>R`$(r`_{!MpP>_7UH*9Y*33NLJiB*fDjX5pp2| zp@<_ns9er(isC{kpUmwg5Jkb<5(uIQhb9eFaY-TshXk}(dIdfcFi8lJN${LuZzvPF z1u{UAO7M})p1=VHm*Orh=H`GGAs!KN147Xw4saYgMqNR`6Lq5C6xuBzA&~N}8f6F8 zh1_QJCejZ=g$fuNE$6W~hD$8o=;@o@bUb zq0ne!HA{HO4q^r^(Yu_C=K$PrcSLK{hZF~BCM`spf{fY@XIn(ZOq92hLLd;3P7XuH zMo`Kv#UI5G&BWS`;o6HRo??+i1c3lr4k&TgiQLyVfs=6kIq?4g*o+KIq0tA8#BJsc zs2~O>^LR*PlE;Tus&-%ct|g9V0Xs@AK>W!@2u1~OhvETfy6F-c7%YJuOFlUpI)8(| zz!FkGB%442VLgWE%EUw!t+p42Zh$}7!XF`m zs=t76Lx1ZbYiT;$tL9+nb4(4ge1C}?nIRSe$tQIoFbR^b$f@!J$~&ipi$UL+Ed=N) z*KnBTJ3s^SfDS;=EM-YWRENX_7(D!_d90kX`eq0L7!?{SmG8Tv+J%UJPvz zb`L|>_^5xM{{WHj_yOKoOjr}TV9o>8O4TazKji-a^KruP@YUB~oh|Bm=%jCvU!44J z#a+a>-ElXa^7YsBl3*wrZ|wFRpL_XNYEPT(J*p*9{k@Mz{zd-)Cclnd#10-u3>-l0 zOzsqvtI6TpFCdLhO4Vt$>slh$sB_qFI)8Cm-VsCsSRTE)EkBy}a+N!{dEv*}{{Umt zxo>&j%ggW%7$>Hazi3SPF+%J9USb)-jD7W|{9tuMN9_sEeJKhj4`jeSJ?XVoGj(ro zZ+m)?;buMe=Xuv%j`=w0RJOthI^f`jT2m_@I+d2=8?2A-r0jDeto2`Nf5Ih{5CbT!nL5Ws zijKQP+YT4u>b$xYQJiZ@o0>?UO!QqyZxK!wp^{(>>zy(n0@uxWcEjkz4Yim$gy@To zRKU;IUee>t`1L8W%bY)^KSQ$T?JMeI!ZGS|qJi2cSy#9Y3dKDzyw6*ys!6Xh`Pv#jfPQTA;r{N>k zbJIYz)a)q@>AsT@vVow+{c57*fe;h(3=B0n_0pwn%%rc6m)|ZgBGQ%|HSM1)!Nk8o z%0{DO>)cM*nl|u=oiyB!(=ZDI&2^>Y--1X?kh=MHlCWv*uyZXxHs!Q2pmI^)YUb@v zpFg$yKIcVxytx|tPD2C9r`OF(Vw&Qy;vgp|Z)w0~yhL@TJU2O)fEj`NYY?+b$GDOt zuhlLl3^Jx!Gh9=cR_FG4zf4Z8MfKs5^$nx|Fp+=B$Sg251=8?Oa|LYj7BJ3WiUQJH zbpQdk{{Z3^zgn;a21v=s&|^^$lj$`oYLydr&VHW09TcYA#g@41-oFd+hQdg>9&V^k z$4H+{iu#}NpXM#Rn@&hP#QtTU365btEL{im&3t(fA!t^kKbN^9VH5?)Vf2Y>^GQlF z4(hq?&tDB>d0RcbTRxsXn)5$Gvfva0U?F&-T!ZLic?4R@i{aVNt^1rHGy9&3%q5)0h`j;D0|E+D#juC^cha}fOjoIM_`?pB+F z$o)#*SEvj!4cg!d)}zF*0pUhN6C|-C{cd6&0qH|n>sr8jcn;ESC;dk{1oZ{VL6iW0 zsVbf19Y(^^SOy7a5^yvr()?Yv!hRM3givHa8nL?Fis`=OhzBhorv^|3fZL3jHI`my zC&OM6XKxJmBpC@Yf+i~C;hmtDsHm}TlL9>+b0*-E{m?N4%EgZy{ zfoldOln#SYltFo+r+f#yhM72k8WE2Wmn=P#%~OxWCfE9WB_abYBPTOC-@+(yz?-2E zHiB?xVRn!Zj8YC6WP&->;dBWs=s-aVh?q8_m@ku5{ zcSGI~VnS(GF|^ywb0n}K2K8DkLIcDPcyM@rCI&;;d3`iTY9o88ogaunAT}Zd!4BY_ zk0%nVme^++oqY^Oy$mY96Nbwml86L200GS%PP0C-vfyCgKu|ZGQ(3g0wHdm9V&B5j zQ191mO!@>$r@xFz30n=c4vokJh&YqdhZwSCb^idU?>mX#=Pos%n1;v~F`blrgYpzM zl;SVL-3=4pL86F|LksIehBBOu^5$Oo*Y8^0h)56%>pGuv-0?V@07~1}?gvSzY>=~j zXF2Wr(~`5@;M_4DSo5qH@SK<KFG0-^l$MuI);a(QLL&*~GbBU?)FBUe}_XEzG zhDPO`bQ$mT*wjU0ac-7Je^b+F_Gs|V%5?YBtqW}H-G~oeeVTiCso}!vFktVOy-Y*k zg#~(i{$F~fz%T>Box;;?lhewlW#0AE%5?2kve3vRfu>(?RiyN)h{0h4v~~XK{{RkN z)6E(bb}--S6K0yN1# z6;$BwV{kaQLw%mGOF9LsL#mn@x={|)H;?-gk;%zHZ%gqv zXq!YW2UQ|NedNQW#n`~}3q*r26B2&W_Nm{(QY|16Gr!BJ@{vu$5#s8l5&RhJ1oV?& zyl%&0HNncllo?gTZti6;2T9g{oL6PnM@Bi1L9fyPnW^wDfR5`X zCJr|q#b*8#2;7FWG8V8t)z1FzR+ZY+o%MVGYaUhgS zeSrw*Fb7O@b(6Yz3JA(^o^KOcV99%iI@Ec|<{`thI71|A2|8^!ilw|l7wTZPp~`#h z*=t9L8p%2j(nI{D!_0bCc^wsraW5#wh>ZvX8%C0~4lAD9Kl=huSPED(&53B`VAX8l zfbNtQNdOlz5hQ_t2@$0Z7s7@FB@BSKc~PM@x2+DTq%RZVU8^TjleClKSPvoM-LXS~ zz_b!Mh*tR!WCB7V5z9LFbzUdJ5qBygNLLZFO_)*)1jcE<1#*H;rG{C0MXB^DV8upB zQEbQHai#&Zl>`|tc?pf@#9oy?KN(%iXz^fg9Wgw|0!GqE55!H=`hkqZJ=~~ybxsAq z5a!WnOlV0GVIF9Ld0>oIjKWvfU?K=C1SiEvBooR4$RZO(2`!S)Anq|$yMfF> z9NeG{$UQpxM1=;D(o)LT^IUaSlr&Edv7wpsIzArI0Cz(mhs^*IB}f548-mp*1K|WH zg={zlv&z?Q@~B&UbC)Hof(n0>F*uj06;2NY^0;mIfQSIZq`}8kRKu~YIw{;1EyT!K z03mh^rBUJAX}eblA{k^7B@v_(sYTJ^-OB<(hWSL01n$6sSgPB=wG(t18Ut*dvCGmh zH=%G6?gNv*GY~uKnsS7gEK_kfvIxLi%b6H0^#P5IZa>3-kV+y0!Q5>LFhkp2$04AM z0Nc7YIE<78D4{Vqt`bYPCahJ3${UN;+MjSh!q&wN*KwZ>rQBn&AgBde&` z0g3Y%(LM7YwPmBVE)m6XkIFOvgTG12XFF?14qz|T_WKjtIzX%OM7*R#jbeQ~>Q@7^ zD7^+r$4w4%AS%h-Gm7h=;HdufKo_+i#5=@1v=}FNE3}pA0Mx$_fq|Ga(R34^x~I5mZXkelB~M0M zBSvJLPU3Y6p)fHVsX)vmP<2tl~!{MM&FX}?O1 zoE~CCchDTIjldYjqo}XqD3o*s7D!Ex5bbFDn2{d=IDA4`jR}=FQlvJ(xQ4WKPA?B8 z;Wn)?v<2aLl1$=icJP8~4(LG`-V2lgf*jLvEg)et5Kl~9zj67rQK6lR{4X4X7jKN0 zw>O}U`qT1di2@4H5p0Hm1+*bFT_xQ~OacNR1^vK~+jPLPP{1Sr5g-`QCT2ARmZ=9f z#HSyO*ai-)_ZXW+sjvorEKs}Ra3;(symY=Xn#tqA}r z7LzAbpp~HIraBMDFQAoAMLAO;BwLv)wA1)vzM&O{|}k_kps!6@gt2!#Hu4>yOE@}d!e zsU&z=FePF!Nq59#x6H`{EZq`8+5u6%qQnvy8Hp`y!HjbdJV$EW0C6ty4f%_5$shor zK*^9?x^4jdC&UZXGC(2;fYxFG^BgV{L`)KkaC}*D2^Ko#C&c_|ERtEoDEy_ujBXZ@ zRwl>;hwz0kE{Bd&pQ;Jq{b@M^1kWhN#bXS7&?Ysi9x`nx7b$=B1Q|oD{;2|(U3H=g z6OajHdCVf`rD|9f{wpkyl7fKj5bVe*9ZQSBR-Rz6Es2bWfuY=rx8Pby1__W^!9B6B z)tX)p!jhy3B{E1wJD#MJ4F2TO1c0@W3`0XKf`o!V>+-4J!y&u~>LYzLD+HZpx;`|Q zAhts6<^k%!fB_mhPCo?=M@aJ|jD41ITTc#TCxaJ25&e12^w$kCS#$iZ%LHp%i@{df zWMGZ6)fgu@&w4))Zru^#G6Crie))BA0`WLv?QS5G%d%O}WK4)4??T8Wl?d)53s8d7 zGG?Q7ia~`kC!qU7=~v-!M3c<5ogOYdV1o4(r(_A*V=xg%e8K7_2Th)`>}vs$`a_L0 z3_iUn?&32N4p&Z(5xk0C4-7JJ!OQ^rKFIGtFT;s>AhQq_x{1|-D;^qUy&!L_;wB!^ zH2f`XD0G1$d!HloRJ>3(fvO?yx*npe+zW3EICx{J?+9Z`fBbTQ8a6h0B(!#oHm!I4 zN*n2<9E~s@hqk|lFx%GO)%$kW(vk$=h-(35b?<<2wI>SxxWsGk?_FFjAX1zFB!Bs4 z1Q^>&fW5pdm_9^nIPaAdPa6YqIDfbe5H-k=*^KqA$p-<(9@sjV`O|T}A1LSy#;PAz zwN~#4)tLl9!Y%}(2X_>Z1H-~7w!nxP>^o)cQQ`0$JiUJ9V<&j3{4){+r68QYw|7#z zj6ldUus=}a_Nb=>17{cp2?YAua^G3aZYLCoAP;&b27G{3Bg3AF_1mi5I?0_wANzaq z)+=zaAjP2Zs?_d%X>GIiGlRaLdZ!bK4_FdT?TmB>E6h_{d=Pci3?G-CSnWwDyl;li zi5WqJ`xl^--jcvx<#ad`(7>wx1Gi*U>hYXo+o+`SlIrzZXXQl5UfWxE0f0o2)8&GG zPNQvvC9E)Yf{)6N5YDA`?|@MCH2gF{Fa))kfd%}Qb5jC<@n=+h$}+r|6rcG76DDRM zZ4pj5IYpqs1PL8AK7D3s?7h#BS~MpG{{Y%qidY=nF_Wl1_w%l!WIl+lxE+kB?^3qc z<)accLvR*{_s4|rMgiFu?;Sf;cOWF@+tWSiINTXCyWev9%I+wBG=%phhH;Lu)`k6J zwwcP*pL_7KV0??77Rkb3HJ+<9c;h2)toNOIp@ z=mG=QR<0MHrYX22h9ELJpD*V>L1z-yw>ivqGt}##RQ921xdO`S0oWb1?M4mwLQ%;e zfv}c{8pdPNlZC(gE&v9?m*a+irGQ z)4sa-HB>wyJjO(CAnU53W%yf6f^d0|F*;=9HD`bUxz07%51xJNO~c_CECdYaOl$d? zq#9u9>i%G!nrWI`7$Z<&p5^Sw>#`LXCwC4L{XO+@_4TIsZaK7qJR}%03+ev=Yg=`R z0K7&Fv(zLr18tos;vh$P&dezuW2G9E3`|`8Q~oRe05be*2M?Ch$FuS=kPz^-AP>k0 z1gHV8q#PTkm=-}d2=M`SKQUJVK?D#w_v?446Zf$mSfR+AU;@fi35gB9L%M7V?O?^4mo_NhGU@7Xiu#DFGsc za(qAe{s;h`FuVp$!uwsti-NQm{{X$9fMm^lZ~T-00FYwt9|7BGH#?jid?MfoIVJ>@ z1Ok3nu>2Rb_PwIn(L+l*s!b*5?TPPuPsH{eo{4oQ$vK>I%O`v}9=G|w`Gve8;RgOD zPcbgiBy(KjlqgqRMWWk?lV6_y0FnOyH^k#z&3)GrjsyXyv|t6E%;eN8yQx#;UQ6$4hYZBWzxTA_*cO@Kf~$%3Tw`%kB0@xc**(SZ}^_uwpIL`Qwl6f(*FPx{{ST7aGxdK62Z3V1RV&|cp$lTz&M(8$6e`7y(jkm2U)ILU5?LfOWEyd zRZ{YB(bH$NuV+^E4X4Fe{RiRy0QpD@d|VOF{@{jPyrr;63%lG)rN8{MZoDFVJftzo zUd$2^mdU#WfnS_nepK9FeH^cyeB1v37WiX-_`m(C`<~zb0Oq@A{rxHXAG3dh{{WTn zz991Ra(GI!hygcTSBPBGL&Inoa8R#m?}oTq;1P~u3g$eZ+z*P|Krjwdxy^q+m`L@F z4SuWt00aL3obx^x5CeXM{-#Eo+Q}hG&rgL2%6~z|XKNFP_MbKGoTscA)5OTFd#P}cO{{ZH^9t0ct?gr&xK->PJ z20=udi|TP-2if~J*RLO0LocqyyoCP z4dUBD3g9l~1QJWRTW~gl_04`o{{SQZ0F&LtFY?%NVAKe=nEs@pz>pM@-}0~dj}zi9 z2Ja1{^4bh-CK-)_lmo94?}u5(-z&X-)BZpHJ4a!qZM#BGZ2VO`mp(7SaeoK#Ka17c zKjPU++5Z6jy5VjM#8Z1D`mbgwNUCu7vcLfkXIXu=r95B0+UKv%EA9`RDRskq<`VhM zO3~Nf?@ehyZ0ARaf5j;;yZ7x;13jKS`BC8y;X+RpFVQq@u~Z7~EE<`12I_x}JK{{TC08;5Q7=NAn{!yu2C z=tX{I{zLH9vD$pb&3_uPKL8mYPYZ}J0s{qQ2p;%Oa60R6(hf4`Q zj(0yW!zQP94_yp*+heZd=U#^kf=?`Ten&!a9)5MvBf_q`3&A*t87r;`jbN|dy05n0 zfrdje_8w+%3NjM%9BN<&19TwaPj}Z|pIh_mwkdn>@YjAj#JBO1teprIZ z9Z~AT3Q0mkt9(BVKM^JgLPLZA8jN^~@)WkQ9LK^CxFgr{$tE-5f_8NL3;Br+t(zc8 z1cC^-X^A6qLyKhY;0O%SOpYh35y!xoT9BUTQiq8w{1lmz09oHcifTp$4~70nSgz`SxD97W%R;mwws0cSHva&rF(nd<2TgZCC|hwxZwT{TKoD_o zA%shI+{iY`#ZYj^CS0r-kPfX~hC#O8VV6zD4aN+Nve*R6-asT=dQjYu_`W)J=nbF& z;ui?ZwX*dfgjH*Jnm7cs9i{k)AOnO+&U641iDf21DO-y zEMiCkH?+4VPy~?y4dfmu0Ng;pMc}{$Tlt(P%wP-&H52g*FDQ70*FcAxKoe=nGcg?; zVp&9_4yNcNctSuON{JXT&BgdQgiv7s9LhTrxLn6-l3HUic>GYo{Y`;%hjD0|Mnjfh z63mcdZ3x<3!QwI+KFb&D6S{7yjW|qqV0T8Z@ zSTOBhr=kFz^GrCQfy#Qn11}@lLD{3r}PQGK|e_x_ba4BmtKp;f35*;&8*oX+k$&X5%`}s4B zeSOVR>jKA@rgC3=X+q1=VePkFu^a1N%9@?p^6>nA&qmV0`GbeTL#orvj`Fm_+Kslt zaDAZ~`BI)KZ+|)0NbInMP+j$s(mCoo6P~oIdl#Mc(fxwm!E5$6D3VFsKJqaH4vCJ6 zj|+xL)D7|OLL_RaafVQg8QTJN+zmulvx*ALgjrsjdG*ZK3%X@`#jWp)$MM?J5B3W$ zWSG#crU3P3W}fac1PwBt?GqntYUtixbk{Sv?K3&*4H3jlHPhaQK6>V`;pO4dJpK5Z zR?oy#8B8bV=N`W*2a3?lb@d0Pdud%92hjLR0dlBtVZ$q>Eu>%)BM63ZJ-TBx%YOV? z*9q1p_if4Rj<^^Xw04vkB+L=e5dqO9wKuR;DGa!lS_ANxD!vJ#o7TN>ZrvoCe9Y!U7l?<@&Qs@GwR|fKH^Xe3*@^i*|?a zmx}Q6ZyWSj%J$D!^atRLd5SFusl@keNqr$L3}N7Clpa?089CcD+%>o_U3Kod#)GOh zoc3=XU?}<&U^_cs*dR9`YJ?av=x|zSl31OF0_orDM#3TOv_zb5qUsQu@!`wPIAd&nyg5b( zTSEHlUZb0>0zyzgCQ)H|;H`C<_dmyfm=^#qVB*_@7VDl>xG$8G%7`%hON&4NfSuVe z3{H8mkrX&QB;@Yi7wKD&CtlH5O(iaI<2vKbLEehp6-_^Fe$S@1z;2Qxob<#Il5$v= zy!G(zV&F;_a{!uoL{5Nypg_j;=KlbX`0ikBH!IN0n}Il(hb)6~3E*^HV6=m8{fH>6 zAsP})wjgNhqT+kHYFkAsP<4Da4ayU5<+x5H4EwFeQ+@PGef?x8jksD{VwvQb?ErNs!IX z1cV)B7NvPc;A9d9Gng~V#5iY{tn7_I@nr-EkY;uOhk(0;4kM$3#zNPn$c|P)!1Brk z8Dp78Hx}eW6U+{xTG#!OAn7#ZN^vR30CE>9xs`yy3HY!u0&z6|02O&a+*m{gWadUT zi6>C%H}M>!b9%FB45BV`;oLwW8h$l~F>wy$K>-mU%t(c=yni3;0@~hc4xOR#zYbMntJq92MGcQ4eH5ug9!wiMKju=(OAmS zr$*6;c|8_pVG2$lazI659!Ni{WN_6R2}GO;TZg#9Y$o|gQO(EU zY`0m?H7^~cVbfj2Kbr}nB^;zMFb1Bqw{d1=ZTyWi(FLtH67JA(f=So}(e!nf$n10R z6cOltWB6E9oI^Uq4fR6E_mrd-WYU=XN^QJXe`Z z(`WDHTZ_YzivwJA-?b&Dua@~(`_zKuQ}Bd6y!J_Gep^z20p4Rs`DPAiU4NO0o}H?P zhz^74`z+-D096Z$B{V%l*!g>NP59dlK9I&e4Jq^+PC9P1nf0X|^y!bDnnghZ-gVxZ z?kCX)E9j@|tsYghjdnh$>zcynqtyP-YNZ>6!`w#wbDtx=wEU&PY>6U&btwHQTHTd7 z?;~7#oKp*rt9$F+b?h-jVU)As9*eznaP5RTNbBgr?zGKvaKVc2;95av$sOm& z9Tu)Ajy0XUC9CpV;Oy6xb+v#-G!pm5&H+fcu5Ji>c%n%{Occzr6jxQz0Q6yRCq!d& z9jB^2eOR4;4aC5bB%XojOp^0}mX+7bs*;493CI#tBP2O0YlTc12rvQA$s?heAXjC) zW6D-hA|n_*N!lNi+B_=P0G=G{E5uMnP*#B$COq&d{{Rhf20nQV5~p!nhsA;} zII{{U*0*MI@ic8mypwZ}zKohf%Ge;9&#fg!+I1I@vWrlY{RL>zcY zhDPK_pT1J9#J44!gUmluUuGX#-wneXlo^28*P%rgJ62Bck{^r0$`TtU08&^8Zy?JC zDhAR!jLxJfT)|2xJb6?903{b|<|Lc|oQ5_a=0YSUsU{2($v~K8J!hcDN{p&dM+_t3 zfh2#e#GKBf8A}CJxYr2}o10nC{!k7`C=DS+4lVxxniim$2Gj_gxhg_pr*zJs9o_;5 z4?y*j=8Wi;Ww`u6EzuBd6XML4#>-x8Xz6&Cf&y#?-j=m!247Z!&IJxH#2cAJU7-Lk z3xC!8Bv*jHxtEc z8O!j?lPs6Cu(79C!&-_a0yu(MX9U_Z<(`1oKMUdjL=YO0fO;T9w^0Crt1GAf03mXf z$Xh7E&=IL6O}Pn>iaJLcrXmP&I7o85qV)`g7YHB|rJ{DhJjUQ|0^F-fAr+aH^0R>I zR@=V3syuK^qX1&F!>1tr2r?p&|^Y1zG_Sp)@PEQlAI$(hgW;5_}=38Zb_z zfsGAQgg|5)WM=MLvVj3)^AIJ>>q)}DC9>`*b2K%PAlg@mtQgF%C$O!urMJtou+m7(xKjS zIe0@mMpKibBjv2`N%0(2)?A5^lCp5Iag=l9ab5gPPwCS@48Naj*C!K(AdGHwG3q_VL%l5J z;_$=6Oc3M-gX}hpNX2wpVRv{ydXkXA2%AFzXtMK3#~*F z$Ylbs_ZwvCg92g44i37Me zfi2}6QQ-0JCg#sE7VO^S<8rxj^pqSqxTDFqXoK76Lr!A3_;&)wh_H1{5(UJW<=@jv zxtWQbLEU)mY=5{W&`L6q=H`-G`H{rp3sElMKt##3FU^-TJh0%C0$&n&vcZ9GDTM+_ zP{bs<*G~_O7Pk0#Z4$s7q}w7{B=opl(yBSewX8?7L=(zQpfTcE0zd%GKr+7w12+^L zpaFB?{5Txh7Xp7WXi6xp3FZhom83gJI1p3-0m%{y%M+DUT++q5HrTaI#KQ3gC7msr z5+MF-;`0PTWDZyV0I`QS7PLl+g@)+=09BzDn}}>P z%twfrkU-QJfEHrEVRp7B!4k8A2Zra8$PXzTxlCI)kw|_VM>fRE zVRIZ{G(mj?2I=uU5apYS0AvmGuu4dYTJu}QgCSZuLFP7~nZP{CM=W+H6-&4qgT;$& zWfEBc1gEJW69Y4e6rY3z+1c#Gt7B$j)0=XgTH|sT00D6*wfT^Uw|&Six5IGRxv3`% z5&A(8VtGg90$V87rX_+`-WxWN`an`e!!A3DEho_iB!h)GCh?x@+vIJaO z)rxDlq?Z<;0Bjp=7>!9XPO#w9S#+2r=m60+Mo}3+_k~)z0{kV2H)uJ_AZ8H+lmRe_ zTN;NL5J8Y_MJ--xGbd zpfeiaxp)zv#;hS)mx2UO7-$9Cbk+~69dn9r{8naNrevay1QJNJ`tB-MaU$%7Hw}T} z)9y2^TZ8~3pek|<=m#p0#$*j1ov_7EJ#s+adQ*WR zgc~RlCT_U%bQ`?ZyMRCiT#H3XxBZdE(*$E$yTFyaIAlx$&?}*F%v(EULw+v;-^vL) zK3#Cm(IgayT5pHp+z&921Arz#AOu&V*J_RT$x-1UoxW$!pa@d(0m8OV>Is*k5=hJu zg^E!Hg3&r5uW{EA=Tx@Xz{EWU7{cCL+A4f20X(Eil6TBw$(=NHsRMECCkiBTgDMFJ zC1jn+=|bB>Hw_t*ieH!$s4#=`%^nS_Is%{&`e9}p4FyAqX+V@%fD~H;RzZ!OUO>yl z7+8Y~38^r?x|$q}=paXV^7~Zo1Z9<#qrf}L&rwtswAkjD)i!le8U>|LPRrS35=#@% zXqWM^s&NkFvIEtymfzJLLO?Py!SKODIhHPOVo4N8z!sOULdH{8ujn6%_E(P%Bs&|DO1$OW7eZ1*9QN@J*FJ#no! z!QSo?;hhBjW965IDt2&*dy(lfOUGW~DY!Nm>J;cfz$_wm>b0ZH3T)p)rci#J$Su*o zi2+YkQ-m=F8*X%(JYZpM%1p_}ZBib2p~K+l3L%m|NZV5S#a>_+ERcMR#v3G#+ZuZ| z1Qw5RI)cIhF1=}Pxd}cb@C#rk_ta6dhKL79h$;NsjbRYtj{q^^l5heg4fTJXa!QW7KC1b51DTW`&NMf{x{{TG(b5Cy;0a;=?f3ej>l$NtVEtWB$+f%fIzKr(L zlF&)%x}700znxawh)iM5%uEE{;QB=`!+bf|k&cKn*I;0SI=W6EpDcr?Rk;)I%xG@` zwU&jl0n;-W^46Dy!Dc}UAUTxZ&!sT1gOowW4D1UCDaL&?44eS+`eW!i>q*2mgTC7> zJnN^8c91~SBDB#w&h`|3f=FSHx;vopJK?56))s^Mv^MY6E189k~Nsge1%w$f!w0K-S57>}= z$jZi>MLpjT&;bAzl04o{bDE&HP>$^BfC00gMP>Cf;Sp2aVnK7j^(4c`SNYy;#u=I08 zU8a0G{kQ3jVuhSAv!Q@B8{!afe5)WP(pq-HGq3*ux+UUHvqI~TKq447VT_{>B0Va@ zfXD>F1gH;W%;f@P4?3Oq4rpGAIvsoFDknAsZQ%lZB;!?`e3aFBnJ=J-9Jqf%sd$j^ z%GfTWY-);I(7amkOc(p2{%#SiVgYvn4aWX^d1!p;^(A=|uS6w!NTb2FQ$0+RjTFyl zC{g?%5d;n7^#!(x8f!HtAVS+$eLj$m^=tS0{| zjCw=!GtkzU3ADq5nZQ6VGO^^U7x4Apx*Hm&7loh+2`o%n$_bKV$om-9>I66al|Q zsfJG7DUJA&jF9^Gle`Yp++G|&(ouqreq+0JIWmdEKB>qP+X4r9(v8+5;*$tyM|^#v zw-bXeDli1+5$6=Y4tHqiBj+ehIgnmiSl%$6HA<9Qsgcuvd8(TUJHje_rjHYbwO}2V zjs*KvWC?kHZ9Dg)Wxcw}dar+4){eN_Y<)hofRC(i=llw#E%eT(c z^s4bXl7s^s#BJ4g`qJ?3xc0^&udmEhL?v~)DfjfFWz)Fyj+;Nd4jCHbU*eAwh4f?J zm2Z$9%ODYxq(``#)?0=f>*jY^+e%xl(_m+(Z#rvjj{UXI)6TLCEXvD=_42K(9blY- z`^S0);xHF~c&5J1dUW}EeQFf+xWDqAF|^rt8uMucE@DoZFHr@P5ne^N4R`J7{Zri_ zb=N`ZI?nWhHa}0bV`Z_~?9)_Il<-M=8mhXh{>{FnE*K9(*=_bQLx*z9gA0F{q`zp- zxvKE(^0|aw`G32vj{^c(JI=yPzdz!K6NJCHrr~h*w~?lH1;T`jOIr97{DA_v=H4Y{>HV zss0+^3oU8~ueq(m;p*q#&DETMw%NbRY3$*+2*;jZ$xaZV!r}dKpI=R=TW-c>g{Qxz zMgwmTJv)6L?@4g;s$2j&_1DUMX{_TyLASBeG(sQuNz4$qO;d*wV{d=cb+}e^?c96$ zR$9HEy?$7#_yAgZ_CIe*JaRjoeu9^WW_xYv^NJ%9eLnvHI+=qFms$BtN1CPc+uxN? z@UyBPTrE{E3x(-FPb#v2ih5HPUcU200s9sFudNg2qfWZv>q!Kv!pM!&_xvE#e_1D~37} zUoQCVUmIZ1dqXt*J}Hx|PNT2$y?DK=v(wr(Rcx!luhZ~nZI0FKt5wsAXY`1yYsLQn zh<}^>ZVi{}xo-ae+Soq1^RH&V6WeU6*zGFW)rxS>(>7a0w4ql{4M~ZjXi=^#>H=#D z)s0oa1lANQDvbbxT7?%#AONB+rJ^dbnbxgFfE9%kSc-{*6F}CjL=8rTVOoF@Mu0TH zR$zcs;8wI%xOV&2w2U?zI5m51(zTpA>frF7uwPEqQfH4>-_ou05#Xc;iN)S zB;bzzcn7sF08eHSf#3GlE3Vr_VoA=h$kiX0YUq*SS5Vvz9uxH52Gh5FE3b!PKbVea z>atnUp|As5ULB-@CP*3uIvp_wN`4Q+r;iZj7e5n=TL8g1Cv6PYpz!Kp{03dNjl4hv z4nW>Sj#s@~hw%e9G8zTMGYANrpwOhU{{RD=C00aKxkm47dgX!3+px79}7JTZLv-poV-cGGwrSDT2-m32P0z9QWK# zP`DOIW4QdX0obze6*mqoLed@N3$h>?7WkVHYh;wtt;P8HBruc zOj4in483y@5F^4<{c2YGI!IIaV`n37S%P5>j7Vasz=zv37l?Q{PC>Qp6wz>?v*0C;la$Iu)d4z}(M8}rzXU+crm1qS?9v}gNpmmu9 zGRk^T;91I%GDM=3YVLOvc!z4j?w4jhL z31=XzgP5pwh2&F-amkk=IZ-f?Y{**!pbSp#ArF<>KzB$#>*7u?CLrT+O~*(Ba6Gp$ zXu9H>9HP~MlFQ{oLrKNq102AUBw@q^UfkIM0jZH!FmTMX&U7RhBV^Q=x&Bva5krD4 z<$REfq`Qz9I6to3l2*mK*H$h;AH6yk%|? zT3jw6WLz0Jk1<8;Dp@`A0TaDKXR|pa8@pTa9BlOT!rEwfY3W0RqNVOo!nOT0mh9 zLqM^hOINv}rEp!u<_x65C;(u2lv!9b--JWvyTv6zB#_Hm5OP5}H0gLe5DB@0a5`_i zEnuQB%9q8doZD$09Ka-ySOhan!799oR+RFe8CE?Fq(FN$k>sxrC+)iR{@mvxD zbjf*1D5V@?LPRuU!t~hX0!YfOb)p1_lOx6?gfQbFx+7efFUMKLAmC(dbo!GBQ(bB# zFi0X1OwTA16U+vwZ_2n3Ehw=#!oa|C1|GFu2g0Wvxr$(B7MX8M1|2JeU*W<)#ON|~ z+D0c|I^zETJ^p`^(`cLS#DYfWqtXuQyRP`L!?4_C9DIj!=(0|0^Zx+yA0Ku18_r&< z8X*|hS6+W)*msUzA5-VPCEEL?xli_fh@ID&*I!BVMEs9hPGaO`GGj=}8Z7nAFePfq z^Nq&Zll##DAk6KLP2(HwUgFAdpSF6&IUg%`#sO@2k=rb5ldCxGO~tT{!U}T-OmvN? z-c}Kwp=yrn)~IZ1UP(teEuOw*>ze0PaTPp1-F&Z!wN5KBMTZc~5~RI0k+#~ZTepV+ zXp&nlu3UAf13(G=URp+)lP5|}9n5rk)4wnh*1e-$ zeIS_4IlaW7agUG&doGo6#Q^?YOBy+ICsGS3<3$b;E;);M135DL$k10MRNf*kr&c;d zT5-f-#4DO6>=O-OjAt5lQNJ)Oz(o0MJCq;-IAVb8RBYHef%E1_!4D@|BeUcQMB&Rw<3+4K-V7UCUb#E|pF9tw4bS(q81QH}ZToPa% z<5V!~4ys;QMZH$7!r5vnS@`?w#^YX1vTg|_nOVkrrM{K8oN|sL(X@^9lI6)dQM$z2 zS?W4@gMctF>A0yPA&3RJLUM!CJ4vny(`MA)C|o^$_@s7+budcXMutIXG9=_Dq^aH{ zRV=q5OM*LS*Jc?7(dQ3AD<rslGX5;lnOZj%B4U*1fm} z*_ck6oCPApUe+1GD5iHLgG^yqj&&axg<#}hFO^A0U3ZmTT@+?fJjKU3_%zx zOHP2JB-y|*7ThD6(|T1%n8;A1Fo16HkrmGD?l?K3ADpG1eQq{W6P=I zaTxR0n8;H90PYNceId_}#u^g<06>F~NoY(sIm}EnlM{((W)N_9IeL?p28?v6uv3MB z=5^SY+Z5jwc`Ur`k0Gca2|xv{4mSxAX#vC3>8Q|1LR08y&Ztf_oGCuLKAj?@u`#Ue zppL#&*Ig-$y`Q%B5)j-_Lrl8qfwy zL5IqEFX9#a`YJ9amAl z?Kp(r`=B5{`IZ5Ia}is)@kpy0oF+eKK1?Tm9crfjeGX}s+>sg zw%d1)txmvjHTgB^-nuQcR{1a*Nq$A&za2E;>z4>UQ30tip+CSK1C$ec1R!2GvK$p92J zgF6rgg-1^p;q?WTuw-g{wIU}6P;Ve?_m+`^AOMjB20@Bm72@QK0W2Ktp@peCRWRoq zfp8!MawA#Xg)MKKRQ~`7Fn(im@&FN>s7ONAZS*l-jf)t4zu#8WA z9@PcW3$G_A^!-O*`+~RYNoj&1utYFP$lM*}gRIkAYGtAc#jnT?%3fVY>-G$S%K&wf zJ7*o}bW4H0D*RdrfXE-F5u70}Gv2wrD)LCRgj;zpZG<`hGZ zM#ZT=>SATV8PwKU(w7G>3fLg;jAL*1AbCcWFNz2Bl$HSmTc{KJF*QyP2n0#h1uS{( zvDBTZ_*^~C;?NoHf3t!xsvYJWocCS;B?L(sSSUbhGd^aaae}#te7Tv}jDd_PFEnr9 zfKecXVgO_=Vq_tcsk*Dd;tA+^f_9gKje$Dkbu}I5XeNX zj{?wb)QOB3GgOZbWBx1|5itOyG#~@v(fq)n{{V_eXH`2uR~3ZWC02qD(bE5>6uF}YL35C%1d^iYz&Ip-zXP0*?{Y!|h&xuAe zGjcM)cNgI{_&`hsZIP@j;*v^^VD&H{GA87J0T3T?RN@kDAl!;}+(Zt9rZJmLBE?7SaaQxPQ3X_$q!91j}(UKy89nHj@&7hDcmQ3gw z3pAe%!!GV;4BN7_2re;)hc!uzvixhyM%P=cb<@JN9EdrF#w~&h$F8m^#;0i3w2i~#6qsb; zAIp#!M3699Aen(p@c#f9^2`MEBl5N~j!PR*_*(_100ELhD*!QZB7ZPb(W;*Y=rDt9 zNqo&<9#T$xFr?{DZ6_mf%t;pht-zF5Lh)!5=SP9UB@`XZKsJ^H+)w6&!9b8lR@{3e z=O2}$o$5O7zh0T>KKn z-Vg-ieRagPVyJDMA1{!cyo0sd+yQj=@U1qnq>TW(6TG=1DwvR4jORL}BHd*y{px=c zW05RMBmx>EzH^AGaqV%Hpef*a<-VP1?BO&4!x+n6oUc~>D1^n%E*}D5mQ=(7wabre zRBSew0B(B&sN6(K zP~zR+QjBCH(2b*|b(;WSg{JKpAP<<6+G>1Kj;Otyn2o%m$AW3k^+w^;v78NxkKvudDdCv(#7K6`Cvv!K56fxih$yo zEPzNlxxjv7Ng}&0;d5#8lrguIX^Q0-C3cC~XmuK8)Mr{+gP-wkCjr1d9rjY;!a40s zJ||K^DNmANNXB#XplmV&&@}dV$3r;Mr^+N@>Lg^woX!?2Cul`DMDEbiW#EID2SO&6 z?iuCOvP&Q8Bl50tc*G;FwZc~6{fHgM|jCHrw(FbB*3J`7! zG9&?mEKFhHQ2a)45K;!@|V5!bB6jU#kkhau8*O&$XdYLNk)C|RI2_yq>Ae<7(aBg1rn zKpKJJJ!%|BX+h;OM3XBd11fUPzz)-4MBG>c4b2CZlP#$xL=IZ##fZG5Pa#1jiIk3Tq$+)Q* zR+c~(%mb4Hm{#Q>VKgENZ^A!OW3oW=-;}&GnTO&MVKI;Z-15;f6XSdx#jA!u zK$}A>uqB2+rBUG7w25RB%hQ#~yCm<{y13i`JS?##_D0ZTGC)CS87C0pU2{XiEf5JN z4WoEa|0r1(An1o&7b5Yg30@Q_gk2Hnc2 zmI(eUghG-)Wki##m)%svFzyp{mf}DN>FyIMwxq=fs7LFnE+ICV70c@hY+NxV}{{YxPL_l1@gnGGhW(^B$w5)&z21)7K z>F6zG)Hs|@Vy8s4xaUS++Z8de55wFsp(m^(r$d5B>~l+Z!;z8<7IxZn%+F0J_$3fQ zR+W-Pu_&E&j%s#E{GkzO9Kg6qEST>nGg_Enmj>0j0L*!fPFB0E>Fp8<8M}ax|I!gpc47s*ce&n?pe+sL2=@7R7 z_1!M7q3KiM@TcsbF*_O3Tx*K2;Iui30g@mQY1(Eo8w<5o!9R&1kVXq^oPjNvh(~oJEDK}aAQKEmx*sL zgmW*Lfj(q~(^?=W5VlGQ#^+Tr2XoMAROBZ}8ON^UKs>Qiy3E9qSs)D>$_4%Ezl8Nz zD2I%e84ofHQLs+`0Egw}7;;WQcx#wz2tzKVc}iK+-5 zX69anGB7ZEm!mIUMQ(sOh`kOoA&{HeL&q9Po_9noxVV@f=0Tq(ye zWFWyOE^&ka@|BhX1I)6_BI8A`dW!1c2I(#UK!`B#{{Tr_ZBKopeZb#f_L$1~({Sw) zO`{yPt;gy|=1fz6;~u25un=brYm=*_pmOl|XHa_S3nZLmEe~3L7s8z`>`G9 zvmyssUnT*^K!r0PtPvLvt)Nb$v#mDr0ON4H$ZlXi)1>w?cc;IMI?9o(bxk=Ybn8uQ z3`0-E;7LcM5aK-Nb+27FT}UG?A{IRI2;5i}yl)GlnT^FzgslrQW1wLCoH~9l2q>Ol z$vq4m4C>vg3~L{d4pXRT?FXE zAa~RT14}3DZQ|>O8;Cg4WPRYXNq}8sac#z%1N8j0-YbQNR^cpS`;qZtY|K=y@8!?Y}h3J_*~V^H<;sscoihJgm2bwuud zXi{HxnRhhh40xxvL@EI-v_~}ReD~XT@~Pdx@*i&B&Xv$_69H%(JdS4oOj&arcet^&podWx(|P{{Wt}BNmZu#yUbObwBpt%f(w~dN1eKgEOf81Ke|s@v61d|?N#}JC z3;NY>;kW~3shtYy{#($q24RLWV0RInA}KAkNY@Z^)9FAr3yGj1CU68}PPMNlTKOY7 zME=T$8-~cxN6#K>y)F8Qhy%`vAZ~p$>9cU_a{B4eeCN(7`8(im);oUHZY_oh8m2j+p~+bM_!>Nr60y`9gp!s3Bwx=eSW@OYL=Yf2qnpVq0U5(^t`;H zQ`=eBt}&;jFc4=++^lZ5GLYVlf?e4ddJf;V)iY}IbxswZ(_Ztqr?Z1OSSd2Rw%WBY z1+wosz=_w(N?Z7SN9?`E^tMU){prD9U)kt=D&PhDJn!d8ZR-_oFB$uVqSwlhT^Jqp zs=0#0h6&}tg!l8uQv#uP2|?c@+R~euOP1#}{7xraA?2tNVd?zVRG=XWN7d=&zM*%f z;&A@}evuyfQ8o!vpiug+Vukm25gkU|C;@pBC&)%S@B7f^$`Pn<8tF}H%8Vx?sPr|i z;A{`>I)7$>owxr09X>`Wui+pH%SY?)HBK)KoGk(y;d|{%b;e%#0t4F~ooPG)JFoVA z`qem=l*r0Q_EAY|&(G)f`qOa%+(v-B?ItRNGk3@d>^<#Dcw#1Ge%ofLZVUykA42=+ zI?&}h{E#PKIrkML8sf;&Z;dCCDBQ>fmeVEdo`CjS60%fvi0 zjvypVbKBFcr9OhcS9SdF{x{-zFX7${+jXT#FhpZqYhTcx3-JQ$ZMb6KE**$szc&8> zCG5MKYIf@ils>ER9!J^y7jM0@dnf+4T_5DAp<1x7k3NvjwQAG`CbeqSL6u=zwE=;w zO=Cuab&4wPR2jQ38b#NFYF_7SIB(XA2dhEt<<~qlay74-UGl zv($H_9z9h9gTUY4@!Gq%d?d?{aKJ;neBnMHh5YC1rg0gr+jv1sjU(o>lo;I2bc4gL zvwS>-smMY%2`psj`ikk{@X{y=0P{Uy78s7hdY2B-YG?y$1et{$poh~(U7Q<^TIEtm z1Q~Xm0Pq`wHMEZox8x|av6IXCe=E^|_5T1~*aEO611s+flWiOyOiA8hqErS05)yWvN=mHV0Ba~_?nWhHeSY5a< zP9owK`-2#05ul{wUvTugw0o}>(nC+f zC_9KZB5j`JnK|faX)D|u_$!(71P-B$0GyCc#@@ysh?ods9PfyN$xmH0UMIy`0_DNO zCP!HCH1t~OT~~10i6D>&C4v>el=;+TF0?wtVyq4)90$w*D;H!5v=25bTa7pW#L?Qy_ zJg|b2_a5;1NC74Z1DfL*Ect^vgH+*sFeMdkPblS(yeKjlT}W$E0MmAsbKQ6hhK{U| zPc9VllrhSRS~|mqfoPG~cOXQ)Z9PIJkKhduGbrH7<&JBu5<srDqP+U^D7g$k{^$=$43AkKa$hQ*D#oCqRA}+LZ z9Rk}?&H13B#JXEMa{_!f1_;oJv;&|*bqF{S#qo%P%472YO{AEB3HmKM z)h#!A)+2mB5!|nm$e196L;R;w$P+p$*Kq~JC35hatrC1tiGUv}7c7}IJ9r?77K6(u z+#sj`nIu6t&eW(ewhPG?pY?0WwWjdv3nBR2GVONckZpRM4j^iBj-gigQf&yL2{y!{ zM}!NJwP5LjOXU^Kc@M-&WJ$v61|R@)9++_vu|2Lor0U?~d_I_{Z+6kF!^Gf$%v%8f zbdxCJ=+v{A(yMn5IJ$pP)fi7R5OIKumB*Nde@hAg>dT0N*f^tS4(}LDLpdH1;eBp$ z!x@bj7pn!9T>wEWY2pOHIadNo$w_GBr1FxF={x8rltQ0GDyC5)1Wz$H1`8xJxf z^4u-{b3PXwfZ(P;yH=JYVcH5CI%E=n@qQR(!)oGL2k#z}71j7!DIi=RfzW_+5OgW% z4RicHLkGo&46fS7uo-34KhFOEk~}^cyEk3{4sw4s!T|_$>s#5->#0()XN|Yot(6YC zosv8s`Cs{7bI1#}-$QdEon%k1i|@C zjD0KVX{Aw0rE6Z2dOx>ee0z`n1+l^GF{rcTz zBjtgt3VFbUQfK$Nxbr3M4R znaC2cs6BFgJJ%;x^rblE5&Qb*H##L3wjMgx0u38@EQrvRo{yMoinkAjMr0$|sI)=u zhALN=-6C!PV+&as5@b{HBts#dgdOo6bmfkW32$Qfq2`4QDN;qyw0O=q^LKuKduE83o8qhFL zq^o7=A6)BP-BRJ*^qocH3(2&tI4><_JfP>{4HO5>0u17MZ3vxfqRt)Ixs3$9BH~BS zT0zFnj~OQIgOK~2X(oseNirlLu%v??NAFg)-cjK$eY(B`p(W4T?h?}-F3ey@{@?2K zS(>K{gss$^i2*!`jWdkmg}e@A2!kSU)`P5%F}*eXG8-)BHtGf*t78XW9;%c6GPuVs zzH^6++q$K%+f%^;M%mesP_FEh9U$xlcf0!#B~^avih#%wGlO5EvN_?@QEIx4w^)g zqNR0JJFlL#foY{gqIcZ%X&mE1&UD%e1v+c7Bg7t^v7CBN6<3EOFprWBO4q#RXj^5u z&}4PSTF8W?W-E^RR%;Fy@bT76>$=_e@wTAs_zpIW>JyC*QV7;{-aBo%v`P^=WC(X_ zq9l?!8u561Q;lHsJ7cCo^;PVAKgQX5AcY}j+h*ng4eKEgK*FyxWZXl`+gil-8x5js zbiWsZa(qFASU7QTWVZx_1I{XTacyS>j3WajHESJ+C?zI^wkQCUN?{2BO#cA00ko;? z(cK_mt5Zi`2y zbMQEJ+(yNK0YDJUoLpqB!P1|D#1IdQV*(CB!qhw*1Db@Z5qKpsbX{Edl#tLF0KKSj zctczub!`5Yj15Q|=7slKGSN2#A&;wXZ9`P(?`kjzk#YhHh!E5mfg+mbA>pTMD&QHp ztie)rGO?y=H}MH1tc|wTcJ={PP8SfXm*xmQhh0V@)UtC+cP!^q+I-~tGRH$Sfy4*Z z1-C%(aaeIbF&dQ3-o0{irfClsqboaqusMHR=}W`m%*>cEAZxJtrCCPfi005nMk9R4 z#zaU#L)sk3zs!1;$=6r&rQ(^`>=K@}tP5DvQ4u5P#YSx)aX5wp2VZdft6g!y&_~#h ze`UWDzCUlIuPSR(KYyv$T_|jy3O64p!5=yn6V#tr8`E=7zQnH7!-|N|V4U=RSyc*7 z&40fwQTioX;ji!V>#Yl~={wa8kR~2A?9}}`I?x9XqSNO}0xx6q=|h_vdj8&&K>emP ztiT+d3&YMm>5TWGoPOmFv@N*r(PP(5Xz;E1pDl#rP#ee%WYOaBAhFg)FfpF3R=0{W+HTNW z{{XPm;c6g`(9ti5;{b!1Hs{r_+>K1)NU896V@$HpGpKkPXb#%a@VJb@aRW1Ju(4N(;jCv9xd2zCN*)c+A^!M>+T1o#Gp!mCv{x6 z+L87YUFA zAuc9?u&$>csDZBc2h=dG6BOg&NEaPEC4!JP!L&qW+j4~=R1%JVgy9m&M5&Plf#Jdj z3#Pi8z8pg&GDs)OSC9i_kUeRBBH<(>%tQb{2T)ESHVF(3fv&HI;$l#in~-1wu0i~; zPVS+m+PS_T;)w?0$P$=5*C^CSK`%muAN+2l2n_;2DGfD9xdh8k?#9v0+URfyWL$#qgb4$ckV1fYk^~Wz0GZ$MK_CPS z+Y%WJl`=VG#)7T*?d}GpM3W#KBr&LQ6Fgu~EUR!fAMD8>_={b7P{QVmUtt!9cmCSu zIeY~J6O5jMtME62%0dz?1O1Df>_q-zrItwK0hCOVkTNR+hmLyPHgkuMqOK1=g9gS~-IX>C;TV z)U<`Sf{3(&Smh+Z7NUWhfCI4Ez^d^0CwV8UfQ_#U2n0wbsyQ}2+#DN>8@ai>po9Qm zopnZPTpkg&;XWk!Mca~zIOPq%0J%7RetMi>Je)^d3W`)ejIog2L3PVpHv}VYm%OOpt8| zZ|%!_)H^F4dANEq0D%NBP5~|ky`-HwL&yrc{wB;H&CrgZ_Kjab-Y19t-9u8& z>1chSSv-YN=N=j`d^*X0x%9RdngN5hfaLy6(CoM7Pe;*ce)eFNplV8@Xg z(B1;`T8Pmh2#IW+Vh$8m7u(Ec?pQ=Mrga36b$ux;u(zGt4kVHfV7&LI_*Rj?n?R6m zI<0*0hA0{vfyZugyiin`A_Kcp{{V2N)|s4ml4Cj0A-jMxM&24gHedrH6Vr4=sTtP1 z8-WCX3?I{}i-}BwuE7Wx6w9^HykpC9Ge4AFxQ22I0gYiKYWzMpx0iP(Q7pvZpi#A# zr9%EE6RM`jr;_8NjiXDM4_yodYWKmq~c0(jDiG)Nyes7$L5K|o?KJ# z?z8|%4P5}fP&FXrlGxA}2DcLM!SI1|X-m-19aWEMxsd2c{P&~HXX$}uS0)x#2Cw7|GMVujR zr3w7EJA&QDytu&b#dGkuUM+_%isSL-9o8 z7J>l)q5lBzpHr$?eFR7X3{Jpci28fRg%flYF?rVcVj3&4U*37IzBbQ&Qe^nr?5Tmyx5jERxB(4=y)1$>B7vxfmEF5$4q$W1np zI610_AiG`J)Y@7GVM`yvt;OQ&${7=qCCo!z$p;$M=nivvJ`l6bDB=b*B4FX5Vyndf zn{Wn_h+0m?k%2yR=k&)W2R39Q((C|2kpTw@#;{;P1Ru+Hh>dPxtic+|I%+`I@GX>X zK*?@k5~Z~=VB3sR@cszThe2?c8DPNyVe1;27TVdg>h3`+OcGX)Zn26Nv2#}zPz0eG zl#aU$nkm9SZ?Ley02`5gvOs8OQo-v>b)*1o(Z1b5BRk~9Qtlf#00wkHm;gyn0Kz~$ zzvZZ;z6?tx;L4GJjOa+faOj@Az&NBxNSqQtL5U|CKnox}DUE^xM%$Pt7X<+pNhn4D z7%sKkCXK2Hm5mX7Xd@Tl>^(7F?QRwM-`~W{Q1Pg6xq~uMiLf2U{LyN`+Ktu>42?81n3<2tD z;zMz4yBX1u%CpuJ#!GmhcqlW={{XG03kC*tcuTb{ylqc4#K|3Z1YrEy-k;--eFC{a z(>ip196hb(0l2-9xj_xjMttD6(y{oMAxL8Tp8C@7XJTQCJZUvMDpv;JY;k4{X zdb0Y}M-Tvu40nwJ(S#g=_N3t5a^)B#5H-Q&3_Ueb8;Y_8{5E-zw+$6+2}8)V{b@%8 zh79O12T)8OMuk*-J7-&;E7x@}L}Z+q2#VZe`b29f>Qex+Of5=#(sCg?I3VPOBcL;a z#M__GDpGaqkTHn_6P&gP|KUg7l+dSTai*pEU<-U?TBW zYyrgLz>N#af^?8guTvw^r^4Zdl1w)OPusg7s7AL42l=%pSu!>Njq$G4Ux~El=x4cl z^Ju^ZBjzcEfSgi82+C701hA9Xy(o)kP=N&V7P(jkOUQr_0YR+!_Jy2vRk)hMF0eC!pGi@BsLZ7cMeww2oO}1|D>0X&TYsa3C|AiqA&!lNW1$$--IVeA%HEE$MpJjT_|8Spi6Kx%Mwy)Zwv&*FW>|ev|bd*HpqfO z>J4FH(QITJV7L>BF;utWFnN3{l%^*q2$=n)QuzXWBD5}hV8ES3n9)SlF5zm(`6 ziU93_os%OqUKl8{KtdoA9A=CS5I#WSYQO? z7P7ALBxeyx%u65rU`G1RkcUbfQTkck9rN>WsmKR`U~DioIm;M9gQ%R+n}{Ukz;Tz@ z#{C5wZ9JxbD$qj5T$}-%)$QOD`J@i0f}84?dtxz0;}A!QY6LdfU_f1WBkSIc+#m=U z86iV36GvW@_l}_3p5xFE2HhUim)Hh+O|KiCqB_O{28n`V=-o00O|;u|9Ud11us~{e z_5L49QEmZqqtkrm8aec;aPGloB&{%xbLgu~1YZou^Y*R9PR(|}>q*a|10-b$)JdF5&z%zj@a+yrwZRFP=?ZjlOK2PHHHnk#7U}Hxz}d7t z{{W@+p~K9JK(b+YQoUVu8X+Ifv|vZ^On|%1J=3!01&_>0$E$m zcArM*t_Hh=iF2U)<5vh3iKy6#qw&!p2`ZhW*MsqrrX8N&XyZR_OfCJFu-g23}r zA2YwIrs3F3BQwe#K7T`5+IMrEesF$R>r2JACPV%R$Ewn-&46tP!7Tp(vK@Cl6Z=*N z=Cs>i>n|}_a54@@zuQeJoJo7Z*kVW#=h}du7ToENMdz2=MII*vfQ}%Ik6$cfL$V~^ zBo89+&KJGu?BYR*I+KzMk3TKyO9b!Xyugyc8ki8b)h(-WcsVB~Jvxo|NX*mm0rk-- z$Jcz)+r}U*pIOlPEigw~Um!0Nh9V!Hb|2UBb=(3p#+yU(F*NrlJFrYKyYlt(p~SJ0 zhNCm{J+;jw6Z|!jXCKJe)vvt*Bw&H*llE}?RP+NeF^R{$=y5EJefv3&tz2;fXkt*_ z2T5MLn%D54Onla3`jX^QU1=sy$h<()YGZpF9rq)yg?kQ!8{xEq!y*@(8+Bk%;#fp) znD_J)FC%-owJqyAcggQmu(?lpMB$Ql2dGs!l$C=|Q<&}N-!;GS%S=d}JA;fYcBUIS z*=i2^>$KLi<1N8X9&?{xDzX50Ap@gC4CCK-(9(_@1nvC+mSdqxj|$w7OiTB<`qNv) zN(1#fzMlHkxdq}_vL$1#{X2B)NH5S2d8?LnoVE>~jNnn+u!h4Up{;6)@rPO=h=sxuPB_W|CL-Owf_^fz_ zOl{vzzGk&~A-Hxy&rlCX{FtxUzxdPqkh_2_bHgjh$Ud*qzailO)^?DeQ-$Vh?7#TC z{HG@v@XB0EVq}|tFUiGx{{Y7}9sdAit}&b?*9O4?BVb_6`6)S%&)Z`4+lExwHB9Ju&Z(egbS6i05(0Rxqr(=>#1IFC6b;!LsBOieg^H&Z+OrSC-I8aN=p-FLhy-od zHLkp!6S@dkMT?s-bF(uQABf>2%n3wKAZ(pNCnb<1wV*DyT1PFpBn`91RN}ZJ3o~zyu_^KNitam({|DUFhLnMs7tPFwDB28`4g&nJ zNBZi<4Gt#+99#gjT*(n}K{AIl%qT;pCEQ17R-SvU001oj02v@mJhVjgV`(gPt#T{y zJT6yk9f3$2q(Eeb204`UG?sA5^zt8Ck~+{U9vouGt4g1Zh?Rj!UVO-EoY!^34<1U_HWA&XCigVdOrq1P$7Yq^+K z;1CRK&?4YTNL*SvD(3i+;m?RZmfg*0FaQ{9drJ=$KuEM^C&Gs+$hag)2Oxrf>qvN7 zj}$zF2j&Bnfdbh80|NjPMpeY03x*5kn~3EPT%%~(5KB5uHH2lv19}|Am35~ek>Qec z24%~P0Y8=k=2tWXut_ip1>5LZp~vCCS!I;W=M2Kxf}?nKiSZwUV4Fc?-L8cGVh<}O z+lHi*pcRJ#OB(ojfePC}CCJVk#?UHUZWraZn1Kv{3cF2mLgobKRH{5~E&!M^SWrnv z2Q3UCS5NJO|(GgPzTzc6;7)5v6X zYq;GQ1Va5tfFK7Yks$bwajc-_uv7yy*v z7MwmQ{H|r`Y}!Bov49A{l0`2H076qkCu1DPNl9Z@P}9OQ2gQ6kLAzwI0F72r^CY*u zCHBg;;hVFd8WSY3XgExoQ}G3vYyw^hgienjADt)uMt~6{0<_O5Z=*R`>N+IOpi%{} z$^t@0(kAAlP6NZPVR=N{8~*^RB}Zs}xpP$GaR`!zAR;Vl(asKqF)oJXz3K@B#D0K6r;xJ1Q26te?xNQSjNQY`PSOXDmfR?s@Y{Hs;zk+^fR z>)ThXeQANHo1>?N!ibVlYo?M(Y=aZ%E9CzG&U|UU^DrP}kC2l)Vb{@rl=z>+ zvLxvn5-yKY2|5Q~7tUvG8ITS>y}th2v25|H!1-T{c8jf&>c+etQ3YpzEPI@0fd@OM z2p=K*8r(7zG1Pqg=5$7w@j_&5Sow5%%G0a%cbH0V7$?8WFC-xjLq;+O6gH$C=S6Qm?OJuD=Ig zY7U;KNznc(w70ZmIZfj(Bc`j$Sz(P2o>+m!NAmd$WfiM^{jYdK3;^SKQ*Mjsn<7E z*7v;QJb2savs+5m)O6vd4j3yhAnylo&v10B4k){qa1bZfdV?UqEgaOiBot0TCnf2q z8gJ~q;KI8|-B0Ei)yc(ittRhhd-?EAY;>X8*jnCPV=!O2Os`qm2U7}q(}2XLFfn&k zE7Uj&r)UJbwE8}-HeQ7qJSjQc%rFFf8qsLtRJ}P{qUDjK{dFvU4;YCKGHw7%J^Ye6 z$~1U9F#3Yd#H9is{f_j8^aCuPKxR;kKtzny%AEwF*xZtJ9g=7rxYuUkMCZ#5Tl3PJ z#qi5taB=MF-=^*uIa7n8rs4^Lat1MljY-&nz6B+t!X`Qm^aDs|wkn(sHZ#5P<44M1Xb0vMJyD^*AE z!y1>3Hk_|q=qb4Of_lp%a61H6ryEqP;jjIPjj%&0lE+ZQ?_8DC-8jQg;~V01c5#ZF zb)PH-_?^Rs6F?ISM7n2M+)s!sfQTXBKUmwcN}l_*0|2l?>fkQJKD2LwQ2LY6ojW|n zD+$>qrp`Rq?LK&#YVD^NQ{?{uPo@J7jHy1MN|ZDNxabI%EJI0Z?Q4pADU0Fd)1zvc{i1RU6(-YSOawo?$3y>f`aO zJ}i(x8g!n?&rY;BrO3ukFt9>kY<5&_f=n1_Z;r)%qP6#F2MG7jgBpS7ipsP_{{TvS zp?#bhcb#VA&i?>#Tf-f>*D(09$~V*O+(0Q(v81#P!FOSK+=W*>$%F zy21$PL33YKxA=a>zRy=@qLoT&(4y-H=6Ks4(N@oBwvEponV;0w@zCW>erGRHZlGES zC1kA{6S~E3i+F8t&%C9|OavSiVL9}L34(+hn01$mZ6u103FvZ#CW>M1# zF1uoCgN%8lHpx!mgh9dC4MfF9h#xcv+@Ws#+P;C#q*e-~YitA-8828XQLOCK>`^3K zwzTM`)tw}%)1Xz$cL_*f_At7b?6DcABn(;@6i^^tlKm~! z1T_>m^1GyTPqdQ!-%30?hy(_9xyc8bpleCUe|* zQhZg!oeyb1eZG@M;#>*rjHRhCw8x!mxP_8SC-pZvynPGnSvzwl#NtkwVPH8y{ppF2 zajAIppQrCa>!w%8r=E}ZsoTXmdmjFklTd5#JmY8bIqhcJ}G5wZwM$`*l0wJ^Py9h_JrCTGS*liIVliXSUe>D_-DwV{hVxykDY( zK6>ZvN@!GySQ*ss6B8NhwF|HLWBKbu@d%7Z%lrB5NDtfjp$1(F+hs!L)Ck#=CU=t8peO zI;?vVFe87zYUBA#4&nCh20;IokpXF-Yg~ZSLkO&f35=gpmN%`rRN#b>1$F#ND zb;?ce+DvA-ejk7%9nK>_BLRbiMzqI;ag+`nqo$*oWekv{X(NZjA?iRRjY~312{2O7 zR4P!RFj#*vm;otfQ5?A)7M&^_2t<>Iq3AoEA5hw@!*<+c0X(Cy9V7>luW4>OhoEyO zq5~uP(xKKpNO5fDOn^=o(ZIU}jo=faaqc9Ij#<#^r$UA`I@K;si9Oj`0p}!;HG@g< zwt$8d<5^>6a7@c)v zJB@2_tP--^l4G}bl@$)@LXo()CQP!Fj)e0ZNn#7r5zlc%j%E-N2@g%BWFkjuz5FKF zB%jl+BsoA2)cqM;oE{@!gf@Jnk`F2}2#+Q-0;HRzSic;(B!WqiAD2l}(2`|pX*j$= zIU+*10XPKR;yNfoG;=N)l0R~ANoRiLKH{H+z~%`6M51=P?*M|COM1z;j7nL-2?+q} zqRd=PzF9d)x~70KAoAOWUvzK)Cpp@p0V$wJ%qL)8a8WX0>s7wy0mjd-<5KhnDIqhhzI2WTrD>OK>%L)QP`M7lHkrwOW{F&AQ%GR1iYvDWbAFY z1%T$fpjtVwB_II6K*1P5rf%FCgm{O8!jJ$Ya)His7;_3i61SLpeja6_WwXkA77=6( zF>?%5FX4l8wg={b87uUU#n%u>BwS>j=yCoiTQ?F=Um;77RTi}hS3JojT>=P!MMNU$}kBa z6v)-dkP#=90ibb5hr=3xLIho_EE}Ys3IP`(??C)vJfrgoW^H6L0hA*w%)zGS1wFuem^szVZ(j3cNg|J-$u3jmF7J$8@pF@i4;_&zR%L8ods?OC5 zz#3pUBLnvJo|Tr5BA7WZ;%ZiNl7K)B2+vscotXuYWlK+1we=fKblYsC{{Za~_1W)H zBqZ4;5IGEJB%J3R>kRS}Ic?!vkiiIsnGGS-AD7Nt-54x@L7^-E=LO%oHStuY#9ITKxzzCoK1dvmu;c!E>&nPMK=SfdnTy56?vZ0LCC<)=(EajmRA%Or}8= z;%P<6GKHok6LL^;SR|c-4`KucE@B>dH={7^_#me@`R)Pt!oF35wiHjm0fb<^=2afJT>?9VOU6KUo;+iA)2 z)`;K>tpJ8DwOToXw-$nrU}i8zt7*l-AN+90OrB6OQ?!wphq&cCYjb^}$RGwV0LU$5 zkQfd@H2i_X@Y@{2^xFW`9Mnv<0Q4e{<5@gi}_*-+3>7$TMcuWC}ok< z6D6@aOivQh1Q12W-eYSpA#G}4us{=`6!z!3E+I0+Ndf;h=OG z14#uKQ?($+;sa#e0pS6063Tsy4%C)d5dhllM8-=H(UIBDS6vof3kD(qC8p%00WizB zgd|OJaefsMXdk|W8uBtZJ%gunxFS5eC?xWN!` zH8{BB05PpN90B@c4NGQ7xU~c*4ssYZ)fXYp#Naj{mOMevk^cZ`z|KIS!L{8e7$aht z7}3U53a7)BCIds1a=15YF+N{99AAZJo-)B5=WtXY!z8CPoR~Kn;I1fJiHI*?IhaX; zq)dTGc+oco$WO!`4^a0>VYc>s6L66k7LmTGyQ9OFJ5zxrr>g*hvI))#Mga~XOJoUr zHNadzH(R*LfJtbgvI;1X-k$y`Yr+N0F_>U~vJ8g>@3QcCjGZ;LTmS|FMaBXrV)0vr z@W67E_W;3Uuu53K3~JR^6L3f32W)r}SDfOZJV*JcTM(%D@h?6EL4ExZ$s zfo=!~m=4Rs;e#mnqnL<2wFWTub!Na(@SL!TKcw1UU`DC~gb37DxTZl`cy!h}yGnAV zBAem(0mvEbfrf(EpD!XVwG(L|1PBs*TZu5-umF(;tlSd#RgzuAzy*Lz^IRp32r@R- zsb?1;i${oa7Bi3pC8`m=Yg@wrf47IE6pw~9020C>({U~41Qf)KTAow<(E$g7h*WJh z1iykgwP1u>8F>mrXCo;^Zasu&LP-QM;=~`)pa$7`Iy@j@1L6n*TMem8n|Ghf({Z>* zQ+w32%&--^PNxf~reNG23Bd+(MpylV8vz4OpwivKLzsdvdl>>BFdZk#w-N#+u_R(3 z7IHj^OA@+1CxdL0aFTgqKM}!PzBtG`F%jPz zPFSO7!VoeP&AB}S3PAHkffa#Kg{lJJ5$b`N2zL%9b_YKXfp9oF2GyioSU`agVELt2 z_@9J39;hQabRaC{W@&j9jCf^*bmJ^f?8wrO0@HCMz<_Ohyv0Mb7zgV2s@ud7M3Iu@ zD|9eWjF%Xr@kTZR)I`7j-gupQp<8V~n+I|PAb=nciAa^Noi7vN@)ET8jLZq#$1{>Z z60=&BAerDvy3)W9GF8w`JY9?c8PFzvCi`v-5&^gbB@I@F62$9U ziOiT{Kz9~@y>qq!RO{*qad<%LSO5eEFF_w!FUq<(QDAc2`mSK6Wd?D95wwb@2jNNl zppsD_+TbjmWlObe~ayl8@oPia&xF^aa5CDRJ zB0${dsvU^eekdi98D?04C7ECoXejBf=wQ4hSHAsi{Ld+d2+;C`No4ZnEoydzU4#h| zK!)U;3~0IAduh>aD8bDM)}$x!saU z{zVJE97zCy8ua9%U#NobJOyrmgl5`9;T zK;scd@D3jK^@3IWv92{rsI%}&5;_sy^{x-4$pTL0$697H@8p=JgQLYOKP(`0nhPV zFz!r%GJt@Fo`Vfyr)kcHQ3o3Jka7lQuWh5m7l{tZi7eX8`r%Q!%V9Vm&UFM9)X9UI z(r}<0mfBbnNo2p9*(36+@NN^$Cp^~`st5_sQ5`CrUN3}}OtGgfWG!SD;>&no@nl46 z1Ois0s__xAz$T5zIqvwP3wS@34p?17a^vd{cMj!lph*HSThxJo3XnCLbNNFNYXFlT zQ5);hj}Y8u=Qu>KG!X^~4Z(`C3Gg_K?Bx@IkfeI(CY=jyf@R2pT z;LQWZcs?w)n+TD)G4@pUg0dTzhy#~#uSFq>)JC;pfS)}GB>{2Q{@<26cBMSP450aO znAC@+1Je^tX98^i86q$Wn4Y_jollQpVZaBVk7L$%s<;rnoKdR$s6uw(lEj@d&=4I< zg~A3HP0VGfK|GK2xC6<%q8Pq@rcslvkH?B}YM>-72hal&$rQ+~W%Vf+J1}Efyiqs+t z#rQ(-V@0-D(+ud3l|8}1l_6s#sNJHBywmXbcQYgzX|cCAL!u)GYL^d$ut{4TbYH>j z=^&>Ma4?%cn9QPgSQIX|Adoc>+YSha{{UauR=g5Z17ZRPq3hB!*0&ReNdTY>gfXcM z&vJS=6acs3f&jTiVlYTy=!H)Ea3mwQU5o?MQtH3tEXi3PENiZ=Hx(`k^g!=B>pyfN zs=AOHZzCq+E)58I+!Z-gFC^;+Rof+EJ434RxrTI~$^i%s1b||3_ggrHq*)}KYXj%+ zEzZCO_#qCmdJQxYoljapa)z}q7o@m8r=?cz8z9SuUznb!MW;hfcw9z5C6Q+TzqJvs(R``2x+So}zvVmw2{WY4`*a-vzxuELaH3G9Y z1T45(LGC3?YC1VRq*9Vw4Enu4jdrVF$H~@kSky~T5WDoEZ3sjndV+UCWJaB;&R{{A z4}4(ciIdk3hY#V7kVDt5-M+P3I6(t~1P}IjubSyqJXQ(v z83=0R>Oot-K97dr9203o9nASN+j&(!C6JM4nH}-aJ$o9X z>mg(Vr}w2-g}@t&aouWlSnkf%5;GCgxm!JbrL}N53*^^j4`Qot=|Cq$x9eg6P$;yB0&!@B@Csq3b&J@gv>874v<;i2C< zq#l&UHYGft4!MaMW{2T~$a&Ux$lG82l>r+rljqd*A5WE9+rsid$TRyK?h4e<;X%;` zMowpOjrXjU2v9-RHrSnW=BVxoo))k9%U+*4w+v_ub%PQR%6mU5!+`~y4sRku0796? zb_THp>CM(VWT6Rnq{t=3jNt|Daz^o5>lAkKbCBIviNi^cpR7;NO>3`lqJU(^#Q?_m zRFF>c2_(1L9^QT78r(|(B3NKOy9oMePs3Um>V%kNY#ydMP&{4d?pa&J`PJwKyNe9S zfD{ctaWFF2sGD)~DT>@a6Nr*igZoc^tyl22@Q93(cI$?)#Y-S3;^^ZnG0d@#Vt^e> z=`ukicPsa*+BzeEiVFurmR!;UlJNj2JCEOY)YSuV1Z*R-nNoyEsqnZaaL6#RuE-9t ztx#B*NGR1Zr*^SQ0t#MEh;*4^O#qxbu>%LLb^Wxi{{ZlR7x-LTFaH2S3GC7Jx2l@s z;qh^TyT}{J-|bZ6d}NFr4p~b*)7r6JJIT`3nrW7o4pIFJW$ZDp(v5jP@n4ST;PCFr z9O<-#})gXa1XaP@Xszx=Ut-`R-vxi-L9uwGo_pL#~s-QeR6hEG-yLcQedZG!> zUoMW8&Jg|Jk6zzO@8DX{8E0Rg%0{BJk>OWaE0dSkQ3F_UUX`|~yF`gdu^mC%F%=FU z!->gxQIY^!d2Nkq{2(4db7swqOlJr2s7Tj<^f=y3>csKx?NhFK{bhNl8cc~+8dSJq(bN=h z1V<>lL~sa&8qGPUVYpY2S%@5@!pi|HkUS-j45v}EieH5>kYd|%F(%ypWLlh1;_)rQ zy8%qF04)BKAQA~BXr*{uNdn|a5kI7oa07{!8xIblxXg&Nnl{{$H7el?{{Uww^cB~_ zz1?WIs38@wketfchG{rB5(S{dZ>T7OA(BwnH9jTk>ks7unz|6)XNMumR=T+zWs^us|X8K9qRh88;?0)0-jd85aN(8A#Ld zfm$dJm|fy&y;29mcH5Cq+TzZ8J}v;d;34GP37G`LJfr|+7n;8mHR5PBfKUoz-d#5Y zxo(q)2R1^qm*HHbxwT-8WWSYjaId=`>mUSh8G?ZE761V2oQ=fY55%>bg9_j|43I97 zb)#@3YWy?ds9V7xYaS5cK!SWX5rPo7j$F50TuvzE=CxWi0@f}pL&+SV%xQwnE&l)y z%mC9-pca@W;(-G7#4`QJyiG0)2EMhq@a;}z(D{jLdCK{LI@pj?s$Nx0#H zEy2{NaqPH)kA!CeF@}JWVYEr!n*Ir6l-j}i-#kCC*k45!4B2$3a%Au_yO!AJ!L zGfDV_oB#x#SP%mzchfIer@X(+*C-luTeBzx!K)wjXzO4j+D7p9L;|f z1_=O!0Mu)~Ooou7z%wX<^+0xzqyThu+)H_FAh;mggbACHZ*H2ZmA4dXRI1|y~%()>Zv1PLVQ z@U+vs=xQAiYZ;JjxyGQA`H2r$P&SHNE_u=bFfApCGIW8xCD-z;$P?$b2Pw8aYM1;% z01;}ERA5MX2{74{x~mx+>av`^$IpMC_?K|Cm2OU~nJy>poL7&;v_`;W0^@d~HeWig z5Sxo9B$ja|aRX#_^_V9K!ffF6kC-C9i)BvYNjy9`W`23vHl6KmrmDW5XnXLMO->orvG>Gv@W7!L4iLsMxASo zR>M9Th>xUV+18umudX88a~;A{xXAf~Pxwk0+yaV0GvD;eGr6Pi+%(7%MkKHg`pJ&t zIEpvi5;93Zgn#fq#+$KmsoP#X82aGDO12$Iz3FBg&VAKnCTYE6xe(AJ;KlAzh`yGjq=`M0A`J z{71j2*LXvjddt!VpFu=f8>GWSsw_tN!rG<8_{(gy+(owIn&=zryui#?!GE6r0Of!k zyc<{v4%6D|bnI!Ec;KU(%c67YV!f>!G@VZ@HII}Zcm7BG z#hfwCec%DVQH{)FR(i+6{{Wr;0OgBW93CGuBYomEk!ajZn3%85f60H8zlnD}_ZzM` ze{F`5wR2usfTQVOq4po~ZqKobw(owgDt#fp9C#k9Yul@;)Y*ESU*&(!aX6*lak*d< z1F(QRg>f5cj|bnqYYPvM^dGf-r4&;|Dw+~WWUP-|+jn3VcgN56t#$rX+}msG{Y_!Q zeyX-W5$~lAA@irRROS~-OT`dBUH<^!{{ZWjDBm4exJv@62sIx zprir-4H(~EroWnh;(zA91CPVvO0@WZ*3$>;pZvYM`4*>=g7ID4-c+YBM!33P>iVU(D(UUb>c(-#e z32+ef5E>wv8ky3eXAl7LQo3`NPOL%3cNOx-ySZK`#7HCqYcLAt+7SSU{81ytB$D}v zi&1_Ygil1i)8Jahh=tWd05T!uhNNvvz_m75=^`+}>li!L5QVhCWVmlS6Ruo#t;@O+ z6p%i-os3crAw-8aX9Ge=*~AWlkj$H;vUCxN-=g%aogiU!0Hd2H$`7Z1T1$^&%buQ) zcFL!)j?#|PxRcd@WmH1clri3+vg?g3j`^^p=hxs~t1Fajq&bzLU zYDANeIbKZtXxV@B4SPMQdA&ZqesxPc$I$CPYN3L_e~*{Sx^w}*e%nTBd>$S*(op^W zaf<34eXWV~>^%tOQ!ns#exVCSA#}2^VZYF%Qza#}~!PoX)6VAPAh2rViE3!r^{m zc}xHj1n1~G5RF&-cq-{+S`UT9O{5UcHz)GfM0ge5UoWZA!zK=Gl=a*ka`g$Ye22qv ziy<6D6B~<`L1!i^yf+~rfeh~eISwQUmEK$*j0?lzOTxecJsB|1pmR<*&4I+=kS61K zPzWL(a)}M)lygdHA}7Vo@qIf0Sx|OX~KBv6n+}PbU$(F%)43U^GIsh|Ve3?0Ybp>+lM$j;EHGhY`Nzs69AEYRNJ6ud4cclPx zPJxIzLmQ2RnKQYST1i>N0uBHc`KA!m@}{u0sM<7OAtka#Wu3IsGd0$2xazQw01m`z zv!>O{eWwL)q>X`uXJfvV4z#hjTmU5kfFO-JcRjv_xozQEVW}qTbVEXP%yrVb2L)1V%rg~u1@3}ix13DQnJoovU!PybuU8S=U`VkYLEe2DXo!m3bAQB9XF%0!M+6MI3 zTtU^r&+465Vo}ha6w`h_SWi4U}ZNGeCzrZ%N=3?;ah4Yx=qe8*abrD7sXfK9+4 znT^Z_%oKbxS+2(JL_DKx7)-!ytlgn?MAk&A2-mEAoi%8aYLy$fcIr z3WLf8&?ehL&yMCf3c)@qo=^Dn~SX&4enGFs4UCh6@0 zx=pq7JXc1?nPWOP9X%Nh7pewCj?g?a|oC64;@zu=t z#S?00L-#U^ontYj4az+6ZX_L#eCk3EeC<%;a760Qm!JOtjQ;===y9ciA8`@~^_)#| zaV!}~hTh*WR;0BxlgOf@hVBl#dHQr&&&*Qs0`g^UKaEj_QmY2u6e9Z1U9|=&Z{aC@ zoavsOV*qBe2a=h?cL-$_nJAMpaL5Pg-luy>Mye!_yWz|$R7)rwWC&Q- zYL5$sOaanalc*cV_bz62QHj%LABhujMLuv2sFxrCyP1gmH^Z}Tg%UyOJ1=X$IN`=8 z=G=qkM_#qiK*Q$Lg^q)7mK3_OSb}%)bC6(jXpiOxp_EZEO?WMaZ3mf@@+D);4)tyg z+}f*|$UvrqeptC;7{t^?!~#PFgh~q85_MoGQ4inZKO4Cu-L z84fbyQBVxJ*ASVsm@g!YRDp6{NM*tmFNxxUdIkRgw8t?f2!sQ)%R38+1o)ys215*! z`JTlLE1&_Pn!m$w%kbJs)D}Xty+@M)wXH{m!54T$X5dC-0)b^R$uLpKnnN&!tlS2G z{{X6Oecnt8)Fz-5;t+H>B%p!Gp03%p2qVby@NTgbIgQeANY#h-gzKuy?IE&2T*I3u z@}6r(aTp|LHA`%`0dg!f0D%PHAV`qH4d4RP76&ctFhC^auoho1($fM;k{A1j2iNS;x!Vh`M!=_+lnA_Cq3Svlpn69M>;86*=5P7tY^K)zZ86Ci*l4&Xqx z0+8amZ-pw`NVK7?sJ1uB%4iZRm|X#!2Fq<7Q7}LxFRfK@8_XbNhPBijop(Hy|NFTFpo$v4e z^VfYIkNbYVuj}=CKEJT)O>KRETb#d-dX{gL}C=QFw&tn|{$QI>z5o z4WEf0?-EF7Ab)&1h)OZ+gB1w4h}f47L-a^&_Tv=BvQ#H|f^oRFlLdIg&jC=(E8T`v zN+)j5I)fxOj$d5cHJB9Zh2R#w*9K=3Ru<_?rbko^gmb9s3^P=OmhJC|(%1YH2(}RC zDtv3gki?LK1#5kaO?MN%^Xs43Tv_7b*(0N&);!)PVG)p*46OQ?jP=Y4R|tHgl_fQ8 z_>4*K@XP=m(*m~FxRFd|mYL!TAIvyS22684 z{tm%i#17o(&0bKb>0${l1NRAovu;%+;!)pGzt^fBr`4JZY@E7*pxd@XEJlSLpbN#h zrL_<*F{waS;>v7RX`0!m;b3fGU_Ui`o}PG(Oo~q>2`>Z?PkjNU&mdr2mgsLzD{iX} z7?W?T(!SH*1^|9@ypsw4OT0s1%!<49aT6G~Yx7^xLJzuNK)`>13lj}lB8lHG*LHG) z%kGnh+AQ1EDZw`GLN?}t5l@Ez3>`|35SE#oWf5_0>IeknXQ411Q%kz< z5j?1`C2v*oXT9f7nqty^V>IwQZ0zYnD5@vIswBB2#bmEDkR#udU6Gdq8|{yedEh@O;n0zv~el%@=#d*m8rL|o$#;4~C38%5O;atjsG(d^QhJuq z7AQOXR9Ok+-tC8fGr60&spJyEbQN{`HgkU2aUN4N%bLj7K&VraT}t>pv>(5~RZ0!f zHCrsi>7v1vU8L()xvtjRFJOI6;_tek04kdNKYGNp%4zeFG}>=`w2U-#^dp-U);uE> z(3cgiaA$ReY+HaT`VR2b6_F) z;lq_!MTHi?nZKbBzkyWt7H!D2?6{$A=kJ<4!SO7anp+^w>rIsYIeNSvLQIvab2mXMdimFyg~>vnyQs1l*uY5mGqSv)nnxJO26hqgd% zcsFuu@~rL+hr1sEC|BZDJdu8tAY4GTny>5Px~rx<-jV$F>mRBW~nKkeZtKfiL;x4>Ms4SfNvzwS(#I z)oq$1Nt9?JWy7$*+|iZ{KTG8Kw}HvYm8r43LRmCM8|xjWG*@C_t5Ft;z0$Ftra44x|5A1E zdQ*-r`2}f)tcFkIz^Qi|gSBfsPC@N+vJ%H=6_sp(NiJ6?g){(eLoRZ#+}PBDD;H1 zH=73apL|d}=n7)89q%iSCvxp~b&|})A3uzIzL>_A*KQt#6UtRn$FeV$7Kj1g4s!Xx zLsVS=_c&@_&Z)|0DcML5E>HF8l~q&foT`1T>G6BqMC+Z25c8;I6@S*6-%A#0aZvSk zSGwVn3qfGGjK1AE>mt>;G_F1TR0Sm8OV$`Cal&(FNU`v6>b4}!+i!E*F2AHnm)K2}? zBCQ^8(Uc{yW@07-mohJ4^=tjEO_hP}7I?4C?DX7@6$F+)O<9d5`>L*p@*ERrCVzs7 z_-@i%`%^MfTKXQ!UygczhuZ2Rl8pyIi@+@}xisbUI-#ZSQ&AKV zMg`2Jxi)Y~&28LHig2*7pcO@>c!uBQ7j7RP;@iIWl#p0FD4+KcLE?X9_L()sn%0Ht zo;n@|Y%pYbq*{-8IS?tFkfTDI``l;>?{?nZ^e71#i%O(ja^6f$uOwsFf1qzwK%eZX z7R}szkqP%T%!|7jTm`9yj0dz!(v&(@g9%eu4!RD^y&B8V_*mL8k+((I_KldhC*dMp)D+AXVC z%ugUn|1>bI2xqU%C+QzaKu{2}VXhKY&3^!t7-*fS$1kQBFdjz})?hQlS*)r2WP@O0 zyZ?%Lfc`b!-&tCJ8B77lFiN?@G%vaG=hXzPAT6D_5jc8!l1i0TvgY31furPiG{sNo z=6Ox>=*`nc3GMB*fX_uV$_3Y0lPyE=2D!1|v_Aw+#n{@M`M|jho6-LO6U{&0iGv#I z(5|1&3>ZTDr`K+X51P3aYhNJ?$TFSC6@n95Z_?CA2hZDaXz5ah(AxM|paAKUvuT!U zi|raA)+bsoz2vVHZR`{dgoDWBp_?8r4nh7pOaF1_{-w8fYs%u;R*EKn7HC(7>x-Aw z)*%*J4!o=_f45QUYOYfoL%(XB9m;Fb$CT=){=m{2K!D*O`Q{|F_9<_q@D@V@^KSZ} zT(lHARP((ekHQU^zc1O2V%xsAEhRLZz-#BzFxHs zbD|j^n-X_%YIhlQD33=+u=H#_iiV37u**% zUkK$BYhT{=pXpw94!j-mknl z)T|9uhU&C3>c|s=G8epTrL^E= zZhEW)d{@X&s`jR%qG`6Ep0S`=qBHBj%PuTeuu^8w*1QF1`6{9ORc(%HNR?`*Fs7H2G)##>S=_h;w%l)6gG zkH6;iPG-hC|4e_E!B!7`g}&Ka{gX&Bft)1u$kEDPi?eF9B`iKwo*>9xr@flYnOrVP zsK~axw)D`BIyCV6u;-x5VVBD7fWg4NvGc!oq#Csny!b?T|J;amBZs#$LYxI|WxLxUVB+x4j6LGfbpSW>;OYbmj?8ZSFZv{U3^uyuB^+FOJ6iD#6 zyKvfA6)v~v6d)gWUV(Mw${}pvY*PW?`M@6vf}XKc5=f3fU3(kf>mJ7Ah|e2?Wok-uEBp zr^CfUkWo)K`*68!!h@-zBD~?KIx_1EpyD<5Fxgp@8kKSM7_VK@HtVyl>OQsrQPozY z2o=)Vh-gCXP9Sfk5HROBt$);WIKs9y9{BX3Lm-`zp+ksg_1)*0lksJulXs%}73AQj zbdUcTLc*vn2Og)mEpsp@O(iV7cJEcT#U2o^(9iIAe=#1e^wHMhx0P_0Bh!1QH8MVw z4{C%H!T=|(jf7idc!?Ij?!cscVsclmvhl7vGiwzB$5M=vV9+6Qpptx)dnIh-(_Ks! z1T?t9+aOBGxU;;s;D}@a{}Vaf@Ir<-2$$|8(yS`5K!em@?~ft1*&9SHr5f?}WAKEk zw1J9YRCXbgJ_JDhag&}-D)c!mm(luZ;%l-xn(oDfu{0}*DWy=*tj&*+`ywVu=T5RT zK6q35^g6_{`pevrqO&Frm2Lz0P*3g>%5dus{SUx+l0bwIco6OapC(yom$YM!uo?x& zg(bdR0F)>gls4pTDYgl)CH6tAU*33`=)SW(hc`Ry%FA?`gsFa*xVV8uY!Lu`47S{W z9|P@9Pc-yw0P%Y9QPyv@{6hqy1?Fx|Z#mDxbrY#y5^zw-2H6WIzu_^+rdQjjq)71l z#Fdy@rrI+yo2OMp9biNv0f2fe{a)uUNdbIovM36FGnKuMf9ku*F6Xg`B3q6iI=h1Q z=G`YME~iK@by=>2k9^EbGk-2KOi=(Bf1W%1gfD4mTe1Tfsn%Xb!`)T1bM|y>h4}W_ zZ^ngWv694}jPy8(E5FtP%{ZtEZO66kAKPXz*+PDEeqhc}3S^u_F`S|@gP;SUO)(>R zw5)OWl6`{y100jd{LV&(i#G){Fz78Hu%gFK$mcDh1)+Ur02H$QLm$F71|v{-YiuB^oA%#dc810LR}Ew~$d!Xd0YcPPnvBK4%eg)WET7qBgZ!8UQT z0F<^qMCZ_|E7N`Tn8^(dk-ZPX%X6@j+VV6m(>(}Bk{nW^%5li$yF3CvQTBRP1YSj2WpP2ZO{6^0NM0J{`i624EUvIS zq17cH7b4zO_dbG5jfp~K$BEr7V9;?+oDKhVT_5W3*xO&bV(S_&XvJjoB z=O;y5x)qr0h5`iwXP+?=l;3Klqe<7T(E*``rx#se^yc?5hnKu~#yU(0!CY%>oF!a? z#U(IM7NN~p5D~iWFE7;u@GM&-Kq7R!6pJl%3 zl;)K)**w&}!576O_*#u8^hmKWIJUNsVAO!mDmbY-(#&wA`x*QGlsUPg;l^e{>m7Mv zd**FmT};X6JGziZTuLIPj~Zqp3CJoHFbB7;Uu@$ z^yTJum@-_AIo`$gcT+8Kbo6d(=7^A>ts3Vhv-gIn53-q!1dIQ8?UTiZFOqq~w~T|9!q{sj-B zd$Ecbwh4G~V@mwoTV5!GX@Hi7oYa1%)uyJ@YXri8%bRU`sp1TuQ2>2SHB*bX46*F& zE#(ea5?eOEU$14ocP7=y)Spp4koCtafiX+;xgdx}SeFZt6qS8zpt)6?$|fVxIy&s# zlm(Dyh>f~pL14sn`H|xsPxD@{FqaYY-|x3rFErS{a>I@!*5HYlCnhU!ek!Hvj=nI& zO%-Ru@dA4EmD`7fp)lMNDeS^#>Ins<3iEh-a%8B?#E zq?7rCBp&KANipwn|9}>a`+Rp9tYS=>$GqV4KH3%!kJx-PZ(g`6+%RcN&M4+(d!qLW zcJV>kFR%XKRl3OW+e!1US&Ne@k`%CSVnnV zP?GIA-&)rCxyfaW7lfZ2UA&wAJ{vJ_DL9O?;^2dx!OJJ&ytbv)rS0TsuEo!<9{hHq zSjXR+Uinqq`yXJhhV6FBPy41BhqmwSPB*&u9rY-*G2zQQq!Gzv{aG)+SB-tCo6BWq zZuj?2YXMbD#xWnOR;`+v>pjAHy^8bxrvoxjvX?1iVj5}qpkF7ip1 zRx$Rh$}u=834T!Is`AD;XZ4>u%F--e1oq+N`@?@<|9@vRbtyb(%Mqp0O+&ECatkix z;R_gu(2P+kd8Hoq`_l#P()aLeWQ2`%#pBdEqJ`915ax2_gd)xR_TjgipNsLaBl{oT z`OO~x1K&JLyKm8h_h?ujIe;TeKTiuh4V#nWBy%-#=`M>YHJKO^?`dGHKar_y8++ZY z$vif++#Rb^|DGOK{@`@$>Nl3BVnh}D%1w$!SoLi7qH>FgG}lcim|S00+|{hDV0~Aw zKiU)&s8L(~5pYBkc!eqQ=I*k&;gl9SJR{vIIsr0c_+SRp&on?4P+Y9jt%MJ%=*KzJ(^@;AMua<(|6-=n;9#$9WU`7$u}h&ZK?j3qD|e@ zU$Z6Qp<_N@wemIbh{^H?kycwaY5KpR`*O7Yt|}$J>eu|tlfhTp7w;bw_2)%;)y|w1 zJ!>^u%T>!$!yfQbHX+<9?Z&S~8(&dVD4)EJAF$&eeYjrvFg)0~6#j8qp&3+Ic3l)jl`gOSO2mgBJ5v&x)O#LFR2AI16AJ_Dk`REn4?_+O#c!R*fp0$ zVK$2R>mk$s?RRdTx~s0D@rJp1H64#Y9n)p;NMhHH4cUdy@$FQc)tSCW0b!5~ph`6m zd&9zQai;2#86@~~XF_!jlZyF;^!}_`k@2FLKjWS&70qXyoo<4uKLeMQtV$u4>higW zyyJ9QJrB;UP~x*7rk|F-=*w0RfbyBnG8sW9_>J%~x33HIh;7LCljAnkkSL@C4xU|; zYdTTQ24#!i;AXpL4d(8XG|l)Qh*bTmN=7hqw-GvwzsTsyx0G0@U=9dI8_}LtCG&31 zrcWw3sESTsI)pP7(DJY*LQVR@fRF(*Nvz7rtIP9%Mrm!HkqdpOHK_y^3;3x|AoWLg z7#rsTnLG5ALuv2-Y`X7n7fjukxjvp6KL#H$fvtBqj#cB|0L`by`C=Lf#LkP)n~c__#zQY^3L0tc|;q=S!=F6ljGa*+LsFeS{kcNtxT@NN0=vFo6X zWPrY3o@_Y?{9gLTK@QuOjY96{e!G%g8}S%M0F0fnw?_L!G>*GS&&GR=mW3!aX5;n&2s4YT#9a)GtJ&YfaDo08XePaxsZMS(K zp(hUE+D^oBcS_@A(waxvh@2TKygE@B+%{_Dy>)Z5J3jFTs%j?48w`dkEfxB@_^)>f zeejVAegLBe0Pt<1U8?Tm`N4`11_F(!pjVaaXmSyW8k>Us>||i z#-B|LgU~7_o7>{TqTflK`a3T+e`oTdxvuGn>=|%U#j@!5#07;{0V4cwD}qn(r8a~4 zurBY%8)vJSNin>fKdpYUcs+3TMY8`tq16}(blg)t2zHhc^f>PD9-}`>%J;)0N4UDg zpV(LC2my|m zqBt)TdJ-x-Nb=NX33S8;TGUo#LIdlkS*b)(T%8z-d>WdMz^2!X-0i$O}+SD-$5bAxU~ z+H$mtXLOGMNW-de{*V+|T>*9i`}p$P`l>!3e%7I18L{nDF^V5KH4=uO*<}BTOf%P` z;V%*K9@W^=cd5Y0#MS`sM9l{o3IdR_B4O@#JWDA*9RllTRtmPIe%)6#kLCncU&D;( zxGD*oS6PS^+dG200MZb<{?yPb>Kbq!JV*iRAVnHld|q7VV28XnCu9&tDYy^45>_lh z{|B(-_?Tty$m*6n%fqRDQbgXe)e~aQMEc+Vl?m$6pwkYS-|wV2R}n%zyVS0TA`ROq zo?VYpab?7qad2=$l&K&DH=q>R{IlTiuOMG%8h#?LdZBWxVqGab5lH=fo$yDeq4^#8 z+6$%dj&Zc1vt!eIReI0eFD;4CnRf;r7)+2uuOn|4k5!mHPmrM6)3O2*z%{SuazZa4|WSHM%YNEN!Ez;kEejO~K?73?zm)UR~y{T9*VoVvXyGj#FAps{0vJCoK4*Cy^Un8!G$^mg>P zgac~EO9K$*^f&rkn-Ss~auW~3JaO7v>2j_<)GS;)_qsZ z3QbiozSJ4rw8q)^hQ5+n%4c9Gu4E8Sv{*Xx+g{LP12D}k@n>-+5DKiKVkI=-!Dm{i zMC^-9jbxO&+DV>4|+!aew;7XQ3%XmJb!BEg1@JknUkwlTeLN}h)W0Z4D;EHrwl7(>%odzW^b0re%1BSg`XPMo!6feCPPX<7EQneLwf=7%@&WmL(O zpfG&ZG^B7!K1%em;SF;%w9!2F5Dk;h z;&i;Kkd+s0NZT%#8kZ7xSj93nhNSDE8sr$eB_l;q>^>AD+|L+;Ngp+bK(aSKZTA%I zw|(F*7jj5!PxC==X91?xPXR&&H;`@l57&bG4HP*aF|uEctY)BSZ`hURY(_G^J{8|# z)zc1jDX)luzNSII(5Ir1xU5$ST=7&^EtjL}>__+$CNtJ=_Ex@-O|FPWddSpG&a4rf z1d!{BG`GBj0=Dq5#^|QxykNTmlr%LieB6c=SfjFvAKKQK=3&xxbT8{u)37sTI$Vw-&#IUWk_AD|SU~eTH9G=Fd_z(N)t=Z&EGD#Sa9nTGz`w!59%q%j# zzyPSl2z)Xolvs;m$5;@65ELHZh*3aO)ArM%{)3KJS{!`Ud{YXHQsayq%4fDZ_y!FqPy z3`YqEnR^K#8z}+%GM%Pbv$9lVMD+GFV(A4x3cmHt>)E6?ILV9`|8;ZS z*cj1guVe@zrsmwSVflSTiZ`wJPF)>LINH6va#Br=p2blnao@LX{Xhy7{kxUS#oLxJL5Dv5aUe( zf9!dzk}~jZ=Mw>0Ie!YctOL~;s!{#6KVp;=KLFJLumNa_(=$l)gnn2pib4eprra2` ztZWXb0Nle0mvU2&NfdnF3U@^Tb2py9NdBHpy)%(7eKi0I%ctt^(tKH z9t%n4%eA=8l7?+webiv03=^wkk9aZnBjYY;H0pukw|1B;9!5nHQ97GnCEz(K@GFqJV@7jM0!Mf3F>@nO5 z)|Z+If1K{;Ta(bz`&D16(Q=CA4F?#cPag9OG1$&dx>hq_LnoprMhrCsTmp+A&Gep}q+Zl#*TdfHr0Vr*s z`oBPs(X!0lLXL(zhxzDPY65c(aNG_sxGJ)CXbQC&1FpjcF3K|?XVTXuw!kk3JKWCC zlC6&oflXYbfo!0s4cRN}Hts)wR#ST8fYMb&`C~2glV0`a(t+;pE%EQMCn$z%u@jRj zaPp>wA>*5P56amOotjo*xE_cUGd)Xzhvcxr3kULJS6IlmbrExKt7=6Fbl!IvC-TQF z=&KS@X|9{91o0VPBDEhzfjKFNth1EL1e4!!OHJ#LDr)=$cRfMlL59V7_Y9P@w5%_% z;ryu4WTuw&N{I#41mIylfCe)KovKPWuM}~Ib55NB!}C{x=!_}XuM@L6#m$6|k1idv z0NEMT??emGrF7l13dM60G_ShXJ5Q^N0t&CF|LNhsj=fUCqMt68y2 z+|1IrhAOsHEQY~Xu}&ufwmO03vE9YjM&{3nwBm#mMVe@Q2y%hZ@sy;Uqv9odQDS<1=t?$Zt7^;=!H30)$d!R6Q*r}Hls{&sSQBL-$Hc0Cq zm_Law0SgPT#z{G-a*f>cN=(8EL1&+=TZV(~9xZ7JWrr0(n(-Wo8m1q!_FXmDu8EbJ z{Thg8YjNPdp4u5J%*1Mq#!`th-&AMMnswDfp9Jp}Uylco5|*l}0E$3+`qwA`DzaN~ zaTOX_QY;NkzDs45Vpu;Gr@(GeGk^tM-K-Iy@o+i!uy9a7T)aoKx`)O)&9f=)%OrM~;7=%72i|c@j8I zxT)S~8Q({9bqv~)9=bp|7HDRdnwS8B^SYMVFnC+m3B6Fj^ zP%1I(5sccIL7&NgAvVrZHdaCbmb~jtK4QxV;rL_@$kv%w)Zc%Rfz*BfcOgpEK15uV z2CX)tw?IW=x!{#((3d{Fs1%%XHP*|<2Oqv>2Ixx#Vj>xLRea{35?!${ofrvVPtcT^ z*?4$x8~kwuP8iNCc056bgPMiSv3;I3x?GJ`$jSrz+h#kw=pi)+ZWEZ{*vI9fiazB z8OfsHzaZ!lsHQ}!V1ihu^1Kjd;rbvWfjNPiPw33qk294 zz~fa4@Wh*#5R;3mIK~!F9yzUEApLEJbxptd!d#zhzY)KEq5jyK93(O#LdOK0U7k+> z$F+!OYJaX%f?)}6mDLR@d~XT$mz-N)b7d$4%eH!T^V8bT6a4nKuO*2Mc<#p|susE> zm|I+V`bO9_(G+7*J!I2WLXlgbb0bQ&lqTp95HDmARL+gTqc<978dBZQK z+O*|le(wChJ1G88X>8qxX0YUDPB9B_Q0#wzEmxDR3&kFrHh{IRnV?Bev6R)OBNlR_ z?{Sj|lc|Y~vsL%5roKcN+EZIqBc@97>>Dq1V>lPnL@y#+v4$z~MMg_Ppz%EqO@vMJD~ki9ciX*Qu79={$j=g5AaEAX@Dk&wyZf5`Ac9QMBmxbr}Eojfyn? zRlM;mM=1@Ifi*D*$Wt49kCt9Ppbkoxo}#%e9~t(3jAVW@ysJGE>aLTQS)nCV_}wlk zh=<^cBNlc(`weOkdl~af`lrYyUr-&X^CzG=uv<~Vne!yHt()V{%uNb{ zhSk(v7*!~u3DAzJ3rerS5@}qSJFRCLhAqyJwQPx~6K1#p8un;%ay4qtC0ii$SaSIb&t1+}=(_3LT<0uRxk^ryN9Ee>{A;D#h4_48 zObIk9zuHGpyH(%$3yx^CIkfkl$?I9?<;3UAJ;X!6k5o&1G<`yo6+^rzW5v4aK9yo! zAgL`w{}zWfkIVkD_kHcWKL9I?)*eRZEY7@V^G7%?XJ&Rk*;v-TZ~ZzDeWSL1{qxRR z{imQ6{;in=@6y0_sVn!vRcMm`gKfF2D->TSpd9At8#bHaPCH*$zs~i@XWQ^Q`KmS+ z?BaNu76&{9NBqf9?(HQgUMPVHlslDz*-<)y+x)^5=^l9e5(ywpd^du{KVsmbk`j@W zsGa(5`FTa!eao5}d^l#ze)wFO8_(SxkaPZw-PNaJ*GRu#iu$q5dRm{y+igo)Nq+m5 zuW2VWjuvwc1&~j592~cDk~NeoDBcvq0wHE9HT4e^uXys+ZF#uY^U5W43v6xQg=rg+ zxnsjmj6Qpp`E}Eq@H2l6xsG)?zz?+Q@}~T{et<}m8BX}dEJFk1orajB-{%N_w(D1a zaOiTjG6|)osplSRe6gedm#bo#Ch?DNTXp8inZ(*X?_UA`@*6JnPr1d40Z1=&^-__@a73 z^JL$>p}aN4FJn@MVC!-A6~IL#>DE)yXl>?ThjLU4BF3%gm+W2bg@qYh`&nGUlQOjj z#qoT2uO?%+;<*Wno zMu2&Ca!%#5?pfv&=`!8gTJ7y2JWyXqCGhVGBF~ET!(-+xv{M68!S;mA=|%4nrW?K@s?( zI@f1l`w0{5ZFPGIa;PR$`Kl^*94gJxL4mVk27@P|RvJ91 zyV)-fN0zxFnfSTWliCpLyoEuAU(^=q{10W3u+-PBw7pk2bo{ItmB&$cp*slu58%_Z z>sP^TuZ8Vkz;xwY(P~KL75p^XmBvN}PM}^S%E>2NR~+4;<-lhLYMI%9Pmo$vNakRa z`KKU2ysFR>+@s$v`r3MTIl4K?Z;}~rBWbC}(U+!g`7#Wt2_c$uU6BmK-37kEMEa^s zPky9%x9C;WFx9Zc7Mt7}Q~avOP``)8h%&`k>($oNT@3KU+0m?8eqfxv#9t9+-`z~} zlONaN=|dXiK;v79lxaJp9pTK*{VAvQ#@u%T49u?0<b3N zU}sp@6G#F9o>(}1vp+7}7!+)lV2lCTUop|ExYq2MV+LVi@;ZXL{Hftvc>ndA*x1z10harYV zhB44kkTiikf!I!@nGFV#Bcns^CF{qnX@8oCZMBhDo={aZ^@<;#iO&Om?Bq)(1Cdw} zN;TLMS(W)Pu@YtHR0tq^7ePrd3CiOrC+${n^mMWVAhuh`-k?_h6;pMRQs@gwl~1U=+C_`7~reh;fO8z z+QJ_M&VIX140!X=C}nU9;Z7tLyUMR*mj3)5Sc@FH=;Ko~xb@gVj?t;{%ybr)Whl|t z8bURfH3D272z@s$1Esr@o%V@Q90~gb_q=~zSgvy{+_mPIU7*&$^&ui}dxYj)^Go+I z+tY#bM`>F!K_u~BJYsgF$NklRfaI-MA7zmBjHY8SYjW80f;Uu5AHPaR?v}_scX=;5 z(iD@utuE7c*`xk^Ct(Z3Afa$lhN4qGpAQNvq(rI-KNn&`Z=_ZD$1;tjA;t`KglK($ zE)7XiHIJhXKir2}1m>o5m#N`T)P3$os`sA$#I&)_Waa(AS~k8C=%+4kUqFV+$TZTa z3)$mI{qgs`kYSc~N74&_+Mv5MqSHQUX2o(B_BtGg9S$B%4x*F-b8WiqCZ9uC$0?v5 z2}wm>oecxs9j0p(nwb4%o2=}~@S`@_P^U^9xym+OG-o&@8o@v(tqoy#=FFoIuwR>R zIksNw*68w=fi8(UC8(b1XKHDAs&nZNe&!5q&`h3%L8_nTL1Jc?dX+QFsff`}iLC(c z*SwXJ&uAuwgDTv$iZ=7v)S3RutD3`L!X>Pnf_`{z^m|V2enfN7< zs8u((F#5^V?7|nNpNem(F! z9k6fc%w&k6<}647^9r1G*R;md#aYOfpEAB=rX=ja%9(_W}BzL@v( zZiP+JbLJEY_(+Pq8lxR`uF1s>p)`=2qW$|w;_=2}zza5>vSZ~OA#cd(=Y^)um(gsW zzul|;%oC&hH+$nSqGWswJgi+5A+>lkAg^imEQ6 z@uq=~NNfw#bWMQ``KvU@k(9CV138r;+h9IQO8F-hPg~JfL%VcGztLJr?oNwONxR0+ zHQ=8T2seg0npT=Gl(L)oA~*g6$XvQ44K$bXYhpP|hAV}8ovq#|{09*F5AcO9-2Wr( z>)+=ODQ=CoL*ANHOK%j;W>R~SBc6AC3S0ZyJSu@lk4FBPNxY!)>h$sH@Gqi>(cb^n zz0G$KAe_+tU3RY1tLNuZ)gQ@oNlLQ*&d}YJZ<_`Cf%8S*egn3yzBY7>)GASZb?{|- zOYq5_Fpu%XEu(j#Bau;K&)@x3aC?8(TS4BU>eYGY~rQ%B7_khWKAz|$};hMtE--+#x32~)|c z{N&J(xXnVnpg*H6sQWOj_lDZ++NVfB5RT9BfZYZ71n8^)|WB*XNd^iQk+HD%rg0*!l#sR{dvqf) zem{4A*C6B|sQouu>lWRQOjz!&rfP%L1B@TISJcTZ2}I48K9u{(lE1rL%@wd9{Pm!b ztN%y(gZ}_>95;Udwd(zK{QF?8;7Bfe;c~uRf3~iYxAN=3TN9h03%>g%s#?E}EBy*$ z)Vu&L!zve-pOz;QDz1>3pI3~U8iZeI>?Bj_2Lk;LpVoLj9cYWp2YYlAM!l*x3wQpS z2g`7co@zuwfP=s8MW0x5E3R?ucP_U}qRG8{YSFKr+WnorygW5*E#^`9O)2__$1Upi zJ}iSwxyT#R0L~Egpr+wZe4fkQ}vx#yx%*_HW zwx8Jqrid9a+NbM$QjSRjQEI~;LV7~ULO2=4ow%^Ja4y})%8F4=h&iEDA+$6XLhm0` zDqoe-ErCn7r~st3H3er1g1TOjWzy%jZY7&8E{5MD80I`mD(oQ9KbqiW;r6ms6&|79 zjF(`4MZ7Vp><*k9UM*hiS`Q_pTij&kPw_yG2X304In7D~IZz^ug$YmW48NbHri^j) zZwpw1cBv-J8xFuxK=yTt%egj(Rrxa zTjm`@+8}797-VNAVlu}j7#k77L(~DHuHba@^LUgvwU&>F@Ldz@^dcS0*3iFZAEH<@ z4&#rDCo`f;uG@LaR988FG?jLI!Ram9yVR87didyPy?e}O>#%lCzao)Si!KUxWJ+2HO9+Iy`^vbS}#oyYJ^Or zDvG*02{s)B*fdL57IucAnDn{;GW9#E9Ss+{R7Kx-U3I`8fEBAZ`m~$36auFoQlLT2 zx=l&fy~o?;O-z#NwF!V6IyXuk=9x&{hr=(~lr>J6Z~Wn;yMIaNt>NC}3_PR!2;uG` zoq<2K{}lpN5MC~L9M`O`e9lNTuatepHO5_CFc?P=67)}ZH<{S!jHhw^@U{h-BLD<| zg0Bk5SxWHnWXfl0ND0hEn9;`@?CHfyxQw74Eig!LW02!0W6b+!xz+H&yW#=#A3~#Z zQt%s@5P27ef(DxrxWnY6FRO_yfl)Y|F{>K98JGeFdQ+=9JZtA~{d}AdXuwoX!C_Ij z0ty1bO!QM;no{A1#&^cR6EQi7;ITd=qPA(;#gkKN(rZ+SQ=oC29~t{e@X?mUEPtkI zc}kLu2ng>Miwdy+Ow>@oyn)Ho7>n(CD(}-+NsLQ7vI4Li#tvbbguCk;YQ4kE4&|uc*l$>qZZGU6*q?z`jlSz-9fv3&{ z+n+Xs;#2Ibohy=HpYF`_K!V1f1}KxD@;$RhWOJWJYG ze;ZMlyF3=k*_@oUXKy4el*cXvx@si<&jhV{Io*x?xVA=n^*#L# zD4MC?_uGlZ=S2QZ;;q5QPf=c|@_0}AHu>GgEv_UfHnlh6Lqse&U*j=SAUjc2Pyneq z*AWQgu4)x#Z-^G?63l)Z)B_ff7kuD{(pfZA^C{FCmGLhzJYLU`V$#pSrn!CJqG}SS z2SmK6z{@Tfa9HF8EfhEf$7Lx)5}P;1tG6*u(tR0BWMpY?E2Dh8ck#yVX3&@QpZ%#N zSi;Z!mAS*$>>}9+;B6%1G4A50vD-|9vT8mUd5&9|8kUrTnzUm#JkeunEYz|}c`uUh zPV>U`?bNtW>t4CDKXxs#S#zc4j}k`?_v2~dm6$@ zX?BQ_Ie~OR^@CIq4GyjmMn%8C;(R&^28v8F6YaMWJ%mKTtqj#lZBo?!Q6sA*GOLM? zg+|X%AsS0h&vm-1#P9!+%8Hx*KLEx+Ilrr|b^K2h61Q7>uf}?V4mgA6FU3C!0)+?io{{U2rP8J(o;p63+99{;ePs@k^ z4EO!3Cu&?`dB)^7ml5ak-%98Bg3&}Ar-9#0eRr<@H^b;qfPB3?yz85ZY8M1GpG?8e z&Z9i4YDW(ffin7yS?)A~mJWuc#^J+QBn+O|*yFw{rtSd7aCYyUj*g&j(`nPyh5;I9 z0<(eTCUbFbf|~?P;D5JQxziMeQov6Dvi|@s!JTrR)zQkq&bopelJS^uXUe5@gecZZ zf-xoeD3CR*w0BHPP7XV00)phsWaGU!(sFr={HI_E(hQWNTT3^HdDP} z!+|OZ-A2b-mxT2`La^RZn~2my1dI`oT=oSj+)g*sQM$%Q=|c&S;)T2<$^z?5bbz4Y zXkF79ieJTGf&nDI573CusKo+Da zJVPh|=HN=5$Qf!+Zq%1?yeCf*NPs~w8A5Q{?(6jb00Z-pPs4yhfwBl<4hU}~jWwjU z%oa&tN(kGFOtp5s2SVI%%o0;%?p9O>2bH)$gPMD|P69nH4Rc_f_1yXsTAnNuzu1Trd| zL9JTj1hR=D7+T{xvW2NU(OTfC&QRL+@KX8cvB<}>K=_lt$<(fP{9bX&`e<9CSd(YP9Ww2 z;z~J%@^Azl%gLZVB;5!rNFbt$K%)vyNFaftCb~g(kQa(b)OSd@oSdG^tU<$YM2kVR zkQrnUP1_fhxDAb}mhjF=ndLWY&}UK*T^(DPkVw?b3=F1=05?CDXmHUSw_L~~L=+@- z07x_EBCBs#2Or>E^3N$}A?OGkr6~vfvXB+gZwz4Q1ZLrNx=2zsW-`@Q&xbO=M7wSV zZiUncY41|H;%;1^phI{D0wV%uC!(t|32?Zu?z9U;w%n5zWkiZ>+OoR35_>LGiA>`8#WW909@C|Ez5R|_vx<#or zNY9C!GC)IG(s6ddiJO^NM&Fq_pbmj}Oi(r*7bh@eL3*%$WUf{W0;zr$;wDRo*aW$7Sxu6sBT92OD`3;<;0p&Yjm zWmi@9y%xxbddUg^5TS%vG?rw@Cf-rX7;kH&7Qh{d>rpsB5nEbeHorPQR z4T1hqyd$uYnUOAKD&GyoM3NPUnUcAl@2i&@GfBnxkX@;{8OkWyLpTS!Ap#lQ+q$-3 zZZ8yC!shV;HSaJ%AR!A`E|Z7w*5raDq{+0jpGJknOjD1B*PNmT00co`fgl&I9G0nt zgp06A36rFLonA>A21Y3{fD?(t4ges`a|?~S=5`2W>_r=mt+FMQIhRyGAlf4U%L3}9 z_WuB>@WUtv5J)nBLfisI1xn9}ggjahUPij0fe2iS=!93pT|hW|G!5VCZU7u?_mSdw zJB2%y9~IdM;0sOx12PN_Qb;Z(Q-$z6$CtzdXO`_@xdsyGg%5@JVKOi|j1v-Iu@G4q zeJQ-Js{@qqF@XdL`j|ltpuZ~cxH1?Jd5KNK^C0AwKq4U1aLX(7G;U#BMzSU7e@bCG zfBcgm?nVd^l2x*dpAW5Vw}1y1;cewj@}uDaN;96NDY^qjrNpoYB>qq(hD1q-T0D)3 zuA6=vmO%{M01u>t0tTQ&Gs}vZ<9M(j;0yr}A!UL>yLg-?1mchY=96kxf&|=5gbaug z0y5HT!GYxrP+$`3I_tf8q3uDBZ1 z{{R=759wsMw38)kgCv}h7&S2l;oAHoarvAwM}>=KSk%w@(Bbeh$xQ;o$UqMN0GNh# zim~Cy9HA1%$r2GTP}6dJs(477MsC4vg@=FvA?2kN9YBW*jBPIKkv<@RBP!z%#-;BA zG`wGi^$ZsIj0OCVSsm3q{9^wANdyRR2#7meo_{u9Edjzr&U2fU#vQyhZg0j z*{3fd7$!0D(o1*(WE+lPTj7Ij8FHX<>ytW)BZmDTwoEX9K&ZJk+!&@7fo~%&<**xI zl1u>vxz$Yg{6bJxk|Qe7B{?K&a*$dotCqQeY_e}5Be4)VNIPWOgCklN*hrEzSjlEU zOQARsDA!f?0g-9u)D%fj!pmhw)THXlBg93j;`%_*AFR`QK?7;`7n1;*c zHw|Ovu;UUdABJdiNP4g?5Vj0KeIqq~A22tRh{6D)N=n*D8LiAqk!^IfXs71Fox_gM&1!NfB+y$4`0l*CvJ)%)$Zalxq!H!f7M8L6dCWR z8-zHQ@?3mZK`^8gIs!#3TYhjhi4DXHxEOrjDujdb>$r z2e)EYxi9r?M(Y59EkuKCf`JpvcUs^&EFo+#Pn51w!a{w>lfVo3WR6n9VTIx#9}Hj{ zur-Z^8<4e?Ee);_o#$f~ff`Gch2kZ*Xm6xSUD!BvP#QWHZNP<`Ty`fTVl;GMouLzN zuCh2_NmTT28Wa1okDAa|7lcyL6CAsBt)jNy~=(LOerF z<%8c8JRHGXyvc%0YoGn1H0l$9!$s``6y^gFAQ_z-i3bY+Yb}gLSpfe4#sv{FM(<^)`c&`X z5@DQN2^gH2-S4Jq*Vzgo07D~n(X+YC0gGA0od?kZYjlwG7SKpkPSc6cJOv~rQT3J$ZJzzqSWcd|kj zXhA9N!JTk9k}n*J#mkO)IKa{M?JiCE88;PFQ#p(aZtOiCKd&V%HBBZvXekR}Rq z8JX8s4)o6gn#%&_l<){_F(l(K!Dt$dq-;KdQ)ePHfL8Th4-cA2xpM5~>UHrRhZ{<8 z?M1K8>6kgmE(b-u7Gw_xiop#c{{YybcGP5TAVO^sgG)#c6aWc5h(Lfw7-u_&BSliYunM-=lP2T*%FxGJ zy|w@mHj+kM&iL#HF&dpJM%=;a3qX`f?6TuEQvmpTS%M=DFeQRh^=OS~i(*`rB2xUq z4i2JL&bqh&WAcNzXemGSC$cp^g^t9;=^7aIxb0JTr#Ipt7-g2vN&6A~P``+Q*Pz3K z#uHfFQ`vZGP$ZqL&<5uTo`*`Px0yd7tQ6p7{Dp1wAwP=Y4v+wQ_s$GJMu!c4V~3#E z<{p9WHEdb%rftv`N$`?%10!5YJ36lt(~)pzHrz&q41~sJYdoY9_;kTL%q7wgp3o(X zR^u11HOJFfBQOyL2c=hw&2zzeB+lUIm-}=r)NHVLZn{8wyStq4fu~x$!LQt@B{_%$ z!ILZs^3NFlkI za(QHVT?#g#!Qi&xd6484xb6US*I2?*3vn%+%q8DSt)w6X5G0J{8%xn+ugKp3b6LWJ zo@seth?vBkcErMntz71;Y=13OSl=wsmg&zfoz66B#AS=P=0?} zt$=%VF)W>02n7aoT5@bchjYde5qU-@3X1r}+bXti2BTglZI03Gwu-fia(?4l zxPQX`0F@kDExc>_hSzF5kI7ecem}I?y`64~u~uj4n>yCgm0dVAYSpV(Goh%~p+FiH zt561w04asEBO1|H;qdBwJ1eV!XRT=*YG+3agmb6U_pXaLt6XI00f0~2gak-*V@*_Mm0Pa)t$fPzvTw+4UAhL zlHJlYgf->L^sk>iB{Xv#_W<|6h^6A*XJI>t#A&yF)lwF9gX9ckXXjqlnikDl%Uq9= z+HES@)ZIrvFhX@|e~B@s0HedxGubx zRAG!Ke6{A_@sj&>Bg5hc5I>yjFaV->db0jomO*<$eW|#*oOC94I)}e)>t!c~gb~!} zl7DHfPHNnIxa+By$=_TA_?rlOX&Lv~ooW97@?bre$V_AJ(b9<6tfQBs$I}$tD-1^K z?WS^PK9q5~x1!z|eRY6SEG)gEscM_+T1UJ802%)Pkp30Q<;!vnNK!X~e>4)b#eMGw;zs`8AgVF$_o^-+KF>_;>l1KMDb~cy3M;LV7`8>f=7YwQSe+Sm&=J z-1ZL8{{ZpThFrOHK9h&>V(4s$3u(BJB#vRwjP$7Sc+!o!fKVUx4^Cn_gbl+krNRJ< zoxIwE%8i3o3WK2>qp{Czw+&Od-K1<8J|7V}0@^1v>kpu5QqF!q!4MG#^zwk3@d3-SlL#!|LMPF3^HBJ`_mHnJD)|0~aCP zqGf~uS%4wZm&99mNSjUB7Oe%m#5;#Jz@Y*ODn~P0!iRY}kU2;^#KVn6(4kw2DDgOV zj}mJrY04PfAO^t>rjv)mR@#l%w$Cw*^(c)ALRjc5&U*R_!MKBHC76!d7E}`?k#B`$ zO5MUk^&bu2nG}dOv`=vGPeD}pk}pg!zy%ye2qE}XEQ4^?rN*!pLqv4IJjE=S9IX=K( zn>zTy0@%*+Fk*F~rOX#LSs7>tkPW12UW;g@96}=E2=g|fji2T=nccXp!Q%o{0*DuE zMgzblA{M1)lFK=YBqYYbo|dc^sZAq-I!6+>;IM%uT8Ru~T4h0ci5pUI_(^jDOppK# z-K3&W0K{a_EChLq#=7MenASd&IQMfS=wbv3YH+k$R0$T~@W4RaUr)*$c$~;GyF!Gz zWse9Ka>33+W*Gp>F9Ny$0P+(B;Eax6Kt$ostqX1eV%>VJ0aMpb^fkKiDe)GBQUF|_ zommSp5LRg{24WQQqiO8V3) z;El=_g(atkSX;A}{>^BUD4#KgMohKpds3f<&|`D1su*KcNqzG52euF!AEGohiNXF~ zimi+rg6Xf8-D}0V-udsa`q!oYe~eAmrH*J?$JlxAURe$!wxQ=?^BQXF-1d5R zXif8M_-~1AH~U3PgfG9;w-1F6rm&IMSZe|`soUxiORn03-iX21tYdQD$Y`~#XAcDd z8|3QxbktW>X_v1&VD;}P*Wk7MEFuX3keGVPGq~%bq_c}MGN3^NM6rY4tD$%&w=5Hk z@20b{r?-ZWS;3vyGmZPrak5bE^zqbjI%4HnYhOcfYyjY~+tqECl=s7q04b4d;9v;I zMQ-}dK#{o^Qy4n9gR%M5MexfI5sW;zlrZK+X0=qxe7X2z$H3JsVI28*;2*;h84JS8 z@>Ybp7oS=jOZvdhKQP=rf?N4L_+$f+T4X`lgQiCKr?SwWCWj?Y zGU0r1<>6#$DYh2pr_bEA*1!6bu`(hNhxMmu%a%_r{fmfjw9HpE+%bW*r!5aWpfHA3 zwL!xsHl0urf=Jkt9+l!cR9*i79(*J9AEU`tIkLYkd6l$UIboM1ghB2E_UbW0+lnqR z3#kk_B}58?PuNSwJ6_cUd2`ImE7=lyyLvJq0b+xYYPa1%xm`^n3Z%w!v{=-4Iyv z#u5oFCbHr$=O150{qm}3>G;=%cj4Lw$blnW6Fp9&dR1MLMTMt&)>rmoa^eaKo zW;f4NOjWp0S{`ZmqDm<<9Ye1gs#Y%VgzKT+nzB|}{ebWb0JFXaqI-H(`Mj6uS3t~# zoWQ6aGq`3Bm=>;`vUDSQ`S1A;{OZmOaL?j#CCN715XeBM7Ks7Kis`fLyKd7`+0jhZ z6Kp(kN;9-RIqSTpiF0YsS3Pg@pXF@fSk&2xpyd*d6|=D+5@=2!8Uwb^g_ zgC|+J12TC+ANyC0{!{#w+)MedxZY27*bNlITFr8B?2USvgFWGA?_Z_-H{iQI%Sx+j z{I;BOT{yYT--I5cZMSv5<76%Dr=~TB`@HICei_1?jbq=rqr&1DCUo=29>!?dtbT5| zQ(sSk;s(nI=nUfk#N^{isqn2YP&MtT`AMtaYdSm``M@LjrQ$G2B=jSx*L`*KsUV-k zoiRA|US4rqn5BW0kY#+C-nHBi3<7kXqwD7s$Alt4p1XNt8Oy6{0C6qJX#oMr)|6h) zOpw>ssCd0dB`pH}5+B8Dz7?2Sz2J4Q0mkBaq&+?L6|bDIGox!dA&Q;W&+PNnzqMEJ0G3hAO#QmW zECe=sh>xr9rrOc`GmeaF^v|(Ww%`QjBen@ctV^dIF}Ontbj0sgqo( z?ccuic$dlaGnex%QkzjY>|ej4ssL{|PvsgcZ%2n>*GT?*9_FWYkRlAV*Oa5HHj@1@&)0k770cM;u2s&YK=y4T=;@h|dRoO>^Ppj-vp z8%$ira7iPje)Dl|?4*PBuXA56d)Ot%woCbA$wzv7 z_?Y*egUd`s9u@kVbuu*BBr~1k6o%%cbjr`m=TOnFE+_WN{r$R$820`C^hovh>`^8$ zAKbqG07a!kSOD6+g!+1o_oX9D_Urejv^^io-jt@r?7AA03OC*F&s?9K3$6M4bgG~* zzOka+8!Y$z)hUKO{e1CQ4)5Q+Xjn0)T3QGgiafu>W`PvkJkBa|BMp~!!pFZ_a&)Qk zdT&(&Uf$PVO0Z>}96lqGbD!rO7o~LY9x@0ZX}b5O1LOoIWV%OC5>* zNb9hG2a~NHEqsoP6ig0_tAKK%-4CJc;P6=H5oih83mS=cTxTX2Cu-*6B1wYL10hCO z5K?L@zlU@pK@1qX1Ykl^{L3}8cs08WK@+V0P>vUe8juM+0tT&Z%q~z1M{r_At{+u` zL^?N>%6Xb9&{USsh>M`aL+M1@1f$Jy2JCX({{T}znJ0i3ccaB@OT>U6v&(Rt2?KIB zn{s!nTgSHaR1H`XG&_ROgCRQK8SvcN0SMd7;Oiy`FbMwuW0-T{-O5N>D4RrrSh$l1 zO&%y_&07%gYy+CrasYskK+MV{;32wtya8yqZU_$-T2MOO8U>JZN=}UsP%$V3S|^q0 zTPQ3F-xbFI0DJgGdJO`FpahN033kiy?iR8^AE_8V7=SioBr~RJANePkG(mtAn9#xp zINwleqVRsoBIb2_$wK07%s`x7Hb|Wh_QE7$}AZ<(JT$fvb(Hg5t0= z$doPAy-WuKYV5g1z9M3I*&Wybg`}E^TMK3`*HAYkjRG>wL#-rjumTgblJZxW_QzUY zCl2IT@<0K$WZ(z&il@ZibRpI-K+&I=%PoqJ9CH`sXGF@B0LFTaDl@9$9wnfX3dTgC z1!(*I>Kto`w3X($OlWe%MjmEqtm1*8DJ0Nl9(y8ZBQ$Q~oMa6x=5S11FwjmiNIFOi^p1mg4obH|q!bWRE({j{1PM4RX$O|# zZ5=TOQ`_el)*V%@D!2p*x5O?IS~J`PMEA{3{teBkv?8SdrUbrjQVyr16y-QOp1l#A z6_CgZWmeG1+fBW6x9ZX$(h_9J%-n1ByA zGAR%vn$-x-tb$ic?crKUz!gu2 zw>kjP7bX!Ji?lKrn~aJa>Z-*42ne=GJkWJAxiE2a1jP5MU&IJ728&WlT*4%#ghUeQ zc$@&az)5ObT%itva(0Sqc-k`Uv|&R8K}8X7DQx7x&}H81TCs0|yiLSO(&M0F)ZoBG z905Nz%x!nNgbP|)8@Oa_{q!LpTcjeO%49AJ%2Db$(U@2ivcbwgxM~ZRko5-*N^2Iyjhw|2 z2^R#fKwvNSa!E4I0ZOI#z90rd0nSDM5bo2fkTTy5XawuZRiiJO12cgM6vpm`9O777 zd{+|Lg7M580DzcmIc?Q#HvsO{&P~ADzyXXj0p=EsW!4w?Ok0BaoZYA|5VR&ifE7c9 z$F+`PN$MrNAppnaNPyXzrz~ZcinR3LLTz`{FPtU%-GRV6aO>00?1f$kNhW&Hg6qNKK#2fc(z{ z686!Y(Bmsv5#=_7NhFX4jsWF>`G45pqGDG-;E(`hl)1H&Fkp~^$^yAA=m{Tthz8zN zd?P3CRp9V0?ihzGFr*DYUzBNsK-OR%67EDD!Q8D-os5Xk09QvA&<>-R2+D+j3=$TY z%%f7`@xn?8gZg#BeiJKMz%=|zIYi28WhBeVBrcCxbjgLlm4XZ$F%AUDI`qq@;qcRV zIg|<4X^fiO3yA@ML>HX>S7=l%Sb`>S0~4f|q>wUdndD1_!2(7DgpXje7VSBsZm^5n zX~3jUE-??JP ztFGjL&d=^f{eEh>?zk1W#=YKg*daZtxyj@PNW_{?^H)g7MX%!g8 zR#(a+>qr9=xDYgcx-mP}Pa!flT{9tLWT6KrZ5mSF!9a-T=yX13nl&Gn>1)^z^nwtL z%GjxyGn|Uz;_&2#I^CX`58Ulg>rKiFpyEbL&LIdeo)99I{uYAcaUfjA9A{F7iz{VR zvVSuLWgHl6POJri)|3ALAON7G8er;j0VfJa%7&LC@@uXQep!%KHfncXS*>sm3+^ug;C=8NGQx5|@*J_^zU;+u& zPNJ%76bapCLBb)Nli0jQo^&nn+n*2uGHxbICQic|?^WS|4iL0t^xsl_RWBEgULf1~ ziUA-pOU^03T z$mP!{x4PAV^GAVePbx$JQ9dl|gmtYa3P25|u_|sDmjvCiYye<-gL)ECHw<8saHQL) z5{qwTw$XEpCJMDV*FwyjXMIWGfp91$c}f^Ze#vK|ny^D~M~XmV0h28AWd5J^881L- zcw9`PSR?Zf(>)p_k*PjHiO}3cg10Ea5=LjwR4DPL@616Qp{XUc;=r78=^9mu*DxCm z#FA|QZowyWkYR+iIVe<5473Th=12q$1B{sfG4d7Db%mL>?E^4QL;z7CBg}hZrDp=) z%mF;c0)9Y(NY+sQ0QYE~zhLL%T1Yybd9_D3Xh4#L6bAG!-~hRYHK5#vfIT(1lOhn@ zp_$ z?bfNvW#P%lFTO1s0{Y^w#^Hbo85WEeIYeZgbdAxjTZnQFH~#=_3~Q-41J&+(`;plOc^R!vm>0Tr)N|M>VZS{?;wQ2LzUOQgjE4pUa%+ zq~H~imHLNzvz!6=oD44$lE^U_Ixqt&GhFv^gn@8Q=~4%Ck!-T^hf3+e;iGyAVb`cb%YXV6M{cYHz5E-5bj4AD^ww} zh;?o^1j``^B1_&s)MEhnk9vMJpdi!S0i2C8x*+!zBoW|nA2Eouu^84jj>Lx(T%0li z8v++o4LHVQbt<|p;GIB`BGU_)m-t~NFp zE!)?tHwYm{`EtBphL8jSfOFiI3q^9UU>02TpNm$4$-y2H(*ctapq-*BUj@MglO&ed z7NG%+5ydn;6(lj=W z5-ZGgRO4`F0zjF^nky2ByBgOxxEuntg82lIfWcZZAZapY;7&gdObo;*Y&W z;n)bcc&<3}lw(C|zSj5kYu(cX6&o!DkrWEMz04luM0H#B&}2!E)aYlZ;24jw-& zlH8(c{{Zs!HqR`!v*8hj;HRxZTo!FGZ+`t!DrtQ)kF@3Cyg-nH4j`K>+iC*8wI>=oF)^TQ)+M z+*2+IjX}|)Y9pr2Z5!{@lA0njI>{Y|vgDd;E@lRq43Gv`Jf!HdaW0pFfk0iWh0HRR z*nMEtN&u&Us4ml@17gs@Fb1cqt$oE^ZUjc5rUpR~v0!gizlFCbVYG;PBpK*Xg2pNM zmVy{Bp(8L$U&b*ak`7zAjidrXP%$LD3=Ba9V9*u-0Rg!`mgG56JlT(0>%W1`h~@#U z05B4ecV|}U*}%aU08U8~Oppjm&1f{MyQM?? zSduW}0&X3b9og8SzlaY;c9Dvg6XDIrUU1O`G^3b}GT?XCbzpmb5S*M%pmML0kaQ)+ zv^cy13$>HwMo;3pw17-d&0~rK>OubH~(F<+*Q*ii)!g4k~ zE|5{1i!xR=6nJ)BaROu{dSIg`VU7G+?Yqvjfo?E|sDc+Y+^~QQg#nb>Y}Y5@Ycm9a z%P4nDFwhtUy`~b+d=lZQNAe_lr4i5cAN^q60&<&av zt&jkYP{A$iB!QnZOfLlh4u&o`VqwYL+tW&=pAR4qkv9(zB!dH4AfbZL3tG1i;k+et zIg(CgkT8IqPil>zC&ch_P7%Zi<-$ZjF!dE4C>H>&@PEh{2ueV~Tme0^C0l0CNjK@eKnw-BsuSIAowl zC&$tsw8ZZ?(+(P~#JrQs%K3Ru zG%42EX9Xfwy4F*A*APSEIBaXVS0Kqo0~#PmGdj|7i$xoR0AO2aSaPyk527(oh~cI= zb~fa`qm_?iQBChZxJ{(;HjSDBNf+doj z!XZ!u7C~KdP-vEf^z2j$Ob-!K09uHSgbBF8tJ%N=6*$f#MoTXzN1Cp{1K~y51^~k# z48WP6%FEm;U}0J@iNc;@;0}ip2%262HjvQfz?Ko5bO3dXYMeeXKc`SkBl(dWx_~t5 zb5Z~Ui*WYTarpa4km3s!lgoc{pVTz{&iI9L+Dg#ZhqOlL`c z5Qe&M6;FsH>WH^ez%oSPm3FO6eaE zE#~cT%R7t(0vM3`RQ?vOD zm>^F=U;(-il3HbTjsYbLd0UJdkbA=;8hA{KoOd=O_nH42G0k|IubC5|1 zpa~gXfu)C~9x#3rCSOB>2rS`Ypm!j~C(5Me4t_Z-K?qDfV&>$RBkuamUxo@GlH?Kqz}nK1hM_^y zx(5u9xyl*X+D*E&q0Xpx<)9_P_*;>j1U$MJ*9v+X zJZs1xoMD8`t;`ER8WkjLYMeWfO6ejsM-sU~F^DfMP~i??Z|NC}bBLJjq&l<25j<%>;6K=mxtG(a)Vkm1)5I#cEj*v)Pcw z^Hy>KaDZVfjRu6E$siK@>nfk(Er9gE5orLt9l<3oy3*faE1;4H0Ao6yRo)GC4j=$w zl0mtW075&k1I&8H!Oz9v^Dx(hkS&qWJgEv{Qt>!^q-Jdd96~t2KxCHoqj6lKSxg{7 z!~_95=kHXy>uw-iQI(h`L`-OR%`e~uw}gl!2~Du!?nc1EXEn`l6}BOwd*@uYkaTs| z!Ud=V2w)}L35e??CszC>6AQ~F_JU4nF^D;j1l)uISs*cq9L%BT>meKXO4V*HcXMKK z&6J!OsD?R*k%$SyDZTnvNwU&OUzBAh-#~gb(xYz}Nmita ziIL%e2^l$_(OZxUg6eUBuBY`KL6IYBTkm#<1eh6R$(>7HL%kkJ2G%u@Qq|zZKiX-4 zAb+zvv?Bw=nK_S@06rJsi7lcq2}FaH)2t13G=qpkNTC4tWE5M_WMwUSxb_^9NC(1B zr<5@!0}1bjs$YwTY=eP57$EGr`6`LX6#PH{joY}#eMoz)Av&G>QHW7Cgb7RaNYS7H z^sb&a2oND9BZ3l38F(Q*i7gAP56dka|j!;c*(1PGFb9aJinCR^)&I zU>P#{N$F7d--kJ0Hb4*txYkSZuB!^d2Lxw8*;qmsR81}1TtnE*m-$ZduW6dnZe$a( z(nKR8BORQA7636$Y_~Hk$BW6$5cYo(0f4Se&wYF3p#2M^`v-!j*8>M%akJe^`0&fmSRWC#s;cU4yx83C03`naslt*8 zFw>8vC6*O1Ml?gu0z|D93$DS`?a;=?n)|LMK~lkxGDs63WCxwAaTrI|Rx$1F@Hx!m z_`bf#ULD!juG1U&1SVc7#lCV5UelNCL994Wcz-0?QR~}wzXis@DGhsl)k>;UZ`YAh z;zU_J&*o7X>)+-n?!f^#2txppU(rTFYKI4cCP_jkQyA~4C#V&;p}op11*sFK&oQNK zwCah%HRaQhgrQ7v*PrCepawPrUWXl>P!Te2EjXC&$Utc_4JvskX$&zP$oYf1sBwNS z+XJ}UU=oQZO$K(KCt2NfS!2O?TaGy_GsxQX*N2Pyjl{bIVj0oyzPQCO(GYpHoc#u! zFYCj>Kn$O3<)*uwm%BlQooyZdM#?^=JJo|@A&um z;l|-v#I*-&G-@fSSBV%aS$eyaGti1tsG+d3EZcU?ai zA6MD7t8KGYJaBzV@SqP61C<6ju5a^X$t)rWOE3&?<{1DPw#`f&i)M7u6PQ$Z)*vLi ziL?%D2Ob}Jix;w zIq1NyYdB`qmKnQToibqKlq*OsDnM(n=HJ9_9Yn&xOo_;U@*HkZz)P6I8MpvSdPEG$ zsC88T0ID~|A$Kz`EKbVMyfDeY23Z+9jm5MOC4+MW0cg1Z<3b8-Yo=1s%q|@{xtd4> zmg4Uhe0XbqFF0lpcqoC3V$%f64?x`2H5&F7Y14ccl+o?wQCpM%GPXaV?H z!5185yGMI}NUGg)B!o${Vc-T&G3F$YNL_(!3g0b1gBp~Pf82r}i&bb5_Ic&wc-fd2pzF6LmI+-E|vkj{Y0K(|T9u@`BW zArOIcm6BXEV|1KvidwsXGD$L2frbMQn2kb;Yf1o_Btg<-7oo89IrODTq>B~1BwE3d z%uX02g(f+r_&`Rvc*aJm&~bsWd4Zu1p^D!V$DFdsH*8_V2$WRDG_MxY2S57~wZqQD zHZo*ogep-S#Q1-Q22SY`6zeA&qqK)hcM4H>%3X=>_w`jeEQWH)DES1d zp7J`LvS5)Cj`OQk3Y%O~hYSMs5joN^h6dWu(y-QW$U{MbGKnCPSyz6MYWa!h;SbE(Q~c__{HDp|HU3|W?k*Mr)6dj*HO<7cs91^fI%rl%>sI)lFeQ^D zlQ0=3WE~DMiKy7O3oQVBK|M9rX1(|X^UV8noB*XXL0ZRI+ozpU$;q4mKT+NQ(<>%MTb8s2LF^x!1Z~y{*X>PohAe8`|1CgL(%3i{c{yv(pFn~od9$7EuTZ>{O zXdW;FTM$bmCajC;<95ao53h=BDPQ(@iV^<|gT{}>+z>A($58cghotFUJQsrlXj^)?IwjV;ZK7MP)O5V!+s64?TuAe@uMB+$EFhUmYU@_@Y?Ox z&kT5L>E{Qx{(Jubkgm8M9|&^VNe1cWyU#$h)z`}MHe*P{_S14iXa z{(A3J9|dS6$=_V>gX~saNT)x;+C#b!FGk;<+PYi#JIO4e<)+8&RkMMngE(=g%lfT# zu)#c~#^?`fG%l>%65(*93@Jw&t#sa>i^9}s2TqDKM_HqH3!(^+ajr8RgVv+PE<>N- z{ppAwgTz?~^y=h~uT3S=@c0H$!~`>|o}IL=i|)0C2I36NX{hp}#p05{0Iis6LGSGf zlEKfp1mh>^)%~fy8-h`PKXLT!Lxw>T4o*FoA3f-cz=lB8WcL$*3LTwSzypBRgg1kb zFu#2&X3vsqK)k&(Pj}@KLHm23Iwgh<+kE##RRWG7G6qWd0gu1!RUBpyHUM1#fG2q9 zKEsE=hk_vL{J!p~!T50+lcL|R?^$pNa2)JLGX8pLil^YHIViD@XCG=jZ-J7Loi`~C z@MF(fTdj!GzM4vvR#O6-B*qMn>1h~i&)d;V*XKvsjmEJ?pyQ@!@Jwr~ z?Z2`oy(Qg1?%qe+Un-r)(xGBSH-8jv_Wj||Hv8YTAH@D>Y;HG9d(+CXyof(BK!l6_ zD_J^Dclmv2On^3jw0nvG{{S@q0E&*?xBlrJ3K3@8`orh6S&F1!Hc&A5m9AxZD<}APMX4wrMJ?kV6aI95=Nj~Zlo4@xu71s4O5FP z!Qz3T7d~blFn`!XE0m$V$cpRX3Aox|09M)p%LI9W0~N=?dAX9XN9pJU%)p1SgRJvQ0y3Ux+W!X^*qCJJi-WCEeG~np1J409wRtQ7bZ(T5uj==_i{GD z@upn)5m99YGTjXWXi!<2hTR%U(t=4s@IdcLuTXAX8-?SP4?^2ey`L$vij>cSi3+U@ zv$e0wWb1s+sv5@*b_0)oh^xD1)fxr$Plh0K(?fTAcR;-LVE4Rw9paNlr649qc!rkE zBVL;Em^XK&HnOsi`o=3ykb0M%W~*=5S23Wuj$%XKt3R9abV`YoL6v4>Nw(4VniNEO z)kRJ;PJnMw4~u^4d}4AE7c&2PuV z3H<4|aSoi0NOCt5)}rLD4N0M-r_D1m`Lk(7R1f%>%pHpuP@WIQ4v8`X+iF6(c_^7T z=RI@_hHiMeraZNv@(l{y2hKUn_nA>?{SVNBU`I<|6Ls1;H9ZoCmf8CTF0A2VO}a?|uTXA1Pg#2~Qr1j(;;L47HCQ*6$gD30(4H&| zcAv@y#w;3BnkL^STz1$=Q49|Y8uZT40A5RCo!u_-807J?oElbcw4W+L8kvj<5MjV{ z4JCU=$FR-kFB|?ObvKJ8iR2z1yB^1;JgGH z=Ft*w=KCw>Y_I(x-J@Cqd9&}d&g5>B?k0cBql+Ce<=PxY{qslFfpe)Q8g-Lp>t z9l4Xs|71;|d!-4Sa)1Y>Fpw3&`16o{PU2n%CmlNOEe{u=0D`#ft7l6^qGQjA(xe0K z0&9*D2=H3+4o$G|q{8;qOIHML@vmykF(rL5meih6pkL|^3r zjUv632`}#cmu;J1o~-{T3f(d;Zb6A!xTh7M*7)W((mt^fiykj z)d6rLI^Ub`jZWud>0?TqX=3AOUJAJKM3E}N2G!GUQYDB+W_8R3=uKJ%NIL51&+QGbd5~956E2KEYDAyq=Bk6HL6ph*dePf8(pE%tBhm3?N{Sbf50B2yr$KZSZ7) zOC_PyjX`Br-r%h>HPmJp#I5I7PikbG9*Xs{rc`E6qu#NA$$JdDyDUntWx-toiNCDm z8M=P-wRr@E$2MIm=!iJg4ffLAZ16ns3;j#qgtVf)HNdU^>zCKorq>|f{1e30%dVe% zN=+1yiu_&+S!-`~CG@6-vYD+PTW6hXip-aWPXzG=OrHa7E^l+NRr9~Jcq z_oha&4E|f15t?^ukGMM@v1S<5%ku5jQ|V5PYv>`RiKao=;kNx#*h62*Ke> zy0TM~8SIE!xb{-E*+k8gXvuQHpQAcfQW^$k6_PuJLmx(K3&rMtEK)Rdr<4HPj7G(w zlcrz2T#0~N;9N!{-Dk*_g+KR2zw1iFd}u4!^_(RdJy;>58tHuj1G2t37(|&`h_TGV zgRqUgLRBsLTr4d!hR-zAO_STzcsuqgnZ3vkK%Jk`$cma3fRu+Xir%)9$XsNJuid#ZW zw%tq`Se)6I@;LkhfH}yHqlvY=T{Zc|F#!!+TOYs!kD5REHT8|6k79SgyYkGs&q0ph zoLi6%2D3lxCpiy+v4fv~CWA%Li#HPSdITmVkm~rC?@}z} zW$|G|B(?xt;Is!Dsb*cw;)znCXFlqaeq<8)I{9l|=zD$|%9O9OY7lFbw++8uEG#d3AIjQbq zG6}b*-v+aJCyP?h+0l;+5dCC2G7~q*XV$j%76jv_P}(DQzkUgP(Wm7rpvtPa+qPqL zxppoB{QLN4Bhgna&Wcf%5~B^c%Tqq^eL?uosEx!J^v?ePt9GqoxbEZs#9E=e z!f_(s7-GTG9>+?q7ri=aDDsv6gNCxsUIBp0<(w|FGYHp}XOJ9|l-2jqR}m8dNTgS3 zkJ9@ygOsq75YXKNn(-B(kvI9R%?2T;L03GTp^(kPL=q>!ZW)?=2RpW0TuR$NY}bcO z4V(}8;eeBCrCdnD?rhjluH2cY6`5-gr-jPu0sQZ_hAhAsW3oY2$* zOVz(T+SK#rsa=6kOHxjTjH}^3|3?0 zb30-`+ul>Ur%7L9y$V#$iT$B%G|*>eAc0Y&Ln{>M=_+;EK6zoMK|`5p__GeHT|4GR zbMNuBP(ITAl%2R->PGSF8@F!K&(-Zk|3aG3kzHDaQw#4_7S7#GPcR&(#1QBlcUq=u=}a5K;c5E`u||)EAcofpfUiQ z-&mwBH1(?4C`!qhyHL87yZ$t`s^!`VTU9ldRmA}{40!0t$L=>DOmjpETtPwiZ@egX zVlYwWKycE>2dM#r4*yA1sBvvxTB(#I7tgcS$eoi-M#DJ}7Vg*hufH&h_tdT=cFlt0 z)WcvMk_$zx%Hd&KI69e<76O*pN=wZ5lI30}6ltc5gbhC`?v{`C$(SopJPf6=1J&+ zppKH^V?E4K77q&WR%<9sO#w>%v=sn`9~$@-#b1 zPqf7^Tv6~+e5K3!u%3f}{M?i8fE}0OB83ebSvRA*uXa>U)-jr+JV3l~-+QfPk#O{D zN7wl4w@H_!j4C09lL^8Jg5HFHkj zdp(TLdpaA{w=V}tUsM;9^pj92%Et!4PI<#t zU-%FvD<+aa1%S)$k1AgfLB1U)r7?woi9LZVjt6%)VD|`=XP&Kxxgm@-D*beEv?%St z&5XM|5nJiPju!Srs^u=ToERgBApcDlU!}%TfDHs#wM%J z-W!reIeGf)Z2+9{%5li#aJ9uk*-Wgvx6vRX*(JS_PG1QGBlZ+j4hq@%&b$C~5)2fo zLWW&AX3Zf@-WsbIQ9uoj5yhX6JLwbma((eIX~zmxUI|73N+u+A@=d7e&Y16rckDA% zB0>Pan_Uq+-j_XCMphU(bwcdl1?y%`cswOQKorAel{>AMjLi zf@Doh_-AGJnl=H*?6iTN=wd2&>)1rD5^IXWjKY0S!hi+E^>hr^!+5Z0Iq7&u*u$t@ zpZkIJg@X^A8O~Gdk`oe+7F)^99Oy^_vjB!i#hwFF?cx*i?^%$i*kKIJ;C2)R@BaX@ z=_!~4119P3czq3|+CVA&X2VengB5QIHG*H=ERNZg#e4($^!%p&=o@BmxyAgRxor9X zxv5S~ZKfNa-IQ?5)bvqpK%YIfvXdo>izL zhvqPv^q}A`<41!LehS$om|^c^G~iw2sQJ+a&{06lOZ&|(W>sbG_!r_-9Kl4hi&h!) zDU!GJys8yk7GPF>U6fxTuF=%0@s*|r$4Ucs0e!Wix+SqgX&DpY64V~Ztliv)z9IBR z-a!%Q1<@*|`X2I2$l_(dJLVlu1QIi!3Bf-iPxWUPvz}XG)bI` zTJRlknm2?KOXP~xCvFTE#Qa0c);aOKoAk6-yaGCbW&`SS99PW9!xm{Mm?;gLF4_|? zjA<6BW}@(aACHHDJu-s78o6n4nJ_{~3zx;ZryPj%Gv@3=jbDkkaWMuOV+(En11y-9 z05qkc&yPb9*A`TKX8WE#F{X*@?j32&0qg)_fX;}~M_3L&%;XkgxSx)s z9Puzc=YIgF5<^}p8(tptSE?$$Udk`NuNy;%V;@MtcJ$T8O|d+cd=_cyJtAHO4wz4- z62vhT=YO?Wsr-u!Z!82WC_8cZDFsh*rYaj;+f?v=H0fTlDWs?xP}tOlYWu zbwaGCLTrgo{1iQO;~?f#a$kDnr8q4NMbAK7Gab|#kd_RxjfN$!78lqe+!r5X{hTk1 zP0VC9X>5id0rW7ZgVCGW8CNeLl8MwmMGtOx^+Qr+vn0`Yc)&J&Z2kJNOga*n=@1W_-XB|_N0WvoGpv9&sttxnN@DAraPDq54aGSjNb!0 zd_^%|*frTt;h#kqlGA`=5j<5fHIVOX5$7%C;zp7fRRT3y18(rOMWL*qnnLV$b`AzV z9lwr$HpNZA-s~5P0QV$*ue<9p+V_gLM|<_aNSe7f&w&DiYY-lKg5`jy$0wl(pUX7o}3*}kz9?EdA3P3 zi^g3zWx5M+LJei8V$P%F$Xo*5IxB>9h%(tL27DnD3?8kGq00<}YB#97dMkNK9T*kG z0I_stoXhC_NFMWxl332$o-elJA{EmYLXHSjV@NwYR-550?4NycrKb!uZU6zlzV&3R z=VDGDkTI!Sz$jc_B~I4l)`3h)aF~204AH93UI(UtBY6M5cUaXw$k~k2(Y1cyV{97Z zC>euf)+;Az>G`4?6?Pf?1R*dUoFCfn%;L4_fY?~Np4RIwYD}QHy{arUiOwO$m3Q-` z6k<~Mz7MQwYORc@sS*i0yze%^5g2#jvQdGVuc=lKQCfr>4vo9eByfpN{@JsQCn9j> zXhB2!$?ycbY?&1Qq+V*-r4o<;3$T-t;%m`uz{4SgZGvld*M|36Wtzq5slbLo3 z9`UFwdHGX6NkRIqoxxgeuVaE4n+Xhj5oFiSuP5PkRv|l%xv7r~B0wRCB5dq8xtf({ z*AQeST&y;giyk-6^Izlfp#%#pmjLQ?gRX|@l&qavk2K+tWiWa3`&lqJK4aBfOUvk7 zDZ8+JthRfjj(K`Jy{5r>MI)n}ttR{i285HqjfB)AJjM`wU@P^K0e* z^?-CVAgw6^-~Lo3d`QT?cS{c!;~5an@kL(6=0(Y^ z=$<2fet+gqp>?q*DzWq4_H38_SKe1sS3;o!6rNMH|LGQE7@gZbMW*F*t(vt5w)QH|UFJKg7pPkPhSbDt5O3|$*u zeL&sM6DaFE&7AElyE*k5@2G%0q*ixsoRT410o)!t*L;Y&O7BAo@EuL-hSWd>Xy2B} zXrl<->keR{WzFBdK`c-$AeG9E*1d@ zspgzNxGdQn&C`~rN&f?gV}V~OBoebSRNKDxk$EXwi#7o05EhV{5H#RpaQVQu!ga-$ zXVn(Zu4jAae{{2d(WN&O$Th|gEIu#&ZHYEJ1Ms9H`{ZV*`Wxlk+S`>S^<}2M5#uPN z>>yf+L1w+}2W1j6ll_7sYi4#@B!L65lZlN>U??xc&fBh!?mFZ1V&G;1LEx9Dz6MYc zJ%aNz-vX2Y#F%AAOV1@jc5f6wn58V?k-%EX;qsj~N~L;y%pZ3WVz@UwaO|B61Zw#u zkoG%n1Llh0rj1aw{U`v&?URag=d$&|)yz=~h)D?5E-RI6Mjh1~>?n6iS;VC$?1s(i zsI3M&USu{VD6bNu*nKJ>)d_)6~Y1>eV3-#2gT z4~VNDgw8S$h*G>JJ;wq#JSol81$6I1_E%W^;6Jy!GF{V1YX~(YYr@0fF+op9i>bDwWfaL-F{^6L_ zCLp~*mkPeaaB`B-n@j!_+UL5@5`%^3T$$*W%M|4q?cLKF+!53%$TF%lLn907oO)W6 z@kR`0AP%0sHaHCa;{guJ3#CF3-MKt#;%@QUOzv+69FHe+S1Nw&g_$6Nf2TE9X)@0HjwXz6iWC%4|dzykSdm;oAhwu=W+;FUsL-Mtql4C?NK%zK&m{EZp zz=>89NyHHD<38Es7Euyu*F%tEi*@h&-wostBOV**9z3fgC8qkRORU@)VHql#1J5X| zuC3j|efu9Eb3(cbCE+J?A;c7`+D}f{c6Rjm1GIJH-y<$Ge&+nqTod9ZZ&Cm`AGknm zGhwChQIKQ0BEz+#8a=^QlH*?P1oN&#Z9fO#U3`T1ywr6F*%d_R4%aYPgLumAoEi?j z&NJE9S&cZLZH}O1DhL{O!Bbn-+tVv4OUZ6~yelue(S5Wcd9`DiSY2?n9+3Iy@A;jf zYx)AsVT#&uuroLNk`1$Ey@drC zFB*wm*lX*-aJ12wG?zu7-@IEO5GoO`M3lVWe#uM`+;%#YvEpm@tZ`2DU190NrI#vV zCh{BjKjHKr-T@H*mA^YB%Lje7$uJB;*|LYk$VejdkJ!qB_0nXAnD6rD1AuTm({rKT zoDq~|3)|g%an+N}LFt{U3*N?h+vxtMHQh;lFlhO`7k~k?#GsJumF9~rq@kIXGCu5l zk8+vo>6MyYdbi5Nt-hO+WeDlHld&?YclS0IOwPXHNu3*smMsqvBPs=^JQiamSoBp4ag= z53HhOn4=P&Z*rN$8a&^~`RT0uYtC4;vpQU>$weLKP0jt!tqHI3*)b@~7NhEJ@+HuC zkd!sJP`|o6`r!#Be^PshSOl~T7{4m-P4PiGjz*})k}n_0!($s2KbQ01#N^RQjq5w_ z`-KJlQ;!}V84t@u%tXUgelmf1)dR$J2dmT^vd)(`fim|l z?!^0%%%IWVo*H-)!bE-}F4KNfUZr~lQEgm%M`%(}_P5c7hN!b&WtE_LgFly%gd)Ay zWRX7|X;{~Ia0;u|v=6=!novQjBX^3!lP|BofTr$%_O6z>tCqt4F6okAFF)7^ zSFWn7>Rw4LmAJ|XAztXJXP8R(AiLjnz6Q^>6} za%prKhJAP3N;I*{b|}2yPiB8O)Prm3$jKTPVm_42G&uU}Ht}}(fiBxY%9(1$RL9Tr zj)jkNcQnrrF7*5q|3+=!H@Z4Mta@m$WKTz)+F`4!6CtSkb4#7k8qpahf1h0biJ(;s zF#7%RYv+>J>&)mWqh|>-TW=HI{&}pCh?#rqO{@Oz>bb2it)fH?*W&}jsb61z)6=p} zx7V}(`S9qPE)x4zoKeEiIj_wn!R16yC9V@79l zSDg4o_-aJvlN(*Dr@wgrrDWYv`O!s+%>DgMCjPuxDBpxOAUrMl!5OOUg^}(r`_jG% z@6Z|EX_s0mYVqP0Z^#Js)VQXnhff&W($N|xdx7?64VP@m4O0y_V^2O_KdI28PxB!H zAl59N{2Zn+5dHmW7?>#xrRi@Q}G*t*>&sv#X!>;nA)tbRT8r}hctbM&%c{JNy@sz%sVkRcYzwnw6T%arucW!pFWA=?jW(UH@ zDbsyba2U?T!ekL6g!L(pi$JDW%qZj<>JGBoiukVRx zIF3lkU``zv|E=Tqob}P>uqfQ;C&1THhN*0OxIa(RgMy0bpS44y_pKXtGU9{KoX`$T z%u?e+P57%jsevx+#4HOg0JHu&XV8nn`#>jM?QOgN0n#v%t%@>hyYjI$WE=$R zj(n!&okM>0LCFJy@Bz4psr+_M{y*K%Q~`e&h}_$Zrr?MOv-YbqGbP>PSw*9EE(p6 zHoFzeiM9-U1>@$aW*+qJs+$(dpP5vpCG!viK8t73QdZE?Vvb#qryA1;WdT%eg9ii% z&JUt;O@<`dVqF~R@26n2n3`CGbU8>2_dGif?lk*oA}A`CQOFsM``Wtv<{`3R1)49I zvQ&h|JqK!d_P8DduSaA1KY&N+)t^aqhG9Jky4p9%9HSPX_t>3F7q_!c^W{!D4(ZUDyREF}O{NZ#(98`4qQ^7pLsWwso{vU%& zg$c5_4&ez&fys8$fTUIVPouz&9wvPmrySgh&{SyK_#~JF3f6b&XD4k#?NpI4-#|Y@qogMNZ2^>a zrM;Ix5`69%M!ad#cB7?ZO%c2nkvePxL~510NEynQP1F6BEWM2;+g>$0^Jo-96$&Xo z=(9bRysAvqt|jCEXp$WHC&_d$Xv$_c3BQBRo%D?wW+D5m2GDi@o{G8=?>?pwI$RDX ze;!UbMkQ-G=a#vRj9rtF(hz4y64T8>Gd|QuSwQpZMmW;W(WUK%;s^mRr#cwFcyj$R zm5HYcjtLKm_Yf`xH;(|abTk37w;+dJR_OBnf<*QcE2axuJ>=*B60W6vVgm`+PnWN8 zEqx!G_GNqsTq7s+95N81&P`%MdH_qzx-7v6UoHXYEy_C-=@Epd&k0qCh7BkyMn_M$ zc|x$~jSA3lB??^$Qmu{u(~0>p1gelwDd;+xEL7I8E#H1yYIN#(?h6pfk={ZlwCyf_u6&xmk>0 z7XV@c!7gkleH;~t(JQOZHkQQSP(Zq@t0f|GDnd1Gt~0qX+!NW1Q`OW0?y*Q~-rxAP z!OWRHG~=i7i%p7hOM4)^G7<0_le2zpHag$y0iknRl4Sy-;EH^&%R7X`e8n&@E&=q- z@WAr=XVZMOKk9{gPnj&%k8lA!dO2prDA*(neAbdggfVJ#J`p4X&n%(a7fEh=DxR0E zRPtsHa#}}^-PIBkgu@oR*=+mt-YpN_*4NdrtX;3d)AW$>5Zxap7ONV&QGwy^+QRvi zmjwG;Eq;p7GqCdD?>+cpi?0!OT%c=f(!0O9$`?0!y0r3lW;P%o;LvBgy)<#D@}wpD zUK(9O3x^Rk`A+OVa`pPG@~BMppIc!XfZ0st&cSNR*w&3qmA{d@^XNr|OXHy9@Nj22 zKBFg-MXz+z2Rb7D#E>z&xkrCOS$O5;Ik!HUe|KPC-GB3>cm5rsLq4WFDf#@(gU~?@ zdcM@BPkJBR;W}2*dF+4U;9S+jXD_i$vI+X5mcVXOVUx)`#Gs?8bTWCVx@5eD=uHvgSO zlxs0nTTu)$3CC^oob#(VJBec?lmk-S=&Y?56T#zwbbbAw`)&H6V+>&6vS(q!!>``h z?Hy%A9#k}B3joJ!x%}UcB3}m8?yVJ5!c)E_p><3>PFONtZ`=I+WF8m9 z?<@aj{y{4xE-PeFP{E0zUPIR=y$`g*_S{aNpFo54k!e}~T*gjC1(1rK34InU>e@zO zLQI4ZGjEOnO`LL=M9h9WaW8=gQ|Foo3bEr3c)l2dL;jMN=wMs+_YQ?eGNaw{wh9fGRYtsHO)9i!kM&D8H_!Rnvq?qwwM{|z&195 zJt$(d?;QKxu&)1Ma=ihrJaeZ^PFx+vB4U73#?lbI4U@s|fzDbYOp<8mTi5I?mZ;B- zLAVGfDTeRwU|L{KP2J+?qL#|kR7@-QBxuT$25Vg9!VU^ zl}UPXc}yeA$>bTg(iJ!mAgOS{fqw}hBE=94KJ*+7gy@j z%|xdYTltu?*M6rS5!fdiCpbl9h1A)SCYl%(UrYx)%o#9oW-HbfeNsA{VdsrsuVg}m zN~qni)p8zocyC{6i|{Rk4jvx~Mypt%L!L)A$|N3@D+pKHR0MU;H;QO@!+xmjcn1zdeX{gnd>^8 zEx6jT6ua>x{re7Qa26U63_6EJZ~Si2926aFw^owNg38_<(~NvuFn~y>mihV7To$Wm zWZuD!#@pPEnehVcN4;nOq@o>fW01`5|CTA^^8g{f>k~M*EGNpnDhq?gOh`AxC8k&_ zjj5>D5Qfc3b|)-mr)|rU<+J<#pa*u6;L40F&V_dN^N%Yzq`Snci8FY77P<(gxEOz> z%p4#mu0KP#Y&ZHu`kb0PS|HF0T;QCLw*WcVaYO9mcIdQte#mIXdeTc!8Hit|ul;!W zGT9MK6U<~?E66#NmCy|Ko}83vIN0EM~^ z1s0&yTi0!FsSb1oi%)>n*a>tDuiP2$;m)~ss9*aV=hYO&2f&aU(o?vd`z!IW{PFc`y#F@*x(E&_fd)ok9aTe^i zeKqp8cW{8qI1VJj`XT8LE9`6IV5{f2-pKv!%m035Tkav5;bdhtAr7f_yXrgMSZ`KzzgaFHQ^6K0z;v&gR&y;-N$ zho-<5^Rxp>Ly`W5co#aH11b)rnm)m0$eVIY;*AE915P0^t@FBvn(bjcPc5pvmEU;G z-dJ&ir-;H1CQqxsmzI*d1z8}deGX*%!Hw!vAnG|8=m z_u)?gJ?{D-PL`Pa96+B#K8c>(n^DyAEx1g+nHWSn7WzF3lblC(MhTO;9^S15VZaSa zfUQknG~)&uT(6L0ZDtjuVXGyQgzPeP;;o3q$DX4NPzuw-%#k zHUjjD1!y?x2;{n7rRl z=sRn01||FxmzI#Epwe=rY6bpyW^Q^6bxaR|#xcCrKV>r=B2%~~`gC456TUW)*W6_( zha%wA*hlQ6!{^2P_#JA&P!O$v1h>h0jtQ7+|J@0c71|Dx#vV-;Q!b`3`4Lm8`clN* z`~iD-9F#APxr4quX|Gu{NoZ(&Y9KU@$b@sr!pPJ|zT(IS=$b+JYCSzhc^?b+b^$N;Kr77Xz8&`vU$HO z*N zU~xK<*&fKSf%!-A79`U+NQvQs&(IEd9fkDf9ZKPx-~}Kr1vPw16JDsAAnX=nld&IV zeunNf*o^xb=mo$9KcPkyemj4p1(wy6uGt*ZYy;{?PBT8({9Ir8DXa%&Vi1K{3o|>y zv>EuJB|WVjXGHLKrJ`rEFMxb75d^&^BnxGO*;QD~WLFMlArU(PkUYgOU>k@4**iJI-7h1XkYLuz?8(bm~kXR(_jW8 z^|=X>3b|gL*WRr8jr~vC3g32mwzjE&B`0vY;hT;=hzXg(UO?hOL+;W z^jlAmVK0T28S$Lus@)Kc&-GaI0^KR@DLY{?xmlAS#R+v~A(?8nA~KCNWHweOEtI~U z($^S2lF=IQ@dQ#+=4T_kQgrCdTS-Szy1`zARSxDm7W=g{a&Ik3gvq=wFZ7R+2M`~Q zUaZko)d$UM47tXnk6J!U9}phw;8qo=RmMGmjp*u8hgz&NLmo|Hgfy&p!Ct>d=u36% z2VRTO09%dQgv{P>)x9dtVS<@z7=CnOv~0FRvb3LL5!_TvbH)DK3kOp2yCTZ^ki7Ee zioi;Ux8!a=f{=@<`MSn7~2hz$<4Hb z-d6}Jw+MoCw77*b0*vzIZe6L$Vqh6%I3>ZuYWa`}U`cqs99{b8GtFwW#KX_oqfkiP(2^Q>jB=PspFr02 zHG@%l3uwj}DyAh0c;h!B6L)#+)WP$S!QSvNl#`TP-53}z%_Us6do-$0fwBqygQXCn z=DJZb1qdK;ApxdU(CkV;S!y;zkKaZ@+PctujtanP>AQWOnX(~SU1#BJ4Xc)su9Jo` z*cyTbWjACO^+oTQqXKOQL9?8<(`wqqe@?%sh;{6c48Si1i~l_3=IUnn9Y*A-IUz7f zY@T^BI)@F(dAg9-{>4O>XoF`C-~L3zZ%k7$I^5;?Jx1Zz(vV2m(iEE&14)Zjk&oLw zzUBeZ_`LIOE2VPgMUY8j{2N<1nr#TMDo;ntk$L%zjK0ahV}QcsHj{KC^P5hpZaNM| z#$?2&IjeBk%-zyE@iP=J$j7*rq-nDv^O|vsW&uq)Y=^t2QaPG~B+7!*yzS!>XSjC2 z=6qC5bF4bym~}rcy*IQa)gO>wA9+gOx}3(eXPbK5x7@)~0n^0NtxgEN%^r?h>eQXc~A>=YPa_2GW3ns)=~6`UHtAwv^-`%$oMB9T}@7fVVgmr~;NM5t;4Xa~QNf&Pv5q8(IGXu&AYOwP-_kb1Oecc2ek{Bp z#~{S&!1bl8pgvq>`VWTr~)Yonf1{m=tWU6k)L?^U1>vlC?k3?owOmnp>Xc zm8X*J5q2Y@W;dGpI_&Xw@25xBd~o0Za*VsdVXETPghN_phnM9K^Ud|AqszJ}@bGEs zU&RtOf{8-`c3)l-AbTX5#_@cI3g4shsg7&gwom_1YV{vUPpad&=N8F)mEVT{18iS0 z{Yf5zFR7Gwylq}O~sou6`1n+X(b@8C#FTWD5%y8qWKuw4E1=2XZ^oOF~C`C}z zwtf$6oeFvg{_%TS<>+tm%9WvihuMDo__y4B^6dUp9c~^va$n8pbq_Q9t>+K_2ax2G z1`4iG{JK558~9LiP;gY}**f`O`>K|=;6rnW{jegQfzxC*>tV^vhZ44J%cHmP9Epn$ z>$4BO_>vym`Cs0fmh9xwj{zqe;ey@=1om&MY6^g!N++6Rnk`zmmM(EfwJUa!UdQ8& zE_5}&=EeuYd{*dMB8=Q3T9SP3L895+B*`Fm2 zuULn9tKc6AiJbwGzZM-+XzVD=R5hw>G0i5@ZGgTc(1=)}TcK%yuvdc5#A^Q3_6j61 z(n17HzSYkt>bmAyTc1e>-2^F*HY3PW<$l+x0o%V$0(|l zXpb6ZQjF<@h zc*y6{d!PV96%qym((u~pJsg;~_BKjzw7*OqWFi+>Zg?vJh=x^$DC=GHw1Qw#U%ub_ z2=s{-%_rI=4W2~+Edpe;AJqX4Bg#Kb+ICYt2~1=BBL0#)0t&eeKLAh*Ms+tIEArxn z+g=Q)$UeSfQ!=~7a-q&vML!JSeZ!rBgnH48HkMc^@kukpN#r1#zb{s#T=n1N)w^lV z7ccpodz(6k@>Bcv2Q47HSmPCn4o`*9y_;Kn2vJ|Sle{4q^QqvLvJH(|cj&@<(uHn{ zhy~b>hEej8%LG7~on>7tjc7d+=~Y@}dNN=GS<2Jv0QmY|I~A+cyS*c4sA*5f3PY3Zke?^9N`w$X z94>L~!74Y7qKJk{KaABe-32kIF}w2=b@+y1)At^y>&#!1iH={7yjsluBz%P<%I%Gk zL6(dbjy&JZt##uvEJgFUOGMaaBP=NyEgD}1de6i2U?^*!4SHJ)c*AaLWEN8~&alPP zP7^CEcDP<{rF5m~`*~*^jMEd;9_VM3;zDFEGmRiGfZX<%em@N@ZjtSd`(6(-JqRZk z$sO3ZjkxCVIZlxH1&?g@)SIL?0xW;B2KQKR%}YLJAw?Mv;39Ak9P7cKu*972b!ruC z`1LT@1hsUYNk!4M(~T%TK@`fdJn;#iw&JzH?Hr`5j>+j~K%m*2HD=ler%(60pk9dU zQKm`*G_FLiTIA4(oWG_C<|(v( z5=K=CqUu#8=L}Q9$4Y6Am?FSxEBEhjc5^|*09dlNcS|pUdc4RwU0)leh@jY$tgd{< zbsxoEuc{+yAtpAfD`&$#reL^eE-43@9={gA5SCu_6T{xSnO?E1S@4X+9WD@f8EEmlV@ zTj1|cC|1oat^}6H;O1G^CC@0g#KfH6{dH3L_xpu|`%wKeN(n!?inoU48vdg19(L+X zOMMpvQQeNLT1;4(bbOCM>1e_YO=_CMD|TXgKP4gWKn_&?2jKNyQG~JU7(H1m8+}E0 zRl)!4lwgxr8LsR4%HgZK>-8xyno;{Wa?`2te}LBxh04tvIGplcd?UWSm4RM<%}9@k z=L@|ZGMz;GAZ*&o0_*wW&!;yywO}DBvjm=&l?Uad`+xgmH-8W9Mx_*8-}tIByc9@* zV6gM}-Qx{VBCnt1HXR%lUWbca_J zJ8L^FxluR#y;mR4exSTMpFI5FUe{pheyEDpnYYrs#r4hLoqblcw(~J7 zQDXw%RhDR18-Gn>JF2s|Iin_rpfZ(Y8nagNpFkS z@lzSGlrjR)Yt_MInl0v&w1O81bmBxsn76?^BOkDjDmw=82lAgIOmL9W&>$3B8$xWH=UCUzuy` z+%<9e%F2jZcCKP>9wqSIx$R}g{pX)WRuACEX(}t9cpfYEmPCYHxgpVXPKFub53+|ix!5-8*9qI9MGz@z{Lt}%N z|I77{ZsUIdy3gmKeH%+35{3W!uzYrQXn%k7)!>SVuGBcqS;lEf4Sx};O<-3*4P;)p z7H|O=qVt`z6;qFR`R%9+XT*x7$4vhFKLE!-IKPMkt$U`?#N__~$MG|Sz%Yh;e8HNf zoJ34Y$R|<0!Uj7Ut=|khFzvXLkqc~m@U@D!6XJ;l3vih!Am?8Yfr-|mszJg30E-0{ zP5_XB-w=A$ZsFwx87T7-8Ibi1O*aP8i9js40mqOKznYbUAht?r=1$#yV@lM4x$e+E z52r)?m(`I(+B89l(E+;2f)khNZ^a4@3M1z`)cAI|WQ{zxJsOJ07lUHdHH{BOI%BqL zaQGJpEkxvCkbs;^jCt1MaS2g_kR&Z5Ur4H7U?-N*se^;iuRkiFk+tm35=a#CJy{gP ziIq5Gb-zsj8tF~P_;^s@M3LpbezncR;sONtiS6|5^Q(v-hj@BOEG))lPJWY2cpx$$ zW<;HjN0lmMQgHYn+`2L)o`cI?p1nLv0MUSm63hNK=|;iIIIS1QmS*g23sSP>~WSAf`?_R~LIasX8&fo&ICi(aIU%hYHRap^|u z+CVZ0!CidzMz6xSS`&Mzp1XXs#Y=;8o@JC4A#JKF?LbS0t%s%vhIQEErTQ~LTTzo=qkISGCdAWY2gigM+#>f@n@dq?=$Ln_a@w&3g*{f!7|7nMsw{!}zx;pW zxwu?Apu&5bV7%?~>0XC0+pr%)`|B0){{Z}T@nrC>w(Q$`_1Wfa`KtQh@$c8Aeox!B zUC(H)jt% zc%f+d$K&#@WO7=sr~*0oQMHT{c>SeQ|?~YDn)NEhCLgrJPK=MpUF0 zoyy;A&35qkknw2fvw-=!YFr?Jr~m*XQjCQIw175<>s?QRCIf?By^>9I1h88UxH8xRwRIWea%1IfpIZrH~O@ zmhB5LIb|=z z955iwq(sc71*dZPrdy=E;Sp#A@&f>Jfr4H?D?ph#Dhz#2&MzL~ZUu%8gOmcm034Wr z7EXxQ4-bQ;bX(vu0)P%zsddqP{vrOz7$lp90tXjv5sxaBwv^90k;AhNga^r-D~)&;sDddsu}_Zkj|ji<8ZCHGo1l= z$WtJV`qVenZV3mV{an~1aJwZsR~HcFc(6baa}1u?AR6fxl1S#Xi~u11;fNhp98ZsK z3Rb3PN3QtE0G;B7>9aX*;yEP}M{I-SwF~W4w~kbg3D-<~#CnspONj0oWx$Svz3@hx z3a1z17*`?lj-JNVle0u^04bbL@g_Ie;wztzep_!OjKM5Fp~j%+N*z$VUN8Xfjr_wzxq41DqjwhK6{v~P7j8(D%h0&>t=w{N1c7M? zMxzpN`of!OQe<%b_!3Y4zSx*d% ziiD^i5yx$*65r`4BF9h=h=~MN-U+nwo>X~IxISBA80K*KK?E86($|gf+{l6A1DfIa ziRiEq5@4m87u0xcHoa1cuIeQi1Cc;=p+a z^B!XEIJ>DQ^pulCxaW5AcuOPW*Pmd+pmk}eVmMM*#bk!sDzf_iCQ9}x1E z@0BNZ;gb1riDIVGtF= zECB@Ir_?uH7gz~CByG5pc4FL;-zep1^0V@;E4Z)+iZ-|xan$F+%K*koLDxE9k9n}m=NLIj7Ur^A#>K3F&R222|p_;h|iUoFU30+bix*9JlXjYsf^(V7zCn>&SvFZq@A zbvyW|%jmFn_48ZPrimHcG^b)D>etGX@r*dcZv7G)fu7VhiQmJ)$tZVQoqp53E!+^3 z`>x?+h9NnB))Fh@^wHgEU8%BMqA%; zncA(zv#v9@Zrwg~yeBy@35oe+e>tONsyv`=gXHFWP#oMo7g%OqPJIs9jLkPMSqfBj zPxmjaR{kio&I}EoZ84J`w4&LG(h0-c1!{Ae&;`R$c98=M(S3)j8}P=^2|DC2Ufb#| zy@Ub)DPW&RzJF>q@K#ZPp<}O}*mW=mHz1s;Lsu;quV0i^%Z6a|$4-kn>rKV9AaH@$ zuBojk@a@JU%z2GJde9Q^<>BUW1&+U3pBmeB3VP2m%M~SF?om-36qH5M+HSGM1fEC>-N# zBlNAw1-y%h&>Ui3xtMxvYQutNWXRMmm}g&=ZU+#+2?3GWk5Q;fGV5`8ZxJ&qa(}HR zq~ua|aDHTwyOeh7w}n955daaSOEaEVnR?YY`~WZxup=Qkh|^|HwXNX2^u#cvxMcg@ zmIQcKLpfSt;ONkgl~>|PxBxSv!1Fl@40%&u!juq*I=<2f?tb)_S>czBAiZUf3zw0r z*3Mv+^hh54KseI1$rGs8Bt5m%GIXZ$ zzzM=Okb^xCKP}{Gb(#W~ zSoDJ_VscmozPe^=d}|4Zv=@cErgwXFrr-{*GCY)xGZ{45AhRfRK(KY{FsDdGU@r#u zArMG8VSuBzE(`K>qv8O2i-zD6j}Dr8j@5oK$y=-jbd65(AULQV3(=fsyy_U0(2Tl@ zGXde+3b<$xkcgc~&tBN83jh!r>gVau52b6kSrOk=jkee8Qam`?He{U313@i$Din>} z5^(}vJUa+@I%Kk9i6w?~Sd1mr=Q|4O;PB9Fsqn?dat`Zmxikm>A*nl*=igjyR!IbS zoEc$+3s^goq0{FyshlIIIKeDREs#UhVy$`cC%pM+!JRzLOQCe za}#WY0z(a`Is!d$HETE=q)AhkB(sK=iVN3!@Hin78Qd()z4ra6{5nZUMQRz<>b)00 zYPKMq+&RpM>b#OaAUCMlB#ed$FFFk{1iAS-wZvLX>IrO0zi+;Rk}@BZ=~A?|gt_KAA|1Jz zUbw0a#o`BOGvRaU2-z49Ro1uR0OiPuN55X<7@8*{3dE=&lH=;=SV<&IAn+ERo3nz& zRe&ZgBy(D37QviIOsPLg7g)2*BoYY-O9<*lF+FRi8E}|GFH%rlMEt2P;d4R`-kP%z zVRa;8DLz0vAPF}$AD3?ZVMd#vg_bZx0h@9f)rjZ_lj%nCa4iTD)B{M@Ag&N8>KINsx5J4dlMM_Nsg@1pvc?)e>Rn7>%Zn z;wU*Qs0Rl@8{{`k$VTf;$C;3VQvAe9+>{I5^IvEM0-77kdmL;Fkrmg*;dr7vLChSz zq)9`4z;xj80r12ycUpR^_0`s<0Sj>?c(#^6P3ne03rSS=s36)zvUM= zdsO%qdSC<~%Q>A)0j6S}`&^8P9kgZZDD~@7LCwM8Fjm6S3FC)q{L}mTyM%s>7f1zh<4-UJ{KI3yy&_OkV&kn)UYML2_(!CQ$Tdt;pa?M2Mval za>n=r>K#8Df^Fpl zwr8k92b#0OVsN%xjwGw$ghN z3W+1C46S<|YfBj*{11g021J6y=`U@i8?#!+%l`nj(V&cd)+*dve@G1V%#W<~S(Q<{ z;jbt2mKj{CR@%c6p1LHY?FAhG1j;dU`I(Ur_oU$1Z6hQSbS5%&&U-X5U0fa(2>>bE zEX&Y?9)5PSi9HKOLeL@GvZRPPIQ%Ds2x>=SF_3*(r#}zMV7jknR07=Y?_{$_GgIuyzqB>JP?tnnbF#0(fR7-a>wTo^&qUPkEsbOJQO z5vz1Q1BTBqB!KNM23sLdLundQ+r)2_0Ev_{fX|l32-2B>FW}tXpfVPx8USbW0ZGHK z19G@(HBpnDdLInz>!SN0Ji~#3Iw^RJ>opz?oY(+bwGDJHEEoH_O@YsE!E;?K3x6;e zBSEju1T8DC;cbh87NHUIl7X2W6<6@Y0jv^CvD3>1MgXbb@Mi?E)F%OwK4KnZDz2%p zI5>poU|bx^WVXbFfd{dwUBe>VXSrHTmI}g zDU(&y2p$c_K>!4ncfkimu%+Tyj(;=dShbu>mywZH_(&oRmvJJ8QYML`ZB$n8hXB0f|c}J@Xit-%%CXI0Z=6F{Z7FP7F(_f8)-V z4SWzwtP1+1(<@s z5R7bRbEJZ1t;6ayBov;WrA}aqo!%6!0GMLpgl*O^2V+~}J_VNUxDp_A)(A#PJ@l-C z92*RX3}k|NR&7QkrIsG%w-Ukw2#1cc2?d9M6g&o}ui-cXQ7TYu?Gd6rs*Rjr8;vd< zbmlis>MCd9dYa6oha0OB*a?L&{m zlWWP7%D^lT88XL7ZmfcT3BUpik~_Kd!U+|rnx*_9W(dx*1cHKV_h(vO6^`j8=r9O9 z150C;v@~wu;sGqc-R*<`$S{N*WZV+JjU^&;tO8{@F9+-ebXmcS!fYA&fW0+}PA!3n z+1f@XM_hynIAv0vGbYrAq+}#<_LJ*Oa0I3;^DIFM2`G?2gWY1c3e63{+aY-m(oUyg zRPT1F64JDpkt1W|@gL&p76ZyO15d(cz z>L~F35Zh~*JxlUwm=Oqmmt7nmfDE(`Oo7(yA0g>f;u3BOLSQB05!hoNy5!x`Lx00ehoHLH2Sq~d%^BGVv%2_sh= z(mMB86`9};Z-F2alrTUETdpM%bZ4br`v7DX@ob!QMMMl|y-$t#$T|}M#3VI?ojaUS zyduy9Xa2BALN=0CnAcAC1kc1UPwCm;}^Xz>ga zrs5_lpNz~(I}s*H$LWT^$fM*5@&@Ij#6`O8lfAphxL5pkM7HGHSM3Ng$(WfJw|H zvqL|*6zv9`#Lk0A5{g02DtG)LOx$`}Gz=5mofOvO6XIN4FkphT>XgbT5VRC8EE}W( zN99-rBj+TU9bI(%KL$X#oWaT`UohBt(gjzG#V_)d0zOb9JNTT`kpxI2k!k1*!3IIX zFd3H{*Ehvm7{`zvm}CIXix{rIiTGfm35|7*{{SaFmi$l_qgaSRm<>NgnkN_n90JHB za_JZ&q)zSO?Nq;q`L5}8NEcmc2L@gO-|~>j!kuEez8B#f z5>TFi1B*h@mC)+x#puQt<<#w`to;o)vJiBC$9^!`#j@hyvxY&+kQfn!exJ4cJ)Gsi z4sb^<1g#h#tiZ&66Y&EXau9oy)DSW!di_KG5B_W(4VIa{$7z@%>~n45LBr)Zaq|BF z9N0}X?YLR=%h%lZe+=3+Q`zylKA7<2kWT2Ch_ypJtPwNQ6$?10EU|JRj$UDbbIX$9 z00nECwnr!)C~1<+0y_|N5)-0ZxGrr{i+d8xOauxUhw;bLBxA$7nOcExqm(UnVKPDc zQR5dEGm;Iu%&j&2$*{3YVg_ERGYk*`V-gE3JRB{F61O_5bpgmc!N$SKiiI1C!v+Z? zS{1!59%@cj3(UCjIAHDzAd*0kh}4J?fu70lu^bzlAX?Oj*+b9~nuxTyEN z=xud6EaU!?L5LSep=}W<;s7|VerURODl#A-kISc(IM)LbPU>v59YP4s8toLO(m{uC zmed@pP(Fqg0$SJXpBDcB6!*9-PIk-aJgVF-2n~e7M4$_koCG&C zG7hST8{!KtO4tMwBUS=I=|foA7!*L%7}WJWIxVR<{31v|%PtEqF#>W1fMru#e~MrP zWjz`a$yvmcttaDT^AOs!um~*az8CXCsgbWB!Y1e-lL<6n1=c)-QgJ^n{rfErnn_@J zQ(HPF1O{GG%EH(P)}}*G$?LRj)goRqP^eMI^ziI~9`MF$+&(yvb#k6JI)WsllvGj+ zkddkzbxu!_&eXh4Bka%j5cB{ALs2DoJR!6IZYM2bKi8xaGm4G(`_#mSHKD`cJ*K>dFVxWHiA~O3no@P zwUu7Wvs3(AcpoG2jil`-IOq+#)9kKmuc~F^=xKI9B*h z(BA9_D;ov&r5wO5vkZn%{{X8WBJrY=zQ|?w(>W~dn66LxQmI)!GtZY_Q=+q;D})1y z@W8DGLVl;d1DbauGFa8d>tEGJiSZgBNHF4NUa2hxd({QEJqR5`-2}!?UYV>qs*mN) zCHr-@CeZgCSc2XIHuCl-4(Ihtu=H`OD#Vt*vtU6}J5dK`@@WT6^GiGqYQET0@kaK_2l7 z3QZ}w4Lmtzi%#IjW#7-_KjeS%3$F&tJT}8BOyWOD4L7;ibnLy3zSUmt%|gxazCB(% zdB#0mYLzed`oOpRm;OxMyfRsj#DD?X+j|eqgmEl>(flt__r&7+dD0E>!{klMC`qnXW3}(_I`Q2a8^gJuBTI$b8xIC*;Dy} ziT?nsKQd}OPln}90t_iLuyO;{9<}LlZ2&Oxz>%TvD{UuA<~(36<|jfI<^jr&zWpc7 zRWk=S4~75<>!)@y&(eK*tl?V4!s+EG5d`__af&UQQ{|Gv?tY>~X$F%17+~ZEW2nr1 z5uK?r1+$360@7K*(`|ae=||vrK^AgL#HAXn>G!1xfJ!DuE+ccJ?p1biZb7haKc{!8 zk5WcWM)Kkg4~Vh3VgLd&kDh00JWqunsJW5VCcyjo#dTT0Gt3ykhJ253R>OLUBp}97 zXg4{T-{}>p0$;#WmQ~2)={*OQ`KPyrSOF0a01lcRBsy`y7PuQd{@>SHKN0YEUHOW5 zPFB5k(AH!S`0fD(+E8$N?yv;)qrl)?$t{h1G6BQL)O&}w;R6EVWB@a$5}Zr*Cue>r zL;<|UfA;CsMJCW7=lEMmT0Fl{0V7<_lz#*ZdkBxX*fqH%*Kfsepzr>obm^~ATzoDf zwZR~(55gG*BZYd>0a2Ok@PBy$tZ(>{8PZB+aVh1ngO(Rm1uopt;-!heEAea0aEwDs@atK{ykumhEaQH~uYGGwaGIQMOskmPW$}TGc zCo#XQQ}MnZn_f_`iJr1G?LDaKED7;EJPow2t{1RZ~hE53@bWiEjRX_0n zB2S#mW8~ZUitG4`5&&SyNJ@>*L5h zSE0w?0x*dFN0eh9zb(HI1+2ju30+P=`8dSX-kbr)@acw*VBj6!)_o$oZ}@9qwG8>| zI(C99pO0(}K`sDtbMx$cs=Qx^5JEhwSveYLH50BTw)lZ>_<}}oBohO;?Xao*1Goc) zs?+J-n~IKArwIKtJ@n}nelHi4NF){zOI+w$!1>ghLO}Wt_&>&S@r}6`T7mxnwX(Jv zvu&l;YoCmTH(~Ez<)(O6eRI5xATLdk(Xn zl?w>^dTWnK>s@>c#1fvQ;uC6hh)1M~rwZAA2N@3t{Uj5X&?*t{g!Qi@{!jk^D&hP+ zzALV~iIKv$P?V9lDeOW8n&0xj`48am!SI{ze1~Cz?IH56vE+y2W8#T-lj69(Qd!lL zuv4}%iuyl>d^6@hekl}fktXOwb<@ia$kD%m6iK#nLAdNd5xUpTzSC#f zwp%q6QkQ}Am2GRS%}uk~{{S8T06zGh6j{Y5KlVlA#31gETKk{)kN*HLSWx(jd2V6d zXm$i(-U&I>21h6@y8NR410ly|O!SS5ofehRedrE_K>W06#ESZTXV_0AvDm$qSD$Gk|44wIzc9um|QwEAb!r zNBqx;@b{t#;UI3dNwnmxHIR`TSM5AMis5lA2Fr!kpA#IW;tF{dfQdwQU>i#Ke%sh< z?6pI^F9)p8d$8NBs^^(+{G`t*c7O}~tuP3dpXMUfl3oV~h6m{w1OX)KWI^#TkSOZQ z=eLV21}rF>jGIaeq%es~P{lvP+)cM2PJc8ZaAg^}f)juiz}Kui$4o72_C22xK_VoJ znVY0aUzC%m0F}F|@V*R&8D12U!OFwLv;P3JR5{2T!3$x2YqvviC5w+MEG#GDS^*@x zMw9us)C3y=m;lQ)Og>tH0A-M8FhMdPlab+E+@nF*d_X^#lu97O5(t6QFvN9F#u#6i zJvKNZE)B%4%8wSnb_eqi(Y9wIbxdo8LZ(9Q5;DM&M(3i^U`dQ^&TjM<5F7)hb@E$fUOyDbER9A{Oc26a}M7N#G00ze0-y3yQ_aF7QnPLojDM&h3j zNXarp07m|J+OBUY6jh-xmH}iD48+feGg7|fqFe2&0ED&at75Ojy5I+knL-2|Fa+}k zIfN^74Nx){po?T$69ocHpcp&M5sU*}++Hdpo0KF_!3%SNp=&9DHRo|-Sp{-H?J7Z; zWXR2SS#d0zOO%qv#0G$2goI5}RI@4Yyj~rv^B2qtAC-WvM?lEskrGN3%x-8i%+HEs za}o-9Bw#iWjMaF25*f73t~q~2!GelGm~)NQHMfw5DUpYrSZtCAj$+49AY(aN)RyCM zn+DMcfKVixP-B?}n*6Iud$?e<0wl&qizXnf8%kYOL|ua4C?wzrgQ&O!Mi~Y4rL*8? zDmk!WD_Fb3rU5eaB~>}XIxoM(fw9}mbPizoQ5?q9<5-lnr{WYqKuO6m#9b;~rdWUK zg>iBCg??WXuy5=QwK|i^?$;+!MfmO^0_2hZIQ7rCNP6h_>0q1%j0MUc}V3l zUEIb-B%F}PH005fa7IbCQxSU>P&H3G< zm^Y{f;nCrw8#7h3$Oh)GcUzH+T2e|v0bru4oZP_NKZ85Xy5dp*GCWhv2Po936t)d6 zAWg#38bsg(MEL-*E~|ZuHXdyQf#KWq_?jb_#6dJZAA-4&<+Or8LIMjW)y&p^FcJV& zOwS#Al+atARpLWY07(U$mkmxTTuWq#41!q%0wWBNI~}7mY$VtWnLsq4_)jt*f_i}n zL9UO3xhpP$#nzD~;sNU6NCdf=6f)dMzl?w-$}${UND#~;7Pvgbq+9$g_I_JQkZ1IQ znFp2OgO!cxc;g($cnEF}DAEMUOPJ~?aSg-+XOfnE#5NU{&sN{8gHOSgY z1dB;Q^z#nr9ru-5{$$ z49WGl!?B=_Xme=m;aXnA$V8;ZsEGri0f}`k31UURoAVgQm~x(p?L&vfITLI`K65BJ z%tjqI1BGfSZ)giADgy=_AKynfg5WYqVGIF+HEixeQahHs8;kJ-$Se_nKT&;hI$~*f zc9MCuD5wuAIs-eb(ph;AA_*Vs88UErpdgZA(99h?EAU%rn>m#Vx zc~`5%;RBWn$urw&7#(Ym;tU+7`FE8W`T5ph@@T01h}*ZG<|!@!XD9kkd8&>du}j3@ z&fu_h$IJS!(9!XLy6MoZa~jScy=ph`_Q{Xr`BiO?uHPvBDx&WGp7B*!6Smb0KK=gy zG;U)Xd3WnZ&JgnV`~9d66msd?u6qgsQNMSB_J7uzLtSW4pIi%tYho1UzWsB<_$<+I0hH-=UA6;lq9Y6_q(7Y$Ou>o z!U2`GI_~Rmf&H>F_m~3;tax1`->Vzajv?rvb$`vOEqAOqCsr`l zJhnU4ZQ-5$>plC@S;9DYiQnF;pd}vLpWnFNs(5c-;EfLd0M|;ND`Ai`r22xG=qj8$ zM^;X-M`a%5)nq5c2;h-N{8 z6q%8zAU=%w>$mSj6ng-pJ-w(CM(a1-_R7!A0jHgU#dd zlI|W0*9TGe)tVs55(LJ&V<3;Ys&P0X7#WB<{@B{8Ab~XTF{gNz4hztu6rsp#Y!U#& zB?N94jJcGWo@g*Ci2r&s*?Vg()_1hWA3 zm>W5IjEyRvPUsKo_^MJIA(5aO1-?I_hc1@#E{TFCsE}FRsO!B`k;a3&8;RX5S6ZhF zhtsdOx$`^Fgw3pDd>wTAy=Pi`>>$EJuzfzRa=gbB00a5tX`MRLU1{CMBg|m>{=$VL ze*u(P$z~wvb?7<@U&B{4EdoK0nCuY8(wL11WXxdZ5B|SBs`ePlz}~E~9F|+qf(A!c zavb7|U|i0QbUEn!hQh6N(i0P=`yHCi6@ei8%%4(qt00#I4-k72dmpkNEvR$q0~+;s zUUkuMj16D!>85ctFi8nxNcw6Q-!%a~D0+^>;Pp;n2;OOr30x;e{{W9~Y}4@gI4ncX zXJZ|)fxS4gPffk!=bg#r%1xa8mdzUd);@UxkdO%T}8T1r5mfA$0%5~9i?s}>h1hT%` ziEsFd$w>>0?U#&=kqDU0YqU$tFUnMCU{mpIEtKE@6peGI?cS-wz`_Gb@*hniuQCw0 z5a6{VQhSf%=UVd&bZ89I49#XsUQ4}CDF%x%3+Xc9aCAOr|px&g08ywz_AJ5dYlwfC77f<1Hl z{{TCPqFTbrW6~qHe$)glz9#5xvFVI`sN4odlE%B@4l-Y3OMd{w?cvy*;tVy9DzOT2 zj8B%|C7RGB#Mu!OnRx>eSea$*PsI@A%9nzMn#4Zzc-IbPJ>Qz@PoB6{tgyXw0OgLp zWhvgECul?r1mVw@P|(i!q~YBsPt?qGdPa*Km2`0|=*BkvwdSx{T8W5x)O4!ZVJFKQ5JG*H9{FaE#D-Hbw7Azv+qNr6 z66BfedTW-!Vf{rn;bf=j1Iu2gPn+BffRqB{^xA z5+Xltowuv;Mz*ZTS<-uC1M;nQrJ=7*g<>)*4~NtO9ugndNZV>iCB?afS=5xkTKb)I z2SrDT!r2RT>(jRX0A)joX-LRnM8a-H(cITh8u%j+euv+!0m^u!pol0qjHlT5c-o32 zIP=8l63>|PCaG=GvJjt^nwoAYz##JIMwvstu9680K?nti#;-v9$*A$}m61Is>#Pl{ zqmA&T!3<+^H3EI-VjrCZ20d|!`DE2r1bDZACRFqzngXAGbiAbk7io=<>7k7I(cwP| zA*>NUY&3}8t$zuCf$Fr=3`1r%Xwv|4pyypy5eey@lKN8;!A~fhAe)#ypQRh^Mm)^V z%x|jsDsBe?)^#!zFOb(hwLmYo1T-N9uDMf;>)L^`>qmqHN==u!J3Ot%#2fJK7~V)n z*H7h*sdzRW8Y6JEfOK((tw{tpyd{&Ks0_e3IEdPw-X0J{pAkac0Xt4G2YLg9LTe|K zWu5fvFB(-i7srbMx74il%=GD09Jgc@J%5a~+A~+Xg4rG$x9C0ft#}Os2@Nx+T=g(% zz9WKg(10$~gw&y?{{TGM2Q`)pnC1jr!wNw}4qltFE{)crCrNNndZFm>9<_16mVsCx z40Y+-`Kq2G&H~#^k>qyD-i?ss;}CgYkO8%WsMCG%PsOx&NkO^x{{XN&p4%D^u!1#` zz?mA(Dwo_^Yzg%+b;iTbtdMgaC9i!XG8oW%(y-t*MkFsRhI->(ieHKdxydjzOSl@( zXpGa3hYjj_u+LoStJW&a1DfKdSU6}cU@$;g-nxJB?o1CLgD)(tI%!0p77-x%Y+3*g z-@5RU@W9By>b`6|*1qXXzQx98347AIIG+Y&vS1ADg{FGN4mH{!LfEf7 zgb+IU)R1!AJTh|}uwKRaYty|8z7>mgGJw}JqRcFwj+)ypX|N|)J@zBkF*SSmS}^|r zGVKHnR;&u#kmfe4*f2qQwWsg*nj?Yt4F zua~p)s0i^mrI20(;Y5Zr^L|wuei*BWxPD|$Z91(pre?Y?_+JUpdCYH-+jE+)4#0y1 z0jSXgyt+McT2FvDIAz=j9xIrfbtO5^XWF{0;gU!Mgy5D55KqoADA2y}!fXAt)aOlq zwN?cHgd_}tXHPu3HW9^l3>a*fAOn=lP6ke~PjE+;)6n8S`%5FeUy1PPn|t@^jS!!a zr@qv!jpS>dz>MqpYDhWw$HGCwf(D63!%Sjo7I4(=QW(=9LCS4(bz3eaGA@}gQ;c9S zto-WSP8JrLGJd=DttS=)t^C{f82J~re9EY+beTwmc}}BESl`S6(gC&vgW`BSeM+92 znrk>Lqn}v2D38;iA6HUf9K(b^RC2VAN`s`SNF2&0x-8+8!krh-Bg}m&fLks!M3x5Q zU*b1%7Nl%_Bq#~{4ZVdXKzP3tN9GVuF3Dzauv8zk?BPHnTrdPn=#uj@sH$D?#|M>a zcO;|SZX#YCSA}r&m(VzVbvgr=jxIV*3n2bo0$yYYAye>pSzv>gv`=7qW2JA3xs)do zH(<$>K1W)9Ck0y#ug#xTo}x9)S+oP6gg`(S%7IqsN}U_~R^ss`32sb*o#gbKl`&nP z_^}!Qu-t+HaS){l-l6yaI7km&NYE_q=$ZuiKQA-49^O&G#!1jIAOc|&rXCD}XXGi5 z4T4+oc8z-;-Fh0Y6N4ZO<~lvswN^pSr#XXZAO1RMGb2hS(9k2l@iMY|X-~(ni@AUr zAayMtIr246!c!$kk=Tzz{LLf~vdDr4-Yj&ume7@e;}u>P2f|1IOmD7wwXT$IAVx7A z<@$WVsoTP7XF>{r)9u?eK-_*l4&@!e*O~o8RF`}@EC2qh3fxq~0CVw)V78Bcm)#$gb#Qon_m`da>*rJBaqSWkaEtN_ z<})>3Ck<#8OFu5h%@M6fz#IYy2lMU*Lg@A-zLdt`5Cr6#q605r+xp_VE%*R|`LGFt zu9MqJV|IillaTU>5!$raBgDVTLVNtt^QnL1z}uN1JlYNx*drm9X*G1Dis&W@zTfyQ`P{JX4#ah#W~XV-CfOu^7WmpIxCNrWo5{5ehv5b_Cu zyBhD-r|{txe=r6i8S4`Jz!g&f;qc-hy*7HRYVdxQM{y3+5oDmw6tSLN_RLi{d<1pI z21q*e>K#no%nbJ<0|H-vVMI{YlOi9;W8m)$4SPuTmBr3OSc4ms7K|} z0;RX%{{S&5FiHXo(gA%0Qcxs*5GgD{g}ei%g_Ebw+%74(@_;fV$zD@|{3^HO0C1qj z{dJvXWmGMZ4+mrNhZDSXq|P85Zau*gglGo2CQ?IFx$m~FH`{vb zx8TYPDahC7F}Nc|M1yE#3A8n->$Xlct#5D;a{e)rN)0)>Uy%g#i52w!0Pr7;7T&KH zE3FpV0f#)VXe${ySI=mo%JPu^*`6j!;oLZ6Z7$jJE4- zT*2FI+?=A&3W3d*?$voPDBo}~0pSP$kjOeS&0ClXJ zYH#u2?QQ=z3=wC5F6O=KX zGd-wm%HI~K010UK1GcS|5>&W6P{SDf-J?vEFb+0Vjm$U_P|yy8&tt7M_MxC65+ia6 z4dVoiCs5QB;qj!9Vn`4rCZJ9f!`h-Q3FPWDL4x%LM&B@L_#X`q5rP=$35JXAF*KH3 z0t65VeNvTa(c$HEpteCMjD`ei)SNTE6g<}o8Gg0 zDB~4?U`fv2_Eac85%&YsZR9thc>VFA+IrKD6v7Tf;W+D#yK6~#fxmAtKfwCbFF|;m zLmi{Hmb7?Qj{E7nKb>r2J$p?~$BpP~BZvH)kOST}KGkqs8&;E&dU`hrm^j+IKgn@< zuV@9~5;V(#5Odq4@o@ejHpD5%UGeLrD)zfNTBrE%_vx&Begn2`7SnB2RbesUur<72 zOhMnvL#ZPJW(W`n^wq4GCj|tzmq&qTHQmts$~?+P4|kVU{3}M%P84a?4X_g4w^K_m zFWKT!o6MQK7Dy6s7!DTDgTV`DSGxv8NEU)JXSmnP3ThT9CRDr~2W6{+=|`AB1EEZj zcEGnIuYD_(RLmtd^88xU63&#knUAmL`4+J1%CtcVl4Q=lg@NZ&;Bc77F*B57MWW{XzV_ z&;iXi#&PYia}ofNaUBu^LPu?T)OehJMo9x<2+8yFM;Wh=_^sI)WgD|oXYelc`mNqn@l8M-8BW;-jI&Nr~CwIb)LKg`tXKd}(tNuTT z;b0(7Om&~$x-PUqOCU~P*P+dGo)FSYl?BE@$e($n%7#%mpA&cLg`mmpu{uo)J{`h76elOpj_b>sH}> zIJ?D?%i1yRN;}cFf^7_qPt#3-&~00F0(M+ZpeZxBkL&iXYeVKNq}+yjdeu~ys9*sP zw!NOU)xhB(Co>V9hQnOqtiU-g1C$U$h*{l_K8)2bxG;zrgqLQEEqUuz<9r^Z1~*1D zL+)3VOYj--PEbVwqyF)wNdnvOz>>re8UXJ=5Wn_F?dMOx*Z>p)b_3?)_^z9+3>gqn zLrpz9ucU4hhmAT(oVjYG$PjVw0%aWpTn^d#3QIm55*cSG_<$y371hPyl1cofIL6rP zv~Y3{jIecq zzoYu;L~!3PIV?g96Qm{)$6;5P8vg)=1-oZa(<~>EBs2St2xtU0CQ|MObl3q`;n*N! zsW{kw6+S(IoVa?V7OQ*;%6S1e_uL1F{#0IsL}}??rGJL_@qY@!7Bt*J`H!7`YsC0F zijWt1>f72H@2}YZ0KtABa$RVC8<^Q0k3tS>=l(ac-|XtOjW5yL-Vb~5eWvc)cZ&5_ z`=3qCROa%2p5~YFKdJ=d0=^9UKq_%^^7jdeyI7mGze}Zsk7*qFpNX>A6%Dybw!MflT#sL{T=2|5o11+PWuG=k}+E+~rHj(0O zYgAC`d0hP8{zLwH?k^VNCfr(K3oU?A5Dc-FYs%nQ425wYsJS`xLPycnILwizWOdMu zob9z&;6ddip@L&!*Vp9<*Xmn3DcR7erv#w*8tQe_>Ugu0g=ppVKyQ*K?%Gtw@PzV` zJ3Wh2_w=d`0RWwJC$DWLYYTNSAX|`DIi>#q85Pz{65?4tFA*9Iv@_+Qqwv=P#?0Do zluY?9jdZK=ICjEfa{(=mVs-|W?igl1#dK@!ttP-1o4_LCwjigEGhb)_0LMS`L1o{C zd*r_5Xfkc$LhH$KLguq+2^#p@_yn)g**gW_QdXd5m*Mze7bP%t$5=t(?b^I;zQT>Z z&CyNi}v#2V$`1hc@mJmpYxd+&^m2`0k zEo88f1RP||utOxDk*IL^ysSi_8e4?$wJGCThNx(lIE1v7zz2WSIHBxbUZtFoWKq)hogffSMYUKAoYW z^0KO2#DIr_HStC<-U%9adi5^5IyDIjaQl3tjC7W#E2 zp`?c4a2d%To2om7yy~2~962c?gw(iAsmXKFMN^5#0zom#2m>g-fUO7#Nt#{|JxC?N zf0^6`$ZYhNy~_XrBex&_^lXL zX#4puq)e!*5{{YZs$gX}b!cT;fd`zVl%QqI}fXu+?1vp~h zZ30R}FdRATgmW0>2WqAs7Gqz2i$Vv5b8jUTY`hXc5&)|3O!#7Xt>z;jG@1hdz$9-; z#^PKt%B~;?wK1LHqR-}CDX%uihm;YPqeBBBxD1Y9TL@zz#rDUN7-)`d0R$2d8No*l z#Q4ZMj0>ZclF2rrMZ}cEep=-`QE;>%M=CcEaM%bD`AN*Ufe!xw33xyfz#}5ii2W)= z$-zWDZbCX^5|(@q=9W_>lfQ+CB!*1*MGjNpv~r$Q13(}4g9QM?14(Y1fx(_&3ARx% zNg)7_Hu)!%f|E4oiWf6B{+pcmuI3M9G|ys%Q=4zE+>aB20M_k;P*%A&7*{a)k7LpC ze*mK5n3-JK7?yzyEeQu89xoc=fRW(?9Nfe~FcSlC_dKSbiG0FwgAB6CMguU>WF!R) z?>iRbvx|Xq2=zxM>tJ~Z!4)%bL|knI41jHh$Y&9iDPUq_jB{x|G65GE3ml{{21hA6 zyeb@S5euH-%+Lf2hDaJggh(;4gH-00U$Xod!5|s80zsZ)Lk>J^^>#G;q=>;J5^j@{ zpk=WD;ABxB70NE=llh>)z_q|76xF4KN@|Uq5DZwFJ`jg9e9U2TowFaBY0dH1(52i$ zPctj>!G;h72}DUE9Qi*Bj6;xaw2G!Wnj$^)C20%H|n%+Bl zWD*v3xUxYZ3rkF46I9OZqoi2Sw3IG4PKe`8*&BM+{4sJ`0dp8{tj=8iUgD)^65vNx zkRmdah}XqBOi|%{QShQCnKp=o^U4V&^CJalC}JL3#I?3d$r1|5B(N@n87N~@6|-rU<&!~jsF0Wac_gfyObZw*UHuWXsgSovR3i2;nmw{ zrwMxIe!zI(O~hFRNF&TP^1Jk@5Aqx{9QKlc1DG7+CtW*?*W%o6CB*oSsK0E5=TShh zFLjC9Jj>R*Q`nQnuOxG;;twi)e+TW?e07R1w4s&`a?yd0O=^5TD7xR$UalumK0yBf zHTb=@s1w<}w@cOzm9OJi~@eby}$9l^IPp);9MD*w(T~D-8Y)!Ut*~#O+Q1; z+5A$5;-uHA*Mai9OC#nz{{U14k@R%e@wLSRWMlZRu{}wJhJXMLy7}ugEyn%MJ1Sst zuUZt9oIg!A>i)7TaW5$Au@Udqt7rq??O1D(-f4jeaIM7SSdez~`3gKsM1rxoXumhw zjl3bBocSl;rE7SZVRiX^aO#0CyKL+{w?pUaPj%kCiT>wEp~AXhzqWn%tS&NhCI`RU z{p~M10&d=+mBm&W?y&`qzcO>==QUf- z!V;w;1LnSm_^1h5#EFL1ew#w4=7M#|+v!7#c7*=`dqShZ$C3dE=~|q@3%D(UhT4M1 zT#;7%Lbvyy-R;y>2M zYCO3yIhK@T%hs2LehJRR%>1Y2S1W*U__z{0vHa~%#rdZtFM6t_pd4r4u~EEloj?yC zI*EYU!(tEh=e+46h_(qhI%oEeJ#?nGh#=to_22JKZRv`j<`$Vv6qnO_eqWS8C%spY zY3dihl}CnlU0G?sfB8r%PepWi7V(=j^Gti2y`<{ru*p zWjVN?40-{n2)*0=&U03_*drS(k23c2s)79s{dK8J->Z_inxM8#$GYks`rtos~#x>#S(!ZE$O&F4dDXm zKDoh{LiAOleVpEFyYo>xDjh)h{Il`!BEFjkgV^B=&ysG`vzz_qN_*k_Eej$UA!L?d?X} za$F(q7MSl(X~ZX;$M4rUt;DqD~-gJ(q zAG4u&!5X8eV^iI2Kn@ffu``AA$GlT;%4AFIk4oIg7I1OjOiyq=^xP|e9W?heka1bV z&MgFFb?juV*UGPN6P4i%CUl5BcB=7y8RX|p&U8_&U^dgI&#%o2vml=W*#NKIVDwrq z;<4ePiFTX^j*cOH^G|;SnE++8F|TIIt$oH2Z9gw?wVt(*M*c0au9%$=?WE$K{vrb> z0qi&HqCtz?Mz~PtE#z zb*AH7RK_O-MGb1UPN5lT2aYIsAs4Bdd_R3hs6`#U#4`{ zH1nw2!h(vEu4B@Y4Z$~SBN6p_=5UeCSBG{S!)`oXIpZUw(AJPo}%x;%a^ z9;HZYx4mMi&I?~mpPtnph_LEb$OpQVK4k0LD-w%$1e24|faABTQYyRv3I71stdsBS zh^PF+UFSc(lrJORj&%D~#1gb3^gW?DI_jX~X%w6u5DcOg#Fpj`K(3A@;Oe@co7_!E z+ngV#)7uKHfLUUYlS)|gai;!MejkmJR>4M}ew4OxNY40#W60-PJU%YS>I%Uyd;Zx` zRDieP#F$4nH|;5=_;HrjhgsDZR2�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%0Dhq2|1ac0FxZdD{MJEPhb)OYS^J|!7mppCA^f- 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

qgVsg#w~Ur4|r(-|a^0W>-o9xOY-r z0Ka0GWPa7W=mg;LKWZFKA64&4skPLNvX6XcwE)XX2}aUA`!x4)DO-i-Krau94kLem z#ba(%ef|Au`DdrU=BAX7B(mrVfxSbTSGZpK^{QAh;+ac|0CP!?e@Z-*1)ApwZT-Eu6(=z}!_@ZpG@vA#1@4`?ZCy)DN~)vh~K zNgjLq*iyh-IFAD(IX<3S)9W6;YGpWLC|_=`N`Txh93xV?4!aJ=Z@g8lwdN_TwrB~1 zKWb!0zqKzRIgZ`w&Anr_P-{&th0^h@FFyYOYJMe9Cl3Cebi85L-kVjE9qB(0Pw9NB z0C2cSFJg`MY4aaSd+v{=M(gpZI*tAN3V_z$CNSr=p4g_m{i$vQkhC*K?hf9@v)6SOB{Ck&FpfFMu!zC}my(d*N0^aF4$ zz@7d6)R&3QPQ9z5>!P{t;$uIzmVWu505b!*h40Fm<^0C~0Nopdfs7fSKA$=~f&2HZ z2o4;#{H^Aa@B+!(?qaXP6(hk6YQ00%&>G_@eZ47&$FuMD>qh&3f%}}+zlPMs3N^P< zS;HZ-4mvso$J&5fIH@r@`F%4@b>c_4_v`0Pb&nnW=|=t%ofnX*L3mQz zi0(J@son*__QP~(B+1@B?kTwZ z60)R!RZ1|sr}O1P&{-!Md-A2?T0qQcA6@D1opV4(g~v0hK7V{H{{U2Y=)=m7ED|@X z4}N{Be0~VV{plc|2ZbJfgQt}qG-SaVL63SWxP`C1svJ%x{r>=uKboYF94;VG4tDv^ z)~W6E+O_tQmq)tUP`igam}5o#{U`zOoqW3g03%c5{AFQ(vnfEzv-NO=zbYz z3qZe~ohaXFpO>W$HKl!ZKKzXUw%(t!6}Y#?bB#3e`&D=(D8?~K#^JA6ih!TO@R06$ z`_Xz);#vdhMxZX=-j#ai;gLR1IjUT<=yvJWw-Vd{GGA?T z_M^n%9K#xIq4F>Lpe4Y$oO*=*-_2|ID{{#_we03;^^ZC{aV_=_KK|5@Aup6H z`44`Y&S}krd-pxxoi)~w)jlr_E{Em5KbjDi!*CGRTK(T%quJx%k{@ zWxr?<|K8A-D(*O+3&q1)NUBPE%?>=6X1ilxDNg`wKxA(OU zCjxvBF;e0QU4dGm6(=8wnrnB6}uu>Z#7pUd)u+A_AVeqf@(xFu$RR z8GVL2*UX^+dY>KalhI0J3Jdc%l) zK2AT46j9-79-6+02+a;%bjN+>M_L*UydozsarN!{X2L5_>$Ih_2BV39%aJ_x8LsDyk-#9-%aa=#-E;tD9+oRVrxaupT z;yCDBNn6*LJ}j~bCzt}j(_w(TEOi97YsuKq-}8(QN%20@-O=4AdcD6m3B~wvJysC| zl?Z8)*@XMl?F)B3@eF9giE5hpIhI_**3py^^ZIf8M;~c0p2OtyIL1pg?RHx#_OEqc zQI81ogX8eQUtXoJ&^I)@L8l(znF$?X(hc zsF^1nsfJR9-&H&NJt~}jA5q)s@}z=dj^=r_B1cO z8@OixrBDXZ=S#%l5_)_0>54Yn3}7+utqTEJ5C>QHo#;|m@jxWLh=I2LTg6iO%tzPu z(wm2HYh0tRogawd1pWQ}s!0xSgZOmIe>0b#JV2}6!a4SR{@AAYREJ+Lm)fJm;UCU@7C#KG;XA9OMHqW(3jlm=b197iH zI{MbL;m#iZezhbUhBusfR^nP%US>bO#2x7H_;3T6_w%H-;<7bS>DRSDM~TLjB#kup z<~6R5#mBze(YDamy8Hd&w-~MRf7_TM^a%-D==cJT51N zfLHMus_^U@XWn}{PB0_@JUIDfdx)m|6CfX1{-#|(HxB(X_x9HGylYHyl{44B?^}Uk zUzw*q_CHE)73gWNuG9ps;(>D4WdL`@J^Wz=>7Rei9#Mm=mOiKLTaUmQnCYFp4FSpU z-wKH!v6a_u-7;$YgcqVEX#Mx2@Kyi>?a=Fy>s$W-B1j;BK7EXPin0lDEE_O$vpaWR zO7H&w4e{V!B{(C#Jj7QI4&b~Y=!|3g8TF%g4T*w0&Lihsw!1a7q0v?i9X4A>v#nOK zS3cska{mC1_?~M<;RD@Gbyw!QO`F-&=&KZdjkDSW)f>2sXf*zPznxHUv8T)xol$3K`BgZw_HcS@ z`AIEz&vL?z>3$#(P@T0{-I6+pGeGeepVc6^5VttnA}W6w@mAOgArJ@y{fWe_)H&$Q zZkk<9Qn6<$s@+@FV2_pm0F``qj@to?WX7d7djKc)uNUI}92sUdon|-w>AoxC2|g(| zP201u+BC&ii^3rXQbwHntnZvC?h?#_Ni>)AqCEI{q&*m$1=P1 z*X2Mb6N^2A#BAT!Skh_79waIC_1x3&mJFWW#U3}qOZTM##lZMkH#e5_KfoVK>pVSh zrnkb}B)q6PZ<^P9OpuN|kDfbGw!s_tw)EIeujG8UqDTusGBeose&UybZ~&o)(Di*p z_ow0fIU-8NKA*?ds4xC2;#U^KAah#d0q>@-TK#v0z=Gu3hzbvhJDPwFNyxx;_{G+s zrJSuj$9-${5BUE87~jLSm&<7vHH&{OrhN`kj91NkXJ=}5o*!Si?mit~_M&;7hZ5Fg zZnV3XVt11#*EBvL3>s~(%8N|wh4wqY@1)~Iw4RZb(A+x>;5FG2K zPMs^|kAF?W#^OOKU|Mj|FV~|&dp9xwf(^|VagwFsVTn;m&u9ZAj2|#p8e)eM z8%(k}Qhj>^zIPxB8jOUzNs`GBG6FmOTy3zofW)|s!4oJ+Pb2pg(ZIV>v;~mfLqFkN< zC|bZ^f*M0btcV4|Gc^tL7W*v$I!}QOmbMm}H%6aqN^iWP#Rt zo%=y*oMFu3;{Y9@Bd4AyB#0u=$|##a&T?dqqw?ftmgZRrTL74xgft~#C{;1R%Nw1{ zWvx2UySUwM(a!$>Oi=3wRh(oAKmb7MWHBMZnYja{AIFej>P)Zu5+xJS2nj`NF4_(N z9w0~~!V^)@oNq(oIGAHpfE>#t9Wwys+kmKYg(KT;O`(?nUCrSU86khRIt53XP0jN% zqyP@732}r>?@{9XLpub33P3Q=%#!rb!&}2DZ4)G@0m5*}7fiv_3JBsJClTcyVI&}V zf<=%OuoeI(G(QH>1e0h4ys&>LP^9igxW#@HkWtB-MhVQ8h6D&~L4iaNO14w{!U;}r z0F6lM)Y42?JT55aZFq@Dn2=&w3&KfF_Za*pJSl=f=4jfPDfn5&PBf#zyO!ahwhf}u zg4~0Wf+phUpfAASK4O^7!J9~i`HuM@5(m&>xVgUtlF1y`ZQ<%=i8l*C0SA#*<6rts z$bv1l*U-r%0Pwrw0jThJ_$;TENsQbCM9ReF6GF_ZO2Xz`q~w4OWSDF~avd=oPOphE zV!2%oLw1eEZn=gh2D$iOm4Lu7MBEBQ2DyO>?Z(@u6MzaHQyt*IWTs0HBL??;Pl*es zlmKlFElR{%-ortGA{C2pxCh3GxMd=?=3R~9$vg<7b;Iqq_xT02M zV;NS7EmxSW3%b%$5=&Ove@(xvYU5YS!T_UT{G*ryU`5yxP#rfk%q%tN4lf&&JGqUvtE5`FUAjOZ z9{7YS^WXEIR!FnRe&IkH2{St)k7~>uCA!6Q^IZQeOYk1>(ZKG=NI(XGB)3?NJBZwnON?3 z*>1K06PVB+P0<-?({OlZXO)=9ZR`HAtq+GL(elI@8wmsh*J|wS?TTvN56T}5FgbO? z_wio;0Fz&CW*aR6L?N?(ZK#_v2AdMjo0zv?3vMaJ%;^%q$NgeiBYY?ZrEeKwYDP?^hP`_~Zxo{2QSF*RpBySnttHb;i#x6fO9J+gF`L=+4Uk^SMJ4F0zL%^|`Bl9Mvc;w_~rhTG35) z)rGYItN=v|$fuyHfo!G%lsdz;Kpt8{!q-}UdN)-B$fn`&>u~S#=|ma;^3WFVLd&Sy zCq5`op5vpUMF=g0L+kJRt#!RAz@-fR=mEpCe=d}5wz59{^{o*?mjLfR6-#YYx#`k?77bs$ zDS)Lcdz#izqk&W8s#|!WaYBHd)8(xjcxU>fXA#pIr$s^wZM1o7SbuuL&a^1ESel@7 zO?CVE^sV!t2p;sUTHAc-Eq$kNIuJI2t|*-Od-m&d9{H`qCtu^=l>kLg@Z1nR>r@wy zS|%M(PVpY%wU!l^TZMm@N`Iw53vGy^0q;V~=ubE8E|lYb`$g`Bt?18_>Il^r``UnIp?zW|xq+?eFYWiTC!U9Wkq* z7l*^^Ouk<_ZXL7@v;tW_wJ`zp{i|F^di(OE7Lx^nefdxnuv8BReF-Cfa%-eR24l36hK2@{Qp-Av}jrxB6^{QP9-^z)$md497W~*-$d(~02E|dbB0SiE?cJMmKKz;kxp583g3G}E1vfrIADR~O8x^dcx zv*+uIr4KH(3v4+*D3kAcz1RN$bi6EY-|a#M-X64hJ?UG9K6R|Px)h%TH@3&$U!^tH z2>Sh~mp;q=sW>dRu77VT5UsXrQ{~Y`J)A*AaI$DpSKX#ie*XY!)^JZmbN21pjl6f# zsdOq37Vy?6a-NY|+q1U4=!-h1?kG`j;cKlz;9&QEYUw`x`_h)%deTS^K;OS}P02p} z{cBrinWJgZA-w>WNpgpw>g!)`l>NQ>X-)#6ZM)C}e_sBTE4Wz%J4xT_{l{vpw*l{J zG$|`Wjj^FrZQz-a={~f-i;R!IY>#=W-b{P_s6bn8o6r{Z-nTsI>F?#%fe+6<{dDx9 zLU?|-?*wlM-Qpaow4tw6T@fk^sU0-?2(?G^wyZ?riOr@ z3x_z0q2Y*(ZKrB8QnZp$a}byB_NWS4HS~$89uJ?}-`cD%_Gpl&%insXB9a|G-zwJd zy*_dK{VA>DKAKZ;O8e9xmsz*V?dRT`@Xtj_&4fGXsqPOIKrZ1+`Fq-<_-9meIQRSt zzc+t6TWorR^IfP7$%D4k+)GFE?eAL4dv>9F+iBn5dIEeqWncyt^!M+kF7RpNB03@sHt zLNSLrliLgDSfA(L-i`J=dlgC>_%Gkqqsnz2c=zuWYl?yALxXQuLICivNye1dd!K)5 zHrecJSmiH2wE;11%p>bs?ik9~>U}e>dTXuJ2lu7n+(|L-uTely**@Z<#NiVe2CL2l zZT0t>dIOwrAxU8O5x>(Eye<@i;&c0%(wqMPB6bhnYNqr)x-YM#P+`GU+5RWu4YvSD z<+?6!$ok~%y>Q*0`Oi#zzI1OJ8s)Uvt)(uCuxCx3ZikbYSeAa8k{{RW`=~zyP6PWYq6ZWrO+anl1m|%YAUvcmqr(ssYw?$qY(f3`SZ%*EY zTJhw@w~j%NCOosJyi#9o&Vm;+|d?DQ)^mYd^UJgm$Gi z`9X|&yuW%1JZ=&a!5*8a)t^dUAZ)*!{isF6ehAZ<4M%t>pzt%+qkrEYbxmgr8pQkg z=|lh%6P5PSdeFI;+tWDm&$sqi9CY8#J1?Ct8~Mxc=R)lt?tJ~?g&2vAaL|L@ic9aJ z@vfWKoAKWpkTHXq=n_BJuA4oZt-?HB)7ok5^l#PS&6EECA@L8xiPWZgjG(>6bMg4g zC%&W`bqz1g4b=W4<8rm#!PQ2hI@cqTTPNE2SJL)w!Bt6bt=dDRj5kcaK`vaWG(?-iZf8A{o^6#R0D1 zf_rO?tDlT+kb&+nJ;$yqrq~01zr=Y|_>Znk2(XNiDaPi30l9rd(zxX0x{**f;wnr{L-KW7#Hv;7j>-&{5)iRIDK1Pv56Xxw~;HpN9$PM3};jC-fLZP>~ZFQVL%)H7$1Ih4n4OV0Aw!P`&E1d3q5}HmYKR< z+jgK7{5MiMzj>zv89jabG}hTT>F?R2#W4f;q=Fn?7-(eop608?v3~mL^{hdT(tR=S z`BTI@7>L*DKtC&3_CB;Pu_fE~q7cj9)W`K(@Z9=z?EU9@0(S8ELF=d5md*=19kcE4 zM~}vx5L5g7l~(JZtd0GDpE?0-;i131{o=LUGtr#?03W4rp~khaG%&PadtGX#!UUFIsr|J+wSk<<$KSS;1djpQB=ykgSG`BGLfa=#Yddz6 zO?}%Be=X@C<-b6PB)+I?pX55|yMhsbFaT&bhVM7cg=?1f+%ZbTsg_4J@6 z#Nn}&zSYri$Dsak_4?8d9EbOw`c*iGZpWs-)fg@QFXP3R^3RLg`LF7}mcB~heB~Uk zdQE)?_^*uS6OkSI*US80vf;L;qxwImk@Wun2<=$xYU;kL>UP!@t5?gPOlmciH!TPP zYNNluy$fyk(wN_;+t1%>rWuZN({9hpzs|49^o9Z(loX!oB6$Lj`!xM>SfF&j9b`y=YJz~5c`8UV2$_XGDGF{kfrkf1cvHnlv`7J?n z85_iPjI2&XSIY7DhcaKeucY`_WtZPo;rBj!;(e;!)jlUB_96zSQ`5h+D*TxpJ$?HT zN%&?b1peOl^Q7b7a}gco@BB@DQS(Ds0!erKcHb1-Kw*5$7quHm2UbVYoO+J+0nPY4 zq3U#c=lJ^4@-lQvI*%piInh(`xUzsH%hT(wni{7L=maOatq?zjsn6538|*T?ocybE zYY$I-r~voJzou&?1^gG^RqXjqbMd$*0{}*(AEC~3_Pv0B&Q_Yom0@JPV;cRj=klu{ zg}eq4Cvz)Lo35jbP`1aFM>t!{{RU1wPn`ad?16P z`!Y=BK=b&^_y>Jnb=#n?YyK_7yYUd#)77L`p1*B9f5a%?*j38@N152_-P=<++syml zg$T&yCJcfPk0glzB$3d9X}ETSaU_JiR;(wg111(ukvzBGaJUsQujvyD9fI)ZdVUd* zpn^rMkgkE;kAQ5Q8M>(U_dR@G&DuuM>pTx=41zN=yKb@><@w?%<=S6RRv9Mx6STU;u&_`;ARe;=bh(viv&QG%pz2SAlWgL|n z=MmdqD(Lv1h8h-5kmau=By}6oU4EG?ciS?8c@fqqRO~kog~~%j5iAhghZtouvBXxg z%s?TOTb|Q^AOJ-IEe!J$D{~>eH9(dhN7GZpurubedCP+F&6gDGg zu6n8ws}{ca2lEmDzzB&1olby}hQUgkf$;po2{Gb21VpqFB!v$zH4%R)$zbC!4*C-G z2^?a&MZ^oP3;V$?4$%kS&{n zC{H$r88GK%*&&r_wB&}9-Ae$15h0SOk|i6hWPWU-IdEKM5a?VT$G3_~kYo^m!tz4}5@PE~2VS3w;N!*2 zP;MD5l433WBwTT(YnO+AEu!UY0x$?W-6)HpAR$`yG!GEm2{`2hOm0jhv=ZK`2R5%O z1E+^#)^p==X_7gBDBSsfSLQO!CHy!y8=^Gj2?A~cL|Y)7v<8(PAHyZ$BpDi}@^!R9(9>i#bq z`gQeOE{sA~)%A~q7WDzUnE6`+9-+?gXp3j9qi?pv4cHSj*4SPNCSWpVPTClWBN|hP zNqs;1`H|NdKe5#oUOqPR%00rSZuR-hjizE(374<(_~xqCV!g4sf@d%IV)&UdAmL-&n14;vnI{ zSp*%>At9tOB~Pt6I%gg&^7>Cw`(lq2Vgi8~F%1zpnFQ>sn*I#y(7(9HS%Y0DitgUD zu;Bc$SMkAXUd0atm+OQV)M>Y#YIbn7>YJ7H(K0i|d7*8CN&#%o zN?~?ri0Rg|bOi0~Ii?n!HKTV6TE>6`jdY=XuN1*nv`_$W=v#F#G%OSWwwmi`UJWgm z7Iyp480TdyhBPBpVa`iL<~vusv6eXs9Xnn0Y%~Ut;wH$`_cSA_CMKnpHKA6j$4`YK*9Dl?~g91>Y_qJ=f(XCHb4qSgEU>G-!+ zw$FP|6Xj4Up!!nV!XvlM_5P`c5`-ttKdwN1KN9}{x4x93-S8@qYe!EyZ^OkW z7G!l@=vWR8)CRiU&tvRG8!Q9w=S{@KKYo?29`>LnE|fgxs4nk7Sv?odp5wM^6p^?- z{^pMphptb*?ziFN-`1Yus6uvZXRq7Rjq(bOF<4q0U3olI-}}EajAiVMlBFhO&6+(j zWZxQQNh3wbn288kN{ux{mh4N$zRd{Plk7x`ETfP@_9P*@&+mSJ|IO>pz2}_!+;i`F z&htF)_nW1zFXBjs-8+!&;nC4W3`eN|cA?l|8O8F-I-n`b#nUqKLly5a5p(+Vqc@fJ z=pO5@rl*g{+^J?3Ka@2q2#25$yhqN#&N6m^de%SmO)%z*#>hdz#m9a`yZgUP?fZT& z7rjZrzk0F_qUp=ZL-fEz_Ss7(nez|dzG&N~-OWp1J31b7H)HuzLRF4?KNds^(0?rF zpq+Q+QIB1GNKM{!dKA#NHjkYZ(#rQJV|R37xxh3KvU(K}HKzaV}-bJ-*2h^7MbesbefcabWF3Y5H`lNpBu0_lcwb zQQhB{JoWbp7mY90yFC99l$%{Q{&i)#lyh9*m(r^%cjuYM9tjW4>=*FncqWZr{dB0b zCoaA$vU)gP-ZcjmQVM$cbWQBJNA=@(4$n-#{JMz$REIfq+`SEwH@h@e6$QAfHF9Qnx{=k>QIk5L459jesBBl!-HX7B2CJj*(>j0FBTb?u^NSHtTEGgnS- z>D?slMtyQ|3vLSeWO|sem$$tsu{zR!|K-J}53WpK@v5<~Hu~nfGcscTvhvqaf?LgT z#o-Og3z;o{H_f@d z^RI9>7@UyS-!7mmV|ut<^)FxXr{BGt&a0F6c#P?eev-UBRge~X@xjg;z4RH=;m8Kf z<~__KM0f*{`w>s4>y&GAv9(F1);qJrNGMTN1tBRoBRm~Ghvw!EApFs1Jlkg z1A(KV0&h2q$q{7q&la9X-}0uZ3L*6(Cl;W~-}fu0;b?y8s zc^k=yxiohG@`Y+fu4{jkN#xvGwH_?cCgkOn)(|G~-{isqQWFpS4@~Q^Gmh1^b#_nd zyN-hy15}Cj-3yXA2MJ$BrXKVLk2NulS`N#-au-X0eLEDVjj6%Tvd#Cgk!xM-oPMzj zhZkRsC7i!>><9b(O7BssNT6Yr!em?U!`9cU=0s48`IFmLAXPe8Kx^dcdNC%_1AVgo zZ{hu$)p}bct;_4XREZu(-TX6;<;DraI=Tn?dX1&Q{@*30$&wdc_Kug>r`Wu1^X-pm zp+f!xD%xFtYAF$jA2!~#10#V8KzIYVMRYCTbN4;h25}W3yeM)O^XT#U0N5>u5t}30$5Q}=c z6cSU$v7s=j!s={n@y}9NkeY{>L(QH7Hm&xce!b(sWz^R+=9l`D`}ucaP9_;B2B{dE ztL}IKJGxA&@G%|r)@qNE3u`0)xTHK`ptEqVa_N%DY|j_H{i|K~r@OAYSKyZ39i963 z?P_nDOb z!%oQqTM2J4;*!#*xASz!O2S;OLH_~T#dVjmgRcBLEWeAaR@IYXZVV4lpA=&|b8aMH z-uix60H|}dS5=unH+%k1rD`jQrQyhr>sH8~ttM36^x`Md15XapVt_~VjV(6!t7yTu zk+pqkZMnX-qD2cv+dC!lg-;&(AFP>sW-nQ&8%T8WKFYk5>Tp;3?QndntW4+D_f?|} z=YyLhNZ|Otm95G{R)jCX=$X^Jw$WAX296>33GVnDM6e-k%%WWFgWXI?!ibk7OZ5-_ z#B&7Yop2;b-qAF0`MiiF2Xjt?#e);ye8GySSq>UAnYhBb{3X%;>~_e@-Spa1s176$ z@Gay0+vBml9_;Ui7p9YTJ1M*I{TIppfk6V@HiBQq3&pR#S!l9XEu2itq))*Vk|Gb-U%L zh&a!&NTWTDnc{^0gr?zD`;F9o-Ve9j5Wi6-5Owp$uJbr!<2RyBpanCA9Gj~{+=_++g%|pi++eSXU_Hl`Y&fbN)}4AWVr?O zoUIS^Z3vsy1e|W!O1Ts6rA#eIcR#c-DHC{M_fzEZ`NUfN{SST*O-~gPHz;*3SGbwg z41PzEv%`DX@1+4L=7ta;e|-P^Mw7{K^jTd|fsC8HKEc~fMl*_p&f_yb#;KnaylHIT8k86%v zSG~-xvOQ(>u4pz%=VyC7wc|3wA2;mKaGG0f*FhrZ+{1_d+lcFwD*`#taEU4-p`3wl zz0T#o?T#)tw2|rRIlavLG1Bki?|tU8{#4!Z+7G#$|EOBNKJDrYZQrgluD-87e$#7t z5c-at*Y-^5wSN20q4`tafKHUTx8E8&SmuE09on4Z5`rv^c+e_HFNS@*RYv_FY6+*qBD2gvP)O1_r_Oushqn~t!hVyG2F?ss%{0_#6DZw zS*O07YLolnF*hxiUdIxKT(-r&_8pL`3%h^VT*1642)+XnSyZ>ilD`G4(p~OwE9TC7 zWsR%q7OM3|hE)r0OZzzT>JgvH3!nj8jUfkHFh$*viEbK#QuLO9vLvG+f!8rc4n}{L z5)doG|DdrRi2%yl9lGwBIvlpuh4s%J?nc!?ysc7ikxr{?Y$^UF5NU?F}U zcV-wGx64ks~Fv->$rKG@TGG_n+-=JeQM915ysPw6&FJgRd!W5hp@tT{n zCz`FG@*ZA_3M8367mTK(0S7Aux=(S#09CG$dqC2*g8f@}fx8zOtD2n+|&!D%>i4EoKD!*g}LSg$wjGn%95^URm>X4zD<&EIbdX|csQ zI`8aI+8*z~md`w)1MFB-$qBn+wD5>MoB<~R_wcn7n(!M0D)iezd_JZE!TeU>doUTM zTuZ69L-BB8vK;OdzC)dr%jz(?W|T$A(6Mcp(1=xcg`hP?zFEK|Is8QeAM4zczc<7l zz@Hw8J%JylnC*-c+zDXyg;zr|dp0R;NLPmhVII;Lc?yHs88pjqi|H{AmyNHnV8cG= zj@jC_OhCA{8bFVtf5sQmVNi^HIFsa|eae3#r-UqwsGtC9%NDT4d zGfVX=f_{`l5!{S_+i)~s+RNH|COy&BeaR^kB~(_($}x(2aka);*^>xAk6D z_}5`PHy`&%a&*_R4>!UeSGaU==fZ2*9C}j!GBUjDOGK5w@p(!zr6o^ZeftQEZ-u2y zteB}BSKPP1Fmh1o;Hjx_jk)Trg(aePA7=`$uE8c+!Ojq<`Ta{Tc#A@{ip^QU;(fdE zt%~$()}V1kj~Bncef|h>fI8k{d^tlv+8L;Hfr=QkR}b?ZZQ$nxFFDHf!x}$$iIr9N zc|LgdbhzA|$6~6^`&XxrZ{?HYdp`o=qg1RrK=?HKpQdRR->)H+34i8?8pEVo;jekz zD}G1L+;#a_+UU7lOFuZsow~C5#Xz_DMMl*l&ED(&e|u101`7k2g{ME&-q8psiCq8f z;xX}W(h`UH_m6+=IM2e;t*~Hc6qmqV-vEi-l-yw3d^vgg;C5uDz9Z}UaMc|a3Otz- z{-jc$bmoclzrI|8Y%nGe`gz$b&_!z>7g?vzoy@GMaG{h@=zhYcWj3VS_{MMGE=fPq z{48H5-}2v%ql(eSKUvF+@{q9XVY`QxXNNfw+TMDujC+66JSQpoFLB26-=3V*`^-x| zEP88MzMUc%(8{3~?@Z0zK{tkOj;~)m5o;%lwDz?OVD|sGx|~&C(0ERg@6b5cbqE$zOh$=Th~?r@!hc)eKB$g~!vH}+pG zJd08;lhiLB3-Nz;s?j<4;P;fwLF$+8o|TKw@%WS+nh-)RIR+&T)g}2G+L^g5Hg_1= zDZzOU$kvaUMfWj2TH>@&uWK1Q3B{Kq?stbF4v)7#2f#*73l$~Kx6D<2+*uze4q&-yyjtux>88LKwlMv(-+N+uXJ5iPpbIS1z=~tV%Do^mBHLM4%XZc=-Z8P*q ztdU9~x)nd{iZOu&7uLT|?&Noas?XL}|LlOV?PPXG@8e51_A8R!_Ef37eFJKFFTajh zb?g*$<$D_j^wr*`x9ip-hu%ib#{7tVCWju#wz2)z`5&NRa(M;0{}?yozW3Uu==9j! z%|BiHvCf@mNZSrqqV5Mzbvd3|li7VS9m$`Eeem$+CIc#PK{z0NOK{=v%AV!NvO5=A z^Ma}z=&XZ+PdL7lrU$FdWcTG*-7fKWwgUf}p+@neDRyuqo5t0l*RJcm9>=4a*a z9ETiF`vu-7$6s0dbwtXs6t#BgEI-Hp8zglCB^xfNZ0@Xq-y4<;@1ASSW(1HU=Xg|r z;5T_@oNjkutSMb=Ju4up`>FWcKlQESw$vd7s?v(tj zM8>?~TIS(LJ!E}N`AfDf8Mm@etSdC*_+z`-G~1-kUpSG zLG*1mE%grFB#Fwifv|dWE6!k}+0flvY+m-vPhylg`V*De1=Jej3G*E+LM)fJmoi874Hhq(3xzkO zJ*?+AHKe(05t#SuCg!hJNQnzC*_%2^5$>ytXib#|4CXQ}k_6&S(#8Mr#}|oR z)Z;|Oh$Kq3=E@5xizh9S}$M!#!&q`Y@3UXPh!amC&U)#I7-=`uzzM4*0ut3XN%9SN4>oUSJHj z%B_dfyAIMmt z3m#Ix&<9fP5r>MB)z8}ubW=?loKg*`eedCV*G`h(jE1NF})xW z%wGC0fAy{Jf7OzDdL_EG(Oo%^xF_7L98IR4B1?WlXKB#7Dt|`$#<;}D{m3`hX?5?s zYnT(Et|slJiCBdz7);ynkHV_OYSGf2g^GkHN9Plnr&#&`=k&Disme1F@9oaD28oqG zj~EZSvq@_+cS2NpKmQ2KjxWlK-=@9u{_TY~3V&&6!rlGxHHYHwfR*g;A((Hmq6Y6@ zwcZ^H3ShJ-z$IN5soqbpVBv69v2T#W_cI+?*tY9te+Gm^JANkHe%bEzrF$8@UOM38dDzRQ{?h_)KmYRT6J61bzB6JENU$k0Amv}X1lxNt z`*DjK_u=B_-XYWf@#`)(6?aNYAPHuB$@U!i(}i7iC1!?fXp>!zD&1A=aDn&R*E0eS zm3Gcqzb9LY@N@%^mIvuNYYTHu-&9GUtK7$B*=RZce9&%SHkxLo0YdBzd`iRYudKr*^?JmCec&++#lYgeU~{av`t*rl`5 z_a0#?h4+b?g^zj7Ixo43Zt<&(n_4Ksk;`Wd&L_QfIfpG)4;80Ew;)P+ur7zuZV zHqa>G_RZQb0%)KV4jPZL_=%k+w4+OKxlUvzT&>WM+E^qUV$bkTH3y`k>Bd805PMsM zH2?!Vnu!i57n68+Ee5UD8Oi2E1S|PjCJ@~WKQg!hwF|dWC^Qs;1D~<5IyW{1dx>9F z85fhWEf(+x+jjJ1V$^ryI*5aiqL9Xa$r08MzLlvXCwSV zK8!~E`?(wjb2d#2qpBbrN!?>Cv`X6w14rTZA&pVl7`l;dnV}zek`x8{s&EhmM@XUz zUrOv<; zbvtG>!ciDu>(3vIm#RS+UC8&K6APAL^g*L6bwCU*SJOc0tSyiiKsnpv{VP#uk6d?< zyaA!0W?W~GkFti!gqq|7@;cpkafugylc4Rq8 zJd~=e9z!drEpA6q%R&irSO6{_DS%SayFgn-Lx!Ny2qKK`twxrkbS9{~8Q>s-sZKH? z<;bx}5o>3Ze2G-38V0lJjrEfCL;y{$0n;rb|geX)MQ%5*xU_l)lgJGO}o4df@PT)pn$Vc zfo_CniDaTF7Ld_VnrQIcIIOX}yb*t-&o5y9>jF1Lwce`WpX&qhhmP6hE} zQ(?t0?iW6Stafx}LWyN7=^-50J#)%%5P7lUR**N`} z`k8lXDB{9$QG}sH#ne4EJEjm=H@o)Ag~*yB(?t~^Q}~Bp5{KIOhAs%>g+tD>+_#eu zlQC<)WUd@>ZZ?tWd0e%f;9EYJh-g&W>hhFO$?TN5vV+QnlJ(M3LgE~gPKU~#O-=Z6 zJy&HMS9yxd8ODH#du4Isto|2b{g-Fa>pwlbs{L&f>$XNEOk)C#W5hK&$1;X?@|_-{ zBKDg)*erw0K*cw-I;vGlvNc|va)TMODa(2%MtPg8GF{v?XWe6nM7Hbr0XcoeP|cp? z9a+hAugT@<1n!Fk`w{A+?AOSyjjB)-L_jk@wVMDS*4ck4mopT?`jo{4@Udt@GO{*4w6%pji>getg_F)^ip{W>;D7zBoo=;Z0~>R zW5R4S&Z9$TBg{n0Q|}v0LG&0B1Y2)`$@G*fhMDbk8rj-5=`$~Z4-MaF=QENrzM!7h z-;J7SHe&Mm0-U4F73FBf@*~MH)-h>(N@A*R2yefN(`qj0a}JTL%wj>|gjJ9Mb?>qj z?=%0&D{Me~Lk7zQeYRckyuRBfcPEKt_hEsDK0fpoyTXvlUEEo9Uvf{G45rm=? zl)K#*aec*n%G+NR_?rW0rU$MF#kwTt-ld&o!)aFlYH&+33^o6P&Xz9`og?4RB$2VD zkb>17I_2C_&*(^!Jj?Q>8vm7{pBVNq%Cs6^#pI6G%XYnsH=@OluVk{=v(lu zlmY(eFuA|~4|uWr_CEk^9#;)U{z@x3sXBjjC?pRh^+|N9Aw{^S!X4b+dfGP zT>b0f@$9eBOfM(vi&T~FTn4+C-O6;B3U1cB9{|`phq|W9f-}|S6$RRwUsN;QaKSke zqe{;xUi$p6(+cN)=F#c@fHuhN)HT?tuCod)&qsfpwqZWG>HEgkCES*q-5t)C_8FW^ zQv6JIr4mYBU~zr>pb*oI=u^ymyjLN)r=YQ_DxMGw4RJUXFW|A5>V$FE*RC0-rxpnj%uL5V4lTo)9>kL85zd~ty+ zfMoblKl@8WCnjA(Q;qSjnDFZ5UPbI|2plWwn^~v?TCM1_8WRT@VzKlYdD0$kYc$Lp zF$Arlc>v&oTpwQ-dbZA%3NC}ZtTdRFuws}Y>@3gKKvq)PBQp%s0prpmpMB*Bi7cR6a%#MM)G<9YCt|}7?`c0%JbowGvJbFss}F%*f=|l$TWBj z%~D+sxDh^E$S@MQASmH6VSY^o5`c!5u_1_jhI4jE9!vWnmNIw&Oh!G`j7hHDZqj~O zh@DmmM-VyX(a_Ke7F;=s=2eyg0sWkzmK7Rv?5MoldvAVqn1OAjx1eD-%~+UUnT~?9 zl(840&{9Px;achv6P7hC8c|g(n8D9amV?KrJF!rxm3$_kpHfWoqQVQx;M|EUSQzM) z0Do-}RW;>+db5Y4N(B=NUB@Vbq`F(k%K=$x_3=pNSh-NOw5&L8n41Bk5^%p}7mKu& z;<|OWs-uF4NoGrDkmYBgm7@w)D2_&GgjYErURzv;KZ!$04Yb=i_^WqPg|gr& zv2IuvN<$45{9g^HP>`T*&(efP2nr`c$#xD#!qnagHF*LF#WhxWU0w&JN`*O_(3s>D zQ*03^mI*Z~MkkSTDarB!N*Ger5J@K60e7io*JaCr-bMwu6b+m@=!ST+>O?+k13cns zxNv7=LAAO;d|eQc$v!rbMNNj!2uE?doK~%#YX)hkEyi}1sUQ?+FkTW$ozH^n7K!rB z(~AJ0S*SvIsJ6cafs(a>l?UiD52t&+(M;^!zsTcLn2MWG#lQxG7~nD`8A zo6u!LYzRlWLLAd|83%iO`6)_;T1BHqsu?-b*^~6K2%#x_;y1N8r?Et+9$*;pFZTw z&Ph8axL3U%8s_1B^HX{1uE@jLyk}CJ)W0@~HfNfO0H;u{MCq}8?y;)f49bhIY)cQ^ zeGQnK15{e3Jj(ZjhpPAdR|3{{N>4Og{#5uZfyp-1aI0`}0k5yYG+BI^YLHg^qkUC+ zxsVb0&jnaYoJvo7I2(#w8Wrr!C(e`DM*g(W>h>o(R@ z2Sc?BY_1-%0>?#j%=!7M*94im-@%j<4OW}9#w*gXjjxJo^qUc!LS6aspXnq0 zX~1DO2{MG_8?Uz;G>s+z%!3!h2O{a0vRSWx-(%I7aF?%ga?uIL%|62e#?9{$EdqmK z%rE6kYLzeyD==MxzByjg9ETlGAaEK<3}YUtM@*HLy! zI(Rd4t>fB>lnZj^LBFkdhrztK89LuuXN4l@XYNLgdD!j3b+F!?aJ`Jng)VN|%J=4prZRIho<>oAR^^B+g zx!$@hE`Z-4;+k7r^T2dyU6_TNlhtJw%Zo{Eby}2Gm(IoK?&!H z92TvqvgdbKyQ(~2=w$~pXyjdC-c#F2WWfC;&$-39a~|Gxesi=4U8I`!Q~KG{hu!@OrrEdSb6745 zsZ??m*j(6xrVTw-lDo51dht1z-$&W#u=hU{P|7w&qJr`9{+=6eMLi?t7=do5e9gTZ zQ#WSj`&1v^fRh262$H*}zS8vbNP)8CXVk8vE*Fp|yvirzlJn1j4tIeoo-uQS2K1Ve z^5j^%)rKt$&zk8_ z@xJS=!R$U0P~|0PiSS>b$>OHdvg5QTJW~QEzx*7D*&6)xed@+-=1M=PolfF{y4Wqg zxlL6wsn5yxrBo!vYOKkj%npf~mneQ0xAVP`?{YFjIEEC&RV48Xa)bI;6HYz-u;Iwr zP1{};0Qub5Xk-DS*aHkpzA>Jq9PrHdE~Od^!AfdrFgMU8s1!B>)F}lrI>~^sDwQ|{ zFZ;`wFGMMbMDlsU0Vb3Bf*6DqQ(C->{jfm{wT$5>8%?!#Hp=1!@C9H4;Buo5q8Y47 z15e8+f?%XYJehL|Vr)x2kwu}K%hC}j8q5Xn1UKfFc}f<2uXGJbTb};puqr=cOlRaqaMjG!*vZWNC8*sdkh2#uw|)-p~%LcTxU!LCl|yBj$kQ}$InxNmKZ8b5G{mf zsil!9w(7Ysv`}ofttQ$p(GBchF5K~&Ewv2BlC?6GT7h)A_E}Bt-DS%`tED6iKby5O z0w^?x#*)AY0+*9K+#SoNSm=-zZv-(C9%ZjYj)ND|Q80V>KrINo|6hb-NQi+;B~gJ9 zCa{ePB+MkNV5J{usVDUoh2!T74R9>#k%Iq!7U*T6JyIc_CvA#gyktHCg}a8f1iFKU zp9OOTQ2;Ru9uLS9WEeQ0VC5F^-e)X}R3u4`M$ze=7_~+L@(`0(6~J<&0x6m6nk@pT zM4~-D~rwbNZPa2bCwwp8t(I+>G?s+qGhj&7UjzJ8 zZ^;WMLtz{qscqD1PeWEt;*ye9+h&6k?OKw^eQ9KGG2>XiIX7? zC)wMXxf#X6>m`NY?Y8QXK%KRV5f(rIB?vaE;K)$Rgm@X39371EY@*eSIpT#b&=hE^ zI)I#FqXLNuK2@K}F9U1(Ofx1?My;X5u|#(i!@t5zxgk`*q#o^JfVnq>gV5E8OvYnS z9dDweCn>hQ{WIu`M55j8C$E84!~z9n4(2Rawvv`ws=7==ycT{?b32;>}d!q8QD~BibN_eIB z96qkLPwtKCyOT_%U6+%sn62AjHhxf6JAm9>y9WSpqXW<|od% zMn_9Y-Bv5mTJMZtip%x=Y|`?6G_tKk5&{G*P?9J3J31R^t6$Tvjf_~0?$V~;=`zhoK+(d)Xs?B=ReT-A zNjZHofM=m!8HZ8bjrV69=dno|hKM_S+^qLK^lg}Yfok$K;VJ^|#ZiPM#460QlP?L4 z80?unuTsDJSpP5+e;p$0OzI6$^=2ikRb%RkeQzv^)i>ZSUHP&{j)xgD1a}s@xjJXF z%_M?%v~kZMm&KGc#QRAAXJX zIJ{(i+3_tT(uAF_=KIA#!?a_lr$l;W(Mp;)m!AXCBa@3$bTx6|-mT{`onFEdW`FNZ zOAvNR_tT$@bL=mEN;v5wP-^*Ab)YN5Q{zKPXGa^&8pz2^|UgNKCRJ#=buYi{`N_U9SFjCi9IoZp)yvshW@?FvRvOFh9c={*U!Z}%N4M(dz+%z znH=HrcujTr^3FWQqZiTWlqT&D{XzswlrE`{_*^aB=kX+9KKkae3$x&kpyeI+45%OH z_9)Sx-vopp`ZbtCLGPuc&&Wp*%z%A5`Jl9G**8w3R58TEYE8>u;e|MY zPnA^-o2fmJa14}@(dVNHeug**{eY?Ny;(0FF6;=FW z>H%RhdQ~NZy|;e8A`1ie49L4uyX79YZ1dHdu(NGsD#F6&tYHP9^>1xXm-|0YgtPG< zM5Q~RjDj%7{2u#U-nQdROjV?Z9JhR@3|2TMdFxahri;t%ofjX1U8b=F5MK2WW=0oj zWfk35zue`A7+~baFtbP&3gWO%P%{D=R)UKz`4fs01Xq>pepG#Q34*ll!z*4;Rxwbr z0|BVzV^En43LcAdyBcf+!57H$S%epEP-8)pcrim5mP?)VEFT(b z6bojr0{;I_C}k_W@^la}iW@~*sG;a~sESCt(8>#;NWwryZ0GZH6k$X+9y`qo@5ac% zD{sMYbi_(1co8_%d71|ja}84g*r6$M1F^J~bv8j;FexJ_i4qhr#;YYN+>))t;|u{A zj0jP#q6!KayMTB9dN4ZF+RYj@X=jj1LZVClgbTy7Y7o=BvV!rW#H`odpbrY%3mH`9>TD ztu4tPv>g-YG=_`E(#=9)b*K{h;Qz+RjDe5a8NtaAD|yiN0M)Z#Dbzd(TG1OXXwC~k z!PRirc+VCX3nQ`9O`+uLvXyf5WLTj|P5HS{+%3@cku-?+B8=iZMv(}%5`-YQYRgjc z2d%e|2x~!mxF!?^`mSYJW}q?R-OS&ks0^$%nV83q;&QQqk>b-}2rg|Zj2xHoX3 z1}bgUE6knX(Fkj(T#1=7b-B#Wl7(t4+-_$M{agSZyldd32wI9?rXmRnJ~alE_7jOA z#L~^fP<7Vz@ucjY@c&sZv{I5H2l_mzlGSb&#>zBf%?JRGHFm>1h^F8RD*4Pq!TBd* z>?BhGK6}u^x`qS_V5(Hodp1BY)!C$WUEi-9SgGhwR!_}jU(qQ5-YSwPx zQ_(I9wf{^vhZVqX$=@4I8wAv&3&`;7DewVz+fvJ0kpuO@qtoEn;!hL0anq8}SelHT z(J64`g4Q$8&$wnXHn|;~_pt+2eUw@Nuq1M6k^1_3umNJ#(*e=Jypoyn!P^VzQ#J_5{a9+~F zK(Z?H{KrZjW2yM5ORvsB3)rMhGd}9J$sE`eT(2^+z-P+Yv_hT(WH{Hy=21GU+s&lsX=D9n>bh8P5 zvpAp`T%>zwUHw=Y5=Zhtb7qc;lq!Z55%|2Na}* zG)+lwFvOTck_Nq3$Ls1f^KdDw{))1c-^VxA7c6&MR_FDJ!|L>|rnP);{h?3Fj@=u+{$qtZd2i6~ODV=}g7lV?FZ~xS6r+kE zOrD$aDoSro3jucwn7zQy;OUCcR8a%XxvZZ|xi;ui1lw5=6S%}nL%7%V%+#W*dK4QG zWuGmygrPZz&{;`dLAvm{8PCaesxs}s{Jf7|ai0jY12A5KTuSYT)hxW9| zO?1Nw`2&cr-H@THtsl-2wj%B~r=EUrC2RTZ!nfD2E`4b5JFjw`@yPPaj)UBo-{8i$ z@^_*|Fqio|yO}xCczW3MAH#Q<5+xTby(Qk=QXBGOss1A~#VO`)Dm!~t@{`p#CC#^Q zz02{ue~5bM#ij==o)_l7oYM-w;?5xk`5KcN$#V4@_P32wlCnW=3&^Dn67Zr0CNCU# zT=G@_E>!Z6u>a?6(jdFH$dd=rP_)oH_xp97YU$I1Iv`ik^JTW+b5`fW8~*g}h5hlz z5C+rp64yATL$`YTuKWJ|*Qj5@*)@~a>i+vZ8KJ!z|m>u9X4n z%Kf!^CU?VtrtSXAwPHr+$CS88oGa~tgX1G;`P1=IQ8Ai--(B4KU74f8C}iukvB@QW zPXK%J0shKV$k|?O^4S;|d8Cy?D&3veI=;~A5XCCn zgkLO|``Gr~|F-wE{BBr+a``=mU;uhr{=K{}xaWR7ij~xSDiX=erunu0eH4tY{}BJtmjz#n5sPP z8$bG{X;zUbp%)zJ`?4ndf*`*~q~=w=R{dGHZfAi!#Cj|vxhg@cTn-8j?t~_KvAjhJ z{Kf5sFc(y}Soysv(qldQL{EYy=at`z8_w>r$ixJMi}Y}98E;=AaC{%GER0Uh8MU4* zv?_0j`g1rIxvgT41@9UC-RPSg&7&!`cf-cV{yRphx@3hPy#YJzYzwwk$u&FG*{ElZ zpRa6sCDH@y1TBuo`h9c>ELEoOhLvy$UiG_+I2jAwz~Csf3f^g%C5~lCA#NyRTK1!i zFWlmP!$mC6KVZZ|8?wvpo;bH%mzA5{RqdT|$SNVry)FZXHl!JwRcLI%Z#OHif+@ynvTS$-i?5^tdTZ9B znz1#PUnJrMaoT3dQTx67S#)A~Q`E*~Z`z6z!ykOcGK%yM=AM8oco1cLnv_J9^E%sl z^+lsrkzhp&diqQb-e1LF6dOO=y4@UUZ7ZG~6F<{IWh;W#R<=m~A4k_62=)KQ&n`0= z6&WEJ5k*#XWbbvx*&*XX#${YqC8I=EvODw6oqhH>MHC_Hly#AHE?rp{hwtyx??2=2 z^Lf9Y@gA?|^*m2p%&pzWNq(VRYu2vv%C_yq+K$h_fX3C*zyZ zHUZ-t*y}*s8|2IbKh`SSb#9Kc|h4Ndtvxtbg=i;p}fza~-Xe zFLNz7NL17mjIJwpYji$G0oYWVbyoK-%k&K}d*PF)YE{v|{I`y9uH}~*+7=F|P9!T} zWgVOMHr3bxMR0#OV_@#0I~4)Qub>gIfa!TV$*54cpD|aU93aVpHdS#9m)q39@Bct4 zGCS-A7z4lXLg7B)jpt;xW+zDEWsTZ!dmugyyx`dq*i}}emce2is7Y%bk(N+{x)X(+ zv5t5=#Gdvvb5X1$z0H;b7B)S9Cpzcu6V#3kV_FWNRyYIPd`_ReFwJo1V!^Z}Oi8F5-Lf&Kst@72N?0}BWKh$^+TaQ2H+Wncbzvsg)+sszTs4X_$v zlu1Q9V1fU}T|h~)Ag)#|_lNL|%5b0ntE@A@1ZC^dCZD->KO`OmEF zq#LU?UrBb(co@Uvf>SRF-I~^c4izGe)U4Oa^FO{(XwwbKvuwG$*3e~BW zmJN27J&j>;o0c$I!;nwYDw+P-?pYZ?wMKfv9~jDvQE4g*!hJhL>8!TPBBub4t6Z;y zC#hM#`mo%nlGXrNHBg}|S@jYo1dTG?mU`Qn(3$&14YHtT`nq*HnN-2R=H4~o z=5?T+?%24PxJ;-vn2KKan&{!Aw|^JC$Ty`iJYgp9fS$L!$*}r6t4rFM^`4Pk%c+G2 zet$3FIejc=ui8F{(mD=bPu>2&!S_&9dws^7`{^E1y~D+_xSKY=kM`&ny`Rn*kvi*C zabz+4G)rFm zD{8XQdRWnb`UZKo>?D^Fey8_eR`a`VUT zdeui?c&j8kxFq~C5wy!>vg>Io8qxaum2P(aSlv@!){W3pbnTtQr6)4<#jG^RUC$C%&nmKd7DkRCd$(1`e$%dh{ABU=g^x~Ra&qOh zbEyx)a8qhxdf^EhLP76>&#(OlnohY|b?=d+Na$>L`~jQTcCx4h>sR_+6R_r9dKtGX zHj(Aks*s=e)tU7FKvF-N{ihiBJ|*nA@74SM-i&PB{Yw{ZUgo|j5QQi)?#$3OX7}~* zZhy0_)t7yzpxWZWKZ_pNr0MW2YdpDNcjWu<@RB>IuKrIv-|&O4@3yEhy99xsZu=jm zt@f*+>mNiN{bqkn^RObi6|WdWndBaI!SF^Iq0S7+`OsSzqP$l&X^b%;bq&m$x4JgE z$91sWJswkz>p3b#A68wUzqLn9`hBr+y8Uf8q)f(UK@$Oj>pl^Pn6VlD!KKXSd1Y^k z;qNX`Tz(&2%9t-Xn7ne$bQX2luPFTY_KP2H^9mzf4`A1CE(Vk6KM6RTY|~GP9z@o9 zlh572c`dl}l+lA~+c^8S-;dt%V&ZISgj5b^GHXrVr|cxJSNAS&1ev`#jE22wC-G?E zM4m+mc}tFFFAsk5-1p(Cyu~A@_Kbn&(A_K0M8}ec^WGf^@M!0z?#q?vS(hrg5Du@g zpFJx98YXwmp0At-wG7X+6oZD|_IDREgRC!0b`9HrE*e}p`?FS8Q?#P#c!Wpi(d-{M>iDxHSu15&l zhW@SS$P`ar3@=)#(3;LzYiT`FXAVH_jpY!L=xFC94Ow!sydkSEWDV~M-|JA2_`V{| zEqo)7^`Xe!M`miDxG$VBsoH zL^w(cG?8uT&tL*t#njpf87BrI{R;%tp0i4h0$3UPlQ_g+{4J20fz?kN$TGf;sd)vq zH3PBYTE{V5YN?=`lXBb*{N@b+y4B)p@b^_)&i@u?{d$` zphwec0F(%o#0`}OJE#~4HHkx|0QN8d-Z%-#;iMQFssvInBf|g$m+mQV3!olz0mXqK zmq6GDWkBH1II!Q27rbB>eM(J%$($<~YAl$7bt*7c<`)of$;;w2P*5);1GtiAufr-z zoH6~Ze?gNtW0I#VN(PKh6-XDl>BNKuB4{<4vivhPEx^R}7yxc>G)y+f#xNb3-tvl3 zPA;KJB1;znGf?$10SP1kQ*O>r6c8|H`3F%6f$Vrq(H|4S#u?v)=n^BF&v?qn0i>WN z#)5vkFe2t7zYTzOp#Fd$smPk?f523}5VO7IheQiiKPOug5XQfg*;Y46=>6;<36JUq z0k{%5K!VYNMc?M;gg$$1xSef5$SGB1BftNS9YUhF#o&4+@DIjDq%5EX1AUt^1CulC z(v7VRDz8{0(8bm&Z~j487=>B@HA};=_}K!W7%Eple@XCPJ-JkVE~!i=Cn4!nl~P+M}5QS!eScD{!6`U`nw*ZKl z4;TQkl=wwV&Ip+TJn)<1^DSJW02v;@HfsU=5dF&28Ch$`-ee3wn&2|Ik4h>cN*IdP zdro;Fewb|nOAF)-jLFuFaZW#tc@mHSKbNq7T8JPE?bxBU5osWm08ipIEPT(x4=#g2 zGCk!1roYLVE2>JZPiS}{R06L)K$J3x1_6O#?;x3qKW74aZ6q3105p@|1j!-==ECLr z8g5!tfadgx5;(qp$YL3w`B{lgRcu8H|2WbBhE8DT-^{gt0|KOI5GV~meK*REP~sPX z$e%oWGl<{+n<@wNVBxhC$+>`+>-D0^{#Miur*DgjM1cXn|%6$Tm z*|Yw{iUb>hTyKby9EOV*ekRa3(HLpqWiX+C!8XksFvkSp4LLt&yJ%(L;hNF_8XPT? zNDUNskgg2?$;EMfe7T(CVa}X39Bwfpe}i)MvdQQH2S>Msb{~j4!@)GPw9<0s6h(`R zxh5RPliVf6uV*xNuz8no`!@K+Ks%>E8B4zNuUp;AMQ(szJVge6P~TQ|5_{h#c)o2# zyy1$dXxrX>S407Qj1L5b9~K?G&h_$Vw(^-op;eSjXC9elMXEs0L>Yv_crSX-m17 z!mW+CoBh0a_ZYv1@?(&>-g)L8+d`V)7xSXy@Y;;9fTW28-a7F>_@*D#wo3tVU}3w+ zsa$Kdp?2x$kKW_CmAX#&l=n*Q1I1Tjck1dz(A`?1C2!unCuzy8x5QqeQ*=}2--BnE zi*GeMooh%;%oTB1D@=YAqBK*av6XgFcv-M)U-EBijm@v6XAa_dSI~PKn?)`OaaPEI zSwGArvj<>)ea^hY4CPgd-tVByH3u))sWsFK^T`9n^39Y}@F|-$p{%S+=AZ6d*qyD8 ziW=q>lNud1R>cy;YQ4%7e(+!AUmDVIPE6msXDt zivOTxE0xr?DoWqu?#iR6OUCu+u`Tu>mj2c}Idc5+Eu8VfF_p1aG?54CmuD;FQN9vs4 zbPu~u8vj%TN1X`%;jBw`Gy8NKOhHF@v<7@CAW2_(qeC{{slb@rItq!<^82z zBzp3+>gDs(K^2;}%#6MjIYm6{aR-H4)9m?#MLQf(tfHpqQ}pq3SW0IXK0_c zW2ktd^nDll_<_@tiB7b{)`?EHddKIr&BDv|Ar(H+Ye3nEx2-v8bV!Sn=#2`9F61_Q zvH}G9F}Nwxp_aiksC+h57|DJSXK6Yx8k%ctSZYAD?EZT|}i$W_~iK{iODZ$womfH$St>tJ{%u`;8!n`8({&)fGiDX0} z26Z6MEuuy=4{lU!0tOa6-Z`YX^tRLZn@e6%+O1r*tx(3WFZM?*GwdPX)l3-l(}GPU zlO4OwlsnDm?&P698NIGF@=)%y+?31z_wn33T>j&`v+sw>Ff1bXgR@lv>csHDrd<=_ zxn@?}ViiJ36+iv;F=nF3s^e=2<_#Cn5n7n{#=*_TxBl)s37LX$ zJ)DItaI{;gUOm|$Lc$ZhQ&pig{=zWRx|?S#XC;Q>`;bAXo@(AsV|KaP;X7H#Sy+E? zHa}3I#0G-h9Uv>oB-*#ocPk|tYR{P4*!SBA61zV224}BehwT~L6x^0NEoY@?gH1#G zww&M<0#{S`-E7Cf?3z^@Kss_ZkZBi$2eR-XfvCG@`SKdj49+$)!1FPH1w5+RhLCL4 zOwjL9zAZ8oLgvC5_FFBaWbikO6CnJUYi-T=vPIlfI&I5vPEM1kIqY!8vO(ZZ5TAkD z0Qm;A=$lbi-C-j02rl>bWmuBdC+`RYXugY+3xt@;nCOy+GCUlNfj^uXicl32v_6^Sj2PZI~&=jNY~22oed!FJzv!HB^s(B9kM;*2F`YcFb2oi zv&{Su<5MOhHGnx?ib=~VSlWB~zg&!Ma`DG6Ru&sq#ToYgi!D-_YvH-*t z2@u8lA>g;ZIJM!<%P`rI+@u_m6)$5L@uuB#7_Y^jPVv@;){><=d37h=5!Uj&>-HBl zFXD=Ko2R(OPpO=$mTnY)Jb0q_N^c3$mSpzHVpq*T(01CQ=NQd8t5BUEk!HZ;YnPX} zGzDROsshp8<;q3$s~G?YuY#y)AthyjFRzjRyR`?5W1luX44v z2V0x=p+g_OAi6HD*(gtG-F6(I=n7w3iJQq-q)LZ+>YV zB5wO6p28@g8JrlL5qiH;P(cC)rnSM9QV9&;Ip7nb%Z-Ep#SKtpD=KZq#mJ6+>TDu< z`wLbsPwELd%GKQR3GIAul%I8Ia$D+xz`U=p6;V1sU7R;KQ+ZbMx~2X7KqBeQV;_FO zj^3>JpdO)0uF_bu0=pIQ9^I_O18YsG>IO;! ze-OD>eMchBsO4b<6UVUo_e+w>FYaZh24|8QSNEof9OM@Vh%No!O%*h^v2F{7_B`s2 zPvfCgx199}R0+RZ(I6Igd_cTtA?Xo!IHk%GWK;Cn=>FInp)bK#3?%;^rn!spZB2eW z-f#&m**Z2&?PKQPAZ24zFsOEMg4*6_1|3l5u4xBjyWWdLI|V%-_ri!Ow5m zNPY|Tau|Im3Suov<+%LZWMc!(&?jxHA%VZkrhrF?ybC%1S zJ2Sq~G|KzcFS<<8kTVAMvW6~T-g|XfUA(T~h7^y&fXqU_8s}So27Su-=VHWUXcXSi z^r_}pkg|&UV22O3DUx=DpJB-*fgz8(Vb_xZ=xnsa!w$0i?O=tRjr_pz>y0*dMTC!p zmBpQ>n;xl`lrC?))4W|V!nv&afy?AV4BO1vn3<7BkLKamu91pkdD&fpM8Cf^7Ie|5QeE`1tJOw89>Ca7Z}7NPHF_Oxfy zNsU@j^##&?#*{a6pVG{(7lyZsnp2-W-b8q+h|MRnXhrzWYs zRq(sl#JoliPW+ZqetT}ZQQn*W+@v&1Fg(+^2&m)!MEuH}O7LkzFpIjnlrJW3jcI3P zMLg4b23`F5E(RBIs1>V2$kKbb+k^XV^}KIL%TuX83#1`~fQV{mT*^dRzKMy(38i_z zBf|CJ&v1R$I4W)5Kg#wgO6B|^d|caE8%F*d729O9Kla>(7|0zrUKVxbi`T6)C8yC3 ze(jvjVop8oH!BiK@767R$~W)DEOl2mCcpMUJNV+W=Rv!nk{6Lmc4^d>re`IMglmuL z!jM$=*)~13P~+?2uSzArjH=pRQ|b=|N4|ozOP>3%j}3L!w}X7(d7Ocg>aof;2~I_l znEH|OpD*`Ter`4=4YOdxbRKaFOv10tIPYqd1CgUCM|PzAR*yR^EDFCa+4N(|VNEzA z9`_*Ius-}Uk-dhg+b?rvzqSI#QpNSL+O-H_Re+*4d0-iwC5NUN+ z6D8odV}7Wn%;x-*yiQB@QzzfakEqjia&hc%z8;zE+s1RRp*_U)UK8@G{Cs55%XbgR zRXA)r0@7c@p5fX4x_c$k&>JWAVN?5?f-0EDK$hd7oaRn2xksPN*)+OunBleJr!ZR1Rb0#~!e_9OF zDwxwsyVV!hQO9Q<7@r?&>(bHrXW(VADDTM7hyCJPf7c+hEY72b`j_= zUYZLPx(2-|T27QtadV;*t3&;ZqXCILbc+w{e_3MK-m&q@vE7VStFOUb^HI%QWZ*Jm zQ_Vg{3YGi4;R!tbM`bA5I=&M>1_(M*X&=U@8S^0&Dua%^I2ir$=ejWQ9M|CRx4KJk zFS~Y|(=UJjWX~@_w%6MHns+Iux&wvP9 z7S%+JJl1meM33nOE9Fp^^Ph{Cri{r>^J-#pE0whi;lk_woef>MFa#M~ka4&DWZ22Cl))80^zqW`JB+epF-6#=Jb4nP`7kwt0kKGm8F5ImdOJUbDlU+b=VXINklv zDu%5>;sXWe)edGZGX;sh55EG8UyY06+IhEwD^THu$|NB47I%3LdVH+>Q=!1I;VaSC zV&Kp_lSEv<<9U9V+o0gTDKjg`xI7@cCa>#5ToipsD{wwyzGykA60qy?uhK}<)}oi= z4;FLgwF`bA$@AgffDoQPJG5C7Jx*H&Qqd5nKLdu+@M@xM`L0126BzOf3y8We5<1^k z8O94mejV_RfA#g8m5m;yGXwgAHQjRk4Pw;DZAPKirC(rxq8&(+PX(04fENvIuQN46 z<6nkpjT-rP)nG^EU$CqE@>5Xt$3*SdIw>l5 zgW+;&cgRkioEm%a=f!^?`0zfV+wq#Jj4Glc$3&~Ig~lH}u=l}v`d9R}$kMmZfN3=T zoDn%^xn6?9aP&lEX%~0_QixEf*}swRVhOw-2WmT@!w11IyN)%>-@nvemb9GSl+R13 zegHV27SEXw(_o5gRWnv0%jtSZ@#8;dZ*7Eg=MDsPz<`39F&)4hJ(S40dxwsfI&p&U zuB0IDU>0WTVE;Vs+2&|{7@&Ge+%aw9iSW#2Z_8D_ZY{Pm5y(?yDv8)W%|7<;Eh`U8 zu7$)M%LqUFv0tYoGws6M@IdR6)@k;n3WVyX$e{$)>c+Kyp2Q%W;U*8f{iD24@#p1# zS_OuCETc>qZQn?A{v~J*m}VWNGi`pM_62(&=|O?xm8j8S0dB9!Raesnfs!B3|GDfM zjk>P8ComMCTRUI*Mys!BZr}$A+6z2M{>6e}@yH)QaHBHZGUQd)7Etx@&b6qAP{Wf$ z+w83w#T+id5AvV>zvy^JhCo*!Xqr4=2cup;)7-r#`#n)$4D@Z}s_ zln}G3S{pmkcqQuLSv4AUQHEpC$^+pjE;_pDz_G@_7#}UC zwnx-~W$b?mTKx0;o^m2?CY=*OD_F&_xUc=qj(;^B%In12US|WI{)N4#b|B)50E)Vg ze04mJ3;^D{E?MKMin#`;R|r4!DSf9x=x)r6IDI1986l7@yzaOBsOEXH6?EmTQKJ>G z3j}oQA0P&ycKzw{`PKsG{7iRHz$0plB9198QTwnLLQ<3MuKz{~tgH#Z$nL^4XCfN1 zLW;%r_;p1`!Za0&#{gH6$7<8qDnmJ7av9#yuK-6N*_aO!ibFe95d1rGvtgRi&wdb7 z+Jog&==-v%fPAh*f81oN!2~nS)tO2`TtvOQHS2!Khr@xXPyhRE1 zqLuq^Sswm4ZoMWj1j1OW?aSP;tF7IjsF}*_=xf{1#{H7 z47jw7y`nZO-$ie8;_HA9!V*{lxJ&*6#k^nIp<%=3VeI&!_rUbXYQ!~R`UxywNR1so z0f?=NlEn95v3-l;uD~JsaT_wOG_fWaLvURDw4q|K&{!0T;Z{)1u z$#H-eK;`O)jwS0NW?NhTZ3q-L5{_&*p(gMNyjwdDtTY-T_W<#08)3r}!IK?pz_c81 z+c-r#%3@FphQLZU{aFnQ2Ub2gsgr4~!q0%U%>?y*qwSR`3JfWfaak^1-F?0&@^Dd` zzF+HZ_?+zeTA-5GvBU1VfS-&v>fyZRD%5VWqMDP}%t%;dL)bQn&Sy z>8b>-3XnM<;0li^yYT%FVZ1mNqefSgMKQc$)UBE%wT8Ri z{xSHN_@`{tac+I0zQ5t9ye1~(D5C!PoXo6!2O*q#Q*7AJYz3e8oRHx1DZ$?NKE>_f z!7toeJ@eeIGZg^E3U)l1#Q zlQTaDmSwNCX?82qRhweIJWq&Bs)tP07mSFv(Mx@VVCwlK%Rd% z_7Rc+G;Wk{b3;n}lvRn`Lnpv7#WZK;c+RKqXOz4nbAw0$uzRiB5v9r7yC<@5iq(WN zpx{TxyKimWuW>%L+B^^SUTcyy>dSICIr=h9DbS6e(+7uAW^@iIvyYc9>fqyh@WnE1 ze$@nR*`&GS%P)eyp6rJ3EnSJ0*_%bggM%e~ZzOJKR6OJlX1?$wxM1Ko{=PM+*q!yR za!GM6L)75g87iL&;~(|>J7PUUh3OxpnoH-Z|KM*g`_wHoZll8Ty>X0>=S6w+yqWHl zt54QodoS}zYuHmVN}ga%e+a!S298G~q9U2*Kb7bAcyYF>{R2}BUy9%tyv>2GGEtX< zwCIy6K}$?WF?H3RyAYuD+~!4cmwGl{ubHVRqWDQaHCtfk{Stw27hn3ah2u1v-j%pl zGY9o=;JdfEzEW-M9>o&;J|DRR2u!@@LWn$kMIhwz0xq)w+)dioVnlad%?AsASpycL zX|&>KZUtaFHGi}m+B5ETfcG#g0r#V`A5ps6F;T^^Oya(r!sBK4-+S=`MSqZ|Z;@ha7Py*OtHPBbDHWx0}yjC^+zV@ksObdihhx?!#@r#-I4|V=?=O ze}0XtmHp%sN*_H&)vM26SKE}7GJr*8Evw1wt6w>&lvKM`c$?0Wtu3w~zw-O(3^n<6 zDe9;4>zd^&{a>H$2&c|)8#^tkUKIZPCO4n?RRx$r2)tD}t0xZcqfA*ogV@gfwjr(W zFf|<0)%XW)cT2ttTvw?=^*J48H7GvuVn}@^{ebtd zzH&YSnyO&0SQ|%uJo_w(Ywort#Vo3txY*`?HXJ6S#`YNGIUn{!M?(MS;F~nFtpPL7 zI|FPtRn9tF>Q#T|3;lCL{i%?_3z>I&m46@PpJOTmned@z?y~a<5TQYBsQ9;lDP** z6itN6zwqC)R>FOV7EB!yXc|;~>ev4x`o+5I!Gl|N&Iq!zwFE)mHN(LZCg%&D@BzDd zIhEu9WnOu~HWC#`_5ch&7#o`_%>gR25R`{x-i7fwv3mj`zgqlVpoTJg88d+YwPws_ zi9=K@_=2txepU3c0|Df<#}z56Fd&x@2q7Z5*oQE`fkx#5dAn{Vtc=abAZ#p<0&#`Z zvnwJNj0*&x!UWVX9NTBY(!GN2*1F1yv*T2~4FTFV3!^_hO$~Grm(B}kGhyP@1DZMT zXENxE#Q`NdXKZT4nQg1hgJ@LK{;5nx|1=;op%5fAh&wBjZE{Az&s@eW$l6QqhlTDG zD}s1?0R|Jk3zQ2JsLA-1z@I6M#nd_n2@QKPJMe>nxM(m}G?I&_Qrnp^Z75M7rR=nd zqKW}7NlLc^CX6cPz*Zz0D5;#nnlM!ILxh@`r3-$TZ?H=bz68NAgDgppuy$nwu zQRdH7V6$YoreJdBZa{9}d~Ovp|A5RlQ?_P{?|e?gGVa|RPJrKuGje2LBu2RTntWvb z0#M{DCc;^7(ocZs>(I@Do4s6tLpW*ObYBApCJ|X6;ejKGFZOO=D<~kK?k!v@vE>VP z*gVig*J(k2;)w}Egou#%1el8{q!9>8Iz&AIGFgLExN@b03ljNfT)HO8=5e089HY{M0?{3 zfGc3(Z3rZzs>lm9XR@iDkx9FVlL8T|_*taR&pF4~yd8G%WCPN7ogE^ZJVz6@Ch}iS zrvUM4i4=^*S=s9>Di(|ZTNQ~g2JnObKtQ`5xHIcbq9~o>bk0dA^`j~>={=B(!MZwt zOUGgPbt_T?h**E1ISqfN9CE=+6j!H`$>wY$(NK}#5D}0hb=n^ZV=}}f8e=SFW_56A zW6+l2l1p9^pkJ9p=#t@~Ckwm|sC6b(p`;>%9;(Q3kttBIa0cBZmIW;6_txRwIkY(;<}5@Cd>SBEa8Mk;L2nI# zLgB_N>@(~Vn^{~=4j4dUz+>$NoLR9z&WZ$+sZ1I-<`08AaIcR(v5e0}zL??xTm25FFVz|dY&P3)%rzUZUbtnrZ| zwB`1iZ$op}Ebwm~u{_AbA(rHQ;v%FePWon4*Syj;QCJwBvOOR*h-#Qv^!Y{306Jc@2FC;Zru^5sDKd|7Bo&mq+;sN;4>V5<5aZEhmrqLTiL z3?L~4ZWbqTM%d?Y?aJy-jcdTKWyH=TF)7gSW`ySDI{KHEz-A^YY0>}Nhv;$He)7)C zs>Y=ZM2d~x`OsUviEY)8#e_~hZLrqXeyINM!^d6$bjzE_`)cP)dYLXHQlT8&PB)Za zka>hZz?cPFJ{7l=v`GX3l2k_o9MakqY?=hD~Gd$UVN9(#}4{S>_5y)-&kTePLxXEO}=RNnF_ z(N0fo%V})O2CEYPuNyMamb+2&dYD98V#Vl-o4 zzLfq7qtPyZW}mFzy+M(9Sf*$jo?y{;!G^imDy!=K`Qor$N%-TDOG;dyxcDTh-zoesuk_oF*@2gAksq>6NJ^wc@Mcs9fqQ}Z|Jg2Z=aE<|6k zg;`Q?*688|UQP0NVm9=xrrj=mHLuyWs*pClbLxT#(v~y7xNBHH0u@?ntl-(-x_gS{ zvzGt-?c|LFHg)dMtNE|%F4?!gUh>xfCl%}3q+eG_UbQ*K#)f*}UVM+*^NNLiS~_21 z(o8YjmY0*7A+^SQW#M)MLKNB5K+UJ89QT~}(F{~l%=-oH5j7$wIKg4AQc1g(BS0}& zeClygdadh23>9YFpb+S(O~Ls>?B9r6`xpAp%G)7cdD{BlzE`6#9^o3nhg^vW}-${N!h|EFP%6|(oX~~ zlkk)(M&-ps(LFLicB@OJi2}TU@fL_VxI2eu$I2fQ2Tv!fGHwHV7!wKDg6(EReG-Gq zBXjve>T`L2+Qlq0)96H|aEs7wp!1%ak^L!Ye+tkM3yd^yBcGAh*-HTaEMO6e!e0eH z&MEMbK~H6Yc&Ollw@rDJ2x3~rFk_-Q8zJ8G{g~;D7|t(VO57Gqamfd=A?N(I9PW!7 zPy?lLd_npXjL+qHjb4Y`OKAd<07s}XP!!V)shBBvPc8GYH(CD?IZ3Ih@T0Eg(DTFb zmKl>vr4va&j6)|L+Dmm>eB6spdX`TIPy;vt=eESWB@8gFJ0}eb=T9?o)Xd6GVBsyK ztEUvU^m(kJu@)mo)Av)^t!U1Z&kqs%0VbHL#ZyQWvR3Y9@=DES%hRW=Lpt>Fh@dtS zVYX#cie0gau~Bp%$%CgTtY1DmPo9Dc>L((m;#=3Jx7RJ5N`J%#Spg*J#CJOtNa5g zH2QQ_Z+9*MJ#%`y${v17a9odq>IIw{Z2vCfcNFT6?4C9W3lVpg@(y@8UfBSiDkegU%rkcb5V`C*{JD zw~R+IRGZQP;Vg+{l&+G<=|D z(^U>9Uc-ghgGlVXK(({I)x!r!F0Z}}Iq}ITFgk(%{cNv8)oGA4PNOwJwV2%7Al{i) zbu;5`A{z-Bk|LM}BobriGyP1=AEDB5k$^LOE!Q7WYFoFNvQHA(D6l`SCk>U1+r==S z4gkoN@+3lBE=s(rv1*k@!-Qi5rl<#(P!3-_rWgX6bukd&Uo6Q@q2WawQ_qNVr#8pPwJGNMWO759qsIjg=yRlr zRK~i!{!@TurTH3I1ARC+Apqxt!jm(W=an9HQ^*{;1jQccVF}c%uba1UJ zt$@Sf&qO!VH!e2P=e0-VD9IadVe=U=Hb3A`TGM2&-fnd;;K&RTy}wl&oPMO36suhz zaoji$H;BklH!Tj zGNg1L@0KNe<6~PSEGWQJ4@|w5_rWv*eq-+L0-5@^a(zP-B@Nk(e^70M_yqvl}CSTQcyoKD6mz4K^vAIQb}JnSX4ZazKzeUGACIPFKEWUIHpg&1wApbr)4{681!64Bf zx1%;}OP`C-*&Hp!^qb;lF)XGj@$Jw-ZRaYxJfKy+KZ#*tlA_r&*l0siE{DQE(vg5qMug`Nw zd`4fqVC}7h8>pyK!6<4)vTFM56~)Rwn65g4Pre-mSf`#E&RNdsn$+sUJyfXr(@V^T zf})rG8Lye*=52f5q>FmXhrChc_;u}6;z1i{{^>i6hIq=yZ&mXx|C*y)I;azu^g^JY zgD+QqIh(u-9g2D3(5?2Q%NMK{`HEC`F4@~B{i(EB{9Ny?eh|s6k1L+Q)M9 z1lh{g(ULtfu|5jvv><&ufnV3Bz-Oz$OG%g=}E-rOog7KwKg>Z(4lgNZZw9IQB|v!=q>6wro+o=)lAiYTD6F3e$}Lq z#h2Z<+PcRqI>&Tk!_qz-Q4oBEr`|Z`c!ML7R_R99PiY5DBoU8#O6=FZ9&YK)o%~qb zU3^_v&;XQDsV2mYctu*x%~jp3uaDLCFaCFsQJZUSPm#vc0jG&;qz=cxuzT3Q@xeXI zb+qfcH!8K?(n?O2+pZC?*S)Rg7DH{(S=RQcB3*Vazhak5U$Fhrqqqi9=PlGKPd$D} z?P<9$aOa)8=<#xnTm5SS6u-6|8m7;Ff44kfCcdg<$2=+?Lh!)B?u%&C=f|fnC%9^9 z+C@Ox^G0un*x6Z+5j1nA3b`Td)R(p%a=>8$HIb+@yBSnotT;Ah8ItdH09kF zJqQ+L>e4z1XEuBsFKQ3}n0R_N6?iC(f5pFan1r#de?3+iFs;qZ5!ChX2o^d~F#Ev; zjJoVga3%x2oA_WE1gIBvvEUjkxa^gZ+Wzt3cx%o5lZY*2cH93z@!n(`M|GGvxF}~( zIE4DQ`WzP_BQOUV6CbRN4zbiYB}j=q)`=N!h$xMRB23?rMS6A>MEohyOZ8TvjK}`a zb5=l;K%KarlPQ*2#S%JX@eweR(%W$hN+Ozw{h9|KyzV_eJlWJT*4w7jcB`(CXcj{% zl&UW4)!5y6mNu$H@p6e-=7KaEA#N?-nM$64N)grQv$$>&VIwoCb=H?^buX2v8mrps zSp=ISPXva%gGd>1tlPKy&ExSDVkXl{;8Wky#fr9zdirB-@^;(6p5E0z8B@f3J(4G8 zoUk};>BeXn=Vl;_d)X6L5{;ad*N*0kn8zm*0+UYm_fgm;9>Q%!`gjv5{t`82bUSRA zc?7>fh&!>T&5q6U)X-+DgTuU6UEW9uwTYuOiB7<-Bj6U(+QBt$&=VgIwbnGyCOrbe zQMYty`v9x4o+a`0bdUwS=Xm{Zc@U}XHLb2C;UGRZb-R~oYqx4;pIo;TFZ%hYrR?fq zz)scSb7jUt_(_e6U$G`_A3IDX1$ONd36c?JTYEHt4#(;@v|aT4EkXf=EZRv7K-)rh z8~i~IOW!65gcv)I;KgG#qymjPS{_5}=3w3e*jy)ZN1JUf+9TJN4l?HEA=Dc)RNhX@ zIbhiQ^Vi~NRjW64ut5Ylh<%lQsv8wm-F8p~qH7}NhzS>%tcunC15Fv;eXeQUIqTiG zP2VpMDmgxuqxL3V6|?fI5A-eD*NV1TJs||nE8mV^tbG{7d-ZAOpwkN=5P){||8^g+ z;K0ZXXn$8l#%tnhAjvWY+qn^*v6O4fT1#w8j z_BV%oqr(xy1Kk5;Ed^yEyD*@wx7sy)=VVy*qyXaM0|BWH?USji@<6X}$ggGsAaVCqHFh(`K+R42?>KQqLKxfz|DklaC=-$*KUyx{|$`T2!*B z;1BBlTi~E(`{TUS=CjhkbJ5=O1?YB3@cA-^s?M=^h=muOJ_%gGeYf5`nOsC`M{KvMW?Y>e4Fx z5Guz}f~UPdj|*CLRQG&D(05e2b*ZEwG}^HW_vIBM1EIR7r7xKZMQoADbYdqJuU7BH zJP@~6vUp6jWV3SBe*tvZ3R=;GImTYq?mxS7FupWL`#78bZ3f5dS53_T>>q2WImMjR zN}Ai}*9b^2i8}!pH|HzXGhZZhIxIU|-tQ+*;QGGJRWGJ>4FTlUb_A``m+G~Po{Lka zR_!{f$h+*G)MiiFLak65uifZ5yN0Imw~C6aN8*nG}eu zc0LQ@V(6m*?YT;m{qQ@CsVxW^#fF&u)TuBfXlJ$+pkb$#Pu9P-ij})JxL0domjX+O z4yV)O@e;?IPm-uxE94aFh2q=j(Zk=u6$xZ0C1PLh*`C>OM%^ud+urp#lLND_O@{t+ zCzTmzeW-W+Xl>nB%C6g7c6*GKe|dlN)=!(bJtSNAajb0j8mW=Vww$Ln4eMKg z*xdsH@KC+eb0JkZu_M=MZG=je7giH>w7hCsenJ`uaUzQq@+J_BCUPQF7MJ>L#myQk zRZAjh(AMqBmUvAF#Pkf4&WU}`Ah0jA&?gGBSGTEjqFaDB7RJlG)wV@!{6~554#AHR zDpk7`JAtmpv9-Z1jXn#~LGF7PBmD7}xqiH;dyb>m-VHLbvFFd4+qeeo%&|Y6Mz$A> z)#)T|q6Pj)*cu1ve;u@ut(enF!F3Z7oi=)92-k7&}`0nr|c_y zpH8u7>ZTS9%wM8Hi`Uw@CLR()#&nK03D5lQ#~!C$>?(?&9ouXP%%;N_I!)(*SM8xG z>lr2!In!0Ghv^gG7{tiU#SiLTlOA)c&@n75b^!Oe5c!=hfKQVeBUnXY`$czYM^lz} zXD3;2+D6;Gs^qgnIDT%pq(f@dN9<@+x5UK85=_sz%#4t!RzOa{GaTmW>DZE!-8MH0 z#Qmh}Ju>Ju1ro$mk(7Bj`R(4~f1u*cXP>X*CC5lHF6}UnxRV^x>z7gskNqcI0}gba z(6^2pnt3U9-A;ecMVMhS;tFh5=?MDd)sUmuFrD4|wAKB+a%`{td~rX5Y!RDrTY(Zl zCB*uRp&{WWXL?@_C4GpAnbz3zxE3?s^(?ligB4lN+5Kpk(IW(_*yG_|s#%$L)J%L$ zdTpf{au@eq+-{{tY!l5YAExV02+<6|8tDQQ`;2fW=bw;xP6QDAlV3d7QM+g_<@a=3+BAOj$`0%)<3G1 z#Gf-feFf|&|6@Fzh-(!k%s{oPte)ZiDsB{`(tCDkD*Fp`TWG8fta=yKy(o0|Ou~p# zvyr|tbql8iU?$;^ne)7tczDEa-wuTqkm62q>zG2~_8=l*KcF*bdt1}`t^QCa8ct#{ z=s0Kaeum{3&M)Q$rG{vbD$N?ZzBP+0ClT(Udb@Goi^4TSvx7vIehUn*(KDiSN|5#NS~1$JLhGoh=@o1s#6Vu&{%lIDq#bfx0f3p9H<7DN=QJpjgA`tNU z(k;q~$x5u_d*DKqRL6PB{21SPkv!ntMv$Ao{(Xe8fauS$xz9q=wws-Xe7GzGY@woTA0l$HElE@Q-SQJNLa+ zKx~J!ZMwBo+{yYDbZ7TqyxY30xt5q%Wd$sW@h^Y$Jfwg*dPq95?H+qHJtT!(=A(p-JdtKJQ?1>_IFvu9a=AQm*Rs(dq&ul zF*^AyKjI3;yM$;os!EYU=z2BPuy?1bRgrss+qIR zS|^8`mc%eKVhA&(D3TZ(#+LJ8W?_eHwtjb?@9$6SVXxPHcs{TDc|Wh~igNG)*NXay z<`8-Cg4p7kvOF?#-0^PIve)*yZM+xfD#oSE1S?%8$r){Hc;tXXPe~>`U3H7{rfz5_5soYLn6)aHvQPWF?%4BRRt|qgBHI|0> zAmi|C&gBG~ijcE1>uCM>&j+7X$&?)WFOuH3gMGKeFYa)WGkYp|bi)0iRfNYw`{#?P?y0Dm$duDZ3}ui#Mi)LhwS~<2v(D8X9*L#5 z??!CUL!W+?6}at58M(PcwS3;q?}PQc|E<|Ab4Rb;GJhz?Cdm6I+zz~8XUl&-TQY1n zbUh11xy`UOd>+qt2GLMfEfcZh*gA|f;jEqs4G0oD@lTbeR%{@Wk*vFPg6NZxBkwa%4RI7vaa(C2UmA={tXfRYT{INK&OP$Ord2}&&(`a zJ22M5epr^*qgZalPm!^{7aqFr(W~h8KvBtInG4kf8G;fRlBZ#74s2;87c6# zmXXAQ_}=w|G-B}bjr~;*6h4f_^0WPD`YfA(xpDbetP=Y9iijpPEu=NnCobxccIuX8 zU#%hHoim8hS8di2kyg4}S;r+?tRk)0NM-V}URYr=7kXr#^{d#KK)|01-9jp}VfVWn zOyQily7u4ePE@y)u(4Cls(d80jh1|u(o$-V`$VuPF4`dA5}yS-#IJ}^MyYHC1~iuF z+yL*OrZ_XUI)ZxT-o)<6Mrd79igyY_42%Pxe@V=q#{o=r^VBsN6Z4LH3*404uACN6 z8ntnYWDftGmlD=mVdvvV_Je@;gQ0G@?@9mt1X0x2x z=L7r>LRI3a$d8@3hy-gw1KN#75{WERE(C-gV?6DDZhO)%L!tOlF(%kX{f%xmS2SAn zzO3YMWgX=eudXw>CvW$EJL!2;)Erk)rwHUF5yqIu6FA&OtD9)aX%k+euquJ?`3(`z zQ0Pj!vz4gSprvqb4y37NoaMT5vcI}yAQ8vz#R_Y?a{ipG3Y*7H^NsA))pkNw~$^IK7{q1=hvxc^i zEi+|+CA|5Nc=y`M_^|?3GZuh8(D7Ny$MZ27aSDlbq^g2SC2yeFhdrtKEyUN<|~*G#q=}MVq}z zyAQCBoVDjhuvmF@FZa>`)P&8r-+|P?lk|1Nz_ElxwP~cKy!@TmaZ6d}7b7WhaN_qV ztGhIbQh@$MmQ~4r)Vw3P;k}uINsW<*R&v*DhAH7BYb%Xe!WU%$Q`cSey%d7G)uX#- zQWOY};lLgoF~3$z!lzHn<^=x2l0v9g>M(&krEyO~W~y~$5wyseb9^Bt>5RR?CS&;r z=9o;DKyBV>V16P>yQP`#cq3Z@#bBPX7WG$_<3MT98JaEnUUbM=i^jNu?<$97>X}fl zv~*fWKd)$Gk|Zu)`EL|rfy?K>9AZjUt9pZ&8{?{UkL>j(LINThc}#p+U3bBw*lMiY z{q`(sqz@}_dWOohARN`pRQ5$St&B| z?!K{>!?hpnx!1QaBvjaJwRD|eUODc4xroVplT%1Y*)_?}TC{&>Ll(*GHF>ic96bRb z&4_58`o)&<4QJvWduVahi}lm^I$1(XYgbjs(pPL}UuA;EJr1vbW{yX^R>sLYpZMYM zO%X5)UOE?kOz@>1YE3;B)MzD>C?_ihZ#4OqY}H0DKQ3G2Bph+84(OG!L-_Yyw_vaq z#~~8TQX{^KUPPR+hRPH%mtOv=W=69hvnImTwFb%MVaQYQ9VT@wcFJzs zPv?^w{uX%ruR=dcCpliQSCEL5VLiC#DVy3}WTVpe&WiOz2s$?xBD?|v-B`BGjh2CTiQ_7*mQTe?C$ zYdaL5g~e|l>>EgQo?wR7No=D1Tt#{29%YrGL`IEk$=VWyZc<=v#Ke&(H=`(BUcm2Z z<8*HWq|Mg!M4m|lVP3PxcDXt;W7!$NgnbCYt zcGgQricyErn3LNK;OVX149EUuC!X9n=5D(-&n6%`x0Z^pW+!30_lMR0ClnFFk$rI3 z&~bRE=AnV&`Y0JcgySuW60O5J-eohl_Z#X&63m9(RI52I!NrhQiX%;RoieYNO^mi4 z(0j1bsX%YrO6(BNBu1+Zz9(wl?O`_tV~uKT7wM&3h}=7|e+3aQYt_c%KkUtyviNx~ zqYZJm4P4rHsyqEuW6q@B{!haI1+u+ioVv~imWVrIFYp6wiu3~D1?4swVt97vTlqCz zru7ki<>^0a&Lx$u222-c-_uVYAeBcNU;Rj-hosSEm6eGPepKpmY3QlYqau%=x<27z zlbB6sq5H)8THGFLR7!;4!jkE$W%0BY-m8NC8(coqlv**ABUkRyk9>@k=_QU>aaKm| zMt%ybfz3#Bg6yzTIEH#B)u%2i>+>S$)bcrf57{rWh&3JB~-ZepeZt%>;mrxd!Vg_S;}Ik zzp%bHBC6<&p{p2Txf?GdCd^hPA-j1<8-6)FGYU&XFvF6$un2xUO~z@V!k4$1ZxooK z5J5=?;0)Y}8Z-5<0mZCe>*5itG~`V~F)W58^2*%|=eEFp2~2CvsQ8xZow|nzb$`@8 zL!T?LZrcB3YRycY8R!ld%Vt}hkPnB;ID0iuZiB~j$YgeD4WG~Nt=>~vvI*DpiWetM zyen2QT2XbixY~CMYj1oCr7KipBJY&Cx~_9QRef-5+J<>XqhGrl&V^3hT7CT2%ruTZ z;{9@B0XtWG@8$$-sK3nVVoPi-OA*wQq$h=b7 zOFg~SElyaxspRB?ins+u93NxVL(ag}4dz>Ifd*@7+ZhJZe6SIbiHdJ3iT2_8l7HXg zxn}T?WZpkpK&ZF;5$(g0n%lQrh{(h=xgtf+-I8Mzn7JLJ4lZfRaXvbPyqDQ2k^1ao z)&_-p;)bmp7WT|-BHn<8Two%?J<1L6V!`oHS(0*Cs%KpA&8o=uo}C{W?=zfa$5oOF zWz=)GmAD9%le4cqUCnm!$2^DGbzg} zH?T`2yI0#D!Xu_A+V~!ksGE|$6^j-?d?R)rz8xV;<6!#DJX(DJ>$~r)h)^;>bHAGJ zA2n*>0+)cR;JrB%?eksb$5wQ`A>U)awyd{>83<*vjD*bON%P0kJ8JF^_T}5{LZ?a z%8>q&hb1(tD1KKBBno$;b_J|P*VK1Qx_B8DhHrw&4zrXK{?w27RGCOhjbuQp$O~4o zCZ=;kTaTM4WV-O!oy_F~Vj3iGarSSaH+ur`}w8|p4{)iAo?AO+Sk1~-_1r%jkJ6Z8> z|JOCPP|$o}dTFfz9E0tpgl57bNkR@kwu=(H7uGA+Jhl2D2FH9QMcr`XS7b>GSHF$y zQk;un_~M$%oXQI*z+?FA!}KShu7HcBtkw|F&pqq~fUZ-TTlEQT@LpQx>Ta$LXU0#C zpdQ?dV-?p2pNtlB_;inhSa48z@$gw%4@QfM}+Cf`Gf7zv;gMRxNKzTHmo%FlBY3PgNxmTjaHIMJydk;FA5f zr|B$=_6Z?5N$>gq6!&%WiT=wV&t11|`k|1lJI-+-b8-WM8%5~w1^3A2I;OokdTADs zpZRaC6>)bPr<;P`tOoOyUcIksY9TPLgl_2*Am2wh3}iCm^AsI?G{dxZ6;#j>SG(V$ zjX79Bxj*#G>WUhKIJ#lRP3z_%E_23xB#UuC#Cz!~o0SF?K3=@^5WcNy{>OqD75QOS zE|JBbU9XU_kRN*wzZ#J2oxJBqVA7bq>FL(AtFX-K9}Bi{KQnxJ(|y(oVT+MC0ZHn*q* z?Olr5xp|MM6ob`^=WWFE1ivnb%dL57@00#mhD?O`eHJ&5ID?5Tto~gyp^4abp-#n< zPMlu}W-}Anazr??3A!WvY&q@{p4@`AE_|O<|KzEJ~Y=J&vTEd|=NF zOyTpmEXewPIFlQa^IccOvaIqDvBsow4@i6eh~~Lr=eY&KrdxW{vN5UZR3X~DRKnuX zX>=Sj5uZve{FRIHyK(ID*ffEeX;~rS^OLOGjlZi@?!|O0JE!>C%awg!o|cI!Q_5Vv zPRvS8rWc=ny-!m)ZOnwAEfQZ;xT<_J7AMp-Ydc*cEB z%nD6MUt!sZ=%-K5jzf5v%2B(C%z({!IJF#_mqx-6Oy`>x1l8-r>3rLFnj$ku9jZi8Z5)Yv!et9rIt+CY(L!Z=MVlRop(^it z5WAq1k_U#iAVkWmWj?n?tT`u>&YI~=WPZ55Og7;=(x4v|h?&{T8L2Y3$-vs`*y_AK zeJb=J&AXSad)|l_yPwj9AXY7t5eb;EQ>n7b42`&MVJc3gV0S&P!60+d53wt>3gf)u6cZ zP*&CJr8QIQRb7yOdjs-XTm;&qTRZ&h^^-}D7C_6@y4$SPEKBEAx=~U&zDswO13CBK z>-DUAiCz@#NQ18MKWb0QpD(eLD^!9n-N)o;&71YYCkHK^5C^_j^Pw9FIC!;TjIzd` z1)y=AG?J)0Vo;ep<}AZDn|D>=VC1iMl|3{L3q0Qn}{@KxR*C#i00#%7}n>rkW$x+@2bk&SBLN|4i*}`hxm1&_S_j8 zaT(6a0fi=X#lddzhun(RCAWw--PgBGbI4-(k1gR8RzB}d@tz?X|7HB~4446HjKgBb zuZU90gb05w0pHe~x}s>KpfflPn&ZZTUYGixbsPBIytDAInOVmUhJGHVG%xO(XjX5S znQXwYPMH3!v+dsG{+S(&ouS>%SY&u@v2AR$a?{%pwi zqv5F>GXA+uVdc_e^@l(LqiB+jGM!0lAB3KTe3~elI`~yCPlK25zS@H#ntT#?N>ctq z3B~J0_YF<9F19g%wp=~a&Hl}gS5xc!c*djdc4P#iK@;c`8=cFk72UH-%J2StYg0Mw z_ngq>v>ResH1?BXbEfGg)O|wE^M-;+YqVZ*nPQ@H#@7t$PrxV;PnlBj!XW04TIw*? z3b@)<0}9w_#yUXdr+i*Q9CV-G`9}>Eu^>2Xu&)YIKe$;jH%{l>DRbwyoTd_yGnwYq zv@gFXVD4gwse{Bz9jEqe#(orUW$(ndm>Ya*yhVes#5w*&3y-hX(nLREo6OwUWp~~- zYjhZ(dAqzWPM?O@#AG@~kBUYgQDZY*j?!3jtS?al6}eOqfF@JX4O6$0rhQROX&)y^ z+yAHu@uX+`S!hl4P4=x*%h+UK*-}aOJz=rOf?QHQ(ls%!TYf_Vy%VEQJ5{aHa_Hy?X8FItNTvYpoTB{9age#@2kdf<=yPjh-f2!klReIm%aqc|q4h z0WOpH!c$8*HWSj%(F;u&HFn+UbJh&_cF{bf?H6XN(Ck9H=HnHL#;zfa^J%cp@F`fp zvnkcaL;om0U()~J)GJg(&^G%W0sE5lj3Ax!d%p1TCl-ERM;!+X;O)W#PjBUuq@hO? z4ae@u27EuWusFN*oqOnbc$l)^^A`5HQ`U%Go zU@3Wc5nW~TLZ`Tk+>tzP6ed(}@SX#o_fDaGbAbW>*C+crG~GT`DU({{@FmTCg!(sbDvGAm*3tW&TQ#OyNr3)zY2c_G;0uq~0NBSh(yHiE&PIzI!-$ z$*V$zHbFQcyW*4cOwflFXDW%w#!og!%82AF`jEEZrrWSk$xtnXfir$`E%9po`qfuH zUAwCoqHY~9g1Nen!SZS7au|EM{A^-&&tk z_`m1IEYyV;BBbBke*HF*amimi6ZTR=`-46G(Mkq<>n*U!_m;JM$AYuup@WGRQ7aVl zmueq{wW>$Lob%&7UyC}wLB7c&h&Ls9Rl%#+q`CvXCYJ9DX5k79KJtIx-(KmO%d~YW z62A^@s>N^;Tj8x?VUi90fI9wn2MN+68@|VY<6m1_C}ZC9@%S9O?gZc&vt|RqoZRBA z?b}h=#y#LR{7{a=3E8zbg1lpj_BNdRqlS%G7)6b4(C8jif2EX)m6dPSvMR|1@_1h> zOB4uYi8(O>WGRRPLf^~x1jMH&D`$>Ag#ff!+%@!Q`~~6}y^z7Myst5O81i|*>~xbk z*GyoSDscg2U`BMGfeIa^|25?0dWj4fit#++zOsP#s9 z)H&&n{QvlnKE>Mjq#x_1V{l=-G}B5*#{6pSibFgN*XO;M=GV@deKV<-5|NG9 z2RnBd+IWzrpH{k~a4K?_$d5dnDIb``US9T4fz|h@h3`8cQ_49HTOEAP&uf2|*0zAf zak*!rgd=Y?t}qvH_${2KCAX`~Yt}Yk@B5Ly!u+p8?}a(F96dL9LFJnsd9n`msXT4l zB=g^Wvf}r;f79J{4vB&Hal-UfUsK^_v<+$Ho%1_0@uVybF!(*T`&NI#G#h2BK?`po zW94IPgO{IUE+~WMJW>L}F@Ga8N26QAT>^Q3r_nS6>7&92)#c-_)Ms=H~Lu{ zpNH{$5>_M!%Vq4sZ&YV22g|>z6YJ`oJR9D9)j&veY z%Z~_eNOt*kW7E9v^AJ}x$V!H#(dbSiPPI^>iwP9CMDsQo zGhC3$jk-bi9YhsySeeMaRtocxb_;#?S=6(JFMOAghob~bp;;RWESrW+K{G^d#6sG9+;hnSr1f)%?%)QyAGK>S_{d=! zl`okVTIXj54V-WZW$f$(&3^RU=)B3sN%}2NPUf=aitY+mKNF_^QM)sHV?lZK=^r&n z^lajm7#(`$IiEYbx5#xO45zC87v*xJdTgPcFS`3#nJR0YHUsumW3QW{WoLP zobDEpLvfQPhcKiuc*yKOujTCEseNe~F?eT%lTn`r=k0J{@UELDLQ8ruQSpM@=rO*? ztJ5d$?^AS4fjR4)3r26tQypLUrHUMW;hj}cvq8lp*~8kuNW%u^;pa6*B(Du$K<1#e zf~K+8ld+E;M0%5lnE?FtstmpgA)n3m>ZGb_@RGqf*BvD_+JB?C0T`pi|3+Z}--CM4 zh(1!_>yFyfm>rXxFI9%@vQ`K8Q&#lG9p;BPvCPWyp);_1z5@y&9Zd&_F`t7G{dwk$6E zJ3h4iU~nZux&f3Ez>-e>RE#=liGIH*gm7Zg+N$GGD&isH8Mmd05~QnNnZB%qxpU9U%Q)>j{&! z&F~)3HGoBfnPqOwv5BI+lvx6JHz&du>F4Sor)X*8t%3^;kW5c94LPgXKR)MSGG(r6 zwhkN(mOlI#@TV9G|aqmcw%%k+kO|DQ8jC0@3@IXY0{vVy)Y+qAgF- zWOtO+GlwVcfVU3?h}~^)LlDSpZoTExg9njtGwWCXNT1kvCVdNznLzl*+whV(tHA2) zU34bvg;F(eHXRvw#lSdbM{Rf{B!skWh9^dHUi{7IO-s6wp;IeO&>JuMUx|^)=+O(} zFzVhnjtCK3RRrthn&e@>xH|I29VI~+cBr2<<=^d-*+*) zC#m8F4kJ$Sg;s7dc2PfW5ZCrSFTr3XoDTvYD;5p%qy%Z!0F|@H`L)W;0iN`#f0>`wz_X`>B)y9&zpceNJaJ z01c2sY_%6q%u3w@8O3Fs;|%#v?1p6zAo(a3FQ~u$(oLAeX=+#F)e=jX6XOtF503?kSYD|NSV7dv1WM5%*>L9;&Xi z3>?m|r+nNaDguBMWYmKXGstsd`C0CDUGR`6R`$m%ne6Kq`2BmR>wnPQ3-_P6e>2Ee z`EjhpSE1lkB6&Z#w;>3iLDk_608_j#Rp+7)_X*Pi^6t5cc&Mf&DQUE?{)8g{=+Wvs zj9@;GL6O4j=c&EDx`NRD=ss~+4d1zWD)N*_j(5UWVN|-v?;GCX&QM!-vPMXkYG2^O zFcY({s_CP@jX*tlF?RDijG9Cr>!w#ckd*@+@|QHOjM2GM#fE`Z*4q!?QS3sdk z;!ofp3Bc!HeBl9^t4qM*b{S`k!<2xZF>|Cypj+bW?m95fd58~8DG=NtUt0evYy~bV zPmA2xciB&*VzA2D-gg)eD27xmi4&JQDT}=T8SmOJKdE*+Yk0O zk~>76<4&TO1NO@<(ipLAgPvs7TH^K?5CYfIr7r#H1+ZvH%YZURbvf%6v_A5{*oja+ zL%%A1ajBw>m;MkkYbEl7;jZ5mLFMePIiG42*)g(dkNNz9cTU+ z)~Q)nuAcAuP;oU;kt>=wKHfha@?c{x;$;vtZG-n@Ft|~((CD?j_Z`8cUW9P5vKP); z+2n(Fib;Mx#&$O(4N@CU=FHL0@2p?>IB4X3uL&E>^Cg+iV`*1JzN``{UeY;gG>I`w z5Y|)&lOK`HdL~qmRN-M+!p*BMQmwHP+E#YtG|Z(2?VUY`lY2qF4v3eE$iX&It?I#z zPPkp4t=h+m79RaktIScPjBZ#N17R%KF33Ygx!Og(Qc}3DlX(u(2e_^P=nt|u^!Aeh zp+UVYZGEq~P%O|JPN!(N4fB-@ZEz5yMK;4o(NZmBn8nfSP$jc^=ER%H*vE%?;!l48 z*ZM}C_I{Ah+?KaibGoe)GMXuO z{AOfP@yCfXg<^J9eD98#N$jPz7awQ0UyX!B)Y>@U*7rwr+=2=kx3ia!zmzkX|CjE& zDq6gRL|h`|w%}fuKclQE7=3}4+VGJV<{2o3r>@&;}_CL7ajDjZ;rE$^nFwrYfViM8CQSj`9gT{FWw24GY5tB zlT{nFY}RLomYJ?V)h2xV`Qn9{+4b5c47K5q*W`7w$&UNS%GDK&?JG=hdm1=LCWEin zu{nb5-rT&{_97SaG7HK)t(^rmRLiq)d2{EPN1(b|2@a(ll#W809=`(!?l;&YlrJ08 zniKCntN?DP>K4Yc)m8-H7@F_xz)kQEwfb-Exld;*=x_2ZHBW0Xsha12u__>umU~1! zQhROsNRg{$xptLl5o0iIK$*rS68e1x)D}IgPDxHpc&8Q$Y}`W*YWm8GbeUB13i`*g zT0?iQc8fiFZ@&P0k<_%#QzaU9-se}iR*MLqx2vUDQf`12NMLOn=1Y&WGGpRQD>U5` zQOAs5oIUcO$T-2>wdBhAv>m-{BG8;sKi_`vN4e|1E9W=a(rFccLy5>!^WzdMOArI2*I|cP|S?1=oqq zwDc|mD-K80?L7CZi zdTqN+dmlhPpHOor3Xk0_%y^)l=bnVh*E9ge@&{da@_BFb)KH*%qGp|Ade=2|)@r*; ziA}tkbLa;f=sF=`uI!in4xd)+&2Bl*)dNguA@ZsIN==6Zc8`MXX0I;d=Uy^SXfCSP z+yq$4K&m9g^&pFgUnp=tvC6obe&y76-kj^xlaBk}?0)SMW)~bvZE*yuJ;Bs!`pX7h zm(`<1XDmKe?(tf(&KL~L*&{$Un%!^T?lQh=`K4Vxp(v*rkDIGBM6&GA^5zn~9gEdm zBmesJ8s)Sgm|0%#Pi)J{Ydv(wro1%_vg-O}7V95w<2 zT=nxkCk73j9K1m%Z)9-|=&5!1VV=9b9i|+8Sk?!`tIq@r-^IPTWAW4=B(9?Upd_t+ zFumusdgvwNEQ1-ZzrHQ&*ajhY^xV?bye*n!MU>?SHJlw-8q(bSjQi^6AuktRE_++L zWVT4td>${Ri~xm$b!m;MT<>H$Fum`n)%wr3SHztFeC;*6V!%6t z1#jBOCt#@emYd#|flB+^dvFZ<%}PC*pYnsTF&2-yoQSaedY=J}uV8D+iO@ zbhcbHsr_%cNgS%o!P~=O>G-pCVb#FP=guzEgIouUYl%i^h?N1(SU=csNAHr}9Xxu{ z_C@W;w019CA$sY$O}2F^I%D2rL?(1CSIfV5-oUx}x!Nw*gMZW_)H|MQIPb|@XV6T! zzJg-CxwEnN_@bimUhDSZJgL1V5EGbu{`Q`AS3#@(Di^m^#y31hDcd#j09B>qVNoG^ z$NAN43pV<^`!(==rQ|A)%S&A@8Q=5rc&pY|;CLp%!)2}dqI-F-^LZC_5%`ydSt-fS z?W#H6RR7RL!T(yWc1UY}lW(VKuG*z80pI1mbX`I{zKgQy-6BU#hJI*~F7LT!Rr{ic zZ}#N(danBSACXIoowtWwHMaH2={=SVuthTm7FAoZ54w)XSbXQ2k7_GT^JELbN1s0g zf=35|&C8qTcW&oMUKhlbKV4+vxStB_IYxmpO6FQetUy+^Y+$~8f&&)u=i=bk_J zJT+lSX+^^4?b;5@VM^c3CaoW!XfceJsUbR_d=Y;%iU{}PMTMxRI_!e ziTKZ`;#cz?8z!W(alwvR{YU6Z$oaSBA7m4DEXZbXrD=I=QQ8$IM^UJqx?A}b)~GmF zWMLS?i)Ba^9%_4;Z6GVz^`{;5=J0EOZ0r}NoedJdSrT;SrqU!NK29VBc`Ynoa~si8 zzw&M2a_?JB0>ROAawxod^Dl-X;UW$Lu%qFUCg*MzC&b+)RKOE!8O)!hLOt7l(@5JG zesg{37Bs2b^Eqk~zvb9;bM$+;!9O!Dc`Du^W4Y4Be(2O5CB;-4oRy`yD0PL0QS)tz z;f}aYl(+J%-Rt&>#5a{@GFSKTC6;$`#JLB%o-ViAghzVEe}6k{Xqwz>TVAfdlaK7< zvii~O9sORu!{n3t&F6xuW^G?5`rm7Es7jp9SHm!TR&kw==snx5TN7LN4i{YQZwZdbsUg>Uc%; zJwsO{d%augnd>urTpbisseo}LA^S=wjEzgzrJaQ;I`TseqC^ZG1ibGjwzsVA{Q3_k z35>#wDn36mEW}hqy=-~CUrhi3a;F~b5cq1 z2?5gdZOlyns!RZh(O>QcbkNx>ZXg5dcn!Vah9B%^)6%_EuAF=@R=JRWhtC)NZ5ey(F)Ggc7r^FP z*O9d%7CjLA}r@bw|PK>@YfZHs|_; zM=gXWE|_(7x8`(OU$iq;xO+1c>y}9hnA;4!uSv3x4J^2h%;m}U*XP6oNt`9UsAG5% zhJ)=WPk*sb0}VPU`k1X~>r=^#ROJ<<=>mc_{|lxg`+RO*kwW9O(*T5tsBTx4TFgey3L#=xuJumg8goTbzn zI#AXkf=FQ{TM8J#t4!XNN${VcrD8$9N0rlg=`I`A!;22Jf*ZJ$8JEECFTMCej}uD( z=}(d!`Es;PP$^ZW`J-RUrcKd_9cXC>y&~fhF*z!)j`uS4?gvZ9YX3069-8n@2JzD_ zBVFL&cEgDPJP%{|98aZ3RLkOey*ND%Vvx9fp}LFbaGL-qB@l%>d`Yt4R;%8L`>7Q~ zdO!#Xf3B}e(O%VtD_}&gGAUUhKa;lrA2jay2-vs}uh|`j;}-H)JLrx?Nhvq52|Enk z6>N*KHeRQePC9$lB1{`lE(ul@v@IoUYGT16?sBG$3%!XfEsty!`-a%R;j z#m=6bFj8nf5xB2}IBfLpF(Y(=i`1+StSXtn;dDAy&apbT|I>?Yi7$Cdm82?JA?svU zzT3XGB!DYA&+?H1hXn5^p@`};UVj7@g3>BOgp%Cs2Shw^8IJK`shc_}cID9!@}a5n@q&j%8fZgPc%Wixfz6?>}O$bbB#D)e|z4ER#v7F&>5L z5O>1d<#z;ySN@a82i%)Z^lke`P=V7+w;KeAvQ_&Ken#LTo_+6Pq0PiiaU`wQ*Lt%9a z_FKERpf&mhPdvuPRd498ESoDbty;ghu5BzAb&XTW#B`}iRp)47NrBssFCtf=DtY%+ z{gdSk`xXo^1(A zhu2NDez+*tVTjMXl$g^^y;3IHM#;B>F`capqBDbqTcBy26%$GhRG>;cvNZ}Q3n2@O zu8}Zo+4BP{?9Cm#PQ^0ubgCJj8Im`*YO5Bkbv5`<>l!{2c`-tuthTQGZ>f5AkrkZrZu+lUd4jYycWrGo;CDElj}Oo-Y*ms zYw@XJzLK@}nto=0o5Q1nE9_qzvs*-`U*;9vv)3+9Thtp_htlqhkd1C}8G9D+;LY@_ z9L5^UBB-M4ti!TUjnK0_^AUL(Kd=ebukA8z$F+m!jeQT!O`KTef|ZGZbdm`PgL29Z zuDS5k2#_I73vY-!=sD7FIEJ*Ku5^`&K_#e&km+c=qBl+tF3TN@hr+v|VFl z_RY%ecDJ$0@q43CS)sO#E@P1vIOSNkM>!lt`UfIG-UAtWmv7Kyl)s_RJKqScI#U0> zfhI2Bc`sC<+5)tyB6dTRGV*{A=#Ht!Dip23U5oGdhK>EY|nOb>A0!Eu(mR7d-j=SFJNJR`= zL!>wtIkS8DZg~~;cjWt9vK4Z?c(7sGF%bLe;^_^gb_&pE?UFMuciUq-`PI;k>JQ?3 zysq@k=?&5l>tA>4$rf)4C$y&XsFq)XPJ+?;yapO9T&uWxyXHH+_PAzK3-VKSc+7-I z;DxpPZ{gA6&voT7I0-osDw*IquYX7!;`??+A|13t=?{n)w>{=#vu~JT^eEELBQPZD zzCm45d{~ye9f0U{k!u!jh64$W)VyJk#n*oPY}3-8*zOY~qwh~({}nT>?i@ADtZ0uI zI$h5GMP%~I+=DOa*)H3SwFs-^`;8Vf*F|%47ZHeKy#?>*LUC3EnV1QPODUyHO;;e1#1~d_no^`5Y0lDxJfBq z4LkJ`{e7#XjqdNm4^xARuEo!?^FiN%Lcy-G1HQog-#}P$MAVzRT|` z;|D-zakav9+kg39MsuxHM6erml)G-xPJXGkJkM2RorZECB8w>}zAv3s@i9hxOn}HI zxQs{Ne)sBwvRpl#^mP85d(F}fDf|#`m$M&4V@IV#Uf#l?-OH|&yX@Pfz|S~`%BUfi zZ?AV9bo0wrj?Xs3`vVBCq8t{zJ2(0RI@TgD(x5Q@vdiH(6lB9uaIx6p7Gv|kiY{9B zAIlu*g?RzPMcDD_`A+96+B9YeaYa-RF8FqS|Ih6^cj9vRNSemu(5G0%VR7!} zLo8}Q5KJlev`#B<^zE9XL5)X(nVRvB)rbgubh<{9675;aqp@5y*_(d zfh(xuqkHKgU56ufoJt}w&JYU}?Nryng+)d&3v~p{cy-SowHbvg)w>s`Y&l)~pc~(n z0zTjB*YoV+ngGst2u26!r*7(M4;ZY=^ZS8cCI@*vCL8%4E}fC5d97wb{4f($jtqeZ zHT0c8eBjvSs(6UBXzv0;C84+jNwIe2iLCdFiL0oeTQ_wDfmy1?Isd{rFlW0Cy)rtU zjVvXRey|y>VPLYOW2ngLP&hX`DaBPMlh{#x=n^6+q-)m)!G6}0D($OT61^(bAGL)b zk0Q8m6lM6!JPOUQ+5oeshme#`Lt=wT`lrOo03N;lqHN?C9TluRaYP%sKmq#-qem%g ztN&2thY2U*f;@`#PsJv7nCVUhS6u?!1B%CFTSMOi!@x?R!`K&BsxLGe^^8t)OBU31 z^;~cJqvl87)Wtz3S8ePWE8b}-yOf#{(@yoZ_uw2b>fQNG>0;I}jOE3J%n&+?;~kYx zD+D6sjqUSFV-M=6r2aeO3);ul`?6G7fbyUaTH3~)uXFYz-TH}Jk#v+u0%ZHrSRh+d zFHE-7ckKMQ4@G_qw@T@3r(U>~3|Jd4Ko^0}^@~G42@?78#6c&9%cd@BisY^5gI@WM z!9hNpy1a|fn|Z}`Kjx>|Ql%D~Hj`XGO;D{qM!)h$ZP*vqm?Fk}8y#9UTl{1PBcDx$ zOU70Ic}Wx*q6xPWtRx3nQzTbDL9F5E;v-=?TA7==nn{8o@xhs2n-=DE^9y4gnXVEr zZ!OX*|%65bJEEDLQ7{IWfa%;<*u zunui)=TXk0U2o)Yw zWRCpzHl}beOsx&w`#|x7dbY?f{>P)Oq3|O<{2^gXDtKI27dUQ_TgK4=N_N?ysvWUR z%;r#IcCknyc-5vn5}c-{#CLX4;CGYP|Bfehym+Xj03WS3yA=_Qx@&wrR(1D9 zTo{(fSl$IRzsNMjTIh8ha1qs;!f#FtX_G^*@3>kcJX`Wb1~z!%b;_rfFZ?yQ`Q@~a zT$r3q^``w%+W?+QkuWF1Fc+T?N^_7^!V=8aEeF91>%b7FOy$a0oJKpPx{fF3t26+3p5VtrO z{D_DD;0i1|4=Qh``sAysN3Rwgt2sR+a%osA%H0$4v&^cV-T;eiTfm__3XU-x9S^O-1rWpk%On!5_ zO%W(q-7pduLpEtr^6bD-)r%3=(HvwgMz3&2u20z-FBDtImeugOD4x!xzvQn=IQuUg z6@BRngXm*DsOKpPx1z#zW5tVn$RTbokaQ%Wxa!%UB{St4E~Mfim}l!b@NdXwx&<)H zfJe5fP88U#G|xY3lFKmy3;Q<4;Wak8+1bb%_ebOYxT7B}1W;n9E7hwvpm;|?y*FN* zk`ZMI7TIT%k(s)1-QFe;N{b^2p*Jm`QCZAB4<_eGz&Ol#PIC%=sWz zJm#Fe6+9-*{sae;lGD`IpZdi~D(?b)sAv$c*+s7FSDY*f>D9IFqTD~;yY~K-C^>sT zsgkm(UNp@C$-4AM02gz4Z|EVHt2Z2k>ogwa-EO1(aHRql*eKTY1^SomO|RtM7i5>E z7P~w#`+Q-erUnDw3^1Gg73}|g=!e;4+`zIq{SiVEXd`zGACaxw z<@v$`w$oA^h*;AD^9wOpbAS)trPhTc|BW^JLNWKS!HtLSA;C+i$Z}AdSa^b-(%Dfy zgtVlP<@4C=)c>%vdfwC~RXNJjlq8vv9%Ek)g)IoKJ2An!{94TF94>Xl8wT>a_QGQS zidj<{yMI>0vpK=3eMe!QxQVLuct0gGM2}+QwBQHsT@}m2Ia_ygz7s!P#sWQOk*Xy- z{&vN%)WTAngQPqCXpyJQND6(Vxzr04Rc?bJ8Rz@LjVgt16;o0wl3rGgIG<3uW@nM2hW#9{`4e@ez?{mNFsasse*BcSwU6cC+wM_2e5M}PlVJLGEUSQ z+_J6*{inT2Hg3FH3O1;(wd%p-%*ArVtGAspi!KTQT|jzYWgnYprlvHZ zxDg#C+rIcq4Ulq(-VYlPj60-%)C7o!V!x%TuHU%R>H9-&fux!tchDdL@EgR=&bhw$ ziKOZtRN#>fF=SeV8aQ_qs_*hc(%l>nT}6RE4hih(E6RK#_8fdWN=0V77L?~8Z=;Am za4y#gDSy7Jw3+#k{owB;`sn6U!FEz6<7j- z{DobrFI^i~Rkbk+Zp%p^uvPC~|89Tjng)qtQ{RDY^pO7l7kmJN|9I8Y=*Y4!`fmRK z*?B6D4CB2D)x%|lU0<=%tX8u+j+HxYn|prrD_1R>$H(e!ueZ>C4o82zF91mL`_Qdc zyejGUBFkI`aA;nCH@&D^m~C18IqGKrycC z+vlEB_dkL4)V$Qt8a$v1Mll`rBL?m8rPnN{#fi{1O%C7g} z(R@?SoqFtX^gOFGQ>@Hd8?OQH#-YYVQJU4PFf$Fr} z`kIE9i5KPi<6YOGO@iTJd{sg7l*enuQ)n;zeQaAmAR2z@gLAEpnc8smSs4wF5GjG* z!UQ8Oby-6<@qHL2;5ee^GCF4boZmQ&JaoRT*rJCC{=Q+37UoD2Gsv>%Q>&R;*zni7sJ)LHzm*KN8 zdNrP|_=iDYn17k~&B2VR8&;OBXthlI3qpEeLA@1Niir=EbxC{iiv!QkWOi@32Pj*h zZh8Aeel1$o-ZpTeJXUUEbE30=OC9xRm!0Q$aXe5QAtw52-gNHvuA&#qt9^POAq=Npa;_r zN3!KyZ}!U{3{yLQ>}kdEs%!W=WXIqF-0>OnnR;fRI&Kt_o5w|1Jq^ji_ZT3_rx5)_ zp6(}dNE5O9m)(La!^y4`iO*^Uddmv6^1{h?3Eji?HTeV^`R2#jA778;3hk|&#l)N! zta=LDA*ur4D}xAbAjk! z8APg;*JDYO{NX=`AmQ2QryL6uJl9Q&jSnT+^*HBu9KIM5>0LAY?rx{=Y%Z7g8S=pP zS=<2O=BqnJ7i(QgZ?wYBoWwhs&7)BvpK!Bp=Q{MGMlW!$dGfPZ!`XSR!)61{ZhAEy zT(YO~Cx!=&pSJ*1I60r4HFSwgu=k0a@y7>p-sFwKfyrU&I`qyL=HS*q1r^^++BF{% z#*%{4tKMIsB_rdL%kbrikAS*-(VnDR)%)4qJ!Ml>8Qy;1QJz6T zX-j(b3>PqMLSCBwQZk@kY1&Z(wO)PBxfU?5WsizOcQ0eJ@fugZuh5mOfP%7d;a=`> z4h%<5I9eWRZ<$x;P7Q6)peM3AbIM@tPB(bC>_IE_5`T;Qv0n=x46H&Md~DQD#rVyEAP4;!go#ru~>=FsFlNnIL)s!}h(YRHgpbI0XuHA|J`D)Tgc z@w`f;tayyGJ2lnMLCyHzveD+O5oQn5vJf^OUx&IL(JN^_PeMbPA$av+thz2okDi!> z*DaryxXssjX)64vX}D05a7>z1irjONj`Vq)E^`=d&|_UoIy9J^1MKn>`r;$)Fw*pt zR-dG2sbm4!d477eGlR*H)n!bVVNud##cAt30!iJ75xIT^pIP>=Yr5SRh#d$F{yS|( zO&93*BNbDopUO|dwY>m8v&g2TrFqFw63cc{$aof7O)?kbs0(^Vqw~&laYB;aBzQzT zy*TaVoYw(Dr!ezaK7XC*>DhB8uYl1Pp@=uIurA2229lGW81O^M-i210dy&%q>8SWh zc7GWaZDolh@(33Yj7E|}+H^+s+1wDjUqMR1n`Yz1-N~rIUaOXx>})xH2pgk&*l92g z*D{c~pP|jYKrTZ$ zbWK_bQKluPhOD~RyIA9UJHi=Ccp$Kqd+*|%{oFWl@}$r?>yT0j#lyG!QdQ6;N-y+O zR^`cjXW`WW=rY&Tx{I@oWsL4cYezs#;~2g)UiYWF+Zne9Zu25SfvWDaa^yoV^}s zpm40AJ3ByA;pnwJwpQRk=u1b}GG!oyr=pCob|SF6Ep>_^0{iT@*;(}uyQhN47ZQ%$ zpr@W-t~A+4j&U#b$2Hsf3W>a%AD=K04M{j%{T1zs^wa+H5kc!Y#T!=B74ICzy}JUF z-2&QWtf0P{{XijZur9D2&0^J1*2LSZVTpcBZ&IKI9l~?t@TQWy|Ba8E9@Mm z^-2WBvV+=7r#l~V2YHqa47naf9wC=>nSIIi4H16iSW~bO!fovK49g?$55G;l$J7h) z`mW9GP_3jB2bnb87rJGc55A8fy#l2D7Syabw_037%J)jwvxwh>(sXB%tW0*UPnAKd zt*w(Cn)j2y*kc9FIe*UVAt|U|8v7>a#z|ewP`18xhuy!)U-!D1GEb)*0 z1Bs>_>p9Ftl3K1*20vo1&B1oB9$CtMFJ)3XsLq-LJa15$4 zl<7|$_i5?eT_DAI-$kr=d*nJwJC&ELe72F$2`#ihYsSvCJ+OJcq3NwjAZZ+iRDVNZ zEno1ZIzB#ibVk2du35&q>4`KC2- z6klbdwOe?R4wg@V>Sq`7#FuuRAqPd$NhMgz?yu69B+Kf`(c*ag-1Tam@v9c0myT@& zDR?`EWQP+2okjiXita3|RbnnlK@eZ6F6+#JqrH|S&fOpmwyX*}#6o_hv%$}z@d=Ec#T6xLnP)ghdl&;JD z4i#Nl>1GWBaOc2oIolqRS|`d*p;*O8maA_`kiJ`TZ_q{dGvN}iF5Ksut&${JiNPf$ z-5VrFdMk&Hv&uZ*DF2-0l?^D0kjKN*9(IxHnmbp+^#NF-*JYS?;B|R8dbiLr)99MF zqbCf5=x+_ixfaS3*m8=+_9XAH@>(am@g?!(`H8t9WFu~KsMG*xx5hKRUPS9EzF3*(;Iu+I%0vb_RDX=*`SbNroD@pU8VWA z^zh0HPvq%PYS;DD&f!*_Aaxa=z1E5)=Vi%z3ytd*L&{Nw%imJHwk#ftI015UX z;rO0B7Wvpym&-Yafdh!IRnl03-6|y@f}u^F>-Z?tn8wZfM70705=Uibmq7#2V(Xm* z7Q@j^;T*grSeJ+(gU7o^2IC9R$BgPV4cNnDD>y%zF^*q!xmn!8A=?IZPP#;)dimM| zucV}&O0`JSfr`{JaLW3r3;O5>&1B1MWe0ne;Y z)h!P{R8Qh#?vz7OGaQV zDrZ?LdgQB-JadOjDZ5lw)sonM#K|c|sl=QvPznmt=P3 z(=5AWz$%HfjKO&MD>yF!gFG~i^Zlf~J_2u>&&?sdW~wBl(1{2jKdYtI#wdt+u?x|E zjREQ_Za+4zPI|v6=u3#tLwWb#=X1OIG9lXZsmupGmb2Y2Ji`xInWo#ZsI(XAqETIE zBGZ98iB!yErWim9LvNun1`?C{(`(-MtIa{QAaPwdRe#!m#SIw+okIAAb(_i zJgD^R-zDyr%u1m_B4Seyppj3N%cZn@rSb1$YtR?6i-eu!gG$QK;!b+gX$!>k&y~xE zQiSTN?nj?4=yC}yW3ab#4tZ^!MN&po`s4KhZtABxb%|;qPR44tf-K~me4jccxR!WJ za{gU8#T{D^cDL21cPR?r-DPj~lIM$BCp(O?C8HFMjPU5@?o@)yWk!%AVhXw-6+ucW zuWyC+6CLl-Yw~zc;zOo_v%|u{{;*<1evhz|Y%oAMpUvdm>H~EyM7WHLKTq0_(v`IP zHdq3ytiq4v1JjCvaMG@*_c_YbW+QZGo;`t|KTtboc%N1Uy;;UP$sdX^j>c$bTxKS=WWcFqM<@(I! zLGJ5ox^b9WJ>UKTP$Fl>${6|^I9`d25yyIPj6fM*&nez6trZKu?84M(8POxF>M&?E zs}=e4R=!>uvOb|eU|k8f+~3+h!D)ZBPXSUlz)CV`@F`+a#VqxzU0Mo7R~gJeqj{c! z(APIH=9D99YO7*Om`;ekrt^TWs~CAl1?iFb)UCVizIg8&lyAa5n@mqzTYVWr5&*vL z>iP77xWq_~%7bl8QLsMwwO*Jj@Ok`FV*wUo9Q=ycJc*iF`(&pSMAQ@VysT zIJJ9_@?K)|=6a2v&P=Lk1RkXD6F&_l`CD5lR6)GZ;yBX6HD0QHD>N0X?_QBSYjwyt z?)_>;GID3u>ogi-Wd5z?M9HC)nQ!4e=C-6tEnSDB5UZ4czL4(}5G0|e_2W;T^8{Tk z>JJJ&N9(duKlqFP&Rea6)R_zp)ctQ#v+Sw2xmH)(BP4wnuST4o*=XD}W`AYoYr$}{ z3!>6l_kK|lJ4x-p4eBilm~jL0%3WKv9Ueyu80=hcc5PJOtgU$ZyRkkX=xe_NKD}Ju zsuXU}W&Jv?qZ{LJ9&+$o!^m=SCn4BQkIAk_a%kC+M>W2>#|8$GS4P$mN7H zkUb}=iN^K0fPpH&xQXExsNu4SFztH3E{&h<>GGelpE-~n4;*L&Rw;N{hses?TU^xC z-G_otPlrOhBVWmT+kGz=5YaE7b%74LBq6O7+8|K4(93I9ZF4Cpf50qA6wQMK3NF&0 z==}v6Ps{iaRV;LWwFvIw39eSlOv{Hhu@_`lJnwM)M)T&nu0%zP@o)OORFUCt&MnUB zE*DIz$PQCU7y6y-{7}!znqTe+^~hZ*1BHACqXo8Q7_p8pT!zaWl!L~A0!i(Ydd~=x zDvpzy*RlgiiREBPrBrFq(L^T1}g)D9c71qFJ68TS6Tm8E`R}vzr_SrcaLNF-Iy(BZam>FJ$ zl&as95g5M_#lpi9evZ%5VD$=BoCn@AeJQCPRQE3*N!p*;pL?@OC(XLx_Y;Tw#&2pG38KpNX>entc}q%;?m#;dCz`FPsgvn{{i~it}jJRDji-~ zl0a0M_qvq$!f9&D;MGdLx-|5DGdi=e;H#XV>^ad3*uBmVtdPs{FG%uMR|oTR^e>Mm zEw`w)O+;kEmSHD+>1<6Wl}NS+mF4Z*=&MnQSrai!fn`QMy#@FXd`Xtj(UQuV02U&z z4m~~Q8BxA~l)@rLJC{}NOHY$EL_^6G(C_e&TJ}5zDF}t)hM#_t>o>zwQK9|M5@%V7 z6E(i-2ahxHd0hO*?)bV^Y+?_$T0Uy1#=zKqRQe>bY!+`@y|Zra{nxgXe06nar|7X| zifi4R9xK&S^1-wW5c(|o{u#Zp9YY+1_ovn#l8+ih8x8#c%ZNE#LB2X2HcI$92QysI zW-s1_E#*su;i?kI9{9j4KC&U?869Fz_Q`$m4Dq1V8k(P$7)0nrU>F83Rh zswWmrk2-%_UxWLussVu|*{CV$t>opz?pBu>vtj*DuZXRcnKymQD%H54^y0m8Ifwe} zF7ea?E2R2o25Bq&hI*QA%cs^0nWex$V~y1M9P+K!-qS9;itT`$3t@+_BbtjVj8sk( zq(!SCZi^aG(%D&5=hgbYJm1pG-n_ckP!?}63S)#V^bF~q$^KA^pPfxz$EUG9l&um; zh_Q1qk-0kA4KJN7(hdLES3IXiVt?w)uD^L5^)hJ{T*-dfG!xFA!TJdg6YoyXU;VzJ z4N9;=fN6slX#I*vspeOMs-g{_9EQfxV`o=!ugnjCKXYdW}j4Abg#8Qkp|K6-Q2rcQf|AE($z+4^YX;gH}7YEetmL(VK9*dXe z-j)F#@=mtGeTOakpROxxsP=zcDm4&oTtO1DYXMbIkCD~;as2fQSl%>m=NYBYJ8 zbNjcOS>Y~~sf$j0>ES#t3J4)9*7ZqEM~bxuq<8euE5FQIu(r0b;N_-uysHfzvXs{nBGWE+coCtJJiu@GvfV#%3N`kaE z=1*YSrsh{8)t)NNp6K_=v?0iQxlR|UR_{X|k5J(p_yG$-@W#=A02=ZR1X0KFTRO37 zX6esrkTWtAL04~l!zJ5Q*CRa}BHC9@gqU7#gFjp7#<3rWQvT~^jf+fn)F$ZTxw(}KEZN(2g$P`!N^|Iy(<#ehadqJ^YidCYY}zFHALMv;RI`jU@ECQ_M!1RU?G=W-=W# zlgn_n8ZJR0hZN4g!YwFP|8jSZHnf-CsBH&IU(9V_PiO+0GhiQhIl6|Vz09l}@n#)9 zZsmiAFF61U8h{50A#4EOLDnZQfAMOXXD zm+ztQ9%nxHX@PysD!WP@*an-53bFM@h+OR7K*+OI*)kR9yWoxkXqxi|hIKeP0Xs70iM-`q>y-aw)y%IO@mKM21XheBGAWYvN` z^qbdcJh@)+WDdrcUBZ6Zuf_o9qO8+s&01|HygamX-33g>~yd|-=LgPknMOk z{B$_xFxf?RX&VLyV8HD&@QLCP8*^I5@b09cK}an^f`x#MjTi*=&OTiiT>aJlP3M1h^JRgw-$LHhMq*L zB7~MFBMnn*N-utH)i6Uv-$w^o_OXWLN>=5xUp{RM9_D5cAljy$aI|*_w}eQ?VxK&BN>{l}A7R3c}@#p672KUNqUc;c9|i&6(LSRvA!JZlH21 zasr!$EwTAA{f;dn41S8V)?;oZO!1FwZ=t7py&{ub4M(wT|F$3l(TKu#bGk!<9?38e zCYpSHBN=ItMQ`D9(@90%$a$90$)Th+*vmm9M5lg&%QvWi9mLOp>AtT|aJ}SSK6a{6 zGr;7qgGvACLd0_e>yi2Qpd`k1-RxAwIw}wiqqNv(ROmX69M22!F4J`+L)vHNpy_*N z);@K>@qO%HeR6D;B}2om#UPpe5nmH}F*i`hSKpo#Px6OI;(4JBxSKMEGSyY9Rdq|< zNlD$jCAF?=$zOzM?~3P>MJB}6?x3F5GmnXBDR}cW5t;ZyP|5Qbqx}JY9`ce%ClPd3 zBK%sukkoyvu^+fj((C^XyynDauYIk5?n9fe-}_YSoXg*8;6X+z6>sAJfwmf7vnBgk zfvq{Udq+m9DMel`O?Jrf?q5U3Db>~?Q&er9UKR@Zt}U!OVpG?ysX3gsG-H(9!uT0| z{oMD@NWGm^T+_5IZ+)Y&p%=|TzJZOT8zG*$mOE*g4NlYe_?f=_qu@Jpok%vm$-MX# z%6Ix+s8-(RmXI5!qBISoWE;hIIe@pWJll>3ybn_peaK$Z1 zxbDj7-c%W86|zs`BBpEbG&%<;w6d;H?T!Ri7}NCN)D8I+V&cG7h)Vz$-MN zBGz2r$UF}(+*DfsbFVc3c3$x|@4yn#aEK)Ir`2n-Ocb?WyH0tf#6eqA?O4#z(}tiBSo;L= z8^);&@X?|sCvi4)a-WN>8*pKdrhc_8X>Q<+X&ygxH$DtEbGUE%o_Zw-zJ8vaQZ9mM z1)N$pCHH4ER^)wNtNJUN6WIQ(Z4g@y5aWC5&IXfl4PKE(%aWbkt44o6F@FeDVc$ed z#vMzSCNMeDxe|{GZG)oc1ua%T-pf_jXTTRj%hWGm_d={H`Pr6^)ygetn;?$O^Z!UX z?^d=;XhD0Z(*&Mm%yVVLP@wT0*GBO&Xu$DxpKalN8lI)frh8hTf;D=5kd9}KQ^?g2 zZA(`E21=EgQYHJQi)Bwf;-`)|;P^7w2=l^06@BIr%YLDD)G5+*kN_)g9>Za zX>^Sm^`R5Hj^5{9R&sfI3fAl8`JxQN`=(`VAML$%8;d%d3eD-N-8Gi{P`+0K36s(!L!@4Z-TF*ZLLg zfgEADeAGWc6+~au_R@AHOu5QHmVmJyb+Yxg>i_2J23NHki4*2n+-Bz=q&ELdSC9n_ zIlX<#)%5b#K?-C?-68XDF}d%iQ>$x}Jg z>U<#_x*W*`>VNt^X>oJrPlTw_VEu7msmfXWTeQFilB}(k8el_M1D5KF+8Rv>>wy?} z-lK*~mEI_AM7T&LZ+02wMQV9RsJAqyGLpKda?+}tHMpSUnN4SU**H8BHTyL2 z?gxskJWgM)`B@RKKG_m?EStI#F%h1einHOYPb82wudb(zowk{7mIlFHL?u9jp6eDM zt1eq=ViLkiyn9cZf2Md68Z{Ft;466hlu7RKa!pY)VIyHMFXi-MG zj(+ap_4zmZ$MD(27cbZE_xw0a{4aQ@#2kVF&fsbX{>FB!BSaA9ld29v&V7UwY|mSm zG^hrX1%o*QlmTZDj~-nC04$-RKLVj!*Z(X=c474c6sM<+f6@qh1Y^be(7movEToR4HvqvBGb#$NA_r~tU@cYpcToYlidqxi zz*Gm6oBF%{gjKX) zkSH}coAU@^=BT7G>Nv&&CKqu7zeJ{&#%lh^u@Y=LWIs2!YLRuNR_y%>SQ@r6ePpPj zbD9M9Hl6LTa=FYNmY>#rY)nFwbpBLh3Cn%L;=Xf2BC@54U$#@$$^6|`r zKL!Pk{sZ1)MB0&M55vB-S%W#^47?PBR|VU9f&a47%Nz>f9t zM0OKq<}`70=!aYW+E8~?l;?&+Pn2X&az$R+4oXhn#_2Qgt*(?A<^VqGE#U${5Q(_10<9@Bddxt!jReb%#|pD zfaa9rNLp8G&=Y{-Yp_1dwv++(I>sPklK3FTZO%3D>!j*Nc*oYlav|Xjb3In*X21S= zL**BT`@rrwdy859ioab09`UwqgAN}*iO)lp)4L0d9HT-lH*0@q_+`!I=+#YjFL8cs zdA{RtzVFa^f3wCT1OPa@8Tj$F@Q;ndw?gv#d^8~Ex_O5y+Ph44r1FaP;CqroRYgUj5H;_{+M@gaZKNlF z2%O$uMkiyMV-Dnue%(}jqup#HJo-~1vj0bwU^DgJL`e7gfbKZUw(Le;+oFTi69a>Y zudFapXB__u3214AiKw__?k!w~;0HPSnpMYS+b}#@CN7d-_O-MD=eODwD9Igl*88nl zVLp^PQC?p+hbx;1HLf^0alQJT?)^1)dt6(j*}zep6{vT~H!w4z-=N3L?)@C~9$&?A zQShw3e<~?qxYrw7zgung6AJy#67^UC5mbH!$2rN5S*pP5|$;XU^ckOqP%XEsR| zW!KzJg8P*9B$jCb4n4F6Nba;)B%Jr#j+C8HjU6{Z?U%M=W_RJ6Ke6u}+M_jBOa4At z(-fQ@`Z#JrSUXbE)euhB=}c^3a-S|UTtKYgE&0`n!w&8HR%N~llLx-uwl)3-c)Z?h zQvN5FXj1YfH`afFJt=tOB#Em&QFBr0hGKc$qNT~{q4hU?Tj8vN*cV&0zsZYHv5$V% zO>HQN$oGv*)DpX)sy7LM9lAKe?)ML`^!0DoCA@!oPp(Fu_N{EBn(CHHlAkIMBcavR z2Mlb_TbZ_cl}}3`XJ7CTxnu4=!4~+2lpoWXdlQ3J^p;pZ!Z6EiefH~y(aQb&QgYmsEaYE5@6fb6rq~L`6(Wth5#8 z{W3B6F|`_N)cfGC|MMFZFaL9TB#)FImCaqXE3x}U6?4q3=+)LJS0dI~C%_1D0Dld`)!_=1gec{ z`;3CG4##!Anhlo4=2W$t7d%&NqS5UkA@1dop6@>2g83G&w|ZLl`aS7h+=_<9kbjFL z0RU^s-Tk}!C^DDCiVsSQXEq%*z1B?bdki%#zQnw=d)Ll~0GPz3?Q4#_-Bb~IPHmX* zBe%dC|1AeD4i<1lZOt@Bm$j&(7566XZ|sUm=4Q@U6aCn_t?<$I)3M99Q$?`Hh)T?( zm2GUfw;F4+8ViY8`upKeIF0c4A7EY@b;pMeXCl?5`1so12mb&kw_g0szNfNU$eP`~ z)BNn%?x!%o*|@&WcmP1`VSG%&+UfYMs&V0;M8X<9u0g~elENaPUKi|r>TbP5T|uMb z?5-k^&o)$fA)?oNPiYnn8b^B`i0VuQf^6VA7SSy~D5IAv z3dx=Afw|?;8b-K&)u$1{an|_>{CNyd5Sz6|`L%`nWn#bhx2`tua$~_0zZy!}*SkYT z?+0(7`DZlh3n-pm-@dNI+N?K*hZp`=pS`t|E}qtQpW<@=P}U0rvsbR<8G5PZ+U<0O zv7vLLV6h(p|KmyL$qzwfP*8}GR+~#hzxtN`tP5FW+%ZpBHdwr48K-h-nYk!P^k&Y$ zOy}R%QRX@mOJ>}Rv$#F4nNcJFKkU`1Si}fv*+19!u)&pcyeYPN^uFw(m>k8V=qAas zujC8OcuPlK-5V2XfY&PT>2!FkNqJ22x|VvP9kaMEzfajYKK_hPh?Vd3wG&bRv8V5S zAn78(_}R)HX&wmU1nB} z%vs(V+|rtfs$EH#D)Ihtx=<_=aQ0aVxhi)j=HVIHD`z~fP<_9M@3M=hxzYu_B#V|vX7`5g1CgJHw=08t-v7ya3=bx z=kKlfaMgnZx-+!(VKnbLo4o7p?q&m{u6_d$I`;8)E1lT zHo(J=e{(3b%1Ih#K!tqN*N1AO1mwt9OJ-C^A@}M9kHaxYb60)gAI(R?Rl_C5=z%}~ z0GUk`x>~9~QvQx3*U~ZArkG{Ns!wAD1;CpUO>qF^}LO|u@&u}R*L z4{GE@HmHc&C{cSIDUoC9sPIb3an7CmAEVtW-trL&pZ$rv*VeT<)k1wv zLs-fWNrx(P_woSj8-ird&{t`}{7+A^4W&coK)uA7mJl&o03z3C5l9UC^1>dV z?|SCoy}7*G6oA%_E8;UMrbrT-oN4(`Y8R2PL*n6g1(?{=w=?kvUxX_IDz{St?4e?O zB{R|$!>WD#1!*_j_xcjWQw$&StZ47q;^MJ~MRLqUDay_hZLhySH>h1H*X%?#ovYHr)T`3>jGCdse2Um4}&F^nRC?PoD-; zDLu~PSAYDxOy<7WOGoAn#tkdnDreKkB`cE&6{77`PWu%){otcoVkG6GzPpTgdaUpPe50Rt$uZ(4^Nj=RF1 zxPSJ~$^B%qScO(_;Xb=TWA!erYy!hI)`?PZDAR1YNhh<&l%Z2%bjp`w{a_vS;Ckzf z7o9WoMXsPN9JETKI(hpBCKtyoFNNcA{=XH^EtqI?&v@*8XuUU65-kaOdSmwvk0Zk} z2Tgad!7Dda9L!<1im%HvRACu!eReorgSpt9K~#F&R-EY*dvZkruxA%^ zhH8G}#3S+*wWD_8W&H+bDMi6=55&FQne;-=_q!hK3_unnW~)yEJYtn?)&JP?-!Lhi z2ZTCXGp-y<%8TFQCjrm`-vi{jJCAD9f3|`LhQ4pso4YA3Ru}z>KETFn^mF`#m9rm% z|3rLEew}M7>{P>+o`pZlTAuIV+wi^7dFrRJytR$^d>BO+`J@8+3CSUM{rXDC{^t*|%

<%Zdn&?=Qi>opJ4EnooqESoTZ7Bm~gi*Puv{WKakFwzqNnt zI-FTzrYBC>O_hAeQ$K;OWh3Ef%gSz={t?(ME#XAw8^@CvUuDG~8W{Omv)Obq{u z@G@)o+-}gWyHDc|UJ)OYIJh_NAncO$$%k48cgUPMW9@;tIhdnZgvmOa1F|LhWxd^* z8r0N`|G4+bX4STcGZ1Oe_Gn+lXApY#r-xTSXuysNN6FpY-HW7cF@(B;j;f_&&xAbc>((sqAFtnJ69{)c$|99=6bq{%;S24^+3HS|Jl>qO8;=_nab9i8tfpoxz3YAuDdK8v9NE6LmcQQwqarWIxt{{Xjl6Mzj)wKksE$fr5wND21Na|4%BJJYI zK9!3O+K`AG$j7W#T&t-PDQQc6$0t6iI>po-EHS~|zPM%`Hwes(k`!V_xO#C9Oagqu z($pj4qgwCNyN8}pUS8Srak=m8_=)~URClo~l(~I|Q>hw7j;Zug)~da)c!zRd~|T+u}3Fss=&&>S;=BgZ&L zfiLZoQNjC8R$IkzTo0)kFdrGSBO0^mx0{1a3uwD1)<4(}bNtc{)u#R$`8%~DR=&QW za3KFU6=@-pjga!0lZ+U3=4PxAXWIPduVvKfD~Fdb)e`~_v(^hA{5mz1dVMnLBE;pd zE+}U+eCY4wN{nVDMZPS3Ay3^uH$U{t&L3|n>Nh2P+P%Z=>gy>Xb$noQ@%*;#)j+%( z72fCfq;tt11(B_H{wPD~augO?m`1F*J2o%QB(YY%TDmx>u8-d#X*ZWOZGf5#(*(A+ ze1sat1fGpPtx^&5Jku{gb8sqaPK6Muvte_3k2iPya<$B>ciP*TJYypW#xbU6=ehli zukHWMOqG?=miIt>1obL>hvcc%<1hME=(U|S1u9Z6rUNb|v|S@UPVPlGrlUNI&yi%M zFI4tx>-s%jmTT~;y|xeFe9YdiWMsWc3?+F@IsYKxuyT7VDZLauA^hRG=r(%ow#y;g^fkC1TOhA zXdAd%K_ri?Fg7R+;hx_-Wrv=BXRA+p6^=VdL^?tc1eg1#G++O6(_j4kEBxmh-;x4f z=<@l+XTyTj@v2Vi0(_Rh`B9DYeg>84dIlAUE6{(TDyi`)^~g#JOPiM>-H-6`GoqxtJPOd(f zic^!5kJqw|*rAEKQ=Y3>&hu4HX-L{x#BuQQdT`X?QMI=j!pFQ!?5Sd}#LmPk;C&@V z{{Y;7fK!{X{qtn|*?{)W7j_8P4Ty|hV*@&BsoJSCR$_%@Gu0ORe(fK?`rF?@+-gkT zY|IVU!k3y4{~WrGr7a}kPSr|N6B9HZfX6*uWK}6Y-j|eC$;CJS%+_FsiMu0e^7F?6 zGp|i5Q#BpdherSEe~6BH8db|{MzXKnD@Hj;qr4=aHoWMNGe|y)OA#uvkSvkwe^2Iq z+nQ8vc^eqEK3BPRp>r-Vb%%G`waH6e!k7n`#sw>dirFQ|Q@rX5*vY(jN86QSyWawK z-uCx=P&xErWn$PQZblHV3(gC0 zOA(on>y-CrMv^jkh0lbyR-&?#ol|vqnK>xggFJ4^s#k%Fuk9PXZ#V^ObzqVVymwoH zBDw}4k;=cZ*EIun-X6?f9nF8)GH@0BGDTIn@0|RwisZ|jb7oh|=DcezAq96E?^=wg zBzV0j`|K#6>q8UZ_`wdLz3Xd7r86yZL(Ul~r_A&z$Xow%@jPPj%-2ut*ID8|6Hk?l z#iIvG&-f^aewYg=S>fOU339vPN?-4GA01Eh5yLolVU}57q+oW(=pZ}v;pQ$;EqT(7 zd*nguBeQlMvi_=1iHo`euQTNS>EELuG`G= zsZl1@Ohw-cYxVQnZ4|n+gll}Ygy5gequ?5Ee8-0k8^J5I!+4Z&#Ok!q!yw7B8UM6C zaF*`C%>D5G{c)_reQkx?jJK_SY<~?&na7W-FFm?z23XtLC&EEN z1?z!~Wz>IFC7BYKiuk&YNb%BARS>5!pWxCm6B35&oo!x!hsn;HEi@ijZabA!8Kt0S z+0)F!0<#=)hUGFp^xyuw_|`_ANBCf|7Y${!;Xtj2ZgoW&Cx3i4xT&Ac7Ctx?rQE7v zUXW1yX?>qQ0wdBi3eFCs8*Wn01-M|qdBcti1f@VT4K_&NB-qzAYyDDAL#)(i+$G1P zqUWG+{^F}ygh#TyYYdekAllh0IM3#^yjNcII#L;E9nh~a;jz6Rj)$xU7k30|pd)y% zy^#+*jn2a(A}{AJm1es?g3hdz^$K{5JNEZ08Z6(f-8srCuD+Aeyv{ntUt>eGO0e9o z^@T;aldJ`(X!e77d`>fm%w@m+NxwD;wulDX;f6cDdPYkWfLwH^eSgk-vFoiUG?ml%jFWM>OM$yKFlI%NIerrYvgeVw(a zv;aIAD1nXmw#czR2x)Kk^7B>#lV@(2N5QkjaLjO8bNV$N=h7W2%%si6coPv0XY~)b^*iF zZ~2TF>XyytVCcaMNZpw*mWmZtqvf<^$BFr}`ko*DCtu&JB4XT+C57e>c7=nbUatp{ zL>ne51wMZ?3-cSE+s8|5+B{!o2lO__1WMddd)Lny*VOT^dv>nQ-*63woW0$1{Id=b z+RR^npyj0S0L+FNobPdo@YlIDf9nHfCMB{8w7f9%`0@s%iJhXBnd9X+T+lR+{xB=B z_UCrz*EZr6PS&Ip6vwZZG5Q764UlA4wH?qn|2QiYrzjnwc+S#EA=#mz`8S*P$cF=y zX3b`P8XoL+S3sY8v^FiCJK-PyVvrQ%#ci;HN6u7{!r}7Y`;+>Ro>fv|@5i23oX08r zce*tgTR!?tcJNTN{P3YH8a7<3{{YwxRJPXCwc`gGt>J;nVZ?=OvmYgJB|fJwLhWK_69ZS+ialGrO!<< zu}DQ`s2b?2kfPbUu*1C^uaY`@37KPie^!yX(#s9uDYMxDn2DIot{x*9rroi5aOH5IJs;d?C9$EheE(N1F?oipVpb zFmucM@$Q~aV_tuMkMu+&cqVXX(ua!O!9wA(nO!q6*i|T568FCVu0T=0=a$V#=kDN! z+w^eFw#T9leKgS-=_mF}Jh|`su6+F; zH}&NsNJLjoGUmE6mK#wCbzxFF!Wy+x7TLL}v<(|(d}rEx7s!1s4o}U#;e}RXXx9r$ zHO|me$!aROu1xa%FY~ICU$OZM8 z&1+=#(j&*~?TD(!uaa$-X0~~HdR)Y5e3FixInEBQjH^|9aKx_tOIyb6=*BC)7mcQR zIlH0b^zN%(O*eAm)2E?6UcKDLeHrO!;OKpIpBuA&R2O`3eR}j-e0S=3^^IR&1kU(t zti0`eyy%0W@|S%&C&lmE1ZzD!F)n&EmyzADk2`*zc#cm?Tbp=&-EfU@-_NzC-%Tsb zb@Gwe_{=(bqG!zCx*{&Ho3z&rR>zOC8diI&nLJzR-7)0vdXFBQ?R+{hs#0_6=9XRB z@+XU{euQ)J`q)jdeHlb#j;L_!*~u)sw(?6mHkY2d^@b8JuRmkwPd3%*%z511 zok`@=1a@=tdJy4#7^5EUe34H2lb;u%jLte6#B%A6e7=L-_`kCB`Y8uRz*1nXR;p$O zi47ICHC&r5BTqN7;~$9f_WE8wkM!^7{WrP!S9TlzpuT_Tepl+0m1`+>h+?v$rqzmZ z=<)=RhgQt^UW96hI#LwrOAxzpVIj2Jtx-T{Lt%<(*FQB+l!-Rxq9(OEp_Ir!>T5E zJMwVl)29SyI(C^l=Ubb#M8!N@BYVW<-(d!4YIyeFf>Wc}5zXI(Oy|?ijPmTo9T?B4 zHuLYd&n9~GIk>x=LV8Mk{c6>GdirVM-xOut$AM<+sZ z!?hzCXyd&%ipM@(>Er9w%;Q|$iH=?Rk;^eCd3MY(Ptcc{zMTo>y!w;RhL)_Wl+GJ; zqnj((BW;t(E2SLQuBqe7yAjB?lKlRS5gXq^+>4jkJiXS$VrY(Ay^P4|Pc(H>9CG(3 zHZ>vL{wAE*xG8^;GlM%=7_X zDYA30>wi_#>4s?DH`LqAdnND9v6gvtBQ9RchHExuFhnhIUWw4+Wp&4JO7MD^idOhvfTjB2xU zq;d39ojCdxMe+1n&GBwqeET5NgQy7P+flzWv~hg96)%%^Gmmyl&fu!?Ir-i&q6sF3z)@OvOh{|@@;?lVhM_V)7mt^4`v~#T_&eWrqruK;Q^y!&vToj!$>d@fV zK{KpijCD%2J2{-rU0AtW+7{=$)hn~lvh(x)zMS={p+Kza^R8VwEyX+IO074_^X2z- zaaOZ?X%o%S&6+x6&{n@GrV|mSjw8wJu9%J^qo!wzr-Qg$y_%=bk3*KR9XNGa;(8*j za<06S&FXo*5_xZ=&oR-Qw2Zpb2q4yKHdpmMtGcFk6#2v z8f(&U^zrLh(Ai$o%hbwTy=M-&)hmZtt*3+0=c!*eZ7t81*`nNbC(G37SBqS|3OtWv zn6rLb>zi_#;Su&4c^=0nt{|Cm*0pKpwsz7J7WveQ(9>GdrJ-Tb;qmo+%vJs)`lhMl zg_!D=ou{MO@p-zmuhjnlGvn{)uC9KMGj7uKlJ z%5l?|YSQ_usvL&&VYertEV;UMiOPF9tt#@`SaI}gN=Lcj_w8?_1KF?yfB*mhVy=A^ z7sJqe{{YbZ_nWtmho|Or`B#^Ahd-O>)JHsPXVH8A00H-257E}x-Wb~f=iF07;WK_xY*>y+jzm4b6bjU4Y<8LW_Wjv zD_qu;PL-tF&*njhRdb1vWuDZ{b^X*qR4LEganasT`jC6`8 z&h|Apck{auw>K}So_#cg^Xt5rJJB5Y_ULf!!|6m|_om^}^0Pb^5RYr~m*4og`&*YSiB! zN%J35@_h8>jkLEHE?tQkS7$8FbFXwfU#|JizD}R8YQ9(M+{3Y4E}T?vkEO`yh+1=5 zX;(&4sMd@QP0Eui+fUBxxMwc)Q24quS?S5Mr#^3OIXN||i{$7ke6DTw{O&pZDQK>l zmdHY>+JmCE&c$YHSk|9fx-$KP@%6jrM%>*FS-MdxF0_tY-z27*BYk)!z8yq4caaZ0 z*0V<0baN&bMhM@JxK2*6G|PI3;P1$nPo3P;&&}v?#e2DW zGDvjt%-(uIkA7O1&U=S9PH5donU1Us zD?Z#NXCB@Jc1GE!J2Nxr*93BPR*=l4GGnHQF}h6F-g-K+)|0{1^@t)indZ-@Gp`+K zZffZB)w4unrud_)nAI+E>ZAoI4J5E`yOe=eS|2=tg|C)QoW4tEbrT{l7vO9iRXJ z8Z(nfG11z59a;R((fsCEMD^U^%ceV{emuM8c`)cA4f%SeewTk6)%m}q&?A?jlwL8n z9sJEH>gTy?@o>t^hHXt89)DA$sci|KE{y`X`UaOaw&M9WE>|A<6MlbX&TEf;PtN*y zvh*gJ=&2N5Va@9h+lEzha%6xSQ|yg#{g3hbcNb1uX+~M^&S_DpIqfD|T9%x88Jn`F919Cly|^s(Ci$-4{AS-20j;vfh^D>cOiUEmO!mRq2XprIzL{ zgP$rN~K;`YN%AczXkNa3+H-MQ>O=^nHQlHs+ra_qD;7rGr2Wd2^seD zYxcj#@V=Z?lUBDaXe$d@MJmyJCgn)j49#T4bOm9oleTteJ0l0tDOWVN9qLk%mu7bv z?*g3z3wn|{GS8|go_|9rT;;us4cX0Fx+T$fHiqkrS6G%q9oid(j>6%we zcbm-T)f5=?MagZMOI%Ern$Z!g-G-LvjQXI(=|U?zvCpcj8Anc0ECJ=wBu?@T&DiJP zjZQkb?9QD~^XZ$jS?@pv+{<@WWwtg(?oCWzBz*n(-e*3F zG7yO4^d_Y@c4SkdJKr0Yb)^#;mty)k=vUE|=PFuK6l|_jY>v)NX{TdHQj%ASLbYmH zGMY5ZXOqX(=lH!I*XAE{!|vm++x&Mn&reU!oVsx%J#LDNF3*p}TX z)7RvB-i;U?FaZh?hJ`1NhaXP{6X$nfra4BsLU7BZMPbzm!#>VsbL^X$;`%=m)8p&! zaQshYCUx_rq{PUdcQ~BdtZpon)|rWkqAQWQ=*(r(GW5#pElPD;KIfaRe`@@HD~%L~biM^8DxOP?Xeo4O zrfp3o#qnl_It=H}sVP`*1nHK*vfRyUnNKjhtqwE^Ew7t2QXX1_=?l#PuPLIBEy2QT z%vC8HOqujbOh)=6Dbz8d%xTyV27MA%WteC(ve_>U%8jcsMxx7L%%COcVBMu!7S1(l zEHvFXtr90mqdI7{G`!`rQhB;GPEArObJ&uxHA+XG;W=q!=d_gbqFmXX8W|5#an_8D zu{1`fJ&YzcCN4^H6Qe}yj?3nlp*Kbvtykx6l;+<|${Stwax1#(E202ahJy7~Jk*|l zKhW2}^*Q>Yy&pNja?0}6OzNcP=rW^uslCb7DU~WKB}8p9VbgMyHi(V$2-1v=8ga7D z9=1{m(+jUYjK9R6pn42z6{4Z)1Ip> zE=uyVlcrS~#+cnkxRX~z>6~Y8Y#)>CG>op$Yeb6Z%0SkF4RZ%23FT%do`Y+bYI9tD z4Z_a)2<%RX0Rn}&9H@~5pDpi&2ntc=n_^yXiU`#DVe<)6QDt$L^=}EK`SJ5V_M`?=^>ij zg`zq385&N8W{8~kMmABMP-N|x=|Pp;lN#9wVor?Np^2zuZi&xJF?NcYMsBFg)jR9k&nYsv7W^<|{tRieApv<;sJqcX$>PgA!lBI&u zU8~W2b0UbdUYZh zOL_>r?N>TRkuA=(bd_)SB~R}E0FD7fjRRC500A)!5HJx)Km$xe1Pm1+0}wF{3_#Gt z3{8PFgcKyu6(cG@5Csx2OaW2^0|Ws?l!Z+a(;T!6KvD-R028PhU;qk%3<+#bXiAW& z0&FCt3Xp&R28IB~6ofECK+_ROOaT@^SpdLbhJm0}G$F}SF#`o~Fa!WMBUFUi9F$2? zQeiCsRE-P~WTp&2i;)Zv*(D)5kXHayfY33B0RRjH3`HOSMIZn}WQ+j=b3~OROaWO9 zFc?VCHiR%51T+8vNJ9rS5&^#4`||~v6(ZG}Q?&uR)<-(iN1Er-+`P17SZX&p z*tGD~xm@~;cCU-zeP_yiH`3;`pNINv>ax}@UUrJMsW`T}>6M15%-5p1XhACHYW>v< z_g}}FU?3dT2_T|Dk_@Qt{oecC+Hi4iesvNl~HXs3#6qytN)RcxH zP>Mj%G=hYIQYuvfxhCa1l0WfiB0ThH%R3XSx z1m=K2Niw2>MMFfDQpDvK)6da|Luqn#F)b(z(y0rl9U`Y40UbG9xz5xEH)EV`*r|G{ zIX7VGY8G7kb9w#evE=-weZ2nw&%do1X&CFS8x@XvZ>0-GC{DDlQ>5<^H$4?hCHDw_ zz5Y0W7_=caNH7%=)dbXxOc1~T1_@CuQ6(`*156OWXhk7XViglo!8S<20~NqjutP%{ z07F191lT1=O$8-H)Ugc>3`3#@3?!hCZ2+iBkeC4Eq?oE$fr6w7f&dz#MinC_lO>Ev zfS4+pC5)B;m?|U+08C1PMgnMRpIvOtxB%YH6b;w4${6Hzww?HlW3P+h?>@vBsM#&f_NX^m*NS9CyWR!$yBAX29Q0Br5LTQn8Mk_{U>Pe;& zQW2sdv?7940XrinNI^u)qFn-;kZlQT0JM=!Q7VBd32hNp306f8g*s+1WVX!8qE#Sh z5HT^1TpCKy$nrP1DlS3i4XH`aY zsESr*sghh1O$x3ART+#Cq>?ry=!#T8!Nt*ms7njmyasv>HL9TMiqDva0)fRjW)bY_|Xpw>+E)wNxTrL6&#MGo+R zS_X|OUSXt%K8lkEHP5Jt+dZLI4^zuU5y@J|r{`ynRC8)-rS~LhmU$9t_dv z2S##@D>*kf)_-NDUg$0%0`m35q3&O>S9Bg-t99z)uZFE|TK2h|)1S zd3rJ+K4a>9pU(cX&Wb-D{RUGstSX(US?ej8YoarB^kq7mQ|udG(I1T_!7G8b%-F(R z5-^J>%&7)h1t6BiI!FzWX(Uq6%}@#11tBUzbp<98P$n`82`Wb1fWZ_Hw2&+!bbu~E zrb5z0G!vsBVI?vO0$U=g1~8g%17cJOXo#Xj>?Br7Y>}}oa}uf`(m(+EOMNS=~IR!t03q9L>=K?MZR66hsd4LdTXgvud+n`EsdiYQ9t zm8_Di5pW8DD?$cKY|g0(QYF(MpqrE@bY`st+=SQ>Y|fYpfg?jTNEHNDk|u&$vO>se ziI<@Y*_&*KNF!8Av?WZZ!`_mdZk;MF5gJqO6))(| z#+2J6T_-xyh*lAwM46f*8>2P6ncI;X<~g7zND-`)HD)(KCfS*r+0JR0=8>D|%+B>j zbFwm4%&%&PFn z0-dk}X)`p;7V>0m1jj=#I$+GzoY&Eroa%|4kppBKvzWb%G}o9$*_rILFu_1I~DAtVCAz4O7 zsLg3cbTca3GFG7~nSB1DcYmvjS;?^Bp_>%9AeBrg_jh%-rL$@3>g}z-)Um`l+ zC7mZ79hhPrI&mYh@jErVWa+MDM#dF)Okz>hgfg|`R%_AAQtHQ^>gjx;(D>--Si#j9 z#JcN@hgJ$K(xOdt=c7Xa+W73#PFgoPsNV6KtE+|%ow;*5cj1H3%NaWJ!J82<+~#uV z&L+;O=PK!3?pnzb>3n5fD+!lPVpYDJQ7+ZTM@hw`x@(OcnRDE_Uly>~!Vc4mXlVH= z&Z7+K>CZCGnaeY?I8=1=nAzEUN*x!03UIF5UNWwoIhms7aMrR{ck}a2T~D4Y>{u0c zPcCO;=MC?kO&>K`&~mtSPc5Ajg-cC2DA_}!r%yf0cZO#7j&^m=v%rS&nmaS)(po%b9TkpuXp-ogNCqi@Y9*5G1ktW(vX++AfGaH` z#>JJI3q^GDPdxRU?>Oo>q2cQh%cC2}eP2V~6z zx{;+rKnZ|QLjqk$HvrorfEdimvofG%NHhga6HWkVXk&{(HpnRgV1~#jCX*1^4TF}+ zE=0yi&?bS@jZ}>=R3KL%sQ@u5K#L@sBw$TQ)gc>XH9;jZ7zF77Q$j_F43?;pq+rC0 zB7`E5Gys@QO$w3|Xll_T000IhNSY8Z5kVSAB% z6iOHuB2I~$kfet-L@JQ9$f1Z-OQdH-M56PU+J(>%_Mj(Q65Z+wvb?cvn@v_qkZPqY z5*tq)0V_d{k-x+TadgU4x}!|*MKwJyvJ3u^{9Y9T z8ziuV!Iy~X*%|caEcb$Gz$-#}NVBFX)sUT$8U}6XXHJY;2bQRCw=-oDn=>km>1t%e zMQJ3uK!z#V8B^HGc7kmLJCbKsMAISANWxmO9*9}n9$Exd$foGc(i4GZs^FS zC01sxjBI9O1S=-40bLO;h%|u|67-Wbt1@~bbec0-Ni305W6NnCbi}}h^e}p(Cg_ra zDQaU=p$3#-#tTMbTP8*pBRbKTo8%GGfZQ^a&`#Kmx-)t}fE>1GRLGrBOS2oO5};|> zlhR0Z%&mrWP?JGpGI|DYNG8=7mJw8gI|Mr-HDa4ab#`G)Af!09DXTM7%<7RXvQ?rk zoTq$*i~5+zzu3Zwx^LnJ1K#Y-SK=Qilc)`l-!g4B_v zNtcQAIQ*Bn^NQ#2f778eS%t1URp(c%eXe~|{U`XpIkU1NnA6UN_RPmuMiZvDW?fOu zuDIMr$j!Y>9Wo~MqcvRzBD=bC>cWY;gF4nOnbTS^9;P#5(Ju2v%>8qACER7Y>i`OvAqRvCR8E2nHaF?NWH(H#_qY@6Nghy6&V{>;r zdQ}){wnSG>BFCysU4|NH9Qsa|EV>;TEdvcUXB}&$oaW_N)N6K6XfUmrBZ?zNU6!aK z$u-Rb&utD}G`cg!x=b?Yqn`E5iR!?4?95)WC8INq^Ci$@qnnf4BBAR?GuKIAws7ZN zQFb~}L{%dz+c6ttWjz^P7p>9Ew9@RF)WvU+m1`B25ooHNsKRbLs4;5{muMO*Ei&*3 zs2Y&vz-W-tg$S*h35R?0dD=zqgpszCVV`y~%A2xt>veN3zG!*>06+GA7v_IyvD5PP;=JOMC-B5R|V(3WUh&aHk}r5KCI<0YzaCf$3DEr z9T=Ie=NI$0)y+7!dme862*Bt@OMHoryi9Mu2y(s2VI4c1Gu?>FgO<8k532}bt4TuD z9GzFBIW)dmYmZYoI&U#y=wl9DccYHAB`|D8ThR{&Tq@2yk?5M;!VY9NQ--%dVl#9V$vR={P57CtF4t^jU>;5aQ{!a__Vp$3mAb{T#-) zb!KOq*v>ooA(eHhb5}-0R9VNbMVVozNyF1vnLf618&G3?2Q2ROwB?;B=jf|Abkm^W*FfdEu+G^knK|z!Q`ecxUF_$}qgZmSahAE> z=P7!aW7ZSTzNa4Loca0;^K@Hw|CS?AMrw>CX-YT?lJIXOG{ zdZ8iqDc94;7i_2PSO!^Gk1qx zaZGLMe1Dtz2gQCh`Y#%B@n21qx6x11C=9T+$ zY}3_zX-`HtwmN5>9lW^)ofz|*bosF_LvJvLr(SKHIdjq7Tv?s(jU5%qk=fDbv(Uqu z4^Nu_*Iqh0W1f!5=fw15m9M`~m$I7c%bDGuAavIp%h|(|D&MoCgDIz^yr!Q0yzEiv zYv+fh%g1M+aa#S^akV`hIYsum^B$FON!70%9o(2B(!-wN)0Z5})6bP1SHY>$@Z&u_ z{F*oE;FHjf0$sZK^$ydIGt}q6U$1SE1w)e$70~M^3y>Yo@$99sVWf)l`G7fU4=K6&fTl*2y^!?Wb>rtf6OxZZJ~)SNe7a|^#qs^8 z$o?bxUQtu?zQ@-^uj!w~#ZolcETRfULjqkA#wnmoWIZHFvPwc!$#lpZjZ!3ZNWnIQ zzy=RJ12Vx&vR04)4lYJ80RqtyP(z@WkQ5T!gKUOb1tATJEEOO_MAJipfiRNU3s@!T zB&xCi5ZHyG13*oZw31yhAr&=5%^}MGV4AZtOvQHqhD``XS(}?6Y>|RhWX`z-2%5MA zGHUY`v;zrFh-!quO~?!oATKeoi8?c;64emx2&79^MIclGE{U5$EG0T3=FF;*B_M7_ zsRV17$0J}Vv@^p%jGJNaT7$5Hc%B7cX4$@A8Z2etYom z)Be5E{qORe=t82*%|M!?CL(R>a~jctu$`}*bsHHiAXCu>bkSK|naCDEql19wlh)YCg zH)d|+htrG`@KOR6(fLKKqe0=h8KSrw#^gcLF+wlS&DjTM+tW=BjJI;Y7gv}Sgh4bhpSCq1A|Q8qFq(HDH>yJSs-r$#zjGo}+7$yw_m zNEBE&)e_c*HLgYFY?=`!vSzxV#+xy{AeQLLtr0g>n5{FkCB8y7f@0{AuSX!M(tr|Z zs#;iqqR~=1${3UdsuZCHkIdgPoFb|O-I&`9%|kOvFZqg+R22v;ASJLBMqy=v4P*=C1JvONbN2+Y*ecTymRf`!p)OencJPF%f?T_S z==mWNU4b#k!co!?$O$cgQV}b>D;&H5W}P7{;32Gph7>J;IKs}10!K(3`+=TdYanT` z6M#{27Zwy@uwBjA5a!q_%nQ9wFeuRll|fcOT{{I)fJ=NrT@(~7Le97fr!X?;3$yD8 za6n6=AflLE(SSp@kRZT=%r1HX$+$t{5`92mfjwN|5nRA;ph3u3`2roA1zh@su&}Y> z2K?a;t%9fIgu5^cGTaF33QklOgCK+4A)hc=+0GSQ1>52jRRpo=1D|l0EzN~cH|Xhhz-EQNV=iuq^*PXr< zZ;NN*_w7@=Cd~F5$dAkXp5K2Hu$SaJGOpVw{X94x$2@(I6Xvy6vp@2q8>ukFYAIzBA@qyFMS2Co4&CwzUZ=tl;R>=Fny_;$(KCdAm= zP`VLArGI>_+#rWqh>cF;nWZOw;F5_o5ksYaeyzDGq%i32R^4svUQats=Mp(@-kbMZ z94Iu^Z`j^h?NejT=W{zTCJ?aa77YCDkBZ;rJ{&H)T3H@Vy3(}PSlf|1OwERAM-G+w zZvOzZP{PRDt+_jc?Qu3f*OE#&T|a*~FuLm7or%3CnKYiFj$(I{ZdoktG+GWqT;d}y z?}Bz{jEyCg+DconO^-G$JB-_wP9UYE`<}CjH7CNeEdJ+kQR8t2A9f7yxoKoY6?=k9 zBgvS&nocm}XwiQBz?u?GCoeUs?RoXu_1kG%W0u&nL8p1D%JSl)qyGFQRivA3xhAEO zX?diwgA9_fiNz=EGCZ>@>{Ov|-+mS4ZHrN#W(!X;Lla5hS=vi^<8oAaP|VW%yhzca z{kFfw+=e(}vcF@(Ph)OnkBj>}L{p7|z7niL(-mZO$d1_GbS8De*Yz z2UQ}CW4yS2ko1e|*g@`~^HR$sQ!-K9@smvi`^m~q<~F;DX}s;R{ENwNB$ecn@gleH zR9tvr>PN80@Cy3+8IZDEpKGU?dRB_lv9=l(2 z?7r8N&2GQEvGEcMk?~@Wv_)m1!}OQ;<-tdc$&pfDa}se>vKB)lG4>hdp2;^TlD^c~ zqRY;BozRco{mOpw>__Q8)AcXg!NrOT9*xI_HLtTLX)liKltU$l5NW)yT3H%xC6e}; z?3j-K0K8H0p@XWC@gk48@ck!=!n9vfAO8R#jaX_!>AWtfon zCvyFhN;R+U^{z+hKhi3?*S`8EAJxUBebxJIeXcI#w$?M+ru*!V-ucnKX^+woJ=%*B z#eaZ$AEbK3(!TNwCzfTB>ot?@dHMEN>=%4j?PB7?5BwkbT%kYmV(2HObA(PjE0z=E z7Wun9!Fxw!7t&!&IG<^bucVe0X8CREvoee*#5VRnq4Ji|gQg_A2GlrbvBJ|jw*@xAEY8$q+DpC>G1ymNA!i@uQ+)e zE-V~W_GZ1pD6}Kl5R22lrV=ko;zjzK!)FVMyeOSK$RbGL)emrqeU8J4#?xz&M6oS< zXku7ahYO9bqWpT@$JWA`aeX79>*76he9v1KGuFk-_3;VEUP5u95+}FppAXX`gWmRz zAErYZ*Vyhplg9Onr9IvJE;8^|pF@YlP9!d!zY^Oc;==&Ec$cB;0Y?>qTUfMX)1bB`&q{YRhq3n2kMd3u~ zLl(4nZQDk*79@t`UX%SOFCHc7-S|9L_G0)lduR=dgiG9>!DB_KMrGC$W$6gBahmj0P8ai9G;_-BNix#D? zdf@SOdn4?$KpqLyWa=WV&Ky7@*?!* z{V=f!KXiCeYlGvQSlwIT z5Uc*^dOS@VbNJkGX-|N_tiQSmMSqR)BG$hET3lW)BY_^cI;ZZ30bhslnBrvb>k|=i zC&7zEeJ%T;=*v}4jPX_1xZAW?m|icI?hIPs>++&}yw&f#HU9wiL-C6zd{~hPqgCuZ z8ZT|R{Jg!b_9w+(;gGAspBLj&9`vfh@gCihD+sQS@{>*Wq@TaqSM5{2<9>TvcMNRw zb@m&$x52op?RP}kVR(|Z~Mw{f;|V zHGBybtK4FV669QdLdLOYY&>X_sSIfyyXShTLPZN5`s2iUT- z{5HF;#@O2~e+D>-ply*JgWQXc9 zQ2r?;GAPb_lE9Q%Fp#>IALv+B$j*5el1}B9nfRT>M!Ej1nUwdhCZUn(EHQCWr7GvP5(fshWstEtCCmq@p2VrDEMjE?&e*TZ<-> zO2yTTmQiXdO&RJXe}N@xkLF~&lzN!^jXxsQld_=l$@vz89K@=PCoH3(ag0f%l{3y- zg`yWOh6YI_E~kOPjnT8%@i>@H$;Xom&_W3GMx49P5q*x}?0d*F88Rv&DRSd-K{*NS zf0M>c<4HxG%RlaUDc(q;jD95EVkKwL`|=hRLJ@D!$62k90T6PGT>Fm2gggtN zrPU>KB36S5MJ#amn*4Xi8}D()c9)#K%6W*X2=x%*MXC?Cc;e%?enS}i6qb^STn_dx zQX!6#(qK^qOo}Z_ilW|lFmRXK`7O3uy$DW&c@0sia>!En8|qw7xXdT~jb5ehbTU?> zHb->mGZla2=v>H*rID0sbmu)ZFg1OVKOz?zu258ArOkwg?j>$6NN#f$vdLQg43-zC znA1wcKRXQV%xPIA{{TZ&>no)M{{U3`oQ_6n!lMf&b?_1zkcf`75miesWmFl_@-2+G^`N}W7@F3zYSvm_OM~={afYE|`IeiH z_ZyU!A|5R&BuKMfCn}1nv((algP8n?oR88kG%;y1sM@kE)A$?Au@Sz@cNUZuzrd+3azt@@DQ^*f{)dxbQs4Zg3K$q+k(^o}tK@=EPNsR9f9yqZ z1pffp3&bzcOmh~)(ugCwjrB4zWqil~08ss8HBpdWr|BAp;6=!Z&|5Inxp$S$hl%4; z6u7JO9D3GG?3$eN5~g~}{{Z8efyL)xiwJ|4F1-$nT?l@{8L=1IOy{einhIpFlrSZS z!OBb`QF#is=zd14VDe!)iS{AMW5E0t>Lfow>rO;g7U&`%#24s7l`Y~bx%VQ;3=iOb z1*yptve<^?BtG%^6lYFme}V{lmg+CwR=|kjU2>gFki_Wy-BzpGtvZ+UIyk>U-lEY+ zsAH*%OEeW2QsNjAszs#}Wz=66ELeILKSwStKrpguFzDsJBu12(;-Y z8jM7PJi6akKicc zGbqMsVVGtS24d_#(Ty%FBeaqiGXDTUtiv8cu(d2CBuQ$IZelMnt3oTyFX1d4hKl59 zlpKM6gA3AL>i+=jGp{ka3;c*B7NY(P2@@feEzrY=kK!s+(@A|#uZb0}C)MFE$cU{r zPD1@eq_9yCdW}<-3YHs?snEfRGkHnKt|f$}20VtKsY23XiQpp1uOzCuk*dDPrYJI( zD1)3Rs@>WpWbGALNSdTbC65!vhD3&k;mpZ~YzaYXokXJ$Ak-8@a;#m&b`rwhuR~YR z{URX?xXY1jGoiw_bHKc0PN%M4={Jj1UjrhoM}HBR_fI0t)T&7- zlIkkdN|8jR@HU=9G7ga^BLl0AQ5g_t@;=^1da_HjHOJc}1f5A+eT~KuK zE+q!Qm*z24L+(O|jHX3Vo~J~(?xmAfL`OpS7KgejJzTX*v1<%1kk#}UXR!^K(#266 zy+~*;Q}9-Wkk!ouM(`QdR1tDLFHt^S9*7ipkJr zFZ`a-_%N#F`jDWk+|YJK$%4tub>%@Iba4^n)f1(Me7J~PsI)fS2}2XpTQZ7+po=rlo;OZyA_mt`P z8%cCD*RD$sUSd-x3*YWatb|c4ccEg#d64vo;c<1-KNeJBZQwFwVVrd4HAS%egsRa8 ztx`(Nc+_t(s$f;62CE95%UH*Nl@IEW)3kt}B9O66E_QLHuPZxNNsSYCD$sKV8G z6f*8`}HS!BYd1?Dpi<}GkTPx>+{x*i68=0y653o45b z)I|RPv5^(O=u~$>>VtB;nUJ!PbTT3`*`$d=nfi_*weC?AUZ^FDc#3fS-s{D`WrElt zp=*lE;9QOn5;A$6rtW*Db|4Jc`#ls)HT z1F)8JALP0WGkA)>`ib@!MDp-1Ty|0$82gu@;xkGbWYXe)tXxj2XPBQ-(tk3_MO7g| z6UazKbw3BX#3Ci{B<5L9Art5+3?k#8m7t2sUGQb(&*C*ya-yS%mo+&Kexr4971U8a zgMZPH{=OwFUZ!?lA9T-ZG>$Pvr6yd=Cj}v0)X4Z{*~8IP$T` ziD}ekpv=NpYVsSX@6ds3-D3Bbu}X__$IznGz^uaDM^%%wkW}a=GpT&w)qEJSWkKCc z7EVI03{+I8h{emK*A84}Q5CQ&Ixz>joxxR*<|VvE!`NEXVj3u<5i*HXe}*p>6v)1j z(Ek9)Q`f|L_>W%^>-rG!A&VltIS)xK3cs|J6 za{mDQNKkVY8kO@FiAzkq2{@Z+)IZ#}LpM71sIA(F*kUKNltIu~8#*OzTD63<(rV}^ zZOYVENrWZ{p{P)F+9IJ!m#8HOVwo;vbQ(<*on}f_!;(6}%c;I8{Gc5Ui-Slk-=dA|O$esA$4;?KJ4$h)YO+yQ$nnTX{X0e{to2G4Kn(a7XH^Nu0#>)!Rx zpbXR=qlY)$)c^Q<&r75Ai{AREvp2LB=| z=wSpl)fi{J-dzw`VRAWBc^=~6c=WBQg`9L++4{6LSnpmp$|wD;*YU4#C5kub&x9z+ zRakCz&OZ=CT3GehJj*wnljovOph~m-=LW`yLwb-*-9Qg@ChRaVubW{j27GBIFNeX- z{N!@8FK!6Q+!a~+>OH0X4STb4{twA-nmM^Ptq+fQG}I|0OP^7cIPDS#W?n~6n9ry8 z@`r)n-R)54n}?%Av~9waUh<-ah$Ph$g(T=k^m zc|FKyOugaYokg>D4_5UT)yAH!xLOWu@^c=7=uTtoI^@8w@!B%WvG|gE^hnK%lb0K@ zSx;c+z3d|W4`}TP=~41Gqz^bMs?$+g4+!YFXssEi$>qbR3OZz2l0M-)P{?gQ#vIN&g{AUB0Fyd79Nv0d%HNRMcHzFU*?5&hP$~nf&7of zn(~^K%8gBx0htH!_#fiKJ(Ov-@4fIRKYC}e@xhkW!bR#d(HIIUVneB~iFnuvh zxnTO_`q0imZ>#&mMPT;+qGozmv^4tO(-+SQ-gsm^j_H4Pe`sg`{Y$1Zeb!$2x1*K? z+xK1fnE_+VHt-KKaf?DPIl>N&(o8cRme>KTsT5^yOEAw!-Q(WBIp z-UP+S7uoIoFETM5`H~oGld?Tj&zd*GjGhy@i0bP)#p-71f5foWPrPbVS6kPyaw=+e zu~Mcz-9nZHebDa%)hMr4(@YQVf1dW6<(v3@sYt*}3V)@cQz8G@&UX)|VlTUL(iCA4 zec{@FAz!eHdDUa=M02KU($4AO$573FFQ|$d=XGnRaTXmF(^_J7Vc<^dBfCq?&8&TaJfT{EG>CkYgTfMPZCm>IW+n(BX^Jj%b@@cJbs zzvNjS+*{8MZSS|G_#n8N@DQr%7d?Nbcjkkb+-2bWXxMeJS#f z!ZUkU&FG(`r|G}yvW7NQGEF?pPoDE0yI``ILaxb+WgY6S*!6a73B>7mZQ^m+W9oeR zVWHw5p}T2gucW{NJKieSB+LiZd^b0JVsF8R*HQAk8ij8qS)>q$R#;D?4@E zW`%)G+Ij!})dOC;jxcPE|FJJU5Z#b<;@O^d(^$-KU{>(GuMThgPYjnv7v>qY1JYjm zLMX(t&VK-L?@mGJ-L(U!Kw^-&xMp_h@Ksg;^E^s(kngT@VE9gNQzXJiJ;f4oUwNn; zsZ3fuB0${Z4_phPzoJ?o8_fA--473_2G6zs@l1L=_3l4MGNEyqe_Q2Rw|q2d_*7em ziR7~WL}_=?OgZ=Zf@%)XtCL)*$HSj%ADD5%w}Jh%J=PdjmVpknj6QPSm5FKdM;VPz z(!_s`45e$duJHe`z4<7L6O~(Yl!`=SZz=6bEI%2w90|ROvWxo7z&3APAq_U&Z;el? z<1uLaGXGo`o5JC@kbYZ8whYSHwa(N%u`283yO5Mu-Vh+gRZO{!lWk7nzTZk_qUO_^ zpfS3CE5SHM}_*zEnH_>ii#Z?-%2* z0jKf5(M#z;-AJDbHHF%$_#+uhec$Ly#Y0|@NGLtdqb?Wn)n2vswe)=Rz!0|wX#w%i z#d!Z#XlJ10_pU+-srho3dbr*B<{tdT+|vP5hbN0F14>FldWP=3el}!3+04Wvp?kIfH)g#C;`l3?ed}=@Qsc0w6Il^NIRMJF4er<9|7p*?j@X zzrt*xH%h#kUOCh3uALM{Eu*93_daLFyzgGM@cQZ6E-Ago-|oVrJ1E%UOsM~8uZLj~ z+d>Oe9^!YiEf!4|pk^~EFrC6vILDY}WOTA|>dZOL;Gf6i60PHVDe5^tC$b0QA(bvF zYO3w8U)^bbB8u#*rPGJ$XszJ(4{rbY$tEacd0{gzuVer7&5JUk?%#Zqw4v^> zzox$0UXZl5^%?%QdfNZl=O^6f6U}J?rxy#8XqUSLr`%kzC+~Y`!e6K8$=ddA#@7wC8{}f`aiPCzGarltesn&7%(+e%VXOOWKd48vnT)u_B z@mxOdd83lwQre(tbBRNe^bDIlg5+$RzPv@2K1<#^`QlMjswmZ1yOR+1@o90Jud1j)RWYwS8g_;F_A92>B%MK_!x#$eH!VU)xQZ9g&ih? zXyLi8q3@6d8cKTxDwh!Nh#<`s%ajDEhs&Jy1`HMQvND}>ps*uuL+>PZdq~S{i_x3c zDU7PwoT+LdeW=1C&;1?86wT$~FMVGFqQ>kvS>G%A{tsk(=+YL$r|NLDQhQF5Uwf4RH`{v{KkBYUuK@XBy|?Boz7f#$@mv3igj@@EvN00hDU9H z&^n)f6W)C6C|wF4y_BT5`V#)AiAtS>zF}auUzFjUqF9$ZU+D%uGri%fpL9Z!?+jc^ z1cBH8evst5KKa>s>8+FgnN-Tw*DLE z+3Nm=|I=-ON5B4mZ3A5k{Qj#iwg84l0BQi8e7FmYzrf_6|764lhCIzA39&hLfcE(&XgpOOK&n zwab%-qucA?5v_g0BOB!xjlM><9ll8wp806&xslY#=#$zxVd+bkCT*WQV7JYNRY0dO zFDlV`7x6F3Dp;3#|N8apu(3iJLoXWN`uNF-=GRDDTHAx0C7Ksn|LyF5Lbw3c4S+mu zarqi?b9O4}FI&=#=j))J<&K=fYY+2{1CTjVtJ*71LT?V?<3QyEm)a(npODV5cF-~j ze85(y=(Fa`8rKDywnYVmUr6=axXM@Sb6e{D8h(jn5fY{wru#hoEj{F#Xd?bn?_=Y3 z`h}=4Ylz1+`F;!2zZLWb{qmEl@@EOVKD1iJU4l*>U`OxqdXlz0=T>v|ueQIk`wE#1 zr`DDs?CP%@`lV$^rSC5WM_h|ykx5abP@6LfS8#vR-boEL-J*dK?7AWjOalZx->i`)W2=UVBy>p47o1&f)nNwUh8!*Cq zG4uKb#@CP@n`-pCUjn%ybN2C#AMOzv41zKy~HkA&VjJYx|D+?^5Y) z8TMLok}n+e&1)TX?W@+>cd=ZjaQ}A@=r56HH*>O;p6z6=!5*H{(hex zo6u_@oOEV$_RNE^S=%Jd!;??x?UH5nK$xE-7C(!fgGc@qG>E+)S917%^sZeu@{Fw^ zzV;R`{ac$ORZ^nunoA3n!#i#j{23egX4xhj1sP@6ie`FSpbVcGht`g@GQR=LqSjGm zM>tD4hLF|RE5w!@iHTl-NjD68nKQF-kqs?pDq`+7UuYs`F#K~4@gr?dLeTaV~tk&oVveamV2H88d&oUKc}x&Q3`^e<%spQl|wNnm)o0_4EE zi;f+Qb?oRQRKvFlpvT{iMK%D^X3ja3?!Oi_XH9!wdblvjZkLKeYPriwF zybAmR&(?MS-=|-IB4J*rrfOgy6JtTffy96Q>!hq8JU%+YE5hr{f2{yhszEorn*-YT zZvYMdTS5@`2pCH&K#Sv(Z!XTqAB*z<2;$R%Zg?Adg8ko z@cjteHeg2okqFf=0sOs*SGNb|+Sb)DG4?LL`j0wxf7-u~sXknQBHSE+TJJ6rqJMK7 z1BU+QzY>nL8yB`1Jf$Byun(0s$Nv7CdvL1!$z@@k2=*81)%+G$`Fob|vcM%KXu{zB zbBC{`!kdE0r^&5TTv2D+R6_5Jsfo{>cj^m+Zu+nNpkmNNtY@r!PJ%<9=$cZWr{Fu^HKm$&YYh)#0b`aINMpvVEVy-%CiHSK78 zoRQ{d`4R*eKKkiKRJU#vBz8a3X~i+)kkD;bck%RA)$2@lT!-rOkLl-=zMH&S?9Axg zJ)bMh80h+WU)iEvwmUuP*1}Y5Hsb=&MtE$?in(`|k0Bk3pt2)~=p*wR48(`L&Vizp z;4M9l@zy}mj~%8Nd-%c{=&9_0yJ?3?)9G1DymS4l{M(y4Rhj?NOj%gs3I1Os8^oxZ za`@`UO&v{C@bsF&#gXhisoHZ<+q4gebDT)1OsKK$eN2xu(CAD*WeH`I$Yq{p~F)GeG*mwH<&D?_5 z**4HHHU0NRLC1TxK*YQ@*x~5as}`H()}AM>#=p;FM;th&3mecboGh6B?w%RlzX{*2 zV>(GgOT?D)hS$curNb)M&&}4?yBt9)i9k}1E(XDRMVl%uV>7P z*SauaDPXm8+duag+NWr_8+Qs-Co4FR(g<*(@DknnZDQNt7X6xHinsef8!Bf10tVSB zRPTh$oNVFRd{^K6Xh=9eW!U-Zk%+A@sKwdbJJ5#Ss?=Hohi)wvbg?MKa@F*AxL-MJE`?)qZ~_{tD`DE*evqT`;e!nDQYYjZUQMO9ck zQ4ZcuU3!tg8e7Z_xv+-ig3wR_JIwH1sH*Q$!WwKaKsv#GE{^iIEc;S@;;qbSU01gY zk2To<8BQ|YKQ{>@LL#?=zqsEr`gpUy3OtjyH-@x5zkVQK`*_#MGip{ZZ*PFkfKPcL z=6u@y4G2GtHaD%pOx7)liRp^vTSaCnc4r(yZorK*DAv?vj+{BFlv^&gIlWo1w|tYa z#q{Z)IC*WMpXiJ3Qb$02_7eASzttXG|BLK_mlGx0FjK=xQ| z=g_7S_{1+ITLxFdi`*`xNCGB{Sh0TF-dJmq`A5v>k|mFH)O0GnGY6LpOEp-S-XtAR z+rNS!#GKDfuYN-uS2Gcj_*<%Mr7>ZS;LiI>AWobws#I*7)&0W zfDU)r^|CihZ_$*t2zET>g6TJDDen9u8;o^Z7%BKG+MGC!N6&5+il)O4YB;2K&-q4e z;z(N_?CD6m{UE{1y%bl`-t?Xpkhy7T+{n_UA3IRUXCS{qw8c+mRVz;-c5U6pR;w?< z+6HJb=$l34sxI{*aY@XHBKzmyjgMmg!XtX?`?BJfLXHWzcG})Xv7I|TYa(nS)?t_` zQRE8(@!F~@tx{#33;_7CCGUlbodb)v_tJhA>|Hx1*d8w@rRa|cJe(^_fy3)5)-SV5}r5@T>yK-rDm-|ez!KDVdMwPG8|+$^G; z+v5TisB9R!^+r?R16BNKM?3sDJ$gE7V$uDJcuy8e7}}Yp=EQQJt|*87YjEec?(P2l zGM_9~kYH=AbHZS2V06#BKpAdZD9V_5vW2yS+^x{K%^EVE%f{!@tES5xOiVk>gD7-T z_NE&BnR(y}QEfV6g}FGLQLmULP}^CAusq)@>7*U9j z+>Y(b3ClbqE;kKN;0o-xDMDj@yBv;AL`T#nObc24J9qc^#^`+(BZwGzfYH=93@>ePLubdmHN3`q@U)vw}2TpVY-egh`0Ea2CL z%jU=*r(X#V@*3T5O{@xv$n??%=2B3~8F8WEC$&9nT@&R-OEm@L(>2h329WCvM&Krg z?E}`QH%FiwH8`+{VkP!+s0>>X$a=-ZxX_Fekx`Yw=CRUPYS69hTkdcBuN&B>1N9PN z_UScvrpcBr7CzA8v%PtNrVycNZkfJ2N_*4l3W^Kn(GzdPlZ_Nrw&}sIv7?}zTA1CX zJJwyG(=fCJ-=4OUK?rm4H~V> ztHn3-x>#A&aoC%0;Vpyh6c*$Sf0{F1 zli~o#60p5{F{0{a~d7NCnAU-RGYCBZa1Mj zIwoaD1t(@*$Qyq;{pc{hPC6b(bmVC-rFV}l^@T~Y3n8M(x;5zpD7VX2aD18fw3iU~ z9dcd{W4!=T^|Vy>Z^=_)sd^5{_*!I?PT&T7au_XY-F8 zAL9p}j}y_V36+DGUadtZ`pk`kyE6ou$vEi)6L2*u;DN(wF|{E1+Cn$SJu)3-T4^ z=yROJUKu#3pNB;FMY~w62H4r~s`^2rHfJQ*Aio$P4ihkdo|LXogq|b^j358Y zw030Z$Bw8W6C-#y&&y?#F_<>%J@svHDsJH6ip5r8Wp2@scmgE& zv14aUMQ+{5U~KLvU(NMWIT2Xb5*AIz+|QkE7h>0OErNCRdE?M0)RQV>q&yY zy07)M2SmI{PL8mEY^^3xlZ2BLGlPOXb;+;+26|I9A=_ujn!kk*&7}HpKgBe4spguv z_4eN)1h6B^523|b(|lSHN)fgJrg0`2?yjetxA*yeGbo|IXP9@j;Y9nWEnZ!XR{jxu z_jicu*Cyc6G0r}h)q}32>B(lilw_$5?g}Qad@gFQ44qrErfM6l-qe^6@<~V41PBAh z1cV7qVnXf!=aNh`Juwr%&^@{sW&!R#w#I}^S%S+;NhULmdX?!WvF$ZP6fuDkT=f9a z%kU6+1Cq%nYhZN#DuN@IqHk)pw+;q~%sCz*xcYuJ5s}NH)uE$4u>f^JDs2g1P3T!K zCc~;95HX7#Oc09e-l^EJZrIWi)th@?z_Jy_FCk6Xn|ClW|7-@5Q`&r17SjzjRI*-^ zaMoU%ZE6_}I`Ig>R9SVDUlD>IPhPVG;cq~eyLB`21!X3#M#KbW4oI{<7)TWw zxba<3ordi4S44BQ^(^tFbQ`4bh-H+VYn?Bj*vtR+Q8z9+-07>icxctZBb^NO$3*RY z^>CVm5jl0kEy*trY&$bm?`yGvOU6AJlPHDZYb3Inx28OMMWF)vy=tG(**lhXCQ{)nk7_1D*# zt;klyw{Nymk0V>oQHTU7%*Y#=-miJaQg%djzVYZLiH~`qENsdo2BqsG2t*VYzBNG7 z7;@OYj|>p%tm%w9&)tB_OSQi-;>l`pONXaZi6`ggC_eH|S|lX~07uA1WJLc_>#cG^ zXHslGme6)>q!!)yRg|1V!t}7Wk zPXRLJtgOZN8-X+NAOsaEb&PKF`FTj(J|*GUMeHrtD$I$e+DC`SeJc~krbsVF%-q5+ zWVfV8kppt)V&yFu#6Sl%NxdSSv6} z|BMTm7Y;(PZu5o00HF^hJ*s3z>Zh24p@6$WAfF5)e^V{uh<5!RX5ZU&M`Zce-roza zX7UFe0yNBM^t2%UP^D4+P~kdNv!i8${#I6pR)rbG4v7aNc8ZQhrEKXML8(`UoCFM< z-~P=4vh{R))fcP4qSJ9pMnHa*Y_;7ti_*`FG;j0w{_=3FIqR3UP;o7biS6vL33b(l zrU*qY7GHX66PAv`<&Vq2gPR0>A|-!NEEg&!!%F5OrYjxLjbLXVITIY1=DjAqCzamS z>UI$eWIpW=V6A|@lWK*`8t6i*UMPy>qzKcw@PRIloss^(OH=|IgvNFHiv`=gS>P%_ zZ!}g<#<5mVKO-j;GCFm(#n1O&u>5IeamNuCTmrv^x$l zlpbj}!zq2#=+sx*M6OgLx+O=b(dJ6c3S&o`8>D%KnOs=wP^C4gASfGijmK&qPxP?K zoeKsyWuuEDPpwxoUrsvoA;o88aQ5((N1Q{|=Y^L5Z27*R5L*)^jG-vsEwoGa(8sYT z2D*+S?LIk&xr>)&DZ@1pu5ip9JXm{Pv3Vd^nFEeaEp)BV!M`?R#QcM|lsf@AI9bCW-W7srCWkbKWg6iwtxKnv+sLe12RE?VmNg|BBMJ&nE2>+1H znLdhbD)CnAe&M2VEZKNZCFn%MxYOslkXZRi{N2J`g6&kADM*gb(}=1`pg0ZBQ3c!?u zNlEkJ2tp0E947R(a*)3^&FI+t9k$$t6gGm85KpuOOK4P6Z}$QT3W@j_nqo~-w~eK* z%L(5%Ov$<84rn0Z9QFDIuF)*eZQ$C)81DeA5uBLz)kuGFh$hyt5LMd|X+C9Zp`Ec|uxwocZQOcUjNqAd> z=&Hd)sE5g+dMslauID+PIqK;SG-3>dV`T1D)4M$#Qm-9RtR?llZC?K#X zEBG1?aDXNq%@OIUR{ER!jz)LYA>44xO5Br8UF*CO7c5Ob!j`537L*as(>o?i)5zN2 zG(+I&s9*}_bDoHmvIx%Q+mOX%Q)#C@W}9qj-*v9r0WbBTF1tN0!?py}q%m*z9cr}B z=j8+H_PS{eJ5IfH4)mqe84lS zY8o9}=HfWtg6QHLk#b$kmP7lPI!?U=XNhN58@_UzRcb)c?w-p%gmHvKumt~g4MJ;|p%*DOr|9c@Adg)O0Mhh|eZN+2_p*31llhxiswE*<}(n5QY9Fhka) zQ8razPkS8jxep4@&O#k9eK5y$FU}T*$FIR~w$L~U^Myh*g4_xDW)%m3DM)^dzYDDX zAXS#Y9NjkvRrBi6D&lcQ1W5|MO6eax6FvRM?pQ4%wq(a2ILLcIKg%B+O2I-s)Vg~P zj8`9_HCSigP_iIdDmN*1oBYJe@;B{JpJXl%fGF4v?U5l<|6FJs84E7a5D;3tn-rJX zG#*=K^wyOG2wCo*FUW#L)Z7Istr8#$IA;3PCE2-h%zWEP z8CTnMfz(ycT%QJXC`4wL^^7bKQ^< zNp>ZEJgFzNPspCEbY1|nQUSgSAEL#kgmuqmj||PRBMfN$SQ*v|b}B+?r%+Taa_o)H zABrh6Ej8KJ8X@B{R4T3f@pX={cx9IR*xhmsh2g?VOHCLY|G~SsXW-9D{}UG|%2V9L zWH<_Jr+3S>Xj>t>)ZR?v&Zl)~Ra2#a(IIje$Tw0z<68%d+pfQ&e>ZDa;}am6AN!>ZRkcv zsqKyxs)4=EHOeb-Qh=daSN3illd-jVGNeo)0<>0bATxF|rHB=jGTOL_h z=F8Db*maQFlIcmNHu&0fs}bi8j993S2N1r5ov-{M0Q%5d`+G-p4;y8{ooW6Om_e*~7y$9k*nb0fE&!HDDQrg)IxJ<+{wR@M}6o z<#$ZjDi?AOO~Ek3oS?OZ(dtl_Oz%aCXJUXon`X%q`Zs6hw8DJ@uoVqP1%G0wP!n|z|BS8w);Pl}LuQz}pR ziF>F!Uty+jAWskEySMxx8o=&zP49myXf#dZv91i+{@78&iCzuRIb24+5#bfnbMpW^ zV6mNV$WmHXEId8`gs0gK#H2eNE1DosTJQpQU-`uMqWt@Y625g`$kMiD2b6MFd2 zfl4z1G=IxQ5?!rHHurbxJ^zGP%v;v~LUx)Lv24)C>wA+FTcTVfX@49Nu{tUb%5!z} zku8|`tfeqo-1NeD(sxx-ewb~(>o4+gj$mC!M_i=>@nBs=KAq$&>G$s1 z#$>3xzX3Azj1cVY5!);swi6VEX^QL%2IjA#fRn^RY#kV1O%RG$`GPAigYEm{vjuj- zCf~&yNeF&ucbk=CKUOmY6!4_mqGF$*92}-A@z(y=SQgNUph3DF(j!2?!q3EG!kWC- z;iLa(YvxMMQEI$7&fc2n3o>uzsgHQ>4e_A2o0cZ7)7vfi(z*q8{f6~4JAp)#g(RO| z@pTcCXUB!{)QY0qo|U;gUoGA;@XjcQ?P*Ph6;?%&GSgWu_j(83H~N;E(S4_XeK%PT zDcL4RR6m;1{%#yt3<@>UDZHeb#kbv-(r)qXT;18npTuU3atGsDyO_DbOD;EaCI&d1 zqb3So?vtTuD*qTy@aspINXCtWfmasWg~x?NSP~biqt@L`j9)zs4-t=ZaTB^R(@non zL9k`q6gZGzCm^WtI5Tvpo9}wG+qDQZI;RfrA+Mo zr5V-an?_x?94w|xsjqm^l?sk7v7Xlf@>curJ0{cT5d%B*d)t8Oc`if4P zX@wD7BkbwD)^cN>%%5zU5lArtj@~!^>ZZkxX7asR=Q)F)2yFa>Ww4fpC%$k2L#v{W&P@dStJAAjL;gqH4wYLQ0!stWrGg`VI-Q4wI zB|P>KAHfy!Cp~c%kN0DT$cHN9NEQ{>H&)K4z?eSrr-PHEE+nwaI7xSd z$7lc8@w0$KHoJ40_-Aa@eL{U71-82KeMF%0nrKNGC%&PQil}AZaKak=#D2oAj#FC} zuMw)4vb6kut_3sWPBTT!>oK9sR)ONPnsWPfLGsd1=NGctF(P%lE8upPzstt5&~@Z^ z29>K}e{-ge=MbV9GS|82x-3kmlO+gJkAry(66l#y>6ZFHf~AMm0cZm}RBShh!2@8G zDLpEM3*%7r)H=`VxmXm)PdoMuSuR!`dO9|_CfV<}Zsh)#L98KGM?GTf&&_>@1)37W zpMLDP{_)e*^Ho0$TDo^du3P^tgp${|inpbA?si#uzABAMJUz7j^J?s|RhaFm{O!47 z=@}CkJ2NAF{G7}=#n|b6>E%t@X5np4z>-&qK?Q|c44Iy!s#FxU|JYII=LHuqEMOQP zfTvzJt0kN{k)%+>mEuG#3V?s3nGteAd)8g6Ba&E-eco(}lZx(kubxXK0scQOX9Ov&U zjlGNzs+$?)j^hIE(qO;+Qxnx&$SYe(PRM4A&QU>RY%!0()%%DQWketRxneblJj>C7phl9k*%%F^x)9MW;tQJktY?5Rq54}eek{(Q49V9WQ?-XA-Rfdp@T0zxOE z%tc#+Ui-il*cb^XsaIruRE^!SWXnR=dDfr_G=GgLZqLNB0;exF@kyUj)_-|+PK0RL(Av%nc|krn zsGF^#@;>hbJpr4iS~NDXu2!}4w8qa#GmYGuty}k1gCZ7Tsee^xhg5AtbB8^Dw8EI@R}O)7@9SJO@YP5(diJiDB^e z8qbw^A?KJLmH@EH$%aO47Jj@Xre7BxVIcFT8m!|c>PVxGt|LKwN1nCc$|}CT_c%p7 z$%xn|P!l9!e2xGzDLR{{l#K~fk1uyIrA3n^%E0$v3-Z-~cD$4Y#lHs6wZt+NdY2pF z!JvG>`lE1Q?{iH+>TM!63tDm7usi4T(Kj}1rfItCD(L3$ zi#Y|(CJCcSPE(08G5jfgXSxx=WO^VYG2ju&ex{R<&Vna#N^9QxZ{;2k6{?Ko+Q>EX z=$ZCTn-pbmf`Gt5d-#g>d&wF$ zT!ftTiP5<;{f(dk=*Q;|5sfRIdY7M$@Mmd&=+1pTI|xYfKT>L9+tFsa@KBdSnZ%bA%R+_VV*uRL zh_BWRFL4sAZ#eY{79X)@8l8AWh$Z$&d(i$e$N6z+dl--68m4!ss-Zm-1JjKewZs+z zwjMXoes1!$&-oe|HrtY6nI{BM@{h=6cE4sqB_E!Q<~jh>YCA@*42xlpZtm?d5Pk~J zy0o2L8h{G;PR4gKl#gs^#}cW7TLtpNTLvodMPmh2#?7mC1r3P>b;^d?O8=cc_uq0; zTRf*6{605f#r0VJc3xNBoI+`f^hV`Omt}283_n5vX~)kJ6m{nV9h6^0V7wW)q(kAZ~B5Gm&fdLms?|9PPb0~ld!vyUS?*q$Qh+kgoSb}hQ`=|`u zSjnR9F{{pjwK9ds+w`r1YP(3=V^@S3hYhm}4ju$f_0{NXsRw(8q?;^J{%18o!ISXS zYNH@cvkp4R{8H_}47jYZKB^f25Auz*yC6+0{|gi3H+gHjhKk$i!Wbl5DAF}4 zH!Gk>F!8xGAva;X$){ty#+Qhj*hd9LnAUJDs8`s1WHB-mYXwjCu)#}fag~5l{3-lV zt<{a$jwy=@naFW8rkGa~^D!^{BfBW92CM5ZG@CEa48Yj?5`+9K3H2jum!17~SDMx# z)dzivzIqOF46Y?cwu_&Wma?XGT`zX65|=^;h#yZa{ETCEpDi)Ej2>Nkzw(*d=Is<4 zvg%&Av-`|ncH0Wwf2$oBx1Fnou^SL;v6~0nt_iE3zHiESEkRUQ>=P}W>Emw}nN1{y z=V+{g;#Q2^x$3kiVZwNuD+jB&aWMXUl~iSGuc!2NSB#gL5@_%32!-=?#wy?zh;MV} z^fS4%GeCCkp^ozkOlyAZkuX-IYpL0>ncHZ|c&R6rKjrP)(*3bRt6WXPjk@@tY<3*W zfHi8{oN>Ul2I<&rp?KFDCO~|el6?>SDA5f!9@QxVCC85&Cj~4}R$#%lVCYSkIU@eG zk#V_Y1#NhyZOBEkQ3+rnve@>CKem2z{k}2RDRPJ>r)6h_)vclNo4@2VM)Yr6IPGj0 zc=2wm_w9z{C*|)MC%F%b9$)q?f^AdMNQ@!S}>;W)sb z5*C9h%Dg-`m5v<CPF8fRcd$x4}A=1tZ%{j#M z9m)_8oaZnJoZA9z=UDTxk_H&)~`SS)c_-WlXtKdRG=wmF`Xr`WMB(*>PV-j6OVCPhgAY1 znHj8`3LDi;th1ToY_6X85XJpbOYBep>-7paP!lkz`9__9Az1~YJ+%=>SNiK{p2*z7 za3FK`dUW2>`d_Qy5;L2zrI)yiX}B9oN~>0e@9%SxHncbNw)O^l_7Q`do}dv~kbBTDVkIrF(Oo>AQ_8^L~q<^cBIxng^)hLSWW-77rp z=Mh0k#$k*~c2;=R3an}Dak&F3I+oNW7wCQacOB0W$b@c8aR(4I2aunD|6lw#W}@aC z`QvppEI}1NVP}PFL)UQ5kH>WRP#INq5Uk1kcw&E|cZCgna@u~4z-xeU>T*PZ4O&{+Zfu1#EM84g{o@|aMTdv}y7}`le;GuSFPPQ(52(xkfvmmD~@zC zDx=#ZpN36Vp4xTVaoCGP<6b=+-{`>OQO4OdmHDJetf8{ z0S1&HW@iU+q0B`OX}f#gW;^lU?PH-Fxt7ZBEk;<@+8Ig2$AwKBB*5t#DM3eYv$epr*C4WD$`i^J3LIgcP@V|p!1ivTS}Yp%Ds^bF(moIo0j>e z#rW~G3RzQ7N4~|~j*l?fkVv!2;dbxz*lJ)!nc3o!Jl~>X4;tj&JBTf$*JlrxxONf8 zt0S}pWNMjOOXuSJxUrRsxHdll$Rd|OO?-6f1gUGQ5)?FOL1F}JLz$4h{RR}OTeSYa z%SWsNtgKd%Mhay^tMJ9o>B}Dv&JPs+^_RNYm5B}=xXJEVz-WN>_15flTvUX<;hura zUq8Nb^XKQP^EYLlV&_y}EG^^ZOVBSL$QUaPM&|4={E-ha4UnhBD@Q#Z+}(4x z5cV2S_N=Kz;C5!E4l#k0;oJA}C=7!N1@`NWaJ-pu|8Rwq>`|u2To}O%27%)j=(e7f?7A73| zmq@`D@zux!EBI@lh4DG{fF<(@_s+(F6x-ALmVfM^%wA8UUjP1OqJ|q!{uW=FL5}i` zYMQXYKe%<>0Tl-ro#3bz49YtgbmApQc?EuFg+>>_Eh);vs4L-fJ;%O@KpjFGvWtVS zwzpfXoF%X4tv{KU)c)eXG^mAHb8t3@07r3)JVXZNMO(1QtMJ5DB_WC%Yv`|z^6h2B?6SaOlpycAHj08KoV zji1Z~Jaz7vR{6%Q_TeX+`5!MUa)gRV4vd3eD9ypFo2O2hZO{?v-x9|EABxVykUPW6{n^;AyRw?3Ri`m#)Z9P>gTB9`@JGOF4P_bznJBWFH z&+jkDGw$5)`?=n)>v{(sF$=%VwBL4bTFW8CoakeY!XT#q{Uz9~_3@5t19rA$A^szT71h+&a)+3BV;usP-PR zZ?2H}n4r|1tnDei@>~7xJYozOgC9>f1eK8XK56Hk1(H)-+p~hJX}QU+TM@H^HF@_k zYcWmE;9)*4aTJKgb0$oEIp}jzWW+ZcOk-?jexvjCq6%{A zKhyr8l7Iqp8wm%(uxtMN>qkwvSa^a|+JFgm$R|4Mx;0_$37|LCxd zSgD7sxZ9QNuFxOrc`U#qOd&RiRftWI)VEV81bYMJ-c9jGLj6t zeEIQZfx)FtKtZP4Z{sz4@v#_U_~{N%pq$o7)Z$N*`3pdibXvocc={f+Jcuw?BUUzF zX!_1IkFje5x;vX@HPlu|-t#T7g=}e%&LPg7ICjt_lOmCng*yu`h(k6gLC?d5Ir;`Q zHi;1v%xM8_dV;GX{%Igf5*w}RD5(OLb|>?mdqsQ0qht{Cil8b$AVm12sEkvm%zy{G zRZDH*%3fMeE%fnkY*JWg1uh4`S(KOnIZ>i8dqcCfH+Wg_$EU0FMnG0oy@pn&U2iCkuO(w5m9^kC_m32U!9vh?6EX z_$oSUjImJ3@1SB>`C5=-LzVvTuaNGZbk1Y&K+zp&RBkswh5lb>!V_UtY>N}{zalgq zg^RNN_t#^%UUpw)vguy3B(A>?&kpngBTk-5Ww{4->uBvvuKOL#?G;h{-dJs!fvhgL zN$OyW+X!vRyuE?8y=2EU0p;Jb>cBl8bpcV^pqLLBQdUHLxNLZI*3GWcS6WUkBz<+4}E)+R1T73F9-_V zhd$G^%xMZ^EYS+A`DQtT5#y2QfiuSpzsCb(2hDo&8+WimeFs*e9%H!$G)8g+f?lC} z<4KgJrGG-wc0?J1X)D5is!Mv>{|7*}1On_5?oA`cwCX{#J>0wiWVePo_s6V7Ode`- z8~GeaA9EsaSLgv&O@WSf-B>geo-?IXg@{QBppph+m?}G+Kpyp|yQ>ma)GzrT{(iC6aa2Rdur?}EH=XSIDL*(qFuy!{Pg&5r43 z4N^Aug$(gsDn8Sd5kA>@mv6j6BYa<-sXQvlO>}>)V!)eW#>FtDT~$Tm84I9#P+#?| z>0c=U(yVVmCTgl;Za*of7cakEJxWp`;M%GOIyo)%**B!XCXOwYDXUv45kC6>yBkBr zlsfO_T$^9<474?)jEJ>8Ej~q(sd?knim>vO+cp(#&pp4ZjI2_-WP&506~Mb4`e+^W z=&*Z>r{AbXU2C?o=T6Zo(Z1)WP?7R>*^x28ENiUZ#r0=(DS7AggRZo&G1PyL?z@WR z+dIVsk9B#o2BI-BtOqp~cS;Vd9=^+uBJU;ZC_TMr#vH%?`AkOJ!zdeS*hz@-ZSgfF zG`4-fh^NG%T-pOdF69qCXxz-(}wd=o_NUtw-fhM8F}tA9Xz`a zm&|(R3tz+_Pbj7k~B0Z#Ngg0ZRunz(3hat=V)xE6HYUZi0(r;u-sU) zsXeiEOmI~W>1yu_6th60Pm*+s21P}PpuxF098u$YRb(GBmK@*TVs+ORn=7NB@wQ!< zi}4x=A?F9bCU6&7`RA_zhXuD3ke!6(Tr+r3K&nf^tV_jfkI=2Dv4&e%9hRKx(g6G> z5hUe)?06gT_FOj5!&e;>XcldXvSC{%p$Og4VyW%;*6k$3>$^|9)31A4r1@q+{hQ{5 zywNN%&vfz>il~4n_f4mU0Euk$lU0_6Njj@(oTx#6#JVlC#k-^sg#?bynd_mb6ncAC z8n4uB%_e5e8cV}Z;u$v@gSQ3n74Ln$WUDWy2Akl?x*I&00i^)B|@(2Dfa zz6TL1n#`!GAkV<)g_TOZhz2O3%UcmO;VCF#7PVf=BOp@*pu(2+4jE}25k3I#L8`gZ z;3?#&^mK2y6WFYOmSrz$uhQra5mde&%(ZlP4s{*jDWh)+a%!)eDcU#ecQw?0Eu@E) zEKo_qDpq6=Ys+1*Wle^ud;!{H!lt*D?ng&bE3kY@s*?E<%n?TVL)*_7bI!DrZl{~)hWK)rYbDC$1i@(d5$IZHzKM5W?DcdF=+9N= z!ck}2Ym)GsX(-nxHp{6QtVPfOFduHNR70xCEj=-o%yu;8x+Vc7~a1)8! z$UAEclmZkeUNN_{*C96Vb%VBAw_6aLNcZG^(0 zQY-=lG~-}{nlM1Y1G5SUD$-)N$z)gR-gJw;Ie-+B6k{-yJ;296@r_ZN{a`KQYddnI z=St8uR9+YxK-34UZ^j<^A4hK2SBUE~HqtFTMcKX`;i7G^^}o2;SD|oE(EVMOd9u63 zWVz?N`w}*Z`dy5J-u!nfUyJgpfLus-FhOV&r-}(w%EOub`WHroT@+gBRpC8PD?ic*fgGU)b+= z-T{cfs=wR!5?#zmuEjh)K|fXnvPYbX^@$?YH1i><73na;a+X zh^Wx#uToLs7jkxzm-*I2*o|8G+E}OU>2GD{phGaC$p1`KE5G#&%(ZXc4NfTAikC3` zcE0?uD3+}%nUNy;t<1%xOPS41naI_9j$p+*Xfo_-2k2WBfTO;V^dQ8nz$x#d6c94$ z@IF&Gn1_2bB=HIX6Q(UACKX?BBfjjT2WhUhcaY$VG44Yf4qDzyQeN-(Sb;<+>xeMvNhSwE&&J8T!o1~uDA{7OHz=v>NQ#s6$ zfF-chhH)!bvnG7CE5rx0W}2B8H@u0V_yFik$G%s)oI3_^TZa;_vL%f;#tKC3ZAn)W zC#wb)hnkQWaVj?#)07j<=xW<67WVNFa6kKof@zz5*=RFc^8^9%5@0krwUTB*L|33G zBgIhTle}u;dRYb@-QOlxZ+H0xclow%6Yr}Iq!lUo#I2B@bBAS4wjmmanlD+=bR+W1 zPNSq#QKKi}T-SKhS7$=Po!CQZ>L>={`!H12D+epT=h!!(`35cs)r`Z%M$HK?Ho0`S zXH7KuJA@Zf=bEmER7gYl!I=xma!Cqd+K8y8m5wa7!{H}F1plj&q(P4lX%@f4qIx}F zEiYW;m*6wX&0N9_XA{(xzxR_<>tXYj7{AZl z=aY(w#o~OPGHY@lEcztry4eE2u7-klchbOj_r)taZ^4%viO*}rH?M{gT@A0Ru!^Qp z@4tPqrGsIyB0whFV`Ww4X+EGm^7R>8pYp$Hgj@B(G}b-GdNT7 z8at!G^Fh1B$Rybk2COyv8!|~AR`SNCX6!(_rOcaHj#Sj#uF_|WnJcJ_iuLI84T#kB zUsaNTB1!FSn7yIubB@qM7wtaxK+Xi|5D1KB@Ek07i8nogMun(iah|jFDGz`9Pjz21 zQD>P;0&6t8gv^SdvlX>z40_tqY1t3cKu-w`qWKsKvEod9^Gf#7POk3AAGgdV;LsMZ z{ph&KX8pOvc&uc>c1K2DZR8n*M9 z!=vj?qj5)j(dFIQe5O|zV^$UY=S(N%-kbf|6ixpdf~dkUs>(_xZSJE+Ix8hBi^idu za2}b*BM3WqI|%N!i}WJiKa~%IMM*R=jG(WY=X!b%fVSJx*ztNaSls!^e}6$T+7aVP zkCcTji!Q$i*{px^*Anz^g24EMX5XwpE;uKaJ0h{EFgN#IvFF;c=S(dEj?LI*q<<5+ z9)4&Nf4>2A|C7z(13J>5`1GfH7~wky_9wo`)v8$3>zCu`QXmT828_#%FDegmLeejR32`eUkCc6b5y%H^X=xfgRy=^>I@LWg0!Xu-V z&f+E3X#P)(P2O^^|H6&If~Sh7>kCxpuwR3d4f%5`_5RI`+X%?1LEw9xD|3R~>a|`G zCoR{>IY071Y^$I1Ho+9x*$lQmJCT3xwhd#A07TmLxH2*G1P6@r;R(OR0zF>LtRjLf z-pP`B&-od%1%Z)zh57PoZiFlECl_o7YvdGtwQiR2S00g0_-%Y3*l~i$FCNKwyg!hB zO`qGea*9a)EAM5Humc${F_MR zXcWE5srZRDVn!qRjgt!YP`%ylLg?NcyniGI>kk^d%bHjI1$~hl0QW$Ta1*;@SGJRj z+S_veXu}aD79nHf&i+IKJ+P51+G92b_~l3e8XvFO#7Q3Zhvt}Jd3cQM7x8xtW`oP- zxd3FIEVnDt<9`|QyLUD2RX=m`KC*m3e~cYRa%yK?8mHn&f-1hV6~>#u$A7Fg)OK}z zSOdf?!OJWi_brW6#3fYvObVA<2;|{t+{2|_qZkMDNfH*sp~LChf_XU}!UN+!;%ytj z!#+AF9pBm3IKxXum99hS<*)gG-XSg;U$E8%LhU6f_5D47B=W5?l>#kOkZ+~_Sw1WQ zdSty_z3sG*qgLAcKJJk%tx0v;9L!l+H%9u`<&2Bg?z_A@A9}m1wNg}i2WQET9vySeY_)9)V!79no&ussPxIo4&PHq_ZOZYjH2=QkDZ`)p0 zC977l+QrZ68&DF4BzB&voO?W`fJK_2Xuy_h@rS6WvkSx025 zVEKKxDxJ#>VKyp5}?Xo|s)3{gwpU|tzz&^@FkJ&7yE_TJ$d@kgCY`!4U7>RZj_a4W>CMmtMh^#%!Xi52AyxjEukdb)t6>Z@k zp#JNa?XCa!SF|-*rh>c^Y2x|rjQe4&JH?VdQ)uwXs6~p(@l^H&XkG~7m#k98hql` zYX?2fW_iZ~TL(ti&jObJ@NpNv$h$#^a}K6tUDer|3yEj24Fwz!u>+!HXzPiLB7jWz z&8>(ZpNbD>GvePWn>wK?eafphl)#Aot~WBK&b zW6*-DKO41z;2}$JjvS=rtNohdJsv8t3Fkzf>6_fzx3al;9;HLtPg2TTpI|3FeDb{% z%g8%6#w52>C)XmE|G8y&b}bI}DMK)CzQGCpN zvoY5t^^#)QHn%g^x}Ph1l-@v>wJUNJR~Uw~^Y35{X&Ta^|^7)gA^c^FA_a7`Gk(+&gRK)Yby!v;~g=CMGZIRm+vW{XV%g9*GE#r(j zA#UasA*M4%3E7qHSn(?b6Z6Z)q3mOC?i{r7>fQ3?a-%3O2iiI0XCm6wgKlQq`sch( zAO)v)$v3zsAb`T<{B!r~zQ=hKSZtPeJ9F%?y+O&T`d~Lx!eU2|mqQ}uinq^LjGWrk z4{v*ZwY8oxi70a%kjeK5=zB|O4ZqDru9z@St=(7h7uJ!`*u9Ifu>5}8`qHNCKLAhzrP0gC=)eQVq+_( zB~d8%iW^w>g8~s=4O08bG68AavMPW)aNCQpPYr_;8gE8EoyR9!5f_xKa{PzN&y-MS ztWnAZ5H{2;w$6`G;nY^)MUHuDQ;kDNe4@gVR{Z=v*@Q)1dCD#ZeD58Hw4)jOxDA5i zOkSB*;yj+*Q_Nm4lE1@zQOpSnn&Af|dVRBG#=N9~(UC#?CAl{-TER~XQ@d9F?3L6% zS)8GPb>b^&lemtu-Aei;sLx8W-T6nok6qun;BQDnwb|p4A@l zyB&0TXpr4}toU^QZID*oABwqN!OSfNct8tMn`WGwiWmAu7^^~Eaiq*q zq-HaA_0H(GP4<3c@*odH>NmV6_nY)hIb{pCiAocNclTeWa0>XX8}(fjHF=M(<`+NB z-!_BM$3YU-76jzV4NjY~3Ow#H#9RDU_!XX7OVgXWrEm6m9GTW}#_7Z;t7;u%6glIa z>}Z_7zPQSr#=Z5Tj*yjW#&@3CiAO9Q=MiHFCIXk7_ZN)5rFF+bq?c3M@1>JIPPHsf z$>rzdzgjpELM8KPCXae<76|VM3W!{a7^$9eD65ut^N9ed;Nv1nFFGS&(!%wzTyZTIe&WTJ;=JAe9-0uYyt6c*6**wv-bS?c%Zhydq zqiY^Ea6R10_VUnX)qb9V7OVT{vN1=-U%5V^sZ;5dIPVjXS#=@dI1G_{IhrQe*CDU@ z#X`($q$^b!OXa$L;(@C*ye#{ZZ5^6tdBP0qSPt+TcYgBQ`N(R3raf|ZW0={FNY|T9#<4Ei+z!oKZ0#Q~FI_T%=%SyJEN++xhm1-o^;+$l-`)g#WdleD z*5^q+_hPMzyv3wyPx+qn*A_P~MFq*{Z2bLpWtFEuIlO-8D&3Chhnihp(r8)QMSizC zSmTnh|DA2RV}M79(NOsclBi*&wDLXRD&E@9AO;+$Qi@UUA~3dnkL$j782XD-MSGE> zB(vP?q98+6ssJ4Fiu3C7wSVn|d*QL{vq+HXF5xney$``m%atyZ*V~me!#Ncio?Abo zAun585hTfQpv_DTOvsoy2@>&rlny63MU zYQ+Mf$S{Ot^{(mMMM`maeVQmt!ft%@-3p`1g(X*mm=)4sAM9;5hBE=i({bvzRrd?P zk~Quw+$DcfL6SgcS^8sHtl2>BMOq~F9h4-EE~4yB0lXP@1ABbv`TPSSP31U$>RA-6 zUdJewjcJUV)GlLgBNwOg&*>!gR0aC6&%-w1RCcoYG)KJHy7G)qEUd2SGh2$N*yryG zL7!Rig~5{lYu@1$f?G^w_dE}8(xA4eO}7i*&oAL0x7RE6HnvMqFe(IVCMx#7Ah^NA zJ-o@n-sLVG5z0EHduQ^i108$iH33eMjAqpuqZoHp$*=J+NvrF(-92Iw@CPD$1L)OX z(ev^1t{H*Rtul8!Ow@s6^q2j=OSib@zT2Xae67NPN};HD8iK~@VnKHU%}l3GYUXXw zJPXJ|(cSflZF#MJDZ=o&NrZcVlJ8StQ|#?V^N-WVs>_eH2x-ZKFuBaIN*0#h!J%oi z`_{M2VX{)GtLpv}Cp7_o0Zah2jCMVtU#?_@daB^;G2ap5B0DAm;kQ#fC6v(<887Zu z0)KC233JRrpoq)(|O;|J6238NO}u;($K zB`rKwETYY?>jW(0wP`ab;P5|{fUI1- zQ&I|jiIw7Q=7>oQhc&x_dD|%z#%Qtt@`!!KZaAN$4CjtDJJH327N=!y@W=dIX ziS1@_Tc%k7$1O&w;r#3hB=pw85qeW?>5`MSyD3LQ;xUjr=6-ATW9iGz{K$&np0{Y- z^76fYE`bqSXpUSwt%=;k&zq-iH@#oM+1>S8O~5qpTLyVSzbwHfm4Ey2-yL*&1TB<0 zG5sCPP-!MFtfSQ-dAt5Bjv8YXRhrnWZCMCXMHOP)hBc-N%VYi_kNzyv)#TD<0Q#G& zZ?I%l&CiD47N1BSMgnLnYnTrA2TA|`i)Stm$Y*j(?Vt+TS?+)|5Wpo?{Ugj?kJpYP zc#zz5&mik2CDJ-x60}avQ#m1vxW8IW3qF>FuXj+vx{N4q00Q$ zRoYNzYJsNy3@g4n4pD3R48E{0em@QB`<#DRd%$?&X>{kDqvaa7kGC1`7r(<>`4G~` zH!y)Y3Dbbo-P>ALQ^*Wu{~5vRS&OQ=%-8&1v&GjGu1|%f`uEQ%ahW@z9CLZ>n)Myp z{lBPIxUldl(UTUOs@>7P{azVG%0pM|nTu45B#?D@J3I%i2Wk2}TKzIHTEp)j4d3Th zRPKk0Zx$FERtGGwT7$ke|NUjfTyAZv`FHVSK<59GOz}G)QNgDN5-E_I@|x3ki?s=g zw9PzCIkad|Ch)a2&T}VBT-^40Xm)d?nR$3mbmTxVJq^{dn^e_VBL`7+d@aiMZA{xB z;ShD58P3t@;u#;0bD@I#&iO$WJL97c*EE3j&FfICL7{v3^d>Z_?sV z!ialE8g}P~OD=T|CA9CO7Uv30*Fq1)xvE!~9Nt>qu55wA^$p1FTsm!>k9ow)rkL|D z(}3hA$rJ0;WFHbr?4ROqCYwAb;n_R)wO8d#($Ms<0A$Cen8nZdQmecd&_W?S7}>w~ zJnyMo36o7|4>`u)fDW*~D zRoGo5PReq#1u?Ec1bz~5oOnPeDricgCRfK;fofukr^_PF_Gxz(d^@!m5I*?#H~VRc zFQ5(m*h6&E3#=X2o`ghJ`VY2Xft(HF(F&Pv=JjIuJrC0_P7nNz9%Ax`np&;IyIp7k zc2e0TmogPx1m%kV`wLC~dOUuv=k0vSvYGgi7}pukHJyIf(331a?h%V`zv{n8H6Z<;hU6snI0*T^37;<>yFb4YWtSrs8zW%aP^7__-q4=^^p(2XUH0eW) zHe0#Zl8ODJ!pWorxXh+emeECGrteymj-c$CRHqlBFgVUdyD33j%5;g5?TZ7u^}k}= z>em#pryZ<}HeNEjlT*iuvCr;Lr-;8Acrpmd%Q+EpQd)E0T5_>`b(leiY(D|}1QS!g zdovWyNPI${=^J$E$u3kW3qMmZxB0|wcsVbS5WKEis2yWM#@8=KmF;@z`-WK4^t}@` z($K+!pKU1sW*@QAzU(pRAgcNnmhX-r>~fy&dx;>jT<(btRz&@q`_pE6t}LT;INGhI zfAN1=&+PK%Di(Vu7sS>4q~*OTf+q*=UA}NA6pz46AU;dn_T=+W(Res){@%qk(PD94 z)&+C!E2`Dl9Vnuo;#!vKmra>yD|^pA>IR1x2Z&m147_lE3>R6+Rn^L?JmGFgn9dVy zzK-sN@%_VL^6RBUq)y)#PTqWyHXEJ?CRgcoDy}baE*K%Yp5fi0+Vpncko1^70|#z9 z#TM-3t<9aOCgL(5{@jkIsaCx=nVHLz-M4Wrd@SY<8ZCgjy5nfm$YTnV1J{VwZbVI_ zuwMVJYSQR9%F=(N8KQUcK>ce9w|wof_8R%2x=)h^blJIjV;Vs*o5?LB7PfO*Kj`>0 zpRH#w(X3{pw^HHsMB+UhpYa^f{tk4T>; zf_LhuxRs-B+O_#&LM2Kk>aMxXm#7tRYPVk3yzhuz$V&N$hjIgiCAc@Z{uXkc?;uh% zYD&@K)2nr(?glYOE-I=|o|NDb7O6)^<&5le9U+@hL5h{=G95|DOM?E@<1xUs!90Gs zk26qdv$(kN;6$v_f81o(DJJVoM?g30ho#vRjiOwUP>`Q&zZ*=As?q!I@ZL+Z=D$BV zjTe8g@P76EQmmT6f;sgBgaZ?vUES^rNWc3vp>`VGPTOe z$yc;9@uXjF4#K8=DKZ5D@a(mlw+t203t0J`xQrJ5thZIg_l<7_st`QbJwjQt+Q$?c5sfr&q>+sc0r?*jz z6L`K zR++wJd2g{a(biYqxe_QPdoE62$Xe&53)N)0jL*Zp<92X~yy5L^#z^++@hRW%ZWGy4 zsI$pa%n{r0Ff#G?k+5(2^l#E>e(`Lz*Y}GmsnSwxjGyo2xeoZrm)l(G;#S+|LP8?} z?lm{Z=K?nhted*y<2+LfB_bIoONAFb?rcArg^e7<&L9W-cHqtc>?~e?p?jO3D)f}bH(ote4ZIM7Zag27or}`H=8`(Iz(WE zN(X?o@rnVXesBYSc@w>%Gg)nhDztc8V`OiV;*h_koBb)rZs4sU z`m1j7RWV1L6z{(C7q$<95=N9}zmt(ZACI8VYRf*JGf6N1*Btx--k!A*Dr6@xk|Orv zW4ZiikHMs%<$$kdiZbq*(d(@zar3*HjKiBr6boSWvn*5(+X6mW5W0=0QV2o7T@*w+ zlT0{`s_9SoJ}xBAmEK5{?+674kkc@a_E?IqdhK#t+4lpI=0UgqxW$OQshQgBT8sSv zyW!`ycJo_4TC7GjwLth&=98-WO%rXa!Fx}mqIo|)ta|?;*G;-g{MeN~lQZLHZ`9xW zFm}Tf#Lt4pHPI2;-9Z5J-B;n(#Bvg&9uA4C5pS-d^>crK&^Bb#R_*2Q4jqPBp^7h3 zt3D4#bSRo)$+NZY%!M9fhiP2>MXO`y(v$Hcj;l=J`FZ4kwgzYyC+|-&y}yf86ov!q zrYJmxw;SW4ka)%pZsymO+npnwRJk95eOa*obGgEtdH+2lx)ILb)e4LvM3_ZFGf-iw zU)o$Jn)jU}zsixmBGMK>ujT!N41fL0Y5OHhL+11bvNbZv2y&!DaLST4evPeH_XLQ`kve!%cVA?hD>RJ7YWAUWj%n=nX@ZqQri}f^MG>mWLP_eQ=U3E|)?5AxEN1zxT z5P9yN1ywMA`rUTy)K0D@S1(STK8bua`msEtT_IS5tM)#G71K{KlAL%bYV|zGl4m{E z>Em@zc6^TXJ1CxBm!QyPjRk@UU+m$<3d`2tW8C)HI9+O^72RLsSU>`thYrm&N5@hX zwsA-`pYF+#VJ9M3NRwGE8z-f$1k@cBMBHGfA`NL+Q>7_4f}p7A{2cbCSX@YNeSDPd z4>m0C5Ft;mGTzq_#`CT^KbM53KudAoZmOZq^2uZ2lzRhMsMuN#+MLVUBhu&PyhQ1%JkJ^ zM6Y5>A%f8~y>7Ja*$K3&%fRfi1tt|o4&};vX7h|;->+P@tgi9E;7jg&OdZn;EBo=ujUuY1Z`F*>yC&;t8cL@@#Zqg0--%`q zOqa5o%#H|Z`@j~mE-X&cr!h;lz*X+UaKEwC=h8`! zy+=CSDN=3qRf+QODB1|J?ZXncIRwmo|5aI(s~=azgjAey8e1<*ZqvzR-Z4fI&XUt+ zi?J0IPLH3}wTe_2EwXi=EG@XE7uZJHEnRoRETaxn?N?#UtF$w%B~JeBW%{qi^IpHK=^!E1`fd5Sys zR3QE|Mq%Vg)Xd(ImdO*ZP|c^4zM1q`+JVa=8&wLoB!c>?hyyrHm2s1wY8(+=0|JL{ zt#M>j5N;Bu+JVtMJPgl&c<7+LYixYM=VUDiz9p_bP*tjV!N}K|#b`d3cWBxu#W=!M z!bdRo3bN2f=F51lXo&nIi{~nSQU=VYmwA8iNsd(4pzfjei%y35xKFOHcdDZwX8tg4 z>D7ZlbpTfOpSwi~+lCcRk597LS~C%|_96OV?^I-=B+#S0Ke(_IAj{1oEtnod&U~j^zD+Lnae%eU+v1 z^s(mbCGj57eEjb(4G?sJJnk^zmc6RkTHfv?x*BJNNah?gpp43Xhk?f{?jjBR*GGjk z2`TQTi*Da$q-)96Yo5!9)@hpRBZSzhgw5$(y!M?+(2RCmalKgaCBN!1mD6F57M(ya zbw^4Wcc2F?a-}H)g~b9MyxUk77eK~Vy%F{N_soVxT_xj)*a()SO zs=P%ab3CdIvAOkGn8bMz>5{8HCzs5moGM0!y1Wy*_(qoqZYg($`^sfBqyfD|n1|~p zmCUbXqC$egP;G@!4#bJfUyyq9hqpfw?H48lM+95cs|$a zHMX;B?g*mUnryfiHL#d4FxSBotcynwL3W zV|Cq>3}kPoD9IE-fC#_wGwcfXGL=XiJqnVA*Xs%15sp?M^7$M__GTFP>?YuT*V#V* zq)=9crR|P}&l`mb_kgcQ3(%&@UQca@r)GKL#91%aXpF86#hHpl*SGbZDsTR)I6}+0 z|04c)nRszG-}g$t96hjnAZK-;emfhfNrB8jWGFflx-UC;0wnG`(Q$cU%*EGe44f*- zf5@R*rXyVHx35&`Cm|JO%O2B>c#C&J8cbZjpG1xdyD9n@(^6iG`q#ZZYyyv%qwvCR zjCt$9a*)MPpD)~!-VKQm-NF))N)N`>huN^UqUWzO1?>i7hidkrQs{A7Hi>?dg({n6 zsOKmayUQhUp~WgO?_Y6ut)BhMKjKX7uB17m8p$x<>RrS?wr}&km1Ja{a1mWBmn^43 zI{6@*LxQ}WIkkYGuu7BFThE?C!e?n}acOT_d@P>kVDWk0nF_`)USTZKuz9H(f_X&8 zr5DO9ksL8et#sZOE(Psqmb@0P7>jSuAku2CI#FpHxyMBM=bUz;+QXa@PA~EW_bnkk zUrUV=IgTf*8(o?^h$*#m%9$rntjHH*OkP9&$CtA);&3;yXqco%-{1mXDYxJ}U+sje zz*>uO^mBP#A;{_HjZ^+0a`7!EdsI)v4zuDb+HNtWC7JC=J3K53PIXRnbypDIuhxLO zq@z7?)A3pbdaIB4R2}Fc7fc+rmM5IK*i#|C`%`FbJ%rXRyd$^q_Nc2IA&)OoEXdRj zRz*Ry5bS&9LoaTb4QOs>FMP{UKYRdLeiqEX$h7IWawplUwN>}gDYuLC?gKctoz4pp zb9$Nem~+#d1lepqirJX>qH*Z4gAs09sr=(sKUaZ7^n_{1F9$f?_$a?EX)%R`wM&ij zFocvQ<==A;BXD_o1nXpmhdZQI*LIYFt4fJYx<5}ja|stTWpmd<-+lIV)k;`(fJVjq z?6-B2Pvy7e=eJp;io-KY{*?ccmK>ROWGD~`WsC@Cou7zaDRp<%li7l~ZEu%}U8wH6 z->*BoFFf}(*@UWi@(1Bg(KniiveNw%qX)g@VmRjy>i1m|Ppi33at&Ug(Q&^Ng}YbK zXE=AU-N0Ydn%m4&PsMg;T{myXyum_ZX=CK_Q7fpn_=MqtIrtXJ-1I-NWPYyj)uwbHZFB^eo^ueu1SNyqBrcI53o;`Hk>t3h( zGEvK=k+V%*Zc#2B!n!owX&j(h)UsxE_9gtCIa)#Y^o38^yAMtBgH5b`zDUuwChM?! z2N^-7DkG#3Q7w(TONckyMz>$#zV|WSiVBBsLvkjtxfT)Fs5w!GbR@`8yV7cWX>MacL1u9_|!?mL}1ff=QDxQ(s! zU+kMd9oH|!Kfy0%?YG}SAN2ug)d#n27^=>Yr67}I z3k45#p&yb9AP(9Cs&YSwR5SG1$*Sy6>?3hl*GIkO|Ni>l;Wd*Kjp@*bD+#(X^P%eo zW)W0Z|AWir$SdaqDn71WKdzOrHy4mX2j{5@^df=k>by?6Q4!24Cjx?^u-3NBuR4R| zk=Of=(1}v3EZvCB&&@BC=Bq;utA93qJUWEcy`$Levb}w9m>B{3s50Z6(2+71SM!Q2 zF8rtqtd|4|)QVR-!o5NF_AWGaAKx7P76w}bUq~zN@_JI(kNY-lv(Q@c)a`{mGL#hT z6eE8jb#W$Fs$@Om>(onYvM+hz`R3oyW(l@81?chUl{09{aAIOcJ9`QB@9gjZO*Q0g zVnb3dDQPa(_L`!P^U&^>i4Ynj@LlC0rZ{9S*TYl_n(-I!I44>LtExLfrRpaaZ97;k zX0YySLj2gX+fN2FW{UUlqUYqE$q)HQkn;iFp~Zjq)@#BE{9(2r;g)2-3_5^}EO+ua z+*Hz;UBu4VEL?I|P$gS;)W@ z{&t*41b=jF`=RSYMgQG<&xD5n!-BS`?`YsDJ5Hp2Jt>gnVMWzjI?7Z7*H_ zd2Eb4s%*pb{l3_SUnpo}HRKgjliZ2RZZo}TDpzUa+olXELdU18Kg&ss;VZ?f@ku`r zD3UkEZ6isZ^8GX-H=M^O2%%4h&W#71^NAgR!GlCMTk5IZ}X?-O8vBtMj zNec#Y%XM!L=RgN5Lr?f=me{&(6s0y=Y6lNi{UsbfhJ|OQb;v`}7AwpQV7G;vJ^Rk& z-mNB=$5~NW**Uo=8rE?%)5{W$(yxXCubFjH^`Jh(G995Rb`_$V#9L7weZ?2s=4($- zXTw;}VG*+$sKxP{&La3Ez)!nJ>V->}+qVD0fv+7`k!RA1dbOTcf+yOy0ppIGt6GTH zXc@UCaot3!2KAuzc&Ll{Tj}HE6f6>Fd>zlv1rJ(a&+Cpx5n2xv%)JY*4G+LN@p4fF zupN!X1qaYmdWb8VGtpji({V`~VLkwP?753pu&6;`Dsc#!iuFIS#GxJ8kQjx(d(feX9PtrKPL94?Rl2IA~36M3kp!ngytKri#W0`sF+objxUPuD}&+;a+rlH>#5d{CB&)Z3Hu8#>Ou6M3F2x z1f&vbWx+)}UhNxxLK`qXCu68QnSSSx|N8_?q5EW76@q{_XlQ>hO_93p^X;anmbdBQ z;u|59v`XprZ1Kb;>YIaO5c$z{ukl{_$oyPPuo^*kBbMaPCv$;u_UZmD2wPIb=fF{k zF&Qzmc3cc)q9YbFwjttCO&hsGSUVtigXTegnMBGVF^1IygkDav^upt=>B_c)g|iSN zuJxH0|NWKw>Xe%Z``<@Ii_^|+6O&B^R1?}H3{Yk&*{;~y*@sf!xlJ@#rn1eS7&iYu ziq1N$ss0V)AR!GKFuFEUMt9ff78Ot=M<^&Mg2ZSx($Sp?Cc-elU<^i#-Yc(w^2!JS z73qe}-}&v|b6w}!&c5dx&;8t=8_Lie$yoib~awEL^}UJr>jSD>lfU%WRBVthV@gE+;-^n7t1FWnY_|gYl@Odt2)DdRwrlN zBd{wc*IYUC%;5#RdulOG3>1<$_pw?IOq|W-GA{9~8i-}OZk=jd(s0+~^HPz{kye4s zJDTVv`z%Qwkz%ugz_3*8TwfO&$`;UrD?;SIU( z6#OKoja>RJDvX>x9L|I%V9BT+`RjkgX8|)g?}=<+4E(L4U;e^+8~|*8Hm=@f$6+>? zrghF+*nJ51P{Z2p*k@4YU@ZaJ8}RzeDDrIibiBjHxAh8C_^umo4>25?$eZO*l3$s) z^EMd`J(LGzrh9V-cWren@c~0qeX+ zjwJv1VQ!baYFq7-mNl{(zhJOLg(yR$+d|QcI9t@F<>15!kV?1_x0F3dn#6|Zt$~WF z6mW9>o`IxJi#cjQEJ7H{8LfI3(>ssq7+oFbCNTb`>-ChA_DzQhrv?q}Y|0wGRXM$m zgKfyNrP=|l>1x5*_jWIfcQOyxo$-pwN+3M>bp@#WkV6QYKp}Ib+Rp5}ZPewh`8Z%1 zdx1MU64*bkuq53ns~aYvfV2iCPU3?3(2W12SfvT}_aR`5WzJ~vGUkq^;9*)US7>AR zgeHcyOr+~)mxgg)EDL#OcvPaKlMn>$JD30?c0~%X*EU}4pdi>e0iPuBCOKy8%1?If z&0xgG^ZSqh*nef%1Dq8YDR?F@=stay2g?{q#p)VADjQMaU!<5X%r`Hh-W@l_GS#fe z>`TCZBU5Ji8gTU^CSuGletV@$ilx>MI!SOU@{g&Kx8`*Dgjr**Cr< zSoSP1S7HdHR1J>ts?wz5Ox8zya8eMOWAT1~i&e6w?>Qc4$QpRJs~;tE8ry%BKXDoE^6re3H6Sz39hPFH(0r=P&s&U!}z{m#v`! z=_wPDmZQ2<&p+q?*`gz$V~mwaBog9@8=h?cVv}Ktqn4i;80OpZxIx^YLW~aB`t;!1 zN+>5Q?}5(d^`KEDz6lbP*lta6317dGuqhXMv9Fw+6C);WE+a0m(vcb!@*422YxZQS1BO@+ z<2F~F!8fuQYyUQO=AzfJh;ZmvcQgB zlB)zqsB^N`?$}nrE{64>+V79_!JF!taL8|fDHrRNWW528mIg6`0G2boDsOo zQ1@MEYyO^~0th;?7zXeFsmJ#R0pGZ?Vt&=4EA!;3?F%*lbhpeHY-qG&!c;PxIcIZL z1>ZV^PUV+C>;r9uG(Cede%St{)AdxL=4t~F`mkIjP$30JX;hCdnjqDwTntV$#Z}^{ zI_oXRx%%+DDyg8ZSB6%ejH4=9k5N6mFh)|RfA0$nHmbbC0fP;_;BspHEo%WHJ6%3; zXNdVRpOw|4ZbbkFlre{LeQF>U>jfnAVLMJP#rG&y2jy2u&&apMSo0fx6LgcGL9A_r zby{}zC{lNtEuaGIw1>vxHaIyn7z5Fr6XK5s8HVRSm}A=R^3q8BiLC>WB_Pt`l^wxl z?}{Z(4XgYD8zA$pxF=v`sy!E$ABptrfd*9Z{4C3jU((C-;(=MOpke=JgQRV;trH2N zy?Rfa>X|a>DeJ7`FJwu zIE^LC705C0&Vj}i_z!EEiT(jGMmDJ*y1MmLQC9;+%C8X(Ipme&G{~+Nn-Ddy{pLhd+4-|}}it)SQwGTc3-4gr2 zZIwS67#wWXo&x>25d8MgEAOg6M{ti0Ox zQIt4cb&N(WF9=Pxbom^gY0(T09ClyK9N+)7(A2fS2e7hCDog?&$YC@`y`4tA$Yd0) z3V>4y0U|5FxuU3idHxx{_xrO|cSXo61ab~wH&D}#YrtW^)7ZT_jw-~{3O*SCzvwUB zxh$UaYUi1p=G>yyWF`EO7i`f96@Y&kyoka&7q# zYOP1-C*E%Ixp!?O??@}{9+0mhvj4G7i+G^`p!@`OqL^Sk*9n5lo&RS&y}DYv2LQqc zlF_6VpT;Pv{;ElxB;Gl2Z#Op9inA=Y7*{V0Gu$H29l<^WAn8@oCHrOEs7lEr+kMZg zLxCiK5>#}&ps#>~)ru@9hV>}sDrU4+BLebku|Ls8QpQR)#qW51p%`pa(K?A1`|CEtn0zbE=wmvuE2ik&j z7keMM3J}5k#@ew?>{v*6ZIyptlAv%dc*sv|BoET-gpCUB0XyXzWiMra59|E3njn{?u<& ziQfEDxhNDlP*}s?164G7$(SXJ>*8ICzD{Elm!k>+zqlps`N^M#XLFftnQsZ9)38VJP=&!yLv4O4SW?b*vWB zTN)lx8__z{I+J&J6p{*%P3D>t!|b^wqVTex28!61pvW)Bz(Y)123D9X0CV$Z{WCRU zw}-RH0>>T@cgcP&z~ng^-+{xvvW!l~$YF+>10#)r#1~uX9m933p{pgY^yD)q>W!tq zB3t9yJ?Xt7%u;-X7O})xgOMOjP`CA(e1@zCGKr9niDj;a&P{Q}Jphff{>rKJR%QLR z!;T@c%vrK{N^NG6oFTRRI)6+1t>fmsD49WAt^I(%RjG^$0@UG7Bqyxd!0uLTWu z<1MbaI_@NfpKAkvwhv2{mU5Gc)&fJQ#e!H*yu|{D#!|W8+d0^s2l{1$gU#SZ!*FxS zxekdpmUQicGkb*7kk_o6J9`B978F&;3ylGvfw^X_N1@a(9CM{gXM*UIBvwrHD<_Io zQFjti$lE3h23kMKwk7$TA_m}M%PMW9Dp_RDHTT9afR>>1JJkcgXl7%yuP-jQnRr=Q zCYq^-c#*xN0rC(0@qny4TBQQi786pTAhHZ}56M&o%7*7E?9lr1Ys)*c#@0NU`o9L%AZTJvQ2;_e?D?~j(v z&6~O&83-@;b7_^ObG%6j0Dv;-W9_J5F{)dMkxduAfhQd8^AK; z4Gswz6(ty(t0s&T5}vR^dWC2Cz3GZm^&>kpz7R&(;#ce?N<|HA+CyA6&`?JSXV~(k z7{pOgt|S_14N8DqAPMcd{iU=143zOs;=o{l*?M7LY0z19S7MPE{-eo>;{D#ScT@=87t_vo59Noy@c!Z7 z3<(SwL&`G)Hnp+6{@Rb$#CypDTZhCtX>x` z_%u}i)DL`Gu)xmp_8gnKg0?8%Re8nGmv9}Bmr~_xl(Xx}FENN$$Ii@FtYY`RLhmsW z0aSo&!gRga4;o@w+(9J^;k+xuJe>J`oSpj(#Uo9Q;(jLFJtstx*k7dU~flmfz5 zH&kx0ry0L#leJzbC0%c+f`O@Pftvj%Ejz8i+m~N;s}8AskCx3pX_A{HE#zvC6`ywc zDNnf>9Kja$rR9#H##XJ)H% zk8Bwq$0(gB0bMM`Mpi6kR3g9y?3*gl*$8Dcy)73yTU0|GB|jTpR?z#xQExc{8zHqA9#j@*uCtbx>R zKb^)`dBCn(8b!3MGuZc3&FEoO+S!&7n}u% zK8@oYqv;PB4d1{uIl;# zZ%C!;;^m&fphUFag(}hNrtr)n*-@~QLuGZ86Kk76ysRI=j887hrVW#7TD;Vh?1dyn z5RZ$>f{x|vEy{(=H0~=i8-a_d9ONBsIp&Bx84g{?;(lm$FR2(CSl~57>ED(YiTniJ z>w5)XsWEfXkbW*ZqQW!=!4G&XoG7N{(QGwGE2ECL;~i|m-VNY%i>6t^fITX(!vCe) z15k?Pt-ls%-;%3=O|{VeeHzepyl36)v$6#UDfnaIHLuWf4P^z$ClE(*Ad2#Cy%T?} zUIg}U)A5{_L$p=b0?@t)$#~SJQc4pX1@N3eOBMcV>G+P9`}5>#CG13f+y8f@0yOXA z86d1|Rr`cjj?q9$4M3lnrrtb_3ERq^=(_Ra zn_@*l!s^6H;b5HC7LcO&ObP^F5K+KlR$;k`t|v=fEw;d_d%VEo)9mFcI;cA%yeb`+ zxRq1n&@Hxiq_Bews3GEmGjd?fSm_$%j{-2ZfP+HRj+dHAO!m4^JqEX66kQ& zjf}?+txTAl`9{6wD+@qEl9;U_$oFx6BGoZ6=K3PraQdebv!+KiP1!!hVdNHg^)imB zyl<@fyh0(QaXTLqIT!W~1_d#XRfb`b9hy{fe)oWf(jC%dKn1sigN8M?t<}n#)_$Q} z5y-7-sN8=LJIlPuzqCyIp2@j{g8!wg^UVnwak476|NGFW#_ zheFNgqO1>XdY{Y)1C?~Zn($kZs^NeM?1@#XpOw#3mvom)ByS`3Zv^rwDwHW-6Kq!m zmwDP?e4=~cc|0M2lUKb4Qt@KT`+TD<20>CE4e)%hLky%&{)u=So>?hBH>dgn!>?{1 zhAv*|R>~P3g4;ptpyRoJ>FhmuWl!a2WXDTF(llN%CUxPu0w=i;{tv+8MBrS@>1opN zE*as@H(G4oqGQsbfb=Kg1kU-X8Cn4|>u5_Ug*#M=%Q(;>>7bcejDHF?c|lNfn_$~D z$|!6MtMsYC6yXB`@2GQhFxu8JQGwW??XVFWu{A~!g3v(E| zRKpflFi8;cl|Edw34IErc(nBV;6$u%Z6f3jAtF$A`EVHsKJ_Hxi^F*t0{?Akfn9pkR=JLxjLXB`gc@%1$*!xfhMoSn6`NV_m7KPm}=2R+_4n z%|BgURyM4@vt^>W3G1N}!_z2ccZwx2!OPn-q()uWDM}v7KURvD8?OS7(5oSvdYvd>c`Jn8@hxd=PCq_uZuK7)2K65Z;Ct70d z85*;zt{>d!pRkeVc@~*27B*6?1cco)J}x!st<(ow=IQkdjBH&9Ha-!?R^GO(e_Sfd z`6q5EEO*_{4-i$Wzyqbb*TE&!yu!9)Wc{B)l@rL9_ZG_wxnXZnu0v-5J)~1I7%#i; zcLtkBnEZyBtmDad1a(e;bTc{5EfT8f#m3zmJD$eBp#tVv`6rrtSWwy;6xJ$(7Z%2b zwQ9}&{?;7#+ni8pRN!_-+S&KFW#ir-7t}Sn(HJ2k7Vkj;OhJidEi9{{zlvJUr%y{eWb~FQ#pDYr0eQ<+l2YwN{y%kJ8kR z1t>J!4Zv_^`G4aqe&53<^~gXFHSMQC0g8aHy1sO73>BlAs>$HeJMHbWpAV0oAFS^Mgi-UJhiSYld^z699guniY&ky*VroONpgj@rYTK!m`DX4 z5WEc`Tg&DoaB&O5rerO7h?-Ewudd*6UWO{Fs>5W^9-^TV5z zXY!b@=7H*wx^qB)`o?z?#-Nzjh`0IZL$U5Rm%X$tJa|c^gGs}INn@JuGXta_ZE*YJ z2XU0e$hkaJ=a45v20{=7=6T21t12D%xpYehP+(;=`@Dy6Hfkf{{;rIHzTBtMi`5$d zD8%Q?h&oq3V{x;yj|f!RJe%;BXHJ!J1QrcNP}9Se7;veK^jS32uqJ^g^h6#VcG_W% z@^hZ!0e~n~G)iIG?v?UGTVVq&-QF_qhco%SY=*wC1&q~kVNjqv6TNW_Xt0oYi}VN# z$@uV#kvbVAS;M|g{9!baon4Ou6Tx4#cJe@tn6S9rw^ovghi+hfWN^679Jro#FP&HM zbYgFNOq(1xySuT&kRGejYU5DvO34GJD`swX_aHXkueU)$N?B)OB8gNxqsi`6-w!^! zh*-)eY}<&*t$q_v1ga6T;a2~9{x*l6i%twG@uuF|c(MQCR+OBdhw6vU{@qZPEI<^(O|{egO_ouP`URp(%90#wb4Z^PA1U zJ<6DY@Znvaf0cWFIR7*LiT3EnuFYuzWW1~{pb@mIwV`>eUZ>LA>7xfnTDAMEj4qIb z=eka$VkB5X`dh7Qhq;s!Xd9QpE z{zc5U_td;z2qH0i>D+X8gqs_44D}nkbPO=^pi!T`knN95x4PsQHi6M(m@wZVi%PR< zDlnG*Mw+_^OaFsQ8>zz#&Bss2XwQ7sQ|+-j>(p&pm!gmV=q|EEhAgbLU^V#y#4xt}UkA*HjdQ5u zuCc02&9@ui!+^-m8%al$*65Z0!@P=by%b?BFGJoAdvqQzDzW~lY+*hf`(yJ(&4=dM zBwM@Wv^?NNSlCt!7ql3*0(|**0x|Y95~zHBtoaGlAh>fyfI94`epbaNZV#yhKdTfx z&t*p@KB>vX1MZlo3SDB!+2Dh@^fPV_OyMZ+No=S@I@1^5YZG?K*0Y)m^PY%SQWAp5 zr9i1+aDVIYmky@P)94+AxU?&^>R`XGJ@g(-<3axSmu~HHy)3c++M&W%)hjaGNg$E! z{Er{hzaY%a{v@b{&4A-i1esG}(t!w!%^SN5Ddh?qpU(cjuD-JE% z&P{6$^4K~5nEq2cQ2N4nuytQHC}-F2))L3esc=yC4%DT7*GY#mpTOzO7ltezeiHoD ze>>_%}xAHbFIm88b-O~m9UkWNP3uIt(FLdf1Oyv01~&m5a~tE$QA20DB)XynsS z`4j@rYmw12ZJ2A~Q2GdKa$WWNPfvXGhHu`9Mkoby9ATDozY=!BQ;OG)S3Be_%&Z7B z>FtaC09E->HnNkpwVheNIQw7b3lb`|t6rLPUU~pkqd2}r5Fb0Nzjhu`X4%%(yLvA0 zfn>|~cH2G$CC|P*`p^$0K`YPueA6y>+zc%Sv#7^T&oE~^>2qH2UHgg+i1ct z6d$kVETL|npAe&5pX#S@Bz$AehCs_LuZNak7L&QrMgJyv)Ku?!&hZxfS1c>Jn^@cw z^&_G4F1*Fzd=7k^7c%s_ij76r9HL1x9JTWWBqm zsd;+P(Ng|X+OeOCS$p}I(HtYs4$xL3Rvemlim!$5YfZNj$nH>c>(^1 zdQhW6qy0Oy0S<{?8iP4-%1!$x4_T1=kxNNMNKL<%7YcTJ$7pL18=!1#Q(k*ag3U}{ zzB6_^Z*pD7((_~%bgby;^qLW?Hc@7};BttO^S`{84+HE( zxfW<)!ye9`Ogo>HWAC>6QNk5)(Vq{6@7!54uZRr!j7v=feEMwL8oV0gC>TNWDD_3K zZn<>fN2){Si3SGyiu;%09(U>=wYu*P3J8ctlQVldzmH@?9sJGR@GJ%bsR|WY*Rv8` z*q#0|7JkV-yZvPX^6;w0*>FSsf}Xn5mD1)71u}I%*x2FQKq;!d;fd!5(Yo0sRJ!Od z9^~mZ`exDq6T%>|!(!>t!+^;XKEAlKy7`K0;GpJ1L!I5A=c|ZZYF8V(>TWEg#px|95m56Vq%u%X|&bJO}zd0+|ttq@x9Y3$yzj74=E-&Jc8-+sfpK*s%PikiI&w`1=Sf@Ih1nD?tY< z!$2z6JE|#2NCNg@FXB2mdmdX>M3F_4-Wy_{9G>TNJqr9oK6b6kLm|DkrZp9Orzn zzjs+PpaY-&2BgTzR{VDO4D$jFaFN!Q-P#j1HCWR1B5Q{L@w|8kpSA^1IZZ6ua&G}N zGHIYSYOo|D3}|8srR(lL^L9kl)qMaxk}5D}`t}xf;so!#ptYW!=*~Y@HsIwNy-sfW z6g~KfpT@rCox2}iRTo+?qBFohX20ln3dD%vx@MYAFiTED>vKZOJpeVYYM&DefX0V4 za@+m6W+W$&aqzA=Q2DCfVq0kDHCMqvV3GP+GF*qjx=age!tMyKdFNxZLJN*lp9D{` z^eC-A3NJKvWXaaUOT+9#w)>}c|ypzupWVC^Efghpmqmop$cSh$)I7>|gUzC^z)PFQc^) zAP!6*Hr1BZp=?YLy~t-4o&%&%z&(S|Bru|MaLydc2JvhKO5$jxoxr`;0fE1C&n>aM z#E1f_SY9*kU+m-oOhGR3f@tZO0A;G(Oc3QSX@@}X#GqUZ)dVO_(@EpPIu|#lo|bPB z1FOK329hPN9YtYo{v#?Glo>)ug{A{mDc{U~1EsH8Bn1k}HA#19L97(6P!we=auq%4GNW9LGvzc5DjX@aALO^Sx7 z*e9BZrqRPC#zjzpVn=fVnAVIiQ=eg1pbqpqY>@psY;n5yfbd)xwQA9;M?5rN#LEmk zisZ|mTluVN00q%6o6i*m72-iy=t!{tWsm1MU??|vu0_^IKR8Yd189~0@Y^6HaDMlJ zxL@{c#y!+E@_ zIT2XHkeV|Q@DOVf=f0wXF@E=jEN!_e2t6t=P9@ zcioqqhHVOq?Pq5Iw0VHefmYwrLifY3s+;F!&Y}{rDkN-q--rJs8c~2I8KA9wq?D&G zJbaBhSsX_-fDz@P}tt+yXe1>(y+094xgeibUHM4-o13BB#&`kR{4nn_!D&R9clCDvVO4) zLeaPXw;Rh(CGH9Sqk@8pc4~Tf6n41}Z73TA)xYDoW*}DZeRV-@L;pnoSUkAX9PgV> z6=9?GU7}`Zx%4eOVSNYknJ4wbHBAD7YRrX9;vPPu^u5*aC-{Ua?FMYaPgFML55>yx zslolGPdAep_SsMPN3GCvXI-_-T}|rolvs%sMTy4Ki+I0`o=vWLd~>G{C3fKF)JG=4%1kS{KEJnXpEL2X%9Q&^G@zYIL6zLMXz!?)En!$ffY9+Du)UuKLfxKKt(ayPL1G^y6@U1J% zB}bL{j}W|FzJi{v>BR10Ms`uhxw)$8e;L^+z1cCQ4ovA6N9&wg-ueXdf>UK&j%qW@ zI9_C5!t=zjF*aNnA+$t}IWT{SOX0bv-jVb9*D!65QVip9Q?(t@;!(vbe9Y7 zII@lTe__#@7A+o5_7l{+bA~ZZxi0XunO>NaGn3a8K{qiad9Tfum_xV}4gLO?j(7Um zycp!8sg-kyl_U=r7ssWFlxJf|sC7h@W`YKbhsJKMy)GlykHM-5Nk$tsI)vyVeD3tTgw_Vu3}+w8(nMxSq#Hvs-0| zDbHH;)5(6q^cG%becvuTapYs)jan8|X!0{Q4LM>NmiL<& zy23JsfS7%aV4G4sWSiTYp6^jSa5nS%DX&1uF7&V+W=FtTf3ZG4F3T1bH0?{|pv3)^svcMi{Ez!mESXiToq)_ed zq?@@peVH2bvfaTKH6@43_~=~e)a9KXL9Ckn5X(>2H6Oyf3Na1zbAX=wjwi>Ju}E~2 zrQzbc3QMtq5=KT>>4)_dZ|qcc3_rA}v0O-jaEWrNrWDwPsT140IkcH?#3ctDbVQR% zCpcE%QjUl-k5PC6XTn(@^ zo7vo(GZDV+53`Sfgtv9NQQ<<5Z#;iO)82+V;kVn%`6~6YU(!ajR zq!pr@5s}FIbXZW*h1Y{J8_Dr|xX|inBpe>2CO|OAsM@|RRD;l2 zz2!lz`Jai>E5s_3F=tQz&`_rHsygh4Xw(MiNp60`HMpn9pSLkNzwVuSOm6&tZ{IlE@>cY}+G$!3} zbiL3o#5F~k)k^}>84{~;?tz3a<{!`=v!qeS zlE$z!!$@MVq{vmY{sRU!lC-b9SugX|2ztbDOXnDUimf2WI1v)%KvBJ^!LjjG0-b$_ zR`~)+@P+-Q14Yz4IwpSfUAY32)f371W7&QH=ZH_JVuhFg zuy*8keC+G<6@DYoSWc;6Lb8ED_+oOqFmFPOpI5=TImxw|%UAJfbpo@-PbSfA-IP?M z_}Ko#)KzZ#x}Y=#ATUYNVAD5<`aZ+x>UYKmK^qp4F^Z-^`e{S2zN%qkoF#~Kl)8Cq zvcv}EUjNvoA);RlxI9GyGc{+ssxO+tYmmb5uKkFq`qBlL^eJxr^pxgYbc1#~ZI6Mm z{Hvd2zQ@?LxSp;$&F?7QOiG=s<4Yq)#6_#om1sjVeLiZT+B$;GaPT0jUo}pHqig;3BP~vk9LEV);PSFrpfsCu5mc@a2Qrc4Lf7K~s zIq$@nW_TF&QXVj~=;o2TV&hg5Q(hmYTuu?$kD$6_MtJjHUZ1Gx7?#+maKh^7#*OFx2hVb^`<%scVRpSbV@4_FTFe)EA*`yrSK}>iPQ1Ck$`vZao5E+2=wO<& zP%vgMV$~Z+T@>NkKXYK$1i4GTfFEbirasg#ycJs4ATIjJf)Zo?!u;+}Er}Jqh!dt3 zCrJn7ODCZRal1jV7j$E=;hdL**jQ(^uZ5uzHCd1b&5fHuaFukfZ$u0BYvPh}AJ-}h z=DIW`1Lx1;(o(g?mhV<(j|7{v_?)r$t#>l-VzNy|R~cr(w)0BekINhxB~yOpNLW30 zGZ*9jm&iGyr&o)W!cHH)m#6u9i=yeq!68Oydz}ogBYk~T1NQlL8)bJYkUvf zOdrfnM*VEQRWWARL}B)jO)6$noT>R>3N#9(=SKeLx)Mw=GoF zi*}SX)5*;Z6nw1%YQ?5-80_xrDH;WMQkCkOf6cPtH$Y}{huHYR3veA z_jnxsl`{_2Q3Z)M(n&6duX6P=u#F*QZZ^}WaE_F*ML)f+XcaBwF2vJzP2Is1?Do;3 zJ=D5Fz%)yWvUf?<{Ogz>KQ4_r%^-6F^~OL|{!(F)BEsV9g;Ca!)YZEom5mvx88`oV z>noheSNN3~BQ07d2eauj=2nA?DHXJ`8;GRK^mw49a8G!uT|~1_GMlm`1GWWzT~0|= zt6ia2}73_n0983}|&mGY->M!4IW3GYqIM_sfwIw>Fn2_e3HS{Xo1M zycib?I>q$V-$ZF7IQ6yUlviX|ENp&>8zCJb$=ztkBy6D;5pEuDE94?XqU?+dIQtlGD9ShPL0I&?+c<1iP>Q1Mw&mQ|8>W4#mYfUy?lB$*1&tcc?eN+TNP zV4@NU58Ih4nE39#HxK!zY2!hklPNZ5ev2L!!Al~Dj_X?m@1U2x!NRRtDW=pjb` z!3bz}f{9LiKg%{7Eb|RfQcR#p&e3JINU)FnlD>yme@o}l7_wdyQH@b-ws^uRnr6nJ z=Kop#p|OilyoHzj_lu|sE?Y>dN5-GD`@tTQARY6y<81mtrrs-&OgwK8zpKp% z!;`cPc zx{kfu`=Z8UA9#De)G;#ttfjAHWvn+b-9N1TVLk}jIx5g3z^s)$5 zpPWly1Tmq-j&p?!(ye|y%#i0H7=I5iPJx}@LkLmWFprwS+;%iY6 zjVzEINz&fvqBLtac^a(RcEoEnrp?dY(P){^p<;wtHTyrB7kYK(0j2?Zzcd&vq-eDiVjtnV z(&UjpySYO@x^Kz6-qNW^XL!wD1pZ#A{F>Q^l>tKeYE-g*p}(mdYZ;x*Ru_wP*b=Ac zRBmvBYy3`x?}zV=9GO<5N0li>EfHMX?}W@BKKVGVTK)_!7J@MEeK7Na)AYjx6sa_u zlCNZYQc9Wq7@whjMZH7d5!YP~y$EKO4i2J$YaaGfw9XwePn~ne7|5^iqm7i$q=wx; z++OBRz^^KlCa}FRFyg9ty;eW=C%E{csq*($XO`bz7#bLnu#3YgdbLmPCfHx1&t~Es z`_Ff240TV?ilwf)uu{MYofy+o)0wa!0WAD$#IE9% zXx8VF45q#DQce^m8x36YPON|G66^Qv?sQYNhK|)JhwVMq8Txm16awUKL6UDQE8Wc? zS$cPVzvd#X3+65|_bxKcAtP7m37bb>voF>_qv_jKBZf=gHnJ-Ydc7#pms1l>>5=R3 ztMp*z=MiPNcmbw4t1px%8$z)xi&M5;H>o0 z*)`#hh)(iu1}Ue-)+dOj3huAbJmTIB!r;u48dgFngx&1Q$_P=-pU#+(ZsmIGlj~B6 zVv}wOX;X(#^%P}Ndh=aE8uYo5xn+@vxhP{+YE71^c_WLeeW}$A=HYy`EP5WXC!YOd zhR@aouOW69V>zyB=v^?2hi#29w9m?}R=(e373t`pH|p-FYkc6^B*_Rr5Xp?cx}=e& zWgefx#BzXqDYofrKCx&#<_NF!4H=9#++_H4-w?e1J&4DK@!wzKa}{iNXLvqwy1NB7 zTR$aGbPch^%=uxz=$9@N`9NmKP0rv-Qj$}uXqvjl^(D~fSF5rEq8i8bQcXIXshz${ z-mGCly*C&36fVln>SYI`HATN`{OqFh=bUF^ihv4vOx95jG;Xb3Y78^GYFIR`8m$Kn zUUQpCBz$|N(Lub~QK<1SJi5X~-a5;u0*w@U+&u~@jGn$0uDY%y;EMg}b8FaEPAbuC z{Wtmp7hP?-$5K$trK0TAd*gNvIc=?hCMdO<7i1m%2L1Glb_3&U1G3DPd<7H_X-%!w zD>~hHzK4B;__G*aJ^P>ja05eXQ?rNNh545e_vgv~VV`iZvMUE&V{TYc@oFBva?m~U zy~SV7b4>DE4WozjC$K@a#>n(is(wPDQUQk)MbIFU17t=wtsr?}P&YlOS4-1RF(X7$ zIYy?@IdQOM5H>2Zb3WnjN}|iKy}_jl6x8;*(R43)jjZpp^!^NrYIr%$SNBdccFYLg zWlduKP@C?~O=vh`2J%s$iCNwaB5Y50SRY)VvtaQwBJPf?(jOHQ%6lic8bmvD&~;&E zE#oIuynZ<1hGiIH_(mg9nDa%kF-fYJpSi8Y_JX#b>!~c7?hqbd69pOb;@J<u-=*K8ql^w#&CE|70{7k;h8=4IWuu8Fj;arA&Hi+WX%-@>! z8P7PFnwye8cS+uQ^pHph?j#yB{zJ#|@bUXGT|p@iD5uDHaM#`IC$+xMI5vGfFB(~7 z-6cUed|sMvq`x0C7xaD2xC+hE&4#us*hkP+?B{w4HVc<2SEszST|*!F1`!R#c$cKr zqlynRz`uL#REYw=Q{Ug>TBVbJAFP26nKs3))cGAaUT#%d@1J7v@Ti2?J}2F#<5ARZ zq$9BbF^8e1eH*TGW2;jF)-PF-VrxcrhrM#3 z#m;{8x<{Rj?2b0K!yPNNPxM_*SFfTi^$pU0+=^yVjBh87^}RVC@P&kE)bm_q3GWh< z6kphwj;h=Yfi+AxR|xB`OO-LSgsMWm;FdI1S(?WJ+5cgzk*ELJ_c`7Cgih{iZszq$ z72V9B+~6JE;;^F&y$>p5A)0^bZcB>CXb3TZGMN1#4K~(kA)K|1KMh4CQ#g6%1DPJ& zz0NG5LwBL#Y+P?EIT#+(e4uwhE7QG6!|YlG@in8FLNo*uqpHLDkGr#5nIOZBTBhn9 zNTuGDxfmYFKF;iSs>OMk^u3(Q>hX~^&#*G)`xeNtS)9Do`t4rTgQ_@UoC*Dt1iOJv zIyc=6RWW5rkEF_fug`dja=L5{UAD+@ zs|W@r_a&Wx;O&e+v$;aX8A;kIrx>(_TVm|v3;zu60PTbd&fF*0mz&YTA76o*>CgL^ zr~Iyv%{(}JxrVUQH~8EXBh(obVZMYE`L-tq+85qjAP;Zex?Q4@17mcSR<9)VH2UtU zQ{vc{Rc|$#3s^Mlp>0M|mlAd#?5L{qPDVdx{IMxDEcQQ&&c&bU|9#_|vCV0R=4@st zQ^Z7a80Or`sU%98LkMZkbE+|i$+=XcIgE-*MJS@$m{S&$Rg_Q79FsFSbo&1M{)hMD zec!M9dS2Isz#d+eOl3g3rnx;uS%)K}FzTiSM_ysHQ-iKIT*p_&!oNrEbra5+qa3gz zHCj$iw-LbD1nlc?S%B*F6b&_QmdTckqAt&&p0t!lgRhCr^VBaU8#0XX3B05qUuASX zC^^r5;n8%E!#@G86nl|T4iW*c-O_29J;=$qt{(E>r6{D1P3EYI;L=w7S_-s5NA^@J zGdw6!ro1f&?D?^BSw$^W2Crn}LfaFhm$}LFP@p@CCiiICj~A${nZ>)hfgNO|^NOyN z&<*2y=Lk&_ba_N=9{I~0yJIc zoNR{)kgE^L;J&%Q(rtfnvPYRpA)`(_!z-7|lAuC=eW@aSO z@o=#YEExNU3(*LMB{KT(7~A1#NT{9x<-GAFf4u|Cre(JjqZ%$tyhA=u2OL5^=CBUt z5Bn$Y9p^))L(nEx8qnSPJ9{@(Hn`AP>>%*&Tvec6Fn#^;E=TQKv}!2(Y^9M&;HwD5 zG%J_mmCsZg8LGWLY>4==YDNMmU5yBUz2kGI5pmP{r>1!mGuOU{zw={jbQ?OBz0Rwlk-&PaiC<&aVcC}I;3-saQYr&3vc=>mxN zKJ{gJp+e?#s&+k?luraDzf+OR&diIc)OY0Xo^GYVHqMPM<@*i?6+s5 z`_5{H7|%zG$Vq?KFiz~~ThClzABwzaU5}L0F*jY^TTZ#8St02Od`?Id9+ag*6VOC+;Y`#2pg?Zzm8_M#IfjjUp+oOU>69sEzlqGnEN)p=Z`4Y`%or;<${nT&+ zW0F#E_e|}7@+Cg`#rvge0Q0HLDK3&0m)*@;(d?TJ1xln@4Ojlx(uDKg%90S>UbA#| zzP8}>Ub6u9>EzLndTa=|_pJ-)(H$CAG~@S`!>b!r(bR@YdSm!Zh$?kn_mgF3Rrh6b z;c)?B7mPV>t$F%7`_3*it?c7a&-A;2I{R`z+%yh-m`lhzm_)l2#i2dZ8tYfh;yWHY zNxfsCoY(izP$&(L{Gm6jkFnwBryl5~C+r2Pe((S!f@*)`j%;4b)_}@)=L%UZ(vqJg zX@yd+oE#FFr=G4}Q8uT&6zYr|4qdTGNd5h)CKP*SY+rwCfBOwfb~;Jh>`wF`zF^(1 z>SNlNccNL+)Dz8KrU}+!rexq-!iwZKg)meQ_^4Ud+*y=-zQ+i#{im7MPTvOV{ugDs z=WmeVh^lcf*8_7u{E0g9>YLX5%q@9<+J0}IIAy&I)x$-%sZyl?35TFlQDOxjzTg2s zdy>bxmc9Q5fw@)oiaEY!fC;V9lV>ra45bF063eL)Dmgkw3Ms|^B@-#C%vwu!QzQ95 z*&BoBob6)iXcZ0kG(c4v;M!_cgPS}k?I1)GSHHf1=*MNG-u$!%E_;yS$+TN`Kf2ErlCp(r*k8bs+)dvye!)71D}<^B$3GRPi{C z#Z!_)DEw5h8or)?OSovVZ`<*=YGjjT_Y|PR(+^#boU=NA8{_=P6_8F2wjo)&dWW!e z)8`ZH7hxc;AsX>1G>C$({7J}+G!M*R?v2wG=~;viM%%O&GB|E}>6zUkwq78I_Eo|I zD5nqHrWmf@bRVRr*rR1z@0o5~HR4Mxp#tvyaS#p*Qm&7rE1a73FJ~!Q0JEd`b1M12%EFgJ-kM#nntfMbcm0 z-m{>eI`lGF`5IB%h<1oFc$e9>YB`_|D%l|WfJ&0)*;T69RG$rSOH&q@pqA&kj?IEjmO5gOi3>r=t`q%+x;a%u!Tj zm%z(6JiPyDy&&<`9MXZgt5U^D7tYnBt0-uk^~L^Ll&LFG-H)9V&MQ~;FN#@Ve+NJC z?w`}U@_^%xka?Ipkyhgz#Deg19rz6?E-Aqe){+G9-C)=x4-t)doH7l5J`oQ!?tOU|RMf%qGAKNRwA(OU0gkYhyl>jQ zEhtV)Cq42TXn4DI`^P)Bi>j_IkkR|x-k>X59aKuNSrDcO#btkR&!)_zjq|II@$8)9 zMvWYOd!d(c`a9j8z|#UFe-~6j`XxVa&HakA7bf$w5f7;Kn<@i-F(>AW{t#cZC9`3* zXf|eU5zrIT*(*!psp6D*&VkE^q&X?_4ATkdXkPsaCHvh^>vJxE*2$0(->kfjS)_0U zE}s(W>#bca)NMcZPqcMD+NKzZsylUT-l3$wd~M&&Gi$o_kt-4N#}S9sLaouMikS38 z$|cPGwD&|uwsY-9TW^_Z)xV(_(i623RqO>sZ`fBcJ+g#i_Ts1Pu2TUew5x#vmy5Qk zBDTn=9&*m1bLU5VD@5Rt$u0NqnDE;5QKu8Yl9% zsez4!;>m>wP{VG8sdyi|N}Kj}MpgjBGW*^jp06^34ZYYwZ14XYq;8`v;bf!IJLY4Q zHczjW1s7Wm?Pu4fK9?MmdMegNEf|OEw$mVhy04@SlRn#I+a4szE`V|30NA_0pR#Ws z%(0gT!d!0I!bjZuob461P2bk;uJrExS`)GhJD^j1a@xp7x)z2xT%{Ru=t&K+{^H)n zFw-3-^Fk&=pu0=BQ``Y!WLfnXE~U)j)zk3n`k7+JK=j&Pc!I?W=$E+BfYFI(()9`S z3+dknjNjedqGm!8r%4jodv$ao9=x!S7%D}*L$-Q(nsae)pwgd51PNlnWWC})Y-gFd zN{IdKkJy-S8k`WeRiJA;YDN=?!4!kX$~y0DpL`2CPzM7=lSY+uIgj;hU7m~t8!~L( zr2Y?polnr0XD_K!Z0uZ({g;M?NebDFfBQ0yCR++<3ii^BwS(A6+} zSyQQ(gLoyz+dWY$e>3n`PyLtsh6pFDn7S?k?NLr8>hoVNTD*Sit6jB^FDm}GM@PTpNI(waU8s!)_V%LP0c%N zmLB!hW+%@fcX#Dah4#*B8P&1f>-wNgu4I8RRNovQa2$i^V-_C~!FPXbmM)L2H97Uf z{k0Mt_59PO-GYx(0h-7-6HW#eKK;~)D5`kaN@E{oQ*nwz}+Uz>ej+$Hp(CM46`;; zU7rDv`oUY#hOm~~Au8_+nA0<@*hyz6{C0f#eNcBQ_b5PIg04EPHe%IK3hA0VqhF_d zSk~M7T2>C1GgUsLSLp4uYcqoyd|1q-k}YQ{P>~HRVFjdc9A2Y=N;7aL%$`#LA_HYk z=_%9=xbkDA^5gj=gS4M!`6XC~WorZ~JW59HV(zh@XCt&6G5&6lc!77xPJN8Jnz=X?ZOmmR?RZSL0J3LKU{$&=Wj$ zlIiUm3kt7E+)3&~iPW#!i0#ad`DXd7&DOK#>9R$BX)>#E+1^z5B^Q_tX518~6$y^1 zBbwhwiS`^oQ8BW9wi3Yaf~nMAC&T#3HG{ZiT$))Jiti94uhNe3|7ZZACsQ4RrR5s| zq_<5n!8GkcuEy4i z=&C=oJuH3Jl@4Og5L)2ONPzK?iS=4D*li=e>Wbx~z<1)48iL>9kt#Z`Aqe$bU~xi- zUn(G^Sa1L2jao|6$b*GWs_9;_HFF<=9=0n8Fgvz|Hlz^PZ$HfWz!`>_Vh7vp~KUAGxIYV0CX z5`TzJ_wTc~mUZ`p`pKPE17{#_zOI!9UDUgv?SzoWJng|tsHQ}Kdn5#)+YwRcn655o zpvi_k_#2b;2O&x`ZSNbJFZB_(u`dcl`{mp|KiU`SL zF-L;B{UG8sX&P1@Z$L8rmJ$sK4=Ij+e)AswBqu!tasf-OSJ}Y%;xk5!!Rd=1e3ZwOSW z74~qUgdrxvKqA*)Hgm2!ST|6U*Ce&~D{KA4Q-*{IjjJxjL*v7u{q(G~2f{NH6|W4b z2ZTk+UD}zh8TaieckqO@h8+kNq&%lqew)#u@H7CQm-dh)#d_UZ;QhH{ML#vCfu2&c zTiLt1T_n47s%3eRYgb5^1LzonMC31<)a6^=sN5%4B^RZ`UA$hV&-LQIMnyb2nIQr} zv4(#KFSKzVODP5K%DK059Z|4IzZ`7;*0D{{`)1B6nj65WoQ54|JNZptrSX2ld`ZSr z9e8w*cvc+@*PRWP&5JX;SyR%fp$$Gh-66Jwx^+FdgYs~L%2cwxFAsVw0oalBp+PyU zfNiQ&+@|8AzTfsjnBU3pB{!3VKH5TI<@vsK_;{}C+f&JQKZ4Oj{FAXHz;b9}>7oJL zDDzGBRVuz#zjv_1sC>lTD^FY~HoVaCC!sv&<{JdYu>Y@{ny0EJa%~Ol{AdvnayeG= zpSWmO9I#AU88LsFS~=dBLJWbPKD`4hvTr>)H>h<`v~TbJf!@!yQA@f;97o=IkPy9G z^Psl&Ql2T=LM$5c;CAg~tab7+C!^{)kBhov1_!r^&t1joNB$AZSjeGY6&$QJ^DrG#ANs-7;y=eu2WV+$o0mJN zv}A}|1d+p2uSXLylI>_#e$$WKn<7*JNC2$t zbsg#eUz|qhJoE3!`J9I?tgz;eC$MvF9?D5ysCIQz)vv?(ne;RMGG8iI{p0-C)6S=dI5`7aOOY0OYz4PcWCxgS z-ms7G)-M+gh)3X-{$i0ZDBHW#eade1j5#y?nBJ({g>sD`)Z8IvCx27M6y87^tF|apW{s=>xt3J*T8Qoe zYz$gcG6e?C2J`kH?mCf*k0TjPUU=f_sR($hL@hqp8)roHv|&~%Z@Ol~m1vin&|*)e z@wDzlt_%BwYPOB1Lonk(!^3ia7rQb8GR#k_li^ggZvW9yXkG@v3|G+TJRy=0PvHGkc*tm=saT zkDoy>FKk!%IdnbIdu(rp>g0lUk2beZbk-a9eV+DwWuHv@2Ar;uQ~-b5EcAGUo`?NHLpswc%6DH>MrN0{Kzuu`_W7fq(SEm^5;B?NJp&h*1z{ly~ zMXMm@-x}PxIkGG@9a`G1-U|t_!Tqkh4qpF3EI#6s^?>#L>PMS+%uz-Y& zXH}Kr*VK;h%u_D1;Z$t}b`30Di!k>PA12sPe-*Vjq+O=#_}^#Z%mE+$;X1MqhOSQ>O%j>bP zHGAQ)^aGdvUzUfQ<5V>au-^CfF1WbqO&6xCP2T#76T6L2(XG0g-AlA6|1qE`cb+&c zyFZLBeN`{}FbNx1m+=Oyc4gm-`B}7pLznUmr%`f zu2Y~g8%6sGExyY6{)R(JIr~!C)3MuGVq_4owYRwlCbL0s=Kr&s}&1y1YjOv}3z zDXH-dnIJwdI)8^lT^5h#`Q*3KIHIJj+wX<6m;twM5azsDeg;6u6Vx%bIcLSsG)UYy>R=@K? zxWX{?0rDw=RqqWNPoz$qzUYgqF8O0#RzaVgwbHUqhj*sfkK75UZGndv51_iX4-|?` z@Mrk37{IQ_N|^7TN;;N|eqpdbBIFAP?#VQ?K5O_6*wo5yNG~GiDIT(1Yv0E#nM^U^z-w-|=p*Q=V4AcZm($*}xs+XJO-lK3%P39@x@l_ORTS*|A!zrDsHIIs8|j zEMc)?+;PddssEMj!9F_KD8pRNx7pyWV79OCQzU=%p`>lxoxiO#$9(Cr{{fCrsF$9# zJG^KsE$(TulXs*Fp8Dfad+#6=+;*q$)N)45IN8=5Z-&S)G1@tV2g24l6OZ+S5H|BE z4??80q}(~(vV5u$JWA1rz1C8m@rTDVheSMK`;enDov74TW zx6=?uD~IM|AzB4vE`Ye~-<*s@b}Qxx57M`}-E$b;NhJL{zYQK!o15dWQ zaMVnH6Gamk+qT?*>r@r$mN~5$Xgq!x=)v|%mr+{nabIr5TZHqGD>3bZct`umbumD{ z48)*tsE#wKl2i7xF2hpn=9LR0){qnH00+7!ur7~iVmW}$C}DkPwZw)|SM;gVo#>+viSDTW zZtP;B@9{V1YbMHE{kjGk--$3+B$-%D>R=(8@{I>vthg`3?3#Hk)Xsc_T&}&}C|_Xd zk8JaaG#y+q)%fMaL2jr7lf$=>Lber_{Y$2Qa&iq>30vR^`^j;UR=&aXJXr7py%kWu z0vaT{kKmd{zU;|TOB|r}5?uOp{?pB6hnT*kZgu+DHHYsZAgqm8SBk{d(tYOtlFrm0 zFg0>)orVHmsuUDk{xEVmAU-=Fr*=b0w8v!U1mE=mXl`;qoZB7GRpFplc6I(81cCIU zvnJfiV1i{a3BGB%DpddDP9m0_(${%Yy+d&_>M~!k{|c!SBM|8F>ha&0pbWg&WmMq~ zb6>-#%MxsltrB?oMp7?Wbp!Gvk&j+QTmDgk_^pal_7gr{2*G%W-gcpRiuQpvn->Nq z54xqnOeiIY)EjnAZtl6K$!#x=$3r_JpJ;##E)HEqw#Rbq&QrFe`Q`2JQwzzEruK)4 zjVrQ5cSZO$PfBjoQp<+Mo-?T%j;XFMbP>y5owtQ{EO>1*Z<0SoP@Uwd07es1hXaOD zHCD^@8|`dI1-v;kE#3D@B%&r>01;(ROB|~Xi*8A~Xp<3Wjj(d9_3cAfb6oYDsNW(q zv1|7)L9*{fsDgdDaFbkg(F9nDUKoszK z)MLhW_*`H@mLFi=wjlTsFdr9wiEuVW5l(xLa2>JS+7M@#)^OxjA zVYR-APS@9<^p^+5`1RixmDropnlFmn+OJs|$^t7L#Yb2D_(dWZ*irw=3kK|K=bEJ~ z3-nG_338|&T#0Vi*Z7-64L>h3%o$XFs8*MAmB)5GB;BybF7IwI_`4qQn3%Bhql4jt zInfKu^9lxB@f1(LBG47?>!(#y;tRaTr9{3CmipjoCYWt-Dh9C%C>utt^b-jd<QOJ5&3woMB%(?Z0#GU~;}40UfEEEYzFF;cQZAV*Fjqbw+SoExQn zFOYVFsNR6j1{VHjvC$`4VTfzHbA4`mdZ_mDZCRh*V&?T+mpy|!V0LFsslx&CwJxt- z=5-l_$hK;2zQ35!gZfx+_gSrKWcOUlrQm zc^AY}l$(k-SNv<}s8YrkRUb#A)fzS%jLf?I*unW<@YRG(Nou0&jf$Gj%3m6;_|Lm+ zTp^8?b*Bg?!cecD9CE!7Bo6=X;%HN2{t2vD)eLtvh%62ceS-)=HZuopvU7C)*qglc z2i{m08BH1zwBW65dOz(!0Njmq9fTKy=MIHTx}3UANF4ZCt^OK14f-qocp@JswFc_N zNRK6wuJ4mU>`@~ck2ys=(b$j&bR1LSUAdn~-B@teBd21a9!aSSSCQk-qInxa+2b<5 zW%_?3@(dT{%XYisF`lyW+2b!P+y7#+O!NxAT%h%Dow($(7TDZ-ch)9knK{xyL;BXPgXG@ z_f9h`2ALc(lNRh2?(nx#cev7;H}zr6JKQT6QxDP1;o98};~KnFG*fE2pROPS+WP?r zm{Pmmh^eb9CygNF_6#RjvR@ei*dXQ#Bt0rAgCBevR2FWt%5nouuKgMGi)5xU=@g{r zz3>Z6VvOR~am#h7?DVTUkJE>`$e}yN$I5;?T2RXMr=sg>EnensS$5I-G=cq};n*M} z?^VCRB>)>PJ@}bC#6`|E1<_7NoL>~(?>z|AIigQZwF9Y0MTVjGl2^B=`CQN!dWz7; z_57kbf`sq3$Kz4&(8v0vBr7?6DzqL%L2&d)#eoSgmATk4ZB^VCdT3w3XT9zkfMLsV z)zk-z2`Kkds7(J>Bvu^9W(k$nnxd$&m_}QI=kLa7zY;h6IUd78+)z`>8e85f%{god31EbXLs*2RB`+`qQJw6>1cC6OSz?rj{ zMoxSYUF~Hg5hrfP&s7`5zfjNRlL^g==IZ#er6R7J{XS~z&TK&Uo~NqC~wQX z=U`61#bTE*Lsv@NKxLST@xT2G1SXLz^g&+;8T`cieJy=!1rCe-YD&HEecDsj(=>+- zxRX8~62Nd#2Kd9($3T2D!N^0dRoX#g>=sxtw3)kX@YvBv z(YFPN9fwVmpI1d`l?B zzk4ul2ed~p)kB_png8=gpK(}}*?-0FpJWiMZ1k@Ht@{!4JsM6Ffo`09n*K_;$0!_B zqdU+~jbmj&0TFlb<$@HywPTu~4??A8yN^QijXH<#?`B%ra!y_a3)vooHNuQrqAZ7_ zm1C&xgHpTY;g}A4gvh!NGB{T8nu`At*C^n-uWbIoz zlUjaW&oiEBP_2uriYkNlCuj5+qZaMQW$WzQtD2xfE@;Ec>5?nSro6n(@@%qsb3h%fVYszs%HyvpATfyU8_ky&9$b&@B6Le5Ivx~Ly z%fdnB>u{EZNLze0y|G&T>X_F4TEH;h;g_b|?$NQIzs~LkB^^y#jO@iH>jT^a$P%Um z`xGqx4R0u7CdQ8Kuj+D7-wAcyTPM|#GO=o2FoinFR}v>0hEMRc#PtpmGUe1*Jtx}w zS9Fsv4BDAyl?#XWREcZ(MDEK1O<&a~=Z+Bn7aD>2jg6Pk?FZ%mGT3j z$jYWUIJh$YQL;FqDh?Bqo(!lmwx51X_w zRdv;z@+HfqpQ19hhHN^vPWqK`ot%Mv{QmUcCAoONMoZ~lK|o-=k^p9^QvffHtESMqbs!4`c2tWaBKOx&w1Ka3o{>li{x!Va7$S7In!b4ipg z`L#ulD;rbMZ$ql#Lnl5og4=X=y}EX(M_&_PfOZ zoza3FCARtGis`tKV%m-~A`50fN}y@HN(H^^tfQP)nlw8Bm4lvt?4o_t})BSg{nd=J9@$Mzv8r8zQgw7lST zP$`;5A1IglZ6A`z__b;eN--Cl*Gfv|q=qPEmfK~eGCj10dXQ>BcNz16XvluFWREE3 zwT8KOwDD2>PmpgQ@ z3yoVUq7O&F6d`?8a@eq|2mVk~gy@GLoBsiV+44?(P!)G6;JijByousKYke_CBQmLv zGw3N0WDM@u$zB-YZC5=dORAZx0wHlnzdtxKCf1p+!B`r$!jg9Zo*D`4_&%Lqda1u` ze<8rgAh@Qw`h0LWLoPq1V_&G6L)!f^jE32H1k4EdiMJX+P9f^}e@SGhtYy!m95_6! z6P_}GwAZ+75%Swl)P=G+>jfU@CTH!I*O`pIJmOA1F=?nFIoSLqA>UXsJa5Xu4Ac+dIIZbc9H0X9# z3z5V~V(QB3n35BA#;kbII66D^w`431igv9agfdNtL#9*aHjD7`>TVo{7EU7}6t@5Z4^d*BbS_*vX%N+I06hEvvBN zrTREIDlFXJAnlJ$Kxx5EuajNhZEL6UXR06ZfI=&+_rX{-X9+4qX~oh(o({ehf%sj4 z%4jCaIA>a7RfDyW>5x8da9Pqo-4hvfI}3V`6a>0=&eiW8Zxwro>kW`O6~I{T%P0&% z%*>GJ3TGo_3%6AZY`;U{83UpZ;Cp`lz@l&5M}dm~{Wa;oS~CKq4tPnVF`_-bVHb>8 zkAkDpKH6`bF)X7(zQ$5Zse%9KmWIaW6BpO>X{;JtqO~`CsHR^q; zREnls@6>8?RzDfN8B)|5rU#FWU7bXZdcAT?3#-N)ooH!)nd_!8l<|FY2YZ_!JQ-ju zeGb1YLRJ@Dqmh=38WgW_Hvo}@Cy8I&5;X(mjcb%2uc){AlU|G(y>0d`Z+c<=zAwl3 z6JXUk;jr3stSQ;eE#y)p=I!IWL1L_BlZv%;~FCHMS{5o-vr5KqtAxw$vZGR|`*lFbEzo%sf)M zCNI(8$8^QHlB29g;2L_M)*pA7cIe=*hk&2S7DEDIxhMAD2dhpEHa-%5p7JV{LoGNt zF!NiR@LGZ*RFQU-yo1#{EF?xwkv%Z^v&O4>PM_VVwo;5@K-n|2KP=uFyEW>1)r9^UWozpx8NGp*37Wqm=OwqTU zodghRl>956jpPa`ft*e1vj#|O{=~nTtGkwd+ObSUz`GE}759{4OcsHwG0>8m_}A`_ zBILZykHqr&oHf9iMT1E{G!AsxG)s{7MimiEuz+mSY;G(Ty#Gjod7N8JfKMkJ=sEGv z@_tQT?Xz_rq=(i5V7={Qg5F2PZ=RT6AcgKz*(xV?`(4Vnm*A(&JdVd(TWKi$l=PC3 zd95|y6S;()1Lb+s`FAgK+YfS+ytfulmZ?}eM*j!2@U);c2P4LVKc073Q#k0hMg^Ou z7BvZBksSkB*8FH~rzp9e92*K|ldp=~S6_UM>KP*d<|>-|3+ zW`L|ThqNB|u#YiVh`O}tVqzE~DvWScLiJ$~xycrfvg=R(2dYJ@PRLGtV7AF~iVNRupBKA#Wr}S5A(ey1FwV?f~ zb?hCbL$wYQ3GAclA5cF_6;3wIlqs2A9;g}k!=4#X*9zJf%S*8w7e*G!Q?F|D~?4veXF#KBMQnwAmgy@ohsQUa8 zoZvVytBXF`Tz5n1TM?vil4$8NG5dPT-NjHCz-zCbjJ0w)wD%TJL}}Y(W-iXyT%`cF zKHhVm(TyIy7zr6<4)pe@R$L>a7M_lE$GRDu224uiilV-ftUovjl*o=-v}X_g6|HRY zAiZ-nzLV^Wx15@Opmhp#tUl3yf2_$08lR2FXvdq)0q#w9V=cJ)2B@jKNfJ=8KGME6fV=z2{<@gBcbp3Tr$W*=TpE|DMaNTE-&h9)V(F_t%FtjNWy$ ziFufRx;p}H7@Kz$$=XkGCO0zuAj9<2hZPWCK4PaV>0`rJG%YMxCMnfZABA2i+N3;t zVjo`MBCo}eyLTpa8_5XGBcAJsYUHP16u#{2 zPg;amp2639x#M3wQY?REjA*~Ak@y&?boZ19;`A)XCPwQ^18-p>^xz0Y!l8rcCGvuw zslWugoxv`K40+gcM;+IomAy;kHaPO)pUzE>StV*x(PNjd%cL%1A@2D>Os2(jAmyk= zfI)Ic^3X=cs@O;tZ6|xW&$(l7(7f3{ku2=>p3!8YIjZ<5>52j``31OBWzI5iRXH=wP#&Ubc^v52XpR=ipzPe` z02T!way^{F`ZNQhJq*G8@6nPAKP1-;-2j-Z@0VeUOY~b2rq^xi;<#)k3amy| zbpF-R{-K`FqW$NXHY*I1I#(-EN|`O$_V#p2qtzgN!=PM9u%5;!b(k~Z_1K?3MTz%l zJgwB81M~WEo_-@nzgzhQ*~AJ+t>p0w)N0974=QnF!+ckA_}51D+t@4q>}6^Klc~=W zXW7<*fJ2FEpeIi}bExHOXOEd z>`-}54$=6Sgq=}xGVA!*64S-tvRV177mOy(R#`cc)>(vH9+)W#;3j^91-_hM$k(w5 zAA+t>O5@PBg-fX0tVpN&4b3m3gdQ#TANhM$ti-NR%ZZ^4s(sTk?ZGtj-wusE_*EN@ zjKB3-$uBVwcmCXG{Q9j_L}Iip@`vY4=89?H1vSpy4>>|5E!-ux%co7I{PW5$;y(eS zIozvZt=-4o^;DZYM1E(Bv|a=m(&}P?Ix4)MUN4Njr{;Ef9kTE0%Sv%ojxnPZTO{UA zZWXjnljZ76okqtdzKRLQ2-bTXI=*fiujuXuM;KranZhGmS}@h?`!2@W9z-(U!5@C2 z=TJ-3h|(-M>=ZI|6Zyx2=|)+BT{!lcUXj~*x2kJG?`{9TN_Cij^~d<`VmLSPVdEHf z&}PgO2<~ZGXP2dr#8nnyx*z3_P1Z zAi3gffy5BkB$isaTJb|$456oh`z1HqJeGWS4T8zF5jlO8Rrj&DW=E zazmWn*8(4~+YSnLZ?A!ry37u%j!-A>qS&xb}FUz{NkzLGojR zNIiHFs}!a!cl*nUb#<;!)(gwAF(L?uC$DU(pxn0P0bz4!Cwy?N! zV0p@aQ4#VT){%XW=TrEbM@#BSRF}c z?tg+~yD!3Q^7eje9u!pd*XyT&~mu%KRT#-pHhBi+bR z6APcBo7FY}?;mSP_S5VblB->kb7v9l`a9gQt9`seXPh|S{#xokMa5fY0u1<4_Aj)n z0mEvU^J``W`td4ioi#Bwc;jYgs={gYU@EI4Ps!=L0O0vi=9T2&b6meY+f}*BXB74B$oX3l3*>j54xcBD= z{FOU(c@lqGj14erfw~5Cz(*TVf~DZi?(~8CnFk@j8al?Pb?7t|SKtS#QLcsjEO%@; zX+t@rT&W&Q*QOrYaaRF?YoFcQ%=;tvxFWfWzc_O|mG`}KMg8;390~qYqkA^^cm~y?+W1T!Ce~#hTm1U3q&yImaE2|xZ)L5L<0ot%DbX` zH@;RH@)+S)je5kLg)HIg%RvUgw4Z9;j70FO>*pmd`;$x~_Vwk2+CG7fDN)9X8R@FJUZo(S^5X{Ie<$Lx#$UXgvAz1ZQL=1<^{;Wh> z=wse7dvkVh3;6ST`h?ngV zmiSYTdvXg@)A0j_)*pft-)vaD;O+iYXE(G}b_iCg<#x%5ZnEGrAHuo*KR|YC!4V3& zaoS2xxtFX`Dkl?g`BG2nK#$Q2R#ve83^;ZyMsuzQK|4MsJn#ycBTs`@=(=eez(^lM zSORJ3lZ>fd_S^6hegU8>{GAs>-r!eyy3P|yj>kt*M}ZMLIU-3JX<0h9FLp&y<4@Pj zO|Gg`jx^u3bqKK%5Q-V7V5or3kmE^HOd^DZ@HsIBWYLNV>`WPq#YyI8^w^H6SZaW_&fK1|Ol8z8mGH+C z3$|7)eXdfeiFKCt!5aSt(EoMaZo(-p0KUdY{W=#9sD2&5`X&V&AWUo6G{5SpVS2oO zQ@g@w$Tuo-2(jtgpnrbDQ^Kq%+tD^t_{^@0fNS&zS;a2c-Lx}x#Fo=M zRnlG3hSp-4hgL7u&`kVHt<(1koQv8S^qP9g3+U_?-7^~@gF)5TK%QEWKB*Q6RM$X5 zpk>0b>53-PWJUTvg#_wsGEkxA+b)_VrR;sbC?)rXsr=A%h}lZXWQXo6dMlQ^7wTDRu9EX?0&9SU&RPTE!k9#-tZ=l`bID#>)wJONADI9lhxEik zUPW6d5yaq@UioxkTlU<9yOh`Pbj+_6K!|R3+kZBTXwDkft8uqWoc{->e=BE|bi%*f*#CgDd^nx}#aC zO$rZPM4)9I4T~{l@qkHD^|H>pk^m-!3hXc~%^p#H@v4gd{uwFai2!J~Nku-vs`#Rv z6zF$J^ZQD9cmKobs1@0>+fzq*@*OnYr#g*|Bs<_k7w%trbokr&mB@acpR=|FiepKjSLi`^I)0drj%1P2WAIX zRp)orR|dpHY66;?s$+}AZF(pN0`d?mg706Q6FQTODb)^p(6Z0Zj<8r~3l{mo&gpjW zJTTTbci|<=M8o&8DMf!|pxudLLDOjI@bHw_GHL<*aA?&&t&;NI;Fn=cV)&t!Uo1GJ zg;@AXAh%Xc;`-eEg8^aJbFSK*)gU)UMu6|#k?;ao5d2gveA8K%rSyy_`>r`frv5vl z{UzBHq~fg`fj#P|%69l>-<`O&1?b!yWR`7E&K%aC?lwsm=3h$X`uU>G4(rv?=Kd+$ z-Mg?yKH>6uVxVr2dH$A4S6yb)PM$)q3VSKLyt}e~!(6&zu!ULu5Ou*^`UhYX5vn?a z32ktainfvH%6F>yJ?OLOIh7e^s%uOn)P)Fe3m9ej55W;P7gQ9CWD07JxNM2RP7k8P z4LBq1Wt<}_9-61cVYrVtrnyibsv=Bs$aCe0<7YsZ|L3UmE#=*7ao@9*YRG$sqM#iNl1$mQeu9RE<9A0Lr&QjM&i#>_q zypb4yPy6h);{+jR;Kn@c$JH}1u-A0cKFtS!o_&STP-aZuYE&HNMAxZ=rqh-RQ^zfjSuFDCn5xA_6?kTCu_FX;HS zK~&|v2=q5^lu20Uc9IG>LUh$V&=hxGQ8~yFtwi#a(;)9g&+DJa92^8 zdzxkIoM-EVaHGuNd7Y1=EjV{&^VBgZNtWU5{g!88k%)b7G~32j?&$j4#5Co+KyN4c>Toa|ji7+lW}$7M(FB)MiBL&hqdRA}cB;-yqQ{ zMe-d45tY~^0hqkX<4VAE>FAeoMqbA@>G4-x;DdW>ng1MkU&<=5U^pUjKKNuBCmcF@ zrKA%0#Xnrr*C=UntK)U;T(J!9ZJyv?EL22fxnlgUh|$$Ct0uo9JN`J#7gWqZH?eo? zByRnws!M#QdQXkfy29a}-Tu0wWi%d2#Lxa8%(gk42!-$btI?kUB7qD5Z;hbqV~~ z<#Qrn@ntk+Lko`kZ^F+*b#2jagfoKng4{p5K}1`!4RR02RyIsf(QmCr5qsy?B{qsy zf2vwcMbT(mDID|Jr4G{Y=gN%zmG|cy-#}XUM*E{E?ODh5g0j5-v94_J&@OYw4Bb+0 z(QN(dY@?d{7H9p)@s~lVZ4Q-ZmX8~+!%zc95>Y@$A!MvlisERu{|WLtPyKkY_%n1S}R@m@#~X@I&H&FwYv^!BukTz zj$gfl;&Wt0iUu|6zBsSdcB-Q0IiOtmC85M=Ymh=s&#$nW9ji?aNTKVEWnmzkcUYJ> z-P+~oez<_ukkjL z>${@ePZF|O9$9?Z39iQ=Z=X)-pJAZzm1J09S6Eq$X-iw1#FZE0#y;)&P0_r&7hxl- zN{3^{b%_*mG_G;nyuU~p(mObJ^B^eLdIA(S0`~`5j5#=iJDhdl z!-w;PgqmN?ABHLMaY8w&-eEDGe5i?AsVHmxwX$8UBCGplj&4!~HKO1;OhjJCjm@h1 zBEz*QMb)Ly_8H`Os^CMvw1}NQK{JXZNZ3Iv4?Zro4 zYr&wLk6n6DE!bnZK^0T3|066*)1$}rd6^z@r($)C%@hFM>knyRepG53{iiMU$={+I zZB9-hzPm9i!F5QC9S^ULB`w*z!Hh=deas$Gye)MGh9BCdBaAdH6pBY1R-ET6FEX!P2Kn zIJHe6W5eU|pDv{?X3Alq{BcQ>>e97gsx7;hIsiY==^oeAJXbY&3jkAF*O+t49cxZf z6leVd&r8z0UY1eg*P|GAKRLrtDbm^4!FCj(AuR|OteQhf20#MGN83{aC#6QF6;|=V2c%a z;17z|QB6EtX$qurgCSiN8`ipb!CDs?uKg?Ie}J$&Z%MO157XKv@(LDPKU#g%$c3q_ zi?(h_+7L}QX_r~L4gHz+zP~W>^~kCjg2_wU(#$w~2#>(&&ExcT9#|||RdSvMjdgh* zYR2tn{%ez=hQGMM1O0NsjSviQ!YU}u$vzyiF$cQmJL)qBNeJo^hs7_(dB&T-`H&|L zd+}Z87Mx>4b=Rv~NE&yn2iRr9`{#af_}Zdp^Sa0qrH{+ob% zwS0w{z8v<$AiK+eC~Irv%y+uo2>iqyEn0=AsIu#L#XHORfs1-8^J9CAAZhKdk}T~YxBJ!UK0nDLXz7`t}K_t zgle>=m%bJEtUd2(E(F&==%oH@eJ}5Hr&AaC-q^A#|Ek8ZMyEn~8CI~r!k*_56(Jv) zYlEjtvnCQ5@xO@yfj!0Ybwa*xE*heV&z>12YUTnqRq(3GVi00zsju8Y{p?co63 zfhzNI9XR{3O$$~H>5x1h1aK4Q43!pWgb4xu4lZ9fAFi~|_bCXGZ+8p~ko>DjjS9KP zRa&9ezdJbdqR*cGLZxFB;Q8sGMl{&tQdvniSuuRAS1vq#udTC-( zJim%HDIwXFDCe<7OCG#>#e%gWfGIb!{n!Rn9{gl@lp(}y!D-csShvrc2_p9Haf0t>OpOqYBP?DWKu%DJGoTf-~ zqcA}(<58U<)Ga@kmJ?$dn$L)02A!VRizl!}Hw*TGROpLp|a z=T}widbop&a^o`YMXR`)be3k~lzrFJ15ry1xN70`FymC?q#G9k+5+=hM}J0X)fwS@ z2?l>y_FA|Xp@uMVjjLaq7S&MxM{ZO56b0+H6f?ugHBHQ#6`A=2$bNUXSInkJ<*V%V z?@GLYlhq+`OV_4o60r-&F@B`)1eTN~Baqp1w}7f*-`{lZrwQ%YOp7C;ByanlO)A~@ zRz%)9w#l|WuH{^I2SnP-KEFOI3_=`JvB8T~f|3?8nF{&U>Z%G&PEJxvz=HE2_J7>V zLtJdAX(jSMVL(o6aOlA(oP|zXEAwALK;O;mmjDRo))lSylE0S~sL#r?S=SZfBm}~@ zESrzS4-Acz4gmETt4hxTJvC0xOV{~DTiq9uGE@ID2cFC6)0l6y+=RfC`_xXY?nKlZtwu|*6K2`80UKqPIWvr(t?lW zLxhIOu)40WZD2uf{UT)L0Kl7Gj3->Es`V4nZ)gN&ag}qX+Om8mv%IcJhV2Vz`M_~? z?d^+Gpy$8tezWJ}P9>PtV*0Toa*_~R!?#bEV zJ=skwQg>ucZjeS?dhQq(i_dn=QFlS~-M`~kg;S6rDqzEE(0CXOrB^>IN`={E?BGouT@o)tYDBJfS)2=-$gX_!Qvgk+ z8{hiLV{^CwgnWr6%d~+Hh$h5H*fGL@%>X`d_a=u6mxFlc?{;-0mOQ}t$D0%_+j@?a zwjk1c4~Ey!egrfvtq}to_(F5dl1h#S_-gmq?ILEWxS>?jFXS482YEg6PkT=G5#Om$ zPx0|vHU@rfu=hBLHD(tQ^iCgzkd@*%gkYo3yWcqeJvp0=K?~9qv$2#j?<)2&!Dd^h zAq#wg{#p~ou~G2n;;}#8qE5335*N)hMJmwmG625wjh5qIJZoTz_t_?@?B*|?xmlyl z!ia7m?Gpiv)&jgCh#{3jOCIPVyAsPS~N5wc3AMh`1>tHkbe#!>a)6M@8XIRQ_Y@<@tIt1vm zsyWL&wLklx!V%+uBWaxDCrtFE8mzTWofI$wy*JCFZSo3;iluk0Ri4XhN^8WzG%)GF zEVWg52-@1iDAi7Qj3eU2c1lpqFqQ(G*auFsoBlHGqUQdL^soK#vGT9+fiQ|2^`3yq zy&OxS@uETB(f?wLQ)+1gYXx#7k$-=P8{w+m50}9s#&ThGe4uD`pjjlxou6;caKYIYsr$Of`@9%D=&tl4cvXpiNZ7gBm2_|i-(uZa-`8V0*(eEoxRiQGSP zbkXl}dlI%ra6jrcq&bqdMa9jILps+&j+uN3kvN`Rp{Te{{2xF}zZS`jIrOdT%ecAG zIx&E9wzKlPJGa(iI>`Q$+N!qgLCM;ef{`i`z1+rC0U6`6G+(Odbb0XjJyQHc zUeu)`JiMk)D1EZonC+yf>-SnhlK|rb_sZEEfwwcCYP2e+-Q#XnJ(1%)^Q~#_ycaHv zyeZvXOV~oDWSTPN54>W1e@jnxZp8`;!GKnMN7y6ZEHRB96|3@zlX3zKhwQ|Qx3IHH zM3_C$;?;kR+8&GB>g7#F4$+Ja)Z(odSZqSht-8~uNnuV=`W~LEW?paEjpB;)5>iWO z(ktn?Jma-Q*xf<)&pPv@;E?Klx^0?iD}plyPD|eG#@Sp;Qn zfBAt6<++qEKa}w}#Ms=B7eQxUfH-G9q)9jkc}&Zm|uhdH33296>?U#PV@=)n@WlP&i%GZE`F)K ziT2Mt==A$IN5BO#wxOy*u8M678k{!-J^3l@?!4XQ$%<^$NFCem)9hd(7PYIoS5upm zIHuZV(n?FxweWJ1@%<%#*er*u> zy5vpVe@Z4KvM3X=aj(NJ@X7<=@wl&evA78acR*IHN#nFogh*RdAJqB*pm&>Ds@X;0 z)euZF{J&@dZn4N8zS^fcA#ANrmxpVjd`Q7gLd~xuMgKjcOM%fJkUvBEACrmB&kdZ) zeDwjfYT1r64{gGN&gPm3Gfggh;;G*t=pP3E#A2p;{OG4;(*c>e8_nMKKB44L^!xwV zFA!&tsOh5L{ExcOX=xCx+$gDUNuneC*QiU0|)xSAw=4 z=J`H^I~@v<`vB{cT*vy);-9^Rzz<5Nee2XrsaibdN7ItuZpDNd<7lc13jA>I1s5A1 zn196zOYx1ZhYS}0IFl`>b&J#O9FpuI-wk9`j?J9QlL_6{|~VBPB&j!_i%|G?#GEFOKZsQ7uLJO1`FQ;!3%QBX5}c z>CyZ`(#7=gOp|f=edViBNhM!Sgs?nJRaHhOsPJ#()RX(i3*U^x8(6NQvpz;i>o39} zD@i8af*515==fI15w5p%&Bt6QptkP?U#@D{rTZNRB%!=t^)5AWUN#A2(GLcgmg4vY z>vrUrGx7c>c;h9`@z1zF605tsIlxAkk`B#1Qiy>ovFe1l|7 zeFX_%P+RjtI3RVYmQjmn%ETxbo0Q2{I`L{w^k;c~uG2-OC(DQ=3FnAz&SN$s=JZQ0@spkyrkAv=R zrtl-As#DaXWx3IwLC}|%&wGxZsD;U!f{Z*z9F!>P1l3JR=5mbm=`S|Qcyl(I9;ovp zxDT~*bIClvZ3_%Im_JA-`#$Byk<7+*>fhAJKKktP7H9Jp#p(0VMd zcv|(L&zsr&66xztGnEgBU%_PR>X4`$2XQfA=^R2+aZ%XUO^l*n78g|Rr;3Z`#QKql ziq1!$M&B>5F{*dnXRl>ry|ewz$4dFY%^D8_8JVMr$Hu9Jw|K@UKT2=r9lw~=aj^IH zIHJruCg~jgiRGe>kUn&qMFj+JIWOM4UJ$jZwgla0crq*Uh_GVw6D2VvKTLz|O>`6h z;^$HKyJM~oB6`Y>=4-IP&?XzpKm|>x2*|zDQiOO7PfbsN!64vN)u_vnY%h7Ur;z*A z7YjBLQ=S`w*4fTuw>#DMM9BXG5VWQLHl>WRl-zuN$B-~Eu#Liu)&BWtx1@m-Yrd== zs9+Xa-gmWO{!*^f$79y06y%DXgs)^4qpzQzhrZu<){wP5##a*R%IN6zA3Xe%*OrBA zo$r)To_&nSnOH(8=$;4)feesvDFl`Nc@vYtm{La4$`ZEiNLzfIW6pY3abb~R`<0?w zOOOUh*8C*iNOWAp)#h@Qu=>#fRUtrq9xra=PkRKRVr}?#4L8 zzQoW|rX2JAACs=;R8slg}m8^cP7XPv7 zS1C{5ItHX*?+(Rsd7AJ1Jn{dm20Bas;VO=G4+xky74e;lOmNJW-4~6Y{+(e?C!{MD zH4~%Nf$JR{z>cF=WZ0MLr?U}q(St9&(eCWO8uY6O9J%Hf6>Hw;kdZ(d4;|n{-Hf-4 z4H-A3T68AcF>jL+HV#bJRJeG9!_>lYJ`Xgf(sd6 zujE*&_hil7ttm!8jlK)Hwg~HAUzcnOCTVM7RbiWLL4bwA5(-``mMJU} zHH?$WB}Z`0G3lT4O-|im((whtmlwW^AWjzN2%e1Wznvtf$^AlqG)-;F-xX7RE-;HY z7U0RuSQa;>dn5U|u(EoB{;_XB`6MR%-ZhSt(6iEezIdOQ$C6jz?j2DLIxYQ0JrcIz z059z&=tGQ+zPF0XB-!8p{uc})E4u*!`*BEx4H`;I8k7Q|AA*%cuZ8!yF{!D*fB9^K z-KC6IVa*hfI{Vt}0o!{Zb!Hy4VWtLL)ni{g?{jzCBGb(*TDjs&$Lwbrwfb~wZ~gi}kviu4!{^2XwAqq| zABgJsNzAy*NP{@-{wTDU%Q9NJtl&vp!O*mOUyI$OUy_$$rPH zhIN)?x5o*FvdX9?XIDY&sQY8H;YW*F3fb;H*W3iG8`mV>vP-Kz49_z+D*hFjx_qVh zK-jweolhFe!n!p`ian8k<8Vn(-~L$PSPJ==btX)`*{ZEl+ESy};k~)Zc*1`kFFIQz zQYWv(rWH<0%7B!vTFe(Qx&^OD|7OLdkeE%Q{BMe|&@X?A?M*GCj1Y{!(TN)x3a`Ki zZd6VdDMuqD&D+tlGq_c_%h>N!|HW_Hjwat6PS;v|?KHvUA9&9&>z*QUG#7CC1o&j0 z*EOn^MKIy>*{{saLRDKs7Hy%IlZv<)h4lL<5ly!j7p;>WJUKIJ+(+pKoB!>so=;HZHKknq;r`ic)*YGn!0 zj+taT)QlxOje#tHEvB(4oyV1|#cF)e$yh-jBSpa95vcW-{-dH%f=*rIEZ zrY%SJP975|`SX${&yk^r94%SOKsWk3OoK)>A)MGY(AX~@l~E;Y#bksBd!xFF@aU@YM8^0DVaVw$oqks%&6#fRL*;fCf#Z8)H3 zvyJ&09NqV-RvuG6sAvCLmD_m}5|iGAEovB#Nt>8g6SVGeGkBZ8W>e=^rHii&QrsQ! z7h}>3H4h%itK)#G>*N-Weu|*iR}StRE>+LU?24I(-LAk6|0nzhp#y^B+U{EV{A^{I ze}~*A$6hRNlhyRAdJL|-vzd5y%UiGcprpSX_2e=vrsSEjtcP;^j6v#U%uNN7UEluz zP9eU}G?pOl@gg?cto10;s=_4R+#1+S^p^SZlvs>tbi4?6BjRvfhZ?bPyrQnk?W*;T zo{UZpBMjskhbUTkmw+Ce4$vR=d5jD;z0eRShK;)-O;92yiHxBL+@!OU8cW- zcD@?!RW-eLU@urvXTuqVQpN3bZXo^DMq1P4^d&=py|p)PPCAmN;fZvLu@&94KI|1S zL^`rY_2zg;?GyU?gQJ>bbQHHx+3|3inzcfmS zj=_hs_-+nR&+v+Rc(1pA;4QPaUk6*y3G@1tuJ79K`ukV8 zPfj%1HepjAX!=mbaa6#sQ+>G}>T_8_#c6$wW;>nWwr9A=D9R!OPUi+I8*iksorCY; zEci@m7FK!Bt9L=6NB(D9Qo;iw9}u$&cO4*dD-+R%t~}E{Di%`DN8eQ+-6`qx%arIe zpaN>2?=ntQj>E(@t)AY_VPMV9E5LI?=W_EonsuN2u5T+EJP(fKY}B_DfA#_lS%aEv zcTDoeSY{*Q%Jc9L9%$EyG^dOUu6&^lI`6sA>HXwa*qH@29-< zaN3}&JKc<6T;jtqOL9DNP*_8mo8|Z0I5fZ^Z3%2Cvk-QU*_@<2`k?ate{NTj5}YNE zACu7Vg`F;K&f=_t8@Nq1?{t>TY!z8z2B^AOh8(Gw`C4IKtx>7i@2BL=cGi^ljwKgs zcHx*L9I1@*vE1@COXxqbTb__@he|^iGO&P*8Yq*-PhH#Y677#J-Z}K$d^zM5$Hzmx zd|SxoK-k1oY=n8TeN7vD&Y+<8%|ykfDl3{o+II;B{kkR6J*0myvt`9nC*$ zxguA{!ri&TGjM-?G`A6^X0GOaH&+Pe!0XSf1C#FD=QX9b?@kn`*nRc`{#hxme@~Yc zAlNVeA{)CaFb;~@h1qiw1_2X8chqRAn@#~!=31s`vUzr+gS8JYAc8aHC>|1?`>8Tp zgIpwdaTW8PGbmC28HkCWb9W>lvxm0InO&=3*siALroa%<*|Q=& zM;THzWfYt8xbYGuKDI}6tFLWB;CIzFRfS&llCiQ^NX?)TciTfA*=E1`_QcbD0X@c~ zw5M!-rd5<(WbXd}hIbEQmkgBuJ+k{xUi%q&Y86sHZ?41Mkl>!-s7iGUS>BSk(w|cH z6s{{J|6|NI=%k=eLs5BA$+Q(8cU8+m>)z=DaTeX(p65?YoNo|9zWY)~mH{WeOu$U) zls35`C3J-HDVP(sb2r61l>5m`(RIY$HaeMj@13m4MzU3;=jT9FkM7A|Z`3NSuK*$d zM1A1HuyJo=D}tai26~ir6jD&Kuwf``!Yp)-DR`N@%J2p65ao!tBtS z0}C7|T&+UZ?dmJtZBbw(Zm^ps|nqG_#{p z+AvW?W)bx*y{vdoJ%g<6ByiAle7<&06s9fG8gH%Vt65%sSCRDYj@O}KCpabRNodvi zkv{Z$W3y&6G=gx%SHET4{3Cm+Z!$2UTyKumABpV@a&R0s2-Lu*uH7nTEf2~g7F6f; z*A7ef*5SZ+G|F_It8_)R^>3EsH%{i2Er4@BdEHrp&-7`4Je!R@vP$nd4n-Hso7;Mz zG8{v;JN6`^M(x9h3se|WQbMsQP+@Nj*A3UrZFwBwnOJ+f?8(k(Q9LH^xG#}ljS}dQLdMGQ8ID+P|k(?2U zu=-u${ZT>IM{O>VYl3c9MdS6Tr~cbSrpMCluNZ}XR%2P+wt;LI+%sJ@4X~^I(ey96 z$}zs;!3blx`mR|11f%=tdtH?1++_?@dR;>Nk~0o1FLx#C-qH=Y$s#BZCvF^i<&;Y zv54rre9!-@)qCo3V6UL4l51>*2^}*jvI6w<>=J}t&<5rKN%vCyw(1lHh2Wpbd1);^ zERX@P6tcd;QcZT#**fd(fNxwLbCL87&(lYxFrBt?rT7MR3DMrk``9)9x{cJGu(qn0%=<1U%G|Eq9tsBpeN^{k+6`+liQ zTsP;J^@~IbPjav}LP!V&`9KS}DSaXR7EhX*msjtONKS1ilqOv|4#-_j!fR#!!4U4z zNpu+g!0$3SpT|l?68$jE(eb$ZjFfkO=fi&%#c9t0a4}eTH#UN7WC&cb!&yz3>+dd^ zTR8s@U>yuxYELW;)iRp7Exm036Mn1_Q#|_p+RV|nMH=$W48bL-Q=PmGVvG?1D?PYf z3wd7Z=RO@Fx@4^s7rIaA`m*bB+uVhGihWnNuC$Q%Rxvi>xuo zGh{D)n^^=}C$$}MP?<(y`}+t}iEhQa8KBS9H%3q^xKFe<`YyMf^L?soyo^h14U9Ho zp&>ljUuZmZyJeZ-peXybPkG_0{a82Rxju97^6@}m?t7~2ki^{=fg06Ez2uJ%W004z z$RI%c*zCQOH^Q4f$VgX1TucP$=klsJbD@Z3=1?)kvC=yu5KA=8#mJTm)!f~pge1w} zU~^+q;G}%l`~<i8I|q8C>F_058ogaB@e%VH&c?InBD<0<@&-l6ZrJ73!~JfF2A zp2=rEjW>|eZ?$R5k@UJ@c~)XW+M;m$&Z0YHnI(RID)mbwiD6!bSP_<eJHd$u;`LMqAJukC;i>EXWM#8@7R#vc)f3((*K^CO8ZNGSfdRZE3 zyo(Su+Gt`0ZK8I<33=r$R*qcnGK%zg~+(qZ<{{y(+-B?2J5BGaEsGQ$7 zOCx4gZcN8Y+sW#hOKuh+Ig3r}8KuuN+E#>pJs_?{@sM4pS@q5)*ts)eUmUYWl_v32 zIQ^bJ$@yT9*rPUQV&}bF_7bpENDeKAOfEnwkbAPCpp*Xhj_A)|#GaSdQ=ioEUW>Sn zEdbmkGN4`S&|^}k8Zd9=j{Ny42A!6lmzp;YM%4HcJ*&p26{&s}I%LvG3H*vHy*9v8 zBDT}nuh<5U@i*IeJM^y zCC_s~fVu0$=!Z!SP1|^`rylPjASS+2N;?Rq(d|0C1mr%ptSJ-6-&4uJduEMPm!3Ig zaq;RI@O8w7+07b)(>C;%=c6Z5qkRxtA64VSifkt36!LPL#S%OdX9f_}aaCJl zu~|3PY!5MSx;Hz1v>idARM;8o#%qN~peH_g{k?sK^r|u8w|Q8ZTy(9_FV;E~eqk^H zGnG$JHVu?cWB{g4UrV!NU}K>UL%l`VCT!G7b#~bIsa9Hlm3;NOAp`!;yI(@Xwied(}%G`#Ulz=xDU zDZ2Ac>uab}k<0|)&UsQXUV`!Ym+Z1x&+?EpU^6{Gi#u0818n^zE)7<42)`XRf+av$ z$f)>vv!RAOtFYmsmf6c&&<$-BOLJT4X_2V>(I|@cqA=v!WBq^6uo;yBfk5@`hd4+2>&k5ZGUoDs%79vQJ&xk5&P!~-_?5PL( zngUS@FHUcZC#vrVXh_Q%Ag#Zh;GzZ*uEgo?<1SzRS|9oS9?IP6Qzyo{4EP92cZBqC zNCB*>+b>7-YYFu(XGydz>jUv4MEZU0Lu~phYqVhQe^j|;wC>Rz9XWVqji>|@!xY_{ zQ|^-V5*WFTT|5uEOSk(OVG?7#dL&R6kK}{<+KCBr<^vUNIyNe}So>zPnwa8Gp61EC z2;@%Z%n)edu~Giy$H0590t|;_+8nR%+I7dDLN@{UT=z;$|*jLCu z?|LEiPV1@<2S}0&>a_e|1V8#jfLf>8tKI{;<)xO2m~vWkZ{;X(&HV?2k)Vg4tV*%> z(m$yK{`>GSqf?x1;H!6Ym4tVakFq)*H~=*}b;5|uT^9Z26cy!y*I##WAP$hcuRc$< z%I;0c`Do_t71Z5L1pCm#RdVL^0i7iXZ=&_UPLrh`WyljG>7s8aHarB{gVq~5#l8OU-_g7*c#50m-#(x4~3!LpIuZe!&Dv3lUSg&|FT)^!!khAd)pBR4Gm7rxd4Wp3Z zo5m)bJ$wCaiFGXI<^m2i@irfoTjN)6EW<%-S-sC}!%V{svPL{8GAB$U%vV!#~7RPMnbS{%x@MUKsWJg|8{DOV~u>@o}<| z>^@hvjZIfo`sHuIz}F^xzzheKQYNQ*e*2hT@!^%IS);`38wU*<)a%f1daOm)Rj9^t)uS7j%A4)cq>sKjv+<=d z3W9RCxUT%$sZG3fY32_my7}(U^1Y0WY0xaq6GdL!(`@-Hz{~U4pY-8p){S5>q@AOl zxa@CTYWJhklIjU?m{lNe3-aRymj4ITG2JBYuLeU9EO zH+|)q1sqXz*oi9#TwZn~jxDjK8c}{i4fDE}f0oXnVo7e(mEt(QUUtQ(xRZo#dYo;j zg`14*A{$F7l})-LcN3d_%?CC7#%dP7bJ1G)HW@4NUB{u#$RueImFd_+2`<`QlEG=p zrYIGAzm5ddbvLaw40jUrywZv(IVRDdG|6* z1bY{2&Q}dEcrc_LV$;M zpI4FisuNrTi++V3BxkalC8s0ac&OOEMS5`GMPB#I?m@uMb&znf=glsC30G`#+I?&0 z3w=))%;c~hVz%_CQhxG-(Bqs&TxnEB+i&;Imuc~QAWy```y$|!(jYUh8^^p*k&m5i zA?5}NgX|N+*YtBXibRAzSCKV*imdXo!;u_$gh^d$YOGLcY5xMX?d`*Zyja|sl#9dT zFgu^i$^DkkLl*Ud#=Y6GvCaRG1<9@>Ud-zeOJ8%ay>`q@Yo9kjtNke=-K zGvVNYkgSQx{2F6YbUwb)rgc|YIR-YO?8^s#&Tz~<82^W2CtXvya?Md{OA<;MW8k)y zl;g0iSkB$<;^R(tCeQV4{IgBSEfRmO9$P^xMSo!@?eA6O>#Y@nnf^UwR-tn)A zH0vB?M{CoW16Fl^Qt{`Q=@nB|^Kz^sIED3-Hk(j-1Z)4w(}zoWzUbSpqx{@iQR`S* z{F6*&gvrRiTsKCXf9|}4kGgD~bL=+x z+9+svu`;3D!Jb=VAk97JUz(a7xC#Ln;9)4vXkax=44DwA3 z*ND3_40!l)R@_!j6?@!se&YUZq*QuoM`o7(^%xAWCKL1F-Dk{2nc?MqBB zq%kLwPb#=5E2Oo5wGplM}$SenI*b1V%kbU1~N&iy|{=N`@U|Htt$ z8Dg7DuCuumMY$y9vWrV7m5~Z1*Fxo6u9^Fo%Ust@rr2C6l#+Cr62pXAMplT#F!#%t z+g$qXch0tRcJ|-S`}2CgF3;EFiT2@aM~OP-W`1WkssUPmIjw;0K_J=e&kqp(Oi=m? zTC_hq8Yd2JOD-$VW;s{X>3k_aeK(%f3>lLWN&n7b1QY;j(XRbrJjo}p1Yc*T%)7&)Jg;`#A`0`H2(u ziAiexv}PX!G*0ZoL?UtMfXz6WM9HSTV__eXw)lbKWMx#=DUjsXoQ+#YyxpIKA zj;40vt2-958rBq!P)+P7*`=BSlh-r@tD3w1y8Vu^b{+(mS^N7$0pT=Z0%%sz{Hdrj zjw+5&|LluT>z;?NJustr0JhfE)$VNX<1nXoz)%k3K8Qd0s z>W8D5HsP1TJl9s4fDwTNnime3yBLy?5+mczMLT+b-hagEfFLIQj&%U4Z16IP8?8@6 zlR~om3+sAlG9&{-QbuoM&qg5?Ym|6rC&N9iX;MuT9>v_&v|v@uL6Wix?GT@s8*wa$ zZ-YI{dgl#2*8MZ)qL70qdLmlu(%z4(wwS}#hayGH|g3stvXuwvhjqOeE~jFaXavX$+lG- zo{L*^?NKv%^T8~Jb^RNqtXDqp?b`Jc926E$@r5;Ch`6;)DA{i6GNrA1nV?b)eA3tR zufw7wXWg7fD+Sis&NA1U=)EBj(d&@e@HYw|)h8EzBsN?PCCbP-~yy z>)#{@b{eO!83~s*Zla1~Wka+e+Ee63;$?}G)!ai8w?ZdxIY0Qu_CNZvkX0K+lUz3@ zg;jA4FLU(V>ZlDRf8w}cr4#!FdldY~TMxC_$GA+ga0JlN6q}*fjm{nw;tslTO)uAw zh6~^)s$G=qYTRqg>8>#n`OPYIZ{XeFaBn}%$xZuy- zipd0x!bBcs``m}*iJpXeJHt}YJT}2Y3jB?1n<}m>-_2eqv`DQ2V_>+sF23fCGR8^~J%gJX$)U2~Ni(0an_% zPr)!{z^OT!)M3NyGsD7}z;1_36~^j(*#~>5*93Y2K9XI3Ll)!5r)G>)=6hr+PyIkYfX{U7 zob*nd3kf&d4De>n;3`O^v7o7mrSji<%;L&(Ta zXFrP}oukNQto!Hy>T~acHK*!d2H|b;$tYiRnQO}`6;qH<$rbsXe%WrWa^Tng;jJ4q z3>#tc%FD5^ohQ}Q-kZn#6FXJ(Ge_J>tYA%n+z3z4DbAs|7W&I`p1&)jJJhjVrAv)C2gyhB zi*%wZzu7|Bs`<(dnsCG|EY(6{B}sS%(+Y{vPn?Js1$gp2{L2q6G9d$}@o*QJ9m|6!(NJ zmhyZ8yysP*`yt(M;!0+vs2%_CMF}1 zg+fe|ORuYybfFUw7^?pV;6GHR;)X9-Rn1!PxtU;d;WaqWpjev?!L1)LamfZ&^r?Ms zUbLDGmC#ts%3hi~<2erpEGYn4MqyD+6sK^r%V6!YUtS8)B;99>i;X}RbBL5B$mA~i zS#)>9=%_pL>+wim&y^#zhX4xjL(*l3JH)z0Q;U;8k9HW} zD6=VKefv=s^0T`5GcLV5POD8Z2XdJA2P7N=(1ou=Zn5ywwjXuKie5eymgQcgqd5$O z$nNP=ds;c%Ly|*?RQAD(>$r`pi!m@ z(O6cpG@;!x6oZm0(R<(pR}|n z1bBWiI#>wyMQIriFeQ_ZT+sY5Ocv;Hw-MVq;~sQY&h=qoOKg}u(FBy__<-5FjJ zzWLi8ZM$qyy4w_2C%F%83s&(N(C zG}Be#UkfE&*dYu>SH!E5vg3#0<)NbsM>Z>K)ik+BI|OvvZd;+a@_9;3j8jA0aeZ4Y z#1G9e-BDR(C-(DbN~yCvW2Nd5LwB?S^3YN0g7gjM^VrWVJDy`{axO^CFB&tQp`tZ@ zg`&yztU7{R&bh!>SAX-46Cr`Y6pa{^^8>|o<4`vSWI&=#X*vTiPV%5vU;w0?IEH!D zkvPen{g_q|KfI|wG?-#L;_$VFc|)n)h}vT=jr!6o+}DTS6ffA(ZDRY;2Q9#NVsoI1 zSou4FO#b|?7k_T9K(jM>eg$dv-ytRhE#ke^^?nuQbGe&Q;FDw|*vz{8?x7IK%3>_20i5LiZ-Lgg#Om zzAlnv+hZi#Qc+X-N~W5+6fD#7Dhy&I^Vw^3OqF5Ks75svdi^ej0)<1aSm~|KpP$&f z_k86>sC*+?c}T??9B*3E`Ks>Z3X+ZT=N{9zd9Ck!-9~Kli;-#b#KHg=EYj#!K&|9V zTWC(=-4N5efbv$XpE1vqqJe&l=X~;E;nBV@(38blA7pd=vbj52_gg`tG*PfKk!%>z zZ2N$#Te_n?!lI$mLhp|~3wEg596DX~5Ae75A3%G0hcunI=uB{RhmpAIUF+>E-fpO6 z{F!gQd9*m0WuzGSBnJ|kO^@++r6HS24#w&38eH7BKm^=y%SQyfUjd6KfKz_gq-@&G zc1-(Ne}aly@2On-XfwdF`Sh*?+1yWzNxS-Y&sS|WseJ?#+)hNEyiyf zJM0Jfx8BgWnd)k>4}6Pt!tdA>{vksXQmDwfaLaHZgA*+f*`T8Dt|748gu$(wkYniB zEQ6cE7^BqHHb24GuGoGi{4t?+M6r8<88Jc8+9^ANeFF5k#TXS?3b-vPk#81-4OPeK z5_1xyx6KG`wzN9~6DIBZg@Pa1Lb1ynk*2@0%g3)UfoxAR@MG~1cjhqMk+dGQM|NIH zsea{EG@gjIYF{S3AAQejl8V_A-FYkmyT%YC~Z790&fwIn>vq zVx1Ic)4Dk?F11fM=W;FC(df5m)i!rmqhXP=0oofCiFp!j0iW`k_S7X((ORKn4i0N6 z!z6e6&tlpj`~#4qj^yfriOU>-N623&BA$Rk*8T2pXHWX%`l;$1xDN3db!}QOlJXX= za$GFL9HK`iWqdJ?cP!_~=uffgh1a1O%$>Al6$06yYU|Pe(7?L_jUou0OB!lYJPV(5 zi7{EKlakS)%4_V+Y?>1|TF33)fXnUYd+CuphIrp>PTNEM-`X3?Q%6VrGnPLnk1sH# zcL_MbTLH+7+NY3ne-h={d}7b3x2mVD-p>!Kz@&^Pkt>SQJZ{WBf~Z)q{@{3ui*eWz zXOdTud?fNn_jCwz%Ca!N7`dB8R)2h?j#`(#cgt?sJ>x^dzD;hZz429>XwlRt#WR`R z3^kExEnreO=juN|aAy2H7H8iza}eJ@DIo{r@DCu2aW(${S;C?e*8dMM=m4#_YF-E8 z0WUZzI2G@D@ZK!tSZWe273A0(`o59rKDVI{nLCY?({)x(1$67h;GZjI+$YXz9XI>=tpDYmQu~Rb&7QJ zUq)<4>-A%_tekUt`;*f4Tg8#DI+44>tvWUcH8H4DTf_~JOmoOJN)%WkwZmxDjfgo1 zUNf8!U2{z?zHbtiiuO9`+=%=){(X{V!S=(z5tF~n0&1E``* z`m2O-B^5Q*s5MhK&mpc16nr4-@z$Av&QOFtj1feD-84P>KAXovSkEVPg{?;Cj4&^o zXE|Die|W3@MxOFU$Y}@Hf+}Zk#wU9-b~4)WfPTN5-lD@xq>xdJ!tl>SP0mynTN8ySBxCc6Agb>JVOnt;*A=SR;(7A znPUzFGt;)vYovO^zj4eQWI=mpMoxnsC=g^HrsxCzGJQ1ZkyQL^iv`Av#JmjJC%p@% zV1h>Jekf?+LO#Yk+@#V7U>>L!FTm3_j#{u-wV4;bo%O z*lqo~x_gJUH}~93s2pzagdtQIBc?;c{Aijza8H5`J5Cor9JxU#-K*jO*VYLuIkYE%c3A!i!MIN8Kfp#HQL(?P=)vjd z@P&XFX981<2T=L@i?0YO zdNaQ(L@+q^OKioH%qJ?N?Da?M#-}yT=DRkM-=+GMdxU4pnTk`TKuvVcE^L?M)?zYX z+t@cOrK2sXT5cOs485?z+^+&l68069RuD`3&W0KYOnNImQlCQtsxb}|eEa+R{WMSKfS6WwMZQ_*ytsS7Z zh7HI6bm)`8hZ}a7XVJ%P-<<CLVdqd#;&AG5^G3*l=Zk7y{E`Q`ObzaRvtAVQ%gM9Qt) z=;5Bxvk&OR^NKi`^3oX9^u;}Vuf&Y;%R4$&EL$T;Gy0c2wX2|Sa~{`uf@5Ld;_tU> zV_7M?oY_^qAmk7ZF6z%6!O4FVB07Ok!ZX>dd`jsC7vjH0C0l;+TQ%A8oWhiM4iBHd z;ri`|NY{V$HUmqX|B`D8N^NOJ{6ku_e_S8G`iTj;H0~$zjzHvdJD_0}St@Nt08mOZ z9uX1nK#(*&BtbYs==AS4lTr;pqP&fQEc@^Zu|v9nh@elew0GF6zd_{p7WyVByT2O4 zY6tM9)~4oipd_QX&tI-tURupjvQbqed65a1BE?lGE4cZNm@WMhS1Y;KE+dSn1KRRE_ra| z^Pl;b`XZ0_mBmyIq$On+2re^ptguF(o(zGM< zpQuVaIXS$7l8njQFvGqatVFrEk^+r_g8nXkeFp~_#|w=#1!>&6Q(`!^fphQiYtE*Vm-s&Vx1Vy@~dxJqojuN;fq++tf`&O#^doq zO>O)#nv?OdFX>l=k0oOzPV)6J;ENUK$A}e)^2}I5H_K&J`n7ox>}H8><2iBGE$%Mw zD07#;1>FpFh26ai0QLM#=Gw80Hfl8YAHYa8`fK4?nYuZ$XDIDtv1whzm_Fgh>vy{$ z?yM@uFjE>lO~b#+dcFXbXL}#DulR3$Ao=k@Zs<9jS;n^G*IwD%myizS<>BmT(hHEE z$oPL`Z3{-vE#hZ!e^)?P1^i1X@5??b{Wr0TK0dovFXq`>OnaU5EC0{E2+6Lmdxr!! zr%>ZQV`I;g#X(~MhT=rChqjYz`~-kykume)ZYP&?H`bO&HW?S$?#sDlHwJQph zKyaBI-R2_fOQt`{(-WZwA+DHo@w6lDjChpq!29()?lhWoqhPq%WnD^X_++m6HHYHR zc*mdjD?cFjc-e)rG1ZZhJA!{K|!!iVS|F>h~yB(<$PksAb7nsm8jp4T6RQiToY@&dh9; zI>1EriqWS+C8K2`(KfRV6J~kmiaMV^WBH0!`y-ACJp(|e*+H8+srz!v9SF=zS8fUA z#Qy-zjZ+SMZ(%uxokVAvFBxy2PJgE~9J6UZEP6B2dhVFyBpm{}Us*EE1{81eWb^@j zqQIt=vsM22Gz1~E?y*N*497WnNxLWvUJnr<-1w(zP5c|W_QH?W$tI?>Z8Bp(%c#vl zlp9p>p--X`$RNIWsltJxJJ)h2m8PYk+HA4hf?3tD=-m;8Y{9IPHTbK-6jO`J$>s?M zIXxD3BPz=)aJg$VlcwxGzJ#AQGgO6I5TFTiMw6`y5=PzL2Uf6b)_KE`Z z%jw;y&0;5*j%8oS7kd+DwPg8;i2)x2)s`JiAezgZCFKM_=F2HJMUq>Cz5|wt-|uPc zm$IWWR^iWbglc~IX`Z+h`W1|VKVzYwaP!MDcz4t8@&Mp#Iokj?n*w5@5hjlrExodu zvJqAS`cTz_vYo^jg{aHRJ{=dPjTh6Gugvc%Tr|rcwO@vr-%8O`p5L?GG>p6%ORH-^ zT8ox*f;Ov3Cwd>M5x%WLX2B0T}QqcwD^LJ>~CCUURd`i-e`&PKT4 zQoCmK&cikafd^GTvAbK(#Vs<_+~nsk$qpCe(z7zsoM3-`)_nziNh{rW$2gs>5C8L( z2i!D3frDy5wn!_C6+RZoG}Nqj7#rFbB%-Cg+Ut71)9~<%vI39i;L?=1(Tb(;;d=5G zd#{(h#!o*?fR*gdGOD=Iy~yb3GaXF?O`;H`fV{F&*;5q&t-j0Zwo~f<2ly%=V#eaV z+17m7e}Kky(gxxzn)MHW7%DYf`!Q431&OANX+uDF&9)o?(i}vuN%8qW;-U{wm$iQS z4h>Pq1WqP8AhsYImmAZG1$rWJM^YcKzbTS?lLU;{=9d(RuPB z5Z|^xRK#jIN#MQM$deXRuuC>InX#qpkjSN_+pf8ZN-&Y%4ao;KU3vciaNY*><+eV_ z%fI(Y_=-~_wzv5Zj~h3@(*qq{G1DxpoFH3vl3Nb zd2dX}I91|*HG}=Ry3%0AXKBQ>DNe0klD0Y1q3=7_lrQ@j<@@6=vY@sedpSTx|F?lx zT9nm|%JGGYcsFo#AlG=B?)sCC?V!2nQ}~ zPzfROZEhB5P>4w08G8%8RF?Hv!Nx7;;3F5g=Pk0~ha*9!uZW1Ns?>SecPKA4NDWH; zQs=-9&GGh=b^ZZTG*hZ&gfs*WW8cosgoa!UIixBO>8D$I-ARZZL?fOJ zpFr3QJEMy2pUydTlYZ+R%$4?gaY>m}v(>U9HSx-Dn=%}<|84unlsS%tmIK*5@wJba z2ZhlE*4mV$ZyY`ZYgU#b1Rtd1EbPSpxEn?AxR6E7#qrKOT3d;}NeP0PSj~|pI1G7n ziu;N-9hX_5am$rWE6($N6=rdo=@1Ok?xl}%+9ZyWJ$<1!c?Dhx8w$(|rhygR>itz# zm?ItKhz0oV`_wKglBZRS2du3axE3v)s#ia1!$9DY# z%*I2uBpOINC%V(7Mz^=^_(yl=_lmTsohZsco?cXrMNr9NA@NE-6T1X=TUQ%0FOS~U zmk>z1Tn&bQe+Nu9N{Lt>2zL{?sW-2ihljyl;wUz{ZCIEUg2Y0Ga}P0 zOM7@lsfLTVH#G5QG*_E`XtCVtg}+G+jJydiSIBfoiHlJwA2NA29n3F-ygJ}O$aRp% zMuEwkiOIGtT>3bf#DtKHc8-RMw7>7JYZ09u@uduVurxB(xx0k`OrMzVjeR3r%ai5} z&U~JTrS&fs12CZ~LPvC15Nfg(10tN%{{*<5k|xqrSF;?Z5Y<&LJOE=>$8rZxd<>2< zfxj6J3KIL4T~yT6rFylEP^|k5$g^yoknMw7*A6N#1d4GW;~B&I`mWr9s;VdVvt`E- z?nfk;msc$*Tdkbja%}y8pSP#=$T%lT=pu(TLM-0e*~7UA>cYZok;q8oSpfv`EDpqw z`pf`-1|;G9U2VMnU5$VMmU8Q zvgH3%8^LdoW2TE|tMUp)xVHhu1p{*#mpXMCl``6Xy_R`k*>e2~UUy!zJCVa%0=^p^3w2!t~0F(vJR)+s}B=7UqRujqkn4>t)Zr zss33Z*LuRL3IB518Sj_&h19{7*E;!aZ>^!Qz`kJl5Afjma`gXmRhMmtZY&}Q<@0S- zL!(8r29r`un~-l5)k*(2@pij<-AGzXn8yl8&jp6m;*_9s2$$7=fLE7)h4LZg#;k6> z$-02rQ_iNAPc~ux8sjKbuSBD8VDr2fc^R-|wscD}N9gZZF8}jRkV>%>ir%9dx)_rZ zvH$f+=GK*P75`NGpr{IOPfoPRe;Lo*KLEa5VqZRb%q+B`vbp@_Mgee`9gTKG#Dt?@ut%^ zKGq7Pzib)q7;^ib5oL9f8&vXrI--UOH8>5UJuogAL=5_N9n5ZGdG%0r`iW(`J|b-= zy9vR!bptpW?TSNz2NxJ1kEF?$cy7v-iOM%=&Ft|3h;xppJ1taV5`G+zbw>ii)y~ax zsEUMNB)$2LZCcM#X`w#HbkjnFW^^L2bwMxVVKN6r6h__hSCEljLh+cC=DgK$$9H%x9Y35iPglLF`&25%JQ z-V{I8p;kz?;6R7IL8>`v1L~O6OE0TO1w$@ zsqrFUT}`Jr<;z4<-vp8WjUkHf4Y=^aO-Ucs+MO2o_KJi1vQn+1W_38tOPlZq2ua;) z%?))Hq`=e=C(h`VNR_P=rd86rmqF#4({ds2oJl-!SbX_uSWBV>(sCPZtuv8!x z8ZQ=#otR!1cs7Fr$B1INtoLGawyMPf%)0z`{z4*;$46L;dBswrSX(=2dHo$ z*e{6Aj9pXs2S^}HHW03@@V9v@E?)u{GJ2~x4aJ-5_-J&`YzSxa7<9h4$)Mbq2ihrL zu8<-8t@^xQ-J11sKB8~vS<2Qa`lpYK7nh@mHjk%k&A0(n`}@9q;?JG+JYnwsG%F zzG%^B%Z%-P0oygGWf$KCrc|Cxtw@X6Mi#&rba#Qg+pRk#*YP=pa$IdK$!J;Vs;lfg zL!?XovBYPJ-R=06S9hKBw87I41NfE&z4m3qVmMa zccfZE5ZWx+kdLmj(u2d31xdtMXh{Dagt<%CD#v)$D((<_gM&&4{A`t2u#`24ag4iA zehl$Me)}bMkfC4SmIfq2M$az4ZQp8n*y&2WN6g-Q?0R>588Oa{4a3S~Eva-)hf_w1 z!0qiK*8VaOS5M9!pVeymNIFqgF24(?6qw<0njDruhO@}0L`fM7++FERuNw0>_A~ut z(@V~gC{UEr?)SP1TYaLa&k$%(CVL5PRYbda3_wduR=SU}zZEKGKKr$UTP*$i$S?m{ z=y|jn(t#c!y&O?I7rLl)Z{n6yagQ1otUPa^qG1T7p)uo8V&2wD3^W5CLnVK5>k*zT zsRSy!O{qK9`m^v}6lR1D8;K6RKWJH#4KK2CAs<-X)+-Xl@K03v#urD<{D25A=Miw^ zdFnbMv78}SDu66WG!#|eDiel7P*=QC5A`P>VaEqfq6@cefGva8{004Ku>*f_0*TVJ zU1dTARC!lfve~GBw4O*~^^Q&s3s6n4UygO-^BTiHf%o-tSId5vdikTDzYYHNJWd>% zGzxPZ4fk(frIf*!f9kzHlJsb|qqMqyoNc>&55x1Xj)f@dG>^Nc{y<;L_?b(%08Q$u z!rr_{3@M&awQk)~*sjd#xBYuG#sAwxXw3ph0)f7%^cE1Xyt{d7mBRIy7I})+(3D)| z8t%E$I?dVT<{U5w!HFYqSifY3%&uirQ=hJ^w6gUj<8EM6_N178{;`TTmSrxBy-=xx zOHcVj0mL~<@#(K7q}!xCOH%jBszU)uq*<94ISGkVMGj}+Rg+Fp(y zY*}kdYRl;TE&u1}m*Vvpwwd99mT7Mf(%nwq;XT`saDI!xb7sdpI-kE4CBfLT?&y{G zD}Tnr>6QP$V9WYD z!@l!a>-V1OR^pjyx!xvuw@(KrCmILL$gTqBWATjG<4I(6yJrwv)!e&}kgOCWVV1C% z5U3Fya?_}c$379{F&`33Uytkz$ZFvji16GA-(I$swc1!H3U^G$Dz@Jj+EPP_PN&32 zR;IxVyu(NIq?Mkw_0@Y_)qaj&e2H~6cTRYmo;|m}bx&b|7ZQs-hM2*}vU)+Opu*Od zb?XkGq4LH6L@^bIPG@z+TNuR(hzZHmS+6F(Y`h4`lu9azvu1d!2q48Vxe^-lf~4E= zVlFY$r2<+5*spwp`T^9HK-##NXpQc#5SlXa00M|$I)RAhS+77mOwqaXJ#S)481se&h+Wm?xv*)o1_Il1@Z5HY1ZRS~r@9gfR~BGi^iPxI zHw5N_1Zt`9r0yiVievREh$fQpO@hD?D|%b@e$|K$vdIMp`Fme~jl`S{K;|mI)NZd~ zM46K5y|fLq4WT*Y6+(Vhw*}3UR)T=)K@_85_}C^EaxG5i4yxmiNpiUgaKROl3cmz@ zcd|EUYadHO$BG~O>dH4KeK;3Ln{<4`GaJg`hPwE;Wsp4YhZxB9O zXA0pOKYvLEh@1l4nb*7pby+-oRCD&*%><)k=EnEnSA)y*7_)-ZF2RM<`uBl2g402b zbBE1!6isKy6=%F88RuRT6Y}J>#EU)kQ0l*pHZ)m>X9$@|QzwDY<9LOu_>+oFoXh&{ zDkF96=e(~I9)3#g>&C}FaKNiL%jaq9KlEES$$yIN85~R5Sw>p_{ki4+GcgfMBc!~; zSS!&yRl(PX-RGi<(o%-M#b&L``d}*w$pJVcy+a6J4k&qnp(|3Tqrr;_a627XSqW*p z?tSJDE2IYeR=WMWCd9u~f!ES0l(e6xS%To2?Sxq2$___5@+*7fcOm>}v02Zt!CBEi z++DUj$>CSOGzT7Kl_?IR-?Ku%pQXKS(LRCGILZ@7V707Ab2ee~z@}fY8NgO&aC+H+agX9+%C??kh;S8@!O|I>*H-i_%HF(BL9SLMdBZj zNb4l4F`E;n?E(?e1Zr8!mpE+j;K~;*YWWW4)YKHh#z<^Cfdpc8HU07v7{IO5tKz+n zOiVQ+g-tq0kFYVcLMpeNgmfpiEs%=Qul%xBwiTd4fePXQq~DB0D;o)GNQ)NpCKY># zAB6`l5aSw#3;idN@gmb0AHhz_`U+zk;m~7XwoR~|YOYIk!FY~FqB}iImm!q`Vb(Cf zg2tn}cF?aN#Z-))dEel+x^)Y3gDAji+QG-Kjc9~};8oI2r!i1cwx`#0MH?;r`AXJ< z$k1po19$B90~-Rpa*<`S#yez`S0+AJ*wtP2>w0+TUSKulX|D>f;KxRx`X{Y~d%BLQ z0RXG069qpW3bCE94;L9v)y2Jx&H~1P{fbwm92u?fVhB zNNFQu6iIUOb|lELf2$L4>--Vb31apWp6aVwi5kl``Ioa*R`yL&`>fx`Y8`vWcDh(` zFZ4(Pd1Euc@IWyAAAll+e| zI$o0Wn9A|Cf=rqbem(o16VBfb-ym#~NwtJa{N&IC3*wl}*mbaZ=E2x=@Wq57fB$4Y_p=JQKqC77Prr$n(91np>8 z&cma-l0~Kxx_E-XDu+{rY1ItbkH{oG=3SG-&Rt)n1!!X8DVF>KrrlxH!6L8%tvfB) zk8v`5y4p{Hcy#9=N>Fv9>}GIN)i3RlDKw%h@$PcI(wpdgZG7ZD5nd5%K(G@y1+^1s z@F^Pt(&?|wD_Mrc7V!#D%mI2=*TU2Q#&)@G;1?|6)M=|EaiTBQ9W!Sw=Dj#tge}0u z3|-xUd8XEi@^yy0+fSQe_0ni0nV_aW#3L_f>0t)DxFPeqo`#jI`~36+lxZ`R8jl?+}Q--IQGHir-!E#|f?{IqbErR|$Rn=sDt*Ak(k5g?Vc!6X& zhJ8jaeag*Jt`ppt-VPt-fg2Ru(Tx+`IQ3AJHb51o%GeS_-q&kZb;^eM?g-&J%@noEOj7w`yWV7z{=RR^52Rns)wn+UEmED^D z65GIpm~|%!GVKkAA0Osxba@AWYwv-J7sW;Y786LWLOr6&<;)4AgMN3QG5HJ(>_F$k zn})VEXr|RCV=(7OqpWO|tNiOz{nF7H-wuGwr3KOx-HA6f@Sk6AwlQKL1FCQXd=T3)1P4a9S!_cNxG@H#ExO&Q=P-`6F2|*Oln! zF>!5{a|S-TYy$(Cm(x0bpU@mu&9bCeQVDAyTuWh;mvj4yju z-_dZ=zWGL2{T{_HG5Ez2Bq{IEu?T6K)Jkx=pi$}WK)4#$@nd0HLbAqr1ttZz6p=TMTTX}MDe~}#^PY3ry<(n z4cd~$-FjC>OKPQ)xW9b&WgNU6mYMG<;TOGi`03T>6%yDxWxS#>8W9_ zRxPIaT40&T#zY8aPku&+XFgbUDP_sELx&_93!Xt!zp09bQPR1FR<+Eyc}Ub#$bSLovE_CGQvQ!>)Pw5Pvs&-_)q-Zku{{!9Vpc3zer@7|DqDKsA`GRbs@cJ zrD%<43Gps(5>8GY1bz%!1MPheLyQ*SJ;W^8uaMXtu}SHG0azP2C&nhRZ}pb5x=(!h zvb>*->)3Y5m0JJGzbunKop?9nMZmIng{+$Ym#tIP*Vuk+pu~qJ$_S6Yc(wW4Z%A!u zC)Qb~;2X2O)<7EXEX6f_#U2_;tG53?`a|=3{vqdAF`jOE{v9!t93^Z~7#J%YADy-uUtXLDErA*ONg870e_? z&;Hp1P!{S5{s{Hzo%t3~_nm{vlX5C&17c+|nPRbi6BGNey^Q#J`d?Y<4N55oli>eH zFmEDC*Wbvxcspf1nEto2-pN+9LmT?~?3lz^B?7WVsjzi^%ntvtviX+@*=z9l?!afo zW-{`(Lht-m4v>+HvwccpzN^T1V=&s4o5ixS zq`{qjbL7FTE|mv1pw6pf*ek3Urg}r^(Q{;Rk$!o0pn3h5gd~%RyRviF0RW+Ud`?>v zd_0nYh~;4l)&-Dt!w)|thS3)CJaLuE1?EQ`Zik8FK)!2^(?;>py)=K$awv$eK&gR*59F78CxF4PFYehC?+g6WfDH& zzPC99#sTqNb)e5`03~ke$cISIWyxi>H~tb{Ms*%_F~U5HYJ7vDv2II;)y|w~VgT8pIErZVVB(-yUsiiXtjBo8>lf3vWkZ1JLQ4fzPRK4$4c8=V zLN@#o6F2NQa5Sdy9n;;-;Bl9&5$PgReUpd$=|YMe3D8O-`AHpd_YzXC=i|)Mf3AT{ zN68SwrP_yt*9iz)CIEhq3A ze8Ouna`KDM&Z(UD;e&=vI;G}g6^%(>cXS?Yu`CDCP6tTko0llLppXzAN8X9$9J1s$ zV`5D^qJG$^v}U+m5uouKVV88jMnCgQ0#y_T%GJmu6k;L2f@eZt;fm7OWK(^ek+3#q z)o7BLcqQ>QOVqequOo+=kpT3>+Ad_gjEp2z3N?W7Xg`4j>Twp|dhvRk;MBLwd67of zXuK;?Y5c&XrKjD~f;WhO1rt1Lfc(gH2_F()el*%;$<~3GSYu`afG?^7kB_x18OZk| zX=ZXbtvJYAo4*-!^1B=<>LbeNTIzC51q|8p29@nK8O=!iA{>V$rn9;pDCVL z>D7z(>rtVR^2MRI59$q5Uwk-+vvpMc*Fov%$8f;Sjm8?AHWY025*P5UwA`T=7%AXLxBeS!TYY(9u>zH z(4$RJLVa#&qtRoTAC=Q$5A`579{{xj=Ro(_ZEY|C&rUN)pt|65bS zUkKCz-&%3X&CK$hgH#&dcFS)4t$uvb#Jc)zm&+{nMw?3r_A9WBD1Lc@s7R)c;ZPg7 zDMs%DE0nT3PcJ`NHv^Si8nnyEq4>n=_`}a&n2jROnI5v%LnF6sq9Ia%C*7ZjZ!*8K zFL-DiHqopd@>zs?46aK1lM{A@1GCg^ie-HjO^#GV#^g-XcGDkT7tIN>xoQ6`{q-U) zeb=}Vg#K7G$L!7VUnzz{VqPtlp-H(1GAU~n+Nj)>)YM2jSc?dxS$MBL6Dp;r z*KQvlUS2j=bhiOb3a7Vpv%%_pmz!3Dg;>Ym(q=mSY-_YFQ}@v?-G?|6J1;!pu2AM- z6l@(tbZ8iKS9iuAjn^%q-41CUOdwtg(!k}7)qSlcaSg-|4*B$@`(W=o9ZI6VKF+X_ zRuxhdJ5N8CPu?k}>+9(pMCr=dOtfUYp6pF+*dI)wV6>+_)9YdA$yVR#-Q=H6eF z)UQ$~eP|h(5(?sHx4l)ml+Hz=L`eQ(L4J{pv0rBR0=->G)FJqt&(MI%*)@QTi?809Aq_f=U4fQwvgC{ zC~$Wn`_*s#kk+bST37XsOVX7-9F^Q{ye?iA@aWZqd^t#bcGK~htzG>1qg-d!lYv&f z4#6&=UXRdz-Wbw2Zx~KI^8N)4Z1bVuX|`S}^g%l+fZE>aavlAS0NGy*zes&0oPJxc zgv2{c=S)(A_k*naAMGY+5r&G*v^*ZGB?bQj7(ZIWUu}H*R!I|^!2a3kyL3AeZUH@l z9B;PJtZ3VNiUA4^EF`3wAInGIj>&dCGbr?3;0w+_H_)C1@%~|_<&Nk=gbQGVP-fP4%hk^8uQGFuqxtDPhM_IBU~^ecB^_qh zrPxKvIal>qd?M*vkBR}1xSxc(RX}9MVITAOeZQGm9SHu7pvkB)_>$?c`(s@Lz<9)7Zc$-Q8M95Ur zu|Y#X?XrY69iDOTgg!U;3q$kSTeC;Ik|GYTDefPS&VKVeOm3L;Hb%jeeR|ivKyIkN z65F==|)*q9K{n8WWX}7X_lA?Fl zE-0G1yUVJ&ReHT1E1m^$WOsDvRc4hQErY<4*#hffHLj@%aej zH6H9<>gA(c8rlR&jLkr0+dR+Iq-u&2^DevM(oFfnx7yVR!6<8ne<2dM19SW zszfoo+eYfAM~8wXnfQp^3>aLMYb0)O$1&8lUxteAn&&p}&Zo*&o;WBEy`=Rf@_-xx z#?{EbB|mmOS3~{L0YU*j>5`dA0GT-_^pJ{9ZmaT9fatnR%38=5>qA%EJJRifW`;(__#=A&eA2=Z@nUHd(c5Q;jL03zT&(_V|5b@xKP(?}rUGg0K zOr)gpgiVMDVf65avVzr{*`9YNHG1V&LyHu$8+QE%vBVe$*@XA~VGN09JOobGr39tg zn^|uiv@w6)LBMY?;HR#2Dw(-p5|B!I2Y_4v@{)CfdDhxvfZEd(S6Q`XYfvtH-z+@*EfO16GU30 z8onxDN2KKlBe9wA!LR)L;L06a+9_!nuPqym6G_L%nk`kBDAr}HAx-yClTI1lvu|i*!Xa%JBo&!;$0t7KP?|BNzR3z)hLX zTS)7j?+50Cwj>j|rEwly2&mLlaxnmz|5ff=kUCIN7Lra(eN8yd)kqVvT2kNSaIRUs ztZKGZ5R%|pt@m5Oaz9@cnUrFjQ~hImvJ7T&G?*Mxx@k#B35QX|&jtrwh-<#wW!-rY zTFY#9yX%@t8MM%XfG_jJDzi-nUrIs>N>2F9!&x|)7xZX+x9TxmxJI?QRmiJ$LWHb_ zQ}Ky6;-4NBXsWiEfRqs&?|Xf0`i*bQJ)tM>QxpuYkU?J=fvN`>OhB`Cm9#>k@+gFX zCiG2<9#yX$Opr!4&x*+ly@5Q%<8#@4YW>t(I^8UU4*pr!O;mPX|cxgcX>}|4cMW_Ys#M zt1teKqH_;t^8f$%PPSoeb3U81oSH*&wmFlSB8QaCIY|!5nf&j^CRZk3(I6Khmr#T$$kx!T8WA6xT&?H-?vMI@Ps2U;yxV-0M1I3WkMzuxm^#5(``_o_zEBS?)*l7)c45~=&T8L1TfuhW)$;5%sC1@UYO1mT=;f;Co}yU2AaA7 znF3t?`Zq_W6TWfM(>PU*uOUL+XJu$hKW_mzdG){Up@pQjDlGcITJ$$ocGt)HAMwa` zacFT=$2xQan*9ZI*2-QQ_#T&~VS>9hBp=(H5|kPywf5n}prsDyqvO?1#HA#cYw6!)=g!lshzfrK1x!JEd9lmjfz5F3e!_Nv{ zVkS(DddjEq$ATHBAOwxtGFL7>bB?WCW@HOFxw?~Uh9B=k1&ZjjACmTjriB17n!W)~ ziXZNeGS~5-$0Vc2xh7(bAdU9Li98X$`+3@GlxJ|%1Lu6}j9OyH;$x-+9Li$<;2U8? zr2#r^=H}{Dxpf_Tcd+dD>Z5Ia$mk#}k0hToj)4n;&wfzjy@4YmLR38m%{*_2r9y!x z;CK|0tDVX__k`0?FEM>wI!HXlzjK^yK?PzvIu{@0jCe*Z=yxI-6)GAs=?|!*Z-q8PC8?cuiaR#0N%J z_26AlkVsTJ>xLBShOYIu|HW5GZV|l0LOJBd2PaA>=!K8<9fA<)LD)a zmFt4p+LoHUT^_*Uy74HfG_B`uxIh$JR;B(k?wxU#6-uN>P738*n}UOt9mAjXmYnS( z1COG?Udw4*Hu#gl`g!5)lIQ}AX;*8|l){}lER4L~p4GWSKlD{*#Z}jT@a=Vpg)qfL zuMaYd7p#FraEylp@@tC6&!9R3_eJ5bNUk_m<2^2ZVpo={h#aA{KF6W)1TJS4No8JL zxMclc)gRR%Wi!`M#ECUb42)A;YTEBnh35>NH9#RBl-dF5@0>68`@yR!wqlUYCJdpj81-)*KK!`zXCkI=eBw}P;iMaV z46Yl{2GZi%FkSfkqj-_N+sap+aqgvv7~V>`f*1|RvdI`@5eMd$)qxesM2un^7X_=) zTMV1>H5GyxrKob<=J`i?CE|(k1!+h>F$=(5yiKNv_y<0p1f=V?{N@Ef`18*U`JXr; zJ*?*D+2;*b^L(FiN89g?LLvo|pU7vMLY3zevz6Brxd2lY=?5b>xjQfNrfja>d*=w0 ztgtGm6D7^~7E&i%kS>klTeo;9Q(_A`eM*7rQ6;8Ppp>VE@~{HTK{a&cbXz8rTY^}I zCrjN2C_Lv~9+C$EK4(Zd0HcHb7lY?p$?``xT2VgzTd@fP{^yP|8lCxe&hoEWdm z8x=s{;ZC)^YNvj#-0b{db9Bd|8?5X8%gI!tnthdN#hy)4?uJ) zH0uvVJd;ie?d>k4%yssYEsX>YB8ZuBVWAYezKrG^s_HYnH#gF4PU}3^gr^b>TFHZ> z#?(+j#Nkq`#Qy-C#Ijl}a)ce!$blZ4is05zsu0_Bo%(QE*F^iVud(v6ueVd%H*Fzt~Bq{J+sPcWUF2)6w7bEsd9L@u>~g%x%vUgCnT4`?Hx1 z&Wo&&`-U*OXrAtC^{sb94=LeyMepBPtCi~5G_P1qva8w2j8iJ$9JEQRu1)DoR7>oE!2%md{y(M*?Eo3~Z*543q z6f$8{agxU2zXmcxsu=ykOOuv6e>P?i0s1FOD#cNBJ1cdtzj9UAH@V?QTH&yS=q zSIynOB~;>mlX%l|54Bn^=ew%AFYQ|*8c^Hpw*&dy2oHq?= zGe|&mg#Wjo28BEPVJ4`YJ&TQi|M0b(mkI1$KdFJK*sS~O1`&q(ScRR*Uvcbg;l`hR zDFMJ_f;8f_Ik^fI_P4ag%9ErOZ`+1DqDt}IdFUY1)pzL$YMZCj(SlRbkh;%`r}q9U zc5X*zWE%@jWtYhnw$pIvicy9-em@ zBY*=Q>%ie|Rr44C;9-C(xUiLcP$wk+tR$%nCjj8WrU(lRsY~Qigr$Ra*17o}^v|HR zfIYc2{`zYo#(5a7>_a~xF#_M;)M~-#>`QM^f;s$Fb)8zu+1!O4O>GV;h*s7>T?jY#YGB|Sr|X)SIy_$wP5l{^*~x@dI! zgH@w~ZU@XxSZj7*tj2u-X5EhS30kkl55(_{(DAxW0XEwRCXEe<9%e42%>1@(ao)<(y%Ps&ypTEUE0HwMgPH zp=Zfv#is-s0^GM$V@~8>0++#9EVPT|>^GW@c#XU(Z0QhfCThC}cBjtc?$~3+l-@BZ+nZB}^Z(vl){yADI zYXj?$$WJg!U51gf4}+d;8zYU``sPd-C zHDRRh4&X58?g{Zmf09iOe-h&>Y)HE~WejRHr`60)@^IU8{#chIVC$8=_i8FLNCbvL z-$kv0_09moF4F;xf+T;UR17q&jyWq15^SjE2lzcd-CK>~n_ijyaOeET1k3PNi9fp; zHyiUsls;vt9$}HzpHaxkV(+kc_Nl8ZtSFL;p#!{ZbxJ&NvT|0w5xjJrV&gTz)|07X zPoo;dDpOu*TJD>rSFY9^`W@A1%_v7*8`&CVx5+~y3mD6hxJtjs9$jC~mVA@p1>#>E zEb1jxQgs1M9FOk}JbDgpb>Szw1@A>peU)*PxY1>}6TX$GeH7ygmR}sNOOWd79C%on z$$nw>H|srIZ@09_8)s6gtoxi0yx(OwCaO-d9)jptEj?xekMC7Q85txzm(^96Ny@)Q z+}|6F$3w`W?b9|xF8n42ld0A4yZ^dQ_D#aLwOl7;&#C5XbMKJ?f$WuafuXX`4fw?V zZdG5`Yb}!vDH|oOhR}@JUl6Z|?(kM2D9n^$$q$tDp=UM;>F%!Z zdQo{$7J^LSl_u?t?P@%hQtXmqmFpadtH;9Uwx4<)gq{L27OSzK*w1B;`J0N>K z1rzg`K*Z0q$M9pL!Ii@&U(AC#C1fm-X62J#rHwO!t))gseq&3(0VAau^L|pD z6jm$7r`7Chr-E*7!Q+2AX}nAnU4s|7SbwRkhC)P$*qR}DN+dgXX)Pq3n@k?ja6SP* z(;lNf`zA-LJjv&kwYRmP&m^c5#JeGLZ%W<~tTq=fxmXII(Kt2CEf(wqaq?{>r_)ga*a(D-g)`7e4QWT!@YN=gIfgrhuT$l%7rB0(A+o6Q7(3Xnf~|YWqEik z=*%|dt_af5##=Ru3*y4pJ(xgTQz2dE+`;t$Jy^Ht{^e8~BS(~;3rSt@`#y3PdczE} zwZJa~E22+A_A*z6r}O!z7e3UP%1+3wC%oO!HnT-f?1x?Fk-jx_Y_1XkqCV=(rUQnN zP_CSg-noCAM@GwlpC^o#V+Z>vF_VVaq zZbrr};xOeP#xQ-lw}+hfg^fDM_E}Lr=UI2)JAWgDc=0JTbG}RJAx_%*xiHU{V)?g7 zu>%GHJn>DXX3)`9T|$hZ9XAPn{sndI_3;QkT0A`xa{V0hc!$O4n_mHSGIY7ZmYM72 zlrQUG6v;nC;Fxm-AOgkRGn29ce+PWxGXpL&=BgwLwNtW};9hEspL7wzF|_!0a@KO$ z+P(0`OK8S+tgQ<6g^gAA3YRIEWx>fOCIf%^0xYbW34HWR1jCr$Vwe20r2m%M19AjY zkv5mwwi|M%=3}esyR>JH|NH-jqO{hf*N|V%?(hZB{{T)Z4?x#ouNO&62w*AOTZ1T8 zUpphnTG>|1Yl3zbUCv34Z(j;xq)BgBndZ^jM4O|tSe4Hoq!miG zDr225S6v_74ZFKBXyVZQw`yc`+k}-=)^c0>=Qk}*Vy;rGNfeTvw@be|+O>#`@Y9mz z9gUCT#6JdiZY(~0YQgXIFiYN*>nTYXE>%##Cdb#$e<@p6-r~El&aWe7DXaR5!0xk>h@-=ks1}+t*oqS zss;Ey3Tm{z@5@y}dp9}Mgd0x6x<|HBSz9CJr*(R<%JRv$FhrBxt;(jri+ccGz}5N$ znpHs8a8{^|P0tH*dUgK&rWw-d4~*?B`K9l3mj3f8rt1O}&15&^!Udf$LDEk+HVC+| zDZ@Z~H*LRX^cAZKVAzosf2r2+A&Qj*!Wj;%PcO3fll9&uwy5lBu4Mx70F;z6>b!sS zjC)s+b3}1~KP}J0LHK&wL6DT_hDCKcE@K>}^^Ybmb89W@4_rNdYAXs#sqltEGT@Y! zGxt&zkKt`H4Q7OK_C}Yw8A0)MaaDg&Hmj+_Xf} z=u64mC&U6SNRrkk9c`4~{w=1eI|uWzB{VkHB`u!u)v8g~h8aA}Otkw+Yf>RyZOHAa zt|rKuXx5k<#0~@5+@($iHb8bQtA_~rS0ogfvGh+@aHjWwFA_%|0sx_fy2HhE06nC4 zPY9EtDQ19@Yl0{&@XYB&5@{&Ixgk{^3b^^|Zc3(wGHt`^(|g(kx{+)42^vMW_%YdQ zJPwm7QZ2qQelwZB&yQmyU5vblL5Q3dTupg^BVZ$&qEi_u0^D=A{|5*JIl>#8*pD~y z)54A#Uz6C1q@6AyT*{3%>$q9#irKhh)7BOtkMPa? zM#ib_h~o5bf)I=8QKlUDFLmVBvhJ%T8>4f|oRHe}B<U5?c3< z{Xc-o(DeuAQ}=_GOs)2NyDW}Z(cNRzTIfd*gg^g;4OR6{q8m0~>n2(5XBo3#dd&G* zZJ{{h?-BDAUB-O1MrZF-&;2uJ!yv%#k!kjNcc%-v{&5_7oTg^q)AWS$nkdF<-Bc3u ziA&T_@sPV9kXo{O79!d5>>>M_#kj@|JdsdhB=)R40G4VVIall@KL9DP)0CiMUr;u=Eg_VucZ>@m!a4Je~-K7yOB@)PjQ;T%O3ApU1l zGuyYk+r|EEh?2lFI5cktdYhlc`@t;vhs5lmd3+L!c4#}AXv$poqRoFJPILW9tv$uw zs?&oJ5(VT%G1Dw-!_{z|4J$4W__DE>`BTAXPWQpD%D%>>e!Ck<`wwOTyiJL{b=h$+ zdr0K%=;Mo!J>q0X;cs4Z+qUDuA_K+XyMaDeIg%Ho9qwKIjC3mA42otTHDu|p&({9p z-Jz32s|0(WgeTPinYgEOJ22?t%+yiYTJ*whp7h}6#g8{F?x9xEc+P|68%Py~wd(GS z*7i+?Pa0xP>_8>`zOFJ8JGMRNOB_*tn_73y11Em}PH(dn(*HkdGOc9-m2*WA&Q#c9 z6EiPw?c?q?+Vg4^38#5jAGHnAUxXek2$nnHIHpAL%gQ3HIgAcQC~DlwvzQyW@~!&R z6l#pT$HMYbTT)ayl?#F$WgNPI&Tm?gn$s?;)%wKw+*g>o8oQUCE4G~zl4+}bSR3aZ zlr2iD5M7TG1c-FtLNv;SFd&A|m30mxG_uuM9)N)w1{ZtX0))co{Ezz5(z(R@iYcpV zVA5O!FmlV@aPep=a{H}9=JZrQ0=Rz~cU+-m2fJyv8o{NQt1QYtEaxGZ%iK5yZz_V< zD)DIeeQ?RQN#=UF4DPk*A*Go-#UZBC=I0`~ouWldhb7YhAkEOYTkvF!QwlFT(}eQ0 z`{(Lz#(y7I7pn-834mPYPYA@${7XUwpI-QU1Eq-1u1=T&1k*5&-dO^hOyHSlH!^jH z864|Urr56V3#z2sN#{xkMf~g3-%=s{X#b$8UCN(}4?DHP&=MOEE44=O&~yo3(vX|{ zz`ky=xUL6{4vIF+Q`IvI}&MrC{~zj4#9gszXOiwCN1OI^E;C7e2(}qIVOV zhYkst)-jbgm>o0k5M%U9Cfl%icTDtmC%u!waYW>R!=&!3Lme2fK z`8YV;R{h;vtkQ5Mxm@A0w-WYibJNeg440>UDriu{FpaQ!N+aO$EQ@+{vy23NH}T~vu721Cu0U(La1XXTRj4MWbcJX z9RFxbj})lvr`%Am&>^QZUQ(jgw&Mi6NZAowR%rpErVhe=L_dPfDbRazdf*H5pyx+c zR9%_ACHO1ublB#mVE?*NBZ6y(x1x4QD$!Q^pH@x9*-UeCJI6SI`SVCJW>{%Z1xG&r zn0r58Bw)pIC~C#w1aM?j_bz~?y_7lkuH~^!&Bi?tB{r7Es-+1^?Vob0$MFNqNUp+j zF)+VA7dbUeF_i!)?rWL@9hBasx#V?!93f<{XQ3}7=h|Jp{~XHFkV{i8RID=8p!)3%POn_m3 zVx1yJw_FHmWMpehAa*`RuC5kUr$us z7vWiZu6H(Za}5(;yd{|JtD-xlJ-QXvF?b@}ZNPdzyWu_2+_f3RPwih`_#mD4G2A4E zXnu?kZr_9tU$7d}cAf-BZO7{0(O_AZEm8oN0eOadO5gPH=(=zi!qU(f2 zxH5Q)uRAot8d+dfyGwq4`#+`GLW*_g=e6!DlOT6Q?l)$>BM_fs^;r;Qq)PWofeJnkQ z()>OHx9GVT&nReIuiZt1`$?FEb2vLb?QLC#{6L`e1Ye^xw`;!0NARU4#qJrHIWl;j zLqPqsg zaP^n4w7aLLHUx3oz=Zun*zzd-Mu6{}sk+`#B*AJv3!N`i6d8MUSNajvAgRX4+gk45 z%nwnkT-lXi6YfCU?|G|kRQn=T?x%r8vU9`x=wCnhrlT+0NV9ku+y{KxUq!3qL!e*ho74v-TD}ZYf-y3RAbU-CiDv~|BdlkJNHPqcyet^e| z*a-lGW`gk$uGDPBU(I%zxwaHJjeJW=+yYUNQXFnlwJLZU<+&&5?AvJ|+gZ#NK$qGS z#qN5Gsyir2R}&P}U{ZphA_~LF>LS3;#aCY3*IbDOnz~4P%*eG2tXE%$2l{}dEW*=* z9XPzj@ZjvLx`6o;pRS*fEJ@Q%Jd}$Upm@@SAk(CvLn-vQoqt);{XSY+{}-Lc*lpcO z6$X4ynW6z>NSux5kgj=6w@J)j(`75+?gFk2(>Fu}tZcRbn4pYinr1sb)8pU>VszB* z#>k1_eSfuo-v#CE%p7HD`H*C6#hl>1#l|QZspaDvCOKcTti%82*#T#KW{@vll($6i z7UAE{>!Mv6UH42* z{c;`I?C;G`p9gLReL9;3$&fx?BU%71LjBX`kxffN7v^Zy8>xCUusZc0-`=Tr1{M6% zCmN)-A7t6p15QR%^2&ed;r8HXk+^x5L!k-lSQjtEU+oW1bDf3Zcc@KWIn}j*#5ER3 z1D z5RE9|yH7gQQsC0bD4wGQ0A^IR02J-=AMSkZepk1^dl3I_GTcuZo=Dsq3Z9}Zzxma@ z7x^XzwuMXR*`*vj>YWTMA%iac6{~crTeAK61S|U|f>yWjfR=YTJ?$CB{GN);$D<2Z zwKL9%EzLyA-+vS`E%i_+C|AzZ`Al8I+jWCB1H-`}%jI>Gnkn~;zL0LZv)KF7AmGX= zTC+@$tvB~lLX3$R=LlMgh$}LX^;MByhb7JZq9Y$#tzL@Rsm$0-A3)B_noZ(-Bu0Px z1nZrTO};bStocxzhxI_2_gm7VSr zMN^&&b<)tbYL{GwfY;vzH_7uS`LD5penO`kwt=ll>e?#?*|~Mnk1@B%&0{}s2ID%C zCGW4MGnQQfP;m6YA@P-9L$A|`UC3>#%4lHf`6s{jZJLkyN5CIW-n`p(3<%W}KlF7E zODPC{2KnT-M<1C98)~Dooi|#3i6rq+$hUp9NOmDMPE=6uopJf~mZL5c#9qReWY9B+ zbh(?Oi-<%>=Q#BAym6GDEYm%muw4ENhoO9A-xJ_TiI6QyKC2<1@YE*odP5hJbjw@o z1%>ZBI?*=~=FX>ID?}XGYqcx5?2Cl8|rscz1P-(wY zY`K*jZlOLlXSnmZ^Nt`MQs|Z`krpdpUm*ELMJB)RZBM)N1aB!dTM(W;btuab0PN|X z97W%i{vk?tXN@ESl(myJeR%6C1m;fpohr9|pp{L++h8Hb<}BKQ6(Fn;b}Wb3qWc)T zW~GWzexR0RFEVrjnVZJn>np>Asc=BwvV=;e7pvsrf=PjLP1$;Xr zciylt5F6(2J9I~fd--FPHb_cG?M@H4dhzS~Pp=skLShT`(q;^IoR zhn#p;=Bst_=JSuCKUPY$#ykbVy(oMC1z?^)b2SRYHXS(hGl%CJrJ#rI-MgqoNz70E za8Be2KbI2NOK(D6rhNrvs-O#AJd}HAVrQ_)XkDp@rChRh`Teg{Voc~y`6J=|`LXu~ z)d;$b<2#xBG(V+bq)gFGK&Uo@Y^($Wx@a;>HHE#}&LiljVDILW0c?Yg|mDJo>GvTqW_`< z&&F}ty|tR#EoC2-rSYtgci4pXQCltWM-~1cfVXWy72EQ~*@<-51Q*{M2l)C_aCiF6Qk4(SI_t(V#`uwcFT$@ z&S9ni%q#C!dXoe6?J48IcwZ4JvE4#(KF*i9oUdq`n1I2lG*)Pc@ju8HuX&kKa_Yvs zZsWYT@m&xDRp~k|z z0CADgmu4LtS)HZ%_+HERE@?TsWi1o@eYbm5s_&cka_-3DO{_gN9&AP@Z*8?R$bp1?C)HBFoxg9Tw#%VzwK!sJHgx>lt`^ml+p zfnPFe6UweX1>U$h>g8jKU+bhfvsM1aTh8C8ynn|m*UkA4!fYhwd)Yt!#06RS^*zha zG`9Dn%V!R_XzUGGAS&YCeXhkB?)o(5UvYP6NdH`?wKU1x?tONr*%yu&9BbFxdSeE_ zLZoi~b@aY{uJ4ChIfWMNd$|yhtLfOI7F&uXf;-O1qRwNXJ(7zD~&73kZS)B*ymAz;!W$p*+4x88;UamjIPBmEo?iNH?S(`-f*5=ycxRNuhEE^;K_3iwT`UFpNjfCkSDWHm9kh zT499{srsu1%bRTHs78$!*z98zjTv8v9?Y%W$b)-;w!w%b%vZ+DaJl}Lok{BVdH5>4UwrDVr~F_A zKT)V0O)23g4T=Gn2A4#mlvjJ@Wl|n04IKO}x6qbsUa{9Vn3}SONzy)Z_xEEcAkjPz zT;}Oaq?Oq`!u`h{hdrFb5N5ZI8NO-TxAf4+VPsvoP5&a$UJo;l;bQ9WAPd4VDBPcI zGhzp|Uq0$bdsFim{F_Zq?p~S(W&mgyc=07g#Y@-ktz*6j>{~cg;M?CTbSFclt!S_f z%s1-H`WeTIONJ37!sdZ3+J0{3zu0tllJGleJd-5}3`#M_-o#&;II>XU-XvcBvd1_L zJaOmyjwYs3F(o+$r!)ETi8mjVHoW}RW2J|)XCJvp~9!r=*>E1@VUr*fFW6HkYJ zzQW#G6OO-CxvM$dVNViJ>5<%iRf%D`Ek0x?_QHDVP#Iw}Y(uWEqYzGQ!kbF~TkR1+ z+5cWCto(p7h5Rc;Zcwgx_Fo-vTfJ_um5!y%fkwXEVb2{KT{PuA-nUbhNy!qMI=vQQ zm6YT<5YfO_(1a*FpCakWR)6?J)K{NJ8<%OgRcxPb%fX1j#}roLIkjg1Ey?wQh!&D1 zV9^BLB!=Cw=^RdWqnr=z7UQ1*EY`vbs4e{7kWT_|kMgtqz4Rr!<27>r+X9rX+TZ*N zilgUXfbQ#EW1_<|SN3|L>lP68VlwAhjbCVao+3} z?I|E2SiEsI;mLp(O&)cwyi2*KXLuL|LSH|wDDHGGm0!A3O~_;Y3t=Gczed?$B}hI_ zjqA^pjcE6G?d!%SPJ%-FIHz%~P^0=KBVW1M&PvWw{Qh%E`*@OY68dx%dTwaSiWa zHiATN?6TvFr$Bj%zEY;|7ZOH0X--ucOXsT9YCo~Az1vB_1f|!1J+Rs=EqDb z_zBMO)g4T0u7?Pa4MeH6lM1C7#7u#eM5PZ;u!*sigP6JZM>^dq#tolP+s;p>xX{(E z6o0Mf{L&;`#0<#b6YlG0WGbrnO}Olow{%B>wCEgu%w>_*MtQ>f~^^)?Dpp`zgg z)4D`y7M(BcxL+^hl6>q*Va>EtFtHW>t;1z#I_T>~?i41^R32m-;Q3L`_e~-ZD$%<+ zc_O3F{#P0sT-UQD!kq!l?&}dC|Id-N}CI z-Bvg9sLM!`_LLo=CYMfS3mdkSo`42L4dfcSrDSsd0QJOV*Rroe8 z3QIu>iA&H2Gk|}906Kqvb>GZ!-o_(<2O_A^GnMs$`WzkgQi+R~axSB^pbc9g)V~d? zC}PgQM=;4~m_pt83oQP2%JA?S<3SKU?pkdS{KUhe=V~XM{dzh6?oqhR?B*b@2 zVRKVRFrpxR;$pZR{_u?>8q+v@L)lW~N3-Dbl&=2r9fb0e+gAlql0+B3_Dp5wYzYRm zoz^qIlkJxHrmS00p6hB|y~_{SLMR4w_&pcUrWj4*h$bgZypyS;_k~HR@^eH*(t9~xdFE^F zMlfYkwQr^!KL1|r6&R%9^@yk0yH7@r84b{%9|pZvV&?m@P;K{p&l*ITKqrXC+UP6> zx7+g_mdNGd`1qb}PTtxO!e?`+Wbh zZJm&>wkg;*DNTMg(D|4rC9c7V9fR(%d6%Wt!e4we+!F_WJ-fn{E6+XBp1e#MeFIl~ zGZS&*)G@wI`hYm#3v!dII~eS5_v9BC5=|-Cf6qVs-);gv0C5FvOkNWZ0g#`bI%Q;-GZasif!**ZKX*c8O?QSLpmGOfX za^(VVJUe2DOWANOyBwO6SrncJno2lg(?r0~tG!F>O1e^|p5K zjW!~tT0|qNY&kyTz-~cqj+{L$*_!CbdZi*l_O{&#i)(=?DwLYyZdXzlz$@FbaW`wL z0?6fWuzW!1)7@K1g7*w&Zj_d@^}n)5Lep zmJ9;7>(KxtRi5Mp-73l2SrGYdl)TdWB^>`7EM`NYuEWp;%=h1y7%#-cd2L^7p$>T6 z?w=`n|IBu_!6KOFx&qc?+s|n_ZKK56@occ%_hF8;98$h^_7^7Xz z07Q>U=5>6GBb*}`aEbJ^r3cf*r(!wM8gM|j`RLodR2lk%;t50CRsLzAxX6J(HNsXZ zl)nKO0(QCU{u@H;LTUW5l4k<~psjDzxFSxxG-Z{eM)E@!+gKebSAit~dU%Oo%c1b% zS-GJJN%LdFiRNvR$rpjg15d1N!K%Kqoxv-`OW?Nr5cs3-(pH9z&uYI;b@!FMD&PjH zVXypvbKlf!A83F70}(OH4vhr6)tMY>9OtzGxc$GwAUC0a|CzJ`ciC4WV0Ca>Rgww?(;|d zgZH?j3%P%B?S-QRAwqDM!@U&3<31Ukd9%)eVg6FKPOf~PdwHO$4IZBfzPNdksvvB6 zvTouLMy@t@woz&FjW?IqQf@5nU>fRuM*wTts$85&#$U)2eoM=c8J_ zo|5~KA7S;`96M^CU7PNOLMLO=csa3BPA5ia(X4+gk?oe=)8U?@QtJ)SWV_yb!xZY0C*-j@udxQo%8Or2rG*eNc5P)2XT< zUmItJR)B+=XflcU`AS{*(VHZ#D;cHS3>(rKHCmIDN%9GPoPE~9PiSM2-NU0;EAAF_ zl*+l8P{Gp2akgJnD0`^Rr~)8>^V|P0A*xa$hAtXaZo{nIzbPk+D2PZ?;sv!b*hMLh zM&Z4`mKa0*VyzBKht>nT%3o3^y=^Rmu0=KuttyiUhUp|}F?qLXF=pItUF)>1PD6rb z*cj$_+mN^+Nngy)q_~<@o_Fz{5%Hz$*GktE2Wf*7o_enF_(=~`?A4_soa-?Dz#4Mc zKsV57y=F{V<@-rLe?Gh_9B|w(@0;?Z0x#TJ*b*X}zRS>X@lYs`JUw=EZZ|Jv7@bq7 zLK77}Ms1&tGEFt2@Fp;)!lhvO(w)meov?JE;84TvcJ}UqU|_cNYo_$~Z|-na-iGdi z=Nt#4braAHZOA5nS9g;PSK3+Ht<}xr%5TptUgq$~?6NH=B%PG}^c+UXNDLr`$FzSVwuCoKRpfL}F9F0%dTZwG?hmK7))w=e0_G0;Lm_1-0?{tp0IKI`FsK6!lB zl9>z$&V*A0ZO2JZu68I+Jk#KF^=L=I$HL`pbdYs4Ufv5IXW6HhzV7*&@)p&)fn)p;;SKGUKAZaFcU!PGQP1R*+#AxHW#b*iEC05oC2t8#mgPw*CcctG zG(S<)5y7+6<;LDUj7XDp(KQ69j4!Cml%Xfq!|zH{sGqs(lvC`sqNUGdpU7Va$%~|_ zu5#B!Qj+Vpkg*2~=)wy+Mw9_&PC(GsyN#tOU%q>)jkb-k3^f1eF9pKPw~eZ6QVyyK zjPDnf!TuB*XBPqnSd?$-C^g#`yUOoeb`lD*9y!rR^Q6HX>O=tr`7*||`FhQeAbZ5V3RD#Dl(|O0kMgR}guJkgXMEmeC=MOeMenb&XL>La@=v}ymE8E+d@?!S{gh3s^(ZBnQYw+ zU{)m2131N`9I=D|f`~z$-9v4+?t?mOYI50LHosJ4bjHie0E5>FH6}u+SL99Ie0Pj_ zPG@^^lqx(4Ey*ZU(JBTrs+V>~mD<*IKhhiMaG=ebC;&#lw|CIsGPMUQd`YkB4c$`M!Cy54ioOx}lLMqJEz( zUrcnmOT-HnO3t+1#`EC)7wgn-81Q}ulrbO({=C(IN7IGTd%L-JC=t%nFrC_3%gP#e zV3S9zd0R%v2`4d#*g+#j->|r>P~^m@*^TCzYC)ou8pz8|K_Fdrc!sp9BL>YdXRC!@ z!+n*G0NNS4-2OiwyWkDad8I?Ea4BfF&Zb7s`#L1Vj z4>mbii(1l}1Z6YNeQ=uj7^Rl{^I}U@Gxt&k#}3MG47w7k>Ao$%Jiqb{Fe;G&S=#f) z^PxiH&t>b-ZdX3ndP(aIyWuRe*|k5Yl28YISW+wDs}*$i*TS{?Ez5^BaE`T;saQFn2(s&Wl^u6IFh&RSX?8M+jM97e1CnVbw}JTb!qyOw~)n2eI4L zRoA%p-`Q5k!oNW+1^VdHvkj#%#gc=sp#7Bjakt8 zG3>pq+YIKdJIAyDtgEbTY}B5kDu{z)kZu+fttp9l8#%g8EkH6O7%aa7j1qr*O|JO+ z>XhRBE)SU#GWEuQZ?!eJG3u=nTp+iQOR<#^7Riq`z<3xh5_;y!gwWv4gU)AN$lp!t z(m5%PSaYn_$~A=Wr+BM42j^$XFJ8?q_}Jb5i_e|noVJohacy*EB?nwL92XE^8CnYwh}|9+;aubk($I=AyD z{P$$${(s#qorjp%Sy34?D^nQgq`2hGql|3b{;;c4AJ8KU?UE00GF?>2N? zWqIi~T}|y%9YfnrE}5I+kJ7of=R?R$eWk^9V}ju_*Oca4rp&#_ivwsr!7po_lb^-3 zt($4g%NXSsfVYl?;)j{*l7zAE;otb-!6fEjHKC9?MhagLb`^29kW#|{VauCn`*yvP zl!sW7KT6bet_z3g;ZmkNP_(nk+({@`J;AtvDv8)IG=0nd!OMk6(YK1JE2G_h$iRJ)2BFiS(K7TOz$=n#bWbk@t+ed)!K`X;UACV9!la^j6;L9o%C>V z;heZ2MYUi5IJ+9G@(rc)7%Q$9;*4ZJV5L|Y93De^A}Hi*Ss!rvkC@)b*668|80GJD z+l$UH8D~PYRer`5)bsP8-c62IvkH)}LM#)lD#9z3ADeS;Tw~(*jM;@I?VFI%mqvul zG=rXW`oLxJ19L}xiafYKF{30m4VEnv7g~jGSS~};LA$2Ltjd=7kb|VG) zEG!Wu7GH$R*$iiTpxD;Aafi$w9Re7>rcxLQ^I_`Aj1N^&_2gVi@GX?Jq;%D69o!~r z>|g<$A7;VEXt-4ZQZaIgL0`KL1Eci7|3}ez|5N?`fBbd!IUJm0Z^xc-Y_g6$GLDgz zbnKC2hm7M`$KE>1CP^xzM5zvr*(sEYQrV~v54ZMFD+#1K{Co*$G^a55kxrbJ2k-uoC{Y&VqgM-oL+l)gzm*qZBVh_0 zd)PSZ4;%3*Q;=-v1uvB)5X?4LS()X@neceEqC`-`A|q?%6gg7;L1^F!0Y@bA2GlLs zZbfUhu#dU}73hj^5%b#Q5fe9(;0fuO;gxw=%;UbcDFHeBu%o~-WyWjxu?oiv4I)E@ zjWq9j2gW{|p*ED5lN)^H=Q3%dXj|)^}Z{>d+?YOdE*H%%S=V95&BSv+D02!hFhtJigiBXx>N{`sB?g9OB^Ax~_>{<$q6e%{(ywRQy1y_|6z|jy zo4f1N>s67ZR-AjC5L?ZK<)iAsHf!HhsueNu)nk2z#T-;15ZPsAf)Qj09=>Yf2-Z=_9rblH7m`7W?JdZ>I z-?*$yFJRi30+V8!0xLjNLSI&(mTM|fPjMvxLMoPu`W&4@q`07SE1H|tRCBTL60hzysY}L#%G+o064w9k4 zmU(x$5x4!t-TT>SwWl(qJ{#dVOF>E{qs`(W?hqvNpJ#c5v=ji`H*Gs?F6&^UZmSai8NP1Qcy@SKjkpcX6t=;%P0IKuK__x~^ zrTp2it$E+=pl#2)@vDNJzs_%`z5MF1%~7x^chUSMJ3QMzPFIX!{rGE*%V)@z2E#R- z|I1gVY=sac`0$L$>olh(9cw2*7~|c+m0}+_aCh{uK`C26xVa;uWxi`bm+krt-$0!G zPxVu5kA#J80+_qVKUwOQZdwEP_|JO&#0QEHsd(xa>9tf7YzG}h5TGnyXmcjqMP=a zn-4jPLJn(eKK>y`@$c1|3Q_W(mVpeJ4t6@V30w!*jiX1R#!Y1a?^G*-ayRGiYGCyC zjLLZn?U8`B>^0=8r?Tl=zI#ichZlki(l%dwfM+c{OmeXOaAT_w&GyN)v{-hnjP_{{ z2Y%1pceT#z#og;!4)HyVQmRNaYhRxdhkMU^6O)7A*_?u%l6ofVgQv1u6d4MTA}c_k z=ISTLx$&6fNPg+ppr1c`d0(C@%3xu0iRoVwGA}v8?J%dZKpJSn2o#R5oAwRhlT)cw#fEd%0LR^jy zT!5UsVl36{gY$6H)6l)KSh0);?~rG&zb ztHp=cvw%paf2Pm3*emkWo{4umOJ8GZX*b=P=Zbg$&A+#xBArJ~~c`b>|eCFNsTg=VUFoW|?2Dm{DuapJh`fg^{WRL`yL7 z7cuVsf{xFbAjsOcl$#+q(T+- zGkRjn+4KFzLDtRN{^@3K{;dg8Z;Faq8$H4(6-E4;`~Yga(D+23(L6pm3;ZFPr(2?G z4RCG*DYAUqBX%7mYaHS-7B;m37sIl|z_{e&0egWsC0#`PqIhQZvjYQQdZkcXSt9yg6TGr~xT%yC3(7gCr&b>0KiYFu~{a@CE zyFVXfZ%Jgz7);($D@OV^R6do#UE@B}9LrRo*OHT&;^8NOI*)ugiqryQ+R=9|;(W9? zi?SG-bs>DrS(mG6G1%Pn<%yZ^y{YHUJo}7i=JD~ltVTy9w$w*|x8BpU%Hm_n@stZO zz*3}+$`xEZ9Q^2LUg~@WfhBLn1o$1Uq(7HxVY%8P-e zwO*0zpy$F9XE_D*!sJYrc700vZoGP-vvAL^-S#9AbB(Os%6xq|_+EIp!J|>**biND zKI(*7vyTTF&#JCEapsgl|%V$y$^8LyEqZ zWvv(AeO*2wHA)m3?d9w)g6J*%QjX?KJj*l@GY>SpMO`wWD5P zi>0}=n+D@AMl8s!Jo4W^)MN&{Yy5b+-}2=jK0l`N`&Ii~MA$Hr$U&lHN*42dfHXuA z^b_ggaET1H4+4=_6EThM;5wRO7XhuBo~xGAGQhe=6O05d(~j)K6Lt+W-W$EhfP*k{ z^|~}Pwbjd;t!B&Lz2(XGLlYJ0Mi}3kum>gV{pL+U8S}#b&YS2YfMgeFC}GWk`nJD+ zPztRVRNO`B2=We;6Yx}0IMsW2~S`#o!tv@L<60b{nU&6RTRaq;4`h+L&5@SaS*<4 z0Af61bPvZ%6uQF~zoy0M$P&sKkkmPty`K4iX5(V~+}#9~O~@2w@=4cN?T+uYE^CiD z4;KvDqhwtpr?biTiiQ}?uo&bwM`&J2^&sU=8tLc#9nfpjiu`Z`OpUPEMMqqalkgMN zq&K`#g1uL~PCAaIX?A9pm^0>QG0+r6y*XRuWfp7ud&yl6YIAhbYkW@+=zAO*DhLDf z8$By+M1x2HOh*&MwOOv%u)P%>kr2RDxkKM2!_k4W$T%-e<^2$}dp zDoro#80Ex(QW>3sHbaSvhs zv#sexOK1J%8(!yB%20*yTbp_J?gbPC?y3E@wtM6M%Cg=2wiSC{!~B!wH|xDZFKvtu z2ycZ|BUsqK=Zt(|05Vl5vxo(2T_X2o#9mcLWV@kodj=0%5rgeIU@ARbY0x^ z3#=sFr?92#q$h+C6P2CRAK@gBM17ZkOFld_x1%?l+nwQ`a`xH&K~-xIEM~Sjhmn4uH;x#ZqCV zEJ<{3!ec@F$g!gd09O)nk3S{KI#C zk{>_~I{lSq3eimOBv1rQ7jsHevps;?4=ET}5s$cRj}+g){!-WA4}6@xc2zu&xu@?PT-FO*f8fmtQ_WCZ$~UL!|3@cZR?Fyl{AR~S@2~7DTJD~KoX>{Ado%_`k)G!!fs9I)Ne6`MIuWH; zWiPLhHs_2|y=G6}NYE`L2PpUqW^_uGJj)T|psCkYAnFt_4J&yUO86Q)y>n542AW?n zAwIBFQE>(1_9tm32`e{k+3Pb{6rUuWN#H#v94|z99YTmvmQ1l?B$iVUZiYzW-k_EosDLcb{}tAxL2 z94zYhfUEZjA1QgLIsrbbz!3MlCM;f=^K%(*ACl+QvUe?jT-dH+Up*qrdYWmz4r-EAa)wVaaOxA`8@E=i8dSGB$*IJ($}o8ki- zPT8;Nke$)|iE(u|Ex8&B$Ydi3+sI`(6e04P!X2_xGrJihM+k_S?};LV#y<@Yg7hmr zR8bzkUtHJcz@rok;3Gv;mBHZm?Is;9C#X8`pZF`s!%*}(hkxIPftP2u1q*;l3j2jf z={;ci(fc*_eBWyo+khe(@Dk=1fAJ*mIivlODOkN#fH#l##FN7VLrg?Dx(fG(SBmOivRP>(pn#gU9#B5RFetiNFB9VTL zevs)tyraSu%TJ1tmqxM_j3>Tfx`c7LojW45kZ472T;PL1^V4KM$<887i$74+&X(Me zyKCaHvQKe-$#(7M(nZ&o-_3xj3Tn#sv-1T>jlgmdaFET~N^#5m#~d;uS)8eA~mK!MUDe za4yHbE;~Bd7r4BP(e|q86ys&4cVnxkGjaZ|l}5JUe1V6# zT;p@Spo%f8Xf|Sma?HRFYLz|{8!{mK(;*J;OT7(KAdHML3LlA;pX>|Se zk0rF=IxS*Z>P5SH&Uf%G75_~t)My2`&dMTU@XJ?Uw4TFW^5ZMq?B(I!(^q3e;_Ya2 z%5jNRf1L$t>C+goP1ozS*@~Jk2evlWL=&AJ7A}gdX#1bH@a}B;PKSTK6`3pKt|2@l zP8JBc)-S1P%5(9ch8s`ig66QXB&Yu!9&CTI%73zBJ*!)#pvH8#@MAb$k|V(ZbR$^Y zNl4}u%CY1D=kiN{!7jq#>kL9<6b^e{{T0Pf?TnfCfo6nIe}KTgoMlo zBfsFwcbvXQ6A?|yBcr8002ww1;-mt(nCx~@dAy{FQyGHXH2Tw#+gf~zeQPm8mDj=a zc7fXpQo9U@I5PDh@q(vjgm2B^I393?<+v-^jI}$&sEd$X5hf@kC*fwQVd>awrOYBc z@;wpT>{(h1kvu~~);H{5foK3cmVy_)uL|Y`yR5(^zvHu4cvK;u&H&a@Z`T_ge$ef1 zO#gih&f;s4CAj#M^#*nz}ibb9_*W`tm_SWp31Zoye1OJ^r)Wo;5 z9MYj={kf2Bu=2(WGo+M;{_vS4{o|9;^e8ra-p9LSjQ!7rUfMtqbQ%%qv=FBLljx1( z<4t37o?OF!{$YGAHpN}&hXY&4t?vdlarV->vAXe4iq5Wbp+89Qxakxw-`zXH_W{M4 z9+b^gM4!hDY%`6yq5iWWX`ESi#De8LiX~$I5|jnX8XeUm@>M_nrQhY!LazKdiui9g zX7ZMdNK~;&N>?vs9NIUYX+mCFHaLWa{(y^~+EuPMjyaN5agnUl@XP1ZB1a|By-G1@ zirqS6sw)?n0*AL%#*E@GJdm>s{=)*K=w@hvT&-haZafANE!q#VRbxz~-1?3;1J}3i z#)4Y`%ekER2;|Own!5xfs2ZLopr-iVSs&yoRnp_4CXD0RO=TCljl+uXv9GeY!^6wv}m;xgEBiSWle(eHat5L4H zEk*m?9ZU>7-MpsQrMrv)JyMpKMJjRpno)SU5txlR3q<(qR@vmJoKSeJNZ!FzfYu{% zxePr4pT+A{P-tq-f3iZ7T1aA_OkCj!90&Qt#VFD}?lOq^_;(X^*B5Jc z1A9{d1by|q2*2QV9eeV1VGb2hHrWihp@{J3vI__}8ayeBv1DQ844ud`(m#qA|CryZ zsj2FJ9bWpTB8qNp*6G{SHEker59*$!+@D9VuU$b6sOl|jEB-oR+pM78ePRk)v#c{D zZmG+eu)L(P{HIp;^c)9g9wAH15BeD}Id?^o?A!(BOd8NAKjGn87Q2^>y}rJ$CzvdW zyt~S)l{4&`r60}3DIi^OG(tDYg-@Iea#(p)icVh4V3le|;ZniQW82YSF{@de=_ew` z=f+b1GK=nS4d@%<7UPY&M`|2-JBI`o&Ve>j??>k+ zH>5~HRhFDG%y6lyAgOCT68vT7b!?v&w`t&Q&uib~xA3`Hnz$y_(QtBDJ3cH(hp^DS zs@TjHk`J=FVfiD8woOQwnTuI~L6IG1XZy zrcBuPr^6en&Ij{T|JFYi2JH;$+)zU+on?#=n<#<-Ll-^e#HOZ17!#L$d12_EmYn7c?zt2YxpR9@{|FzvBRT zIdFJ4EEvWszB>c4Nx)stJ8{10Bw|`XYF&OvP`FeLqtLE1;SX(~SE)TZs`VYe#0=mL zkU>X|KZK*}g5#j*%YuDrshwZ(xn^$d7TRGI>2M9S0y9*I)i3KF*EY1;_-wST41+Ek zr^2K2hg5TQNOF~o@qWJ*u+ks7Y8iTtaJ62GC->1@RRdK|;Ptk8wrY*BvB?ejXA26F zqN9es%Zd5^U;GN!@@OjWNGk(%|6zHcw;M*)(_Rxp7EPZN6s`HfV1)(&(xwmlC%(+e zgtL)txQ#n!4BlCZ>lDQuVnLKTN~A$w7|f!;WWx zS7zn<-{iYq%>WjaYw-QRj-464~Pusu2NmK%UT2__DO3tNy%;3fb zsO3CdzwKm6UWkQGrx69%j`!HP3BN`+^PR{G{#&u*9rnCbPWE30v<7QJ=Z8t!1Gg_* z;#f`yz{liis+#K3IcRJnIVcggN;!zc=791q%U+S9;TqRb?` zCDB-m`BFXxeKXyEO5UghG+he}G3j!pw-yDZswp#)EtmimRRG?MeHGXypesgmyH&x; z3X!|~Y`LvjQ25BH{?1VLHvS1ge3y6WfTJn`qgA;Oe8#ux_i3rR&ys8npyG#<_tmka zfYQhrSRVLG3rSH3oHYdapGgyI(@?To8>O;@3ZFB0b^3epD296{!FaRrX!48EuYWPX~xsdeh`OJb&bH2cOr{ekR;|6yme)xU)oZ#UuVc_{So#qm+V@>?NSx=;4D zoQ){S#<)vOfTC`((E3cT1nd3ZZIip(@SM+xiLfqLhk2W2l2by`%l`p?`_y>{-ksd2 zs3PrimMreD0Dgjvz%y4eVaXk`4WNpnEtO#tW~d&mHMS|^z;lwV=slBm9MUYqFuphG zkx1smC5|yrwiA82WWnfa1;IOKKb@CKND(Dj+Y?r{T+S=r{rU=V$GS~Bu86Kr!)?>$#kE(ubaLeJ< zp{i^FbP&KJ3Wch80*as6uto1p*ZlY)4bP5o`Bd-#0Rbup6{R$Oc9MGaPa!ynJtaYP zcSPcNlqmKemVUGpu|l%U4-$SUx)itkfkW}2Xl`yz#@lx!ejA(qvsVM<$q2W=8U4f* z`iPa}W%o4w_PH1E>u@c?uno3vUA)JT9PsPg*fcP_^*{nNnH#;vpP%1li@<%}41UKQ zm{TkM56d$6f+-*>H!#MPUFU>Odb+0wOA3uojr4f7E|G-(ymk*F9w<0xDbDah@hYWg zBaz#s$BM7n+@a!}*F>J2a2ifmQWlHVVQGi7j|V@54KtlH5UI<(kfHi`3|a!D#Pn}G z5PPf5=_7^#7nFoX^HPKZx!>lGyTCtC8z-w6A!!VT&Oo;6zTiJA`lwfC*%FAjFbhd% zvS2-ox_fQ8>7XTy>%eMG4em{gKEL%8`n^3v7>X~^u#EVYTVy5)GGk4M)Fnv#56IBv zH7^<6)p(0zAH{1}eF_N_cr0qoXjYxA9-hDlA6uo5s{bvQlZX5h9}{0mf4g zZF#3t@UYkJYAungy2)Hxwx0I>K_sMuuPWoRSZs|-(jp^F&kqE%6qNV( z)=$k1*58&!v1Jo0${M~oWe_?>=lJfn!F4DW=!^0ChL&y$cS|(qrKWzGoEVCBY+~dF z5Hciu=DMPXohiV%dV)3)CzaU6G@Y zaP6)tN2GENoW3UB$6$T&a9e?ayt(90J-wX94_*oQ91Aak-9LlZ<`W7c8k|gyuRnV zdOGT8#WVr{$Vy{kW*~xb7QhCDNq2#+Z~uU2*k_I(yJ1+^$fNhIkUebEo;h&m-VECk zDL!^f;x)6|SW!}gngV3JN>1D(UKr$ydcC{k7+GR!0g%$0*cV?zg*FxhK4>85fU~{ryZY~=E z;>X-Ad~Mi~RUkL<5$z=cBwX6vuL==0eMBcW3td4)sW@zyPSeq_P5}PBM{iyg+r@vZ zF59fDKjgY2-_4A0Gj1t5z$(V%jot}Dg2FcG}&^TP1qb$r31^HLmF z9y0)E{HFe-SgI;jn6dTaRIad-gcn&-Ql?o!Sr>n5Kp)Wvi0h;#w#4K%z&Qmzwf<^l z`7_DuOkDDnsFiMT?eo4HwGjS=&y0+Uqn9>2DPL`$=1ku;o-%pG;XZK-Rb!U%{oG3E zIgnnE*=#EW&G%h+*q@no8AIkX2Go9$d165|tdlwKHHO+Pc9jR(4Fu*054ULJ=?%*? zDb)h>;TiEUs}vv?=}Yfl3TdcVIk_K}ORTZ$7EplM3k)<+v7kt)sC&Do3Dm~F5Pu|? zG{Rwj>G})5xAJ`xqMrs8I61?EzbEM0yC$yW)1f`?UWC+bm0P}l2llgw<4AQhw%x53 zcX{!&XhTApZ}|0#9vLO!bERr6! z2Rdo*O)Bkz`|jUfHR^v_yOorg5%jIsLm^(RG_O1v-eTeNm+>=aIWkF%w)1p>V-uY= z54rJ$rjaro=k-$})|;!)AZ-YnLbcy0Z#0z9Q8e5&rS?6^h;RMya2trGUyPcVyLGQ+ zD8JBW1M-7q@PHv*qp$_r_*k?C8A4(I#PU9w38d*X7=Y^Q9M>ZzAL>5!)9TD`{tOeL~?E$-+k-)o_h-Q z4TRc-UZ1C%3fRm0oHUh-fmbzftNx&BNp~W}wVV5OmNmAH^G86X^+VKjeX?~^cd1Fe z>{W=4(e1oPJ690V<5Cwweb)x7IYE$l2EUN4T4{sbpJ3f40AnSsFF36-sfK9V||0Y5D}6(mykJL0FhxdBKz_5(e>Ed>M0}p)b); z`{dse4EGFlbQma44z}8KHNW(NdGsz#{`NYeE_dm4fxF8#CerxY7(C{&ikb^ zaK&tI+Y^TgKmofm50^`IjfwSiP`RvCNNp`{?bK|$v9s^&GOMKobqO415fhEPe_DnZ zLOFBkq;{8)oWAsXkr6|YjxA~FXR90xs9zpnV!7EHfFJ?zR)$2C)HV32Yd98zm-(M$ zb%~kRl_(K2z}Smx7`AK=NsCKWH^|-~JMld{YgX9EO{LS9dm%v&K5a5$z(T&a|9FHtaIm+g!!gzyLN>O;o-`0^ZouenH>WXcj80>2Z`RWta;pPVK}v-)&KDEr>1 z6lut@#eRrl*0m|#{ zwJTqI-bcEFMAAm7!`HFJl-GYxL=CVoA#}=UC z!K~?s@1%iwvjS%4%;<|#Xry#yNUMaD=spDJ^mLFQAH^Xu7>pR#6G7HvOlJ9w<;}PX zIIB+h1DA>E5~z-2J!&{S-A_DbgAj4l4T}N;WQ%Y zW~B6#=qmr7*%PDjEGbtaLE}ff+%6c8?_Jyq;116IO2f>TqrhrMwV>|P@7v`AlnMqF zzMX2|b7iof>o*ScTtOc(B|x4X`K(aB{zImx#yo`U-5#jO<=eF?vO9?1Xh&`!?4o=- z{w@dBkItKrUy`IeiCOEgdcHd3b4Gk?Aj>+8^@KMr_UQA~;UzKmi&xQPrZ=uTAIH`W z=1TqpF|d({=K0wwG6do%!G8T`ividQqL-ZcT#qoYG*ey*U`{SRc~n=b)^zl$$Gnh( z#=BBVkV8NkgC4)o?kWXJxaSgZ{K%74k&`dMzoop z-i!xgSafoI>IC^lB5Fz#i8|YAaJU3{W$wkUd_YdM$AJtL#7jrU7>Kk`1Yvlde=;RO z?OP#lV3RkT#68AZb>b}-Pw`(&Ua#<65?|@fo*4oSt`cuThGZ6n9&4Z&Eoz19>}^** zuf}Ugll-nxB^a0pFqxRqhS+7bH-}(9B4=fzk-IvQ}gzO?N@8jh}l)`8n{9q?7y49uL-5`%gJeXi!h9EfNiT(?mAqO>(B8eMd ztbHC*HvvgaUCqoj<^vU@M+CT0(1j3jaCW4i`HIY>(Nj}EuPE3*{(Csag7Z>xAI+r_ z{!b7LrGb{Z*PJ*-KOEHZj`zLdtu#uO0a@~* z8WPEKA3rxZ-Nv04Z|Q7uU^GpbXRiq~X0tf#^7!X8-p|R2A5rU!hv0vK8-P^;SOEEP z)|{?7LP)Q}YpCB$M?U!)C;n*~4W^UxH7Pxdh&UX$+`N|(U>zoppPWIq1>;%Y{dc1fpPtTZSh>|^a zfvLzCi)=2tHoj|m3=Pn;rxJo|L)09U%ZZl!SEYPD@8jr)y3&4Wg6U;;e0aI5XY^jL z;a1)KQUa$?SC^kHaI@;BMniMV^4f=dicJv64TZQRcf|)#^L08{A{v@2e_z;ELIm}Y z2a>Pl=xEOSzB#}lzcz_*wr}I=tKR(5ekY#1?*Yeb0?N5h)xX zrcS7|X-IrItPBXepXgYVw}c^(zN2m9{y!WXIQ<2}6*k~nC zB`VpDB&1r&YYvUnT1Bg2I#pze=2eoXs{1EKNgjUhTv*~hxk~0*3Gm8MO;P82_%IJ} zd?pd8wE3=I@Njmk;5UELn}eYQ#8yCqkCzbxTsZc$Dj%g)y!^pw)J!;E&T-ucWpR_+ zo{uWXdzO$Z;)9Ekl>Bbiuu*TpgM68O$T;JUqsk~M!EG0e8D-AUP&)TJkosf> z0q^TqOixVHK0EvHs~~)CYUG5A-0=V4$~WwzSqm~PvPu?rOE2Yt2(~5spldLhKX;#s z=Z0Fz@j@qnjUiYXa&Ve0KblA-Ynypn5GW>-rSoIv!P;tMe(QVn4&qY*P|?7jNCFs>QM*&gW)-(if2{Ey{`8 zr-2iEGeS(~64JV1TcOhBD*LX%>*<3Lzn!>uBs^=NCO*k@uNEr#!vM0)25Fx`JYnG2 zCH2j}jS;iX~h7u#chU|9~VEH;JAHb=hslj$Xd_6!<5!37;6!cm^ zy3hv$9{Z^KU(JBVPo{#BFFYBC*|fDyg4m2xUf5osC5w}=>=Zf*1o3-_(VRg*@ejoo z8eV_xIGyQkw#;1ghkQR>jfD5pITlg%foYKQwyp$x*!*|k44W+yMuOBze<~UTyKBR^ zntk&pMx+Bw6tpT5 zjr=xf+XRsGO`32u)7=hI1r*w(0qHo#aAPA`Q8DM|C5fA^PR!W$0Ud2@AF3=Eu0CqZPU%1CFKGN#!r*gZjJibA(B#ZQ-p7PwO80dNtD9{LXlv-v$8cu`2 z&^zYv%o#NrCj+=%PMv%zxv)zN<~#-22?lZIUv zWU_(Hd>rxB*-JA&6ebu%{SDC8Qp17kkt1gH)3@HQZi=tg*~a)jbJjned_i`+LPo#3 z*8tw`(G-BHmL3_;l+gM|B1+p%y9RS3+OMx|IdMNZ_I*9hBBVB+K11RPl4H5i8mf!8 zVL~)TlIvsO#&ds}7Xf$4Y2q997dYb4;0E+HI{DP~&XGp_%=Ag({%qH%GKZ`sy1pE+ zT^J$gIaCc9=y1>KT>PQPYkn!h!`Y0}-N3}`Q{%a>OgQ~!Gwsm zb7tP4KqcSSHZE@ux{x5|&E$u;ozK3%RWO%sQoS8XDzT@%kE$&qUZOgW>B$^4BhfeS znW?i0MPk&ag?)9(e#^qf6DhYB7dJV)&Az5orT^&dxgZ);`GKo@U5C8)OqHWmp!eVw zGZZmOo1GK1gDlYTS`1^g$JE8OJ;N7rYx+GEp{H`TJcX7LT_gFf+9M{q-RqPboCWiO zD%MVAonD-bt0Jdj+Mr~}dG7hN@*LqCDq z9vJ2P%ztU!G3N_A*XSqS;<<#TTO&l-+TRhQrPOQ@wqmOE&H)#rD*N%Xfifd^`|aTg z^CB2-y=tmIjHs{7gq5c!8E12Rh&YNi%A~rDL^a8UK^io|&cD3DBZ83q5XG-gb;p6@ zLPgT!+bzd0frbhhWPx}rYmdd^+YSre>Oow7+J6~J6n3Ja13yC_T-BhH7X!F4TlLH$ zMcA@CsYjrnc)SKO*t|3S`I@w&7QIMK{tkbw#GpZ<*_fRy6OGV*PjxMks6kEr4-l2* zmz%|6^UqGO{Gqnrc1_5Lx#+`k36gd~RLF|@S(Ot8-T!L(DZin%5%3pgCqZQ25LbbH zIH!v_PHw$=GW?$Mt0`|1_~p|^#;|`HHOtjh6Yg~CoGMxI!MP05S@Rbk+6yKK!RJ)^ zSql~{9ivcLk>{^~>eHLj*HGY`=@~lh1QKt0N6C-bO6RnCaT%ki_nJg}{7~CauG-j9 zge+n+i24CBNl>B=ky|b*pa^%14X1npwAbRyD!o40pKRS37g5-rkQb_DW#cyiZ?QCXQlN-K;&uj)h#c7PmXJhoM?^N4n?@)o=$6`ZS*DVUlua?EQ>ofqLbp05wVnq54qr0c(b8J!0Tk7i>>G? zuwwvuh$^y>@z1K+_<0Ttq7_(<*N=kovyTV^t0~ZF;2}#%kRo++K&qT~jJ#0E&Q)Ok zA><}zA-BQ(y7VN3pZ-G=Q4GIn)}efz0eC)9RGl(64RTgpBZotbj4m)EhlNv(-(B8j zk$`{vmma0~kfAx%PnLWadWW;V!}%#)F4vte;M;IQ&E6>R$PwyQeT%*YW3z zFpDIbh4h`T@cbBA0LRYJFIoCjOD2t&z<`Iy5UU}dmcRmjfs(;z=WaT>s++cwc`d9k zwZsY3^*ev&_yG6&R>f&%E}^@8;_cS-<{B-u%vFlcx0`{4-Amq#{%%(mIu^O~uP{=!I?# zdUGKn_>1#G`!0|WDduN@x??y!#Sv@^J+xSm`y8;K>A|#k`vFUg8+Gn<5RcO#x7tGY z(`SQ`asB>g^=Q4GMqMD0oa(95FV0L3gW`92E$ zIt*lF`Nf{|pOoUtrYRM0nCa)8sTvefsEyo&ji0Qs-lg3Aj8?)*Nv|aMa*{(*i>5v& z%?AKPuR-{t&z|^8Z$(4}lw{P)|Iy>#*n<#YUz1*Dc%;=owq6QZN5XpIWze?5`CJx4 zLHC+)K!IzMkg;6d8fO&P!jzHR%XvZlftP(*zO87-wAF{cDIn_NYXH;IvB)jJYRcPQ z?j%p|=y>>d$mc<*f++jLnK5q9q*3F~)w4-l7+WYY8aoCf8}6E4;OELz>E~oaeF#?4 z_%TI3m8IDV8h$H8{jN5?JT=P6vy+inI*T@IG0CnU0cTlox6fw&SK`;V=c&=CJkZGg z)Q214YHT6Gk){cNZUtPxgoMqKLvyEg`Gh|TkQdC?BBblqP6_rHZmTf|13~o$3uLtj zQ;ZYK)2F20=Mn#9Hh822b+oCGUpr7kgNy3)&0$I{6XfxTc?o(W$Bzk*yLC}-@-g-e zH4LqFqF_7wa(QB9G~+|ZhtrkJAJIaTj|GGu5|Q$(*0YRJ5XpPNU+GtPsBXR9H4;_k zkc^A(u7exe6Czdy)tN%Pk&raS`5_=ef?;~@OS?$@hz{A&dy1oDJ?CwPlTZZfjfu4g z&fZ5T2gq6!ZXc_5<`k#6-UKH4Cv+l5__%lEp9L^{!x()s>s@GOA6{Y?mcdCu&ujRc z#G`URy!%iYluGZQ;B+`n{L%G14?uc`x6(=2nEUsk*g@mp#0r(tH_YL{ds@L~{`f-9 z#0FH=hksY158kgakRoLIe6scdksAzCxvVSj~$ssOTeCgO{TQLy% zn;Fj4YP;QPnY^1b3;QK)lh@&cjwJ6UnRKa-r6?Gw+xcP#d~2I@qjCjkT&5X8a>eIP z68`WU{!LD;VV>Jnw-Nf0qLlajBIIdd`|`PmOFsQs4gUdo!lqkVehr_pQv#+QK#~T? z6895Kr8demxH&q}4Z!2~)Bg~E#j@5mol8jtWbw!L3L`^!fV-HjgxXb)G!yt%-2l4e zJw7|5M)kC;vc-WO_CnExsVppoNz${$dNxo{${e#%Cu16eeYPfo)*txM`*ro6&(yLn z&-M>KVIxfKwqvw+H=W-14;US-`lj!|zZIdAUKesm)HqR(SNliKr0{X8_(dGYsz|;| z5YoEo^f>!pG;;sys~3$l)hw9cHb~z^HVhK3p*CphWoG=c_t4|>(#91(>@Ux`Y;i%$ z=W4gNvv*HRu%lFCEHP2`_mXd}=WgqPvo5NJnWU0c>kLjtqoP3^SFdFQzFJ>7LjF?_ z?Pb_>ub2w$*ounSNIX^tw0atnI1C25b{tb5g2&@CrliWJl5a_v|4mgrXdCfaVO@Cj za$zL?HbP=&4Qut0rJVk7Z}ho`3Eo?;r{1vl!;j3xPskx3S%Savjg>NxhVS z_LT`ZiwQr^-Uk=WcYHdqcb003J3)A#D)HU$y~^IL%61o2w`IWR=eNYkdFXm8yo>pr zmEYtP6(qyaziqYXE35afukl*Bv=d=v=`@K`U4i9Stu)}Fia)WkJh+1!WZ@tnnV>np zNPGmG`5;k1b?V$0E_n^iLo!~yPvr#n-)ANt>W^kpmen5ADvOTV^RQhb8i0znB0FRI zRt%SKX0+Qc6=0cdI>yT4tl*q+F0+0bN9%Iyfu`M7A_93)rhq+x%zs0L`5RHY;OH*# z9CZ`Au^{sz#9o=y71BmYds|EDC=RU?o57i5;!JL9enpN$9*fBRccm8YXGfLHMxF8wOunzb zq*d^K3h>Cy4-F{#z+SMu{s`r4s3-N|QYsLw)fI?aej_X5BPEjcVM^IB@47HF4H`Bn z0J=;u#oW(K+9%ve&M61y|Fz{Pu7r9TZ6YKune?t20#1JAxcpoxv{SRcaKJ9LPOi^{XzSWak}{{Z zGj8wMRh&#>g0f%TXPQwd&M7mgj`Basw8@1hKFvXpb(E)2XItjGGb^H<>~M^m_J-Wd z0Ry)GuXtn!HUHpo&#Z#`E6_4grL6}?rJviqku1FU7viU!ofZzRkkJN0BVH(@q+e1ycDuRL1@^0PT+C=Tt)X1xrCkh3Eps+z_UMzoYb@%^nNh1GfrbVIKbi|oIk&IBLo zD%<0%N$08;i%J^?JZQ1pKe0aTC|ijO**A3WkL+Z1#t^nlv&AJoU2VcSqPyx6^&}^r za;YWPx2_hnss~Bbmp#u`Z}qH>C{Kea2Lj$58sC?oltDnA>q zpB0diaxGv<0-Wkg|1vAe0B~xr_8CQ#DZVKb{qF$#R3BTo$6)AF3eRsm*zNsv@V3qC z6W;zuavOSQ!^M-8JU#EZr8x$5Rx5WjbFlrPG-E;#;3lBB=zvwYV1N^%E-+5Pxf<}{ zgcC6PtSUFyse6|dCL@Ek70mqTU@nnK@Z+KU{@R?DOEaujN}ZyQ($|E+@|+G^XfKJ| zJ~H~}b_|W?2ng08%buzePOWcE!AeX3ymflo@KSY9Mt}0Yw@k&XV`CJ!ki0qqS0N2x zsYcIE#l#9xBY*n-15}15_pZ8xYLv+3XkTBMm2Da_H_=f8bjH{URaUgvbY z?P!ME?JLT$$ZvJDC9Tr}Fh?FSJR~$&p(@E@dXN(g3Dg_5fWfI0bwlm%+3PE!y4T-e z_D9^b76qRjSFTj`oiDL88`g!*_R*dmI2d7jDEhmuLrf|R=ztn=cV3rk{e{+y%#|tI z^2}mCFbzGZGA?3>rqv|bQ%2S^xQTt0W2XnPE23J4Y-KP7XFXeiL<~~g`R44R zOS0qJcYrP<)a|hSvXYf8(ofbudeVNrqqq!%!>;gcmwMkZM9pJKxn^!oUK#Pcl0KoK zET)q=ZQ?`hoahy?qAji4&+QKym>bp7DBv9MqHmS+#?guasJ+$vu+6mw83 z>K(i`rJUyfIP{lu)gPPx`VfW33eA)o78VJFpfW5!+Aw0px|EFv zu^kVdEq?}Fg%kLtm^elAlz@In(&LfY_a?sHl!=sGuNZIgVWw3u@ICPZ}(W%qN z&y?GGk-@u{CTRlRIZa9@WfZ$A8!zS5fF;DQt9_Z%b`f>b*|=aC|IF86##hAxi*X5bU}jLws`-xJMwa=G^mpd16%+f2e%)|1tFz!ZnBVN}uM{8u-q@m`^FaZjg- zp5$fgDZTezfgztWDqfvz=aoYdYOWUDQx69^l6IP`k4j{F$0jY!2$h(5wd$|RR#8km zKX+VP1#Hg&St6RSM|}p)DlZ8lx^FOPZ;Mkg^s`6jqXT22g|N@fFF=d=HN~W6f}#T{ zCI!)DlYFLmYznwI75mP`Lax@Ga`RX z&r689%t8FfqL$AEdt28bm4!-G0w-sEEdMNFKFNhCNSbxYj-6h1iBr$t#Sc3Zoys&p zifHJi52$|tH7-E=$d!D+A8|Lh7(sRK89e^zhx9;Ha}u8ye|Dvazz;GB-6P7vaybKk zY|^GlE$l|^q>o(h6caHr;njVcqajSAwjW1N`At%1Oal$13uU&SffvT8g@-tE|+~b_bijQ?%`4xtSd_4two* z4sp4197{m%Vk`+mh`)30i&ZbmO<|IQdHcCURD#~+k9(2e2e;{R5;f_3Zt=R?6eolkwkqup#I`qHMp#pMQWWeDKddfapJfjqE=_ zF7_F}&3N0gOHl2O`%dU~Cr<#}Z8kmYI&w_5t1zC{2kd!3PBSHi%Wj*k$bLt>a^jB+ zQEJe$bS`X>p?t#@wl4L^AnD2cD;OcmS*-pY*{3^zYt&3Kw-sSL)$xk|cC4scJH8BT zoE-tm@t3kW{=U6RKGb)Bc}k=szRLj|!-Pt2BzaVgo|EcRZ*H;c4>pjM;5h}D(spH# z^6_VhzlfbZJJdaAi+_Oo{C+WrGuWpI>HUh~{{YG4J^U zLG5|7r>VDNF|nto)K+$3i^n&vivI@~4&T8|bMX%RJ0~9S;$wJvwM(Vj8~*@z5?hgc z!Rt>Wf!*3NUP2ewXYidthBW(Tw^ghk*QHWm3 z+T+?ynXntUmF=+sF&L0fb@MS-OPxq3wlL?v5gY z{bKr6*TmQyuB~hrhaa_BA9bFeo@vd*F30YbD_7c;KIN5)L^BB;ZeXQxn3L@Aax72p zsqyp_aHWtn4=2zLCCtGd7n&v~(k|VYn5*{R^W{Yh#wQZ~+Xa+TH+P?`lcIc<8`pX6 zt6bL~U-cT2BU?1g%zR7dXP|hgokScFu=ixghv?2$dHt5$gqv(@tK6NQpOOOXA_kWf z_i(=x<;KO7cmDx;jFZ8OqO%uX2&g|A$0qI-j8*M`Or@8&wLWEL;OQA;=@+c88LX1D z>)o?WorBHtIB_-RHm;NHT*bIV#OoxfwOvFmwrq{F>+>Clu#8A=_-eeAIVbcF@S?S} zBCc(!tn~3^T!@J=FMds!(^Z|FtjxjAa1p;lEt|u`*FKI5-agMat8}e6 z=B!Msz*%sK%UJU4EPq$|!>qst(S0YD7jNg3jIiMSB7(U~UvV*Nq#eH=gyhcj{N(m7 zF2mcG)RCAfv{xbF>ebFAjLLtw^aksLCzkIu^=xwywX^49#&+T&!}Iokr>*dcc!X+f z=^XA|D*r)yRPHX3vb90>SvKY2Ec&V9K{JMiE10(JxWPc&lU>A)z)^{bhpX!h$=F3% zJG+V5zsu^I{w3Op)34PT8&kNA*~jV}r-JMJ%EP z^8DQYfNmhZZhw?Lwiht?4*+Z15yJib2MF3)+a+>w+}-N7H5fky!k2El?5+F*@YNRl zTny1q{5H7IAe*sW6vJJ`H0>PM6yDK$%9Ds08_x9^TzfJ%U6H_&^CWXyK23Z{ymRRM zQ=a=~m~NCF+)N`ncjDXe?ttNj^v{VE@)9g`#_ti=4{7;ht7y%Etj;g!jF6`^BTSwd zY1Vw5Tn_0Fl6KC0<*hEVf-pZfyo-I0rIoJu;P7Jx!-Lc<;^vVhvrT?yQFg0qJ}pH4 z`1!DQaNE0ZeoRxF@9Ejudx2Xfnx_zZ6BQ9YD}cSdO8(S`{rm@5Ae5Gsw&FNW@5p-u zlZhGVeb!JSVvrxzmgbJ(5-hj~yT_~l0207-q6>6)udV9jHgQX@>Pic1z)Zib>JO2w z+{VYJv|dWUA-HHB0XKWYgD2D$!~dFceR@i(d8x18@~9c>JR#f<9{(k8E5qY_z7VII z+7_B?@jNpLH^jnjH7tY~w?<~-W~9n*%Iy9w;f_z}C0iyiG zrLv2vUEE`fsS;)255^!Elg@-XhE+S+5~v1_FxEhV#k8bv;-TpQYL(vRX4Xt=?X1t( z;2PrT^!#=_Z?Eb7X346oD0O5*HdBIFIj6o-4jq`&dFsW&)(5O5;_TyI-skCE>S-&J z47i7*M6g%UQY*5bccEi5kaJ)@!>shp4k34Z4puc&`Vh%g;qLi=&c(LAPlTqG?N+z; z6V@Qbi?BZ!`l=7BAJ$^mPOB>8_%JrF1Jk}D^+Ur#-@kbyD~l^$!LcgVnZ(hFQpup) zX^l7rc!$i(siIY^#Gvkq>joU__px7$3NqUj*itRbnu9p>_~5U$@89HUK0AvT{Kobf zb6JzzftB%a|IB$00nHxhD$*P8WX209Q`Tc*4^ z9ydpz_FF8?l!^xLlNo9`OfWu?Tuwp#xDM7ss#{*Jo2@c_K9gbpLK~j!zpnOo5*#XUout37W|%{bu`GU>}~PwHoc&O z7iHr7$EzYnL3c6(we)U#l%V8<_Gv6TO<&hc0B6K@ZFeqg#gS2`=AHim0wd(^2mL-J z*BzgtG_Y{WEWKX=enNBFV=<;%I5S~ImU=QltNDkC)a|>`Ky1~M$xK--agy(rXP5^- z?TkEtl|YAljwu*fX{)kuCL*UK?9>nQ7c*-P%R>F7DJDuG2^4l*b))WZVH4jFH0wv< z%Ua3pmO>;}*ROIU$iP2>wt?_RVo&i1iRz%sd%Y(6{b&gu<8}#_P%5a{wXr7)2 z9GHLNOrWn}Yk!m)t@5vNuW7d`?qjSBqsGL0IaBs_WClt6zd2y)JKLMlP5Z8gCCwJL zM6-9&DNs-WzRmygNGQQSGnFQ4oEp9S6j6B|~kgFnfO zOINS)!hnK4Q~_2guQx)pbgOv!@r_k!5y-4Sf;}IwYeGve+12W)86aDhwYzSTu1vu% z-zK{d^R&si*=t%}KB3u-!CwBaKI6ksig~_6A2&WbO1zS3lgoNE4?pzNvYk}dkWx0V zIQRh3_4OAnBfzo3s7|MJI3}+Gk=$qkRPmxL);S%H7b&*8lfqQO5HC9RAB1 zaL;@ZIOyiJCL~~0QmLnX`~AnBag{Aioq3s{r4`xOt`=orwdnlq;{GdKDk6sSEnhOZc*diN6)*3_~fc7>Z;DmtA+n9XNrj4KxqjB zN}RH&`VsfUT;fc~OETSQ(=WqTG4Xu`)BMTEKs<9H*8P$F%d2fAJY#Hk?Xgh4$8e52 z)XF~}OYZD8_v;}kM^)@J^(NT^k=4yl9NOC?^V=l16*rXR1GMMjgd$Wp!;NZ(Xvo-w zRoG#SRRww@C9F^Jf{*Gs)CnVNLQ?OJ1L(%RrkOLM$fCce!3H+Jn}8?8o=L=}dznWa ztiTlRe6YUDQT`4IjiW0WSDQ5-G}rhbd%m>y?j;UP5P$G*gztW+r+RPNL}g6E8rqsI zuGLRJc8`R_-6AKS%Q2L3R81krG_UJ3)(o2;h}~}Wi-J*X+ogmT(!|stD97K=b6pn~ zb%F0U!1Qd7ED%YBPWbJnaIMU#95i5Y>W9PumEq7}y+;%?j~|(2nlb6GxrqEHcYBpv z=@-I{>a&%)QiS6UkTMk%^;)DGTr}!8Xl3iFbGas@NarNkgYWzk3l|L71hQz7&@9>k45YEPK3hmzW#dn z>+u+p@0o=;r2+E_-wogmS0Q)j<#e&@AqIn_%|!vof+oAX+n|}ANC8>{&{pAfylTjZ zyU^rC3gW@D>Ye&XEk_3n^)bon^T0TJkohAm&DVBJ_nh)W{ZnG55r>iUNQ;@0CjXTqMMmn4 z$751>ij)^-zI5E2V0NfeC9*=OY_bk~R(RA71L>Q7M^=HH*AHHmsezv@z|IGRSEWip z+9Dxzs5|}jbb&|m*zwpk zex`EnzB>hd5z}67ltdC0xiAHQ=f48?8oF7?X)G0)tH&mBzHK}Gy!vtBx=x;D5o4w? z8_WjhBmOQ5w(GKq`ioK0sra`UU@4LY=Ho|i-%QjU+@v(+kl_SJ|I=m>ltuY2;V)-(6BLv{fY*Qtp;) zifVblE$*7}8+ChCDWA<92{!|8WK_`Zs(k+_Y*RA?Y!HM#6)i+*X)cO462p{}XkzLu zk%nie!RYd{eL*+F&J;fWxjN(_89iNFwNzTQg-c+KA#C`-vx0d(x(=G%&QqT&T~HwX zE>$L^vNR(!#--k8pY`pvm@L3D&igGWSvp0ng8qy{ik=}T5i0xd=^yPp?kqFW6c2Dy zR4uS7B;uu(7=am!95HoPc;8w0bLB#G#)l}%^7VJwN9S|!>6mUpHcKxU^JMy~l-M>q zXlrQ>`XT#o;)Kf`6q>rYN8P0A&`*&S!nP0Oj0Vk!9a>sd$bG;AP0P(4Zw&~iR)*t7 zCa_Wt)uOk#K?QuHt9SY(RQ=b+q4y24BXQq$y2EO^19CoWWbe83C~FTh2)^o*-Pc+P zDTOE1Zv(>>mW&rcT;`r^;q(@?K>qjiEbqAfmYMmo(#&-*LJf#^yB^U>YVK-R6ilMt zUC>}nnR)B8oQr8=1WkyJ(>I%XXu36xy=0 zs~Gr}x>=HD0L0L*Mum_5UIF%R;~TFBgmd9{?V5M^rpLuuQ$B6X8-*-1BdlkX;Iv<0 zM1Q38jlvI_^-X0z)5O+V$J(;kiLkt2f1Gg+GwABKMYJdwvBD+VPDz$6x2Eq{RO-{h zC~MWo>F@hKZqD7@$Q3hT5b%Qwk|inK0j~E`UcM>hUJ6s>H!y%U3MS>Gxv6dG&3-Kl z=T;${H+WR;UNXAXm`BJhTk08p$CIca)B|^R98b)DH)vqTpdCT6E|Xun{V-Xh3@-Lk zbYyXt?}Y1{r}y$+z${UE`r=TMpZ}B2EfD;jwqVg@Shl5c!-w$7XIJ1-Ef{S}vs;y= zCo1^a9r;9S=^NRuMAP)?#6%3beyo2hU`BOUYGuXDpUl;(`m<|Ni=rUTZ;C=Zxm3tAk)w z6m0pb>_DQ=VA2bZ9=7ln54wl#TD#%YN=jIo-Q$ls5iwL`~zt1dB5WR-AG^MA|4Y_qvjA5L-VOGF#l z?X_K;4Pptg9%~rd`fLWXF~P6aP(K>;Y8$fZfhH{1@5JUT7@ptr)ZPo`&0G&2;gu|L ztlu(5C(&-mLSQXQb^t#hvj*KEjP)bRws&lx-~J%7Em#k0=kyxa6!9A~$n~cEgq1{` zK8u38F&k#VoF~TiNG2SL+mNlmt(m6p5H>R<>BW?cF1!HvWz|MB-27`iDdwQldw@bZ zm{_O`BdND#vXwb~7e0*y|MFLx6g?b|xiW)El6`Y7W!|zBWi!vX8tz&R zVD%VqyS`ADmV}gSa{s(2Do!APQ$anDC?$ zIwL8z4>YgeC+5T6bE}Cito9&J6v#GQ=+MBn;q?qCD|`xL;d?(p_>p_KtU%c7>H7$q z55MR1hS$8>n)%fOC^9mGy`Zl^LX6_%+R97LUm#0spOn`r=HgG!9|}fd`aLBqV9|PTDMQ&?GZe0*l`E z47Lr(hIhExNg{v^)f)bDt2-JZ|jghH~Ri-)2JS;;H14X#cxSyh|l|L9~^i-%rJ zq8W0W<|W0k@4iNc>L^YeeeeHu+DX0E^@U;i!gdxtT4t!)R(N!`N!q16TA7jT6!23~ zxvQ{c#k5zRC)olkS3XC(!a(rNMq}3I&BBX3bEvWFX47ZJv6hojj$Z7AR`qB1;Ze(b z?{~uFIPT2DHPm5YGTHZOTH-tEk25$*TWoq&MyFzdO!wYEeGVhuexQUk>|?FJSxT`r zpF3>3#_(8p(!R>w1Xb0p87XYgMmAE28m;|o6-8Bb_2!Ix^XY11+*R}A9-}^8UGw7- zjAUKlf|z-n_#`V`HPp25Ku^&M&U#%Qh9Wc_d!e|iA7@Il8j@?`$+%o6Y$c;r@PA>k zJDmW2U5UG=Iu%=6{STn7u*SQ$sX{^rzR-0FO4<-+ZxH;3j*!NKn|t62!5hZ%s*-i} z_|x3yatZspK>7-u!D(2)1T4quagIAoXi!N-eHNB7>(@!K=qrD;JA~4 zx;B?O$!|=Ky{s2>5S~U+UHaKvxrEU-6x zwls!%!^`^dvalQ(Ih}1Y$+o)dDy?+jh2tI|puuI*3&|(jBqkZ6E*C;Tn~Rc-!F)&8 z%lQ{sKyWDR>SoHF$_LmWYx{8t=@x&0#?D#)vd>3f2@R}y778diY6GSl+l1OP#XtR3>1!#hd28|K#U>#^0NAOtrR?JznzdQxhtlY(pguNgW)CKiyVG zy4rBcyz@Q2jZ)*R_Vj+(N7~P~q)q5c$3VlE*LBfv@1xAsF+KSgr7i_R8lV!F7nPpe z_!{~$3OV>LvdJqAQD}FAPNUB?0C!fg@^?FCOyG(a{FZ+mh##SXJCshD&<~K%(%l;= zmx69r2ZOpn@<~Be{_y@y)i^~1bej@OY+SqOBw9kx_Ud}Ne|AulfW)Uv(%On-gW00H z|D&*CC#oi>;#?XzAdktp^qmwC(XSu&E8H|ZP&-fWhCzENy!O})*ViAPl0s*tirVWW z%v0XD$I`T~N}1V{oRdmYIC~wT`(P3gM5dQ=FDMdoo3h_feo^I-<&wb&VBDL;E0GHb zl(n+Iv*4k~lIzIojywuVxhMtGteZ}QY8QT2Ht%XoqfLaq{-vn8!F1cdGX>`uTg@Oh zUDsCEK)5Nr3exU=XB!v=x`kntmJ?kPp?5NB4K|fN_S)BhQE?@#CVfoM1^eHmvg@$( zi1A#9GUi%#c#F`b_ z#cwPElMI48j$IxW=yMO!bT7!trL&G@)N?eihreMNlqK|KTuLg9`C9Q=Hltl;*8HWm zk)1(DOZ&^Ljg&9)-T5^aYO?#D9fNe?RcOD?KdZyR!4A`?7uFBGr_7UXFjPN@8r(Vr z3(f*3FJ8PPsIP!eEuu(yJo&n?8;U@YW>8lz_Tf5aS>4wuyV((dRJ4WR|){8d=(vz)Z zV&PCbQiYfv{pAKJ+ID4X0BtxLS;Y%BP# ze6g$=S&>N&HUB&c^_P)_91<&|hlqOI**#hldh``SakqFh*24U>!<(YK8UYjX^Q8Qe z)3X%Y^$69Y4hP|+(4k6?LdEKE@Qi-!T1v3-Ykhd~UD~gijM-0BWag=ylv4Jj?{d&( z2r2aHl~<)llZ2zfff2R2zdSIP0)aD9$OSw&IX3|>Yt?+W%hQ=$+z=>3C!dckJ{o~0 z9hI>K6bd}nCJm6^JP!m7%nHdLJRmrJP88_#bHAWRq1Jt}_>7t5Oepqn(j_dz`>H>% z%svK#_q{)-Lhros9gr=Q)o@S<4H8tabytzY$UXH4c>ryu3omr_<29xNJzCH)s!2(o zvhu7hT3eln?v=_Hle}H+Ko&)1qRo$6O9%i4wLM9f*ApxI59TtMkRR58+ONaf^u>im zKHb;WwI+sWIV;s2b$C)KK?@|?Ol0(e9pWCmJo8l@d26}2#tgkTIs7mtsnJ8G?-%4& zeF}VF0MlVZtEtYtqqX^&WLam2GSvO-WGf5T(=e4UMzqjxzC`}{_5wLl3IVm}N!T$Y z?mC|O9_wO&13g?PvZzat|#yaXA}!sKO6mBJcvb z0`;vMF^2DuI~nH%LWS;B7x|U8poJRF+L(J~sAtpdFM&GPYV@SLEq$VbfokXHbT6j; z4Ag~ym~Jna0MGTvP>9IOWO)+3;lb!o%>&Y}OGlM)6!2k%8he2hX&(p~S?v1Qv*8tigYN!oyM8 zkE2aj+$nEzh;=4@@f0eQWLh+d@)QXAf_!O^hcHN@7`-NWT)3*;agr{g7FtZ6?clTv z-i;^!HCESW@4G$ajMTlw?9ab_jaSZ2NW!5E`0TBR0^J%T)0FBH4N>aO2b2f0$QNC3 z!Cgs$k+pM>iI+DqA0N@eMbj@Im+I6U)gBM&XDIt1(NqDZkMlL>e5-GamqU8Y|6Z7T zk|pTkCTbKo5O9r5xpQUh6a1i}i%}H>Vz*xK=2C;GN_1-XlwEIn#nO*v{$cwQH&PmD zB<*6#1x_>-&!7iOSqnk#zjUOxTR5x=i6Y-O9N7;L8)lZ--1c2IPCfD%4p9}7ITbWM zrQ(k|utvI?S^=fCg#*3zAtj9!D0LmxgCpaTzvZlmj9&Do272;i(0-RssXKDl;q-PP zHOj@i@>W~cPM(-8N+z*ENha-Ek(j5@`bVRlFtHk|_ZynXTMk0!{8A*6P&x2!FZUC( z*`qtoH@;lO{sbnc!e@Yh-fU#U@I#R%m-z;LQFWaYYodcu^*BnenYngXTyyF^Fi_)e zAS%V#y->C9=zsz~^SHj1F&u|`M}~+V%JY1nSkokO2d%3kUGs{uZeI}&FB`&`zuk8R zF)XBAaatNgk7)NyaYL#^Itv;fDU5w^sNvQF=!p{y^L@rAM)wPRJ2B^Wvr0!Jui&Q( zj*@gB1(r7M0V*%+A+p7lV4$N%-;|zsr)ufd`AY=k6%r{_a^+c)W$>X(N3LoQ9PE;E5LA_2EdMB6y#37#+`bj65prc|(fuBET zyzN$z(GAagp@LHAmU!$Ua8qX75DdJvg)=BHE|WKK`H$}v1+ee&4!WlUE+X|?;wdq3 zY5y1gZU0+lJKD+NaKS>o;5(+iDDz~LL9oeZtK_5?M13d6r$)(Z*`l)Z3;@*n(o(gp zVe>g>zf&9|zhM6oiwr|aVChNriAYfaxr+5U9SzxwgtilnpK_{hYtRzx90c~$)5;|? zaZTyXM(#~s0L4s3|9+i3V$r#3nG;iBOUOqN&wbn05hu!+@n>D+*GXb8d2R%=|7_Nl`IE#0GP|9Ob0FMVW8qb|ASySju zGW}UE;*0vDDD3HW=WgO5`hEq2yk-o;6L|m}#6aIt4aWae{3s|kZ%e^G0$S3KdlvPZ zgIvEoDTuxJ;u!2^TtJ{3lQ&~HlSRgK-J&%_*Lvu`CnBX~{m85p zQ=l9OoC=?1Ig6njeOeBlK5`IwN!_NpI&VQdmIjKzx~4oM`fIEAd)~XH^5BUJNQOL) zlJQo&9`1*Qi}Y*Hbl7LB(Li>EyhESW+AD(vHlQr=$xd$?#ttnVs! z7h$tD&rP%&T>A%L{b|P~^a!l2-4Rl4n*J(5H?%YB{LY0n!m^LXSRjWQJH-21k{PVQ<$N4@0WaslBsy6E@j+z-13oKU_(SemQdX0}Q zWxx?PV#0=;fcD`PhyYT@tT06daKi1-Q?UhGF5jR@?63gVA={37&8p_eq1*O@BMeaYSA-{DvO@i;!wPZN>}sUbpNwOyIMBvJ*XUlD z6<{b>{bGbLz_J`ADwJ%1sJ&c5f0kSZW)cL8yLVm$i~yFA>mx3_oID{Jv!J=wOAQUJ zDnyHHk2Ny_AB|Px-=#Ez>7ljAIBI1 zh2VNay+gU>Cse3l`17wqY}I}ZWVhl$Kx8z=!=?X$O{MZ%UH6-ojFl0OY|C4g+JPZo zeY@4QBb9Tzw{qy$j2G|vYKt6^ViHaqIGaB zG!RyOSJT6RX{{>!P_Z~U7~CzAX<d`{|v?c@0I zn_l~NEUzLJT>iY?={PK+sNoVeml}4o*3;rN0ItKjnQoKCAmnCJ-9Wr-OS%_FQnIQYw=eG;~genhowbcL-g+|pp4sI73&|_RY+^bX4UH&et z{xLhzzw)ZAJ@$&u6YHzW6&9;PG68=~a)9f;U$(<|vGxMc*MHMrKqAr3$EnP$U^`65)<9(0N5G*szxW`wUP0?*F8 zo5H3{@I_WWC_M2QUyv){jji0nU5^Wxot@{$pVFP-pn*hd58`+JZ@bFGiS@F7fLAM} z6vYrTuB8cXFOw)862$6Wt#ckn}N z+q(kO2nLwngw;v3SQ_r%-oUYH=d#*|@C@bAu07%uHaT&ciNI4gVKF`s|8#1K6{*ntQwlP$s>$z zYwHZ_KIRu5S6tS5oTO_UsV&`uVx>%|zga zTPwMs5a*>}kUTwiFRKrEcz8-fnLg-2{*VYT8vZHN8m75M81p%Siz{XBu3&Vgh@f)C zV^~7!`@}t(IHdL21kOnv2hErd@;PNGGJ1aEIF~ z4!%cfjh@(K!YgvQ^hdzz6ZH`mgvASQUp@h}p^0ZV1MOeG5N~t$K99GEqgK6f z?R*$i#Tp_|DtNW4GaBv<+>IS448G3C$7ZL!wR`WWQ@n9j4@$(iIQ*E*g=#E$2HRuE zL+Hj`-h~eQb&QDbnlmo2#eCXjj}-D?A#@(BcAL8@z-5OfDu&?)LlcQ1uuELmjqq_` z*E|A0J=@7m1Z;o@S>me7y;~S^$@lQBDw4ua&3925E zWbR5m*_iCv*(#=GhQWu`eiZvGm34*aHN(6XeOByL`v> zyipTV{EW=rap4$vPxz1{Kwz8d8z(0y-2INWbTV9Mf0pT-u9#T$n+i>}5q0}&P>zz- z!~nBT3uk@#^&M|x=C98&l;s0V#UZ{;nqpdWno!K%rP*S1oMyC)UO(MLC)_9+ADW=~ zLg`uo(8F>AZ;Ed|TCHj3og4 zJbyDQ<`*4mu}*HtM}KIsT8SXUXsvujG+X+iJ})_;nQZ+nmby{2G60W` zTR|KDwrE8j=$X0|f@CPk?T59V+ zR)}yW(}!Pge(68k^J3Y!WTy|?5hZ+JT*;>Fo2IT$qc^#E#;}klXmLYJe$d6@s~$N8A~!!ZEgb$SFds3dR@bUVMP?aA-3W^)&|gx`pk{^=QtPg)EEJDeNT zbbKoI8i{k}hRckOIzy!wA5Y^Oah_L9DjJcBQonrwY3q2@O*}VJv|daCxh#wUf@ZfF z^h(1(S~#wR;;3+W>e!*k;@Gq-Et_1wk@G@5HOmrJwu@qSuZd)_97179p|EAfQ1B$B z?)a_4Kl?cws8|Uvg>)gn<-3}CeqLSq?#cf2l!zeCk#E;wt3r>0w8CzZE4q=ffQK9z zj7yDq=ow$O&d^ZCZf>y3z9T8`QWJ0ao!@ujW#EGVXDRcWl3+pr)?x{GaNjyQ>zk37 z-!aL(?9Y0y7y$k9(ckqOB)|ML6|nVww_o!V6hlGI?3M6>u66%NYZ*{TAgPY5R`b*6 zdvHzup96<{P(ZTPv8M0+F{ysJOeng|;PL#=P#gqUcasT9aS(!{OOOjT6$3t|ZW-YciR~MBh2UvlK$l zWKI>Wk@o9A4NX)=V}Ty2#2W@147q@;l)`pX6MSHY{sRv`Fv?@HTEfaimr;jVXPifd zPZ64bStd(5quWuR&PGltw+`kgKPVBFQw3m54`0rF*y=kXw?XP9eN3>h5tYlS**+yH zd#`$CLL{Di;MFuGt;<)Mib{6B8{j;!%?g=z27X^~>h6A}Oi{8#c{mhz`kukqRdjXj z2;EfsW*$9sgj6dr?Q`nF%`!%`539;3n(vob zwp9)kEDk~$`?|XpY|%EWPe<0LkYEHAfa=+ksdb(TihLaP%So$|K{nVIdHBRc;ipl2IR!c0WCa%!l@2KEQf&;;l`!(3@vd^P9;Gvmgs29xG-S4H&Z})>=w=VJOK!x|sOQtGsCLkha@r?LW#Z$`C?&A@s>7>=Wwa!f-TjaNR z3H2)tCM8`xD8Zu^FC~z{LVdYGA_}slDDhlD73TD3tS?X~QPF?jWh~G$3#sEvsWbec zw(t20Q%SZW(x4zyC8MyjF|dPDh6x8Z>xA6=KZ?#fo~r+kiIdtKw&BV@ZqQ4yMybT3yFg(4#rDunF4zQ6nX{C)m7<8jX8eBSTZ`}t&C zoXO;JCFf4KBhjsXzPboN1QbrQ;>}GEpCHchrW% z4I!CGx}{R<(}VuXlzd1{e zOvoDyjvVgDgF+EwNll$MA4|cF3+-WBNFeAD#x{=?6^Rf;E;Qa858crT6~QKrEDs`+ zmadv;C;R!On`%Yc{l3v|(>z=Wv^W@+XtR$yVAAn6vwq-5oGl~=f2M%pk9 zQV>UT;kq?F0b+4PuOJLnBp7wA8w5;!X%Cmr=30vMcu>ii4K(vn6LTp07^mt}vk_mB zm~uYh548hR+Qc5RiCQb`T$FZBmMJ8w@iwBnD5*n|79>Ej!)EV*ezL)AxIW!RRhzK! zm!Wl5H7^D=pGWg9V9JHx*?6kr~33i{m3p6Bi@7FoI z))3qQ9#FYHlOf-8JfxcT`8vYvG8tkNNsoI$xLLlPaT==MK=^K*?R*i)(3q$)quy#> zvrZ1u;)4?G=pKj;uOE->aOap7eXiWdXCMo4Vmt_I>R*E}OUR{mY%RDHYhSc%H*-In zMW+=ZfMI#u{ddrKkWE}ItK4-Sr76Hg;{dIr2jkI!C2Y}3JI8(0MYef;K*syjM+RlM*f(z`vh%4xUf^1)-mzbkt84Ql_ zu>e&9bIhZ?sw#^8wJ{xr1lM_yLVQ+E#cz@wyp<)y`{#5S>3lYtOsna#9hJT}K7Gr6 zBIHTmGnvaGvcPhl_m*swVI_9Ukva3%9fVjviml0gDKEOZpqb)VV5CNift=+t z2ie-+T?TsPEe0=i!VXfCnv%0@9U-SRLAL%0qu$95Pc&#+BFxM_?8e*r$L9C#Si4oa zvP&a;q#WkF^fF*#;6hE4S$Z|AR*l2XZ-%d3G|SXmt4E7O{4M^M7!ucQ%EgXtv4jIy zttn=1j`bRdQQ>BigR3TWP`cLaT7Wx;#f2NkxyI%Ssv?>MN`ky54eUAMX-UHVb2U$CLD4fPan=f+k!%3RPvCI{l@9)d`^4nhuY8am8!R zp@61x==fp@4HTno!8s=$Q{?CH7FF<@*>BpMXJzd(dl2?J|3^ZVE2=Rp=0{j=fz%>lBq~5;M~c-FAO2cb1FIFx~j26;l%|qxV}f zAd~P3I;F}b@k1P>a-JEjs&^ir@QP$C#uwYpdZxAMaUj-J^W~g02maB|l0`W)My(2= z_m2ieYLYF-w~*k8d!K&E-b*Hy_^5_=BADgcrd@%@k2r5Fu}p3t5y_!QvYXR+(&A(T zd;i?Xv_5))GspB%paTvKz=TV*(adAjcAS1Az(TuJ%6T+b=!bwdmIGkR!Mmf)t-{LH zFCcQDzJDG4TM~H}B<}MqW(%q_ zx~}9b$h{3N&?OXGBR72~(7sc^q!wS-Nw35IX{8f%uj!*ru zR7JcgaN+xZfI0A?(R*lZ&XM{In-EYUmR9nNHIGPaXT5lFM~LO>*hD(s|5m)CB-tmm z8YRZy8<~K{8CS3{?c1fcUbQA!!wbY(=22u9mNeA9>VJTv07!%359Fe2@rnl2C0HIo@ue2%^`+Z{Hq*$`I?_u$ z3RyBJy#|GS-1qEbml2(s?7&3+$fWXmi#Yg7Y$faV=@ufHRozEpmhfcuvgxbQ;oJ90 zv&8(8RF*ML{McAyuBR7}NB9s+7P0hy#vAiuC9n(!M+}dqch(pH3lQ(I6woQhy1UXG zS^U9m$3r*F1L%A^C$GKM3al$%Eo%PRCjSy=#z=~d_<~q#2_CnB0I=X|4zeyDEK6J& znd=gbtWfeDT~Zr%I3ZyDj+VskESHSA@F`ls&-_zt+7;$1FIJS3z$RLCbQ1M5WH8w!5Nw$5!%#;0ozi$6Y;-ZN!_CDuIXz(>xt>C-y`~N&dsSWdBJ&l6Yvf@$I^m_m z%ud+qGT0h(5NKW@_48MstJ+I}($Zy%3P#zFse@`sAD^-i$lYyBh;On?B6n)<)4NrA zkikbn2!8$vWnKpyheBS`(O;VRQXdL=AyM8m3-4=Je)JAE+@!fV<&Ajmv4UIE&G9Mozcx_A0uPrTq za0}5du3*^<*+fqzg-m74oAaIhwHMxQscwD!kGn^8(?E|bPH-L;<2Mb-^~X;`c89k| zK}pZfX^jv$;B79sHAiesb6q^cb9udDcjuJ&KBkqJNPR^z;(eu7HcyVbsk)Sh*;%h; zE^qnHWvh)gySEzr%`k@A3nmL1U~>%C&zO$Y&+d$g*s^0;jfm7js9TFei4a;h`9aiX z!YNvOu&D0xlaI1p zjs9c>7bu2l?SMF)Y3ry%GCkK)WuXR<&`kl$G6Px0c~U69g+cbKH)5-jy@v4gJ=qH>BY}g@;UJ)E(>S-z9w8{p8g;463f}~ zDM^=!loF$qT`o)UKZWm?fF9{{5c0IB8*N!qC@1wk zip5$c@hu6%z?4#Icj<{WZ4rBKD@=A|*rg?in=k2Fp3YgM#H530DK6#2tdvsoQHE_O(H8XkDKXo_xihONZbQot?&$dyvX`YTjCsjb>S|Cj$ zp|)D9uu zX&Sd!+0;vh2~6%MhoJ$l@%ncrrmE(B4kl>(lLzGJn-+aOGOT2CI^GM44%gmEo&^x* z++1d9WPO3Ze!x*O)70_4K_f)&fR;!7e=ly_A*d5qtm1B zlpx=K(%{FP6s9x3LFYe9RmrB@8C50v1`SmR zp5BiabshD)r>jgOISEFS2)F$z!)5DLblF6P*FM?%O zV=_BD=*1(9-_3zNl^9I{o=o84am_@g3)cNU0Ary9aoEP7V67PTtDl2fn^~`7cBAhH z;tOOIu*0)Yc&dME+?BEM9}&r@4GZPW)%lA<2@=U#5X<~%wf4n)Mabctf^VDPlFx;U z7hq0ZdLMyNUXR0%gvp0dkbjm>tGLYbI8G3k%^RDtq~M);Mh@0Cpn>eU*CTsQg!EGHBvM7+nJ2wm$ZtY z#Cb0zP4ua^@$T0_J{{1hzxrDo=DCml*JLYx2JVa!CA-LWL~Hm3=Rfks($o1aMv}?d zTG{S-_R^0!3Rmo;LpWj>{%}f@f+};o=S{hU8?}^9D)wZ7d0Dc6>|btLzY>16nE=zsquBsir_cUe;*!MVI?NkNY?)0c=pL>uxz|J9G?h&v}7yf?B`3wUL;g zBv!iuQBCprk(%q|=Ng4`2yyrZErQ4>+?m`urY z%oxY;IGF&xbWji=s6cQ{=h%KpO%}pPYv~qN9<#aI1XFT7J4%^rjygZIde1P@u?5y# z*vcnEG+@U+p16 zJtS6-BpOGB4-J1S6m$RF1We?1C@BNT&wX}N>XL;_W?`zT^kpw=e~FN-IsaEbb?OA+ z+67^UoXn<}_~eK7(q$SggL0Ag&kfZxsP6b@^W6jk|MpG>AztTx|7tfbaF!&lG2+qJ z+CF14%@;GBab-%RHfG~5cH>hT)^MzOVl3${dc|*d0nMTLe&nDSd+U0Dx4+L8fB^>s zg!yC0S z_icf0vfeivWLQQz0%@8Ng~h)lxijrNI|eV{ z6>x&WpV&RCa<@>%IH&^?KP18rGz3SHpFSPP{V|($FH<~s?*aK61sV~`{n!6(bYqUZ z=VNw^ce!nX*c@^)B00;Y0!D(Xgq{*KQvqqpD!>!`3M` zQMbe@&e8Z8YrG=|8*dp&vgWkx&Ip2HMG_y^wdU8DJ8NLz3<=&F9HEl{ z_o;p+K}cPOD3ET$wSxH|g|UY;*fS9EBR4S08El^H^I7dNDu`rHJ6K|)xWc-mNZK!~ zAX~EUyz!I|^^BU9eEL?~vtr6L+~|9>t!oLBpI3er86Vf9j}%joTWng!+!X${$9ciE zb)thL4u=J+FnOn*yB_Fpog+z>)A#xkD2!c-p-Y-&zv(bNADxCtIQ5l911?lo7eQyV1-v(W#9sL1(hb}MGZ0OHWBH-8qqXK` z4F156N(kzrtg%X3y_AEy(rpJ1sHnsXvJ1Az@8v}DZ=>rRgqt~qGxcXGHzi~R;CRv3 zCB)Dqdc)p_Q7CoZ8_6iq1qG9{&+Ykjgdlt-K+NTC-X>Y|fLF~Q637RYP|*%9``Q=D z*zHlT{h*y{**7Q4C`%vf=ej^fDO5+B8C53rag6ly2@00O`pEDZ7;lHN$GZ$0giuV; zAHD|47s8(+ua2d#=h4^B4-_(Tq(9*wYbku0c> zvF3VtFuEs>|4GI;7^f+Q=eZra+Nxr~e|y3Z^@NiCUTa>SMF+|ndXFr*f0o6ifLhD8 zV6Ok5(4C%WDgHO99&Z@NC3cn?c$72)VIw9gEVsl+Yy2K+uSrGcIL_hVp+;hj- zKchba(Xi;dvbpjGb?lK~tFQ)56sT@Qujh6iG-M~m)XY;RaT*N$3UfZ%K%nI9T=5s# zjomkB%8-Z#p$K^^uEQt{^7#6HfT^F$rtg<60X(dk%Q~nS+!x9Mo|N+2>_~38sliPa zlg>jR(k)HAywBvs=|)fmAXWFIao=P;!qmgOSYxMMZ@cjfLYe%))H@H;Ss@hOzcAc+ zsFXRTP}xNK`b!|(SD_yluHQ3EDc1{3Az2ryrN;Ld1$d6?81yDZFM;jJ%(GK?B1mG! zw$v3msk$5nW7)yMCy7Gh_w-Kp;6_XrPEi;}4^YdP!Xk$quy9=JTp_#k_Qx#n%E{>Q zY*q*sf9jo=!hVM#>=_$2_h;@Z&a0@VWsc`UQ-Uqd5)WN>U~W8MvU;+u-$Q0C;Ep4i zDHxcz^pw?F{afMkqX-R?|15f?+9|7CALK|=D-SEQ(2pCHKCcp(0uicz^^cWMLEKN>@ z==?Bgncg-J0t@x7%&RF@%SMHM@@$z`&*R{njpSy{s_yJ=xO-!7gHav*q<;F6Z@5!p z?y3$sy;b0p?%@Nej-#recyM&?o;urKK+#gBzi$KLDu#PLz801;-DC5U#(_4%#_=i^ zTe5^Q(9qxbM~+IYy7{!i^~_B-v8SKr6vb17Q_)w|LBtu~jX$QX;mcP^=nDum(**Bd zNGhRLi?Rgsn4)0|Ky3u4PLnpy52H?xZ1Z35W|RFiFZ)oja6-2lBmYr}i2%)YCzJ&b zr|_B9*t=YRiW#%yfM=jh2Sns}n9}q@d zqo&-~dyDC$IWIghFA1@m^NgKOPOve6B9Y^77Y>F_>=ZR3vi1E<@)Udw?l1zMlGrLx z6P}&*T4>e3|J07)XU>DrPdF}`E$ne3*r_kcnUXxGvQ_}Orx!`)EM#Wd2@M_I)KtD* zy2BnvTtl=eL}<;Uy&w9A?{2iqMvGNez^!M;4^FAslHL%LI+6MmD4$Fhy8V{1ndl~K zSu*4BDo)kL>_)p>Yq(;1kixLZ=!rDmQykp)!?of(fC~#9^)O=HS82erTZr*GxPrRU zO01dQl1h_Wt@wg}%*Mb}Bj@<>>gK7yuTod0iDHJPJ&MWEF&1(5I?`!IDi2f8A6+`- zmpnz*{vun*3#-*t*K)E zz_)!eh~)F3$_XPFG)HgE{IhTu-~2OdwFoyXxk0RS8d3?>q#WPFnW)R`;xvs~8Px=m zrl94suvrC-*(f2?%F3;i0IAH^==fJVDc_QEEFg|4W6`=8WOxcE*|o?L`Q*@K2InBV zKM%49OFG`+_?rVs@SY0#dyP)H8CW2xDIz3K8nk5P`qPJ(+PmF$(l`_Z(F%{Wap z$t%AgT%M!E&Cgr#!PSRAJds3dQ+V@{o`DqrGk*sEL?A`yt}&mjY2?q!gvs`>qVKC| zKh2We0iOk$RZPUTB^Y)y*l|C*K~9T6Ujo{cism8?b6sTJV7cbrXL*6O7~QF4eY!qb zhs-*_je@-%n?|Z46cMR2^-&6JYcz>7SQXeHGwIf#iGqcob`uu<8$e5Pg<@Jrx^Elu zr-$!7g2X3ccA2Psr6mu~1dee0t##Fa&}b<8ckCo1#+Phu|G=hPkcL!rCx_6Zqn;8T zpni#|#a>h4^c3ymq_}JK0xcUgl_Vv}o)&?ZRWDKLw45o%7aVTm`45X9OfCQGT5LX1@`Ttc-& z!%U6pZC~YxpT(=Y;`6A_fsMZ^d`}=%10}#^fb1Jh=ZCOJ>guNXgcCi8#haziK1?2& zZNQ8^uLtUF476!;2%F2VM)I%ahdM5UP7c!V=@Co7DW)mX3{{kcj+qZFBIs6Ub3Bl< zLX{9ARupZ2$GWSs@;*khFl27d3SkE&a$QS!tY7xk&#O@fZJhdQ=}}Pj<9pKUoH`jZ zUXl>nm-vlE4H$IVk6Un6{e%u=8H? z26nI{Led#aLD}ww4n3@_v_~`r%@>1w^dP)B2`Luuy-9DFe-|tCGFzWMGC>WM0o~V-p zLu)2GHgP{}L!is~`eiOUHN}R)fByQ1aIa5hrva4d6)R0)Ms3E&x4g?l@|DOhfbM1r zAB5CA9aXJX@tt%PnB=_QJ-uZ5)~z({Z1VvzX;@?!{*&&PeoYz2OL+HVJFOdZ=na$s zp9}r%!xa?SHpHZGPx@7bc~sKxocKAcJdZg}kD)><`1*}Acp?Lo__&7rsCBG&p_m{4 za6rN1&OGY8y04`Ix9rsq>Gb12sS#X0SY$DcCj(5d_NR~q3DQ3DC|+!`tx zmRU%`GeO^C#G9ejYBja`e*l$(RO%IGg4y|)p%Nij<6BcL#LC%u|MFR}UO+;ukpDbo zs%vI`QK1{j7>Hyds2X{jOkPq@G|6b@@d>Yo7MfypGGtF`ru9*zN%g;8T9r1Ba4bp} z>p=FlimG?bC<-i$=w}9jqHl{nx;uoLPBTmX(FZ9uFcC%jn#8Va!H95G&`qHjylnCk z<1j3QmqY^B_IAtaoR<{pHC|IsHzGiES47*?k9Z-hLA@PDQ~f0@qvLlpI5 zO=hlt6z90~@xCN?*R;8%4w)aT>G0u`qKYL0>4jslGLol=5tD#k@BXG_8q4+@!pSXh zLr1b(=WMD%KDA6d&v;N5G{*o0>pR&@Zs{{Vc?r9~A;^GKdp_#})Lz#9fbvf;vU4G( z*7H!4$VQH4>8{MC(l%l!65>qB8v<7?rc{d2P?kX|pO`#vZ#g4A+zSNzJdhiZ+(M#d zLFp73Y%gU6@e$10DC5Kbo17oP!*V{*`E!(ofVfZN9sJ*fM<_9xTse76hFwHYVpY!R zOnroEbEb?H@U4>f9aNk>TtRen~~Lz zz*;c8^wMr!#-dSC+u4Uy{5V&ndO1^fr!~76E>(+oF5{cV4>FJ9cOjFy1g8@jraxEv zo~=w+Rz#xGDg^m-xkDiFJ1W`8S!{;vlCT}r56O!H-+73}%EJ7MLk@^!B=M$Jr87Bf zP6y>TIe+D$!lAX?0CQ^7*9q&z>WDfdq%>yVxVE{%$ie(l^nA!TyPZ}tc{m%6E`^o9 zY$aaaeT#~2^b$6b_TtI;Gxhto&`q&l6vmT0q)luei7d|km|fluKg%O@{`R4DgRjH` zw?fjOgb$;R@|p@*&+o98DgWw~3eLp#&lQ&a1R?Hv>}FR+6=j%KnExjvy12S?DA zJy1wXP%u+CSQ{F|r}>dMT$C*2R&-+4zs~a-A5^-3cvI9Yb?PwvFd?%p^|boY(%a>e z>JH+RVqD@t?n)OvzWOA$VJ-dC?B$QEc;tV;3|rurjcp0)hQUTxS0FA%v1jq>|2w^) zExTBuc-=#hg&)d>R;PJphK_qX)z`Zk!y~rzPaC=qmG`&){s(xN#?xm*aAv$aKk4*~ zOyOhOInZC5)2tYgi0#|)yjyzO zhtdrcquIIF4XUCOaT34!N*9%XEha>5+a1p*l&~#F(AgjKON%!!sED^6KRCQ?d&82e zRafVbeu{q&ZyzSA#2eo~@-%DxF;`tp&Ip4>E61IPjwLSDi8o_Y^UH@qSgoB76t+=WnB}UObbsTNinTp~P^g;prF7m-V6z>5B_JvO>n{ zt!IV$W5_~Uw?w@EjhWD~CY)rlIGOt8OEvk|_9uM`fe2bf7>q>s+8DauHr9$KHjbGI zaq~u4k1tj-AZPg4ENv7Cq$fL{0&5ozfb}&}SK3+_B{TR{+D5=Fr3Q-@)a;XJl%ax{ zA&P+gT2(i?e{34}v|`A!c3jIR5xLO!Ymp3Rr-9M z!xv|Hec3S7xa19iGU1eV}{}V34hMd6`2+nhT1_cQ5)H5hITpw zS-;_9i`qd|>(&;iTlt5CUasn)_I{PiJyE;B+eC`aq4KLnvL2+;)^2`FMCjANa6p1q z)w9z~))lOyc~}?u!0a#dG%p9cEB@}qDgLNUi+CbxbTkTkFMThzjn^tUmm!|wAS+CQ z0UkQLinJK}31KQO^%# zL-+51&~woF9I;EG13xjPz5!pYZyRl-LBOemFmG?&YNUv_d-;<F>1t#JL!^>Bmf?nZVnVV-S==cZj}H~eu~ zG7>8o)b*uiF2_e}baRoPT4!dlwY|>o-W|I=Cs4IUYkrG~>UC!u4wrc~Ck~3j_I#$| zTy#EHWgHNDRF8u4yznP_CbPy2Vtnip3<*ADuYY&aSCBq2KE4w3$RD>Wv^!07=H?82 zws^_c4d(kBUchjCYe6WgPvj+eH4>y36wWVJf z5BK%=?%5#e2)j0-RDQ357Hw* zTG{`fjp+|AUW2$H!07@X;hL>c+)!U4_RPWb=aHZ^lGR7wx2Uj{T6L!w6iX|cYZbji zbZu4XB}XNph>`Ac$~=ISs7gRWi)Y>?qYOK2y+orx7@57$)JsY}78xQ0R3kl*M zYaJ$_>Q=%2X#onMR)FTa%4Abm$yf(?>H{TQvblG*w&_uP(sBlMp> z_DPFLNvp;@3*y|c+Dke#6p)+QmY2qvAL8SL5==hL{0CSvQ4~jKZ4qpPZX&)f$INk( zPC~~D8+r^l;swk&GE~hGEqdpH+q;V66yD7$)5JB*4BQsOQc>rEU(4XtcKqWxxO4pj zKE&-O=jcLXE(6PsI=V~d!CCg+%hx3e*CawC3FU)sA6^yFvHeS@ISF(;Jz;HTj{U-h zkIvb7Z;>;6@OMw5)6mV@u@uzVnmqCM88dxP-peRCi*y>lUJc#VvyJ|3P~IcIGd!OFT^UefTm~K<}O%dXc?R`-$I~ z1Q||$6f-MQV2bE>RfYtwjM$RD%xPjP#bP7jlvAq?-j2-_Y#8M_yGQbm8vGi>fYA7= zThU1iT7e@6Uuza zuc8Lu;%;ELplZ!n%izAwxZGzWF4!h>$cS(xMlf0;lo{k+@z8t#$?2OMXFhD#uSEpe z^0Hg$Enu$Us|4_YEGk0QRaIyRS|Uy4D`@%)jC7mV&t!1u3K2nTJ+#>wgco_uu+T946DY5zx1hGjA711ao1etigTawd z{a!2wab5WQhyH#Hw{-gS80ERTV>9nc&?t=XPUtL>m8g!f3Tix)B@&3W z-@X8f4F;p;w`5TdKh7!Kfqq}u&zd7k`QhY!b8tTp%V z;H%fZ;c|#~qRX85N8bv&Ly~$O`F`(4&KR?<{|BfIvp@FMsn}>^20v^vHh`FbnUYXC zqfM6`<}N0>xWiifQNwuK(D`$n^UDXeXlu3l(>%M~evYeY&CU?O6gm z;<>m4sj*ajz~{#FDd)nl(G`G|q;BG!Bg6E`|F;)(^gA^=d1PO;?V~^+X&Y9C7NU~f zVrVl;cXL;jzB_(}II;bZ(}y#H)R?}`@=BJq=i-oKq z#eg=)FKpNbL(Pv7wDm)((T?!hQMA|-q|C*|$}kj*pnA+GlEm5M6OEx9Q;>3tQ6ejt z^!eyv(H!pq?xIFjT=|P9QP7kuc95N*tXS!>y>=#WMLiNpbZjfRsj&G{?V{hooP+yHd%>LF~5UpBrD8kXkC z0uI=(H2Y;H`Ou*F7O8e^R67W=}Vc0Gz zVjQLXBmTkfJi~Lp%HG^>4l{IkdtaJPY>6!WN7yT+kDznz>6FBsd@+n36y*r_sD5@- zT}pfjBZ|l2O5Vnl=$%53&h65ApBgwMcsH$G*$t$YJ!{*!F_p38Mf{gLc<_|V05JFu zz#ciQRS*85Lmd((LQm#y=&@c^9lt~fsKlz642(O`i6(3&NQ;`MW^^1=53JpW<^r}fzm>G7HcX4g z>^A%|IM`qq#>5y#+ja&1Br0QUBX-liE$`x%2i6Qh1_}q9=MEBY_RJcLPZ*^AL13Bq za6RX?GFMUZqtw3)YjfVj%XhfyuRd7kPrkAgPg2>!#2m>?A13wUe_yOFHT9cjYS?0spv{7QPvhu63k|-1pvMpzwalzLQ9M zxV4{a#hSTW9Uha4KmN05#Cq{| z`r6?BjX`0`E7i~JoG1Fy+J{}z?2q;5!za&nQu1r^4J@fGuDO&$+Yh3x@%LfQ2UQ2( z2YcL1f*TA)3?Pelr@ckdJu<&e8s5GP4Vd`gwFTPCjLw~6c}+WxR;~8YSk7(W)7dhx zor@v~4R!^-r^|I*syYA8ZR{GIbe=yXe@)x5eP>{}I2DuTX}7IIm&lwN+&9WJzq)Mj zJHBX3y?QE2>9r^AZRgONqYG7z2Qq7h6(XZ2U2Hv&k5OxeP*@I?uB>(0ru8ZmO||f6$ovNa>_Ci%@{|t*iU8&8(;iJ*?GVSL$@v6223+p6yX@ z!*g${#@8*_IhRsZ#tWp5&{eT3_O}}S4E40TpXa>`Z(D6;uIUJ3{xvs~uGcO#?ak^r zj9MML!aOy1b=edJcNXOp|I@?k(JUeU%X{;2;s=zbl6mISN#XvQtXa3yj@me%W%EOF zw`oC?mRq$E?^T1=ft(Cyvmh=q&XWlkJNiP%eha`v2^iA`Ax zA-}u-Iqmgaz$KP$LIi>~E|tt(7ugtr{K)3vWH>okTu(qbY*F#HKu7dtK_ZmHD7{h2 zd22FIo5$;w=O_^;_bJztY?n_+a@r$v9BKtxFP>h_=#N#Zp325^ftPdT-kl5dPFacm z7&Y2$aM}m`dR}5Eb;YP%Z1Q&e-CITBKgH@YOqz42(=@#x+a|f=Vo-ZV-|w+{%9cE# zZ(8~hisAIo(0>51av`IivuNxPRKn&k{%Z2HHMQvuWFs=1li7P7l@PB=SJWjdACg6o z5Me@LyofTRSTf+QvS-`19$zf=UN&s&nbAOLw)2b4`#O}!8(WY^Ap5;BHpO{35yQ`W zk1HASn$bV&WzZ*)6}#hunb=mAH@g)jG`p$1wCo-gOt*jIFL`Rr8SefbWt0Bbeb!8q z@%Eo`L>@JNMVg9uO2s?^pjxEN;Lf9`DfARsrYwn&1GzJm8 z@H{tmIU}r|-Li0YV~QVmo@k?$0>!Rs>QOp+Jq(yDvcwa6d?8 z0^HwaCjS6*P@SG8iq5P$%A&;l;^m_9y@2lgJmTBgSG=0#Ete-=7c0pj+T29D@6Zr+ z#kW!(?KWE8DhX~0EMXFiU=AP0e6N{M_%W{$`xm zs{6O?qpW?WXysH4NJ{D!i?6KLy`somK)~POJ6q=7@7FRz-<7hn)lQIUd9fjW=QZodM8O-K_d z&rVaDJ#-Y;9L1igX5a1UzHEuciTJax4MjLk@igp+7hJAsza+W@(xE85D#Z#5`~5WZ zc$j6R(_)c6xiqAH$>5HzO;c#vP`{Y7Kg;(7?)ye=M<&QtIaqIos3&5`AuH9T zWN1ZwEV{9YDADGT{_r2LW6#&##hSyu`UBwR3FBb@d8l-7UvcER0c7T%B%i+BcJpTe z|IC`r{ibpQwD{VgDpxQdoAPrIGunaVzjfGYzKh-lyNa~Y8J=aE-9eg!t$;r z`$_JFMzwNkiaiWoyp@2;gB`ZqVRIr7zC#QnSphUE_*}~8Qx3|zXN95$rM}ThmmGCY zMx{;8vn%-U-c90HU5wZ1lXg=ASaQ=SP|(tOQ-!X15P{~dQuN?IARMx%v-rjq{~ojH zJ#KP5VPh7QvmE*922@|e(*mf^Byv1RoDoXu`RVA=As+1JCX$sqG$qN`5taN?WEI{L zqRcx$?$PY<5Wx>U8ivb1eGcdn>@Dw(fm)7o8KU)*HYSYLz3#wKC(~D=Tm5u*p?WCR zfr?qW)y6nINiAj1tjWix*-A%rf^#Gb%d-4={c5;%azT5fgGuKr(cJPvz5f8o>>bY* zcgL?T&7Li3;6UleZ!}G%1%?XaniSuZvUzlHS2`Eh*_*}Iy^Z?)4Y`>sXYtn~&wDw_j0sYv#P0ECqGlNME!7d*C*Xl>*Z##CO%Rc5UZ0&m+s^aShbj@>p?6Y-9TC8>@- zroU#pHs40JwVdBJ8NFDpIRHRZP|_w(;wIQe2`JXGXxM_KJRICbh}`Yhm|7WL{;?SP zTWu^sYwU+H_EYB6zNA+4@fhgu1fImg^n!GKz9#z|ml|T}@VywcBtVsYFLW=OU%j0C z#VSKmfR8!(=i1zSp(HC$eEX)pj4wAi(7$7; zFq&W0BT3XS{2x$W-e&T0Cbv;Ijy^Zd#*Ui3me@zA3~>HRlRu06b2qmO{tUyS*&n#s zU?+VpbdbAcnK1_MhUJs}_wto-hi59tXOz28-$1%h^OyGJgvR9GpKEU1n(;2Pya>s_KijOOhUy=BK<|{t|kYWR|$hY{4>&?G~Pt<>BxWI%!4A)&FV@{S}&9kDQ8OEUH7tpAraP%a-t6P# z;WF>{%AmmSH$$w?pNp*CHOD!PrF)+JD*1g$=-s0)Pgq&}jVZh)w%gz`Yec1UC5edu zY?y5}BHqJVUAliw<+0l1wiBNL@BgJN9Gkm-&m4U`j$chxghag(=%Rqn!(S(mbrS_4 zAG5)k1JBTY_!aX5_k@dl*>@Wz1d`G;3U3;QTDUPP?zboG08Do~9xfljDQy_epHq5yrG;tA#Xb7^`55^7i?zrV-{h2W0JD@+*eK+aL|( zWmWvYc8N1)tadVc8<$zp9yh}8^_WpJVDB|HLtP@B6E?ZMdAPq2g?2 z%c0jv5s@{!v=INf=7-C>WE$q<z-qM7Kii!k!6q=vqoMN2V&wYkwRd7NA zYldM0JgWTTt-3lO$}+KIj#zG0u>wAXq~b>QAU zpA+WlNOTvU&R?&zK5mJ?Q2wBk{GxMXFy+q_kavI_HS&3^iXGz}|Aw9OjL{R#Yq;L} zfTo}qCuXjAFjOn7$nz!m%Is`h;%dP=Qm0GiRaSoaKd15*w_0u{9A|ynaEzzdlenR8 zkQawOkh!^09!sxvegS5e+#gE^jq=Ak2W$tg0QJl*7GKPM&xu9Fu|3cZ#(ZE+%NN6W%lJ9X9JQr&G7~n1`dsDA_<%;(EQ<$*Fr8z~_H6?i%xmg{!W8qvZ2mVxdLf zJH8U>73VjL$*E&eCSPi`42*nMR*4JGJSxXCpLFlsu2eVr2Jg`g>Wo>|gwviWyR_IjLpT*vi9{$=wbrs3)yKWo~)k3{_L{r&n=W?2^V^8L(> z{{S-YnS;vTI6uY8R*f_i*U$bsJvm zol;l&9{`y^X1`f@>`7+1r~#d|UVr8D6l8x`#7$WDWCypYpwwP((n_zqv?uEMJ%B|4 zAwQZ3xRTCh6-V(=xB!jMRqpNv5ilID7vey~Q$%>e^fgF|oG+VChX-hNsr&#LR+lbi z^-bf@HFmjn=!xy@b*+r`Uhe^<;220Sho{N`GQ!OWczkjg8XFaR{^Ty;>p-ykkj1Gc zdao~X?M<~fUB&Dd5b*N7Uyx=mB9vR)>;%O`t-tgDk=;M9@v7}`;08_Sz|a~A1jMcG z!9OiWHDb$3de(3qtx)Tx`RFx;WgmBkWp_un{xN1G+`2t~5G)>GGy_9`g}vAVlTz%5 zTlF~#DZp5n9s3!Z4vbBt5N_AN!4Zjcue9@7T+?3Wnu2KccF}eMSumW zxbj7NU1t9PN*9KCE1VYC&>1Yc-C*bq7_uLJOok@131x%#b_C1;h5Kw@VOK|2Y>!Hv zgI6f|pw^lL2z37dQkG>6`l0b)#$k?ZNeg%V!Q6&)f4l(onhY-|hGdt?C8>mcwDk}R zxTB))vb99gsJ^k>h;u?FsQBJsf*3f4As(O5MNG3AI7hGLZVQ(8MEZU>Nzg#fP-FJN zh5$t_yjOu?2Jf{U6Vs)JSVjYf2oF9Ln&1~Jo55$GH7%iAoS-)V?!>TSx?SBu;z=N$ z=ydw@86njK3Iu)qaj?mxfkmtJnw`kG8M+fr0_RmBvI>!7>}wRq^1C zheZ7F8E_`7%)7t3;0#jeczldkn~`@3&(ie%OP~oZLz5G%a1FMDe;ix@@9rA};?ow(|dh!PjL(8}@j=$@j zoVaN-mGbIHhhY8D_V5{YD+dIfQFi`;wQA;G5$*VB?o3rV`>>&2Fo@sS9c=G?Q1xnO zkSS>>d;FVIR_w?h&)7O9^!?eLoYGL=>y3!EA4ppkg_F`8QEK@FRY8+9f-eD7toLMFmZnd^{u^v>gz?{20>47?eF89+wCXz`EnO>{!-~ z)p4L@ddEcZ`}&}p0VT#&ZQYW0E?u440>it=NHADQ=(<0FkeV*OuK~of2hNB(djU72 zkVqm|&CJ6KB7Sf#xDMsAL(JJ+m=U5LJ&pjmI0{Cqo(X2jBHAu|!&eYl>x3F_zzku7 zRiH8+-pT}49*f`pKw<>W9OZgj_Cw`@KWB(!cQY$<)|s#c@B|_1`PDrvn{QPaFgB3E zb#|+>mm#Sn$dnr%tGKvw>=+i&ecrv`YD)%%^~6{~sMNt&dOb>qYRGM_veUuhj&_gLcyj;j+OEc)a-v}khaZ*_gA6yY7fDd3K%TMO#R!Mb>E4#9N##Z?BDsat=`uTzf8Tj&@PL}h?3 zhX!;Qp$@IwSl(>amXDsryssyUH3WzTp?G)*EE*+)Q!Bsx2SXBY%Sx*{+awn~SAXP8 zYE2Bmm@YrnknhzMseFSly?=)_%SK#fd|Wt4U^Xv0FHg{wCRw*Z>+lDt241tO{A}E4 z?Pb@>4C4)#soi=TtS@l}`i11aL%0HnB#x`ouqp&Tj2Uy_4fQ4*FCWJ>hA4TN%Zjra zr}4lT&Oe4iMhba9P7@xO6W?gGvMI+J_2NcK!mw#h(?7uhUU;V1oOm^lTGc z&;x;#c+>_WbtX#Zg4)24&YysBV&^6L{w7Hl0!s4yQ7mQvcwQP4ImPUkqG54Y%GiN0~{{SeMW({`<{_>#DK)e3{ zs!IkGYO?t7F1FCW9cbWaa*v0@7NFR(^j^zL9pnM3?Axf4NNQ3M`TZkFmoCn){{U`M zW_TAXt@Ht^<3iTL@Oe;(A?^gRs>1r>M4TSI*SUZ&rAr3FJFSFEzN{BRs|A1p@Zwyd z$1d~$VSM=Xa9k24kbCQ*Kr`x(&nJj?bWj*L{pYxc7;JqvmHr}#ihg?fmiJ!w&OjF> z?`X>L{^thmfs`F~qO!~^yT9YA{Y%}#Rb_x*euU&wa8dZ$yUXe@xZ)amfQC3k{Qh$H zpoDS%0F<8wa=x*q^&nuQ>ef~D(bo(d@Onch_x1z|T;X;5C^TT%b(8#ulJdrZoga=6 zYJ0Nj{{UhQfYc-N_{n0$qdKFu_6{dn2O-W^L#}ZQ#q?JDtRd=XBw=Y^M6$)YviCT; z<%J2=2d~q0(7jRf_&sYvE{7Pk*I`Y{|7JwWlTn>4rnXa0#oxDEajnmUn{;$ar}>VC+bh;jje6NfnWl-k&p}i>}Y2EVc<~ zgjl`k374aFj7U#EwANyP|rJbf<3$gfcA(%WFdZX^(Fu*3q z2=PWfwRL9uMRp@fxL}KI?p4oHMlze{@TntA1U4GeGAu-23%|2t)Dl`<*?ZOlIWTcP z#UFOs!-G>`#d>&J*wlvz@nU-zULPk=XLqnUUO$L3NiJFhuA9);2S=jWl|ixO$R@=< zrS*peiE=F{e5trr2%-n~gP<3qQFwnAffgp~&)`@ofG)MasX|%}(RHg31s?2<-C=SI zH22vLF5$!V1g>~tq#Qcd`l@xcYC~`6H7s@}i|giQba0J3YoN2wZIkcoq#zw((fN6I zb28Wq)&8bPQUI#=za0630|6`7`W2JBRdqgMYbB)6uRTC+Vm5hYt@b8XH)sg;H&x4r zvoT`1;uunQdR=Gzt1xH)EFE$3Y}WwGqoeFZiw6N0?>uWlSi0z4BZUA zdWki0E8&G5k4W;rE<*x9+)S+>s8kEDOJ$f@_NpVV+0d*2z(=#w`FUsRz0VsRoXkom z!$B`BLi6?xObq51-w%{s+`{42koaN@1>w5I-i%^bPpSwtdWG^@j6Fi)7KeBw&Q_Cm zxfgm!0d@Mp0h6OMuKu_WqWZ9httsVxuv{!CXDEESGCf9HME-V!3yInn&BkQB)DnlU zb7<6(EWJKPL^?lf{;RmTTKj0EfI+O~4#ka;-jWg5<)$DjlHfw_Yl{t{rFK6~QXFV} zAUl0zDhkaVbic=7DimT#4!hgua^cx}cS&;+C{2@}&ITUh==*!`D~30NgC!rM!X$TU zEnmF>>Ig3h`}Zmx?`7ohcod&iL%k$OoQj3d?6h3KGPztH3+sT7s^#0f3$o~Rrfk6! zlDmHkLqBfomjsPKtd;LS8UO}03*C7HP_XL?{Pl2sPg24{KKdcrRkdGMJL->LsDW%T zmqcmx#|X5$Jy*q%1BOh>`F|J`FpFpq_xv8<9gJZQo@PZFpfd?WUDR->%(58&0I)To zpvROv@nKNw=i%6>hlyS9EvVqFo9KEmEiM;sWiIq4pv>VP&&e$`2y@_h20#VjeD@e> zKxCoym2($fpOl&jxd4|d-~3MENM@9LzKf{OU@C{d=c8oTb^7UIYBXqF@1Zs9X*#Z6 z!`8&=hx75)n@Pf(?ZWjj)q~`h4_mv`97U>Me| z(P+P@8jG0-`Yu(#4&~mfN3;dr#Ha7G1%wdCIwCvqj-Wy4;cb5bivv18jt(hO^H9ir z{%YjCWH@9#+ona!tv#s^aG)~)y*5WM2;WpboEH<947a~Q=OD;-y6OI?DwpU`^T$C^ z8m}kNfjXHX#3B9S6fE)3;d(kQWSOC>1m0H~l4B@)zMU-19m@B8>~s}%!W_I@QgmJ( z3QqgQ(C5q~7unaFz{r8LuG+9=G@Ps7`-CudX0ji?D*$Zaoe_`s9Z0Z?q5a4#%mljY z*1_HGD(;WR1QrtYp?N*b z&Cq^*76xfkRDGXg701fq0K}cj53dc<2_k_vZRxE?YlWv~7j)jgQ&-yP51y0k1vhWy zgtGuc249vCYf2e17wy5_jfM>2cJ`P8UrH{g*n=dqSkaN){(!mKu`A2KZO#tsnA1lO zORw9Z#*E3nd<;Zvh@ZB$4$WOx!>b9o9lguKK5YTEln?LJuq4(nhwr+qGq8c<+fd|vz>qt@@3HV-X4Z1@KGOr ziU#fB9^a@8?oO-d#7vjD&Wl&hCBX#`uV}&94#AMszKw-^8-wa_En2UA~|lZCfGdRdArw zRyki@wie7Ux_}sWsSA(&gX-lUzXg=Z%K0z}<%>{RmoNpsL0<+3LJ8|A@yytmhIw50 zGZ4==UayU_h%mtqf47hXLkzEn!7SPg45HHO=5q`u620oP8+Oi7)AooU(>Y~>Co* zFasmk?b+aXd0Ia(h&jwTHz@XfEF{P@5{UEZOtVs3%J*p!%2te5wSkX7U;`tn8rPLZ zSj(MhqKAK=U=3BZ)opLl0e#a{9{dT(t(yq@^@(ugk5i)Scp6!#F35Uy4de!^vj#wV z`a-0=149h1{*77>ch!8gG+>rN=J~ZWEmqM7wS)kp3C~SPSU8UvNCIiZ2hHmTB{I|0^EBDzlsX8ym%O$NP!XDZL1colvhbVr2Vtj&Gg7&nLggL7l zBk1}x5W#i718q_rXzgNNtX<)L)Gg{Ozv@g_ToB=TES**mz%#(3qCW5eLNC)*$B$Qg zGq+Xp_?fE_BuA8bJ9A)g8GL-)0&c;&A>Z;6Mu3@K3FdhOl1u>2)qU7A1RD|}SH+JC zOs`tuAc+D9I9!+%ZHrI&C`hVY8fdwArUTAQFQ4pD>T@*0`?xI$i<#9wYms&YDM0U) zzxuPFJr`SWG+P9Th3kC{&A~Ng$K@>233Cg(;t3p=zU$`Zr71>b%NU=EB7U$*oJ;#5 z&uj#4!lbhG?gL3-KwRh=fDViA`D&TXnLpp@1h^PdR`1|Q)y1977SHg7n!^pEH-1SM z?Lb@sgimk5Gj;_eC-=-9*^aH1wR{E#LXWTW1jE`Fx6!RB1TSy&P#`YNM;fouWsN9hKF+U*k3P()RwNv^xF*(Xa#&D-TM;Kgu?hah289q zpSnfbD=b(h=Z2kHNOT^bgR6IB9$YP3R(1JV)CH#2%G>tuCp{f&{eTdj<1xY=pBclw zWD<+Vzz!*Rb>YZuS?XR_PN)w+9NNWk$IxYXzbJn7NA1Iq4`~!6mGN*2OOb7tQ}Pk& z?g&A)>e~%_Bj5ZKnG9%AKA$euAbc-x3mOKVsr@*eF#-ij4L+RAu(>FAw2*W@ULAtl z^~(bm)UPjysFHIQ(RKP6$QSlpGhGifmGf$R$bw~l_-<^a`bn%E)*1QQNDtmGJUl+AkBcke6Hu^}|8lVFe6>95`0py74b%#&K)7u}3d2KhnH8pg8Hy?q8iXL>~! zv&G|U3@_ie*vXwxT5N^WD-}xcxMS*w=we4$t3687kz&1CQ zUvGg?-$^U)(DZono5!@kDVncthYS;;9#^yA>W8f%ZQFJh14=R@^Y*ND1(v^f8Q25V zxAN`z33O zR|xuj$u$M9zEL_5mGTz+HQ(IRubStSG!c zG%8;3J1(9>P-}xRlzm^hS)@{{+4$!n>rfHx`!z6eq?G>vo*O+~$~^jT2TGOmD+Sg$ zV28u_NE;im%JTe7h?A>Xe0D{K#Jv#WTpJ29(fWarFik{QBk;Fg@>6|a(1$mO?uSS8 z0Z;@0pPoMfVuv4yT>Gira+S8pynJgT*82xFVsx-vanz73`(1&OFh2@r)`wBGBO-lEDF`Vz02=soNhSLklqAhUsax#bC>QSqAaEBiY1=a5- zZn#IBmjo6PD!y;YOS|QMY7GEb86}s8#BdFA8EM^w0hzSr1K-^94*{D5pzZ1s%LN40 z9iP-{Xw5wkcC{!Z1LhBOUUngk_aI*gdvJNFAlxp-^(58AgmC$A=7%8N*Jj0BlR$MS zbBjF$#DqtEs-qEcTCbzw;Jq(J_x0Y=heu+f;C6-aaA`(2!>+7d!H;A%~A$`0sj*{}e-JmZ)H55m$aMKUgQSFx;wcrTq-U$PY0>O@NU{lLK<$o#cg zFQbQ)KRj7Su@YCugEOu!o9mi1`R;)Fp6yWck&9@(yyz{|`XTwlL&c33=jQF&LzVDz zU|p}FcN%R}{{WC|cR~4a?&WrV;s)PHdwvBK9Z}=q1p30o`zDHp4t7t?3&XK}7Yp1t z25#n2JAW-$-vUtEW)z8+Hr0JD6$t{yM(mGAW~-xuJg>J2G1SC4UH#^VFadT#el(XW zotc6IP3Q@i6H}pF{#Tm|ItO1aqRcuK`{S=bhtCMaRBNOza2uuoWO#iKTmufiDp1mD zTD=k7>Jan;SVPRP07joBdhRQk?(Bsrb)+J~zZvHE}* z5QZzq{6PdtA4)=Wv4>xkcbC*VGUGALb7n+#_#=?Pnuh2PI))v@HJ7!uR6DpPt{0!g z+2QJ5`YxAlNe&{rtzWSWA&*9t?{z@$84)Y$vDYT0!v)MH%rR2QyKjJL6l8rZ8#c?m ztG;XQhpU*&J*vMP1kTYKLfQTjUEBzEVvnPMY+6BUqwVqKU?ds@e_Etfs35Pq;A+my z8td%v2dOVIx<8OI0mSuPe$e3Qt(L#`M@F8SuP4w!ZlF4?k5T0Sw7553h1Dq4&E%D5%ZqVZS;_;=Lo~6F#Eln6s2B!W@d4NG_2}6-L$~OcQ~_`y*VB{& zMAHz6^RR=cVA%ob;doLg&J~aPY)oODs8>DfwS$Ir>9LG}+Dok-s+wKiknE1`Tt!Yb z4!mBX69(arb?op&mTl#uE2ZA*e8PP$#t%y{bRT^hxEBGSA!hWgMY@J{(CZ*p<*ZlT zBE%Us>WgkbH?hQ+V61;oFx-$Nz1O<%JKg4BAm;!*Ozc-zBvqnB7>PvN{{Uv-Tu_7$ zujLL6mMg{iF-^_bBl+h+sD?E|&Ta$HB6(AH0f7#WPq0*hU1zF1GWH1lKa}))u9tUI z0j*_x_&@@{lUfHTJ#RV)u&oyk6G3~vMpxn`sHA0neC(hbE))&HHV(_9{t(c>f-QtR zv8cb=_dIg<4GdQwT3{1VMS}jpn%-Ul%eMl-*y1I9J*AsUx(ZLIP+5tx{4yrDaEFx( zz4B1$%N(m*q0fW~dpS2N-RO&?ktTd5@4TDUiD+H@OS&&|yWlx^uDX*<-(=*ht(dBpusl764H-dp$7wzJHReiF|pnq!~x)`poX~ zzgD_SU97Uc%jTw-h3)xq0Qt&(o$z{07ek}p9eVzoO?26Ie$!yU7f;fq2v=}L^hciqu@e9;ziMHO z1@idn9G#uf^7;b?-5-|`a|3z89>0}D%7?1`=0TPw;*J+ps2xj8wc&L8Cc3L+IotqT z5_BT#t7 zwJy9pAppW+3jBE4J#H5*m%*yPKLnazHCc6a8#aS0lg-AJgx?t^D<&AbI6!lf(gDyy z_54&Humr$FbLx?+WfATDQ3MJWgkK&4^|=tvzF3P`49JoZ?dmK>)o?>H=d{wSbh zj`T$Kvc~4a`Y(&8Hu5x2i`r9t#s*P(dZX58B*NkJ+o@ly7Nqxuy{Z$F6l0Mf2$tm4h-RJ??E=J5n3;sqi50KkUM_ocRhoG80B&B zFf}fR*YXWfF78bc==(DDrB|1@nR8WcKnvdKoHJB1_4iurY`*^hB`$R>{M=v|gX7K% zpKmx7=(v`AA;&9k>U`Zp4&Tc9c(Ut_%fEoRkjd^4_I^z&D@Ee*8=^VR7PvTHrZ)wF zzN_ud(kZeY{{S0A>b_U%UoJL7pBWaBb?b04C7tDh<(ZBXcm1lvB%6iBtprh-yv2H1rJWxK4i)*_nMrMs^ZoS%QTCk6QRAE(G3?uOH#U#`;ubYO;fkn0Zm=jXOyHP*oZhOF@=UUj%74&6Q zA0}9?(#lVb5&o&=jMHtFzxW5R2XaK1TEDV9TN<*{@&Mn$ zqVc-;dBKb5TcAz8usVRf%;66*GHm2$D17=@bAcc__4_cWi3st-5j3Lhd^J#7U$W+k zSOH{xe>$1Ztgohs%FaNmBeV30unppfb|732$o>vqx0NLDgfOb7ty7LLsigz z(9*RvNAdhWU1uwlOt{76bHHZ6=)QcEJJL|u{G9j0EPt^z0J#$Zdas@e7zxf(;SPUJ?eb3+tg z1rxcYa!ZlY zR;Aiy*oLGRTOQUJBf9eal-6@0bJZEc5m1To;M3Upt>0pM4I=AD$a|pTlD)nrrxIpj zRj$uLfhH#idrqgj&aO~CX&+sLF3<8r(3VZ}7*O;HL7mkhh7fi`^Tvf(Vyo6@a4sZ? zTAAobmLc|)&!fA;`z}@cHmP5~8UQnRL*L+J!sf_6K0C;1U4PgXAYFw(mIR^4)RDYf* z99V_x?3Vh#L+ki4HR!lN+~5oa6gdX~|4J>VJ*%``*XMBETfrGnAk<#iGaFQ4aJ z^~(Bq9KB(f(Q)9_eL!99#5T6cr{9(Uf->y5$&B|$vrr5R)RODn^QGb1g2=o2k&z9Z z!tQDSXLm*Mcp5$O%kIZxSRvuC3s<0|94*h)FgAv2A?NpML8t;2&u&dg(WFJnJ-?#8 zAQ_-T;bHx3VSUa?p_zRbXL%?#sO+1X2$&!>8rDagfo1`(b-DcuFLr2NKb@fVO3nKu zoX|FKkFUV{H+nCBBS!8TVIOY5RwUV~^j(!foK!rpN8rN8t)+IZSb*#p<-+y011;I0 znacLRw_{UeIQbfyv0nxm*I}(!tNtb#uwLuy^=why#3uJ(b$HE}9TQ6vP|(4B)B{7t zY@f%9UMWT}#c2H~UEm!W7%#t>g-1o3r;&o%e=B@a_dP7f0#)-t=zk(c{!NxWfEq zq?u@aG+m9V_qoENs2+TrrB4 zZ6$j=OQoq?T@SYdLAz0Up9UqF>=EnywAk#Mo^LBmFi%5_h~MMo$5D0^73Cr?)}KG zvLBxBvT-FJu9hIr-o00*;GI)l^jvurEmJG=)`PitcOf4&kV7?>t?=vFni<#CuxWce zLLaX+Ne0D`eBk0Dvcz0!y#D|bU%LoJ%e?e1%on!iY5;hnLVw*mgHL6~d$5twZvOzQ zQ@z-)lWQvg&Rrjm#fYh!H4y#zPh!X(Vd^3E z>V@CcTO9)Tyw z<`o&QY@x<1>d?8)qlZn(-56Z>hqEs&xM04h`RqhPhbIm$o5yQypgAZ$cr)2=zQme= zfX3)G{{RLH43b(`d;N^m8FV{(l^O+*^x+tEyUQcr{!?Z9cET+tP1eWHA&uC-42|v94FT3c{T!8lKQV-^RSuAT2S}?$n|yN{5YK>${n?J53GQP zuE;aJLMNxmdNrduFWbN#s}w&SHw)fI7H`m?x?Sr)rr()_*@HHS{Q25xXh8jW=naWp zhsV_vg~x+fYLCZ7kt*RAZ}!Vi)vCTXF_yX03vKiq zGR6%V^;_rM5gvt*_4QMbDl?Af@0O-k?n?_jyRo(u;j9XIcb-mB`&Re{L% zM0fYNHMQ9nKBkW?s_d-=P*{u7P#%{k^pcO?pJd#Jq8!RM$GRiq;BNL@!TW>{&&FUQ zB@y|IHGEN+pgueqGH<^yYDbd3nHw;`4P+0W-JMvy5&KKO;JW6HLe4IapK@|t%qSk!V23s)W*V<+@($2bb3vTq zSKEkCxR2GxiB#*d4tcx^6~o0yvi9~ct5^g)doVKN2Jvu*-3Lp!H`6Px`y@*TXwIlM z{!Bn>5mTZbet;Kh%!E$cmra^s!-d9`){RBn@_gd3kE4wSbU0ji<9mU1^L32YVS@d3 z(0x|r*vuL>ULkY%cX_D}%)S1DT$s8iy}jhHW)VEO!<0T3L3%+M2!1$~qp%Jbqu=-ihgh_&SF(^ zD*(NoOs@6DR`2K| zdR;#}P{63semDkIjfSXm*~mJU0!~mJ{s6(39v9coJ{@_hKxL*~pR)V#LR%mzzbd5! zTI;*$0iK(t)6U^bL&!%@+9p_s-2v064cHej23B9!T_x%RA*0v~V_;?L3wN*sE=V1r z4&Ras3tuRExCv8o5j^=Y8o-lv;jXEu&@ZbF85A!l;d08@RvHoWri#&lA{Q^)xw(q3 zOXYVYhagi`^Ks2hv|O+ckhnHSyT~DkU|#6{ymtlK{ub^$hhmjS_3Trr!B6vGSci6a zV(@_U{N0NPbuYIjAQv|-&8qhQ00JU++^^e+U5z5ZtiSOu5W{0~^!o|w$o{0$0cx)I zp{~!>%IBfAjn~J=a%$SA_p_#efo1CaSK778Bc)tDNy!#u9Qx4c3y3&GbK<9FT-ve* zsE>X;jVjZX%4t1B-EqRkj417WQTO={X+0ya=4FOjxk1zA65~NyBklCTXcaRGZ!vPXNe7W~ zz^`+MWS$J6&J9?!Vizr47CSN?WU(P!E*zh1vOkZc+y{WY@5W3Ly8i&AFtz^C8hxp* z&lrS!y(va)fL+%ZPFK5G+*Ryq1Yr;57kBCm%iHwNT8OD%Rt|pSls=v_Us@sk#}Muw zp_jGP;TEOWKC^-{;l!^&&~q?eVIQXEnlH7`{eYoI>BjAB?uXmrygDK4-5?+WAN6_b z-=U(OP<;C7@X^(MpxE6Sa)9SAA(j9$uT^2QjhdKVi>QMwmzNnw&*a43f>3>UHzz~r zy4^y$IdbUxKZYg284^n2xu6(ie*NrPeHXtG!x|heI3*x$olyF5!w;!9<`xS>5Ubn0 zgWE2Si?!0#4vt@}GT;k7i=OBL?CHNSV1O`Wu76gXNoB+S1MNbI=OR>U`C^nec!KDiez~YP3&vCP=FK$)!tDP5Anz%>{8|i4nPo4(nbf3-wu$~c?(ES= z(Kk3FMe_LVkjQb%2t7exZXi!;x;$nL!Z@i zy>pj_N5rk~-23Pd`o7Cy4^HaR{Sn*GYu$65S<`!at&Fi@Df;)zM<2^tuZF z0J1rk)#~fT`Kjs={Cb(uvQhN>XJaLF_J>FHK=tgnrI**{?h$-oNIB}gz9MTpg2mHx z>p;cBTv*BmukzAftyU}xt$X@a6Kz+y=VsJ65yAm%JFm@n+m!v zUh`MNKOTL9!>&2uJx)=6>9iIOYKKO4(jk3*5;Ia)96MCL8GC(uSszlY*8>OTbB(@T za>rK9Wpm){G-pnH&tZkn(3)?u^Lre(MbGMoudBxOUbl^Wq1SI@=)1n#32hivZvOxQ zG?LPD)qa1#(WLc9r?=C)t!@~S4jr%|54=R%F#tram*jDM$Rexa@aRRvuWR?1k>z!J zb@s+q_o`Vzo1pc%<(IQ)#Y5a#*XipVV24M)uywJi0Uj>Sr2+Bi&;e>tpg#JsKj#Yh zTm15-7!oa_JYujJn-%%9y-2o>hdedA7&b5QVYP_S{eFpFug7-e{GFKkFMxdArxBI2wk1DP^*in6Qse6E* z>(P<57XJV;759cs>F5o0L$mVdu!b1ba-W!^_jHq1rYBYSeTki^Rr7eYzg5{?Lz2za z1L(Rk1GBZ)bHzpC7%@%V*_Qy^)sgeqY}AY{mh@_FbWhAQZl!MfQ)PwAy7hikg_Fd?0E{{YO{ri<74v$G?|(N<|gr}Q2{#LH@= z^s1t5qOZQJsFSh>*Wk#iKu6ADum>S<;NLID0}`0n!iU|F2OVc ztq{E&TE;^!+CKRZP<8!@bKd#7Z(i*b1X5~;GzY=0GQQ6nNiEOlb@L5%!@!q;S@OB> zL#s5Q`S#;Sxkv3L#_V#s->=D<%vUZ3mZ8DQ58g29!*wTaOia_4TrF1t%i}AKKE||1 z+r7#Kw4q{v_t1Sq(67sItmYkdWt5=1K`^{q zhcp48UiO-d4S{9#_&R8Y3SYJa+?s}#UHyR}foG7vT=%IZqKmeyWIK{{a_H##6b&Nw zqVMdbCUnB>>Jy!FbbRRGUrwm_ZcUSWE_rq9EWaLB5p~qcGvz4`;>oK z)ouGEZuDn|8BOu|z+N9CSQAH^FQ0?}IcE)kfZ(aPdf2{;zC1^4hGt*9B5o-#y$@}& z@f2S-Tb6D36zu;1DZO`*{6W&NP7KDC)qY$Hz{s;MVwe+4FP?{1&@n*v z{zSVC21-9J4rxn<6+^RhPA<~L52QiNY6xP!pS59Vv0VCIqoYO_(Bi{Op#1PrrxobG zdSRtd=P3TTHyt!X-TDr()qMV|fNS`J@8?*xO-dZ)&>?2J{n;!s%j4Q|4NmBun^GAY zn;`nlQ=`KKd-V~cIH57!bMRAVtS=8d&0oY6dC%SI7k9!Jn-mW_)aZ|9TKNIGE^?0y zG7G}}z8Wzy&{6EwScHc-Yopz>aZoRCyd9YETuyO}Ggc5j-=zcO7G>={4)eLJmHBO` zF)d~*0af!P%>&fvkL&6EE}!bCZudJ?A6GYaXltVMY#mRa zs{{wXF6n`1)pO6?MxxgHxsc`T{cA6hwl}5iO5la9{Y9OOB$e`eKvK;G-c+#fb!_Hx1$g;zE%s@%}xsXyVbl^adSSFsbIaY$I#Ncq0g@MUbcheTyosj z^efN$0H2lK+PyU09x#$U*DQ0<4$X0xcb)V@>+{jDT@MfN4joO?`;Hf7Sdc0;U7eNK z$?6?&gSL)`w@Yh*aEIIEtm2^`rV77!vLDuz2)WgCN~W*o=sJEn-TMa!`GriH%mm(> zI!=iE`fSqDx_xc$(1RfhpRS^Niv{iCPI|!zj$&Fv2%Q%>s`B(J-~N^ibw};v@+ExV zsX>dE7(n)aCLMWu+k=OW$b5WlRxT{P6)7RZc@9^>v8wcf0c2|W*#td7D0cmmOAQNL zAn|>tOl5N)9*A~*>T1jGfcoWU4zl3@p`qk+ov zW!b>a&ob0U(D{q78xqU&ohBXK=T+(Qe72^Nw*A&?u@+sg+$+*(hp*_bc3knOiLez% zk3G&O2PpnF0kqP~%hBopt(}*@^HTXN(2L>6b-5HcUY-7^6&NTl&4I>2*os{b#~$(lW&2{t z(yPzlCoFKoy7~CZkJ%m(ztCRq?a-4MV7EVUfXf;lxkux$cB_MPmve*IxLiISehoaxbOV&tJL&_1>E&{=OgMJo&=-zKZsGc4f27 zNDLAuC4GO@9Z61C`=9~N=M0~oxNz*dA582EuI=$qkJH3a_Fl(O+(ZlLy9*-*ZAz|% z+gGk|$a?t#%!fP-wM)owo5%J6qCJmg?9Ap+{9*OfBli2&)7^ewh&s*?I{yGs8whr82*&XJYv!-c^YPx0a2ON^oU@b@SVcxJF*2wx^!4ygXx z;z$=eWe+;^tq2}zGDBH+^~V|XEt_|!_cfv(uaKD%<wiURU}P#gX^=G>L z{#J+}!>qqG9c#E;^2A&_)pJ0FtRf)}D`mSEJlf7s;=a035zRhV9{m?PBVZRg?XFi7 z+hh+S`Jz8erMkL)pSuMLA3aG8kmtiRA@B7M(qdC`265`Xesz4-%eOGi2S%dq@1wy$ z{QQT9&@PYS)V<32JRKVH&V;$$fzE-Ssyn|R=)i$3sxLhTbM#{-5&Yq>avdIQeNoqy zpci6GGm0VD_F0_f%jwrf88<%=ae~Xgy#piW33uW=d>_R%Pmh{hUSxf*rblI+?uXyU zS7qzy&0|&1cRnF=@RMEcx#ae$+jgrO)rD8X-lK+GyvL=DrE;jt;IB*5(pXShHABnz zgw0$8KYerqWtkK6%2uX` z{XM(t>yBOQ4TA(6-Z6MYbnSm#ACBP6J~Ts{lS5ks{O0-wzN?uw9`KLn!KbUPdRB<} zA@0kU8_3Du2#$Q!@InW!QWvnXvQ6W*?$Q8{%>|6e*Lg+MGzl8_%PZOd?-L> zNB6Lwwi#T1H+v!Nm9-tI&@XR{7-JP&zGdD+!sjtFfZ=Xh=(Yt49sO0_!LHd{V%uJ; z+xpFn%*x}{GFwH>wS(E&*IqaibDoRJ+O2UH0;yij>pQ?vbiaqE_J{RnHAH`|l!x)a zSWiF4_wMgnbX{jK4uJ9~w@$OxgjJl;4}VsSgS!0#)6oMzZphq7E5*M|IL;CG_-3Tl z4q17NXI%0BYQkO&7<}!Ez1(nMCsh!EW!O9*x(dj*E^~S+f;ihR#KHL0?Lo zmceVZs1ei6L&KJj{sRG4Tlno$*ca^K; z94i$j(u=p&*3bbIom)K9{~yO43gs|5&2dNv{b-&u3k8Q9GL=EJ_=-esSyle_PyyaSh<%W3X3*LaX~q@P!! zN~R#M`&KQ@_$?J(Q&Ge!XzH<7n0j7y4;FTNh_mKrE>`>fap0TxhU*~)J{QoVi_v>` z%@BS9=oD2N_4l^kNga*jOJV?>{ru2brTWf-i#CaxrvgpwCL1&$t^pHQ`zrIinld!F zwP3_AXmnCKoAA zXBCo#y zQ&h(exh#W@3t*h4n4G_50%$q?!|~)m3_>D)(<5gfVQzlJ#z-t+1Fg6cvJ{vn!`1zA z9X)6s|0!%NYe3*}^8u{JqrP*HY^`pYBC;o09dUus z8e2rKC5lQOHTaAps8y!wzp2peiM#?pNiVd<8+jsHP2q8X__QdIrhu^4tbRKHCaHN4 zl3zqOQ776=CHT(V=pSeYCiX)#`Do5}s)bkLA?rBHNUN#rFZ>k9p9=y61`e_Dp2a4G zv1#wG1oRGo8ipyrGt!PqahKRaZUCe4sa<6SmveED0d_gi(c^zWm_QH;}lkHLJ`!GUrheaN+erdjT z4&asuXj15wGo=tn((F;XKx>!L8!CWORHfbe+egR=#l}+n+572S&A3Upu>dG*HBq zbu^`V7Z&_HvOtQwr7Of$aKl{j0LS8 zlF#?HLh%|2-$c&eOuqXg9VoqxI@hUBENAz9*|;w6o6yTFO41}*b!|QleIp49ygj7f zf2#6|Lf07Q>j8NOa5Sl&HQj%lnaqsH@V(F?*pH6?tk`mxh{*MmW{!lrojapB0z1s> z`Qt=s(!9LS;R(twv%{Y@e%CoJzoz#z`nB(?DWKr3?_s+mw{pj{Q4o>bHwN(ZoO=V5 z&;ttG1)WXifNANzY2@KM*mxo$xEkl@`(2n(a-?xEqO=yl-H@U!9B0unuX@!bp%B8ZAlv53yR;Xxafux9c&CeM^5P?VVy?6#V%I)Q zv_Ga!?KY;LS;Wrc=h?1x+$EfXY~)MDb7&4$TlKA>%Dm;%7-`9p?Y0otjb{ugZ~4tM zzJzU_dM(fU4%4|_h=Te5(AY|j7E-OKHY|E)5UVQYeQYM&+{=ICXh`<)Lwvrh^vFAA zjPk8dJI{$=?T}YYUW;1lwvTp-Y2q*}KOJAy!sGVW$59}kRYMs4j=}s~Ds{Db{3uK<5B^@?_-C!j@#*8OMi5S8iE>vDJ zo~&usMs4-98>`yzoV1yCKh=|gFS?TDp+Od)LVA$ARsBYNlLTjj>ZO3$7kbVkqF*>n zQ>D-JIzZY=C z9n2^F{UtLr&$DZHoR#Fh28NsWqElQT!s-PA%tsIN)Up>G8|RRs-xv#`!#B-4<}DV| zau&VM&$Os-`9Mj$)nv&4q|JjBGIb_+{9)5i!!|{w+Xhx#6=EK;@rJJN!S_DM9w@iR zB2?F1xnzSM#`M?>Xf*O1$b`XwoH-Z(uhpo*PIV$jMzRi8FDw=B%RVyhIVV?TqXduo z(j15c*`6P1t<~N!*aE6;60~=f-;OZ%-TK>lV{v8)STUjTQH5po|pF$%F6IQdE~JCF6v8_w9%lzreROm0kq9dtcFwVg4CExUuTggkZXU zsJ-(c%KHht&s%}zyzuU*H2PQeiU#uL0mOtc!ylmpKw(Eaw6 z;3c{PTTKevRgjtin}&X>KkMJ|mfaVY@+J6eO=RUC3@7HckKxxrbn<-}2UwFHbZ*aT z^v0!4Gd9{#R!@nFZjUaw=0H-tWm~{gB?g>fp?oBh9Tar&v#*|4kL$P(&NpmY--t}G z=0C@As>%AIF~V!|>x*n7#sONd{t&tie`B{wf5b}?Q8$vvHS>lGx8G;!12+V7*W6$c z5y`${^XMuH332*V*Obs7*rM5#t{vSv5C=5epIW2%b*F9+<~*2lJ8P|YMp7(Jz%I%; z_Pi+iMW2<;JTF`Jbqad&itJuFg3K;w1zcxq<_1&zSr!2mT!b~5mmf-e)&vh3+7BzB z@kdk;sLj7v0_j9JDk9A-zkzOJ^;CA#!{)=v03o#@ez=!*MCR8Y^Uh>y_%`UaLA-{z zAMpD!7Hs7tu6^}6?0!=9?AVd3!oC5sx%n^_gDtf%FAL1+r{0)IhK+VzTOo67|Ne0~ zcmHFkh8^gHF#Dgh)LDQ!7!a}Ps=DdfKSMm4N^gG)6uw{xtxDM5`W(wCzWvkt-hB31 z?vnGzen7>}7#XE{g;JxvqlwMyzD=XDpg34TP`S58wh3)6q_I8+zoy3P*(I_zlC)iE zXKWuRQ~16}bC`WLsSkV!RAPFfq+3TWJ)zS6F`e~mthW-SR{W|ZRf?Y+ zNX_mtEG5D!bFyvF&1)ygUZ>Mxz-|dM5MuKNIpn z<8k-d0k;Q$%Z6AanPc}3ovItHDE8j^Oe_R3_o+|zUX*Ul&WPssH@b)4vQQgw@tNOr z@iQNDsyf93PbKbGi1&%GRp}1QvW?BAly4$pMns#0ky}G0>NFW#lxQkQqEu38xoG(Yg3^3hwd&4ERuQjZ_yRR357T>Zy%)4=LVv(K~u z;LiTdr@hxj5C_(GHn6KBC969pTRxbGsmcE$t1vT@CXckU=jg0&k~);+?h~FI=sh(3 z&JrXIHzt>FxIC)Hq47_f-M_LuG;PC>BVhNS|Cp$**iG#WNBb>4jeR}nCYOmMerhlcBYbGo??DYa3y)3=$7&-k<)9Sn#woD2nm3P54&5=&OiCBxOB)JTjt5{8O< z$;?yJ-y1_VrzJ-!*u?%4>ugmD>h~*m+Qj{*FErv9ids1masGr1d8a>x2&g5q*E*dVm`}giW}up;G*; zDLHPLF#9bQBO0#q{#`B2uv;mcwC!8(LX9H=>8sD%Ht#?WXH(KM`_V`o7ZPp&~RTBo;{A8-%omS3(pK75RB>a z*G%xYCvMp$-ku>#Jb&z{TZoH{s;JA%*TD%a2 zOgUOotM6aoGfz6Ec3&_AF!x>=bCsaX>eMtQ{v>9?CFL5XLLGId4w-H&xt=i_@yR!6 z{s1UBr_`8*IDIq()b`?pw#`Rj<0Y+^h~XOQb=CK#j_2NgL*y(^53u*+XJ%U+1WO)P zesBt*TRBTerL$q8B4+RAzLq@QgR{%=qElqqK(8QiMQdNCpPksv=sz-IAKh{1?+a_W zY4$k%uxT~vc*PZVJvm5u2zOg_!;vJ5#pAjl3MS2w$)@ve76$6>Iu7{D z`N5bQ>y3haHxZm$A)Ia+X2NPxe`BRcnU)R(OlJ>g>x!)q@N_mNW>kP4_n6pHRwI#@ zaALLx!Vy;#`olQEK@Qe0x-nnYI*+)J_#sk153iR=REd$0#+T>;Py1Ph6^8uk+h3u& zqaPd`6ifHdGo|eXgh_{vuA@MJh0oRkb0JOv5-M9Ptou5B)#3~U|t8~a@P@CUcd|6_!X4*U8lqgm$s#NK^pGN5LkIE#{HqahW z02sfxJV1O{rxmlFsgaKK)mFInC;D)yQM%SP*=bts_NFg0PoBwM`SUT$F!tTJ$v<3~ zD*b+bF5@2G{;IY9%3NT%Yja6Ao%5&jyXzR-#E={XJ?;JQ9ZxMOuJ$X-@e?}$H!juSvPx^$vNtLk9l2D*^s=a>bKHRY$i`y=j*Ha9wRd- zVrm>Hwh*Xs50*!9t{)au6-62_R}1OXmR+p+uYPCUq_s8tiSb$%)F{j+w-1s^RfYx- zB5b<9z=G9fKKc&$oC-$76Lg6zwq`aS+m+vD!K0z1JtrIzR3nU5+u2TOHcrzofDY8T*knv@8SU@4>r08zAaw3AHO^ z?;lA)k}v9yef1CK9NC)Gcf0P9$W&8zIL7&R=ytX+>1^rhe&L0+&H!Y;Mi_1V3hFvz z_{ocFbi0U1sz+Aw%7QEz;LEht_bX5;n-4s&h9thkTzoXHbT@U6rF&t!)ktuFotPjX z)TLFZ(0dmAuGbLQoQ$GX)w#0EQ*pA2H4E6sxloR#{*IK^Zslr`D^&ku+KzW&Rmc!6LBZ3y|6eM0__aGiO^y?S-Ky*Hc3=6*@R zk0AV97p}iV3bNw~)ZJN)gdVZ)`@^utqZjPFY**0fGXu=+500<~Bc9PdZ%_%l*z(j* zLJAMnWJVQvz0RF#h#U64f^>HqC_2?0X|gIA;39I#mbH7{$g1NejhHS8ENBNesmW9$GBOh(A<`N2zD+g4*tSQrunAcY)(XM7wj0Wl& z_77blJkI9`&l(>W9CZuILh6U(6)0#SV1mF!~GSGx7?%Av$tif zFpv@+!uw3C^jSbQaq|Jfu~xP>x%f^zo)-7MDfq74+U(TX?wtKy)vtkI zI;GNWr4i5)8k=GVXyiKR+E`U(%`DE^oz;k%xpl;r!u3!s95LfKaUWo&QN3m#=oFvo z+}3G0w^|**7F$GWcC%N3`p@%!4k%(xQ{0^bjJ`IAdeODi3h?rONo=9UvfP@L2)+}n zqOYZ4c%(HGOq!3!&r!opn((EU9uo3T;cs6O0ISNu{2d^Vjr^jUN6!eTFOKtb$ji}B zrpwYg{rc(md3fa@C@4;aIL;0^lj@dt^;JHnZWwRhYv#v^)}+M9TQ;2LZ9|Ii|- z)n`Re>dM9Mi?%G&Rn_Yxp45qSH%OUjjB(#e1Iv!&hKp@)s@L|IBj}cDGR72JXUPn`skxPO!cI5j=@nffEgUjfl4E)JGA z^mSE-2D%6mo`Jo3Xx@U;Eob*-kMvDb}!vaMY+2cf)n1>hJHBu6>XpCirzaW%VZCku@Hj20Xi*O%{xzLVa;U z4VFBfkUz~x>VH=yAz-Ie0Lzl;uBv}Es9iZE#3M+*DCaa6PxZ;t{SU$J!?U5UVBZXLCGzH04 zzIQ4w`^QN}B-@E0g=%4cVIHJVoAO9jRP>_~BO@&T;v&;@xh&a}_vGa4Rrf|^PPr(n z2J4VSLwN1g92A52TB3z(d|mHUfw_nUZU7VNywB}Gs$9_zO2{Y!14&Lyb%|9rl-XzH@L2!nM8S0kUN z#`+k>|6{Vtm)g=(6W`b_aFS#Y+G#;0o}kixXgMoMKBu}?|2R6LM_WZ1=F92>>fDaa zw_>xx$$~n8u&}^06Fvh zawZg~zr);)i~Wdur7O!iGZ)TQ)pK=~_SE7E@JTVKq<&ggGhPf%{YxCb*bV&C>9xBR zLUt($x|p==Ydp?=?X04t$IFko5CM!p!@&TLi){P{0gpN-M9z3)tcpOV`aX`HZ82 zR7zXJVXCPnibU^|;Va!?gSDxft+LFiJFzb;-X-mAyKe zo8k^5T}SqGkU%NnkJri~j{;BqoY(fqLAh{HqsfwlOWkT)wqtL)0=z^fOu7*e7waJP zRd)bMby~K#0mPTCHo5askgD$>-y!ysk1ZH~Nzo}YV9ESv{sc%PrMmZA;~jSAU#iFc z_0M9xIkp@2eMnn)a#E{5g2GGQN@|Vu<{Ymswh5CNs(3U4IvKN&j~&`vi?Oa^V7(yL zFGC~9H@fgS&jdF+;zqJ9y@~0Hg3oSXNM@Db`=-0&n-SfZ8E(7d=3e3Xa)|S~wZxog zlX+~kOn0?~%I8!w`Mlq=)o7hzn{?gWePr} z&?e!5&%1MG@N~|yo$|(WlB)EOuF5FGx8;+CHjc!^WLM(7niI$akmnY#IN05{^1@m<6eGz~-DfRt2e=7!@# zmvlqtc&;0#UN17yoPnAqhgOJkP zZT6&Sor6GuUFP%jz{m!7pr{;|WgGu(Hx1^QxqwrF0neTp8GERlAa{hN=W>CBF=Rdw z(ccg#-W{PmwCIakR;{SpcN5}t>K<8ZJLfNFmUsiJJl)j~g%&{yYB?*z$=&+t$Wwds14Fm+Q0+ss;ly(lcJ>j#2pDe+ zj6957BShMKe4rcOwr=8WxcUC~&k@gsxOy2lE-(74Lyl&%lB!iNYeWZo8NzB^$tJC& z$!hG=ojU|nXI#Ab>W&t`ryJusY_%EMb?f>Hf$DU?8%mr091F}H?zqtd0}8AS4sW1y zu+J=`2Lch*+Cc$d3BK^ueXOk}b!vss;S+4c6M%m8u=|1Co@Z@<2*Z$^^HAkg{Iq&X zX!ZtFOt@b`!;YD_Jh+CAYe~gmXH||Q+K~z3y$h}_Kn3G7nPf>&O`Dm9R>MBk3R8e* zi|35_uaokRNn<%ESM+UjQtJ%`)HH;=w)asM{dw>-x}wxcpkeg)Qb!{nQbl#6FN%6J z{$e;=QwugE6|Y)i^L_H_M(vxOZsOvzkzaZ1-@m+(8bG#-%Sqocv&5K@2d=lTjI}NOC?bC*W-$ooC&$76++>Z-_a&du?$aKD=QsdMz z<32`tluPPHU*4}0ALJ#i7wDhRV*fH2a z5^7v-D3Ma}m)e+3&o?$9n<}(nYF4}M)$0g*OWqiW=+^#v+YeU%6f3p3c2V$wA#vyG zql=CKhDR3$R*b;*+{{J7cx=1rJ+wBpu{{}jV0s!!z|}3L1t707XvOStuTX;9)A$6% zrR5`LJo-H}Aal12hHfNT*c&cJzRwjl_tW~^I;E9Of-QocI!>4a+{Pf^EdA4P#`>e1 z5%J~Zl*bQjPb&T1noOV3}Gh$?%Z{e9z^=f*U+?n@iy-qppATJQJS zvt=5sLf0h`f#;aG)4N2m&Ipn@QIUAx@7^)-oelFSEj#e}m8y)KbiVyn%k~%8`!sbv zzCYYLAWhP1v70la?~eJNOP;3n+=Y>wO$p0Wy|WU*WQ+62pULWo=3nKCPD7XBEd7r`JwV7e`JT;i^+IU1EMeym zRNx^S87z&~itsdAJ{3`{8=W+9Rj4>4a%hm_b2Rc`a6Y<&>K_h0Rx-PwZn|sNg$-K_ zirTJ3;J=9Mp1h&k6v;0hHQCL}(riG`qMI1kLc*aqxpjtmqLvN0Sw~(7J9WvLJI#i0 zLqMW49d%hNDY8D)qjDZueER13Ey*j z03$~VdS9}RZyKg_=%6<*y_VD8^nUnxnG^e*Q~l0+UE-K?lTMQ``SCBAXY2k59+JDx zO{@e{{1aGF>K`4l!+CS9$0Gt(M3V`T+$-(?G77@5zUFN$ahj53p4q3TBv*k zG}HKUGtR^?Gcp8F^xN`dogH6?(#J;bqz&sZn zL9!-LVB?9%FDfB05Fgc@H}i~@QqxebRK&6SO-IfzN@~`29!H2o_C?v72npJ;vIxrb z*#!cWsV;*8=YiUYs&iit13MzR^Jtxkyz(%E86j{JLE`N5mV299l>Q>`X^qHxQt z)UW5iE=>bFKAwNlvKq{gpDcdEJrie*rw0plZMgZimvqO6 z(|kyS!hh5(M+r3_ZHg!drxd70_hem>@_`jS@6m^elIQJ#?8OQ7^}}auJPGYdQ+o*h zyy&Ifv)zz49O%TuN55@3F4|60 z{BA;GYqUY~j~KI@G+ZZfokBES$DnqPYm2jvTA_)^xVBNcu9UJbypj9`sxZDR4p57} zWB5BR{mOCWN0ENUQ?7#g%*WKHw%?A{p`ILcwn&gh6+}$Pd5t{HN|G*aa%RD*Ogx2k zC`iOX)O#%?XJL|^AgD8Z+UmOI0aQoeGRvhTcKIx6OPyL z?h{)Qlb#Dq#n-#48VEjMRzZ*Bn720JZjJ5Nx#2Fs70R zx4IOkU!+5AhPy>jEWKWWnMy0g$M1IC2^YrX+x^tpI`K#9(^|@vA%p-ui8$n z|9f?*`f9Ot-YTtI#yR}Sn3m{PgwNA4%dDU{>!`4sfey^`mOKNc9@~p6`5Vw zdhuha4yO-?$17^NOTz72*! z%Y?_NR>;3TXZ;}IU)U;iuul~3eE%wwctx;k)NS~}9?CI3NvCLUoX3_o?l59)W&5*a zK%kh8XjAMB?NJVI@4L}!@ptLNdoU0wnFceVFDJ5<{6{QWp~o`CIMyC!eJ_rmZ0^7K z%_!)FLO~1bF2T(KI?wjzRj<_Q?gfPpCG`WsnCl=$D5(2OrOOXZtAyQhP+*Bji&pqIt>C@E zOtAW!A{oudD>HV)1L(RBv2|t~(6O7oRX=kJ^jQF^K5B*0JUCT8++3-3_NPLFAkX%L zN`mN=E7Mej_^8=jwM*81WmInNH}I=h?SrwWp7vW5B;D|n_sGSgvB#E_keNgK@RU{^ z))WkMj~x>&(~;Lgw0%MZuiN@lPYX^JZ%cavIEjwFP-->Dr7~~!;N)IVf9(nEjX!Kg znkBUS!5g??sx9F*2lh#t?Ed{U$6kYQcD!|9ME{yDM?>Ik_{R8zosZVLM~wG6t|n19 z{lLpxdHK?K9?M$q%BGj3M<-51!29I@&ZvqvfUf%1zmAjyDYMcXK2#Ai7uIrpT0%`| zvZaOh+k!O?GWnPh$ePP3&-Cc~pE=)ug2-?>Jv&|q{tC}9!R9ZHx-+8peP+tNqM)Yy zk!Q#Nh%_J4mLlRg8BRaa5tC*aa9JjGSx%VvZ%Wmu+r}IfzAUCul8cX?sz_jM~apXS~YA6 z)9P__0lgX#r(ML*lsk>Ht1F(Ve^7p)zWV0XG9fJS8#qV^SU1vie!%N9Nql8{1@@V% z-YG|$C5a)&8dSZ*k-dl#dZD`b|Sag752o*$Rv&~JH9{xK=7QG(@gV=}jI{@LRtnB=nA%x2-} z5&~ik3RXeQSpy+(rL5KjE6Vn*Mn zCWlD&*UojT2a&~ur7+jGX2G!MmZEvRFGC|HhPj`lmTP%W{B-mAyzwLm_lXmz;h^WU zD#E7;o&|ZvYk}+vYExbSz@{Yg4rr&iXX7FUn>m^Hn=mTpBqR}Bn{o!A=DW{WH+BMh z@OIKo!+g39et7RbtuyzTD_6Ags}#NjwddD=n5`0i9|6?cQ5+5}fVNU(Y^PI;3&aOb zS?MBz0bYb zAmrX^<{-uid=X%HuXF8}k2V5f69B-WIaErAs(F2AalcG-4vP0U^Yb?k6+)-5Znm(Ua zuz=Wm9>yrkNrFloY!&xKowT0mANh##&0o1K026i4m0p+HvkF&pOnrIC@;wi@28Vxv zYgJj*zzt%bJXk?vpRG=fs%weqEPWMtiRf=hk~O7zO!omb?tN|;6-edt4k$j?MOldY z{W?Vvw@Ap`)9voGoh-5dwxCcor2TwS_1CPCdgpi5yTY6|t-Ij5_?fkn@!mGEBn zAr8;e7zyge9aGP5^=TZ?@mSN+a#2)`*p=cb(V7@$)fA(Ne@xGejXzSYZ-ICAq|1ZW zyd0!fdy~Z;@M|CY@2m9SiCZalk{>4_=N>hcw0 z)xdly(Ggmc`9qO+?%|C^;Gc_cN|uk_abt5NNN%6j8@k2F(XNz?^vaZ2f^M8jp$IrW z-!yr51JXoYc{m348a}vCN5}Y8q&lJJ*Zy>$^EOmw4`dY=g?Gt!BJnfkE7P3^YRMhH z4Oe>#Uij!{+-B^#$~{*`mW)XVB^ll7DZ)Ih_}1L>TlgfFIPYM?jtL&;saV2wb6M< zCwliRZy-%#Kal9&Df(pjGqY!STq%q2tF`+*!!qsC3yLjdgb}&_`kW{{Q`)CJ!fV1( z6jU&nZY1n^T6}%fdEbI_(evP{q&`IX?fYzn<2Mfg;Q*9D<0rH_NvL{trIeG6+C?V4 z^tSrmoV{Kz`!;k06t^J~S^T?EnY*_Xs@Af$dbm{~E%SH5Nc%uIAt?v5LdH6ivm)tIj1c3Q=28(ao0@~ZGfHUXN(H2=mruMI&rO~^M z`-UB3xJL>P!FLLN49ft}0xRgH!Hq@`_qC^sE4*3>f71jpdOK!=>neuiSv#JMVW>ma zvCoPE+t}A^=q%^8xI=926I_$Zj9%Ip>OjO#yG)!vO_e zH93|8tE>0Z4q!Rpju$y=JKQ^HVynw5D~yKB5k$Z5Q2W=UG+|+bs|yjGceZozPs(N7H4EaLhs?B)xvWF({EgP-bku;_IN+f}_v(FJ z;@{_z=y1hLs2P(&Mpvtd{5z>>e_h=a8SYs$cM)Cps_&D&51PAkHW`~A@cHj|LjRa#wq_o1F<$zp4|BWEj_BR)_?q`=GVglt zqxPex{t);4vrkYO0^BHB3Hr4|ygZ-)DTHNUS)^n1u`t|V{9wXMb^TZxX=lhQ-qLd2fw)d+>4WWoicGS`f zRB=$S!Dd*amV!gjGTn#2lI@FJICQK$0SqY_|AP_VgDbIn8R{QJLIHPDclWrqha?*a zeP6*Mq8)YZLBJ0OJfH1m#&7&chb&_Mn^hH+*+V1(l=nmB4L92zd$5C~Z}(riO`a(U zf*{V)c3G=`6DqT=NCvB)CPr%SG~@mvB(|xJ`zWB6_lE~o>4WVtXk58ig_#Q>1LXp# z*p*}JtZUcl@O&4%3{>q+IDVz_gbu@?=+@djQ)cfWW5mj_Uv@Uh1L2)&-uA6LEQUc^^kb%Z^bTkYZ|z@ z#ZH$-iMMM9&FL{XExnJoK?Runmzs>!YNi$3=c#WZJipQN=PXc~=hJ&KQcOkfjUM~7 z-CJXfBrUz8ju8+IYZQf&6`Wia0p!gvOAwP`bk#IO#qqOb+~87q^AMdR(hR7-yM9$i zgu5V;@4IdG-d-TSNHt|R5_({nmkf(9=prxt0CEJh?SFW(Wm4}gOr`9+ZDS=WY_KdD z)CmBg;xoT?`;6_{Kknn&D)ot zYVx{6=5vjPQmMhF`oxZ|`B_@|p*bO^Tok(}J1=z6ABy!&+B?=LVQdyn!^XR!O ztU1xh`61ZR`QQUM-xV1Qpp?&I(;N)4$(AIJof3t*lZ?wuGt!VZTYF+`-4!t$Hf}GB zYR_NRpY_KZ3qPOaZttSJ%8z6?JMb+#$1M{~Axlatjo-Lk1|1LOqVz_ZI5 zt;`qqe?6?tH+y+3E-a#FMD>1MEK?F|APkHk+9yH-f4=3sqP?SHP+nhm+1RQC{dzoT z&E)iGZL(B1-@Bts(Ml_Urt~RvaaB^K-1&>G<`xcLJr&n)8B`aAs^mBgP<&Dd!=I-& zKrs6p%Sn4~VSBK~>5reYNu;;9uHf$c)T@E^A|=hsMdV1_-cr6FPyFidAFbkt+pS#5 z7fi?ok%QO7ceeee7L3^OD+Ck}^ay?9qxnw9Yi`si39V}(2M&ba(f085~jzYN239`<6eZPtKn?0Gm2_5x84Tbk|K|> z^t{Mh#mxZkON#ytbl`k-%5|1LoZ+8b*H&fI+a*0Z zFF{VWVU%M3js)gRyNU45&~v@Nm0BHn^~%2vXKSL~S2G8_Bml!|eT|JKC;`5JC*hjH z2GtC{TkglWpC3>4litlm%%uX05+kHHEM>50zlAheCo}#&$1ohQpga<(dF8OtsB`xb zzRD_y#7DsUQ1h2M>HmFoIT0V20);XkgFuUX$40fcV_A5x_X9f%H{z?u3hUU3!wz-Z zCugz`m#q*Fpt9|$rk=BR*@Yy6Y;tR$0iYd1{Jr}%Ej%6{b1OKST?yGdhj@jxL*7j=op|je9 z__G7M76Q;6eCp(iGJTf(0ICt8eec3kzX#z>kyQ7=s(} zpK3X)A)eNMec_ip9*5xD{`89lZ2MKD+??4H@U~T?F%6;}VXZ@~)(%qP^baz9{+0!` zA}ZaE@7hL^Hc(}87d|S2U8?CDz7^%H-;Tff zXM-m_p8Ra+4h4U*$pz%z{+N}M7*I9Jft?Ivofq+}e4EUMx3+g$fiY68^FFHC_6^x@#kWC)KGIL>c1r~g;p{!_xbJ}> zb*ps7{`O^#)l)$(AsNI-zr4KEU(2x#OK;Z>gK^|dT@xCR1LTBm&hMJ1LL9Ozf{@`b zBZ-N%BScbr?WGjXM%>HkpKeAsmWa+|YYfbDn9LtNWa23<#I=Kz{xvZReL_zkV?1%s#a#W>A0 z+4K|cLBtiL;kn0PPAUMB_A$B>(?tCT+5~U*rT^?M&t7y?M%FzBkHhzQtTMI&b&D@F zCd#si5gjzD=o45N<>2MSsy-IvS1SG}Pi^g<@P#|hp3r5I>)>Lt@(l>QVre(jF;ri2 zyB58)MkCQ=+gf^MF#CA7<#j8&bKv{F00d3`x2G4Q%Y5$sGrlxMU8P=rTu1mYXD+C* zWz|avaS%?HP8i7ZK1LXsv|N2~{~v)g|66wO#97UJWC;$Dm8(klw0BsRXPCv!ZgsXcG^(8Q1F9j(O=d`s-oa3c=_Sd6bgFXW84DQw``H)^7p8PfiVS@aKNRg3Wf& zja=1q&w#FskXo*7vq)x9!$c^G8Zy4kPra-%`gbYy(7e1#{P0tNZ+`jx9$c4UMqkh8!5vL6G6%1tnCofhU-${KegYvY+<3ioZWo z2TxUPE3&3su&tfnH9kRcxl8BV6Cbi@OXC+vmcxDK%loCX?;Y%eP~Pg~b8}-uNQ zY&4iX#MKgemD#5^egNYd@yU^T3sSQd_RKvZK8}v>TI>9a?aujo-{>Df7{z-9aXhh;k~o;R+}_g+gr2!x{t(Fu zYn-i?u2A(L?rIifSK=nHc>|>=a(UQq>Mqe0F7i<&V1-)G|3)3zW~pJgeNc^;q`nIJ z!F#*!^ORGp+_@jy)dub;Gxn7D2Z7q#ZId;FTuJ)=G+xSyO6@mXn^I~hi%ijIuGxK5 z;NgJAj#58W+P|~&r2Kkv{^xC|!gzk2zR$7gXTvVIyjvc|`w`0uU(9@c=ab5jwQ*Qq zuFdPe4#;DXfU!Gq(;aZl7U_|iQGEG_$jYXqdGa!jOuN8Ss5q&zeqTUX7v!VNsGM!Cf(5;a$kMVL=V(SJ zZE@sD+6ccX5R~`uS3f#>;6U%|E%K;cCE)7tRd~QfSy9Wld*h>`axLU|qJ5`~Vk<Y4&tj4p8Z-+L}0F)ni_ zJk|Rt2)xNXBFO@|CzEXH_9FiI^&r$D$VcFCA6cSfXZ#KpXn5RoS8|bWVdV6{X4Kul zz#Js4?x@Xht=#{W+@(F1g|vMCID^(!)EJPx9*x(|e zVo!Lb9zx}p-;C3Z3bUaI-F~-=kpQ0M?YjG8sgW1gOWs2~ju?09Zq{^2!tSK|SogBy)&g2`b#zPaX?-i92b z+Ry+cn)mQvPmSyEWz_CfeGvR`@`u*LzLUMyKIDSmmVxFZ#81xD4g7JZ8KZ0cNm{&r zOYCmGj@LKnlYwQg4pYBL{KCV+^;WQS;RzXQlOJ63`{UNpckOAa=szN_D;wGV00KZ# zC6Mb0Ed(;MpAq6WmF3tM*!)Gdu^>PoRnRt}B`C&{O#EEI^3OoaKJ-ko%@cwl5Xc|g zi7(ug)|ZP;jWi%oa^j#Vkogms=Y!Kr%ik(cu4bDlkcWT!(KE-_cBrax69kZcKQyg4 zGMN95pmcofsLh!!7&^UxAItdFZuGWeZh$z4=BHGUGO-GCFI z<*!&k43TG30M3k_7%jh>i+&^Dyk8NWGT+{U8r&1_uHWSfL)ii~K3+Ey*^3$imu(HC zE#I;mackMRkc&AX33YSAg8ta zj{slcPHF>beY)I7cuKNV${ptn1FE|3Xh86FrsVb;2B5-xCK@P7mg$O3jz& zY%AC=rR5%f6I1>KyR?G4zF@@PP+S0SYOwu!W?H}tVMH}Ly*Rq=aH&dp7kAWnE2uwQ zTY2f2yhF%0@sD7awpspXH~DWDzFEZP+guGmvrG2lmt~jN(iKm#_&KWI8N5+$;%6Mh zc!#j!6jCWmE_L~rp5d|_-w5vGH{MWPVd@>q8zWx-j5xQvGS@nDxZWD5Sa-~qsfycN%mXlpj2)m33 z$mP>K_{DGZ{XhM-9X{5EYBJbX^iJy!qaN3tCk zGNLEnZD~4U%RkGB5C*Lu)BHTe@v_KPjmO>KV@pMRZ`ZiXST5nr=x^k=4ee%b6o+OC zo_F+)3;4uc5TEH>_kRRwW33h}F}5Gr9!&%e4mw`q{X!}A&3RQjsMxCRR5b!;XrSVQ z&NT7R+#c!--rG4lyb@S*t1K9dvbAPv+z@QMnJlH48_;qTf#A%26nxgaA7!X-NUK%L z50Hk&Jy@SP)IM;8BO~@MNM&GZo+6g(SEdLT{?@inT&p`Ti@E5|w$kK;cGTe0fVP3P zncDT?f~}FOYO)-J5#K7$#^5kti zUp$7L2sP3Ocfy*H;X@1{bdFiEg{k;Vw?cO|U7sNcaX@UK?eg*97;#tMtaNMrt0|dn zp_9F(riS6*3ypLaT+Ot;*wDH654d2XJIl7XR*pWq7Oe5u5R!rMeFz{B%>qw{&G*)HX}z*;~oCUUMD8+_j)~eszRpQPZ$K%B5awf+Yh|RkF zYdgJ#bqw>y1D{0lBG^A0O5IM42YLn2-3Ar+1w!g(B(PLJ1mg?mW33h3ie2e$u8a-( zY>k%xeqRDe@z2Yb$;usO0Q{EL>JkI|tC}pGuk37{p|rE`2GTNzDYdmJYZE2Z!f3%w zv0ba+yhO{EA4BoF1N1D|I-qPQ^_3U1J+zqK}tFRk7KTkGtJYI4F1Au!K#p z*S%3Ou%m&81`PGuJ2x=vakna$pQiM=OAA{xGA#Pw^6}p-1A(q7UCA_iEZTL{^!{fx zLO?Bt!|lH`jX-~_cXE(%c*+*?ymcj`W~a}MD-AEhMZ_J_%5VWlH%$a51?v8*>O9B3 z!c*Qk(KDZhMr#Di85u;4!JH2MzjArP*l2VPmaJa93!R6{N67jrT{&=3n4QM%M%L|Z-afNYVHqSxzOZH1WS{nnj`^hZ6W z@J@dzzuybwt;DCgxeoji@RsUx>eE@szJc|FFS1H*n~|c1nq#r=dj=bB())dqI`!=3 zUkv?WP#xQgZh^4r3Yw$bX-QOQ+3+A~{-k??nY+3K!Yv%6pI>=eF5itj`pT7GNAAx; zMX<+3)4i=55&)Q+`L27RR(>rVz2u&=L~UqQX=3toQtJ3d4qmH1dK(obE5K7k9e7{N zCG~k7?u}lzDY^_53?J)H8J$kGm*Ga=b#1Z=&dgL_wlbvy4KYUX^hTF{Tz^lZeiCPJ zHzcU!h?-Htij+*6lryTY?$n`Ef9&G^5j0MG*>9FFr5#DD$O1VsM9%5o6*?MtD=#?T zWGkJ|zXDw|K>}QO!WrqAKjr>?_VD11aas9xwbofXWe<=&a5e19WDAD6%}?YDhN1z( zx_2MHFqSv6MU!^yF+{qdI`|9KwpxXL7I86v6L|>d!lSms^PG;^@7eQt`>q&dIx3)@RJ+7wz0&H37XN$Tupx* z{ri?4WM^COtYMQNOBdcWbrBxeYD1yJVXQ7xfGUR-lHa<^%?tLD_bSCFxWA9iefJEv z&iH8jQn_h7MRjdceLd*~L6y7v5+|~X%ANclf!w=m%S)>*yl!N+vAsH~6`hscE=FV* za)us{q;unuo(gCk%IU|4=%QTksf*2i{K?{QPPgT{jY~pKYR`zJP5I}%ehQHB*ZB!I zJctD^{MIL>6f0rBwU2IOyMg}{K5rpJ{nrQ|STfVvk^@F@kKUJO;W{|Eg!tD#r%3Xp z@#RKO`c&~H*W_viAK>V<3+5Zhz6r~`4stBHX1)!vw(uc5A1erK<@PoE=^OsW=RPi~7{nc|jt>$Vs{^7+S@dJX%(cW6P&={ip0#!bX zNrZfB6LCo4al^Ge>&Eq2F6pQMvQJ1m*iMG)>GtuDFd_m%s$L)#n}MXR((y< zR9q?Ep&JQJJeNu6&jKCv(P8+P&Gvo%xD_;lDBg0THTvK!E6B$$`qh1izbSJWN|6k~ zl4%JHL`w2E1Rc)Km&YmO^4|I%fvI-_{q5rA8LaYO@>SmLO-Dv2k7x5*x(s)bCdGq> zz5mHM5u52X4RM3a#a?kUJ%V%zv!TJ-ttB)gB`qSHU#6os zR9f!Z93sSW8H~U<2HPPwzklQ|KuOgXRK(|g zV|UI?6~tRuzJ$AFfr^V=Zy+KswgP2;I>ax87GI`J9&qD}$2V>@;r|FqGG)6+M(hSQ zW*-vgA35U=tn}qQmW76%@yZ@DVkoHqOi}(iX>C3XZlR_eM`v0}8?||#L)>oT^ubhC zk@2ddlrF-XB7*SLXL9V+vdOU505{tu;*-_A-?qtQhKC`K3yjNlR>G<4jE(7n$;BZ! z3x}__tN!p`$rBBh-A5k_$6(XVZ&v%{$$@Idp!a8ADGsjjyN5v{{spAMTW)F_hsbso z+Y;p_>B7MENY?Q?ouVkF=-M(T63At4)#2Mk(Sif}h&(MaNa?`pg-dZ{rAFdohSzm7g&^S&eFgJRiyQPgQNWKO z9QU#R2>O?~{Ig#7N`WBbfoo*(efuRzNY8dpwb8d!)I}bx(Dy~Ya|vF|;VHr0b`u9@czcQaqY;q&|+x{kK(nP}bsU&NgZcjtvpAZwOm z=4m}xD;NE@&Mco=zvG}lMtf}U98bvHbHH~jw!`PU1AjwydE9E*>~(s9>)mdLO9^b( zyvQZj9x%r?3;H{JOV&)0j6*5J3w_0ZuSZ`_;77_UBNd16Pjeo(l$Qn(y_L23 z_@j%__rjysU3JB4(02g!$%is!glg2XH{0YhI@UjPL6MJzsUTiM$?K>&Df)MXT$IjLg*nQ`XQu`~o*8L{`sz?Rp621_=QH=IrfkU$+ zDce+ThWU>?dixK;vUk5WtV72UTS5K z#(KO9WC(YrcP0I9Y&r5YP{CL>X76qF`h`@s7Ot>0Tv%WUDA6A&2#Ti8E+T{?{x!y-$!`W%Sdk8}IZAg%4#Y$5tHt~F?~>>Vpr9Q`R(;eD*y^@d!Ls}KVy9!`DlyQ_k?k^T^c zY#9J{?7M?*yX`ncb|5wfI5g{wW+Xnm8bg)~H7nyZzwS zZ+@oD<@Q6aFOU>jz(6|O>TRL=#zcM0^Ayy%MaFFA^F~~l`n1-~Nwa=MZm!o)$g{H} z;F=q!NC!pgo6j$(!7Ibi#)Gm%{gndtw%?h~ZR9r2mj;JdWw%!yGXeZ&XQUA5KHrh(zOb9H5yrJ5T%MX}UOo^~#pB}ErN*H0WGwSV; zHR%_1OG&$-rAgTjCo8d~5m->siJJ6HV88skxjpw}*od)v^|xHXljO}{isAEDbivaG zce4QdIxY&Qe89`3DasC;pu(hUTf@Lbi}7gT(?DWrStWe2DuL_GxeYH^x^ zZ;<-y(0wKls{c`@5MLV>@HjL&*3&p&?MTD6DZhs$vq{f&dX*YU4)V)8xQ%Ki<^Ah~=}8lTHF{Cmpwr3|gg> ztz~5CYi+-ZrIUN^GpY}AUOcZR&Ke`yx^;dr1eI6;7Zz?f^n6chGC)=u(V=`%zSY2Z z-v@&%Pj3$M-J%AEKGVq{X4E2j`94nB-d2Hnro170a$4ukMXcj)BbBu1iu=RQ{@9?? zM$rPJ9vl#G!TgER&|pFN6!u0sZP%vHwlGlRJohFjI`La z`F7R*R-4%}WcEvyCP`~6l2pTSZw;_@rcxl!%~ZoU<-SB+hD*x6COS3doQ{quRFtsr zzCpU*`cbde0Z^ngDnS7a8YhZaAiCTB1z;ABOn-1Av`jcd?(3x#Z+-tdG=MZp{4PGf zdI#&@2C1(NSCe&^FPyKM0(_zKIF!;}^10!i$@*;sZ!&xb>p@_nj8-J@TVk3XBj>wi z9*+K%7XDKgYO$h_%U61dF5-r1l9!frBY2<1FtBAddlBY@f3*Pd$))xgTyz7}QSgOxnxF71G8 z)!s|4ad};RbKl}^Pv3p8AVKH>r=V+BP3^C3vHbQamn+ex!kZl%|8%3F1iN*|=+-$= zsr=D3Ai@YwiXbE${%F1jovC+$MaK(*e@zMS&YWnwr8XRAO}g6~rfzXNGaiIS9-tsNg&JyOmRJ69eO1yet6 zytmx;a8;BXA6*$7qu0!0#w0H;qDn1KOjaoAHkz=lC5|)egE?0rDC`vP6ye5?T zCDh)_Z##jq9qG}+7tJE~&?+)g04!fzTrdrf&uxBYCjMIA_q``mSRiL2Iq|QF zyPlycUbz(z=Q{au_YTwB7v5wlN-Vj}g{uWV5_0=7uo;>ji$1Un}#bos>WxD+5l!}F&`=2!0>B>|ZkA)aeBamT}#ShjTe#n?w_1V@-k z`UII$bMQfIRRPp_>??(=5Ju0m)9R9a?N<{t2p_Wp{#x=~iHpe7cWpTM^Qwtmk;t7K zx36&Db+4wL`TOPFD*t+F=gQqr^1y8??cKdFD)K@WjPk?{8xy_ONK*i`^i|kcp6rM( zvqM1}CW&M%hx{kpG0}vv#V)@4SlWvTo*GU@$;$aIrW_yaegf*SnKHZ^sJB6c_EF~! z>-}MeDB*H!S;Hsc#=8jRexH%vD98+-a;ybzd5%Z&Lp96G}ZwNXiNLuSwvoU}qNgJy1!M$Ho>3`q#zUsHOZw8CsmB~+ZL#WeDX1yaA3olMic@f6#5#ap?y^i5bQ0P{t4GfOp!AvJNJ3I zMDIp*LxR5h(g^exaCjtd_|{(ued+cn^Z^HZU*QNn+zbK(Qkjn3n8?P_?q71XESHC? zRHjNj-Cc>P-k{H8P`orG?7YT~&E~3(lE$HPlY)v}?6X zwZsA3?X&d-8Qwp$P?KSSJeHjQ(G#8YTiOnp&O9^c2HG0DYGm^XcnSgtzK)C>0nqF{ zCajj{D7q|38F4iBrjGZl8I*duutYmVO1m-gzRy31hnn{CA3=Ts5%%|A-fddG@eiLFB5nOdyF#G{b%7*UF&V3Dd|F0nShGJUx%4H2Awzh#S0`Gbs8fiM5ruszPONM z@P^bcz6iPC1f<(SEzDSIpNUi%)3rDxS%4am1FVe}+@22zySzS6_TGOz{>guH6>%gD zv&kk|eN`a2!>I)}KM-1Y zU%#?o_mlWo_(}=oBT2DzS6KmlC~9-e<>gu4Q=OYUVJijGbzn`oG&|uQ_vaX*p{9^9 zP5FDHz(TFSSw+slxXw?`nDo)-rr5OJglWyAtt$b-Rug6DIQECvBxpyeNlLL>M1mNC?}_f()B+Y9+wUl=WYKS!JzdAOv!zoqPaVM;LW5jb#< zv|JY+mOw{9?^(_2)kn&I@AoTraj%5uWL8gYXl*@JkO|ClGhKfkQcSaTp51BWsr2dp zBiN?rCzw{w+w~<#C;q5Me!Xt;4a&FI?xYj|CVQE6{~5-ywe*xS58)%urzR1SUGDls zFmw9txBn1&(vtKq)fpuX+a9TeI{zW4@kCgjeJ-Z8zWZk4!2fycgb=Oz9vw7C@5zMU zuzhawerVy@)VVOh+=ss{8h_-Qm89D8zh?c%`3Ek&*(Wkb$(TLK?DkGCA>j5cv@}0r zOUKMS-5cBnAMA?}nj1U1BU2$!;8d5A>$j|Wi_L)B>%V8_q@@&mG~RxhG`Lq|RTr^y z!d0>pKPYlF38M49W5zlE<#v~wlyDx{zOOUGHup(WXd_*-Pbwz{9luHu#pNqo4-ZdwUo8~Q*(lF<0Ka?@e7xgx5I?ZnN(?Slt8w@o zGfXGb(bxI{v3KMJpvWOBbL9W*WNi`_l9Om>$k9quFQ_wLDgzh3}(*EOYdW$z}_pl5Xg)2*RIFZxaxUFBgK17jiv*sI7tB+Hpbp{I!L zWIJF~w%iq~9xZYrucsu($>ARXQ;t3twa0T!UL^K8Igq=og!&y5@H#x8VPxE65Jm15 z7sB8S4caw5AJ|Bmc^n<}+*2)dDw4FkrUKHB!n9br-4@~5DKcAx=q00Nz{{mH>gsEw zhR?XhjqM6km(Ucoc#Y~|ckf~$+GCLCuv^MV&1ZilU}X2$Sz0x5I>NJ33j-2PEpmz7Tal0sRaY^-1Y{pRRm1B(eiQW&eRc8=vvdNB<2-A1pp!vkzay=V0oR zS2V2x0A{n&N^3mD^=j91-Gk#CxhBvcGw4EJU`3wfaDBxd((^wINxQrHdXYBqpK4+O;x8!dmsNW1@AUl{57>;f{yRiGy z^y=4odJPlAaY?`o;e+wyi|LeAN9|*5$Q$m;;x#%2M;rMhl{2+#r}fBIwhmJHA_(!S zC%2;)MZDPZM?YKE{sNiRY?`>jfg|(qJGoK|pTj@+!ELm=k1U^uOEh61&X%Z3Iutc-YW(!ZUJ^esxFpXbr?gR*-KBKYC`h>bNNr?7-4u8f z>nh6YLVa6}JZbAG!CrG6^MAbEdVeWlBuP{GJ8m#0`^TjE;x8T9^w0}&M7qwLjh8=- zf(B1lrM=~ke(M8@l*TtMq%xd-M{aeY$ni?@LX9fKUb(nQi{mfm@$oDFuuL()lfQLM ztDGT7Gj=-M-EWYBQDt(#(YOZBzM=f=R(YPeIoPl*MkPt|FZ!)ry5F~`d_#lBF84Zq zLnZhGR^KWTq`4AAp#8r=)?$Dqm6a+oUBthIb>IWZDhZ7LnKu?Sgb{otIP86C`L|rl zE5!BOto*i!ED3_K*BjfoIuNl^hkIJkr#=pe;->~1m}WB|-Ppmlo5VRqT5W-_DMT7kcZ4gOnX+G!M@CvlC-P?F$Q>?hsa-SwyWL>@ykmLx zL^;)Y2$%tvrKjRLDvk=cNdgEHMw3jpGGriKE?Sm$q`zyiN$*q#K6QC4V$1h*A4VRK zWoRGZpE|5;0yfA`2d)1}qiDHGp3x_%bbnFx2Qf~Y8+C^N$@_8E`Ot^EU?8b2kG z0G1N3X3*d?sc_pDSa;pqJy?+Y3*w>s5t-A#XViy`M`M3qTG{ISBba5|BdY7{#VHsi z3gYJ+Ycz(lrhL5E7eh5UiGac(*kkyI=rkBM2JS>=p7k&URp@Vrz`j-w)Rz4s?225Q zu>&oaFwf7b_1*|rZ~(SON34@moDW<(z`P9k%YX^kE>U z=5zV3>zxs`s>5><3THWw*ifdefGx}y?e$mSym5{kTCzp1D;x7#;q7$`J&dtqefNGQ1`ePZ$yqI(cs5i+*((~9+JffEro-Bd2L3-|7sr@)^^B76b2f3(fsyW`h;zh6y|ABuW*>bb2HhNPIdNwxA@?HxVSZIu& zr+f*Xj2K<-BL2|Ews_yjchmtguqKk|7(KeC9K?(B6Sc2Cz6RqPTwV~kRJQ3DN6<(H ze5Gtubr`=4ek%V>eQl2=c@bugHPiOP#_kVh0zm;Y(&T3N4#X>!AcO(oM%mHcQ_j%$ z<=--dsWlsPM(3%GhhP$4mE#{dG|EAyTyS$UEy39U4o#?0gTW^$d7$G%1j^;Lk)O6x z2!2h5)mpjEWUwCm%e)yf?($o?l5P#WIe=R7(*t_9$F>{h?%NSL$^Cb+e2XqTys{e!>3lZPzO%v$bYOckjH=$sT=AH~5vH*o_gapU*e1)QH%TZj zShBL{1DFlE-$wKte)HnZeNWn;0RY3Cj^|;XIp`cN?CYI4^LGqQZHc#OPX2U}P>rVZ z_*D|UWwm4E>*-LhEXmt6Sz=QNRs#pIM)T{OW-rM(pSc``?%9rjgmrw1D5m}IQ zov`n0xxQNwNRvhLoulF+fZj%U!%msT>h$YY<5Ahxf`5a;*;nmL$W0~V;G_4;697NO zcbDSA&p?Hhxq5Yk)a~lOZ-@5z>fQ@6!J{{l@fAnR*B^W%dqzX!cmUFqFHFj#J6bVK z;WB5&mMtx5bK92MgAkKR4W=fIvAIV6$@SQ$3@w#(oG%DN(LESKh5OzuwiF##1|9Pz zFZteFspxFv2|0PR;D{22*qYKQ9FMKt!fBhQ#>w;gNmZ2CgM#bF7)L6ES(vy)3S#d6$ zebo+Xu0Z5WDERlY=Cq8F(LqY)7PRvGX}Y0cyL?1AmZ1_BYDQ&pKL8wi`X+-^XwYXl znA763aLe*LCLu@~4-E&#a?uFf@BbA3ng1_xC$s877j@J*cGc&MQYb#NQ;P`0^M?y_ zN0?8ln9Ld!(VnREU&{OpffvsUa!Np^s*frJn#|!q6qlC?f|_AoGSj3?EPg0qG&^e& zY|t%9=}Ow*`+c?ZbX_5$Z7SZRx!8#D|)a^JK2&oNouQFa;C| zzEF-4!nG^nP=}eBMy$SYuX4_K<#36PYZ-Et<6RccZOWr5`GB8xbC5umt^ZWJ6`d$@ z8rRYvT*+9Wi;R^A@OqRHLOWI!Op~g$v6+7bt5j$fw-h4+@JSo7fCbt~CvDspFOOTW zOT>Df@^wt!xbv0Hby5? zDW^v!?VZ=4a@%0?g%7WGIMSc3QTwbYMr;ZHs;0c_Dr7dRXMc^}K(`N|)aBdwpClk& zk`>Rxq!J&-&uj>&*A`;e2K8pvadmjW(C`wqpgS#r=8!Jr)9>nuyMfKtG^0yvBKo@$ zeN%Vi*I^1QJ06}N@iex@&hj|Fytx6V<=Htyc++3uK0L!!75^Z(!X2s--MY{OK_ruX zM%c^rIO1k9Hz=|WI;H}C+=}9BCqr_m!DU6akVzThS;E2`m+>6W3Em$R3K#eIFF%sMyX_)Q3G~KYsmpgZgoFFAJu0{o` zjUrOCQL_6N5Tw27^XosXaaC;sFP`G=Ci<1nj{PF-I?2B4H44U&OjZk8FvZt_H?r#3 z6K~dXzN2q~bLgOidD?zBkwxwcgxyC@8LrFqy*H&Spa8xp=e@rZ;qqA~tWE4Q4K-*h zNE3M4zwqjZ@?qEy;+@V8x0xFseQn9}xZY0gi0FvbE{AIJo$6HN~Nol%!l}s5IQTwX&Q%i0l5%6~I;d?rur<7m5N74Rg!G-ST1yS^}x4sl!ye z@$r)avE{P)nO?7lw>juxm5e2-Zzd0C=;RUY#q2Q z@q9>7{vlp}3indE^VzpdxVjs(C8fL4jcaHD{F-GJg&@>?O4KI);ztps$Py3x{4c}} zQpI_xc_O1vP(gf9Vnb5!qy9^k^V`uzm0(U@r%>>+66h?}+Q%JacW zLN>O(s>MjoN*Y(#&pBV3?LLjV_P*s-?Gl)0jd0M=@x@Ngf?NGDl>a7eD{_t6Q|fipozUH2YM?MX`>~2I)>c+S8&5WM zm;b%8j;HcIS!btNi8nb{8x%QhdK;oS>HCl1)!1Q+RTtd+9)}&=tG3~zP!YUh>8l?f zP1!+K>?H3$g7}w}tzb>06X)$UOH(Kjo25N~pY}}JLbQi=?fOKO{8oi|*}Wvf5Bn#7 zQOx)y!Z-5)_!7=S-qs0J*CG79=I{V5Qu?XVJSMMPq^eC#qrOQ~s@!gLce6;7tT7 zKnh`W8~aZA@3IDbNQ0DZs-(VQg3++X!?10GjN8@H2mc;UP4#Aig64|)Als_!A3;qaIm1vB(EdL$c#1bZ!IU$Ug z%fP55OKNH~bJ<2i{b1N0a~=j_&FX<)2Kq;!0F^|?0%Vz@mDaw4_mS6Pq82N9c=>nh z&B&I|!Q=RBJ;FbY`q4Az73koRtD470I01@C7?0bf5ijEOVpl)E$6gljAWU{W>O7G3 zAwWET2e1{LwJJghJrcM;$FX!7Sa!)PlUlH$LTVrT)Gu#Gc{{8qAuvFHkgJ(FU;HcC zIcKa;{L1|xPym4Zq<2AGCa|>vPi}(6yB=%WPH;uJ_vSha^s|r~`Pvmq}F}_jm&@7hRdKjhMPwa}S zQUbc*wPdNnZ5u7NRVKm{irCq>4*cE2GQ3VLHd-eb>n9vIof)#eO`%3lH=z$|0dUo39*qIVl(3T2bwB z#ynFU`Fk4mG4`Xc42a_>BVu6eak*Wa&snTC+oHQn!kkoB&;BSmax^ra&HU|_A3JFW z{?kfx8*jh#?3`X%sB>p`9f#n;$-n$pUW_{;8tcQgQSMzmzoy|!qPx7-iA6tpSH^Pgt^m*nit5Ny)49m^m#@m-F-HMZ0tf%e}7keB*)?z z3+iV<(h5G14~}Mxy;UoS zh%@(~Odb%=RpsnArPq*nMHaykQ4iw==MBPf`tv>Sug~$a&%$|`T)pnMM`+#*N_jhHPeE4Fbj>8S`MoBRr^ag8jP~mZ3hpY~drmZ}4 zIV0#fa%s<&uYcDl`2jyz#CtwAF(tk@1&QTIL`Pf+j2Y;u$gMM3S^M-62O4W>ppHXt za!ldUDFadcg>=pM9{vy!zaQl-2l7N?@4(!SL7|${64TexAB{h+LIxOKDi54jA zQ+g*7Bog;U3!o_)5v#wrdz(?$)*W2Wnm;+8~X*QibP$x~a%W|R| zI64Y&G=Vm{wO12?{hRfy->R6JCZeSLXvOpb0@sV+A=g++^jXqn=IvA-P8Br&^;HxR zk{{$SkQ=r*iTlej+RsDT6)`lVrvsR8Jg>2Q?pAS-Ev$^EEefL>FPWS5sf*scplTn> zDg82#u8s3*xWKamXtMq1I)wRw8XD@sIqT_90A0BB@M0zSi`qT=aQY18b$wZA6}{+> z2#m{W#}_U2jHuA`WPP6Q(FEI7Sfqc`1N;vfDH5GX7V zgJa=N*Aj_&B9lIW)$9HElneFx4fn!k1IeBjGKv&7Tv9J>H1A-Y=ZcJ@sgG)A?o6LbWhs{ zSbD{@uLgJ$)>jt@)t3EIvchex3_YNeLEmmR^XWyDFBK=MX-NS%Z#MN35^PO9Qi-ar zqewmMU&B3b_=A;)a1hjOko0^rREADa;_rz@duV_uB+%gCm=S44=z<2v`>Ne9uF;Oo zwbDVatQXQ^&}T^N`|ma*R)|RwM`oW>EEs=x8|+Y z`TE-pu;gn4|5K#~qw$k^#R*xX?E~n6;@5Fi&73gN!J@?C^Wb*jkf(1$k5NzORfl`e z0CwnH2?Mo`?@tdSmm8G)PPVmmxs+!ALQ1z#UOyH7Hrx-coOA=E$52xVrwxy z+NLm|4bGnebCCYuk0-kTR~pV&2?uh9!bCvWzWCv<;67PSlagPkitQ0-%)wj2mt@Fl zgOT|gY7~#KjsG=1bIGB+ipSHVsB{_1j1KZ^)ja!XI*ygcJi=RH+NrtG4_qN#JK9rhi zh#%GN8V@+VEDD8lnu2{k9|VlHujtxM`5=V$d^$hVFp${2D|c-Iy=+z>V3S|g0TW>{ zo10nv{0cF@LWJjS5(y(+>Cp45So0a=TZ_H}F7o+KL4WV!tu9}-*CVY7jlROminV6k zf5*%%l4v~#TOYS3)epcj3IR$`g8i`QO&eZKQh@p=V*&w$Kv7^JZ8Z|xRUgbRp{M$# zHXC=Y$T;)t6s$}7_0P0Q{|y5C*AmM70>?BnIThtnxOegh$h+C_pJhVfPRk7S7DCNs z*G>HA2QUMnO$#_d+hsI7Ol4b@&YSB28V&tzY4;j@f5*0<{n*A7tT0{b-c;gOM#%?yur!G3) z>ex`Yi487W@vAIF7pK93AzlTRg$6jq9YK4U=ODuWsnnbv?CLj=>#xMekTz9!10x&% zZdIU6s8LS)${|m8!p(h$d3)lwzCHa%cRO8`^$$RkimuL;X$if;ZP-axJ%TQrMH#3S zSK-UP?6^A4Yx&2WU?{Lg&Q6=R(7+w8d zitgRWGkI*mB{rt!N>L)q3q}okx#qAn4LZOz9k)s>Bcs{0$h+4e;Q~x_P&B~eADzAQ zv!)1+)DZH8Hh5F@_QgLK{oiHb)V-^a?qwbyhoXMHO0CAD>N@97)W1=Ju-7x8-+bN(xl^B*TDz=o!D$S3je87>hon z2snSC>IqE6Mr-6@{f*yVwTC~8Ru=&&M@QGDkYjXusRexO+|&lhU#IGFnv&8X)}yoT zO0l)~B9!lOm|Tw$j#`lTaVEo77!EUS3Shi2Z8iLQklFB8+;`izId5E{hX=(h|sv~Pgnz&Aqq=8QQ{^SsSNiKE{xoMN)v1ry?}qu;0waVw>^eqG9xRIT^N zA@g4W(k&5;zuToEPIeRCQC72LomOis_KK5 z@1==2c8C-`SCgtVQxF;ksaaGFeMbm@hJGm5q|Qkp1kX=Ud8LD8I;TfD>#(2aH0J#U z%B{u z#;6VO(sT;51-VVzbYE+1|AX0J7j3@vtfq0=F z{-Ge)i#xZ`XAc)IMZg|^I|>{@8})82KUiz^9_IpvOS-m#Zi?g_Cv+2cO@6^+7UHEh zw%QE`&`|BOr)O4{T98{uv&@Ta3r_S$J3KOg<(V5?4;4EPpiOK-(MFoTO^z0dX%U3# z;}ej3ofA-L@((-em*0)z8@&=g5)~_!c)&LOsJH*MhSfUCvMxMaTK)XY^=t3q4!!rn zqyFQVy-gwCUdF+jmABJ_g4E2`?GT^}+^!Vi#Odwk3a zu7-VZ{C66*uc@jIBt@l%4jY#-3;23|$#uMpa&j!D3^@Ug4l#67POvZh@~!|H24HHc8yM777ZRA)g0pHTNzDgKiU) z4T9g!tQL_rtRb-rV>XHTs48ecwO0=2kE!rhnGHZ$evCP2lBLVqJEh{@Gt{oxT-SH( zM*lK%8`lj_+sTbHS>pV3>%33XU%qE^wTugnY!z2jXs{&sN485Z_@;R{bmaQJHT+gF zKaO(@^0Cu-vLM`i)#%9Xclb>tt9w@1sTj*oVnHV!rFT<&DB2>#qdqW6fJl z#Y&{(-1%^uTs?LdT+~@%zc#;Gyvi|kemENb%JfiMw1+R#veoRex5d>@X(MO)d@t$K zn&8RCpZ4#htIz66iCwZWxSbnw|I$iPe_D#|_tW1B28w|ZlX6XHhNS_oCgh`Wx_jxN zq5K9lqnw6Ib?Q|5hy+=#4!%6bbnVPnZIE7?7MOw)>vHWH%^RZ=_1@t&d+}XtO6YUrCo71}0ww|O~0Rz&hG=JHMfe^e) zJzi$*Mb^>ND^>Z@L9@Na<`;aht>Jx|N(|eR7mWY#OAzmuee%chjGPm_tNZM^zjfZ{ z<&L&IGyB}>;f32h;#iT|v&||DFQ}CuA1VwZ4Y(4g&zH<6E<4#C&2nsr7njR|Q=dj; z(uucz1q6gEt0QeE8{GH~khuW`vB|vf0e&x$SoTQz35tPiasJh!L;EoOLy9u z3x3C!RpE!pqAn?__9|`|?lOon;8q&lGwi$VGEo#5FsU-zT$?@u1;anP8g}pEC+YjG z_@5m=AiVuImQ;_Mi)s<_d%lnit`XW_&)dv0|zjRcQef+nebn znOo7@_9UzUsE99PxD+Gws950PBv_5Ib>Yxu*M>bw3L@h4TR5?BAOKIlS6D>wVk#V* zZZqmT<|qi9g%^b`_>!?U?~rxS^JF7t`GuVZBOG=%OSG67h#HA9TtDgQy6m$HO3k;k z8SKPt&)+pl98d@OD%}~Tr%?~uS?B+b5@F3p&_fld7X8~+noVBg=nKe8oi(#}>C=Hx zztujJ`LeZ3s%Fz7*PR=0X94S~&HjeHpQI73QfE~XkUncs$fDZu#U`^D>@Kpi&z|h_XxV?AM+GH;j`2JL93~sJl76sm_ zC5JCNd>4{GSaa6x`|$Lt$<}Lo2(fo&vI+U*1F>9q zg2H-pAXON7^QF|Thr5vMkBDtUL+SDryq3FFw>-X% zs>{2~-3YYdAUObp>#X)81F||l!7bxplDcq_ksa+c1iuAVg?*4xwh6M!mF3e3IGok@ z|1>HF55)@22DcE}D z1Z{Xw&CeD%mob++j!h5|GS`7kuu*aOobLQYE};b>J)+g=Y?g|BAeG8#Mmke?7FaoD z=Cg9X`mx&~)PjbE(QHPBRJA^O>w*phsY7H@2B%$E24HI=?U((P;+Zd<`+C^rD1~#B z2@rF)wUR!!H99O~epjObs>8@fkBj}lY_0i9wN0$oFk$c?UHSX_^jXFyGS?Ayu=jZz zeNW}N7W&qt>hm2Pu5E8G^a_T7?pIV!aPl6`0NdGT>UljBGR&*4CqzkC%v+hdfre7R z$j>et*EKRmRysTT%@x`YHt0Xb1~q1^n{z%CzEge+i=3t70p0v$c`yUhc)xbj>_pyz z3CDjY+E(--TF$Z2CiCw^GapNt-*NJm*cg)=b=BopU6r&I+5biXakd>e&SdU>Gp?C( zmto0@{l`i9yC(IUCsXUj+~zji^b#M7d#u7H&9?oDLNtpE+ha355`S#6RO{d7#A}6& zHw#49#>+en3f1c@<9aZ0qM#0a?e$ALvGlJ(yrh3##pcRl9HMvS$-0<(wASE%dhKeV z2RDahew@4$R1#03q|OhqO1L;9S_|##Q)uP#sz)@m6!Twq3%(y?4k}Y|3K5 zo*s7>T;&T!j)aAeBEyR#Z8FyF8z=q@B05HmHeGA?>IFngdni9Ivk&c4SkOu27lGgHmA2z2Uv}x+uUrP`S%DG z?+7Jjjmu7*c^~ytLU{?wxnk|aiY-tN_rpti>z@n`>vmhp(8x+J$o$ky#5M-49C^Li@fKz}1(1~naozxK0u z+;$NQ98(&44!0Kh3~KU!)|Ck*U^?(aUddD9-4h3I^y5t&@{_eL!+tKAE?I#*E0y3N zbsARb=Xw#Lm{bI8Z4O_@e1}W)XP#RC12ex+Xlrx|gimnhLk8|-^o1Fz%K_1{IPFTa zUb!jgI0cb4rp;}#%fn1!x=iN|*mgE_B>GsnZuMIOfY~Ic?xn5QP6M+YkDcD0VsZrm zK(bNqP9hq5E<6cVZ;DrTxp{KhL{lo(EfGZ&(h`jpfF9$-grVRdX{}xm4D~)@g@Zo# zZxLy5kv${Vo!N=Y{L^OR>r@hVzC)Y0S}W#ES$uk*BEr~rqkO$6%mnY>Y%n7I(K3yT z({u-=_$Mw<87Pfs?7cY)0bd=~p7%9M1@iattTwl(_dvIOd@)N5zQYMCZfRphhs}3b zY2cKUE`*gX)G=QiymEgWTHM7%}=+s91YWe|LDea z?aRSoWOo28dHF9Dz2fz7qzM_^J?f+)jHW0QZ3oT?@J$!E#htAVpYg6Fr`+{uJh{A? zlV31zpgC)4Hl(>QK1M}cp1}}{E*NE%6EOR5B#dV$r({KBz63XX)cp$D5kyVp69Tb5 zhfGi1z8#vlrOC-FOla|i5;{lDcDx2NzVApntgx5T;_J%>zoJc!c>mE|3*1{h%P6$ z*vsb|r;KKuhFOqJq>gfdJWtTu7R&db)Yb2=EA11&HheGYm?Unu?5K5ov<>^3`bus! z6#vMUrO}r=InCRl?~fjp)~NFm%4=j9X3Zou#>>9B+*~CxUNIa`muy~b`841z%OjRy z)7E=-WgJqSQ5gqwu{S>cERC5sSG3b*c@UO*oNunbUeLMh5Hq&YP@m1SSFU+znZ_G( zy=u~K0N{D}LSI{#yIeaz_xd{rotSTXtP>YLX+zdopYOi4!SE`ZLnT9XFLVMot5j`(8khexAfpS7J5FoE+cnd~MZ8U&-Xln^~A}vG~cZ>B({qo4-eW2cH^WM)%K} zA%_{$M^1fy?w5~Ex7EeF+hkG&fQRX-Cj&ey7H^FPT~_n^qvtL_Tdu(;-(n;$h(I`r z2jyhHE|1mS!Sq1cXiXwFs{GXUHuPg%oOMp)GsfBy;`34?Wws!9l>vaV_qQ+N$7{a> zn?b^omW_@^D~VC8v?7mO4Q9%L!qivZez{>UTq0eWiVI>KQX+UPb~^KHT_>K@65$(+ z)0S*3~Q4)H759lauRjM^GAVx;&t zSM}G6-4}so2~)TV!2?cKN7ni5hD7lW5e`-i=wUlC#~1qYIdPNx_&o*^xvzYYdluu__({qd`rEdz+S&I#nQJ^#>=**E};V*%uul5Y92G43A*Q&gJ4sV9Gj{)AV#wZ8D3KRu%Vol0AoG zsU$Hu_s36{!fx|*sZ-Tsy{kK{i2>G4`@oSKE+Nxqv^-zOiTLq|nTxql%n|8}_)c{I z+6Juo=@&{gLDp*X;7OO+)~5fPcYZrZ5P#{39gdkl_b6u3L+s`5hNDRELU4W9XzO)G|INR9&h1Ld&)VjL!BNx3z z%Bf0L8jbhR6ttN&h1U9~;n5Z{#>b{LffUI#YNC^AWbctII&tM!%_=%*G4ns?)r@vx zm7)0gbysY0`|@Z!=X(92@-oa%mE4#wwbkv=IA_&?lusUDq<;%$7furIj#R*e4ZO)H zeqLZ6Ou=Nyh_G4tG*Y^vN{=LH8koutxl8?GI=?W=|L9Cx45PCJoX)H*qG7cR|aY1?isu=-N0kzfOkOPWWB0_DtgSy!Lxz z-N1|?g^sbEaQA{3BWGkYn8~$H`o}KM75KXw0Ms#iKS#U`_V;&P2DS=k|us)8x<*1kUn{)s?8YF=vLgsJs{e@R)*JDld3||oaJ#Hn&sF2$?Tix0^x7ZkYZt8N;um zTb*3JkB%!*^j&_V#w|kaCR|HtlKndF!6Wfg#>+xJ%`0o*P?L>-GYHGhzU8n zX7fm$cD=Gmy38g%l_q$IW(=kvXsqJuuOGZYJwV+x0PurQJ7fMUsT8-+|6+((XUOlz zgY{2$^v6vI!%I1P#UO8|seB!y-(O)}l?ZO9uQr|-8z~(A4n=IZDX1dZbp*HV?m`rXp{teE}QfcZ1Ue{K-!FqLa z_X64;)~zIUwEf8;up$=#HtY+e=4Wj@?_Y;osQf2-<1)_mxb$SIET3i=30_!aoZbVO zFsU)Smtlk{e!=QM^YxMEgY7F_*zw_>JXeZ3-iLPFb*mZtA=jL(5gK) z0%$zCvDlTK^Bp6<6^%Tb)GNawIkj%K>P0)`dU`hBy?Fmmm{3LsKb!1({A&niE~9dq zCF+BFq{r*xp;_>Nr9yM>L5;CL?VY~AKl@H2s4JBXJ)efIi-{Scjxon<%yN4cxmPlmSWsG>oOJgOzlu07&uv z%O)}H`W$QP;B(ub`c3B$&bI1=aDePoLk$6w83#RhNrSJ*`_7Sf^xBDSBiC;DWJ{7B z)@NNz;xxViJGp!LWX4$iLVD=*{a;L)zL1b{pbzn{l5NAQR`YVLe{{RCEs3!VZ>-+ z@F)RCjZjq6flYS{55c}u$?13QRLuC9$r?ZEf{wpjgx}iC#8_eIp;A!1{$xW*CvV{9 zjgXg8p>GxLb0C%?li#;AQxpu3t9O0XE3S2kp95e+o|E1tlOdb;2Asy`tMH96gS9`! zxxzq+Sy3-~jDEQM3fBJ4$-*Riv*bV>2)n}|=V@tC4D*m1C%r{TpP;~gQ3q){A;(@IGZ_j!yL>O>Su;h-*UXp8W<$XkR%)E%cxqEW`d26N`VWCCKnwMsa3?MpL%O&x? zhup&}((ACEnVgH?QyKUaeLsrMhuQ=Pk1~7v%4zO&Huj6HftFQ7d-yC4E#-1d?7OG@ z>fQ5{op*QS+CFN?i-@+<7dL5t^^|^DRY5Q97Q${UJiP7Ive8z^IR1S791mhH0G&jd z-iVKFKL}+>`)*fUamdrb6Mn&IV~53y9?b=*JgolpGg$U%f18YPgiUL-67<=Sd4zl5`AZC80J}{HrLiFoBM-<4Tx%f<-o)E%!B2Hcjf;gii*E zLg}MkJ0SANwPW(+knfx#1)0|eAP+TEtbj8Ph7N5$_Q7W3Is5;;bI!gtJ>>@fVAy>q zt8%HuGbI>avUNJRR458&{VB&AdQr-!RcmhM0rz*OPYV$-yVZPLVxAde^Yp)H=&_&- z2a;Zki5#!L3mNfa+s^exoq)CW+7(u#BH;R(hVC#7Z!}z+LQAiRU+(`dLZiQm9iCP1 zl@pmecGl3}e?UGN_030`39q*wnIL!R%sj`c6Xkd=?x>r{J;REmzF;Pg1Op&68KH{3 z>J&bP%S)&9cn9t3f25d6qi0yKVV`!6hA;Omp~^v8rU&y3q~e;;XOj&{;rZDAFpHSb zN926lo|?rP&0r8%0#$Q0b#M}9(o*v8Vg}9wT@~&@PggVb}r+2sgSoJkK@lZMF$am zH}1AGlG+LU@3A2x&uNQPHH@;<>;Am7%P{kEaj$bK7cPS4g3v;A@&M=6{YIp?xmnBv z^(7B?_mX6_W-tO;AA-&ln(0s9q8E;SMV}sjo4N?D>CD3vXlwqgXZwW=1C z6ai>)QTSCFggHZS-oEF;0Z*K3sw{-iW6kc&x+}XA|aGTP}P~CaN%jW=*%>yskO* z0a|-kCG-N0;4cewyZnp}$fXp`t=1R%f9CIEd4TSrl~Q@$+i(`BMgh{u@YZUoO9?Ea zd*~aq$$mBnEttD^;i%NwZ0D%Bcn~mw^!P<6G|Jv_D^N>v0zW3-+>qMYRayW^2%(09 z!t||aQBh8h)Irw`sN{N+d3}5jRIc;K7o_ImaideOwj(yFxF-ULOLE81;{GB?Up1S= zpw>EMzGpbu?C7ns8>*%4uL2qx(xjY%SgEtoCF96jLrE?O&$e+XE}&yBlWb{b@hWEN z?PMhI#J>~hBt>Q(f+m%A~-d(g?yv&+Wx`h=Bak;^@q z^0HEaA(tfcnd~Ep?vcLHYX9hL4LdTylp|ZPs8p*O+%pnE;3}O=Ano@Oi#NnYU9H8FmU-g8++B@@qntyLrQ$PaTfB8uVo!2{;^l(W7BfM#2f?(f1ve4)PsDb7ubH}#! zZXB|nJ^**lZ=yL`kh<%I)=i7icNPT1(yh+P@jUE9ak^j4MIu%uF?-$2yOF;t1cJ=#yiC$T|oMjlS_a2`t?j*L;U8)kzhR zRKn+GwWTCe>)j7wg)!?(-d7T0U1Xcmvb8w@YHfA9Z~S%_x@^g)?xYCU@V-X5;n-M! zU=(@M_~^R10!LiB%DhCB@rRf74d(A}JKp_AcNA!ozx>r}L5IoJ5P_%X6l$QUR;)k+ ziGf^EHm`o}z+M_xS5&h{#w{{S%Q^K^E|-vXI<{qiI)xG;b3!v6&?j=Y>Qe`!cslN- zvmT;-@hVP$H5kF6$tH37I$Vu$XBMKtX^wiv@MW9Lb9rZH60Ftn^4V!^+0lPTd-kw_ zlISp%q{gmQ8WBD2^s}Srr}}f_f$VhF|CXPFZ8k8%&=_1LujWxTZ2%&&vRYJ{ZSQ%q zCzGLF6okghdI(q@>4mtXF5dRX0#MpC>#bY-mB&XV7=`FKB$3*+gI$LT2h+>7T`v|c z?h6e-W^<()G4ast2=zJgnVN{L^uZcjk2{xs>;!q~gISaMqJ-pIW>KS|N@>6D&sWod zv&Zl7qPFNL^Nh|HN48v2yF(Gu2^+)Zjprq+AB!M-?E8dVP^vAltn_4oKCmHiW-V6= zFwf{nMto$EElEk-Rx>Uo&dFTZ3_F={mI z{m%<~)oi_d<>0IQl*G}*KwOC2b^CFX^Aw0+eG(;tgt&80|Dfs^bTGT$holbaiF;qo z#`KSO>``oMQHgE#k@Ss5sVJwTz`3K_Qm~_xlcGR*QuIy0Mx_=`@{pi(@hHd91ivMl z6&*?=foK6CDyeskl7m5m^DiqQT((!F)JF0hXDX|%ZIc5lPzGoFMoXGe?0G~ppV@rr zXz{K$RPsqbhGz3PhM2mZ)^<>8(Q^5OyN_rDl3>?#wbGVOSY?p4*V+$MXoFV6hw7Mf4BX(%H5Fh zvR?cK2B_tXew&c{vt|b`^L3vsIP~XKGl<3-HiGLhc5nEgxvq9CqqP;GdwYJfd0c%r zLN9!!V3u5m%&bo*TZaJ< zV2%AlxT~adeu$lUC5H_g$$t0V5`!G1N=;g{nDV%>6=05*XDx~FV5Utw%>4O1nW?Ia z2Vu}^bqm1k)wxKgx4A4;%W17DU?ycq!d78SW_Oul?m}FQ%9*L14_=*iTUKpCTDSA| zEqkiP?X_x}39$tj34T zUsZOtY2tj&o+K>#U7gV4vz?g43@3VPC|flgiK<`i=kL_0**`5VgJX_2v&v84Zzw&m zzs_#r`wN^$-QCE{fD*OhY0xbdBC6ALD9~WcC!Ah7D?CRHXj@wEv zx#{Uo@*;(=?z|lmoekv`gc92i*Otu%p9_wAw)WJaQhQW#({`|Ir)1*j6~V&xwazpk zyllwq9P)AtPv0jsLlra=RZ}+D`MaN=6as=$8oM7OJ3~Y%$ey?G!0uksVvi?-BD86w zQ6Bv&U_xE=nr6@~fzkq{zdOnHl9swC~@Sl+@`OY~i@5znzIe z@KAvWom5cEohr#2!NQ~X5Ho^@ty{(*DPZz!9O&reMdZ)@-q@@iUfAu`IsV$Nzbb#D zH6jnf9Wi`n2bMu6)EduzEbQF7*eAX{xfHj5lDrz}#06Fhgnm1K&H{$Lp5Cd3R*yKU zy)>1>Y`1`>$OvE(f~riDzq&6L-R$9d+;70`xno%`E*kr{p2l=^RtP+&|)Xl9!XFvVd(%7xbkeCPL8RE;@ zysgLlyU?XVD>uBa=J{%a&P$G^HvzQd1@-lD)Z-}rrUrR7bKR}$@?zx1WMEnjiWa>J zjKO`XA*C>)eP0g^eob3?ahyT>hftDGw#mLct)#zG+IeGD>Rc;FtvQ|c5)oG|PIL-B zNt1Ypij~;U0}#tE*oniz%u||C66}Be(LHgN`6WS;K?6=_MQw=yDWHenwA9gUWJMzW z6|`)$0r&Z+=~iw`6}tr9LK`8K-_KWKV13shB8rZIi_-*y)AlKe z?uw$oreQDCGn4I|y|tWAhpQPkRn7y5V4AED0s-56%H?5Ceb*&*=u>y@e4%5}XB=Lj z*5im9>@DuYCBT)^gd66{yq9HR;fO1G%vqotLBTbt0_%lFJ;x3F(591CK(S5WH+$^( zEQ^q~MTn-7D>m!Dzcou-;r@QT7b(uG2ioaLCq?a32we;qm6j*-c;^IHLlJ?N) z{t=&TZ3v*8vADtR+efDrR$rLWw~Xlnb~P`itG!!j>pUZOYLigpb+a_B*ByV0Kd`$t zD$N->nFY*AR>%6yPDSfSMT5G$&Kk;2RLP@c1aG+cQM#zVfJ2jIWyhPQe*U+I#zMP&PP_=GTWILYXf&<@{%c02jTbKjcLZtI!*SXWib{j zHGL;6uZm5JNydOF6i6dv%%!_j91)&Phs`gJPcpf)9cu%x^}xPoCq+m$r{}Jp4eIG+t**K(U|xvk z%zSuzHD=Gp%1=74a*9|Jv3w<-EhUJ-Ep=n{=KD@%>@$V(j~tL&{{_qS?uRxx!Ep8~ ztMmWpSZBTO)yQDyj_aSguXCssv~#*44ee^qy0?lnG15R&VdCr$X_}QUuP3E-#ugIj zKJ@mxk}9;3aU3dfyf9J^81&=Aux6F@`Ibv;ywZ|#Mz8UWWBcomLAOfUxV-G3*e0Z! z#Rnu{c>29X3(uZrN zIizc}?Ov8xopPT>f@98v56=O|*5|2*O{dYKZEUH3&uJkLGFSWcTi`}MMme_Y3g~D5 z=%zJ)^6Ja2=E*AcXAah{MrX9HiV0|C*;4%{f>0vPv5_<&d|>Eaxo}{=^;hut#67XO zry-m3oQ}cLg01&#Sj%LwX0W5lRoZv?J^p0uM2zImcM}po0WZ@o_zW=v=9{9+ ziZ7!!X?yyx9RGIF7s`qm7yr?*KjM=nP7Lv9m6(#`>@Z|6gG}q(nm~;)JvooMWn29SK1xBBR`8wNRhcMb`A4;50ax+t6#sgXL1G_wu;W7h`gt$HVxN3IbX0wI2k+I!3~S4hjef}3gA5g5 zpuzP{ccH#Io9;Y~?kJ3Az$((ChE}ogwR!&eLcQwDkT~Y#hioRz;afNy66WjVojg*{ zLu%eDsUSQguOWIDX%J=T_fwZ96$jdhFuve2LC~ zf4`<3>U>C!%2lHJ8Wl{`9GDEKD#s~G$0&YpRtM%!lMH9~c?&#RPG5bey^nNu0-K6) z9pa>mmzKUumTTU7dDrN(QTFhMouqyCsY78~!>MVlQ;(!TieX$5Tn@7PpHHz_5B#T@x6 z_xSxdGkl!Fe#`b`W&N5yzm?>x7h-X;1RXR@jCrC*YNBiR|Av`{{liomns0JTTzBlu_(pEcA7c|F~gi zDn#eJYaMwR)^Iki_%};uyZ9AupO}HCClJg|8=oHx)@cQcf>!s=Tm$TQb|(8F<3*1d zs8r^k>8JanlRoQ%dW(Jv261BoK~gOJ7*U+tSVo_3HfNUAru}xKJx8DMcB=?vHqDo! zo^|_O4fi}?J(q{na56hYAn$+3Xs^1kiXjd$K73MTb`n%uqWnk5ETfM0_S z1#_RmaxO`U(9#?%l>(vP{X#3|3-EK6hECjxbw^Ma6kj6JgVY0+eqzDRchDLM`S9T{ zKpU4Q7=UN&NVvkiBoh^$nr~?l+Bn29$=kQPoovBOM2J!5|m+guCvC6^KfQ<&af*RYJq?UxQ>f) zUWo;(yUNBaroN%kab;Q1Pxp9VQd65dZ(0oxzeG7zwJ5A zt4uTB=ck=IGu7(qmPiQrzw5N{eD#d6GngFq8xm&djD2;)R&6|}Tg3R@;~a2@z@Gn1 zZF~B(gs}NEOy{xo1#DW1hrH(7bvB?j1m_V4k<9x?H>g=791QYqEf)@5i>D`bk-4m4 zD{;J{Jtm5y1#ee)wevv8>B%A>u*d7#G*25>pg?DbOLNAnBQ+b(#eq!YzT0nKS7wnW z8Er?wp|UN6c7g{E{2ZtGeE87MV_w|PvbZ=HWgBId*8IFOR%t=ju2rL)TYjPLO`Ss@RYJX1ZzJiOX1L~GT&mz&G@dmwkw zD+|v4Ne+EJtUO1aeqwfxS`zV|%gz|Qi-mOLKZ`KLeGj4`e#7Lkpa-ji$~$&0lI#mJ zH3IGo+5uT+YdN`02kEMD9JKw};0|+WP{GFncKjlHu7J0(YTJzySp@dLp3>6yDO5|F z2sUXL!+nD~ zDd=wRzg7}|7b}&H4R$iy!@#D~4;HiTHD6m{wNtzOgdjxYN9w3>|GpV4K_c%FVyBWq=Hji<_O%V+ImO0QuxYqzcpXHux(`i_A~)Ki z)({(?pr@^`i@&uz`0+;^sI6tqrShUDrd#mMB>mPR{G+W=$(nMt{-0xMvkDqe=|QVs z$2$%!C)m+u>Ijq7S8<h`XP8Jq)Fj^ z9@5vmEL+aBX#f4ZG%V}3T;C?6Ylv1%ivw8prXw_zq1>lbFRiK;76PEeG-W?6vnjF9W51G$j|@q zL0JsPpkV38aXUlBt-6M@*?0FZ;a}vn_g^=EsL*@Fz3;~4fw}yY<>xhtW24(6ho)g! zp^mYQh1IkT?@catUivH$>z_lvH))L}xMy!ms;l%rbs&Mm+>*f6m=}q;!t60ukJ4uj z$WFi?dmi$*rup^~I|hp^51YGmS1zB2>(U6)-2341FT0)bD$wKkHo`vb4olAYv8ghU zIy!SG#RPfjj^~0l*7+Ls1z%H35cbklLm0NNN6$2alq5;%w$S8%bahv_HCDJhha?_J0Z^3{&=*UXr%|qj&J@9ELwZi0im7hHtW8}YQz36c%yaP z(-*zmpD)XnvyxVFDdDI4)QX+sYqJ2p+_gD!p6k zXPm?C{WsQ32{n)1^-;Enbbf-9JlJ`2h<|zJCuLFne9Lm( z@S-TNvX?tl2g6yWx3$l7P0H*zxI#8Va;ytNVvoJFOhwfH4u=aPODFJUZX%Y{A;))Q zKz7+c2hwci&uWAs9eHP?uo$VTESrSv9wHGL2P$=ky>WFzWHb>eFWu}^#vML!J zr$VBvv)5&dIFw|bk&+#Wv!iUz9&yfDclNw<&iMY`zrXI!yL->qcs?J`=*gsJ`NH8} zrqs^3#sj-}kM_EB#GXcO0CU&hLLPSnc(n;;c8k}_&}VZ3Dw!5Ng*JRLwPkmJ_*w57 z_1nIO^}7N7jjI=?vl2&5#Bya(oBsxDN_QFbooBnPUTzsjPRs7IKrIoyHEQ18-d5H> zIpvYQf-z$=tl|GmSh9`ZFFkZ!7Zy(5#jCa4Io`SvMC&*DMdYup^Kgkxy>cqK?wdT{;G z#(Mp;kPXXvabTtsUC6)m{ttJS0tZI?6Cm|DmU|zmrk;3WuDQlmDZZ8^ieUzstlC)K zut~68tv9OiV4AtF>Gac?QyeZNTnr`7>Gp`D8@`#v+@$OHQ#ra3UxVX-$G++&CbX`# znB%kK08T4S`-aHuGk29t|8_zk%kHGpuB8#9>c9?W_)ps>v0?hL>hh4kK_B?D;rQxc z6y3Qb`KJYIpOt)cDwTdzzE+t~QKaK#n#5*11rg?1cU&wWPTqL#_LP~4@pgaJYePtu z*j`|)D`dDaSMYQ4^}D?erD4E^N8hIVN3E^H8d3>VBj|h?n}4W+gRn-roopw2S(vNz zUxTlemcM(<-fEUVBTslVO}hg)mKKJKF@K=%mBowe(OV%LPobBBhDVVt0)!l`q2+C- zyYWLu*_9wI%;TBZwJGNL5pSDb?2CzF%@-i;LXYJxHLb0R9a8VrMJNX5oal`P^8^r* zfQnW=pY$D&@q+}T9)e^g?RuxT#o`1zI|}1h-vJzWHF)A_tiRo9WJsg4{MZ-h^=S6y z-cOci4^`FkVXC7M`Nu)i51>Kc%q$x`W`6}Bjul8_G}nRwpEnP3LqqR8oUgS@WENff zsNH;1L~rQ;Y)ysZ)%=84o8dc2%!MB#W@SW z8;)*TbP&#Z?QjN87=xs5Q5(B$q05R@(tC<0%!VJ>6HeODSQPXZfjJ8iEC2&9m-6ow zn5JMB)ci^!14C5v4|R^{_O+8e3j<8`+P3^_P-_(F!XPU$=vMUdqN(aS?B609*mzuy z1q9i^a1J(ibktU-o}%)rtLc!1Go1U<7%Oa!Lu1`w5)&V7jh0Yt`ojqEv@vOa~ zea9pAVeF}D&xl?V(j+Y_l~fA<*X8xt1<9Kn3MjT>iU=^|s%v@tc96!VWlMsv;m&`r zl|Jn87hxXO?LY7lMm|tFu3vU}!Yt9p4mYSG_JtfcBsQ8R{?2V};`WCY5apvI zU-Guv^+e7Z_SYKp?iTV+C=Eps582Zd?V{}-_NGozubLg(zV|UcI+9)li2?C(?s@}@ zPxQn#7v3Z-_-KDZShHoN38+ZIU`1huc6PaGn-i&rbhYPlhcY1yAqf$+Gm;y}2(E<6 zX6@%RuU06+uHgA_9ixhMiFc;0jDkDO0QuS11CPE{?sMNXv+mjN%cxyPr_> z&Z@GV>g~QY`BLtGiq27X!&xG{cL+Q;F78p~EB0gVRF(hBTZa7Ix9q>q;}}L*j>Ux) z8QG?%5!%0=SZ;x7L6UQuLC-)6dJvw8hgCR*oo@zI4~0;#T?8@@S?d)TCYvev-*_*f zoma27mdf6yWW3jKW6w72Y!K@Ze>bggqNe@gp!@{E+o$hV5W*T2QE8Y5{P3-Ow25wk zx$_Wjjxv;zO-x$xoAL;mO#ORcown7kZLWFXn-W3nRa295SEqrQd^}G!=WyG245E3Lz#t^Y{Rt#Ge}{ zpMqYS-gOXMe{`^upmf#POl%BL(wKrwJ^~htfnYvZ8>|afsh^(}Qd*0hyF%#r&sWZ@ zLOs&@jF^ISOk#~u&yd-Nw+%q6-mLeU`{MtY^4maEzhmakinc2(^k0Uak0HaSru(HZ zP3FrP{AY3N5g8I7Rd_!)RBaE0fN%i_cLO`lnYA|ef0 zw@2;pJ$7|+5w+_Fe8PcRed`mdhRp|pghBeSy}~Ljdw>-Rd)e?OAMF9l^UFo7RRW+m zYoM-Th?8*Wvllj2^1LI0pycz70PRDdZSypua`s}#UX+Njel+6FkDLWg zwYi#quYi=Mw9&53W;>HLH8q{kxt9ea4}YRJzXbwYV&={};TbJsLb;B>3Q_GtkmP`q zA=W)9MyoLsoV*xoQKG5_KS;*%a(cZVh>r)Rr)d{_8meF-(&JZnUQNw{A(G9znV2Av z0G(66LXNwL1D}#H=HBqklor|OMh9N)&+zwW?n`HcNdA?ZsqqxjcChF^E=f3(27%L*f1}&e`SOVJS)8rF2 z$ZmK%Lj}V5kwx&jY?-R5!t09>T#q*Yp#R5oUm>L}Y!Iz4#V_;76KMG|i1n~Geoeex z-6?2y$#2K2k~iY`+DX`HjCTBcEr`$JiQ*~@z1wq6@8Sys|N8D}eaCO45&eh8S<{zdR>tE141j_1Rue zoclBK1L~XR&gGFg%q`PWcV@;yeSG%Yp%>1UBBz+Q@E4lVG1ZoaK8uLMamwEG*Nt`8 z(>B)6fT}Q(xZ%0Y6|X+yjnMU0d3w`m6`DVHfwgRGa-E$L(DBXSuMgkeBl%3p1qy(x z4x1~8RVSd{2Is_&P)n;$>c6_!0!TKi5wrM@PCq#ur%s%`Y(sOv3tsP*UgD&Cp*LDe z?i|=P#@pK(&!n)qM*;6nlgQM6YxqYx7|o1Q`TS-3%LbAYTive4(PqT*;^E9S=l|L- zL=bhoQ=Sb?_o=-Uy?WF!e7S04jr~prQ~Qk%jJK3CtRZF)NWO-0Ng5wb8DWpnSB*%Q zzH3bVeP2S2R`JGClr|$VePYGlZ_p7soe2#<%t3=kf1CFBgW`YFFxTA9BK#v)=4lh& zy__u2XT{7WL4a6;Z|Tvt0~zG4y2${DkWwdn3$!8xbU|I-Ukc|np?7(!JdEale6P*BT$v& zS9m+4{k@T}0_i25HR5U}u*NdFzui#HZCOIWk`}% zHWKz0@+Y9q{oJCS42C4;{zgR~dS$9fnhuNKYoT^14?)(>iT$*&@aSf zqB&rkf*cty9R0TEPF38grdu#+)UgU+zk!}+`V4vVM6BWtffESJohP=vJHwTAJ;|K} z>C#;?qr(%-Vp*`we&>4V>aDi5Hhyxt*=7Mlt&ZVQ~d#uUX;DK*Qf z`~}zY*D<^NaN8k8+dk)3*%a5hFA4}1rLB=@m2er5{5Z$! z0+Lk-KuRr~D-X$3Z2S+&`%5KV7Q5&F85zo5AsO1Z@{yo!<=pS4&;aAqc~ zjTeQW*^1;yNhe-U)Ku&`dEbheX;_Gd?o0XDqHE62afUkp^5pQE39f}sow$^xxC0OH z+cuulmD1#*5~zc7cjjtDmO=k|CVt(8sm=iw%KWoUyG7K@N{@Ii!^yq0qLp?n}99Nk3h%NHoj*2x4QpA2r|NC#_=gH15ZkQn~G8E2in z?x~FmdiRMmx~qb0pdZY}ZhM?)(pixOGu|B7Z5sFmyX+p^ih4YvQ!5-GZ0RX7qJq zOSOn|MARU9?NV2{82q~YGGCyIi9TnE) z6nNjR|9!4|YVS70L%m>)$lhn$vrn_qJU|2oSL*g%d^1G8HsrmnAeTzw>Qpo&JjUf*jun-)% zXSlbGJ2DeX2PDdl9>+-8PvaR;f0%Bkc3?(%xt7jo3mJDKfg4!;+d~5mg;z)iO7iss zptEG?qtALR6cU#Bk5$Bq#h8y9=*(XGh^;ebo{PC;GUKcu{tGZ#EjJjDtisKn+{$LT z-bZqPh2w~~y)RtYIfwkMgYMLVEFAjn#)x+Xe*-!Jrlq}n8RQW8YFEk5TK(nVd0Zg7 zNi1rGNcY@-7v!gEY6J-3(5#=(Eiea;ZP);qh$M-9#M2}5kN3rb1=lRqzmdJseNl{H z>3*PE232Uv+_Z;7C}=5I7gOv5;O8I~j&*=JPaF9kPW(unY_K2fTyH_Kv8jcxgxPPM zsmLsSBDp!x642iGs8}=T;bc&GaP?QP%GGZK&tLs%q)0mmvugR}-rVBg z3~5X*?75biSL>o`%X5sdB|$EeJIt1#2nU~01=jfCM_!W}cZ799o^Nq`b7;PB?9_O5 zeebJY>6|2am3cH*%?Nz7B<{!dVK2Ti?7%z)2sQm^xb{2Us=@$OjkBvkwp=U6x^A?7 zFtb^N_C(&)E#<4b)Uk7=MnBN%@kpKN+H&TiS~Ps%=oyD;w*%#BQFHTar8G`8{8Nip z2Nt|H><(!vGLzYlDN|_-$Kj8V>MMUFWz@ICap05 z&}VT9XSYjlPioD^V_F%v0lDJvT0HnA8|xpEG5*<9AhJ9ywXKO$Jb?4C5B3%}EsG68 zTPh;79_*NmRUW zR313HiJAXHfGCuWgtp%tZKEfhfP2W#!LPhSvGv)y!pN78=1V>Wvx6>z#>3w+U{*&_ zjAtp+1!Rn$;od$w(lmW@6tU0%-{QOm`J%p)XZOvwsfcfmTc6}lFu;5_Z1CnG#?Gfh9O$)qvSSmij^B6*&(mfV)_Y$+`Tuht-dQ{_yop5Z z9UB^skDq`AJCD%Zo@54WoGzsXhBGm z0&zvA+nlMyfnX_1*;DDowTZ{3+WZR_ziorjH6y6a-h`y1U@3F@v7fbyCLap3$Ya++ zA{`o5`^VDt(M$`39Y=f@ZWl5jNt>o?>P8LJ=U+S}ziIgrqgLfMy~9`jDvbL(4%PXv)#2WIq##bM( z$`%B%4LmYgE{VPEB$C(nFy^jd%GIw%+VP2|)53^tr4^Mt_!2O0lWW*qXa+u|oyIrc zE>4VbOk^_Ak*1}AV=7t>&Xhx6n596Yv=4QhcY;$qv>kQ5`F~7rO==L8MgcPt+QCX@ zdkd3m$7`ntk(N{dP4~L47v)+kX2FR6+_Pli5mWWYxuW8+k($J)!H{P0i_A9ih3$bG zZ+8eS-a-4&9I9blhgH0g=>(7L0Ys_cUz#4(*3VZq2cK_x${3G}3f74tz>{2*paK&%-s&jgaUVLq0+Iy`Fn$~Lp+@pB z8p4^_yAWN{V7sl-Xo-sWx45_$#^zFFJZrlf-HVhGS zQ%1~Yv~63NXc2VV^1)lvTZH?^n*28HLw;M?hOaIW*^@GHF8 z6-Lic)2y~U=5yz?&327!QKVn8ldh{mv2f!tZAUtyx-KOO>!8p zeA&_0CI|;fZZV`cc$I_y$0UAQHVFX8-I)8(=y=#`Py+*3Kxqh?o3kj6@54Z-D6FhD z466lJ2db>W8z)!!w3>ujcV0N>SXi57w-X_#czd!UBU<-vISHMP;TAxJsyXtQbEqdDj6pvZp0%BgU2cC<0K~O) z9k^@Xs5`XiU&n|Of0K7hyzH~2a`ymd6SyUT*rz%n5;@c4fzFyU=uHYE(}s9qbwAq2 z_;3Nm9CRKFko$h@$kF-A_8zkSqfi%IRl1AWM%ag%Gz^{7b4FmTb7JR^#Dt-XoDs-{ zwa)DFX_5^F{3Uw}gh%B&Z-TEQ@{T)QqDN$!H4Wx0YMw%dTI{t(#WR;e(Z3`lPbQwm#*w^(m)sLdagq- zUGPn19T2H&AcNES(eWwuP{=OUE7P><_t(jc3w{5R|74;~|qwPS}ixzTg zu;OK_@~yTEd9-9SVLRr^?WYEOnx;B6dg3h}|4Q0DkltF<%o5&vvYDzv`g`<1k_z_k zIWoRwZf5*Wd658H0AL|ntowBu^p!k?@ZQ%cSN;>geZ8JM)i~x+;0xxh5J}Vgv85>6 zaFS#os$PJP^N&V!Bu|X!&mJp-j84MJN#fp)v*q=~rR>tR^w}o|>+qDdy}6f`NKtO3 z8vad&k;W=!M8$54xl-x!r;mt@qMIJ?mIF+_I$6p&Q!qqi3F%@lrEj>oal9l4aH_}p z&vyS-G%RaO={kYU8z^A#9@>0+`?CF`U%Q%=FWvpSfKIq8YqfUNQ3`rEMnJf?b zZ!kl8*{$xKVWLNL{(=eqi-4MjJmd>rm!~dQ*=yWeZDR)063ZdbP({AD@*-;Y<;tsZ{bw8U*d&*xku^68VOO0(X-Ef8P{q=?0JjLxz^O$&9+N7g&~?Q zNnsQko9Fe8$d(R>;mmR*DYT%ZB>#YbCM#F^Ur^79~p9|d3W=Gy4cJr+}`i30&Vjo)AEY*(n<)Zt$#Qfdq`jSFf#r(3 z-Qa?H$M3_xReF}wveAj;i9_b?z20?P2T0_cyBnJnTfa6|&(KjT^F*xSi9yS%1J&p!8vdAq&I-+V2`xAH$G^T9=2USSgIBv2ysNcfdc=cxk~anlB8iy6OU zyzqD0VvTBg&v9@g=u`c2i--APzzhIV6heTKp92ugqr3rbOfl()JT>wWmELGoKw7oO z62CmJP%@@QZ=@sC&0x(H&&FV4L!euq30@QO6r5XBN9@<$=wDvAj_jK<*b1dJpH3qm z-CjkSwTANr#3VDcImB<{Ebb4h-6|0JD2zCY$OjXrMWL#OVgJeO(6jkb9>2E!GhCzR zW%bITE9IX>b&q9dAVH{^9$;uptn;;%m^%A;0_-ck0=1CN( z*hIi;unItOrt5B*{0<0WZwkLp3F*c@C`+B8bX#ZzadEu`at}4MM149__R{%!$7xpo z*&djIh6(0}lOjJIf|@12Pe%1F3P)YOXfbq}#aSf48`T07woc&*#SnLh<0>ucY@^V1 zKxehk)ji&e0lPu#Du5|#MgSsIm$e5{rv0I!J^oQ09AEICG2X?Jqh1D8%yDSkBZW>` zMK-viC6S%%YtaepphqXVzP@%MMV_0@o8hIa=KgdK7lKRg^vsQ0bwvc{DR|byJg=gc z3b@hQe2$78-D1e>t-|yWu_~DaGaCKE0r4?fGgC{-r7o+LVZcI{c-Dg+h^c9i9}%|t zJ1Dj%Bkm7g4 zn~!cdXCC_9$b8DGfn( zGa&pN2wRVlr0Vvap`k;5@zNGwS91L`Cn7`3cE^NMJ=NQn>rb;4r3i8QoTd*9O>w9Qzk=tCR#{){@BFC!P{P!)lYEaa zjN$Y~$phD0zirn84g4(n(9C0W-nC-eu=DZ0ib0ohhxm=m%o5l9k}c#j@eRj_v809B z%i0UY!lA{v$pxwjmU5Z}BQ&LtfJhmZH2>oe(O4hq4r|q>JIzB3@X#1+Lb7J>*hTz9 z^2pLfe7?B1m=;{#XtZvG_n5pjYZmD2JL0YR2ll1haq0+)r@XYl=QTYjH~j^R$vO;% zB50?aul}=LOKW^A*|%i2oTI)(o$~Ax_|J1s`VaI?2k4p}dEN~zi1&HAFHTT~`QG88jxqvj2kyAZ$PRKfzk|c}LH?s;J>aSuUOFu+$y)T$P zqb`=_Q4U`Bx>3hiY}S>{sQNRbE{^1NOAMnQJo&Q3JTR;i5%pJ?8snfH0=~q?%jK(T zFwOYjk2DJ6CWyZx{K}BVQ|_oC6f%ZmPmi{-onPec*j%F-A(Ocl_UmO|!c!ZrKb71% zQ7+0~$o`di{_D~Frv@>>xnm>{M({6t9g{Kka(3ky$L#}zqpyZ7y4Ek1PjfIpe-gV; zUsJkve$l*D6IXwIl>K(AQGtodFGnSs8k-| zJbV(-;z`4R{R*1cEj0y$+T<}3?1d7B`Y^i}ceHDw{v8jFhRB(3(ei5xZo?1O8QLYg zRlO_s5V+u5)X_5R)a2h{^}K_%l(*!%yYG&A5|W3D)D}d}h@7BuS(K2bEIntV^@FdI z79ZDF2Yd>jf|sl+5o}R~`;^++);8N*z0FW;@$?zfiYep%R{on5x|Q?ZP$2QV6Udn& z$@kQ(!+c50{iB-5uMBOz1#EoGKjVvjzr5chkwy_&#o9d9OR$S-G}ARC60c1hYUlbK zX{eR7K>BIm&qEP}HvP(})$wQmxCFN@lsK^Pi8F*W#NN8=y8(i+{Na7Amhisw*gmJ(a=W zZ!b7Zqo04Xsqm{)K1gMtUsjgpZ5NnF_4SKWJZ0ju@Ky5P)}QfiTw(1AjGyAgBscr% zc&f`b4?=}9Q;&}JEj;JW=aR!vN`NmVvkXFIVUlJG%_+M6gxNE%!0j!)I9<>)YR4SH zi7k(7`0&+II|RP3+rK7>3SU%O@6EdUk?5^PcmzOvfTkIOo#6)RjNh2?Wf0eE+oCJH z+UME&hQrxpngqk9I2lcmQ~yQ)PWw-~<7(Z3 zlP&Kt_?@k`=j*IF`Imj>t;77iV~N!-kffu-U%eBHzGcD!EWkR*Vu^sL+j+Ahv&T?a z(x)_@vU$1cYh%$VxUGg3V9%~`bPu7K3<*vcI^415>GGV$>#pLe2OF~|zKu`4)(Z`p zbNq_(9FM79-tF?NZmPochF7RV5w%@9s2ToH>my(W0UBS!sQC&Sb`Y-CxhfY0 zpZG|wA0Tv;P!{y#z#+Ur@1D&N2j-EJ>xG8dMWw*8z`(mXRGq_pdy;G-|CS?u*Vq;^ zt2`CQ8ZFoH=_3d1;eJk6O`0a_R01nh`)Qc?^=TY@VBrB&P^Fi^BM|JX)9^`sbF*r* z@`8|&Mh$2h_)^36(O&xk+UdH!f;O>VPKxhjmr)=9Q(aZgU&B`6E!K{)g_%P<|6>}^ z66yXnfBg%5DFkA)>DCgmdP$$e4IrQItTqo&)lzJEo;I+AdH&uQJqK2A?XyZ?k=`vz zzrgr-e01@?btr#$Yg`XiQ}$aZh1cEwdi`eI!Do%z#w&9ktb;aY({97BbNX=Oe8PjM zu8K5UGXCqfUEWHyc#8A+7$Tn(eX zQl*>joDxWZmi)gBHnzc~hlYJ)=|0qukABq^-@xO_K7TWrXG@xnZ8FAC5mbZTjTcuu z{y4CzaV46L>xt=v<|>e7?8slFr+qbZ$&rJ<_)bRddW)1bjaIMTXqbL9>m4W0<$Vik zX<3;%^L4pNpw+nF{6!5&yU3u=uT462wqgu5eCwo%PwX`KDwSeN1Q1f(A)PXN9J?P8 zKHfx5IxUBC5(MXlE`^>pFFx~Jjt~HQ)g3rwZpJR`P(&z+u0N{4X?6+EhhxtDsJI)| z*0Wq|2{zk}Ut&mhK31(B8{(DUpVo&d-&%fc&ANGLFQ5#~jK}QaC_i|JYeq`QV6zJ1 zE#%|ySmKnJlfl!+S~W?(b@7fTNrx4Xdm6~!??|ay-*{ zMcb~8kJ`m_#UIGVxD~|OH;1Y`7f$Ed8u-e@*HOqrh}v~y=KLR%qR?nQk23~n*zTHi z@eaJ77}bbc*iYwLBZ!WxrZOF4BkCOH-(Ux>SdyqPkVz z@!m)hGOL!5wshl-7XLAT8$NfFfn#}^I|LIm%i4_CS_-8hZq;>MT}vQ#`;ZQ)9Iooi zwJ+P24BVUR5H$)h0zzxkqd{%gAPZ(Ubj~9=8Lz#aeqU)d%uIM;_G*gv+m$SCepveK z!ewTkEvk9>BVQlBj)t4U>Th36waoMGV^+ykVyDx2{eS2vN%x>mpFNL|ddcm|HRoqT zFu~k+hgs%{!*!ZQ4FdkeAzsBG7H_*m@@gyz6%cl}iX*K@dXHI!b5AWcP)Q*MCg<>V zIh(cIj9i#mkVoA28RNy=YDEbk-MMd8mz-Wr5k^{;w&jG5?&k4M;8LezcX@BSQ#I-o>z?i*vhb86?m+)qojT!Ws zGkl+6GleuX$11`LPNpV+d}9Od*;qy$QYtpo=hE-r?4Z9S-_L%M^Za7vZ9cE^u}zp_ zGhjpG#YM`o1^h37#>9N<(s`Mf&+p8{ptYM1N14Mlm-2plqU2V#@J6CyZkXD*?S(dJ z;&@q9;l-V1>PFNdH8*^Zdx|HRYt<3pk_WmhudUBfoY+~!fpI4(^`~g=w?LvM#Oj9^YuwrtDQXR?Cq`V^ZL-G^3568f{LJix9ePq)-!La5>F@V z*jzOTqAF2%xArO2QrGFVPdLPq*Q7_-a*IC4cD`WG;u7mIM4rIok*l^DcF#jiqoQKB zIg_KX5XETV4KCf#d{T61DC*5sUE?XZ^EhC%AMC|Qt2In=ezY6=d8`MFC7qAhE&Ve3 zv}$+Oz1pe*J9HkxUrhGv+F^c^sTHHNo@Ue`fAIud2Y#TecH)#er4uV8W9k|F1+WDyzhOd#60Bt@GpQ7&)Ssi zC5A)gle2F7^f_dvb5F{nZWdez(jIW)0k2m#F~Ff(GSaa1MPHH-+*{wzr`1<<^kVZP zMK9nU2R#vwPrPj9>|&Km*LZb>5yq#;zIH&i(&K1w$xlvcz!n#utX-fMOGFy;$W zH-8((dDOV7qJpgLtZNt+5>Dk(1m!cZ>|&gjwxm?8JjQ$!_iiJKN*TA}=8^~TqAuMM`XAHr zfX%H&pFev4D3+T!E=o4;|GoP@sP5i!H6t0MvvyEN4Y2WZdG^_h%NhcEFY(YGUQs>w zxJF-<(i}99pFMc=k8hV7YR#LUjJw+2;-J2ns#rWZ_U4G)iUs7;q;G(%{tJK%Hd&*X;Xt2i2x|j=QhdgYtIiJ~L2p&~xv# z$WT~kJG9P!_Q&};8hct5YeAmGx-cQJ4o-BCWx*hKr0pods_arvkSFbL(p}!9bk-#S zfOFVwo2?fd^Bt`eK=0j7qzpC;uvfbXR0T12l$hV%2J!9P-vyJ9>9${SLfe zBbsSE=6lWLnkSvV{<(xLsc=Y(dU{R!6r^2y>0O3_buE;$eR9987U@Jl=*fU{x_Zx?l8E;D@0zjq}7S zr}8A6Y%Qii<;;0=&XOl0otS3Wav)Fq{Z?awE9Pbf_XKz;c6G|OAsO2*+(QL%2G(ms zm@Jxxj-6J+mY??xSmxq^eM?p-galFb+;^DiW^wJdlSfSzkx**^SNt2Ij=5dYh;D+Ky8Hq>1!f@#Gn( zAf-R5x7~1%Uz5tJCI~Q_@3>GfuZu#{3_mx`4}H|q=)s`p;&cITY;K#jmKK30NMCOO z)iA|zW&AmA{b%R!63w;hgH|hx$NbrxE^OKEHK=97UQ!U!Tao@(_U)?_@XM38!pel# zr+GVRXAh76W}va8soj-2zQ&dpWj8_Jy2Ix^xiATLdodPkDm5w8^DNg^2TG=hZ`~CQ z7D|N^jKri@=vrKj_m^~gVD3qkL*4Knb7mq9zpKEXM&m?mQp!$%BAw-%FWd7binz<| zd=BD|t}c*78P?^UL^82$C%`X6u4zq2#@B{8+9GkT(!SX;49pymy8iry-V3Cpb@UFN z==52aLz~bathCvLU!kS7&g9h~(`E_!Y@75C%u9I_%Fb7nR$D?{KPw9Ape|F!EbdDs|gm8)GEgCi}A zw;OD2Gu;!>_e1_?*0dIwI!P0)F_BbRx>2UV_>%lsHCmRieJ*9P&?{!7Qb1zTL4N#I zxCiNHv3NySuw@<+>6w;Tb*bz5L4jbmNNa(*bW5hd=tCb{Y{OloZ8ErLpLnIrH+MLr z#~nMwtBmoPol$m{v#ecoF*Rfk#zuGbN^R|$G(}vaF>dg9KpXHgs%IWQklfh5-GvG~ z4^>U_y(MFSAO)cV>mNwSZw%9d%;cM;6gu_7XD8)z+I<*1&+ewbc>XiA9yXXg`J^!Pm=`9~4A@zoKa04A-^_K1nD88w zVr4tp7UYjDxBPJMHm<^bFJ)cn+q`y*r_AMZ?X9+KV^?{&v&|U6w^>W!Gh)4moy$kJn$lU1TQv`j+bgOS;`A2$ zs6L%e?O&HS(}VlBoA8;mwI(;tIR0=@z_D+(TM4?1Cm*1uCU0}~o5$4qK4W>^VlMxn zlJnq1Fi;r>AE92;`iZ<5Lphc=TCrWu<25WdtcREgC4pIq>x$Zm-8Dy@D<6(MGr&1*hAn zy_uODoT8h$w8!SJsL*12ZQ^6QnUy*$OM`oh*_Ry2im3j`v30g4e1Y*H7HLe6X0r6E z4_cmleG51`W^V}3P9m8axYGWbO&>o4WWEXwmS<6656@e8ZDmhnwylCM%|LCv=;{^d z`A;EowI@l|ev?53Q~T%Gn?aT}ZF}$87EUB&n6l1^ekGGa9R0sSLEI5=h<-xoT0i&a9+jC;BPemLdiatM6S9gXuJy(Hw)0D2M!{geBo4G(LDvu& z1dV6}s`ek94w9#;84PTgbe#gpj~ZJ)g0YC$j2ThI-IC1DID@jUz#XxwSFr~ur*ea!1HTJ=xXk0 z&xetij<^{Ct>!zo#xwJ%lLm7RB5mU3y!I?t67R2Xn#7G(pD)-z@r>24+e_j;^BmZn zBR619Be$3}I`on)0PCmgV^c7ijE~nX*ous}D=ifTj`7ZZ-P`xZ| zQ)w2i3C(%s7uPCLC68PYh{rMcAX}K7!$U36j5l6R4y7%{4V%763`zV>aREp1%M;J% zWhE7QB$V;L8-M+p4KlLtIoo2lZ_nT+bN2_GfE>$s8yZXRt(UgM2<1$?<3^KcpIX#f zu#0d;_7J^E?fpe7w%|P`Kjr6_B#%}?qI4a2Ya`+M+~(W+!%ktkvO^*Pi;g)Sk)>h2zp-}e++H^MFPWte`rOF;nMAcn3sBSYz?4FHC?nN$z^@xb9Vm9+V zr%_9e2T%`TLi(cI*7msEa(r*&u-}(w+_1&YDN3{Z*gqvjLyL()L5+J+Y5U=dEbH@< zZ$fdaYDhk@b%}?Yps8w>KK2A#OJfRGchKJ+k(O#tVdnA%NO`XRc@isiNWp%P<+&w3 zx5$rYC+a}*nZX`uCb5e&yn}jjX~-uCCrE+kk#_qQmE&ti^1s33qVVHK;g09gV?~=b z9hWOim+r8f{ZQ8iNE}=5MEsDx;z`P5-|W)9$t<@#VCH(lIe7*Lbd4s=-zOa9|Bd~+ z`LOZ-C_3*zs{j9szwdBeu5l6fl5q+7WL(Nc=Q-zbu8sXfw^Ts1FaD;nWXbMa>i~sTn~AKZQIrPHlt3{8 zDAAtIuKn;vPi|2Xgkzio(N*MOmytM7wI?Bhmq_OyIDgT&^FKgMyxq6#2DSYKN!|im6P*S%x!OSGq%bN+klMA$yd}p zD^hMkAs)=Z!xq?IlhqC{kQ8a9KRi&GHa40%oUgUNPJxi4O>pIeGUH%Hbb;v+pltQ4 zx`|TgnZ3hgd~XlBLO$xuD)(%_IMuSU-`^e`WuUlaD=enjxGEUb{Y&cG`Z&u_x>#Hf z@knj{X`#?h(#k*@rIE=VQ0^*W(OSHo`!VLX!{#{$xm$&Q>WU|21{HH7jFD6l= z1-G-&6#+Y6P%B?wgs0(-JICP%?|&$_kxgXPs`Z_#S~*b%_cL5s2=P+COeg7rdOt|R zij1;nPiVs8oQrW2Y-D6@Mr+CS>w9W%TgZv-@M8iZiS@Sd5Mt_^yNN zC)=r#{@jj>pQVv^WFH}{nZ$jH{Ob5!A0ZT&MOD$N5}@zOUiR%YNGa>1@VR3#cXRy6 zXh55^xaQH(Q%8^Uic0kbDyZmzHBDHzL1~i`j55VZV?8u5-Cux0=*^e?JFKxn9K^sT z=t4PSl8@FpLSi;b6#ZG!WVE?U(? zN!-SgP4jr1cCXO3uFcXN2afyLKa=JBbaS9a!SYqv&)3#y-t+I%e?#tzha0k%qGv;F zcyHgV5SOOkY6}ta=S#GdcqjIL<<8ddF7bTL_0UqdBZK8S|9rDVO0(~w;&)9G{?FP;znmK$eNAflQ+(L|!BUKkC=5+FhS}7GJ z>-G=MCuO;wiw8*=lK=Os=1P>fxH8NV<9Ypja_#R*y3CV{nu|LR3{nidkH@zfoXBVC zE+&hrwQ--n2Xo2Pbv)>LSrMOL>D`iU+XLe=-_}5d&e7R2D&2*%?yPLQQe7OeyNWg5 z(wWH*nMJ$4=!w0d_9@`*efU|n!q4o}YwpGot-5m%|!D=8Nz%5DPQAN-4{ zO_wQ}7X}~>4$V$prfNT{YOg$>^c4!5oyqG_>6Cn0M*{4$%8<&W&Yb(aOo{s$aBlE; z^j4HYdH;d_v5ZwZqfR^1JH_HBR}9|)1zdwq$n!k4K|{2el53DojF_JO$&`4?V-`r{ z?+gC-WQa2PLyUb~wbT2!lcU#6um#i3+S+lwx6el}FFohVdQYcvkZ;b6n~oSn4^@08 zH^RQY8yI40>mJrs=31sCb=pQ~5du6J8?5HX4vWP*$$xgGP1mr7lsc%~)O1+bX|nhH z?^9shA0GewM%s_B30_Co+}dTXpY+1a2=`~P0}RnZ4pAl+yD2yYmgLVQV!pnh(AV;) z*(Iv~EaGZkUz{j&w*f4vME`XfB<;=-lV43r!o(@Dyr%7}1W` zP45!+KcLVjM)-&FS@y_AR$i%s)%m`eD_f;sFMp{*NA>TM$j?pHE+PshZ`M`E^QqMp zDuQqgu1da16MzlR5tQuTx?}6InBb1DC~lMgPfsQh;?dM{8`a>lULN9dPb``&`@Tu- z(nBf@*-8#ISdbe1oo1zivGsAaAA50s^nT@?TAtKEwMDxd=;;(%hM~#+pd7c*Y8F;{(~Eu~iw}f-(*E&^jG>H*Y_Yk< zk(Hd3VBEKvbiOs~vV$k4x!xCTY7&@B>QOoT7Kfr-n2wSVfEs4BOfoJ9X zS6>Eh9|!BpoT+p!cXQUvLojsO{aa5#NQV+$A0wqn85yqkHh!TrQ#o32|I?gyDL4#* z@tu3O%#96djqhBkIt4R5T{0%1tD0FcS1now5pd1c6=T;HO4g_U%panc7pdo~)_pvp zbC*LG{VQ_lU_y-Hf?J;uzPRdSUvce|JL-3xM zWRbhCS)PEYU^ibSe`!k=1+#6f;Lek^6shE7CLZq>s^m-y)m0MQP?A)58?UQ~@o^VT zr;3z9R0*>T0usz3;Ut6%x}IW@fJ_$ryk557q)=NcSU^Zj!PuB8cMZA-yUST@laqZ2 zpHXL_j{92z78)D(sZ#iI_d~ybZ;elTPlH;UHXcOXRgk3f%o6+`aL^#UWg>&PIf!lZkrDpzPAGI5QOomW=k322wlUXEM3VXFeEUHC za+ks{51;gQiu|R|v$saFZ&X*TIIl95q^)BcJkRVHVr$voB^Y{z3w2)utxNXwWu?1`;uN3&o{yS=GeJ(|uU(qWpdyEA!J+|sR^ z;*%i+RIB#jwO|$AMbffwp9LiaTCRv*)DD9pQvQX+FYP)@U@%o;6gwYMear@uNoQ+M z@PDw^{Et>|kx?hR`eM9(Wl)j>T|ARadCwtWThA>zR)~V&B{UVkwsY~y`*4jYf zamVc4ddX%UO@lb5n{n-bz^mTJG?5%_hXPB}CXT;2AEU}Ez5kY)I_}mg<UicbzP3MNAf zAJug@C$1;Ts8W)gx*Z`e;GDkan<&Z{nhw7!!-Vh#ht=P*TfJ2NYQ~dpJdw4(T;{(r z0QHWr9UsZ(gfg65HtC!B^J~R2Q{(1@S%osX4`y_+0W?)3Q!ug{r(Bs_TqdkMWwEv$ zVYjbu<@C~tQY4V>SbT`E+j~6anyDZ-%0WBC3Q-GJr?qy|$LM@wGH-48z@n)aIB(V>f1>F{~n(1UN~C z4zAF=f`$TC|M~KQ-@9Q_UWaj&;#%d45fZ4Kv5@kXInlv0{GzMtD zWLi=-HH|!sPvPGk*BfLZI9nq&FP&7oqK)TKJr#`WiBxHLYg;7p%e zgN1CbA$gWuJB)?k?Bj}Wk&K@CRm}oxN5gE8&@eYI@5T?571)Aje z7GlW$tpwKHy+4WxV`fjv%Onc<2^YwPy0&)-!Hk8E!v&r)a6bNj+KVzPor1pXb3-lq z1qo1wRc@$FlhcGm^T8xbohuq>1ZEs_5Ie9X^>d{As~iAYF}; zlu<&TgtG5N>o6%->4#Bh%->s?3>FOuob2nesF1eY^a-`Jz*bqjt@-kLW|694sl+d! z01~=t?)k29Wm!O?tip)29YD3VA>un8vvU5uyc}iczh}m<^J`DE;o5z@ev96L-L&hZ zV6AeTtcxxw`OSwz_K?xb9Rn=Ne^#!tsZ-?RBwQ|;#QWwJk} zNhh^8b&5i*Ig$p`h>&kA$h!A$U8@Kw4#=G@Y92D#tUK+7ph z2Ma#k8`%b%Vw%ckW!L|PbJPdmQc@UXf%R?t3OG?tsb;QeLtaihl zZwCb7G;tQ}mo>T~2^x(YgAknhJGX$;-&YP^2rMQ{+&Hu&>aFs~#=ws^*pw}{qU?g~ ztA?uH7<-oxBY`m80dXs~G3MJ*G>|@U{Jmzij+LURSfQ$&Uh2Mv@`8;Kirx-Ks%<9! zLs{|aV$hvmS4{RPqV1$m-qq*@j7AvlGk^P~CbzP1a>WDFFt~44huyyfz=ayGmC6xl zfIp-Nib8zfg@|}1Lvl*LTrXoslTTDq=IA9Pjf404)vLl5v`g2Y8N%{hb+Uw&Lb$PH z@A!>zw*YI+en`3(f`T&roXD8}4gj17?jKXif!TQxsYS={ z7iusfh<$5ulRsR)4uGboQbz0F zy7f)w?3a(i7OD_a(@?aZ09*3rnv~sbkFjaa(5J=ukK>IfcBa@9GRR-PHoJQG89xC9 za5V=(@l?ah&yVHxbJA9n%FDR4ZqN|UKj1~JCL zDd^pTso3n?X3?pZ$}R9$39Ang?G54G-S<9SwomX7Cuptznk`5Bhx8{jJ+v%!gxot6 z(lvSksyvMJKV8`h>#Ve{Z~B8OG3tSj;425@V58T_FiqJ0#q+iDI~J$(DsmV3SDSIPAP>SbX2{9< z;B-yBlka!(cN;vAqqdU%<&=T^ztdKp4ojc^HneLVG)XqCH*mZ+_-FAx=p}#l$Kj4( zOT{jyh)`?XSbXYLd4qeG(YG3X75Q#gWMFl>{?ejn#C%ZRY795ySNx0ok+ltk8aDNN zvdru{!$qKtBKThu(@Wm=ifApFRU-SdeJ#6pvWLgwc9K9?{m=JBTUYwK>p=I2wNY1x zE1Prp%G1&H#Ik%^t*z+!!ptvEP`Tr4`D8gBM@5t0-X|qfM7CVT{Tb+xZYpB{?kO?9 ze<5I+V(Mt{_fjLunZQa%F<<)B4i#Uhr~2XgSiKpWn$+CTLqs5ZN+aY>sqegc@>6(_ z`!#ZzZ`(}v8Ua@3UAQRIIXxLBDLZ))I^bGAFRs!^AVw|sw-g2mcW;~Zg{;7f`HXi+MX)-yVaN0Z@&~^(j(J~6ClC!?u3mDJGl9W(ce|qdF>w> zi(AG#(185XU#Ayf{p=t$U!`?R>%r0mDb;ZEZ8*tS7TUq56p?q$u_PojrwYm3XE?~3 zcNkdBL9OsfgE9(&t|yN&CO8tCYDof1rz_=_539PKi&G%{kVK;?BUW1}c~+!87~s-s zRfCG1{bH*Wu_G&y%m3VJ{_b|m_jLgLoS)r23l{X zsvlq6v=Vycb2;L+Li@AOoWFqMEwp8wTKCprm1nE9N^(5HIk9~5vC577P09&a^Cv`2I^q7+Sj8va z-Avka;`9WcS2!}ET$^N<&d@l&%3L4v=euG?7sE^Dw=S;Zqa!7(D!w73lWO1HS}};4 zcvpcCNpbECnpOYy(Ll*iE_+;5(R1|ql*H-lng0Qi7FQ`5^wipTkdzhMBjp^{_J%Uk ziuewK4osa~TC;MOkPp=oV*RL4ev_MK8CFr+cFuB#B%M{ip{q%2^8z5lKykL<{3x=d zj~HXrb_}>~qd{be`ckdaDd@2=ssUk(Uel=6467fb5u!laFVmT<`(IZ*Fe`2(TmVR3 z4?(k$^t@N(Pfa(S`ZH49w&irua=FyLa>F{@JBTx9UChgr-YS^0af-^-(}`UAk$)Ox zuV-Lbudg@7JAn2sH=6R>XEwYt+?Ivz$s8DSBEXKgA$8r#YekTttUY@dM39kmXq(b< zYo5}nh~5=KxnORZG_si#13)#(YdoyOC-luqpU0LOears<^9~{xJ0#VvRO@8C;YNY{ zT;my4HC4~&NB{j51Uu@84Bku)9s8QcDgwnm<^Qpp)jdGiZW#o{F^9h@dH6H^Q8FY2 zO28Jj$%)kyOpz)+PHifsM}_DV{kdnLGB}@m**i}LkcUb#M8y)Z0HKhk>Be@lw{>ZB zU`)rEWcWXx(b4H-FE}@u0AOWr0}LIX?^D9yHZ$iR`ok8csj%d!Qs;bqJl)bj8Hpv8oV)o3DaMO@JtN~xNRhNAOI*(P*!TbAJG)H zl5V}{n2vPSMlowz&PX?lgUNaRf5j}aFd-jw_%O|LbY_s@N~g}}MRg-Wa4(l4Wr`=#xm2czN_nVaQ{MYLZ| ze?{o0k3Lp3%}u6pDV0((L#AkG0NE8+gW7|tWEtdEN(9qaAgagZ*U}VDw;ToU4|wfG z<@?cqs3X&6z<0P?A1}J>Y^>X|g=3>ai|_KX(C_fKZwAmffnL!4eXD$jI}N0)XX$s% zphdH7h~OQ3F@_llV~6b*=9U`=@Z=OY(1tIhd04(pgfTt4)G}Q#?;bRI^32vOhM`<_ zKNQd|Pu~!2oF~wbJuN5>LPp8BOf1u$MvJFzxs0sQwD2sUAP@ihuK{V3CO}*bo=4gQ zZd^eY@au5tcKJQOIj6$e+1o7P|Rz;6flu#Rr}{2@-CP*b$UAIAZO(28G~uN z726hDY#iO|Ilq~9UwE<|W!?Foy?6vlnv&-%CV2$B*hynm&hjNbDZ#=}iOrMBJN?1I zKgin`RCIemS^hZB@NJaa;gox0Zh}*7=gyOGYyP+IrAXC5%{8pSieOe17DHFp&@H>Hl8ce*9D37j|&u^QoYG(uP^L$f6m}-X%t+`3W_{gGAI@eeM(2S32&7b zD0Jhc+?$UX&1ZjBY_5S?%tew3^M7*ZzQ4A@u-*~bO*7o)uFUh&tF^N8=nOG>O5B*f zHN3*A0IhibR$Ui!eoxpExmIRrV)7YUE#c2#Xsrk^+3w;7$O?|s)0DHm^KG1OQbR%H zmUI$32IMNL9T5g3&D<%oug}BG_KLehpUgCFz3zHhJ?1u)=qlP3^yndYaeyZN$9Tpg z33!k@^+Ugu#J1fMF5)yHxXgbaxa}8}Rfgy}&A?E2soZd|o*hwdFz#0Hu@pW8yjWgC z@1iVsL7gBvfSI;*??hf1s-MFCHa{r%N2XZ1pUn$Y)3XH__aD%e>B%`8-W8XEBM6{! zFR>KD*zWMHM(a@Q*HMjAI5cBeWcIM z3skw}=(r|7OD57?a(mZrrpBIM+>z?vG+wP!_8z-pK)FDRt@C z(AN3TwzhTh;QWilCsZLkL}sJS`lYceO!I6AZ638%fAVZv|P(`ch3bfUJ>jO^tI=E(6D$X?xx7g)> z9ol8GP!=lFJuVcqN_GH0pho)QoZ=_g6{}^@rGKxjqE77}gszs2Ev{FKCkR(|u9hkq zC2_O04FBw;37Ok(*j8B0RO=@$OBmDUYP18Qj2C?KRDA?=l(_GQ7R{D02-wuQ<;X@n zieSndllp1vE|&6M!;FA8F*aNuI;Of=c&R(aHj^%_RyMoqj-_|vMSrYpuX$ha-oxNY zvz{Mj2B2DQL{$?5p=#i(pRbnayOABe^zHn9KLH;ad!$#zoN`#XvaJ>^8SVYkSa>_= zSBw6r;sm`mbX0lufyU@H_r4^}GIdRLVw@P9Y^KV)rlncjj_Xg}z~s4{I{@NxSDm~H z+lAO;=vmc~64-rX`RYRM1+Q`Z zk@`uw&Qy-&jy-AOe?%9Mq86r;!c;M+S&bL(k0W*3MCgbhyPF$2=T4QwSiy)WfM%d# zx2wKcgjd;@W%JiOx}FOWX64aHqI!ZDJqb|O&Rjnz10w>PuGr6TuFT%?7f7G*QR*8W z(g(jNXucLH(N7l8y6y0*3P2}wV|jKW&7Z3?PoYGWxrp{>u>xNH^va!cU(}oNykR$H zL*f`-36cHeNX{}P>dSm7Yw&kYp-}(pyK%}HUjvpUyfW_ zE>BZaP6Db0{(&M2KV9;v&`{OlwVK`F?d zZ~7`TD6L`_@c34eG4%6q&?HPJ{#XVD@{wr84$3lnuKLo_UyVB`FQCrPQJybwkL!jb7@Jj=3c&sf>bjynD zslZS$-9+nu^f-3)xJ7C@!pto%_Hl>X*Ml~yR__uz$LHe^?XT`f+9_^s7= zzMNB#r^jIDGB*n$M_@!d^J+Mypt-1fxA{J413`-FjKD8?kT%G@1xab?f$)bNfZnFRKHP@6*f#}jF_YV zYv}^^5GeokI6j+4-(lAGDQibMW_*Il+DNrW2N?EyU8xG}h9_*2? z(&A6~-wqR|Mu$!87Bk)78=Rc}t%0mvVs}}3pOIqkB$C1Yc|uU$?4&ENFnIk+9L;$s z{otgB+Jfe@(w91g&eLZe{?WFeFU40?41PZH&zUL~7~{NejvyV)WURLzYI&4kP|x*i zrs*R;E3MRdnuq@7> zF=Y=UnMW(iFNg?jyB5%bor7yAU2=zulW*mx6y*}GcSEk9uZ!zJo@$S8&7I#(VWXn{ znYxG4Mtjq6J6K%Xzbz8_S98?NQ}7y2k_g7!8p^UrD2-^8_Z>n<|Mv?%IL%!U%6Gbw z3K|v=M)kVqxM0zr<_8%r6xo*#9`2MwR$QAl4x*qbxA{d6xdY3)jC?CTs!Mmh1hJXQ z9qq-AOp(JFiq*?rUQ=9aUn?mpMO1_oUal2{Jh?EulwJuG)IdDm;oIAhNgd)W)EIt7 zfeT{mC(o62#5TMUA6Z9nJPO-PyFIfV{bRZ7#9C=ESEJ`)U$3=wv~gVHrHFR?_ky+W zA1N1p{^-*z+k2e$F6i zu924uEH5}czF1)!>^lY)IVwM}5C}VU>F&F^zvHBAsx;?q#^T&_R5@Dsq9<1wG2_Am zHuHTr{;);!x&h(II!9FQ6(aej>v^7{9Gh*~+ZQuZHD{)gJtX$a63NrGHed9;qd@+L z`A|pAQoUk)I`so5oUB}m;QO+JcOng4T+g=z#vBm^Ya_5hVa?Z-6Pey}k!4hG-Z-}~ zMY%$E9>Q<{RApN2=p=tDstiq$E>d| zraw9LV(S*q6vBo-AJrFS5@Uh~`-4Or%vao=-%A0}Yu)fZuJwD3mrjAwYvdxLpg8Z3rs0u-D@R_vqinE144`rSYAnL?Wh#T#`>bTY44f$y`{Z@e76Jm@FL z5@s!?ON=m#adu6r_Tw@Fto05RrtRGfddp=ByPm)|f8HNPwOf(Bw#rxt>`hZ6OXw1e zk*BMHuto}e<%)nBdue&F*U67l?0;=A>sM+s@xs`$u@*`lIt^aiH0HA=79Jp>1t6b` zn6B#c4j3a6JL9h-D9r8C*;Ol7`-jU&o6M+4g)0m*%X?@Ho-_xLu_5%s%-L+O+lN`P za=;(fW;5pBBlo$(zUJwuJ`QPg5pQ7RX0#54&tXXi?Ofl6^?2Q6OpNUy4{N2WaEG5f ztl+YRpVPxmqsdW>yF=VE$B2aY#0r7X1PIcnfZbw$DHC?LBK}7JaY~EE{Pv2|<+3D_ z36SxKY6-+})3?8&SC)+inO~=cVxq}FU#=c*Ye`DZI#p05k&|-{xHd{4{BM9TqP%Sz zT#HZ|m5->xU&+1I^86gPqwsu_a7G>2kZ~G%E1y9jg&%Bz%hNGw3;w{3&NK4xSOQiwyTd_4>f zL-M3YSDrgJrVoS%VasHv0wvVuin=#YI__wS8_CQaj23V4*s>p-Elf(MXssG8&Uqh+ z$ybruP0BigxxItoW`5+qo?JU(K}19LO{W?BEAwpRAl6v;Ctsj0&@Get{O_QsGqMxc zViLa|L6iV_==2Y5&>ybTIs^yBXn4qBMN!tLkJ*ahVI(#9$$Joihaktb6^ez@LogH} z@k-NG_Q)_+&{5-;=lC0P^lBnNN9Vwnz=S^#O&hl9H}V1SRil&kZT*|;=cNv?M#+#F z&gZE$2!ZC@?_`CpyJXOVJgh7y)fV7%1`n+?`^Dyt{(G-cVlHidvC+;Q29l(9vbY|< z2Mj4^nnY-)afw7BXq_;lCI0wlWs_?3x`P#^R*lmj7t+PejO`kU8mrWAO~ zNxKDn_LR}23AeP^2wEmm;*wf*F+I34cgYk7hHe;LxWs3$=RM|2Y|H$FrSO+{ncA}3 zoz5+)*WN!e8dWruOcKJpPiHV%6Fr^Nttt(D&<5^wPh$uF{{czn+|Xu6Be#R_n;6}6 zsF0ipS7pJ{r%fi@1trG=j=31m`5O5rx+`8y^Y6=Ejt|FPtj*Fq7ygwl-cjs(c0j!z z9rrEbveJJ)d`A>_eO>(4w{vO#>E%JlgRFwY_;g`64_k5*wRk;?LdJ8a=YoiTYk+vu zM$!kIXSBDI{WFETP1Er^y8}c=hha+oFy0vNp8H-C|*5b zUJJdE!mUni2M_m?CydF5nm`JyQw76sxPXl(aOtRgFuFU_3uodXiXcID1quqUSr7z} zAVZTdYOB2(kick9Je+Tk*65JH51~d`FFx@s!$DKSo2Y=VDn`VB@;njQMsBeA32ej49x57xSCVt&bla(dVBae}c5DX?uy=wM6V|5Z%W4seFw z>pKN{-yQ zgNSZPYdtfr4Pqi29;v?~=~tmIdfVC~G*4G^$7K$MLQ^d=rMhH~%=FB>YY+2=V=fdB zX`~jJ!CUKuRgfRoW@eGI)yl`YUiQiSx0w@u*LBB;tZ&79tyeDKfz-P+n*Fz4WhCny zTetWQb9xeywB?*DFUq4i(83B}`2lMTMdaA#``5nzJR1XWCk_kc6(4-`=R&5lvu~|Q z!0wQc-zUcXzh$2GY34k3I9w;Jy=;Qv_7!r;q;%$$Zdm?JOFT@eKXm8vh*^#5cC#lJ zFO%!@U26@36hMAcR5SS=?hyOkJ-_5qw1)mL>(KoB-GNYCK9h^y*^N0K>(5A2Jl?D7eTP}VqjE;2I zfolVw(E9-btPuiR;SbSpudN-k21CV~I{;x5BW<4K@GcpLwCxzg{FpAz)`AJ(1pk}r z7DiFw{!<#rQ%jlIMqAp!bUi4FC{mxb(h1(^y{iM7pm{;^MRnjEgJie=2hf3L4|!sK zXjHX|sHtGo9i04DL0b??!m`Mu?_L70d9uA+MdX5Qo_-XURxjC;4*;(dD{?V=QSZ~& z$`Pgi$ zNk$#I%vl|mj3)5}6;*XvD4_JKOu5zCD}Mm+-OaARI4vqIC_LZ%_ocxCGtG9dT!=ha z>$5nrvxbtH)FWx@2;7*W)*(6At?n+of(~UOo)+c!<%AQ&3-9dMY7K#+yjbr2x*ilj zq<|yM{|Cg##JH*yjPEZwEF2PLKj*idb_@>Pfm1Wj`YVxlz@XhJu)H$wqBkk+9rU6U zR!ZF7gL>x1w|_Z_kj)Z-FY$#3@L{}MGCZ3E=ATnNC^N+ZELAM>g-wBImNa^J zeP`kSJ1*Mk@y%aL7JRCE{^S*Nx{_itfFHd-v?+;y_EIf6sIPP)^A?$9cpnry>i?c< zRe+}$jgh!^Wd_Uvo?m1|Upe1Xko(gq+#^ZS_|&ihp~3ZyE5n!0JYCj~<|nuX0)@vP z3uB|UA8hIiVfcTP*^PA4F-*2vEHxiOGhV^CapAL0$K8&3bQophXCNQVT}P=Pl7J$M9rC(H7ZQv6sn6J#_6c&h2IQSvQ&ES4UiVLZ~+O+la9PUP#D^t z^t8Rl%4aJJ=v9sdilv4jpn)-5g9Z-_Y!-Ia&)Y27O`Uv*P_&5Q2( z=rl)pP2Um}Ee3gYf6lbD+D=2>VEUM~75`*$=r)K*ljJxX53q)TZl-G_ZF}%+G{-U` z80F7lw%& zpdKLe-;3>isFJ;UWI7}b?w+A)k8_O_`zvsajel9J_F=2AIGP46UU9Yjkr>Mbd2>Tf z?ttr0EnxP^=*M0{Ch$r*ipHI;&g%!!F)L-^sPyMfp0_Xtr{in!6b9ywdkvrmE0$Ld zL7J5gb0Oegb^^O$LDt!k@d=3q9^k)9vBqezbjy$vvc{DMlMx29yJM&lpGRU)d1;G~ zJbQ8>0cEdml%YYpcYh-+AI&@VkrTFbG9x&h4lvZZ;pXY!jc+r;06t|Q8O?I%_9i(u zEEz|T&gr&0+PRaQ;ZQ3hyJ7gtGUI zYL?F9P#?|kfeKm$6Sl9KXWA-0e&d|Nb-SmNq#+`h4Ho z*(+HFwf-?#*1`gONE|oFW1&VK^V-Ld0Ci4b*(qs z#^FlUa_f&3w`oQ6-fn&Py^XA=8*gGhS5b8&QpU-a#Dh%{QRE&`!GH106xv=l6*q;Q z0A8(|arurb`k;qkQ}QB^rgb6JmT3ohfGv~x6uqCHEB$BHiL);Fc1Bl=!EY~ZJPR04 z?+VD?tKFeU9M%OQw%pU{qW!cf2QKc(FHyq;L{d?q%I3v-=m*(ZQ1te|K|a zM};V$4I&Bp{ob)qt(HjR5&zwv?^#gI6<@uW!FdF0uDbLi-`RB348+`wCZv~LL1U3a ztU@SOT5s_AuTDtvPBCu#_u`~Nyna*Od3(=$6FY~Jm7-#X;9Wn(AKqP>%-GG!>2OPL zQu6CL(ZFLyb&i9A8GNHc!DlN%RyGiv4{B;@j`(c7?9yB!}MR(=tMke1a4;)I|fn!hI zmUD_XOk%<*H(?RN%gx-J+|i;shR1?pZ3kPCNGDrUf-?PQx0n<>4h##Aj6amDx})uw z#c!41AB}IK-z%uxwiBO1^x~N_AI=-b5seaYtfiA@0Hr+uO?ZLId(QV5#0^6miH&I` zklpXtu4{|1!`x(gSF>@bGG>bbfsz`3%oX5aj5LC=mcknZ99)!@S?o@db7md{=mUP8 zm;4X-Cd%5ulPBNBI90~7BR!3y4)09Wh~bL z;&Sr$LV*AANLo`7!2nMOmDTPS>li#UJNM5-CZ1iwD;;&6^!ravfp=&`azD&muG9rd zze31Noyy zeowmYjwnORu1+_hBAnsX!*nEz&m!3o+4r#taa%6l4R{XHpVrEka|i)YpfkoC_DkA_FV9|2OZ`CE| zLid&Q*X4?c7<45Aj_kc=&4U+j)~V?I%_a>Mf+=hlL7PWQX)06UaKVR(JC-n>b`n2_%WCT2-WLA& zg`RVC!K$I43%F*rbbe1lo!$%oN{gfu##Zp&*AcO~_wj5`6s*HSerE9f{@toqg{GG5 zIbM>8WA2Q}{h4pIz z5UN{wmnD77a2nLT0F1c4ir2TlR&C?u5ReJbTGqNpPmeA~C$IPkQ#OqQF%3pL!(3xy z%wT9r)Z_|wn~7VOMcSxo0@UYi+3TglI_s-Mm{9{{0UaZ7W&k*<=t3fx`}Ugcrl=p z4rOE6ew%&_@UCnucDH#Q))gaYmSr57DAV@CJn)naTx3O~LZUyKs$74fb7WgOH6;ew zlA~Lc6{CdO2|b#*;rhy-L7q?O0z+c{tq`A^7#+Ge3Tt|t-&Xom{X>-so6M1?nX{M0 z7Hbk{{%Cp7Uq}FFaAG9ffglLPBfIG+6|eE|$=kQcSIn;)-f59-ur!&`Na-*`@H}>@ zOn-x+g!J%e(gyJ17iNHp{7L`62Y0$-i0%l}p z66V33qMh4_o}7R$33;P=1dr(gm#f%<9_jKN`J$*=N5Pj36 zGT-g!%JDcj$&6OIdgSTQQSC6$--Yj7Di&m$^*@Rb*~3-5J+u-jUD*`Tw6}hH-)62Q z{mljwAVGKLfzkNm5uUMS%|T2BE%%a*tZ!<>dLi`EzmMZ!Z{!WEn&8ncm`ov|pK4E( zU&W^(!>z>bft6RoI!nI)qv+O`$R^5uz@3Yd-Jlx1qcB}A3oY04Fhv#%-ysk^gRLoc zWGIo##E0GJ9p%bR95>vCFvb$^be&O;>Hsn&4SsLgOG{%^P*Rk)f2+MJ1hHw8B;~R+ zNiq(5R<_JRm4IYBj8R(KzUHm8H#Oh)DWS-G?p}WT%M>7*FOZ?JFqfXQTgHjnIyL(G z1J4m9BD+kueP~rhR3~}6jwJ3XgYZE8c&|g$8MbO0E_y)uq{0@!{2xPS;?MLS$MNqD zv)M2c8&R7^e$3oOI>snhlH56F&L}xT>9D!4G?S~yS;>_nUa#j%W2D&U{)2%lspDbLu(G_`?NnZwSFphR_@Xx!GKn&5>NwA6(}gyW z{{hb)0IsPoXdrA2|eY9C^DqHdO2KLNS?DZ$pxg@Z$$hD7v< z=}ywGl0Xh#x{m{|=6q?oWp}6FtVu@N`Dx21Zb$t&pyx8;n|$hPyM|-Bd#7wSbJv4U zn>1Z-^1K#)VeMJ4;Xx_wRN@t|cDz+j1z8vbL4Ifn53Ry^qz%-jjbDeBH|a{wkw7 zZ=}7nCpO{Egl~Q9yvE`!c--^(Op|}WJKwERl~`^(Eaq`$+MPdA_ipaAoSe3=({zkx zx9`8i*pGfXXB)A0r_|*1h1{8rdUfn+-rTysXTg9NzDCBdXdg;@9Fg9Mmta>-KJrGj zaUz99sE4o8ZlQGm0VDIqBC(J0&ZtKlizQo1KpV!O3))9l4!CgF&u2Qi5~E^qb>mn@ zrM0q%Dk<-~3W!6jOQoNUdv`}9PK-#a+-jrLvGFy8B>T-yTGeqZNj z$kqq&8()|o$NOfZ5?NLbZ{R4NVi|)C^QPZ6z(ajdi~YSk8bhY^cVW#63K?$UN9831 zyar4A@w+^V;{xYp2V9vqa!Y=elYCU`Dx$6Tg#4R%dP%Ffr^IHfG1Xiwv-~CBf~hj6 zPCTIJQ(hEd>Zc7e(ujL_@SbGtI09dm`+XW$AMpw9A1*njyTPkY#&ZQ~T-Zl@IsJ#< zRsi-doL2oP$x>?B@vm-J_<#~DmMg0NXut|&xBkv6onwJeaKR<>)L)|D`EGd8*7#v= z$uq!iNc!WTyVIRJq3-jwT_OjFKJqwAtv$ySd=QM zwsESHj3dI9o?qxt8ot_V^Q6Y%a5ORvpi|jBqpyn%RDlchGA&$cGv0#(xFaRU1Xd+8 zl8&404^zeoWq|QG*Xq-sOX@_yAdv-f`!2wWMktKiBTG~1VS6G zp9gR;7zwSDCC4*kWefnL^tRI1E&gbIEHP#9T*xpXePZ+PDdk=mBi_KL-D=AvTp#?7 z^$+0N+N8|2g|pCB&(W@F{{bWSrM(n|AA(GIEZ;ABRbrtUgiOmOh7lViJT}89c3e-> zzC+|yR=2*<>`PNYmF3#4b*N0YeGvN+`}{M{&eb#2JnmUR1A-p z1o4O=i+NGzAu!Uz#;_R=h?*S(mW9hgZ{ZK~o53TxL@X zJVPw9aCj5i*7*D5=(+U^1;_`T=N#W7KzW74m4?F*d^xcOVAwgSPDXy9%9~QTG07O7 z%%AgAd9Dc+>Y~{TZYz5aziq6+*ZgExlkfQM@FRx0+Hh#3U2%NxFT*zh6MJf)0?=}9 z$yUyNw!lop=`u zmWZl9RQB=hBN@f6ezKJQ&uzc`*A{1!TKmfB52E%@T(n5$$Zwm{HNMzk^q&UiM>8D;t!c ze+O@tdF6Gi*o}Pj`H`J}bhNa^dDNU2zm)hS-TqGJV3;?ymfky)ZDMXU#~&BUv9o)N zR4f3M#R6WjwcPD9R2X08OY}Id_qJ3Cy)s9PhgrHS6UB}MC&%WDcVneCs5;A|d=r8+E z)nl241A8)nupOgMFXj_24RFgv*p9A?$A?wc@O|AV?E4OqLM<_?eu+p~tD(ABw3hJ< zV6Olcr+}@ zz6?j0^Gdnq1w0ARm0$tmUA`Z!ngR}c>XNVR$tLp6?hV@iRb1rpzBk#A(5?bsFAWhh zXsT4b<5k$~j{Hw%MOLXot;LB5N|6$|b*)=$^V451mT986B>PtL*-&+wd_};ePvNeRQh-=%$n^BSx|0zAIebRgu%IzL=^XOJs+ z{fVMy-k+~$mo_Q>QLQ}N<{I}K!QNSKjBZeVdft%udo*C%Uv?+W@M!v!Qbb>?I_+^r zkQe-~#^ZNk1+HkP!Ya7Fl;43TwV|!GYRf+><-f})53UY<(O>%5 z$xojKDc(+6QGQ3(vN%a)+OEVAg=C7<~frE`e7QEQFUc z@hO6OG9S>hsAjU#?=uMWEr?VXdY8CEkiaMj8ihYK~8J+>a&Uk2PQMM-Q1K91Gt-6NFZhkA!(ck>eNMy62U#BQ!l4t#LpZRA4<&xE(X0D<$-Wj-4b z!F&HbiwB|bZ6z{3#5;jPsXYc%A8^uvf^b z0eRzS4pqaHp}j5d@eaqtR{{n+hg(OX>f0v8g?rQQ@IypEo>8?AO<$(B#XTZ@D}9Q1 zf(Slh`7Mp)Plm8XDz2WJNTVTzP7Pc>`ClvS2q7%Lyx;{5+>t5?!Sm_)KqLJ&wTD{p zI2aZx7Vdg#pBTa0%fRuc(q{ys1u%U^k1$338O(eh4xdt7Xvr^*9x6wtqxhwX7UH(y zdEVZucd=EZJXhBis-Gg_e5NQYVDZKEr{`DsQFVA~CbI0MDvqM*YSyQ!M+2Tx8bWM+& zMZCO$WvK!k`DNy-;S2`P*yB|96L}^-84!BJjF&~$=6_5QV+!0nxHJ(t)+`-P+RDhl zl`Au#0aj08Zm^scThkB!fJ_1)3aHi%OgP=^;29XQ>(`suW1HZ#Y8b=@%L~&6ZBahZ z)c?MmoE<_G&%Sv;dd8wEY#X)0?C!{DESu9+dF#dtDpE%nwu($CgGn<48SsCH}(h! zrP~5>>kvhq?a+48)N0EWTGX4VE<&^4G(+9ZmtJdS4fj<5kQv~-{TaBX3@TB|xaZu} zh+013BEl!lOJK99>Wq&LU%SintxZNa)cSiYO7>BpqHA0x5hGyIp`vd61`G;j29*&P zpZ^11wbhjuG`Tw1Eh4IkE)+Cr>CH|o2{1(?$eZ%dccS?T&3zy>#oQ3l&<(Hw9h!DN zgaV2d)D4C7f?xjyB%3>1sQlnP!FWQ9&ouul&pu{f*F%*OF&e|!l5KhYM;`}4?(pFG z@N8eS3!ov{u(+3|m;)%X{r!Q<4=zHD>Y`Z_W7d3>Yxm9S>;3kFtp^N?N0D(6 zk}vg!m!n-kqXYr>%`}mot=}Ty8th3dwYvy(E?{MUbvRLX{Q0RkCE5E8P6rocvCGVq z(w0oC(I!a-Dal#c!=kv-Eq)LZj?!4El>l7>b-CkR8m{WTx+y|;ERFE?X7Oq3oR1LG z3o;D@>`hw$AQLEkP%cF1^o*o$;Y;t&e)lm#GVB@h&fEY$9UW>g>CfUp-9$8wqkjCt z?me6?m_lyus;?LxU}^ANFi`O;R9x(&WE0Dr&9nAv_-xGN<~!$t3w@-?22Qlq^rjks z!T_%7!e15jm@4Q(S%MI-X~XVxcp999;Lqcp*8BNh=`@9*t`1DK?umF1&G^H`U>#8q zzK{GLrEH0X!XQJnVM;dp7Wm~y)%dcKfwf6({Txjkd^I7Otjoe<09HcL)KNrLk&V>@ zYeB%SO*8x<>@+?B9tKtNKrej=JfejLtYqKFdoVc2q_}nWn8}-OVQfyf%UD z6efJp&*Bz0AjngZ;=|kz&%MY6FmZ0_wa)RZtr+;s$F`cOiURWnD0fMbwPiJC7(m-C zxw0E@Ktt;PDA+CqE?;^&?v7qN`N3%F_<`}aNQsrkjPr+a z4>h@M>94WN<*IZ1hi~2;5uRz8n6(!mY7Je>?*6(}aNEr4WRT;rqEKJ+L#H;*#a@@O z!5$C$hD>?*GGAtnR8#n*?%|!2{}~OA%Ab8q__gWSSd?{;{PV#{v79YUyYL{l6n%OlU5TnHDxRxw? zL*^Mzg2?Yv8J%Sk86Yv+rt*^+k>TQH$vhte8AN8R@-xe%E4ez1&+u%As1*bWEpFXS z+k>Mt#1SM&_x3#j{dbVTgo3RjP+fEszoR@cEkgn90=DloZ~7&Oua-LBH*dI_O7I`( zM7LGqZ7zRdOb{+HhD=+x{T?#bA*_PQ89^F1^{mhJ^5kP76xje{Z@T5`rJUWIX+7DU zHmXtWn`z1Sf!B=snB(fX!+=A0O?x&cY(D46E0Jdz27)&7O*Ie-5A&!m`w|eRok%S+D?0!8{_wNxvOrx@YK0=SLXtyd_00bRit$ECBiEXQ z0C6F1M;3kf7H_6NIO3y=068M;7Ds!(|MZAAmdhdv5_ZBwH%Gb1KV*Ok?A8oTVqEg5WVg?E+d(uGL$TX2#3 zwlh@2nbsovE}|ks_Y-t3ntdGqav|JX0u?Qw>(Ov+O0=5Wduxw+_Z5(3SKc#9JmV$t zz`OHDYhT?ZEL0F#?WY|I_*s;c96>#!2HkNeLdA{zQ4*W<VPufd{^{d?^!9F(8Y^Vq{^)VFvmkYH#jB!Cfk}- zAf!l%Z1Mu7v5ngpA8lT?8h3(76v^&i60}7FA_UYY!oTraiGmI7^UPTzwZUmuA?1~X z(JiW!b_&X%ClqAzazP3P498UI7L6v;26)2MoUWZ!)tRvaLry<4{X7w7k1fED@hyj- z5dsGIFs}6BA0YP(DJ$!7W3Aw3WSNZF>U80k%((Gr)1-vhw;P>NsoF5mqP?3HWHSb* z@YAwsIvS13Xscw4mAz7Y_0!El)2(hXf0TfLL8~oV8eXTHx~VIzR6MPds_=ngrUwc` zw%yp``UOySEApaKSf6UBp7x+^WB9f{nm$;GuDcsOL+IkkU%guTq*IWiuGbt8`%5T3 zM#UPY6!G~63p5ceMl7daHE<{`59bs}|4{L$%VJ2GWIN3&{ISTDu=bNmF}c3vx*R47 zl~f9Qu_p@)55>8Tgg8IE-%5eyxS75kU}Q*uVpJ+#eZjjGtKh}$j=YzlyB82e@gUyI zM;A6Nm)daBoq_}9Ax@rHwilM~+u#4f%n&gO&kFwmx0#J@cGZB;4N}NhC*!LW1w48U zdwDqGSqh%w=af>Sgo|>jfjL`Mk(sZk5Gf6aLMOPEL$Sl`Rpm*etmj13!XbJ_hYd=3Zu4|C&oM=T&?5sdGDX(rX>_`73M`++Z_Wiy0W9c{wRQkQm{sqY z5~hlT9Rq>rBpjPc$i2hBVJON{p5ow~30pJ)r4K~KzPNivmZ3yLniUz`PD=v0t3sp} zh_%~>bP5$4^Z{#C56$>#!yPs%=b7@kpaGF&-Q_$eJDOqiLBMph5m*O6w)vQX>#L?L z-4rKh%m+gaUife_nzU5^J% zCesXlPfGXRZ|{S>FC{m<;p)yb=I;E;DbEL!a-)TZ98n*oW`WfQo@b>6s6>X5jN_D= zGCqZY2T{Ytu`zEk9NoEVR_~1%9P7soDTX;|*>*Uc;$hZ_$IrkG#Xk2F<4%Xd7hZF6Y z7uBv=j^YhyJ|r0j8@u1EqaaN>@??ooel7z%rNuVU$=nCz7%+zR=bQ-cn4U)*#sc%l zK0BR4c!B9d#EHDzZcAt0nEI|}dpAiN4~ApR`Zw|nSF=I4<&wU6L}L`7XDbLE{auM% zwOca>YFrqy{;q~5*Tx%EaokZez&A-#%{k!9{YVv1CzP=xr?^U(3cYcjJz8Y|ll*SM ze3>gAG!M*##{w#94tEwb2x%IC%{OU>#-To=2#WM!^6cM9)PMB`^$3J(1uY z>15@ifjYyLFX9h3_pWr+lqkBk79gdkVhW7RH368Uq=$&8g_ME3xE#;QQ5M&^8dmgo z=OFc2HuBhVdGmv_I#kyn^R;Odo(m|d9zg~b-1IXpvrje8yBP^zS{3hVTpxSLJ24iz z()r}}R?EVjQ%X&^iJ$+8D_$s6@+#a3G##v>Zlr7^)lN$uD)9X;wEiDp)w7$kH#s-@ ztnA{ctDS$;y#rjvcfd98exrZ=RvjQ8FJE1(*GlhsD7Y3dDEzK&aXHc}%&fYi7&ffe z>ExVuWP|oOQ2W!sdZp6pgS4pHnehR2rh`M3K9PaZsaL43F3;HkL@zhtV!*t2h2 z-yD`R>J=x?2%tAt9j#<<`~zwRP8`~Ycu{iOgK2gc10^~lQr=;Y9)&?PrkbmcXpeUS z#%!B0_~nrKODInc%B9EkN9YCK9Kd>HMDbUm5?L>ram0dq8_cBI_=t5lc29{$G6Z0? zrK=p#3*O}_7DOTHnW?w-Xq1N#y$_SWpxHNoV{&%8v4cMRiad7v@Q+Yd3c#{7(An9w zrkDGo`FXwAo4eO9X;2Cy+ z+=t6`J8{b9Ag=@E87LQeH~1Yuttfn5px34vr4Gm1YvT9-uoQyu=fLE<-Z>`m6hkQa z`o7c>c$XItXutHQ*JB02WZdWP@voB?L;GNGmZEQzs_^~3U=OG{`PEd!=<{4xyXJMA zHYXchuvL6=>?R?a`_HW3CxH%-D2b&@t+RNQ7aC~Rn0TJ|U)^Ko9A0NjuH8vn?VzTB z_PL-%im)~fRR6u)15d5CW=NJ=-Wy`M0Xe?*R?mMK8f#)&`Q*+B#TUZ@I|r@)^nN7H zSgSjo&$9P%3S_{2(NQmFe>2BDybAiW0nenN~Jp}=JPTY@l}pW_6&ac`r-7>%b`+$)6`WTbaFYfNxeC7rMWEi}rS zyfutdlR#THr#cA!D6oAF>I}+V+UKP$>9!6n1O1btW)ZS! zeV}F>0wK6Jq$#nj(L=_kEzUf=uM&sX8SRVX#pZz}ohF*Ol@)sQGv6!6quEhXj8MCW zLEfCRR`JH1Y1jQq<0&QxNagZ*Uh}N9b&WgqG63e!qjk1E~KzyOso(v!Dk?ls|ph?=nHgi&q+CHdg&TUv`FN}-AtdFg<+6vceBU$YE|G#I*+Le zr9a&;g7`8*{6)tvEsEK8FkxigG?;rF*7aM~HtqnU{0h(-`dj&<^HSRJ5|Lon3svPz zUph$2fK+UiKNd|(v=+0!eS>8ReuqaQ6%gAgnm$qhlnZ=Wf`|cT9zh^t5D8~9{4t!Hy5}h zL67pHRxIktz1VaXG^{cMi>dN(f=)@K`bvlC*)FP1@I@5!#kaP7X=q(b@Q@;<;xYNjZ5x-l}otY2tfI-zq`z-F(#{?(pr&9Et z!7QLvM}}@@5OT}tZFHc3C*$$T@F*S3G&B6X?{WkEi|4I<>Y0zBC;xV)3@JrPxV}5B zCGzg}^Vyx1>OW^4La?W?C^y;a)xSx8v!y4VTP;+d8M_D8$&uN$Y~8Q$$BI*7uUgNbs4b*)_$o%S*5))-tVnj%SF0 zG^b!}J}K*`56mDrBdid)S**=stj=*Ts_M4$JFi$*pbQD}v+Wg&ybEXf0Pc8w z#Q>v8*_J783OgaR=kOuBv7Uo*$=B~G<7uFc=Z1LgI4>eH&=ZH^C zxpya2{nTk2$=DXUei}at+AwOU3?el{MFp%Jw;O>dXe4NL`FeRAFBwV&0_+7jZIw^s zK~h)WG^JO^nHxZ{o7CmKY(*s(PTzqEA2i3Mtr9@Ddo;B0BV))zC_?=N7~~G1S7?o~ zb$xmu1~8`W-NSb=UxE;a7`(bF zgC4D%Gh=3Up+IV)a-%oIEg-C=XP)iRp%8&&S&QHFKq)w$Nt@7dK4X|d1(RKuEEN(= z9s?j|?bxK$*8^Bk*Zab^7m_KuYkS{6-o5E*C-!ud^eN2z4E3RG!mY^tXkT&B!O>IK z>j}%=V#%!?H3iyzeyhx{lM1CmC%*uBu6_;e_ay5|m3qB$6(`ZM)%ACH+U})4%9&iO zvFB{sIag~UBZ`mwnSZJNF`!0JCHS{H7rOC4&GAVkO=d63UHj`87e+3W*U+*zKl7)D zu>AMBazM{?Q1|vwtm>R^Gb=0QqTNf!IhyI$|Gwv5Z&G^pnH*T-mG^b80e!L+{zIf^ z^Dw)@{-x-PqF?B(&|mk2hm*+FKP*8Et1G*qYyY?lAuCTca#KJGl-w{l)~v_%q#EQi zXohcVjk~z-q68f0S$KxyetTTTfHafiX&+e3v9@Iu+iIo?c?u(Ng)erA>Ue;@qb@J4 z@BQ7%X9nU~6`Y>KZ9h2l;@fsRlGx_~GyW0HfN*)VZ;JJI{aFLH3(>GLi;BaQK`Z+A z0j&&ZO)E^(R;!E3&=+It;gu?6o_EOsd<<)i?yfuGMhv-_oD+a>?{Gp=Rx!! zDDVZz>pzI9a``BW#3}HW%h&y-6A!ZH+D9LMW%YLA4NlbJLO9JQutZ#C$+6I4yHf}S z&suSLKQ~hmbs9J}mKHvH6(Xu>p*f5YHAkUAcu%gFnJl`}VxOT5(c%uxEv@m^IN@vH zZ==shI0P_IUij#BO+@p_5laoD%%RNAUVvXS_x>G!4REtRYsKk8mOds>95h@ONwMBZ z`^J#T7XsR9)`<+grfX18}uEZU9czMoX#hn+X@CAwa-LuJr3$wtC*YhOY;rSj9+ z-0-i%IlQb@a{=uz%k!o4UXjd#17eR9Jkvk`9IY<}x@l4QVN4>93B1xoziHwC5-N5W z1R>MrcM7v;Bpj~cSNJC%<>tvX(!Ncg{TqeN!B~fp zDn{?pq^zHawX)|HEsEAnFbGkQ>!{&22hax-hba%W92gqV3I>PxqP&oOAo>cr*Ftkg zDH_zr1F&Zbqdp0rlWxN)!Q=|hbjYCXc*5C6W8`EdYCeb5@8?-{I~x?_WBba_JK@EY ziXjR>P2bpRbtj9vgxaMW))_IvDX}^yGL}?t9`Sdrxsg8FsT+34vS}4GEP6}INX2fl z>(dMjiB;N=H!F)5KTrqsAugwc-4v3NP-=`#-qX_l-SK|~GC+5T<;UC}P)!OW3`MeuJK1PqW`DekvX=Xt22B0Bnm zSRl&QB~0F#Wly<*k)L8SXPv<>n(F&m0@`U^)RxXQ38e~d$FZ7sKM$F7?T$@>D56$Q$o*7|9TZGCNX}*J4=_~pc~TD+g+Nmt;z%-P4WIPIRE=pEN-Lat zhT*{(Xl^c&zg%yTszh$RSRq|+u5ptWOi>!_j%yqoLqlr>R15h=m{4KVYkQ9iUs=J; zahI^>e?|eK=WoIo)>33_v5)hBwGJw;ma>{Q_T)D30)(LgCi@UT<;7h zP#J48Y0ABT@>X8Z`}XjB&(W*oMbo*`;m;LJdU44Iq|W{)rh0#4cPEo0%9qW>&;*{2r8we z-CK?Z$JoCM?}Z-tV;9RDv7k=eplF$c!H2+a97OQZBx>rQ)^YT}EQk)jU9mOUM&Yac z3c52%@+KagU%vco;rySA$LHBXi+r$Gs+Kd|aOO=`)-=~E>KV*0 zIm%ZxmOP~<{ROe!6atcAM5##+o*oCkyJH%D&hevlP0PafL+vqY_DzV@2~+j*TyD~X`rElMp=w4}fIXu0p^ zM(+pBKGqbpNEV+gMlKyaNbbXrb=t${{TbD~y!?Fg+u?ECs>dlFW>K`rFotssph9xL zN1kJlo$Q}!)*)2DnPuO4|3k^Qc%EKyT%CO7CdPUmYN&S8THkI=^w&Cl9n1Tky|Td#iXtq)6PzaA+ECMw;*nQ!1rsi>K3JGe zO72Nek#Kv;$D0+(m5Eq@uS+1r^5MFI#JIM1ML+LR#nUg@JK&E}QSxWEg@=Jvy)n}DjOO?<_2U}SDIq3MrVpi_&CzT*lpOO8 zI7IQYJE-U=iwV9TmF(SkqF$@n^R;f?&EW7U1|%A9@p91qadtQi{MJvmWnv@rr%~ji z*qVFF_crkmhT-QXQ3xBPP82iFJ6vmn2gNHv%?;brJ8>=$DZ7yr#VQI4L~+TCo5Dd= z-$?gJO>VbBlu_1pH@So9(L+d@w!l!`m1jptc;kbGtAEfw#`QJhsg|mx^H6>P5UI<$ zsZ*v%I~v+(xU@wv6(z0CPH+WxhJFk&$oPw6>qq#?psiTz3#}@Felq$g<(6A6=;N<6 zn1ma3iAud7HNyHs`QMQLl#4Jcs(iKkz+w=oW4X{gM*L#tx|4PY6+5gm745^tD{nx# zYiZ4M8~cT5Um67wOLBZ2#O5Rg5d)G}+(nPNp{T<2TAMfs#fgw6+Dy3i#qDN%hOqs` z+e_9XfMic4oO?Oz7?>B9ZnGrEDq!TI&ez%()A;sN(r%wcZaiKC4i9GEAJp4^` zno%6MO=DD7IoM2{!|+5s7#V7Uii?X&ez+Yza;M-e;ti2Bi zBo3$@+RqF^rlUb8YKN9(=ray3$t8#AJ!}q>cyi!8H|j&642@)HOBcLaqc=yh0id*> z?jg_|Nu|aWPA(UfVc;^{3C1_z77?$dW8w1)s-4KIih4CJMZ)5FQIauIQ&mljxNdxP zM`1uG;<A5lV=v7On!`p=jg(!0fHI}$N|u4O1m>OVm9IB4|+ zIDq>1n+yuf4_8!qyj(z`@JccX9nr4bJeEU2elDwR7RjgfWPZ*#mRn|+IW{)(~WJVbW7WE5bWwu&O&Z3uN3A4=@r z`Vh+MwaH9AwW+6j5UV5;m$O}lAu>gTqzh|T;Rgv(7J)pD0T7v>n>k1>4+)YK0$3n|7JOo&ITl9QO-HkLHC33skdM)0CTGbUq zlsmk51X?4cy0rBCcFw3fPw!_v`3y zc=S#Ia9M%1+`~Li4n0n4`XjZXLBv3xl)id7C3_4-4Luv*pw(OP8Vb52Q7Czq&LNKX zAnY#;kGji+A`bMF80B2#l)0QNeEFM?Q=T6M4LsN3!D#Wsr^-8w%i&Yy3_8>Jymq=G zOMEc@%_=-U3vf)+VWojDYz{$miQ(cIt@4*1ReF>Ms+4-QL0Ez^d6&35OJ}#lL|-zJ zM*8wgoP#CNKEzoL%xd1Wx%5&#j`K*YwK^@?Xp$$0E14(|`LxD0pEn*}5s1 z3R%?icSVT<0XaW792@UBltBo3 zU({4APKg8BROV)N<{I61`c8w2@r;F9vS+p5W4wk*Q|r%8Qr03gjmnJsc$ z$mXGEQ;#FIcQ}GK?lwwJ^oiZI|L(o)HT=u$KV`BSX@;;MxQ7xz4szJRf$5n|E5gW&nRD6 z08{xl1|CW3Q!La92{V!G$QFH8n8m?0dV0`SMqO+dVu1E|tlFvAr8V|1SJ_|gNbJ>E z899Vg-jVlZ9Ip9G6A&%wUi;MPGC~{CuJdMlI>jhbZrFx|lbAU@)T#qDRry+V8Tt(E z5P9$YDNh)K6NSl7&o{%56Qh9-H>{5rC~6w@BrmKWWnA>F|FrF3Kv1^z$M@g3n`$3$ z%el2TGrvRoNIylFaZHe(CU^?OS3Cy(lLn)A8224m9*Ln!F@X1l{?9aVF5Dnm#drnB zp&&4)!=`shWWrO*L@$z%c3a+g07dtO+7!R+6UNTVQJXc~_(sNoDVj(nzpHZ-N=d`q zPx7-Z`N_;r3V*K=qNZ@LFP?5!#;a*BxpB)>gm%z4WLWXRqQixi@0hsapEoJqJl5pD z92*^=QYrr^Gnv;%Dk6`lQ0uJT$4L{F?ufm;DoI0+Bl9k7@S-K+am<#IQEfq-cz7Da zDd4V}G1WywU_k`=Hkhgt29+N9koJlW5Vga_K`GF3i{b`YAL~cQh=Z zx3B74s*7S?XUL(=6Xbit$5>Vpzsl{Zk5?RKl+O8mJ$X4H?pK4ytT#}pH~+-+aGHtPcTI;T`#jHG1(V%s zrrR9%5YpuTQbsy)qz$VXE1`I%fbz>x|B!vr`O#COU3Oc`g>%OD$c`1KX&Z2XJEW-e zut#w8tQdE;mraa|1cJ!=@VQ1tsAn^ID7&b(tj^p(`jyV-rTaYq312U+mdC#jNRei= z5=kxSbD28teSpf9U&yte;nWDu*{c6n<0#vGR8@ zN{1yAak(j{ER-+YN+0RK4QRkOOHpW4o`pU1Axe$EB01syF5JW#+*=Z)!BFQeM3QR1 z{7EE?sa4k8y%==wJuk|~`2&uW^`2-BQ^pWe~ zrO?j;RQnwO?hjhFIq%Q`jL{`OA&nK9!mrvJvV0^xx6C?Ev;gmQv8(TBh$M5yNV+jM z!NUoSdt`mc_{7-0iInjWHLc>H|BvH71-M}+$smf!G+r4cK8@L*KY~cpAVL&fFWlrz zXK0UU`Ygyb?mo{W8Tf++mp4>>Y(tT#1Gkp_&^YwGG`CDLH`HZ+^^JHtg;`w%q%NJ? zAw<hx{)MPvJ5fg0D}J`(70XauUGwyN3J&j+lMwDJvnr z_~TMayOqRN;1m38DaK1=_gyuKe(X5wLGBy);7Q_ECDc4Fpd!W`e@_a=+{xf<{X-@FS_TN1ng{H2o=EG<8G_kWp%_J>~dt z07b}*3;oL)-D^uDAq8+?$D;pAm%vwBUdlLwK1lXC`+|wpDSUr7B`$#zBvSAmrCFmm zz4J>mpNd1&2|iK~0C^;9n*w6x4QQ^HZk=Ulmlv=OHY6X|KNp!w*2f+Q-0E$^%!F$a z5=5hZLM1zECI}C|{1(YJ2+}|qYg(=T^aW)F(X>fd3I~?-(6iuGkaU9O)=h@#kvd*~ zBZY4BvbBp+MyFc7DB^h-2+@~~Pk&Mh?Ptp)ZL_%hXg&!x-|y9%B1ms_%eVq@l%Xy3 z=+{;_$`8=?hovXKDJE)*z2I5h6;fZLO;gP{A z2_WdGko5E1h9>k~35@QgEAa2!5E2jF2q?o?r??LMS}9c^H92_i3Lj&-IH7;$_P{Az zY)a7OMs}?bP|(HKyOYr|(C zVOBC4KRnT0vKB9py#x$7r7YYi9|I!sY*>!XJs9z-nRXC#ptOJLjT9P!mKC`^?k1do z1ENM^{e$f8pBuLIsJv^M8X+Euz!bh+EDytv;;Tg47OyCK^0ay`W$tv#Fj7bu2mVyY z{YN-P4JfT)w8Ra+%+xwR@cC9uE{@zb%_`d0ZziMYi_VGM=bMeRHYO_h{eAdmcH|UJ zI#&ewO8GU8GgWf91$I?>wp!*jyC5Vp8e^m^lUqy{Rjh#vUxJ|D*_iJ1L0>^v9L0}h z#o07RD_UO@{qGZm$o*)14)<>C{1qJuu+#nleHLo5HOB|-8X0I5(HsB~3KN>P(Z2q~ z>Vik)s5=zHwrXdUm+v)U#*sPF3tqC0-`YoM2odSW^jF+GW9x8(;K4es{dC}axfJ!4 zQvAr}$qqUPjSrP|C@d8ht3tQ8Rs-rO*VjR!p=Zzalz64%5E(H_ieq)7Kl#W4Vhutw zP4=UwKHe+vshtq>AHkk7sP6C9{IMOSx}Ei8@gERFkTi5v|1lqMS9DZ4siv}0Y9Xdz z<&gg?{Og7rXNkw0R80d8^3qbq_TOUDsn<_oB{-WHj-c#f+C56 zr@Gd1b1K3ekZ^IezS!$K(bz6Vl!mL-V|xT%X$4GlHMpSs%A0Fi%cVhEr;DBYr@VOYqCIuAV||Pd?H?!!)8d<1)fxZ-r`9Wkw-?F7aQN zUiAjxGC?i%6aS@!B6665uCv>G(a`foJjFhgj1=BLKRlnplXBIlBsjP-{KRU~tdx{- z`r`fTT;j_N!U+wMc6`ZJlVP;g+bJAh_hEre3_S1ayN5*JLwnoni;k}%X&TTPLZ3+1 z(&L;$O5yW+BNCBZab(>Cy^$v|&hg=p6LO`iG+j{?kn9+6c1ys~8hT#RW$BGQ??+wAHJ-M}HbEK!7qLHn-~s*M{utr;k5gD7p2Np`{H?^SoNK zH_E$@fAA}{hWEz}?=m+J3=U1LZQG@G>tlYaTNO6v;Aa6UFUl#^>gLH9a4x>~nBsuZ ztCT=ExmErQH=5e_qS^>*B{z*%rovpzmHNiaSR7eSzictL_5p97rhe)0B5z;6l@jju z3$1S_49NPj{`bTcC!j`#Uy(!4p^?;5T z`@XjG?~hm;o6K{Oc+N~bTr($d%JEID#5TRz@8zIg_YL(xH@&`;z(JocYlT~De9lj? zqo-lsQO}11DZ7o2(~|$FzIlz!8v9DNxqC~r>M7{QOxMWhd;CiHDNDX>sUWLzVO&Vhc2;(TS`bZPwyg8ZZF=Bl=R?N12>=X&av8^GP%Se~(F5d9 ztfwPxb|JQhIkZKaRnk47ItgbvVEQo2HXBB}4SI46seFaXFVEg(4N_|TNNfJ9o_AW= zU}!>Fvu9n@GI@%)PqvEjE$kmHrX$_ja(4&k?QO%Y+D2Aw2_aOF6>rVOQwADTRX+nU zFyd)GS0Fmtn|I+12jW?ULF-9A=Oz5hwdURZBUw__yKB$Oq~4^4RJX$eQFvROt22FZ zdO!qZyB4hRX^Z!qpS8|Ms@@J@`p9WJ@R{HEoiCkw>B{FOg?Q|YfbLW}Sf0_Vc+uY; zmFVuQ{D{9AqukMB5u)y;Ty(d9(7jA3{c~+&fi*zH&b+wmA0E(>UMvSM%V)x z9sL4~xH~ku_@a|>yn?#NoGNTUs_-sDtbPz_VbFON^@Iu1nVd6FF`|X-Jfd=6xmhFvHa$;x>s+gUCNR5GNLAO zTff@mQ#mW&k_3K)0&jroZd%#v_cZnBK^*$G3B$$iOqNjg`>V2s&br{75nm=!7iy3g z1h4STRpXBY1{DurUNc^Je^G==U;suw`qK}61c0rsf1XJD3Jn9Z*hZ{0#Un^zoNW}$ z_xU(3)g6#w0$!R0`jk3YXi)nLpRNjiM_d)#ZAtIIm+=6T6&LS~b&WC5%FO4j3V&Cu zxQqPjt=^Y@JQ^kuB(n|ChgqV5641t>?J`HgffiRCRx117F4r;zApzr5=Fw}3f&*MQ zYU0b?y^VJ^Zh54evMX)o1^|pkzt7?uNoN=u9rz;owUlh>->s0nQ~0sP{*>p+Vjr$0 z0dimHcz`ngaIau!hf;|ahypopo@~uxw@5c%97CBxapi&y4FNAxP@x*gY!YIFgVj&N z*wQI27vI~bi-!p{kxBARZg&DqYJ#_69G^drNH!AFwPW? zwaAzl*^*`wMrODg$d@P4ORFm_{K58N?orSX&sG@mQHDUmz7@+G`s=W!i-_PY1m?%txO+9&K#10WbwUD_ zq=4gcqIFw*yR&h`dzV)VzFBxwlzYRBtg0;+%u6WQY?q{$@{lCIs;sSFKZ?!ZS7tdN z|DKMp+`^bfUr*VJmbvv`{QfRv2Mev%Y;P(Y`awZO=@HTCCHmLh|Se2n#21YW!G6b@4HZhe^O_MOO@eIN@=kE&Ii{$BQ}~VR(#D8Ir4OX8kVdd@?Vo&l+-VTxocghPwvlOr zayu$<71B(9G$ulbq)2%KnYNtACYZ}VmA6z0b-5-2Fu9JoZa;3q32^2pLg-cE$f*Hh zya_b->si=${AeOngRZPa_352NXt?O3vVMFz^FLJYaADfnZMP5{7h<`%v-YWCz5-+e z!Tu5PE&44d`&fd>|taJHZq?bB=?NdCs8@j%m@PL^P&GAb_KjSX9Kb7bg zWbWb3yLaCF-E?;w{*)$_yGFXRUbprpZd|gpz#uPv!$Bw4-S}IY1a}2d{)E!V zLcS|+8smCh^QLWcBP{qk%r)Z=P95-vFA`L$)|*Ww!4C%hX4sHiZWKsjO6dcHt6*IQgBZ3?jvt1uk z3!u_L+^=RLFf749J5$nnz#Y5$H=fo65Yw$h;SCj6qcIwg(C~wDS{_$LQdxQZV+q{n zXo-l&^iRZkrCiVCYqpRu=qPyg;l^rGGxKvSzT~h?1m*Go}sv`ux zQ_(Zae-Rz#)Ykpvbhf0OB|+CDAXRNusT`=o-M-EjC4!;aor`xuPJ!p(iZxrW_MVqa z0&y`c+JZU?tr>R=3T>urDC8za%_-}!J>7a2uQ8G^QKK>nNz#}-xK%%FO57d1eP`p? z`+2#Q_?!7W-0ZZdE3%c zN(W4?9=+pAb(-jq`49Ni@su3?z1LL87O|xFxI)5G9}DIWHzS}v4?`%@U`=m|E8JA$ z^%R`GF)6Y1Q)iBsTY*BU`bW!d3n_4Jn|&!FYsl_mMAZ{1z?fr;jLCs^Aa!(2NtLh)K{*@F5 zRsn0yMAv=a>})dLI$iz zG4c13*95S>X0n4uL=`)(Ygnq<2ThQM+MQEE$dkgR6+9l$G2!g+IIg1OpOK%-#qqBS zf6a3C(%pE5E-^3-*dz6A6IIDS4N(`PGt*J2`3St}ywKDhIRaF*RjDD&?fNYeEOj6p z%V&PmtnxH;S2@P;^x;=o3M(BlntRqv&4B-FH5v_)T(=;>X=az8b%6jSaDfe+?q5#X zaf5>8V57Z(-fIXCAzsvc>&`tx$F^-TQh?I_?M??JzzQ|Uv~ipH{8FCE5^xviCjFVu zq92yHi!Z9hVHiVKzYRkig%Ll6FK+ksQ z^N9!&B>X-q&$1gPDaKh&uI%Mu}--euZqlYf``>CG68Tfb*1 zJ6i&KWog63(0GI~OI5N_>mPG-w!|OpMUuaFsyn&BB#Mp6?!=$iOMs8X69YLX5yc?V zysq`yfRG=fLj2snuC_j^w>zbI+n4I8=0KRd-eALZ+TPNoapwO$U-UHrbS8|h@a=Ew z?OgBv2e_G%^g-ox3a)yk)U_u1Cod_35!>pDa|t#d@i(09y@iJ)(w3b_tqin@0?9`p zSc$kv6I#7(&m|9pJO9!RNS);vn;9s$6#k;Zul_rS<)ZB!MnPlAdSX&VmW{dcQJ$;W zZ4WQ2a7%Wroilz6%!zt2&?4!ppRrhXYS`YSl<$b?VP=|gKyh?Zd&y^6h zxhW`>4ymwDGN_6q{h6k_(^!DgPEWvh>gD^7xekoCFWXcawUwPZ4FK| zH{2qU3``f)QQ<7P6EmgLNTFP-&;Xy_c|6vnAp(Jc3o(vn{X7MIdCC(X%|VbFmx;#` z4~PS(DRVsY&49NdSch~bqq&)5WH@$3#w-i1k8X#)6Lb6hniiS?8`Lp3({c!M0I=Rc zab`ul_7&r7W5lnFcNrZ>GyuDq@!sq{P%$W5Vq&9>Y%{l0h}@f!7369g;;?bNlz&3{ z05X=Wu?@gD7O!+$UPkpuF;k|mb@DPv%X4QI=#-74$nv3S6kpEQ8F`ApYF565M(bo2 z6p7@c{F76W`3_9IwoHa|SMccQcuV15dRKS4@XEpXrp#4?_Ip&IC)*~8ZT5(Xu~0oP z9Uy*7%qLplKj6nOj{hB?URiUNWiiB*c%V1;Bt=4`xQF@&>TTXLA_|mnkBE}`QRdfI zQB1tFP;=BRW_)xAlMt$(G_D${oZqSSzmzO1xo`#NNHzsALGbp#4fvBa>>m^yn@cFO zI*p{|)Q@~zm7j4d7>e)yrn4X8s1`rLX`}q2WfyRU-ppC?sT$P}#~1?y8)G7q*7o%g zs*~n)?$Y~?n{cyVLw7Uy#|9!51G97Pq1QPzTnt4eOD5|U$Y;!dfl_KdF?#WI`#F>N zyTmHHURbIx1XR3SIMRdYWu38)4fsv*;Jb%7w0*Lp6^WF8OF z!evpCbCt*{idaIpBcmxx|HUvBEvB~jv&D`|;CbuzcZ%ljZ)A=1%UUc*S{e>Nu@|A(?syVU!6;C|fO9fmQEwL#tJ z#=6OBhq~WZ@kp5=9^ZL4(6YGY_^i%Ipd)fUgdz_3EJ@nwOJJ8xGDqWi@ zFXEI&lDDk5gnpTHoqbtvH)04?_nrVvLHnayscCXCnv$b}g7W7SQk}U)7aS@q7BtwC z^+hj%I^@L9DchjUrGtsBmPC1uPuDs5pR5&FlH5*rW6B&!^B2 z=w`ADPI=31$>lM6t=>wJI4;mD?xeUiw8Az)8=;Q+ml==F5@DTS^j}Q0)?g}`;`2yT zKrILT2f({4Ft>2a>65Pv}+ z8iHZAchvR@zOyXK_OL*Q%-k$9=S!s-;2+&#v}mbc9Fp2 zQ3p*C50ilve>IGC>Az(~YQ;^PykjOTM8buNNYm6ub!?1{r-lxRs0w>lJwOVuDr@^_cZokuD6rxhnu3~KK0rdAWPqPrOI*x zukm1``6`m2Gx#Jr>RZI_Gzp%2@7aX6BZ8a-ynSS}5LrY5#4CNklxYK+!9V#;j3*=0 zrT~q;H=%3!`piL}Yx*Vs11eFy{01w}0~BB26~iq>k}|8f)g?amkqk35ZHTmGa0UBK zK3<2IFVi}c%Q8OE7$PI3J4LfroyRDEQ0=+G8=qJ@?_tkF9yP96!yo`;JjvsnEFA*= z!>8CZ#DrSbBEHQkI{w9?B)y~ZJpE*+b$=gb^9oX!cWYXk1O+5#>>P*dQRNOXFV?HX zQ{sHY(K7-?_Q6>ctU@Z8Gtb7gb*MPnNHf}y=*~`&QX&#FXPAV<@l}e^pNCe@%AsMV z3<-C+P-5g|#E|%WR# ze&6vBfYT%+XgwfivFipZUhNxy{@Q-(=s3yL&54uU;0z0Qal`vdq}{V3DYiZ>(Qyz2O1nHvWgBZ%ia92B5Y1tAN6G@1HTT2P( zDP;;Or5ODm@Q3!cIVZgCP3Y8F&=3HiQ`L%!q%I>R>PhY`)Tgqj8Ds?WOPM1H;5Ow9 zd;4R@9*8@;qJ(&2h@+YbP%_dR!d(%HWoO35hcxtq zB@4TAp!IRO^*`6^HiYVgd{fOyXJ|+ivtp~SryI3-UB}Px|~3Ity!r*A?U{2zt3+5Azb!yxW!M6*RLhaFRvBw{{cn`*D5zt z@_gxFeRhTX*E=n2q{@3$Xwc;J+tKEm;WUcw;-(zV+dSN(t|tjFQe5J4;<*yZ@81%^ zdSFm4E6L&~oFc%>Q#*!S^#@l;Rlry;v`OM2A|i?2n7Csp1ovE82tn|{Iibzn%Te4U zZ7{l=iT5JC82^wF&%#!qbrq zf|5l*pao})bv*ayRM3q-XU_a|27@IuE8Q8vT0e87_InlSe!!(H)??+isOxFthugL1 z6`dovv(dXvIx|n4mDuyY`_=*N(Q~nt75)(u&-P_MN0*m!>z$Qvm8=hZ&Nu zvS@nn4!^;on`G!0D8*B?t@3~zC3_wmIy!WLNG4*y(9>i1D`sbrEY4SQNwmqI{3O#o&9{qNeFS|ju6N{>7 zxHql{~EK}A!VbZ*U9GT3i3Tvnk{|e*Wp;h~H zV#1d~@O73TN&50Hxy82Y51ICYnEPe8vd3EKR}7k$6@d*sAQI|Zhe~ANa4pek*XEIN zuqM*f)7(B)utqO-)wP-QYhjfyK~o+af~D+V^FdI9mBVxb+$ej&*ZV``8tVtbyRGURXM*J67TLr!2)t53`o&U)zCySxA4` z3`^cO<{v2k8^X3`GX3VlKAd6V&C#WDPffbqUcJ3!rL-m@PO9Siz7*-9afLKad8F1) zkF~5xhuXh*eqG{wAAh*?4EVLv%tvJ;`?syF`m@zj#qSrKd$2eESYFp{8Qs}y+(z<& z+ynaWnXn$`0y2jtE#_bV?w2DOK)Q;&kK!@>>Q=wwJaG8ubCb>&WL!76QCopcDCer~ zbW1w-w7oPt>sFU7KeQ@-!|W52t{C69Z87s#Vk*Pp%>B~+6Sd^^8D?XXyuP13O^92w zRx&q4Um|*%<^_Sd^Hn>X%kfaHrOnCslcKdc(33ZxSb{L9cOdq#~>=2Sx}& zb>09k?QRcMq)n>$l%U?y85eDW0F#Mq!wGuBGR?%%P9Eb56}9H`Fo^&fu{0zcnkx)G zZPY&tkD4EOa#4_>eMGtUh<~Rd=v{)j`^0efJqlCi%pY*FN5xit=bBx~B(K_p!_YH>5KPLSr%-C5 z(-R%g62VW4U-8N0?lvi88F;+$d8}6-6x+WU0MJoq$plg5cb7AlZ%-m-bfJ<~<0YvJpYl*Z*)r2>? zvs#t2ylI-Vqh)4?AYn4ytZew0b~uLo@4L|E`7FvVEVK%fy(DRCSCW$3W?o0ig-iN9 zRfW>tg<)!6fSsQ}f9S>?NaJlftO|=(>tE&y6&3sBHNkA6;|Gy1aQp@#H|`rg+kNDL zSeHTkJl1mI`lOV|?LBV^kfFTd&rvQH#PC&4a%i%+&A2~jZZch%Rbp>!Yq?}%v9fO2 z4<+sQQV3%k_^S*&dA+C;boti9{+vhp!5EhOBR||bd{6cawVvr75?*P>_$nn}|1gz= zO2fh{!wRF$5Iw41Xx1T5i%}IqqH7*(ZY5Mby)$#`f{1Zuqt!(ew=T2eHT6|DDy~vN zxAIfaL~GJL0Hg&GB2m7uMkNe1EJ;&W zWwb+^R=kPjA~ADldC|2NYK?dp_T=joe}{%Xgs=6ChyendGS?VgSImN(cQhGO^qCTn zPP=m{nTt=-^0UTLEYCvv-URWDIqbxMJlaKU@{WXeDY2jFqTD3snPh}QY2jzFZo0qlCZ5?CB;EMsuEu`6&_jWdoL$XcW5e(Jw9vvh2A!H>6 zZ1F48OD)|nE3Mvi?emYNxRPJtm(W4|7j>qRc_?y78Z~3dr4e8cqB6>EnYBSlkgP=b zV6KNqtvXK{z)BQxO6Ty>Clms#(@vUZba^}t+zR~2QddcbuhjMN)G$GkkE27=_kj{wVGr6^NH3;E=T_Ipby3kN%MTDq)*^g-l zSOqAoaOBq)bC9{k$5Gy-3;Li3H7uo>PMti$?OjVzDc2x-%I_t(+uDwP`RUg0Y_X-+ zf$y2!(b=x|+W8Oo(Lw9}C_Tn(JZb;%HfOmSKp>YnQqh~@Rt?mpR4b$=Ql7yCJgbmm zWe;>^sw#zHJokqWRE_po3fO{Z|C=ZeTJ-?=$h}tr;ve6pC_Bz;z?y_ymeA};#^}d~ z#U3ESTy8z-$m9^ZXPtm}4$@t4lSuBo`?YWcWnI@$3yHeInHUv5?F{!2L3yv~K$tvkMdPjc)9Ka4$+wWJF`?HfI4ujgdv$QJr zUuk2jtm6&iD=u@C3P{!NGf$W-;5qn@0OS6DpQs>}o1}a-XOu8Z+q>HopU#z!S}zT7 zF6(u^0j$kGP|f*wHXG%bxh4VdX15D$#4o9Sf$M~RJn_V*FtX5SQTO}mN7 zYA|nSV@WP$adgXi~}`S`=^w6C1P;%;3sTLv&{^ zO}spbf}%9PMBQCW5~!Lfjf-u)fLlAgO8O`0Rc)yl&UtIF)W?TYVhzMGDOsxYFHuj< zz1QUfa&xft;LqGeKV)Q1#khWcAfu60zm%EmyL^bm^+~tZ{&j|7{*{E$qeJ7msm`yb z7sl~*ez3D%Hc{c73+XW9-7XzxpOzytJGhK0PcDhKta1_!&Ny^?z1n*$g7t3grn$#0 zTWkMj#m7~-Yr&YU1LZHr@ZU>u^0E}0E4Kr}q9+NfGeicl|OaT3ry1pI~VT;j~7DG(s6Q@uYUjv*+{ z`82Q_&&{yLo60N`$Q3qbbCs*ap7IjE-y}C!q#wF;ZJ&&P4sYDWBJL!T zi^@Cx<&h}JBI&hk6aoFEwEy1m?^@uczC?$VnbwP`HqSAw%yCvOvV5+N>0?cb(#5n_ zviUnOK}ub-eJ(MkAf=Y*mEd@M$JqOGzvyMf&cPOB%7K@q^U)(e|G)VNME|K$4T+)% z3k&bUR-6l!vkao~Z00WT1IEuoXv&Pyf!08UOal_M$%-YIl73$2jKW1pP0Uu76hE+u zq6;?aBzjp8OeM%dKFmL&pEbH3y$v_nDtGUXKjL~yjhMLRs=0E|4Vbo|FG6}6+*`Lw zW_bs4n@=Ohti;@a&zM4G4Lp+ZTr}>ehXnrkE#R1ra@26c5BpshvjEPa9mTEw|#m-ekQYJUZbcKep$pLBk__#)i zLi%KzKI41JqST%-`n)l)C{?P9kaZ;bzKuaFr{`?Y9t=as+w&O}aapu$tJwTJ?Fz-+ zNRWp+o<8H+x_M+;wHn*m&I9F~_ztosu zHs^z}*40RCqnrvDZ_vf;q4ME$o5}cZj%;-JeUil~wCR4JdHS@6-+PL2GGUmhU{o3? z9-=?S-l9h3oW+x@^7b^CBF@R8K(ZwBpRfQ)=Y+d&R~Ir=4bWv+cpbfMd0 zF!45=Mh%QvV+7kH`<;Nkr-PeDEuj>~@M?#ufLsemUp|pMD2R7T&TV27m?!*TORu*i zl&M?xBZ?TE+%$g^Za=f*&Ze|`r$x7z@sW<{Bc{3ip!@^0)u`BGE%MCq`fcyN!Ls~y*I~%`KxFE_cOuE!7D$%cndo>8-Tg?LCzrImM zx9*~>2PGo!RQqQwi)D0Ej5oe`atl6shH{_)R(dwg?18m>UOdQV>@8pPdRWUL*I2(`iS=GvV8EmVJP0}H4o|^y`^xd`Mg&lnd^NprkyzNQRE`PRIPM!TKE<0 z<*9DLX*N(;(q3Tf<$nO{us%Fh%D%!lVsu%ESo~G(4x+?+et-2?1SGg;a5qCNXj{*c zpNB-esW*8QW}A43LNFfW*r_6lg#7f(Hn>KU9i%g%f=2E*yiz?d@KNxFB1@2@XbfNL zOpY#%TZ=!s1(T6gbKi0+|chVL1 zhD~^MWO)D3HBUU?z`V#fSs5+F;KZ=79SChxq&qP!`a!J}g#=BicxpMr6QQ!ZHD~{3 z2wI4)%CQ!Kc0mD}F}DD+pf`XTL%-CC5WGB$81axz<9G&9r=^Q^Tu!%{)kbpF6>iFQ z0wSb!$`#9$fwu6n#9AZ?8aH;RH2=Igf}FXQ@}-yN`FpSM?|> zvzwal0fF%#zCXTo%JR9CNul+5D3&a7bPv-1nzTkLh!{0)!8J?wkB4#P(2|{;^T7tq z0mL57RhKi_+J;7fb&9XFf|%fVU_JKYhmoRrv-+)O`;4cr+bW=yKg_<+lI8=5fqu(7 zE}#MjnMrBVCUIkZWr)rF4@G%M8Jex&KXEd4e9H?(QKbQx(fVWKg9pav@!PXM`XiS8 zv=;MEjjL-O4@h>fE$9r-pNu e5cVoP-!{YMN{-(>k;Kk}7-4<-4RO_$wpNrRvLI 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 XEUv%tZ0)06f8cw4eh+#700aNoU{xC{ diff --git a/script/blurhash/images.txt b/script/blurhash/images.txt index 7b359857..dc032b65 100644 --- a/script/blurhash/images.txt +++ b/script/blurhash/images.txt @@ -1,5 +1,5 @@ -image/hash_snapshot_bg.jpg image/hash_back_pressed_bg.jpg -image/night/hash_snapshot_bg.jpg -image/night/hash_back_pressed_bg.jpg \ No newline at end of file +image/night/hash_back_pressed_bg.jpg + +image/gallery \ No newline at end of file diff --git a/script/blurhash/multi_blurhash.py b/script/blurhash/multi_blurhash.py index 3e723f01..d25b69f8 100644 --- a/script/blurhash/multi_blurhash.py +++ b/script/blurhash/multi_blurhash.py @@ -4,15 +4,38 @@ import os with open("images.txt", "r", encoding='utf-8') as f: - paths = f.readlines() + lines = f.readlines() -xml_format = "{}\n" +xml_string_format = "{}\n" +xml_array_format = "\n{}\n" +xml_array_item_format = "{}\n" -for path in paths: - path = path.strip() - if len(path) == 0 or path.startswith("#"): +def _blurhash(path): + return blurhash.encode(path, x_components=4, y_components=3) + +def string_name(path): + name = os.path.split(path)[1].split(".")[0] + if name.startswith("hash"): + return name + return "hash_{}".format(name) + +def blurhash_dir(dir): + files = os.listdir(dir) + print(files) + items = map(lambda path: _blurhash(os.path.join(dir, path)), files) + items = map(lambda hash: xml_array_item_format.format(hash), items) + print(xml_array_format.format(string_name(dir), "".join(items))) + +def blurhash_file(path): + hash = _blurhash(path) + print(xml_string_format.format(string_name(path), hash)) + +for line in lines: + path = line.strip() + if len(path) == 0 or path.startswith("#") or os.path.exists(path) != True: continue print(path) - hash = blurhash.encode(path, x_components=4, y_components=3) - name = os.path.split(path)[1].split(".")[0] - print(xml_format.format(name, hash)) + if os.path.isdir(path): + blurhash_dir(path) + else: + blurhash_file(path) From 40b63c8431362416ca7229be0c0556820a10f59b Mon Sep 17 00:00:00 2001 From: Hu Shenghao Date: Sat, 18 Nov 2023 22:05:12 +0800 Subject: [PATCH 21/30] feat: Add item long click --- .../main/compose/EasterEggGroupSelector.kt | 42 +++++++++++++++++++ .../views/main/compose/EasterEggItem.kt | 26 ++++++++---- .../views/main/compose/ProjectDescription.kt | 2 +- .../views/timeline/AndroidTimeline.kt | 2 +- 4 files changed, 63 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggGroupSelector.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggGroupSelector.kt index 8e093bd0..e8bc6714 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggGroupSelector.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggGroupSelector.kt @@ -4,17 +4,25 @@ import android.app.Activity import android.view.View import android.widget.FrameLayout import androidx.compose.foundation.clickable +import androidx.compose.material3.DropdownMenu +import androidx.compose.material3.DropdownMenuItem +import androidx.compose.material3.MaterialTheme.shapes +import androidx.compose.material3.MaterialTheme.typography +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip import androidx.compose.ui.geometry.Rect import androidx.compose.ui.layout.boundsInParent import androidx.compose.ui.layout.onGloballyPositioned import androidx.compose.ui.layout.positionInWindow import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.unit.dp +import com.dede.android_eggs.main.EasterEggHelp import com.dede.android_eggs.main.EggActionHelp import com.dede.android_eggs.util.getActivity import com.dede.basic.provider.BaseEasterEgg @@ -31,6 +39,40 @@ fun Modifier.withEasterEggGroupSelector( return this } + // todo support shape https://issuetracker.google.com/issues/200529605 +// val context = LocalContext.current +// var expanded by remember { mutableStateOf(false) } +// DropdownMenu( +// expanded = expanded, +// onDismissRequest = { +// expanded = false +// }, +// modifier = Modifier.clip(shapes.extraLarge), +// ) { +// base.eggs.forEachIndexed { index, egg -> +// val menuTitle = EasterEggHelp.VersionFormatter.create(egg.apiLevel, egg.nicknameRes) +// .format(context) +// DropdownMenuItem( +// leadingIcon = { +// EasterEggLogo(egg = egg, 30.dp) +// }, +// text = { +// Text( +// text = menuTitle, +// style = typography.bodyLarge, +// ) +// }, +// onClick = { +// onSelected.invoke(index) +// expanded = false +// } +// ) +// } +// } +// return clickable { +// expanded = true +// } + val activity: Activity? = LocalContext.current.getActivity() var popupAnchorBounds by remember { mutableStateOf(Rect.Zero) } return clickable { diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggItem.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggItem.kt index 5209b926..03659861 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggItem.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggItem.kt @@ -1,4 +1,4 @@ -@file:OptIn(ExperimentalMaterial3Api::class) +@file:OptIn(ExperimentalMaterial3Api::class, ExperimentalFoundationApi::class) package com.dede.android_eggs.views.main.compose @@ -10,6 +10,8 @@ import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut import androidx.compose.animation.scaleIn import androidx.compose.animation.scaleOut +import androidx.compose.foundation.ExperimentalFoundationApi +import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.gestures.Orientation import androidx.compose.foundation.gestures.draggable import androidx.compose.foundation.gestures.rememberDraggableState @@ -29,7 +31,7 @@ import androidx.compose.material.icons.rounded.SwipeRight import androidx.compose.material3.Card import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon -import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.MaterialTheme.shapes import androidx.compose.material3.MaterialTheme.typography import androidx.compose.material3.Text import androidx.compose.runtime.Composable @@ -42,6 +44,7 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip import androidx.compose.ui.layout.onSizeChanged import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalLayoutDirection @@ -86,7 +89,7 @@ fun EasterEggItem(base: BaseEasterEgg = EasterEggHelp.previewEasterEggs().first( EasterEggItemFloor(egg, supportShortcut, swipeProgress) }, content = { - EasterEggItemContent(egg, base) { + EasterEggItemContent(egg, base, supportShortcut) { groupIndex = it } }, @@ -180,6 +183,7 @@ fun EasterEggItemSwipe( fun EasterEggItemContent( egg: EasterEgg = EasterEggHelp.previewEasterEggs().first(), base: BaseEasterEgg = egg, + supportShortcut: Boolean = true, onSelected: ((index: Int) -> Unit)? = null, ) { val context = LocalContext.current @@ -189,13 +193,21 @@ fun EasterEggItemContent( .format(context) } Card( - onClick = { - EggActionHelp.launchEgg(context, egg) - }, - shape = MaterialTheme.shapes.extraLarge, + shape = shapes.extraLarge, modifier = Modifier .padding(horizontal = 12.dp) .fillMaxWidth() + .clip(shapes.extraLarge) + .combinedClickable( + onClick = { + EggActionHelp.launchEgg(context, egg) + }, + onLongClick = { + if (supportShortcut) { + EggActionHelp.addShortcut(context, egg) + } + } + ) ) { Column( modifier = Modifier.padding(start = 22.dp, top = 18.dp, end = 22.dp, bottom = 18.dp) diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/ProjectDescription.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/ProjectDescription.kt index 88612de1..78177f1e 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/ProjectDescription.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/ProjectDescription.kt @@ -97,7 +97,7 @@ fun ProjectDescription() { CustomTabsBrowser.launchUrlByBrowser(context, uri.toUri()) } - // https://issuetracker.google.com/issues/308510945 + // todo support BackHandler https://issuetracker.google.com/issues/308510945 // AndroidTimelineSheet(timelineVisible) Column( diff --git a/app/src/main/java/com/dede/android_eggs/views/timeline/AndroidTimeline.kt b/app/src/main/java/com/dede/android_eggs/views/timeline/AndroidTimeline.kt index f0722f5e..bad8bd8f 100644 --- a/app/src/main/java/com/dede/android_eggs/views/timeline/AndroidTimeline.kt +++ b/app/src/main/java/com/dede/android_eggs/views/timeline/AndroidTimeline.kt @@ -193,7 +193,7 @@ fun AndroidTimelineItem( modifier = Modifier.padding(horizontal = 10.dp, vertical = 8.dp) ) } - // https://issuetracker.google.com/issues/311627066 + // todo fix leak https://issuetracker.google.com/issues/311627066 Icon( imageVector = Icons.Outlined.ArrowLeft, tint = colorScheme.secondaryContainer, From 3eed4cfefd326007e5c9643dc25238a79bd2e060 Mon Sep 17 00:00:00 2001 From: Hu Shenghao Date: Sun, 19 Nov 2023 13:02:26 +0800 Subject: [PATCH 22/30] feat: Add bottom search bar --- app/build.gradle.kts | 1 - .../dede/android_eggs/main/EasterEggHelp.kt | 2 +- .../views/main/EasterEggsActivity.kt | 18 +- .../views/main/compose/AndroidViews.kt | 36 +++- .../views/main/compose/BottomSearchBar.kt | 160 ++++++++++++++++++ .../views/main/compose/EasterEggScreen.kt | 107 ++++++++++-- .../views/main/compose/MainTitleBar.kt | 67 +++++++- .../views/main/compose/Welcome.kt | 5 +- .../views/timeline/AndroidTimeline.kt | 4 +- 9 files changed, 359 insertions(+), 41 deletions(-) create mode 100644 app/src/main/java/com/dede/android_eggs/views/main/compose/BottomSearchBar.kt diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 62ec44ae..d95077f8 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -123,7 +123,6 @@ dependencies { implementation(platform(libs.androidx.compose.bom)) implementation(libs.androidx.compose.ui) implementation(libs.androidx.compose.ui.util) - implementation(libs.androidx.compose.material) implementation(libs.androidx.compose.material3) implementation(libs.androidx.compose.material.icons) implementation(libs.androidx.compose.constraintlayout) diff --git a/app/src/main/java/com/dede/android_eggs/main/EasterEggHelp.kt b/app/src/main/java/com/dede/android_eggs/main/EasterEggHelp.kt index e04c4344..3ae2a4c3 100644 --- a/app/src/main/java/com/dede/android_eggs/main/EasterEggHelp.kt +++ b/app/src/main/java/com/dede/android_eggs/main/EasterEggHelp.kt @@ -110,7 +110,7 @@ object EasterEggHelp { return context.requireDrawable(iconRes) } - private fun getVersionNameByApiLevel(level: Int): String { + fun getVersionNameByApiLevel(level: Int): String { return apiLevelArrays[level] ?: throw IllegalArgumentException("Illegal Api level: $level") } diff --git a/app/src/main/java/com/dede/android_eggs/views/main/EasterEggsActivity.kt b/app/src/main/java/com/dede/android_eggs/views/main/EasterEggsActivity.kt index 8c4e853e..06c0be12 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/EasterEggsActivity.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/EasterEggsActivity.kt @@ -6,11 +6,18 @@ import android.os.Bundle import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge import androidx.appcompat.app.AppCompatActivity +import androidx.compose.material3.BottomAppBar +import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Scaffold import androidx.compose.runtime.CompositionLocalProvider +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.saveable.rememberSaveable +import androidx.compose.runtime.setValue import com.dede.android_eggs.util.LocalEvent import com.dede.android_eggs.util.OrientationAngleSensor import com.dede.android_eggs.util.ThemeUtils +import com.dede.android_eggs.views.main.compose.BottomSearchBar import com.dede.android_eggs.views.main.compose.EasterEggScreen import com.dede.android_eggs.views.main.compose.Konfetti import com.dede.android_eggs.views.main.compose.LocalEasterEggLogoSensor @@ -48,6 +55,8 @@ class EasterEggsActivity : AppCompatActivity() { setContent { val konfettiState = rememberKonfettiState() + val searchBarVisibleState = rememberSaveable { mutableStateOf(false) } + var searchText by rememberSaveable { mutableStateOf("") } CompositionLocalProvider( LocalFragmentManager provides supportFragmentManager, LocalEasterEggLogoSensor provides sensor, @@ -56,10 +65,15 @@ class EasterEggsActivity : AppCompatActivity() { AppTheme { Scaffold( topBar = { - MainTitleBar() + MainTitleBar(searchBarVisibleState = searchBarVisibleState) + }, + bottomBar = { + BottomSearchBar(searchBarVisibleState, onSearch = { + searchText = it + }) } ) { contentPadding -> - EasterEggScreen(easterEggs, contentPadding) + EasterEggScreen(easterEggs, searchText, contentPadding) } Welcome() Konfetti(konfettiState) diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/AndroidViews.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/AndroidViews.kt index 277b66aa..fe76a470 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/AndroidViews.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/AndroidViews.kt @@ -1,19 +1,43 @@ package com.dede.android_eggs.views.main.compose +import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding +import androidx.compose.material3.Card +import androidx.compose.material3.MaterialTheme.shapes import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalInspectionMode +import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.viewinterop.AndroidView import com.dede.android_eggs.ui.views.SnapshotGroupView @Composable +@Preview fun AndroidSnapshotView() { - AndroidView( - factory = { SnapshotGroupView(it) }, - modifier = Modifier - .fillMaxWidth() - .padding(top = 12.dp) - ) + val inspectionMode = LocalInspectionMode.current + if (inspectionMode) { + Box( + modifier = Modifier + .padding(horizontal = 12.dp) + .padding(top = 12.dp) + ) { + Card( + shape = shapes.extraLarge, + modifier = Modifier + .fillMaxWidth() + .height(200.dp) + ) {} + } + } else { + // has inject + AndroidView( + factory = { SnapshotGroupView(it) }, + modifier = Modifier + .fillMaxWidth() + .padding(top = 12.dp) + ) + } } diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/BottomSearchBar.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/BottomSearchBar.kt new file mode 100644 index 00000000..944171e9 --- /dev/null +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/BottomSearchBar.kt @@ -0,0 +1,160 @@ +package com.dede.android_eggs.views.main.compose + +import androidx.activity.compose.BackHandler +import androidx.compose.animation.AnimatedVisibility +import androidx.compose.animation.fadeIn +import androidx.compose.animation.fadeOut +import androidx.compose.animation.slideInVertically +import androidx.compose.animation.slideOutVertically +import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.imePadding +import androidx.compose.foundation.layout.navigationBarsPadding +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.text.KeyboardActions +import androidx.compose.foundation.text.KeyboardOptions +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.rounded.ArrowBack +import androidx.compose.material.icons.rounded.Clear +import androidx.compose.material.ripple.rememberRipple +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme.colorScheme +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.material3.TextField +import androidx.compose.material3.TextFieldDefaults +import androidx.compose.material3.surfaceColorAtElevation +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.MutableState +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.focus.FocusRequester +import androidx.compose.ui.focus.focusRequester +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.platform.LocalSoftwareKeyboardController +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.input.ImeAction +import androidx.compose.ui.text.input.KeyboardType +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.dede.android_eggs.R + +@Composable +@Preview +fun BottomSearchBar( + visibleState: MutableState = mutableStateOf(true), + onSearch: ((text: String) -> Unit)? = null +) { + var visible by visibleState + + BackHandler(visible) { + visible = false + } + AnimatedVisibility( + visible = visible, + enter = slideInVertically(initialOffsetY = { + it + }) + fadeIn(), + exit = slideOutVertically( + targetOffsetY = { it } + ) + fadeOut(), + ) { + BottomSearchBar( + visible, + onClose = { + visible = false + }, + onSearch = { onSearch?.invoke(it) } + ) + } +} + +@Composable +private fun BottomSearchBar( + visible: Boolean, + onSearch: (text: String) -> Unit, + onClose: () -> Unit, +) { + var searchText by remember { mutableStateOf("") } + val keyboardController = LocalSoftwareKeyboardController.current + val focusRequester = remember { FocusRequester() } + LaunchedEffect(visible) { + if (visible) { + focusRequester.requestFocus() + keyboardController?.show() + } else { + keyboardController?.hide() + } + } + Surface( + modifier = Modifier.imePadding(), + color = colorScheme.surfaceColorAtElevation(4.dp), + contentColor = colorScheme.onSurface, + tonalElevation = 4.dp, + shadowElevation = 4.dp, + ) { + TextField( + modifier = Modifier + .fillMaxWidth() + .focusRequester(focusRequester) + .navigationBarsPadding() + .padding(horizontal = 16.dp, vertical = 10.dp), + value = searchText, + onValueChange = { searchText = it }, + placeholder = { + Text(text = stringResource(R.string.label_search_hint)) + }, + keyboardOptions = KeyboardOptions( + keyboardType = KeyboardType.Ascii, + imeAction = ImeAction.Search + ), + keyboardActions = KeyboardActions( + onSearch = { + onSearch.invoke(searchText) + } + ), + singleLine = true, + shape = RoundedCornerShape(50), + colors = TextFieldDefaults.colors( + focusedIndicatorColor = Color.Transparent, + disabledIndicatorColor = Color.Transparent, + unfocusedIndicatorColor = Color.Transparent, + ), + leadingIcon = { + Icon( + imageVector = Icons.Rounded.ArrowBack, + contentDescription = null, + modifier = Modifier.clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = rememberRipple(bounded = false) + ) { + onSearch.invoke("") + onClose.invoke() + keyboardController?.hide() + } + ) + }, + trailingIcon = { + if (searchText.isNotBlank()) { + Icon( + imageVector = Icons.Rounded.Clear, + contentDescription = null, + modifier = Modifier.clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = rememberRipple(bounded = false) + ) { + searchText = "" + onSearch.invoke("") + } + ) + } + } + ) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggScreen.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggScreen.kt index a8849dde..10ad7bda 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggScreen.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggScreen.kt @@ -1,55 +1,128 @@ package com.dede.android_eggs.views.main.compose +import android.content.Context import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.sizeIn import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.rounded.SearchOff +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme.colorScheme import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.platform.LocalInspectionMode +import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.dede.android_eggs.R import com.dede.android_eggs.main.EasterEggHelp +import com.dede.android_eggs.views.main.EasterEggModules import com.dede.basic.provider.BaseEasterEgg +import com.dede.basic.provider.EasterEgg @Composable -@Preview +@Preview(showBackground = true) fun EasterEggScreen( easterEggs: List = EasterEggHelp.previewEasterEggs(), + searchFilter: String = "", contentPadding: PaddingValues = PaddingValues(0.dp), ) { - val inspectionMode = LocalInspectionMode.current + val pureEasterEggs = remember(easterEggs) { + EasterEggModules.providePureEasterEggList(easterEggs) + } + val searchText = remember(searchFilter) { + searchFilter.trim().uppercase() + } + val searchMode = searchText.isNotBlank() + + val context = LocalContext.current Box( modifier = Modifier.fillMaxSize(), - contentAlignment = Alignment.Center, + contentAlignment = Alignment.TopCenter, ) { LazyColumn( contentPadding = contentPadding, modifier = Modifier.sizeIn(maxWidth = 560.dp), verticalArrangement = Arrangement.spacedBy(12.dp) ) { - if (!inspectionMode) { + if (searchMode) { + val result = filterEasterEggs(context, pureEasterEggs, searchText) + if (result.isEmpty()) { + item("empty") { + SearchEmpty() + } + } else { + items(items = result) { + EasterEggItem(it) + } + } + } else { item("snapshot") { AndroidSnapshotView() } + item("wavy1") { + Wavy(res = R.drawable.ic_wavy_line) + } + items(items = easterEggs) { + EasterEggItem(it) + } + item("wavy2") { + Wavy(res = R.drawable.ic_wavy_line) + } + item("footer") { + ProjectDescription() + } } - item("wavy1") { - Wavy(res = R.drawable.ic_wavy_line) - } - items(items = easterEggs) { - EasterEggItem(it) - } - item("wavy2") { - Wavy(res = R.drawable.ic_wavy_line) - } - item("footer") { - ProjectDescription() - } } } +} + +private fun filterEasterEggs( + context: Context, + pureEasterEggs: List, + searchText: String +): List { + val isApiLevel = Regex("^\\d{1,2}$").matches(searchText) + + fun EasterEgg.matchVersionName(version: String): Boolean { + val containsStart = EasterEggHelp.getVersionNameByApiLevel(apiLevel.first) + .contains(version, true) + return if (apiLevel.first == apiLevel.last) { + containsStart + } else { + containsStart || EasterEggHelp.getVersionNameByApiLevel(apiLevel.last) + .contains(version, true) + } + } + return pureEasterEggs.filter { + context.getString(it.nameRes).contains(searchText, true) || + context.getString(it.nicknameRes).contains(searchText, true) || + it.matchVersionName(searchText) || + (isApiLevel && it.apiLevel.contains(searchText.toIntOrNull() ?: -1)) + } +} + +@Composable +@Preview(widthDp = 200, heightDp = 200, showBackground = true) +private fun SearchEmpty() { + Box( + contentAlignment = Alignment.Center, + modifier = Modifier + .fillMaxSize() + .padding(top = 20.dp) + ) { + Icon( + imageVector = Icons.Rounded.SearchOff, + contentDescription = null, + tint = colorScheme.onBackground, + modifier = Modifier.size(128.dp) + ) + } } \ No newline at end of file diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/MainTitleBar.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/MainTitleBar.kt index 522c5339..4bab2c4e 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/MainTitleBar.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/MainTitleBar.kt @@ -2,9 +2,15 @@ package com.dede.android_eggs.views.main.compose +import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.core.animateFloatAsState import androidx.compose.animation.core.tween +import androidx.compose.animation.fadeIn +import androidx.compose.animation.fadeOut +import androidx.compose.animation.scaleIn +import androidx.compose.animation.scaleOut import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.rounded.Search import androidx.compose.material.icons.rounded.Settings import androidx.compose.material3.CenterAlignedTopAppBar import androidx.compose.material3.ExperimentalMaterial3Api @@ -12,26 +18,35 @@ import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.MutableState import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.draw.rotate import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.fragment.app.FragmentManager import com.dede.android_eggs.R import com.dede.android_eggs.views.settings.SettingsFragment +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch private const val TAG_SETTINGS = "Settings" @Composable @Preview -fun MainTitleBar() { +fun MainTitleBar( + searchBarVisibleState: MutableState = mutableStateOf(false) +) { val fm: FragmentManager? = LocalFragmentManager.currentOutInspectionMode + var searchBarVisible by searchBarVisibleState + val scope = rememberCoroutineScope() var startRotate by rememberSaveable { mutableStateOf(false) } val rotateAnim by animateFloatAsState( targetValue = if (startRotate) 360f else 0f, @@ -39,6 +54,16 @@ fun MainTitleBar() { label = "setting_icon_rotate", ) + fun showSettings() { + if (fm == null) return + SettingsFragment().apply { + onPreDismiss = { + startRotate = false + } + }.show(fm, TAG_SETTINGS) + startRotate = true + } + if (startRotate) { val restored = fm?.findFragmentByTag(TAG_SETTINGS) as? SettingsFragment if (restored != null) { @@ -50,18 +75,42 @@ fun MainTitleBar() { CenterAlignedTopAppBar( title = { - Text(text = stringResource(R.string.app_name)) + Text( + text = stringResource(R.string.app_name), + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) }, actions = { + AnimatedVisibility( + visible = !searchBarVisible, + enter = fadeIn() + scaleIn(), + exit = fadeOut() + scaleOut(), + ) { + IconButton( + onClick = { + // show searchBar + searchBarVisible = true + }, + ) { + Icon( + imageVector = Icons.Rounded.Search, + contentDescription = stringResource(R.string.label_search_hint), + ) + } + } + IconButton( onClick = { - if (fm == null) return@IconButton - SettingsFragment().apply { - onPreDismiss = { - startRotate = false + scope.launch { + if (searchBarVisible) { + // hide searchBar + searchBarVisible = false + // await searchBar dismiss + delay(200) } - }.show(fm, TAG_SETTINGS) - startRotate = true + showSettings() + } }, ) { Icon( @@ -72,4 +121,4 @@ fun MainTitleBar() { } } ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/Welcome.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/Welcome.kt index c5d3fc1f..38d3c497 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/Welcome.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/Welcome.kt @@ -5,7 +5,7 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.material.TextButton +import androidx.compose.material3.TextButton import androidx.compose.material3.AlertDialog import androidx.compose.material3.Text import androidx.compose.runtime.Composable @@ -31,7 +31,8 @@ private const val KEY = "key_welcome_status" fun Welcome() { val context = LocalContext.current var visible by remember { - mutableStateOf(!context.pref.getBoolean(KEY, false)) + val showed = context.pref.getBoolean(KEY, false) + mutableStateOf(!showed) // mutableStateOf(true) } if (!visible) { diff --git a/app/src/main/java/com/dede/android_eggs/views/timeline/AndroidTimeline.kt b/app/src/main/java/com/dede/android_eggs/views/timeline/AndroidTimeline.kt index bad8bd8f..84a8f71f 100644 --- a/app/src/main/java/com/dede/android_eggs/views/timeline/AndroidTimeline.kt +++ b/app/src/main/java/com/dede/android_eggs/views/timeline/AndroidTimeline.kt @@ -1,6 +1,5 @@ @file:OptIn( - ExperimentalMaterial3Api::class, ExperimentalMaterialApi::class, - ExperimentalLayoutApi::class + ExperimentalMaterial3Api::class, ExperimentalLayoutApi::class ) package com.dede.android_eggs.views.timeline @@ -21,7 +20,6 @@ import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.itemsIndexed import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.ExperimentalMaterialApi import androidx.compose.material.icons.Icons import androidx.compose.material.icons.outlined.ArrowLeft import androidx.compose.material3.Card From 617bb01f2d44bc5f3cd47216ec390a320114fe9a Mon Sep 17 00:00:00 2001 From: Hu Shenghao Date: Mon, 20 Nov 2023 11:33:01 +0800 Subject: [PATCH 23/30] feat: Add transition animation --- .../views/main/compose/BottomSearchBar.kt | 68 +++++------ .../views/main/compose/EasterEggItem.kt | 60 +++++----- .../views/main/compose/EasterEggScreen.kt | 111 ++++++++++-------- 3 files changed, 125 insertions(+), 114 deletions(-) diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/BottomSearchBar.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/BottomSearchBar.kt index 944171e9..fb96453b 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/BottomSearchBar.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/BottomSearchBar.kt @@ -4,6 +4,8 @@ import androidx.activity.compose.BackHandler import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut +import androidx.compose.animation.scaleIn +import androidx.compose.animation.scaleOut import androidx.compose.animation.slideInVertically import androidx.compose.animation.slideOutVertically import androidx.compose.foundation.clickable @@ -49,7 +51,7 @@ import com.dede.android_eggs.R @Preview fun BottomSearchBar( visibleState: MutableState = mutableStateOf(true), - onSearch: ((text: String) -> Unit)? = null + onSearch: ((text: String) -> Unit)? = null, ) { var visible by visibleState @@ -61,17 +63,11 @@ fun BottomSearchBar( enter = slideInVertically(initialOffsetY = { it }) + fadeIn(), - exit = slideOutVertically( - targetOffsetY = { it } - ) + fadeOut(), + exit = slideOutVertically(targetOffsetY = { it }) + fadeOut(), ) { - BottomSearchBar( - visible, - onClose = { - visible = false - }, - onSearch = { onSearch?.invoke(it) } - ) + BottomSearchBar(visible, onClose = { + visible = false + }, onSearch = { onSearch?.invoke(it) }) } } @@ -99,26 +95,25 @@ private fun BottomSearchBar( tonalElevation = 4.dp, shadowElevation = 4.dp, ) { - TextField( - modifier = Modifier - .fillMaxWidth() - .focusRequester(focusRequester) - .navigationBarsPadding() - .padding(horizontal = 16.dp, vertical = 10.dp), + TextField(modifier = Modifier + .fillMaxWidth() + .focusRequester(focusRequester) + .navigationBarsPadding() + .padding(horizontal = 16.dp, vertical = 10.dp), value = searchText, - onValueChange = { searchText = it }, + onValueChange = { + searchText = it + onSearch.invoke(searchText) + }, placeholder = { Text(text = stringResource(R.string.label_search_hint)) }, keyboardOptions = KeyboardOptions( - keyboardType = KeyboardType.Ascii, - imeAction = ImeAction.Search - ), - keyboardActions = KeyboardActions( - onSearch = { - onSearch.invoke(searchText) - } + keyboardType = KeyboardType.Ascii, imeAction = ImeAction.Search ), + keyboardActions = KeyboardActions(onSearch = { + onSearch.invoke(searchText) + }), singleLine = true, shape = RoundedCornerShape(50), colors = TextFieldDefaults.colors( @@ -127,8 +122,7 @@ private fun BottomSearchBar( unfocusedIndicatorColor = Color.Transparent, ), leadingIcon = { - Icon( - imageVector = Icons.Rounded.ArrowBack, + Icon(imageVector = Icons.Rounded.ArrowBack, contentDescription = null, modifier = Modifier.clickable( interactionSource = remember { MutableInteractionSource() }, @@ -137,24 +131,24 @@ private fun BottomSearchBar( onSearch.invoke("") onClose.invoke() keyboardController?.hide() - } - ) + }) }, trailingIcon = { - if (searchText.isNotBlank()) { - Icon( - imageVector = Icons.Rounded.Clear, + AnimatedVisibility( + visible = searchText.isNotBlank(), + enter = fadeIn() + scaleIn(), + exit = fadeOut() + scaleOut(), + ) { + Icon(imageVector = Icons.Rounded.Clear, contentDescription = null, modifier = Modifier.clickable( interactionSource = remember { MutableInteractionSource() }, indication = rememberRipple(bounded = false) ) { searchText = "" - onSearch.invoke("") - } - ) + onSearch.invoke(searchText) + }) } - } - ) + }) } } \ No newline at end of file diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggItem.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggItem.kt index 03659861..33521222 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggItem.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggItem.kt @@ -3,13 +3,15 @@ package com.dede.android_eggs.views.main.compose import android.view.HapticFeedbackConstants -import androidx.compose.animation.AnimatedVisibility +import androidx.compose.animation.AnimatedContent +import androidx.compose.animation.animateContentSize import androidx.compose.animation.core.Animatable import androidx.compose.animation.core.tween import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut import androidx.compose.animation.scaleIn import androidx.compose.animation.scaleOut +import androidx.compose.animation.togetherWith import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.gestures.Orientation @@ -128,7 +130,7 @@ fun EasterEggItemSwipe( LaunchedEffect(released) { if (released) { val releaseAnim = Animatable(offsetX) - releaseAnim.animateTo(0f, animationSpec = tween(200)) { + releaseAnim.animateTo(0f, animationSpec = tween(300)) { offsetX = value callbackSwipeProgress(offsetX) } @@ -213,13 +215,17 @@ fun EasterEggItemContent( modifier = Modifier.padding(start = 22.dp, top = 18.dp, end = 22.dp, bottom = 18.dp) ) { Row(modifier = Modifier.fillMaxWidth()) { - Text( - text = stringResource(egg.nameRes), - style = typography.headlineSmall, + Box( modifier = Modifier .padding(end = 10.dp, bottom = 6.dp) .weight(1f, true) - ) + ) { + Text( + text = stringResource(egg.nameRes), + style = typography.headlineSmall, + modifier = Modifier.animateContentSize() + ) + } EasterEggLogo(egg, sensor = true) } Row( @@ -230,7 +236,8 @@ fun EasterEggItemContent( ) { Text( text = androidVersion, - style = typography.bodyMedium + style = typography.bodyMedium, + modifier = Modifier.animateContentSize(), ) if (isGroup) { Icon( @@ -303,31 +310,28 @@ fun EasterEggItemFloor( @Composable private fun ShortcutIcon(showShortcut: Boolean = false) { - Box(contentAlignment = Alignment.Center) { - val swipeIcon = if (LocalLayoutDirection.current == LayoutDirection.Rtl) { - Icons.Rounded.SwipeRight - } else { - Icons.Rounded.SwipeLeft - } - AnimatedVisibility( - visible = !showShortcut, - enter = scaleIn() + fadeIn(), - exit = scaleOut() + fadeOut(), - ) { + AnimatedContent( + targetState = showShortcut, + transitionSpec = { + scaleIn() + fadeIn() togetherWith scaleOut() + fadeOut() + }, + label = "ShortcutIcon" + ) { + if (it) { Icon( - modifier = Modifier.size(28.dp), - imageVector = swipeIcon, + modifier = Modifier.size(30.dp), + imageVector = Icons.Rounded.AppShortcut, contentDescription = stringResource(R.string.label_add_shortcut) ) - } - AnimatedVisibility( - visible = showShortcut, - enter = scaleIn() + fadeIn(), - exit = scaleOut() + fadeOut(), - ) { + } else { + val swipeIcon = if (LocalLayoutDirection.current == LayoutDirection.Rtl) { + Icons.Rounded.SwipeRight + } else { + Icons.Rounded.SwipeLeft + } Icon( - modifier = Modifier.size(28.dp), - imageVector = Icons.Rounded.AppShortcut, + modifier = Modifier.size(30.dp), + imageVector = swipeIcon, contentDescription = stringResource(R.string.label_add_shortcut) ) } diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggScreen.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggScreen.kt index 10ad7bda..8e133f66 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggScreen.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggScreen.kt @@ -1,10 +1,15 @@ package com.dede.android_eggs.views.main.compose import android.content.Context +import androidx.compose.animation.AnimatedContent +import androidx.compose.animation.fadeIn +import androidx.compose.animation.fadeOut +import androidx.compose.animation.togetherWith import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.sizeIn @@ -34,6 +39,7 @@ fun EasterEggScreen( searchFilter: String = "", contentPadding: PaddingValues = PaddingValues(0.dp), ) { + val context = LocalContext.current val pureEasterEggs = remember(easterEggs) { EasterEggModules.providePureEasterEggList(easterEggs) } @@ -41,53 +47,78 @@ fun EasterEggScreen( searchFilter.trim().uppercase() } val searchMode = searchText.isNotBlank() - - val context = LocalContext.current + val currentList = remember(searchText, searchMode, easterEggs, pureEasterEggs) { + if (searchMode) { + filterEasterEggs(context, pureEasterEggs, searchText) + } else { + easterEggs + } + } Box( modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.TopCenter, ) { - LazyColumn( - contentPadding = contentPadding, + AnimatedContent( + targetState = currentList.isEmpty(), + transitionSpec = { + fadeIn() togetherWith fadeOut() + }, modifier = Modifier.sizeIn(maxWidth = 560.dp), - verticalArrangement = Arrangement.spacedBy(12.dp) - ) { - if (searchMode) { - val result = filterEasterEggs(context, pureEasterEggs, searchText) - if (result.isEmpty()) { - item("empty") { - SearchEmpty() - } - } else { - items(items = result) { - EasterEggItem(it) - } + contentAlignment = Alignment.TopCenter, + label = "EasterEggList" + ) { isEmpty -> + if (isEmpty) { + Box( + contentAlignment = Alignment.TopCenter, + modifier = Modifier + .fillMaxWidth() + .padding(contentPadding) + .padding(top = 32.dp) + ) { + Icon( + imageVector = Icons.Rounded.SearchOff, + contentDescription = null, + tint = colorScheme.onBackground, + modifier = Modifier.size(108.dp) + ) } } else { - item("snapshot") { - AndroidSnapshotView() - } - item("wavy1") { - Wavy(res = R.drawable.ic_wavy_line) - } - items(items = easterEggs) { - EasterEggItem(it) - } - item("wavy2") { - Wavy(res = R.drawable.ic_wavy_line) - } - item("footer") { - ProjectDescription() + LazyColumn( + contentPadding = contentPadding, + verticalArrangement = Arrangement.spacedBy(12.dp) + ) { + if (searchMode) { + items(items = currentList) { + EasterEggItem(it) + } + } else { + item("snapshot") { + AndroidSnapshotView() + } + item("wavy1") { + Wavy(res = R.drawable.ic_wavy_line) + } + items(items = currentList) { + EasterEggItem(it) + } + item("wavy2") { + Wavy(res = R.drawable.ic_wavy_line) + } + item("footer") { + ProjectDescription() + } + } } } } + } } private fun filterEasterEggs( context: Context, pureEasterEggs: List, - searchText: String + searchText: String, ): List { val isApiLevel = Regex("^\\d{1,2}$").matches(searchText) @@ -108,21 +139,3 @@ private fun filterEasterEggs( (isApiLevel && it.apiLevel.contains(searchText.toIntOrNull() ?: -1)) } } - -@Composable -@Preview(widthDp = 200, heightDp = 200, showBackground = true) -private fun SearchEmpty() { - Box( - contentAlignment = Alignment.Center, - modifier = Modifier - .fillMaxSize() - .padding(top = 20.dp) - ) { - Icon( - imageVector = Icons.Rounded.SearchOff, - contentDescription = null, - tint = colorScheme.onBackground, - modifier = Modifier.size(128.dp) - ) - } -} \ No newline at end of file From 0e9ba297d4a86f085dc776e5e23eb342d82aa952 Mon Sep 17 00:00:00 2001 From: Hu Shenghao Date: Mon, 20 Nov 2023 17:28:56 +0800 Subject: [PATCH 24/30] feat: Update click shape --- .../views/main/compose/EasterEggItem.kt | 8 ++++--- .../views/main/compose/ProjectDescription.kt | 22 +++++++++++++------ 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggItem.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggItem.kt index 33521222..697f078b 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggItem.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggItem.kt @@ -229,9 +229,11 @@ fun EasterEggItemContent( EasterEggLogo(egg, sensor = true) } Row( - modifier = Modifier.withEasterEggGroupSelector(base) { - onSelected?.invoke(it) - }, + modifier = Modifier + .clip(shapes.extraSmall) + .withEasterEggGroupSelector(base) { + onSelected?.invoke(it) + }, verticalAlignment = Alignment.CenterVertically ) { Text( diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/ProjectDescription.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/ProjectDescription.kt index 78177f1e..01bd131f 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/ProjectDescription.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/ProjectDescription.kt @@ -18,6 +18,7 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.material.ripple.rememberRipple import androidx.compose.material3.MaterialTheme.colorScheme +import androidx.compose.material3.MaterialTheme.shapes import androidx.compose.material3.MaterialTheme.typography import androidx.compose.material3.Text import androidx.compose.runtime.Composable @@ -26,6 +27,7 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontStyle @@ -55,7 +57,9 @@ private fun ChipItem( text = stringResource(textRes), style = typography.bodyMedium, color = colorScheme.secondary, - modifier = Modifier.clickable(onClick = onClick) + modifier = Modifier + .clip(shapes.extraSmall) + .clickable(onClick = onClick) ) if (separator) { Text( @@ -77,7 +81,9 @@ private fun ChipItem2( text = stringResource(textRes), style = typography.titleSmall, color = colorScheme.secondary, - modifier = Modifier.clickable(onClick = onClick) + modifier = Modifier + .clip(shapes.extraSmall) + .clickable(onClick = onClick) ) } @@ -137,11 +143,13 @@ fun ProjectDescription() { style = typography.bodySmall, fontStyle = FontStyle.Italic, textDecoration = TextDecoration.Underline, - modifier = Modifier.clickable { - val commitId = - context.getString(R.string.url_github_commit, BuildConfig.GIT_HASH) - CustomTabsBrowser.launchUrl(context, commitId.toUri()) - } + modifier = Modifier + .clip(shapes.extraSmall) + .clickable { + val commitId = + context.getString(R.string.url_github_commit, BuildConfig.GIT_HASH) + CustomTabsBrowser.launchUrl(context, commitId.toUri()) + } ) } } From f321630b14aa000b7ee9ac01fe9be5e47e7464e6 Mon Sep 17 00:00:00 2001 From: Hu Shenghao Date: Mon, 20 Nov 2023 22:38:24 +0800 Subject: [PATCH 25/30] feat: Add topbar scroll behavior --- .../views/main/EasterEggsActivity.kt | 15 ++- .../views/main/compose/EasterEggItem.kt | 102 ++++++++-------- .../views/main/compose/EasterEggScreen.kt | 111 +++++++++--------- .../views/main/compose/MainTitleBar.kt | 6 +- 4 files changed, 128 insertions(+), 106 deletions(-) diff --git a/app/src/main/java/com/dede/android_eggs/views/main/EasterEggsActivity.kt b/app/src/main/java/com/dede/android_eggs/views/main/EasterEggsActivity.kt index 06c0be12..89808d26 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/EasterEggsActivity.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/EasterEggsActivity.kt @@ -1,3 +1,5 @@ +@file:OptIn(ExperimentalMaterial3Api::class) + package com.dede.android_eggs.views.main import android.annotation.SuppressLint @@ -6,14 +8,16 @@ import android.os.Bundle import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge import androidx.appcompat.app.AppCompatActivity -import androidx.compose.material3.BottomAppBar import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Scaffold +import androidx.compose.material3.TopAppBarDefaults import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.input.nestedscroll.nestedScroll import com.dede.android_eggs.util.LocalEvent import com.dede.android_eggs.util.OrientationAngleSensor import com.dede.android_eggs.util.ThemeUtils @@ -57,6 +61,8 @@ class EasterEggsActivity : AppCompatActivity() { val konfettiState = rememberKonfettiState() val searchBarVisibleState = rememberSaveable { mutableStateOf(false) } var searchText by rememberSaveable { mutableStateOf("") } + + val scrollBehavior = TopAppBarDefaults.pinnedScrollBehavior() CompositionLocalProvider( LocalFragmentManager provides supportFragmentManager, LocalEasterEggLogoSensor provides sensor, @@ -65,8 +71,13 @@ class EasterEggsActivity : AppCompatActivity() { AppTheme { Scaffold( topBar = { - MainTitleBar(searchBarVisibleState = searchBarVisibleState) + MainTitleBar( + scrollBehavior = scrollBehavior, + searchBarVisibleState = searchBarVisibleState + ) }, + modifier = Modifier + .nestedScroll(scrollBehavior.nestedScrollConnection), bottomBar = { BottomSearchBar(searchBarVisibleState, onSearch = { searchText = it diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggItem.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggItem.kt index 697f078b..65253d7e 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggItem.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggItem.kt @@ -74,7 +74,10 @@ import kotlin.math.roundToInt @Composable @Preview(showBackground = true) -fun EasterEggItem(base: BaseEasterEgg = EasterEggHelp.previewEasterEggs().first()) { +fun EasterEggItem( + base: BaseEasterEgg = EasterEggHelp.previewEasterEggs().first(), + enableItemAnim: Boolean = false, +) { val context = LocalContext.current var groupIndex by remember { mutableIntStateOf(0) } @@ -91,7 +94,7 @@ fun EasterEggItem(base: BaseEasterEgg = EasterEggHelp.previewEasterEggs().first( EasterEggItemFloor(egg, supportShortcut, swipeProgress) }, content = { - EasterEggItemContent(egg, base, supportShortcut) { + EasterEggItemContent(egg, base, supportShortcut, enableItemAnim) { groupIndex = it } }, @@ -140,7 +143,7 @@ fun EasterEggItemSwipe( val view = LocalView.current Box( contentAlignment = Alignment.Center, - modifier = Modifier +// modifier = Modifier.padding(4.dp) ) { floor() Box( @@ -186,6 +189,7 @@ fun EasterEggItemContent( egg: EasterEgg = EasterEggHelp.previewEasterEggs().first(), base: BaseEasterEgg = egg, supportShortcut: Boolean = true, + enableItemAnim: Boolean = false, onSelected: ((index: Int) -> Unit)? = null, ) { val context = LocalContext.current @@ -199,56 +203,60 @@ fun EasterEggItemContent( modifier = Modifier .padding(horizontal = 12.dp) .fillMaxWidth() - .clip(shapes.extraLarge) - .combinedClickable( - onClick = { - EggActionHelp.launchEgg(context, egg) - }, - onLongClick = { - if (supportShortcut) { - EggActionHelp.addShortcut(context, egg) - } - } - ) ) { - Column( - modifier = Modifier.padding(start = 22.dp, top = 18.dp, end = 22.dp, bottom = 18.dp) + Box( + modifier = Modifier + .clip(shapes.extraLarge) + .combinedClickable( + onClick = { + EggActionHelp.launchEgg(context, egg) + }, + onLongClick = { + if (supportShortcut) { + EggActionHelp.addShortcut(context, egg) + } + } + ) ) { - Row(modifier = Modifier.fillMaxWidth()) { - Box( + Column( + modifier = Modifier.padding(horizontal = 22.dp, vertical = 18.dp) + ) { + Row(modifier = Modifier.fillMaxWidth()) { + Box( + modifier = Modifier + .padding(end = 10.dp, bottom = 6.dp) + .weight(1f, true) + ) { + Text( + text = stringResource(egg.nameRes), + style = typography.headlineSmall, + modifier = if (enableItemAnim) Modifier.animateContentSize() else Modifier, + ) + } + EasterEggLogo(egg, sensor = true) + } + Row( modifier = Modifier - .padding(end = 10.dp, bottom = 6.dp) - .weight(1f, true) + .clip(shapes.extraSmall) + .withEasterEggGroupSelector(base) { + onSelected?.invoke(it) + }, + verticalAlignment = Alignment.CenterVertically ) { Text( - text = stringResource(egg.nameRes), - style = typography.headlineSmall, - modifier = Modifier.animateContentSize() - ) - } - EasterEggLogo(egg, sensor = true) - } - Row( - modifier = Modifier - .clip(shapes.extraSmall) - .withEasterEggGroupSelector(base) { - onSelected?.invoke(it) - }, - verticalAlignment = Alignment.CenterVertically - ) { - Text( - text = androidVersion, - style = typography.bodyMedium, - modifier = Modifier.animateContentSize(), - ) - if (isGroup) { - Icon( - modifier = Modifier - .padding(start = 4.dp) - .size(22.dp), - imageVector = Icons.Rounded.KeyboardArrowDown, - contentDescription = stringResource(R.string.pref_title_language_more) + text = androidVersion, + style = typography.bodyMedium, + modifier = if (enableItemAnim) Modifier.animateContentSize() else Modifier, ) + if (isGroup) { + Icon( + modifier = Modifier + .padding(start = 4.dp) + .size(22.dp), + imageVector = Icons.Rounded.KeyboardArrowDown, + contentDescription = stringResource(R.string.pref_title_language_more) + ) + } } } } diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggScreen.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggScreen.kt index 8e133f66..261e7c90 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggScreen.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggScreen.kt @@ -1,13 +1,11 @@ package com.dede.android_eggs.views.main.compose import android.content.Context -import androidx.compose.animation.AnimatedContent -import androidx.compose.animation.fadeIn -import androidx.compose.animation.fadeOut -import androidx.compose.animation.togetherWith +import androidx.compose.animation.Crossfade import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.consumeWindowInsets import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding @@ -19,6 +17,7 @@ import androidx.compose.material.icons.Icons import androidx.compose.material.icons.rounded.SearchOff import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme.colorScheme +import androidx.compose.material3.Surface import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import androidx.compose.ui.Alignment @@ -54,64 +53,64 @@ fun EasterEggScreen( easterEggs } } - Box( - modifier = Modifier.fillMaxSize(), - contentAlignment = Alignment.TopCenter, - ) { - AnimatedContent( - targetState = currentList.isEmpty(), - transitionSpec = { - fadeIn() togetherWith fadeOut() - }, - modifier = Modifier.sizeIn(maxWidth = 560.dp), + Surface(color = colorScheme.surface) { + Box( + modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.TopCenter, - label = "EasterEggList" - ) { isEmpty -> - if (isEmpty) { - Box( - contentAlignment = Alignment.TopCenter, - modifier = Modifier - .fillMaxWidth() - .padding(contentPadding) - .padding(top = 32.dp) - ) { - Icon( - imageVector = Icons.Rounded.SearchOff, - contentDescription = null, - tint = colorScheme.onBackground, - modifier = Modifier.size(108.dp) - ) - } - } else { - LazyColumn( - contentPadding = contentPadding, - verticalArrangement = Arrangement.spacedBy(12.dp) - ) { - if (searchMode) { - items(items = currentList) { - EasterEggItem(it) - } - } else { - item("snapshot") { - AndroidSnapshotView() - } - item("wavy1") { - Wavy(res = R.drawable.ic_wavy_line) - } - items(items = currentList) { - EasterEggItem(it) - } - item("wavy2") { - Wavy(res = R.drawable.ic_wavy_line) - } - item("footer") { - ProjectDescription() + ) { + Crossfade( + targetState = currentList.isEmpty(), + modifier = Modifier.sizeIn(maxWidth = 560.dp), + label = "EasterEggList", + ) { isEmpty -> + if (isEmpty) { + Box( + contentAlignment = Alignment.TopCenter, + modifier = Modifier + .fillMaxWidth() + .consumeWindowInsets(contentPadding) + .padding(contentPadding) + .padding(top = 32.dp) + ) { + Icon( + imageVector = Icons.Rounded.SearchOff, + contentDescription = null, + tint = colorScheme.onBackground, + modifier = Modifier.size(108.dp) + ) + } + } else { + LazyColumn( + // consume insets as scaffold doesn't do it by default + modifier = Modifier.consumeWindowInsets(contentPadding), + contentPadding = contentPadding, + verticalArrangement = Arrangement.spacedBy(12.dp) + ) { + if (searchMode) { + items(items = currentList) { + EasterEggItem(it, enableItemAnim = true) + } + } else { + item("snapshot") { + AndroidSnapshotView() + } + item("wavy1") { + Wavy(res = R.drawable.ic_wavy_line) + } + items(items = currentList) { + EasterEggItem(it, enableItemAnim = false) + } + item("wavy2") { + Wavy(res = R.drawable.ic_wavy_line) + } + item("footer") { + ProjectDescription() + } } } } } } - } } diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/MainTitleBar.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/MainTitleBar.kt index 4bab2c4e..23cf0ce8 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/MainTitleBar.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/MainTitleBar.kt @@ -17,6 +17,8 @@ import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.Text +import androidx.compose.material3.TopAppBarDefaults.pinnedScrollBehavior +import androidx.compose.material3.TopAppBarScrollBehavior import androidx.compose.runtime.Composable import androidx.compose.runtime.MutableState import androidx.compose.runtime.getValue @@ -41,6 +43,7 @@ private const val TAG_SETTINGS = "Settings" @Composable @Preview fun MainTitleBar( + scrollBehavior: TopAppBarScrollBehavior = pinnedScrollBehavior(), searchBarVisibleState: MutableState = mutableStateOf(false) ) { val fm: FragmentManager? = LocalFragmentManager.currentOutInspectionMode @@ -74,11 +77,12 @@ fun MainTitleBar( } CenterAlignedTopAppBar( + scrollBehavior = scrollBehavior, title = { Text( text = stringResource(R.string.app_name), maxLines = 1, - overflow = TextOverflow.Ellipsis + overflow = TextOverflow.Ellipsis, ) }, actions = { From 0e0ffea6997c865b5123d54addd798a4159279c6 Mon Sep 17 00:00:00 2001 From: Hu Shenghao Date: Mon, 20 Nov 2023 22:44:08 +0800 Subject: [PATCH 26/30] fix: Remove consumeWindowInsets --- .../dede/android_eggs/views/main/compose/EasterEggScreen.kt | 4 ---- 1 file changed, 4 deletions(-) diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggScreen.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggScreen.kt index 261e7c90..2cdcfc47 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggScreen.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggScreen.kt @@ -5,7 +5,6 @@ import androidx.compose.animation.Crossfade import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.PaddingValues -import androidx.compose.foundation.layout.consumeWindowInsets import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding @@ -68,7 +67,6 @@ fun EasterEggScreen( contentAlignment = Alignment.TopCenter, modifier = Modifier .fillMaxWidth() - .consumeWindowInsets(contentPadding) .padding(contentPadding) .padding(top = 32.dp) ) { @@ -81,8 +79,6 @@ fun EasterEggScreen( } } else { LazyColumn( - // consume insets as scaffold doesn't do it by default - modifier = Modifier.consumeWindowInsets(contentPadding), contentPadding = contentPadding, verticalArrangement = Arrangement.spacedBy(12.dp) ) { From 83764faf1b101b3561de5a3c575c52a877f08cb7 Mon Sep 17 00:00:00 2001 From: Hu Shenghao Date: Tue, 21 Nov 2023 18:32:35 +0800 Subject: [PATCH 27/30] feat: Update Theme colors --- .../views/main/compose/BottomSearchBar.kt | 58 ++++++++-- .../views/main/compose/EasterEggItem.kt | 11 +- .../views/main/compose/MainTitleBar.kt | 47 +++++--- .../views/settings/SettingsFragment.kt | 8 +- .../dede/android_eggs/views/theme/Color.kt | 65 +++++++++++ .../dede/android_eggs/views/theme/Theme.kt | 74 +++++++++++- .../popupmenu_background_overlay.xml | 2 +- .../drawable/popupmenu_background_overlay.xml | 2 +- app/src/main/res/values/colors.xml | 106 ++++++++++-------- 9 files changed, 284 insertions(+), 89 deletions(-) create mode 100644 app/src/main/java/com/dede/android_eggs/views/theme/Color.kt diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/BottomSearchBar.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/BottomSearchBar.kt index fb96453b..98be1d6c 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/BottomSearchBar.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/BottomSearchBar.kt @@ -1,7 +1,12 @@ +@file:OptIn(ExperimentalAnimationApi::class) + package com.dede.android_eggs.views.main.compose -import androidx.activity.compose.BackHandler +import android.util.Log +import androidx.activity.compose.PredictiveBackHandler import androidx.compose.animation.AnimatedVisibility +import androidx.compose.animation.ExperimentalAnimationApi +import androidx.compose.animation.core.animate import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut import androidx.compose.animation.scaleIn @@ -32,6 +37,7 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.MutableState import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableFloatStateOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue @@ -39,6 +45,9 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.focus.FocusRequester import androidx.compose.ui.focus.focusRequester import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.Shape +import androidx.compose.ui.graphics.TransformOrigin +import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.ui.platform.LocalSoftwareKeyboardController import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.input.ImeAction @@ -46,6 +55,7 @@ import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.dede.android_eggs.R +import kotlinx.coroutines.flow.catch @Composable @Preview @@ -54,26 +64,51 @@ fun BottomSearchBar( onSearch: ((text: String) -> Unit)? = null, ) { var visible by visibleState - - BackHandler(visible) { + var backProgress by remember { mutableFloatStateOf(0f) } + PredictiveBackHandler(enabled = visible) { flow -> + flow.catch { + Log.d("BottomSearchBar", "onCancel", it) + animate(backProgress, 0f) { value, _ -> + backProgress = value + } + }.collect { event -> + backProgress = event.progress + } visible = false } + LaunchedEffect(visible) { + if (visible) { + backProgress = 0f + } + } AnimatedVisibility( visible = visible, - enter = slideInVertically(initialOffsetY = { - it - }) + fadeIn(), + enter = slideInVertically(initialOffsetY = { it }) + fadeIn(), exit = slideOutVertically(targetOffsetY = { it }) + fadeOut(), ) { - BottomSearchBar(visible, onClose = { - visible = false - }, onSearch = { onSearch?.invoke(it) }) + BottomSearchBar( + visible, + modifier = Modifier + .graphicsLayer( + scaleX = 1F - (0.1F * backProgress), + scaleY = 1F - (0.1F * backProgress), + transformOrigin = remember { TransformOrigin(0.5f, 1f) }, + ), + shape = RoundedCornerShape( + topStart = (28 * backProgress).dp, + topEnd = (28 * backProgress).dp + ), + onClose = { visible = false }, + onSearch = { onSearch?.invoke(it) } + ) } } @Composable private fun BottomSearchBar( visible: Boolean, + modifier: Modifier, + shape: Shape, onSearch: (text: String) -> Unit, onClose: () -> Unit, ) { @@ -89,7 +124,10 @@ private fun BottomSearchBar( } } Surface( - modifier = Modifier.imePadding(), + modifier = Modifier + .then(modifier) + .imePadding(), + shape = shape, color = colorScheme.surfaceColorAtElevation(4.dp), contentColor = colorScheme.onSurface, tonalElevation = 4.dp, diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggItem.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggItem.kt index 65253d7e..49475928 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggItem.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/EasterEggItem.kt @@ -5,7 +5,7 @@ package com.dede.android_eggs.views.main.compose import android.view.HapticFeedbackConstants import androidx.compose.animation.AnimatedContent import androidx.compose.animation.animateContentSize -import androidx.compose.animation.core.Animatable +import androidx.compose.animation.core.animate import androidx.compose.animation.core.tween import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut @@ -31,11 +31,14 @@ import androidx.compose.material.icons.rounded.KeyboardArrowDown import androidx.compose.material.icons.rounded.SwipeLeft import androidx.compose.material.icons.rounded.SwipeRight import androidx.compose.material3.Card +import androidx.compose.material3.CardDefaults import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme.colorScheme import androidx.compose.material3.MaterialTheme.shapes import androidx.compose.material3.MaterialTheme.typography import androidx.compose.material3.Text +import androidx.compose.material3.surfaceColorAtElevation import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue @@ -132,10 +135,9 @@ fun EasterEggItemSwipe( LaunchedEffect(released) { if (released) { - val releaseAnim = Animatable(offsetX) - releaseAnim.animateTo(0f, animationSpec = tween(300)) { + animate(offsetX, 0f, animationSpec = tween(300)) { value, _ -> offsetX = value - callbackSwipeProgress(offsetX) + callbackSwipeProgress(value) } } } @@ -199,6 +201,7 @@ fun EasterEggItemContent( .format(context) } Card( + colors = CardDefaults.cardColors(containerColor = colorScheme.surfaceColorAtElevation(2.dp)), shape = shapes.extraLarge, modifier = Modifier .padding(horizontal = 12.dp) diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/MainTitleBar.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/MainTitleBar.kt index 23cf0ce8..615b5bcc 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/MainTitleBar.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/MainTitleBar.kt @@ -2,8 +2,9 @@ package com.dede.android_eggs.views.main.compose +import android.util.Log import androidx.compose.animation.AnimatedVisibility -import androidx.compose.animation.core.animateFloatAsState +import androidx.compose.animation.core.animate import androidx.compose.animation.core.tween import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut @@ -20,9 +21,12 @@ import androidx.compose.material3.Text import androidx.compose.material3.TopAppBarDefaults.pinnedScrollBehavior import androidx.compose.material3.TopAppBarScrollBehavior import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.MutableState import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableFloatStateOf import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue @@ -44,38 +48,45 @@ private const val TAG_SETTINGS = "Settings" @Preview fun MainTitleBar( scrollBehavior: TopAppBarScrollBehavior = pinnedScrollBehavior(), - searchBarVisibleState: MutableState = mutableStateOf(false) + searchBarVisibleState: MutableState = mutableStateOf(false), ) { val fm: FragmentManager? = LocalFragmentManager.currentOutInspectionMode var searchBarVisible by searchBarVisibleState val scope = rememberCoroutineScope() - var startRotate by rememberSaveable { mutableStateOf(false) } - val rotateAnim by animateFloatAsState( - targetValue = if (startRotate) 360f else 0f, - animationSpec = tween(500), - label = "setting_icon_rotate", - ) + var showSettings by rememberSaveable { mutableStateOf(false) } + var settingRotate by remember { mutableFloatStateOf(0f) } + + val onSlideCallback = remember { + { p: Float -> settingRotate = p * 360f } + } + val onDismissCallback = remember { + { showSettings = false } + } fun showSettings() { if (fm == null) return + showSettings = true SettingsFragment().apply { - onPreDismiss = { - startRotate = false - } + onSlide = onSlideCallback + onDismiss = onDismissCallback }.show(fm, TAG_SETTINGS) - startRotate = true } - if (startRotate) { - val restored = fm?.findFragmentByTag(TAG_SETTINGS) as? SettingsFragment - if (restored != null) { - restored.onPreDismiss = { - startRotate = false + LaunchedEffect(showSettings) { + if (showSettings) { + animate(0f, 360f, animationSpec = tween(500)) { value, _ -> + settingRotate = value } } } + val fragment = fm?.findFragmentByTag(TAG_SETTINGS) as? SettingsFragment + if (fragment != null) { + fragment.onSlide = onSlideCallback + fragment.onDismiss = onDismissCallback + } + CenterAlignedTopAppBar( scrollBehavior = scrollBehavior, title = { @@ -120,7 +131,7 @@ fun MainTitleBar( Icon( imageVector = Icons.Rounded.Settings, contentDescription = stringResource(R.string.label_settings), - modifier = Modifier.rotate(rotateAnim) + modifier = Modifier.rotate(settingRotate) ) } } diff --git a/app/src/main/java/com/dede/android_eggs/views/settings/SettingsFragment.kt b/app/src/main/java/com/dede/android_eggs/views/settings/SettingsFragment.kt index 176d5107..9e027f1c 100644 --- a/app/src/main/java/com/dede/android_eggs/views/settings/SettingsFragment.kt +++ b/app/src/main/java/com/dede/android_eggs/views/settings/SettingsFragment.kt @@ -4,7 +4,6 @@ import android.app.Dialog import android.content.Context import android.content.DialogInterface import android.os.Bundle -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -29,6 +28,8 @@ class SettingsFragment : BottomSheetDialogFragment(R.layout.fragment_settings) { var onPreDismiss: (() -> Unit)? = null + var onDismiss: (() -> Unit)? = null + private var lastSlideOffset: Float = -1f private val callback = object : BottomSheetBehavior.BottomSheetCallback() { override fun onStateChanged(bottomSheet: View, newState: Int) { @@ -46,6 +47,11 @@ class SettingsFragment : BottomSheetDialogFragment(R.layout.fragment_settings) { private val binding by viewBinding(FragmentSettingsBinding::bind) + override fun onDismiss(dialog: DialogInterface) { + onDismiss?.invoke() + super.onDismiss(dialog) + } + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { val dialog = super.onCreateDialog(savedInstanceState) as BottomSheetDialog EdgeUtils.applyEdge(dialog.window) diff --git a/app/src/main/java/com/dede/android_eggs/views/theme/Color.kt b/app/src/main/java/com/dede/android_eggs/views/theme/Color.kt new file mode 100644 index 00000000..8a66844a --- /dev/null +++ b/app/src/main/java/com/dede/android_eggs/views/theme/Color.kt @@ -0,0 +1,65 @@ +package com.dede.android_eggs.views.theme +import androidx.compose.ui.graphics.Color + +val md_theme_light_primary = Color(0xFF006D3C) +val md_theme_light_onPrimary = Color(0xFFFFFFFF) +val md_theme_light_primaryContainer = Color(0xFF6FFDA7) +val md_theme_light_onPrimaryContainer = Color(0xFF00210E) +val md_theme_light_secondary = Color(0xFF4F6353) +val md_theme_light_onSecondary = Color(0xFFFFFFFF) +val md_theme_light_secondaryContainer = Color(0xFFD2E8D4) +val md_theme_light_onSecondaryContainer = Color(0xFF0D1F13) +val md_theme_light_tertiary = Color(0xFF3A646F) +val md_theme_light_onTertiary = Color(0xFFFFFFFF) +val md_theme_light_tertiaryContainer = Color(0xFFBEEAF7) +val md_theme_light_onTertiaryContainer = Color(0xFF001F26) +val md_theme_light_error = Color(0xFFBA1A1A) +val md_theme_light_errorContainer = Color(0xFFFFDAD6) +val md_theme_light_onError = Color(0xFFFFFFFF) +val md_theme_light_onErrorContainer = Color(0xFF410002) +val md_theme_light_background = Color(0xFFFBFDF8) +val md_theme_light_onBackground = Color(0xFF191C19) +val md_theme_light_outline = Color(0xFF717971) +val md_theme_light_inverseOnSurface = Color(0xFFF0F1EC) +val md_theme_light_inverseSurface = Color(0xFF2E312E) +val md_theme_light_inversePrimary = Color(0xFF4EE08D) +val md_theme_light_surfaceTint = Color(0xFF006D3C) +val md_theme_light_outlineVariant = Color(0xFFC0C9BF) +val md_theme_light_scrim = Color(0xFF000000) +val md_theme_light_surface = Color(0xFFF8FAF5) +val md_theme_light_onSurface = Color(0xFF191C19) +val md_theme_light_surfaceVariant = Color(0xFFDDE5DB) +val md_theme_light_onSurfaceVariant = Color(0xFF414942) + +val md_theme_dark_primary = Color(0xFF4EE08D) +val md_theme_dark_onPrimary = Color(0xFF00391D) +val md_theme_dark_primaryContainer = Color(0xFF00522C) +val md_theme_dark_onPrimaryContainer = Color(0xFF6FFDA7) +val md_theme_dark_secondary = Color(0xFFB6CCB9) +val md_theme_dark_onSecondary = Color(0xFF223527) +val md_theme_dark_secondaryContainer = Color(0xFF384B3D) +val md_theme_dark_onSecondaryContainer = Color(0xFFD2E8D4) +val md_theme_dark_tertiary = Color(0xFFA2CDDA) +val md_theme_dark_onTertiary = Color(0xFF023640) +val md_theme_dark_tertiaryContainer = Color(0xFF214C57) +val md_theme_dark_onTertiaryContainer = Color(0xFFBEEAF7) +val md_theme_dark_error = Color(0xFFFFB4AB) +val md_theme_dark_errorContainer = Color(0xFF93000A) +val md_theme_dark_onError = Color(0xFF690005) +val md_theme_dark_onErrorContainer = Color(0xFFFFDAD6) +val md_theme_dark_background = Color(0xFF191C19) +val md_theme_dark_onBackground = Color(0xFFE1E3DE) +val md_theme_dark_outline = Color(0xFF8B938A) +val md_theme_dark_inverseOnSurface = Color(0xFF191C19) +val md_theme_dark_inverseSurface = Color(0xFFE1E3DE) +val md_theme_dark_inversePrimary = Color(0xFF006D3C) +val md_theme_dark_surfaceTint = Color(0xFF4EE08D) +val md_theme_dark_outlineVariant = Color(0xFF414942) +val md_theme_dark_scrim = Color(0xFF000000) +val md_theme_dark_surface = Color(0xFF111411) +val md_theme_dark_onSurface = Color(0xFFC5C7C2) +val md_theme_dark_surfaceVariant = Color(0xFF414942) +val md_theme_dark_onSurfaceVariant = Color(0xFFC0C9BF) + + +val seed = Color(0xFF4ADC8A) diff --git a/app/src/main/java/com/dede/android_eggs/views/theme/Theme.kt b/app/src/main/java/com/dede/android_eggs/views/theme/Theme.kt index 30c91248..1db1a55a 100644 --- a/app/src/main/java/com/dede/android_eggs/views/theme/Theme.kt +++ b/app/src/main/java/com/dede/android_eggs/views/theme/Theme.kt @@ -58,13 +58,77 @@ fun Int.blend( @FloatRange(from = 0.0, to = 1.0) fraction: Float = 0.5f, ): Int = ColorUtils.blendARGB(this, color, fraction) +private val LightColorScheme = lightColorScheme( + primary = md_theme_light_primary, + onPrimary = md_theme_light_onPrimary, + primaryContainer = md_theme_light_primaryContainer, + onPrimaryContainer = md_theme_light_onPrimaryContainer, + secondary = md_theme_light_secondary, + onSecondary = md_theme_light_onSecondary, + secondaryContainer = md_theme_light_secondaryContainer, + onSecondaryContainer = md_theme_light_onSecondaryContainer, + tertiary = md_theme_light_tertiary, + onTertiary = md_theme_light_onTertiary, + tertiaryContainer = md_theme_light_tertiaryContainer, + onTertiaryContainer = md_theme_light_onTertiaryContainer, + error = md_theme_light_error, + errorContainer = md_theme_light_errorContainer, + onError = md_theme_light_onError, + onErrorContainer = md_theme_light_onErrorContainer, + background = md_theme_light_background, + onBackground = md_theme_light_onBackground, + outline = md_theme_light_outline, + inverseOnSurface = md_theme_light_inverseOnSurface, + inverseSurface = md_theme_light_inverseSurface, + inversePrimary = md_theme_light_inversePrimary, + surfaceTint = md_theme_light_surfaceTint, + outlineVariant = md_theme_light_outlineVariant, + scrim = md_theme_light_scrim, + surface = md_theme_light_surface, + onSurface = md_theme_light_onSurface, + surfaceVariant = md_theme_light_surfaceVariant, + onSurfaceVariant = md_theme_light_onSurfaceVariant, +) + +private val DarkColorScheme = darkColorScheme( + primary = md_theme_dark_primary, + onPrimary = md_theme_dark_onPrimary, + primaryContainer = md_theme_dark_primaryContainer, + onPrimaryContainer = md_theme_dark_onPrimaryContainer, + secondary = md_theme_dark_secondary, + onSecondary = md_theme_dark_onSecondary, + secondaryContainer = md_theme_dark_secondaryContainer, + onSecondaryContainer = md_theme_dark_onSecondaryContainer, + tertiary = md_theme_dark_tertiary, + onTertiary = md_theme_dark_onTertiary, + tertiaryContainer = md_theme_dark_tertiaryContainer, + onTertiaryContainer = md_theme_dark_onTertiaryContainer, + error = md_theme_dark_error, + errorContainer = md_theme_dark_errorContainer, + onError = md_theme_dark_onError, + onErrorContainer = md_theme_dark_onErrorContainer, + background = md_theme_dark_background, + onBackground = md_theme_dark_onBackground, + outline = md_theme_dark_outline, + inverseOnSurface = md_theme_dark_inverseOnSurface, + inverseSurface = md_theme_dark_inverseSurface, + inversePrimary = md_theme_dark_inversePrimary, + surfaceTint = md_theme_dark_surfaceTint, + outlineVariant = md_theme_dark_outlineVariant, + scrim = md_theme_dark_scrim, + surface = md_theme_dark_surface, + onSurface = md_theme_dark_onSurface, + surfaceVariant = md_theme_dark_surfaceVariant, + onSurfaceVariant = md_theme_dark_onSurfaceVariant, +) + @Composable fun AppTheme(content: @Composable () -> Unit) { val context: Context = LocalContext.current var nightModeValue = NightModePref.getNightModeValue(context) if (nightModeValue == AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM) { - nightModeValue = - if (isSystemInDarkTheme()) AppCompatDelegate.MODE_NIGHT_YES else AppCompatDelegate.MODE_NIGHT_NO + nightModeValue = if (isSystemInDarkTheme()) + AppCompatDelegate.MODE_NIGHT_YES else AppCompatDelegate.MODE_NIGHT_NO } val colors = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S && @@ -77,9 +141,9 @@ fun AppTheme(content: @Composable () -> Unit) { } } else { when (nightModeValue) { - NightModePref.OLED -> darkColorScheme().toAmoled() - AppCompatDelegate.MODE_NIGHT_YES -> darkColorScheme() - else -> lightColorScheme() + NightModePref.OLED -> DarkColorScheme.toAmoled() + AppCompatDelegate.MODE_NIGHT_YES -> DarkColorScheme + else -> LightColorScheme } } diff --git a/app/src/main/res/drawable-ldrtl/popupmenu_background_overlay.xml b/app/src/main/res/drawable-ldrtl/popupmenu_background_overlay.xml index f0a0f66d..531eb2fc 100644 --- a/app/src/main/res/drawable-ldrtl/popupmenu_background_overlay.xml +++ b/app/src/main/res/drawable-ldrtl/popupmenu_background_overlay.xml @@ -1,6 +1,6 @@ - + diff --git a/app/src/main/res/drawable/popupmenu_background_overlay.xml b/app/src/main/res/drawable/popupmenu_background_overlay.xml index 05f758f2..a44c29f7 100644 --- a/app/src/main/res/drawable/popupmenu_background_overlay.xml +++ b/app/src/main/res/drawable/popupmenu_background_overlay.xml @@ -1,6 +1,6 @@ - + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 2797286f..0f550e37 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -1,58 +1,66 @@ - #6750A4 + #4ADC8A + #006D3C #FFFFFF - #EADDFF - #21005D - #625B71 + #6FFDA7 + #00210E + #4F6353 #FFFFFF - #E8DEF8 - #1D192B - #7D5260 + #D2E8D4 + #0D1F13 + #3A646F #FFFFFF - #FFD8E4 - #31111D - #B3261E + #BEEAF7 + #001F26 + #BA1A1A + #FFDAD6 #FFFFFF - #F9DEDC - #410E0B - #79747E - #FFFBFE - #1C1B1F - #FFFBFE - #1C1B1F - #E7E0EC - #49454F - #313033 - #F4EFF4 - #D0BCFF - - #D0BCFF - #381E72 - #4F378B - #EADDFF - #CCC2DC - #332D41 - #4A4458 - #E8DEF8 - #EFB8C8 - #492532 - #633B48 - #FFD8E4 - #F2B8B5 - #601410 - #8C1D18 - #F9DEDC - #938F99 - #1C1B1F - #E6E1E5 - #1C1B1F - #E6E1E5 - #49454F - #CAC4D0 - #E6E1E5 - #313033 - #6750A4 + #410002 + #FBFDF8 + #191C19 + #717971 + #F0F1EC + #2E312E + #4EE08D + #000000 + #006D3C + #C0C9BF + #000000 + #F8FAF5 + #191C19 + #DDE5DB + #414942 + #4EE08D + #00391D + #00522C + #6FFDA7 + #B6CCB9 + #223527 + #384B3D + #D2E8D4 + #A2CDDA + #023640 + #214C57 + #BEEAF7 + #FFB4AB + #93000A + #690005 + #FFDAD6 + #191C19 + #E1E3DE + #8B938A + #191C19 + #E1E3DE + #006D3C + #000000 + #4EE08D + #414942 + #000000 + #111411 + #C5C7C2 + #414942 + #C0C9BF @color/md_theme_light_background From f13ad45d1eadb3fbad4daa6a83c1bba89c7d20c0 Mon Sep 17 00:00:00 2001 From: Hu Shenghao Date: Tue, 21 Nov 2023 20:41:24 +0800 Subject: [PATCH 28/30] feat: Settings rotate anim --- .../views/main/compose/MainTitleBar.kt | 48 +++++++++---------- 1 file changed, 23 insertions(+), 25 deletions(-) diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/MainTitleBar.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/MainTitleBar.kt index 615b5bcc..27d5dc70 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/MainTitleBar.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/MainTitleBar.kt @@ -2,7 +2,6 @@ package com.dede.android_eggs.views.main.compose -import android.util.Log import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.core.animate import androidx.compose.animation.core.tween @@ -28,7 +27,6 @@ import androidx.compose.runtime.mutableFloatStateOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope -import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.draw.rotate @@ -53,8 +51,8 @@ fun MainTitleBar( val fm: FragmentManager? = LocalFragmentManager.currentOutInspectionMode var searchBarVisible by searchBarVisibleState - val scope = rememberCoroutineScope() - var showSettings by rememberSaveable { mutableStateOf(false) } + val fragment = fm?.findFragmentByTag(TAG_SETTINGS) as? SettingsFragment + var showSettings by remember { mutableStateOf(fragment != null) } var settingRotate by remember { mutableFloatStateOf(0f) } val onSlideCallback = remember { @@ -63,14 +61,9 @@ fun MainTitleBar( val onDismissCallback = remember { { showSettings = false } } - - fun showSettings() { - if (fm == null) return - showSettings = true - SettingsFragment().apply { - onSlide = onSlideCallback - onDismiss = onDismissCallback - }.show(fm, TAG_SETTINGS) + if (fragment != null) { + fragment.onSlide = onSlideCallback + fragment.onDismiss = onDismissCallback } LaunchedEffect(showSettings) { @@ -81,10 +74,23 @@ fun MainTitleBar( } } - val fragment = fm?.findFragmentByTag(TAG_SETTINGS) as? SettingsFragment - if (fragment != null) { - fragment.onSlide = onSlideCallback - fragment.onDismiss = onDismissCallback + val scope = rememberCoroutineScope() + + fun showSettings() { + scope.launch { + if (searchBarVisible) { + // hide searchBar + searchBarVisible = false + // await searchBar dismiss + delay(200) + } + if (fm == null) return@launch + SettingsFragment().apply { + onSlide = onSlideCallback + onDismiss = onDismissCallback + }.show(fm, TAG_SETTINGS) + showSettings = true + } } CenterAlignedTopAppBar( @@ -117,15 +123,7 @@ fun MainTitleBar( IconButton( onClick = { - scope.launch { - if (searchBarVisible) { - // hide searchBar - searchBarVisible = false - // await searchBar dismiss - delay(200) - } - showSettings() - } + showSettings() }, ) { Icon( From 38ca72715866bb973bebb9d9308db728ccbe1a5b Mon Sep 17 00:00:00 2001 From: Hu Shenghao Date: Wed, 22 Nov 2023 17:48:53 +0800 Subject: [PATCH 29/30] feat: Clean search with close searchBar --- .../views/main/EasterEggsActivity.kt | 15 +++++---------- .../views/main/compose/BottomSearchBar.kt | 18 +++++------------- .../views/main/compose/MainTitleBar.kt | 3 +++ 3 files changed, 13 insertions(+), 23 deletions(-) diff --git a/app/src/main/java/com/dede/android_eggs/views/main/EasterEggsActivity.kt b/app/src/main/java/com/dede/android_eggs/views/main/EasterEggsActivity.kt index 89808d26..cbf9ab51 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/EasterEggsActivity.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/EasterEggsActivity.kt @@ -12,10 +12,8 @@ import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Scaffold import androidx.compose.material3.TopAppBarDefaults import androidx.compose.runtime.CompositionLocalProvider -import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.saveable.rememberSaveable -import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import com.dede.android_eggs.util.LocalEvent @@ -60,7 +58,7 @@ class EasterEggsActivity : AppCompatActivity() { setContent { val konfettiState = rememberKonfettiState() val searchBarVisibleState = rememberSaveable { mutableStateOf(false) } - var searchText by rememberSaveable { mutableStateOf("") } + val searchFieldState = rememberSaveable { mutableStateOf("") } val scrollBehavior = TopAppBarDefaults.pinnedScrollBehavior() CompositionLocalProvider( @@ -73,18 +71,17 @@ class EasterEggsActivity : AppCompatActivity() { topBar = { MainTitleBar( scrollBehavior = scrollBehavior, - searchBarVisibleState = searchBarVisibleState + searchBarVisibleState = searchBarVisibleState, + searchFieldState = searchFieldState, ) }, modifier = Modifier .nestedScroll(scrollBehavior.nestedScrollConnection), bottomBar = { - BottomSearchBar(searchBarVisibleState, onSearch = { - searchText = it - }) + BottomSearchBar(searchBarVisibleState, searchFieldState) } ) { contentPadding -> - EasterEggScreen(easterEggs, searchText, contentPadding) + EasterEggScreen(easterEggs, searchFieldState.value, contentPadding) } Welcome() Konfetti(konfettiState) @@ -92,8 +89,6 @@ class EasterEggsActivity : AppCompatActivity() { } } - BackPressedHandler(this).register() - handleOrientationAngleSensor(IconVisualEffectsPref.isEnable(this)) LocalEvent.receiver(this).register(IconVisualEffectsPref.ACTION_CHANGED) { val enable = it.getBooleanExtra(IconVisualEffectsPref.EXTRA_VALUE, false) diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/BottomSearchBar.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/BottomSearchBar.kt index 98be1d6c..7743e2da 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/BottomSearchBar.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/BottomSearchBar.kt @@ -2,7 +2,6 @@ package com.dede.android_eggs.views.main.compose -import android.util.Log import androidx.activity.compose.PredictiveBackHandler import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.ExperimentalAnimationApi @@ -20,7 +19,6 @@ import androidx.compose.foundation.layout.imePadding import androidx.compose.foundation.layout.navigationBarsPadding import androidx.compose.foundation.layout.padding import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.foundation.text.KeyboardActions import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.material.icons.Icons import androidx.compose.material.icons.rounded.ArrowBack @@ -61,13 +59,12 @@ import kotlinx.coroutines.flow.catch @Preview fun BottomSearchBar( visibleState: MutableState = mutableStateOf(true), - onSearch: ((text: String) -> Unit)? = null, + searchFieldState: MutableState = mutableStateOf(""), ) { var visible by visibleState var backProgress by remember { mutableFloatStateOf(0f) } PredictiveBackHandler(enabled = visible) { flow -> flow.catch { - Log.d("BottomSearchBar", "onCancel", it) animate(backProgress, 0f) { value, _ -> backProgress = value } @@ -88,6 +85,7 @@ fun BottomSearchBar( ) { BottomSearchBar( visible, + searchFieldState, modifier = Modifier .graphicsLayer( scaleX = 1F - (0.1F * backProgress), @@ -99,7 +97,6 @@ fun BottomSearchBar( topEnd = (28 * backProgress).dp ), onClose = { visible = false }, - onSearch = { onSearch?.invoke(it) } ) } } @@ -107,12 +104,12 @@ fun BottomSearchBar( @Composable private fun BottomSearchBar( visible: Boolean, + searchField: MutableState, modifier: Modifier, shape: Shape, - onSearch: (text: String) -> Unit, onClose: () -> Unit, ) { - var searchText by remember { mutableStateOf("") } + var searchText by searchField val keyboardController = LocalSoftwareKeyboardController.current val focusRequester = remember { FocusRequester() } LaunchedEffect(visible) { @@ -141,7 +138,6 @@ private fun BottomSearchBar( value = searchText, onValueChange = { searchText = it - onSearch.invoke(searchText) }, placeholder = { Text(text = stringResource(R.string.label_search_hint)) @@ -149,9 +145,6 @@ private fun BottomSearchBar( keyboardOptions = KeyboardOptions( keyboardType = KeyboardType.Ascii, imeAction = ImeAction.Search ), - keyboardActions = KeyboardActions(onSearch = { - onSearch.invoke(searchText) - }), singleLine = true, shape = RoundedCornerShape(50), colors = TextFieldDefaults.colors( @@ -166,7 +159,7 @@ private fun BottomSearchBar( interactionSource = remember { MutableInteractionSource() }, indication = rememberRipple(bounded = false) ) { - onSearch.invoke("") + searchText = "" onClose.invoke() keyboardController?.hide() }) @@ -184,7 +177,6 @@ private fun BottomSearchBar( indication = rememberRipple(bounded = false) ) { searchText = "" - onSearch.invoke(searchText) }) } }) diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/MainTitleBar.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/MainTitleBar.kt index 27d5dc70..f5850ec7 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/MainTitleBar.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/MainTitleBar.kt @@ -47,9 +47,11 @@ private const val TAG_SETTINGS = "Settings" fun MainTitleBar( scrollBehavior: TopAppBarScrollBehavior = pinnedScrollBehavior(), searchBarVisibleState: MutableState = mutableStateOf(false), + searchFieldState: MutableState = mutableStateOf(""), ) { val fm: FragmentManager? = LocalFragmentManager.currentOutInspectionMode var searchBarVisible by searchBarVisibleState + var searchText by searchFieldState val fragment = fm?.findFragmentByTag(TAG_SETTINGS) as? SettingsFragment var showSettings by remember { mutableStateOf(fragment != null) } @@ -80,6 +82,7 @@ fun MainTitleBar( scope.launch { if (searchBarVisible) { // hide searchBar + searchText = "" searchBarVisible = false // await searchBar dismiss delay(200) From 7cedf06321faeb1ca7e4419c2fb692d738fa2c29 Mon Sep 17 00:00:00 2001 From: Hu Shenghao Date: Sat, 25 Nov 2023 16:11:13 +0800 Subject: [PATCH 30/30] feat: Added crash report --- CHANGELOG.md | 1 + app/src/main/AndroidManifest.xml | 1 + .../startup/ApplicationInitializer.kt | 5 +- .../com/dede/android_eggs/util/ContextExt.kt | 9 + .../android_eggs/views/crash/CrashActivity.kt | 227 ++++++++++++++++++ .../views/crash/GlobalExceptionHandler.kt | 61 +++++ .../views/main/compose/Konfetti.kt | 8 +- .../views/placeholder/PlaceholderActivity.kt | 6 +- app/src/main/res/values/strings.xml | 1 + app/src/main/res/xml/split_configuration.xml | 3 +- .../metadata/android/en-US/changelogs/33.txt | 1 + .../metadata/android/zh-CN/changelogs/33.txt | 1 + 12 files changed, 316 insertions(+), 8 deletions(-) create mode 100644 app/src/main/java/com/dede/android_eggs/views/crash/CrashActivity.kt create mode 100644 app/src/main/java/com/dede/android_eggs/views/crash/GlobalExceptionHandler.kt diff --git a/CHANGELOG.md b/CHANGELOG.md index bb8c0c12..8a6fc0af 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,5 @@ ### v2.1.1 +- Added crash report - Refactored with Compose - Added Component Manager Settings - Added Portuguese (Brazilian) translation diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 3469c8cc..318b0c41 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -90,6 +90,7 @@ android:resource="@xml/shortcuts" /> + \ No newline at end of file diff --git a/app/src/main/java/com/dede/android_eggs/startup/ApplicationInitializer.kt b/app/src/main/java/com/dede/android_eggs/startup/ApplicationInitializer.kt index ee9f1d58..a8023324 100644 --- a/app/src/main/java/com/dede/android_eggs/startup/ApplicationInitializer.kt +++ b/app/src/main/java/com/dede/android_eggs/startup/ApplicationInitializer.kt @@ -3,8 +3,10 @@ package com.dede.android_eggs.startup import android.app.Application import android.content.Context import androidx.startup.Initializer -import com.dede.android_eggs.views.settings.SettingsPrefs import com.dede.android_eggs.util.ActivityActionDispatcher +import com.dede.android_eggs.views.crash.CrashActivity +import com.dede.android_eggs.views.crash.GlobalExceptionHandler +import com.dede.android_eggs.views.settings.SettingsPrefs import com.dede.basic.GlobalContext class ApplicationInitializer : Initializer { @@ -13,6 +15,7 @@ class ApplicationInitializer : Initializer { val application = context.applicationContext as Application SettingsPrefs.apply(application) ActivityActionDispatcher.register(application) + GlobalExceptionHandler.initialize(application, CrashActivity::class.java) } override fun dependencies(): List>> = listOf( diff --git a/app/src/main/java/com/dede/android_eggs/util/ContextExt.kt b/app/src/main/java/com/dede/android_eggs/util/ContextExt.kt index 87750440..8c218224 100644 --- a/app/src/main/java/com/dede/android_eggs/util/ContextExt.kt +++ b/app/src/main/java/com/dede/android_eggs/util/ContextExt.kt @@ -2,10 +2,13 @@ package com.dede.android_eggs.util import android.annotation.SuppressLint import android.app.Activity +import android.content.ClipData +import android.content.ClipboardManager import android.content.Context import android.content.Intent import android.widget.Toast import androidx.annotation.StringRes +import androidx.core.content.getSystemService import com.dede.android_eggs.R import com.google.android.material.internal.ContextUtils @@ -28,3 +31,9 @@ fun Context.createChooser(target: Intent): Intent { return Intent.createChooser(target, getString(R.string.title_open_with)) .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) } + +fun Context.copy(text: String) { + val service = getSystemService() ?: return + service.setPrimaryClip(ClipData.newPlainText(null, text)) + toast(android.R.string.copy) +} diff --git a/app/src/main/java/com/dede/android_eggs/views/crash/CrashActivity.kt b/app/src/main/java/com/dede/android_eggs/views/crash/CrashActivity.kt new file mode 100644 index 00000000..5431808b --- /dev/null +++ b/app/src/main/java/com/dede/android_eggs/views/crash/CrashActivity.kt @@ -0,0 +1,227 @@ +@file:OptIn(ExperimentalMaterial3Api::class) + +package com.dede.android_eggs.views.crash + +import android.content.ActivityNotFoundException +import android.content.Intent +import android.net.Uri +import android.os.Build +import android.os.Bundle +import androidx.activity.compose.setContent +import androidx.activity.enableEdgeToEdge +import androidx.appcompat.app.AppCompatActivity +import androidx.compose.animation.animateContentSize +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.navigationBarsPadding +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.statusBarsPadding +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.rounded.BugReport +import androidx.compose.material.icons.rounded.ContentCopy +import androidx.compose.material.icons.rounded.KeyboardArrowDown +import androidx.compose.material.icons.rounded.PowerSettingsNew +import androidx.compose.material.icons.rounded.RestartAlt +import androidx.compose.material.icons.rounded.SmartToy +import androidx.compose.material3.Card +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.FloatingActionButton +import androidx.compose.material3.FloatingActionButtonDefaults +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.MaterialTheme.colorScheme +import androidx.compose.material3.MaterialTheme.shapes +import androidx.compose.material3.MaterialTheme.typography +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.dede.android_eggs.BuildConfig +import com.dede.android_eggs.R +import com.dede.android_eggs.util.ThemeUtils +import com.dede.android_eggs.util.copy +import com.dede.android_eggs.views.crash.GlobalExceptionHandler.Companion.getCrashReason +import com.dede.android_eggs.views.main.EasterEggsActivity +import com.dede.android_eggs.views.theme.AppTheme +import kotlin.system.exitProcess + +class CrashActivity : AppCompatActivity() { + + override fun onCreate(savedInstanceState: Bundle?) { + ThemeUtils.tryApplyOLEDTheme(this) + enableEdgeToEdge() + super.onCreate(savedInstanceState) + + val crashReason = getCrashReason(intent) + val split = crashReason.split("\n\n") + val exName = split[0].trim() + val ex = split.drop(1).joinToString("\n\n") + + val title = "[Bug] App Crash: $exName" + val deviceInfo = + "Device: ${Build.MODEL} (${Build.BRAND} - ${Build.DEVICE}), SDK: ${Build.VERSION.SDK_INT} (${Build.VERSION.RELEASE}), App: ${BuildConfig.VERSION_NAME} (${BuildConfig.VERSION_CODE})\n\n" + val body = "$deviceInfo$ex" + + setContent { + AppTheme { + Surface { + CrashScreen(title, body) + } + } + } + } +} + +@Composable +@Preview(showSystemUi = true) +private fun CrashScreen( + title: String = "[Bug] App Crash: java.lang.IllegalStateException: xxx", + body: String = "", +) { + var expanded by remember { mutableStateOf(false) } + val context = LocalContext.current + Box { + Column( + modifier = Modifier + .fillMaxSize() + .verticalScroll(rememberScrollState()), + verticalArrangement = Arrangement.Center, + horizontalAlignment = Alignment.CenterHorizontally + ) { + Icon( + imageVector = Icons.Rounded.SmartToy, + contentDescription = null, + modifier = Modifier + .statusBarsPadding() + .size(42.dp), + tint = colorScheme.primary + ) + Spacer(modifier = Modifier.height(6.dp)) + Text( + text = stringResource(id = R.string.app_name), + style = typography.titleMedium + ) + Spacer(modifier = Modifier.height(14.dp)) + Card( + onClick = { + expanded = !expanded + }, + shape = shapes.extraLarge, + modifier = Modifier + .fillMaxWidth(fraction = 0.9f) + .navigationBarsPadding() + .animateContentSize() + ) { + Row( + verticalAlignment = Alignment.CenterVertically + ) { + Text( + text = if (expanded) body else title, + modifier = Modifier + .weight(1f) + .padding(16.dp), + maxLines = if (expanded) Int.MAX_VALUE else 1, + style = typography.bodySmall, + fontWeight = if (expanded) FontWeight.Normal else FontWeight.Bold, + overflow = TextOverflow.Ellipsis, + ) + if (!expanded) { + Icon( + imageVector = Icons.Rounded.KeyboardArrowDown, + contentDescription = null + ) + Spacer(modifier = Modifier.width(12.dp)) + } + } + } + Spacer(modifier = Modifier.height(16.dp)) + } + IconButton( + modifier = Modifier + .align(Alignment.TopEnd) + .padding(top = 12.dp, end = 12.dp) + .statusBarsPadding(), + onClick = { + exitProcess(0) + }, + ) { + Icon( + imageVector = Icons.Rounded.PowerSettingsNew, + contentDescription = null + ) + } + Row( + modifier = Modifier + .align(Alignment.BottomCenter) + .padding(bottom = 36.dp) + .navigationBarsPadding() + .fillMaxWidth(fraction = 0.8f), + horizontalArrangement = Arrangement.SpaceAround + ) { + FloatingActionButton( + onClick = { + context.startActivity(Intent(context, EasterEggsActivity::class.java)) + }, + shape = FloatingActionButtonDefaults.largeShape + ) { + Icon( + imageVector = Icons.Rounded.RestartAlt, + contentDescription = null + ) + } + FloatingActionButton( + onClick = { + context.copy(title + "\n\n" + body) + }, + shape = FloatingActionButtonDefaults.largeShape + ) { + Icon( + imageVector = Icons.Rounded.ContentCopy, + contentDescription = null + ) + } + FloatingActionButton( + onClick = { + val uri = Uri.parse(context.getString(R.string.url_github_issues)) + .buildUpon() + .appendPath("new") + .appendQueryParameter("title", title) + .appendQueryParameter("body", "```\n$body\n```") + .build() + try { + context.startActivity(Intent(Intent.ACTION_VIEW, uri)) + } catch (_: ActivityNotFoundException) { + } + context.copy(title + "\n\n" + body) + }, + shape = FloatingActionButtonDefaults.largeShape + ) { + Icon( + imageVector = Icons.Rounded.BugReport, + contentDescription = null + ) + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/dede/android_eggs/views/crash/GlobalExceptionHandler.kt b/app/src/main/java/com/dede/android_eggs/views/crash/GlobalExceptionHandler.kt new file mode 100644 index 00000000..a5f6eec5 --- /dev/null +++ b/app/src/main/java/com/dede/android_eggs/views/crash/GlobalExceptionHandler.kt @@ -0,0 +1,61 @@ +package com.dede.android_eggs.views.crash + +import android.app.Activity +import android.content.Context +import android.content.Intent +import android.util.Log +import kotlin.system.exitProcess + +class GlobalExceptionHandler private constructor( + private val applicationContext: Context, + private val defaultHandler: Thread.UncaughtExceptionHandler, + private val activityToBeLaunched: Class +) : Thread.UncaughtExceptionHandler { + + override fun uncaughtException(p0: Thread, p1: Throwable) { + kotlin.runCatching { + Log.e(this.toString(), p1.stackTraceToString()) + applicationContext.launchActivity(activityToBeLaunched, p1) + exitProcess(0) + }.getOrElse { + defaultHandler.uncaughtException(p0, p1) + } + } + + private fun Context.launchActivity( + activity: Class, + exception: Throwable + ) { + val crashedIntent = Intent(applicationContext, activity).apply { + putExtra( + INTENT_DATA_NAME, + "${exception::class.java.simpleName}\n\n${Log.getStackTraceString(exception)}" + ) + addFlags(defFlags) + } + applicationContext.startActivity(crashedIntent) + } + + companion object { + + private const val INTENT_DATA_NAME = "GlobalExceptionHandler" + private const val defFlags = Intent.FLAG_ACTIVITY_CLEAR_TOP or + Intent.FLAG_ACTIVITY_NEW_TASK or + Intent.FLAG_ACTIVITY_CLEAR_TASK + + fun getCrashReason(intent: Intent): String { + return intent.getStringExtra(INTENT_DATA_NAME) ?: "" + } + + fun initialize( + applicationContext: Context, + activityToBeLaunched: Class, + ) = Thread.setDefaultUncaughtExceptionHandler( + GlobalExceptionHandler( + applicationContext = applicationContext, + Thread.getDefaultUncaughtExceptionHandler() as Thread.UncaughtExceptionHandler, + activityToBeLaunched + ) + ) + } +} diff --git a/app/src/main/java/com/dede/android_eggs/views/main/compose/Konfetti.kt b/app/src/main/java/com/dede/android_eggs/views/main/compose/Konfetti.kt index b3742b63..e7787890 100644 --- a/app/src/main/java/com/dede/android_eggs/views/main/compose/Konfetti.kt +++ b/app/src/main/java/com/dede/android_eggs/views/main/compose/Konfetti.kt @@ -67,8 +67,8 @@ private fun particles(primary: Int) = listOf( position = Position.Relative(0.0, 0.0).between(Position.Relative(1.0, 0.0)), ), Party( - speed = 20f, - maxSpeed = 60f, + speed = 10f, + maxSpeed = 40f, damping = 0.9f, angle = Angle.RIGHT - 55, spread = 60, @@ -77,8 +77,8 @@ private fun particles(primary: Int) = listOf( position = Position.Relative(0.0, 1.0) ), Party( - speed = 20f, - maxSpeed = 60f, + speed = 10f, + maxSpeed = 40f, damping = 0.9f, angle = Angle.RIGHT - 125, spread = 60, diff --git a/app/src/main/java/com/dede/android_eggs/views/placeholder/PlaceholderActivity.kt b/app/src/main/java/com/dede/android_eggs/views/placeholder/PlaceholderActivity.kt index 0fe65a6b..646f7aec 100644 --- a/app/src/main/java/com/dede/android_eggs/views/placeholder/PlaceholderActivity.kt +++ b/app/src/main/java/com/dede/android_eggs/views/placeholder/PlaceholderActivity.kt @@ -5,6 +5,7 @@ import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge import androidx.appcompat.app.AppCompatActivity import androidx.compose.animation.AnimatedVisibility +import androidx.compose.animation.animateContentSize import androidx.compose.animation.core.MutableTransitionState import androidx.compose.animation.core.tween import androidx.compose.animation.fadeIn @@ -12,6 +13,7 @@ import androidx.compose.animation.scaleIn import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.imePadding import androidx.compose.foundation.layout.size import androidx.compose.material3.Scaffold import androidx.compose.runtime.Composable @@ -89,7 +91,9 @@ fun Placeholder(res: Int, mask: String? = null) { val painter = rememberDrawablePainter(drawable = drawable) Box( contentAlignment = Alignment.Center, - modifier = Modifier.fillMaxSize() + modifier = Modifier + .fillMaxSize() + .imePadding() ) { AnimatedVisibility( visibleState = remember { MutableTransitionState(false) } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ae5e4836..d8a46e8e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -8,6 +8,7 @@ https://github.com/hushenghao/AndroidEasterEggs https://github.com/hushenghao/AndroidEasterEggs/commit/%s + https://github.com/hushenghao/AndroidEasterEggs/issues https://www.pgyer.com/eggs https://github.com/hushenghao/AndroidEasterEggs/wiki/Privacy-policy https://www.apache.org/licenses/LICENSE-2.0.txt diff --git a/app/src/main/res/xml/split_configuration.xml b/app/src/main/res/xml/split_configuration.xml index 3b6e369b..2d343ec2 100644 --- a/app/src/main/res/xml/split_configuration.xml +++ b/app/src/main/res/xml/split_configuration.xml @@ -65,8 +65,7 @@ - - + \ No newline at end of file diff --git a/fastlane/metadata/android/en-US/changelogs/33.txt b/fastlane/metadata/android/en-US/changelogs/33.txt index 331c956c..705dfbc8 100644 --- a/fastlane/metadata/android/en-US/changelogs/33.txt +++ b/fastlane/metadata/android/en-US/changelogs/33.txt @@ -1,3 +1,4 @@ +- Added crash report - Refactored with Compose - Added Component Manager Settings - Added Portuguese (Brazilian) translation diff --git a/fastlane/metadata/android/zh-CN/changelogs/33.txt b/fastlane/metadata/android/zh-CN/changelogs/33.txt index e89b6786..aefff0c8 100644 --- a/fastlane/metadata/android/zh-CN/changelogs/33.txt +++ b/fastlane/metadata/android/zh-CN/changelogs/33.txt @@ -1,3 +1,4 @@ +- 新增崩溃上报 - Compose重构 - 新增组件管理设置 - 新增葡萄牙语(巴西)翻译