From 39255c87338be88168bf24e7e719a4746ec71a9c Mon Sep 17 00:00:00 2001 From: null Date: Fri, 19 Jun 2026 21:46:12 -0500 Subject: [PATCH] fix: prevent invite code enumeration via Cloud Function (batch v0.2.18) - Remove client-side read access to invites (only inviter can read own invite) - Deny direct client update to invites (server-side only via Admin SDK) - Add acceptInviteCallable Cloud Function: validates code, creates couple, updates user docs, marks invite accepted, returns wrapped key for local decryption - Update Android client: FirestoreInviteDataSource calls callable function, InviteConfirmViewModel uses acceptInvite + unwrapAndStore flow - Deprecate CoupleRepositoryImpl.createCouple (client-side path removed) - Update Firestore rules tests: unpaired read now denied, direct update now denied - 118/118 tests passing --- .../data/remote/FirestoreInviteDataSource.kt | 55 +++++-- .../data/repository/CoupleRepositoryImpl.kt | 23 +-- .../data/repository/InviteRepositoryImpl.kt | 5 + .../domain/repository/InviteRepository.kt | 14 ++ .../closer/ui/pairing/AcceptInviteScreen.kt | 2 + .../ui/pairing/AcceptInviteViewModel.kt | 20 +-- .../ui/pairing/InviteConfirmViewModel.kt | 90 ++++++----- docs/brand/visual-identity.md | 7 +- docs/release/store-assets.md | 41 ++++- docs/store/app-icon-512.png | Bin 28251 -> 29758 bytes docs/store/feature-graphic-1024x500.png | Bin 68598 -> 88453 bytes docs/store/sources/app-icon.svg | 7 +- docs/store/sources/feature-graphic.svg | 71 ++++++--- firestore-tests/rules.test.ts | 8 +- firestore.rules | 52 ++----- .../dist/couples/acceptInviteCallable.js | 142 ++++++++++++++++++ .../dist/couples/acceptInviteCallable.js.map | 1 + functions/dist/index.js | 4 +- functions/dist/index.js.map | 2 +- functions/src/couples/acceptInviteCallable.ts | 125 +++++++++++++++ functions/src/index.ts | 1 + 21 files changed, 502 insertions(+), 168 deletions(-) create mode 100644 functions/dist/couples/acceptInviteCallable.js create mode 100644 functions/dist/couples/acceptInviteCallable.js.map create mode 100644 functions/src/couples/acceptInviteCallable.ts diff --git a/app/src/main/java/app/closer/data/remote/FirestoreInviteDataSource.kt b/app/src/main/java/app/closer/data/remote/FirestoreInviteDataSource.kt index e91ea70a..8ac1e153 100644 --- a/app/src/main/java/app/closer/data/remote/FirestoreInviteDataSource.kt +++ b/app/src/main/java/app/closer/data/remote/FirestoreInviteDataSource.kt @@ -5,7 +5,9 @@ import app.closer.domain.model.Invite import com.google.firebase.firestore.FirebaseFirestore import com.google.firebase.firestore.SetOptions import com.google.firebase.Timestamp +import com.google.firebase.functions.FirebaseFunctions import kotlinx.coroutines.suspendCancellableCoroutine +import kotlinx.coroutines.tasks.await import javax.inject.Inject import javax.inject.Singleton import kotlin.coroutines.resume @@ -13,7 +15,10 @@ import kotlin.coroutines.resumeWithException import kotlin.random.Random @Singleton -class FirestoreInviteDataSource @Inject constructor(private val db: FirebaseFirestore) { +class FirestoreInviteDataSource @Inject constructor( + private val db: FirebaseFirestore, + private val functions: FirebaseFunctions +) { private fun inviteRef(code: String) = db.collection(FirestoreCollections.INVITES).document(code) fun generateCode(): String = (1..6) @@ -71,20 +76,42 @@ class FirestoreInviteDataSource @Inject constructor(private val db: FirebaseFire .addOnFailureListener { cont.resumeWithException(it) } } - suspend fun markAccepted(code: String, acceptorUserId: String, coupleId: String): Unit = - suspendCancellableCoroutine { cont -> - inviteRef(code).set( - mapOf( - "status" to "accepted", - "acceptedByUserId" to acceptorUserId, - "acceptedAt" to Timestamp.now(), - "coupleId" to coupleId - ), - SetOptions.merge() + /** + * Accepts an invite server-side via the [acceptInviteCallable] Cloud Function. + * + * The client no longer reads the invite document directly (issue #9 fix). + * Instead, the function validates the code, creates the couple, updates both + * user documents, and returns the inviter UID and wrapped key so the acceptor + * can decrypt the couple keyset locally. + */ + suspend fun acceptInvite(code: String, recoveryPhrase: String): app.closer.domain.repository.AcceptInviteResult { + val result = functions.getHttpsCallable("acceptInviteCallable") + .call(mapOf("code" to code, "recoveryPhrase" to recoveryPhrase)) + .await() + val data = result.data as? Map<*, *> + ?: throw IllegalStateException("Invalid response from acceptInviteCallable") + + val coupleId = data["coupleId"] as? String + ?: throw IllegalStateException("Missing coupleId in acceptInvite response") + val inviterUserId = data["inviterUserId"] as? String + ?: throw IllegalStateException("Missing inviterUserId in acceptInvite response") + val wrappedCoupleKey = data["wrappedCoupleKey"] as? String + ?: throw IllegalStateException("Missing wrappedCoupleKey in acceptInvite response") + val kdfSalt = data["kdfSalt"] as? String + ?: throw IllegalStateException("Missing kdfSalt in acceptInvite response") + val kdfParams = data["kdfParams"] as? String + ?: throw IllegalStateException("Missing kdfParams in acceptInvite response") + + return app.closer.domain.repository.AcceptInviteResult( + coupleId = coupleId, + inviterUserId = inviterUserId, + wrappedKey = RecoveryKeyManager.WrappedKey( + cipherB64 = wrappedCoupleKey, + saltB64 = kdfSalt, + params = kdfParams ) - .addOnSuccessListener { cont.resume(Unit) } - .addOnFailureListener { cont.resumeWithException(it) } - } + ) + } companion object { private const val CODE_CHARS = "ABCDEFGHJKLMNPQRSTUVWXYZ23456789" diff --git a/app/src/main/java/app/closer/data/repository/CoupleRepositoryImpl.kt b/app/src/main/java/app/closer/data/repository/CoupleRepositoryImpl.kt index b27a3daa..f1db98a2 100644 --- a/app/src/main/java/app/closer/data/repository/CoupleRepositoryImpl.kt +++ b/app/src/main/java/app/closer/data/repository/CoupleRepositoryImpl.kt @@ -2,20 +2,16 @@ package app.closer.data.repository import app.closer.core.crash.CrashReporter import app.closer.crypto.CoupleEncryptionManager -import app.closer.crypto.RecoveryKeyManager import app.closer.data.remote.FirestoreCoupleDataSource -import app.closer.data.remote.FirestoreInviteDataSource import app.closer.data.remote.FirestoreUserDataSource import app.closer.domain.model.Couple import app.closer.domain.repository.CoupleRepository -import java.util.UUID import javax.inject.Inject import javax.inject.Singleton @Singleton class CoupleRepositoryImpl @Inject constructor( private val coupleDataSource: FirestoreCoupleDataSource, - private val inviteDataSource: FirestoreInviteDataSource, private val userDataSource: FirestoreUserDataSource, private val encryptionManager: CoupleEncryptionManager, private val crashReporter: CrashReporter @@ -36,22 +32,9 @@ class CoupleRepositoryImpl @Inject constructor( inviteCode: String, recoveryPhrase: String ): Result = runCatching { - val coupleId = UUID.randomUUID().toString() - - // Load wrapped key from invite to unwrap with the acceptor's phrase - val invite = inviteDataSource.getInviteByCode(inviteCode) - val wrappedKey = if (invite?.wrappedCoupleKey != null) { - RecoveryKeyManager.WrappedKey( - cipherB64 = invite.wrappedCoupleKey, - saltB64 = invite.kdfSalt ?: error("Missing kdfSalt on invite"), - params = invite.kdfParams ?: error("Missing kdfParams on invite") - ) - } else error("Invite is missing its encrypted couple key") - - encryptionManager.unwrapAndStore(coupleId, wrappedKey, recoveryPhrase) - .getOrElse { throw it } - - coupleDataSource.createCouple(coupleId, inviterUserId, acceptorUserId, inviteCode, wrappedKey) + // Acceptor flow now uses the acceptInviteCallable Cloud Function, which + // atomically creates the couple, updates users, and marks the invite accepted. + error("Direct couple creation from the client is no longer supported; use InviteRepository.acceptInvite.") } override suspend fun updateStreak(coupleId: String): Result = runCatching { diff --git a/app/src/main/java/app/closer/data/repository/InviteRepositoryImpl.kt b/app/src/main/java/app/closer/data/repository/InviteRepositoryImpl.kt index f9ff99de..494498b9 100644 --- a/app/src/main/java/app/closer/data/repository/InviteRepositoryImpl.kt +++ b/app/src/main/java/app/closer/data/repository/InviteRepositoryImpl.kt @@ -3,6 +3,7 @@ package app.closer.data.repository import app.closer.crypto.CoupleEncryptionManager import app.closer.data.remote.FirestoreInviteDataSource import app.closer.domain.model.Invite +import app.closer.domain.repository.AcceptInviteResult import app.closer.domain.repository.CreateInviteResult import app.closer.domain.repository.InviteRepository import javax.inject.Inject @@ -28,4 +29,8 @@ class InviteRepositoryImpl @Inject constructor( override suspend fun markAccepted(code: String, acceptorUserId: String, coupleId: String): Result = runCatching { dataSource.markAccepted(code, acceptorUserId, coupleId) } + + override suspend fun acceptInvite(code: String, acceptorUserId: String, recoveryPhrase: String): Result = runCatching { + dataSource.acceptInvite(code, recoveryPhrase) + } } diff --git a/app/src/main/java/app/closer/domain/repository/InviteRepository.kt b/app/src/main/java/app/closer/domain/repository/InviteRepository.kt index 783b4b16..6b4ca540 100644 --- a/app/src/main/java/app/closer/domain/repository/InviteRepository.kt +++ b/app/src/main/java/app/closer/domain/repository/InviteRepository.kt @@ -1,11 +1,25 @@ package app.closer.domain.repository +import app.closer.crypto.RecoveryKeyManager import app.closer.domain.model.Invite data class CreateInviteResult(val code: String, val recoveryPhrase: String) +/** + * Result of accepting an invite through the server-side callable. + * + * @property inviterUserId The UID of the partner who created the invite. + * @property wrappedKey The encrypted couple key the acceptor must unwrap. + */ +data class AcceptInviteResult( + val coupleId: String, + val inviterUserId: String, + val wrappedKey: RecoveryKeyManager.WrappedKey +) + interface InviteRepository { suspend fun createInvite(inviterUserId: String): Result suspend fun getInviteByCode(code: String): Result suspend fun markAccepted(code: String, acceptorUserId: String, coupleId: String): Result + suspend fun acceptInvite(code: String, acceptorUserId: String, recoveryPhrase: String): Result } diff --git a/app/src/main/java/app/closer/ui/pairing/AcceptInviteScreen.kt b/app/src/main/java/app/closer/ui/pairing/AcceptInviteScreen.kt index 2f0f6847..c0f11af9 100644 --- a/app/src/main/java/app/closer/ui/pairing/AcceptInviteScreen.kt +++ b/app/src/main/java/app/closer/ui/pairing/AcceptInviteScreen.kt @@ -135,6 +135,8 @@ fun AcceptInviteScreen( Spacer(Modifier.height(28.dp)) + // The invite code is now validated server-side by the acceptInviteCallable + // Cloud Function; clients can no longer read invite documents directly (issue #9). InviteCodeEntryCard( value = state.code, onValueChange = viewModel::updateCode, diff --git a/app/src/main/java/app/closer/ui/pairing/AcceptInviteViewModel.kt b/app/src/main/java/app/closer/ui/pairing/AcceptInviteViewModel.kt index e4de42b9..3ea284ed 100644 --- a/app/src/main/java/app/closer/ui/pairing/AcceptInviteViewModel.kt +++ b/app/src/main/java/app/closer/ui/pairing/AcceptInviteViewModel.kt @@ -40,22 +40,10 @@ class AcceptInviteViewModel @Inject constructor( } _uiState.update { it.copy(isLoading = true, error = null) } viewModelScope.launch { - inviteRepository.getInviteByCode(code) - .onSuccess { invite -> - when { - invite == null -> - _uiState.update { it.copy(isLoading = false, error = "Code not found. Double-check with your partner.") } - invite.status != "pending" -> - _uiState.update { it.copy(isLoading = false, error = "This code has already been used.") } - invite.expiresAt < System.currentTimeMillis() -> - _uiState.update { it.copy(isLoading = false, error = "This code has expired. Ask your partner to create a new one.") } - else -> - _uiState.update { it.copy(isLoading = false, navigateTo = AppRoute.inviteConfirm(code)) } - } - } - .onFailure { - _uiState.update { it.copy(isLoading = false, error = "Couldn't find that code. Please try again.") } - } + // The invite is no longer readable client-side. Move directly to the + // confirmation screen; the Cloud Function will validate the code and + // perform the acceptance atomically when the user confirms. + _uiState.update { it.copy(isLoading = false, navigateTo = AppRoute.inviteConfirm(code)) } } } diff --git a/app/src/main/java/app/closer/ui/pairing/InviteConfirmViewModel.kt b/app/src/main/java/app/closer/ui/pairing/InviteConfirmViewModel.kt index 30bc1b36..82c1ae11 100644 --- a/app/src/main/java/app/closer/ui/pairing/InviteConfirmViewModel.kt +++ b/app/src/main/java/app/closer/ui/pairing/InviteConfirmViewModel.kt @@ -5,9 +5,9 @@ import androidx.lifecycle.SavedStateHandle import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import app.closer.core.navigation.AppRoute +import app.closer.crypto.CoupleEncryptionManager import app.closer.domain.model.Invite import app.closer.domain.repository.AuthRepository -import app.closer.domain.repository.CoupleRepository import app.closer.domain.repository.InviteRepository import app.closer.domain.repository.UserRepository import dagger.hilt.android.lifecycle.HiltViewModel @@ -33,11 +33,12 @@ class InviteConfirmViewModel @Inject constructor( savedStateHandle: SavedStateHandle, private val authRepository: AuthRepository, private val inviteRepository: InviteRepository, - private val coupleRepository: CoupleRepository, + private val encryptionManager: CoupleEncryptionManager, private val userRepository: UserRepository ) : ViewModel() { private val inviteCode: String = savedStateHandle["inviteCode"] ?: "" + // No longer loaded client-side; the Cloud Function returns it server-side. private var loadedInvite: Invite? = null private val _uiState = MutableStateFlow(InviteConfirmUiState()) @@ -45,25 +46,17 @@ class InviteConfirmViewModel @Inject constructor( init { viewModelScope.launch { - inviteRepository.getInviteByCode(inviteCode) - .onSuccess { invite -> - loadedInvite = invite - val inviterName = invite?.let { - runCatching { userRepository.getUser(it.inviterUserId)?.displayName } - .onFailure { e -> Log.w(TAG, "Could not load inviter display name", e) } - .getOrNull() - } - _uiState.update { - it.copy( - isLoading = false, - inviterName = inviterName ?: "your partner", - isEncryptedInvite = invite?.wrappedCoupleKey != null - ) - } - } - .onFailure { - _uiState.update { it.copy(isLoading = false, error = "Couldn't load invite details. Please go back and try again.") } - } + // Invite details are no longer readable client-side. The Cloud Function + // will perform server-side validation and acceptance when the user confirms. + // We show a generic loading state and proceed to confirmation; the inviter name + // is fetched after a successful acceptance if needed. + _uiState.update { + it.copy( + isLoading = false, + inviterName = "your partner", + isEncryptedInvite = true + ) + } } } @@ -74,30 +67,24 @@ class InviteConfirmViewModel @Inject constructor( _uiState.update { it.copy(error = "Not signed in.") } return } - val invite = loadedInvite ?: run { - _uiState.update { it.copy(error = "Invite not loaded yet.") } - return - } val phrase = _uiState.value.recoveryPhrase.trim() - if (invite.wrappedCoupleKey != null && phrase.isBlank()) { - _uiState.update { it.copy(error = "Enter the recovery phrase your partner shared with you.") } - return - } _uiState.update { it.copy(isConfirming = true, error = null) } viewModelScope.launch { - coupleRepository.createCouple(invite.inviterUserId, acceptorId, inviteCode, phrase) - .onSuccess { coupleId -> - inviteRepository.markAccepted(inviteCode, acceptorId, coupleId) - _uiState.update { it.copy(isConfirming = false, navigateTo = AppRoute.HOME) } + inviteRepository.acceptInvite(inviteCode, acceptorId, phrase) + .onSuccess { result -> + encryptionManager.unwrapAndStore(result.coupleId, result.wrappedKey, phrase) + .onSuccess { + val inviterName = runCatching { userRepository.getUser(result.inviterUserId)?.displayName } + .onFailure { e -> Log.w(TAG, "Could not load inviter display name", e) } + .getOrNull() + _uiState.update { it.copy(isConfirming = false, inviterName = inviterName ?: "your partner", navigateTo = AppRoute.HOME) } + } + .onFailure { e -> + _uiState.update { it.copy(isConfirming = false, error = recoveryErrorMessage(e)) } + } } .onFailure { e -> - val msg = when { - e.message?.contains("AEADBadTag", ignoreCase = true) == true || - e.message?.contains("decryption", ignoreCase = true) == true -> - "That phrase doesn't match. Ask your partner to recheck it." - else -> e.message ?: "Couldn't complete pairing. Please try again." - } - _uiState.update { it.copy(isConfirming = false, error = msg) } + _uiState.update { it.copy(isConfirming = false, error = callableErrorMessage(e)) } } } } @@ -105,6 +92,29 @@ class InviteConfirmViewModel @Inject constructor( fun onNavigated() = _uiState.update { it.copy(navigateTo = null) } fun dismissError() = _uiState.update { it.copy(error = null) } + private fun recoveryErrorMessage(e: Throwable): String = when { + (e.message ?: "").contains("AEADBadTag", ignoreCase = true) || + (e.message ?: "").contains("decryption", ignoreCase = true) -> + "That phrase doesn't match. Ask your partner to recheck it." + else -> e.message ?: "Couldn't unlock the couple key. Please try again." + } + + private fun callableErrorMessage(e: Throwable): String { + val msg = e.message ?: "" + return when { + msg.contains("not-found", ignoreCase = true) -> "Code not found. Double-check with your partner." + msg.contains("failed-precondition", ignoreCase = true) -> + if (msg.contains("expired", ignoreCase = true)) "This code has expired. Ask your partner to create a new one." + else if (msg.contains("already been used", ignoreCase = true)) "This code has already been used." + else if (msg.contains("already paired", ignoreCase = true)) "You are already paired." + else "Couldn't complete pairing. Please try again." + msg.contains("permission-denied", ignoreCase = true) -> "You cannot accept your own invite." + msg.contains("invalid-argument", ignoreCase = true) -> "Enter the recovery phrase your partner shared with you." + msg.contains("unauthenticated", ignoreCase = true) -> "Not signed in." + else -> e.message ?: "Couldn't complete pairing. Please try again." + } + } + companion object { private const val TAG = "InviteConfirmViewModel" } diff --git a/docs/brand/visual-identity.md b/docs/brand/visual-identity.md index 474a998d..a785fcb6 100644 --- a/docs/brand/visual-identity.md +++ b/docs/brand/visual-identity.md @@ -33,6 +33,7 @@ mode. - Primary promise: **A private space for two.** - Supporting idea: **Private by design · Made for connection.** +- Feature graphic support line: **Daily questions, private reveals, and gentle ways to reconnect.** - Prefer calm, specific language. Avoid promises to “fix” a relationship, competitive streak copy, urgency, or public/social framing. @@ -40,7 +41,7 @@ mode. Approved production rotation: -- **Your relationship is yours, not yours.** +- **Your relationship is yours, not ours.** - **Answer honestly. Reveal intentionally.** - **For conversations that belong to the two of you.** - **No audience. No public feed. Just the two of you.** @@ -57,5 +58,9 @@ when the couple key is unavailable. These claims describe deployed behavior. - Store graphics and screenshots should use the same purple/pink palette as the product. - Lead with privacy and mutual connection before feature volume. +- The Play feature graphic should show the heart mark, the primary promise, and compact product cues + for private reveals, two-person use, and daily rituals. Do not turn it into a feature checklist. - Do not show intimate answer content, real email addresses, invite codes, or notification tokens. - Use clean demo data and crop out development indicators before publishing. +- Re-export `docs/store/app-icon-512.png` and `docs/store/feature-graphic-1024x500.png` from the + SVG sources after any mark, palette, or store-copy change. diff --git a/docs/release/store-assets.md b/docs/release/store-assets.md index 89fdeaf9..4fc5d11b 100644 --- a/docs/release/store-assets.md +++ b/docs/release/store-assets.md @@ -7,19 +7,42 @@ ## 1. Store Listing Metadata ### 1.1 App name -- [ ] App name finalized: **Closer**. -- [ ] App name matches `android:label` in `AndroidManifest.xml` (currently `@string/app_name`). +- [x] App name finalized: **Closer**. +- [x] App name matches `android:label` in `AndroidManifest.xml` (currently `@string/app_name`). - [ ] App name is not trademark-conflicting in target categories/territories. ### 1.2 Short description -- [ ] Short description <= 80 characters. -- [ ] Communicates core value proposition for couples. +- [x] Short description <= 80 characters. +- [x] Communicates core value proposition for couples. + +Recommended short description: + +> Private daily questions and gentle connection rituals for couples. ### 1.3 Full description -- [ ] Full description drafted and reviewed. -- [ ] Mentions key features: daily questions, question packs, spin wheel, date planning, bucket list, answer reveal. -- [ ] Includes value/privacy angle (answers stay private, built for two people). -- [ ] No misleading claims or guarantees about relationships. +- [x] Full description drafted and reviewed. +- [x] Mentions key features: daily questions, question packs, spin wheel, date planning, bucket list, answer reveal. +- [x] Includes value/privacy angle (answers stay private, built for two people). +- [x] No misleading claims or guarantees about relationships. + +Draft full description: + +Closer is a private space for two people who want more intentional conversations. + +Answer one daily question, explore deeper question packs, spin a shared prompt wheel, plan date +ideas, save bucket-list moments, and reveal answers when you are both ready. Closer is built for +quiet connection, not public posting or pressure. + +What you can do: + +- Answer daily prompts and save private reflections. +- Reveal answers intentionally when you want to talk together. +- Explore question packs for trust, gratitude, home life, conflict repair, intimacy, money, and more. +- Use playful connection games like the spin wheel and this-or-that prompts. +- Plan dates and keep shared ideas in one calm place. + +Closer is not therapy and does not promise to fix a relationship. It gives couples a steady, +private rhythm for checking in, listening better, and making time for each other. ### 1.4 Keywords / tags - [ ] Primary category selected (e.g., Lifestyle, Dating, Health & Fitness). @@ -35,11 +58,13 @@ - [x] Android 13+ monochrome layer provided for themed icons. - [ ] Icon tested on light and dark wallpapers. - [x] Round icon variant provided (`ic_launcher_round`). +- [x] High-res store icon source is aligned with the Android adaptive mark and palette. ### 2.2 Feature graphic - [x] Feature graphic 1024 × 500 px (PNG, no alpha): `docs/store/feature-graphic-1024x500.png`. - [x] Brand name and key tagline legible at small sizes. - [x] Complies with Google Play policy (no device images, no price/calls-to-action like "Buy now"). +- [x] Leads with privacy + connection and matches in-app purple/pink visual language. ### 2.3 Screenshots - [x] Phone screenshots: 7 current captures at 1080 × 2400 in `docs/screenshots/`. diff --git a/docs/store/app-icon-512.png b/docs/store/app-icon-512.png index 3936ffbe7474ca65b579674d2292ab7d251b4910..26b1f796f6aa1934f4a6a127cb217436c6bc241d 100644 GIT binary patch literal 29758 zcmeEuXIoRv_IDJKBNi+miWHR~0wPK;QWOz(LebEqD@CM32)(Me4W(@YNEc0lArO>K zs20S45Fr%lEr_A_76|_h_c>qUxt{QXePw3PtXXYl{nnbiyltp^m|K7w27?_2^lqYH zu)WaZUf9w7&_CSY|5QN#&N}F!3}CR}3ouyZKQPz^^i||v7|ibq3^s8O22*_lgYkQ( zQ|?@Y8ur^Gb#Frdq0hQ@Wdsc7+W_3WZW7ot-5>CV*Xdp9e2%LAzGvxTdbe-ZMRqGZ z-s5}oPF?!#J2&qf+sC)>(0?Q!>=S!=PwV>iqt|t`&@C#5<>-~VFcXNJonk_!n&BC@#h-#+_xryWUZ!t6f4low9@`=AFq^zQ>4wzDkg za~#I;@56z}J-ZK)`|AGvLTm56e;>~7f!4S4iG%(BVgBXB|LeRdzm=)9vY>I$z&sr0y-;>FgKM{~@r&KSK5t^k7;-R6RNAg=B3;EUt>s^}eLh-{wRh-8 zymYgL=4_@BEzbX1vD;D)ioRokFxb%T%~1zfhKJ!xy7|V$H?P_d=U5Z0wRNh}7mVU= z59L$a%CODL*1YTH4?oD0I~l_=woa;NcH0DBa|px2$0L5);T_*D4YPe%EW@iAJiBd2 zzFp^m)k+B(%e!o2T>Ab1Wi<~|H2yW1xqu@4xUb!PHXtIUaK>PlMZT(#!(EPeA`hjP^JHN>06 z0&a{H5I-QpUMtV3m9^QWKr8fR%ATPB{F5*t?pJu877_Y#N`rpazf+6YdqNDK?+|nT zvyQ)G)6l=>&P7+)ZNqw9RfBDkhj8x>`U)ULY*ey+wlfHByKNVJpJ>(HoL}V*j#0w(t_-2Y4Uelmdi|J=>Nv#8QYn!rJ^EhhAACg`Jn9?e{ULj zcL`@p6MG>#yT_-qs!0{{&piJr8BK@3mS9k4lA}dC{dm~#`yGvlJdXzzU|C6 z6@rcmKnR%2Gh448{@-h7Ms}uK`LWe7Q)Mj>K*xDNN=o_HDHo0S@3fs}<;>>FL{D!L zBO*Qi+ax!#vpU1xzSa<7P{S~Dt^c6M|Aw?VAO{I6KyM(aItLK(OZT?kzV_eM-PHYZ z7*^Y)R`fQcQ?Bhp$alZ+mEixj30fT3;pSVX)^3#&98XVd#bS#1f5-H8gl|GC7->Qp zHcNp6$c?{IIl+jSUgEI6tPST5!?n604c0{1E!f!pO&G|KrMMPQL9a)%pGIQ;s{r1C zr(o>I5yo$I0aKTD{!v{`HG{_G@e-P~BV}i|g+*$Ah0XCiF45-L?7+>(8VsoYHFsG} z4iR^sc=+EQPrkyuBfm6@@;o&IvYyrs$c1JVf9g)EM{=c-cg<|5?g~s09+I3P>>?57 zyAhzRF$YLxT36f89HpD?Oaj|f-yf;XDDL1iB+FMW8=cYogkL{+GCySlWJ>OKU<-28 z4L6#__#+PfkzxDvC^A`c;Y$W@Tvh+2ayzR5qg7=QL{E(kPrtC9xsWfF3AZr|Zv9oM zA#cMubnk83tw~_Vfm)`SCAos4QHNU9hYE^GqR=^@r)Fz-1I>_ z1E40PzY?3Zp0#FiQqvd)=$fRefRI^#MdS>A2H#Q-x;-tq@dTb|iErTnTYjDHq=I2j z!k$o&@#5!=?vCR1p6hXuZgSh4p>(R6a)+JR_&#xolg6DnHX+K%+P85x3wR{{*r>cF z?s3*W4WF<}oW_qOI*&@Mnf{eBHnpkzWcG+bo(cQi7}v)iR8uMd%=A{B$vX*-o6WjTo}vmZSlf#M zoRr zn0q4byw^W=-j)bM{*cGQ@#)U#2h$S?G+EdiXTQI{a6lJ1#z7Ts+c9|8IjpD>H#tzg z(4lK6Z^Hq7~-#iSUm8tAIXOa}Xi4mPGZtReGjzYId6U$Wh2I;l@LD6=#- zm8^kIpILENKev8aB3RZQV7~^B#jl{e|C!|viRYzAd8chfIfG4eATF>sBu7|(%Ii=HW77w`!QP>!1H5mhr(^6ejl@{eM8=N{MDpsmqq72 zY8p0_;Pwprj(f{mQ_p4ADSh&^lo&sb(TD;c`gyFk)*R90t6V@`$@?L~Qhj*9v^MN>l4lk3z)o7-&VD1!Ow-gu*grrS*fb9m7 zs`+#BwA&K0Uxd%i#6RBWoH4o45quZn66a4KJvX^;S|U8a!Y@_5_UiLB=o-E~rityA z#NbWP?w_}YS5SXjwD?(jfRvu|wM} z`M6epcx;+r1!V!Hq~`pUr@+N zE@y;T!*~FX-6fs2FN135=svLH2RO9y*0jFnC$?Fz4ATNl{fN^wCoD_1e`0uVE9SlI zyqOP5E|c5U(An)jJRMmNkf)brC!S8GlC|@?$i)ycUYHa*NeY@N z|CF=oL2oCqjKu++5^lGOK`>or8K0X**8bv_Etii#Atsk5t&I?-o_PrgCX!;BNs1i` z?HIvEQu>9;;C->l2)93WLK;Se4ZVpOp9v(`H;(<0r@Fi?w#uw9No4k1A)Y7Gld^x! zH*-F7zA8dJzRR-{!cgAe@w^qo!2Ruc<}tnOgCQMk2&>R`89a2Y8*IcyXPl+>V-MV)LB;LTb|(t=S_tV+UaE0+8a5<&hM8Fgm;SZaRMzI{8*@8p>;-%Y zIq=>1DdL~h?<7#^P0U`lZH)7{&gbtaAbIoE*CfW0UyquUf%%>nI)`9mSm%n67iHNP zs?qfRf%%knNA349`QvF2qp53(qrG}o#ATuU*^7orc?2_K=Uk@b(9jwei>tC%&#lj` z&&3TlV*JX;F9&)d56DeX?X^MXst|{-Qq{$bl5xnqZ~`gv38vOJ?Ixu$8JuGgVEsN<1Uny>}zI|Gp~sSmLVStV)YAvAgksR2U7> zVP)#Yx7mT=yIs1XUNoD6lWa?hwo)WqPPoy3qd!j(VwT6u<(ZItCsZQObocRA=Zv+-?Zaa$4TJSI zUGqkgMDRSSdD7LIKiEvw-}hCsn7V=Pp4JlbSWgo32|mxIn_fkmsHL5|8A{BvTtG16 z8(&>p#0zu?SSN+XFfX2^6s}IMU7LGiVn1HSopnLtEvg&R^qVJUN22A<#P%#KwmIYG zGcL%Sk#EHuwog=ojx(XsCG3yO&&8bQzKFb>{@o#Mmb?TS{`UQnIdT<+u4RO`_z_6A z&90RNnp0xpC-l8k;Uyw6oAJM0+g-g47J^XI$*}`*mb&QL>6H7^kXJaHTE6#e3%>u& zh8fGWiI{fbw7=#y9GITN>LuRdZZNZoRrM{VdTMUJ|(W`#JJC zFcUo!P5Fi4V@FL&m~%|35WgqwH*B2W?V4{Cip6f^I6jK8DY;)&OYr2pQgx=+~ zZ`TRNS5UPF0~)NLRZiVwdxHvm|U{M zPbr}X=1P@p5(3+vI|`1T7V9|GdPSvThk-TI8o^(MYO-*@R@u5!C!iyUvS1bG+0WCS zC1vajRvTwS^ly3TN_tH8niqe@@EtKrRFfJ!%}(KGYsr_~_34WOjoGY|XC_bfztg9i z`s79TSR~>lw_GFAF8|>b)4u%O^otcmaqFBx!83Ib{3EnHkXBOUw2{r_+*?# zP3|nVjcD6!CXnWgTrYI!bK8iP^!yHX@IgY0uy^(LdGcyYTu+*&!JY#BKoazqDR0B4 znRlp5i&SJXIdQ846bDYfchwl4cBOFZ>6d7z_oTJm%>9K&>+)#BZeN~13ENabCS4*r zHGZmaW?w9+9PbnNvhY;pt|j%>c(R60qv%?6Ev6E|?Wi2su9qk_d85mr69ZJ+h*)(Y zI&ad%$)@1)tMT*Z#(-3{cHcDI?RmhH$#Yao=IOt#;uZ(1mC9oi@@CZ)teK!~K-tHE zxV-T`r1dI-Qg7{Ecx5z+AVb zI2KGVx}n*v1|R=D=dr>M8mnXZf~?W5&-+$8~nK;AK+($eEr?mo{ zolgj)cOPmDli+SINwM$>;eZGU;Br<77GBY^C@2MxbE?0JQMXE0%>i`m0yzv3OhX8Q~f&@O;-ZNdSerKj#ZXS@R*{;Vh!JE>PI@%m#GSJn13{ z7)r4u091{Cs>YadU`79`HJ_japGN9p=m*FXz_=dofpOvfWOR%xe7M+eJxpn>-k(AS ztaT5ox!%23+#ZM?rPh%2yUtqX8InVrWGq-!F)RxzMan7N8PC{I@OY(UhZf6GT0N4S zmn~5cqWXrcj!tj>tP(#BZn@19hQg_2YqamfLdMeSw%~w-3f~Q1(K2LDm{%JfWNck= zih~E~;s?(GRG~J_IQVK5BZ`prUP7KyOn`IFNZVcpvW<}iNw{BHgZe;}{Nd&}ctdI0 z8_)Xf#xoUNClDa_hPu&UkhKK&_PGll#)yO10p zUAUsx*-Kok4ghAd8s(6))v#>z57l_`Afz`J~)3;On!^nwH=Vp-^)K=o>9Z$Jn3$5#~d4_&kpq zZdS3;Hcut*nbSQ4yLdvkIhWYxDI@MWW`Sz#KTWBK7`|-j51j=VYxUlRohR zXXSp(Vc5$(FsDoX2sH(VOw4pqa_z#LKGD@S@oGs$`*Nh|I-yZ%SO#Y%QyTnf4MMoq zq|6Ra`b_FmQ?bF|xDZt?H#po<3msjs^Z+eb%cXgzdojwHs|+!$)tLldqgMRr5)UOa zcva-mWdki6ADb;&IrWKi4jig+F}M;|teZLRIvYzSpthW(Dfk(Mqqnash*1}f(J$e6 zTk|m!Aonk+SuOd*T`HJ<22NzWPN#sp17q9M=Mv5(rh2~OVr_V-e9aPFr<|-k0VqJA zgW`Ue;IU5MPIWSzxfIY_6V~0(M(oPKY>QR#Ps!jlliBJ0*Hwf5P~{FbKzg_BblBU= zU;R==m$`6OA!0#4PcHk0O8FV}m^k;ttu)l%q+WeE;EXqv8X3u(iz3bcWYth!4y4|Yu0N3G;z_{vJ#^%SRFLT zI`Qo?D}Rmznp|=1Vu6g>>MKTIx|By|weP7F>reM_UQc;L`v;SHRrWr(0y`@ilWQS^ z)~8^mo0B!?uFNKF^2`Pd%%jN14S%Vyn}pgZkA! zF?{wm7mHb$?-Il+{n&DBU$`@IvDe`!Ph3P{L}6t`@dxU=3w*P2Q#UGa`^>fTkqX`3 zc39-D8ZQnIJ;Z2ZKz?3MY@O1Aqybnpn8Q8`@ac9^tU(mPob0wCcs86jvziqGNan}0 z@bGT0Tb@e&Cc@KI51J3-U*UfI@)mhsyA8Wj4~zVOa07$w>Q`|jNtfUSC`@E#%_YIIe7i4z+y8u{M5fb)#>xS_;?EWG0RDx}YMefb!E9X+EcHk!)#- zvlJ4*iy2{2n&jfvFu(4wAkq^BJrK0vI|wJD|J=zCqn0%EQkSwteRze6R*wOaL~PM* za7sp0R9`8P>vMgL<%*e$SC&E7It`nCtR<}F0(2C#zXyvv*7-oXG$zrIQrj#ut&!N` z>9f&Df+D!6%z*uo75JjVJ zm`O12bx>uq6eNzp`1t^^&QZ|BZBkAKg6uN-K4q3Z~|87nJH3W_Q_ z#7-|#wMu|Xh^aedz)e%y9)e7Vee8nAZUJT>uI;@qzaB{cdf<&`loO|Dk^eIS5XA5J zhm*Er8~gXezWrk<H8%CZx&{`EK&0dV=(g3u*|Sz zAfZn^cPvLkB8bv%m^-9s^YkWPh2nTa+cZj9)9nUTlA7{ha5jCROQhDnx5tAiqSvif z7!b%aD$LOe*5oYYWOk#VfaO|N==%N8?Dv>lIQ|e3D-D>6sHuKk`m~43ZCgA|CK*>( z8)bW?|9I2N;XZVxrul-Oq_8lcXv6VM2_hGZzE ztYsCc?Es3J1WJ=V2&8TEwkhmEo9o1x>EMxc64l8L3|#fbF4F~N@s|%A>JipeIe*p;H`_#*!ELBL+o!GYrpK)DvjoF04foC zOC3(!nD}F)S2d>_3WR?e@dR?0?>DW&C8kFtqr+K;O=bH}B3*9^2xg&EaVDm`<`a8# z_i@1Nd!Bu1w!7StbjwV*_ap7BL`1~(=qWA(bD{FovW{};rPn4EzGE%fcKTi4WCHrR z3&fg}L9XJzCSiq)9_&^1ibI*SBR3PqK}+qnh$L`AUf5(^oEqF(-PAD}p*izAEw;MC z@gLkoE;;V=5XR|;Xvf{|vzqI_pR84>x=I5sUM5@mpsSP6Ammm^X6%8XR@fcWAg8a5 zpow$|Z~{QDUwdz$RR0(&%$G`8K`@DlNR&KO}vTB)HMeo=joDQMCPLFpzZKMs(N7$x%~#+v@ZVG zHJ8zkeMoqS?a-Gw-R-UA=w-!rWSY#hP?m}Ywa)65_4{*yVYFkKc_=Jr1VF6k5=~(Hw-J) zQr3cE*}Jr+G$CpyWuni>N{rSI6G&|HB5Lym*8Vi|3(d}3v+}FbD74GsE0V(SQ_bVr zZQz4`Qn*w_VcTzSA&T#eqG3Ta+;yk^ZD{!x!wP9qHpZhl_seknqZcJZk8!!yhpuHBhd15#{zm-CpC zXDOh7Jp01}n!2Tj=K^!st6jaJm@m5ZbT}#3)Rb%P@#bxd0?SuK zf0f(>bF2F1#DHA1>HFjK@go<#B-PCWYT%~T`FH$)LbJ-_3k}>ZTXGZSgUP61T*S1n zD`o!+ozi5R77xM!N}=6hf16ub?9K~r3E}aUWghg>H^}zJ*J`!s zCaeGoMS8zw`UL_ce-DLKe(rnSE4KR2>s4biwn{w2s8n1}cUdLZ=w4qut0u7~*QdDb z9b==f2vFH(u`)BMWdJI}*RnYg*KSUFtq?|zT)6Cnc8Y~}KGf>bgd3?Ccp2;@_T~6_3sTWeB>)xP8(Gi@ypuZS=wBzxVf4nu4z4 zLW2N!Em^!nwx8FOly}09h#kmBE78K~SGCr^!y?O1R>7C>+m_7ADUp@XKHH7W)Pmlc zaAbE_*lOC0lHYsGPtFGG+lBQ@tx0xfI+MpqM8;O$%v4k_+^9cQn|`>j{m{kODjE55 zjZtN)P4yR1U=Wc{C`mQj{KxTd@%{<#%xA5(0hT3r%Z^yjL~ymXHlwt*rvx;ao+qeq zvG98YGgFZMajpAND z?^6;h^@uvByDAYlOXn_CwZK#6zf3-o*iH1?3sXxmA3d>*By&*Gu%KTTlq^$?>OOHL z?*a7_6#a%oAdKnKttR(_I=IwVQ^>GJ@%=D3?q1ftm$Q3aZpC&#xn*}D%xq)1bh!7( z=3;+LZ)-|hD=95+rNThOVBNvARMjFM?p3{^Ac+UaVTl>M!ne4wFL6An17^$nm~WCA zwwmlN1}Oz9DHriT?{BHkTBhM9(k5$DixDV4g+$!z&&!>9sQO;F2&auxdp5USLxbEo zfdyR7wfht?f!zI*WTdNfg{^yLWpP0J3yX)Dd` z<|hHJG_tx{c?ZT%g<%?I3SL7__>%&o7?xRA&jlqy(4&T!sas!uqdfEP(gl%qP31Wn z3GI}T59oloqzbsH20q*mKtz;$KTL={P&Y_Q@tHaVpp_6CR18wyr2OrK9?gXy6}j+q z4{YtpP*CYo=VZm4VGmT7Ug z;<1h`LM&(9XCmLVnd<<0dhVJBWlS$O*rPuNNJg5)cXU$*Fo$nzKy_6S4z!?@0%egbbYiU&$Yij3JlRX?A5af`HgQQnWkZPd+;dIpPU-rO+A#3 zsR@HeBrZ?B0ykl&@Ft;8EB7xk<2=CRH?{Mm2-OV}eeM)J7o%?UxjI7xAd2KvD=X6= zjp5o48-o4gdtUm+7H%a`rmyc~Av1O1YnXri5o$A>mPav_B0yo~aVxx`^n{73ZSFw! zpBFz!(2j&1mD(J#yA9!^+*5ngn`WeA$5B6}t{RJ`5M5XU-Eu2a!-z@W4o?af* zvy~=h$Cy)gaMr6Z7}wC>1ObCQH7x`=ZYjU)P*#CZfwj1J?O28W!e!TT(f4(j!;zY< zqh4hLC1!;+Ws12bt{=;m$=D9m_rCYXCo4v@_5#zk_%t|v++352X^OvR!|Wk6;BW*Y zsc)wu<5Tn=m@=%3VdL{fB}ata^)jGynml2aiY=yerSp+T?tR$0cF zE!@3j3F=;^TII8A5Ml%enBa?vGgd#573~;K*ooZ1PInxpf;bmgk%`UY=_ZcVh6sjXhM7P|Tl(Lk2}7zYG5nn-vCK85(m zOP6+%C~>OqoN>@Mhkb&=;U^ zPYsd)rB2;)A@p{R?^7BiJXmBQwiy4#8N@Ew;!Pmxvr%aR0l{UEi?ct-0h{BJV1agq zx#tv4M--dRYCs~W7egXkZMRbq()u~j>!L*0!S`tha18CC*pF5Q2MnjDUBxScD<&+q zc9i4Mjt{tX`mkMrTqj0n$|nnz4WRg_Jy|O;tLPol&k9KXEKupiXj|wt8VLPG>>N&@ z2xW-JP@Tm%Elqesej#LbrpakJxk~DcnE48{!@^*#Ci4?LUV0!)eO8t({ajQUk5UTY zq4R0E--C*{s8R*jP|wHs2SdK|5FG5EtKl0N*cgHoL@tn6Q$VlBd>#IvT(j|TmKR96 zM3;_q+3}Xe#>US0yyU7AP(g^NqK!kQU+m;QQYpj2w#=yBceg|;0X1&o2Y}khAaDhcTr{ii~U%Q&K`= z=~GxV;}ZA4>2(yk<}mNAOfY@@vy|wlSi=Ezk8LDsT+eRY8mR0rpzDk5i#sKlOhN2;js;OIk#^kQMMACkK!GPlLCrCdR3DBe`s{fKXQBBhg`CixPm}r&EV;!}~ z-t$4h?cv2=m{3OJZ8|bk`^&T#>v5azjT~f4!=svEU$Go`U^p(Gk$x=mzE}J%cn$y} zJt~GoT*bQoe(jLYw&noO!8>v-2U4 zVUy$pbRI1moRGHgRd1+pMVNsB*pL)QKYixJx;5GWIsGR^(!z>2r$7zps6=z7KC}`!pEWq=3gh2@0+-z-TBIb*w(mV~|llf1O0C`W1JV#tZLtjUNkFz<)yPAkWOg<7j$M&Mqr zlS;|BIfEJ&T%u6C-4>i${IUqA2GvnFrcWfkiRePKdU1TY*7X%+Ncz``12b-*000Jr zBA(2SuQt)Pqe15%I)|-Y`y3J^Sy6q1)8( z&$XA+MTy$wl#B~1AsIR8`)ZEk^X_)!&vd$g8UeJ@Qh=N(k)#Vw_C)z6cqRAon;RG| z>#6p;k^&66Zi#TzWi5LA&_sZn4g6J?fb0}JKN1C(me&K*DJuqqGoz_UVW2Rzd_oT# z|Aw;x8Pge^w?S0Z=~rSBc$@D}3C8F6q?-kIDj8&B<@(WA{HuyK7TV0=tdSpD1Fc;QF7|LJMIYD0A;i-i42c!6~ymx$VdB^bpm(p+gM_EiBY%je3pWcd%KNzcsJ*8 z0vzC5>NR>>w#7P;${ybyc^V=An;QuhwGK!C*)PKZlpfmyG|BCA1tHuZ9=;kh-~cIf z@Wev^!L(S1_B~_)RL`dk?Bg@a>j%K797h`{5oE>Ep&M|0>2F+2HANQkNsQ&Z)syer zcl1EMf4${;$Hp7-m4=P;%g1S_fJDFdmZ@Y3-OJoorMNkV5ag>6}Q6^g_$Hd#+K?Vr4VAxI6nG*Xroe?BdWc0@7mMsz@y z?OF}5o<+ZEWoN|p_L*?mBEG59 zOtXB^4rJKfU3&`ePWze&2UL0-DMDQLiylA@^T{tO2&t|7XaX)A^zSY27xDCEDdaO3HUF-keEq{gw9cfI)UKXq21oLJQWd#lPXSzfEnOB1)De04jG zHw$u)=|w0s@6XsZF)J0#q=Cy%6W_P>in+zC-VN}hhB?>Y0t$dkio$b(-FX*s&QlVF zxv@5WCVllCJn?e(AOd{+9zjBa3HP(k0;xpx?LqM=(-`K1o2`n?3Ai6Vwf&->mKFzv z{cq=1#ej~}=;%Zo?xc$h0yUAED-9t@A9Ax&4P|0wXUIzW;N}zV{i&WRM+Zhx!iC}S zxOW7CRpdhlXr*o#yC)+(&A5m`q{{ufqUr$^1U)jB~R^!lRSR$CC zogYBwPa{j$hRTdp!vUyNxjg~*i-uPMKzetDNt>4!J{~Uo;Q5oG@~I?{_paTwTi{;F zBsd?Yf4u@8RBMzW3b>Sz!Y=_XwPxc++qJ{&i!Q0~AWL{Yv@hh{>%NvT@*lu5wT-&m zTe5x7pbXaf-3oF~0!HrEwKGTPe68c*q_%Zxw1N2>hss5}#*ZhcwZ~J>ku~vqnIu|^=UGl&kCvtoRH2u2sBE2q z@V4$;7nlr}fR1mSU~vF5ss_XcG_9$OS0%V@3AC?=|)J;G8e!-)eg z%3x>DRn!z~d^|p9*G$d@Li%*TDC^~X1i`H_)3~VE{I8nClFOg@dIhoZ8+Nq06wr9; zC%P07+>ALlXV>yIK7U0Nb(fWOG3;hk`;V~pfM*N@!t0OF<)90lLRLO_$Be|KBGwUl z$@9xs-ajmd^LeyvLT3UFWB>pb)vZqtzp7pME`YUL(TyJf8LZWi+o6jK)*xeDe%%>B z6qt=(1rW7wH$v(8t&AY~F-L%#>a05EWzqHbDk+l@N=Qz(fnvtLL((uky%}QW^_gXY z)H|Aj_~>8keS%b@p`%@9!*)7vUh#b@yBc+`A*m(E1I{XLJE85zhH7>$a;0aqWV9rs z9DV0iK0iYZF%Hkp)LL^7R5E+}48ScHpUELBg4DLf{5*@Chzpa+6BY+pv4f#8aLxir zrqmV$86J%l>;`!?q~b0EoDDOw#ws+Oj38c>p(!*f;0_wV`SKZj&&&T`gRmT8FVayw1g zngwP#I&&tR_oVx2rTD_B!hZ@x$Pfv?6)$hAO5FAN`emz9tP=Rl`RG)6vM&3#5EAa< zMUBdW6TQC=)PTGdqL_51;#srblhe@FqAD@V5A@I@EXeS&pZ#m`@TUUU?;UDwbj^aR z`e5F{`~iX$JEo+!FZ`+{Z|SX_ z2YNJv7rVjYvaYBCF=~X<@Oc1zOJ%d<^hJl^1dek+W2JY94bZdtX98j}gFZDu=slw2 z`t=a~KtxlIYew>m)qif-k6wt>)5~Tvyva+q7uKBiWiysait2((e+~Vhfw+KgwQ-NM7qX=G6;~Uv-Kl=&jr(YlRI3VhF2Vv_MmHYJJjiA&uIQu! zsDTEngJKd_aBBwvRE(k?So$yq%9$KDV5HvW1SEgWq<|*Y&UVk>crS7Vgs|Z{px9w_ z5E!(T(*>gtt0{)-#+@`Xb(@P&Rk4`Xk~b&pI5_#BtD9U;kczoR%BhTO4uZMa4|7y)zo8U8gQw4A_u>LU^9c}Bv-$Ljg! zr|qq+zRA)!{rMS6?|nlQ*^E2H;AEZHWbln4t>ar%cnz zB`cEw&<&qc#7xrc=-;^AY@iEkg_4>7IA%Cx+)ISQ(l0(W@v_|x=#CW^;tJw(UFY&T z5AaCLYGH8`+%kUa@rD)2(K>eV!wX*OW#QxQGSl5f?kVtfJDI7oFSF)2#%?(ykgOc zvm1j-p);A$IxM_aQOB#o*?9LHIPa9hhC38(4xU$fIsqL^VuYYNjm}E91_1T8_{T$Y zMDlB0gRC^ov3PUcxj#g$OZL!iUHH{sVf-qcPd5(F8w6iH(SbtQDK8ARXpn{)>V#1D zHYrNzlZatv#U8txXhjugWsx@;r=cL5FgNyS6z&qi{^JB<=^+jrKw;LwL80cD;yoS0 zSh(qJ1Nt~)TMkiO+=1D5)aDT65##gpZaEe+qeL5myQj-HfQ1jGF+)!(9+OJVei(s| zi~P+bPQg{W{-G6}Nzn*~!RDMF_ag{;Z8h1X+5}uxa+%KZ$kE~sMGfF)U!*#k&oVf4BltG%R5-?8dd;jaFKDJ%Z1-ze@O6qUq%VGgehpV%3gOkoxT zMo2u7!JyU*Lb7??%RVWux=2{7Og;mXpxwjbPoML~#XT@Bi;rEsy>Q~(XmuA7)v4|# zlZ3lH*>>>AXcIe@5zW_-rqQX1c2&;WR(uM3`2_N25+>>xQw9c-K}^Vv?_3h*!W-ky z?Wls*n?=08Yr^Z!r!N}TteGNo< zMN~?rWR{;o$PZDO^19X2QhVS?ViNKcci4{D0 z!=5V1iHZs7{Vm!pO1pEMItCg+0ny1FlQA~Wlm^5WeJ`tHWyV#c*ZG0MV2d<;kyN-! zj&hp(*Z+wi{$;$Ae*mxoORRwX-!2Dl>V{A^id*=cx7AyJw zg6iyg)vHXWRh{ikpU+-p*D{r~xf35qU+R`tnM`*`?=tA(fJH9A*W8#kkhdI*ItiMz zhj~#Sg=RV<3%mEcjrGkoLu}||si@pSMt;~iuJ*1B#Jv953~kRbZlSK~G}1O}a%K9d z=-yhyBUV>wlZs^_O=?;|^)p5q27AF}7?5)pj0&Fay$E#k=k>w?!wkJFO;(`Sc(Hy$ z_2&~?C)}GH_uM}CeVfx4&FYD0ii3oQXUQneszcRAFBQmp6Uq*7djNzw(C6LgFB_Xm`Xa#dUmr2Lzr% z;GX4qHEkKyAP9St+llcJB1<0g5$=?o`(v#m>3mFLCDd=H$|YMRS;Zzp24__QU@IYQ-y^ ze#xG%-jJcTy7-aWDtOn79kO^aE5Q@XqSdYku8()#n?P$4|bo?{1oeI&jY`NRWX9q{1DU_|2X^n$r_PamB~ zCxcs=)5;tWF1d@bo)|omQsH^s>0h>(JY8IsS}Ok^0&M@XXexJE8#1V!yS(dvcnzZS zu0S~JF0AYrUg&jw2EPN3!n{9xq3yTB1gHKN{uQ5^onH1=W3ocVmu#zk?@Hx}$-Hw= z^3w<~T`40ZJ$fg%`US$dqh}9}KfD?c4c$<@s1(J|@aI|N5F9dsQVJ)&WIc!ZNU}SSG;F84K3i4f-OA+xojpT$6e#@@^)uL?5G&p5rij5+hYMEo&U*bX4<0HNzz zA57OWy}4XA)a7z6UxbQEATbQ`HFw(y%$!qM&hW~R*@3Ee@)-Xa)KKtc?=9OwZJ`UA zf5*47ZyQ0wtk*#V{FC9~f27yEA4)gCp!>H|qXmE3A(>*K#B|+t@199+_4CoHAwSz) zW+7dL!St*v{8o#3$jQYPNWp=32Lz#?H5fX&8M?9gII(G0+;DQ+ElwLzeu&+TP(ps_ zD8sWk&GN2A&pe|=h-C{UE}$O(P`;6|sg{07;@ai*9$PQU{)={y)_lF<-z`p+^M@1# znn*B6*SY0DsRBfc5k$-VyBg?@*fdYs9es;a4&^x+AwYyo0t}I&3gxAhmyuH z?4$J9mD>1-gyNoRGpnFOJENq`n_oQbS(fm{`T4Ei#t=)#&On)!XBupDl|n{CD?}+a zrD}FH^JtzuW$#WpU+Z+wZ}-J#8CeLivZSdMA79A4BDEhB#5zvwmH0&{_F$aYsffP^ zgEh9%CvpOC!-<2g8pJXt^qUBg3sTM_Em?a#fshhl2WH#p785DvB{Nv_*=@(eyxm;z zkn9och8(~PC?8sP?4F%dK$$PTYp<8EoDWn-zcYyF_=r%>{!+j&VjKn4V?(v|kiqKy zk{P@-RTb610SzPg5oB?P$Mm^E!|ZVP7%yA7N>SD@IIOAHB4Gkb*+JWajY^aMv&V^I z<2Rl2<)CuPqdTm=xaQI#qiq)IxkJra|3vqnJWs74S&u+$Im$U)@HIr#7?-U*aCeRR z@1@~SqP^7)e)k?R(ns9U51>rPZcm-sB`fcrxpuqe`z@xeg_C|>2{NYRkcT*`6OWwc zn!4mt_ba(4`cEdr#;=~8rHe`og$b-H+P?ik_dnZ0wI?dW!0QBUJ zjrdTtOdzA)?;%h)_R}WZg__fpet4%I7V^gEP`i`SuP-I-9Z$ABJ%-H&`sgV=CAeWRfl{uZ<*i$LtEF(Ae9pGxFC(32UXm z*sYh4P(DF3US%wvHqK08J>DIs(0GVOkt^j6utj#+s|;9JQ49x`3H}we1*v4_zc;c_H2f{>nN7JGpE-1-iW4|guPyn z{&-)3_<{Zq_<+h+Gu$?$X4fp709~4c_Cqkwqt}qTPr7?h=Ya~e8SVMEtNZ=o5n;Cw zJ>;m6O9~2wH$ziu?@Z}j>fYTp89m^6m5HW9vOAkO=00F? z^)>{bzwzAT4V|nbm2WHOe{g%LE6}&y!T6-Rd+mQ7?nWz><5)$+TYV8%D}m&oEC}&M z(4yRae%Z}4>5ms{nc8s%`W~{}JdES@z>WbdJH=4XRS<@0kCq>dE7w+}@uQm6C3STe1{or$V+E zCE2os$gU(I`)-WUBBg8J_h^u^l-)2!R7#c_`!-{rhB5XT`~1%9E?>X-^L);G&a<88 zJm=X)2HYbfnn39sYtWF3%GxXvRJw2K#S1e1fk?Cnui#BY{5&6I*kXXT(m1vkbaJ`2 zrRLSNgyyZyoL*Ufv=jVHq^vz?Dp1Lqcs6^c9Rv|!k%9n;#}rD9^IE-5uAj}?ho*Sc z&UJErwxk;2I)73`zK_`I`VhmSDgzGo!H4U)(l%D}AIqnwWvkpyIztS+9*271v9~tV zI3CNGFhGH2bHE|dypCM1Bg9z~WGICToj02SfgZL5-$m?Y?2o-vVHW)FG+XuN6CIK+ zf-3|(oILCSVcrlEA22xOxAipl+uLsk@*@D@&V$W=Vw&ZKJ|HV(Xc78}t*c+5yF^$g zpyCqla0dU{MnXDoz)vt12h{auGpPb+F75ZR{G$C*p_SWC7&lCyFQ+_LSx;26ZTk2C zgpxR*=R9A#KZ(0ph>bEIJNM@0&imf&k)LPQ= z^2*lp`Xw~PPxlM7o&oP1#vdY{sMUM<^umG5jzJg$VQxK6Cl}vw8{>?m)h!F(a!A7Ej{7zJc-;806`d+}Z zo&+uX7g!d)VPGetdkV7@!IFheiv(H_6>o*q(6fDsww%2Mun)QO6?`4CR=Z)kpD&tM zn_T1cb`T=eOBed$ibDOt*sT!d;ea79b1?)gcy-XLpTOmn8PAfnJl%S+7E(~rcS?I) zojI%3Snc=G`b+_w2AP2T^7jvMOKrQ)9&j|oNl~*h9su5lteX6kbvAfdZk%c^udoTy zKwy&~zagaQ^5~*g#sjQmkxO~;V&yrAsxPD-FX>eF$!Q1R?gw)QLclIUINkNK_9pmN zYVOTK)ck6mgLFH8Jq6)0c!KdI_Q7wYQ0G50RZ~Q^@V$5&-N4^TnF7xxL3k3Tx>mVC zTH!|80q5ET6X`r4-WbHIOI4&vESz*R-ugFuqVX3GbchY=DTf{nAAc(nI?WtJlLat+ zJ`TiJqZQBb!`V&#)~R84%6sAk(4%I)YH?r|DOqj0I4jX|&K zmp~LlE-HEXR{c07ri@y8&H083Wq>rqRJc)ls+e3wRmc zqGMK50co{s8`{|q_LLx>LQ@@}sTn@Hm!DM<&$9Jzm?wGULt-qLO0lcL9se!1rjanj zO@^Ak961g6?CJdJDei_zRT2T`X8hF@s;GpGSy6{;JJ{=m5`rw;ZzOYV!&=S&;hZGM z^%JdBP&LbIRz{I&2#Efwbt2zd>(7?o6s2HMcizT^Qv4=H{v|%fk#4 zc4I1u_x->Znc)zI5Kz6q%s5^#*fn)*Ip_h*${3%trq)N6_+TGN6CGirAQBfei zA$Pa}#EhHG&dqLk>qwzAJ$b#&6<>jRZPk8YKOC)Ml4eR!qiZP>f=VZ6I-uM4Ge-IN z<r2{ho0SdI737#DHsuf0UA0)*NT0 zHJva(di+NKq>Fx4R?+jEHyyOI@eQYIA$#csFQE28XQMC)=31M?^=@7R@>6AKs>VRQ zUDZvxR1A|}5-lpo0T49@qD7-cKu@YzWt|8c@21n_M+rzaTFiS0E)M&t2|+~8-j}B# zySEkKAA+)|c3-e}E>5t9PtNKHVWD0>?$w_4Lp3tL6SVh+3N)5L^0EXNGs0NS{uFgP zi5gGvi{Rbz5da(ud73bY>e%{p(a9)$|d8pQPIv`e+~I$+Qx73yyUBRUn? z64GPLC+qmhRz(IjT5}I`mkKBT@-`teYuQ!w1gPUl18BcHWgM^9X=tFf1|FnNrqf?9O6>DkK0#{1ry&YaLdzu#}UFr$Fb z%?g4w%&|^8;CKckC)wK+#a1Cx@P(C0*b&`S@7ZbjJT=(q=Ls#pq+-2NmTHV_JQJt2 zKpkiOaLqT#*hdO0lzc%%tkJOoadoOk&$E23nDO+vv%_f3Z@gTt0_rA80*$d}iTzKT zEONhHC)La|iEPFU%gI=T2Tfez-oDDJUz)|v5LJ-q9@uVN{-kkBZup%=ZoR%r@`i1q zw_0%6eyLedBrGqZ41s~+BE!-^txv0|k{ozyw^b82OCQIei^qhAYo zW&jIgJ`f#)3Y$nT>6}&1V;A+f(`(UIcpm>MGgE)r@{Co_#%3UC%ND~bFAquuJG8Ca zP$GuvExgrscU~Lg&+2-4Lg$eJo>)ghB{V80y1WQJm6|jMJxBDr6ZQS%V;Cb=*%#u6 ziW8q)-Oy%a81f61el=BJ+-RgH6enFPoAvnAp2yA<_Cpr$^LWP6@lKV)b9kANqT480 zNe?mX&EanQC(M9%&78yaRgkcKcmMXa5fM-k8qnAO2sC+WVP}D<#!7!On>!pw;d%Ga zMkutCQg$u&TJQBhmPDOxk(iWRoaXlNrjzF^a`Ep*v%f^872hbFFZacfc+X&u2WL-& zmZ6Q{j-7QYlAx4=2)wBQV_7DaO|Fu&7Ue$aa5GPgd`0>iXj|}l^Day^XdwHVOZ20t zPJTe$)JLXAfbUZO`n$CUTJ@5ndAUBhc!V0)iC}(au|7GL%*#9xi;^PE7DNlHQ?kf! z8ful=Mdp0tZYsUr9P=ayv3;pYm#dn!Q{G%oT8GD{W7=iH(l+-roEg6uB5a!evYmzG zBU0MM%S+R#w`(My6U(iu*q$jZPVhBT*LT~#GceNeN?a`AG6%`cs$XXy*kcs$Q-dc= zo|CT15}t%}`YY9PN^Rb%eA2B}drbj9yMo}Lt(y;YArQD(5J20bx^_IUF>9(T<`UhN zOkq3+H-v#nH52UP84Z=$n6pv}2mu6oBqe75rqManjXURTbiRv8KgN^;EI)p0CLW*qG%!M(6Vv(%%9fbj=I zC4uROGPLw=i(L8De&9&_=7xY@qGV#Y+Yt%zy6d8+_-?j4-@_b}zl5LDu}Z_Jt~<>l zxatr%E|Hi7PLs~gvBe2S?^nO*;mAN4YAQofndtoil$_4@k zf^V@#mJ$zUimqWo^El=bS?3N@e^{MeBZhCjU%uR#5MstLlWUU_9J$=qCXj}5e;NO) zVvLz%5Y)BhfY6fo2YAF^o!{}raXsgfR7Cr!n$o0G;A%RGtKJVg^1`SiptoO?8TT@M zq$7Hfu!KrQrj!qx_StTob$lboSl~#~9-NaLDlblr=UA2{cBgV}H}G-HN~RcIGM#o` z%y6N;<4@q+a9bwc1yJX71PoZe%g?o9FPSk^j0U_oDq*=NgeZFgU7mL$KzXyyD;?+#P4F;1_*LbH!k29=*290@6y_1-a6NLl6=y0cuVfH! z)alI=o&2ury-Yq{kQ`RkEPKlD-GtMGxy!|UBL~1iG1l#|osIR~#(Xt0KdVkXROL6F z7ReOyxyb@Hrdx1LG`5j#MJG@b9yxU};wsGRw)E9}~7Dy>-`bDor!>D}tqMf#7j ze|}Oo97^J}mdYSf6Jx6Cz#9tILTFEyb5ko{J%ur%MZScde(!|3bwJq*i2xESmxn-b2lEY}-% z!tuDIuOW1!{t3I6z7!(;qsD-ha7>Ga6XM|Iv5epNE8g_P@6@elpl6bXVFfm!q%bIT zS*^W#<10

ZyMd@ccNE=+3O#htS`Cjm}0kgDZ2y4>YZ~A+N6hSCrG-{xw>Hw9z!X zt)t)PQ&YYWvl*9&JL^(%tIHF4Mr!l%^-`SPcKjwYKA=r80%xBLuAEf|DU)ejF8w^f zRJCv{YU*KHzViAF*21Xt8Mu*X5d4C;Uv9h~Vq~?@p0S;LgRxDNN{(bcdWe=kfl7y~ zDOP>xd}m>z`CKacl zST)xst7H~SHR4;j2)e4A!M>4O3GZ?kkIUe#HxR{CKlB~dk3AbMEH3fQyp%GCxT(Pe z+m>Ppxpc3?^K8rm!_l;>LM1unlc`UJx}&r#lsHZlk%cCMD1#OBdz}fev8z-Pv&$hx zP0~<6S*M6ac-=9rNOW2;Q}hAKOWK7Ey@HNSYc6=#4N=}(#<}xv8C%s7a2F*6GkgSi z#6X|F==7uv_4cM%xBIJgu^Zq;?vYf~teF@(L%yKebKz&sMby>;Gl|PO zuCvEm7MN4_V5|E_BYjCfT@0x()J)+c$MJ+U-9+M<*(3lOhjOkEk@qzs8C1oN0%1l5->ZRX^q)kjxevAGbmB4F6gRN7dA48>qvKNlh&g0554GQam*LM7F_RPieo-$RBUIJ~-_LsQd zSm65Nh1M}8n5`8n;FC(~XX_>toM>--ohz0=qRI<<=0i(qq)_x#I?nyZoSPuyc6}qh zY4u>R-VJJ5ZAYx2vfX+ga38ocs~S`?8IBCR7^J6`%Nf+&AI!i{)i67hOiS3)SBC2m z6=Y3d!+$B#Uepn^s@cdare~g?bt*Fcc2ZrIm44ttDXAmy-N?MnDnqjL zqM^VQn}N%=&3WDQR26OT#9)K9o3-x~G80{sG&Wp~E6?@WPVDB=8r;t@RS4G?9pH6J zXGD{=VJ|XcPu9Oe%4zoM&Cu>urRBCoRGJQWJO|wR$iMUod)!Yd_W5C+3+pLWxeZ0z zGN_JHhRXZPCAy5Y{hbiU! zJ7t43syz)?Y&018+ivKzcYbhM%rVCm1b3KAIuO8+gG$5!j~|r-`1e9=!5=7CaV`89yD75X2?sFw^&xj9&rJ@k)ihYYNDG-VeE9J9bK9O6M*X(Z zriqr{chpCC8Tu)?3~)$nYJZ3=R?~s;9-kQ%-s~n8Q+c1O)yzt8vWVR>3;71S{EN}1G&Zfc#_>k|=aG@Y&0~^3 zl%7z7E9=8?6_%iNN-mK}+`Rbi&5 z{^W(ha2MrZCq&)`efQI-Hq+YcIGDgJ*0YA@>E*Dh8x8tiB~n*1abV~fH~^%xPX(x& zrOSPU$4S^bqR5qr!W%?7c&?5Z1QF>PGc%)xb9^?ZJoVv@^d~uCmy@)=WIdyC=_Q`s zn7uXnW;rYWoVw1o8Z+O6E!%YpOm(bO(fc7D?QGhtFh&#sc2z=Y{vg>q ztY_1Uk@t`tYoufqXIQj<3zZe75&7sl{oZO1@|Egy#)3r4KoeU$%E-O#a*NJPC^ zPA0V*QIj7k9?=vRa63)k{K=mC{hUn+k8-PJ7-LZrdn{?fv_Lyi6LT%=;dc}Y?(*8f z>B|qa_VKvLcb<>qrx(yB)jFQE^>|MCaS!<$$-n#vRow76CZ8#8Y3;8_iiBTjfy5v3yW5UvL5-tOYIA41%5jqp& z8?ra0eJ?Ctj##v@HkBo$Lua2uXb=^lIB^wTUX{ybmpj~lu{wr)YBLf6`d-0st5cHP#hk&4c7AR>A5bOFdj)umP<8u3$T7_B*5bQyQ=d3j70iZ6 zRC45=dtCy7=jRglyrefW{G1=SZaIDu01++zZQurm<=nfy{`C~MR9tbu#&!wcNS;lI zAo=kp{X4zAv6rnYa|fsOb$gTJR@7WUv>!x+LRNtr3ijfiuA3|0M`Ur=XoivyK^C~I zY`e5 zZ+-(Q0&hm-3$`jH-TY=HW~=QwED#TX~}(HfYb$lf&r! zS%IFPB6>A*^;cbmr_339Ijy-)@&)P*_$<|@M`(bcRLE)*L`JRcP1R6UT{4XYtDTuH z+O{3IJ+XEdER~hUXMJTo>=!=HD65KEr_0)PSa06+lGW|tHb$^L&W#mBK2?Ed0C+#k z=U48c`Vx6hE^SKhHP_Da%UqZ`3@+ReIq6M!>&Cs;GOs7!v#%td4W0ewGg_-_nt6Bt&)Q!oTeHS++$en|ES7aBhv?5P0RJ|3LS_@#8*{0kqn8s`K zIAiZa4>CBEr4g^s2p(OzI`a~tGApWVvlLNFc##}=tu9bt@#^-WL9~9YUV!I>5~#n4 zZ)F63N$Ldo!$43!K@>i8+*x;UsVxD2yn?0TWL=Lp+t`0U;icLvY{ z%~IysCArK$Ot9;^;UF$5%zzko@b2&}3qpUXDrU2}wMhAarGnZ(sqIGC z3|!9YDXw&}ShsuX90**8ECP2gEZU$FLAR_UT`d@vu#zMXw0N`KBo9n~`hzQ98^POp zx?=nw=u;)66g;Hl3;Z3h(;!UyI7!mXd*hbh zv)l-!%FwE+3s#|}rPwd+U(%>a)B}DcgwZ_(?#LK9R3cgQbm6xuTG6OJx|OPs@4^j* zS6ZOs3=>Q+UdB!%Y%q?x^hRn~?i!!u42ELYd0XE2hl;hV?| z6}!HC%KQ7?KSaD89@@=wblw&g<0esl;`w&gn7qgXXd@op`oW@KNL&AMfXFibmZ9~J zYkr?($cetD!3g{Poj$9$yqg=eiG>1utp>9E{x|hlubgRxL0!}ALi^w<#)6AkEUz&r zfd;NQ4=6cdOW@7IyvJz-cm z(li)3ljlH4s#ip)x3a1bv6nNj^2B%%T;+}pG%Uj?;(rc-ud zoE*kd=bHzI`sTd)?vWid>WaJ0h5K5U8_je%)8#|!dg0J{leJcrw1%j(#t%B7JKOS4md0%gy z`4Pe^zC@bupxk{D0%#h-qb<*l1+f4zu+0TX(sLdXpDJWcw8pjbxG&wxh|N{a8fma) zQf?QQm$@T0AK4|cR=>top5!?-sZ!}y47z=pZs-x<51Mc6hy<|CV798%XHQI+XVHgL za6Y;uGsB*|Ed;%J0hd6pT_m)sSWjPhKd3%Sjb|O;IMUGuq++pnwG!XG233xLWUolZ zI}j+Mh?R$Xz2YHNO-H$>rHuw0BDd`32w~F2~o|iLg za}1^l%PCWG?6E=C4E@|J&`!I~eBo=JE1UzeLHZyYMD_4N%RlO5{j0nO?evET?_bK` zNTt$A%FdYS1_^|3_n||Q(Sfo7+hiqN!V|y!hnPUo;I+Cz@7Z?WA0`k||E$8gav<`#SSxFBH{nQqfNmjx8C9K5#PbHp&dt}jkUNASSmw*0e*sR=yKBHhNW`O~E`haGa7-=A1T@Vzoia z&l{FvQ(0e`kE3hSY!N2tTyoj7>yr#&_qzw_P*e`2d4e>kdv5NjgU#Cd*mchqu`F$) z2kp~J&R)y)jKVg!%5rxgIYD0|y}veT;`EHA{oDnlN%Zg2QF$t6(seQ(xAT)vlDf~Ups-B&-0VRfjwvcXBRhU|KSMfNn-QkT~d6_MnThfdoKB9R6ABzK=ZbaxZ!~aa3 zyD~sO{XOOP=GgKjWLHDhpf5gCsrSSVgLW1+s0Cr{tkaYBp#$M-6P58%jfH0F-NEu z1Z`4lDZLh`4EK>N#>}(aZq%mssaVF><^1BL^v;a-%kW$33Ngge-*psGaB}&5A*=Oh z*x5fetZUP{ux(2f*2zK=-1W59iYUfPa|tr2DRYubQ>qnF(ej3*=_|MKMl+oJ26iM8 z^9Hzor5>W4FgUU)` zsb53tICP&;ApH%@pMHdwURe?Szt2Ihqu8`t^DXr{yJv||NogsJ_aLqCg)*cRVK2n8 zwMHEuLwT=95s)0gj@mqbSWbHfhQ(6;|B&(zGa zu^PU6_0qC*=UFfG2lyqSl@t-zuxpZm=X*EfPy2UG+GoSYSR6Cjz4oW5YZgf89SHN&sI%mzZQ2#%FCort6Cxbq5oSr(_2ZXHU6-nNSu2 z_#HeaB!_Cv424eJ`rqptELxmUj+F&D|FG+Pe{Z1uDc}nm4YhUBDx z+mJ{s|4sPp`0AjxLzz$__rH_I(#Ga&u6)_GQaEFCBq|pUN%?O(2msY<2ZK+x&~!nH z|9_ty^9)t{gxJ0GGyPX5!X81whWwl4!ZGhD-J=@2=g24ZzoGQ+MkM|6^zZwSX#ca- zz5ZNrmw2X)r>3i4QzQ3;{QifdqJbE6u&Wxh{NIO4Q&Zgt>9bhF1q<2N2tgV0%((PZ zk}*hN0tXMu^#Hao8ZSLk}Re{VyV{ zT%iunzwQwCAJoE^%hN)u5Ay$q$BFNehY!p_AjRZucq*y^6{im|d$R z6Y%-%<9P!AEt`DVDJ(HH@;{93IlWd?{OY~$Kk9YzU|PU~?SBKYD=)3fD|e$@x>%^t zgWJ8YnS)uSbNnvW3HBbHu_-p*P2L`pUa#W(-CxyocyCQhLYn1YN=>Xc-0s){l`8+q zfS}*InOp2AZkA}(RRMND&V%1Oo3ULRk9W_}??b+;!tNgFQ0?eLf7m_ZwpYJtf^SEh z|B;+?Z7ad)jmkjKcK%@!$lF9SRw(~4RJ8LiK=DE5_|oz-yC@oMXc(7yll%Y4k`HR} zB?sruIrv8^vl;A*264`4-JgP|0p7+ck7Y zR8;pix=Zi-Q&I2B;N|)cWS=i-Ntr2u`lbJrLp6)J1Lg|!<-cmi5^EK?0UAC1?@U8A z=mf3ZbLxz)EXCg+Lgh3=sLbm5yDfz3{QyOmRcW!XKC2;bc>z01tJSmP_Pd-d+D gB0SETXJ?4PPNKh9>rV<@fR2}zy59BTYqn4R4`_EKs{jB1 literal 28251 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 diff --git a/docs/store/feature-graphic-1024x500.png b/docs/store/feature-graphic-1024x500.png index dfb2f33d2f3742435c50aef9044184b4340c0ab8..15be0beb7a1c666486d191e0d2995f8164ac3e3a 100644 GIT binary patch literal 88453 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

O`Wt+ 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≪=rn9s>Mrg#)yQERCbsox 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 z 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ⅆ`$^r~qicB6D7e1)3`pglBW3Iu{nnI?)0b=&DHJ3L{N z{yP5cA=QuSSpc?%leW0h`s)PDJfAtczm})5CV-iVYMb;F^X(cp9yS9t=u=w3<+gI) zP$G92{gYasG1Ggr?-2372r@xeT zI@zDe@H6bF-YhCXVYkFW`uERm5uV{4y)#fvMan9@=IP9Teo@7I^|_JSQxQ7$vFNmaG^oY@i%1@c8u<<&p1yP?NlAvca> z@^T)50+n&+C4@1Vf#cTjLx+NCmI?DjU$#(!I7_gCNPH;mo7rt-2iaquV~i6U8pK-= za4mQ+Vfn|AohNX#l5vHnf@389e2^ zk5!8vqne}&dUNx2sCR#P3id2qpz05IFy(KjRjy-SH0i3Rl9iLCq*7D5wAQraW6keO zTVa^IRQyL`zaSz&i|a1o1;HGFn>AVrvp((p!=wG30TDX@mGYx%Lim7Qr^}h?RfvP8 z%U(=tFQ1XY3XeRvB420b852{$OMumbP{xLqdmnsO9X^*6&CTA8*XDV6RY5Jiy`uR%5pzRWcCE1iNQ=SF!l;wGa%hG2w)ge|^1YMrVrg)5Mx z3sesRmm^;eAi+TCicn!bQ1CaFC(V_^rFhLoO1f+`%$nAqSE+D#4De|at9MPJ2T>T_s z<`U+;mamhH1R7%jg|e5RrJ9!eI^+DOW4FvYxhSfHvXTk8tK9NOqjx<$1J^A2X7Ascs#h ziqAlw{@{C-38sdD12-|J#2-yU28gvujNfvwvp>l1#pLG)03w~<@Zqo0CC2sW6=Nxv^n$KB+KD5+=Vf`prYe=Q?zB_ldhAJIvF%T zhoSJ4H(8v$JB5yu*X|`ydp(-R@$=M=C$EbQHaB7r0dHuL^rw^)L+GGja&0JR8bzrHmZsf+w2++#|#Q<{9`A0pr1z&%x z&VDIevn4#X@dl>VlhN;ijq8mHjRLhYF93~=-jtAD=e={=`W3;waolYBY8#@LfFa(5 zK;?EmPJ>#QCwYdmHkM9KVKN!!1{ISpi@AA>Pso~Ud5jzLBIyft;$EUoP?$UXKml~g z`QE|dcl(GjjMjk--uS+O!m1Mpt^VJVodawU?uwR$$YNETT3w0CztS&hdl%LKN-L}; zf;UCy2Dk_KlV-Izz!VQywH+JWK!D7nvrn>x^Oi_OE(Rs0Sz{6(bA66_JANZ++LhhI z@aFmj^^nd2^7gCR!cJ&w{0&fhuU(v5-tRDC@cCcdveagC_}{;0kZV?a{mTBsoz!%L zTp4yl##B0Ao(e^ok z=66rutYD%{<4(LemZ3IH%@mUi)UAN|8aj?%%KCk@Y@2BEY zB3k*+03EB87jv@Z0yVX3A6EW6w(bCj{3gbI!e}?n@P-3Ydz$$L5C&{>*;<^AD^dvY zt$1SfKI<9qQST)|q2xDa4oZV10`7BV$NL^79W%4HIJeC1vQT>*ZK{d*?SrGmQ)AtZ zEEYp)gEv|%F9jH2H5CT__LMX}cBTCqUOnNkX z!0iwnfV64wnbMGX+jzrBJEf33|HsE_mHXnU5MBDvl~ON2>c? zuZ&AuBDd#ToZaKbQnl3(XL$`*9@$UXU$Y%F>)v^0L@$tRk^~&JpgL0Fc31w{!V+Vi zJ9p7krZ7h2&GnC4ED;)P`lF~^a;f+T%TG_`5iv_gkFXg>lD`&YpUvhp5B*J6o|@b< z>ro>G%926_pMh?neWx%;Gw2MMD7D55~2xNuIOwl;zLZFP#58P}EuuTLSqVj>Vo6S}N?%uS7)} zLg5$*Gjf2`jE$GL5yQef>B*I3%UfYk;MjNioA7;TloJ9}$}`%9o?n9)IvO`qX^e* zraPOZZ0(Bthy4E6FrTXqDTM6mx$g{2*%Y07Eq-e8f?8sPR8y}=-j$#V|2f# z4n#7?iHssRD!1BBDEZTy8tZ7zBWxu>iT~#e6~I_6busK|5U>4J`}!pRoegvxT9IEL zrZ2w@qu*Io?oBs@E%Wsz?MMM_aA7{3I~fmf-(GBT{I1k&lATr-0rzsaH6Mc32CbSw zrActT^0BO^YS+}Gcw~!ATE-|`16M$&p7pxeG1_JJWME^P={1;zo=T%bp!Do}P0G~w zAB6}{KDDb`vL~8Xl-l*$IrUTg!@{_^Cvs;~lqpJ6Ahs!6p}2)qR6f)$ohVeBdj zHFyGA)o>#a7K}S~Jghz>KTv#;4^6Fiw3$6L*Xr)`@?DZeGKXEYN5El=c|f}`BZE9V zRyvp@QHnW;ia)^qt{AZ^-1wkhOa=k(jd$t{*f2t6 z3u6~)tlF2YS43qB+aM*kBXe%Me<;z&?nC$q6-uUfy_abQWt*jsQ|`n8b(G2>Wa}-d z4?&~n^dlnO@|-d){x+Ns1wUV#MMgN(0x901J?j1z@o>W^d8URC8|tId7swq8J~lQq z)E~U_MmXO5`*m2KfYo<*Q@c5#rU4UO=wqiU<7-tFnA~)^>CgSZ&WSR@h*y%?q=@fY zuVBc}W^&P$g z<}x0p?>jcYxv*nq2EG?)4d<2So)vX3{&|)JG0s0ZB*7L`4qxRXw=in^j#n7HHq;9i z4-WuNTmp5rbsjbp%~g%<7;{Qm9Jo}HJFfw9dTT0qnNpIjSvUES&@-?^SFQ-9{wB$9 z(YIz~(FwqX0>|-rypl&DZEDRj@(=m!RqE1ZP(_9ShA_P}J}yQ&tqTJbaD~WS-=)x} zOt3(&de`g!6NI)ewO&v^jme=Dj%zs9T3_5eHj5Ta_Lr4pc+gWZFPZ1MqM!QnD5=QN zH#IcZFc*h}BdTtjy4J04?tv*fzBxchAlEN5N>L@X%mCD0w~NeeqhwS zGzD&I`pR5G&7alZnNFlOX%5QFla!W%$p6=4_cZDJ>3S6*&0b!`s`>uv}mFjFhg-?Bp-%4eLPwR5a7T6F7QqVZm&@O*ph z+IcBr@4~m=FI5r6{H%^&6Vw^JXf(pr{tZ!G!zz?ww)rW^0-8_sExQlyqtXu=Bra~` zn5=(e#J$kDLW}|+f4{@-x&*p49uQoGp5+jO_RRNU4(n z<{p}hW#f14ET?f7#G}G`S@Q+cfQFm*GIhJ;$a{z^BF*zcA)z$G{+i{$OR^AaGa}}l zEGH$Uk&K+npTDbBUWdbz+l%4AL+`RFmc~M{)zO<%>{O#Nc!yrjp_iav)|jE``ur;Q zMJb;1+tE4fM>!%8h|$dXiMP11aUndPr)MVzJv^DIl&I>5Gk~^_3Gnn4X8=;3FbsLU zsV^_s5@z$yNV*ToI5!>J{ENwJV8m=qwXX83{%BZF$73f5m0`8~9H2uE2x_)mxC|rH z4z9^#kT6J=uHr!I-#KUDC0zs`t8IKMh+KU3`7M*iYIkurEMMP=gBEm~WZjeuwKf;p zeb@lmi4n(5exSHp_4yHAwlJ6EzO|1@QbEag{D&J4u=#@ZCn#g_SEV9{7)z{f{4~XQ zluQtfptzRFQ_wK>A1Z?`5vO9lN;jKs%|)Xy;gku+fhOHuudxTyn~5{0k~FT68Mre` zaxFgzC_=Mhq_1YQkXb<``u+^BfDJz)`!mmx(n`>^-H}Chu}0`~Nyzf^xyw+5*Z^7H z*ET@$5QMx!c};jG>l#8GudxrP?qn2Pmf%^CY_&9;R|QkSb!1M7Tn;FzR=Kf&1Z^by zJp$;AB;*G-UzL-}!zyCn8p} zX)}_d`(-@H-|;L+cmb>hlH)Ma8h>9Hqs*{nv^+Wxs;gy2v+&*>h?Uq;&(l{=4dLb_ z4IPzrhZ#4mi&Xshms>=mOsOqyT${G8n|ay|TH!&eBv~`ql6qPs93X7^^(SaX#$v=h z)ZfU-8M}w)%&8Ma43Of`QK$$hoiKbb9 zY5Ut=Cw0MYnD%H|7VW2wpLvvqt4YyuT~E2rjcgsJ;51=SrJ>CS<<5bAzgShM5}#b} zxKG5E4D3o2iWZabdL3wiB4OUdY|5BsI;xZJV_Ko3SWe^>S4&Zb3nug;20Z?*roPOS zy(%#!K*K)uIr5j=kQhDjImQ|{0@t$fYpM;2gC!{;AyT{dC>pIm&k7JnmJ>n&g+!+#CP|r}DG@is z)v=tcU)ASFI_%BnNbEgWL5FV9BnlqAMJdkI_8Rn=o~{HYf~>4B#sZPHja$orP*eZ$C*J-$yzZCQDE;a>u*Rq zgEih9N!rD|dCWWD7>Qi>G@;jk@%L>frZ(2o{wLG;0;=tligYe{^UR?eafZ(wB#JLVnMD5X7=Jux z924wdQ^iNc;&GDo1)$o9pE3S4xlESz4M$uev^yG^u!nykarn(1o4ypsumQLCcx?M4 zV@x@L8gtZK6OI%z)7iingE18SzNcVx;lJ!m4VkD{6`nxVs!H`^ zad1cY;S%o0;zH*v?c7~Agq~sMyyHCKQguCB{kqb;`w_qadBYM~cq@+6Brtz@>vqsy z!%Y-c%W~Xir6D6^{K(qc2?0#*#01pY{om*_AJE`$NWrZ?*aRb=dgELY`L!J!WGWf5`b1Srl(3Pxq_qd^d54e%37<>ttP&NNU!^as6~P zW9!SB0fgnr0G-_kBxUr(Sff}LnrN%92Z$fYNeF(qS*wZicGYHD=WV8XJ}VFZCD~AX z_~s$dl>Gp)438-YxSfRKr+m4YcE-u@UIW`wEoehRc5V9tS6-4IT(7lJxYk4r(FbU?t9HT~MZK7N+E@1t!m-k<2x|cIR2^W3vKu zYi;;hLc8#bNZ*gqyO=LRLM8Jf4LbI{o)$0-KgN3UR17|aRK&fL{>^^83D9;xg z(|jTu)f?*@tpIhSUu8Sz^ps^L&_90o|(WXyNqMB69#m5Y- zVvZC(V#ekWvvS{LcCw1B_Iu?T6+4M(E&h^fNRlhGp!FQ|%2rn4jP}x*_EAl(@e=^l z5uCM1Ui=c+;uuYY!uqaae8YWHcIaD5S^IKADz8R0@D&$DMbK_}k9A6?_?ySjWgB=- z+i<&nsCNzg0Sb4Z7h0`L59*08s5fE@o{P}KVxuXJGZ&!*gvcI^oQDRzxD56@dYc8!e_y`s%DpB|I)ITL{q{{?ZU@%Cn^Co*)pes`#}}v(=)F zXXwoKlkKW)=6t!`YXV_kaX@uXn8={VfgD5p?9@9(uvL*%(tXm+neXe(Nh*~xhQE$g znR7u=o?$$Gx_GPMmoKxjLI!{PlA!s^KsJyP;lw?yyh446&ivfCK*g76Y^@(ayAWs$ z-jcJf_6s3vW9j91>RM^*g;*C%%SB|deO60idX;#Rd{Tk{cSdnRbGfOLK~6Hh%R3^Z z45=(@@72=V}%urb$K+w?kf#Ms+(>d@U7P6 zp<0%whGH*^0w(5&ZZPRXFXRzSaoOY!1HEHWj*DgwT#P#>SL)-wFfp2Cl~3T zi60p9xS3}3+QYm)h6SJ&KE)iQASHr^KQxyd{%AF?YY^WmOd6HZ1@ zt>h1wJhTXMddYqQM)`q^ex!j!aCmUCc#`V!vGK@V(~eTHXy8n~O#t6;%Y0{cIw6TF zS<^1nFF;INvQ+6H8hvOq_KJKbM^`2hYb7QI$7|=rZ#p7?;@edFwI`~l&Q^PlH_FJe zP-(3kx2#jZCNHKo8EKZqseiz(DFdb(-e1F~oa5rIufxK$y8r$R;7)%^x9Hv~dBpwM z$O`L7`CCo39CjzkJ6t59D{^LB)O8ZfI6SRY$Sa4{os)4N;al5Al*SjQ-$ag3or#=> z8b5cCkrGdJXPTLVOMjN=_mH0u7ZGq8~+8vFfz;Ye^-}YwVpUGyElj${?;skFlw z65VO_q+?ueSJd+17tOojZ|_=Ji#|`kQPzgA#9~Z!zYxZJlu4AE&-lmdpkGfGse;zr zkVKEdQHqgEE>HZJ5a2FN2rHMtE>#FBK6$(r-!OCs6ki&j+&b&sYTOd>f}2A)lAO}K z;+G;Ek5mpzock~Nobg#hRlni=BJ9E%!Py?V8JPR5OC1Fr6Tbd*W5&^>ANN5rL6kL0 zWQ?sVcmNJ0nBwuGzD3?GX2JJwgiDU7*$GE{Rzdgg-a~> zMf^pfAuSR)=3OZYM8;6X7}pltoX_?PznJbQc(B3?EsB-5J+uU~-hW@RzWS>@`QMiWFaPhqdwdHGIHTg<<&6kn zr2bu>o@M^~0?5d|J%0WFUBjRL_qG3Z#{ZoBUr+q+mipHdp#N>4f1UBaaPhA%{{L{X a>GiOmCeo~*0StOUAaP+CA?TN{KK} - - - + + + + diff --git a/docs/store/sources/feature-graphic.svg b/docs/store/sources/feature-graphic.svg index 8896e3bc..3e3e9000 100644 --- a/docs/store/sources/feature-graphic.svg +++ b/docs/store/sources/feature-graphic.svg @@ -1,24 +1,61 @@ - - + + + + + - - - - - - - - - + + + + + + + + + + + + + + + + - Closer - A private space for two. - - - - Private by design / Made for connection + + Closer + A private space for two. + Private questions, reveals, and rituals for couples. + + + + + + Private first + Reveal when ready + + + + + + + For two + No public feed + + + + + + + Daily + Small rituals + + + + + + Private by design - made for connection diff --git a/firestore-tests/rules.test.ts b/firestore-tests/rules.test.ts index 1b36c487..ae133d92 100644 --- a/firestore-tests/rules.test.ts +++ b/firestore-tests/rules.test.ts @@ -296,10 +296,10 @@ describe("invites/{code}", () => { await assertSucceeds(getDoc(doc(alice().firestore(), `invites/${INVITE_CODE}`))); }); - test("unpaired user can read pending invite to accept it — allowed", async () => { + test("unpaired user cannot read pending invite to prevent enumeration — denied", async () => { await seedInvite(); await seedUser(UID_B); // user doc exists, no coupleId - await assertSucceeds(getDoc(doc(bob().firestore(), `invites/${INVITE_CODE}`))); + await assertFails(getDoc(doc(bob().firestore(), `invites/${INVITE_CODE}`))); }); test("already-paired outsider cannot read invite — denied", async () => { @@ -308,10 +308,10 @@ describe("invites/{code}", () => { await assertFails(getDoc(doc(charlie().firestore(), `invites/${INVITE_CODE}`))); }); - test("acceptor can accept pending invite — allowed", async () => { + test("acceptor cannot directly update invite (server-only) — denied", async () => { await seedInvite(); await seedUser(UID_B); - await assertSucceeds( + await assertFails( updateDoc(doc(bob().firestore(), `invites/${INVITE_CODE}`), { status: "accepted", acceptedByUserId: UID_B, diff --git a/firestore.rules b/firestore.rules index 102050da..ee0ef14b 100644 --- a/firestore.rules +++ b/firestore.rules @@ -164,22 +164,11 @@ service cloud.firestore { // Invite system with proper ownership, validation, and expiry checks. match /invites/{code} { - // Read: only inviter, except when accepting (user is not inviter, pending, and unpaired) + // Read: only the inviter may read their own invite (e.g. to check status). + // Non-inviters are denied to prevent invite-code enumeration. allow read: if isSignedIn() - && ( - // Inviter can always read - request.auth.uid == resource.data.inviterUserId - || - // Accepting user: not the inviter, invite is still pending, and user is unpaired - ( - request.auth.uid != resource.data.inviterUserId - && resource.data.status == 'pending' - && !('coupleId' in resource.data) - && isNotAlreadyPaired() - ) - ) - // Expired invites should not be readable by non-inviters - && (request.auth.uid == resource.data.inviterUserId || request.time < resource.data.expiresAt); + && request.auth.uid == resource.data.inviterUserId + && request.time < resource.data.expiresAt; // Create: ownership, code format, and required fields validation. // hasOnly prevents injecting unrelated fields (e.g. coupleId) at creation. @@ -196,34 +185,11 @@ service cloud.firestore { && request.resource.data.keys().hasOnly(['inviterUserId', 'code', 'status', 'createdAt', 'expiresAt', 'wrappedCoupleKey', 'kdfSalt', 'kdfParams']); - // Update (accept): proper validation for changing status to accepted. - // If coupleId is supplied, it must reference an existing couple where - // the acceptor is a member. (Server-side creation bypasses rules.) - allow update: if isSignedIn() - && resource.data.status == 'pending' - // Cannot accept your own invite - && request.auth.uid != resource.data.inviterUserId - // Must be the acceptor - && request.resource.data.acceptedByUserId == request.auth.uid - // Status must change to accepted - && request.resource.data.status == 'accepted' - // Acceptance timestamp must be set and be a Firestore timestamp - && request.resource.data.acceptedAt != null - && request.resource.data.acceptedAt is timestamp - // No other fields should be modified in this update - && request.resource.data.diff(resource.data).affectedKeys().hasOnly( - ['status', 'acceptedByUserId', 'acceptedAt', 'coupleId']) - // Expired invites cannot be accepted - && request.time < resource.data.expiresAt - // coupleId, if provided, must point to a real couple that includes the acceptor - && ( - !('coupleId' in request.resource.data) - || ( - request.resource.data.coupleId != null - && exists(/databases/$(database)/documents/couples/$(request.resource.data.coupleId)) - && request.auth.uid in get(/databases/$(database)/documents/couples/$(request.resource.data.coupleId)).data.userIds - ) - ); + // Update (accept): server-side / Cloud Function only. + // Direct client updates to invites are denied. The Cloud Function uses the + // Admin SDK, which bypasses these rules, to atomically create the couple, + // update user docs, and mark the invite accepted. + allow update: if false; } // ── Couples ─────────────────────────────────────────────────────────────── diff --git a/functions/dist/couples/acceptInviteCallable.js b/functions/dist/couples/acceptInviteCallable.js new file mode 100644 index 00000000..c33b43ff --- /dev/null +++ b/functions/dist/couples/acceptInviteCallable.js @@ -0,0 +1,142 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +exports.acceptInviteCallable = void 0; +const functions = __importStar(require("firebase-functions")); +const admin = __importStar(require("firebase-admin")); +/** + * HTTPS callable that mediates invite acceptance. + * + * Issue #9 fix: clients are no longer allowed to read invites directly, because + * the 6-character document ID was enumerable. The invite is looked up by code + * server-side, validated, and accepted atomically here. + * + * Request body: { code: string, recoveryPhrase?: string } + * - code: the 6-character invite code the partner shared. + * - recoveryPhrase: required if the invite was created with a wrapped couple key. + * + * Response: { coupleId: string } + * + * Operations (all via Admin SDK, so Firestore rules are bypassed): + * 1. Verify caller is authenticated and not already paired. + * 2. Look up the invite document by code. + * 3. Validate status == 'pending' and not expired. + * 4. Prevent self-acceptance. + * 5. Create the couple document with the wrapped couple key from the invite. + * 6. Update both user documents with the new coupleId. + * 7. Mark the invite as accepted. + */ +exports.acceptInviteCallable = functions.https.onCall(async (data, context) => { + var _a, _b, _c; + const callerId = (_a = context.auth) === null || _a === void 0 ? void 0 : _a.uid; + if (!callerId) { + throw new functions.https.HttpsError('unauthenticated', 'Must be signed in.'); + } + const code = data === null || data === void 0 ? void 0 : data.code; + if (!code || typeof code !== 'string') { + throw new functions.https.HttpsError('invalid-argument', 'code is required.'); + } + const recoveryPhrase = data === null || data === void 0 ? void 0 : data.recoveryPhrase; + if (recoveryPhrase !== undefined && typeof recoveryPhrase !== 'string') { + throw new functions.https.HttpsError('invalid-argument', 'recoveryPhrase must be a string.'); + } + const db = admin.firestore(); + // Caller must not already be paired. + const callerDoc = await db.collection('users').doc(callerId).get(); + if (callerDoc.exists && ((_b = callerDoc.data()) === null || _b === void 0 ? void 0 : _b.coupleId) != null) { + throw new functions.https.HttpsError('failed-precondition', 'Caller is already paired.'); + } + const inviteRef = db.collection('invites').doc(code); + const inviteDoc = await inviteRef.get(); + if (!inviteDoc.exists) { + throw new functions.https.HttpsError('not-found', 'Invite not found.'); + } + const invite = (_c = inviteDoc.data()) !== null && _c !== void 0 ? _c : {}; + const inviterUserId = invite.inviterUserId; + const status = invite.status; + const expiresAt = invite.expiresAt; + const wrappedCoupleKey = invite.wrappedCoupleKey; + const kdfSalt = invite.kdfSalt; + const kdfParams = invite.kdfParams; + if (status !== 'pending') { + throw new functions.https.HttpsError('failed-precondition', 'Invite has already been used.'); + } + const now = admin.firestore.Timestamp.now(); + if (expiresAt != null && expiresAt.toMillis() <= now.toMillis()) { + throw new functions.https.HttpsError('failed-precondition', 'Invite has expired.'); + } + if (!inviterUserId) { + throw new functions.https.HttpsError('failed-precondition', 'Invite is missing inviterUserId.'); + } + if (inviterUserId === callerId) { + throw new functions.https.HttpsError('permission-denied', 'Cannot accept your own invite.'); + } + // Recovery phrase is required whenever the invite carries a wrapped key. + if (wrappedCoupleKey != null && (!recoveryPhrase || recoveryPhrase.length === 0)) { + throw new functions.https.HttpsError('invalid-argument', 'recoveryPhrase is required for this invite.'); + } + const coupleId = db.collection('couples').doc().id; + const coupleRef = db.collection('couples').doc(coupleId); + const batch = db.batch(); + batch.set(coupleRef, { + id: coupleId, + userIds: [inviterUserId, callerId], + inviteCode: code, + createdAt: admin.firestore.FieldValue.serverTimestamp(), + streakCount: 0, + encryptionVersion: 2, + wrappedCoupleKey: wrappedCoupleKey !== null && wrappedCoupleKey !== void 0 ? wrappedCoupleKey : null, + kdfSalt: kdfSalt !== null && kdfSalt !== void 0 ? kdfSalt : null, + kdfParams: kdfParams !== null && kdfParams !== void 0 ? kdfParams : null, + }); + batch.update(db.collection('users').doc(inviterUserId), { coupleId }); + batch.update(db.collection('users').doc(callerId), { coupleId }); + batch.update(inviteRef, { + status: 'accepted', + acceptedByUserId: callerId, + acceptedAt: admin.firestore.FieldValue.serverTimestamp(), + coupleId, + }); + await batch.commit(); + console.log(`[acceptInviteCallable] ${callerId} accepted invite ${code}; created couple ${coupleId}`); + return { + coupleId, + inviterUserId, + wrappedCoupleKey: wrappedCoupleKey !== null && wrappedCoupleKey !== void 0 ? wrappedCoupleKey : null, + kdfSalt: kdfSalt !== null && kdfSalt !== void 0 ? kdfSalt : null, + kdfParams: kdfParams !== null && kdfParams !== void 0 ? kdfParams : null, + }; +}); +//# sourceMappingURL=acceptInviteCallable.js.map \ No newline at end of file diff --git a/functions/dist/couples/acceptInviteCallable.js.map b/functions/dist/couples/acceptInviteCallable.js.map new file mode 100644 index 00000000..ad6a62fd --- /dev/null +++ b/functions/dist/couples/acceptInviteCallable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"acceptInviteCallable.js","sourceRoot":"","sources":["../../src/couples/acceptInviteCallable.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/functions/dist/index.js b/functions/dist/index.js index c975810a..53993f1b 100644 --- a/functions/dist/index.js +++ b/functions/dist/index.js @@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () { }; })(); Object.defineProperty(exports, "__esModule", { value: true }); -exports.health = exports.onGameSessionUpdate = exports.onUserDelete = exports.leaveCoupleCallable = exports.onCoupleLeave = exports.onAnswerWritten = exports.assignDailyQuestionCallable = exports.assignDailyQuestion = exports.createDateMatchOnMutualLove = exports.checkDeviceIntegrity = exports.unlockDueMemoryCapsules = exports.sendChallengeDayReminders = exports.sendPartnerAnsweredNotification = exports.sendDailyQuestionReminder = exports.syncEntitlement = exports.revenueCatWebhook = void 0; +exports.health = exports.onGameSessionUpdate = exports.onUserDelete = exports.acceptInviteCallable = exports.leaveCoupleCallable = exports.onCoupleLeave = exports.onAnswerWritten = exports.assignDailyQuestionCallable = exports.assignDailyQuestion = exports.createDateMatchOnMutualLove = exports.checkDeviceIntegrity = exports.unlockDueMemoryCapsules = exports.sendChallengeDayReminders = exports.sendPartnerAnsweredNotification = exports.sendDailyQuestionReminder = exports.syncEntitlement = exports.revenueCatWebhook = void 0; const functions = __importStar(require("firebase-functions")); const admin = __importStar(require("firebase-admin")); // Initialize the Admin SDK once for every function in this codebase. @@ -65,6 +65,8 @@ var onCoupleLeave_1 = require("./couples/onCoupleLeave"); Object.defineProperty(exports, "onCoupleLeave", { enumerable: true, get: function () { return onCoupleLeave_1.onCoupleLeave; } }); var leaveCoupleCallable_1 = require("./couples/leaveCoupleCallable"); Object.defineProperty(exports, "leaveCoupleCallable", { enumerable: true, get: function () { return leaveCoupleCallable_1.leaveCoupleCallable; } }); +var acceptInviteCallable_1 = require("./couples/acceptInviteCallable"); +Object.defineProperty(exports, "acceptInviteCallable", { enumerable: true, get: function () { return acceptInviteCallable_1.acceptInviteCallable; } }); var onUserDelete_1 = require("./users/onUserDelete"); Object.defineProperty(exports, "onUserDelete", { enumerable: true, get: function () { return onUserDelete_1.onUserDelete; } }); var onGameSessionUpdate_1 = require("./games/onGameSessionUpdate"); diff --git a/functions/dist/index.js.map b/functions/dist/index.js.map index 16e7adce..00e23b56 100644 --- a/functions/dist/index.js.map +++ b/functions/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8DAA+C;AAC/C,sDAAuC;AAEvC,qEAAqE;AACrE,8EAA8E;AAC9E,gFAAgF;AAChF,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;IAC5B,KAAK,CAAC,aAAa,EAAE,CAAA;AACvB,CAAC;AAED,iEAA+D;AAAtD,sHAAA,iBAAiB,OAAA;AAC1B,6DAA2D;AAAlD,kHAAA,eAAe,OAAA;AACxB,uDAGkC;AAFhC,sHAAA,yBAAyB,OAAA;AACzB,4HAAA,+BAA+B,OAAA;AAEjC,+DAGsC;AAFpC,0HAAA,yBAAyB,OAAA;AACzB,wHAAA,uBAAuB,OAAA;AAEzB,wEAAsE;AAA7D,4HAAA,oBAAoB,OAAA;AAC7B,2DAAqE;AAA5D,8HAAA,2BAA2B,OAAA;AACpC,uEAGwC;AAFtC,0HAAA,mBAAmB,OAAA;AACnB,kIAAA,2BAA2B,OAAA;AAE7B,+DAA6D;AAApD,kHAAA,eAAe,OAAA;AACxB,yDAAuD;AAA9C,8GAAA,aAAa,OAAA;AACtB,qEAAmE;AAA1D,0HAAA,mBAAmB,OAAA;AAC5B,qDAAmD;AAA1C,4GAAA,YAAY,OAAA;AACrB,mEAAiE;AAAxD,0HAAA,mBAAmB,OAAA;AAE5B;;;GAGG;AACU,QAAA,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IAC3D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;AACxC,CAAC,CAAC,CAAA"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8DAA+C;AAC/C,sDAAuC;AAEvC,qEAAqE;AACrE,8EAA8E;AAC9E,gFAAgF;AAChF,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;IAC5B,KAAK,CAAC,aAAa,EAAE,CAAA;AACvB,CAAC;AAED,iEAA+D;AAAtD,sHAAA,iBAAiB,OAAA;AAC1B,6DAA2D;AAAlD,kHAAA,eAAe,OAAA;AACxB,uDAGkC;AAFhC,sHAAA,yBAAyB,OAAA;AACzB,4HAAA,+BAA+B,OAAA;AAEjC,+DAGsC;AAFpC,0HAAA,yBAAyB,OAAA;AACzB,wHAAA,uBAAuB,OAAA;AAEzB,wEAAsE;AAA7D,4HAAA,oBAAoB,OAAA;AAC7B,2DAAqE;AAA5D,8HAAA,2BAA2B,OAAA;AACpC,uEAGwC;AAFtC,0HAAA,mBAAmB,OAAA;AACnB,kIAAA,2BAA2B,OAAA;AAE7B,+DAA6D;AAApD,kHAAA,eAAe,OAAA;AACxB,yDAAuD;AAA9C,8GAAA,aAAa,OAAA;AACtB,qEAAmE;AAA1D,0HAAA,mBAAmB,OAAA;AAC5B,uEAAqE;AAA5D,4HAAA,oBAAoB,OAAA;AAC7B,qDAAmD;AAA1C,4GAAA,YAAY,OAAA;AACrB,mEAAiE;AAAxD,0HAAA,mBAAmB,OAAA;AAE5B;;;GAGG;AACU,QAAA,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IAC3D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;AACxC,CAAC,CAAC,CAAA"} \ No newline at end of file diff --git a/functions/src/couples/acceptInviteCallable.ts b/functions/src/couples/acceptInviteCallable.ts new file mode 100644 index 00000000..e6114016 --- /dev/null +++ b/functions/src/couples/acceptInviteCallable.ts @@ -0,0 +1,125 @@ +import * as functions from 'firebase-functions' +import * as admin from 'firebase-admin' + +/** + * HTTPS callable that mediates invite acceptance. + * + * Issue #9 fix: clients are no longer allowed to read invites directly, because + * the 6-character document ID was enumerable. The invite is looked up by code + * server-side, validated, and accepted atomically here. + * + * Request body: { code: string, recoveryPhrase?: string } + * - code: the 6-character invite code the partner shared. + * - recoveryPhrase: required if the invite was created with a wrapped couple key. + * + * Response: { coupleId: string } + * + * Operations (all via Admin SDK, so Firestore rules are bypassed): + * 1. Verify caller is authenticated and not already paired. + * 2. Look up the invite document by code. + * 3. Validate status == 'pending' and not expired. + * 4. Prevent self-acceptance. + * 5. Create the couple document with the wrapped couple key from the invite. + * 6. Update both user documents with the new coupleId. + * 7. Mark the invite as accepted. + */ +export const acceptInviteCallable = functions.https.onCall(async (data: any, context) => { + const callerId = context.auth?.uid + if (!callerId) { + throw new functions.https.HttpsError('unauthenticated', 'Must be signed in.') + } + + const code = data?.code + if (!code || typeof code !== 'string') { + throw new functions.https.HttpsError('invalid-argument', 'code is required.') + } + + const recoveryPhrase = data?.recoveryPhrase + if (recoveryPhrase !== undefined && typeof recoveryPhrase !== 'string') { + throw new functions.https.HttpsError('invalid-argument', 'recoveryPhrase must be a string.') + } + + const db = admin.firestore() + + // Caller must not already be paired. + const callerDoc = await db.collection('users').doc(callerId).get() + if (callerDoc.exists && callerDoc.data()?.coupleId != null) { + throw new functions.https.HttpsError('failed-precondition', 'Caller is already paired.') + } + + const inviteRef = db.collection('invites').doc(code) + const inviteDoc = await inviteRef.get() + + if (!inviteDoc.exists) { + throw new functions.https.HttpsError('not-found', 'Invite not found.') + } + + const invite = inviteDoc.data() ?? {} + const inviterUserId = invite.inviterUserId as string | undefined + const status = invite.status as string | undefined + const expiresAt = invite.expiresAt as admin.firestore.Timestamp | undefined + const wrappedCoupleKey = invite.wrappedCoupleKey as string | undefined + const kdfSalt = invite.kdfSalt as string | undefined + const kdfParams = invite.kdfParams as string | undefined + + if (status !== 'pending') { + throw new functions.https.HttpsError('failed-precondition', 'Invite has already been used.') + } + + const now = admin.firestore.Timestamp.now() + if (expiresAt != null && expiresAt.toMillis() <= now.toMillis()) { + throw new functions.https.HttpsError('failed-precondition', 'Invite has expired.') + } + + if (!inviterUserId) { + throw new functions.https.HttpsError('failed-precondition', 'Invite is missing inviterUserId.') + } + + if (inviterUserId === callerId) { + throw new functions.https.HttpsError('permission-denied', 'Cannot accept your own invite.') + } + + // Recovery phrase is required whenever the invite carries a wrapped key. + if (wrappedCoupleKey != null && (!recoveryPhrase || recoveryPhrase.length === 0)) { + throw new functions.https.HttpsError('invalid-argument', 'recoveryPhrase is required for this invite.') + } + + const coupleId = db.collection('couples').doc().id + const coupleRef = db.collection('couples').doc(coupleId) + + const batch = db.batch() + + batch.set(coupleRef, { + id: coupleId, + userIds: [inviterUserId, callerId], + inviteCode: code, + createdAt: admin.firestore.FieldValue.serverTimestamp(), + streakCount: 0, + encryptionVersion: 2, + wrappedCoupleKey: wrappedCoupleKey ?? null, + kdfSalt: kdfSalt ?? null, + kdfParams: kdfParams ?? null, + }) + + batch.update(db.collection('users').doc(inviterUserId), { coupleId }) + batch.update(db.collection('users').doc(callerId), { coupleId }) + + batch.update(inviteRef, { + status: 'accepted', + acceptedByUserId: callerId, + acceptedAt: admin.firestore.FieldValue.serverTimestamp(), + coupleId, + }) + + await batch.commit() + + console.log(`[acceptInviteCallable] ${callerId} accepted invite ${code}; created couple ${coupleId}`) + + return { + coupleId, + inviterUserId, + wrappedCoupleKey: wrappedCoupleKey ?? null, + kdfSalt: kdfSalt ?? null, + kdfParams: kdfParams ?? null, + } +}) diff --git a/functions/src/index.ts b/functions/src/index.ts index 513d78d9..56688f5a 100644 --- a/functions/src/index.ts +++ b/functions/src/index.ts @@ -27,6 +27,7 @@ export { export { onAnswerWritten } from './questions/onAnswerWritten' export { onCoupleLeave } from './couples/onCoupleLeave' export { leaveCoupleCallable } from './couples/leaveCoupleCallable' +export { acceptInviteCallable } from './couples/acceptInviteCallable' export { onUserDelete } from './users/onUserDelete' export { onGameSessionUpdate } from './games/onGameSessionUpdate'