From f6e15d076512c3b9c923c1cccc9161444a15bd14 Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Fri, 4 Jul 2025 13:31:56 +0100 Subject: [PATCH 01/38] Initial CustomizeExportScreen.kt --- .../main/res/xml/remote_config_defaults.xml | 206 ++++++++++---- .../main/res/drawable/outline_share_24.xml | 12 + .../androidify/creation/CreationScreen.kt | 22 +- .../androidify/creation/CreationViewModel.kt | 16 ++ .../customize/CustomizeExportScreen.kt | 255 ++++++++++++++++++ .../customize/CustomizeExportViewModel.kt | 95 +++++++ .../androidify/results/BotResultCard.kt | 10 +- .../androidify/results/ResultsScreen.kt | 104 ++----- .../androidify/results/ResultsViewModel.kt | 38 --- .../res/drawable/rounded_arrow_forward_24.xml | 13 + .../results/src/main/res/values/strings.xml | 7 +- 11 files changed, 596 insertions(+), 182 deletions(-) create mode 100644 core/theme/src/main/res/drawable/outline_share_24.xml create mode 100644 feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt create mode 100644 feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt create mode 100644 feature/results/src/main/res/drawable/rounded_arrow_forward_24.xml diff --git a/core/network/src/main/res/xml/remote_config_defaults.xml b/core/network/src/main/res/xml/remote_config_defaults.xml index ebe098d2..aa06646d 100644 --- a/core/network/src/main/res/xml/remote_config_defaults.xml +++ b/core/network/src/main/res/xml/remote_config_defaults.xml @@ -1,5 +1,4 @@ - - + + + + + diff --git a/feature/results/src/main/res/drawable/size_tool_icon.xml b/feature/results/src/main/res/drawable/size_tool_icon.xml new file mode 100644 index 00000000..9ff65759 --- /dev/null +++ b/feature/results/src/main/res/drawable/size_tool_icon.xml @@ -0,0 +1,21 @@ + + + + + + + From 90c4a86e1dceaa6682f613955099be2c78e82228 Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Fri, 4 Jul 2025 15:31:38 +0100 Subject: [PATCH 03/38] Add GenericTool and Tool options for ratio and background. --- .../developers/androidify/MainActivity.kt | 8 ++++---- .../androidify/navigation/MainNavigation.kt | 3 +-- .../src/main/res/xml/remote_config_defaults.xml | 3 ++- .../src/main/res/drawable/outline_share_24.xml | 16 ++++++++++++++++ .../developers/androidify/util/LocalOcclusion.kt | 16 +++++++++++++++- .../androidify/creation/CreationViewModel.kt | 2 +- .../developers/androidify/home/HomeScreenTest.kt | 4 ++-- .../developers/androidify/home/AboutScreen.kt | 16 ++++++++++------ .../developers/androidify/home/HomeScreen.kt | 2 +- .../androidify/home/HomeScreenScreenshotTest.kt | 2 +- .../androidify/results/ResultsViewModel.kt | 4 +--- .../res/drawable/rounded_arrow_forward_24.xml | 16 ++++++++++++++++ feature/results/src/main/res/values/strings.xml | 3 ++- 13 files changed, 72 insertions(+), 23 deletions(-) diff --git a/app/src/main/java/com/android/developers/androidify/MainActivity.kt b/app/src/main/java/com/android/developers/androidify/MainActivity.kt index ba8b467e..3e4c90e7 100644 --- a/app/src/main/java/com/android/developers/androidify/MainActivity.kt +++ b/app/src/main/java/com/android/developers/androidify/MainActivity.kt @@ -17,7 +17,6 @@ package com.android.developers.androidify import android.os.Build import android.os.Bundle -import android.util.Log import android.view.WindowManager import android.window.TrustedPresentationThresholds import androidx.activity.ComponentActivity @@ -69,16 +68,17 @@ class MainActivity : ComponentActivity() { val minFractionRendered = 0.25f val stabilityRequirements = 500 val presentationThreshold = TrustedPresentationThresholds( - minAlpha, minFractionRendered, stabilityRequirements + minAlpha, + minFractionRendered, + stabilityRequirements, ) val windowManager = getSystemService(WINDOW_SERVICE) as WindowManager windowManager.registerTrustedPresentationListener( window.decorView.windowToken, presentationThreshold, - mainExecutor + mainExecutor, ) { isMinFractionRendered -> isWindowOccluded.value = !isMinFractionRendered } } } - } diff --git a/app/src/main/java/com/android/developers/androidify/navigation/MainNavigation.kt b/app/src/main/java/com/android/developers/androidify/navigation/MainNavigation.kt index 208a415a..8eab6f36 100644 --- a/app/src/main/java/com/android/developers/androidify/navigation/MainNavigation.kt +++ b/app/src/main/java/com/android/developers/androidify/navigation/MainNavigation.kt @@ -26,7 +26,6 @@ import androidx.compose.animation.scaleOut import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable -import androidx.compose.runtime.MutableState import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember @@ -121,7 +120,7 @@ fun MainNavigation() { }, onLicensesClicked = { context.startActivity(Intent(context, OssLicensesMenuActivity::class.java)) - } + }, ) } }, diff --git a/core/network/src/main/res/xml/remote_config_defaults.xml b/core/network/src/main/res/xml/remote_config_defaults.xml index aa06646d..afe70370 100644 --- a/core/network/src/main/res/xml/remote_config_defaults.xml +++ b/core/network/src/main/res/xml/remote_config_defaults.xml @@ -1,4 +1,5 @@ - Unit, - onLicensesClicked: () -> Unit + onLicensesClicked: () -> Unit, ) { val sharedElementScope = LocalSharedTransitionScope.current val navScope = LocalNavAnimatedContentScope.current @@ -165,8 +165,10 @@ fun AboutScreen( ) } Spacer(Modifier.size(48.dp)) - FooterButtons(modifier = Modifier.padding(bottom = 8.dp), - onLicensesClicked) + FooterButtons( + modifier = Modifier.padding(bottom = 8.dp), + onLicensesClicked, + ) } } } else { @@ -208,13 +210,15 @@ fun AboutScreen( } @Composable -private fun FooterButtons(modifier: Modifier = Modifier, - onLicensesClicked: () -> Unit) { +private fun FooterButtons( + modifier: Modifier = Modifier, + onLicensesClicked: () -> Unit, +) { val uriHandler = LocalUriHandler.current FlowRow( modifier = modifier, horizontalArrangement = Arrangement.spacedBy(16.dp), - verticalArrangement = Arrangement.spacedBy(8.dp) + verticalArrangement = Arrangement.spacedBy(8.dp), ) { SecondaryOutlinedButton( onClick = { diff --git a/feature/home/src/main/java/com/android/developers/androidify/home/HomeScreen.kt b/feature/home/src/main/java/com/android/developers/androidify/home/HomeScreen.kt index 753504d0..5e6fc429 100644 --- a/feature/home/src/main/java/com/android/developers/androidify/home/HomeScreen.kt +++ b/feature/home/src/main/java/com/android/developers/androidify/home/HomeScreen.kt @@ -539,7 +539,7 @@ private fun VideoPlayer( } var videoFullyOnScreen by remember { mutableStateOf(false) } - val isWindowOccluded = LocalOcclusion.current + val isWindowOccluded = LocalOcclusion.current Box( Modifier .background(MaterialTheme.colorScheme.surfaceContainerLowest) diff --git a/feature/home/src/screenshotTest/java/com/android/developers/androidify/home/HomeScreenScreenshotTest.kt b/feature/home/src/screenshotTest/java/com/android/developers/androidify/home/HomeScreenScreenshotTest.kt index e6dfa8f7..5cdf0e62 100644 --- a/feature/home/src/screenshotTest/java/com/android/developers/androidify/home/HomeScreenScreenshotTest.kt +++ b/feature/home/src/screenshotTest/java/com/android/developers/androidify/home/HomeScreenScreenshotTest.kt @@ -35,7 +35,7 @@ class HomeScreenScreenshotTest { onClickLetsGo = { }, onAboutClicked = {}, videoLink = "", - dancingBotLink = "" + dancingBotLink = "", ) } } diff --git a/feature/results/src/main/java/com/android/developers/androidify/results/ResultsViewModel.kt b/feature/results/src/main/java/com/android/developers/androidify/results/ResultsViewModel.kt index 5da624ee..a54af8ea 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/results/ResultsViewModel.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/results/ResultsViewModel.kt @@ -27,8 +27,7 @@ import kotlinx.coroutines.flow.update import javax.inject.Inject @HiltViewModel -class ResultsViewModel @Inject constructor( -) : ViewModel() { +class ResultsViewModel @Inject constructor() : ViewModel() { private val _state = MutableStateFlow(ResultState()) val state = _state.asStateFlow() @@ -47,7 +46,6 @@ class ResultsViewModel @Inject constructor( ResultState(resultImageUrl, originalImageUrl, promptText = promptText) } } - } data class ResultState( diff --git a/feature/results/src/main/res/drawable/rounded_arrow_forward_24.xml b/feature/results/src/main/res/drawable/rounded_arrow_forward_24.xml index 2217c472..0b45b054 100644 --- a/feature/results/src/main/res/drawable/rounded_arrow_forward_24.xml +++ b/feature/results/src/main/res/drawable/rounded_arrow_forward_24.xml @@ -1,3 +1,19 @@ + + + + Date: Mon, 7 Jul 2025 09:50:22 +0100 Subject: [PATCH 06/38] Large screen layout optimizations --- .../androidify/customize/AspectRatioTool.kt | 3 +- .../customize/CustomizeExportScreen.kt | 159 +++++++++++++++--- .../androidify/customize/ToolSelector.kt | 119 +++++++++---- 3 files changed, 221 insertions(+), 60 deletions(-) diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/AspectRatioTool.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/AspectRatioTool.kt index d7a19340..fab074f1 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/AspectRatioTool.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/AspectRatioTool.kt @@ -22,6 +22,7 @@ import androidx.compose.foundation.layout.aspectRatio import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.wrapContentSize import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment @@ -39,7 +40,7 @@ fun AspectRatioTool( modifier: Modifier = Modifier, ) { GenericTool( - modifier = modifier, + modifier = modifier.wrapContentSize(), tools = sizeOptions, selectedOption = selectedOption, onToolSelected = { diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt index cd6343d3..cacc9bf2 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt @@ -27,13 +27,17 @@ import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.IntrinsicSize import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.aspectRatio +import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width +import androidx.compose.foundation.layout.wrapContentSize import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme @@ -43,6 +47,7 @@ import androidx.compose.material3.SnackbarDefaults import androidx.compose.material3.SnackbarHost import androidx.compose.material3.SnackbarHostState import androidx.compose.runtime.Composable +import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf @@ -63,6 +68,7 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle +import androidx.navigation3.ui.LocalNavAnimatedContentScope import coil3.compose.AsyncImage import com.android.developers.androidify.results.PermissionRationaleDialog import com.android.developers.androidify.results.R @@ -71,8 +77,10 @@ import com.android.developers.androidify.theme.AndroidifyTheme import com.android.developers.androidify.theme.components.AndroidifyTopAppBar import com.android.developers.androidify.theme.components.PrimaryButton import com.android.developers.androidify.theme.components.SecondaryOutlinedButton -import com.android.developers.androidify.util.AdaptivePreview +import com.android.developers.androidify.util.LargeScreensPreview +import com.android.developers.androidify.util.PhonePreview import com.android.developers.androidify.util.allowsFullContent +import com.android.developers.androidify.util.isAtLeastMedium import com.google.accompanist.permissions.ExperimentalPermissionsApi import com.google.accompanist.permissions.isGranted import com.google.accompanist.permissions.rememberPermissionState @@ -86,6 +94,7 @@ fun CustomizeAndExportScreen( originalImageUri: Uri?, onBackPress: () -> Unit, onInfoPress: () -> Unit, + isMediumWindowSize: Boolean = isAtLeastMedium(), viewModel: CustomizeExportViewModel = hiltViewModel(), ) { LaunchedEffect(resultImage, originalImageUri) { @@ -109,6 +118,7 @@ fun CustomizeAndExportScreen( onShareClicked = viewModel::shareClicked, onDownloadClicked = viewModel::downloadClicked, onSelectedToolStateChanged = viewModel::selectedToolStateChanged, + isMediumWindowSize = isMediumWindowSize, snackbarHostState = viewModel.snackbarHostState.collectAsStateWithLifecycle().value, ) } @@ -122,6 +132,7 @@ private fun CustomizeExportContents( onDownloadClicked: () -> Unit, onToolSelected: (CustomizeTool) -> Unit, onSelectedToolStateChanged: (ToolState) -> Unit, + isMediumWindowSize: Boolean, snackbarHostState: SnackbarHostState, ) { Scaffold( @@ -142,34 +153,34 @@ private fun CustomizeExportContents( }, containerColor = MaterialTheme.colorScheme.surface, ) { paddingValues -> - Column( - modifier = Modifier - .fillMaxSize() - .padding(paddingValues), - horizontalAlignment = Alignment.CenterHorizontally, - verticalArrangement = Arrangement.SpaceBetween, - ) { + val imageResult = @Composable { modifier: Modifier -> ImageResult( state.resultImageBitmap, state.selectedAspectRatio, - Modifier.weight(1f), + modifier, ) - Spacer(modifier = Modifier.height(16.dp)) + } + val toolSelector = @Composable { modifier: Modifier, horizontal: Boolean -> ToolSelector( tools = state.tools, selectedOption = state.selectedTool, + modifier = modifier, + horizontal = horizontal, onToolSelected = { tool -> onToolSelected(tool) }, ) - Spacer(modifier = Modifier.height(16.dp)) + } + val toolDetail = @Composable { modifier: Modifier -> SelectedToolDetail( state, onSelectedToolStateChanged = { toolState -> onSelectedToolStateChanged(toolState) }, + modifier = modifier, ) - Spacer(modifier = Modifier.height(16.dp)) + } + val actionButtons = @Composable { modifier: Modifier -> BotActionsButtonRow( onShareClicked = { onShareClicked() @@ -177,8 +188,66 @@ private fun CustomizeExportContents( onDownloadClicked = { onDownloadClicked() }, + modifier = modifier, ) - Spacer(modifier = Modifier.height(24.dp)) + } + if (isMediumWindowSize) { + Row( + Modifier + .fillMaxSize() + .padding(paddingValues), + verticalAlignment = Alignment.CenterVertically, + ) { + imageResult( + Modifier + .weight(1f) + .fillMaxHeight(), + ) + Column( + Modifier + .weight(1f) + .fillMaxHeight(), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.SpaceBetween, + ) { + Row( + Modifier + .weight(1f) + .fillMaxSize(), + horizontalArrangement = Arrangement.Center, + verticalAlignment = Alignment.CenterVertically, + ) { + toolDetail(Modifier.weight(1f)) + Spacer(modifier = Modifier.size(16.dp)) + toolSelector(Modifier, false) + Spacer(modifier = Modifier.size(16.dp)) + } + Spacer(modifier = Modifier.size(16.dp)) + actionButtons( + Modifier + .align(Alignment.End) + .padding(end = 16.dp), + ) + Spacer(modifier = Modifier.size(24.dp)) + } + } + } else { + Column( + modifier = Modifier + .fillMaxSize() + .padding(paddingValues), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.SpaceBetween, + ) { + imageResult(Modifier.weight(1f)) + Spacer(modifier = Modifier.height(16.dp)) + toolSelector(Modifier, true) + Spacer(modifier = Modifier.height(16.dp)) + toolDetail(Modifier) + Spacer(modifier = Modifier.height(16.dp)) + actionButtons(Modifier) + Spacer(modifier = Modifier.height(24.dp)) + } } } } @@ -192,6 +261,7 @@ fun SelectedToolDetail( AnimatedContent( state.selectedTool, modifier = modifier + .wrapContentSize() .padding(8.dp) .background( MaterialTheme.colorScheme.surfaceContainerLowest, @@ -256,7 +326,7 @@ private fun BotActionsButtonRow( modifier: Modifier = Modifier, verboseLayout: Boolean = allowsFullContent(), ) { - Row(modifier) { + Row(modifier.height(IntrinsicSize.Min)) { PrimaryButton( onClick = { onShareClicked() @@ -305,6 +375,7 @@ private fun BotActionsButtonRow( contentDescription = stringResource(R.string.download_bot), ) }, + modifier = Modifier.fillMaxHeight(), ) PermissionRationaleDialog( showRationaleDialog, @@ -317,21 +388,55 @@ private fun BotActionsButtonRow( } @Preview(showBackground = true) -@AdaptivePreview +@PhonePreview @Composable fun CustomizeExportPreview() { AndroidifyTheme { - val bitmap = ImageBitmap.imageResource(R.drawable.placeholderbot) - val state = CustomizeExportState(resultImageBitmap = bitmap.asAndroidBitmap()) - CustomizeExportContents( - state = state, - onDownloadClicked = {}, - onShareClicked = {}, - onBackPress = {}, - onInfoPress = {}, - onToolSelected = {}, - snackbarHostState = SnackbarHostState(), - onSelectedToolStateChanged = {}, - ) + AnimatedContent(true) { targetState -> + targetState + CompositionLocalProvider(LocalNavAnimatedContentScope provides this@AnimatedContent) { + val bitmap = ImageBitmap.imageResource(R.drawable.placeholderbot) + val state = CustomizeExportState(resultImageBitmap = bitmap.asAndroidBitmap()) + CustomizeExportContents( + state = state, + onDownloadClicked = {}, + onShareClicked = {}, + onBackPress = {}, + onInfoPress = {}, + onToolSelected = {}, + snackbarHostState = SnackbarHostState(), + isMediumWindowSize = false, + onSelectedToolStateChanged = {}, + ) + } + } + } +} + +@LargeScreensPreview +@Composable +fun CustomizeExportPreviewLarge() { + AndroidifyTheme { + AnimatedContent(true) { targetState -> + targetState + CompositionLocalProvider(LocalNavAnimatedContentScope provides this@AnimatedContent) { + val bitmap = ImageBitmap.imageResource(R.drawable.placeholderbot) + val state = CustomizeExportState( + resultImageBitmap = bitmap.asAndroidBitmap(), + selectedTool = CustomizeTool.Background, + ) + CustomizeExportContents( + state = state, + onDownloadClicked = {}, + onShareClicked = {}, + onBackPress = {}, + onInfoPress = {}, + onToolSelected = {}, + snackbarHostState = SnackbarHostState(), + isMediumWindowSize = true, + onSelectedToolStateChanged = {}, + ) + } + } } } diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/ToolSelector.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/ToolSelector.kt index 605cfdd5..b1b29098 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/ToolSelector.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/ToolSelector.kt @@ -17,6 +17,7 @@ package com.android.developers.androidify.customize import androidx.compose.foundation.border import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi import androidx.compose.material3.FloatingToolbarColors @@ -25,6 +26,7 @@ import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.ToggleButton import androidx.compose.material3.ToggleButtonDefaults +import androidx.compose.material3.VerticalFloatingToolbar import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.res.painterResource @@ -38,40 +40,79 @@ fun ToolSelector( tools: List, selectedOption: CustomizeTool, onToolSelected: (CustomizeTool) -> Unit, + horizontal: Boolean, modifier: Modifier = Modifier, ) { - HorizontalFloatingToolbar( - modifier = modifier.border( - 2.dp, - color = MaterialTheme.colorScheme.outline, - shape = MaterialTheme.shapes.large, - ), - colors = FloatingToolbarColors( - toolbarContainerColor = MaterialTheme.colorScheme.surface, - toolbarContentColor = MaterialTheme.colorScheme.onSurfaceVariant, - fabContainerColor = MaterialTheme.colorScheme.tertiary, - fabContentColor = MaterialTheme.colorScheme.onTertiary, - ), - expanded = true, - ) { - tools.forEachIndexed { index, tool -> - ToggleButton( - modifier = Modifier, - checked = selectedOption == tool, - onCheckedChange = { onToolSelected(tool) }, - shapes = ToggleButtonDefaults.shapes(checkedShape = MaterialTheme.shapes.large), - colors = ToggleButtonDefaults.toggleButtonColors( - checkedContainerColor = MaterialTheme.colorScheme.onSurface, - containerColor = MaterialTheme.colorScheme.surface, - ), - ) { - Icon( - painterResource(tool.icon), - contentDescription = tool.displayName, - ) + if (horizontal) { + HorizontalFloatingToolbar( + modifier = modifier.border( + 2.dp, + color = MaterialTheme.colorScheme.outline, + shape = MaterialTheme.shapes.large, + ).padding(4.dp), + colors = FloatingToolbarColors( + toolbarContainerColor = MaterialTheme.colorScheme.surface, + toolbarContentColor = MaterialTheme.colorScheme.onSurfaceVariant, + fabContainerColor = MaterialTheme.colorScheme.tertiary, + fabContentColor = MaterialTheme.colorScheme.onTertiary, + ), + expanded = true, + ) { + tools.forEachIndexed { index, tool -> + ToggleButton( + modifier = Modifier, + checked = selectedOption == tool, + onCheckedChange = { onToolSelected(tool) }, + shapes = ToggleButtonDefaults.shapes(checkedShape = MaterialTheme.shapes.large), + colors = ToggleButtonDefaults.toggleButtonColors( + checkedContainerColor = MaterialTheme.colorScheme.onSurface, + containerColor = MaterialTheme.colorScheme.surface, + ), + ) { + Icon( + painterResource(tool.icon), + contentDescription = tool.displayName, + ) + } + if (index != tools.size - 1) { + Spacer(Modifier.width(8.dp)) + } } - if (index != tools.size - 1) { - Spacer(Modifier.width(8.dp)) + } + } else { + VerticalFloatingToolbar( + modifier = modifier.border( + 2.dp, + color = MaterialTheme.colorScheme.outline, + shape = MaterialTheme.shapes.large, + ).padding(4.dp), + colors = FloatingToolbarColors( + toolbarContainerColor = MaterialTheme.colorScheme.surface, + toolbarContentColor = MaterialTheme.colorScheme.onSurfaceVariant, + fabContainerColor = MaterialTheme.colorScheme.tertiary, + fabContentColor = MaterialTheme.colorScheme.onTertiary, + ), + expanded = true, + ) { + tools.forEachIndexed { index, tool -> + ToggleButton( + modifier = Modifier, + checked = selectedOption == tool, + onCheckedChange = { onToolSelected(tool) }, + shapes = ToggleButtonDefaults.shapes(checkedShape = MaterialTheme.shapes.large), + colors = ToggleButtonDefaults.toggleButtonColors( + checkedContainerColor = MaterialTheme.colorScheme.onSurface, + containerColor = MaterialTheme.colorScheme.surface, + ), + ) { + Icon( + painterResource(tool.icon), + contentDescription = tool.displayName, + ) + } + if (index != tools.size - 1) { + Spacer(Modifier.width(8.dp)) + } } } } @@ -79,11 +120,25 @@ fun ToolSelector( @Preview @Composable -private fun ToolsPreview() { +private fun ToolsPreviewHorizontal() { + AndroidifyTheme { + ToolSelector( + tools = listOf(CustomizeTool.Size, CustomizeTool.Background), + selectedOption = CustomizeTool.Size, + horizontal = true, + onToolSelected = {}, + ) + } +} + +@Preview +@Composable +private fun ToolsPreviewVertical() { AndroidifyTheme { ToolSelector( tools = listOf(CustomizeTool.Size, CustomizeTool.Background), selectedOption = CustomizeTool.Size, + horizontal = false, onToolSelected = {}, ) } From 095cd85ea3580dbc3c28c236f012325d68433bc2 Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Mon, 7 Jul 2025 10:40:30 +0100 Subject: [PATCH 07/38] Large screen layout optimizations --- .../androidify/theme/components/TopAppBar.kt | 14 ++--- .../androidify/customize/AspectRatioTool.kt | 2 + .../androidify/customize/BackgroundTool.kt | 5 +- .../customize/CustomizeExportScreen.kt | 19 ++++--- .../androidify/customize/GenericTool.kt | 52 +++++++++++++++++-- 5 files changed, 76 insertions(+), 16 deletions(-) diff --git a/core/theme/src/main/java/com/android/developers/androidify/theme/components/TopAppBar.kt b/core/theme/src/main/java/com/android/developers/androidify/theme/components/TopAppBar.kt index 4f681c4b..41d40f7e 100644 --- a/core/theme/src/main/java/com/android/developers/androidify/theme/components/TopAppBar.kt +++ b/core/theme/src/main/java/com/android/developers/androidify/theme/components/TopAppBar.kt @@ -54,6 +54,7 @@ import com.android.developers.androidify.theme.sharedBoundsReveal @OptIn(ExperimentalMaterial3Api::class) fun AndroidifyTopAppBar( modifier: Modifier = Modifier, + titleText: String = stringResource(R.string.androidify_title), isMediumWindowSize: Boolean = false, backEnabled: Boolean = false, aboutEnabled: Boolean = true, @@ -84,7 +85,7 @@ fun AndroidifyTopAppBar( } else { Spacer(modifier.size(16.dp)) } - AndroidifyTitle() + AndroidifyTitle(titleText) } Box( @@ -109,7 +110,7 @@ fun AndroidifyTopAppBar( } else { CenterAlignedTopAppBar( title = { - AndroidifyTitle() + AndroidifyTitle(titleText) }, modifier = modifier .statusBarsPadding() @@ -146,13 +147,14 @@ private fun BackButton(onBackPressed: () -> Unit) { @Composable fun AndroidifyTranslucentTopAppBar( modifier: Modifier = Modifier, + titleText: String = stringResource(R.string.androidify_title), isMediumSizeLayout: Boolean = false, ) { if (isMediumSizeLayout) { TopAppBar( title = { Spacer(Modifier.statusBarsPadding()) - AndroidifyTitle() + AndroidifyTitle(titleText) }, modifier = modifier.clip( MaterialTheme.shapes.large.copy(topStart = CornerSize(0f), topEnd = CornerSize(0f)), @@ -163,7 +165,7 @@ fun AndroidifyTranslucentTopAppBar( CenterAlignedTopAppBar( title = { Spacer(Modifier.statusBarsPadding()) - AndroidifyTitle() + AndroidifyTitle(titleText) }, modifier = modifier.clip( MaterialTheme.shapes.large.copy(topStart = CornerSize(0f), topEnd = CornerSize(0f)), @@ -174,8 +176,8 @@ fun AndroidifyTranslucentTopAppBar( } @Composable -private fun AndroidifyTitle() { - Text(stringResource(R.string.androidify_title), fontWeight = FontWeight.Bold) +private fun AndroidifyTitle(text: String) { + Text(text, fontWeight = FontWeight.Bold) } @OptIn(ExperimentalSharedTransitionApi::class) diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/AspectRatioTool.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/AspectRatioTool.kt index fab074f1..7733e18b 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/AspectRatioTool.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/AspectRatioTool.kt @@ -38,10 +38,12 @@ fun AspectRatioTool( selectedOption: SizeOption, onSizeOptionSelected: (SizeOption) -> Unit, modifier: Modifier = Modifier, + singleLine: Boolean = true, ) { GenericTool( modifier = modifier.wrapContentSize(), tools = sizeOptions, + singleLine = singleLine, selectedOption = selectedOption, onToolSelected = { onSizeOptionSelected(it) diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/BackgroundTool.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/BackgroundTool.kt index 5de7ac0a..3971434a 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/BackgroundTool.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/BackgroundTool.kt @@ -21,6 +21,7 @@ import androidx.compose.foundation.border import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.aspectRatio import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.wrapContentSize import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier @@ -37,10 +38,12 @@ fun BackgroundTool( selectedOption: BackgroundOption, onBackgroundOptionSelected: (BackgroundOption) -> Unit, modifier: Modifier = Modifier, + singleLine: Boolean = false, ) { GenericTool( - modifier = modifier, + modifier = modifier.wrapContentSize(), tools = backgroundOptions, + singleLine = singleLine, selectedOption = selectedOption, onToolSelected = { onBackgroundOptionSelected(it) diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt index cacc9bf2..d268ec80 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt @@ -35,6 +35,7 @@ import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.requiredSizeIn import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.wrapContentSize @@ -147,6 +148,8 @@ private fun CustomizeExportContents( topBar = { AndroidifyTopAppBar( backEnabled = true, + titleText = stringResource(R.string.customize_and_export), + isMediumWindowSize = isMediumWindowSize, onBackPressed = onBackPress, onAboutClicked = onInfoPress, ) @@ -171,12 +174,13 @@ private fun CustomizeExportContents( }, ) } - val toolDetail = @Composable { modifier: Modifier -> + val toolDetail = @Composable { modifier: Modifier, singleLine: Boolean -> SelectedToolDetail( state, onSelectedToolStateChanged = { toolState -> onSelectedToolStateChanged(toolState) }, + singleLine = singleLine, modifier = modifier, ) } @@ -217,9 +221,9 @@ private fun CustomizeExportContents( horizontalArrangement = Arrangement.Center, verticalAlignment = Alignment.CenterVertically, ) { - toolDetail(Modifier.weight(1f)) + toolDetail(Modifier, false) Spacer(modifier = Modifier.size(16.dp)) - toolSelector(Modifier, false) + toolSelector(Modifier.requiredSizeIn(minWidth = 56.dp), false) Spacer(modifier = Modifier.size(16.dp)) } Spacer(modifier = Modifier.size(16.dp)) @@ -243,7 +247,7 @@ private fun CustomizeExportContents( Spacer(modifier = Modifier.height(16.dp)) toolSelector(Modifier, true) Spacer(modifier = Modifier.height(16.dp)) - toolDetail(Modifier) + toolDetail(Modifier, true) Spacer(modifier = Modifier.height(16.dp)) actionButtons(Modifier) Spacer(modifier = Modifier.height(24.dp)) @@ -255,6 +259,7 @@ private fun CustomizeExportContents( @Composable fun SelectedToolDetail( state: CustomizeExportState, + singleLine: Boolean, onSelectedToolStateChanged: (ToolState) -> Unit, modifier: Modifier = Modifier, ) { @@ -275,7 +280,8 @@ fun SelectedToolDetail( AspectRatioTool( aspectRatioToolState.options, aspectRatioToolState.selectedToolOption, - { + singleLine = singleLine, + onSizeOptionSelected = { onSelectedToolStateChanged(aspectRatioToolState.copy(selectedToolOption = it)) }, ) @@ -286,7 +292,8 @@ fun SelectedToolDetail( BackgroundTool( backgroundToolState.options, backgroundToolState.selectedToolOption, - { + singleLine = singleLine, + onBackgroundOptionSelected = { onSelectedToolStateChanged(backgroundToolState.copy(selectedToolOption = it)) }, ) diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/GenericTool.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/GenericTool.kt index 22864097..8547dce2 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/GenericTool.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/GenericTool.kt @@ -19,13 +19,17 @@ import androidx.compose.foundation.Image import androidx.compose.foundation.background import androidx.compose.foundation.border import androidx.compose.foundation.clickable +import androidx.compose.foundation.horizontalScroll import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.FlowRow import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.aspectRatio import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyRow +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Surface import androidx.compose.material3.Text @@ -47,10 +51,12 @@ fun GenericTool( onToolSelected: (T) -> Unit, individualToolContent: @Composable (T) -> Unit, modifier: Modifier = Modifier, + singleLine: Boolean = true, ) { - LazyRow(modifier = modifier) { + val scrollModifier = if (singleLine) Modifier.horizontalScroll(rememberScrollState()) else Modifier + FlowRow(modifier = modifier.then(scrollModifier), + maxLines = if (singleLine) 1 else Int.MAX_VALUE) { tools.forEach { tool -> - item(key = tool.key) { GenericToolButton( isSelected = tool == selectedOption, toolContent = { @@ -59,7 +65,6 @@ fun GenericTool( onToolSelected = onToolSelected, tool = tool, ) - } } } } @@ -120,6 +125,7 @@ private fun GenericToolPreview() { BackgroundOption.IO, BackgroundOption.Create, ), + singleLine = false, selectedOption = BackgroundOption.Lightspeed, onToolSelected = { }, @@ -146,3 +152,43 @@ private fun GenericToolPreview() { ) } } + + +@Preview(showBackground = true) +@Composable +private fun GenericToolPreviewSingleLine() { + AndroidifyTheme { + GenericTool( + tools = listOf( + BackgroundOption.None, + BackgroundOption.Lightspeed, + BackgroundOption.IO, + BackgroundOption.Create, + ), + selectedOption = BackgroundOption.Lightspeed, + singleLine = true, + onToolSelected = { + }, + individualToolContent = { tool -> + Box( + modifier = Modifier + .aspectRatio(1f) + .border( + 2.dp, + color = MaterialTheme.colorScheme.primary, + shape = MaterialTheme.shapes.medium, + ) + .padding(6.dp), + ) { + Image( + rememberAsyncImagePainter(tool.drawableId), + contentDescription = null, // described below + contentScale = ContentScale.Crop, + modifier = Modifier.aspectRatio(1f) + .clip(MaterialTheme.shapes.small), + ) + } + }, + ) + } +} \ No newline at end of file From 9cd777d53cc247bdb2a13465f85411f8f16224a4 Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Mon, 7 Jul 2025 13:51:58 +0100 Subject: [PATCH 08/38] Large screen layout optimizations --- .../androidify/customize/CustomizeExportScreen.kt | 10 ++++++---- .../developers/androidify/customize/ToolSelector.kt | 4 ++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt index d268ec80..99b73837 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt @@ -204,8 +204,7 @@ private fun CustomizeExportContents( ) { imageResult( Modifier - .weight(1f) - .fillMaxHeight(), + .weight(1f, fill = false), ) Column( Modifier @@ -218,10 +217,13 @@ private fun CustomizeExportContents( Modifier .weight(1f) .fillMaxSize(), - horizontalArrangement = Arrangement.Center, + horizontalArrangement = Arrangement.SpaceAround, verticalAlignment = Alignment.CenterVertically, + ) { - toolDetail(Modifier, false) + Box(modifier = Modifier.weight(1f)) { + toolDetail(Modifier.align(Alignment.CenterEnd), false) + } Spacer(modifier = Modifier.size(16.dp)) toolSelector(Modifier.requiredSizeIn(minWidth = 56.dp), false) Spacer(modifier = Modifier.size(16.dp)) diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/ToolSelector.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/ToolSelector.kt index b1b29098..a29aaf70 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/ToolSelector.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/ToolSelector.kt @@ -49,7 +49,7 @@ fun ToolSelector( 2.dp, color = MaterialTheme.colorScheme.outline, shape = MaterialTheme.shapes.large, - ).padding(4.dp), + ).padding(2.dp), colors = FloatingToolbarColors( toolbarContainerColor = MaterialTheme.colorScheme.surface, toolbarContentColor = MaterialTheme.colorScheme.onSurfaceVariant, @@ -85,7 +85,7 @@ fun ToolSelector( 2.dp, color = MaterialTheme.colorScheme.outline, shape = MaterialTheme.shapes.large, - ).padding(4.dp), + ).padding(2.dp), colors = FloatingToolbarColors( toolbarContainerColor = MaterialTheme.colorScheme.surface, toolbarContentColor = MaterialTheme.colorScheme.onSurfaceVariant, From e601d216626fa1bd7a46e151681c685cac8502ad Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Wed, 9 Jul 2025 15:10:28 +0100 Subject: [PATCH 09/38] Basic offscreen rendering implementation. --- feature/results/build.gradle.kts | 1 + .../androidify/customize/BitmapComposable.kt | 166 +++++++++++++++++ .../customize/CustomizeExportScreen.kt | 35 +--- .../customize/CustomizeExportViewModel.kt | 176 ++++-------------- .../androidify/customize/CustomizeState.kt | 155 +++++++++++++++ .../androidify/customize/ImageRenderer.kt | 116 ++++++++++++ gradle/libs.versions.toml | 45 ++--- 7 files changed, 504 insertions(+), 190 deletions(-) create mode 100644 feature/results/src/main/java/com/android/developers/androidify/customize/BitmapComposable.kt create mode 100644 feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt create mode 100644 feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt diff --git a/feature/results/build.gradle.kts b/feature/results/build.gradle.kts index 5c422f1a..cdf6d306 100644 --- a/feature/results/build.gradle.kts +++ b/feature/results/build.gradle.kts @@ -57,6 +57,7 @@ dependencies { implementation(libs.androidx.hilt.navigation.compose) implementation(libs.coil.compose) implementation(libs.accompanist.permissions) + implementation(libs.androidx.lifecycle.process) ksp(libs.hilt.compiler) implementation(libs.androidx.ui.tooling) diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/BitmapComposable.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/BitmapComposable.kt new file mode 100644 index 00000000..4f6a697e --- /dev/null +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/BitmapComposable.kt @@ -0,0 +1,166 @@ +package com.android.developers.androidify.customize + +import android.app.Presentation +import android.content.Context +import android.content.Context.DISPLAY_SERVICE +import android.graphics.Bitmap +import android.graphics.SurfaceTexture +import android.hardware.display.DisplayManager +import android.view.Display +import android.view.Surface +import android.view.ViewGroup +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.size +import androidx.compose.runtime.* +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.drawWithContent +import androidx.compose.ui.graphics.asAndroidBitmap +import androidx.compose.ui.graphics.layer.drawLayer +import androidx.compose.ui.graphics.rememberGraphicsLayer +import androidx.compose.ui.platform.ComposeView +import androidx.compose.ui.unit.Density +import androidx.compose.ui.unit.DpSize +import androidx.lifecycle.* +import androidx.savedstate.SavedStateRegistry +import androidx.savedstate.SavedStateRegistryController +import androidx.savedstate.SavedStateRegistryOwner +import androidx.savedstate.setViewTreeSavedStateRegistryOwner +import androidx.compose.ui.unit.IntSize +import kotlin.coroutines.suspendCoroutine +import androidx.lifecycle.ProcessLifecycleOwner +import kotlinx.coroutines.launch + +/** + * Use a virtual display to capture composable content thats on a display. + * This is necessary because Compose doesn't yet support offscreen bitmap creation (https://issuetracker.google.com/298037598) + * + * Original source: https://gist.github.com/iamcalledrob/871568679ad58e64959b097d4ef30738 + * Adapted to use new GraphicsLayer commands (record and toBitmap()) + * Usage example: + * val bitmap = useVirtualDisplay(applicationContext) { display -> + * captureComposable( + * context = context, + * size = DpSize(100.dp, 100.dp), + * display = display + * ) { + * LaunchedEffect(Unit) { + * capture() + * } + * Box(modifier = Modifier.fillMaxSize().background(Color.Red)) + * } + * } + */ +suspend fun useVirtualDisplay(context: Context, callback: suspend (display: Display) -> T): T? { + val texture = SurfaceTexture(false) + val surface = Surface(texture) + // Size of virtual display doesn't matter, because images are captured from compose, not the display surface. + val virtualDisplay = + (context.getSystemService(DISPLAY_SERVICE) as DisplayManager).createVirtualDisplay( + "virtualDisplay", + 1, 1, 72, + surface, + DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY, + ) ?: return null + + val result = callback(virtualDisplay.display) + + virtualDisplay.release() + surface.release() + texture.release() + + return result +} + +data class CaptureComposableScope(val capture: () -> Unit) + +fun androidx.compose.ui.geometry.Size.roundedToIntSize(): IntSize = + IntSize(width.toInt(), height.toInt()) + +private class EmptySavedStateRegistryOwner : SavedStateRegistryOwner { + private val controller = SavedStateRegistryController.create(this).apply { + performRestore(null) + } + + private val lifecycleOwner: LifecycleOwner = ProcessLifecycleOwner.get() + + override val lifecycle: Lifecycle + get() = + object : Lifecycle() { + @Suppress("UNNECESSARY_SAFE_CALL") + override fun addObserver(observer: LifecycleObserver) { + lifecycleOwner?.lifecycle?.addObserver(observer) + } + @Suppress("UNNECESSARY_SAFE_CALL") + override fun removeObserver(observer: LifecycleObserver) { + lifecycleOwner?.lifecycle?.removeObserver(observer) + } + + override val currentState = State.INITIALIZED + } + + override val savedStateRegistry: SavedStateRegistry + get() = controller.savedStateRegistry +} + +/** Captures composable content, by default using a hidden window on the default display. + * + * Be sure to invoke capture() within the composable content (e.g. in a LaunchedEffect) to perform the capture. + * This gives some level of control over when the capture occurs, so it's possible to wait for async resources */ +suspend fun captureComposable( + context: Context, + size: DpSize, + density: Density = Density(density = 1f), + display: Display = (context.getSystemService(DISPLAY_SERVICE) as DisplayManager) + .getDisplay(Display.DEFAULT_DISPLAY), + content: @Composable CaptureComposableScope.() -> Unit, +): Bitmap { + val presentation = Presentation(context.applicationContext, display).apply { + window?.decorView?.let { view -> + view.setViewTreeLifecycleOwner(ProcessLifecycleOwner.get()) + view.setViewTreeSavedStateRegistryOwner(EmptySavedStateRegistryOwner()) + view.alpha = + 0f // If using default display, to ensure this does not appear on top of content. + } + } + + val composeView = ComposeView(context).apply { + val intSize = with(density) { size.toSize().roundedToIntSize() } + require(intSize.width > 0 && intSize.height > 0) { "pixel size must not have zero dimension" } + + layoutParams = ViewGroup.LayoutParams(intSize.width, intSize.height) + } + + presentation.setContentView(composeView, composeView.layoutParams) + presentation.show() + + val androidBitmap = suspendCoroutine { continuation -> + composeView.setContent { + val coroutineScope = rememberCoroutineScope() + val graphicsLayer = rememberGraphicsLayer() + + Box( + modifier = Modifier + .size(size) + .drawWithContent { + graphicsLayer.record { + this@drawWithContent.drawContent() + } + drawLayer(graphicsLayer) + }, + ) { + CaptureComposableScope( + capture = { + coroutineScope.launch { + val composeImageBitmap = graphicsLayer.toImageBitmap() + continuation.resumeWith(Result.success(composeImageBitmap.asAndroidBitmap())) + } + }, + ).content() + } + } + } + + presentation.dismiss() + + return androidBitmap +} diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt index 99b73837..b95464a0 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt @@ -157,11 +157,7 @@ private fun CustomizeExportContents( containerColor = MaterialTheme.colorScheme.surface, ) { paddingValues -> val imageResult = @Composable { modifier: Modifier -> - ImageResult( - state.resultImageBitmap, - state.selectedAspectRatio, - modifier, - ) + CustomizedImageRenderer(state.exportImageCanvas, modifier = modifier) } val toolSelector = @Composable { modifier: Modifier, horizontal: Boolean -> ToolSelector( @@ -304,29 +300,7 @@ fun SelectedToolDetail( } } -@Composable -private fun ImageResult( - bitmap: Bitmap?, - selectedAspectRatio: Float, - modifier: Modifier = Modifier, -) { - Box( - modifier = modifier - .aspectRatio(1f) - .padding(32.dp) - .animateContentSize(), - contentAlignment = Alignment.Center, - ) { - AsyncImage( - model = bitmap, - contentDescription = stringResource(R.string.resultant_android_bot), - contentScale = ContentScale.Crop, - modifier = Modifier - .aspectRatio(selectedAspectRatio, matchHeightConstraintsFirst = true) - .clip(MaterialTheme.shapes.large), - ) - } -} + @Composable private fun BotActionsButtonRow( @@ -405,7 +379,8 @@ fun CustomizeExportPreview() { targetState CompositionLocalProvider(LocalNavAnimatedContentScope provides this@AnimatedContent) { val bitmap = ImageBitmap.imageResource(R.drawable.placeholderbot) - val state = CustomizeExportState(resultImageBitmap = bitmap.asAndroidBitmap()) + val state = CustomizeExportState( + exportImageCanvas = ExportImageCanvas(imageBitmap = bitmap.asAndroidBitmap())) CustomizeExportContents( state = state, onDownloadClicked = {}, @@ -431,7 +406,7 @@ fun CustomizeExportPreviewLarge() { CompositionLocalProvider(LocalNavAnimatedContentScope provides this@AnimatedContent) { val bitmap = ImageBitmap.imageResource(R.drawable.placeholderbot) val state = CustomizeExportState( - resultImageBitmap = bitmap.asAndroidBitmap(), + exportImageCanvas = ExportImageCanvas(imageBitmap = bitmap.asAndroidBitmap()), selectedTool = CustomizeTool.Background, ) CustomizeExportContents( diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt index ce37f606..6be706b7 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt @@ -15,16 +15,22 @@ */ package com.android.developers.androidify.customize +import android.app.Application +import android.content.Context import android.graphics.Bitmap +import android.graphics.BitmapFactory import android.net.Uri import androidx.compose.material3.SnackbarHostState import androidx.compose.ui.geometry.Offset import androidx.compose.ui.geometry.Rect import androidx.compose.ui.geometry.Size +import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.ViewModel +import androidx.lifecycle.application import androidx.lifecycle.viewModelScope import com.android.developers.androidify.data.ImageGenerationRepository import dagger.hilt.android.lifecycle.HiltViewModel +import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asStateFlow @@ -35,7 +41,8 @@ import javax.inject.Inject @HiltViewModel class CustomizeExportViewModel @Inject constructor( val imageGenerationRepository: ImageGenerationRepository, -) : ViewModel() { + application: Application +) : AndroidViewModel(application) { private val _state = MutableStateFlow(CustomizeExportState()) val state = _state.asStateFlow() @@ -50,13 +57,14 @@ class CustomizeExportViewModel @Inject constructor( originalImageUrl: Uri?, ) { _state.update { - CustomizeExportState(resultImageUrl, originalImageUrl) + CustomizeExportState(originalImageUrl, + exportImageCanvas = it.exportImageCanvas.copy(imageBitmap = resultImageUrl)) } } fun shareClicked() { viewModelScope.launch { - val resultUrl = state.value.resultImageBitmap + val resultUrl = renderToBitmap(application, state.value.exportImageCanvas) if (resultUrl != null) { val imageFileUri = imageGenerationRepository.saveImage(resultUrl) @@ -68,12 +76,37 @@ class CustomizeExportViewModel @Inject constructor( } fun selectedToolStateChanged(toolState: ToolState) { _state.update { - it.copy(toolState = it.toolState + (it.selectedTool to toolState)) + it.copy(toolState = it.toolState + (it.selectedTool to toolState), + exportImageCanvas = + when (toolState.selectedToolOption) { + is BackgroundOption -> { + val backgroundOption = toolState.selectedToolOption as BackgroundOption + val backgroundDrawable = if (backgroundOption.drawableId == null) + null else BitmapFactory.decodeResource(application.resources, + backgroundOption.drawableId) + if (backgroundOption == BackgroundOption.None) { + it.exportImageCanvas.copy( + selectedBackground = null, + ).scaleImage(1f) + } else { + it.exportImageCanvas.copy( + selectedBackground = backgroundDrawable, + ).scaleImage(0.75f) + } + } + is SizeOption -> { + it.exportImageCanvas.updateAspectRatio( + newAspectRatio = (toolState.selectedToolOption as SizeOption).aspectRatio + ) + } + else -> throw IllegalArgumentException("Unknown tool option") + } + ) } } fun downloadClicked() { viewModelScope.launch { - val resultBitmap = state.value.resultImageBitmap + val resultBitmap = renderToBitmap(application, state.value.exportImageCanvas) val originalImage = state.value.originalImageUrl if (originalImage != null) { val savedOriginalUri = @@ -98,136 +131,3 @@ class CustomizeExportViewModel @Inject constructor( } } } - -data class CustomizeExportState( - val resultImageBitmap: Bitmap? = null, - val originalImageUrl: Uri? = null, - val savedUri: Uri? = null, - val externalSavedUri: Uri? = null, - val externalOriginalSavedUri: Uri? = null, - val selectedTool: CustomizeTool = CustomizeTool.Size, - val tools: List = CustomizeTool.entries, - val toolState: Map = mapOf( - CustomizeTool.Size to AspectRatioToolState(), - CustomizeTool.Background to BackgroundToolState(), - ), -) { - val selectedAspectRatio: Float - get() = (toolState[CustomizeTool.Size] as AspectRatioToolState).selectedToolOption.aspectRatio - - val selectedBackground: BackgroundOption - get() = (toolState[CustomizeTool.Background] as BackgroundToolState).selectedToolOption -} -interface ToolState { - val selectedToolOption: ToolOption - val options: List -} -data class AspectRatioToolState( - override val selectedToolOption: SizeOption = SizeOption.Square, - override val options: List = listOf( - SizeOption.Square, - SizeOption.Banner, - SizeOption.Wallpaper, - SizeOption.Custom, - ), -) : ToolState - -data class BackgroundToolState( - override val selectedToolOption: BackgroundOption = BackgroundOption.None, - override val options: List = listOf( - BackgroundOption.None, - BackgroundOption.Lightspeed, - BackgroundOption.IO, - BackgroundOption.Create, - ), -) : ToolState - -data class ExportImageCanvas( - var aspectRatio: Float = 1f, - var canvasSize: Size = Size(1000f, 1000f), - var imageRect: Rect = Rect(offset = Offset.Zero, size = Size(1000f, 1000f)), - var mainImageUri: Uri, - var imageOriginalBitmapSize: Size? = Size(1024f, 1024f), -) { - fun updateAspectRatio(newAspectRatio: Float, strategy: ImageScalingStrategy = ImageScalingStrategy.FILL): ExportImageCanvas { - if (newAspectRatio <= 0f) { - return this.copy() - } - val originalWidth = this.canvasSize.width - val originalHeight = this.canvasSize.height - var newCanvasWidth: Float - var newCanvasHeight: Float - - if (newAspectRatio > this.aspectRatio) { - newCanvasHeight = originalHeight - newCanvasWidth = newCanvasHeight * newAspectRatio - } else { - newCanvasWidth = originalWidth - newCanvasHeight = newCanvasWidth / newAspectRatio - } - - val adjustedCanvasSize = Size(newCanvasWidth, newCanvasHeight) - var newImageRect = this.imageRect - if (imageOriginalBitmapSize != null) { - newImageRect = when (strategy) { - ImageScalingStrategy.FIT -> calculateImageRectToFit(imageOriginalBitmapSize!!, adjustedCanvasSize) - ImageScalingStrategy.FILL -> calculateImageRectToFill(imageOriginalBitmapSize!!, adjustedCanvasSize) // You'd need a robust calculateImageRectToFill - } - } - - return this.copy( - aspectRatio = newAspectRatio, - canvasSize = adjustedCanvasSize, - imageRect = newImageRect, - ) - } - - fun calculateImageRectToFit(imageOriginalSize: Size, newCanvasSize: Size): Rect { - val imageAspectRatio = imageOriginalSize.width / imageOriginalSize.height - val canvasAspectRatio = newCanvasSize.width / newCanvasSize.height - - var rectWidth: Float - var rectHeight: Float - var offsetX: Float - var offsetY: Float - - if (imageAspectRatio > canvasAspectRatio) { - rectWidth = newCanvasSize.width - rectHeight = rectWidth / imageAspectRatio - offsetX = 0f - offsetY = (newCanvasSize.height - rectHeight) / 2f - } else { - rectHeight = newCanvasSize.height - rectWidth = rectHeight * imageAspectRatio - offsetX = (newCanvasSize.width - rectWidth) / 2f - offsetY = 0f - } - return Rect(Offset(offsetX, offsetY), Size(rectWidth, rectHeight)) - } - - fun calculateImageRectToFill(imageOriginalSize: Size, newCanvasSize: Size): Rect { - val imageAspectRatio = imageOriginalSize.width / imageOriginalSize.height - val canvasAspectRatio = newCanvasSize.width / newCanvasSize.height - - var rectWidth: Float - var rectHeight: Float - var offsetX = 0f - var offsetY = 0f - if (imageAspectRatio > canvasAspectRatio) { - rectHeight = newCanvasSize.height - rectWidth = rectHeight * imageAspectRatio - offsetX = (newCanvasSize.width - rectWidth) / 2f - offsetY = 0f - } else { - rectWidth = newCanvasSize.width - rectHeight = rectWidth / imageAspectRatio - offsetX = 0f - offsetY = (newCanvasSize.height - rectHeight) / 2f - } - return Rect(Offset(offsetX, offsetY), Size(rectWidth, rectHeight)) - } -} -enum class ImageScalingStrategy { - FIT, - FILL, -} diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt new file mode 100644 index 00000000..434f1066 --- /dev/null +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt @@ -0,0 +1,155 @@ +package com.android.developers.androidify.customize + +import android.graphics.Bitmap +import android.net.Uri +import androidx.compose.ui.geometry.Offset +import androidx.compose.ui.geometry.Rect +import androidx.compose.ui.geometry.Size + +data class CustomizeExportState( + val originalImageUrl: Uri? = null, + val savedUri: Uri? = null, + val externalSavedUri: Uri? = null, + val externalOriginalSavedUri: Uri? = null, + val selectedTool: CustomizeTool = CustomizeTool.Size, + val tools: List = CustomizeTool.entries, + val toolState: Map = mapOf( + CustomizeTool.Size to AspectRatioToolState(), + CustomizeTool.Background to BackgroundToolState(), + ), + val exportImageCanvas: ExportImageCanvas = ExportImageCanvas() +) { + val selectedAspectRatio: Float + get() = (toolState[CustomizeTool.Size] as AspectRatioToolState).selectedToolOption.aspectRatio + + val selectedBackground: BackgroundOption + get() = (toolState[CustomizeTool.Background] as BackgroundToolState).selectedToolOption +} +interface ToolState { + val selectedToolOption: ToolOption + val options: List +} +data class AspectRatioToolState( + override val selectedToolOption: SizeOption = SizeOption.Square, + override val options: List = listOf( + SizeOption.Square, + SizeOption.Banner, + SizeOption.Wallpaper, + SizeOption.Custom, + ), +) : ToolState + +data class BackgroundToolState( + override val selectedToolOption: BackgroundOption = BackgroundOption.None, + override val options: List = listOf( + BackgroundOption.None, + BackgroundOption.Lightspeed, + BackgroundOption.IO, + BackgroundOption.Create, + ), +) : ToolState + +data class ExportImageCanvas( + val imageBitmap: Bitmap? = null, + var aspectRatio: Float = 1f, + var canvasSize: Size = Size(1000f, 1000f), + var imageRect: Rect = Rect(offset = Offset.Zero, size = Size(1000f, 1000f)), + var mainImageUri: Uri? = null, + var imageOriginalBitmapSize: Size? = Size(1024f, 1024f), + var selectedBackground: Bitmap? = null, +) { + + fun scaleImage(percentage: Float): ExportImageCanvas { + return this.copy( + imageRect = Rect( + offset = Offset(this.imageRect.left, this.imageRect.top), + size = Size( + this.imageRect.size.width * percentage, + this.imageRect.size.height * percentage + ) + ) + ) + } + + fun updateAspectRatio(newAspectRatio: Float, strategy: ImageScalingStrategy = ImageScalingStrategy.FILL): ExportImageCanvas { + if (newAspectRatio <= 0f) { + return this.copy() + } + val originalWidth = this.canvasSize.width + val originalHeight = this.canvasSize.height + var newCanvasWidth: Float + var newCanvasHeight: Float + + if (newAspectRatio > this.aspectRatio) { + newCanvasHeight = originalHeight + newCanvasWidth = newCanvasHeight * newAspectRatio + } else { + newCanvasWidth = originalWidth + newCanvasHeight = newCanvasWidth / newAspectRatio + } + + val adjustedCanvasSize = Size(newCanvasWidth, newCanvasHeight) + var newImageRect = this.imageRect + if (imageOriginalBitmapSize != null) { + newImageRect = when (strategy) { + ImageScalingStrategy.FIT -> calculateImageRectToFit(imageOriginalBitmapSize!!, adjustedCanvasSize) + ImageScalingStrategy.FILL -> calculateImageRectToFill(imageOriginalBitmapSize!!, adjustedCanvasSize) // You'd need a robust calculateImageRectToFill + } + } + + return this.copy( + aspectRatio = newAspectRatio, + canvasSize = adjustedCanvasSize, + imageRect = newImageRect, + ) + } + + fun calculateImageRectToFit(imageOriginalSize: Size, newCanvasSize: Size): Rect { + val imageAspectRatio = imageOriginalSize.width / imageOriginalSize.height + val canvasAspectRatio = newCanvasSize.width / newCanvasSize.height + + var rectWidth: Float + var rectHeight: Float + var offsetX: Float + var offsetY: Float + + if (imageAspectRatio > canvasAspectRatio) { + rectWidth = newCanvasSize.width + rectHeight = rectWidth / imageAspectRatio + offsetX = 0f + offsetY = (newCanvasSize.height - rectHeight) / 2f + } else { + rectHeight = newCanvasSize.height + rectWidth = rectHeight * imageAspectRatio + offsetX = (newCanvasSize.width - rectWidth) / 2f + offsetY = 0f + } + return Rect(Offset(offsetX, offsetY), Size(rectWidth, rectHeight)) + } + + fun calculateImageRectToFill(imageOriginalSize: Size, newCanvasSize: Size): Rect { + val imageAspectRatio = imageOriginalSize.width / imageOriginalSize.height + val canvasAspectRatio = newCanvasSize.width / newCanvasSize.height + + var rectWidth: Float + var rectHeight: Float + var offsetX = 0f + var offsetY = 0f + if (imageAspectRatio > canvasAspectRatio) { + rectHeight = newCanvasSize.height + rectWidth = rectHeight * imageAspectRatio + offsetX = (newCanvasSize.width - rectWidth) / 2f + offsetY = 0f + } else { + rectWidth = newCanvasSize.width + rectHeight = rectWidth / imageAspectRatio + offsetX = 0f + offsetY = (newCanvasSize.height - rectHeight) / 2f + } + return Rect(Offset(offsetX, offsetY), Size(rectWidth, rectHeight)) + } +} +enum class ImageScalingStrategy { + FIT, + FILL, +} diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt new file mode 100644 index 00000000..b8157203 --- /dev/null +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt @@ -0,0 +1,116 @@ +package com.android.developers.androidify.customize + +import android.R.attr.bitmap +import android.content.Context +import android.graphics.Bitmap +import android.view.View +import androidx.compose.animation.animateContentSize +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.aspectRatio +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.material3.MaterialTheme +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.draw.drawWithCache +import androidx.compose.ui.geometry.Offset +import androidx.compose.ui.graphics.asImageBitmap +import androidx.compose.ui.graphics.drawscope.DrawScope +import androidx.compose.ui.graphics.drawscope.draw +import androidx.compose.ui.graphics.drawscope.scale +import androidx.compose.ui.graphics.drawscope.translate +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.platform.ComposeView +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.unit.Density +import androidx.compose.ui.unit.DpSize +import androidx.compose.ui.unit.IntOffset +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.toIntSize +import coil3.compose.AsyncImage +import com.android.developers.androidify.results.R +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.withContext +import androidx.core.graphics.createBitmap + +@Composable +fun CustomizedImageRenderer( + exportImageCanvas: ExportImageCanvas, + modifier: Modifier = Modifier, +) { + ImageResult( + exportImageCanvas, + modifier, + ) +} + +@Composable +private fun ImageResult( + exportImageCanvas: ExportImageCanvas, + modifier: Modifier = Modifier, +) { + Box( + modifier = modifier, + contentAlignment = Alignment.Center, + ) { + Box( + modifier = Modifier + .aspectRatio(exportImageCanvas.aspectRatio, matchHeightConstraintsFirst = true) + .drawWithCache { + onDrawBehind { + val renderScale = this.size.width / exportImageCanvas.canvasSize.width + // scale up the drawing commands to the size of the incoming surface! + scale(renderScale, renderScale, pivot = Offset.Zero) { + if (exportImageCanvas.selectedBackground != null) { + drawImage( + image = exportImageCanvas.selectedBackground!!.asImageBitmap()) + } + if (exportImageCanvas.imageBitmap != null) { + drawImage( + exportImageCanvas.imageBitmap.asImageBitmap(), + srcSize = exportImageCanvas.canvasSize.toIntSize(), + srcOffset = IntOffset( + exportImageCanvas.imageRect.left.toInt(), + exportImageCanvas.imageRect.top.toInt(), + ), + ) + } + } + } + }, + ) + } +} + +suspend fun renderToBitmap( + context: Context, + currentCanvasState: ExportImageCanvas, +): Bitmap? { + return useVirtualDisplay(context) { display -> + val density = Density(2f) + val size = with (density) { + val newSize = currentCanvasState.canvasSize * density.density + newSize.toDpSize() + } + captureComposable( + context = context, + density = density, + size = size, + display = display + ) { + LaunchedEffect(Unit) { + capture() + } + CustomizedImageRenderer( + exportImageCanvas = currentCanvasState, + modifier = Modifier.fillMaxSize(), + ) + } + } +} \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 8a0135d0..3b88e64f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] # build -agp = "8.9.1" +agp = "8.11.0" compileSdk = "36" leakcanaryAndroid = "2.14" minSdk = "26" @@ -11,41 +11,41 @@ jvmTarget = "17" accompanist = "0.37.3" activityCompose = "1.10.1" adaptive = "1.1.0" -animationAndroid = "1.8.0" -appcompat = "1.7.0" +animationAndroid = "1.8.3" +appcompat = "1.7.1" baselineprofile = "1.3.4" benchmarkMacroJunit4 = "1.3.4" camerax = "1.5.0-SNAPSHOT" coilCompose = "3.2.0" coilGif = "3.2.0" -composeBom = "2025.05.00" +composeBom = "2025.06.02" concurrent = "1.2.0" converterGson = "2.11.0" -coreKtx = "1.15.0" +coreKtx = "1.16.0" coreSplashscreen = "1.0.1" -crashlytics = "3.0.3" +crashlytics = "3.0.4" espressoCore = "3.6.1" -firebaseBom = "33.14.0" -firebaseConfigKtx = "22.1.1" -googleServices = "4.4.2" -googleOss = "17.1.0" +firebaseBom = "33.16.0" +firebaseConfigKtx = "22.1.2" +googleServices = "4.4.3" +googleOss = "17.2.0" googleOssPlugin = "0.10.6" hiltAndroid = "2.56.2" hiltLifecycleViewmodel = "1.0.0-alpha03" hiltNavigationCompose = "1.2.0" junit = "4.13.2" junitVersion = "1.2.1" -kotlin = "2.1.20" -ksp = "2.1.20-1.0.32" +kotlin = "2.2.0" +ksp = "2.1.21-2.0.1" kotlinxCoroutines = "1.10.2" -kotlinxSerialization = "2.1.20" -kotlinxSerializationJson = "1.8.1" +kotlinxSerialization = "2.2.0" +kotlinxSerializationJson = "1.9.0" ktlint = "1.5.0" -lifecycleRuntimeKtx = "2.8.7" +lifecycleRuntimeKtx = "2.9.1" lifecycleViewmodelNavigation3 = "1.0.0-SNAPSHOT" -loggingInterceptor = "5.0.0-alpha.14" +loggingInterceptor = "5.1.0" material = "1.12.0" -media3 = "1.6.1" +media3 = "1.7.1" navigation3 = "1.0.0-SNAPSHOT" okhttp = "4.12.0" poseDetection = "18.0.0-beta5" @@ -55,11 +55,12 @@ robolectric = "4.14.1" spotless = "7.0.2" startup = "1.2.0" runner = "1.6.2" -uiTextGoogleFonts = "1.8.0" +uiTextGoogleFonts = "1.8.3" uiautomator = "2.4.0-SNAPSHOT" -uiTooling = "1.8.0" -window = "1.4.0-rc02" +uiTooling = "1.8.3" +window = "1.4.0" aiEdge = "0.0.1-exp02" +lifecycleProcess = "2.9.1" [libraries] accompanist-permissions = { module = "com.google.accompanist:accompanist-permissions", version.ref = "accompanist" } @@ -121,7 +122,6 @@ kotlinx-coroutines-test = { group = "org.jetbrains.kotlinx", name = "kotlinx-cor kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinxSerializationJson" } leakcanary-android = { module = "com.squareup.leakcanary:leakcanary-android", version.ref = "leakcanaryAndroid" } logging-interceptor = { group = "com.squareup.okhttp3", name = "logging-interceptor", version.ref = "loggingInterceptor" } -material = { group = "com.google.android.material", name = "material", version.ref = "material" } mlkit-pose-detection = { module = "com.google.mlkit:pose-detection", version.ref = "poseDetection" } okhttp = { group = "com.squareup.okhttp3", name = "okhttp", version.ref = "okhttp" } retrofit = { group = "com.squareup.retrofit2", name = "retrofit", version.ref = "retrofit" } @@ -134,6 +134,7 @@ androidx-profileinstaller = { group = "androidx.profileinstaller", name = "profi ai-edge = { group = "com.google.ai.edge.aicore", name = "aicore", version.ref = "aiEdge" } google-oss-licenses = { group = "com.google.android.gms", name = "play-services-oss-licenses", version.ref = "googleOss" } google-oss-licenses-plugin = { group = "com.google.android.gms", name = "oss-licenses-plugin", version.ref = "googleOssPlugin" } +androidx-lifecycle-process = { group = "androidx.lifecycle", name = "lifecycle-process", version.ref = "lifecycleProcess" } [plugins] android-application = { id = "com.android.application", version.ref = "agp" } android-library = { id = "com.android.library", version.ref = "agp" } @@ -146,5 +147,5 @@ kotlin-ksp = { id ="com.google.devtools.ksp", version.ref = "ksp" } serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlinxSerialization" } android-test = { id = "com.android.test", version.ref = "agp" } baselineprofile = { id = "androidx.baselineprofile", version.ref = "baselineprofile" } -composeScreenshot = { id = "com.android.compose.screenshot", version = "0.0.1-alpha09" } +composeScreenshot = { id = "com.android.compose.screenshot", version = "0.0.1-alpha10" } spotless = { id = "com.diffplug.spotless", version.ref = "spotless" } \ No newline at end of file From 3f44474c5747aff3283a5831a80e7053dcf06d03 Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Wed, 9 Jul 2025 15:13:23 +0100 Subject: [PATCH 10/38] Basic offscreen rendering implementation. --- .../androidify/customize/BitmapComposable.kt | 34 ++++++++-- .../customize/CustomizeExportScreen.kt | 10 +-- .../customize/CustomizeExportViewModel.kt | 64 ++++++++++--------- .../androidify/customize/CustomizeState.kt | 23 +++++-- .../androidify/customize/GenericTool.kt | 27 ++++---- .../androidify/customize/ImageRenderer.kt | 45 ++++++------- 6 files changed, 115 insertions(+), 88 deletions(-) diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/BitmapComposable.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/BitmapComposable.kt index 4f6a697e..7c42c6ee 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/BitmapComposable.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/BitmapComposable.kt @@ -1,3 +1,18 @@ +/* + * Copyright 2025 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package com.android.developers.androidify.customize import android.app.Presentation @@ -11,7 +26,8 @@ import android.view.Surface import android.view.ViewGroup import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.size -import androidx.compose.runtime.* +import androidx.compose.runtime.Composable +import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Modifier import androidx.compose.ui.draw.drawWithContent import androidx.compose.ui.graphics.asAndroidBitmap @@ -20,15 +36,18 @@ import androidx.compose.ui.graphics.rememberGraphicsLayer import androidx.compose.ui.platform.ComposeView import androidx.compose.ui.unit.Density import androidx.compose.ui.unit.DpSize -import androidx.lifecycle.* +import androidx.compose.ui.unit.IntSize +import androidx.lifecycle.Lifecycle +import androidx.lifecycle.LifecycleObserver +import androidx.lifecycle.LifecycleOwner +import androidx.lifecycle.ProcessLifecycleOwner +import androidx.lifecycle.setViewTreeLifecycleOwner import androidx.savedstate.SavedStateRegistry import androidx.savedstate.SavedStateRegistryController import androidx.savedstate.SavedStateRegistryOwner import androidx.savedstate.setViewTreeSavedStateRegistryOwner -import androidx.compose.ui.unit.IntSize -import kotlin.coroutines.suspendCoroutine -import androidx.lifecycle.ProcessLifecycleOwner import kotlinx.coroutines.launch +import kotlin.coroutines.suspendCoroutine /** * Use a virtual display to capture composable content thats on a display. @@ -57,7 +76,9 @@ suspend fun useVirtualDisplay(context: Context, callback: suspend (display: val virtualDisplay = (context.getSystemService(DISPLAY_SERVICE) as DisplayManager).createVirtualDisplay( "virtualDisplay", - 1, 1, 72, + 1, + 1, + 72, surface, DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY, ) ?: return null @@ -90,6 +111,7 @@ private class EmptySavedStateRegistryOwner : SavedStateRegistryOwner { override fun addObserver(observer: LifecycleObserver) { lifecycleOwner?.lifecycle?.addObserver(observer) } + @Suppress("UNNECESSARY_SAFE_CALL") override fun removeObserver(observer: LifecycleObserver) { lifecycleOwner?.lifecycle?.removeObserver(observer) diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt index b95464a0..a755ce8b 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt @@ -22,7 +22,6 @@ import android.graphics.Bitmap import android.net.Uri import android.os.Build import androidx.compose.animation.AnimatedContent -import androidx.compose.animation.animateContentSize import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box @@ -30,7 +29,6 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.IntrinsicSize import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.aspectRatio import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.height @@ -56,11 +54,9 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.ImageBitmap import androidx.compose.ui.graphics.asAndroidBitmap import androidx.compose.ui.graphics.vector.ImageVector -import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.imageResource import androidx.compose.ui.res.stringResource @@ -70,7 +66,6 @@ import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.navigation3.ui.LocalNavAnimatedContentScope -import coil3.compose.AsyncImage import com.android.developers.androidify.results.PermissionRationaleDialog import com.android.developers.androidify.results.R import com.android.developers.androidify.results.shareImage @@ -300,8 +295,6 @@ fun SelectedToolDetail( } } - - @Composable private fun BotActionsButtonRow( onShareClicked: () -> Unit, @@ -380,7 +373,8 @@ fun CustomizeExportPreview() { CompositionLocalProvider(LocalNavAnimatedContentScope provides this@AnimatedContent) { val bitmap = ImageBitmap.imageResource(R.drawable.placeholderbot) val state = CustomizeExportState( - exportImageCanvas = ExportImageCanvas(imageBitmap = bitmap.asAndroidBitmap())) + exportImageCanvas = ExportImageCanvas(imageBitmap = bitmap.asAndroidBitmap()), + ) CustomizeExportContents( state = state, onDownloadClicked = {}, diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt index 6be706b7..d3c93f75 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt @@ -16,21 +16,15 @@ package com.android.developers.androidify.customize import android.app.Application -import android.content.Context import android.graphics.Bitmap import android.graphics.BitmapFactory import android.net.Uri import androidx.compose.material3.SnackbarHostState -import androidx.compose.ui.geometry.Offset -import androidx.compose.ui.geometry.Rect -import androidx.compose.ui.geometry.Size import androidx.lifecycle.AndroidViewModel -import androidx.lifecycle.ViewModel import androidx.lifecycle.application import androidx.lifecycle.viewModelScope import com.android.developers.androidify.data.ImageGenerationRepository import dagger.hilt.android.lifecycle.HiltViewModel -import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asStateFlow @@ -41,7 +35,7 @@ import javax.inject.Inject @HiltViewModel class CustomizeExportViewModel @Inject constructor( val imageGenerationRepository: ImageGenerationRepository, - application: Application + application: Application, ) : AndroidViewModel(application) { private val _state = MutableStateFlow(CustomizeExportState()) @@ -57,8 +51,10 @@ class CustomizeExportViewModel @Inject constructor( originalImageUrl: Uri?, ) { _state.update { - CustomizeExportState(originalImageUrl, - exportImageCanvas = it.exportImageCanvas.copy(imageBitmap = resultImageUrl)) + CustomizeExportState( + originalImageUrl, + exportImageCanvas = it.exportImageCanvas.copy(imageBitmap = resultImageUrl), + ) } } @@ -76,32 +72,38 @@ class CustomizeExportViewModel @Inject constructor( } fun selectedToolStateChanged(toolState: ToolState) { _state.update { - it.copy(toolState = it.toolState + (it.selectedTool to toolState), + it.copy( + toolState = it.toolState + (it.selectedTool to toolState), exportImageCanvas = - when (toolState.selectedToolOption) { - is BackgroundOption -> { - val backgroundOption = toolState.selectedToolOption as BackgroundOption - val backgroundDrawable = if (backgroundOption.drawableId == null) - null else BitmapFactory.decodeResource(application.resources, - backgroundOption.drawableId) - if (backgroundOption == BackgroundOption.None) { - it.exportImageCanvas.copy( - selectedBackground = null, - ).scaleImage(1f) - } else { - it.exportImageCanvas.copy( - selectedBackground = backgroundDrawable, - ).scaleImage(0.75f) - } - } - is SizeOption -> { - it.exportImageCanvas.updateAspectRatio( - newAspectRatio = (toolState.selectedToolOption as SizeOption).aspectRatio + when (toolState.selectedToolOption) { + is BackgroundOption -> { + val backgroundOption = toolState.selectedToolOption as BackgroundOption + val backgroundDrawable = if (backgroundOption.drawableId == null) { + null + } else { + BitmapFactory.decodeResource( + application.resources, + backgroundOption.drawableId, ) } - else -> throw IllegalArgumentException("Unknown tool option") + if (backgroundOption == BackgroundOption.None) { + it.exportImageCanvas.copy( + selectedBackground = null, + ).scaleImage(1f) + } else { + it.exportImageCanvas.copy( + selectedBackground = backgroundDrawable, + ).scaleImage(0.75f) + } + } + is SizeOption -> { + it.exportImageCanvas.updateAspectRatio( + newAspectRatio = (toolState.selectedToolOption as SizeOption).aspectRatio, + ) } - ) + else -> throw IllegalArgumentException("Unknown tool option") + }, + ) } } fun downloadClicked() { diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt index 434f1066..056dc0b7 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt @@ -1,3 +1,18 @@ +/* + * Copyright 2025 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package com.android.developers.androidify.customize import android.graphics.Bitmap @@ -17,7 +32,7 @@ data class CustomizeExportState( CustomizeTool.Size to AspectRatioToolState(), CustomizeTool.Background to BackgroundToolState(), ), - val exportImageCanvas: ExportImageCanvas = ExportImageCanvas() + val exportImageCanvas: ExportImageCanvas = ExportImageCanvas(), ) { val selectedAspectRatio: Float get() = (toolState[CustomizeTool.Size] as AspectRatioToolState).selectedToolOption.aspectRatio @@ -65,9 +80,9 @@ data class ExportImageCanvas( offset = Offset(this.imageRect.left, this.imageRect.top), size = Size( this.imageRect.size.width * percentage, - this.imageRect.size.height * percentage - ) - ) + this.imageRect.size.height * percentage, + ), + ), ) } diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/GenericTool.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/GenericTool.kt index 8547dce2..6a26d33c 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/GenericTool.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/GenericTool.kt @@ -27,9 +27,7 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.aspectRatio import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.lazy.LazyRow import androidx.compose.foundation.rememberScrollState -import androidx.compose.foundation.verticalScroll import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Surface import androidx.compose.material3.Text @@ -54,17 +52,19 @@ fun GenericTool( singleLine: Boolean = true, ) { val scrollModifier = if (singleLine) Modifier.horizontalScroll(rememberScrollState()) else Modifier - FlowRow(modifier = modifier.then(scrollModifier), - maxLines = if (singleLine) 1 else Int.MAX_VALUE) { + FlowRow( + modifier = modifier.then(scrollModifier), + maxLines = if (singleLine) 1 else Int.MAX_VALUE, + ) { tools.forEach { tool -> - GenericToolButton( - isSelected = tool == selectedOption, - toolContent = { - individualToolContent(tool) - }, - onToolSelected = onToolSelected, - tool = tool, - ) + GenericToolButton( + isSelected = tool == selectedOption, + toolContent = { + individualToolContent(tool) + }, + onToolSelected = onToolSelected, + tool = tool, + ) } } } @@ -153,7 +153,6 @@ private fun GenericToolPreview() { } } - @Preview(showBackground = true) @Composable private fun GenericToolPreviewSingleLine() { @@ -191,4 +190,4 @@ private fun GenericToolPreviewSingleLine() { }, ) } -} \ No newline at end of file +} diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt index b8157203..9b03859a 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt @@ -1,43 +1,37 @@ +/* + * Copyright 2025 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package com.android.developers.androidify.customize -import android.R.attr.bitmap import android.content.Context import android.graphics.Bitmap -import android.view.View -import androidx.compose.animation.animateContentSize -import androidx.compose.foundation.Image -import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.aspectRatio import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size -import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.drawWithCache import androidx.compose.ui.geometry.Offset import androidx.compose.ui.graphics.asImageBitmap -import androidx.compose.ui.graphics.drawscope.DrawScope -import androidx.compose.ui.graphics.drawscope.draw import androidx.compose.ui.graphics.drawscope.scale -import androidx.compose.ui.graphics.drawscope.translate -import androidx.compose.ui.layout.ContentScale -import androidx.compose.ui.platform.ComposeView -import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.Density -import androidx.compose.ui.unit.DpSize import androidx.compose.ui.unit.IntOffset -import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.toIntSize -import coil3.compose.AsyncImage -import com.android.developers.androidify.results.R -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.withContext -import androidx.core.graphics.createBitmap @Composable fun CustomizedImageRenderer( @@ -69,7 +63,8 @@ private fun ImageResult( scale(renderScale, renderScale, pivot = Offset.Zero) { if (exportImageCanvas.selectedBackground != null) { drawImage( - image = exportImageCanvas.selectedBackground!!.asImageBitmap()) + image = exportImageCanvas.selectedBackground!!.asImageBitmap(), + ) } if (exportImageCanvas.imageBitmap != null) { drawImage( @@ -94,7 +89,7 @@ suspend fun renderToBitmap( ): Bitmap? { return useVirtualDisplay(context) { display -> val density = Density(2f) - val size = with (density) { + val size = with(density) { val newSize = currentCanvasState.canvasSize * density.density newSize.toDpSize() } @@ -102,7 +97,7 @@ suspend fun renderToBitmap( context = context, density = density, size = size, - display = display + display = display, ) { LaunchedEffect(Unit) { capture() @@ -113,4 +108,4 @@ suspend fun renderToBitmap( ) } } -} \ No newline at end of file +} From 54eeacce82da2d5f08fd295214c3233ee88fd843 Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Wed, 9 Jul 2025 15:22:46 +0100 Subject: [PATCH 11/38] Fix KSP warning --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 3b88e64f..608a8850 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -36,7 +36,7 @@ hiltNavigationCompose = "1.2.0" junit = "4.13.2" junitVersion = "1.2.1" kotlin = "2.2.0" -ksp = "2.1.21-2.0.1" +ksp = "2.2.0-2.0.2" kotlinxCoroutines = "1.10.2" kotlinxSerialization = "2.2.0" kotlinxSerializationJson = "1.9.0" From 95171db8f6f71da5cacf84d37d30460ad14c2956 Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Wed, 9 Jul 2025 21:07:30 +0100 Subject: [PATCH 12/38] Clean up aspect ratio code, dont make it smaller and smaller in size. --- .../customize/CustomizeExportScreen.kt | 40 ++++++++++++-- .../androidify/customize/CustomizeState.kt | 28 ++++++---- .../androidify/customize/ImageRenderer.kt | 54 +++++++++++++------ 3 files changed, 90 insertions(+), 32 deletions(-) diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt index a755ce8b..1b01d293 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt @@ -22,6 +22,7 @@ import android.graphics.Bitmap import android.net.Uri import android.os.Build import androidx.compose.animation.AnimatedContent +import androidx.compose.animation.ExperimentalSharedTransitionApi import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box @@ -29,6 +30,7 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.IntrinsicSize import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.aspectRatio import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.height @@ -49,14 +51,17 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue +import androidx.compose.runtime.movableContentWithReceiverOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.ImageBitmap import androidx.compose.ui.graphics.asAndroidBitmap import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.layout.LookaheadScope import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.imageResource import androidx.compose.ui.res.stringResource @@ -119,6 +124,7 @@ fun CustomizeAndExportScreen( ) } +@OptIn(ExperimentalSharedTransitionApi::class) @Composable private fun CustomizeExportContents( state: CustomizeExportState, @@ -152,7 +158,17 @@ private fun CustomizeExportContents( containerColor = MaterialTheme.colorScheme.surface, ) { paddingValues -> val imageResult = @Composable { modifier: Modifier -> - CustomizedImageRenderer(state.exportImageCanvas, modifier = modifier) + ImageResult( + state.exportImageCanvas, + modifier = modifier + .padding(16.dp) + .clip(MaterialTheme.shapes.medium), + ) + } + val imageMovable = remember { + movableContentWithReceiverOf { + imageResult(Modifier) + } } val toolSelector = @Composable { modifier: Modifier, horizontal: Boolean -> ToolSelector( @@ -192,10 +208,11 @@ private fun CustomizeExportContents( .fillMaxSize() .padding(paddingValues), verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.SpaceBetween, ) { imageResult( Modifier - .weight(1f, fill = false), + .weight(1f, fill = true), ) Column( Modifier @@ -236,7 +253,19 @@ private fun CustomizeExportContents( horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.SpaceBetween, ) { - imageResult(Modifier.weight(1f)) + Box( + modifier = Modifier + .weight(1f, fill = true), + contentAlignment = Alignment.Center, + ) { + ImageResult( + state.exportImageCanvas, + modifier = Modifier + .padding(16.dp) // Apply padding first + .aspectRatio(state.exportImageCanvas.aspectRatio, matchHeightConstraintsFirst = true) + .clip(MaterialTheme.shapes.medium), + ) + } Spacer(modifier = Modifier.height(16.dp)) toolSelector(Modifier, true) Spacer(modifier = Modifier.height(16.dp)) @@ -400,7 +429,10 @@ fun CustomizeExportPreviewLarge() { CompositionLocalProvider(LocalNavAnimatedContentScope provides this@AnimatedContent) { val bitmap = ImageBitmap.imageResource(R.drawable.placeholderbot) val state = CustomizeExportState( - exportImageCanvas = ExportImageCanvas(imageBitmap = bitmap.asAndroidBitmap()), + exportImageCanvas = ExportImageCanvas( + imageBitmap = bitmap.asAndroidBitmap(), + aspectRatio = 9 / 16f, + ), selectedTool = CustomizeTool.Background, ) CustomizeExportContents( diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt index 056dc0b7..f5b85fd0 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt @@ -90,26 +90,32 @@ data class ExportImageCanvas( if (newAspectRatio <= 0f) { return this.copy() } - val originalWidth = this.canvasSize.width - val originalHeight = this.canvasSize.height + + val baseReferenceWidth = 1000f + val baseReferenceHeight = 1000f + var newCanvasWidth: Float var newCanvasHeight: Float - if (newAspectRatio > this.aspectRatio) { - newCanvasHeight = originalHeight - newCanvasWidth = newCanvasHeight * newAspectRatio + if (newAspectRatio == 1f) { + newCanvasWidth = baseReferenceWidth + newCanvasHeight = baseReferenceHeight + } else if (newAspectRatio > 1f) { + newCanvasHeight = baseReferenceHeight + newCanvasWidth = baseReferenceHeight * newAspectRatio } else { - newCanvasWidth = originalWidth - newCanvasHeight = newCanvasWidth / newAspectRatio + newCanvasWidth = baseReferenceWidth + newCanvasHeight = baseReferenceWidth / newAspectRatio } val adjustedCanvasSize = Size(newCanvasWidth, newCanvasHeight) - var newImageRect = this.imageRect - if (imageOriginalBitmapSize != null) { - newImageRect = when (strategy) { + val newImageRect = if (imageOriginalBitmapSize != null) { + when (strategy) { ImageScalingStrategy.FIT -> calculateImageRectToFit(imageOriginalBitmapSize!!, adjustedCanvasSize) - ImageScalingStrategy.FILL -> calculateImageRectToFill(imageOriginalBitmapSize!!, adjustedCanvasSize) // You'd need a robust calculateImageRectToFill + ImageScalingStrategy.FILL -> calculateImageRectToFill(imageOriginalBitmapSize!!, adjustedCanvasSize) } + } else { + Rect(Offset.Zero, adjustedCanvasSize) } return this.copy( diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt index 9b03859a..44ef3332 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt @@ -20,32 +20,26 @@ import android.graphics.Bitmap import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.aspectRatio import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.size import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.drawWithCache import androidx.compose.ui.geometry.Offset +import androidx.compose.ui.graphics.ImageBitmap +import androidx.compose.ui.graphics.asAndroidBitmap import androidx.compose.ui.graphics.asImageBitmap import androidx.compose.ui.graphics.drawscope.scale +import androidx.compose.ui.res.imageResource import androidx.compose.ui.unit.Density import androidx.compose.ui.unit.IntOffset import androidx.compose.ui.unit.toIntSize +import com.android.developers.androidify.results.R +import com.android.developers.androidify.util.LargeScreensPreview +import com.android.developers.androidify.util.PhonePreview @Composable -fun CustomizedImageRenderer( - exportImageCanvas: ExportImageCanvas, - modifier: Modifier = Modifier, -) { - ImageResult( - exportImageCanvas, - modifier, - ) -} - -@Composable -private fun ImageResult( +fun ImageResult( exportImageCanvas: ExportImageCanvas, modifier: Modifier = Modifier, ) { @@ -68,12 +62,14 @@ private fun ImageResult( } if (exportImageCanvas.imageBitmap != null) { drawImage( - exportImageCanvas.imageBitmap.asImageBitmap(), - srcSize = exportImageCanvas.canvasSize.toIntSize(), - srcOffset = IntOffset( + image = exportImageCanvas.imageBitmap.asImageBitmap(), + srcOffset = IntOffset.Zero, + srcSize = exportImageCanvas.imageOriginalBitmapSize!!.toIntSize(), + dstOffset = IntOffset( exportImageCanvas.imageRect.left.toInt(), exportImageCanvas.imageRect.top.toInt(), ), + dstSize = exportImageCanvas.imageRect.size.toIntSize(), ) } } @@ -102,10 +98,34 @@ suspend fun renderToBitmap( LaunchedEffect(Unit) { capture() } - CustomizedImageRenderer( + ImageResult( exportImageCanvas = currentCanvasState, modifier = Modifier.fillMaxSize(), ) } } } + +@PhonePreview +@LargeScreensPreview +@Composable +private fun ImageRendererPreview() { + val bitmap = ImageBitmap.imageResource(R.drawable.placeholderbot) + + ImageResult( + ExportImageCanvas( + imageBitmap = bitmap.asAndroidBitmap(), + imageRect = androidx.compose.ui.geometry.Rect( + left = 0f, + top = 0f, + right = 100f, + bottom = 100f, + ), + canvasSize = androidx.compose.ui.geometry.Size(100f, 100f), + aspectRatio = 9 / 16f, + selectedBackground = null, + ), + modifier = Modifier + .fillMaxSize(), + ) +} From 80e0c6d0c3a356ec55c491b950d52abe3d9bd7fb Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Thu, 10 Jul 2025 10:33:37 +0100 Subject: [PATCH 13/38] Remove custom aspect ratio and create option for now --- .../developers/androidify/customize/AspectRatioTool.kt | 1 - .../developers/androidify/customize/BackgroundTool.kt | 1 - .../developers/androidify/customize/CustomizeState.kt | 2 -- .../developers/androidify/customize/CustomizeTool.kt | 6 ++++-- .../android/developers/androidify/customize/GenericTool.kt | 2 -- 5 files changed, 4 insertions(+), 8 deletions(-) diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/AspectRatioTool.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/AspectRatioTool.kt index 7733e18b..e2d9c00c 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/AspectRatioTool.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/AspectRatioTool.kt @@ -85,7 +85,6 @@ private fun AspectRatioToolPreview() { SizeOption.Square, SizeOption.Banner, SizeOption.Wallpaper, - SizeOption.Custom, ), selectedOption = SizeOption.Square, onSizeOptionSelected = {}, diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/BackgroundTool.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/BackgroundTool.kt index 3971434a..7bede372 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/BackgroundTool.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/BackgroundTool.kt @@ -87,7 +87,6 @@ private fun BackgroundToolPreview() { BackgroundOption.None, BackgroundOption.Lightspeed, BackgroundOption.IO, - BackgroundOption.Create, ), selectedOption = BackgroundOption.Lightspeed, onBackgroundOptionSelected = {}, diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt index f5b85fd0..5d2d6a4d 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt @@ -50,7 +50,6 @@ data class AspectRatioToolState( SizeOption.Square, SizeOption.Banner, SizeOption.Wallpaper, - SizeOption.Custom, ), ) : ToolState @@ -60,7 +59,6 @@ data class BackgroundToolState( BackgroundOption.None, BackgroundOption.Lightspeed, BackgroundOption.IO, - BackgroundOption.Create, ), ) : ToolState diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeTool.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeTool.kt index 87263cf3..e147d0a0 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeTool.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeTool.kt @@ -36,7 +36,8 @@ sealed class SizeOption( object Square : SizeOption(1f, "1:1", "square") object Banner : SizeOption(16 / 9f, "Banner", "banner") object Wallpaper : SizeOption(9 / 16f, "Wallpaper", "wallpaper") - object Custom : SizeOption(3 / 2f, "Custom", "custom") + // todo add custom ratio option to the UI + /*object Custom : SizeOption(3 / 2f, "Custom", "custom")*/ } sealed class BackgroundOption( @@ -47,5 +48,6 @@ sealed class BackgroundOption( object None : BackgroundOption("None", "None", null) object Lightspeed : BackgroundOption("Lightspeed", "Lightspeed", R.drawable.light_speed_dots) object IO : BackgroundOption("I/O", "IO", R.drawable.background_option_io) - object Create : BackgroundOption("Create", "Create", R.drawable.background_create) + // todo add Create with AI background option + /* object Create : BackgroundOption("Create", "Create", R.drawable.background_create)*/ } diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/GenericTool.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/GenericTool.kt index 6a26d33c..d3a2c2a4 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/GenericTool.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/GenericTool.kt @@ -123,7 +123,6 @@ private fun GenericToolPreview() { BackgroundOption.None, BackgroundOption.Lightspeed, BackgroundOption.IO, - BackgroundOption.Create, ), singleLine = false, selectedOption = BackgroundOption.Lightspeed, @@ -162,7 +161,6 @@ private fun GenericToolPreviewSingleLine() { BackgroundOption.None, BackgroundOption.Lightspeed, BackgroundOption.IO, - BackgroundOption.Create, ), selectedOption = BackgroundOption.Lightspeed, singleLine = true, From 79d667d59317fcf8f239dd4428606db6b35267d9 Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Thu, 10 Jul 2025 13:19:44 +0100 Subject: [PATCH 14/38] Add background presets --- .../androidify/customize/BackgroundTool.kt | 4 +- .../customize/CustomizeExportScreen.kt | 10 +- .../customize/CustomizeExportViewModel.kt | 22 +- .../androidify/customize/CustomizeState.kt | 109 +--------- .../androidify/customize/CustomizeTool.kt | 13 +- .../androidify/customize/GenericTool.kt | 4 +- .../androidify/customize/ImageRenderer.kt | 204 ++++++++++++++---- .../background_banner_lightspeed.png | Bin 0 -> 54464 bytes .../background_banner_plain.png | Bin 0 -> 18642 bytes .../background_banner_square.png | Bin 0 -> 33209 bytes .../background_square_lightspeed.png | Bin 0 -> 149083 bytes .../drawable-nodpi/background_square_none.png | Bin 0 -> 30350 bytes .../background_square_shape.png | Bin 0 -> 141126 bytes 13 files changed, 189 insertions(+), 177 deletions(-) create mode 100644 feature/results/src/main/res/drawable-nodpi/background_banner_lightspeed.png create mode 100644 feature/results/src/main/res/drawable-nodpi/background_banner_plain.png create mode 100644 feature/results/src/main/res/drawable-nodpi/background_banner_square.png create mode 100644 feature/results/src/main/res/drawable-nodpi/background_square_lightspeed.png create mode 100644 feature/results/src/main/res/drawable-nodpi/background_square_none.png create mode 100644 feature/results/src/main/res/drawable-nodpi/background_square_shape.png diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/BackgroundTool.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/BackgroundTool.kt index 7bede372..860a8864 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/BackgroundTool.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/BackgroundTool.kt @@ -63,9 +63,9 @@ fun BackgroundTool( ) .padding(6.dp), ) { - if (tool.drawableId != null) { + if (tool.previewDrawableInt != null) { Image( - rememberAsyncImagePainter(tool.drawableId), + rememberAsyncImagePainter(tool.previewDrawableInt), contentDescription = null, // described below contentScale = ContentScale.Crop, modifier = Modifier diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt index 1b01d293..bdfa8220 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt @@ -23,6 +23,7 @@ import android.net.Uri import android.os.Build import androidx.compose.animation.AnimatedContent import androidx.compose.animation.ExperimentalSharedTransitionApi +import androidx.compose.animation.animateContentSize import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box @@ -165,11 +166,6 @@ private fun CustomizeExportContents( .clip(MaterialTheme.shapes.medium), ) } - val imageMovable = remember { - movableContentWithReceiverOf { - imageResult(Modifier) - } - } val toolSelector = @Composable { modifier: Modifier, horizontal: Boolean -> ToolSelector( tools = state.tools, @@ -262,7 +258,7 @@ private fun CustomizeExportContents( state.exportImageCanvas, modifier = Modifier .padding(16.dp) // Apply padding first - .aspectRatio(state.exportImageCanvas.aspectRatio, matchHeightConstraintsFirst = true) + .aspectRatio(state.exportImageCanvas.aspectRatioOption.aspectRatio, matchHeightConstraintsFirst = true) .clip(MaterialTheme.shapes.medium), ) } @@ -431,7 +427,7 @@ fun CustomizeExportPreviewLarge() { val state = CustomizeExportState( exportImageCanvas = ExportImageCanvas( imageBitmap = bitmap.asAndroidBitmap(), - aspectRatio = 9 / 16f, + aspectRatioOption = SizeOption.Square, ), selectedTool = CustomizeTool.Background, ) diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt index d3c93f75..7171998a 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt @@ -78,27 +78,11 @@ class CustomizeExportViewModel @Inject constructor( when (toolState.selectedToolOption) { is BackgroundOption -> { val backgroundOption = toolState.selectedToolOption as BackgroundOption - val backgroundDrawable = if (backgroundOption.drawableId == null) { - null - } else { - BitmapFactory.decodeResource( - application.resources, - backgroundOption.drawableId, - ) - } - if (backgroundOption == BackgroundOption.None) { - it.exportImageCanvas.copy( - selectedBackground = null, - ).scaleImage(1f) - } else { - it.exportImageCanvas.copy( - selectedBackground = backgroundDrawable, - ).scaleImage(0.75f) - } + it.exportImageCanvas.copy(selectedBackgroundOption = backgroundOption) } is SizeOption -> { - it.exportImageCanvas.updateAspectRatio( - newAspectRatio = (toolState.selectedToolOption as SizeOption).aspectRatio, + it.exportImageCanvas.copy( + aspectRatioOption = (toolState.selectedToolOption as SizeOption), ) } else -> throw IllegalArgumentException("Unknown tool option") diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt index 5d2d6a4d..cb8faafe 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt @@ -64,111 +64,10 @@ data class BackgroundToolState( data class ExportImageCanvas( val imageBitmap: Bitmap? = null, - var aspectRatio: Float = 1f, + var aspectRatioOption: SizeOption = SizeOption.Square, var canvasSize: Size = Size(1000f, 1000f), - var imageRect: Rect = Rect(offset = Offset.Zero, size = Size(1000f, 1000f)), var mainImageUri: Uri? = null, var imageOriginalBitmapSize: Size? = Size(1024f, 1024f), - var selectedBackground: Bitmap? = null, -) { - - fun scaleImage(percentage: Float): ExportImageCanvas { - return this.copy( - imageRect = Rect( - offset = Offset(this.imageRect.left, this.imageRect.top), - size = Size( - this.imageRect.size.width * percentage, - this.imageRect.size.height * percentage, - ), - ), - ) - } - - fun updateAspectRatio(newAspectRatio: Float, strategy: ImageScalingStrategy = ImageScalingStrategy.FILL): ExportImageCanvas { - if (newAspectRatio <= 0f) { - return this.copy() - } - - val baseReferenceWidth = 1000f - val baseReferenceHeight = 1000f - - var newCanvasWidth: Float - var newCanvasHeight: Float - - if (newAspectRatio == 1f) { - newCanvasWidth = baseReferenceWidth - newCanvasHeight = baseReferenceHeight - } else if (newAspectRatio > 1f) { - newCanvasHeight = baseReferenceHeight - newCanvasWidth = baseReferenceHeight * newAspectRatio - } else { - newCanvasWidth = baseReferenceWidth - newCanvasHeight = baseReferenceWidth / newAspectRatio - } - - val adjustedCanvasSize = Size(newCanvasWidth, newCanvasHeight) - val newImageRect = if (imageOriginalBitmapSize != null) { - when (strategy) { - ImageScalingStrategy.FIT -> calculateImageRectToFit(imageOriginalBitmapSize!!, adjustedCanvasSize) - ImageScalingStrategy.FILL -> calculateImageRectToFill(imageOriginalBitmapSize!!, adjustedCanvasSize) - } - } else { - Rect(Offset.Zero, adjustedCanvasSize) - } - - return this.copy( - aspectRatio = newAspectRatio, - canvasSize = adjustedCanvasSize, - imageRect = newImageRect, - ) - } - - fun calculateImageRectToFit(imageOriginalSize: Size, newCanvasSize: Size): Rect { - val imageAspectRatio = imageOriginalSize.width / imageOriginalSize.height - val canvasAspectRatio = newCanvasSize.width / newCanvasSize.height - - var rectWidth: Float - var rectHeight: Float - var offsetX: Float - var offsetY: Float - - if (imageAspectRatio > canvasAspectRatio) { - rectWidth = newCanvasSize.width - rectHeight = rectWidth / imageAspectRatio - offsetX = 0f - offsetY = (newCanvasSize.height - rectHeight) / 2f - } else { - rectHeight = newCanvasSize.height - rectWidth = rectHeight * imageAspectRatio - offsetX = (newCanvasSize.width - rectWidth) / 2f - offsetY = 0f - } - return Rect(Offset(offsetX, offsetY), Size(rectWidth, rectHeight)) - } - - fun calculateImageRectToFill(imageOriginalSize: Size, newCanvasSize: Size): Rect { - val imageAspectRatio = imageOriginalSize.width / imageOriginalSize.height - val canvasAspectRatio = newCanvasSize.width / newCanvasSize.height - - var rectWidth: Float - var rectHeight: Float - var offsetX = 0f - var offsetY = 0f - if (imageAspectRatio > canvasAspectRatio) { - rectHeight = newCanvasSize.height - rectWidth = rectHeight * imageAspectRatio - offsetX = (newCanvasSize.width - rectWidth) / 2f - offsetY = 0f - } else { - rectWidth = newCanvasSize.width - rectHeight = rectWidth / imageAspectRatio - offsetX = 0f - offsetY = (newCanvasSize.height - rectHeight) / 2f - } - return Rect(Offset(offsetX, offsetY), Size(rectWidth, rectHeight)) - } -} -enum class ImageScalingStrategy { - FIT, - FILL, -} + var selectedBackgroundOption: BackgroundOption = BackgroundOption.None, + val includeWatermark: Boolean = true +) \ No newline at end of file diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeTool.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeTool.kt index e147d0a0..d24d3bcc 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeTool.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeTool.kt @@ -34,7 +34,7 @@ sealed class SizeOption( ) : ToolOption { object Square : SizeOption(1f, "1:1", "square") - object Banner : SizeOption(16 / 9f, "Banner", "banner") + object Banner : SizeOption(4f, "Banner", "banner") object Wallpaper : SizeOption(9 / 16f, "Wallpaper", "wallpaper") // todo add custom ratio option to the UI /*object Custom : SizeOption(3 / 2f, "Custom", "custom")*/ @@ -43,11 +43,16 @@ sealed class SizeOption( sealed class BackgroundOption( override val displayName: String, override val key: String, - val drawableId: Int?, + val previewDrawableInt: Int?, ) : ToolOption { object None : BackgroundOption("None", "None", null) - object Lightspeed : BackgroundOption("Lightspeed", "Lightspeed", R.drawable.light_speed_dots) - object IO : BackgroundOption("I/O", "IO", R.drawable.background_option_io) + object Lightspeed : BackgroundOption("Lightspeed", + "Lightspeed", + R.drawable.light_speed_dots, + ) + object IO : BackgroundOption("I/O", "IO", + R.drawable.background_option_io, + ) // todo add Create with AI background option /* object Create : BackgroundOption("Create", "Create", R.drawable.background_create)*/ } diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/GenericTool.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/GenericTool.kt index d3a2c2a4..5096b233 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/GenericTool.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/GenericTool.kt @@ -140,7 +140,7 @@ private fun GenericToolPreview() { .padding(6.dp), ) { Image( - rememberAsyncImagePainter(tool.drawableId), + rememberAsyncImagePainter(tool.previewDrawableInt), contentDescription = null, // described below contentScale = ContentScale.Crop, modifier = Modifier.aspectRatio(1f) @@ -178,7 +178,7 @@ private fun GenericToolPreviewSingleLine() { .padding(6.dp), ) { Image( - rememberAsyncImagePainter(tool.drawableId), + rememberAsyncImagePainter(tool.previewDrawableInt), contentDescription = null, // described below contentScale = ContentScale.Crop, modifier = Modifier.aspectRatio(1f) diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt index 44ef3332..50aea319 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt @@ -17,65 +17,178 @@ package com.android.developers.androidify.customize import android.content.Context import android.graphics.Bitmap +import androidx.compose.foundation.Image +import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.aspectRatio import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.offset +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.drawWithCache -import androidx.compose.ui.geometry.Offset +import androidx.compose.ui.draw.clip +import androidx.compose.ui.draw.clipToBounds +import androidx.compose.ui.draw.rotate +import androidx.compose.ui.draw.scale +import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.ImageBitmap import androidx.compose.ui.graphics.asAndroidBitmap import androidx.compose.ui.graphics.asImageBitmap -import androidx.compose.ui.graphics.drawscope.scale +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.layout.layout import androidx.compose.ui.res.imageResource import androidx.compose.ui.unit.Density import androidx.compose.ui.unit.IntOffset -import androidx.compose.ui.unit.toIntSize +import androidx.compose.ui.unit.dp import com.android.developers.androidify.results.R import com.android.developers.androidify.util.LargeScreensPreview import com.android.developers.androidify.util.PhonePreview +import com.android.developers.androidify.util.dpToPx +import kotlin.math.roundToInt +@OptIn(ExperimentalMaterial3ExpressiveApi::class) @Composable fun ImageResult( exportImageCanvas: ExportImageCanvas, modifier: Modifier = Modifier, ) { Box( - modifier = modifier, + modifier = modifier.clipToBounds(), contentAlignment = Alignment.Center, ) { Box( modifier = Modifier - .aspectRatio(exportImageCanvas.aspectRatio, matchHeightConstraintsFirst = true) - .drawWithCache { - onDrawBehind { - val renderScale = this.size.width / exportImageCanvas.canvasSize.width - // scale up the drawing commands to the size of the incoming surface! - scale(renderScale, renderScale, pivot = Offset.Zero) { - if (exportImageCanvas.selectedBackground != null) { - drawImage( - image = exportImageCanvas.selectedBackground!!.asImageBitmap(), - ) - } - if (exportImageCanvas.imageBitmap != null) { - drawImage( - image = exportImageCanvas.imageBitmap.asImageBitmap(), - srcOffset = IntOffset.Zero, - srcSize = exportImageCanvas.imageOriginalBitmapSize!!.toIntSize(), - dstOffset = IntOffset( - exportImageCanvas.imageRect.left.toInt(), - exportImageCanvas.imageRect.top.toInt(), - ), - dstSize = exportImageCanvas.imageRect.size.toIntSize(), + .background(Color.White) + .aspectRatio(exportImageCanvas.aspectRatioOption.aspectRatio, matchHeightConstraintsFirst = true), + ) { + BackgroundLayout(exportImageCanvas.aspectRatioOption, + exportImageCanvas.selectedBackgroundOption, + modifier = Modifier.fillMaxSize()) { + if (exportImageCanvas.imageBitmap != null) { + Image(bitmap = exportImageCanvas.imageBitmap.asImageBitmap(), + modifier = Modifier + .fillMaxSize(), + contentScale = ContentScale.Crop, + contentDescription = null) + } + } + } + } +} +@Composable +fun BackgroundLayout( + sizeOption: SizeOption, + backgroundOption: BackgroundOption, + modifier: Modifier = Modifier, + content: @Composable () -> Unit, +){ + Box(modifier = modifier.fillMaxSize()) { + + when (sizeOption) { + SizeOption.Banner -> { + // Background image for the banner + val image = when (backgroundOption) { + BackgroundOption.IO -> R.drawable.background_banner_square + BackgroundOption.Lightspeed -> R.drawable.background_banner_lightspeed + BackgroundOption.None -> R.drawable.background_banner_plain + } + Image( + bitmap = ImageBitmap.imageResource(id = image), + modifier = Modifier.fillMaxSize(), + contentScale = ContentScale.Crop, + contentDescription = null + ) + val whiteBoxXFraction = 0.51f + val whiteBoxYFraction = 0.31f + val whiteBoxWidthFraction = 0.23f + val whiteBoxHeightFraction = 0.35f + + Box( + modifier = Modifier + .fillMaxSize() + .layout { measurable, constraints -> + val fullWidth = constraints.maxWidth + val fullHeight = constraints.maxHeight + + val whiteBoxWidth = (fullWidth * whiteBoxWidthFraction).roundToInt() + val whiteBoxHeight = (fullHeight * whiteBoxHeightFraction).roundToInt() + + val whiteBoxX = (fullWidth * whiteBoxXFraction).roundToInt() + val whiteBoxY = (fullHeight * whiteBoxYFraction).roundToInt() + + val placeable = measurable.measure( + constraints.copy( + minWidth = whiteBoxWidth, + maxWidth = whiteBoxWidth, + minHeight = whiteBoxHeight, + maxHeight = whiteBoxHeight ) + ) + layout(fullWidth, fullHeight) { + placeable.placeRelative(whiteBoxX, whiteBoxY) } } + .aspectRatio(0.88f) + .rotate(-11f) + ) { + Box( + modifier = Modifier + .fillMaxSize() + .clip(RoundedCornerShape(32.dp)), + contentAlignment = Alignment.Center + ) { + content() + } + } + } + SizeOption.Square -> { + var botOffset by remember { mutableStateOf(IntOffset.Zero) } + botOffset = IntOffset(26.dp.dpToPx().roundToInt(), -28.dp.dpToPx().roundToInt()) + val image = when (backgroundOption) { + BackgroundOption.IO -> { + R.drawable.background_square_shape + } + BackgroundOption.Lightspeed -> { + R.drawable.background_square_lightspeed } - }, - ) + BackgroundOption.None -> R.drawable.background_square_none + } + Image(ImageBitmap.imageResource(id = image), + contentScale = ContentScale.Crop, + modifier = Modifier.fillMaxSize(), + contentDescription = null) + Box(modifier = Modifier + .offset{ botOffset } + .aspectRatio(0.88f) + .fillMaxSize() + .rotate(2f) + .scale(0.7f) + .clip(RoundedCornerShape(32.dp)), + contentAlignment = Alignment.Center + ) { + content() + } + } + SizeOption.Wallpaper -> { + var botOffset by remember { mutableStateOf(IntOffset.Zero) } + Box(modifier = Modifier + .offset{ botOffset } + .aspectRatio(0.88f) + .fillMaxSize() + .clip(RoundedCornerShape(32.dp)) + ) { + content() + } + } + } + } } @@ -115,17 +228,32 @@ private fun ImageRendererPreview() { ImageResult( ExportImageCanvas( imageBitmap = bitmap.asAndroidBitmap(), - imageRect = androidx.compose.ui.geometry.Rect( - left = 0f, - top = 0f, - right = 100f, - bottom = 100f, - ), - canvasSize = androidx.compose.ui.geometry.Size(100f, 100f), - aspectRatio = 9 / 16f, - selectedBackground = null, + canvasSize = androidx.compose.ui.geometry.Size(1000f, 1000f), + aspectRatioOption = SizeOption.Square, + selectedBackgroundOption = BackgroundOption.IO, ), modifier = Modifier - .fillMaxSize(), + .fillMaxSize() + , ) } +@PhonePreview +@LargeScreensPreview +@Composable +private fun ImageRendererPreviewBanner() { + val bitmap = ImageBitmap.imageResource(R.drawable.placeholderbot) + + ImageResult( + ExportImageCanvas( + imageBitmap = bitmap.asAndroidBitmap(), + canvasSize = androidx.compose.ui.geometry.Size(1000f, 1000f), + aspectRatioOption = SizeOption.Banner, + selectedBackgroundOption = BackgroundOption.Lightspeed, + ), + modifier = Modifier + .fillMaxSize() + .aspectRatio(SizeOption.Banner.aspectRatio) + , + ) + +} diff --git a/feature/results/src/main/res/drawable-nodpi/background_banner_lightspeed.png b/feature/results/src/main/res/drawable-nodpi/background_banner_lightspeed.png new file mode 100644 index 0000000000000000000000000000000000000000..5aae75841317b48e404b60c4400b77bba8182cf1 GIT binary patch literal 54464 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 M07*qoM6N<$g0}eoBme*a literal 0 HcmV?d00001 diff --git a/feature/results/src/main/res/drawable-nodpi/background_banner_plain.png b/feature/results/src/main/res/drawable-nodpi/background_banner_plain.png new file mode 100644 index 0000000000000000000000000000000000000000..c75ad7cd4bc7345bf7ac8828848aef12324de984 GIT binary patch literal 18642 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 literal 0 HcmV?d00001 diff --git a/feature/results/src/main/res/drawable-nodpi/background_banner_square.png b/feature/results/src/main/res/drawable-nodpi/background_banner_square.png new file mode 100644 index 0000000000000000000000000000000000000000..d676f34dd3aa163d6fd34365b00fd134fdbaff9c GIT binary patch literal 33209 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 F`9Cfzq~!nr literal 0 HcmV?d00001 diff --git a/feature/results/src/main/res/drawable-nodpi/background_square_lightspeed.png b/feature/results/src/main/res/drawable-nodpi/background_square_lightspeed.png new file mode 100644 index 0000000000000000000000000000000000000000..9f8d6357daa3e4d5c8f9d9c18bb35b9879d0a5df GIT binary patch literal 149083 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 iC6-C!- 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 ? zJnESNb0(%GHeU$?yw)***P8n-2>1<+xTSsb-Z7WzrWFAt%BY=X#sz?8p8S|(mh zVXCKKSWUmsfnU<*`-g?$p(#&wOX4(`f#G5BQGmOc&_T#jCNjSK~{VBdg{1mxZdZI)BmbVjvNdnxb>f( zX(a&KR<4)WxWAWmF8VX{$YbKopya(evQ0sTS<$xAo%k0DE8#^fOx8(7=}Pn5zHn=a zW|w6Zz59wyD#_VVm`E|Z%clj;_a0HCUQn17k6l*>3{Brgp>YZmZrlY4BoDF?2J@&Y zIZdW&lx@X!i1>B0fyl=y5%VYmY!x7ISd`kRZa|zTkR@tm>;|BnTDT&IrI6WJ?LP0o z{(j$Y1p{af5d!}JUo^-odqNa0`hIVGjN?w-(!8#IyL`9MRZ0r7Dh|Z>BeSUM1>HRWPYH1X84rvJ0_khk+bo~^l@QCKjs1!k zNxM!HX;3I4zb4i&ie*N!ZIS=>$>SopSFuTxsm92>g1kM5XAFl^M}?WDb#u88Q{&~D zLE&(uyyc(~+>v@jO-AgQw1%w?&hCrazdi&2~-YmN{b@6h~5p ze`!f@E7|rWn_|B`Qqt?W>fykoUbZ00Mu@pR5pWA|0GZC9;hy> zQ=?XkZ!U$)g z;)|q6kb0uo=6D8T8AoXt3JA$#(z~wIvf@bcOp}O{2uH}6ggzQoOB$2wxKDf3GPBKD zu983%e{KgNk7;f5-Gn!%S88$MGM}5nH&&(Q-4uVCx9YUtU*10KcM+P)d>CmXAo7b9 z)IJ~+D_+Fv5c%^=rJ?aXtc~XqQh6&u8sHDcy{3wk<-UBHeZ;X2dX!@hkeBDz8eWqK zM&Gj`H8X#gPC8uD0YjBY(@PQgbvL(|^}C*g{ZQlOurKk5hS^4)W?@hC=DhhrOWm@6 zyZoz6E&)Eo>KLTU9cN$}s*gah%wFpasr%qCGVw@lT^@eC$=11*4ZoL#Yr*^mW718Ah%7CMnSPnS=7MZ_DZ zo;0%j9gQCwEVX2QQap;&1_XiAt1SWBp%eOe)@pXun`GV_E}mn-I1RvLlWKwj?%A3G>tACTSs|;*U}TVM>v-lHwRw=a}4MRc=zqj*8n{s-@p}sPpug8=2Y_uM~7^Owv^sYyh|q6`CpipiLDI z5zf@HTg~H!f?W8?+rc$GE?s=`feZb3n&2YkZ}F|4sfEv{%4S2fBM-7|YM&>(3*{f^u*&iK@5|ZZ(?fg8{`CiC78#H&lpvE*T2#u=HOOU5S)7 zK{-i<0WnEvp&!?LDcg-?6Qud*_PYrNS^LE*N!3(oYYYbut=LhPZalrcr`7Kk?VFAc zTDKSNk8bv-=gdo1+G;MhwFl={wA~5Q&dlZ2C1}NKNJ;|a6iTMi%n6LG8r*kx-eB1p z(C4u7if}UX++Vju$`zU8T1=K*ozMnxNEU%K!(id9iaMjU;$ zjH)GpBbL})QYc0^m5YP}C_gp`5@&J0M|C#0u)?Hf>Iy3`=B#eFwGa#iRR*@pTO#7j z%>3HV%x+_z3@!^=dQ}XM5KEWQcAwB*QMkTQ2ovq-73tL#Fd@**Q0K@>Gq)VXVUEnk9BUQzM1A)eetC`vNA#$EKCuz6g_?U7Jsh{~ z?CoH@+3#roQw%BQjqZTZ(k!p@>dmff>nXHOqlI0fREBLLIal|Y1g`BW(NHn~UIdg4 zX+WTP9_v&?Rs-}ZuwdH!SNXGBQYDi?o&MMrDY~udS=TwQw64aWS!zeZ+B94|(P$rL zA8+GSJc8T#kJFXcHKDkUEFKFYvG3Jsp9C6i(`Vii-mDkNlA-=iCi#B$qr_OrWp(wn z-KtF3*P3UOM9M3U4tsw`trY$0=n&8J)BiMT?$AWrQNK=fh)Z^a%beuhMEaj7`kLimj%oFF3JgZ;{3cHb<2E9V#Z3$fYj$hPZ}8lIL4CtJaNQk$Iy z%BXBXz7_f*TSv%qUJI|4vM7ADKidPW218f$pz*qU#dF^J-t$P{7Od}8n(DoIQC_Lc zIWk7k9ae6RDZDvzfB5~}<+Uh}7kD#kz>PYv(?g!hgC|C@0)1aWROo|EqeOnJ;@&5B zO&yYhhhl4K_I&Hf*}GyPZQ7UIUX@mQg67<4fZp`e*F zkww9xWWV!?_n#p3KL!K@$#OmHF4iEc^Y21?O{9Z^oHQm^aeQAF94PoT8;t&Btb)a% z0|k5;ZI+HG&ycwK&PCas*huZr767l&v{`d3`Kv~L?~=W`_C2_=3{FVkxKGT+f*%M6tfue~rL&dH|y0Fh>{0h;^0PcIc_lY8$*^(0*e%2)l6gsyqW=-{e+$5BP>$x41`Zm;Ut@!*5r}j{D7bS z&M?@{wWzRgeNegOJym6|RT?~)ZaQP?JNC;8gY4-l5=w?ck(}r0#QmgJKPKnt;2PfuTyPxV05W* z-#jw%O|aq`g)F69?@cr={x5ev*@PImEP<-eFUH}xvj$iarPnxF?c~EBm33G!(@Mk~ zsffap8{Fjc)=Z*N0iBx)ul%(juaIEZlfK==5c4??2si8RD?0ag!#Whye;g7LaC%N` zPu+EoRvcFYugg?8ahZ46ZW$ALv+*(>5wtpmU!PIT-WIBe9+d8U7=PDY4LyVoAvkii zgXcz@nq4w>z*9hKR!%Y^g(4EKq&+OpV#l(4UK6E!E1KrxWP#VaPSJBP+5>;EsCy;y z@Se4UX&x0<@&;uS@CajxccR)#dUR2Fwt zr3g*NG_)5O6C)p+W3MPSq}af;ojx`lN8|M6$EjQ41qL~`bd_l}EUBOS+c7WZwp3mT^NUH0h= zk=9;mHbSIR$PqM#2yEUa9QchxFymcjq?B11fMUf z4H2YO{i9pinZ?0kj95%C^NYwgwC&uaCh<#(BnmEh#RgeOwi88c;BASvk0b~M+* zVG#&;Weep)F{zZAmr{vFlpJfAZdCJ7L@O*v4suVWI zzIiH9BqL-JP4mrh1O`ba7-hSOiON7vWNJbN@oAzO3bs&GNPU$irHVcYU5BiOM}q=0 zC4)v@a640Kv&YSx)Ki+<^r*$TWwo{CEoy@kgxkFr>eudBEL*|oZ#EWmFD+lY-<4ch z9706*56GMq|3tnKuaNp(e6wMI)PDM<@fpLegNPdiQbGtzqX8WgLUiEGvZ2l+8AlF@ z9-ZYi#i|gCL%pVa1*odLxho_3KL$(jIN+UtMY6oEHBCBlrGx zfG@yL9n>Qj6DZlL$(iAyCnCXy4xP$_|Jt5I84iBvpC$C8xC{HmxZur*uk5yiR&T7N{&fGwV)tc4(9#L;gDscT9k=s+4apns@V)VtUdFr^@>Z^K}>>)}a8Oe`j`!S?g`1&u2fE z5RZo`6IZK-a#w7%1F9q7SpOIe7c|gBFmGaRIlHVIrmH;nVd}MP19MXk(dKtUBrEdE zE!_L_G2*rQCXNn9uOA#D2+*x;>pSs&13x^Er5ici_nLYWKD$7ZoIvqOQm((+Z_HwuhETz5(B?CI$FH0V0$9gnRan6 zd%RZDbnX$MzR;CJ!tkp>71Z~8V%*GXi9i2jr=<6_>E0HtM@Vy+JN=uPTF?AktdSN> zMUL_eHSM&-OJi*ZR=4BQE170^3ukwMe!WL%zQ+hOoWTr2h_ zX6sX)GerkRp|s7Wi+cmm%Z zEuZ1;wJp1+*!7Ul4ufGej&LA)9 zajSqxj43j*syN{`9j|m1qhO)GYP=-aB~RWw0;F!S1^nb9@(>-D*7gQEvC$l9Mu$&O zCX;ACk=hOo1Wb%H(r?g9y(JQ@zdN($Y))eX(%2pA>V^}}&bAs@$+o*1XDPSr6Fn+N zSV@la%&(a7$6YUf7qf}VBOyufG^=4{k=xzoTTWz;9+DfMtmPagRu?Hcrp;q}sIR)zxP2?C(J;BIKvx##ZFO-*wNv!eA*<5W61(nm&=w zot%ZKc1u<>z@%2vonxH+z!qd1)k4H_$Gl4q;oa4m@iS_sSx=4BLNuxUs`c=2cPMZ> zukYZiO!o=e*chapEzo9^GvE-`(hz1BkqwcRIR)J0cW^KEM?x9~pEP9~OT zb_p&fW)Fqh!0UT{Ju(yPN4fo!&|d-`n30b<&-<=*>ZTBxMVl<>-SF_0?V)RT#(O96 z8(~FRpVobNyDLU^w$#r@wnaA2Q}ZV;x77vu(gUVxDyvCp!p`1#uhw7=`A|F{rOkT? z-*Zzr(r&#z%`7#YiqqM3#Z+B+Cz5&iLs%sM3s7x(IJ zUsWbYJz|xqLrAzAOWW=z-C35;dI|O4dRK65l`J#bA8x`(?T;JK z^E8}(&sp3_REwswv7q-IN%QQkBTr+0`ck8lMli8XO`pz-!B-cQvkaL@Yd%!f zq{sZ{Md$Pt{p#i5c9Wn&({6S35Vdmn*z#`cOA^odPP+8dud!$cgRr+Clq9wF&v{<> z*o;X6njzLyri#k-eRBnCRTucU=mwTkavAibo~;pbyr*tKIYSdV8@p|xD|Tn8WDml5 zj|z9o8Y=_bKk=rfBYCd-38e`=HlkI$mdL+8PA5x#r2CRaaM!Ci(e?4Em&eHAN z5`D7Zv*P-f0b-*;O6m#W2*o-XXV2}_Z%rinUm7hN2O%RT*p{|Hw_EYTVUe z5m4B9ZZ`zq2JzvNAM!rDdgOFDqP>!$v!YR+8Q$9d;q|=-;o+e1vDULKxR#)0(8-+3 zrtg8m@h(ub8I@v8P@r#}te)En;)}Lam3UV0{Z1 zpT)Ka&!@ELocLKJGvCq*r9jCEdra*lp5ua*ipv`^8H!HFK$tTZHHV~%xh{qE+)h7z z#l_?5{XOCIWy?-cdbf!pE9S8^geKQ!gT{xcI+;4jQJ0cXEHdMWzVC4-q+ix&2I#c9 zl7zgep~W<=XBE9&KY;s8?;e`2KG(@yEjvZmT+JS>-gAGI?1>Z}aE!Ytr`^y)<<4p3 zvVXLIoq%69w}2hjT5%1QJujWOI!MZYJ>lE_5@}S1_M| z>2LNyJ2KI6zsf;Hd|P6@ynY9f#PzK?rx3RY$~sVUDcBYCzC(5=>^rNt)0@3OM*d(; zQQ~Giol2)!9O65&Mh=ZBQACNZZB(3XZQ~jqij^lTyax`7)Hy43$@OVd6bxkQ>!X?r z>u<2fQ~rT8E1tos3L}(5uT^s^P}c2i=f2p*d8XFJ!(e>r@MFGy5;q0;xAgR-eNvB z?W>hK&$%0%*H6{ph2YKzME_x<*f>B+T}fExYk8m4M!%!7(i;ub6PAkJ?Dr@~Sn@9spo*UfWVfpCCf=ari zE;>9=dQVi5-ff~{y!^x%F++9+~gm+juCkC<%vkhvHxMSEXiUyNgzy$hbl zSk*(m3-EN@cfAX5{CI$mk4_}NHhIAol%WR}F+oJ8PY=gnjE5TwfT~;IB9*$H4Xd5T zjB(5|IqTW5wK}1Ux`q{g=M|BS==%Ys-YcP}0Nz)coM?4T-Pyq6mZg&Cx6^px3r{3h z*h67aUovfcG$_U|2r58Ls_G7$6+1Crh|OHT+ptaShE;P2OZ0b37K`gDHf}?EV>ys- z{mv8|(DS7l%<~j8vo#ILnMUUjL63a#U1?C8p>astOC74%kFR;!2|c0UAKi!NqJ(Y{ zbi9IG$#(=&-4Mxq6mb)qdM$SDGWV%)`4AA9mTF!%WZlKjajs_CNP#9crOu)vb8*ZB z)rrlp!jt)`njldpS$VTtqb7$F{oHW@T}z;0KOK}3`rE3W%k{no#4!+jRL~#@6FHcG z+d~TzO)0s6Zhz7&0od~&Tso@*(B_i|Ec%JTPIf|kx0XoU$u<7O(_6OeYE`+i#$|h` zB68v1@o=Du?)P$(q3_v{?8!+J+aKV=GhuzZ zKtA=h?-!H*bQ_;n{(c%V2VnRZ!CdWygAsXJi-;%e1=WzD?>@6|a|S+w{!9JW1FU9=17UYzH<3H94R) zZPzXJkD?avrv?7Y6>(&+pr-rM!9p4^m9q4OlGF{cI+!0CDmNHSaIVFJt$KE-R^%ef zSXzaXfkZ)Qxb<^*BAwGoXSh(Qof$rpN?Sm*t>(j*=^`7y_C|mnRvgZJ_WRB7FH_YJ z(*?%G%-SGlpuHupM5^L5MPrKB==AGcB#+GEsHEL!%3rNW(R?!L6Tw4aAE1|nMyrt& zESV{VteK16qY#}|Jh1K1+k*2=0A>=Zvg?!m$pN1OU2PQKF1r7Y?tpJNEZy7d=}>-3 z)fXF9D#(R$kO4MGtn?~}nObCWNn1ZVg`sd+t?$=`J;{UJD(BoTL`6d|wT@$kJ=qh> zNHM5XfZ4tyy3XX}P{m2WtqpsrNbsj1`FyMNA-v+~S@`^Xc?#f|NwUibFk{~la6>a1 zR1adV2~LLH&wA>4+6V4ryoW{&lW1b!EK0)x`BAhHRwlgH?_d;e{K!+~`X!ug?#M_V zzAK3iQu!HNI~7pyH?ZA;(080rA;dbp(?UUkCova8r||8#rGyJ8xf8I6aSxF;UQ$L%$cv5&nVDk=lb~ODpPNppE769e0*_ZvirTPk8CC#f2NlC z74iQvZz>1{^nE|ASSZ^Lcpd`Mz*FcSqa#-P@gcsjs2p?1o=02aO+stOP@FXck zkw|1zSu>%FNyKF0D_CY$m|~h64BkQ1v&`&96Wo8(Iy zBO*Mjaq$6uZ=voqTFo>Z)kzAbA&9O_Q`y>#Sv~palxr*4G9&JAQ_lCzKU~6^X9<|* zw;$$vGB>FOgJ-6|?}^Hd0Y75?=7+=Y-0b-&+m3-W+Ts-kH`X7+_FxqQ{>g6|Eh@w$ zZ01Wyin{*@B?cMgHG{#VBPnU5^FMJRFPors^KDa=s9(QPaj428ARqnoh;K zx*H@nfG7bD#Oy}l4~gScH2b0niJ-NLbQQE?J3Rqt0tTxdAp?yYBqsr&}*{B8N|sAvqj@Y-L% zV*V40{XJ{6>Kt_Uu+oDVj{$N%OBdbs$OKe`3KdLqV+j`oD}sZ3c5&D7+b;r()F~-p}&@aZ}9F5n;`B;SYr<^ft`LTMo6QOIytb){i2sfgQ; zku5qfzcZ?O?>(z3jh9X?-i^#J=R2xq1Thj=Jg5_7+zT*(4Z|K#dywxR?M8xxYsmK` z;;EWk^O04(emZA)!@7T;vm|gVfl`id7y*q0F}xRfAiST2cwo+3XmLbxTO^2h(M zRo4;*H3joqL?Q74Exi$Ya*5V@0m>oo3SxZqk*L%b#Nte(VjN|YXEK*cfNdc{bfx~C z06aY{ng^;F@unMcy19bw@8~JeJ4qdpF%Xy#UhzgPTKh6jE+@b|8Fn=%a9%}fDEq2^ z%CJ5XFKyqnXVB(aVNa=@#XhNwZ(fiC?fJi5dQ0d6P_2X)9fD;k%iE}_i!PWzG0E*5 zF%3#tpU`>|xwtE^OHQ5NqX|u#I7Ltd7-!As^qr70+dhMldLH7y?kkeb!uniFg%$)- zp#TyP>XY8mSB`v&zYf_mKe8X4zRfCNDRohQu|Q;Eo&-ZS)XsvyB(-nL!G#ex>`B`{ z@VQ%KIF?}G8A?PnFet^<5Ma7*1MqSd=f}o+lIOQ2uZ+b{@=^+7cM*>?!7U>8Q6|l{FU~`G&@_`N|mS!K+G`Q@#*hL(6g}67fRALb@r=S zdC+<-gw=_9nbko`RkW;=uMv>ai4(D%e#L>C`kFYy`7GZC8B>nztq#=hajRu(x2u0~ zW^>CZGKjaN7f@@TEP&H{z%z+Su%vQIAfi1jP^~uxv%__Culk+lo;`tKjW< zNWaXPd~R1)ljEKcx!N3ngde~W(Chw*LTf|L%3=c$nUwLc?2}5%pPnq~#$q;VaTbfzi4x2gF#6dSq}AbCOf>(zpvEa5-NX?>EYEQ$(2>b&8-3R(K#wvx}LGbBqs zpGHPb6N~hxQ&hJ9m->?8&)s0TfpL;#Z>~1~0m6b9V)FShbai?kne*m#+o%D$IFrbH zAPaqpe7TH%qlfaSUP{(*`#pF_cOYeH@lCI6TY`>%Q3L!1*Ntbw^D){qTPf%KtoL zLB`PAiRC4QWav0SC(BE6(?~E&4vT)kG%F@Hh3%%x7lk{e3bc|WwXh(65)+ylp07Eb z!@5?^aou}d3wNo;BqK9e3d71bcMGa&AD=^)0wPBc%g)KaMULuYMT=oR!pf3p28*?Y z>m9JHiZ6c(9j!M|)Bi#{IZXd9Gd#Kc+)6l2+doK{*>q3S9M5$#f2jZuCT3?hgCtRv zAvdU_Nty`#(R!-%UJe~_omXojl$;^cJcMs)V9X`UwaqrU>e z9N{PTV=^rNxBHm};|2Q9z6QD#WW_?Er_q4LM~*>gN5aBk%I-*KVi_&A_3B*f+OrG? z(_7X%_cIsfCuOaos}F2Cws)FM#O+?3)2p-PGUd!`wWYKma^e!hm!$)DZ2+C)51jw$ z^}RsyDE5hDc4uCAUbsv@<+3|^BK6LEL-)_Hc5?y)5e0DW6|!PSD6KU@JRV{g144}` z4g3RZa74OTg^Rd7Q->8Qg@GJ&Z9(avYk0fnJ)z zyV+Es()i9chAYT^EGX3I@@0^QRSyHRdIDJ7ak&RT-{ml6jg5fK;C>3wC59#c-i&&1 zs26Ip_HH8LnB?=~=QsVMk<*9L2!udKV5@Z;VP}A6iDbQSM&hBBQi4>m?9YB2^BRrn z$X_E;BqQvedR>gms*JPHRv9N6D~rGq5kB!Yvdt;r86QZICI9%4XcoT&C|z3kPgzz- z1ck#9F*j7yMFt_(=Z&&+UtC(Kl6l#j=0&ZFBr|hggwOVn`;=uhC{vU%Ynn>R zyzo}8(W>QsJc~%b#uqi50+#BHLdp#o4_htq8eI_8wrRni1m!rpz zxcTeRZ0L;A>z_f-*dsScEkb@#bvXh+}r|mA|`0Afj`(rPdi>EV5jC6}msHZPPy>W><|ODCFGFio$&2IR{te4ZVSXknH5x7KaZa{mJ{+u-91hY&UiG zZfaBjhW8XT?cj4f|I;;)0fN6f)GLXID6-bzSjQx$?r3I9HTj;6T$&OUIwUVM&g>lH zvc#(&HE&negDEfs&K%-$3RFj{DetLbw?AsPuUQ=sOo$uyJZ&;^%E=$=1f-PQ7&0&& zFrZx?aw9cV=E`TZW?1|=cGowBf$*w0i^2@~*LRtM=ltO|;(?Zp>_#G_F(Vl-YP7Fw zY6OWP5|nU8sTsG;=H{?qO+MhTCQ_P1|FuSjyYNE?k8(^^)B6OwxnCKpj1ZZ+^WYTE z5u|W&ul2^ z^N8PD{PY#k*iZ=1^4S?%t30|T#r@!#&6S$JT89L^WW*%a-Nv(wIqZz(a}0jQ)2j&` zd{{loTEG&r^@^4*t}7@u(jo19$sB)5%2DLd{1E+&%)Sa(AJin8sXwmS(@#7<6=c~j zRSpZXxb&JeO@?gpNoL|jN7p6xjJaELjWBOl($DcCbL4(1t+?5!RU-p7 z<4F#QOVs?&DNO(fOo)Ko@JNkXE6t@FwQVT||6C6x_Cd*5%nr_5Xwnk(;uAEvka#?5 zvt;IYyqeB0^1MkCcJ^)3jGx1lEiNbn=QoZlljT^z3H`qTT4Inc9vd z`J@O8F_D>}xf>QUMOnr=frqkzK|x7- z<8qP=95lm|$2aas_%Dwi=L>qabe?Qa4qL&T_rvhMo+C#xRte#QbWk94ej`76D}fo* zrN_PV%xgqkGVOh2D+SQtzH#8*bmby^L<)7UsVydR@H|PpcF4{7H!J{Wjsh;)yb=fc z-xrMwbQdggaC5r6!rXefd5=W|%gc;GYa-*|V8k5_>S@$8>M9UGc976Il;w7C!`ASY zr9(_XA{NrI8Yd{(H9Iue(8ahLJY^8bSJ9xdjmxLWgiRZH6v~d`dU|T7P5UmbG;K&@ z>L|SgL!MQW=}%(xir#>EUjVK%1oZjc-?zX-zT^D4&up%qsSKhD$g)tX==oq!!0fv* zQ+TAr;4zoTlcF!@T)MMg$0Q?zl*;KpEUhve-|)X|n$OSHybnupzES__(kL-;>7k7c zq&-hxkWu>y=})%+o~3|xsUfwocs8dfMrN32&-(FIw&BpPgU@@Np^46r90pPn?ePI? z>?8v5pf6g|*L;~X$DrL$w7M)LY}qJ1bSi$@7Q09#Z@}qKoHf(Djy~rYS1{7B$+!Bs78Gu! zi)l*Nb4}Xw_Ek?Z?f6=vophAdzR?D<-#NI^TWEq63FP0=lsuvs(|R@OyxBSTYv{UW zqA8hWcI!@RwFzhxo>1Ufw8&JQ(BoNQTe2ZN=lj!;RlNly9QQESBtk)PY4m<*lW6E& zFmO>SruH!?vUa?W0}X|5Sp-GAHqs0-KDQioIzJ>P7a;jOsw9*-!7T7LLnvQJhA1)8 zO9I1p>3U)}ouDYgn}?0-NHTfE^S>S2+e%JYt@IYdZH(W$=`ggr<`jses z&;_rg>W*j;uC_EL{0@3FhB#JE-n*MMq!@)v;nS+RnAcCmPq3^YSG*1i8mT2c?WHMW zx6F3v4x*MypTg1sxva&-(Dxg41`Sr70F~Es1{gamNGqOw_YI{h#gt z;`SIIz)W3u`NQcg>8BSKAI^$HxNYC|iru{+X*^weVA*b1@fc|vSi0HqVQt-MCcH?L zVEui+JH{xFHaHaJxAd!t2Y`Otv>Y*x@0D`molVIGsSjsBnbzkdQSpj-E1Z@%rx;GX z1bUL2suNBR`JJm=xKDxHr$Y>xDf+aYmNxdtb#cpT$L@sUp0jIR1bmh+Z+F`>fp=~x z1bV>Q!^gybh(3Wt@KWJeP+)o#}|2Jo>3Ies=MeZ+N)h{y@ z>RdP18SKHOpb6c)ZPQu*vOllnz8@H?f$uF_pkU{aczBcZ)+`V}Pq8fRCn z4AD%9({a+pIkVHeFU2lecrT}q)_42((BLuKpjKMrAU)COncqE-sm`*nt+|2Sx2-Zi zdEeGNMj#Ohr0bZD%E_$wj3~ZFTRvabt0ZtR(ct{uwc7!qc-qi;6S}RF)HNI*YP6L8 zqs4}H;rr>g4~4%FJTrUA2pKm<4G{U8%Z-cSrcwpE0}2$*@ZK|43@7plthBPhQ*veW z?U>G~zc^*+UVurP&dGIkVvJsTR|t3LZFm#Z&{`Q>3!dfi!+hM&e2lngX+5--YrI$c z0uHuIY9#QG7TIzWc?{8M(J^Vr{QS^!_t5ZgHJ%(zVY?@VBJj`InMOb{XFWDUJ?k_f7mf zeLa~BX7fBQD#>eivp&h*v}S_j=#9{G={vz#;`YILUuje{5;m{BixKwg)BoV;p}SJ> z$v{wfe@b^Q%Gavy)|x7c$c)Z&IG(Z|LFY}Y?X#CUg$G*^QuEe#}O;9LTx z&jYucwnyz#%3(Nj7l7J`Vopa{s(&DX)_g@2BYIBod&aD43Ugict5)YqB5cOujV7}P z-f;PQOG-1r)06?3^{aCi(qfj3(PTwI^PJ#bIF~X>fX9w&*VUSd+Y_l2?QYQS+kTwf zzR?~jeW&uK`Oa*BW35*I>vw?i(B`34qG(s$Kf>V)kDb+s0jrXXY$=}-=~u?-Na(80Z* z+ascnvOYLQ43O}gdv$2>p_Aq!o+GP)@_s>S({bRG8IJNC&#nng#QHlneZj&nor%YH@CU3HS@F` z+O#*Jif-vQvECCtQb%EWKFklfltu7eNdLHexG_*f6FQx{r?PRV^*(%D*=l3GpH1`W zrb};rn3`~*sa!Co(ES|*&7wjZh+Ibf+DJBtE=P9#=7F_gFefd&13PAr!_rUcFDc~_ zf6vw;ug;km)U$+Vv**xiF6eIDTcWy;SJ+0ZH&T^_$)$WX|9;3$Dlz8M{D%O$hJ!&| zgHI2c90n=N=X#e4l})RYwnno&DIHtih1u_S9`9KSLdx~}Ai#DoOW|I;YTOR zeuXrE{!ZknMeMQACUZjpM1c5NRZ(h(9{J1u zylmsn{apHwL2o(o6koNL>La%}R8oXI z@5bAQuPvgX0XO7+{aN9QU^Z?Xwm-Xt9W(~eGGA}*NnCAkUp397qM@;OC`9}AkosZ&vv3G z>glo?ATUiyDLA?7Kl0DE1?zr7{+x*)o;)b5J}4KspeKME|6PdlCPG|jtpjom^1eLv z;q^NE)-IS3M3UN=UCQKVqHZTAgq720uVO=IoIG6jXh>zf?V0{(s8sLkTZ})V@9uqb zr6Gdt*lpjyLTrfVAz~Ile8E?&1~%Ob?-J)CG>349xDCxBPbChGMd_um8g)JBHajbG zph)*v`hWiQ-f^z4ovWw0DR5{%rk{3teWGS&)4+Qb?UF!tksN*0Ydz#%C@rMMR|1>I z`5OkW_a)L}->R-qjeeZ3w=k*aNj5_-`fqsnDU?G7$$z*a-M54E<=S4!QP3L9SuvW4 za_?UhCHwW7hpB-(7dqXXRZJ~h?wjJ$r&7%u^rtkUM&&-33n-SX{zmt2vT(KV!EP~u#$Jf$u_-iLTXB+2wDA~xfLBTJ6NbDwwfct~NwC?>GM_j`0qF9)2>Ay0MA#+}xW3u;)kE z%@a{v(17xq=sU!wL?H3`Alu*X&rCg=m)bzeJLCjdYrR=DPx<97) zZ5@CF;N_1y1{Rct%Tt~E*(s&Cv0!~5sgHjqi(7RedC?lzB~VO}S4ovO(%v?;!&#o~ zNUz_9#lJ(0uN`zqa2$QksCBKMi~X@C8lu_zjWdOzx&e}w8*{lLFyzL+=Tp}wBHvwG2Cj?R_CR65e87utC_-6F>U;lcn0_b=t_C=8xj&-L6zrOG{AJCUILj$;?O zTXHGJeBV<|rvC#207%f-?{@FuZW~-hIEm zXqqC;kbQde0F4g+0wLR!G3TVD-U8{gaaRKUMy}`wUMVq@l*l~d!Nf&836vRMH>L_UKHKgo8u`NTpNItME5ejZ};F|6C`v-Id z`-)-n#-EpgaQB@MqOliz4KfjrFX9^?s2ijyH8I#(iUmjMOsS zMOqAl#%rWJw3MLOAs2}r)bhQE{6(x?1dU0&ywvQDhvpIckwy_iIHLQZ>n*g#wYua5 z8Ha#mE&W@x3vK%JrlZBWy!hW*L{Ak38l}r?I)p2)cIzb)k|;NUv+)sLoZKPu%ru=? zly$QVX8V*TvukFws53~PL|IrAsaByha|Sag*8aK)`}+}wBIny1SyMXl+{)_9;PBgn zlVr%Plxr5k-XgD3I+hN$pWWPd6x2WWSoFs{{I;+G&#k44oIz%Z_65NpOIoz$RI=!3 z5GtRv-5Hf=Brs)yn4F4!J55QgZd&!C>YceFSIydFrcm=*aClVx^{~d2C6hiwm&Aup z1`A)tm!;nV-LcC?Hm`n49W2gbT*dwGOy>J<^!62gb($>!CSVSNV`9IRc( zE?Nsl>Kol$NCbKAlw3;orpD6FZMtyPvmWH=*`_#H?4bkj_;{)DHN}TMd6JP|+ZeOm z8n1x#b!mm>&EL|{)|^mY5;8=V60D>94+qjSsEl2314K^M?Gf)G)tx&>8F*UU))GtE zpI!B?CQWiKYqV|eE!YB@T&>m2z7Z(1d?)ud6`v{;as=77A5TZ=oJxfgKE;E*e)9z| z8Nzk%+lv;uGp+t~9?T$T6H-Fr$zBtZrGnB)n}=u}FI6$!7b$$rx>2TK5tSsmfoZ2*Iz2pCdS3){JQpn zN%=JIjJ5k)j**A9b4^Na@}3Zk>s)T(Fy#x^y|TsJU&JubX|&8Xd5sP;!)`=DnOhLO z+r=?2bmFfW_Yy`$jp=_iA=n$cUe8@$d>Cu z#h3NYK3>Qv8^NNz}(i6>t{yZ2U_Et#S|U zAn{<1&Np*|-Dz6cLdXZkTfHQ-<;;?mAKh=u(_B{C9M*#CaWj@Xcq%InW{f!)R$7eO zi_%_&ssCAx`Y`|!kFdb-qnRwSy)sj47d|QcjGlo*t4OFR67%&Zx)Y3vbnIdstQ-9b zN_~y^_iX(agM5SVr}oq9tg;OF(qlU;;rJV*Dwk7BwP`zEOb>W4E1tVLJUf=$uNSY1 zTfCifpV{mh1H6!En^xzFzu;g7@+w-C$wqAjdOyR9?~&B(YSQ~DW63*Bo2T$}l-O@< zf-J2wi!@yZKdqlx)l%9PUnz@AO@)0)(RP$lpQCd%4hMG$nKdCpMY zzOqJ0V|yes;O!Gw8n)7HBURd@Qu2pRpr|1>$Qe^aM1|WPARITtXSwgE9%W!o8!R4! zyjT^&AieiIB{I7*Ff zu$ztcvuaMEO#kxkGLn$WR?vRyUhreJSo>mH{jf#AXcg9mi~tT zyA&jcO0%0cbIwb%MUe3=4t*i=1)XPIsudQ8RLh53A@``S-eKk3`iCNO32s@|k&VYc z^bXBtdM$kpFZA>lA_406gV$EvpXq|14b9PKp0=7_&zrL^3;D_tQCW9j*IxL{m6CQ! zgu?(sJ&7bXN7bWvYo)~nq=xt~nMy2sUbbpQ>XsL{zCY6pqYx&td}Dzm7m%tc0XTHy zD5r&GsfGny#l?|Z?h9C}DCH-9?m}og)(X7C`a#-Z%5uBdg4XnvXVtN)ko%=4k9QO! z_;)t?3_4BfM@HdchQ7}_lR|AQvy#7Pd0n92*uk1FQ9vwsz#oL*RI8|tuk(#SpWHaD z)I1bloo2v_h#Spj$)WP4{IBEOwYWNyR;DqQ>S~GJ&>CwAHJv$ceze8wgQ&)^<&o3| z@;5mXw<|a6A>PFy%(n2|mG`48#Qg9$Rp~%ZHLw0B>k?S2y^xOlU$_9>(p3VWUSAxy z+?2Xfxdh0h12!0tx}aMWRnA@7Mw8nZ9?KKuyr z3F=cuJ>@Y(b825%4(e>-xp=mNNN((YGg+$&NAx-Pic~!IoCXeo{J5Oh?(fyB0j>_fM~$?e@1?l>_Z#0$~(m8o{`-+>L@Q zV2nL zbeJWDFd%HV9Y1%C@zI3-503CPBBCw8AdpgAl;vRcIHB~>=_3yy84AMinSS(CV z!(-wDhHaa6#1TC0_Y<9^@$Z^bVd4uobhNx03*!%nuip#{WzUCZVelS^c&*IO)Bv(V z2AH|h%4ZnL(YY^0V+x6q5Z!8JhBZok$RF=6AI}#1|3F@Tq+nJNzHd(!VQbw|I8686 z8-DEP0xdlb>e`6K+SsB+^l9<91bqIq_D!CpDr?rkD8^4$P2^OtNkhqun3bH$GAQcqI03UDK>(ZUt|SI`CI<*8 z&`VZa^=WfahIV&E>m;anzTqb(Oh`<8cFBnw7N#+dLf1WKoPp#U)BUd&z|x$QDIbR& zUbJ4~WaB2m2W@4&EkphJsodkoql-g>ovy}fP%T6(22<$6h1>+vinqfCl73Sox$?T# z$|$V3;5JHfvZ0%sriPchEVMD)k*)(hJ&)*3kr zca0e{Q8!L3US1vmcxP~osE1osJBb^7rGi>rTM9phwkjGEC=*L7-TNM9qaZdLl05#7 zyuKG__w(0%$Vm)$Wro=}cFmRScxl2_eS&$T{1&eD)~V0QCTWvAs3KQX^fKm&TYl97 z*M7IA%5X1tf_Zos;DhlfCm_n+{7lI8MBno`;&a_t%DOu`uhZ(@|A+FX9rs>T$s1iO zRs931Jz{4pXy)|9j|x6Xe5vA>h=M+LsrHhav*s*W7q`!K~ z9WoV-qEFT=v*8{o;&u`D%S7>heuF_VeP8cKADiU2&(V2MKXTUn6Mc4UV%R&Z zFVNW{yXnp=XRn5k+;iN1FztikWcw-@Ze@aiS%H%nQw(^aT+jnOT1(g3`phw>%U!PhaeCB|#L_|;`XO#9VO z=gm8ckzvh{!aaElGg+T?>26?P(#5<+bp>j+_$k|ABP3Jqmx6T zm9`Io2`{~E_UK;-{cL>XU(%nlEVM^fp6TOvM=f~=RQ&^z`mMkGG5A(~vC(j?H^+jt zWeD>EH5#`7?S4N~fz;9nXG;u&oBgYR!nJ*F%g*GQB{WCE zuzYzm;l2=&xlC9thIZ*}$}5=WMMzpvHu2-l8mUySf|@&xHD zbF|HS+&=F|v&crsx(4j;ek9%`P}>Ko!^Ke^Rk~;($sxs z{mNMfpbN5l&mKzHciiA-^;?)q0O9I8ichx1^7u@Kmn!lQSsD@)9p3B{UdivZR+<@} zK}3gfrAjq-`AHikN;|HMN(VI3xtJH5_v!HF@ORr>9ruZb7B>Fkftm4oiO2&?yKHmt`VAYI=_(S@ef7Umr`)TQN^zQzVISHd(zvTV_q(hp;< z4j=A*wVzZ*3q20VZMwmbtNAOT_8O158BvfB(-oSdw03?>NNysRpPhZ)yySsnVDPMYQlju2ScOCM@Jx}m}q(Z*a4K+mscN|GR8Q;yh=dx1zdQ%aWbX-!N%!?$;DD{ z%)%Ccb?lwq$+mA@Ia)P+JS^Bf-xp~hy5f1(dLhu}#P4!nTFEKo{X5R~qkK))#`H2K zf0n#XT$&EI+$A?7RWOST|9)G5o_Q`hy02i1`3tMiae3iBOdgB;mO)c&3zfD#E*-3D zDb4Cvxwl?i=Ap`;70q)};Ym=ORFjHtTwYZ|?8XGmGAAw+QVaLn3lCd2NN(+RbVB%@ z$*Tx}_by$PRflJMYAL`1X4n0%rL^CJ-+K^OE{2XU4(^3mb&1W6GAS7LC%c<#r>N>x z6}TD(_MjN4s`HrJ5ME{0&UM@gAGz+`@(cPDiY!Crq}I1kx)l^vTv$fdmxv+xxq$KN znp}qZi2m58r=QUxQ2W#Nt7P3!?S{BCy7m3LESdA}c0oiWM$`y!H;qgLhcPr^hy$Ur zE=fnDxv$eFvk1Q=pe$9(=@|sdrig5Yp7-ZDgy9kFYGQF)F0BHc9aB$z+CnDgeFkogcLmcCanw@hx|JYUq+?MbLKen(z~3O!S4g7IGvDOr^QNc^Mb7h^gY z41y9SA9@sSMh$mU4Jx6BIGkPDf^Imi(!85uj-p-vKv$dX7=OXH@D?>5P*kRRga+fa z-ZF-Co|6gJdG}+={=sN_d3=j+K3_=E2`S<^9(f?#7+1Q+XVn4J9Pk)yFh?kN<hA5!fCJ1c5{D1Kc7@#nr&J<_ZFo2PciZaC=bs@|cDOnCDc>voJ zH;*+t1M5^`j{Uoik6>QerYk~^Hp|3As(_ob``3ZPL{rzXuE9Qfp~=@aGr=GDhsx`m zM1Qct*BbolN=fJY18#isZ$vuK=!bsH8#5w~Uc_y;=MNC*r2jJnedGjh=T;dH6{mu$I?Ur+%KX&hjK35+XXl6zOvPHNi8!muuPk0 zJwr2u%Kys3S)>#OhrupBR5W`cb&Wxos^PTx zh04@|KADEG=!GBLi?p9O$CUDg7UAF#c&^oz+Cmr7 zv`GIF>EBq&@xBZwDrmZzvGqTQapA?kz%x6=ky*Qv1c6C=ZBgg$NBmc;80KIiuvm2a zW7FfDx+$=*SL>4sG)#qXMS2@UqZ0~>kbAQiBop;cLX?_++x`EtY9D87q096OEDz{MNl&+lQ zXBA=iZsMAh4#)1_0R>nyUc;<}fIlh%z|S8b=YT`#t`mWKhxHyjbbgr<#9xihbjwZX zYhp<@@p-`?A>|cOX?St>$PoE+V^mxrwZUKvu{*q5BZQg?nsHbLJ$NEv;PiGq;#d9M zT>PUE!#-ck-?tRTHIa(tCndG_(m6@wQ4>jy%t#`WutM!o`Zb;7nnU71GW_aLG^t7vluR&vhrKOO-H0irSD)(eBgPB+4+C;cL85g zwFJsTZv05b)p5gTyCzPLi25!xLrhhEnl|5Pv%ybg!3e^~T>cdX$nM2D?{+k%E@)qs z8gZ1!W6QLx?G&{|P-_)iV@m)o=7~E)W3%}?V0qe=dVf*RFS&X)2+vh;OebGuRv(_I zC5~x+H28>zD3u=&*21HO>fy5)z?0Au;2*@Z_0dmk5e|G0r+3>*-0TE2 z2;MwV6MBYC|Jv#fZZJG~b_FL)$R}2^I5E=e$%|ZW`Nl@p#+%pSUuhk_2Em7+Yf&zg zOfZycI0nMJv)mXci^nk4;ni*HPi50W8+A!4E#pwmi>w7}vH{D3{k-7sNkRZWM3<7a zj{JhF(J{7DOcu&=4^vw_T@K5FBB-i~VR?ky2bXuq%s4OtNo%}MHri2P?? zjRTX*F-Q_~KCVOtldF1J)8PI_QWg}&UD<;GZ3PS{gHVsk|EX*V^bU|hg(2wu7(Gu` z0WZbkid$OnuH--|tfxuwK9Z#Pve0YG=e> zh}lev7=#h}MySaUU2}!TS>r z1L|c6_;a$(_Atiy_-@=G5xCjC}B~&pU z;bYQU7F`DgjvF1Rv@=_AbTd-{j0&fWkQlZza-fqDh>@~n75=jEhPw#BB%~72F?eF~ z?to9FMA&%ZlA(wj5%p1Js-2RiT4GaY&6{V_igU?VO6SA+UUkBedW5H`fP8hN9<^?x zuL{(g5(FkLY$njOD9}`k68q`z$)vNw&~yy5L8ZyLSm>$RO0ISa)Z04}@aP0vui+7p z9$qD|w;cTFl$gH!k4Gx#3mWk^Sys=Mm78DXEcU0LzSuLt2WPN1RC?F7n*WS8i7Eal#|(!FdLssGKDOF_%gcy@ zl9qoCrep%F#W$cBYFrc*-|dSB?~N@%PHq;W8(p!#M _@8Q$!bZOegp2=;hTb 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 From e624ea766d35097f7d8b82974b1b1adb588c7411 Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Thu, 10 Jul 2025 14:45:41 +0100 Subject: [PATCH 17/38] Code review comments --- .../androidify/creation/CreationScreen.kt | 16 +++++++++------- .../androidify/customize/CustomizeState.kt | 10 +++++----- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/feature/creation/src/main/java/com/android/developers/androidify/creation/CreationScreen.kt b/feature/creation/src/main/java/com/android/developers/androidify/creation/CreationScreen.kt index a4362e88..84bbf4f3 100644 --- a/feature/creation/src/main/java/com/android/developers/androidify/creation/CreationScreen.kt +++ b/feature/creation/src/main/java/com/android/developers/androidify/creation/CreationScreen.kt @@ -241,13 +241,15 @@ fun CreationScreen( } else { prompt } - CustomizeAndExportScreen( - resultImage = uiState.resultBitmap!!, - originalImageUri = uiState.imageUri, - onBackPress = onBackPressed, - onInfoPress = onAboutPressed, - viewModel = hiltViewModel(key = key), - ) + uiState.resultBitmap?.let { bitmap -> + CustomizeAndExportScreen( + resultImage = bitmap, + originalImageUri = uiState.imageUri, + onBackPress = onBackPressed, + onInfoPress = onAboutPressed, + viewModel = hiltViewModel(key = key), + ) + } } } } diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt index 9abaa995..395f2f90 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt @@ -56,10 +56,10 @@ data class BackgroundToolState( data class ExportImageCanvas( val imageBitmap: Bitmap? = null, - var aspectRatioOption: SizeOption = SizeOption.Square, - var canvasSize: Size = Size(1000f, 1000f), - var mainImageUri: Uri? = null, - var imageOriginalBitmapSize: Size? = Size(1024f, 1024f), - var selectedBackgroundOption: BackgroundOption = BackgroundOption.None, + val aspectRatioOption: SizeOption = SizeOption.Square, + val canvasSize: Size = Size(1000f, 1000f), + val mainImageUri: Uri? = null, + val imageOriginalBitmapSize: Size? = Size(1024f, 1024f), + val selectedBackgroundOption: BackgroundOption = BackgroundOption.None, val includeWatermark: Boolean = true ) \ No newline at end of file From a188f346d00fb182b846975d1ba941e6e913c8ed Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Thu, 10 Jul 2025 14:51:45 +0100 Subject: [PATCH 18/38] Code review comments --- .../developers/androidify/customize/CustomizeExportScreen.kt | 1 + .../androidify/customize/CustomizeExportViewModel.kt | 5 +++++ .../android/developers/androidify/customize/CustomizeTool.kt | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt index bdfa8220..c39950c4 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt @@ -108,6 +108,7 @@ fun CustomizeAndExportScreen( val savedImageUri = state.value.savedUri if (savedImageUri != null) { shareImage(context, savedImageUri) + viewModel.onSavedUriConsumed() } } CustomizeExportContents( diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt index 7171998a..3ee6ad0b 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt @@ -70,6 +70,11 @@ class CustomizeExportViewModel @Inject constructor( } } } + fun onSavedUriConsumed() { + _state.update { + it.copy(savedUri = null) + } + } fun selectedToolStateChanged(toolState: ToolState) { _state.update { it.copy( diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeTool.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeTool.kt index d24d3bcc..9dbcdb8f 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeTool.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeTool.kt @@ -35,7 +35,7 @@ sealed class SizeOption( object Square : SizeOption(1f, "1:1", "square") object Banner : SizeOption(4f, "Banner", "banner") - object Wallpaper : SizeOption(9 / 16f, "Wallpaper", "wallpaper") + /*object Wallpaper : SizeOption(9 / 16f, "Wallpaper", "wallpaper")*/ // todo add custom ratio option to the UI /*object Custom : SizeOption(3 / 2f, "Custom", "custom")*/ } From 1b8f2180d56f899fc97c5c28e0ee5e5e24859e83 Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Thu, 10 Jul 2025 15:31:20 +0100 Subject: [PATCH 19/38] Build fixes --- .../androidify/customize/AspectRatioTool.kt | 1 - .../androidify/customize/CustomizeState.kt | 1 - .../androidify/customize/ImageRenderer.kt | 5 - .../results/ResultsScreenScreenshotTest.kt | 9 +- .../customize/CustomizeViewModelTest.kt | 120 ++++++++++++++++++ .../results/ResultsViewModelTest.kt | 44 +------ 6 files changed, 124 insertions(+), 56 deletions(-) create mode 100644 feature/results/src/test/kotlin/com/android/developers/androidify/customize/CustomizeViewModelTest.kt diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/AspectRatioTool.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/AspectRatioTool.kt index e2d9c00c..efe506bd 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/AspectRatioTool.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/AspectRatioTool.kt @@ -84,7 +84,6 @@ private fun AspectRatioToolPreview() { sizeOptions = listOf( SizeOption.Square, SizeOption.Banner, - SizeOption.Wallpaper, ), selectedOption = SizeOption.Square, onSizeOptionSelected = {}, diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt index 395f2f90..1be9c55c 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt @@ -41,7 +41,6 @@ data class AspectRatioToolState( override val options: List = listOf( SizeOption.Square, SizeOption.Banner, - SizeOption.Wallpaper, ), ) : ToolState diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt index 25bcd7df..99ddf2b2 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt @@ -135,13 +135,8 @@ fun BackgroundLayout( whiteBoxHeightFraction = 0.55f rotation = 0f } - - SizeOption.Wallpaper -> { - - } } - Box( modifier = Modifier .fillMaxSize() diff --git a/feature/results/src/screenshotTest/java/com/android/developers/androidify/results/ResultsScreenScreenshotTest.kt b/feature/results/src/screenshotTest/java/com/android/developers/androidify/results/ResultsScreenScreenshotTest.kt index ddf58b25..27b13bf4 100644 --- a/feature/results/src/screenshotTest/java/com/android/developers/androidify/results/ResultsScreenScreenshotTest.kt +++ b/feature/results/src/screenshotTest/java/com/android/developers/androidify/results/ResultsScreenScreenshotTest.kt @@ -54,8 +54,7 @@ class ResultsScreenScreenshotTest { contentPadding = PaddingValues(0.dp), state = state, verboseLayout = true, // Replicates ResultsScreenPreview - downloadClicked = {}, - shareClicked = {}, + onCustomizeShareClicked = {} ) } } @@ -80,8 +79,7 @@ class ResultsScreenScreenshotTest { contentPadding = PaddingValues(0.dp), state = state, verboseLayout = false, // Replicates ResultsScreenPreviewSmall - downloadClicked = {}, - shareClicked = {}, + onCustomizeShareClicked = {} ) } } @@ -105,8 +103,7 @@ class ResultsScreenScreenshotTest { contentPadding = PaddingValues(0.dp), state = state, verboseLayout = true, - downloadClicked = {}, - shareClicked = {}, + onCustomizeShareClicked = {}, defaultSelectedResult = ResultOption.OriginalInput, // Set the non-default option ) } diff --git a/feature/results/src/test/kotlin/com/android/developers/androidify/customize/CustomizeViewModelTest.kt b/feature/results/src/test/kotlin/com/android/developers/androidify/customize/CustomizeViewModelTest.kt new file mode 100644 index 00000000..d3e4f4bb --- /dev/null +++ b/feature/results/src/test/kotlin/com/android/developers/androidify/customize/CustomizeViewModelTest.kt @@ -0,0 +1,120 @@ +@file:OptIn(ExperimentalCoroutinesApi::class) + +package com.android.developers.androidify.customize + +import android.graphics.Bitmap +import android.net.Uri +import androidx.test.core.app.ApplicationProvider +import com.android.developers.testing.repository.FakeImageGenerationRepository +import com.android.developers.testing.util.MainDispatcherRule +import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.launch +import kotlinx.coroutines.test.UnconfinedTestDispatcher +import kotlinx.coroutines.test.advanceUntilIdle +import kotlinx.coroutines.test.runTest +import org.junit.Assert.assertEquals +import org.junit.Assert.assertNotNull +import org.junit.Before +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith +import org.robolectric.RobolectricTestRunner + +@RunWith(RobolectricTestRunner::class) +class CustomizeViewModelTest { + @get:Rule + val mainDispatcherRule = MainDispatcherRule() + + private lateinit var viewModel: CustomizeExportViewModel + + private val fakeBitmap = Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888) + private val originalFakeUri = Uri.parse("content://com.example.app/images/original.jpg") + + @Before + fun setup() { + viewModel = CustomizeExportViewModel( + FakeImageGenerationRepository(), + application = ApplicationProvider.getApplicationContext(), + ) + } + + @Test + fun stateInitialEmpty() = runTest { + assertEquals( + CustomizeExportState(), + viewModel.state.value, + ) + } + + @Test + fun setArgumentsWithOriginalImage() = runTest { + viewModel.setArguments( + fakeBitmap, + originalFakeUri, + ) + assertEquals( + CustomizeExportState( + exportImageCanvas = ExportImageCanvas(imageBitmap = fakeBitmap), + originalImageUrl = originalFakeUri, + ), + viewModel.state.value, + ) + } + + @Test + fun setArgumentsWithPrompt() = runTest { + viewModel.setArguments( + fakeBitmap, + null, + ) + assertEquals( + CustomizeExportState( + exportImageCanvas = ExportImageCanvas(imageBitmap = fakeBitmap), + originalImageUrl = null, + ), + viewModel.state.value, + ) + } + + /* @Test + fun downloadClicked() = runTest { + val values = mutableListOf() + backgroundScope.launch(UnconfinedTestDispatcher()) { + viewModel.state.collect { + values.add(it) + } + } + + viewModel.setArguments( + fakeBitmap, + originalFakeUri, + ) + + viewModel.downloadClicked() + assertNotNull(values.last().externalOriginalSavedUri) + assertEquals( + originalFakeUri, + values.last().externalOriginalSavedUri, + ) + } + + @Test + fun shareClicked() = runTest { + val values = mutableListOf() + // Launch collector on the backgroundScope directly to use runTest's scheduler + backgroundScope.launch { + viewModel.state.collect { + values.add(it) + } + } + viewModel.setArguments( + fakeBitmap, + originalFakeUri, + ) + advanceUntilIdle() + viewModel.shareClicked() + // Ensure all coroutines on the test scheduler complete + advanceUntilIdle() + assertNotNull(values.last().savedUri) + }*/ +} diff --git a/feature/results/src/test/kotlin/com/android/developers/androidify/results/ResultsViewModelTest.kt b/feature/results/src/test/kotlin/com/android/developers/androidify/results/ResultsViewModelTest.kt index 87672a47..7a14506e 100644 --- a/feature/results/src/test/kotlin/com/android/developers/androidify/results/ResultsViewModelTest.kt +++ b/feature/results/src/test/kotlin/com/android/developers/androidify/results/ResultsViewModelTest.kt @@ -46,9 +46,7 @@ class ResultsViewModelTest { @Before fun setup() { - viewModel = ResultsViewModel( - FakeImageGenerationRepository(), - ) + viewModel = ResultsViewModel() } @Test @@ -92,44 +90,4 @@ class ResultsViewModelTest { ) } - @Test - fun downloadClicked() = runTest { - val values = mutableListOf() - backgroundScope.launch(UnconfinedTestDispatcher()) { - viewModel.state.collect { - values.add(it) - } - } - - viewModel.setArguments( - fakeBitmap, - originalFakeUri, - promptText = null, - ) - - viewModel.downloadClicked() - assertNotNull(values.last().externalOriginalSavedUri) - assertEquals( - originalFakeUri, - values.last().externalOriginalSavedUri, - ) - } - - @Test - fun shareClicked() = runTest { - val values = mutableListOf() - backgroundScope.launch(UnconfinedTestDispatcher()) { - viewModel.state.collect { - values.add(it) - } - } - viewModel.setArguments( - fakeBitmap, - originalFakeUri, - promptText = null, - ) - - viewModel.shareClicked() - assertNotNull(values.last().savedUri) - } } From 02fb9937fb9c34ad33d5c73dbc0b8614ac895484 Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Thu, 10 Jul 2025 16:00:59 +0100 Subject: [PATCH 20/38] Build fixes --- .../androidify/results/ResultsScreenTest.kt | 49 ++++--------------- 1 file changed, 9 insertions(+), 40 deletions(-) diff --git a/feature/results/src/androidTest/java/com/android/developers/androidify/results/ResultsScreenTest.kt b/feature/results/src/androidTest/java/com/android/developers/androidify/results/ResultsScreenTest.kt index 097a15ce..ac32895b 100644 --- a/feature/results/src/androidTest/java/com/android/developers/androidify/results/ResultsScreenTest.kt +++ b/feature/results/src/androidTest/java/com/android/developers/androidify/results/ResultsScreenTest.kt @@ -30,6 +30,7 @@ import androidx.compose.ui.test.onNodeWithText import androidx.compose.ui.test.performClick import androidx.compose.ui.unit.dp import androidx.test.ext.junit.runners.AndroidJUnit4 +import junit.framework.TestCase.assertTrue import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith @@ -45,7 +46,7 @@ class ResultsScreenTest { @Test fun resultsScreenContents_displaysActionButtons() { - val shareButtonText = composeTestRule.activity.getString(R.string.share_your_bot) + val shareButtonText = composeTestRule.activity.getString(R.string.customize_and_share) // Note: Download button is identified by icon, harder to test reliably without tags/desc val initialState = ResultState(resultImageBitmap = testBitmap, promptText = "test") @@ -202,10 +203,10 @@ class ResultsScreenTest { // Check front card is visible again composeTestRule.onNodeWithContentDescription(frontCardDesc).assertIsDisplayed() } -/* + @Test - fun actionButton_Share_invokesCallback() { - val shareButtonText = composeTestRule.activity.getString(R.string.share_your_bot) + fun actionButton_CustomizeExport_invokesCallback() { + val shareButtonText = composeTestRule.activity.getString(R.string.customize_and_share) var shareClicked = false // Ensure promptText is non-null when bitmap is present @@ -218,47 +219,15 @@ class ResultsScreenTest { ResultsScreenContents( contentPadding = PaddingValues(0.dp), state = state, - downloadClicked = {}, - shareClicked = { shareClicked = true }, // Callback to test + onCustomizeShareClicked = { + shareClicked = true// Callback to test + }, ) } } composeTestRule.onNodeWithText(shareButtonText).performClick() - assertTrue("shareClicked callback should have been invoked", shareClicked) + assertTrue("onCustomizeShareClicked callback should have been invoked", shareClicked) } - - @Test - fun actionButton_Download_invokesCallback() { - val downloadButtonDesc = composeTestRule.activity.getString(R.string.download_bot) // Use the new content description - var downloadClicked = false - - // Ensure promptText is non-null when bitmap is present - val initialState = ResultState(resultImageBitmap = testBitmap, promptText = "test") - val state = mutableStateOf(initialState) - - composeTestRule.setContent { - // Disable animation - CompositionLocalProvider(LocalInspectionMode provides true) { - ResultsScreenContents( - contentPadding = PaddingValues(0.dp), - state = state, - downloadClicked = { downloadClicked = true }, // Callback to test - shareClicked = {}, - ) - } - } - - // Click the download button - using a sibling finder relative to Share is complex. - // A more robust approach needs test tags. - // As a placeholder, we'll just assert the callback wasn't called initially. - // To make this test pass, manual interaction or a better finder is needed. - // Find the node by its content description and click it - // Note: We find the Icon, but click its parent (the Button) - composeTestRule.onNodeWithContentDescription(downloadButtonDesc).performClick() - - // Assert the callback was invoked - assertTrue("downloadClicked callback should have been invoked", downloadClicked) - }*/ } From 15f2177f9f478065ea31cb55dc907563c6bf809d Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Fri, 11 Jul 2025 16:08:40 +0100 Subject: [PATCH 21/38] Redo logic around sizing and positioning of droid on top of content to work more logically and support future use cases where we may add gesture support for moving the droid around. --- .../androidify/customize/AspectRatioTool.kt | 3 + .../androidify/customize/BitmapComposable.kt | 188 --------------- .../customize/CustomizeExportViewModel.kt | 38 ++- .../androidify/customize/CustomizeState.kt | 100 +++++++- .../androidify/customize/CustomizeTool.kt | 12 +- .../androidify/customize/ImageRenderer.kt | 221 ++++++++++------- .../customize/OffscreenBitmapManager.kt | 222 ++++++++++++++++++ .../background_banner_lightspeed.png | Bin 54464 -> 45091 bytes .../background_banner_plain.png | Bin 18642 -> 7075 bytes .../background_banner_shapes.png | Bin 0 -> 12878 bytes .../background_social_header_lightspeed.png | Bin 0 -> 59460 bytes .../background_social_header_plain.png | Bin 0 -> 8273 bytes .../background_social_header_shape.png | Bin 0 -> 15063 bytes .../background_wallpaper_lightspeed.png | Bin 0 -> 42696 bytes .../background_wallpaper_plain.png | Bin 0 -> 3257 bytes .../background_wallpaper_shapes.png | Bin 0 -> 9681 bytes .../background_wallpaper_tablet_light.png | Bin 0 -> 9848 bytes ...background_wallpaper_tablet_lightspeed.png | Bin 0 -> 37267 bytes .../background_wallpaper_tablet_shapes.png | Bin 0 -> 14147 bytes 19 files changed, 493 insertions(+), 291 deletions(-) delete mode 100644 feature/results/src/main/java/com/android/developers/androidify/customize/BitmapComposable.kt create mode 100644 feature/results/src/main/java/com/android/developers/androidify/customize/OffscreenBitmapManager.kt create mode 100644 feature/results/src/main/res/drawable-nodpi/background_banner_shapes.png create mode 100644 feature/results/src/main/res/drawable-nodpi/background_social_header_lightspeed.png create mode 100644 feature/results/src/main/res/drawable-nodpi/background_social_header_plain.png create mode 100644 feature/results/src/main/res/drawable-nodpi/background_social_header_shape.png create mode 100644 feature/results/src/main/res/drawable-nodpi/background_wallpaper_lightspeed.png create mode 100644 feature/results/src/main/res/drawable-nodpi/background_wallpaper_plain.png create mode 100644 feature/results/src/main/res/drawable-nodpi/background_wallpaper_shapes.png create mode 100644 feature/results/src/main/res/drawable-nodpi/background_wallpaper_tablet_light.png create mode 100644 feature/results/src/main/res/drawable-nodpi/background_wallpaper_tablet_lightspeed.png create mode 100644 feature/results/src/main/res/drawable-nodpi/background_wallpaper_tablet_shapes.png diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/AspectRatioTool.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/AspectRatioTool.kt index efe506bd..150b65cc 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/AspectRatioTool.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/AspectRatioTool.kt @@ -84,6 +84,9 @@ private fun AspectRatioToolPreview() { sizeOptions = listOf( SizeOption.Square, SizeOption.Banner, + SizeOption.SocialHeader, + SizeOption.Wallpaper, + SizeOption.WallpaperTablet, ), selectedOption = SizeOption.Square, onSizeOptionSelected = {}, diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/BitmapComposable.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/BitmapComposable.kt deleted file mode 100644 index 7c42c6ee..00000000 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/BitmapComposable.kt +++ /dev/null @@ -1,188 +0,0 @@ -/* - * Copyright 2025 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.android.developers.androidify.customize - -import android.app.Presentation -import android.content.Context -import android.content.Context.DISPLAY_SERVICE -import android.graphics.Bitmap -import android.graphics.SurfaceTexture -import android.hardware.display.DisplayManager -import android.view.Display -import android.view.Surface -import android.view.ViewGroup -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.size -import androidx.compose.runtime.Composable -import androidx.compose.runtime.rememberCoroutineScope -import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.drawWithContent -import androidx.compose.ui.graphics.asAndroidBitmap -import androidx.compose.ui.graphics.layer.drawLayer -import androidx.compose.ui.graphics.rememberGraphicsLayer -import androidx.compose.ui.platform.ComposeView -import androidx.compose.ui.unit.Density -import androidx.compose.ui.unit.DpSize -import androidx.compose.ui.unit.IntSize -import androidx.lifecycle.Lifecycle -import androidx.lifecycle.LifecycleObserver -import androidx.lifecycle.LifecycleOwner -import androidx.lifecycle.ProcessLifecycleOwner -import androidx.lifecycle.setViewTreeLifecycleOwner -import androidx.savedstate.SavedStateRegistry -import androidx.savedstate.SavedStateRegistryController -import androidx.savedstate.SavedStateRegistryOwner -import androidx.savedstate.setViewTreeSavedStateRegistryOwner -import kotlinx.coroutines.launch -import kotlin.coroutines.suspendCoroutine - -/** - * Use a virtual display to capture composable content thats on a display. - * This is necessary because Compose doesn't yet support offscreen bitmap creation (https://issuetracker.google.com/298037598) - * - * Original source: https://gist.github.com/iamcalledrob/871568679ad58e64959b097d4ef30738 - * Adapted to use new GraphicsLayer commands (record and toBitmap()) - * Usage example: - * val bitmap = useVirtualDisplay(applicationContext) { display -> - * captureComposable( - * context = context, - * size = DpSize(100.dp, 100.dp), - * display = display - * ) { - * LaunchedEffect(Unit) { - * capture() - * } - * Box(modifier = Modifier.fillMaxSize().background(Color.Red)) - * } - * } - */ -suspend fun useVirtualDisplay(context: Context, callback: suspend (display: Display) -> T): T? { - val texture = SurfaceTexture(false) - val surface = Surface(texture) - // Size of virtual display doesn't matter, because images are captured from compose, not the display surface. - val virtualDisplay = - (context.getSystemService(DISPLAY_SERVICE) as DisplayManager).createVirtualDisplay( - "virtualDisplay", - 1, - 1, - 72, - surface, - DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY, - ) ?: return null - - val result = callback(virtualDisplay.display) - - virtualDisplay.release() - surface.release() - texture.release() - - return result -} - -data class CaptureComposableScope(val capture: () -> Unit) - -fun androidx.compose.ui.geometry.Size.roundedToIntSize(): IntSize = - IntSize(width.toInt(), height.toInt()) - -private class EmptySavedStateRegistryOwner : SavedStateRegistryOwner { - private val controller = SavedStateRegistryController.create(this).apply { - performRestore(null) - } - - private val lifecycleOwner: LifecycleOwner = ProcessLifecycleOwner.get() - - override val lifecycle: Lifecycle - get() = - object : Lifecycle() { - @Suppress("UNNECESSARY_SAFE_CALL") - override fun addObserver(observer: LifecycleObserver) { - lifecycleOwner?.lifecycle?.addObserver(observer) - } - - @Suppress("UNNECESSARY_SAFE_CALL") - override fun removeObserver(observer: LifecycleObserver) { - lifecycleOwner?.lifecycle?.removeObserver(observer) - } - - override val currentState = State.INITIALIZED - } - - override val savedStateRegistry: SavedStateRegistry - get() = controller.savedStateRegistry -} - -/** Captures composable content, by default using a hidden window on the default display. - * - * Be sure to invoke capture() within the composable content (e.g. in a LaunchedEffect) to perform the capture. - * This gives some level of control over when the capture occurs, so it's possible to wait for async resources */ -suspend fun captureComposable( - context: Context, - size: DpSize, - density: Density = Density(density = 1f), - display: Display = (context.getSystemService(DISPLAY_SERVICE) as DisplayManager) - .getDisplay(Display.DEFAULT_DISPLAY), - content: @Composable CaptureComposableScope.() -> Unit, -): Bitmap { - val presentation = Presentation(context.applicationContext, display).apply { - window?.decorView?.let { view -> - view.setViewTreeLifecycleOwner(ProcessLifecycleOwner.get()) - view.setViewTreeSavedStateRegistryOwner(EmptySavedStateRegistryOwner()) - view.alpha = - 0f // If using default display, to ensure this does not appear on top of content. - } - } - - val composeView = ComposeView(context).apply { - val intSize = with(density) { size.toSize().roundedToIntSize() } - require(intSize.width > 0 && intSize.height > 0) { "pixel size must not have zero dimension" } - - layoutParams = ViewGroup.LayoutParams(intSize.width, intSize.height) - } - - presentation.setContentView(composeView, composeView.layoutParams) - presentation.show() - - val androidBitmap = suspendCoroutine { continuation -> - composeView.setContent { - val coroutineScope = rememberCoroutineScope() - val graphicsLayer = rememberGraphicsLayer() - - Box( - modifier = Modifier - .size(size) - .drawWithContent { - graphicsLayer.record { - this@drawWithContent.drawContent() - } - drawLayer(graphicsLayer) - }, - ) { - CaptureComposableScope( - capture = { - coroutineScope.launch { - val composeImageBitmap = graphicsLayer.toImageBitmap() - continuation.resumeWith(Result.success(composeImageBitmap.asAndroidBitmap())) - } - }, - ).content() - } - } - } - - presentation.dismiss() - - return androidBitmap -} diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt index 3ee6ad0b..ef44b780 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt @@ -18,8 +18,11 @@ package com.android.developers.androidify.customize import android.app.Application import android.graphics.Bitmap import android.graphics.BitmapFactory +import android.graphics.Rect import android.net.Uri +import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.material3.SnackbarHostState +import androidx.compose.ui.Modifier import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.application import androidx.lifecycle.viewModelScope @@ -35,6 +38,7 @@ import javax.inject.Inject @HiltViewModel class CustomizeExportViewModel @Inject constructor( val imageGenerationRepository: ImageGenerationRepository, + val offscreenBitmapManager: OffscreenBitmapManager, application: Application, ) : AndroidViewModel(application) { @@ -46,6 +50,10 @@ class CustomizeExportViewModel @Inject constructor( val snackbarHostState: StateFlow get() = _snackbarHostState + override fun onCleared() { + super.onCleared() + offscreenBitmapManager.dispose() + } fun setArguments( resultImageUrl: Bitmap, originalImageUrl: Uri?, @@ -60,9 +68,15 @@ class CustomizeExportViewModel @Inject constructor( fun shareClicked() { viewModelScope.launch { - val resultUrl = renderToBitmap(application, state.value.exportImageCanvas) - if (resultUrl != null) { - val imageFileUri = imageGenerationRepository.saveImage(resultUrl) + val exportImageCanvas = state.value.exportImageCanvas + val resultBitmap = offscreenBitmapManager.renderComposableToBitmap(exportImageCanvas.canvasSize) { + ImageResult( + exportImageCanvas = exportImageCanvas, + modifier = Modifier.fillMaxSize(), + ) + } + if (resultBitmap != null) { + val imageFileUri = imageGenerationRepository.saveImage(resultBitmap) _state.update { it.copy(savedUri = imageFileUri) @@ -83,21 +97,29 @@ class CustomizeExportViewModel @Inject constructor( when (toolState.selectedToolOption) { is BackgroundOption -> { val backgroundOption = toolState.selectedToolOption as BackgroundOption - it.exportImageCanvas.copy(selectedBackgroundOption = backgroundOption) + it.exportImageCanvas.updateAspectRatioAndBackground( + backgroundOption, it.exportImageCanvas.aspectRatioOption) } is SizeOption -> { - it.exportImageCanvas.copy( - aspectRatioOption = (toolState.selectedToolOption as SizeOption), - ) + it.exportImageCanvas.updateAspectRatioAndBackground( + it.exportImageCanvas.selectedBackgroundOption, (toolState.selectedToolOption as SizeOption)) } else -> throw IllegalArgumentException("Unknown tool option") }, ) } } + + fun downloadClicked() { viewModelScope.launch { - val resultBitmap = renderToBitmap(application, state.value.exportImageCanvas) + val exportImageCanvas = state.value.exportImageCanvas + val resultBitmap = offscreenBitmapManager.renderComposableToBitmap(exportImageCanvas.canvasSize) { + ImageResult( + exportImageCanvas = exportImageCanvas, + modifier = Modifier.fillMaxSize(), + ) + } val originalImage = state.value.originalImageUrl if (originalImage != null) { val savedOriginalUri = diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt index 1be9c55c..1e26cacc 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt @@ -15,8 +15,13 @@ */ package com.android.developers.androidify.customize +import android.R.attr.rotation import android.graphics.Bitmap import android.net.Uri +import androidx.annotation.DrawableRes +import androidx.compose.ui.geometry.Offset +import androidx.compose.ui.geometry.R +import androidx.compose.ui.geometry.Rect import androidx.compose.ui.geometry.Size data class CustomizeExportState( @@ -31,16 +36,25 @@ data class CustomizeExportState( CustomizeTool.Background to BackgroundToolState(), ), val exportImageCanvas: ExportImageCanvas = ExportImageCanvas(), -) + + + ) { + +} + interface ToolState { val selectedToolOption: ToolOption val options: List } + data class AspectRatioToolState( override val selectedToolOption: SizeOption = SizeOption.Square, override val options: List = listOf( SizeOption.Square, SizeOption.Banner, + SizeOption.SocialHeader, + SizeOption.Wallpaper, + SizeOption.WallpaperTablet, ), ) : ToolState @@ -58,7 +72,87 @@ data class ExportImageCanvas( val aspectRatioOption: SizeOption = SizeOption.Square, val canvasSize: Size = Size(1000f, 1000f), val mainImageUri: Uri? = null, + val imageSize: Size = Size(1000f, 1000f), + val imageOffset: Offset = Offset.Zero, + val imageRotation: Float = 0f, val imageOriginalBitmapSize: Size? = Size(1024f, 1024f), val selectedBackgroundOption: BackgroundOption = BackgroundOption.None, - val includeWatermark: Boolean = true -) \ No newline at end of file + @param:DrawableRes + val selectedBackgroundDrawable: Int? = null, + val includeWatermark: Boolean = true, +) { + fun updateAspectRatioAndBackground( + backgroundOption: BackgroundOption, + sizeOption: SizeOption, + ) : ExportImageCanvas { + val newCanvasSize = sizeOption.dimensions + var imageSize: Size + + var offset = Offset.Zero + var image : Int + var rotation : Float + when (sizeOption) { + SizeOption.Square -> { + image = when (backgroundOption) { + BackgroundOption.IO -> com.android.developers.androidify.results.R.drawable.background_square_blocks + BackgroundOption.Lightspeed -> com.android.developers.androidify.results.R.drawable.background_square_lightspeed + BackgroundOption.None -> com.android.developers.androidify.results.R.drawable.background_square_none + } + offset = Offset(newCanvasSize.width * 0.2f, newCanvasSize.height * 0.16f) + imageSize = Size(newCanvasSize.width * 0.6f, newCanvasSize.width * 0.6f) + rotation = 0f + } + SizeOption.Banner -> { + image = when (backgroundOption) { + BackgroundOption.IO -> com.android.developers.androidify.results.R.drawable.background_banner_square + BackgroundOption.Lightspeed -> com.android.developers.androidify.results.R.drawable.background_banner_lightspeed + BackgroundOption.None -> com.android.developers.androidify.results.R.drawable.background_banner_plain + } + offset = Offset(newCanvasSize.width * 0.51f, newCanvasSize.height * -0.03f) + imageSize = Size(newCanvasSize.width * 0.26f, newCanvasSize.width * 0.26f) + rotation = -11f + } + SizeOption.SocialHeader -> { + image = when (backgroundOption) { + BackgroundOption.IO -> com.android.developers.androidify.results.R.drawable.background_social_header_shape + BackgroundOption.Lightspeed -> com.android.developers.androidify.results.R.drawable.background_social_header_lightspeed + BackgroundOption.None -> com.android.developers.androidify.results.R.drawable.background_social_header_plain + } + offset = Offset(newCanvasSize.width * 0.49f, newCanvasSize.height * 0.01f) + imageSize = Size(newCanvasSize.width * 0.26f, newCanvasSize.width * 0.3f) + rotation = -9f + } + + SizeOption.Wallpaper -> { + image = when (backgroundOption) { + BackgroundOption.IO -> com.android.developers.androidify.results.R.drawable.background_wallpaper_shapes + BackgroundOption.Lightspeed -> com.android.developers.androidify.results.R.drawable.background_wallpaper_lightspeed + BackgroundOption.None -> com.android.developers.androidify.results.R.drawable.background_wallpaper_plain + } + offset = Offset(newCanvasSize.width * -0.02f, newCanvasSize.height * 0.1f) + imageSize = Size(newCanvasSize.width * 1.1f, newCanvasSize.width * 1.3f) + rotation = -9f + } + + SizeOption.WallpaperTablet -> { + image = when (backgroundOption) { + BackgroundOption.IO -> com.android.developers.androidify.results.R.drawable.background_wallpaper_tablet_shapes + BackgroundOption.Lightspeed -> com.android.developers.androidify.results.R.drawable.background_wallpaper_tablet_lightspeed + BackgroundOption.None -> com.android.developers.androidify.results.R.drawable.background_wallpaper_tablet_light + } + offset = Offset(newCanvasSize.width * 0.24f, newCanvasSize.height * 0.06f) + imageSize = Size(newCanvasSize.width * 0.52f, newCanvasSize.width * 0.52f) + rotation = -10f + } + } + return copy( + selectedBackgroundDrawable = image, + imageRotation = rotation, + imageSize = imageSize, + imageOffset = offset, + canvasSize = newCanvasSize, + aspectRatioOption = sizeOption, + ) + } +} + diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeTool.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeTool.kt index 9dbcdb8f..6b07b9cb 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeTool.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeTool.kt @@ -15,6 +15,7 @@ */ package com.android.developers.androidify.customize +import androidx.compose.ui.geometry.Size import com.android.developers.androidify.results.R enum class CustomizeTool(val icon: Int, val displayName: String) { @@ -29,15 +30,16 @@ interface ToolOption { sealed class SizeOption( val aspectRatio: Float, + val dimensions: Size, override val displayName: String, override val key: String, ) : ToolOption { - object Square : SizeOption(1f, "1:1", "square") - object Banner : SizeOption(4f, "Banner", "banner") - /*object Wallpaper : SizeOption(9 / 16f, "Wallpaper", "wallpaper")*/ - // todo add custom ratio option to the UI - /*object Custom : SizeOption(3 / 2f, "Custom", "custom")*/ + object Square : SizeOption(1f, Size(1000f, 1000f), "1:1", "square") + object Banner : SizeOption(4f, Size(4000f, 1000f),"Banner", "banner") + object Wallpaper : SizeOption(9 / 16f, Size(900f, 1600f),"Wallpaper", "wallpaper") + object SocialHeader: SizeOption(3f, Size(3000f, 1000f),"3:1", "social_header") + object WallpaperTablet: SizeOption(1280/800f, Size(1280f, 800f),"Large wallpaper", "wallpaper_large") } sealed class BackgroundOption( diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt index 99ddf2b2..00f8f642 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt @@ -15,8 +15,6 @@ */ package com.android.developers.androidify.customize -import android.content.Context -import android.graphics.Bitmap import androidx.compose.foundation.Image import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box @@ -25,12 +23,12 @@ import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi import androidx.compose.runtime.Composable -import androidx.compose.runtime.LaunchedEffect import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.clipToBounds import androidx.compose.ui.draw.rotate +import androidx.compose.ui.geometry.Size import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.ImageBitmap import androidx.compose.ui.graphics.asAndroidBitmap @@ -38,13 +36,8 @@ import androidx.compose.ui.graphics.asImageBitmap import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.layout.layout import androidx.compose.ui.res.imageResource -import androidx.compose.ui.unit.Density -import androidx.compose.ui.unit.DpSize -import androidx.compose.ui.unit.dp +import androidx.compose.ui.tooling.preview.Preview import com.android.developers.androidify.results.R -import com.android.developers.androidify.util.LargeScreensPreview -import com.android.developers.androidify.util.PhonePreview -import kotlin.math.roundToInt @OptIn(ExperimentalMaterial3ExpressiveApi::class) @Composable @@ -65,8 +58,7 @@ fun ImageResult( ), ) { BackgroundLayout( - exportImageCanvas.aspectRatioOption, - exportImageCanvas.selectedBackgroundOption, + exportImageCanvas, modifier = Modifier.fillMaxSize(), ) { if (exportImageCanvas.imageBitmap != null) { @@ -85,90 +77,55 @@ fun ImageResult( @Composable fun BackgroundLayout( - sizeOption: SizeOption, - backgroundOption: BackgroundOption, + exportImageCanvas: ExportImageCanvas, modifier: Modifier = Modifier, content: @Composable () -> Unit, ) { Box(modifier = modifier.fillMaxSize()) { - var whiteBoxXFraction = 0.51f - var whiteBoxYFraction = 0.31f - var whiteBoxWidthFraction = 0.23f - var whiteBoxHeightFraction = 0.35f - var rotation = 0f - when (sizeOption) { - SizeOption.Banner -> { - // Background image for the banner - val image = when (backgroundOption) { - BackgroundOption.IO -> R.drawable.background_banner_square - BackgroundOption.Lightspeed -> R.drawable.background_banner_lightspeed - BackgroundOption.None -> R.drawable.background_banner_plain - } - Image( - bitmap = ImageBitmap.imageResource(id = image), - modifier = Modifier.fillMaxSize(), - contentScale = ContentScale.Crop, - contentDescription = null, - ) - whiteBoxXFraction = 0.51f - whiteBoxYFraction = 0.31f - whiteBoxWidthFraction = 0.23f - whiteBoxHeightFraction = 0.35f - rotation = -11f - } - - SizeOption.Square -> { - val image = when (backgroundOption) { - BackgroundOption.IO -> R.drawable.background_square_blocks - BackgroundOption.Lightspeed -> R.drawable.background_square_lightspeed - BackgroundOption.None -> R.drawable.background_square_none - } - Image( - bitmap = ImageBitmap.imageResource(id = image), - contentScale = ContentScale.Crop, - modifier = Modifier.fillMaxSize(), - contentDescription = null, - ) - whiteBoxXFraction = 0.2f - whiteBoxYFraction = 0.16f - whiteBoxWidthFraction = 0.60f - whiteBoxHeightFraction = 0.55f - rotation = 0f - } + if (exportImageCanvas.selectedBackgroundDrawable != null) { + Image( + bitmap = ImageBitmap.imageResource(id = exportImageCanvas.selectedBackgroundDrawable), + modifier = Modifier.fillMaxSize(), + contentScale = ContentScale.Crop, + contentDescription = null, + ) } - Box( modifier = Modifier .fillMaxSize() .layout { measurable, constraints -> - val fullWidth = constraints.maxWidth - val fullHeight = constraints.maxHeight + val actualWidth = constraints.maxWidth + val actualHeight = constraints.maxHeight - val whiteBoxWidth = (fullWidth * whiteBoxWidthFraction).roundToInt() - val whiteBoxHeight = (fullHeight * whiteBoxHeightFraction).roundToInt() + val scale = if (exportImageCanvas.canvasSize.width > 0f) { + actualWidth / exportImageCanvas.canvasSize.width + } else { + 1f + } - val whiteBoxX = (fullWidth * whiteBoxXFraction).roundToInt() - val whiteBoxY = (fullHeight * whiteBoxYFraction).roundToInt() + val scaledImageWidth = exportImageCanvas.imageSize.width * scale + val scaledImageHeight = exportImageCanvas.imageSize.height * scale + val scaledOffsetX = exportImageCanvas.imageOffset.x * scale + val scaledOffsetY = exportImageCanvas.imageOffset.y * scale val placeable = measurable.measure( constraints.copy( - minWidth = whiteBoxWidth, - maxWidth = whiteBoxWidth, - minHeight = whiteBoxHeight, - maxHeight = whiteBoxHeight, - ), + minWidth = scaledImageWidth.toInt(), + maxWidth = scaledImageWidth.toInt(), + minHeight = scaledImageHeight.toInt(), + maxHeight = scaledImageHeight.toInt(), + ) ) - layout(fullWidth, fullHeight) { - placeable.placeRelative(whiteBoxX, whiteBoxY) + layout(actualWidth, actualHeight) { + placeable.placeRelative(scaledOffsetX.toInt(), scaledOffsetY.toInt()) } } - .aspectRatio(0.88f) - .rotate(rotation), + .rotate(exportImageCanvas.imageRotation), ) { Box( modifier = Modifier .fillMaxSize() - .clip(RoundedCornerShape(percent = 8)), + .clip(RoundedCornerShape(percent = 7)), contentAlignment = Alignment.Center, ) { content() @@ -178,16 +135,17 @@ fun BackgroundLayout( } } -suspend fun renderToBitmap( +/*suspend fun renderToBitmap( context: Context, currentCanvasState: ExportImageCanvas, ): Bitmap? { return useVirtualDisplay(context) { display -> - val outputDensity = Density(2f) + val outputDensity = Density(1f) val logicalHeightDp = currentCanvasState.canvasSize.height.dp - val logicalWidthDp = (currentCanvasState.canvasSize.height * currentCanvasState.aspectRatioOption.aspectRatio).dp - + val logicalWidthDp = + (currentCanvasState.canvasSize.height * currentCanvasState.aspectRatioOption.aspectRatio).dp + val captureDpSize = DpSize(width = logicalWidthDp, height = logicalHeightDp) captureComposable( @@ -205,28 +163,30 @@ suspend fun renderToBitmap( ) } } -} +}*/ -@PhonePreview -@LargeScreensPreview +@Preview @Composable -private fun ImageRendererPreview() { +private fun ImageRendererPreviewSquare() { val bitmap = ImageBitmap.imageResource(R.drawable.placeholderbot) ImageResult( ExportImageCanvas( imageBitmap = bitmap.asAndroidBitmap(), - canvasSize = androidx.compose.ui.geometry.Size(1000f, 1000f), + canvasSize = Size(1000f, 1000f), aspectRatioOption = SizeOption.Square, selectedBackgroundOption = BackgroundOption.IO, - ), + ) + .updateAspectRatioAndBackground( + backgroundOption = BackgroundOption.IO, + sizeOption = SizeOption.Square, + ), modifier = Modifier .fillMaxSize(), ) } -@PhonePreview -@LargeScreensPreview +@Preview @Composable private fun ImageRendererPreviewBanner() { val bitmap = ImageBitmap.imageResource(R.drawable.placeholderbot) @@ -234,13 +194,100 @@ private fun ImageRendererPreviewBanner() { ImageResult( ExportImageCanvas( imageBitmap = bitmap.asAndroidBitmap(), - canvasSize = androidx.compose.ui.geometry.Size(1000f, 1000f), + canvasSize = Size(1000f, 1000f), aspectRatioOption = SizeOption.Banner, selectedBackgroundOption = BackgroundOption.Lightspeed, + ).updateAspectRatioAndBackground( + backgroundOption = BackgroundOption.Lightspeed, + sizeOption = SizeOption.Banner, ), modifier = Modifier .fillMaxSize() .aspectRatio(SizeOption.Banner.aspectRatio), ) +} + +@Preview +@Composable +private fun ImageRendererPreviewWallpaper() { + val bitmap = ImageBitmap.imageResource(R.drawable.placeholderbot) + + ImageResult( + ExportImageCanvas( + imageBitmap = bitmap.asAndroidBitmap(), + canvasSize = Size(1000f, 1000f), + aspectRatioOption = SizeOption.Wallpaper, + selectedBackgroundOption = BackgroundOption.Lightspeed, + ).updateAspectRatioAndBackground( + backgroundOption = BackgroundOption.Lightspeed, + sizeOption = SizeOption.Wallpaper, + ), + modifier = Modifier + .fillMaxSize() + .aspectRatio(SizeOption.Wallpaper.aspectRatio), + ) +} + +@Preview(widthDp = 1280, heightDp = 800) +@Composable +private fun ImageRendererPreviewWallpaperTablet() { + val bitmap = ImageBitmap.imageResource(R.drawable.placeholderbot) + + ImageResult( + ExportImageCanvas( + imageBitmap = bitmap.asAndroidBitmap(), + canvasSize = Size(1280f, 800f), + aspectRatioOption = SizeOption.WallpaperTablet, + selectedBackgroundOption = BackgroundOption.Lightspeed, + ).updateAspectRatioAndBackground( + backgroundOption = BackgroundOption.Lightspeed, + sizeOption = SizeOption.WallpaperTablet, + ), + modifier = Modifier + .fillMaxSize() + .aspectRatio(SizeOption.WallpaperTablet.aspectRatio), + ) +} +@Preview +@Composable +private fun ImageRendererPreviewWallpaperSocial() { + val bitmap = ImageBitmap.imageResource(R.drawable.placeholderbot) + + ImageResult( + ExportImageCanvas( + imageBitmap = bitmap.asAndroidBitmap(), + canvasSize = Size(1600f, 900f), + aspectRatioOption = SizeOption.SocialHeader, + selectedBackgroundOption = BackgroundOption.Lightspeed, + ).updateAspectRatioAndBackground( + backgroundOption = BackgroundOption.Lightspeed, + sizeOption = SizeOption.SocialHeader, + ), + modifier = Modifier + .fillMaxSize() + .aspectRatio(SizeOption.SocialHeader.aspectRatio), + ) } + +@Preview +@Composable +fun ImageRendererPreviewWallpaperIO() { + val bitmap = ImageBitmap.imageResource(R.drawable.placeholderbot) + + ImageResult( + ExportImageCanvas( + imageBitmap = bitmap.asAndroidBitmap(), + canvasSize = Size(1600f, 900f), + aspectRatioOption = SizeOption.SocialHeader, + selectedBackgroundOption = BackgroundOption.IO, + + ).updateAspectRatioAndBackground( + backgroundOption = BackgroundOption.IO, + sizeOption = SizeOption.SocialHeader, + ), + modifier = Modifier + .fillMaxSize() + .aspectRatio(SizeOption.SocialHeader.aspectRatio), + ) +} \ No newline at end of file diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/OffscreenBitmapManager.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/OffscreenBitmapManager.kt new file mode 100644 index 00000000..93b42465 --- /dev/null +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/OffscreenBitmapManager.kt @@ -0,0 +1,222 @@ +/* + * Copyright 2025 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.developers.androidify.customize + +import android.app.Application +import android.app.Presentation +import android.content.Context +import android.content.Context.DISPLAY_SERVICE +import android.graphics.Bitmap +import android.graphics.SurfaceTexture +import android.hardware.display.DisplayManager +import android.hardware.display.VirtualDisplay +import android.util.Log +import android.view.Display +import android.view.Surface +import android.view.ViewGroup +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.size +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.drawWithContent +import androidx.compose.ui.geometry.Size +import androidx.compose.ui.graphics.asAndroidBitmap +import androidx.compose.ui.graphics.layer.drawLayer +import androidx.compose.ui.graphics.rememberGraphicsLayer +import androidx.compose.ui.platform.ComposeView +import androidx.compose.ui.unit.Density +import androidx.compose.ui.unit.DpSize +import androidx.compose.ui.unit.IntSize +import androidx.compose.ui.unit.dp +import androidx.core.content.ContextCompat.getSystemService +import androidx.lifecycle.Lifecycle +import androidx.lifecycle.LifecycleObserver +import androidx.lifecycle.LifecycleOwner +import androidx.lifecycle.ProcessLifecycleOwner +import androidx.lifecycle.setViewTreeLifecycleOwner +import androidx.savedstate.SavedStateRegistry +import androidx.savedstate.SavedStateRegistryController +import androidx.savedstate.SavedStateRegistryOwner +import androidx.savedstate.setViewTreeSavedStateRegistryOwner +import dagger.hilt.android.qualifiers.ApplicationContext +import kotlinx.coroutines.launch +import kotlinx.coroutines.suspendCancellableCoroutine +import javax.inject.Inject +import javax.inject.Singleton + +/** + * Use a virtual display to capture composable content thats on a display. + * This is necessary because Compose doesn't yet support offscreen bitmap creation (https://issuetracker.google.com/298037598) + * + * Original source: https://gist.github.com/iamcalledrob/871568679ad58e64959b097d4ef30738 + * Adapted to use new GraphicsLayer commands (record and toBitmap()) + * Usage example: + * val offscreenBitmapManager = OffscreenBitmapManager(context) + * val bitmap = offscreenBitmapManager.renderComposableToBitmap { + * ImageResult() // etc + * } + */ + + +@Singleton +class OffscreenBitmapManager @Inject constructor(val application: Application) { + val texture = SurfaceTexture(false) + val surface = Surface(texture) + var virtualDisplay: VirtualDisplay? = null + + fun initialize() { + virtualDisplay = + (application.getSystemService(DISPLAY_SERVICE) as DisplayManager).createVirtualDisplay( + "virtualDisplay", + 1, + 1, + 72, + surface, + DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY, + ) + } + + fun dispose() { + virtualDisplay?.release() + surface.release() + texture.release() + } + + private suspend fun useVirtualDisplay(callback: suspend (display: Display) -> T): T? { + if (virtualDisplay == null) { + Log.e("OffscreenBitmapManager", "virtualDisplay is null") + initialize() + } + return callback(virtualDisplay!!.display) + } + + suspend fun renderComposableToBitmap(canvasSize: Size, composableContent: @Composable () -> Unit): Bitmap? { + val bitmap = useVirtualDisplay { display -> + val outputDensity = Density(1f) + + val logicalHeightDp = canvasSize.height.dp + val logicalWidthDp = canvasSize.width.dp + + val captureDpSize = DpSize(width = logicalWidthDp, height = logicalHeightDp) + + captureComposable( + context = application, + size = captureDpSize, + density = outputDensity, + display = display, + ) { + LaunchedEffect(Unit) { + capture() + } + composableContent() + } + } + return bitmap + } + private data class CaptureComposableScope(val capture: () -> Unit) + + private fun androidx.compose.ui.geometry.Size.roundedToIntSize(): IntSize = + IntSize(width.toInt(), height.toInt()) + + private class EmptySavedStateRegistryOwner : SavedStateRegistryOwner { + private val controller = SavedStateRegistryController.create(this).apply { + performRestore(null) + } + + private val lifecycleOwner: LifecycleOwner = ProcessLifecycleOwner.get() + + override val lifecycle: Lifecycle + get() = + object : Lifecycle() { + @Suppress("UNNECESSARY_SAFE_CALL") + override fun addObserver(observer: LifecycleObserver) { + lifecycleOwner?.lifecycle?.addObserver(observer) + } + + @Suppress("UNNECESSARY_SAFE_CALL") + override fun removeObserver(observer: LifecycleObserver) { + lifecycleOwner?.lifecycle?.removeObserver(observer) + } + + override val currentState = State.INITIALIZED + } + + override val savedStateRegistry: SavedStateRegistry + get() = controller.savedStateRegistry + } + + /** Captures composable content, by default using a hidden window on the default display. + * + * Be sure to invoke capture() within the composable content (e.g. in a LaunchedEffect) to perform the capture. + * This gives some level of control over when the capture occurs, so it's possible to wait for async resources */ + private suspend fun captureComposable( + context: Context, + size: DpSize, + density: Density = Density(density = 1f), + display: Display = (context.getSystemService(DISPLAY_SERVICE) as DisplayManager) + .getDisplay(Display.DEFAULT_DISPLAY), + content: @Composable CaptureComposableScope.() -> Unit, + ): Bitmap { + val presentation = Presentation(context.applicationContext, display).apply { + window?.decorView?.let { view -> + view.setViewTreeLifecycleOwner(ProcessLifecycleOwner.get()) + view.setViewTreeSavedStateRegistryOwner(EmptySavedStateRegistryOwner()) + view.alpha = + 0f // If using default display, to ensure this does not appear on top of content. + } + } + + val composeView = ComposeView(context).apply { + val intSize = with(density) { size.toSize().roundedToIntSize() } + require(intSize.width > 0 && intSize.height > 0) { "pixel size must not have zero dimension" } + + layoutParams = ViewGroup.LayoutParams(intSize.width, intSize.height) + } + + presentation.setContentView(composeView, composeView.layoutParams) + presentation.show() + + val androidBitmap = suspendCancellableCoroutine { continuation -> + composeView.setContent { + val coroutineScope = rememberCoroutineScope() + val graphicsLayer = rememberGraphicsLayer() + Box( + modifier = Modifier + .size(size) + .drawWithContent { + graphicsLayer.record { + this@drawWithContent.drawContent() + } + drawLayer(graphicsLayer) + }, + ) { + CaptureComposableScope( + capture = { + coroutineScope.launch { + val composeImageBitmap = graphicsLayer.toImageBitmap() + continuation.resumeWith(Result.success(composeImageBitmap.asAndroidBitmap())) + } + }, + ).content() + } + } + } + presentation.dismiss() + return androidBitmap + } +} diff --git a/feature/results/src/main/res/drawable-nodpi/background_banner_lightspeed.png b/feature/results/src/main/res/drawable-nodpi/background_banner_lightspeed.png index 5aae75841317b48e404b60c4400b77bba8182cf1..d731940379637faa23f65db2626f7b9c986755f8 100644 GIT binary patch literal 45091 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

_K^vI>2p^e`(%Mx6idKE|)Fl&dXoGC2Q4 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 M07*qoM6N<$g0}eoBme*a diff --git a/feature/results/src/main/res/drawable-nodpi/background_banner_plain.png b/feature/results/src/main/res/drawable-nodpi/background_banner_plain.png index c75ad7cd4bc7345bf7ac8828848aef12324de984..db24e0a0fce98c5d87c7415285b0a461169df72b 100644 GIT binary patch literal 7075 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 literal 18642 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 diff --git a/feature/results/src/main/res/drawable-nodpi/background_banner_shapes.png b/feature/results/src/main/res/drawable-nodpi/background_banner_shapes.png new file mode 100644 index 0000000000000000000000000000000000000000..d055ce9596a956d79d370bff59ed879afd48c360 GIT binary patch literal 12878 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 literal 0 HcmV?d00001 diff --git a/feature/results/src/main/res/drawable-nodpi/background_social_header_lightspeed.png b/feature/results/src/main/res/drawable-nodpi/background_social_header_lightspeed.png new file mode 100644 index 0000000000000000000000000000000000000000..6249c640278e3561b8e15c63584fb779042b7c85 GIT binary patch literal 59460 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

k&C_lv$(%Ikwe^ZzN2`62pP1wfq*G@Fw2l))X$ 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 literal 0 HcmV?d00001 diff --git a/feature/results/src/main/res/drawable-nodpi/background_social_header_plain.png b/feature/results/src/main/res/drawable-nodpi/background_social_header_plain.png new file mode 100644 index 0000000000000000000000000000000000000000..97fb831ce1abaf8fa9fcb9ced000b608ffc6818d GIT binary patch literal 8273 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%0Do?3X4z# z$x=Yzpd*&AN~D$aAE`$-0#m`z zG$;Oa+DZ?CW4F*e9D) z_gxq<|1BWgB}`jO3xBD6(1Ew@g9?FUNNdIv>`MQts`x7UK{m-VYap%r9kw?RQR_gW zhOVG{Y<8+5tJ?j=#q3H*vs7J<*`XvaA{ zt$d41UZ*C03v0-kFn9isMa?Gm$VddfQ@~KKf|Sk$KR7Ij&_4u&qp$*<6d;F)6b2s# ztI!>Zzm$v~hRc1!yc*?#6FHanktt}4gsiU3Z2*TTz0N%(>WTb696NJkQLjD)KSHNU zPI|SXYZBO9UHsCvxJ^@ZUnVR1ddN#smppAiv=B3|(~41K`aiO4HTT`Qgg1I*LGf#` z^gHD8C04g;Ld6@&o20%C-I}N9+GUZ@u9n5=)asB{EWp=Lxz(0VV-huE`uxlXLsR-W z@B2oMU#qDh?Xt_>`|nO@3<8-jl=o3BgGO*Y?2tJGo!R1da3t+kpCET4V# z)bu|bVGZ%!y*3&8ks}A>(>{EwlqK6Aq%}2>b=YtOV!`EotW%g}O8le}FA?d}T3W_47EbwvGR|&S8&?Ke2Lx+e0@%yq`+)WUFTfl^EmfYf$o!%DmXh>i3%d3 zo%-n`yNE?*a0~dTHbl?T*U2sNF27P4NLeh3ztg%D!<9=F}?BO%{u=p z86(7nB9YTWY#w(=1&XVtxt6fE8CM`w_|6o%4z>SCEB8HJND~Pow^D3?Wupd4W#iyJ zeBI8bzTjurhqI3X|B+}s@EHw);%r$`ZduC6g;>k`Gbz3a_FF`S(eno`*l`*KEy~f* z#Czus-t9=-AsH)O^mmM6Rw1trSz%A#(BXqmWrP0m zS8>&HEaU#J=O=g_0=XAX5u$~zhj zrk}2*ez!s{`VOjlzoqk=EFI&Yb!ts!gaY~EyOaaGqp+s<>4ZTe_A)~5JoWPB%il|% zliOr86n`7b%&Y->IR!$2@SZjMme0sYhKqhiPSFjO@l|3Tlshj;W2cmzJD? zb5i`sD?Ae^m-?cE9CQu7J7Efi$vXSgBmRjoZZ~+b^>%{_$9c3 zMOAR9{L!OSC|#2rtus{(`%GdtMY4UX!WM4=aMQEz4A+34B|5c)ce`zf$+mmq0{M% zbS=bMX_I9OtechS<-H&8fYmu#E2f z&q(G3tmPMOV6J7oY&@c-=+|f$^WdU(z)xr5E{`N z>(3qvjx0_p26_RFjrvt)r}Ibq*3iSA-0|;Y7pLAoM8;yvOxX^JNZB%iJ8BYWT%S1) zu=uxiq*+w4X6oxbBoJu5pSIpx1YBdi&$`}oRt4_${yS*>A^`;YFD?@PuX~v_)Bt*` zyMDK`?q}~p3VR>crfm-om+F$BOR0uyqzDIF3L(jnbopaKdiEsfFw(ozG0NJ@uv zOG(E7!wheq@&0eUwVrFam~VgQoZWHuIiH`Ry!4TO&isSHV2<3qBdLVJP!3=)6l(|f z1BA_YkqiDDvc02ekHJvUqW=__57DOpNMWxeeG`+_e0ByN_LR+P;sG{A3X9pX5Eu#(_8EH#OW(MdkdfBT;}I^_Iw_TF{Cx-@p|W$)b}`v+s|^4 zOYr_7DY+BY@7pVpp4@`R#v4Pff1AyUo;G7R_&RG13*+vbaSWa$X&;z}p=1 z8QARpy(^YE&2R^Z#xyxty73JbPkGC^t}z@!5RAr^CnDq@zPyerk`0_sM6k`@jqfAS zReW>(Oo;j(XY%`L40;t^x2&m!o^uZkP}u#BIg5Ww0Z(gMv2!kz3*>>V6nmU~qI0g& z!4pe=4(-JOGy)Ufxo-g@6g-uekDkhts~OQ>jIjRfgu`F7XQN0`djJ$K1SD~bq$?qf zuylz0M}Wpx+6wV^EB8i@zU6n--9d}CTDV#tIQDh#L~CdLPHY+|0y7;diZ40JpZV;0;?=gc{y>@IHM1WHHna2kJ;L@VfOz1~QQXoHahRJ%4=JOKW zB`hFxbOG38`B*YkRXrqH5{4N{O z0}nU=#;3;Nk0h@a28~N5>!k9z2!_$t){YD5KxOc2C8LioN5g(=@?fP;9tes3%ZqyV z0Dw^y06sbXLB_+_HGUM$(73-%=5y-e5J$7-12j!uL?xcl8Sy2OO2(1;7k7Ueoi9T6=+V((v@DHj^Rb(Emm!!1FEKn+bnq&b0CPpb=76?$p{8go@$|v8n z8~@Mq)n&Duivuk(bQ{k7BtD(q3ena1sNLb+kRfrQ&~&ajq3yvz?+D!(;joA}PV<(T ztUmkxrjm+sv2Vo&k7wIxgUzIdu}D&>Pu-Z5+%LUv*uNmCgLCWtBKGH0?+4s^mGkk5 zZ@x0yCq4GCdo5%aPs}cGhMW`?c;_D7gjhgCup@fTl`&Y`Kesd zOIWM_#kHSX;)2|II#dI+tS4_cML+0u>Ed4BWpZDg-1ZAAlUd!G1pfLWPfA=sG2gBFlYc7q^i?kFbWs;S5UBz-| zzFoDe?@HMf(XFtu)hQv=6FPqJ=*gGoFQ+@sWH4_B=UE5D)k|L!Q*`&BZaQ7Ec&ayS zL2LD$&@(6h(YH(}AjIGFzwV(?pOgmlcJHafg$>~gIeSvih67OwnSvQpuPO`LV&t|Sw0UoRwvn*UFER(w;BSF7IGJnK4>o+2RO zHovtGCM!Bg{ls$gjK&Jkl`V#v%z6$wXGUsv&``0he+}iPc2n^)59?$|eAvo6 zLqVv;dD{@@{40qAhqgZZxvsF5G_HL`-fOJZN!n0Ms}xK2&P(<+Y!|xdA0?M7?NjV% zYMAIT=I(_L#>WZNGkvq)H>k;`UvkNdX_5F%z1hvBno%>mNL0PK5u} zXp?^*Sc~c<+K!5!e`0?*yOlWWal6=b_u`h*wP#h&hP3?RVQXJpAXRq^&>IFSH9^owLL6!(!YSz5_12Y^DkBND&mhO(gt&k7tzm;EeaQ; z6}b{nzx+s*({*|FY|M(_BQE@#nT_l3Bwf#b@VG>t*!69X33KS70h0xZPt2QVtB#*H0xSlC^1~HoXA$ID;py7KrN{jr4#m#h8@9XiIt&zFtzB2mAM;1 zS^AMY>5<%CZ;c=kAtx!lRpH3Ea-nzZaYRa7J}LrO8ovqp7jqRP9A{j(Pifyj!Ywyk zNSKVIbKE_)OyxgH;`jk;WMdGM=;T*=te#+LNWt*y?vb^Wd4KK!FU zKf{%Inl{Qk7JenrIun9EV$hUGC{~Twc-KViDh|BhNoE9kvzC=*sWa?cT z(WG##F5g`Xb<+?Jx4Om9(frQJY+@`U3MUrZ?{akPF_Bo>VwEvQ*r@w`APQ$SI6M@q zwOq^~aesFxZZ7S7%cpF{%?gEG{IC_F@pOUAa^BJizjtika(x%GoU=f2#g@nA-1%(c zN--N*=Q8gI{kMQYD|Nx_;KDfuov+77N$YW0FL9as7HJ9v z=kRfJIX#P0VG0F113w70hW_S>2jaE@I=Pn}uM)H_i|#&^d@L6eokiSpM#kd6?c-n} z*wd2T_t(lDlNN1lIxDYse3noCw`6eGdgbSv5xa@^866(Xjow6RJuA)~apmU)G)qq7 zq%lM0-Zg9oi`!-1(X*kVREPQ*f;^}8(05&Xigyu>DMW$RhJI<_$K7KZskbO4#;E|2 zZ8CGHzKPDvUVKES^~DT8bMaTLSFcC!gvXu%-+jMK{3o;H2$gKVJu2h}hUr!h_eXX4 z<-1qJxMZCfTXx`c2>L=q(VJ3XvHE7{X!tQi{H?Y*qnohg=Xl3L;m8-YwXvpd?y_Ht z7$SyL-Ot)n)@9?|kLzcZe2CZ{;%%I8&UoTT{8SaiQ{)hrX{wUk#JZ5NT=0V!=Q_Mx zR=E93+Y@(FG>efcBFyGh_Oe2cw_7vbLbRw{Yvi85Yi5b)z}N^`K#P%bhEh|mGdD1i z)A1#tuI5(cw|PrPz9T7B1GN0~S-08CAWl7E@y^olI9)#dQ}PN!oXMJrLNwjkp6WTR zJ8|oeX;>t9bF$5TiK>5P)>C)*7AG>wyw2X{9OoEkADOw3yzKbHv)Re`hU{X|$}hvn znc^08hmSVpZic^Wy>T1GdT#iA)gCqVKE3jV-wj$fdxi1hV?snDDmESZYMgqkS;@|N zk|5jhnv+qbMbuXEWTKsx-sGt4PdYk~w_P!n9&Gjsiw8TtdL&*@*HNbN34x7288^OK zYta6vOJMmFv&Zk2juwTp7Q#u)2{y8paix-ug|-skbDIZge=1zNTD6p;b*%rM)z4yl zRF?^po{UEf?>q6R>o@rN4R`w#Dq?Q)$F6=2(s;X#FQ_E6h_BTav^Y9;-~*;s*lHIP zR%wE`Ij=~p6So7J;xgQh>ABB1l*@6BnYd)tw%3FUY79KCGH5|VF_42Cy>p~hOX$(nPV)Nc_Jh!=hAD#MDBciD1 ze6dZ@n!q*5>7iyq^@EL&iNjZb07W_DwBSR4KJQ}I`DyEJlNi>j{?GAlQw8=sqh-A3 zF*e3#bMA|Tn~$&zR1X-eGkmKwb8ixQ^S60vwoQE7GQ9$$`1TN-#A_pG*{*sOmd^BB zHy+$D30@!gLCn|gIWD36(Qx-|ymF!%Dl+3!8O&P|Xg(uODB&8~&u?s#I}$FHYU%lPM-MMv(*&1EkCQ0)N+&KVQ%vFL)=ElpVwsd zTN`J9`l$w-19#+S3nNlnZe=$0SGc9j%&T*;oM3`t#PL@51$Q+$`Hb6_%}AU5k+N~z z(Rz1Gy+*gTQqLudb~YfPN-04^R7_7wqd96KcUHRcgDOvZ;OCYKh)ixCfBZUSS{U7V zb%d_2E?bq&hPg@1iqEHsw_pV@M?MI(ylgTBk z=zW^g_0P+44;DI)9sm51?P7;N?g^?i-rUY@ z;_D50a^5&6-O>V*r%h3#XMY!i^3c`NhLPmSo+PKVhMCOk{G$E4C($lr;#+LBLJA*; zYEsji)1&&&3$mS3^W5>@gXL_36uk8AKC6zOito2!dvYqremScvy^*N3%q$$L%YI8Cx;Gn>1)i?k4Rgfv+m7#o+L zMcI=*$c@{YyPExD`@RL(G%z|z;N1wcKQ$jkg$232(~aVmCBep{P08iVBJIC+MQ^$@ zG(RX5*N&S_=15Nw&POptOinc7T=nL!XdAb}V|3odi^-#l6_d*A!OX59j-fZAmtNJ1 z^%#t7k|rM8Rrqr$pgrlz=hux&4EJchwy3qW)kB6oXcgs$&FyhKv%KC+e^}aZR~03H@~srLGR(z zuE)47U&1Rq$%8AI>6gCDbWe{MNBTr^8#nsyJB4o%`ZjQccalk+(#FwlbCv21g>My>tvN_flX4b^qk4rTq7FWvOPI?Zx?8RomrwepJ{vr(ryLXF}7%b9b5Goo~wadHSd_Y8+u>UpMEv=W_isJj&ED zubD8S%$Rzt{`kWU-1(N|cQT~G*F`#Q-maeQ2DIJVV_>#B%ZM7JKt5LQ98U z*VDNc&yjJnan+)xEz+>?T1DpaE5kv5BM^-&xFlW8K-g~=pVPx59z++b=TL9oGFfJCtN z+QE~!@1IWLaLJN6fAUC|JpBWm3ht-vaTTj>ZnIq`b~=v7&voLKSGv}h1m!KC{}^X> zw>T%JDsrgZFWy^xtoV&^f&~wgF!9&9eY;zJhIt#LlTzcwL2*&Hoe7Z=A}JiNlH279 z@UBLy&-lf~7BeaIZXp~zCN;H!~ zUjwH$mXGVvcg)&*|75)-XS3Ml_clF1>omD#+G=6k{IgkQ^Qbe6URF7D1d1xwemD9p z=qwxqKq-LkxvboNw^*$>bUZJ zG7VWs4`Wp9XMB;m?;+>ZFA=7@rPRB|sLAqJ*piwzjg&Gc5!#nCKPxwrCBSU8UDy^E z`DLL%hgRVtO!l#6$ov(G-vcvq+_JX`A8=M+D4!~}<|Sm*yQ}cU(9{ZBXgN4-82QIO zyCPybQ-{`lmTZ}rK|V)2VMe!)TBVa-s}23x?kp6cYZ=~RkBprUc03DC^4CPuSHmT4iw3U_g`u_gCMm*a1fB9vwv}np5kb35c z$XnF>6W<`ZcR+D>7s`}*XNfIr?JW=bEPsd}UA zdr7IE-aEUbJHKL;c}J}qP!B>w_MMo@;}S7wQ#K!unIq`BUK`BcDanTx&>83(2}%5h zp2eM(a?;H+#9rF<))5d$2I!2r;Wg9crE3v)neFn7<<+xpf zdKk`Wcw5b`yZyRs#1r--gwRKkfSUKMnyM8gXckA++QF`I-<2zqsL#svqFj0-g`;Ei zsN#(h@>W4!y(lf%tqdYhn?!<{|}6sh5xf(E+|3ZEaG}&mY#n0#SXus~gQcdcKRXD&_OJ22lQ(Jo0kdJ8opI^oXlSd7?AOH) zzoGz&;ksw_21t_qXjuBcu4QVLM#${F&2HF-)t#VHk=EOOiK;vmb*_5?gF|3en7lp# zTCvtfaB$>Xw5d$S-w6ZUE zFL@kjbC6VN^w_EmLJYF(;x?X;GCtauQ$kT( z!)kj#|Gs4AYne`fvM?tW=}`U|11)?p-QfdI@EPjp9}+|ShKeIopJptdA0*F_iX((u z{B=xEy`9mXBUO$FyObcQ``y}fKyxzCg%uRru5$LB*SQGfass(`OD}Gqc&xu%!~1o7 zX#uHQ;PE5Roy}1sH?G*_ap~FG5r;TfDQmkuZ`eVI0m0vEyx*QQnOB;l13q+AcWZXX zrJ>>@ch#r4WR%=xMvh{8G!s$8i!r%tz6cgD?T3=yM>v8&2uH!mwBLW&3#_=(OOP2VWugZdJBjK zPI=GWLCBDOv-DTDNT@AZvw6cp6AiF$(cVDnISthI1jW>|p>=4zMGp>w=0_|8!&eo6 z(aT%s(V(I6>&2(gys*Xzc*GLT-yt6@(Aan00aO>CJ{EC3@Xe+DXbt>yz_8qSEj4oe z)c3%hdF}UMnG-J&K~cg&F}TgO9`XsE%I)X#kGUZ0N+w>1wNE@n4EUrUD?AwvW2=rK zb5nGx+AsjsDYCz5B~Gsy0Wm&<V!2#Ff0DgZ)%+3W*)9&jn9ysaFsW+*Z&EN6O8*kGpAqKisx=HM?qgpIM`nDg4mmyFtaz{gcX zm#W{e-Lo;B%u~%tvH7+hrt)41;-4k<6BDStx^F@z^@--| zYBqqxQhDymJd`FSLD7&x}hlVIHKDmCZsWkbuN-FFeK=z3UL=Ah%!9Hg>QBCT;aYuGO z0EhUH!5>lsd+l8+;$xK1e7}QeepyGGd?ZAh_~++bc9&X{ua;S=0`9tJ&%jugwOW~W zZ)&2~-@A{#{`B)1!z_g;$cyJ-U)ph4Sfz3$X)o*x)V_gqTj|>BaZ`1qeEbp#U5a>` z4nYR%E4hT*$fXfm1o0=niudgK9!#I0glYsRrJRCFB2!~PtQrRkcx|Ct#c*WZ7tH&e zOQQ_qv5jXs{=n(3YXR@lWx!_pAq_IL{$<`8rhh>c8E>ATiqYq^Y&nR>gzx9kOyCQX z=Wm9Oa0{A&q4C1!j3lmaDQy${%1e3^qyT9=D^X^<{Y7X`Ml^8$UitLiRk;2E1#Kw5 z1rGxaZZ8IV_h4@VKd7Pd>A_(NOnk)iKdr84rr~p->8;I8CyfX22sOnNq3?-B`!-!q zia^0JFDdTVpx_eDo9jgBIE9x(r!t6y78q=V=5iX0c@i76Hg%~+UxsHwXsH}~b!p>P zFi)56kJ;?KgZ8?6Fw;+;ne5~+ckx%BJo3To0LJI&bvFY(#_gJjOHOqZ5HheWQk&xW zma1A6E5vng$|ayC^FA&AGL$19`znCqqSkYR(_NfVY+vI&nBJc-gS)EPvf3wt>*N={TLsn0DZ`q z6Q$p_-#Ppl?D3sb6h{JBGdP3WEyKATtJoRD;=JpX9)cY)(ot-G?|<2mLtBwrF8fb+ z!qa9M42BgISlbm)SUxJtr1`<4=Vm7M+GgJhXV}ryR0@p#i_Iv$r)zHUy6%zN>-ma| z*O4Qu$nTq>Nu}m4opq=iitwq>uUEPOHW>+K+qwHDAuvrZF7@T&vh#!_u_9$I=1*Ak zO-E!r?dkYpy;A~w;mHXBYF)Z|s-^QvPlVyV7`^(vM`m2NVuVk3EWR9`x7wAOFRVVq zE(nVj8~W3VTsSev%#78T~yhgi@{%2%VIE{Aw2yuZ+w?M_cWahQG+-rhD-zt15KY6JcI z0_FzY*=0ETe7)>v5JXB?wuh;4ykQ$my*As7C3gUk!-MC4wD7m~DU2|J_3Zezj#8OaF=8Tu-vaiA#in}v?M>Wnfp?a3<=#vb%Z>ac3I((K z-d_9sb!bc(s=WAv{rHLv4{ncPJ?haXy-1yTSKWHy6p%g_B0>tZQ)E$!*kBsUw%gAK z8OWz3;?Xc~uBtJl)+;HuC!1omHjkDeA<{ki0BAK1Dlghz1JhS|Yvu%g(J}k2G|QO- z_D~o)8d}7B$~vdbv3yuP;9~NSbgffHRKj}{vhBfC@VgYvv7#F~bCOY&_98w(kQs^ka>c9oi0_eOzLmMKI6 ze!%u+JfKRAhC(Jwp^R$i5-K4kRCeFvpp{|KC!Q|^;a4ScBqk9>>t@MToTsU>m}yWC zfbW>WrM^Ca9JV*zPo3-FP9bKZE=-l7JrFJs)U-c=4NaviTD<&eTf{EryVZ^RQMDCAE5NVkwh?89c2wmMhI}sj-Q9>V z4XOu)Vd#TCoOY8+I*f66vJIC#eHP3*n_dUbXZbD?XdMDzISt9i@S~sHt-pTMJr7#M z;u)jQ%D|p6!pyk@NjBiS3J4nO^*x_3{fqVxeK6!C;U+Rnyhf=DZS|7}HLrq7rdgB` z(OV{cF*Q)s`y9Q}1x1S@7rZ_UuQmR@uDR-HS0X--gX;9DJV>}wG}0VY$NrL-Efz=G z_FeqoWbzH79=8A5=Q8m@dm>{p=pA#9C2;u#&za8(rHevk65l+KmXFYUk@l4BtOKNq zOzRmD*}Dp6(^Xnaq;`on(sm$SJb6X=R+l&>64mNnAo*C zO*LGg7+RPbLgAw+S?M+9Sd@aQD|n~U7?UCK{zcf4WNE#fSpU;nh^xaKM)2wt#pinW`tQ^Le_(ODj0EFP4XSqr3Z8 z00}!;dIYiJ-JyHFK;Bs8Z-=iXiDZ|S>#_pXnDS!@?ww7d+hcgN$M>^Cd&GM*h0=QN zTzBCx%177##+L-+jP{dwZ=GpfJGhFfDEx*}pbDAzios^$w>8^&4M(Z@h|m?(a^s*W zlvw-Lvb`6|PM?9tOod5hkJ(lqklXt+U$h0@ePwQF&ZU5Z(1-^n+JvbPE`Wg$| zdctpUUlyz%g70BM+YTaq_+2^*D2wSI5^gcC9RSWSUCPvhjI<}AO!OHzPF~$H@J#^p zETLcU42&Hk|M>NTv#`7!TS?!dwsVmL*!?j$G1TVhaF{rbeue_5e2%2+{b7&xvX31?i{pA7Yycn}`)TZDxcpQ*9gGO&| zhjV2zKhsX^^8_K5oTD!~*bjajFEYkqFQZZlDXlUwfb>;k0I}wva5lh(xi5MewKN0F zU3%kL(*WFh-Z_i(iZxvawlw-}-zP2fG@PB$c(@hTg&ppB;a#$oX4Qv@vMW^J9mLhme!8 zzc}@QLAQ{jjoi!}gH7u-z>leEtuQj%Zd%_S5P_nz@@b9c<8tH!id;~$C&%>c$S2wZ zFB}iMk8Flec7;b<%?c`rYi#f$ep98<;RPtXu*Uci?1RZBBC68Jg_`Sye=)7x=gzYQ z3HBWi5C03XQ{v9Mf*>oA3=8PyIMy{SEK&lL!rd>FD@R5d@<650lDRL$6!jy+I^73u z7hXgNcMPVjU3$|c(GfxZ#Q)guS|()JDCC1FRYn(n?u);NyprQ$Sc)~M+cXB2(1i0D zs1A@trpBg*!A#wS;Y3UBLFk?yM+G@Jao>(!5Tbcv>byj<4*%5 z!Ws+{(^ps)#tNd1c7byMOb4=(%CbM7jsJlZbvy;kfuq?0MY}6{;Ofa>fq#Kq&DbdN ze0l>yE4}iV}XN;SLk8^9Ol}FA)X}<>|m4ok0omC=E-vN^n{dRl6MD{~|dOb-+eW72G@Z6?B6B;>mh- z_MC1yY>E_Vz;Kam`BOX{owd& z!k`42Qs$RAkZ#;88b>nIz`xU>ipADjeNEIdA^X|Rv|jF2E6{v8C|S{tnW--thGX1} z39Vr&bReDM{ki71v~nC+&@yZHWQ)~}UDILt@7Jhj$)a_$sjcf)p@gCD{f*O9h1`)x zPG}pQsBTnC$^|0~>1_6o7D5*9|B%>#Px%Y`&?sAkGWr%xqcQ<y?;D_ftjHIZgzV6jF0#fSx1t-$V|#!-a=tnW)woz)E2e?B z4e*JKBHx_4ZXAFxE9UNg7RG2Pr3$XbT=ZQ4ORYS&0=Efc7Vsh2;Bl88V2Vsp>Y@DA z5J5uf_B*0F4NGCE@%YxPUVC^0Qp0g=bCVa1n*qqd;Mgd%_sa?~%@VCkWAXwC$KPNT zWK4#9@tDDCWy>R;+23kJYZYd!gB7uU*~qmZ8%>+#X|A3X6;Q>YkmciCFf4wj!KnrZ z^o%6RU%dPcamfB5w+mfy{6{_piB!?ZI6V}c_(ZfY`I=c>g9;~PQT8t+R++AP7=ZCr zOGZcY*e6!(y#_P@i2rcyvxhgwUNQ`LA+K7p&RUQ9_mqW?Dyxt*;x`+V$SbAttw$k7 zy6D|!UxXh?P6U;l==}Zd2#QMaT;1XN>JX~paP0O(}}Hus86)^Q4o=bW49#VSi{yzMFs5W zDY*i|7tXb9s0`py;D**8mg2CE1L_oFQa=<>_M1WWWcLvWpS3~A(oLol4OIX9 z1GMXZ)vtH}AdGN=smMGKE~Ne)hs@GP{uIYAUG&{lGu`9!f&js$a6uXP_fw%;l%)>H zLgRz|^RKI-kB1=m!ehh#9vcb%_Pr;_v*^qogD100L8}MVdp_w}xV2oB6QF^!c~@X7 zib*X2+v@OtdKCj^XlLmv0`+a*8s7T*9h}mxt7jTIx)e$x`^QKK8OI*-ZC*PLFO=jlwhgVh-$J17^oi!E z;z6eDW37qngwL*4RYKrfSONO+e@DmfMM}?0R3NJe8z#C~0rBPk uAA%t06H4?KgFd<>|8Rh^o%}<1#2b^;pylU>{U;p(?n=o^X5G|(`hNh2daQl` literal 0 HcmV?d00001 diff --git a/feature/results/src/main/res/drawable-nodpi/background_wallpaper_lightspeed.png b/feature/results/src/main/res/drawable-nodpi/background_wallpaper_lightspeed.png new file mode 100644 index 0000000000000000000000000000000000000000..88cb1f9a2b20aa868c17df2736c881806314bf40 GIT binary patch literal 42696 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 A%>V!Z literal 0 HcmV?d00001 diff --git a/feature/results/src/main/res/drawable-nodpi/background_wallpaper_plain.png b/feature/results/src/main/res/drawable-nodpi/background_wallpaper_plain.png new file mode 100644 index 0000000000000000000000000000000000000000..b10f16e47c6514b9f3ae8e111c9878779a6c714a GIT binary patch literal 3257 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 literal 0 HcmV?d00001 diff --git a/feature/results/src/main/res/drawable-nodpi/background_wallpaper_tablet_light.png b/feature/results/src/main/res/drawable-nodpi/background_wallpaper_tablet_light.png new file mode 100644 index 0000000000000000000000000000000000000000..e7748c5ba6d8e23d2447ece3fe89b9f99975bbe2 GIT binary patch literal 9848 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 Wk-O42W&Cdl*Y#JAla%8@DgOgmC-7PT literal 0 HcmV?d00001 diff --git a/feature/results/src/main/res/drawable-nodpi/background_wallpaper_tablet_lightspeed.png b/feature/results/src/main/res/drawable-nodpi/background_wallpaper_tablet_lightspeed.png new file mode 100644 index 0000000000000000000000000000000000000000..59e29a35de88021b8e6e0acced7d53453a05197b GIT binary patch literal 37267 zcmeFZcTg1X_wU&t3JQXRfdM2dC>hBaB?(B*89_1<1SB&^lmSFPeh89-qyYwy9EJg8 z1_j9($vNj7Z_oGcZ~wSkTXk#e?$-Wssj?dB?x%a6aGrBs=Y1wxOGEkoJ-T}U0Nhu3 zsh|S@x4~a;F%#VZ4}rz{c;d^~;Qe2os3<(w^Tpe|g2kqf`f>O&j{iHz-MN_ZrZTziqXwjH|C1io-FTA3 z*yuZ~A2i&!$tyn&J)kk7B^E3%Pp&B$SHH!AauBuRgnbWq;~((;Z8+(J+eUZa+V`m& ze~=^|2pMvw?)W61@~;T52I3#P@z)88SZjqJ0Z+#QGHZSFDD=6f12(RGXAXj8o`3kB zMqp6UBfS#X>zUy>syS_Ps)!H1GVtT@0|D;%Mhzgs9cd{6+~4J}1R>x7_$+|Oj61%0 z^*@{*c?1BeE9-I2j@RdTLIJkOy^9S@X0i3ul)PhCAGXT1TZ_(AR_Bry2x%n;oBUUf zAW$%_d}jzFxHfe8O$fH7(}@|2{36s4Y&wBDx~{TWsFQmDWc6;J|28E?zXSl1_HngA z#Z{j`SA>p!aB+pt-!RACUvDNV9HsDpz5skVAO!E@><(rvDaLZcscS;r@#eGu4z>|8 z4L-0>x7#_^aK@s<1)gDbGKm_2$T>OBo#%Ni9v)PaUb{jPLNfmzy`gg@2-PyIwYU&9 z#P3rF+iYM*@@aHus#Lo5EcKFY(+Ytf%;Xt5vz0aJTY;(Q!AFLs*e6zu7whF_P>kjn>s&BGU z-Gy#cHFAOyXj4x==8v&ZY^>epW=}koUff)Do_T`b^6>u5rr@bYZ)@skY($tB>++Xg z^nS^18F6?>iBc@4GO1t?>?1DZ#&lD|g#p`P*PcK|kWIkghX5wE&z0Y}Xa?%lRtAe= z>?fuh70J4%eoC6B7bFsd3|WWgf8e7?vfw&QCbESr zJVx9YWo)obs#d$W6**ZK72Z4VTw6JsF#FJH+=)2zRsM$D2zVJa8MM3q)492BTi$u_ zm$WJ6qU-wn+F{xCJlSAe=FH2m_eWbBij?byu>F-a&Fl4EIK|1Sy${S?{rnf-+n4+f z+P|sji%;v{`0b&h6`dEPx`knI{PcSZtlpnOFAI~r^0ouNf$ozdj$PJ5}`bLrt<*xsZKOq`mkg++Q-d%U>tj14{aHwlCgI=V)_gQP80(%U z;m?+X=Qm+rF@_`|P$C3=5qvVBotq((1?yl2$r!7Wjw_u>%rZacES;|Sw%~ZOdqo{5 zOg?AH3n9~|D44JiEsdHa^(0(s??yeW;(F0cbisNUvs=dNIUS=-bd)6^FWkJcX=p+fL7HxQbeeiS{#_G7~X2hXZ?2QKy-^5Ld#yUq&Tc#HWP1|P*pkfLOr1A zaA2?gD@Lr+{f}0n zWi4;NBJkH@YF#?FpPa7~urRB0-fG~(XDv%u?nmYx_s07r^F6+@Qn<|h>1T;AfS9{bzdrwpQ@Rk*?BhN4DE#8yZZ2{Ca) zlF#57n8V18*zls5f(RJTkFxKh^L<dgiY26bv|dz7p^wW$O$jh^BX0@mnqzl=#$?nKxU&H(vwYf^iY-0Ws6Jz(1+wXnAEQV?s!pF^_|UH?__baW@| z&xbo9>Wue4w8oI-tP0PjSfen`DM-8%rC0$xt6;r;k`Zb?!2Y+?kf}`VdTISmzBiU+ zsxJoY0DU;%UX&Lfxj80<JnxfSgU*QMz# zY$>g%xX;9cL<|HGbDI39!sJ_JxpeM-ueI4(Ju!2$7~TGpm>qX_0;2fV_U?6x%x6w! z#6P4DZ$inqCMY=4EK*!E4Num)A^Hxz+45u~-NU{4;Ui;!K%si>(zt(<%E(PTgm0?&oZC?fh zY3iL9pTCrOJO7bK?HAKOJRDAtzwX(j?Wc<#QRtt*?bUhB^(I9CzXH+e=1KGN&zQva z<(50yL1BU4KDNS(55Ai2XnJK@30s0q*_@1|M@#t?=7?IWm$=yl`I!|2X)n3)sc^Ao zg0}icZE3L?0A)1}n!C(ocfe3Ges)X^K~1N59b>6c^FOLblWB<(lFs)1#_0o;*eQ>e z1b!U*ef-w|6UL#r0ouA*N@5t6@?+)g zpB39tO!9bR_iM#;9$&3W9xO>IyaG~oW$+x_Vs>>Dn}3r`4>o3aT_NuuXb?H?fCh$g z%2qzLR$2Mv(Ydm|(sWJ9l*`nJZ74|-aw-G#KG~mh<(!vsaxwr;Z&Zut3G8o=%I}Au;B#ay^0{oq8TyIX<&TR*N zaH5drYXHB7fRwF9@p0Ui`h}iDRXhHNESTNNt5tmi;tRc=W5tJBW64XsYni#P7!^CU~I--0N<%*%65w-LRTjwP@9gSA0Ck zxKKnbg&brMxG}n*7%A1x3+AXemUiE-VTO^4qWRcmLHz^blD73%Pj8x_{9-A{ORlnYT@VZDq|CJCn%x;vCa zWAli#$;OSSzBmvdO6Sz@qa$WBJecl^maKJhWepG6irGnT$qCMx$NH`zp=z2!q&tO4 zM)5{pt9qNd-_5VQV7|22JHvT}PJZ$o)JVf(W_93YDMsP+ut&2XHvs*JsL4@h@NMF2 z!G7AUJL^wLb%IYm6u4A1tj=;|?4RlCB7na(&32C&i%qCnEzM5i_-rDEp$H?lZnEo6 zo0DJx{jssgw+Jqy>ap+Yu2cGH*Rhk8!czy?)oT-R8*A%-M|GzZ?q2SGj{bZS<3W*G zD|>N+D!OqZp4WPfhUZP3|B^Mzl-XC?7%Vyyj2@2m`#q-@gh^R+vQaNai&TS{ANtQ0RsAjE4{|@kR%6G+GQoIL zV`W+_bBR?bWd>20r{8~obLoYbKNYn%TC-7Kz0tGkquStNvAW3F*UWmZ`$t?8z3)=N zxL{8164+y7Ud3{J9;G3Z^iG%RUF@btE`3ej@455|_dXhZdd(f&exBOE8UB#(5{nk8 zqx}fwu%D?jX7D`=T%!5zVJ^Vgm}Rb?B6vPGdn=R2s_fzP4Zr-K6VHSxlXcS+Nv1tFJZ* z4{VIu;R}r=x{1BjnN{+^zodwjc}DWtS&vb@4KPL(Gfe5pq2@ijL3SMc8~=-rlL4X9 zP0J5Lmc7>x_^jgA3RIFX%Pz~EW&(`VNORRnH|!1{%>qkpoN4%KzweY-4y42GQ$dm) zI+xBpIyq+ETa|3351wpD8gx?6-JwPBFqer@#WYexq*;XKKN?}Wt1AbBD+<4}9r> zr5EI+*y6u2Hzg)>S@6da*-^`l*6K9z%TW2MTm+<=+^Suzr28}9c|xhF;G;zw=1wE+ zjXhGtlMydIp=UpyJ2HM(+F48p-LC;V9X=XnuXz|WANRGKjf}wyU+!_jk^s4M;*(-T zc$kIxclz}S`O5M5<^Bp(sH{O=>=t}}C7`Zw^1@-^#5v}(+u_f@@EPK>C#la3hp44_ zz>Y>-nz6Vwf|bfrx)yV|^darYx{G3D|NKCIW3)R|_2e7qt*8`Q{5wE&R6}Lx zQ!9+$92Z7MTC-_B-1`(Ax8Ud!cKmcP+w!&l!2|E!8bW#-M^h(dLws<4 zQSqKn9M1ogFMGD0l@uSnTA{FQH{CSuS-vWHs>Jr_(!+ywG_GQ(=^xh9T&5J+E^q=C z?o|fX7ly`VE)}~OvO#12(rt{C1g*er2-rmY4owcUs!apF6polSWpFL#GWrkajw~dB%;aycF;eOm{*1`0MGttV!0=^55e0p1JUIGKT z#U|tQ+61*+1h=_-=^>zh&>y#~KQ(X2!X!*>!vXi#5IWu~9uE*=+9{9Bac!W*r?zn% zJpL=Q-jB?<9imnGLdVipyaWvoCITAh-k7U9bK-9s;?u7bXAmm-$ z28SEZB`Y4FMMr+xZT3wKwD&3n%e~*voWt&)OH|~M1KVR#8SmXtvRh+f(?rBk6aWy$ z0uTUCqAQc~WBPVZC-unjm*4Ev5Q2NnZ;)vC;saS|+$X(7-8vI9$VY=-=HVwVAg!mjd8Bf`g)(giCH}aA)l!^K2;|56zI}u z7Jwk9=IEKtEAF52^f4-Vr%vHvxf?Vb-{x58sY4_vuD#y8|gJJ7?vYl67O?@~Qv)+T$)Z`Tu2Pm6kzP$7IiT zyYp-0q{-neZjA51c+`bS6IMSZtD!G9z%liMe|9_G;iG~ClJE0OmaGRjt0-EEDxT7? z%u+67zH3o<3%b&I!340<2c-WLum1Jk9ypulRN|hs7O2(pU|3l04XX4vz;M_5zCJgN zD@&rBs&;d6lfZf6Ax=(_fyAS{=t`y7&wSTs%v)2(S6 zc86^z{E=uGEivKKVyGzxZ<@;m-Ib1wXh0P=N`sH8K-F5%bM};m0_6dM-hof*3wJ~I zqmL~0HWLIE8^0O_Y`cYrkl%TM1iL_$SD#kEn`JQG&{|I z8^6+1w!E>E2%dY>IVCw~#m4+?tPVv)c>B@ei`W7h`VaoJZJ$hkK8IA2gchT(Dsb~u z^%i3N{V22BmUqpe$jd!jb>&Po?cZ zHQAy6ng*obpQrmS%rHg8;;mPa+BN-{;5$6!wdEgW0nzlv!0U8BM-1RDEj|4-2HbZ&_xn3>-m%l38hS}-KbY^R4^ik&`w&! zj)rBPmI!n)&}zmk*mf*?q;gMpoI*)Zz*=M;i=~HtZCwMseqa(8B(nYC(IJw9!Jt2J z()Ime=Z6bM%?qWIN6@OgAaR@Nl&7SHCYi+z6u`8Tz?MV@AMpI*gmj!$#@$c1jY+9 z+GDk8!bODen;g(+mYrJNRkWRrB#)2nqv^2I7>liDL8=lGE4e~m`=^l{SZMD-EIoMM zfbq9b=CDzT_aD(P@=^X?a|uhc{-``_zIR}vZSR2m;>$txJ+YEChX@gst?0954E98A z$JpQ2ai%%B(SKO8h68W*oi!z`B{%_uuB%R8dv36?sgA5go{Br)>8)iv+{<08GlK1fm-WNnC*%Yiw+ksU2?%9a8U>dR8!hr0|jEB_jXcp+dzK zBOg`A8U#iSF~zMzUG<{t3_>I(1kx3s4I)h4LeVFb_&?H?t1TrCbQUf+fbZrN8sES? z&Hx(&N~8~*Pu*JOXP3St<;oq58ee}lQdG6sxp;qSKE4mBr^+5t6XbL>g&4}ulYaz} z$=e#IH^-f~K@dl6!$->b$M}fKa~NDN#MiEDFIvF3FOKYRiaFFqmZO*^#_|4#4Ib)`Se*;&%DmgpgGlxXl6<-mddR#nHmR%5 z$~Lql4n9}s=RP2NbZ%^fS}=jR6MFFbtuA_E49AxX2M9ydJ*>&gHpQ#09)nx!BZD$A z7O9(pXn#(+jpFZHMtc1dpGV{mU0(0@(7IJqM)6csP}ofx|5?M?o1AIuKVoCJHM}KS zk9tDzaYW8`idc^waDkJR^`ia92%%l@r0La9zLQp9h^BD$%3Nwo@O?tgeA@{>jCk~t zA?btaAOF3O=NI#lv0+8$?~ZC4Q&9G=i%!3N3@ds<@T9Wyb_ff#zjm98Cq}0~=695b zPtcVx2iAL0e{eVk9s}BEnJ=R8i~q{IxOU$hF<)*>#x%QC+y3#&Jj={WnX`nDnsCwr zkw%+W85z{vxHuxGG0lBgGq46hvHIy$1{X6gK7C=48Nak=u&@)>r0Ctioa-sT@oi=U zOr~{r2(K}s?2S3w(1`H1g!_QJ9{#$n(qPF3LfQl5^U>$-3CPAz85jAVpXd^g&b<7$ zBh-||n9Jfq`k*6vxWBO^xMzKBlF}rkk1AnJA3?;U4~+fxoairj6>)nGF?f^V?qtN5 zvgTvxvA?bAov4?V&?O9GGM0RI?icmc+&!=-1?gJly>>rSIlK^oG_mzB!f(+a{O2BV z+i>j_$>9qE=z&JP)6ay+ZAp*Td3ygXo{bh4zm}YU`SQt=A2Q&r=@As%lHu@ugKx%z!%;Q7eUkdpX`SqV-arqCX(>|ow(u`*%Ni_n_J&1j{Z^{=`X3Sm*BS$JvFl|=3{Cv z_eVJRD?e5Xj?@SKZEL`;B>s%KtV2vlat^%qt|6(%H?yxaMEq3~E(Z7u^$=xaz~-1x zMo3T5_pS8X^vF#p-_k6=FRPtruyo>zoUEM-g*Y=vPpKkP%&?0W2ER3d_JnOxY(s zy6UeS;U65E^zK3Xvc1yjs4k~nwx^`XU$+tC;Q(hl8o<9KYZ|1Mue>tVU4vp>%fCb# zY>BM=8@hgT>5HoJ87aChj>{GfowgVg+_wrvbn*gC9nl7*isChKU@E{mu?nc1Hy3S{ z)W-|9<;O0muNGI<|8fEWw${1A=H_B8JIKQ8zm45TGYzJOd&Nh_w?jNAb~s6&L#%KQ zP^+ddbSQ+4DaXwC&w|_me zn$fSH%s+9t z`Ifn#?^GnZnXt~W%pQ+i7F!tb}usjyfTxFFZx&Wu@P zDsAUNtSssA?VUqxV5K2FjxG9*~T zgk~7hY}uZVV{z(Ut{uzkBKPv8@ei&)9y2bMb*hha+0BeGIyaxWB8ozfEhE#}q-w!vSVzIIroK-mMY4XD82-uNMUKr&FB6!!?Mjjzejz*fbpDUTa zGAi>{G_#ELkVj!mdU{*aF(+$XWDHf7-yiF{BptTSoNmHSFyOAI1A$yk(S7KV*7)nF zowlk_4w03F1=;eN2VMBjqvit+4w0JlhD{wEGS3o6N{v&4cLzr)OJnYNlZ6baaT92o zU%ozXym|My-&{cUs;5Kt>wi+|XY`B{|Mr+mWFi_gpN2sNZ>;w-jR&ma=DZq_rbrkqP!{1_3~25+QaPX8g|gDZ&+SpB=!k8 zlbCoUDR^pu3m1c%-aWHfL((<76Hl+Rs>;jWS@u#FRu8YHyGFnrDl;< z4oAxCSr;~PSyQi=xcyJs)f<2Eq8XKmGLqFmMoM1-j* zp@?-*1r$PruW6P{K`>2K@LRi-U=GL0n=LfFlungD0{o$J2Gq_CVVS<2A9#6wKP51u z+kfjA9^bj9FlvGx)9V?C6}`0uBE`42CyGgdB(PHgv(g$5b93NM z!j$g?PjxfYXcYl5(DT?kV4SnM6c1ir=sg(il>LUSgU2OQD2h@&pPkez6?N41ARk3q zJ!P@74~GdkN_*Jv&FcM;9r3Cv=JeDHf4DJ1f}#v8X$&a+96tc}z(=4}3tT zOK(haLieE~F$dxHXln4Z@>K`|&Kmuzb(`uA@77ii6DJWJ2#Hy5+Y71t(J7qGyK|oJt3+mP%3xx%pj)> zq}4pN_HPD^vWr=P*y|n?34SWeOd_@!*44M{^Fk)*tT4bf+rB;e6NmY?9*$Vp zdzg<3zXUo}L4l?gE4f`-5L;VIQ8OVO>cQ)o?NXfTZN++1LD9;r*sZ$rLSx?kJr3}% zN=l#2hdc@9TfCK}N)Q47k0C7BaZoW=uO`dMi2hdZmyRl7eK7t`ko()%p#T{TKfg!y z_0Z*-(8Y56jxQ?M@z-czpBzLCsK?1W^7IiU1FY~nO!tO>QZQ6tp!UKeay z_Wu;@9_kYWf{gHMk9mrQJ-wy3V9o1CTeN=sThk4?P$Hnu1|MXhGARwd>?omtoW$&z zEzm!oCc4EjIQ^E49RM0M!71El)9r+|iJRpsC`L`y*ly)l!7g<}!5ex1gJ!kDgF)3T z_o;Ijj`KDWgaCl_1H(W|7Xlda{5@}I3&?9+=uFW(phQ?459GWwig}iLmx@bFQx*Tk z4uOy!A`s>_yaDCFhoCMa1(bX|Zs0=Tk-_$9`R?2TyyS2%avR4{+3c^4%Fv7^J|`1i zAY(YXLjX8@1!uKYf<^MRfyY+TH7Ip?x%U#(PM4nH7_dzn`uaec5OC;CA>ektp2*8d z(hbyCIeZD{()o!glfQch1I-~N&<>-VxyYjUEE(;5<~CJlQ7`^4*kqq`UA3I+w$ zI{I7|Mo&=!3ftkZFb;w@;sQ6XxsKsw@ z5=?_@6*bU7q59zYC76HdVhUiUh`6q%_h16 z^@6nWL-5@)vqOSM%UL+;oMfj-<*B>PT9-W8P?`MI+BI~T^9354vaMjFZWtv%Wi4$_ zqRjznO`oz?)6mn`HoS7Jg~Ri$+y06aSF71Z(j8oFTxxtHR!<{} zl=Qw0+$=MdXr4UznWso@)~;WAYMkS}0_QAiB-nwP!!&Nqu?*CmBj zalNy@sylyVa=r!XhK6g)3Yabrk66XyW{BDAzS_BGSD^%7$i-$4pY_jl-@_B6D5&jM zPF(*8?~cYk6p{LVkDo9!W>{PprWB&>iS1hlGvu7u@tqqClgNJYC>`E@oSsMm5s(VX zXRKH`@qKRgHHJgDxu~zu2RCOytr*U`cpF^UKD5-4o8EP)PIw4bi?R8^YhRoDFRCvO z&u#TXXdjq)DVxb&oF)bgDhE5t=UBvMZ}UeQsZeQNcIn=n9Ik6NTXxQt73ttv>2kMO za$0y+SInbW>%d&*r$8Q5x<4arQFvrekLGpiIr0L|gz_14`2eYHtRM zqt~@>8wFKlpBu`a`dc5(b1slkTNo;63u3iSpz@PF6-pxBi+>Jo1&rk~FujB<3x%0t zdc$UO8t0D;X9mwd%Gh5wH*TzM%g9S--+X1oZ2Jj6fX~5uPJ1@35!nV~+BeQZS^%YPmt>hatpQm5P!C2+r&4O9q3l z@>A0v_uT)qD)B(&QLjn*^)TFseLSlN_!Ox^1(zsF$|=w%P?(O*o)$MfEQ25o;;I!H z=gGwpkCD?Ce>T&{B-awsMQsXeV_6U>&uu|T-YM||ts%o#?izLe8>{thDXY(@Gqb^G zWAv?T3Qc-Y+3&asJ61I40w4$8Wv(ZBdiiKjB1?JpEYhC~t5wyVoiT5PMntuP@ivQp zg7NIIrru4_z$)rghAH(*gH?9VCt$u!FQ?YJ!hu9znR`2Y-tS`tP26tLov4N@50~Y- z9nbvO?CaeiWC7yj!yiuI-}ceL3R-FCIYvKJDm_TPub&SG&=7O&Xs$Go_qEKT1taggU}||s zNwwtIx?)~L>l2nO`c@`3yH)F@ZV!%Br5xG6>seC2rPf zs!^{qf|oT|(ljnbHd0-y|EtA`C?)IWkNJ|<@C5qVZMy+U--4jq3@flrms|8dJt1qhg3K*S0EfZFD9u(4N1^{yAwhVx) zapTi3d@-l36fFjs^8d6xQ+|H)t+CTF9i8-nj`10je!4KmYRa>=w>)i0sCl0hP`5Mw z`>aYpK#V$O*uFx{2&*MdOXDZF-T9RC`^dN)S?sM=DX4sy4apKuf!Wgyz}@TWC97pF zSj}_C=Ff=?F{#R(4k)K6i*|-fU#I%1j9BxD-|mT+*t@8vINQUMRBxaTOs=z9g2SvG z^o=kk0qpM1ZsC5Z`(;yUPs$ilYdG%w%y>$M?VE+l`^B{7nsK^R-Um29^tsqgxHbFg zblUzoWCA?7B!VNCmqgQDZ@t3gi=Ln9&s=c-_g8a!w{i895S&ttQMW_tV~V9-w6wan zCF5p;o@HVxHKpIP?asHLHjg^`->{yfBwdhjU`j;c2c4=A5iT}MzO=3@kfDja`CEY&OIY;N7h?lin zCUa?ilDTo@H=g?2(ICO-N#cx=63W8YP(!`Rb4d$v^RCG0^%rnmV6}oa>4U`d&EMl$ z=^1Q}i+n32Oc1&{SslwzkV&IHnW0>Wf7Ho?jVOP@SD!Yy!b_TWDSZ_0?G+5#lV_3Z zwlk~Kot7s(yuhUF^;4f+=jCYZjQCYWEjg0j@=PG|oP#-2F~I!S3m zzkKF0lfkAC9h>bRy?68tOdIMag2siO%kafUM`Qy`k9X-Q_VZxZ^@AFNsP}|^8bdX}0y=U%p>5MzRn{*~EXj?9X>Vgbl26lhc2 zuv$C%SDkVUMRZ+1b7_UPkg2y$u62X{_`h7zxz4%Q2VDnWetMqMeNj{Yp-loA5VO1U ze2(c$yR2i*#up<6sLh#Rq<;q#!QMS|z+W*wr!?HY?1U2mA1b++{Z17aGQ~b1$7jkY zu^<9>rSj8!(KcDWBl7u`R)x_ZZAgAQiqV>cq3)zY!3UD5j@5dMx#N_%UZFbJoYMeG zK1;na^M1Tz)@S<9?j;oW7ODcK-;IhgqdM<|kgF=}^IqB%C9fVftums7H#m@jQ28m{ zhkD|VkyT*fl|G(9@-bxCU`a;Jmg+;@ts;Mc$Of)+ae8^~VY3axyo3Ql*iuCRI+^nk z^<4bbge~dr@mU*Ifw;E7m3dfr>nIPEW9Xo2j0T+v|Zjo&u50 zbr+d=Z%`B4(Qh=^A4h&qRZKk9=hfN*X%GqdmD2fb{tL3@zfUDlVrMi zwI`hiTGs98td*F?n*f`SC(*(%D(w=}N|CEodzg6%eHQ|BIJg(D%i^M)-)$fXxXz9& z{g|&XnwB*9?+eFGb=|cs$?@sriz#E;Z?=?`D2Hjveg$91qDA0j--L6RG@va;G`Xv+1t3r-`{-(YuCvdhPW0E#*M zh1C5q;`B^sgc~vH37q-I7=PY2Sy74gZs>ZNfP$no(}Ua2+T>t(IexZw)RouCw(UQQ znK@VF{BWu?<#{rJt0-NdKk651cx^f%-Bd{gycP!Yv~gZ8#|ra3DFvqNVu{ZpO=xVM zAU+YS`kh~L^@1`T8j2t{;5OkFq{a3KH;vc9yU)s&! zhgW*~CpI`33nov+v|V9+L^luLENwX140;_N!BTO^W^x*o1e_Gobb&8v zL-GYzCpg#c>_=|U?rgv=w*3g(2co(HQ2s=@1DX=d2c3G%uqB_+$bW>xpyJ7Nbc&U; zPqubrkh8y@&BnnG`#_u$RJ*V@`UuMtL)5B%Lj4V6Goi{@E!0Davoz+W@SJ<1{$n~! z9{do`0pd9EqV0!D{da9v&9M)>nSt*$>vY!bi#2YCuUnal4ORrIeBSu@d%2W3M+!qm z3uJCOU$gi|uf8^QBe!nizbf_GjytHPPui4T;j-8(16fTB+PJ{VVkmJZ-3b zc5mtp$@6A{ka7hfU(3LB`@M*a!u^lk<_YX*U-5u7=ZU>bUjiC@;`3H$j>i1TRo{>& zV+U;(G|6Mju#7#Cl2EVGaG8!!ZxAO>ifsPx|NoLIdCxX?3^w;m zgMzqYTuTky7OGO9It*@DZk%4Xeo=3p`5w$VT0saxK!)+|vhDZb{9#vU3u(LX%+*4s z&JiJqAaG4G!kt=(@Xd)`)d^r1N=&?=vZ!kimdN861z|VyZhOR2$cL^6mw3S8Cy-2J z^}?CmT{+WHLh0+g7ROVSZ=b1??oi=Qf5d?cxg5^jP5Qw#Tp{-6(!m;7!u`~Te1B`K zPFmfCQ4_?Q5y7B%jv2tI@xFohM{9R7k0~$0If)*PHZ!9^TJwuZRXqj8$Nz$vu;dz& zx36$|a}cCsWC{NdksgHn`7CY;J)_*k1O5d`2q5>k-P_pE4i9h`#q~DmDDmJidRj zQz_Z=qhPW>561{s&%X$boPrQc3nW}OxDRscKX}M{?-j0mqPs~v=^dDCd!+92P!p`< zekCaq#{mH63&_l->fIOuKv)3wwgS$HC<2vmJYckWwLDrqpQ&7}QyHp)p+Hf|hIR10 z$^%OYrq9lbzZQ~CR`^NblHNj-r_!JhuJjCR6a$|qclRXy*n2!*8LWbFx|EPwv?mXd z0+&|d_k_@<2%qc9uANJJH=es^6XYz4dOTZ<)8E+XUPokw4#S<$GzFHt!M6P%Y0Q^q z14{*st54H1Q)IvPpajx;%w=wR%=(dYkE5Q)ppiVJAKMa7uIxkQfld%f(tgCahSO7L z>h%vWmyIu!&^))ORgfcpu1G-L_v!RZ22^~s&fK#$D*Wi~$Y;ZG$+-j4ngnz3#No5-7+9Wb0*I6+uu-+;A@J!bX08J}|<_rjg` zGs`;T;n7~MIPLqV_2!x;LIaR)3p;YxA=D2Qqt;T^EV1)*QT?mZ zf&Y@w5g`ZApqJB=b1w)-EQjIMlcSawN|qf42O|Rm?);oq`i=jj8WCfm&eN-n=AFcYDk(+`0Uo#d6p`1v4hWznA>g#w33~N4O2{FL^#8s#^P{ z^LfcF&;faqlM%k|lTVTU9^=0aVjA;dH1fd@pcLRpTL@q$FVDPOb@@f9G?sId{>fPqS&u~Vf37d`^BuFbeu2<8#oqW4t)>Ea z?_Z?w0r#H~2o&`bd*HuElD|>TGVchs!$N8)ZCH?IMd!|$|?|k@4Oy?-B=+dB!`+cg1KG_TS^$*e#!UZSq@DT2fI+O3+&?&tU4@kC^ z87(8qn8$b2lKT<{>tADI2(#PkaH{L6lUjhY&sm=MVuaj0LcBnoT=ccX<*Xp5*fVOw zwFOn_V#;{-b|a6gFP}H6XNDgT{4mkKH!OR)a&v^?Q#u-q4;C?XImRgj5b!z#?c+G6 zi(d|*2AEzyGy6-h&dj7J^CURh17iELUpDL<6i|${Z5(UbsliQXf|fRZx^^dn(JtM`KQUK zA~Olph)~0-INRo*_|;}LRYDDMeyoD@-5Y;4>btn?%`fG&bN@Y`@_9Kor)w`(CV~7v z&!-H-Lqdlqbc6;Qtb2{J;k;xi(e3)z2Lx*#`tsBtQQj`cbvtfK zi1+KM#kniZPltXfK#HFt9yOy$eK!hD14NM%6c^0WFO5|;zZUxvr6~eXZt6M)@ViH1 zi$TrMAEUL>!WMqyewJ#Hl-}s_!q}g?3y2QZF)d+JzLEFodk@ID{2Y%J5IHXRa{3|M z%BQsw0{J*m#ZcJ$dspPds>7D8j9ur92~03ouF7nsv9QirIibbCc_7?k5wBV%n= zA)&36)AunCA%%QK4BUS;y_8qH{Sk3*zaXUu9b4=qXwmt*4!jqE*6SYm3D)|xuQPzj zg1t6L@Qxq%fX4?ye!sE;auC)d!m}kscI#-U;c|%+94)$#mlj*R4)>1q7`8;%9nd6X z$WS)Q4|A*GiYN3FKpe3A-`YFNu&CO%-47+9(jg!rDBu7h(hX8dBQrFNf^-WA(jg6k z4D?}T!L-vF3T=Vvl>d0PRaUo?{mr`R zQt1TNIM3A#(ZGAXm4Cg_G{GsQ_V=a0@I34ax9pRl7MB#tukiQW#C!uk=RntJkz>uq zV$AQ!C}ERG@51hd6Bk=PY~Iyh-AneEDu1t)E!zT|hYU#_ z6i3<5a3)zH_ZtcwrcSkkc1!gSn+iS^mOLg-?wn1R7#lbetoC^bhihZax94nyotKMj zr0~X7>6ObcipTMczG;9(%vKGEMmH{7Sw?m8ddlC9_m~3vqJjc&0EsC^m67-;mz|q}vwY&JI z!1&plR!#spu}`AZkS19#C2TA+>*}D%6G{slpf8gu*|*8oFz0Pz3n@h1{sF{(uRKtU zy$Eonn>qf7lx+&OtGlJP5e|+D>ycO~?#|n{3Dzxq(AL{i!s=Eo@? z*YMnT{rhvE`7V%Jka(y>^)yev-5c`WlMv|Ge>8Bf=pKUjM}h1km#S%2NKxdt^oOF? zKc)$~bf*8(@-@}=>-9%p__@Nc=ehLzG~Ta58E3Dz#*1pqLG?t2 ztsNqrum65cKwN_{qH8KEi-f(-CPLQbYu+nC_;1KAh>723b59eNc^@z#QE;;_gg#%F z274(bSj0dB9n2iozg;|P^F5UU>-DUO#Ex^BCycuynE)$G!f1jdf|ClO5IfH!<-)N= zKNI^}q@MGXTwRZF;(*5JUE)ITis0I$lcNQN5_2v^BukuiLbz_xFKY3 zIyXM+@;4(e+kQ_g4Dys3SM!KwAuYa5H|(yf+vbd5{(0#wSTFG>q^W?&Ug@n6|Ix~R z0i=Iuw|Sb~SwxHxnW~$xw8f*nZ|5Ke@g)@$8;=89hJYk?j>I1YA@rA+Fz~Uzyz-)j z0#D0m7)ddE2h+=uK%G?lU-t^xTI~e#%nNeiQ|4QlA%Rc!J9fKmpOqz7wF(yW@LUv#n z0}5tYa8_ZW-H!cTynbWRIRYG>@6J&OR_4u>3|#<9$$o<{Tn16}C!40sCV@Ex`2xJ= zzB=1&F#Hn%Q@|D`&iOG|~CUEmCwtW%F?=(?+mr~Z0_+TFBN=g0t zKiq{ERIxpHo>gU|f`9!18f6AAdn)j|DLg%0f(He-N$f57+|E57{>GX;q!OHlt*G?G2K#AkAcevStv=3yc?*{I3~QBZsjl}%8D zZJ!4!oaQEmEfZkR^ z#OSB-sLVa`HESm!S6h%Uh{^gYv$jN+4w5+7d_1GaBdP2)FBJRedp2yIc^}5N+}|+5 z03BL~9gqdAi3m=eUV)yt1;d@XW95JIXDWtp?|tJg#b&?_Y9tWQw`1$MK*HOB4Z+-Y z%#SlXF#CCyWMtK7n9>B0viNxh;k}%}W$z;$9Tz6ElNvhB|fCN~9eSqb7RO8d2J^Ae(XNc5Uq>|n_ z6uafjCVnpezHM;e-s+jnvH?N?i71-e{Mq#l=z(;w*r^4Uk%$o2G3rulnr5Oijtr>I zAL0P5rSpA1wHu_@83;2H@mqIIk1#GUnT*xxdd$mq{Ap9Ip8gqOEx**raUyozNR8sjPEjl4mQ81y4~TO zMN)Wbs@JwZOMYFJOn{9s^Z<}j-qrnV20T}4R0!)G+wGa^Y4P+bw?KJpK1S$t zRqdu0Wmiy3@!+)s!Hp$yXzKpnh3McXY(L;{z_K)Wf+|U5Z*zLyVBb5L+2%IWYn)=d zU@nkJw+{A!5_g91z~u`};FI-Rt+-p(lKf9S4?O1E#HgO5=JF|_OA+6Tt&g910`d1f zC8P*^1?f)U$v=)-KLp&Ry0L_x6mCTOvseAprF)(+AwIkM>u6-H1TfBr`=}1sD3_85 z`Wn^J5`X0uzCZQ!9}pac?cq!J0G-H1p6`x0P>BW;e#Q=%TE*0uZFMZ31c(=K1q9@M zl@Rn~8B8S*TvW>9Rhu|s6^?ZJVY+n8U-qGa;QEjsCmk@VARa6wl24j)uI%|%vZ-Yy zd%xv}VB9=F&(Xd+jvakZgQf>BL>c);ClbGy1G07t3rM?Z_mf174ZqRgHl@*2gV?Sj zMk`h9-Png>(+~pj)C1!*d&<10zZ(Xq9KhNQV<$UA{$d2nQ8yd`OlqVMY{(tm!$0Dl z>t3P)zM{QNXG{J~1v8w0lbDS$?Vg_NvK~&AOp-v-qrvxtJaPecslBJthP0pj92Wp5 z=5}Y{4B0NyW(H&4B*Ou$%Kz3NB|!if0`arOh{6yEGsYDMUR?=5oCU9EY(RJg{~Y;0 z|BN{u|39CW@x&1e9S1{YjF7RJ1bCA@tHYO7%0PtN*k)8R-B28|T(SXFC#%k!y?+_2 zaLh#lx`rx=jnCq#OAsFF#DYLIwF9Prf5l3{=-h>l9na?} z&ig;?R};9$C9R)zxWKU2(hvTECyNI@>vYiP5#tu^3;FZdv+$2T@qNI>NMT2_3z%c6 zY=ZVXA0APBnNTt9JL_JTg8FR1Dws=>O!L{XURN~mwl%*G2p5~cSS|1RiH174l<@AQ z+FVZdwR?)~VUa&b=aoz0mu&(~3WrpE9((NguQPKmzbvcU-bW<{_=i=E7?8mb4p*!1 z2Us*{p9D~0iC&?mBiijigTr9X3%Tlj{~GWx6e47q7nqOU6_K5TD(0Qe@!pumh-PF) zR;f3utJdaHR-Q%GQl1Ug>)c%2EpqIC3bU_xr;7J&Lc;am4c$@Drr)nBpka6V0Xrxd z1r~pr1*F%~YMsu3j1nnxKeA|w3bNu6d{ z`(MqPGud8}z&4o4tM38;zg~&yfw1nf_k`*uz;=-wy z9&t1ps1XDE_K92MC*KUq#WO=HNY?)^)tECq1e!gH$5^vtjC@79^* zs~qNKQ;0-9SYQs+{<^!Ptz3vx^(mbQQ_V|<^6q@r=#QFuj2jv}RQ zl#H>CAvZWnf*`i9GkMit?A0g>kvYhU1D3bf%-VFEsw^A>|UYgPa9VEJLhwrue?<7Hm@~r-ZA{V9)|8nxxk=sUjiozwFhS z2z^lb=u6~`%**$l3@iV!_qA2aWUESgWfj1IVHk}2D=OyPA=&@PeqqfJUb zs_QNq2BMWeL631LBY*XyALYTP-JN5TzOa5;34SYN#JA||3gz=3Jl-mDB&r^7s@qEk zcvb`BnT!vR^is{A3(zGUHo|92QHM%0};T}5dbO`o1kt+U>| zmOUQ_W(Y0|45Jo#v+S$n>|mr)#Knj+S#S5udo9q79sRiEs>AU4>h*TB;Y+C|(KMec z9mW?UIt?Z6M_cDbouXuOX`tO5A<`-OX)28Irfe=h;vNmzK*M>gl)CS}j<0r6Z(AM7 z-E7Z~{w^|?hTO0<(X0P9k!)_0Oao5YPi&P{meUCTiwobq5P2lx&O9_^v5@LPI;u)f z4Hls&pq0|8C}uKvmOZ+MzMnjF)q-^eMYa{W=M|5%N@YOEo z!jajM<`J21XHNnQkoUr@*(NDa=&0QDFlzD=&i5$5Se+yu(Xbr@X)C2l#b!DC)y-Za zVQSABq$x)SQK8e;mUZy~Clf?zb6t*$W9jEM0l#hE98U?pw3gvTl`vYRk~B0{2F<$i zW$t2DhhpXgG*ztoO1_P!ukOFHY8JS_ejY1(y^Pcqi5V>HIz)X9KQb!zg4BZMBjKdx zN8dSbwMVT)1!I4{%sytk6b7m6zI^PW_&lzfu(c?H5ri-ZyPs=Z)rf*PnnL2w#a20L zy}3DKXJ5;Pff8<6daXE^BqUOYIs@KI;+9kqN62XzzPGsg#+9W~18zWK4Be8@@!w#T z6e>n(v#+FCG@l3@2nPk(bPOvc3blXqt26~#A?y(?t{>g>5ZwY|BlGc-_Bev2Y_UE< zE^C=n6cf+6B&zK(iLZ-%k#AKdGi*J3NX9C7WvscvRmVO7^y*>%V-&iAn%>bL?v|e{zjHYT+OW9=Xd}OaZu?Xy&0fAMDtHy2 zapj+{{XMe-lUcLX<6Udi>h(JbQH|bgyaWUuI>&#YXRWlXpR{75oq@GPz(AN(1=>Fr*m5tPE!kT@ntQ zc1sIO7oq72g6hw)^@R$_?U-{wQoZiH`mP%fWg}HkVU+*?qz|U%VT()VCVU)|Q-dEr zuTsME0~ni}UnG*T>G0f!h6%w^8&p!0@_;1I5V68XS|}e-aXXHvP?W`cQ@NAL@5LJr ze!tSe)&_zr|Is{-x`1SDFnJ|9+1T7}s_cVjW|KG!YfF*IgI7Ddm}=h!(wi(%9U)4B)#57o<}L{*s!*v*^i!%vP9 z>c*T5MTNxN<$rn0XL-$q9e1QKv9~pS8~UPXy(j|g2%FZZQunB<_UVz9b43zyNMyRh zPS>`=ZjG|mt9$9f-$*rH^Nx!F;WwDNuGd04wF5RO-7iNqj|paDu;aLgIt}Fa5oFM2 z;4^9p*~7UFVa1EuH${29*)kP&GQ=?8J}Smt*B$neDNgF3;(;Mv5p z#A%Oa2&u;!_z(_&#P9UJaQZT#LTuI;DPFg7!0Njohj@$x%G?{4TKSZ?kkudG2{pSain-cS1g3c!!(nF+FfMO$XGY$G1ShK$#Jc|pAc(D+5r3fLHOTAPJL&p zMr?YS*EOBy>NqW@Jk1tw%bfyhw00HeK-DkeIOB84CV%MKqzChtfM|)^cI~7nx+<((? zA^yDb1-Feqs`0cFjQ}1WSC)vY(C@RaxT=p@CGO!WFRj1L=R^R zCt@jYEsQD3g4VSU{EasXyG0kW15kB|JlW(@v25jT+>$cax~!1txYr_1%iRghx~Yn7q}$Jz%z>GsPFs(Z=HATjyM z{IlW0ZCPz9F+qo#+)N-%h9r*Gb4t*?>x2wsF~Vk=1{)58$4JtIX zWCEDkG-wvpX~7ML(48Z9BGMPUGiLX&g)DRrF1)tP0a*m0w`|LL@D;@XYds?&R=63BK`VF@oy~ahQky6QjLCPnciedWi|z^QhS_$uAK= zGMIn`DU~?+G(agr5P93fNj3PK*ZllnQfEg|jtMI(uC00zd-LUhjA?L_l{P+gBMwhm z>GbqH_$Q3GE2GBpod=4!4jAN||2W6@#b3*HFEMs z;`w-IL_S#o(}c)I zBhS)v27Im_q~GyPoZo|P(Tc`w?%5<})IpdVgV%h86~-J4e+HTtWs9HypLmDQ9AbYUsrRF4B)9Da?*Qp5!lEN6}@>m9Sho2gupy&_$Gr3K&Jt z`(O;1F26!I&MUXZ|2RdjxqL2cuC!Ut!Xab%gD6yI=D1|l=|#7I_OkJ)>zn9w@Z6Qw zWnudVl-LHMBFFCdu3rq)TgkE$RjJVTh;>!89Uyl9{P{`f zS8Cp9DgkK`HdsjG96ZJ?{VkF&29E8-KwE%RDxSmkP z>(`j)5fB(|WS10-+2qsi+tE&rpH6c9%__w>i<^#;dNpCZ@&Xix`X2*9ykv|3Zxu>Q zj8;{inW%3~0SevPi&78EYR=~k1P5PlpK%>?;Kcc*kX>t1*8~RwI-St-;GS#(d{bgf zBedia+ffl)8ls)eB=g$VF|*)J&t#N*7Y)iaW$hJ6iXE?=DZ=F(S^;(*p;UnsSn5G0 zkN2eh^hm%Oc!I?YF&b1O>0JgY2S6-%=d#bOh15_r)9il^bbqmm*`^+s#+JwlP>5I= zzlXjlPcyp7{>8>XTy6^09$cwi6r;f>S-om8%w9=3s>+d1l~ zV;xUv*s;<_Z!n!lP}O$2Y5bS%RpvgHo!HSEhPTe z)er&^J@}tIIRw1^pXAB^@7h|&zGEeV9&j%Z5J406XtCd5%>G~Lw5}eLMTbEC&i^}O z%7YcZ{+Z6@2Y|w^4!JO!c6o@ zNk~!xI7pt0G)011(*t)8lS?hD+Pw?opZ`IW9{mQk%F=t6Gtef&3;H>T3^V4Ka5Dcn z9W^Ng?5fHdl*vG8`z7&{b}An7Bi464dy$^>KX3aoaeH_U8a^*NSZGq4ddp999aVI0 z!2N(3{0WFzb>gl=J^`fu19zh@?000g+HIOKD0B}i;88dP1BV!*NIb*}@Xo^5g)Eb=C#JVHL*5VGq$nO|Y6oudqdKT7nd2#dWCgwbU zCdmiPMQL>Zn+3;UnL_X+sW>FO187i>9J|E3-zEd~9ANnbXCtV*IA+&{+Mdfsn$E0UqA3 z#dXU?!fGNhXe0&cw-EXX{N5+muB|d%y5Po}&lLLL}&(3*P#sCGW?ygq~-YtY5qw zeTVm2C3!D{l!-Wy`nUPRWDPh#B)Ipw`S>wW0z^Rl#bq=S6Unq zEwDJTO`^ob{-ROipd}}*i5rkqL*wiRo)6&zi~s7ZdzJ)0g(cm}-Nh{iwCkv+UqQzE z6(#kZKyCs4MDyj0&xmQ2$s141{41E=pil+baf;`X7pko(&Slbt#&34L)8|nMVW;bY zImbP!Kw1Qe zVwh&bHGL^0{^jNYMqY3uF0`kI5buAE7W=RubX^q|H?*;u#aLKY3dX zEE`}OK@E){hx3UNqa#≺Tx!Idi{;@ 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 PAYaO>$(1~R9q_*Zi<4|R literal 0 HcmV?d00001 diff --git a/feature/results/src/main/res/drawable-nodpi/background_wallpaper_tablet_shapes.png b/feature/results/src/main/res/drawable-nodpi/background_wallpaper_tablet_shapes.png new file mode 100644 index 0000000000000000000000000000000000000000..274745570a67558e7588f3d3fe0029df0726b131 GIT binary patch literal 14147 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 en(TA8Q0&1it^B&y^lbE^)~(sFI(enz(f Date: Fri, 11 Jul 2025 16:11:08 +0100 Subject: [PATCH 22/38] Spotless --- .../developers/androidify/MainActivity.kt | 8 +++---- .../repository/FakeDropImageFactory.kt | 19 ++++++++++++++--- .../developers/androidify/data/DataModule.kt | 2 +- .../androidify/data/DropBehaviourFactory.kt | 18 ++++++++++++++-- .../androidify/creation/CreationScreen.kt | 4 +--- .../androidify/results/ResultsScreenTest.kt | 2 +- .../customize/CustomizeExportScreen.kt | 3 --- .../customize/CustomizeExportViewModel.kt | 11 +++++----- .../androidify/customize/CustomizeState.kt | 13 ++++-------- .../androidify/customize/CustomizeTool.kt | 21 +++++++++++-------- .../androidify/customize/ImageRenderer.kt | 11 +++++----- .../customize/OffscreenBitmapManager.kt | 2 -- .../results/ResultsScreenScreenshotTest.kt | 4 ++-- .../customize/CustomizeViewModelTest.kt | 19 +++++++++++++---- .../results/ResultsViewModelTest.kt | 5 ----- 15 files changed, 83 insertions(+), 59 deletions(-) diff --git a/app/src/main/java/com/android/developers/androidify/MainActivity.kt b/app/src/main/java/com/android/developers/androidify/MainActivity.kt index cf258f6c..9d2e5e24 100644 --- a/app/src/main/java/com/android/developers/androidify/MainActivity.kt +++ b/app/src/main/java/com/android/developers/androidify/MainActivity.kt @@ -17,7 +17,6 @@ package com.android.developers.androidify import android.os.Build import android.os.Bundle -import android.util.Log import android.view.WindowManager import android.window.TrustedPresentationThresholds import androidx.activity.ComponentActivity @@ -73,7 +72,9 @@ class MainActivity : ComponentActivity() { val minFractionRendered = 0.25f val stabilityRequirements = 500 val presentationThreshold = TrustedPresentationThresholds( - minAlpha, minFractionRendered, stabilityRequirements + minAlpha, + minFractionRendered, + stabilityRequirements, ) val windowManager = getSystemService(WINDOW_SERVICE) as WindowManager @@ -81,7 +82,7 @@ class MainActivity : ComponentActivity() { window.decorView.windowToken, presentationThreshold, mainExecutor, - presentationListener + presentationListener, ) } } @@ -93,5 +94,4 @@ class MainActivity : ComponentActivity() { windowManager.unregisterTrustedPresentationListener(presentationListener) } } - } diff --git a/core/testing/src/main/java/com/android/developers/testing/repository/FakeDropImageFactory.kt b/core/testing/src/main/java/com/android/developers/testing/repository/FakeDropImageFactory.kt index 783d349b..0ccff138 100644 --- a/core/testing/src/main/java/com/android/developers/testing/repository/FakeDropImageFactory.kt +++ b/core/testing/src/main/java/com/android/developers/testing/repository/FakeDropImageFactory.kt @@ -1,3 +1,18 @@ +/* + * Copyright 2025 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package com.android.developers.testing.repository import android.net.Uri @@ -18,7 +33,5 @@ class FakeDropImageFactory : DropBehaviourFactory { override fun onDrop(event: DragAndDropEvent): Boolean { return false } - } - -} \ No newline at end of file +} diff --git a/data/src/main/java/com/android/developers/androidify/data/DataModule.kt b/data/src/main/java/com/android/developers/androidify/data/DataModule.kt index 883bbe4a..7d8e75e4 100644 --- a/data/src/main/java/com/android/developers/androidify/data/DataModule.kt +++ b/data/src/main/java/com/android/developers/androidify/data/DataModule.kt @@ -106,6 +106,6 @@ internal object DataModule { ) @Provides - fun dropBehaviourFactory(localFileProvider: LocalFileProvider,): DropBehaviourFactory = + fun dropBehaviourFactory(localFileProvider: LocalFileProvider): DropBehaviourFactory = DropBehaviourFactoryImpl(localFileProvider = localFileProvider) } diff --git a/data/src/main/java/com/android/developers/androidify/data/DropBehaviourFactory.kt b/data/src/main/java/com/android/developers/androidify/data/DropBehaviourFactory.kt index 944caf1d..6b0a3fb0 100644 --- a/data/src/main/java/com/android/developers/androidify/data/DropBehaviourFactory.kt +++ b/data/src/main/java/com/android/developers/androidify/data/DropBehaviourFactory.kt @@ -1,3 +1,18 @@ +/* + * Copyright 2025 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package com.android.developers.androidify.data import android.graphics.BitmapFactory @@ -13,7 +28,6 @@ import kotlinx.coroutines.launch import java.util.UUID import javax.inject.Inject - interface DropBehaviourFactory { fun shouldStartDragAndDrop(event: DragAndDropEvent): Boolean fun createTargetCallback( @@ -83,4 +97,4 @@ class DropBehaviourFactoryImpl @Inject constructor(val localFileProvider: LocalF return true } } -} \ No newline at end of file +} diff --git a/feature/creation/src/main/java/com/android/developers/androidify/creation/CreationScreen.kt b/feature/creation/src/main/java/com/android/developers/androidify/creation/CreationScreen.kt index 84bbf4f3..1f1f1ebf 100644 --- a/feature/creation/src/main/java/com/android/developers/androidify/creation/CreationScreen.kt +++ b/feature/creation/src/main/java/com/android/developers/androidify/creation/CreationScreen.kt @@ -68,7 +68,6 @@ import androidx.compose.foundation.pager.HorizontalPager import androidx.compose.foundation.pager.rememberPagerState import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.CircleShape -import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.text.input.TextFieldState import androidx.compose.foundation.verticalScroll import androidx.compose.material3.ButtonDefaults @@ -127,9 +126,9 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle import coil3.compose.AsyncImage import coil3.request.ImageRequest import coil3.request.crossfade -import com.android.developers.androidify.data.DropBehaviourFactory import com.android.developers.androidify.customize.CustomizeAndExportScreen import com.android.developers.androidify.customize.CustomizeExportViewModel +import com.android.developers.androidify.data.DropBehaviourFactory import com.android.developers.androidify.results.ResultsScreen import com.android.developers.androidify.theme.AndroidifyTheme import com.android.developers.androidify.theme.LimeGreen @@ -447,7 +446,6 @@ private fun MainCreationPane( ) } - Box( modifier = modifier, ) { diff --git a/feature/results/src/androidTest/java/com/android/developers/androidify/results/ResultsScreenTest.kt b/feature/results/src/androidTest/java/com/android/developers/androidify/results/ResultsScreenTest.kt index ac32895b..cad23c8c 100644 --- a/feature/results/src/androidTest/java/com/android/developers/androidify/results/ResultsScreenTest.kt +++ b/feature/results/src/androidTest/java/com/android/developers/androidify/results/ResultsScreenTest.kt @@ -220,7 +220,7 @@ class ResultsScreenTest { contentPadding = PaddingValues(0.dp), state = state, onCustomizeShareClicked = { - shareClicked = true// Callback to test + shareClicked = true // Callback to test }, ) } diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt index c39950c4..56e6e195 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt @@ -23,7 +23,6 @@ import android.net.Uri import android.os.Build import androidx.compose.animation.AnimatedContent import androidx.compose.animation.ExperimentalSharedTransitionApi -import androidx.compose.animation.animateContentSize import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box @@ -52,7 +51,6 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue -import androidx.compose.runtime.movableContentWithReceiverOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue @@ -62,7 +60,6 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.ImageBitmap import androidx.compose.ui.graphics.asAndroidBitmap import androidx.compose.ui.graphics.vector.ImageVector -import androidx.compose.ui.layout.LookaheadScope import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.imageResource import androidx.compose.ui.res.stringResource diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt index ef44b780..520d4f50 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt @@ -17,8 +17,6 @@ package com.android.developers.androidify.customize import android.app.Application import android.graphics.Bitmap -import android.graphics.BitmapFactory -import android.graphics.Rect import android.net.Uri import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.material3.SnackbarHostState @@ -98,11 +96,15 @@ class CustomizeExportViewModel @Inject constructor( is BackgroundOption -> { val backgroundOption = toolState.selectedToolOption as BackgroundOption it.exportImageCanvas.updateAspectRatioAndBackground( - backgroundOption, it.exportImageCanvas.aspectRatioOption) + backgroundOption, + it.exportImageCanvas.aspectRatioOption, + ) } is SizeOption -> { it.exportImageCanvas.updateAspectRatioAndBackground( - it.exportImageCanvas.selectedBackgroundOption, (toolState.selectedToolOption as SizeOption)) + it.exportImageCanvas.selectedBackgroundOption, + (toolState.selectedToolOption as SizeOption), + ) } else -> throw IllegalArgumentException("Unknown tool option") }, @@ -110,7 +112,6 @@ class CustomizeExportViewModel @Inject constructor( } } - fun downloadClicked() { viewModelScope.launch { val exportImageCanvas = state.value.exportImageCanvas diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt index 1e26cacc..b30fe022 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt @@ -21,7 +21,6 @@ import android.net.Uri import androidx.annotation.DrawableRes import androidx.compose.ui.geometry.Offset import androidx.compose.ui.geometry.R -import androidx.compose.ui.geometry.Rect import androidx.compose.ui.geometry.Size data class CustomizeExportState( @@ -37,10 +36,7 @@ data class CustomizeExportState( ), val exportImageCanvas: ExportImageCanvas = ExportImageCanvas(), - - ) { - -} +) interface ToolState { val selectedToolOption: ToolOption @@ -84,13 +80,13 @@ data class ExportImageCanvas( fun updateAspectRatioAndBackground( backgroundOption: BackgroundOption, sizeOption: SizeOption, - ) : ExportImageCanvas { + ): ExportImageCanvas { val newCanvasSize = sizeOption.dimensions var imageSize: Size var offset = Offset.Zero - var image : Int - var rotation : Float + var image: Int + var rotation: Float when (sizeOption) { SizeOption.Square -> { image = when (backgroundOption) { @@ -155,4 +151,3 @@ data class ExportImageCanvas( ) } } - diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeTool.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeTool.kt index 6b07b9cb..55c98c5a 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeTool.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeTool.kt @@ -36,10 +36,10 @@ sealed class SizeOption( ) : ToolOption { object Square : SizeOption(1f, Size(1000f, 1000f), "1:1", "square") - object Banner : SizeOption(4f, Size(4000f, 1000f),"Banner", "banner") - object Wallpaper : SizeOption(9 / 16f, Size(900f, 1600f),"Wallpaper", "wallpaper") - object SocialHeader: SizeOption(3f, Size(3000f, 1000f),"3:1", "social_header") - object WallpaperTablet: SizeOption(1280/800f, Size(1280f, 800f),"Large wallpaper", "wallpaper_large") + object Banner : SizeOption(4f, Size(4000f, 1000f), "Banner", "banner") + object Wallpaper : SizeOption(9 / 16f, Size(900f, 1600f), "Wallpaper", "wallpaper") + object SocialHeader : SizeOption(3f, Size(3000f, 1000f), "3:1", "social_header") + object WallpaperTablet : SizeOption(1280 / 800f, Size(1280f, 800f), "Large wallpaper", "wallpaper_large") } sealed class BackgroundOption( @@ -48,13 +48,16 @@ sealed class BackgroundOption( val previewDrawableInt: Int?, ) : ToolOption { object None : BackgroundOption("None", "None", null) - object Lightspeed : BackgroundOption("Lightspeed", + object Lightspeed : BackgroundOption( + "Lightspeed", "Lightspeed", R.drawable.light_speed_dots, - ) - object IO : BackgroundOption("I/O", "IO", + ) + object IO : BackgroundOption( + "I/O", + "IO", R.drawable.background_option_io, - ) + ) // todo add Create with AI background option - /* object Create : BackgroundOption("Create", "Create", R.drawable.background_create)*/ + /* object Create : BackgroundOption("Create", "Create", R.drawable.background_create)*/ } diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt index 00f8f642..14ef2e7c 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt @@ -97,7 +97,7 @@ fun BackgroundLayout( val actualWidth = constraints.maxWidth val actualHeight = constraints.maxHeight - val scale = if (exportImageCanvas.canvasSize.width > 0f) { + val scale = if (exportImageCanvas.canvasSize.width > 0f) { actualWidth / exportImageCanvas.canvasSize.width } else { 1f @@ -114,7 +114,7 @@ fun BackgroundLayout( maxWidth = scaledImageWidth.toInt(), minHeight = scaledImageHeight.toInt(), maxHeight = scaledImageHeight.toInt(), - ) + ), ) layout(actualWidth, actualHeight) { placeable.placeRelative(scaledOffsetX.toInt(), scaledOffsetY.toInt()) @@ -131,7 +131,6 @@ fun BackgroundLayout( content() } } - } } @@ -260,7 +259,7 @@ private fun ImageRendererPreviewWallpaperSocial() { canvasSize = Size(1600f, 900f), aspectRatioOption = SizeOption.SocialHeader, selectedBackgroundOption = BackgroundOption.Lightspeed, - ).updateAspectRatioAndBackground( + ).updateAspectRatioAndBackground( backgroundOption = BackgroundOption.Lightspeed, sizeOption = SizeOption.SocialHeader, ), @@ -282,7 +281,7 @@ fun ImageRendererPreviewWallpaperIO() { aspectRatioOption = SizeOption.SocialHeader, selectedBackgroundOption = BackgroundOption.IO, - ).updateAspectRatioAndBackground( + ).updateAspectRatioAndBackground( backgroundOption = BackgroundOption.IO, sizeOption = SizeOption.SocialHeader, ), @@ -290,4 +289,4 @@ fun ImageRendererPreviewWallpaperIO() { .fillMaxSize() .aspectRatio(SizeOption.SocialHeader.aspectRatio), ) -} \ No newline at end of file +} diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/OffscreenBitmapManager.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/OffscreenBitmapManager.kt index 93b42465..c4ee2ab5 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/OffscreenBitmapManager.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/OffscreenBitmapManager.kt @@ -53,7 +53,6 @@ import androidx.savedstate.SavedStateRegistry import androidx.savedstate.SavedStateRegistryController import androidx.savedstate.SavedStateRegistryOwner import androidx.savedstate.setViewTreeSavedStateRegistryOwner -import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.launch import kotlinx.coroutines.suspendCancellableCoroutine import javax.inject.Inject @@ -72,7 +71,6 @@ import javax.inject.Singleton * } */ - @Singleton class OffscreenBitmapManager @Inject constructor(val application: Application) { val texture = SurfaceTexture(false) diff --git a/feature/results/src/screenshotTest/java/com/android/developers/androidify/results/ResultsScreenScreenshotTest.kt b/feature/results/src/screenshotTest/java/com/android/developers/androidify/results/ResultsScreenScreenshotTest.kt index 27b13bf4..f03cfbd3 100644 --- a/feature/results/src/screenshotTest/java/com/android/developers/androidify/results/ResultsScreenScreenshotTest.kt +++ b/feature/results/src/screenshotTest/java/com/android/developers/androidify/results/ResultsScreenScreenshotTest.kt @@ -54,7 +54,7 @@ class ResultsScreenScreenshotTest { contentPadding = PaddingValues(0.dp), state = state, verboseLayout = true, // Replicates ResultsScreenPreview - onCustomizeShareClicked = {} + onCustomizeShareClicked = {}, ) } } @@ -79,7 +79,7 @@ class ResultsScreenScreenshotTest { contentPadding = PaddingValues(0.dp), state = state, verboseLayout = false, // Replicates ResultsScreenPreviewSmall - onCustomizeShareClicked = {} + onCustomizeShareClicked = {}, ) } } diff --git a/feature/results/src/test/kotlin/com/android/developers/androidify/customize/CustomizeViewModelTest.kt b/feature/results/src/test/kotlin/com/android/developers/androidify/customize/CustomizeViewModelTest.kt index d3e4f4bb..13ad2178 100644 --- a/feature/results/src/test/kotlin/com/android/developers/androidify/customize/CustomizeViewModelTest.kt +++ b/feature/results/src/test/kotlin/com/android/developers/androidify/customize/CustomizeViewModelTest.kt @@ -1,3 +1,18 @@ +/* + * Copyright 2025 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ @file:OptIn(ExperimentalCoroutinesApi::class) package com.android.developers.androidify.customize @@ -8,12 +23,8 @@ import androidx.test.core.app.ApplicationProvider import com.android.developers.testing.repository.FakeImageGenerationRepository import com.android.developers.testing.util.MainDispatcherRule import kotlinx.coroutines.ExperimentalCoroutinesApi -import kotlinx.coroutines.launch -import kotlinx.coroutines.test.UnconfinedTestDispatcher -import kotlinx.coroutines.test.advanceUntilIdle import kotlinx.coroutines.test.runTest import org.junit.Assert.assertEquals -import org.junit.Assert.assertNotNull import org.junit.Before import org.junit.Rule import org.junit.Test diff --git a/feature/results/src/test/kotlin/com/android/developers/androidify/results/ResultsViewModelTest.kt b/feature/results/src/test/kotlin/com/android/developers/androidify/results/ResultsViewModelTest.kt index 7a14506e..5f425658 100644 --- a/feature/results/src/test/kotlin/com/android/developers/androidify/results/ResultsViewModelTest.kt +++ b/feature/results/src/test/kotlin/com/android/developers/androidify/results/ResultsViewModelTest.kt @@ -19,14 +19,10 @@ package com.android.developers.androidify.results import android.graphics.Bitmap import android.net.Uri -import com.android.developers.testing.repository.FakeImageGenerationRepository import com.android.developers.testing.util.MainDispatcherRule import kotlinx.coroutines.ExperimentalCoroutinesApi -import kotlinx.coroutines.launch -import kotlinx.coroutines.test.UnconfinedTestDispatcher import kotlinx.coroutines.test.runTest import org.junit.Assert.assertEquals -import org.junit.Assert.assertNotNull import org.junit.Before import org.junit.Rule import org.junit.Test @@ -89,5 +85,4 @@ class ResultsViewModelTest { viewModel.state.value, ) } - } From 2a6873309a37e3b067d24d76242471909dde4a44 Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Mon, 14 Jul 2025 14:22:09 +0100 Subject: [PATCH 23/38] Logic fixes for keeping the selected background option when moving into the different aspect ratio sizes. --- .../androidify/customize/CustomizeState.kt | 7 +++-- .../androidify/customize/ImageRenderer.kt | 30 ------------------- 2 files changed, 4 insertions(+), 33 deletions(-) diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt index b30fe022..4063217e 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt @@ -68,13 +68,13 @@ data class ExportImageCanvas( val aspectRatioOption: SizeOption = SizeOption.Square, val canvasSize: Size = Size(1000f, 1000f), val mainImageUri: Uri? = null, - val imageSize: Size = Size(1000f, 1000f), - val imageOffset: Offset = Offset.Zero, + val imageSize: Size = Size(600f, 600f), + val imageOffset: Offset = Offset(canvasSize.width * 0.2f, canvasSize.height * 0.16f), val imageRotation: Float = 0f, val imageOriginalBitmapSize: Size? = Size(1024f, 1024f), val selectedBackgroundOption: BackgroundOption = BackgroundOption.None, @param:DrawableRes - val selectedBackgroundDrawable: Int? = null, + val selectedBackgroundDrawable: Int? = com.android.developers.androidify.results.R.drawable.background_square_none, val includeWatermark: Boolean = true, ) { fun updateAspectRatioAndBackground( @@ -148,6 +148,7 @@ data class ExportImageCanvas( imageOffset = offset, canvasSize = newCanvasSize, aspectRatioOption = sizeOption, + selectedBackgroundOption = backgroundOption ) } } diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt index 14ef2e7c..4251747c 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt @@ -134,36 +134,6 @@ fun BackgroundLayout( } } -/*suspend fun renderToBitmap( - context: Context, - currentCanvasState: ExportImageCanvas, -): Bitmap? { - return useVirtualDisplay(context) { display -> - val outputDensity = Density(1f) - - val logicalHeightDp = currentCanvasState.canvasSize.height.dp - val logicalWidthDp = - (currentCanvasState.canvasSize.height * currentCanvasState.aspectRatioOption.aspectRatio).dp - - val captureDpSize = DpSize(width = logicalWidthDp, height = logicalHeightDp) - - captureComposable( - context = context, - density = outputDensity, - size = captureDpSize, - display = display, - ) { - LaunchedEffect(Unit) { - capture() - } - ImageResult( - exportImageCanvas = currentCanvasState, - modifier = Modifier.fillMaxSize(), - ) - } - } -}*/ - @Preview @Composable private fun ImageRendererPreviewSquare() { From f884bafd71ed62f8098afe1ac0f8c6ebd7f668e4 Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Mon, 14 Jul 2025 15:14:12 +0100 Subject: [PATCH 24/38] spotless --- .../com/android/developers/androidify/util/LocalFileProvider.kt | 2 +- .../android/developers/androidify/customize/CustomizeState.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/util/src/main/java/com/android/developers/androidify/util/LocalFileProvider.kt b/core/util/src/main/java/com/android/developers/androidify/util/LocalFileProvider.kt index 1eddf32b..150fe769 100644 --- a/core/util/src/main/java/com/android/developers/androidify/util/LocalFileProvider.kt +++ b/core/util/src/main/java/com/android/developers/androidify/util/LocalFileProvider.kt @@ -58,7 +58,7 @@ interface LocalFileProvider { @Singleton class LocalFileProviderImpl @Inject constructor( private val application: Application, - @Named("IO") private val ioDispatcher: CoroutineDispatcher + @Named("IO") private val ioDispatcher: CoroutineDispatcher, ) : LocalFileProvider { override suspend fun saveBitmapToFile(bitmap: Bitmap, file: File) = withContext(ioDispatcher) { diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt index 4063217e..b6bd4759 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt @@ -148,7 +148,7 @@ data class ExportImageCanvas( imageOffset = offset, canvasSize = newCanvasSize, aspectRatioOption = sizeOption, - selectedBackgroundOption = backgroundOption + selectedBackgroundOption = backgroundOption, ) } } From ff22caaf60dc6b599a6fa7618c8a788be0199c88 Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Mon, 14 Jul 2025 15:46:55 +0100 Subject: [PATCH 25/38] Create FakeComposableBitmapRenderer.kt and fix CustomizeExportViewModelTest --- core/testing/build.gradle.kts | 2 + .../util/FakeComposableBitmapRenderer.kt | 37 +++++++++++++++++++ ...ger.kt => ComposableBitmapRendererImpl.kt} | 26 ++++++++----- .../customize/CustomizeExportViewModel.kt | 9 ++--- .../customize/di/BitmapRendererModule.kt | 35 ++++++++++++++++++ .../customize/CustomizeViewModelTest.kt | 13 +++++-- 6 files changed, 104 insertions(+), 18 deletions(-) create mode 100644 core/testing/src/main/java/com/android/developers/testing/util/FakeComposableBitmapRenderer.kt rename feature/results/src/main/java/com/android/developers/androidify/customize/{OffscreenBitmapManager.kt => ComposableBitmapRendererImpl.kt} (92%) create mode 100644 feature/results/src/main/java/com/android/developers/androidify/customize/di/BitmapRendererModule.kt diff --git a/core/testing/build.gradle.kts b/core/testing/build.gradle.kts index 3d316635..98a27156 100644 --- a/core/testing/build.gradle.kts +++ b/core/testing/build.gradle.kts @@ -58,6 +58,8 @@ dependencies { implementation(projects.data) implementation(projects.core.network) implementation(projects.core.util) + implementation(projects.feature.results) + ksp(libs.hilt.compiler) androidTestImplementation(platform(libs.androidx.compose.bom)) diff --git a/core/testing/src/main/java/com/android/developers/testing/util/FakeComposableBitmapRenderer.kt b/core/testing/src/main/java/com/android/developers/testing/util/FakeComposableBitmapRenderer.kt new file mode 100644 index 00000000..04afd7ca --- /dev/null +++ b/core/testing/src/main/java/com/android/developers/testing/util/FakeComposableBitmapRenderer.kt @@ -0,0 +1,37 @@ +/* + * Copyright 2025 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.developers.testing.util + +import android.graphics.Bitmap +import androidx.compose.runtime.Composable +import androidx.compose.ui.geometry.Size +import androidx.core.graphics.createBitmap +import com.android.developers.androidify.customize.ComposableBitmapRenderer + +class FakeComposableBitmapRenderer : ComposableBitmapRenderer { + override fun initialize() { + } + + override fun dispose() { + } + + override suspend fun renderComposableToBitmap( + canvasSize: Size, + composableContent: @Composable (() -> Unit), + ): Bitmap? { + return createBitmap(1, 1) + } +} diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/OffscreenBitmapManager.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/ComposableBitmapRendererImpl.kt similarity index 92% rename from feature/results/src/main/java/com/android/developers/androidify/customize/OffscreenBitmapManager.kt rename to feature/results/src/main/java/com/android/developers/androidify/customize/ComposableBitmapRendererImpl.kt index c4ee2ab5..97674806 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/OffscreenBitmapManager.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/ComposableBitmapRendererImpl.kt @@ -43,7 +43,6 @@ import androidx.compose.ui.unit.Density import androidx.compose.ui.unit.DpSize import androidx.compose.ui.unit.IntSize import androidx.compose.ui.unit.dp -import androidx.core.content.ContextCompat.getSystemService import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleObserver import androidx.lifecycle.LifecycleOwner @@ -58,6 +57,14 @@ import kotlinx.coroutines.suspendCancellableCoroutine import javax.inject.Inject import javax.inject.Singleton +interface ComposableBitmapRenderer { + fun initialize() + + fun dispose() + + suspend fun renderComposableToBitmap(canvasSize: Size, composableContent: @Composable () -> Unit): Bitmap? +} + /** * Use a virtual display to capture composable content thats on a display. * This is necessary because Compose doesn't yet support offscreen bitmap creation (https://issuetracker.google.com/298037598) @@ -70,14 +77,13 @@ import javax.inject.Singleton * ImageResult() // etc * } */ - @Singleton -class OffscreenBitmapManager @Inject constructor(val application: Application) { - val texture = SurfaceTexture(false) - val surface = Surface(texture) - var virtualDisplay: VirtualDisplay? = null +class ComposableBitmapRendererImpl @Inject constructor(private val application: Application) : ComposableBitmapRenderer { + private val texture = SurfaceTexture(false) + private val surface = Surface(texture) + private var virtualDisplay: VirtualDisplay? = null - fun initialize() { + override fun initialize() { virtualDisplay = (application.getSystemService(DISPLAY_SERVICE) as DisplayManager).createVirtualDisplay( "virtualDisplay", @@ -89,7 +95,7 @@ class OffscreenBitmapManager @Inject constructor(val application: Application) { ) } - fun dispose() { + override fun dispose() { virtualDisplay?.release() surface.release() texture.release() @@ -103,7 +109,7 @@ class OffscreenBitmapManager @Inject constructor(val application: Application) { return callback(virtualDisplay!!.display) } - suspend fun renderComposableToBitmap(canvasSize: Size, composableContent: @Composable () -> Unit): Bitmap? { + override suspend fun renderComposableToBitmap(canvasSize: Size, composableContent: @Composable () -> Unit): Bitmap? { val bitmap = useVirtualDisplay { display -> val outputDensity = Density(1f) @@ -128,7 +134,7 @@ class OffscreenBitmapManager @Inject constructor(val application: Application) { } private data class CaptureComposableScope(val capture: () -> Unit) - private fun androidx.compose.ui.geometry.Size.roundedToIntSize(): IntSize = + private fun Size.roundedToIntSize(): IntSize = IntSize(width.toInt(), height.toInt()) private class EmptySavedStateRegistryOwner : SavedStateRegistryOwner { diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt index 520d4f50..1907e18e 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt @@ -22,7 +22,6 @@ import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.material3.SnackbarHostState import androidx.compose.ui.Modifier import androidx.lifecycle.AndroidViewModel -import androidx.lifecycle.application import androidx.lifecycle.viewModelScope import com.android.developers.androidify.data.ImageGenerationRepository import dagger.hilt.android.lifecycle.HiltViewModel @@ -36,7 +35,7 @@ import javax.inject.Inject @HiltViewModel class CustomizeExportViewModel @Inject constructor( val imageGenerationRepository: ImageGenerationRepository, - val offscreenBitmapManager: OffscreenBitmapManager, + val composableBitmapRenderer: ComposableBitmapRenderer, application: Application, ) : AndroidViewModel(application) { @@ -50,7 +49,7 @@ class CustomizeExportViewModel @Inject constructor( override fun onCleared() { super.onCleared() - offscreenBitmapManager.dispose() + composableBitmapRenderer.dispose() } fun setArguments( resultImageUrl: Bitmap, @@ -67,7 +66,7 @@ class CustomizeExportViewModel @Inject constructor( fun shareClicked() { viewModelScope.launch { val exportImageCanvas = state.value.exportImageCanvas - val resultBitmap = offscreenBitmapManager.renderComposableToBitmap(exportImageCanvas.canvasSize) { + val resultBitmap = composableBitmapRenderer.renderComposableToBitmap(exportImageCanvas.canvasSize) { ImageResult( exportImageCanvas = exportImageCanvas, modifier = Modifier.fillMaxSize(), @@ -115,7 +114,7 @@ class CustomizeExportViewModel @Inject constructor( fun downloadClicked() { viewModelScope.launch { val exportImageCanvas = state.value.exportImageCanvas - val resultBitmap = offscreenBitmapManager.renderComposableToBitmap(exportImageCanvas.canvasSize) { + val resultBitmap = composableBitmapRenderer.renderComposableToBitmap(exportImageCanvas.canvasSize) { ImageResult( exportImageCanvas = exportImageCanvas, modifier = Modifier.fillMaxSize(), diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/di/BitmapRendererModule.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/di/BitmapRendererModule.kt new file mode 100644 index 00000000..7e5344f9 --- /dev/null +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/di/BitmapRendererModule.kt @@ -0,0 +1,35 @@ +/* + * Copyright 2025 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.developers.androidify.customize.di + +import com.android.developers.androidify.customize.ComposableBitmapRenderer +import com.android.developers.androidify.customize.ComposableBitmapRendererImpl +import dagger.Binds +import dagger.Module +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent +import javax.inject.Singleton + +@Module +@InstallIn(SingletonComponent::class) +abstract class BitmapRendererModule { + + @Binds + @Singleton + abstract fun bindComposableBitmapRenderer( + impl: ComposableBitmapRendererImpl, + ): ComposableBitmapRenderer +} diff --git a/feature/results/src/test/kotlin/com/android/developers/androidify/customize/CustomizeViewModelTest.kt b/feature/results/src/test/kotlin/com/android/developers/androidify/customize/CustomizeViewModelTest.kt index 13ad2178..73cf7f8c 100644 --- a/feature/results/src/test/kotlin/com/android/developers/androidify/customize/CustomizeViewModelTest.kt +++ b/feature/results/src/test/kotlin/com/android/developers/androidify/customize/CustomizeViewModelTest.kt @@ -21,8 +21,12 @@ import android.graphics.Bitmap import android.net.Uri import androidx.test.core.app.ApplicationProvider import com.android.developers.testing.repository.FakeImageGenerationRepository +import com.android.developers.testing.util.FakeComposableBitmapRenderer import com.android.developers.testing.util.MainDispatcherRule import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.launch +import kotlinx.coroutines.test.UnconfinedTestDispatcher +import kotlinx.coroutines.test.advanceUntilIdle import kotlinx.coroutines.test.runTest import org.junit.Assert.assertEquals import org.junit.Before @@ -30,6 +34,8 @@ import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner +import kotlin.test.DefaultAsserter.assertNotNull +import kotlin.test.assertNotNull @RunWith(RobolectricTestRunner::class) class CustomizeViewModelTest { @@ -45,6 +51,7 @@ class CustomizeViewModelTest { fun setup() { viewModel = CustomizeExportViewModel( FakeImageGenerationRepository(), + composableBitmapRenderer = FakeComposableBitmapRenderer(), application = ApplicationProvider.getApplicationContext(), ) } @@ -87,7 +94,7 @@ class CustomizeViewModelTest { ) } - /* @Test + @Test fun downloadClicked() = runTest { val values = mutableListOf() backgroundScope.launch(UnconfinedTestDispatcher()) { @@ -113,7 +120,7 @@ class CustomizeViewModelTest { fun shareClicked() = runTest { val values = mutableListOf() // Launch collector on the backgroundScope directly to use runTest's scheduler - backgroundScope.launch { + backgroundScope.launch(UnconfinedTestDispatcher()) { viewModel.state.collect { values.add(it) } @@ -127,5 +134,5 @@ class CustomizeViewModelTest { // Ensure all coroutines on the test scheduler complete advanceUntilIdle() assertNotNull(values.last().savedUri) - }*/ + } } From 620b43d17049c917302ddb485e971b923e9bb618 Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Tue, 15 Jul 2025 14:55:24 +0100 Subject: [PATCH 26/38] Remove snapshot dependencies --- .../androidify/customize/CustomizeExportScreen.kt | 7 ++----- gradle/libs.versions.toml | 8 ++++---- settings.gradle.kts | 3 --- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt index 56e6e195..72596542 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt @@ -252,12 +252,9 @@ private fun CustomizeExportContents( .weight(1f, fill = true), contentAlignment = Alignment.Center, ) { - ImageResult( - state.exportImageCanvas, - modifier = Modifier - .padding(16.dp) // Apply padding first + imageResult( + Modifier .aspectRatio(state.exportImageCanvas.aspectRatioOption.aspectRatio, matchHeightConstraintsFirst = true) - .clip(MaterialTheme.shapes.medium), ) } Spacer(modifier = Modifier.height(16.dp)) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 608a8850..08a050d4 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -15,7 +15,7 @@ animationAndroid = "1.8.3" appcompat = "1.7.1" baselineprofile = "1.3.4" benchmarkMacroJunit4 = "1.3.4" -camerax = "1.5.0-SNAPSHOT" +camerax = "1.5.0-beta01" coilCompose = "3.2.0" coilGif = "3.2.0" composeBom = "2025.06.02" @@ -42,11 +42,11 @@ kotlinxSerialization = "2.2.0" kotlinxSerializationJson = "1.9.0" ktlint = "1.5.0" lifecycleRuntimeKtx = "2.9.1" -lifecycleViewmodelNavigation3 = "1.0.0-SNAPSHOT" +lifecycleViewmodelNavigation3 = "1.0.0-alpha03" loggingInterceptor = "5.1.0" material = "1.12.0" media3 = "1.7.1" -navigation3 = "1.0.0-SNAPSHOT" +navigation3 = "1.0.0-alpha05" okhttp = "4.12.0" poseDetection = "18.0.0-beta5" profileinstaller = "1.4.1" @@ -56,7 +56,7 @@ spotless = "7.0.2" startup = "1.2.0" runner = "1.6.2" uiTextGoogleFonts = "1.8.3" -uiautomator = "2.4.0-SNAPSHOT" +uiautomator = "2.4.0-alpha05" uiTooling = "1.8.3" window = "1.4.0" aiEdge = "0.0.1-exp02" diff --git a/settings.gradle.kts b/settings.gradle.kts index 8b8103ae..9cf587c9 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -16,9 +16,6 @@ dependencyResolutionManagement { repositories { google() mavenCentral() - maven { - url = uri("https://androidx.dev/snapshots/builds/13511472/artifacts/repository") - } } } From 02f752be607d273547e1909dd6f266ec4e8e13a7 Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Tue, 15 Jul 2025 15:42:36 +0100 Subject: [PATCH 27/38] Add a "plain" option for exporting images --- .../androidify/customize/BackgroundTool.kt | 1 + .../customize/CustomizeExportScreen.kt | 3 +- .../androidify/customize/CustomizeState.kt | 85 +++++++++++++------ .../androidify/customize/CustomizeTool.kt | 1 + .../androidify/customize/ImageRenderer.kt | 4 +- 5 files changed, 67 insertions(+), 27 deletions(-) diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/BackgroundTool.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/BackgroundTool.kt index 860a8864..ec9cb56b 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/BackgroundTool.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/BackgroundTool.kt @@ -85,6 +85,7 @@ private fun BackgroundToolPreview() { BackgroundTool( backgroundOptions = listOf( BackgroundOption.None, + BackgroundOption.Plain, BackgroundOption.Lightspeed, BackgroundOption.IO, ), diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt index 72596542..ec771a7a 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt @@ -39,6 +39,7 @@ import androidx.compose.foundation.layout.requiredSizeIn import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.wrapContentSize +import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme @@ -161,7 +162,6 @@ private fun CustomizeExportContents( state.exportImageCanvas, modifier = modifier .padding(16.dp) - .clip(MaterialTheme.shapes.medium), ) } val toolSelector = @Composable { modifier: Modifier, horizontal: Boolean -> @@ -255,6 +255,7 @@ private fun CustomizeExportContents( imageResult( Modifier .aspectRatio(state.exportImageCanvas.aspectRatioOption.aspectRatio, matchHeightConstraintsFirst = true) + ) } Spacer(modifier = Modifier.height(16.dp)) diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt index b6bd4759..4609f539 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt @@ -47,10 +47,10 @@ data class AspectRatioToolState( override val selectedToolOption: SizeOption = SizeOption.Square, override val options: List = listOf( SizeOption.Square, - SizeOption.Banner, - SizeOption.SocialHeader, SizeOption.Wallpaper, SizeOption.WallpaperTablet, + SizeOption.Banner, + SizeOption.SocialHeader, ), ) : ToolState @@ -58,6 +58,7 @@ data class BackgroundToolState( override val selectedToolOption: BackgroundOption = BackgroundOption.None, override val options: List = listOf( BackgroundOption.None, + BackgroundOption.Plain, BackgroundOption.Lightspeed, BackgroundOption.IO, ), @@ -68,8 +69,8 @@ data class ExportImageCanvas( val aspectRatioOption: SizeOption = SizeOption.Square, val canvasSize: Size = Size(1000f, 1000f), val mainImageUri: Uri? = null, - val imageSize: Size = Size(600f, 600f), - val imageOffset: Offset = Offset(canvasSize.width * 0.2f, canvasSize.height * 0.16f), + val imageSize: Size = Size(1000f, 1000f), + val imageOffset: Offset = Offset.Zero, val imageRotation: Float = 0f, val imageOriginalBitmapSize: Size? = Size(1024f, 1024f), val selectedBackgroundOption: BackgroundOption = BackgroundOption.None, @@ -85,60 +86,94 @@ data class ExportImageCanvas( var imageSize: Size var offset = Offset.Zero - var image: Int + var image: Int? var rotation: Float when (sizeOption) { SizeOption.Square -> { + offset = Offset(newCanvasSize.width * 0.2f, newCanvasSize.height * 0.16f) + imageSize = Size(newCanvasSize.width * 0.6f, newCanvasSize.width * 0.6f) + rotation = 0f image = when (backgroundOption) { BackgroundOption.IO -> com.android.developers.androidify.results.R.drawable.background_square_blocks BackgroundOption.Lightspeed -> com.android.developers.androidify.results.R.drawable.background_square_lightspeed - BackgroundOption.None -> com.android.developers.androidify.results.R.drawable.background_square_none + BackgroundOption.None -> { + offset = Offset(0f, 0f) + imageSize = Size(newCanvasSize.width, newCanvasSize.height) + null + } + BackgroundOption.Plain -> com.android.developers.androidify.results.R.drawable.background_square_none } - offset = Offset(newCanvasSize.width * 0.2f, newCanvasSize.height * 0.16f) - imageSize = Size(newCanvasSize.width * 0.6f, newCanvasSize.width * 0.6f) - rotation = 0f } SizeOption.Banner -> { + offset = Offset(newCanvasSize.width * 0.51f, newCanvasSize.height * -0.03f) + imageSize = Size(newCanvasSize.width * 0.26f, newCanvasSize.width * 0.26f) + rotation = -11f image = when (backgroundOption) { BackgroundOption.IO -> com.android.developers.androidify.results.R.drawable.background_banner_square BackgroundOption.Lightspeed -> com.android.developers.androidify.results.R.drawable.background_banner_lightspeed - BackgroundOption.None -> com.android.developers.androidify.results.R.drawable.background_banner_plain + BackgroundOption.None -> { + offset = Offset(0f, 0f) + imageSize = Size(newCanvasSize.width, newCanvasSize.height) + + rotation = 0f + null + } + BackgroundOption.Plain -> com.android.developers.androidify.results.R.drawable.background_banner_plain } - offset = Offset(newCanvasSize.width * 0.51f, newCanvasSize.height * -0.03f) - imageSize = Size(newCanvasSize.width * 0.26f, newCanvasSize.width * 0.26f) - rotation = -11f + } SizeOption.SocialHeader -> { + offset = Offset(newCanvasSize.width * 0.49f, newCanvasSize.height * 0.01f) + imageSize = Size(newCanvasSize.width * 0.26f, newCanvasSize.width * 0.3f) + rotation = -9f image = when (backgroundOption) { BackgroundOption.IO -> com.android.developers.androidify.results.R.drawable.background_social_header_shape BackgroundOption.Lightspeed -> com.android.developers.androidify.results.R.drawable.background_social_header_lightspeed - BackgroundOption.None -> com.android.developers.androidify.results.R.drawable.background_social_header_plain + BackgroundOption.None -> { + offset = Offset(0f, 0f) + imageSize = Size(newCanvasSize.width, newCanvasSize.height) + rotation = 0f + null + } + BackgroundOption.Plain -> com.android.developers.androidify.results.R.drawable.background_social_header_plain } - offset = Offset(newCanvasSize.width * 0.49f, newCanvasSize.height * 0.01f) - imageSize = Size(newCanvasSize.width * 0.26f, newCanvasSize.width * 0.3f) - rotation = -9f + } SizeOption.Wallpaper -> { + offset = Offset(newCanvasSize.width * -0.02f, newCanvasSize.height * 0.1f) + imageSize = Size(newCanvasSize.width * 1.1f, newCanvasSize.width * 1.3f) + rotation = -9f image = when (backgroundOption) { BackgroundOption.IO -> com.android.developers.androidify.results.R.drawable.background_wallpaper_shapes BackgroundOption.Lightspeed -> com.android.developers.androidify.results.R.drawable.background_wallpaper_lightspeed - BackgroundOption.None -> com.android.developers.androidify.results.R.drawable.background_wallpaper_plain + BackgroundOption.None -> { + offset = Offset(0f, 0f) + imageSize = Size(newCanvasSize.width, newCanvasSize.height) + rotation = 0f + null + } + BackgroundOption.Plain -> com.android.developers.androidify.results.R.drawable.background_wallpaper_plain } - offset = Offset(newCanvasSize.width * -0.02f, newCanvasSize.height * 0.1f) - imageSize = Size(newCanvasSize.width * 1.1f, newCanvasSize.width * 1.3f) - rotation = -9f + } SizeOption.WallpaperTablet -> { + offset = Offset(newCanvasSize.width * 0.24f, newCanvasSize.height * 0.06f) + imageSize = Size(newCanvasSize.width * 0.52f, newCanvasSize.width * 0.52f) + rotation = -10f image = when (backgroundOption) { BackgroundOption.IO -> com.android.developers.androidify.results.R.drawable.background_wallpaper_tablet_shapes BackgroundOption.Lightspeed -> com.android.developers.androidify.results.R.drawable.background_wallpaper_tablet_lightspeed - BackgroundOption.None -> com.android.developers.androidify.results.R.drawable.background_wallpaper_tablet_light + BackgroundOption.None -> { + offset = Offset(0f, 0f) + imageSize = Size(newCanvasSize.width, newCanvasSize.height) + rotation = 0f + null + } + BackgroundOption.Plain -> com.android.developers.androidify.results.R.drawable.background_wallpaper_tablet_light } - offset = Offset(newCanvasSize.width * 0.24f, newCanvasSize.height * 0.06f) - imageSize = Size(newCanvasSize.width * 0.52f, newCanvasSize.width * 0.52f) - rotation = -10f + } } return copy( diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeTool.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeTool.kt index 55c98c5a..f1365f87 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeTool.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeTool.kt @@ -48,6 +48,7 @@ sealed class BackgroundOption( val previewDrawableInt: Int?, ) : ToolOption { object None : BackgroundOption("None", "None", null) + object Plain: BackgroundOption("Plain", "Plain", null) object Lightspeed : BackgroundOption( "Lightspeed", "Lightspeed", diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt index 4251747c..48496e77 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt @@ -125,7 +125,9 @@ fun BackgroundLayout( Box( modifier = Modifier .fillMaxSize() - .clip(RoundedCornerShape(percent = 7)), + .clip(RoundedCornerShape(percent = + if (exportImageCanvas.selectedBackgroundOption == BackgroundOption.None) + 0 else 6)), contentAlignment = Alignment.Center, ) { content() From 308a7594d11a316b693d1287062c50ee863e232c Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Tue, 15 Jul 2025 15:53:07 +0100 Subject: [PATCH 28/38] Lint debug --- .../android/developers/androidify/creation/CreationScreen.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/feature/creation/src/main/java/com/android/developers/androidify/creation/CreationScreen.kt b/feature/creation/src/main/java/com/android/developers/androidify/creation/CreationScreen.kt index 1f1f1ebf..40767c56 100644 --- a/feature/creation/src/main/java/com/android/developers/androidify/creation/CreationScreen.kt +++ b/feature/creation/src/main/java/com/android/developers/androidify/creation/CreationScreen.kt @@ -25,6 +25,7 @@ package com.android.developers.androidify.creation import android.net.Uri import androidx.activity.ComponentActivity import androidx.activity.compose.BackHandler +import androidx.activity.compose.LocalActivity import androidx.activity.compose.rememberLauncherForActivityResult import androidx.activity.result.PickVisualMediaRequest import androidx.activity.result.contract.ActivityResultContracts.PickVisualMedia @@ -436,7 +437,7 @@ private fun MainCreationPane( val alternateDropAreaBackgroundColor = MaterialTheme.colorScheme.surfaceVariant var background by remember { mutableStateOf(defaultDropAreaBackgroundColor) } - val activity = LocalContext.current as ComponentActivity + val activity = LocalActivity.current as ComponentActivity val externalAppCallback = remember { dropBehaviourFactory.createTargetCallback( activity = activity, From cea9ee003c695b189b4f50e6529af64803c23c11 Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Wed, 16 Jul 2025 13:21:04 +0100 Subject: [PATCH 29/38] Added CustomizeStateTest.kt --- .../customize/CustomizeStateTest.kt | 222 ++++++++++++++++++ 1 file changed, 222 insertions(+) create mode 100644 feature/results/src/test/kotlin/com/android/developers/androidify/customize/CustomizeStateTest.kt diff --git a/feature/results/src/test/kotlin/com/android/developers/androidify/customize/CustomizeStateTest.kt b/feature/results/src/test/kotlin/com/android/developers/androidify/customize/CustomizeStateTest.kt new file mode 100644 index 00000000..6ba29632 --- /dev/null +++ b/feature/results/src/test/kotlin/com/android/developers/androidify/customize/CustomizeStateTest.kt @@ -0,0 +1,222 @@ +package com.android.developers.androidify.customize + +import androidx.compose.ui.geometry.Offset +import androidx.compose.ui.geometry.Size +import com.android.developers.androidify.results.R +import org.junit.Assert +import org.junit.Test +import org.junit.runner.RunWith +import org.robolectric.RobolectricTestRunner +import org.robolectric.annotation.Config + +@RunWith(RobolectricTestRunner::class) +class CustomizeStateTest { + + @Test + fun customizeExportState_defaultValues() { + val state = CustomizeExportState() + Assert.assertNull(state.originalImageUrl) + Assert.assertNull(state.savedUri) + Assert.assertNull(state.externalSavedUri) + Assert.assertNull(state.externalOriginalSavedUri) + Assert.assertEquals(CustomizeTool.Size, state.selectedTool) + Assert.assertTrue(state.tools.containsAll(CustomizeTool.entries)) + Assert.assertTrue(state.toolState.containsKey(CustomizeTool.Size)) + Assert.assertTrue(state.toolState.containsKey(CustomizeTool.Background)) + Assert.assertTrue(state.toolState[CustomizeTool.Size] is AspectRatioToolState) + Assert.assertTrue(state.toolState[CustomizeTool.Background] is BackgroundToolState) + Assert.assertEquals(ExportImageCanvas(), state.exportImageCanvas) + } + + @Test + fun aspectRatioToolState_defaultValues() { + val state = AspectRatioToolState() + Assert.assertEquals(SizeOption.Square, state.selectedToolOption) + Assert.assertEquals( + listOf( + SizeOption.Square, + SizeOption.Wallpaper, + SizeOption.WallpaperTablet, + SizeOption.Banner, + SizeOption.SocialHeader, + ), + state.options + ) + } + + @Test + fun backgroundToolState_defaultValues() { + val state = BackgroundToolState() + Assert.assertEquals(BackgroundOption.None, state.selectedToolOption) + Assert.assertEquals( + listOf( + BackgroundOption.None, + BackgroundOption.Plain, + BackgroundOption.Lightspeed, + BackgroundOption.IO, + ), + state.options + ) + } + + @Test + fun exportImageCanvas_defaultValues() { + val canvas = ExportImageCanvas() + Assert.assertNull(canvas.imageBitmap) + Assert.assertEquals(SizeOption.Square, canvas.aspectRatioOption) + Assert.assertEquals(Size(1000f, 1000f), canvas.canvasSize) + Assert.assertNull(canvas.mainImageUri) + Assert.assertEquals(Size(1000f, 1000f), canvas.imageSize) + Assert.assertEquals(Offset.Companion.Zero, canvas.imageOffset) + Assert.assertEquals(0f, canvas.imageRotation) + Assert.assertEquals(Size(1024f, 1024f), canvas.imageOriginalBitmapSize) + Assert.assertEquals(BackgroundOption.None, canvas.selectedBackgroundOption) + Assert.assertEquals(R.drawable.background_square_none, canvas.selectedBackgroundDrawable) + Assert.assertTrue(canvas.includeWatermark) + } + + @Test + fun updateAspectRatioAndBackground_Square_None() { + val initialCanvas = ExportImageCanvas() + val updatedCanvas = initialCanvas.updateAspectRatioAndBackground( + backgroundOption = BackgroundOption.None, + sizeOption = SizeOption.Square + ) + + Assert.assertEquals(SizeOption.Square, updatedCanvas.aspectRatioOption) + Assert.assertEquals(BackgroundOption.None, updatedCanvas.selectedBackgroundOption) + Assert.assertEquals(SizeOption.Square.dimensions, updatedCanvas.canvasSize) + Assert.assertNull(updatedCanvas.selectedBackgroundDrawable) + Assert.assertEquals(0f, updatedCanvas.imageRotation) + + // For None background, imageSize should match canvasSize and offset be Zero + Assert.assertEquals(updatedCanvas.canvasSize, updatedCanvas.imageSize) + Assert.assertEquals(Offset.Companion.Zero, updatedCanvas.imageOffset) + } + + @Test + fun updateAspectRatioAndBackground_Square_IO() { + val initialCanvas = ExportImageCanvas() + val updatedCanvas = initialCanvas.updateAspectRatioAndBackground( + backgroundOption = BackgroundOption.IO, + sizeOption = SizeOption.Square + ) + val newCanvasSize = SizeOption.Square.dimensions + + Assert.assertEquals(SizeOption.Square, updatedCanvas.aspectRatioOption) + Assert.assertEquals(BackgroundOption.IO, updatedCanvas.selectedBackgroundOption) + Assert.assertEquals(newCanvasSize, updatedCanvas.canvasSize) + Assert.assertEquals( + R.drawable.background_square_blocks, + updatedCanvas.selectedBackgroundDrawable + ) + Assert.assertEquals(0f, updatedCanvas.imageRotation) + Assert.assertEquals( + Size(newCanvasSize.width * 0.6f, newCanvasSize.width * 0.6f), + updatedCanvas.imageSize + ) + Assert.assertEquals( + Offset(newCanvasSize.width * 0.2f, newCanvasSize.height * 0.16f), + updatedCanvas.imageOffset + ) + } + + @Test + fun updateAspectRatioAndBackground_Banner_Lightspeed() { + val initialCanvas = ExportImageCanvas() + val updatedCanvas = initialCanvas.updateAspectRatioAndBackground( + backgroundOption = BackgroundOption.Lightspeed, + sizeOption = SizeOption.Banner + ) + val newCanvasSize = SizeOption.Banner.dimensions + + Assert.assertEquals(SizeOption.Banner, updatedCanvas.aspectRatioOption) + Assert.assertEquals(BackgroundOption.Lightspeed, updatedCanvas.selectedBackgroundOption) + Assert.assertEquals(newCanvasSize, updatedCanvas.canvasSize) + Assert.assertEquals( + R.drawable.background_banner_lightspeed, + updatedCanvas.selectedBackgroundDrawable + ) + Assert.assertEquals(-11f, updatedCanvas.imageRotation) + Assert.assertEquals( + Size(newCanvasSize.width * 0.26f, newCanvasSize.width * 0.26f), + updatedCanvas.imageSize + ) + Assert.assertEquals( + Offset(newCanvasSize.width * 0.51f, newCanvasSize.height * -0.03f), + updatedCanvas.imageOffset + ) + } + + @Test + fun updateAspectRatioAndBackground_SocialHeader_Plain() { + val initialCanvas = ExportImageCanvas() + val updatedCanvas = initialCanvas.updateAspectRatioAndBackground( + backgroundOption = BackgroundOption.Plain, + sizeOption = SizeOption.SocialHeader + ) + val newCanvasSize = SizeOption.SocialHeader.dimensions + + Assert.assertEquals(SizeOption.SocialHeader, updatedCanvas.aspectRatioOption) + Assert.assertEquals(BackgroundOption.Plain, updatedCanvas.selectedBackgroundOption) + Assert.assertEquals(newCanvasSize, updatedCanvas.canvasSize) + Assert.assertEquals( + R.drawable.background_social_header_plain, + updatedCanvas.selectedBackgroundDrawable + ) + Assert.assertEquals(-9f, updatedCanvas.imageRotation) + Assert.assertEquals( + Size(newCanvasSize.width * 0.26f, newCanvasSize.width * 0.3f), + updatedCanvas.imageSize + ) + Assert.assertEquals( + Offset(newCanvasSize.width * 0.49f, newCanvasSize.height * 0.01f), + updatedCanvas.imageOffset + ) + } + + @Test + fun updateAspectRatioAndBackground_Wallpaper_IO() { + val initialCanvas = ExportImageCanvas() + val updatedCanvas = initialCanvas.updateAspectRatioAndBackground( + backgroundOption = BackgroundOption.IO, + sizeOption = SizeOption.Wallpaper + ) + val newCanvasSize = SizeOption.Wallpaper.dimensions + + Assert.assertEquals(SizeOption.Wallpaper, updatedCanvas.aspectRatioOption) + Assert.assertEquals(BackgroundOption.IO, updatedCanvas.selectedBackgroundOption) + Assert.assertEquals(newCanvasSize, updatedCanvas.canvasSize) + Assert.assertEquals( + R.drawable.background_wallpaper_shapes, + updatedCanvas.selectedBackgroundDrawable + ) + Assert.assertEquals(-9f, updatedCanvas.imageRotation) + Assert.assertEquals( + Size(newCanvasSize.width * 1.1f, newCanvasSize.width * 1.3f), + updatedCanvas.imageSize + ) + Assert.assertEquals( + Offset(newCanvasSize.width * -0.02f, newCanvasSize.height * 0.1f), + updatedCanvas.imageOffset + ) + } + + @Test + fun updateAspectRatioAndBackground_WallpaperTablet_None() { + val initialCanvas = ExportImageCanvas() + val updatedCanvas = initialCanvas.updateAspectRatioAndBackground( + backgroundOption = BackgroundOption.None, + sizeOption = SizeOption.WallpaperTablet + ) + val newCanvasSize = SizeOption.WallpaperTablet.dimensions + + Assert.assertEquals(SizeOption.WallpaperTablet, updatedCanvas.aspectRatioOption) + Assert.assertEquals(BackgroundOption.None, updatedCanvas.selectedBackgroundOption) + Assert.assertEquals(newCanvasSize, updatedCanvas.canvasSize) + Assert.assertNull(updatedCanvas.selectedBackgroundDrawable) + Assert.assertEquals(0f, updatedCanvas.imageRotation) + Assert.assertEquals(newCanvasSize, updatedCanvas.imageSize) + Assert.assertEquals(Offset.Companion.Zero, updatedCanvas.imageOffset) + } +} \ No newline at end of file From 9a363a9fbc04b7c02c211493a344ca917f434a38 Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Wed, 16 Jul 2025 20:00:20 +0100 Subject: [PATCH 30/38] [WIP] add animateBounds on CustomizeExportScreen.kt --- .../customize/CustomizeExportScreen.kt | 39 +++-- .../androidify/customize/ImageRenderer.kt | 145 ++++++++++++++++-- 2 files changed, 161 insertions(+), 23 deletions(-) diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt index ec771a7a..5f7d04ca 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt @@ -23,6 +23,8 @@ import android.net.Uri import android.os.Build import androidx.compose.animation.AnimatedContent import androidx.compose.animation.ExperimentalSharedTransitionApi +import androidx.compose.animation.animateBounds +import androidx.compose.animation.animateContentSize import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box @@ -52,15 +54,20 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue +import androidx.compose.runtime.movableContentWithReceiverOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip +import androidx.compose.ui.draw.dropShadow +import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.ImageBitmap import androidx.compose.ui.graphics.asAndroidBitmap +import androidx.compose.ui.graphics.shadow.Shadow import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.layout.LookaheadScope import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.imageResource import androidx.compose.ui.res.stringResource @@ -74,6 +81,7 @@ import com.android.developers.androidify.results.PermissionRationaleDialog import com.android.developers.androidify.results.R import com.android.developers.androidify.results.shareImage import com.android.developers.androidify.theme.AndroidifyTheme +import com.android.developers.androidify.theme.LocalSharedTransitionScope import com.android.developers.androidify.theme.components.AndroidifyTopAppBar import com.android.developers.androidify.theme.components.PrimaryButton import com.android.developers.androidify.theme.components.SecondaryOutlinedButton @@ -157,12 +165,24 @@ private fun CustomizeExportContents( }, containerColor = MaterialTheme.colorScheme.surface, ) { paddingValues -> - val imageResult = @Composable { modifier: Modifier -> - ImageResult( - state.exportImageCanvas, - modifier = modifier - .padding(16.dp) - ) + val animateBoundsModifier = Modifier.animateBounds( + lookaheadScope = LocalSharedTransitionScope.current) + val imageResult = remember { + movableContentWithReceiverOf { + ImageResult( + this, + modifier = Modifier + .padding(16.dp) + .then(animateBoundsModifier) + .dropShadow( + RoundedCornerShape(6), + shadow = Shadow(radius = 26.dp, + spread = 10.dp, + color = MaterialTheme.colorScheme.inverseSurface.copy(alpha = 0.2f)) + ) + + ) + } } val toolSelector = @Composable { modifier: Modifier, horizontal: Boolean -> ToolSelector( @@ -205,8 +225,7 @@ private fun CustomizeExportContents( horizontalArrangement = Arrangement.SpaceBetween, ) { imageResult( - Modifier - .weight(1f, fill = true), + state.exportImageCanvas ) Column( Modifier @@ -253,9 +272,7 @@ private fun CustomizeExportContents( contentAlignment = Alignment.Center, ) { imageResult( - Modifier - .aspectRatio(state.exportImageCanvas.aspectRatioOption.aspectRatio, matchHeightConstraintsFirst = true) - + state.exportImageCanvas ) } Spacer(modifier = Modifier.height(16.dp)) diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt index 48496e77..0af84457 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt @@ -15,14 +15,21 @@ */ package com.android.developers.androidify.customize +import androidx.compose.animation.core.animateFloatAsState +import androidx.compose.animation.core.animateIntOffsetAsState +import androidx.compose.animation.core.animateOffsetAsState +import androidx.compose.animation.core.animateSizeAsState import androidx.compose.foundation.Image import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.aspectRatio import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip @@ -37,6 +44,8 @@ import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.layout.layout import androidx.compose.ui.res.imageResource import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.Constraints +import androidx.compose.ui.unit.IntOffset import com.android.developers.androidify.results.R @OptIn(ExperimentalMaterial3ExpressiveApi::class) @@ -52,10 +61,11 @@ fun ImageResult( Box( modifier = Modifier .background(Color.White) - .aspectRatio( + .layoutAspectRatio(exportImageCanvas.aspectRatioOption.aspectRatio) + /*.aspectRatio( exportImageCanvas.aspectRatioOption.aspectRatio, matchHeightConstraintsFirst = true, - ), + ),*/ ) { BackgroundLayout( exportImageCanvas, @@ -90,23 +100,43 @@ fun BackgroundLayout( contentDescription = null, ) } + + val offset by animateOffsetAsState( + targetValue = exportImageCanvas.imageOffset, label = "offset", + ) + val animatedImageSize by animateSizeAsState( + targetValue = exportImageCanvas.imageSize, label = "imageSize", + ) + val rotationAnimation by animateFloatAsState( + targetValue = exportImageCanvas.imageRotation, label = "rotation", + ) + val exportCanvasSizeAnimation by animateSizeAsState( + targetValue = exportImageCanvas.canvasSize, label = "canvas size", + ) + Box( modifier = Modifier .fillMaxSize() .layout { measurable, constraints -> + val offsetValue = if (!isLookingAhead) exportImageCanvas.imageOffset else offset + val imageSizeValue = + if (!isLookingAhead) exportImageCanvas.imageSize else animatedImageSize + val exportCanvasSizeAnimation = + if (!isLookingAhead) exportImageCanvas.canvasSize else exportCanvasSizeAnimation + val actualWidth = constraints.maxWidth val actualHeight = constraints.maxHeight - val scale = if (exportImageCanvas.canvasSize.width > 0f) { - actualWidth / exportImageCanvas.canvasSize.width + val scale = if (exportCanvasSizeAnimation.width > 0f) { + actualWidth / exportCanvasSizeAnimation.width } else { 1f } - val scaledImageWidth = exportImageCanvas.imageSize.width * scale - val scaledImageHeight = exportImageCanvas.imageSize.height * scale - val scaledOffsetX = exportImageCanvas.imageOffset.x * scale - val scaledOffsetY = exportImageCanvas.imageOffset.y * scale + val scaledImageWidth = imageSizeValue.width * scale + val scaledImageHeight = imageSizeValue.height * scale + val scaledOffsetX = offsetValue.x * scale + val scaledOffsetY = offsetValue.y * scale val placeable = measurable.measure( constraints.copy( @@ -120,14 +150,18 @@ fun BackgroundLayout( placeable.placeRelative(scaledOffsetX.toInt(), scaledOffsetY.toInt()) } } - .rotate(exportImageCanvas.imageRotation), + .rotate(rotationAnimation), ) { Box( modifier = Modifier .fillMaxSize() - .clip(RoundedCornerShape(percent = - if (exportImageCanvas.selectedBackgroundOption == BackgroundOption.None) - 0 else 6)), + .clip( + RoundedCornerShape( + percent = + if (exportImageCanvas.selectedBackgroundOption == BackgroundOption.None) + 0 else 6, + ), + ), contentAlignment = Alignment.Center, ) { content() @@ -262,3 +296,90 @@ fun ImageRendererPreviewWallpaperIO() { .aspectRatio(SizeOption.SocialHeader.aspectRatio), ) } + + +fun Modifier.layoutAspectRatio(targetAspectRatio: Float) = // Assume 'targetAspectRatio' is a Float value available in your scope (e.g., width / height) + + this.layout { measurable, constraints -> + // Determine the ideal size for this layout based on the targetAspectRatio and incoming constraints. + // This logic prioritizes fitting the width constraints first. + var idealWidth: Int + var idealHeight: Int + + if (targetAspectRatio <= 0f) { + // Invalid aspect ratio, fallback to min constraints or 0,0 + idealWidth = constraints.minWidth + idealHeight = constraints.minHeight + } else { + // Try to determine size based on width constraints + if (constraints.hasFixedWidth) { + idealWidth = constraints.maxWidth + idealHeight = (idealWidth / targetAspectRatio).toInt() + } else if (constraints.hasFixedHeight) { // Width is not fixed, but height is + idealHeight = constraints.maxHeight + idealWidth = (idealHeight * targetAspectRatio).toInt() + } else { + // Neither width nor height is fixed. Try to use maxWidth if bounded. + if (constraints.maxWidth != Constraints.Infinity) { + idealWidth = constraints.maxWidth + idealHeight = (idealWidth / targetAspectRatio).toInt() + + // If calculated height violates maxHeight (and maxHeight is bounded), + // then recalculate based on maxHeight. + if (constraints.maxHeight != Constraints.Infinity && idealHeight > constraints.maxHeight) { + idealHeight = constraints.maxHeight + idealWidth = (idealHeight * targetAspectRatio).toInt() + } else if (idealHeight < constraints.minHeight && constraints.minHeight != 0) { + // If calculated height is less than minHeight, recalculate based on minHeight. + idealHeight = constraints.minHeight + idealWidth = (idealHeight * targetAspectRatio).toInt() + } + } else if (constraints.maxHeight != Constraints.Infinity) { + // Width is unbounded (Infinity), but maxHeight is bounded. + idealHeight = constraints.maxHeight + idealWidth = (idealHeight * targetAspectRatio).toInt() + } else { + // Both width and height are unbounded (Infinity). Fallback to minConstraints. + // This case is ambiguous without further rules. + idealWidth = constraints.minWidth + idealHeight = (idealWidth / targetAspectRatio).toInt() + if (idealHeight < constraints.minHeight && constraints.minHeight != 0) { + idealHeight = constraints.minHeight + idealWidth = (idealHeight * targetAspectRatio).toInt() + } + + } + } + } + + // Coerce the ideal dimensions to ensure they fit within the provided constraints. + // The layout itself will take this size. + val layoutWidth = idealWidth.coerceIn(constraints.minWidth, constraints.maxWidth) + + // Recalculate layoutHeight based on the (potentially coerced) layoutWidth to maintain aspect ratio, + // then coerce layoutHeight. + var layoutHeight = if (targetAspectRatio > 0f) (layoutWidth / targetAspectRatio).toInt() else idealHeight + layoutHeight = layoutHeight.coerceIn(constraints.minHeight, constraints.maxHeight) + + // Final adjustment: if layoutHeight was coerced, layoutWidth might need to be re-calculated + // to maintain aspect ratio again, and then re-coerced. This iterative refinement helps + // find the largest size that fits constraints AND maintains the aspect ratio. + val adjustedLayoutWidth = if (targetAspectRatio > 0f) (layoutHeight * targetAspectRatio).toInt() else layoutWidth + val finalLayoutWidth = adjustedLayoutWidth.coerceIn(constraints.minWidth, constraints.maxWidth) + + // Calculate the final height based on the truly final width. + val finalLayoutHeight = if (targetAspectRatio > 0f) (finalLayoutWidth / targetAspectRatio).toInt() else layoutHeight + // Coerce this final height one last time. + val finalLayoutHeightCoerced = finalLayoutHeight.coerceIn(constraints.minHeight, constraints.maxHeight) + + // Measure the child composable (if any) to fill the dimensions determined for this layout. + val placeable = measurable.measure( + Constraints.fixed(finalLayoutWidth, finalLayoutHeightCoerced), + ) + + // Set the size of this custom layout to the calculated final dimensions + // and place the child within it. + layout(finalLayoutWidth, finalLayoutHeightCoerced) { + placeable.placeRelative(0, 0) + } + } From 8367bd26e8863f950501e6a6fe65bda37743c109 Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Wed, 16 Jul 2025 21:01:39 +0100 Subject: [PATCH 31/38] [WIP] add animateBounds on CustomizeExportScreen.kt --- .../customize/CustomizeExportScreen.kt | 16 ++- .../androidify/customize/CustomizeState.kt | 6 +- .../androidify/customize/ImageRenderer.kt | 111 +++--------------- 3 files changed, 25 insertions(+), 108 deletions(-) diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt index 5f7d04ca..5923f235 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt @@ -172,15 +172,13 @@ private fun CustomizeExportContents( ImageResult( this, modifier = Modifier - .padding(16.dp) - .then(animateBoundsModifier) - .dropShadow( - RoundedCornerShape(6), - shadow = Shadow(radius = 26.dp, - spread = 10.dp, - color = MaterialTheme.colorScheme.inverseSurface.copy(alpha = 0.2f)) - ) - + .padding(16.dp), + uiDisplayModifier = animateBoundsModifier.dropShadow( + RoundedCornerShape(6), + shadow = Shadow(radius = 26.dp, + spread = 10.dp, + color = MaterialTheme.colorScheme.inverseSurface.copy(alpha = 0.2f)) + ), ) } } diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt index 4609f539..1095a926 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt @@ -69,11 +69,11 @@ data class ExportImageCanvas( val aspectRatioOption: SizeOption = SizeOption.Square, val canvasSize: Size = Size(1000f, 1000f), val mainImageUri: Uri? = null, - val imageSize: Size = Size(1000f, 1000f), - val imageOffset: Offset = Offset.Zero, + val imageSize: Size = Size(600f, 600f), + val imageOffset: Offset = Offset(canvasSize.width * 0.2f, canvasSize.height * 0.16f), val imageRotation: Float = 0f, val imageOriginalBitmapSize: Size? = Size(1024f, 1024f), - val selectedBackgroundOption: BackgroundOption = BackgroundOption.None, + val selectedBackgroundOption: BackgroundOption = BackgroundOption.IO, @param:DrawableRes val selectedBackgroundDrawable: Int? = com.android.developers.androidify.results.R.drawable.background_square_none, val includeWatermark: Boolean = true, diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt index 0af84457..3549e640 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt @@ -15,6 +15,8 @@ */ package com.android.developers.androidify.customize +import androidx.compose.animation.ExperimentalSharedTransitionApi +import androidx.compose.animation.animateBounds import androidx.compose.animation.core.animateFloatAsState import androidx.compose.animation.core.animateIntOffsetAsState import androidx.compose.animation.core.animateOffsetAsState @@ -47,25 +49,29 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Constraints import androidx.compose.ui.unit.IntOffset import com.android.developers.androidify.results.R +import com.android.developers.androidify.theme.LocalSharedTransitionScope -@OptIn(ExperimentalMaterial3ExpressiveApi::class) +@OptIn(ExperimentalMaterial3ExpressiveApi::class, ExperimentalSharedTransitionApi::class) @Composable fun ImageResult( exportImageCanvas: ExportImageCanvas, modifier: Modifier = Modifier, + uiDisplayModifier: Modifier = Modifier, ) { Box( - modifier = modifier.clipToBounds(), + modifier = modifier, contentAlignment = Alignment.Center, ) { + Box( modifier = Modifier - .background(Color.White) - .layoutAspectRatio(exportImageCanvas.aspectRatioOption.aspectRatio) - /*.aspectRatio( + .aspectRatio( exportImageCanvas.aspectRatioOption.aspectRatio, matchHeightConstraintsFirst = true, - ),*/ + ) + .then(uiDisplayModifier) + .background(Color.White) + .clipToBounds(), ) { BackgroundLayout( exportImageCanvas, @@ -118,11 +124,11 @@ fun BackgroundLayout( modifier = Modifier .fillMaxSize() .layout { measurable, constraints -> - val offsetValue = if (!isLookingAhead) exportImageCanvas.imageOffset else offset + val offsetValue = if (isLookingAhead) exportImageCanvas.imageOffset else offset val imageSizeValue = - if (!isLookingAhead) exportImageCanvas.imageSize else animatedImageSize + if (isLookingAhead) exportImageCanvas.imageSize else animatedImageSize val exportCanvasSizeAnimation = - if (!isLookingAhead) exportImageCanvas.canvasSize else exportCanvasSizeAnimation + if (isLookingAhead) exportImageCanvas.canvasSize else exportCanvasSizeAnimation val actualWidth = constraints.maxWidth val actualHeight = constraints.maxHeight @@ -296,90 +302,3 @@ fun ImageRendererPreviewWallpaperIO() { .aspectRatio(SizeOption.SocialHeader.aspectRatio), ) } - - -fun Modifier.layoutAspectRatio(targetAspectRatio: Float) = // Assume 'targetAspectRatio' is a Float value available in your scope (e.g., width / height) - - this.layout { measurable, constraints -> - // Determine the ideal size for this layout based on the targetAspectRatio and incoming constraints. - // This logic prioritizes fitting the width constraints first. - var idealWidth: Int - var idealHeight: Int - - if (targetAspectRatio <= 0f) { - // Invalid aspect ratio, fallback to min constraints or 0,0 - idealWidth = constraints.minWidth - idealHeight = constraints.minHeight - } else { - // Try to determine size based on width constraints - if (constraints.hasFixedWidth) { - idealWidth = constraints.maxWidth - idealHeight = (idealWidth / targetAspectRatio).toInt() - } else if (constraints.hasFixedHeight) { // Width is not fixed, but height is - idealHeight = constraints.maxHeight - idealWidth = (idealHeight * targetAspectRatio).toInt() - } else { - // Neither width nor height is fixed. Try to use maxWidth if bounded. - if (constraints.maxWidth != Constraints.Infinity) { - idealWidth = constraints.maxWidth - idealHeight = (idealWidth / targetAspectRatio).toInt() - - // If calculated height violates maxHeight (and maxHeight is bounded), - // then recalculate based on maxHeight. - if (constraints.maxHeight != Constraints.Infinity && idealHeight > constraints.maxHeight) { - idealHeight = constraints.maxHeight - idealWidth = (idealHeight * targetAspectRatio).toInt() - } else if (idealHeight < constraints.minHeight && constraints.minHeight != 0) { - // If calculated height is less than minHeight, recalculate based on minHeight. - idealHeight = constraints.minHeight - idealWidth = (idealHeight * targetAspectRatio).toInt() - } - } else if (constraints.maxHeight != Constraints.Infinity) { - // Width is unbounded (Infinity), but maxHeight is bounded. - idealHeight = constraints.maxHeight - idealWidth = (idealHeight * targetAspectRatio).toInt() - } else { - // Both width and height are unbounded (Infinity). Fallback to minConstraints. - // This case is ambiguous without further rules. - idealWidth = constraints.minWidth - idealHeight = (idealWidth / targetAspectRatio).toInt() - if (idealHeight < constraints.minHeight && constraints.minHeight != 0) { - idealHeight = constraints.minHeight - idealWidth = (idealHeight * targetAspectRatio).toInt() - } - - } - } - } - - // Coerce the ideal dimensions to ensure they fit within the provided constraints. - // The layout itself will take this size. - val layoutWidth = idealWidth.coerceIn(constraints.minWidth, constraints.maxWidth) - - // Recalculate layoutHeight based on the (potentially coerced) layoutWidth to maintain aspect ratio, - // then coerce layoutHeight. - var layoutHeight = if (targetAspectRatio > 0f) (layoutWidth / targetAspectRatio).toInt() else idealHeight - layoutHeight = layoutHeight.coerceIn(constraints.minHeight, constraints.maxHeight) - - // Final adjustment: if layoutHeight was coerced, layoutWidth might need to be re-calculated - // to maintain aspect ratio again, and then re-coerced. This iterative refinement helps - // find the largest size that fits constraints AND maintains the aspect ratio. - val adjustedLayoutWidth = if (targetAspectRatio > 0f) (layoutHeight * targetAspectRatio).toInt() else layoutWidth - val finalLayoutWidth = adjustedLayoutWidth.coerceIn(constraints.minWidth, constraints.maxWidth) - - // Calculate the final height based on the truly final width. - val finalLayoutHeight = if (targetAspectRatio > 0f) (finalLayoutWidth / targetAspectRatio).toInt() else layoutHeight - // Coerce this final height one last time. - val finalLayoutHeightCoerced = finalLayoutHeight.coerceIn(constraints.minHeight, constraints.maxHeight) - - // Measure the child composable (if any) to fill the dimensions determined for this layout. - val placeable = measurable.measure( - Constraints.fixed(finalLayoutWidth, finalLayoutHeightCoerced), - ) - - // Set the size of this custom layout to the calculated final dimensions - // and place the child within it. - layout(finalLayoutWidth, finalLayoutHeightCoerced) { - placeable.placeRelative(0, 0) - } - } From 97062139aa8c5f0e08bedebf8ebf28a5ff2b1174 Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Thu, 17 Jul 2025 11:21:26 +0100 Subject: [PATCH 32/38] [WIP] add animateBounds on CustomizeExportScreen.kt --- .../androidify/customize/CustomizeExportScreen.kt | 7 +++++-- .../androidify/customize/CustomizeState.kt | 4 ++-- .../developers/androidify/customize/ImageRenderer.kt | 12 +++++------- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt index 5923f235..319a7766 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt @@ -43,6 +43,7 @@ import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.wrapContentSize import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Scaffold @@ -85,6 +86,7 @@ import com.android.developers.androidify.theme.LocalSharedTransitionScope import com.android.developers.androidify.theme.components.AndroidifyTopAppBar import com.android.developers.androidify.theme.components.PrimaryButton import com.android.developers.androidify.theme.components.SecondaryOutlinedButton +import com.android.developers.androidify.theme.sharedElementTransitionBounds import com.android.developers.androidify.util.LargeScreensPreview import com.android.developers.androidify.util.PhonePreview import com.android.developers.androidify.util.allowsFullContent @@ -132,7 +134,7 @@ fun CustomizeAndExportScreen( ) } -@OptIn(ExperimentalSharedTransitionApi::class) +@OptIn(ExperimentalSharedTransitionApi::class, ExperimentalMaterial3ExpressiveApi::class) @Composable private fun CustomizeExportContents( state: CustomizeExportState, @@ -166,7 +168,8 @@ private fun CustomizeExportContents( containerColor = MaterialTheme.colorScheme.surface, ) { paddingValues -> val animateBoundsModifier = Modifier.animateBounds( - lookaheadScope = LocalSharedTransitionScope.current) + lookaheadScope = LocalSharedTransitionScope.current, + boundsTransform = MaterialTheme.motionScheme.sharedElementTransitionBounds) val imageResult = remember { movableContentWithReceiverOf { ImageResult( diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt index 1095a926..e8a68e23 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt @@ -55,7 +55,7 @@ data class AspectRatioToolState( ) : ToolState data class BackgroundToolState( - override val selectedToolOption: BackgroundOption = BackgroundOption.None, + override val selectedToolOption: BackgroundOption = BackgroundOption.IO, override val options: List = listOf( BackgroundOption.None, BackgroundOption.Plain, @@ -75,7 +75,7 @@ data class ExportImageCanvas( val imageOriginalBitmapSize: Size? = Size(1024f, 1024f), val selectedBackgroundOption: BackgroundOption = BackgroundOption.IO, @param:DrawableRes - val selectedBackgroundDrawable: Int? = com.android.developers.androidify.results.R.drawable.background_square_none, + val selectedBackgroundDrawable: Int? = com.android.developers.androidify.results.R.drawable.background_square_blocks, val includeWatermark: Boolean = true, ) { fun updateAspectRatioAndBackground( diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt index 3549e640..986b06ad 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt @@ -30,6 +30,7 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi +import androidx.compose.material3.SmallFloatingActionButton import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment @@ -56,6 +57,7 @@ import com.android.developers.androidify.theme.LocalSharedTransitionScope fun ImageResult( exportImageCanvas: ExportImageCanvas, modifier: Modifier = Modifier, + // Modifier only for display not end render uiDisplayModifier: Modifier = Modifier, ) { Box( @@ -158,16 +160,12 @@ fun BackgroundLayout( } .rotate(rotationAnimation), ) { + val clip = if (exportImageCanvas.selectedBackgroundOption == BackgroundOption.None) + Modifier else Modifier.clip(RoundedCornerShape(6)) Box( modifier = Modifier .fillMaxSize() - .clip( - RoundedCornerShape( - percent = - if (exportImageCanvas.selectedBackgroundOption == BackgroundOption.None) - 0 else 6, - ), - ), + .then(clip), contentAlignment = Alignment.Center, ) { content() From b21b17c8d3b23f94308545a3488e2aa654089ccd Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Thu, 17 Jul 2025 11:23:37 +0100 Subject: [PATCH 33/38] Spotless --- .../customize/CustomizeExportScreen.kt | 18 +++--- .../androidify/customize/CustomizeState.kt | 4 -- .../androidify/customize/CustomizeTool.kt | 2 +- .../androidify/customize/ImageRenderer.kt | 28 +++++---- .../customize/CustomizeStateTest.kt | 58 ++++++++++++------- 5 files changed, 58 insertions(+), 52 deletions(-) diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt index 319a7766..334f09a1 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt @@ -24,7 +24,6 @@ import android.os.Build import androidx.compose.animation.AnimatedContent import androidx.compose.animation.ExperimentalSharedTransitionApi import androidx.compose.animation.animateBounds -import androidx.compose.animation.animateContentSize import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box @@ -32,7 +31,6 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.IntrinsicSize import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.aspectRatio import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.height @@ -61,14 +59,11 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.dropShadow -import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.ImageBitmap import androidx.compose.ui.graphics.asAndroidBitmap import androidx.compose.ui.graphics.shadow.Shadow import androidx.compose.ui.graphics.vector.ImageVector -import androidx.compose.ui.layout.LookaheadScope import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.imageResource import androidx.compose.ui.res.stringResource @@ -169,7 +164,8 @@ private fun CustomizeExportContents( ) { paddingValues -> val animateBoundsModifier = Modifier.animateBounds( lookaheadScope = LocalSharedTransitionScope.current, - boundsTransform = MaterialTheme.motionScheme.sharedElementTransitionBounds) + boundsTransform = MaterialTheme.motionScheme.sharedElementTransitionBounds, + ) val imageResult = remember { movableContentWithReceiverOf { ImageResult( @@ -178,9 +174,11 @@ private fun CustomizeExportContents( .padding(16.dp), uiDisplayModifier = animateBoundsModifier.dropShadow( RoundedCornerShape(6), - shadow = Shadow(radius = 26.dp, + shadow = Shadow( + radius = 26.dp, spread = 10.dp, - color = MaterialTheme.colorScheme.inverseSurface.copy(alpha = 0.2f)) + color = MaterialTheme.colorScheme.inverseSurface.copy(alpha = 0.2f), + ), ), ) } @@ -226,7 +224,7 @@ private fun CustomizeExportContents( horizontalArrangement = Arrangement.SpaceBetween, ) { imageResult( - state.exportImageCanvas + state.exportImageCanvas, ) Column( Modifier @@ -273,7 +271,7 @@ private fun CustomizeExportContents( contentAlignment = Alignment.Center, ) { imageResult( - state.exportImageCanvas + state.exportImageCanvas, ) } Spacer(modifier = Modifier.height(16.dp)) diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt index e8a68e23..d9963976 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt @@ -120,7 +120,6 @@ data class ExportImageCanvas( } BackgroundOption.Plain -> com.android.developers.androidify.results.R.drawable.background_banner_plain } - } SizeOption.SocialHeader -> { offset = Offset(newCanvasSize.width * 0.49f, newCanvasSize.height * 0.01f) @@ -137,7 +136,6 @@ data class ExportImageCanvas( } BackgroundOption.Plain -> com.android.developers.androidify.results.R.drawable.background_social_header_plain } - } SizeOption.Wallpaper -> { @@ -155,7 +153,6 @@ data class ExportImageCanvas( } BackgroundOption.Plain -> com.android.developers.androidify.results.R.drawable.background_wallpaper_plain } - } SizeOption.WallpaperTablet -> { @@ -173,7 +170,6 @@ data class ExportImageCanvas( } BackgroundOption.Plain -> com.android.developers.androidify.results.R.drawable.background_wallpaper_tablet_light } - } } return copy( diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeTool.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeTool.kt index f1365f87..d749c78c 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeTool.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeTool.kt @@ -48,7 +48,7 @@ sealed class BackgroundOption( val previewDrawableInt: Int?, ) : ToolOption { object None : BackgroundOption("None", "None", null) - object Plain: BackgroundOption("Plain", "Plain", null) + object Plain : BackgroundOption("Plain", "Plain", null) object Lightspeed : BackgroundOption( "Lightspeed", "Lightspeed", diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt index 986b06ad..9f6b3b38 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt @@ -16,9 +16,7 @@ package com.android.developers.androidify.customize import androidx.compose.animation.ExperimentalSharedTransitionApi -import androidx.compose.animation.animateBounds import androidx.compose.animation.core.animateFloatAsState -import androidx.compose.animation.core.animateIntOffsetAsState import androidx.compose.animation.core.animateOffsetAsState import androidx.compose.animation.core.animateSizeAsState import androidx.compose.foundation.Image @@ -26,11 +24,8 @@ import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.aspectRatio import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi -import androidx.compose.material3.SmallFloatingActionButton import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment @@ -47,10 +42,7 @@ import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.layout.layout import androidx.compose.ui.res.imageResource import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.unit.Constraints -import androidx.compose.ui.unit.IntOffset import com.android.developers.androidify.results.R -import com.android.developers.androidify.theme.LocalSharedTransitionScope @OptIn(ExperimentalMaterial3ExpressiveApi::class, ExperimentalSharedTransitionApi::class) @Composable @@ -64,7 +56,6 @@ fun ImageResult( modifier = modifier, contentAlignment = Alignment.Center, ) { - Box( modifier = Modifier .aspectRatio( @@ -110,16 +101,20 @@ fun BackgroundLayout( } val offset by animateOffsetAsState( - targetValue = exportImageCanvas.imageOffset, label = "offset", + targetValue = exportImageCanvas.imageOffset, + label = "offset", ) val animatedImageSize by animateSizeAsState( - targetValue = exportImageCanvas.imageSize, label = "imageSize", + targetValue = exportImageCanvas.imageSize, + label = "imageSize", ) val rotationAnimation by animateFloatAsState( - targetValue = exportImageCanvas.imageRotation, label = "rotation", + targetValue = exportImageCanvas.imageRotation, + label = "rotation", ) val exportCanvasSizeAnimation by animateSizeAsState( - targetValue = exportImageCanvas.canvasSize, label = "canvas size", + targetValue = exportImageCanvas.canvasSize, + label = "canvas size", ) Box( @@ -160,8 +155,11 @@ fun BackgroundLayout( } .rotate(rotationAnimation), ) { - val clip = if (exportImageCanvas.selectedBackgroundOption == BackgroundOption.None) - Modifier else Modifier.clip(RoundedCornerShape(6)) + val clip = if (exportImageCanvas.selectedBackgroundOption == BackgroundOption.None) { + Modifier + } else { + Modifier.clip(RoundedCornerShape(6)) + } Box( modifier = Modifier .fillMaxSize() diff --git a/feature/results/src/test/kotlin/com/android/developers/androidify/customize/CustomizeStateTest.kt b/feature/results/src/test/kotlin/com/android/developers/androidify/customize/CustomizeStateTest.kt index 6ba29632..4029b4b3 100644 --- a/feature/results/src/test/kotlin/com/android/developers/androidify/customize/CustomizeStateTest.kt +++ b/feature/results/src/test/kotlin/com/android/developers/androidify/customize/CustomizeStateTest.kt @@ -1,3 +1,18 @@ +/* + * Copyright 2025 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package com.android.developers.androidify.customize import androidx.compose.ui.geometry.Offset @@ -7,7 +22,6 @@ import org.junit.Assert import org.junit.Test import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner -import org.robolectric.annotation.Config @RunWith(RobolectricTestRunner::class) class CustomizeStateTest { @@ -40,7 +54,7 @@ class CustomizeStateTest { SizeOption.Banner, SizeOption.SocialHeader, ), - state.options + state.options, ) } @@ -55,7 +69,7 @@ class CustomizeStateTest { BackgroundOption.Lightspeed, BackgroundOption.IO, ), - state.options + state.options, ) } @@ -80,7 +94,7 @@ class CustomizeStateTest { val initialCanvas = ExportImageCanvas() val updatedCanvas = initialCanvas.updateAspectRatioAndBackground( backgroundOption = BackgroundOption.None, - sizeOption = SizeOption.Square + sizeOption = SizeOption.Square, ) Assert.assertEquals(SizeOption.Square, updatedCanvas.aspectRatioOption) @@ -99,7 +113,7 @@ class CustomizeStateTest { val initialCanvas = ExportImageCanvas() val updatedCanvas = initialCanvas.updateAspectRatioAndBackground( backgroundOption = BackgroundOption.IO, - sizeOption = SizeOption.Square + sizeOption = SizeOption.Square, ) val newCanvasSize = SizeOption.Square.dimensions @@ -108,16 +122,16 @@ class CustomizeStateTest { Assert.assertEquals(newCanvasSize, updatedCanvas.canvasSize) Assert.assertEquals( R.drawable.background_square_blocks, - updatedCanvas.selectedBackgroundDrawable + updatedCanvas.selectedBackgroundDrawable, ) Assert.assertEquals(0f, updatedCanvas.imageRotation) Assert.assertEquals( Size(newCanvasSize.width * 0.6f, newCanvasSize.width * 0.6f), - updatedCanvas.imageSize + updatedCanvas.imageSize, ) Assert.assertEquals( Offset(newCanvasSize.width * 0.2f, newCanvasSize.height * 0.16f), - updatedCanvas.imageOffset + updatedCanvas.imageOffset, ) } @@ -126,7 +140,7 @@ class CustomizeStateTest { val initialCanvas = ExportImageCanvas() val updatedCanvas = initialCanvas.updateAspectRatioAndBackground( backgroundOption = BackgroundOption.Lightspeed, - sizeOption = SizeOption.Banner + sizeOption = SizeOption.Banner, ) val newCanvasSize = SizeOption.Banner.dimensions @@ -135,16 +149,16 @@ class CustomizeStateTest { Assert.assertEquals(newCanvasSize, updatedCanvas.canvasSize) Assert.assertEquals( R.drawable.background_banner_lightspeed, - updatedCanvas.selectedBackgroundDrawable + updatedCanvas.selectedBackgroundDrawable, ) Assert.assertEquals(-11f, updatedCanvas.imageRotation) Assert.assertEquals( Size(newCanvasSize.width * 0.26f, newCanvasSize.width * 0.26f), - updatedCanvas.imageSize + updatedCanvas.imageSize, ) Assert.assertEquals( Offset(newCanvasSize.width * 0.51f, newCanvasSize.height * -0.03f), - updatedCanvas.imageOffset + updatedCanvas.imageOffset, ) } @@ -153,7 +167,7 @@ class CustomizeStateTest { val initialCanvas = ExportImageCanvas() val updatedCanvas = initialCanvas.updateAspectRatioAndBackground( backgroundOption = BackgroundOption.Plain, - sizeOption = SizeOption.SocialHeader + sizeOption = SizeOption.SocialHeader, ) val newCanvasSize = SizeOption.SocialHeader.dimensions @@ -162,16 +176,16 @@ class CustomizeStateTest { Assert.assertEquals(newCanvasSize, updatedCanvas.canvasSize) Assert.assertEquals( R.drawable.background_social_header_plain, - updatedCanvas.selectedBackgroundDrawable + updatedCanvas.selectedBackgroundDrawable, ) Assert.assertEquals(-9f, updatedCanvas.imageRotation) Assert.assertEquals( Size(newCanvasSize.width * 0.26f, newCanvasSize.width * 0.3f), - updatedCanvas.imageSize + updatedCanvas.imageSize, ) Assert.assertEquals( Offset(newCanvasSize.width * 0.49f, newCanvasSize.height * 0.01f), - updatedCanvas.imageOffset + updatedCanvas.imageOffset, ) } @@ -180,7 +194,7 @@ class CustomizeStateTest { val initialCanvas = ExportImageCanvas() val updatedCanvas = initialCanvas.updateAspectRatioAndBackground( backgroundOption = BackgroundOption.IO, - sizeOption = SizeOption.Wallpaper + sizeOption = SizeOption.Wallpaper, ) val newCanvasSize = SizeOption.Wallpaper.dimensions @@ -189,16 +203,16 @@ class CustomizeStateTest { Assert.assertEquals(newCanvasSize, updatedCanvas.canvasSize) Assert.assertEquals( R.drawable.background_wallpaper_shapes, - updatedCanvas.selectedBackgroundDrawable + updatedCanvas.selectedBackgroundDrawable, ) Assert.assertEquals(-9f, updatedCanvas.imageRotation) Assert.assertEquals( Size(newCanvasSize.width * 1.1f, newCanvasSize.width * 1.3f), - updatedCanvas.imageSize + updatedCanvas.imageSize, ) Assert.assertEquals( Offset(newCanvasSize.width * -0.02f, newCanvasSize.height * 0.1f), - updatedCanvas.imageOffset + updatedCanvas.imageOffset, ) } @@ -207,7 +221,7 @@ class CustomizeStateTest { val initialCanvas = ExportImageCanvas() val updatedCanvas = initialCanvas.updateAspectRatioAndBackground( backgroundOption = BackgroundOption.None, - sizeOption = SizeOption.WallpaperTablet + sizeOption = SizeOption.WallpaperTablet, ) val newCanvasSize = SizeOption.WallpaperTablet.dimensions @@ -219,4 +233,4 @@ class CustomizeStateTest { Assert.assertEquals(newCanvasSize, updatedCanvas.imageSize) Assert.assertEquals(Offset.Companion.Zero, updatedCanvas.imageOffset) } -} \ No newline at end of file +} From 0c67e2dec57b1e733dfaf4884a6baa9a20fe656e Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Thu, 17 Jul 2025 14:10:58 +0100 Subject: [PATCH 34/38] Fixed up ratio change animations. --- .../androidify/theme/SharedElementsConfig.kt | 5 + .../customize/CustomizeExportScreen.kt | 148 ++++++----- .../customize/CustomizeExportViewModel.kt | 1 + .../androidify/customize/ImageRenderer.kt | 249 ++++++++++-------- 4 files changed, 215 insertions(+), 188 deletions(-) diff --git a/core/theme/src/main/java/com/android/developers/androidify/theme/SharedElementsConfig.kt b/core/theme/src/main/java/com/android/developers/androidify/theme/SharedElementsConfig.kt index 5d249476..a053eeb0 100644 --- a/core/theme/src/main/java/com/android/developers/androidify/theme/SharedElementsConfig.kt +++ b/core/theme/src/main/java/com/android/developers/androidify/theme/SharedElementsConfig.kt @@ -54,6 +54,7 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Matrix import androidx.compose.ui.graphics.Path import androidx.compose.ui.graphics.Shape +import androidx.compose.ui.layout.LookaheadScope import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Density import androidx.compose.ui.unit.LayoutDirection @@ -77,6 +78,10 @@ val LocalSharedTransitionScope = compositionLocalOf { throw IllegalStateException("No SharedTransitionScope provided") } +val LocalAnimateBoundsScope = compositionLocalOf { + null +} + @OptIn( ExperimentalMaterial3ExpressiveApi::class, ExperimentalSharedTransitionApi::class, diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt index 334f09a1..f5435fa6 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt @@ -59,11 +59,14 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.dropShadow +import androidx.compose.ui.geometry.Rect import androidx.compose.ui.graphics.ImageBitmap import androidx.compose.ui.graphics.asAndroidBitmap import androidx.compose.ui.graphics.shadow.Shadow import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.layout.LookaheadScope import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.imageResource import androidx.compose.ui.res.stringResource @@ -77,11 +80,11 @@ import com.android.developers.androidify.results.PermissionRationaleDialog import com.android.developers.androidify.results.R import com.android.developers.androidify.results.shareImage import com.android.developers.androidify.theme.AndroidifyTheme +import com.android.developers.androidify.theme.LocalAnimateBoundsScope import com.android.developers.androidify.theme.LocalSharedTransitionScope import com.android.developers.androidify.theme.components.AndroidifyTopAppBar import com.android.developers.androidify.theme.components.PrimaryButton import com.android.developers.androidify.theme.components.SecondaryOutlinedButton -import com.android.developers.androidify.theme.sharedElementTransitionBounds import com.android.developers.androidify.util.LargeScreensPreview import com.android.developers.androidify.util.PhonePreview import com.android.developers.androidify.util.allowsFullContent @@ -162,24 +165,22 @@ private fun CustomizeExportContents( }, containerColor = MaterialTheme.colorScheme.surface, ) { paddingValues -> - val animateBoundsModifier = Modifier.animateBounds( - lookaheadScope = LocalSharedTransitionScope.current, - boundsTransform = MaterialTheme.motionScheme.sharedElementTransitionBounds, - ) val imageResult = remember { movableContentWithReceiverOf { ImageResult( this, modifier = Modifier .padding(16.dp), - uiDisplayModifier = animateBoundsModifier.dropShadow( - RoundedCornerShape(6), - shadow = Shadow( - radius = 26.dp, - spread = 10.dp, - color = MaterialTheme.colorScheme.inverseSurface.copy(alpha = 0.2f), - ), - ), + outerChromeModifier = Modifier + .dropShadow( + RoundedCornerShape(6), + shadow = Shadow( + radius = 26.dp, + spread = 10.dp, + color = MaterialTheme.colorScheme.inverseSurface.copy(alpha = 0.2f), + ), + ) + .clip(RoundedCornerShape(6)), ) } } @@ -215,74 +216,79 @@ private fun CustomizeExportContents( modifier = modifier, ) } - if (isMediumWindowSize) { - Row( - Modifier - .fillMaxSize() - .padding(paddingValues), - verticalAlignment = Alignment.CenterVertically, - horizontalArrangement = Arrangement.SpaceBetween, - ) { - imageResult( - state.exportImageCanvas, - ) - Column( - Modifier - .weight(1f) - .fillMaxHeight(), - horizontalAlignment = Alignment.CenterHorizontally, - verticalArrangement = Arrangement.SpaceBetween, - ) { + LookaheadScope { + CompositionLocalProvider(LocalAnimateBoundsScope provides this) { + if (isMediumWindowSize) { Row( Modifier - .weight(1f) - .fillMaxSize(), - horizontalArrangement = Arrangement.SpaceAround, + .fillMaxSize() + .padding(paddingValues), verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.SpaceBetween, + ) { + imageResult( + state.exportImageCanvas, + ) + Column( + Modifier + .weight(1f) + .fillMaxHeight(), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.SpaceBetween, + ) { + Row( + Modifier + .weight(1f) + .fillMaxSize(), + horizontalArrangement = Arrangement.SpaceAround, + verticalAlignment = Alignment.CenterVertically, + ) { + Box(modifier = Modifier.weight(1f)) { + toolDetail(Modifier.align(Alignment.CenterEnd), false) + } + Spacer(modifier = Modifier.size(16.dp)) + toolSelector(Modifier.requiredSizeIn(minWidth = 56.dp), false) + Spacer(modifier = Modifier.size(16.dp)) + } + Spacer(modifier = Modifier.size(16.dp)) + actionButtons( + Modifier + .align(Alignment.End) + .padding(end = 16.dp), + ) + Spacer(modifier = Modifier.size(24.dp)) + } + } + } else { + Column( + modifier = Modifier + .fillMaxSize() + .padding(paddingValues), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.SpaceBetween, ) { - Box(modifier = Modifier.weight(1f)) { - toolDetail(Modifier.align(Alignment.CenterEnd), false) + Box( + modifier = Modifier + .weight(1f, fill = true), + contentAlignment = Alignment.Center, + ) { + imageResult( + state.exportImageCanvas, + ) } - Spacer(modifier = Modifier.size(16.dp)) - toolSelector(Modifier.requiredSizeIn(minWidth = 56.dp), false) - Spacer(modifier = Modifier.size(16.dp)) + Spacer(modifier = Modifier.height(16.dp)) + toolSelector(Modifier, true) + Spacer(modifier = Modifier.height(16.dp)) + toolDetail(Modifier, true) + Spacer(modifier = Modifier.height(16.dp)) + actionButtons(Modifier) + Spacer(modifier = Modifier.height(24.dp)) } - Spacer(modifier = Modifier.size(16.dp)) - actionButtons( - Modifier - .align(Alignment.End) - .padding(end = 16.dp), - ) - Spacer(modifier = Modifier.size(24.dp)) } } - } else { - Column( - modifier = Modifier - .fillMaxSize() - .padding(paddingValues), - horizontalAlignment = Alignment.CenterHorizontally, - verticalArrangement = Arrangement.SpaceBetween, - ) { - Box( - modifier = Modifier - .weight(1f, fill = true), - contentAlignment = Alignment.Center, - ) { - imageResult( - state.exportImageCanvas, - ) - } - Spacer(modifier = Modifier.height(16.dp)) - toolSelector(Modifier, true) - Spacer(modifier = Modifier.height(16.dp)) - toolDetail(Modifier, true) - Spacer(modifier = Modifier.height(16.dp)) - actionButtons(Modifier) - Spacer(modifier = Modifier.height(24.dp)) - } } + } } diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt index 1907e18e..dfa7bd5b 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt @@ -24,6 +24,7 @@ import androidx.compose.ui.Modifier import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.viewModelScope import com.android.developers.androidify.data.ImageGenerationRepository +import com.android.developers.androidify.theme.AndroidifyTheme import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt index 9f6b3b38..a649e599 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt @@ -13,19 +13,24 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +@file:OptIn(ExperimentalMaterial3ExpressiveApi::class, ExperimentalSharedTransitionApi::class) + package com.android.developers.androidify.customize import androidx.compose.animation.ExperimentalSharedTransitionApi +import androidx.compose.animation.animateBounds import androidx.compose.animation.core.animateFloatAsState import androidx.compose.animation.core.animateOffsetAsState import androidx.compose.animation.core.animateSizeAsState import androidx.compose.foundation.Image import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.BoxScope import androidx.compose.foundation.layout.aspectRatio import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi +import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment @@ -33,6 +38,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.clipToBounds import androidx.compose.ui.draw.rotate +import androidx.compose.ui.geometry.Rect import androidx.compose.ui.geometry.Size import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.ImageBitmap @@ -42,15 +48,16 @@ import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.layout.layout import androidx.compose.ui.res.imageResource import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.util.fastRoundToInt import com.android.developers.androidify.results.R - +import com.android.developers.androidify.theme.AndroidifyTheme +import com.android.developers.androidify.theme.LocalAnimateBoundsScope @OptIn(ExperimentalMaterial3ExpressiveApi::class, ExperimentalSharedTransitionApi::class) @Composable fun ImageResult( exportImageCanvas: ExportImageCanvas, modifier: Modifier = Modifier, - // Modifier only for display not end render - uiDisplayModifier: Modifier = Modifier, + outerChromeModifier: Modifier = Modifier ) { Box( modifier = modifier, @@ -62,8 +69,8 @@ fun ImageResult( exportImageCanvas.aspectRatioOption.aspectRatio, matchHeightConstraintsFirst = true, ) - .then(uiDisplayModifier) - .background(Color.White) + .then(Modifier.safeAnimateBounds()) + .then(outerChromeModifier) .clipToBounds(), ) { BackgroundLayout( @@ -90,7 +97,8 @@ fun BackgroundLayout( modifier: Modifier = Modifier, content: @Composable () -> Unit, ) { - Box(modifier = modifier.fillMaxSize()) { + Box(modifier = modifier.fillMaxSize() + .background(Color.White)) { if (exportImageCanvas.selectedBackgroundDrawable != null) { Image( bitmap = ImageBitmap.imageResource(id = exportImageCanvas.selectedBackgroundDrawable), @@ -100,32 +108,19 @@ fun BackgroundLayout( ) } - val offset by animateOffsetAsState( - targetValue = exportImageCanvas.imageOffset, - label = "offset", - ) - val animatedImageSize by animateSizeAsState( - targetValue = exportImageCanvas.imageSize, - label = "imageSize", - ) val rotationAnimation by animateFloatAsState( targetValue = exportImageCanvas.imageRotation, label = "rotation", + animationSpec = MaterialTheme.motionScheme.slowEffectsSpec() ) - val exportCanvasSizeAnimation by animateSizeAsState( - targetValue = exportImageCanvas.canvasSize, - label = "canvas size", - ) - + val safeAnimateBounds = Modifier.safeAnimateBounds() Box( modifier = Modifier .fillMaxSize() .layout { measurable, constraints -> - val offsetValue = if (isLookingAhead) exportImageCanvas.imageOffset else offset - val imageSizeValue = - if (isLookingAhead) exportImageCanvas.imageSize else animatedImageSize - val exportCanvasSizeAnimation = - if (isLookingAhead) exportImageCanvas.canvasSize else exportCanvasSizeAnimation + val offsetValue = exportImageCanvas.imageOffset + val imageSizeValue =exportImageCanvas.imageSize + val exportCanvasSizeAnimation = exportImageCanvas.canvasSize val actualWidth = constraints.maxWidth val actualHeight = constraints.maxHeight @@ -143,16 +138,17 @@ fun BackgroundLayout( val placeable = measurable.measure( constraints.copy( - minWidth = scaledImageWidth.toInt(), - maxWidth = scaledImageWidth.toInt(), - minHeight = scaledImageHeight.toInt(), - maxHeight = scaledImageHeight.toInt(), + minWidth = scaledImageWidth.fastRoundToInt(), + maxWidth = scaledImageWidth.fastRoundToInt(), + minHeight = scaledImageHeight.fastRoundToInt(), + maxHeight = scaledImageHeight.fastRoundToInt(), ), ) layout(actualWidth, actualHeight) { - placeable.placeRelative(scaledOffsetX.toInt(), scaledOffsetY.toInt()) + placeable.placeRelative(scaledOffsetX.fastRoundToInt(), scaledOffsetY.fastRoundToInt()) } } + .then(safeAnimateBounds) .rotate(rotationAnimation), ) { val clip = if (exportImageCanvas.selectedBackgroundOption == BackgroundOption.None) { @@ -172,129 +168,148 @@ fun BackgroundLayout( } } +@Composable +private fun Modifier.safeAnimateBounds(): Modifier { + val spec = MaterialTheme.motionScheme.slowEffectsSpec() + return if (LocalAnimateBoundsScope.current != null) + this.animateBounds( + LocalAnimateBoundsScope.current!!, + boundsTransform = { _, _ -> + spec + }, + ) else this +} + @Preview @Composable private fun ImageRendererPreviewSquare() { val bitmap = ImageBitmap.imageResource(R.drawable.placeholderbot) - ImageResult( - ExportImageCanvas( - imageBitmap = bitmap.asAndroidBitmap(), - canvasSize = Size(1000f, 1000f), - aspectRatioOption = SizeOption.Square, - selectedBackgroundOption = BackgroundOption.IO, + AndroidifyTheme { + ImageResult( + ExportImageCanvas( + imageBitmap = bitmap.asAndroidBitmap(), + canvasSize = Size(1000f, 1000f), + aspectRatioOption = SizeOption.Square, + selectedBackgroundOption = BackgroundOption.IO, + ) + .updateAspectRatioAndBackground( + backgroundOption = BackgroundOption.IO, + sizeOption = SizeOption.Square, + ), + modifier = Modifier + .fillMaxSize(), ) - .updateAspectRatioAndBackground( - backgroundOption = BackgroundOption.IO, - sizeOption = SizeOption.Square, - ), - modifier = Modifier - .fillMaxSize(), - ) + } } @Preview @Composable private fun ImageRendererPreviewBanner() { val bitmap = ImageBitmap.imageResource(R.drawable.placeholderbot) - - ImageResult( - ExportImageCanvas( - imageBitmap = bitmap.asAndroidBitmap(), - canvasSize = Size(1000f, 1000f), - aspectRatioOption = SizeOption.Banner, - selectedBackgroundOption = BackgroundOption.Lightspeed, - ).updateAspectRatioAndBackground( - backgroundOption = BackgroundOption.Lightspeed, - sizeOption = SizeOption.Banner, - ), - modifier = Modifier - .fillMaxSize() - .aspectRatio(SizeOption.Banner.aspectRatio), - ) + AndroidifyTheme { + ImageResult( + ExportImageCanvas( + imageBitmap = bitmap.asAndroidBitmap(), + canvasSize = Size(1000f, 1000f), + aspectRatioOption = SizeOption.Banner, + selectedBackgroundOption = BackgroundOption.Lightspeed, + ).updateAspectRatioAndBackground( + backgroundOption = BackgroundOption.Lightspeed, + sizeOption = SizeOption.Banner, + ), + modifier = Modifier + .fillMaxSize() + .aspectRatio(SizeOption.Banner.aspectRatio), + ) + } } @Preview @Composable private fun ImageRendererPreviewWallpaper() { val bitmap = ImageBitmap.imageResource(R.drawable.placeholderbot) - - ImageResult( - ExportImageCanvas( - imageBitmap = bitmap.asAndroidBitmap(), - canvasSize = Size(1000f, 1000f), - aspectRatioOption = SizeOption.Wallpaper, - selectedBackgroundOption = BackgroundOption.Lightspeed, - ).updateAspectRatioAndBackground( - backgroundOption = BackgroundOption.Lightspeed, - sizeOption = SizeOption.Wallpaper, - ), - modifier = Modifier - .fillMaxSize() - .aspectRatio(SizeOption.Wallpaper.aspectRatio), - ) + AndroidifyTheme { + ImageResult( + ExportImageCanvas( + imageBitmap = bitmap.asAndroidBitmap(), + canvasSize = Size(1000f, 1000f), + aspectRatioOption = SizeOption.Wallpaper, + selectedBackgroundOption = BackgroundOption.Lightspeed, + ).updateAspectRatioAndBackground( + backgroundOption = BackgroundOption.Lightspeed, + sizeOption = SizeOption.Wallpaper, + ), + modifier = Modifier + .fillMaxSize() + .aspectRatio(SizeOption.Wallpaper.aspectRatio), + ) + } } @Preview(widthDp = 1280, heightDp = 800) @Composable private fun ImageRendererPreviewWallpaperTablet() { val bitmap = ImageBitmap.imageResource(R.drawable.placeholderbot) - - ImageResult( - ExportImageCanvas( - imageBitmap = bitmap.asAndroidBitmap(), - canvasSize = Size(1280f, 800f), - aspectRatioOption = SizeOption.WallpaperTablet, - selectedBackgroundOption = BackgroundOption.Lightspeed, - ).updateAspectRatioAndBackground( - backgroundOption = BackgroundOption.Lightspeed, - sizeOption = SizeOption.WallpaperTablet, - ), - modifier = Modifier - .fillMaxSize() - .aspectRatio(SizeOption.WallpaperTablet.aspectRatio), - ) + AndroidifyTheme { + ImageResult( + ExportImageCanvas( + imageBitmap = bitmap.asAndroidBitmap(), + canvasSize = Size(1280f, 800f), + aspectRatioOption = SizeOption.WallpaperTablet, + selectedBackgroundOption = BackgroundOption.Lightspeed, + ).updateAspectRatioAndBackground( + backgroundOption = BackgroundOption.Lightspeed, + sizeOption = SizeOption.WallpaperTablet, + ), + modifier = Modifier + .fillMaxSize() + .aspectRatio(SizeOption.WallpaperTablet.aspectRatio), + ) + } } @Preview @Composable private fun ImageRendererPreviewWallpaperSocial() { val bitmap = ImageBitmap.imageResource(R.drawable.placeholderbot) - - ImageResult( - ExportImageCanvas( - imageBitmap = bitmap.asAndroidBitmap(), - canvasSize = Size(1600f, 900f), - aspectRatioOption = SizeOption.SocialHeader, - selectedBackgroundOption = BackgroundOption.Lightspeed, - ).updateAspectRatioAndBackground( - backgroundOption = BackgroundOption.Lightspeed, - sizeOption = SizeOption.SocialHeader, - ), - modifier = Modifier - .fillMaxSize() - .aspectRatio(SizeOption.SocialHeader.aspectRatio), - ) + AndroidifyTheme { + ImageResult( + ExportImageCanvas( + imageBitmap = bitmap.asAndroidBitmap(), + canvasSize = Size(1600f, 900f), + aspectRatioOption = SizeOption.SocialHeader, + selectedBackgroundOption = BackgroundOption.Lightspeed, + ).updateAspectRatioAndBackground( + backgroundOption = BackgroundOption.Lightspeed, + sizeOption = SizeOption.SocialHeader, + ), + modifier = Modifier + .fillMaxSize() + .aspectRatio(SizeOption.SocialHeader.aspectRatio), + ) + } } @Preview @Composable fun ImageRendererPreviewWallpaperIO() { val bitmap = ImageBitmap.imageResource(R.drawable.placeholderbot) + AndroidifyTheme { + ImageResult( + ExportImageCanvas( + imageBitmap = bitmap.asAndroidBitmap(), + canvasSize = Size(1600f, 900f), + aspectRatioOption = SizeOption.SocialHeader, + selectedBackgroundOption = BackgroundOption.IO, - ImageResult( - ExportImageCanvas( - imageBitmap = bitmap.asAndroidBitmap(), - canvasSize = Size(1600f, 900f), - aspectRatioOption = SizeOption.SocialHeader, - selectedBackgroundOption = BackgroundOption.IO, - - ).updateAspectRatioAndBackground( - backgroundOption = BackgroundOption.IO, - sizeOption = SizeOption.SocialHeader, - ), - modifier = Modifier - .fillMaxSize() - .aspectRatio(SizeOption.SocialHeader.aspectRatio), - ) + ).updateAspectRatioAndBackground( + backgroundOption = BackgroundOption.IO, + sizeOption = SizeOption.SocialHeader, + ), + modifier = Modifier + .fillMaxSize() + .aspectRatio(SizeOption.SocialHeader.aspectRatio), + ) + } } From f629ffe06faee019d1c49e11fd2c9225d9150941 Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Thu, 17 Jul 2025 14:18:06 +0100 Subject: [PATCH 35/38] Spotless --- .../customize/CustomizeExportScreen.kt | 6 +---- .../customize/CustomizeExportViewModel.kt | 1 - .../androidify/customize/ImageRenderer.kt | 26 ++++++++++--------- 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt index f5435fa6..fc6a7792 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt @@ -23,7 +23,6 @@ import android.net.Uri import android.os.Build import androidx.compose.animation.AnimatedContent import androidx.compose.animation.ExperimentalSharedTransitionApi -import androidx.compose.animation.animateBounds import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box @@ -61,7 +60,6 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.dropShadow -import androidx.compose.ui.geometry.Rect import androidx.compose.ui.graphics.ImageBitmap import androidx.compose.ui.graphics.asAndroidBitmap import androidx.compose.ui.graphics.shadow.Shadow @@ -81,7 +79,6 @@ import com.android.developers.androidify.results.R import com.android.developers.androidify.results.shareImage import com.android.developers.androidify.theme.AndroidifyTheme import com.android.developers.androidify.theme.LocalAnimateBoundsScope -import com.android.developers.androidify.theme.LocalSharedTransitionScope import com.android.developers.androidify.theme.components.AndroidifyTopAppBar import com.android.developers.androidify.theme.components.PrimaryButton import com.android.developers.androidify.theme.components.SecondaryOutlinedButton @@ -243,7 +240,7 @@ private fun CustomizeExportContents( horizontalArrangement = Arrangement.SpaceAround, verticalAlignment = Alignment.CenterVertically, - ) { + ) { Box(modifier = Modifier.weight(1f)) { toolDetail(Modifier.align(Alignment.CenterEnd), false) } @@ -288,7 +285,6 @@ private fun CustomizeExportContents( } } } - } } diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt index dfa7bd5b..1907e18e 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt @@ -24,7 +24,6 @@ import androidx.compose.ui.Modifier import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.viewModelScope import com.android.developers.androidify.data.ImageGenerationRepository -import com.android.developers.androidify.theme.AndroidifyTheme import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt index a649e599..05e7f926 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt @@ -20,12 +20,9 @@ package com.android.developers.androidify.customize import androidx.compose.animation.ExperimentalSharedTransitionApi import androidx.compose.animation.animateBounds import androidx.compose.animation.core.animateFloatAsState -import androidx.compose.animation.core.animateOffsetAsState -import androidx.compose.animation.core.animateSizeAsState import androidx.compose.foundation.Image import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.BoxScope import androidx.compose.foundation.layout.aspectRatio import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.shape.RoundedCornerShape @@ -57,7 +54,7 @@ import com.android.developers.androidify.theme.LocalAnimateBoundsScope fun ImageResult( exportImageCanvas: ExportImageCanvas, modifier: Modifier = Modifier, - outerChromeModifier: Modifier = Modifier + outerChromeModifier: Modifier = Modifier, ) { Box( modifier = modifier, @@ -97,8 +94,10 @@ fun BackgroundLayout( modifier: Modifier = Modifier, content: @Composable () -> Unit, ) { - Box(modifier = modifier.fillMaxSize() - .background(Color.White)) { + Box( + modifier = modifier.fillMaxSize() + .background(Color.White), + ) { if (exportImageCanvas.selectedBackgroundDrawable != null) { Image( bitmap = ImageBitmap.imageResource(id = exportImageCanvas.selectedBackgroundDrawable), @@ -111,15 +110,15 @@ fun BackgroundLayout( val rotationAnimation by animateFloatAsState( targetValue = exportImageCanvas.imageRotation, label = "rotation", - animationSpec = MaterialTheme.motionScheme.slowEffectsSpec() + animationSpec = MaterialTheme.motionScheme.slowEffectsSpec(), ) val safeAnimateBounds = Modifier.safeAnimateBounds() Box( modifier = Modifier .fillMaxSize() .layout { measurable, constraints -> - val offsetValue = exportImageCanvas.imageOffset - val imageSizeValue =exportImageCanvas.imageSize + val offsetValue = exportImageCanvas.imageOffset + val imageSizeValue = exportImageCanvas.imageSize val exportCanvasSizeAnimation = exportImageCanvas.canvasSize val actualWidth = constraints.maxWidth @@ -171,13 +170,16 @@ fun BackgroundLayout( @Composable private fun Modifier.safeAnimateBounds(): Modifier { val spec = MaterialTheme.motionScheme.slowEffectsSpec() - return if (LocalAnimateBoundsScope.current != null) + return if (LocalAnimateBoundsScope.current != null) { this.animateBounds( LocalAnimateBoundsScope.current!!, boundsTransform = { _, _ -> spec }, - ) else this + ) + } else { + this + } } @Preview @@ -303,7 +305,7 @@ fun ImageRendererPreviewWallpaperIO() { aspectRatioOption = SizeOption.SocialHeader, selectedBackgroundOption = BackgroundOption.IO, - ).updateAspectRatioAndBackground( + ).updateAspectRatioAndBackground( backgroundOption = BackgroundOption.IO, sizeOption = SizeOption.SocialHeader, ), From 63e9558982ea441552ea5dae247cf116365d388a Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Thu, 17 Jul 2025 21:15:45 +0100 Subject: [PATCH 36/38] CustomizeExportScreen.kt properly support large screen with weights --- .../androidify/customize/CustomizeExportScreen.kt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt index fc6a7792..339c9ce2 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt @@ -223,9 +223,12 @@ private fun CustomizeExportContents( verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.SpaceBetween, ) { - imageResult( - state.exportImageCanvas, - ) + Box(modifier = Modifier.weight(1f), + contentAlignment = Alignment.Center) { + imageResult( + state.exportImageCanvas, + ) + } Column( Modifier .weight(1f) From ba7612f98bc9cb560f95e9340b5b3f9170feaa4f Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Thu, 17 Jul 2025 21:32:59 +0100 Subject: [PATCH 37/38] CustomizeExportScreen.kt properly support large screen with weights --- .../developers/androidify/customize/CustomizeExportScreen.kt | 4 ++-- .../android/developers/androidify/customize/GenericTool.kt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt index 339c9ce2..5f8483af 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt @@ -223,7 +223,7 @@ private fun CustomizeExportContents( verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.SpaceBetween, ) { - Box(modifier = Modifier.weight(1f), + Box(modifier = Modifier.weight(0.6f), contentAlignment = Alignment.Center) { imageResult( state.exportImageCanvas, @@ -231,7 +231,7 @@ private fun CustomizeExportContents( } Column( Modifier - .weight(1f) + .weight(0.4f) .fillMaxHeight(), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.SpaceBetween, diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/GenericTool.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/GenericTool.kt index 5096b233..9ca91b93 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/GenericTool.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/GenericTool.kt @@ -63,7 +63,7 @@ fun GenericTool( individualToolContent(tool) }, onToolSelected = onToolSelected, - tool = tool, + tool = tool ) } } From 4184076632d0a302314e221b67727b49d677676d Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Thu, 17 Jul 2025 21:32:59 +0100 Subject: [PATCH 38/38] CustomizeExportScreen.kt properly support large screen with weights --- .../developers/androidify/customize/CustomizeExportScreen.kt | 4 ++-- .../android/developers/androidify/customize/GenericTool.kt | 2 +- .../developers/androidify/customize/CustomizeStateTest.kt | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt index 339c9ce2..5f8483af 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt @@ -223,7 +223,7 @@ private fun CustomizeExportContents( verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.SpaceBetween, ) { - Box(modifier = Modifier.weight(1f), + Box(modifier = Modifier.weight(0.6f), contentAlignment = Alignment.Center) { imageResult( state.exportImageCanvas, @@ -231,7 +231,7 @@ private fun CustomizeExportContents( } Column( Modifier - .weight(1f) + .weight(0.4f) .fillMaxHeight(), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.SpaceBetween, diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/GenericTool.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/GenericTool.kt index 5096b233..9ca91b93 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/GenericTool.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/GenericTool.kt @@ -63,7 +63,7 @@ fun GenericTool( individualToolContent(tool) }, onToolSelected = onToolSelected, - tool = tool, + tool = tool ) } } diff --git a/feature/results/src/test/kotlin/com/android/developers/androidify/customize/CustomizeStateTest.kt b/feature/results/src/test/kotlin/com/android/developers/androidify/customize/CustomizeStateTest.kt index 4029b4b3..2f070af8 100644 --- a/feature/results/src/test/kotlin/com/android/developers/androidify/customize/CustomizeStateTest.kt +++ b/feature/results/src/test/kotlin/com/android/developers/androidify/customize/CustomizeStateTest.kt @@ -61,7 +61,7 @@ class CustomizeStateTest { @Test fun backgroundToolState_defaultValues() { val state = BackgroundToolState() - Assert.assertEquals(BackgroundOption.None, state.selectedToolOption) + Assert.assertEquals(BackgroundOption.IO, state.selectedToolOption) Assert.assertEquals( listOf( BackgroundOption.None, @@ -80,7 +80,7 @@ class CustomizeStateTest { Assert.assertEquals(SizeOption.Square, canvas.aspectRatioOption) Assert.assertEquals(Size(1000f, 1000f), canvas.canvasSize) Assert.assertNull(canvas.mainImageUri) - Assert.assertEquals(Size(1000f, 1000f), canvas.imageSize) + Assert.assertEquals(Size(600f, 600f), canvas.imageSize) Assert.assertEquals(Offset.Companion.Zero, canvas.imageOffset) Assert.assertEquals(0f, canvas.imageRotation) Assert.assertEquals(Size(1024f, 1024f), canvas.imageOriginalBitmapSize)

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 J_BE5B{{v%nQZE1i literal 0 HcmV?d00001 diff --git a/feature/results/src/main/res/drawable-nodpi/background_square_shape.png b/feature/results/src/main/res/drawable-nodpi/background_square_shape.png new file mode 100644 index 0000000000000000000000000000000000000000..1bcd900b65641178ad05dc7a109a8169f811449f GIT binary patch literal 141126 zcma&O1yq#V_dg8dAVb3df^?^JO2g0%Qqm0~-61h_my{qKqO^1mN{J{T-3?MoH~h!@ zz4yxf$-CAIYu223<~;kHv(Jvt*?T_|p{gu{fl7pmfPjD@Co8FrfB@wE^#a|8U+MiO ztO$PtT8S%(BOp}8pAe_T51#BQ7xUnN3Y#JjV2&5q( z5IDYWQWJuI5p1C&XQ`xwzyxoD5ReeT2>0MEMEE}fA`!wbYVa0%7s|OdWgR>PI$K%J3+1NSRI5}D1Jy=}4>|ISfS?pb?|3~B>I+7MH zX3ozXU7tDFQ~aW9V(Q@LDojQ7YoLGs{x?t8XO_Q5vUmA=S?~q2{rZNDgO#1_U)u0n zg??QXP;q`{0U!AneGv|!zk2@X+TY^{vHcqS)@1&-(!Z|4mnwoP#P%=SL{J|ZE+Qi! zh#|;HifecxZnr8`>i4*S2z>s;(|YbUV98 zD&bKn1eRf~oO%ihtu-5k>AFu%ys6oGLC=t)V$+avPzHigYPoUpP8S~z0?ZL>P~>wI zdlAebfVInkPcQjO425&%d^C^jHLt*>ef=-#Ro1R%^ExkNEazh4T7T;CT_585kIcFp z?#2QUL1G91>;MEH1;W406ew&`VZG_i&E_lnCoiwA3lBcCTdjfq{r*LWAp1hc-ByvkX-mm7&qiUBmLFOxD2JmcQwzb9gWz*D5g&rcX5gG z_hkMdq(cOFYtc~Yv}W*iLML6YNAiw78?5?XJ&cv6LFD&tujg+P3Nm62Qfkg7kPtKr zhsZvfJ62A?t^r`QvG&uPSV*pbv>NoI{a@ZtAV5>Z>>&wdsKf;PVl@_$5AWy!1*bKb zE^jwi@mb`!SnB>C_Wm^;7|QF`k#=BV`Gn`{67d4`PqrWcg6P?um?P(Iyw9eRJ5;hz zB>vbbipn`4oxKzeID+{9YdK}bxsS)n7~Z}1s-Mr#6F~WMx`-h32v~zV2bFD2m;?H= z;eMpM`h@?lOG_VO-lhCMn{rET2-%?-aGsQ3Tf?4M+1#<@Qb8!!mlDG+Q}eFw)#uuF zay^Z1R-H$XKNrO=1{i+SJ-;D9Wo!L)Im{9Lr$8F`jtzY-Yn*6VB{kuBwDg@v@+0kC zq+9_NZ3o>cjP^LZUk$xoqHyouwe6Mjz#`o$C(93h$yZtY%XbihGrCTY!1Z$^h6$0V ziEHbS)6pGk+~z}M=}b$aLnW>-oN2PMP`9$ZqnDU54xAXSE3rw?JxKzmCxrL@WH|IY z$hID2mRDIdyC3^K^ury3hzROWfw}isD&q0FQuHvl9J|$d1X$lO-gaaFcjV{sa>Z>y zwTbw3xNg(C!|qh)2XYIRL|t_sy7}h4y%Jo^AKk?)_5|1$?nt{3jLhn)SPG+9~G#)3m|WR~S6V@o<>VKEx2C6kW57d zv1!!;am9?H2fTRkI}G1UyRh!ig<0&0PrP_t^9hw5?n$#V;PX2+mYoHfX$w*7Cq*H) zm3ei{yMX-Xq+rS@+pffsOFv{MRFUiQ!vS|#L+Df7iSN94G3{n1K|2i9ZFZeOe=Wt<_51{WxB&|BRIKybaH9c+Ed5 z3HhIQ85})%V}M57GmtfLl;e7*3d=2wl4pKhiamh$ORX^2si6(I6EL_dh)sP!nvQ%w zUGv-oa<8p2tdOcXll|%rnbjc$&<|u!ee2qmn;1mQgHxUS2HZfuW3RlygSol%Ut4S5 zM9sgf%-vyV_9gwCWvOI!$Kq46V9Y-Jdem%wDjz}vUmTRBay@u_hsVH9ONTv*ZJ4P3 zMUR9^;7Ir*&Y$vzNL@J&f#5D>g!FqP>H=Y(JK6uYVMj~4e+a>0H4dOanXlRx{D9r38o)E3H?(s5CF=?WNc)w8Y^@0 ziCfN-jUL^x3oOv5ZA-N=f-WYIj`dtv&C8;@_TL%D(@$AYXpP49wee`T^Hp0K%OA9i z?SVDA%OiSh1GLxr!5FRQ$(qD2jYhyfQRX93#MUJ@!yc`EsR``GWvi#PRj%#abbk(< zb`Sb;UHJ>8P4MfC%8qw2jk8>UKX)}HG(hXQeq|ZMfxHVYFSm)7UH?`c4#6L?R7nCf zO#7Cb>viOU&#P0LkoM_Mjogwko-5&zbS?i7dVf&rE<>*)3OFzLj=7bn7^}f2?`-nnzJu)3D{@xtKY@kLiVen)VOnKw zhfXae>Yp=$*?NZs7Y7!5$@1;hyDRc1)kpdhgE>6|uQyoJ5+QfF#xoS_+R(b( zZJ8+o69~b1;g1&`!4F%YgZ{%(=Zjh4)PF zKX}tVXVB(u@xpNAj!6=-Ba#xHe-MH9C;8NdM%;4kcA293ClW!=4!}ew{Xnd8VlXjS zHoRr@Sl0DaRM+y)-NlApy=dJ!B_#~5%$371IqTym+5Eq<2|v!+(*8Vazh2T>7I}J~ z+Sa=3K61qFw~7FhKj-)aO!xtsyQ6^&@1{;dGc`xl_Xj>2qDllIJhnsorRQSDwsRls{J5&chcxe-=iltAM%>aURWRm>nL)Pb`H7m|%#_TjIzM9<$Eejc*TUexOSZ+i| z#eBn@+;)Q{phw03dSJHw@^VU2G#Wbq_7$|D*pGHxD$>aNrlB8a7r#Je7w?5NLFlZ1D?5w{caW*{Bl6*6b7okaD_G!qb)C{#|7uc2 z`)s(87t|jU@PK^7HYT@7{HAs>)sSqBGc|WkaSaI(CqB)or-OQSw!Xch`D6pR`DETb z^(I>&?|wVhKW=<1As{$*8jEaq&SN@rHZ0Z;=A!kwe3=dUd=3pdaC1a(GVHtSi_BvC z+Uw*pM>Dr^p7cH(PlIF|8n%A=G+~jRiFu6M{n%?SoDlcW|5uz~eYo*CPAdyLAQEQ( zH;u5TV8Z*+$m$weRfRT=P>DlV)6vH9)4 zhG~JqVT1KKD+aoe^b~akD?3zSVk%<(%Q>{kU>+L#-;9ETUS%;r*mdB>SBS@U3zslO zgm!szw6cl=erb(|J6w`=HqJ>{{pR9Njl_JAD=aPGiTHpg${ zAK|(zUHq``N=471Pb3acM80jvE?T+bG>+)4xN!q8#R5$ptWRVD!S!3yGumY}YEE>a z4}3O+5F{@V3VsG-srpxe4{V00KfOaR+Z6x82k=U)s?_vgloYoBI;kg}QrT%~&(nbGxu2 zVP2kTIrV6E+I&NIe5M-1{5_?xu_9-DiGIqh#$ia~o9LH;GWV&&V6Q>1`A^h6F1J5D zmdZAoD8%IrUV7zl^J$n-_MkaL(ohp{E-IM$#_6JCTI&eh$oh{cQ?Ppi!g#UH8;LW( zeBJ7(V9xbMqBfh4n~dfK1|rWsJ5RT>jJx9}6=YM`^P{${$%qNk7*>uFeNL;po^Awc zJDp99?kdcm^@0177$uB7fa)WIHwlTiFxzoz04Dxbz*We%23bmurEa$;B$wHV>r7}F z@9Q1%Wuwt3nk3HR-q>srghe;2hQSm;LeB>#KGz}9vb|so!B8@sR!eb;Pz;1`_ZN_L z;r+bsFQB3O|BB%Q1+g2uA}+op8eR>P55ZA05=+d?bV>@|U1^qTNKqXA5%doQGgdOP zYZxmyx=rgvk|^0R5L-iBU&X!9(KUhatv8OhHI4jya|T_k_5-@AGURoi&w7*-{_V`6 zi@1Z+-(7Q>6D33B0Kvd$CjKM^rePU2`)D-M7w=_&P5sZ_hG0O)ogW$^HusB)ug!rQ4hBg{@TLH{zcJi>=>_4iSa%sL(!Hl=yh(d! z_z9FRYf#VM~x6a4lbur?gein1yG%Bt^rs@xHH57mvWx29`9 z(`%a)_-|!UNlh2I7jD0Co{lZ0q$EAU4M^$u|y7du#pIU+E*@Pb1|U}#+VJT5ZyL^-*t?^xOP)|YOm?(%;AvhhKN zSoFdoYpFYYAdNk-ZDmWrc=Q2sX>?_7_6pbh^~+=(>FTx{@3Qq|^2eS&Z?JBeQsYL@ zjN3FREB9$>)X$vvU*~?R;LyI~S7RM0L_OoPvP&vTC`F}+eER@bwjA!m4BGu#38iOR zIfrG;bl!akA3xRg00?|tRB+c?WhzVt^TKV`)KygkF$rChyy(zqdy3!=0@JM+A#5LK zFeORQZZtFsW$M0Zs;X49GlexXw{@2k1D;da?(;f*3nyj(b=5v>Xppt#`E>cd?96+c z6)m&DwsWA!&A5?%BN8Grt?dTA=bC|!<`-iB#`AXRaz|Rw1`C6&_|pizPg4IxAu5Z2 zb1u_EyE&PuT2diY+@8YPiaO;@Xyj$@DJ_Quh}uh=+qY@wXjz>1{XiVzVC)k&61LOM!v+6~vH3$*TBrZ~K>&)Br8JmY%u- z4N3_K2o6o8Vb#%6X-5~*ILmty)b552ipMm*dI{85N$XZyVwCACeK9!g86disOU8PB z0D)9z&Fq)j>Jx)1%JNB=l9b}c#lYC9MxxR&!p&I|!+&9xu{XejL}XZQLDhLr%eNh#9qCKrMZ&Obfvu;*|@WeEsj2EgY z_{jCrzO1w|7j2b&Xm47{R~D#K#!=ARq5rS^!FEw(M+U|7%5oN#pq*$&b!u9gc*vyJ zjB1ci(>=kUBTXM>+2U=E3=z9#i!LEtEmU=Wt{fJ9Hig+dn4u>SR?>~=3+BajyZRug#^YLc+()Q{Be^?+0zh1Dz#VT80yY7$bgp>xMT|@8%WC z9ppe8gM%NDF%*we zm(Aw8%n}R7_rkPSBMw&9K6TXMq>2V-GA&x9O z)pU|r3NpnLr@rvYHr3YqK~Bb~M}!Qcg2)H#!KcRVJ|=f5R>?b z#H*Ci)#N-05N?dM+U0D|axr8~et`oAV&zrCX!ZuiF<0cx?0w2pqnwl)_{)2Z?-PdB z;__Z9F|zqOv0$n`jr2blvrP;qdhY(QQU4##j>W?4>UMMz1I@$IXRzH;scGbs;$BDt zLx$y;Mesgc;VDT-1v8M<(dADFS#~q}u5dHjPYIWw>)B}AH&8~`%9=a|ZFD{Kzbq4d z`nf)^JQL1a^S1l$q{?9ivHnQoRw-e8kGWlacX_o@|91B<0q|gk8V%8k7ItR#qCXA) z=~JR%dVOC<(RzGUM#BP%MZYm#bu1RD^LJm&q!2{)HIDX1(l}Et9+*Jt@c2e}e7irY zlCvU45N-X`9pBl7>7o(`Ch!^lIHDCdRs&*E+CD<%S^mdJB0zm99e=_)l&$Ra*#big z!emn}sL(#o(mWI24+{ng#(lgrK(Ff7(usFmG~8S^$QK4;U}-E{w)a!l3AN_G^L?MQ zQ*&zY%Lgh83v19WtiJGntr-FU zjn=WZGX{^WhCu=VU2pV;l&w0dIaE)6nzump9TnL}YmP#vllI(=ZK6pPnt4DaXBX~A z#Qjn~qp9bMx06Dyl);PF+ta~vxM%F3hT;x2v@I6fjW?cavj?-)Z2lI6?edmY!$4QZ z;t`+QPRItAU-gFbGbX}lHXio=dnE?PGT4E-8r@?4srRn3lzDvdQ0e9blOH!g_ItgB zPsG)UH8J0tCxFTNq1{E zjy28E`K$}2n00ELOmjm$2xF#aa!D#Uyg2IL*^Z0ss`yp`4+#$8XyU6WGUmaSJGZYQ3Y{Oty&2TCDud<(>)TOWuZz9)r)vAndK$9;M0x*k5F%A zW|_!|Bbel$(UOR|w|cSAjuH0ysr3T?wayJ zhCnIOe%~F1yr9%&MT{=h(fqY{SdDT4s!>Fm?}9=;4P1v8T{j;eV3IwFVU5-C?>gjX zwLhF?V2MQ-cspIqded$9qq3ake278VYdgYC3g-6DG4g+z_ht$TVR5PeH1u)~Zi&#T zeoId17ACQ?eJ7w^SGWn^Lc%3p+(D{p#tn59jt7hy+Aou6oO{)Fcqh6oBf)b5`^g7~ zPM;kqqoW%}x8!byv}_LO0*aknK9o*0ppg3s@j)T~U8>^~02tAfC$tkJhrAlsr%u0= z?c5FjghsDd$J}&*cT=n-%9G);x2KynW4H+xTQOri*mLGS_rS~8b5W3=7a)35`y>ks zF-yVW3%<$ngXmM7SpfEzf3)H+D+D8i;!#QTI3BPW3Y)?OndCf50I5@=ZoKiwIj~SKfvJ1jV zEf1Y-&E?K=`-sV8Sof=Uy)kUNj~s{0Ah^uaPxKdh#n$qZ4#Lxma$$Nqlgc9GfN-L3 zE*4$gNu{T1N+_s&w?(p47!d_=FJhFC4x^zjS05m5#~LX0mcV{jFEg@AO+erJ=drW9 zbQ6QNt#6korF!qmRjX=OEcbd}Y?|3=@ywVDeoy#p4->~HOZkBHfy_mCjvmwVdym_h zm3H$Rk;}KFhad3&6Oh%R2kfAR0dAl0v<<+5_9-xB_Hj(W}NYPh0vpy`5ucyb#g zbg{49gu8B-ZUEy6?~IHgom*M9Qg%JhP52i!{x9udDgd}`@Ms59?bx%J zLVjomqec)7mEmb5yrvZYh^Cg39R=oOdg^~+^#c9qQ(W`g^2QV)`pl(}i&L>-aS6gb zr{Q_h({y}9$(Y#$$%zRhzPDC4XE)~(9`LFQgTo@U|7c|8Ik4{?+IKW{j7K58IqDq6 z8c~fOAUli1V96h4$q%npaO5R&Wrrloj%6ymHCYq#L8N7}IPT z;Zic2kiJ*uE{pkuFS5q0^wHH^rcdrz&yW#DORL=r8$SCku)vdm z@S$7s(Kq6Qu-?9y@2?h7{*6k&llIAU3ng^hPVG2EuC0{P=42A$k;w17e1@=w`Djsp z7)eG}hG47Bls#o;muGokCiz8CM7nBJjv;61=-%k=oawRcXQ7KVo0uS{O zf&^H7dd8r%9#qLe`Xs zAS#nW0$JxQO(dr`*9tB!H+%f8XoVaAZ_ANaL@m*#=>25xK*T-)d~dg0Dtv2ydDoZe zmH$m8K9``7ifow~MD5#*;Fd3n7gHMzvW+)Ns{Z1_B|T${j+pN$Eu~a=b{?}uoAc28 za}{38=?YVfKx|X0lWDRv3XZPKyvm~O{<-J8E!(d7%fG$)L%C{NN5{Iwa5}(wmErZ| z=!Su; zwZr>SJIn&!d=3pJN8!XfIF#M79HXCKJBxHtu4gSbS6s>yIj9JpX#sRI_hz-nZ^@9F_7Dr1r<5!D4e(lZcy|a3xmH&d)zhsbEfr9*8hE;V68gZW$L-rX1 zqf}VwNu!qJArHZW_q$ZVDC9h$3bcB}C%VjaCmw@DVkM7KBn9$kE3@V@?@Dou=z zNN!^)Epa|G9~}x%9amQ>mr;9%Qp=;^jc=pOCj;z+-of5veW>u&XLaddgxvhsF$QR8fX`+uqs5~5>e8tvzp)Nst0X6R1FI@ti&fSI0G9q_q{mtc5UTYolI>XZuLFN z-2G&x^2k^+^j0kyym_1vKz44BQyEc!5bv@n6-i|-t6%w11X94h3L|N0kHTiM8hFH@ z(yXPRGkI-mf9UVAV=7fu9~ew!VIWewTR5CzVE`S-C7fww)Z>tfN&C@oQ2e85#C4a7 zEm>z~R(e8*Xxk^0ISRG>aI$yJ zX$gjt)dZ-zi?G>N1yrI!|A$Ubs_^=nF3z!t;pu%0e;&rJDQxCqgCnM5Yg0@1%+8(| zF}1M*;`!Iws3da@MMm&|;$-Sgi{R0i$5;~VTHl>*eP`hGIp5~ndc)nU>k=!S*cx|_ zEVNtcbsaWV2M zs~quACg=?;cY`ygfXJtFGdV5WGRXy%92ldf<%HhB6;70|^FSRkp#xeQ66g0YOG4)P z51OEZ;sGS|9dYs+Ri9xclnOK3Ki_1fJ9K&<=KNGo*t9@jG8|kUNj_IXq=1c7z4xR+ zRi8kfCPJ2QXeNn(r{F8k)v%1y825J}jB9|;jlGDT+Hr*Ny8Sk;XXx$JJWK+mfFW1h zWlK&`OhR%9y)Rlq;AbsN!%i;(fVcNC>K$WwH`9{z$Oqh1F`z~?kIF#n@#ya9NB;&DBDU|By*Dh*w z>S3iFL^#xDDW8&9d9s3Eo-;0oq^S$=n#E50#Em{$m46`_bJgAsBEIm)+O}gPxSH*5 z0lOpc1u@<>CB|{Uck#v&Vjv7g0!7Sis?ezWzA9etD(dlv#Cao-tH6-Jphqc5K8@kn zMB_V_GfTLnLZOcfDX5+UqZ`lDW2l0y$r#gWEZia6@@)y@-y>4{%J7RN3 zDUUB>xYsBL<~x+1s226A_SyWHP1IYOcK@~yr>GO6kGYW+6d+uY2=fpi~$HtO) z9bcpx61BOeT=)PWX(wNj0l{W$lI*N42Xjc^J=|F}l@mxUI&@p4F4C7mZ|v0P>9Ou7 zZ2ie8(EV=Ya16J#J6V(HV^egiuA`J7o- z_6dj*!c4Bt4H9*W;>B8Mk_|^;Wa!N@OTs5JOcewBUfMAhHuF6di=#xoc!Mvf-z#hM znbx=_u6{W7x|ipmem_?UDXGCHCG z7`b{`BoQO<-ml59ypjmma0`@nb@bmFy6lr%f&hAx;*rgIadLLlhU2Z^TR6oCZE_D z;e}V6|IsHg3X}#R)vQYy+JG@?k{VqqsX!*l-Y-GHgV@L0dO(z|6;tUUDs^qyAqa=U zlTWo67T>xe`HQ(XiC&m-34bO;O@a2Cn0>q!(Wkq}-*QTzM&5q2db~45RA0zsv-Jrc zdv`wR>-wg^^TRFU(T8r>j|NOU-&L76&Gbq$o|o4>_eJ!I{#y>mkBD;b`X}2Eg?T9Z z+t+V#cxKGsi`&KewN4}~1wB4}ZluuMd4G$heU5J_%wQFp22Y<#`jt{RUg1qq1OcmV zLxp#exf7S4BJ1WH5wx$NN&k!JTH&DL`xR6nib{$~khgU*ZVIhwsZ8HeUb6YFGtVLkp2XJ( z!J%`?y5X7P)7C0;zUc4&WIKOBb~b1pPVhUpKX)uH{h@)b5rt1&tCT0b!-mtLTLAIQ z{yFcM0I{=V*_m4+HETi7_1j&h3Vpgf5ly6YB{WGf_wDr)+Pi)ghRIGWB(+2g_AYCn|Yo593bZ>t(Cv zeW%=fJ7VWonnaK`!EawMOw0t7gAPrPx+xscUj9`j@jtw-;{u>W#9O5pjo?lFsfq;j z3ae<#XSB6@ZO9$3GvrEcRi->NgvO!R$@Wp_W{dZ7A~9w=e`1w|F;V=5MX2+|w}#GQ zGhDf<{OqmMl~B!bCJa){cMu7=&q@d;W{p3x2eL+qnH_N(fxjIV6rY;nVU8MwzDaLW z@O|3Vsz@pp`()!BjV`PM?&)IVc+Q}iKAp`(AH^2`UYyo9oBKn(V5ZU$zAT`^Q*eJbwS@0_30|ckdbv8kwforl z1ZLHLc-y>GrUTVe!%GxCeZT{1rjvGZ-jl$s^Pfs4-beT9+-EUW=(b}se|Mb`Hky{S%vVLN3c#_ z#@Rlta(0TC(|ud@keQ~GvL*_TXQapcen@1V4Tn|)PKCRsq6-5g8U%ip(q2C(*-ss7S*%qPfiyK3+pQWzSsvQ;A+}{N)ElOpok)WlUk`&IEr(P zo4=VbUh9(l4_`Kc5~7tqG)T60XuZc$K^$2t)4KTzhhOj?_Vqjgk-YD=_B9mxqOYyn zJ9#}>nz`Q}J=7+m+~AE(K1z?r;VXh_ep6#nyGAl=*c0J*aaG2}eZ5^v$sQYOitzufuMhzv^|U7Pe@20NpO)FGYgJQ*KX_|Ll>9prZ4n>wxT-C@q z^X&Go`T`Dt-P)7x?*~pya6VGoJ__6yiF4X4OWi4$PxW2xeq)D(yza1lfMMeKduQNB z*ul>@S5Mk(=^(NkppJYH9;IP$w&9nlH#7E$Da9pghR66+l80_;1ylWUYv`$w5f6t; z=^`GCc5TX=Y$3&(9_p|fn`5D^w9&dp5>L)w?0ieD%iJ(lCB>H4#R7ncx16%Cn7n-Y zh-PhBZv|_Nvr&Rwja6>4B&sVTGZe`19a582^*^8C*J=&)TWiY|P~?8qtPfAPY}V$H z*L?b&#$W2>?V)7}pW3VpvqWU|WvPA_2G<+^snMb&sxa*bm&t*laPxkSJ#jjL)}DOR zT{@uYQaBs7UB>vjy=sE|Lqbr!$B*WnuU(jZ*0=C98vW0>)cKvcmQ$?jg&$aYjq>^Z zlKapogmT$}PV5-__gReKg0uuLPpRy&2df-DIOKTWrl}h~6A)))XwIr;tgWbbStiMs z9Ue&E^l@+vJQzKBGB~KG+-B||*ywmpZTkmxPEy>4_)weHZ5#gTB^DklV>VS>rFmkd0ygNqD-h)J+#rmBs4f6zn6;jJD5`G0Z<3m6=>P2nw>^BuWcfK z$6Cat3bkoX!a0|mICmhRdbAsA$GEpUIif{ltTQ_&QQ`qx!?xSlSl!V&L^;k20b&%g zNXRtCdqooKdX>9yA8tzoiv2b0iZTK;h#c_S>%tFm(lGK1gJe}kd>|tlCCGDEsjQ5g z3y4wsG*L%2vdj1>kzz}wDO+^#$^tV}KVg1G&~=1-FvIK?Y7`M$`d0nr$iS4aC9`#d zu+WnY$APpL-2Fd^#mz$5wb}7LbfeCVJk=lgbPM;r*pPMns8t-WnGVWbtK_EYn0 z_Nn?zj(15*Qss1v-2$QGt5#J!(kK~g2J0ZAX6bq@QXJl~P4^#{ra1iWU!%!x2|D%$ ziY&kNN|^o-#S?4P!d9&rL11W+5ypgvA~Y`!SNZ$mlI%0ZMF}zvYFrA%%LWsG0<&d} zAFGv4Wu1YAuk_XCilvs=VA{jJT2OFh)q{Gk9|RGwDvwafTSsJg{Iv)qYoeN%w&)|S z!RS8D;mz?;Z`cT5WpaQ9)jv5hdf8W=zHurWk3=H6lGo!zIy;oAIIPGliuauHT}NU? zog=blpU%_Npt4?7O*u2h!k-C&GST0a1h0p4bKoWVOXxAAFZF(4!tILhjmL|lGT2_k z1=%W3l^~rgynyka3@x;lf}QUE3eUyI_AMkvEOUiyZ757Jmn9e$?@mD8qI9g|#6iXa z#B`{m7<)JRFp(xw2dBzLb7(u?da8)Zs3LeW{YAec$^f2lKg)V@US!iQ_g>1&Oz_8c zxO*8I&Jp5);_;KUUFgt5Ar4O{{~Mo@qWX#K|LLAOl0Kay_mwxYrb2T|f7zn|LOqnB z!=nS{592;1hQLs4!Skjm9`~9Pju{(YZY%4+cK54x#&UMi_kuXD6T zQd8OA#N<>76YCby!=0Njvk*P@;0^Zod~McWX_DO`AM)?J{I0Hn^mM;D0Ec(TP$uf) zg}hLWKpQ&>Sx*oprM95#jBG-V)1m44m@2DC+DeWc6K`y1%*Ky!lwt;t~>YjnE@uB-dxOPbI+%T!u+SFJg8JTHhZ9wzee$p{?M*EH2OY z`O4Pr!kcvP>0m;0bC{@S=|xQh$%)RZ5nO)fpU1nt^|O=247WH{N&_V~@~gkNh;m4N z&K#$w`8+SR^}j~i@fAu#j055#8Sf;w+>T35oZtTXx? zL{7J6^G{ym*=k4)4@b6+l0K%A_q!D+cX4^txBt?K$dK=dp$jN@}p zA0QhI4VBQ0v3;E&MA2D)+LYn{ur|BqLtptQh1uI#dnz?^_4z7R4a!PtxbqYI5OSal zTH(bnTN>m|4zs02F5!2Vz&855Pf!aQ?6_kojLLrUQ;1XL=VxS>N}%|n!6?M4^bbf; z8cZ*y!%cfDws?=|aN{OlJ|sZn4#Y&z>>E1QO;TTQT!bihZTsRGp*@zjA`l(!SUSJt zrH>-qtVnB|l`P>ZpBQ`jS_Xqj1`M>6gd;rp$00=!;v@8_<{4ISNtYYD#z%TwjO9K#qnT+0Nz)DAt6SfG6Gkk z4Fo}mxu`gE58|$MTN9Yc^|@5hJ;vWfg9}D{YGE?f-TkZDOFC9h`Rt57oi;vz*UmI6 z?N8Sj5_N~E=OZQfw?}r)+3r`D_+fAGv9-*!+LUn3e4*Q^4*%ryc)0-*yx;H?UibJ2 zL}A+>NX2n1Nindbirvb3ynG@w{OmL8t#UO4z-L)8tOH6Ljb~!;OtN0-%o^o=jVMM! zDFXOGEqA4&KK1k%i|3vH><6$NPf=~paUwQ#%Sp@@nS$BMwAC~Vg9y*o`clXVuV}X9 z+M3-*!#4L?pPkJ1+T@4y&G6XFx6T-55!*-84b4usZK`)Y)UAL5WY}0@B8M+8QmGPO~%D8UQP6bQTzYFstz(^{2>wC)gtmEBV zw2?CMd>nmO>**(n~0B2MQ7g<*M2=p@*@iX3}Zg!z5CSCs?ts#kSV=sBLjc~i`yL}*;02xY9S^+b(m)<{o!`NXS-V2-xEHNNH_M&94H7O{7BHBu9c z3$r0#H3`z0rB-kPrB7E!IJE^)0M%4*$H1J}`IPY2a~w0@^AF+pa{H(%&J}C+Drz>! zW468WF+28c1XM?jJ#aJH<)ZV?Zvh;OiBbW%=iaYxhS}JYohh^%vV-2}RN?rsQluFL zqfizY3@r*zjS^bQ=2DJ@xzZWG{?T@H%WQ%+ys%CNt}(oWo~1Jf5<;TeXj) zWy!6!3!7G*HvwWi01rbPN5>;v$mIxoavM=zI0>c(u`pkFX%iCvn_eh=jA&F~9QUJK zU}d=_EonamA}Ql#=le6xugx@{HA%LD-PTrKmJwpvfs{Dh!CBUKdK{u{(0e+DWfv7e zdS8Gl^pu@Li%W0ZN?q)eLhr-+C56*s3s(jCbEbi(^}K!96U=bEZv_|J7=vmm;ztW= z(wCvly9fBBSh`;)NrD<0&=202+zBw0rh9W57FDNz)loEXPzD>AJSy7M30y~`nTVJszf=**N;yVR#IlI znhe12YsCAq895P=IIRd&z}a`J0ArZH|3M_vg`tz_W$l5zXJL{{W z6%~c+<@TeV6TPaKq>CVUsM#UGG*n#XmSMsUF-C@qjXMI`_$ZYlys9Zvq%jYor%6@^ zk*)PzrJU~maGX5aG_Q~GuUzXeK+i9;L$Gl#cNki|O`dF$?|&=xIv)d%V@WIw_C<~F z1PnyoT*l3A5wwqAwbzxcyw7|^Sw#^N=qD%(!V-D!|Fji|)zNvs(naK*=dem{|C{d) zds`&<`8cxgb=POHbk;S;d`~skgjgt009?Of4NqPJ^(+D2Wwtln$plyGt`y&eWqusj zmkSv)3u&zHFn@lL`bzNM38sl6rXuZs&OV1c4%cpzCmAG(99;Y+mq598oS%I?AsPL{ zZQXAltBq;-2kTYqI+*Gm<`RcS%mfa{vZSFtRdHLH{|`I2jEtUbVfjzn$8Y+ZCN={s zu1%EH@0D+M_Q_Po3whFuUqK7}`uKS+CwDnos!eZPW1!XJ&M(U5fn~>A`AkqQe&@khcFc~&5>Sl zypNwLwMN=RCUsw?`q~0p4QS<+@}KIHJX2&!iKquiA8S4N8a7I7HdFjH8m@@_s$dYn zz+c%=G?CbU*v;ZqDhcaQ=-}9z@>-xm#(x~IsW5)1DXljU-Z}?CAJw#j1mv?23 z8!xMwXR&MrKUoOU=a1s3m&hVg9^~ORbjJh4DTs|Ch5|I`aajut%=I10B!WMocD?zI zpC>8!HldrzAg{8LHLdxzKvj9Iyw= zJPu9HCwDZ-Uv)l(<<`mH+EHUElo_Xu<6ZwVzMGc@213_87MpIRb-Eu7KYB}*@IJbM zYB@G+n!MnXcF1^&X9-{ z&|xsYO}%E;34TzS_g|O~`DsEo&udz?e$6-+zR&mLwOj7;g}b2)8LMt{NqirafV$2B zMXnj^2~&|qFi5><1$szJZ?ULtWAd^wr5kmv-19p-lYQsN$VcDqCiRei(OpVeujY&+(+|%?pweBE^MHRpPM~pN3a6pVwhi+BXa?nugg~B_KGhTHV;{ z>CAB_EW@$jj~5jef_kgDEKgiJbWala1$-ZZ!l2krMRhjTPOM zMMUG5hjgiPvXY@q%mxJD{Efo-jU>b<9@t#K1$i5E>_O8x)&!2;uJ;5qVHTS1TC zDCfXajmH!iQX}CuL*RFI)b)``_5!6E(>fxTP@@e$1sTsY1FEpETc=|o+P<1$RE<7f zG0#Qg2=i}vIjG*~m`9S#`+6tmM?TnD9VsW1H0zefT$OJfS=4N!V8?|Y9$%BF|OHwjtw{-R}@+GFa{#8RU-XG~zHb>Z;N3g!Y<|L}2Sq z?k%3&NSxr{3S8IUT>J0x^77fz_RPD_`(5DA*X^e#C%^b8f8m~N`sI^dW`e-#QG?5i zSNWxnu_6d4&5H{dBGY&)_K~2k-~p{PM&-aAWW=&Q&%-REO|tU^j?d(i`{|=sX}D&$ z(>sq5QP5dQqd(nyi`D=(j($H!&{AN?sDG$DI=OhfZgyBYN>AjIQG-;r7C%^3RW%7O zdmtqcFswg#Oyhhxxak{twsx5QEJQ){?Ns5{{BT0ASw{N;vq)k__kzsd@OPd7;QeKj ze%EJY;FGb>r?wfu{aeZO21Z09EHxpb+KxytU`8DacLxd0fq7H%QLJo4$9ePw?TeWW zUOqnh{ttQU^5|Pxfq_79^37<%iATFTJZyh;?o00RMRHo}dOGAsQ?JwUuvgUhNu?=G zwxX7F*rC_ax5K&bI7`x!io}nBmcMc_W0Dbkd;l=Jt5$c9on~k-#;wX{1YoENg;W$3 zs;o5wplhQJvo_3=5<{Hz{BTKHkG1M@Dc{Jk_x&dnMoDvYhxZkDLL(jB3E5gM8`aNN z>v!y!!H?l1X7UNy_ESp#RDODhO_>s$A5tM7{zwfMs^7&iwcC0c2+M*i)b>M4#5FmJ zuIL^+xBCukujrqd{;TT0ejq16G8jCR49(LjE~WQ%aIMWvn%yAvp3SfK!g8r!=4^TM zA^0>QC|EWjP+Iyp;JnYz@R8FOIf;)&b}DM+BD!Dph;NR^o8~H%q1{4gp_j1=!u zp;B6siVleO+P!LOLS8b{YCra>cDo-C)$2F~J3)+ltmx8lQ`Ok1$W@S(IVcfW0TZFX z$orE5X-^vL<`3-j`eUZr9|u3kUlvPO=>jkaOc81hSYAUm`-_rq#`*n1PiBcS=s~Bcm0RFtn{DjKEr;ii>@n-%72n2HBs>tjTdz zc7Uv#=#c&khRQ*;shiEl(iI(#&0bevo2P0_u1fjSe{R2R=G5YpZ9M9lz&!za6Oo~M zHIdLKUBx7VH)>Wx5p+>?MBpps!FlJ8`)uBfFQSH){|zQM8%msJ<-hTC{2b#=I8LOr z3$unNcAJlPNTk_EUR3M3iK{e~#-tMZWDr%Ci+UEI<~WzWtH<*PNWzg*wUiPgsjPAbh8cLr*{0*XjVf@7i|vjlindP%%^HWS`?9>;t5ihSW#yq+`7`ew~e zr6u!cEgh8#l%h{h6`hlqVNS2VnXEW8-;Ht|cB)k&@?;IC7sku!(TVghD;^lm2WHtX z74f_Nsw?TT66R5q7YXZsC_nmJE*;H}+r#~3%q1f~xn7^V3qMthp>kgPFCP<@Qv(XS z6zKB{0t57~6r%)${JKKMjhO|ELcRiEP=pRqIi@&?12V?N6d^1b_*%dJQdjY7P#2!! z2g9P_9kWUa*xe0QgZ+BANrbyh5+^5l{xj|)m$To}OR!q~r(iwGto zQZ+b@j3}y4{yUKerB?^|_4Zo5)>7c1A65O_6;wgQUxVod4YVmN_B5%g+^waXVx|2j`AJZ@O08i*vIHRFntwEDqv!1@YFK0aFXg)^l z7c*7JojtD0*9B!bf<_i9bq*qP^<>2Vd5^VA0l^bE;}@pAH>Rgj2oct|w(ip^GVf#G zQNO>Xr44whxU!4-MZw|A00_qx&^`si;L>>dI=Q;Q;Bb?%weWZLToj-D*DD#6S^YW> znkYh5qF|Pkk?6>Rfk(wTkl&wnO}1E_?yHm!f(45oOw(`j9O8gP1gV)Qr!8$B4U7i9 zE=L|xD_DdFAPsk|j?Vi{m~K7Qd9Ai}=1Bw}qn{k=)L5N8QcEK(I-y8VkJTUM>?2yf z2eZ0?0c(|+l*qp^$S4BYYPfOu84FzqK%uY2l9E^hYY19c0$nX!F^gNbpQN z2m^)W&yhhZ5sye7kUYz#TAcq_Q6$9tW7Eh|xr*6Xb>5Q46emK|ZA#~qXC0)3Wx6P~ zj}Zo%It_GZkHylcj!u{y;gfHKC$ylE`o+&P{@s!7%JcPNW8O4tg? zU4F%Z<&nJ2j^E8A$@PK_h$W{=%AVgdX{%5=#x1hvx!|CgLvS!Vm51CLF~Nf9XVJ1?M7IubPR2EYw#`^L<&ui#K|hiUQ`z zJ&rWVQmc{;3tEcVm&j$oE8TS6aJMbYJSl%nR0AFgBS35h-HXu!4)!!53l!Gu zupQ*Cb*)=EVXwS%nl_de*dc4;_-X!etLt(1}mod~-9xDr1+mr{lAoeOyZC zdlFyzYp%tR;)&v8R9YQ~jb~t#cx^&owXQ$bpif5mZwm@s2aCZ`WWJG3zLS7ZZ0S-gRS|_Rn@fN` z?UCiAb@WV(~Q(KeBG8(H#?JHXY!JbS!(jBvdBE0kO6x6cD|U z<$okd?Y{pU`l)_3gX42}num_{LTQ$Z&73=}%}QaGOP+a@VStc|;4kuxt6?$iSCv5fkH3DA$O`!?JE$MIx~C)yTP@&nt0gb0d|``F72< zs)AKDfVOQli@lt_wjq~f+H()><{p`SO!K0`Izj$MLCS# zq*s!q@((^^cmt?#X*_iH zDPlSUkty5cSpU|NrS)+T4v}$U*;57dC8!%sjh@(lkyrcF-prB8@sg$$$9}RqJkhKx z)H0ZZs@PfJSbZmBzITe;6=t2{Quk?)3FUpn@^J#83mj3t|-?AlCS*dLa74W7vIMn}o+gWnLE;(@p8) z7$*^d?nkRkK%p%S2zL#oXv3mAxEta7tf<5HrS9pHQR!NiK}QX{NL}u(=S}?CA=RiS zm<&pTDUWO$AoE!hd^Su*<0KLU`XU_!Fn;)V^1%}k3f%Pv>B>Z!>tD4NT-nBW^s_@j z+QeqwG{Gpk^GpPJ1LZysU?rPM2zJ^#okRzg*iTyOvV87CFs`koO+eFN9{n&(bi!1b_IS@}I{0-n-TmbBX#Dvo`$G|X{Dx=PD5`-`N}u*Q*t^y%^8tBg*97H>+NX2L?^@?cbzs}bkXWX>mIE14{20o)>1 zXlLcucEPnIV|=^G5%AcVeD%AL%;J=gT5;agYB{b7vAz}w&IWNnCNYZf(n=WFESa8w z)2QO4b@8j%meNkFWVzBFiIpK?=U`4sTL$k?s6Hg=Xz+lNUsPCznM%q&XL4Xc%Foki z*Bpnu6?$hcoe1+X``1#ea($nA>(*W;AB5sMr%o*-KqYMmV<+6{jr%CAqeI#ErKaCF zWIf@#@VNAEk}m%P<1>HED&6m~g#aL?pgU6Tu%X!lR}S2ac*Uie(iw+m$s$zZlx2Ob zcFXBz1w{b2q^TOX38I4bi)L5v=kr}r`Z3>aJ4FCHr|F9hIym5D$RiEEqe0$_L;B@K zU#9jTwwNn)`)l^;QmMtd2B#L08PdjJH|uqsE8dOqQCxo0n;*_Zr`=p>9Aq#1rS4j7 zFV!1OW7?v7T>o3o)qcP};u*!OpXX#TsGMmGmy~JauVva_J26Cu0GZcT#fcJx1XnE; z1yfmYhZKNtT=vqy=|?LQaX4a=NHuvZ?7E)Al5zI+MsowvVAM3J?RaJ}I1J98O=xXs zvdpe`o0fVe^2q}mPnC4`6M7ua1;Mxv{^z#G#Aa3q2g|$OV|fI(5n!f?r-MF=5!cID z^KMrG6xssM{4L*=N*Vjs=2>Ad5hC4%VpuCz80+EU+64p@qQaq(I3m?heT9LU=l`lM z#xtN+vtf!6OhD2Zm~t4C74-Aie$r2>(R0Z!5!NC^BwX_9psu(f9LBl*Y5mrJlHnWJ zVpDr&P@~_4#0p`z_N&0I_ZMj8|IRzG%tRN)?+R!rpo&(hPy9U?l1NB`k#fYO8OUrL zBR~jt$=LD}+i!`~_t?}*&R#uCR>a4|t30A%tF*bAMY9U?D(<0tw1HbKCo zn-Eu?90)CGp;$=zBCQu%1>~Q#E8n&KLPo=Ob*pQ>-@n6m<(8^u`O>Hctl8Y6P^bw| zff<+y1){mWAtv>YBywfSYV-U|lw3PO>=!;4j!F!+-jmQ^)O)T3;T9i>eiTcgmZ_H% z>NSlcR$9f<*+OBO;=cdsy;j5p_F>h4EA*kAb*dGewk~?e^%W(k-+ww9)xD?IQogzs zt1>hqu<=HMek}VY0Ct_?TLuKY5Kwuyhr-@edE!pu-w2!aQ9Pl&Wj;07C(HvTANEV0%xOeM4_735F@!MwNeG|c#CUDe~31Ha%oS{Bleo!WbPvhK#s>$1EN z9{mW-1l@z{k0$gWr}~<($1EjSWb`^}`{$Y{!-Q*@!MnC*jkMcomms5W!bUR$obIAo$o>0fPHjjs9>*g-`+oS!&tkbLh9W3Aip&nB)i9P_RwRY#Wz{f&GbL~s_>0?^mEuXXc+Mvd1uj8w^va3DT}U)v%so80F+)nG z@wzqcdzuZ|=nebwegxtz>PkA#F=dI!oMAgQ!jmk_EiwrGM(?c_{75wy7|F`-lMU%?@34fXOSu zLYz=eJ^HXOl~g{t#Dq13UA{o};${k*hR@zZC3E4~PoP}S&!gH`-|#CVf(ZY}e1*iL=4vB=?Ce39=kt6v zdg4+S3Bwj5Lwgy{@$ueWZ*zyTF($qnL+19m*=3YnvxVprsn}Q((fhUSqZ<8k4!Nt@ zsN>rPP6y#KH4BFti3X$b{lpt4>P=@&K;s@DyPZD$DAnE_*2}lZ>pDu3jW~7nm$WE< zb2q|uc(o_aXY}qD-eK4){TzhPM>1fvPnS0u1D+omT*7-Pw?n$?=h!I<*w5O$YSDVY7I)u{ObhMJX(v;{7IOY1vDBV3Nef4eGw z-2iFvisUa}SNLWcb{*RWpvoEQ!!(f-`1?v~b)yLda* zfb+U;f`E+k#=jzi%K@$;epbmGkEQbNt^^=w!R|CD5vb>&lZvM;+p;yQRJG77|SIp8{yR$WWFPD9G>gDS?3Q2 zY@uIFOuKtZU}Vh`@=u|-PoNZyAn{~gA}S3hNK|ACi&&5fo<%a8ovj%q61B95IbO4p zVLj)7)?+c#QgcO@LUCw^@N}z{Ig-6xbTH3+PDlXKw@foKIwOMSoz`zxU-ww0 zACxuY7GPg4k!o=9fbygyV$qNoJ6&+2J*5BZHfUb{=Y;xgki^;}u6WV4fi^}|cT5N| zj@1O|M6kOSBy#I@>k&Npmy`HmYZU86Fu9N}sRZ%SEfD2n?L^0m8xAmV=J1)KB45Ws zhjq^tIR$Hm&UJT#yy^KQ9?C8DCz12!Q25v5Ju4eI7yeWa48ZBR81yKW3{&Y}1SnN9 zg3yY%?`F_Md;Fu8eJ4s_>g!Kwf^h5BS(n4hndFR`4=BRZ-K$qZ$rdKa804195jf;GWtr zrE2_s5QA!GUp*(-wb?4{hAQ?#O^TbSy=q6!+@GPd2W{xaK=utR=F3V{fDk58ATkTg zGg!>_M1jz*KDkoVpu*~tFCADi-Le|QCsR?gO#2?h7S!e3qOmTwy_zh}{Oyp6iexJ4 zW+r1izry|@anY|od4G5z$$(N$(%Wo|N)VkL+!H=of9D7+@wlvuBaFwd2f zEOz>J#Ii^^2%B?sNIFmQXzrVYx7qlf50TYxKXm?_C`beOpJTl0B`;uZNnHaY6)C9rF*S@OeX^a|Hq^Z$&>;gI zkieFP7|J3A%ewh|*`^jvr0pzw4y!=6+O;lZb6mz(*#W{Q`Mqt4fSwWr4thp$YtRT0 zrG&nMR21<-QX@RlUiQpELfYBkpv4Szi0bGSKL;+saa&xV z15udIfog6GMGXGD?^ow9W?)d*$QjoIS>C|CQXTyDkly;-w$fuDdJVoj2d%1Ry{0hj=)U<#> z#n9Ha9Vb%L?~~3Fx$EPPxz{8U_0PYy>zzixWLH`%_g)_TGhq2J(dyXB`N#ao$fD15 zP7&F{4IGz$t}cLVIBX9JI9Opw>$OCq!WIH{_oSn7eW% z^lfFcFRm+-KrJ&mVE3G8+0C+^aod);Rb|RBM>w@QPgKUUwol50c8b}-s)uX=?vriH z5Vvek({cvn0B6(GP!xk~+qHMhx9`3?egl*yJS!*Zh!DR>ISBFI&vog%YxlmM&p8BS z>J{u2{5U&>m@2g zl%ulAw)T>R0@+V$fRH>*U%Erf4P?N|k?Q;349}iUqft$DsGYA9jeve0V0~{z1cD)U zxptsKTJys=JQNYlW?={ru~1(hF5rGa9Ry3FOw}1^r5k&$0pj#i+_=ZPF!|8QYnlt1 zJ(M;wu^h>Dji$ckz0(%k9@IlCPGxOo)kla^~oJ?D$6Alv|l zL;o;vy^fI8bMUl8{E9C!lh(fG8wi466nw+TWfCQpB2;;k0Xc2b*91R*La$7@7L+ONVMbCQpP01sJ!4m}O7oN*C z`C+dNpNR6A&YqZF&uq89VtCJxMEsY4im==PK#HTXCRmjqNC5UR;ULP*P=x=TcZq8w z{ifsHo_}i9`Q3nzhJ|Gf6l~s<3HQuN|u@UVT}(Wo<+*0k8f)FcwEAR#jYa$ zC!r{Jy16BZbz;>4%U|adnLO_C*{E=<~vYJyTQ&E|gPG0-wznsg-g(s#p5p;L2iG-**8c6u3oF zbOR{KY}h-xQat?qr**U?#RrA06j^T@lGa*d)QmSj%2}M>{*7VRk;l!q=^A|+!nnqV zeqrLr9>yhc#hH%~KagKerCLn;&6~^?3m~Mx6g%5`6m7Rpn&_v3C}L4IG#?SBsT|5b zMUCtY+nI6iD+2}AI{mH_#<_QC?j&j{?N8Wl`}1;A92Z#CJPYMn#Jj?BD*11f32qO; zx-0zo^p0!0sTx%90~mN8Fr;4Alz)x#)FGeBkEuK77&CGF<_PW98*8ME6~2(EQ^-U{ znxho@e-f^icq4o%1H#A(@Qa-y&C+=^s@~O8H@R5i4egOTCFvc#8JK2RRIcx9z8q|g zS!pYT>@7?u03%7@}P|LKk404Zh^$D~<#MDFRHEO`QXL2577( zN^N(A>`u`>&#|oU=5YaKGmLF$LYm`Q=z{Kj6J-eEwGm*#1;Z8C7S{PL>bYLcVw&&i z{@2*6GeH1VqN9DE97#K2AyP_&8m>_M(@F^&u+v8iH}jWo+%#5!uAi)jvK5SvFb$*Y zQm42Q2btZNW7=}8X?gtUkvGz^BR<`*lj7RCsJgOj zS=Mq@x}z&p+S^okw|q{W-B`dzi_>fjk1B}_C8aN+HpO-CYE(j-OV!H7AfLIrbs;ej zA+>P@1LJWJ0f&rdKU zH1?e^HSL5kI(#kiB#Uu}#?Kup!l;Sa!JE=>o*l)Q^_j_8&Un0!pNrLlQ`y&bQtq<} zGp>6^ZxfW#a_7d(g28OeQ!f{^XYV<{t0lD!2WaB$rh0|I+9~K6og3lNK`kh2$G!bj zbpG?3LQ69%xl2~lxvL9eg1dxERFNCJbhxPaR_^((97AMH(axeq(RU1j<=!txT)|gb zBqu3eR9l}wVb8od&~4slGf&r@ov%XH+xq+RY69<=b&#J50v+=NPY!}PXB5Ov&Q=UQ zZf!gvQ%x@ey$ZMGCtJ#q8NyX~V~>1!>E{H|%&Y{sxUiS~C8 zPk}ow5UcaSVLXQC<5~|pofEHyg8+cMO~gDhe;)oS$BoLUJ@7fQY)4?EwX=L(nHO;O{*CZ+@9BlsW*Ru&?a;7 zDHze?Q$D`-|BSOt?^6l*26$AA4N~QR5`pzI$v%U|fI%smV&amw_X`Lj4e@6x^c>y$ zVR!s<-y{zz5OczvP9q|o2yXum(e(I1TGO(Yxih4EL|VK31M|2U37bQ400X?o#WSv< z@5{kBxFMt8vH@C)FhT8k>}V1?t3;1V(DLH6S7aI1=vh#E# zUx!0!lw)=3Yu6D)0{Qv>x%aLs7G{ z&vw7r9S}a|etYUv=H}7$D%-q);oZBIsC< zIcC>X!F<7)j%PU%##5CepPyIh{1{K48V4#{H0rj*SK_9vr`1|?)lZL{MvA5OD^PD9 zke_xxxyx_GVBj*#aFujG{pSk+Ecdm$#6~uR3o`j98Kc}?OeFJvHIrXhzb$i z8n%m1gstiu!(JW6|LVy9`5!jE0t4^LtoX;o1ckB} zab#T>MMOkMVKh;lJ+}spayBFsql_4IwRP26&VYq+E;_CI-2zXTu$+siS(wMxmo59# z_;vTX+t*_2o{q+@0#&kK^{hVNEA)EKUZwb&T%=`l%a#>6r-Tw{k7`j^ud?6xfXRvW{6 z3zxgQyYmkvd3a$VpW?=yBOX=CD5%(4A8zcyUs&)IVzlyV=YTz^U~=A&0%*~H)&!Y{ zI`H>MM&cU;MToJ>8RtjaQ!`1a4i*&t7W!pKoG{=z{-q;oBCBWze+t)a zbfmWSY9(aa>@9^YOrTl8t)mngV>(pWi zGrS3$Zc8DZ z*YI}z4iHf);lgkh`a+k5;loGPo*ZDBpGTS)o(>84ThhHflngft7P9lsM-x+DknzD0 z)k_34!=`2W7T?}Y#$=3_1IL=CY0wuqYekqVnD(FnB~+_QvtQ_EQM64>=c<#pS3rMk zH191w6I`lHA-7$fHu8v#ax?NSowq@cz=PS)H~pK3*t7In?#p0Zoqw;f{3s0!EybbZ zy_z7pBYS^$@yjt0Df}8ov8%{|3B7=6RJnP^j^pk&DtZi;k2(4mcF~98^I2Kd4-AU- zvjz+DG2pjc-0v>)&fk~Ii&>pamdc-d0S{i8K<-GlyAtJmKZ=I7tFoe$)^8$YiF7Fn ztWW!tnq(_9Vx1njMS|f|ApN0o``$#NNYGEEmRo{YP1SJc#GJ zUpE>dC%aLh-nqE&wAmw{PbOM}`FR@Y|Y`-osIA&-- z%RN!3hCrF;FNG{^k&^;`;kQ$W_^cXv5!Br9Q)vIe6S2WPcPRX8jaeBxo9G7B`1V&t4p59#Nrt-%t+C;nLhml&@q< zWotSOM_i++BN1{BdCR$7qO#Yr9jIthC;j30v(;FW)0WrH(qVF2Pwp@eq7PC7M$aY_ z;&f~`Fazhe1aHg!)3buZWJffEOsK^o1ki1Tv`#Nrenm4{mu4BG;DVDsiP_3MUeU5* zJCF4#SJ*6~DIwnxBWgTeIIA-P$(hW9>hn=zl{@LyIOy-P z(LS-ahrFyP+g(sk`U7~DfX8>r&1hoR+I-Jmht}LL?K!a3v$CJoXS`6J{ zqGI5ZL{Px&S_B9NyBPRS2`8^X&{MJ9H&I~II;ld{v108G)N1sZ-Ki@MoDK+U=O*$?y zJ7YWWPSn0dm;>Ddz?9aJjfXClHU%T&?49*bT;Op52QbQl<6ZKyAX0o4YyN7}fiW zGYD`=uHOF7sgDE*FwJi;!E99O4?3XVZnqmgyrm*{)x-@-QJlyk^@kFp+c>4nY?3NW z$_e22MD2LO0u}de6-iS#%Q2{YNblJ#xtP)b3h>0dc1wSp&;I_)^d*5Gj5>Zt2zYe->=wxPBcjtJGS|06q(vpRfUSrkSdbju z-~Lt#CB}0}Fs#6Bwsps6hcaopH}tLaJDp@{ah#h{8hu;5iOcb$+p3o$)tffCP2FyN#9NfgOw-eBi~ zO+gh;lPbI!egUM&F6o-ztI;lsKTNC~&{MgT81q8<2~lyhyRKR*Z#tD@xBpo9uG513Lo)|3QJ+RLEkEW`sFev0_^x?$6)4sIcBFC=YO*IyrfrJ&=gtXq+Wi_wjvDRiH?roU0NX9B?Rp@w>o*+e2zm`|H}1QCd*C^fIo;C-0E17 z$$;?q@Qa@>ugy)D=2dzPTW=cx=A8n`XjoBZc@#Juv93(P&<4p|%u{?J-*rzO1)XN4SRDx% zsn9M?py0}?olWDsQ;m&B3-9?hrM^^CJ3Axs0dcRwv8{@_#Gdd3^YpyT<~~GZrEtz! zCcU3C(95>@Kf>fc;5ZZ3%3qYj2MubHtt;RgXOjdc!0Z#PLxwJ>kq(DhrMt*V8X*L} zSIE|!#BOU&+Y22XM}5iKTJ-$u(YE8JWfOhdj-8h-0RIN6iuy25j(OyCVpfq+$mJ<=sgdaWO?Xq#U|po5N;~kDRt}(P5D?p((XKX;?VV z>o&>Rim>k(H}6L@ZM!}$L@d;>i@Fw{vxMw`KW&;quXS1(*GAUL{ke*NYe#2vO^>4t z4K|`yyVX4j1YXxA zE#??689878ZmR^jVJ!R^ZV+@7Nw@Zg$~PoQbl;ZZM@E(PXZT8afQ6jo(Ulj59U(A zu$QXYJ>0{S=;4t2^&52huH3&zliC;WZfD1N`p>vSd}#sjXoy=s0|)wtW_ zVlFJTPd%pK_to7<|wtc+;v|)CayqeW;12Ev(AW^g( z1tJbZg#wK{2S5&Z81RL_y)7O%^Vy-M9$N0^B<>Mqy2sCgnHlkawu-51b9*$lO@D4X z(e(yOj!Pd|;H+`6L$0{Nr;j-+RGgYTzzyW-J>UF((sgNh4ci(}%3U<{E)3!0O{KzB z;NLk4Onv^5X`!Afh-tZ2jt*bIWGM5QX?~r!F&;Vk{i(RHj;Q6XlJ@hSX73COP7z-J zkh|`6Q_tu0cRqD?78`=yJ=c8qRp&R!o2su-{En;ubQZ11vN5a_3dh*S2YHin{=+dP z!L-ej+*`$Y*d=`FQ6`4>qAI-&4Qc63-{k7X`kd1SY@?jdV8dKxKkPTn9Ji3LB@Nsz z6WmSp_y!}U&fGA1f_c6#10PJ#JEtHFj*Pe!Ya13!1}G{tZ6swWqix}{u4g*(d~c%h z7lw+%iO}u1q<4QJe$SJZ$Eqpf&_G5bC6a}4EEL76Cq7z_bM89Z7r_}aV^0yeQgVCi z+cNa-J#Na3b9tLG#_L`+KKz?tKoQ7M7!{fs+8XiBvzyFVQ+6pN2*K<_f^z$k^O+at z_P2nq6d3ez`^1+~vFZs&m$kIa2kZ~T?!-n6>@&QG1x#!)Th4s)kSkv8@>V=SbF0-o zE>FVSs;}=_si2~LMTB+urpJuvkOrI_{mmv!v*pL$&N)h{vR{XYAKbA7A5h=g^_w|C#Fu;k~ zyEX4LHw(5F-PGSfwEc)WjZRHM;RLP|d<}$zkjRb}8=Ho{lQ<8)ud~KTnD@%!BEBEe z$^C<86+wr^PfE)E^0zr?A;FfUKAkuOs+M%!2P}r35uaE^diSZyb~xkVuXTCMihoeB z#}fH4lY(XoAGaLRh-@RUL<8Ypc#6@|vVA_O-DsnQLlm94sJ(q3kLaGo-Q>DHrb8eKHmUYrn4L0nul}075 zK9&1T>cZb<&q)rJ95ow9iQPmSH|TYAM8tWoECr(MPQqV7d;Bq&gK!JHMMa`~Gdk*= z7L+(Y|A(^{xh4g(Y6>fRK?*xOT&IB4Wi4f?Amr`)YN0`d>CYAGbFGYzRTL)-{I_R0 z2y*2AcO3Tr9Vf}#N`QwJO2}M0=Yzy(6snLB9d2wrXATO}z#jtDjiMRl`6-lE6s@||Yw4AGI9+$uML`;}0HvJS<2 zTs`-TCFR2(jjvV@0)Wr?re!=GOrm9fYOo6{ffL9h-Ih+W-YRyPCTN&1zfdsE{d0uA z{>5e7i4NuM0D&7$4J%f{-D$mZgGUp`*+(AseC&Y)Pbp{QC(>{rt(uIqpjO~g(p6Xztxd+DR_}&$Q;A~a(l3H#B8lMyXP!- z`)j$cb0cu>eYqe^pnf*cx2R9yOK*`5_8)5`9u*3k2@Ka_^^y$*82GZ7jj9j!#KVtC z%R;}DvJQG%UCTC8G))G6cm8w$%a4k|%mK_pyoPJ`@((8FT_1{Ci|16#@4kQ^K z2JSe)p~lLMS$wr1Jm|M9JgAjsA@>^ag)+ry9tIR$)2 zH7*>4vgCwVQM<)>p=Q61k1%;qnU5wq1;fbhPGXm~6|-A>Ub@+^Lf5otX-v77W{SQ< zcWg0fyKfmy9sAxM5{UzbSm0{IQw0tDeJl3|qv4I5px2-u=$r&tKWtk$s3VMoH0LBV z0wOz^{iYXO6Gf%82KlC?=V}^Wz{1%Lgp$cu)TG6n8Bqyqi!^>?t;OUWo*%LoIub2t ztS)P)3q3{fNd|(4W3Y+-wvmz@9LB)^^w3S!3fSx^^ZQTy_!lHYKt_NB<{@05n*#nc zO|oUm8%mH54cApiel_pNIE{t8x$34Z9_Ed6+x;Bchy+XRI&2MgyDRUzgP%3cvWj?IaEwO^l`c36K4xGATu~0 zrf??DG`x=#{(AvO0QF0;3!4AbHMR{N#A6Sc@YKdO`XG9C_Tp=0^f{nEZbG>y2|6L} z8~ZMUY8dllkZ=l%#2Z(h<@<}9KFD?ee@LAv@XRwfSI{#ZfodO?7Mzns8`GGrcn5S_Vz4hVX{PGyK;lZ|z#Q?(jpZvK@?!)tGoEv7GaF(%4 zxWPvO~E_M;a96Xd(h}^;Lbiyo_Wzl;}jR1#^#%swi-#jLsvduu6iyZo_#u~Yu zpLYFkkVnYrV6??oHTWN0Z7Mnv0(7s{MettXFAi}?Ow4Ce-ES=$b3KRlE8|{c;JSa_?Pw$TpL6{O>J0_v{$eo|3VC?=CtML{BYGjyp&`75 za5q*VDpcl%550*+cB22C zVV#Ctd|GBw9-ft39sU;4*_wCbQ`*smaYPC9mPh#)d04n;$~&A=P2< zHl)GtA+X&{jL~>e{1=#iZ!_M2pF-cFdj>+@2Jk}(R!fuS^BX2%E1w%A1EW;Y@{g37 z&bV`OY4K7jhwNGS3k`39=kAUT1A3;RCM|VX8o8oJbs?KN724dOhUIT5_<&N9zn>O3 zi?~GT$?$jamV=liUqwm#JW3?7xg}86>3pdb;M1dtRNcoB)Yo87+LTKm#Wti^6VFtp zN5B$Hb{`wS=NZi{2}_K<&a{#(fD_S>fCw_3?u5dI@hY*X;?o=yNapp@)ywW`bg zEyjmCBy4oUo{^ySzC(6~@D4jM`74}6me`CK>_Ae%0bkmR5q#06 z(Bq|k#o^0o3c9RxijT~EmEyuprH>H>_S28Sh|_$el3x|mh)!G~!MR#qFa0EGoEv#Xxj>)MR+(%h(Q*{l0e$cY=_}$O4qbNz|NEj4!VO0IwSqyUWR&w zp*ZtZ(5Y+CR4NPMXvehXFEU&`v$RfNSL)J+2fLCTR#al7#>D+TZFGLK@rff)ABt|mx;T$bA+zInAo}gxt$>Q^Kx z{(@vc0fQkc`KZC=87OfaiRa3wd zY3txQ{cK5h0AIk@bcW0NLGmB}+xGm7N=Z_#89>88`mPQ#J9?9VtyZ`pd(NC&9Lmt# z5m;!LIqv8{P&HNRje1`Q*{DOo5L@`st$9|Z%}6Jl8}LO+pmdF%K)j)5Zqj9fLDMrqitr+7?2V}g@WW56;mnE zMaFd@t|aXAxKngIzPFv&G_~vKF*`U`vuFnG63~7K`+IAH^06%ox9keMM}Bi8{O`%T zBSE36+U#>ef$P#Hb?#tw|}Nw#&t;F8mF_XfJVp&#{qs9Tn$p1IIDF z=Ks+3m0?wOO}K)fpfsBfNnsNrNH=U6q`OlZk#5*@my~o$gLId4cc*j+NH?6v@4L?R zzVMy%Z~xlsde)jXbI;5@_aYiH>3t=m)6rRPHQlS$ZyTor%S>wh0oL(~y|1_f*u7(M zHwEyM#wiSfri^am)gjwuHE1_GyXPAZyFntGpMQDGxbxj;1iLZg_dFg>wd!fvTK^bw z#0=N1hz8}6%%g2ptm9%89RoA-a2YqnhHfqMmK@@Bz%tQBy5)G?4t>}REdxGNvhud9 z;W%5wXa9TD0&t=$QV6P?zWBJudXsRao)^msNfRJqFrT`h>U#?baoHZzN{1g6)_7?@ zwgoBQ))(T%VKl8k8>Th2z4z#y>*5DL#mOb2)#5=JtgiN`YcL2LIWTN0EWbVlY-ZTMqG=kENlc}+HKf?NDP%OBBCu=NLMJkHU-|p~O)P$XI(WEoVAMJ(-%hnp;e=_^e#JIh`PJ zKPiyLGQ-x~*~busAbTKhn0ShU9y^m%4k$0ZUc2rUS{J`OKXLmVuRG~}qz$B%V$sHKeV~rvPDJ!NBFa7;`3K_Orq0ybC0ieYHb$MB zL@@%`8glC-9nre7nakCz!zC*m!^gQL8oLTC0iLXU8yk<(@`dcHMSA5_d;!UD{N!i@ zSWBp^m7YRPcg$jRd%3<^;YKGKPK7KzhHGHl$;6BnudsaCpvw(TWs)ckEE}nHQt8jy zsQ=usHffY6&Vo!AIwC=;Px_*(o0SgjJ6H_-KFr5YK-?eug-Wtd+&2ZYQ8fi9HeO*X zuEIoM=3K@_4!nA1N2CF{Gm=utcM+xGX$eg}Mr5ViFT`%Qc(OopkD=l#yDWQl`j-~dZ9MZ#)n*`g*{U(RXemgfs zHECm$(wn<*ZhW-b=g{GY71Ynndm{R4C#VmXBAsH7j|pHSU_T#&rKcAXc31N;Lj{k( zQm}Z-2#R4)5BAR5s6>$pfuf{v$*tCJ!-<*;>xF%lgC6|7^6g?3Q?T)0p_(#I&F>2{ ze6(e~DfC_-v3?25_SYza!ajTcDdw_(f**a8|Pgd9cktl#tRbPbrT4^G>8SG)L`!N$4 zN`M9gF-M&q@x~pOteM(Dwy0)P#;zxrD;XK4sjcOl2&jh|W}GX+VLvAjbCxH!^>@d` z+gresLSJpp%??zp$#PDm705Vqecfu#ndJF}Z`Fv&-=kx9{%Z zZQg(LoBz9y$v7}+>Iuda)eO9Y&?ZqNRkRqlZSKzR?5dQ3Omp0Z4SRMA?vonh6LNg3 zO|);u^4zO4YL%sgQaAUz*(6Q40J~#?Cb0)i2P5AN>`?*L)}HyyN28m7Nf=AF9$wzT zL>vh!!1l18A|lU+9z}(RF(X8!kE3&nWk}u&xG$n=4b7|hlfDN<1O(j0M3X&ND|Xz) z#4GdPn$lm2moYZMw6)(le^J#jma0}sV$BC@gYh?QH4kZ2w)pd*wA84ZZUUtubTf zDetllho~z5IRn1=%8$sLXtnfEw!7bZ=AB(No)3dMV_)WxqyF_4$=@Aap+o4AxSa5j z7CX&xyse1euY3k(BqMu3BkFy@qbXR?RcY2yIiv;O-XB6ZT(HB{HIX-7mrw7;+MZ-y zH@XKN_T*gQ5z3+Y?KV7+d(d!SzY-0>gmonS^F7Voy=mt1h5p*RkteY~nG5P<%)rP< z;bY-NyvOBHrJ!3$FBUK&n6;HHp5Q@xBkoijAEgq%2OJp3ST4Pbi0Nw?e2lD%4>%Q? zy?teporPX=^dIWKAFD^65+0z{GW_Q=tMu2#FA4htj)(}Jb|6TsHDIG(XP{8PDi5!C zgl~9d`&>uk)%jn8ku}MDlD3q{={ji_>?=!T?C1z^4di5g8rUjIMi=*Df; z&GJh1w$9vD)HyWKYH4ABT@5(YI;1MWB1pSk;%nGT9C%Vrc?N?%!sRg!W1mS{vBGxe zVq;K8D+CHqt;;wXTDJIx z0(T(3@^$%Ud+yaVK;k@S`C3xk_21;?Uo?c6C-Ghyx7xJrnW$4K1}(+G3ElT%QF6IR+0*gSjMS-*tB8k?vTUByv78@g<$eihbw_AC zaAidaMsC(w=4(5~OL|mw&UN=FG>BM7 z2Pge6!d^rciuY!9*m!j>_oeo_a#%jt2O}b%eWEd5jDX-femOfXpV&rmL?HauTElla z)fW8n?-fi-bLJ5Xd3xIkFe4d9D9s~_-QH#Bmi?$Umge+Jp0I&r5e>U;7VZahn`dY< ztowV|D6eUocG#9|_ye!Ue(a>99?Q%o2})K{SGCF0-!NpcmyCBR3%3bq{es|jH-SyXYk=dE4*-quTT9w zFTQ&!Fe$e6hX@P(#%e1--Msi*M5*pjG^Upqrp_tj+)>1gzi0OvxpO);=DoD(rIBHV zy<@Ou#}cY`Q@)Q694X+RmpT6M5UAW!YF`);UT7rFKDlZ`L0%RDd){|i>ilK0@T7e5 z1hwY;^kkc=9$S8WVP6R)bfiUUi4Zv)743M6$5pKIFUH%O-dJ*Uoi5wF*?%X0(XSF; zwdA0?IPKs|40j;2GIC)-h(-|561sNZukeqM+kXzNl>^-*1MPydi81ykVZUlm2q}q; zlwg~@UWX*RCWnq3KrO0MVr*tsR4H8_IyQv))uyR28+>&tIysgK^d@W)qvUeBMM&`L zwpauSV7q~tm1(|u`QO0+`<#C)R_$@%`5O*c;MA$aa4ORy4YzBvh?B}d=#mnMQ5Yaf z0>zC2ZrR0>6h}|f?Q#fW2={u1VBP&Lc++Ap^fFI;Ki4d;CO8zV{e7UezSQVBkjB8l z1~l^;kh8{EZ-=ml|6rwja%#!Q(4!YE(q^g%GlWvkQG(?5KMT;*-}mqiRIj&nzgSlJj4LEfF zkzb2Wu*5d6@C%b=rH^U^SbGeUHICxH&X-4CtMsk5xxk z#&7|lsaD_Pdxpjifn|Cgf@WQDb9Lb9u59+oXK0pe{*~{(>MmkuwQ?I33k6$pNqtqO zR1glGsh%yyT9sX2WNNNjMalUnYH6)1&f&wK^QPyiB-T2xX}>)N?a5hD+#9ytaSVAM zpB(groCFc=@ZiqB1@0%=3-xzW?=awJH8wg4<9%l4yzLOL#UzZwL|(3HGm%BRuL^<_ zSLinu=R>`AHMA!{SZYT8*G(^bLqP9?uVX*?7$a~$gMMzlNsP$+)0u(#hpiRk(H&_0 zhGvqH5l^e3Tez}iRpazSkve1KXX`~J&Sq6SQVG88CyBnGDI~nl&KXs)$!xD*IkLfj zzYVO6!%ZnXJ6Achf0K&}Rlop9p7T1kL{zM&@Puw(w!xzc|2&cLcPH8TV3`oX%yTr< zWBY{TI|2Qno4R4$mc-pX;34@Y5Gu~u*OF*dm+V{WHo5-q2|ehsdxSVgE^5PMLW6;4 zgwx5JhOQC@vq^nU;UULx&~c2Jn-Ee~lsm&d(;C4?!j*rWB7eH2U-8dlZv|>!3;>q8 z*4`v0o#e9jG)qfX+V(hfoTa__rl4R%B=07q8f$Jx$7N=o9zUfV!vM{AP|SK^Kb>fh zDsTS5T#B-m#QGKN9+kBJ%t{DE2AY`oc=OaSesHKF3Cz8ig$88_@xP!zoXSu}eRa;? zO;g%#p#DNrbWma#6MwWRl)u9`R<*(`H#mp=EzVCl7HlslUcAzF{rqLraiciiSLDz=Y}~&UjNo?c z`X;O#Vo_9W5IXi4fdFvX6%9d4_hKd2eAk!vN6)t2V1B@aH&Xj%Fk^SYr%DZ%Y@Z&) z{I~l0xmD?^X7)S0L1l+GF(UgpGWw161BcH!C>TZV%U^s%NcL`Ri^wc$Q=pUh_^6rl z4Axkfp9pP&OvW^Dk5anS2wTW-Fov2wDn+?0J%YY(1{##RSII_H&m+0UWm=$D%f%eb+(3^os8nFcXWvL}Ea z7sh`bkkHWBU&9^wXIs)>Hz!oq4vTPi%c+YV8H5KfLjEDEkZ^K4D*mh=-2X0lUWQ(p zJL_$js+5iEH#emOyPQU@7Mx|2QJ>aPgd*a0eIFem4t$MQPr5~_2$cX{ymN|)Qr+O^ z^ol`G+#WzGk?3GiVBZFb#_wKpC>)h6lHZTX4u@00Q}Rya!KEzaZOH2@mIN528%f0D zI#Mczg=;0vBQ5}nU4KL7bCrr2;Nx06JH}$3X1g%xJ#5!{FWr#H>G%_0h9U8T$;Qxn zTxW3D?RjRScCwZd=ubxWLemK#Dg!xVg-#6fnx&~Zn?p2*eTbn8X1_l?SkO$)XggWh zZ1b;(!SUWTd2UL8SucfS$n|m_>%TmMlBBa;9`%f4j7Dm1v)xtWWMMwXM?yxgndDH_ z7h}E5__8rrX#1hSMa?#8qc1i4%6XNX$;CNLsAg+`CY5P(PJ zxa7*$QqSMsZlH}?&HR78r}fw3`46wZ3NF*Xi*vlOa`3D|;<1zn1mS++B*ODS%q{)&MykFqR31GJruV!P2O3KVi z7PTmql)xiPTnR-yop)VSz`mq^Fr$#7I-z(u$8ZWpNDG`nAJ{3BkQF?;Q8wR>`&b;c zXM(&%TXU?T>y%VYa7RSQA^M>!7G7UMdMP9{+<@%`BR&e1K+RVGM5Wub*TmsTkfK!+v^V>`{QN!62VBac@0G0WGhl>-y^^FhO? z;|>%|FV7=pA|{m0xqU;dLlh$>Gq$nXEb-zsLQsHxxeaI(|44MdOynKjEDOY)zA_Lc z7XQkuP*!uV9$&{cxfK&mS}fhYt25xxW6if;_7SHZ=pJxjP>buTjcoEeYWOrF)1@Tw zW^8ogYUA4=w{wJ+Yq4Q!yvvTy%N`2Lkr# zyTu&9x?sd@DjkOAE8^wSFA_ZyPq->kUQ&W$Pz<;o)QN~6`VcfRLh1w+7jH18OHmHA zyx#C*P}1>MGATJ>crMLyE}dJspuJ0Lg>7?=(D2Cwa9z}?qQ*Guy# zdH|K9pjK(7O6yv0k}#hQs9z^*1|UUcA_1Qg-Lo)-visfF#4>8F$?i2m*wh3m?UVvx z){o;|W`E${%Sx1JYg_ul!)*gv^AX%mc-%pLm;|}2l3I^V+XAtY3E|mjrT&b1kYA{c zhM<@tovlIncW{i2z_^{f;ITgV*Jg53oy6RhVM?fkpOE*i`B!&wRrb_1FheHM>*^ld z{kg*HBzK05dOAnIn|q;{cQ{)7k&97i&3XF>xB%Im#cNppkmqH!*H(NYY$~rpLaV8% z9akD-@U%pozcomN2WMaY$nK%k*6t9ycQm18BCd*;rup^DTHKhMqm}TU!bZel#V5_a9I~))gs@ z`!snCT$Var-Y7Usm?Cd|Du){+Ov?efC=+l?4|A>z@0L8bniNVQkLkBSBos;i?Ik40 zJx0}0@skNuKQFi*cnZ-0(=nxTaC~MvPnm80_+r?N3kYC)BnoXvQe&`HBHu#BljFc93aN~A!aWu`lB-@-(ssUHTbOB0z*$o_z@kuNSdE(A zKf@XUAOxajayfg|(}gIZ(a*tl+^?QFzU;lWIylE{GdT@JH)9 zucd(`;C?Ti-kbt2L-mI|FHip{@XD8NWudEK;uJ9~Z|g>$HmNSLJB}lcO3oS!lvRlx z{IFz)k=5;9YTxhzu;l1x`fD+E`N&WrsAuDCx0dg_f2_H+g5pOR%H6BI#d~(Vs80gJ z6|uZR-fgo=x&0dxdqr*BMx=EknWQT5+dZ_M0dwl)X8E-*x|^9~zC;x6RrVDQ)_UNC z#e{)&kX67|XzY~G(v<(#M!`tJ&U;6~+UrdG1R+|!;LN=f>H=a-0DKBx_$noP9>ecg&e8YJAro_0q+1>@*eMS~gsJR%5A4sQq1|!Qrd$_`8 zfBz>-D>5vq)U&dq)>bu?N5wGqm#~y5bf|{J*DNXvcj%|O&i>M&t`XhI_3}=3GFF0A z6#iM(4Mw8U@zr^ptRyTdlx(aNYePk0r;TTD{?mIH+8QC#3k6#|=To%t1aQ*g&&s|? z)IW_ZU%fg78tt0eYMe*377+;1UeQtnK|$DO@R^ivIhWoF7{##l$LfvLg;*67`&Hc{ zbrF6nQK}NvBEpCNkRj}MU`1Os*Q{d*U6922BAiO{hXf9d0M+}O@S}_sT0u5a-bzNU zU3cv<%%CY5~T$%IM0gp<(f8Y6hKijb?R8+f|us;keXZ%n4NQMSWLfNHH#R^A3%oJ%uG7m=1)P7! zH&|*WasU7SEyjy4Cy0myz=V8b7ujanL3fWfex;(UX1U-oiHwzDSZKbL_7rw(eAQM@ zB(B6U`ShD3iOIw`(3j;1(=Ob@u?8-0gO|Psy@({N(%}j4PtKT97aje38>^s$AjNg_ z^ovm$9mWG!@sYJbTP)%NuDBhcMXd@M3lmzbar(J@HXDtll#l|3n+%PmiZ%WzYm&5> z@t^Hy@r;RR>?|-HUHOO#Zyw(V8Q8ejdZ-jHe!nQ7AOBJ7?ThI`dMsjwKA)SzoB*5M z_MI%K{>xc%sPHfp4b_yrdX0E5YJY*0`j%5)DrvmxR8%_r4-&LS5V&m0KPn#StCRdG zLhNBwg^NKN38`}Y!{2mDJkGQ3-AzeiQ;^+eB<@>3*?1PmVz;Yr76hW$VAR&EjGXy+ zLRiZ2(qVDIb}$VCa(3b?GCZLgg1TG^+Lby0x`Dt)9DS32G#`P+?g$$Pv)6EghPp%I zE!BO)tCvF(7>XNBl2A@!Tfh84oqBsfIIY11CaR87^xWKaCmOw$irbn#5N0;9@B zE6lM(|1P1lj26I*I|y$3b~*Wvb-(ymG!Zppu~`XB>H0L8lfDt8w#t)>g5skhHS@%n zW5$^TOTu-%lcL1Amh+4%p& zqQ50{s2_iyugbXIgsQlIa4u_tAQ?PV+E_D22%!#W0MpVbNU@;BehpF?HznKjOK&}e2Wv>0NrERq+}wPrr8?dnI@ap z(D$!-t1`+unM@=QpD)%ICv#&(RWVm>1ay@*6_dv@G6Y3cq7t2*)5JM*l$ctDxf?Ew z8T?k8ALcPV$g9g|Q^|z~YC`-L$uj90uZ=2T=jW>kwwu z#8hT!Euky5Dh-J!-$V}4>2q|!CKN({r{ z2$+)jLim>Mx8G@ZBvxHi;zSMg(yBpE4DO!8^l!TZG$#buz_5VyfyabCU``YPUDxu5 zdXOIRgjlbv+9wK8J%RVfWK^5RnqV;5lyck~OwDdsec#RGl1Tv2i+(&c*3`B>{oV+? zck~4d-`tb_11&&3HAMh?NPFxPZLnF)ND326+4mqbN0Ki;?AQ*nghfJg1GmK!M_DL^ zS0fr+c9W}$Z=EyATwe|Rrg{IoWJ`R=-1%2slW#!$IMJkIcxrtY!iX1eHGseGj_Z4r zbF|iB;KHU8fPwc~(BdZzg=)A1f;M(u=B$e&zg*i{CCl;q?$CU|`-_o6H0{rb7a?SF zM44MAtf;tQdW>I(LzAV!VR5=rwKhkzgt5goOA=_qK+yOtxZ#YZ9+!}YLcHL;=mZ-r zk^(HQXAOW9_oKi_RO2wxS?;>5CKXHdnt`9Hf}~Zqc~~@dU8%OPJu~Tzma!dI5git< z^_i$@<0cEo%kSvkt#ZJ3gnLJkJ^GGkfIi3AyX^O>5vq!F1qfsC17Z@P+wl~*?t}J4 zGNJ<pRbI%T!8y35x7MlOVY-5f{KC&{k$wQKVGsh{2kY`$N6;N?FsvJX|`z zto9E0zHyx^DNHBvg_p}w>`_}HB!>frYG?7pJtfmZ<6iSNp*ip$x0W$R4z-h|ODlj1 z&ym1*{=o@j0?t~WQr4;z&9(3ELwhFgCUf9|QiOSww9|g%HKtkyF;4YHG*@13H`s`B z*@(K}{6hKvp)+!rra^{5*|9eFfYWTzLa*jS4*R8d2l#jzk`ZV1HZg+}AWSV`rk`&< z26=6C&xn39k>c0`BZY+1j94zR?Q45+!4XFSUjU<5@klq7#F`k60uibd@OuKLtZ}P9qUJmUaUU&|Lwk>91bNS*`Gm?(!o> zw(r&gD;dDi5(hKy{R>h8KaC-}2rw>bDq=mzB~AxH%Q~dS{?s;FQGu!E?yjeRPN*(c<{+>F3=pS@(O4xPSLlp| zNS0P|HAe{U-os+QJo~Ow=q$Y!O-hN4hq5zRRtJi3PfsFJumk& zY$bSVPq|?--SgtwoAS5m7|-Ia%`PAn69=v}L@S5@3IR7whmNUxM{rO~Ow|XaG$-KgyMJK#-|Yhm>>D_%el?b28SlmI+(gtt)ML@Q zUFDe@!l8xnR7{!Db}`1?zl=6_n>>QCl}Z>lR8$OhIiiJGq7~LyFIKjzWY`89s-Hba ztAz)mHob1tt4C0ue?dZpGEe>Y6=DF}kwL(OF~uj)5NisC8fCaq5)6 zU)_oX1&v^#S5}UcTZ+(Wg7SWv9hBnZ?{zpGntzxBK{9&`c1^ z;^B7)<(VzG1yQB!Aeu-=vK;Ow?kUFRWhasylyKEE^p{5+DPAf_ek2`IZa#-om@8<&*1JK`P z(w|hc0ZE-xF4va3G`h^B&$lei1R;T4zrhQsZM05&Bh!1L5BUjKc&jQqCNyb-~Fi35=ne~rfXEkma zBKN-3c~`0mj0jrM+h(Kz=3vvWS!{kFRW*(8rmrA zH>;a}9)1PJmJidWrP}%(Zogmk*$?A{PWlrIKoaDDhUh#TuustmlZ##$-K*enr1LJM_3&U2W;W{2wkSVHE#7+-sz7&w2XZJADfW z7dVBRs`COfXfi>cf>8#QmI(W6+e>nzuyGwQsv2`3G8Mi(9DBCYyUY=j>O4~ygnRCm z7nM`l$WR6J%g)aa_nn=d_mjiYN@-7rvW8;#`vL~P1hOJEzm_cU;rUl=j^ATY%CYW_k|A695|P^;@uM=QG>roy1r6+Dv!~hAE~4!(#3-(z=Yaz`;x~ zC$m5hmI7^kN|u~XZ1PY22I)g#EN+I)7I}0nB^Rv=iT#0fprk|fCuI5lxYIB7e@0MN z65xv9GIjgl=e?p)@#Z6RV)5hPQ?&*4EEom_(;9oqgN;%}ZyJ~zeMUe{VI{xrZ%e|H zzXp@1ag`maHMrim;$?ts|F0H6+SE3WrR4x`5-(i1=n76t)J!1NyGM8FugiQ3MT6l) z|FXEj7-l?#b@(H>H4?#;k+DNyU_b$5Z@^-&P8jkoEthlZ10I+`-%=(&B6Grls}x?e zB%i0q+{lRMaBYY$nUiYNyEO{ovLE7kr*m~YLVlF}7??hTQjmztj*%>O9;DohV60zg zGIIubV`F}M%SZ|x!BgY%gM?cWNl@&zBt{yra0F<2DvrBQs`go~M}80Wn#z}s$3GJt zQ?;G=4gUM&l=8U`wR+^Zl73c5A5)tnNN-o=3L=S|z_&TLw}} z+z1#65VA_KFn%!OD%|u15soU?SZz>j3e`-x7318MX&vgX*D&KjP1Zdsy6|%W6T}#a z57557Zn@u#F_(SZ&jrQ?Fe3>~oJo=Hx>`JgvTyJSumw`S2nyzcmGeg}sXCLfNu75y zWBlWknl5FIl!R3I^E|j4^*{gmvEO5qtYc56W4`-~g(mBwtc2w)FgpQqJ1v+|v)D(O?(Hz_Li z$=i4w#wf<-i(+9-jej&m5Bu#64sH2vU{6W^yod9+ElhJEeb`%fWhH*WS@;C&2&Pl` ztoz9*tLpdQ#`xmm#?6p{j)gi-QQDysjm3)FK?RG5UrPUED1g-XWL!>Tj)}@lCXbdX z0;dS;o0s>d9d&CL<;f4Mtc>_? z;P%ryg+EPHe72SD^DW6&1Ji(ZBxgCR)z}pqIEcdI#S&AddN!`~_M!S`YDbBi!hHJG@Rn{&Rvq`$7q)Ogq z-C{C4?$s2lf9p1Z9H#FMMohoQ;UUmkWxl*uv+Ac5-_P}#mS+p5?v zPoX_x#9})!1 z%r-Ywr+cqcHC!Fs;Q^wAAnct&sk(k(*!@@-X33Lg3IOW`TFFSYO(ng~gtrJh#bJYx z+=VFp1i=1LW;=3zznNn4n+?98&XfFlUt03jV0Ij3HA2%LmZ$Av;N;5n)tT@vmEX zLpuJZf-8CdC1;p%h1cVEK3WKfokY+d@aI^pi061$pO)Lw83)?Orn(g=h;0hs1U{A4 z(Tb&9Cb%0vI2+jThVuI0PAOW( z(C|vEXJy;WNb>bQRrhrXea*V6L9ngB$_(IoQTgU$76QZ40?z)o%j=3^LO|la;=nEb zD$f#3!nh($&peL-M~^tARr!9TsauqerBm$98qw%j9EQ3mEyD$)a_K{B--R|^&vi=wfzi6_LSTl4MXFWG`Fk| z8l1F%?%k^F3d8*5HEXrrvWO{$nX(Dqo8L-LP2sP_?p~*nw6rnk7eGpH?@u1w@|*(fXNBy>Pf@|iGGqRA;`dPV8^ZzF$y zCA}tf>PtgmBsxlm6wN_z2)v@^*_?yjulkzHKkhB)gAt8Ohj|(7H~`C_mCvpG20v^t z2)X#KUFSX*(+c`j0T$4Nk@R-Szv|-q=-u&C5nDphjZ5zkKQUo7(Yy_vXffBeC(br= zCwNr+mzGqM3^plK^ zZ0e#TTpeFPO+o55zbV`DST6IsVo=okjG1kAaQ713-(Xr&0<-#qawTI^mSNS>0fxql zU*{8*36!O`=xIlNfkPs^j_JiJJ6c;D{!VCV|CEyiD9wh*;(lbA5`E>PQu^*A6;T@q zF>D~UgT>!6j}(4d)k86dJQZVYUxibJisMu?{xGUm0iB0+3c*E4NJv!6ka_Ru z)qjH+kd&0fG?1~L3KIr|J7|6re_V|KYJu94t@3RLBxizehcU6`U%8uQzRvMdwY4c( zRgebYH3lM&D2uv@T~lMftQ`fxV(f&qtJFXj8fY(5i|imiK3?U#L{BnY&iorcChP?T ziOSL5^4+FHEUi8S&$AyVP#Z@0$&#&Mh=8c)@*D|L1sWMyHa~43FUx3^hGI5}31r04 zD9k%Gv+l&b4_wwCVcGo?rws^H#A|hRoyhbCM_Y+1pahtZ()62+E%ksxYg&)0R!umEXurZ-z z?~bvy;nrWnhnMLMu_2_+a_dJvT;}S5r>VJ^?YBC3xog?A!@q(8cfU6Lu(?unRqBSf z+0g~-^O#ui49bOW(*DDv$gm3UWbpxmh_+W}9WjuQh>F4gm#o=va@CXqCN^eB;2%Wf zpkRBm_?|o@5#(;K2L*4CSW~#W$C>M5vm*!4kHLnfEdUEJc--{k@I4GNL{zcb1KkC( zKM`ksvd{kY)*d@KEH7Th^!%~FTmJoKbGlNcS9wj22q|m_lpI|E# z`ESvb3Jb%zB^oTI>dUzvbmLW7C=(j6$n2eGVE_dg6S&{tpGt)FD5*2DtACv%)?l#xS^3D^C{qXqcnCd6S0l<6~wa3B;F@ve~*lfpcbHHmf7mla#FMq0w}5`!sh% zmNN)zD9Sps3sc;tRLrPZscxvtUD9(2-*%R#_-$5V z%%Vx&EuoJg)Ov z#G^lC&*NC>44^6ju(7c}2)WsKEx{9h;xS)oD1<-3iy6~Co<~*+RIu31aE|};3)Lp! zU|xw4qzahc&NKiEO&mt^$UsYG3~aE#63XUsWyE`~Qp8kjWLh^Pnmp>hLIrE|LK9ow zt&G4>#SM$%!yG07e&a!|B6HW1na*dh)98^Rk?->k+ars9@KHCdoF|(LjAW9_%cD@U z?U{&0lL-qAX}}B0q&Rbof2*=$Xu&~GaUR7stYIs~WE?!Xww+%i2TN{C3~`DO{GBeU zKb)3r0%lawZrf!J%ir2Q*+u?V`OIc6@?zgmVVj+1*ZITgZ4fFw5eq$@I=`XdRAIG$ zrC>>BJtc&URa%p}hB7Eo>9Bk{S~956&%f*Dmy^=8)3B1;pj_H(*lw~v-yt}qSOk2R zSIdOvZzld_@_*YG)*^87^x686xFeD^Mv;s?=jj>E7)-;(PKg-pU)eA+a#3(H++KdD z;S66#L@rJ#JYB#KwSQ;+=@pWFX6#vo~=AZ6^?smRhe@iU^Z0r_a zo|heEt?dU&{3n$DgDQvo`PF=@5!dW%7z6q7!oV-(@$wD>0Nz=+J;z6)Oo4I#ZQR%3 zZN7GsB1koMEV`{y|4rZqcj2x*SA1TRQ=Nx<9qQm=_a{7H815xBiLlxU7+CBri*WrN zmH%X^R8pwR_~$QCY3G~WFzAUg{6-A`dZ2%=pk<|K;3Je;s z)vSzjR2Iq*y|Y7Ku-WzZl=EhgDy4{Ie6uU83|cJ}3@}&tv6*-+OdoP{*|vN{nR#)0 zqs#dymRl>sNl;9fOXHxM>H21kO1BH7jP$H4S)cm;VoGLuYh@V7Nlzd1{VO)juIs6* z#kp2dJg#%FgO!nmugK@q$PQH_(cujgXak1R_;91cA~0{tc2_BZvxf2yEdTFb3g{*` zis8@3PHu~ey_7`Z`6!q1o0MH7w;9rIU~WbI%5m?8Ig@<$eYS6xKYG+qAU~FljJ8Sm zyTQG>p_1BeijS+m77FU(ae0=`G-Id`7JOPiYITHlya49!yO-e<9+zl8P|A|&2EIo0 zjX|J|jAsD!)8GS=1)O~b?6!6ZbNacE1b%@g^ZM-zbPVX}?c&|G3y2&)3Y#C~5mBCn z&=?4Q)Pxt24AV{ptV3YsBj3rK`GT0mwy};UP!%}?=KUUb4N0uYVd-%UpBFTJ!|`sT zA|J!f+p*fJ&2r}8HH0{bHjdlt$b3S=W5fWYHEoq99l25$6ct@@U$0A{4(ojET^X3) zI=o34CW2+7v`%`C&4xjse#v*tL%_Bn^H_z#`T(v={52x%Hy_Z8fU-)Vna$s>YMHym zej@szVb%D3DP_D_QL7MmvfN{$kaNPqoxZW3G?UZXE)xmIU0Jqukd<(_`(0zc+M@x2 zkg%59S)Jut>Y)Gmnn3<!{I@+ZT z&=Cerdi-(6K|FLQ$@6iU6&Dx#PQzaldf;PAu~s7}{6kcbW%egOY&w_YC2D&zuSR^E zsB}JgLC=0p#r_F}9$_K8)sojgvky=Y07k|gJn^1PzHdqJckzF|KJ!aDD$>D6qf>#pf+c1qvdTPZ-_tL~ZFrC5&{UKk5uIJO-LUFj zTt`#n(bcG$eb!{W?t!&&+GQxX=KyDQ!w6DpiJcjN;|(W!^>nIL8?vJGDs(^TAqIh? zaNe20lkt@UA3W5CLX5dFg>B82ayV#V1TA&EY9dWdt(W854(VWQ<4BW{=#uN=f{*KX zIrTQ}MUuH=D4?bRS*d;lk=xe@LFNs&Nov8cd3>cSD9{dXHIR_-NcF7Y{fF6vCZ>K; z(NU1mVM{QbCVa29n~4`kkCN+s#Su_;UvJVMs5z9Ag5xe39*uv!9eTfg?5@y0&OK$j zn4cR*U>?c}$anl_!NvbBINpNtZ^b15Ujl6&eUeZwDdD+SlHR0*FOsW~zJ0g${7p^? zE&7@GVgB7ON>E52!}6NrhGOsqX&G6w9hMMjfXYN^NPI-a+C-5L`9qc z`3{7I4FhWRUsL*!ulKvTp2Y!jg(7w2-_l4=(nBS^DkX&D0$&?3OB z1ytP>ZvmZ`mwXRNI4$>!pRF1>Fdl8}-&PY$i0=rj>5DE&l^SpRLk|hm3qfL&dSaDq zZ;%jDZDaJB*|)Mjl>Fd0%uz+sEf>Djm_?R6PUnrLPQNvlCS&`9`WE6fAPAt1l zP;9~o6Y19Ji5X#ilVSvXL!5DCL!flGyE^1Uj>#VVPYh>oDjYt!z7)=lX zoE87dOV5jkg{xO(l(P4eVBXfkw_!H1Q zIfFa61};Zq#mq>&%bzbXdk^xsPu5HDT5n~c!V#Gf6nH^G-%9f~rh*4Pif%fYl;V}` z1?3yy{8lnTsYN64l`8@}^4;H%m8*@U-4gM$2-hj~A?FNr$`g*GV8pHAr z9{;B{Lj|+rQpF|9u?4=nuCTJMz6Q731`9jW{K`?VBJ!EwZ z-4bS8GQa4U>p*%a?IhV|qjxRV(S0t&k6%#bEdv%Y# z>?Es{9xp`;jGvkO8igfW3y}!40aH)(Y;5+1pj`hk;b#_l3E|$BiVQ9`nwyd zX_?m5mXPq`a(-C7K!o9>No7F7r*MYXXlD=3zaFAGG4tu;*r47mm{6*%YQZJTVS=ANRsu_f^Qxb|doCh7cPAnEi?@8jq?pKsd{q2WsG6)d?u& z>5#eH>43-|g}&Br7}R=^rM&B{IYRvX&yaUBJgOJ>^ulTvInY(#UHKKO$m(`ckZ`*v zRR)GjSp}8FgfFU^cDSjCL8Atx#^a{U@lJLk?h?)4St5X7+~GEwb@1ojN06~9{#N~- z!`4Og#6rd?(;XjJW)pmiWSQEiXvo}c6ZOSa%BKrd zRjT^}RcXTNK2YXT^dgoNHqPkqH9}p+%>NKikys)Sl30f_An%t0Du>q?qi-H|bG72R z9%1xn&<|8-pHHU8Uqh5t zVoDBuFWnm{DFdet`MxdM##VgAqERT_JC@gRnLD$QjxdTaM$n{8XF!gHuuri(#M}A? zd!CKIA+Ws2&Muw% z-=#XY*N!c9Ysv{vX6RPFq2ZzkoRi4#tkWv!_>f}k_Va15pZ*F5zpM{Dh?+!HMo}wH z<5Bc(bLOd<>SKu|dd@R-29np%7*|?L*^~_(KKlU7GJSV1JiIF;#(_gYW1o^~EXj$W zVFmO7Z%_Av<5?eVv2`k(yom)}n^S4&IC?bV$M3fGG?^3-)L5g0aswnqi0z3@Y$T<# zOV*yRg=`p#nUPGsY9&1tsPK-RufDFoKQb21$f>Sjg~|3uG*k6{n{OuT6b$8L zG(T5mnA9k59a*6>2r9$DKXCj%WW7~bTw4<@N=TD54vjSK?k>UIod7|D252C-ySpSf z3GNQT39iB23BjGNctCYYykQoB51Y&NQa7=@0D7z0EGCbzTttT{=zJ62___1(`W zI{o;s!Si#%UIG}=JtN6}-`tgJ+E268(CpB535#d;sjB9RC=Wfjs?HCE^(wNQe-Tqf zn#`J#p7B9HD?<9qU|c-A@7^acx^F!jhlG2PFa+lp)K04iDZH0~ZjY$jOcq+Mw#|H5 z`4;|jf)RRk=e3FN^~>*JvBH8#l^{3Syebm|t3+A3g<#Na7d&^#Us$}~#y(#hROcbR}I8-JI_ z{xFjFy#nWXa#7BbVD61q*>uzNk~sY-%@x#shg;r{XDUvPPUT40>?h0&pHzj7byzRLa z4_;(c%3kN(e}C?cxi3HmrIE;NEro2^s zE9M)0VCq*9^%R%G{IaO3;;!dC4p%7dxGHKd-UwUtb~#86V;xAJ9YGXNa2UthRmX3o zF2)c;qAd{jmJBw=WPK-W1LaL33y&xrDeszJUN(U1)*n^}wE6bx;a-PTU0)zgLMcl4x!AgX|Wl?rp)2%YMp`q2#lXpkj zfrwEwImx}i1Y}FIS@~NRjZ0suTKf~TzXyz(8n@ziW7qlEwecoot_mU!S}1Zje`%LF znn4@Gz~WNWPMH5?0HA)^-dZa3stBDD#Z^!9RL2Hd z#VDpTfOt%L+H=g9O3tUTOuX^10#dO`Db4leB{PKMXxCSG4QbLAx_oIbxzt4#Fj%J; z3`4-z=4s|qJl!Yfe&K2=M*yCm0vN~kp=tgy-U7R!zL%yX7^}13Rwd~#%@=7Iph}i_ z9Ei{eSq~?!;4ea0X!(aZ;T`nGa;jt#-}}k@3k@BS+SZnqmKiP=1VDb@h|gv>?YD-? zj`ApsCzO5vOG^h;68V zl(H>qjDG8Y=;@9$h>^t!~EcH(R zd^`!b!}db9aNJ?bD5`36c)T&{B)otWAq@4$RJEJI{JH@iZ0zV}X<*A{tbewh|u!{zTru$CJDpD?p#*lO&Wx6DB0Z-xF zyjLrHahUHkEn{Z2s5tuGJs=!_)TTf=TSa3|qv*E8yl*E^;}X$MSAL_UH^+16VePz6 z-97)Zm1bY0{XMLXEG@$H?4HTwry2=9allO>L$Ah)$s0&;e^v6Q(6e~=vBDcIowdLL zD-Bu#_8fT3%K~^@^fkHh1=*=WU80h6kPru|X#u=>eJ}mzHoH9}MZLK(+`Zkx&-$+W zQ%Z^O|3TH?Q2c@-?x`61nOH@LYfFT#x&1N&199jLNi7i*0HlUS$4Rxa@We;!lEW#c z$%^Yo5Uwyhx?+!S_)Fyho`V&)Hu!-tTk^&Qz*3|7V3-Q=xv@JdVxQen=RL$NlNS&3 zBP1i~AeDdx6TKNH>5eo)ZzfNz$ksI~Lc~aDUdFvk z^f3t^**95$hSS(>TGRGhChw`EkXW#2a%dKlEsgxTp$qYTV#R@AQr<=UDYA>ibq0uB z(xA5F+A=}et~|MLL}gyPwZ?*n3K9(B!9E=J>zx6OZ3R&qc)Oc!*RvU}4l+KxPJlW~bgYP!wTATniI%25EdZr(W zDzh*Qrn@9G;J-Ki=WNOUfNxa+vP_kAi=vWfQJ}Xbi8E-#Jv(ZqJIx>XST@oGH{Ufh zimOZ}w~UhKU}cQH&Ccjs*v(qf+uC8W9$_T_WHHbFS=-*TTl0eJoHM`il;()8m5 z@9A^J;SbwmTj0s}%ym!3&+B3aN2S)4S>Jnn8=W-nt0Ilx!p6`_;$xW+o%?f9p>r>{ zJ@q``RZar-xKL={wsMnMh_?;C-IIz#Qz7eEJ9-;NSgsiVV zWAAE56hsvgP1_sNO+G-k1BzFmT zN{77mm)M+4eq;dRF@Y2e@KM0Yb8(U9Di z5m@-67(5bez({)_pzT;mgjBKEv$$L>%DbUgrHYg;_kDtwSseni9ob}4Of99lcnz=F zirADQXWrilb#BN(6|{6aJ_KJq$0=CAkhBY-7`c#yg~86msgJrC5Cbqv~LgYoTv*{I@Rb{{2p9 zEhg9bdm$@Skk?tKPTF1B4|^bi=trOXCz6mz<7YYQ90)d#$CZ&(^oy^cWsE7oetky& zD0!}I!$+20b8(3(bYfBe+RgHSAw0%7(nBW6Zso`X_9~Fls*S!!@um!j`VDwy;jbzPvMZYX$ z(=LfOU^Eo}gEbL&q=b@PJh$!8gY_c>HTqn?If7d?$XWW=q(z^EePL7}{ zA3VSFqteVNc6@dV^l{kzjIu)Q-4T}m&LUp46qg{Td%IZ|j964$-%z$UD(H2*1%l6SNg?jCPV@h1)C zU>$H5T9rWvz4vf zz`|3o*2^k##CFl+(Om*Kt_z!&`V@g%&$~pXRQ>BY? z8yNL*T7w6c9!-h*Be(eT{3C?DH|~7miQ(`b7<^6mWyqA3@b#IP3sGoXHCi?@MHP`R z2L#OlVQE>QGG7ub0Jk(+Y}o;=a$$+8(>cmKyo#kb&*gVe({k=w2y5D)1Twyw-nh!A z&&fXyQE;)>{H4Chmlta$C?&Qg3MxW=0C$k{(rgiBRhDrK19VjP=yP5U2%7os3jt)I zAc1f52!>2x_!6q+Fhki(-Z=uILX_r9m_Oe*wvaj?yO}l9EOC1p8AuLoyKzV{GCrgN zj4o%QZBYp%kcKCn?apgzxMJIlFDu71e|sAnYqYX<28Y_q4fNiZYrSZgcTN@FeVrwR zB1ILeU7>>It-eEEr0k)%e)0P>uhzs84QS zq&!WuMW>Hgr%8=3RJquZ@^Aq1pPZ^qt}_cX@*>tH*u+jWw9ytET}+DA%%8amu0lO;SBm0tEJI?)!{T?)oCntxdCLj* zN-Wt;_zv;Z4s>aD&(t45@*4)5Ymc2_Q!p3W7-Qc-2HIzu%|vf(*8`)tnSWZZ^@36P zz*hf(RWts+2ImDZ=!g?RttIfPZ%Xwtw99SQ3!SG1&^tSS61$m1*lnI3B({bjS2I#D z_;m&$A?~d2brYQ0d0eJ#q2q<}UGS2boy?7T*#$l}Va(O&D2H$N!b6Mn4xhiRG?cNz zef!V#L5F2RF)s)lsgHlfZpQ8`8?PsrM^#AJ*_9^_m~Unw{e;RZ9zS-^C3Wva4d(f| zvW=3oljLJEv|d@0$_kz7}KfTYRe&_hmNf z4(rrWL5SvDZG9Ek9e{@Rrc4-R*qfHMi$Im)mmb#dzc(C5J(F@=Dmizzo@T1v4|aZC zk=1>D0;OM_OdNb}W}1p;j(2FAyQ4vZY~L(j1Fa@X^iaDRt2%=fx3VgH;jikZCzTC%2{X=)0Us2dxxpV@joy3IB`g8xiI+4NyD5`Kq z$odH%7)0|$#?yd{?i-48YtN0rTd$Rvquh~IzAU0GO14kIfC2LDbBLxS z<#&{XCT;3)AIt_MLP-n}Ham>Ttx)KK!a%r2W09uvpnI~W z{cwiXcP1}Fsi+&0Y|!9)$o%OfADJ}fDy0f@B((JSm}G~>eD6PXO5{d-%=qb?wBeXC zvOIN!SlW+Md}F5ZZeP0nuW#iiO&hU!1j8Z|i-AImvPnfFc$QWEuL^11 zIRI;xv1TU9S3K&UP_bWEN?!4aJ`nkPOKWmS>q!rJ014WQOX}M`0pB2+S*nUkL90%i zC-N}?G*REF!23Cbk#FOh zNf&u^g$=N*g#beZzwF#V77b~5jNJt_(|0!#m#Jdxl1yNhns21gaqzANAxN~Qxf;rL zSX?uk# zj8?=>#Hx1nJZOa>;;m;(z9&7Pq;maUepabUN*80_ARY%R0Ys+MIABIVIZA(ItP+og zZaC`*3ja1@J(HLbft%WHAG3ds#mH2VDAS?}3*xA=V{e~<$G=VBzaPrMe`-oicw9*N z&pIV+zu33BucTW6EqxEHSZD6<1dgvjaAZKk!Qu zQYtnFMzAKS778r}89I#ITXoJi_}lAQs?G%X60IB`|L|!biuiC!SEo8R)+K&H5)XB? zwI;f`FZ}_DtrK9Or2#`6e5N|!>{Te|)Vi!ua_ z&?F8g4m)PD9P#RE!}!ts>L%Z!%{h%mWMuc(sq+5CYI%DkQ;nvy@NDm*XVlMx&R}n5 zetE~BC(Gm)o|aEhc=pk*Dr3#BFZ*@ufTV00!=pCjhi#2l$DEW(|XH1i-cQ-6L$Ul<0=YB@reFN9v zGqSG7r)33Cl*$#(r_H`smm?OiiwP?$5$_{eFCmq&?v6Is8xq9yW!chDjJkyR*Z=_L=5Z3Ca{)pzNh?QeRp@xnjs!$ z*E?^6sD#nDKxdg^EC{LR!DqG;XG&kep6CUy?W7C7(nI{b-X#i_v1x%)0^S=p%y&mo zJzoo64lxq`BMvW34{RaHPYHutZ=XZa1S3!QOi4(xilpN?kW#p4PkEBEB+H`*q^l42 zfcPYbw7W?0rc-rTpqNq9Y5&}Tk(-v0T0Dit~)hW z)M`>QP=CDS(L&J8-}!dKIvx10IK2jAPtD|MxiS89GQqJUj-VCkoV*Y(Hw=u;d>?4Z zios!`feVLR>!n~(VcI_`%fJn5so%qV)J;Q5p1mbi7FPWZ)_rTk=l&L~QSYmk?)E7# z%3W=MONeDN-iJ^AgYlmcDc26rYKEh?GAvGzPX^NITUoGCV4wE+~CJIFN6j)%?c z&?_rmu0213tpD0W`zbg1#r~>hMPbbc#OzL_u--QpAGz|QZ4Q+Q1r)U6a$41b8UnEv?EcX7tR!51{J2UWTA6UyHbWW^jzbEELpG1!;2}c_F4Kkj@kbWT=J<7r`p@({vdTM#O8_PLuh;Bar$^2ZqKV z5;94uKlYdG>Lp7%gc6WSH~3clIU0OlNU4v>fjwK`3f2)d{RLm77}3u3bLK*o!37G1 zBKr(Hji~iK9EzBUUe?KN?E&@}V)A25=UsUIzUm>$=u@A$B5dtC_uUJ3k`-7l!p`+L zs#+WAlI&^d$a2*DB@f$=Rg@C^11D&Ox#+9%OA{s^hpbj-qVXac*+uZP>?WWmde8~c zWA3s01f`hfFPNWHg%A#2*l7C+usg4%ZTtH1zrlBNPAHbn@-+ za>5dW+BfRD>Bpr+IjgrdW-&!SYw5*sDY9#{E*$!Tdua;9glDUpf2!rswEe(q))l%x z$nn0t`t5whWc+98Wh|pa-{GTn^a!?i!-O|yI7OYhlPUA*^^rlnljAG$?f~s<``$VJ z87zb_q$4fkJt>_pz3H%rIi|IG;Ne<4-kD}56IY@iv@v~jGKnDJVkIwoK>Fh&yPDo$ z`VvE0oLj+X3EZ}9DgEne0fEcSaq<85Y(x8ivxUNIEx{5PK#r|1{?o(Bk19?oUC`t# zkK25`QG z(ef$?1VH0DO*-BRsxNq(am&B<=85eE==3wjFux<$)g9Yxlk{ZhkaJ6_E-u$8 z=HLwd(l+cNf|z_v@jTsuq`esK@hEy$mDdY)SqtQBrBd7Os+Y>l45=1Ov99)f=GKq2 zuP?&TV+*q&v(V7#WaMC_Z4?-_iZ8Z=^KtCCC>E{fT=oCX0)T<`=Vj_WLJLIZ`F6*u zoxaZR9ffKwr2?Tuf5ZuseB@WtQe^i*%QA($JyNeXBYiF4tDo1dWd(akmI;U~Wm3i| z0DZ4JWbr65UotBO;kbsAvDr4B79$}Xgcs#V7{7J&olen>UylqHK==@NxP|XkG?+to zw4xkwU7%S^)+uKPnk4Y_C2jo_Z|bq(tKB(?cr#`45X#8-ezs_0GyFaa;waw;Jf9K8 zsIDDSD+19xZzuS*uz2 zzV7QcQE$c&-C=!i-UMoMuEweCQi1e1zEndlB8+Rakadhd3+Dq!=v+))p~PdRe^~zW zMk&HYFy-$GzZM5c&3v2}-AP8oJf&@GxG)~W;UDbq-aK19mq~k1DH_=s6o}%rq%lb- zj{)!Svm5=pDr7c3B7%iM26sgY3#*yU;}^d-C%>nO8GEIISdp(T&B+KX{T8dYrx)k%$P%hKm2kHBf}EH zAB~P6Kh#A%Yj>^%+#gb3$|DoS*_s*w@iomjWR|YKS9nKjcId;=>%O!A3D`U)twUJ9 zTT=2|Lsk+ev_+xSEbrqw2--}P9#}RpJb*1f^N(mqN{fcs87eyYX@d;!ffB=~n!fTl z(y}E1DUMtIX`z~znXX^m^!=Oru4T=v?95SeE*59&o})FR8L9UpY8$JD(!@ z`_}dBZunhL?Yu~~cw38DYk+dx4~|vQhZG;4hOyN!HsSY{I0MVh`bcu6gy2?oa%yuo zhNW4PN6Kt3-hH!A6jJWkg0Ou5w$MAZ6vZFBq z*%!L_Hbz+t$+(Kq0u!@hrKl33Qw!aFeD;JfQcW;#uLv%!CPgM>=${lU>^q*OxKsNp z!*!T1CG7lA_daR7-DdAJ;`%b(<&z*O-w%m+!hB8O9|2HB%?_l=42`TV4)pKQMz7)} z^CTA|^icdj_gO1pDw46(IWiE9bcISfIR+8TszNbZcfb^v?2}f;*_p6ji{W~3pCRAW zn@bP{)7d-T;1=)g8H(QrBmIJcs!R063|yczRM7EgDtWx3uq|+3Cg06 zX*(NWa@CFY^$w)F%DCIuT*7&oo;ZgJ17Fih&bfsQ{TUE-%vJ8LjJdS4K!xIA&Itm& zBp!$SMNxTR3)$K!cA`MUNv^XkXRZ-j(tFARbKQLb2i9Iu{vxN`HVslC1D$#|gZ&?E z-XnsauC;-i2mm6t$H9L{FgG~n;0keHLVQg!N38XKPQ4f00N$h1T75pV(C<5ma<>0> zEB*aZ?VRcNuka7;{ltSZ)obs;E@Fr84Phn=@n) z%1zO*=9Co_IIn<&wMn901I`JMm)-pf?O=xEkbwA7oz5&fyMKlF1g_7wseiM3#v)@s zr%?~^{2F#@<<4V=$swu5dce4XZ)9Z7=E>i( zl2i4?7Q(XL9SX*?vhu&9=WurIUOG)q>Tw#8+HJYL#DCnv(3h_IxdPkSd#a_#{J7IR z8Q>G$P$iz5`;6iDZ4U;qn6^uVG}4SINg7F9SaM6^@H2#TX6p#&3KdctX0PdftyGko zdP^bLV6b)0gWFUAKmgMYsW{;e22DpJfm!TFRE7#q3@3Eg&9ekRwkloaxCYSlLW=#+ z7$iK$L)G4M{3zz-W*7Q$uxuqcKvWIbm}#A2zMXC)77hmjiUvvt-2B>d?vZvqj>SP0 z$@1h>w&rC{jKm#E9~^4J>T%IbF3hTvEt_+SCe4rP6E)hfpG2wR2xy1WeHnsh(;;)4 zKCnW-z$gq~I=gk3gSUeZs?;z^@y}7=91bky+irigkxIqGF`y|)cMux;LQzVxigOqe zNN|tcEUn%+cmN$%dcP+aX_M{ic^H*ZKcxhMK^4`PU(`r#r%pPGm3E>Z6Eu_>Hk~S|fypnb$XXCsN)B+{18N}nMvJ_uRRGda+YJq0UV zg1C)%X%#neS@Y4t$g0%D>Qveb9}OXzk9zbcTVI8~{ev2to%ag7TMy=V;5OWi5w29f z!hhB;J#O^^$)u4?AD`}A3D;o<$?+!xj;T#vfG#m=>NN18W&%Doeo*k%I z#uT(MMi^)ZQ3a1D^EuFlbVu$r6&ga+cu78PFh#XGyDa_^6G(?qS$Ayp4vd;y<)0Rl z$nb`%J&KQIM}7{YG$ctVgXhLsCUHyGVSOWSr^-Xn*lRw*zahoTjfl)+aMkG)rHIPG zKa91MaC*<}M-fFUOS9C{7mG=ydobn-k0UtCqQ(W`A1Tnl+;?F$(d|R2b(7xN^_d6a z7xe3{^@;!nAz8Vju7$F0Djamq2kJ79=cH>)KONwkZJDm~F}L zE(J!p9`*WMA6F=G8~98jXtck$+rI5GARun$)Ty!Vh_b?1?b6GT(gZ*{?4%jb)4<@9>*bWDR?!a{ zJ;eGE#W^~ubyy!>Sw;5fe$*QwbbEB(Xz<9e)*IgXI{*13n06WTP&p4xG^_BPMpfHC z+6KXRG1GzVS&J&Nv06x9d_s{z;1P4`d-ZZdff@Ue;)rSN)#fMyXj6ONSTszq?@Cy~ zG;9_ajHy+66)AD46q|`d#{(pSFlcS3`4ayU3?PY-5~5u@h!3!K`c=H%3j; zUyXt)MuTN*fbh9W`j^FW2eBce1#kpSTj|C++D(a*Wz?Z~B@dGGRaM%Lg3Z4z?!Ody zqI&MA{RBB9x1uKg+mZ@xPTE8R+GS0>ZlS1M0O1(P1)I?|r-z}lb4QUjAxa(26xu>) zmM{^5j^=&0Z5{ZHyIgeV7-_3x+ysWiI6poOFA~(GiKWyGcDV%5G!i(-9|^|I%Z}0b zb%l7IZmk_Hx{j4m$9#W6c#3mZXw?mj;=CdINA9=VI6LY98A$acW_bOa-tD6%DH196 zErA(7&#nG|`#xA1)#RKMOp0=St&D(>B1YFGfx&20I1M6;ANWjRK^KZ^DZ`bW9~hg= z#$E_f0CU=VQR+$`A3Hboo-%x-sWr|q3eGCCu;2f6>y@w+UM;yIvz$t{8S^}hz5-gk zdIgWf#D)axdt0WiQ~S5<7#;jZS1a^n3P)E9MZ zRJj+iECCp3LsBK2PDxa#UvnYP1Vn=M4@7VpHAj@tB-8f2PpkaMG(5P?P+zU_-FZJ4 zCQIg^VtBP$ws&NqHddB*(4bczqOeG1vorJcAE34iWw5U>@@l!DIqA$+NiuV;jY8u} zca+EHW)DH>mn)^Ud|=CEb!}3ph;z+J=0)g&XBov2{MFxcf|OIV;?zuWGfQE}j_Fb5hm^Yhcf~?07O-p5cMmAOECCxe4#!`8WabA@`f+ zv%OuTg6~?+T~^YLo_c%+10-gzn~f}WssgyW1%Q#FV z($dnTos-h)h0^n4<~xF%nxUB1Z-Z03#H)6*-S$4^DY6VN~d0y-b4BS#42$-g&fD+k9S$>r=veE^S zM|{KsL~B9W+dXW#Ky=s;$=V2V;-a}Ob_PsjFqLQ>ju}^6mlZ;s_8O#QQGH1L%p{x1 zCVmwy!_eF~^Ns}g>9%m)9iB8s=IilzELael6dgXSsO1)^U zkA^Lw^@^nbLo?K;TaC>IS5}D_BqkQWjSxKU{(BN*)z!+K_-qSgr4AsK=#Qu{0%keR zhBO9_s3Z^~gYc`^$(V!NG&%X>yTGU-CJ|BqVvh_H{8RrInISh!8T(*Nj`+e4WQ|VC zZDocyqh?_Ydm2Y(_-BMjdU6r^>$iLc4@Wy|i*tkEPO87pqT} z{w=ML8`NA#8YgNbq0VI8-}-5E)!c5zew>_|mNl2MSaR#c#NzAc1i9XXF1%@eIpe6- zNMi;#!*!hF8B+CTZtv|9)Ejz3pDyRmOP&u3`;`ncFP!UlDzu3pbwCkJaA%Ld_lbe1 zWQfTZalnV~$h7FBBCZ1UX}^M*7Xkz>B)=w8t!cY942dJLe-L^o9)Vf0$g)$?fG7th z=!RE_oHZ$khKCb^mj+itW{=yMqB!qWqpK(aqm0{i3X~6*T#qi!ydeWE^~)`aa>k6W z{UX3uAw+r{sBKWHMxun3wWg>eQZ&ORTZ~Y>3FO+nyNA;??%`J%GP2S<@3!| zvXz*7j(#Rq@qM#pBy%`42IV3&=#ym6a|j_vT*MB2y3!h_8rL+rCc$-EGX^=m|J1SE zujhrnQP?Qg1whj^XU`aK?1h$-;~z1K1|FO9yF#AVv-2%g!7GQ}(23HVy7#JL`UDo&~vSx~n=aa@W( zQT7FV4gj^8v**h-Bc0fxpgp@z7)in`b?q;mw$t~qw-Duf_uUjJ>Sb@yc_vsO{^Et# z?fgF}HMN&(!w$B0<2TU1_oZDD4O(+nMphM#Jso3$O3W`@EvsqeOc7RviPAfRb7rou zdohrAKF_tR6X6P_hFFM|D#x3E@yE2bEJP)f4{%H|c}?K$dPU{jWZK?qE~K1X%lT}5 z<}*y{EpChYnnG;2ZqiULG2`A)`1@PuAuZ%2p%VD7m+<>e7Q5#=@_{aJz;)aJAqcfw zG1Q(ujs)|KOQl#L$T&P-xBm8+~?hH^tC=OaKJE_WR^N#B6Nb7EY3Vyga-TV2KE*#xF8WD;To`GJ z{)Mt4h6bKY=XemOER8Ls2sE=htc)cqt$etvcde`*>EX$@@oicOTrXM4tcFU?XeU-) zW*xom2@=H~dYX&T%Q_X+)a|P0HSN2OeoMD(&!*%XS^}$YpWo##f^A(wp^TsU8YpjZ4!p{Y28*5YD~DI# zhA2#)V?G#wV*+tA0R_d7GfxAlbrxIXtw`2BAB9QWHF{?U4W4@bF-{JRuIGyvkZY zHhM6_Pu0$$OpHY@B445L?`}B#)p&|>V`ONy(-Rc;TVOo#as4o9#K+XVr`&<2S?14B zU+X#K)a?&-E_oFO|MnIH~Vul;N51G6+j{N|gM(GhJv9>J?9W_gz-N1NNj7;pEc`9PGH zT(PYqETy_MFqR4pA!u)CcOby&e3oeLL*C8c*zi2-cn4<)h={IOJQQK9!Snqf*VGJw zi*XIoky(KKuqv#?bj0OeOs(g8Y-7oc^*VHpXgS-vHFU1JzkC9xxVuln_gffk+ZDl^ zuX3b%rC$in{C)M-?}A#pVZGK;R~BYY2+^utD6@vpOS6CoNiFhY4-Oa-O>*U999&0C zLkB0 zG)8QjT2KFSq%s-8T}Y5baq`UEnq@Qf<_dU7Ydf5Lm&Vc7#KJIXMGFTe0I-M%%k6=P z#IrwmHq@(%IrHx=N*uAryf%%!dX{029 zrtb@)fA1GR8$)O?XS`QUa*_oS43fzZJ##I3uu$}xO){&tK*rYbx@hlu!zqHRHxaw_$NBK6zs}ioCyHK> zM2S-ja8gHTa#0x>wWvj59e6k8Q$#yO~S!F7qx(x-!9pO(Ic-?UVZL6Rp{!@2`@w;vbMiE>0|+c)HhD@K0vK?8aY44^%wK5O|;<#byVA2_kDYl%YLB z;r$+!$D{K39c#q)RY-_zr}S#h!GKEMR+;u?Rm+a%L)RX(D8(u8IFT{G{Y%Cg0T3+) zWib1)q)IVdFAll$Lo&P^n>v^l{x)qYwkd3yEe?x3b4R}I<)F|fcLGsA_E_z>PQO{3 z_@o0;!G>Qb3RB0)m6wa6m}>QICg0xIdUSqftpcDIpQMtXx@r!yrOCOzAHiuh=M&If z>Suw+xvg;<(tiMP7iW-$Xf!#yu5A{ebD-n}oD@Q@PPA-v!)ripP4wvMwaX_V)@7$N zDb#Dj7sO8;#!j{`CIG7lwYd0i?<$(CSQtQ080f((TN!(d?zB1@Yw58H~VN!_6 zBwcgF?{%FE0jqI*8rno@^tJo>C8qE8k(D=r71o>2lHqDV3xHyaCG+JEN^m%Gmd~yb7$UutHmkwiW z-iM71rNAewr$INypZ75@bP1Qul-qzs;%iL9tZ+r)pk+}g*UBXd(q;5(Qjloo`6pVR z+j$VZg}M=K_v>es1uM|2Bv@S*t)HPvr0w)>)2^WyATA1&!oc6kog&1{D9cKs(l;g1 zI7&JB6CVycC8B9V?)jMrJ!uNkZWerpRx30!zynlVmEUDqZfuJty1*?xxVSjJ3Y8 zLtAj7ZzC;RI+}*$r*Lz=_C2r1O3f$p8div72i3!5{*5|zUsnVq8hxT9`PbY>FRggPjqjpn=;Xi zq;}9)HL}IuXeIbdqasJ-hYA0kwN15`Z>G82a^Mc(p!b3+u^8Qtjm_3kcw9?(;t;r5 zuIMSF!YW{iI9XKZuX)>7j?Ak}Qt1gr&x4<2d&$voRtmFq-XFR89Bhn5zYOVIF~Yyg zvmkd1-{a`~9AV%AdK^2j!Zp1QNa>kj=;#zZBBrAU8ng-1tsY%pf(uDAVl{8eqirvX zC{^b&&TS2D4i66{h~%`^2d)%6ScSptzlmnj&jwc3Hg(7(D+UF6t=JF%iLx+;#zj0b zbx5!$Hv0vha`p9=|pGPTfnDFU@@;It2$sY?%iOio!T z&ufkfmO$*SkHt3Zamj{!?8VoPyq~tt9ZF7$9TbNPrf^qtc;CCJihZ2=eYz^LcVuoYIs!vrc{us$ZGq0-3JQ~DR6Ku{r^LD+L0J^WN3@}$^ zSJr)OAP0NljKx@8^tb0)DW+3h^0Z+29UaPL$kS zeqAfp6*28ST`{6dL34FnV#iw#BUg*#Fdh`qR=p^D?zZ~YN1)|*VC2vSYhsrexi|mi zO>x56w62%Cj%-v^Z|GNvJVcy_Fg#X+gIk)m<1L`y`akhNP>jtA$4??l43$XW?zhgv z4fMo5ITa3fNpl~_nKu3pTYe;j@1FJye^n*y^CoB!wfQG%m9V@2%Eb5xEr|9K+LXDd z82MM>smIy)=W!Rfpso6o=}%KW4sBLVFgAs7E{k37;uh zw$i#Vsv7iixc68LI=R&m`t~@u@^pCqo%ksV5x1#KyqW!Ha?Ey#t&(ZTQrxPMjDoQs zX}Ywma>0F*SS?+_E!|1%n7M>4e*}4f9WgOy0E9B3J+ih-yfw}spy~^@YoRGY9iI{H`_=|kAU9q|`yI9RzbBalY|#1>?yC*f%XNJ?e6q~$ zLA^hN{+%)*{B_QYTEs3{=~usz^hCJ8=%VhSgxI9u^Y56(A5Cm!a^R7;j@BeM6s9}q zKh$)`3&-@WgP`*fn`&H1i~7a-^aPoEfZR?RyjIi4+Yi!$k{AWr*)=L zguwrBr_-37iDPkfjWpMoJwEF#3FYi=5h8&P6(*E0B{$HQ-|DTGVDaII_m)_Lu z=Dk*l9`W#@v9q##ym{lY)SYx>U+6+>L{|tU#SSh`mljW&T79i+3if285AtyDw2JaZ zain0IlaY8IknS_P>n^!zR&e_Xe5LXFHPSB_zd=yLJP}7Rcd6%}Tl@mP14eqxXIJ!) z`dDe@3~}sQ3rF_(W!QzUG4gxN>0*JHs)aLAYfPl_4c-kfQF>g9F=B~$> z785i0!JYB*vW|$z^0RQ2&U<||>+BF&-Gi$|E(+4Xx{u^V)Z&}u!&@C)9WD^9Iy79P zb{Dm4q{NbLWVx>vdYJGT=k>)ECelZ|bj33S>#Z{cmXKq92cbq1t4MhZ=6^ss8_gGE zYG5R+WEj}}Vn5rp3WJ45=Gmtj#5j)d)a&e{`@+nnuN7 zD=Jg50Tm0q6gEh^WOZLI*W@cuut-ZChzXxkbMZo%C>xVs1Upa}$*1PIo+TjMSX z!6iVj;O-8MySux))30;Cy62GlYE@DFqpR4x*Yr8Zn2)Sc-&uD?^w0K$go3%bDeb;M ze1@!y>>4k2L0z&1ey~(z%#s@#lxb?4-N=8brkRu5p~TxSQ)_B@-AI4D{BQ*~^Sv}I zH(s=Pof$Soyk$#W%hD%hYd)WC?b;N=de7Q??9io@zxN=IjLG4Ngu|gINUEJQZ-p<5 zLSTIYK$zC4^1|CjtLtIj91lvmLY=23QG7$_{Y`R>|8Gtw88cTx;TKwgYe-G^-wn+( zDSn60S;*aj<^zF62xf_Ps>k0R=x)-Y7gwHFRlpa|=k&_+5hC&2pF~!})C8DX zsXjt72&KQy^tXIz6a@w4W;C&{{X^g5=)5C`?KUuj_`IY-?mzceUI?p4xaT1~$#mFQD~@uENX-hrTa}=|O(YN@NqET%j;fW5W z)oTdSmu@DD7@qZu~}5U*@mQbwvf!YZetDosHKm`*KETWyJEs z$J(aOC^G^nKQ+#Rn#NSPZ?eInlm_vkY6d^GoR=H1jxX3o(Np@)RgQhB!HeiG#JAon zwh*lS;_&$}Un?XXy31(TwiHoy^`;w>g4_5aAz8(@|Id#O zM!{>kWQHsA=N}*Bs~yLd9=eq-4y{l;!|+?9uj0w!py?nNxJgs+{Za~&oN```jW!*9 zCOjJ8#~h-0RcP0S298lb1oW;!=n zVo~dF%6zwX4!(o91(l_<^L^|(pCy3Wcz_&ur| zz~D0>u9nC2SrzaAStHo~QOW#;Z?)sxeDyJ9x$?rsb8>*V;nQGNwtF_N>?)y2GEXM@ zt@{?kDnICsKmoGxk=C!=UeCXqE&cuRQ2lOglRNI=#QyhJ;I_3Z#JvMC)_orH#qnQE zzD+}}S(3^%$^>>=r@dLHm3z-v>^r6zV?hBTg9rWrqzh(f2SpXo zV#g+Bh4{RH8dNUMMro^PNndrv!Vv?Jjeq2)tUb3ToI{IAMO|?v&b`4Tv$UF(J}$PP z@<(+&?@TK;WMj6M?+}d3zleH?TVzgQ!K2mS9o>qK(Rm0tcCPeb?FHy|(itYSpBG1v zkQEU0EYR7i6fTKcGML`VT$zM7$o}(0nDt#aMlA`~E4rr}$%Kj~3Pi7DoriJ_|H-Gu zch6tJNt=Y^*s{rpqlb%EVhK^VJ2&8?rTe+e)xrl1#ouB%Kf2-Ezi9=?j_$+4;rmpK^gz;U^AAIsNJ*jz+cs(|I;P6+rUZ#h@wvwfCyrMyV*6t9XUBqyo_o2*VSDjKXpf~^Sm zH$U2(s(L(X+Tu%W7&VDA`(TKpW$b>bD_lAzhcvU5n)nUG#9B;_<#ese9Q(1e{_bUf zBs(xcEu0_nJD7&~kTFh5_b+2WbiSz8j-#`AZjIbJ+xt9PLxkC(CSQN>1Yw=_ zWObu2|G7wB>N$tx#mXvZP5kh#DH!~`5a}?brs40~{4(*leE4R;_B*h^;H*GDy*=(tekjzZV_t? z_nC+%HBImLS%e2Wt@s3uVL7bb2Jx{O6j;2Lq9K_6>^Ge_mdB2dn{)@g{`tqcMq6?bjE$ zX+~O{c#&dA)ED8P6&Nx{Ir+0Z_91ZBNjDFzLef6`JmX$lqJ~SZX6a+E!WOYN7hhY& zaq9xdcLDCa$~pAI+!#o88K61t$WM>Kj|^oiEr47@8nb@;qv);;+wp%i*Ia}yGt=Vn|XYAF$zY{PRd3&NtJ zYQ*}qQ+&z$^WrDZOm49E#TBsz7KJ;ZP`!I3!q~M>z|^ zEOWW3y}>=ofkcy#sHTWi2fAJiuAKx^)P~5cz_>r?TTUUz&337yB%Ps6I%xP-)*Z(; z@vUP+F2_GhWl!oKNuYacauypPbJgjO17%*Fh(uaufe8O~YmnQPYj>4RN;KS3d><>P zHsD`VbUNT)8MHOll`WP@=VCMkBkg?~C~&uel3V+f!5hGO;9Qo$=Wx$4X=xt(Qp=aF z{VSu5gK7F!Iw)z~(E^0UhGQ;HYfEq780?&IEJq3(O>MkbNCA0(hekHvN<^Z>-L8L- z3#AEutXKNocH-@xK>MJ}-Km$_BF z%bI0?JkigE_$V&(jSgZSvg|V(EaGyf387a(H%b_mC7(^VjD7*T zBsQmYr=^y`wUxJdo=D6$$C!RbqkbOfUPwpW4$=`veYuEkbV4G!U4B8r=bp-YE&p$z z2Wi)`f%);FzlywmsuN6oNKI`N;ghNd;3I7jcS_9Ru#JlgaZ#yUIya#`6gBgT3iC^@ zaOfUY@aI&pYyLEmuG5vn<^j2XxupV{Y8%cu9N{n`k+?R4mwuCyKt^5%7>4?A4rL%J zxZE0tZ7>R%&Ek0mH5jJb)-J02i^PPCAtQEV1tMhj)ahv#6{4u)OfeW*@nB|Kzq6S0 zro(4DS)_vt9-@vDrzNAYJbtT&n@k)0MK+qzVGto);qFWy-z+Zw3d|f z?}*5ZDM#_E_3dljh|Lcu7blkI89OBl}HuLjqAg zOSXqNYc%JgrqG=Nuy{z>abhVc0>*LX5 zIdFq*)C)@R?G=_a9c(lD@M=KShy^LoX${M-Lxl?l37$N|TFy z2o#T|RMN&%!Q2R3P#&@njpOYO?#mX?FfGp$dzJv6Xj6q8gsPS3s^N8q>V!Wrf6~AG z2CXnuw3+Qaoh@THzg3sFcTc>O!Kpsq$_tsCTy+(+U+jPIDTGWVx2~cx{TF34NWefKWk0ig=L_>3C)E*_ z6xvq$C^eX|=0-&`Hj@Z;RDnpUg zv~WA6WVeDa-Xlqp(!1rL1W-8J<={E+;3GTR$Qc-AMO$n3qE0GyIj-_}OlMWgo#2QF z%$&Dse64YdD!&wQTDCibA~4ip8*4GR;o&;odP@e8Y?syjaypk7*AHbU2NP$9Jjy$l zx83AvqiZ!K9&OPae0F0K%{=ZOt1p|q7?AxiPw%@rjrqgVOLr3ZTjW`=`bqF$1nm9L z7q$D2jI|MMweNfe67>lCFh%XG|6=MH-TF_h1;UwD4-Gs&5d8=&MGLf8Ll%$B4cT=P zq11tdW7=6x!)9e3Jo#hqsvjkF*|Gzdu|rtbcl09Qq?kZe*#1FJOTv-T3fOYit=`8| z|_>#UXSih}o zFP!P1as^l4UK;^=A@}^O?1{B5qqr-vgXnct#SRJjl;1Q_XM*&=f0YMO|1RHy64OYW zg1`w1AIU?^WQ&X{=%Mjrw-chPx}h}MxMlB^eZM%u7*&T)m=B?o$_TV_|}pI)aF z#+{fW(N;S&o>Ky?TIaHBm;P1oPXs!BM>WXUvJfxt)}u)xDA-Gl8T&sCNr-QdStC7l zlXZx-{x$eitWO$S$ol+Mt5EQWQl~q#JM^L~9Xqb-Lg9C4?e9FjC z;cTDd%1{9lB@L_l%H#fC)P2A)mf(Ov&F++O*8u9Q{^&^*>f=bYo{P10dt%;W>s)RH zlp)SPlj-e|e%(;sG;g+Ywf5j_QyUr$iIrHWrNg=N^I}aYd8MN55Gf@uq<)q&jocbc z`3>C=ipYw0<_z;$WB$gd!GpuRReqdXDY|6Y44#IJ-a_CmM^2|Ut~PT6u8s{ybK0Ay z&wt&p$XS-kyjWh-tlLlK|CVe2`o(%-sAH$G#d8UZP#sS3Q23TI=IxwX1$pFg#|X&S zwjFJk!|#a7Z(7oXQ?BBY;=EeeT1zYDG3f-D+okSj%LFyudWqf93%TQ7!{#{hUtHCs z6zA7EQ#E*Z2PNmUCr=fS*8z)GdVpGl`G0C@Z-C0w7~duKpeZ?i6B*NOD7ZD)V6o09VJ-7(WSrJ-yn zfk5i0QI`!6iy!pF)gdVkVM!ZiK=*!*n2ZqfaaSC%Z2AzOt2T4?IEC#l=6Y+6$uo1- zWGw%WP6|RVbQyK}r8SMLk**5F;lFTkyx)*`_>*9<=56&T6Pc!c!#E!OrN)XXcsP&W z(J3sKHr8)^6MeB~-9M;zzC*9cbx7w~ZE8%eSj&nv=4>@M#|7}z+S0xL;+VMTDq|-o#f!4>IuIeSv_G-qAG!iNYiN|w>@ik&d?W=1Il_)2i~JsQw6djV zRZ3p7hW z1M?EKrS>=8bq@j3r;Ya`B|>$|B9ssa(B00#47Lb!{Qm*rh(fgyOCrCghgWNWUIUfy z+G)T;ATbqGJpm5a^_u87n-dand~`9_#zJlxS4aM`L=*kAXpTpa{)%)2=T5ajzu60| zU*Do*A|UXzTdnEX_cqZdLRVvEYf)xSdmX={gpMh2^dFETzdUpvZ1;6*bSa|KbLV3r zyf%*l9%Nsc+B%hlmb{*3fqfYAw5_~wvaNlX@Ij-W+U~*OK*RJ1Y^!3<0;_@M`zf-x z7u-o>jdaq22A;1XtzQD8aJ|v54Zc9KpTCOrzoTVFO^Dq!tz={iWe<{ks%_Tq z@T*C&cjgzUBhCm-he~jJ0`KDTrkDrBm*;J$yWS(>V5*Ahl%c%a*>#`vO`6a$G>xc% zAN-_Y57F_(sTQ*D`;#Wd8bX6oTkgq5P@%|B0w|m41Cg&wDEuS8qXHCodj5 zJhJ=~nE_#?LdPa~*?lg)l6>O9Z$^(wwxmt==!0Ti-qP8~VSaDxb^auT{B$85+weTO(sVPv)z2dX zJ{!aUW&Wy42w@3~ZKp?(qfnyguJIekz*@LWFQUr{?2-&U| zwriU1(CnRCp4|fmcmpIO~VaEg4+2o?#dzt*V=iDXrdHY!Aok7#nhueEqjeaXuohlCy#F zKmJy${k@!h|HqqSrvd-b8^3lPEP_Col2HhqH=YT;EI!E=J+2X%s!o6jdO|>xkeO(P z`bJpg&PlYBMO_XFm2iCQhBM3H##GGps97=+8-mwPJ{S5@MMf#osn~5lsn8)LbRi@2 zfNs8y9UEP`Kh1Blz28InLPz`hXHt}7!a8{N5c-apGaxPWj4%42%l{z=NQm9BN01FA z&uO=NuN2F#E?<1JKdP-KTF=cHs#m*JG=U(zgo`;J41QbMaC38`H$<=`(mY~ZOQ!7O z?)=Wgb*lip=iStTcC&6yzMYj#cb1MWHjUla8o+Q!nH5STbhqs|@E;|HTrUAqcLEYV z%o4M-(I=;KF#>o>ilNO9Vb%3IdSz?&cBaDfg+#XiNcjW(CjW^K5O1~oB z(BcIuQFwYwXxF>huZ~XgKoL6(OW=|7o_ETk3r(@civLozbN;EAesoJpZT1}_j)C?= zffinr{2k(X*N^&q6#SWs+14H5uRj7JNPbRH^Wy*;&9EM3HUf_41+9A=KAa&|(>zyKf61oF_5i}>A11iLd`&vq$d89ZgjCV~o2?>v66 zhb!gS?6yZR9v4l&`|Y4FrF$rCm;b}t>d5!Pnpfg0NtNA(Fr6SQqZQA^<;hdc^_AIzYk7%DUOht#kRe^0mkCILt+pFrT8wfN;t4L7Yr3M$<2uwuc2&vL6 zHnjlqb)Gj}xUcV3NP>dxdDB|?&0Z5RWRx;df@+y!11E>?ccA$w?nY4YvkRUTYItbx zoe7nJ4~H#Ci5}_;vuQIdYE(i<49lICS5IN-O;X~`I)u4GIBl>-+kN@4W{k+|nsozG zsy8qHhY$$zVliONW?x*g$UFUTg1;mE(Rc2a$4Ekfqh*Nv@>N3*UzFQ03@Mzv8a4AG zyXD6DRH?aiy4Nei>rFw4ynjgk)jn05frgM_y2`#eg=dL#8lUik4upZp9U6;IlS~Nw zb5MxWgC5Gonk0PtLdFJPVya%4TITiJg|M3Ixt;|W$EwC=TK*}kO^iiXpr^M&B*DUG zREg3~&$}R$sr<~rA%D7!E%JpoM@&|dD&(bJkg5sQV(5XhFmfYkq2^OvzQ(;2Y_An< zyD3`fPwiXtUKw-yo&++qhxQQB9vFjCIb?)?+%82tiac^2T74`<2L&$N`gkmQ!Mv+w z--2Q|3KlWwyT4>IS|~Eg$$EY|AxcjoUfqBu8WNGEr>`+t3~NW%_x}9um~a$wA+jWE zW7|dq#HlVRa>z7p9%LBI*@&cT{qL9|e0!_v0bm@py+p z|2d>uwc$}!t1!*3j=;cWlsXW<|6GNH6xY=gvSgE`k6%)-zf7i=6Cw1TDx@J%B2K6xec>U>GVe8j7q`B8Bw0VBl_`o+Vnu5QiQ}kj^@bo;tOfRsN52Mx{E2@*a|yr8XYoXFFc!cl<@IH`ny)yve zqnM!bl&Thy+|Qm`DfpmIgwlxk4A$i)OC|S-?cd|DW6FVAc0=U!TNEEhuq(XsFigu9S1xqmW+SvO+@GVzXo;5UY>AM#!A$ugq41!b? zP&0H-l=af5Z4s`_0MKwtmnm#CnM$AlO?`2j7fgl%_en&U zC#EOVk}A~b1CUOZtsWs+Cx|iV?Vtvqm!(RX$Z&d&v zmow!*MyS9XMtiT6XIp<}baG&YAUkU64F~c=xG(7824(046FVD3x zd%t46U#b^Y4vc~m4JAT(zxQf78Di*Xl_*%RbJ^wORYyfzOH7o0N(2<5t^=Me>gOnK z^EkHrq=FQdEv-`iDIIl&I7LN&!M2UHK-6^&byz2Mg`&Z0MXDJA~0GS%_0nM|I45Q0G)#ZV@;v zJjn{Ac2U`?FG6DJqq}T2JD6FSu;y9Y2&TOfm>>`m6pmV4Zh3b*HZ(nhc}VE$B*one zna*6|PowDswQqB|`Vgs^u8IGX(PQuv0pF3|-5@7oP{pCZ5Y@yCDbtsGW6dO%|5D%Z z3u($-v{KqRORU7$KPcend3cE^{;C*J$Nke`zI@2WmOQ>t#UL+v*mN>~=D1T%C?8M8 zGz^x;Rv3~+vv6$gcUgILeoIz@SU1a~Vs z$V698A4alFT-K9b)EN%mZWd*<=BM1r(g?XCgh-iEyid9D(b$&_q+fdzw=et9z z=KDT50S<_1pKHK$b2XTYEwBeSsASB=M0NkG9T3b8$}_8;-1|K$2{i#nnZ&P@cJ(_L zfVdGBrYDJtgsz_~Sg#e!LmN!sG%qW}+c1 zH!f*RDL90sZH}m_B9LlB!ZqG0Ih+?Px^tKvQsbQ;6vLEr|Mo9Us|eydR$I4}j{8`j zyj(#jXua8!^71Sjp`$5&pzp`uuh|0Lz$*D+!0I0znx>1t9g|}kR>3>1&T{YCLLiRT z$GSkF?703Od1xYIiMKPk4R2-MTf~du_~)>RHU4w-_LnZvMGQR?nUb=H3&-_s^<5pP zDMh;S!x*i(eo|tObS8A2&kt?1SpTY|77d1kM8mxe<$Ph>r^NTM+5UeP1TY=C=3;1Y zu^8ptzYSF`7|t>|w0_zSq*bkN@e(o8&Yjqz`KU$Kz!)MLVY)2|Aw_hG^6XXK{b1|Q zGt%tX3Hl#Q=+bhg{$^QV?!V2K)DORq5LeC=eZ**IVbu#_vu-ry1PhY>5C`Oa;*OBL zF_3aYv#J%)D`zj7bsh|J)!Qn#!{Ua&?{xjvr%_QObDwxRC)14)bxq&)Sh1R7TWhtV z&m=@^U0-lMn3?_;kI-}@;@JAH&@f=lt%5%f?fmhFkQw3VP0HCA>wO4AaF{GdL2kVi zH^5?5I4RJ%>A^DPknO|yIm>0y{_+qi#2{*dHvA=mK=zOX&wEgQlj9Hy{cXO~TJT|M zrl|RBbJIK9qsVef4paQLHI0YcE^aOPHFNw+aEE@bnC+`4NR@vNz(fj@sQa4aRn8Xn zOVs856d)1jm!-&=$mu0qgRn?wtj|XD!*I$trlZoC?-GeGQ=xVGTBqygTpwRKP!2tJ zXotCs?iQ|_8;|c~0nt>TpKSrb3m!j(PVqfh91N~bCvLhTzjBqCyBkUe`|N5K{dnG$ zxXHm-1Gke05pn$IVT>*j_3rkA^qi2P7?iqywjJlx)2~ZX1sq_ADd5IhHOzv2iUm!a zlz^Q*SSakqov!AAJL{VnU1*#^wjB7h@l`v83oy>At)-=Iy3gY?ULi73~Zs6NK{r)(IvvTxc(CTFUJqVC*xU*`H6jKV@FfU(6!r9j}-VgvLdvf;frG$|0XU<>pKt}&0f5XdtL#*kvVPzds|7k}_ zNezG1MyU9Oy|6uUJLeN1v1LQS>FloKbS-V*Pcv`+vs&6AY3mXtxICkFD}}k2(Y2(Z ztVw!In-WSN8}MjlRQGA_3?c7n0#I_c+cky3pVscXSoX+*PTu>fLsC8u>vMrFwoj)@ z3bG1#3bK+dCY?CPf|3s(`^!}fv)a`gb$pTq?(ZZt zb{4{s$|Z!x7y9LDt?tU}gFrdU^N^AN3W(s)ZWi{Aa3ZMVHlRfq6?*Mpbn z++ha(fVbJfv`BjOq2>1S{BQr0bOKo@&Sq4U=H$*PVBxUgn=KLp!d;XDBV3mkek0%` zD99p0iLW@WQ*Qj`yHXO7tf6A{;*>z?+aBtPZ6%Xdygf5vkU7tWjUus;2=+Rt+S6#A zDx&?xmur34B~|xfZj4yfWqqB#=$WqLsFxBV@=fh9QZX>G+W%37auDp5HR|yk;`kb5 zf8}wywPNW}>j9ZjFqf)aFcmDLiP0O(Kyidkq*&SN-u3qHRBy~J6*lqY&HooUW{;`a!=%jzBW!B(vGfmgs zcBVvkzK_BPz-iGfM0PiEBF_8HlFpc7_U$YyOzK-T_g!(4??G%H9`57z$7WMQ7odI{ zxfV+Q>G0g(I%3=u$;n}2%9|M5RYatntC$?=AMVNZsk< zTMNE#ll3RxT4;~Gy;;Sw8His><9j&S)ld2D{zT%1 zNh-z%@E+sYv&Zq%wg>8SUNxVY>85Wf*ze+9dJ^9@w2-^79&pv`D)n-g9zAhKP6h76 ztCL|3w*o#3Xv%E6jR^PU#l9#Fou7Q)YbzlF3)9ig%cHG4QPZ%FigJU~jKAJc!u&Z{ zVrlo%2lm3+7AM4<*XGAy6RU(i=wjHoXNv5!Nhg&iihr59s6F)t0YCckB%oR**?C2> zBbMJk<xNf&yw`5r4^Z!0VVLNt7dyLP`X1H+K z#WNvZReyW!n-X5cIg&A6C{I`)`JJdpqsRbx)x71({PMwyYmx|?O<3Y%N&a`%ii?JJ zIW)mDy$GEmINAY)WRN1GT_c??@YL%#y$RrRPprcG0{iltkJs&S$o265$!QPrS#;E8 zX;i-3&WE9V=-20#>1@)~*X6bB3o7_r>=S2{cZN^g8#>X-SC&Cl1?N@Jt&{`50T zO>d7_k{%il+u@~o$<|`6;Fp_$9H%2|E%?T&I0W>}0FSE?=^-`|y*V@(>?&IL`zG!5 ze$&$STkw&g=zWZ{+XON3t|JfG<>Y4fjXdL75xVcQyb*#UquoE}tdHr;Rcy40$I{V{ z6wwA}3dN^oFP{zy>9DU!U?P^IY9tkB#yy9k@ha%ZRmE?iw{{^q3`z|k%6tqvmJ!xz z*dgi~V6y2@8ZEL!POR}h-=n|;MT&ee?K>3De& z&}Gx^fzY#HYSG2tgTQgc3!jQkrec(m_*s|e^N+bu2``t*3n{f@7u$US(I8~u>(NEG z@5ID7&z^?h%X~ZUGy)YkA9FaL^NyxAY{xgRujlXQm^x^&hxt`4yLq&+4}Jmqsc)66 zOg9LV)>JQyGB{FUc#c8Zr#^E*QL?rbHnTgDrZx!VG?c}yz3#4{1q`SO<3Oe?#2@l@ zSKpdSznBM52f6ErWY%?99p}$wEP+6&H-K*$8`6#@J{7oY`oz0cyav|F=!^e~Y|)=L zsYK*^%S1=WLrh-2^cFUlUo_USRM)GaFd_8K#6%Shu{g#611aUq;Xp5fZ#$iVFD7g9 zos(uV=N=lST=agtYJz;{2}GaCgjh^%{wyJnKFMpYJ^J1xx*9%gWD19A-%?~Qf#6T4 z?i{==_P*sq1JvPsUS8N%e>;6({r8n*Mj$tX*AZNOM|~ywK>;@~bBt%1QRU`hgg}c5H}B z=NGpljEXjU-gZ5$UaH7D481mZe?J?1gL~OreYsvhBj{ZrOKOl^NjifMq~#fD;!SWv zg&p643BER}YA2cJJ`a|9Ld+vYt)-e9@8bw%GDt;lIX}Ny1fZ~>NR(4o91)W~?nr|U zBIr^H<6>sHJS=hVcEnyl%dV{t$8@+iKj!E7!3)>&`dV~zDr&$?@Xm4*WcS$S|4+1g z4S{V%V&eB_Ip|jC?Wu^@6E7z$-bv;*=yD0l$cLAmnWzZm3vL)0$rbMSAZs*kS*Gk! zP?tgO-kGW4&3MKU%q;i#j4>fc@%?X3_Nd}ak|B=Pw^X)Y_7|_5RLY^Bs-p9+60uaw zOat1k-4%ko{bx^*?lCpj=-OWHm#bdLcVZ~gusi=1uEKU0+`DtOm-Q3bYdZQPbT@z> zCffm2RmFR7J1cN&=9{N!D)Fi7S3O>gW)wB+`Je4RDSYBOTBNB=K3&oPPMr9tAM?x% z;stMJ>YgYM-73c+3l>^D?1n1_v0ZujkewGG_EzH&zgz|4De5|er&Y|ovuDqd9(g{l z<*fQR-Co{~`pUa2Z;RRf>$Mp#^PO$#t&D|Gtt8T_}L%)Ace!O+$qX-4$n>*rY_+m4Jo$dS{iU+%<1_XMt?{O+X!z zmy~n5uAwd(Z8XGUuQa~Tb0>w@Fen579xF*QVh7QWd|M!^2@u(^)9gD7_RhS z&hKa1!etC({uVxnin^quSGh&9qXHk{u60Sd-+~}U;onnM2W@TnWO)4n6=12!?92bbnX)>WBJf*mC%rf@Y(@I6z{DIzIqCN+`BKhcl%9Zx~W7~r$)(C zg{TNF7>yO=v94dW7lhu<+iADd%svOK8@rmeTxNmn%toOyxpyATI<4KfV~jv9ZlGS} z>*fH{7%~3KL>nR6gz89aLzB7Pj_#c+l{V;@XBBm_Z4gMv@P20*@@HmJ?2#@&1BkB) zCF;1jdkVgQs~}DJzixH)BM^K_4pBGo)1BC|i04i5EtXqW46YCiA(siWv@;J3Kxz|# zNt(183OZ&uR<7m-9l1Ri$cs49Tkpx=3_P1zUc6>A0Hj_a4kD!DFSKi;Matye31oL! z07PQqlPcrlUg}0aVUeP9SIqT~+!bp1iOJvZB(|N?Pr5k~6F(shxVF8pk$tWBpqdX| zRt0_PbGEV^<8%F^DaND1E4_kb^Ng#30vl=#g`xsjPXS0lC_F-^^Qd06#s`%2f5a&@gBz>fayd{x;mZ)80_ z=2VI|--AHiWElRb@2n3uccDKUyT#72C2_f%LLzIi$HbTmHYT!V5WKJd#rDDy|FPzp z=9&+j=)tD6`|v92S|%~-HcO5oCN+G-JM-Q!ahUr!AS`C)VF?fRHc5_;ZW<~cA~*M z1V$IXPMe?kGSv0kdmNHyqp`6$4Wlljhc#xyEL<1g+d$ApujJwwgvJ&iU|0QujdN^V z92I#eqrgkIhpVwy>(eV$EVkUgbp`kW*LqpwdU974-#bM%4FZ8LR$o+N3VG=gG=ROj zK%F$7kG?4vuBXpiC-|prp1k~Ir^$kG>BwpSIl>#r&a1csy6DPE769 zb*mirRnyi*>9qSwMiJlZgIc{o{KSUM}Zj%Ei$ zXtz{ji?Z!Fvw=F;u97`hvkdpm6|-Mb`=?V}#m?xM--ShB)rb8CTq$gz#?g1_JD?6z z9w))-d84d<301q^u>R?G@XIDvdNp80uEE-cd$yIsKLepszZK3Q7+?g~dSm#sPg=H4 zuK3t#iWmrqBqGX0GO~q(Q_=`Nz=_JkRfY-|!F@+XTj@EMHN4Ad0vEr0yue?12~d%+ zXa85dAYoiN@I2zy$Nd)lnoW=V#Sy9H;WomF@gji_&5cEj_^mY>L0xz)0E;<`58+7y z49_-X4IfIr@I7GknH0P)MT|b&Pf&b~m~144kok3=2fHB)8b4vQJv80Juevf39ARgI zl@~w}+>(wO)k2h+d47A4>GO05eq3E{d4x(0D610*hqxJFR@p5T|4ODAT;(37Hy*YR zOvetW>H5?dyodgBcB0aH7jyDb{!rC_&OLe__V8CH|MyI4tp%Wq)j!^Qw$(olKc22W zAGKu8n#r{M(Q+I$drxzz;Cq{|^$@Th1w&nYxEwf4&vrK%gYfvqQvYN%!9ENZJC&HW zT2we!Hx+4Oz*^>ReVLN`A_evP*ICW;qG5~!}*IXIM!7U+MQ+VQfcPne=HxR;^l0+#9OXjgbzG zbcu*z_5c#yVyIkQjpxTizVLaAiaqTG2)%qfEEBtn@@Qd_JY|0)O+0$(-%LnsE-*J@ zoBUNi7k^rgZk8Z{!f$Wdscgpy!MoF7mt&6fw`My<5?PB0NzU$H`@~69y zGM@3-R!CaMepQnJ-h4tWevdcD%+JhzdMh!SS!5wzG`){*RkeBi&@{^CH0oAkP~ZIF z)bj?#o^VOh$WS!J4DVAh#db;h0ji1IrGNMzUk#vAia?)r9$(H&l%#xs?h;EEMcQ7* zv~R-wUXJ;NO`8QB^=NtJ@|nJUQwEWSs{m0z#471%QbKCf-Ksb7I<*7QROi~CAjNmx zHi+=FLi53nA&dKZWl`9A@Qf&Y2Bpf6$k`_*dM(Pu9fH z^_nW#%DRFN^>FR19awTh;LuV^NCR@^tedEdH`6uA&u^zZByeQgYUcY=a&+lpe}us| z{Fz}7WDFGoVG?qXBu}nxT6~=?I2mA3ReI~W!Y;7b8OvY6iK#N*Jz7c)np4O?a=CtA zE5(BWKVS8bd~F=?M^5sU_G^8Js;Cnb%)2u$CAd5G>e-lV_Sd_66bPJc zxx&xnZ@$Kz&#?M(Rm}w0SUUWY)&SVVveieVz?MXpFHgCzj}D+GQ7w$9@tCmJ4NsA| z;}Af!6*E4&Cjj(Y?WgkDe^y4v zA>IAS;^rbrWpEOmXtLUHQOjt)^Tf$P=zi*s!GjRI_WGxh6jO_N-Nv>HJ>#j^WG4C~ zbkw*swETw*sn&0;2Q?c3L(jaf4P`zh#bA z|MEBQUtFCDTXFo<`}t}MSB>wkJLVJ-;8Aa%#(yM4ak-cRS9_oR=?kbmXNd;pEVh?< zqM1F`+)p>6O}W|){*=G{O4&I%YRG|$pE1TUlG$tBE#tH!XnnwYFod^3HpChPnBMtx z;9Vkllp;||{zu5G+AgmS=l!(QB@U zxPV1>|M{;?v(L>ZwG~XorJj$Oj(FB~o@C_to`?u!8QlaUx@0?HA@z>l6j9G}I-`!E zcx_EF`Yx+0E&?kChU?;Oiz^#rG2}6knH)(i9UY@7d|UUK%8Wmi5NHn%ld_oBk%!zy z00&Km-li=_ps9HEITy=@#q(mM-AI~sgzemE;q0qDo*h4O9ex;vqZXIYIuk@a-sH0- z-Vh#&_;lFAj#9HfuQ~c`j)3o`xi} z2lUX(zffzqgV^0ee|x(#2S?wQJSf3mQrD2@{^qdH@x8mxtj|MUU-fok z+io_ilU1 z3<=_D^mna@uL3etC+0o_438z(_sT~`?T%eQQr{J}y<$hVjKn$w^SY(m>`RQ{jbZVR zjtQ*E&aobcOoJxrwozY(;ZrZnrH3ZAD#MRD77FO6+8;JlZH9Su4l zjK=V(vT`Pw?$*?NqDPIIywO%Ca}yJ$hZXZi#Up|eTy#lRxRl%XV%LmN@ZrQK{nO4c zY~~ZjZFNR2^Mt;ljO_?vK7}v9jzh~b8`FU9Ha#%v_WzWJRJ4HJ>u1@MOi8mTA@Y3s zN7Ge(U$cInHn`O^PE!pcYoW3Q^CsIO{w6{*cB~rvMDXV;Mc&t{CIntSqDY&tTOMXL zgZD^Ga`kE_C~RT}W5)j<0GdE$zdZ~dakMTA^h_#NJ$C--2`zgr1iyVvfhj16expH9P79Z~STH4~)E_3>Qj6E%V#+jR6kcEk^r9J`85q|q{zQ);a z_{c8L)x;B=`Jv4^wn7d>g4pdnoVk6sublT>kEVzXv#gzw?LFhnjfKyWTb=c(<@Nm8 zBG;z-tG&;mbGJ|1%$RxC4OcoJJ6=K^Qg{5AC0wO0NAW+;f6T&FBMmvU&&xRmi#(6a zV{czEnQPP6f98HZD4g~O4|8zDP`TE_b8{NuV{-JYeFIAv8rDQy<^^jtKtIewP0;S= zwrzk3>v<4J6XSBZ25k$dTk>%2BR&1+sRDd<=6AmO&t6-~`N{Z719;s@ztUunvr~bW zRDro+^1_3geG$yUq=jb1zzsmHV6`yaTX?cUmoAuPRwj~di=S3yq`duf0UZNWUf}S< z7ywueHZ;Rnk1n{xI2xOV#(MLH1-|I<$-_7ho;OQ%k)@BGY#9%iZ;pHeV*7XmSIE>) zW9AZXzCCvgqqiS(fN<{N4lg-MTL*M`Ak4%1SgQV|OC0t9j~}4jthqn7kDQCdJ^pq( ztQ`mb_|4Dc<=DeR9vM3i?C`bonJY5mcRl_bUoh^GO>@n5?&KaW`q58~;jk{gbN(YA zFU61|@4~K!o*(7n%6;Xxd9KswLY9~#C$5}VkA*A;_JJ?tZi(MQ!xA358*vDDCYD=BfMs4@gY!y?UgjtAS(1Tp73cK0!379GA};E+e=_?fZw z`FW3BZkGX#cPvt4+gv&BKmX%b&YW8l+~x8Fgy?S$oxoNa7ohV zf3Ac3v4EoySI#BAGZ$Bba{l6{ExVoufd>bMaq`)d6(_3l87^dRFB=p9-16a|ROepX zaN1hJcfTWdxC^x7NUmEj=g&}5k*ZDS;SDNf`b}I0a zD!>iIzF>O+-4?NJ{aH&-Ep{weEKFI1R(LFg`-)YHg}sr>2GZgIBg^$CDLc1Uz^r{N zxU{QpggjWl>$rj)Ttu-4lQDc(8~)CBWP@wx7*w-7vhRu9;k~b{YEU?9a+Q#ubPBq7P=cjZbb=H2Ey}r8aQHCVY`4_C21ZORzV+Z4jn@ z2EY*>kCS!$PcEUH3}frwNc)(WZ8iSKuVc0!a>YOWoTp)o@8O;Eog2~iG*FH1=Mh%l zm<~L3MZ$Q04oCNJ9>WpaUE=4zG#lr{zhiBGPqG9)S5x<;cwmt8nwWED)9)t1T(3DQ zm1?E8)!=rP`*9^+P`kix|NixR|Ky*)mb6~^ z#>V;guCL`hAE$3%1z4PDS=25m)?&%RvKBXR^+nt9j3v|23!aCy@YP0zv?B51o3(Lq zluoiJnnz6S{B1TomYxBMEarPW=vYt}$-Tvq8w2$CXS}!MVt#AnZQ0ls&E`Tt=VKdq zvncPlxEnvl=jgbv3wmNqZ$E`8qsU_aP#?@5-z`qDc5vW{W4B|R2eyuLSO$BQjoddm z(TXdRn|{@;oZu(5O8k~xV;DbEcW9MTpMc?M`HkO9!^M1j`kYvo>ub)_wMM<;pv0Eawy8TDbWW90X7CPJS21e@ME&tf0h^L&qOqL2N|owu)J zwAMUayoX}jeedxn#>BAKEi!!F;?Rwsi34nWIcAXe?ROpcslV|Y6U+D+9V5py*A=qx z*tUO$7SKLGxJ|^7w7eC2d^-Z4%SR~~TV@n?@#PryI^FsxU6b3!&h0xI*Wvl`?l$8q z9K`0wl@GU$dze?e(iyLOI>s=hM;sf*_UWFwSeKt=^?6VY#&6ng9~ph(-es2O=gIgE zADOIir-iHdK*yLkZ(GjkuDcI2De@f`E@`E+B=*KX?7PF%&)!?kea@Ii@XjE!L=e9Z z@eJu>?z7hmI!uYL}|rviW{sp^0sMx?$D$gAlc9vX38TL`8& z%qisq2eC;`o_nqjfRE^NRDth&?VZ>1krS_cV}o~VoOUX3D)3?|pv9}GvY3QbYnWH> zh`f-kh0bE^yl8oG(jumfh%8pDY+$=*kt=-`b7_zu~@{h8UTSb%VKCd z>&*iPd~e-pa|A1au=T=gJ#yDzSVf)XS@9Bc;>J2-BRP(>{lv?L5X8P^QS)GNmU;qP z@*c}y9fBEFkDSZ>7?RulcqihC2rhGg$Co5Sdv6ZEn+J(|iA(u$Ji+fQ#=~I$nkyc- z{MhXnKa^i&@y{G=9=p%U!_u+I3(BCKPy7>M#)CjMGsV$8E$|d{8 zVFOnAl)_^Wwn+}m!^xPIIsJ}S zV1sXJVXY(Yj<1x#%Uju@yKUi$ihjpMpPB}j_&s+q;yXSPYx0bI@6GG$7s;EtI?Fsyjp!raYi88WJFyL;ZLjmWCXlC|_()xl zU+X|U;NKr$jH9Rd9YwjOu&L`rng(=EITIg65tF3iwTdd-5t&a<}Et)c%#h7VsCSpgQ$40L(js5EHT;b4@S969*FhY@y3UTH3n-QzH_^^-AK2Ni z;C0yJNeqg&CaFJxNmqDd99Q(n?lt+b6r6IXY5dW%kwnD1J!7!pZU!thjNCIsVi1@7 zl!QJH)qpw31R+dtdw=x{KK5mj2pFm*?$8<^Kd#wsj}dV=HutfWPK4Vv(scztZ6A-+ zqp34*1(eRb{?Uxq^BNvx& z`PnBc4%Iq_G7P_@HGwO6u9#$FEO^CRgZPI}Jkm{E(We(qTpXyOC+PQhB`u|%|H{)i zj`+cDI3=xv$s%uRlxlFgO6l z6Q7}s&0Ys=V}Fa^=dn!;mq53PZ6=Fw#GY6j<2An6IiGpXQzvx9Xy4|Zm>vJFGyl{m zws8Al-|!|W1^k94GVAR!sf{ObuwlB~FX>xGaf0=dEokl8iv$ua4FGog4Ds z^5_V@5Oj`@v1G`RiJ}h0+~n9+HA{xb`7?XF{;e;~Y#RDN@t)Hh2Wf}#Ilv?STvdR7 z|H|W4wpY5b@%`7ZbMq>Td3>D;yz&avVx@)TcEQmqmS}1*Vu8~t$Ldy%^$DAjWpT^G zgiK4*W@FuTnHxTHF8kt@D>*_pdN4dD+~|?Zz*cKwJi^5v6Roiv!mo4|4m`j0kS}3H zZGGk)$l~7o1OorWYj3{s>45RE?0nOMCpd?9#*qy_XyZM)JtkrMyFK5EtwUM51iYLW zfbYbrap4k=VrbXTo>?9mS(jm%SL^fJK3x%Chi%@R)UB?h;-Ys;pPN8mis;O(k)Srg z)|VD19bs%nRh?9rL&9U3!P+EkIub%kj zL((}6S8{Bh@WfBU!73N2%!Ukqo|PZ4DqQQ)*3dZjx6gku0P4D|I+RR0akP(MN|U-` zr!dG-1A;JL=Jd^`JM_&R96mBukAwDM|E`~Pc(h(~$ik1R8X{z=fnt(Vu!6{+MfQzJaAi6TZp|zV z#=T*T;dKv=+W2`DA4BN)ge@WZ1T|ROqZu4^>)Ne;w^arR)Pi+wBI~}o=*6#uLi4(1v3|nIj+ONje%sW|U zZib#$K&0K_L4Rr2xOP?9Lt&bV7~l496r@WnAG`G!Qzw(?&y0x&+C88i>%%__YhN4N zhK*f^rE5RPx7P>lMsoVka|OQpivLpMm2GUij$ND2^M!PB|NK-y%T?ycr5FGJKmbWZ zK~ya`UXb0B{aSDyDn%(-)YQ0<+7>Ki`#d}*Tr)3vtf?gm-ZWtRu-pr;?q%fAHa%P& zSUpOTn;P91D^TAQ7~K4F#yEWO>&)a&oB#ytI6G)60Ec+028$=+)Y8AfR4(npZxd}( z*|mdqBucxC>zWalW3$^iXSo|$HBeaN-&8(NjuV}w>YCd2C6_&Ye9T5dV#iuJRZNM; zcJVv_CXfFWo2aODk@4NV#2dfjV!j>%i)O{#vD+44KYvzEj&0ZP`ABZ1 zY=d)5$;+t3sc^+V{_^}^v0|cHFzEB)WGye9_!f>6+z;i;p__(qV6(}XT;`?I9C<&) z$+&g&ildIHok;PGnE-~wCUF^HOn4*<*UsVb@*AA&&;^U4#+zR`FR6dijzON6U~gN3 zY=7dFlSMfeV61bWF$i?=6M6L-dhXf~Yw(tjqr^}U<)nnvH3U2Wwk39TW9OpB6cD`-^S-1Uc8CCFsp1hbxxWUUImVxdtrV@ox??o#*$JKXI8W$7{@y zUi(`g#iSc!sE=Q`MNGHJWW={-iF^De~gVKBi35ufl(K0-AlJ{+gt{u2=?=js&Z$7LW{@YlhAKr=Aab<3#ucx+RT@j)AZ@Cih-|Q@ioy(T=rWb4PnUZ}`qNC1TC(+kPgFJqC|m1IL`Wu71ohd3zqr^uv9X&CI#% zb7GJ0)Dzi`Nxky?Pb~}zc5>Wp8Si9?F&J~-w;i8B(ofwTYihiEm^$s!JeSPonvktchNd0rf&zGT|HR1r=l3b+OIjk7mVl6TgTR zFBp*1SloGxt#vyulKXS)hUYqp6KZ6i;dd-ScjgTTGq_;J{$YPMzVB!3_mMdg->zXi z^27q(W7mLjWII)V!icDenxL~-K7@$ESKjO5mj=fic? zM?N{32R~`SFlU^b^<5rpF#9}Qw%s+1uldAnY(VUOh$`1J*u5Ui2fN4b>(Ksl&PKoc zddPod#Ilcx{kGla=xe~J#78vYNe?3WJsw+DUg&$W=Zt9QXvpe_C-qvw8cdxmy+8lB z=l?L_+mGvcY*uwU#<@9@J#NO1bGY}Ic8)=`m&!3*yUi_bpA(0DV#_%3)BERTxWE-k zc*f4bY}SP%9-QCx+~>Lr#{Kwk4Bp8k5j?8cS z_=x-(k7M02;iJdrUSBxCrXTEW{LbCT>k<2%GaTU+x@)srVw2cA1l4fIFizZ#-CATj ze`-meG5UJ>wu%j& zNNp?9V&bjfJmhBcBYY)eU$NPH^Vx2T_2S$3@NjTvixG+LW4`yukYt7@ty<@QE>_kRB zw0%BfVjNw@@ZQz|4*mHAgY8V~^EUNi6h!{_oEn*BkcWa(=L8?AlLmISW0fYg~>G*|cED0jYJiHOly^SsSGWS4=B!x?pX*pNp`irnz=UzK3aF ziGPo)9hT}^pSfmAqdLHmc))tz_TzRisKje!>>qyqgPH3}SW%BW`n|@2$nNSZxhLK| z4$enn>Buzqd75k0-23yN2sqEK6AF3jOYT_>3F< zoIBflPCUC0{OlaA5whT_SH|1Cl;Lo1Jjn2Ie$hGp3;5l0nvWMQF5!0`mu`uS5pnp7dia2c*mD1T#E&mf%3PN4UM-1ZklS*Ia@Nv z9Y4}DIu&pQUe#W}7hZP3U*#^%%g*KSp9(zY3S@yL#*Ftx$cwgbj-uB}Sc{Z&EO2WT zWD)cYNiE$YFYdQ~Tk^NcroNuBz+pq{-hOIct6co(hNl367Y^GZ637@YiHa94wTTtG z=(51JI}|af-Zt(LvxqOGaQJhKmS;RZf`>PJ@sDm|H5aslV>WGDnvu#P0Mlg|@(>L+>4j1~2-TS=3Bcf85Z4Wir=E-F^ z+HaZgg7WHTk+jdu9h)PK&GhoWVl@9Xwhe2N2{-dTA4Q{<)RNocyZ9;S%9ZOa@kZ|X zE;l6qeFA4ZZ0pFWE05cljg`G(WrH z=zMq498ViLh>lSK7dCN@T~g4-C^qZN#Ghr82ez)!V3ABc1{=TVX~9^Y>rZZV4vb1p zsqZDPg3Ns9Oiba3FJr`+({PU?HUT8}d5$=y;3h9($@6jQd&`q^X8WlR^TbI{4*br` zKYJvQiFLPFV!~$pW8ZUyh#uce!jXA$vkh*HWkgF{p7{t*?A`DDU@{*r+c-vS+%(d` z`q(Y~(jiG6jFSgr8uqj@P_FKlKX_{0lnRKj&aJA9QnvoBd(CPJmU!TpJY?7e_Bp!5 zBxlWGPmo=F<~b(e@GCw=f*H#eekl=Ca*9mv(NUcR`0|KekWA zyDV`;$9eGmLA;ixWI5x)D}Lnix_~=Z@bG36Z+}h`5$*PR3CFzDNbjV#Ye;C23o{OS)tb8f5Ak zW0j@Xe#Tay#`Ede3{5~hJ(Q?5iL+$f2;4U3;04t>-)Llf#p5GR+MgoGc;ZYA$lf_j zJlyQijH#eP+1bSB@+F^0lK?#r4EJ$OtA*b)`?-x_*O@gjElmx`D?i4admSY=DmLz8 zN$=P-VzwTnqMH;uZ8@MY{CZ!4SAzWnZ;U}Y^^IQF{D&0k?x9mOd8)YM$|50rU6 z*cE8>*rxW3t2J+I+_!wQGt6;hENt5km21sht@PpCpzYT;@|Mp{eJOo|EXCNbvTyp~ zOpcB*d36xgp?B`YW4qXZVoX@RW=1dZ${{%QGMVSx@QO(`!(;x~zt#UXu-V-yhQisX zWXZi`Nq=To98V!5aqg10eYu#rPaR{6C%55X~tp0h!*?!u++zud;B5Rn88NERCzB})jam{CsoHUZ0hYi z#8ANed`yI68@&7B4krwL?j)Bymx2Z1^*?czfHdS68Oe=q*(r!k1*9I_W5uGP7@pP_ z%5>PL)lj@$$K|8-j@e2$(?n<&j%rml1o+a+$R&2JHuLQz!R3KeY=ta@*L}xmY$_!ILME!#Q>F*x37Vn295smSF80ym?%H^9}8Fj!o>uC8H|_`Pk1m z*Sd6e2Glp^CA`fg9P}9re2?G$Mb-!K)U+%mQOsK%5ynb>_jtCkjCF9GWY>l(CYZ{` zaasxI=w+q+_8iTXD1w0}9N`?9s}=cko|DgspD@FnbGXMDo%0xMB2+ye;6{&)%1s*G zl7CJE{0~0=+c5TyBVJ9m$2R=Q-`K%S?U6-}U1IXscKAiU$5|5DS?A{pHhP|_uS3}k z|J4szT6kqw6V=cv9mn^_J^$?|e4DxaXP!LiFMjTwvxlGm;c;GTra`!gH#I@QScTx| zaw53ICBY_he6h6_S$rUwxnm8t{cXNVaeDWSa++Mwhr>**V^VzRj4^KcDLL=T;44kDlI0grCTOkB2@>Nu#@aD3Md}$*M&NzR^c7=8J!B;ufVI=7kH_Eit;LUX6~2mNKOSlpA}$%Vv*Sw7{*?B zO6xUlEks$6R4o?s`Wk#mS*W$zc`Sh>g={YCSw#`B$n~%~H8?tk#6=u}K~isPW$c4Z zjFU99R_JIy;j&w>#123Qjpsz)vp@>p}lj^o(z7F#f_+iU5u39k8ACbO02)Dgdq zi`Y7b_?F*|Q_hn|flHqp%wb-5@+Sk)BXe^-!7C;SafIC5?&W;hFt86}<2>it`nkTu zQ31NQuV6B>|Ki(S;fJ^IJ}a$MQBL0E1n(^$(skZTY0TIu=RV1tS}(+?M%&z?O~y*kRqr9N2RHlBZ1eTOO@(23Q3Ww(6V%ft$H=XYKFe6F$H z3T}Nku`R33i23lM$o1|&Gc(kFTqjGezQdp1F$80O$tN)fn`=0{sdaFPZ?6-!i4!}p z%wwAzEk~aiz%5T*Kj(Fev59rzGrtLppE^4apM%64jAINJvjoBQF!RBqm%_Pe<~itz z)jWGG(1*X%u6b<1SByaD2cS99h}`@6z%dlq@SIyeH>H3JYq!aRxpR>oj6=Ts>6ths zzw!h;d?v`XZJ#F0__il-%Mu&CgVi}hSr>&d&2P0~TU^S!$s9A!f7_THaOzW|@K`CV z?c%Q$TW3CO%`3*`!?N(Ek9lmUoBy=JF&LLP_n=@;EK0QJ!J0WS&H0GOtA58lFSf{o z&3qUg$DYgcbYNVcLg|kwj)1xTU|2qz+3gO zV=MbetZ$KM+pFea>nqO(Y-#D^OTu$F6?jes*c;$L(8 zB>pQWmc}d&0VM7lAA;I^qi32}Ypy9i7S1-vc_**(6ex!HtemmQ4Gvh;aFjx^*DTk9 z;ul_smdijk3M*4+s)+-cDK{Ac^d;(@55X3$YeE_iHN{toUGLzBS9T3R*Zx!s8B#6# zv8>~H$Y0BxPv4Z4Eq1Dl#=h3%YV&3N&ds&x`a(jYvzuu+y+zO}l2kK}Okm z)F@briz)t--*^K^i!GSMR5BUBxy8|uB0?Qr#n4o_mh4#$wu58b1U+;Nm+P!G@x?T; zOfHf((%mIoiIU$1X0ENSdGT_CDja?zU4s%_#}g+x+NZ6YbLzF2%3S9VsM?hedP{gW z(X)m$rq2ENyRAzbZoGP3R`cBk!koX!@5<$R&(F=lJC2;M4o+RTlpCRRtQB$P;h-1~ z7gu2N+GD)tDDst4U!LN$caDy?bx>}2`2%xfBS~TNd~#fyA;g#F*iD}2zu#5&jEz=2 zh_8M1^9zd3Qf#h8B<@#DKqBfe#D`VQv2%^%d#h{H<@up{ludZ$c#F^TmKNzAQ#c$* zg0X|tD7^Ah!NtaXVPm!&r8efdukVDVNL=pGaPDaFqsfN#d_T6IU9`rnYnRU9VQwK+ zbVkYZ%B^!Gu1((a)XN1a3KK4_v2}2AmAne8bB@Z2(v%R6o7iQ|&mIwKCY*AMxNXqt zoqt85aF8=7TfQnw{do#F#(d{I>m76LpAGEM1!Jz9FLwsVx?98Lv3 zrUH4_#>@JwjhFVPDBr6cnbS@MP6b|V1@fU!`(m_5kcCz^LM%{QTZgmMV>J|-rmZND3)hv*zb2|B(jSIHYISCICAxN$o<8Mw>fLT^kH zHQ_E_KI3b}GJl&bd?)3Y;Z0QG-m>nR1R@^=i!XDSALx=71#FhNx1@ySu4%iU+Q&~K zNFO|N`y3n9yyf`N&0o*Mmmd4Qx&D*)_}R{B8^~|hJvexivwhf3^1=pJBeA5`u|XUR zvCr7Ne*WLeZ3Bn>=i0ypo{~@cP5^D$>^@}CF<3X(%IM6qu97BjzQdhSax>o^1HNaz zk9|$FemOGZj>G5fH$H+f{qAGCB^t4aV-vp2SNW2V;-S_xNc;?=r{X2&k@yyuY{x7n zyU*A~M~@p{E8)$HxS;GE%c!KQC_n(jUk#AY}qKj{?zN-C5Wt_a6Za>BT@D`(Hg7nUWf z=Ig_`I40*WWiXH}uGWmxRR=WqnDrmQ;8O$69p=~UaA2%`)wlt%v)(w#N)R1=_#z7* z@c)dVW9T$`jV?K{R||jgbT(FwjqRD67e9-_{!4?-3gV~PPWJ^( zCJxL)E?lr!*@OF6e(!oJsc`ZEo(6wnbSx4m3cL{`dh60VD%+A!cui+N!gO55 z1TT+uFpFl5vyFWr$9ZbRROhGO1z{PI(#uu{;o)_hXm5NJOxKz0utDE-sSzzX_N?aN z*m3r^unwaAmnG*m&-Li=6B&tJ=DXk4$!?w>ZDPCD*`eceoQ&ZzpMS=OPntRy1D`gf zGX=KV=J&QfU>dvfk3gzY_Rk_gE0|oD%QuR);hgHa2DJ0690jh!3UD{X?LvM-}~{6=Cec8-I-mUS%OL_=T1wL^FSZrny^a8gVXCaL&SS?E|m}w92ct&xr2JLK@FXY3y{ z+=zNnt-c0w#gG}kS~kmLDSLvBrr6tNaM(j4hzI+)#lqBBaR?lre%HxHAddKSed3^` ziyIj8UC_?pmpD55dMM~{SU3FG?)ZJq*p0YUFZ}YY7|>z6>B?7f#b(!gOg*uy8ETri z%+XVXdKeR3_)5FZt1K2?b_El%4!mecu8h%mj$O@G5Sk&8td6?brEfONnRZK_wke@> zbs!&40+n*EohAV)oNv}_Qj)%QF%}cKt|lXEE`G2RS~>?~JEd68buVZqjUm*+lukWk znQXm1)v;Uj0y`R`hS z3bK2NESF6oj42r>O0YUG3upis;gA{2XdkN%#m9@I1@8DJHW{_vgsvO%I9ZNJ zujTaBh?hrU+nPzYl0+xNnFq1rYHQ|tjzT6|kj0I?V!zHE5PE;8?z(>C51x#RZ=U}s ztdhF@8Y&~3DK5`tARGKKh=l%XgMMo4_<-0~!O3k+u&=h+$krr{gTGqWq!Y^SBE+GfOtp5#$^%arP{73<{}QCAo7KrntKf{z2dPRpXhvU=|?U) zVTUt%>F`-GINpwX*)z8uM)@$cjP8ql4tsH|_yE+Sn&j%u?Q73(|wM}cq;raycKF51G$ti2dEgnHV z#9uxcYuf7#6E*j-kBwuPgv0;{INi#lS!xbC@kuWr@b+JN>gk$}9WWBm#$R*TzcD!? z!}cLvFsDBi__zxE#n-<5aq3U4^Bu>hHotFp-mP)JCP#8A@Tx121?!Yuj$0Y<6&seJlE2r@M)v zeU*jTWJ^svPi|~VFm_D}Dk9eo!<;i{TGcU>5-QVqsNk?7&Qi2a1~t)*Qrq~3NJ!9w zZ#^2@n`gx#1^foc%^DjkK8z&?>p^15Tnwlh3QT^Gkt}m(Z7#`6L0^yX$gV_bksD)N zeA{qjYf}hL5%2wolIMjR^@@eq9j#;?zwrfHC(kxADu-J*qV9jd2e!=!nBkO{k3?8qa!Op+k=EY4-uoRZ)DPgv4AeuxMDAXabRiGEzbvY zB);gJkL~KHFD!-gfZ6ttQ1kc_cDrt1S*?bP3wDe`ClE4YZp;=10NIrUZoXC%U7qWf z%3lWuR_pRIsLbnv=W*K>wry|qXMQU1NhROO3a^vwtP1NAZ%@)1H z&D;2zt*;mX%fm9}{aekZ(fR0;7Y3gTIZ-^2C>L2bssxEo66XDmk3EOm2+TSWVoS4) z4~%hK_)6QJ8=KU&=DzroFK!_^Km4~J(8T1&HAlqK z2s<`#)8Oz|&xN*+^&9i@DNLOw%V5M-$95|(lKYy|P4=>~^DZxNHly?WHiD z7{s;l08|dh8oMyf;kiuf(7t;bf377SFv`QA@T*6+`MKp=KMMp478Bq8VVY}2ea&g| zTuQ|OX!&Tsii!Ei9Dg&E&3awb_V{&fWtHdKh1)p`qw`_ku}fTdP{TF2U@fg<$5nFG zY54%qc?sLNl4UJ%J&eKM;%dBVhd*&P|H270Hj2ww|C}|WP>PN7u=_%@`($h%>X%Mp zGlp%(jXp(+K-BUmkDrJ~mYijl@GYdLx?hM;N;CQWl$TQ)c&tZ$Q;$sQid*Hj`v zt!sa}Nfc;ewk=r0)fFZSIex>tV;Fluw;$b%XNBMTi+#)C6K8QGFUZ6se*mP!jWEJ3 z`>lQu-S`tZ_FGeY;@*Tc%uS)r`DWv|N5EWe5`$=39~rUSH0S4d&FP!+#AtmP!9jd& zFL_O%B=+#=dUJ7vjD7S7v00%&c;PTt>;MKUS>ty;V<5fSf>B*dp~$ht9fXWm->0bc z!U%B1NUmTyCgDlGG+hJvTqoSVkhNL+_I%E{Z&Vk5@lA}bFV8pUa*dVKl80=Z7*x)0 z#l?Ic*LW;nu`6DJXkVhjm_a|*IP&zPmk)3l@r@w8h^&*ieR7`2N4AA!;Ji#D3n|Tq z&X3VAYJrjaI)E2ldIr0F0{+u4w$c2OVD9;UVGD$A^4FSr5q-gXi{V zY<%xBEOt3Q5>F3BuW|dxnBLg*oflJKeb#iWd5BUU$B$yJr`VNH9G6&1d9?-AI1k$| zj8r0Zt6sDAQ!__KNDgdCm`dg@{vg&EG4)XwWD7%ttVbx-42=g>d z^uN)Ud24xn?7LNId@Dh0HC2nVn(V$MHfa1{-Jm8|b8%UhI?w~thdGL>Z5!+S``6^u2V?8a zvw$THwr}Kwv`i&QIclOyEqKwHhu?1HUv%zu+__h9@K-H$3K=IcirF#NV968Rf}yM? z?)qdsZgBk^>X@M^uK13fdj;+D2CN#ty;LkRPqL*D4*-v`pP20zkYNFLTxF8R)ksS` z9`_NSMJioCm!}@oz;^ZvkAj?|r&UjQMvK__)}Ybu@5k8`B5;flMVcNSw}m0Y29-!swWAV!OQSg%59z9=y(1yAv-;5s4IH;d6wKmgj$iEh{9ks5Tj6t-z~as5NZ= zTRw^<*zyxT7uk5s6+BUG*flPhzB#|TBI(SD1@@t&oDIcQ3_$iy<65;u^@8{sjpETSJb9KHm~=g%tFPoS#wA&t#@kaJ;SR4RB`9ouMxdja(>l*3 zHm~%a>j+<4_(Zo3uHvSlPs|cX#vu;7ZzZ$eMkmYg_}qeN)X?69kO0w@^J!TMkgF5(uZ>0C}jp z!ex(9HR>gTo=Yf|ETj?y6y)9K23Z2xqQh_dh^%b}CzPgsn=M1zS`#0^MOQFFO$#rw zO-|IAE8gftW3I@BE%TL^;atPzU4=B%_(PflPZjDl?QVmaMwXE46D~hghY%{*{{zpijiH$P`6G) z8`mkpH>x@S5yrk3zGTV;Jzv6r<)&3;D5RB*50Z%&`@&7EfSXbF<}|TsL;bX+5(&3fEG7SHi0@$z{D#CQ80&Jhih+? zWXVyYI_P-}&GumEc;RXcGR4Z#FL)%%q3svH;wUWgJ_VSoEnU^|Ru>z6CdcR?dJtqu;>_zpK*QpxrNNu(R*4lzO5RJY|Ul8aqF%9GT=FDUi_@FWcDqe zGA%u?`r&1+gL{UF5i3rIxVlbQnHy_q5m?rKQxD?Mcl(GR+S_B}R< z#d(x7OiAyFWq^CJ94KxQo*wRu%f6qAc#;*8Qz2Wai`&yWBJQxRM z|Mf)BG(IeymZEE_?#Vg7q;|GDUrY- zCmk0E0;*%R)Pz|FOE2EimThW=UJJkIkhfmE@JV4BQ`<-Tr>4SSiHteDJebR7$QpuA z&)USXiK}f3Dcv(gG(6_mxD>F+3e!vCbDl#nsr2IJwwa^z=CIxzd9J0fALp zvH2`!p5Mk9*4Tm@b^RBI&`92}{8n|nqX4y<@d&Z`+vFhe#P_<+ntLpo zi*B5X-|xH{s-MvKi02& z5GRf?ZeR0UVMH%MHKNrXuVjkud9VR7_%&%Vx zvh!rxe#>6DVA9VWU#I4EsO76T6gz!;kQWL4&NJC19k|Lr*kwypCC&@0`B?&!vD4!R zY!j~MwK-Pmh0*!%ycHcL9e#Z(jQqn(6I&f}U8trt-%2E(dWRLhldlZTkn3w*Px$Ia zyl~+tKBQufaK}0t%Vi>vjSII@-^a_QVALeM)vvbB#}9t|!_PvqY_psIjX-k0F2ScAe7oLCa@wiDslX$wKrKR9#Iis! zkBo>j&tj-~r!ouh*s!kc_BB}?8n4yaBy4DCEnEv?<55Re9NdKPr53p`HCZ}t+#BWU{m?C51aRIlUpvX;*beFtrOL|Bub=MbZ3lfV^kN7Yu+~$m`Y!AZpai{ZXkeh z!;P-vTYbs=j*J4CUKsnxkLD;ETf8l4pTt>M`KBg{#z$n_FjbF{!etx?LsXkytvD$OCfFW3$KZkQSETq}tBDrLLhuDjw%) z9b?5xk1yfU*EBbp(LQV(+A8bDF4aUL_>a*R4M=8~m$8y*5VVL*dtjcPnTQyX$p-T`({dIyJW6Qun# zt-DgiRy9VN!O~eK9J-~KXF^od^DwcLL>m{KGf3fx5j=hIhze2XC63NR{se75H3r|N z9XE69b-qeZ%k#gq`c5w_zV?QFKN643Ixfi+w0&W^;w`za6FkVE-(3U_oT zZs<`K6l`>V#QX>5UVD204Oq;a1E%}U0%R8xD| zNyZ_uTCaFomUt6mOvI;&x#wKTsq0ms-A^ze%v%I}HxFaaThR7Po%!nROLmxYy|hSO zOnI*dlk1i9rx?vAN*fn%YV24QOUEtWc(6gc zEqrGsY>l%PDoBSk&wu>3Op(=mt^dskKwKSD(^pqt$dt5Lwo^j=w8S>HqO6zePQS05Srtd&QI{-th|JQ8S*vvMvBr#C0#HM1W_BeZOyrcs+rqk z&pmb?V zEWsz6F8HE$8MpQ}PVu#W#e*5wN_}M>_BDsAFuDfuV|(yTCmFek!)Y@$lYr6|hiz8O z!NS?Ut>!7BbT6A$SgH_%dPlK7&GRKOJdW+W%co(bCMH6`T6NJ}j+Rer1(Ga3+azziYuXqQHmiIzLx~&_ zk=h?4Y(evgo~S(c&!q4tS~2!{R?2{@iLYxQ`#LNi6{~n~Qe!uJQVf?|O7CD6Hon!j zIi2XrOJWpPum7!F=bof&Z!4^IU96CX*!M?0PqfWzj?(F3YtCTkn|?jN?O2HTYj{yi z43X`9@Zs8ZXM8H~qAI{UHu%@C?|$&B&rJD3Ha5QbU%%MDkNM159fDJVQ-OOG$O45T zV-~BmezW-XT>2=gU-(9|+(w-RKQ{-Gv*6MSh+c~#HxtM)MwOcjpe>V}33H&;i>c=q zy)?z%FIpWti!^-Pf#im&9D;aE2EZHcAxLecmYqO5dSa1g%HN&KoZ z`YjnSc~zv^g`~vHeKTIdx|!j_%SbFXqA3-5Y0Lq-zEKpF^jqA*DiZO?Cjrv%d3(-^ z8Le)@!7Lx;v&QmW1IM5!K&hqP^43@rR6Ok`FTR7tFgkKgbIzW_Cr>q%yg-4@x%LH- zIZ1$3zVtfRo?8>{c!bnr`-smHu3YfzKZ8*K$m7E>aad;EVlTZf!{&`5KGm0{UZ*JA zGJwedSq0lZO_6g^v(oFlbglJbq_N_mX!X774M7(YkH+UYVZP)Eln<371VyK@bIFUI z#0W-?3hDFQ`5PJGC$Z}!PWGK6rKt6T%xj6qxvB3ON6VUx7x zb7hohwas54-s+zt%O5!9)A`ANaz;71Fr)cAXi)05v$TYpZC?j2mjaZ&4&~CBD0+rv z?+h7Nqc-BMo}uzAbmHsU39I^9CGhq<5vwWu^Qf@7z7zvK0HuXjzEQfNkWud%^H7;wOADJ@YAHKs1kTpBA}?8S0jnNgODAqA?1cH2P|mXvQY!vu&*}qb z;UcibDY8q>u!*izZ7q=xuwu`51A095XgLOXL0>lD6&rTd_FDS9NIWrioaBuKADGR^ z`5|E*9_u8KaE%IJ-;%)9i$rRn+RCOKiK=VgG|4r#g11h=m5neZbFV6UOsI;rH2!g~ z>B^&1amRUs7 z>q^K8qmU~vjUg5%Gq-Rs)49p>F`Qi&p~EMX^NujXk}Ntf}1GaI;un41EJ> zj`;C^ohYleMGJnl+>AB{4%!<7KQNbKvm=m-OFkiEUTtv`j|eP}zGu?0#Rhc&Jw#Xh%A4~J$(7!AL{oBwQoWGa1z%%t5_A**(U%cJ z*Oqb3B;V4ic{U1MmqLMo9S1emkS7~MI621%(IFGSBZM=T+UExw#nVRBnR@fnT#_qc zW93;xF)Kd1bPSH$zHB=iZI}2((TUdY7l|eD}`C?iVb#th>;wnk?c^-j6EVAf{ zCFAPZFr=+(0V?$M$U9n63*{?p9V!O+IZCb=OCZU3mZak)2Xi5HY_VtVSa3c~_%+2> zHR$P@Z^eZWKg;XP~Faw2@rt9{|%dT#wQuxkNfwY|>%PZk6Cb z-f%_^h5Z;cR9%ZL-z}kb%g-2m)v*j$Z6qv#HnW;v7GN`&UU8_{BLkRsdPus*fuMNw zGa)9;n_O2c&dvrKRz6FYS|={q7Z){2jfIIUz|to_#Zre3p=)7h@>7a%A&rlO6T`%^ zuB*yfpKWxLyZp2>*+4}7=?lwsk?R=|E&k(U_qnbkLxt_(=}rY+S_Symua9D5j3crkjr*s)-0;nWRgjp|$XRdo=D=C!)gr0~$k zwgtlqoK`n!-22c%%dHY$!T~M)>PCu3SK_TYx(iSRS;JRNN45Eq-+{EpQIw-`vJa%&>2Ep;QVTm3cvR%q3S%W!MK^TUG6aD0^KG(Q{7z|MuP|MzZTV z^Gs``g``mlums5fOTbuw4YMFk_sT3UEVNrHZY0>Sii@`4fk|#;8<42QP%=iMH?jtn z=!HrGY^xU}g)!_6$wnLYhSW?q>_xK#3@`%&q%oUW47uz@Q+s>P_nq_IIPo(6yvU5q zjL7_MRmQ#d-1G1L-iv(i-Fz=%Y-9vd$tdhe%-G_A`DMX8`<)lG#31I3PRlLRF5hwh zRpfy>a-lz}L@fG1%~2?(9tAb$(%}HCshfJ58~3do$P^+c`i5@APA0I4HZxEzdBLg@fJ%f9`0y2fO&$gAD;LCOsW=p4oL7dCLDQXXzZjx#0WIi?*FOB`Xq1KT5oO zW%@C$9KsE~V_b3S7Y%hWz6_N5RHaQQ&=H-GP7a5+czLPo#b59xf^Xx_{|V&-p; z^r2VHSAEweaM1+t)vx>b5YcnrvGLj4zjD!YwSN;ZfjtwzL5l~)sMS6dqE5_k&>IIr z9(d~j90rt^Y#dy*C=f^0;X8Er*OqaRt%Gj(-~p5eY-F%F#Ez4=sSXa}IB4UHs>amD zC+l|~^i7?`UyAcoq~;Gt@K^D9!hwDi*gcBzRE5_tE^1{q`k`rp< zFEFyf2~L|2#QN)0=8GH_bD&w}#lUS27-N^QD^KdifNV-9bwdZ+unNpHQO4#N_5p}< z=6PNgZOUps@wf~*A&7KqoZjUJ*+H&Sq50Qcm|`CZUGkz%DwNu=<@O1E)Y8y?fc(eW z349ElVV*MNgqV1VX6~cW#6HZ&f1-`aW&k*9O|&sUYmUVW3+1v2*HDus>U0@GB#H4V zFrhl~lC0W`vB(V@qg0Yr`41Vhq0dwhOZiI{#kb-w)Z1T0!<;!|5I=CIT&m7IG7gnO zuKgDAMs6YJyy1v~jyaJ406+jqL_t(-jHb)nm(X6khoGkSKlQ^V_lNYuT=e-87_0Zr z`uBg@XUxo3xhpS7doGBv*s@`-H!t#znDPZ3y`LrJV7$;igov^57IUlLks~&?L#;zi zeW!J376Zj)jXbz*GQ#i|@%lcJI9=jbxS^;00O7DFqA(lw)6wuBd5E=G!G`0p zJ-RP=gSEIYKiQL8SfzXF0nWgQBsi7|+K!A(r!@`(+UfV7%+l9jQn_VDX}g%yGJ_ap z<`^F(VloH(o*nOhFwgnv4ie~Ru3%Utlrl{?saTTH05DW&E&ZEX3d>$|Z8cSPq`@U-2@{auA_UF@qb-OF@)i z)tkm9s_vS=UI^erME~)>obTIF&b6?C4-MV-_s{NyjGdT(32Y{SgJS$c=?56yhj8+=m>Uw9kX@(#Zi1#&E2; z48!mdvN|PUjnj(s4CS2HI2oaX3dEFT2`j{fFlwH>ARq+k2f4E_myAIh>M&G}LqCdA zrauYBm?ls@5i@kkl413io)KRrp|v=%POHp2+UTZ;CwK^3PDdkWjQqeZdwH^h=Js5BOw3 zP|d$IRIv`Vo(pXFp2uKLI`c0%#;K1!6hbZI>itl5kTW(cvQQ6lSim;~;D$!Y(biY= z!b;Z?8mAquNf8?M7!dp66Js1qy)=e$l!y>|${n_pDOZ? zA^p%Z+hYL?@u*w#mNVqVHj~R<2xv!>93AQmF@jJm4`R#FQjwju32V8O8_sj=Ib@gf zs7W*LiXy)liuU+A)@bMNA%=|j$vPBNDeWd33oHFJ)E$|H^H zRWj6lAHi_>U5Z!nIiz2hVOuk%jef^c)_ml9CjAb5#fJy@iCp>hv*nXGk&E|9{z>i2vaf)qrh)6i4Mk^av`7|Um%cuwP`H7 z7}gx1&)hL5e3qZCPf?6%F_L4<0wYyq zD=r~kY>(6%uA_mt%L{fnis@u&@0F4y^MzgN4ujOH?vS>8pfH$#RRx3Yc!x_Cbuu5G zhCcjY3bg)vHJDPF}M_Dz>|@DNwqTyUtlNDkMGKkCY% z=CR0)PBXDIhT$pOB?ZQc7oPl}Ljg~G-~xY*UBr(u#2h}ucMgUqfBh=Yax?Uo?ZPqR zRXF)WK$gsT;Y)F2Fwa?-Qz>VgDw!)z^27vrp{+cbNBDpn{`D44Xqz#acjXge+NH1Z zQSs%IW1+uDqFPuvK`Gye%N!_zkfTd4^a)=heprBil(a4*RBAFdOj3{XvM<90Yvdkw ztQcqE2l5dghSK9ejg_3aC`aT`KiGH4zRz9uu&t8JqC>mzHhk4AmA`z$4sDdEsb7M@ zMRM6fHQGaeI$nLcgkBZd3_HasoiSeeyzH37RDST9DInPBWM1rM_BodMPW`LT8Zp!1 zm>Wcpakpd)N)|5&EjinGso_<1$rKO!A4L^cxuVY8(5N<3!S+OB@k7&LkAdYf#wG5y zAsYF?tQD1%suZ)$ywpwiJXP^1fE^|~){rvzP=_&V7BSiSi zeW`NOd}Ie5xmhDPD3r$uG>yf3wSN-}6~m zBOHH}JNng@R;3iN(tpZx0S;s9j{o5Z|1$t8cFJyP0AmZ^m;;TtfuhM?&WoK)giXGL zaq@#*mVRz08EVZ<_4ItM>$+_Mmqh>{B6^;3t~)mV-7kLOJh5$S0w!>U1aR2HF>%#F zPX{=TNpVH4JRpV>9L(_v@jS-zAf3*0JfxJNj*Cg$;t$R8i{2=$!(qHcVHGbL=3iUz zR|W_|jyTY%KRl#NC;{?jjCesCg(ChNh5UPg(^_3 z3{+uMI{4$7xX@!5{SiC5lu0j?Ifgz8rlX=5%BO4=N-|1=!KB1ug@6>r3uMW-WQd1+^QFeZ0tPi# zHZfjhztR25hsSJi8y6~ zVfsQJZdIdGZR*5JJ}wlEkTV8qI7Oi>n>AV;I4QksVmM3h(>}b8v1q7G2hr90zxJ7Y z-@`Bz6f-e~`uaJr#cX z_JI0(aLBrq6L7B6MD`uN}G1BbAW zA3ahC(XeAX+;QH+EmTI~JR%eQ-p)DHF@uJw$~&2q7~-`ZWiW**bI%Eg3v;X(oV22c zAC!zKVe98`4zxDoAwqA8APgc99 zjN3*0p`p8TvxNy93V}StE)H@!*s0b*kNL(i4{{x7rK2$&7&R_=&b1Dh=tNMS#I^(X z)Ys@EUj2ks7^fflWIid9KIbDf_>ccODPi3D3qADn#4c2zH*$jKw2J`@=E+D@Y}au5 zf-nknSXaCH$|(oo6>~`)jqxwL%^r6U-~^H5<#yQPOq=%bQPS!Uee^Mx@R{*K04UOf z6l2k+4RzxXKtcMXDs|9`BHdOi1_l)iJn>KZ<8BDJX#S{EetA-jF!7^(ZQ&zW1P|s3 zede0F==PkUm!hx^PPDI+17Z~nS*RX zU3pOiV>ajqx|~D##3qw}*{NQ{!aNsxnN!H{5A%ouKV*y!l~JR!TsZd_SI*pa(i`#+ zzz5`Ps-H4$zdnW#=uZk&$QhYN>3MOm^59sFOGo-?n6}8T2ci$z)%?qz^D7^mGwd{0 z+n%B_N1NM%Hh5W-g|Cz`hlRUjS?bIXc_J2daIqB4wogEnecWwSIh8r9)TKFJMqV_8 zN%~G@^+Tq@;mjd(%`xsPXqIY@rTu6RHgrOdvV#s;w)i=ZbjmzoR&!d^!8R_qlsDRB zQhww^`UtAF^3wKUE;T;#;(Yj$bIWwbdxP5n{4uwwZOE4LE?=BN`AH)f)(-^f3awM^ zkyj`!=8>u+7dBFcIr5))R1FpV-o!ZmqlhDF`G=l_doc;77Trx=SOf68BV4(9l6F&t`^a?xILma&veo;^TeOg5Xahb-#&pRuS08J(v*13{tYkTx_4 z896Jj5Gp^$rxji*Z|Os?;vy7$<3Hw_4ak&7NOW>0BMe8OskTEpO0ycpIs)^7ebb|A z^qIT-(BUG_Oi6tXj=3VWRM$8&36rR6r(-*m#E0=Q3|YiRy`%$&A<3MiNa1*a4T|;y zv1UHRRT>Rr*IDF}elnTL5uGy6d8Ce>JI^`i#1)_WaF zjs)N=$`XqdE&MlohJ}6j>G{GQrRO<(Vt^(v%Jx!S<2Zrmom4T{ZHI5@)xMY8HU0JW zh(lEbtAg|tJDS5kTxee}9qv{Hg>a;n%rYG3La*%Se!1w=IlG9L*3lsI?5Dg$&>=c# zmTfe6_XOqTDmNSwS{QOWpbx)F9zGyQz4V%6Y=@Yo)R)>cO9gJnQbk2u*q{yHsP!5R zjQ9P2kxmT4j`NoV4Jz--dU2!v0vsz9TkcbbaQ{8 zQCXG;#SPts4}{5a{Bq^5JXnz*t9a4zEPYm5IasC`;Vi1JwvMInhdgtCOh1%Cta*++ zN_PZGefpFiM2m60|CIyAR3xiDY{xu9rZ(@aVPZ@#Qz}2wp^J(;+$&cJ;In?9syn>s zBLu^je2 z0tajS)7eGXu#JN=j?n72I%T{vMw4aP9)GcH_QR937dE;uuTTpGgsva>&Y${KSAET4 zjF*!%!)v&}yz~?OJgJfl3RI#F=bL6BuGu42sIb6Kl+=qh{>KT8;!^+xo`hg56r!yh z_!oWH!zae%kL`t?#^7d@(qS@Xhq3T7%4oxo#*ma0d7xc>z(Jp50a?F0Bl{(ze)?ek z!-l2uqG-4CtW`5%e45GQkNd@74$<@uCmROEKuO zd~qF9&BTbI=QW=OQW>QA&f2h%yk9Ni?A2mk4^4EQ;;Z)&Qz;$zAMs)Uy8N9`cgE!yE%HUV zL9frN`m~2;_}4Z<-1OUG6$8!*>eYuS%J2<8#Y%amM%qv}f{l4JTV9-E48Hkq*{}9R z`hX6ZEOgN2SlHq}Cczw1oUb9zeJS_j%n|CcE}QChd*;QU3%}yTa|zir&YcSrfQ~}J zmuxVfX2-eqysJI(tvn!RUYtStQ_g)(G{to$EEn!g$aHR`5^4GtG z&0>3}ZTeO_{U9c((8u5dC{emEs3|x3NUiMkG03^Ufie6*C0>S3<%|9zkJLk7rEiyV zkvWBZ_QNUmYsRTqliV3Qlu`4ijVl(s!3TeZ)jQ>42WVle#5CyN$CMBIsgX=VL`n)5l1$!D+e1wSH@Plom zxbnlflnQ*HXpGU2FU8TTHtT3p4>?vm+2%;S!X_M~ZTjc_Df1g&hkl3e7L#MJDH&_D*{^)ce&`}zP5~lDL~ittImSQc7Ct)5;Tsx? zQFRE?4Tbh!xaLVPVze^GbPul%#;Qwq$scm9+d@a)@(K5_ zt(wizjvoI*8l|=2Cq*@e;ozo%Hs>k-7>Ks=M_2khQ3-#83*zXO`KcYo;2R&hhjzX| zYsokJ7*nZj%I+i&$mlZ?964z&-42SF52BW9+G)FIHi;4n&}}K;f`$7GTtw-y*#759 z9mbFjmRfjuZBnMDj0tR@olWOI8}`pmITn{F`su zb>+xiaj077pK8K8u*8|220H=5lWatJx;+pq0{`N z+uY70*Ac4}*>CNNhiT*YBxkSTsF6oWVL9S)qwTIm!1Vy9fZf8ZcQIY&l;B<7av z*^ZZtU%oJR=)}L=FV%*26!^pMU&bjLiu3)z9ERc|CWD3?K9_h=w_fNQKHJ`?5UQom zJX1F(l=Dsop;SZZsf;o4_&+u)`cNJ6$XBX4Fy7>2RbRw_ejf6I`W;W;}vn`f7D>D2@Op*OyF<`{JUTL{K-H5m)##nSuCN>oC`kG z1JAy=n1BgfZvuHhUL0U`K*X$h@SaXT4xT*WnH-=`tJT>-3?Rn%se>#JwxI$!PEs|l z6IS?>Y~g7+3dU8CD+*-&q$7nXM`+r#d?>4&WKWxVN&V<7LZy!oi4}CH2OGr57xXA+ zKibT({LqGXOO)-%E$!i3K6zI~o2%p*fUg-dn;BDa+FyM-qf#vwsf<^)MkBQ}PucYI zs-;{)K{2F@S~~O-zNOPSF>s7YSN5ad#wep7IA7RE_Y^PEiD>w1+KPht0I#+a^pGRB zLDL`pwf}@g+SUmr+$)6I^qWq)JtT~S?Ob_jUa5_o zDcfZ~omYCV9OY+PV;;;BRofrY<`8DEkVB;Wm4{^1)V73P{48FJ3gTsAF`gRe%U3jp ze+}mxbH7Sv@S1wcB|}llCSJ7fsm_6lS=CUE27C?wmB+}dE4pn02S(tNw?1*E$5D2^ zW8>2w{e=UYy3;WM6Syb>IHcmB*iQm3+?gwuisA<*Wl{rT=7&7Gz^@WvkDkrcl8|W}k33PIUJR&a2!cQ4;D8`s; z)Xf*$@PS6j2M5JPJxX-q&wz?SUht1`x+o{;BA>DyT$`^xj@pk49g6TXN#hK4M3mbOv!nG|hd0A<)|AiH{{M#Z8Y1hQ2= zuxFv8k%Of41^3}Vs%q)(m6X@3;=v*=^06&BFL{s?_#|U_(*Wcx8uV&ta8vHkQ#|QN zS@BRyKiVo?*4xZ!g+A>n7wM0>VyX|_b?sI0hd$>M(~r4`%JNua)aTn6ku}D^z3Pz* zc=x$=J0%vi?&P8_-PG@sOr~ir&ohTJF}}7~Juc@4zkM9ZrYW~SyKP)S*K)yJqQED9 zuy4}8=Gfygl!B$5Z27wfahpD3(oN-qJ0Q4UhrC4TBs%muV&?epiTpAU^_6QH=WCBc ziF}n(<^o}qnnJ&ukQqo$o$63M+g%4LEHSinmzLzc)?{m*$pC4@8x>%&)ekdPp zjG~+@?Z@xkrmH4uxc?XUL%Zrz?GV7vC~CKQ>=Q#N8=ONl$M4$-_lf$@69bI*yatb{ zVf3{>blVkb7MZ}o5y0appN%gn`J4au|JW(Fo$uKAxAB18K;T+GoQL8-j{`ZL zW75sskke@$8m3RE<91xcs6szzBTmWbrNyOcvl+Tevh*?H)2Lpc7e9){zjl`l8VZ%| z@E}3c!I*q#?x>}!zwC1kJy!XW4T9w(A@sM zIShl!zxzPG)#o$S_{(<*WRF@5HAaXqg?*KLkA#MD4tf8uNBM*Lu!;ukh9Bkw$LX7# z7usYgKivoRGs&Zo84ZQ(@)a`t)HRA^nAcE`2DTX`(uX43@q!v%JS&fG%UNToP-9ev zK^d}{ZP<>yX@tSkKSM`j&}H1xWxv{*o5HCcIuVomObp0huS<_H(MBoN(XQA-2jkig z;j79Rk3M*!--fA09r#;U)(wTc`=6R?Otr>)pKbbI1X;?k$7pTY4J$Qj9{jym0mpkF z`lsxaRMg{rU)wL=Pq4|;Q-zQTeDPmr*V>FF<)}Gy%1J8F58nGwDjnG~PWhD#IrX)WR+yxtOMuPU%t9E|h#PR$v8 zZJVhMb=!PX7q3~mzVZS$#tRkJEspG_^^zYAE>BTX)*I(L*+xr-t%I1|PtQT^uG3|3 zgY+PiobzveaG+A@!A5ih!t10RHuE(U7Nrm6FAEgB0DW?ocFtB4;h|w zGXWFWOaKQ)9UN7|qPNx82@wz2IuVJp1st4tA{dH8r+n}N0S>C@Bnt;}#a1mH)d(TK zlA)HZWQwnxr~W8czOauuFBSY{5+%g&jiPyU-65k!yg+~ItGULQ{J~_Zt1;E`ze*Q# zguQC{>L+WJI?P!Zzw%Rzt|PYeSp)LheW*RHWzRU1LB&Sg?lW~$*5#PT(p=Ejc4_Ty zgOKXeujUF)vRSc>hTqAyfT+;nC<&m%E#J?DqZUkWq{zhIkKdJN@dOdb;Lr;CxoCD;= zr2EqRRCk-M*W1)7u+rB!w@1xKJ~2D#X?vhQ=32&N967>{rRFJH$k1j#lqF|O^);Rz zavRoGQS9MAbkvrwvHijiisG>sFVLUbP%&O4r=5ff8h!a1Llpz*X$(Hpp6Y1~a=4Wq z>f zT?Ks=<)i)il;2PsI+HoUN8d-YzpT&k7!cRYE2QBIKWQ^*hmd37tv2e;18t6%FFHzp zZF-9sh*iUinU%x{5Z-^kD~Z7 zlw;WyoTmv~ECC%THyt$l7~65A&%<{fXn7cK2i>Vp^`{4N%nbfi^A`2!yeIyuHEcM# zc#%FObv`8-Ymv3QRqngN4p`jH6~V@(UgLTtsgA;dhL~AM}SYEb;_cb5Pto z0bJx5-x0Gs&&nTquo?E{Tl3S2r2HacZ;w9Yb&u^57x)vS^4-TVADm48b3K+pe|68V za)2y?mUZ%ugkc)8a2^GB)o>0FVx)XvoO6U2ZEZJdQMu-m-e9WyXo7xiTf|hnsSdqE zuk@J*05`Ho{mXp%ufQ>CU8Uq zc6}UWr#m+M7|Idt2~O1nE|35Ylss7CghK5N@stbn8WO{p1o-J~C0NnM=+oPj1qVq2(@W=77FrQ0wh9%U9`7WYjMoG@ZaxWcmC6a)<0r>>K>+c@k8(vlbYc-m?IpkEe#k23@Dby*E4lPEu9Gvl(K!El7%`!T ze=2EL+g@Uwo1)+69sRDam~cnGHE-CkNqa?tuil1{{B?QLt8vDG3jL;&5ih%RptKpM z$z?bEP4R}9c_)Pmiba0dOgmPZu7TN9*!XAHkEEU?_KyG{IPNH zpBoAFqP>(CI&xCF6b-xn{$E@G$_H~&r`02F$(DW}gl~>3u5?;_iYDXD{Zg~<6QjMP zksam4-Wg+!c~ox0r*e&2Iv7)XMLJ8OzHPhRD!$|Q@sbC`U3>`i$O}5iO+RdAvfN)V zJ}I(govNwPeDr;5V!r5>t^6$pmRpKL^>`WjXyfsaR@UV_@(J~RjMDzF&JKK`ub9ix zD)36-A}QID@h}O$ct7@jk2ChaiStw46d=ZkBd1Y!S)Vs~#0$oe$JBmFSN>XT`K7%s z>SMgyO?}FZ;-OFbim!3zhWVh;iefg=XhK)9JJ+EQ4f%r}bD%8c@;$A){j}Y6(bi8S zGBTIW)Yg3yI5q;iK8`YbVZ)E19NVtod`;jI2}D6*?0N0O&^$N z&9#qX-qRS!SA{Vu-_8@`eO}4~I`kKH*H;YHu$K*FY9sRS0i_Lvc9k0(z>YDay)-uU zp7w9qH6?sUc7|KENUUwbooyrM}>!;gpY6DaEy~@7t z1B$(^?sKNkvGo`6rVLkY5ACHrN5t;_*~d$ip1*8Vr$)YVn{kI)*mT>WyJ0_q4)TK? z{YAa1DE>5O>1tg4UMnZC60bh4wtPrma@4D2Jr|85`#z6T{hD9bnfg&Y)F{desMUsz zd`!1_S}k6cnygF+V3{Wmg?F}J$H<+@~50N*88%V&PCe^VW6)#+LvLcB3t$4 zUwze6Ir{qPI#bz{?=*+0e(x8iv8{R>_=PSC>QnvL#we20FD0puX149aZQ&fGSEBPFow<0!KiHvAaMk?s*r+XOCy01l{8 z@Yj5tMCibdgR13jJ^h0fH5f_jmUKA%3WHhq^b$P_agQeiE)S&TbJVo?51)yTHZ6>a^1? z8w{o=qGPOl!iKQ|Eo=45nPlk7R_#89cJD)n@mpR)2eSBqKiP0BEFf3W82gxK(}zs? z$glL(m%jAWr@x9Lo8hnRV#97}@4&pWVML(@ zbY+im6xKDL(JwiDm!8_HhketPJ!6-g?FoO$u#Hia6Y~s_#xVvB=s_k9kgqGUrA^r> z4sB{aXwzrw%O~aPl%D(|2WA~eC0pbl%8)Bx_^9oa`7CTOgreNUHKhwV`xQ(33~YG! z9PA^1GGZNV)HNrJs4p4(DHdhndzwGz03VtoBa~hFgb4m408?a~8l${&;~-vYALH1> zuX2nHwf>O$glmx&LwY zOlB`^-2M2!p6%3%CSU?LlK>CIae&POZ!oCy51y#tL;<3H64LsTQz>3>abvG89h_Y8qFlZibdeAJpPogrsS~HLp%3LBF?ezq zedf^TT)N6tIWnyD(LssaG%kJMl#Dv^UHN0IGiSf@TG^Hzt^ z{}iKq!V%{aVOTf+*~GxYZs;K8k`Mpr$3GOsSsGJpYSc^R(d}TPKDC-1GuKlPChd{$pM$v^rm6FbU-gSKzC8#W6kq0mr77e!BQQfkqdpnUs==`VnK&FY7A&o#c*#c`0qOSvxjPRF+Q^ zmf}ihlGl2l<*V7r->|`0KM5NOYShUf)zVQvky&VEYmBXkxujb$m-1LrXr1mW+QX)) ztZd3IYHcg(wfS~=_lvg7SNeuQ#E`J2i@JWfdEL;5sH1NfZg zuQ*F`oHX|stJ+6gWDm8t^BK=#Fg%_3%#+gm9BJDL)>+` zoMT0HDn~Aosjd(!E9i7Rwx{zb%dWTD*>cV+bwb$v^!8N0&%cjtvgvwg%ZF^(A3No; zwsgBxc3q}6#x{*ZZ~9JLr4OBHO5IL*O>HG-9PEcx=Hw+^)OxRV*|e?LJ?2zL{i%*@ zRZCBO=&Ow}wB=(epW3QFtykIi-!q&1Y78}hDksHQ=SSnc#&(oH$kkSU(v@5_DG00%MY7FDOK&R{VcGp8&W2&d)==YpgjbktE_Pq`L-kb)f9Td5N&7V9 z_*rK|`RO;GT)Q@b8$sZcw>~lZ+fimMY~201e|00kd6Fhz0vAM}&S`NHg)?LwR12^}2X-&i`IAnbsZRNa9 zzsr|wv29zySRX&-x8^+6>o#&H*}58fr~Jz}>S+uONiM&VtL_&F-G6UO7e2atm2b(q z&8jwJ@+H6B7Gvm7^(crJ+4OO=WrKDv-5=hctMsT7MqO8Ws^zoyJ44Ck12qcd8dIMG z@gg1dr**g6MOQIpKdq;6cIhh*)$+Z{hw|uSy6BPJv|iFJhFyj>Y!rVww$yKL+x0fn zE34Qp@elg=hcdP0SnZ=2Uzf{N5B+J8Y+b#{KgN0t`H&p-x`Ldg-}CQn*+Nfp*`QV% zdaL@1(e3;xy_TJwhgp3dd%Uc^wg(6xNP?Q_le}) zm*QzmefiQn)SuSfPP(e4tNC_awDkkMG1haJgH}&{w;{YKSfryGLiyKwyA+pm;KqoN z@*|sii_yd{CU6r8eDHnmKl$XX+q0%VYhmNDk9%Qb7ELRefC+3Qz=L|6Dd~WXT5TBO z1VnwEP|2Zmak8Mc#(J%>;b(FJ16_>4k51PSS0^E=x^fit#6!q7QGY_4h zrpd5VF3LfDsmZ7Mz1Em)mF<0ZSd#nyx0+>UX&p-{P0LPMxw7F%#mda4Wt|*};>fJT zfv7k@#g18#k}WM)=}8;z0dB|~ndV4S6cwDf0C9nW@Z4y9&w0Mb=lcEsT)(dS>bkgv z&*#0z>;1Vw%J;~|(mKApnB`&xC9v>&2AUUUkM z@lc7pVDgwVckqYBA<6m;n`ss)6jJrufpG? zc9&$-y8?7~e$d};U4AZ-Es@cGMbBZg;^J-3$8Wws=TcOJL7()$?k{(Kpfk@b$+OI4 zXqkME&=kD+B4;=&VXK{&ZqJYbKzFBB6_*&`c~ zI~?|8u5K%O`CSZ)35*7FGW5u1(ces-JHmfN3*oFRE zN=F~g*rbO|vBM88Y&)rUfh2j{k@<9YzJe}zwgr0Rn*2ckL=TV%6g-BH-N2|l*0-!I zzQWh|sG)Tx$miJYzPi&JMt(mXbgb^Rr~ZqqJM&@St|zHDe~wy@)_Bm9^Vz&7$~T@| zTKt#|@BEUyP=4AD-f}tyO&AcH42P?aWIv>M3|%UOwORLcN2k?X=8&gaT)#);) zIRh13uFs-8V&m2P?2E1@&*gs3y{9Aue!0|}ZPxQZdq|?ZH)&2M4Q>pTW7%iH$sf+7 zq2f%3_UveTX%~AV_yaCPyA>XFRtx=OYX|vDCVXt*4$^qxI>!*RHAUocy^D9w_%iyuX>uVB}dh`?k(Z3yA}+W-PBjHGlS*>@Af=pDaGf!EA}(F zrH-rkF=SpcqP}L}M;NT-TO9Vfu6-7s|2?bIhv-G@7`h7@b8SQ4f(Ry+@0Z_2q^JUPg&n-Tvq^+4-Q;niV@2a`L^HRI7(RX&IKi$4~7C zBH9BlnP!jM-!G}Er-Pv{{SE6b;~4fQ$0Cw*Rq$m8)#jZZ>FzZwim@pEOS|sYZy^h) zw`x0PElu&y2A+7Fe?8Pb{Z}@)Jt6yHdK`dpJ`6k;8c)r`o=r&d>~#J!qXpNbGfJ^z z|A9+rK7L!!!U!5UtmR9F8HqZ0pT%3KxV^mS5(f(v^SoF*_Wap$M zZ@$^~(@Y!Kw&rtM_4S83v&OmOb4QPSxau+_v#vYq#uLZC49BKYz@<@gCU$Ekf^1TW!DHT_cwNuC>_0&mHFdBFY^& zX?R#3m_l&JIzsu`!lu(IcEAjx4Tv_WtK?pZH0t`Berw%H6X_Fq<+!Ii1+bT9`PHneA?>01C%e<6x$>7r;gnbz~w)?LS-8>LKH+075#}ls) z9V1z#MO(AdrZr7UC(PAfX4bhq5FSXpmKOtaZ}=he^y>N&MuKjofBB1=jJ>dq&g`f4 z>@@avMaqGN^x*?0<6{>Eu7}OdOWwWB4*FpeYZi~Nd8=IxZl`RgTBBnsIL`-kO*~`` zS#lIqF#ol*hUOh5-!zLxz+kD8!x?8`_T)I;h5Cx81QSt=`tJ)9e~|_}j$VV$gFBfL z&@eIPe_y~6kDg?nwW3S5J(+8Rsvd8uwJtCD_gbPmq-&c< z3stoylQD&T9l){+se)G>g>6PFk+|3UwxlkaG2Rssb!jofM1STx{_!dxFaLYxj6FG{ z2;FvV7^+Q1(fvWtN>pB;eP0V(Xm5WmqlgOGljH;k#;N};W#A6x<6hBPR$4GF<#JZg zQ-g{X_KQ2Nmcv|n6D-L8t)U-f1*rgX(z;73@$$4U&S8(@xQdoqE~)zWR$7f@Br)E8 zz(NzYREyXW)*aG*R`_o@i|#lQC3CFUfO=`qTCd6|Ca*UGt;B`6y#5i1C>W>o5abi@Xedp@_~zs|47K!$3w ziJOZCjL*-ceDu})e~9?5>SUdq$)TxjGKwlZ(p36G*$tu!W`&Cuwsr>heXEQja6BLk z|M=>Pwrq3WaVT|P@=WSJcTC{Q%XqJy@jBhNLy>#>nH&HEMm~LWc*Ug-Vvb5K=%so) zeWu>eyZ5a6-|+;vBX#yTF7=V2uI!=nYOX7U9N;bLYe(WOi*owpWbIFUQC&%in7ey& zd~5Him>G~6gH+bp`w@J1rFBTTo0@}ag24{zO0~M;bl{1le@80sd}%(1-Lk#RW#FdEu>B>VHx0) z$7#kj|CY$oo!WCG8O7R?p#;K8f(>JlC&4Rz(z{F&Ra?XMG<5S^LE3srVIW;kzLuld zN}4E>EX#qHQ5s*0ioO53NKtCEh$uy(%+~+VsJ8kWSG zl_;(~FJiQmkx=}vJ;S8C10)>CMeNcr@&Bd=*p|fpZL;!zSq0F~|8KO~6$9EWCic7A z*;6O}_+JhG?ZE$&hI@m{-Wwv8G6JR^`0Wac7x3#jUcyWHCwq#gN9yE+{Y^JVuaBZ6 zL&gcA^g#xJYCAs24o)@1g_Jr5g`hVU(EKxW zc}f5--u-9hguzndV6e7~J*fs4U!2pBYYrZWic~|gz`EzD=iJo7%%Uz*hKS`nW@jR0 z>Z^1ak9kSYld68H`Im>2#5Vz+EAFvAeW|{VJVSeK?a;G7vjZy31?l>$-gK2O+A6`S z>2Htss_^p}Z_kwPzF62KLCvlXUUbs9Q8C|cr}k07c_U|zVIE*zH%(oXAI@!3nyCLt z>?t6osP=U&y`pUv@4>+DINqfV*{o&n-l!-RII?pst&(323f&B%XHTc_+cV|Z{lb^o zsQD2U7RmmqT!nB|ukjwTjbp&@%j^UrxDfkW;(Ldo;KWpjOOMo_yK^R4}DoAtMJOZ-gpMUD~zt7kH6V4S5r z8h~l~dNTx?{Z{4uXqTkyLow#bh3~9I!F#g}dmgL~<2$woCado*HGQW;xQ5+sOaM6q zj1EQ=U3HC}%Jf3VU&txy`_>&S7Sk&kfjS;o!nVL%lK+J#=ccn3LteP%PB4qwuGdC~1gt z%0wF6d5Pmf$;M!cLB)>hYDw7#Vp=2Y!|4q_;s?g_eEsVJDfa5r;K^0mcOdQe5K7B_ zfRLYzj7(B|vqO|RNVB`ch*n;ulY#tRI@b?3elxq)a`HJ2ctB*Wq<<#}*<$=>@vcY; z!KOD6^ zG82r1e56G$w;|huFT=&MVc-hq?*PFOq@GfoCVInINtv!aH#@)h&U|@ra^h^~&H$kW zNF|8Loop*!ZNx$|5o$OSL2;_^Rd+E0pR^n*AeNG{$7z8rospL4_;khdLaVkN( zV&?nl;PuXycV)I;GA_Q>u}-8)k&kQ>l^WZg?f5Km(dhdmb@u%B_;p%bZ}EumrcSc& zc|%|Ru9Vj_pEHsb+i~Vj@KwoYTd>TN`op#9Ik(typ~B=#nhiAO2Rf0L7=^p{t=LYc zEGHn3;hEX^!{e7F-jWbJio))N377UfCF$*y&ydCPpb&l`2o%n7hP$*nuLa-VOvosW zBkkHm>aS^q*NQU_1o0A)7M|!4Q^`}tqzz7g=D zU(}f2yL@YF4-jAc?5s&<@<3!Wlg9(!7X-ACsuJ2&k!Vl#R=b(x`!b0aWfY5wDxK@v zJnfWl@xXgYsx^MS+Q>vI-s~bwu8jI03u|7>wR~nuQEdb;Ig(`7V*p4vz2LI%oIK$# zFP=K*E=zcPEDH!evd>6%UW=_Y4c;BKehzE9^aGc09l(u`h`eWJ81A#gd!XcGM;Cz_ z;^smUY<;*n_Z`OTZ08@|hDOY8Z=h$;YaKCtYE{f96-yj{Ac+rr^ zE-RTgHH~4E5ZlM>uC#w!i`~x6*Z{Q9n9qB1JlO2UMCh^Z!Nix#RvWdK)XPrHd9fr{?2&oEF4>O>rCn|s#t=9@dE=X%F&JEbvjf7x=~-Dm-XE;l!~^CAk1bS1s@%!nh< zqq)~`Z-90Kwp(+UF5c`bQFjv^*`K6YQ}OPgglgjTYNn@JTUWj!XD!@yy6XfMTV_=vz3QD1#m?NZXi)smXt z{4uu>4~Fxq{(k5AOUc5io#1tgCg{f}*d(j>|L;k?{ z6{KdIq5@}|+UA-abQ*@oiK^59+{OUg`HU}x`gKK5D5J*=x0nV-58m_PkS zg7yx&Mac@QP8rVEitKO*UL2f;a%Z2q5$9&3 zuxrLAI_hF5u^}u@Q-b0IkwfD(c=SMp9o0$dwIN~H&mN%rh{eqBpXa2Yu=IS--P{OG ztp)h55KAMgA>!G4rFJ>wKN$t%Dffm?>4x$d7oCiNZ+}@1P&wg1qhxhF7kJK!Bg;6alw9;E z1?@$Zxf2^x>av`3;z)kGfj!3YX2vQ@dtk)CHxPC&5unqYTn2ozh62p)!lQzR}&)G-NgPRtrBMwhdY9*RWPUVW_xPKCO(_5g| z7arRT2JvDj=d&7v`s9S%W7b=^fzz3xU87o$?D5b0C$77kxD|_*6Qm0*dmtiTm#}Fg`@`pKO1~r+T58zP+*(tlYrIbo7XuuFUU;uI zpnj8Bc1U4ZNc+T@pG_TiJ{#?I;Y2S*;fBBM!7y!9`NXm0FRUSJhX>g#zMP?bw>sVL zsIpWSp5cm>nMzOM+lMrM?Pe6#r^uuF-C?UHL|6>4Gn}2YEu4 zyZ(`ZYh!oLC8sxos-WEA!DHsY5k1CrlwCT}Q!%TR(7oi|B+0oG03W>9w^Wug&!3VG zfquN|PI(R;eQU&b!DeG;L5?^Yva{cLPQ$fv_mLt}04V>l#w%`mrWk=i{L++$=_r$Z>7$e|hwdsyBoc0=b6jV$(11>dCS z60xWwXV{HbsW_^X+hU@3QW5^>GK`DyknGLB_-SC-A3JcQQaGUspRF>KISp^|dl4?f z_87{bMu%hT4MKH<j&{3mZ^$P zm{lMmf|!^_v7i`4GN8o^KWqX-jTp@J&@9f}e|R%j$T8thC-T)Ih5Fc4b8HVP_pn-1 z*7PA(LT95aMVhj8zESg%$>Q$>HXiMrWitLNV_#GSTq(Yw(AZjJLqM5bZJpI$>2=kh z-euoZq)f?0%N`$VQ01h(w!EL z?C9Ri0wVuF1Aa<}Zn0zXbI+zy1q~*w^r{p%_Z?h8m{T1ggvbUcxl%%8lM(gmY@23$ zc+Vzb#NO-Rrve&MWh4$n{MmN@_(*K+r z&nAMmB#sTRqw+U*o8>aJhsPDHl&ezZDC@LFno8b@Q@=1GL)mmnB}^%qFzKxuf>7R6 znRwjIzOA{c%87!nOsVN^8hXs~JIaUI6;*Z%MvA?%5IX0hOO2JOed;gV3<{t8>@6S& zQI9gLNNyE@$(a2ZgV1XxO)mQ$>d|wh`DW;jJO*Mfv!|5Mx?9W`to4iy;#_pS#@C~w z5bb8HK<$wj5c8hFcuFhK8xm@?aF>0p5DFKQgv?~$r-unK0||z(#)U7fM{*5h?r?XK z^Yg~pNrv?PGn^s(PYSvvMHEQebs~<4C^+rdvqS3Q(4Y|xI2fQHjW>=CC%$Vc-umKF z8%1y@gx;v_H=9UVRClu8wwpdmhn2Bw=4xHMTS~LTt0VI_qpC;nQvn+56W=!29{D85 z@kl1`nFENh(mciZ&9sDq*HKtS*BGv&rftXW<_#9?e^I+!KwY36+c-%`fkbAG7%Zh@ zS;=9eLu~E<$HKmhwbA)qZz7wqkBeRC27Xl=yM65=nTF|Slw`61gJV_jTHkKW7IJIP zFJ4P5MnGH*pML@k8`wL(9J|OvXic$t7l+<=W(e>yq58$b>U_;F8Rw59$*`cmq-8AQ zIDyLImHmo**a4o+`Uyd9K;d`_lz{v-3<7d405|-V$tVWk1^@;`2tLT3fdVZqbh|pr zU%X<$mqOpuaB*aAHwCm;cfMryja~db1Ksj3J$RZAP{)-Ur8LWzB3b$DOqEjOuZO>t z@=O&evKChrVtg$w6)&lg+%z<4 z+lOX@$J-;*QaTq2y$k74B{l~;Yw4FR+-n zY0fU{SN%kZcf2CPcxj+{OHy{WeGUXgy>|_SeDgrMJL=LGyK&b}d7=Y&iF-ay=+-sz zwl-bkCgpFPZmml-jh})X)%8+j&COPR?7!gZK#uzj{tL^t616CIv|cRXIEA|bxW)i< z%UXwRknH5WC2)sN!!+0j(TRx97lXe@7>4kL1kGd|{6$f$Q$DNoxYlmBS|GNFF3iWB z0FfVGGvk&b{c0f6&;C%qf6U}}u={6MFvb99-oWu^zoMg+ZrIpc)5(%;+XAV6&J)DVa4Eay)-X)DnvmeIKl#kVT%8@l!ig!oXuao4GCfAboA z6Gz`Y3smU%eflLKiVzxbhhvbA-o*QsP}Kf&`hsy0RTM51=Vjcz@i?t;x6Kh?IuNLN=1-x?$)*Y0)mOW=k0R=FPg6NReUOc*w|4mOX zG+-=CIxLn&CO>~QyNvjF9uS#ln)lh#a!K zi|k!7!8tJ9;yxXy+#~k#4>G@y=M1)MmvK{{x+TqjjTnY+YE(hbv^?!_pz!x?7#7T2 zy~NyOgdYWPvqBJ*=i|d+YJ2%bnB7O~96zX`;4u&_2P#LAMl`M%?3sx zEQA^tyO<`k@sZP}VP;RQ){$7WA(2ORQIoR>$!XE7`0ft{&B|2}4cco?Y2Dh$YsOi64bksf8eJ)AU_j8I+wPtK8ZvB^IDKHG-#b1T4H?vr1_9qEL!K4{P-bX-5#CP)o-Q; z*)yFI*n z<*XC1@W#XqMVE{3%e_p9AF!RBjH|=TKpPl@5FWA-0BOo?HpWfgYO$qzI~c;Ce3&{F zE7LNq;pu4U((1D7p|DDsb*d7dm>)1(DWjbj=vgGQ8i|Gw!p#eHpHFM}JDI%74=CMV z@iTEmCj)*P9jX|#M&$cBFGvYkA`jZ#1TE;;+p@+R9^h4zDqcIKspWA8(iVs4!(wyn zL3%kmMd%}MpWx79gLOrBZiYv)E8JAZRGY~EdY!nP)U%z#qFN)hXA`Q`C6Cp2Pda>C zbmnz*FkKJDj@)Pr@34*QGiIMe`A7YlTLw6N<^k~%5XV&jR1_>^5N|Zj%kaRPzRf?r z0vYU6og=T)LcvdzXF9?MtWBof`Qt`{bHw*y)pX+IxH&>Ra`ASfgxv5WY$tTFf!Mj= zVL%2=#s(gY&$p4H+BkM{63^JgQC$0O0!Rra#2$1sNAvQq(YOLebhDPBm3G0a0;G9z3b3T08e6yJ!+EC=IQ|ws|NW zjBdI@lEbe8N50m6ShfX9e`xN5*F-fuKy)61MrBW+7iWcNE2hn0;9O_+wC84Tk~KYi z_d10mRZg)HSv>Xz6W#(WYJX{Za>&%+tcoz8U7{Xe+-H0Y`R3-U+T2-{P`)x}+GDyp zWsQQ~WUvGh*=G#r#h6?4hR}B~WxOh8+oPQPVHEQGQZ~3Iny6j-j)X1sN;@TrwkA!B z{~0^K^!~>$>BXMx` zSodma4T*+MHv*g#F{xtAiSoEZ-ySL`rFM?OQ_$ZSkh3abIz>(`&W&Kq>Szz7rxNK| zLijRpgxLtdol<$b5|+*kOgtrZXPZ=+aj!iqrY6BNK)fOsC+5Ib>rcW%&ixiUH9SX{ z*!l;7yerNQ)!kZmsb;legkszj#8>MlwBlX97JzGmJT5iWh#dKhV`HS3v*kdZifPO6 zi3tNx8A3Tdrpff95U3X&$o(}+{*k0rIC)2Ss);kgGH}=FnxMgylN$5Y!E}~j&PxmC zS(_IX`?_I-W~toWGWZKd=lu>O9rX7C?WOijOd?>tYh$9UHGAv1+Pk%u_~)_EK)?8} zCvYxs7b*x|L@Upz4o8#9A60KaDSW0bGD6E{B98SG=dvOcQQ$8K5MTcr7|*ap)1uSR zMD4~`SjKV?$dUqr00hSvv0WlX86EVvZ6c)E}Y~D z1GPgtJM5)xH1yNLSBHgidBOq?)>dPRhENnN$_Y{JJC1`s!KjGOdgG239pyAMJO)_? zL53tHFRSAau${)V_fqhUP9i1LUIq$dq$?;~!iWQZRxERLD)@e(RtWr4P&<)15D)gY zuFTcEGsAdemSg~(r!dkyG;Yzf1vVPR@4QT2)^xXiV&kD=yLo)yc!c--gzF>$ocF#4zp`#gO_9^Lxc1r)bW+4>CSIa~q_Kyj!aI z3G*jFx^9}Wn^sW;?1k~{WSXgi-ZvGBG;RVI+X&t>3K39?SQ(e#h@qFM1O>M!O=|Armh|f>gS)vQn_21oS{oWNL0t0OHR4D8vbnBtHSW1K zztuW$>n{b6nh=vH1I7TF{q1gC3H^ZZiwhPf8gqP z3Pj2*y8mp(vi_p~6w}IsivvTk&|`-xX5Yxcb?6zP)ymP)@7`43BTxg~_K#C=MwMoX zF0OA@-yJPu8ZGRjM__$oTP1TYi~HNq0y*idr0#|0%%^rL(PoWDyB)9*mD=c0ISa!B z4?w!@DeUElC?mltSID3IeRZZHVdWBldcN5(|>(?R9&u0NCw!pvE^Lv)?xDsWl^6VG!ym&a|( zM`axMiW@s0x{7|WUD>vC?&aYM7Z-(dqGRE4q!v+(Y4JR!_NxR0WK?_NxC--u9Jfm9 zBQw8jZUILqDb2zi^GGb(A|jr4ZzC|v>3zI`aa$ComM`G!A}MjRb_Gxift+`(^4Nl6 zuB|8uP*GWnmFul`mImMOwP#C3X6<%aI#~cwkq}HakLPO|%P)})m=ypA`A8HQ4$Kx| z`vHK&{(AFeXPZGTFh&z6hRl{x*G-Fu_BY!~LH08C<@ z|32Z}FOC4z9*jv(4w|~rn7GyE8J7 z^Ml*!Wep7M1wzk2Z%E@Z!n&jaU?iw;G%08d={EFdQw{e=6aTu#A1L&=gp|S&{GZX6EgG9C3w3AK|1=ws{9mti+|&<1uTh!UEvBm?dP_NK;Hw{1 zcR4~q)I?LB@q(kq|2WL2zf6=>IN3#b)0^4?P#=OiN)rUwsDV zdx=KV&$W|Z`!9DPMK49=;$cFm+p^g##RBV-Vk!p~y4$v;_$4Nc{^!29Z6y6J^wQy0K4x;$%zC^s_4zmmdLWXt`bV55E82!TS%9SpJBw zulw7R|KrkO(!M~iF><6^_y1mSd1d_rz#sKLd>gv)Pv-tZ*fD?|-|e11k?Vh~3B-&4 zkynuJu?;Jqc#M81Ds=B43~c{a|9?0=h!G8-67Ny|X7C>(G&d7@cwuqEiU&B4i#mLZ z&%cJ1f3FGfj!6{(d8u6xi{;*9$)o?n>4n!o2Y))f?-!QzGa&v9i|8Mn5D882R)@2r`{sjQQZ;r|Ecs-9T@ literal 0 HcmV?d00001 From 6da467951790325251dffe561ca0fa21a88c95da Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Thu, 10 Jul 2025 13:34:20 +0100 Subject: [PATCH 15/38] More background tweaks to fit the content in the correct area. --- .../androidify/customize/ImageRenderer.kt | 173 ++++++++---------- 1 file changed, 81 insertions(+), 92 deletions(-) diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt index 50aea319..8687a719 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt @@ -22,21 +22,15 @@ import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.aspectRatio import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.offset import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.clipToBounds import androidx.compose.ui.draw.rotate -import androidx.compose.ui.draw.scale import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.ImageBitmap import androidx.compose.ui.graphics.asAndroidBitmap @@ -45,12 +39,10 @@ import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.layout.layout import androidx.compose.ui.res.imageResource import androidx.compose.ui.unit.Density -import androidx.compose.ui.unit.IntOffset import androidx.compose.ui.unit.dp import com.android.developers.androidify.results.R import com.android.developers.androidify.util.LargeScreensPreview import com.android.developers.androidify.util.PhonePreview -import com.android.developers.androidify.util.dpToPx import kotlin.math.roundToInt @OptIn(ExperimentalMaterial3ExpressiveApi::class) @@ -66,31 +58,43 @@ fun ImageResult( Box( modifier = Modifier .background(Color.White) - .aspectRatio(exportImageCanvas.aspectRatioOption.aspectRatio, matchHeightConstraintsFirst = true), + .aspectRatio( + exportImageCanvas.aspectRatioOption.aspectRatio, + matchHeightConstraintsFirst = true, + ), ) { - BackgroundLayout(exportImageCanvas.aspectRatioOption, + BackgroundLayout( + exportImageCanvas.aspectRatioOption, exportImageCanvas.selectedBackgroundOption, - modifier = Modifier.fillMaxSize()) { - if (exportImageCanvas.imageBitmap != null) { - Image(bitmap = exportImageCanvas.imageBitmap.asImageBitmap(), + modifier = Modifier.fillMaxSize(), + ) { + if (exportImageCanvas.imageBitmap != null) { + Image( + bitmap = exportImageCanvas.imageBitmap.asImageBitmap(), modifier = Modifier .fillMaxSize(), contentScale = ContentScale.Crop, - contentDescription = null) + contentDescription = null, + ) } } } } } + @Composable fun BackgroundLayout( sizeOption: SizeOption, backgroundOption: BackgroundOption, modifier: Modifier = Modifier, content: @Composable () -> Unit, -){ +) { Box(modifier = modifier.fillMaxSize()) { - + var whiteBoxXFraction = 0.51f + var whiteBoxYFraction = 0.31f + var whiteBoxWidthFraction = 0.23f + var whiteBoxHeightFraction = 0.35f + var rotation = 0f when (sizeOption) { SizeOption.Banner -> { // Background image for the banner @@ -103,89 +107,75 @@ fun BackgroundLayout( bitmap = ImageBitmap.imageResource(id = image), modifier = Modifier.fillMaxSize(), contentScale = ContentScale.Crop, - contentDescription = null + contentDescription = null, ) - val whiteBoxXFraction = 0.51f - val whiteBoxYFraction = 0.31f - val whiteBoxWidthFraction = 0.23f - val whiteBoxHeightFraction = 0.35f - - Box( - modifier = Modifier - .fillMaxSize() - .layout { measurable, constraints -> - val fullWidth = constraints.maxWidth - val fullHeight = constraints.maxHeight - - val whiteBoxWidth = (fullWidth * whiteBoxWidthFraction).roundToInt() - val whiteBoxHeight = (fullHeight * whiteBoxHeightFraction).roundToInt() - - val whiteBoxX = (fullWidth * whiteBoxXFraction).roundToInt() - val whiteBoxY = (fullHeight * whiteBoxYFraction).roundToInt() - - val placeable = measurable.measure( - constraints.copy( - minWidth = whiteBoxWidth, - maxWidth = whiteBoxWidth, - minHeight = whiteBoxHeight, - maxHeight = whiteBoxHeight - ) - ) - layout(fullWidth, fullHeight) { - placeable.placeRelative(whiteBoxX, whiteBoxY) - } - } - .aspectRatio(0.88f) - .rotate(-11f) - ) { - Box( - modifier = Modifier - .fillMaxSize() - .clip(RoundedCornerShape(32.dp)), - contentAlignment = Alignment.Center - ) { - content() - } - } + whiteBoxXFraction = 0.51f + whiteBoxYFraction = 0.31f + whiteBoxWidthFraction = 0.23f + whiteBoxHeightFraction = 0.35f + rotation = -11f } + SizeOption.Square -> { - var botOffset by remember { mutableStateOf(IntOffset.Zero) } - botOffset = IntOffset(26.dp.dpToPx().roundToInt(), -28.dp.dpToPx().roundToInt()) val image = when (backgroundOption) { - BackgroundOption.IO -> { - R.drawable.background_square_shape - } - BackgroundOption.Lightspeed -> { - R.drawable.background_square_lightspeed - } + BackgroundOption.IO -> R.drawable.background_square_shape + BackgroundOption.Lightspeed -> R.drawable.background_square_lightspeed BackgroundOption.None -> R.drawable.background_square_none } - Image(ImageBitmap.imageResource(id = image), + Image( + bitmap = ImageBitmap.imageResource(id = image), contentScale = ContentScale.Crop, modifier = Modifier.fillMaxSize(), - contentDescription = null) - Box(modifier = Modifier - .offset{ botOffset } - .aspectRatio(0.88f) - .fillMaxSize() - .rotate(2f) - .scale(0.7f) - .clip(RoundedCornerShape(32.dp)), - contentAlignment = Alignment.Center - ) { - content() - } + contentDescription = null, + ) + whiteBoxXFraction = 0.2f + whiteBoxYFraction = 0.16f + whiteBoxWidthFraction = 0.60f + whiteBoxHeightFraction = 0.55f + rotation = 0f } + SizeOption.Wallpaper -> { - var botOffset by remember { mutableStateOf(IntOffset.Zero) } - Box(modifier = Modifier - .offset{ botOffset } - .aspectRatio(0.88f) - .fillMaxSize() - .clip(RoundedCornerShape(32.dp)) - ) { - content() + + } + } + + + Box( + modifier = Modifier + .fillMaxSize() + .layout { measurable, constraints -> + val fullWidth = constraints.maxWidth + val fullHeight = constraints.maxHeight + + val whiteBoxWidth = (fullWidth * whiteBoxWidthFraction).roundToInt() + val whiteBoxHeight = (fullHeight * whiteBoxHeightFraction).roundToInt() + + val whiteBoxX = (fullWidth * whiteBoxXFraction).roundToInt() + val whiteBoxY = (fullHeight * whiteBoxYFraction).roundToInt() + + val placeable = measurable.measure( + constraints.copy( + minWidth = whiteBoxWidth, + maxWidth = whiteBoxWidth, + minHeight = whiteBoxHeight, + maxHeight = whiteBoxHeight, + ), + ) + layout(fullWidth, fullHeight) { + placeable.placeRelative(whiteBoxX, whiteBoxY) + } } + .aspectRatio(0.88f) + .rotate(rotation), + ) { + Box( + modifier = Modifier + .fillMaxSize() + .clip(RoundedCornerShape(32.dp)), + contentAlignment = Alignment.Center, + ) { + content() } } @@ -233,10 +223,10 @@ private fun ImageRendererPreview() { selectedBackgroundOption = BackgroundOption.IO, ), modifier = Modifier - .fillMaxSize() - , + .fillMaxSize(), ) } + @PhonePreview @LargeScreensPreview @Composable @@ -252,8 +242,7 @@ private fun ImageRendererPreviewBanner() { ), modifier = Modifier .fillMaxSize() - .aspectRatio(SizeOption.Banner.aspectRatio) - , + .aspectRatio(SizeOption.Banner.aspectRatio), ) } From 2b416ae8470b9577c0de2ce92668cb29b5993a94 Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Thu, 10 Jul 2025 14:13:05 +0100 Subject: [PATCH 16/38] Fixing up the backgrounds and export image size to match the aspect Ratio --- .../androidify/customize/CustomizeState.kt | 10 +-------- .../androidify/customize/ImageRenderer.kt | 21 ++++++++++-------- .../background_square_blocks.png | Bin 0 -> 46296 bytes .../background_square_lightspeed.png | Bin 149083 -> 73036 bytes .../background_square_shape.png | Bin 141126 -> 0 bytes 5 files changed, 13 insertions(+), 18 deletions(-) create mode 100644 feature/results/src/main/res/drawable-nodpi/background_square_blocks.png delete mode 100644 feature/results/src/main/res/drawable-nodpi/background_square_shape.png diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt index cb8faafe..9abaa995 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeState.kt @@ -17,8 +17,6 @@ package com.android.developers.androidify.customize import android.graphics.Bitmap import android.net.Uri -import androidx.compose.ui.geometry.Offset -import androidx.compose.ui.geometry.Rect import androidx.compose.ui.geometry.Size data class CustomizeExportState( @@ -33,13 +31,7 @@ data class CustomizeExportState( CustomizeTool.Background to BackgroundToolState(), ), val exportImageCanvas: ExportImageCanvas = ExportImageCanvas(), -) { - val selectedAspectRatio: Float - get() = (toolState[CustomizeTool.Size] as AspectRatioToolState).selectedToolOption.aspectRatio - - val selectedBackground: BackgroundOption - get() = (toolState[CustomizeTool.Background] as BackgroundToolState).selectedToolOption -} +) interface ToolState { val selectedToolOption: ToolOption val options: List diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt index 8687a719..25bcd7df 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/ImageRenderer.kt @@ -39,6 +39,7 @@ import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.layout.layout import androidx.compose.ui.res.imageResource import androidx.compose.ui.unit.Density +import androidx.compose.ui.unit.DpSize import androidx.compose.ui.unit.dp import com.android.developers.androidify.results.R import com.android.developers.androidify.util.LargeScreensPreview @@ -118,7 +119,7 @@ fun BackgroundLayout( SizeOption.Square -> { val image = when (backgroundOption) { - BackgroundOption.IO -> R.drawable.background_square_shape + BackgroundOption.IO -> R.drawable.background_square_blocks BackgroundOption.Lightspeed -> R.drawable.background_square_lightspeed BackgroundOption.None -> R.drawable.background_square_none } @@ -172,7 +173,7 @@ fun BackgroundLayout( Box( modifier = Modifier .fillMaxSize() - .clip(RoundedCornerShape(32.dp)), + .clip(RoundedCornerShape(percent = 8)), contentAlignment = Alignment.Center, ) { content() @@ -187,15 +188,17 @@ suspend fun renderToBitmap( currentCanvasState: ExportImageCanvas, ): Bitmap? { return useVirtualDisplay(context) { display -> - val density = Density(2f) - val size = with(density) { - val newSize = currentCanvasState.canvasSize * density.density - newSize.toDpSize() - } + val outputDensity = Density(2f) + + val logicalHeightDp = currentCanvasState.canvasSize.height.dp + val logicalWidthDp = (currentCanvasState.canvasSize.height * currentCanvasState.aspectRatioOption.aspectRatio).dp + + val captureDpSize = DpSize(width = logicalWidthDp, height = logicalHeightDp) + captureComposable( context = context, - density = density, - size = size, + density = outputDensity, + size = captureDpSize, display = display, ) { LaunchedEffect(Unit) { diff --git a/feature/results/src/main/res/drawable-nodpi/background_square_blocks.png b/feature/results/src/main/res/drawable-nodpi/background_square_blocks.png new file mode 100644 index 0000000000000000000000000000000000000000..4d72b39d013d6f1721fd6329cf42844bd1d2caba GIT binary patch literal 46296 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 Tt&Wz(0{#@`RG$<-h6Vf&qAGN1 literal 149083 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 iC6-C!- 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 ? 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 _@8Q$!bZOegp2=;hTb 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