From a11b16ebc5730b3a2d61cec787b6bbfe9998cc74 Mon Sep 17 00:00:00 2001 From: github-actions Date: Tue, 3 Sep 2024 11:52:37 +0000 Subject: [PATCH 01/13] Set version number to 1.71 --- gradle/app.versions.toml | 2 +- iosHyperskillApp/NotificationServiceExtension/Info.plist | 2 +- iosHyperskillApp/iosHyperskillApp/Info.plist | 2 +- iosHyperskillApp/iosHyperskillAppTests/Info.plist | 2 +- iosHyperskillApp/iosHyperskillAppUITests/Info.plist | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/gradle/app.versions.toml b/gradle/app.versions.toml index 83757f011..5cd6c9c8a 100644 --- a/gradle/app.versions.toml +++ b/gradle/app.versions.toml @@ -2,5 +2,5 @@ minSdk = '24' targetSdk = '34' compileSdk = '34' -versionName = '1.70' +versionName = '1.71' versionCode = '541' \ No newline at end of file diff --git a/iosHyperskillApp/NotificationServiceExtension/Info.plist b/iosHyperskillApp/NotificationServiceExtension/Info.plist index 5a6418042..fb3bc48cc 100644 --- a/iosHyperskillApp/NotificationServiceExtension/Info.plist +++ b/iosHyperskillApp/NotificationServiceExtension/Info.plist @@ -11,7 +11,7 @@ CFBundleVersion 570 CFBundleShortVersionString - 1.70 + 1.71 CFBundlePackageType $(PRODUCT_BUNDLE_PACKAGE_TYPE) CFBundleExecutable diff --git a/iosHyperskillApp/iosHyperskillApp/Info.plist b/iosHyperskillApp/iosHyperskillApp/Info.plist index 827ca6db1..e4ca087a4 100644 --- a/iosHyperskillApp/iosHyperskillApp/Info.plist +++ b/iosHyperskillApp/iosHyperskillApp/Info.plist @@ -21,7 +21,7 @@ CFBundlePackageType $(PRODUCT_BUNDLE_PACKAGE_TYPE) CFBundleShortVersionString - 1.70 + 1.71 CFBundleURLTypes diff --git a/iosHyperskillApp/iosHyperskillAppTests/Info.plist b/iosHyperskillApp/iosHyperskillAppTests/Info.plist index 202cd0442..c08d31f5c 100644 --- a/iosHyperskillApp/iosHyperskillAppTests/Info.plist +++ b/iosHyperskillApp/iosHyperskillAppTests/Info.plist @@ -13,7 +13,7 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 1.70 + 1.71 CFBundleVersion 570 diff --git a/iosHyperskillApp/iosHyperskillAppUITests/Info.plist b/iosHyperskillApp/iosHyperskillAppUITests/Info.plist index 82b15ddbb..9572a75d3 100644 --- a/iosHyperskillApp/iosHyperskillAppUITests/Info.plist +++ b/iosHyperskillApp/iosHyperskillAppUITests/Info.plist @@ -13,7 +13,7 @@ CFBundlePackageType $(PRODUCT_BUNDLE_PACKAGE_TYPE) CFBundleShortVersionString - 1.70 + 1.71 CFBundleVersion 570 From 3241cd94045f860589ae73e8b23fd6cb42a1b386 Mon Sep 17 00:00:00 2001 From: github-actions Date: Tue, 3 Sep 2024 11:52:40 +0000 Subject: [PATCH 02/13] Bump build number --- gradle/app.versions.toml | 2 +- .../NotificationServiceExtension/Info.plist | 2 +- .../iosHyperskillApp.xcodeproj/project.pbxproj | 16 ++++++++-------- iosHyperskillApp/iosHyperskillApp/Info.plist | 2 +- .../iosHyperskillAppTests/Info.plist | 2 +- .../iosHyperskillAppUITests/Info.plist | 2 +- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/gradle/app.versions.toml b/gradle/app.versions.toml index 5cd6c9c8a..903fb5f62 100644 --- a/gradle/app.versions.toml +++ b/gradle/app.versions.toml @@ -3,4 +3,4 @@ minSdk = '24' targetSdk = '34' compileSdk = '34' versionName = '1.71' -versionCode = '541' \ No newline at end of file +versionCode = '542' \ No newline at end of file diff --git a/iosHyperskillApp/NotificationServiceExtension/Info.plist b/iosHyperskillApp/NotificationServiceExtension/Info.plist index fb3bc48cc..46ee28397 100644 --- a/iosHyperskillApp/NotificationServiceExtension/Info.plist +++ b/iosHyperskillApp/NotificationServiceExtension/Info.plist @@ -9,7 +9,7 @@ CFBundleIdentifier $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleVersion - 570 + 571 CFBundleShortVersionString 1.71 CFBundlePackageType diff --git a/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj b/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj index 79c449b63..5496231eb 100644 --- a/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj +++ b/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj @@ -5693,7 +5693,7 @@ buildSettings = { CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 570; + CURRENT_PROJECT_VERSION = 571; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = UJ4KC2QN7B; GENERATE_INFOPLIST_FILE = NO; @@ -5714,7 +5714,7 @@ buildSettings = { CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 570; + CURRENT_PROJECT_VERSION = 571; DEVELOPMENT_TEAM = UJ4KC2QN7B; GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = iosHyperskillAppUITests/Info.plist; @@ -5735,7 +5735,7 @@ BUNDLE_LOADER = "$(TEST_HOST)"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 570; + CURRENT_PROJECT_VERSION = 571; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = UJ4KC2QN7B; INFOPLIST_FILE = iosHyperskillAppTests/Info.plist; @@ -5756,7 +5756,7 @@ BUNDLE_LOADER = "$(TEST_HOST)"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 570; + CURRENT_PROJECT_VERSION = 571; DEVELOPMENT_TEAM = UJ4KC2QN7B; INFOPLIST_FILE = iosHyperskillAppTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.0; @@ -5777,7 +5777,7 @@ CODE_SIGN_ENTITLEMENTS = NotificationServiceExtension/NotificationServiceExtension.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 570; + CURRENT_PROJECT_VERSION = 571; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = UJ4KC2QN7B; INFOPLIST_FILE = NotificationServiceExtension/Info.plist; @@ -5806,7 +5806,7 @@ CODE_SIGN_ENTITLEMENTS = NotificationServiceExtension/NotificationServiceExtension.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 570; + CURRENT_PROJECT_VERSION = 571; DEVELOPMENT_TEAM = UJ4KC2QN7B; INFOPLIST_FILE = NotificationServiceExtension/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.0; @@ -5952,7 +5952,7 @@ CODE_SIGN_ENTITLEMENTS = iosHyperskillApp/iosHyperskillApp.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 570; + CURRENT_PROJECT_VERSION = 571; DEVELOPMENT_ASSET_PATHS = "\"iosHyperskillApp/Preview Content\""; DEVELOPMENT_TEAM = UJ4KC2QN7B; ENABLE_PREVIEWS = YES; @@ -5988,7 +5988,7 @@ CODE_SIGN_ENTITLEMENTS = iosHyperskillApp/iosHyperskillApp.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 570; + CURRENT_PROJECT_VERSION = 571; DEVELOPMENT_ASSET_PATHS = "\"iosHyperskillApp/Preview Content\""; DEVELOPMENT_TEAM = UJ4KC2QN7B; ENABLE_PREVIEWS = YES; diff --git a/iosHyperskillApp/iosHyperskillApp/Info.plist b/iosHyperskillApp/iosHyperskillApp/Info.plist index e4ca087a4..3907f5212 100644 --- a/iosHyperskillApp/iosHyperskillApp/Info.plist +++ b/iosHyperskillApp/iosHyperskillApp/Info.plist @@ -34,7 +34,7 @@ CFBundleVersion - 570 + 571 FirebaseAppDelegateProxyEnabled FirebaseMessagingAutoInitEnabled diff --git a/iosHyperskillApp/iosHyperskillAppTests/Info.plist b/iosHyperskillApp/iosHyperskillAppTests/Info.plist index c08d31f5c..744fcb355 100644 --- a/iosHyperskillApp/iosHyperskillAppTests/Info.plist +++ b/iosHyperskillApp/iosHyperskillAppTests/Info.plist @@ -15,6 +15,6 @@ CFBundleShortVersionString 1.71 CFBundleVersion - 570 + 571 diff --git a/iosHyperskillApp/iosHyperskillAppUITests/Info.plist b/iosHyperskillApp/iosHyperskillAppUITests/Info.plist index 9572a75d3..820a15170 100644 --- a/iosHyperskillApp/iosHyperskillAppUITests/Info.plist +++ b/iosHyperskillApp/iosHyperskillAppUITests/Info.plist @@ -15,6 +15,6 @@ CFBundleShortVersionString 1.71 CFBundleVersion - 570 + 571 From 294c301c716f8a778031d973319e5ea974b58a25 Mon Sep 17 00:00:00 2001 From: Ruslan Davletshin Date: Thu, 5 Sep 2024 14:22:28 +0200 Subject: [PATCH 03/13] update screenshots --- README.md | 4 +--- resources/screenshots/01.webp | Bin 108294 -> 23530 bytes resources/screenshots/02.webp | Bin 125618 -> 19198 bytes resources/screenshots/03.webp | Bin 51996 -> 16428 bytes 4 files changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index 62cd797a9..8474439d2 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,7 @@ Master coding on-the-go with [Hyperskill](https://hyperskill.org/)! Immerse yourself in curated lessons, keep your streak, and sharpen your knowledge with 3000+ hands-on topics. Hyperskill is the ultimate app to learn programming languages and technologies, offering over 50 courses and 300+ projects that cater to all levels of expertise. -![Choose your course](resources/screenshots/01.webp) -![Practice in a best way](resources/screenshots/02.webp) -![Learn practice repeat](resources/screenshots/03.webp) +Learn to code anywhere, anytimeMaster real-world skillsFollow your study plan Features: * **Curated Learning Experience:** Dive into lessons that are structured to guide you from beginner to expert. diff --git a/resources/screenshots/01.webp b/resources/screenshots/01.webp index f6b2e9523645b8a6c72fc01a780a55316f22c885..af99a534005447d86db32d20e4654db4f76c5c8a 100644 GIT binary patch delta 23243 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 WEJAqw|5KHU5Xe)PiV-*vK>q^{9TwgI literal 108294 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 V`S-j*!QT@L20~*>f#&f~^FIRNz^?!R literal 125618 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
X=bW!dk>vg(poQ<$H9QC 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 AZvX%Q diff --git a/resources/screenshots/03.webp b/resources/screenshots/03.webp index 8b9abc2fb8a190d5b5e8b5423e819dd7330466fd..b5d97d2e1944a6f7e811e5ea0e8449b9aa9a641a 100644 GIT binary patch delta 16077 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

E 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 Date: Thu, 5 Sep 2024 12:23:09 +0000 Subject: [PATCH 04/13] Bump build number --- gradle/app.versions.toml | 2 +- .../NotificationServiceExtension/Info.plist | 2 +- .../iosHyperskillApp.xcodeproj/project.pbxproj | 16 ++++++++-------- iosHyperskillApp/iosHyperskillApp/Info.plist | 2 +- .../iosHyperskillAppTests/Info.plist | 2 +- .../iosHyperskillAppUITests/Info.plist | 2 +- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/gradle/app.versions.toml b/gradle/app.versions.toml index 903fb5f62..4b3d4e55f 100644 --- a/gradle/app.versions.toml +++ b/gradle/app.versions.toml @@ -3,4 +3,4 @@ minSdk = '24' targetSdk = '34' compileSdk = '34' versionName = '1.71' -versionCode = '542' \ No newline at end of file +versionCode = '543' \ No newline at end of file diff --git a/iosHyperskillApp/NotificationServiceExtension/Info.plist b/iosHyperskillApp/NotificationServiceExtension/Info.plist index 46ee28397..015d5a17d 100644 --- a/iosHyperskillApp/NotificationServiceExtension/Info.plist +++ b/iosHyperskillApp/NotificationServiceExtension/Info.plist @@ -9,7 +9,7 @@ CFBundleIdentifier $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleVersion - 571 + 572 CFBundleShortVersionString 1.71 CFBundlePackageType diff --git a/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj b/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj index 5496231eb..7a95208d1 100644 --- a/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj +++ b/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj @@ -5693,7 +5693,7 @@ buildSettings = { CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 571; + CURRENT_PROJECT_VERSION = 572; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = UJ4KC2QN7B; GENERATE_INFOPLIST_FILE = NO; @@ -5714,7 +5714,7 @@ buildSettings = { CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 571; + CURRENT_PROJECT_VERSION = 572; DEVELOPMENT_TEAM = UJ4KC2QN7B; GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = iosHyperskillAppUITests/Info.plist; @@ -5735,7 +5735,7 @@ BUNDLE_LOADER = "$(TEST_HOST)"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 571; + CURRENT_PROJECT_VERSION = 572; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = UJ4KC2QN7B; INFOPLIST_FILE = iosHyperskillAppTests/Info.plist; @@ -5756,7 +5756,7 @@ BUNDLE_LOADER = "$(TEST_HOST)"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 571; + CURRENT_PROJECT_VERSION = 572; DEVELOPMENT_TEAM = UJ4KC2QN7B; INFOPLIST_FILE = iosHyperskillAppTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.0; @@ -5777,7 +5777,7 @@ CODE_SIGN_ENTITLEMENTS = NotificationServiceExtension/NotificationServiceExtension.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 571; + CURRENT_PROJECT_VERSION = 572; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = UJ4KC2QN7B; INFOPLIST_FILE = NotificationServiceExtension/Info.plist; @@ -5806,7 +5806,7 @@ CODE_SIGN_ENTITLEMENTS = NotificationServiceExtension/NotificationServiceExtension.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 571; + CURRENT_PROJECT_VERSION = 572; DEVELOPMENT_TEAM = UJ4KC2QN7B; INFOPLIST_FILE = NotificationServiceExtension/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.0; @@ -5952,7 +5952,7 @@ CODE_SIGN_ENTITLEMENTS = iosHyperskillApp/iosHyperskillApp.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 571; + CURRENT_PROJECT_VERSION = 572; DEVELOPMENT_ASSET_PATHS = "\"iosHyperskillApp/Preview Content\""; DEVELOPMENT_TEAM = UJ4KC2QN7B; ENABLE_PREVIEWS = YES; @@ -5988,7 +5988,7 @@ CODE_SIGN_ENTITLEMENTS = iosHyperskillApp/iosHyperskillApp.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 571; + CURRENT_PROJECT_VERSION = 572; DEVELOPMENT_ASSET_PATHS = "\"iosHyperskillApp/Preview Content\""; DEVELOPMENT_TEAM = UJ4KC2QN7B; ENABLE_PREVIEWS = YES; diff --git a/iosHyperskillApp/iosHyperskillApp/Info.plist b/iosHyperskillApp/iosHyperskillApp/Info.plist index 3907f5212..f0c10575f 100644 --- a/iosHyperskillApp/iosHyperskillApp/Info.plist +++ b/iosHyperskillApp/iosHyperskillApp/Info.plist @@ -34,7 +34,7 @@ CFBundleVersion - 571 + 572 FirebaseAppDelegateProxyEnabled FirebaseMessagingAutoInitEnabled diff --git a/iosHyperskillApp/iosHyperskillAppTests/Info.plist b/iosHyperskillApp/iosHyperskillAppTests/Info.plist index 744fcb355..2479359cc 100644 --- a/iosHyperskillApp/iosHyperskillAppTests/Info.plist +++ b/iosHyperskillApp/iosHyperskillAppTests/Info.plist @@ -15,6 +15,6 @@ CFBundleShortVersionString 1.71 CFBundleVersion - 571 + 572 diff --git a/iosHyperskillApp/iosHyperskillAppUITests/Info.plist b/iosHyperskillApp/iosHyperskillAppUITests/Info.plist index 820a15170..0b2cdc419 100644 --- a/iosHyperskillApp/iosHyperskillAppUITests/Info.plist +++ b/iosHyperskillApp/iosHyperskillAppUITests/Info.plist @@ -15,6 +15,6 @@ CFBundleShortVersionString 1.71 CFBundleVersion - 571 + 572 From c246ab8529650b0c2b0d509fb3aeb573d5b01177 Mon Sep 17 00:00:00 2001 From: Aleksandr Zhukov Date: Tue, 10 Sep 2024 06:51:15 +0200 Subject: [PATCH 05/13] Shared, Android: Subscription annual plan (#1177) ^ALTAPPS-1344 --- .../app/android/paywall/ui/PaywallContent.kt | 60 ++-- .../app/android/paywall/ui/PaywallDefaults.kt | 6 +- .../paywall/ui/PaywallPreviewDefaults.kt | 21 +- .../app/android/paywall/ui/PaywallScreen.kt | 12 +- .../android/paywall/ui/SubscriptionDetails.kt | 10 +- .../android/paywall/ui/SubscriptionProduct.kt | 257 ++++++++++++++++++ .../main/res/drawable-hdpi/img_paywall.webp | Bin 80048 -> 15158 bytes .../main/res/drawable-mdpi/img_paywall.webp | Bin 39372 -> 8170 bytes .../main/res/drawable-xhdpi/img_paywall.webp | Bin 133350 -> 24682 bytes .../main/res/drawable-xxhdpi/img_paywall.webp | Bin 277248 -> 48332 bytes .../res/drawable-xxxhdpi/img_paywall.webp | Bin 459888 -> 79718 bytes .../layout/view_profile_settings_content.xml | 17 +- config/detekt/baseline.xml | 1 + iosHyperskillApp/Podfile.lock | 5 +- .../Sources/Systems/PurchaseManager.swift | 141 ++++------ shared/build.gradle.kts | 11 + shared/shared.podspec | 2 +- .../paywall/presentation/PaywallViewModel.kt | 6 + .../domain/AndroidPurchaseManager.kt | 73 +++-- .../domain/model/HyperskillStoreProduct.kt | 7 + .../model/PlatformProductIdentifiers.kt | 2 +- .../hyperskill/HyperskillAnalyticTarget.kt | 1 + .../domain/analytic/PaywallAnalyticParams.kt | 1 + ...llClickedProductHyperskillAnalyticEvent.kt | 42 +++ .../paywall/injection/PaywallComponentImpl.kt | 1 - .../injection/PaywallFeatureBuilder.kt | 4 +- .../presentation/PaywallActionDispatcher.kt | 40 +-- .../paywall/presentation/PaywallFeature.kt | 30 +- .../paywall/presentation/PaywallReducer.kt | 53 +++- .../paywall/view/PaywallViewStateMapper.kt | 85 +++--- .../ProfileSettingsActionDispatcher.kt | 6 +- .../presentation/ProfileSettingsFeature.kt | 2 +- .../presentation/ProfileSettingsReducer.kt | 2 +- .../view/ProfileSettingsViewStateMapper.kt | 4 +- .../domain/interactor/PurchaseInteractor.kt | 22 +- .../domain/model/HyperskillStoreProduct.kt | 3 + .../model/PlatformProductIdentifiers.kt | 2 +- .../purchases/domain/model/PurchaseManager.kt | 7 +- .../domain/model/SubscriptionPeriod.kt | 6 + .../domain/model/SubscriptionProduct.kt | 9 + .../moko-resources/base/strings.xml | 10 +- .../org/hyperskill/paywall/PaywallTest.kt | 4 +- .../domain/manager/IosPurchaseManager.kt | 5 +- .../domain/manager/IosPurchaseManagerImpl.kt | 60 +++- .../domain/model/HyperskillStoreProduct.kt | 5 + .../model/PlatformProductIdentifiers.kt | 2 +- 46 files changed, 748 insertions(+), 289 deletions(-) create mode 100644 androidHyperskillApp/src/main/java/org/hyperskill/app/android/paywall/ui/SubscriptionProduct.kt create mode 100644 shared/src/androidMain/kotlin/org/hyperskill/app/purchases/domain/model/HyperskillStoreProduct.kt create mode 100644 shared/src/commonMain/kotlin/org/hyperskill/app/paywall/domain/analytic/PaywallClickedProductHyperskillAnalyticEvent.kt create mode 100644 shared/src/commonMain/kotlin/org/hyperskill/app/purchases/domain/model/HyperskillStoreProduct.kt create mode 100644 shared/src/commonMain/kotlin/org/hyperskill/app/purchases/domain/model/SubscriptionPeriod.kt create mode 100644 shared/src/commonMain/kotlin/org/hyperskill/app/purchases/domain/model/SubscriptionProduct.kt create mode 100644 shared/src/iosMain/kotlin/org/hyperskill/app/purchases/domain/model/HyperskillStoreProduct.kt diff --git a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/paywall/ui/PaywallContent.kt b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/paywall/ui/PaywallContent.kt index a72527b76..891e9718a 100644 --- a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/paywall/ui/PaywallContent.kt +++ b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/paywall/ui/PaywallContent.kt @@ -17,6 +17,10 @@ import androidx.compose.foundation.layout.windowInsetsPadding import androidx.compose.material.MaterialTheme import androidx.compose.material.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.key +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.colorResource @@ -31,11 +35,13 @@ import org.hyperskill.app.R import org.hyperskill.app.android.core.extensions.compose.plus import org.hyperskill.app.android.core.view.ui.widget.compose.HyperskillButton import org.hyperskill.app.android.core.view.ui.widget.compose.HyperskillTheme +import org.hyperskill.app.paywall.presentation.PaywallFeature @Composable fun PaywallContent( buyButtonText: String, - priceText: String?, + products: List, + onProductClick: (String) -> Unit, onTermsOfServiceClick: () -> Unit, onBuySubscriptionClick: () -> Unit, modifier: Modifier = Modifier, @@ -49,7 +55,9 @@ fun PaywallContent( .windowInsetsPadding(WindowInsets.safeDrawing) ) { Column( - modifier = Modifier.weight(1f) + modifier = Modifier + .weight(1f) + .fillMaxWidth() ) { Image( painter = painterResource(id = org.hyperskill.app.android.R.drawable.img_paywall), @@ -64,10 +72,12 @@ fun PaywallContent( ) Spacer(modifier = Modifier.height(24.dp)) SubscriptionDetails() - Spacer(modifier = Modifier.height(32.dp)) - if (priceText != null) { - SubscriptionPrice(priceText) - } + Spacer(modifier = Modifier.height(24.dp)) + SubscriptionProducts( + products = products, + onProdutsClick = onProductClick + ) + Spacer(modifier = Modifier.height(24.dp)) } Column { HyperskillButton( @@ -87,23 +97,27 @@ fun PaywallContent( } @Composable -private fun SubscriptionPrice( - priceText: String, +private fun SubscriptionProducts( + products: List, + onProdutsClick: (String) -> Unit, modifier: Modifier = Modifier ) { Column( - modifier = modifier, - verticalArrangement = Arrangement.spacedBy(8.dp) + verticalArrangement = Arrangement.spacedBy(10.dp), + modifier = modifier ) { - Text( - text = stringResource(id = R.string.paywall_android_subscription_duration), - style = MaterialTheme.typography.subtitle1, - fontWeight = FontWeight.Medium - ) - Text( - text = priceText, - style = MaterialTheme.typography.body2 - ) + products.forEach { option -> + key(option.productId) { + SubscriptionProduct( + product = option, + onClick = remember { + { + onProdutsClick(option.productId) + } + } + ) + } + } } } @@ -124,9 +138,15 @@ private fun TermsOfService( @Composable fun PaywallContentPreview() { HyperskillTheme { + val options by remember { + mutableStateOf( + PaywallPreviewDefaults.subscriptionProducts + ) + } PaywallContent( buyButtonText = PaywallPreviewDefaults.BUY_BUTTON_TEXT, - priceText = PaywallPreviewDefaults.PRICE_TEXT, + products = options, + onProductClick = { }, onTermsOfServiceClick = {}, onBuySubscriptionClick = {} ) diff --git a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/paywall/ui/PaywallDefaults.kt b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/paywall/ui/PaywallDefaults.kt index 22bd8fbdd..695ee5de8 100644 --- a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/paywall/ui/PaywallDefaults.kt +++ b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/paywall/ui/PaywallDefaults.kt @@ -9,10 +9,8 @@ import org.hyperskill.app.R object PaywallDefaults { val ContentPadding = PaddingValues( - start = 24.dp, - end = 20.dp, - top = 24.dp, - bottom = 32.dp + horizontal = 20.dp, + vertical = 24.dp ) val BackgroundColor: Color diff --git a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/paywall/ui/PaywallPreviewDefaults.kt b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/paywall/ui/PaywallPreviewDefaults.kt index cde159a3f..1943c56fd 100644 --- a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/paywall/ui/PaywallPreviewDefaults.kt +++ b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/paywall/ui/PaywallPreviewDefaults.kt @@ -1,6 +1,23 @@ package org.hyperskill.app.android.paywall.ui +import org.hyperskill.app.paywall.presentation.PaywallFeature + object PaywallPreviewDefaults { - const val BUY_BUTTON_TEXT = "Subscribe" - const val PRICE_TEXT = "$11.99 / month" + const val BUY_BUTTON_TEXT = "Start now" + val subscriptionProducts = listOf( + PaywallFeature.ViewStateContent.SubscriptionProduct( + productId = "1", + title = "Annual 100$", + subtitle = "$8.33 / month", + isBestValue = true, + isSelected = true + ), + PaywallFeature.ViewStateContent.SubscriptionProduct( + productId = "2", + title = "Monthly", + subtitle = "$12 / month", + isBestValue = false, + isSelected = false + ) + ) } \ No newline at end of file diff --git a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/paywall/ui/PaywallScreen.kt b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/paywall/ui/PaywallScreen.kt index 7d768e90d..6fb6639f5 100644 --- a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/paywall/ui/PaywallScreen.kt +++ b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/paywall/ui/PaywallScreen.kt @@ -58,6 +58,7 @@ fun PaywallScreen( PaywallScreen( viewState = state, onBackClick = onBackClick, + onProductClick = viewModel::onOptionClick, onBuySubscriptionClick = remember(activity) { { viewModel.onBuySubscriptionClick(activity) @@ -73,6 +74,7 @@ fun PaywallScreen( fun PaywallScreen( viewState: ViewState, onBackClick: () -> Unit, + onProductClick: (String) -> Unit, onBuySubscriptionClick: () -> Unit, onCloseClick: () -> Unit, onRetryLoadingClick: () -> Unit, @@ -106,7 +108,8 @@ fun PaywallScreen( is ViewStateContent.Content -> PaywallContent( buyButtonText = contentState.buyButtonText, - priceText = contentState.priceText, + products = contentState.subscriptionProducts, + onProductClick = onProductClick, onBuySubscriptionClick = onBuySubscriptionClick, onTermsOfServiceClick = onTermsOfServiceClick, padding = padding @@ -192,16 +195,14 @@ private class PaywallPreviewProvider : PreviewParameterProvider { isToolbarVisible = true, contentState = ViewStateContent.Content( buyButtonText = PaywallPreviewDefaults.BUY_BUTTON_TEXT, - priceText = "$11.99 / month", - trialText = null + subscriptionProducts = PaywallPreviewDefaults.subscriptionProducts ) ), ViewState( isToolbarVisible = false, contentState = ViewStateContent.Content( buyButtonText = PaywallPreviewDefaults.BUY_BUTTON_TEXT, - priceText = PaywallPreviewDefaults.PRICE_TEXT, - trialText = null + subscriptionProducts = PaywallPreviewDefaults.subscriptionProducts ) ), ViewState( @@ -237,6 +238,7 @@ fun PaywallScreenPreview( PaywallScreen( viewState = viewState, onBackClick = {}, + onProductClick = {}, onBuySubscriptionClick = {}, onCloseClick = {}, onRetryLoadingClick = {}, diff --git a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/paywall/ui/SubscriptionDetails.kt b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/paywall/ui/SubscriptionDetails.kt index ff534f8a8..2c68d3eca 100644 --- a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/paywall/ui/SubscriptionDetails.kt +++ b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/paywall/ui/SubscriptionDetails.kt @@ -27,15 +27,15 @@ fun SubscriptionDetails( modifier = modifier, verticalArrangement = Arrangement.spacedBy(6.dp) ) { - SubscriptionOption(text = stringResource(id = SharedR.string.mobile_only_subscription_feature_1)) - SubscriptionOption(text = stringResource(id = SharedR.string.mobile_only_subscription_feature_2)) - SubscriptionOption(text = stringResource(id = SharedR.string.mobile_only_subscription_feature_3)) - SubscriptionOption(text = stringResource(id = SharedR.string.mobile_only_subscription_feature_4)) + SubscriptionDetail(text = stringResource(id = SharedR.string.mobile_only_subscription_feature_1)) + SubscriptionDetail(text = stringResource(id = SharedR.string.mobile_only_subscription_feature_2)) + SubscriptionDetail(text = stringResource(id = SharedR.string.mobile_only_subscription_feature_3)) + SubscriptionDetail(text = stringResource(id = SharedR.string.mobile_only_subscription_feature_4)) } } @Composable -fun SubscriptionOption( +fun SubscriptionDetail( text: String, modifier: Modifier = Modifier ) { diff --git a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/paywall/ui/SubscriptionProduct.kt b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/paywall/ui/SubscriptionProduct.kt new file mode 100644 index 000000000..cd93a450a --- /dev/null +++ b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/paywall/ui/SubscriptionProduct.kt @@ -0,0 +1,257 @@ +package org.hyperskill.app.android.paywall.ui + +import androidx.compose.animation.animateColorAsState +import androidx.compose.animation.core.animateDpAsState +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.MaterialTheme +import androidx.compose.material.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.rememberUpdatedState +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.layout.Layout +import androidx.compose.ui.layout.layoutId +import androidx.compose.ui.platform.LocalView +import androidx.compose.ui.res.colorResource +import androidx.compose.ui.res.dimensionResource +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.tooling.preview.PreviewParameter +import androidx.compose.ui.tooling.preview.PreviewParameterProvider +import androidx.compose.ui.unit.Dp +import androidx.compose.ui.unit.dp +import androidx.core.view.HapticFeedbackConstantsCompat +import org.hyperskill.app.android.R +import org.hyperskill.app.android.core.view.ui.widget.compose.HyperskillTheme +import org.hyperskill.app.paywall.presentation.PaywallFeature +import org.hyperskill.app.R as SharedR + +@Composable +fun SubscriptionProduct( + product: PaywallFeature.ViewStateContent.SubscriptionProduct, + onClick: () -> Unit, + modifier: Modifier = Modifier +) { + val currentOnClick by rememberUpdatedState(newValue = onClick) + if (product.isBestValue) { + BestValueSubscriptionProduct( + title = product.title, + subtitle = product.subtitle, + isSelected = product.isSelected, + modifier = modifier, + onClick = currentOnClick + ) + } else { + SubscriptionProduct( + title = product.title, + subtitle = product.subtitle, + isSelected = product.isSelected, + modifier = modifier, + onClick = currentOnClick + ) + } +} + +@Composable +fun SubscriptionProduct( + title: String, + subtitle: String, + isSelected: Boolean, + modifier: Modifier = Modifier, + onClick: () -> Unit +) { + val borderColor by animateColorAsState( + targetValue = colorResource( + id = if (isSelected) { + SharedR.color.color_overlay_blue + } else SharedR.color.color_on_surface_alpha_12 + ), + label = "Border color" + ) + val borderWidth by animateDpAsState( + targetValue = if (isSelected) 2.dp else 1.dp, + label = "Border width" + ) + val view = LocalView.current + val verticalPadding by animateDpAsState( + targetValue = if (isSelected) 34.dp else 18.dp, + label = "Vertical padding", + finishedListener = { + view.performHapticFeedback(HapticFeedbackConstantsCompat.TOGGLE_ON) + } + ) + val textColor by animateColorAsState( + targetValue = colorResource( + if (isSelected) { + SharedR.color.color_on_surface + } else { + SharedR.color.color_on_surface_alpha_60 + } + ), + label = "Text color" + ) + SubscriptionProduct( + title = title, + subtitle = subtitle, + borderColor = borderColor, + borderWidth = borderWidth, + verticalPadding = verticalPadding, + textColor = textColor, + modifier = modifier, + onClick = onClick + ) +} + +@Composable +fun SubscriptionProduct( + title: String, + subtitle: String, + borderColor: Color, + borderWidth: Dp, + verticalPadding: Dp, + textColor: Color, + modifier: Modifier = Modifier, + onClick: () -> Unit +) { + Box( + modifier = modifier + .clip(RoundedCornerShape(dimensionResource(id = R.dimen.corner_radius))) + .border( + width = borderWidth, + color = borderColor, + shape = RoundedCornerShape(dimensionResource(id = R.dimen.corner_radius)) + ) + .clickable(onClick = onClick) + ) { + Row( + modifier = Modifier + .fillMaxWidth() + .padding(vertical = verticalPadding, horizontal = 16.dp), + horizontalArrangement = Arrangement.SpaceBetween + ) { + Text( + text = title, + style = MaterialTheme.typography.subtitle1, + fontWeight = FontWeight.Bold, + color = textColor + ) + Spacer(modifier = Modifier.width(10.dp)) + Text( + text = subtitle, + color = textColor + ) + } + } +} + +private const val BestValueLayoutId = "Best value tag" + +@Suppress("MagicNumber") +@Composable +fun BestValueSubscriptionProduct( + title: String, + subtitle: String, + isSelected: Boolean, + modifier: Modifier = Modifier, + onClick: () -> Unit +) { + Layout( + modifier = modifier, + content = { + SubscriptionProduct( + title = title, + subtitle = subtitle, + isSelected = isSelected, + onClick = onClick + ) + Text( + text = stringResource(id = SharedR.string.paywall_best_value_label), + color = colorResource(id = SharedR.color.color_on_error), + modifier = Modifier + .layoutId(BestValueLayoutId) + .clip(RoundedCornerShape(16.dp)) + .background(colorResource(id = SharedR.color.color_overlay_blue)) + .padding(horizontal = 10.dp, vertical = 5.dp) + ) + } + ) { measurables, constraints -> + val tagMeasurable = measurables.first { + it.layoutId == BestValueLayoutId + } + val optionMeasurable = (measurables - tagMeasurable).first() + + val tagPlaceable = tagMeasurable.measure(constraints) + val optionPlaceable = optionMeasurable.measure(constraints) + + val optionTopPadding = tagPlaceable.height / 2 + val optionEndPadding = optionTopPadding / 2 + + layout( + width = optionPlaceable.width, + height = optionPlaceable.height + optionTopPadding + ) { + optionPlaceable.place(x = 0, y = optionTopPadding) + tagPlaceable.place( + x = optionPlaceable.width - tagPlaceable.width + optionEndPadding, + y = 0 + ) + } + } +} + +private class SubscriptionProductPreviewProvider : + PreviewParameterProvider { + override val values: Sequence + get() = sequenceOf( + PaywallFeature.ViewStateContent.SubscriptionProduct( + productId = "1", + title = "Annual 100$", + subtitle = "$8.33 / month", + isBestValue = true, + isSelected = true + ), + PaywallFeature.ViewStateContent.SubscriptionProduct( + productId = "2", + title = "Monthly", + subtitle = "$12 / month", + isBestValue = false, + isSelected = false + ) + ) +} + +@Preview(showBackground = true) +@Composable +private fun SubscriptionProductPreview( + @PreviewParameter(provider = SubscriptionProductPreviewProvider::class) + option: PaywallFeature.ViewStateContent.SubscriptionProduct +) { + HyperskillTheme { + var mutableOption by remember { + mutableStateOf(option) + } + SubscriptionProduct( + product = mutableOption, + onClick = { + mutableOption = mutableOption.copy(isSelected = !mutableOption.isSelected) + }, + modifier = Modifier.padding(horizontal = 10.dp) + ) + } +} \ No newline at end of file diff --git a/androidHyperskillApp/src/main/res/drawable-hdpi/img_paywall.webp b/androidHyperskillApp/src/main/res/drawable-hdpi/img_paywall.webp index 1482d2f89f2cb84bd85c2657260546915e64bf33..667e759d5dc30a3beaaf651f2b75f1d1b0a8a69e 100644 GIT binary patch literal 15158 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 literal 80048 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 zI*d%;CJBMUHnM?l?B|46iJ+hY=~GZOfLoXl000000000000000000000000000000 J00000002x1-PHg9 diff --git a/androidHyperskillApp/src/main/res/drawable-mdpi/img_paywall.webp b/androidHyperskillApp/src/main/res/drawable-mdpi/img_paywall.webp index 802ff4e40622f88abaa712b494a2af790e6142bd..9e08f0351532e89413f7c0a2e5b2a3912c7d0be7 100644 GIT binary patch literal 8170 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 Q0000000000000000E6sftN;K2 literal 39372 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

r;jwNgmJCHIeW9 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℘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≦m}Ep@W7@Yx4Zx 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 z zA}=UF1Maw2vcfuTM%c5D1X8N1c1@W%G~QI+-(`As?#2nHcTjM`9W!VJZ%~^GW*Qg1~mY`BE|lTQ`|;e zzddq=1Qkc?_q!(kO4hm`3){ol$;|dS3^<#kQQq5TTyxHdJFC8H6DGz-;25}vGx7H74>V60b#b&C-a$LZvZ zp`!P8+JaC}zDNV(cMX}mdj?n6Z6x+(4!Bk~{bX}2e+Q*k9&h0gz_oIc=^E^JAUR!% z5jM5w8o#T<+D<;^8OoRgqaRRbPxrsOT=VFXbDr}NeEe7g!t{>ornk!e{d)OGq@qEGKVR;Mnjr z^p>P1;Ks%bYbi6>&C_G;SB)!fo&v!J9V8?Pb&yoK+?6PM(+qBls#Jfb)MlG|(zjPZ z%`F%&!e$l701Vt6DEhF~*0>nrf!QfL$dz%8CIckiFW@zS_|a~U@HjP@HKzv5d--Ss z63k88+6|G0(yK2s1gY41`mNLzSku%)?(0-zko8e5xAoW#*QC5#10JYwq}`P!>2dGG z=nSU!5?rUT8Bfvdduc-+{9AubaTC;>GQxU_Eu!SCxnXxOWs#$OCrD|`CH475qglN? z_;k)U&f#~_IRj>D7j*&WB6BO-D!%(Ij6e5^ANgK|?H)n_5)N�P?2RET#?@mO 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 v1oe&hf24}DHv~-hp9D9DJ758MfB*mh0000000000000000000000000G#l8M literal 277248 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


h3O zyt(No2t|dkpu*vg?eM<$e;$3%Mh)y^kL)`2m@?Z=|HZ%N4N(GKPvtr!(gn|tM1Fx> zA_zMpC|5%2Z{*!Cjr8xcOn?YXY?Hvnms$l|T}d#E8ea`DL8vWa$?`6tSg$igAQLzG zBmlcn4Ad|~Qd*^oLLoENzn@f)myt0JwS^lDcP13jYbhE$ z3KR(hc0E^K7@3F;?xg0>6a;`PXnXKJK&iI=ro*J0n7ja-*LX%5<^JEQI%`f6JSvroj;(lb9sznfqeLIS1C%TI3phk<8D3B-&kVB) zoJYtFMoxiU(z~unY&Z{1zQF=J!WQuGX&_hh=V2H>5W-UXB68o#RefxBcx zF-9$zAXYJwC0lu|#+YVom(39fuw|9?yZ%1?{RLn9&mVv$fvCLi0ERoAF5IV`)K>zX z%%y_C8hfQrc#-9OhxK@FFf2$mBqhr!G-BAeVh&1}Bs(%X)R5*jbQJ0RhN`KPLrVwj z#IR%@pmaosB;b8KGReIF#J4}G#gj4xpXB4SUQJ%KFU05b+yCMpp5HxSYBHAfwa7yO z=U#ZZL13}5z7j?xO9Y3(0jX5V0p>XV_Fwm7t(|P|a}2me#0YfAjHF;7Ky`ZpNx&4; z&`2!;j*=lL8&b?e?{TSQf38H;ULcm0c_cEonC)V+1C{s8?qq^hR z29=9#An8aIx<3Ulsp6BMTLmpbg1=3BAf;Itv+D+eF*zOqp!9GM)Wb;;@Ou&mhoZ2( zYygAn_SZ->2&8J>271$=W35f?3Ec-`@ZtqeU)BsZxB&llIw=-M0*S)>KBK*KJXUKB z*A2u#%gq<~sH?G~ZWJ#6@B2G{>YJix{hLj4haAfRB2QBQvF11?D^p1;1R1#B%=m=^gO!`v&-3Uj2nQ;BSZQ zfR!)%ooOt)a+qJwoCe#E<0=i120uTD}P{`jk2J>2yKNJ}qC(ZK_1>(%A9gTsMkxJ1Gb zDk2i5vYk>n_XR5eLobY(gG0j z>PID?$?!?rgzRU|*uhJdRQ(*JAIXv)=wyIenj=^lhJYcxR0U)2>)XzrS5e0%IUOpo z5=03IR`|Bt~5I_SAPtvdZ z0sSGRF@gvuVIZ6$foHTK4AfdY%f3K(7X?TIor37!^Y?ieeXc2BXOY*Pyyf^}FA!7EbGkLYAf;_R)CK5h#cmwJNz!2|QXw+&A-FX*}9bv0FwT zL>d8eSHz$Oz(vTr6OH}HlM(5yIZLB1rh+k7nEIE-Z?A_?$9`jHbieLra1reHuRMw6 zZJ@ABOkfcM)f(<3K1Vun@5>O(30L~f6tNTeT@tzy*%2abN&tO6dXF%u+<^HDKL$Ck z`p#lE^%2OO?=lTc&Pa&(gv$tat-=z{fT+%Lo>oQzmKX?ZW5baQxDHa0)0NvD;}M}^ zIxL-v&Jcvi6eialE1P}0bFKWeUhUtmxwvlMRaVMfCc zN|QpA3rA8Vc|7UqzM1P8sE$fZnLw3!_WYMDFM^09e{?qKVShO|2`I&l;DarLQX6B; ziQ(h(Y~_`>vO7S5;`ebRtwG8lcOE`uODr1*SKfCSlen~)2hE&>NDIah^(chmqp zP3c1ld0((>Vg@ErY>h-61RPFY(BcH37l0=vZEF*Sg160vMzNBYaw4rc6Fg;LCmBEd zoame>*yN5>IlW28sSuR56M-d>ZHfdLHo1?8cAs%@WXuj{2~1Xo@O0;~>{PD2v_i=` zZW_MnT869a9v)CIg;sPj2aUiC%}rGSbvU1U59f=H)NB@O7vsx)ClD5nZgo#AS=Ym2 z%J79|T^Z(ptMf$6J(`4&ReY?2L0`RM3@vA44thV_g4LuDQinjh^T<;Xd0tcslIWEi ztZ3qgf-$_`Iwb@l=T(LPSrrhni3pkhPv%I&2x9q(5{O|yDG+yB=1>VJ94mllWe|kU zt-#$P5P>qJK@1or_at41(#UdL^YCq;2bNRZ$g12pyIcrr|Ii4!APiR|e(FEs%3(-+L=l9cHalt4tt?IU9Gx+T5==6NFv zP+r>|!b<@n)uyuOdEQhj+0K=A%mX}JM~H!H@i=6fVDWJURZzSEX^Ha_jYN~71sihl zUE1NKjUW;*)5Y>>MI~iPq`B#x+(+HNSczL1If2Q6EDj6Ol4h!yj?hLBNl62)hFMO5 z&b;GDGXWwooqpv}Vz!?Z7a(W#9K=pL!cSh@S6h0U;xU~> zo-ToWN_rf}7A;K2qv+Aoq~?}bNpij_g1BC3!3HRq)xgx0F+{}qJlTmXrueLdyRMRs zBJyvG*dPX9K$kJqNHR#(fa_#VdrutkcG)Tn40%OMXL3}W=p)Q?3Hi8%I8=%`2a04H zA!3fAj2mgO6c5EENdfs(@H}|~2nEjPlYR&x#hmA5>lpQ4{trZyE%`n8=AUt>m1wVCxFoO0+C)&stoNUL&pn?Umq6?%lEYhhk{@GI zMM(AlU%+jmvq?Ie)!V z3?E5lNr!2GiBgLAPeL5?XfB|rW#~8&(PA*pi*=0<_QMDZs<5HmYGS#z1)DF((E&l& zcr>BbRQ(4tP5VtuiB}X#cpn$=_Uab&mgtPF0jlrLI}4;iRBTYyK0?_zoW7rO zgXNS)7obs}BT+4q+VYu{0D!!}6$<2i=v6zRCm?9u%6!p~VIG&c1S!6Ym6&X>+KUNy04j zE8Y8)m^M8@@SMuCh|7{9#0tGL)S^Ey?Zx9_2kx!Vskej~d!-Xe>xJ3YA1>F6&zjN= zoALvY0$P&)^$a|6lQSZL5Xo>_#lqzxF=6oD7PyXT)^5TX51R>sB4Y^sye?V$?(^S% ztvWryt;giKR2J$80PK@47&$qfL~=gbxdW$e2N1uktzWPS2iq6U*~pd7<;0$hhUag;!?j*yyg2(^Ifb(t{& z$Se>LCasl9)Pfg)o#8p@J+ccyO-50u>f9@pK%ST{#)Kd129h6KA=DTSWk* zA2XS+qB5_oFPexz-*&VW)nWc5gvqW9hKeT*z!<12!$LEe(@S01Cky$PJOZ`M&ti;0 zS!&Fi9!hu|%4LV8z;to@q*M|bg9Oz9pdn5;QQiI)p@tT?NIi^Day|*6Hn}88vRs#7gVzYO1cFpVf!(e< zZ{Uovowpg)UQj!Mg+N6z@blmFjf{fza0j!V+?L~3(9-MTLLH!w_t8@BTbdD_ppZVA zIzBzNDGv2E6=Vj7(w;2&(5jQ39IyXq;6JnH!MOgD7)mlC=t2M&M8kkjYT}uuOfMb< zDqR2|!l7XThZ#Z1B&=huQ+l|QWanLYX9G6bl~W<|V!}%IP7p#t35Hr%f+*%ePKJ}m z5on^`?;R>pBpvAmGOtT$473-aDp++b*6p~<++{P1$*Q8_VxwcpIjL1~BBUuQ1PBp~ zK@5c?4Jz;Z>z+W*ANG{~0#!;vXmjURk>8{Y9TXLW(a3m_71Cy6N>Y*PG{g(mm$B2@ zGQAAO@{~Y*5Tf8Lb?>v(IiXqwFN0~!02B_wiX%WO!zx*UiJ862{+vgc12TAYaiR#L zw1a0*g;IWSscX@c*I-W&C>p}m2k0<9ZE=k+>gVuBd%9vN2r0ZK6^=m9U=<&2$di<3|nG*DynHjZJO&G0b6`2zK% zlh<7)t4@jH9rOS6^+Sj*&BjU(Is{4VT|qj$5-P(LoQ}5(;)Djv)m-57P%=J&95T~r zt{56JspFBoK*J?TGYAO&x<{9R&q|)=4*S9WS#;!T1R9#fiY-mgSh$9?QMs7Y=Vc-S zyg`7KV$ej0MGTM#vrb1^C-VWL5C|C=G-Y}>OeRkC0-D!@`A}m zSFnD(j}}P;)LF_*7gaz76IrB_&}ITdt*9@n|79=Pn7kcPJLIxy)Z3!2uSSCugEu>> zowo@%;Fp@Eh^fcfHt}5}(`X2J9Xvdmd?eY74`ZpQ6OI+RM<`h3<9QSmuzfcbpy`y= zj%76`4qi#cKuKI@*JH&6=TmOxK$K?Dp9QUsGBT5styJpWmqY;I*wm^vm~sG*pe$oG zOT^_2iF97=U|xEU6V#yYc>G|=7gaVx$ImYa`ax|2J_*2RT$5}7^7wrv zajFEX2sjR@VYs7n@#IP)&_oohj!!DnEIh_ZnL;nJc%O8*t_4V`r%^X*aT0Oc7qZSp z@4{+wuNdeMvBT7PlYs?|w7x-di`4_si*we!cpVJkK>&oBq%7vt`h_Og8a#4uHj?N( zm;`$H^FS45m_PskF*%0YR;-j9(rZ)U7Dh7s{a;?txN0z>^`4pyZqlh8q6|D;5ak%d z%#+ZtVSoJ(Qr2|=0LTWK>?d=TMqCFUDT_MCyBku`AYZnS&OUwza|6=U)p^$f9EUmf zl#Xz?5-fQiWnGayKMGvT2*Mj_;_!LQ0r_!O6z=3WL8~-zzTiN-u8(2p25!UK5%t>wM6&H0$$ZU7ydZGM^Pz0guJX2HNXDm!njoQQPy~m6U$Q zC6rnUM5(F8i3&_gWC^fpG3y@gwu`;!yi)BO{b18vnFhhhVSZjNk zfC+@2=KFaxGh5=bUCgP*tC(+u9dmz zJ?N0C5@c9gh}<9cj)}GI<)Vbo0s#=j8!DVOdzAeBVVhoLR;K&0p z_Ndv%K!8Zn`XnVt zPLYIF;$%EWLt+Ih#&PGM_r?e!uA=xjDQI5a`em&hWMC`Yl_vQC3dBz6LrXBIM`^Y4 zIsqI@Jcl+O1jaJXi5L3z`*m{^#GPk_BT>~k40GM|Ei5S?Q^a*!TvV2ZlKFf2YY6JD zG%D$P(<-d~K}~h4Zu%e-lk>iQBgfaH#uh2gAF4q?O3DaaB$3P%*Db0>-Z^9}Dh=0j zF#J{!-AI|#!r|O9>3tR}h|wXp#nH3hhT-1rwThd8$gArmC07XC`(zrY#;vvS7 zMuHNzAZiETV6Y99X%>`WM;eJThJ&ljj?C^VsN|v~^U=GA@8_BUjMsB{9AN!;k7P*0 ztmj-vIzRY8s3`HC%0(7_Q&SbPF`^JAIUB3%URG^}no5Xj=xMWc2k!fcl00 z7sZ{j}wmxGIk)W zLrL=IUkQ`Ca-enVOt5XOi3Il6&`UN{`y@oVDjW;8!)1SnH|zg{8W@p+2SRN6I-`u2 z`So-ESkM_f&CG5Wl2kHgn6X`Bc!H2ob}S?&I7c#xX#irDr^*e3O#Bemhg5=y6i7VP zCqZHF_O87Pb6_1Hn5gpS2=C=o|55NSG)z>Bqe!g-#*F7emEM9qq6md$Og5M4ju4y_ z9l0(l0f-VlR@i^}zaUT+7(D-CJsQtnlCOZ)A$hVA3G#c2?7fAMJMLmY>oT4JEzS+x zRFXaB7BrW$em9~V$Z|Y+JKpz zgg>$eQH{-J#udn7NlQ-C@e|m@1`J^i)wV_|`oO;CpeK1tdsL$Y@{ z6C2m#yDNQYvmeHzq+p`ryX1ni;iYsU5% zQ+$StNTCvDjGsU!!AP?@F=$v7rp856oGR6OALcSwc2m8fS-Xhsx>Z)qi-h^sL_LDU z)~ulg>ur}dqTQ8f*~r4@vlqLL!?F$_1A+b7Vo0P$82W$CweZ^J<@)z+Z*6I04nqQh%9vJhrS}Bb-gzahbni|r5mkW~%c{9h?g|L- zihDlZ%KqXwmz2Gp7F_RzPq?h5+~6}ZkOWT%(rYQv+0NY}B0c-pxYAU8!Jq!m;6s-8 zZ3sR|X)@Al0Ay5u$svG(k1PR4nW|fy!Hneot}&V@55o;>A<37je-#pW@dA$%5DHkj z*_psvSOf*P0CtWEo?`Qo0G}8&#wZ@PnWH74)jdjf1HFUec*$;TTG%{7fz%fu@&UL9mV;n@Iqz(Tn6QqGSdq<^V zBZ^NA-5m8kj!19}<#B$JlsMRMo|TLWKkFdNr_cs6zK3JHIssT`X;M1OC!K=Q;H8lz zR@W8T8|``32K@QUf#pD^0=_4$t2mVwtnplcbAE zSQAbWk}8)%y zv{jF}&lkj@Ul$4|n*kY2g#`<~6IzV0tbMV@#&zcp$3$zH9u-r5Qij=N2o@b>q7!8( z10d3R=R`ZU`b|ze8!UQi1GX{88u);RbnM!-%~e=LT7RNAgH;u(A`IyR-Kq-3!xmgT zIYccDXj1^x7Gx;0q8H8u3Wo6vsCIdXcqR7+K8fJD$4mn0=~V!3s(ECcrD8Fy&EKII zkKR+H@%n)Eyb@^X5y7tGQ5h!$kTm7P%Sp7Q%txkodp88@gme2(xWJ62GTZSdT6r5=Q5VA7U({6BGy%h6% zT4YEf>Ufd~suR7BKPHj|0G=7LDrSh(hQgKbq%Q2WA(o+tZo9h}4b^&>T%8bcjafvW zg3hPc6*IL+oB>PN($pUc8^=xgEP)zGOd3&BkggJm{-8(L?=Ad2sg4V>EIl8dtwF*X zIGPW-N{A%nTrTP4UE=pe?eb|#Qz@$Ch{gu6IMIH9ck;!8r$RH7NK23Nyp@HBVTu{n zNX(xL)jToQ(z@3re9wT~wZ$f6-GVZPhTIyF-r-H6kjSX?XvZ9gcjeH);2Ek_w2pj1 zh|X)7*Q4Z@brm)2lg^cylNg;ENvT)*B7hOAMGvHRaC>ThKsecA;kp&ldFPj_J}TM^ zgdMX-*oUH(J`+r~C@ou7L&SRNdnWp8vmgzrLZ!`TFJBoP)UI9z{0J9p^*M~-0z(Ak zAhJHg<>*0r7362vnGTFRzp*Y@yx?HvqoRwuFHkdp85{Z~znD3171_`vk>r?%-si$g zRKQQ?x10=c5KCO!^IoV`r38T~oG2)e`Z7`*|o*|ND+H*BzZQy1u3tBhzota#=*bOS zQH~HCo}f|mU_dpPbpRmzum?@D(0c_$G&2~d4Cznrn-D4yx^dMmfb*23;W6@JtJoNL z2b?4pbdJOEA>OlP-Chjo?__kC1mM%KSa;JC#q}*Wgdoh(0}dSX0_IwUuFuAd^t*I` zYA-%1ihTNfp7mjO1s*5u#56Q;@G?y+7lI_+lg2AC$oRvEhVfP3 zl(2e*^U||fjsgN!vlN_3D;3L4z;zQt`?Of9p~xUL6bP2%q5%gky$JL}Br)5Q(v{;v zwow5ujtoJ^F~CI-lR>X+?*S-?A{jt~2SmI`whHcU?8@wcE68N+L~BL;D{ab$1(`;wS1Gd&WR32GIa^1|ULUXUQrtndB226vfT}67l`s&83v+QUg-Xc!&xj;p+D@C-H>J z4eDzRxDHZ(SFjfvua5I-@h43sJUOKIq&gezNzqL<6LHKx9_UW-w1VM$1L^Y7IE&2W z0&$&?;EDjPuPLA)BL6je6vGhKb^+l9?rk>m=aBlv}0ueCLM( zz-D`ar6utvXq4;oE&k=$FcvQi(4_9Buz0S?$WoagsNu=}s9B@-q}|gH8w4gNh0_*^ zAVcCe5&PkDSV%ocH7SRn1>it~CArEp7v6aKTt9rAmo$0)VX=g(qGTKdaH;`Qq!}CM z%|-9IL9l>ape@J~2~QWY>!uQXQf z|G(#4zXMKEBZ>y2BQgx*o&H@QLbMh>p;tx+LPN)2CPtYisZk2_S{1%^spW8%K; z=;?o(4z>t3IhR$Wm(coEEE$?~bJ9C9Kv&0MY4Fiv$~WH(<}eHkj_Zd}Yr86~`YJ%` z^M!z6>#BTW{9)Psm{L-mVDAGug?nTOi4;$|^9vnNE$B~)2L&1MkzQihebCf2y&kti zgg8XTnk4W4l1)$NL{@n$LjA4Z8aT3L02s*3lgmRn!txlcf-NZhFTJ;^BJ}vSoVR zK%R~4rk~<9sCb2MBTCXW%0NX%y;Y~nNtBE%#GfScBubQ*;YFy803Oq<51}FLi$W>C zhZQ570QA@^fE$SpH1{2(F=;tYyr70~g^PFT7^2vh%-{(D0a3jeP}nw>=ss}|agw?l zL)RpWoa<IU+K}0K(9D91W}vgY%Q%ZLSit z%5<(T?%N;%F->;HJW9x5hqq;9xzaU5-12q>omxA*MvG! z`2y`MDJwaKh*>`aQiYD6|N5_=|Axx2RG({D+}%Z$o&i?alT4;k8y=>1IL%%l=!bj)h=hW&0+-CA7~*oSeDAr>yj5BFD^uA^l1w|8y=0y% zrWr+pZ?AEh65=egc?)1!{SX(SMQ-{-CJiA(6i;%)_qKLSdXP=Kj9SrImV}?<3^RZU zCC8-xq@|`5?&Ikk2%j&>7KE}8Y14Q6HtOVmMo?q8>CV$okPXwNasrs5&8)>p9p{(~ zBm$Skj(9x;5-^Sj1*(x4o`n$*q>jo;OcyNEe<4jWSV&m$WOzpeD^r3iA)VT@B3VUT zDbu;+?Lu@c1Qvasmomm;Fp6IOaJhEs{@qcrDL>_g%FkXmaZ_g*2*xh)Wq#9v4-pgr z=4(ZJAMZmu3dN9sEMTdi#zUw~;5l5;Kx9xNFiNT?FR+-JPRN-oQxQT8YhQ|95ssE9ZHPNm#Lx|Q$2R>#Ew zS#!)25JKj!T=GQ?m^c7Q(7?h5eFLZNEKyE&_t)>LxNeXvT*S9_vQ2@XB)p^#xW}K$ zMKWe~C=yoBHSzlPJ3`d=`8aBn0*E1mBXE{^Ai*&~0IU%JE9R&$%>YP1x4*bgm|@QX z5%Md5K9I^jH4Fns8po9gYku10I8>5s_PA0}1zag3>q_;${Si1h}Yb~G}ISFRF zmQEs&A?$UVxn1HI64Ut2?)!6IHF28Ehi%s(S7*rEI>rm)Ng5`@jU-}3prFN^DbQ44_j_WIt^aE* z9w}*bsX-{kIAVK91qD#2T7=2_j_QpQ9|RL@m{(&=Sx)`1(!{D4@;a_8G+J1j42n0Rw zCsv+0`*gn?7t4_cwGfmc&MP}`j1Eg+f_jhl{>pjsq_th6UdG8n7ih-I#*BzDsN?$y zOo7yXxduCt9A}_l4E?;oXYORmNDuSZ!mgr@^ih^~hUnVNZ=1CEA*&&(F`hKM0$tvV zZ@P7`aRiL(P9gG8jz5ZD=P`9g7GL4WR5)-}OTfoE2-ev>JR7mM3XQ3lpmA z01jmF7)kJG3|N-CWDJE^#aNlAp$R&1TgQ@&Vt;T~Lju#Yq*ru`AzS&UHmO26 z7a#B|0KRVTxa&M+8Rs>vv3>hMpnrN_b^}C~015cUO@$7xxD^o0v8Tq7H6q4YLMn;M zR}%Ef^nT%A9Cu?)tf(y(2mVGRa&C}_cnuXyJWqf@jiCU5mPi$fCfwT1uN0B79%cuN ziYK-8>_sAWg6N1O$9vyvBGgL^oc|T%z}z*cn&II|Gn_A9LAX%K20>kh#@(1QU*k4; z!on)FKPGFP?!)=PFtKIFyucBkbWF+~MtPjK zFo{+jWGqr*hbT!N0gge41sA|Rj+}t~4!_5IuMwUHb=VRTBvFl2l(4OyobbEsTnzpI zqgDJsrO@LflH@Zat0d}-drz@0?DApM=Os78B{V37Wb5#XYF(**LPPYk>J~y!pzAoJ z3{( z=i1i=I)|;IDLp@dX5b2@4U zL-FPJs4fW*10BXGsI|`|W63a}IJPgiQdz z8Q1blQDF($c+@lqV5@Ot`nqL#)|>Wd7xdyj>`BXxp;NPVp5gJK;kM16B&gd6jFEdm z))R!_jXus3X4Gs0_mR>|N}4kvvg>O~$5C?QAPaIEIYhJUJq?ci{uk@sX7FQ3p7F4_ zm5gb+R;zHGQ|Qt~U6cBd(`-SZydpFwRa$uuEiO8A7BWi8e#B6V zJaj*AhK(k_R%-E%RL(pICKehACWOA&vRXt5E5RtM#R*yziq5c zDbR&54G2R`4@5#6LKsUxcbIqLYE)de4V3(GA2HYFA>K$VMl;u$aRw0>d@uPRBhb2Y=w$d6!jzPA8*f6Bhi=yvOMIaShM1YkP z(easVMUnSt5iWahV^Sl6)DWQ#aEwts1sm zAI6{nZ?hMHQ`tKRmjVSqM%XB=&)Vj^0P?5r$sCo3@rWl400um%#9^RM9TNDV2p7h` zqBIfCGK@L3fJ2>WRn8`VIgOK~q8nDNK>C&R# zUeqCdqcV0tDKnffktQ6C7bIk&R%X?E-fsN?s*v+4%0=W#(0^2r(0iHKYg-k=?kF@l zq&A0QbAWWl90$@(fi^jRFZ)5MG1M6nA#@k{^HfK0u~-B1qz9cw7(|Pdq3{BrTFA9L zHdwR(ACC*wl!j1}mJR}0SK->n5zaIO)eZ@T6L6x$b(AemdMcHUqrP)Y>mbB|ei ze?_xk-5|NUruI}7Fik|4FeU`*=N|Si&;|hd>Hc{$%@>qFfnR=uN?2WV)d6mhh^RwQ zB2oqVi@y-mD7juc+_pY$vN!mf6bx}s^Zo2*6R{y)3^m9jc}}o6-M_v)bjYJ9JK#6# zQ}7i0_Z(zEc#>t-6pJxWMm$P+((kF5bzE`ct8V26)wf6h`J5q)#(A@qsMXK#f|(HU z)2c43){~JYDX+`>pd)u6#MzUw#4OWd1R45Qq{SAsZ^0=YG-G?=sNUcEE9GS}1?aEl z=OEDtoH>FpB=}T-M=OP`XKAoOrfV^YI%u*rm6FTwLE+PpI1*DA*Wm>n-r~2ZQ}15aTLwtE>M`IZ_cmC@bGgPYkxl=bu}YQ&Nt+g_(ifPA$n*rRJ|Dk z5-uoNQucDs41{j{#?mh zYV8B8wqx z0111fa7O1GzF5N2NXn@3ZOmpO8G0J)9+WTyz zAT){%2{p($w3H%;+wuh!p1J~5np`w#sNMUUk5@Y=KZ((jO77KZjk9qXJ3AzE{V4Q% z`IWTm7-s@_OUA_=zfM(_?h`q#Ljk`(d~ZPRjsE;ie??CP!5{!71o4@dVMYd?#DAPza{YWiLde8cQ%Uhthz%C!Of#)F5rjDBz}L zq)d)NJ}#4cffo))1Z|U;m<&*^ih?;Dv1wGcBo8KrVh1o+wkm_;uGx_SVB4bWyqab_ z!Jv#{$l*Q9lFz-YI8RjS;z=~B3t+w=qZCD8ivP=2C<7RpJt>Nigk@TZ+vy!Z?|lxb zdm*0mXf6zh5V5L|g=9|l>mBvD5%ny@5~c93@qrc@#?M~~IfKp90%S%pmAWqBSsqnM zG8&2~nMV3@JI)(boFtsK#|dFPN$&e4!NfF~U;zqJ1gxk_c8q+}U1J+IR{=Z3E}j_j z3AL!Xdb~N<0&(XBssMn}9JvYd2olHw*74O1DL+RE(n7HmIH_X;8T%^<95}9$(=dX2 zhS#v2BI-mkmoydt0+cGyyDey$_Fa!bX)6m1TakK04Nr(jRCKGo$ z;-ets6-EvS_jK=S+4BkY%>>h%GFvx=1PxTsJslpBC)@VN9}}7t+%ovOMMs z(m2vCn4W^BwQL@UeI6sm2*fYV3~ev4;Bo$*)Jc9{0A>Piu7@$;v}~FlhBNYx7Ber% z@?WxIn%a|g6(p&$b)eFjKtQC83D@G~1ECSLs)WzKl^0530}%xtAS}^mDL3CqPPUl~ zObRfF@`hGmCRuY4^|@1eGZgWxQ~0d37T8SOAMoF*0s^7}A2O~4D_}uZ@-Bm2sDpa~ zuX^|VW6JFBh83vI)U&>=Z6%7YfWnmsQ}q4;zaC9svXh)CK%!Py5&Gq{ zVZnLED}vWr29|~n03^h*Otf9D&ues3ywvjb-`J*&IOV?9hcF)WNSUq;Zz4ch)^I4f z(E#*ukFgdkhKER-%2!qZLK7s}LDjk5g`UFCU?!4m(Tq$!1F|d%;b$ghQ`$ z_Mw@?*md9ioX_0{#(nI*LAm6$14LhOX2c?~21sSHWW$buHKa&c`So|L+U7u{lp<_Q zT4*D|sueLpFrWc~*Ij-sE=W)bNC?SEtN<`E8X1eS*c}lfF^?FmvndNZg|Jugw=F87 zMn0blz+8y5{Uivy5S)RumlOdz*NSaQnA|6rHi7Go`oPjK5hYUrl6A~9j#{6YvH)^H zA=eFAHPl5S&f*M-<5p)Sh}G2d0+GRmR4KB$U~dVu>R#E+r|`B38oM0)P0(Fq`=qx?DB#5; z%8Fil#@Ix-?k`^|3TY;x8wgaR5sgfcm9zChXR%r{5BgJt6?cdvUEyUYLjR6u6bQh$ zTa5jIK&RVLKxM{Sxv7X|H0BpZ-bcN_*N}uj(R@!z@BrdT5uNw-79uOTmMbR3x=Tp( z@wBKSOzt0*7W!tFUYo?;H>sLei!?1~A47_1yKYVaNK@WgmV}WHIUc{%MaJQkIdjbS zzq&glz<}5wF+tAD#k0smNFjsG7MfI12BoVJ#)`nK{2(?X@4-EYtg{`_28t_1iY@e` zJU7U!IbEqr4S~bh)+K11UfV^a0YC_}q7}iwjeJA7E@n_ONboR&IYk}mii}(j7;_o- zv(}`jQ(?jTN~biH_G8jh`o{cMSNGL5$3o$i&UQ;AUw8CgZFkO1J0jz_LE#6yU&^wc zf3+D24iDN0o<}{`RQ0m+gxxbq5KYERoJNy!Kq$G`z4kt>BVUj+Iy2%)5^rKlvw+io zDJ8%~UkjBdf@Yp1HfqdrS;987N+6d}kV~FqU1*cxf}zwDv*l@kNt*?%+NAU|3Kp0o z=^!W@2n=Oe`LMud3%}7TGo;X%)eGTugM={4^t=~pb{URUq{)<+ae_r#AaDc036vZN zq!u#QxBU=e01E11(YR7d_K*88rJ6;JK%hnnQ=ljVn1DXWdv@)Z*{T&X0%~>ZxXo}S z#0yrEm28$&{Ny_F;^R8c`ta>9h=-U8{_q#4OWgYccFEK(X{O>!_BQGQ*71eZF~&uk z;a|ChRijMDFT;TQ3{z4})><~MgO`p$JaiDVg*YWh3bWsa6kbe$0ES>3`du!al;x8y zi$_F|<$qV8en~RJ*Yb`=2})xm4VjFBTbIJvx{?;k4eIj*13R^UEu8|HmT4LsPuAiY zy8;0UF-kfwtqOsp6WBz`ljxanK1DsTT9Tw zUSOa_Q2NtGe~{pu`4GSV(JZ-xez7eDHWiCq0nWVPx-I*3-@b2#=8l0 zqzFqPq#OcaNcgY1?y+h8iDA~@v8>hO=mxDV8GOwWNm6CkC1)7&f($BQ26VW{{fLJTY?hHP!h9MqXOU*o57>b zY_wt^B0zvsnvg0EYlb9DAe5l!-7-uOQVeDSt(SPQN5TnO+bl?0S-OYMT!Ui4$*gxu zX9WW_k;7<;-n_%&uS4C7orTnbFa|k}&TD;t_M({2&9i_2BiDg6x>xhW5v3;WebR-z5(w~nn;>`WM= zD2GZ>;J}pdDVBBERvQ>dFGEBblD>gofGz~YYEy*)xNO_unB*VG{3!>roT9gaY1yiv zMKJJ}^^`+c9x1l_{D<>L@1iwhDM;vJ444fdUN2U={xzw)+KFINMiD|_4NHV&d_SAS zzc~8oJRFjJ^aU#l76VM4474^&dp~Ue2oymw+6(9&EG(-?P5Iyc^tY!zdp2G0!G66; z-S$1vz)!)HFVVP2fm#eiLc;Zfd;^ z6QEU`2k0;StN-x#jY1k`;#^>rj&Xv=3Q*7WkU-&g;0S|cwyFLs(?(9rVcuql_h1z7 zc23C1nJgV*U9(Jw< z2B47t)tS(Rbq`l0@Wz=$0E{x>aGi}FB!)F(_gXt+r{MbCSUaHNaByn`Gu9p!aC(!& z(UUn(Pz#dKb@GGqQ2u*4- zIaoog95gAa)0mfnh^+Pj!V zN<;}%Z<#v-sJgh-T`W%79yz!#sxJOOzD z(QuAs7TfUtwLikeiX;#ems3O(ktNc3?5H(l3WT*Q-XnIN1U_y`Ff@8`9%`Bfa!Q_a z#>XvLLtzbfkDk4NJgSp$h5OqV8~k z0U%jy+3XXe2$<{uP)?kjwkI$Ur`;Xx3(DtUNFvGn1+oz&3s%)Yydol&l;UzKt zLpwY~_1(gIEckrR%667vM< zt`qvm)5@br+;Us2$bU^{!dULRD19s>adPk=F|Z6@PP>|lIyxuoL=V4LXk~0 zKrO~&HDso20Sj63u31`zIPSD@8_h{ zrL*yaZORC5;tLSo0eymZ!w4Zf$2UrFG?!ed7>^K`U{M>Ulz{ZJ1ULk=@O!}r0RZ$c z-=vDXaUWThudS6)_WECd5hJOFIUm&^pal}B9(qr#vmVL#ATf+O-l%$33 zgm3#(WJGZfUzD!dw}B{GE>fFJC@Vn}xPwgjYo({MsI#M-1M@pQLCyderlxYQCa$NL zw}vZ)h!pB7W9GukATw6Qq7^e|4VajnMT6TJngUmERrY~5+hj9oApk0c9EhC&yb-t)!Vek_QfFD)xuX;mL@p zm=m=U{5o1Bh^F9u^HXEC!7BZ5?qu*}0!IXg^8pn6<~+w!Qf~K(&-1?xCkVsypHM&0*ys%QvxX-8wtpQYh#(GA`ssQ>cNb~y4T!3B0u^=UDmrr z?-8_1n2C?%6Dp$^;LM=}0^Ym<=u1Ne6%HxU%4h`ln-gHaQ>Nq#lQ~R~tR+H(W)d@y zD>y!V?Ru3fJN4Nt$~v`iX|ZJSI4U+zXhml@dH- z`3JEyP$P)Ea$nw0-^u8XU4;BUoK80~B=ljn31AJ# z5R3%FqZSV%d9qatvs;1pGxm_-I)RTvF{guNC8e5W1UF2R;-$DO)`|g+Y>)Dq<3OFj z+){V43<#|EV%^tsEL%Z~GVt4--g;Wb{%5&-9G7A1Se&9w=_%LyvKAQa0D|B`Ogs?r zLyKV~5!cs1-}Y6@QaUX>NYC_tI6gd_{90P?Rfp(Pyia-DEkP5CFaSAm)mmW)RF)T? z4QHQ=AsXcvJ@Pz505?dlVOUz5Kk2Yren9(p#eFByp87q_{DWE*k}*yV6_U%#HWZf1 z2o@NU7XT40Nh!RGvaS8)*Wc@J#y|W~^#!BcOIV$tCEtiOP3}Hcc5_|#v5wK6C~6qu z45zvoE*v?JvGN*NKiX=ZNJ1PV5Nc>5h}-Z*D5F#oO zxZhWP(IeK6t#AgHyc+0?C4#9#XBOi}c&F@QO0@uuwqEjL5mMsm$CDi5XCO#h?2kT~#tUl+0z&mSW!O$GY(bil9>9V2bPX6TU^mhb zb+aNP&a0s4V|gv~t48F6Kt~6e6)_9%bez13-lCWWAqd@2NI2BS%#QSSSuf`O&M)T0 zz$1j=Fbj%}J8co5@+RXvA?W?|e(xJc5)Pr$?L6){=CZF`&Zy-Ssqq=-pXHU6_5}F; z{CheR6q)rz1j@kR9Ptq!2(F`j=SymcJvG6>)FhY%-)o5{%808OX$r~<=&~@s+FHqa z9D^j?eWOSzbUq64B;L2C$g#Q;rZm8f1$72lrpBiE5D#;vqka|DQ1xuIGmvDlDb3zZ z;vgmm(!dYva=bjPY6C-Sj-Xmrnn+sk>cnk;fvui6C|v3gbGsB+}FYkm*2YNE{&YB=l3)J2Q0zXjPKe zZK(k>V4I-7gPMw2F&c@nEu5DF*i<P!Ll` z^JIJ3!Ot>@UJ=)FrWQ6eTVc>F@NgcP zD*WtsFino20zKA^(Rq;oj2+Vzf8U@IAK@y*p?QsHfH~NZxeVzz;xZXogd&8me^7%B zOfN0h*Q-TFoYKH3JCKc zj$Bgkt{(5rBUh4dCmRHDtBK}t2zLnX(OX?yeHeHpgOIEo-QQA^DGP5{6i4K4gF zl_d=_Q);^Bze9N_W{I7m*(ufNgA7h#)^S@7w`|tvO7(er6p^J4By6B6!vOY5vXbph z3YkF!{4kdR9kD6E#K-;HHM{^Nk892#X2I1ds_FqSI+8u70bcIP#;jj^ge(K9$>0+} zqwJ7O;sh`VK0#}j)2DdXoHVZ4nPL~Z8q5uh0TDwGPvXZMlu={XWr8yRg)rCNI>x|u zhS%bbAP@m)GH)QIH=vjOVc<=0?D|Ee`R1#Y^tBKaO}r>UgI#DxTgX*Dkc`#J*hIMQ z5}ydl1a!n$USs@W4+Ad|bz};b1Nc%0fh!-An6mlLU=WAL#gPRUC(g5Bq&Eu0X7{(D zaGY>e>EyU+nGEDgwq&xTL=c3FDIUg(6C^j#3&LzCByfH8_IzU*4G0s`5CqunaC(qR ztXG9XCmByrE#O~y-MfJ_gYet6r35;zz?d7P{yrIRUf@fCqQ&%S&WLwD1KrOwa1>JJ zA+RO&m7gsfvTsPipW%TbjVRd?goM(&0STj?Xf3{BG#-11Cm~8&c%PwOcaWAI*NsEe zQtbHyLecYfyCQ>0SsuV0p=?-IA?Fw6*}s|vIvj>^@Y8z5vvq~=R;;9g83zrvgk}Z- z3`2YN9iX*RBoQN<&zkdae3M$ij=bh*ZMs3BGU^y|cr^$_aBh42+?}6%dzu zf#uwI@An?3CLElpguq|`dR_!JpiA_!{Amdm?`zi)SCU;?4LgXC1b~)RbfECRNEod3 zlqY507_AdQSf{x{hprf1q?x!m9(Dx`$K`q0GG6whC&{zUikJ;CQEWkqc-nx4XIS31 zM|0hZ#~k5QAB+;ITU<{#hUXn3m zkvXOQO6yJwg-NRcQ*sTWAjk3?zEVc!eFu^0O@>X{g{&h;U_yVmnuZw3OF+gML0%W$ zaLu6AZobyk*A`Yv^c1j1;=LsUd@)Rr{zMwHId{S|de1g;Q5ANxIzHj5=qg?Jom^k3!l7|hjT;8{D-TeiK&|1#*wCIA z&!gRphGeUFVm`vQ-I*vzORLU8SV0@9s zVI3j4X^!>jwdDqk3+8d@%WYOl(4vH3^zzcP04SC~1r2bC3@->t=28A4OO{I)=mV6< zg#n;hg?cl!WeLpCA2WFAKK{43&;#q!5_Th7rS_|RG4op-WscPRynBu8m5&=l#v2p} zH)zp@v~LzjQ+4g$FwiJ~WKPBXzyf+9 z0g?2)#)Yj&ZQ>201+h>bD=;h7TtiIK2%wWcP9nDX2zm<-x}go23gJ^8m>b#d9`bp} zv8==}Ct#rRJ>Cf;ts3eOaEC-i7Q_S=E5t8PXV?VgeYj4K>NJ-;MPWh57dg{*Cb&~{ z$d_@|N}2cz5?`Q7D1sgd#py(TtDHL-q{*rZkDysX%XSz}nfGbBN5F;?f}pIUfT3%N z3$0F;&duWPd^`zAWW=0mnVv0qr!4*h=KwM=$R>@XN_SO9&il#0jDhzxeb98eGHR=qjztmC>OEF0RW2%pj3kRptt4W+;mS zt6P|qY>VI}%u>a|dvHIdFqu=Fh&h{LLUh+@Bg+Xg0izt;hb5d+6r;7F11PglIkfjS z#ut#&&fJ4CaiIWvay0ZX-}l-G;Csne55TxybwECN7(j_<60PUf@y|31iW#KHDfn7J zoWUNB4lxc=Nn#;0F#v8waBt?UkEEx?wPJ|jP1pdsk(t#$T}DY$9~jI0{ zPp|d<3LJkHiM5_b5HpNFP|a|_h1YP8%7lxwa9&ZL7bn3{Wt)rgPW1XBqSQb zWR{l0QZ6C`r^z_${h#IrRt1dC$V`gUWRldB1_TIX%HbDPLU7$4O^o|VE}B}r9y;&F}EW{q_Yrk*l!`5icLFM% zwUQVEWQe+$ZflDnqy+J49H-a=@uavf&_6jEn66{ST#Cn<7=QV?O_P=YiqIL2Ych?I zVFqEt6nrdDmI1DkHLM7TfzGEx)iR{k5kk0J`Q8!Ch{h$F^Bs1u>on=e=(^{3aJ z61S|3)P&XC48vUl)6BMgrAw8i-_|bl068o|pYzl9qAR;=Djbik71%WOb?=U|)U*5NqCr zuDRN7%fZ<>cKQ9drVV!hTvZ*MZ__ zH+_?e9OeS)Ppdl!5>bafAsUTHL4eHV5jW6fXpZ9;8p&YF{j;%8!!$N&k+DqvWe_eF zh6y$m?#roWIqxS;#|yh;OG0?!Nx!-b<350i6mVezD)A27xTCG&DC5fnj+dwh(u^;m z0FqdnqXgfi#vV=hoge9yfPA(0Oc{RTMipLIP>!SW4DvKN1is1mhI9+`WtnjzvwH zc+v_4dm-z6I@@6+lrfSomW;PS7Z9}8n%2Sl)}peoo?V;Veh>ci-Jx9`nzJY^*>lp= zERDgDUeL4b`q;l{*FBH%?7By3@k5=dekVN$81wTbaWiK|9(^e@m1jgf;jIGIl@b)o zH$xB||MF5ei^Tetn1+Pl!~_}XsSZ3B%=rIJu{c}z1x4{;aom1qCZ%9R#ATk)a7*87 zC(%2^vv^UvK`O?8P+Y41fU$9NQuV`A-hl&SLP(4t!U36TD_AhBVkM_6xPvwblzsVq zkv;Ew{j&tj7Q(KRAz~w_NJtwA>K-an6vo5KWUc74l>kIKOFUU8+;i#SF8EUiNn~=G z>9PSWXAn?5g`KIwg%LrNp zzO8BUE{7CHjh@pc>M4@;!v(Mm2+>7sl;^yoXJxEc?a#}C@CMpMZdH<&8$wPs6zkS4 zxXQtZcmYaC13ihNXuN=BR*MD3Km-*M&z%eqoB8gGYKh1`&LHya^QBFx#|bL%i8g2O ziy?qdTN<-!@(B}ETzBxRqhzrp-$Q84(BcH^f!mxB_H4k6H$}xgFSwXNG5919J z39M&+NVue7pyiwr zG6ka-3kxyx5p)!#9G5UnO0V#o2Zjr?7z0u~(khD+b{auoztC}O)5beQ+F|SmqJZ$c zcsEZ&bFcWNXBucx~ZvM&mfv{Np=&@*Juk6M)2S| z#5rSyl}!co17tqZJWR7V{rx-18=NJz#_bTqAc4*60D^*s8Paj9In#lK$tBS??Q=gC zMwIGT;B|0eq?EiaJU3Yul40h)K(vM_@jjB&j1kfu_sdV?`?=y3v6f-Js>jX!Fw_7Q zW~CJj6?!?v0rwPh9-F<-Pzn!?Z=PyWbL)>2A?b)|DuCIoX=L^BIE;06RG<6qVi7{<-t zLcDHk;SS|s9cmN_5=Li&k;&5fKvyirh`7?P*3n^bNmmunW`T+f!_Y(2z%;2Xc?X7B z(r{`tN!bEJi-1|{p;VYepbFw5#&$b|r!|@;`sMbvUwL2jI=$O7x*&VPq+wR1!4HV; zof41%lK|XgJRkvp^L8Ml%?U48q2Osc?PBKh(2qJJk+}}>u-+I~VDk}D36^Zh9Z&MF zF0Gt1rR+7dL#D=prt7d~{)KC#`%9&b2SbM!$XwBMnsHR2+l+^~tR-N;&O-_$PeX&D ze{Cy^+1U|vIR9l(5SBtu*mz$l?at?u1pWMn{%vQr8U#jYb>+1Ik&kH47LO|pb%$lY zDS%kB!sAHQ4dQiRXog~530-gHT#bd`&Q@={)2p`&5JFJ1=HL>ntIX248iZWg1`^%M zd4T2fXZLL>dZ$J1(S*K-|9#z0!P|SQ9*o>#mtLhu0_^Cq~u? zmX^?!ym0;xe{ynThJ^xOacGC`5luRPz;$vypp%LT7#Oa1lN`G%nX{& zRYR`&|N7fNQ*L#+JevKeSN0o9tbH7Yg!geYg;qc<{W72<(&0+coXT361bCF25lH)d zBgg=bgb9-^SUF#wvip22y;}{voje8x#~La1WV})dkwSg_gm$DTU$iw!WEfHOxcf?e zl$BbDeiy{bz~Tm^W7OHzGnj|DE|iN|2$|uuZPlr#pn{xfdRS9(TK2u?lBekp zOLIlN2~<1s?x_I$BZLU={GoUq@^4c$E6S$*VM|?05{?+?7GME%-TBiC2Qmf=$M?ro zQFDNhbQU9Zzq?wqqa_(IWP|Q$84~P=6p+j zP`|DHP5sKq+B+*{EYSEe@MxkjC-9>CNpdL2LPcq=OAmliubk$La0iN}#mE$+fq;d~ z6=V>Vfpiio0B}Ti)(NkpMXM7oZ~smYCtJnqhoOADMO|Uh9_m9hxvPxQd%GoZp@_9ObAOG#t8OB zCJG!hPr4isQDcELN_tDhUD44HJQ{|}=5F+@6gVyt5ekjKH6VD{_aM=P8)*6xaOP3C zdJRE=lxH|r4S1y{@VdUmz1H4s^OO=H+8lcKeucUK3_`D2x=xn@j4l4^Fetp@C|AdA zI&w-5=olnE#*tS!0brIJpNd*N>P^v8W6Q-6qU3emitGgr-q@bTIq}MR`gs8EB6#>{f8q1b(ndb=r z3nNE)N&^dd<^0hew)Rf7a9r?SqqKy$dX09VIRY^ZuH-GF2nfy&BnwetOP3&kNkY+O zX1Oj0$<^jstW3;AMR+G$l+k7_D0MtGj%7>>K;fx8T<0Jk@|VTIX{fFXpvW_;iyP#aR7l*@(ZEl*2EmDHDK;aPo<2BTJRcgAH> z2WMjZ8+AQ6MaFp!5aQOKdKUGA%ck~-Z3R7a{it6D-oX?E{+JbjPv1aYy`Zy|Ctec4 zU_crb!-4IY$cyIt7zSiy-U0*x-5SW|1QEr`ed5;!L{k!>kbS|%k`2;ihdmWBN-%(~ zgiH32&D(O=AuENRO%0-?oRvy>L5C%X(hYzj_Z)!{{2E4hlCcEnSNFwZwi*NobTk$2 z%<{L{x7jR3i6zF1|ImylLdw6^4L!p~9cpp;t3u@3k*y+>6D0a3SKzR(6b}D$eo^>= z@7;U1k6tCeRqQPv*f@>*0yI{Qx`S-*u$A9iEipFN7>^5z=2jPLd7J?#qS>)L=}q<% z09_-)buhlfYXy{8WQj9E71aCJn_X50Gr#ohrRNY1+u0091-IrN+Wd)Co2{-CfV2Jl zVX6)ZY^qaPWp%_Kr+bmyG^a7B!pkH)vVI=3i0yopk%I&>ZP_1{ujELNHdU=L5% z6H?b(P(lwjbFJuFSlx#n87o18Bfal+Vus^>uJf)NNn+Z(eaQ}?L<#I4+9+3vzRa|X z)iY9=CWdqi+sj&^Y>Pj-od*+4h|q&XLyguC{LqE>3C7oeVct4$=_})-;o0&ly-Fr0 za=@H-M%v@RDFM$cIw7qILUXMK0fo#142fO7%=l5M0U43|?nBOLA)WCgSQ|tV2`pM)qR02Q8PWL`}{*7^2R&&B=ww&{#09r&582|3`lA zsdqaK6gTqwCVvF47UxPMAoChU!;RzA9CmPm4}nm0(HS6K0H{jB(Mr~Ni83zmUDx&( z8rL4zr49mEBG~{kP}-kj4piz;<-@KZ05O{mOop7n=&1!|83X#-jIZA>GD-?<-y7*4 z_t_%5TyzENsc-=nUhn>%G^PM$82CIv%t$ga!n75ew&+9@HwCjvm#xQnSnBB8Gn5U2 zu9}73l?Vt(I~?(gEOa6{n-E6dG~@%ReE~Bxf0e4m{d3s9Kc zATvf>lD!4L7(Wc1dKcEzT_B*-tHGs0 z_vgT9Ndh&FtIm$_c!m?d0Z9=OrFl13l`Zq*d!Oy=|hi5H(gdmB@ z%mOAriJA_Ps|S2Z{LEuNZ{J5&mt_7IluG4=u^c&ilJi(*7*Ozh2DltCVuH%ix(J72 z5xXrw3+dVa&*_g?S&CvpA|5LaQVAzS%+IOBFqLi;W)6Uv!;<%zM7mDIB0B&oEErG* zezP({>qK&`5%psd_o>=|3v(0BP5q(+3IO#X$h=8(f0vHqcM|^(!c$nZ;V|MSKO6--5_tFdEHlkilLgRrz{bdN`4=rJk}!Z}d3Y4jIMZFTX6-aTm{>?hiXddp}kh zr8!LMi`v4MHQ!P8zfl(*_2d9qK&HPifEmju?=RLr7rgrf#sZBCHH_~|hk$@|}cl$3Qy8B_?l1aRlYD)R`&nqQStVw2QRh@A6~sc5tNGVJ$Qpde_w-on8b1W@GS zcnEL74P49eil);PfZ}w98;-L=IVKBT9_Lw0_)cx{(ejWl z_PDYt!x(svK=Ba<0ZDjvk4Qoc{URmE6+*`Wk7Qg61>A%>i{$_YsPBD74>hV-vBcqV zQ#UZKv`gC`za{`NY-nux?nNLSw_=t7x`4nc6VdIq_7`f$xp#r!cCmCFke(Y7pL)^5 z5VT?>&Dz0x+G|vKk``MyPN0$4T*d7&OI`XFK!bGwekc6&1id|={0zQd3+dc)vNa6>OBS5pO^e!&ediq$S!qwD09l-N)uL!?z z=il(|IEUawv4<|XUzZP0howaG9mDTh7q!~(b;=rrT7fF977+q=xX`6UkXB(Fv)r|A zCK}00eJr^R&hq2B<5vt7k?HPGye8 zSF(zUkYp^Jjw)y&$C9C>t~h6ahXrmNXp_-@Q?aj%pRNVr@Dm;?qJ6bod+U?T7Ls+F44k`S21HzUaz*gqxC0+u2rElRW|_|l1aLnGlG~E)O`xPed&F19@H-p9 z2Xi#iu!{3X6Gb0%96zFH(GQ9prjsdg8L4xv3&BJnO&M^vs4%!nvH{xOx+}fqzZ54W)yi1uiniZ=_U=PB}8XK3RrE9 zvo}zNeHqKb+V$(!ue-&n)d9)Uc>K%{1*HoDC2b)NX+YBElSoVUh718MfyX;3nU94s z@<<|&DJ6HWF@)aF#N{0{QN+RBdjmzLx2^Rm;}H!3)ubCXGHd*p?&1P3RHTc=xRd~m ze}{3WD8?y5w!zO*oQL&Y^+L;eBE==bcV{aIt}8@Cxu~H4cec?*??ekr7l7UHG`Kxf z5W23kl-40jrA$)j{1D>9>uUat_0nu4guqY$M*r$nyJb78TM)%@DhmLkl2qTIy3)d` zTdZBTaEo;dwowCE{>vBfSv3_VtM=lewb>68ffP(2s3Q#^Z!PAM+X)Z^o}M%sfloG* z(L&Jq>|j`j2Ckvl=3Ewo6hshLaEe6H(6|=BF2ybt**?oh$sVO(zMbKWe4L?p6(kWE zMV?m`q2uxyZv+=6W)4(?;1wP{8nIweOtCDg1QHQ1Uh*R2;B0Dk)w_zAr^yFfH51j3 z1*QtLFCL5hc$u-x#?nP_y%QnEh~zZMBiN!N6v4Len}H~Fr96(#lXYncDhin+$vY*i zyZNeh>u#}X9YWDKQgci02LJm{Ur1V;DwU)z1+d`>>)u0#eLbvzbyVx(_?F@~SCdD- z7RWLusyx92h)BQR2B)Q`nDvC|%qgA~-+FXKYwUhTuE0aFocx2^!xUUY=u$A%l7Za#-RvAX$z}&Mmu*O|DcR=r}X3029t!Y2B*L z>(;GZm(M9w#nHGVn^Fqsh{0PJK038+#p7M9L&Zv_?PN**5Rq-cnj z6|REDmHJ~TFP25QEckFhu#OQVrsTxaf)0!y;Iu7-ks`-(c0+&8u#{uzA%2 z;%PA7lblCSF$4MI|NPXr+APlE6UX}HCqVHMzg)`f(a<(-K-@OO zsIb{WN!6OPQ2y(z2bxGV_!(0W>z%nS9}_aW10qSdEEQgm99oJ=P?-?fP+ZCAg+gth z0PQcr(1<{=uqL^-FbDbuXWHUp;XNS0d#_j2EAfm0#+8~FrTbYL zo_F2tEQG-$D#GE*)-vVYkP*Y@jfGWlD8{g5SJ;bfl^G=)8B}B2qz_t;*}Qh$+O_Le zMTU0o*)v@U8d4=Vt1?3P-AiNQ*-Mnh^!sfN~oRW5`@(~;f z5Kd9%8KBnR`FHUA|>)l*wm`t@ideqXp z0sEu#OA@$nf($@tpepE2w_SRddD!m~3~*@5nBnJ;cMx>0E$;l*#Ua+}c%G7-i3=hL zK)PDAmBM;0FA@k%H+Uug+=#9$gHXeoRhy65ylV5>Av&-fiz2GzCEe6k5Zh_7gd4OE*j%qxmm zU&;Uwvu^j<>|KTE`W1wj#AR>~OAC%#^UY+`92w5@o}`g3jm<(nCxQx0lQ~>D37{fC zkO-!Ey|gE7FurmZ*QWK60UxxkS-WP<+Rdwusk*T>B-|a>X^)br#`-w@Z~kj8t`;gb zWn%@FG8`nZO*EF|x=6kgTCgT!SFzJLJN&cfQ=B)$)>LjjN}yAE^vhN01{QV0zt+L~ z@&yZlLjVbKT3IKge#LH4 zNrGdJx%rwkt2VE3AG8L*<#%kpfz9XoF+>CJJllWxx7QS*f^bnSj1y}jE7b}F7HgU^ z&k39%06Num{POi(2yu^DZ!Uz6uz$24{FIasa>|-gs1`sal5ZEn7`>_QPrvkdqzVE+ zkdJ57DilRxI4MvidmJnzUTDq}UomcKFqI6_`>&YE4BCjCfG3@tlzMm>Np$9dhg164 z@xSO@3xw;|>)Q(>FAFYz!N4igqLG|F14iC7+3wZA8-(WNT9lb9TPLqt&5y1#; zWX*A_)~q>hVU3cMZov(C)ru0N(-AL9@-GES9Mo2hs~D^$c^u8EMQwIFEge)RahC2X zndS++DX-|`&-Z0DkON{wZOG|q74YUen?-QmgFF}Z{aj-}Vc@Xje}eE)2n5oaNL^-JDS}p!;3Y=R= z>(gtLeKYGr5zhsK9%6l;oEOmv0=1lW1k1WW!v{yf;cA=jS`QoCW-dj^7H6jJ*--YL_}T}6-d>d zmPOq_jJc8I1w_ffT0VY400|g}Dl$mIc2l0Y9HY3x?o3Lo2%_iSv4Zg{qWQDx z-Qhq}@iil*jC`0~Aox5}CSn6&?SIRgvMAnMf>5!lqNocC+yJUhSh=2>cfZzX!0VPn zc-8F1OSkuPxipg4h&4}eIAAo}-h#nTsi=Zzje$ ztVhEDVense#**}_wxdumFDR;CScM}m zmY?|i8Ves2mZhZxLQ_1P9%g96-O*6~0uOJRRL-u4%A+Mqlx`VAQeWv(e-|UYE=3Sy zIneY>w_064n%=ck6Nlfc${c(m+<3oy$VhN8jQQPQ(F`S`P#u@(D5`{VByhfd>lfq| zHjncO3QEgEEw?Y(D-PsSjRLNa6_?B61whqQx2a52Fnc($R}a*O#K4I#FD0~UKA$4LIf3XjMkqStYF0F!@}zl z@e)pHp9S#ph-WO3ub)2V1`)BN>SN87dc9Z_*-M!Jr0(ZQ(T{5da=FS{A}*CnJr}JL zr>fXQnFcAz5z$f!vbKr1qjL6xQv}1j6cmA;wz>jD%!~^_d;kJ%TxJaDPh{aF0~3^P zNU_KZQLK3ehyx#?m{RNwSo5=8SA3Tx!!(vwqJtwlO*BM|jJOudW0uvh0yi9u(~5iyYM40ES!%qL%`x z!r?n!kHmfrr?<$6;aBm@b(s`U#pK}5>u3z@PD%a$$o~5I|JTxF>4c(MuHQ3X;Rrgn z$`gF*5?qB<6x4)sv{%Y07cME_tu89!81e)_=iO_p*nup|o@zwC^a+0%4)+Kic_(;Q zgU?f}lK~L`ctupd!?-6@9C|EeMbv`r2;cprguYGzBQrNIPAu4D67euq-t?QI)AtxE z73-k_Wi~IQN?*c^IWbMbxD?>K8OjR|hr+Tmtj`f;<8i zw@WZM_oP7+j*TIedwva8JBUcw|2VdBRQ9VHhA-ZA9$q>wq?$q@=wG-ETMyc#cf1Qs zO_n7ni-s!;%-QFL5a$V-}fy4t_C=q>;ePf*_NdZCnrqXI~${55;_ z`cC`}GPS@=A!0DC6+*i-gXW_B-+vWD^SD55C_SQD00fup5DNe384X*&;T}Q+j^S_J!#gy{0a|U3N$Gvg9Rj|Rf0ye< zJQA(&B|tfp6lqx?2(1wb5|WG0X|O15gtq1<*y#0ConrH$THxt*vg*^XdCAY?a07^G zjF*`8SQwUs9g<)56Ut??8fn0pT;CSd3}QtM@Xq)Bj75!#kzhgTWehswC!0vYs`n!o zP}G+UNdHhFR==~(ChNpbQr$Z!1S~*}Rz_84E#OkoB9uEn_d#;1n*1`y?AGf{WJwcO28_v#F{}=Zd%O)yQ~Pm{Sh*DBK>IrzOq)azr$n|d~*3vwXT$7G+bBNAh8I( z8V4jv^I9#w*`oJ1g5nWoQhK*?|3aw-!c_JfX>29rwj z3N7r#HG~3Cu^J9VYd`}=b2AgXflTm};j5X^4SoZDJLCi!Sr~Tjn%3k702Hji+Fpa` zTm0(j7vS$tu=I0WSzZ;Q%#d*d+2jELVE_7Z-3=8{GaJU#yu}our_T>_NReM*Sc;J7 zHWw0LV4%I2c#m*h-;m?J3Dzr`7+n_ErI$O= zR+=3g7e>sRnE9WBke5p174Y|D1H8o~L5oEyD+{{T~p2+R_jr|=nJ%)Vn zsv%-!;VjYd#pgtCP?$F;DwsVOrQ5W+J{!nu|8s{>ID{i(r3BkGslXKipZ zcJS^5l^{{_JqRn}VQwC!$gu2rUs6}AexzyX_9(6cF=Pu&t5OA;&hk85iA^#dox@O% zQ#Q21=Vd<{4hWHiiY8gp2kju^pQ(>?m#Au~#d>GlGcSe{DP-vNbqy-`_0*FYGmkG2icZKCK3a44O zhMPpz(K(aUVz3KdkJ!LJgw@@~5LAg<-!@ILg~?@<(~pGr-ymP!bHXKHt%EAN?xe&p zN!~Gq43;Q25Pt=r&q{0|(u@8Z_8?EGUwH>9U#d{5q*bwB0NoUp7NLZt7ibO@Iu~<66b+x`Iu+UaL z7O<^z2yr=(C@=L7C4HzlEvaU0S!~Cg1@7YK-7plz~b43*`<15FaJ4MxkR@~ z?va-r$FGPgZldw!Q}h30D4V3u1*RV7_t@EmI?sC* z^|GDVbs#+ml(>4$l%)Y+-U-uRNf5#yxlx(CEf(!;)bHg2%{(XT~S6oG7kjZlH!WmZ2kON+4(1PI(YO zllW#9R30d}Qf6zqqu(zBC5SyzD#Y0!kP~=zG>S7$44hAzOjV+`@1ec>rI!POqx+b^ z|Fv}-4}*0W81ZsfVtV5pR1PTi0GJ+3J<*T$qz9m#gQI`eeOsLn`vg@4ksw~rxcq+< z|BWiR8zP_@11ef#ht!DUDwgkb-x+7@m&)l%G9D6{r)AQFL3o7h8k>VXbnUV3nHL67nnq0n-h3&; zxY=q*Lr@V>g~hhB8Brp3kN)MITk68jXX1#BHLm0}_DL3FHMY$A0=q7Di8a0cCLPb2 z(qJWus6`4gU=c`p`jFBUG~p`^lfw?4j!)nG3q{j$SOYo_wS2ytW0(3Vc5^VunX_g`HZbpN$guum~ z`D=kKbWYVu6h`ytFSQ?77&V@|;KNpR-)H1s9*YUmk#Ffy2iMh;-i zM!;m2K&x^_L74Ldp(ND+;f^!E9YP82Ux4_7EuVSI{f;?!dTqZXtI$^Q@93L7w{2?! zKahHwR;xQNIwME0gymh16GI5*N?RfgRJ`$)n}rAh4aaGJ}8V$nWb-^^-2$siy+ zdMOwx;sF#-FgX%mB`*j?j6L;=P}|Hv8sP0mVG?;T`;ijH zpZ7?D(V%OP;X=T;aot6%9WC^!NC~m`F#_Uy1DO<}WKmj6C@2;bj*`>?WEAt3>jdNv zUwGQv9@QB+M1Oi=zw$ON_HBj8wQOxmXI_lIU`xvwSF+x66h%!}xc zZ5V>pOJah6Aqu|_2O!hbMp_eVkc8{oODnM)BtHA6N}q3i$6kj405dz}&eJ#L;mpv` z)9gM!E0Tx_AToc_eU&)XJ?W64nkck^urI)8H6T$`DEB0Z?~=Gug+K|1MZsbrP3vDw zCGrvRA3bgB+a8Vc!TL49ztdizJ#4pae|slW2L#@Kp;0YEGlBdD%qSp`7Hxl#OC@6+CK;?s|l z_73I$Pp%YzCM(vdT%ei8C)#{!Sh;ewBTc(|;Xy6TAyTt~%nT-C+7>2H!Z!=XgIawki9?Z#SG z0LDv@xk2J|of9(iP!qqVH&NILhH#?`VZ@l6u8?EUb?I!-0FiQL50nBzFKkgdFnz-* z=80A|$OYjA>5+n;M&&3G1gLW;m5n1se&;f;yOK%*VPk~JFz{?wNdoBnN5Au|7yTi( zj0z9+ua{4#S;OcPSX!`HwC1_OJ468~5=bm=%gB|VR6 z094&TcawRW@2M(JFm!QK6IjXTPx5;+a65+Fj?%Tev9Riw1Zf5cwD?ESB%YcKo3Ys{ zcn8<}CD~#%1YvwZYKQaSmgv8SEj3|e%?n&iDm@T@=M)CwPvwuvVi3Sb84F$eN-Rz8j0EnwC^WSjV6^CauML9C{yHpVY*KoO*5HlU%*u0JZ#V8 z1d;(PR7R~3WC>W<{H)^^CaW?E!o+yh@ge(&-?Zhnoz}i9cb?#WfIWAGE?!45#~FqG zk}oftL=;QBN@B=b$ZK+{Ryr^JeuoB1KBtbFcO}*2K|JqlNO3Ydl+e(FXX%G`S)nEN zL<{+X;~X_9@A}aqMQMXlqZ@$;L-rAjPyd59)oBzIKr!xg_b;XB|Lo+ zBP3%2%mQwGw+F2<$>BllBJ!^fe%`EQ;2&VW((MNo2x3YUBXIyd&W|ghYA77Hx=jln z5-vm#a%&{;eJF*w#`cs=+B=0~&g(zryFHGJ!7H<>AyLC_8xiUr#rxI~&@W<0pajl` z|E&uDiKhb$Dq~+#K(wR&G$m;Z;0y$j!Jtwo(4HV%hoJfio8x_G&i$~B zEsb+~9!UDk z4x}93MU3)%DVa@AG<6f;O{_ab2~~fSWqSqk8baIQM}p$4#^boeC!)-U|EGORphw&Z z&!fPSL1uF$)p(SQ-1_kgZfbc3d}81EuK})uoop8b?y} zZ~!?|Z#YSkV)N}03z(>l#2|YmkB9{a1{@f9@VY1(8FKnMQ8P?2Plxj7_SPj9>+%T~ z?-mAcZDSCDC4r@=QfB~sgC4FRjHnPuAx#c}7W8B+@SBr^)SFjfk_dZflXz8vaUL|@ zZgkLu3yC+FYi4&W(?fXABt(-`2DEPGeRn?ZQ!gP>L|zv(IFsmjB&jj$9(wCr2bH|d z@7eHmO3&Rx{%>z$u@)9y;`jviEc`4g?HIfE;|5ORo?sr=popy!H7zhdC^DrLfp{ih zJ^D@1QH|iIm+-qiK(~=BD=NPxBPX1?{I}?kwy{(_8VV-~9l2p4wbA^#-R&JmqISi6 zS4u$AmXek}j+hx%E9Qih@?3t6sPrZ8)-zHM_JkRF{(ALPOOyEJG?D_0=s4%VvvaIs1WCZZOa_tf~qqS%x zSXXmxhiCX!>D$gKo{}>I2*?@Tyz#>o0KEY)=^+J;+}2D200z;eu$vN5K+2cLRk1;E zta9nNLQ9;^kSD01OA!Jn^#h>9=W ztEwoj09rlD&B9Xo_E`iJt}mwC-`c)q5RlHuhq&9pVH?v`K>0{9905>saPbV40?=q*Gz! z3wD)t1dgB-K&-&~5^aAF+ESRs;hY!J5COE(wM!k7*IqSBgby2ugLV)uxQ!N31GIP!BQnVy5SHs^Afd|I-&BuQgEH9Y1Z*6Qxv8Fw=lxuDM>;4*mQ3pn_E6>O}H500gQ5PD9uG5QTUWIE-tURHG9FVdTk|SHoHp zc~;r#q#56$0Q9CkkQO7fRJhj4Cn+=p$2Cb};mGAdo|k%^ppuj@YC41x8jBgG_yG1+ z55Lz!Oa&$&eXf1EQUI8t9CDK;2?xE?vK(Yg3i6+@7IctIwm~b%!CbzzFByw(F{sfl!CeEZ_FiH_Hc#m)#S3#~8hxBt+ zC=0+|`Go7VOZ7vRDHur*=j07iI*BRoGuaFa&wYWT3s2d6edDiPC;(1Qzfj@|Rg%?A z2OXN{(EF|}jWlEJzUb+mKN zQDSgW)-s5|7>K3XbRZ{ZeNt!kjsPgvrekA{;7j(??*IM%6w6}e`ijfH`vOlp)XY~hF~ zzy_vpChT0FtB!~wQ514APWSb6^>y`kbtfL4s_YIgn)3f(#tDT7tC8XYwbozEC(EgLq2vh}4xa2Whw|U(n5$wW7fpYZ-A7qgkA?^0si)w_ZGRH%z3?BE)omVyw&36s1gtn z$2v0hXO(sIp?28R0pJcNx4->U;{({<(yq_ze(&AYSn-hIR1wXL{xh?aFig?tF;n?x zGY78w#)15(b!7SI04vAOJO57;yuaJ%f2`iu^~=3i4U~nHT7>SIkRy!C)EwABAEKe8*TLa zD0V%c;;Z0=zfp%<4R1IHjRB_-*{BU^dtMsnB2D#xUL3Y}nMjg|5nK=@Q;M}oD5~^U z_j%L?mojJuV2ju4iO_n=(ATJ7PV+ijl-zDbY_JesuQ#SmzCujRRox z947&4l9)(9Yz2S_3FSVXG{;3#K2ByXWjeQ8Efl8Aa6oG5$Bg70JwyVVAYQzRG9h{W?~ST6EoIou;U__|LEG_TH;vhP_ArmG?<6y$ksl zdS|;dvr^>grZibg0KRfRr8$tL=AM8Tq7sNYpTDEKeW5z?Fi-)2Z9r6#DS*ilpv3$6 z6v?v{9M-G{@RKuFqsBub#>nxJF7g30nGZ>jDArS3ZiHNUs?Xp;(ane{icGiF#Lo1x zC2l&HgLWoRj@)%YD7cg86Ihs#qcSE(PzBK{@l$2b*oqOFo#F;HhVurhm=J#Fki@oV zMYLAB66?@THkb%>@w{LB&A)%faE0P`1LO;I z?tRK|=G{b}d*}NFkQOVQ=8TW&U0ySJq()lM0bT|~FfjDv%h%3qS)v|{8KYSB2ni>1 zB9H7A3vwE9Z7NUt{exEM3h5z5 z8K;SBwZ0WK^fodWMU9)YRJPnnpuOk$0=76NWX?z?i25#lwc$!=17jTXID5kx&LCvo z6oIzF#xx;hsuV&B{8ZU9Px$(ke}(I~&U3bP(knpaAR$Z*9x6x%S->8#KgVz21&Q7X z{lahlg`fW7PtX4zD8_X;6(Cr~fw{CDbJzQZ&cW8Ud(%a&a%Lj=Og75kl#H>!R0IE5<;*?D4m+nP(Ic?>-Hyp z{h$B(4z-i!RN78~ahS;09~n>NySK)>ZT{lYK)^rydEKP{G|J~&Us$0`{ON%SO*e6&^NaH0THq=gI0BBY_&^*(W| zGIu`10s!gS0?X(zPidxk0kI4wlmf6)>#lR$3w}&WfnA)%@eRmaj0W`~rNC4>D6kNq z1yJWwb=bWELlWe^szZA;XPS1(!vZ8HqZMJ)Mxv1KofbfOocG7|QUkRjCBSU~?wekS zM>}(qJ0of^$0$)*Mq&`=e*b#O9R@=>NCavG8DySO7dmY5nz^q7gc~@9DI9A> zO`wqJe&71=>R1v)BTX*HdR?32BI~$s7gB7Xm4X26JcY+t@lNRf_|3oYn>OE@saTHt zy7j+W2%mOd)k5qMj~?Rw-9zWA_c`Q|cT7W^dPN{12eK|=S)v4^7hOr;#q5gZPOpm| z>g<%lXT=3XRUOp4z@kn4{qrR*0RSl^paiZ-XcPsx$05@V@dIzcN+9i{8OzK7m9kZ= z1-g>^RABoWIeQD_7-DknY+AcYI3}NOqKb6IQK+W%FpyQAHRXbL!UFHWUeL%9W=s1`zxn_8#h?E47v_&zZ~j*o zSP>MK;IyT{_DpB2pTFLHMsB@t2wTaO^rS2wc2X%-lGRyIx0<*p8B0o2%s?RMdw!fW z2J0r&Rxi2#8k?-&zQo3Q#^>__R05x%9Z1oTV+ExvvWAq&NZn9Xo=96eQkLG9g1A8i z#WM$%t|iqA-N<-Sxm%YwB0ZxgqgMW5HXdaz}K-mt?Po<0+$bb{lG8&AHVtddou}jT~t#>%tBkH z@D`oLs@!^M)+kA_kyYMK}}RuRURDg z{oU_8E?JNZ($0y&b%I)5N%R3}T1||Ktz??Y{a^pVo*(Y{ADzD-d*uy~CGS18(ZP(9 zCYthosC6gG-ze-oJXfIigYkO~QH7G@9tnC+PNNbclbC@N9jeL@C5j}bCA+RbN9dHm$)BG+blMNYyu0#xx@x=5HvwGSr{cz89`>*?2@r})3y!V2; zK=8Ud%}fN(Nk;q85!G7Nhi?mc6fGKYtyJ%acU!_#vQ=Aea)`+`J5&IM3NEl-Az~*WfmwR}cc!@*rjugei2#>Ck02F0xD1QrP&=?G z)fE<)I7%T-W<@N(uwKU2@#$*iGH#O#q-NQWVjED-43hhyYJ3;OPV$9ne0Rb(E@290 zW5}Ci`2rAT1b0C_95?vNV*?18VyWK7ns+y#)!&lE%b68`>7^@mme=xuukAk|zZ1eD z@KN4!IMPvPUa4am`@ASpa9voM(VqecRxUgSTxCuduA%^LfSHXz zmJ`8>=MLwX2PSobdyG!Ns4jijX7LOcS?Jw=ql^MN!~*0oj}D=}=$Tsb{k%XVaEOpf z4?B~YIBnY$zzdQsswpU@S<}pUmCEwDfi6r!0Ng(yHrN1UQOoq+8^JCdY+(ct56K$I z9d`A1ei!w3=3>9_J8dMdw%e>1Nu9mvJ_eg+N%Jx@aTD_BnR?e zP$cAWtZK=TGAxC3{YTb2E#)owbex9>V*z+;=K7VcYAZyC@IiXQeF7Mi$!&;HU?YTF zu9VWE{jT@9ah)y!$k&S@C}l?OzHL?R;_S`Y$x|4bv|I$lmz;B;!s9qGATSlCNF?hq zjPCjJ!nL2B%QF`lrW~M$gHvtN^qs|~@cp<7js%O4Llu`QC2d1B=u;-trDuJwiCW5< z4OgMOfmX;sm?_p@5@f2Ou>KNJ8(?Q%9ejCt&w>31_;*4Ss>UJf48N_(KD&v6u7+qa zRpw`7^faNG*F0>Vdbb1zBAYbQPJ`L6V+8#n9%`crEs^*J`eY0bFuOX%5C&u1u#n9t=hA3RvoN(ae6paS@$EIOF#GyweXC zQ=O9*5^>?ivp|&YiUFJzk1mVwIgAzN4e0k|;c3;d=`t{o2_RXHVL+dGB_^l_upoJi zl2AiB3Bxk{PH4~ao*(Slza06c%FYad&@)|lnJKvEHU)~(nn%i2<(CQ7u;HWY9X=8f z0p)m%kTkc!ID!QO?V;EO7slNbTs4rOg?=cKg(^t~h~<>YYz%228_t+imIeSSw%66G2gdi$LK-4r)ksY}r;ADBbjnvayS~EJmk3vroMQ*qLHG zXV}gZGlOW-7}*$6&x3Qyg}}pBDds;b3AHyd``&FVn)Z{>9>WjCW%TAlZ;%8_J!eY2 zRgK$4U?8+In(Km?j8 zVr=yM$ryRJApsd6D9Ip%2#TB+y33po^?1rkMy=CPltPha469FLk}M}bHBe=j5!QVJZ zp1#18jG7qTE0^({J4H|lIb;HvD9n`^2MFUbf$&xHxo`LK?*04YcS4+)V!Hxd6Ll{= z(fnK!^>m&F5wgGWL}Yqj|MB(B-c8|+P=pbvGc<1JF_facVa%V`GA^op#yGuS4*m8> zSXd?%m=5i64#h!XO}!HznCR<~R3&m1IB1=Foiw~)rvH4<%1E79Z*DARh_dJuQX;$d z42|beH=otbdZYSd9o{#2y(J>h@eHC`N61@5i#}g*E-xu`x{SFL?{r{F=p?x%60@+h z$r_W|{f3q}Iu4QHrXhjmCknR&$4wUjU=WF!N1j14ImpufefxJW?cR?>HWtf_&l$!| zQ7!{GI49C=w~bJ$!8MLLwF)=S2-X6WxAaG*0Sf5eHC?e|=@p z#hLM}PVPA?!(RX3G<;o#;o7KG-i|f@Yjv&y||LJNHiyE-;m&w&Uw1sb zGRLBi0;jQLD?5P%p5=aOj#mXGX>Kp>|jcWrOoxiE{+uIotqv z-FeVN&DBD=BClL{{4kkDvAKpbrmt1dlrU8!*}Hpr*S>xGmN|h2A(Kg!My*FRR^ka^ zFXq7@E3No=oDqt_08v1$zk%REfY%m3_#ISN9jOs~{U`J%&A1!R%z`3O5;RCz<4AOW z42MixJ7)e0KBL7)1vR)PfFVrR&x~iE`#)A$a!7X_y6tJWRI%wFPHT5L8TecT8SW%< z@SrUzdQ1T=0a1EXS-_`kN%R!VZ5&!C)}rmd?-@oxE z@cS7al01yG&m=l>430%4>9yt3I%DrMV<*aDX?Y4XwXJtsyQzdQr`@!2HLwZ}K_)^V z0%@{&>4rjt1&V~c1RPL{$t&Q-v$Qg>jY8o*;UG5~jcs#Tq3#h(`w?mqHkl6ZhzAJ#ZOw42{mKxeC4adq5+f zlR_bAe_kWemgp@%6JrLe-on(tt;~+Z>tIbSbR69v#m=-e_L+&GkzfckQ4q7#f!hx$ zBgDUMS)!&g#h%1K(KhICfW%Pi%ZPvoL4FD?RQp6c45nh*Xq<>>35Ld}S`GtFj`8%B zFgFMmV?D5)&>yxz?!!wue=H#gCDwiurXH83zON4i2%U~J1iT`%m}}_g4*_ut=KH($ z?%R9q@>0fNGUcIYTpM@C8U~dL({D}THd0itk=gEMztXE+or0Q})N3e9zEhizsJ}=* zY36;=i4CkMiO%{0HX*<7dK4Ze^()~1=C;+Li~?+8?Km|)flZ@M#W3w#9JEAMMv{|X zbfZWso9`r*H~{pZ6e8}6%Jt>*rg8{6#a3038x$w}ShB6t6lGU$qIMhJtH;lr5;;lL zfhW+(QUthbp5>=N7?-0LD3LkV5tiGsNP0&}>MCUSR|=6-JeKJQ;PWk zNQoNl5_M`I`UFdh{)Xt>PrU2nU%WPdLqw~Dl?Gr4CBxLENXM}do26HEYN}akd3XU7 z-UvjVAjEm5MB~&Pa*?$}>!N z#`|ON)vqe0G>jm7#ei8Ue+SFz!m^GKdb#*yy-o z@@v=F7j|Bu?xut?To?hIGlg{?a2o6vzoZOip)@UZF%qt-b3mB4H+_EO@;7ljC$nD36W-io5-I>;BwSgyDK*&mn%_Kn6lM5gy8Z>F00I?7oE3f`+0; zQgd6*N65?wuG_x>DCV|D8WCeKD~+|H@p*9NyC9Oq*mj(Miv437;X5J>2r_$0VXv5yTIQ}KCVuXkRaX3sQSOmj_cETf=BAjsf?w+8ouXG{=-LtM`uDx7}mJa3m8 z%+bpOkYVH#3VB|e{?5Z<4nx=*%IFv*jzZX=&hnJLr;PiO>)1xLE!sSx>F?=C!D#TE zK*bft5oi?@R0lxHn!;AwNC${=gx7uG$Soys91WdrfLxV65kAV&CB5XOm4uG760S%! zM%BW;^QT2ZObr1n%dQ9peM#bGCXchgYtR2AjfhL;$!Dhd^|M#Wq zR3+AEK5eyXcpa3Il-LF$hOUdXcx@9XvQ(Z_-Z5xKYf8BtxbB2TD6~-2;XD^@k~x42 z9guYs8dM$9ai^Ts)`XO}9x+)(Es&l~CPbSU4s&dDoTb7j-G zafsdt$~2Te^Y-HQ4B4D5IWxvruuW-!OF(=9NHG9FG*LM_p8x`9r{yGtCH`0M^Ce=0 z?q%RsN)#(18n{_mrn!65mW7*~n$x3PxRsn> z$CE^2sVgmphSL)?K+J_bE!R02bSp^dB%D=H?`<3m-mC2sfX==%{xoP4X^?36Dppfa zCN==4m3T;FF+BnhRXZ`k7Lq|drE;=pp8ndtT`3#PJQ=xMOXMNb82kn6DJsC5IJi{qH?9>af8Aqk^)Jc6nfwC2vNX@F?&MYHZReRY~Q2Min7+dmSrSdSHr z^<56|BzsZ}PK@gs@~)c_cKsEJC(g1C(R?z?wb5f}|ugEXxh#473=Rf`|GIM(;NM|1S&+!nCmSx9ia>h64a8uYaTQfMQ|d?=h~E4g2__EbzyVW} z>JesCAZFQsUw-~6OCzVIL~;6fJu8)V7EgT4a7j9gEMI73Lq>^ufUlxu0zUE!=%eIv09>RCIxhJ*m1wg zQJ-Ye3??LbA^k-1lr_w^ z9Hi(kzlMd+Lj?W8;}WGvWKqUuo5_?JCn%k+a(+974>d5!22+?*dl*roch1+`NOW9E z={Wj2t1Y>nLUY*z<2f&H=)-Je-aFhH%^r#^{PpUxh$2MO)PyX1Z)%z@Z zNJ1HT&pIh>=4)^E4-dDBkRU|O)Zi{v1|Kt5msA<`xz@dT#ScTAR&GD41tp z7|_CS;}y;a(M|}c^@v&#ijcl{)Y*jIj8l-1*kr4@GKwVdU2VAv;zsm-69Ny(>}WfD2LXiOL*5M~jwCRMgr7dGBtIj#6PAN^k%uB~vO-+@dYR-UBt zpc8JNrAP|;N`0xrhAa{82BOUY1Cel#)mh%H(!+*iJDe}2dtQlG*0OZ%JMq_@syYVS zdkICZw6e)KJ6$s*{yyyZ*QaR)=M1Ld)u1~&|KSZRM~f)e@CnKq5y?QR6teNT6}|lw z5e-z8l8l2;L@prBgP2}SwWblXphhJ+afR#DtEwOEM?OQ2IKMW`s*7X{>(E$$$X9zC zYL>*(s0d`J<4}^aV4&1MQHaX%+UNBUa)YYHT&*lAbUJTk?`Hbci|0u$P)BNn06^Gl z0}WvswR`t7|Eek@qvPd~1Zk~B>q^*=i&yFw;CAyQ2P=OGce_odH~}`d1D}2EIQNT7 z20JD!VN=#HVcID`P1|2NDAKy_`&1bn2!&sO_6_ExIdfW6!w?~{aAT4HfX&TfAQ3@} z_2VRGH>b7O@LU~1M(WR6;_-!%hbOtDf|Q6?>NH4d;e-RoQQoCK`fMmoBBW4r{r;u! zHwq_CxIlV&D2t+=Yz>->jCzC0%YKgH;z?9T@DpOsQ-Fs+80iUu8f?e2YW>YWH)Uk|-Lpta#ITR@4E()}X*De%Co3`q)2yHZg$gHp@U>uI>%^wAEZ>O(!WOGua^ zLD$QRgKG0N=F288i|E#72$U={SeG> z3~YbPV;Z2A5u8#d_?Bom&n>_0JHgVerbAT%WZBXuF2B4JC2g3A9w^?8oI`LELFxzZ zy^KMGxohQ*Fzag3fK_#i=d!j&BA4Sjl}1$Yaxm- zGK+CRq9~iq#;ne>pqLNl)xC75PwlYtYnWOR$qe zo}$u1${|NQg#E^RWSjZxacWsSBGRyuMK5FENHE_|pHu}_L%8qAro;9SI#qu>dx zWeSBeJDjr+>~rrEv^!0f9^y5HSuGrL1;l5_Otd4NRjxybC21BWSzBz`!{H+%0e~S} zj=UVmHbc2xTs4B==m^8@xTe{|**Dg*b zlPTOCE`^!JT#0aG#d3`Sx6N88pIsfuj4_!pelTnc?hSznF;h5+V=FrKtvbe>{8L3qq+}Oe$(l_?(*S%dn`^5S4FMc&z*%L9A~Xs>s1Z|f5hWdu z7n{2;b_YC*!S-=ea2~`0hOs}t^sTt$T#e<-`g&}-IuG;cz{u_Am*DPan-i2#HKIi5 z4Oy7YyO6}2A7HWdvlJCDkB*ZMaZFl*8^ci9tyd%V5gkf{;C;FH>g7oDnd7s2iM#pP zB7A;LhnQGNBO^TatxS|I>Q+e3Aq-2dBlo6$ zLiB8!rlVCkb!5KwNGuE>Ppo)^BXe1;PXClKei|YZ8qP%U%XrdEfm5 z(25c`EJyPIjaC)y;|q+>vjojZ6A;U$;MrxQpehBoQA0|7 z1M2uy+G<>Mzp!(yE}jg}x+lJ%Gn3$hB^S}pE$I-93F%}4h!_N+zB zi%e6KQNU_yp!2&3j_0g)?6De1Zonx!dP&?OaaXy^d!lv}rOkYE7I8}aOq<+F4>{?Z zDS!TF`mv2sMbEvN;CzNO_Bk32ImSzgWOY|lnnqbzAGlH8o`MMcT4)}>K7z1#n#o91-e}vRc5vUVgs+6{1ExR@~{8F zU!l(X{7}v05e1JNv8WO6)wL?^W6p(o0z14^f|pBdEfzlA$&K^$F&9B9Jp?jbKurpg zPK{Ei2B;4M&w~kyBec8cLf^Yxh3v2*4r!hkSTWb=M>2s@-%7R_qG(e2ajgW9g*bnP zf<9W+Zb-rQJdlOW1z4cVZ*3A?0C8L~GZtV3_6B|mr`1GBfLJOk`r~DW-sL(#?2~Bh zZ#Md&0BB*jaGA@<@txuu~3mE9!#*I)l}-+{eyrMX7y zhB9VmxINrJh7|o%fkBCURiek%^zHgR=~G>|Y?nZ$Whsgt4tC$N4I&flqiW;AfJt!Lf%*Y z`RD&lsgXLSeZ`Ia<)9c_gop19S{qe0@G-Bp8k%-isc?NmPqZ)4X01W*kWz{S+p{ct zIAsR`p>s#MVF>oMt`MrS5SLE+BApEQM8X1ChYpc=USQi6Qqz0n9n!XxsjL)_v~N_R0x#)s++J%f4g{Z$|JG)p_{vMy z7w5Q#jrPD$rriIdk|8A23(}dCCBlXjJBNouLCIanK*%Pt1S_2>JAfE`AsjX|ME&P4 zfB6qr`|}%H6x!~YIGLdpsh~_DQ)V_()r@Wzp+l5^BmzI4PRvfaaU?K?#K0`cgT<_Z zd4d?&oK!&YfdV)gJrhey{Z4*RJ-ObKf7#ABYFku{G#fgpsqyx+`#9i$f}JVW*VS`1 zubcB;0a=$Ibxu21)1n}0Kv$5bsncM4DE7uW=*?X{rGwLwHJ494``$$|`m8I(<6!8* zdndgT>}@BRR)1w9E6XCR+cMi#DVwQl{x8E4Lc2K35K?=PW2=23@?)Dn{qx^H?*-U7 zd@F>etf6yrGNX^QMMj>YY(i$*=_(P0!xSkwh3}-m8vM8EXugJ*rE4HjJnmPBD4!-R z_YmyEP$`XXPvhy*6c-PTo%`u`y~Wr3vn^8PWs&PxNA;ify(kTyV*vd82pC-`lo4`X z3&!Ar$DzGUVp@brY_8NpmME;+mM02mz~<{O)n$P^D}@CKRb(6f`)7+SG(-a+sR|IV z(98`QSyh;!B1U8r(OML_RD@+2xEBob-~af_zdr3QMH-Fi>Yw2Zrb!jq-?Ykd6s5UP z(y zz_ytf*J9N1t)Z{kn*KE73^XVAFvr#xjmKvof%;s)MB! zO+-aJZcZqq1R_V#^MK%-eB3Z*{_gns0b&y^LpPT$WOOCaxHi1=UeV7)BwolQO+sMx zrtlC-zJBQe`mewIJ^n80xej3@sEim^w`CB1JcfN<8tj65O2BEHpJm)z%5zJ zvP(#e8^pk6mD@~aevtE32qM>^!QxjP&lB50^iz^x<(vsL0AKr8zAir!n@F7}QWNK` zD{|sgC{Qj|Q&mg@um~1MFh;PH%?z4)MP>5s`IxlK9ov*sr6Q77WqU$bQwbw_8JlQU z-7!#%{KdN>T)HW++P@RDod&??fua(FF(S_pxDx*^lO7`xsW91kg!u1&%y(eRma`O- zG@}PpgI`u1p-;rz4E>iMkQv3~l%eG;Oj9}Cts3G;NQeXYlnS`B0a91zu30DvrAs_} zr282CGl(r92&az^o6DpZ)rKl!(SGML_$$YX@5E1RRXL7tza%LO?OV)6JlLhu4BeKj zIUSxmabkC+?4+<79p@~vkikENgiAB`Hf+Zc>M7; zm;}<&C>cCz;KX1v#WvIFiZ~P66m0gGaH9#wc;A8j^I!h6C0BCmw3v!6a5@=SR<}h3 zuniPE=6i6$j>kjI8hRCEjdmVC9J=U%hNx*{Rj#9~qH$tZkt#xJc%-L9{>H@|pVOYaOTpKSZ1&&K%9+zKftq7vw_2VW1 zvAtzt40{x@NdXw+5(x%!ruFyy_n-gque#f>7k4(AL%Pl=)G(WgOmdR7Lv%DUSH?CB z^nK@Gu%Yrib2>Mo24>5wV~W^G@bs0`HMw4kp=$v$d`ZF4pKe#tPCB`8dQZ?><{N#& zjX*km8+525rnRLpYciCL(~1?dv|uN%dM?rOb3mQjQc^f_`LNeOuqxmpvPhl2SZ_vL zO9&Uh6?q}8_Cg$`Xwb5q=WFmM|xQc_uQcKp=JCkJwXqpAChP zAKU!x&;NGe`@0j#Fs-5pHM?hjiV&}6(td1>s|@)4BWTet4mC2Rt;2sT4$c{s+ALqw zpE+X6?F3pXD~!E=33BW_wn@Id%dww{B7_4Ixys^uj%ngcgu&>aidE(u#YOVlH;ZL0 z)=LYe7^6S|T9{HKhRHI*ArfgQCWf!1IGMv%E$X7#Y-uDzMNkamfR(ZZe&W6y{Iyu6 z&P}k?c9w-5+v2Q7&`Z()paL$zqglbd4Sd6beTe5I3DyJUp;;{+1Eiu5x*nhdvKQ6Hz1ejVV^4n$wjO>n!suGeIF) z{N836>_%1SoPyyz&kRO;{WwA0|7XprYOG{6OLVezMwD+!0I_hlKvFj@9#0x}80Bf7 zu)$dnA4>LcYxo2SKGkv%xzaBlocHDjK1yR{7|VoEs2k~rE=)Cn@HG+vB^EED$(2lQ zAgvM=cEntijpF6(rQZ2Jr&93b)Wfy`?bDxFAQj1!kz*ryZGNb&P8 z{bb0`e*S;y@5A7y%zh`N>gPu+X<>B0sU3Wk$yHk#4O+rwW|$puoOb4kQI-)>!HsTL zCU{wv67rz*0i8W!@8+MaLm|w%^sglmq8Sh;85IX{l!s18R-K7-Bi0O>#I=U*z%UV! zg;Zvm!&cQZ!=_Xz4Zylfk^`gQd13;|%Mf38?(W;T9UGmDyYdkQz>$?^Aqf?sK`PKw zD38Y#2>#kYO=140f9)R+KZ}aIcmXfbm;*pmnlg%kjDmM8o`kmNMmp_9vxfPTp9A`r zhzJ~CKkpwm%U>DCta%wuF%&M*j^aqv(Ia?aCc-A08Zeh=VY=a?2oJPb9FMQ^h#9Q~ zFfqUBu;&#OyauLMuss*9+tN3VB5IZ`OY0F7CG(@B^ z;x)(T{lHlS$`Z@^DJ1HEi+VZ!RlQ9JRe@z?mSkfIA4cVJ^vcF548Q%*V4yFDIqk>F z{;~Q5mKF~+H&vtEsY<#6lf&`nl@;3}67qzV@k^ecfBj$2|MmP|U$58y^^^L`x5{fq z7ile#8;tn55E-f9BS2i7&7C!5&~bIn9ECaC6PgNadD3g1)2*5Q&Vc^_O4ofYnZDk`7in0_ji^lZKf7~ux=k;4S zAs&&z!xv@uxs-AuXnQ;EjTzk4{NyLk&tCeO_Wps9`uTRsA3Hr<83L1-mc*${*wqv&l#if-%d>*?AML|W&5^)B^Cc%{yNjT$$gmm@^>@WL| ze`BC6GTZyQb2r271xzVEX#>R#+?Voh%IYpk)fPxRKmYm9e)99@_4DUvzw~GIo+9g}45@{IxN~FzjaUORrI*+|RIh*a)i`R2%`h5l z6!9QPrmoJnf zL7|2t5l3!UtcV8*cE7Vl?m!z!wot3iA>T^`RVqsaDIh6xZ+ZWO1m)O{X|7{mTSj%g z7?2d;I7vyJkuhNcn3x?5DLh3PHd;qZG5(YP_?P{LBb_--EJIQjOC-RRRhfhVx)pNiT@gv2E?XajS|cD8knT3DO1w3#%G-xZr#AW z+>cuUE`g`>6r{E{z2OISDQx;G>I6ihog0ietTauRgcTz1ZmgRi*nVRmkZLFo$9fz1 z&OL&I0|B218xl$jv8uT~^8&PTdLZ$fdgs!ZEue!+8C}tFM(F&uG!f)1*=!6@w8z2a zQrhzr`5S)OfBYXGE6p%DPeAgSmvprAwFiyBnW$1Cl%|*H8T)wmF9BeHgxB+Y`HB<4 zGa#>0M2LlqAfRMzfam+H7+}qiBZfdoCy=G(O|01rpVxVgqPpGwZ>XfEy=pd-mu13H zX0u-YSyebwy_pkoPqc&mD-bC)) zuZu$*J@^KacU={!ppFwD?MCfvTZ>JChSyr9F198~$t}|&l>-bvD3%#lyd8K#Je@aC z5K_+)JF|mtJG_ht4Dobc4~X|%ICPk}m35HUfk3j(^(E`mYOJ)G&)KbsJPfwo#L^pd!vR zOmG=VEn{j(iZUQha8(jJ4Q}!3w_U}bz(VecTZ?}@ow#lAh{7c$Qr>mDe74h>XWi=3 zT7Q`?=4`^<5{snuxJlJPBUr;{cg-2%uPhCrx8A{#D{!`QYunYMbjV(H!z8G39nO&R zgv!AQxXD=#4~RqZpatt^O);Rv-*(SJnkPQe^}VfA1zUi+f+ajbX3QFoYE!Mmy-s6I z)42}TVE}N5)>ncrexXOG_dLO;1DgBg5Rn5Sn~oWV2%Z?lP1Q+$GB|5qsTbWjDL;<8 z>?mnkLO++4r8M|#5=^f_;Mj0%%}vDqO?2-GO0eq2CE(u+p~fLPfEGyvJrFB zv;kT!j%F=1&7oAJTP@42k}bAy!(pSvA&kh*Yuu~HdP*JJvRBZJ#PPE#CC?|;TJ4{q zl9&Da*+8uJ;h&GB#s{w_$Vq4^Sx=t00B-zG6!+)->)ju)@Jf!l{meb#J%;3oZ8+4~ zyK5d9x=h72Vin@(zQerivX3mftk}EgomLLLLu{p%D&?&}8!8AnLvIglmw1+ZhnF%T z$-3`C;zk=4M5t$1jpjS@4ic@zfOpjYNGXkH4KShho+F&{j<^9sNl`&?I)J9P*t8qWX|vl!fGUcsD4yJl#x zHl4O9u7n;HYQ}3w*2AF2agvR3na$PcJ0%w!q7}8^-S3M&qMyJN3aV99rk zpef8n6~uzrDJ2Mte$xQwV=18_P14#_4$kx5Cx`~+Q9|!Wy&Rm5qf(4QFwI!$?bRbN z1CWjlbn)abV+4#DJ&RvkyB!A}iI(n=0vmXVIZm2v9Vcjaa4~~B%_gf5j{z&}6z!S# zQ=U8%Ch+X;QW-ki0TA@=xVZW;PM((_!ljd+MEs_|CL@Wg;l}Or^^6~NYs{oh1EWy| zj?Z}aY=A}R5iW-(p^Kh~-%-arF=N00Ht@hG*+(?tt&qC0$O{DSSu&vl$FlU}=`!Lg z5uHhHY)US3oOy?@4CkDzcc6@HupEw1Xn+|$ufZr>+2oTPOIN-1>h4d7gm94ES6Wa7 zm@*q);C!@5-kvc{R5E(^z2-teaujkR{3`oIQ3kfFI4gSA8LcapHCTzMvh6pm-Qqu- zD;QF`l9C#%ws&67B5U}W>Sfx#IXe!JTP!*L1U$6+Ow+b>dIB=dx;Y0fp9PdbBc@59 z%<99vPqoy$-v_m0x{|G7w0G0#n;bU_DN{3~=!q0#5Mt?7GN4nsfxvhLsO{3PoZK5J zb!WCsjh5Gi^1z*5!$uEl9`TE75M}{Zh(_YNb8oW(uOnWv~M(-ohJO5=AU1>9yI^W)IihkhOxjj-E5&mi_x2Cxu zVtRt|4Vo_~=Ii}-)o?ikg<{C3rpz%S)-I;=H3C6GCK4z{hiQKGZAQH|;i!oBJ%MkK z0nwBZX&6dNA&DXg&gPI}WDPky%wY`0*frComwjY0IAqB9qA6P1yE~jDd;uP*UU1g~ z4;i}3#vN)hNaQRwAednlR(sQG<(N%~_#ToZ zg?E^7%rYkcJHZ~Q18TV3WdX8UD=o~7K71*E0xR}S+GiQ1hG{i;#5!xP zw{T;|tRCl>qfem38Ul4y*;5hVHPYbS?45)Fg2uxFZge4YQ+H>MMV$ufg~i@GvB-Bl zdn5(!`2?pH|J4{mdh_z>Jh1<~Z19O=Yr2yTMArir^*+}d_xv+kk^}a3oTSKpuxfa? zr|or=tI2=kl|JT?JW`6s3IcS<0noh9E}r*qMULb2yfX|Vk(Se6D^c}Uoc=ERH53o}Y(c6Xj6eO4Jxg2C(-F9!0XT+jwZMx(_-QU@M zTTF*3T2snW%5$VNM}YW1275b!o))l;=*mo>?W_GN;teYc)j zR$8JB3zs1}%lp?=MZuMzde4TpKw~M-8Q#30>`H=S@|21A(5zs-NMyfCiiwn+18MqK= zR^LEr%`Fwh{#qE|nqAStTL;pLUMUZY7Izt8FJV5P^_IWwRxm|sgi}9-}BK1(jKi`!d2R^(1Whd z`6++=#p8Gr62GO>QI&WnRQFI?0HO}_r0W&2v&cPhgmI^w@bM~W;v=B|?8+(^)ai|s z5Jedoblm-tJsw#T7GPx1Tp9`{+PpL zEFcjsB}=Yb#lE#e0)d@yX;nw8ieVDpy+wU7xSgBo%2F?p-)rMa;f8{Z913hkT4mzY z@0YS%oD49blIBneav8}1N32hHBO0+N4GQJlW-9J-W--r|bqHWqlwuGVK_D@?vN&Wz z!Da%4#$*dP6pJT)`O@ahBOsEAv53?h1Q(Oi6xcoQ1Z;LT#SuH!+vt;zz`xvOSF$DM z&;7m=Q#uH!hdP0(%ugdtI`bg)gF=s z-Glx0kDPe{Ul&mbmk~7kyJ1W%^HhF1Jk8^|WVn#YCP%c`(?r2|Gg}r`PzPHBX9jx# zWvNwQ_#hF&8T&tPnrKj%S#BbT#bi?p<#HHJ7@$^H6+}k1oh%~=<;ohf#TEu{RRnro z!W$?%Nz?^iD2>_a`}bpl5sfj>;9Wdu-sjAUQ?6pIiRUC8Y@KNadM$&u8&kMRvo5de ztYj%$SgpyKsDvVR17V;K`m<2iPG$gQcfqDvGV62aym``Ut)=WEi2I6N>1!{#jWxey zzh0U_AZ)(j1pA(>g?a>TDFiIWV-Eql5j|HYLtfIa*9dfS-k{}hdw=$4U2M`Q9c3&u zu!D`n&4>k_UyNl4K1?}z+aeJ-eN%7kHSKJubtR5C2R5#A{$g*w?DXDuVg_=_B+Du+ zA44P=Z-^YJm~`jG6oi zY}nw1%F!9M>SGOv3Dfe0JB}Yi@7%W@(C>A0u7g7K+88n*<_55$HQ@L+L)Q8`<;)G3 zaNK^gEUP?HE2c-Dq=1~wn3#+AbDl_Y7;ig2>NAv0RBpisRp4l{4QsuA4O1ZJvgSM7 z*I2dIv;tigebF1>Q^IH82K5httj1)6KWu%?B& zNFZaar2-sOyMf1I?5mT2gpI z1X}W+cznl1WTra1H_L^AJIy3J$Q$73gVhjrMYL!!GKZ^3y^ipp$#XtHm9A`|dZuBN zOTZubmtr)Ngd241UzJ72S%QMOY5<}@csz;PN{>yaY|zW#*Ka#{`wV-^Vss)15nU+~ z&x_Gs2m0sqo0LU3)#zHT`XEHVRx-{OywKPKdq6?~tM~#UIf-p6D9`Jl|Mf;<aXv+2*N(584tJdbzzJvaqN+94Fsr8u%K_)04(g|#`OLW zgNu6ZttJ6b#9URl(x3kYZjgpPRZOlBt%u4&Uy>t9jN$XjtlPIWeioI)Mn+M_w3P{6 z)jQq^POvk6+Pzjzt9;NXsg|^{a0RLDALXg#a=ro^ZEb6hyeR=Hvn51;38g{c=1{9} zdr$S>f>BwwpU(t8kISFn?fnzC7+%49BrPj)!4EP8|HjC7Y(+p2t zi%(!3mn)}ovySFoWLssrK9!YeOEzKXX1bI%cS4&>cT-W)cQq>D5F0S|JOZB3gRA`R zy!RSkn_aRh<_?vNEnpR_ihf}%kgx!k29Zq5&YiYMzlS}OwP zlCg}CLkrc}r4~@<0 z*#u9P5dg{iIvLu}etgu{l`^E>c5^dPz#>{W)N)mti`I0@zVv=Rjw>;9Thb7@RV+N7omoZyI)LpYMY^g(Tz98MQy?9;aUG89nsjsk&U_YHT0U+_d5PQt zZ$YF}3U*Gno$wODg$yTAP+n|D1>9my*u>HM$y}b6`lKF1_FEQDnX*y@G=DyEGUf+d zWZPw#npfFyqkr$=BDgsZEm(=zr4hY>MQ~&8!;}wguRnq1#F0pg#+7DK89N(!LpemZ zD+z&$HkA1L#QUQc8ahlDYae_+(hV?jovImT#?{iVc}|QbfiSR0Vd<~+9pa&WH+r;7 zO}7Ij7q}l6f2xfvhGUw*@S%T-;4sdBdV#u?v8kVJC_Rdksw8Szdqr0#r#0cO9mhE}=-5|07(@1bmYJyOcbOTzs zgb)a|uGJLjFWq+HqI!Vk8xUYd^=UW?%5l$-8!$xz>KSAH>q{Sg+gNx^yALb5*(X%1 zvq2k_*jMnFzpkWIuDkNxn6{ubZDUaIpQ77Hc;>?3Ex}nKdf9E#cYs^B5?+!c(2xRV zN<#-tq(F%|KJw6zu!>;GUtf6KRA4^SFM$ag5h;mwT-6i~cl~L+q6hkGFjzGYu^wuS zD9zBwrLSdIG!gMD(XwgunBaZSGQ9!`p4WK^+goPgRU^Le%_c1124%((nPXB;M^-Fo z#vnHcB}TS?Xc6q0F2gd9@4jkGN|Z0SY05i!LPi{bko*3aIN|--l?4`Q&e9k^8oRL0 zbEi$fr2fl_aLHV-0)q|Pz(}~ykZ{&iCJ+*I`sO!9)+jjfWB{UuN~4CU{HUx{A0kGN8w zR_PMr8{QPcECv|-IQhIe-+tctMgKBQL)&z;eS6)KnKHSt&V!c!8no(gsu=etH}r|l z2u7e@bLYq#9pb+_47yUM(VEP%r1N@@$9+q`7`~!fQ8{Y%CI3=pu?lWW3XU-B*e$Nj z;b)L6L_MiyMFu$4u%fPtFnuPt(=rw#9EU3fAI8D+xYq=od>~Rtrl@m$=*eF1QkCo? zB-u(Tj83(9(wF)pCJ5IfrMO1wMhC9mmw#zKjXC-JCLO-;nf2R`uYCPmW$?0DO?>(E z^ux2a32e)qT9qWu?O(ztu*e`2h7FQR-X?M0h}B_xhZ4q_{{|>?ChVi2jExRS1ZwTf zpF2OFY@7ZW^39|dCoR*#?`zpp!-n^!Dk2!GV*GK>S8J!r(ETSo;f9KiOztfYg$zlZ={UZF)nt_DH zAxkqCl2y^tG^@rOH9a3xNM*Dah&AiSB4Ucz<#^mldep#0gF-@^1YsBn-S+Jtyk0ah zjiV|+9*Ke;qKa8p8Ize6@SmhCD}d~X#Fx@RZP=H6-y$&kZ}%6UPJXwyuXUt9M&Vz% z(w4ykcLQ{o6B$B^Sds8h%tFW%PF&9+JKSwr7#udxs0y= z7{x0}$QW*UKODR1I8+mKNh1Ln`KLOK*`J_6!`gz-?P9AYawmPIW}Bb{gFbC8B;yOH z_n5`0z)(o!%eER4)E=Zt{S=HToy>lP8jDF7Ef`xX+~NneZx36B>(D73zA`>#$(!x> zFv#md7=0?tq#m&O>K0)EEd6%i*{9af$<=`hJ@-%KS8LRn5?Jv`$zc3__!G@1uvJ2Or%f7Dv+|RL* z&bHgsM`Xs;a_;Pk(<6RgEC4MhEoscPb`MJ{O@Ra(8l}F9==~c@wL8MKJei%Y5XQxs zH=TfGvwjF&wiJ1$yZASsSW@Zp^(?f(=R+ZW$Dm)>y5=|{vd&|NIMy#3k-#om;7FAuG2)1?y$*+c)zHv0d zt+k!Rr3nF=)41u{k*>{p7yEZ{d7^p443TH#{?FzJJ=@@>Of|*^q5iyqq|*rkiEmaL zPvd$VT^`a+DTO$`D_}1xw&y&{EakC;a>2)dD7%Hp>DKhlDu33m;Y>u{OduLeb$d@t zlmA;KxOm=tGPmpnmRNdj)>$aMibLA}J&_E2{w7u= z;lc=lCf66~+KUrD5tG|e`;Y1eO@irUgtO+Yj!n|EMkml#dhxNSGCQ(0(WJ{2*rL4@ zp;bM$VGt58$p61HblX87$+2i4TpXi#BJvcjxSs1#lu#!QV_r<0y#GE5^F()k15OFH zkmPHi=TUO#4n&KmBkO4Hy)#8P`-A)BY3h*>Pf>&dyVmhwVam-7$?DNIkGR27MFzls z&-#`BhV(-2mMCg~+=EPQL1V7jhkGZRp5Q&~tWALAHzdP=h&=XiR_%PG=<=0pT1S+Y zuP>^)om@b`k$k>O6F??of!6qm-iVR56Bp5;*t3+>L>7>L)c>t8LlQMWCEhgGL`xP7 zW}BmfHI+Z?e5-}8h!r^r=CR_V$<<5I><*9uV;^cEC;;}9NBUj7LC|& z{#ldlNao~3GfMrhwX+-xG99U;n2EJ}Tf)3a!Yp4d{Uno_BECNk%Ku-z&64JinPBad z?S3fPBX&ncI}g|bq)wGdT)-;-n3N^p5#`vwiQtS0 z%`R6rlY&9gmrUV6t%nc0xQiqJATD%;O_9zD|FDiWSu>3!N_X;Jl-@~uxfNZrZ?%mg zXb+bC?whd{&Ar75?2bapwAIrVoas>qt3q(n4<#8EB>B8*K>*6!=6u2g@vg5BDkjnU zaycbor)nS)=X_d7aIrP&Zg7X}TWZ=Od^^hXKDRI#VE`F|*5O*7`zx6X<~_8we+7sU zcrRp=AmwEAu%zs(?}IJ%WhGq=90(X%r~NA=lOr_-cG{!*qg-^>=rs>6lq!h#2`_4~ zN)JW1^uc}s*hY%KU?%s=yOPKUkTvRY8x-P4pLp7c10%T?{Nus9R!-+q=h6aind~1~ ztkYHSP2}Ig6Ap%y{xQ3bT)mF0;8CvQqiYYPKB@$<-sYBXBixWB^(Aw;8@N1{l$=vf zvFqcLsA`+?1O@sp0rf+K`6#`J^T8)3I`&zM<0@$ zhf0nXJCog{uhu#QY_(-HBxiD78;?vw0ibvLZJq^Pk5>La)0fNs7U1KHjqe<`1mn6T zRu$t3;J)e^cwR%~QiB9&oyphQxT;%($Zv*HvErC%<9S03BzUahSJYYEY$UmKl~u;4 z_G}2_U}IO(b31HhXg7f`k!O9oT{lVbm~d?wd<=ouZ59x4B`yojV2W9J~?EG1JqQu4_`Q0INM zabKwyh@63DKqH&n(5YQ;55x1!I};;Q4L1{ypg{)MNeglJ8Ks|NnqRMnBZj0iy1y^NVvWQ@-+lf z+stZFhwYxga|r$6T=x6zyZ_vVb45YNn-U*F!jy0t0tk?G6p=FCa?xzvEpcxk@K~Ch-3eR_=TEbs7deZ zEU>iAqo!8zVLwMu4a+62p}gwnkrEbGC3VI!v9o6+*CCF*FD1R}8XKB8XJa0Vn7?Yj z&=1hp(XT~_31cSi!4o1E;TE_PCDTZmt2nb8Vt$$`C%n-_Vk1Vc|KX%oA<;o0A+ErI)HF=ulw1p##sE%zKg7$CDwBqV zTx*T?$(@l4y?1#?SgmXa&Z6&w89w0^=$0Y0(lnQzc<#DBWS&D>0J?o|FK*l=(l}R2 zuWxffjZwvNPMln)B{8Dj=H=DbsRy+sR*6xpEVogT%R=0@&|>D=)vsbj4Y3#Ppkvgq zO030lWNF#mJMuvxt@^503shrhT1*JHkYjJe=#16k^U}JXz|3R z0v)cSB*{MMl%U=J6~fR=DvE}>+{brI>~#s?=0?Ft-f~(g52AA|v%*OkkOly}zGTuF zbn|5}Ls7%;=-NL%&yanP(VHF&F1>1#9b(|gz495ghhkh7I)^HQ#_ub^1VagFE7BFh zLy@JHsPzSHhrVC-B&H51{w@UUCp5`3k{l}Mo);&)HY+*8#4*bhr+lb(LH#Y>hl5A= zZx^h47Sufl?*uC2mjTDSG#8|}N5@QrKM`lN+oHi2k-kO{M;-rI?dqM6;uS-J(@nOB5L1*z@#{XmPL^MF=ew>DTQ|i%JGy{(OgSrpRq?mM4+Y-a?HRI z4+uTMM)8?4Q5NhlHh>%j=-T7nimLiOd%5u=QTByKpSbRfvk9bKLw|FMC>KUhz96ng zA;0`lje|>v0*E+{l@B8Vg%I z+-jzOYbc)NKj(h;*Bf<#d_cbLjL=_|cy63|| z@VTr&@GorF-cP|7;8gu%5=u-4obct%Xuc0G5`)x$g`iuPl;V{WKV|kPbu_*R-3N@o zF)mSn@BRsQr{>}>=6=@z`eYahja4Fjw*rwRsny58y z1nGAFjx`&xq@us-UeX1XQn?weQl?&eicXx=Q6Vs6Y+taLW}XZ8Dj(J6Ce4C|F`+ag z#xuJe@pzKhh+wYUdCzwDcZXb4e(#9iVST;>_~Z4E@P*=$ULD#y#NbleCNG&g$9L1a zsxf=O+XH6Na$4qfjYZ@@urWq=84nhChxSs^Y}2luy7N;?n%+>ByG?-uP8C1&^$c{R z;@pdl7o`;JlNbHX$>e&c#AXfCK;zA=g>>n*(y#px@?msxoay%NJgM=n)plvleUn7S zK*I{GBbiu0W`giQaU}4?bxS`3ep7pokbNR0^7?=fzwr|&rP^byRxRbP+z z_Sv&2tG|YRgS;_btpvix0(EN{uUeR!NYHve_VPz?sxSBHL%@5DrRB4}60BFI;M1t; z6W~V&{d%6nhuu4Mh zQ?JICFlO+q0(ZB}rKs9?4yECaJ9w!VG+8x8+t-q&!%FZ8B>Ld>Y+*oV#i$JC( znjhBtleD}Xx1~AGFqM7i$AlOg)Eb31_#Eduh=6J??wAddX+>3zA==uyoPXi)AlQe+ zbe!QNF=&M~mSQ9r3wVQ77~|eLdk06ux#T*rdZBF(dfU^FLo>&S{$-4l-?1=PbtI&v zSlXjHrwf7C-NnNrd}8Wq)twI&?<*X6BYEtj$lY7sy^4wIW52>drkW{jf3{{}7!)Cau9Q@O};rqEt{kp*O6qBzd)#DgL7YMoZ6Wr+S+Zs`RsIx%WQt0tJ~61Ub5 zL}43A&>?vbPRL&lXMEQse&i`4%OgeEAL65grc#MwK49~ns~@daoHCvSkx0asC**rs z?CJBRaqVNdbixkv;xO-O?^E1lLdOq0xYyY-jIP>6Z29X00#5SYuVeR(KC%O_dz_6Q zH9srvE$i;nzl5^r`-2tP(5;HB7{g4Au%`(ec$4}K8LbT025~)%O40dv6GedUKsI!a zLU2k@4XX%Srnwd1f!tBge`Q;WjO6+3TXQlUbPTn->Z%R1%m3>2XmO4NMX^R<9bn?! zTYPu!lVa9Cb(#F{-Hy|}duRcPZB_M*F&B{Y43kdE#UGvi|Ib6uhpo5w0+v^V9Mf#9Y(+zfHnA> zd!SO;wl}8p&*OUvA`a2q8~nnzGPUa3tQHo&r}LJS@yZ|U7B{v%xKLn1v5L3;}MiZZhHPN zHU;$wWT+Cfjx@YVnoK|rr%ogffU96jHs0x8njtAF7f7t#*|XuFwhp%sW@Y!y^@#6 ze%f_;4T6K@UL|4NJ!#3+g>`hvLEfqiZ}M>*RD_pWJ?XX|uDp>EF`Rhxf;bKt3Be0L z>^RS%Ddg;`L0DB8j3~052{jR4G}n0@L^XKXb#Gi9?D$waO%jK%yVx`p-klMd5aO{1 zlQ?rw+>v^dY+h7ObKIh+>XIb{-ihBOAM#Z7YeKyDmB$4-pt;Cy0-xuWQ~2W0a`MV0 z=3S)wfNVV?n-UGIQAL1#ZvalRg`ylt4LgL25|#m_c%!Bka;(O`5Vg43J+GngL^eu2Yc?#ps4N~riq%;HUgp+O4Z1-z#c_rZ3aQ7f=J7ZYM4w*) zeJel_h-QQ>@5Gm}-3nibV8eK6ES}w|X!0Uxrkf96x z9O|vwv948@6*t;{4fb1@f5C%#PDy^FQ|hi|$RpBz$Sd|`m-Ap){S%Fu{GR#*T%_C7 z6x`FGPFeR=?ojx+Yrkhe=h3z@rA5o*ae9nXjJ9B1R-)ZONo|y>b!~9Z3h8 zb5UG$!&WQHVltlbzfZbTJ@>s}S{quAi(Pj&B&xxe5%iE!$Wf%+zk>C8@hYj_M$En! zc5;g}7c|-Zd2Tx$dRE0zau!L5Os{gsTPpI)aNVs4RR&PItYpuSyXxr-T#g{)nO4dp z@8!klu)63kQD9P*@DDnIcSjmAe6#r>HD_PlAoX)=)q#0GL=l?9ixvy6#16{%-?n34 zWS3EoJaNbkuD(w)#Z*k zK>0PSGSJFAx`7F4L&Plu?THnIwYG+Phb>ilj+@;r3FJJumKzSI4;NH8D-Zi{ok$JF z-J>V1P_?6@RxEF43HbM(*1_jaSHDxrMpl|ta)C9NbFck`cc^en19d-V7QmwX886=d z@EnFdUEt2AlQ8%oUm|cl1LMb&_1rzl3FLuR+|S8aeevLX`nxLL*wD{?F$1p)D!B<4#TVkYdv3j;?}Qh&xR0HL!#L6dZy zU)$r@%}vezi7hyvF_L+}_O;O1b}a9imTZ306=}#x;;KXbgX<<=8MfwS%R4yaN_&g= zdQUnEZ8(F(tkD6|?-+MX-*fiNTYx2(C?9vi=-7yk?)N;i`wc?S-dK943RaJR1g z!6Bitk1v)2ZG|T&vgl$4>61EW1Pixqa54}>$RqMEr_A2cPnBR=_Dx#EzAq3s99;U# zc>dP|IOFn|>}0y+m?pq4ZD19BA5HHgopZLd)_AMC9IOydVXo1DuoNeS1Pf?K@LU z#(Z-qqaaWcI9%VxtI4L`40g7PEED2ja~Xljp0?iopjlEshe6d=%xoT&IaZ7hX{-!= z7>Lla8WiRzP~zvp8+~+X|Md1i%(-;L2r}dD%SpE-T6bA-ZR_P5e2jjvil?N%q6)5B z=Xgy9$02q4oXo7d+_uyr#585>D=N4yDKzpGxX|gJ?s_n9btKwzV?DLLtt75F{0jSb z4)8fJjq_wWwnn)k0z$sO>S&$6&<7HrE);+(h+`-Q3U?pqw);cuj+eN(uS%yw#mMHc zWe&s>U;)%_x)fqc%-EobZH$yURG;mejRXVIkU&yUN(8~JlCPL8WfUUbhwfeEGq7Dm zlGvcijs)Ik!4NyE>rxA*$O!3$ah0YY+pW`_=>WY)u=JDe>yc+Wyb90y1|b2b>vfDHR6MN(U%zWv z?0QTz-?r9vy=En$jQAgW<9BNjRs5en7Lp0pVCs+6Q3ccfYpjvF21_szHtl~+xKmc& z(ZT53+GIA$wm|`sK+7?wWSpSb;AOhih*Hm~YOgHZ4GR_1<|FC-0uVu$pDjbpw-5&r zQPqtlU2sT!qWC{Ri6g~!K)rT4zXb;8vTIeug9vrk`M-LfrxkHJhd3AZr}g;daA0+h z7*{px5#4El_v>)4)~O?_(BX_{wSZ}@@FGQYY|A6igK6~t_#)0eFsC)Wa}@XT`t0Ms z;QKV8k=)TB!GAgv#0)Ecd|h!CYO8*8gf5)x_e)vGK%ZaHRfv9FB1x!uWUvBhGS@uY z9iXCAE_vvmHv=1}ne6i0=xC8oDI17aiwHw26uztQgQ3A=66&h4jA{x&KF+y!qYGQ< z!hm|;!WBA9fX$glgi*2Zq+eT9Id!EE9LDEpJBG_ec>p;Kj#+~@6GEJl?+ZTO^I&F4 z9gi^Khev_C?=q&#b=N5*Gx!|(C+Dz_x+3p?B7p|IjSbSMqr%y+qgTM)%Ec=B(y_2& zOW)uML)IDheIAL0T7bWA07BXIQ!OcZJ8fU7+`&D{W$Z&3^q5bJY?=kN`kVce@kug9 z@BwW6*E?{s5%CZg$?%EK4i@Cytx|h+`uDvOCM@^Bc$Yv_$OxRCb4+}K!u)myXc<(n zfqGlcWRyye7ktJ1y!n3^2e{mO-u{jX^c0d|A`yOEj8$CXaZtTAksX4qfhRL&f2H%f z4Nbsfv9TUX@A_JE5(*;Fx5-D*0|*&cpX^W5&>$gX^|C}nj@esUyK(lju(IxTnGSmR zRN(fiOW>5(jq8p5tKslt+JL`5&J6d3bXF?<5{s)70a+lbNtjR`lE7~$sx$W zGD_+|C8i99`qhHd+KQ2=@{ZV@p@ox&rU*(rL_WeQ&@YBAr!AQ6=5%xwNKwU%eL|C5 zSDC*(Nt1pL5?THfNaqCCQDHsnJu^aZ+aQj$ij#$*JQ05+9YUHHU@>JTGG2agh@8YM zwxR81#XS%%n9NpS5GW5>6zYK>-1SnZ5|6>?nwZB}Go1k|ML~7Aiph@Iyv$zhLO;HLZpbM^vjn0ioa9 znJvnhTPkY;3t8*)d%$k1n0&(#rIp};AN~#!=Y{YT9=$gm#^zwmGGdwTo}4)DYP%Y8sg~K3=BIWzRXF_o#_gEz0LOXtj(4jGAq-+~u?vPs(RHkf#n?8u(E3T>LKkgFPt^m2lIXU1PcR2E3h^-JyO21F{kD}x z;-~oF(B68(Gr|jHP)x9jCL_>j4S?6$Ui+{&~KsCejv+^w@^VVbDaphX(+H|u^Yty55HWF8GcLY zc{oFFzvYf6D?t&6Fy(U76w0MaN{64*(ZdSmxO>qZ2;l`vy~7L)oknT+>W>%ShECbl zQXoi?A$NE>HG!MY2*tOD@^927DC@_MNfnVTPW3sfc1qthDJaH|lGhJnjG(LT8 zN2EoXLB@)Y?f1_VMxea36dc zN{LI*p4_Kok&?RWlA1^mM>dMglYPGMBjA1w9ob>GVO1Gf28w(u13P}a;GoBs{OL#! z2h$>TQY_vS0^^(gYalsUKqy_jpYabI+q5di5rKPsVPDFEVu^9*fU;8 zppvHIBl~2lr@GONvaJKM?HXvVB*Qr|$j^Be4>>qvK%2NH&I87{u>ApD*#B>lAkyT$ zFUQud1ENE2xXpI=t?A*j$xp{=GreBA-lZN+8upt5A(B{p?rW&f8!{q$d;`94w5g!- zCVV!@B?X)=!f;TaHbG|aZT9Z-^pYZ7>5+_jVv0XnY*c(SoN)S#NW@tPu&eE<@i)+?zpXp) z%5m77a2=Wa87KF_3NN@4U*0t*+_Om_Smz`|IJo62346RoG}Wp=M(v~ZM*r@4zKMVg z<^iI*lo8}az=F0Xa9Szmyqy51y%r&u-(y-V!J;4M&^4wl3Rrr}w`}C&nhR9Vfd5FS zA&7rEg+4rHybsYtO>rEu2U#9#CUe9>V~OCfjJ_AV*vofPENl9n?DuEEJ-5)L=QFCE z_-lw_XQ-#3GqU2S84Jr&#u!}ay{0?JgY+b^JW6om7KKL)hS^oVJ}vPSWaTJTKXi;D zR}4ymczC*uXKsW`2|0#dPuSs-gGgaJq;&)M-{7NOOC zG_;q0MTN10k32^(nfM7g%Av6E-zcE_8InlTi?gw%o9_E7@e+z}mSI=@Yd9y?o+sr&mV2XhcEmzjb*%@Ql z=8C!7A+n=`pl2$ZzB*piVwt)2zq1(ZD7aSH`dl&t9D@+DX8pRdCFltSwo1nxZMd@h ztv^nS_@yS(Abd<15yHeo#06zr zoaYJ<(B`%<<*Ro>gJm~;uMeXk0MSJBqb1R)y_YTufXnPyxB4^Sx2>_`^thKMI&aO_ z^hfo)Et-k%`?czUeaWvyFU&6=fBBZ|eQ6XAm@|?iDRXRy-;}`8Fmw#y{#|w-6#G-~ zcJ~OV-`nYX_bdM}I{IDw!Fwlo)I0AR@VfyhzrB3NeepZ$DtfPd&3)^g`Qi7R`1rj6 z-uaLDNBqtJOaK5NZTIe#{{^u6d*KWC$^I?+rTCru;NP{&XIQp-&f5Wu`b`4h|BZt@ znEMy&$-n8<^84}o1yKLEdnNed69P#6ZvDP}&3(y#>-7O#^d13Mex*N8AELjIKW4uK z&w4k24<8^u!QUnT>gPY%<9A;lz!mV&cMGTiqyUD_-M%3|=e_~Cdjfhhesz9*-}fI0 zfHZ*9kJ%UEFTo{0;1?5M4bTLHeFHxGe*Lcb2KqApHKV?m0At^00KhN5Kf#mV!xxZW z4PfNA?d|A%?j7=F?wvn}|EBls3;0LxVQ80q3Sb0){vbQ`JJpl@wfgr+yBGd_z?)zF z2QDD)hrz$M4$uRDT&_FQ3-XixW%wTZM!f6m)N=(C0a||Z-t4CPlK(ANDnJon^xZbj zaNIWw829t|83q7rL|K0}_7kewBX!Z~r#*h41Fyh#Y_{K>iJI$8aP5 zJ@?Yrwbus-(d*|g{Mq>h05<9BjBI9Sdt%zSxn9|}udmj(oSOc>uJf=u-|5{Po4ECK z#9u$e0a?JbUG{MRe-b|((OXY_IjS$e$5ChT&Uhlfe7K$@kP^Ht~1*?Q{ ztr0i`Sn^V<8C@t1HsF!zkiBUm(DWy&;~S>z0cXh-VaycE3EjD-aLag%B%~>4m@#mf#sG_=T^_1*_EF>R{*z-6E>sK=X zLP-54nHO+g-b4gW2V*xRK9oI8n`WrH(htxs?`%=ZNA+#xC>S@-cy4OCh2_cEVu2}| z0bBq%TeSydInvL0l_M+s%`T-d(cE8OEN}j<`T#5`5&ttDu({e?|92$yd?!t_?!Fp# zyy%+Fnh99>c!YZ3TsBHT3E6#bcWqkrYCNV5l$8kCt~Up5LtfO}6%To7h8H{e^~<016Wn2yhAqQZ zS=r7WnvDN2Ly$*vbCVZAnmhaFCkyL#OR#wsNRqjVTmA0-T(vx7{w=1HM-C!$l67=p zdB}_SWQcKBtG9=fHCpNt@iT>TkfNT7KAKCH$NnZfQCwstN{+=Uf9vW>;kg=h5G1br zFT8LLbGW47Jg(7k)q>h@lPwDYx~V7FetUawmeg*Or`2a;i#9!Mmy_|w0wToH{!ej} z$chp4p~%v>Is%E?dPhYD(>AYRl2Ia-g#yJC=|>4-maVJHwU)lgo~*4E^#?Y|B|?a; zZ#)W67mzF{bW_D;^m;Q zG?ZecKWsiiv)G1e=ecMr{C-$^ON9{09G3nT)VD&BY=V+;DZzPUcU5v7v&}&3RuII# zxjG^`-p3gOVybAx1rt#5nRMq$G@)aOy)Lr_B( zDaBVVEYLWacjRik{b z{N?V{Q&FgWXi#nx_U?#vM}x2x*lD_eExv72hi_Q0KX`E9D?vk_x^Z-ZPc%UB-w8BH z&GMXD^L4WnPLjNnT25q!An{Dc3CH&NgfdC0eUQNIZ*giO{!`o*s(u(FITeFV>z*aw z-!{po_5KOM*&e?j!JqKr5}*;HYgBIalmv$D+%qTp?PgUoNA7pfOj$jCxNt<>@M@&2q<;m0VxaZA*P z!!TzH$Mivy%eLzI@$7Yub-nSs^GSJY3?i%^u1blj3_wtIRN$cwFio&lN>I=fIqFdM zQst_fV@9wh6Pcs!H&u2cy^X(!oM@T(UObT7k+k@O&6K(HZk+5jrYlM98Z53NK#Kos z(xFQjweZ0)JFn2C`%U&8W%;MBpp+J)OjHF6UHUD^yAgq*sF42#o$!o=Q^L$%G)o(l z5)S^Q(=X4N@~TO}N1sLY`&;h-@*-JecLsNvCt1!(c%!Mx_l~=9AzMJ>ulR#zd7W$m z&R!UENUd3gWA8T);v9~Jmw*RcoceWnACC?rJ zz67NWorBcJBV*K&h{y(N`f_rx(;#A8-N=3I7+GOOR972u@Tala6Mye5CG}zdI?zn2 zEkMtEALSy@wlAq6d4(XeyLDH1Xy9bEWdAv2uX(EaMMuMqxuaH7-9M(yq}c$b7JDP4b<*zrtHLn4jJVa`grC8v~%(R;<=I2&SFh(8dAu+Pj-K7o&gLpGV= zh|#AOa@q}06-?BYMqOBjwXpw!4bYL6b^x*=BgW3-gvqMlLy+Txg*w^;U$fm%5$~pU z{ip&B>__`^gc=DZSmfR$eT8wT{HteJ^%Z%i&i@6y^B58Jy7_QTAll6h8xWVy1nw;d zMMc=`b7LPUK>7qR`_vp~bus0^gP&4L)bA@XcFilyJ)L4;yycXdO0XxT0?Bm=K9=Vc zr3sp%)mJ`+fw;-InsHzELmrhcT^kKx9)j^?C0WMqujcNIh4(z%K({W8F*9M^QNF8X zdpEY3_ZxX_f86S)fl9`@z9TXAlST5H{f(09olkGG4*k)|oiA>)_Cxs0O&FdV|7BGQ zsqL72S)Sv87FVY`nrBt@8;J+BXe#CM60aryUbajOC=)@|-Qdy@3l6)xi0_jV+M$;B zN*}|=;>)GkF{T)a&M*&0L*NM3BG#l;gasF%;eNzHO{)JGB2(+?b+!C}fdmu;?$MA{ zSiE{*CwGiAdWF5N9cipU_=}5d)$;C6Dz+5U@cYS7hNYTU-kIA)eD|bDPxw>KK;~JU z3al6wwDP4^+3tn(N*4QnDAgeDwrXHND@XZ9bUf?HiFF_QF52O{^Dz685^D3rrME*F zg0O_mH|qvi%eB;>`o(#s$v5ns*ANk+@4BW5Aib2t3Tv?7>=bs&G)KBpJ( zdb#0oIpAlgtXuEBzWNa3qhV!HvUFOs#F_95dcmpQIBC+o(^v{MG!*?e{K;05ob>^) zIYC7}$sNI1&uc%>#l*$KunGJ4@a@hi-2Vr*0X;Bs{^=TPbd^IY^9!BKO4N$p#!3-iwNceUFl0Qi*Tn5%b90^O%L4Qt2 zE?*b;f82}}^Ad5Y-rC~uH&|OKo|y5K5dztR94_8Ih5;xY%8iWorL%3xT zl}^6jfxDo`e6AsgspxPju4qEf-jL<%^ObF7aSLV(3i}1w7Yo=b{@7%fC`?1G`?Nj< zqJ8aih|0tMo|}T--)0W5RGtIW>pgp}ZjUViIYVvbi=Z>@ZbQZsq?j;flC-2Cu7&4e)gZ%o%P2jf82 zKt&?nRFxz;uVZxg|2_{9vN!9@Rtg>D!S@XSXG8w~?Ean*3!CWmtQi5;9&TM-uKvbZ zj9WUL9SO}}{#Oythpy|+?TI=RmO1UPeI}IV`7-Z6Y~bN_r^I-iG0Hc~0Rq;(NFg8$ zIXh$^p{HqW5}oRPN3Q8flgpVE8i{%ncrV(lRRWsD&q1RJ_kT${FvBxpB)7(OZ6fNMQ(RcIwmkKeftZ+V*czO2 zk$WQJx00qwpO>g-{)(DIf;kt~Xsq8KOe>cYlNgsc&nD#@?wZK1^i4-2 zjWo364@4Q_YZUubSn*d_-h(P~9;t&8%q0{&!xAcB53J9cq=I77KtPA_{G_!X0NcWY zbR>8X(%1$9J?qUc6)hD(VNhGi-kncoOgXccGrQewt#wbP(^|*61A2ToCeY&ycFr^I%+>H-qG_RgS7!PDOYKMO(!oqP@M*WtT!nOkrW9Sv+>TjJqui zWNns~!J7bm^=IPcXuJX@k(@{K1ZBHxW^m&*7H|kn6b@cYci`b@aL0LMq0H^G6w@dM z@tJqXY!PMW>aX_V5pnCqasEI0drs(Hg}m4BX{%UGUgDhzLsan_lE7)!$KT~{Gtu-d zkFC1+q@sN*cuuR`H$V-VZVn31`e3iuTs)M_>+UsYIUTb>H>uAJb1LDHcFz{0)}NIl zX|!PBuKsZGx#DMyMeM>4Vk9PY-9=z$^ZE?yurl0tLe6{wOnR?N#~XwN~h^w($OLt8gV(VC(EBG^WXgIiyz zSEHlD6AT2hdpGheJk7yXI?zCheT;1YqrLlmd(vrco6bm)S5sC0*|zyAO&MDtSdQ5! znXdULt16F0Zxja`PqQEa29{b-|47_Syo%yl7qIgtrIr1c$R%S}?*USzSV&)vLS5TZ zT>oY@cT#VQZY6Ck0V);T;iu|B?DM*K*cAZvgtv$Z(KXi=V}df$(r*ztl`IP>J{O}y zd{IJJp(l3mvzoZ&_oauAaapuNR|rW>vcfef18f(Cs{pgt3l_*3z~a+-RRP@`D~IU2 zwESvg0V~#^FWuU)1KfhrX(!X`#$BYd@{|6`QQ&}>PZ(5I9~~-aEZ6V^8a=bNQ&MMN z<*|8e0K4~hvc?ud;gz+X|IhVHc!f6(&Z148t6D-0maoL}n2hNO?_9w=T^Eul*GRA`&0UwR-EyWCs*Uyh zb_kGpMg=hLU;hdF~p@VsOMAfBta7YG%<4WQP`&XU1lGDHlEO zYH474mh>6tf9y$B`_7lu5BwKIfJ1HI=7e5qwIm1K^| zDefe|R^}7ox6^=FX(H*@=i`4Me<;a`G|qtz>gCF?L0U22;X_32xoy!CuirW8)5(V> zmf(-!*8NqX-?0s~weOs=+P~OBCO_rKxFzwQUJSBV#6={!5@&vtb4$A!q3)!T5vPXO z#S*@MU1p3Bi!yQ(vK!KAOy>BcAzJll2rzQGIlAojSz_VCqqt0fcTbovL zj979-MGssy_@{(tPl2Z&oUPszr1V70E!R#BEBWur>`B%SR1zx2a3RARHz#swt6~LX z9y?m$p)ye?5?)n?f*ghk^$y~sEs|t1A4_ngQAUqjJH)`T)4NM78;@Zf{<{sIyA(qQ zlwf;-M>&(8h@L-p0|x(}&;#jiJpOSA?}qMmselk6#%({3#%WkhEa0iea`f)`r;xnQ z(!5F*j~u@nZn-NsuFCc;b}*|_*XqlX-CRq``ry%R{>jU{j^6@-+tFsbATL=7W5TbL zkU^dTucMnTboXmoIST!L0)m1Sk{PnfG@B+w5z|u>xmRhAi6A!R1_T8w1$M8Je$$pV zqgjT^OPt2{tHMom;aHWXZf=_EZ}*0h1e!7diN_Sz>t@Kk;dw|H9GVtSvUH>W6=+-i9^>;S0@;ElWiE6Hc4HTdoi zW~?`qP6(tS8zRr(C;luVpJ{`JcXAYL=MiNsFo-c-oD zaDmcGy~TABJr*R8aH?6-mCYe}NQViftlWPxtnJw?4*K^|6SV2Q-K=iI{JAE^&1J^r zjh*yfekGO<7*ohY@?np#TsEpa+L{kzz=n8x8*>BV2FX+I;9lsj8i>rG8sf9O8_=2g z1ckDUCt+mK33}#NOTcair#QCDCKVk2$%0U^y*^u0w_*I;>yk<~91Oj+F&24^C>yZN z!(Yl)ig5<*u3zCfPB%+3v)0wixceq_ITj|hb^i};K#{-DzS2(Bk~Yn9?P?_6BMwt% z1cZ#SdK-7Q4)SnF3rWY~Yn!|nNKLBKQ;nQAALDaRc{>qKz4#j1p_NxKWATv9t$5hz-F|Oh~ zgmVe83!;}0KZ$si3)-Ulp8aK6rq_A8fNC2|<+E0d*l1A?>YjgrD?Z!Js!CjS(aaJp zzyEb%@W=5C?V%uc9X z86L_suQ@}$khr!cAX7g4GQ1G%^c1Jg`ZB7e!_a_0(f>L)WW@&Ug5sFnvDOO3;~77G zv1vrN*d5eET#0PWqugm51_k9g1_g-cUCO|NChKKL89i z=-Va>%SB`Fp_QwYs>C|um;M9m+tlkA>$I@qCPu#qQ(50=+FN=5sPE`Kf%k`#o?b-j z$f8hMdmTJyQ8j*B1(lo(^3xkhyfw+M{#jwZJSZvQTSLoDPm0< zzlAs-gEMXt*1Sjkj|(q&JrG}u@H+6S6W!^u5q0m0_-7s3)XTJh8}usNzSRet3QkHn zGQhPdGLX@5x^)xa+*a5dN`6c-jKcAe=kAz0xL2=m$NQF=yrZpoeuC!yR8=|TzbzU# zmJ=-eG@O5xuI+yR(Uf2Tv_k6r*>>Oww)@4%iGT$ixvjFaP(t<1Po6Wo@E}roRvhL` z5~^69+i0rAVBdLu*bQ+ZC)pC}2-`V;0)og^L~RW}Mj~Z;{cW+da>5N83v@uaieYlq z_o_+5CmY`N*ne?mTITuH_hUi+4zDN>Dk@K(3lM8y*IDgS=EEJ-!f)Asw|+kD0Nk1GKjSLZXRD7MiZIHMafqd=e?Qqi_~0dVjJ*WIoZuNxLO%&yB?0X`QP`#JcSc%1 z{Gjl%Gri9`?T7E=ErIJo5ubEy4T%$eWROYF7A&JiuDS)uT^+{+0OAYhtu;@8gN24$6o*v*f5gZ{S%xEK65Ew-dNu!oC z^i~!)m_*{aw(Z0J8?_=$)AJWr_)m1h{<@O3B(u0c64IqXBC&7y5C&?)+X~2@M~pF+MHZH`v(sw4Qg{G_`6& zq`FGP;XkLw+6+o7Vlm)GJv$zeMrfqp$XR$TCEdTKTcNpv3Ypv0E1sY>HNhrzBAe#7 z7D%!-l>rzz`4UTxp=oR@3jvRV;K87T*GMPolLdu#2#jq;AN;lUY?`bMkiCR~1H~d+ zTw5flL7Gjlgb|q9|_nw`538t*p5CU^Y8}%XyVB8QL>BcgnGa( z+PbX<$%a)w(Bnh?*@pjTQF`B6Fre*y*_WpS7D&_r9q=)q{>KKET63f{Q@<8ryumFB zd}AXiZm(sFitYKdn8tI9Vuolx-&VW@{}=f8}d%idXxO@?h z2aVt2y$Inj+QT1tWe^8j+FBG@0%uCjz6Q0p7GxV+1o+Ox1x-wQf%*GpDa$ z_UC&Bd}cjUu8>kedB^j}vqvlwnl|Z?Yy&Mz5ZhwrV5T#MV)_5v!=fGidS`}SZuX(r zA8Vmo=k~77z$gY$$Tq2I9f{wX&bNvZ!>-33dx7ID&V51ny1)aJ^DR7rJ7z`>$jgrE zezgDzC6<<1@dS_Y;U>Uo;@hB9W4nQee@_eUw)~XKWJR%4wPBhl)b6BJ3dMJ zUCtv)L!4Vi>zGV8C+E+upyPH&b4Pomi^&2Wwu2&N?#{$6htRsx{Q&#{urq98!W;L) z0}tZh=|ZpAgb7)P$vHH`Qlcslsi=;n#7ee!AjWb)+>;y|e`LLXY^d%1XiR_?y{oC!j?|rIS zhJJt!RC-sd0ef!Dii>1DzB4X>Y^dogyw`*2|`;9&(eDTpr3a`vE)^I9<4SmR^FOWOGv?${H9az1{ndJZWqN$evC3w>-;1=O@IbeM1H6f& z=##Z45zP_ACBW@+N$cR@X~cI+NwypBZ`!hAGlkfyfa$jMy&qPU}KxEYi^UIdPxFMZIH`vSgqcJooS zJ$NTK#OUj4?CaLOwX=`$^HDVf_*rq$MC~2c#W!m}+(obsVpCq&R1h}id%xsL?fYhs z^>lfX^F*khjtv@CE2KnK1~Yn1+HmqJlA$%szg^TV38*LcEX3?xY?MX6dt;5Ei)^bF zn1o9Yddtj0DG0CsObG48BuFeFie8_Q#CQ_@$c)CZeexV|%t?9>6SHa6CpIo;(4h(X zI~QO+EQ^WQmCDK5{$;t9EK(YW7%^wC$b$Lz7T*Qh0*;rvf6}t`Q4MJO6KVnV<*-zC zj7BTQ1OJk=)6LZg7C9tD9QCSeB8(t`R605>NhGj8P*ZmQ2WZv&kvmN;!uqR*FCKk9 z4X|MPX1jiL$);{0Yhi|H7H zoa?htOu{R=2!AvW7|KZ_MC-GM@P*dsF$Lir;pG?pr z*|qFoi>0;?Tk~t!+jFJ|O))g+Wa)$$9nh9;r&bv?$0|V$_ z24MgI{``xu00000000000000000000000000000005`JjKdiy4?wKv0W0m4p(} zr*iwST8@s#5dDxq%TDGrc(}T(w^uqdcBZc2AQ4vgr5=le4JwYxm~Q{s7+TN50OCX} z+SM~vWHMJ5o#3Ne8;hffUC_wU4zo9T;!bq(W^W_5A(%f;-<>R&KBJh+naa6j$MlogiS6AzT44vPw z4~ifT+vw2D$o|1K+4cD~So*H*kwg!&QYi?|YZD>Q22$xr)^$fzuBhFg(> z``y>%J8D&Seb4YQAGQm9zNF6HS>Yy;st$y0=a0@eHp2`mff)d8nqlQ%Iles|GOkna z#LGJ`QS%mkSh3KvUi`9*;~bAYH#IfP#>bBc1;p>}k>-B2HXKXZ2lu-=t$<-i24)%XZPuXl8_Z(^7jBwA)nU_-4C zj1rhRKumi=(5M;NeTDNrY9oNfZI-W`>~a?oru+;XMN@L3cE*c`W2s&O)9UmYE7x@0 z+;$Z&0>eyg@(;SI0oC+x>$>$D)dh;eagSu1nuyc6s*_b_-y{5- zuXoR@+ol9K-v5&P!}_?d3V1CI;bl(q@eV{zs4`RwV)z2oOzVPWhFsdZ$r>ekn$&<_ zCr*beZ90s|_igp_syDa~nD%4olsnQsP{a}Lt=`#J%o-pp2C!f+HayklFt_w%KbKyrB>XF?;s&bs^c5Db(R$Q?JQT4={2)90&W-s zm#G*k0bTPmOolPBFe1#gv?6$DsnfdYippR}Q6lSHKFg_PQq6OKLj=Q^3 zp!T7hAG>iE;`(u>k>y#Vh=v0l5b{A|9{T*z*BKpfoxw6ug`=6|l&7SN%PJNGgO5}Sk&}ckXs`%frEQa4!huG$hTVZ z1Q<4zhG-3hk5e0Bv(jCUS=@eYSvnu+N-}_Yxq$2#{T5q@NmP>Yz5EeKi=|&!soov; z8=D`I7{EMDL*@A1=o6P!9qg*Wss`^B@yv1+013Bv!OFh{9#x}Uv zxiwil58VOjUO9ON7phFb29bcB%SqF9b#(Q{e>kMP56Mj+MhbsP4nNU)_KyCFNVk<;HI0#)| z)+BJ5aT8a0O7^bTDiiOF2mX%z!U1&PvGPIlpD7n>pAu=F~+ULni2R_kw z|Hhe8{VhZcw@o?Ut&ZML0e&n3Ky;T|>Q_@uvc7F}tiWXTe}!%yWXl1Tc&llsVW$7C z-Z`SOsc#tK0SYwHn+CTc?b@wpyju!yiAyRbA5({HaeXaHOkjuAYD zKSn4&qpYKBCJl*Ucw7PkKc`}lu|P0*Zm{s%QCQ~>bU6;_s~+55?M^}t4jc(CkIGT- zjiTMDtVTv;ii@EeeP@^d#yL%y9Rbq`)e|R%;~5-Vz9%Z%F}b7W9RzLvMTc`zvWfH7 zO~zJ9x1~dVZIZfm&%aqz8D^cv!KltNzm~EVLAytS@+&)J~n4tIdAqK=R z@@*3-F*oo2?u+^cyzO8Tl*k3pZ} z)+Y0vT9kTJ;_7p=p$U-a<3#$MC223Pdn1ml97k3&9Oy3i{lh)-D&eY3yEKM;5Lb8( zXaH{Ci_pT@+3pOV0M)TKDFzuX)PYGJwktlRgu*^oDwZ5BNj$O&iXC z3m|Vm&NsuG8*sV2u!dFV%G}XNr=?WNM@}4b9Co?`ocl3v_o$oL+k-bX zxQbR7Yr}ws-AK2Hykz?^#n};UBr8CNfp_ACp1&T{zu5SxoyO6q=}5extUTB(7)f&C z)gF%xT;Xf*58yx2|GSfxYTYp|GV5vR7e%dDhQXs_Ietx9f3W4ci4!gsJ;lt!Y`sKD zj!7V_jwJqRMYr-q0rCS{FqE(+!<*8BUh10*+Vju0wL5b=*>!c?hOu^ zQlznbgyIY=0ts2ifmTf$;8{t?(rx?eDPUkN?w?rjuipj*KmDvW_?bM^3W1O2g%IVAsu}}r@k6e(;Uc@q z|4NTRov9!yPj|OyBbAQ9L^Rpw3!LQWS#i^7N-JvP0wB^RQFZd2r=_wal^EI?+yRew zU1Ay!Eygqd`0Y@-?rts^Dw2mX0{vaitA}7y>IdGR-~d?dZbs{E^6y?Muefbkbw1@q zAYM8adg;5wfhGV8cq4}d1^Wl_O)!0rgOV148dI{>P1Q5bNEK5Hdicb3g~sfxX^PXJ zC@Zo5-f821f(<}4psHEwHHaI00000000_;St_(eJ%9r=jqEi-d*}%k0*yW~@~2#6 zIAPR5vlJaKJGwJY;688(S-|3Y=W5~^e5}8gtw}-=NIDqxD#S8-2Rijld|?Ze}K*Ww(4h|M>Srq%q5U}i#kI58}Er`u>b zw^};&V32^A$$d!vo-M;os%a$e3x(giFngoe*n*Q;J{-o?Jn!(v*1Tf1rnh`lwA{VeUwR&8{G;RXAhloZnq-ttrc@@*^#LseP`T zIqJfVDU#J%%mL=4(V>94!{)AVpW=+H#lFt|fE;CK|Et=Zl;2HvAyhk4_41Nf!#x$( z*;6*BzvujZmMR^4bIos>^C5hR5PN#O%z$MBPs)Ow+jK;=*A~A!^P45UI~f)mQXPZd zx}wejMf*)dXNk_f7MXoAG`91$u~SCs_WSrNP6F7j6R)LwwltZvWI{A!HTb`{Jay2_xbrHHO`-Ckyui?!uxp0clNk5JZY!<^8%y#6VgM)pCDwCSu72wIEd)PhwJ8f;NX@qDh>i3+u7+CXN9#On?!1yhqYE$-9v#)ydYhg|0I0T5sLH z-Fk*0-HwNdnv*vAVU+lTS#USg)Dp;`q}5(ku;g~|8pmJ5;Adu3(nI_eyc}k+NDbi1 z7;s>}one*^)8hPFDC(A!-Iin4PL#`pcV@#RAlXZ&=)Jstqy#?-)6s z!Y(l_oEDSgtZhPc%xG|@Ep=W*3c8z7ANNGa-yW5B%0 zm&D3}=O^h?)GO@D#%3eUS`7XWSVpVg>@A;hmBIS8HU>9j!Ekl&#@S1&&dIE_vyO_K zsfn22omwP4)(H6PbRS)C`z|BxXSdGe#X==&dgI0tGLLCk`?m|Af6)}aoH(Yazc_X9R;igkzof2B|)URO$N`loL z7uHJ-`5`s!q5(QxU}T-o~&{8#3ZI6iJYl z-t7l=QNap6JXCPuwIBqh6C9gfla-s!AVHIz((WQ1=*B%8A~Qigt7uzwwy->V2(;~G zf7?w#u6P))WUTe0X7TP{NEbcj&9(lfsLxlsIS(rCDY4uqBgiILd8r$tvmFM>P$B6)H-PdTX1-A z!+Tp`WMNa%;~u5J!jX^-{r!}|k`xsK4~s8D7x_YE4~4W1>zsW(pBEFF!cDo+*PVHG zqZ}F_Bmbrt*~LZHD;%K{dewU*xmN^bewzTxuwPi^h3k1eia|8QleiABp4cIgOYdje zGMPp7%iwD%Ex|c8Lu8GO|60nLFHZ^}SaJ=luWqy1wWNt@fSQ2cRr&a}nqAEO zEsDQ}RwmoAPP*YKs>|KGOGe+pdf&(fD@E;b;|75%`oLuARL^u@N!bLiO?`Ctm@ zxQhBn(7C@jHtQsK74@3k$|!c>5oO7Xgz*Fp-=Ph8IK~QoPq*ES2!yqyB%cJ+0L`CA zWnf;% z%mRG7Fn0y*4lu&=#9opLldlxS1$I}2@6(^ko5of@y=N#gr2heV7jB$PZW6SM3BR!) z@n~9JFoC=l@vE4XCC!u}59JZ>Rd6|;YN+k9|Go7YfoPKh2}=hp4gamxiTYjH;zVdB z^PbL~IFWTC9x0y+PG*XhFYzrOqU6n=o0X4;3MpFl=j!3bv!L;Ha&2MqSD+LJb~$6dQc9O(7HhD^}A z^UksAWhIy;Oa=3HhrTqy|8u)f#4l)XCrtA7&9LHSO89_@c?6 zPpOT^CC4a|M&aHFgfwep79tUp1H$wj4xJp@VCzmC`(2Z zz{P>g<@9~CzjW9m{|r0*s)E7#Sx_arCNHX#jLZgKfLxX}01ObTmc`@maW@^Q9EexJ z`z8#JhXl1YW-rK@n`birIE&V+&?#RFC-hb>&3j6B3hhiNpi<5 z$7#Xa%?au!O7q_{#h4m_SO0J`rq;M1od=JkoY$x)9b8M-U+|)kIPX0p?oc*;F;6sM z8RJYFU~@!CyE6(o3S0Xw&<+yk!M?ByQXAuC5toI%5M<0|yqjA$Up6T4?It!JzsBAB zH#`MCt4i2qO8z@RsJ9*2k-|_?4v*p&Tqd*_m=a{NyG``!iN6$w@6dzE^~N-(HRvSs z@=dH1VNPZkj(a4N8lpjZo6nPjiWu8}JyYi#D}Eh$q%b6&{yJcBQ!)vE1*T%TGHXD( zX9_P4A096ATi{M&yO1lL z9o@&l$s(#+1n`KmE{T*()8a-0E3I; zt+%;B60}0@cI>yOI|Ud_z-EAsb`q z-_qI`bSMpIQ>p&1k)F7JXk?Bq=}g_Yw57_b+%9DzVh^>Mu^ty098b8MyPFIACCtp?2HLXL0;F`U!GY(AocC^tXj;q|iV z)O;{|t#;g@KfRu;4*+684UL`xAJr%GW3?|FK=4xwIwbEi@sDhRPjbrwCuEKjZ%dCuZ(ZcDBmaPCg9% zTY+9y9jDiuOtm0;;AMUCR@VF~;JxMIRf%xFq(`~41IBW5H%fP5RL0nkSz+KOKAgD!INt$LV(@q+f!-U@uI6>k?0De z8&Ya^hT*B`BRG~Z!mt~;)QcVEH9h%3F+Gp-@V*3vH~>!0lfNH;M&L)6<H*n;B5_;jHTzBXk5GKWlDmx1h!&Md>%yUjLKq+?jNHZejqk9A&(fonDe7NeJVKxx zbpY(;=N6or*rNTE4#bR%g0E-Fso8dxOpnWDVt^h`ujS_(#f!Ugm6oOY_krnzWD3_f z7^mjZ>>Z(H9yUS3XYYFUTY!%5sNg+?m7oDCUfV zTFi~DTo1%U$c>sD72e%Ppj`FMA+1!Zh47duGyGES{{B-|n+T$NJW3mx0QgpsaTmG? z;Tr}b)$#ii+;J3=K5Z{@JS}`{NQ0haIMssrB#Rt(%xGplXg7dDXcQ z0%jU*YJe0%%XQM>-Nw%|^mruPO>E40qmi$ZK4fzrkAP%*bxj~-m$!k`q(I&r=Tm*v zKyBH0tT&6Xbi{*&s9JPDmXV8aUXiKm=O&%@`degn3}Y4XW7K?a;e2wgHr1|XQUCjh z_U@=)z~n<06RFGYr6iHN6}SD~Ymut+&+VtW>NTwg_wl?cGGo_$T+kduclwUq;@mYm z89A&};J^8{1_n1HW!0!QXC{Tq#wL2wVpOGl`J+8fM(jOc=>BAZvaN*8m*RUEq}Q z=M?uq{OP{nb|2J_rilt{zNY@fkK);5G7&m=T%?@+s!VQ+ z3!m(mmu!~%=E_zA&-$ef2G^}qb#VI|F`MlFSriRR%G#c{a7DT$6`c};9KV#}dV0if*Ubn=JhfC5*_ovebih(qzRlPy6+ zTT1f7^iuFW``+Qgh@xga&5OAXO%{gnyqNU(zO0(A^JFD!RI=aV>MKpoLJ4mVYn?k} zzdijGY#XPoEI)$FO9cxPD}G}ua}80&pPo$!=ua+5XD^GhrLHW9V#t3x)C5BA!XvjS zf=?3%N$Z-RMW03supK7(cfr5x)}n21JaJ=hi8K;Y`!pprm$zn53Uz7g8mfs`_>K;{ z{_vb+GGN(+@9t^FBn*+U3wPSYsIJ2y_EzNwZ7ju1L=bAo$ihZh9Ul5hi+HG9Q!2Qw z3-cMVd=|~eCE0SGUKBSI=Ch1jG_nB*i06|2gu{LR9U8jTrBM`VQ=#QO2|^RdoQF77 z;At&@Kt;_?_qgnH@=8^bwiV>p6zl*5IS4()J5cGCGFQXWqa50nxZLVP38hDFDZIDt-K zVOFt@d5lL|8S69YSqa?guSMVs+hxSdnE?~_Dzh-|N8VY(99OglM;c_hmL#?M3POU@ zeOm4@$CT?PI*6`xO!me0wOU2N%qx&@C}L($*W?_iY1>H4+uyIp#|>%>=R(5M&k4i@66#GGq66)lo%!uk_OP zH><_VU)h;oab38KG5K)fh3OODtnLJa9qpVvsc4bZM@bbym>0Mmw%as^OUffz8EnGE z^kx!~dD8fd$gNj_QGDRoKq_Ltpr21!PpLO|fY*tZ!4NX0ptArmP@<@-@3BPTdD>ug zKXpBzC%5Sa()pqe+(dLu=_~Xz`Z$L>Y|qu#JWKi{N!myRvS`%$X_6OT0+vow7AxR7 z236wR8ikAHO^nHYwIptgF{aHqWn8tH4XNs@TGTIB>5&VV;uV7Z^rlaMW}ke49gJHx z$G|5_1v)z1OTA(B2D0N&AKxwy2QnNp=cJVsKBzbGH#4QE*G)fwbMXZJ!)hu(@qKM5?poAs-4Q z>rrH8+q*bL6i4--v-rzgc0u=hH5wwjdimOJij&tQ zAJ0h;OZ)V8Ze=WOEG=pD!Q~G9z7Pegs*9;|GRAkgIq50Z%>Tsq2P(_(h^_TYJx? zU8LANtONQCKDl3u=2gwA8o0YynRtiWpwpZtx%6<%l zNLerBZpmL=4|v6PHnj|@bGW-H7rvPbxBQxl6%N&cXU%|ef@3>dvU!$^(}51H{c5sM z4#e}g6kK(Rzkp(bfh={|2}N!cy0*7-DZ9FWj6$VPb?E>ok%U8|Rb^Bc^Mi18m`+Tb1sG zW{OJ{vm-Re&pd`or?!`^Xv)-2DbX9Tj1_3?>msrU8+>flYPD@UNP?#3)xGR-g&F5q z5^5Ef3{`Z2S~nF-zkb95y0Z`2T5I{VuD z@>Jb=Z-n*&X+?XpR&(Eqnm1JXlKwY*<6Gc2>};Ge58n0BC(}))c{|tD0>-VBz-SNR zidzCG8*zTDmt!*Jfwf{a#F~porTnA@TE7pM!AhlKn5?r4fz5ZmLykDYu1V5Moqbqq zOou`<85wL)u}_%FAo2);WMw+y^$9uDJq(QCxgw9a#8dzP08*(Q0>$bX45>4cecw#| z?5Tc=k>D(QXx&M)2l|_g+?(@Xb<(v!yb4w$dT2yOKOpMHv*KFcu~tnsg@l-~s0$LCVdvt0&Ok7&l|E zvdZCq*+98^n%0_aeK2_&1vyh=sw*-6MD%+Qza>0t#>lL2HM$$}XsVWsg&R5PZHvb$ z3!Q_1W;%k|tY0+dFILD7qQiz^{RBj-=|b9pB)3+i z{5S~b9zJiEqZ9-^s5YZS z*NaIR?g)Ctxe0(;5L&2)>yiN}yIXPx`yy>1Zie)(Yzw%PK25Aae_A|ufQq>INnTV6 z28&nqm{mm$Y~z~k978<75>YuFP17D?x_Yc?0|0GPc4Sogquw;?P{UR1={lGhIgZ`X zA}*@Ff14@BQ5~Jn(ynSrMJgJKwgFJ#O!u4LvFsFG#$310#6YBd^A(>}E zKERKbKbiT#t|>m^**0W{qH^dCUzzwjF!61oKAeGGUeV!O zZ}Nj7$$uwKMlpWds=B_Nz{jU`f~M*GaVCwC70{t-O-jd^Re7Sv`DP^FL?U9C>GvZm zrlVg~V8N9~m|_=zm+OaDn!fSpefc@31c(w=NgwG2ZU9#bAR;o_hyxMy^_D1a|Ku-D zYG6y#B*G7WpD`c;xRVf0cz=wzlL8RO!v?iG(yH)j*PD{TBX9nlrJ~PzI^WtEL8s1e zXYCqB{NgDf)Z6ER<$aJlD)%a~lICAFGd1SRQOeB#bz_vQGO$EN{~WC=aEU^j+0)T6 zc8ApgX1qXu0%ZQ7v^+C_G|-)mut9C9?fB~)2eWw=#U)Aad#osp7i}}@*4xS6NjZgd z1h;m8kyZlmQzWXNz4Vpkjiw061`N6hT&ns5;vDISHr2*VUF-(kiz;qmsr}VVrx&-_4UKoo8PUM~U5ToYp8)rrT{@^MzbEX!i=L^T<2(p z?T;dK=CpbZh~%y9(wF&YZh-7wHJ-ZAJuz+Sz}eD&#iD@Z*aRZFAr2q}94u zIC@k94qhzA`p4&`G@Hl4KC$szN^P(}WBgaKHC})5ivj2xzCfrBmXsh2IV%aHJQ3R- zHJFT)GIMAJ$Zvl8mA1)dHQ}81OBdlS0h9=EMtCVf8lT>GUadZ0ze2}(s0JB%fWCeZ zG@KnHU)L~8|Y}{G#)iRa2cuTGd zF=zaK%UZ`$T7;r00q^}D!n0uu1{Y#qMzdR*NnypHP>(bkHX|DgzPcqr#q-GwZ@H{4 zMD3Q77}$6Vbey-suTDW8;MQ&0^aRtUmzWcA1o>a@#h zlVtS!|3bP`F{{bBM}C#SLExh^pxRnz`U*#z|JyPb;PljmS1AJhgM}ms1+rQF=;F|_ zxYNVg<=Y^7IHgHZL6tk7o(O0DAqCaGdy7X|+`q!~wwY)iPM;3qg-1}+sY(9|3LzJ- z>*0EWN2jUDmRsBF-|h{eQ|K5V~`ov}^trTHGOSGQ$AnnH7))NPTWY1<86` z7plj;R*)X_yf&iuUI%Go1DXXEBRx_BXE>v8VGEM8AaewjV8#AcWjEVP(&FOsaSL*f zRrr-l3lS?q0zc7ZU8u7;Jo#gUu2eRHv`3WT!-6Vc-lTbXn^gTPr=JUShBwC0#1J&B zxM!Kb1n&WqzO2nF?m){?qVu40r}p6;YQOY zu}z?0{+7F>k<}JWC}(UVEcJqj`lB(H(tW9TlzbfsI^13z!adSYkzk@6|4TO!P~!4KK*(@ zej`E8t@6SHQpg}t+o+9$o~h~TsQVRtM9?f~3#nN`(uTKQt&xW7Hf{%W%dy)8n$Ai@ z8#%qrj$lq+ON#|KAVc(8=OhSqdN9G_)b|6IjHk6a#~Ep}j58GG`)5d_s%L89!MJ{8HQmOh%pwNpDE z;S9i558m|7C3lu9pa`F`ypO^}OoZwxD84DvPUqeZACJrgL{iWSq4kBTF8OtM*mRG`iJ~YOi@ZG0@|>wVThB^DEF2 z?-7ue3;e>9LGdz`$pP~LER~r}FUE_q+5DhI3hSD4!R^<1cjK05#GQCOir>eyN!PN= zhD#;ZVC*v|P-xzKSKEM~u-S&43XpBS$gfm(ld1QeDewP$EaCi4tS=by&h)+}#)fDW@#05FXhPcV!HhUA>S+R6 z;i@kHp~^T$iwJK3W{VqQtcjA52|(ww1t7k9r+W~2qOE<^syaode9DraZBN%4PLn77 zzQA1lB}eXjw~z}AEXF8)!=s2U_p&tm#?}=%f$6|tEX~J6;gICO?Kegqs-{wpmY+c+ zN@-pigj&Wr`q>^0n4Ks zuonwnqNR&|rLOWdkIn7HVooam*tB4fb=atAB}8a{;Q!oH#C&pcPV%WtE?L}|CyzsI zRS47t8Z=^M+>&hyz7fqgESE^qnzkqNs8Y2Hm+VVrnK4D}{(?qdA4@7eT2&tK?t40% zR=7N81K`E(58O4jY)Xw}&l#X zBQ^Mzpxa&fYg0rRfAcKoB2Wo8S;iI(#M%j z5*hX26@Do5xan)lS`+z}x~FrZV;V1;-ZceH`^mSIGJFxociIaQ&G2Jb1KF>g5C%%A zXV^Bs=)6ac-5Nr0M-yeMbS{&>D#LMctLimtO)4B zfF?x)rN9ht4aNAKMM8fY~MBjC9}@C zwaju6_<&oQsM46(m=6%xyvh#-fR}!ww|sy{sC(*L9#E-6?9%0l#=R~Bs&reCN~Fx< zwj4yv?nnKCNXu)jL(N0*V-|E-I}cC2$)%=5G)H}K zC^VKmMZ>}LWhfHxhd4h~k5gp0pufjn1b6ffNs#+Wn%tc=)Di9o84M|>e)*P9&}yrQ zw50s{zG8M|OPN`YkO)&wEd<)OS~i=SE{T0pT!>WD8Gzcd>?}Vr2{`&a>sNka;_w+4 z%ZiOD3p^@X2`{l$E3FXg_8A5Ktj09pLxxakOG)LTBQB81G%r^V&D!;C^#DgexWCVU zYjEbK$vI;@<>FeblAnfB=KA*WGLZ1QQfX4mxNfv(a_U%}$OehRykrFLVhyPRxMf#b zMk{etW4-MvR3{AL*}dacGj5MZ$mcEHoHq9Q_%Z?Fkg9tx)p=t;W~kR19dn(>@T+dV zX#1)ECup@td?p^0Csypp8VA#$PE|Xkj0e5P4bu8z8Nhp@xGGZ45r*Te4JcqXRf!Um z=Ld~+eCkyVF;9lQjrlX#2dRrep1?tanA#XGb4 zNHZXtkuxr~9m1K*J($>Y$^j5@sZeyF4%zEUBE;oM@(pZ%ounAvQZ>Enngbj4WSFdr zbs&0*yssx-=W>^}bNw6xvF{n*b!*0>G39t5sfxu=m0;NLG5!6+nSDa+E>F)pU;j54 zexJz_gT;>;!fQ+0h<-zn2u=TKf+)JW7w(cLaPFU_t0q4ffb?A={9;p=XzG<&m!GXP z)z9=Pvn>?@Ps4xGXUk@%!9}|06_UYG^yS_)o3{7WoVY>zE!8(MxRlgTzDB0;ZFeGj zJ#`9Q9kxg=MeO16yNZZv>{s_AD}pU7fq z(YU%8ptD8{Pk9z-!tdp}K`=_n@|K?BCFR4y;{g2OXbvdDEnkw%8NByN);VQ`QddX{ zSLov=%eN#CVU&(!uB%wExsyoieZjmdkfkspEWjo`xV?mBP6))Rf#7&vBmnV_5K~Wy4XREkD{gVU|f=fd2&+ zAG{AqrVsu62)=ojiFBkBo1LC-D2nGSnOeTW0kOmVg$jC9-b~_$1BMuXlz%=6$;HS* zs#;6Dta5by#soQ{^2d)O%&M(hJnTv)-#ZOtZtLuDkCIQNo&kfL{EqtQrtvw$&3Bf9 zBr~>7u-wCJ##?Xo;yacWAmLl?q{C52+OpMZkn2 zh9sKEPmC{2D_wfKsaNV0i?Z3BdZdRJ52WO|PipnaL|6qc>K0Pl3**cS|NG*B z_~|qL=&V5gAOzI6so8w5U^X|p8RV!L$M@J>?i}2FGN?ZU(Ku|XPJtIe+i?AlBwjs= zrEvMZkgLXItc^917c8jO=1ZOVDo@$`Y|+~w%c~l9#TU+H0-m)sSjC!J;f_v(2acrf zPtqP58j-2^(y#If3V&mQb#YoR7ctxJ0-~xbWOVbdeqECz;X;D2THOCVAtFXFT+(2copMnxsHqrI_9=3} zn2mQrH31#Sg(UBH967{;970xj9|Ffh@nmA81@T_*LkH~}F`^JK=d%;vCm z)kP#*XNpvHDFPD4g+zHVXl{YXI{=mf-o#=k_cjH`XZ2E;OUkf&7^1AB?oLH#(WM7y(j~oN;VWcWs`EdQ~%Eob4%s z7U|PRPz{pj52|Gh!RmAZik9K8w6h6QWAMWS3^zT#4f3;t?gYQ`_oOqtkHcD*(3w=_ z(b!s@1=at`qN@5@giJE`qptuEEFJWo{&!2%uhRB4aQcF86fp_7$cQ+t2_IE-*GZ;u zDDpjiMtK2*+yNPs)$Ez}=rK%6|L~3V{Ug_Rwz9oab8s^bEl;IJ8>^@c5;%~&Rd+m=iJ)|pd=_fHQifS{RT^= z^QGETvf%WTJ^aj?c>_HuEIP%dCnCc41zk|hvzsB4b=~l+%g$51Zdu+`EF*Pfl-dO6 zJ8p{U$srO~kE$4q_aV<4gO}@lh1JSb$MQ1KLnIt`e#C!e%=l=JFwq0+p_P;T4zfVm zAA~GIaoOSsx+0l*+tOd`M2^qE;$y~Ck2jki>X}@?b*-`dpnA@})Je3}QuW8*i86;w zbH;TU8#PKzVc>7H7gz&&3MFzntS(3=)wZEPM+17%6m}{*UemIX2i(*qB1~@Me2b46 zH__?S*02Ndp=^jA@IgZdRQwm!EpF&#+Gc7Fx-1BM$CYsHVN)@c1W(al8y>!BoT$~fKI z6MUs7PTk64XgsVO4kOBIziMK3v8kj=EzJw?t8m6EDKRLv@pEl=r1fRyovP#P-lqTQ zhQnH`lFSX!Xyz-de+BUn+?v?tUHb#CGw?4=*Sm(#F7NI%X1wTCopf^7MRKtoRQO?i zFS^*Wt*LGg48N07Aw|cC)O%9`pR#f{{v*AX*0gMmha$@YAq>@_5l>2EM1g%XkmVLv zDyCN_^Ug{vy<_Ch<`e=$`eyTvVDJ#Vu9?E%L?Jy#p2ipfL(N{SOCJgn|HL2J4J{Q)bMz|~K4~Zfm z!i(c5oiE-F3K47iP@B_UaKEnt$6MvIl5E#l9J1#$D6J)Iz8@!(MRx!rfTlvJ)|cah zH}5W1yl=P*v_||=JlO_Oe$Xi>lyzXCcHt59fb)i0D8$VA%#?Zm4-_3#d@s2LZM@Eq zTB#s5$2+gg%>F|QGDJ|XN@mE=x!k2n&4QtID(HHa3_p@0iCDt??_(KK zULnoZ@fA>x+fx^QdxqJlGip@juTs?TO$5O1Wn>w633I(Oh(jc}`8|DA^?>6b42A{X zocS$h33ST*fO5ly@|JhFo}Pa)I4*CDjIL&sTzFYVoM(Yx199{tn>-jP9c&w@rCXVI zleF$1B||Gg+4HE_ti-g-SANW=E|+nQ5hY5hk`nJGb+Ug7z|yQ8J88WZo{Q3VFl+8Lv##cv(8MS*tE9QF$12HDxX!D zUO-0G1$wz9Epdv#e{T=r+t z(TXL+J3xd??U^LVxZgqW)A2w~x^(2syDChZ$Ww}@JTB@Eu7V74d#h;6yBYwp zmv~yxF7F&gZzkvSdMwO^PV=p$yCuUWqfK*B#Lt7|X~5aXH|jHy_KHz8XFgAj=IpZS z$(9k0y$`*NK0D7dv@;nm5e`(Drkt$TBFHaTZ#pavr~NN7B!%&cIFmCx)-K=M;?qye zO=e^XSmo_5<1MbwN%Q{jj%m53BUi$WY)kHAg5^(~~dcemC9Ma$UoQ=BPM2$lVGG+Q6T^G4eK2tAV78S7L~7&#*1 zzELiJmD|$0Heo7wACd1 zK!<^ZCdwp_Z7-2aJCt*xc-Xf>XVU-BW~({I-p`F8)_5xy4_+>vW7-0m-o=CRx=+Om zytC6WTDxTbGIPEKP4Bg}l=iZ;Wx9Ll-xh!RNxbSIAFs-a2EQF$f zxh`q1-)5kVFFk`ib}X*^kOH}K_VgF|h`F~njF)fFPV|uDxdiQ$cRODFunB`=!+_pq z=tZo8U*CN&TLsz)_eiEpl-@na(6sv3z`eX~$ny;IZ`~fjQlpa$JiAarWK~lA0Uirw z4_<^L@F5EP_OzcmqufSu1C2e|b>mlgnEUxD{Dn4xEv&rl0vxxBw_g zU*dX^TbDOvjM4&gZCrBI#ZsBoY|_gqR^Gk@s?M=Gl?q`qb#TNp$g5(dR6BtEJT8aX ztnEor=qmnVkDFXWV_Td%Bg1!DZeq2qfcj*OG&+v`mSg#~HSHWzy*Vn-FT3B53Xa*O zSyI89^^+goJwu9DZR4C{7EMYDXUPrN)799N^+GiQ{NhCkqbati`G=SMS~-bO9`F;L z(y$i28leOS8#ufP_hUo9P$scBu#Nk~t>df{tc|8}%*4*q&pG zM*)Rgk5xA3XF*+!^i;yOt8K%Z=Og8nqvL<$3yGdVkjqgrnzLvfbfj_cpP6X%xZ}T+ zk01MbbRAyHa0~xL#hHVZPGy~2pbTc^qH%Fg0*BRS!A!rAT=J)azCi6}3d-X49uu&P z8{9J0*JSoah~VbA*COh7@OuvKS>Fvl{(Ipl3P-&0gAiCNZ$eezDNEtEjw~>H=0=)T z#r8i(co2#0!CN_t8x`^BX-aec`FO3dm8TWoEnV|j{((qT! zXbyi(ElbV=Rv>=>|40A;DO8UEV)k7GLdMpv5Vp^U$BQEIBVAHU2b;Rz+}X%d_nGlN znXNGQi6u%#dd8iQEee49OlkP2D2dcn*BwKx12ODh1g*ixR+wAePN^{K7*$ z&y1m1G8+b7%BS-vk8A`9vLVS{wr)vtSr}5SxO+Z%!vhMzBP?|mq7O=;YDF(Ehoxf+ zwRE3|&VIV99ygO$Quu0)Bq_IR#B}k9UkEs0Us_op_S!9SApH-}`r`-oL&jrIWMtD^ zKHVWZ8i?j8FEU9&3z7onz#5eOFopT3SO%p=5F!?i zZSFp!H|X)?i%AG(L%cTLutDMDfm}lL*l;e+9!A|ONk@zwN@;V3IAyhCWgD!fJ&2(; zKK;)!NTC0f>jHY6z0MO*$Wvts9+}?$e_p>S6Oa4+rgXOt8;kuj#CQn!3SdUw4m8CH4QGn>nu;mX`hu`shTWFZ;2jNWJ`$|HN#m$xWNc&@UqzbMZl*T`bT(mJ zqi{30zMVC`*gKwB*x+;r$*6|AoX^82|QM zB#fYd^5eIG)rXd;Hp~+HrV^xVM0z88me#1qC*?x#ZZm*b@4UeCUFSis!-ZIWoxJ=e zPQr5zBye5CcfFi@R97a*jS6$w%7JYsx#||9 z%5{<55l0bZ=(@5o4EV8HaSTq3PH3Q8;Xz`DnXJ)U?8xxHTxM>rZO8cQ=0!1G z6(WfA@Uh;54(`*OBEf|@tNW&iP{>KweL2WTeBGZAhTbUxdWw|M7&vbsW18)LE1)IM zMEQNz9id)Fe-;wBZFT;OR@IQ@?jH9FSi%Z|D5l_04SYwZwO76tx-YaA`m#_D zMQy0l{$w}e0#S(*s#+H3pdsQ{26vnPT3gITUrW!jn@ln;UY#nAF-22?dFH^2?>Um^ ztHn_H;g<2q7*jT|sWT7ub-K0(Jy9=udu!P>@(Hi)(Qnvk$cmzfsA@(asct3U#YE|P zO%1F4C=l)?jIS$xRw=MuB9izQH@)>C%S#}=-*vQH!zbpytwI0bHt6~P8I^H%5}rM< zqS{dx*fR%6Y}p}>n4!^NgKuxi#PXltj^Okl3T{btGK$w9HRVFn-jUrv3XTF_@}>5i zRQi~Dzt~Xv=lrXDA(HsYQ&cz+e^qvoHEOM7N~y|22D)AY|KPKOEw4@-1H5VJ%5 zP+3x>SzHRn7=7YpP;xa~6z#=+Q-n3F6IRFYO@lHM=G$2LI9+VG!X#p@ZM9rqy<{3_ zMcA_btAwL{?T|=G*nXa}w0yN3hoxGC9VGSzQ{Ng6WaykDnu7_^V8pyq2J(kD6Xl8+ z+!6Vf0wPQ&_aq@&mgtHSUt_?+ub~0>mq7Ju>F)gG!(=zND_P}+FxS8)APXH0d1K?X zy~Wg!4V^z#j8lr6m(h4f7QQ-q1U0^V=FQZ0I{$~h_w>n=@n^foZ=BAdk@)3$2S1w2 z6WZ}KmGyg5Xg_Bk>4-`ojW|}db7-KRGwMnTs*0GC^Ge(cUk6x*W7kOHzadE0-aMh$ z+PuOD-sfbZx5!^<&Jq^dsJ3_#7H)J<1_kFqHW;(P4oT@EyB-Gb*^+wVoRgopvW}#S zL>l%w{IHFV{M(3TPzt(wBh(u%=LBHT*crnX9690DoO#$H;Q^jy0+~!e9(5&ZF~E!j zgpbW@pCMlt<6askulue|+griSM7PeAF+Zphk-?#MG24+)QVG@hUX$?(XOev*PN56< z5B?w<&S*EH(=FO2yBRK4BH4Hl&o3fwno-4iiPRg=|A#}H3H|VAITmkVbCd(Ts*HZZ zJ01=x`Uo9>LRix(XN;aN)Fc5;hIihwIeIR7;r}wk)#}U6_gSns(zrUKjSyAGX%S+Q zERNTKk>CQPeve~1tpe$38I0~fZxd9=1SkHotaOX6*@Ui=TB#uys`}p@O#M~3EP8@7 z$V#7?H|2Dk1NnftptKoknhgwy>AyvCj>9}u|K z_8$61V>+YTqX4wYW!Ihq6&?Bc=FF8uDp8Z5;&Dty|2ML)f+Iw1bZk-*({a9)lENlX z$T$0L%v)?lZ$Jos(e#Ma9qhEjHeOTy;zBn?p+s}>!I4ioO+xO*13DjYH!gTF2FcVw zmEo1B^{54=KMdWp86yMU*4A?LR`ou7ia-oB0(7p9K5KV)iR-np0;at<8@$|gvX=Lg z)QrqeKn){dk!(Mv@xC)ym}_+IDRZ9n<-xmH7-V7EQUhNTh(%unE-)dC;2s7cTz9u+ z7YM#Q4(KkkncTHDCxGE%sxLJ0sO&0MMTgMhQ!(Tq4~0(Tj029kJ`}Ui7!A z?Q^vbGDDsm1x-9y`RwLVs5qNTC4FqYgfvZ*lZW(;7klbMuZi@Rc0?pNJjD1;`q3=m zL)M-gismA&y>P|D$+41ul_-sQ-_b^~w0A&x^4R^-+}G|?rCB&D-LzB(fUwnYa0_|{ zbe3aSkRR#c3LK-{kadyy*CA+Vl{dcfIxjH-g~P@Gt9tus0^S>B=`|Rp2-AIzMhBuJ zx~bLU*~wb$j|s*(WXe~jV=Kh*jy$C{T|^t}_6^s?_Zj|yUhQAFN`yl!CLZ+3tv8|T z35Z`g1btPLrm6Zw4l=TQ>TQHIf(4}(!5?(BRPvIV5)*~Bk_Dc{cz9!xK+K{n59C3i?|$XHc>qTRC%oX-vc*Q8TRLl-$NKexnh3nyH{=S6xD*3CJ{_RcjMz zkqaIZsfYB3EI~6XczK7X1jH|lo^=@FOke4FJuN-xhF;0TVrrk2khqC&PZ0QH@pHd< zx+aRLuU)P+xgC&~aB!K(O-^SXIH9dR{V?NDx!M@~_8`+vC(XMxgR~vB0t+b9I4~nf zV2`M5?(S$aPCVG%;ICv!5bJf%+TsiOTQ_)Wp6_jZ4b$Ks zq5=lu6TCUSAlw%E$1Cb9se+V4>8fc(EA3+%ufm_5Pn0{VQD8dWiu|#6KP^1U@RFb`pL}%E6rCO3O*!RIgbW}af&~(Ra8fO z5Li3^aR`Z1StD{=$uFPqU6>N-lMeH2(M*lB=78E`Oo9kY(39f7A5ZX5#Vs20Mq+DA zAK$uLm{LFO=$7SV>b1*!)`-dnV=&0`Jb&_O<7MJ0JzN6*l3K7Kd|Gcm%iCI9^$})| zfw_Tc?1>!>AVl625AGdyQ*IH1C03xxv(cj)MRx8onVr(1KZraNTLWO8!PT?c z?6moa=)D3;!Q(Wi?+VU>@zHo8fKw@ue4WWlpY>hp$AYz`WZ=@9?tZV?5qAw3Ph1ZG zAWJZ|2xQ-=ZH1{nhd`pyHF3r7caqW0rL3yEu2I@8D5?T^H| z$W&jJqYmGe`d6_HaLioQK(mSfoJx`opk_Nxi#5#UU6Bl+ z4M=vi#zUz^FK=GN7bn~My79=8-W?+^6;?R`Xp(j7E}+jkKoy_apDod$Z@%v zHYoLzj>AmA{TcXqIN}stU%U`d6RAC6?<3*uA>TozCFQ}bDzHvj#5~?{;Qsqnv?`r< zJ_f%~;n~$D<6HHYlKJ<$IFKcK?ebIxEoA3fM|H)KpLxT~+RRLYb7$6l))Ov53-{wK zvBz_OpYN(}MKv(4oanJ~DZX(vGTmmgKp*(&SlmriyPjw0Tx#gMTT}LPkk#JnK8;}= z1zi=Lag!UGbg9Zw1qH$X>yVAMz@MaA)h=x#65}^Lr#Hfm+9eLlWC0oSK*F&2g$>5U zRYcw7J}ddv33-DX^-cps!MHW;&a&Tre$pM}g5;QYIYo!0dfV4+slg3c5i!lq-0Xf+ z!JhWWv?P{pdvK^4A+$)17A_OI`3>fs)B^T^M&NlYf%x*C;JIi(0Az8#H-6~uP;|>K zPjxzLX)(I>1@XWb8rNIjR+7pp@R$C`>Mv)&*Q;y(=0D{2$dczkc=n!XHe=6RP-tl4 z9K`)uoI*9z^&($#4YfQ@^h78uHsmN3#r6Y*;RuAO_59J4OKku8wfe6y9PMz?>u7Rs zt8i@zfm>-qlsj5(Y%T({f^~i_(@4mU3z?nP^6SQ9i@MNOx|f6N+6Uu43o3mG(p#E) zP8vet^Y_SWc-q57_2L{dpA{#mH=$Rf+!n!u;?a?}WAFgL2a^r_{AdgyzN63Z1gqp3 zk|)dHJd0TXulyfKNzh~Hj@KnfqAv*J^ZKz~GpKSw+0Oq{dbDB~M5J}Tx`c8emXs0O zy2bse=zq6K5uIeHck0Upb%N=ign$JTHV9b{^-Pw>p6QxJ@8@h5ve-hCvSTa2A4h)6 zHq0@i*!JZOqo7+UDX)oUkY39%fSsf2oe!KqcLA z#V3sUEsy44Guu-65yOOC<0aa=J8%-`a;fn%aq&pnGLm(yw4s8nNL47JxLBk2PQhC! zj~%aR1BY7DvmV{NyZXtgZ5|mEF=wCeJ(7Mzc*+wH65>!V>d+1HjPS0djaEOSdV&v~ zV3lx+0&kh%aV_p@q|Le8&K^HsSh91M!iB8HKXTDRPthxBdGjgh&BAmGvKn>Wu)Opa zmPn!W--nW^%a^?4Wy-$YhAKUZ04idqn%c#-4uPISJ$f9WNM&|-|D*lk@0&jGyr|$4 zP3nZngUY~;GfBN2-f~{KB7QOdchQp)_9L=Gj&~MDr;46Vfy9Gu;RL8BRp%{bMR15V zy!Oj(BWrXoE=7+J5Rm4;>KzMj32GHY#qQE=19~_-LH&Qhjh*Y^c0OdtAqMr#hrvBK z04E0Aba7h+UJsMFWDn+m)tg=uN+Ol~rccn*jOumpOK7fVa&B&T+jylTR)!iExZpD~ ze&ZmR>~9sw(FQ9tb;HOO(3wE>D!+_q=h9ws6nVy zaUy5tECl0P zrSkIQt8KX_AWwC08*wjtvlA8npb#Tf6IUyi)DvZFy9NZm0yA}aU0`NdM(+{z!G4lx zQ!}ZO3zR~Lb^Vtv^W|6Gz*Q^odAUb6uF3!n$?9#oVKqgb;p=q*Z}4FAXI{80f!8D( zLbr6TqFT67_jOGCrHO*aBmf&U?v_?WNTEc%Wtjv$>f~&PZ%5b=y5~N%@vzzQ$eEL; zBxQg5Kd@xGw-H56ye&c zB)vhL)5ptSoeszNF!92^nd5tB+U*Ei3?mi*ZLdIW<-MMJdEG*2tN>6ELxTI*MV^?P zpL=By7XH_ad_5K*in;uV0)&@T00)TH!4}n)qq(7hNnmAfj5k^(SWNjBtnBt6*3>-1n_k0>7#-Q46?logr}T$Hwqj+V?FI#S{9C5UbQuYiwN3Qd!0 z0+QldRmXjtu`#81oQOP^4?|r0gmixE@?5JiUY2{!X29S?X4rZNh%P;Zd4{}>&PggD zm4E+%NdzPBNLb?OP)K5~{c<-H^n=%#J8+$~;281iCAU2e@>*G0ERG_=L~e53N|{I> zgN%WgueX5AxTdQtI^_j!I*MT8`)aDczEGpJ+FWjpAYOaM5w(lv(ii1boh~orOBPn^ zHA}>X;UGw@BF!%}N%V-R65|#~5E|(9(Aw}9O=&0DdE;wFm9^5g+$OZ0(3aiWR zBmni4lG^w*TayywULZc@F8p4!iu`?JYhRFb*zhK;4588Dy3m(*+jKIUrTO)w<{0j# zx{$Ae%{xu`_2U3j{?@d0x?y!UQIg8olhX4x%gEeS9Z z>fI3=_PdiePJFPF=Q%GV#-*dB8eZSamp`=%iqu49``uP&dI9r>0w#%1wAs1vzwdnC zL@-vp0JaZS%kYUQk-;x!1y#vJgqx2@AGHv(%J&tWP5%UT523Ic{J!t4io_jPxH&xX zi~LWH?9PxH^$C0vBVM;9woz&(nNdDeGfll}gP-ceYz_M$kF^dr!$3_mTb@-+1{Bu; zJ|&MZBBZw-pw=2tc_g*P*=!qW>xg6(q#WRFSM(E@VCZ|6@{*KC9BL#!Tozod;15R^ zoo+6CEE|gvL7e@rhyZXsz3(NYbJ^t*wn64GU8&stkBUqaO)I9+F3|}PUiQGdKq~}g z*48F#)uZ_=^c>OdSe@9vDN~Mr&<;He8#BQEL0;~qz$==#TU;&jbv3@(SJ6r?`>@fh zGOxEwT%KOloh!w;z)08<0PJT|CS2tKcGi;*4Waw2c{^kG6ULZ%w3jGdBr~IpvMdxT zRr6UAR54XBkh-1tk=7veI(XQYX+pp?$*vUk4AYxYf_sQhPIIbSBU?~ zT}8(RvS$6uTl8?}U7b}__MdvSkE$qXDS84E|KS_N*@@eAP~aS2TohNqB{M1z+Sj(o z-XO-xL(Cl|nl?XmQ(5TRiLATO5(D+uF1+59vB>e;KAf>LJp*Q2KjW1qjY{7tF%U{fbUSetJlTn|AiQD~= z;CMP%prqt)4SCRm;mIINn-_K&VvWU##Azdkb%pp8tUUo+ zRhfcCCtS0BQ^_m=v{Qa8?J9lZgSvSsNR3ni58`8cN{bEZ&HMyLrg{e~fMSsUyke-_ z<*tuNCOSo8Uw?k54NW(jd7o^6z{V2b&OO915SEV&0!2bk%-?l&_gR?sP&}qzG+r(+ z88EQdHMv`hgGY?PK$v=cljLvDZjQ1%f9dv@#^)X!S5D@-aLHv&IY^vJ9tvO_D$S{? zB68@9Du-mDgzVvR=0d5tC)NCd1Nl@b>gpG~oWGJJ743ljBkgd+Rl^UfLB630@@{ry|0*PAi(m=G#G&t$zBC$b1GEK$a!6|*b^yD8$g4wrHSS@v%3|Jo z6ZlN0ox}S!yoEgv(SN=LLwu|0uaMPP_)`{Q=Q%OV!Wrj5$3po2EYpTUrCHc~RVO^W z=ZB_{`f`ad*Vn|b4fdyF!;(C%mg>0zZ|yT7pAki2>UZt&xMHjQda7!GgOLfi4?D-5N`5h%)2giY+m{|-ImCGI%~n_C&Ussp4sCiV+gB4`(i%6`Q1Sa}}xt5eL4)ot1HRz)$O z08Wp{rpu(_Si3buSagp6Ojv9P!{kz=fijt@4364xv$Yi>)ez3_@X+s3ct;xh+%gs8 z@6e5==^(Sk&x;(M?B0zfIss^igcDC@-4)BkKTcqI)I8sG_e#LVNY$j7vgQ=F{xNPG zyG-XnmMVl1+_o9NWXkl{44k8A8pMDYfjhGerBWo zMBkj-OLH%mMIU4Wy&&G|xS#GyNmaqm%8ZSNQfkJ428mPXUdtYk+fy|`x#lLHW;oR> z^d9pE^D%Orb@;B=_ihZ<(HTA;gb5#meL5TFsI$b3GBNy#{8J)2@zd4lA z&XrkTxr5SsHepVxHF!ei8`Kn$z+fy&wGPJgMt6+x-$9c5prdBx<0855%k*>rI(P20 zk0o~=)3i5ZpEaswc&fao3-6RJaW_dRjfQYn7R=SKcgx8igxcYq*XeYc4x?$34lS@r z@pJihow5oe0o>q-i{SUHwDx}WB>q+n#Jt>0rMNiOWC>+_aV=OC(LM@3_=R${bt+aT z+H3ut6Jo2EDMoP~4IHJV5917BPvc6;TG(MI4 zCO2i#Ko3q@#7%+(J?!D<9nT9l7QuPjAM?(d2EFrqw}qNFS0db~Lp z>EE}pvHjQHAx}6izuDCldb1$mumsvS2scN)TKX%x(O3HAmKxgx>jp77VhvL z%w|$pY&NTn`k{!h%=M`asAnmshjD_;!~C5Im6rzS*$NR;&-qQ!jakC3ZVM+IHy#RUURSnnr$-E*_@^S%1fw3rN55 z4#uipQH>AK8|!Lvui4+@JsR>TEjowG2hF!W&Bo5V>sQ`?ccKYFse6CnU`6@y-D6+l zKFu_UO)R%O3LFz+7~V7DfjnMRsH5@!K8Q?+>Oz;@W_~l2)0{1;j`ds1q6jjTB5mLR zMy!Pca=n0@1%FJ<9zc?K^Whgiq|F0tN^U(r*?_6*KI?h!4cHW31 zznG^nH8dJsL^uHf%dus)s}YOq(EdN{K$ieTr{lRzz4eeuv{9#tnn}izXu;6_B#r<0 zxR6E2?W;x);fs5i2BWdM(Q^boLuf=CAAv4JYBWKvh_x2-8~+k+(uXvbu+v*Z&=nrN zTjqDv8`MEsKcP8+`f;9t`i=vK7b)L~i$03lO`h0H2J{UKPjHc5C{fIAKuqrC`|C{ znJ>B>Y7x&_sHxb#3i#AepVJ+~$;bCQ&qCV_y(-p=75X8+WEG9idU@8Q$g=2#j*_u)!mGhzN{b(tjY*S-vF)sd*fegCgpbr}%1 zx?nU07^Q>&uyhfCm7Z(Nf3c6Ph`|pm=i*>2r57eYO{Sf*@r+{1BDPKlc!*=X$XUoGA= zC<-kL-*wNxzYjr|N91L(_U6m3A%E4ap&Z#v->}z<1&0o@tX%Nc!w{B2q@MDUE4id{Er2 zHu8u3=WBH59kF%HD<^H^6Pi=q6x}idz_;obfvP(8hw+N^`fw4R+8%qp{*Lmh;7H#} z3IB28e)ZkQH@cJXij}8qi`G02fNR~jw1;jFn|SeShg4*NUN6vC73NI+a6ZHGJ=6YJ6C@R&GZ{0n{v5co(R_)oVJhV;YQBrEk%8U!7^@?6l5#g2|-=DL) zaX{_>MM1;-SexDrdz&l=fF2~34eCzDC5xNB1F$ST=gWm$N$88PZj@I$NB{R%<>0bi z?WC}T(-+SBFLi=BzpLc%jqq9Qt+Vh<{jYQk88X+xSP` zDz}r+%vwf#0adH7_&y_tuuH${=O@+3JfgV|p&DvJVkQ@kiu_x-l| zHgM#EV7L}`NiZs>;JETn%1>BTG|RE{s{JHL%MWt@6NOSZY~sYLY~`R3kOiaM-Z-P? zaGTSce$ds#Nq&+C$7J$YK4fMtzGWOJdMZ26QJ0ADfijv1BE|JjAC_tVVW4+614^C=;GhUQBc(Ifvjz^W-Td+DJj%jY`iz`PA`)|Daa6x=4l9$1(UBTb zXnR1J(VLJwRkZZuDM#`B-~a!2B;bE;t@w`!PADW9Vj%(K2#ns491zj)CEUr}$P6)4 z{rt0TAZj9NBu`Z~-afAOiPWx$K)7q)G90Vi0BzUr!1GjJDp|r18W?tpw6n9+iCQXn z44ASDg9*;uLOl$43yBE~4a^L`hgy%9*;Ihi3QpWeQDVg|#$=iDtG8{P@ITwU^C6Du z@nq3$pt4QHfP+AT3Yxu2b#aC9-{;uyi9mPjgB5i1sjMmrgzeg8>G* z2w`iSZ&&3*<%m_IMLM*ad~r7QVgNrtz`q%M@p9+3FuJu4jm}%P*;+IVla}#T^TB3& zmB~%>ipW|MGRghlVuYpg9p*NBmIJgO6=dV8Ac$zI_F%K>%G5m6IM4$TfrN@T&Q*Zd~3|1-0bVyQF1Dh_)1^dg!^P|ILCgPp5-t13o z(Xzo}|7LN{B6&AGd_Mh3IDYwXl2+ujR+HkDSR1xBGrpsl7CM-CG;`F7UiZi~;BOO$ zLc&YU#Tr82(o^_K!}R6k_6>nszIhut2=F?+V!Bjpl!5Tq0z8GojX6C+@8pG|*1a4j zTpgUN({0^0;AB%=6J2zK6ffIb!PuTk8qb=q8m3SM@hE1G?D{bK%kYL7l#VA8!N#EX zH1=by9uL1JmScWzoe2AdFmIB_ocYpsOjoa1uMN$5@w zi&H_UjEl*25wyBc`BlY>>myw0G%?&;HD8j%BwNYJ$~7|8+&tb@_5#yVX#;Fl`(trq zi#zo}!Ll{VkL=NC%^k;jUHA~8uG0wJ#xM%V#^5tgLCdFxziWG>5~FiC&mlevtNlgg zpxaZb3ev|?e$A3_YAYeU1vx84EH6JATqs$u$9XAG0`g6zuAkhzU&Squv$Gt9pC9Yu z3*L`H+1&5fD%>c?6p&lZ%W;%iDSts{(ryjTZ-d8Vyh@zalcV?7Ck!p*g9&1wceK`k zaR2{kB+Ud<`g<($=XvQVC8R=e_>oqN_tuu&vy3DwiIfe*xWeL^%)yC|4`)dj!j|FM z4E?!0&C7|~MsgyG8Epk0g;7>Y4gRoMiffISLO$N>xJH~tJ(4|sMiVtox`}k}3wrHQ z{kqq|RL-e;tTfXHPJT#VBRa}av(GK_gRnK-NygtkorLCVpnMb$oKCRhPU& zB3T2=gnG&7Q0|ShVA_;s=!W+nF^s@#(8>XgDEtii^g_uJbs+!;C6$7KZ%nxiL3FJ1 z$pnmQF=Tq1Ppn%lR-cwfI%05Mz~+`~767%Hm{Y)(GFzh?kIlwtS~d&?LS~0Cyz@Z$ zz5Vws*TI(;I%tyhzFmQpv^fCyZKqC4<2HxfFvpVxfo8Y5x}Y$?BXR8t?p^;JLYCBF zpXod~GRb#*jN^;88qI-H9*?5gSXYf*yodGldHT5{(tv=?KGcc;yCBoCxMJF90Y(S( zP=f~nho?B!lzhI!gSrq&{~3yQs0i4Y6689v{O#MxzTWKsazU+0#-)vut&MaI)Y1XU z+!VhLTP}h2yl8xh4Tn|Th6%+!^SgCxV_aeSj_k6Uv~D8(8Iu0!_Eb7bV}e zSqG|oxU7AjI#58mU+uhx5VBrkl*H`&(}K{5ER`0A*s#cjb5@XRg3}_V9AGN(JNoOA z`FacLrVdf{iBShG2mB!g%QMehO3{Z}N&d%`6x>A3g|Sw3z9r#=Se#pnizqCm@NLMBXA z{TlYBx)MGD)ugCVAmS-Z*mz`x8L{(}43%YP#CnrumGrE-Q?0h_yg>&xdGWu0Gzz!i z4UdMmK}43dy{lCQ&}&d$<6=gCuxw#Tef6+k+^_UTC_(8q>Rb^`LDW1{OE32T}d*4fm@#)(VMv={~#vW)SGvVDnJZMQ2t_ zVx(JRA8$V*-k5(|Rh&$?1k(h-KSH2e z&H2(*#C!pyxfszkC?%(Q1cv-Pfi{fKvB*P6q!BlR1t=JnaN4N{fea^xZPUb5H?x=V zLTQWiyE{X8TOuB&95QDskFF49E@M1SV^A0#P?FTt~7Y_%-hrp~ZCZ0E)UH6oo zS;)4*m4)IX;mfnYYLE0yHg7P>tmy_V%+g^X2jd4(xEkHJm`PF6MY;H@z-ec)X$dzV zj4W|-4{nJzaaKXL(qL+cQg$Kl0k%zULa;z&AiF0i)Lu-8I>)!VQP2S*QXm8usE+98 z4cpmWw*xGoJ%}eaaNfyN^j*Ss% zZzLSk>$}BQy^xIeBk%&PtXD}$^0QUMAxO_XTo3T+gchA|Wu51=&{QT1CgBI#R4;G` zFmx+k7LFZ~ub0b!VILG^tI$G!OIhRgG3KJz1rax*EEJJ06^EJQY*Ff0?NFP&&Ajw=Q{pOX#GAb zz=4oOE_681AJm~f(J>}p*@@RN5=$fTZ^7BMvm;k6y7@NCxNAj5(LEM za~ev{N2BIy-=BsK;e^>X9(DV(=;UMO6}rR5cEi226AVPR8vlH*B$`NssK!wl+C%}A zE$ubkxfm`+AO;>v$E=2Hs2s0v)l}b2^(@<)#_VoHWT9O;C2uV&e|r$qo-jmnZ~k+! zOhRcooHiZ`z(DC#vZ`L;gUz>4iPPsj^EuZOn+~S7lcJ^9q~`+_YD?t6-QYT$&@#(F zTni!p_-2=a8X7DoNoY9RxX76P?Xq{4eT$b>yOaWLcr2&s>ec(^; z6ZKS8m^iNrcLEW&cY2|rq4D~(;?OZx}MO>|mV#Dww zG_rQ=U@&%+ZTIf|&}|W^-v;wDf&bq*;!QFPr8}{An{p0G2T@NFvY|#Lg{Y8AchSgh zZxog$k~6vj&3g^{KN#QaV;A|RWP5m$9>gvk3HjPJGF2>Cu#ms32ypqbHSi2n)HE|S z3m&W!bN!7~QU-!(g59+e`eXR+R4g$61Y)%GsiOK+H7@WzIKpJ_X*@UDm~5%M?hra#DxH zQtAMY&Wgs3(`Na}7fZB_JoQiH!<&v0Szhboa@`zRlu0knkrM6*_(OwQ#mf%X1qfAIY~`&R{w=V|(otLOSQV_8ca|0x}ciL-3RP zA#&G%;4j{qgqP|Xt?R|PHf`IRbXOG#80uOMQ}3d`rwBM)mI@k-1ECi##AKFipXL}{ z>-=gPCbXfo<~kLphy3?q=bYne4<$X%bj;96j0$`z_RxrT##ew}M8D=9{3jCwy(0+y zOnsREK#u3|3sRbhA4OpsieETk{8%sezNn3Wqv-}$W-8~~*^QBJNZ1R$SZz{+FZ%*B z^5-3$l0aew)>_SsVbcW(VM@PG>JC{e5g>GFQhtfv6+Ggm)IPAzR;+twv;vYQx_MF? z(qDdKNT-eLniNJ2px-UR7Yt?0NX9uC@e9@$l^J2h&quB^4prhve&?G?EK3uMMU4cI z<~a`%T#jUdN%w&@2J9p5xXxLNY0#?wR639Ec@}wGd@@b(B1H~+f$mBg z^-R#>3bj%9fKj|9&7l<&|5sD82U0ilb`e(N;898vC!2593km9hEkY5@m`hXL0*%O} zK`OZo8dmp?HKj}WKCpOLS!H0J8`c}ht3t6}{qGpF7pr9Wl;M$lLLsRS3#8@E$0cUX ztKuMeR=^QQ1@Tsn*E{+4zCaCuAx|xBNqc!+f2xa4R=}ff!K>7fzW`XGN|q9m4eqE; z%tx*_r&M@*mQn5K*qX$tA}k;knK$@DIzUR6w*taR0A4tw{^cJ&1A_%F$R%P^Fe%*L z*h-P}nc{#X zla9vC8}(uD1o4@bn;-eQt4~iZ$oEC=`O~<9sl!EDG3Wvz8@7CZR>;hHr#1Ut1z&*DOe9qy|CUV4KB&_y(*@YK^GB20TV zvpjc6JJ`K*?^XmXo-Hra`ELk|y1ZL>C|2e_+wOUTked7`mZVB7l&N=NvF3d$bVZjb z%GIbsOx@R7st%#RIZr|gQ_J&b_gg)??$uVi^V#660|VbuS!BNW^%5hfP-w1Ywfwr8w8|Vs-g~k?kWXI!BLLN?`J=; zpR$y|b*TIO@MeF*&#z;J0zg>fE$>bT%#JT~rr&WcJtxBA#Ek_%n+$7K)I6o=Uh$g0 z-xmq^{kq}xDuf0+>b0kI-w9B`EKjfUiB;UOrBnYv-Kyhh@_vP(m(}3t`#TAmUAw1! zfv4c`Hu_KMP)t@~x=MlYgYc-H(x$ew%yY$6wRe(V6(OWr5AkF6&itmd=L8%&SlCO^ za$RP!5@i%)`kVf_;gue>oTP#bU1%?t9rWR#F_h@1xdjp#D}QoD-(YS`9AdII`~;Y- zLgtsNLIRC_iq*d9U@}03TLEf49aNvqVdOpm&#OoN%}3a$S*p~j{x%mSxF{(zCQR6I zbl{FWKMA%BrCdZgiClAf8570ve)6K64cqV(;;29-Qk3YpuqP)$cx#DmpC)NuNZ!GA z02Cj)&?t86X|E%${&~?2Ly09Q&Yl^DG&nDq&}USRDgX)$5gtAjO}&d~24=-_8zSC7 zB@4Wr3PEpntDvv6n|udT(%HKjKbtbFk}Vqp3h+FPx9vb(tfVK;2C`wJ=z+ku&dC+$ z%8gRb>vqdxqH+vG@AT#PZ-jZoELZfF-QLAN_K=9f5_d@#H1qUDtyC$w!{UdVz*zDY z^Dt{!4uyx$M)cr3=kDfft-!L!fScDS3i`3*gNtin&^-2}wzL3UjLW@c?h}ulu|#?6 z&^E&MlOM+QKq3CMJd53{tZMxB!jir~Pwv)N``zU)RZVs=p66W5Jy?@G4R+xqyumRl zwq&^uw7)VvKKLD7&TSWzSLv9WOx19xzS1SFDj;|>03snEo;kVGh8EsC*BPq-aN4dH zm}^)?4q(msFp;h_?@rvY4!>@7xZQ;^d86^Y2c7n0dHV<%OIAv;)u~MBsC%iD?#Xh|XE3by)0@fG+|Um$^Kg>jgl}wRdG4oZk7~ z_nh2s&b5|>gV;a5#llqkY>);ac$xQhh7U-swI_{6uUcQ21w~WETzLwsY_?1fBo9nB(STCEJx)VDTDKL;bU;e)7kg0;hlqJ=CshH0 zXRN!^U`>4i46&3OP8P#rrx<%VP^#FpE={kV(oiY%t{lU2Xp~L!bbygUMj7c9_k~Bk zUnfHkxdoBv4Q)2~Cg1J&VbrqzvxTh=O@bQmUIRsTPiazGSBaz7ju1|TwTd#5OB0wi z)>tYI`87`i5?I?Um+j#k+z=H;BS;43y8kZ3LqrDelkCR5pDhS=3#$?cPrpRp$DI1B1KPWG@ zm4*DDxJ!%i$J#$R#P|{G4yF%G+!{ZctW7LCpr53RcCpIZi_CzbRYqE$N{$l;qy<#?G+1G%iia7H?_e*$Kn1J06WslxYLM+3Kv5(BmyB- z(wy0+GEuMWh2-7V9gNxQzw4?z-gDE<`|E-2 zv1kOn4nY6(W9Ot+@v-iN4)8j!7kcJ&HW3DuU7v@Io}n-13J%9XFQKOpuz^BE7ZYPZ zInANW#(-~9c--Y>DT=W>Jh>;OfC(?sK~9y|E5e>$$YGuqf{x|EHiVbhfFT-;!ij#Y z<4^Pc1V2>Hqs8IK{OO`%g!wd|kpSWwsOI8WYal;14rmg6;pW(So_G zyV7$gFyQGtOYg@1%&{l5G}TqbNiK%3n}HXK`|_Txb#%uM^}D&1`Isop_T-mTke#2`H5L=ClvOH<8l7wV#zkYjk*4H=$0Khx-?^LQH2MA z22#C5JIMAPy$w{2OZ*7OY-C<4DKvYgRNtgk$zwCI|GnuEJKN8^W;EgboubyqZf2ARk*?I|gVw%A^hY)nImWa_^ zmZWAOD2N!{gMj2x2HvFcPbK7#gO>B5ku%Rwqf{G2e1tpWMw6-YwEV z>H&)Uk=u*0?j{Y#TtsC){fYDt7b#l0-az4Y4RK>1#*l);O6^=u8$hFz)jj%N zw1b7g3+_`+p%3n=p_dP3bdu&UlD#pbQU|O9uc8io9!x0PB|wFr02q$^ZmJi7OA=KL zZW*8rInzR1>Bs(SXD`#6xYRVoGUk8tSLcpIMt(1`FyXV6-;H}JR+C0R81 z6tVj!rcY@GGX`lOwe$`Rmaq-!B%n_6H<%bA^4I$^ElrPdxN}bMb0SZfECIxsMPOwi zvm`|&A2+d+_i@KZ$)>0ViVL|*!8=T=7&mMIk%siUZK`=2Ys!t=MVxQwaPnO2i{XOr zV;wmTMKQ>Zf7V@#UMDBDrNIp&cYRd}8Xo?4D6;leKokrOMCEjgDr!^CNFahBo%oh& zkJ)yQkBBd&Sg17ic0bA>cKV&Hh<6h-s<8_PC!LYrG|3FFj1^c9X-FD}9^DIV33Czs zZffm&sdYdYDkjX@5D;-~JII?zFXMCA=lyBc6XoKg%i$!EK8a9VlQQ>6$TR}Rk{f{8x+`4(%Ssa1m2jS3FxF15*s){i-pYB zYTYBOt>WGk%uf6QK-Tir{JR}_iroEGecPfY19}Z*LufG+wnGifxeNqAt@qA=<}G$% z?40e#DYa54l4N8hb6V$;>b0G%HJ)GH(v?hGb6*pg@d^gAEOc*6bX^+Vq|!^wa{Oqb z)AME^%an#x1uY8Uu$Krpmo&|Z29Rm|!!)z~)51sYowFO>XV8}$L2uCe0@z+`Wwga@ z{NagL1!73y^a6Q7CyG6efs_ExuRs6_mlT6aQdM7e<3U$$*bGcrDo?6T#ak|c!2|_)BE=6atEBkzC zVkF3fDV6MEZ`5tzHMYoiU(bZ2-WPPeZjeL|GKBs>Y>?W(_#@X;=^l)afU)ViyG%7lS<~p&2$QSu>R+&ZXCORa4sdW(na# z{_=pPgL$e7Lk7Qt%PoM5DyQ_AkJ;YPb~0%02y@AUs3wGI1R4l?+(m}XOT!&IxYmJF zA1CHNMep1I7~Vz z&`TcRw!<+}i!TG=^5kEnWn+2MbxAsvGwFOZykaRYDdm-EqsT!CGGpkecWs!Ix4sxL ziR|{p-Us2%`Ii`k^h!#jx!zeWbD>*bDm4MnQxPuY>abbqHht9<15<7xqM!9TbXJE*8u6y~ZAtOOcQTM-L95EM&?NO1VBO9u9CKx$mD{JVUdR809!?G@9dCMv ziLlNIAI*8sHgXc3nN3X)VXRy5dEk>uUki%ZK06(@A!gW&g-iX00an)9`f3+K#o>lsh2}GlXIoWxEi#lV4`k>qD=YHvNof04r~E zWQs%hF4g^L`|b{eT<&CAf<*hl9y8Qijl>Orj+SU~BsJ@^9QqJ(p)@(X=9OZqi>?Q1 zM-p*7imFaiSl_}EKCn%)Zq~wLC!)$O4C2iTVw(zv(;lOL!cV;Nol{lz zMJ3L6q(GSS3+2R7K4%K9Tj9& z7)R4pi17RG+hLpRM^8*c7U^%{Zt`Gq`%VyjKMx|>r73ecG~P(Ke(=BSJa|rAuT^;q z4x-#*av_!;x}&$hilR&sD022Z_;F+Fr82Y}dY653(Pa# zrRJjZ6_VztQEDL4qe|j0QdGysWEOO&W9`;VhrmnsUAcJZ(i>tH4H(B?(Xx4Fn7d7A zrum1~!~Cx$2w=k40qEiL(fh4E|rn$Oa<;hrlD$BDqJ*GGgiQGEr32IO z9Vi*o(8ldbIbF4O@ejF=q*fx${4tI7%SWq=TqUhTS_6_$XSlok7!!vfTa71-p-TtDAMyTXBW*CFn#8N6V~)*RJB&k>gg-2q);yaFFLtTTdC!`8CmY> zl$0*Sk$=_ntQ-IeE{1@XmnS(g_CZr~Y<&3;S_L7Rb%5E;z+XWFYx>s(qsx@|;}PKR zRIw3t?cgh-=eui{sui(uM>j>QTLG0?4QcL`V!u$M6;!80*=FwL4P*N zv;T!9);}J*91-mI4fY+9g$e3iIqg5o0$ZBj|NXiV)FvlADrw|ei!?u@vej~OKFuR1 z!n`8s-6loX(Cs{Q`Cezb?c5V)%Jr8#XF*W{QCJ{5U`JCM^)yP&^RV-)@T+dm?d z$Jyy2JndZO<2l0@EZDWZzZ4Se=XHlSM?=={)KpT^jRI!oUI3#8C>C$Cwp!uk{z4Mt z6cFySmB70Drho2=Nx~$I8goLx&-o5tH|3^(+!N;iWpGk?3O*uoUB%nEkN&A>&(LKs zCE6!)8jN|PATr_RU~IL2q17$TB$;J+`)Q`;K5Ke)7TDJ19IC+0G``CC!%Jj^Ug?x> z<64lgzk4;`Q6ji?;>x_^6`~T95!8R=bz}&o)Ttd8Y{W<8K*ZcBAz1YK-AKn~oy@os zd8EAz0W<%p%d$I6UH+HusO+pH^>CG9EmUAfRe3x>n%bbtr!ujn7`szWMJVnb6Yc}h zGMmuZD`V+)E3I8JX+rp<<>Z7jWkWxFE|GpN3)K<&t;=nEz~}+5jjY6@P83U~GPMu& zXnqOX^dgy&wa4h9wuW?3bNi|45opgWCQ<8*2cwD#(bB3yPU*I+WbEh?DR0_+_TY+~ zig1j%GvNjw*k3ywXG-9W^ggZweDVyNTOo(-SHRS-Efimhpts*;Eg$0DmXpt!y4pcm zGDt)a)P)s-Jq}~sjz^}-2VQL74|UJ~5FL6;bLA8w{ht`g4?hBKd`BTIrZilqa-FE} zSUTK4SO=n9sZ&2YdXRt9BQ$k0n?q`Ae;DLOHr=+W>sx9@W457f6JfynROi*ij$4J* zA9R&`>>uJ1SxD9na=<2z#KPxn*6CvBg{rF`3A(V}yc|*S3CeZufA!54=m=bVZf|*2ksZVaJU(U%2$8dWSoAu z@32TuPnwfF_@4{I%rL_&RAEIv$zSCL>n0vEj#(P+NE@ZEN9s3@awuIPKP$OP<_FU` z+izalbiIV`9{lr=7KdKMjnOF1Hp;iez`fB5(>0W6mS9_ZXG8~IowL3d#YpuA?+Fym zeuDix7tonT7!$fj=QJ+ibFR+jZ*!oMVpqpA=Vs)~%ZQECR~VLmsFdG17A-aEnsG2f zb?LOt%Nk(>?6rY(9&$r4U2?lMTAJe+f%!U6A;;MLU05>NoK?#F3lKOV@~d-aeK|g; z$?@K1&ExFyl`R$1l_k7;f%h156`+bd^5Btbm%PE$;MkE^s3h2T*$kznqJ;TpcixS@ zG1 zif%Juoau`Jh3as#?B>%3$W8EepZsCiYn=q6j~2%35t>JW2g?{sIyKr5G`mc9OnL*s zy|oE z=Y2XKTRE?X<*efLhQ`+Y{+I4oek5o6d1rgCY1=ooNycB-FHdaa&a^&Skv(n1zeVZf z+y(P^J_w-i@7wl#?P@SCa;E64M;Imbu(umc8@Dvy0akPg^{Lt~`8g zS6*%ni&gZ`>>gw+C{NTmR9%453#jrv^Whqzh1P$D$96W~!$VvF&=EBshVZsG|NCCQ z|6#0VIq5odOTik?&ggSWS-n=oZF^--e|o;^Ayj`eB$Oqh$y3VNFNSno%Cc;+SFt7iF-^Ir<*?wuuO`H8FXm8R2Crbg3da3IM4r|2!hKnRK>sSBI5k+Z`Rgd_c z8&rCU6@B8S?D@`0ENlF;3m4g^61yKAJqI7_(;gUA%hHEaW6evIV_iYT4xH7u#igu+ z)11Sp92nzKWF0Wk$)e}k4z|<^^L>By^SmabpXKGV#kgy@rzkZy{Sa=EyCB9#TS!6c zz&z;C3VF&}s$Ztpmh}THt@Iee+K~wOHxaajJ*c=ucYvDviJ1cDKGJuRfaG83>{|j$ z^E1>%N*|4meIn593s-1CmtFh#J!3WU4pOBG@k%Tcy>-y+3C~qB&k|+X>Q%1wlW$MP zQ0Jpq4HSf`#bAs6T~19t<*n9J6Vp6fbARV5Es~y;H-_CzVZvsj{4!cmiMg0A zeqsl?t=FTpJx%?F4nWn|Cd%sVH;eI~Sa_JBJv3uNhBUjsYa!Wg>5ny)2HlfULein* z=3=XNyRKUS2khdUep>ksSqK|Caj}fhzY06*EV@i9$B-dGEe=A|cCNBzEnf86^K&Ek za{t*8zvlu*wgRRPCZeHjB7BV5Ey%ziq*!60E5MGZbMzouA+F?uTi(`_ud%12(}3{! z!j%)kjuLlK&>wjyRtv0ig^BsplA3olSj)yi1?-iF@i0$8?^$Rb^vX?Z5k6&6Q(&q+ zn`hz3gHgU)QGI>le+WWFG&XT8*9ooFnF0p7_Xj*+JU(U?@BZl8L#ADf@fpe`JkreG zd;LB6Y3HEVe6vQhbJC%RZ^9~LnW&{Joh=5Jq|+aLd#_g4yl%S@DO+XzgW)Yf6jAsh zSr@#xMU+YG)13qfPyP=lVw0K_AC;Ok|CCA?wCgb3PNW+qhKtKnlho=3M(5-vgn?u$ zkFLi-nIJXAwBwb95fnT!I+t)x6e=^}9)-<+mpB^Gx~-lp%n1(H0@qF1^8er2&IioY z*u)mDbcz<}Za^nO1{lnz^giEd;gfYFOlFIIbZTM^bnkCe$Xp*j9O=H*>&W=2LSIOnarF6@!6%2^ z@`u}$Wdh*hS}|_xmdRdTc5ChS&aK|E0O&gYFzC8 zQUc0Sqbd5E$Wj{Wl`s=5+1qi-Q1XW1TfVPAWm}}Oupk5JAt~FN)t>>c=unqJzG~xu zG3Fy)S_hW|o9_F-#C|0x!+kyGNu3gl3yow8@O#&AgR5%)<0V%k8(fRzqw9P11J3hx z>=H<7A(sm#8MTu=0C|(H*m$UR)*r}Mo@s{5<&n7)TE&ENJrmd2(jTtfEx!{C^2NcZ8H~wefs^Vdk6UwBManJ7K!z+v4sb* zNwW^`CZ<2G#gv*Yz>cCuw$v5x)+L?!nNP6{fFFo+cqQ`(G8_xrQppi2b_)p-Z+b}G zZG_ixESz)f@Iy-3_AO=vT5G`U83JH#_cM;wPlAo zfBVN6)MxH9Bb}agIGH`lswY*0U})XYG6!X8v7Zs}>s2ihP*}$HY!7A^PQ7%He9555 zI_-UXElc0CP)Ye{R7I{|EDGzFUrRkvi~=62Y2+ z{nX62FU4?V5XEUV@yhL-SGGZ|uWh|VfbIj;`-Umx>E?YwBas=m`{$-I#Yuj5;oIce zxGDQo_8hY`_P=fAayKye6Pdzl$gES3iiDTZ~_YyGfI~8|do{4I?lAo^5?C`O|C>%h+ zB8dj@K&4^g-GePO9pL?ja60g5baeyVjE*V_%8Qvl?kAb8dQ%gDe0wnQ97G}$CM37L zksi*e_SBeJQb*167Dg_=>1u@3_o$vyBX>1s{-)yiWw3E*R6>sCrBrx?*ygaQ^huis zAXgI^-$j!GtrjcfU!hszD$^c|7)2&Bb|1*0$Bh%1cJBjwX#iqcE|98nLMi-IO)b7i zd7}d1gjvXY+J<2;S|gC~!wYsYBl7gSy-0(_a)EcR=to^MA`aur%AyWQzak@?@pWYz zQ4$43OLMN?G>gn5!2W0N48paVPs*GhxVCPAd%#(xJ=|oRg2)sU=rKz}E`G;(10y`( zj1Wb@VP)XMY?$lhZBL)sN?y65$>qoZ_6*-n4plDnverN;Ssa@$0R;36ZqLws%y{}G zJXwsxqc!ev9rb2bwq^f1{V^Vg|8QRyInHQTS!bRWmWr4?T0N`Xzc7*Km1`TL4 zl4<^|OkSgqj7X5OQov9ZMeRb%OlxaB>o)wDnwmA@3+Dq{MI9SH>_e4-%Y~uOk~b#> zLkp^=SRj6pX62N9)G~7BGq)-MSr{}>xHy=I-opsEqWF(wqRdJttU;slDKqB4jMPA! z2=WB}rNj7yqUU4H`D@>}pQvhvpn>h|`>%-xKDe>v0-S>|>#B|MW>pKQN~+t)L=&jI zE=i&4n!H)bZrluG8g3JR?VInfp7~}VgS+F`;h03<{@QuMih+|Gt4#ytYNSvo*@uYk zztZgxl`|auJsldCi|3AX$>N>YTQ)%6D~0ut^KU%+_2hWtvg=}v$$S%jwpd2spJ6Ym zFZR{+p3?Kd1b^KJgw$IzWO$q>TH3PDkxs_=QO5U|(o(}U6pBL^Vgh0dZn74sEK=(Z zU{_|l4(mCIRQ@+Jgp2W5GjubZJINnnC?m6F1X&LxY4zZqj<}nH*I<@ZkY09{ROEH+ zqaF3%Z_J-@eW(k5;HP3iwm=9XhGe@~g75FhOz>9I(95#^z{XSRZu+&kD<2im_+0bE zvMgP@&$umuW(j3-y4^wQsZn^CrY~Y-**x=0QA*8?zL}rYa-dVd8pjit_L`%xq7aGE;Bo|gO z&L}z-1Ii+y#vpU1)k>+nLhkM|f#Q!&B9uu;2o@XTRIP*sCY8lma+y^Wtq$5+iJn_M z*eXdlA!VWm(}W-z2-zt7_`2B4-`RN$2%|C23!j_i(Xh{$+P$-P0rrCTh-%jtzWirj z}Zf=x3NTO@)bzZWH- z$rSoFA%Eam`}&N@g=J$khRR;9vT9XRH|58uM*UpEM`ok(QK!~PUv%lq*(R3CBnWyq z$QO-M|AU;B>e*oT01ICjfI@-PV0=4rdmr1h#(3covIj~{pR}dC=$WB6D9JFE4pl*o zG}lFVq)-s;_IeLdsqr=VrwQhi!RY_nAi$w825Tf^>r5CVngzJ(h#`}#u6n#oVL2&SCy7dUlugc_2teeA+xM~ z*EF1s-xOR_B3gPL(ohS^)gZzx2@k~c9bp+fP+mq;74{+m<>Xy$+=eCC;_m&6?h*py zSB@;I*i&kvVS5dhBhi3rhX#L4-xpq93RM_Tp=(ojTuv;DdcKmV!C!_LlMl3E_x|-J z4;*2b2PY?MmBYb3d(R!kc5JtIdmIucfF|^B7HxSADS%X zk#Q!`Pr_-NgGVoPhCqI<&$O|yo@zo|=_kHI*iTcTNw9}I|6vVOmV2WShMMnx7NLvy zCKn7+U=Q}QS^mY6IW;ZaHjZbnsb{ReepP=HC<_kRHfUoHMs!-92S3nB(PX5cMO;f# z|AVN_$Fem5>XZ^l_P3nUvqT!pFGn~D0VdOw3li|(K92tDxkia=s&e~*&C9P{DUDRf z0Q6rXt{ZiBb7y2}&ElEbmTO`WY%iOk$?SzyDdNEP?FY2WkrNaT@yj0l5AAIwj7@9L zr}h8K31{?;RzTNw8V<$l7su-TO&%<`>PULR(sR1BLX%27y+2RU5XuaKH%sMkTw&6( z-`Zd!o)pRCXk38F{9a&hXn@a>lt-~^Uizqt1KqwniL88Kf85XBD~AwAO$Ph?(}jl(GO z<5k6YHpoZJoDi02)dAceI-8ffZUyUJ>02kdh@XX}FIx5|e!#t9U&hK&dQj@h>tMo> zAWF&r%!FDKw1cqg&TqR@(N8fLuSEyVig|G-h^l>GH6W0^)q`jpt(eXuk_cleWp2~w zy#*IzQ21&!YoIT6s>0kh;HNnsJ=VJF0mFv)(t1%@X6hd-+@zt3XDT(28e79g{9D!4 z@=8NC&g8Tis*x2X7zzom&K?dC!#CKtH?Z2E7M6=8=>^g<=Ya; za9YnT`7lr3WJC(s{|+9gKD!BLd)}G?r&{#Br8cFgS!KaD&qC4vr~orS%)dYwKLz91 za;pD|(8M&|r# z1`dj{;*2#tbyQHiDD(T}lQ&VtI`kZsvOth9mG?J#>N$Q2yLsaD^9QxeUAI|0Y4Tp1 z)<^K2_A#s_IR0uP+R-A6*7hu+0)Fsx5^#75=@5cqkIb5AksD?GW135&_T<_iIWM`* zCh?t~c=wIQD~I zPDza5SoT)FRgym&WKFFk7z{Q*;^C*Jy@o|;)?=<#41k>oEMHyC--%tP#8zI!eVf-F zli}v`04U>7cKGKUhN5#XO3sRSScrMjE_5YASey+%Wy1^%#Si^BL{iUMI3{8ZUyP8D}d}mxPIo zwdjQlQFtn7VI3<702bkuqy%#}UN(Qc<%GLZUjH~?mrN*|`vy$^z#r~l5zu3)mGgL{ znGM94gY1o1A)7)!ZnPN}{C1W|KS){->6!F-W_ZktL79!`GO^q|^ru7BbjJc0G#szwRhieeRiogaBLBZo zhO^+<3Hwm<5b%+FxTg+=@ddma$4!+G)x5jWnl@HhDuMB8-LrdJ6)g5cyVD+)KMXkw|0{os@lSL0{7P@m%wae3?9Drce=>(YTBcl z_}}kG_Fw_#oH@n#&h)_UsX6y!efr6W30J8gCtR*4AH1Wcr$rFTg`Q+xa5=PW8Vx-R%H~W<{GqV|GY%`*9`1H(6 zRymUQ19)J>=0EG^Adi?$t%YyV<_(g zwZw``@}B3t<0#-k78MPOl|Lj16{Woio**arhVHYAXz1`@hCzmBnPk|3*$}ZIP zBp!0)SX7%fn8!7V#d1}{2Z&`L#AW5)Qt(Rr7vi;AedPr^^%K`+%CYMfx|WtD3K-sR zUifBkrN9q{n$29w|HE{H;l#hO;w7{t!*N}U*R7npY3xE#kGbq8({G31yhrHXe~qjs z2IQ4JEXf;EI>FxqdS#M+f=)kK=$P20vNcuu5mfCkCyWQJzX|k~Y|-Yc(?emvkBOWR zTM=XQGDuD1l%(lo+sUDZSoVG+P(@nS0t2{pUL=}ux#kXMK6-%iCSLW#QY#w8fOp9A z>z9L{Jobf3q;&o4cxD7UXnXk`Hgu@YrQzrTn2;$4h|Jb9E)1Re`r_qh2;~=I?g$+n z6(FKNRH+=4kotk#WET#*jL&vw(rYSH}5hky=vkE%3M?qAT(hmphz01 zYm8=F`HG^ZBG8r&b^^S=2TFS`@LzHtdm4v2z%7DEJpW=fqB$XdBS5}Z_Qvya7^8VF z)?+Ezn{oyjst-zTF@VFNWmY^}CuQVp0300td??pUFcNk$ve>1|Ef&}aJX6Lsh>~wv z;?wj*DxIIuIBG13tpVWIriG=hEig)$SuFLe>AkL1P^Bi1m%0%PaU*#^xLz%zlv(q=_G+e3(*RkDM%bb~7P zWozvcOg*7?!XI0GG2WChayZksWhQYjEjSttf8d9|qT+mG1I-_3cJz{m55!SYlMnQY z>+ePHmb%A5gEj}LDE z%5VdiEPIxlQap<`=mSJKnvMuLJUAaWO0zaFualXvU~}8OUWhg_VlrNPoq+P*_@Q4- z4(&ou@f)>)xs(+;curLH+~AvHl@%Xa}u80oYD zxC8kfnD@NCVrpW~`Iy)gg2j0{dvk{D@RLPp!{ibxTn}b&~p&e01VOp9=)O`o$xyHf|MO2P{3Lxj-==j~R z1vjjM+Wc#^z|Uwz@Ryc0B@Q@C7?UPhT)DagDI}l#D{^ZF1*96p{{eZmc&2t+k5^|& zWQWYEp1wgy<`A|A3zdnJ6JSzX(JSdzy9p!FQejB7XbvSxVgJ)~QBrnjK?$T9I2Lgh zL9J;3;EdSjdW3;`bDZ}zE!@KY$wVfa8`~B%ALA4soe~d8;BBQ^WLh$y zB)d60(Cd#3|9Y`fPm)lW3Be+>YEV1BjT!0|1kIW`PuVO?m~pd%^QNTVi)=B$oUBfC;)~?R&_+)Z`)$|?V5+2>Av{T;A zPVN~~%`5an5KR+nPdl}?Cbf&}WWH-_00GaJQ7rn2DxZ1cH4$oS%8C(DyOF@O8SkU+ z=aN913_?*&N>UMx!T4}PyO+!;9a#zs0#`MK^7T!rGw8x&2h1asN?%U_UrhtCZFYwC z6`-k3;4!N{HWO{@Y;@z79rthP8qi-WoLLT0EE@GNG#0lO^Ya|uq)$BtBy{;mmaDSJ zYOe-g0wIg#&}jj7sv)J?7`y^nJX)Ld&Og!VNft9C2D~q4h{g1Q8c&6X=n^^$aU$rU zt#_!9eDTNEal}6+BDzyJ7bXAU#rgHk|F??fwV)o=q|)Er3TM+}>|Qh{Xx0JzEYPMq z5L*}$G&d=Xim+S{_)bX3sWRKqiA6HvL?~9lP=i2r_jiQ551Hov*Rvsu6N+o3W0)y4 zN%=b2Z9tTnmEN}&E5ToxYuUu)#@5~6_@Fz&8>>Rgvd`}3&N3YW0#~m)y4c(Q&Ts*= z?3@Qo-iL=PCq>9Gs#ehl@!ZGG)Qnl(zV-3pBJXQcbCsRB|BbeT>WYkn090u~7)xU% zSzt;OtmB2-_{Y09z&q5rX^79I8fYvycbU==SXJfg@(VF&ri&$~9bh4iN`~U>A0JI~ zL~EY)NK3#0ysA$C_Iw$wWz|=cPT!LCEik?dY#Xy;?`-5wETB8Q&);vht2Co zHsU*Oo=8xZ{!*Nx-W3DD@`Jb|nUQ+OGTf+hh_DHQW&QR{KL7sWGA~u|cgEq7o%_#c zscbV!WadN!j-pj2r({D^2Cl#-7ZXA^K_V!;$e173*NZa_HV`} z82W9j!__k>eQrg@WLq-#*WkZ72UwPQ^gwL0YS;XZ+&~ zxYKtWrP5EptVw!U+EoX^YP%rDA*ol!xqkBp`s#SuRh7$&zEv@Ec{6aS(dMZhJ%Qwj z(vR2u5^Q3#a%-1(2Gr>d#WejsnXvj|OD@be+q8msw$Hel*X9oEtpjN7-VsL^JLg2h zy1!{{{Ar_f5-rg@j^6d?2t7?D#tC1S$s=;yr^LZxvD#b(T_t5aB1hvreh1Z!1xaCD z&9@Cc3QHV8%gV-|CN{xlEeP53HeQC?gv!J-E~NJ(kT{TxTBG3rfRScE%N2>`Jt0zo z7Q2e{%qH;)TWji=(%%Auk`l7wTpz7U{}U?evMy5_jmtds1T%!w?WX(?j=iHkH^SFa)pEQJH`CWE=TpoToMMgp~U>_J)10(n+C0{yKIXW!(MLz$!#|bjVH! zAs>zwx~0AfI6}H-sYl>|2zZB_OUu4_%U(jwB^>;4k~;qoI)02jHDb;$1BC1A9JRjL z^<<-O^>>zz^ac+&Wl_`zCSd^~BJ_hfpr-ZMHOeT*U1NX!x(=~{?yor+q0K98*@Pwj zK}e297xTZ;j@&j+iI`R2{x@zZh^&MaQRWyfPEHq*FBf)GL9`6a%YcEoiZ-TyL*@-) z_5&oP?6tO#fM(u(Q~@qzU3WdPdOU}(lK;|Zh|0tS)7VSL<`ZqONIUpWNKG?Oht4&= z6Z6>&X*din=%8^$vGnBBJ7j*2#0iSTfzc8v@bA*MH-y(awTP67hDk6d_UZ|GM~Y5r z0edI9vRs3bu&!I1^_u}~3hRtBy%{gaNe4DV)WL?{hYKuKxV1MWMg~rTdRn=p2@i;N zl-R$Vd7#gi8jF?)MIH1w)i3&MfZzD#F^Yha>$T%m^o&Jj9N}E%)!w`cnI(+*<5Hzy zZg(>QCy4{;5n>1CmDhJ4@|T8BIa}vydgh()rcO!Icont9Ss(->ZECbDb zqtx)~ccckbTEp;y8`^dNK@&OJl}85BSW%~?kveWZ+#wJI+ZGQd#K8GTkRVE^cNb84 zLsX(0fcZYR=VeTMpviOsoPxvoJByWEz@(;jegw$0C*8Y zZRu}UabKE1z}k_kGv>l7jdC+^A`fYmcZSkG_WA6AEOg)h!Pu=b&u={XulvxW+p0Mp z!0eSE7Y?I3k2Hd+-1jlOOk)N9s05%QmWm_oebD|IO*b&8`GH?U4MW6__f`8l$Bw1y zOk6a*lI;GVHpy&9v4c_EI_0y{X0qyPQ(y7fr}+jPY*3BU?VRuQ>@8$28tU?&cR&HNJjc7r8q_RS=wa25zj2pXdDXjZTA%FWhO;@;;}?X zPo{SXSN}Ch>9Ql;0$H>&&?Kf3-q7uNmJ5+HC=#|T)TKjuGZA2cXS^s?v zmY&VApgcs;>Z#3E9Hh{vW4ZCi_lWwL=if(lRs?)N=MgMV@-5(XW*4CN_YE>grh7g3 zMP`JEh?i4tiuH!B7KuDV#)5u(qkWpl2K1q@Yk{*y=vk(4Y|}z0`PwKx5p;=T@;a>& zn+|8@OBD@;a01(-e*VMH>ob54uLldpSblUp5tHsYSFaK6SCvF?Ih67iOHJg?1N?rm z_jxwjY#?9ajGfAPN{Z!j;uubf0xp#)mu~mCr_P)?FtGtFp$a0{DM9WS0JMiq5Eza{ z+LZs0s(0*3qWjzQU}6jVxBh%n%w-*H^d!GX+`Kv&#X->Osh0`K#wL(%VD;U4$K3cS z9hEtv--O`wP#~SNOi+p8Fza6ht5-6sOLl5-RM6d>9S)JK05(I8;2th}@re;Z4V!vs z6G1^Llf-CBCaiJUJiA`-UB3?^wgoXcIHLYX6Gx_l57LD1^RTbKO#j((-+wFTvGn&9zwyQ?x#u3)X z^V!GI-ZkFHj?1R`S?C#+C{Sc_4D)+y5nXrjD$CS85c-qhc{VZ@94Vjd-r&8Bd&l(% zJ(9yD#S4911psM;a~s)i0kLr?uTj=U==`B&eCai&Ud;BE6Xd}ic5-jha4^;}b{Va* zvIQ@dz9cR}fDEO0-li^J^hBVn_yB-7VLN|V5tbM?m<7U$v&}mWz$*^7JetHA05IYo zTa<-#zjrXwEZK<>S+|bicEa#el(lodWB`w!j&G%$Q?u{M#hkNa%(B<>wGix+n%*>< z>5%Pp6;V=7R0$H_YY*Yp`eu2COAI!>OTWxo-gTt?41h((f^hdizy4sP5f>)StOnvz z5@6?2g}1-E{bA1HcQMu3;Ws5Q|CH^1W|blWwKN*c09%6R_Q&UM9>xGWy}J`;v}fFz z8@0{{8BPK~cmOgKB`nt9#(3O=d;!fb!UX%ho$(7K%s>O0HJB*D`MK5o4D?=uz^0M~ zI7dsFCC17o5>k*d1i-811vbE_t%BpXM@i=Eax|9FfhUk9#Xhip_NV@Q)9QQ(R=(xOJFi3*ZP*%f2k?yFq+&A0sjKD#wluc@6t}OISrje74 zewV97FHGEzHY)w^U{*A)LW%?2@@Gm@qBbNJ1D;dIlH zXol~%+*(KMVL-9lGZk5R&@np4>{dI%J@BO&X;B(C?~CPPoECiAt#e_~Q-nsm-(+N8 zzo5Zf=S|Ttvk26)V~bx@-+)NNLVRg_pP0&m1DbCHw|&X(3K7YARRd2nbf`NPefR zDlK1rlvu7FBwC`5B&pq9NbOQh8EXZ=@+*RP05=!>Ba$g-@>_1F5C$Z+?;Zljvwg)L zL9)B!Y3yRNr4ixx`otbtL$05!kt^enp>;?0X@JP|a@b<-D*wV@V0m+%Z|OV}6icC7 z`2DJ%sNLf7%{I(cg19;P1r2Ags_DG5o|!R#-ybHp_ob|u;{h$W4FtzooVI#g)&WB> zEDu!xoOrA{P7}S&-?cLDbVkU)V#$@BG_^Y+FfuljKn{>YJ;BqK+nk$bl_+Fz_h+Y? za_Zk72Wr2cwGM=M7earoRm{_&+0bSNLTi7@Emr!M&4pa;^TJ>`B)`_0NjA+{b*>k@ zzL{BGjb&2akBy{1JR62>KGWknbKtorhAxe;`R=2B`5A2zvaTH24Z}kz_xgP+Fma;fO)S=nMiv#|Tw| zM5T(TmZcU?e5Z+E|Xv z)UBO!wyG*BPRu#mD{**eDXibL6Y3-CWD+bpgZnVOCM3=|XPxS_(e0a`0Yc$vO+rki zbQxeZHKHRk3^z@pa5jTzOsCFZO?xSMx7>UCaAIR)P%nYMpL#HdcLcx4bAQ9;Ak+u~ z601ig1DcK!!mitXdX^Dh9fu@d@Y^71Nc`WytUeeWa@8uBf`98f`5i-%pq(Q;S_ zQtB7S4Xb9ggWW2_q3oN_x6(BLzPLGEv|iI|x(aO2S7s>B#q!K(W*6k3ziG8&QF9vy zaRAK46&F*velrRZZpoV#$0G4X4c1jl^Oy-HEJq*bzzV}GUbe-aQH%f|jch-#5X|61==FV%O4-m`7m+X~`x{h5T+^=cFz>#DS? z5h#CDAD2;=Yc`f5lubkF4jzjLFj=0RnL?iA86veT*~@({+G6brfvWLdXmtj2Gx87P z#yr};>#!!{KK%kKWN{V#XlNVf_HC>VgBZM1cXN7{g}4q7uDg}}BGaq(X*()QK+$~o zM{baYVuReGmBO{wPDd+;+(*&$2PH8kW72LY!p6UI(p_wUB)Ucu&lU9Vee>r5f-t8*EkO?!(F$pBG?SPO;;nr=>#Q20g!sD|xHe=>->4cPysC-*=E@ zAC<}syYNm>iw*Ya@^l!tH9xWD-6ri~`sHWN!V_<~bp~#d`w*EA;E+;5_&FkrWJnPR z)jho7l?JYo(l12P$Fi51!yVcaj!6K^b?IXDMF9AwM7>f%8;6Q4=d?|NpAoRobpm!!IgkNL~tS8flud>BimUV$M-u4TE zTs1{YMQFzS%(UGEVXvHUV%}KO6%$ORmN(WWxC(m!_1S=Gr~~^s zZy&LC(B4@p?LF}Wm?`&9Ev!sB`AZ4{I5ULqQXPKN<#vOpiQ^4$V~E#oR?kTsc|M zGCM8FnQiPFT;V=C**^&Pm;UyQ|IGGW-2NKrxdZZwDFsgne+#}!Ca-aJ_eoE;aP?T& zhZ3z-x_@wa$*&icBZWZ{4E>a_!9AvL)-~|67ltW&gWKiKcs1hF#So58E@Y%R$LDLu zQq!G5Y^@cyaOe!;nGhrg^hVLo7|+P|2~E)a2j*i07&dU>Dnyd5hKsq8*xjnMpg$M1 zO_2HZiFZUv28WF8{x6;0^}^paGfS8*g-&2IeUC}z6)wL|?Bi3fbGW3i;8+;g?1s71 zrHgDu;m9Ew5{ikxF`n6@U)B3A?F5{*u^XL=20lL41%)L`(eE;<6Z7nQ zZ(*jfZ+Nsyw0Mu=ankr*AVJE4|68(LU;=SMRI0bOUcx`T51qMTu5j&NiVc)*SdK5r zw;I=Qh=5ag9;x=9iFcF$(!1}#c_aaLbhAW5>PkGL;~Sd@U0*UoEVVYgy-<6LUPQ?) zv%4F^i^jcA9EO)6quyp|f;3s>?OlD=aqplJQ}Pgop?e5iGaGEJXFcpg1k+ zCA+Cyci18Ts5nx|=dB|km!?0!mwRuqUpU}@u6nOiO6-OvaPf~-Xj5|mR%Q`|T9^ap zPal$STJEfXB3HgA4Cd^=STVB_cLIDWLd#+t&%J?Ltodbo+-T}RSKRrYs{WltzdVgJ|WdlV27o^yIX%6QX0M%I! z`QKDFe=Ch!8WK56pM07AXh=VrU8A+XtmwYZuAF!}gDUmTCF}c_a7*Iy3x&_QvJd11 zTjktsHWtkp4g7EFp6LBaS}23oLFz_|mKu)s_!9E;PuuL~q^iW*n7~%ai6|B|JnK(}u#OvbH8QS6UIjNn6qAEeK#V&^$ao z@c2JW?e4R5MH?n*fp84ZiB}j^fTrJvu0)jjPmY7hUZRJAt0UhkJ#Y46+e(U*n&KI; z;F;u<6C{ua#;|5v!L-=oLWmi_inJVgzkLV}srP7EQt6cJ&s5`-q`)thZl@oSCR@1Q z89c($8==Mx)Kd+GxcAC()?5@1Itvn4PCXRR;mfi$E$8i6ap`HBiQ(-)bhIHt=y;6}YM8)s4fB*em)Z#<{P=iw96iJrd*)(}J z%6Gk?j^>1_U1(kvN~?=zJrNK2$wQDI)zJigJf0fl7&Ua2jsb^Cf;s7f5xUnsY;H4j zFa)YDpj6)Z{#7Q%+y#D7o@@4E7b+eTR=TvXDDz5WG?SL^1P@_s)O^`~;_v8aL(_rT z8RhTAx-eMuC`wg`R$;_;pLS*k@yzuuU{G%mk94>OetF$a96DSxqGD3`!*vIepGN<8 zp0@IjS<9tobYpnPnf*i{OVM!(7UBY?4pvp}$CTxpe9aYz&5)5-+X5t985ICHM7tqc+e@m={^i=cfw=&*_(&i#6{j1DWU? zEjRZ!Sv?XuWUHkE4{RI>oSsO0v#8(5Azd(5QTl2>KiEnUj3UH?>*+)Q4<-8zY`8&zpAz#4ON z@iTuSo3~C|r3qfgNP4uqcox^euU@YxydP{9irH(33IM1d1r8142_QgQOvslQQ%6kv zCgwRMoT|nctt*jv;P?ediz_hD@$*V=qQ3Kras|O%n;VN#@}HQfnC8PNiopfX?CI@m z8aca*#no`jm;vC%yG99n{l7>cDj-c0C0OgA*$DHLBARW^sI&2K^{tKy85x%M6t^#l z_dy-2HI@%?jx0u%ab)T`q4_{6P{!YEF^K@Qys`66I`c0-B z1}h?196CrQkrMX?OKm$S!_zwVj`jhP*yu5~_S#1Do?g~w9<(}T-a)iZEdr#;TcuteA1o?*N7(KGb3!g>{cHmYIB6Es zVU`xe3wi*9WR#SR(PMP)fLb_0QA?5xs ze#j>Te2aN*MLu$a0Na(-VzCE}ZuQrkf3*-v51`tOGngmCM$f>?Cd~VA)3M^6Kfi4$ zA(nS0q)MZjJA9G%jyLjqDQ1dJF6bOnbFwN_)~7wBgjcIIogF_YKFyds`Z}f!A=Drb zlo~dfdOT?%(5`_Gc2m$mee5+p4y*hv;$7W3JoOs8A(w3dgU>e>+^b#yA)fHJwYl@p z+hmO0Db?Fg1RP$zV7v~NT@H{*Zs7%+aG8~md~ff6X2;C8}F;bQ(_q}|;5bs8hX z@?1$(_={i~F|H2AXn!m#`2p9;u1Od-+n#Ja8ia7rmK88KAVKUJIv~Q3p20>3^5bV% zeC!JHzGBvKbgQ5gf;%l-X9xo=h3l|;{-L32QaM9DqUB zde?&(Xg?D&keAeer35k$srR}x)YTrDg<|@q0J*Rp0tx!Ho$ovCNhJ5&f*1hpcP^^w zA(&wKlR>^|f)2$CJn?bFIsFGo<)EyQwo9otKOKTHo&cWeUjhI*WS=8*gIe_Kz054h zIa-x3O16MQTl0|FwT!PxvHri6hi>pZd7>XR1E0W5C(>p;93RE>Hv3CPBnB4=$`Q7Nh9{Wk~dQv zRCBh@d~9`x3F+r{42y5q5@>sJG`M~zs(o^FL)}^Hc}(j*hmtZH)E&R0VPJqx2rvcp zNPlQ6n_?aC-OLPrv-Z%@pq8~*Ftvw%G9_OAQ#_6(&wS|fcLY<0G_JNH}ti`zsD9d+BaY-G!SeXWkNX414^~xdS$~ z(oF_m41(ft@KTuLM$q>#zXi>xqicR(CSVYC8FKWjq0k!@?@eCR3UE5Q%AK?aY4fCL zLm`^V6f3Tp-l!{xT+kNvG5z2{Oo=Qc7hL==rG?v&q^>Bm_qokPG6M%5$_&Axlib;k~U8 zBfcp+s4H&(GtHu#;mQ?llI>z<2Nr{pyaiuDAFf0AwjPoQp|&nj75Aort6vC*eU9bk zr0FSY`4P%1fvWmt!st*$Z~tVmwNk3gu*2L=b|YlFH3J(Xj^TJ7f=P1YM5lJ#4gE-T zvQeiN`wXv#*_Px|kY_C1&iNHYa$&a_GRmHNFZ0Fo|CJV402nI7;eRkD8* zK0X#DUUA*}GOlCFcP0XCN`^|d8S38|#xbpO@~m@wF(UgJ2$VqAG*E44MWOjy-iG(n z{M$(6t+lb(met8tBbN^)Ln36fN?9`sT7iaK5u2zPfFAzL$nEwSdVX2-g@#AJ@vfaM z{Iw|0bV^%(XC24^Q`*64_M7YvFPMvzAX4PVXw18A2Ygwxv`Jg3-_~Je8H+lrQ;2D1 zoV6==zF-nvSvEYPMATYveb1+!kezGj=b_A0{1bX$RW#{9ytF=V%>%B@>Ldz_rk}jd zRhphOB{Z=h1SY=aL-?0+OJOv-ZP3j+vh2|icPeuG=(+fnzQ2}MhS8RShTgEcmf^ni z3B_IyO0k?cl`-QmOP?JtpzVug(*20R2H5IxZ|9S9&(gCFp;tuEI4Hy(_dP#aatn5f zMt%m+-6o%*jvkJ$%^@kCLwkA`CB?KW-~A@{v~;H93r9Jcvy`}4`%pnLn!2=4Hu(; z6UUz}PJr}OfmEeMEo?UR4U#h+A?d_g5qxkliM!rY0=Lxtv8FCZ%B&58LEdaJYbu&9 z;)3hZzjzq-X*~bePoUB^5;5DY`bycWB6w)kRl28UMT{SdyfcF(?NL!9C5ONKF*8|G zX^}Cy4v)>rg-|M+BKe6t>HzhXDN;t*pePm%*6@WmcBb#Uq|@)4nS;`~u9Qp9E2f1* z?KRx5Oo&vTc{dHeKy@T@CIW?lpZScWMB~P_NAPH(c$p+lO!b}$nFD}UA=?w+2QIHI z*A2~DnMY<==&g7!&5g-Wg-3w68zR2`9F=E{^~?j>&*K$XVMuh*oASPUpo_esI1X@Q z4#`#|Y>y5HsSWdHT-ZD|8d7|cF$?<(ZK74zw#^RZa&@r&82)QfHA$U>PGoLtTp?I7 zcg4BX`XG^LD|c~P(sPn4!F6+H6yPJDnkN75V7`4aHPOd2q+<>5yn-w;aJ-wvgadh+ z;SXv9jqw|=ucUk04ukCQN@K7L9 zarheHUk&ajKPb76E5B6Q78ZvwG(As2+5hz)k7$)p|Uc?7iuI; z1D3Iy@WIUBAZww$Yb%7UbsLEeFarhK$=VESs=R68?Xs@&L1gOdcyr>istL$XkVNr~ zTd?%p!b-+O#>V-0;O8grkV|eFbn;PCMe*&aeVla6nw|H%c@#g=qqWo5pyMFnCCpuk zei-`@8p}+tyM$zt?!{IxFV{~B#eb`wNGDtQk2MNn{q#woc!FOzCjm(NMfMvzEPCS} z1*)&ai}`N&7vp7KY=V8WS4E9V!g5kSrO*jN(^?t8eeO5JShiUiH2zc>bFqn?1+cZm zgA5yZb`fUqV^Z)!|M7^uu$3Ryq`cb2E_(?$zIHG-Q=OMI@Z)GC7L&vZG7MJ<8?Yw3Ur!XP;-92@`u11t&u9DoN61Jh0( z6=bU4SFy6LjFQT22cjq;fRt_54#4#3bnh$&A{2Rh1B@B39cO3 z&=23B!>1UIC*JF+8tjnE16l2cqw?IHA2ZD4r`ny^P7CZxEnXfcbBz0YhD(X4f>8Zf zZaALQKA@^&=gk5?0du^9&I6M2bHGe{d8_84zfL=H_A+T;gyVs&Iz0f&G(|kV~ zL@W-Nr(}W;cK~!jmSFnB2v;%VNU-=1GoXe+QB9c*n2$9c+>lki`BOxkvGcFa--;3+ z>>E&S9GY$$+#+|?v_R<=$gMsc#iZM0Q%xtu} zuT3WJ!Ghh4iE?nH2u36&Oo(GtmziWoy72^UizrUmIdlB??6)bFGpjL|9kEwh0~ETA zNf}!68;EEu^}g+jQ;abPXsjz7MWATtog~wYI2&?efC0as_L12GM^QK|s{sB}l}+LL zFQXwRiit)KnRi7_Y_!8V%nFKR%RlgEPk;ztOe1{bC3?i-j71agL$hkK@s3sj9%)uA zmAsWH`4^YIwJy~HX7%YlvuPl$8sjSPMc_x=s7Eq(fY)4~Ve!3r%2yg5#w4Q4c6z8= z8bxb!7X^{<1e>yn>mrMoT1&tk_~aaZI+^BRhDyT;2InfMB&J)bCMD?XGMb zCE-EM^W)%%%M&=J72nRV@!;kN(8mPZu$A&{re}MNho)n@fSFu6msOLQosmnw`O9gp zq%q9o%#5#Qyv+8a_x6m89b0b38CCrET#}M;{_>Av45%C^a6dH#V*WE_^mkTk-}~Tv z?4~E#p=L*ml;{OAcwWQ-OpJLowM-WZ4?>OgB~*WG1# zd^Bl~AHy(%WGxN?;GkZVeL7BLuTUm<(6d8gn)Ysg)Jl2eacx_|)?SoX`(XtG8{6u6 zH=+zMckL)b*{;-A9p-9uTEegMnY7DC=4OlsG6%1b zRVnoH534%0;~lkNV#%lo(&&J|Wx54=_}OtE&)lPGsfwss&0)hENqO6z1=l8N33UOoJd@nfD7|iy5-NlLmZ?``*F48K}#E zL^=$4p|xp#twNmWb_UwTpTjyw!&dsKzB_ci2qAC1&m890Z}sxJWFf~7^O-we!}hTM zvI$nM3Vs%NlKNp7X^Q2muR$zgJw&8O1X2b^OH|$Ql3SbkrAg>aN4ew>Fe4(BYQq&uXk8gLAm`b|Nm~VaOacpei^fHI+>9t zbuHNYXL-ZFRj@3!;=W@Lo#)pc2d8h5$3x3-Q_Pepb~Q)#2BxQK-d2m1SLt&a6m22O zPo^`&Bi;#$2iYRlP`DX&9zc#sK_ZIphA-}J@0{LG6mx+&sde*4oh*j4mRvk-lwLJK z@M8BnRcxR$ijG})h^MBNB_F(<`A-F5$++@W?8HLo{(gP;(EUn}7u073a&}OJ2ca-D z4|sXExgBYegKMJv=~vJqFAnF5(N4ak+~ zYglmzKCg}^4NZQanjoZF%Uk!m6YPc-$Ut^dXj#tNuE@sOe~;WYpvKA+SNi9H9J`RQ zlywFGm}t&#yLsV?2L#2NY&*_Gd?563WBF4{O{UsaTowYzg{N(D>@r~?2p!eVAyD^t zm9yQD-@33Euw%$E#4=N;m>)YVGC>yNW?nH0V*&`Bg_ImeZ!cJea`sWcta-YOFpJyt zA@d5QQGyDzih2J$#`B=J0qik>Wgew()}!qnTmgf+i9rg}(j^j#svq1lq@n^vRQ8gB z3XvGZ?xjva|AeMb{F?K}^9zP<*;p(Xk{oB8K=pg)lE~CuT4|b|D#;<@W)c;};GD0@ zd&E(L>a@nJDqh?FQ^4P5^&VjWW#uyYy=2$i0V*z;E7ry^X(Cw${0vrx#nR%K^}ZfdQ!M{UrRZ`K7vlKefOJzs=5D`tc~=kQb4d&q#+VRp#7zo@K*i_& zC!BBlP{7g=F#zHkFGk~HMbUScKtMzY_Q+hT=MEX!xfHL~>jLMGheDn2N4AI(|6 zq;k0M&dG2Cz{HktDd&15mBGvhLm&uNakaL{eL$<)Lp%LlXKOaY2T6eQE;Qf_-q$EK zN#)w^HcMXf3k6|Qa9LD}7A5YoQ}Y#>F;v@2!L%_ObY*Tjz6Uc#c1gA1Q1iuoz$(TI zTp+9j7)ng2s8^GXMfq3v9M!}YW@b9f?J+f$tfrviIj=f?lvf>buGUcAWy1K*PO@BNin7+C z8IKGe+JXn1d$Fsn?-jq=sc?kOZ(&8{tb+3?=`z-{wAtuxi*chZNnNEj@K&T6C|R0i z5h=tJ#Gb6H(T!4?ZHnQ5)+3O2KCZmejwe29u2`s52-IujQjrCnIyaIaT|mjIa??fm zs#*+IOD9=--YTyzx)H=LJfz_HuTo#^fB`jm;Ii)b9bq16aA|0G`uKKhS5*RZz!KWB zOUYpBQi;c=ma(|4b@La1{$sOck=qqU>cHpNL>VL95T8oD*D?yOrs{!sJ|5?^7sj9J zc$EL%(buQo*0_1fy~kvQ0ayoF(w)#5Mf#a8{YJLz40uvU%xpD+6VZ{JlUC#0B)+A+(tfrRM~hLFazHmEp~7x%qhT}1 z*2_!UhAIQR0+u`g04u@i9%=%i4fbE&?kqp=JhR^7+me+hsSZ!g$BT}~1{+czxu(2V z#SijGz+FWn;!#BWj>W`4dTgo=KQ&$6&ncWf@kYLGO&SW}qfw`&w*<+8OddG~c9{V@ zyuO`-NG<(e=&VI!5+2_nh0ptIwpSP@4KI1)Tx9-2l@Q6#eGNJT;kZBm2Y~3|D&C%) z0n?cOeHj=Q?t?VwyT&OAC#}2}2NJa)CcK75ZBoE7K4b~>yrp>WJOqT`{by2%Tra!+ zADnHjPN*S6wHm_yfhqmKMv$w8N#J>@!4*~%NgT#!N=2{{gjrP=UO44p&Du;=5ko0OJq+JwyI@>Uige(Zj8KT z9h&YFjU<||gv$N;e6{`d`08<6v!ex8xm&pHHmp7<`M}Ub+C%4It6M^(_*rQYRrRGZ zSC45;h1&>iYHY#gUo-%~zQu>#%+c2 zxWC(8c7rMZYAM|RrK;?kCb$`GEEP5!0Vu0qQ?6vpX}eKv==>y`C z5DpKAi7|{yJ zq<@I`Is|3uorw5Q0~!SVB| zNzGk0m?Oa0IcY)9BrIzcqep)mJRs_ju^HVXiN>S7U6&~ew$TRI#)GLJ`v=72qQW&s z|8}=T>9OTPO*RdZTzj&{UQ3wl0^H%xf!To6{0*XNE79;_F3|utRaez={GkR_EVifT z0*>RhsWSu&Iu4vo##Qsa5!te8@<7xl$5=d_Ba!4`XY^3{hpp^*UysJlyjL-dXuumE zPXqwLAIW58Lmz39-1t3qi0F|Y^*Dg+ zJ2F~M)+0sdeo(5CGtJQ;N_;8(ZZnO_1nbjFcuLQ6ETt}_8knVu$@bIqqE$xS)b7x$ zi8)#2dBellEp~L^r#g*KDrWAkTA&S}9`;27QL@?+eZXq4sAd(Wf@Q<5;!yYrL3D;* zxIM}>6)NK11CfwWQ{oRSbFLpPY76IWoCWEH5cImI6o5;@%R0m%8BPbinsVyM996zHw@Qz^s;)VB6mo5Hr%s&Z z&1$g=aIy88iD5lKb<~&Iq~%uEIK9Wh2z#&uL;!u^mHD!!oDET6n66|)V3&ggZ!PC2 z1WV0|;Pv1z_l%rrcuTXOLtvDs_T1#RO6f<-1V+<%AdE#(d~sd+t9h8 z6R2-ToYcg30L@0h9Ot@#)v7#q&u2qK!1wxdzpL|fV>BIaJ{hLaLy1S@CKV@ckW-!= zf_`6WyL!+AAbSY_eNK_8q}{@WrOHn>!urLabg>&ZN6%dqYKPXJ8M+V}_$lxnND)OW7p>oely>bCqA5vnD}aKMNv|_N>|IoU-aKGu&X8S!KRzAuXm*i3GM%s(mF= zb_D!`k8$K5ZaQa95X7&;4JFDl$zO)?xgS2{_gd5Hm>gL2Q|Ma$Y~ z`|T_g%MckO+X_(Pz^011Ly7==>~iXWGm zH)@m<5WSfw{-3%{w{I+67SHw032Hr9Dq+~-112spKwM?;#ztRotL=FD@EAYpJB=nQ zh531WO*Gsuwqdngf+VQjOC^{T=%6de_2C*srF@JVGC&^e9^36NE=HZ@tbv;GFAdB$ zF{42O=|Uz`%WMS1CouvYf@@Jw#}BgUooB2Ta))Mu7My|I|_Yf&9hz1HQuw`t!c! zjP91(>1skoWdRg>eMdNV(ieA{=5reiKAE5KHyzpzNTk1yg6W?aWC{38po1unRw0tY zORW=|0|^^0gELn#i0w^BY~a-Pm%_jY^jppFLFjKvc%?%;JL3{K1}7VUdyE0wq`;+t zYia>k0>IZmp%}#;*dg4pUgyVQCCjNMw<-%IssR6 z@>XlaneMJ~-Qo3pYQWIQtsd6k#;<+swBaPR4L6GKz(MLRqr!XnGFAyjyt8y_d+^YI zxrAaL%!!ea6FWL*hT3}l7{J7)*)P#(?PnE*F3H8lIqo0PZzKVmK zfdOo9fEyf!0O`*m6N@^bKq)k@ZzRwllG+-y5`XbDx|P4F62a3$A;s{%=iq_*moKh+ znCGc!nJkJx7kmOXrM%u+OmX0WBm-Qg(CN9sIzZVW*OV0~K$5TT1lkq0oLH#3f*1d> z$5I>R!d^16BBVjKv^cz`uwj&+L@3e~3^mV^>}uk9m|o#=^=&Yj5p+$f+mMDAzfexy z)Gguj+RnN~L4S(clrr4cwr=>!w#3~OITPPRjr_(#PBwdE8(j{(v;je;4A{gS4-?{7 zx?wRu&1wfap_r+Q_-dK!=r-+8Dem1Z!UZy=&l90iJSA4dYnCE7aSr(_vyOlY2H#8_a1{BOP!BqHpS>Kp`NtK zFd!j5qa4h%UgruW#3P7|Bc@l$sfn$!e5~r_un4 z7jhD!YV~4fQobKO@mMSrhz3`TWS-w3j-7~KIgorh=U}LW?vd$s#!ewOF|XysP3>p< z-b!=)FaW6kwq>9N#ul-nwjoEz6@eV#r6xtX`SIoZ)=B_f@^@i}Aw^V#*Xkq$GR48P zTL)9r&`Y9KuRifzO%y;`{`#>$QNZt689ObYZmWA}&Gd6ezhtU8`oLbi%O}Eu)!@eP9r z;60E;oA}~5Fh_yzGRx>X^#Jnv#6e2aB}!tgKVCD~nXG=}#h66bG4ZGN;%@bBnDZ69bq8Ba;6J%<3pP{eZ;%_(fUgk~nzlrpgRsQ^^LVb* zp!>sRS>U+~EUXORJ{jUC;FudS|h`^l$mxQL3SI@9X`6ZzO^z8jpJIj#& zCR-!fS{N!8K5p2mmMYh~Wy7&AY5pKzlxw@EX&SM4!gKZvo_^dc?h==cg?7(ZWq!bf z1JlUmRh81mIA3h&wRz&@F%>^Da_b=?$ROhdrkH07WY&(f`JEGdNPO&BlD7YZ>ImwI z`ToYbp#Wk?n26U3=sxo4&)XnpH;hZ1&nfWome$Cd1Kd0rjJB(k(VfXkzn1w9THY(; zRVE3j0jBu&!r+Vl#wMg&W#GhgVxlSOFHU59=+(cVv_SaZf1QBEQN{#0D_aQvP?u>!A5*7UHem0ZBER)*=S-Ikb~Ev$TJ z{6tLUIt?Sn&NTJ=jW;-R3!bZcqUe=H@L0F%CDwv~Uho4qP_o;Rnp&qsp3T6|ezIx~ z-9GS5!a`V9l|Srra$t0by3degKWiH*XH8K--*0wX(6v}(^=9fk>Uo5Zn;eeEC0noQ zwqXOzH7okSBsDAp9q%A&e`Wu7nKEH<`^yS9y%9c0bCU*Twe=Sz4-_D1CLY^krbhj0 zf*0~WcP*vns&WP1o}5~O>h+04BZv{Oe3$Ol`JvmnMnFL@T_gICY2^5mh{iEr!)PX_K@Ot%R<@?Hla?s z)RPpk9P!w2ZB2^m#EU8#LmZb4AEZzm&K~O<`>Lot66}U3Ee^fMv>?7d8Qt}Y@Nvpa zJHIK+0vH^!P#s)sBq;?q$K9~oDOk*+)FO8c7^TwI- zcpp0d`v6d_X;_AAM?q`$fhkjdup&DO-Op&8@52jU=2hCpcv^>ZiJcUAIzl0b z7#oJTNn3E@PYyN^tsep_hxCuW-S)cc$&76CgnEdid3B~kJDtrusFW7O(?&;-u@{**E zK}J*K7f@@Zj-L-~k_(QWdo*i(3Hx>dE$!f`_Bf%b7JUQhVuZRFOM$-+otkg_G-Ebz z8;QNxu>E-BSFAq}7g0FLdjTyPs8 zNR%z7p|R)y0eTiiP)h$Zdkc)<2RG2cQ2_Lu$&z2rnFN;82dZ``nQS}l@-ju2zvz|? z`|Xh}UNi4xdM2g~3j+wt3q$v9$#tWPy3du;)?xljiaM_1k6Da>?DTmVI`ZTjY}e@y z)giTipxt+seXC`^m6$rhqG=t!K~s02+>v@h``ab`xnn;2Qw9$bTYyGfn;PM&6z_Tw zaiKd~Oiq(rB#c>+?9+pQ000-l8=DsM3#^DGl;`ji{L8U7P>OBcCAV9X4+fU*~qkEyjGN zIM7%rWI#}a6AguT?1+pRKHlK^je7ZGVmN)p31O%YQbY)EH?^i?1W#(Q&z~F~4zp54B%Dz56R5|o6o4B_N!PQD z+QtsuVyXj94HG!+WcsjU7CTNB9J5GL%HezYELgGp>uMYbZip>F1DeT`rhJ1S9wQkk zy+aftLS@m~u@xVlw0!zQ=_H!+qZIUn=wOPw;Tl;nx2#fe3`sX#Vkj}n(swrSgEHYbpyKRz80=M)<47d1N;-5`a3iQA0CTLz zRGV9{VkOniKUvn|!YEzf(>~;>R=Ud|HQ&iI&~LaOBF&6Y$4PG=^LgnyblmbW1yg8@ z9SDEWKf#fj6lF-o=XYry_KEbT4Lgw>g<7(gWmy#zp1CQHOR>u z;xg@ahT0rH)!csAp(Ay~lJbljyR|QBaK9%??tpmbmCJ0N(!Srm$79D`=YG52{l0mn z(Mj>8WW;JWa%6b**Z*BX{NBZ3kV46aWyJzM^u<%uZ zRmrPaYJ#xO!2;l$o2U9z$aFF#2ir5b?aD4Mi#0KPCWEXi`~Z!f`U(i3;(?08!ed>R z61jkk>dzO>V497!squ!-s5R{ZgP+Yo3RD^#9g6maql`pi!o9$$o;_}l4&}aNy$F)j zK=@at8KT6~{C2d(y0~^3sGVC15?gCkp0&q#I1~JtkC~5*hNfQZXhYi>$mSY6d5`A8 zV4JquL2y4j<0^}&*aJ&ZMd|yyAFcVNN-{~fq=ZM@DT>{8MaDi5K(( zEZS2P4e5q$D!d#{HI3;94gA_22Ix%l4w^v-u8tLOkxPr|;=tGa%Gy^Q$c|5_Ys&P` z#q9U8KOVli*Ccd3;T6{=1o;1INB5KQLPbG9;G6*pCM;Jx?)d9Zg0*I1t!*G+gx4A< zmK_V`eI1<}Pq$`=@q0+${5=#Rxh$J5NM@ zd<{4sTze$mre5RNu4= z-l$UhyCB-HWAyeYiAO(nJrE*m#cb+ec?!swtqFxwG_Tu|P{``|v-G?Ne<~8yIXZDd zk^y+U9R{!8lnqZ_&#n)nNc#YQBFH#9biG@{1f9fKZQ5oBWNSb3D72PP0{*kPzIecx zb&bdo zsH3QH6N;z0P}_lUT%@p>ve=c2U1z)CwpOQA)Byroiq2^AFs$$f5le?3I0FO#005Zl zr*U*bNlQe$(^eeOD;!xbhBJJv_C(!^(FswIB>4dUqoc7%!!JH}v|pdxw?`f8ikg)4 z=qZT+mRXj?XF*t@-|vpeYq8ok){c+>kUcZ1U~Ff<;9^z1aIRe3%2>T&i*Xh32VA0( zYovQN-uv)Jsn%ejq6>xN#k)ze#G^U@vi}iJW%S|dj&YmYS?h-p+ql2^MXfMEc0*{r>Jx$9_ujTbW-G@O<;Q2Gkh*|7 zIs>dMi=`C*j)ABBh+kT-bBtWA9hqY?ByDW8`7;(v!ZFEIl}5x&+MfY;L`5Y~Vc>5f zY;1Ud*%OHTlULL_Hkr$4`cJ)|0XIDgOck{9ehnZL!^N78EVf{Z=wN(?;;-309C{4n z#2_t|hRkdN>1I7}9n2^>T@5fP>3NV7-_>)xnaZB2blE0jANTSaP$Jn&QF@^q%$f~R zC*f7Q`b$^^*k0d}$58yv$>L)>{zvBu5RFOsZlmxH!+?O3#ST3?G-s<>CmwQ>Jx)=& zCi)RcEt!X&Uq9!MqEdtW>N@x(*6Jmkx?z=$V$9M-?~goJjprNX z=0S5-^)l&^bU5)3CDU;d`dR4^R5-dz96~8Xo0fgl6P9QdG;8$Fuw@P0R%SC1UX9UH zHefEq*j(y?X6lfq0pbgZWb0wmp)7;7P34eNLFN81%ptlQMkPKViH-QwWR7QEdbllm`I;z7N(u^%h@qZzJ3Kj87Y%e61YxO# zR>$m}4{4yn!rNi{+o$q}O*KV^T|$*?UyqT}2(X!^41dp5j5gkZA)WH}b0N`Wn2=ll zgsF|au^;X$gg6R)~r zSEt%rg~wgCz(2}cTqJ*QbCuU3^Ujmtgp%OS5P%_|$knUuG8soV;k~5RN|xZGZh|iNLbYHQ%HXo0b6$yg#6>a#uCiae8Sbb2!%lQhDFS{vujR?H(EDgEYg1tsw34N!FrDg7~ z&T!#PInc@~=Od=2b8xwJ``Ce`t+#MJK0m9A}$Ebk(

$eSY@aPFQWg~s7`b`qn#v@NjSE*aP)|hMVA$e0$LdCLqk!eVr)X534Ea}L z38bTP8jw_gyY09m-$syU?{UUKylB`%%C+$GEL@IqaVURYT){+LZ-f|y_S-(4=wgAy zBlU=10(f@%bU(%fj9*t^4KK+?!eA86(7P=J!XXq>E#?zZzPZJpa_%5=DBbcvh$MrQ zR0JD3MHR7jfGHYHIg^Ew-K>UmKFD%;`8<|hZ`+VnnhRdBBK7D0VR*X(3Je$>e=vnF zPqw8>%T;7HAW%n5C80gBFWWs))6y<*DwioS64h@SrO%HK8J(Ql&XB4f!7k0B_MR;2 zI^R3K)0D2HUL2fIi0G}an6giC;+=MMxi^X~o0^H2&&*16kcN{Q=bV@uT3fm2_1n*y zL)+uzMwl4&L2h>cy! zUzfgjmWf|&WxpH0mlGfeu{*m!2@8O6*ORzj!mncl{(wty$eq5rHg9?Rp~68`-e3ek zksAewlx7v_4jPo?|AA&=t#;%dh8|*F(1SP1moKp2imBA|b4c1aFH5I7P&(ue{^0ly zJhUcJXL0mL8LrtQ->n000C!ct2qFKDWo;@hpnJ5uqNZ$0-re z06L|At31N_PU{PA-;s{CUncQCLJ@mRgOV47Y%};%Z;T;8<;oiB+U9EL08r7%j#Vqt zpnl1XPnRq6g`x5@JdP70UZM`@el@{3H3Zz$hJ~~Q2pXv6izrsI5FZ?uISP`pdY{HKjwg;gmErtI{@llg zy#`L+aJ+~t5|D`%`Km~{)PoZ>vHHd|Aophx^p>JG;(8%bWmkT`e$~cA(3fZA`^{uW z-*B;#n_(IbG3NH7A14o7V=3P?gn``Z?-jZ9O0r#(|9{s{8w-c9o&F!;oD;LJKAhiJ} zH1ll)CGPz6TbpsM0Q&_S4p5MD`aFJzqFJLHJSr1A_O zg(PjsbYh9oH!xut7cxBGst#s&eN+2C1%*d%6j*AC#)It~oLfYmEk!f2QE90VIMl0i z<&)*LDhQ%M6eg|z+bhubimD7*#PaO~S!NnkkMAiE@-(MdX6-Yp@B?m?PEB}DS@%=> zdlzm?)xPj#8?CnxoNW{o=t#TSiu7SxJMq(<=Vh$Ei~NS58<`(byw8vh7d7eUAe9?w z6qMXFcgR}lE>uVxQU7R8mnp16VMkYu{t8R#OD9&lQD#jC$_Nty@7VADqD2R53On(| zCpFl2^qGEve0&m~TI3<%QEk1zccy)VKs`Z+-o)Eh>7G7j0=gR0)cXwUXA}y;3Eik_ zr&|sA{?HQ5Wu9R^w%spKZt*biYeAEG>!;3N|9*Lu3((ZXAOBfxlfPx3Xk&2l(U#fs z28PrNb)sxp`)Ja7lmcbTllB9}$SsjQ>%Csuc?CJU`kU^bi0S`}LDi2tSEKH$x-W3j z*S05#;N3i(A+FcT>z(cqB{sy-QVX9gSP(66KjgqIVnx1%>o~};W0|~WL6GesY>)%&k$o{T9Y2ciC$07y>~xTOGL%_VS)MnA`5$_Q3Eb|4aTwui z^9g_k4bu;ejW@Oxn!1S)Ym=gSK(5xVA`h#{Myj(1ClI&WR|~j_R}=M!V)<9T!1xyl zrxB@+${|b$b&9Ujj=*Q%DW)`6=$<_ zkNlw1Pm3JsdYks9Cmw)U5O-(7@GKQgIybFrM_<9X_p=7C7&^J8<@}^7gmvbXRC{(v z#9Y=YXoKTJUi7>WMw>Ha`6Kd#MHPm)Q0Wf-K?jrpMV!N)Y2m_@n19;sCken8ZDr5G zi^8?Z0Lt5%Khw9V_Na5Bsr-A9vh*gP#_ihrYXk}xxgqZw`@+ZD*U4SXgG;!D&?tMp z=fO~hdrpkus$XctH2BDGAT>E756yUxX?MU;OHNy@t)oUF`NV(`LdNx-2l?BjRE1pO z+@cqlQxB^Sa_=IM1Sw6A-p(!yW|OrB(g}l#fzJz(ta-L}ewXx-Vsg!}#m}mxlf#j< zd7KCmq=)1_4xrc3XMUTqnOo&; z6mo5`_ser`82%slfjkqgAH4R9Vzx`HH%T?Wx1qaReu%PwSQXtErVf5*8WJGEP@Q@q zpi6zrv{(YNj&nvWbg(FZ95y$p66TJ*$D~y=A2+XrW9_8in7~mJr~Gyki05Ku)U3_2 z3(qo6^n2q(1!h^78ilW8v^6zQ9+EFp>&^)_PfRw1b&jkfY2-<+isfOqsXIk@2=sLJ zg$HxKed6qcCnDCq**fRIC+klV2{kngcdcnN6XUCI;_bnm;Mq^alAZaa*&O%L#r))+ zI5PGLa0(PR#5o=Eja2C?m(W(`x!q=2u#HBrUY`F-T#xO z>#hzAp#g(`+D^;aW5^lH?|vSInHWGD$2v&YkUo)0|ZPbUpBaqit)zaJ=>}!SOE7B&>B8vN+8swIrYC zIYc{YF||H0cFK~>XRW2b#QfgnxB#9n5;fq#-5O6}eJ8=L3DGNBNR!jwf0VJ#&ztTo zALf37xy>Of2qs^UvwnzAA$o9sA+;`z6pl^1@Mopnfr1og)oPh9xUG_dKO8ApVKAqd z#D?F%fPpb3vVrlhP2&1I8HbYMx_Q>m1J$q)NwBF+(&A-9^n6yKr2F;)Ze^W@(V+Bi*YBsQ+rwvtpmCKwQ|K+2CU3p~$P`J55EA-6Y^>h_ z<3G`K3pieyc8I&r(Q<>`uHAx;)z7*~y_n1S&N;ql#*>?d{)vMs(*`7wTZY&0+@@R>z#QtY5Jr*~ zaby%%M1GLDHeyJPa; zb*RG&kw%{|`6U|pFVA$Tu7g$cMGx`GnvbK}%OIePRl0UQZ=0}p4U07b7bdAC-E`9n zhHMYqoS*lVl<)ItUg(4yEf(u|frW~NudHf}bsSZ*emA1UqNdqPhGO$?^z@CVlxYne zWZb{`DWNND@^%dOj{3mt>JgzjYA_uY+7*2e9($s>Rk)!}BTcq=FEk#t7-6^(O6FtO=iyeIOw1Z| zL4o?|CUks5DesnJ>^9}m@EXFJpfp7l@^m5ybRGO5F1M?n1od8W@J+AZRoKXpdk~i z4@a3ZN>;G7qGUK$MgqKN^;K`PD$RbkIE#VPNztw~Sq=Nh2V6sV;Y|Hkc>mXe`Wirl zlF*CfHm8>QY1qjN6A@oH^yNINMy{}qxUGNgY zp_a;-(Du$9n3ly)()4I9r)No(MxHBJLIeE;j2E&%lBAwf$1A5fEyd3!fHGa_0dnwU z@bMg-lhY1_=Wfz)qZe{XSxSl^LfkK|*hs`e|CSJ*VSWb5^j^U-yMGnb@fAyi5DRRD z&Wo?4?>Ti14hQo-{6cfP)9?|!7K?!{`b|6l_Ebqe@lN^BG*|LK!dEQj#fMb>agJ|` zJ+;Kzs#(d~YATEv?r_sFfdim?U^`z+5}pkSCKOfx+m;s(Dk{*pbRWnq#*inZ5WkHN2W?4`=q2Nf4l#^FDbF^AvhI&6CCq1fBP@y~aR=91F|2^wv6^gI20r?dF zsO*vU1_M9`)cT~vDBHTTCd$A9Q|wFQu#&$jYEk~=X`ro0dV=OEi0*`65rg<{#WnO) z>v(`L_N1!w!|IVjB8JrwqXfy56H2qvE7=A|zxhvqy`(@ro8=YOuz+~>oD(*RRV;$b z>2#gH{ly85exwfVckBmN2Q|jpWXwVYk1YT!iDPoO_SD13a)j7+N{T*ehdhm;V@j^Z z0hC;lvB)^@V9*1X_xXCoz4>q|Ab!2^RsZim_ZT}{4ln=_AjA0+DJJEAYZSl|VdG7P zD^A^wVQUyVWVUYL^+qG=%hG_FkeDPx%OzmSn$ru7Wue>s0}+KPmuycB&yuZQw_ zDK)Fuo;~_#-y`$OY7#V!a$?+|!xdasm1})}0pDOPj^<6OeIMJlYTA=9V#{>G*ww?6 zNE^M$;)~?Cw!s4*46(&L4B=9$)1PYIN!9<5HA}(k@R|>>bp7glb@cC#1~OO!vbBm`83@%GwYy}9CH(hmecUh$&v z&u1UATPcV@)MgP$>`Zbv_#`mXk(PPmhssx0XdnLR++_Ii>uc(!J&1z7afXRC;-8{| z?6@kYiA~y>y%3XZn~JF<6piHhBdU2Sb7TBh4tePoMx{zkGi#5(t3szk^hW-R($W6* z@E^*0UlPvjMJYLZf#ISzC4G?z2&$P3sXG@}P{1&1a!cUrZ7CdLN?B0~8;2mT1?Q%* zygEJdEDjc!`Kx0NB2+-p7b^2-ol(0xNzk38C~+VrGTZS^DMD4fFW~Sa8z;E^wv< zZeeon8UH5$)29fL;DWYlpY(4t`7^3J3EQl|dqgjavi4Wa(2mx)?q3$8Nnsj*BmyAV zsUlqiKW(Y=alFmOaGm?TEj~v?oK&iDlhKdkNbCi zphAZ_cl=>Rx;|Sv3@!YHw>h5@;Iko`WizODu2nisP2%sHZL=3))Z`5D9)7uBn{Z># zKxVDs-D{ELtu?Rqi+|7s2*x9V+Xh#-1g*Wq$XXat?@1eGsX?^jI(V`D9Z-W7=SPOS z%qOi&xiWJmUtX1QOf43HZ?A{*)L2vnF-@d5AjFaI z+L`x!>c~7;V32z^<_#P0v5QaBt>w%6oRn;&+S{zbN&)VTP+%!6)DVu#q;-1eD1`T* zJ>QQPaNc< z=sEtWlx1Nm`IvI2e<+!(+2VMjlPitAKEn1WJ@y~%F$dU`oL*j;>4uebok4t* zXg|b7CGUywi*qEGS@6h)&lB`~RHLuG^f<|i+`?8!O1&bJxxyhURZ;mXq}$Zu;k_ML zkPF}^0ydQs_Ev;&yxb>n=C%_xgRPw*7A-~6A> zh%9BKclC1PRAP|HG@^wBWP}CSCLYoS!xJOnT6=bi7CMeu3`71#DnU@g93vI$^o`{5 zy+%~GA06Ve6!B3jS3p0sCBBqSp?)ca{Gzq_*z(uFf#E>1V}(tmZ9JNYZ|loA{}tc{ zp~;FQ&mUXrj7svG@`fCfGJZvUyo-lnv1s7o&I;5ZGMC|gvqD}xL z>k(2qaqR9W)Z$agyWHJy7r0(YbLaa5n%i+7pBYn93W}j~+p-JfBJhT|SRngJI{O>3 zNIgrKw=ZoR8^6kS)HbLLw-BNd-v~?SJqCAsT2BhjChpmZPng+gw*(dyi>}_>HOc52 zWQm~iQf_sO004LN0003%9zpJr6)u5(PNHGJMvee}clKz76@$0J(2%+IO&=0{(hexL zWJH3DM@c-?mR4f;Pp<0H&-)p29ahsl?hxe`Jg1cmG@rzorw&5W6X=I`AwVVi&;Xj8 zhtTBIq^RYLYA{!mVYP7ul-DY^s@(0W)pWz-`&!1;w3tO=4U_1Qw2X*1Vy^uCCR##U-D&6)KI`|gBH+;ae7MIgD+%(XWisq z(GMsA@CK$^!<{E0rkd<%p<=pd$Bw%B3$1Gym-FoiJ<{evGaT8;$UIpDvUCH;onzHc z$~|Z-5@BjkrjB$i&{^u7nf-Y%ECbO-Q9TIj$$zXz{}@+l8+Sds-PUmb!_G! z0nBsQk|CqroTzyyuZ$Z;wlfDB`fam|V}4VGyd?`)tJi35TJzz)h>zfU$~FPucsf)n zt^CX)_Vim#l-)tif1}19|9yu(qc@m?gE?~U4zj>cfB(BI`&&p+?*$BCqqa0ul2j~^ z&6M})*B++Zx*c1C1$W8Up-#*#dXi{*Z~9#_Nc{?ki^;v(9@wQB2Z)%;cLYN67}Bs_ zU*-WAfOxTXw2&RYu?>4{WHe@khKq|ZbyYUMzit{np0~h1(WFasw2}%PxY#D}r@LPJ6)gRx`Nc%@#~SB4o;8o;tv=8Q>yu z=>v-5aUu@ybyOOaT74y6rm85?wy&J^3@n1(7t)kH;en$N=W!}_-rOdPGz{;h3uX%DF#J}6InU|%|!gA?fRyuaLDviP>oKJYfcWxXr zZ5(PUv>~`zM(HNp17qU~#*_E@5{Y>)3bIMpu#osBh~>R-vo;Bv)pn?o6_y5nbf#gE z{XfBSbnOm!pPS3sWJ#z~eQppEgs!B0&E3=Je;M+qOP4onK&r|nfEG=$Oo6G_LxpibczQQaJsLcCT>gJFG#)%)t1kKi*@rw#Ct@ytqzubex)| z(MBO`1Dsr^%h~l>OvCZ-_S7afBwN4B!T3-uK-LJofqQrxP!ne>3$+B(I0_GXcn9)W}NeP?v2W0hptUBHF2scGEm)Wk zK?RXa(Ii?=7^56)?^%z-2HHF){;r(3G5|$Dy1z`Sh#gxi=_M}Hv$NkJGdLOtL@0Dl zn)N7ax9$O>R?GR6l`-fut!;&y0$7)az?A(S7P_5I zz??^}CgZ)J5di^1jD8ZVV1d0@iSkwS%MV)yTr7nfYAeV|cbHN@sOkSU*oG;Tfd) zvTJ8K&IH=Tsx9nt{?8IzEC;Qr)%kRi?kD|YQES4&17Qy{y*hGY;f%G;t40Jt6#=@k8XBN4nrbR zc8SyTlo5%0e_ptt;UaCBwHxnP+2MpIK)_Xd>%ePO2I4C8w{TjTG7(G@1?3(fiBlkl(cc7EH6JiYPp?Tst z;aq!1MtM>cp)jXGx=yD#MiOE}NHyT+BYco|_fbp8r~pkuCs=hBDW^i9@-G?bdEwab zc!Pa=z*G`R#?_lJ2;d}D3G%SCG{YB`NMp%)$bbQ03^*K`jN*Ap%YNCg6!VWJ4RFX` zY^e;%m@`~UatrE(_?S!^3fa3{yj0;pcXH3@8%9!UQ(k9A#$L-xL0S6cIy`d9)tXlte$!~S z4aeKABdon!$u&!GNX2s$I?D8Pv%275r%KczD(q`AUX04$su}P@@E{2=&;3{+yG3Z9 zOtP?>zaR2a@qw_JHdgpoxwAtWj(sd0WW9XcYyP=n3My_h{;c*OE#uoY0xtw5 zA`rSW0~Fa|jJysjctc?Jv14AWp+%z#5dnD4We12%G8z}2vjM)_u{CzNHD~z_aTRT4g!8_( z!_S84{DdG{DS8owIHXh-q!gBp>(pUNBVMn@S6>d!SsZab;{(I?M*$@~{{^J)&QCF{ zIUL%8o;A?B@plQphH|%O=Vk-(57@gzcX?JFA@q3j)`pFrFu7>>dS_m6+&oEx#Aw|~ z`~m^c#=9A5Ow_7+YeD7Ul^^Jm;raomEz(v&EC7Za=RAuJ;JqtrwV?zm^XCBHIuH9eiLn{r^bg##g? zaQ@qDq}=~8(Ux63{`vo5P5A|4t@M64wdWJxT>XH%=r2jp7Gy@d_uW>1K zN9k3aD^Fjz>(Wm5I{UK8=`pYnyJN#UkaBB)yrc{)!;$74k2sr zv>>$IKZCge?h83|e>NC+ZU-m4`&1)H>na$7#W&i%xf%?%vP5OcPU({SA0{33j$wumm|FxuWx zq<&yNUX97WM`jrgJckyh==^{F2VS>s7?YQ5q!l_e@+!T2fu*;4-H4vgR|}#LZ?*4R z2d1N%ChHuY3WVIJMh@c#$6wFO%#6!Gz}o_^K~5FX@IOxV&iqY3x(Ck$52`S>E!HbG z&X8I8VxfiQsNp-!$N^uHHQS6a=v4Ap(mp}cbJzWi?8%mvlAXJo`2Wfli$cIv(41$G?Yq8@&ttPB=58#Fow zjQwR5bjqtrkQTq8lYIVWNV@YbKwOX{ZdXNV!ES*_Iidhguy-i@WRsp@U7ugI@`e`@ za#nHV8+W><$dSx0X%7msC!kxbfb4yYLOYF;dv<`mWglxcF$>O0;_W6 zQvpanOeNa{T4K3=)g${2vvIP?1|~URf7E~8LUkod+@$B3+?T~yzUCIzTb6M zZ|Sbe`5Tv=sF(F|!I*ZAm^7wM@aTmlC+5-f8gahnW;ikZ^wC6N; zi)?bOzzIP>Q81lfsAerMWRF}^46qAON!21t@BStHMm%AW0L3^H2M9{EP=QsW9;$8~ zF|G^0dKVdw5M8zMeN*Eu4OZEE?@>%{W*uZeJJ990W<(iiZ2gY zG8z~CsWFe4jpRlXN%{=s;A$1>#l$6An@n2g;fV6|W>Y0g`C3HVpyI>@D?T@bWwnSq zn-Q8o&1qP9RAl{gyN+0$#!d6&PR@C>t(e~qKh*#ML9foBXdQy4nHca8LBH=wN8a*_ zym<~8Fz^76gArXGel#1Pu06A6*F~>O*IO8Ix8UKBZ%SBlhh!gzYX_r0I;m53)AFIh zY{a8%I(UnNn0Kg1lmRj@pT{#YDn-^e(j*O`{7ja2ON`I1i*|6#$O>pV`$P=CjiJti zT^`4((?18g+4`5Cj3CyME`5CiNj@9Z`{RQC;yP)W2NqZW4}0+dqk;N3Q2c+4Sn-0q zuBMM7bL}oLRcopEf*|l^4-dxU0Igv|n`W$c_Mng?6!(uua68_7z`RL6eK)enJ5pG3!tTWUEioq-lq>I|6z~A(k+)-% z(K3`&2i6a<63f)^qI9u4{-AdDewn5XPzINx`Lj`Z-`w8^?m&<{2R5%rsn~WzJV-N< zFrK&Sv)H&1uoX`A)nPAP6#0FD5(&-%tnpvWibEaHa03}9P_b`oNT?wc34U(411x%s z|C_anA{?7HTzTB@-+OgQdtcT%xg&OjU6w4sXYv(``SGJjh@u>OHVtF$tnwEc(j;nW!u>DD@7MNMPY?pTlgf4cv4Oj* z3abYisoIGBX}rAAew~0JZKAgG@cBFxI+{C6%@U(R$=}#EVrgLP>&W6x;)CQOMcgwP zlq#7Ww~+?T$^fV;B@+5yw=dnI{&1UA6d-Vl4#hX6nsioTI(Y?|W>`)2$Pm^Zn(@q* zfbr)bvsglU)=E0aDdVQ@Ja6iwq{YxPTC{I}@|8EYQgr6+-D(io6TQiI&kb;i=x4O< zY>`+SJAt2ccfS0Y%o8&=YggthhiY#jc(V~XlA|r_P&k*2P}6uh`|_vMa4D_8>P&p6VG2029QkKj)DtvuZP35gOG zHVD~w!Qa&yaIeTt9X|NRvbEcS1TXhR3d9~PS|&L1M;M zysV+SOdMT!v!8~R{8_c$YS4+Ek<#(C3y@cLNmJInrYI%AqX#BTTOxJV#b64l+=u8! zRJPxg`xoJ|BcqK`P3{CCE$5q!vr2G5vn=0`4p@Mz@0V?GoX#EFiJ;-c;=gG*4C30D8-LNjfn zBOkhv`aRJ}0`C(tTbqrKL>iIOoh8)@9^Qtv}#tGEdL3bTYoK12XzNTtx^v0MyauAvGwa>{6S9WDCZ^bPXr<`137GqDb@ z<0mhT;6C+Hn(g6kB>kr#Y7@F*TX)`n^c|Dr0|$2UqA{35n{j!XpL_#^{;w>mvE*Wh zfyz$u=q2&iU2*C-A!(@v1R9N-_q4)+NZcR2E>6RNWPyMR^#jZ2hFD2nJ?-OBBU4

&6vF1)+0y^#8+rk|rgdUSqBUjsP3{y3X0I^p~mzZ0u&>eh2!?~IU)P1|z^;EFk zmCzJ^jcpF7sBjxcV2O~2X{8nC@G)J=rSeX~$seJ&&azPHB0A%oQ0th%3n7m?HtzBU zxXWQ3{V>VcpPh`%*+{%YoD$Mwod$RS4-8lGNn@}^h*adi!n4QjlsIi`c@~o}Fh|lL9)3A)tq)1fwyBUSMW_4=oeMYNxBYI*Pgsu2uuO z%_`iKsPOZs|0~204!_(U2`LIDRr>f{3>L4;ZM?t+kx|P)%8TP81+^W+M|n%gJkZvr z!|@KzktKzI*xNocIVNJhGI!+hJE-?;5nqkE8m!^GR`qi5+TFqSvRAih5J8di0|2>- z3ti>DPFHcx@!&0HxS>Y4_eX;AxngS$8~A%E%SCzurBI#PMHEIe7TyRnaCa6vc|V9xUqT(%M4lVq2?F~aR2FmJI)ESDHPOIp zI->y+bncC{^)E&k@FeD~sfWVh0x}ue+>zH0f_k+wWD)3{v9U5N-p5ho0gSrWM9j(O z+G8m~&CjBj7MW#AFCzbMTJk$VL!}4kEqwc@ksE=5!{x2rhn;lD2)T2Y8X}sLdBx-0 zP+(0j+x}D7R7~du+q2k!`jf+#_Pr#h+g`Za_n?Y@ppLHyCMp6iT(5;P&47F(&x)xB zVR1*FGg8~N^}@LM$4iG5U4Tb%YO+n=N8Xi3V$WeK+M2~`I!cf(+AeM+ZbvMK+dh$wLCffEh2j%XPBI`G6Jm?EIaIfW!FCZ&xKH&-q{XKd(~?<@#>(O#=6I zGeX(OeYdIRR@hSsw%nZUo8-rC84?7IQ5oyq54j*Ew3iW~Tk1y-zN}!v@8*AYFtK-? zy!6Q51OrK7;86m%ToRe{McaGY*J8E#9{DYn+&qr&_S!LQ?1hQ4!;NK23`Zh#*{`xl zZWi$nf3W^kJ(ES>%{puwM5d*NMkjL?&p5*OisV!po46EB1UhsRd5x$)dN;d`lksoh zY`t!cbq)5#iuE(}t0nB6aga6TKOox$S8%mYTg}hPOjjK4R|hAJ!}n8WMN&Cir0}G@ zzztYytg=KBMwC=Ncnb6fWvZ{67r?%W+ZfB5lgiVx`LIA3^_|T*iMvRg(21^h3jyz# zV{q5*`dR}y;LK#E@N3DmO|IGbKME?!B{CeVJ{8=dw0i%FDQ)N-11=}Kt`J8}XNA{4 zfYydyq%=Jd4Y?vL`4#FCp-8p9hlCEPuJBcu-?i~m0l_|COzym{-sjA3o%#|FcUam4 zu`p&7Y`sUvJ_4y`&HHWA^sk#3tffaUl?8wZ3w2GnZd6*M3(u?IcXWY+%$?nD!BpHP|G)d7)Wyq;!$AK&wKl=KKMl3 z5+i(L%k-9f)R-c|ZEhqEQ2%#{^@}Ud-Ai7k>F#Y8(u3I%TB#j}bwtdJv}4}nqvw)n z_1|W~@);PhB(B!ohI{5r(WX(ky2s&KLVvDYI)LX3TC1n&s55Gd7u#Ed&B9>s5s@Ci z@19F|V_u7yPYja#-eWDBs|w{j7_KlhJ}FWlTAysQ`=A0TLPg$#$+bvceF#{DSMHE_rcpF-VHt2m3&&4=s}Ol-2{H zu(u2^rFZPlnU!4^yI;;(xmflp0k3KBE@skuFIDlpY!NMRcyF!|`!u1Gq&RuwNe%&& z)altRMk3G2EKCRE{&fq>G7wR4FQ42oDrcLQQJ=EE00Ff;`*z+%KkAs9GYVF~cLC^C zBKgD(egD-PV}jprFw|#Qhi{An$E%J88ttx9a4H2*hXzOsIz{!L(*~?@u~=nrfZVK9 zj99R!h19jrb%w)9i?6kv2&-(fo$lXf0vQYV>ylM{!IMgh{KK1T^uuSS_8I^+i#ODr zk)|Q#0Tlz7;|}tgOHAV%?{87eeHWSQ(Sw|K^56Kt$P{uZUDWeVALhq^a7aoXf;WYX zSQ49H5l_F8aOUP9K2rvR z7&)K-Ia7o$0YvdU3HYLt=r7RgGSSN~i*(M_o8z0|;yeX2Thtw0oC}Q`k}Sv{1UN;k z$Gd1h6jmCtppy@2Gjo9o$W*J&`M8nn>DdTMh%PLGjYG0i$ukW`Us=}bQzR~J8PS<= z;g7uSAF+ZN$8l{3j8Aridxj6B!!_|1svnvbQ>{T5qhioessLnvUP^ERSt7`J)Xse_ zGxHl;fy6M#reGLy3jl<%#FIX|P)Ke}-hf#oPO^E?&XCJd%6ZSwlGT3dJzJQODS8|w;L*Q2F8Aty=j)agqYBH*jW8RM zCTBa=k*X?=_%4rK30BzYw^s?-T&)IagNQYM8H{_#@)fLh$dqaws->@gMb=@Kr-?^Gs&FvcVF z548?Y;Z@e*L=3GmiG=zw`FsdbJ9W{eLra`dTV5mFGX#pvOpzApX(IgG3-OC6Pr6Bh zoy+1CIhL};97^0kR}j5h>!z|%t&-%31w5r9^s84bFsGN(1$?%7(vrIzwcdSuj7Q}* zmq}he7KFCDaRy~?^sQk#>2ym*dX`(wrnoI2W929tn(ajKMfXc{_g$ z`fU z`eu?^q^XB7r&wC$bt)~L5mcxO_x1wF?J7xXs$6y9Pb27V3xxG5YPExF_F~U+Hsxy% z{&YwK-34Usu001DyeH`&C&Vq4ti0y0fqt)ag5GniFUN>N%l>lQHI(M6au(L=a#5so zHis^iV%Hr^9D-h-R}WkU70w3$aq0$Af(B>4Epi(abL*5bTG7uiAG~Ckc1$?*P>2^U z{yIH?n4qe(C$2F+JVfDUk^1{L0ZgD-z1yV=C2W`^!kDhtWH(bQu>W$ z29Oveaa&Io_hKs;ZuM(VwzsKKW)DW)EN738<)aPVPJe+@f3i0d&>|HQF{{?F&RPj$ zq>N$Uq!A+p5UY+P!~Q5EiktgC^g*Z%&G2~HO~6}IZcp1zkJ|^-rQ_NgqQLwd7tw6? z=7a{f{60ZU?z5>3JN280mh}pjVC3?GXCBUD{Ujh74*(Euf^iOeG@|5iwWNbn7_e4| z!>tvjr0NOfa)UuUdOGhd@d8wA?fse;|P;L^Dmt&K{`MWQha1g=dbeQ3u z{mXr-swoXVihn}*T!2t2Rw?eYV>djcneM}`X;#++*fU%VoT!D-{PkYB4h2~?R=1bc zW5%G*jRe{GsS~7r3A^19)*2R@-&sO6gar8`jqyR=w3bN>8U_*|Cqbw-INDsWM%rR(*akkdpGM6(?QHmD|z!39r z1U#nG{E_zC>;P0e1T?kS2I@#@qn(uSTtP3b$)krmAlhg=;~_C#Os~t4Xx%B2bT75M zM9lRr9&^J;k4*Amsc(&j7=-b{M2$uhJwO9k3hsS(SlDu(PGzKsN%29Vwf^3PFAS$- zc1LVksp61NRo-cVq}*gCjQ*RPpjGiz?9WMjTGrOI`u~%k7@G2=FSx-YF)F@)aNK+k z%Ca9((O7<|Ly9}9!gHj5+>ye^o7y4T!(fQU!Ql(ke9kJ_TD8i_rhLdPVp%t9nOqQ; zx{74?XfEBkibW~?wLC&;Ors?H16~CJiIZ9<{toL)&8BmF=e-Fu+E&^_ao2z3;wlEy zH5zGYU`##cs_hB?W>OG0>rwqx8Wz^)$qlux4hL&zCvyzIm~NOmZH=ew`99zxGH|;b zH>Rh1$GF4#y$z~mK=#uj?v_RJp(HaMyCWbR0GuYrEnR34%1bq=n@r$qstG@kHs%)A zSYt(Hnds%uhluhe)HSpKl4LrOSl_g$;n;>TqErT8ya9wc2zoP2pT`CD^+|#!L6m<_ z=QmGKl?AS@B@dX9V2+ek5d&?B0KA$e&QlaLMH_!4e&PA6Q*qyO5M(faD#$sL{NoB( zECGAG4F*yd3?F6=g^yL1-!^pp5U&2kf0Zjnf_#&A_{4^89(g34 zB0yINp9!WuM!Xp*MG1fuCeS0`tJsK}W~C=E-){_b&XeYvQ`cnR z3=(Jn01t>fkY;kAuZnwKS)&wBLXm@DH0(b{X{rLF`ZHiy1A19q&bK|nsi3SbW9DNp z!1Q$_~7I<&QRzuP7D<}@&c}0s-&Jr->g=OWRfktpsJwSs; zV=;vDm%83teijdc`v#Gxz4ocl6^hyTl(+$v(OJHqnn7qpmk~kWKBt~Uu+sflpc1E~ z4j?+yL=cjTALu}8J8IpC`K1v&+z!RHW>%q{|`z{C(qNoCAWlOA0JR_Q=3D zcy=-`8#Vm$eMBbD;LHPCU>OFU-+>8Q--=F&MAb_!Ybo+5O!u9kKuH5qsAv}1`S-=8 zeUpYic!IY`f3ek$XRF0P%V(!|icM}nq^s=8IZt_{0I!!Wv4q-biPN@dXjl6o&%wC} z;D=x{k_62JrG8El25uUG3|CqEo3I}sgP`Bun=susP4e*qVDD3vcI$@Z0nu$Gh_s5O zE-({t6X0I>L@Zo-ED^iD#i@A?k=L_u$j+}B4i5YW3W_HF7f4PcU{0E`^I`2Ob}_Ox zDK5JQ`8}HS=t;Sx!&iG}m<=SDwPp~^xl^Ic^6OYPLi{_@Ik()8jD=h(_K@8G+cL&r z&h~o_L3~?{7WVgmT6Nxg7w|rAWUSU#k>87JdTN*B*1h!4JdA3An^%tXIqhN-ln6Dt3TRJ%JC79 zg4TEB~l9fHi3An5_$@eB;Y%_IJs6lwOifobx2 zO`aVxH&d)ZA(6y9WMWd9F%2B8Lmn7 z0y`GJQDn%a5qFXS!JUr|7Ruz;KpK!w52R)SymETc1osWH>aDm7kuEv;vu@9K*e*AML3C(ui?*L_VuSl3XcBmX+xxqA9QuJDifF~^h=ih62*%f zCP9H&hTAfQ`mdo6EJ^mwMjN|gO}^je(3mTeh^1FC4AsV1eqiW~ z`C-pMwC=Y|J;U*f9jOieIFb+L=z!|^Z`_gz5EH3iM!EcSjs_LeuDHA4g6sN?4BheR zW!_ly#o(yEP&A!Ap#b;2i7|+%Zp(IG*TLNF^E71-(;LC8?z-`(xvhq9J4+ zg7-q1d{mVLLA~$>{ukJ~c@xtZJ+%FdnDY55s}pFckidb?PmnC9#xd)HG;DzQ9Oyhi z<+zW#z{-4!QhP4Z9V)JCPL7!O$8&#D%lx!VV{EWfD0?U85g8n$^iZw3U@6cgc%r)dcW~uQ{js?_y!7Zn3lfEcucxSiuy|5sKAw8cApX9iM6#%n} z8b9hp{-1Bz?RuKp#65UV*i%H+4EC3ytJVMIy_+{Z7UIr8U&o_R^)J>S6}`5gCDrc; zOKzhs^8zGoH5Fo+@~T^927M6n##7xkgEbkf{c)p<*TzytiZnc)$9hV&p6+v?0*8tbcbIk#^L^p*@X!5vnnR zsR`O|{lg2Tow~Z+3!H;>NGUgk!fmwr@Z&3y%Lt$^eyiEW6edDnLHZSQ1>QipNN4p| z>Tyy8-F~VYT+Vf^)w%r)0lkpF_*qa=-(GzfFK9ixaCU<-7NjaOEQQyA#>Oy{>#K<1 zO6@X0xi|6MO2jq+o#T#+v%zA_PST(SdMOIwv+MUZlpy9r)EZobd{r=a&TOI2VtwnG z?X#VjHF2sr;OC)7UysFqGZk18hZl%23y?GYkJfoM;`y?r;c_o_Nh@Ef;g2J?jl@iW ztC7juqcz9t_~XB5^}t;T!$P4O5FN>P_wpM9S$i2THW8= zRc{iDd_N+_$li?~1us=s92b_t} z)|FV>`3A24GFblN;&0PC$t7QwbhrMD1N3EuGmhUx<^u171_?W{s)p>E=)!Gxr*L(X zoKyBlF|Va_ka4tG=-}Kx9C!fD22RSUEzQhMT#5fJ=7uV9XLDWwO#MFMX+Hj(kc9rj zGuEl)ZJW4`;NrT{TSLzlz!dU4Ax3Wf7*?XQNBR^f#iu+xQ9RG4L(tdNko7qp1k%xCKv@5gxvXa1a4MZwXlAnSnh9bG}LNR3`$+2{13 z$50Mcj9*FHoBfrtSpFPX!BIa6zb$;>O-4|N$hIx4Q+`hhtV|duE3|9Nx%WnR?n3uF zeRUsCbf!SatRC~OLp|+k5&m&J(e`pig6X1eL!_9X5z~Y_Uc1){O5L-i?Rr<-oLupUT z)UV15O=FSY4kO2F@#zvy*gl(9+|oSR-#k;*5C~>>%>@h>5thg1YEmIY_G(8O%5#Bw zPsze7zA~$OT03j+WF-W^g!&fG6?9d61Y{7He2tg%xQW@}036OK$%tX&S-%CLh30_Z zk1)@kPz?T7s+|*K$`KS{8q(3M$Hfy;Hu0fXe5}i%3>N-D`*efn1W&n7p3ykNME4;T ze?}&b$|#tYvCONC*8EFT0S^xwbvXtTR*&G)>#iIFakdEUUr@jO5rX4>!S@&+?@Qxc zun)33tcNjjh?IQfkxvG?zV_)cJnnY)NRNkvIJ1Y;k-Vy-@VmvfqY9dPJ0+D}Z{ll7 zgOBKO5hLT4K-yK-g(7@3#*@t-og1W4K8dQZ&Fsn`b_^ZaK7L&2<3Mq}utCTK0~PHP zV}!Tr4ggQdzdZWuh;E6oH*6ppBfQ!NsCkO~y-a-6B>}PuI;EKAHCL-D^Wul1Yxr@X z`D!aOyp9{Z0zm|^BdfPAI|Df3(qUA@&Uhnks!H0kekkUU?9>kD{e4`5hq{ePPE75E z_>`n|l}ktc63pANK{rh-qBM&o%q5fAsi6AQ5;ebS?n5*h>LHkX5YWyIcJ7ZG;wSQ% z7~;ze>&%WYhb&@Zq;q-0M=U+`-451U0TSF3?1nB1FJ}|Q^yFKZL}mKGonaezg8eBr zsK9ZFDL}q4vf=xfc3d`x{WwH6A`S#t{9=kL>sKvL=;kY!aG4W^c&_2ypM?c{cKAU4 zY)OfhVO_Oj`^!Mhnc9i(;CgM9o9X9+>3e0Z6y>B%pg2j(K;%*4Y>rvy;bk_rq|ru0Y?Dj&znWA!w2zx+ zBbl~<%6oLiZ`ejI`7sKNJSud|7vT@^g_+~t-uPqmv$1K8rulu_L0vj20 z`*gUkO=%CMW$taOkt{(dFneTsUG`jAM(W=kYcCd4Qhl?H{#dR4Pb+l8*8}lVaWV<3 zibTlO&V~A*ofti%k@9br%0l5R)Bxs;EJ#JSUes|_?_#H6a)ollb^wV8Nf@{9t!sey z5Q`s`O-@7XQX4Y2y9ypQ!i2d*Ww9zKcr4N7O4?I9oLV83<5f+u9lb%)SS0D)Ly>|i zukutcn~X{=S<6Od2iwYvkIaIFImcPDU(JSAX`C^~rJ;#Y(VR5Z)^RocjWSvg;an@Q zdjMfnzb54eZ9?sIqgBxA-a@hvKp`hLkM2LIfWWGKPu%NpF_nK#Wk{`VPc5I&*cpAZ z<^6tQ+CkZb`+jYGJt4ZN)0YaJtZwy&6g*PBp8Ns-DFV6*dz~{nG4x_|E17@6c(QUA$03q}nN27sI@Vt@R4f)#+AE^;X2-arI_0 z-9P!e^Jw`9#vF~N?=M8#)q+W<^M6F12a}6gs`jz)#0~+)HwBS%&y6?bxg!bhhIACodp|@j4JRx`Q1Kg%EFYxR0fL4Se7ZmwM~rqua$K z>CM1^^WPd-K&GE5-o4e-aH&*IHI@lycU6c-lQY>sXF5id`3wUKzC| zz?D)m7ui0qKyGt}ZY{inBAHpN>om`^j0y}KJ znU@a*`%tg)v0|*?Id65p=6;DxB=Hesff*uI(+Js~iI;+VFRnQb7eW4oEe$YC$-Y&? zONRWSwi)*DLg*DZo-$ZqjN+J(6T!#9xyg;(ZOI1I5V!t=ahKdl?9+`c*Aw7~FbPCZ zDk))>jwERNmS*KpE4N~gaLT3F;QEP6CIs)CDXUm7r{Wedh`uV+-29D~?J;~K=+3D| zNS(J)&OWv(J|Dve&7x2iqmm&pBm{;e%5k`LGP!3lKrAmpAxcgye-N%$JhkHPI3uH_is9fhn~;U;|>|rCC9aFtl~``K?+d z#DN(g{yTHM|75Y2aIXEbOJRhr9~UE6TR;VdIR<@z>|7vkJ;e=(7LL%f-x^3eGk2IO z?wMY>QwjvhLpq?+L9lIPxVTK+enMWmFv7KS z?O*hO1@=vwA11%_Fg&`20Gf8BH5V4!6`Ml;E`9)4Cf*WyygU%RulD;HuHa1eEgMFV z0RCO#1R0|E@JaZuiA#BQm7D&cEedM9WRNEsQrCya$tGP$d;IE<+3*nJ<2$M8hbdKMBwqa_&Sc24fio+e$&2 zgGZCGi|Udes+*NWJ=X;EGpQOR)65irN&wEWC;$z|7-M7CZ^Nc_diX#WBMJ_8257}|Kw5+=^0Qh&YvFfYg{dHt?ZtnT4&%q;q?30xAI-w1wxGm9+a;k2 zFm!t9k6VUL{1tYGLRI5-!GnU)<)yU?M;)2xcl5uhd%H%am)}?MBtXlxfWB1Cv9yI! zT?x}aJ1T_gtq#SAF-jhM5i_jE&haEKYsBV2K&M_ro1vFDRyEBDZaDI9gmqBaB{)az zV&Gh>#JxOsu>ZC(JbkZ z5odB5gk*5WqgQ0b#A=3jQW@dYpx8rOu|;S2vpI4yHVq1+2weMO#eX({Q*$gSpvtyO z(|vFV;8m{`1CM*Yqn)h57OvG(cd5br&xGlDIFDPOT| zB|i?Y0btp28k05yy_UjAz=3@IP*@lwF}Tlm#Qw?3HTlfVH_w9U0OJ9bJTJSXY?S=2aGtU__cW6`*8QZiCsZvw0DT(`OoO; z>esW|#dPWgO!>QL3j%h|-SG+XlP3scPcomznX>GH<*LEe{mp=_jd$K!;_ZiH9lW$( z^*H~-nX|W0f}Hm3gA88ptc9#?k(gV&V0Ip_)X>H>mi>;vY#?*tU`afzLTrRRvZN;X zE1Fi6ktVkMSl$ie-K(mZ`~e_L|v z-EWHYo^sN;=G6F9MD7~OeJ*C4mkFwxc6ShNeEsTN%GU9xt>M{Yv8gbR&{oVaMK^X{ z8jYN!r&O$XS`iq;5QTP~IJ}?^45zQRt4@-6eo zgt$)`eb^ia+Y$QNqWm)H<-Mp>W-^=kT&4l^2HCVZx8WP2F^zhZw`aAr#Y7`c`cWi7 zFnK!OQ|ebMMoPQgK2&%=C_NV%vT-384>OKyn0loC*C(~tPQLxJL^d`zJ)<<(_P)f7 zuL<3N>%X}2@wMITt8pEx?l&VDs4gz&3X_K>8V-<7|2v*_dA`2wHt~jf*nZqtBY`$I zOFVN0y2!ANn1}MFqGdyCwFw1d6qo&3Z(T33^6oLTp*}AOZwldK-t3-d9(GEAXZAgq z>!HwBbsfIW_t@;RX%^;{4ZwsFDyJd*1;|XeEY2u%f>%()F}Zs8EMsiTM_x`w6v+S> zrQZ&UVB8g*$QvqZk%L0WMcD(nM8JVaZQp5!;p;9PJJef<)Bz-qCcN@a3|MMl=davd zFjiV5)c%8iHr|!x%JyTioQp+r>%~D+6DUXs{<={*_#y*&M5_)7t5hXT znl=K~gi}v=E=9JD{YPn}<&fmwYMWSq!;-`*NxrFNf-Yt2jl%>ws=|*t39^Z^vA$JI z#pPDTlO3{nXg}!2IQ)XwpF)+;**a+9qR-^N62F}89yvb+SzSiF>aWU^+GGw5dB`)6 zXool3wrJI{_Epi;B5s+y-2(8NAU*ut`+S){1V-XJ2yX9%MR!qrM)CcG>ugc5&GeP! zjM{|)LD9Mnwkn#%v4qeSftrf{j#MkgDS`@)fBYgnF2Z|A+P#k1$VhxW)0{8LnM@u) zR8j-N1Oigl7ql{Z%8yM$fqXJyMavijb5uh88j?<^jWv>Nw2W>r1|)+*;J`S5`!>h8 zO^-tQ_i#xz!{0zGee{9Jb_-Ys@VMIo^=8_f-_U;tme0IE2E**ox*I(929*Fdjph(! zazhFaAI=k=#;FwjpcO7RPyX}}X}%uFQ&NpJP!DpYbZum0a=^c3=PJCe+)L`1W?&Hj zH$ce01Ca`FdAf}u^6;UM?#{rMrNaUe{DaY)jBY}i_&i6@<@i^HBvDlOZlKtCw<1VK zN0jw$+Bcy<=Ehw3kUo z>RANr)FW0mv6+(4k7#7}st15wFlS*1tRj#s=w$HKQYX=6TQ!F!cP8?=m>1TDEwDw) zv@R{D&;6C~{8MO?R5OyYJlKWyfCGD(D23oc7SevjwJk{VxyX4z8!0F*>;o^6^;+fF zc!D8jNhF${_0rf#mL_IzRqt_5AY}}}bGP#UYof9`bB>HVm(`!BBD7?b3F-?3G-d%E zFin4zG;8EHDjts)wg_E5bO8w$`vHExjNp$c_Bq#YT=X7ai2Zqxrl0MQ%9X3Cs#NAt zxaUG3$I8AQE0~hF&$uiJR#Q6lNRL@5K`jte_L!l!|4*)e1XLj!CRC%!tC{0RUL=?9>>3Sja9s$fgHnuN6ExfrUR-AQ>=G}rl&izTQ za1?}YKgmq@+2|9+aH1}c8yvW$9AX67VL6@LX)F}X*WJ`NSVo6s$I_O9Bs2WAqTc3< zuvKj5#G1~LLig*kO5bWOCG?r#aDfA{@yZBtd{tdU%~b#oL|q<}9^VD5BNM#NP82S; zR8XL63k>KyyOzYd0>@i0MuWeuxM^>i)i1_|hgzx9FhfyslL6D#hI;>W{8kCN`m`Wl z910(^4y=v3{znS3GVe&$7uO|mX)m5e(0IL_S6|C|*5__iW#(34a7-OEw{JKd{B9-> z*QiM5wrODK1X!PVd9wydKaUjxeN+g|=ji3AlkF}~_l`*D*81cf9H#Rh?G!}x?gkRyNm5va?{agE=}X!(@IEV z@AEKPa^A#EWyk*APb96X3ME`xe=pa8|3(lwoCGbA5|T$cFjECPaC&xB_j)Is8}RaB zQX7$gNPda$N6acmaN9<#65l2NU`FLAr@gr5v59KZ(havfdIUX9yJT~a6AveJnMj<@ ztj6%J_M^dl7^+o6_f3A^S`6b(-j@352pB+Z#+U5x3LwaRT&kz|yCDrC1 z!=!@~sZ(<0D@)AO5RYJN*jg%Mw*KsA!S5YfcqV(EgRmxXXvy7;_~xTuZ_P2k!0>r^ z;~^2!oNV=^{6MWBdGML?w#aAYYcHYm3jbUBY?#P^)3)%U9^Lw(ww~O}GRu)pS>Ee0 z*9vfgypn%(hiaf^Y@G`4?$HY7c`F9;2&sXpWWmF`B9=)L5+M-ti6Yn`kYYYfq-=7@ zKON=uYgtN>XRWymGd+^pSC*fs^;;FvwA#4UOw6Q_VY4KcXXq#UTWWp+a6`<=Xh&Qc zjPuwYQMeM~uu~ptrAA$gzq$l}f;}}1hq&#f_hk$uzj^Cl=+&Z= zAXb?ly|$I_kTL{|A@0S%f|%}!cW$#M;u!!QsQuaS_*V)O6mRp~r6Hf) z{;3#NP{5!he;j+X><|ktK*aI2ZKv;aXzPkv@ej5`gm^D?>@JIN)rW|WIPs7KOa;#G zrseb~`>%*m6=nSa_IX#lkRY)_5*ek%#s{WI9j|n^B&UP1qs+T;elm6eppm5Ick&1q z39GyZ&`A8Jh{j|WX5@J1;~AyzV%tJb)aiEgra+Z?@xaS8zgCV-v+o<)r}IFA0Or-p zxyXB7eF9kL2844j9ZD+8C?1b z<4LQ|VXKC=Igy=8fLX!5!(hIuHJ@%icSzxuXWhm~Iw# zdTkXe_UC1EC9*NM!ky_I^ykR9*gnkPkL^#~d!4oLDz>XgNho>vN!zUk!Piuc)G!~t zN5C769-F#Ierku**kB#7-itgZihvxEK}KdER$WdkM7yUjv%GGN&B{XH-UmjAQ6HZS zoW=Y4M*ufqAsfifdB=3YX47zD*7x;1D(>1NUW~__5R|v_xY-QqI$Loo9mkIuMKPXA4zTR>vAAA*}rSX`(o`_4xv$Z1t*i;AR} zWbNypZH_E0Kz{gCFK{U}t);bJ{~J}glHNm# zcI#Qk%zu?yNed^l_t1uU$xJ)^su=r{YWBqgo1t4U_CovZ++MdXQI~AdnesIU9;?%x zIR~m3pEh!*R6k|lt3bRYSjpS|y)Zm3ojWj^w_}j5e5o zg3qoD1H=Ob0DwW=(O)Nk*zEW<}o<_)zvgK`v{=?odVI9FEg) zHI_TpOierM{tsgv`&ob;1|OPcDF{(yf$WLsEP^P?NiOg~-yaOUW-b;UOhYX$1G2K@ z-0Nm(xu{1_cI18GUUh4q(0nYOHZm0Gx#N(Qa8|B`gmRP@%vNlM%Pmv_SIuD(vkDeN zXXW+$6Y|PSrOeAu&zL=5XbjeZFo~_vMU$5Z2mYe#&$pmyzem>8A^^EeOg=&`mKFs{ z{q_D7Jan|gH-qmoyd@*sP7J~|YGP3{Iohe`Z(X4Vj5j7G7qsi3o9-gIyBnMSAWU+z zL*U493UN%Q`Td{)GwfV&(qF9AO203`;DiN(JP?ly>aYTv9|7F~7qB^}%F&!JzD-Xr z`l1&OOi^9z;*w2gptqrT=T}>r{{izV;!v6M1K5BKY!hGEh(!m!y&%9j%kj#M$XU^8 zI&T!(o5s~c7_eKEe#rK|w1~l8;kW98?LaXz+J&G!}3aH(gvLv5y_8SH!02{rz2B1mkhL`h~`4} zus) z;2)|V1Lng$E-p)tigX!u%zE9tnHDIiI;EdE*oT7VCZXhJ)(&j6jkOQo-OBaPo!G9& zU!D+tMl~uf&>Z;%4~=IZ&!J<%4m1x!i1v)38^H}#%`l!=bV}KpU~Sz4f-ESn8+Go+ zBKq47d-0&(8-6S$zd?{Op(pAkIFcg@xPor8J4hi2vGlLDeGgbi(%0lCo5i(mAf@=U z`;@^mgb`UF8(9Sf00LiIqn7(a%;rx6WS zcSXB0EbnYqOVB%^55)8kD#H;*{Z`m?*5e*bsozIERmLz2^jpB{88epkNj~Zf9z`qk zzN+MWUGDaKlI!D>H+}p`K>Qaysj}QUj#!-f<6IJf63E1bD=Jf+#w@Fs1 z28HFh_Rh{&A$>$%?|_{)l4FwVY@7a7 z0&}jlS4$W=VjUy6ECLx0^$|v&q0F+cp>pr>kbBFK0B)|d?tbfz?^&~NcmL+-N2wgk zhn4agHT85er1Bs!i7L`iQB>%{Z{0Y9%!sg_S_>~r866Q*JRc}AavL0=cw<`AM@t2z zqb;GDyHYAL)$2cRM@2odMIHeX9eye3(ni&&i6I4$2YAX4W#!~3E(x{cT};L=u|?ER zQf{S=OSgOyZKY4e&*#$bdGMY&ioXT02LO3N75N-?R>H)QXEZe?>~zq2%v-LG%AVEw zd6Xr;NZ~|~@|@>WF9~}dHBpgLLF79$&p(&}NZ|S*%TQfDE0DnkoZDqRPZrCR@U52< zJ0s5$6=e=r;QLUTh2;oKl7?@pDQ<_iRi*k(dr;)3&JJdxLWwNuvTkJ?6T}<23 z3pM&jFBFvvL|4H9XBBVb(!>(RBCx*uS0y(c zIdvJ=@#`$GHp-XgQOXFyAJXE&71o|2{fAS=--$b6ZFozI4r?b<30Ff%k!gm&Ip73T zMDTRXT!dqG($Y!h6LP$@xB4eeOd8;fmm0nzSRsM{_2C`Rq(2klOYO9|x~tvFv%zK5 zE{hDbuQJ6p2CUrl%2V*)k;^y|Gr*wC@x5t|oV9Y{O8ExhkU&@8OCJiaQ5^fHQU+V9 zjiU=aMAsdgQi=}<$cw_D#ql`w?r)~lWL*2exRzAK=skLx9GM9z1oIG$F`Ke-X0{&J zh}XxoowFPC7ydgbTrL8!%L^4*wDBQH1{Xlkf%k@>e84!Noud9tfH5&0xQNL_a~tUj zVda->{VNp+{oy6FSEzW_=R##XdQOb}Y`UKbq!WUWp8Uo~sVEvzliKG158-ljfI2km zzw|T>4~%icf4xhOW^r@ppN|SMFuW*_*v6uapw&|kAjY^JK3qCb82-Pt{02g<=vis# zWnExo+k#vLXHft9muqz7zia8ufgWv#HRvE%vgzq`x3>r5Y5GXh)I-o~xMzm=LWzN& zrSZnXsLGvui;@ShHcve7tNxudeqy*%?l8qoLU(8W8*Oa1zo$N0EA-!x>jtRhdS!I0 zZ&w|OssB_^7t(P%0U$=6?bIBVbgwAK*eJlhx<(sXb`rP}yMW0L(N+?_bw&r1{xk!T z{4!XtD?M}GJVU7h{#!awR^`N;zaib2+nVx!NtSU-;d9b|kk6SvNFMyGy?MzT#T*sG z8U_--yI9X$axS-r9H1oU)TGtIGZ^!@znb~z*I$w02B9%0R~-yXbqim{RR=nD6)Yw3 ziCH`aKO1jA+RJU+iVSAL@Gl6F>>_SVP89_H(MI#zmpI2`Cvt2q)MsCv@o`@9-HT4l zb*@ionS!5t;lm7$f6f$`(?;97U#b&i!wy}psHh#_7-;?>7&9XsSa&cn3=Q}%Wv|VG z2^_@z!8ABo=n|E4^6CtI4|qS>g#(8OGNcB&wP1^Td+MA!cVsOv2`7GJ{A`+57TRu; zr?(&yb85FQr!aB!TK-BQMLV4B`kKGYlBM19X47B-3jB80R59(nTFs>CYiVGoWyclz zgW*Jn#)rQb@1Ul_!eKDrbQDNBn8YixPK4d-C!6B?=;;>6=XU3db-eU8e5$}mnfx|m zmb>%M;sPTR))I9yn>w=Q@+}r3yD9N8)wXzXM}`RH$eb~j}E^)+J5GJAV)f~Z2*ei~|{BlPIn z022E2R*PSa5kJYutM!+pc>V2E%_SQ`(SL8wl=J#43DVCJO?i{2G?E7A^>&U2lvbp4JZ0nx>8DkrUwXN~ZXq)oK@=i$m37(X?MjGbAw8G)&%I?|q%=Pv z);+#(>P5CwO87+8{?MPNC*mK$3H26k+b$V>38S!ilM&5q)7m=gB(fe00sxRe&EbC1 zPi&X;2qGAgvj>`PcInl6B9wDXO|U9RUe3;TtzUbnh~9GlsFN#N_rydlZo2%VU2uP0 zsAYIqSp?heFB>$}w>CgsEdeANDS)QynaA7PJ)9Z@gzn|bxp*Sb*D1}d^;FM{{)1+B zYTUP%ke0vlP+Vtt7{UcPD>$K*<{Yp3a+_EO$8i&D4UK80y3u<)svH1+&3N7TFI06a&b8 zFprjhfLN!c{!yjVVku0?E~%Bv%L^bJ)Y;G-*Z@^gDg6M6O6k_KMv9_cxQpq!evYDt zU&|^gyddT#9e!NGM3jhJUJSS+(nhy2+X_h`#Qc^ra!RC02#Tg_2J>)mrd{#}0DuzI z$WR2?lytwXSaO=}Y=k?~wiOa$N6>3FNjs4QVBM5N_XV0wJ|r-{oNJCvHFJGsRsi>w z6*mQ|fQSJ*)~!Gq@GHz6#;Aw5cnlH5I}UXO3c;mZ6_~OBJo&B3fbv6e6~JDRkn&X{ zv3P`v$Vn7%ZQ^7<;y{2X#MoB(1@tFcHfHUw7GabPB!?1O#f69H;RJ^;7f3=jlZ8M) zMZ$5u0k2K2=T0vxVR=b&^!jy`L7#QZ^p;%r14WVE9t}!N6Y}{t!u4C(lFtsvj8YCc znC$Y_R4)H4ZRux1`>y&b=3YU6&S)igd;k{v8sScMgoSbE(>xwgzB*>QoJ@l5U2D6* z4nuSPv_9D#28^CL0uu1Z`4B0y5jsgijYu!erzS{tL6u&&;nDM&SmpM*YJ+IGx{Y2Q zF8FV{;J4%Vu97nHobQuj-T}-?ebt;dh1}zZFo}utVZY^ic>YKe`7g(YkVF>!`*u4s z2xm-CKEF;cq6=X$j@jJ@`4?GEUlrCcK5!B$0d4<>(gpYV;_9)?<;?s$%2lHwOeyC^ z&()<}00fyVZek@KDEHpQneM`|e`p6-Q)^BK`SqVD$O?JuF_4cVq4RQxkT&En!S!0c z(#5FaKYKUqt8a$xnqn|AfioY;#Rb`2Z^ZAL13Pwox#LVU3xCfAenZ95HO{n$o`8V^LFU`m9702N1fNk|CNh#h@WH9$fh z?^!Bg(GhP1s1CWR*zjl+0SJ_b)U8=jvHBcI3x@#RoSps8iw-OaBY(c8U`MogpFXLJ zIE>)b;!X-5;{kOD+ugTVuQ1e?TtQ-hCgt)Ea$yEIS>1u1Rr48?NLi7Yt<=Nb(3HkW z1$YpQL@?18W0k{a@qQhV%O%^Tw0Ih^ku{?ujZ~0VAW;G~n{IXM3&!#SMVaz4y%_DX z^RgJwO|=bpB*OH;`Tjh_r=jnZet;2bP57yqsD|FATJ6@dcE|<*06AheCnA@G1(%Pw zi?c@`!+OkYkQng2Ctfv9>jYrBEuMn0P%^EXx6tkidnzO58^}4;cWq7`N>S?wD$G%*01GCLw?}&3r&vLyi7z1!k{CrMSXL2!bQ5!)1!{zN z)aNtZD^4;ysgS9B4C=tnVQj&~|rl(X3MwdgKUX ziu@ho_+6f}gYKrjBL9`25*I7_T>@1oAjF(QNf>#`AM{VQ@)as3QP3IEX;7GO>qCD_DBV02m#h>C%EMvuNc&oipPoEKJ)FkEMGD2Z-1@@-1%P|myo|~_vOdvv z`{vJ7aex4P|GoSZMyZLf0BtkI-@GWre8x?D4L5rZz%aD9WKfEFUbF(4_Fe!!Op)|A z#!8YgMzyWyl-eUoEs}CvPENsRWoGu$B3AYrEe(1i*zYhjp^%94Gu|u37e!MH7imFVOf{yHKbh7d~v+ z?irUw($*FdDPt`B47RuO2{^_)@VJi?M8LC!#?QzK zV-agBOIT>B%I$@*0IYLCu)~%T1y^$%77HlSn89%FuvF94UNj;GY^fw(&8 zR~o+G$eWs5n*85nz51sObG;$kO7I6p;j8@lH=+JOQvHj!KHAzMb!YFz;5_dCzO#%f z8KEPZtPCMWU}_Z;5IFoPn;1#QNc#TQ+#}(|C=zAm=oyKV9c^hLc50dw-c)-2sF+>` zTm6df)k511m8EMn{)y{y6&=Sd$qb`T9DE091aF$fGsfL9PtK7yFb#5C+iX0~m7urf zqXzL8({@TwihP#@)Gc5uDCx;8>E6(6)f49T0W61I)WiMN+W6NojNB4H8IwzJ5K5AA zqP+3eds63yB^kX$C=c^jN(Ub|EGBuzjwniM@5oL()udOqKG!=iDWblbAN>fPmgp(! z%J;qGmtnKiUA&)8Y*M1w$L2?ad9Z%ri&NhH$}z=5@rXh*b*q8Bf34jAjk9IgH$_2g zk8hcNuq1$(sdP|0*mV~pMpO|F1o&x?5C(J10!6ndPf#ALQo|;x8cgqJmsKe)zJAjk zOH5jYf3ihB1v|&47)-w`L~sr{AHAOam4|!I9uB43OfV~Y+^?z>a`Dw5#8D~i`0HfX zz|A)1jX3F&<;R94PY#eH?5N<^@BhU`1^e6FYPcLt7?fjUO=b6X(1jkufb!Sl+!ZXl zZU$FRnW$c?l!K44d%N+0U`guM&%r=m-4SooFJ4R4ldCeON?kZMXNm~GrdOq(e*5NIQM(^gp>ZuG*@^b>qf*bIVEinq z-VbH*yepQu7zmgmDEJ1yJ#3Zc1}i=>z@CA^t9ud6Q;)aW4Sq>dq!ULswwCR?U#Va7 zf#$rY6Z4Gs)*Agjn$N(6)-vEvNo?~qL1C35WGpDad#}*Sf0QqMN6am)~)(tUw>Aovdk(td=h$V&O95iGDk;$rZGAbZ^`h9~{^k4Jwww(hI`dJ@Et zMzAn0pEg-YAwtp~>J+nDxQ=~(f&c4D!gB9yrnr3NTK54BT^=92fKiw)1PV?eF5}( z$BS%8Mm#c5T#4<)*UtJ4v4fg{38u+Kxct%+%Te9rPNKQ(fcszV==I?gpa#VM{O~dX zWzNJMU6u?=rnw`bMBZS1qXckbR?bu&I8h5ApZSm0Z&?{PY1F0`z||-LPg|Wn{1efP z!p9d9pL&hEv=`X^s6=tK(N2Rbe^LKpVSKub%fM0iUFJY}U8^J;>GZ;gaAqc!6N}9} zbt}kw&8u!b;A|B9cWPh1i}~;nkkFz8O$QAXv6d%GR+-~ zv!9iiZ-*sNQ7vTz7=Z-Cis{}YkttDS-)a4vBJa7mk=p3 zBjwEgw*Dx0d{n;9%+EqDD7zX2*DD{46vGEXg!e{!<_CXi=v_Y(>(l-ps!uX}8}Jd^ z8T~I1(J;V{dxj^d9MxZ4zFC=GhiOyDS&s(;{037c_)Qws7X(<>g5nk^_-eme(e^Bt zFNeuZuKU}-&Rzs1}^n-l?EC_wGngC0b$1r;X;9iPG5MXIN}4ZFvvoQ`3dM|ph{bt?)Yit zfUJI$oB$d}7&p7pwMSLxDn540jG5)~a&k7b!lCl)at;ZJNvxrXx_UzO^vxbk$r_+t zkifmY%#5I^ultp|gU-x3wn(hKx-{Wa#;CqXY*IS_d(=UlewrcEPH9H)7$*Pg49HpG zy3*E2XOsn0uUiuT&QDV!SyrKucyFZ~-T`HvFlXbq@5*!GpF8Gq0ZpF8b1*7F`=Npc z#)r|ZPjfW{eiO95q%D)dL#qwJ-DDXt&Y%@#mvU@6eUySf!7U$RWLdoK?Df3BXW#*F zSx{tRm@9FZuN+Ok-$-+h=>$~{V5p+)@C)!{?dr#ESs4f%efokhRZBm()xGvp50aVe zm1a;v?E`zTboVpdb12@~_=T)fN&8}}_UowfJNQ!MBl^L3A%q@h06i&9-D`jy!c62a z@-I7S8sHXDk};f2m%6}9%PF|;-#8CtV?|0%jQE!p~nXhjD_ULU;edu}Vwxe^GG9XJSu;NFxeuHV?Kxom=vn zA?Ab>zM#1y<10FEI>!{LyTR@|0I{hA!6kZ{_L;tD&@}!m-c>nD5Vi^_+NaXIr;l}Y z8b6Q$BY#C_VjL`rd>PSz_doOye4x7mZqdx}m#bvv-go7;d)pPxvRqkWk@c2} zu-SVUa9>mdR=cHN?%iFxB&W;HPwLM1As{V+j1s%*=f~V3_xBD#fI?AvY$rTs$k$Tw z-z#(4!)a^UVi)jMd*5y9$}Q?4DJJp)W!mK4&&dd$TtV^jc`RW_+w1f<+lbl&hW^T5 zXFNJjdEXHfg((h96!+rSNDZuf`N5?F^E&=drqubI!=Z6)SYGgzc}DutMpAAw~8>)AA_GJk`uk};HS{O0N!tLDa%9g zH2xS%XGhSoE^OI?(a_tb*J%5c-yfSK2)&rwlL4O$?{28PfE)Znw71opRln^3fs?ue z*9(EH555M+<3jT$a~WQMvuY+(A>urpMIo^9K;?n1E(I=kE$^{{#^4TWQ$F9K7!R_n zu42%ZrO`IAHtw|Vvi3CkXAfXrE5^txz}J(D9P@PU*W8z)lgUjgaI@f_ILVIp+(jN2 zzYr5JKE&1hELZ{}55>^v02dWEv2e0>(l%Bx>L5Hs z$4GhUiCijS)bj;P_!16`34{qX{grrayTq`!F8`aH010-d4uIHf)juUp)CxpH0;wwi z04x^k3i^s36l1;`>RF+qH6cXXG|>Y3A#xmj{0k_`)%8dIHPFIw0g#$pp;!auNjtKKn8L{Ji9{Ikk<_1sWM{u5<3 zJpfGqffnRRI{J_BHA+;H6ta(~#8}2_A!4*1W(606Z}g3T+oN7K$}}8)cQ6K)P95M~ zs5k+l@dqK{Xw%-$L{`igVbKi#U6I5ewJM7%Opq6`^g?h`LN>V%=u}?S8RdImP;Z7G zdEq!SqY4&L0sHc`ju>Iytz%wWc<*u&1rA|$t|JLKZUyjEWZq*7nbCEE~0oh z)|6DH*jxX{x!MrzbZZr!Vw^ebXCx0ax!rac$nAIr*VW802EPzFIjJ0=Ha1VlV~+~P zc-v02OEi#rzX0>^sdE2NI3*TQ7*;)ruTnUBaGu2U-NViX@b3P7GW9K41%BE42aMad zWG~&9t>AA5p>g>s!7hvwN(6_mJPszViIPsGOQTkF-Kr~w5%4zN`W98Ft_KdJU_Ke$ z4NS3Qd2f67B>J{$bvf1c`*^nnTyxv98as#GIyGzZBWX{b{j8db;b6BGL~{SS?*f-X zqn$rxB98hm6?N)KOR*X zhV4+z9Sv=9nTB!vv2#ZHh~73O?iQPPIu6=wiV)IVY(pO6VF6RK4hO5Yb!>6Kj5ZZ| zy^0k%f?C|@dk_3`q-FOA0E#GOZHK11*CfV$e~FvrJc29PPTqH=wEOvo+wv^NSG170 zI4_7Z5B>W21sb;s2W{sp$(#T!CU43$kfNBOJz=wk&undTG1o=#Ua`XKL^(`xsYMB} zKu218Tr>+($w42XN|p!*u4lp;X+3S%i=m7Qh=TH*pnFJY*+D{y*3dvW3@z;2k%-Q` z+ZS>+2OB#DfxLygrgY)0nf=fz2I5<0zp~D!$2(kH8Ot{^PNgZ}88gc)O@>fMzc}rA zdba)O!WJf17$acVP-0?0Z2hoWnp&8nyRF@diJ?Wj7=6vP z3=eGD8T!iHJjV%2ef%84CQZn`H1A#4K~zO4dII>pL^(=@^c<2=rup2I-KlR6-Pu+6 zIzz#s3ad-6kaV-pKN{OY`z9f~ms_8F^K&?dh@rDnZDx+Fg`U|%g`jy3Fq?(DGs?4O zk6IN5RWPh+$u3JXK<<%T^>G&_^2I0g)^SkOmXOWA(lVhE0Z#v2MXQ$z$A(%N;>dr# z$-^_3$22&c2W8Q-4xmL)tkuK{73e*_nhARgB${cN?9`%uz_)xow!|%W^myH(OM`gZ z4OuPS9|H50Ln4Nb+3Ir6Eky@9y%q_8UiC-{Sfz9Ljb!Pg?h_RpIxAV5msG;JSwgYF zgmbsXIo&DS4KJK@DG@l~9=5vF6iosn`b(XHDPSkjo%G|0ed|ocqK~12lo;3OKBp&4 zRnL0xE5#EdXKrD@`nBnQ0Y#25$hT=@~6Q9*iO z8M>BxYJF927`F)?3U$a=GHbkCpNP4s5XQ%%I>w3R1A`csRbwrZ%B15cb_p_Rp;i;T z`>#pqci*?k<5iVjYwX2DhmoP}#+-n%e)z`R5H->pPH3vZ(C1r3Y2mBRw-vA!Exx7C z_Q^TM5A3SOLJ6$pEO(oKu*3=N9z z&%%uav_V|5YjyZ?CS_1KI){WKE07?qZtTmR()M5jW7VT>fM04JalW~8mENe&b5`W7 zSDb>`D&=5_`iGq<gH+C&h`q& z&T0Q`)9ju00(R|OFf|c)3poC`0gT+bFPg&~Gv>17?v|r)Lf0mUj(v1nhxkBW@}v_2 ze>TVHm#*)m7^+*dbE@x|b(+@BCYR5Nrx>U6oi#a!yrKthMiz*`7)Ph)iJ?4UwgCH7 z(~dWvBXanwYtADXH?wo`K&*rjGI~zE1W=}?utl2zr*-r zr`pYQBy-xvEi^Y4kblWQ2198@7YahwnGXZMAG!mGf$pCG%gUZ*je{uHq}qt4NQHB8 zk|+%H#X>?uhvqmVJSx7*THLKw8&8cFK4 zk;k%eh(4c?zpn}?c~CL9o1jXFJQnK28Y2#}!!LV`K@!2@|QAlZcpYsc6vD22lK0EM?i8 zTwbf$a0@>%pa0SM(*00yE{0OZPfPr#3t}mwfEFMHT#)0`u6GlVbj;c=$5#4no(W>m-$9KImaHD4|{-> zM&~sGfII$eP?X+6^zh~PqRZQn%woEi-LHOs>Q&UbM#q8F1F}hR1=V;4EIbB_ z)}K~*+TXMSaVXpk?XK#4uvu94wk#C08$os}U!fI=B)RD+m0#g#vHS_<(XZ}&U4`r( z{~nEsCfGx?GTf=hayEU1beUlCbmk#Gkc|m2{59qLq;y(i8>hN&;ZsHl?dVQWprWOS z_`Fgbfn?rsndcB%IM~rh`+>s&ZDB-HoH#M-T@aeBF12laswbptq7qg>c8aVw)4xB4aS;u%3 zawfd;f`h1VSsN>}1e7-kTHPoje^swoMv{ro3N&7<*Mh-cw=q7X-aI-_?&V8NI@PN_rO< zyjRsy%*x9K!VU9;eZLXef!RMBAVS4xyTBmJ6(=|NnAMjosnRxjURl72`l|m_{0#yU z5gr;227w$YH4xgn^n?xYjWA(gz=4;*Lu6}_ex#4ZP|h(E3C2ejG!T5WMt$%Y$_H$3n1PoNxZPyiUi;@@5J^qLP#obU_U&BZ=LE`Aqrd!cbRVOc68^oJnJqPdM z@lcn&hezjHICYJC?vaAMMhFcVg6kmmu%ii=v`()6xiGU%wfooL$jH$l^AB~T6#e_^ zh5iR%6ca=pJn{Ygx>9X+rp>1-XgolGB1)@H9y3>`tLmP4|#k^qDR-%wWrzd|j#cyhJr z&Io=aiFwiI5Q3+!kI%5-0C)S4@&;EHe_{r+(i04Winr8(iIL`=i*WAfs|o0*k#L`* z%n0>&bj->SXuV4+vAg-%)GK>&@cd)nc73q_Y{lLrxLXh+urc@5(eRQXA!yI_?^^9I}b z2qlckcurKveS5FugzI&ZHu(P)3FFH4c zcNoi3bFtOOp*84-D_{M67Z`e&_KLNZ^u5T1L(8u}SgXxUsc<^C%3_F;6w;8;%lUW9 z-Bls6I8JwKJT;`^m01?-wcEC!A*XHgEf{jU>q~s&_Qw+o;|(z?qlWmX`^_F`64(zZ zO}qTdaLCBT{#GlEcap+_vdoB)u(cR`RLQAB-q!bL>9I!!SM22DLnaVHAK=W4<*~+{ z7fxn%BTi%Nao@U2(|*xf9R0<1_*JK>?=54R*yL|$Krxw22JhP4dYlEQ!A3E{t3aGs zxssyF&UBRHDmzif0MnWgRYA^Jk3r``eLWF`4$39?;y_e)VOr=CXi?qN2J#6bN&`z} z@A?mhwcVMIW*+p2o-l)k#t-$;YJ#noTq(I)oj&?Oc%iPw;H3w7!!a;dlQQNR`p|D# z2^I`mv%g6K$s zREJ4qY3Q79(-hAx(Sj3|^LaZx8Gi3t93G(ZM|CDOeMb_pIhY|9C90XbRn|dr;YPiM zytu+NDD9T+%n6%PD*5jjbW`G8G-L?B_1q54+P2+*v^&Moe4vxy2RmJN0U<=hzDsFq zYIGC&ov_PZ4WdtoHD!pip`orm(1vPtF*2Hu7$w^0NFMT@Ug2KP7ELjvHC3Mi=hhfn zp7;H~)D?M3%>p?L7)UM0aEFNpcmXl zfe`G{`w78HVJCmUPy!`n6Xt=9ucP|XoxX~As^AX=WTh4BQ6%2$bn40V&A0vpKcsaR zn_k22gUkmE_XgU@K6^=1lcJsZw8?R+8 z)0WDp)@!4gj3rFHAHb*_HGY@3&OyW<<&L3q2o8m3i0mg}sLt%}aX*Ce&eCZrogW&i zdp(>&X||U6gK6bX!-4Ce;Y_?M)0@wL*ev3>>KO7}2UTN7&aLEm2qC#^4(wm)nR8W4 zyn+s_`IUO+AQ#;>orQ^+!8&$K*C~W3YN&re9;URZyA5CLszXl{c(ZfHi`z~DK(Jq; zsKPGLUOHE{0mtUE(b?61RW)!|GT$Fm`TI2UOpve&G+p2?3&GYzyN~$J8Sxd{vBKXW zB2F1t(lSJ+l>-ch5#GOu?Mj_ONira|bfwsCHeRfGFY1&a_CuqL0$k7Tq*m@1{P6b3 z0`dR~Kf3@zFx_Em%6VLDGKMiNIRN@$@0^a-eD+T5TE7}B1)@x}4l1gd$^VR_)fvDE z9=$Dw3|`@jxN=<*rl7A4?9mDPko7*CzJy5J5bcTPHh|0D;Hc0jb%MVT0@y4AlmbcW zs1z4sF|U6a5N53?zNPWxEZNK_M-C&Q90^0PGe)u>VUA_nbJH>&K6b-%hi_q( zViOcYL3@@n0^83-uQoMf8Bk!-1Ym4Jp+BBb;}$cUt~|*&=Yh%X(mBX7n`8;vs~SB5 zR$>82FnLdUI*--i3monzYv(_ExGs9#6{Vb@$Yn(fBAj1O;j#%r4|bF-!w~ZeNl|`c4(W}Ak-1bB9sASRF2m8P zGcBHpo{11#wRqL~d}MZ5acX!=DHZ3LXz8rnO}SwVBBfx_3$LuIHZnyCdjfMkcKQ|) zZe|L)b+wuXZ<_9qL!aB7lb@Y?0P`R=VLNAi8L~+YTQI7$pUH5N0WH`#*)NvH_;Ljd zJwM#FNq!0vf+R8?sJ$;PMFw@=XGWVc-biT8AUo1fxRrxWJu_TjHMHs^VX202*z5)7oH>{)3D#9 zs``!r)okR=oe0T_6=$AYXaJmg$x*kAy$2UZB@~UB)g3U3zUR+%YVaF!lIaj{}AMCo!ptwPX@Bj#u@X@ zKy?6kaKY_0vUG1CFn$m#qdZ(gYhS_Sp#NOqcK9WE%TI)J9o{s0%T)z zQ|H$J9_7Si$<~&nG;J+z+Z>aK_qRLMez=9XMb%nqf#oz zO{~u0qZqok0 z-Fo#`N<1=G@Q;-1w<&F@N)!S$Y>tj!49m41)ibXv3|}af|2#`IBYM5DAviF-8~21o zpTN#Lm57l^J8&iVEDqag0yaR^R(-qf0_*DcN@G`);JtbQJTmH?_7m2QhfUC&d^_a) zPqj||3Xy`I-5Ej{x8zT)spCwUP8t%+ITN^C+-Z3X|A~YT=6iK{GZvZAh3&)=b_H{rO}W*?%7k{& zb3I=Pi&rs;`VZ#%OUhK`kA1&VXNx6U5HF%c09ZKQJr8h|NS`Tob?>#zBM~_!qF;+7 zI)u5yZs-_>3<(%P4RLlI)iy|c#_b@$6a8WrX8b1Yi{o`Fqs->vbZ}tBy5-a1bwAxnwwN^o}J9=&|3^LT@J0 zxNklDrqW^&SPC_@afTlR%6(*V53_^$-a-VTT&C_!!FiEP&8W?RiHc z+-!umzSEXcWSodPYwT(>(Y<2J!iG;)lbfklXe|VDhQJ>Klvm>haO*cw9FOb&U5=}6 z5EfqbOn6`~M=2&<{bf+{?UWA2&%2?44mFT>`@m&|D-cc zi9v9YMDnZ7Ui7N&047drmC|DK&IUcv0#-7UEo5g0t-w0VkVrQ6SG!4n1Q&O#T5;a!PgRUt*#_1$O=(Y( z>8kKYG2H*y0gA;<_Y6-?H{kRDUw@99qow6Eo~CWY9;FBtqDAc)T#GmC8!Dn&@+7d- zv}b{IkpaZQ`r|PsjkK{Ji zMPsx|w1TW}m5=#F2n=trJYkdQTbqox*I8+;-#ghCD6;NC>sz#l62vp{ws%q^MZyHe z0in(Tvg6=r+nNFlQX-cpN)}5V$Y)HBgJD_MB#^qn{W>erd0;@LRH@D~*Gup9InIC5 z6n4DeC|}KAoa;46nbSzM=+!t4;TMhE9MFsIOn+iv8sRQTmcQE2ctontI9(NVdY}{5 z(<0$L(3>lHiYQfw$0W{w!v@xp{xl>o00-Q&( zxH*QaAIMb>l-L6)h@!)iSr7oZv;5I^ii%GBofo5=6JU1#sl9wjwijPwdGEs!7(i# z(k7H>%NJ1eaDqgG4c$&_u+-n(DrMm$+38 z4%oz}F$w-!HQs+4(9cEY^o+-<>juLjw3MYY6TFa$Y%eql@FPpEC!7L-j|NOO%HAqXIIa?2Y{Sn~YfjX+RhLE;|EUM%DG+8p$4t0}PeOYsf6^~oLF*szN_ z%ZRHpsfsfdkXD9WrB`~NFxZ3PUUm@GzQc!a3$j$K zO>FFH#;^cc<^aE_Ge*a={gwQeH-mSc=Ny=b7!q!df=Vc9hLW13#9-`Dr^Q*qfg2JF zIgdh?1(YUuL+JZ&-r+^SD6Oj-ZC}MisGZ-X@3EuUF*9(@1HNI#>8z1Dg6xE_o?LK+ zauTTlN@RmgfYx1$HS6OI)~;0t-ldJ|pRL)9NXm>fYHoGKo_dakBqUG=;K8Q1kriSI zN$nH7HQYx>=tZYRH)ee^+(s-BJpG)l0noEQ05K2NOR;{>Uole%ERB#S>L_J&M#J|z4zkpG~&$0 zGsE4w19D`FU78NXvKk@heG)j%tr+AcB7QK=9?41O0?I(IUKhMaiIIxtl6DoKnf3PH zD1mO{{y;ZVK=m5=(2cbvd+&fOst@=iIPrciO&A`d$)fWAmnRYVS0`gRY1f#|F=b5ZvM3r-4BO>%`gc zRayXD#{l!Z(Xc<`?wGX)a)@U%$^FA1R4c?05&EpJx9&jo(YHm1}7H4sexTNwJf68n?$Z zKsj+`MR--m7bAWjI*g1`rKjFBik&CO2Z1yLLcOdoPiFFI8I^3g3U#%Hu}Un8n4S;< zJTxRhk>DLF1?(Sk(oP}x^cr%fkv_L!_k1A+8c`Q9sS#kl=i{*sls#Xfoi(0BzdBh8 zj@NqvoZb|w8&CBC%AF)9WeRYcoy@b;B<`{*BL#q~5q5j;nVqC+TJfa73}aI+Cb$&D z(+`zlf*1R-a*+M5EfETIFv`X$q<4pPI5Y=-YJ8d0HuhNv zig{5lX;}gryLv2r0|LyQTH&l;=8}~7xBsuAkZAY)-s-E-tk`8u`813ek#EC=*(|`R zJrReOvM~AbsM?fm-8m7dM8)j=l5z@X4a7M)*TTBcVjoM28(-m34bd*(s=cfn~PgI z2>Fgu;rjB$0S{s7u zsLVqwpsrwR(evF?(7I8q9I~;%qJTR_R;;QbDPiZj54#lzM#p3FDurbYO5_&-P1iI`}R&5>Y1 zZR#ezxUV&7oJx!#%bN&cf2DtSunhx@Cq1F?lki-ATiWRIApg6ACinw7hj1d5f>7LI zT21^t*VfBSce!Nq^l9f6?>L48VDKL|Q|wq{F$b2JG_f-_4LjnUA5lM-^Mz*b1RXB1 zxhgYGf4}71@7q@&Xns6SFatk^Kic!c1U&*Tam0w6obDD06-=AJAMh*Zr4+dGW7YANl&>5w%|@keCoDbw37+E^BV z!iFNr*~18WvgQ4JhsyCPyfJgN=LRKnV8gs$1jx0qP}RtOFm5vxM5@azsJ~*7 z&I6V@OHfj+6a!>XmlRi44}dXTRklC|{jpUo#z~50kd3^%w!0!8%88pj(_l$_04Z8$ z@p)oyB~%K@5*~}Z8e%~aIOI~vuTEV#CbkYC?Y<6AUX_ebuS`!bBp)rh<}JE1#RLWo zYhG_v`1GRr_p6y^(ys}uEX^z{_S#hGW$>MS8V-q@14?1>TQPRvPTeq5sRI(5$>@e> zq~J00GOfOZnuS|W`}@PwJQfpQscRq~tCHPedb+Ad4KbaTV(reQ& zbAe7!4Z=l+!Xai3g8;MF+VxNW#OO2B&}XVERSS127PlY&v00qQyS)^j!pa1+#(d1B zNC`jQZ{C+m%Pk$d+rXz~3r;A#;k13p=|Kq2UO{l00ZSley*0aP%*vi2%{QDg{muja zDR_E?00jyp19xRcXXjmB1VRlQV5X*mi{F2zz{DTCtDu~pV$Z==sUuc%7Wi^CAug2u z^-~*bnafZDp_xaOKKiw0dNEO(v=$Pp^s(b5Y}uEX>&+S%NpHqITP+!+a&bJ za@6K#?Z3j%5>o2=5~bUQL}NIvX1~0<0PoQ#lx7o$*1vk-Koqs(Ixr?Ic}=fYIdK;9 z;@kX_V;8qZ=4ai|6u}_VkB$t=Q@KpigyXC{NEo0|3}y`0|E1MOw5QCBj?Nuu>Ccfb z{3n0K(ZR=KhE6IjM_zV>w1n^5*5rg&CKPu#j^?k;jR^q7rPl$I?E>Tdd8s%KgFdjf zKTM+?LAu1Ww=rEdm zjZPKgz2YeaPA|G?kisl-gkzrgH8eq77sB4Q)4TH>LQb#gOn&x zY?!{idT(*xOXVM3!oa&8j{~00Or&qcVhlmnj$2Zn`ac|x)rA{OrX0vBLrG#8+`**$ zljb7)28co#RPmzJUOqHKmCk@I3BYjPDq7K}jegb8@~mG7Hpcu66id3idx=F2Or9yx zAEVPen%lE8P<4*hf7ZCSne#)Jy6PV%v5`x|K^H$R#Q2`0ndBynDpvq&ixrn2CzgIG z1h(MT0{S=4TYjMP{ni+sw2pCJhuT`EJ+|IMBLg-anh`_`Cf*&TA?&Sq=$|?Pog#c9 z2XsjP48pCV9LJ!rBDM7Oqf(VMy$$r4M3pZ&S>Ta6XCMzj737f4bV$S--BH{NpXn}Zea94`@MIvo`qvPX9!Z`z`A|hA2YMb)lvu0E0o^xlYs(ry0gY-^xqo@$b~W{K`+> zA*mRArAnF8*_a1*8;F+$a7HP)NF4b;(QA4rCU={720Wd<$z*b2kpCV@`ZSx}>3Pd( z!x|VpC79CK#!rnj&K}~9^M1`r@_6hggrX*)GdK&N^W>a)Qu`ehDA}sv8#4#Mm9kit z5PRgRZ)#`goF%AEXbw9G3obbK>wYjpk;C#v^@!#@KZYAU)R8aKb|q&1$@ti|he*-I zv5bwGB6m!`0Pzdhm5}=HFbqp3d7Z_d%JIK^{2D!*#DdF`$FXb)SSeJ2M^+#a zE|gXE&&}hL8^NxcE%r(=Ge^6sV>zV+R@yc5XhR6j2K73%-m2Ypsp(v(0k4fdS@^%O zoTTrpi*4S@6?!rWy`KC4YppAkkeZR4qw@X(FB`6?!SfWxwOz2YN;7eupgdGx=x6lr z9?K^MHdq04JH^ydwR6pEC%=g`#5dVAK~ofM(mku_nG=6cNLV+S_RR@vqev*<@`hwl z4FXIXkg&t~^MurSVT%PH!0R~{d{cF7k@bbb-ii<(AKZBlEtb*#I0%IU0Iwa%>Suxz zDqMPMxvLHhKTEw=)zMQppTvt8S&y08E;72JAr;TD7MXFA+2b2|d=zCO|8B-x*b^{p z1d5WlxU7KAHI5=*;=eHloQO?NW!>nZw~k1yIfNK)?9iBv^%P%emWlJEr9QcDJkfk< zb6dx$7_JUZ(daz9NF32um>9p6$tgl8n=EZ&6!X>N*dEReD81ZNoB4l~C+NX`H$I|J%OL+8}j9S)atX<9!^#W_wwHS~dv zcoa+Q+ZlyuGJm7t5;zdJ!as_Qwhv54jpC(?U}rY3^sWzaoY2Sgj79YV%zCDO>E_Z-@Jk9kMPF`w3LSx*UKIIw;@cM(y>Caje#7Io)4$S#` zd`wz0!~drx{B@xl=en;usFsRE)iMQkFh+tQYA{%K7iJn7FiE)w;Zt zGQpduO9QonH~*{=5Z^RN*#6EmbE^hm2Ep-J_>fzNU3x4ZNjo%b8CHkV7eed@ys4b$ z)&Jz@R4wT`LQu*u3hwf26WeX zy9anySRBc6$F1X_KCUXCDMhjtDSp*UF0dGiF{1o+Ej z^kV`6RdM)c#rFaPU4p$v)g8UEOW3E-~OZYu9z z7{FKt&LWS-ph=KP#8#YMu(}Vh!q{fz_I1y5KJcyS(bP-!%s7h;l;~z|9d(`MC-_Kj zGpShJnSrl^s(JMnNt!Rd%!TV3_0lV~yUa(K@kqyrXjf;Bd=1kxEI-6TPC5V*1i^^I zm@DeFkof0P$PFopOD)MNeqU=;WalN-nO1`pzx^v^n@qCwn@K$fOj}Hy;J_JP!TiCv zI&8Rr&uKBxJp?hqU`Pph6MnVS95h4=Zg-4kWM&X#Dz$#wV`j^r+K21>-JPxEM`=Uq z1Ie2nYXkKemva@p9r|!Ugr!@1#qLAf6)^LQ)|Sp*Q`){ZHsztV2_|&p#WJGmB0Z&_ zXRiPwsq>}u+R>8NQS;%dE(1&B*{7L3$B==941w=U%3>6FOT%WZ984nf1844wO@y?> ztD{zWZwIh-y$~`^n$02eq4dbT^kFJ^c^RQ+eD}F~p2um$kWcOt_-`(wmqV{4O@Bop zuvgzsbi;4w>1u}gS@(arO&usYl%;XKUTd)t_ZP969{8;*;VYSBv36u;6g98=gG!tO zbZ&Scv0}6~Qzv{^{(PY~8SOZ*^PzEYJ^%q}B%R!Rl8k79S*Q+`Lbi_~zg4{RZn=|08C!u8l`7Jl_?*PqGtfdKr+i zl6EN%Ib_v#9lQ-6w$uAlAuzvJ*#5d)R&t9j_Kxpfc3s~UM`}(mzo$j@Cr>Gt2DaH9 zT&(yP?4f2JKtOzs5_34D`tRsKRy4Q6cd7t<^2FzKKGv}?^hoN%gR<+pmfBII-p;2M z@1o=fY~88%FCo6vE6Qunob=wY_oIHiV2=YA;5qO{It7VNXdur~;Fucgw&Bxgm-JQ< zB~GE*_*BnIjxP6jQ6ydA6p�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 zJz0VUeI{Qy4AqDIzx#Yx5z}Y^uZYl)00000000000000000000000000000000000 O00000000000001JX;nP{ diff --git a/androidHyperskillApp/src/main/res/drawable-xxxhdpi/img_paywall.webp b/androidHyperskillApp/src/main/res/drawable-xxxhdpi/img_paywall.webp index 28dc6cb8fbcbb52b494c999576527ddb3e93855c..c67908b927527cc81414d7424beeced0c21baf7c 100644 GIT binary patch literal 79718 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

3+no1mFs+stwwV4O&OR}krG)QQaE@J=VI(_w@ z89x(0O~iBlm-LDe(v<*xsbrvXhq{c)G}tO9Lxm76p;$UseLu?budVGVNP=n=r+X<$ zIRPSOzd48|cu@18CqYRNf*{+XQHwkLu&g&`+PJX4%_L3?#HC^J58tS0-(;6}$|`A~ zJ7coNQ9(S`axrRmuz{m@bY<_&dYeKWB*g0C*8Wbk)`sW(Y&pc88K69tCSF{<;IYVk zM)h?gcBpqU3>X8Ib{6jFe`wEjrB`c)l=LGwSK~uayaXs z&!yr$8{2C-IR=tc(v4^@c>E_9SX!D6USEXH8dpSYnZ-~lRhM9zhXvO1+g;TvJj$c} z2SK&tbVCmI!y2wr(5Y|#qUo@UVDWQOidh;lSdN>Nj=G1k>b{TmO6o_{Hk0lz?6MRJ zikXe&Tr(VfV@AN^qtM`%QY}hJ0X_DKI0VeB>>{MwU>BV8sY3tu>HwHrIp57(FU*}~@HjYZJ zEwET{#&wrIi;0|T-F#>$lUZ17gBfqHSbwh%u>LBO_`U%>xE)_~V0@hkFC7jKJ7YdMLsS;{R zj5%`fBOTra+Xk5hX``%Nx~`*H=DzwM70-9-R|ENwQxaTy+L7*A#>41zRTBl zd(v)fD#70xc&bg^A><%gB14lbPWEB)%qsOuH zsQUiJ%%?Jxh$n1U5=%<0fNf@nK8=xK()F1hXXT?Pn94i#ap1`&HUG}%t?FCqR-B1{ zKcMqfr(tZ#D8t|6No{n)vl zYqoacYdET}bJms00aS7BN8b(_jtx{al$CobMD%G(KIn=))@ToGU;US`NwFet+~< z_LwOEx$8m3&`A(CS!xEfMZJ?N|;Pb>+&?0xH@^Nx0cGniaoq z>abOSpF9 z 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 k*NixyJB2k@4Y{(;)|?p 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 z00@A+p}I5Lvmfop)XFN2nbz}A4HfW!00000000000000000000000000000006xS` A?*IS* literal 459888 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�DTn=O!k0|62CSZLXX&fF0xO$8M!&-FR*I4#a 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�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 z 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�uo2ft9*C>2@5{g7NotN;w86=I8+ZsWBJbUUc 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%0AKFlSEue?jqiF@w85a)*lR zrUJOe>(9){f++(0y}xh=NUG)e}~N3RX=yA3J-+}X!x_FHL)u*euON4)wzv zA_3=VY`B-)?nE#uzKqiMRzu?g5D;uw>|ymFqr;~!je+`K@b z_UCFv;VSRIh*M&G*?Apt~fv=_z+!JdvsVTj__Btwz=vn#c;fCQl0Rm2!h%S;2O}jtB8s{ z46@-vqn`C7Z2Y!r?wPFQyozDdacc~r?I&9Xp-P(LVm9!2024Qr}7CD9-V>!}5dW;K%uC10>Vz z=M)}Q+*3sL?(WNc~nS~;o;ujtyFkz8(`AtWdC{Od>I`JE)u(CX4xEs)|6caMe=Nb`!RED`{-9__)ON{oGowL6

d&+LzLDcT@gKqVz;n#n-@#{AeOsQz>9 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%0Diw~cdNqd1B=E5y#3 ziL#kRf&Lb{wDY-8JfvF`30Mu!MMZBBt}4x+G`rHE_S>4A7_*DW^-)Pq2AD+1LsfRW z9cmLRi-V#t(@>3sazMh`0aU?c%aM19%zGW8+g~G0&n}92ie`hih;t^%PItkT$JUO;=+{6J0&t4z8b(C zQwY6wo9a&Y1@c`aRDi7wRFD+?{iz*9(h%Auvahv;b)ct`Y%(s*Y}BtX$x<;?XQeFI zB56p~aX03??9waBI{&8@o_J66BcxFIaZhGTm@=zQKdXz7OypWDtE@=RYhhPg+HGg{ zV(FgPDn}QXSd%npP|ezDy6H;7@s-A?VQeVsUbrWW{B+e`(}XOcf*wJ0VCQwM;(HO36 zdb|t7$cbMMBvd2!QLqu>-UwvswIN7q72`T3i{vlZCxl)vfFzuz9CtRFljR=%3Gp0; zu6ZkV>(usD@g~zIh&f8Iw$Hi5D$N76ljoFS6GAVZukx?d>1UUfaq8^rtO>b{70HpB zfWFdusu9Y<$F3gB9yU2@ppp+CJ#9C{)s0|l=`lULXaG%Qd(mPH{PwGH!`YAp0ZrEzU;WE`PP9-phZy1y?5oq6L~y5^sfZJ<;Ji7 zT-@BmX~P|0cu#dyLJ~%fp;Ehd5MBWr)&~i%tpIpp%?BksfFPramPCJJ`PDz31mhDU zDu?y#i34Xst>3Fch$`>J6WVqSh-$(!DFF_=qya%t+@Lay_dt4U2rm&wtpSbKdi^yP zi2C71-qTf$S19ux>2lEzNxT4j#8y&&EXQ*3oJ<-*&iTgAH2&-#9Bwcx2&g)wkKQzA zv0WCJ)TpDs-R6S5dNNHP-AP+IIcO(bsIt^x$(xX(?&66~0V^Rq%mNF2o%Q{eZ-6p(bFWkwvW6i z-p-Wmm7_JLv2mS1SV;78B0A_)n7Mg|MnO>6spQ6gAxt(6Ut(!VBtEBND{kZ~LlZ12 zY`d!#6D;}3qeGixvwWS{AY$t1JV{8|j8L3m$IIZJUy?inltlVC91F~wfO zU6D*@1=QqdR3EP^u@f96M4sl(M6*L`30&J_KMB-vSYx-W3L7N~Idr3_ih><^i|c|g z`5mHd|1Ooq3aG=`I#PQZt<>8U|4ol$XWMZk6_5UX9L?^?F6E2Y+1GB~X{>@w(BZKT zB~T0dogl@{J?xIz8Q)W0zsilwVY<^qW{Y8BblS|z)*@<{=!BOR8IWsgNj zqGKE*oeX97{NF$LSDyN8HrI==H;bHBE`Xu`Zss(Q=d|l;7F3^?k7g7yucd&1Hvcw- zn%bV_$~lDc9+UI30%XlSB%|Z;Bs^$MtV^-W_rny9KCJn%`tUw59es8d+`hITZE^kG z$Qp(pH9eD?x%*DPoC!!n>oCJ602wUocp7Vf41Y+!u+Q2K#LrB1$>vTJrvLk<8o7i(0D$H8>Mi4u9T- zC7|wPx+Ip_SrhBo=*>9r^ypfX#q-aX(vw{JM$J3b8kb6=gU`-c5<*S~co%HKF<;@c z+NeV;X&0KYRv#g-k8BkVjl$-QjROy#Ho#nO#lumv0|R9f>YA;7PTBCgi9DC9WhJd? zNno)I*B><96TZ_2#)J*OZtu9MG7#EJJE!fdBrP}= z_abZJVRWAHbr29>fr?455;v^@i7WLCiT-@JRx|+*KzwC)Igr3T+wG!*he_SY5?*WM zxnNZ(N4li5Bk&`B1AeWYIW>glV2WE^%J<)prGR0N?dx=|v_4MvNDA%F5GQIFnva(W zj~A4aFjrxQuK4sSnEd9feS^5A#J_qgpM`SoqM>GIJO;TJWs5(1LgW#h;k+NB`=%g1 zCY01nhgw7yPxe8$J;5sIok=vAM}?O-0|qaSc}yn&B@TJ&v8-!i;vI^6qc=j1kjY3Z z>IsA7fkdNpbDhTa?~r}gkc_}DT8y(G(m1!xz_63N!_=3;xI;Ga@9xO|s+LW+OW!Ez zhn&KaE=JWnUJ3jYrPh|%iGX7*u17;7xmr3?@bN>nTWp}i*fLqv(8l%%UpFFCfy}ui zmq_il7hlM5Ar1yBQ@U{akLqxpqoNW=t65W-NQWef$G0hG$g{3g8HGZ3do>ziY8vg= zHz0JI_Q(ishx<8+G$@e|9G<+eOn70-U(X8bp5m0D^xB}p^8wPut4JB_5c9SC6!r{G zU`_@pU2Xmc<~w12+FDNvSQc9q1_XbTs&!7{4!3zww}T?Y8A+D{GD@Pw5BiauXXR#A zmQNu>Sc)dbq{)D|RS4+~hq9Mp5kAmAHzEq-Ug^lsf{l222I4z&(1t`ImZ_s4$z)q^ zMQ;_F(*yT7Gtcnq?Z(m?dKVrvpTrX%;NSz?+>#Iup1aEEuqVj7k*>x_|};u-pNFzB?-b6p;}nC@{Hb(&Js&G+$2j?CwuZvuAyf4`fcpAGxIn9K4 z5!(EW=DI~6w=gl&0LBpk${skhVVz;jXV8ldi+$Wj4=rjxO7;zxF(aeU82!o!7rOAB1lr z-o-s+#VmVE>{X(Y07fM3W0Far07zo>bgfVz`H z2v3;tnR=IuM@eJy&`e@P{BawNH^IZB03pUg4*dd)r0y3ck28(8W;5{PMh()UmyRrG zy!|c%_6KkU8=q$qD-LSbI|$NKng zfB!l%EKEeu7a_!^cxa8CphfJZDsp0fU~yL%DRE+RPqzU%1ju)JN2zLjAjiksN85`& zW3HPa37mpfp#3oOsYM@{4ZfA4W$3;}!kn>%$wy4W%uabyYu)0@701EiO%?tD48cmU zx)vU@QtH+0a&PSu1}7k085>UuVsBQJYKoPVyKPQV?K3%f_wv>$d}fwB#Sf&HGQ_!sOFI0|dC9GjzQ|?khk3pPC7D zb!~S`>=I-1(0@v3ba+FySDLagd9>jn)Jm7GEwlbjcGcNk9uPd1dKO3enDH>1J(_kj z?ox`M7ks?cqpJs9dMyz}=2Zb6;Of#X3SiXgj+cim-4nJSNy>X95SJehtq(j98DbfG zj?-Z6hmRV(cVI>rlj9qK>tWo|@wUI7cZ7!z*z?E@+V`2#mjhY(){G>kx_A~a2`VXc zlVPIkSR7K=L?}Z#E92P8ZoFjnPt|;VkLjEMoV&DQltq2wGo>D+Bd57wr8(tCaAO0q zMfqjOSh({NKC;V&$q~OzO@TDV#iwjNIq=%w7lx+%ykC9_V}A@=%)53w*eJ8(vOK@- z&}Ciq>{*!~HdkREO5ab4o^y?kP~kPXH3Xi=S`=^0jkoi6gP5qK;9t|hgnC<)5%1#f z9Q0W4UU4`dA0ATKw4ID{Cur4RGPKPh@>3);;SZrWA}(Rf_9vpdKm1;UPu63%_6AT3 zo`Ww;s)?t`5Y4rXF;kSPU0BeVtdWIR2z69o$09&X%M)r;4An9+>fGz_!LK>z6dmMI zcd|hGL-2cFo;O-~*rZom+*_2$+fD&F1{nIqA?HHa z^7ANbE|JkmAx8qmNp;DxHDB3#UQdHyV=Ah)rfS0de2`9w7a*n?jk>FmHr5;fuPiQR z%l0vSdZRpPKM^`UsS&K18FQ4I&n^GL(0?bl-Y^WYcGm8ITb1(S7kgR=lfGJkJY0UT zF0HpWl{F}$W|JA_K_0#aoxW6dl<&jbKq<6!mnw87 zWH@wOg81X&cYZ~tb2}+2ABkhiHXWN1w>?HAeLa;%+HtX zXUUnJRpW&z0fC~-EIQUlhTRz^C^vzX_G}ps=Yc${FAkm;1s6dNLtg~lN6hE??NNE# z4?WwFJz6TH5VT`Hxp7;-u$iHSr47o8>>E&T4Lk6OzS|`FpN>C^SSbmcbOTMw@W(~g zJJaH2C&F5z45z~g|p&edh2M4@=Woo;42q~Wiz8QqgyPFy#l~kApqQZXi5IAv-xj7h|lAM3?t^OADqaDFUbE#ngswz z3niLHo5v7%tR+pBYN{YBp35)HbHCu_P2(iTbh+*GQ#CE!6n;|3hY6-suJ{_VLLx$n z8kt2K*EDP$L_taMj{;`rYR0j`LOoqTzl6v_DR`99ae%Wih0GOLqy_p(9vMU@OA}&uC%59yOpg9d&y-GW;GzdIY662KaT53*WbP@3zHDK z;dth5V<%zBmHUSc`*D`*PW10E$~aV01E(0@ix(5}PP}*q1@v9i(HQ2{3x)gJhil2t zGOeM#SB_DP>;`-XcG|n9)xQs!LtcGNGe}RU9r33<7ZLzxp6<3+Sylh=4%_n+4ye18 zk~=L@sUopA>i1MW?hL`Dy6aY>}=f$7S;D=XYmVbOL4MPQ0lX%~T+O0j(@ms^K zRd5Bk&@JQL(i{F#SRYkh!^O!obL{eN%+6Ug36@k#(W+x}H4vrU zjJj)KJpxKa<(?RuOj0%cC`n!0L|z7|*ano!?H?vLh5wdJQMjNJbh6bnFyqu$Ir>Tt znX_`vIe(R^{-{Bn<-9bhjg7dRld&=OePAjF(JLbuJeJB7VQ5LV;XabkCcS2m`gtn+MuYLye&)uyvAuO!5%UOc>5yGz+bTW{5 zjhvZ%yEqBlBv>yVyB#%$4dzK+?bD;*Zm#1k!~s~0aiG~(-Osd(s}%$0=?rQOs6hrW z54vxYz}piDah9Fp_s^AiS5N0i^KD<|NFy`VY6KVLmixR;ld-~*-8GYod7$Dk;O`BU zjqX~Ys>&SnuCpNSf6Nu%eK&)6c80=Ah`n1V;=c{k3=k6?XckUaJv+Qvp^rq91@KfE zY}GarllOA&Ni`x{`|4kXC;=2pL29q${?qlpfO;W2z#AR4MmLwP{8fm3g=7XzV@%Exp9oO4KxVTZq^S~Y#+Z@Fqxs25^6f2cm z*TP7%UvLQt`X9AX75ybhS*CwFv7o6oemWZJ6dkY?wweP!Nz&JLN!tj|;@83Lg}9ny za&&zfm*((T#j7Zqb2ZPc2if^aM;!`_jC@;uQ8*<)zK8ZZBaXHr%w(v)g$H04p|>_b zYBVvRuSaFSBO9~(%)>G5`6&Y~g9*HGBUh+MI$n8+i`&^Y#P91$bF-@{ei7Sw4K6U8 zh!}(ZwEYqh&Vs71TQ#h4xq&f^Z)^}xN5+K715NenavP7S>|uL(%;IjAX&3R07z-v6 z?Y_*kc~yyX|FbxYY7I|U@`A+UJVJOI$qu1k2asL?>8^JPn85bA8f20>u}NOVY-g_A zslxuH)al$l%5~k0tn*xB{4kd(SEjIQhnQ05;~H*2{2Lk2@=GB+&}byCXI9`4aQTcu z@U=wDw23>-`G~sG>u^qK@qFyxN_*JkY9Y#GIDk3vy*sC}&b(w8BZdyO@hF zb1+V;)YI5>VG|`pFTCSWme^>J89~2|nmae*n&0ham)Qq{;KDyFR`?bk1zl8dulK3@ z87xk#^J;z`Mpl$)$08G`vcIJ-hB-v z46bIu!bEe7Bbww;xhlUiwdOUQWDf1^%tv#AvA|Wtug4c{Ca{75;Hi0;MviGZwx%M_ zx?KTgFVi6R%ysTlWhW)rY}_C%yC>vIP(s4>A_k(WuiT!s*Y=w-;1#WU?lm08>#&TG zzx7b>hoBC|An*FeoiW~E`|euqVL_R1^Lov?zRmeeU8NcdnJC_%^2v$Oz1J=eerKb( zqP&t|8UWz72eGd3ssp_zKyjNfN-ss_GFkxgFR#ubs%@eW0C+vuo`{s^;iSV1NpT%)smNucz$!M{(Y=1;TW!3Gzq#yH&)fUzjqv`dciP4Z*y zOjN1X3D8*^D-r9BI`*FycP7?(nSW{)&MA4tU&fpAVx-s=T(h z{se{>wW1g?Er30WW_-rcr2N=diiT_$0f03*!&z^q)vnfgv+TB=rkY;7@DQT5T?_o# z$6g!=>2%IAB>(`#h$dtX%AY(n2 z-)Z&WvaC0Dr#Ft&RoM^=d(d#lA3!uCp&i_ZN%)Yn9;NU;ewO Sv6q%D()IfPd$RxU{=Wbc`B$6( diff --git a/androidHyperskillApp/src/main/res/layout/view_profile_settings_content.xml b/androidHyperskillApp/src/main/res/layout/view_profile_settings_content.xml index f1a5f4e7f..a0a7e2f1e 100644 --- a/androidHyperskillApp/src/main/res/layout/view_profile_settings_content.xml +++ b/androidHyperskillApp/src/main/res/layout/view_profile_settings_content.xml @@ -30,7 +30,7 @@ android:textAppearance="@style/TextAppearance.AppCompat.Body2" android:textColor="@color/color_primary" /> - + android:textSize="16sp" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toStartOf="@+id/settingsSubscriptionDetails" + app:layout_constraintTop_toTopOf="parent" /> + android:textSize="16sp" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent"/> - + diff --git a/config/detekt/baseline.xml b/config/detekt/baseline.xml index 86ff7e88f..8f59d3543 100644 --- a/config/detekt/baseline.xml +++ b/config/detekt/baseline.xml @@ -299,6 +299,7 @@ UnstableCollections:CommentReactions.kt$List<CommentReaction> UnstableCollections:DebugScreenUI.kt$List<EndpointConfigType> UnstableCollections:LeaderboardList.kt$List<LeaderboardWidgetListItem> + UnstableCollections:PaywallContent.kt$List<PaywallFeature.ViewStateContent.SubscriptionProduct> UnstableCollections:ServerSwitcher.kt$List<EndpointConfigType> UnstableCollections:TopicSearchResultContent.kt$List<Item> UnstableCollections:WelcomeOnboardingChooseProgrammingLanguage.kt$List<WelcomeOnboardingProgrammingLanguage> diff --git a/iosHyperskillApp/Podfile.lock b/iosHyperskillApp/Podfile.lock index 9df6b5743..4c649cba3 100644 --- a/iosHyperskillApp/Podfile.lock +++ b/iosHyperskillApp/Podfile.lock @@ -102,7 +102,8 @@ PODS: - Sentry/Core (8.17.2): - SentryPrivate (= 8.17.2) - SentryPrivate (8.17.2) - - shared (1.0) + - shared (1.0): + - RevenueCat (= 4.41.1) - SkeletonUI (1.0.11) - SnapKit (5.7.1) - STRegex (2.1.1) @@ -241,7 +242,7 @@ SPEC CHECKSUMS: RevenueCat: 1e7be26ae57d83bfd4191c9c4f1a01b3b409b215 Sentry: 64a9f9c3637af913adcf53deced05bbe452d1410 SentryPrivate: 024c6fed507ac39ae98e6d087034160f942920d5 - shared: 210f065b47c10083f8ccc49e665dec6d32c5b2d3 + shared: 347ef463ef2f66af50fc8e59d533b6007bc63518 SkeletonUI: a5514a3877d39f28229c852a567660d0f7542330 SnapKit: d612e99e678a2d3b95bf60b0705ed0a35c03484a STRegex: d49e88d0fe58538d3175fdd989bc1243b9be2a07 diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Systems/PurchaseManager.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Systems/PurchaseManager.swift index d898567e7..3463ce856 100644 --- a/iosHyperskillApp/iosHyperskillApp/Sources/Systems/PurchaseManager.swift +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Systems/PurchaseManager.swift @@ -67,89 +67,75 @@ created: \(created) } func purchase( - productId: String, + storeProduct: StoreProduct, platformPurchaseParams: PlatformPurchaseParams, completionHandler: @escaping (SwiftyResult?, Error?) -> Void ) { #if DEBUG - print("PurchaseManager: purchase \(productId)...") + print("PurchaseManager: purchase \(storeProduct.productIdentifier)...") #endif - getProduct(id: productId) { storeProduct in - guard let storeProduct else { + Purchases.shared.purchase( + product: storeProduct + ) { storeTransaction, customerInfo, error, userCancelled in + if userCancelled { #if DEBUG - print("PurchaseManager: purchase \(productId) failed, no product found") + print("PurchaseManager: purchase \(storeProduct.productIdentifier) cancelled by user") #endif let result = SwiftyResultSuccess( - value: PurchaseResultErrorNoProductFound(productId: productId) + value: PurchaseResultCancelledByUser() ) return completionHandler(result, nil) } - Purchases.shared.purchase( - product: storeProduct - ) { storeTransaction, customerInfo, error, userCancelled in - if userCancelled { - #if DEBUG - print("PurchaseManager: purchase \(productId) cancelled by user") - #endif + if let error { + let purchaseResult = error.asSharedPurchaseResult() - let result = SwiftyResultSuccess( - value: PurchaseResultCancelledByUser() - ) + #if DEBUG + print(""" +PurchaseManager: purchase \(storeProduct.productIdentifier) failed, error: \(error), purchaseResult: \(purchaseResult) +""") + #endif - return completionHandler(result, nil) - } + let result = SwiftyResultSuccess( + value: purchaseResult + ) - if let error { - let purchaseResult = error.asSharedPurchaseResult() + return completionHandler(result, nil) + } - #if DEBUG - print(""" -PurchaseManager: purchase \(productId) failed, error: \(error), purchaseResult: \(purchaseResult) + if let storeTransaction, let customerInfo { + #if DEBUG + print(""" +PurchaseManager: purchase \(storeProduct.productIdentifier) succeeded, storeTransaction: \(storeTransaction), customerInfo: \(customerInfo) """) - #endif + #endif - let result = SwiftyResultSuccess( - value: purchaseResult - ) + let purchaseResult = PurchaseResultSucceed( + orderId: storeTransaction.transactionIdentifier, + productIds: [storeTransaction.productIdentifier] + ) + let result = SwiftyResultSuccess( + value: purchaseResult + ) - return completionHandler(result, nil) - } + completionHandler(result, nil) + } else { + #if DEBUG + print("PurchaseManager: purchase \(storeProduct.productIdentifier) failed, no storeTransaction or customerInfo") + #endif - if let storeTransaction, let customerInfo { - #if DEBUG - print(""" -PurchaseManager: purchase \(productId) succeeded, storeTransaction: \(storeTransaction), customerInfo: \(customerInfo) -""") - #endif - - let purchaseResult = PurchaseResultSucceed( - orderId: storeTransaction.transactionIdentifier, - productIds: [storeTransaction.productIdentifier] - ) - let result = SwiftyResultSuccess( - value: purchaseResult - ) - - completionHandler(result, nil) - } else { - #if DEBUG - print("PurchaseManager: purchase \(productId) failed, no storeTransaction or customerInfo") - #endif - - let purchaseResult = PurchaseResultErrorOtherError( - message: "No storeTransaction or customerInfo found for \(productId) purchase", - underlyingErrorMessage: nil - ) - let result = SwiftyResultSuccess( - value: purchaseResult - ) - - completionHandler(result, nil) - } + let purchaseResult = PurchaseResultErrorOtherError( + message: "No storeTransaction or customerInfo found for \(storeProduct.productIdentifier) purchase", + underlyingErrorMessage: nil + ) + let result = SwiftyResultSuccess( + value: purchaseResult + ) + + completionHandler(result, nil) } } } @@ -189,32 +175,6 @@ PurchaseManager: get management URL succeeded, managementURL: \(String(describin } } - func getFormattedProductPrice( - productId: String, - completionHandler: @escaping (String?, Error?) -> Void - ) { - #if DEBUG - print("PurchaseManager: get formatted product price for \(productId)...") - #endif - - getProduct(id: productId) { storeProduct in - if let storeProduct { - #if DEBUG - print(""" -PurchaseManager: get formatted product price for \(productId) succeeded, \ -localizedPriceString: \(storeProduct.localizedPriceString) -""") - #endif - completionHandler(storeProduct.localizedPriceString, nil) - } else { - #if DEBUG - print("PurchaseManager: get formatted product price for \(productId) failed") - #endif - completionHandler(nil, nil) - } - } - } - func checkTrialOrIntroDiscountEligibility( productId: String, completionHandler: @escaping (KotlinBoolean?, (any Error)?) -> Void @@ -230,15 +190,6 @@ localizedPriceString: \(storeProduct.localizedPriceString) } } } - - private func getProduct( - id: String, - completionHandler: @escaping (StoreProduct?) -> Void - ) { - Purchases.shared.getProducts([id]) { storeProducts in - completionHandler(storeProducts.first) - } - } } // MARK: - RevenueCat.PublicError (shared.PurchaseResult) - diff --git a/shared/build.gradle.kts b/shared/build.gradle.kts index b23594945..de1b2e37c 100644 --- a/shared/build.gradle.kts +++ b/shared/build.gradle.kts @@ -53,6 +53,17 @@ kotlin { // Add export declarations to use moko-resources iOS extensions from Swift side export(libs.mokoResources.main) } + pod("RevenueCat") { + version = "4.41.1" + extraOpts += listOf("-compiler-option", "-fmodules") + } + } + sourceSets { + all { + languageSettings { + optIn("kotlinx.cinterop.ExperimentalForeignApi") + } + } } } diff --git a/shared/shared.podspec b/shared/shared.podspec index d4f1710c7..f940d8e73 100644 --- a/shared/shared.podspec +++ b/shared/shared.podspec @@ -9,7 +9,7 @@ Pod::Spec.new do |spec| spec.vendored_frameworks = 'build/cocoapods/framework/shared.framework' spec.libraries = 'c++' spec.ios.deployment_target = '14.0' - + spec.dependency 'RevenueCat', '4.41.1' if !Dir.exist?('build/cocoapods/framework/shared.framework') || Dir.empty?('build/cocoapods/framework/shared.framework') raise " diff --git a/shared/src/androidMain/kotlin/org/hyperskill/app/paywall/presentation/PaywallViewModel.kt b/shared/src/androidMain/kotlin/org/hyperskill/app/paywall/presentation/PaywallViewModel.kt index 22db1c05e..3e71d6c1a 100644 --- a/shared/src/androidMain/kotlin/org/hyperskill/app/paywall/presentation/PaywallViewModel.kt +++ b/shared/src/androidMain/kotlin/org/hyperskill/app/paywall/presentation/PaywallViewModel.kt @@ -16,6 +16,12 @@ class PaywallViewModel( onNewMessage(Message.Initialize) } + fun onOptionClick(productId: String) { + onNewMessage( + Message.ProductClicked(productId) + ) + } + fun onBuySubscriptionClick(activity: Activity) { onNewMessage( Message.BuySubscriptionClicked( diff --git a/shared/src/androidMain/kotlin/org/hyperskill/app/purchases/domain/AndroidPurchaseManager.kt b/shared/src/androidMain/kotlin/org/hyperskill/app/purchases/domain/AndroidPurchaseManager.kt index d410c6471..00305c080 100644 --- a/shared/src/androidMain/kotlin/org/hyperskill/app/purchases/domain/AndroidPurchaseManager.kt +++ b/shared/src/androidMain/kotlin/org/hyperskill/app/purchases/domain/AndroidPurchaseManager.kt @@ -1,26 +1,26 @@ package org.hyperskill.app.purchases.domain -import android.app.Activity import android.app.Application import com.revenuecat.purchases.LogLevel import com.revenuecat.purchases.PurchaseParams import com.revenuecat.purchases.Purchases import com.revenuecat.purchases.PurchasesConfiguration import com.revenuecat.purchases.PurchasesErrorCode -import com.revenuecat.purchases.PurchasesException import com.revenuecat.purchases.PurchasesTransactionException import com.revenuecat.purchases.awaitCustomerInfo -import com.revenuecat.purchases.awaitGetProducts import com.revenuecat.purchases.awaitLogIn +import com.revenuecat.purchases.awaitOfferings import com.revenuecat.purchases.awaitPurchase -import com.revenuecat.purchases.models.StoreProduct import kotlin.coroutines.resume import kotlin.coroutines.resumeWithException import kotlin.coroutines.suspendCoroutine import org.hyperskill.app.BuildConfig +import org.hyperskill.app.purchases.domain.model.HyperskillStoreProduct import org.hyperskill.app.purchases.domain.model.PlatformPurchaseParams import org.hyperskill.app.purchases.domain.model.PurchaseManager import org.hyperskill.app.purchases.domain.model.PurchaseResult +import org.hyperskill.app.purchases.domain.model.SubscriptionPeriod +import org.hyperskill.app.purchases.domain.model.SubscriptionProduct class AndroidPurchaseManager( private val application: Application, @@ -63,37 +63,22 @@ class AndroidPurchaseManager( } override suspend fun purchase( - productId: String, + storeProduct: HyperskillStoreProduct, platformPurchaseParams: PlatformPurchaseParams ): Result = runCatching { - val product = try { - fetchProduct(productId) ?: return@runCatching PurchaseResult.Error.NoProductFound(productId) - } catch (e: PurchasesException) { - return@runCatching mapProductFetchException(productId, e) - } val activity = platformPurchaseParams.activity - purchase(activity, product) - } - - private fun mapProductFetchException(productId: String, e: PurchasesException): PurchaseResult = - PurchaseResult.Error.ErrorWhileFetchingProduct( - productId = productId, - originMessage = e.message, - underlyingErrorMessage = e.error.underlyingErrorMessage - ) - - private suspend fun purchase(activity: Activity, product: StoreProduct): PurchaseResult = - try { - val purchaseResult = Purchases.sharedInstance.awaitPurchase( - PurchaseParams.Builder(activity, product).build() - ) - PurchaseResult.Succeed( - orderId = purchaseResult.storeTransaction.orderId, - productIds = purchaseResult.storeTransaction.productIds - ) - } catch (e: PurchasesTransactionException) { - mapException(e) + try { + val purchaseResult = Purchases.sharedInstance.awaitPurchase( + PurchaseParams.Builder(activity, storeProduct.revenueCatSubscriptionOption).build() + ) + PurchaseResult.Succeed( + orderId = purchaseResult.storeTransaction.orderId, + productIds = purchaseResult.storeTransaction.productIds + ) + } catch (e: PurchasesTransactionException) { + mapException(e) + } } private fun mapException(e: PurchasesTransactionException): PurchaseResult { @@ -118,15 +103,27 @@ class AndroidPurchaseManager( Purchases.sharedInstance.awaitCustomerInfo().managementURL?.toString() } - override suspend fun getFormattedProductPrice(productId: String): Result = + override suspend fun getSubscriptionProducts(): Result> = kotlin.runCatching { - fetchProduct(productId)?.price?.formatted + val currentOffering = Purchases.sharedInstance.awaitOfferings().current + ?: return@runCatching emptyList() + currentOffering.availablePackages.mapNotNull { + val product = it.product + SubscriptionProduct( + id = product.id, + period = when (product.period?.unit) { + com.revenuecat.purchases.models.Period.Unit.MONTH -> SubscriptionPeriod.MONTH + com.revenuecat.purchases.models.Period.Unit.YEAR -> SubscriptionPeriod.YEAR + else -> return@mapNotNull null + }, + formattedPrice = product.price.formatted, + formattedPricePerMonth = product.formattedPricePerMonth() ?: return@mapNotNull null, + storeProduct = HyperskillStoreProduct( + requireNotNull(product.subscriptionOptions).first() + ) + ) + } } override suspend fun checkTrialEligibility(productId: String): Boolean = false - - private suspend fun fetchProduct(productId: String): StoreProduct? = - Purchases.sharedInstance - .awaitGetProducts(listOf(productId)) - .firstOrNull() } \ No newline at end of file diff --git a/shared/src/androidMain/kotlin/org/hyperskill/app/purchases/domain/model/HyperskillStoreProduct.kt b/shared/src/androidMain/kotlin/org/hyperskill/app/purchases/domain/model/HyperskillStoreProduct.kt new file mode 100644 index 000000000..86a51116f --- /dev/null +++ b/shared/src/androidMain/kotlin/org/hyperskill/app/purchases/domain/model/HyperskillStoreProduct.kt @@ -0,0 +1,7 @@ +package org.hyperskill.app.purchases.domain.model + +import com.revenuecat.purchases.models.SubscriptionOption + +actual class HyperskillStoreProduct( + val revenueCatSubscriptionOption: SubscriptionOption +) \ No newline at end of file diff --git a/shared/src/androidMain/kotlin/org/hyperskill/app/purchases/domain/model/PlatformProductIdentifiers.kt b/shared/src/androidMain/kotlin/org/hyperskill/app/purchases/domain/model/PlatformProductIdentifiers.kt index 6d259999b..3fee27de8 100644 --- a/shared/src/androidMain/kotlin/org/hyperskill/app/purchases/domain/model/PlatformProductIdentifiers.kt +++ b/shared/src/androidMain/kotlin/org/hyperskill/app/purchases/domain/model/PlatformProductIdentifiers.kt @@ -1,5 +1,5 @@ package org.hyperskill.app.purchases.domain.model internal actual object PlatformProductIdentifiers { - actual const val MOBILE_ONLY_SUBSCRIPTION: String = "premium_mobile" + actual const val MOBILE_ONLY_MONTHLY_SUBSCRIPTION: String = "premium_mobile" } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/analytic/domain/model/hyperskill/HyperskillAnalyticTarget.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/analytic/domain/model/hyperskill/HyperskillAnalyticTarget.kt index da52ad1af..87f2f6d9e 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/analytic/domain/model/hyperskill/HyperskillAnalyticTarget.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/analytic/domain/model/hyperskill/HyperskillAnalyticTarget.kt @@ -122,6 +122,7 @@ enum class HyperskillAnalyticTarget(val targetName: String) { ACTIVE_SUBSCRIPTION_DETAILS("active_subscription_details"), SUBSCRIPTION_SUGGESTION_DETAILS("subscription_suggestion_details"), BUY_SUBSCRIPTION("buy_subscription"), + STORE_PRODUCT("store_product"), UNLOCK_UNLIMITED_PROBLEMS("unlock_unlimited_problems"), MANAGE_SUBSCRIPTION("manage_subscription"), RENEW_SUBSCRIPTION("renew_subscription"), diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/domain/analytic/PaywallAnalyticParams.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/domain/analytic/PaywallAnalyticParams.kt index f70201441..14bd6ed87 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/domain/analytic/PaywallAnalyticParams.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/domain/analytic/PaywallAnalyticParams.kt @@ -2,4 +2,5 @@ package org.hyperskill.app.paywall.domain.analytic internal object PaywallAnalyticParams { const val PARAM_TRANSITION_SOURCE: String = "source" + const val STORE_PRODUCT: String = "store_product" } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/domain/analytic/PaywallClickedProductHyperskillAnalyticEvent.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/domain/analytic/PaywallClickedProductHyperskillAnalyticEvent.kt new file mode 100644 index 000000000..cbfaeb93e --- /dev/null +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/domain/analytic/PaywallClickedProductHyperskillAnalyticEvent.kt @@ -0,0 +1,42 @@ +package org.hyperskill.app.paywall.domain.analytic + +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticAction +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticEvent +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticPart +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticRoute +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticTarget +import org.hyperskill.app.paywall.domain.model.PaywallTransitionSource + +/** + * Represents a click analytic event of the store product. + * + * JSON payload: + * ``` + * { + * "route": "/paywall", + * "action": "click", + * "part": "main", + * "target": "store_product", + * "context": + * { + * "source": "login", + * "store_product": "premium_mobile:premium-mobile-monthly" + * } + * } + * ``` + * + * @see HyperskillAnalyticEvent + */ +class PaywallClickedProductHyperskillAnalyticEvent( + paywallTransitionSource: PaywallTransitionSource, + productId: String +) : HyperskillAnalyticEvent( + route = HyperskillAnalyticRoute.Paywall, + action = HyperskillAnalyticAction.CLICK, + part = HyperskillAnalyticPart.MAIN, + target = HyperskillAnalyticTarget.STORE_PRODUCT, + context = mapOf( + PaywallAnalyticParams.PARAM_TRANSITION_SOURCE to paywallTransitionSource.analyticName, + PaywallAnalyticParams.STORE_PRODUCT to productId + ) +) \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/injection/PaywallComponentImpl.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/injection/PaywallComponentImpl.kt index eb217f357..f3ee7c9ab 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/injection/PaywallComponentImpl.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/injection/PaywallComponentImpl.kt @@ -20,7 +20,6 @@ internal class PaywallComponentImpl( subscriptionsRepository = appGraph.subscriptionDataComponent.subscriptionsRepository, sentryInteractor = appGraph.sentryComponent.sentryInteractor, currentSubscriptionStateRepository = appGraph.stateRepositoriesComponent.currentSubscriptionStateRepository, - platformType = appGraph.commonComponent.platform.platformType, logger = appGraph.loggerComponent.logger, buildVariant = appGraph.commonComponent.buildKonfig.buildVariant ) diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/injection/PaywallFeatureBuilder.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/injection/PaywallFeatureBuilder.kt index 45dee1c6f..5d236a16b 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/injection/PaywallFeatureBuilder.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/injection/PaywallFeatureBuilder.kt @@ -4,7 +4,6 @@ import co.touchlab.kermit.Logger import org.hyperskill.app.analytic.domain.interactor.AnalyticInteractor import org.hyperskill.app.analytic.presentation.wrapWithBatchAnalyticLogger import org.hyperskill.app.core.domain.BuildVariant -import org.hyperskill.app.core.domain.platform.PlatformType import org.hyperskill.app.core.presentation.ActionDispatcherOptions import org.hyperskill.app.core.presentation.transformState import org.hyperskill.app.core.view.mapper.ResourceProvider @@ -35,7 +34,6 @@ internal object PaywallFeatureBuilder { resourceProvider: ResourceProvider, subscriptionsRepository: SubscriptionsRepository, currentSubscriptionStateRepository: CurrentSubscriptionStateRepository, - platformType: PlatformType, sentryInteractor: SentryInteractor, logger: Logger, buildVariant: BuildVariant @@ -55,7 +53,7 @@ internal object PaywallFeatureBuilder { logger = logger.withTag(LOG_TAG) ) - val viewStateMapper = PaywallViewStateMapper(resourceProvider, platformType) + val viewStateMapper = PaywallViewStateMapper(resourceProvider) return ReduxFeature( initialState = PaywallFeature.State.Idle, diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/presentation/PaywallActionDispatcher.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/presentation/PaywallActionDispatcher.kt index 7ada64ec0..b7c86f9d2 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/presentation/PaywallActionDispatcher.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/presentation/PaywallActionDispatcher.kt @@ -29,8 +29,8 @@ internal class PaywallActionDispatcher( when (action) { is InternalAction.FetchMobileOnlyPrice -> handleFetchMobileOnlyPrice(::onNewMessage) - is InternalAction.StartMobileOnlySubscriptionPurchase -> - handleStartMobileOnlySubscriptionPurchase(action, ::onNewMessage) + is InternalAction.StartSubscriptionProductPurchase -> + handleStartSubscriptionProductPurchase(action, ::onNewMessage) is InternalAction.SyncSubscription -> handleSyncSubscription(::onNewMessage) is InternalAction.LogWrongSubscriptionTypeAfterSync -> @@ -46,35 +46,28 @@ internal class PaywallActionDispatcher( transaction = HyperskillSentryTransactionBuilder.buildPaywallFetchSubscriptionPrice(), onError = { e -> logger.e(e) { "Failed to load subscription price" } - InternalMessage.FetchMobileOnlyPriceError + InternalMessage.FetchSubscriptionProductsError } ) { coroutineScope { - val priceDeferred = async { - purchaseInteractor.getFormattedMobileOnlySubscriptionPrice() - } - val trialEligibilityDeferred = async { - purchaseInteractor.checkTrialEligibilityForMobileOnlySubscription() + val subscriptionProductsDeferred = async { + purchaseInteractor.getSubscriptionProducts() } - val price = priceDeferred.await().getOrThrow() - val isTrialEligible = trialEligibilityDeferred.await() + val subscriptionProducts = subscriptionProductsDeferred.await().getOrThrow() - if (price != null) { - InternalMessage.FetchMobileOnlyPriceSuccess( - formattedPrice = price, - isTrialEligible = isTrialEligible - ) + if (subscriptionProducts.isNotEmpty()) { + InternalMessage.FetchSubscriptionProductsSuccess(subscriptionProducts) } else { logger.e { "Receive null instead of formatted mobile-only subscription price" } - InternalMessage.FetchMobileOnlyPriceError + InternalMessage.FetchSubscriptionProductsError } } }.let(onNewMessage) } - private suspend fun handleStartMobileOnlySubscriptionPurchase( - action: InternalAction.StartMobileOnlySubscriptionPurchase, + private suspend fun handleStartSubscriptionProductPurchase( + action: InternalAction.StartSubscriptionProductPurchase, onNewMessage: (Message) -> Unit ) { sentryInteractor.withTransaction( @@ -85,7 +78,10 @@ internal class PaywallActionDispatcher( } ) { val purchaseResult = purchaseInteractor - .purchaseMobileOnlySubscription(action.purchaseParams) + .purchaseSubscriptionProduct( + storeProduct = action.storeProduct, + platformPurchaseParams = action.purchaseParams + ) .getOrThrow() if (purchaseResult is PurchaseResult.Error) { @@ -97,7 +93,11 @@ internal class PaywallActionDispatcher( } private fun getPurchaseErrorMessage(error: PurchaseResult.Error): String = - "Subscription purchase failed!\n${error.message}\n${error.underlyingErrorMessage}" + """ + Subscription purchase failed! + error message: ${error.message} + underlying error message: ${error.underlyingErrorMessage} + """.trimIndent() private suspend fun handleSyncSubscription(onNewMessage: (Message) -> Unit) { sentryInteractor.withTransaction( diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/presentation/PaywallFeature.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/presentation/PaywallFeature.kt index bef08a0fc..1d73db48a 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/presentation/PaywallFeature.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/presentation/PaywallFeature.kt @@ -3,8 +3,10 @@ package org.hyperskill.app.paywall.presentation import dev.icerock.moko.resources.StringResource import org.hyperskill.app.SharedResources import org.hyperskill.app.analytic.domain.model.AnalyticEvent +import org.hyperskill.app.purchases.domain.model.HyperskillStoreProduct import org.hyperskill.app.purchases.domain.model.PlatformPurchaseParams import org.hyperskill.app.purchases.domain.model.PurchaseResult +import org.hyperskill.app.purchases.domain.model.SubscriptionProduct import org.hyperskill.app.subscriptions.domain.model.Subscription import org.hyperskill.app.subscriptions.domain.model.SubscriptionType @@ -14,8 +16,8 @@ object PaywallFeature { data object Loading : State data object Error : State data class Content( - val formattedPrice: String, - val isTrialEligible: Boolean, + val subscriptionProducts: List, + val selectedProductId: String, val isPurchaseSyncLoadingShowed: Boolean = false ) : State } @@ -30,12 +32,20 @@ object PaywallFeature { data object Loading : ViewStateContent data object Error : ViewStateContent data class Content( + val subscriptionProducts: List, val buyButtonText: String, - val priceText: String?, - val trialText: String? + val trialText: String? = null ) : ViewStateContent data object SubscriptionSyncLoading : ViewStateContent + + data class SubscriptionProduct( + val productId: String, + val title: String, + val subtitle: String, + val isBestValue: Boolean, + val isSelected: Boolean + ) } sealed interface Message { @@ -45,6 +55,8 @@ object PaywallFeature { data object CloseClicked : Message + data class ProductClicked(val productId: String) : Message + data class BuySubscriptionClicked( val purchaseParams: PlatformPurchaseParams ) : Message @@ -58,10 +70,9 @@ object PaywallFeature { } internal sealed interface InternalMessage : Message { - data object FetchMobileOnlyPriceError : InternalMessage - data class FetchMobileOnlyPriceSuccess( - val formattedPrice: String, - val isTrialEligible: Boolean + data object FetchSubscriptionProductsError : InternalMessage + data class FetchSubscriptionProductsSuccess( + val subscriptionProducts: List ) : InternalMessage data object MobileOnlySubscriptionPurchaseError : InternalMessage @@ -103,7 +114,8 @@ object PaywallFeature { internal sealed interface InternalAction : Action { data object FetchMobileOnlyPrice : InternalAction - data class StartMobileOnlySubscriptionPurchase( + data class StartSubscriptionProductPurchase( + val storeProduct: HyperskillStoreProduct, val purchaseParams: PlatformPurchaseParams ) : InternalAction diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/presentation/PaywallReducer.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/presentation/PaywallReducer.kt index 633f11f70..bccf76740 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/presentation/PaywallReducer.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/presentation/PaywallReducer.kt @@ -4,6 +4,7 @@ import org.hyperskill.app.SharedResources import org.hyperskill.app.core.view.mapper.ResourceProvider import org.hyperskill.app.paywall.domain.analytic.PaywallClickedBuySubscriptionHyperskillAnalyticEvent import org.hyperskill.app.paywall.domain.analytic.PaywallClickedCloseButtonHyperskillAnalyticEvent +import org.hyperskill.app.paywall.domain.analytic.PaywallClickedProductHyperskillAnalyticEvent import org.hyperskill.app.paywall.domain.analytic.PaywallClickedRetryContentLoadingHyperskillAnalyticEvent import org.hyperskill.app.paywall.domain.analytic.PaywallClickedTermsOfServiceAndPrivacyPolicyHyperskillAnalyticEvent import org.hyperskill.app.paywall.domain.analytic.PaywallSubscriptionPurchasedAmplitudeAnalyticEvent @@ -36,12 +37,14 @@ internal class PaywallReducer( ) ) ) - is InternalMessage.FetchMobileOnlyPriceSuccess -> + is InternalMessage.FetchSubscriptionProductsSuccess -> handleFetchMobileOnlyPriceSuccess(message) - InternalMessage.FetchMobileOnlyPriceError -> + InternalMessage.FetchSubscriptionProductsError -> handleFetchMobileOnlyPriceError() Message.CloseClicked -> handleCloseClicked(state) + is Message.ProductClicked -> + handleProductClicked(state, message) is Message.BuySubscriptionClicked -> handleBuySubscriptionClicked(state, message) is InternalMessage.MobileOnlySubscriptionPurchaseSuccess -> @@ -66,11 +69,11 @@ internal class PaywallReducer( State.Loading to setOf(InternalAction.FetchMobileOnlyPrice) + actions private fun handleFetchMobileOnlyPriceSuccess( - message: InternalMessage.FetchMobileOnlyPriceSuccess + message: InternalMessage.FetchSubscriptionProductsSuccess ): ReducerResult = State.Content( - formattedPrice = message.formattedPrice, - isTrialEligible = message.isTrialEligible + subscriptionProducts = message.subscriptionProducts, + selectedProductId = message.subscriptionProducts.first().id ) to emptySet() private fun handleFetchMobileOnlyPriceError(): ReducerResult = @@ -88,18 +91,44 @@ internal class PaywallReducer( getTargetScreenNavigationAction(paywallTransitionSource) ) + private fun handleProductClicked( + state: State, + message: Message.ProductClicked + ): ReducerResult = + if (state is State.Content) { + state.copy( + selectedProductId = message.productId + ) to setOf( + InternalAction.LogAnalyticEvent( + PaywallClickedProductHyperskillAnalyticEvent( + productId = message.productId, + paywallTransitionSource = paywallTransitionSource + ) + ) + ) + } else { + state to emptySet() + } + private fun handleBuySubscriptionClicked( state: State, message: Message.BuySubscriptionClicked ): ReducerResult = - state to setOf( - InternalAction.LogAnalyticEvent( - PaywallClickedBuySubscriptionHyperskillAnalyticEvent( - paywallTransitionSource + if (state is State.Content) { + state to setOf( + InternalAction.LogAnalyticEvent( + PaywallClickedBuySubscriptionHyperskillAnalyticEvent(paywallTransitionSource) + ), + InternalAction.StartSubscriptionProductPurchase( + storeProduct = state.subscriptionProducts.first { + it.id == state.selectedProductId + }.storeProduct, + purchaseParams = message.purchaseParams ) - ), - InternalAction.StartMobileOnlySubscriptionPurchase(message.purchaseParams) - ) + ) + } else { + state to emptySet() + } private fun handleMobileOnlySubscriptionPurchaseSuccess( state: State, diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/view/PaywallViewStateMapper.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/view/PaywallViewStateMapper.kt index 93879904e..2157ee5af 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/view/PaywallViewStateMapper.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/view/PaywallViewStateMapper.kt @@ -1,7 +1,6 @@ package org.hyperskill.app.paywall.view import org.hyperskill.app.SharedResources -import org.hyperskill.app.core.domain.platform.PlatformType import org.hyperskill.app.core.view.mapper.ResourceProvider import org.hyperskill.app.paywall.domain.model.PaywallTransitionSource import org.hyperskill.app.paywall.domain.model.PaywallTransitionSource.APP_BECOMES_ACTIVE @@ -13,10 +12,12 @@ import org.hyperskill.app.paywall.domain.model.PaywallTransitionSource.TOPIC_COM import org.hyperskill.app.paywall.presentation.PaywallFeature.State import org.hyperskill.app.paywall.presentation.PaywallFeature.ViewState import org.hyperskill.app.paywall.presentation.PaywallFeature.ViewStateContent +import org.hyperskill.app.purchases.domain.model.SubscriptionPeriod +import org.hyperskill.app.purchases.domain.model.SubscriptionProduct internal class PaywallViewStateMapper( - private val resourceProvider: ResourceProvider, - private val platformType: PlatformType + private val resourceProvider: ResourceProvider/*, + private val platformType: PlatformType*/ ) { fun map( state: State, @@ -38,44 +39,64 @@ internal class PaywallViewStateMapper( if (state.isPurchaseSyncLoadingShowed) { ViewStateContent.SubscriptionSyncLoading } else { - ViewStateContent.Content( - buyButtonText = getBuyButtonText(state), - priceText = if (platformType == PlatformType.ANDROID) { - resourceProvider.getString( - SharedResources.strings.paywall_android_explicit_subscription_price, - state.formattedPrice - ) - } else { - null - }, - trialText = if (platformType == PlatformType.IOS && state.isTrialEligible) { - resourceProvider.getString( - SharedResources.strings.paywall_ios_mobile_only_trial_description, - state.formattedPrice - ) - } else { - null - } - ) + getContentViewState(state) } } ) - private fun getBuyButtonText(state: State.Content): String = + private fun getContentViewState(state: State.Content): ViewStateContent.Content = + ViewStateContent.Content( + buyButtonText = resourceProvider.getString(SharedResources.strings.paywall_subscription_start_btn), + subscriptionProducts = state.subscriptionProducts.mapIndexed { i, product -> + mapSubscriptionProductToSubscriptionOption( + index = i, + product = product, + isSelected = product.id == state.selectedProductId + ) + }, + trialText = null/*if (platformType == PlatformType.IOS && state.isTrialEligible) { + resourceProvider.getString( + SharedResources.strings.paywall_ios_mobile_only_trial_description, + state.formattedPrice + ) + } else { + null + }*/ + ) + + private fun mapSubscriptionProductToSubscriptionOption( + index: Int, + product: SubscriptionProduct, + isSelected: Boolean + ): ViewStateContent.SubscriptionProduct = + ViewStateContent.SubscriptionProduct( + productId = product.id, + title = when (product.period) { + SubscriptionPeriod.MONTH -> + resourceProvider.getString(SharedResources.strings.paywall_subscription_duration_monthly) + SubscriptionPeriod.YEAR -> + resourceProvider.getString( + SharedResources.strings.paywall_subscription_duration_annual, + product.formattedPrice + ) + }, + subtitle = resourceProvider.getString( + SharedResources.strings.paywall_subscription_month_price, + product.formattedPricePerMonth + ), + isBestValue = index == 0, + isSelected = isSelected + ) + + /*private fun getBuyButtonText(state: State.Content): String = when (platformType) { PlatformType.IOS -> if (state.isTrialEligible) { resourceProvider.getString(SharedResources.strings.paywall_ios_mobile_only_trial_buy_btn) } else { - resourceProvider.getString( - SharedResources.strings.paywall_ios_mobile_only_buy_btn, - state.formattedPrice - ) + resourceProvider.getString(SharedResources.strings.paywall_ios_mobile_only_buy_btn) } PlatformType.ANDROID -> - resourceProvider.getString( - SharedResources.strings.paywall_android_mobile_only_buy_btn, - state.formattedPrice - ) - } + resourceProvider.getString(SharedResources.strings.paywall_subscription_start_btn) + }*/ } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/profile_settings/presentation/ProfileSettingsActionDispatcher.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/profile_settings/presentation/ProfileSettingsActionDispatcher.kt index 6fc77b4d5..b7aee009e 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/profile_settings/presentation/ProfileSettingsActionDispatcher.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/profile_settings/presentation/ProfileSettingsActionDispatcher.kt @@ -118,7 +118,11 @@ internal class ProfileSettingsActionDispatcher( currentSubscriptionStateRepository.getState(forceUpdate = true) } val priceDeferred = async { - purchaseInteractor.getFormattedMobileOnlySubscriptionPrice() + purchaseInteractor + .getSubscriptionProducts() + .map { subscriptionProducts -> + subscriptionProducts.firstOrNull()?.formattedPricePerMonth + } } Message.ProfileSettingsSuccess( profileSettings = profileSettingsInteractor.getProfileSettings(), diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/profile_settings/presentation/ProfileSettingsFeature.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/profile_settings/presentation/ProfileSettingsFeature.kt index e3aaf1d19..033114980 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/profile_settings/presentation/ProfileSettingsFeature.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/profile_settings/presentation/ProfileSettingsFeature.kt @@ -19,7 +19,7 @@ object ProfileSettingsFeature { data class Content( val profileSettings: ProfileSettings, val subscription: Subscription?, - val mobileOnlyFormattedPrice: String?, + val subscriptionFormattedPricePerMonth: String?, val isLoadingMagicLink: Boolean = false ) : State } diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/profile_settings/presentation/ProfileSettingsReducer.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/profile_settings/presentation/ProfileSettingsReducer.kt index a76bd4b55..1c629961d 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/profile_settings/presentation/ProfileSettingsReducer.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/profile_settings/presentation/ProfileSettingsReducer.kt @@ -32,7 +32,7 @@ internal class ProfileSettingsReducer : StateReducer { State.Content( profileSettings = message.profileSettings, subscription = message.subscription, - mobileOnlyFormattedPrice = message.mobileOnlyFormattedPrice + subscriptionFormattedPricePerMonth = message.mobileOnlyFormattedPrice ) to emptySet() is Message.OnSubscriptionChanged -> handleSubscriptionChanged(state, message) diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/profile_settings/view/ProfileSettingsViewStateMapper.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/profile_settings/view/ProfileSettingsViewStateMapper.kt index 87d585fc2..8303e1018 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/profile_settings/view/ProfileSettingsViewStateMapper.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/profile_settings/view/ProfileSettingsViewStateMapper.kt @@ -20,7 +20,7 @@ internal class ProfileSettingsViewStateMapper( ViewState.Content( profileSettings = state.profileSettings, isLoadingMagicLink = state.isLoadingMagicLink, - subscriptionState = if (state.subscription != null && state.mobileOnlyFormattedPrice != null) { + subscriptionState = if (state.subscription != null && state.subscriptionFormattedPricePerMonth != null) { when { state.subscription.type == SubscriptionType.MOBILE_ONLY -> { ViewState.Content.SubscriptionState( @@ -31,7 +31,7 @@ internal class ProfileSettingsViewStateMapper( ViewState.Content.SubscriptionState( resourceProvider.getString( SharedResources.strings.settings_subscription_mobile_only_suggestion, - state.mobileOnlyFormattedPrice + state.subscriptionFormattedPricePerMonth ) ) } diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/purchases/domain/interactor/PurchaseInteractor.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/purchases/domain/interactor/PurchaseInteractor.kt index 35ff38bee..4dad641fe 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/purchases/domain/interactor/PurchaseInteractor.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/purchases/domain/interactor/PurchaseInteractor.kt @@ -2,10 +2,12 @@ package org.hyperskill.app.purchases.domain.interactor import org.hyperskill.app.analytic.domain.interactor.AnalyticInteractor import org.hyperskill.app.analytic.domain.model.AnalyticKeys +import org.hyperskill.app.purchases.domain.model.HyperskillStoreProduct import org.hyperskill.app.purchases.domain.model.PlatformProductIdentifiers import org.hyperskill.app.purchases.domain.model.PlatformPurchaseParams import org.hyperskill.app.purchases.domain.model.PurchaseManager import org.hyperskill.app.purchases.domain.model.PurchaseResult +import org.hyperskill.app.purchases.domain.model.SubscriptionProduct class PurchaseInteractor( private val purchaseManager: PurchaseManager, @@ -35,17 +37,21 @@ class PurchaseInteractor( suspend fun canMakePayments(): Result = purchaseManager.canMakePayments() - suspend fun purchaseMobileOnlySubscription( + suspend fun purchaseSubscriptionProduct( + storeProduct: HyperskillStoreProduct, platformPurchaseParams: PlatformPurchaseParams ): Result = - purchaseManager.purchase(PlatformProductIdentifiers.MOBILE_ONLY_SUBSCRIPTION, platformPurchaseParams) + purchaseManager.purchase( + storeProduct = storeProduct, + platformPurchaseParams = platformPurchaseParams + ) - suspend fun getManagementUrl(): Result = - purchaseManager.getManagementUrl() - - suspend fun getFormattedMobileOnlySubscriptionPrice(): Result = - purchaseManager.getFormattedProductPrice(PlatformProductIdentifiers.MOBILE_ONLY_SUBSCRIPTION) + suspend fun getSubscriptionProducts(): Result> = + purchaseManager.getSubscriptionProducts() suspend fun checkTrialEligibilityForMobileOnlySubscription(): Boolean = - purchaseManager.checkTrialEligibility(PlatformProductIdentifiers.MOBILE_ONLY_SUBSCRIPTION) + purchaseManager.checkTrialEligibility(PlatformProductIdentifiers.MOBILE_ONLY_MONTHLY_SUBSCRIPTION) + + suspend fun getManagementUrl(): Result = + purchaseManager.getManagementUrl() } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/purchases/domain/model/HyperskillStoreProduct.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/purchases/domain/model/HyperskillStoreProduct.kt new file mode 100644 index 000000000..de713fbfa --- /dev/null +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/purchases/domain/model/HyperskillStoreProduct.kt @@ -0,0 +1,3 @@ +package org.hyperskill.app.purchases.domain.model + +expect class HyperskillStoreProduct \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/purchases/domain/model/PlatformProductIdentifiers.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/purchases/domain/model/PlatformProductIdentifiers.kt index 215546b41..94fb6e201 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/purchases/domain/model/PlatformProductIdentifiers.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/purchases/domain/model/PlatformProductIdentifiers.kt @@ -1,5 +1,5 @@ package org.hyperskill.app.purchases.domain.model internal expect object PlatformProductIdentifiers { - val MOBILE_ONLY_SUBSCRIPTION: String + val MOBILE_ONLY_MONTHLY_SUBSCRIPTION: String } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/purchases/domain/model/PurchaseManager.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/purchases/domain/model/PurchaseManager.kt index a191214d3..96ae6fbd7 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/purchases/domain/model/PurchaseManager.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/purchases/domain/model/PurchaseManager.kt @@ -24,16 +24,13 @@ interface PurchaseManager { * Makes purchase of the product with [productId]. */ suspend fun purchase( - productId: String, + storeProduct: HyperskillStoreProduct, platformPurchaseParams: PlatformPurchaseParams ): Result suspend fun getManagementUrl(): Result - /** - * Returns formatted product price with currency by [productId] - */ - suspend fun getFormattedProductPrice(productId: String): Result + suspend fun getSubscriptionProducts(): Result> /** * Checks if user is eligible for trial for the product with [productId] diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/purchases/domain/model/SubscriptionPeriod.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/purchases/domain/model/SubscriptionPeriod.kt new file mode 100644 index 000000000..e0b6da05d --- /dev/null +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/purchases/domain/model/SubscriptionPeriod.kt @@ -0,0 +1,6 @@ +package org.hyperskill.app.purchases.domain.model + +enum class SubscriptionPeriod { + MONTH, + YEAR +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/purchases/domain/model/SubscriptionProduct.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/purchases/domain/model/SubscriptionProduct.kt new file mode 100644 index 000000000..14d72a1bb --- /dev/null +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/purchases/domain/model/SubscriptionProduct.kt @@ -0,0 +1,9 @@ +package org.hyperskill.app.purchases.domain.model + +data class SubscriptionProduct( + val id: String, + val period: SubscriptionPeriod, + val formattedPrice: String, + val formattedPricePerMonth: String, + val storeProduct: HyperskillStoreProduct +) \ No newline at end of file diff --git a/shared/src/commonMain/moko-resources/base/strings.xml b/shared/src/commonMain/moko-resources/base/strings.xml index b5c9718f8..e6868da18 100644 --- a/shared/src/commonMain/moko-resources/base/strings.xml +++ b/shared/src/commonMain/moko-resources/base/strings.xml @@ -337,7 +337,7 @@ https://apps.apple.com/app/id1637230833?action=write-review Subscription Mobile only - Try Mobile only plan for %s + Try Mobile only plan for %s / month Details Rate us on the Play Store https://play.google.com/store/apps/details?id=org.hyperskill.app.android @@ -695,7 +695,7 @@ No in-app purchases or ads - Unlock the full\nlearning experience + Get the full experience Subscribe for %s / month Start with a 1 week free trial Then %s per month @@ -709,7 +709,11 @@ Hyperskill Terms of Service and Privacy Policy https://hi.hyperskill.org/terms Monthly - %s / month, cancel any time + Monthly + Annual %s + %s / month + Start now + Best value Subscription diff --git a/shared/src/commonTest/kotlin/org/hyperskill/paywall/PaywallTest.kt b/shared/src/commonTest/kotlin/org/hyperskill/paywall/PaywallTest.kt index 622d77283..4d509f13d 100644 --- a/shared/src/commonTest/kotlin/org/hyperskill/paywall/PaywallTest.kt +++ b/shared/src/commonTest/kotlin/org/hyperskill/paywall/PaywallTest.kt @@ -22,8 +22,8 @@ class PaywallTest { fun `Success subscription purchase should log analytic event`() { val (_, actions) = reducer.reduce( PaywallFeature.State.Content( - formattedPrice = "", - isTrialEligible = false, + subscriptionProducts = emptyList(), + selectedProductId = "", isPurchaseSyncLoadingShowed = false ), InternalMessage.MobileOnlySubscriptionPurchaseSuccess( diff --git a/shared/src/iosMain/kotlin/org/hyperskill/app/purchases/domain/manager/IosPurchaseManager.kt b/shared/src/iosMain/kotlin/org/hyperskill/app/purchases/domain/manager/IosPurchaseManager.kt index cdd7386bd..cccd77584 100644 --- a/shared/src/iosMain/kotlin/org/hyperskill/app/purchases/domain/manager/IosPurchaseManager.kt +++ b/shared/src/iosMain/kotlin/org/hyperskill/app/purchases/domain/manager/IosPurchaseManager.kt @@ -1,5 +1,6 @@ package org.hyperskill.app.purchases.domain.manager +import cocoapods.RevenueCat.RCStoreProduct import org.hyperskill.app.core.domain.model.SwiftyResult import org.hyperskill.app.purchases.domain.model.PlatformPurchaseParams import org.hyperskill.app.purchases.domain.model.PurchaseResult @@ -12,13 +13,11 @@ interface IosPurchaseManager { suspend fun login(userId: Long): SwiftyResult suspend fun purchase( - productId: String, + storeProduct: RCStoreProduct, platformPurchaseParams: PlatformPurchaseParams ): SwiftyResult suspend fun getManagementUrl(): SwiftyResult - suspend fun getFormattedProductPrice(productId: String): String? - suspend fun checkTrialOrIntroDiscountEligibility(productId: String): Boolean } \ No newline at end of file diff --git a/shared/src/iosMain/kotlin/org/hyperskill/app/purchases/domain/manager/IosPurchaseManagerImpl.kt b/shared/src/iosMain/kotlin/org/hyperskill/app/purchases/domain/manager/IosPurchaseManagerImpl.kt index 9f3af34de..97d3af839 100644 --- a/shared/src/iosMain/kotlin/org/hyperskill/app/purchases/domain/manager/IosPurchaseManagerImpl.kt +++ b/shared/src/iosMain/kotlin/org/hyperskill/app/purchases/domain/manager/IosPurchaseManagerImpl.kt @@ -1,9 +1,19 @@ package org.hyperskill.app.purchases.domain.manager +import cocoapods.RevenueCat.RCOfferings +import cocoapods.RevenueCat.RCPackage +import cocoapods.RevenueCat.RCPurchases +import cocoapods.RevenueCat.localizedPricePerMonth +import kotlin.coroutines.resume +import kotlin.coroutines.resumeWithException +import kotlin.coroutines.suspendCoroutine import org.hyperskill.app.core.domain.model.toKotlinResult +import org.hyperskill.app.purchases.domain.model.HyperskillStoreProduct import org.hyperskill.app.purchases.domain.model.PlatformPurchaseParams import org.hyperskill.app.purchases.domain.model.PurchaseManager import org.hyperskill.app.purchases.domain.model.PurchaseResult +import org.hyperskill.app.purchases.domain.model.SubscriptionPeriod +import org.hyperskill.app.purchases.domain.model.SubscriptionProduct internal class IosPurchaseManagerImpl( private val purchases: IosPurchaseManager @@ -24,11 +34,11 @@ internal class IosPurchaseManagerImpl( Result.success(true) override suspend fun purchase( - productId: String, + storeProduct: HyperskillStoreProduct, platformPurchaseParams: PlatformPurchaseParams ): Result = purchases - .purchase(productId, platformPurchaseParams) + .purchase(storeProduct.rcStoreProduct, platformPurchaseParams) .toKotlinResult() override suspend fun getManagementUrl(): Result = @@ -37,9 +47,49 @@ internal class IosPurchaseManagerImpl( .toKotlinResult() .map { if (it?.isEmpty() == true) null else it } - override suspend fun getFormattedProductPrice(productId: String): Result = - Result.success(purchases.getFormattedProductPrice(productId)) + override suspend fun getSubscriptionProducts(): Result> = + kotlin.runCatching { + suspendCoroutine { continuation -> + RCPurchases.sharedPurchases().getOfferingsWithCompletion { rcOfferings, nsError -> + when { + nsError != null -> { + continuation.resumeWithException(FetchOfferingsException(nsError.description)) + } + rcOfferings == null -> { + continuation.resumeWithException(FetchOfferingsException("Received rcOfferings is null")) + } + else -> { + continuation.resume(mapOfferingsToSubscriptionProducts(rcOfferings)) + } + } + } + } + } + + @Suppress("VariableNaming") + private fun mapOfferingsToSubscriptionProducts(rcOfferings: RCOfferings): List { + val currentOffering = rcOfferings.current() ?: return emptyList() + return currentOffering + .availablePackages() + .mapNotNull { + val _package = it as? RCPackage ?: return@mapNotNull null + val rcStoreProduct = _package.storeProduct() + SubscriptionProduct( + id = rcStoreProduct.productIdentifier(), + period = when (rcStoreProduct.subscriptionPeriod()?.unit()) { + cocoapods.RevenueCat.RCSubscriptionPeriodUnitMonth -> SubscriptionPeriod.MONTH + cocoapods.RevenueCat.RCSubscriptionPeriodUnitYear -> SubscriptionPeriod.YEAR + else -> return@mapNotNull null + }, + formattedPrice = rcStoreProduct.localizedPriceString(), + formattedPricePerMonth = rcStoreProduct.localizedPricePerMonth() ?: return@mapNotNull null, + storeProduct = HyperskillStoreProduct(rcStoreProduct) + ) + } + } override suspend fun checkTrialEligibility(productId: String): Boolean = purchases.checkTrialOrIntroDiscountEligibility(productId) -} \ No newline at end of file +} + +class FetchOfferingsException(override val message: String?) : Exception() \ No newline at end of file diff --git a/shared/src/iosMain/kotlin/org/hyperskill/app/purchases/domain/model/HyperskillStoreProduct.kt b/shared/src/iosMain/kotlin/org/hyperskill/app/purchases/domain/model/HyperskillStoreProduct.kt new file mode 100644 index 000000000..230cc42a8 --- /dev/null +++ b/shared/src/iosMain/kotlin/org/hyperskill/app/purchases/domain/model/HyperskillStoreProduct.kt @@ -0,0 +1,5 @@ +package org.hyperskill.app.purchases.domain.model + +import cocoapods.RevenueCat.RCStoreProduct + +actual class HyperskillStoreProduct(val rcStoreProduct: RCStoreProduct) \ No newline at end of file diff --git a/shared/src/iosMain/kotlin/org/hyperskill/app/purchases/domain/model/PlatformProductIdentifiers.kt b/shared/src/iosMain/kotlin/org/hyperskill/app/purchases/domain/model/PlatformProductIdentifiers.kt index ae6b43ed1..7e003b46f 100644 --- a/shared/src/iosMain/kotlin/org/hyperskill/app/purchases/domain/model/PlatformProductIdentifiers.kt +++ b/shared/src/iosMain/kotlin/org/hyperskill/app/purchases/domain/model/PlatformProductIdentifiers.kt @@ -1,5 +1,5 @@ package org.hyperskill.app.purchases.domain.model internal actual object PlatformProductIdentifiers { - actual const val MOBILE_ONLY_SUBSCRIPTION: String = "org.hyperskill.App.MobileOnly.Monthly" + actual const val MOBILE_ONLY_MONTHLY_SUBSCRIPTION: String = "org.hyperskill.App.MobileOnly.Monthly" } \ No newline at end of file From 6cffe063bd980989741917aec25e1d3651b12fcf Mon Sep 17 00:00:00 2001 From: Ivan Magda Date: Tue, 10 Sep 2024 13:55:55 +0900 Subject: [PATCH 06/13] Bump build number --- gradle/app.versions.toml | 2 +- .../NotificationServiceExtension/Info.plist | 2 +- .../iosHyperskillApp.xcodeproj/project.pbxproj | 16 ++++++++-------- iosHyperskillApp/iosHyperskillApp/Info.plist | 2 +- .../iosHyperskillAppTests/Info.plist | 2 +- .../iosHyperskillAppUITests/Info.plist | 2 +- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/gradle/app.versions.toml b/gradle/app.versions.toml index 4b3d4e55f..73f77d8d8 100644 --- a/gradle/app.versions.toml +++ b/gradle/app.versions.toml @@ -3,4 +3,4 @@ minSdk = '24' targetSdk = '34' compileSdk = '34' versionName = '1.71' -versionCode = '543' \ No newline at end of file +versionCode = '544' \ No newline at end of file diff --git a/iosHyperskillApp/NotificationServiceExtension/Info.plist b/iosHyperskillApp/NotificationServiceExtension/Info.plist index 015d5a17d..dbde8c3c0 100644 --- a/iosHyperskillApp/NotificationServiceExtension/Info.plist +++ b/iosHyperskillApp/NotificationServiceExtension/Info.plist @@ -9,7 +9,7 @@ CFBundleIdentifier $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleVersion - 572 + 573 CFBundleShortVersionString 1.71 CFBundlePackageType diff --git a/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj b/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj index 7a95208d1..3f2931b99 100644 --- a/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj +++ b/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj @@ -5693,7 +5693,7 @@ buildSettings = { CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 572; + CURRENT_PROJECT_VERSION = 573; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = UJ4KC2QN7B; GENERATE_INFOPLIST_FILE = NO; @@ -5714,7 +5714,7 @@ buildSettings = { CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 572; + CURRENT_PROJECT_VERSION = 573; DEVELOPMENT_TEAM = UJ4KC2QN7B; GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = iosHyperskillAppUITests/Info.plist; @@ -5735,7 +5735,7 @@ BUNDLE_LOADER = "$(TEST_HOST)"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 572; + CURRENT_PROJECT_VERSION = 573; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = UJ4KC2QN7B; INFOPLIST_FILE = iosHyperskillAppTests/Info.plist; @@ -5756,7 +5756,7 @@ BUNDLE_LOADER = "$(TEST_HOST)"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 572; + CURRENT_PROJECT_VERSION = 573; DEVELOPMENT_TEAM = UJ4KC2QN7B; INFOPLIST_FILE = iosHyperskillAppTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.0; @@ -5777,7 +5777,7 @@ CODE_SIGN_ENTITLEMENTS = NotificationServiceExtension/NotificationServiceExtension.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 572; + CURRENT_PROJECT_VERSION = 573; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = UJ4KC2QN7B; INFOPLIST_FILE = NotificationServiceExtension/Info.plist; @@ -5806,7 +5806,7 @@ CODE_SIGN_ENTITLEMENTS = NotificationServiceExtension/NotificationServiceExtension.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 572; + CURRENT_PROJECT_VERSION = 573; DEVELOPMENT_TEAM = UJ4KC2QN7B; INFOPLIST_FILE = NotificationServiceExtension/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.0; @@ -5952,7 +5952,7 @@ CODE_SIGN_ENTITLEMENTS = iosHyperskillApp/iosHyperskillApp.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 572; + CURRENT_PROJECT_VERSION = 573; DEVELOPMENT_ASSET_PATHS = "\"iosHyperskillApp/Preview Content\""; DEVELOPMENT_TEAM = UJ4KC2QN7B; ENABLE_PREVIEWS = YES; @@ -5988,7 +5988,7 @@ CODE_SIGN_ENTITLEMENTS = iosHyperskillApp/iosHyperskillApp.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 572; + CURRENT_PROJECT_VERSION = 573; DEVELOPMENT_ASSET_PATHS = "\"iosHyperskillApp/Preview Content\""; DEVELOPMENT_TEAM = UJ4KC2QN7B; ENABLE_PREVIEWS = YES; diff --git a/iosHyperskillApp/iosHyperskillApp/Info.plist b/iosHyperskillApp/iosHyperskillApp/Info.plist index f0c10575f..36c87487c 100644 --- a/iosHyperskillApp/iosHyperskillApp/Info.plist +++ b/iosHyperskillApp/iosHyperskillApp/Info.plist @@ -34,7 +34,7 @@ CFBundleVersion - 572 + 573 FirebaseAppDelegateProxyEnabled FirebaseMessagingAutoInitEnabled diff --git a/iosHyperskillApp/iosHyperskillAppTests/Info.plist b/iosHyperskillApp/iosHyperskillAppTests/Info.plist index 2479359cc..bbc94bacd 100644 --- a/iosHyperskillApp/iosHyperskillAppTests/Info.plist +++ b/iosHyperskillApp/iosHyperskillAppTests/Info.plist @@ -15,6 +15,6 @@ CFBundleShortVersionString 1.71 CFBundleVersion - 572 + 573 diff --git a/iosHyperskillApp/iosHyperskillAppUITests/Info.plist b/iosHyperskillApp/iosHyperskillAppUITests/Info.plist index 0b2cdc419..ff1285ef0 100644 --- a/iosHyperskillApp/iosHyperskillAppUITests/Info.plist +++ b/iosHyperskillApp/iosHyperskillAppUITests/Info.plist @@ -15,6 +15,6 @@ CFBundleShortVersionString 1.71 CFBundleVersion - 572 + 573 From 4f701bd85b4d8e77f474ae70c9371875f35b6ac9 Mon Sep 17 00:00:00 2001 From: Ivan Magda Date: Thu, 12 Sep 2024 15:31:30 +0900 Subject: [PATCH 07/13] Shared, iOS: Code blanks if statement (#1175) ^ALTAPPS-1340 --- config/detekt/baseline.xml | 4 + .../project.pbxproj | 94 +- .../Modules/StepQuiz/StepQuizViewModel.swift | 8 + .../StepQuizCodeBlanksOutputProtocol.swift | 1 + .../StepQuizCodeBlanksViewModel.swift | 6 + .../StepQuizCodeBlanksActionButton.swift | 15 + .../StepQuizCodeBlanksActionButtonsView.swift | 63 + ...izCodeBlanksCodeBlockChildBlankView.swift} | 8 +- ...uizCodeBlanksCodeBlockChildTextView.swift} | 10 +- ...StepQuizCodeBlanksCodeBlockChildView.swift | 4 +- .../StepQuizCodeBlanksIfStatementView.swift | 73 + ...epQuizCodeBlanksPrintInstructionView.swift | 5 + .../StepQuizCodeBlanksCodeBlocksView.swift | 89 ++ ...uizCodeBlanksVariableInstructionView.swift | 3 + .../Views/StepQuizCodeBlanksView.swift | 97 +- .../StepQuizCodeBlanksSuggestionsView.swift | 13 +- .../hyperskill/HyperskillAnalyticTarget.kt | 1 + ...reaseIndentLevelHyperskillAnalyticEvent.kt | 41 + .../domain/model/CodeBlock.kt | 56 + .../domain/model/Suggestion.kt | 7 + .../presentation/StepQuizCodeBlanksFeature.kt | 3 + .../presentation/StepQuizCodeBlanksReducer.kt | 184 ++- .../StepQuizCodeBlanksViewStateMapper.kt | 52 +- .../view/model/StepQuizCodeBlanksViewState.kt | 12 + .../StepQuizCodeBlanksReducerTest.kt | 1349 ----------------- .../StepQuizCodeBlanksViewStateMapperTest.kt | 596 -------- .../StepQuizCodeBlanksCreateReplyTest.kt} | 365 +++-- .../StepQuizCodeBlanksFeatureStateStub.kt | 18 + ...eBlanksReducerCodeBlockChildClickedTest.kt | 164 ++ ...izCodeBlanksReducerCodeBlockClickedTest.kt | 129 ++ ...cerDecreaseIndentLevelButtonClickedTest.kt | 97 ++ ...odeBlanksReducerDeleteButtonClickedTest.kt | 470 ++++++ ...CodeBlanksReducerEnterButtonClickedTest.kt | 114 ++ ...StepQuizCodeBlanksReducerInitializeTest.kt | 59 + ...StepQuizCodeBlanksReducerOnboardingTest.kt | 67 + ...CodeBlanksReducerSpaceButtonClickedTest.kt | 198 +++ ...zCodeBlanksReducerSuggestionClickedTest.kt | 263 ++++ .../StepQuizCodeBlanksStateExtensionsTest.kt | 85 ++ ...erIsDecreaseIndentLevelButtonHiddenTest.kt | 104 ++ ...iewStateMapperIsDeleteButtonEnabledTest.kt | 403 +++++ ...sViewStateMapperIsSpaceButtonHiddenTest.kt | 239 +++ ...zCodeBlanksViewStateMapperSequencesTest.kt | 170 +++ ...odeBlanksViewStateMapperSuggestionsTest.kt | 114 ++ .../view/StepQuizCodeBlanksViewStateTest.kt | 39 + 44 files changed, 3675 insertions(+), 2217 deletions(-) rename iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/{ => CodeBlocks/ActionButtons}/StepQuizCodeBlanksActionButton.swift (80%) create mode 100644 iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/ActionButtons/StepQuizCodeBlanksActionButtonsView.swift rename iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/{StepQuizCodeBlanksBlankView.swift => CodeBlocks/Children/StepQuizCodeBlanksCodeBlockChildBlankView.swift} (77%) rename iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/{StepQuizCodeBlanksOptionView.swift => CodeBlocks/Children/StepQuizCodeBlanksCodeBlockChildTextView.swift} (69%) rename iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/{ => CodeBlocks/Children}/StepQuizCodeBlanksCodeBlockChildView.swift (74%) create mode 100644 iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/Conditions/StepQuizCodeBlanksIfStatementView.swift rename iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/{ => CodeBlocks/Print}/StepQuizCodeBlanksPrintInstructionView.swift (94%) create mode 100644 iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/StepQuizCodeBlanksCodeBlocksView.swift rename iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/{ => CodeBlocks/Variable}/StepQuizCodeBlanksVariableInstructionView.swift (96%) rename iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/{ => Suggestions}/StepQuizCodeBlanksSuggestionsView.swift (79%) create mode 100644 shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/domain/analytic/StepQuizCodeBlanksClickedDecreaseIndentLevelHyperskillAnalyticEvent.kt delete mode 100644 shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/StepQuizCodeBlanksReducerTest.kt delete mode 100644 shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/StepQuizCodeBlanksViewStateMapperTest.kt rename shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/{StepQuizCodeBlanksStateExtensionsTest.kt => presentation/StepQuizCodeBlanksCreateReplyTest.kt} (56%) create mode 100644 shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksFeatureStateStub.kt create mode 100644 shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerCodeBlockChildClickedTest.kt create mode 100644 shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerCodeBlockClickedTest.kt create mode 100644 shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerDecreaseIndentLevelButtonClickedTest.kt create mode 100644 shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerDeleteButtonClickedTest.kt create mode 100644 shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerEnterButtonClickedTest.kt create mode 100644 shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerInitializeTest.kt create mode 100644 shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerOnboardingTest.kt create mode 100644 shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerSpaceButtonClickedTest.kt create mode 100644 shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerSuggestionClickedTest.kt create mode 100644 shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksStateExtensionsTest.kt create mode 100644 shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/view/StepQuizCodeBlanksViewStateMapperIsDecreaseIndentLevelButtonHiddenTest.kt create mode 100644 shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/view/StepQuizCodeBlanksViewStateMapperIsDeleteButtonEnabledTest.kt create mode 100644 shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/view/StepQuizCodeBlanksViewStateMapperIsSpaceButtonHiddenTest.kt create mode 100644 shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/view/StepQuizCodeBlanksViewStateMapperSequencesTest.kt create mode 100644 shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/view/StepQuizCodeBlanksViewStateMapperSuggestionsTest.kt create mode 100644 shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/view/StepQuizCodeBlanksViewStateTest.kt diff --git a/config/detekt/baseline.xml b/config/detekt/baseline.xml index 8f59d3543..357dfd7b5 100644 --- a/config/detekt/baseline.xml +++ b/config/detekt/baseline.xml @@ -55,6 +55,7 @@ ImplicitDefaultLocale:TimeIntervalUtil.kt$TimeIntervalUtil$String.format("%02d:00 \u2014 %02d:00", i, i + 1) InvalidPackageDeclaration:HandleActions.kt$package org.hyperskill.app.core.view LambdaParameterInRestartableEffect:OnComposableShownFirstTime.kt$block + LargeClass:StepQuizCodeBlanksReducer.kt$StepQuizCodeBlanksReducer : StateReducer LargeClass:StepQuizReducer.kt$StepQuizReducer : StateReducer LongMethod:AppReducer.kt$AppReducer$private fun handleFetchAppStartupConfigSuccess( state: State, message: Message.FetchAppStartupConfigSuccess ): ReducerResult LongMethod:ChallengeCard.kt$@Composable fun ChallengeCard( viewState: ChallengeWidgetViewState, onNewMessage: (Message) -> Unit ) @@ -67,6 +68,7 @@ LongMethod:ProblemOfDayCardFormDelegate.kt$ProblemOfDayCardFormDelegate$fun render( dateFormatter: SharedDateFormatter, binding: LayoutProblemOfTheDayCardBinding, state: HomeFeature.ProblemOfDayState, areProblemsLimited: Boolean ) LongMethod:ProfileBadges.kt$@Composable fun ProfileBadges( viewState: BadgesViewState, windowWidthSizeClass: WindowWidthSizeClass, onBadgeClick: (BadgeKind) -> Unit, onExpandButtonClick: (ProfileFeature.Message.BadgesVisibilityButton) -> Unit, modifier: Modifier = Modifier ) LongMethod:ProfileSettingsDialogFragment.kt$ProfileSettingsDialogFragment$override fun onViewCreated(view: View, savedInstanceState: Bundle?) + LongMethod:StepQuizCodeBlanksReducer.kt$StepQuizCodeBlanksReducer$private fun createInitialCodeBlocks(step: Step): List<CodeBlock> LongMethod:StepQuizCodeBlanksReducer.kt$StepQuizCodeBlanksReducer$private fun handleDeleteButtonClicked( state: State ): StepQuizCodeBlanksReducerResult? LongMethod:StepQuizCodeBlanksReducer.kt$StepQuizCodeBlanksReducer$private fun handleSpaceButtonClicked( state: State ): StepQuizCodeBlanksReducerResult? LongMethod:StepQuizCodeBlanksReducer.kt$StepQuizCodeBlanksReducer$private fun handleSuggestionClicked( state: State, message: Message.SuggestionClicked ): StepQuizCodeBlanksReducerResult? @@ -204,6 +206,7 @@ ModifierWithoutDefault:BadgeImage.kt$modifier NestedBlockDepth:AuthSocialWebViewClient.kt$AuthSocialWebViewClient$override fun shouldOverrideUrlLoading( view: WebView?, request: WebResourceRequest? ): Boolean NestedBlockDepth:StepQuizCodeBlanksReducer.kt$StepQuizCodeBlanksReducer$private fun setCodeBlockIsActive(codeBlock: CodeBlock, isActive: Boolean): CodeBlock + NestedBlockDepth:StepQuizCodeBlanksViewStateMapper.kt$StepQuizCodeBlanksViewStateMapper$private fun mapContentState( state: StepQuizCodeBlanksFeature.State.Content ): StepQuizCodeBlanksViewState.Content PreviewPublic:BadgeCard.kt$BadgeCardPreview PreviewPublic:BadgeCard.kt$LastLevelBadgeCardPreview PreviewPublic:BadgeGrid.kt$PhoneBadgeGridPreview @@ -248,6 +251,7 @@ ReturnCount:SearchReducer.kt$SearchReducer$private fun handleSearchResultsItemClickedMessage( state: State, message: Message.SearchResultsItemClicked ): SearchReducerResult? ReturnCount:SharedDateFormatter.kt$SharedDateFormatter$fun formatTimeDistance(millis: Long): String ReturnCount:StateExtentions.kt$internal fun ChallengeWidgetFeature.State.Content.setCurrentChallengeIntervalProgressAsCompleted(): Challenge? + ReturnCount:StepQuizCodeBlanksReducer.kt$StepQuizCodeBlanksReducer$private fun handleDecreaseIndentLevelButtonClicked( state: State ): StepQuizCodeBlanksReducerResult? ReturnCount:StepQuizCodeBlanksReducer.kt$StepQuizCodeBlanksReducer$private fun handleDeleteButtonClicked( state: State ): StepQuizCodeBlanksReducerResult? ReturnCount:StepQuizCodeBlanksReducer.kt$StepQuizCodeBlanksReducer$private fun handleSpaceButtonClicked( state: State ): StepQuizCodeBlanksReducerResult? ReturnCount:StepQuizCodeBlanksReducer.kt$StepQuizCodeBlanksReducer$private fun handleSuggestionClicked( state: State, message: Message.SuggestionClicked ): StepQuizCodeBlanksReducerResult? diff --git a/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj b/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj index 79c449b63..3d14111a9 100644 --- a/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj +++ b/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj @@ -149,6 +149,8 @@ 2C2FD622281920B1004E7AF6 /* SentryInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C2FD621281920B1004E7AF6 /* SentryInfo.swift */; }; 2C2FD62428192123004E7AF6 /* BundlePropertyListDeserializer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C2FD62328192123004E7AF6 /* BundlePropertyListDeserializer.swift */; }; 2C306A0E29B4590C0068FF4F /* StageImplementFeatureViewStateKsExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C306A0D29B4590C0068FF4F /* StageImplementFeatureViewStateKsExtensions.swift */; }; + 2C308B1F2C86E29400E85D14 /* StepQuizCodeBlanksCodeBlocksView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C308B1E2C86E29400E85D14 /* StepQuizCodeBlanksCodeBlocksView.swift */; }; + 2C308B212C86E4C200E85D14 /* StepQuizCodeBlanksActionButtonsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C308B202C86E4C200E85D14 /* StepQuizCodeBlanksActionButtonsView.swift */; }; 2C3100532AB194A200C09BFB /* StepQuizParsonsViewDataMapperCodeContentCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C3100522AB194A200C09BFB /* StepQuizParsonsViewDataMapperCodeContentCache.swift */; }; 2C32374D2837F7190062CAF6 /* Images.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C32374C2837F7190062CAF6 /* Images.swift */; }; 2C32375328380C340062CAF6 /* NavigationToolbarInfoItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C32375228380C340062CAF6 /* NavigationToolbarInfoItem.swift */; }; @@ -481,6 +483,7 @@ 2CBD1917291D392400F5FB0B /* UIView+Animations.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CBD1916291D392400F5FB0B /* UIView+Animations.swift */; }; 2CBD1919291D399500F5FB0B /* UIKitBounceButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CBD1918291D399500F5FB0B /* UIKitBounceButton.swift */; }; 2CBD191D291D3BF400F5FB0B /* UIKitRoundedRectangleButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CBD191C291D3BF400F5FB0B /* UIKitRoundedRectangleButton.swift */; }; + 2CBEE4C72C870059004486E8 /* StepQuizCodeBlanksIfStatementView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CBEE4C62C870059004486E8 /* StepQuizCodeBlanksIfStatementView.swift */; }; 2CBFB94A28897DBB0044D1BA /* StepQuizCodeFullScreenView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CBFB94928897DBB0044D1BA /* StepQuizCodeFullScreenView.swift */; }; 2CBFB94C28897DD70044D1BA /* StepQuizCodeFullScreenAssembly.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CBFB94B28897DD70044D1BA /* StepQuizCodeFullScreenAssembly.swift */; }; 2CC4AAF1280DB513002276A0 /* WebOAuthService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CC4AAF0280DB513002276A0 /* WebOAuthService.swift */; }; @@ -521,8 +524,8 @@ 2CD48D8E28586B6F00CFCC4A /* StepQuizViewDataMapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CD48D8D28586B6F00CFCC4A /* StepQuizViewDataMapper.swift */; }; 2CD4EDF92B79D51E0091F0B2 /* View+SafeAreaInset.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CD4EDF82B79D51E0091F0B2 /* View+SafeAreaInset.swift */; }; 2CD4EDFB2B79D74B0091F0B2 /* TransparentBlurView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CD4EDFA2B79D74B0091F0B2 /* TransparentBlurView.swift */; }; - 2CD67CA12C452B2400240C17 /* StepQuizCodeBlanksBlankView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CD67CA02C452B2400240C17 /* StepQuizCodeBlanksBlankView.swift */; }; - 2CD67CA32C452DED00240C17 /* StepQuizCodeBlanksOptionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CD67CA22C452DED00240C17 /* StepQuizCodeBlanksOptionView.swift */; }; + 2CD67CA12C452B2400240C17 /* StepQuizCodeBlanksCodeBlockChildBlankView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CD67CA02C452B2400240C17 /* StepQuizCodeBlanksCodeBlockChildBlankView.swift */; }; + 2CD67CA32C452DED00240C17 /* StepQuizCodeBlanksCodeBlockChildTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CD67CA22C452DED00240C17 /* StepQuizCodeBlanksCodeBlockChildTextView.swift */; }; 2CD7C2D32BFDDC5500DFD5BE /* TopicCompletedModalSpacebotAvatarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CD7C2D22BFDDC5500DFD5BE /* TopicCompletedModalSpacebotAvatarView.swift */; }; 2CDA9838294432C900ADE539 /* SkeletonCircleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CDA9837294432C900ADE539 /* SkeletonCircleView.swift */; }; 2CDA98412944512D00ADE539 /* ProfileSkeletonView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CDA98402944512D00ADE539 /* ProfileSkeletonView.swift */; }; @@ -946,6 +949,8 @@ 2C2FD621281920B1004E7AF6 /* SentryInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SentryInfo.swift; sourceTree = ""; }; 2C2FD62328192123004E7AF6 /* BundlePropertyListDeserializer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BundlePropertyListDeserializer.swift; sourceTree = ""; }; 2C306A0D29B4590C0068FF4F /* StageImplementFeatureViewStateKsExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StageImplementFeatureViewStateKsExtensions.swift; sourceTree = ""; }; + 2C308B1E2C86E29400E85D14 /* StepQuizCodeBlanksCodeBlocksView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StepQuizCodeBlanksCodeBlocksView.swift; sourceTree = ""; }; + 2C308B202C86E4C200E85D14 /* StepQuizCodeBlanksActionButtonsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StepQuizCodeBlanksActionButtonsView.swift; sourceTree = ""; }; 2C3100522AB194A200C09BFB /* StepQuizParsonsViewDataMapperCodeContentCache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StepQuizParsonsViewDataMapperCodeContentCache.swift; sourceTree = ""; }; 2C32374C2837F7190062CAF6 /* Images.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Images.swift; sourceTree = ""; }; 2C32375228380C340062CAF6 /* NavigationToolbarInfoItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationToolbarInfoItem.swift; sourceTree = ""; }; @@ -1283,6 +1288,7 @@ 2CBD1916291D392400F5FB0B /* UIView+Animations.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIView+Animations.swift"; sourceTree = ""; }; 2CBD1918291D399500F5FB0B /* UIKitBounceButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIKitBounceButton.swift; sourceTree = ""; }; 2CBD191C291D3BF400F5FB0B /* UIKitRoundedRectangleButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIKitRoundedRectangleButton.swift; sourceTree = ""; }; + 2CBEE4C62C870059004486E8 /* StepQuizCodeBlanksIfStatementView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StepQuizCodeBlanksIfStatementView.swift; sourceTree = ""; }; 2CBFB94928897DBB0044D1BA /* StepQuizCodeFullScreenView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StepQuizCodeFullScreenView.swift; sourceTree = ""; }; 2CBFB94B28897DD70044D1BA /* StepQuizCodeFullScreenAssembly.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StepQuizCodeFullScreenAssembly.swift; sourceTree = ""; }; 2CC4AAF0280DB513002276A0 /* WebOAuthService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebOAuthService.swift; sourceTree = ""; }; @@ -1323,8 +1329,8 @@ 2CD48D8D28586B6F00CFCC4A /* StepQuizViewDataMapper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StepQuizViewDataMapper.swift; sourceTree = ""; }; 2CD4EDF82B79D51E0091F0B2 /* View+SafeAreaInset.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "View+SafeAreaInset.swift"; sourceTree = ""; }; 2CD4EDFA2B79D74B0091F0B2 /* TransparentBlurView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TransparentBlurView.swift; sourceTree = ""; }; - 2CD67CA02C452B2400240C17 /* StepQuizCodeBlanksBlankView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StepQuizCodeBlanksBlankView.swift; sourceTree = ""; }; - 2CD67CA22C452DED00240C17 /* StepQuizCodeBlanksOptionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StepQuizCodeBlanksOptionView.swift; sourceTree = ""; }; + 2CD67CA02C452B2400240C17 /* StepQuizCodeBlanksCodeBlockChildBlankView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StepQuizCodeBlanksCodeBlockChildBlankView.swift; sourceTree = ""; }; + 2CD67CA22C452DED00240C17 /* StepQuizCodeBlanksCodeBlockChildTextView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StepQuizCodeBlanksCodeBlockChildTextView.swift; sourceTree = ""; }; 2CD7C2D22BFDDC5500DFD5BE /* TopicCompletedModalSpacebotAvatarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TopicCompletedModalSpacebotAvatarView.swift; sourceTree = ""; }; 2CDA9837294432C900ADE539 /* SkeletonCircleView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SkeletonCircleView.swift; sourceTree = ""; }; 2CDA98402944512D00ADE539 /* ProfileSkeletonView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileSkeletonView.swift; sourceTree = ""; }; @@ -2146,6 +2152,52 @@ path = UIKit; sourceTree = ""; }; + 2C308B192C86E08F00E85D14 /* CodeBlocks */ = { + isa = PBXGroup; + children = ( + 2C308B1E2C86E29400E85D14 /* StepQuizCodeBlanksCodeBlocksView.swift */, + 2C308B1B2C86E17300E85D14 /* ActionButtons */, + 2CBEE4C42C86E955004486E8 /* Children */, + 2CBEE4C52C87003A004486E8 /* Conditions */, + 2C308B1D2C86E20E00E85D14 /* Print */, + 2C308B1C2C86E20600E85D14 /* Variable */, + ); + path = CodeBlocks; + sourceTree = ""; + }; + 2C308B1A2C86E09D00E85D14 /* Suggestions */ = { + isa = PBXGroup; + children = ( + 2C677D012C4A3F860019AF03 /* StepQuizCodeBlanksSuggestionsView.swift */, + ); + path = Suggestions; + sourceTree = ""; + }; + 2C308B1B2C86E17300E85D14 /* ActionButtons */ = { + isa = PBXGroup; + children = ( + 2C008A262C5771350041D8BB /* StepQuizCodeBlanksActionButton.swift */, + 2C308B202C86E4C200E85D14 /* StepQuizCodeBlanksActionButtonsView.swift */, + ); + path = ActionButtons; + sourceTree = ""; + }; + 2C308B1C2C86E20600E85D14 /* Variable */ = { + isa = PBXGroup; + children = ( + 2C3B84E72C637AE100FE9D5C /* StepQuizCodeBlanksVariableInstructionView.swift */, + ); + path = Variable; + sourceTree = ""; + }; + 2C308B1D2C86E20E00E85D14 /* Print */ = { + isa = PBXGroup; + children = ( + 2CB3BC552C46171000F5354F /* StepQuizCodeBlanksPrintInstructionView.swift */, + ); + path = Print; + sourceTree = ""; + }; 2C323750283808300062CAF6 /* View */ = { isa = PBXGroup; children = ( @@ -3574,6 +3626,24 @@ path = SwiftUI; sourceTree = ""; }; + 2CBEE4C42C86E955004486E8 /* Children */ = { + isa = PBXGroup; + children = ( + 2CD67CA02C452B2400240C17 /* StepQuizCodeBlanksCodeBlockChildBlankView.swift */, + 2CD67CA22C452DED00240C17 /* StepQuizCodeBlanksCodeBlockChildTextView.swift */, + 2CE7AA1A2C7C4255000ABCD7 /* StepQuizCodeBlanksCodeBlockChildView.swift */, + ); + path = Children; + sourceTree = ""; + }; + 2CBEE4C52C87003A004486E8 /* Conditions */ = { + isa = PBXGroup; + children = ( + 2CBEE4C62C870059004486E8 /* StepQuizCodeBlanksIfStatementView.swift */, + ); + path = Conditions; + sourceTree = ""; + }; 2CBFB94828897D970044D1BA /* StepQuizCodeFullScreen */ = { isa = PBXGroup; children = ( @@ -3741,14 +3811,9 @@ 2CD67C9D2C451B0200240C17 /* Views */ = { isa = PBXGroup; children = ( - 2C008A262C5771350041D8BB /* StepQuizCodeBlanksActionButton.swift */, - 2CD67CA02C452B2400240C17 /* StepQuizCodeBlanksBlankView.swift */, - 2CE7AA1A2C7C4255000ABCD7 /* StepQuizCodeBlanksCodeBlockChildView.swift */, - 2CD67CA22C452DED00240C17 /* StepQuizCodeBlanksOptionView.swift */, - 2CB3BC552C46171000F5354F /* StepQuizCodeBlanksPrintInstructionView.swift */, - 2C677D012C4A3F860019AF03 /* StepQuizCodeBlanksSuggestionsView.swift */, - 2C3B84E72C637AE100FE9D5C /* StepQuizCodeBlanksVariableInstructionView.swift */, 2C84E70B2C47BAB6002EE787 /* StepQuizCodeBlanksView.swift */, + 2C308B192C86E08F00E85D14 /* CodeBlocks */, + 2C308B1A2C86E09D00E85D14 /* Suggestions */, ); path = Views; sourceTree = ""; @@ -5057,6 +5122,7 @@ E9D2D675284E0B30000757AC /* StepQuizMatchingView.swift in Sources */, 2CBC97CD2A555AA20078E445 /* StageImplementProjectCompletedModalView.swift in Sources */, 2CC95C0E2A4EBB970036C73E /* ProjectLevelAvatarView.swift in Sources */, + 2CBEE4C72C870059004486E8 /* StepQuizCodeBlanksIfStatementView.swift in Sources */, 2C93C2D4292E5905004D1861 /* HyperskillSentryBreadcrumb+SentryBreadcrumb.swift in Sources */, 2C306A0E29B4590C0068FF4F /* StageImplementFeatureViewStateKsExtensions.swift in Sources */, 2CA7B892289329C600A789EF /* UIView+FindViewController.swift in Sources */, @@ -5187,7 +5253,7 @@ E9A022AE291D0E3F004317DB /* TopicsRepetitionsCardView.swift in Sources */, 2C5CBBE32948F4B600113007 /* StepQuizSQLViewModel.swift in Sources */, E9F923F628A2633D00C065A7 /* WelcomeView.swift in Sources */, - 2CD67CA32C452DED00240C17 /* StepQuizCodeBlanksOptionView.swift in Sources */, + 2CD67CA32C452DED00240C17 /* StepQuizCodeBlanksCodeBlockChildTextView.swift in Sources */, E9BDB4052A7BE1E30069EF98 /* BadgeImageView.swift in Sources */, 2C7FE8A52B98261600F09615 /* PurchaseManager.swift in Sources */, 2C106D9928C1CE6E004FA584 /* SendEmailFeedbackController.swift in Sources */, @@ -5304,7 +5370,7 @@ 2CB9537E2AF2474100CA64BA /* StepQuizHintsFeatureStateKsExtensions.swift in Sources */, 2C963BCA2812D3550036DD53 /* ProfileSettingsView.swift in Sources */, 2C772E7D28ABB4E500A58758 /* AppleIDSocialAuthSDKProvider.swift in Sources */, - 2CD67CA12C452B2400240C17 /* StepQuizCodeBlanksBlankView.swift in Sources */, + 2CD67CA12C452B2400240C17 /* StepQuizCodeBlanksCodeBlockChildBlankView.swift in Sources */, 2C963BCC2812D9330036DD53 /* ProfileSettingsAssembly.swift in Sources */, E9470C6B29810AB7008ACF9A /* StepQuizOutputProtocol.swift in Sources */, 2C079687285CFFF500EE0487 /* StepQuizSortingAssembly.swift in Sources */, @@ -5358,6 +5424,7 @@ 2CF34F9D2C340DB60054477E /* CommentsSkeletonView.swift in Sources */, E9D537D02A71056100F21828 /* ProfileBadgesGridItemView.swift in Sources */, 2CB0ADEE2B04AD6D0089D557 /* ChallengeWidgetViewModel.swift in Sources */, + 2C308B212C86E4C200E85D14 /* StepQuizCodeBlanksActionButtonsView.swift in Sources */, 2CACBCC22B7A3E4E006D3AB2 /* UsersInterviewWidgetAssembly.swift in Sources */, E9CC6C0729893F2200D8D070 /* StepQuizInputProtocol.swift in Sources */, 2C96743728882A0C0091B6C9 /* StepQuizCodeDetailsView.swift in Sources */, @@ -5485,6 +5552,7 @@ E94BB0482A9DF9DD00736B7C /* StepQuizParsonsView.swift in Sources */, E99CCB0B287E945300898BBF /* HomeViewModel.swift in Sources */, 2C7CB6782ADFD0E8006F78DA /* StepQuizFillBlanksViewDataMapper.swift in Sources */, + 2C308B1F2C86E29400E85D14 /* StepQuizCodeBlanksCodeBlocksView.swift in Sources */, 2C0FA879292FD73400A37636 /* ProfileSettingsFeatureViewStateKsExtensions.swift in Sources */, 2C1061AA285C3C3300EBD614 /* StepQuizChoiceAssembly.swift in Sources */, 2CF72AA828477E0600E1C192 /* StepQuizTableRowView.swift in Sources */, diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuiz/StepQuizViewModel.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuiz/StepQuizViewModel.swift index 908b44506..a862a41c2 100644 --- a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuiz/StepQuizViewModel.swift +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuiz/StepQuizViewModel.swift @@ -285,6 +285,14 @@ extension StepQuizViewModel: StepQuizCodeBlanksOutputProtocol { ) ) } + + func handleStepQuizCodeBlanksDidTapDecreaseIndentLevel() { + onNewMessage( + StepQuizFeatureMessageStepQuizCodeBlanksMessage( + message: StepQuizCodeBlanksFeatureMessageDecreaseIndentLevelButtonClicked() + ) + ) + } } // MARK: - StepQuizViewModel: StepQuizProblemOnboardingModalViewControllerDelegate - diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/StepQuizCodeBlanksOutputProtocol.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/StepQuizCodeBlanksOutputProtocol.swift index 12cd5561a..363b034df 100644 --- a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/StepQuizCodeBlanksOutputProtocol.swift +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/StepQuizCodeBlanksOutputProtocol.swift @@ -11,4 +11,5 @@ protocol StepQuizCodeBlanksOutputProtocol: AnyObject { func handleStepQuizCodeBlanksDidTapDelete() func handleStepQuizCodeBlanksDidTapEnter() func handleStepQuizCodeBlanksDidTapSpace() + func handleStepQuizCodeBlanksDidTapDecreaseIndentLevel() } diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/StepQuizCodeBlanksViewModel.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/StepQuizCodeBlanksViewModel.swift index 860a13547..379445416 100644 --- a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/StepQuizCodeBlanksViewModel.swift +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/StepQuizCodeBlanksViewModel.swift @@ -48,4 +48,10 @@ final class StepQuizCodeBlanksViewModel { impactFeedbackGenerator.triggerFeedback() moduleOutput?.handleStepQuizCodeBlanksDidTapSpace() } + + @MainActor + func doDecreaseIndentLevelAction() { + impactFeedbackGenerator.triggerFeedback() + moduleOutput?.handleStepQuizCodeBlanksDidTapDecreaseIndentLevel() + } } diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/StepQuizCodeBlanksActionButton.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/ActionButtons/StepQuizCodeBlanksActionButton.swift similarity index 80% rename from iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/StepQuizCodeBlanksActionButton.swift rename to iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/ActionButtons/StepQuizCodeBlanksActionButton.swift index 524220ab5..00744ba2e 100644 --- a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/StepQuizCodeBlanksActionButton.swift +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/ActionButtons/StepQuizCodeBlanksActionButton.swift @@ -62,6 +62,19 @@ extension StepQuizCodeBlanksActionButton { action: action ) } + + static func decreaseIndentLevel(action: @escaping () -> Void) -> StepQuizCodeBlanksActionButton { + StepQuizCodeBlanksActionButton( + appearance: .init( + padding: LayoutInsets( + horizontal: LayoutInsets.smallInset, + vertical: 5.5 + ) + ), + imageSystemName: "arrow.left.to.line", + action: action + ) + } } #if DEBUG @@ -71,12 +84,14 @@ extension StepQuizCodeBlanksActionButton { StepQuizCodeBlanksActionButton.delete(action: {}) StepQuizCodeBlanksActionButton.enter(action: {}) StepQuizCodeBlanksActionButton.space(action: {}) + StepQuizCodeBlanksActionButton.decreaseIndentLevel(action: {}) } HStack { StepQuizCodeBlanksActionButton.delete(action: {}) StepQuizCodeBlanksActionButton.enter(action: {}) StepQuizCodeBlanksActionButton.space(action: {}) + StepQuizCodeBlanksActionButton.decreaseIndentLevel(action: {}) } .disabled(true) } diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/ActionButtons/StepQuizCodeBlanksActionButtonsView.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/ActionButtons/StepQuizCodeBlanksActionButtonsView.swift new file mode 100644 index 000000000..f6a041701 --- /dev/null +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/ActionButtons/StepQuizCodeBlanksActionButtonsView.swift @@ -0,0 +1,63 @@ +import SwiftUI + +struct StepQuizCodeBlanksActionButtonsView: View { + let isDeleteButtonEnabled: Bool + let isSpaceButtonHidden: Bool + let isDecreaseIndentLevelButtonHidden: Bool + + let onSpaceTap: () -> Void + let onDeleteTap: () -> Void + let onEnterTap: () -> Void + let onDecreaseIndentLevelTap: () -> Void + + var body: some View { + HStack(spacing: LayoutInsets.defaultInset) { + Spacer() + + if !isDecreaseIndentLevelButtonHidden { + StepQuizCodeBlanksActionButton + .decreaseIndentLevel(action: onDecreaseIndentLevelTap) + } + + if !isSpaceButtonHidden { + StepQuizCodeBlanksActionButton + .space(action: onSpaceTap) + } + + StepQuizCodeBlanksActionButton + .delete(action: onDeleteTap) + .disabled(!isDeleteButtonEnabled) + + StepQuizCodeBlanksActionButton + .enter(action: onEnterTap) + } + .padding(.horizontal) + } +} + +#if DEBUG +#Preview { + VStack { + StepQuizCodeBlanksActionButtonsView( + isDeleteButtonEnabled: false, + isSpaceButtonHidden: false, + isDecreaseIndentLevelButtonHidden: false, + onSpaceTap: {}, + onDeleteTap: {}, + onEnterTap: {}, + onDecreaseIndentLevelTap: {} + ) + + StepQuizCodeBlanksActionButtonsView( + isDeleteButtonEnabled: true, + isSpaceButtonHidden: true, + isDecreaseIndentLevelButtonHidden: true, + onSpaceTap: {}, + onDeleteTap: {}, + onEnterTap: {}, + onDecreaseIndentLevelTap: {} + ) + } + .padding() +} +#endif diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/StepQuizCodeBlanksBlankView.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/Children/StepQuizCodeBlanksCodeBlockChildBlankView.swift similarity index 77% rename from iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/StepQuizCodeBlanksBlankView.swift rename to iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/Children/StepQuizCodeBlanksCodeBlockChildBlankView.swift index e0418f71e..508a77bab 100644 --- a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/StepQuizCodeBlanksBlankView.swift +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/Children/StepQuizCodeBlanksCodeBlockChildBlankView.swift @@ -1,6 +1,6 @@ import SwiftUI -struct StepQuizCodeBlanksBlankView: View { +struct StepQuizCodeBlanksCodeBlockChildBlankView: View { var width: CGFloat = 208 var height: CGFloat = 48 @@ -17,7 +17,7 @@ struct StepQuizCodeBlanksBlankView: View { } } -extension StepQuizCodeBlanksBlankView { +extension StepQuizCodeBlanksCodeBlockChildBlankView { init(style: Style, isActive: Bool) { let size = style.size self.init(width: size.width, height: size.height, isActive: isActive) @@ -41,8 +41,8 @@ extension StepQuizCodeBlanksBlankView { #if DEBUG #Preview { VStack { - StepQuizCodeBlanksBlankView(style: .small, isActive: true) - StepQuizCodeBlanksBlankView(style: .large, isActive: false) + StepQuizCodeBlanksCodeBlockChildBlankView(style: .small, isActive: true) + StepQuizCodeBlanksCodeBlockChildBlankView(style: .large, isActive: false) } } #endif diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/StepQuizCodeBlanksOptionView.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/Children/StepQuizCodeBlanksCodeBlockChildTextView.swift similarity index 69% rename from iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/StepQuizCodeBlanksOptionView.swift rename to iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/Children/StepQuizCodeBlanksCodeBlockChildTextView.swift index 5d011735d..832fd731f 100644 --- a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/StepQuizCodeBlanksOptionView.swift +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/Children/StepQuizCodeBlanksCodeBlockChildTextView.swift @@ -1,6 +1,6 @@ import SwiftUI -extension StepQuizCodeBlanksOptionView { +extension StepQuizCodeBlanksCodeBlockChildTextView { enum Appearance { static let insets = LayoutInsets(horizontal: 12, vertical: LayoutInsets.smallInset) static let minWidth: CGFloat = 48 @@ -9,7 +9,7 @@ extension StepQuizCodeBlanksOptionView { } } -struct StepQuizCodeBlanksOptionView: View { +struct StepQuizCodeBlanksCodeBlockChildTextView: View { let text: String let isActive: Bool @@ -31,9 +31,9 @@ struct StepQuizCodeBlanksOptionView: View { #if DEBUG #Preview { VStack { - StepQuizCodeBlanksOptionView(text: "print", isActive: false) - StepQuizCodeBlanksOptionView(text: "There is a cat on the keyboard, it is true", isActive: true) - StepQuizCodeBlanksOptionView(text: "Typing messages out of the blue", isActive: true) + StepQuizCodeBlanksCodeBlockChildTextView(text: "print", isActive: false) + StepQuizCodeBlanksCodeBlockChildTextView(text: "There is a cat on the keyboard, it is true", isActive: true) + StepQuizCodeBlanksCodeBlockChildTextView(text: "Typing messages out of the blue", isActive: true) } } #endif diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/StepQuizCodeBlanksCodeBlockChildView.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/Children/StepQuizCodeBlanksCodeBlockChildView.swift similarity index 74% rename from iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/StepQuizCodeBlanksCodeBlockChildView.swift rename to iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/Children/StepQuizCodeBlanksCodeBlockChildView.swift index ef8b7d51f..6f45335c4 100644 --- a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/StepQuizCodeBlanksCodeBlockChildView.swift +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/Children/StepQuizCodeBlanksCodeBlockChildView.swift @@ -18,9 +18,9 @@ struct StepQuizCodeBlanksCodeBlockChildView: View { child: StepQuizCodeBlanksViewStateCodeBlockChildItem ) -> some View { if let value = child.value { - StepQuizCodeBlanksOptionView(text: value, isActive: child.isActive) + StepQuizCodeBlanksCodeBlockChildTextView(text: value, isActive: child.isActive) } else { - StepQuizCodeBlanksBlankView(style: .small, isActive: child.isActive) + StepQuizCodeBlanksCodeBlockChildBlankView(style: .small, isActive: child.isActive) } } } diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/Conditions/StepQuizCodeBlanksIfStatementView.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/Conditions/StepQuizCodeBlanksIfStatementView.swift new file mode 100644 index 000000000..3def9b2cc --- /dev/null +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/Conditions/StepQuizCodeBlanksIfStatementView.swift @@ -0,0 +1,73 @@ +import shared +import SwiftUI + +struct StepQuizCodeBlanksIfStatementView: View { + let ifStatementItem: StepQuizCodeBlanksViewStateCodeBlockItemIfStatement + + let onChildTap: (StepQuizCodeBlanksViewStateCodeBlockChildItem) -> Void + + var body: some View { + ScrollView(.horizontal, showsIndicators: false) { + HStack(alignment: .center, spacing: LayoutInsets.smallInset) { + Text("if") + .font(StepQuizCodeBlanksAppearance.blankFont) + .foregroundColor(StepQuizCodeBlanksAppearance.blankTextColor) + + ForEach(ifStatementItem.children, id: \.id) { child in + StepQuizCodeBlanksCodeBlockChildView(child: child, action: onChildTap) + } + + Text(":") + .font(StepQuizCodeBlanksAppearance.blankFont) + .foregroundColor(StepQuizCodeBlanksAppearance.blankTextColor) + } + .padding(.horizontal, LayoutInsets.defaultInset) + .padding(.vertical, LayoutInsets.smallInset) + .background(Color(ColorPalette.violet400Alpha7)) + .cornerRadius(StepQuizCodeBlanksAppearance.cornerRadius) + .padding(.horizontal) + } + .scrollBounceBehaviorBasedOnSize(axes: .horizontal) + } +} + +#if DEBUG +#Preview { + VStack { + StepQuizCodeBlanksIfStatementView( + ifStatementItem: StepQuizCodeBlanksViewStateCodeBlockItemIfStatement( + id: 0, + indentLevel: 0, + children: [ + StepQuizCodeBlanksViewStateCodeBlockChildItem(id: 0, isActive: true, value: nil) + ] + ), + onChildTap: { _ in } + ) + + StepQuizCodeBlanksIfStatementView( + ifStatementItem: StepQuizCodeBlanksViewStateCodeBlockItemIfStatement( + id: 0, + indentLevel: 0, + children: [ + StepQuizCodeBlanksViewStateCodeBlockChildItem(id: 0, isActive: true, value: "x") + ] + ), + onChildTap: { _ in } + ) + + StepQuizCodeBlanksIfStatementView( + ifStatementItem: StepQuizCodeBlanksViewStateCodeBlockItemIfStatement( + id: 0, + indentLevel: 0, + children: [ + StepQuizCodeBlanksViewStateCodeBlockChildItem(id: 0, isActive: false, value: "x"), + StepQuizCodeBlanksViewStateCodeBlockChildItem(id: 1, isActive: true, value: nil) + ] + ), + onChildTap: { _ in } + ) + } + .padding() +} +#endif diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/StepQuizCodeBlanksPrintInstructionView.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/Print/StepQuizCodeBlanksPrintInstructionView.swift similarity index 94% rename from iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/StepQuizCodeBlanksPrintInstructionView.swift rename to iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/Print/StepQuizCodeBlanksPrintInstructionView.swift index ab0cb80e3..c634638d9 100644 --- a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/StepQuizCodeBlanksPrintInstructionView.swift +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/Print/StepQuizCodeBlanksPrintInstructionView.swift @@ -37,6 +37,7 @@ struct StepQuizCodeBlanksPrintInstructionView: View { StepQuizCodeBlanksPrintInstructionView( printItem: StepQuizCodeBlanksViewStateCodeBlockItemPrint( id: 0, + indentLevel: 0, children: [.init(id: 0, isActive: false, value: "")] ), onChildTap: { _ in } @@ -44,6 +45,7 @@ struct StepQuizCodeBlanksPrintInstructionView: View { StepQuizCodeBlanksPrintInstructionView( printItem: StepQuizCodeBlanksViewStateCodeBlockItemPrint( id: 0, + indentLevel: 0, children: [.init(id: 0, isActive: true, value: "")] ), onChildTap: { _ in } @@ -51,6 +53,7 @@ struct StepQuizCodeBlanksPrintInstructionView: View { StepQuizCodeBlanksPrintInstructionView( printItem: StepQuizCodeBlanksViewStateCodeBlockItemPrint( id: 0, + indentLevel: 0, children: [.init(id: 0, isActive: true, value: "There is a cat on the keyboard, it is true")] ), onChildTap: { _ in } @@ -58,6 +61,7 @@ struct StepQuizCodeBlanksPrintInstructionView: View { StepQuizCodeBlanksPrintInstructionView( printItem: StepQuizCodeBlanksViewStateCodeBlockItemPrint( id: 0, + indentLevel: 0, children: [.init(id: 0, isActive: false, value: "There is a cat on the keyboard, it is true")] ), onChildTap: { _ in } @@ -66,6 +70,7 @@ struct StepQuizCodeBlanksPrintInstructionView: View { StepQuizCodeBlanksPrintInstructionView( printItem: StepQuizCodeBlanksViewStateCodeBlockItemPrint( id: 0, + indentLevel: 0, children: [ .init(id: 0, isActive: false, value: "x"), .init(id: 1, isActive: true, value: "") diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/StepQuizCodeBlanksCodeBlocksView.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/StepQuizCodeBlanksCodeBlocksView.swift new file mode 100644 index 000000000..79f8d394f --- /dev/null +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/StepQuizCodeBlanksCodeBlocksView.swift @@ -0,0 +1,89 @@ +import shared +import SwiftUI + +struct StepQuizCodeBlanksCodeBlocksView: View { + let state: StepQuizCodeBlanksViewStateContent + + let onCodeBlockTap: (StepQuizCodeBlanksViewStateCodeBlockItem) -> Void + let onCodeBlockChildTap: ( + StepQuizCodeBlanksViewStateCodeBlockItem, + StepQuizCodeBlanksViewStateCodeBlockChildItem + ) -> Void + + let onSpaceTap: () -> Void + let onDeleteTap: () -> Void + let onEnterTap: () -> Void + let onDecreaseIndentLevelTap: () -> Void + + var body: some View { + VStack(alignment: .leading, spacing: LayoutInsets.smallInset) { + ForEach(state.codeBlocks, id: \.id_) { codeBlock in + HStack(spacing: 0) { + Spacer() + .frame(width: LayoutInsets.defaultInset * CGFloat(codeBlock.indentLevel)) + + buildCodeBlockView( + codeBlock: codeBlock, + onChildTap: { codeBlockChild in + onCodeBlockChildTap(codeBlock, codeBlockChild) + } + ) + .onTapGesture { + onCodeBlockTap(codeBlock) + } + } + } + + if !state.isActionButtonsHidden { + StepQuizCodeBlanksActionButtonsView( + isDeleteButtonEnabled: state.isDeleteButtonEnabled, + isSpaceButtonHidden: state.isSpaceButtonHidden, + isDecreaseIndentLevelButtonHidden: state.isDecreaseIndentLevelButtonHidden, + onSpaceTap: onSpaceTap, + onDeleteTap: onDeleteTap, + onEnterTap: onEnterTap, + onDecreaseIndentLevelTap: onDecreaseIndentLevelTap + ) + } + } + .padding(.vertical, LayoutInsets.defaultInset) + .frame(maxWidth: .infinity, alignment: .leading) + .background(BackgroundView()) + } + + @ViewBuilder + private func buildCodeBlockView( + codeBlock: StepQuizCodeBlanksViewStateCodeBlockItem, + onChildTap: @escaping (StepQuizCodeBlanksViewStateCodeBlockChildItem) -> Void + ) -> some View { + switch StepQuizCodeBlanksViewStateCodeBlockItemKs(codeBlock) { + case .blank(let blankItem): + StepQuizCodeBlanksCodeBlockChildBlankView( + style: .large, + isActive: blankItem.isActive + ) + .padding(.horizontal) + case .print(let printItem): + StepQuizCodeBlanksPrintInstructionView( + printItem: printItem, + onChildTap: onChildTap + ) + case .variable(let variableItem): + StepQuizCodeBlanksVariableInstructionView( + variableItem: variableItem, + onChildTap: onChildTap + ) + case .ifStatement(let ifStatementItem): + StepQuizCodeBlanksIfStatementView( + ifStatementItem: ifStatementItem, + onChildTap: onChildTap + ) + } + } +} + +extension StepQuizCodeBlanksCodeBlocksView: Equatable { + static func == (lhs: StepQuizCodeBlanksCodeBlocksView, rhs: StepQuizCodeBlanksCodeBlocksView) -> Bool { + lhs.state.isEqual(rhs) + } +} diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/StepQuizCodeBlanksVariableInstructionView.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/Variable/StepQuizCodeBlanksVariableInstructionView.swift similarity index 96% rename from iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/StepQuizCodeBlanksVariableInstructionView.swift rename to iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/Variable/StepQuizCodeBlanksVariableInstructionView.swift index c595c99db..7d1217b7f 100644 --- a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/StepQuizCodeBlanksVariableInstructionView.swift +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/Variable/StepQuizCodeBlanksVariableInstructionView.swift @@ -38,6 +38,7 @@ struct StepQuizCodeBlanksVariableInstructionView: View { StepQuizCodeBlanksVariableInstructionView( variableItem: StepQuizCodeBlanksViewStateCodeBlockItemVariable( id: 0, + indentLevel: 0, children: [ StepQuizCodeBlanksViewStateCodeBlockChildItem(id: 0, isActive: true, value: nil), StepQuizCodeBlanksViewStateCodeBlockChildItem(id: 1, isActive: false, value: nil) @@ -49,6 +50,7 @@ struct StepQuizCodeBlanksVariableInstructionView: View { StepQuizCodeBlanksVariableInstructionView( variableItem: StepQuizCodeBlanksViewStateCodeBlockItemVariable( id: 0, + indentLevel: 0, children: [ StepQuizCodeBlanksViewStateCodeBlockChildItem(id: 0, isActive: false, value: "fruit_a"), StepQuizCodeBlanksViewStateCodeBlockChildItem(id: 1, isActive: true, value: nil) @@ -60,6 +62,7 @@ struct StepQuizCodeBlanksVariableInstructionView: View { StepQuizCodeBlanksVariableInstructionView( variableItem: StepQuizCodeBlanksViewStateCodeBlockItemVariable( id: 0, + indentLevel: 0, children: [ StepQuizCodeBlanksViewStateCodeBlockChildItem(id: 0, isActive: false, value: "fruit_a"), StepQuizCodeBlanksViewStateCodeBlockChildItem( diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/StepQuizCodeBlanksView.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/StepQuizCodeBlanksView.swift index 5e3e8ecfd..804758741 100644 --- a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/StepQuizCodeBlanksView.swift +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/StepQuizCodeBlanksView.swift @@ -23,12 +23,16 @@ struct StepQuizCodeBlanksView: View { titleView Divider() - codeBlocksView( - codeBlocks: contentState.codeBlocks, - isDeleteButtonEnabled: contentState.isDeleteButtonEnabled, - isSpaceButtonHidden: contentState.isSpaceButtonHidden, - isActionButtonsHidden: contentState.isActionButtonsHidden + StepQuizCodeBlanksCodeBlocksView( + state: contentState, + onCodeBlockTap: viewModel.doCodeBlockMainAction(_:), + onCodeBlockChildTap: viewModel.doCodeBlockChildMainAction(codeBlock:codeBlockChild:), + onSpaceTap: viewModel.doSpaceAction, + onDeleteTap: viewModel.doDeleteAction, + onEnterTap: viewModel.doEnterAction, + onDecreaseIndentLevelTap: viewModel.doDecreaseIndentLevelAction ) + .equatable() Divider() StepQuizCodeBlanksSuggestionsView( @@ -36,6 +40,7 @@ struct StepQuizCodeBlanksView: View { isAnimationEffectActive: contentState.isSuggestionsHighlightEffectActive, onSuggestionTap: viewModel.doSuggestionMainAction(_:) ) + .equatable() Divider() } .padding(.horizontal, -LayoutInsets.defaultInset) @@ -52,78 +57,6 @@ struct StepQuizCodeBlanksView: View { .frame(maxWidth: .infinity, alignment: .leading) .background(BackgroundView()) } - - @MainActor - private func codeBlocksView( - codeBlocks: [StepQuizCodeBlanksViewStateCodeBlockItem], - isDeleteButtonEnabled: Bool, - isSpaceButtonHidden: Bool, - isActionButtonsHidden: Bool - ) -> some View { - VStack(alignment: .leading, spacing: LayoutInsets.smallInset) { - ForEach(codeBlocks, id: \.id_) { codeBlock in - switch StepQuizCodeBlanksViewStateCodeBlockItemKs(codeBlock) { - case .blank(let blankItem): - StepQuizCodeBlanksBlankView( - style: .large, - isActive: blankItem.isActive - ) - .padding(.horizontal) - .onTapGesture { - viewModel.doCodeBlockMainAction(codeBlock) - } - case .print(let printItem): - StepQuizCodeBlanksPrintInstructionView( - printItem: printItem, - onChildTap: { codeBlockChild in - viewModel.doCodeBlockChildMainAction( - codeBlock: codeBlock, - codeBlockChild: codeBlockChild - ) - } - ) - .onTapGesture { - viewModel.doCodeBlockMainAction(codeBlock) - } - case .variable(let variableItem): - StepQuizCodeBlanksVariableInstructionView( - variableItem: variableItem, - onChildTap: { codeBlockChild in - viewModel.doCodeBlockChildMainAction( - codeBlock: codeBlock, - codeBlockChild: codeBlockChild - ) - } - ) - .onTapGesture { - viewModel.doCodeBlockMainAction(codeBlock) - } - } - } - - if !isActionButtonsHidden { - HStack(spacing: LayoutInsets.defaultInset) { - Spacer() - - if !isSpaceButtonHidden { - StepQuizCodeBlanksActionButton - .space(action: viewModel.doSpaceAction) - } - - StepQuizCodeBlanksActionButton - .delete(action: viewModel.doDeleteAction) - .disabled(!isDeleteButtonEnabled) - - StepQuizCodeBlanksActionButton - .enter(action: viewModel.doEnterAction) - } - .padding(.horizontal) - } - } - .padding(.vertical, LayoutInsets.defaultInset) - .frame(maxWidth: .infinity, alignment: .leading) - .background(BackgroundView()) - } } extension StepQuizCodeBlanksView: Equatable { @@ -138,10 +71,13 @@ extension StepQuizCodeBlanksView: Equatable { StepQuizCodeBlanksView( viewStateKs: .content( StepQuizCodeBlanksViewStateContent( - codeBlocks: [StepQuizCodeBlanksViewStateCodeBlockItemBlank(id: 0, isActive: true)], + codeBlocks: [ + StepQuizCodeBlanksViewStateCodeBlockItemBlank(id: 0, indentLevel: 0, isActive: true) + ], suggestions: [Suggestion.Print()], isDeleteButtonEnabled: true, isSpaceButtonHidden: true, + isDecreaseIndentLevelButtonHidden: true, onboardingState: StepQuizCodeBlanksFeatureOnboardingStateUnavailable() ) ), @@ -161,6 +97,7 @@ extension StepQuizCodeBlanksView: Equatable { codeBlocks: [ StepQuizCodeBlanksViewStateCodeBlockItemPrint( id: 0, + indentLevel: 0, children: [ StepQuizCodeBlanksViewStateCodeBlockChildItem(id: 0, isActive: true, value: nil) ] @@ -172,6 +109,7 @@ extension StepQuizCodeBlanksView: Equatable { ], isDeleteButtonEnabled: false, isSpaceButtonHidden: true, + isDecreaseIndentLevelButtonHidden: true, onboardingState: StepQuizCodeBlanksFeatureOnboardingStateUnavailable() ) ), @@ -191,6 +129,7 @@ extension StepQuizCodeBlanksView: Equatable { codeBlocks: [ StepQuizCodeBlanksViewStateCodeBlockItemPrint( id: 0, + indentLevel: 0, children: [ StepQuizCodeBlanksViewStateCodeBlockChildItem( id: 0, @@ -201,6 +140,7 @@ extension StepQuizCodeBlanksView: Equatable { ), StepQuizCodeBlanksViewStateCodeBlockItemPrint( id: 1, + indentLevel: 0, children: [ StepQuizCodeBlanksViewStateCodeBlockChildItem(id: 0, isActive: true, value: nil) ] @@ -212,6 +152,7 @@ extension StepQuizCodeBlanksView: Equatable { ], isDeleteButtonEnabled: false, isSpaceButtonHidden: true, + isDecreaseIndentLevelButtonHidden: true, onboardingState: StepQuizCodeBlanksFeatureOnboardingStateUnavailable() ) ), diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/StepQuizCodeBlanksSuggestionsView.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/Suggestions/StepQuizCodeBlanksSuggestionsView.swift similarity index 79% rename from iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/StepQuizCodeBlanksSuggestionsView.swift rename to iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/Suggestions/StepQuizCodeBlanksSuggestionsView.swift index b14c313c5..090929573 100644 --- a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/StepQuizCodeBlanksSuggestionsView.swift +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/Suggestions/StepQuizCodeBlanksSuggestionsView.swift @@ -21,7 +21,7 @@ struct StepQuizCodeBlanksSuggestionsView: View { onSuggestionTap(suggestion) }, label: { - StepQuizCodeBlanksOptionView( + StepQuizCodeBlanksCodeBlockChildTextView( text: suggestion.text, isActive: true ) @@ -31,7 +31,7 @@ struct StepQuizCodeBlanksSuggestionsView: View { ) .pulseEffect( shape: RoundedRectangle( - cornerRadius: StepQuizCodeBlanksOptionView.Appearance.cornerRadius + cornerRadius: StepQuizCodeBlanksCodeBlockChildTextView.Appearance.cornerRadius ), isActive: isAnimationEffectActive ) @@ -42,7 +42,7 @@ struct StepQuizCodeBlanksSuggestionsView: View { // Preserve height to avoid layout jumps if suggestions.isEmpty { - StepQuizCodeBlanksOptionView(text: "", isActive: false) + StepQuizCodeBlanksCodeBlockChildTextView(text: "", isActive: false) .hidden() } } @@ -50,6 +50,13 @@ struct StepQuizCodeBlanksSuggestionsView: View { } } +extension StepQuizCodeBlanksSuggestionsView: Equatable { + static func == (lhs: StepQuizCodeBlanksSuggestionsView, rhs: StepQuizCodeBlanksSuggestionsView) -> Bool { + lhs.isAnimationEffectActive == rhs.isAnimationEffectActive && + lhs.suggestions.map(\.text) == rhs.suggestions.map(\.text) + } +} + #if DEBUG #Preview { VStack { diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/analytic/domain/model/hyperskill/HyperskillAnalyticTarget.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/analytic/domain/model/hyperskill/HyperskillAnalyticTarget.kt index 87f2f6d9e..8b0a7e01a 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/analytic/domain/model/hyperskill/HyperskillAnalyticTarget.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/analytic/domain/model/hyperskill/HyperskillAnalyticTarget.kt @@ -21,6 +21,7 @@ enum class HyperskillAnalyticTarget(val targetName: String) { DELETE("delete"), ENTER("enter"), SPACE("space"), + DECREASE_INDENT_LEVEL("decrease_indent_level"), DONE("done"), YES("yes"), NO("no"), diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/domain/analytic/StepQuizCodeBlanksClickedDecreaseIndentLevelHyperskillAnalyticEvent.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/domain/analytic/StepQuizCodeBlanksClickedDecreaseIndentLevelHyperskillAnalyticEvent.kt new file mode 100644 index 000000000..9875f2f6c --- /dev/null +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/domain/analytic/StepQuizCodeBlanksClickedDecreaseIndentLevelHyperskillAnalyticEvent.kt @@ -0,0 +1,41 @@ +package org.hyperskill.app.step_quiz_code_blanks.domain.analytic + +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticAction +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticEvent +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticPart +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticRoute +import org.hyperskill.app.analytic.domain.model.hyperskill.HyperskillAnalyticTarget +import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlock +import ru.nobird.app.core.model.mapOfNotNull + +/** + * Represents click on the "Decrease indent level" button in the code block analytic event. + * + * JSON payload: + * ``` + * { + * "route": "/learn/step/1", + * "action": "click", + * "part": "code_blanks", + * "target": "decrease_indent_level", + * "context": + * { + * "code_block": "Print(isActive=true, suggestions=[ConstantString(text=suggestion)], selectedSuggestion=null)" + * } + * } + * ``` + * + * @see HyperskillAnalyticEvent + */ +class StepQuizCodeBlanksClickedDecreaseIndentLevelHyperskillAnalyticEvent( + route: HyperskillAnalyticRoute, + codeBlock: CodeBlock? +) : HyperskillAnalyticEvent( + route = route, + action = HyperskillAnalyticAction.CLICK, + part = HyperskillAnalyticPart.CODE_BLANKS, + target = HyperskillAnalyticTarget.DECREASE_INDENT_LEVEL, + context = mapOfNotNull( + StepQuizCodeBlanksAnalyticParams.PARAM_CODE_BLOCK to codeBlock?.analyticRepresentation + ) +) \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/domain/model/CodeBlock.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/domain/model/CodeBlock.kt index 8faf3aced..241028bbd 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/domain/model/CodeBlock.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/domain/model/CodeBlock.kt @@ -1,12 +1,15 @@ package org.hyperskill.app.step_quiz_code_blanks.domain.model import org.hyperskill.app.core.utils.indexOfFirstOrNull +import ru.nobird.app.core.model.cast sealed class CodeBlock { companion object; internal abstract val isActive: Boolean + internal abstract val indentLevel: Int + internal abstract val suggestions: List internal abstract val children: List @@ -21,8 +24,15 @@ sealed class CodeBlock { internal fun activeChildIndex(): Int? = children.indexOfFirstOrNull { it.isActive } + internal fun areAllChildrenUnselected(): Boolean = + children.all { it is CodeBlockChild.SelectSuggestion && it.selectedSuggestion == null } + + internal fun hasAnySelectedChild(): Boolean = + children.any { it is CodeBlockChild.SelectSuggestion && it.selectedSuggestion != null } + internal data class Blank( override val isActive: Boolean, + override val indentLevel: Int = 0, override val suggestions: List ) : CodeBlock() { override val children: List = emptyList() @@ -34,6 +44,7 @@ sealed class CodeBlock { } internal data class Print( + override val indentLevel: Int = 0, override val children: List ) : CodeBlock() { override val isActive: Boolean = false @@ -45,6 +56,7 @@ sealed class CodeBlock { override fun toReplyString(): String = buildString { + append(buildIndentString(indentLevel)) append("print(") append(joinChildrenToReplyString(children)) append(")") @@ -55,6 +67,7 @@ sealed class CodeBlock { } internal data class Variable( + override val indentLevel: Int = 0, override val children: List ) : CodeBlock() { val name: CodeBlockChild.SelectSuggestion? @@ -72,6 +85,7 @@ sealed class CodeBlock { override fun toReplyString(): String = buildString { + append(buildIndentString(indentLevel)) append(name?.toReplyString() ?: "") append(" = ") append(joinChildrenToReplyString(values)) @@ -80,8 +94,34 @@ sealed class CodeBlock { override fun toString(): String = "Variable(children=$children)" } + + internal data class IfStatement( + override val indentLevel: Int = 0, + override val children: List + ) : CodeBlock() { + override val isActive: Boolean = false + + override val suggestions: List = emptyList() + + override val analyticRepresentation: String + get() = "IfStatement(children=$children)" + + override fun toReplyString(): String = + buildString { + append(buildIndentString(indentLevel)) + append("if ") + append(joinChildrenToReplyString(children)) + append(":") + } + + override fun toString(): String = + "IfStatement(children=$children)" + } } +internal fun CodeBlock.Companion.buildIndentString(indentLevel: Int): String = + "\t".repeat(indentLevel) + internal fun CodeBlock.Companion.joinChildrenToReplyString(children: List): String = buildString { children.forEachIndexed { index, child -> @@ -100,4 +140,20 @@ internal fun CodeBlock.Companion.joinChildrenToReplyString(children: List): CodeBlock = + when (this) { + is CodeBlock.Blank -> this + is CodeBlock.Print -> copy(children = children.cast()) + is CodeBlock.Variable -> copy(children = children.cast()) + is CodeBlock.IfStatement -> copy(children = children.cast()) + } + +internal fun CodeBlock.updatedIndentLevel(indentLevel: Int): CodeBlock = + when (this) { + is CodeBlock.Blank -> copy(indentLevel = indentLevel) + is CodeBlock.Print -> copy(indentLevel = indentLevel) + is CodeBlock.Variable -> copy(indentLevel = indentLevel) + is CodeBlock.IfStatement -> copy(indentLevel = indentLevel) } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/domain/model/Suggestion.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/domain/model/Suggestion.kt index 219daf9b4..0d95eaa5d 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/domain/model/Suggestion.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/domain/model/Suggestion.kt @@ -19,6 +19,13 @@ sealed class Suggestion { "Variable(text='$text')" } + data object IfStatement : Suggestion() { + override val text: String = "if" + + override val analyticRepresentation: String = + "IfStatement(text='$text')" + } + data class ConstantString( override val text: String ) : Suggestion() { diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/presentation/StepQuizCodeBlanksFeature.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/presentation/StepQuizCodeBlanksFeature.kt index 0e1c8f402..8cc1fe4e3 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/presentation/StepQuizCodeBlanksFeature.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/presentation/StepQuizCodeBlanksFeature.kt @@ -29,6 +29,8 @@ object StepQuizCodeBlanksFeature { val codeBlocks: List, val onboardingState: OnboardingState = OnboardingState.Unavailable ) : State { + companion object; + internal val codeBlanksStringsSuggestions: List = step.codeBlanksStringsSuggestions() @@ -58,6 +60,7 @@ object StepQuizCodeBlanksFeature { data object DeleteButtonClicked : Message data object EnterButtonClicked : Message data object SpaceButtonClicked : Message + data object DecreaseIndentLevelButtonClicked : Message } internal sealed interface InternalMessage : Message { diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducer.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducer.kt index 8c7884ffb..31f62faa4 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducer.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducer.kt @@ -5,6 +5,7 @@ import org.hyperskill.app.step.domain.model.Step import org.hyperskill.app.step.domain.model.StepRoute import org.hyperskill.app.step_quiz_code_blanks.domain.analytic.StepQuizCodeBlanksClickedCodeBlockChildHyperskillAnalyticEvent import org.hyperskill.app.step_quiz_code_blanks.domain.analytic.StepQuizCodeBlanksClickedCodeBlockHyperskillAnalyticEvent +import org.hyperskill.app.step_quiz_code_blanks.domain.analytic.StepQuizCodeBlanksClickedDecreaseIndentLevelHyperskillAnalyticEvent import org.hyperskill.app.step_quiz_code_blanks.domain.analytic.StepQuizCodeBlanksClickedDeleteHyperskillAnalyticEvent import org.hyperskill.app.step_quiz_code_blanks.domain.analytic.StepQuizCodeBlanksClickedEnterHyperskillAnalyticEvent import org.hyperskill.app.step_quiz_code_blanks.domain.analytic.StepQuizCodeBlanksClickedSpaceHyperskillAnalyticEvent @@ -12,6 +13,8 @@ import org.hyperskill.app.step_quiz_code_blanks.domain.analytic.StepQuizCodeBlan import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlock import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlockChild import org.hyperskill.app.step_quiz_code_blanks.domain.model.Suggestion +import org.hyperskill.app.step_quiz_code_blanks.domain.model.updatedChildren +import org.hyperskill.app.step_quiz_code_blanks.domain.model.updatedIndentLevel import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksFeature.Action import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksFeature.InternalAction import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksFeature.InternalMessage @@ -36,6 +39,7 @@ class StepQuizCodeBlanksReducer( Message.DeleteButtonClicked -> handleDeleteButtonClicked(state) Message.EnterButtonClicked -> handleEnterButtonClicked(state) Message.SpaceButtonClicked -> handleSpaceButtonClicked(state) + Message.DecreaseIndentLevelButtonClicked -> handleDecreaseIndentLevelButtonClicked(state) } ?: (state to emptySet()) private fun initialize( @@ -60,27 +64,28 @@ class StepQuizCodeBlanksReducer( } val activeCodeBlockIndex = state.activeCodeBlockIndex() + val activeCodeBlock = activeCodeBlockIndex?.let { state.codeBlocks[it] } val actions = setOf( InternalAction.LogAnalyticEvent( StepQuizCodeBlanksClickedSuggestionHyperskillAnalyticEvent( route = stepRoute.analyticRoute, - codeBlock = activeCodeBlockIndex?.let { state.codeBlocks[it] }, + codeBlock = activeCodeBlock, suggestion = message.suggestion ) ) ) - if (activeCodeBlockIndex == null) { + if (activeCodeBlock == null) { return state to actions } - val activeCodeBlock = state.codeBlocks[activeCodeBlockIndex] val newCodeBlock = when (activeCodeBlock) { is CodeBlock.Blank -> when (message.suggestion) { Suggestion.Print -> CodeBlock.Print( + indentLevel = activeCodeBlock.indentLevel, children = listOf( CodeBlockChild.SelectSuggestion( isActive = true, @@ -92,6 +97,7 @@ class StepQuizCodeBlanksReducer( ) Suggestion.Variable -> CodeBlock.Variable( + indentLevel = activeCodeBlock.indentLevel, children = listOf( CodeBlockChild.SelectSuggestion( isActive = true, @@ -105,20 +111,35 @@ class StepQuizCodeBlanksReducer( ) ) ) + Suggestion.IfStatement -> + CodeBlock.IfStatement( + indentLevel = activeCodeBlock.indentLevel, + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = state.codeBlanksVariablesSuggestions + + state.codeBlanksStringsSuggestions, + selectedSuggestion = null + ) + ) + ) else -> activeCodeBlock } - is CodeBlock.Print -> { + is CodeBlock.Print, + is CodeBlock.IfStatement -> { activeCodeBlock.activeChildIndex()?.let { activeChildIndex -> - activeCodeBlock.copy( - children = activeCodeBlock.children.mutate { + val activeChild = activeCodeBlock.children[activeChildIndex] as CodeBlockChild.SelectSuggestion + val newChildren = activeCodeBlock.children + .mutate { set( activeChildIndex, - activeCodeBlock.children[activeChildIndex].copy( + activeChild.copy( selectedSuggestion = message.suggestion as? Suggestion.ConstantString ) ) } - ) + .cast>() + activeCodeBlock.updatedChildren(newChildren) } ?: activeCodeBlock } is CodeBlock.Variable -> { @@ -228,7 +249,8 @@ class StepQuizCodeBlanksReducer( val newChildren = when (targetCodeBlock) { is CodeBlock.Print, - is CodeBlock.Variable -> { + is CodeBlock.Variable, + is CodeBlock.IfStatement -> { targetCodeBlock.children.mapIndexed { index, child -> require(child is CodeBlockChild.SelectSuggestion) if (index == message.codeBlockChildItem.id) { @@ -250,11 +272,7 @@ class StepQuizCodeBlanksReducer( targetCodeBlock?.let { targetCodeBlock -> set( targetCodeBlockIndex, - when (targetCodeBlock) { - is CodeBlock.Print -> targetCodeBlock.copy(children = newChildren) - is CodeBlock.Variable -> targetCodeBlock.copy(children = newChildren) - else -> targetCodeBlock - } + targetCodeBlock.updatedChildren(newChildren) ) } } @@ -271,17 +289,18 @@ class StepQuizCodeBlanksReducer( } val activeCodeBlockIndex = state.activeCodeBlockIndex() + val activeCodeBlock = activeCodeBlockIndex?.let { state.codeBlocks[it] } val actions = setOf( InternalAction.LogAnalyticEvent( StepQuizCodeBlanksClickedDeleteHyperskillAnalyticEvent( route = stepRoute.analyticRoute, - codeBlock = activeCodeBlockIndex?.let { state.codeBlocks[it] } + codeBlock = activeCodeBlock ) ) ) - if (activeCodeBlockIndex == null) { + if (activeCodeBlock == null) { return state to actions } @@ -303,12 +322,13 @@ class StepQuizCodeBlanksReducer( activeCodeBlockIndex, createBlankCodeBlock( isActive = true, + indentLevel = activeCodeBlock.indentLevel, isVariableSuggestionAvailable = state.isVariableSuggestionsAvailable ) ) } - when (val activeCodeBlock = state.codeBlocks[activeCodeBlockIndex]) { + when (activeCodeBlock) { is CodeBlock.Blank -> { if (state.codeBlocks.size > 1) { removeActiveCodeBlockAndSetNextActive() @@ -385,7 +405,50 @@ class StepQuizCodeBlanksReducer( ) ) - activeCodeBlock.children.all { it.selectedSuggestion == null } -> + activeChildIndex == 0 || activeCodeBlock.areAllChildrenUnselected() -> + if (state.codeBlocks.size > 1) { + removeActiveCodeBlockAndSetNextActive() + } else { + replaceActiveCodeWithBlank() + } + } + } + is CodeBlock.IfStatement -> { + val activeChildIndex = activeCodeBlock.activeChildIndex() ?: return@mutate + val activeChild = activeCodeBlock.children[activeChildIndex] + + val nextCodeBlock = state.codeBlocks.getOrNull(activeCodeBlockIndex + 1) + + when { + activeChild.selectedSuggestion != null -> + set( + activeCodeBlockIndex, + activeCodeBlock.copy( + children = activeCodeBlock.children.mutate { + set( + activeChildIndex, + activeChild.copy(selectedSuggestion = null) + ) + } + ) + ) + + activeChildIndex > 0 -> + set( + activeCodeBlockIndex, + activeCodeBlock.copy( + children = activeCodeBlock.children.mutate { + set( + activeChildIndex - 1, + this[activeChildIndex - 1].copy(isActive = true) + ) + removeAt(activeChildIndex) + } + ) + ) + + (activeChildIndex == 0 || activeCodeBlock.areAllChildrenUnselected()) && + (nextCodeBlock?.let { it.indentLevel == activeCodeBlock.indentLevel } ?: true) -> if (state.codeBlocks.size > 1) { removeActiveCodeBlockAndSetNextActive() } else { @@ -407,17 +470,24 @@ class StepQuizCodeBlanksReducer( } val activeCodeBlockIndex = state.activeCodeBlockIndex() + val activeCodeBlock = activeCodeBlockIndex?.let { state.codeBlocks[it] } val actions = setOf( InternalAction.LogAnalyticEvent( StepQuizCodeBlanksClickedEnterHyperskillAnalyticEvent( route = stepRoute.analyticRoute, - codeBlock = activeCodeBlockIndex?.let { state.codeBlocks[it] } + codeBlock = activeCodeBlock ) ) ) - return if (activeCodeBlockIndex != null) { + return if (activeCodeBlock != null) { + val indentLevel = + when (activeCodeBlock) { + is CodeBlock.IfStatement -> activeCodeBlock.indentLevel + 1 + else -> activeCodeBlock.indentLevel + } + val newCodeBlocks = state.codeBlocks.mutate { set( activeCodeBlockIndex, @@ -427,6 +497,7 @@ class StepQuizCodeBlanksReducer( activeCodeBlockIndex + 1, createBlankCodeBlock( isActive = true, + indentLevel = indentLevel, isVariableSuggestionAvailable = state.isVariableSuggestionsAvailable ) ) @@ -445,24 +516,25 @@ class StepQuizCodeBlanksReducer( } val activeCodeBlockIndex = state.activeCodeBlockIndex() + val activeCodeBlock = activeCodeBlockIndex?.let { state.codeBlocks[it] } val actions = setOf( InternalAction.LogAnalyticEvent( StepQuizCodeBlanksClickedSpaceHyperskillAnalyticEvent( route = stepRoute.analyticRoute, - codeBlock = activeCodeBlockIndex?.let { state.codeBlocks[it] } + codeBlock = activeCodeBlock ) ) ) - if (activeCodeBlockIndex == null) { + if (activeCodeBlock == null) { return state to actions } - val activeCodeBlock = state.codeBlocks[activeCodeBlockIndex] val newChildren = when (activeCodeBlock) { is CodeBlock.Print, - is CodeBlock.Variable -> { + is CodeBlock.Variable, + is CodeBlock.IfStatement -> { activeCodeBlock.activeChildIndex()?.let { activeChildIndex -> val activeChild = activeCodeBlock.children[activeChildIndex] as CodeBlockChild.SelectSuggestion @@ -504,11 +576,7 @@ class StepQuizCodeBlanksReducer( newChildren?.let { set( activeCodeBlockIndex, - when (activeCodeBlock) { - is CodeBlock.Print -> activeCodeBlock.copy(children = newChildren) - is CodeBlock.Variable -> activeCodeBlock.copy(children = newChildren) - else -> activeCodeBlock - } + activeCodeBlock.updatedChildren(newChildren) ) } } @@ -516,11 +584,46 @@ class StepQuizCodeBlanksReducer( return state.copy(codeBlocks = newCodeBlocks) to actions } + private fun handleDecreaseIndentLevelButtonClicked( + state: State + ): StepQuizCodeBlanksReducerResult? { + if (state !is State.Content) { + return null + } + + val activeCodeBlockIndex = state.activeCodeBlockIndex() + val activeCodeBlock = activeCodeBlockIndex?.let { state.codeBlocks[it] } + + val actions = setOf( + InternalAction.LogAnalyticEvent( + StepQuizCodeBlanksClickedDecreaseIndentLevelHyperskillAnalyticEvent( + route = stepRoute.analyticRoute, + codeBlock = activeCodeBlock + ) + ) + ) + + if (activeCodeBlock == null || activeCodeBlock.indentLevel < 1) { + return state to actions + } + val newIndentLevel = activeCodeBlock.indentLevel - 1 + + return state.copy( + codeBlocks = state.codeBlocks.mutate { + set( + activeCodeBlockIndex, + activeCodeBlock.updatedIndentLevel(newIndentLevel) + ) + } + ) to actions + } + private fun setCodeBlockIsActive(codeBlock: CodeBlock, isActive: Boolean): CodeBlock = when (codeBlock) { is CodeBlock.Blank -> codeBlock.copy(isActive = isActive) + is CodeBlock.Print, is CodeBlock.Variable, - is CodeBlock.Print -> { + is CodeBlock.IfStatement -> { if (isActive) { if (codeBlock.activeChild() != null) { codeBlock @@ -533,34 +636,28 @@ class StepQuizCodeBlanksReducer( child.copy(isActive = false) } } - when (codeBlock) { - is CodeBlock.Print -> codeBlock.copy(children = newChildren) - is CodeBlock.Variable -> codeBlock.copy(children = newChildren) - else -> codeBlock - } + codeBlock.updatedChildren(newChildren) } } else { val newChildren = codeBlock.children.map { child -> require(child is CodeBlockChild.SelectSuggestion) child.copy(isActive = false) } - when (codeBlock) { - is CodeBlock.Print -> codeBlock.copy(children = newChildren) - is CodeBlock.Variable -> codeBlock.copy(children = newChildren) - else -> codeBlock - } + codeBlock.updatedChildren(newChildren) } } } private fun createBlankCodeBlock( isActive: Boolean, + indentLevel: Int, isVariableSuggestionAvailable: Boolean ): CodeBlock.Blank = CodeBlock.Blank( isActive = isActive, + indentLevel = indentLevel, suggestions = if (isVariableSuggestionAvailable) { - listOf(Suggestion.Print, Suggestion.Variable) + listOf(Suggestion.Print, Suggestion.Variable, Suggestion.IfStatement) } else { listOf(Suggestion.Print) } @@ -570,6 +667,7 @@ class StepQuizCodeBlanksReducer( if (step.id == 47580L) { listOf( CodeBlock.Variable( + indentLevel = 0, children = listOf( CodeBlockChild.SelectSuggestion( isActive = false, @@ -584,6 +682,7 @@ class StepQuizCodeBlanksReducer( ) ), CodeBlock.Variable( + indentLevel = 0, children = listOf( CodeBlockChild.SelectSuggestion( isActive = false, @@ -598,6 +697,7 @@ class StepQuizCodeBlanksReducer( ) ), CodeBlock.Variable( + indentLevel = 0, children = listOf( CodeBlockChild.SelectSuggestion( isActive = false, @@ -613,6 +713,7 @@ class StepQuizCodeBlanksReducer( ), createBlankCodeBlock( isActive = true, + indentLevel = 0, isVariableSuggestionAvailable = StepQuizCodeBlanksFeature.isVariableSuggestionsAvailable(step) ) ) @@ -620,6 +721,7 @@ class StepQuizCodeBlanksReducer( listOf( createBlankCodeBlock( isActive = true, + indentLevel = 0, isVariableSuggestionAvailable = StepQuizCodeBlanksFeature.isVariableSuggestionsAvailable(step) ) ) diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/view/mapper/StepQuizCodeBlanksViewStateMapper.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/view/mapper/StepQuizCodeBlanksViewStateMapper.kt index fc176599a..899f8f17d 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/view/mapper/StepQuizCodeBlanksViewStateMapper.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/view/mapper/StepQuizCodeBlanksViewStateMapper.kt @@ -17,13 +17,16 @@ object StepQuizCodeBlanksViewStateMapper { state: StepQuizCodeBlanksFeature.State.Content ): StepQuizCodeBlanksViewState.Content { val codeBlocks = state.codeBlocks.mapIndexed(::mapCodeBlock) - val activeCodeBlock = state.activeCodeBlockIndex()?.let { state.codeBlocks[it] } + + val activeCodeBlockIndex = state.activeCodeBlockIndex() + val activeCodeBlock = activeCodeBlockIndex?.let { state.codeBlocks[it] } val suggestions = when (activeCodeBlock) { is CodeBlock.Blank -> activeCodeBlock.suggestions is CodeBlock.Print, - is CodeBlock.Variable -> + is CodeBlock.Variable, + is CodeBlock.IfStatement -> (activeCodeBlock.activeChild() as? CodeBlockChild.SelectSuggestion)?.let { if (it.selectedSuggestion == null) { it.suggestions @@ -41,23 +44,39 @@ object StepQuizCodeBlanksViewStateMapper { is CodeBlock.Variable -> { activeCodeBlock.activeChildIndex()?.let { activeChildIndex -> when { - activeChildIndex > 1 -> + activeChildIndex == 0 || activeChildIndex > 1 -> true activeCodeBlock.children[activeChildIndex].selectedSuggestion == null && - activeCodeBlock.children.any { it.selectedSuggestion != null } -> + activeCodeBlock.hasAnySelectedChild() -> false else -> true } } ?: false } + is CodeBlock.IfStatement -> { + activeCodeBlock.activeChildIndex()?.let { activeChildIndex -> + when { + activeChildIndex > 0 -> + true + + activeCodeBlock.children[activeChildIndex].selectedSuggestion != null -> + true + + else -> + codeBlocks.getOrNull(activeCodeBlockIndex + 1) + ?.let { it.indentLevel == activeCodeBlock.indentLevel } ?: true + } + } ?: false + } null -> false } val isSpaceButtonHidden = if (state.codeBlanksOperationsSuggestions.isNotEmpty()) { when (activeCodeBlock) { - is CodeBlock.Print -> { + is CodeBlock.Print, + is CodeBlock.IfStatement -> { val activeChild = activeCodeBlock.activeChild() as? CodeBlockChild.SelectSuggestion activeChild?.selectedSuggestion == null } @@ -75,11 +94,20 @@ object StepQuizCodeBlanksViewStateMapper { true } + val isDecreaseIndentLevelButtonHidden = + when { + activeCodeBlock == null -> true + activeCodeBlock.indentLevel < 1 -> true + state.codeBlocks.getOrNull(activeCodeBlockIndex - 1) is CodeBlock.IfStatement -> true + else -> false + } + return StepQuizCodeBlanksViewState.Content( codeBlocks = codeBlocks, suggestions = suggestions, isDeleteButtonEnabled = isDeleteButtonEnabled, isSpaceButtonHidden = isSpaceButtonHidden, + isDecreaseIndentLevelButtonHidden = isDecreaseIndentLevelButtonHidden, onboardingState = state.onboardingState ) } @@ -90,15 +118,27 @@ object StepQuizCodeBlanksViewStateMapper { ): StepQuizCodeBlanksViewState.CodeBlockItem = when (codeBlock) { is CodeBlock.Blank -> - StepQuizCodeBlanksViewState.CodeBlockItem.Blank(id = index, isActive = codeBlock.isActive) + StepQuizCodeBlanksViewState.CodeBlockItem.Blank( + id = index, + indentLevel = codeBlock.indentLevel, + isActive = codeBlock.isActive + ) is CodeBlock.Print -> StepQuizCodeBlanksViewState.CodeBlockItem.Print( id = index, + indentLevel = codeBlock.indentLevel, children = codeBlock.children.mapIndexed(::mapCodeBlockChild) ) is CodeBlock.Variable -> StepQuizCodeBlanksViewState.CodeBlockItem.Variable( id = index, + indentLevel = codeBlock.indentLevel, + children = codeBlock.children.mapIndexed(::mapCodeBlockChild) + ) + is CodeBlock.IfStatement -> + StepQuizCodeBlanksViewState.CodeBlockItem.IfStatement( + id = index, + indentLevel = codeBlock.indentLevel, children = codeBlock.children.mapIndexed(::mapCodeBlockChild) ) } diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/view/model/StepQuizCodeBlanksViewState.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/view/model/StepQuizCodeBlanksViewState.kt index 5221faeee..0cddcf03b 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/view/model/StepQuizCodeBlanksViewState.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/view/model/StepQuizCodeBlanksViewState.kt @@ -11,6 +11,7 @@ sealed interface StepQuizCodeBlanksViewState { val suggestions: List, val isDeleteButtonEnabled: Boolean, val isSpaceButtonHidden: Boolean, + val isDecreaseIndentLevelButtonHidden: Boolean, internal val onboardingState: OnboardingState = OnboardingState.Unavailable ) : StepQuizCodeBlanksViewState { val isActionButtonsHidden: Boolean @@ -23,10 +24,13 @@ sealed interface StepQuizCodeBlanksViewState { sealed interface CodeBlockItem { val id: Int + val indentLevel: Int + val children: List data class Blank( override val id: Int, + override val indentLevel: Int = 0, val isActive: Boolean ) : CodeBlockItem { override val children: List = emptyList() @@ -34,11 +38,13 @@ sealed interface StepQuizCodeBlanksViewState { data class Print( override val id: Int, + override val indentLevel: Int = 0, override val children: List ) : CodeBlockItem data class Variable( override val id: Int, + override val indentLevel: Int = 0, override val children: List ) : CodeBlockItem { val name: CodeBlockChildItem? @@ -47,6 +53,12 @@ sealed interface StepQuizCodeBlanksViewState { val values: List get() = children.drop(1) } + + data class IfStatement( + override val id: Int, + override val indentLevel: Int = 0, + override val children: List + ) : CodeBlockItem } data class CodeBlockChildItem( diff --git a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/StepQuizCodeBlanksReducerTest.kt b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/StepQuizCodeBlanksReducerTest.kt deleted file mode 100644 index d0160f37b..000000000 --- a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/StepQuizCodeBlanksReducerTest.kt +++ /dev/null @@ -1,1349 +0,0 @@ -package org.hyperskill.step_quiz_code_blanks - -import kotlin.test.Test -import kotlin.test.assertEquals -import kotlin.test.assertTrue -import org.hyperskill.app.step.domain.model.Block -import org.hyperskill.app.step.domain.model.Step -import org.hyperskill.app.step.domain.model.StepRoute -import org.hyperskill.app.step_quiz_code_blanks.domain.analytic.StepQuizCodeBlanksClickedCodeBlockChildHyperskillAnalyticEvent -import org.hyperskill.app.step_quiz_code_blanks.domain.analytic.StepQuizCodeBlanksClickedCodeBlockHyperskillAnalyticEvent -import org.hyperskill.app.step_quiz_code_blanks.domain.analytic.StepQuizCodeBlanksClickedDeleteHyperskillAnalyticEvent -import org.hyperskill.app.step_quiz_code_blanks.domain.analytic.StepQuizCodeBlanksClickedEnterHyperskillAnalyticEvent -import org.hyperskill.app.step_quiz_code_blanks.domain.analytic.StepQuizCodeBlanksClickedSpaceHyperskillAnalyticEvent -import org.hyperskill.app.step_quiz_code_blanks.domain.analytic.StepQuizCodeBlanksClickedSuggestionHyperskillAnalyticEvent -import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlock -import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlockChild -import org.hyperskill.app.step_quiz_code_blanks.domain.model.Suggestion -import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksFeature -import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksFeature.OnboardingState -import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksReducer -import org.hyperskill.app.step_quiz_code_blanks.view.model.StepQuizCodeBlanksViewState -import org.hyperskill.step.domain.model.stub - -class StepQuizCodeBlanksReducerTest { - private val reducer = StepQuizCodeBlanksReducer(StepRoute.Learn.Step(1, null)) - - @Test - fun `Initialize should return Content state with active Blank and Print and Variable suggestions`() { - val step = Step.stub( - id = 1, - block = Block.stub(options = Block.Options(codeBlanksVariables = listOf("a", "b"))) - ) - - val message = StepQuizCodeBlanksFeature.InternalMessage.Initialize(step) - val (state, actions) = reducer.reduce(StepQuizCodeBlanksFeature.State.Idle, message) - - val expectedState = StepQuizCodeBlanksFeature.State.Content( - step = step, - codeBlocks = listOf( - CodeBlock.Blank( - isActive = true, - suggestions = listOf(Suggestion.Print, Suggestion.Variable) - ) - ) - ) - - assertTrue(state is StepQuizCodeBlanksFeature.State.Content) - assertEquals(expectedState.codeBlocks, state.codeBlocks) - assertTrue(actions.isEmpty()) - } - - @Test - fun `Initialize should return Content state with active Blank and Print suggestion`() { - val step = Step.stub(id = 1) - - val message = StepQuizCodeBlanksFeature.InternalMessage.Initialize(step) - val (state, actions) = reducer.reduce(StepQuizCodeBlanksFeature.State.Idle, message) - - val expectedState = StepQuizCodeBlanksFeature.State.Content( - step = step, - codeBlocks = listOf(CodeBlock.Blank(isActive = true, suggestions = listOf(Suggestion.Print))) - ) - - assertTrue(state is StepQuizCodeBlanksFeature.State.Content) - assertEquals(expectedState.codeBlocks, state.codeBlocks) - assertTrue(actions.isEmpty()) - } - - @Test - fun `SuggestionClicked should not update state if no active code block`() { - val initialState = - stubContentState(codeBlocks = listOf(CodeBlock.Blank(isActive = false, suggestions = emptyList()))) - - val message = StepQuizCodeBlanksFeature.Message.SuggestionClicked(Suggestion.Print) - val (state, actions) = reducer.reduce(initialState, message) - - assertEquals(initialState, state) - assertContainsSuggestionClickedAnalyticEvent(actions) - } - - @Test - fun `SuggestionClicked should not update state if suggestion does not exist`() { - val initialState = - stubContentState(codeBlocks = listOf(CodeBlock.Blank(isActive = true, suggestions = emptyList()))) - - val message = StepQuizCodeBlanksFeature.Message.SuggestionClicked(Suggestion.ConstantString("test")) - val (state, actions) = reducer.reduce(initialState, message) - - assertEquals(initialState, state) - assertContainsSuggestionClickedAnalyticEvent(actions) - } - - @Test - fun `SuggestionClicked should not update state if state is not Content`() { - val initialState = StepQuizCodeBlanksFeature.State.Idle - val message = StepQuizCodeBlanksFeature.Message.SuggestionClicked(Suggestion.Print) - val (state, actions) = reducer.reduce(initialState, message) - - assertEquals(initialState, state) - assertTrue(actions.isEmpty()) - } - - @Test - fun `SuggestionClicked should update active Blank code block to Print if suggestion exists`() { - val initialState = stubContentState( - codeBlocks = listOf( - CodeBlock.Blank( - isActive = true, - suggestions = listOf(Suggestion.Print) - ) - ) - ) - - val message = StepQuizCodeBlanksFeature.Message.SuggestionClicked(Suggestion.Print) - val (state, actions) = reducer.reduce(initialState, message) - - val expectedState = initialState.copy( - codeBlocks = listOf( - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = initialState.codeBlanksStringsSuggestions, - selectedSuggestion = null - ) - ) - ) - ) - ) - - assertEquals(expectedState, state) - assertContainsSuggestionClickedAnalyticEvent(actions) - } - - @Test - fun `SuggestionClicked should update active Blank code block to Variable if suggestion exists`() { - val initialState = stubContentState( - codeBlocks = listOf( - CodeBlock.Blank( - isActive = true, - suggestions = listOf(Suggestion.Print, Suggestion.Variable) - ) - ) - ) - - val message = StepQuizCodeBlanksFeature.Message.SuggestionClicked(Suggestion.Variable) - val (state, actions) = reducer.reduce(initialState, message) - - val expectedState = initialState.copy( - codeBlocks = listOf( - CodeBlock.Variable( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = initialState.codeBlanksVariablesSuggestions, - selectedSuggestion = null - ), - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = initialState.codeBlanksStringsSuggestions, - selectedSuggestion = null - ) - ) - ) - ) - ) - - assertEquals(expectedState, state) - assertContainsSuggestionClickedAnalyticEvent(actions) - } - - @Test - fun `SuggestionClicked should update Print code block with selected suggestion`() { - val suggestion = Suggestion.ConstantString("suggestion") - val initialState = stubContentState( - codeBlocks = listOf( - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = listOf(suggestion), - selectedSuggestion = null - ) - ) - ) - ) - ) - - val message = StepQuizCodeBlanksFeature.Message.SuggestionClicked(suggestion) - val (state, actions) = reducer.reduce(initialState, message) - - assertTrue(state is StepQuizCodeBlanksFeature.State.Content) - assertEquals(suggestion, (state.codeBlocks[0] as CodeBlock.Print).children[0].selectedSuggestion) - assertContainsSuggestionClickedAnalyticEvent(actions) - } - - @Test - fun `SuggestionClicked should update Variable code block with selected suggestion for name`() { - val suggestion = Suggestion.ConstantString("suggestion") - val initialState = stubContentState( - codeBlocks = listOf( - CodeBlock.Variable( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = listOf(suggestion), - selectedSuggestion = null - ), - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = listOf(suggestion), - selectedSuggestion = null - ) - ) - ) - ) - ) - - val message = StepQuizCodeBlanksFeature.Message.SuggestionClicked(suggestion) - val (state, actions) = reducer.reduce(initialState, message) - - val expectedState = initialState.copy( - codeBlocks = listOf( - CodeBlock.Variable( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = listOf(suggestion), - selectedSuggestion = suggestion - ), - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = listOf(suggestion), - selectedSuggestion = null - ) - ) - ) - ) - ) - - assertTrue(state is StepQuizCodeBlanksFeature.State.Content) - assertEquals(expectedState.codeBlocks, state.codeBlocks) - assertContainsSuggestionClickedAnalyticEvent(actions) - } - - @Test - fun `SuggestionClicked should update Variable code block with selected suggestion for value`() { - val suggestion = Suggestion.ConstantString("suggestion") - val initialState = stubContentState( - codeBlocks = listOf( - CodeBlock.Variable( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = listOf(suggestion), - selectedSuggestion = null - ), - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = listOf(suggestion), - selectedSuggestion = null - ) - ) - ) - ) - ) - - val message = StepQuizCodeBlanksFeature.Message.SuggestionClicked(suggestion) - val (state, actions) = reducer.reduce(initialState, message) - - val expectedState = initialState.copy( - codeBlocks = listOf( - CodeBlock.Variable( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = listOf(suggestion), - selectedSuggestion = null - ), - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = listOf(suggestion), - selectedSuggestion = suggestion - ) - ) - ) - ) - ) - - assertTrue(state is StepQuizCodeBlanksFeature.State.Content) - assertEquals(expectedState.codeBlocks, state.codeBlocks) - assertContainsSuggestionClickedAnalyticEvent(actions) - } - - @Test - fun `CodeBlockClicked should not update state if state is not Content`() { - val initialState = StepQuizCodeBlanksFeature.State.Idle - val message = StepQuizCodeBlanksFeature.Message.CodeBlockClicked( - codeBlockItem = StepQuizCodeBlanksViewState.CodeBlockItem.Blank(id = 0, isActive = true) - ) - val (state, actions) = reducer.reduce(initialState, message) - - assertEquals(initialState, state) - assertTrue(actions.isEmpty()) - } - - @Test - fun `CodeBlockClicked should update active Print code block`() { - val initialState = stubContentState( - codeBlocks = listOf( - CodeBlock.Blank(isActive = false, suggestions = emptyList()), - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = true, suggestions = emptyList(), selectedSuggestion = null - ) - ) - ) - ) - ) - - val message = StepQuizCodeBlanksFeature.Message.CodeBlockClicked( - codeBlockItem = StepQuizCodeBlanksViewState.CodeBlockItem.Blank(id = 0, isActive = false) - ) - val (state, actions) = reducer.reduce(initialState, message) - - val expectedState = initialState.copy( - codeBlocks = listOf( - CodeBlock.Blank(isActive = true, suggestions = emptyList()), - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = false, suggestions = emptyList(), selectedSuggestion = null - ) - ) - ) - ) - ) - - assertEquals(expectedState, state) - assertTrue { - actions.any { - it is StepQuizCodeBlanksFeature.InternalAction.LogAnalyticEvent && - it.analyticEvent is StepQuizCodeBlanksClickedCodeBlockHyperskillAnalyticEvent - } - } - } - - @Test - fun `CodeBlockClicked should update active Variable code block`() { - val initialState = stubContentState( - codeBlocks = listOf( - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = false, suggestions = emptyList(), selectedSuggestion = null - ) - ) - ), - CodeBlock.Variable( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = true, suggestions = emptyList(), selectedSuggestion = null - ), - CodeBlockChild.SelectSuggestion( - isActive = false, suggestions = emptyList(), selectedSuggestion = null - ) - ) - ) - ) - ) - - val message = StepQuizCodeBlanksFeature.Message.CodeBlockClicked( - codeBlockItem = StepQuizCodeBlanksViewState.CodeBlockItem.Blank(id = 0, isActive = false) - ) - val (state, actions) = reducer.reduce(initialState, message) - - val expectedState = initialState.copy( - codeBlocks = listOf( - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = true, suggestions = emptyList(), selectedSuggestion = null - ) - ) - ), - CodeBlock.Variable( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = false, suggestions = emptyList(), selectedSuggestion = null - ), - CodeBlockChild.SelectSuggestion( - isActive = false, suggestions = emptyList(), selectedSuggestion = null - ) - ) - ) - ) - ) - - assertEquals(expectedState, state) - assertTrue { - actions.any { - it is StepQuizCodeBlanksFeature.InternalAction.LogAnalyticEvent && - it.analyticEvent is StepQuizCodeBlanksClickedCodeBlockHyperskillAnalyticEvent - } - } - } - - @Test - fun `CodeBlockChildClicked should not update state if state is not Content`() { - val initialState = StepQuizCodeBlanksFeature.State.Idle - val message = StepQuizCodeBlanksFeature.Message.CodeBlockChildClicked( - codeBlockItem = StepQuizCodeBlanksViewState.CodeBlockItem.Variable(id = 0, children = emptyList()), - codeBlockChildItem = StepQuizCodeBlanksViewState.CodeBlockChildItem(id = 0, isActive = false, value = null) - ) - val (state, actions) = reducer.reduce(initialState, message) - - assertEquals(initialState, state) - assertTrue(actions.isEmpty()) - } - - @Test - fun `CodeBlockChildClicked should not update state if target code block is not found`() { - val initialState = stubContentState( - codeBlocks = listOf( - CodeBlock.Variable( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = emptyList(), - selectedSuggestion = null - ) - ) - ) - ) - ) - - val message = StepQuizCodeBlanksFeature.Message.CodeBlockChildClicked( - codeBlockItem = StepQuizCodeBlanksViewState.CodeBlockItem.Variable(id = 1, children = emptyList()), - codeBlockChildItem = StepQuizCodeBlanksViewState.CodeBlockChildItem(id = 0, isActive = false, value = null) - ) - val (state, actions) = reducer.reduce(initialState, message) - - assertEquals(initialState, state) - assertContainsCodeBlockChildClickedAnalyticEvent(actions) - } - - @Test - fun `CodeBlockChildClicked should update state to activate the clicked Variable child`() { - val initialState = stubContentState( - codeBlocks = listOf( - CodeBlock.Variable( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = emptyList(), - selectedSuggestion = null - ), - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = emptyList(), - selectedSuggestion = null - ) - ) - ) - ) - ) - - val message = StepQuizCodeBlanksFeature.Message.CodeBlockChildClicked( - codeBlockItem = StepQuizCodeBlanksViewState.CodeBlockItem.Variable(id = 0, children = emptyList()), - codeBlockChildItem = StepQuizCodeBlanksViewState.CodeBlockChildItem(id = 0, isActive = false, value = null) - ) - val (state, actions) = reducer.reduce(initialState, message) - - val expectedState = initialState.copy( - codeBlocks = listOf( - CodeBlock.Variable( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = emptyList(), - selectedSuggestion = null - ), - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = emptyList(), - selectedSuggestion = null - ) - ) - ) - ) - ) - - assertEquals(expectedState, state) - assertContainsCodeBlockChildClickedAnalyticEvent(actions) - } - - @Test - fun `CodeBlockChildClicked should update state to activate the clicked Print child`() { - val initialState = stubContentState( - codeBlocks = listOf( - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = emptyList(), - selectedSuggestion = null - ), - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = emptyList(), - selectedSuggestion = null - ) - ) - ) - ) - ) - - val message = StepQuizCodeBlanksFeature.Message.CodeBlockChildClicked( - codeBlockItem = StepQuizCodeBlanksViewState.CodeBlockItem.Print(id = 0, children = emptyList()), - codeBlockChildItem = StepQuizCodeBlanksViewState.CodeBlockChildItem(id = 0, isActive = false, value = null) - ) - val (state, actions) = reducer.reduce(initialState, message) - - val expectedState = initialState.copy( - codeBlocks = listOf( - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = emptyList(), - selectedSuggestion = null - ), - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = emptyList(), - selectedSuggestion = null - ) - ) - ) - ) - ) - - assertEquals(expectedState, state) - assertContainsCodeBlockChildClickedAnalyticEvent(actions) - } - - @Test - fun `DeleteButtonClicked should not update state if state is not Content`() { - val initialState = StepQuizCodeBlanksFeature.State.Idle - val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.DeleteButtonClicked) - - assertEquals(initialState, state) - assertTrue(actions.isEmpty()) - } - - @Test - fun `DeleteButtonClicked should log analytic event and not update state if no active code block`() { - val initialState = - stubContentState(codeBlocks = listOf(CodeBlock.Blank(isActive = false, suggestions = emptyList()))) - - val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.DeleteButtonClicked) - - assertEquals(initialState, state) - assertContainsDeleteButtonClickedAnalyticEvent(actions) - } - - @Test - fun `DeleteButtonClicked should not update state if active code block is Blank and single`() { - val initialState = - stubContentState(codeBlocks = listOf(CodeBlock.Blank(isActive = true, suggestions = emptyList()))) - - val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.DeleteButtonClicked) - - assertEquals(initialState, state) - assertContainsDeleteButtonClickedAnalyticEvent(actions) - } - - @Test - fun `DeleteButtonClicked should clear suggestion if active Print code block has selected suggestion`() { - val suggestion = Suggestion.ConstantString("suggestion") - val initialState = stubContentState( - codeBlocks = listOf( - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = listOf(suggestion), - selectedSuggestion = suggestion - ) - ) - ) - ) - ) - - val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.DeleteButtonClicked) - - val expectedState = initialState.copy( - codeBlocks = listOf( - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = listOf(suggestion), - selectedSuggestion = null - ) - ) - ) - ) - ) - - assertEquals(expectedState, state) - assertContainsDeleteButtonClickedAnalyticEvent(actions) - } - - @Test - fun `DeleteButtonClicked should set next code block as active if no code block before deleted`() { - val initialStates = listOf( - stubContentState( - codeBlocks = listOf( - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = emptyList(), - selectedSuggestion = null - ) - ) - ), - CodeBlock.Blank(isActive = false, suggestions = emptyList()) - ) - ), - stubContentState( - codeBlocks = listOf( - CodeBlock.Blank(isActive = true, suggestions = emptyList()), - CodeBlock.Blank(isActive = false, suggestions = emptyList()) - ) - ), - stubContentState( - codeBlocks = listOf( - CodeBlock.Blank(isActive = true, suggestions = emptyList()), - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = emptyList(), - selectedSuggestion = null - ) - ) - ) - ) - ), - stubContentState( - codeBlocks = listOf( - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = emptyList(), - selectedSuggestion = null - ) - ) - ), - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = emptyList(), - selectedSuggestion = null - ) - ) - ) - ) - ), - stubContentState( - codeBlocks = listOf( - CodeBlock.Variable( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = emptyList(), - selectedSuggestion = null - ), - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = emptyList(), - selectedSuggestion = null - ) - ) - ), - CodeBlock.Blank(isActive = false, suggestions = emptyList()) - ) - ), - stubContentState( - codeBlocks = listOf( - CodeBlock.Blank(isActive = true, suggestions = emptyList()), - CodeBlock.Variable( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = emptyList(), - selectedSuggestion = null - ), - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = emptyList(), - selectedSuggestion = null - ) - ) - ) - ) - ), - stubContentState( - codeBlocks = listOf( - CodeBlock.Variable( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = emptyList(), - selectedSuggestion = null - ), - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = emptyList(), - selectedSuggestion = null - ) - ) - ), - CodeBlock.Variable( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = emptyList(), - selectedSuggestion = null - ), - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = emptyList(), - selectedSuggestion = Suggestion.ConstantString("suggestion") - ) - ) - ) - ) - ) - ) - val expectedStates = listOf( - initialStates[0].copy(codeBlocks = listOf(CodeBlock.Blank(isActive = true, suggestions = emptyList()))), - initialStates[1].copy(codeBlocks = listOf(CodeBlock.Blank(isActive = true, suggestions = emptyList()))), - initialStates[2].copy( - codeBlocks = listOf( - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = emptyList(), - selectedSuggestion = null - ) - ) - ) - ) - ), - initialStates[3].copy( - codeBlocks = listOf( - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = emptyList(), - selectedSuggestion = null - ) - ) - ) - ) - ), - initialStates[4].copy(codeBlocks = listOf(CodeBlock.Blank(isActive = true, suggestions = emptyList()))), - initialStates[5].copy( - codeBlocks = listOf( - CodeBlock.Variable( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = emptyList(), - selectedSuggestion = null - ), - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = emptyList(), - selectedSuggestion = null - ) - ) - ) - ) - ), - initialStates[6].copy( - codeBlocks = listOf( - CodeBlock.Variable( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = emptyList(), - selectedSuggestion = null - ), - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = emptyList(), - selectedSuggestion = Suggestion.ConstantString("suggestion") - ) - ) - ) - ) - ) - ) - - initialStates.zip(expectedStates).forEach { (initialState, expectedState) -> - val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.DeleteButtonClicked) - assertEquals(expectedState, state) - assertContainsDeleteButtonClickedAnalyticEvent(actions) - } - } - - @Test - fun `DeleteButtonClicked should set previous code block as active if has code block before deleted`() { - val initialStates = listOf( - stubContentState( - codeBlocks = listOf( - CodeBlock.Blank(isActive = false, suggestions = emptyList()), - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = emptyList(), - selectedSuggestion = null - ) - ) - ) - ) - ), - stubContentState( - codeBlocks = listOf( - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = emptyList(), - selectedSuggestion = null - ) - ) - ), - CodeBlock.Blank(isActive = true, suggestions = emptyList()) - ) - ), - stubContentState( - codeBlocks = listOf( - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = listOf(Suggestion.ConstantString("suggestion")), - selectedSuggestion = Suggestion.ConstantString("suggestion") - ) - ) - ), - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = emptyList(), - selectedSuggestion = null - ) - ) - ) - ) - ), - stubContentState( - codeBlocks = listOf( - CodeBlock.Blank(isActive = false, suggestions = emptyList()), - CodeBlock.Blank(isActive = true, suggestions = emptyList()) - ) - ) - ) - val expectedStates = listOf( - initialStates[0].copy(codeBlocks = listOf(CodeBlock.Blank(isActive = true, suggestions = emptyList()))), - initialStates[1].copy( - codeBlocks = listOf( - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = emptyList(), - selectedSuggestion = null - ) - ) - ) - ) - ), - initialStates[2].copy( - codeBlocks = listOf( - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = listOf(Suggestion.ConstantString("suggestion")), - selectedSuggestion = Suggestion.ConstantString("suggestion") - ) - ) - ) - ) - ), - initialStates[0].copy(codeBlocks = listOf(CodeBlock.Blank(isActive = true, suggestions = emptyList()))), - ) - - initialStates.zip(expectedStates).forEach { (initialState, expectedState) -> - val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.DeleteButtonClicked) - assertEquals(expectedState, state) - assertContainsDeleteButtonClickedAnalyticEvent(actions) - } - } - - @Test - fun `DeleteButtonClicked should not update state if no active code block`() { - val initialState = stubContentState( - codeBlocks = listOf( - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = emptyList(), - selectedSuggestion = null - ) - ) - ) - ) - ) - - val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.DeleteButtonClicked) - - assertEquals(initialState, state) - assertContainsDeleteButtonClickedAnalyticEvent(actions) - } - - @Test - fun `DeleteButtonClicked should replace single Print code block with Blank`() { - val initialState = stubContentState( - codeBlocks = listOf( - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = emptyList(), - selectedSuggestion = null - ) - ) - ) - ) - ) - - val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.DeleteButtonClicked) - - val expectedState = initialState.copy( - codeBlocks = listOf(CodeBlock.Blank(isActive = true, suggestions = listOf(Suggestion.Print))) - ) - - assertEquals(expectedState, state) - assertContainsDeleteButtonClickedAnalyticEvent(actions) - } - - @Test - fun `DeleteButtonClicked should replace single Variable code block with Blank`() { - val initialState = stubContentState( - codeBlocks = listOf( - CodeBlock.Variable( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = emptyList(), - selectedSuggestion = null - ), - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = emptyList(), - selectedSuggestion = null - ) - ) - ) - ) - ) - - val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.DeleteButtonClicked) - - val expectedState = initialState.copy( - codeBlocks = listOf(CodeBlock.Blank(isActive = true, suggestions = listOf(Suggestion.Print))) - ) - - assertEquals(expectedState, state) - assertContainsDeleteButtonClickedAnalyticEvent(actions) - } - - @Test - fun `EnterButtonClicked should not update state if state is not Content`() { - val initialState = StepQuizCodeBlanksFeature.State.Idle - val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.EnterButtonClicked) - - assertEquals(initialState, state) - assertTrue(actions.isEmpty()) - } - - @Test - fun `EnterButtonClicked should log analytic event and not update state if no active code block`() { - val initialState = - stubContentState(codeBlocks = listOf(CodeBlock.Blank(isActive = false, suggestions = emptyList()))) - - val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.EnterButtonClicked) - - assertEquals(initialState, state) - assertContainsEnterButtonClickedAnalyticEvent(actions) - } - - @Test - fun `EnterButtonClicked should log analytic event and add new active Blank block if active code block exists`() { - val initialState = - stubContentState(codeBlocks = listOf(CodeBlock.Blank(isActive = true, suggestions = emptyList()))) - - val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.EnterButtonClicked) - - val expectedState = initialState.copy( - codeBlocks = listOf( - CodeBlock.Blank(isActive = false, suggestions = emptyList()), - CodeBlock.Blank(isActive = true, suggestions = listOf(Suggestion.Print)) - ) - ) - - assertEquals(expectedState, state) - assertContainsEnterButtonClickedAnalyticEvent(actions) - } - - @Test - fun `EnterButtonClicked should add new active Blank block after active code block`() { - val initialState = stubContentState( - codeBlocks = listOf( - CodeBlock.Blank(isActive = true, suggestions = emptyList()), - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = emptyList(), - selectedSuggestion = null - ) - ) - ) - ) - ) - - val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.EnterButtonClicked) - - val expectedState = initialState.copy( - codeBlocks = listOf( - CodeBlock.Blank(isActive = false, suggestions = emptyList()), - CodeBlock.Blank(isActive = true, suggestions = listOf(Suggestion.Print)), - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = emptyList(), - selectedSuggestion = null - ) - ) - ) - ) - ) - - assertEquals(expectedState, state) - assertContainsEnterButtonClickedAnalyticEvent(actions) - } - - @Test - fun `SpaceButtonClicked should not update state if state is not Content`() { - val initialState = StepQuizCodeBlanksFeature.State.Idle - val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.SpaceButtonClicked) - - assertEquals(initialState, state) - assertTrue(actions.isEmpty()) - } - - @Test - fun `SpaceButtonClicked should not update state if active Print block has no active child`() { - val initialState = stubContentState( - codeBlocks = listOf( - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = emptyList(), - selectedSuggestion = Suggestion.ConstantString("suggestion") - ) - ) - ) - ) - ) - - val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.SpaceButtonClicked) - - assertEquals(initialState, state) - assertContainsSpaceButtonClickedAnalyticEvent(actions) - } - - @Test - fun `SpaceButtonClicked should add a new child to active Print code block`() { - val initialState = stubContentState( - codeBlocks = listOf( - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = listOf(Suggestion.ConstantString("suggestion")), - selectedSuggestion = Suggestion.ConstantString("suggestion") - ) - ) - ) - ) - ) - - val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.SpaceButtonClicked) - - val expectedState = initialState.copy( - codeBlocks = listOf( - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = listOf(Suggestion.ConstantString("suggestion")), - selectedSuggestion = Suggestion.ConstantString("suggestion") - ), - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = emptyList(), - selectedSuggestion = null - ) - ) - ) - ) - ) - - assertEquals(expectedState, state) - assertContainsSpaceButtonClickedAnalyticEvent(actions) - } - - @Test - fun `SpaceButtonClicked should add a new child to active Variable code block`() { - val initialState = stubContentState( - codeBlocks = listOf( - CodeBlock.Variable( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = listOf(Suggestion.ConstantString("x")), - selectedSuggestion = Suggestion.ConstantString("x") - ), - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = listOf(Suggestion.ConstantString("suggestion")), - selectedSuggestion = Suggestion.ConstantString("suggestion") - ) - ) - ) - ) - ) - - val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.SpaceButtonClicked) - - val expectedState = initialState.copy( - codeBlocks = listOf( - CodeBlock.Variable( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = listOf(Suggestion.ConstantString("x")), - selectedSuggestion = Suggestion.ConstantString("x") - ), - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = listOf(Suggestion.ConstantString("suggestion")), - selectedSuggestion = Suggestion.ConstantString("suggestion") - ), - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = emptyList(), - selectedSuggestion = null - ) - ) - ) - ) - ) - - assertEquals(expectedState, state) - assertContainsSpaceButtonClickedAnalyticEvent(actions) - } - - @Test - fun `SpaceButtonClicked should add a new child with operations suggestions after closing parentheses`() { - val initialState = stubContentState( - step = Step.stub( - id = 1, - block = Block.stub( - options = Block.Options(codeBlanksOperations = listOf("*", "+")) - ) - ), - codeBlocks = listOf( - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = listOf(Suggestion.ConstantString(")")), - selectedSuggestion = Suggestion.ConstantString(")") - ) - ) - ) - ) - ) - - val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.SpaceButtonClicked) - - val expectedState = initialState.copy( - codeBlocks = listOf( - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = listOf(Suggestion.ConstantString(")")), - selectedSuggestion = Suggestion.ConstantString(")") - ), - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = initialState.codeBlanksOperationsSuggestions, - selectedSuggestion = null - ) - ) - ) - ) - ) - - assertEquals(expectedState, state) - assertContainsSpaceButtonClickedAnalyticEvent(actions) - } - - @Test - fun `Onboarding should be unavailable`() { - val initialState = StepQuizCodeBlanksFeature.State.Idle - val (state, _) = reducer.reduce( - initialState, - StepQuizCodeBlanksFeature.InternalMessage.Initialize(Step.stub(id = 1)) - ) - - assertTrue(state is StepQuizCodeBlanksFeature.State.Content) - assertTrue(state.onboardingState is OnboardingState.Unavailable) - } - - @Test - fun `Onboarding should be available`() { - val initialState = StepQuizCodeBlanksFeature.State.Idle - val (state, _) = reducer.reduce( - initialState, - StepQuizCodeBlanksFeature.InternalMessage.Initialize(Step.stub(id = 47329)) - ) - - assertTrue(state is StepQuizCodeBlanksFeature.State.Content) - assertTrue(state.onboardingState is OnboardingState.HighlightSuggestions) - } - - @Test - fun `Onboarding SuggestionClicked should update onboardingState to HighlightCallToActionButton`() { - val suggestion = Suggestion.ConstantString("suggestion") - val initialState = stubContentState( - codeBlocks = listOf( - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = listOf(suggestion), - selectedSuggestion = null - ) - ) - ) - ), - onboardingState = OnboardingState.HighlightSuggestions - ) - - val message = StepQuizCodeBlanksFeature.Message.SuggestionClicked(suggestion) - val (state, _) = reducer.reduce(initialState, message) - - assertTrue(state is StepQuizCodeBlanksFeature.State.Content) - assertEquals(OnboardingState.HighlightCallToActionButton, state.onboardingState) - } - - private fun assertContainsSuggestionClickedAnalyticEvent(actions: Set) { - assertTrue { - actions.any { - it is StepQuizCodeBlanksFeature.InternalAction.LogAnalyticEvent && - it.analyticEvent is StepQuizCodeBlanksClickedSuggestionHyperskillAnalyticEvent - } - } - } - - private fun assertContainsCodeBlockChildClickedAnalyticEvent(actions: Set) { - assertTrue { - actions.any { - it is StepQuizCodeBlanksFeature.InternalAction.LogAnalyticEvent && - it.analyticEvent is StepQuizCodeBlanksClickedCodeBlockChildHyperskillAnalyticEvent - } - } - } - - private fun assertContainsDeleteButtonClickedAnalyticEvent(actions: Set) { - assertTrue { - actions.any { - it is StepQuizCodeBlanksFeature.InternalAction.LogAnalyticEvent && - it.analyticEvent is StepQuizCodeBlanksClickedDeleteHyperskillAnalyticEvent - } - } - } - - private fun assertContainsEnterButtonClickedAnalyticEvent(actions: Set) { - assertTrue { - actions.any { - it is StepQuizCodeBlanksFeature.InternalAction.LogAnalyticEvent && - it.analyticEvent is StepQuizCodeBlanksClickedEnterHyperskillAnalyticEvent - } - } - } - - private fun assertContainsSpaceButtonClickedAnalyticEvent(actions: Set) { - assertTrue { - actions.any { - it is StepQuizCodeBlanksFeature.InternalAction.LogAnalyticEvent && - it.analyticEvent is StepQuizCodeBlanksClickedSpaceHyperskillAnalyticEvent - } - } - } - - private fun stubContentState( - step: Step = Step.stub(id = 1), - codeBlocks: List, - onboardingState: OnboardingState = OnboardingState.Unavailable - ): StepQuizCodeBlanksFeature.State.Content = - StepQuizCodeBlanksFeature.State.Content( - step = step, - codeBlocks = codeBlocks, - onboardingState = onboardingState - ) -} \ No newline at end of file diff --git a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/StepQuizCodeBlanksViewStateMapperTest.kt b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/StepQuizCodeBlanksViewStateMapperTest.kt deleted file mode 100644 index bbaa7e896..000000000 --- a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/StepQuizCodeBlanksViewStateMapperTest.kt +++ /dev/null @@ -1,596 +0,0 @@ -package org.hyperskill.step_quiz_code_blanks - -import kotlin.test.Test -import kotlin.test.assertEquals -import kotlin.test.assertFalse -import kotlin.test.assertTrue -import org.hyperskill.app.step.domain.model.Step -import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlock -import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlockChild -import org.hyperskill.app.step_quiz_code_blanks.domain.model.Suggestion -import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksFeature -import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksFeature.OnboardingState -import org.hyperskill.app.step_quiz_code_blanks.view.mapper.StepQuizCodeBlanksViewStateMapper -import org.hyperskill.app.step_quiz_code_blanks.view.model.StepQuizCodeBlanksViewState -import org.hyperskill.step.domain.model.stub - -class StepQuizCodeBlanksViewStateMapperTest { - @Test - fun `map should return Idle view state for Idle state`() { - val state = StepQuizCodeBlanksFeature.State.Idle - val viewState = StepQuizCodeBlanksViewStateMapper.map(state) - assertEquals(StepQuizCodeBlanksViewState.Idle, viewState) - } - - @Test - fun `Content with print suggestion and disabled delete button when active code block is Blank`() { - val state = stubState( - codeBlocks = listOf(CodeBlock.Blank(isActive = true, suggestions = listOf(Suggestion.Print))) - ) - val expectedViewState = StepQuizCodeBlanksViewState.Content( - codeBlocks = listOf(StepQuizCodeBlanksViewState.CodeBlockItem.Blank(id = 0, isActive = true)), - suggestions = listOf(Suggestion.Print), - isDeleteButtonEnabled = false, - isSpaceButtonHidden = true - ) - - val actualViewState = StepQuizCodeBlanksViewStateMapper.map(state) - - assertEquals(expectedViewState, actualViewState) - } - - @Test - fun `Content with suggestions and enabled delete button when active code block is Print`() { - val suggestions = listOf( - Suggestion.ConstantString("1"), - Suggestion.ConstantString("2") - ) - val state = stubState( - codeBlocks = listOf( - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = suggestions, - selectedSuggestion = null - ) - ) - ) - ) - ) - val expectedViewState = StepQuizCodeBlanksViewState.Content( - codeBlocks = listOf( - StepQuizCodeBlanksViewState.CodeBlockItem.Print( - id = 0, - children = listOf( - StepQuizCodeBlanksViewState.CodeBlockChildItem( - id = 0, - isActive = true, - value = null - ) - ) - ) - ), - suggestions = suggestions, - isDeleteButtonEnabled = true, - isSpaceButtonHidden = true - ) - - val actualViewState = StepQuizCodeBlanksViewStateMapper.map(state) - - assertEquals(expectedViewState, actualViewState) - } - - @Test - fun `Content with sequence of filled Print and active Blank`() { - val printSuggestions = listOf( - Suggestion.ConstantString("1"), - Suggestion.ConstantString("2") - ) - val state = stubState( - codeBlocks = listOf( - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = printSuggestions, - selectedSuggestion = printSuggestions[0] - ) - ) - ), - CodeBlock.Blank(isActive = true, suggestions = listOf(Suggestion.Print)) - ) - ) - val expectedViewState = StepQuizCodeBlanksViewState.Content( - codeBlocks = listOf( - StepQuizCodeBlanksViewState.CodeBlockItem.Print( - id = 0, - children = listOf( - StepQuizCodeBlanksViewState.CodeBlockChildItem( - id = 0, - isActive = false, - value = printSuggestions[0].text - ) - ) - ), - StepQuizCodeBlanksViewState.CodeBlockItem.Blank(id = 1, isActive = true) - ), - suggestions = listOf(Suggestion.Print), - isDeleteButtonEnabled = true, - isSpaceButtonHidden = true - ) - - val actualViewState = StepQuizCodeBlanksViewStateMapper.map(state) - - assertEquals(expectedViewState, actualViewState) - } - - @Test - fun `Content with sequence of filled Print and active not filled Print`() { - val printSuggestions = listOf( - Suggestion.ConstantString("1"), - Suggestion.ConstantString("2") - ) - val state = stubState( - codeBlocks = listOf( - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = printSuggestions, - selectedSuggestion = printSuggestions[0] - ) - ) - ), - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = printSuggestions, - selectedSuggestion = null - ) - ) - ) - ) - ) - val expectedViewState = StepQuizCodeBlanksViewState.Content( - codeBlocks = listOf( - StepQuizCodeBlanksViewState.CodeBlockItem.Print( - id = 0, - children = listOf( - StepQuizCodeBlanksViewState.CodeBlockChildItem( - id = 0, - isActive = false, - value = printSuggestions[0].text - ) - ) - ), - StepQuizCodeBlanksViewState.CodeBlockItem.Print( - id = 1, - children = listOf( - StepQuizCodeBlanksViewState.CodeBlockChildItem( - id = 0, - isActive = true, - value = null - ) - ) - ) - ), - suggestions = printSuggestions, - isDeleteButtonEnabled = true, - isSpaceButtonHidden = true - ) - - val actualViewState = StepQuizCodeBlanksViewStateMapper.map(state) - - assertEquals(expectedViewState, actualViewState) - } - - @Test - fun `Content with active Variable and disabled delete button`() { - val suggestions = listOf( - Suggestion.ConstantString("1"), - Suggestion.ConstantString("2") - ) - val state = stubState( - codeBlocks = listOf( - CodeBlock.Variable( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = suggestions, - selectedSuggestion = null - ), - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = suggestions, - selectedSuggestion = suggestions[0] - ) - ) - ) - ) - ) - val expectedViewState = StepQuizCodeBlanksViewState.Content( - codeBlocks = listOf( - StepQuizCodeBlanksViewState.CodeBlockItem.Variable( - id = 0, - children = listOf( - StepQuizCodeBlanksViewState.CodeBlockChildItem( - id = 0, - isActive = true, - value = null - ), - StepQuizCodeBlanksViewState.CodeBlockChildItem( - id = 1, - isActive = false, - value = suggestions[0].text - ) - ) - ) - ), - suggestions = suggestions, - isDeleteButtonEnabled = false, - isSpaceButtonHidden = true - ) - - val actualViewState = StepQuizCodeBlanksViewStateMapper.map(state) - - assertEquals(expectedViewState, actualViewState) - } - - @Test - fun `Content with active not filled Variable and enabled delete button`() { - val suggestions = listOf( - Suggestion.ConstantString("1"), - Suggestion.ConstantString("2") - ) - val state = stubState( - codeBlocks = listOf( - CodeBlock.Variable( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = suggestions, - selectedSuggestion = null - ), - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = suggestions, - selectedSuggestion = null - ) - ) - ) - ) - ) - val expectedViewState = StepQuizCodeBlanksViewState.Content( - codeBlocks = listOf( - StepQuizCodeBlanksViewState.CodeBlockItem.Variable( - id = 0, - children = listOf( - StepQuizCodeBlanksViewState.CodeBlockChildItem( - id = 0, - isActive = true, - value = null - ), - StepQuizCodeBlanksViewState.CodeBlockChildItem( - id = 1, - isActive = false, - value = null - ) - ) - ) - ), - suggestions = suggestions, - isDeleteButtonEnabled = true, - isSpaceButtonHidden = true - ) - - val actualViewState = StepQuizCodeBlanksViewStateMapper.map(state) - - assertEquals(expectedViewState, actualViewState) - } - - @Test - fun `Content with active filled Variable and enabled delete button`() { - val suggestions = listOf( - Suggestion.ConstantString("1"), - Suggestion.ConstantString("2") - ) - val state = stubState( - codeBlocks = listOf( - CodeBlock.Variable( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = suggestions, - selectedSuggestion = suggestions[0] - ), - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = suggestions, - selectedSuggestion = suggestions[1] - ) - ) - ) - ) - ) - val expectedViewState = StepQuizCodeBlanksViewState.Content( - codeBlocks = listOf( - StepQuizCodeBlanksViewState.CodeBlockItem.Variable( - id = 0, - children = listOf( - StepQuizCodeBlanksViewState.CodeBlockChildItem( - id = 0, - isActive = true, - value = suggestions[0].text - ), - StepQuizCodeBlanksViewState.CodeBlockChildItem( - id = 1, - isActive = false, - value = suggestions[1].text - ) - ) - ) - ), - suggestions = emptyList(), - isDeleteButtonEnabled = true, - isSpaceButtonHidden = true - ) - - val actualViewState = StepQuizCodeBlanksViewStateMapper.map(state) - - assertEquals(expectedViewState, actualViewState) - } - - @Test - fun `Content with suggestions when active code block is Blank`() { - val suggestions = listOf(Suggestion.Print, Suggestion.Variable) - val state = stubState( - codeBlocks = listOf(CodeBlock.Blank(isActive = true, suggestions = suggestions)) - ) - val expectedViewState = StepQuizCodeBlanksViewState.Content( - codeBlocks = listOf(StepQuizCodeBlanksViewState.CodeBlockItem.Blank(id = 0, isActive = true)), - suggestions = suggestions, - isDeleteButtonEnabled = false, - isSpaceButtonHidden = true - ) - - val actualViewState = StepQuizCodeBlanksViewStateMapper.map(state) - - assertEquals(expectedViewState, actualViewState) - } - - @Test - fun `Content with suggestions when active code block is Print and no selected suggestion`() { - val suggestions = listOf( - Suggestion.ConstantString("1"), - Suggestion.ConstantString("2") - ) - val state = stubState( - codeBlocks = listOf( - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = suggestions, - selectedSuggestion = null - ) - ) - ) - ) - ) - val expectedViewState = StepQuizCodeBlanksViewState.Content( - codeBlocks = listOf( - StepQuizCodeBlanksViewState.CodeBlockItem.Print( - id = 0, - children = listOf( - StepQuizCodeBlanksViewState.CodeBlockChildItem( - id = 0, - isActive = true, - value = null - ) - ) - ) - ), - suggestions = suggestions, - isDeleteButtonEnabled = true, - isSpaceButtonHidden = true - ) - - val actualViewState = StepQuizCodeBlanksViewStateMapper.map(state) - - assertEquals(expectedViewState, actualViewState) - } - - @Test - fun `Content with no suggestions when active code block is Print and has selected suggestion`() { - val suggestions = listOf( - Suggestion.ConstantString("1"), - Suggestion.ConstantString("2") - ) - val state = stubState( - codeBlocks = listOf( - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = suggestions, - selectedSuggestion = suggestions[0] - ) - ) - ) - ) - ) - val expectedViewState = StepQuizCodeBlanksViewState.Content( - codeBlocks = listOf( - StepQuizCodeBlanksViewState.CodeBlockItem.Print( - id = 0, - children = listOf( - StepQuizCodeBlanksViewState.CodeBlockChildItem( - id = 0, - isActive = true, - value = suggestions[0].text - ) - ) - ) - ), - suggestions = emptyList(), - isDeleteButtonEnabled = true, - isSpaceButtonHidden = true - ) - - val actualViewState = StepQuizCodeBlanksViewStateMapper.map(state) - - assertEquals(expectedViewState, actualViewState) - } - - @Test - fun `Content with suggestions when active code block is Variable and active child has no selected suggestion`() { - val suggestions = listOf( - Suggestion.ConstantString("1"), - Suggestion.ConstantString("2") - ) - val state = stubState( - codeBlocks = listOf( - CodeBlock.Variable( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = suggestions, - selectedSuggestion = null - ), - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = suggestions, - selectedSuggestion = null - ) - ) - ) - ) - ) - val expectedViewState = StepQuizCodeBlanksViewState.Content( - codeBlocks = listOf( - StepQuizCodeBlanksViewState.CodeBlockItem.Variable( - id = 0, - children = listOf( - StepQuizCodeBlanksViewState.CodeBlockChildItem( - id = 0, - isActive = true, - value = null - ), - StepQuizCodeBlanksViewState.CodeBlockChildItem( - id = 1, - isActive = false, - value = null - ) - ) - ) - ), - suggestions = suggestions, - isDeleteButtonEnabled = true, - isSpaceButtonHidden = true - ) - - val actualViewState = StepQuizCodeBlanksViewStateMapper.map(state) - - assertEquals(expectedViewState, actualViewState) - } - - @Test - fun `Content with no suggestions when active code block is Variable and active child has selected suggestion`() { - val suggestions = listOf( - Suggestion.ConstantString("1"), - Suggestion.ConstantString("2") - ) - val state = stubState( - codeBlocks = listOf( - CodeBlock.Variable( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = suggestions, - selectedSuggestion = suggestions[0] - ), - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = suggestions, - selectedSuggestion = suggestions[1] - ) - ) - ) - ) - ) - val expectedViewState = StepQuizCodeBlanksViewState.Content( - codeBlocks = listOf( - StepQuizCodeBlanksViewState.CodeBlockItem.Variable( - id = 0, - children = listOf( - StepQuizCodeBlanksViewState.CodeBlockChildItem( - id = 0, - isActive = true, - value = suggestions[0].text - ), - StepQuizCodeBlanksViewState.CodeBlockChildItem( - id = 1, - isActive = false, - value = suggestions[1].text - ) - ) - ) - ), - suggestions = emptyList(), - isDeleteButtonEnabled = true, - isSpaceButtonHidden = true - ) - - val actualViewState = StepQuizCodeBlanksViewStateMapper.map(state) - - assertEquals(expectedViewState, actualViewState) - } - - @Test - fun `Action buttons hidden when onboarding is available`() { - val state = stubState( - codeBlocks = listOf(CodeBlock.Blank(isActive = true, suggestions = emptyList())), - onboardingState = OnboardingState.HighlightSuggestions - ) - val viewState = StepQuizCodeBlanksViewStateMapper.map(state) - - assertTrue(viewState is StepQuizCodeBlanksViewState.Content) - assertTrue(viewState.isActionButtonsHidden) - } - - @Test - fun `Action buttons not hidden when onboarding is unavailable`() { - val state = stubState( - codeBlocks = listOf(CodeBlock.Blank(isActive = true, suggestions = emptyList())), - onboardingState = OnboardingState.Unavailable - ) - val viewState = StepQuizCodeBlanksViewStateMapper.map(state) - - assertTrue(viewState is StepQuizCodeBlanksViewState.Content) - assertFalse(viewState.isActionButtonsHidden) - } - - @Test - fun `Suggestions highlight effect is active when onboardingState is HighlightSuggestions`() { - val state = stubState( - codeBlocks = listOf(CodeBlock.Blank(isActive = true, suggestions = emptyList())), - onboardingState = OnboardingState.HighlightSuggestions - ) - val viewState = StepQuizCodeBlanksViewStateMapper.map(state) - - assertTrue(viewState is StepQuizCodeBlanksViewState.Content) - assertTrue(viewState.isSuggestionsHighlightEffectActive) - } - - private fun stubState( - codeBlocks: List, - onboardingState: OnboardingState = OnboardingState.Unavailable - ): StepQuizCodeBlanksFeature.State.Content = - StepQuizCodeBlanksFeature.State.Content( - step = Step.stub(id = 0), - codeBlocks = codeBlocks, - onboardingState = onboardingState - ) -} \ No newline at end of file diff --git a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/StepQuizCodeBlanksStateExtensionsTest.kt b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksCreateReplyTest.kt similarity index 56% rename from shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/StepQuizCodeBlanksStateExtensionsTest.kt rename to shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksCreateReplyTest.kt index 60fc9f235..a4e9aa148 100644 --- a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/StepQuizCodeBlanksStateExtensionsTest.kt +++ b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksCreateReplyTest.kt @@ -1,60 +1,31 @@ -package org.hyperskill.step_quiz_code_blanks +package org.hyperskill.step_quiz_code_blanks.presentation import kotlin.test.Test import kotlin.test.assertEquals -import kotlin.test.assertFalse -import kotlin.test.assertNull -import kotlin.test.assertTrue import org.hyperskill.app.step.domain.model.Block import org.hyperskill.app.step.domain.model.Step import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlock import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlockChild import org.hyperskill.app.step_quiz_code_blanks.domain.model.Suggestion import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksFeature -import org.hyperskill.app.step_quiz_code_blanks.presentation.activeCodeBlockIndex import org.hyperskill.app.step_quiz_code_blanks.presentation.createReply -import org.hyperskill.app.step_quiz_code_blanks.presentation.isVariableSuggestionsAvailable import org.hyperskill.app.submissions.domain.model.Reply import org.hyperskill.step.domain.model.stub -class StepQuizCodeBlanksStateExtensionsTest { - @Test - fun `activeCodeBlockIndex should return null if no active code block`() { - val state = stubContentState( - codeBlocks = listOf( - CodeBlock.Blank(isActive = false, suggestions = emptyList()), - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = emptyList(), - selectedSuggestion = null - ) - ) - ) - ) - ) - assertNull(state.activeCodeBlockIndex()) +class StepQuizCodeBlanksCreateReplyTest { + companion object { + private const val REPLY_CODE_LANGUAGE = "python3" + private const val REPLY_CODE_PREFIX = "# solved with code blanks\n" } - @Test - fun `activeCodeBlockIndex should return index of the active code block`() { - val state = stubContentState( - codeBlocks = listOf( - CodeBlock.Blank(isActive = false, suggestions = emptyList()), - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = emptyList(), - selectedSuggestion = null - ) - ) - ) + private val step = Step.stub( + id = 1, + block = Block.stub( + options = Block.Options( + codeTemplates = mapOf(REPLY_CODE_LANGUAGE to "# put your python code here") ) ) - assertEquals(1, state.activeCodeBlockIndex()) - } + ) @Test fun `createReply should return Reply with code from code blocks and language from step options`() { @@ -70,24 +41,14 @@ class StepQuizCodeBlanksStateExtensionsTest { ), CodeBlock.Blank(isActive = true, suggestions = emptyList()) ) - val step = Step.stub(id = 1).copy( - block = Block.stub( - options = Block.Options( - codeTemplates = mapOf("python3" to "# put your python code here") - ) - ) - ) - val state = stubContentState( - step = step, - codeBlocks = codeBlocks - ) + val state = StepQuizCodeBlanksFeature.State.Content.stub(step = step, codeBlocks = codeBlocks) val expectedReply = Reply.code( code = buildString { - append("# solved with code blanks\n") + append(REPLY_CODE_PREFIX) append("print(\"test\")\n") }, - language = "python3" + language = REPLY_CODE_LANGUAGE ) assertEquals(expectedReply, state.createReply()) @@ -120,24 +81,14 @@ class StepQuizCodeBlanksStateExtensionsTest { ) ), ) - val step = Step.stub(id = 1).copy( - block = Block.stub( - options = Block.Options( - codeTemplates = mapOf("python3" to "# put your python code here") - ) - ) - ) - val state = stubContentState( - step = step, - codeBlocks = codeBlocks - ) + val state = StepQuizCodeBlanksFeature.State.Content.stub(step = step, codeBlocks = codeBlocks) val expectedReply = Reply.code( code = buildString { - append("# solved with code blanks\n") + append(REPLY_CODE_PREFIX) append("a = 1\nprint(a)") }, - language = "python3" + language = REPLY_CODE_LANGUAGE ) assertEquals(expectedReply, state.createReply()) @@ -248,27 +199,17 @@ class StepQuizCodeBlanksStateExtensionsTest { ) ) ) - val step = Step.stub(id = 1).copy( - block = Block.stub( - options = Block.Options( - codeTemplates = mapOf("python3" to "# put your python code here") - ) - ) - ) - val state = stubContentState( - step = step, - codeBlocks = codeBlocks - ) + val state = StepQuizCodeBlanksFeature.State.Content.stub(step = step, codeBlocks = codeBlocks) val expectedReply = Reply.code( code = buildString { - append("# solved with code blanks\n") + append(REPLY_CODE_PREFIX) append("x = 1000\n") append("r = 5\n") append("y = 10\n") append("print(x * (1 + r / 100) ** y)") }, - language = "python3" + language = REPLY_CODE_LANGUAGE ) assertEquals(expectedReply, state.createReply()) @@ -393,69 +334,253 @@ class StepQuizCodeBlanksStateExtensionsTest { ) ) ) - val step = Step.stub(id = 1).copy( - block = Block.stub( - options = Block.Options( - codeTemplates = mapOf("python3" to "# put your python code here") - ) - ) - ) - val state = stubContentState( - step = step, - codeBlocks = codeBlocks - ) + val state = StepQuizCodeBlanksFeature.State.Content.stub(step = step, codeBlocks = codeBlocks) val expectedReply = Reply.code( code = buildString { - append("# solved with code blanks\n") + append(REPLY_CODE_PREFIX) append("x = 1000\n") append("r = 5\n") append("y = 10\n") append("a = x * (1 + r / 100) ** y\n") append("print(a)") }, - language = "python3" + language = REPLY_CODE_LANGUAGE ) assertEquals(expectedReply, state.createReply()) } @Test - fun `isVariableSuggestionsAvailable should return true if variable suggestions are available`() { - val step = Step.stub( - id = 1, - block = Block.stub(options = Block.Options(codeBlanksVariables = listOf("a", "b"))) + fun `createReply should return correct Reply with single IfStatement`() { + val codeBlocks = listOf( + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString("a") + ), + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString("33") + ) + ) + ), + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString("b") + ), + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString("200") + ) + ) + ), + CodeBlock.IfStatement( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString("b") + ), + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString(">") + ), + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString("a") + ) + ) + ), + CodeBlock.Print( + indentLevel = 1, + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString("\"b is greater than a\"") + ) + ) + ) ) - val state = stubContentState( - step = step, - codeBlocks = emptyList() + val state = StepQuizCodeBlanksFeature.State.Content.stub(step = step, codeBlocks = codeBlocks) + + val expectedReply = Reply.code( + code = buildString { + append(REPLY_CODE_PREFIX) + append("a = 33\n") + append("b = 200\n") + append("if b > a:\n") + append("\tprint(\"b is greater than a\")") + }, + language = REPLY_CODE_LANGUAGE ) - assertTrue(state.isVariableSuggestionsAvailable) + assertEquals(expectedReply, state.createReply()) } @Test - fun `isVariableSuggestionsAvailable should return false if variable suggestions are not available`() { - listOf(null, emptyList()).forEach { codeBlanksVariables -> - val step = Step.stub( - id = 1, - block = Block.stub(options = Block.Options(codeBlanksVariables = codeBlanksVariables)) - ) - val state = stubContentState( - step = step, - codeBlocks = emptyList() + fun `createReply should return correct Reply with multiple IfStatement and indentation level of 2`() { + val codeBlocks = listOf( + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString("x") + ), + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString("10") + ) + ) + ), + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString("y") + ), + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString("5") + ) + ) + ), + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString("z") + ), + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString("15") + ) + ) + ), + CodeBlock.IfStatement( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString("x") + ), + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString(">") + ), + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString("y") + ) + ) + ), + CodeBlock.Print( + indentLevel = 1, + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString("\"x is greater than y\"") + ) + ) + ), + CodeBlock.IfStatement( + indentLevel = 1, + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString("z") + ), + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString(">") + ), + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString("x") + ) + ) + ), + CodeBlock.Print( + indentLevel = 2, + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString("\"z is greater than x\"") + ) + ) + ), + CodeBlock.IfStatement( + indentLevel = 1, + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString("z") + ), + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString("<") + ), + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString("x") + ) + ) + ), + CodeBlock.Print( + indentLevel = 2, + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString("\"z is less than x\"") + ) + ) ) + ) + val state = StepQuizCodeBlanksFeature.State.Content.stub(step = step, codeBlocks = codeBlocks) - assertFalse(state.isVariableSuggestionsAvailable) - } - } - - private fun stubContentState( - step: Step = Step.stub(id = 1), - codeBlocks: List - ): StepQuizCodeBlanksFeature.State.Content = - StepQuizCodeBlanksFeature.State.Content( - step = step, - codeBlocks = codeBlocks + val expectedReply = Reply.code( + code = buildString { + append(REPLY_CODE_PREFIX) + append("x = 10\n") + append("y = 5\n") + append("z = 15\n") + append("if x > y:\n") + append("\tprint(\"x is greater than y\")\n") + append("\tif z > x:\n") + append("\t\tprint(\"z is greater than x\")\n") + append("\tif z < x:\n") + append("\t\tprint(\"z is less than x\")") + }, + language = REPLY_CODE_LANGUAGE ) + + assertEquals(expectedReply, state.createReply()) + } } \ No newline at end of file diff --git a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksFeatureStateStub.kt b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksFeatureStateStub.kt new file mode 100644 index 000000000..20feff2f7 --- /dev/null +++ b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksFeatureStateStub.kt @@ -0,0 +1,18 @@ +package org.hyperskill.step_quiz_code_blanks.presentation + +import org.hyperskill.app.step.domain.model.Step +import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlock +import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksFeature +import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksFeature.OnboardingState +import org.hyperskill.step.domain.model.stub + +fun StepQuizCodeBlanksFeature.State.Content.Companion.stub( + step: Step = Step.stub(id = 1), + codeBlocks: List = emptyList(), + onboardingState: OnboardingState = OnboardingState.Unavailable +): StepQuizCodeBlanksFeature.State.Content = + StepQuizCodeBlanksFeature.State.Content( + step = step, + codeBlocks = codeBlocks, + onboardingState = onboardingState + ) \ No newline at end of file diff --git a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerCodeBlockChildClickedTest.kt b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerCodeBlockChildClickedTest.kt new file mode 100644 index 000000000..feea44ebf --- /dev/null +++ b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerCodeBlockChildClickedTest.kt @@ -0,0 +1,164 @@ +package org.hyperskill.step_quiz_code_blanks.presentation + +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertTrue +import org.hyperskill.app.step.domain.model.StepRoute +import org.hyperskill.app.step_quiz_code_blanks.domain.analytic.StepQuizCodeBlanksClickedCodeBlockChildHyperskillAnalyticEvent +import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlock +import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlockChild +import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksFeature +import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksReducer +import org.hyperskill.app.step_quiz_code_blanks.view.model.StepQuizCodeBlanksViewState + +class StepQuizCodeBlanksReducerCodeBlockChildClickedTest { + private val reducer = StepQuizCodeBlanksReducer(StepRoute.Learn.Step(1, null)) + + @Test + fun `CodeBlockChildClicked should not update state if state is not Content`() { + val initialState = StepQuizCodeBlanksFeature.State.Idle + val message = StepQuizCodeBlanksFeature.Message.CodeBlockChildClicked( + codeBlockItem = StepQuizCodeBlanksViewState.CodeBlockItem.Variable(id = 0, children = emptyList()), + codeBlockChildItem = StepQuizCodeBlanksViewState.CodeBlockChildItem(id = 0, isActive = false, value = null) + ) + val (state, actions) = reducer.reduce(initialState, message) + + assertEquals(initialState, state) + assertTrue(actions.isEmpty()) + } + + @Test + fun `CodeBlockChildClicked should not update state if target code block is not found`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + ) + + val message = StepQuizCodeBlanksFeature.Message.CodeBlockChildClicked( + codeBlockItem = StepQuizCodeBlanksViewState.CodeBlockItem.Variable(id = 1, children = emptyList()), + codeBlockChildItem = StepQuizCodeBlanksViewState.CodeBlockChildItem(id = 0, isActive = false, value = null) + ) + val (state, actions) = reducer.reduce(initialState, message) + + assertEquals(initialState, state) + assertContainsCodeBlockChildClickedAnalyticEvent(actions) + } + + @Test + fun `CodeBlockChildClicked should update state to activate the clicked Variable child`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = null + ), + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + ) + + val message = StepQuizCodeBlanksFeature.Message.CodeBlockChildClicked( + codeBlockItem = StepQuizCodeBlanksViewState.CodeBlockItem.Variable(id = 0, children = emptyList()), + codeBlockChildItem = StepQuizCodeBlanksViewState.CodeBlockChildItem(id = 0, isActive = false, value = null) + ) + val (state, actions) = reducer.reduce(initialState, message) + + val expectedState = initialState.copy( + codeBlocks = listOf( + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = null + ), + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + ) + + assertEquals(expectedState, state) + assertContainsCodeBlockChildClickedAnalyticEvent(actions) + } + + @Test + fun `CodeBlockChildClicked should update state to activate the clicked Print child`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = null + ), + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + ) + + val message = StepQuizCodeBlanksFeature.Message.CodeBlockChildClicked( + codeBlockItem = StepQuizCodeBlanksViewState.CodeBlockItem.Print(id = 0, children = emptyList()), + codeBlockChildItem = StepQuizCodeBlanksViewState.CodeBlockChildItem(id = 0, isActive = false, value = null) + ) + val (state, actions) = reducer.reduce(initialState, message) + + val expectedState = initialState.copy( + codeBlocks = listOf( + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = null + ), + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + ) + + assertEquals(expectedState, state) + assertContainsCodeBlockChildClickedAnalyticEvent(actions) + } + + private fun assertContainsCodeBlockChildClickedAnalyticEvent(actions: Set) { + assertTrue { + actions.any { + it is StepQuizCodeBlanksFeature.InternalAction.LogAnalyticEvent && + it.analyticEvent is StepQuizCodeBlanksClickedCodeBlockChildHyperskillAnalyticEvent + } + } + } +} \ No newline at end of file diff --git a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerCodeBlockClickedTest.kt b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerCodeBlockClickedTest.kt new file mode 100644 index 000000000..7a88b7b36 --- /dev/null +++ b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerCodeBlockClickedTest.kt @@ -0,0 +1,129 @@ +package org.hyperskill.step_quiz_code_blanks.presentation + +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertTrue +import org.hyperskill.app.step.domain.model.StepRoute +import org.hyperskill.app.step_quiz_code_blanks.domain.analytic.StepQuizCodeBlanksClickedCodeBlockHyperskillAnalyticEvent +import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlock +import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlockChild +import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksFeature +import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksReducer +import org.hyperskill.app.step_quiz_code_blanks.view.model.StepQuizCodeBlanksViewState + +class StepQuizCodeBlanksReducerCodeBlockClickedTest { + private val reducer = StepQuizCodeBlanksReducer(StepRoute.Learn.Step(1, null)) + + @Test + fun `CodeBlockClicked should not update state if state is not Content`() { + val initialState = StepQuizCodeBlanksFeature.State.Idle + val message = StepQuizCodeBlanksFeature.Message.CodeBlockClicked( + codeBlockItem = StepQuizCodeBlanksViewState.CodeBlockItem.Blank(id = 0, isActive = true) + ) + val (state, actions) = reducer.reduce(initialState, message) + + assertEquals(initialState, state) + assertTrue(actions.isEmpty()) + } + + @Test + fun `CodeBlockClicked should update active Print code block`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Blank(isActive = false, suggestions = emptyList()), + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, suggestions = emptyList(), selectedSuggestion = null + ) + ) + ) + ) + ) + + val message = StepQuizCodeBlanksFeature.Message.CodeBlockClicked( + codeBlockItem = StepQuizCodeBlanksViewState.CodeBlockItem.Blank(id = 0, isActive = false) + ) + val (state, actions) = reducer.reduce(initialState, message) + + val expectedState = initialState.copy( + codeBlocks = listOf( + CodeBlock.Blank(isActive = true, suggestions = emptyList()), + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, suggestions = emptyList(), selectedSuggestion = null + ) + ) + ) + ) + ) + + assertEquals(expectedState, state) + assertContainsCodeBlockClickedAnalyticEvent(actions) + } + + @Test + fun `CodeBlockClicked should update active Variable code block`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, suggestions = emptyList(), selectedSuggestion = null + ) + ) + ), + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, suggestions = emptyList(), selectedSuggestion = null + ), + CodeBlockChild.SelectSuggestion( + isActive = false, suggestions = emptyList(), selectedSuggestion = null + ) + ) + ) + ) + ) + + val message = StepQuizCodeBlanksFeature.Message.CodeBlockClicked( + codeBlockItem = StepQuizCodeBlanksViewState.CodeBlockItem.Blank(id = 0, isActive = false) + ) + val (state, actions) = reducer.reduce(initialState, message) + + val expectedState = initialState.copy( + codeBlocks = listOf( + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, suggestions = emptyList(), selectedSuggestion = null + ) + ) + ), + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, suggestions = emptyList(), selectedSuggestion = null + ), + CodeBlockChild.SelectSuggestion( + isActive = false, suggestions = emptyList(), selectedSuggestion = null + ) + ) + ) + ) + ) + + assertEquals(expectedState, state) + assertContainsCodeBlockClickedAnalyticEvent(actions) + } + + private fun assertContainsCodeBlockClickedAnalyticEvent(actions: Set) { + assertTrue { + actions.any { + it is StepQuizCodeBlanksFeature.InternalAction.LogAnalyticEvent && + it.analyticEvent is StepQuizCodeBlanksClickedCodeBlockHyperskillAnalyticEvent + } + } + } +} \ No newline at end of file diff --git a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerDecreaseIndentLevelButtonClickedTest.kt b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerDecreaseIndentLevelButtonClickedTest.kt new file mode 100644 index 000000000..63c0f39d7 --- /dev/null +++ b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerDecreaseIndentLevelButtonClickedTest.kt @@ -0,0 +1,97 @@ +package org.hyperskill.step_quiz_code_blanks.presentation + +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertTrue +import org.hyperskill.app.step.domain.model.StepRoute +import org.hyperskill.app.step_quiz_code_blanks.domain.analytic.StepQuizCodeBlanksClickedDecreaseIndentLevelHyperskillAnalyticEvent +import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlock +import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksFeature +import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksReducer + +class StepQuizCodeBlanksReducerDecreaseIndentLevelButtonClickedTest { + private val reducer = StepQuizCodeBlanksReducer(StepRoute.Learn.Step(1, null)) + + @Test + fun `DecreaseIndentLevelButtonClicked should not update state if no active code block`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf(CodeBlock.Blank(isActive = false, suggestions = emptyList())) + ) + + val (state, actions) = reducer.reduce( + initialState, + StepQuizCodeBlanksFeature.Message.DecreaseIndentLevelButtonClicked + ) + + assertEquals(initialState, state) + assertContainsDecreaseIndentLevelAnalyticEvent(actions) + } + + @Test + fun `DecreaseIndentLevelButtonClicked should not decrease indent level below 1`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf(CodeBlock.Blank(isActive = true, indentLevel = 0, suggestions = emptyList())) + ) + + val (state, actions) = reducer.reduce( + initialState, + StepQuizCodeBlanksFeature.Message.DecreaseIndentLevelButtonClicked + ) + + assertEquals(initialState, state) + assertContainsDecreaseIndentLevelAnalyticEvent(actions) + } + + @Test + fun `DecreaseIndentLevelButtonClicked should decrease indent level by 1`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf(CodeBlock.Blank(isActive = true, indentLevel = 1, suggestions = emptyList())) + ) + + val (state, actions) = reducer.reduce( + initialState, + StepQuizCodeBlanksFeature.Message.DecreaseIndentLevelButtonClicked + ) + + val expectedState = initialState.copy( + codeBlocks = listOf(CodeBlock.Blank(isActive = true, indentLevel = 0, suggestions = emptyList())) + ) + + assertEquals(expectedState, state) + assertContainsDecreaseIndentLevelAnalyticEvent(actions) + } + + @Test + fun `DecreaseIndentLevelButtonClicked should decrease indent level for active code block only`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Blank(isActive = false, indentLevel = 3, suggestions = emptyList()), + CodeBlock.Blank(isActive = true, indentLevel = 2, suggestions = emptyList()) + ) + ) + + val (state, actions) = reducer.reduce( + initialState, + StepQuizCodeBlanksFeature.Message.DecreaseIndentLevelButtonClicked + ) + + val expectedState = initialState.copy( + codeBlocks = listOf( + CodeBlock.Blank(isActive = false, indentLevel = 3, suggestions = emptyList()), + CodeBlock.Blank(isActive = true, indentLevel = 1, suggestions = emptyList()) + ) + ) + + assertEquals(expectedState, state) + assertContainsDecreaseIndentLevelAnalyticEvent(actions) + } + + private fun assertContainsDecreaseIndentLevelAnalyticEvent(actions: Set) { + assertTrue { + actions.any { + it is StepQuizCodeBlanksFeature.InternalAction.LogAnalyticEvent && + it.analyticEvent is StepQuizCodeBlanksClickedDecreaseIndentLevelHyperskillAnalyticEvent + } + } + } +} \ No newline at end of file diff --git a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerDeleteButtonClickedTest.kt b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerDeleteButtonClickedTest.kt new file mode 100644 index 000000000..2ab0d37fe --- /dev/null +++ b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerDeleteButtonClickedTest.kt @@ -0,0 +1,470 @@ +package org.hyperskill.step_quiz_code_blanks.presentation + +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertTrue +import org.hyperskill.app.step.domain.model.StepRoute +import org.hyperskill.app.step_quiz_code_blanks.domain.analytic.StepQuizCodeBlanksClickedDeleteHyperskillAnalyticEvent +import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlock +import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlockChild +import org.hyperskill.app.step_quiz_code_blanks.domain.model.Suggestion +import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksFeature +import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksReducer + +class StepQuizCodeBlanksReducerDeleteButtonClickedTest { + private val reducer = StepQuizCodeBlanksReducer(StepRoute.Learn.Step(1, null)) + + @Test + fun `DeleteButtonClicked should not update state if state is not Content`() { + val initialState = StepQuizCodeBlanksFeature.State.Idle + val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.DeleteButtonClicked) + + assertEquals(initialState, state) + assertTrue(actions.isEmpty()) + } + + @Test + fun `DeleteButtonClicked should not update state if no active code block`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + ) + + val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.DeleteButtonClicked) + + assertEquals(initialState, state) + assertContainsDeleteButtonClickedAnalyticEvent(actions) + } + + @Test + fun `DeleteButtonClicked should not update state if active code block is Blank and single`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Blank( + isActive = true, + suggestions = emptyList() + ) + ) + ) + + val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.DeleteButtonClicked) + + assertEquals(initialState, state) + assertContainsDeleteButtonClickedAnalyticEvent(actions) + } + + @Test + fun `DeleteButtonClicked should clear suggestion if active Print code block has selected suggestion`() { + val suggestion = Suggestion.ConstantString("suggestion") + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = listOf(suggestion), + selectedSuggestion = suggestion + ) + ) + ) + ) + ) + + val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.DeleteButtonClicked) + + val expectedState = initialState.copy( + codeBlocks = listOf( + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = listOf(suggestion), + selectedSuggestion = null + ) + ) + ) + ) + ) + + assertEquals(expectedState, state) + assertContainsDeleteButtonClickedAnalyticEvent(actions) + } + + @Test + fun `DeleteButtonClicked should set next code block as active if no code block before deleted`() { + val initialStates = listOf( + StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ), + CodeBlock.Blank(isActive = false, suggestions = emptyList()) + ) + ), + StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Blank(isActive = true, suggestions = emptyList()), + CodeBlock.Blank(isActive = false, suggestions = emptyList()) + ) + ), + StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Blank(isActive = true, suggestions = emptyList()), + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + ), + StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ), + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + ), + StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = null + ), + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ), + CodeBlock.Blank(isActive = false, suggestions = emptyList()) + ) + ), + StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Blank(isActive = true, suggestions = emptyList()), + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = null + ), + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + ), + StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = null + ), + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ), + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = null + ), + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString("suggestion") + ) + ) + ) + ) + ) + ) + val expectedStates = listOf( + initialStates[0].copy(codeBlocks = listOf(CodeBlock.Blank(isActive = true, suggestions = emptyList()))), + initialStates[1].copy(codeBlocks = listOf(CodeBlock.Blank(isActive = true, suggestions = emptyList()))), + initialStates[2].copy( + codeBlocks = listOf( + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + ), + initialStates[3].copy( + codeBlocks = listOf( + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + ), + initialStates[4].copy(codeBlocks = listOf(CodeBlock.Blank(isActive = true, suggestions = emptyList()))), + initialStates[5].copy( + codeBlocks = listOf( + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = null + ), + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + ), + initialStates[6].copy( + codeBlocks = listOf( + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = null + ), + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString("suggestion") + ) + ) + ) + ) + ) + ) + + initialStates.zip(expectedStates).forEach { (initialState, expectedState) -> + val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.DeleteButtonClicked) + assertEquals(expectedState, state) + assertContainsDeleteButtonClickedAnalyticEvent(actions) + } + } + + @Test + fun `DeleteButtonClicked should set previous code block as active if has code block before deleted`() { + val initialStates = listOf( + StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Blank(isActive = false, suggestions = emptyList()), + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + ), + StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ), + CodeBlock.Blank(isActive = true, suggestions = emptyList()) + ) + ), + StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = listOf(Suggestion.ConstantString("suggestion")), + selectedSuggestion = Suggestion.ConstantString("suggestion") + ) + ) + ), + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + ), + StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Blank(isActive = false, suggestions = emptyList()), + CodeBlock.Blank(isActive = true, suggestions = emptyList()) + ) + ) + ) + val expectedStates = listOf( + initialStates[0].copy(codeBlocks = listOf(CodeBlock.Blank(isActive = true, suggestions = emptyList()))), + initialStates[1].copy( + codeBlocks = listOf( + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + ), + initialStates[2].copy( + codeBlocks = listOf( + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = listOf(Suggestion.ConstantString("suggestion")), + selectedSuggestion = Suggestion.ConstantString("suggestion") + ) + ) + ) + ) + ), + initialStates[0].copy(codeBlocks = listOf(CodeBlock.Blank(isActive = true, suggestions = emptyList()))), + ) + + initialStates.zip(expectedStates).forEach { (initialState, expectedState) -> + val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.DeleteButtonClicked) + assertEquals(expectedState, state) + assertContainsDeleteButtonClickedAnalyticEvent(actions) + } + } + + @Test + fun `DeleteButtonClicked should replace single Print code block with Blank`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + ) + + val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.DeleteButtonClicked) + + val expectedState = initialState.copy( + codeBlocks = listOf(CodeBlock.Blank(isActive = true, suggestions = listOf(Suggestion.Print))) + ) + + assertEquals(expectedState, state) + assertContainsDeleteButtonClickedAnalyticEvent(actions) + } + + @Test + fun `DeleteButtonClicked should replace single Variable code block with Blank`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = null + ), + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + ) + + val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.DeleteButtonClicked) + + val expectedState = initialState.copy( + codeBlocks = listOf(CodeBlock.Blank(isActive = true, suggestions = listOf(Suggestion.Print))) + ) + + assertEquals(expectedState, state) + assertContainsDeleteButtonClickedAnalyticEvent(actions) + } + + private fun assertContainsDeleteButtonClickedAnalyticEvent(actions: Set) { + assertTrue { + actions.any { + it is StepQuizCodeBlanksFeature.InternalAction.LogAnalyticEvent && + it.analyticEvent is StepQuizCodeBlanksClickedDeleteHyperskillAnalyticEvent + } + } + } +} \ No newline at end of file diff --git a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerEnterButtonClickedTest.kt b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerEnterButtonClickedTest.kt new file mode 100644 index 000000000..1f52b1479 --- /dev/null +++ b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerEnterButtonClickedTest.kt @@ -0,0 +1,114 @@ +package org.hyperskill.step_quiz_code_blanks.presentation + +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertTrue +import org.hyperskill.app.step.domain.model.StepRoute +import org.hyperskill.app.step_quiz_code_blanks.domain.analytic.StepQuizCodeBlanksClickedEnterHyperskillAnalyticEvent +import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlock +import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlockChild +import org.hyperskill.app.step_quiz_code_blanks.domain.model.Suggestion +import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksFeature +import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksReducer + +class StepQuizCodeBlanksReducerEnterButtonClickedTest { + private val reducer = StepQuizCodeBlanksReducer(StepRoute.Learn.Step(1, null)) + + @Test + fun `EnterButtonClicked should not update state if state is not Content`() { + val initialState = StepQuizCodeBlanksFeature.State.Idle + val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.EnterButtonClicked) + + assertEquals(initialState, state) + assertTrue(actions.isEmpty()) + } + + @Test + fun `EnterButtonClicked should log analytic event and not update state if no active code block`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Blank( + isActive = false, + suggestions = emptyList() + ) + ) + ) + + val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.EnterButtonClicked) + + assertEquals(initialState, state) + assertContainsEnterButtonClickedAnalyticEvent(actions) + } + + @Test + fun `EnterButtonClicked should log analytic event and add new active Blank block if active code block exists`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Blank( + isActive = true, + suggestions = emptyList() + ) + ) + ) + + val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.EnterButtonClicked) + + val expectedState = initialState.copy( + codeBlocks = listOf( + CodeBlock.Blank(isActive = false, suggestions = emptyList()), + CodeBlock.Blank(isActive = true, suggestions = listOf(Suggestion.Print)) + ) + ) + + assertEquals(expectedState, state) + assertContainsEnterButtonClickedAnalyticEvent(actions) + } + + @Test + fun `EnterButtonClicked should add new active Blank block after active code block`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Blank(isActive = true, suggestions = emptyList()), + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + ) + + val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.EnterButtonClicked) + + val expectedState = initialState.copy( + codeBlocks = listOf( + CodeBlock.Blank(isActive = false, suggestions = emptyList()), + CodeBlock.Blank(isActive = true, suggestions = listOf(Suggestion.Print)), + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + ) + + assertEquals(expectedState, state) + assertContainsEnterButtonClickedAnalyticEvent(actions) + } + + private fun assertContainsEnterButtonClickedAnalyticEvent(actions: Set) { + assertTrue { + actions.any { + it is StepQuizCodeBlanksFeature.InternalAction.LogAnalyticEvent && + it.analyticEvent is StepQuizCodeBlanksClickedEnterHyperskillAnalyticEvent + } + } + } +} \ No newline at end of file diff --git a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerInitializeTest.kt b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerInitializeTest.kt new file mode 100644 index 000000000..ef8ad0c50 --- /dev/null +++ b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerInitializeTest.kt @@ -0,0 +1,59 @@ +package org.hyperskill.step_quiz_code_blanks.presentation + +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertTrue +import org.hyperskill.app.step.domain.model.Block +import org.hyperskill.app.step.domain.model.Step +import org.hyperskill.app.step.domain.model.StepRoute +import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlock +import org.hyperskill.app.step_quiz_code_blanks.domain.model.Suggestion +import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksFeature +import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksReducer +import org.hyperskill.step.domain.model.stub + +class StepQuizCodeBlanksReducerInitializeTest { + private val reducer = StepQuizCodeBlanksReducer(StepRoute.Learn.Step(1, null)) + + @Test + fun `Initialize should return Content state with active Blank and Print and Variable and If suggestions`() { + val step = Step.stub( + id = 1, + block = Block.stub(options = Block.Options(codeBlanksVariables = listOf("a", "b"))) + ) + + val message = StepQuizCodeBlanksFeature.InternalMessage.Initialize(step) + val (state, actions) = reducer.reduce(StepQuizCodeBlanksFeature.State.Idle, message) + + val expectedState = StepQuizCodeBlanksFeature.State.Content( + step = step, + codeBlocks = listOf( + CodeBlock.Blank( + isActive = true, + suggestions = listOf(Suggestion.Print, Suggestion.Variable, Suggestion.IfStatement) + ) + ) + ) + + assertTrue(state is StepQuizCodeBlanksFeature.State.Content) + assertEquals(expectedState.codeBlocks, state.codeBlocks) + assertTrue(actions.isEmpty()) + } + + @Test + fun `Initialize should return Content state with active Blank and Print suggestion`() { + val step = Step.stub(id = 1) + + val message = StepQuizCodeBlanksFeature.InternalMessage.Initialize(step) + val (state, actions) = reducer.reduce(StepQuizCodeBlanksFeature.State.Idle, message) + + val expectedState = StepQuizCodeBlanksFeature.State.Content( + step = step, + codeBlocks = listOf(CodeBlock.Blank(isActive = true, suggestions = listOf(Suggestion.Print))) + ) + + assertTrue(state is StepQuizCodeBlanksFeature.State.Content) + assertEquals(expectedState.codeBlocks, state.codeBlocks) + assertTrue(actions.isEmpty()) + } +} \ No newline at end of file diff --git a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerOnboardingTest.kt b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerOnboardingTest.kt new file mode 100644 index 000000000..e6f4e5daf --- /dev/null +++ b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerOnboardingTest.kt @@ -0,0 +1,67 @@ +package org.hyperskill.step_quiz_code_blanks.presentation + +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertTrue +import org.hyperskill.app.step.domain.model.Step +import org.hyperskill.app.step.domain.model.StepRoute +import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlock +import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlockChild +import org.hyperskill.app.step_quiz_code_blanks.domain.model.Suggestion +import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksFeature +import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksFeature.OnboardingState +import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksReducer +import org.hyperskill.step.domain.model.stub + +class StepQuizCodeBlanksReducerOnboardingTest { + private val reducer = StepQuizCodeBlanksReducer(StepRoute.Learn.Step(1, null)) + + @Test + fun `Onboarding should be unavailable`() { + val initialState = StepQuizCodeBlanksFeature.State.Idle + val (state, _) = reducer.reduce( + initialState, + StepQuizCodeBlanksFeature.InternalMessage.Initialize(Step.stub(id = 1)) + ) + + assertTrue(state is StepQuizCodeBlanksFeature.State.Content) + assertTrue(state.onboardingState is OnboardingState.Unavailable) + } + + @Test + fun `Onboarding should be available`() { + val initialState = StepQuizCodeBlanksFeature.State.Idle + val (state, _) = reducer.reduce( + initialState, + StepQuizCodeBlanksFeature.InternalMessage.Initialize(Step.stub(id = 47329)) + ) + + assertTrue(state is StepQuizCodeBlanksFeature.State.Content) + assertTrue(state.onboardingState is OnboardingState.HighlightSuggestions) + } + + @Test + fun `Onboarding SuggestionClicked should update onboardingState to HighlightCallToActionButton`() { + val suggestion = Suggestion.ConstantString("suggestion") + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = listOf(suggestion), + selectedSuggestion = null + ) + ) + ) + ), + onboardingState = OnboardingState.HighlightSuggestions + ) + + val message = StepQuizCodeBlanksFeature.Message.SuggestionClicked(suggestion) + val (state, _) = reducer.reduce(initialState, message) + + assertTrue(state is StepQuizCodeBlanksFeature.State.Content) + assertEquals(OnboardingState.HighlightCallToActionButton, state.onboardingState) + } +} \ No newline at end of file diff --git a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerSpaceButtonClickedTest.kt b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerSpaceButtonClickedTest.kt new file mode 100644 index 000000000..b1295d945 --- /dev/null +++ b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerSpaceButtonClickedTest.kt @@ -0,0 +1,198 @@ +package org.hyperskill.step_quiz_code_blanks.presentation + +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertTrue +import org.hyperskill.app.step.domain.model.Block +import org.hyperskill.app.step.domain.model.Step +import org.hyperskill.app.step.domain.model.StepRoute +import org.hyperskill.app.step_quiz_code_blanks.domain.analytic.StepQuizCodeBlanksClickedSpaceHyperskillAnalyticEvent +import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlock +import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlockChild +import org.hyperskill.app.step_quiz_code_blanks.domain.model.Suggestion +import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksFeature +import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksReducer +import org.hyperskill.step.domain.model.stub + +class StepQuizCodeBlanksReducerSpaceButtonClickedTest { + private val reducer = StepQuizCodeBlanksReducer(StepRoute.Learn.Step(1, null)) + + @Test + fun `SpaceButtonClicked should not update state if state is not Content`() { + val initialState = StepQuizCodeBlanksFeature.State.Idle + val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.SpaceButtonClicked) + + assertEquals(initialState, state) + assertTrue(actions.isEmpty()) + } + + @Test + fun `SpaceButtonClicked should not update state if active Print block has no active child`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString("suggestion") + ) + ) + ) + ) + ) + + val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.SpaceButtonClicked) + + assertEquals(initialState, state) + assertContainsSpaceButtonClickedAnalyticEvent(actions) + } + + @Test + fun `SpaceButtonClicked should add a new child to active Print code block`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = listOf(Suggestion.ConstantString("suggestion")), + selectedSuggestion = Suggestion.ConstantString("suggestion") + ) + ) + ) + ) + ) + + val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.SpaceButtonClicked) + + val expectedState = initialState.copy( + codeBlocks = listOf( + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = listOf(Suggestion.ConstantString("suggestion")), + selectedSuggestion = Suggestion.ConstantString("suggestion") + ), + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + ) + + assertEquals(expectedState, state) + assertContainsSpaceButtonClickedAnalyticEvent(actions) + } + + @Test + fun `SpaceButtonClicked should add a new child to active Variable code block`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = listOf(Suggestion.ConstantString("x")), + selectedSuggestion = Suggestion.ConstantString("x") + ), + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = listOf(Suggestion.ConstantString("suggestion")), + selectedSuggestion = Suggestion.ConstantString("suggestion") + ) + ) + ) + ) + ) + + val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.SpaceButtonClicked) + + val expectedState = initialState.copy( + codeBlocks = listOf( + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = listOf(Suggestion.ConstantString("x")), + selectedSuggestion = Suggestion.ConstantString("x") + ), + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = listOf(Suggestion.ConstantString("suggestion")), + selectedSuggestion = Suggestion.ConstantString("suggestion") + ), + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + ) + + assertEquals(expectedState, state) + assertContainsSpaceButtonClickedAnalyticEvent(actions) + } + + @Test + fun `SpaceButtonClicked should add a new child with operations suggestions after closing parentheses`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + step = Step.stub( + id = 1, + block = Block.stub( + options = Block.Options(codeBlanksOperations = listOf("*", "+")) + ) + ), + codeBlocks = listOf( + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = listOf(Suggestion.ConstantString(")")), + selectedSuggestion = Suggestion.ConstantString(")") + ) + ) + ) + ) + ) + + val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.SpaceButtonClicked) + + val expectedState = initialState.copy( + codeBlocks = listOf( + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = listOf(Suggestion.ConstantString(")")), + selectedSuggestion = Suggestion.ConstantString(")") + ), + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = initialState.codeBlanksOperationsSuggestions, + selectedSuggestion = null + ) + ) + ) + ) + ) + + assertEquals(expectedState, state) + assertContainsSpaceButtonClickedAnalyticEvent(actions) + } + + private fun assertContainsSpaceButtonClickedAnalyticEvent(actions: Set) { + assertTrue { + actions.any { + it is StepQuizCodeBlanksFeature.InternalAction.LogAnalyticEvent && + it.analyticEvent is StepQuizCodeBlanksClickedSpaceHyperskillAnalyticEvent + } + } + } +} \ No newline at end of file diff --git a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerSuggestionClickedTest.kt b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerSuggestionClickedTest.kt new file mode 100644 index 000000000..5eedd6de7 --- /dev/null +++ b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerSuggestionClickedTest.kt @@ -0,0 +1,263 @@ +package org.hyperskill.step_quiz_code_blanks.presentation + +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertTrue +import org.hyperskill.app.step.domain.model.StepRoute +import org.hyperskill.app.step_quiz_code_blanks.domain.analytic.StepQuizCodeBlanksClickedSuggestionHyperskillAnalyticEvent +import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlock +import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlockChild +import org.hyperskill.app.step_quiz_code_blanks.domain.model.Suggestion +import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksFeature +import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksReducer + +class StepQuizCodeBlanksReducerSuggestionClickedTest { + private val reducer = StepQuizCodeBlanksReducer(StepRoute.Learn.Step(1, null)) + + @Test + fun `SuggestionClicked should not update state if no active code block`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Blank( + isActive = false, + suggestions = emptyList() + ) + ) + ) + + val message = StepQuizCodeBlanksFeature.Message.SuggestionClicked(Suggestion.Print) + val (state, actions) = reducer.reduce(initialState, message) + + assertEquals(initialState, state) + assertContainsSuggestionClickedAnalyticEvent(actions) + } + + @Test + fun `SuggestionClicked should not update state if suggestion does not exist`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Blank( + isActive = true, + suggestions = emptyList() + ) + ) + ) + + val message = StepQuizCodeBlanksFeature.Message.SuggestionClicked(Suggestion.ConstantString("test")) + val (state, actions) = reducer.reduce(initialState, message) + + assertEquals(initialState, state) + assertContainsSuggestionClickedAnalyticEvent(actions) + } + + @Test + fun `SuggestionClicked should not update state if state is not Content`() { + val initialState = StepQuizCodeBlanksFeature.State.Idle + val message = StepQuizCodeBlanksFeature.Message.SuggestionClicked(Suggestion.Print) + val (state, actions) = reducer.reduce(initialState, message) + + assertEquals(initialState, state) + assertTrue(actions.isEmpty()) + } + + @Test + fun `SuggestionClicked should update active Blank code block to Print if suggestion exists`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Blank( + isActive = true, + suggestions = listOf(Suggestion.Print) + ) + ) + ) + + val message = StepQuizCodeBlanksFeature.Message.SuggestionClicked(Suggestion.Print) + val (state, actions) = reducer.reduce(initialState, message) + + val expectedState = initialState.copy( + codeBlocks = listOf( + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = initialState.codeBlanksStringsSuggestions, + selectedSuggestion = null + ) + ) + ) + ) + ) + + assertEquals(expectedState, state) + assertContainsSuggestionClickedAnalyticEvent(actions) + } + + @Test + fun `SuggestionClicked should update active Blank code block to Variable if suggestion exists`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Blank( + isActive = true, + suggestions = listOf(Suggestion.Print, Suggestion.Variable) + ) + ) + ) + + val message = StepQuizCodeBlanksFeature.Message.SuggestionClicked(Suggestion.Variable) + val (state, actions) = reducer.reduce(initialState, message) + + val expectedState = initialState.copy( + codeBlocks = listOf( + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = initialState.codeBlanksVariablesSuggestions, + selectedSuggestion = null + ), + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = initialState.codeBlanksStringsSuggestions, + selectedSuggestion = null + ) + ) + ) + ) + ) + + assertEquals(expectedState, state) + assertContainsSuggestionClickedAnalyticEvent(actions) + } + + @Test + fun `SuggestionClicked should update Print code block with selected suggestion`() { + val suggestion = Suggestion.ConstantString("suggestion") + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = listOf(suggestion), + selectedSuggestion = null + ) + ) + ) + ) + ) + + val message = StepQuizCodeBlanksFeature.Message.SuggestionClicked(suggestion) + val (state, actions) = reducer.reduce(initialState, message) + + assertTrue(state is StepQuizCodeBlanksFeature.State.Content) + assertEquals(suggestion, (state.codeBlocks[0] as CodeBlock.Print).children[0].selectedSuggestion) + assertContainsSuggestionClickedAnalyticEvent(actions) + } + + @Test + fun `SuggestionClicked should update Variable code block with selected suggestion for name`() { + val suggestion = Suggestion.ConstantString("suggestion") + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = listOf(suggestion), + selectedSuggestion = null + ), + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = listOf(suggestion), + selectedSuggestion = null + ) + ) + ) + ) + ) + + val message = StepQuizCodeBlanksFeature.Message.SuggestionClicked(suggestion) + val (state, actions) = reducer.reduce(initialState, message) + + val expectedState = initialState.copy( + codeBlocks = listOf( + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = listOf(suggestion), + selectedSuggestion = suggestion + ), + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = listOf(suggestion), + selectedSuggestion = null + ) + ) + ) + ) + ) + + assertTrue(state is StepQuizCodeBlanksFeature.State.Content) + assertEquals(expectedState.codeBlocks, state.codeBlocks) + assertContainsSuggestionClickedAnalyticEvent(actions) + } + + @Test + fun `SuggestionClicked should update Variable code block with selected suggestion for value`() { + val suggestion = Suggestion.ConstantString("suggestion") + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = listOf(suggestion), + selectedSuggestion = null + ), + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = listOf(suggestion), + selectedSuggestion = null + ) + ) + ) + ) + ) + + val message = StepQuizCodeBlanksFeature.Message.SuggestionClicked(suggestion) + val (state, actions) = reducer.reduce(initialState, message) + + val expectedState = initialState.copy( + codeBlocks = listOf( + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = listOf(suggestion), + selectedSuggestion = null + ), + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = listOf(suggestion), + selectedSuggestion = suggestion + ) + ) + ) + ) + ) + + assertTrue(state is StepQuizCodeBlanksFeature.State.Content) + assertEquals(expectedState.codeBlocks, state.codeBlocks) + assertContainsSuggestionClickedAnalyticEvent(actions) + } + + private fun assertContainsSuggestionClickedAnalyticEvent(actions: Set) { + assertTrue { + actions.any { + it is StepQuizCodeBlanksFeature.InternalAction.LogAnalyticEvent && + it.analyticEvent is StepQuizCodeBlanksClickedSuggestionHyperskillAnalyticEvent + } + } + } +} \ No newline at end of file diff --git a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksStateExtensionsTest.kt b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksStateExtensionsTest.kt new file mode 100644 index 000000000..02dc52f29 --- /dev/null +++ b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksStateExtensionsTest.kt @@ -0,0 +1,85 @@ +package org.hyperskill.step_quiz_code_blanks.presentation + +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertFalse +import kotlin.test.assertNull +import kotlin.test.assertTrue +import org.hyperskill.app.step.domain.model.Block +import org.hyperskill.app.step.domain.model.Step +import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlock +import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlockChild +import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksFeature +import org.hyperskill.app.step_quiz_code_blanks.presentation.activeCodeBlockIndex +import org.hyperskill.app.step_quiz_code_blanks.presentation.isVariableSuggestionsAvailable +import org.hyperskill.step.domain.model.stub + +class StepQuizCodeBlanksStateExtensionsTest { + @Test + fun `activeCodeBlockIndex should return null if no active code block`() { + val state = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Blank(isActive = false, suggestions = emptyList()), + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + ) + assertNull(state.activeCodeBlockIndex()) + } + + @Test + fun `activeCodeBlockIndex should return index of the active code block`() { + val state = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Blank(isActive = false, suggestions = emptyList()), + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + ) + assertEquals(1, state.activeCodeBlockIndex()) + } + + @Test + fun `isVariableSuggestionsAvailable should return true if variable suggestions are available`() { + val step = Step.stub( + id = 1, + block = Block.stub(options = Block.Options(codeBlanksVariables = listOf("a", "b"))) + ) + val state = StepQuizCodeBlanksFeature.State.Content.stub( + step = step, + codeBlocks = emptyList() + ) + + assertTrue(state.isVariableSuggestionsAvailable) + } + + @Test + fun `isVariableSuggestionsAvailable should return false if variable suggestions are not available`() { + listOf(null, emptyList()).forEach { codeBlanksVariables -> + val step = Step.stub( + id = 1, + block = Block.stub(options = Block.Options(codeBlanksVariables = codeBlanksVariables)) + ) + val state = StepQuizCodeBlanksFeature.State.Content.stub( + step = step, + codeBlocks = emptyList() + ) + + assertFalse(state.isVariableSuggestionsAvailable) + } + } +} \ No newline at end of file diff --git a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/view/StepQuizCodeBlanksViewStateMapperIsDecreaseIndentLevelButtonHiddenTest.kt b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/view/StepQuizCodeBlanksViewStateMapperIsDecreaseIndentLevelButtonHiddenTest.kt new file mode 100644 index 000000000..e69afd6c1 --- /dev/null +++ b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/view/StepQuizCodeBlanksViewStateMapperIsDecreaseIndentLevelButtonHiddenTest.kt @@ -0,0 +1,104 @@ +package org.hyperskill.step_quiz_code_blanks.view + +import kotlin.test.Test +import kotlin.test.assertFalse +import kotlin.test.assertTrue +import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlock +import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlockChild +import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksFeature +import org.hyperskill.app.step_quiz_code_blanks.view.mapper.StepQuizCodeBlanksViewStateMapper +import org.hyperskill.app.step_quiz_code_blanks.view.model.StepQuizCodeBlanksViewState +import org.hyperskill.step_quiz_code_blanks.presentation.stub + +class StepQuizCodeBlanksViewStateMapperIsDecreaseIndentLevelButtonHiddenTest { + @Test + fun `isDecreaseIndentLevelButtonHidden should be true when no active code block`() { + val state = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Blank( + isActive = false, + suggestions = emptyList() + ) + ) + ) + + val viewState = StepQuizCodeBlanksViewStateMapper.map(state) + + assertTrue(viewState is StepQuizCodeBlanksViewState.Content) + assertTrue(viewState.isDecreaseIndentLevelButtonHidden) + } + + @Test + fun `isDecreaseIndentLevelButtonHidden should be true when active code block's indent level is less than 1`() { + val state = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf(CodeBlock.Blank(isActive = true, indentLevel = 0, suggestions = emptyList())) + ) + + val viewState = StepQuizCodeBlanksViewStateMapper.map(state) + + assertTrue(viewState is StepQuizCodeBlanksViewState.Content) + assertTrue(viewState.isDecreaseIndentLevelButtonHidden) + } + + @Test + fun `isDecreaseIndentLevelButtonHidden should be false when active code block's indent level is 1 or more`() { + val state = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Print( + indentLevel = 1, + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + ) + + val viewState = StepQuizCodeBlanksViewStateMapper.map(state) + + assertTrue(viewState is StepQuizCodeBlanksViewState.Content) + assertFalse(viewState.isDecreaseIndentLevelButtonHidden) + } + + @Test + fun `isDecreaseIndentLevelButtonHidden should be true when previous code block is IfStatement`() { + val state = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.IfStatement(indentLevel = 1, children = emptyList()), + CodeBlock.Blank(isActive = true, indentLevel = 1, suggestions = emptyList()) + ) + ) + + val viewState = StepQuizCodeBlanksViewStateMapper.map(state) + + assertTrue(viewState is StepQuizCodeBlanksViewState.Content) + assertTrue(viewState.isDecreaseIndentLevelButtonHidden) + } + + @Test + fun `isDecreaseIndentLevelButtonHidden should be false when previous code block is not IfStatement`() { + val state = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Print(indentLevel = 1, children = emptyList()), + CodeBlock.Print( + indentLevel = 1, + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + ) + + val viewState = StepQuizCodeBlanksViewStateMapper.map(state) + + assertTrue(viewState is StepQuizCodeBlanksViewState.Content) + assertFalse(viewState.isDecreaseIndentLevelButtonHidden) + } +} \ No newline at end of file diff --git a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/view/StepQuizCodeBlanksViewStateMapperIsDeleteButtonEnabledTest.kt b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/view/StepQuizCodeBlanksViewStateMapperIsDeleteButtonEnabledTest.kt new file mode 100644 index 000000000..15de1d104 --- /dev/null +++ b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/view/StepQuizCodeBlanksViewStateMapperIsDeleteButtonEnabledTest.kt @@ -0,0 +1,403 @@ +package org.hyperskill.step_quiz_code_blanks.view + +import kotlin.test.Test +import kotlin.test.assertFalse +import kotlin.test.assertTrue +import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlock +import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlockChild +import org.hyperskill.app.step_quiz_code_blanks.domain.model.Suggestion +import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksFeature +import org.hyperskill.app.step_quiz_code_blanks.view.mapper.StepQuizCodeBlanksViewStateMapper +import org.hyperskill.app.step_quiz_code_blanks.view.model.StepQuizCodeBlanksViewState +import org.hyperskill.step_quiz_code_blanks.presentation.stub + +class StepQuizCodeBlanksViewStateMapperIsDeleteButtonEnabledTest { + @Test + fun `isDeleteButtonEnabled should be false when active code block is Blank and single`() { + val state = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf(CodeBlock.Blank(isActive = true, suggestions = listOf(Suggestion.Print))) + ) + + val viewState = StepQuizCodeBlanksViewStateMapper.map(state) + + assertTrue(viewState is StepQuizCodeBlanksViewState.Content) + assertFalse(viewState.isDeleteButtonEnabled) + } + + @Test + fun `isDeleteButtonEnabled should be true when active code block is Print and single`() { + val state = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = listOf(Suggestion.Print), + selectedSuggestion = null + ) + ) + ) + ) + ) + + val viewState = StepQuizCodeBlanksViewStateMapper.map(state) + + assertTrue(viewState is StepQuizCodeBlanksViewState.Content) + assertTrue(viewState.isDeleteButtonEnabled) + } + + @Test + fun `isDeleteButtonEnabled should be true when Variable active name is unselected`() { + val suggestions = listOf( + Suggestion.ConstantString("1"), + Suggestion.ConstantString("2") + ) + val state = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = suggestions, + selectedSuggestion = null + ), + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = suggestions, + selectedSuggestion = null + ) + ) + ) + ) + ) + + val viewState = StepQuizCodeBlanksViewStateMapper.map(state) + + assertTrue(viewState is StepQuizCodeBlanksViewState.Content) + assertTrue(viewState.isDeleteButtonEnabled) + } + + @Test + fun `isDeleteButtonEnabled should be true when Variable active name is selected`() { + val suggestions = listOf( + Suggestion.ConstantString("1"), + Suggestion.ConstantString("2") + ) + val state = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = suggestions, + selectedSuggestion = suggestions[0] + ), + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = suggestions, + selectedSuggestion = null + ) + ) + ) + ) + ) + + val viewState = StepQuizCodeBlanksViewStateMapper.map(state) + + assertTrue(viewState is StepQuizCodeBlanksViewState.Content) + assertTrue(viewState.isDeleteButtonEnabled) + } + + @Test + fun `isDeleteButtonEnabled should be true when Variable active value child index is greater than one`() { + val suggestions = listOf( + Suggestion.ConstantString("1"), + Suggestion.ConstantString("2") + ) + val state = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = suggestions, + selectedSuggestion = suggestions[0] + ), + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = suggestions, + selectedSuggestion = suggestions[1] + ), + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = suggestions, + selectedSuggestion = null + ) + ) + ) + ) + ) + + val viewState = StepQuizCodeBlanksViewStateMapper.map(state) + + assertTrue(viewState is StepQuizCodeBlanksViewState.Content) + assertTrue(viewState.isDeleteButtonEnabled) + } + + @Test + fun `isDeleteButtonEnabled should be false when Variable name is selected and active value is unselected`() { + val suggestions = listOf( + Suggestion.ConstantString("1"), + Suggestion.ConstantString("2") + ) + val state = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = suggestions, + selectedSuggestion = suggestions[0] + ), + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = suggestions, + selectedSuggestion = null + ) + ) + ) + ) + ) + + val viewState = StepQuizCodeBlanksViewStateMapper.map(state) + + assertTrue(viewState is StepQuizCodeBlanksViewState.Content) + assertFalse(viewState.isDeleteButtonEnabled) + } + + @Test + fun `isDeleteButtonEnabled should be true when Variable name is selected and active value is selected`() { + val suggestions = listOf( + Suggestion.ConstantString("1"), + Suggestion.ConstantString("2") + ) + val state = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = suggestions, + selectedSuggestion = suggestions[0] + ), + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = suggestions, + selectedSuggestion = suggestions[1] + ) + ) + ) + ) + ) + + val viewState = StepQuizCodeBlanksViewStateMapper.map(state) + + assertTrue(viewState is StepQuizCodeBlanksViewState.Content) + assertTrue(viewState.isDeleteButtonEnabled) + } + + @Test + fun `isDeleteButtonEnabled should be true when Variable name is unselected and active value is unselected`() { + val suggestions = listOf( + Suggestion.ConstantString("1"), + Suggestion.ConstantString("2") + ) + val state = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = suggestions, + selectedSuggestion = null + ), + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = suggestions, + selectedSuggestion = null + ) + ) + ) + ) + ) + + val viewState = StepQuizCodeBlanksViewStateMapper.map(state) + + assertTrue(viewState is StepQuizCodeBlanksViewState.Content) + assertTrue(viewState.isDeleteButtonEnabled) + } + + @Test + fun `isDeleteButtonEnabled should be true when Variable name is unselected and active value is selected`() { + val suggestions = listOf( + Suggestion.ConstantString("1"), + Suggestion.ConstantString("2") + ) + val state = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = suggestions, + selectedSuggestion = null + ), + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = suggestions, + selectedSuggestion = suggestions[0] + ) + ) + ) + ) + ) + + val viewState = StepQuizCodeBlanksViewStateMapper.map(state) + + assertTrue(viewState is StepQuizCodeBlanksViewState.Content) + assertTrue(viewState.isDeleteButtonEnabled) + } + + @Test + fun `isDeleteButtonEnabled should be true when IfStatement active child index greater than zero`() { + val suggestions = listOf( + Suggestion.ConstantString("1"), + Suggestion.ConstantString("2") + ) + val state = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.IfStatement( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = suggestions, + selectedSuggestion = suggestions[0] + ), + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = suggestions, + selectedSuggestion = null + ) + ) + ) + ) + ) + + val viewState = StepQuizCodeBlanksViewStateMapper.map(state) + + assertTrue(viewState is StepQuizCodeBlanksViewState.Content) + assertTrue(viewState.isDeleteButtonEnabled) + } + + @Test + fun `isDeleteButtonEnabled should be true when IfStatement child is selected`() { + val suggestions = listOf( + Suggestion.ConstantString("1"), + Suggestion.ConstantString("2") + ) + val state = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.IfStatement( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = suggestions, + selectedSuggestion = suggestions[0] + ) + ) + ) + ) + ) + + val viewState = StepQuizCodeBlanksViewStateMapper.map(state) + + assertTrue(viewState is StepQuizCodeBlanksViewState.Content) + assertTrue(viewState.isDeleteButtonEnabled) + } + + /* ktlint-disable */ + @Test + fun `isDeleteButtonEnabled should be true when IfStatement child is unselected and next code block on same indent level`() { + val suggestions = listOf( + Suggestion.ConstantString("1"), + Suggestion.ConstantString("2") + ) + val state = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.IfStatement( + indentLevel = 1, + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = suggestions, + selectedSuggestion = null + ) + ) + ), + CodeBlock.Print( + indentLevel = 1, + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = suggestions, + selectedSuggestion = null + ) + ) + ) + ) + ) + + val viewState = StepQuizCodeBlanksViewStateMapper.map(state) + + assertTrue(viewState is StepQuizCodeBlanksViewState.Content) + assertTrue(viewState.isDeleteButtonEnabled) + } + + /* ktlint-disable */ + @Test + fun `isDeleteButtonEnabled should be false when IfStatement child is unselected and next code block on different indent level`() { + val suggestions = listOf( + Suggestion.ConstantString("1"), + Suggestion.ConstantString("2") + ) + val state = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.IfStatement( + indentLevel = 1, + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = suggestions, + selectedSuggestion = null + ) + ) + ), + CodeBlock.Print( + indentLevel = 2, + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = suggestions, + selectedSuggestion = null + ) + ) + ) + ) + ) + + val viewState = StepQuizCodeBlanksViewStateMapper.map(state) + + assertTrue(viewState is StepQuizCodeBlanksViewState.Content) + assertFalse(viewState.isDeleteButtonEnabled) + } +} \ No newline at end of file diff --git a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/view/StepQuizCodeBlanksViewStateMapperIsSpaceButtonHiddenTest.kt b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/view/StepQuizCodeBlanksViewStateMapperIsSpaceButtonHiddenTest.kt new file mode 100644 index 000000000..027aedd37 --- /dev/null +++ b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/view/StepQuizCodeBlanksViewStateMapperIsSpaceButtonHiddenTest.kt @@ -0,0 +1,239 @@ +package org.hyperskill.step_quiz_code_blanks.view + +import kotlin.test.Test +import kotlin.test.assertFalse +import kotlin.test.assertTrue +import org.hyperskill.app.step.domain.model.Block +import org.hyperskill.app.step.domain.model.Step +import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlock +import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlockChild +import org.hyperskill.app.step_quiz_code_blanks.domain.model.Suggestion +import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksFeature +import org.hyperskill.app.step_quiz_code_blanks.view.mapper.StepQuizCodeBlanksViewStateMapper +import org.hyperskill.app.step_quiz_code_blanks.view.model.StepQuizCodeBlanksViewState +import org.hyperskill.step.domain.model.stub +import org.hyperskill.step_quiz_code_blanks.presentation.stub + +class StepQuizCodeBlanksViewStateMapperIsSpaceButtonHiddenTest { + private val step = Step.stub( + id = 0, + block = Block.stub( + options = Block.Options( + codeBlanksOperations = listOf("+") + ) + ) + ) + + @Test + fun `isSpaceButtonHidden should be true when codeBlanksOperationsSuggestions is empty`() { + val state = StepQuizCodeBlanksFeature.State.Content.stub( + step = Step.stub(id = 0), + codeBlocks = listOf( + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString("suggestion") + ) + ) + ) + ) + ) + + val viewState = StepQuizCodeBlanksViewStateMapper.map(state) + + assertTrue(viewState is StepQuizCodeBlanksViewState.Content) + assertTrue(viewState.isSpaceButtonHidden) + } + + @Test + fun `isSpaceButtonHidden should be true when no active code block`() { + val state = StepQuizCodeBlanksFeature.State.Content.stub( + step = step, + codeBlocks = listOf( + CodeBlock.Blank( + isActive = false, + suggestions = emptyList() + ) + ) + ) + + val viewState = StepQuizCodeBlanksViewStateMapper.map(state) + + assertTrue(viewState is StepQuizCodeBlanksViewState.Content) + assertTrue(viewState.isSpaceButtonHidden) + } + + @Test + fun `isSpaceButtonHidden should be true when active Print code block has no active child`() { + val state = StepQuizCodeBlanksFeature.State.Content.stub( + step = step, + codeBlocks = listOf( + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + ) + + val viewState = StepQuizCodeBlanksViewStateMapper.map(state) + + assertTrue(viewState is StepQuizCodeBlanksViewState.Content) + assertTrue(viewState.isSpaceButtonHidden) + } + + @Test + fun `isSpaceButtonHidden should be true when active Print code block child has no selected suggestion`() { + val state = StepQuizCodeBlanksFeature.State.Content.stub( + step = step, + codeBlocks = listOf( + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + ) + + val viewState = StepQuizCodeBlanksViewStateMapper.map(state) + + assertTrue(viewState is StepQuizCodeBlanksViewState.Content) + assertTrue(viewState.isSpaceButtonHidden) + } + + @Test + fun `isSpaceButtonHidden should be false when active Print code block child has selected suggestion`() { + val state = StepQuizCodeBlanksFeature.State.Content.stub( + step = step, + codeBlocks = listOf( + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString("suggestion") + ) + ) + ) + ) + ) + + val viewState = StepQuizCodeBlanksViewStateMapper.map(state) + + assertTrue(viewState is StepQuizCodeBlanksViewState.Content) + assertFalse(viewState.isSpaceButtonHidden) + } + + /* ktlint-disable */ + @Test + fun `isSpaceButtonHidden should be true when active Variable code block's first child has no selected suggestion`() { + val state = StepQuizCodeBlanksFeature.State.Content.stub( + step = step, + codeBlocks = listOf( + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = null + ), + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + ) + + val viewState = StepQuizCodeBlanksViewStateMapper.map(state) + + assertTrue(viewState is StepQuizCodeBlanksViewState.Content) + assertTrue(viewState.isSpaceButtonHidden) + } + + @Test + fun `isSpaceButtonHidden should be true when active Variable code block's second child has no selected suggestion`() { + val state = StepQuizCodeBlanksFeature.State.Content.stub( + step = step, + codeBlocks = listOf( + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString("x") + ), + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + ) + + val viewState = StepQuizCodeBlanksViewStateMapper.map(state) + + assertTrue(viewState is StepQuizCodeBlanksViewState.Content) + assertTrue(viewState.isSpaceButtonHidden) + } + + @Test + fun `isSpaceButtonHidden should be false when active IfStatement code block child has selected suggestion`() { + val state = StepQuizCodeBlanksFeature.State.Content.stub( + step = step, + codeBlocks = listOf( + CodeBlock.IfStatement( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString("if") + ) + ) + ) + ) + ) + + val viewState = StepQuizCodeBlanksViewStateMapper.map(state) + + assertTrue(viewState is StepQuizCodeBlanksViewState.Content) + assertFalse(viewState.isSpaceButtonHidden) + } + + @Test + fun `isSpaceButtonHidden should be true when active IfStatement code block child has no selected suggestion`() { + val state = StepQuizCodeBlanksFeature.State.Content.stub( + step = step, + codeBlocks = listOf( + CodeBlock.IfStatement( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + ) + + val viewState = StepQuizCodeBlanksViewStateMapper.map(state) + + assertTrue(viewState is StepQuizCodeBlanksViewState.Content) + assertTrue(viewState.isSpaceButtonHidden) + } +} \ No newline at end of file diff --git a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/view/StepQuizCodeBlanksViewStateMapperSequencesTest.kt b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/view/StepQuizCodeBlanksViewStateMapperSequencesTest.kt new file mode 100644 index 000000000..e7c16c1df --- /dev/null +++ b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/view/StepQuizCodeBlanksViewStateMapperSequencesTest.kt @@ -0,0 +1,170 @@ +package org.hyperskill.step_quiz_code_blanks.view + +import kotlin.test.Test +import kotlin.test.assertEquals +import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlock +import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlockChild +import org.hyperskill.app.step_quiz_code_blanks.domain.model.Suggestion +import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksFeature +import org.hyperskill.app.step_quiz_code_blanks.view.mapper.StepQuizCodeBlanksViewStateMapper +import org.hyperskill.app.step_quiz_code_blanks.view.model.StepQuizCodeBlanksViewState +import org.hyperskill.step_quiz_code_blanks.presentation.stub + +class StepQuizCodeBlanksViewStateMapperSequencesTest { + @Test + fun `map should return Idle view state for Idle state`() { + val state = StepQuizCodeBlanksFeature.State.Idle + val viewState = StepQuizCodeBlanksViewStateMapper.map(state) + assertEquals(StepQuizCodeBlanksViewState.Idle, viewState) + } + + @Test + fun `Content with active not filled Print`() { + val suggestions = listOf( + Suggestion.ConstantString("1"), + Suggestion.ConstantString("2") + ) + val state = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = suggestions, + selectedSuggestion = null + ) + ) + ) + ) + ) + val expectedViewState = StepQuizCodeBlanksViewState.Content( + codeBlocks = listOf( + StepQuizCodeBlanksViewState.CodeBlockItem.Print( + id = 0, + children = listOf( + StepQuizCodeBlanksViewState.CodeBlockChildItem( + id = 0, + isActive = true, + value = null + ) + ) + ) + ), + suggestions = suggestions, + isDeleteButtonEnabled = true, + isSpaceButtonHidden = true, + isDecreaseIndentLevelButtonHidden = true + ) + + val actualViewState = StepQuizCodeBlanksViewStateMapper.map(state) + + assertEquals(expectedViewState, actualViewState) + } + + @Test + fun `Content with sequence of filled Print and active Blank`() { + val printSuggestions = listOf( + Suggestion.ConstantString("1"), + Suggestion.ConstantString("2") + ) + val state = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = printSuggestions, + selectedSuggestion = printSuggestions[0] + ) + ) + ), + CodeBlock.Blank(isActive = true, suggestions = listOf(Suggestion.Print)) + ) + ) + val expectedViewState = StepQuizCodeBlanksViewState.Content( + codeBlocks = listOf( + StepQuizCodeBlanksViewState.CodeBlockItem.Print( + id = 0, + children = listOf( + StepQuizCodeBlanksViewState.CodeBlockChildItem( + id = 0, + isActive = false, + value = printSuggestions[0].text + ) + ) + ), + StepQuizCodeBlanksViewState.CodeBlockItem.Blank(id = 1, isActive = true) + ), + suggestions = listOf(Suggestion.Print), + isDeleteButtonEnabled = true, + isSpaceButtonHidden = true, + isDecreaseIndentLevelButtonHidden = true + ) + + val actualViewState = StepQuizCodeBlanksViewStateMapper.map(state) + + assertEquals(expectedViewState, actualViewState) + } + + @Test + fun `Content with sequence of filled Print and active not filled Print`() { + val printSuggestions = listOf( + Suggestion.ConstantString("1"), + Suggestion.ConstantString("2") + ) + val state = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = printSuggestions, + selectedSuggestion = printSuggestions[0] + ) + ) + ), + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = printSuggestions, + selectedSuggestion = null + ) + ) + ) + ) + ) + val expectedViewState = StepQuizCodeBlanksViewState.Content( + codeBlocks = listOf( + StepQuizCodeBlanksViewState.CodeBlockItem.Print( + id = 0, + children = listOf( + StepQuizCodeBlanksViewState.CodeBlockChildItem( + id = 0, + isActive = false, + value = printSuggestions[0].text + ) + ) + ), + StepQuizCodeBlanksViewState.CodeBlockItem.Print( + id = 1, + children = listOf( + StepQuizCodeBlanksViewState.CodeBlockChildItem( + id = 0, + isActive = true, + value = null + ) + ) + ) + ), + suggestions = printSuggestions, + isDeleteButtonEnabled = true, + isSpaceButtonHidden = true, + isDecreaseIndentLevelButtonHidden = true + ) + + val actualViewState = StepQuizCodeBlanksViewStateMapper.map(state) + + assertEquals(expectedViewState, actualViewState) + } +} \ No newline at end of file diff --git a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/view/StepQuizCodeBlanksViewStateMapperSuggestionsTest.kt b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/view/StepQuizCodeBlanksViewStateMapperSuggestionsTest.kt new file mode 100644 index 000000000..fbfaf6d78 --- /dev/null +++ b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/view/StepQuizCodeBlanksViewStateMapperSuggestionsTest.kt @@ -0,0 +1,114 @@ +package org.hyperskill.step_quiz_code_blanks.view + +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertTrue +import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlock +import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlockChild +import org.hyperskill.app.step_quiz_code_blanks.domain.model.Suggestion +import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksFeature +import org.hyperskill.app.step_quiz_code_blanks.view.mapper.StepQuizCodeBlanksViewStateMapper +import org.hyperskill.app.step_quiz_code_blanks.view.model.StepQuizCodeBlanksViewState +import org.hyperskill.step_quiz_code_blanks.presentation.stub + +class StepQuizCodeBlanksViewStateMapperSuggestionsTest { + @Test + fun `Non empty suggestions when active code block is Blank`() { + val suggestions = listOf(Suggestion.Print, Suggestion.Variable) + val state = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf(CodeBlock.Blank(isActive = true, suggestions = suggestions)) + ) + + val viewState = StepQuizCodeBlanksViewStateMapper.map(state) + + assertTrue(viewState is StepQuizCodeBlanksViewState.Content) + assertEquals(suggestions, viewState.suggestions) + } + + @Test + fun `Empty suggestions when code block active child has selected suggestion`() { + val suggestions = listOf( + Suggestion.ConstantString("1"), + Suggestion.ConstantString("2") + ) + val children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = suggestions, + selectedSuggestion = suggestions[0] + ) + ) + val codeBlocks = listOf( + CodeBlock.Print(children = children), + CodeBlock.Variable(children = children), + CodeBlock.IfStatement(children = children) + ) + + codeBlocks.forEach { codeBlock -> + val state = StepQuizCodeBlanksFeature.State.Content.stub(codeBlocks = listOf(codeBlock)) + val viewState = StepQuizCodeBlanksViewStateMapper.map(state) + + assertTrue(viewState is StepQuizCodeBlanksViewState.Content) + assertTrue(viewState.suggestions.isEmpty()) + } + } + + @Test + fun `Non empty suggestions when code block active child is unselected`() { + val suggestions = listOf( + Suggestion.ConstantString("1"), + Suggestion.ConstantString("2") + ) + val children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = suggestions, + selectedSuggestion = null + ) + ) + val codeBlocks = listOf( + CodeBlock.Print(children = children), + CodeBlock.Variable(children = children), + CodeBlock.IfStatement(children = children) + ) + + codeBlocks.forEach { codeBlock -> + val state = StepQuizCodeBlanksFeature.State.Content.stub(codeBlocks = listOf(codeBlock)) + val viewState = StepQuizCodeBlanksViewStateMapper.map(state) + + assertTrue(viewState is StepQuizCodeBlanksViewState.Content) + assertEquals(suggestions, viewState.suggestions) + } + } + + @Test + fun `Non empty suggestions when active code block is Variable and active child has no selected suggestion`() { + val suggestions = listOf( + Suggestion.ConstantString("1"), + Suggestion.ConstantString("2") + ) + val state = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = suggestions, + selectedSuggestion = null + ), + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = suggestions, + selectedSuggestion = null + ) + ) + ) + ) + ) + + val viewState = StepQuizCodeBlanksViewStateMapper.map(state) + + assertTrue(viewState is StepQuizCodeBlanksViewState.Content) + assertEquals(suggestions, viewState.suggestions) + } +} \ No newline at end of file diff --git a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/view/StepQuizCodeBlanksViewStateTest.kt b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/view/StepQuizCodeBlanksViewStateTest.kt new file mode 100644 index 000000000..ac692810f --- /dev/null +++ b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/view/StepQuizCodeBlanksViewStateTest.kt @@ -0,0 +1,39 @@ +package org.hyperskill.step_quiz_code_blanks.view + +import kotlin.test.Test +import kotlin.test.assertFalse +import kotlin.test.assertTrue +import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksFeature.OnboardingState +import org.hyperskill.app.step_quiz_code_blanks.view.model.StepQuizCodeBlanksViewState + +class StepQuizCodeBlanksViewStateTest { + @Test + fun `isActionButtonsHidden should be true when onboarding is available`() { + val viewState = stubContentViewState(onboardingState = OnboardingState.HighlightSuggestions) + assertTrue(viewState.isActionButtonsHidden) + } + + @Test + fun `isActionButtonsHidden should be false when onboarding is unavailable`() { + val viewState = stubContentViewState(onboardingState = OnboardingState.Unavailable) + assertFalse(viewState.isActionButtonsHidden) + } + + @Test + fun `isSuggestionsHighlightEffectActive should be true when onboardingState is HighlightSuggestions`() { + val viewState = stubContentViewState(onboardingState = OnboardingState.HighlightSuggestions) + assertTrue(viewState.isSuggestionsHighlightEffectActive) + } + + private fun stubContentViewState( + onboardingState: OnboardingState + ): StepQuizCodeBlanksViewState.Content = + StepQuizCodeBlanksViewState.Content( + codeBlocks = emptyList(), + suggestions = emptyList(), + isDeleteButtonEnabled = false, + isSpaceButtonHidden = false, + isDecreaseIndentLevelButtonHidden = false, + onboardingState = onboardingState + ) +} \ No newline at end of file From 25f0ac1825f38c25bc30d9c5f9fe9b6cc444c521 Mon Sep 17 00:00:00 2001 From: Ivan Magda Date: Thu, 12 Sep 2024 15:49:16 +0900 Subject: [PATCH 08/13] Shared, iOS: Code blanks elif else statements (#1176) ^ALTAPPS-1346 --- config/detekt/baseline.xml | 2 +- .../project.pbxproj | 8 + .../StepQuizCodeBlanksElifStatementView.swift | 73 +++ .../StepQuizCodeBlanksElseStatementView.swift | 45 ++ .../StepQuizCodeBlanksCodeBlocksView.swift | 9 + .../domain/model/CodeBlock.kt | 65 ++- .../domain/model/Suggestion.kt | 14 + .../presentation/StepQuizCodeBlanksFeature.kt | 3 + .../presentation/StepQuizCodeBlanksReducer.kt | 248 ++++++-- .../StepQuizCodeBlanksViewStateMapper.kt | 49 +- .../view/model/StepQuizCodeBlanksViewState.kt | 14 + ...eBlanksReducerCodeBlockChildClickedTest.kt | 117 ++++ ...izCodeBlanksReducerCodeBlockClickedTest.kt | 112 +++- ...cerDecreaseIndentLevelButtonClickedTest.kt | 55 +- ...odeBlanksReducerDeleteButtonClickedTest.kt | 533 ++++++++++++++++-- ...seStatementsSuggestionsAvailabilityTest.kt | 74 +++ ...CodeBlanksReducerEnterButtonClickedTest.kt | 39 +- ...CodeBlanksReducerSpaceButtonClickedTest.kt | 31 +- ...zCodeBlanksReducerSuggestionClickedTest.kt | 164 +++++- 19 files changed, 1531 insertions(+), 124 deletions(-) create mode 100644 iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/Conditions/StepQuizCodeBlanksElifStatementView.swift create mode 100644 iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/Conditions/StepQuizCodeBlanksElseStatementView.swift create mode 100644 shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerElifAndElseStatementsSuggestionsAvailabilityTest.kt diff --git a/config/detekt/baseline.xml b/config/detekt/baseline.xml index 357dfd7b5..46b86d224 100644 --- a/config/detekt/baseline.xml +++ b/config/detekt/baseline.xml @@ -158,6 +158,7 @@ MagicNumber:StepDelegate.kt$StepDelegate$25 MagicNumber:StepDelegate.kt$StepDelegate$5 MagicNumber:StepDelegate.kt$StepDelegate$50 + MagicNumber:StepQuizCodeBlanksReducer.kt$StepQuizCodeBlanksReducer$2 MagicNumber:StepQuizCodeBlanksReducer.kt$StepQuizCodeBlanksReducer$47580L MagicNumber:StudyPlanActivityAdapterDelegate.kt$StudyPlanActivityAdapterDelegate.ViewHolder$100f MagicNumber:SubscriptionSyncLoading.kt$0.5f @@ -205,7 +206,6 @@ ModifierReused:LeaderboardPlaceInfo.kt$Row( modifier = modifier, horizontalArrangement = Arrangement.SpaceBetween ) { Text( text = placeNumber.toString(), style = MaterialTheme.typography.body2, color = colorResource(id = R.color.color_on_surface_alpha_60), modifier = Modifier.align(Alignment.CenterVertically) ) if (placeNumber in 1..3) { Image( painter = painterResource( id = when (placeNumber) { 1 -> org.hyperskill.app.android.R.drawable.ic_leaderboard_first_place 2 -> org.hyperskill.app.android.R.drawable.ic_leaderboard_second_place 3 -> org.hyperskill.app.android.R.drawable.ic_leaderboard_third_place else -> error("Place icon should not be visible for the place number $placeNumber") } ), contentDescription = null, modifier = modifier .requiredSize(24.dp) .align(Alignment.CenterVertically) ) } } ModifierWithoutDefault:BadgeImage.kt$modifier NestedBlockDepth:AuthSocialWebViewClient.kt$AuthSocialWebViewClient$override fun shouldOverrideUrlLoading( view: WebView?, request: WebResourceRequest? ): Boolean - NestedBlockDepth:StepQuizCodeBlanksReducer.kt$StepQuizCodeBlanksReducer$private fun setCodeBlockIsActive(codeBlock: CodeBlock, isActive: Boolean): CodeBlock NestedBlockDepth:StepQuizCodeBlanksViewStateMapper.kt$StepQuizCodeBlanksViewStateMapper$private fun mapContentState( state: StepQuizCodeBlanksFeature.State.Content ): StepQuizCodeBlanksViewState.Content PreviewPublic:BadgeCard.kt$BadgeCardPreview PreviewPublic:BadgeCard.kt$LastLevelBadgeCardPreview diff --git a/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj b/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj index 3d14111a9..0fd2617ca 100644 --- a/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj +++ b/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj @@ -584,6 +584,8 @@ 2CEEE03328916A3D00282849 /* ProblemOfDayViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CEEE03228916A3D00282849 /* ProblemOfDayViewModel.swift */; }; 2CEEE03528916A6800282849 /* ProblemOfDayOutputProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CEEE03428916A6800282849 /* ProblemOfDayOutputProtocol.swift */; }; 2CEEE03728917F1100282849 /* TimeIntervalExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CEEE03628917F1100282849 /* TimeIntervalExtensions.swift */; }; + 2CEFEBE22C8AD43F0069567E /* StepQuizCodeBlanksElifStatementView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CEFEBE12C8AD43F0069567E /* StepQuizCodeBlanksElifStatementView.swift */; }; + 2CEFEBE42C8AD5280069567E /* StepQuizCodeBlanksElseStatementView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CEFEBE32C8AD5280069567E /* StepQuizCodeBlanksElseStatementView.swift */; }; 2CF0B4E629F9CEAF009C2A2D /* StudyPlanSectionActivitiesList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CF0B4E529F9CEAF009C2A2D /* StudyPlanSectionActivitiesList.swift */; }; 2CF2DA3A27EC5B2D0055426D /* Assembly.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CF2DA3927EC5B2D0055426D /* Assembly.swift */; }; 2CF34F912C2E8EAE0054477E /* CommentsContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CF34F902C2E8EAE0054477E /* CommentsContentView.swift */; }; @@ -1390,6 +1392,8 @@ 2CEEE03228916A3D00282849 /* ProblemOfDayViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProblemOfDayViewModel.swift; sourceTree = ""; }; 2CEEE03428916A6800282849 /* ProblemOfDayOutputProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProblemOfDayOutputProtocol.swift; sourceTree = ""; }; 2CEEE03628917F1100282849 /* TimeIntervalExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimeIntervalExtensions.swift; sourceTree = ""; }; + 2CEFEBE12C8AD43F0069567E /* StepQuizCodeBlanksElifStatementView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StepQuizCodeBlanksElifStatementView.swift; sourceTree = ""; }; + 2CEFEBE32C8AD5280069567E /* StepQuizCodeBlanksElseStatementView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StepQuizCodeBlanksElseStatementView.swift; sourceTree = ""; }; 2CF0B4E529F9CEAF009C2A2D /* StudyPlanSectionActivitiesList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StudyPlanSectionActivitiesList.swift; sourceTree = ""; }; 2CF2DA3927EC5B2D0055426D /* Assembly.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Assembly.swift; sourceTree = ""; }; 2CF34F902C2E8EAE0054477E /* CommentsContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommentsContentView.swift; sourceTree = ""; }; @@ -3639,6 +3643,8 @@ 2CBEE4C52C87003A004486E8 /* Conditions */ = { isa = PBXGroup; children = ( + 2CEFEBE12C8AD43F0069567E /* StepQuizCodeBlanksElifStatementView.swift */, + 2CEFEBE32C8AD5280069567E /* StepQuizCodeBlanksElseStatementView.swift */, 2CBEE4C62C870059004486E8 /* StepQuizCodeBlanksIfStatementView.swift */, ); path = Conditions; @@ -5235,6 +5241,7 @@ 2C0DB90728644F2C001EA35E /* CodeEditorView.swift in Sources */, 2CDA98452944590800ADE539 /* ProfileStatisticsView.swift in Sources */, 2C8DD40E2AFB907000FD5359 /* ShareStreakAction.swift in Sources */, + 2CEFEBE22C8AD43F0069567E /* StepQuizCodeBlanksElifStatementView.swift in Sources */, 2C7CB6822ADFDB45006F78DA /* UIFont+SizeOfString.swift in Sources */, 2CC4AAF1280DB513002276A0 /* WebOAuthService.swift in Sources */, 2CF2DA3A27EC5B2D0055426D /* Assembly.swift in Sources */, @@ -5583,6 +5590,7 @@ 2C93AF2529B34FE6004639E0 /* StepQuizPyCharmAssembly.swift in Sources */, 2CDA98412944512D00ADE539 /* ProfileSkeletonView.swift in Sources */, 2CEDE70729965B4D0032D399 /* RestartApplicationLocalNotification.swift in Sources */, + 2CEFEBE42C8AD5280069567E /* StepQuizCodeBlanksElseStatementView.swift in Sources */, 2CACBCBC2B7A12F1006D3AB2 /* UsersInterviewWidgetView.swift in Sources */, 2CDA98432944524D00ADE539 /* HomeSkeletonView.swift in Sources */, 2C9D493D29F07015000599AB /* StudyPlanSectionErrorView.swift in Sources */, diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/Conditions/StepQuizCodeBlanksElifStatementView.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/Conditions/StepQuizCodeBlanksElifStatementView.swift new file mode 100644 index 000000000..8f4c66aec --- /dev/null +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/Conditions/StepQuizCodeBlanksElifStatementView.swift @@ -0,0 +1,73 @@ +import shared +import SwiftUI + +struct StepQuizCodeBlanksElifStatementView: View { + let elifStatementItem: StepQuizCodeBlanksViewStateCodeBlockItemElifStatement + + let onChildTap: (StepQuizCodeBlanksViewStateCodeBlockChildItem) -> Void + + var body: some View { + ScrollView(.horizontal, showsIndicators: false) { + HStack(alignment: .center, spacing: LayoutInsets.smallInset) { + Text("elif") + .font(StepQuizCodeBlanksAppearance.blankFont) + .foregroundColor(StepQuizCodeBlanksAppearance.blankTextColor) + + ForEach(elifStatementItem.children, id: \.id) { child in + StepQuizCodeBlanksCodeBlockChildView(child: child, action: onChildTap) + } + + Text(":") + .font(StepQuizCodeBlanksAppearance.blankFont) + .foregroundColor(StepQuizCodeBlanksAppearance.blankTextColor) + } + .padding(.horizontal, LayoutInsets.defaultInset) + .padding(.vertical, LayoutInsets.smallInset) + .background(Color(ColorPalette.violet400Alpha7)) + .cornerRadius(StepQuizCodeBlanksAppearance.cornerRadius) + .padding(.horizontal) + } + .scrollBounceBehaviorBasedOnSize(axes: .horizontal) + } +} + +#if DEBUG +#Preview { + VStack { + StepQuizCodeBlanksElifStatementView( + elifStatementItem: StepQuizCodeBlanksViewStateCodeBlockItemElifStatement( + id: 0, + indentLevel: 0, + children: [ + StepQuizCodeBlanksViewStateCodeBlockChildItem(id: 0, isActive: true, value: nil) + ] + ), + onChildTap: { _ in } + ) + + StepQuizCodeBlanksElifStatementView( + elifStatementItem: StepQuizCodeBlanksViewStateCodeBlockItemElifStatement( + id: 0, + indentLevel: 0, + children: [ + StepQuizCodeBlanksViewStateCodeBlockChildItem(id: 0, isActive: true, value: "x") + ] + ), + onChildTap: { _ in } + ) + + StepQuizCodeBlanksElifStatementView( + elifStatementItem: StepQuizCodeBlanksViewStateCodeBlockItemElifStatement( + id: 0, + indentLevel: 0, + children: [ + StepQuizCodeBlanksViewStateCodeBlockChildItem(id: 0, isActive: false, value: "x"), + StepQuizCodeBlanksViewStateCodeBlockChildItem(id: 1, isActive: true, value: nil) + ] + ), + onChildTap: { _ in } + ) + } + .padding() +} +#endif diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/Conditions/StepQuizCodeBlanksElseStatementView.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/Conditions/StepQuizCodeBlanksElseStatementView.swift new file mode 100644 index 000000000..91a75e90e --- /dev/null +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/Conditions/StepQuizCodeBlanksElseStatementView.swift @@ -0,0 +1,45 @@ +import shared +import SwiftUI + +struct StepQuizCodeBlanksElseStatementView: View { + let elseStatementItem: StepQuizCodeBlanksViewStateCodeBlockItemElseStatement + + var body: some View { + Text("else:") + .font(StepQuizCodeBlanksAppearance.blankFont) + .foregroundColor(StepQuizCodeBlanksAppearance.blankTextColor) + .padding(.horizontal, LayoutInsets.defaultInset) + .padding(.vertical, LayoutInsets.smallInset) + .frame(minHeight: StepQuizCodeBlanksCodeBlockChildTextView.Appearance.minHeight) + .background(Color(ColorPalette.violet400Alpha7)) + .addBorder( + color: elseStatementItem.isActive ? StepQuizCodeBlanksAppearance.activeBorderColor : .clear, + width: elseStatementItem.isActive ? 1 : 0, + cornerRadius: StepQuizCodeBlanksAppearance.cornerRadius + ) + .padding(.horizontal) + .animation(.default, value: elseStatementItem.isActive) + } +} + +#if DEBUG +#Preview { + StepQuizCodeBlanksElseStatementView( + elseStatementItem: StepQuizCodeBlanksViewStateCodeBlockItemElseStatement( + id: 0, + indentLevel: 0, + isActive: true + ) + ) +} + +#Preview { + StepQuizCodeBlanksElseStatementView( + elseStatementItem: StepQuizCodeBlanksViewStateCodeBlockItemElseStatement( + id: 0, + indentLevel: 0, + isActive: false + ) + ) +} +#endif diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/StepQuizCodeBlanksCodeBlocksView.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/StepQuizCodeBlanksCodeBlocksView.swift index 79f8d394f..9b5e4c634 100644 --- a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/StepQuizCodeBlanksCodeBlocksView.swift +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/StepQuizSubmodules/StepQuizCodeBlanks/Views/CodeBlocks/StepQuizCodeBlanksCodeBlocksView.swift @@ -78,6 +78,15 @@ struct StepQuizCodeBlanksCodeBlocksView: View { ifStatementItem: ifStatementItem, onChildTap: onChildTap ) + case .elifStatement(let elifStatementItem): + StepQuizCodeBlanksElifStatementView( + elifStatementItem: elifStatementItem, + onChildTap: onChildTap + ) + case .elseStatement(let elseStatementItem): + StepQuizCodeBlanksElseStatementView( + elseStatementItem: elseStatementItem + ) } } } diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/domain/model/CodeBlock.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/domain/model/CodeBlock.kt index 241028bbd..1266f9783 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/domain/model/CodeBlock.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/domain/model/CodeBlock.kt @@ -27,9 +27,15 @@ sealed class CodeBlock { internal fun areAllChildrenUnselected(): Boolean = children.all { it is CodeBlockChild.SelectSuggestion && it.selectedSuggestion == null } + internal fun areAllChildrenSelected(): Boolean = + children.all { it is CodeBlockChild.SelectSuggestion && it.selectedSuggestion != null } + internal fun hasAnySelectedChild(): Boolean = children.any { it is CodeBlockChild.SelectSuggestion && it.selectedSuggestion != null } + internal fun hasAnyUnselectedChild(): Boolean = + children.any { it is CodeBlockChild.SelectSuggestion && it.selectedSuggestion == null } + internal data class Blank( override val isActive: Boolean, override val indentLevel: Int = 0, @@ -38,7 +44,7 @@ sealed class CodeBlock { override val children: List = emptyList() override val analyticRepresentation: String - get() = "Blank(isActive=$isActive, suggestions=$suggestions)" + get() = "Blank(isActive=$isActive, indentLevel=$indentLevel, suggestions=$suggestions)" override fun toReplyString(): String = "" } @@ -52,7 +58,7 @@ sealed class CodeBlock { override val suggestions: List = emptyList() override val analyticRepresentation: String = - "Print(children=$children)" + "Print(indentLevel=$indentLevel, children=$children)" override fun toReplyString(): String = buildString { @@ -63,7 +69,7 @@ sealed class CodeBlock { } override fun toString(): String = - "Print(children=$children)" + "Print(indentLevel=$indentLevel, children=$children)" } internal data class Variable( @@ -81,7 +87,7 @@ sealed class CodeBlock { override val suggestions: List = emptyList() override val analyticRepresentation: String - get() = "Variable(children=$children)" + get() = "Variable(indentLevel=$indentLevel, children=$children)" override fun toReplyString(): String = buildString { @@ -92,7 +98,7 @@ sealed class CodeBlock { } override fun toString(): String = - "Variable(children=$children)" + "Variable(indentLevel=$indentLevel, children=$children)" } internal data class IfStatement( @@ -104,7 +110,7 @@ sealed class CodeBlock { override val suggestions: List = emptyList() override val analyticRepresentation: String - get() = "IfStatement(children=$children)" + get() = "IfStatement(indentLevel=$indentLevel, children=$children)" override fun toReplyString(): String = buildString { @@ -115,7 +121,46 @@ sealed class CodeBlock { } override fun toString(): String = - "IfStatement(children=$children)" + "IfStatement(indentLevel=$indentLevel, children=$children)" + } + + internal data class ElifStatement( + override val indentLevel: Int = 0, + override val children: List + ) : CodeBlock() { + override val isActive: Boolean = false + + override val suggestions: List = emptyList() + + override val analyticRepresentation: String + get() = "ElifStatement(indentLevel=$indentLevel, children=$children)" + + override fun toReplyString(): String = + buildString { + append("elif ") + append(joinChildrenToReplyString(children)) + append(":") + } + + override fun toString(): String = + "ElifStatement(indentLevel=$indentLevel, children=$children)" + } + + internal data class ElseStatement( + override val isActive: Boolean, + override val indentLevel: Int = 0 + ) : CodeBlock() { + override val suggestions: List = emptyList() + + override val children: List = emptyList() + + override val analyticRepresentation: String + get() = "ElseStatement(isActive=$isActive, indentLevel=$indentLevel)" + + override fun toReplyString(): String = "else:" + + override fun toString(): String = + "ElseStatement(isActive=$isActive, indentLevel=$indentLevel)" } } @@ -144,10 +189,12 @@ internal fun CodeBlock.Companion.joinChildrenToReplyString(children: List): CodeBlock = when (this) { - is CodeBlock.Blank -> this + is CodeBlock.Blank, + is CodeBlock.ElseStatement -> this is CodeBlock.Print -> copy(children = children.cast()) is CodeBlock.Variable -> copy(children = children.cast()) is CodeBlock.IfStatement -> copy(children = children.cast()) + is CodeBlock.ElifStatement -> copy(children = children.cast()) } internal fun CodeBlock.updatedIndentLevel(indentLevel: Int): CodeBlock = @@ -156,4 +203,6 @@ internal fun CodeBlock.updatedIndentLevel(indentLevel: Int): CodeBlock = is CodeBlock.Print -> copy(indentLevel = indentLevel) is CodeBlock.Variable -> copy(indentLevel = indentLevel) is CodeBlock.IfStatement -> copy(indentLevel = indentLevel) + is CodeBlock.ElifStatement -> copy(indentLevel = indentLevel) + is CodeBlock.ElseStatement -> copy(indentLevel = indentLevel) } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/domain/model/Suggestion.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/domain/model/Suggestion.kt index 0d95eaa5d..9ff56fa42 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/domain/model/Suggestion.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/domain/model/Suggestion.kt @@ -26,6 +26,20 @@ sealed class Suggestion { "IfStatement(text='$text')" } + data object ElifStatement : Suggestion() { + override val text: String = "elif" + + override val analyticRepresentation: String = + "ElifStatement(text='$text')" + } + + data object ElseStatement : Suggestion() { + override val text: String = "else" + + override val analyticRepresentation: String = + "ElseStatement(text='$text')" + } + data class ConstantString( override val text: String ) : Suggestion() { diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/presentation/StepQuizCodeBlanksFeature.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/presentation/StepQuizCodeBlanksFeature.kt index 8cc1fe4e3..11857df8f 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/presentation/StepQuizCodeBlanksFeature.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/presentation/StepQuizCodeBlanksFeature.kt @@ -37,6 +37,9 @@ object StepQuizCodeBlanksFeature { internal val codeBlanksVariablesSuggestions: List = step.codeBlanksVariablesSuggestions() + internal val codeBlanksVariablesAndStringsSuggestions: List = + codeBlanksVariablesSuggestions + codeBlanksStringsSuggestions + internal val codeBlanksOperationsSuggestions: List = step.codeBlanksOperationsSuggestions() } diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducer.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducer.kt index 31f62faa4..be8532bdc 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducer.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducer.kt @@ -21,8 +21,8 @@ import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksF import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksFeature.Message import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksFeature.OnboardingState import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksFeature.State -import ru.nobird.app.core.model.cast import ru.nobird.app.core.model.mutate +import ru.nobird.app.core.model.slice import ru.nobird.app.presentation.redux.reducer.StateReducer private typealias StepQuizCodeBlanksReducerResult = Pair> @@ -89,8 +89,7 @@ class StepQuizCodeBlanksReducer( children = listOf( CodeBlockChild.SelectSuggestion( isActive = true, - suggestions = state.codeBlanksVariablesSuggestions + - state.codeBlanksStringsSuggestions, + suggestions = state.codeBlanksVariablesAndStringsSuggestions, selectedSuggestion = null ) ) @@ -117,16 +116,33 @@ class StepQuizCodeBlanksReducer( children = listOf( CodeBlockChild.SelectSuggestion( isActive = true, - suggestions = state.codeBlanksVariablesSuggestions + - state.codeBlanksStringsSuggestions, + suggestions = state.codeBlanksVariablesAndStringsSuggestions, selectedSuggestion = null ) ) ) - else -> activeCodeBlock + Suggestion.ElifStatement -> + CodeBlock.ElifStatement( + indentLevel = activeCodeBlock.indentLevel, + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = state.codeBlanksVariablesAndStringsSuggestions, + selectedSuggestion = null + ) + ) + ) + Suggestion.ElseStatement -> + CodeBlock.ElseStatement( + isActive = false, + indentLevel = activeCodeBlock.indentLevel + ) + is Suggestion.ConstantString -> activeCodeBlock } + is CodeBlock.Print, - is CodeBlock.IfStatement -> { + is CodeBlock.IfStatement, + is CodeBlock.ElifStatement -> { activeCodeBlock.activeChildIndex()?.let { activeChildIndex -> val activeChild = activeCodeBlock.children[activeChildIndex] as CodeBlockChild.SelectSuggestion val newChildren = activeCodeBlock.children @@ -138,10 +154,10 @@ class StepQuizCodeBlanksReducer( ) ) } - .cast>() activeCodeBlock.updatedChildren(newChildren) } ?: activeCodeBlock } + is CodeBlock.Variable -> { activeCodeBlock.activeChildIndex()?.let { activeChildIndex -> activeCodeBlock.copy( @@ -168,13 +184,35 @@ class StepQuizCodeBlanksReducer( ) } ?: activeCodeBlock } + + is CodeBlock.ElseStatement -> activeCodeBlock } - val newCodeBlocks = state.codeBlocks.mutate { set(activeCodeBlockIndex, newCodeBlock) } + val newCodeBlocks = state.codeBlocks.mutate { + set(activeCodeBlockIndex, newCodeBlock) + + if (newCodeBlock is CodeBlock.ElseStatement && activeCodeBlock !== newCodeBlock) { + val blankInsertIndex = activeCodeBlockIndex + 1 + val blankIndentLevel = newCodeBlock.indentLevel + 1 + add( + blankInsertIndex, + createBlankCodeBlock( + isActive = true, + indentLevel = blankIndentLevel, + suggestions = getSuggestionsForBlankCodeBlock( + index = blankInsertIndex, + indentLevel = blankIndentLevel, + codeBlocks = this, + isVariableSuggestionAvailable = state.isVariableSuggestionsAvailable + ) + ) + ) + } + } val isFulfilledOnboardingPrintCodeBlock = state.onboardingState is OnboardingState.HighlightSuggestions && - activeCodeBlock is CodeBlock.Print && activeCodeBlock.children.any { it.selectedSuggestion == null } && - newCodeBlock is CodeBlock.Print && newCodeBlock.children.all { it.selectedSuggestion != null } + activeCodeBlock is CodeBlock.Print && activeCodeBlock.hasAnyUnselectedChild() && + newCodeBlock is CodeBlock.Print && newCodeBlock.areAllChildrenSelected() val (onboardingState, onboardingActions) = if (isFulfilledOnboardingPrintCodeBlock) { OnboardingState.HighlightCallToActionButton to @@ -250,7 +288,8 @@ class StepQuizCodeBlanksReducer( val newChildren = when (targetCodeBlock) { is CodeBlock.Print, is CodeBlock.Variable, - is CodeBlock.IfStatement -> { + is CodeBlock.IfStatement, + is CodeBlock.ElifStatement -> { targetCodeBlock.children.mapIndexed { index, child -> require(child is CodeBlockChild.SelectSuggestion) if (index == message.codeBlockChildItem.id) { @@ -260,7 +299,9 @@ class StepQuizCodeBlanksReducer( } } } - else -> null + null, + is CodeBlock.Blank, + is CodeBlock.ElseStatement -> null } val newCodeBlocks = state.codeBlocks.mutate { @@ -317,17 +358,27 @@ class StepQuizCodeBlanksReducer( } removeAt(activeCodeBlockIndex) } - val replaceActiveCodeWithBlank = { + val replaceActiveCodeBlockWithBlank = { set( activeCodeBlockIndex, createBlankCodeBlock( isActive = true, indentLevel = activeCodeBlock.indentLevel, - isVariableSuggestionAvailable = state.isVariableSuggestionsAvailable + suggestions = getSuggestionsForBlankCodeBlock( + index = activeCodeBlockIndex, + indentLevel = activeCodeBlock.indentLevel, + codeBlocks = this, + isVariableSuggestionAvailable = state.isVariableSuggestionsAvailable + ) ) ) } + val isNextCodeBlockHasSameIndentLevelOrTrue = state.codeBlocks + .getOrNull(activeCodeBlockIndex + 1) + ?.let { it.indentLevel == activeCodeBlock.indentLevel } + ?: true + when (activeCodeBlock) { is CodeBlock.Blank -> { if (state.codeBlocks.size > 1) { @@ -370,7 +421,7 @@ class StepQuizCodeBlanksReducer( removeActiveCodeBlockAndSetNextActive() else -> - replaceActiveCodeWithBlank() + replaceActiveCodeBlockWithBlank() } } is CodeBlock.Variable -> { @@ -409,51 +460,63 @@ class StepQuizCodeBlanksReducer( if (state.codeBlocks.size > 1) { removeActiveCodeBlockAndSetNextActive() } else { - replaceActiveCodeWithBlank() + replaceActiveCodeBlockWithBlank() } } } - is CodeBlock.IfStatement -> { + is CodeBlock.IfStatement, + is CodeBlock.ElifStatement -> { val activeChildIndex = activeCodeBlock.activeChildIndex() ?: return@mutate - val activeChild = activeCodeBlock.children[activeChildIndex] - - val nextCodeBlock = state.codeBlocks.getOrNull(activeCodeBlockIndex + 1) + val activeChild = activeCodeBlock.children[activeChildIndex] as CodeBlockChild.SelectSuggestion when { - activeChild.selectedSuggestion != null -> + activeChild.selectedSuggestion != null -> { + val newChildren = activeCodeBlock.children.mutate { + set( + activeChildIndex, + activeChild.copy(selectedSuggestion = null) + ) + } set( activeCodeBlockIndex, - activeCodeBlock.copy( - children = activeCodeBlock.children.mutate { - set( - activeChildIndex, - activeChild.copy(selectedSuggestion = null) - ) - } - ) + activeCodeBlock.updatedChildren(newChildren) ) + } - activeChildIndex > 0 -> + activeChildIndex > 0 -> { + val newChildren = activeCodeBlock.children.mutate { + val previousChildIndex = activeChildIndex - 1 + val previousChild = this[previousChildIndex] as CodeBlockChild.SelectSuggestion + set( + previousChildIndex, + previousChild.copy(isActive = true) + ) + + removeAt(activeChildIndex) + } set( activeCodeBlockIndex, - activeCodeBlock.copy( - children = activeCodeBlock.children.mutate { - set( - activeChildIndex - 1, - this[activeChildIndex - 1].copy(isActive = true) - ) - removeAt(activeChildIndex) - } - ) + activeCodeBlock.updatedChildren(newChildren) ) + } (activeChildIndex == 0 || activeCodeBlock.areAllChildrenUnselected()) && - (nextCodeBlock?.let { it.indentLevel == activeCodeBlock.indentLevel } ?: true) -> + isNextCodeBlockHasSameIndentLevelOrTrue -> { if (state.codeBlocks.size > 1) { removeActiveCodeBlockAndSetNextActive() } else { - replaceActiveCodeWithBlank() + replaceActiveCodeBlockWithBlank() } + } + } + } + is CodeBlock.ElseStatement -> { + if (isNextCodeBlockHasSameIndentLevelOrTrue) { + if (state.codeBlocks.size > 1) { + removeActiveCodeBlockAndSetNextActive() + } else { + replaceActiveCodeBlockWithBlank() + } } } } @@ -484,7 +547,9 @@ class StepQuizCodeBlanksReducer( return if (activeCodeBlock != null) { val indentLevel = when (activeCodeBlock) { - is CodeBlock.IfStatement -> activeCodeBlock.indentLevel + 1 + is CodeBlock.IfStatement, + is CodeBlock.ElifStatement, + is CodeBlock.ElseStatement -> activeCodeBlock.indentLevel + 1 else -> activeCodeBlock.indentLevel } @@ -493,15 +558,23 @@ class StepQuizCodeBlanksReducer( activeCodeBlockIndex, setCodeBlockIsActive(codeBlock = state.codeBlocks[activeCodeBlockIndex], isActive = false) ) + + val insertIndex = activeCodeBlockIndex + 1 add( - activeCodeBlockIndex + 1, + insertIndex, createBlankCodeBlock( isActive = true, indentLevel = indentLevel, - isVariableSuggestionAvailable = state.isVariableSuggestionsAvailable + suggestions = getSuggestionsForBlankCodeBlock( + index = insertIndex, + indentLevel = indentLevel, + codeBlocks = this, + isVariableSuggestionAvailable = state.isVariableSuggestionsAvailable + ) ) ) } + state.copy(codeBlocks = newCodeBlocks) to actions } else { state to actions @@ -534,7 +607,8 @@ class StepQuizCodeBlanksReducer( val newChildren = when (activeCodeBlock) { is CodeBlock.Print, is CodeBlock.Variable, - is CodeBlock.IfStatement -> { + is CodeBlock.IfStatement, + is CodeBlock.ElifStatement -> { activeCodeBlock.activeChildIndex()?.let { activeChildIndex -> val activeChild = activeCodeBlock.children[activeChildIndex] as CodeBlockChild.SelectSuggestion @@ -561,15 +635,14 @@ class StepQuizCodeBlanksReducer( selectedSuggestion = null ) - activeCodeBlock.children - .mutate { - set(activeChildIndex, activeChild.copy(isActive = false)) - add(activeChildIndex + 1, newChild) - } - .cast>() + activeCodeBlock.children.mutate { + set(activeChildIndex, activeChild.copy(isActive = false)) + add(activeChildIndex + 1, newChild) + } } } - else -> null + is CodeBlock.Blank, + is CodeBlock.ElseStatement -> null } val newCodeBlocks = state.codeBlocks.mutate { @@ -612,7 +685,18 @@ class StepQuizCodeBlanksReducer( codeBlocks = state.codeBlocks.mutate { set( activeCodeBlockIndex, - activeCodeBlock.updatedIndentLevel(newIndentLevel) + when (activeCodeBlock) { + is CodeBlock.Blank -> activeCodeBlock.copy( + indentLevel = newIndentLevel, + suggestions = getSuggestionsForBlankCodeBlock( + index = activeCodeBlockIndex, + indentLevel = newIndentLevel, + codeBlocks = this, + isVariableSuggestionAvailable = state.isVariableSuggestionsAvailable + ) + ) + else -> activeCodeBlock.updatedIndentLevel(newIndentLevel) + } ) } ) to actions @@ -621,9 +705,11 @@ class StepQuizCodeBlanksReducer( private fun setCodeBlockIsActive(codeBlock: CodeBlock, isActive: Boolean): CodeBlock = when (codeBlock) { is CodeBlock.Blank -> codeBlock.copy(isActive = isActive) + is CodeBlock.ElseStatement -> codeBlock.copy(isActive = isActive) is CodeBlock.Print, is CodeBlock.Variable, - is CodeBlock.IfStatement -> { + is CodeBlock.IfStatement, + is CodeBlock.ElifStatement -> { if (isActive) { if (codeBlock.activeChild() != null) { codeBlock @@ -651,17 +737,51 @@ class StepQuizCodeBlanksReducer( private fun createBlankCodeBlock( isActive: Boolean, indentLevel: Int, - isVariableSuggestionAvailable: Boolean + suggestions: List ): CodeBlock.Blank = CodeBlock.Blank( isActive = isActive, indentLevel = indentLevel, - suggestions = if (isVariableSuggestionAvailable) { + suggestions = suggestions + ) + + private fun getSuggestionsForBlankCodeBlock( + index: Int = -1, + indentLevel: Int = 0, + codeBlocks: List = emptyList(), + isVariableSuggestionAvailable: Boolean + ): List = + when { + areElifAndElseStatementsSuggestionsAvailable(index, indentLevel, codeBlocks) -> + listOf(Suggestion.Print, Suggestion.Variable, Suggestion.ElifStatement, Suggestion.ElseStatement) + + isVariableSuggestionAvailable -> listOf(Suggestion.Print, Suggestion.Variable, Suggestion.IfStatement) - } else { + + else -> listOf(Suggestion.Print) - } - ) + } + + internal fun areElifAndElseStatementsSuggestionsAvailable( + index: Int, + indentLevel: Int, + codeBlocks: List + ): Boolean { + if (index < 2 || codeBlocks.isEmpty()) { + return false + } + + val previousCodeBlock = codeBlocks + .slice(to = index) + .reversed() + .firstOrNull { it.indentLevel == indentLevel } + + return when (previousCodeBlock) { + is CodeBlock.IfStatement, + is CodeBlock.ElifStatement -> true + else -> false + } + } private fun createInitialCodeBlocks(step: Step): List = if (step.id == 47580L) { @@ -714,7 +834,9 @@ class StepQuizCodeBlanksReducer( createBlankCodeBlock( isActive = true, indentLevel = 0, - isVariableSuggestionAvailable = StepQuizCodeBlanksFeature.isVariableSuggestionsAvailable(step) + suggestions = getSuggestionsForBlankCodeBlock( + isVariableSuggestionAvailable = StepQuizCodeBlanksFeature.isVariableSuggestionsAvailable(step) + ) ) ) } else { @@ -722,7 +844,9 @@ class StepQuizCodeBlanksReducer( createBlankCodeBlock( isActive = true, indentLevel = 0, - isVariableSuggestionAvailable = StepQuizCodeBlanksFeature.isVariableSuggestionsAvailable(step) + suggestions = getSuggestionsForBlankCodeBlock( + isVariableSuggestionAvailable = StepQuizCodeBlanksFeature.isVariableSuggestionsAvailable(step) + ) ) ) } diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/view/mapper/StepQuizCodeBlanksViewStateMapper.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/view/mapper/StepQuizCodeBlanksViewStateMapper.kt index 899f8f17d..fb7f1d6b9 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/view/mapper/StepQuizCodeBlanksViewStateMapper.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/view/mapper/StepQuizCodeBlanksViewStateMapper.kt @@ -23,10 +23,13 @@ object StepQuizCodeBlanksViewStateMapper { val suggestions = when (activeCodeBlock) { - is CodeBlock.Blank -> activeCodeBlock.suggestions + is CodeBlock.Blank -> + activeCodeBlock.suggestions + is CodeBlock.Print, is CodeBlock.Variable, - is CodeBlock.IfStatement -> + is CodeBlock.IfStatement, + is CodeBlock.ElifStatement -> (activeCodeBlock.activeChild() as? CodeBlockChild.SelectSuggestion)?.let { if (it.selectedSuggestion == null) { it.suggestions @@ -34,7 +37,9 @@ object StepQuizCodeBlanksViewStateMapper { emptyList() } } - null -> emptyList() + + null, + is CodeBlock.ElseStatement -> emptyList() } ?: emptyList() val isDeleteButtonEnabled = @@ -55,13 +60,16 @@ object StepQuizCodeBlanksViewStateMapper { } } ?: false } - is CodeBlock.IfStatement -> { + is CodeBlock.IfStatement, + is CodeBlock.ElifStatement -> { activeCodeBlock.activeChildIndex()?.let { activeChildIndex -> + val activeChild = activeCodeBlock.children[activeChildIndex] as CodeBlockChild.SelectSuggestion + when { activeChildIndex > 0 -> true - activeCodeBlock.children[activeChildIndex].selectedSuggestion != null -> + activeChild.selectedSuggestion != null -> true else -> @@ -70,13 +78,17 @@ object StepQuizCodeBlanksViewStateMapper { } } ?: false } + is CodeBlock.ElseStatement -> + codeBlocks.getOrNull(activeCodeBlockIndex + 1) + ?.let { it.indentLevel == activeCodeBlock.indentLevel } ?: true null -> false } val isSpaceButtonHidden = if (state.codeBlanksOperationsSuggestions.isNotEmpty()) { when (activeCodeBlock) { is CodeBlock.Print, - is CodeBlock.IfStatement -> { + is CodeBlock.IfStatement, + is CodeBlock.ElifStatement -> { val activeChild = activeCodeBlock.activeChild() as? CodeBlockChild.SelectSuggestion activeChild?.selectedSuggestion == null } @@ -88,17 +100,26 @@ object StepQuizCodeBlanksViewStateMapper { true } } - else -> true + null, + is CodeBlock.Blank, + is CodeBlock.ElseStatement -> true } } else { true } + val isPreviousCodeBlockCondition = + when (activeCodeBlockIndex?.let { state.codeBlocks.getOrNull(it - 1) }) { + is CodeBlock.IfStatement, + is CodeBlock.ElifStatement, + is CodeBlock.ElseStatement -> true + else -> false + } val isDecreaseIndentLevelButtonHidden = when { activeCodeBlock == null -> true activeCodeBlock.indentLevel < 1 -> true - state.codeBlocks.getOrNull(activeCodeBlockIndex - 1) is CodeBlock.IfStatement -> true + isPreviousCodeBlockCondition -> true else -> false } @@ -141,6 +162,18 @@ object StepQuizCodeBlanksViewStateMapper { indentLevel = codeBlock.indentLevel, children = codeBlock.children.mapIndexed(::mapCodeBlockChild) ) + is CodeBlock.ElifStatement -> + StepQuizCodeBlanksViewState.CodeBlockItem.ElifStatement( + id = index, + indentLevel = codeBlock.indentLevel, + children = codeBlock.children.mapIndexed(::mapCodeBlockChild) + ) + is CodeBlock.ElseStatement -> + StepQuizCodeBlanksViewState.CodeBlockItem.ElseStatement( + id = index, + indentLevel = codeBlock.indentLevel, + isActive = codeBlock.isActive + ) } private fun mapCodeBlockChild( diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/view/model/StepQuizCodeBlanksViewState.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/view/model/StepQuizCodeBlanksViewState.kt index 0cddcf03b..2bf809df5 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/view/model/StepQuizCodeBlanksViewState.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/view/model/StepQuizCodeBlanksViewState.kt @@ -59,6 +59,20 @@ sealed interface StepQuizCodeBlanksViewState { override val indentLevel: Int = 0, override val children: List ) : CodeBlockItem + + data class ElifStatement( + override val id: Int, + override val indentLevel: Int = 0, + override val children: List + ) : CodeBlockItem + + data class ElseStatement( + override val id: Int, + override val indentLevel: Int = 0, + val isActive: Boolean + ) : CodeBlockItem { + override val children: List = emptyList() + } } data class CodeBlockChildItem( diff --git a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerCodeBlockChildClickedTest.kt b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerCodeBlockChildClickedTest.kt index feea44ebf..9c864bf95 100644 --- a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerCodeBlockChildClickedTest.kt +++ b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerCodeBlockChildClickedTest.kt @@ -53,6 +53,43 @@ class StepQuizCodeBlanksReducerCodeBlockChildClickedTest { assertContainsCodeBlockChildClickedAnalyticEvent(actions) } + @Test + fun `CodeBlockChildClicked should not update state if target code block is Blank`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Blank( + isActive = false, + suggestions = emptyList() + ) + ) + ) + + val message = StepQuizCodeBlanksFeature.Message.CodeBlockChildClicked( + codeBlockItem = StepQuizCodeBlanksViewState.CodeBlockItem.Blank(id = 0, isActive = false), + codeBlockChildItem = StepQuizCodeBlanksViewState.CodeBlockChildItem(id = 0, isActive = false, value = null) + ) + val (state, actions) = reducer.reduce(initialState, message) + + assertEquals(initialState, state) + assertContainsCodeBlockChildClickedAnalyticEvent(actions) + } + + @Test + fun `CodeBlockChildClicked should not update state if target code block is ElseStatement`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf(CodeBlock.ElseStatement(isActive = false)) + ) + + val message = StepQuizCodeBlanksFeature.Message.CodeBlockChildClicked( + codeBlockItem = StepQuizCodeBlanksViewState.CodeBlockItem.ElseStatement(id = 0, isActive = false), + codeBlockChildItem = StepQuizCodeBlanksViewState.CodeBlockChildItem(id = 0, isActive = false, value = null) + ) + val (state, actions) = reducer.reduce(initialState, message) + + assertEquals(initialState, state) + assertContainsCodeBlockChildClickedAnalyticEvent(actions) + } + @Test fun `CodeBlockChildClicked should update state to activate the clicked Variable child`() { val initialState = StepQuizCodeBlanksFeature.State.Content.stub( @@ -153,6 +190,86 @@ class StepQuizCodeBlanksReducerCodeBlockChildClickedTest { assertContainsCodeBlockChildClickedAnalyticEvent(actions) } + @Test + fun `CodeBlockChildClicked should update state to activate the clicked IfStatement child`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.IfStatement( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + ) + + val message = StepQuizCodeBlanksFeature.Message.CodeBlockChildClicked( + codeBlockItem = StepQuizCodeBlanksViewState.CodeBlockItem.IfStatement(id = 0, children = emptyList()), + codeBlockChildItem = StepQuizCodeBlanksViewState.CodeBlockChildItem(id = 0, isActive = false, value = null) + ) + val (state, actions) = reducer.reduce(initialState, message) + + val expectedState = initialState.copy( + codeBlocks = listOf( + CodeBlock.IfStatement( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + ) + + assertEquals(expectedState, state) + assertContainsCodeBlockChildClickedAnalyticEvent(actions) + } + + @Test + fun `CodeBlockChildClicked should update state to activate the clicked ElifStatement child`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.ElifStatement( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + ) + + val message = StepQuizCodeBlanksFeature.Message.CodeBlockChildClicked( + codeBlockItem = StepQuizCodeBlanksViewState.CodeBlockItem.ElifStatement(id = 0, children = emptyList()), + codeBlockChildItem = StepQuizCodeBlanksViewState.CodeBlockChildItem(id = 0, isActive = false, value = null) + ) + val (state, actions) = reducer.reduce(initialState, message) + + val expectedState = initialState.copy( + codeBlocks = listOf( + CodeBlock.ElifStatement( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + ) + + assertEquals(expectedState, state) + assertContainsCodeBlockChildClickedAnalyticEvent(actions) + } + private fun assertContainsCodeBlockChildClickedAnalyticEvent(actions: Set) { assertTrue { actions.any { diff --git a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerCodeBlockClickedTest.kt b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerCodeBlockClickedTest.kt index 7a88b7b36..84deb40e1 100644 --- a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerCodeBlockClickedTest.kt +++ b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerCodeBlockClickedTest.kt @@ -26,6 +26,36 @@ class StepQuizCodeBlanksReducerCodeBlockClickedTest { assertTrue(actions.isEmpty()) } + @Test + fun `CodeBlockClicked should not update state if no target code block`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf(CodeBlock.Blank(isActive = true, suggestions = emptyList())) + ) + + val message = StepQuizCodeBlanksFeature.Message.CodeBlockClicked( + codeBlockItem = StepQuizCodeBlanksViewState.CodeBlockItem.Blank(id = 1, isActive = true) + ) + val (state, actions) = reducer.reduce(initialState, message) + + assertEquals(initialState, state) + assertContainsCodeBlockClickedAnalyticEvent(actions) + } + + @Test + fun `CodeBlockClicked should not update state if target code block is active`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf(CodeBlock.Blank(isActive = true, suggestions = emptyList())) + ) + + val message = StepQuizCodeBlanksFeature.Message.CodeBlockClicked( + codeBlockItem = StepQuizCodeBlanksViewState.CodeBlockItem.Blank(id = 0, isActive = true) + ) + val (state, actions) = reducer.reduce(initialState, message) + + assertEquals(initialState, state) + assertContainsCodeBlockClickedAnalyticEvent(actions) + } + @Test fun `CodeBlockClicked should update active Print code block`() { val initialState = StepQuizCodeBlanksFeature.State.Content.stub( @@ -64,7 +94,32 @@ class StepQuizCodeBlanksReducerCodeBlockClickedTest { } @Test - fun `CodeBlockClicked should update active Variable code block`() { + fun `CodeBlockClicked should update active ElseStatement code block`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Blank(isActive = false, suggestions = emptyList()), + CodeBlock.ElseStatement(isActive = true) + ) + ) + + val message = StepQuizCodeBlanksFeature.Message.CodeBlockClicked( + codeBlockItem = StepQuizCodeBlanksViewState.CodeBlockItem.Blank(id = 0, isActive = false) + ) + val (state, actions) = reducer.reduce(initialState, message) + + val expectedState = initialState.copy( + codeBlocks = listOf( + CodeBlock.Blank(isActive = true, suggestions = emptyList()), + CodeBlock.ElseStatement(isActive = false) + ) + ) + + assertEquals(expectedState, state) + assertContainsCodeBlockClickedAnalyticEvent(actions) + } + + @Test + fun `CodeBlockClicked should update active Variable code block to not active`() { val initialState = StepQuizCodeBlanksFeature.State.Content.stub( codeBlocks = listOf( CodeBlock.Print( @@ -118,6 +173,61 @@ class StepQuizCodeBlanksReducerCodeBlockClickedTest { assertContainsCodeBlockClickedAnalyticEvent(actions) } + @Test + fun `CodeBlockClicked should update not active Variable code block to active`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, suggestions = emptyList(), selectedSuggestion = null + ) + ) + ), + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, suggestions = emptyList(), selectedSuggestion = null + ), + CodeBlockChild.SelectSuggestion( + isActive = false, suggestions = emptyList(), selectedSuggestion = null + ) + ) + ) + ) + ) + + val message = StepQuizCodeBlanksFeature.Message.CodeBlockClicked( + codeBlockItem = StepQuizCodeBlanksViewState.CodeBlockItem.Blank(id = 1, isActive = false) + ) + val (state, actions) = reducer.reduce(initialState, message) + + val expectedState = initialState.copy( + codeBlocks = listOf( + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, suggestions = emptyList(), selectedSuggestion = null + ) + ) + ), + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, suggestions = emptyList(), selectedSuggestion = null + ), + CodeBlockChild.SelectSuggestion( + isActive = false, suggestions = emptyList(), selectedSuggestion = null + ) + ) + ) + ) + ) + + assertEquals(expectedState, state) + assertContainsCodeBlockClickedAnalyticEvent(actions) + } + private fun assertContainsCodeBlockClickedAnalyticEvent(actions: Set) { assertTrue { actions.any { diff --git a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerDecreaseIndentLevelButtonClickedTest.kt b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerDecreaseIndentLevelButtonClickedTest.kt index 63c0f39d7..9e16f08b9 100644 --- a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerDecreaseIndentLevelButtonClickedTest.kt +++ b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerDecreaseIndentLevelButtonClickedTest.kt @@ -6,12 +6,26 @@ import kotlin.test.assertTrue import org.hyperskill.app.step.domain.model.StepRoute import org.hyperskill.app.step_quiz_code_blanks.domain.analytic.StepQuizCodeBlanksClickedDecreaseIndentLevelHyperskillAnalyticEvent import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlock +import org.hyperskill.app.step_quiz_code_blanks.domain.model.Suggestion import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksFeature import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksReducer class StepQuizCodeBlanksReducerDecreaseIndentLevelButtonClickedTest { private val reducer = StepQuizCodeBlanksReducer(StepRoute.Learn.Step(1, null)) + @Test + fun `DecreaseIndentLevelButtonClicked should not update state if state is not Content`() { + val initialState = StepQuizCodeBlanksFeature.State.Idle + + val (state, actions) = reducer.reduce( + initialState, + StepQuizCodeBlanksFeature.Message.DecreaseIndentLevelButtonClicked + ) + + assertEquals(initialState, state) + assertTrue(actions.isEmpty()) + } + @Test fun `DecreaseIndentLevelButtonClicked should not update state if no active code block`() { val initialState = StepQuizCodeBlanksFeature.State.Content.stub( @@ -54,7 +68,44 @@ class StepQuizCodeBlanksReducerDecreaseIndentLevelButtonClickedTest { ) val expectedState = initialState.copy( - codeBlocks = listOf(CodeBlock.Blank(isActive = true, indentLevel = 0, suggestions = emptyList())) + codeBlocks = listOf( + CodeBlock.Blank( + isActive = true, + indentLevel = 0, + suggestions = listOf(Suggestion.Print) + ) + ) + ) + + assertEquals(expectedState, state) + assertContainsDecreaseIndentLevelAnalyticEvent(actions) + } + + @Test + fun `DecreaseIndentLevelButtonClicked should decrease indent level by 1 and update suggestions for Blank`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Blank( + isActive = true, + indentLevel = 1, + suggestions = emptyList() + ) + ) + ) + + val (state, actions) = reducer.reduce( + initialState, + StepQuizCodeBlanksFeature.Message.DecreaseIndentLevelButtonClicked + ) + + val expectedState = initialState.copy( + codeBlocks = listOf( + CodeBlock.Blank( + isActive = true, + indentLevel = 0, + suggestions = listOf(Suggestion.Print) + ) + ) ) assertEquals(expectedState, state) @@ -78,7 +129,7 @@ class StepQuizCodeBlanksReducerDecreaseIndentLevelButtonClickedTest { val expectedState = initialState.copy( codeBlocks = listOf( CodeBlock.Blank(isActive = false, indentLevel = 3, suggestions = emptyList()), - CodeBlock.Blank(isActive = true, indentLevel = 1, suggestions = emptyList()) + CodeBlock.Blank(isActive = true, indentLevel = 1, suggestions = listOf(Suggestion.Print)) ) ) diff --git a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerDeleteButtonClickedTest.kt b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerDeleteButtonClickedTest.kt index 2ab0d37fe..c01e8a93e 100644 --- a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerDeleteButtonClickedTest.kt +++ b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerDeleteButtonClickedTest.kt @@ -62,43 +62,6 @@ class StepQuizCodeBlanksReducerDeleteButtonClickedTest { assertContainsDeleteButtonClickedAnalyticEvent(actions) } - @Test - fun `DeleteButtonClicked should clear suggestion if active Print code block has selected suggestion`() { - val suggestion = Suggestion.ConstantString("suggestion") - val initialState = StepQuizCodeBlanksFeature.State.Content.stub( - codeBlocks = listOf( - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = listOf(suggestion), - selectedSuggestion = suggestion - ) - ) - ) - ) - ) - - val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.DeleteButtonClicked) - - val expectedState = initialState.copy( - codeBlocks = listOf( - CodeBlock.Print( - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = true, - suggestions = listOf(suggestion), - selectedSuggestion = null - ) - ) - ) - ) - ) - - assertEquals(expectedState, state) - assertContainsDeleteButtonClickedAnalyticEvent(actions) - } - @Test fun `DeleteButtonClicked should set next code block as active if no code block before deleted`() { val initialStates = listOf( @@ -402,6 +365,84 @@ class StepQuizCodeBlanksReducerDeleteButtonClickedTest { } } + @Test + fun `DeleteButtonClicked should clear suggestion if active Print code block has selected suggestion`() { + val suggestion = Suggestion.ConstantString("suggestion") + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = listOf(suggestion), + selectedSuggestion = suggestion + ) + ) + ) + ) + ) + + val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.DeleteButtonClicked) + + val expectedState = initialState.copy( + codeBlocks = listOf( + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = listOf(suggestion), + selectedSuggestion = null + ) + ) + ) + ) + ) + + assertEquals(expectedState, state) + assertContainsDeleteButtonClickedAnalyticEvent(actions) + } + + @Test + fun `DeleteButtonClicked should remove child for Print code block`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString("suggestion") + ), + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + ) + + val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.DeleteButtonClicked) + + val expectedState = initialState.copy( + codeBlocks = listOf( + CodeBlock.Print( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString("suggestion") + ) + ) + ) + ) + ) + + assertEquals(expectedState, state) + assertContainsDeleteButtonClickedAnalyticEvent(actions) + } + @Test fun `DeleteButtonClicked should replace single Print code block with Blank`() { val initialState = StepQuizCodeBlanksFeature.State.Content.stub( @@ -428,6 +469,94 @@ class StepQuizCodeBlanksReducerDeleteButtonClickedTest { assertContainsDeleteButtonClickedAnalyticEvent(actions) } + @Test + fun `DeleteButtonClicked should clear suggestion if active Variable code block has selected suggestion`() { + val suggestion = Suggestion.ConstantString("suggestion") + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = listOf(suggestion), + selectedSuggestion = suggestion + ) + ) + ) + ) + ) + + val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.DeleteButtonClicked) + + val expectedState = initialState.copy( + codeBlocks = listOf( + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = listOf(suggestion), + selectedSuggestion = null + ) + ) + ) + ) + ) + + assertEquals(expectedState, state) + assertContainsDeleteButtonClickedAnalyticEvent(actions) + } + + @Test + fun `DeleteButtonClicked should remove child for Variable code block`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = null + ), + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString("suggestion") + ), + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + ) + + val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.DeleteButtonClicked) + + val expectedState = initialState.copy( + codeBlocks = listOf( + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = null + ), + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString("suggestion") + ) + ) + ) + ) + ) + + assertEquals(expectedState, state) + assertContainsDeleteButtonClickedAnalyticEvent(actions) + } + @Test fun `DeleteButtonClicked should replace single Variable code block with Blank`() { val initialState = StepQuizCodeBlanksFeature.State.Content.stub( @@ -459,6 +588,336 @@ class StepQuizCodeBlanksReducerDeleteButtonClickedTest { assertContainsDeleteButtonClickedAnalyticEvent(actions) } + @Test + fun `DeleteButtonClicked should remove Variable code block and set previous active`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Blank(isActive = false, suggestions = emptyList()), + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = null + ), + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + ) + + val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.DeleteButtonClicked) + + val expectedState = initialState.copy( + codeBlocks = listOf(CodeBlock.Blank(isActive = true, suggestions = emptyList())) + ) + + assertEquals(expectedState, state) + assertContainsDeleteButtonClickedAnalyticEvent(actions) + } + + @Test + fun `DeleteButtonClicked should remove Variable code block and set next active`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Variable( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = null + ), + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ), + CodeBlock.Blank(isActive = false, suggestions = emptyList()) + ) + ) + + val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.DeleteButtonClicked) + + val expectedState = initialState.copy( + codeBlocks = listOf(CodeBlock.Blank(isActive = true, suggestions = emptyList())) + ) + + assertEquals(expectedState, state) + assertContainsDeleteButtonClickedAnalyticEvent(actions) + } + + @Test + fun `DeleteButtonClicked should clear suggestion if active IfStatement code block has selected suggestion`() { + val suggestion = Suggestion.ConstantString("suggestion") + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.IfStatement( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = listOf(suggestion), + selectedSuggestion = suggestion + ) + ) + ) + ) + ) + + val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.DeleteButtonClicked) + + val expectedState = initialState.copy( + codeBlocks = listOf( + CodeBlock.IfStatement( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = listOf(suggestion), + selectedSuggestion = null + ) + ) + ) + ) + ) + + assertEquals(expectedState, state) + assertContainsDeleteButtonClickedAnalyticEvent(actions) + } + + @Test + fun `DeleteButtonClicked should remove child for IfStatement code block`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.IfStatement( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString("suggestion") + ), + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + ) + + val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.DeleteButtonClicked) + + val expectedState = initialState.copy( + codeBlocks = listOf( + CodeBlock.IfStatement( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString("suggestion") + ) + ) + ) + ) + ) + + assertEquals(expectedState, state) + assertContainsDeleteButtonClickedAnalyticEvent(actions) + } + + @Test + fun `DeleteButtonClicked should replace single IfStatement code block with Blank`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.IfStatement( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + ) + + val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.DeleteButtonClicked) + + val expectedState = initialState.copy( + codeBlocks = listOf(CodeBlock.Blank(isActive = true, suggestions = listOf(Suggestion.Print))) + ) + + assertEquals(expectedState, state) + assertContainsDeleteButtonClickedAnalyticEvent(actions) + } + + /* ktlint-disable */ + @Test + fun `DeleteButtonClicked should not replace single IfStatement code block with Blank when next code block has different indent level`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.IfStatement( + indentLevel = 0, + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ), + CodeBlock.Blank(indentLevel = 1, isActive = false, suggestions = emptyList()) + ) + ) + + val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.DeleteButtonClicked) + + assertEquals(initialState, state) + assertContainsDeleteButtonClickedAnalyticEvent(actions) + } + + @Test + fun `DeleteButtonClicked should remove IfStatement code block and set previous active`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Blank(isActive = false, suggestions = emptyList()), + CodeBlock.IfStatement( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = null + ), + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + ) + + val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.DeleteButtonClicked) + + val expectedState = initialState.copy( + codeBlocks = listOf(CodeBlock.Blank(isActive = true, suggestions = emptyList())) + ) + + assertEquals(expectedState, state) + assertContainsDeleteButtonClickedAnalyticEvent(actions) + } + + @Test + fun `DeleteButtonClicked should remove IfStatement code block and set next active`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.IfStatement( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = null + ), + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ), + CodeBlock.Blank(isActive = false, suggestions = emptyList()) + ) + ) + + val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.DeleteButtonClicked) + + val expectedState = initialState.copy( + codeBlocks = listOf(CodeBlock.Blank(isActive = true, suggestions = emptyList())) + ) + + assertEquals(expectedState, state) + assertContainsDeleteButtonClickedAnalyticEvent(actions) + } + + /* ktlint-disable */ + @Test + fun `DeleteButtonClicked should not replace single ElseStatement code block with Blank when next code block has different indent level`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.ElseStatement( + indentLevel = 0, + isActive = true + ), + CodeBlock.Blank(indentLevel = 1, isActive = false, suggestions = emptyList()) + ) + ) + + val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.DeleteButtonClicked) + + assertEquals(initialState, state) + assertContainsDeleteButtonClickedAnalyticEvent(actions) + } + + @Test + fun `DeleteButtonClicked should replace single ElseStatement code block with Blank`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf(CodeBlock.ElseStatement(isActive = true)) + ) + + val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.DeleteButtonClicked) + + val expectedState = initialState.copy( + codeBlocks = listOf(CodeBlock.Blank(isActive = true, suggestions = listOf(Suggestion.Print))) + ) + + assertEquals(expectedState, state) + assertContainsDeleteButtonClickedAnalyticEvent(actions) + } + + @Test + fun `DeleteButtonClicked should remove ElseStatement code block and set previous active`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Blank(isActive = false, suggestions = emptyList()), + CodeBlock.ElseStatement(isActive = true) + ) + ) + + val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.DeleteButtonClicked) + + val expectedState = initialState.copy( + codeBlocks = listOf(CodeBlock.Blank(isActive = true, suggestions = emptyList())) + ) + + assertEquals(expectedState, state) + assertContainsDeleteButtonClickedAnalyticEvent(actions) + } + + @Test + fun `DeleteButtonClicked should remove ElseStatement code block and set next active`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.ElseStatement(isActive = true), + CodeBlock.Blank(isActive = false, suggestions = emptyList()) + ) + ) + + val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.DeleteButtonClicked) + + val expectedState = initialState.copy( + codeBlocks = listOf(CodeBlock.Blank(isActive = true, suggestions = emptyList())) + ) + + assertEquals(expectedState, state) + assertContainsDeleteButtonClickedAnalyticEvent(actions) + } + private fun assertContainsDeleteButtonClickedAnalyticEvent(actions: Set) { assertTrue { actions.any { diff --git a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerElifAndElseStatementsSuggestionsAvailabilityTest.kt b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerElifAndElseStatementsSuggestionsAvailabilityTest.kt new file mode 100644 index 000000000..a9ff044f7 --- /dev/null +++ b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerElifAndElseStatementsSuggestionsAvailabilityTest.kt @@ -0,0 +1,74 @@ +package org.hyperskill.step_quiz_code_blanks.presentation + +import kotlin.test.Test +import kotlin.test.assertFalse +import kotlin.test.assertTrue +import org.hyperskill.app.step.domain.model.StepRoute +import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlock +import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksReducer + +class StepQuizCodeBlanksReducerElifAndElseStatementsSuggestionsAvailabilityTest { + private val reducer = StepQuizCodeBlanksReducer(StepRoute.Learn.Step(1, null)) + + @Test + fun `Should return false if index is less than 2`() { + val result = + reducer.areElifAndElseStatementsSuggestionsAvailable(index = 1, indentLevel = 0, codeBlocks = emptyList()) + assertFalse(result) + } + + @Test + fun `Should return false if codeBlocks is empty`() { + val result = + reducer.areElifAndElseStatementsSuggestionsAvailable(index = 2, indentLevel = 0, codeBlocks = emptyList()) + assertFalse(result) + } + + @Test + fun `Should return false if no previous code block at same indent level`() { + val codeBlocks = listOf( + CodeBlock.IfStatement(indentLevel = 0, children = emptyList()), + CodeBlock.Print(indentLevel = 1, children = emptyList()) + ) + val result = + reducer.areElifAndElseStatementsSuggestionsAvailable(index = 2, indentLevel = 1, codeBlocks = codeBlocks) + assertFalse(result) + } + + @Test + fun `Should return true if previous code block is IfStatement at same indent level`() { + val codeBlocks = listOf( + CodeBlock.IfStatement(indentLevel = 0, children = emptyList()), + CodeBlock.Print(indentLevel = 1, children = emptyList()) + ) + val result = + reducer.areElifAndElseStatementsSuggestionsAvailable(index = 2, indentLevel = 0, codeBlocks = codeBlocks) + assertTrue(result) + } + + @Test + fun `Should return true if previous code block is IfStatement at same indent level nested`() { + val codeBlocks = listOf( + CodeBlock.IfStatement(indentLevel = 0, children = emptyList()), + CodeBlock.Print(indentLevel = 1, children = emptyList()), + CodeBlock.IfStatement(indentLevel = 1, children = emptyList()), + CodeBlock.Print(indentLevel = 2, children = emptyList()) + ) + val result = + reducer.areElifAndElseStatementsSuggestionsAvailable(index = 4, indentLevel = 1, codeBlocks = codeBlocks) + assertTrue(result) + } + + @Test + fun `Should return true if previous code block is ElifStatement at same indent level`() { + val codeBlocks = listOf( + CodeBlock.IfStatement(indentLevel = 0, children = emptyList()), + CodeBlock.Print(indentLevel = 1, children = emptyList()), + CodeBlock.ElifStatement(indentLevel = 0, children = emptyList()), + CodeBlock.Print(indentLevel = 1, children = emptyList()) + ) + val result = + reducer.areElifAndElseStatementsSuggestionsAvailable(index = 4, indentLevel = 0, codeBlocks = codeBlocks) + assertTrue(result) + } +} \ No newline at end of file diff --git a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerEnterButtonClickedTest.kt b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerEnterButtonClickedTest.kt index 1f52b1479..b25d8cd19 100644 --- a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerEnterButtonClickedTest.kt +++ b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerEnterButtonClickedTest.kt @@ -24,7 +24,7 @@ class StepQuizCodeBlanksReducerEnterButtonClickedTest { } @Test - fun `EnterButtonClicked should log analytic event and not update state if no active code block`() { + fun `EnterButtonClicked should not update state if no active code block`() { val initialState = StepQuizCodeBlanksFeature.State.Content.stub( codeBlocks = listOf( CodeBlock.Blank( @@ -41,7 +41,7 @@ class StepQuizCodeBlanksReducerEnterButtonClickedTest { } @Test - fun `EnterButtonClicked should log analytic event and add new active Blank block if active code block exists`() { + fun `EnterButtonClicked should append new active Blank block if active code block exists`() { val initialState = StepQuizCodeBlanksFeature.State.Content.stub( codeBlocks = listOf( CodeBlock.Blank( @@ -103,6 +103,41 @@ class StepQuizCodeBlanksReducerEnterButtonClickedTest { assertContainsEnterButtonClickedAnalyticEvent(actions) } + @Test + fun `EnterButtonClicked should add Blank with next indentLevel if active code block is condition`() { + val codeBlocks = listOf( + CodeBlock.IfStatement( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ), + CodeBlock.ElifStatement( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ), + CodeBlock.ElseStatement(isActive = true) + ) + + codeBlocks.forEach { codeBlock -> + val initialState = StepQuizCodeBlanksFeature.State.Content.stub(codeBlocks = listOf(codeBlock)) + + val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.EnterButtonClicked) + + assertTrue(state is StepQuizCodeBlanksFeature.State.Content) + assertEquals(1, state.codeBlocks[1].indentLevel) + assertContainsEnterButtonClickedAnalyticEvent(actions) + } + } + private fun assertContainsEnterButtonClickedAnalyticEvent(actions: Set) { assertTrue { actions.any { diff --git a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerSpaceButtonClickedTest.kt b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerSpaceButtonClickedTest.kt index b1295d945..3c8166d55 100644 --- a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerSpaceButtonClickedTest.kt +++ b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerSpaceButtonClickedTest.kt @@ -27,7 +27,7 @@ class StepQuizCodeBlanksReducerSpaceButtonClickedTest { } @Test - fun `SpaceButtonClicked should not update state if active Print block has no active child`() { + fun `SpaceButtonClicked should not update state if no active code block`() { val initialState = StepQuizCodeBlanksFeature.State.Content.stub( codeBlocks = listOf( CodeBlock.Print( @@ -48,6 +48,35 @@ class StepQuizCodeBlanksReducerSpaceButtonClickedTest { assertContainsSpaceButtonClickedAnalyticEvent(actions) } + @Test + fun `SpaceButtonClicked should not update state if active code block is Blank`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Blank( + isActive = true, + suggestions = emptyList() + ) + ) + ) + + val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.SpaceButtonClicked) + + assertEquals(initialState, state) + assertContainsSpaceButtonClickedAnalyticEvent(actions) + } + + @Test + fun `SpaceButtonClicked should not update state if active code block is ElseStatement`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf(CodeBlock.ElseStatement(isActive = true)) + ) + + val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.SpaceButtonClicked) + + assertEquals(initialState, state) + assertContainsSpaceButtonClickedAnalyticEvent(actions) + } + @Test fun `SpaceButtonClicked should add a new child to active Print code block`() { val initialState = StepQuizCodeBlanksFeature.State.Content.stub( diff --git a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerSuggestionClickedTest.kt b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerSuggestionClickedTest.kt index 5eedd6de7..5e3970aff 100644 --- a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerSuggestionClickedTest.kt +++ b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerSuggestionClickedTest.kt @@ -61,7 +61,7 @@ class StepQuizCodeBlanksReducerSuggestionClickedTest { } @Test - fun `SuggestionClicked should update active Blank code block to Print if suggestion exists`() { + fun `SuggestionClicked should update Blank to Print`() { val initialState = StepQuizCodeBlanksFeature.State.Content.stub( codeBlocks = listOf( CodeBlock.Blank( @@ -93,7 +93,7 @@ class StepQuizCodeBlanksReducerSuggestionClickedTest { } @Test - fun `SuggestionClicked should update active Blank code block to Variable if suggestion exists`() { + fun `SuggestionClicked should update Blank to Variable`() { val initialState = StepQuizCodeBlanksFeature.State.Content.stub( codeBlocks = listOf( CodeBlock.Blank( @@ -129,6 +129,102 @@ class StepQuizCodeBlanksReducerSuggestionClickedTest { assertContainsSuggestionClickedAnalyticEvent(actions) } + @Test + fun `SuggestionClicked should update Blank to IfStatement`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Blank( + isActive = true, + suggestions = listOf(Suggestion.Print, Suggestion.IfStatement) + ) + ) + ) + + val message = StepQuizCodeBlanksFeature.Message.SuggestionClicked(Suggestion.IfStatement) + val (state, actions) = reducer.reduce(initialState, message) + + val expectedState = initialState.copy( + codeBlocks = listOf( + CodeBlock.IfStatement( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = initialState.codeBlanksVariablesAndStringsSuggestions, + selectedSuggestion = null + ) + ) + ) + ) + ) + + assertEquals(expectedState, state) + assertContainsSuggestionClickedAnalyticEvent(actions) + } + + @Test + fun `SuggestionClicked should update Blank to ElifStatement`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Blank( + isActive = true, + suggestions = listOf(Suggestion.Print, Suggestion.ElifStatement) + ) + ) + ) + + val message = StepQuizCodeBlanksFeature.Message.SuggestionClicked(Suggestion.ElifStatement) + val (state, actions) = reducer.reduce(initialState, message) + + val expectedState = initialState.copy( + codeBlocks = listOf( + CodeBlock.ElifStatement( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = initialState.codeBlanksVariablesAndStringsSuggestions, + selectedSuggestion = null + ) + ) + ) + ) + ) + + assertEquals(expectedState, state) + assertContainsSuggestionClickedAnalyticEvent(actions) + } + + @Test + fun `SuggestionClicked should update Blank to ElseStatement and add Blank with next indentLevel`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Blank( + isActive = true, + suggestions = listOf(Suggestion.Print, Suggestion.ElseStatement) + ) + ) + ) + + val message = StepQuizCodeBlanksFeature.Message.SuggestionClicked(Suggestion.ElseStatement) + val (state, actions) = reducer.reduce(initialState, message) + + val expectedState = initialState.copy( + codeBlocks = listOf( + CodeBlock.ElseStatement( + isActive = false, + indentLevel = 0 + ), + CodeBlock.Blank( + isActive = true, + indentLevel = 1, + suggestions = listOf(Suggestion.Print) + ) + ) + ) + + assertEquals(expectedState, state) + assertContainsSuggestionClickedAnalyticEvent(actions) + } + @Test fun `SuggestionClicked should update Print code block with selected suggestion`() { val suggestion = Suggestion.ConstantString("suggestion") @@ -154,6 +250,56 @@ class StepQuizCodeBlanksReducerSuggestionClickedTest { assertContainsSuggestionClickedAnalyticEvent(actions) } + @Test + fun `SuggestionClicked should update IfStatement code block with selected suggestion`() { + val suggestion = Suggestion.ConstantString("suggestion") + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.IfStatement( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = listOf(suggestion), + selectedSuggestion = null + ) + ) + ) + ) + ) + + val message = StepQuizCodeBlanksFeature.Message.SuggestionClicked(suggestion) + val (state, actions) = reducer.reduce(initialState, message) + + assertTrue(state is StepQuizCodeBlanksFeature.State.Content) + assertEquals(suggestion, (state.codeBlocks[0] as CodeBlock.IfStatement).children[0].selectedSuggestion) + assertContainsSuggestionClickedAnalyticEvent(actions) + } + + @Test + fun `SuggestionClicked should update ElifStatement code block with selected suggestion`() { + val suggestion = Suggestion.ConstantString("suggestion") + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.ElifStatement( + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = listOf(suggestion), + selectedSuggestion = null + ) + ) + ) + ) + ) + + val message = StepQuizCodeBlanksFeature.Message.SuggestionClicked(suggestion) + val (state, actions) = reducer.reduce(initialState, message) + + assertTrue(state is StepQuizCodeBlanksFeature.State.Content) + assertEquals(suggestion, (state.codeBlocks[0] as CodeBlock.ElifStatement).children[0].selectedSuggestion) + assertContainsSuggestionClickedAnalyticEvent(actions) + } + @Test fun `SuggestionClicked should update Variable code block with selected suggestion for name`() { val suggestion = Suggestion.ConstantString("suggestion") @@ -252,6 +398,20 @@ class StepQuizCodeBlanksReducerSuggestionClickedTest { assertContainsSuggestionClickedAnalyticEvent(actions) } + @Test + fun `SuggestionClicked should not update ElseStatement code block with selected suggestion`() { + val suggestion = Suggestion.ConstantString("suggestion") + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf(CodeBlock.ElseStatement(isActive = true)) + ) + + val message = StepQuizCodeBlanksFeature.Message.SuggestionClicked(suggestion) + val (state, actions) = reducer.reduce(initialState, message) + + assertEquals(initialState, state) + assertContainsSuggestionClickedAnalyticEvent(actions) + } + private fun assertContainsSuggestionClickedAnalyticEvent(actions: Set) { assertTrue { actions.any { From bf536de8d0f607e9ff13c8ea0300705eaf88350e Mon Sep 17 00:00:00 2001 From: Ivan Magda Date: Thu, 12 Sep 2024 15:50:40 +0900 Subject: [PATCH 09/13] Bump build number --- gradle/app.versions.toml | 2 +- .../NotificationServiceExtension/Info.plist | 2 +- .../iosHyperskillApp.xcodeproj/project.pbxproj | 16 ++++++++-------- iosHyperskillApp/iosHyperskillApp/Info.plist | 2 +- .../iosHyperskillAppTests/Info.plist | 2 +- .../iosHyperskillAppUITests/Info.plist | 2 +- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/gradle/app.versions.toml b/gradle/app.versions.toml index 73f77d8d8..a3d783363 100644 --- a/gradle/app.versions.toml +++ b/gradle/app.versions.toml @@ -3,4 +3,4 @@ minSdk = '24' targetSdk = '34' compileSdk = '34' versionName = '1.71' -versionCode = '544' \ No newline at end of file +versionCode = '545' \ No newline at end of file diff --git a/iosHyperskillApp/NotificationServiceExtension/Info.plist b/iosHyperskillApp/NotificationServiceExtension/Info.plist index dbde8c3c0..9a45f255f 100644 --- a/iosHyperskillApp/NotificationServiceExtension/Info.plist +++ b/iosHyperskillApp/NotificationServiceExtension/Info.plist @@ -9,7 +9,7 @@ CFBundleIdentifier $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleVersion - 573 + 574 CFBundleShortVersionString 1.71 CFBundlePackageType diff --git a/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj b/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj index c34a5a090..7a1910a4f 100644 --- a/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj +++ b/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj @@ -5769,7 +5769,7 @@ buildSettings = { CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 573; + CURRENT_PROJECT_VERSION = 574; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = UJ4KC2QN7B; GENERATE_INFOPLIST_FILE = NO; @@ -5790,7 +5790,7 @@ buildSettings = { CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 573; + CURRENT_PROJECT_VERSION = 574; DEVELOPMENT_TEAM = UJ4KC2QN7B; GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = iosHyperskillAppUITests/Info.plist; @@ -5811,7 +5811,7 @@ BUNDLE_LOADER = "$(TEST_HOST)"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 573; + CURRENT_PROJECT_VERSION = 574; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = UJ4KC2QN7B; INFOPLIST_FILE = iosHyperskillAppTests/Info.plist; @@ -5832,7 +5832,7 @@ BUNDLE_LOADER = "$(TEST_HOST)"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 573; + CURRENT_PROJECT_VERSION = 574; DEVELOPMENT_TEAM = UJ4KC2QN7B; INFOPLIST_FILE = iosHyperskillAppTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.0; @@ -5853,7 +5853,7 @@ CODE_SIGN_ENTITLEMENTS = NotificationServiceExtension/NotificationServiceExtension.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 573; + CURRENT_PROJECT_VERSION = 574; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = UJ4KC2QN7B; INFOPLIST_FILE = NotificationServiceExtension/Info.plist; @@ -5882,7 +5882,7 @@ CODE_SIGN_ENTITLEMENTS = NotificationServiceExtension/NotificationServiceExtension.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 573; + CURRENT_PROJECT_VERSION = 574; DEVELOPMENT_TEAM = UJ4KC2QN7B; INFOPLIST_FILE = NotificationServiceExtension/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.0; @@ -6028,7 +6028,7 @@ CODE_SIGN_ENTITLEMENTS = iosHyperskillApp/iosHyperskillApp.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 573; + CURRENT_PROJECT_VERSION = 574; DEVELOPMENT_ASSET_PATHS = "\"iosHyperskillApp/Preview Content\""; DEVELOPMENT_TEAM = UJ4KC2QN7B; ENABLE_PREVIEWS = YES; @@ -6064,7 +6064,7 @@ CODE_SIGN_ENTITLEMENTS = iosHyperskillApp/iosHyperskillApp.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 573; + CURRENT_PROJECT_VERSION = 574; DEVELOPMENT_ASSET_PATHS = "\"iosHyperskillApp/Preview Content\""; DEVELOPMENT_TEAM = UJ4KC2QN7B; ENABLE_PREVIEWS = YES; diff --git a/iosHyperskillApp/iosHyperskillApp/Info.plist b/iosHyperskillApp/iosHyperskillApp/Info.plist index 36c87487c..3f6240f7a 100644 --- a/iosHyperskillApp/iosHyperskillApp/Info.plist +++ b/iosHyperskillApp/iosHyperskillApp/Info.plist @@ -34,7 +34,7 @@ CFBundleVersion - 573 + 574 FirebaseAppDelegateProxyEnabled FirebaseMessagingAutoInitEnabled diff --git a/iosHyperskillApp/iosHyperskillAppTests/Info.plist b/iosHyperskillApp/iosHyperskillAppTests/Info.plist index bbc94bacd..d24ac847b 100644 --- a/iosHyperskillApp/iosHyperskillAppTests/Info.plist +++ b/iosHyperskillApp/iosHyperskillAppTests/Info.plist @@ -15,6 +15,6 @@ CFBundleShortVersionString 1.71 CFBundleVersion - 573 + 574 diff --git a/iosHyperskillApp/iosHyperskillAppUITests/Info.plist b/iosHyperskillApp/iosHyperskillAppUITests/Info.plist index ff1285ef0..db1a5b024 100644 --- a/iosHyperskillApp/iosHyperskillAppUITests/Info.plist +++ b/iosHyperskillApp/iosHyperskillAppUITests/Info.plist @@ -15,6 +15,6 @@ CFBundleShortVersionString 1.71 CFBundleVersion - 573 + 574 From 119eaeab0e35946b2fe15b5882d9de1f9eb678ce Mon Sep 17 00:00:00 2001 From: Ivan Magda Date: Fri, 13 Sep 2024 20:01:54 +0900 Subject: [PATCH 10/13] Shared: Code blanks template JSON format (#1178) ^ALTAPPS-1353 --- config/detekt/baseline.xml | 3 - .../Shared/Model/BlockOptionsExtensions.swift | 6 +- .../hyperskill/app/step/domain/model/Block.kt | 5 +- .../domain/model/CodeBlock.kt | 10 +- .../template/CodeBlanksTemplateMapper.kt | 197 ++++++++++++++++++ .../model/template/CodeBlockTemplateEntry.kt | 18 ++ .../template/CodeBlockTemplateEntryType.kt | 22 ++ .../presentation/StepQuizCodeBlanksFeature.kt | 8 - .../presentation/StepQuizCodeBlanksReducer.kt | 136 ++---------- .../StepQuizCodeBlanksResolver.kt | 56 +++++ .../StepQuizCodeBlanksStateExtensions.kt | 2 +- .../StepQuizCodeBlanksViewStateMapper.kt | 2 +- ...odeBlanksReducerDeleteButtonClickedTest.kt | 23 ++ ...seStatementsSuggestionsAvailabilityTest.kt | 47 +++-- .../template/CodeBlanksTemplateMapperTest.kt | 104 +++++++++ ...iewStateMapperIsDeleteButtonEnabledTest.kt | 15 ++ 16 files changed, 502 insertions(+), 152 deletions(-) create mode 100644 shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/domain/model/template/CodeBlanksTemplateMapper.kt create mode 100644 shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/domain/model/template/CodeBlockTemplateEntry.kt create mode 100644 shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/domain/model/template/CodeBlockTemplateEntryType.kt create mode 100644 shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/presentation/StepQuizCodeBlanksResolver.kt create mode 100644 shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/template/CodeBlanksTemplateMapperTest.kt diff --git a/config/detekt/baseline.xml b/config/detekt/baseline.xml index 46b86d224..578761281 100644 --- a/config/detekt/baseline.xml +++ b/config/detekt/baseline.xml @@ -68,7 +68,6 @@ LongMethod:ProblemOfDayCardFormDelegate.kt$ProblemOfDayCardFormDelegate$fun render( dateFormatter: SharedDateFormatter, binding: LayoutProblemOfTheDayCardBinding, state: HomeFeature.ProblemOfDayState, areProblemsLimited: Boolean ) LongMethod:ProfileBadges.kt$@Composable fun ProfileBadges( viewState: BadgesViewState, windowWidthSizeClass: WindowWidthSizeClass, onBadgeClick: (BadgeKind) -> Unit, onExpandButtonClick: (ProfileFeature.Message.BadgesVisibilityButton) -> Unit, modifier: Modifier = Modifier ) LongMethod:ProfileSettingsDialogFragment.kt$ProfileSettingsDialogFragment$override fun onViewCreated(view: View, savedInstanceState: Bundle?) - LongMethod:StepQuizCodeBlanksReducer.kt$StepQuizCodeBlanksReducer$private fun createInitialCodeBlocks(step: Step): List<CodeBlock> LongMethod:StepQuizCodeBlanksReducer.kt$StepQuizCodeBlanksReducer$private fun handleDeleteButtonClicked( state: State ): StepQuizCodeBlanksReducerResult? LongMethod:StepQuizCodeBlanksReducer.kt$StepQuizCodeBlanksReducer$private fun handleSpaceButtonClicked( state: State ): StepQuizCodeBlanksReducerResult? LongMethod:StepQuizCodeBlanksReducer.kt$StepQuizCodeBlanksReducer$private fun handleSuggestionClicked( state: State, message: Message.SuggestionClicked ): StepQuizCodeBlanksReducerResult? @@ -158,8 +157,6 @@ MagicNumber:StepDelegate.kt$StepDelegate$25 MagicNumber:StepDelegate.kt$StepDelegate$5 MagicNumber:StepDelegate.kt$StepDelegate$50 - MagicNumber:StepQuizCodeBlanksReducer.kt$StepQuizCodeBlanksReducer$2 - MagicNumber:StepQuizCodeBlanksReducer.kt$StepQuizCodeBlanksReducer$47580L MagicNumber:StudyPlanActivityAdapterDelegate.kt$StudyPlanActivityAdapterDelegate.ViewHolder$100f MagicNumber:SubscriptionSyncLoading.kt$0.5f MagicNumber:TimeIntervalPickerDialogFragment.kt$TimeIntervalPickerDialogFragment$50f diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Extensions/Shared/Model/BlockOptionsExtensions.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Extensions/Shared/Model/BlockOptionsExtensions.swift index 6548c21f7..86f0364e3 100644 --- a/iosHyperskillApp/iosHyperskillApp/Sources/Extensions/Shared/Model/BlockOptionsExtensions.swift +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Extensions/Shared/Model/BlockOptionsExtensions.swift @@ -14,7 +14,8 @@ extension Block.Options { codeBlanksStrings: [String]? = nil, codeBlanksVariables: [String]? = nil, codeBlanksOperations: [String]? = nil, - codeBlanksEnabled: Bool? = nil + codeBlanksEnabled: Bool? = nil, + codeBlanksTemplate: [CodeBlockTemplateEntry]? = nil ) { self.init( isMultipleChoice: isMultipleChoice.flatMap(KotlinBoolean.init(value:)), @@ -27,7 +28,8 @@ extension Block.Options { codeBlanksStrings: codeBlanksStrings, codeBlanksVariables: codeBlanksVariables, codeBlanksOperations: codeBlanksOperations, - codeBlanksEnabled: codeBlanksEnabled.flatMap(KotlinBoolean.init(value:)) + codeBlanksEnabled: codeBlanksEnabled.flatMap(KotlinBoolean.init(value:)), + codeBlanksTemplate: codeBlanksTemplate ) } // swiftlint:enable discouraged_optional_boolean diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/step/domain/model/Block.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/step/domain/model/Block.kt index 4495d830b..17043a89e 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/step/domain/model/Block.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/step/domain/model/Block.kt @@ -3,6 +3,7 @@ package org.hyperskill.app.step.domain.model import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable import org.hyperskill.app.code.domain.model.ProgrammingLanguage +import org.hyperskill.app.step_quiz_code_blanks.domain.model.template.CodeBlockTemplateEntry @Serializable data class Block( @@ -36,7 +37,9 @@ data class Block( @SerialName("code_blanks_operations") val codeBlanksOperations: List? = null, @SerialName("code_blanks_enabled") - val codeBlanksEnabled: Boolean? = null + val codeBlanksEnabled: Boolean? = null, + @SerialName("code_blanks_template") + val codeBlanksTemplate: List? = null ) { @Serializable data class File( diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/domain/model/CodeBlock.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/domain/model/CodeBlock.kt index 1266f9783..e304cea39 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/domain/model/CodeBlock.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/domain/model/CodeBlock.kt @@ -10,6 +10,8 @@ sealed class CodeBlock { internal abstract val indentLevel: Int + internal abstract val isDeleteForbidden: Boolean + internal abstract val suggestions: List internal abstract val children: List @@ -39,6 +41,7 @@ sealed class CodeBlock { internal data class Blank( override val isActive: Boolean, override val indentLevel: Int = 0, + override val isDeleteForbidden: Boolean = false, override val suggestions: List ) : CodeBlock() { override val children: List = emptyList() @@ -51,6 +54,7 @@ sealed class CodeBlock { internal data class Print( override val indentLevel: Int = 0, + override val isDeleteForbidden: Boolean = false, override val children: List ) : CodeBlock() { override val isActive: Boolean = false @@ -74,6 +78,7 @@ sealed class CodeBlock { internal data class Variable( override val indentLevel: Int = 0, + override val isDeleteForbidden: Boolean = false, override val children: List ) : CodeBlock() { val name: CodeBlockChild.SelectSuggestion? @@ -103,6 +108,7 @@ sealed class CodeBlock { internal data class IfStatement( override val indentLevel: Int = 0, + override val isDeleteForbidden: Boolean = false, override val children: List ) : CodeBlock() { override val isActive: Boolean = false @@ -126,6 +132,7 @@ sealed class CodeBlock { internal data class ElifStatement( override val indentLevel: Int = 0, + override val isDeleteForbidden: Boolean = false, override val children: List ) : CodeBlock() { override val isActive: Boolean = false @@ -148,7 +155,8 @@ sealed class CodeBlock { internal data class ElseStatement( override val isActive: Boolean, - override val indentLevel: Int = 0 + override val indentLevel: Int = 0, + override val isDeleteForbidden: Boolean = false ) : CodeBlock() { override val suggestions: List = emptyList() diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/domain/model/template/CodeBlanksTemplateMapper.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/domain/model/template/CodeBlanksTemplateMapper.kt new file mode 100644 index 000000000..a9ad51611 --- /dev/null +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/domain/model/template/CodeBlanksTemplateMapper.kt @@ -0,0 +1,197 @@ +package org.hyperskill.app.step_quiz_code_blanks.domain.model.template + +import kotlin.math.max +import org.hyperskill.app.step.domain.model.Step +import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlock +import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlockChild +import org.hyperskill.app.step_quiz_code_blanks.domain.model.Suggestion +import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksResolver +import org.hyperskill.app.step_quiz_code_blanks.presentation.codeBlanksOperationsSuggestions +import org.hyperskill.app.step_quiz_code_blanks.presentation.codeBlanksStringsSuggestions +import org.hyperskill.app.step_quiz_code_blanks.presentation.codeBlanksVariablesSuggestions + +internal object CodeBlanksTemplateMapper { + private const val MATH_EXPRESSIONS_TEMPLATE_STEP_ID = 47580L // ALTAPPS-1324 + + fun map(step: Step): List = + when { + step.id == MATH_EXPRESSIONS_TEMPLATE_STEP_ID -> createMathExpressionsCodeBlocks(step) + isCodeBlanksTemplateAvailable(step) -> parseCodeBlanksTemplate(step) + else -> emptyList() + } + + private fun isCodeBlanksTemplateAvailable(step: Step): Boolean { + val codeBlockTemplateEntries = step.block.options.codeBlanksTemplate ?: return false + return codeBlockTemplateEntries.none { it.type == CodeBlockTemplateEntryType.UNKNOWN } + } + + private fun parseCodeBlanksTemplate(step: Step): List { + val codeBlockTemplateEntries = step.block.options.codeBlanksTemplate + ?.filter { it.type != CodeBlockTemplateEntryType.UNKNOWN } + return if (codeBlockTemplateEntries.isNullOrEmpty()) { + emptyList() + } else { + codeBlockTemplateEntries.map { mapCodeBlockTemplateEntry(entry = it, step = step) } + } + } + + private fun mapCodeBlockTemplateEntry( + entry: CodeBlockTemplateEntry, + step: Step + ): CodeBlock = + when (entry.type) { + CodeBlockTemplateEntryType.BLANK -> + CodeBlock.Blank( + isActive = entry.isActive, + indentLevel = entry.indentLevel, + isDeleteForbidden = entry.isDeleteForbidden, + suggestions = StepQuizCodeBlanksResolver.getSuggestionsForBlankCodeBlock( + isVariableSuggestionAvailable = StepQuizCodeBlanksResolver.isVariableSuggestionsAvailable(step) + ) + ) + CodeBlockTemplateEntryType.PRINT -> + CodeBlock.Print( + indentLevel = entry.indentLevel, + isDeleteForbidden = entry.isDeleteForbidden, + children = mapCodeBlockTemplateEntryChildren( + entry = entry, + suggestions = getChildrenSuggestions(step), + minimumRequiredChildrenCount = 1 + ) + ) + CodeBlockTemplateEntryType.VARIABLE -> + CodeBlock.Variable( + indentLevel = entry.indentLevel, + isDeleteForbidden = entry.isDeleteForbidden, + children = mapCodeBlockTemplateEntryChildren( + entry = entry, + suggestions = getChildrenSuggestions(step), + minimumRequiredChildrenCount = 2 + ) + ) + CodeBlockTemplateEntryType.IF -> + CodeBlock.IfStatement( + indentLevel = entry.indentLevel, + isDeleteForbidden = entry.isDeleteForbidden, + children = mapCodeBlockTemplateEntryChildren( + entry = entry, + suggestions = getChildrenSuggestions(step), + minimumRequiredChildrenCount = 1 + ) + ) + CodeBlockTemplateEntryType.ELIF -> + CodeBlock.ElifStatement( + indentLevel = entry.indentLevel, + isDeleteForbidden = entry.isDeleteForbidden, + children = mapCodeBlockTemplateEntryChildren( + entry = entry, + suggestions = getChildrenSuggestions(step), + minimumRequiredChildrenCount = 1 + ) + ) + CodeBlockTemplateEntryType.ELSE -> + CodeBlock.ElseStatement( + isActive = entry.isActive, + indentLevel = entry.indentLevel, + isDeleteForbidden = entry.isDeleteForbidden, + ) + CodeBlockTemplateEntryType.UNKNOWN -> error("Unknown code block template entry type") + } + + private fun getChildrenSuggestions(step: Step): List = + step.codeBlanksVariablesSuggestions() + step.codeBlanksStringsSuggestions() + + step.codeBlanksOperationsSuggestions() + + private fun mapCodeBlockTemplateEntryChildren( + entry: CodeBlockTemplateEntry, + suggestions: List, + minimumRequiredChildrenCount: Int + ): List { + val mappedChildren = entry.children.map { text -> + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = suggestions, + selectedSuggestion = Suggestion.ConstantString(text) + ) + } + + val missingChildrenCount = max(0, minimumRequiredChildrenCount - mappedChildren.size) + val missingChildren = List(missingChildrenCount) { + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = suggestions, + selectedSuggestion = null + ) + } + + val completeChildren = mappedChildren + missingChildren + + return if (entry.isActive) { + completeChildren.mapIndexed { index, child -> + child.copy(isActive = entry.isActive && index == 0) + } + } else { + completeChildren + } + } + + private fun createMathExpressionsCodeBlocks(step: Step): List = + listOf( + CodeBlock.Variable( + indentLevel = 0, + isDeleteForbidden = true, + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = step.codeBlanksVariablesSuggestions(), + selectedSuggestion = Suggestion.ConstantString("x") + ), + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = step.codeBlanksStringsSuggestions(), + selectedSuggestion = Suggestion.ConstantString("1000") + ) + ) + ), + CodeBlock.Variable( + indentLevel = 0, + isDeleteForbidden = true, + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = step.codeBlanksVariablesSuggestions(), + selectedSuggestion = Suggestion.ConstantString("r") + ), + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = step.codeBlanksStringsSuggestions(), + selectedSuggestion = Suggestion.ConstantString("5") + ) + ) + ), + CodeBlock.Variable( + indentLevel = 0, + isDeleteForbidden = true, + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = step.codeBlanksVariablesSuggestions(), + selectedSuggestion = Suggestion.ConstantString("y") + ), + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = step.codeBlanksStringsSuggestions(), + selectedSuggestion = Suggestion.ConstantString("10") + ) + ) + ), + CodeBlock.Blank( + isActive = true, + indentLevel = 0, + isDeleteForbidden = false, + suggestions = StepQuizCodeBlanksResolver.getSuggestionsForBlankCodeBlock( + isVariableSuggestionAvailable = StepQuizCodeBlanksResolver.isVariableSuggestionsAvailable(step) + ) + ) + ) +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/domain/model/template/CodeBlockTemplateEntry.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/domain/model/template/CodeBlockTemplateEntry.kt new file mode 100644 index 000000000..c0623c7d1 --- /dev/null +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/domain/model/template/CodeBlockTemplateEntry.kt @@ -0,0 +1,18 @@ +package org.hyperskill.app.step_quiz_code_blanks.domain.model.template + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +data class CodeBlockTemplateEntry( + @SerialName("type") + val type: CodeBlockTemplateEntryType = CodeBlockTemplateEntryType.UNKNOWN, + @SerialName("indent_level") + val indentLevel: Int = 0, + @SerialName("is_active") + val isActive: Boolean = false, + @SerialName("delete_forbidden") + val isDeleteForbidden: Boolean = false, + @SerialName("children") + val children: List = emptyList() +) \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/domain/model/template/CodeBlockTemplateEntryType.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/domain/model/template/CodeBlockTemplateEntryType.kt new file mode 100644 index 000000000..33ca85bc4 --- /dev/null +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/domain/model/template/CodeBlockTemplateEntryType.kt @@ -0,0 +1,22 @@ +package org.hyperskill.app.step_quiz_code_blanks.domain.model.template + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +enum class CodeBlockTemplateEntryType { + @SerialName("blank") + BLANK, + @SerialName("print") + PRINT, + @SerialName("variable") + VARIABLE, + @SerialName("if") + IF, + @SerialName("elif") + ELIF, + @SerialName("else") + ELSE, + + UNKNOWN +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/presentation/StepQuizCodeBlanksFeature.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/presentation/StepQuizCodeBlanksFeature.kt index 11857df8f..6e75accad 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/presentation/StepQuizCodeBlanksFeature.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/presentation/StepQuizCodeBlanksFeature.kt @@ -8,17 +8,9 @@ import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksF import org.hyperskill.app.step_quiz_code_blanks.view.model.StepQuizCodeBlanksViewState object StepQuizCodeBlanksFeature { - private const val ONBOARDING_STEP_ID = 47329L - internal fun isCodeBlanksFeatureAvailable(step: Step): Boolean = step.block.options.codeBlanksEnabled == true - internal fun isVariableSuggestionsAvailable(step: Step): Boolean = - step.block.options.codeBlanksVariables?.isNotEmpty() == true - - internal fun isOnboardingAvailable(step: Step): Boolean = - step.id == ONBOARDING_STEP_ID - internal fun initialState(): State = State.Idle sealed interface State { diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducer.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducer.kt index be8532bdc..afb5196da 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducer.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducer.kt @@ -13,6 +13,7 @@ import org.hyperskill.app.step_quiz_code_blanks.domain.analytic.StepQuizCodeBlan import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlock import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlockChild import org.hyperskill.app.step_quiz_code_blanks.domain.model.Suggestion +import org.hyperskill.app.step_quiz_code_blanks.domain.model.template.CodeBlanksTemplateMapper import org.hyperskill.app.step_quiz_code_blanks.domain.model.updatedChildren import org.hyperskill.app.step_quiz_code_blanks.domain.model.updatedIndentLevel import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksFeature.Action @@ -22,7 +23,6 @@ import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksF import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksFeature.OnboardingState import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksFeature.State import ru.nobird.app.core.model.mutate -import ru.nobird.app.core.model.slice import ru.nobird.app.presentation.redux.reducer.StateReducer private typealias StepQuizCodeBlanksReducerResult = Pair> @@ -48,7 +48,7 @@ class StepQuizCodeBlanksReducer( State.Content( step = message.step, codeBlocks = createInitialCodeBlocks(step = message.step), - onboardingState = if (StepQuizCodeBlanksFeature.isOnboardingAvailable(message.step)) { + onboardingState = if (StepQuizCodeBlanksResolver.isOnboardingAvailable(message.step)) { OnboardingState.HighlightSuggestions } else { OnboardingState.Unavailable @@ -195,10 +195,10 @@ class StepQuizCodeBlanksReducer( val blankIndentLevel = newCodeBlock.indentLevel + 1 add( blankInsertIndex, - createBlankCodeBlock( + CodeBlock.Blank( isActive = true, indentLevel = blankIndentLevel, - suggestions = getSuggestionsForBlankCodeBlock( + suggestions = StepQuizCodeBlanksResolver.getSuggestionsForBlankCodeBlock( index = blankInsertIndex, indentLevel = blankIndentLevel, codeBlocks = this, @@ -341,7 +341,7 @@ class StepQuizCodeBlanksReducer( ) ) - if (activeCodeBlock == null) { + if (activeCodeBlock == null || activeCodeBlock.isDeleteForbidden) { return state to actions } @@ -361,10 +361,10 @@ class StepQuizCodeBlanksReducer( val replaceActiveCodeBlockWithBlank = { set( activeCodeBlockIndex, - createBlankCodeBlock( + CodeBlock.Blank( isActive = true, indentLevel = activeCodeBlock.indentLevel, - suggestions = getSuggestionsForBlankCodeBlock( + suggestions = StepQuizCodeBlanksResolver.getSuggestionsForBlankCodeBlock( index = activeCodeBlockIndex, indentLevel = activeCodeBlock.indentLevel, codeBlocks = this, @@ -562,10 +562,10 @@ class StepQuizCodeBlanksReducer( val insertIndex = activeCodeBlockIndex + 1 add( insertIndex, - createBlankCodeBlock( + CodeBlock.Blank( isActive = true, indentLevel = indentLevel, - suggestions = getSuggestionsForBlankCodeBlock( + suggestions = StepQuizCodeBlanksResolver.getSuggestionsForBlankCodeBlock( index = insertIndex, indentLevel = indentLevel, codeBlocks = this, @@ -688,7 +688,7 @@ class StepQuizCodeBlanksReducer( when (activeCodeBlock) { is CodeBlock.Blank -> activeCodeBlock.copy( indentLevel = newIndentLevel, - suggestions = getSuggestionsForBlankCodeBlock( + suggestions = StepQuizCodeBlanksResolver.getSuggestionsForBlankCodeBlock( index = activeCodeBlockIndex, indentLevel = newIndentLevel, codeBlocks = this, @@ -734,120 +734,18 @@ class StepQuizCodeBlanksReducer( } } - private fun createBlankCodeBlock( - isActive: Boolean, - indentLevel: Int, - suggestions: List - ): CodeBlock.Blank = - CodeBlock.Blank( - isActive = isActive, - indentLevel = indentLevel, - suggestions = suggestions - ) - - private fun getSuggestionsForBlankCodeBlock( - index: Int = -1, - indentLevel: Int = 0, - codeBlocks: List = emptyList(), - isVariableSuggestionAvailable: Boolean - ): List = - when { - areElifAndElseStatementsSuggestionsAvailable(index, indentLevel, codeBlocks) -> - listOf(Suggestion.Print, Suggestion.Variable, Suggestion.ElifStatement, Suggestion.ElseStatement) - - isVariableSuggestionAvailable -> - listOf(Suggestion.Print, Suggestion.Variable, Suggestion.IfStatement) - - else -> - listOf(Suggestion.Print) - } - - internal fun areElifAndElseStatementsSuggestionsAvailable( - index: Int, - indentLevel: Int, - codeBlocks: List - ): Boolean { - if (index < 2 || codeBlocks.isEmpty()) { - return false - } - - val previousCodeBlock = codeBlocks - .slice(to = index) - .reversed() - .firstOrNull { it.indentLevel == indentLevel } - - return when (previousCodeBlock) { - is CodeBlock.IfStatement, - is CodeBlock.ElifStatement -> true - else -> false - } - } - - private fun createInitialCodeBlocks(step: Step): List = - if (step.id == 47580L) { + private fun createInitialCodeBlocks(step: Step): List { + val templateCodeBlocks = CodeBlanksTemplateMapper.map(step) + return templateCodeBlocks.ifEmpty { listOf( - CodeBlock.Variable( - indentLevel = 0, - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = step.codeBlanksVariablesSuggestions(), - selectedSuggestion = Suggestion.ConstantString("x") - ), - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = step.codeBlanksStringsSuggestions(), - selectedSuggestion = Suggestion.ConstantString("1000") - ) - ) - ), - CodeBlock.Variable( - indentLevel = 0, - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = step.codeBlanksVariablesSuggestions(), - selectedSuggestion = Suggestion.ConstantString("r") - ), - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = step.codeBlanksStringsSuggestions(), - selectedSuggestion = Suggestion.ConstantString("5") - ) - ) - ), - CodeBlock.Variable( - indentLevel = 0, - children = listOf( - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = step.codeBlanksVariablesSuggestions(), - selectedSuggestion = Suggestion.ConstantString("y") - ), - CodeBlockChild.SelectSuggestion( - isActive = false, - suggestions = step.codeBlanksStringsSuggestions(), - selectedSuggestion = Suggestion.ConstantString("10") - ) - ) - ), - createBlankCodeBlock( + CodeBlock.Blank( isActive = true, indentLevel = 0, - suggestions = getSuggestionsForBlankCodeBlock( - isVariableSuggestionAvailable = StepQuizCodeBlanksFeature.isVariableSuggestionsAvailable(step) - ) - ) - ) - } else { - listOf( - createBlankCodeBlock( - isActive = true, - indentLevel = 0, - suggestions = getSuggestionsForBlankCodeBlock( - isVariableSuggestionAvailable = StepQuizCodeBlanksFeature.isVariableSuggestionsAvailable(step) + suggestions = StepQuizCodeBlanksResolver.getSuggestionsForBlankCodeBlock( + isVariableSuggestionAvailable = StepQuizCodeBlanksResolver.isVariableSuggestionsAvailable(step) ) ) ) } + } } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/presentation/StepQuizCodeBlanksResolver.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/presentation/StepQuizCodeBlanksResolver.kt new file mode 100644 index 000000000..6e5e877c2 --- /dev/null +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/presentation/StepQuizCodeBlanksResolver.kt @@ -0,0 +1,56 @@ +package org.hyperskill.app.step_quiz_code_blanks.presentation + +import org.hyperskill.app.step.domain.model.Step +import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlock +import org.hyperskill.app.step_quiz_code_blanks.domain.model.Suggestion +import ru.nobird.app.core.model.slice + +internal object StepQuizCodeBlanksResolver { + private const val ONBOARDING_STEP_ID = 47329L + + private const val MINIMUM_POSSIBLE_INDEX_FOR_ELIF_AND_ELSE_STATEMENTS = 2 + + fun isOnboardingAvailable(step: Step): Boolean = + step.id == ONBOARDING_STEP_ID + + fun isVariableSuggestionsAvailable(step: Step): Boolean = + step.block.options.codeBlanksVariables?.isNotEmpty() == true + + fun getSuggestionsForBlankCodeBlock( + index: Int = -1, + indentLevel: Int = 0, + codeBlocks: List = emptyList(), + isVariableSuggestionAvailable: Boolean + ): List = + when { + areElifAndElseStatementsSuggestionsAvailable(index, indentLevel, codeBlocks) -> + listOf(Suggestion.Print, Suggestion.Variable, Suggestion.ElifStatement, Suggestion.ElseStatement) + + isVariableSuggestionAvailable -> + listOf(Suggestion.Print, Suggestion.Variable, Suggestion.IfStatement) + + else -> + listOf(Suggestion.Print) + } + + fun areElifAndElseStatementsSuggestionsAvailable( + index: Int, + indentLevel: Int, + codeBlocks: List + ): Boolean { + if (index < MINIMUM_POSSIBLE_INDEX_FOR_ELIF_AND_ELSE_STATEMENTS || codeBlocks.isEmpty()) { + return false + } + + val previousCodeBlock = codeBlocks + .slice(to = index) + .reversed() + .firstOrNull { it.indentLevel == indentLevel } + + return when (previousCodeBlock) { + is CodeBlock.IfStatement, + is CodeBlock.ElifStatement -> true + else -> false + } + } +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/presentation/StepQuizCodeBlanksStateExtensions.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/presentation/StepQuizCodeBlanksStateExtensions.kt index 46710ef6d..a55f0f21c 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/presentation/StepQuizCodeBlanksStateExtensions.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/presentation/StepQuizCodeBlanksStateExtensions.kt @@ -10,7 +10,7 @@ internal fun StepQuizCodeBlanksFeature.State.Content.activeCodeBlockIndex(): Int internal val StepQuizCodeBlanksFeature.State.isVariableSuggestionsAvailable: Boolean get() = (this as? StepQuizCodeBlanksFeature.State.Content)?.step?.let { - StepQuizCodeBlanksFeature.isVariableSuggestionsAvailable(it) + StepQuizCodeBlanksResolver.isVariableSuggestionsAvailable(it) } ?: false fun StepQuizCodeBlanksFeature.State.Content.createReply(): Reply = diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/view/mapper/StepQuizCodeBlanksViewStateMapper.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/view/mapper/StepQuizCodeBlanksViewStateMapper.kt index fb7f1d6b9..60fab28ce 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/view/mapper/StepQuizCodeBlanksViewStateMapper.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/step_quiz_code_blanks/view/mapper/StepQuizCodeBlanksViewStateMapper.kt @@ -42,7 +42,7 @@ object StepQuizCodeBlanksViewStateMapper { is CodeBlock.ElseStatement -> emptyList() } ?: emptyList() - val isDeleteButtonEnabled = + val isDeleteButtonEnabled = activeCodeBlock?.isDeleteForbidden == false && when (activeCodeBlock) { is CodeBlock.Blank -> codeBlocks.size > 1 is CodeBlock.Print -> true diff --git a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerDeleteButtonClickedTest.kt b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerDeleteButtonClickedTest.kt index c01e8a93e..d8492a778 100644 --- a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerDeleteButtonClickedTest.kt +++ b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerDeleteButtonClickedTest.kt @@ -45,6 +45,29 @@ class StepQuizCodeBlanksReducerDeleteButtonClickedTest { assertContainsDeleteButtonClickedAnalyticEvent(actions) } + @Test + fun `DeleteButtonClicked should not update state if isDeleteForbidden for active code block`() { + val initialState = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Print( + isDeleteForbidden = true, + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString("suggestion") + ) + ) + ) + ) + ) + + val (state, actions) = reducer.reduce(initialState, StepQuizCodeBlanksFeature.Message.DeleteButtonClicked) + + assertEquals(initialState, state) + assertContainsDeleteButtonClickedAnalyticEvent(actions) + } + @Test fun `DeleteButtonClicked should not update state if active code block is Blank and single`() { val initialState = StepQuizCodeBlanksFeature.State.Content.stub( diff --git a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerElifAndElseStatementsSuggestionsAvailabilityTest.kt b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerElifAndElseStatementsSuggestionsAvailabilityTest.kt index a9ff044f7..726b291af 100644 --- a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerElifAndElseStatementsSuggestionsAvailabilityTest.kt +++ b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/presentation/StepQuizCodeBlanksReducerElifAndElseStatementsSuggestionsAvailabilityTest.kt @@ -3,24 +3,27 @@ package org.hyperskill.step_quiz_code_blanks.presentation import kotlin.test.Test import kotlin.test.assertFalse import kotlin.test.assertTrue -import org.hyperskill.app.step.domain.model.StepRoute import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlock -import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksReducer +import org.hyperskill.app.step_quiz_code_blanks.presentation.StepQuizCodeBlanksResolver class StepQuizCodeBlanksReducerElifAndElseStatementsSuggestionsAvailabilityTest { - private val reducer = StepQuizCodeBlanksReducer(StepRoute.Learn.Step(1, null)) - @Test fun `Should return false if index is less than 2`() { - val result = - reducer.areElifAndElseStatementsSuggestionsAvailable(index = 1, indentLevel = 0, codeBlocks = emptyList()) + val result = StepQuizCodeBlanksResolver.areElifAndElseStatementsSuggestionsAvailable( + index = 1, + indentLevel = 0, + codeBlocks = emptyList() + ) assertFalse(result) } @Test fun `Should return false if codeBlocks is empty`() { - val result = - reducer.areElifAndElseStatementsSuggestionsAvailable(index = 2, indentLevel = 0, codeBlocks = emptyList()) + val result = StepQuizCodeBlanksResolver.areElifAndElseStatementsSuggestionsAvailable( + index = 2, + indentLevel = 0, + codeBlocks = emptyList() + ) assertFalse(result) } @@ -30,8 +33,11 @@ class StepQuizCodeBlanksReducerElifAndElseStatementsSuggestionsAvailabilityTest CodeBlock.IfStatement(indentLevel = 0, children = emptyList()), CodeBlock.Print(indentLevel = 1, children = emptyList()) ) - val result = - reducer.areElifAndElseStatementsSuggestionsAvailable(index = 2, indentLevel = 1, codeBlocks = codeBlocks) + val result = StepQuizCodeBlanksResolver.areElifAndElseStatementsSuggestionsAvailable( + index = 2, + indentLevel = 1, + codeBlocks = codeBlocks + ) assertFalse(result) } @@ -41,8 +47,11 @@ class StepQuizCodeBlanksReducerElifAndElseStatementsSuggestionsAvailabilityTest CodeBlock.IfStatement(indentLevel = 0, children = emptyList()), CodeBlock.Print(indentLevel = 1, children = emptyList()) ) - val result = - reducer.areElifAndElseStatementsSuggestionsAvailable(index = 2, indentLevel = 0, codeBlocks = codeBlocks) + val result = StepQuizCodeBlanksResolver.areElifAndElseStatementsSuggestionsAvailable( + index = 2, + indentLevel = 0, + codeBlocks = codeBlocks + ) assertTrue(result) } @@ -54,8 +63,11 @@ class StepQuizCodeBlanksReducerElifAndElseStatementsSuggestionsAvailabilityTest CodeBlock.IfStatement(indentLevel = 1, children = emptyList()), CodeBlock.Print(indentLevel = 2, children = emptyList()) ) - val result = - reducer.areElifAndElseStatementsSuggestionsAvailable(index = 4, indentLevel = 1, codeBlocks = codeBlocks) + val result = StepQuizCodeBlanksResolver.areElifAndElseStatementsSuggestionsAvailable( + index = 4, + indentLevel = 1, + codeBlocks = codeBlocks + ) assertTrue(result) } @@ -67,8 +79,11 @@ class StepQuizCodeBlanksReducerElifAndElseStatementsSuggestionsAvailabilityTest CodeBlock.ElifStatement(indentLevel = 0, children = emptyList()), CodeBlock.Print(indentLevel = 1, children = emptyList()) ) - val result = - reducer.areElifAndElseStatementsSuggestionsAvailable(index = 4, indentLevel = 0, codeBlocks = codeBlocks) + val result = StepQuizCodeBlanksResolver.areElifAndElseStatementsSuggestionsAvailable( + index = 4, + indentLevel = 0, + codeBlocks = codeBlocks + ) assertTrue(result) } } \ No newline at end of file diff --git a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/template/CodeBlanksTemplateMapperTest.kt b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/template/CodeBlanksTemplateMapperTest.kt new file mode 100644 index 000000000..aede0c7a7 --- /dev/null +++ b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/template/CodeBlanksTemplateMapperTest.kt @@ -0,0 +1,104 @@ +package org.hyperskill.step_quiz_code_blanks.template + +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertTrue +import org.hyperskill.app.step.domain.model.Block +import org.hyperskill.app.step.domain.model.Step +import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlock +import org.hyperskill.app.step_quiz_code_blanks.domain.model.CodeBlockChild +import org.hyperskill.app.step_quiz_code_blanks.domain.model.Suggestion +import org.hyperskill.app.step_quiz_code_blanks.domain.model.template.CodeBlanksTemplateMapper +import org.hyperskill.app.step_quiz_code_blanks.domain.model.template.CodeBlockTemplateEntry +import org.hyperskill.app.step_quiz_code_blanks.domain.model.template.CodeBlockTemplateEntryType +import org.hyperskill.step.domain.model.stub + +class CodeBlanksTemplateMapperTest { + @Test + fun `map should return math expression code blocks when step ID matches math expression template ID`() { + val step = Step.stub(id = 47580) // Math expressions template step ID + + val result = CodeBlanksTemplateMapper.map(step) + + assertEquals(4, result.size) + assertTrue(result[0] is CodeBlock.Variable) + assertTrue(result[1] is CodeBlock.Variable) + assertTrue(result[2] is CodeBlock.Variable) + assertTrue(result[3] is CodeBlock.Blank) + } + + @Test + fun `map should return empty list when code blanks template contains unknown type`() { + val step = Step.stub( + id = 1, + block = Block.stub( + options = Block.Options( + codeBlanksTemplate = listOf( + CodeBlockTemplateEntry(type = CodeBlockTemplateEntryType.UNKNOWN) + ) + ) + ) + ) + + val result = CodeBlanksTemplateMapper.map(step) + + assertTrue(result.isEmpty()) + } + + @Test + fun `map should return parsed code blocks when code blanks template is available`() { + val codeBlanksTemplate = listOf( + CodeBlockTemplateEntry( + type = CodeBlockTemplateEntryType.VARIABLE, + indentLevel = 0, + isActive = false, + isDeleteForbidden = true, + children = listOf("x", "1000") + ), + CodeBlockTemplateEntry( + type = CodeBlockTemplateEntryType.PRINT, + indentLevel = 0, + isActive = true, + isDeleteForbidden = false, + children = emptyList() + ) + ) + val step = Step.stub( + id = 1, + block = Block.stub(options = Block.Options(codeBlanksTemplate = codeBlanksTemplate)) + ) + + val expectedCodeBlocks = listOf( + CodeBlock.Variable( + indentLevel = 0, + isDeleteForbidden = true, + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString("x") + ), + CodeBlockChild.SelectSuggestion( + isActive = false, + suggestions = emptyList(), + selectedSuggestion = Suggestion.ConstantString("1000") + ) + ) + ), + CodeBlock.Print( + indentLevel = 0, + isDeleteForbidden = false, + children = listOf( + CodeBlockChild.SelectSuggestion( + isActive = true, + suggestions = emptyList(), + selectedSuggestion = null + ) + ) + ) + ) + + val actualCodeBlocks = CodeBlanksTemplateMapper.map(step) + assertEquals(expectedCodeBlocks, actualCodeBlocks) + } +} \ No newline at end of file diff --git a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/view/StepQuizCodeBlanksViewStateMapperIsDeleteButtonEnabledTest.kt b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/view/StepQuizCodeBlanksViewStateMapperIsDeleteButtonEnabledTest.kt index 15de1d104..d1129ff17 100644 --- a/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/view/StepQuizCodeBlanksViewStateMapperIsDeleteButtonEnabledTest.kt +++ b/shared/src/commonTest/kotlin/org/hyperskill/step_quiz_code_blanks/view/StepQuizCodeBlanksViewStateMapperIsDeleteButtonEnabledTest.kt @@ -12,6 +12,21 @@ import org.hyperskill.app.step_quiz_code_blanks.view.model.StepQuizCodeBlanksVie import org.hyperskill.step_quiz_code_blanks.presentation.stub class StepQuizCodeBlanksViewStateMapperIsDeleteButtonEnabledTest { + @Test + fun `isDeleteButtonEnabled should be false when isDeleteForbidden`() { + val state = StepQuizCodeBlanksFeature.State.Content.stub( + codeBlocks = listOf( + CodeBlock.Blank(isActive = false, isDeleteForbidden = false, suggestions = emptyList()), + CodeBlock.Blank(isActive = true, isDeleteForbidden = true, suggestions = emptyList()) + ) + ) + + val viewState = StepQuizCodeBlanksViewStateMapper.map(state) + + assertTrue(viewState is StepQuizCodeBlanksViewState.Content) + assertFalse(viewState.isDeleteButtonEnabled) + } + @Test fun `isDeleteButtonEnabled should be false when active code block is Blank and single`() { val state = StepQuizCodeBlanksFeature.State.Content.stub( From dda8c37208ef119476d0f04f82d684b66bd980cd Mon Sep 17 00:00:00 2001 From: github-actions Date: Fri, 13 Sep 2024 11:02:39 +0000 Subject: [PATCH 11/13] Bump build number --- gradle/app.versions.toml | 2 +- .../NotificationServiceExtension/Info.plist | 2 +- .../iosHyperskillApp.xcodeproj/project.pbxproj | 16 ++++++++-------- iosHyperskillApp/iosHyperskillApp/Info.plist | 2 +- .../iosHyperskillAppTests/Info.plist | 2 +- .../iosHyperskillAppUITests/Info.plist | 2 +- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/gradle/app.versions.toml b/gradle/app.versions.toml index a3d783363..6cd2cd2a6 100644 --- a/gradle/app.versions.toml +++ b/gradle/app.versions.toml @@ -3,4 +3,4 @@ minSdk = '24' targetSdk = '34' compileSdk = '34' versionName = '1.71' -versionCode = '545' \ No newline at end of file +versionCode = '546' \ No newline at end of file diff --git a/iosHyperskillApp/NotificationServiceExtension/Info.plist b/iosHyperskillApp/NotificationServiceExtension/Info.plist index 9a45f255f..450d6ecdd 100644 --- a/iosHyperskillApp/NotificationServiceExtension/Info.plist +++ b/iosHyperskillApp/NotificationServiceExtension/Info.plist @@ -9,7 +9,7 @@ CFBundleIdentifier $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleVersion - 574 + 575 CFBundleShortVersionString 1.71 CFBundlePackageType diff --git a/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj b/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj index 7a1910a4f..389e728b5 100644 --- a/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj +++ b/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj @@ -5769,7 +5769,7 @@ buildSettings = { CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 574; + CURRENT_PROJECT_VERSION = 575; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = UJ4KC2QN7B; GENERATE_INFOPLIST_FILE = NO; @@ -5790,7 +5790,7 @@ buildSettings = { CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 574; + CURRENT_PROJECT_VERSION = 575; DEVELOPMENT_TEAM = UJ4KC2QN7B; GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = iosHyperskillAppUITests/Info.plist; @@ -5811,7 +5811,7 @@ BUNDLE_LOADER = "$(TEST_HOST)"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 574; + CURRENT_PROJECT_VERSION = 575; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = UJ4KC2QN7B; INFOPLIST_FILE = iosHyperskillAppTests/Info.plist; @@ -5832,7 +5832,7 @@ BUNDLE_LOADER = "$(TEST_HOST)"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 574; + CURRENT_PROJECT_VERSION = 575; DEVELOPMENT_TEAM = UJ4KC2QN7B; INFOPLIST_FILE = iosHyperskillAppTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.0; @@ -5853,7 +5853,7 @@ CODE_SIGN_ENTITLEMENTS = NotificationServiceExtension/NotificationServiceExtension.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 574; + CURRENT_PROJECT_VERSION = 575; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = UJ4KC2QN7B; INFOPLIST_FILE = NotificationServiceExtension/Info.plist; @@ -5882,7 +5882,7 @@ CODE_SIGN_ENTITLEMENTS = NotificationServiceExtension/NotificationServiceExtension.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 574; + CURRENT_PROJECT_VERSION = 575; DEVELOPMENT_TEAM = UJ4KC2QN7B; INFOPLIST_FILE = NotificationServiceExtension/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.0; @@ -6028,7 +6028,7 @@ CODE_SIGN_ENTITLEMENTS = iosHyperskillApp/iosHyperskillApp.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 574; + CURRENT_PROJECT_VERSION = 575; DEVELOPMENT_ASSET_PATHS = "\"iosHyperskillApp/Preview Content\""; DEVELOPMENT_TEAM = UJ4KC2QN7B; ENABLE_PREVIEWS = YES; @@ -6064,7 +6064,7 @@ CODE_SIGN_ENTITLEMENTS = iosHyperskillApp/iosHyperskillApp.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 574; + CURRENT_PROJECT_VERSION = 575; DEVELOPMENT_ASSET_PATHS = "\"iosHyperskillApp/Preview Content\""; DEVELOPMENT_TEAM = UJ4KC2QN7B; ENABLE_PREVIEWS = YES; diff --git a/iosHyperskillApp/iosHyperskillApp/Info.plist b/iosHyperskillApp/iosHyperskillApp/Info.plist index 3f6240f7a..6a251589d 100644 --- a/iosHyperskillApp/iosHyperskillApp/Info.plist +++ b/iosHyperskillApp/iosHyperskillApp/Info.plist @@ -34,7 +34,7 @@ CFBundleVersion - 574 + 575 FirebaseAppDelegateProxyEnabled FirebaseMessagingAutoInitEnabled diff --git a/iosHyperskillApp/iosHyperskillAppTests/Info.plist b/iosHyperskillApp/iosHyperskillAppTests/Info.plist index d24ac847b..c4607fb89 100644 --- a/iosHyperskillApp/iosHyperskillAppTests/Info.plist +++ b/iosHyperskillApp/iosHyperskillAppTests/Info.plist @@ -15,6 +15,6 @@ CFBundleShortVersionString 1.71 CFBundleVersion - 574 + 575 diff --git a/iosHyperskillApp/iosHyperskillAppUITests/Info.plist b/iosHyperskillApp/iosHyperskillAppUITests/Info.plist index db1a5b024..2bb4e533e 100644 --- a/iosHyperskillApp/iosHyperskillAppUITests/Info.plist +++ b/iosHyperskillApp/iosHyperskillAppUITests/Info.plist @@ -15,6 +15,6 @@ CFBundleShortVersionString 1.71 CFBundleVersion - 574 + 575 From e5e0c0ca53d74d17e11e0054ac96eecf16040d1d Mon Sep 17 00:00:00 2001 From: Ivan Magda Date: Fri, 13 Sep 2024 20:18:01 +0900 Subject: [PATCH 12/13] iOS: Mobile only subscription annual plan (#1179) ^ALTAPPS-1345 --- .../project.pbxproj | 4 + .../Sources/Models/Constants/Strings.swift | 3 + .../Modules/Paywall/PaywallViewModel.swift | 8 ++ .../Views/Content/PaywallContentView.swift | 41 ++++-- .../Views/Content/PaywallFeaturesView.swift | 4 +- .../Views/Content/PaywallFooterView.swift | 46 ++----- .../PaywallSubscriptionProductsView.swift | 120 ++++++++++++++++++ .../Modules/Paywall/Views/PaywallView.swift | 3 +- .../Sources/Systems/PurchaseManager.swift | 28 ++-- .../domain/AndroidPurchaseManager.kt | 2 - .../presentation/PaywallActionDispatcher.kt | 22 ++-- .../paywall/presentation/PaywallFeature.kt | 3 +- .../paywall/view/PaywallViewStateMapper.kt | 25 +--- .../domain/interactor/PurchaseInteractor.kt | 4 - .../purchases/domain/model/PurchaseManager.kt | 5 - .../moko-resources/base/strings.xml | 5 - .../domain/manager/IosPurchaseManager.kt | 2 - .../domain/manager/IosPurchaseManagerImpl.kt | 8 +- 18 files changed, 203 insertions(+), 130 deletions(-) create mode 100644 iosHyperskillApp/iosHyperskillApp/Sources/Modules/Paywall/Views/Content/PaywallSubscriptionProductsView.swift diff --git a/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj b/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj index 0fd2617ca..411b3ba42 100644 --- a/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj +++ b/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj @@ -144,6 +144,7 @@ 2C2D73442B1736E000CBB1DA /* AppTabItemsAvailabilityService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C2D73432B1736E000CBB1DA /* AppTabItemsAvailabilityService.swift */; }; 2C2ECCA5288C0661008DDCBA /* StepQuizRetryButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C2ECCA4288C0661008DDCBA /* StepQuizRetryButton.swift */; }; 2C2ECCA7288C0BF7008DDCBA /* View+ConditionalViewModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C2ECCA6288C0BF7008DDCBA /* View+ConditionalViewModifier.swift */; }; + 2C2F7CFB2C94023100C300B9 /* PaywallSubscriptionProductsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C2F7CFA2C94023100C300B9 /* PaywallSubscriptionProductsView.swift */; }; 2C2FD61E28191EC0004E7AF6 /* SentryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C2FD61D28191EC0004E7AF6 /* SentryManager.swift */; }; 2C2FD62028191FFE004E7AF6 /* Sentry-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 2C2FD61F28191FFE004E7AF6 /* Sentry-Info.plist */; }; 2C2FD622281920B1004E7AF6 /* SentryInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C2FD621281920B1004E7AF6 /* SentryInfo.swift */; }; @@ -946,6 +947,7 @@ 2C2D73432B1736E000CBB1DA /* AppTabItemsAvailabilityService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppTabItemsAvailabilityService.swift; sourceTree = ""; }; 2C2ECCA4288C0661008DDCBA /* StepQuizRetryButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StepQuizRetryButton.swift; sourceTree = ""; }; 2C2ECCA6288C0BF7008DDCBA /* View+ConditionalViewModifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "View+ConditionalViewModifier.swift"; sourceTree = ""; }; + 2C2F7CFA2C94023100C300B9 /* PaywallSubscriptionProductsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PaywallSubscriptionProductsView.swift; sourceTree = ""; }; 2C2FD61D28191EC0004E7AF6 /* SentryManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SentryManager.swift; sourceTree = ""; }; 2C2FD61F28191FFE004E7AF6 /* Sentry-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Sentry-Info.plist"; sourceTree = ""; }; 2C2FD621281920B1004E7AF6 /* SentryInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SentryInfo.swift; sourceTree = ""; }; @@ -2539,6 +2541,7 @@ 2C9320F42B68F14100999992 /* PaywallContentView.swift */, 2C7C0D622B6B45A20093609D /* PaywallFeaturesView.swift */, 2C7271272B6B92AD005628B0 /* PaywallFooterView.swift */, + 2C2F7CFA2C94023100C300B9 /* PaywallSubscriptionProductsView.swift */, ); path = Content; sourceTree = ""; @@ -5528,6 +5531,7 @@ E9FB89AC2893EA580011EFFB /* NotificationPermissionStatus.swift in Sources */, 2C4FBD8C2876C39C00ACA5C8 /* ProfileAboutView.swift in Sources */, 2C023C88285D928100D2D5A9 /* StepQuizTableViewModel.swift in Sources */, + 2C2F7CFB2C94023100C300B9 /* PaywallSubscriptionProductsView.swift in Sources */, E99B21872887E9C5006A6154 /* StepQuizSortingSkeletonView.swift in Sources */, E98BE36D2A374394000B430F /* StreakRecoveryModalView.swift in Sources */, 2CAE8D0C2805829A00E6C83D /* StepViewData.swift in Sources */, diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Models/Constants/Strings.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Models/Constants/Strings.swift index 8210c0054..20e8bb922 100644 --- a/iosHyperskillApp/iosHyperskillApp/Sources/Models/Constants/Strings.swift +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Models/Constants/Strings.swift @@ -646,6 +646,9 @@ enum Strings { static let subscriptionFeature1 = sharedStrings.mobile_only_subscription_feature_1.localized() static let subscriptionFeature2 = sharedStrings.mobile_only_subscription_feature_2.localized() static let subscriptionFeature3 = sharedStrings.mobile_only_subscription_feature_3.localized() + static let subscriptionFeature4 = sharedStrings.mobile_only_subscription_feature_4.localized() + + static let bestValueBadge = sharedStrings.paywall_best_value_label.localized() } // MARK: - ManageSubscription - diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Paywall/PaywallViewModel.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Paywall/PaywallViewModel.swift index ce34696c9..f083c0b27 100644 --- a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Paywall/PaywallViewModel.swift +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Paywall/PaywallViewModel.swift @@ -6,6 +6,8 @@ final class PaywallViewModel: FeatureViewModel< PaywallFeatureMessage, PaywallFeatureActionViewAction > { + private let selectionFeedbackGenerator = FeedbackGenerator(feedbackType: .selection) + var contentStateKs: PaywallFeatureViewStateContentKs { .init(state.contentState) } init(feature: Presentation_reduxFeature) { @@ -33,6 +35,12 @@ final class PaywallViewModel: FeatureViewModel< onNewMessage(PaywallFeatureMessageRetryContentLoading()) } + @MainActor + func doSubscriptionProductAction(product: PaywallFeatureViewStateContentSubscriptionProduct) { + selectionFeedbackGenerator.triggerFeedback() + onNewMessage(PaywallFeatureMessageProductClicked(productId: product.productId)) + } + func doBuySubscription() { onNewMessage(PaywallFeatureMessageBuySubscriptionClicked(purchaseParams: PlatformPurchaseParams())) } diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Paywall/Views/Content/PaywallContentView.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Paywall/Views/Content/PaywallContentView.swift index f4ce0b73c..30565a7a3 100644 --- a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Paywall/Views/Content/PaywallContentView.swift +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Paywall/Views/Content/PaywallContentView.swift @@ -1,3 +1,4 @@ +import shared import SwiftUI extension PaywallContentView { @@ -14,9 +15,10 @@ extension PaywallContentView { struct PaywallContentView: View { private(set) var appearance = Appearance() + let subscriptionProducts: [PaywallFeatureViewStateContentSubscriptionProduct] let buyButtonText: String - let buyFootnoteText: String? + let onSubscriptionProductTap: (PaywallFeatureViewStateContentSubscriptionProduct) -> Void let onBuyButtonTap: () -> Void let onTermsOfServiceButtonTap: () -> Void @@ -50,6 +52,13 @@ struct PaywallContentView: View { PaywallFeaturesView( appearance: .init(spacing: appearance.interitemSpacing) ) + + PaywallSubscriptionProductsView( + appearance: .init(spacing: appearance.interitemSpacing), + subscriptionProducts: subscriptionProducts, + onTap: onSubscriptionProductTap + ) + .padding(.top) } .padding(appearance.padding) } @@ -57,7 +66,6 @@ struct PaywallContentView: View { PaywallFooterView( appearance: .init(spacing: appearance.interitemSpacing), buyButtonText: buyButtonText, - buyFootnoteText: buyFootnoteText, onBuyButtonTap: onBuyButtonTap, onTermsOfServiceButtonTap: onTermsOfServiceButtonTap ) @@ -68,17 +76,24 @@ struct PaywallContentView: View { #if DEBUG #Preview { PaywallContentView( - buyButtonText: "Subscribe for $11.99/month", - buyFootnoteText: nil, - onBuyButtonTap: {}, - onTermsOfServiceButtonTap: {} - ) -} - -#Preview { - PaywallContentView( - buyButtonText: "Subscribe for $11.99/month", - buyFootnoteText: "Then $11.99 per month", + subscriptionProducts: [ + .init( + productId: "1", + title: "Monthly Subscription", + subtitle: "$11.99 / month", + isBestValue: false, + isSelected: false + ), + .init( + productId: "2", + title: "Yearly Subscription", + subtitle: "$99.99 / year", + isBestValue: true, + isSelected: true + ) + ], + buyButtonText: "Start now", + onSubscriptionProductTap: { _ in }, onBuyButtonTap: {}, onTermsOfServiceButtonTap: {} ) diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Paywall/Views/Content/PaywallFeaturesView.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Paywall/Views/Content/PaywallFeaturesView.swift index e1718fbf1..434d368ff 100644 --- a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Paywall/Views/Content/PaywallFeaturesView.swift +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Paywall/Views/Content/PaywallFeaturesView.swift @@ -10,7 +10,8 @@ struct PaywallFeaturesView: View { private static let features = [ Strings.Paywall.subscriptionFeature1, Strings.Paywall.subscriptionFeature2, - Strings.Paywall.subscriptionFeature3 + Strings.Paywall.subscriptionFeature3, + Strings.Paywall.subscriptionFeature4 ] private(set) var appearance = Appearance() @@ -42,6 +43,7 @@ private struct PaywallFeatureView: View { Label( title: { Text(title) + .foregroundColor(.newPrimaryText) .offset(x: !animateTitle ? -width : 0) .clipped() }, diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Paywall/Views/Content/PaywallFooterView.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Paywall/Views/Content/PaywallFooterView.swift index 2163b0d0e..a0a368eb7 100644 --- a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Paywall/Views/Content/PaywallFooterView.swift +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Paywall/Views/Content/PaywallFooterView.swift @@ -3,7 +3,6 @@ import SwiftUI extension PaywallFooterView { struct Appearance { var spacing = LayoutInsets.defaultInset - var interitemSpacing = LayoutInsets.smallInset } } @@ -11,7 +10,6 @@ struct PaywallFooterView: View { private(set) var appearance = Appearance() let buyButtonText: String - let buyFootnoteText: String? let onBuyButtonTap: () -> Void let onTermsOfServiceButtonTap: () -> Void @@ -30,23 +28,15 @@ struct PaywallFooterView: View { @MainActor private var content: some View { VStack(alignment: .center, spacing: appearance.spacing) { - VStack(alignment: .center, spacing: appearance.interitemSpacing) { - Button( - buyButtonText, - action: { - feedbackGenerator.triggerFeedback() - onBuyButtonTap() - } - ) - .buttonStyle(.primary) - .shineEffect() - - if let buyFootnoteText { - Text(buyFootnoteText) - .font(.footnote.bold()) - .foregroundColor(.newSecondaryText) + Button( + buyButtonText, + action: { + feedbackGenerator.triggerFeedback() + onBuyButtonTap() } - } + ) + .buttonStyle(.primary) + .shineEffect() Button( Strings.Paywall.termsOfServiceButton, @@ -63,20 +53,10 @@ struct PaywallFooterView: View { #if DEBUG #Preview { - VStack { - PaywallFooterView( - buyButtonText: "Subscribe for $11.99/month", - buyFootnoteText: nil, - onBuyButtonTap: {}, - onTermsOfServiceButtonTap: {} - ) - - PaywallFooterView( - buyButtonText: "Subscribe for $11.99/month", - buyFootnoteText: "Then $11.99 per month", - onBuyButtonTap: {}, - onTermsOfServiceButtonTap: {} - ) - } + PaywallFooterView( + buyButtonText: "Subscribe for $11.99/month", + onBuyButtonTap: {}, + onTermsOfServiceButtonTap: {} + ) } #endif diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Paywall/Views/Content/PaywallSubscriptionProductsView.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Paywall/Views/Content/PaywallSubscriptionProductsView.swift new file mode 100644 index 000000000..afbeefe8c --- /dev/null +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Paywall/Views/Content/PaywallSubscriptionProductsView.swift @@ -0,0 +1,120 @@ +import shared +import SwiftUI + +extension PaywallSubscriptionProductsView { + struct Appearance { + var spacing = LayoutInsets.smallInset + + let padding = LayoutInsets.defaultInset + + let badgeInsets = LayoutInsets(horizontal: 8, vertical: 4) + let badgeFont = UIFont.preferredFont(forTextStyle: .footnote) + + func badgeTopOffset() -> CGFloat { + badgeFont.pointSize / 2.0 + badgeInsets.top + } + } +} + +struct PaywallSubscriptionProductsView: View { + private(set) var appearance = Appearance() + + let subscriptionProducts: [PaywallFeatureViewStateContentSubscriptionProduct] + + let onTap: (PaywallFeatureViewStateContentSubscriptionProduct) -> Void + + var body: some View { + VStack(alignment: .center, spacing: appearance.spacing) { + ForEach( + Array(subscriptionProducts.enumerated()), + id: \.element.productId + ) { index, product in + buildProductView( + product: product, + action: { + onTap(product) + } + ) + .padding(.top, product.isBestValue && index > 0 ? appearance.spacing : 0) + } + } + } + + private var bestValueBadgeView: some View { + Text(Strings.Paywall.bestValueBadge) + .font(Font(appearance.badgeFont)) + .foregroundColor(Color(ColorPalette.onPrimary)) + .padding(appearance.badgeInsets.edgeInsets) + .background(Color(ColorPalette.primary)) + .clipShape(Capsule()) + .fixedSize() + } + + private func buildProductView( + product: PaywallFeatureViewStateContentSubscriptionProduct, + action: @escaping () -> Void + ) -> some View { + Button( + action: action, + label: { + HStack(alignment: .center, spacing: 0) { + Text(product.title) + .font(.body.bold()) + + Spacer() + + Text(product.subtitle) + .font(.body) + } + .foregroundColor(.newPrimaryText) + .padding(.horizontal, appearance.padding) + .padding(.vertical, product.isSelected ? appearance.padding * 2 : appearance.padding) + .conditionalOpacity(isEnabled: product.isSelected) + .addBorder( + color: product.isSelected ? Color(ColorPalette.primary) : .border, + width: product.isSelected ? 2 : 1 + ) + .animation(.default, value: product.isSelected) + .overlay( + bestValueBadgeView + .opacity(product.isBestValue ? 1 : 0) + .alignmentGuide(.top, computeValue: { dimension in + dimension[.top] + appearance.badgeTopOffset() + }) + .alignmentGuide(.trailing, computeValue: { dimension in + dimension[.trailing] - appearance.badgeInsets.trailing + }) + , + alignment: .init(horizontal: .trailing, vertical: .top) + ) + } + ) + } +} + +#if DEBUG +#Preview { + VStack { + PaywallSubscriptionProductsView( + subscriptionProducts: [ + .init( + productId: "1", + title: "Monthly Subscription", + subtitle: "$11.99 / month", + isBestValue: false, + isSelected: false + ), + .init( + productId: "2", + title: "Yearly Subscription", + subtitle: "$99.99 / year", + isBestValue: true, + isSelected: true + ) + ], + onTap: { _ in } + ) + } + .padding() +} +#endif diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Paywall/Views/PaywallView.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Paywall/Views/PaywallView.swift index ece8d6a37..4b0981a2d 100644 --- a/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Paywall/Views/PaywallView.swift +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Modules/Paywall/Views/PaywallView.swift @@ -53,8 +53,9 @@ struct PaywallView: View { ) case .content(let content): PaywallContentView( + subscriptionProducts: content.subscriptionProducts, buyButtonText: content.buyButtonText, - buyFootnoteText: content.trialText, + onSubscriptionProductTap: viewModel.doSubscriptionProductAction(product:), onBuyButtonTap: viewModel.doBuySubscription, onTermsOfServiceButtonTap: viewModel.doTermsOfServicePresentation ) diff --git a/iosHyperskillApp/iosHyperskillApp/Sources/Systems/PurchaseManager.swift b/iosHyperskillApp/iosHyperskillApp/Sources/Systems/PurchaseManager.swift index 3463ce856..53d68a0e9 100644 --- a/iosHyperskillApp/iosHyperskillApp/Sources/Systems/PurchaseManager.swift +++ b/iosHyperskillApp/iosHyperskillApp/Sources/Systems/PurchaseManager.swift @@ -95,7 +95,9 @@ created: \(created) #if DEBUG print(""" -PurchaseManager: purchase \(storeProduct.productIdentifier) failed, error: \(error), purchaseResult: \(purchaseResult) +PurchaseManager: purchase \(storeProduct.productIdentifier) failed, \ +error: \(error), \ +purchaseResult: \(purchaseResult) """) #endif @@ -109,7 +111,9 @@ PurchaseManager: purchase \(storeProduct.productIdentifier) failed, error: \(err if let storeTransaction, let customerInfo { #if DEBUG print(""" -PurchaseManager: purchase \(storeProduct.productIdentifier) succeeded, storeTransaction: \(storeTransaction), customerInfo: \(customerInfo) +PurchaseManager: purchase \(storeProduct.productIdentifier) succeeded, \ +storeTransaction: \(storeTransaction), \ +customerInfo: \(customerInfo) """) #endif @@ -124,7 +128,9 @@ PurchaseManager: purchase \(storeProduct.productIdentifier) succeeded, storeTran completionHandler(result, nil) } else { #if DEBUG - print("PurchaseManager: purchase \(storeProduct.productIdentifier) failed, no storeTransaction or customerInfo") + print(""" +PurchaseManager: purchase \(storeProduct.productIdentifier) failed, no storeTransaction or customerInfo +""") #endif let purchaseResult = PurchaseResultErrorOtherError( @@ -174,22 +180,6 @@ PurchaseManager: get management URL succeeded, managementURL: \(String(describin } } } - - func checkTrialOrIntroDiscountEligibility( - productId: String, - completionHandler: @escaping (KotlinBoolean?, (any Error)?) -> Void - ) { - Purchases.shared.checkTrialOrIntroDiscountEligibility( - productIdentifiers: [productId] - ) { eligibilities in - if let eligibility = eligibilities[productId] { - let isEligible = eligibility.status == .eligible - completionHandler(KotlinBoolean(value: isEligible), nil) - } else { - completionHandler(KotlinBoolean(value: false), nil) - } - } - } } // MARK: - RevenueCat.PublicError (shared.PurchaseResult) - diff --git a/shared/src/androidMain/kotlin/org/hyperskill/app/purchases/domain/AndroidPurchaseManager.kt b/shared/src/androidMain/kotlin/org/hyperskill/app/purchases/domain/AndroidPurchaseManager.kt index 00305c080..067692178 100644 --- a/shared/src/androidMain/kotlin/org/hyperskill/app/purchases/domain/AndroidPurchaseManager.kt +++ b/shared/src/androidMain/kotlin/org/hyperskill/app/purchases/domain/AndroidPurchaseManager.kt @@ -124,6 +124,4 @@ class AndroidPurchaseManager( ) } } - - override suspend fun checkTrialEligibility(productId: String): Boolean = false } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/presentation/PaywallActionDispatcher.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/presentation/PaywallActionDispatcher.kt index b7c86f9d2..b8044688f 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/presentation/PaywallActionDispatcher.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/presentation/PaywallActionDispatcher.kt @@ -1,8 +1,6 @@ package org.hyperskill.app.paywall.presentation import co.touchlab.kermit.Logger -import kotlinx.coroutines.async -import kotlinx.coroutines.coroutineScope import org.hyperskill.app.core.presentation.ActionDispatcherOptions import org.hyperskill.app.paywall.presentation.PaywallFeature.Action import org.hyperskill.app.paywall.presentation.PaywallFeature.InternalAction @@ -49,19 +47,15 @@ internal class PaywallActionDispatcher( InternalMessage.FetchSubscriptionProductsError } ) { - coroutineScope { - val subscriptionProductsDeferred = async { - purchaseInteractor.getSubscriptionProducts() - } - - val subscriptionProducts = subscriptionProductsDeferred.await().getOrThrow() + val subscriptionProducts = purchaseInteractor + .getSubscriptionProducts() + .getOrThrow() - if (subscriptionProducts.isNotEmpty()) { - InternalMessage.FetchSubscriptionProductsSuccess(subscriptionProducts) - } else { - logger.e { "Receive null instead of formatted mobile-only subscription price" } - InternalMessage.FetchSubscriptionProductsError - } + if (subscriptionProducts.isNotEmpty()) { + InternalMessage.FetchSubscriptionProductsSuccess(subscriptionProducts) + } else { + logger.e { "Receive null instead of formatted mobile-only subscription price" } + InternalMessage.FetchSubscriptionProductsError } }.let(onNewMessage) } diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/presentation/PaywallFeature.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/presentation/PaywallFeature.kt index 1d73db48a..99247b434 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/presentation/PaywallFeature.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/presentation/PaywallFeature.kt @@ -33,8 +33,7 @@ object PaywallFeature { data object Error : ViewStateContent data class Content( val subscriptionProducts: List, - val buyButtonText: String, - val trialText: String? = null + val buyButtonText: String ) : ViewStateContent data object SubscriptionSyncLoading : ViewStateContent diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/view/PaywallViewStateMapper.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/view/PaywallViewStateMapper.kt index 2157ee5af..449fbddbf 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/view/PaywallViewStateMapper.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/paywall/view/PaywallViewStateMapper.kt @@ -16,8 +16,7 @@ import org.hyperskill.app.purchases.domain.model.SubscriptionPeriod import org.hyperskill.app.purchases.domain.model.SubscriptionProduct internal class PaywallViewStateMapper( - private val resourceProvider: ResourceProvider/*, - private val platformType: PlatformType*/ + private val resourceProvider: ResourceProvider ) { fun map( state: State, @@ -53,15 +52,7 @@ internal class PaywallViewStateMapper( product = product, isSelected = product.id == state.selectedProductId ) - }, - trialText = null/*if (platformType == PlatformType.IOS && state.isTrialEligible) { - resourceProvider.getString( - SharedResources.strings.paywall_ios_mobile_only_trial_description, - state.formattedPrice - ) - } else { - null - }*/ + } ) private fun mapSubscriptionProductToSubscriptionOption( @@ -87,16 +78,4 @@ internal class PaywallViewStateMapper( isBestValue = index == 0, isSelected = isSelected ) - - /*private fun getBuyButtonText(state: State.Content): String = - when (platformType) { - PlatformType.IOS -> - if (state.isTrialEligible) { - resourceProvider.getString(SharedResources.strings.paywall_ios_mobile_only_trial_buy_btn) - } else { - resourceProvider.getString(SharedResources.strings.paywall_ios_mobile_only_buy_btn) - } - PlatformType.ANDROID -> - resourceProvider.getString(SharedResources.strings.paywall_subscription_start_btn) - }*/ } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/purchases/domain/interactor/PurchaseInteractor.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/purchases/domain/interactor/PurchaseInteractor.kt index 4dad641fe..e00728bbd 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/purchases/domain/interactor/PurchaseInteractor.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/purchases/domain/interactor/PurchaseInteractor.kt @@ -3,7 +3,6 @@ package org.hyperskill.app.purchases.domain.interactor import org.hyperskill.app.analytic.domain.interactor.AnalyticInteractor import org.hyperskill.app.analytic.domain.model.AnalyticKeys import org.hyperskill.app.purchases.domain.model.HyperskillStoreProduct -import org.hyperskill.app.purchases.domain.model.PlatformProductIdentifiers import org.hyperskill.app.purchases.domain.model.PlatformPurchaseParams import org.hyperskill.app.purchases.domain.model.PurchaseManager import org.hyperskill.app.purchases.domain.model.PurchaseResult @@ -49,9 +48,6 @@ class PurchaseInteractor( suspend fun getSubscriptionProducts(): Result> = purchaseManager.getSubscriptionProducts() - suspend fun checkTrialEligibilityForMobileOnlySubscription(): Boolean = - purchaseManager.checkTrialEligibility(PlatformProductIdentifiers.MOBILE_ONLY_MONTHLY_SUBSCRIPTION) - suspend fun getManagementUrl(): Result = purchaseManager.getManagementUrl() } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/purchases/domain/model/PurchaseManager.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/purchases/domain/model/PurchaseManager.kt index 96ae6fbd7..20e1ccc42 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/purchases/domain/model/PurchaseManager.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/purchases/domain/model/PurchaseManager.kt @@ -31,9 +31,4 @@ interface PurchaseManager { suspend fun getManagementUrl(): Result suspend fun getSubscriptionProducts(): Result> - - /** - * Checks if user is eligible for trial for the product with [productId] - */ - suspend fun checkTrialEligibility(productId: String): Boolean } \ No newline at end of file diff --git a/shared/src/commonMain/moko-resources/base/strings.xml b/shared/src/commonMain/moko-resources/base/strings.xml index e6868da18..d6fdb269b 100644 --- a/shared/src/commonMain/moko-resources/base/strings.xml +++ b/shared/src/commonMain/moko-resources/base/strings.xml @@ -696,10 +696,6 @@ Get the full experience - Subscribe for %s / month - Start with a 1 week free trial - Then %s per month - Subscribe Oops! We were unable to load the subscriptions data. Subscription Purchase failed. Please try again. @@ -708,7 +704,6 @@ The app is updating. Please wait a moment. Hyperskill Terms of Service and Privacy Policy https://hi.hyperskill.org/terms - Monthly Monthly Annual %s %s / month diff --git a/shared/src/iosMain/kotlin/org/hyperskill/app/purchases/domain/manager/IosPurchaseManager.kt b/shared/src/iosMain/kotlin/org/hyperskill/app/purchases/domain/manager/IosPurchaseManager.kt index cccd77584..0523bd27e 100644 --- a/shared/src/iosMain/kotlin/org/hyperskill/app/purchases/domain/manager/IosPurchaseManager.kt +++ b/shared/src/iosMain/kotlin/org/hyperskill/app/purchases/domain/manager/IosPurchaseManager.kt @@ -18,6 +18,4 @@ interface IosPurchaseManager { ): SwiftyResult suspend fun getManagementUrl(): SwiftyResult - - suspend fun checkTrialOrIntroDiscountEligibility(productId: String): Boolean } \ No newline at end of file diff --git a/shared/src/iosMain/kotlin/org/hyperskill/app/purchases/domain/manager/IosPurchaseManagerImpl.kt b/shared/src/iosMain/kotlin/org/hyperskill/app/purchases/domain/manager/IosPurchaseManagerImpl.kt index 97d3af839..13f77f41a 100644 --- a/shared/src/iosMain/kotlin/org/hyperskill/app/purchases/domain/manager/IosPurchaseManagerImpl.kt +++ b/shared/src/iosMain/kotlin/org/hyperskill/app/purchases/domain/manager/IosPurchaseManagerImpl.kt @@ -66,14 +66,13 @@ internal class IosPurchaseManagerImpl( } } - @Suppress("VariableNaming") private fun mapOfferingsToSubscriptionProducts(rcOfferings: RCOfferings): List { val currentOffering = rcOfferings.current() ?: return emptyList() return currentOffering .availablePackages() .mapNotNull { - val _package = it as? RCPackage ?: return@mapNotNull null - val rcStoreProduct = _package.storeProduct() + val rcPackage = it as? RCPackage ?: return@mapNotNull null + val rcStoreProduct = rcPackage.storeProduct() SubscriptionProduct( id = rcStoreProduct.productIdentifier(), period = when (rcStoreProduct.subscriptionPeriod()?.unit()) { @@ -87,9 +86,6 @@ internal class IosPurchaseManagerImpl( ) } } - - override suspend fun checkTrialEligibility(productId: String): Boolean = - purchases.checkTrialOrIntroDiscountEligibility(productId) } class FetchOfferingsException(override val message: String?) : Exception() \ No newline at end of file From 907db000f78a0ad32f9cf6c702e42a732460e660 Mon Sep 17 00:00:00 2001 From: github-actions Date: Fri, 13 Sep 2024 11:18:38 +0000 Subject: [PATCH 13/13] Bump build number --- gradle/app.versions.toml | 2 +- .../NotificationServiceExtension/Info.plist | 2 +- .../iosHyperskillApp.xcodeproj/project.pbxproj | 16 ++++++++-------- iosHyperskillApp/iosHyperskillApp/Info.plist | 2 +- .../iosHyperskillAppTests/Info.plist | 2 +- .../iosHyperskillAppUITests/Info.plist | 2 +- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/gradle/app.versions.toml b/gradle/app.versions.toml index 6cd2cd2a6..66197c498 100644 --- a/gradle/app.versions.toml +++ b/gradle/app.versions.toml @@ -3,4 +3,4 @@ minSdk = '24' targetSdk = '34' compileSdk = '34' versionName = '1.71' -versionCode = '546' \ No newline at end of file +versionCode = '547' \ No newline at end of file diff --git a/iosHyperskillApp/NotificationServiceExtension/Info.plist b/iosHyperskillApp/NotificationServiceExtension/Info.plist index 450d6ecdd..43d555cbd 100644 --- a/iosHyperskillApp/NotificationServiceExtension/Info.plist +++ b/iosHyperskillApp/NotificationServiceExtension/Info.plist @@ -9,7 +9,7 @@ CFBundleIdentifier $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleVersion - 575 + 576 CFBundleShortVersionString 1.71 CFBundlePackageType diff --git a/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj b/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj index 35c259fc9..aa2b33102 100644 --- a/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj +++ b/iosHyperskillApp/iosHyperskillApp.xcodeproj/project.pbxproj @@ -5773,7 +5773,7 @@ buildSettings = { CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 575; + CURRENT_PROJECT_VERSION = 576; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = UJ4KC2QN7B; GENERATE_INFOPLIST_FILE = NO; @@ -5794,7 +5794,7 @@ buildSettings = { CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 575; + CURRENT_PROJECT_VERSION = 576; DEVELOPMENT_TEAM = UJ4KC2QN7B; GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = iosHyperskillAppUITests/Info.plist; @@ -5815,7 +5815,7 @@ BUNDLE_LOADER = "$(TEST_HOST)"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 575; + CURRENT_PROJECT_VERSION = 576; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = UJ4KC2QN7B; INFOPLIST_FILE = iosHyperskillAppTests/Info.plist; @@ -5836,7 +5836,7 @@ BUNDLE_LOADER = "$(TEST_HOST)"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 575; + CURRENT_PROJECT_VERSION = 576; DEVELOPMENT_TEAM = UJ4KC2QN7B; INFOPLIST_FILE = iosHyperskillAppTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.0; @@ -5857,7 +5857,7 @@ CODE_SIGN_ENTITLEMENTS = NotificationServiceExtension/NotificationServiceExtension.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 575; + CURRENT_PROJECT_VERSION = 576; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = UJ4KC2QN7B; INFOPLIST_FILE = NotificationServiceExtension/Info.plist; @@ -5886,7 +5886,7 @@ CODE_SIGN_ENTITLEMENTS = NotificationServiceExtension/NotificationServiceExtension.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 575; + CURRENT_PROJECT_VERSION = 576; DEVELOPMENT_TEAM = UJ4KC2QN7B; INFOPLIST_FILE = NotificationServiceExtension/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.0; @@ -6032,7 +6032,7 @@ CODE_SIGN_ENTITLEMENTS = iosHyperskillApp/iosHyperskillApp.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 575; + CURRENT_PROJECT_VERSION = 576; DEVELOPMENT_ASSET_PATHS = "\"iosHyperskillApp/Preview Content\""; DEVELOPMENT_TEAM = UJ4KC2QN7B; ENABLE_PREVIEWS = YES; @@ -6068,7 +6068,7 @@ CODE_SIGN_ENTITLEMENTS = iosHyperskillApp/iosHyperskillApp.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 575; + CURRENT_PROJECT_VERSION = 576; DEVELOPMENT_ASSET_PATHS = "\"iosHyperskillApp/Preview Content\""; DEVELOPMENT_TEAM = UJ4KC2QN7B; ENABLE_PREVIEWS = YES; diff --git a/iosHyperskillApp/iosHyperskillApp/Info.plist b/iosHyperskillApp/iosHyperskillApp/Info.plist index 6a251589d..cf90b39b3 100644 --- a/iosHyperskillApp/iosHyperskillApp/Info.plist +++ b/iosHyperskillApp/iosHyperskillApp/Info.plist @@ -34,7 +34,7 @@ CFBundleVersion - 575 + 576 FirebaseAppDelegateProxyEnabled FirebaseMessagingAutoInitEnabled diff --git a/iosHyperskillApp/iosHyperskillAppTests/Info.plist b/iosHyperskillApp/iosHyperskillAppTests/Info.plist index c4607fb89..8348e40f1 100644 --- a/iosHyperskillApp/iosHyperskillAppTests/Info.plist +++ b/iosHyperskillApp/iosHyperskillAppTests/Info.plist @@ -15,6 +15,6 @@ CFBundleShortVersionString 1.71 CFBundleVersion - 575 + 576 diff --git a/iosHyperskillApp/iosHyperskillAppUITests/Info.plist b/iosHyperskillApp/iosHyperskillAppUITests/Info.plist index 2bb4e533e..47e97daaa 100644 --- a/iosHyperskillApp/iosHyperskillAppUITests/Info.plist +++ b/iosHyperskillApp/iosHyperskillAppUITests/Info.plist @@ -15,6 +15,6 @@ CFBundleShortVersionString 1.71 CFBundleVersion - 575 + 576

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 x#Qf}(4jUiN(6>TIQU*NWeE<1L%{LbTNQ)6bN literal 133350 zcmaHSbxa|J8*34`bW>H>Ud!Hvexd^dIcy?(F`L1Njej)l`@Khb{kMI-CCkoBto! z!rApd{P=$yAqRVp|K$3Q{HHr)D@QGje^>Z_N(^uVr~_mH694J{-~69Al>h*Ij{pF4 z^8fhEa{z#j2mkSrcb7SF``R9q6BhvbF{QepLbhD0%<@ z);s`!Xz*XLf9C&D8~9&{_+MR4|Aq~~9$*Ck1LOgY01E)iKg99xp|S&b#FZd&=8OND zB8PP#l2^AD_?9WUCy0viUKpHs$jLeWd-INS+)|6%0`|1V7nB_)D=iDWageg4=@BFn zH=l1$DB`+$3F{9+#Yj0cz`ELSB-~3BoX><#((ahutk}5Zo+T@pYsv~hPsK0EC3>G-? zyr2NayLX_2N3LJ%dy##Z;=zUykr{_Z*zE);Mjq-Ton>8>^XDc7JcWui;MQD^ z>!3Znq%T5OfA&GVo_Ut35l|5@g&=Z`R333+Cgj?4l-Sb&g$F{3ea|k2&%@rkbJ0a~ zlkHpWAr@o7O%MDxAzvP03aI2#EjLrCGVV+wSO@TSFP^1;&%i{($BY=eonV-$rP?nz z5Ox1DA3zhkDYz$Hc2EA@K7-E+^*ba~2)s zFUpEgzd}ggiys9rv44ne@f?yP@M5>AeiUvItzgIn*ydV8B#TinzqF|YRsgM+zyrGG zHV(n>!L1)~zn;U^pcFb`VqBA~y)6=FqF69sXrbNn1Qu%*_z`eZq(XK#z36z}`hrH- z3r$m$Q^8Z`a7{3_Gf~S(sy@7_=ATj>)=UMXZUuaB!oxQxk@}PNmAq@OItITUI=wip z;*j#nY^#NX`I4@sYV5HT>B$HW*&4C-$cLzUY#ML%atd~2TMDJ@int#;-Z0?QziKwC zwT35eq(qyG4OPF#s}bl-VLUpW;u)9%lQLr((tSi;-4(zE-%i{(y-r~(RE^BUkWC)t zzSo-}kdp^&@0k2m@kzl5!i&wY{%rG#IWVn8y_#mi_1AnYX|<8M8)+V~Z(BWT4S$ip zgD>Q$rAcHKiQ3TY*-3sOB=*>JJpp3*}yRhq54`jm& zBcgKgl2_ALm=*evw815CMUwmqVr?$4mdbN25L#mIH_B`w5mAQ-KbSI!d-(x86>}Gd|oeCPE z8K1sCyCp{Ou<^i75Bc?bHPnxbdSoq?ZNoSqa zOT7W61rJr->mEHGl~3#EhR;`uNzKarZ1{p8ywa;@M&SeXS?1=p0(l96Y<6`YIzqAF zU2HVnf~lAXd8YMJTf4G?6H)vw1rc`M{^x>+cV90=o6#6+FH!J|=*NerxzK=uI^29} zG?*WzNDO%qyKOujYg3&JyPZz%GSvT~MISHehF6;SQ`osDXI>(aHQ!A8mdUZrDlnP} z{)cELX~a7C2mgRAHW#+KyGFTso3AJK;o>tTo$^zEpPg90;e|sqZWYU5@p+~|#K)8| zG!weh=Qx(`XBCTJSgL@sJZjNFYL7h-yC^#1tvNZ+-Tx2uO_=e<>qeW%Vzk+UzPbhf zgkNFmM_~Y#sg{!FslRISIN5U(5AUt^hd7>$s*!YLh>pi+DpXSSHSpCptl; z%IM##Y)Y==4hTW6m+;6`!mUiEpd;Po84@G9WHo5yPKBK_RG%^repKc>eC6(JX{Yqb zAQ@gGDs*MLUFW)`tDAh(ED8`iluDc0I+%SjObV;}`WCD{-)7%P44GFwyXR#W7$cmX9g!^e36XBK~GV;XCqn=@3K6 zCp<)Zt{DJ>EWTB+n3nymu&?OKVVb1^TDyPtC>J7OaXS9<3?j`po1Gp8gH@CF4O2k+ zM-z3x?2`lEP)er1F$|$RUJB*|=gu~*Oo-h)LORy)C&VjSSS3Uy0Mvqp7t11id3_X9 z8miQObDl7YlzJSQ9UNcEFxG+R_hxJ5f?8X2`ru$8vq%*)bJ2z>{}3c+Nf`&`NF8+g zcYakSh_1;B^5ZF#L4llPcSh!7vu>wq-1cW8uDpoR54Iphfq2*`|XDTg|6RC{ouZraiMPDDi*WD*Q>SZ{a0b+m+7!zBc+iP_=7F$_BSp#fAl9ekYRvzUP#$f)!waTyUqPrI~W;#ns)duhN8}o33*@`McjYZoptkJ#EMIPW= z#C<9`bA=Dtqq3PGrfHpPN!}(b1fXDT<1f4*c&9S*bn7A8@08%w>|QB!c}_Nz zUy9>s&+lbQMAw_nWtv11Ff)1HoC4o?uxU;diJ8^75vd9fNX=J93&p2k_+1uR!x^{b zUMH+*ci{vhQW@?>=E)Q@jZhCbQ`CJ4L}EUfQ~V5t?1*0nCL2%zp5>9@r8@s23|tjf zn0KadfNE-1CmI)Z^DMRs} z)A{IeV)#|U^aFK^ME)_InBD_uq(TcV14q6Z->A5B8cEhC=%Is^r=wS1CdBIwUQ1H^ z;|QECd~lxq(ePOhzO`H73jJWufMQ3QhUpCq4!WXZO8snYwC7EK)U>ILgu-Y#hwn&BK5qnoDQ-Y&IYBuJbo^@nhf}O7t+%J&={L_w+~je4JJKbt zf1k&my^YBRVGFkM-am(4jXpm3H^#$70M@C zJZhksO3A#~{=E0t$)!)<`LVqWmrLt3Rbzi51uhQcsaToY1Z$R{Ie|>zLR{6^LB&g{-x_?3ZAqe!<`sif2{6)N0fHOJqTZ?dr zm=LFp6dimCDBi}YU6&V$CY2!(OQ}r097p=~9D+pJi4F|{Iy#wODO7Zt*q;{{Won(I?QM2QygB-CF}_C>fkSYGi8)nT`V_b z1n*aJA(rUF2Bx8|g9ed=j&Cvyo|ktNB+c2XiQ1Os9=tnI`UHxlsx>mKrNNi+^p_J@?$jOms(8 zYG$c0cM)C0#`U;apM`B~=e>%G>8qGOY;7QWl1TrHL%VnNJ0MFnYDK07jhEp$RV#G$ zXg=lw&Xv!Hd!yj;40K7H`HX;(-Eh#K!_HJ9TP9yM6t*brv!h7?SFH3TAN)zw(Q5-Z zNx*~D5!Q>rHxWr#oYDZHBrh5z>I0&$oq5uKrxp01z9-YSO%NjcQ%kz3%S4H|@|&o* z^IO2PH(3!r=?ESTtCt0Z;EC{B5$tndqZek+Rn}1^0;f0y z)c}kI!0$9Zygv=5uu*s|jJ<;YjLrZj_ED%@O7x&iWn(7RCvD8yWFADOoa_(y`5Z_A zXxY1%^*ntaQ`|lkjG6rOno@3>B%OIw%=DR!_96XH!T5?OP26*Md*d%I^{pd45`Q@J zU|Kwmis^R1uM;|4p$oQgg^k{UUOHt^L^Bg)wo1Fevf%kF^(9#j<}H(u+qcq95#5_6DlEeY-|m1xgOR^edZu z&dP^A$ZnMV^Ji)t6$oh2qf6q7Rhb_gMtXk+5i#U@uysaqb?A{0aH^Tq;!kG$VaoNh zv=6R_3$7MMb@@J>^?N$a8I$U_n;sQi)1RDw_;_WGH6;1$_KYBM1lykyl#1%>-TJ;6 zo9JvcNO|-7genQRea*!Y8l2S?j2H|a0JEYVb}%4*gBZukwz6=kKqY7A{=tA3_GI;opW1&Qp$6Q->qVho z2eznYR9%@At_4%RC~04^B~IY4X7zIltj)uZbb1A8HpjO`)ZOXd*B;3rHRLIn^&G{n zN_vi`iPE5!~oI1veT6hs`r~g-0XmRMnqr{mj{P;`Z> z1n(wDS>7#xND+dQUYU{KRbH79%uoF~=PzeW=Me#n-1ZJY13V_WKQ>{l zFA6bjr-VQ`&!Ex{PG!Nmx?y|h>?6bRMi@9zM3mN9-3UxbOW-kXbu?xpnF7Iuomkl5 z1sj(aTQv;@Z@4|^K}D!@HNv#M^{0GJS+Yu=uLMlU<@Xn-+-J;Ak)E#f3#c(f9G6W( zP(g(?*;1NON{ud$rJLbw6gvL_%#F(QGrV0TNj>4~t91YA>v-SsxRp9g8YQXPw*8UM z_VZk!j|g8BdqS#lY5u*#h+{TkNLL7>YP?4~WQ6g`4e_CIjYNyi9O-x1q|7`@{79vH zP&0oK2Wrk~f&@R}m*)3f_T~^HTlVNw{3QzsxmUuFcfN2j+9*SstsfgV+TeAp{R#Mo z27iPskWcykO}Z!?oHdu>7qeRa&3{$wu+!7;z+faXrq zufOALQcrKH8knU>c0Y@sJoQW{$f9_lU$iO@UM=%Y>p~O&tl&1AqmeLI(R;dftFU^vB1)JsE1<~N{I%CaD>tm+i_9)+ zGlWX&D~(>86&|c|RIX-W4`?R)*)kBP0J)?tuNu-Rsa|4s6j?7|4cnmE<+|>3yF42r zV-CW4V=Vms?mxow96_U;c%tl)+}OVqO#HP)YW)m0#lsOldau8$FUn#e^S}>y@!A-? zK5I~%gcQ)eH?gBfqrv9YTZa#e1uYjDTZpp0M`8xvJm)R5&yLUH7#|8LoPECei;*bm z-9(jN?f&feu%r9~i7kvN2=|DCdo5*1P31P~5At1CVb&|!p#hH0!Riby7D~W09W`$h{{y){d(Kl6_5BFYEgyTUlr3Y|3+KhAt=2}y4CB|;&9fB@oUuzP zkX>hMbmeO0XC|ri5%#k=h$${RRYpm_zVCdF-0_UHApElE7>aYM|98=$<)Zt*y^O5hgG{z`rfdo?0e$4Qf!&+mwBiI z?UqRZzv?EaEguJd4X#-(xu>8@r&))`%fQS@hSpjLOmFaZJF2JJ6VYnJ??z)>D@>LH zE;?Fd_fVgnEz#&DQbRnAMWgY7gPL~gxrP02Ig}P?xcKxkas5gM<9oMKhCgpfrOed# ze}2kUr&rC0XtGg0LV9sAsPKTlt7tVyVU|VMq2jW~+TC&aO4{Xzc}{L(N=Bk!9G5$C zqpq1~e2!?bGc>V8*8+kYm#+Zian z!^}}j^<)KZt?iW|H(aiN(2U6*_=hn2M{MP#&muhK19!tL!}xMj60>ju02sh(Uq z-VwEw*e{q%!&s51=p6dap-4(=E?dyZXxWT4bxd$VQQM{79hRvqnhER)A0(pP1b?mX zgFA?M9+k1^Zc?e6*QR0GG_e_y7nLU^=4;Yp3I8qP9Ps+hG%Ns>s?*i5TnMjeD@l=ulWCautiU-=}TXdUvQ`<@nt z)ZcjhCq8ubvaE8blD0d%B17JJuvoN?)E`Ji1#OQHuk>h$ZO*9a`~ps$RBx!W4CBfp zG6F4R_pkM8M}&*5`7Nrg`%r7c%U>_ZxDC}iu!TR#4}>DwB3kYdZDlU zMqLZ?6_|ZBD6sLd{y3X>a(fsPXloQz7q#9PIqCp}%Z{2Fgxq*AaBn~>%pxJk#LgN; z(KgE(1>G^9CN0{Qy1CDAI~0$8dl5FoBM&vKD+waSyl~_5)1g0@_gcj6xPE9yv+T6ytp4lbHjZ#m-hHsft8J5q!&`KW(l7-{+ZfYfH@rm zFAt9FH)49}@Px>yBl?={NTT@+BX+TWG`ab?8tn*&1zy!`aM_a4E{Eb}Ef{?1naSEl z0lbC`5}dJFhVmW+=M!x0J`7f8(0m}?S-!?ajp~cKHdIuJrUs_Vx~Qd8y4!R|Z+>`R zIHP81!edWK)oDrD47H-O9~aR+`%L0!P+lr>&6zedWSnY^Od*`Df`@0`$-Y@$NZ2D; zibkH1Gi4?%n1L{#%&&_o+pO?wf*nh7)smLd#I|qL8hp>|MRaPRez5AP7{YDRjdV#b zNswzaNaDyh0pMh}?eu`TuC&><%ZarFSh63+V&y4hG7)&=dlnvGTh~znoy6bfz{5b2 zf{-41upPLBkmLC(hRx8Q6OErRI)g(#FJIX~dk{^vd8GvxK=CH7xFr>J`CVZH;(3;yAWMDc|}i5MXD5L9EO=6qMND00X^BM{acfw`%bL3tn6|c$V4Y< z`hD}o|6Awc7cf&Wv9=z*82vThdry#q!cx%!t_4jYSDQHI3zT=BwsPQxs(2JQl1!GZ zX71^$&zSfD5xOlkiF4XjQ+r3yDI3h~_8*0g7n8C5M*B%U$B()^odzPD`->U1XwKh< z8lK*p7oM!AZY`p*<-U*-Y^4e3n(`MJl;ZZEn85g_JtA|KNd2?Lfw2%h=BaGUnfCNx z1Q2GjBpzF}^WXO+o2*=s4mgLTV-?t7WC^-qNdrC!TVk*+lM+X!R-j&Ay@+w)&PCtL ziiMK(T}O>W+}4ib@WU=o-7cKqIGve5 ztvi&rU>bVg>JHTFnBqc95&bEqV1ntm`Hyy=ql?3A-SfD>VG;VilA-#t;8)h59o$ql zj22!8jMyTZ(LE#(Jo`9P@%TuIr@4T-h~k=l6X)np%-a7cqXKD!@%$Fv+ ze$*R1E)x~AYZUXi^D7)>4%@8#ON(d*zqPbvWGm8SXtk(!qf{bV!9B_9@XIPI*^SEN%6H%v&Vf8D{~%Rv5WzfHOIPss^QIPpGz zvI)(kbt947mr^fy_5aXg$Z6SKKzF90gkA8+zRh7q-&j=r6eU?8HbU&OAiI5LLg`IB zom#{mLq|@QTZ7Ox9sbEu3s`i=`P&7r&(H8M##&-boY?x`p1gHLvFWBcbbHNt&lW|( z<$Czl2a0@&`WlA277aB6|U<4+o zk{G|Q2Dxv+R?lEkARa6S@}2Yb)KU_`6_%s(un+brEr=A0&P0>|ZZZ-OLn-y~c1Cm} zQLH#mLtS^Pf4I_Bl*3ET_B%JI+X(?{JwpY)Djcx0GiOGICi6QBBa)=_4Fr@FO#PP7 zP{(5HhTZjWOaD{7Ff5lbzs>W)=KHPU?>Ip>385J>g()GP87VLo9ls0|mcX9zr7&*7 z(xl#c{w)!OLnli_B*dTp)#>qo2YQ*`Hsa-O_*uCPP#uvSC5P3<0TwMU)h}0S*^z#R zLZtC5p{Gmq830k4>X$9wf*D|b`MQS5W)Gle%b;uyDXrY8pIg7=k6}^^1El(4b_l|7-;C@vF}>;X#7FHBrai08gs)}~ z{UfLgK6C=9wMdFeD}JpMhkVW>Xf?2She`u13rV0OcT zV+Gk8D)F~8Q!cJtaYf3*&EWQ6eue8mC%86u7o_(bE7dG_`l0f0B+;+DDUtB|fl1hb zG8@(@iuw-fA%{N|d3H16@JP^f2a%YL<86lVX^ei*R?b2aO-l-uGI%(agvced8FJk1 zI0Uhl+oHdMLIQG4#POr!oK-AuNjc&&)jU(q9p>&m23~FcHLGrExHcqHM3%#ZVca#L~M#P8T1yhSsIJ9poN$TA0>hc$YcaB<&s5ZDO1by zTQWcuMGic*>=Qd$EnDaB5+~W^`#*eax9S$Xq&+p>#!^OE@z*jZkoqV8ki#$;fkJ2d zDWNd_uo3^`?Lu^o$05uDl1F4z#86r(j`t@pnp|x_=`9bhYLl`$+=XAL2AV-WZI~`| zVW!cMlF4P`?vKPOVemV$v?eOL;lRH1D9W~vqwCmUU`Y7)a3h z(G=&Bb-Smh?i0?Dieia$%Xg3D&6{P(+b&8NBd_8D3KF)k(Pc09Tq)(Xs~x z8_SXl7D)+oL{7TtI9UPJj85L$_z0(f>(gzcHU55nMN_z3JU`(Dui4q5hekcj=I^(# zH>jx++^1U!a0R?hxMm)lU{`E{JMZuI_q5C0LRqByiVCaT)jYPF#Dqc$)Njuw{bxMa z6_IKB)bIrLV!-))rNIK>CB$F9LHJb_1agym*n_b*jcQE_SXi6TD#W6%k14Cb%wJmt zKX(@pS7cvC9m#S|>x6F77m{xled*FPma?9M8nvV)VY5?Ok5xnyt=wtoj!%FvuIQ5& z`c53xrVz2^bl1Zrd@)Qx{V{k9=!c);)?liHM+?mygjoqzgiBwy4&+x?( zX;TDz?x}zZkp0n2N;(Z^*#Jku7zpK9|D{Y`Ixc&83oU6!GJ){TBD0+l(3Q&o-B^=aOUOc)dX_Spsa`XBphP z$-c%)X9*xi4hlz2g8aak_7L*A3hCz>$5rcyUIu? zM{_U1>IIO%;h|%50hcS*q%K=BC3_B1H-1Q`xGGE&Dz&o*!y)Q)cr*L^%D+FfwrK>2 z&xh!!@jxK!y@m9LcR){LH9Rv*msOP$QDW@=7sDzBVxY!e;4+^nXgy-+@mKciI#1z` z)#P6=#*{zem$8!`e7vezEc*HviSMTJdlmY1Dr=s1dTZgsM`Uek_)`X7F`$8S7FhDH z`~$|p_aTeCCsb46Y@^l%7W?iyu}$vckK8un&iKbz?{?irR_W|5PsMcjVaK3TGn+^1 zdL^yCr3N6ZiGV?jyC$ScOm?-3rYfjGQ^RObA6{ZR7Ix=ctk{9(0>W2fGUOeXa}M)54uE4OqK9Xt9fw{6Xc;FYdQTEsY|dsCeUHx z$|<9ziA6=Fj+{4Sk)MD?aCU9-ZS{GBSk|Jfx}sno-X)wJx-qz;=5=oexoPekO)1#K zl6dDK0l-vjNUo?3grbgV#0_(%@I91tpan;=)euvpcw2njA)YIC%pf4sKK7i5TL?30 z{7Q7583DEZAJC9o%Lo_OUakMJqgO7C@Sa=H>Q{+Nv3hQV6#NToy!0GVkd`gBGO#4?uZ7qxiyd!y& zbXNKZT5D3a=Nv*zB$mo*<5s~tyhc9k>YXqIGXiA&2qVqgLOe zKR110AznO0Lp#VEC3cC{+OqWVBJW*wFObd}pddQ@wSeN%D3`{RL> z&1SH`)kYFQ^M#E$K$#L3K$KH;nu3bCoTxb#x1$F?EnN*r4S}W71a%oUW9u~&YY z58^)7!N6z_6-|BCjm=OjK7`Xc@)n?{gs+|3&1_&8U#W*BW7S#@8C3i8a2^1K|N_NAfOqgmfb4Ue6_P2HAb1m>I7h%bL}t2db{H;$eGsb!S<@!>|G zia;hj%lSfYFU@)TSoo!IY`evwF@3@}egHOPH# zc!IvEjXP<*ErHWN-~=KiSrFtSFkQ&i$AD6n75I*Wjkdnmi4Bb%?I^bHBERdvK^AV1Xh;`^Q<4)|>MS8in(VtxBjLIN1Ela;s zZ#h>~ z`XDBIDRv3Z3Wa*!B)1HOzLMRS=j;~9X4^M>E^3s!;+?%KiXGq(cidDQWxR|vW;;9^ z1)^U!QRzF>es(?p2WK6|zwp8nD$JmX`x3~^!+#iGgGhl7!NDqlLvSZpdWf_%(qv1q zG)z8-VlP&Jzt;)%$zmacY@Rm65T{ghKL_>SiZXMRV=m;}cFF+&0$3cRU-I||d0Gl5 zpVBC22RO=*(h6CV1N0Cs=;TrH8mepR(RWkkcUU(3Sv5b$2_?5}m%p+ZJ@=`xd6=^m z;;&vPbO`UY;wp}wi6g{UAUr~``Gpq4E6d5adTS@r(Qx!w>FTZig8PVw-a6}>)7>l? z38pX)NvYZ6>YpbOSm{IC4#WXr3-kgQ;l&BJzvDCb^L!z&oL^&S8!MsVFG=QaFLFTY z__%0;*a$Z1S?N0viR*KX&W%ffgo0|nBETV%c4iJFLXWMzW8P+pAjmy~qy}(n(Rz(k zk#-zEQw38T@T{vjf7>DRILwzzVw(_*w-i0f@cL1F7FhOL5Gz%a=KMvD%jM^TjqW7x zV_%R{Ki3`1EngP8ly39^Xo^jEqRA$8(7KE+-OFTmIHB{Zl2cx&f7*k0C2zoBvjO`1 zPCDyLJSNO28lGasq0xC2tEm9y02073V2uez+Np$|Jt^wlqu zmz=z78myS7LFBiFyvk(^kQ4w-BaKaE5~oQxAA1!>d+6J8aSORaqPKFuO_qNV9TgN{ zf^buX82T3GRLT60(muy)nE9bEF+4M$0^ULebJ-lMAryoNcvHaphYisrMFTJWaX_6D zCO>46f#A$#HpD4O(iSBZ6F5VWq)hLd@4_@Hob~;4t#USz8p2i!K#KIrxj}Bp?d202 z?$TI3wgOKaxGLPIKnq_PGd>(95oWQL(XCAFSF%Ax|8v{;_9_I_89dJ)3S$|IT>t#L z1t8)mj3Evs`W-?_$?Y35S6G;S1% z6?9zW$~Sz@C1BXLYp~jELvI3o#!s!tVnuZ=63Zd(hQ!IivlqC^q>7^TC>|lk39LPuD@XI|O`95h)}fyb9Ia&KNy;Ho-<#(%1Pzy3|QREjsDa zbIHDWPUGA>ok?8r;bC-Se4Ky|Lyc_yU<=Z@sD=s_?yvm{4#ie_Uud~TN_xr$Ikftw zNlZLTk=T&3j#S#|aKw`(awnUUJXOY)FEegj$bw#50nM^=Zk9YJr>nl-*iQ@aHE2 z)8U@|a#0|tx^k6fbj#|{#IJU-*EY>LVZ+C`^-|rRWOMkVez6oirnxmDkvDt8t68V# zdh^$_n2NK87sSvL6bM^IxZ0e)TPPw?;6uYE{5z2`&Mh^t{D|